90 likes | 272 Views
Tietokoneen arkkitehtuuri ja konekieli. Tietotekniikan perusteet 6.10.1998 Pekka Orponen. Väylät. Tiedonsiirtoa tietokoneen osien välillä ei kannata toteuttaa johdottamalla kaikki osat kaikkiin (n osaa Þ O(n 2 ) johtoa)
E N D
Tietokoneen arkkitehtuuri ja konekieli Tietotekniikan perusteet 6.10.1998 Pekka Orponen
Väylät • Tiedonsiirtoa tietokoneen osien välillä ei kannata toteuttaa johdottamalla kaikki osat kaikkiin (n osaa Þ O(n2) johtoa) • Väylä (engl. bus): usean komponentin yhteisesti jakama tiedonsiirtolinja • Toteutus ks. monisteen kuvat 24-25 • Jaettu resurssi • Þ osallistujien täytyy tahdistaa (synkronoida) toimintansa • Þ kättelysäännöt (engl. handshake protocols)
write wait_2 Kolmen signaalin kättelymenettely • Esitys vuorovaikuttavina automaatteina: RECEIVE SEND process process D = 0? A ¬ 0 R ¬ 1 R = 1? wait_1 A = 1? D ¬ 0 D = 1? R ¬ 0 D ¬ 1 A ¬ 1 read wait RDA 0 0 0 receive 1 0 0 send 1 1 0 receive 0 1 0 receive 0 1 1 send 0 0 1 receive 0 0 0
Tietokoneiden von Neumann -arkkitehtuuri • Oikeammin: ”EDVAC-arkkitehtuuri”. • John von Neumann, ”First Draft of a Report on the EDVAC”, Moore School of Electrical Engineering, Univ. of Pennsylvania, June 1945. • Ensimmäinen toteutus: EDSAC (Electronic Delay Storage Calculator), Cambridge Univ., May 1949. • Monisteen kuvat 28, 29. • Toimintaperiaate: • Laitteiston käsittelemä tieto on talletettu sen muistiin. • Laitteisto muuntaa muistin sisältöä suorittamalla jonon synkronoituja toimenpidekokonaisuuksia, konekäskyjä. Suoritettavaa käskyjonoa sanotaan koneen (konekieliseksi) ohjelmaksi. • Tallennetun ohjelman periaate: myös ohjelma (so. suoritettavien käskyjen koodit) on tallennettu koneen muistiin. Erittäin tärkeä idea laitteiston joustavan käytön kannalta.
Tietokoneen komponenttijako • Ohjausyksikkö (CU, control unit) • Automaatti, joka säätelee (tahdistaa & ohjaa) käskyjen ja datan noutoa muistista, käskyjen suoritusta ja tulosten tallennusta takaisin muistiin • Aritmeettis-looginen yksikkö • Logiikkapiirit laskutoimitusten suorittamista varten • Rekisterit • Kiikuista rakennettuja kulloinkin välittömästi käsiteltävänä olevan tiedon tallennuspaikkoja • Muisti • Käsiteltävän tietoaineiston sekä käsittelyohjelman tallennukseen • Oheislaitteet • Syöte- ja tulostuslaitteet • Massamuistilaitteet
Tyypillisiä konekäskyjä • Merkintöjä: • M[i] -- muistipaikan i sisältö • AC -- rekisterin AC (”akun”) sisältö • PC -- ohjelmalaskuri: suoritettavana olevan käskyn muistiosoite Käsky Toiminto LOAD i AC ¬ M[i] STORE i M[i] ¬ AC ADD i AC ¬ AC + M[i] SUB i AC ¬ AC - M[i] CLEAR AC ¬ 0 NOP ei mitään HALT pysäytä kone JUMP i PC ¬ i JMPZ i jos AC = 0, niin PC ¬ i (muuten PC ¬ PC + 1)
Käskynhakusekvenssi • Tietokone suorittaa muistiinsa osoitteesta p0 alkaen tallennettua ohjelmaa pääpiirteissään seuraavasti (yksityiskohtiin palataan ensi kerralla): • PC ¬ p0. • Nouda muistipaikkaan M[PC] tallennettu käsky käskyrekisteriin INSTR. • Suorita rekisterissä INSTR oleva käsky. • jos käsky oli hyppykäsky, päivitä rekisteriä PC siinä määrätyllä tavalla; • muuten aseta PC ¬ PC + 1 • Palaa kohtaan 2.
Esimerkkiohjelmia • Oletetaan, että ohjelmat on tallennettu muistiin alkaen muistipaikasta 10. • Esimerkki 1. Muistipaikkoihin 100 ja 101 tallennettujen lukujen yhteenlasku; tuloksen tallennus paikkaan 102: 10: LOAD 100 11: ADD 101 12: STORE 102 13: HALT
Esimerkkiohjelmia (jatkuu) • Esimerkki 2. Muistipaikkaan 100 tallennetun luvun n neliöinti; tuloksen n2 tallennus paikkaan 102. Oletetaan, että muistipaikkaan 101 on ennalta tallennettu lukuvakio 1. 010: CLEAR -- M[102] = lopputulos n2, 011: STORE 102 -- alkuarvo 0 012: LOAD 100 -- M[103] = kierroslaskuri, 013: STORE 103 -- alkuarvo n 014: JMPZ 021 -- jos M[103] = 0, jatka os. 021 015: LOAD 102 -- M[102] ¬ 016: ADD 100 -- M[102] + n 017: STORE 102 -- 018: LOAD 103 -- M[103] ¬ 019: SUB 101 -- M[103] - 1 020: JUMP 013 -- jatka osoitteesta 013 021: HALT -- loppu; tulos = M[102] … 100: 000000 101: 000001 102: 000000 103: 000000