Architectures - Intro and MIPS Flashcards
What is a ZettaByte?
10^21 -> 2^70
How it is also called the instruction queue?
Front end
What does SoC stands for?
System on a Chip
Which are the major companies in the microprocessor field?
INTEL, ARM, AMD, IBM
In what the major companies of the microprocessor field are investing nowadays?
They are investing on multiprocessor systems on a chip (MPSoC) rather than on faster processors
Something about INTEL, AMD, ARM
Intel and AMD: they have the same instructions set but that set belongs to Intel
ARM: Samsung and Apple buy the interaction set from ARM and then they build the architecture
Which are the requirements for embedded computers?
- real time performance
- memory minimization
- power consumption minimization
- reliability constraints
Which are the classes of parallelism?
1) Data Level P: many data items can be operated at the same time
2) Task Level P: different tasks of work can operate independently
What do parallel architectures need in term of parallelism types? What do these types exploit?
- Instruction level P: exploits DLP
- Vector architectures and Graphic processor unit (GPU) to execute the same action on different data: exploits DLP
- Thread Level P: both DLP and TLP
- Request Level P: exploits parallelism among decoupled tasks
What is an ISA?
Instruction Set Architecture
= HOW the computer is seen by the programmer or the compiler
ISAs are different in term of…
- processor performance and complexity
- compiler complexity
- code size
- power consumption
These parameters have different weights depending on the product goal
How can we classify CPUs?
Based on:
- the type of their internal storage: where operands are stored
- the number of operands per instruction
- the number of memory operands per ALU instruction
Which types of instructions do we have in general?
- arithmetic
- logical
- to move data
Which types of CPU do we have based on the storage and the number of operands? Make some examples
- Stack (LIFO)
- Accumulator
- Register - memory: Intel 80x86 -> max 2 operands
- Register - Register (load and store): ARM, MIPS -> max 3 operands
(pagina 3 per disegni)
Which type of memory does use load and store?
Register
Which are the things (characteristics) that characterize an instruction set?
1) Memory addressing (how data are read)
2) Operations in the instruction set
3) Type and size of operands
4) Instruction encoding
Memory addressing
It is an instruction set characteristic and it corresponds to how data are read.
It can be based on:
- little or big endian
- aligned or misaligned access
There are multiple addressing modes (another question) and the choice is influenced by statistics (how many times an instruction is used) and has important consequences in term of number of instructions CPU architecture complexity, Cycles Per Instruction CPI
Little and Big Endian: example with 0x12345678
- Little: it puts the Byte with the lower address to the least significant position
-> it will be stored as 78 56 34 12 - Big: it puts the Byte with the lower address to the most significant position
-> it will be stored as 12 34 56 78
Aligned or misaligned access
- Aligned: simple hardware but waste of memory
- misaligned: hardware and performance overhead are necessary
when we use M[] to access the memory it will be the most significant or the least significant to be accessed?
Least one
example: 12 34 56 78 or 78 56 34 12 -> 78 and 12 accessed first
Addressing Mode of Memory addressing with examples
- Register mode: ADD R4, R3
- Immediate mode: ADD R4, $3
- Displacement mode: ADD R4, 100(R1) -> R4 + Memory[Content of R1 + 100]
- Register deferred or indirect mode: ADD R4, (R1) -> in R1 there is a memory address and the content of that address is summed to R4
- Indexed mode: ADD R4, (R1 + R2)
- Direct or absolute mode: ADD R1, (1001) -> R1 + what we find at the address 1001
- Memory indirect or memory deferred mode: ADD R4, @(R3) -> Mem[Mem[Regs[R3]]]
Which is the goal in looking addressing statistics?
Make the common case faster and the rare one correct
Operations in the instruction set
This is a characteristic of an instruction set and it corresponds to the type of operations we can perform using that set.
We can have:
- arithmetic and logical
- data transfer
- control
(the first three are available everywhere)
- system
- floating point
- decimal
- string
- graphics
How do we specify the destination address?
with displacement mode with respect to the PC so that we save bits (good especially because the target instruction is often close to the source)
+ the code is position independent