4. De "hardware" - laag

4.1 Situering in het lagenmodel:


 Computergebruiker

 +----------------+
 |                |
 |Toepassingslaag |
 |                |
 +----------------+
 |                |
 |  Systeemlaag   |
 |                |
 +----------------+
 |                |
 =======> | Hardware laag  | <=======
 |                |
 +----------------+

   Externe wereld

Figuur 4.0: Het "lagenmodel"


In ons lagenmodel, situeert de "hardware" zich onderaan in de hierarchie die een computersysteem uitmaakt.

De "Hardware laag" komt overeen met de fysische machine; hoe ziet die eruit?
Het merendeel van de huidige computers hebben de "von Neumann architektuur".
Centraal in deze architektuur staan:

Het geheugen bevat zowel instructies (voor de processor) als gegevens en het doet ook dienst als opslag van de bewerkingsresultaten. Een systeem van interconnecties (bussen) legt de tussenverbindingen aan tussen deze hoofdbestanddelen.
Actueel gebruikt men meestal (bijna steeds) electronische digitale schakelingen om de von Neumann computers te verwezenlijken, men voert wel onderzoek uit om over te gaan op optische basisbouwstenen, omdat deze een groter paralellisme toelaten (meerdere bewerkingen die tegelijk verlopen), en met enig geluk zullen optische computers werken voor het jaar 2000 !?!

In dit hoofdstuk, zullen we eerst kort de struktuur van een von Neumann computer behandelen, (4.2) daarna maken we kennis met de elementaire begrippen van logische digitale schakelingen (4.3) (waaruit tenslotte nog praktisch alle computers bestaan), daarna keren we meer in detail terug naar de "hardware", om stuk voor stuk de onderdelen van de fysische machine te situeren (4.4 en 4.6); tussenin, ter illustratie in (4.5), een uitgewerkt voorbeeldje van "hoe met logische schakelingen" een "programmeerbare automaat te bouwen en te programmeren.



4.2 De Architectuur van von Neumann.

Zoals in vorige paragraaf aangehaald, bestaat een computer voornamelijk uit:

De processor haalt uit het geheugen (sequencieel) instructies, voert die uit, plaatst eventuele resultaten in het geheugen enz...
Het geheugen bevat dus instructies, gegevens en berekenings- resultaten (beter: bewerkings-resultaten).
Er zijn uiteraard ook interconnecties nodig tussen deze onderdelen. Hiervan onderscheiden we drie soorten: de data-lijnen, de adres-lijnen en de controle-lijnen.
Deze drie verzamelingen lijnen worden in het computerjargon "bussen" genoemd. Zo'n bus bevat in realiteit 16 tot 64 verbindingen.
Men onderscheidt hier:

Schematisch wordt dit als volgt voorgesteld:



Figuur 4.1: Busstrukturen


Op deze architektuur komen we verder terug ter aanvulling en verfijning.
In het geheugen bewaart de computer zowel programma's als gegevens en resultaten van bewerkingen. De instructie om een bewerking te maken, wordt door de processor uit het geheugen gelezen, de Processor voert de bewerking uit en schrijft het resultaat daarna naar dat zelfde geheugen, wel op een ander adres.

Het geheugen bevat dus de instructies, gegevens en de resultaten van de gemaakte bewerkingen. Dit is precies het typische van de "von Neumann" machines.

De computer is een transformator van gegevens. Hij wordt gebruikt om data transformaties te realiseren. Al bij al verricht hij relatief weinig rekenwerk. Voordat we wat meer in detail de werking van een processor beschrijven, werpen we een blik op de basiselementen van de binaire logica.

4.3 Binaire logica

De binaire logica, uitgewerkt in de "Algebra van Boole" ligt aan de basis van de werking van digitale electronische systemen, waaronder de computers.

Deze wiskundige theorie behandelt de eigenschappen van "logische variabelen", waarop "logische functies" inwerken.

Functies van logische variabelen worden gedefinieerd door waarheidstabellen (truth tables), waarin weergegeven wordt welke waarde de functie-uitgang aanneemt voor alle mogelijke kombinaties van ingangs variabelen. Men onderscheidt vier booleaanse basisfunkties, die als bouwstenen gebruikt worden om complexere systemen op te bouwen:

De AND functie wordt grafisch als volgt voorgesteld:




Figuur 4.2: schematische voorstelling van logische functies

De NOT functie wordt grafisch voorgesteld: zie bovenstaande figuur.

De uitgang van een NOT functie is de logische inversie van haar ingang.

De OR functie heeft volgende grafische weergave: zie Figuur 4.2


Het merkwaardige aan deze eenvoudige basisfuncties (ook poorten genoemd) is dat men met deze bouwstenen alle mogelijke (realiseerbare) logische functies kan opbouwen, ... zo ook een volwaardige digitale computer.
De "wiskundige" Boolefuncties worden immers electronisch gerealiseerd op basis van Siliciumplaatjes, tot "geintegreerde schakelingen", dikwijls met de verzamelnaam "chips" vernoemd.

De logische toestanden "0" en "1" worden voorgesteld door stromen of voltages. De snelheid van de machines wordt voornamelijk bepaald door de propagatietijd van deze stromen door de schakeling; een typische doorlooptijd door een AND "poortje" bedraagt enkele nanoseconden; moet je echter 1000 poorten doorlopen dan zit je met een vertraging van microseconden!

Men is dus logische functies als standaard electronische componenten gaan opbouwen, steeds met grotere complexiteit: van SSI vanaf 4 poorten per chip (small scale integration) in de 70-er jaren tot VLSI (very large scale integration) tot 1 miljoen poorten in de jaren 90.






Figuur 4.3: SSI Chip

Het heeft 4 gates (= poorten of functies)

Tussenliggende bouwstenen, worden MSI en LSI genoemd ("medium scale integration" en "large scale integration". Een klokcircuit is bijvoorbeeld:




Figuur 4.4: Klok MSI Chip


4.4 Bouwstenen van een computer

4.4.1 Centrale verwerkingseenheid

De centrale verwerkingseenheid (CPU - voor "Central Processing Unit) is het onderdeel waarin de "gegevens" verwerkt worden. Een Processor bestaat uit 4 intern georganiseerde entiteiten: De computerklok , de controle-eenheid, de arithmetische logische eenheid en de interne werkregisters.

1. De Klok

Geeft aan met welke snelheid de computer werkt. Deze electronische klok loopt aan een frequentie van typisch enkele tientallen megahertz, tot enkele duizenden megahertz voor zeer snelle machines. Deze frequentie is een van de belangrijkste elementen die de effektieve verwerkingssnelheid van de machine bepaalt. Andere elementen zijn:

Om de gedachten te vestigen, vergelijk even het natuurlijk ritme bij de mens: met een reactietijd van 1/10 seconde (10 acties/sec) met het ritme bij de computer: 1 picoseconde - 1 microseconde
1 microseconde als basisperiode betekent 1.000.000 acties/sec.

2. A.L.U.

Is arithmetische en logische eenheid. Dit is het eigenlijk actieve element. Hier gebeuren de wiskundige of andere logische bewerkingen.

In vele processoren worden slechts eenvoudige bewerkingen toegestaan, ingewikkelde berwerkingen, zoals deling, machtsverheffing en dergelijke, worden met programma's uitgevoerd. Dit heeft aanzienlijke vertragingen voor gevolg, zodat men voor reken intensieve toepassingen de kracht van de ALU uitbreidt met een externe mathematische co-processor, een chip die optioneel aangebracht wordt bij de CPU.

3. Controle eenheid

In de controle eenheid, worden de instructies gedecodeerd en ontbonden in deelacties, bestemd voor de ALU en interne registers. Deze controle eenheid definieert de eigenlijke instructieset van de machine.
In de meeste huidige machines, werkt de processor volgens de "von Neumann cyclus".
Per klok-tik (= klokperiode) heeft men het halen van een volgende instructie. De controleeenheid bevat een adres dat heet: "volgende instructie" en dit wordt gehaald. Na uitlezing uit het geheugen wordt de code van de volgende instructie geanalyseerd. Er worden dan eventueel verdere gegevens gehaald uit het geheugen en de volgende instructie wordt bepaald, na uitvoering van de huidige instructie.
De cyclus wordt hierbij gesloten (zie fig.4.6).
De instructies die de computer begrijpt, zijn van zeer laag niveau. Er kan ook weinig interactie met de buitenwereld zijn.

Men onderkent twee types processoren, namelijk:

De CISC processoren kennen typisch enkele honderden instructies.
De RISC processoren, daarentegen begrijpen in de grootteorde van een tiental instructies, maar werken deze af in minder klokcycli, typisch 1 instructie per klokcyclus. Het is waarschijnlijk dat RISC processoren van nieuwe technologieen gebruik zullen kunnen maken, zoals van ultra snelle schakelingen op basis van Gallium Arsenide en lichtgevoelige logica, ter vervanging van Silicium schakelelementen of transistoren.



       +----------------------+
       |                      |
       |                      V
       | - haal volgende instructie uit het geheugen
       |          - voer de instructie uit
       | - bepaal het adres van de volgende instructie
       |      - plaats dit adres op de adresbus
       |                      |
       |                      V
       +----------------------+


Figuur 4.6: von Neumann cyclus




4. Interne registers

De interne registers in de CPU bewaren (meestal kortstondig, namelijk de duur van de uitvoering van 1 instructie) tussenresultaten en belangrijke zaken voor de verwerkingseenheid en ALU. Typische registers bevatten:

Interne registers zijn veel sneller te bereiken dan het centraal geheugen, omdat de gegevens binnen de CPU blijven en niet langs de bussen moet lopen.

De elektronische verbindingen tussen CPU en centraal geheugen, maar ook met de overige komponenten, randapparaten genoemd, zijn de "bussen".
Men onderscheidt:

Bussen zijn "gestandaardiseerd", zodat randtoestellen van verschillende konstrukteurs op korrekte wijze met mekaar via een dergelijke bus kunnen verbonden worden.

De bussen vormen meestal de "backplane" van de computer, waarmee de onderdelen via konnektoren worden doorverbonden.

Typische commerciele bussen zijn: VME-bus, PC-bus, NUBUS. Qua snelheid hebben de bussen een belangrijke invloed op de performantie van het ganse computersysteem, hoe sneller de gegevens door deze bussen kunnen, des te minder zij de werking van de CPU vertragen. Typische bus transfersnelheden bedragen tegenwoordig tientallen miljoenen cycli per seconde.

Het centraal geheugen van de computer bevat voor het overgrote deel RAM geheugen (Random Access Memory). Dit geheugen kan door de CPU zowel uitgelezen als beschreven worden. RAM geheugen is volatiel, wanneer de stroom uitvalt, verdwijnt alle informatie die het bevat! Typische snelheden: 10 tot 100 nanoseconden toegangstijd (dit is het tijdsinterval tussen het aanbrengen van een geldig adres en het beschikbaar komen van de informatie, op dat adres in het geheugen opgeslagen).

Een computersysteem bevat doorgaans meerdere miljoenen bytes RAM geheugen; 1 megabyte wordt "weinig" beschouwd, 65 megabytes aanzienlijk veel.

Om de computers te kunnen opstarten, hebben we "niet volatiel" geheugen nodig, men spreekt van ROM (Read Only Memory) geheugen.
In ROM geheugen zal de computerconstructeur doorgaans een opstartprogramma voorzien, dat zal toelaten complexere (dus ook grotere) programma's in te laden in het RAM geheugen om daarmee verder te werken.

Deze opstartaktie wordt in computerjargon de "bootstrap faze" genoemd.

4.5 Een voorbeeldje

Om de gedachten te vestigen, werken we een voorbeeldje uit dat aantoont hoe men op basis van een klok, teller en geheugen een systeem kan opbouwen.

Een verkeerslicht automaat opgebouwd uit een "special-purpose" computersysteempje: bekijken we even een kruispunt en omgeving.




Figuur 4.7: Kruispunt

Lichten I en II gaan we aansturen. We willen nu een computer met een zeer eenvoudige struktuur ontwikkelen, die ons toch een inzicht geeft in het functioneren van een "programmeerbare" machine. Voordeel van deze opbouw is: een andere situatie kan behandeld worden door dezelfde machine (of een identieke kopie), maar dan uitgerust met een ander programma, aangepast aan de nieuwe vraag.

Hoe gaan we tewerk? Om een inzicht te krijgen in de opeenvolgende toestanden van het systeem, stellen we een tabel op die weer moet geven wat op elk ogenblik de toestand is van de verkeerslichten. We vertrekken van de toestand waarbij beide lichten rood zijn. De "oranje" toestand wordt bereikt door zowel rood als groen te aktiveren, zoals voor licht I in toestand nr. "2".


         |     |
toestand |  I  | II
---------+-----+-----
   0     |  R  |  R
   1     |  G  |  R
   2     | RG  |  R
   3     |  R  |  R
   4     |  R  |  G
   5     |  R  | RG
   6     |  R  |  R
   7     | ... | ...
         |     |

De zesde toestand is in wezen terug dezelfde als toestand 0, zodat de cyclus hier herbegint. Uitgaande van deze tabel kunnen we nu een stap verder zetten, namelijk een "machine" opbouwen, die in staat is dergelijke toestandsovergangen te synthetiseren. Ons inspirerend op voorgaande tabel, organiseren we het geheugen van onze automaat zodanig dat

Schematisch krijgen we dan:




Figuur 4.8: Verkeerslicht automaat


We vullen het geheugen op, zodat elke toestand letterlijk voorkomt, juist zoals we in vorige tabel aanduidden met dien verstande dat een "1" aanwijst dat een lamp geactiveerd wordt, "0" dat een lamp uit is.
Een bijkomende kolom is nodig om aan te geven vanaf welke toestand we herbeginnen, door de toestands- of adresteller vanaf 0 te laten herbeginnen, we noemen dit de "loop" instructie ofwel L aansluiting.

Als we gebruik maken van electronische logische komponenten, wordt deze L uitgang van het geheugen doorverbonden aan de "reset" ingang van de adresteller en het gewenste resultaat wordt bereikt.

We hebben hier een machine ontworpen met een woordlengte van "5" bits en voor de eenvoudige sequentie volstaat een "programma dat 7 woorden lang is.
Uiteraard kunnen we dit soort van machines verder uitbouwen en ingewikkelder maken, de meest fundamentele concepten van

Deze "mnemonische" voorstelling van de instructies komt overeen met de laagste vorm van programmeertaal namelijk de assemblertaal van de machine.

4.6 Randtoestellen.

Met centrale processor en geheugen alleen valt er in de praktijk weinig te beginnen! We verlaten nu de meest elementaire vorm van de computer (geheugen + processor) voor een meer volledig uitgewerkt model: het toevoegen van randapparaten.

Randapparaten bestaan doorgaans uit 2 delen, namelijk:

Nemen we bijvoorbeeld een toetsenbord, dit staat los van de computer opgesteld.



Figuur 4.10: Randtoestel en "interface"

Stel nu dat een toets wordt ingedrukt, dan zal er een karakter uitgestuurd worden. De controller van het toetsenbord zal dat karakter ontvangen. Het randapparaat stuurt signalen via interruptlijnen die de normale werking naar de processor onderbreken, zodat een klein programma wordt geactiveerd, om dat karakter op te vangen.

Hardware stukken die koppelbaar zijn aan het computersysteem, noemt men randtoestellen of periferieken.

4.6.1 drukkers

Men onderscheidt diverse technologieen voor drukkers:

Karakteristieken:

Snelheden worden uitgedrukt in karakters per seconde (typisch 1000 karakters per seconde) of voor laserdrukkers in pagina's per minuut (typisch 8 pagina's per minuut).

4.6.2 Schijfgeheugens

Ook voor schijfgeheugens, wordt de capaciteit uitgedrukt in het aantal bytes (groepjes van 8 bits). Een byte komt actueel ruwweg overeen met 1 karakter. Het centraal geheugen bevat in de grootteorde van 1 tot 10 miljoen bytes, terwijl schrijfgeheugens typisch 10 (klein) tot 5000 miljoen (grote schijf) bytes bevatten.

(ter vergelijking, 1 pagina getypte tekst bevat gemiddeld ongeveer 1500 lettertekens, die elk 1 byte bezetten).

Er zijn 2 types van schijfgeheugen, namelijk:

De toegangstijd of accesstijd (er is de gemiddelde tijd nodig om een willekeurig byte van de schijf uit te lezen)
De toegangstijd van magnetische schrijfgeheugens is in de grootteorde van 10 ms en voor optische schrijfgeheugens, iets langer: zowat 30 ms.

Het doel van het schrijfgeheugen is het permanent opslaan van gegevens (want wanneer stroom uitvalt, verdwijnt alles uit het centraal geheugen)

Harde schijfgeheugens zijn moeilijk transporteerbaar daar ze vast zitten in de computer, soms in omvangrijke kasten. De informatie wordt in een magnetische laag aan het oppervlak van de schijf opgeslagen. Schrijven en uitlezen gebeurt via een of meerdere schrijf-leeskoppen die op een luchtkussen (op enkele micrometer boven de schijf) zweven. De schijf draait aan enkele duizenden omwentelingen per minuut.

De laatste jaren, werden ook optische schijven ontwikkeld, men onderscheidt:

Floppy Discs zijn uitneembare schijfjes. Men heeft hiervan verschillende modellen.

De meest courante maat is een floppy van 3.5 duim (3.5 inch), Dergelijke floppy heeft een inhoud van zowat 720.000 tot 1,4 miljoen bytes of karaktertekens. Dit betekent dat op dergelijke floppy disc een boek van +/- 1.000 pagina's kan. De toegangstijd is +/- 100 ms.

Bij floppy discs raakt de magneetkop het schijfje.

De informatie op schijven is gegroepeerd in blokjes. In elk blokje, "sector" genoemd zijn doorgaans 512 bytes opgeslagen. De schijf wordt blokje per blokje beschreven en uitgelezen. De sectoren zijn gegroepeerd per "track", of cirkelvormige baan, op een welbepaalde afstand van het centrum der floppy.




Figuur 4.11: Floppy disc


Er bestaan verschillende "formaten" van floppy disc, de verschillen zijn te wijten aan het aantal "tracks" en het aantal sectoren, die op de schijfjes worden herkend. Men spreekt van IBM formattering (Single- Double- of High Density); of van Apple formattering. Dus naast de fysische afmetingen van de schijf, moet men weten hoe ze geformatteerd is om een schijfje te kunnen lezen/schrijven.

Sommige floppy disc schrijf/lees-eenheden kunnen verschillende formaten aan; om aan te geven met welk formaat gewerkt wordt, zal men de overeenkomstige "logische" namen gebruiken vanuit de programmatuur (systeemlaag en toepassingslaag).

4.6.3 Magneetbandeenheden

Magneetband is van oudsher een medium, waarop computergegevens worden gearchiveerd.

Dit is in de computertechnologie essentieel om twee redenen:

Vele formaten zijn gangbaar: van 1/2duim 9 track industrie standaard magneetband (verouderd, zwaar maar nog veelgebruikt) tot de moderne DAT bandjes (Digital Audio Tape).

Typische karakteristieken:







        9-track magtape (2400 voet)   55megabytes
        QIC 24 cartridge tape         60megabytes
        QIC150 cartridge tape         150 megabytes
        DAT tape                      1200 megabytes
        Exabyte tape                  5000 megabytes
	CD-ROM CD-R of DC/RW          650 megabytes
        DVD (Digital Versatile Disk)  4.5Gigabytes tot 16Gigabytes

We hebben dus ook hier een aantal "niet compatiebele" media!
De toegangstijd voor magneetbanden is natuurlijk niet zo kritisch, hij bedraagt tussen enkele minuten en een uur.



4.6.4 menselijke interactie

De beeldschermen worden met verschillende technologieen gebouwd:

De resolutie van een beeldscherm wordt uitgedrukt op twee manieren:

Sedert het sukses van de PC's, gebruikt men de resoluties van de typische PC beeldschermen als toetssteen, tezamen met hun afgekorte namen:


     CGA   Color Graphics Adaptor      640X200 pixels
     EGA   Enhanced Graphics Adaptor   640X350 pixels
     VGA   Video Graphics Array        640X480 pixels
     XGA   eXtended Graphics Array     1024X768 pixels




Tegenwoordig vindt men op grafische werkstations resoluties van 1024X1024 pixels tot 4000X4000 pixels (dit laatste is wel uitzonderlijk).
Pixels kunnen 1 bit "diep" zijn (zwart-wit) tot 24 bits (full color).


Via toetsenbord, worden nog steeds de meeste gegevens en bevelen aan de computer systemen gegeven. Een typisch toetsenbord bevat:

Twee layouts zijn gebruikelijk: de AZERTY layout die overeenkomt met de posities van toetsen op een klassieke typmachine en de QWERTY layout die meer gebruikelijk is voor computer toetsenborden.

De code die bij het indrukken van een welbepaalde toets wordt ingelezen is afhankelijk van een aantal tabellen die gedefinieerd worden bij het opzetten van het computersysteem. Wanneer deze opzet niet correct gebeurt, kan bij het indrukken van een bepaalde toets, een ander karakter worden "begrepen" en op het scherm verschijnen.

Om grafische interactie met de machine toe te laten, gebruikt men doorgaans muis of joystick. De actie van deze toestellen wordt op het beeldscherm weergegeven via grafische cursoren, die de overeenkomende positie op het scherm weergeven.

Optische muizen vereisen een tabletje met referentiegrid, mechanische muizen werken via een rollend balletje, waarvan de positie continu wordt opgemeten.

Om cursorposities in acties om te zetten, bevatten de muizen 1, 2 of 3 druktoetsen. De betekenis van deze druktoetsen is toepassingsafhankelijk, zelfs positie-afhankelijk, naargelang de positie van de cursor op het grafische scherm: indrukken van een grafische druktoets, opvragen van informatie, aktiveren van een "pop-up menu".

Joysticks worden veelal voor spelletjes gebruikt.

Streepjescodes kunnen optisch gelezen worden met een lichtpen, al dan niet uitgerust met eigen lichtbron.

Mits de gepaste "interfaces", kunnen vele randtoestellen aan de computer gekoppeld worden, denken we maar aan: