1.0 FUNDAMENTAL COMPUTER ORGANIZATION & THE VON NEUMANN MODEL
1.1 Von Neumann Architecture (Princeton Architecture)
-
Definition: A stored-program digital computer architecture where instructions and data share the same memory unit and are transferred over a common bus.
-
Key Components:
-
Memory: Stores both instructions and data.
-
Arithmetic Logic Unit (ALU): Performs arithmetic and logical operations.
-
Control Unit (CU): Fetches, decodes, and controls instruction execution.
-
Input/Output (I/O) Equipment: Communicates with the external world.
-
System Bus: Interconnects all major components (Address, Data, Control).
-
-
Stored-Program Concept: The fundamental idea that a sequence of instructions (a program) can be stored in memory and executed automatically by the CPU.
-
Sequential Execution Model: Instructions are typically fetched and executed one after another from successive memory addresses, unless a branch/jump instruction alters the flow.
-
Block Diagram:
DiagramSEARCH: von neumann architecture block diagram
[!TIP] Exam Focus: Be prepared to draw and label the block diagram. Explain the role of each component and the significance of the stored-program concept.
1.2 Basic Functional Units & Interconnection
-
System Bus Structure:
-
Address Bus: Carries memory/I/O addresses from CU to memory/I/O. Unidirectional. Width determines maximum addressable memory locations: $$\displaystyle 2^{\text{address bits}} $$.
-
Data Bus: Carries data between CPU, memory, and I/O. Bidirectional. Width determines word size (amount of data transferred per cycle).
-
Control Bus: Carries control signals (Read, Write, Interrupt, Clock) to coordinate operations.
-
-
Common Bus System: A single set of lines (bus) used for transferring addresses, data, and control signals between multiple registers and memory. Requires multiplexers to select the source for bus inputs.
DiagramSEARCH: common bus system with multiplexers -
Register Organization:
-
General Purpose Registers (R0...Rn-1): Used for operands and intermediate results.
-
Special Purpose Registers:
-
Program Counter (PC): Holds the address of the next instruction to fetch.
-
Memory Address Register (MAR): Holds the address for a memory read/write.
-
Memory Data Register (MDR): Holds data read from or to be written to memory.
-
Instruction Register (IR): Holds the currently fetched instruction (opcode & address fields).
-
Accumulator (AC): A dedicated register for ALU operations (common in simple designs).
-
-
-
Role of Key Registers in Fetch Cycle:
-
CU places
PCcontent on address bus →MAR. -
Memory read signal activated → data from memory[PC] →
MDR. -
MDRcontent →IR. -
PCincremented to point to next instruction.
-
2.0 INSTRUCTION EXECUTION CYCLE & ADDRESSING
2.1 Instruction Cycle Phases
The cycle repeats continuously. A typical Fetch-Decode-Execute cycle:
-
Fetch:
PC → MAR → Memory → MDR → IR,PC ← PC + 1. -
Decode: CU interprets
IR(opcode), determines operation and addressing mode. -
Execute: CU generates control signals to perform the operation (e.g.,
ALUoperation, memory access, register transfer). -
Store/Write-back: Result is written to destination (register or memory).
-
Timing & Control: Each phase occurs in one or more clock cycles (T-states). A state machine in the CU sequences these cycles.
-
Flowchart:
DiagramSEARCH: instruction cycle flowchart fetch decode execute
2.2 Instruction Format & Word Size
-
Components:
-
Opcode Field: Specifies the operation (e.g., ADD, LOAD). Number of bits $n$ determines max instructions: $$\displaystyle 2^n $$.
-
Address Field(s): Specifies operand location(s). Length depends on address space size.
-
Mode Field: Specifies addressing mode (if used).
-
-
Relationship: If address bus is
Abits, memory has $$\displaystyle 2^A $$ locations. Address field must have at leastAbits to reference any location. -
Calculation Example (from past paper): 16-bit instruction, 6-bit opcode, 2-address format.
-
Address field per address = $$\displaystyle (16 - 6)/2 = 5 $$ bits.
-
Max instructions = $$\displaystyle 2^6 = 64 $$.
-
Addressable locations per field = $$\displaystyle 2^5 = 32 $$.
-
2.3 Addressing Modes
-
Definition: Specifies how the operand address in the instruction is interpreted to find the effective address (EA) of the actual operand.
-
Common Modes & Examples:
| Mode | How EA is Found | Example (Assume ADD instruction) |
Pros | Cons |
|---|---|---|---|---|
| Immediate | Operand is in instruction itself. | ADD R1, #5 → R1 ← R1 + 5 |
Fast, no memory access. | Limited operand range (by field size). |
| Direct | Address field gives EA directly. | ADD R1, 2000 → R1 ← R1 + M[2000] |
Simple, single memory access. | Limited address space, not flexible. |
| Indirect | Address field points to a memory location that contains the EA. | ADD R1, @2000 → R1 ← R1 + M[M[2000]] |
Larger address space, efficient for pointers. | Two memory accesses (slower). |
| Register | Operand is in a specified CPU register. | ADD R1, R2 → R1 ← R1 + R2 |
Very fast (no memory access). | Limited by number of registers. |
| Register Indirect | Register contains the EA. | ADD R1, (R2) → R1 ← R1 + M[R2] |
Pointer-like, flexible. | One memory access. |
| Relative (PC-relative) | EA = PC + offset. |
JUMP +10 → jumps to PC+10. |
Position-independent code, good for branches. | Limited jump range (± offset bits). |
| Indexed/Base | EA = Address Field + Index/Base Register. |
ADD R1, 1000(R2) → R1 ← R1 + M[1000 + R2] |
Efficient for arrays (index) or segments (base). | Requires extra register, addition time. |
[!TIP] Exam Focus: Be able to give an example for each mode and state its primary use case (e.g., immediate for constants, indirect for pointers, indexed for arrays). Know the trade-off between instruction length and execution time.
3.0 CONTROL UNIT DESIGN
3.1 Hardwired Control Unit
-
Design: Implemented using logic gates (AND, OR, NOT) and flip-flops. It's a fixed, physical circuit.
-
Operation:
-
Instruction Decoder: Converts opcode bits into a set of instruction signals (I₁, I₂, ...).
-
Timing (State) Machine: A counter or sequencer generates timing signals (T₁, T₂, ...) for each clock cycle of the instruction.
-
Control Signal Generation: Each control signal (e.g.,
PCin,MARin,Read) is generated by a Boolean expression combining instruction signals and timing signals.- Example:
PCin = I₁T₁ + I₂T₁ + ...(Load PC on T1 for these instructions).
- Example:
-
-
Advantages: Very fast (no memory access for microcode).
-
Disadvantages: Inflexible (difficult to modify/add instructions), complex to design for complex ISAs, hard to debug.
-
Boolean Expression Example (from past paper): Given a table, derive expressions like
S5 = I₁T₁ + I₂T₁ + I₃T₁ + I₄T₁(if S5 active in T1 for all instructions).
3.2 Microprogrammed Control Unit
-
Core Concept: Control signals are stored as microinstructions in a special Control Memory (CM). The CU executes a microprogram (a sequence of microinstructions) to implement each machine instruction.
-
Micro-instruction vs. Machine Instruction:
-
Machine Instruction: User-visible operation (e.g.,
ADD). Stored in main memory. -
Microinstruction: Low-level control signal specification. Stored in control memory. One machine instruction = many microinstructions.
-
-
Micro-instruction Format:
-
Vertical Micro-instructions:
-
Encoded control fields (e.g., 4 bits to select one of 16 ALU operations).
-
Fewer bits per microinstruction, more sequential microinstructions per machine instruction.
-
Slower but more compact CM.
-
-
Horizontal Micro-instructions:
-
One bit per control signal (or few groups).
-
Many bits, can activate many operations in parallel.
-
Faster (more parallelism) but requires larger CM.
-
-
Common Fields:
-
Control Field: Bits for each control signal (horizontal) or encoded fields (vertical).
-
Next Address Field: Specifies address of next microinstruction (for sequential flow).
-
Branch/Condition Field: Used for conditional branching (e.g., based on status flags like Zero, Carry).
-
-
-
Micro-program Sequencer:
-
Function: Generates the address of the next microinstruction to be fetched from CM.
-
Components & Operation:
-
Control Address Register (CAR): Holds current microinstruction address.
-
Mapping Logic: Maps the opcode from
IRto the starting address of that instruction's microprogram routine in CM. -
Branch Logic: Modifies the next address based on the Condition Field and status bits (e.g.,
if (Zero=1) then CAR ← BranchAddress). -
Incrementer: Provides
CAR + 1for sequential execution.
-
-
Block Diagram:
DiagramSEARCH: microprogram sequencer block diagram
-
-
Advantages: Flexible (easy to modify by changing microcode), simpler to design/debug, supports complex ISAs.
-
Disadvantages: Slower (extra memory access for each microinstruction).
3.3 Comparative Analysis: Hardwired vs. Microprogrammed
| Feature | Hardwired Control | Microprogrammed Control |
|---|---|---|
| Flexibility | Low (fixed hardware) | High (microcode can be changed) |
| Speed | High (direct logic) | Lower (CM access per micro-step) |
| Cost/Complexity | High for complex ISAs | Lower design cost, higher CM cost |
| Debugging | Difficult (logic probes) | Easier (microcode can be patched) |
| Implementation | Custom logic gates | Control Memory + Sequencer |
| Typical Use | Simple, high-speed CPUs (e.g., RISC) | Complex CISC CPUs, emulation |
[!TIP] Exam Focus: Know the Boolean expression generation method for hardwired control (e.g.,
(Ij + Ik) Tn). Be able to draw and explain the microprogram sequencer block diagram and its components. The comparison table is a high-frequency question.
4.0 ARITHMETIC & LOGIC UNIT (ALU) & MICRO-OPERATIONS
4.1 Micro-operations
-
Definition: The elementary operations performed on data stored in registers (e.g., transfer, arithmetic, logic, shift).
-
Classification:
-
Register Transfer: Move data between registers (e.g.,
R1 ← R2). -
Arithmetic:
ADD,SUB,INC,DEC. -
Logic:
AND,OR,XOR,NOT,CLR(clear). -
Shift:
SHL(shift left),SHR(shift right),ROL(rotate left).
-
-
Register Transfer Language (RTL): A symbolic notation to describe micro-operations.
-
Example:
R1 ← R1 + R2(Arithmetic) -
Example:
MAR ← PC(Register Transfer) -
Example:
R2 ← SHL R2(Shift)
-
4.2 Arithmetic Circuit Design
-
Building Blocks:
-
Half-Adder (HA): Adds 2 bits. Sum = $A \oplus B$, Carry = $A \cdot B$.
-
Full-Adder (FA): Adds 3 bits (A, B, Cin). Sum = $$\displaystyle A \oplus B \oplus C_{in} $$, Carry = $$\displaystyle (A \cdot B) + (C_{in} \cdot (A \oplus B)) $$.
-
-
Binary Adders:
-
Ripple-Carry Adder: FAs connected in series. Carry "ripples" through. Simple but slow (propagation delay ∝ n).
-
Carry-Lookahead Adder: Generates carries in parallel using Generate (G = A·B) and Propagate (P = A⊕B) signals. Faster, more complex hardware.
-
-
Multiplication Algorithm (Sequential/Add-and-Shift):
-
Initialize product register to 0.
-
For each bit of multiplier (from LSB to MSB):
-
If multiplier bit = 1, add multiplicand to product.
-
Shift product and multiplier right (or multiplicand left).
-
-
Final product is in the product register.
- Challenges: Speed (n cycles for n-bit multiplier), handling signed numbers ( Booth's algorithm), partial product accumulation, large hardware for parallel multipliers.
-
4.3 Floating-Point Arithmetic (IEEE 754)
-
Format (Single Precision, 32-bit):
-
Sign (1 bit): 0=positive, 1=negative.
-
Exponent (8 bits): Biased (bias = 127). Actual exponent = Stored Exponent - 127.
-
Mantissa/Fraction (23 bits): Implicit leading 1 (normalized). Represents $1.F$.
-
Value = $$\displaystyle (-1)^S \times 1.F \times 2^{(E-127)} $$.
-
-
Floating-Point Addition/Subtraction Steps:
-
Align Exponents: Shift the mantissa of the number with the smaller exponent right until exponents are equal. (Loss of precision).
-
Add/Subtract Mantissas: Perform integer addition/subtraction on aligned mantissas.
-
Normalize Result: Shift result left/right to restore form $1.F$. Adjust exponent accordingly.
-
Round: Apply rounding mode (e.g., round to nearest even) to fit mantissa back into 23 bits. May cause re-normalization.
-
Check for Overflow/Underflow.
-
-
Flowchart:
DiagramSEARCH: floating point addition flowchart -
Challenges: Precision loss (alignment, rounding), overflow/underflow, non-associativity ($ (a+b)+c \neq a+(b+c) $), complex hardware.
4.4 Decimal & Integer Arithmetic
-
BCD (Binary-Coded Decimal) Addition:
-
Add BCD digits as binary.
-
If result > 9 or carry out, add 6 (0110) to correct to valid BCD.
-
-
Signed Integer Representation:
-
Sign-Magnitude: MSB is sign, rest magnitude. Two zeros (+0, -0). Subtraction complex.
-
1's Complement: Negative = bitwise complement. End-around carry needed. Two zeros.
-
2's Complement (Most Common): Negative = complement + 1. Single zero. Addition/subtraction same circuit. Range: $$\displaystyle -2^{n-1} $$ to $$\displaystyle 2^{n-1}-1 $$.
-
-
ALU Handling: A single 2's complement adder/subtractor circuit can handle both addition and subtraction (using 2's complement of subtrahend).
5.0 MEMORY SYSTEMS & HIERARCHY
5.1 Memory Hierarchy Concept
-
Principle of Locality:
-
Temporal Locality: Recently accessed items likely to be accessed again soon.
-
Spatial Locality: Access to an item likely to be followed by access to nearby items.
-
-
Hierarchy Levels (Speed ↓, Capacity ↑, Cost/bit ↓):
Registers → L1 Cache → L2 Cache → Main Memory (RAM) → Secondary Storage (SSD/HDD) -
Significance: Exploits locality to bridge the speed gap between fast CPU and slow main memory. Optimizes cost/performance—use small, fast, expensive memory where it counts (cache).
-
Average Memory Access Time (AMAT):
$$\boxed{AMAT = \text{Hit Time} + \text{Miss Rate} \times \text{Miss Penalty}}$$
* **Hit Time:** Time to access data in the current level (e.g., cache access time).
* **Miss Rate:** Fraction of accesses not found in current level.
* **Miss Penalty:** Time to access the next lower level and deliver the block (including transfer).
5.2 Cache Memory Organization
-
Purpose: Small, fast memory between CPU and main memory. Stores copies of frequently used main memory blocks. Transparent to programmer.
-
Cache Mapping Techniques:
-
Direct Mapping:
-
Each memory block maps to exactly one cache line (set).
-
Index = Block Address mod (Number of Cache Blocks).
-
Tag stored in cache line to identify which memory block is present.
-
Pros: Simple, cheap. Cons: High conflict misses (two hot blocks mapping to same line).
-
-
Associative Mapping (Fully Associative):
-
A memory block can be placed in any cache line.
-
Tag must be compared with all tags in cache (parallel comparators).
-
Pros: Lowest conflict misses. Cons: Complex, expensive, slow search.
-
-
Set-Associative Mapping (Compromise):
-
Cache divided into
n-way sets (e.g., 2-way, 4-way). -
Block maps to a specific set (like direct), but can go into any line within that set.
-
Index = Block Address mod (Number of Sets).
-
Tag compared only with tags in the selected set.
-
Replacement Policy: When a set is full, choose a victim. LRU (Least Recently Used) is common.
-
Pros: Balance of cost and performance. Cons: More complex than direct.
-
-
-
Cache Performance:
-
Hit Ratio (h): Fraction of accesses found in cache. Miss Rate = 1 - h.
-
Write Policies:
-
Write-Through: Data written to both cache and main memory simultaneously. Simple, consistent, but slow (writes go to RAM).
-
Write-Back (Write-Behind): Data written only to cache. Cache line marked "dirty". Written to main memory only when evicted. Faster writes, but more complex (need dirty bits).
-
-
-
Cache vs. Associative Memory:
-
Cache: Location-addressable. You give an address, it tells you if data is there (tag match).
-
Associative Memory (Content-Addressable Memory - CAM): Content-addressable. You give data, it tells you the address where it's stored. Used for fast lookups (e.g., TLB).
-
5.3 Virtual Memory
-
Concept: Gives each program the illusion of having a large, contiguous private address space, larger than physical RAM, by using secondary storage (disk).
-
Implementation via Paging:
-
Logical (Virtual) Address Space: Divided into fixed-size Pages.
-
Physical Address Space: Divided into fixed-size Frames (same size as page).
-
Page Table: Per-process table mapping Virtual Page Number (VPN) → Physical Frame Number (PFN). Stored in main memory.
-
Address Translation: CPU generates virtual address → MMU (Memory Management Unit) uses page table to get physical address.
-
Translation Lookaside Buffer (TLB): A small, fast associative cache for page table entries. Crucial for performance—avoids slow memory lookup on every access.
-
TLB Hit: Fast translation.
-
TLB Miss: Page table walk (multiple memory accesses) → Page Fault if page not in memory (OS handles, brings page from disk).
-
-
-
Benefits: Larger address space, memory protection (per-page permissions), efficient RAM use (only needed pages in memory).
-
Fragmentation:
-
Internal Fragmentation: Wasted space within allocated region (e.g., last page of a process not full). Occurs in paging.
-
External Fragmentation: Wasted space between allocated regions. Occurs in segmentation (variable-size segments).
-
5.4 Memory Mapping & I/O Mapping
-
Memory-Mapped I/O:
-
I/O device registers are mapped into the main memory address space.
-
CPU uses regular
LOAD/STOREinstructions to access I/O. -
Pros: No special I/O instructions; all memory access instructions work. Cons: Uses up memory address space; memory and I/O share bus bandwidth.
-
-
I/O-Mapped (Isolated) I/O:
-
I/O has a separate address space and special
IN/OUTinstructions. -
Pros: Memory address space not reduced; I/O operations don't interfere with memory accesses. Cons: Requires special instructions; less uniform programming model.
-
-
Effect on Program Execution: In memory-mapped I/O, a program reads/writes to specific memory addresses to communicate with devices, making I/O appear as simple memory access.
6.0 INPUT/OUTPUT (I/O) ORGANIZATION & DATA TRANSFER
6.1 I/O Interface & Asynchronous Data Transfer
-
I/O Interface Role: Acts as an intermediary between CPU/memory and I/O devices. Provides:
-
Handshaking: Signals to coordinate data transfer (e.g.,
Data Ready,Acknowledge). -
Buffering: Temporary storage to match speed differences (e.g., device buffer).
-
Signal Conversion: Voltage levels, serial/parallel conversion.
-
-
Asynchronous vs. Synchronous Transfer:
-
Synchronous: Data transfer timed by a common clock. Devices must operate at same speed. Simple, used for internal buses.
-
Asynchronous: Transfer controlled by handshaking signals. Devices operate at independent speeds. Used for I/O.
-
-
Asynchronous Transfer Modes:
-
Program-Controlled I/O (Polling):
-
CPU repeatedly reads device status register in a loop until device is ready.
-
Flowchart:
DiagramSEARCH: programmed I/O polling flowchart -
Pros: Simple. Cons: CPU waits (wastes cycles), inefficient.
-
-
Interrupt-Driven I/O:
-
CPU initiates I/O, then continues executing other instructions.
-
Device interrupts CPU when ready (or on error).
-
Interrupt Service Cycle: CPU finishes current instruction, saves context (PC, PSW), jumps to Interrupt Service Routine (ISR), handles I/O, returns.
-
Pros: CPU not idle. Cons: Overhead of context save/restore per interrupt. Poor for high-speed/large data.
-
-
Direct Memory Access (DMA):
-
Goal: Transfer large blocks of data between I/O and memory without CPU intervention.
-
DMA Controller Block Diagram:
DiagramSEARCH: DMA controller block diagram -
Operation:
a. CPU initializes DMA: sets source, destination, byte count, starts transfer.
b. DMA controller takes over the system bus (requests control via
HOLD/HLDAsignals).c. DMA controller performs data transfers directly between I/O device and memory (reads/writes).
d. DMA controller releases bus, interrupts CPU on completion.
-
Advantages over Interrupt: CPU overhead is O(1) per block (init + completion interrupt), not O(n) per word. High bandwidth for block transfers.
-
CPU Overhead Calculation (from past paper):
-
Total cycles for transfer =
Nwords. -
CPU cycles for init =
C_i. -
CPU cycles for interrupt handling =
C_h. -
Fraction of CPU time = $$\displaystyle \frac{C_i + C_h}{\text{Total time for N words}} $$.
-
Total time ≈
N / (Bus bandwidth in words/cycle)(if DMA uses bus fully).
-
-
-
6.2 I/O Processor (IOP)
-
Role: A dedicated processor (often a simple CPU) that handles I/O operations completely, offloading the main CPU.
-
Block Diagram & Interaction:
DiagramSEARCH: I/O processor block diagram-
IOP has its own local memory (for IOP program & buffers).
-
Communicates with main CPU via interrupts and shared memory.
-
Communicates with I/O devices via device controllers.
-
CPU loads IOP with I/O program, IOP executes it independently, interrupts CPU on completion/completion of complex sequences.
-
-
Comparison with DMA:
-
DMA: Simple block mover, controlled by CPU for each transfer.
-
IOP: Can execute complex I/O programs (e.g., formatting, error correction), handle multiple devices, more autonomous.
-
6.3 Data Transfer Modes: Duplexity
-
Simplex: One-way only. Example: Keyboard → CPU, Printer ← CPU.
-
Half-Duplex: Two-way, but not simultaneous. Example: Walkie-talkie, early Ethernet (shared medium).
-
Full-Duplex: Simultaneous two-way. Example: Telephone, modern Ethernet (switched), USB.
6.4 I/O Bus & Bandwidth
- Bus Bandwidth: Maximum data transfer rate of the bus.
$$\boxed{\text{Bandwidth (bytes/sec)} = \text{Bus Frequency (Hz)} \times \text{Data Width (bytes)} \times \text{Transfers per cycle}}$$
* For simple bus: Bandwidth = Frequency × (Data Width / 8).
-
Justification Example (from past paper):
-
Old bus: 33 MHz, 32 bits = 4 bytes → Bandwidth = 33e6 × 4 = 132 MB/s.
-
Video card needs 128 MB/s. Yes, possible (132 > 128), but leaves little margin for other devices (disk 40 MB/s). Total needed = 128+40 = 168 MB/s > 132 MB/s → bottleneck.
-
7.0 ADVANCED ARCHITECTURAL CONCEPTS
7.1 Instruction Pipelining
-
Principle: Overlap the execution of multiple instructions by dividing the instruction cycle into stages (segments). Each stage works on a different instruction simultaneously.
-
Typipeline Stages (5-stage):
-
IF (Instruction Fetch): Get instruction from memory (using
PC). -
ID (Instruction Decode): Decode opcode, read registers from register file.
-
EX (Execute): Perform ALU operation (e.g., add, branch target calc).
-
MEM (Memory Access): Read/write data memory (for load/store).
-
WB (Write Back): Write result back to destination register.
-
-
Advantages: Increased throughput (instructions per cycle ideally = 1). Improved performance (Speedup ≈ number of stages for long sequences).
-
Limitations & Hazards:
-
Structural Hazards: Resource conflict (e.g., two instructions need memory in same cycle). Solution: Duplicate resources (separate instruction/data caches - Harvard architecture).
-
Data Hazards: Instruction depends on result of previous instruction not yet available.
-
RAW (Read-After-Write): True data dependency. Solution: Forwarding (bypassing), stalls (bubbles).
-
WAR (Write-After-Read): False dependency (out-of-order exec). Solution: Register renaming.
-
WAW (Write-After-Write): False dependency. Solution: Renaming.
-
-
Control Hazards: Caused by branches/jumps. Next instruction unknown until branch resolved. Solution: Branch prediction, delayed slots, speculative execution.
-
-
Pipeline Performance:
-
Ideal Speedup (S) ≈ Number of stages (k) for long instruction streams.
-
Efficiency = (Speedup) / k. Decreases due to hazards causing stalls.
-
7.2 Parallel Processing & Multiprocessors
-
Flynn's Taxonomy:
-
SISD: Single Instruction, Single Data (Uniprocessor). Von Neumann.
-
SIMD: Single Instruction, Multiple Data. Vector Processors, GPUs. One instruction operates on multiple data elements (vectors) simultaneously.
-
MISD: Multiple Instruction, Single Data. Rare (e.g., some fault-tolerant systems).
-
MIMD: Multiple Instruction, Multiple Data. Multiprocessors, multicore, clusters. Each processor has its own instruction stream.
-
-
MIMD Organization:
-
Shared Memory: Processors communicate by reading/writing common memory locations.
-
Bus-Based: Simple, but bus contention limits scalability. Snooping caches (cache coherence protocols like MESI).
-
Directory-Based: Scalable. Central/mapped directory tracks cache line states.
-
-
Distributed Memory: Each processor has local memory. Communicate via message passing (e.g., clusters). No cache coherence problem, but programming harder.
-
-
Vector Processors (SIMD):
-
Concept: Have vector registers (hold many elements, e.g., 64x64-bit). Single vector instruction (e.g.,
VADD V1, V2, V3) performs operation on all elements in parallel. -
Architecture: Vector functional units (pipelines), strided memory access (load/store vector from/to memory with strides).
-
Applications: Scientific computing (matrix ops), computer graphics (vertex transforms), media processing (audio/video codecs).
-
Comparison with Scalar: Much higher throughput for data-parallel tasks, but inefficient for scalar code with branches.
-
7.3 Interconnection Structures
-
Purpose: Connect multiple CPUs, memory modules, and I/O in parallel systems.
-
Types:
-
Shared Bus: Simple, low cost. Bottleneck for many processors.
-
Multi-Port Memory: Memory with multiple independent ports. Expensive, limited ports.
-
Crossbar Switch: Non-blocking. Each processor can connect to any memory module simultaneously via a grid of switches. Scalable but complex (O(n²) switches for n processors).
-
Hypercube: Processors as nodes of an n-dimensional cube. Each node connected to n others. Logarithmic diameter (good for message routing). Used in some supercomputers.
-
Mesh/Torus: 2D/3D grid. Simple wiring, used in many-core chips (e.g., Tilera, some GPUs).
-
END OF UNIT 1 NOTES