5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen

Slides:



Advertisements
Verwante presentaties
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Advertisements

Snelheid van digitale IC’s
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur EIT OGO-1.2 addendum (1): Het ontwerpen van processoren.
Hoe werkt een rekenmachine?
Serieel naar parallel omzetting
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
PROS2 Les 2 Programmeren en Software Engineering 2.
Parallel naar serieel omzetting
Hardware (1) SGDB Informatica.
Processor & Toetsenbord
Par. 3.1 Computers zijn overal
1/1/ / faculty of Computer Science eindhoven university of technology 2IC20:Computersystemen Week 1: inleiding.
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
bewerkingen in programmeeromgevingen
Auteursomgeving voor Digitale Componenten
1 Hoe werkt een computer nu precies? Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Met steun van stichting Edict.
Week 6: Invoer / uitvoer “devices” adresdecodering
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Instructieformaten adressering assembleertalen (zelfstudie.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(2): Instructieformaten adressering assembleertalen.
Week 2: Microarchitectuur niveau ALU en datapad
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Computerarchitectuur
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
Processor Hart van de computer.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
De computer: Hardware Het beeldscherm Het toetsenbord De muis
De processor.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(1): Instructietypen (1)
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 6(1): Invoer.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
1Ben Bruidegom 1 Hoe werkt een “loopje” nu precies? Recapitulatie rekenmachines week 1 Van rekenmachine naar rekenmachine met “loopjes”
Auteursomgeving voor Digitale Componenten
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Hoe werkt een rekenmachine?
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
Processor & Toetsenbord
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau klokken en geheugens.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (1)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Processor Hart van de computer.
CMOS Technologie.
Samenwerking tussen processor, registers en RAMgeheugen
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 5(2): Microarchitectuur.
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Instructie Programmeren Task 2 5JJ70. Task 2.1: Voltage divider Welk type variabele heb je nodig? Negative weerstanden bestaan niet! (print een error.
Cache Prestatie & Energieverbruik. Overzicht Voorbeelden energieverbruik Cache.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Parallel Rekenen Prefix Sum
Digitale Methoden Onderdeel van vak Computer Systemen
Programmeren woensdag 4 oktober 2017.
3 Hardware 3.1 De processor en intern geheugen
Hoofdstuk 3 - Computersystemen
Quantumcomputers en quantumcommunicatie
Transcript van de presentatie:

5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen Sessie 5(1): Microarchitectuur niveau ALU en datapad

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

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)

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

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

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 

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

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

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)

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 + 1 stabiel Tijd over: klok kan sneller !

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

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 !

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 !

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

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 !