Correzioni al testo di Andrew S. Tanenbaum "Architettura dei calcolatori, un approccio strutturale" 5a Ed., Pearson Prentice Hall, Pearson Education Italia (2006) identificate nell'ambito dell'insegnamento di Architettura degli elaboratori del Corso di laurea di I l. in Informatica, AA 2010-2011, docente: G. Scollo Università degli Studi di Catania, Facoltà di Scienze MM FF NN Dipartimento di Matematica e Informatica Stato del documento: bozza (correzioni ai capp. 1-8), pre-finale Versione: 2.3, Data: 28/05/2012 Cap. 1: p. 32, sez. 1.3.5, par. 2, tre correzioni (aggiornamenti tecnici sulle frequenze di clock dei chip grafici, anche nell'originale in inglese): o PlayStation 2, l.5: "160 MHz" --> "147 MHz" o XBOX, l.8: "300 MHz" --> "233 MHz" o GameCube, l.11: "200 MHz" --> "162 MHz" p. 36, sez. 1.4.1, par. 4, l.4: "8088" --> "8008" p. 43, Fig. 1.14, due correzioni: o chip 8751: "8KB" --> "4KB" o ultima riga: "8751" --> "8752" Cap. 2: p. 60, par. 4, l.4: "10^-6" --> "10^6" p. 66, sez. 2.2.1, par. 3, l.2: "digitale" --> "decimale" p. 69, par. 2, l.6: "John" --> "Jim" p. 74, par. 1, l.3: "errato" --> "corretto" p. 80, par. 3, l.4: "50 ... sia nella ... sia" --> "10 ... nella ... che" p. 81, par. 4, l.2-3: "fra loro una distanza lineare maggiore rispetto a quanta non ne abbiano" --> "una lunghezza maggiore rispetto a" p. 82, par. 2, l.1: "divisi" --> "raggruppati" p. 84, par. 5, l.1: "24 bit" --> "28 bit" p. 87: par. 3, l.2: "ognuno dei k settori fosse diviso" --> "i settori fossero raggruppati k a k" p. 88, Fig. 2.23, e p. 89, par. 5, obiezione tecnica: RAID livello 3 considera solo bit-level striping, ma lo standard permette strisce più lunghe di 1 bit, e.g. 1 byte, purché non più lunghe di un blocco p. 91, par. 2, l.1-2, due correzioni: o "parte vicino al buco e giunge a una distanza di 32 mm dal bordo esterno dopo aver girato" --> ", lasciandosi dietro 32 mm di diametro dal bordo interno, gira per" o "22.118" --> "22.188" p. 92, par. 5, l.11: "1048" --> 2048" p.106, sez. 2.4.2, par. 4, l.6: "127,2 MB/s" --> "133 MB/s" p.106, sez. 2.4.2, par. 5, l.5: "252 MB/s" --> "266 MB/s" p.112, par. 1, l.2: "riflessa, come" --> "trasmessa, come" p.115, par. 2, l.10: "velocità in bit" --> "velocità in bit/s" p.120, par. 4, l.3: "divisone" --> "divisione" Cap. 3: p.132, par. 4, due correzioni: o l.3: "entrambi gli ... sono bassi" --> "almeno uno degli ... è basso" o l.4: "alto" --> "basso" p.135, par. 2, l.9: "A̅B̅+B̅C̅" --> "AB̅+BC̅" p.136, par. 3, l.4: "una funzione" --> "di un'espressione" p.149, par. 1, l.3: "un 1" --> "uno 0" p.151, par. 2, due correzioni: o l.6: "si intende" --> "qui si intende" o l.7: "OR" --> " OR (come invece in Figura 3.19)" p.152, sez. 3.2.4, l.6: "estremità" --> "estremità iniziali" p.153, par. 3, l.1: "rispetto che" --> "piuttosto che" p.157, par. 4, l.9: "dal" --> "del" p.158, par. 3, l.3: "lo stato" --> "il clock" p.160, par. 1, l.5: "il cerchietto d'inversione non è presente per via dell'invertitore" --> "l'effetto del cerchietto d'inversione è annullato dall'invertitore" p.166, par. 6, l.4: "Synchronus" --> "Synchronous" p.176, par. 7, l.6, 2 occorrenze: "10" --> "15" p.177, par. 2, l.4: "prima che l'indirizzo sia" --> "dopo che l'indirizzo è" p.202, par. 4, l.5: "circostante" --> "circostanze" p.209, par. 4, l.5: "per iniziare" --> "per iniziare," p.211, par. 4, l.4: "costante" --> "periodico" p.214, sez. 3.7.1, l.6: "19.200" --> "115.200" p.214, sez. 3.7.1, l.11: "Dato che ... UART, analizzeremo" --> "Analizzeremo" p.215, sez. 3.7.2, par. 1, l.4, 2 occorrenze: "x 8 byte" --> "" p.216, par. 1, l.4: "spazi degli indirizzi" --> "indirizzi dello spazio" p.218, par. 2, l.4: "8KB x 8" --> "8K x 8" p.218, par. 2, l.5: "2KB x 8" --> "2K x 8" Cap. 4: p.237, par. 3, l.1-2: "l'indirizzo" --> "la microistruzione all'indirizzo" p.238, sez. 4.2.1, par. 3, l.4: "alla procedura" --> "alla base delle variabili locali per la procedura" p.240, sez. 4.2.2, punto 2, l.4: "gli indirizzi" --> "l'indirizzo" p.243, par. 2, l.5: "il prefisso dell'istruzione" --> "l'istruzione prefisso" p.243, par. 4, l.1: "meccansimo" --> "meccanismo" p.244, Fig. 4.12(b), e p.245, Fig. 4.13(a) (solo l'occorrenza in area grigia): "locali del chiamante" --> "locali del chiamato" p.251, par. 5, l.5: "micoistruzione" --> "microistruzione" p.253, Fig. 4.17: due correzioni: o istr. wide1: "fetch;" --> "fetch; goto (MBR OR 0x100)" o istr. wide2: eliminare, spostando il commento in coda a quello di wide1 p.254, Fig. 4.17, quattro correzioni: o istr. invokevirtual13: "del numero" --> "della dimensione del blocco" o istr. invokevirtual15: "numero" --> "dimensione del blocco" o istr. invokevirtual16: "SP + H + 1" --> "TOS + H" o istr. invokevirtual18: "wr S" --> "wr" p.254, par. 1, l.7: "verrà descritto in seguito" --> "viene descritto appresso" p.255, par. 6, l.6: "microistruzoni" --> "microistruzioni" p.256, par. 1, l.8: "estraendo" --> "iniziando ad estrarre" p.258, par. 2, l.12: "BIPUSH 3" --> "bipush3" p.258, par. 3, l.5-6: "far ... riferimento alla" --> "riflettere ... la" p.267, par. 4, l.5: "sommare fra loro ... due" --> "operare ... su due" p.268, Fig. 4.25, istr. iload1: "MBR ... in H" --> "Copia LV in H; alla fine del ciclo MBR contiene l'indice" p.268, Fig. 4.26: inserire all'inizio l'istruzione (di attesa): "iload1 Attesa della lettura dell'indice" e rietichettare le istruzioni successive incrementandone di 1 i suffissi p.269, par. 7, l.2: "quelli più" --> "il più vecchio dei due" p.270, par. 4, l.5: "letti" --> "ricaricati" p.271, par. 4, l.7: "MBR contiene l'indirizzo del" --> "MBR1 contiene il" p.272, par. 1, l.3: "all'indirizzo del bus" --> "al bus dell'indirizzo" p.273, Fig. 4.29: "MBR" --> "MBR1" p.274, Fig. 4.30, istr. isub2: "allo" --> dello" p.275, Fig. 4.30, istr. goto3: "IU" --> "IFU" p.275, Fig. 4.30, due correzioni: o istr. invokevirtual5: "OBJREF" --> "OBJREF (nuovo LV)" o istr. invokevirtual6: "SP" --> "TOS" p.282, par. 2, l.2: "micro-operzione" --> "micro-operazione" p.289, par. 3, l.7 e par. 4, l.3: "elementi" --> "linee" p.289, par. 5, l.4: "Last" --> "Least" p.293, par. 5, l.5: "di un'istruzione" --> "dell'indirizzo di un'istruzione" p.298, Fig. 4.43, ciclo 5, l.1: "1" da colonna 3 a colonna 4 dei Registri letti p.299, par. 4, l.5: "si riempie, l'unità" --> "si riempie, l'unità di fetch" p.300, par. 5, due correzioni: o l.3: "dei salvataggi" --> "delle scritture" o l.4: "i salvataggi" --> "le scritture" p.302, par. 1, l.2: "le somme" --> "le somme dei cubi" p.320, Problema 11: "IJVM" --> "JVM" Cap. 5: p.326, par. 5, l.2-3: "Non esiste" --> "Fino a qualche anno fa non esisteva" p.330, par. 1, l.3: "terzo bit" --> "bit 3" p.348, par. 2, l.6: "0xFF" --> "0x0F" p.348, par. 2, l.7: aggiungere alla fine: "Ulteriori codici di escape sono impiegati per opcode da 3 byte." p.348, par. 3, l.3: "istruzioni" --> "istruzioni con operandi" p.348, Fig. 5.14, l.1: "1-2" --> "1-3" p.349, par. 1, l.4: "bit" --> "byte" p.377, Fig. 5.34, legenda in basso a destra: "puntatore alle variabili locali" --> "livello di nidificazione lessicale" p.384, par. 3, l.5-6: "transitor" --> "transistor" p.392, sez. 5.6.4, par. 3, l.8: "indipendetemente" --> "indipendentemente" p.410, Problema 7, l.6-9, 2 correzioni x 4 occorrenze: o "= X" --> "= Y" o "Y" --> "Z" p.411, Problema 20: "terzo bit" --> "bit 3" Cap. 6: p.419, sez. 6.1.2, par. 2, l.2: "512" --> "512 B" p.431, par. 4, l.10: "della" --> "delle" p.432, sez. 6.1.8, par. 3, l.3: "8 KB di" --> "8 K (2^13)" p.442, sez. 6.2.2, par. 5, l.4: "degli indici" --> "indice del file" p.443, par. 1, l.5-6, due occorrenze: "64 KB di" --> "64 K" p.443, par. 3, l.4: "200" --> "2000" p.445, par. 1, l.1-2, due occorrenze: "64 KB" --> "64 K" p.446, par.1, l.1: "Negli" --> "Nei" Cap. 7: p.492, sez. 7.1.1, par. 1, l.4: "macchina," --> "macchina ed ogni istruzione macchina occupa esattamente una parola," p.494, par. 5, l.6: "assembaltivo" --> "assemblativo" p.497, par. 3, l.1: "tre le" --> "tre" p.500, par. 2, l.8: "definzione" --> "definizione" p.504, sez. 7.2.3, par. 4, l.1: "marco" --> "macro" P.507, par. 2, l.1: "tre" --> "almeno tre" p.508, par. 3, l.19: "diretto" --> "immediato" p.512, par. 3, l.6-7: due correzioni: o l.6: "La procedura termina quando" --> "Se" o l.7: "cercato." --> "cercato, la procedura termina." p.513, par. 1, l.5: "in log_2 n" --> "in circa log_2 n" p.518, sez. 7.4.3, par. 3, l.3: "assoulti" --> "assoluti" p.519, Fig. 7.17, didascalia, l.1: "all'indirizzo 300" --> "di 300 posizioni" p.527, Problema 10, l.1: "Berkley" --> "Berkeley" Cap. 8: p.528, par. 4, l.7: "massimo del 10%" --> "fattore 10 al più" p.535, par. 2, l.2: "specificano" --> "specifica" p.535, par. 5, l.2: "8 pixel" --> "8 bit" p.536, Fig. 8.5, l.12: 3 correzioni: o 2 occorrenze: "quattro" --> "operandi di quattro" o "operandi" --> "byte" p.536, par. 2, l.5: "degli" --> "gli" p.539, par. 3, l.2: "fine" --> "grossa" p.540, par. 4, l.5: "normale esecutivo" --> "esecutivo" p.541, par. 4, l.1: "i thread" --> "i due thread" p.541, par. 4, l.3: "hypethreading" --> "hyperthreading" p.548, par. 2, l.2: "nel chip" --> "in singolo chip" p.549, par. 4, l.1: "di fuoco" --> "tagliafuoco" p.555, par. 1, l.4: "bitter" --> "jitter" p.567, par. 1, l.1-2: "del Paragrafo 1.3.3" --> ? p.569, sez. 8.3.2, par. 1, l.4: "nel Paragrafo 8.1.2" --> ? p.570, par. 2, l.6: "sei letture" --> "quattro letture" p.591, sez. 8.4, par. 5, l.4: "8.1.2" --> "8.2.1" pp.592-594, 5 occorrenze: "lati" --> "archi" p.594, par. 2, l.6: "Se sono" --> "Se ci sono" p.613, Fig. 8.43(a): perché non lanciare il job 7 simultaneamente al job 6? pp.620-621, 7 correzioni: o 6 occorrenze: "configurazione" --> "formazione" o p.621, par. 2, l.2-3: "configurare" --> "formare" p.628, par. 2, l.7: "Definiton" --> "Definition"