Forelesning 5. Diverse komponenter/større system

Like dokumenter
INF1400 Kap4rest Kombinatorisk Logikk

INF2270. Boolsk Algebra og kombinatorisk logikk

IN1020. Logiske porter om forenkling til ALU

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

Datamaskinens oppbygning

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

INF1400. Digital teknologi. Joakim Myrvoll 2014

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

INF2270. Datamaskin Arkitektur

Repetisjon digital-teknikk. teknikk,, INF2270

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

INF2270. Datamaskin Arkitektur

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

IN1020. Datamaskinarkitektur

TDT4160 AUGUST, 2008, 09:00 13:00

SIE 4005, 2/10 (2. Forelesn.)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

Forelesning 9. Registre, tellere og minne

Repetisjon. Sentrale temaer i kurset som er relevante for eksamen (Eksamen kan inneholde stoff som ikke er nevnt her)

UNIVERSITETET I OSLO

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Intel Core i7. Omid Mirmotahari 4

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

SIE 4005, 9/10 (4. Forelesn.)

INF2270. Sekvensiell Logikk

Hvorfor lære om maskinvare*?

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting

INF1400. Kombinatorisk Logikk

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Maskinvaredelen av INF 103: oversikt og innhold (1)

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

Forelesning Instruksjonstyper Kap 5.5

Løsningsforslag til 1. del av Del - EKSAMEN

Løsningsforslag INF1400 H04

Datamaskinens virkemåte

PENSUM INF1400 H11. Joakim Myrvoll Johansen. Digital Design, M. Morris Mano, 4th edition

TDT DESEMBER, 2008, 09:00 13:00

UNIVERSITETET I OSLO

IN 147 Program og maskinvare

Forelesning 4. Binær adder m.m.

Kapittel 4: Microarchitecture level

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

INF1400. Kombinatorisk Logikk

Forelesning 7. Tilstandsmaskin

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

Oppsummering av digitalteknikkdelen

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Institiutt for informatikk og e-læring, NTNU Kontrollenheten Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

UNIVERSITETET I OSLO

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Forelesning 6. Sekvensiell logikk

INF1400. Sekvensiell logikk del 1

Datamaskiner og operativsystemer =>Datamaskinorganisering og arkitektur

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

En oppsummering (og litt som står igjen)

Forelesning 3. Karnaughdiagram

Introduksjon til DARK assembly

ITPE2400/DATS2400: Datamaskinarkitektur

INF1400. Tilstandsmaskin

INF1400. Karnaughdiagram

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

INF1400. Tilstandsmaskin

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

SIE 4005, 8/10 (3. Forelesn.)

Fys 3270/4270 høsten Laboppgave 2: Grunnleggende VHDL programmering. Styring av testkortets IO enheter.

Kapittel 5 Tilstandsmaskin

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Dagens temaer. Intern hukommelse (1) Maskinvaredelen av INF 103: oversikt og innhold (2) Maskinvaredelen av INF 103: oversikt og innhold (1)

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Generell informasjon

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

1. del av Del - EKSAMEN

Eksamen INF2270 våren 2018

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

MAX MIN RESET. 7 Data Inn Data Ut. Load

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Oppsummering digital-teknikk, teknikk, INF2270

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

! Dekoder: En av 2 n output linjer er høy, avhengig av verdien på n inputlinjer. ! Positive tall: Som før

EKSAMEN Emnekode: ITD13012

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

INF2100. Dagens tema: Flink-maskinen Litt datamaskinhistorie. Registre og lagre. Instruksjoner. Flass-koden

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Transkript:

Forelesning 5 Diverse komponenter/større system

Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Kombinert adder/subtraktor ALU En minimal RISC - CPU 2

Komparator Komparator sammenligner to 4 bits tall A og B 3 utganger: A=B, A>B og A<B Eksempel: 4-bits komparator Utgang A=B Slår til hvis A =B og A =B og A 2 =B 2 og A 3 =B 3 Kan skrives: (A B ) (A B ) (A 2 B 2 ) (A 3 B 3 ) 3

Komparator - eksempel Utgang A>B slår til hvis: (A 3 >B 3 ) eller (A 2 >B 2 og A 3 =B 3 ) eller (A >B og A 2 =B 2 og A 3 =B 3 ) eller (A >B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 B 3 ) + (A B ) (A 2 B 2 ) (A 3 B 3 ) + (A B )(A B ) (A 2 B 2 ) (A 3 B 3 ) 4

Komparator - eksempel Utgang A<B slår til hvis: (A 3 <B 3 ) eller (A 2 <B 2 og A 3 =B 3 ) eller (A <B og A 2 =B 2 og A 3 =B 3 ) eller (A <B og A =B og A 2 =B 2 og A 3 =B 3 ) Kan skrives: (A 3 B 3 ) + (A 2 B 2 ) (A 3 B 3 ) + (A B ) (A 2 B 2 ) (A 3 B 3 ) + (A B )(A B ) (A 2 B 2 ) (A 3 B 3 ) 5

Komparator - eksempel 6

Dekoder Dekoder tar inn et binært ord, gir ut alle mintermer Eksempel: 3bit inn / 8bit ut 7

Dekoder - sannhetstabell Eksempel: 3bit inn Innganger Utganger y z D D D 2 D 3 D 4 D 5 D 6 D 7 8

Dekoder varianter Enable input: Enable aktiv - normal operasjon. Enable inaktiv - alle utganger disablet NAND logikk: Inverterte utganger Eksempel Aktiv lav enable inngang 9

Dekoder - parallellkobling Eksempel: Lager en 46 dekoder fra 2stk 38 dekodere med enable innganger

Dekoder generering av logiske funksjoner Dekoder - elektrisk sannhetstabell. Kan generere generelle logiske funksjoner direkte fra mintermene på utgangen S n Eksempel: Fulladder A n B n C n C n+

Enkoder Enkoder motsatt av dekoder Eksempel: 83 enkoder Innganger Utganger D D D 2 D 3 D 4 D 5 D 6 D 7 y z = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Antar at det ikke eksisterer andre inngangskombinasjoner 2

Enkoder Eksempel D D 2 D 4 D 6 z = D 4 + D 5 + D 6 + D 7 y = D 2 + D 3 + D 6 + D 7 z = D + D 3 + D 5 + D 7 Y X D D 3 D 5 D 7 3

Prioritets-enkoder Problem i enkodere: Hva hvis man får flere ere inn samtidig? Løsning: Prioritets-enkoder Hvis flere ere inn - ser kun på inngang med høyst indeks (prioritet) Eksempel: 83 prioritets-enkoder D D D 2 Innganger D 3 D 4 D 5 D 6 D 7 Utganger y z 4

Prioritets-enkoder Eksempel: 42 prioritets-enkoder med valid utgang V signaliserer at minst en inngang er 5

Multiplekser Multiplekser (MUX) velger hvilke innganger som slippes ut Hver inngang kan bestå av ett eller flere bit A B C UT N Select 6

MUX Eksempel: 2- MUX Implementasjon Symbol 7

MUX Eksempel: 4- MUX 8

MUX Eksempel: 2- MUX 9

Demultiplekser Demultiplekser motsatt av multiplekser INN A B C N Select 2

Kombinert adder/subtraktor M=: adder / M=: subtraktor / V: overflow bit 2

ALU ALU Arithmetic Logic Unit Generell regneenhet Eksempel: SN74LS8 4bit utbyggbar ALU 3 forskjellige operasjoner 22

ALU - SN74LS8 23

CPU CPU Central Processing Unit Hjernen i en vanlig seriell datamaskin Von Neuman prinsippet all data som skal behandles må innom CPU en En CPU styres av programkode. Denne koden består av et sett med lavnivå (maskinkode) instruksjoner Maskinkode-instruksjoner er det laveste nivået man kan programmere på Programmering direkte i maskinkode kan i teorien gi optimale programmer (hastighet/plass), men blir fort ekstremt tungvint og uoversiktlig for større program 24

RISC - CPU RISC Reduced Instruction Set Computer (få maskinkode-instruksjoner) RISC-prinsippet brukes idag i alle moderne CPU er. (CISC instruksjoner (86-64) blir oversatt on chip) Dess færre maskinkodeinstruksjoner man har til rådighet dess flere mellomoperasjoner må man utføre Dess færre maskinkodeinstruksjoner man har dess raskere kan de utføres (til en viss grad) RISC prosessorer tar i utgangspunktet mindre plass enn CISC (Compleks Instruction Set Computer) prosessorer 25

En minimal RISC - CPU Vi vil nå presentere en ekstrem RISC prosessor med kun 6 instruksjoner. (Pentium4 CISC har >2) Den følgende RISC prosessoren er kraftig forenklet, men er fullt funksjonell, og med mer minne kan den utføre alle oppgaver man kan forvente av en vanlig CPU Den følgende RISC prosessoren kunne ha vært forenklet ytterligere men dette er ikke gjort av pedagogiske grunner 26

Komplett CPU: 4-bit databuss / 3bit adressebuss This image cannot currently be displayed. 27

Virkemåte Alle delene til CPU klokkes av ett felles klokkesignal Innholdet i programtelleren angir adressen til neste instruksjon i programminnet. Programtelleren øker instruksjonsadressen med for hver klokkeperiode (hvis den ikke skal gjøre et hopp) Når en ny instruksjon (kontrollord) lastes ut av programminnet vil de 6 første bittene i kontrollordet (OP-koden) direkte styre hva som skjer i systemet: Siste del av kontrollordet (3bit) brukes til å angi adresse i dataminnet for hvor data skal inn/ut evt. adresse i programminnet for hopp 28

Kontrollord (OP kode) Bit nr. 8 (load) styrer en MUX som velger om data inn til dataminne skal komme utenifra (IO) eller fra Y register Bit nr. 7 (branchnz) (hopp hvis resultat ikke er ) avgjør om programteller skal telle opp eller laste inn ny adresse (parallell load) hvis siste beregning i ALU ikke gir Bit nr. 6 (write) styrer om dataminnet skal lese ut data eller skrive inn ny data. (data som blir lest inn vil samtidig være tilgjengelig ut i dette systemet) 29

Kontrollord (ALU) ALU-en utfører 3 operasjoner samtidig ) Addisjon av nåværende data med forrige data (fra X registret) 2) Bitvis NAND av nåværende data med forrige data 3) Høyre shift av nåværende data Bit nr. 5 (shift) velger det høyre-shiftede resultatet ut fra ALU-en Bit nr. 4 (NAND) velger det bitvis NANDede resultatet ut fra ALU-en Bit nr. 3 (ADD) velger addisjons resultatet ut fra ALUen 3

Kontrollord (adressedel) Bit nr. 2 (A2) bit nr.2 i adresse for hopp Bit nr. (A) bit nr. i adresse for hopp / data Bit nr. (A) bit nr. i adresse for hopp / data 3

En minimal RISC - CPU Kommentarer: Ordbredden på databussen er her satt til 4bit. Man kan uten videre utvide denne til 32-64bit hvis behov Antall ord i data/programminnet (her valgt til 4/6) kan utvides til hva man måtte ønske Lengden på OP-koden kan reduseres hvis man bruker binær koding ALU-en kan utvides med flere direkte regneoperasjoner for å spare mellomregninger Osv. (mange muligheter for å utvidelser). 32

This image cannot currently be displayed. Komplett CPU: Funksjonell Diglog-implementasjon 33

Maskinkode-instruksjoner (kontrollordet i programminnet) Bit nr. 8 7 6 5 4 3 2 Hent data fra angitt minneadresse og utfør ADD med forrige data Hent data fra angitt minneadresse og utfør BIT-NAND med forrige data Hent data fra angitt minneadresse og shift data ett bit til høyre Skriv data til angitt minneadresse Load data fra IO til angitt minneadresse Hopp til angitt programadresse hvis forrige data ikke ble Load BranchNZ W ShiftR NAND ADD A2 A A X A A X A A X A A X X X X A A X X X X A A X X X A2 A A 34

RISC program-eksempler Eksempel : Ta inn to tall fra IO, adder tallene og gi svaret til IO. Løsning:. Les inn første tall fra IO, og legg det i dataminne nr. Maskinkode:. Les inn neste tall fra IO, og legg det i dataminne nr. Maskinkode: 2. Hent ut siste tall fra dataminne (legges i X reg) Maskinkode: 3. Les ut første tall fra dataminne, og utfør ADD med forrige tall (som er innholdet i dataminne ) Maskinkode: 4. Skriv resultat til (for eksempel) dataminne nr. Maskinkode: (Databussen er direkte synlig for IO) 35

RISC program-eksempler Eksempel 2: Implementasjon av for-løkke Java kode Hva vi setter CPU til å gjøre int k; // velger dataadresse int n; // velger dataadresse k = IO.inInt(); // Henter k fra IO for (n=; n<k; n++) ; // Her kan man legge hva som helst // k = k-, hopper tilbake hvis k // Neste instruksjon *Vår RISC kan ikke subtrahere direkte. Legger derfor først inn (2er komplement for -) i dataminne. Kan så addere - til k underveis i løkken 36

RISC program-eksempler Eksempel 2: Implementasjon av for-løkke. Les inn - () fra IO (for enkelhetens skyld) og legg det i dataminne nr.. Maskinkode:. Les inn k fra IO, og legg det i dataminne nr.. Maskinkode: 2. Hent fram - fra dataminne. Maskinkode: 3. Hent fram k fra dataminne og ADD med forrige data (- ). Maskinkode: 4. Lagre resultat til k. Maskinkode: 5. Hopp til program linje nr. 2 så lenge resultatet ikke er. Maskinkode: 37

Hovedpunkter Komparator Dekoder/enkoder MUX/DEMUX Demultiplekser Kombinert adder/subtraktor ALU En minimal RISC - CPU 38