Skip to content

1. IEEE 754 Representation

Show the IEEE 754 binary representation 0ī¸âƒŖ1ī¸âƒŖ of the number −0.625₁₀ in single đŸĨ‡ and double precision. đŸĨˆ

āωāĻ¤ā§āϤāϰ

āĻĒā§āϰāĻĨāĻŽā§‡ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋāϕ⧇ binary-āϤ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻŋ:

0.625₁₀ = 0.101₂

Normalize āĻ•āϰāϞ⧇:

-0.101₂ = -1.01 × 2âģš

Single Precision

Single precision-āĻ:

  • Sign bit = 1
  • Exponent bias = 127
  • Actual exponent = −1
Stored exponent = −1 + 127
                = 126
                = 01111110₂

Fraction āĻŦāĻž mantissa:

01000000000000000000000

āϏ⧁āϤāϰāĻžāĻ‚:

1 | 01111110 | 01000000000000000000000

Hexadecimal:

BF200000

Double Precision

Double precision bias:

1023
Stored exponent = −1 + 1023
                = 1022
                = 01111111110₂

āϏ⧁āϤāϰāĻžāĻ‚:

1 | 01111111110 | 0100000000000000000000000000000000000000000000000000

Hexadecimal:

BFE4000000000000

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

−0.625 = −0.101₂ = −1.01 × 2âģš

Sign = 1
Single bias = 127 → exponent = 126
Double bias = 1023 → exponent = 1022

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Negative āĻšāϞ⧇ sign 1, exponent-āĻāϰ āϏāĻ™ā§āϗ⧇ bias āϝ⧋āĻ—, point-āĻāϰ āĻĒāϰ⧇āϰ āĻ…āĻ‚āĻļāχ mantissaāĨ¤


2. Four-bit Binary Multiplier

Design a 4-bit binary multiplier âœ–ī¸đŸ’ģ with detailed implementation. đŸ› ī¸đŸ“

āωāĻ¤ā§āϤāϰ

alt text

āĻĻ⧁āϟāĻŋ 4-bit unsigned āϏāĻ‚āĻ–ā§āϝāĻž āϧāϰāĻŋ:

Multiplicand = A₃A₂A₁A₀
Multiplier   = B₃B₂B₁B₀

āĻĻ⧁āϟāĻŋ 4-bit āϏāĻ‚āĻ–ā§āϝāĻžāϰ āϗ⧁āĻŖāĻĢāϞ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ 8-bit āĻšāĻŦ⧇:

Product = P₇P₆P₅P₄P₃P₂P₁P₀

āĻĒā§āϰāϤāĻŋāϟāĻŋ partial product AND gate āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϤ⧈āϰāĻŋ āĻšā§Ÿ:

PPáĩĸâąŧ = Aáĩĸ AND Bâąŧ

āĻŽā§‹āϟ AND gate āĻĒā§āĻ°ā§Ÿā§‹āϜāύ:

4 × 4 = 16āϟāĻŋ

āϗ⧁āϪ⧇āϰ āĻ•āĻžāĻ āĻžāĻŽā§‹:

              A₃ A₂ A₁ A₀
×             B₃ B₂ B₁ B₀
--------------------------------
              A × B₀
           A × B₁  0
        A × B₂  0  0
+    A × B₃  0  0  0
--------------------------------
           P₇ ... P₀

āĻ—āĻžāĻŖāĻŋāϤāĻŋāĻ•āĻ­āĻžāĻŦ⧇:

Product = (A × B₀)
        + (A × B₁) << 1
        + (A × B₂) << 2
        + (A × B₃) << 3

Implementation-āĻ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ:

  • 16āϟāĻŋ AND gate
  • Half Adder
  • Full Adder
  • Partial-product adder network
  • 8-bit output

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

4-bit × 4-bit = 8-bit result
4 × 4 = 16 partial products
āĻĒā§āϰāϤāĻŋāϟāĻŋ partial product = AND operation
āϏāĻŦ partial product shift āĻ•āϰ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšā§Ÿ

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϞāĻžāχāύ:

AND āĻĻāĻŋā§Ÿā§‡ partial product, Adder āĻĻāĻŋā§Ÿā§‡ final productāĨ¤


3. Booth Multiplication

Briefly analyze the Booth multiplication algorithm 🧐 for the given input: 16 × (−2). âœ–ī¸đŸ”ĸ

āωāĻ¤ā§āϤāϰ

6-bit representation āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ:

M  = +16 = 010000
-M = -16 = 110000

Q  = -2  = 111110
A  = 000000
Q₋₁ = 0
n = 6

Booth rule:

Q₀Q₋₁ = 01 → A = A + M
Q₀Q₋₁ = 10 → A = A − M
Q₀Q₋₁ = 00 āĻŦāĻž 11 → āϕ⧋āύ⧋ operation āύ⧟

āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ operation-āĻāϰ āĻĒāϰ⧇ Arithmetic Right Shift āĻšāĻŦ⧇āĨ¤

n A Q Q₋₁ āĻ•āĻžāϜ
6 000000 111110 0 00, āĻļ⧁āϧ⧁ ASR
5 000000 011111 0 10, A=A−M
4 111000 001111 1 11, āĻļ⧁āϧ⧁ ASR
3 111100 000111 1 11, āĻļ⧁āϧ⧁ ASR
2 111110 000011 1 11, āĻļ⧁āϧ⧁ ASR
1 111111 000001 1 11, āĻļ⧁āϧ⧁ ASR
0 111111 100000 1 āĻļ⧇āώ

āĻļ⧇āώ⧇ Q₋₁ āĻŦāĻžāĻĻ āĻĻāĻŋāϞ⧇:

AQ = 111111100000₂
   = −32₁₀

āĻ…āϤāĻāĻŦ:

16 × (−2) = −32

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

01 → A = A + M
10 → A = A − M
00/11 → āĻ•āĻŋāϛ⧁ āύ⧟
āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ → Arithmetic Right Shift
āĻļ⧇āώ result → AQ

āĻāχ āĻ…āĻ™ā§āϕ⧇āϰ answer:

16 × (−2) = −32

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

01 Plus, 10 Minus, Same āĻšāϞ⧇ ShiftāĨ¤


4. Computer Performance

How is the performance 📈 of a computer measured? 📏 Explain with examples 💡 using clock rate, âąī¸ CPI, âš™ī¸ and MIPS. 🚀

āωāĻ¤ā§āϤāϰ

Computer performance āϏāĻžāϧāĻžāϰāĻŖāϤ execution time āĻĻāĻŋā§Ÿā§‡ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻ•āϰāĻž āĻšā§ŸāĨ¤

Performance ∝ 1 / Execution Time

āĻ…āĻ°ā§āĻĨāĻžā§Ž execution time āϝāϤ āĻ•āĻŽ, performance āϤāϤ āĻŦ⧇āĻļāĻŋāĨ¤

āĻĒā§āϰāϧāĻžāύ āϏ⧂āĻ¤ā§āϰ

CPU Time = Instruction Count × CPI / Clock Rate

Clock Rate

Processor āĻĒā§āϰāϤāĻŋ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡ āĻ•āϤāϟāĻŋ clock cycle āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ•āϰ⧇āĨ¤

3 GHz = 3 × 10⁚ cycles/second

CPI

āĻāĻ•āϟāĻŋ instruction execute āĻ•āϰāϤ⧇ āĻ—ā§œā§‡ āϝāϤāϟāĻŋ clock cycle āϞāĻžāϗ⧇āĨ¤

CPI āϝāϤ āĻ•āĻŽ, performance āϏāĻžāϧāĻžāϰāĻŖāϤ āϤāϤ āĻŦ⧇āĻļāĻŋāĨ¤

Instructions Per Second

IPS = Clock Rate / CPI

MIPS

MIPS = Clock Rate / (CPI × 10âļ)

āωāĻĻāĻžāĻšāϰāĻŖ:

Clock rate = 3 GHz
CPI = 1.5
IPS = 3×10⁚ / 1.5
    = 2×10⁚ instructions/second
MIPS = 2000

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

āĻ•āĻŽ execution time = āĻŦ⧇āĻļāĻŋ performance

CPU Time = IC × CPI / Clock Rate
IPS = Clock Rate / CPI
MIPS = Clock Rate / (CPI × 10âļ)

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Clock rate āĻŦ⧇āĻļāĻŋ āĻ­āĻžāϞ⧋, CPI āĻ•āĻŽ āĻ­āĻžāϞ⧋, CPU time āĻ•āĻŽ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ­āĻžāϞ⧋āĨ¤


5. Processor Performance Numerical

Consider three processors 🧠 P1, P2, and P3 executing the same instruction set: 📜
P1: Clock rate = 3 GHz, âąī¸ CPI = 1.5 âš™ī¸ P2: Clock rate = 2.5 GHz, âąī¸ CPI = 1.0 âš™ī¸
P3: Clock rate = 4.0 GHz, âąī¸ CPI = 2.5 âš™ī¸
(i) Which processor 🧠 has the highest performance 🏆 in instructions per second? ⚡
(ii) If each processor executes a program in 12 seconds, âąī¸ find the number of cycles 🔄 and number of instructions 📜 for each. đŸ”ĸ
(iii) We want to reduce the execution time by 25%, 📉 but this causes a 15% increase in CPI. 📈 What clock rate is needed? âąī¸đŸ¤”

(i) āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ performance

IPS = Clock Rate / CPI
Processor āĻšāĻŋāϏāĻžāĻŦ IPS
P1 3/1.5 2.0 × 10⁚
P2 2.5/1.0 2.5 × 10⁚
P3 4/2.5 1.6 × 10⁚

āĻ…āϤāĻāĻŦ:

P2-āĻāϰ performance āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻŦ⧇āĻļāĻŋāĨ¤

(ii) Cycles āĻāĻŦāĻ‚ Instructions

āϏ⧂āĻ¤ā§āϰ:

Cycles = Clock Rate × Execution Time
Instructions = Cycles / CPI

P1

Cycles = 3×10⁚ × 12
       = 36×10⁚

Instructions = 36×10⁚ / 1.5
             = 24×10⁚

P2

Cycles = 2.5×10⁚ × 12
       = 30×10⁚

Instructions = 30×10⁚ / 1
             = 30×10⁚

P3

Cycles = 4×10⁚ × 12
       = 48×10⁚

Instructions = 48×10⁚ / 2.5
             = 19.2×10⁚
Processor Cycles Instructions
P1 36 billion 24 billion
P2 30 billion 30 billion
P3 48 billion 19.2 billion

(iii) āύāϤ⧁āύ clock rate

Execution time 25% āĻ•āĻŽāϞ⧇:

New Time = 0.75 × Old Time

CPI 15% āĻŦāĻžā§œāϞ⧇:

New CPI = 1.15 × Old CPI

āϤāĻžāχ:

New Clock Rate
= Old Clock Rate × 1.15/0.75
= Old Clock Rate × 1.5333
Processor āύāϤ⧁āύ clock rate
P1 4.60 GHz
P2 3.83 GHz
P3 6.13 GHz

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

IPS = Clock/CPI → P2 highest

Cycles:
P1 = 36B
P2 = 30B
P3 = 48B

Instructions:
P1 = 24B
P2 = 30B
P3 = 19.2B

New Clock = Old Clock × 1.5333

āϏāĻŦāĻšā§‡ā§Ÿā§‡ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ answer:

Highest performance = P2


6. Flynn’s Classification

Explain Flynn’s classification đŸ—‚ī¸ of parallel hardware đŸ–Ĩī¸đŸ–Ĩī¸ (SISD, SIMD, MISD, MIMD) in detail 📝 with examples. 🌟

āωāĻ¤ā§āϤāϰ

Flynn’s classification instruction stream āĻāĻŦāĻ‚ data stream-āĻāϰ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ computer architecture-āϕ⧇ āϚāĻžāϰ āĻ­āĻžāϗ⧇ āĻ­āĻžāĻ— āĻ•āϰ⧇āĨ¤

āϧāϰāύ Instruction Data āωāĻĻāĻžāĻšāϰāĻŖ
SISD Single Single Single-core processor
SIMD Single Multiple GPU
MISD Multiple Single Fault-tolerant system
MIMD Multiple Multiple Multicore processor

SISD

āĻāĻ•āϟāĻŋ instruction āĻāĻ•āϟāĻŋ data stream-āĻāϰ āĻ“āĻĒāϰ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

Single Instruction → Single Data

āωāĻĻāĻžāĻšāϰāĻŖ: āϏāĻžāϧāĻžāϰāĻŖ single-core processorāĨ¤

SIMD

āĻāĻ•āϟāĻŋ instruction āĻāĻ•āχ āϏāĻ™ā§āϗ⧇ āĻ…āύ⧇āĻ• data-āĻāϰ āĻ“āĻĒāϰ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

Single Instruction → Multiple Data

āωāĻĻāĻžāĻšāϰāĻŖ: GPU āĻāĻ•āϏāĻ™ā§āϗ⧇ āĻ…āύ⧇āĻ• pixel process āĻ•āϰ⧇āĨ¤

MISD

āĻāĻ•āχ data-āĻāϰ āĻ“āĻĒāϰ āĻāĻ•āĻžāϧāĻŋāĻ• instruction āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

Multiple Instructions → Single Data

āωāĻĻāĻžāĻšāϰāĻŖ: Aircraft fault-tolerant control systemāĨ¤

MIMD

āĻāĻ•āĻžāϧāĻŋāĻ• processor āφāϞāĻžāĻĻāĻž instruction āĻ“ āφāϞāĻžāĻĻāĻž data āύāĻŋā§Ÿā§‡ āĻ•āĻžāϜ āĻ•āϰ⧇āĨ¤

Multiple Instructions → Multiple Data

āωāĻĻāĻžāĻšāϰāĻŖ: Multicore processor, multiprocessor serverāĨ¤

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

SISD = 1 instruction, 1 data
SIMD = 1 instruction, many data
MISD = many instructions, 1 data
MIMD = many instructions, many data

āωāĻĻāĻžāĻšāϰāĻŖ:

SISD → Single-core
SIMD → GPU
MISD → Fault-tolerant system
MIMD → Multicore

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

āĻĒā§āϰāĻĨāĻŽ āĻĻ⧁āχ āĻ…āĻ•ā§āώāϰ Instruction, āĻļ⧇āώ āĻĻ⧁āχ āĻ…āĻ•ā§āώāϰ Data āĻŦā§‹āĻāĻžā§ŸāĨ¤


7. Cache Memory

What is cache memory? ⚡🧠 Define cache-hit, đŸŽ¯ cache-miss, ❌ and miss-penalty. âŗ Explain with an example. 💡

āωāĻ¤ā§āϤāϰ

Cache memory āĻšāϞ⧋ CPU āĻ“ main memory-āĻāϰ āĻŽāĻžāĻāĻ–āĻžāύ⧇ āĻĨāĻžāĻ•āĻž āϛ⧋āϟ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĻā§āϰ⧁āϤāĻ—āϤāĻŋāϰ memoryāĨ¤

CPU ↔ Cache ↔ Main Memory

Cache Hit

āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ data cache-āĻ āĻĒāĻžāĻ“ā§ŸāĻž āϗ⧇āϞ⧇ āϤāĻžāϕ⧇ cache hit āĻŦāϞ⧇āĨ¤

Cache Miss

āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ data cache-āĻ āύāĻž āĻĒāĻžāĻ“ā§ŸāĻž āϗ⧇āϞ⧇ āϤāĻžāϕ⧇ cache miss āĻŦāϞ⧇āĨ¤

Miss Penalty

Cache miss āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ lower-level memory āĻĨ⧇āϕ⧇ data āφāύāϤ⧇ āϝ⧇ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϏāĻŽā§Ÿ āϞāĻžāϗ⧇, āϤāĻžāϕ⧇ miss penalty āĻŦāϞ⧇āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

Total access = 100
Cache hit = 90
Cache miss = 10
Hit rate = 90/100 = 90%
Miss rate = 10/100 = 10%

āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āϏ⧂āĻ¤ā§āϰ:

AMAT = Hit Time + Miss Rate × Miss Penalty

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Cache = CPU āĻ“ RAM-āĻāϰ āĻŽāĻžāĻā§‡āϰ fast memory
Hit = Cache-āĻ āĻĒāĻžāĻ“ā§ŸāĻž āϗ⧇āϛ⧇
Miss = Cache-āĻ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋ
Miss penalty = RAM āĻĨ⧇āϕ⧇ āφāύāϤ⧇ extra time

Formula:

AMAT = Hit Time + Miss Rate × Miss Penalty

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϞāĻžāχāύ:

āĻĒ⧇āϞ⧇ Hit, āύāĻž āĻĒ⧇āϞ⧇ Miss, āφāύāϤ⧇ āϝāϤ extra time āϞāĻžāϗ⧇ āϤāĻž PenaltyāĨ¤


8. Cache Write Policies

Explain the write-through âœī¸âžĄī¸ and write-back âœī¸đŸ”™ cache handling policies. What are the advantages ➕ and disadvantages ➖ of each? 🤔

āωāĻ¤ā§āϤāϰ

Write-Through

CPU cache-āĻ data āϞāĻŋāĻ–āϞ⧇ āĻāĻ•āχ āϏāĻ™ā§āϗ⧇ main memory-āϤ⧇āĻ“ āϞ⧇āĻ–āĻž āĻšā§ŸāĨ¤

āϏ⧁āĻŦāĻŋāϧāĻž

  • Main memory āϏāĻŦāϏāĻŽā§Ÿ updated āĻĨāĻžāϕ⧇āĨ¤
  • Design āϏāĻšāϜāĨ¤
  • Data consistency āĻ­āĻžāϞ⧋āĨ¤

āĻ…āϏ⧁āĻŦāĻŋāϧāĻž

  • Memory traffic āĻŦ⧇āĻļāĻŋāĨ¤
  • Write operation āϧ⧀āϰāĨ¤
  • Main memory-āϤ⧇ āĻŦāĻžāϰāĻŦāĻžāϰ access āĻ•āϰāϤ⧇ āĻšā§ŸāĨ¤

Write-Back

CPU āĻĒā§āϰāĻĨāĻŽā§‡ āĻļ⧁āϧ⧁ cache-āĻ data āϞ⧇āϖ⧇āĨ¤ Cache block āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāĻŋāϤ āĻšāϞ⧇ dirty bit 1 āĻšā§ŸāĨ¤ Block replace āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ main memory update āĻšā§ŸāĨ¤

āϏ⧁āĻŦāĻŋāϧāĻž

  • Write operation āĻĻā§āϰ⧁āϤāĨ¤
  • Memory traffic āĻ•āĻŽāĨ¤
  • āĻāĻ•āχ block-āĻ āĻŦāĻžāϰāĻŦāĻžāϰ write āĻ•āϰāϞ⧇ main memory-āϤ⧇ āĻāĻ•āĻŦāĻžāϰāχ āϞ⧇āĻ–āĻž āĻšā§ŸāĨ¤

āĻ…āϏ⧁āĻŦāĻŋāϧāĻž

  • Design āϜāϟāĻŋāϞāĨ¤
  • Dirty bit āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤
  • Cache āĻ“ main memory āϏāĻžāĻŽā§ŸāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āφāϞāĻžāĻĻāĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
āĻŦāĻŋāώ⧟ Write-Through Write-Back
Memory update āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇ āĻĒāϰ⧇
Speed āϤ⧁āϞāύāĻžāĻŽā§‚āϞāĻ• āϧ⧀āϰ āĻĻā§āϰ⧁āϤ
Traffic āĻŦ⧇āĻļāĻŋ āĻ•āĻŽ
Complexity āĻ•āĻŽ āĻŦ⧇āĻļāĻŋ
Dirty bit āĻĻāϰāĻ•āĻžāϰ āύ⧇āχ āĻĻāϰāĻ•āĻžāϰ

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Write-through:
Cache + Memory-āϤ⧇ āĻāĻ•āϏāĻ™ā§āϗ⧇ write
āϏāĻšāϜ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϧ⧀āϰ āĻāĻŦāĻ‚ traffic āĻŦ⧇āĻļāĻŋ

Write-back:
āĻĒā§āϰāĻĨāĻŽā§‡ āĻļ⧁āϧ⧁ Cache
āĻĒāϰ⧇ Memory update
āĻĻā§āϰ⧁āϤ, traffic āĻ•āĻŽ, āĻ•āĻŋāĻ¨ā§āϤ⧁ dirty bit āϞāĻžāϗ⧇

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Through = āϏāĻ™ā§āϗ⧇ āϏāĻ™ā§āϗ⧇ āϭ⧇āϤāϰ āĻĻāĻŋā§Ÿā§‡ āϝāĻžā§ŸāĨ¤ Back = āĻĒāϰ⧇ memory-āϤ⧇ āĻĢ⧇āϰāϤ āϝāĻžā§ŸāĨ¤


9. MIPS Register Transfer Logic

Explain the Register Transfer Logic (RTL) đŸ”„đŸ—„ī¸ for the following MIPS instructions: addu, addi, lw, sw, and beq. 📜đŸ’ģ

āωāĻ¤ā§āϤāϰ

addu rd, rs, rt

R[rd] ← R[rs] + R[rt]
PC ← PC + 4

āĻĻ⧁āϟāĻŋ register-āĻāϰ āĻŽāĻžāύ āϝ⧋āĻ— āĻ•āϰ⧇ destination register-āĻ āϰāĻžāϖ⧇āĨ¤

addi rt, rs, immediate

R[rt] ← R[rs] + SignExt(immediate)
PC ← PC + 4

Register-āĻāϰ āĻŽāĻžāύ⧇āϰ āϏāĻ™ā§āϗ⧇ immediate āϝ⧋āĻ— āĻ•āϰ⧇āĨ¤

lw rt, offset(rs)

EA ← R[rs] + SignExt(offset)
R[rt] ← Memory[EA]
PC ← PC + 4

Memory āĻĨ⧇āϕ⧇ data register-āĻ load āĻ•āϰ⧇āĨ¤

sw rt, offset(rs)

EA ← R[rs] + SignExt(offset)
Memory[EA] ← R[rt]
PC ← PC + 4

Register-āĻāϰ data memory-āϤ⧇ store āĻ•āϰ⧇āĨ¤

beq rs, rt, label

āϝāĻĻāĻŋ:

R[rs] = R[rt]

āϤāĻžāĻšāϞ⧇:

PC ← PC + 4 + (SignExt(offset) << 2)

āύ⧟āϤ⧋:

PC ← PC + 4

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

addu → Register + Register
addi → Register + Immediate
lw → Memory āĻĨ⧇āϕ⧇ Register
sw → Register āĻĨ⧇āϕ⧇ Memory
beq → Equal āĻšāϞ⧇ branch

āϏāĻŦ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤ:

PC = PC + 4

āϤāĻŦ⧇ beq true āĻšāϞ⧇ branch target-āĻ āϝāĻžā§ŸāĨ¤


10. Memory–Processor Connection

Briefly describe the basic connection 🔌 of memory 🧠 to the processor. âš™ī¸

āωāĻ¤ā§āϤāϰ

Processor āĻāĻŦāĻ‚ memory āϤāĻŋāύ āϧāϰāύ⧇āϰ bus āĻĻā§āĻŦāĻžāϰāĻž āϝ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇:

  1. Address Bus
  2. Data Bus
  3. Control Bus
             Address Bus
CPU --------------------------> Memory

              Data Bus
CPU <-------------------------> Memory

             Control Bus
CPU --------------------------> Memory

Address Bus

āϕ⧋āύ memory location access āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻžāϰ address āĻĒāĻžāĻ āĻžā§ŸāĨ¤

Data Bus

CPU āĻāĻŦāĻ‚ memory-āĻāϰ āĻŽāĻ§ā§āϝ⧇ data āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

Control Bus

Read, Write, Memory Enable āχāĻ¤ā§āϝāĻžāĻĻāĻŋ control signal āĻŦāĻšāύ āĻ•āϰ⧇āĨ¤

Memory Read

CPU address āĻĒāĻžāĻ āĻžā§Ÿ
→ Read signal āĻĻā§‡ā§Ÿ
→ Memory data āĻĢ⧇āϰāϤ āĻĻā§‡ā§Ÿ

Memory Write

CPU address āĻ“ data āĻĒāĻžāĻ āĻžā§Ÿ
→ Write signal āĻĻā§‡ā§Ÿ
→ Memory data āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰ⧇

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Address Bus → āϕ⧋āĻĨāĻžā§Ÿ?
Data Bus → āϕ⧀ data?
Control Bus → Read āύāĻž Write?

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Address āĻŦāϞ⧇ āϜāĻžā§ŸāĻ—āĻž, Data āĻŦāĻšāύ āĻ•āϰ⧇ āϤāĻĨā§āϝ, Control āĻŦāϞ⧇ āĻ•āĻžāϜāĨ¤


11. Internal Organization of Bit Cells

Briefly explain the internal organization đŸĸ of bit cells 0ī¸âƒŖ1ī¸âƒŖ in a memory chip. 💾

āωāĻ¤ā§āϤāϰ

Memory chip-āĻāϰ bit cell-āϗ⧁āϞ⧋ row āĻāĻŦāĻ‚ column āφāĻ•āĻžāϰ⧇ matrix āĻšāĻŋāϏ⧇āĻŦ⧇ āϏāĻžāϜāĻžāύ⧋ āĻĨāĻžāϕ⧇āĨ¤

                Column Decoder
                      ↓
           ┌─────────────────┐
Row        │ 0  1  0  1  1   │
Decoder →  │ 1  0  1  0  0   │
           │ 0  0  1  1  0   │
           └─────────────────┘

āĻĒā§āϰāϧāĻžāύ āĻ…āĻ‚āĻļ:

Row Decoder

āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ word line āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āĨ¤

Column Decoder

āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ column āĻŦāĻž bit āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āĨ¤

Bit Line

Bit cell-āĻāϰ data āĻŦāĻšāύ āĻ•āϰ⧇āĨ¤

Sense Amplifier

Cell āĻĨ⧇āϕ⧇ āĻĒāĻžāĻ“ā§ŸāĻž āĻ•ā§āώ⧁āĻĻā§āϰ signal-āϕ⧇ 0 āĻ…āĻĨāĻŦāĻž 1 āĻšāĻŋāϏ⧇āĻŦ⧇ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤

Write Driver

Cell-āĻ āύāϤ⧁āύ data āϞāĻŋāϖ⧇āĨ¤

SRAM cell āϏāĻžāϧāĻžāϰāĻŖāϤ 6 transistor āĻĻāĻŋā§Ÿā§‡ āϤ⧈āϰāĻŋ āĻšā§ŸāĨ¤
DRAM cell āϏāĻžāϧāĻžāϰāĻŖāϤ 1 transistor āĻāĻŦāĻ‚ 1 capacitor āĻĻāĻŋā§Ÿā§‡ āϤ⧈āϰāĻŋ āĻšā§ŸāĨ¤

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Bit cells → Row āĻ“ Column matrix

Row Decoder → Row āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ
Column Decoder → Column āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ
Bit Line → Data āĻŦāĻšāύ
Sense Amplifier → 0/1 āĻĒā§œā§‡
Write Driver → Data āϞāĻŋāϖ⧇

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Decoder āϖ⧁āρāĻœā§‡, Bit line āĻŦāĻšāύ āĻ•āϰ⧇, Sense amplifier āĻĒā§œā§‡, Write driver āϞ⧇āϖ⧇āĨ¤


12. Memory Module Design

Design a 2M×32 memory module 💾🧩 using 512K×8 static memory chips. đŸ–Ĩī¸đŸ”§

āωāĻ¤ā§āϤāϰ

āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ module:

2M × 32

āĻĒā§āϰāϤāĻŋāϟāĻŋ chip:

512K × 8

Width calculation

Required width = 32 bits
Chip width = 8 bits
32/8 = 4 chips

āĻ…āϤāĻāĻŦ, āĻāĻ•āϟāĻŋ bank āϤ⧈āϰāĻŋāϰ āϜāĻ¨ā§āϝ 4āϟāĻŋ chip parallel-āĻ āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤

Depth calculation

Required depth = 2M
Chip depth = 512K
2M / 512K = 4 banks

āĻŽā§‹āϟ chip

4 chips per bank × 4 banks
= 16 chips

Address lines

2M = 2²š

āϤāĻžāχ module-āĻāϰ address line:

A₀–A₂₀ = āĻŽā§‹āϟ 21āϟāĻŋ

āĻĒā§āϰāϤāĻŋāϟāĻŋ chip:

512K = 2š⁚

āϤāĻžāχ:

A₀–A₁₈ → āϏāĻŦ chip-āĻāϰ address input
A₁₉–A₂₀ → 2-to-4 decoder

Diagram:

A19, A20
    │
2-to-4 Decoder
 │    │    │    │
B0   B1   B2   B3

āĻĒā§āϰāϤāĻŋāϟāĻŋ bank:

4 × 512K×8 = 512K×32

āϚāĻžāϰāϟāĻŋ bank:

4 × 512K×32 = 2M×32

Final Answer

Total chips = 16
Number of banks = 4
Chips per bank = 4
Address lines = 21
Decoder = 2-to-4

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Width = 32/8 = 4 chips parallel
Depth = 2M/512K = 4 banks
Total = 4 × 4 = 16 chips

Address lines = 21
Decoder = 2-to-4

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Width āĻ­āĻžāĻ—, Depth āĻ­āĻžāĻ—, āϤāĻžāϰāĻĒāϰ āĻĻ⧁āχ āĻĢāϞ āϗ⧁āĻŖāĨ¤


13. Virtual Memory and Cache Mapping

What is virtual memory? â˜ī¸đŸ§  Why is a mapping function đŸ—ēī¸ needed in cache memory. ⚡

āωāĻ¤ā§āϤāϰ

Virtual Memory

Virtual memory āĻāĻŽāύ āĻāĻ•āϟāĻŋ memory-management technique āϝ⧇āĻ–āĻžāύ⧇ secondary storage-āĻāϰ āĻ•āĻŋāϛ⧁ āĻ…āĻ‚āĻļ main memory-āĻāϰ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

Virtual Address
      ↓
Page Table / TLB
      ↓
Physical Address

Program-āϕ⧇ page āĻāĻŦāĻ‚ physical memory-āϕ⧇ frame-āĻ āĻ­āĻžāĻ— āĻ•āϰāĻž āĻšā§ŸāĨ¤

āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ page RAM-āĻ āύāĻž āĻĨāĻžāĻ•āϞ⧇ page fault āϘāĻŸā§‡āĨ¤ āϤāĻ–āύ page-āϟāĻŋ disk āĻĨ⧇āϕ⧇ RAM-āĻ āφāύāĻž āĻšā§ŸāĨ¤

āϏ⧁āĻŦāĻŋāϧāĻž

  • RAM-āĻāϰ āĻšā§‡ā§Ÿā§‡ āĻŦ⧜ program āϚāĻžāϞāĻžāύ⧋ āϝāĻžā§ŸāĨ¤
  • āĻĒā§āϰāϤāĻŋāϟāĻŋ process āφāϞāĻžāĻĻāĻž address space āĻĒāĻžā§ŸāĨ¤
  • Memory protection āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāĨ¤
  • RAM āĻĻāĻ•ā§āώāĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤

Cache Mapping Function

Main memory cache-āĻāϰ āϤ⧁āϞāύāĻžā§Ÿ āĻ…āύ⧇āĻ• āĻŦ⧜āĨ¤ āϤāĻžāχ main memory-āĻāϰ āĻāĻ•āϟāĻŋ block cache-āĻāϰ āϕ⧋āύ location-āĻ āϰāĻžāĻ–āĻž āĻšāĻŦ⧇, āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ mapping function āĻĒā§āĻ°ā§Ÿā§‹āϜāύāĨ¤

Mapping function-āĻāϰ āĻ•āĻžāϜ:

Main Memory Block → āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ Cache Line

Mapping āϤāĻŋāύ āϧāϰāύ⧇āϰ:

  1. Direct Mapping
  2. Associative Mapping
  3. Set-Associative Mapping

āĻāĻ• āϞāĻžāχāύ⧇:

Mapping function āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ main memory-āĻāϰ āϕ⧋āύ block cache-āĻāϰ āϕ⧋āĻĨāĻžā§Ÿ āϰāĻžāĻ–āĻž āĻāĻŦāĻ‚ āϖ⧁āρāĻœā§‡ āĻĒāĻžāĻ“ā§ŸāĻž āĻšāĻŦ⧇āĨ¤

āĻĻā§āϰ⧁āϤ āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāϏāĻžāϰ

Virtual Memory:
Disk-āĻāϰ āĻ…āĻ‚āĻļ RAM-āĻāϰ āĻŽāϤ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ
Page → Frame mapping
Page āύāĻž āĻĨāĻžāĻ•āϞ⧇ → Page fault

Cache Mapping:
Memory block cache-āĻāϰ āϕ⧋āĻĨāĻžā§Ÿ āϝāĻžāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇

āϤāĻŋāύ āϧāϰāύ⧇āϰ mapping:

Direct
Associative
Set-Associative

āĻŽāύ⧇ āϰāĻžāĻ–āĻžāϰ āĻŸā§āϰāĻŋāĻ•:

Virtual memory āϜāĻžā§ŸāĻ—āĻž āĻŦāĻžā§œāĻžā§Ÿ, cache mapping āϜāĻžā§ŸāĻ—āĻž āĻ āĻŋāĻ• āĻ•āϰ⧇āĨ¤


ā§Šā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄā§‡āϰ Final Revision

IEEE:
Single bias 127, Double bias 1023

Multiplier:
16 AND gates, 8-bit result

Booth:
01 Add, 10 Subtract, 00/11 Shift

Performance:
CPU Time = IC × CPI / Clock
IPS = Clock/CPI

P1-P3:
P2 fastest

Flynn:
SISD, SIMD, MISD, MIMD

Cache:
Hit āĻĒāĻžāĻ“ā§ŸāĻž, Miss āύāĻž āĻĒāĻžāĻ“ā§ŸāĻž
AMAT = Hit Time + Miss Rate × Penalty

Write:
Through āĻāĻ–āύāχ, Back āĻĒāϰ⧇

RTL:
lw Memory→Register
sw Register→Memory

Memory Bus:
Address, Data, Control

Memory Design:
4 wide × 4 banks = 16 chips

Virtual Memory:
Disk āĻĻāĻŋā§Ÿā§‡ RAM āĻŦāĻžā§œāĻžā§Ÿ