Hoofdstuk II: organisatie van computersystemen



Dovnload 81.97 Kb.
Datum20.08.2016
Grootte81.97 Kb.
Hoofdstuk II: organisatie van computersystemen
Een digitale computer bestaat uit:

  • processor = CPU

  • geheugen , welke onderling verbonden zijn.

  • I/O apparaten



    1. Processoren:

Fig. 2.1:

U ziet een computer waarvan alle componenten met elkaar verbonden zijn via een bus.

Functie van de CPU( Central Processing Unit) :

het uitvoeren van programma’s , welke in het hoofdgeheugen geladen( loaded) zijn, door de instructies 1 voor 1 op te halen, te analyseren en uit te voeren.


bus


2.1.0 De CPU bestaat uit 3 afzonderlijke delen :


  • Besturingseenheid:

verantwoordelijk voor:

  • het ophalen van instructies uit het hoofdgeheugen( fetchen)

  • het bepalen van het type van de instructies

  • Arithmetic Logical Unit (ALU):

Voert operaties uit zoals rekenkundige bewerkingen en Booleaanse functies, nodig voor de uitvoering van de instructies

  • een aantal Registers:

= klein geheugen gebruikt voor opslaan van tussenresultaten, besturingsinformatie, ..

  • program counter( = PC)

wijst naar de volgende uit te voeren instructie (n.s.i.: next sequential instruction)

  • instructieregister ( = IR):

hierin staat de instructie die nu in uitvoering is

  • de andere registers:

voor gebruik in toepassingsprogramma’s van niveau 2 en 3

2.1.1 De uitvoering van een instructie


De CPU voert een instructie uit in meerdere etappes:

  1. haal de volgende instructie: geheugen  instructieregister (I.R.)

  2. pas de PC aan, zodat die naar de eerstvolgende instructie wijst

  3. bepaal het type van de instructie

  4. bepaal waar de gegevens staan in geheugen of register

  5. breng de gegevens binnen: geheugen  CPU registers

  6. voer een instructie uit

  7. breng de resultaten over: CPU-register  I/O buffer in het geheugen

  8.  1): uitvoeren van de n.s.i.

 we noemen dit de ‘fetch-decode-execute’-cyclus
De verzameling van alle instructies; die ter beschikking staan van een programmeur van een bepaald niveau, noemen we de instruction-set van dat niveau. Het aantal instructies in de instructieset verschilt van niveau tot niveau.

2.1.2 De organisatie van de CPU


Fig. 2.2: voorbeeld van een optelling van 2 registers


registers

ALU invoerregisters

ALU uitvoerregister
De interne organisatie van een deel van de CPU, het DATAPAD genoemd, bestaat uit


  • 2 ALU invoerregisters

  • ALU

  • 1 ALU uitvoerregister

  • een aantal registers

  • plus de verbindingen, interne bussen genoemd.

De registers monden uit in 2 ALU - invoerregisters

dit is de input voor de ALU ( +, -, *, /, vgl)

De ALU plaatst het resultaat van de bewerking in het ALU – uitvoerregister


wordt eventueel via een register in de geheugenzone geplaatst

De invoer van de instructie kan zich eveneens in het geheugen bevinden.

Fig 2.2 toont de werking van een optelling in RR- formaat.


Er zijn 3 formaten instructies:

  • RR- instructies: 2 operands bevinden zich in registers

  • RS- instructies: 1 operand bevindt zich in een register, de andere in het geheugen

  • SS- instructies: de 2 operands bevinden zich in het geheugen

De werking van een DATAPAD is bepalend voor wat een machine kan.

2.1.3 Parallelle uitvoering van instructies


Ontwerpers trachten steeds snellere CPU’s te ontwikkelen d.m.v.:

  • snellere HW: beperkt door wetten van de natuurkunde ( de lichtsnelheid is de max grens, en hoe sneller hoe meer warmteafgifte)

  • 1 HW machine wordt voorzien van meerdere ALU’s: dit zijn parallelle machines

Er zijn 3 categorieën parallelle machines:

  • SISD: Single Instruction Stream, Single Data Stream

  • SIMD: Single Instruction Stream, Multiple Data Stream

  • MIMD: Multiple Instruction Stream, Multiple Data Stream



      • SISD:


Voorbeeld 1:

De traditionele Von Neumann-machine



  • 1 programma wordt uitgevoerd door 1 CPU en er is 1 datatstream

  • de 1ste instructie wordt uit het geheugen gehaald, geanalyseerd en uitgevoerd. Dan pas wordt een 2de instructie opgehaald en uitgevoerd.


Voorbeeld 2:

Beperkte vorm van parallelle verwerking.



  • Haal de volgende instructie uit het geheugen, vooraleer de voorgaande voltooid is.

  • Supercomputers zoals CRAY hebben meerdere gespecialiseerde ALU’s die elk 1 operatie heel snel kunnen uitvoeren. Zie Fig 2.3:

vb: CPU met 5 ALU’s 4 voor + en -

1 voor *


  • De besturingseenheid haalt 1 instructie uit het geheugen en geeft ze door aan 1 van de ALU’s om uit te voeren. Ondertussen wordt de volgende instructie gehaald en aan een andere ALU doorgegeven. Dit gaat verder tot alle ALU’s bezet zijn.


Besluit:

 hier halen we alleen winst uit als de verwerkingstijd > instruction-fetch tijd

 alleen nuttig bij floating point, waarbij de operaties lang en ingewikkeld zijn
Voorbeeld 3:

Je kan ook de uitvoering van elke instructie in delen splitsen, waarbij elk deel door een speciaal daarvoor bestemd stuk HW (= stadium) wordt afgehandeld, en dat allemaal in parallel.


Fig. 2.4a: Een pipeline met 5 eenheden = stadia (S)
S1 S2 S3 S4 S5

S1: haalt instructies uit het geheugen en plaatst ze in het IR

S2: bepaalt het type van de instructie en bepaalt welke operands er nodig zijn

S3: haalt de operand uit registers en/of het geheugen

S4: de instructie wordt uitgevoerd: de operands worden door het DATAPAD gehaald (Fig. 2.2)

S5: resultaat wordt weggeschreven in het gevraagde register en eventueel naar het geheugen


Hoe werkt een pipeline als functie van de tijd?
Fig. 2.4b


S1

















S2


















S3



















S4




















S5





















 t

1

2

3

4

5

6

7

In elk volgend interval wordt er een instructie uit het geheugen gehaald door S1 en worden de andere instructies doorgegeven aan de volgende stadia. Een instructie uitvoering duurt 5 tijdsintervallen, toch wordt er elk tijdsinterval een instructie voltooid, dit is een versnelling van 5.


Voorbeeld 4: zie Fig. 2.5: Dubbele pipelines met elk 5 stadia een 1 gemeenschappelijk stadium dat instructies ophaalt.
Voorbeeld 5: zie Fig. 2.6: een superscalaire processor met 5 functionele eenheden.
 een ‘pipeline machine’ :

  • werkt met een beperkte vorm van parallellisme

  • is toch een SISD-machine (1 programma werkt met 1 stel data!)



      • SIMD:


Deze machines werken parallel op verschillende stellen gegevens.

Voorbeeld de weersvoorspelling: voor elke plaats gebeurt dezelfde berekeningen doch met andere gegevens.


Voorbeeld1: vectormachine. Zie Fig. 2.7a:

  • Het datapad is gelijkaardig met Fig. 2.2:

i.p.v. 1 variabele voor elk ALU-invoerregister, hebben we nu een vector met n delen

  • die ALU is een vector-ALU:
    ze kan een bewerking (vb: vector-optelling zie Fig. 2.7b) uitvoeren op 2 input-vectoren en een output-vector als resultaat geven



Voorbeeld 2: array-processor (Fig. 2.8)

  • Bestaat uit een vierkant rooster van processor / geheugen- elementen

  • 1 besturingseenheid zendt een instructie uit die door elk element tezelfdertijd wordt uitgevoerd. Elke processor gebruikt eigen gegevens uit zijn geheugen, opgeladen tijdens initialisatie.

 voor het rekenen met matrices.

      • MIMD:


  • Meerdere CPU’s voeren meerdere programma’s uit, gebruik makend van een gemeenschappelijk geheugen  multiprocessoren genaamd.

  • Elke processor heeft toegang tot het gemeenschappelijk geheugen via de bus

 bottleneck: als meerdere snelle processoren via dezelfde bus toegang willen krijgen tot hetzelfde geheugen



Oplossingen:

  • elke processor krijgt een lokaal geheugen voor programma’s en gegevens.

De hoofdbus wordt in dit geval niet gebruikt. Zie Fig.2.9.

  • invoeren van meerdere bussen

  • het gebruik van CACHE geheugen
    (techniek waarbij vaak gebruikte geheugenwoorden binnen elke processor zelf worden bewaard)



  1. Geheugen


= dat gedeelte van computers waar programma’s en data worden geladen.

1. Bits


  • de elementaire eenheid van het geheugen

  • binair cijfer (binary digit)

  • kan 0 of 1 bevatten. Vermits een bit slechts 2 waarden kan bevatten, noemt men het binaire getallenstelsel een tweetallig systeem.



2. Geheugenadres


  • geheugen = een verzameling van cellen, die programma’s en data bevatten

  • elke cel krijgt een nummer = geheugenadres

 zo kan een programma naar een cel verwijzen

  • bestaat het geheugen uit n cellen dan hebben die cellen als geheugenadres 0 t.e.m. n-1


n-cellen


  • elke cel in geheugen is even groot en bestaat uit hetzelfde aantal bits

vb: een cel bestaat uit k bits, dan kan elke cel 2^k combinaties bevatten

  • geheugenadressen worden steeds uitgedrukt in binaire getallen, zie later Appendix A

  • als een adres uit m bits bestaat, is het maximum aantal adresseerbare cellen 2^m.

Het aantal bits van een geheugenadres is onafhankelijk van het aantal bits in de cel en houdt verband met het maximum aantal adresseerbare cellen

  • standaard 8 bits/cel = byte

  • een woord bestaat uit 4 of 8 bytes.

Instructies werken op hele woorden

vb: een 32 bits machine:



  • heeft registers van 4 bytes

  • heeft instructies voor het werken met woorden van 32 bits

In fig. 2.10: er zijn 3 manieren om een geheugen van 96 bits te organiseren



In computers worden geheugenadressen uitgedrukt in binaire getallen.

Bestaat een geheugenadres uit m bits  dan kunnen we maximaal 2m geheugencellen adresseren.
Gevallen:


  • de adressen 0  11: kunnen we noteren in 4 bits

  • de adressen 0  7: kunnen we noteren in 3 bits

  • de adressen 0  5: kunnen we noteren in 3 bits


Besluit:

Het aantal bits in een geheugenadres:




Voorbeeld:

Een geheugen met 212: cellen van 8 bits

212: cellen van 64 bits


3. Fouten- detecterende en fouten- corrigerende codes


Gegevens worden verstuurd over telefoonlijnen

draaggolven in de eter

worden opgeslagen in het geheugen
Er kunnen fouten ontstaan


  • op het transmissiekanaal

  • ten gevolge van onregelmatige spanning in de elektriciteitsvoorzeining

 het ontvangen van signaal verschilt van het verstuurde signaal

 daarom gebruiken computers fouten- detecterende en zelfs fouten- corrigerende codes

      1. Methode


Aan elk geheugenwoord worden een aantal bits toegevoegd.

Bij ontvangst worden die extra bits gecontroleerd of er zich een fout heeft voorgedaan.



      1. Wat is een fout?


r bits

g bits


controle data




codewoord (data- + controle- bits),


de totale lengte wordt (r + g)- bits.


voorbeeld:

2 code woorden van 8 bits:

bits 0 1 2 3 4 5 6 7


1

0

0

0




1

0

0

1

1

0

1

1




0

0

0

1

3 overeenkomstige bits zijn verschillend.



      1. Definitie


Het aantal bitposities waarin 2 codewoorden (minimaal) verschillen = Hamming-afstand van de code
Een Hamming afstand d tussen 2 codewoorden betekent dat er d veranderingen van 1 bit gemaakt moeten worden om het ene codewoord in het andere te converteren

 er kunnen maximaal (d – 1) fouten ontdekt worden.



De fouten detecterende en corrigerende eigenschappen van een code worden bepaald door de Hamming afstand van die code.

  • om a fouten te ontdekken van 1 bit, heb je een code nodig met afstand (a + 1)

  • om a fouten te verbeteren van 1 bit, heb je een code nodig met afstand (2a + 1)

 je moet ervoor zorgen dat de correcte codewoorden voldoende ver uit elkaar liggen, zodat een ongewilde verandering van enkele bits niet resulteert in een ander geldig codewoord

      1. Definitie algemeen


  • codewoord = data- + controle- bit

  • code = verzameling geldige codewoorden

  • Hamming-afstand van een code = minimaal aantal bitposities waarin 2 codewoorden van elkaar verschillen



      1. Voorbeeld 1: van een fouten detecterende code


1 pariteitbit toevoegen aan de data, zodanig dat het aantal bits met waarde ‘1’ even is.

Zo’n code heeft afstand 2.

Elke verandering van 1 bit levert een code met ongeldige pariteit

 deze code wordt gebruikt om enkelvoudige fouten te ontdekken.


voorbeeld:

pariteitbit

databit

0

00000  2 bit

1

00001

1

00010

0

 4 bits 00011

1

00100  2 bits

0

00101

0

00110

1

00111

Codewoorden met

Hamming-afstand = 2






      1. Voorbeeld 2: van een fouten corrigerende code


Een code bestaat slechts uit 4 codewoorden


00000

00000  5 bit

 10 bits 00000

11111

11111

00000

11111

11111

Deze code heeft Hammingafstand 5



  • er kunnen 4 fouten ontdekt worden

  • er kunnen 2 fouten gecorrigeerd worden

Voorbeeld:



  • er komt een woord 11000 00000 binnen

 het ontvangend systeem verbeterd dit naar afstand 00000 00000

  • er komt een woord 11100 00000 binnen

 verbeterd naar 11111 00000

  • gebeuren er nu 3 fouten, dus wordt 111111111 opgestuurd als volgt 1111111000. Deze 3 fouten zullen niet correct worden verbeterd, nl ze worden verbeterd naar 1111100000.



      1. Voorbeeld 3: van een fouten corrigerende code


algoritme van Hamming

  • een datawoord van g bits

  • er worden r pariteitbits toegevoegd

  • de woordlengte wordt (g + r)

  • de bits worden genummerd vanaf 1 (de meest linkerbit)

  • alle bits met het nummer = 2n zijn pariteitbits

  • de andere bits zijn data- bits

  • vb: datawoord van 16 bits  er worden 5 bits toegevoegd als pariteitsbit nl

20

21

22

23

24

25

1

2

4

8

16




 de totale lengte van het woord is nu (16 + 5) = 21 bits

  • elke pariteitbit corrigeert welbepaalde bitposities: de pariteit krijgt een waarde 1 of 0 zodat het aantal 1-bit even is.


  1. Secundair geheugen.



  • hoofdgeheugen: zeer snelle accestijd, vrij duur

  • secundaire geheugen: langzamer, goedkoper, groter, voor de opslag van grote hoeveelheden gegevens.


4.1 Magneetbanden: (TAPE)




  • Door de stroom te laten veranderen in de opnamekop wordt er op de band geschreven in de vorm van gemagnetiseerde puntjes.

  • De data op een magneetband is een verzameling van frames.

  • Frame: op een computer met bytes (= 8 bits) bevat elk frame:

1 byte gegevens + 1 extra bit = pariteitsbit -> foutendetectie!

  • Schijfdichtheid op een band is:

    • 800 bpi

    • 1600 bpi ((bytes = frames)/inch)

    • 6250 bpi




->goede bezettingsgraad van de band als de lengte van de fysische record groter is dan deze tussenruimten

  • de organisatie is sequentieel -> alleen sequentiele toegang: tijdverspilling!


    1. Magneetschijven: (DISK)




Harddisk:


  • Een harde schijf bestaat uit:

meerdere ronde, dunne, metalen platen met diameter 12 tot 25 cm, aan beide kanten bedekt met een magnetische laag, zo’n 2 tot 3 cm van elkaar.

  • Een track: een cirkel op een van deze schijven, er zijn zo’n 40 tot 100 concentrische tracks per schijfkant.

  • Elke schijfkant beschikt over een beweegbare kop (van en naar het centrum van de schijf toe) Deze kop is net breed genoeg om 1 track te kunnen lezen of schrijven.

  • Alle koppen bewegen tegelijkertijd naar binnen of naar buiten. Alle tracks verticaal boven elkaar vormen 1 cilinder, dus alle koppen samen vormen 1 cilinder..

  • Sector : een track wordt verdeeld in sectoren, van 512 bytes. Er zijn 10 à 100 sectoren per track: 1) heet een ‘fysisch’ record

2) is de eenheid van data – overdracht

Een ‘logisch’ record begint steeds op sector – boundary



  • Transfer: om een transfer van data mogelijk te maken, moet het programma de volgende informatie leveren:

- de cilinder en de kop: dit bepaald 1 track op de harde schijf

- het sectornummer: waar de gegevens beginnen

- het aantal woorden

- het geheugenadres waar de informatie heengaat of vandaan komt

- soort transfer: read of write


  • Transfer van gegevens van/naar schijven:

    • Begint altijd aan het begin van een sector

    • Bestaat de overdracht van gegevens uit meerdere sectoren, verspreid over meerdere tracks (binnen 1 cilinder) : er gaat geen tijd verloren

    • Wordt er een cilindergrens overschreden, dan kan de tijd van meerdere omwentelingen verloren gaan, tijdens de verplaatsing van de arm naar de volgende cilinder en het wachten tot sector 0 voorbijkomt.

  • SEEK: de verplaatsing van de arm wanneer de kop in de verkeerde cilinder staat, duurt +/- 3msec tussen twee aangrenzende cilinders, kan 20 msec tot 100 msec duren bij verplaatsing van de arm van de binnenste naar de buitenste cilinder.

  • SEARCH: wachten tot de juiste sector onder de kop komt, van 0 sec tot een volledige omwenteling

  • Totale toegangs - tijd = SEEK + SEARCH + TRANSFER – tijd, 1 track wordt getransfereerd per omwenteling


Vb. Hard disk: Winchester disk

4.3 Diskettes


  • De lees –en schijfkoppen raken het diskette oppervlak

  • Om slijtage te verminderen stopt de rotatie als er niet geschreven of gelezen wordt.

    • Bij een volgende lees/schrijf - opdracht moet de motor terug op snelheid komen: tijdsverlies

4.4 Optische schijven:




  • Veel hogere schrijfdichtheid dan normale disks.

  • 1e generatie: uitgevonden door Philips, verder ontwikkeld samen met Sony:

CDROM (Compact Disc Read Only Memory)


  • Er word teen laserstraal gericht op de CD, een detector meet de hoeveelheid energie die door het oppervlak wordt teruggekaatst.

  • De putjes, de PITS, en de niet ingebrande stukken ertussen, de LAND’s, hebben een verschillende graad van terugkaatsing, waardoor beide onderscheiden kunnen worden.

  • Als foutencorrigerende code wordt een cross interleaved Reed-Solomon code gebruikt -> kan meervoudige fouten corrigeren.

  • Een pit-land en land-pit overgang is een 1, het interval tussen 2 overgangen geeft aan hoeveel 0’en er tussen de 1’en staan.

  • Informatie wordt op een CD-ROM geschreven als 1 lange continue spiraal.




  • 2e generatie: WORM (write once read many) -> voor permanente data zoals archief

  • 3e generatie: de schijf kan gewist en overschreven worden

2.3 Input/Output :

Een computer dient om problemen op te lossen, hiervoor zijn nodig:



  • programma’s

  • gegevens

Eens het probleem is opgelost, wordt er een resultaat medegedeeld.


Het geven en krijgen van informatie aan en van de computer heet I/O.
2.3.1 I/O bij mainframe:
Mainframe bestaat uit:

  • (meerdere) CPU’s

  • geheugen

  • bussen

  • kanalen ( dit zijn de I/O processoren)

Een kanaal wordt ook geprogrammeerd en doet alle fysische I/O van en naar het geheugen.

Terwijl kan de CPU verder probleem programma’s (rekenwerk) uitvoeren.
I/O:


  • begint met een SIO naar de kanalen

  • eindigt met een I/O interrupt naar de CPU

Mainframes hebben minstens 3 bussen (een verzameling parallelle draden, gebruikt om de componenten van een componenten van een uter 3 bussen (een verzameling dradenaar het geheugen.oudige fouten corrigeren.

ruggekaatst.tsing van de acomputer te verbinden).


  1. geheugenbus: kanalen (=I/O processoren) kunnen data uitwisselen met het geheugen.

  2. I/O bus: commando’s en interrupts worden uitgewisseld tussen de kanalen en de CPU

  3. directe verbinding CPU-geheugen


      1. I/O bij PC:





PC’s bestaan uit: een card cage ( = kaarten-bak), de onderkant is het mother board ( = moeder bord), deze bevat


  • chip’s o.a de cpu en het basisgeheugen

  • een of meerdere bussen

  • contacten voor: geheugenuitbreiding en I/O kaarten

De meeste pc’s, hebben 1 of meerdere bussen om de CPU, het geheugen en de I/O –

apparaten met elkaar te verbinden.

Een I/O - apparaat wordt verbonden aan de bus via een controller = I/O - kaart.

Deze wordt op het moederbord geplugged.

( Verplichte I/O, zoals een toetsenbord, hebben een controller welke vast op het moederbord geplaatst is.

Een scherm is ook verplicht maar het heeft zeer variabele features, daarom is de scherm –

controler een losse kaart.)


Controler:



  • Bestuurt het I/O apparaat (SIO, I/O interrupt)

  • Regelt I/O over de bus (data – pgm verkeer in en uit)



Vb. een programma wil een record lezen op schijf


  1. CPU -> command (SEEK, SEARCH,…) aan de controler van de disk

  2. eens op de juiste track: data – transfer van de disk -> controler: 1 lange bitstream

  3. De controler verdeelt de bitstream in woorden -> geheugen

De bus in een pc wordt gebruikt om:




  • Commands en I/O interrupts naar en van de controler te sturen

  • Transfer van data en instructies door CPU

“Wie” = I/O apparaten hebben voorrang (eerder trage apparaten, vergeleken met de CPU snelheid) op de CPU, dit noemt men “cycle stealing”.




ComputerArchitectuur Hoofdstuk II





De database wordt beschermd door het auteursrecht ©opleid.info 2017
stuur bericht

    Hoofdpagina