ARCHITECTURE OF ARM PROCESSOR

登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
ARCHITECTURE OF ARM PROCESSOR により Mind Map: ARCHITECTURE OF ARM PROCESSOR

1. Memory can be conceptually viewed as contiguous storage elements that hold data each element holding a fixed number of bits and having an address.

2. They have 4 classes of ISA

2.1. Stack (Emebedded processor)

2.2. Accumulator (Emebedded processor)

2.2.1. Defines data transfer modes (instructions) between registers, memory and I/O

2.3. Register - memory (pentium)

2.4. Register - Register (Spark)

3. Memory Organization and Addressing

3.1. The ARM core consists of 32 bits, meaning that you could address bytes in memory from address 0 to 2^32-1 or 4,294,967,295 (0xFFFFFFFF), which is considered to be 4GB of memory space.

3.2. A memory map is a structure of data (which usually resides in memory itself) that indicates how memory is laid out.

3.3. RISC architectures are considered to be load/store architectures, meaning that data in external memory must be brought into the processor using an instruction.

3.4. Load instruction take a single value from memory and write it to a general purpose register and store it to memory.

3.5. Store instructions read a value from a general-purpose register and store it to memory.

3.6. Load and store instruction : LDR|STR|{<size>}{<cond>}<Rd>,<addressing_mode>

3.7. The term effective address is often used to describe the final address created from values in the various registers, with offsets and/or shifts.

4. Instruction Set Architecture (ISA)

4.1. Instruction set of a computer: the portion of the computer visible to the assembly level programmer or to the compiler writer ISA

4.1.1. Defines registers

4.1.2. There should be sufficient instructions to efficiently translate any program

5. Operation modes of the cortex-M3 = The cortex-M3 processor has two modes and two privileged levels when is (thread modes and handler mode) is to determine whether the processor is running a normal program or running an exception handler like an interrupt handler or system exception handler like an interrupt handler or system exception handler.

6. Processor's Core Architecture

6.1. ARM core contains functional units (data path components) connected by data, address and control buses.

6.2. Data enters the processor core through the data bus.

6.3. The instruction decoder translates instructions before they are executed.

6.4. ARM implemented using Von Neumann architecture - data items and instructions share the same bus.

6.5. In contrast, ARM implemented on Harvard architecture implementations use two different buses.

6.6. The ARM processor uses load-store architecture.

6.6.1. Load instructions copy data from memory to registers in the core.

6.6.2. Store instructions copy data from registers to memory.

7. Programmer's model

7.1. To perform data processing and controls, a number of registers are required inside the processor core.

7.2. If data from memory are to be processed, they have to be loaded from the memory to a register in the register bank, processed inside the processor, and then written back to the memory if needed.

7.3. General purpose registers hold either data or an address.

7.4. R0-R12 = register R0 to R12 are for general uses.

7.5. R14-Link Register (LR)= The link register is used for storing the return address of a subroutine or function call.

7.6. R15-Program counter (PC)=store the memory address of the next instruction to be executed.

7.7. R13- Stack Pointer (SP) = R13 is the stack pointer. it is used for accessing the stack memory via PUSH and POP operations. MSP-Main Stack Pointer=The default stack pointer, used by the operating system (OS) kernel and exception handlers. PSP-Used by user application code.

7.8. xPSR-Provide arithmetic and logic processing flags, execution status and current executing interrupt number.

7.9. PRIMASK - Disable all interrupts except the non-maskable interrupt (NMI) and hard fault.

7.10. FAULTMASK - Disable all interrupts except the NMI.

7.11. BASEPRI - Disable all interrupts of specific prioprity level or lower priority level.

7.12. CONTROL - Define privileged status and stack pointer selection.

7.13. The N-Flag = This flag is useful when checking for a negative result.

7.14. The V-Flag = When performing an operation like addition or subtractions, the V-Flag accurately indicates a signed overflow.

7.15. The C-Flag = The C-Flag will set if an arithmetic operration produce a carry.

7.16. The Z-Flag = The Z-Flag will set if an arithmetic operation produce zero results.