Week 2: Microarchitectuur niveau ALU en datapad

Slides:



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

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
Kennismaking met de computerconfiguratie
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.
Welkom Voorstellen Bustechnologie ASI Actuator-Sensor-Interface
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.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 6: Practicumprocessor invoer en uitvoer.
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
Computerarchitectuur
automatiseringselektronica
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.
De processor.
Hoofdstuk 6 Het voorspellen van prestaties Deel 2: Vermogenvoorspellingen op architectuurniveau Prof. dr. ir. Dirk Stroobandt Academiejaar
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
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”
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
Auteursomgeving voor Digitale Componenten
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
1Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen &  vorige toestand uitgang.
Hoe werkt een rekenmachine?
Talstelsels, rekenen en rekenschakelingen
Datapath & Contol 9.30 Introductie: datatransport via een bus
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Talstelsels, rekenen en rekenschakelingen
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
Computerarchitectuur
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.
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.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Hardware van een pc Van Hoof Minke. Geschiedenis.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
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.
Digitale Methoden Onderdeel van vak Computer Systemen
3 Hardware 3.1 De processor en intern geheugen
Transcript van de presentatie:

Week 2: Microarchitectuur niveau ALU en datapad 2IC20: Computersystemen Week 2: Microarchitectuur niveau ALU en datapad

“Positieve” en “Negatieve” logica Boole werkt met “waar” / “niet waar” voor het gemak vertaald in “1” (EEN) en “o” (NUL) Hardware werkt met voltages “hoog” en “laag” koppeling Boole aan voltages: afspraak ! A B F 0v 5v A B F 1 A B F 1 0 volt: “laag” 5 volt: “hoog” positief: “hoog” = 1 negatief: “laag” = 1

Niets gaat vanzelf: “klokken” Volgorde van operaties op chip van groot belang Onderdelen moeten gesynchroniseerd worden Met flip-flops asynchrone operaties in toom houden Al die flip-flops met een “systeemklok” besturen: DE “klok” Vaste tijd tussen aktieve klokflanken: de (klok-) cyclustijd Omgekeerde: klok-frequentie (VLSI: tot 3 GIGAHerz) Aanmerking op boek: vertragen klokken = SMERIG

Een “register” in hardware Setje flip-flops met identieke stuursignalen 1 MUX sel “Laad register” besturing Ingang “Output enable” (OE) besturing Uitgang: 0, 1, “open” Systeem- reset D Q clr Systeem- klok Drie-toestands versterker Engels: “Tri-state” buffer

Uitgangen aan elkaar: tri-state buffers ! D0..7 Q0..7 OE clr load “A” Laad “A” Lees “A” 8-bit register Klok Reset Bus “in” Bus “uit” Laden van register: - Waarde op bus “in” - “Laad” aktief maken - Wachten op klok ! Lezen van register: - “Lees” aktief maken - Waarde op “uit” bus D0..7 Q0..7 OE clr load “B” Laad “B” Lees “B” Tri-state buffers op één bus NOOIT tegelijk aktief maken !

Extra grapjes met registers Laden van meerdere bussen Meer ingangen op ingangs-multiplexer Verbinden met meerdere uitgangs-bussen Voor iedere bus een eigen set tri-state buffers “Lokale” operaties mogelijk Q uitgangen van flip-flops via combinatorische logica terugkoppelen naar ingangs-multiplexer Increment (+1), decrement (-1), schuiven…

Besturingssignalen van geheugens Meestal meer geheugen-chips in systeem “Chip Select” (CS) signaal aktief voor lezen / schrijven “Aan- en uitzetten” van uitgang soms tijdkritisch Apart “Output Enable” (OE) signaal vrij standaard Lees / schrijf besturing apart of gecombineerd Apart: “Read” (RD) en “Write” (WR) signalen Gecombineerd: één signaal kiest lezen OF schrijven Signalen vaak negatieve logica: bijv. CS of /CS

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…

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 één uitgang naar centrale (“B”) bus Met de benodigde “laad” en “output enable” signalen ! Data geheugen MAR MDR B Programma geheugen PC IR ACCU HULP C-bus A MAR: Memory Address Register MDR: Memory Data Register 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 ACCU,(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)