80 likes | 213 Views
Konekäskyjen toteutus tietokoneessa. Tietotekniikan perusteet 13.10.1998 Pekka Orponen. Muistin rakenne. Tarkastellaan hyvin pientä (h.p.) tietokonetta, jonka muistissa on vain 256 16-bittistä muistipaikkaa. Tällöin jokaiseen muistipaikkaan voidaan viitata 8-bittisellä osoitteella.
E N D
Konekäskyjen toteutus tietokoneessa Tietotekniikan perusteet 13.10.1998 Pekka Orponen
Muistin rakenne • Tarkastellaan hyvinpientä (h.p.) tietokonetta, jonka muistissa on vain 256 16-bittistä muistipaikkaa. Tällöin jokaiseen muistipaikkaan voidaan viitata 8-bittisellä osoitteella. • Nykyisissä tietokoneissa keskusmuisti tyypillisesti 16-67 milj. 8-bittistä ”tavua”; osoitteen pituus 32 bittiä.) DATA (16 bit) 00…00 00…01 11…10 11…11 ADDR (8 bit)
Konekäskyjen koodaus • Oletetaan, että h.p. tietokoneemme käskykanta muodostuu viime luennolla esitetyistä 9 käskystä. • Annetaan kullekin käskylle 4-bittinen binäärikoodi: Käsky Koodi NOP 0000 HALT 0001 LOAD 0010 STORE 0011 ADD 0100 SUB 0101 CLEAR 0110 JUMP 1000 JMPZ 1001 • Täydellinen käskysana koostuu tällöin 4-bittisestä käskykoodista ja 8-bittisestä osoitteesta, esim.: ADD 100 = 0100 1100100
Konekäskyjen tallennus muistiin • Konekielinen ohjelma tallennetaan koneen muistiin koodatussa muodossa; esim. 10: LOAD 100 11: ADD 101 12. STORE 102 13: HALT 00…00 0..1010 0..1011 0..1100 0..1101 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 00 0 0 0 0 0 11…11
Konekäskyjen suoritussekvenssi • Tietokone suorittaa konekielisen ohjelman toistamalla seuraavaa toimenpidejonoa: • nouda seuraava käsky muistista • nouda käskyn operandi muistista (jos tarvitaan) • suorita käsky • talleta käskyn tulos muistiin (jos tarvitaan) • Keskusyksikössä tarvittavia apurekistereitä: • PC: käskylaskuri (program counter) • seuraavan suoritettavan käskyn muistiosoite • IR: käskyrekisteri (instruction register) • suoritettavana olevan käskyn käskykoodi • monisteessa INSTR • MAR: osoiterekisteri (memory address register) • suoritettavana olevan käskyn osoitekenttä • monisteessa MD • MDR: datarekisteri (memory data register) • suoritettavana olevan käskyn operandi • monisteessa 2 kpl: IA, IB • Lisäksi vielä yleiskäyttöinen apurekisteri AC, ”akku”.
Konekäskyjen suoritussekvenssi (jatkuu) • Rekisterimerkintöjä käyttäen suoritussekvenssi voidaan kuvata: • (IR, MAR) ¬ MEM[PC] • jos IR = ”LOAD”, ”ADD” tai ”SUB”, niin • MDR ¬ MEM[MAR] • suorita käsky INSTR operandilla MDR • jos IR = ”STORE”, niin • MEM[MAR] ¬ MDR • jos IR ¹ ”JUMP”, ”JMPZ”, niin • PC ¬ PC+1 • palaa kohtaan 1
Ohjausautomaatti ja käskyjen dekoodaus • Ohjausautomaatti, joka voidaan toteuttaa esim. ROM-muistipiirinä, purkaa IR-rekisteriin tallennetun käskykoodin vastaaviksi ohjaussignaaleiksi: DATA(5..8) IR 0 0 NOP LOAD ADD JMPZ 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 C0 Cl Cj Cx Ca
Toimintopiirien ohjaus ohjaussignaaleilla • Ohjausautomaatin tuottamat signaalit ohjaavat keskusyksikön muiden piirien toimintaa. • Esim.ADD- ja LOAD-käskyt voisivat olla toteutettuina koneen aritmeettis-loogisessa yksikössä seuraavasti: MDR AC ALU ADDER Ca Cl