490 likes | 645 Views
Går det att simulera vår värld med 1:or och 0:or ?. Går det att simulera vår värld med 1:or och 0:or ?. Vad behövs ?. Går det att simulera vår värld med 1:or och 0:or ?. Vad behövs ? något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något.
E N D
Går det att simulera vår värld med 1:or och 0:or ? • Vad behövs ?
Går det att simulera vår värld med 1:or och 0:or ? • Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något
Går det att simulera vår värld med 1:or och 0:or ? • Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning
Går det att simulera vår värld med 1:or och 0:or ? • Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ
Går det att simulera vår värld med 1:or och 0:or ? • Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat
Hårdvara Allt detta finns i en modern processor.Vi ska nu betrakta en enkel modell av vad som finns på insidan. • Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat
Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat CPU-schema Primärminne Databuss Styrenhet Ackumulator Registerval Instruktions-register Program B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat CPU-schema Primärminne Databuss Styrenhet Ackumulator Registerval Instruktions-register Program B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat CPU-schema Primärminne Databuss Styrenhet Ackumulator Registerval Instruktions-register Program B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
Vad behövs ? • något som kan tolka våra 1:or ooch 0:or som en instruktion att utföra något • utföra våra instruktioner (program)i rätt ordning • kunna välja alternativ • signaler/data tillbaka för att styra/meddela ett resultat CPU-schema Primärminne Databuss Styrenhet Ackumulator Registerval Instruktions-register Program B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
CPU-schema Adressen på adressbussen pekar ut data som skall transporteras på databussen - data (Data) till register och ALU eller - instruktioner ( Program ) till styrenheten Primärminne Databuss Styrenhet Program Ackumulator Registerval Instruktions-register B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
CPU-schema Adressen på adressbussen pekar ut data som skall transporteras på databussen - data (Data) till register och ALU eller - instruktioner ( Program ) till styrenheten Primärminne Databuss Styrenhet Program Ackumulator Registerval Registren är processorns egna minnen. De används för att lagra viktiga adresser och tillfälligt data. Instruktions-register B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
En simuleringsmaskin som arbetar på detta sätt fungerar efter von Neumanns principer. Märk speciellt att programkod och datakod finns i samma minne (primärminnet). Nu ska vi se var de ”externa” bussarna tar vägen. CPU-schema Primärminne Databuss Styrenhet Program Ackumulator Registerval Instruktions-register B C Flaggor D E ALU Avkodare H L Mikrokod/minne SP Data PC Styrkretsar Adressbuss Kontrollbuss
Video RAM Teckengenerator Videokretsar Tangentbord parallellinterface Diskkontroll Adressbuss CPU Databuss Expansionsbuss Kontrollbuss Tilläggskort Klocka UART Bootstrap ROM, BIOS Parallell- port RS232 serieportar Primärminne RAM
Expansionsbuss ( PCI Local Bus architecture ) Any PCI-compatible card works in any PCI-compliant system. 32 or 64-bit cards are interoperable in same socket. Pentium processors supported Highly integrated interface manages bus traffic PCI bus supports multiple high speed peripherals. ISA expansion bus also supports floppy drive, keyboard and mouse PCI bus supplements ISA, EISA and MCA-bus based systems
Från program till exekvering av mikrokod ett litet exempel
LDA 8 ADDA 9 STA 10 STA OUT ladda ackumulatorn med innehållet på adress 8 addera innehållet på adress 9 med ackumulatorinnehållet, resultatet i ackumulator lagra innehållet i ackumulatorn på adress 10 skriv innehållet i ackumulatorn till utporten Ett ”assemblerprogram”
Assemblering till maskinkod LDA 8 ADDA 9 STA 10 STA OUT Assemblering ”EXE” - fil Maskinkod
6 0000 CODE_SEG SEGMENT 'CODE' 7 8 ASSUME CS:CODE_SEG 9 0000 MAIN PROC FAR 10 11 0000 B4 06 MOV AH,6 ;read key 12 0002 B2 FF MOV DL,0FFH 13 0004 CD 21 INT 21H 14 0006 74 F8 JE MAIN ;if no key 15 16 0008 3C 40 CMP AL,'@' ;test for @ 17 000A 74 08 JE MAIN1 ;if @ 18 19 000C B4 06 MOV AH,6 ;display key 20 000E 8A D0 MOV DL,AL 21 0010 CD 21 INT 21H 22 0012 EB EC JMP MAIN ;repeat 23 0014 MAIN1: 24 0014 B4 4C MOV AH,4CH ;exit to DOS 25 0016 CD 21 INT 21H 26 27 0018 MAIN ENDP 28 29 0018 CODE_SEG ENDS 30 31 END MAIN Maskinkodett exempel
19 19 • OPerationskod • Adress • InstruktionsRegister • ProgramRäknare • Avkodare, OP-kod till offsetadress • AckumulatorRegister • mProgramRäknare Adressbuss Primärminne IR OP A 16 1 12 K 2 Mikrominne OP’ 17 PR m PR läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka Kontrollbuss 1 7 11 15
Vår dator Programmet laddas i primärminnet , programräknarna nollställs
19 19 Adressbuss Primärminne IR OP A 16 1 12 K 2 Mikrominne OP’ 17 PR=0 m PR=0 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Första mikroinstruktionen utförs
19 19 Adressbuss Primärminne IR OP A 16 1 12 K 2 Mikrominne OP’ 17 PR=0 m PR=1 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Första mikroinstruktionen utförs på nytt 2 ggr, rad 1och 2 ( waitstates )
19 19 Adressbuss Primärminne IR OP A 16 1 12 K 2 Mikrominne OP’ 17 PR=0 m PR=3 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 3 utförs
19 19 Adressbuss Primärminne IR OP A 16 1 12 K 2 Mikrominne OP’ 17 PR=0 m PR=4 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 4 utförs
19 19 Adressbuss Överför 2 bytes Primärminne IR 00001000 11001000 16 1 12 K 2 Mikrominne OP’ 17 PR=0 m PR=5 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 5 utförs, sista instruktionen i hämt (fetch) - fasen
19 19 Adressbuss Primärminne IR 00001000 11001000 16 1 K 12 2 Mikrominne 00000110=6 OP’ 17 PR=2 m PR=6 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 6 utförs, hämtfasen (fetch) är slut och ”LDA” skall exekveras
19 19 Adressbuss Primärminne IR 00001000 11001000 16 1 K 12 2 Mikrominne 00000110=6 OP’ 17 PR=2 m PR=7 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 7, 8 utförs
19 19 Adressbuss Primärminne IR 00001000 11001000 16 1 K 12 2 Mikrominne 00000110=6 OP’ 17 PR=2 m PR=8 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 9 utförs
19 19 Adressbuss Primärminne IR 00001000 11001000 16 1 K 12 2 Mikrominne 00000110=6 OP’ 17 PR=2 m PR=10 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 AR 4 5 14 UT IN Klocka 1 7 11 15
Vår dator Mikroinstruktionen på rad 10 utförs
19 19 Adressbuss Primärminne IR 00001000 11001000 16 1 K 12 2 Mikrominne 00000110=6 OP’ 17 PR=2 m PR=0 läs skriv 8 9 +2 nollst +1 3 18 19 add 6 7 sub Databuss 10 13 01010100 4 5 14 UT IN Klocka 1 7 11 15
Vår dator osv.......
Vår dator exekveringsfasen för ”LDA” är klar och mikroprogrammet återgår till ”hämtfasen” för att läsa in maskinkoden för ”STA”. OBS! När maskinkoden avkodas i styrenheten sker hopp till rätt plats i mikrominnet där mikrokoden för ”STA” finns { Hämta maskinkodsinstruktion { ”LDA” ”STA” etc
CISC- och RISC- processorer”modetermer” • CISC Complex Instruction Set Computing • Bra då primärminne är långsamt ty CISC ger programmeraren många och kraftfulla programinstruktioner - lite kod i primärminnet mycket i processorn. • Detta medför i sin tur”mycket och komplicerad” mikrokod som leder till många transistorer i processorn • Processorn blir dyr och ”långsam” • ”Lätt” att assemblerprogrammera
CISC- och RISC- processorer”modetermer • RISC Reduced Instruction Set Computing • Programmeringen sker med färre och enklare maskinkodsinstruktioner vilket medför mindre mikrokod och färre transistorer i processorn på bekostnad av att mer primärminne måste användas. • Detta ger snabbar och billigare processorer • mycket svårt att assemblerprogrammera, kräver högnivåspråkkompilator • Framtidens melodi ?