Errata for the 4 Printing Computer Organization and Design

advertisement
Computer Organization and Design
The Hardware Software Interface, 2E
Dave Patterson & John Hennessy
Errata for the 4th Printing
#
1.
Page
12
Error
Figure 1.6, In the last sentence of the figure caption text, Change “70” to “75”
2.
14
Figure 1.8, In the 8th – 10th lines of the figure caption text, Replace “The large box to the
lower left contains the power supply, and above it are a hard magnetic disk drive and a
floppy disk drive.” with “The large box on the lower left is a cage for mounting
additional drives; above it are a hard disk drive and a floppy disk drive. The power
supply is normally to the right of this box, but it was removed to get a better view of the
motherboard.”
3.
19
Line 241, Change “3600 to 7200” to “5400 to 15000”
4.
30
Figure 1.20, In the 9th line of the figure caption text, Change “SPECin95base” to
“SPECint95base”
5.
43
Figure 1.30, In the 8th and 10th column headings, Change “Price/performance vs.
UNIVAC” “Adjusted price/performance vs. UNIVAC” to “Price-performance vs.
UNIVAC” “Adjusted price-performance vs. UNIVAC”
6.
76
Line 27, At the end of the sentence, Add “(The measurements for the B5500 and CDC
6600 are shown as dashed lines in Figure 2.9.)”
7.
77
Figure 2.9, on the bottom left corner, Change “NU 1108” to “UNIVAC 1108”
8.
81
Line 8, Change “means of the ratios” to “mean of the ratios”
9.
112
In the 10th line of the answer section, Replace, “h ($s2) to A[8]($t0) and put the
sum in the register corresponding to g($s1)” with “h (contained in $s2) to
A[8]($t0) and put the sum in the register corresponding to g(associated with
$s1)”
10.
119
In the 4th line of code in the Example section, Change A[i] to A[300]
11.
120
In the 8th line of the Answer section, Change the font of “add” so that it is the same lw
in next paragraph
12.
131
Figure 3.9, In the third table, 6th row, 6th column, Change “25” to “100”
13.
144
In 5th-6th lines of text, and the 5th-6th lines of code, Replace
1
All line numbers apply to running text only, and do not include bullets, subpoints, code, captions,
headings, or tables.
Next we increment i and loop back if the character was not 0; that is, if this is not the last
character of the string.
add
$s0,$s0,1
#I = I + 1
bne
$t2,$zero,L1
# if y[i] != 0, go to L1
with
Next we exit the loop if the character was 0; that is, if it is the last character of the string.
beq
$t2, $zero, L2
# if y[I] == 0, go to L2
If not, we increment i and loop back
add
$s0, $s0, 1
# I = I + 1
j
L1
# go to L1
14.
144
In the 6th line of code, Insert L2: before lw
15.
149
In the 6th line of the Answer section, Change “(12)” to “(16)”
16.
156
Figure 3.21, In the 8th line of the figure caption text, Change .TXT, to .C
17.
164
Figure 3.23, In the 2nd line of the figure caption text, Change “III” to “II”
18.
164
In the 5th lines of the Register Allocation for swap section, Change “144” to “136”
19.
165
Figure 3.24, In the 1st row, Change al to $al
20.
165
Figure 3.24, In the 2nd row, Change tl to $tl
21.
177
In the 6th line of code, Change Loop,ctr!=0 to Loop,$ctr!=0
22.
181
Figure 3.31, In the 3rd and 4th rows of the MIPS equivalent column, change “$s1” to
“$s2”
23.
222
Figure 4.4, Change column heading “Result” to “Result indicating overflow”
24.
228
Figure 4.7, 2nd table, 19th row, 4th column, Change ($sl!=$s2) to ($s1==$s2)
25.
228
In Figure 4.7, 2nd table, 20th row, 4th column, Change ($sl== $s2) to
($sl!=$s2)
26.
229
In the 1st line of the Answer section, Change “C right-aligns” to “C typically rightaligns”
27.
230
In the 10th line of the text, Replace “for an excuse that sltiu does not sign extend its
immediate.” with “with an excuse for why sltiu sign extends its immediate field.”
28.
233
Line 8, Change “one” to “all”
29.
233
Figure 4.13, In the 2nd line of the figure caption text, change “above” to “on page 234”
30.
244
Figure 4.22, In the middle pipe, Move p0 below handle
31.
246
Line 3, Change “3” to “c3”
32.
253
Line 7, Replace “cycles to multiply.” with “cycles to multiply two 32-bit numbers.”
33.
265
In the division problem, Realign the digits according to the following error: the quotient
is misaligned relative to the dividend by half a character; the partial remainder terms are
misaligned by a full character relative to the dividend, making them appear to be off by
one-digit position.
34.
271
Figure 4.41, Change the font color of “Shift Right” to teal. Change the font color of
“Shift Left” and the arrow that follow to black.
35.
273
In the 10th line of the Elaboration section, Change “dividend” to “divisor”
36.
292
Figure 4.48, 2nd table, 1st row, 1st column, Change “32-21” to “23-21”
37.
292
Figure 4.48, third table, Change Header from “(f above: 01000⇒ f = s, 01001⇒ f = d)”
to “(f above: 10001⇒ f = s, 10001⇒ f = d)”
38.
300
In the 29th line of the Elaboration section, Change “smallest single precision” to
“smallest positive single precision”
39.
310
On the left side of the table, row 23, Change bgezal to bltzal
40.
324
In the 3rd line of Exercise 4.14, Change “A.18 (page A-50)” to “A.19 (page A-54)”
41.
331
Figure 4.56, bottom element, Add arrowhead to line “c’2”
42.
346
Figure 5.6, In the top right hand corner, Change “ALU control” to “ALU operation”
43.
350
In the 5th line of the Elaboration section, Change “branch before jumping” to “branch in
sequential instruction order before jumping?
44.
361
In the 3rd-5th lines of #1, Delete “…those that are asserted in later steps of an R type
instruction are in gray, and those in light gray are those not active for an R-type
instruction in any step.”
45.
372
Figure 5.29, The to input to the leftmost mux of the pair of muxes in the upper right
corner should not be bold (unbold the lst segment of the line).
46.
373
In the 1st line of the Example section, Change “time” to “times
47.
373
In the 7th line of the Example section, Change “R-format instructions” to “ALU
instructions”
48.
374
In the 1st row of the top table, Change “R-format” to “ALU type”
49.
374
In the 1st row of the bottom table, Change “R-format” to “ALU type”
50.
375
In the 5th-6th lines of the Example section, Replace “Using the instruction distribution
for spice from Chapter 4, Figure 4.54 on page 311, find the performance” with “Find the
performance”
51.
376
In the 3rd line of the math in the Answer section, Change + 2 * 2% + 20 * 7% + 12 * 7%
= 7.0 ns to + 2 * 2% + 12 * 7% + 20 * 7% = 8.0 ns
52.
383
Figure 5.33, Add an arrowhead to the line labeled “PC[31-28]” goes left to right (change
intersection to arrowhead from bullet)
53.
385
Line 34, Change “setting PCWrite” to “setting PCSource to ∅∅ and setting PCWrite”
54.
386
Line 31, Change “three” to “four”
55.
387
Line 17, Change “The PCCondWrite signal” to “The PCWriteCond signal.”
56.
387
In the 4th line of code, Change <<2) to <<2);
57.
388
Line 13, Change “for loads, the signal” to “for loads and stores, the signal”
58.
392
Lines 20-21, Delete, “(This is not needed for stores, since the write address uses a
different input into the memory.)”
59.
393
Figure 5.38, Change the label on #4 from “Write-back step” to “Memory read completion
step”
60.
396
Figure 5.42, Change the label on #4 from “Write-back step” to “Memory read completion
step”
61.
397
In the 2nd line of the Example section, Replace “in the example starting on page 373,”
with “in Figure 4.54 on page 311,”
62.
397
In the 1st-2nd lines of the Answer section, Replace “The mix is 22% loads, 11% stores,
49% R-format operations, 16% branches, and 2% jumps.” with “The mix is 23% loads
(1% load byte + 1% load halfword + 21% load word), 13% stores (1% store byte + 12%
store word), 19% branches (9% BEQ, 8% BNE, 1% BLTZ, 1% BGEZ), 2% jumps (1%
jal + 1% jr), and 43% ALU (all the rest of the mix).”
63.
397
In the 3rd bullet, Change “R-format” to “ALU”
64.
397
In the CPI equation at the bottom of the page, Replace
“0.22*5+0.11*4+0.49*4+0.16*3+0.02*3=1.1+0.44+1.96+0.48+0.06=4.04”
with
“0.23*5+0.13*4+0.43*4+0.19*3+0.02*3=4.02”
65.
398
In the 3rd line of the Elaboration section, Change “combinatorial” to “combinational”
66.
405
In the 1st row of the 3rd table, Change “ALU output” to “ALUOut”
67.
508
Line 17, Replace “microcode store would determine the value of the” to “microcode
storage would determine the values of the”
68.
414
Figure 5.48, the arrow going into the EPC should connect from the output of the ALU
(i.e. to the left of the ALUOut box, rather than to the right). (The two other lines coming
out of ALUOut to two muxes should remain as is.)
69.
414
Figure 5.48, After the last sentence of the figure caption text, Add “For simplicity, this
figure does not show the ALU overflow signal, which would need to be stored in a onebit register and delivered as an additional input to the control unit (see Figure 5.50 to see
how it is used).”
70.
415
Figure 5.49, In state 10, Change “PC++Source” to “PC+Source”
71.
415
Figure 5.49, In the 9th line of state 11, Delete “PCSource=11”
72.
416
Figure 5.50, In the 2nd line of state 8, Change “00” to “10”
73.
420
In the first line of italics, Change “space in control” to “space in the control”
74.
427
In the 1st line of Exercise 5.4 , Change , “<§5.3>” to “<§5.4>”
75.
430
Line 1, Change “ISA” to “instruction set”
76.
443
Figure 6.5, Move “Reg” blocks that follow “Instruction fetch” to spot on their immediate
right 6 times
77.
447
Figure 6.9, Change lw $s0 20($t1) to
78.
462
Figure 6.21, In the first line of the “Program execution order” Change
lw $10, $20($1) to lw $10, 20($1)
79.
473
Figure 6.32, In clock cycle 4, Change “ID: and $12, $2, $3” to “ID: and $12, $4, $5”
80.
483
In the 1st-3rd lines of code, Delete semicolon (three times)
81.
484
Figure 6.40, In the mux capsules in the center of the figure, Reverse bottom two arrows
pointing to the capsule in the middle, so that the top one is longer than the bottom one
82.
491
Figure 6.45, Move bubble from cycle 4 to cycle 3
83.
498
Line 4, Change “ANDing” to “ORing”
84.
500
Figure 6.52, In the 4th line of the figure caption text, Change or to sll
85.
504
In the 1st-2nd lines of the Answer section, Replace “The instruction mix for gcc is 22%
loads, 11% stores, 49% R-format operations, 16% branches, and 2% jumps (see Answer
on page 397).” with “The instruction mix for gcc is 23% loads, 13% stores, 19%
branches, 2% jumps, and 43% (see Answer on page 397).”
86.
504
The fifth line of the Answer section should read, “Stores take 1 clock cycle, as do the
ALU instructions.”
87.
504
In the equation of the Answer section, Change 1.5 * 22% + 1 * 11% + 1 * 49% + 1.25 *
16% + 2 * 2% = 1.17 to 1.5 * 23% + 1 * 13% + 1 * 43% + 1.25 * 19% + 2 * 2% =
1.18
88.
504
In the 9th line of the Answer section, Change “2.34” to “2.36”
89.
504
In the 10th line of the Answer section, Change “4.04” to “4.02”
90.
514
In the 10th line of the Answer section, Change “four” to “five”
91.
514
Figure 6.60, In the 2nd row, 2nd column, Insert $s1,$s3,∅
92.
514
Figure 6.60, In the 2nd row, 3rd column, Change ($s1) to ($s3)
93.
514
Figure 6.60, In the 5th row, 3rd column, Change 0($s1) to 16($s1)
94.
514
Figure 6.60, In the 8th row, 3rd column, Change 4($s1) to 8($s1)
95.
514
Figure 6.60, In the 2nd line of the figure caption text, Change “pair” to “instruction in the
loop”
lw $s0, 20($t1)
96.
530
Exercise 6.6, In the 1st and 7th lines, Change “4.42” to “4.41”
97.
530
Exercise 6.9, In the 6th line, Replace “A.18 on page A-50 as references.” to “A.19 on
page A-54 as references”
98.
534
In the 1st line of Exercise 6.22, Change “3.23” to “3.17”
99.
534
In the 4th line Exercise 6.22, after the last sentence, Insert “(Hint: You may have to add
one or more additional stages to the pipeline.)”
100.
535
In the 10th line of Exercise 6.30, Replace “unrolled code, which appears on page 513, and
your code” with “unscheduled code, which appears at the top of page 513, and your
code”
101.
547
In the table at the bottom of the page, Change all “7.5” to “7.6” (5 times)
102.
566
In the 2nd line of math in the Answer section, Change “0.56” to 0.58”
103.
566
In the 5th line of the Answer section, Change “0.56 I = 1.36 I” to “0.58 I = 1.38 I”
104.
566
In the 7th line of the Answer section, Change “1.36 = 3.36” to “1.38 = 3.38”
105.
566
In the 4th line of math of the Answer section, Change “3.36” to “3.38”
106.
566
In the 9th line of the Answer section, Change “3.36” to “3.38”
107.
566
In the 9th line of the Answer section, Change “1.68” to “1.69”
108.
566
In the 17th line of the Answer section, Change “1.36=2.36” to “1.38=2.38”
109.
566
In the 5th line of math of the Answer section, Change “2.36= 2.36” to “2.38=2.38”
1
1
110.
566
In the 6th line of math of the Answer section, Change “1.36” to “1.38”
3.36
3.38
111.
566
In the 7th line of math of the Answer section, Change “1.36” to “1.38”
2.36
2.38
112.
567
In the formula used to “compute the relative performance time”, Replace
IC*CPI*Clock cycle
IC*CPI*Clock cycle
2
with
IC*CPIslow clock*Clock cycle
IC*CPIslow clock*Clock cycle
2
113.
575
In the 2nd line of the Example section, Replace “4K blocks and a 32-bit” with “4K
blocks, a four-word block size, and a 32-bit”
114.
575
Before the first line of the Answer section, Insert “Since there are 16(-24) bytes per
block, a 3-bit address yields 32 –4=28 bits to be used for index and tag.”
115.
575
In the 3rd line of the Answer section, Change “(32-12)*4K=80 Kbits” to “(2812)*4K=64 Kbits”
116.
575
In the 7th-8th lines of the Answer section, Change “(32-11)*2*2K=84 Kbits” to
“(28-11)*2*2K=68 Kbits”
117.
575
118.
575
In the 9th line of the Answer section, Change “(32-10)*4*1K=88” to “(2810)*4*1K=72”
In the 12th line of the Answer section, Replace “32 bits, leading to a total of
32*4K*1=128K tag bits.” with “28 bits, leading to a total of 28*4K*1=112K tag bits.”
119.
587
In the 1st line of #1 of the Elaboration section, Change “bounds” to “limit”
120.
591
Figure 7.24, Move the arrow going from the virtual page number to the TLB from row 4
to row 5
121.
593
Figure 7.25, In the 4th line of the figure caption text, Change “theT” to “the”
122.
627
In the first column, 11th line, of the Key Terms section, Change “exception or directmapped cache” to “direct-mapped cache” and Insert a separate entry for “exception”
123.
646
Lines 20-21, Replace “sectors, and the sector is the smallest unit that can be read or
written. In 1997, sectors are” with “sectors. Originally, the sector was the smallest unit
that can be read or written. With the introduction of Logical Block Access (LBA) disk
drives became addressed by blocks, and a block became the minimum accessible unit.”
In 1997, blocks are”
124.
646
Lines 25-26, Replace “Traditionally, all tracks have the same number of sectors and
hence the same number of bits.” with “Originally, all tracks had the same number of
sectors and hence the same number of bits, but with the introduction of Zone Bit
Recording (ZBR) in the early 1990’s, disk drives changed to a varying number of sectors
(and hence bits) per track, instead keeping the spacing between bits constant. ZBR
increases the number of bits on the outer tracks and thus increases the drive capacity.”
125.
648
Line 4, Delete “, typically a sector”
126.
653
After the last line of the Hardware Software Interface section, Insert “The IP header
specifies that the length of the IP data (from 1 to 65536 bytes). Since the TCP header
uses 20 bytes of the IP data, the maximum size of the TCP data packet is 65536 – 20 =
65516 bytes.”
127.
666
Line 2, Change “4” to “16”
128.
673
Figure 8.15, In the 10th row, Change “25 meters” to “2.5 meters”
129.
688
Line 9, Change “220” to “230”
130.
692
Line 14, After last sentence of paragraph, Insert “Ironically, RAID controllers turned out
to be quite expensive, so that the original meaning of the RAID acronym seemed
inappropriate. The Acronym was recast as “Redundant Arrays of Intelligent Disks”
emphasizing the intelligent control offered by the RAID controller in comparison to the
low-level simple controller used on small drives. Over time, I/O system architects
understood that the advantages of RAID organizations came from the ability to deploy
many heads and the redundancy of multiple drives, rather than the simple use of cheap
drives, and the emphasis focused on intelligent rather than inexpensive arrays.”
131.
693
Figure 8.17, In the 2nd-3rd lines of the figure caption text, Delete “The EXB-120 costs
about as much as two to four workstations.”
132.
714
Figure 9.1, 5th row, Change “2-32” to 2-36”
133.
716
In the 1st line of the math of the Answer section at the bottom of the page, Replace
“Execution time before improvement =” to “Execution time after improvement =”
134.
717
In the 1st line of the math, Replace “Execution time before improvement” to “Execution
time after improvement”
135.
729
In the 8th line of code near the bottom of the page, Change (Pn < (limit/2-1)) to (Pn <
(limit/2)).
136.
735
Figure 9.12, In the 5th row, Change “Tandem NonSrop” to “Tandem NonStop”
137.
737
Line 29, Change “(P* P-1)/2” to “P ∗ (P –1)/2”
138.
750
Figure 9.19, 1st row, 5th column, Change “5” to “13”
139.
750
Figure 9.19, 1st row, 7th column, Change “0.125” to “1”
140.
A-6
Figure A.3, In the 19th line of code, Change 1048 812 to 1048812
141.
A-7
Figure A.4, In the 25th line of code, Change j
142.
A-21
In the 5th line of the Hardware Software Interface section, Change “10008000hex” to
“10010020hex”
143.
A-21
In the 1st and 2nd lines of code in the Hardware Software Interface section, Replace
lui $s0, 0x1000 # 0x1000 means 1000 base 16 or 4096 base
10
lw $v0, 0x8000($s0) # 0x10000000 + 0x8000 = 0x10008000
with
lui $s0, 0x1001 # 0x1001 means 1001 base 16
lw $v0, 0x0020($s0) # 0x10010000 + 0x0020 = 0x10010020
144.
A-27
In the 7th, 15th, & 25th lines of code, Change addu to addiu
145.
A-28
In the 15th line of code, Change addu to addiu
146.
A-28
In the 16th line of code, Change j
147.
A-29
Figure A.12, Move “Old $a0” to first position in frame four times, so “Old $ra” and “Old
$fp” are second and third in the frame, respectively
148.
A-30
In the 27the line of code, Change addu to addiu
149.
A-31
In the 1st,5th,14th, & 24th lines of code, Change addu to addiu
150.
A-31
In the 25th line of code, Change j
151.
A-32
In the 13th line of code, Change addu to addiu
to jr
to jr
to jr
(4 times)
152.
A-32
In the 14th line of code, Change j
153.
A-54
Figure A.19, column 4, Change “rte” to “rfe”
154.
A-54
Figure A.19, column 6, At position 4 Insert “sllv”
155.
A-60
In the 3rd-4th lines of code (Set less than Immediate and Set less than unsigned
immediate), Change all rd to rt
(4 times)
156.
A-60
In the 1st line of text, Change rd to
157.
A-71
In both the first and second tables, in the 5th cell, Change “fd” to “Ø”
158.
A-71
In both the third and fourth tables, in the 7th cell, Change “2” to “Øxe”
159.
A-74
In the 1st line of text, Change dest to fdest
160.
B-19
Figure B.8, In the 2nd line of the figure caption text, Change “32-bit” to “32 1-bit”
161.
B-21
Figure B.11, In the 2nd line of the figure caption text, Change “undermined” to
“undetermined”
162.
B-27
Figure B.20, In rectangle on left, Change “n-to-1” to “n-to-2n”
163.
B-35
In the ninth line, Change “lower” to “higher”
164.
B-36
Line 11, Change “next” to “current”
165.
C-14
Figure C.9, In the 4th line of the figure caption text, Delete “both”
166.
C-14
Figure C.9, In the 4th line of the figure caption text, Change “(j), and (l)).” to “(i), and
(k)).”
167.
C-19
Line 32, Change “460” to “510”
168.
C-22
Figure C.15, Delete the line and label for Bwrite
169.
C-22
Figure C.15, Increase point size of the “AddrCtl” arrowed line to match size of
“PCSource” line
170.
C-29
Figure C.21, 3rd column, 13th row, Insert comma after “0”, Add third line “IRWrite” in
this cell
171.
C-29
Figure C.21, 3rd column, 16th row, Insert comma after “00”
172.
C-30
Line 19, Change “14-9” to “13-6”
to jr
rt
Download