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

Like dokumenter
Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Hvordan en prosessor arbeider, del 1

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

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

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.

Forelesning 5. Diverse komponenter/større system

INF1400 Kap4rest Kombinatorisk Logikk

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

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

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

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

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

Datamaskinens oppbygning

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

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

Maskinvaredelen av INF 103: oversikt og innhold (1)

Datamaskinens virkemåte

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

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

Datamaskinenes historie Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF-103. Velkommen til. Første time. Fra brukergrensesnitt til maskinvare. eller Datamaskinen på tvers. Andre time

INF-103 Fra brukergrensesnitt til maskinvare

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Dagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler

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

INF2270. Datamaskin Arkitektur

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Datamaskinen LC-2. Dagens tema. Tall i datamaskiner Hvorfor kan LC-2 lagre tall i intervallet ? Hvorfor er det akkurat celler i lageret?

Dagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall

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

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema INF1070 INF1070 INF1070

INF2270. Datamaskin Arkitektur

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Oppsummering av digitalteknikkdelen

IN 147 Program og maskinvare

Datasystemer og informasjonssystemer

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Minnehåndtering i operativsystemer

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

IN1020. Datamaskinarkitektur

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Hvorfor lære om maskinvare*?

Dark load-store-maskin

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

Dark Stakkmaskin. Aritmetiske instruksjoner

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006

Datasystemer og informasjonssystemer

Forelesning Instruksjonstyper Kap 5.5

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Datasystemer og informasjonssystemer

Dagens tema: Enda mer MIPS maskinkode

UNIVERSITETET I OSLO

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Del 1 En oversikt over C-programmering

2 Parser. 1 Skanner. 4 Kodegenerator. 3 Sjekker. Oversikt Datamaskinhistorie x86 Kodegenerering Setninger Uttrykk.

DRI Datasystemer og informasjonssystemer

TDT4160 AUGUST, 2008, 09:00 13:00

Intel Core i7. Omid Mirmotahari 4

Kap. 8 del 1 kodegenerering INF5110 Vår2007

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

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

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Hvordan fant man på å lage datamaskiner?

Debugging. Tore Berg Hansen, TISIP

Eksamen INF2270 våren 2018

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

Introduksjon til DARK assembly

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

Fortsetelse Microarchitecture level

Minnehåndtering i operativsystemer

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

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

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til IKT. Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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:

IN Abstraksjonsnivå

Håndtering av minne i et OS

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte. Oversatt av Rune Sætre,

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

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Transkript:

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

Lagdelingen av en datamaskin Internett Lokalnett (LAN) Mitt program Programtolker (python, java,...) Operativsystemet Prosessoren (CPU-en) Logiske porter (AND, OR, XOR,...) Transistorer

Bakgrunnen LMC Instruksjoner Assemblerkode Oppsummering De menneskelige beregnerne Inspirasjonen De som laget de første datamaskinene, prøvde å etterligne de menneskelige beregnerne.

Bakgrunnen LMC Instruksjoner Assemblerkode Oppsummering De menneskelige beregnerne Disse menneskelige beregnerne hadde: arbeidsbeskrivelse inndata og resultater regnemaskin ark til mellomresultater

John von Neumann fant løsningen Von Neumann-arkitekturen Basert på dette designet John von Neumann den moderne datamaskinen: CPU inndata utdata Minne prosessor Den viktigste egenskapen er at minnet inneholder både data og instruksjoner.

Hva er LMC? LMC En meget enkel men teoretisk korrekt datamaskin er LMC («Little man computer») designet av Stuart Madnick. Denne simulatoren er laget av Peter Higginson.

Inn- og utdata Data inn og ut LMC kan lese tall som brukeren skriver inn. Svaret kommer i form av tall som LMC skriver ut. Ekte datamaskiner Data inn kan komme fra tastatur, mus, sensorer,... Data ut kan gå til skjerm, høytaler, skriver,...

Minnet Minnet Minnet i LMC er en posthylle med hundre hyller nummerert 0 99. Hver hylle kan lagre ett tall. Ekte datamaskiner Minnet er på 2 8 GB (gigabyte).

CPU CPU CPU («Central Processing Unit») er den sentrale delen i en datamaskin. Den inneholder: ALU («Arithmetic Logic Unit») til aritmetiske og logiske beregninger registre kontrollogikk til å utføre instruksjonene inndata CPU ALU Registre Minne prosessor utdata

Regnemaskinen Regnemaskinen Regneenheten til LMC kan addere og subtrahere heltall. Ekte datamaskiner En moderne ALU kan alle vanlige regnearter for heltall av ulik lengde samt for flyt-tall.

Registre Registre Inne i CPU-en finnes noen få lagerceller for data som CPU-en trenger. LMC har fire registre: Accumulator er til beregninger; svaret kommer hit. Program counter (alias Location counter) angir hvilken instruksjon i minnet som neste gang skal utføres. Instruction register inneholder koden til den instruksjonen som utføres. Address register inneholder adresseinformasjonen til den instruksjonen som utføres. Ekte datamaskiner Moderne prosessorer har fra 20 til et par hundre registre.

Instruksjonene Instruksjonene Arbeidsbeskrivelse lagres på numerisk form i minnet. Hver instruksjon er en tall 0 999 der 1. siffer angir instruksjonskoden og 2. og 3. siffer angir en adresse i minnet (om det er aktuelt). Eksempel 599 betyr «Hent verdien i adresse 99 i minnet og legg den i akkumulatorregisteret.» (Kode 5 angir at prosessoren skal hente noe i minnet.)

Tolkning av instruksjonene Utførelse av instruksjonene Kontrollogikken i CPU-en er i stand til å utføre det instruksjonene angir. Læreboken demonstrerer dette med en liten mann:

Tolkning av instruksjonene Instruksjonssykelen Kontrollogikken i CPU-en gjør det som de menneskelige beregnerne gjorde: 1 Bruk verdien i programtelleren som adresse til minnet og hent neste instruksjon der. Samtidig: Øk programtelleren med 1. 2 Splitt instruksjonen og legg delene i instruksjonsregisteret og adresseregisteret. 3 Utfør det som instruksjonsregisteret angir. 4 Gjenta.

HLT Instruksjonen HLT Denne instruksjonen (HLT = «Halt», også kalt COB = «Coffee break» i boka) har kode 000. Den stopper kjøringen. Eksempel Dette minimale programmet gjør ingen ting, det bare stopper: 000

INP og OUT Instruksjonen INP Denne instruksjonen (INP = «Input», kalt IN i boka) har kode 901. Den ber brukeren skrive et tall, og dette tallet legges i akkumulatorregisteret. Instruksjonen OUT Denne instruksjonen (OUT = «Output») har kode 902. Den skriver ut verdien i akkumulatoren. Eksempel Dette lille programmet leser et tall og skriver det ut igjen før det stopper. 901 902 000

LDA og STO Instruksjonen STA Denne instruksjonen (STA = «Store accumulator», kalt STO i boka) har kode 3xx, og den kopierer verdien i akkumulatoren til adresse xx i minnet. Instruksjonen LDA Denne instruksjonen (LDA = «Load accumulator») har kode 5xx, og den kopierer verdien i lokasjon xx til akkumulatoren.

ADD og SUB Instruksjonen ADD Denne instruksjonen har kode 1xx og adderer verdien i adresse xx i minnet til akkumulatoren. Instruksjonen SUB Denne instruksjonen (SUB = «Subtract») har kode 2xx, og den trekker verdien i adresse xx i minnet fra akkumulatoren.

Et addisjonsprogram Et eksempel Dette lille programmet [Englander side 183 184] vil 1 lese inn et tall og legge det i adresse 99 i minnet, 2 lese et tall til, 3 legge tallet i adresse 99 til det sist innleste tallet og 4 skrive ut svaret. 901 399 901 199 902 000

Numeriske koder er kronglete Assemblerkode Forrige eksempel viste at numeriske koder er kronglete å bruke. Det er bedre om vi kan navngi instruksjonene. add2.lmc INP // Les et tall STA 99 // og legg det i celle 99. INP // Les et tall til ADD 99 // og legg til tallet i celle 99. OUT // Skriv ut svaret. HLT // Avslutt. Slik tekstlig kode kalles assemblerkode.

Alle instruksjonene Alle LMC-instruksjonene Kode Navn Beskrivelse 0xx HLT Stopper 1xx ADD Adderer angitt minneverdi med akkumulatoren 2xx SUB Subtraherer minneverdi fra akkumulatoren 3xx STO Lagrer akkumulatoren i minnet 4xx (Ikke i bruk) 5xx LDA Henter verdi fra minnet til akkumulatoren 6xx BRA Hopper til angitt adresse 7xx BRZ Hopper hvis akkumulatoren er 0 8xx BRP Hopper hvis akkumulatoren er 0 901 INP Leser verdi; svar i akkumulatoren 902 OUT Skriver ut verdien i akkumulatoren 922 OTC Skriver ut ASCII-tegn (ikke i boka)