Download de presentatie
GepubliceerdLudo Sanders Laatst gewijzigd meer dan 10 jaar geleden
1
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Sessie 5(1): Microarchitectuur niveau ALU en datapad
2
Het datapad van de CPU: de kern
In veel computers de plaats waar ALLE berekeningen plaatsvinden ! “Co-processoren” kunnen wel sneller rekenen maar zijn gespecialiseerd in bepaald “genre” Grafische 3D kaart kan geen wordprocessor draaien ! Afweging: simpel & langzaam of complex & snel Houden het vandaag overzichtelijk Dus redelijk simpel… Laten wel wat truukjes zien om te versnellen
3
De arithmetisch/logische eenheid (1)
Hardware voor één bit valt mee (voorbeeld !)... A B ENB ENA INVA A•B A+B B A 1 2 3 decoder selA selB F0 F1 Uitgang B A C Som Carry FA Carry in (CI) “Bit slice” Carry uit (CO)
4
De arithmetisch/logische eenheid (2)
Deze “bit slices” koppelen via carry in/uit Besturing via F0, F1, ENA, ENB en INVA Tests: onder meer Negative, oVerflow en Zero ALU A B Uitgang De “broek” ENA, ENB INVA F0, F1 N, V, Z... CO CI
5
Standaard tests op ALU resultaten
Carry out: direct uit MSB bit slice Auxiliary carry: carry uit bit slice voor bit 3 Negatief (“Sign”): resultaat bit van MSB bit slice Zero: logische NOR van alle resultaat bits oVerflow: twee methoden (met zelfde resultaat) (“Sign A” = “Sign B”) AND (“Sign A” “Sign result”) “Carry uit MSB” XOR “Carry uit van (MSB - 1)” Pariteit: logische XOR van alle resultaat bits MSB = Meest Significante (“linkse”) Bit
6
De (voorbeeld) ALU functies
Vijf stuuringangen en CI: 26 = 64 functies ? In principe wel, maar niet allemaal nuttig… Waarden doorgeven en constanten genereren: A, B, 0 (nul), 1 (één), -1 (min één) Reken functies: A+B, A+B+1, B-A, B-A-1, 0-A (NEG), A+1 (INC), B+1, B-1 (DEC) Logische functies: A AND B, A OR B, NOT A, NOT B Géén XOR of schuif/roteer operaties
7
Een goedkoop datapad B-bus Alle registers met EEN uitgang naar centrale (“B”) bus Met de benodigde “laad” en “output enable” signalen ! Data geheugen MAR MDR B Programma geheugen PC IR ACCU HULP MAR: Memory Address Register MDR: Memory Data Register C-bus A ALU PC: Program Counter IR: Instruction Register
8
Spelregels voor het datapad
Alle data-overdrachten op dezelfde manier Van register, via bussen en combinatorische logica (waaronder ALU en tri-state buffers) naar register lezen uit geheugen is hier combinatorisch ! Alle registers aan systeemklok Meerdere registers kunnen gelijktijdig waarde laden Kunnen ook waarden uitwisselen (“exchange”) Maximaal één overdracht per bus per klok
9
Afhandeling van “ADD A,(MAR)”
Klok 1: Instructie ophalen B ALU MAR MDR PC IR ACCU HULP A Data geheugen Programma geheugen PC verhogen (ALU: B+1) Nu weten we pas, welke instructie het is! Klok 2: Data geheugen lezen HULP ACCU (ALU: B) Klok 3: ACCU HULP + MDR (ALU: A+B)
10
Timing van het datapad: PC + 1
Minimale tijd FF D ingangen stabiel voor klok (“setup time”) Vertraging klok flip-flop uitgang klok FF Q’s Register / flip-flop uitgangen stabiel Vertraging besturing en tri-state buffer B-bus PC waarde stabiel Vertraging ALU ingang B bus-C C-bus PC stabiel Tijd over: klok kan sneller !
11
Timing van het datapad: opmerkingen
De minimale klokperiode: net lang genoeg om langzaamste signaal op tijd stabiel te laten worden voor D ingangen FF’s Klokperiode is constant voor alle cycli ! Langzaamste signaal dat ooit voor kan komen bepaald de klokperiode: “kritisch pad” Vertraging logische poorten is geen constante Fabricage, voedingsspanning en temperatuur Boek: beide klok flanken gebruiken = SMERIG
12
Het opvoeren van een processor
Hoeveelheid werk gedaan per seconde: hoeveelheid werk gedaan in één klok MAAL het aantal klokken uitgevoerd per seconde Aantal klokken per seconde opvoeren mogelijk Maar kortere poortvertraging niet altijd mogelijk ! Enige andere optie: kritisch pad korter maken Minder combinatorische logica achter elkaar zetten… Dus minder complexe operaties per klok mogelijk… Complexe operatie verdelen over meerdere klokken !
13
Hoeveelheid werk per klok opvoeren (1)
Efficienter werken B-bus A-bus C-bus Extra A-bus: operaties tussen twee registers zonder eerst “HULP” te laden ALU MAR MDR PC IR ACCU A Data geheugen Programma geheugen B Minder klokken nodig Kost hardware: meer tri-state buffers, complexere besturing en meer bedrading !
14
Hoeveelheid werk per klok opvoeren (2)
B ALU MAR MDR PC IR ACCU HULP A Data geheugen Programma geheugen Meer tegelijk doen Eigen “+ 1” voor PC: verhogen van PC zonder gebruik van ALU + 1 Ophalen van volgende instructie tijdens laatste klok van huidige instructie “Prefetchen” Kost hardware: extra adder, complexere besturing
15
Hoeveelheid werk per klok opvoeren (3)
Fetch-decode-execute door aparte hardware modulen parallel laten uitvoeren Modulen als “emmertjesbrigade” koppelen: pipeline Per klok een instructie ophalen mogelijk wordt in opeenvolgende klokken uitgevoerd Meer instructies tegelijk ophalen: superscalair Meer pipelines werken parallel aan elkaar Instructievolgorde veranderen (“Out-Of-Order”) om op elkaar wachtende instructies te scheiden Wel in boek, niet bij stof !
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.