Introduction to Computer Organization
Computer organization defines the internal details of operational units, their interconnection, & control. Defined by the internal registers, timing and control structures, and the set of instructions.
High level view
Consists of 4 components.
- CPU - executes instructions
- Memory - store program and data
- I/O - receive inputs and produce outputs
- Bus - interconnects everything as a data medium
CPU
Consists of
- ALU
- Control Unit
Bus
A communication channel that connects different components of a computer system. Provides a way for these components to exchange data and control signals.
Address Bus
Carries memory addresses from CPU to memory.
Data Bus
Carries data between CPU and memory. Bidirectional.
Control Bus
Carries control signals from CPU to memory.
Register
Capable of storing a set of bits. Built using flip flops. Has a set of data input and output lines.
General purpose registers are used for temporary storage of data and instructions during program execution. Special purpose registers are used for specific tasks such as program counter, stack pointer, and status register.
Parallel-in Parallel-out Register
All bits of data can be loaded/read simultaneously through parallel lines. Commonly used in applications requiring rapid data access and manipulation, such as in CPU design and digital signal processing.
Image from NBCAFE
Clock signal is required.
Serial-in Serial-out Register
Data bits are loaded and read one bit at a time in a sequential manner. Data is shifted through the register 1 bit position at a time with each clock pulse. Commonly used in applications where data transmission bandwidth is limited, such as in serial communication interfaces and data conversion between parallel and serial formats.
Image from NBCAFE
Special Purpose Registers
Register | Description |
---|---|
Program Counter (PC) | Holds the memory address of the next instruction to be executed |
Instruction Register (IR) | Holds the current instruction being executed |
Memory Address Register (MAR) | Holds the address of the memory location to be accessed |
Memory Data Register (MDR) | Holds the data being read from or written to memory |
Accumulator (ACC) | Stores intermediate arithmetic and logic results |
Status / Flag Register | Contains flags that indicate the status of operations (zero, carry, overflow, etc.) |
Stack Pointer (SP) | Points to the top of the stack in memory |
Index Register | Used for addressing techniques such as indexed addressing |
Flag Register
Individual bits indicate status of ALU operations.
Image from Plantation Productions