Class Notes of CSCI 370 Computer Architecture (Spring 2026) =========================================================== Thursday, May 07 ================ Slide 16.10 ----------- T (without L-2 cache) / T (with L-2 cache) = 9 cycles / 3.4 cycles = 2.65 T (without L-2 cache) = 1 + 0.02 x 100 x 10^(-9) sec x 4 x 10^9 cycles / sec = 1 + 8 cycles = 9 cycles T (with L-2 cache) = 1 + 0.02 x 5 x 10^(-9) sec x 4 x 10^9 cycles / sec + 0.005 x 100 x 10(-9) sec x 4 x 10^9 cycles / sec = 1 + 0.4 + 2 cycles = 3.4 cycles Wednesday, May 06 ================= Slide 16.8 ---------- Fully associative cache: 2^0 = 1 set 2^4 = 16 bytes = 4 words 32 - 0 - 4 = 28 bits (tag) 1 x 28 x 4096 = 2^14 x 28 bits (tag) Four-way set associative cache: 4096 / 4 = 2^10 = 1024 sets 2^4 = 16 bytes = 4 words 32 - 10 - 4 = 18 bits (tag) 1024 x 18 x 4 = 2^12 x 18 bits (tag) Two-way set associative cache: 4096 / 2 = 2^11 = 2048 sets 2^4 = 16 bytes = 4 words 32 - 11 - 4 = 17 bits (tag) 2048 x 17 x 2 = 2^12 x 17 bits (tag) Direct-mapped cache: 2^12 = 4096 sets 2^4 = 16 bytes = 4 words 32 - 12 - 4 = 16 bits (tag) 4096 x 16 = 2^12 x 2^4 = 2^16 bits (tag) Slide 16.3 ---------- I x 0.02 x 100 = 2xI cycles (Instruction miss) I x 0.2 x 0.05 x 100 = I cycles (data miss) [cycles (memory)] / [cycles (perfect)] = (1.5 + 2 + 1) / 1.5 = 3 Tuesday, May 05 =============== Slide 16.2 ---------- AMAT = Time for a hit + Miss rate × Miss penalty = 1 cycle + 0.05 x 20 cycles = 2 cycles Slide 15.11.1 ------------- 22 6 4 --- ----- ----------- tag index byte offset Slide 15.10.2 ------------- 64 KB 64x2^10 bytes / (2^2 bytes/block) = 2^14 blocks => n = 14 the block size is 2^0 words 2^0 = 1 => m = 0 2^n×(2^m×32+31-n-m) = 2^14x(2^0x32+31-14) = 2^4x49 x 2^10 = 16x49 Kbits = 784 Monday, May 04 ============== Slide 15.10.1 ------------- A list of 32-bit memory address references is given as word addresses. Assume a direct-mapped cache with 16 one-word blocks. 28 4 0 ----- ----- ----------- : 32 tag index word offset word offset: 0 bits since 2^0 = 1 index: 4 bits since 2^4 = 16 tag: 32 - 4 - 0 = 28 bits sw $t1, offset($t2) Thursday, April 30 ================== Slide 15.7.2 ------------ 1600 / 16 = 100: Q, 0: R 100 / 16 = 6: Q, 4: R 6 / 16 = 0: Q, 6: R 640_16 = 256x6 + 16x4 = 1536 + 64 = 1600 0000 0000 0000 0000 0000 10 10 010 0 0000 ------ ------ index offset Slide 15.7.1 ------------ 01FFF8A C - 4 = byte offset 256 = 2^8 => index: 8 bites 8A = index 01FFF = tag Slide 15.6 ---------- the cache size is 2^n blocks 4 x 2^10 = 2^12 bytes 2^12 bytes / (2^3 bytes/block) = 2^9 blocks => n = 9 the block size is 2^m words 2^1 = 2 => m = 1 2^n×(2^m×32+31-n-m) = 2^9x(2^1x32+31-9-1) = 2^9x(64+21) = 2^9x85 = 42.5x2^10 Wednesday, April 29 =================== X: 01001 = 9 9 % 8 = 001 01 001 if { x == y ) { ... } z = x + y; i < 99 : false/true (1/2 bit) for ( i = 0; i < 99; i++ ) { x = y - z; ... } i < 99 : false/true (1/2 bit) x = y + z; $t0 = 1 $t0 = $t0 + 1 Step 1: read $t0 Step 2: add $t0, 1 Step 3: write $t0 $t0 = 1 or 2 lw $t0, offset($t1) Thursday, April 09 ================== 0: 0000 4: 0100 8: 1000 12: 1100 16: 10000 20: 10100 24: 11000 ...00 sub $a0, $t1, $t0 # $a0 = $t1 - $t0 add $t0, $t1, $t2 beq $t0, $t1, offset if ( x == Y ) then else X - Y = 0 ==> X == Y X - Y <> 0 ==> X <> Y Wednesday, April 08 =================== Slide 11.4 ---------- $t0 := 1 put ($t0 := $t0 + 1) $t0 = 0 $t0 = 1 => $t0 = 2 Tuesday, April 07 ================= Slide 10.18 ----------- (-1)^S × 1.F × 2^val(E) - -- - 1 10 5 2^5 = 32 => 32 - 2 (0 & 31 reserved) = 30 30 / 2 = 15 (bias) 1 - 15 = -14 30 - 15 = 15 Thursday, April 02 ================== Slide 10.14 ----------- 1.010×2^(-1) × –1.110×2^(-2) = –1.001×2^(-2) Step 1: -1 + -2 = -3 Step 2: 1.010 x -1.110 ----------- 0000 1010 1010 + 1010 -------------- 10001100 => -10.001100 Step 3: -10.001100 x 2^(-3) = -1.0001100 x 2^(-2) Step 4: -1.0001100 x 2^(-2) = -1.001 x 2^(-2) Step 5: No overflow or underflow Wednesday, April 01 =================== Slide 10.11 ----------- 1.000×2^(-3) – 1.000×2^2 = –1.000×2^2 Step 1: 1.000×2^(-3) = 0.00001×2^2 Step 2: 01.000 10.111 + 1 --------- 11.000 x 2^2 + 0.00001 x 2^2 ----------------- 11.00001 x 2^2 11.00001 x 2^2 00.11110 x 2^2 + 1 ----------------- 00.11111 x 2^2 = -0.11111 x 2^2 Step 3: -0.11111 x 2^2 = -1.1111 x 2 Step 4: -1.1111 x 2 = -10.0000 x 2 Step 3: -10.0000 x 2 = -1.00000 x 2^2 Step 4: -1.00000 x 2^2 = -1.000 x 2^2 Step 5: No overflow or underflow Slide 10.10 ----------- 1.111×2^(-1) + 1.011×2^(-3) = 1.001×2 Step 1: 1.011×2^(-3) = 0.01011×2^(-1) Step 2: 1.111 + 0.01011 --------- 10.00111 x 2^(-1) Step 3: 10.00111 x 2^(-1) = 1.000111 x 2 Step 4: 1.000111 x 2 = 1.001 x 2 Step 5: No overflow or underflow Tuesday, March 31 ================= Slide 10.6.b ------------ Negative: -1 > -10 1 11111110 11111111111111111111111 Exponent - Bias = 254 - 127 = 127 Significand = 1.F = 1.11111111111111111111111 ~ 2 (-1)^S × 1.F × 2^val(E) = -2x2^127 = -2^128 Positive: 0 00000001 00000000000000000000000 Exponent - Bias = 1 - 127 = -126 Significand = 1.F = 1.00000000000000000000000 = 1 (-1)^S × 1.F × 2^val(E) = 1x2^(-126) = 2^(-126) Monday, March 30 ================ Slide 10.6.a ------------ 0 11111110 11111111111111111111111 (-1)^S × 1.F × 2^val(E) = (-1)^0 x 1.11111111111111111111111 × 2^val(E) ~ 2 x 2^127 Value of exponent = val(E) = E – Bias = 254 - 127 = 127 E = 11111110 = 2 + 4 + 8 + 16 + 32 + 64 + 128 = 254 Slide 10.5.b ------------ (-1)^S × 1.F × 2^val(E) 1 10000001 101101 00000000000000000 6 = 110 0.8125 x 2 = 1.625 => 1 0.6250 x 2 = 1.250 => 1 0.2500 x 2 = 0.500 => 0 0.5000 x 2 = 1.000 => 1 0.8125 = 0.1101 6.8125 = 110.1101 = 1.101101 x 2^2 2 + 127 = 129 = 128 + 1 = 2^7 + 2^0 = 10000001 Slide 10.5.a ------------ (-1)^S × 1.F × 2^val(E) = (-1)^1 x 1.0010101 x 2^val(E) = -1.1 x 2^(-7) = -(1 + 2^(-1) ) / 128 = -1.5 /128 = -0.0117 Value of exponent = val(E) = E – Bias = 1016 - 1023 = -7 E = 01111111000 = 8 + 16 + 32 + 64 + 128 + 256 + 512 = 1016 = 1029 Slide 10.4.c ------------ (-1)^S × 1.F × 2^val(E) = (-1)^0 x 1.0010101 x 2^val(E) = 1.0010101 x 2^6 = (1 + 2^(-3) +2^(-5) + 2^(-7) ) x 64 = (1 + 1/8 + 1/32 + 1/128 ) x 64 = (128 + 16 + 4 + 1 ) / 2 = 74.5 Value of exponent = val(E) = E – Bias = 1029 - 1023 = 6 E = 10000000101 = 1 + 4 + 2^10 = 5 + 1024 = 1029 Thursday, March 26 ================== Slide 10.4.b ------------ (-1)^S × 1.F × 2^val(E) = (-1)^0 x 1.010011 x 2^(3) = (1 + 0.25 + 2^(-5) + 2^(-6)) x 8 = (1.25 + 0.03125 + 0.015626) x 8 = 1.296875 x 8 = 10.375 Value of exponent = val(E) = E – Bias = 130 - 127 = 3 E = 10000010 = 2 + 2^7 = 2 + 128 = 130 Slide 10.4.a ------------ (-1)^S × 1.F × 2^val(E) = (-1)^1 x 1.01000 x 2^(-3) = -1.25 / 8 = -0.15625 Value of exponent = val(E) = E – Bias = 124 - 127 = -3 E = 01111100 = 4 + 8 + 16 + 32 + 64 = 124 Slide 8.11 ---------- 1110 = 14 0011 = 3 14 / 3 = 4; R: 2 0010 - 0011 ------- 0010 + 1101 ------ 1111 0001 - 0011 ------- 0001 + 1101 ------ 1110 0011 1100 + 1 ------ 1101 0011 - 0011 ------ 0000 0001 - 0011 ------ 0001 + 1101 ------ 1110 0011 1100 + 1 ------ 1101 Wednesday, March 25 =================== Slide 8.10 ---------- 1110 = 14 0011 = 3 14 / 3 = 4; R: 2 00000010 - 00000011 ---------- 00000010 + 11111101 ---------- 11111111 00000011 11111100 + 1 ---------- 11111101 00000010 - 00000110 ---------- 00000010 + 11111010 ---------- 11111100 00000110 11111001 + 1 ---------- 11111010 00001110 - 00001100 ---------- 00001110 + 11110100 ---------- 1 00000010 00001100 11110011 + 1 ---------- 11110100 00001110 - 00011000 ---------- 00001110 + 11101000 ---------- 11110110 00011000 11100111 + 1 ---------- 11101000 Tuesday, March 24 ================= Slide 8.5 --------- 1100 × 1101 = 12 x 13 = 156 = 10011100 = 2^7 + 4 + 8 + 16 = 128 + 28 = 156 Slide 8.2.b ----------- $a0 = 7FFF FFFF = 0111 1111 1111 1111 1111 1111 1111 1111 + 1 ----------------------------------------- 1000 0000 0000 0000 0000 0000 0000 0000 Slide 8.2.a ----------- $a0 = 7FFF FFFF = 0111 1111 1111 1111 1111 1111 1111 1111 + 1 ----------------------------------------- 1000 0000 0000 0000 0000 0000 0000 0000 < 0 Monday, March 23 ================== Slide 7.5 --------- 123450 ==> 54321 ^ 5 4 3 2 1 0 A ==> B ==> C Slide 7.3.b ----------- 5 + 4 + 3 + 2 + 1 = 15 $t0 = 5 $t1 = 0 Thursday, March 19 ================== Slide 7.3.a ----------- 5 + 4 + 3 + 2 + 1 = 15 n = $v0 = 5 %t0 = n = 5 $t1 = ans = 0 Slide 6.13.c ------------ $t0 = 5 after 1st: 4 = $t0 after 2nd: 3 = $t0 after 3rd: 2 = $t0 after 4th: 1 = $t0 after 5th: 0 = $t0 0 1 1 2 3 5 8 13 ... - a0 t1 $a0 = 0 $t1 = 1 L1: $t2 = ( $t0 > 0 ) ? 1 : 0 $t2 = if ( $t2 == 0 ) stop else { put $a0 add $t2, $t1, $a0 move $a0, $t1 move $t1, $t2 sub $t0, $t0, 1 goto L1 } Monday, March 16 ================ Slide 6.13.b ------------ $t0 = FFFF FFFF = -1 $t1 = (|$t0| > 0) ? 1 : 0 $t1 = 1 if ( $t1 <> 0 ) put 2 else put 1 Slide 6.13.a ------------ $t0 = FFFF FFFF = -1 $t1 = ($t0 > 0) ? 1 : 0 $t1 = 0 if ( $t1 <> 0 ) put 2 else put 1 Slide 6.12.c ------------ $a0 = 5 + 4 + 3 + 2 + 1 = 15 = accumulator $v0 = 5 = counter ($t0 <> 0) ? put 15 : next Slide 6.12.b ------------ X: FF $t0 = FFFF FFFF = -1 $t0 = ($t0 <> -1) ? 1 : 0 $t0 = 0 Slide 6.12.a ------------ $t0 = 0000 00FF = 255 = 2^8 - 1 $t1 = FFFF FFFF = -1 $t0 = ($t0 == $t1) ? 1 : 0 $t0 = 0 Slide 6.10.c ------------ X: FF $t0 = FFFF FFFF = -1 + 1 ---------------- 1 0000 0000 = 0 Thursday, March 05 ================== Slide 6.10.b ------------ $t0 = FFFF FFFF = -1 0000 0002 = 2 FFFF FFFD + 1 ----------------- FFFF FFFE = -2 if ( |$t0| >= |-2| ) put 2 else put 1 Slide 6.10.a ------------ $t0 = 0000 00FF > 0 $t1 = 0000 0000 if ( $t0 >= $t1 ) put 2 else put 1 Slide 6.9.c ----------- $a0 = 5 + 4 + 3 + 2 + 1 = 15 = accumulator $v0 = 5 = counter Slide 6.9.b ----------- $t0 = FF = FFFF FFFF or = 0000 00FF $t1 = -1 = FFFF FFFF if ( $t0 == $t1 ) put 2 else put 1 Slide 6.7.c ----------- $a0 = $a0 / -4 = -14 / -4 0000 1110 = 14 1111 0001 + 1 ----------- 1111 0010 = -14 0000 0100 = 4 1111 1011 + 1 ----------- 1111 1100 = -4 ( 1111 0010 ) / ( 1111 1100 ) = 0 14 - 0 x (-4) = 14 Slide 6.7.b ----------- $a0 = $a0 / $t0 = -14 / 4 = -3 = lo (quotient) hi = -14 - (4x(-3)) = -14 + 12 = -2 (remainder) Slide 6.7.a ----------- $a0 = $a0 / $t0 = -14 / 4 = -3 Slide 6.6.e ----------- $t0 = 8000 0000 = -2^31 x 2 -------------------------------------- 0000 0001 0000 0000 = 2^32 FFFF FFFE FFFF FFFF + 1 --------------------- hi lo = FFFF FFFF FFFF FFFF = -2^32 Wednesday, March 04 =================== Slide 6.6.d ----------- $t0 = 8000 0000 = -2^31 x 2 -------------------------------------- hi lo = 0000 0001 0000 0000 = 2^32 Slide 6.6.c ----------- $t0 = -11 $t1 = 12 hi lo = -132 = $t0 x $t1 = -11 x 12 $a0 = -132 Slide 6.6.b ----------- $a0 = -11 x 12 = -132 Slide 6.6.a ----------- $a0 = -11 x 12 = -132 Slide 6.4.c ----------- X: 8000 0000 = -2^31 $t0 = 8000 0000 - 1 ---------------- 8000 0000 + FFFF FFFF ---------------- $a0 = 1 7FFF FFFF Slide 6.4.a and b ----------------- X: FF = -1 = 1111 1111 $a0 = 1111 1111 1111 1111 1111 1111 1111 1111 = -1 0000 0000 0000 0000 0000 0000 0000 0000 + 1 ------------------------------------------- 0000 0000 0000 0000 0000 0000 0000 0001 $a0 = $a0 + 1 = -1 + 1 = 0 Slide 6.3.d ----------- $a0 = $t1 + $t0 = -2 + 1 = -1 Slide 6.3.c ----------- X: 1 X+1: X+2: X+3: Y: 8000 0000 < 0 $t1 = 8000 0000 < 0 - 1 < 0 -------------------- $t1 = 8000 0000 < 0 + FFFF FFFF = -1 < 0 ----------------------- $a0 = 1 7FFF FFFF = 2^31 - 1 0000 0001 FFFF FFFE + 1 ----------- FFFF FFFF = -1 Tuesday, March 03 ================= Slide 6.3.a & b --------------- X: 1 X+1: X+2: X+3: Y: 7FFF FFFF => max 32 bits $t0 = 1 $t1 = 7FFF FFFF > 0 + 1 > 0 ----------------- $a0 = 8000 0000 = -2^31 < 0 Slide 6.2.c ----------- $t0 = -20 $t1 = -20 => 20 $a0 = 20 - (-20) = 40 Slide 6.2.b ----------- i: '7' $t0 = '7' $t0 = <= 7 = '7' - '0' = 55 - 48 Slide 6.2.a ----------- X: 10 X+1: X+2: X+3: Y: -20 :X+4 Y+1: :X+5 Y+2: :X+6 Y+3: :X+7 $t0 = 10 $t1 = -20 $a0 = -30 Slide 6.1.c ----------- i: 7 s: <= '7' = 55 = '0' + 7 s+1: 0 $t0 = 7 Slide 6.1.b ----------- X: 10 $t0 = 10 $a0 = -10 Slide 6.1.a ----------- X: 10 X+1: X+2: X+3: Y: -20 :X+4 Y+1: :X+5 Y+2: :X+6 Y+3: :X+7 $t0 = 10 $t1 = -20 $a0 = -10 Monday, March 02 ================ Slide 5.21.c ------------ $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 => 0000 0000 0000 0001 0000 0000 0000 0000 2^16 = 65536 Slide 5.21.a ------------ msg: Class, Greeting0 Slide 5.20.c ------------ X: 01 => 02 X+1: 02 => 01 $t0 = 0000 0001 $t1 = 0000 0002 X = 0012 => 0000 0000 0000 0000 0000 0001 0000 0010 = 2 + 2^8 = 258 Thursday, February 26 ===================== Slide 5.20.b ------------ X: 02 X+1: 01 => 00 X+2: 00 X+1: 00 $t0 = X $a0 = 2 Slide 5.20.a ------------ X: 04 X+1: 03 X+2: 02 X+1: 01 $t0 = X $a0 = 3 Slide 5.18.c ------------ s: a s+1: b s+2: c => d s+3: 0 $t0 = d $a0 = s+2 Slide 5.18.b ------------ X: 1 X+1: Y: 2 => 1 :X+2 Y+1: :X+3 $t0 = 1 $a0 = 1 Slide 5.18.a ------------ X: 1 X+1: X+2: X+3: X+4: 2 => 1 X+5: X+6: X+7: X+8: 3 : Y X+9: : Y+1 X+10: : Y+2 X+11: : Y+3 $t0 = 1 $a0 = 3 Slide 5.17.f ------------ val: 01 val+1: val+2: 02 val+3: 03 val+4: 04 val+5: 05 val+6: 06 val+7: 07 val+8: $t0 = val+1 $a0 = 3 Slide 5.17.e ------------ s: a s+1: b s+2: c s+3: 0 $t0 = 2 $a0 = s+2 Slide 5.17.d ------------ s: a s+1: b s+2: c s+3: 0 $t0 = s + 1 $a0 = b Wednesday, February 25 ====================== Slide 5.17.c ------------ s: a s+1: b s+2: c s+3: 0 $t0 = s+2 $a0 = s+2 Slide 5.17.b ------------ val-1: 1 val: 2 val+1: 3 $a0 = 0000 0001 = 1 Slide 5.17.a ------------ val: 00 val+1: 01 val+2: 10 val+3: 00 $a0 = 0000 0010 = 16 Slide 5.16.c ------------ val: 1 val+1: val+2: 2 val+3: val+4: 3 val+5: val+6: val+7: $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 Slide 5.16.b ------------ val: 1 val+1: val+2: 2 val+3: val+4: 3 val+5: val+6: val+7: Slide 5.16.a ------------ s: a s+1: b s+2: c s+3: 0 $a0 = s+1 Slide 5.15.c ------------ val: -10 $t0 = 0000 0000 0000 0000 0000 0000 0000 0000 $t0 = 0000 0000 0000 0000 0000 0000 -10 = 0000 0000 0000 0000 0000 0000 1111 0110 $a0 = 0000 0000 0000 0000 0000 0000 1111 0110 = 246 1111 0110 = 2 + 4 + 16 + 32 + 64 + 128 = 246 Slide 5.15.b ------------ val0: 0 val1: 1 val2: 2 $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 $a0 = 0000 0000 0000 0000 1 0 = 0000 0000 0000 0000 0000 0001 0000 0000 = 2^8 = 256 Slide 5.15.a ------------ val0: 0 val1: 1 val2: 2 Slide 5.14.d ------------ val: -10 val+1: val+2: val+3: val+4: ... $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 $a0 = 1111 1111 1111 1111 1111 1111 1111 0110 = -10 0000 0000 0000 0000 0000 0000 0000 1001 + 1 ----------------------------------------------- 0000 0000 0000 0000 0000 0000 0000 1010 = 10 2 + 4 + 16 + 32 + 64 + 128 = 246 0000 1010 = 10 1111 0101 + 1 ---------------- 1111 0110 = -10 Monday, February 23 =================== Slide 5.14.c ------------ val: -10 val+1: 0 val+2: 0 val+3: 0 val+4: 0 ... $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 $a0 = 0000 0000 0000 0000 -10 = 0000 0000 0000 0000 0000 0000 1111 0110 = $a0 2 + 4 + 16 + 32 + 64 + 128 = 246 0000 1010 = 10 1111 0101 + 1 ---------------- 1111 0110 = -10 Slide 5.14.b ------------ val: -10 val+1: val+2: 0 val+3: 0 val+4: 0 ... $a0 = 0000 0000 0000 0000 0000 0000 0000 0000 $a0 = 1111111111111111111 -10 = 1111111111111111111 1111 1111 1111 0110 = $a0 0000000000000000000 0000 0000 0000 1001 + 1 ----------------------------------------------- 0000000000000000000 0000 0000 0000 1010 = 10 0000 0000 0000 1010 = 10 1111 1111 1111 0101 + 1 --------------------------- = 1111 1111 1111 0110 = -10 Slide 5.14.a ------------ val: -10 val+1: val+2: val+3: val+4: 0 ... Slide 5.12.f ------------ X: 1 X+1: 0 X+2: X+3: Y: 2 Y+1: Y+2: Y+3: ... $a0 = 02000000 Slide 5.12.e ------------ s: 100 s+1: s+2: s+4: s+5 0 ... $t0 = 100 $a0 = 100 Thursday, February 19 ===================== Slide 5.12.d ------------ X: 1 Y-1: 0 :X+1 Y: 2 :X+2 Y+1: :X+3 Y+2: ? :X+4 Slide 5.12 ---------- s: x s+1: y s+2: z s+3: 0 s+4: ? ... Tuesday, February 17 ==================== 10000000 = 2^7 = 128 - 01111111 = ? ----------------------- 00000001 = 1 ? = 128 - 1 = 127 10000000 01111111 + 1 ---------- 10000000 = -2^7 = -128 75E0 = 14x16 + 5x256 + 7x4096 = 224 + 1280 + 28672 = 30176 1462 / 16 = 91, R: 6 91 / 16 = 5, R: B 5 / 16 = 0, R: 5 0 / 16 = 0, R: 0 Thursday, February 12 ===================== B65F = 15 + 5x16 + 6x16^2 + 11x16^3 = 46687 100000000000000000000000000000000 = 2^32 - 11111111111111111111111111111111 = 2^32-1 --------------------------------------- 00000000000000000000000000000001 = 1 11010 = 1x2^1 + 1x2^3 + 1x2^4 = 2 + 8 + 16 = 26 Slide 4.15.c ------------ var: 12345 var+1: var+2: var+3: var+4: .... Slide 4.15.b ------------ s: a s+1: b s+2: c s+3: 0 s+4: Wednesday, February 11 ====================== Slide 4.15.a ------------ s1: a :s2-3 s1+1: b :s2-2 s1+2: c :s2-1 s2: x :s1+3 s2+1: y :s1+4 s2+2: z :s1+5 s2+3: 0 :s1+6 Tuesday, February 10 ==================== str: "abc" (ascii) abc0 (asciiz) qwef567 poabc096bxasThis is a test.0 123ab ---------------------------------------------- ^ ^ ^ str buf array1 array1[0] + array1[1] print str; Wednesday, February 04 ====================== Slide 3.13.c ------------ Geometric Mean = ( Π SPECratioi )1/n, where Π ai means the product a1×a2×...×an, i = 1 .. n Geometric Mean = (21.65 x 8.5)^0.5 = Slide 3.13.b ------------ SPECratio = reference time / execution time. SPECratio(perl) = 8660 / 400 SPECratio(mcf) = 8500 / 1000 Slide 3.13.a ------------ CPU times = ( Instruction count × CPI ) / Clock rate CPI = 400 sec / (1750 x 10^9 inst x 0.25 x 10^(-9) sec / cycle) = 400 / (1750 x 0.25) cycles/inst Slide 3.10 ---------- Power = ½ × Capacitive load × Voltage2 × Frequency switched 0.8 = Power2 / power1 = (0.5 x C2 x 3^2 x 1 x 10^9) / (0.5 x C1 x 6^2 x 0.5 x 10^9) => C2 / C1 = (0.8 x 36 x 0.5) / 9 = Tuesday, February 03 ==================== Slide 3.6 --------- Time = Seconds / Program = ( Instructions / Program ) × ( Clock cycles / Instruction ) × ( Seconds / Clock cycle ) CPU times = ( Instruction count × CPI ) / Clock rate Time(Old) = 20 sec = I x CPI / Rate Time(New) = ? sec = 0.5xI x 1.2xCPI / Rate = 0.6 x I x CPI / Rate = 0.6 x 20 = 12 sec Slide 3.6 --------- CPU times = ( Instruction count × CPI ) / Clock rate Cyecles1 = 10^4 x 0.3 x 1 + 10^4 x 0.3 x 2 + 10^4 x 0.4 x 3 = 3000 + 6000 + 12000 = 21000 cycles Time1 = 21000 cycles / (2 x 10^9 cycles/sec) = 10500 x 10^(-9) sec Cyecles2 = 10^4 x 0.3 x 2 + 10^4 x 0.3 x 2 + 10^4 x 0.4 x 2 = 6000 + 6000 + 8000 = 20000 cycles Time2 = 20000 cycles / (1.5 x 10^9 cycles/sec) = 13333 x 10^(-9) sec Monday, February 02 =================== Slide 3.5 --------- CPU execution time for a program = CPU clock cycles for a program / Clock rate CPU clock cycles = Instructions for a program × Average clock cycles per instruction (CPI) Performance1 / Performance2 = Execution time2 / Execution time1 I inst x 2 cycles / instr = 2xI cycles 2 x I cycles / (2.5 x 10^9 cycles / sec) = 2 x I / (2.5 x 10^9) sec I inst x 2.5 cycles / instr = 2.5xI cycles 2.5 x I cycles / (3.0 x 10^9 cycles / sec) = 2.5 x I / (3 x 10^9) sec (2.5 x I / (3 x 10^9)) / (2 x I / (2.5 x 10^9)) = (2.5/3) /(2/2.5) = 2.5 x 2.5 / (3 x 2) = 1.04 Thursday, January 29 ==================== Slide 3.4.b ----------- PerformanceC / PerformanceB = Execution timeB / Execution timeC = 5 => Execution timeC = 30 sec / 5 = 6 sec Slide 3.4.a ----------- CPU execution time for a program = CPU clock cycles for a program / Clock rate TimeB = 8 = CycleB / (RateA/2) => CycleB = (8 sec x 4 x 10^9 cycles / sec ) / 2 = 16 x 10^9 cycles Slide 3.2.b ----------- PerformanceX / PerformanceY = Execution timeY / Execution timeX = n PerformanceA / PerformanceB = Execution timeB / Execution timeA = 3 => TimeB = 3 * TimeA = 3 * 30 = 90 Slide 3.2.a ----------- PerformanceX / PerformanceY = Execution timeY / Execution timeX = n PerformanceA / PerformanceB = Execution timeB / Execution timeA = 25 / 10 = 2.5 Wednesday, January 28 ===================== Slide 2.21: ----------- Yield = 1 / ( 1 + Defects per area × Die area )^n = 1 / ( 1 + 0.02 x 2.62 )^2 = 1 / ( 1.0524 x 1.0524) = 1 / 1.10754576 = 0.9029 Die area = 3.14 x (20 / 2)^2 / 120 = 314 / 120 = 2.62 ============================================ word b, c, a; // 1 word = 4 bytes lw $t1, 8($t6) // $t1 = a relocatable address $t6 = 1008 (1000 + 8) // base address = 1000 $t6 = 2008 (2000 + 8) // base address = 2000 INTEGER A; A := 1.2; 4th generation: SQL: FIND ALL RECORDS WHERE NAME IS "SMITH" 3rd generation: for ( i = 0; i < 1000; i++ ) { if ( name[i] == "SMITH" ) print record[i] } CPU (with +, but no x) 1 + 2 = 3 Microarchitecture (without x) 2 x 3 = 6 = 2 + 2 + 2 (microcode or firmware) SIMD: Single Instruction/Multiple Data RISC: Reduced Instruction Set Computer (ARM & MIPS) CISC: Complex Instruction Set Computer (Intel) MIPS: https://mips.com/ ARM: https://www.arm.com/products/silicon-ip-cpu Load-store computers Stored-program computers