Module 5 Flashcards
What is RISC and CISC and explain memory differences
Reduced Instruction Set Computer
- Has fewer instructions available than CISC
- Carries out more, simpler instructions - needs more software as a result
- Works only in registers
- More useful in ES setting
Complex Instruction Set Computer
- More instructions that have highly specialised tasks built in
- Can manipulate operands directly in memory and registers
Why is RISC preferred to CISC for ES?
RISC is more cost effective and easier to implement because it often requires less storage too. They are also more power efficient and have smaller physical footprints.
What is the ARM Cortex 3-Stage pipeline?
That thing you got wrong in the test look at the memo
What is Thumb and why use Thumb
Thumb instructions are half the size of ARM. The system can then load two instructions at the same time, however, this often makes design more complex - fewer instructions to choose from.
What is AArch32
32-bit architecture that supports operations on bytes (8), half-words (16), and words (32)
What are the modes of operation of the ARM processors?
User mode
- Limitations on register access
IRQ mode
- Low priority interrupt is signaled.
Supervisor mode
- IDk
What are the ARM registers?
1 Program Counter
1 Current Program Status Register (CPSR)
5 Saved Program Status Register (SPSR)
30 General Purpose Registers r0 to r14
What is the ARM exception vector
32 bytes that go from 0x00000000 to 0xFFFF0000 where each entry has some abort or interrupt instruction.
What is Port Mapped IO? ADV and DIS
A special IO address space used to get to devices. There are specific CPU instructions used to access this space.
+ Peripherals can have simpler memory address decoding logic
- Special instructions needed
Memory Mapped IO? ADV and DIS
+ No special techniques needed
- Some address space then used for peripherals.
- Uses RAM too
How is the volatile keyword useful for memory mapped IO
Volatile tells the compiler to explicitly access memory locations for a variable.
How are struct functions used and why are they useful?
typedef struct {
uint8_t item1;
uint8_t item2;
} NAME; //NAME is for the overall structure
volatile NAME* varName = (NAME*) ADDRESS; //varName is the name of this specific structure type.
varName -> item1 = 1; //write to a thing
x = varName ->item2; //read from a thing