Anders Sjögren Går det att simulera vår värld med 1:or och 0:or ?
Anders Sjögren Går det att simulera vår värld med 1:or och 0:or ? Vad behövs ?
Anders Sjögren 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
Anders Sjögren 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
Anders Sjögren 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
Anders Sjögren 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
Anders Sjögren Hårdvara 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 Allt detta finns i en modern processor. Vi ska nu betrakta en enkel modell av vad som finns på insidan.
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne 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 Program
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne 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 Program
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne 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 Program
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne 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 Program
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Program Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne Adressen på adressbussen pekar ut data som skall transporteras på databussen - data (Data) till register och ALU eller - instruktioner ( Program ) till styrenheten
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Program Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne Adressen på adressbussen pekar ut data som skall transporteras på databussen - data (Data) till register och ALU eller - instruktioner ( Program ) till styrenheten Registren är processorns egna minnen. De används för att lagra viktiga adresser och tillfälligt data.
Anders Sjögren CPU-schema Instruktions- register Avkodare Styrkretsar Registerval Flaggor Ackumulator B C E D H L SP PC ALU Primärminne Program Data Styrenhet Databuss Adressbuss Kontrollbuss Mikrokod/minne 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.
Anders Sjögren Klocka CPU Tangentbord parallellinterface Video RAM Teckengenerator Videokretsar Diskkontroll Expansionsbuss Tilläggskort UART RS232 serieportar Primärminne RAM Bootstrap ROM, BIOS Adressbuss Databuss Kontrollbuss Parallell- port
Anders Sjögren Expansionsbuss
Anders Sjögren Expansionsbuss
Anders Sjögren Expansionsbuss ( PCI Local Bus architecture ) Pentium processors supported Highly integrated interface manages bus traffic ISA expansion bus also supports floppy drive, keyboard and mouse PCI bus supplements ISA, EISA and MCA- bus based systems PCI bus supports multiple high speed peripherals. Any PCI-compatible card works in any PCI-compliant system. 32 or 64-bit cards are interoperable in same socket.
Anders Sjögren Från program till exekvering av mikrokod ett litet exempel
Anders Sjögren Ett ”assemblerprogram” 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
Anders Sjögren Assemblering till maskinkod LDA 8 ADDA 9 STA 10 STA OUT Assemblering Maskinkod ”EXE” - fil
Anders Sjögren Maskinkod ett exempel CODE_SEG SEGMENT 'CODE' 7 8 ASSUME CS:CODE_SEG MAIN PROC FAR B4 06 MOV AH,6 ;read key B2 FF MOV DL,0FFH CD 21 INT 21H F8 JE MAIN ;if no key C 40 CMP ;test 17000A JE MAIN C B4 06 MOV AH,6 ;display key 20000E 8A D0 MOV DL,AL CD 21 INT 21H EB EC JMP MAIN ;repeat MAIN1: B4 4C MOV AH,4CH ;exit to DOS CD 21 INT 21H MAIN ENDP CODE_SEG ENDS END MAIN
Anders Sjögren Vår dator
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR AR OPA K PR UT IN 1 7 Klocka Primärminne Mikrominne +2 OPerationskod Adress InstruktionsRegister ProgramRäknare Avkodare, OP-kod till offsetadress AckumulatorRegister ProgramRäknare Kontrollbuss
Anders Sjögren Vår dator Programmet laddas i primärminnet, programräknarna nollställs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=0 AR OPA K PR=0 UT IN 1 7 Klocka Primärminne Mikrominne +2
Anders Sjögren Vår dator Första mikroinstruktionen utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=0 AR OPA K PR=1 UT IN 1 7 Klocka Primärminne Mikrominne +2
Anders Sjögren Vår dator Första mikroinstruktionen utförs på nytt 2 ggr, rad 1och 2 ( waitstates )
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=0 AR OPA K PR=3 UT IN 1 7 Klocka Primärminne Mikrominne +2
Anders Sjögren Vår dator Mikroinstruktionen på rad 3 utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=0 AR OPA K PR=4 UT IN 1 7 Klocka Primärminne Mikrominne +2
Anders Sjögren Vår dator Mikroinstruktionen på rad 4 utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=0 AR K PR=5 UT IN 1 7 Klocka Primärminne Mikrominne +2 Överför 2 bytes
Anders Sjögren Vår dator Mikroinstruktionen på rad 5 utförs, sista instruktionen i hämt (fetch) - fasen
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=2 AR K PR=6 UT IN 1 7 Klocka Primärminne Mikrominne =
Anders Sjögren Vår dator Mikroinstruktionen på rad 6 utförs, hämtfasen (fetch) är slut och ”LDA” skall exekveras
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=2 AR K PR=7 UT IN 1 7 Klocka Primärminne Mikrominne =6
Anders Sjögren Vår dator Mikroinstruktionen på rad 7, 8 utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=2 AR K PR=8 UT IN 1 7 Klocka Primärminne Mikrominne =6
Anders Sjögren Vår dator Mikroinstruktionen på rad 9 utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR=2 AR K PR=10 UT IN 1 7 Klocka Primärminne Mikrominne =6
Anders Sjögren Vår dator Mikroinstruktionen på rad 10 utförs
Anders Sjögren Databuss lässkriv add sub nollst OP’ IR Adressbuss PR= K PR=0 UT IN 1 7 Klocka Primärminne Mikrominne =6
Anders Sjögren Vår dator osv
Anders Sjögren 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
Anders Sjögren 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
Anders Sjögren 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 ? CISC- och RISC- processorer ” modetermer
Anders Sjögren Slut