click below
click below
Normal Size Small Size show me how
G51CSA
Computer Systems Architecture
Question | Answer |
---|---|
What does the address bus carry? | The location of what we want to access or store. |
What does the data bas carry? | The data that we are accessing or storing. |
What does the control bus carry? | The signal to say what is happening. |
Describe the parallel wire configuration: | This is the fastest way to send data electronically. The bytes are broken up into several bits and sent along many wires. |
Describe the serial wire configuration: | Bits are sent one at a time along a single wire. |
What is the canonical representation? | Every boolean function can be represented using And, Or and Not. |
What is the order of precedence for the logical operators? | NOT binds the most tightly, then AND, then OR. |
What is an electronic circuit that represents a logic function called? | A gate. |
What is a Hardware Description Language (HDL)? | Allows us to describe a circuit as if it were a computer program, using a language, expressing how the various gates connect. The software generates the necessary NAND gates for a Programmable Logic Device. |
What is the sign and magnitude negative representation? | The most significant bit is used to represent the sign. 1 is negative, and 0 is positive. |
What is the excess-n negative representation? | The position of zero is given at the '-n' number. |
What is the one's complement negative representation? | Negative numbers have their positive equivalents inverted. |
What is the two's complement negative representation? | This is the same as one's complement, except that 1 is added to the binary number after it is inverted. |
What is the Arithmetic Logic Unit (ALU)? | The heart of the CPU that performs all the arithmetic and logic operations of the CPU. It has two inputs, and one output (multi-bit). |
Why is it desirable to have an efficient ALU? | Less logic gates = fewer transistors = less space. This means that chips are cheaper, and have a smaller propagation delay (time taken for the signal to move along the chip). |
The functionality of the ALU is dynamic, what does this mean? | The functionality can change. First it may add, then it could be used to subtract. The functionality being used is chosen using a set of control pins. |
What is the CPU constructed out of? | Logic gates and flip flops. |
What is the job of the CPU? | It talks to the rest of the system by sending logic signals on it's various pins. |
Describe the process of the CPU writing to memory: | CPU puts the address of where to store the data on to the address bus. The signal on the control bus is set to read/write. The data is then placed on the data bus and sent. |
Why does the system need to decode the address on the address bus? | To ensure data is sent to and from the right place. This is done using standard boolean logic. Bits from the address lines are combined to form chip select signals. |
Where does the CPU get it's instructions from? | The computers memory. They are encoded as a binary pattern known as an opcode. Each CPU family usually has it's own unique instruction set. |
Describe Von Neumann Architecture: | Memory is shared between programs and data, with a single address space. Some address contain program opcodes, and others contain data. |
Describe Harvard Architecture: | There are separate memory spaces for programs and data. |
Describe the architecture of Modern CPUs: | They are a blend of both Von Neumann and Harvard architecture. |
What cycle does the CPU sit in? | Fetching an instruction, decoding an instruction and executing an instruction. |
What is the Program Counter? | A register that sits in the CPU, containing the address of the current/next instruction. |
How does the Program Counter move to the next instruction? | The current address is placed on the address us to fetch this instruction. It is then incremented to point at the next. |
What are registers used for? | They store a single value inside the CPU, allowing access to be faster. |
Where does the CPU get it's start up code from? | There is usually some ROM mapped into the memory space for when the CPU starts up. |
What type of Chip is the ARM CPU? | A Reduced Instruction Set Computer |
What is a RISC chip? | It implements only the most commonly used instructions, which can be used to form the other, more complicated instructions. This means the chip is faster and uses less power. |
Why is assembly language useful? | It gives english-like mnemonics that relate the machine code instructions. |
What is an assembler? | Converts assembly language to binary by generating the correct bit patters according to the instructions that were used. |
What does the 'B' Mnemonic do? | It causes the execution to jump to a new location in memory, by changing the PC register. |
What does the "ADR" mnemonic do? | It puts the address of a label into R0. |
Every instruction is 32-bits wide in ARM. This includes the immediate value and the bit used to describe the instruction, leaving only 12-bits being available for the immediate value. How does ARM encode the immediate value with this space? | It is encoded as an 8-bit value (0-255) and a 4-bit rotation value. The rotation shifts the 32-bits around the register to give larger values. |
What register does a conditional branch alter? | The Current Program Status Register (CPSR). It changes the state of flags stored in this register, depending on the result of a calculation. |
What does an overflow bit show? | That an invalid result was generated when adding signed numbers. Either greater than 2^^31, or less than 2^^-31. This flips the sign and produces an invalid result. |
What does the "CMP" mnemonic do? | It calculates Rm - Rn, and updates the status registers. |
The instruction LDR can only load from a fixed address, what is this called? | Absolute addressing, it must be the same address every time. |
What is a pseudo-instruction? | An instruction the assembler has generated based on the programs context. It automatically selects whether to use a MOV or to load an address from memory. (depending on the size). |
What is a literal pool? | Part of the program designated by the assembler to store the constants. It must be within ±4kb of the PC. |
ADR assumes that the address to be loaded is near the PC. If the address is in range, what can be done? | An offset can be added/subtracted to the value in the PC. |
ARM only supports indirect addressing, what is this? | A register contains the address to look the value up in. The CPU gets the value in memory at the address in the register. |
The instruction layout for LDR and STR includes space for a 12-bit unsigned offset. What are two other controls that may be added? | A further bit controls whether this is added or subtracted from the address in the register. A further bit controls whether this happens before, or after the address is used to access memory. |
What does Indirect with offset allow the assembler to simulate? | Absolute addressing. |
What is bitshifting? | Moving bits left or right, with the effect of multiplying.dividing by a power of 2. |
Describe shifting left: | Zero's are inserted from the right to keep it at 32-bits. |
Describe Arithmetic Shift Right: | A copy of the sign bit is shifted in, to keep the sign of the number the same. |
Describe Logical shift right: | A zero is shifted in regardless of the sign bit. |
What is write back? | The calculated address can be written back into the base register using LDR and STR. This means we can auto-update the address register without an extra instruction. LDRB or STRB. |
Describe the Big Endian method of laying out data across a number of bytes: | The MSB is put into address 'zero' and then moves along the data to the right. |
Describe the Little Endian method of laying out data across a number of bytes: | The LSB is put into address 'zero' and then moves along the data to the left. |
What is a function? | A small block of code that can be called and re-used. It should return a value. |
What happens a procedure is called? | The caller is suspended, control is passed to the callee, callee performs the requested task and then returns control to the caller. |
How do we caller a procedure in the same way in ARM assembly language? | Put the address into the program counter, changing what function will be executed next. |
What does the "BL" mnemonic do? | It automatically puts the address into the link register, allowing the subroutine to return to the original function with ease. |
What is a stack? | A data structure. It is use to store values, providing a Last In First Out (LIFO) storage. |
How is data moved to and from a stack? | Data is pushed TO the stack, and popped FROM it. |
What register is used as a stack pointer in the ARM assembler? | R13. It points to the top of the stack. |
What happens after a value is popped from a stack? | The value stays in memory, but the stack pointer is moved so that the top of stack changes. |
What do the mnemonics LDM and STM do? | Load and store registers in a block. |
What happens to the variables after a procedure exits, and why? | Local variables disappear as when a procedure exits, everything it put on the stack must be popped. |
What does the mnemonic "MLA" do? | Multiplies then adds. R0 = (R1 * R2) + R3 |
What is GREP? | A command-line utility for searching plain text data sets for line matching a regular expression. |
How does GREP work? | Each character should be compared until: It gets to one that doesn't match, or the end of the string is reached. |
How does GREP work if the string is in the middle of a line? | A string will return true if the first string is longer, and the string is then compared at every possible position. |