Keskeistä havaintoa
1. Tietokoneet on rakennettu hierarkkisesti, ja jokaisella tasolla on oma erityinen tehtävänsä.
Tämän kirjan kolme ensimmäistä painosta perustui ajatukseen, että tietokonetta voidaan pitää hierarkiana, jossa jokainen taso suorittaa hyvin määritellyn tehtävän.
Kerrostettu Abstraktio. Tietokonesysteemi ei ole monoliittinen kokonaisuus, vaan sarja kerroksia, joista jokainen rakentuu edellisen päälle. Tämä kerroksellinen lähestymistapa yksinkertaistaa suunnittelua ja ymmärtämistä, jolloin insinöörit voivat keskittyä tiettyihin tasoihin ilman, että heidän tarvitsee hallita koko järjestelmää kerralla. Jokainen taso tarjoaa virtuaalikoneen, joka abstrahoi alempien tasojen monimutkaisuudet.
Hierarkian Tasot. Kirja korostaa keskeisiä tasoja:
- Digitaalisen Logiikan Taso: Perusta, joka käsittelee portteja ja piirejä.
- Mikroarkkitehtuurin Taso: Toteuttaa ISA:n datapolkujen ja ohjaussignaalien avulla.
- Käskyjoukon Arkkitehtuuri (ISA) Taso: Määrittelee konekielen.
- Käyttöjärjestelmän Taso: Hallitsee resursseja ja tarjoaa palveluja sovelluksille.
- Kokoamis- ja Konekielitason Taso: Ihmisen luettavissa oleva esitys konekoodista.
- Ongelmalähtöisten Kielten Taso: Korkean tason kielet, kuten Java tai C++.
Hierarkkisen Mallin Hyödyt. Tämä rakenne mahdollistaa modulaarisuuden, mikä helpottaa komponenttien päivittämistä tai vaihtamista yhdellä tasolla ilman, että se vaikuttaa muihin. Se mahdollistaa myös työnjaon, jossa eri tiimit keskittyvät järjestelmän eri osa-alueisiin. Tämä abstraktio on ratkaisevan tärkeä nykyaikaisten tietokoneiden monimutkaisuuden hallitsemiseksi.
2. Tietokonearkkitehtuuri on kehittynyt erilaisten sukupolvien kautta, joista jokainen on merkitty teknologisilla edistysaskelilla.
Nykyaikainen tietokonehistoria alkaa tästä.
Mekaaniset Alut. Varhaisimmat laskentayritykset sisälsivät mekaanisia laitteita, kuten Babbagen Analyyttisen Moottorin (1834), joka, vaikka ei koskaan täysin toteutunut, loi perustan digitaalisille tietokoneille. Nämä koneet käyttivät vaihteita ja vipuja laskentatehtävien suorittamiseen, mikä edusti merkittävää käsitteellistä hyppyä.
Vakuumiputkiaika. Ensimmäinen sukupolvi elektronisia tietokoneita (1945-1955) nojasi vakuumiputkiin. COLOSSUS (1943) ja ENIAC (1946) olivat uraauurtavia esimerkkejä, mutta ne olivat suuria, paljon energiaa kuluttavia ja alttiita vioille. EDSAC (1949) merkitsi tärkeää askelta toteuttamalla tallennetun ohjelman käsitteen.
Transistorit ja Integroitu Piiritekniikka. Toinen (1955-1965) ja kolmas (1965-1980) sukupolvi toivat mukanaan transistorit ja integroidut piirit. Nämä innovaatiot johtivat pienempiin, luotettavampiin ja energiatehokkaampiin tietokoneisiin. IBM 360 (1964) oli merkkipaalu, joka vakiinnutti tuoteperheen käsitteen.
VLSI ja Sen Yli. Neljäs sukupolvi (1980-nykyhetki) on luonteenomaista erittäin suurille integroiduille piireille (VLSI), jotka mahdollistavat mikroprosessorien ja henkilökohtaisten tietokoneiden luomisen. Mooren laki ennusti transistorien määrän eksponentiaalista kasvua sirulla, mikä vauhditti jatkuvia edistysaskelia laskentatehossa.
3. Tietokone "eläintarha" kattaa laajan valikoiman laitteita, jotka on räätälöity erityisiin tarpeisiin ja taloudellisiin rajoituksiin.
Nykyinen tietokoneiden kirjo. Hinnat kannattaa ottaa suolan (tai vielä paremmin, metrisen tonnin) kanssa.
Monimuotoinen Maisema. Tietokoneiden markkinat eivät ole monoliittisia; ne ovat monimuotoinen ekosysteemi, jossa laitteet vaihtelevat kertakäyttöisistä tietokoneista onnittelukorteissa miljoonien dollarien supertietokoneisiin. Jokainen tyyppi palvelee erityisiä tarpeita, tasapainottaen suorituskykyä, kustannuksia ja kokoa.
Esimerkkejä Tietokonetyypeistä:
- Upotetut tietokoneet: Löytyy kelloista, autoista ja kodinkoneista.
- Pelitietokoneet: Kotivideopelikonsolit.
- Henkilökohtaiset tietokoneet: Pöytätietokoneet ja kannettavat tietokoneet.
- Palvelimet: Verkkopalvelimet yrityksille.
- Suurprosessoreita: Käytetään suurten organisaatioiden erädata prosessoinnissa.
- Supertietokoneet: Käsittelevät monimutkaisia tieteellisiä ja insinööriongelmia.
Teknologiset ja Taloudelliset Voimat. Tietokone "eläintarhan" kehitys on ohjattu teknologisista edistysaskelista ja taloudellisista näkökohdista. Mooren laki, joka ennustaa transistoritiheyden eksponentiaalista kasvua, on mahdollistanut yhä tehokkaampien ja edullisempien laitteiden luomisen. Markkinakysynnät ja kilpailupaineet muokkaavat edelleen maisemaa.
4. Prosessorit suorittavat käskyjä putkistojen kautta, parantaen suorituskykyä rinnakkaisuuden avulla.
Tyypillisen von Neumann -koneen datapolku.
Käskyjen Suoritusjakso. Prosessorit suorittavat käskyjä syklissä, joka sisältää hakemisen, purkamisen, operandin hakemisen, suorittamisen ja kirjoittamisen. Nykyaikaiset prosessorit käyttävät tekniikoita, kuten putkistamista ja rinnakkaisuutta, suorituskyvyn parantamiseksi.
Putkistaminen. Putkistaminen jakaa käskyjen suoritusjakson vaiheisiin, jolloin useita käskyjä voidaan käsitellä samanaikaisesti. Tämä lisää läpimenoa, mutta putkisto voi pysähtyä riippuvuuksien tai haarojen vuoksi.
Rinnakkaisuus. Nykyaikaiset prosessorit saavuttavat rinnakkaisuuden:
- Käskyjen Tason Rinnakkaisuus (ILP): Useiden käskyjen suorittaminen samanaikaisesti.
- Prosessorin Tason Rinnakkaisuus: Useiden prosessorien käyttäminen eri osien työskentelyyn.
RISC vs. CISC. Vähennetyn Käskyjoukon Laskenta (RISC) -arkkitehtuurit suosivat yksinkertaisia käskyjä, jotka voidaan suorittaa nopeasti, kun taas Monimutkainen Käskyjoukon Laskenta (CISC) -arkkitehtuurit käyttävät monimutkaisempia käskyjä, jotka voivat suorittaa enemmän työtä per käsky. Nykyaikaiset prosessorit yhdistävät usein molempien piirteitä.
5. Muisti on järjestetty hierarkkisesti, tasapainottaen nopeutta, kustannuksia ja kapasiteettia.
Viiden tason muistihierarkia.
Muistihierarkia. Tietokoneen muisti on rakennettu hierarkkisesti, ja jokainen taso tarjoaa erilaisen tasapainon nopeuden, kustannusten ja kapasiteetin välillä. Tämä hierarkia sisältää tyypillisesti:
- Rekisterit: Nopeimmat, kalleimmat ja pienimmät.
- Välimuisti: Nopea, suhteellisen kallis ja pieni.
- Päämuisti (RAM): Kohtalaisen nopea, kohtalaisen kallis ja keskikokoinen.
- Toissijainen Muisti (Levy): Hidas, edullinen ja suuri.
- Kolmas Muisti (Nauha, Optinen Levy): Erittäin hidas, erittäin edullinen ja erittäin suuri.
Välimuisti. Välimuisti on pieni, nopea muisti, joka tallentaa usein käytettyjä tietoja, vähentäen tarpeen käyttää hitaampaa päämuistia. Välimuistin suorituskyky riippuu tekijöistä, kuten koosta, assosiatiivisuudesta ja korvauspolitiikasta.
Muistin Pakkaus ja Tyypit. Muisti on pakattu eri muodoissa, kuten SIMM- ja DIMM-muodoissa. Eri RAM-tyypit, kuten SRAM ja DRAM, tarjoavat erilaisia suorituskykyominaisuuksia.
6. Syöttö-/lähtöjärjestelmät (I/O) helpottavat viestintää tietokoneen ja ulkomaailman välillä.
Henkilökohtaisen tietokoneen fyysinen rakenne.
Bussit. I/O-laitteet yhdistetään tietokoneeseen bussien kautta, jotka ovat jaettuja viestintäpolkuja. Nykyaikaisissa järjestelmissä on usein useita busseja, mukaan lukien nopeita busseja, kuten PCI ja USB, sekä hitaampia busseja, kuten ISA.
Ohjaimet. Jokaisella I/O-laitteella on ohjain, joka hallitsee viestintää bussin ja itse laitteen välillä. Ohjaimet voivat käyttää Suoraa Muistisiirtoa (DMA) siirtääkseen tietoja suoraan muistiin ilman CPU:n väliintuloa.
Yleisiä I/O-laitteita:
- Terminaalit: Näppäimistöt ja näytöt käyttäjävuorovaikutukseen.
- Hiiret: Näyttöliittymien osoituslaitteet.
- Tulostimet: Tulostuslaitteet kovakopioiden tuottamiseen.
- Modeemit: Laitteet tietojen siirtämiseen puhelinlinjojen yli.
Merkistökoodit. Merkistökoodit, kuten ASCII ja Unicode, käytetään tekstimerkkien esittämiseen standardoidussa muodossa.
7. Digitaaliset logiikkaportit ja Boolen algebra muodostavat tietokoneen laitteiston perustan.
Transistorinvertteri.
Portit. Digitaaliset piirit rakentuvat logiikkaporteista, kuten AND, OR, NOT, NAND ja NOR porteista. Nämä portit suorittavat perus Boolen operaatioita binaaristen syötteiden perusteella.
Boolen Algebra. Boolen algebra tarjoaa matemaattisen kehyksen digitaalisten piirien analysoimiseen ja suunnitteluun. Se käyttää operaattoreita, kuten AND, OR ja NOT, binaaristen arvojen käsittelemiseen.
Perus Digitaaliset Logiikkapiirit. Yhdistelmät piirit, kuten yhdisteet ja monistimet, rakennetaan toisiinsa kytketyistä logiikkaporteista. Sekventiaaliset piirit, kuten flip-flopit ja rekisterit, käyttävät palautetta tilan tallentamiseen.
CPU-piirit ja Bussit. CPU-piirit sisältävät monimutkaisia digitaalisia logiikkapiirejä, mukaan lukien ALU:t, ohjausyksiköt ja rekisterit. Tietokonebusseilla on viestintäpolkuja CPU:n, muistin ja I/O-laitteiden välillä.
8. Mikroarkkitehtuuri toteuttaa käskyjoukon arkkitehtuurin (ISA) datapolkujen ja ohjaussignaalien avulla.
Esimerkin mikroarkkitehtuurin datapolku, jota käytetään tässä luvussa.
Datapolut. Mikroarkkitehtuurin taso toteuttaa ISA:n datapolkujen avulla, jotka ovat fyysisiä polkuja, joiden kautta tiedot kulkevat. Tyypillinen datapolku sisältää rekisterit, ALU:n ja siirtäjän.
Mikrokäskyt. Mikrokäskyt ohjaavat datapolun toimintaa. Jokainen mikrokäsky määrittelee, mitkä rekisterit luetaan, minkä ALU-toiminnon suorittaminen tapahtuu ja mihin rekisteriin tulos kirjoitetaan.
Mikrokäskyn Ohjaus. Mikrokäskyn ohjaus voidaan toteuttaa mikrosuunnittelulla, jossa ROM:iin tallennettu mikrosuunnitelma ohjaa mikrokäskyjen suorittamista.
Suunnittelun Kauppasuhteet. Mikroarkkitehtuurin suunnittelu sisältää nopeuden ja kustannusten välisiä kauppasuhteita. Tekniikat, kuten putkistaminen ja välimuisti, voivat parantaa suorituskykyä, mutta ne lisäävät myös monimutkaisuutta ja kustannuksia.
9. Käskyjoukon arkkitehtuuri (ISA) määrittelee konekielen ja sen ominaisuudet.
ISA-tason ominaisuudet.
ISA Ominaisuudet. ISA-taso määrittelee konekielen, mukaan lukien käskyjoukon, muistimallin, rekisterit ja tietotyypit. Se tarjoaa abstraktion taustalla olevasta laitteistosta, jolloin ohjelmoijat voivat kirjoittaa koodia ilman, että heidän tarvitsee tuntea mikroarkkitehtuurin yksityiskohtia.
Muistimallit. ISA määrittelee muistimallin, mukaan lukien sen, miten muistia osoitetaan ja järjestetään. Yleisiä muistimalleja ovat lineaarinen osoittaminen ja segmentoituminen.
Rekisterit. ISA määrittelee ohjelmoijille käytettävissä olevien rekisterien määrän ja tyypit. Rekistereitä käytetään tietojen ja osoitteiden tallentamiseen ohjelman suorituksen aikana.
Käskymuodot. ISA määrittelee konekäskyjen muodon, mukaan lukien op-koodin ja operandit. Käskymuodot voivat olla kiinteän tai vaihteleva pituuden omaavia.
10. Käyttöjärjestelmät hallitsevat virtuaalimuistia, I/O:ta ja rinnakkaista prosessointia.
Käyttöjärjestelmän koneen tason sijoittaminen.
Virtuaalimuisti. Käyttöjärjestelmät toteuttavat virtuaalimuistin, joka mahdollistaa prosessien pääsyn suurempaan muistiin kuin fyysisesti on saatavilla. Virtuaalimuisti käyttää tekniikoita, kuten sivutusta ja segmentointia, virtuaaliosoitteiden kartoittamiseksi fyysisiin osoitteisiin.
Virtuaaliset I/O-käskyt. Käyttöjärjestelmät tarjoavat virtuaalisia I/O-käskyjä, jotka mahdollistavat prosessien pääsyn I/O-laitteisiin laite-riippumattomalla tavalla. Tämä sisältää tiedostojen, hakemistojen ja laiteohjainten hallinnan.
Virtuaaliset Käskyt Rinnakkaiseen Prosessointiin. Käyttöjärjestelmät tarjoavat mekanismeja prosessien luomiseen ja synkronointiin, mahdollistaen rinnakkaisen prosessoinnin. Tämä sisältää prosessien luomisen, kilpailutilanteiden välttämisen ja prosessien synkronoinnin käyttämällä semaforeja.
Esimerkkejä Käyttöjärjestelmistä. UNIX ja Windows NT ovat kaksi laajasti käytettyä käyttöjärjestelmää, jotka tarjoavat näitä palveluja.
11. Kokoamiskieli tarjoaa ihmisen luettavan käyttöliittymän konekoodille.
Valikoima Pentium II:n kokonaislukuohjeita.
Kokoamiskielen Perusteet. Kokoamiskieli on matalan tason ohjelmointikieli, joka tarjoaa symbolisen esityksen konekoodista. Se käyttää mnemonisia merkkejä edustamaan käskyjä ja etikettejä edustamaan muistiosoitteita.
Kokoamiskielen Lauseet. Kokoamiskielen lauseet koostuvat tyypillisesti etiketistä, op-koodista ja operandeista. Pseudokäskyjä käytetään kokoamisprosessin ohjaamiseen.
Makrot. Makrot ovat tapa määritellä uudelleenkäytettäviä koodijaksoja kokoamiskielessä. Niitä voidaan käyttää ohjelmoinnin yksinkertaistamiseen ja koodin luettavuuden parantamiseen.
Kokoamisprosessi. Kokoamisprosessi sisältää kaksi vaihetta: ensimmäinen vaihe, joka rakentaa symbolitaulukon, ja toinen vaihe, joka tuottaa konekoodin.
12. Rinnakkaiset tietokonearkkitehtuurit käsittelevät suorituskykyä erilaisten viestintäm
Viimeksi päivitetty:
FAQ
What is "Structured Computer Organization" by Andrew S. Tanenbaum about?
- Hierarchical computer organization: The book presents computers as a hierarchy of levels, from digital logic up to parallel computer architectures, each with distinct roles and functions.
- Comprehensive coverage: It covers processors, memory, I/O devices, instruction set architectures, operating systems, and assembly language, providing a layered understanding of computer systems.
- Modern examples and technologies: The text uses real-world examples like Pentium II, UltraSPARC II, and Java Virtual Machine, ensuring relevance to current industry standards.
- Educational focus: Designed for students and professionals, it includes practical exercises, code samples, and simulators to reinforce learning.
Why should I read "Structured Computer Organization" by Andrew S. Tanenbaum?
- Solid foundational knowledge: The book offers a clear, structured approach to understanding computer architecture, essential for anyone studying or working in computing.
- Real-world relevance: It connects theory to practice with examples from actual processors and operating systems, such as UNIX and Windows NT.
- Hands-on learning: Nearly 300 exercises, Java code examples, and a Mic-1 simulator provide opportunities for practical application.
- Up-to-date content: Coverage of modern technologies like RAID, PCI, USB, and parallel architectures ensures readers stay current with industry trends.
What are the key takeaways from "Structured Computer Organization" by Andrew S. Tanenbaum?
- Layered computer model: Understanding computers as a hierarchy of levels clarifies how hardware and software interact.
- Diverse architectures: Exposure to CISC, RISC, and JVM architectures broadens knowledge of different design philosophies.
- Parallel and memory systems: In-depth discussion of parallel architectures and memory hierarchies highlights performance considerations in modern systems.
- Practical assembly and microprogramming: The book demystifies low-level programming and microarchitecture, bridging the gap between high-level code and hardware execution.
What are the main levels of computer organization described in "Structured Computer Organization" by Andrew S. Tanenbaum?
- Six-level model: The book details digital logic, microarchitecture, instruction set architecture, operating system machine, assembly language, and parallel computer architecture levels.
- Distinct functions: Each level has a specific role, from basic electronic circuits to high-level software and hardware interactions.
- Support mechanisms: The text explains how each level is implemented, such as hardware for logic and microarchitecture, and software for operating system and assembly levels.
- Inter-level relationships: Understanding how levels interact helps clarify the flow of data and control in a computer system.
How does "Structured Computer Organization" by Andrew S. Tanenbaum explain instruction set architecture (ISA)?
- ISA as interface: The ISA is presented as the boundary between hardware and software, defining available instructions, registers, and data types.
- Real-world examples: The book uses Pentium II, UltraSPARC II, and JVM ISAs to illustrate different instruction formats and architectural choices.
- Instruction types: It covers data movement, arithmetic, control flow, procedure calls, and exception handling in detail.
- Design implications: The text discusses how ISA design affects compiler construction, performance, and hardware complexity.
What are the key concepts related to memory and caching in "Structured Computer Organization" by Andrew S. Tanenbaum?
- Memory hierarchy: The book explains the structure and importance of primary, cache, and secondary memory, emphasizing the role of caches in reducing latency.
- Cache design: It covers direct-mapped and set-associative caches, cache lines, replacement policies like LRU, and write strategies such as write-through and write-back.
- Performance impact: Multi-level caches (L1, L2, L3) and their effect on bandwidth and latency are discussed, highlighting their significance in modern CPUs.
- Virtual memory: The text also explores virtual memory models in UNIX and Windows NT, including paging, memory-mapped files, and shared memory.
How does "Structured Computer Organization" by Andrew S. Tanenbaum address parallel computer architectures?
- Comprehensive coverage: The book provides an expanded chapter on parallel architectures, including multiprocessors (UMA, NUMA, COMA) and multicomputers (MPP, COW).
- Design issues: It discusses interconnection networks, communication models, performance metrics, and software considerations for parallel systems.
- Types of parallelism: SIMD, shared-memory multiprocessors, and message-passing multicomputers are explained, with examples and taxonomy.
- Flynn’s taxonomy: The book uses Flynn’s classification (SISD, SIMD, MISD, MIMD) and its extensions to categorize parallel computers.
What are the main differences between UNIX and Windows NT operating systems as described in "Structured Computer Organization" by Andrew S. Tanenbaum?
- System structure: UNIX features a small kernel with user-level shells, while NT has a modular kernel and multiple environmental subsystems.
- Security models: NT offers comprehensive security (Orange Book C2 compliance), whereas UNIX uses simpler user/group/other permissions.
- System calls and APIs: UNIX has minimal, stable system calls; NT uses the extensive Win32 API, including many functions beyond basic system calls.
- Process and memory management: NT supports threads, fibers, and advanced memory management; UNIX supports processes, POSIX threads, and shared memory primitives.
How does "Structured Computer Organization" by Andrew S. Tanenbaum explain microarchitecture and its significance?
- Microarchitecture level focus: The book uses the Java Virtual Machine as an example to illustrate microprogrammed machine design and data path control.
- Performance trade-offs: It discusses the balance between design cost and performance, showing evolution from simple to pipelined designs like the Mic-4.
- Advanced techniques: Topics include caching, branch prediction, out-of-order execution, speculative execution, and predication for CPU performance.
- Practical microprogramming: Detailed microprograms for JVM instructions demonstrate how high-level operations are implemented at the microarchitecture level.
What are the key features of the Intel IA-64 architecture discussed in "Structured Computer Organization" by Andrew S. Tanenbaum?
- EPIC paradigm: IA-64 uses Explicitly Parallel Instruction Computing, with instruction bundles and templates to indicate parallelism, shifting scheduling to the compiler.
- Predication: Many conditional branches are replaced with predicated instructions, reducing pipeline stalls and improving parallelism.
- Speculative loads: The architecture supports speculative LOAD instructions, allowing early execution and later validation for increased instruction-level parallelism.
- Adoption challenges: The book notes the complexity for compilers, operating system support, and software ecosystem readiness as hurdles for IA-64.
How does "Structured Computer Organization" by Andrew S. Tanenbaum approach assembly language and its relationship to high-level languages?
- Assembly vs. high-level: Assembly provides fine control but is more time-consuming; high-level languages offer productivity but may need tuning for performance.
- Pseudoinstructions and macros: Assemblers simplify coding with pseudoinstructions and macros, improving readability and maintainability.
- Symbol tables and linking: The book explains the assembly process, symbol management, and how modules are linked and relocated.
- Dynamic linking: Concepts like DLLs and shared libraries are introduced, showing how modern systems manage code reuse and memory.
What foundational knowledge about binary and floating-point numbers does "Structured Computer Organization" by Andrew S. Tanenbaum provide?
- Number systems: The book covers decimal, binary, octal, and hexadecimal representations, including conversions and their use in computing.
- Integer representations: It explains signed magnitude, one’s complement, two’s complement, and excess notation for signed integers.
- Floating-point formats: IEEE single and double precision formats are detailed, including normalization, exponent bias, and special values.
- Arithmetic operations: Examples of floating-point addition, subtraction, and normalization illustrate hardware implementation and challenges.
Arvostelut
Rakenteellinen tietokoneorganisaatio saa pääasiassa positiivisia arvioita, keskimääräisellä arvosanalla 4.03/5. Lukijat arvostavat sen huumoria, selkeitä selityksiä ja kattavaa käsittelyä tietokonearkkitehtuurista. Monet pitävät sitä erinomaisena johdantona aloittelijoille, kiittäen sen järjestystä ja luettavuutta. Jotkut kritisoivat sitä vanhentuneeksi tai ajoittain hämmentäväksi syvemmillä aiheilla. Kirja on tunnettu lähestymistavastaan, jossa ymmärrystä rakennetaan transistoreista ohjelmistoihin. Vaikka jotkut kokevat materiaalin kuivaksi, toiset arvostavat Tanenbaumin kykyä pitää se kiinnostavana.
Similar Books









