-
components:
- input
- output
- memory
- control
- datapath
-
concepts:
- Design Principles:
- Simplicity favors regularity
- Smaller is faster
- Good design demands good compromises
- stored-program concept is the idea that instructions and data of many types can be stored in memory as numbers, leading to the stored-program computer
- Design Principles:
-
- memory hierarchy
- cache memory
- virtual memory
- I/O devices
- system-on-chip (SoC)
- control unit
- operands
- program counter (PC) (aka instruction pointer (IP) in x86)
- instruction register (IR)
- pipelining
- physical address space
- address space
- memory-mapped I/O (MMIO)
- port-mapped I/O (PMIO)
- bus
- address bus
- data bus
- control bus
-
arithmetic logic unit (ALU)
-
general-purpose register (GPR)
-
instruction set architecture (ISA) (or architecture) is an abstract interface between the hardware and the lowest-level software that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on
- RISC (reduced instruction set computer)
- RISC-V is an open-source ISA based on established RISC principles
- Examples:
- MIPS
- ARM
- CISC (complex instruction set computer)
- Examples:
- x86
- PowerPC
- Examples:
- RISC (reduced instruction set computer)
-
a word The natural unit of access in a computer; the word size (or word length) is the number of bits in a word
- word size may be used for:
- registers: the number of bits in a general-purpose register
- memory addresses: the number of bits in a memory address
- instructions
- data types (e.g., integer, floating-point, character)
- address bus
- data bus
- e.g., 32 bits in MIPS, 64 bits in x86-64, or 16 bits in the 8086
- word size may be used for:
-
register is a small, fast storage location within the CPU used to store data temporarily
- register file
- The process of putting less commonly used variables (or those needed later) into memory is called spilling registers
-
endianess is the order in which bytes are stored in memory
- big-endian: the most significant byte is stored at the smallest memory address
- Example:
0x12345678
is stored as0x12 0x34 0x56 0x78
- Example:
- little-endian: the least significant byte is stored at the smallest memory address
- Example:
0x12345678
is stored as0x78 0x56 0x34 0x12
- Example:
- big-endian: the most significant byte is stored at the smallest memory address
Memory
- main memory (or (primary) memory or RAM (random access memory))
- volatile (loses data when power is off)
-
DRAM (dynamic random access memory)
- SRAM (static random access memory)
- secondary storage (or secondary memory or storage)
- nonvolatile (retains data even when power is off)
- types:
- magnetic storage
- magnetic tape
- hard disk drive (HDD)
- floppy disk drive (FDD)
- optical storage
- compact disc (CD)
- digital versatile disc (DVD)
- Blu-ray disc
- Solid-state storage (SSS)
- flash memory - nonvolatile semiconductor memory
- solid-state drive (SSD)
- USB flash drive
- memory card
- memory card
- SD card
- microSD card
- flash memory - nonvolatile semiconductor memory
- magnetic storage