1. Keskusyksikön rakenne



Samankaltaiset tiedostot
Käyttöjärjestelmän rakenne

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori

Luento 2 TTK-91 tietokone ja sen simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91 (1) TTK-91 laitteisto

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä?

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: tietotyypit (2)

Miksi konekieltä? Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori. Tietokone TTK-91. Miksi ei oikeaa konekieltä? TTK-91: rekisterit

Jakso 2 TTK-91-tietokone ja sen KOKSI-simulaattori

Luento 2: LAITTEISTOSTA

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Muistihierarkia Kiintolevyt I/O:n toteutus

Ttk-91 esimerkkitietokone ja sen simulaattori

Aliohjelmien toteutus Suoritin ja väylä

Järjestelmän ulkoinen muisti I/O

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Tietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Monipuolinen esimerkki

Luento 4 Aliohjelmien toteutus

Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Käyttöjärjestelmät, 8 op

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Muistihierarkia Kiintolevyt I/O:n toteutus

Kertausluento luennoista 1-3 1

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Jakso 4 Aliohjelmien toteutus

Tiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 4 Aliohjelmien toteutus

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Käskykannat. Tietokoneen rakenne. Ch [Sta06] Operaatioista Operandeista Osoitustavoista Pentium / PowerPC. Luento 7-1

2 Konekieli, aliohjelmat, keskeytykset

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Luento 7: Käskykannat Tietokoneen rakenne / 2006 / Teemu Kerola 9/25/2006

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Tito-kooste. Esipuhe. Versiohistoria:

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Tietokoneen rakenne Käskysykli CPU suorittaa ohjelmaa konekielinen käsky kerrallaan

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Jakso 8 Ohjelman toteutus järjestelmässä

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset

Transkriptio:

1. Keskusyksikön rakenne Kuvassa on esitelty TTK-91 esimerkkikoneen keskusyksikkö. Oikeiden tietokoneiden keskusyksiköt ovat luonnollisesti monimutkaisempia, mutta tämä riittää oikein mainiosti asian havainnollistamiseen. Keskusyksikköön kuuluvat suoritin eli prosessori (central processing unit, CPU), keskusmuisti (memory, MEM) sekä laiteohjaimet (controller). Näitä osia liittävät toisiinsa väylät (bus). 1.1. Suoritin (CPU) Tärkein keskusyksikön osista on ehdottomasti suoritin, joten käsittelemme sitä ensimmäiseksi. Suoritin noutaa konekäskyt muistista, tulkitsee ja lopuksi suorittaa ne, eli käsittelee dataa käskyjen määräämällä tavalla. Suoritin myös ohjaa kaikkea muuta toimintaa generoimiensa signaalien avulla. Suorittimen tärkeimmät osat ovat ohjausyksikkä (control unit, CU), aritmeettis-looginen yksikkö (arithmetic-logical unit, ALU), ohjelmoijan käyttöön tarkoitetut rekisterit (registers) sekä muistinhallintayksikkö (memory management unit, MMU). Oikeissa tietokoneissa prosessoriin usein myös kuuluu liukulukuyksikkö liukulukuaritmetiikkaa varten, mutta TTK-91 käsittelee vain kokonaislukuja. Ohjausyksikkö koostuu neljästä rekisteristä: TR eli tilapäinen työrekisteri (temporary register), IR eli käskyrekisteri (instruction register), PC eli käskyosoitin (program counter) ja SR eli tilarekisteri (state register).

Käskyosoittimessa sijaitsee seuraavan konekäskyn osoite (joka on joko tämän käskyn osoite+1 tai hyppykäskyn osoite). Sillä hetkellä käsiteltänä oleva käsky sijaitsee käskyrekisterissä. Tilapäisessä työrekisterissä sijaitsevat väliaikaiset tiedot, kuten käskyn tehollinen muistiosoite. Tilarekisterissä on paljon lippubittejä, jotka kuvaavat virhetilanteita (esim. nollalla jakoa), tiloja (esim. etuoikeitettu tai keskeytykset estetty) ja vertailujen tuloksia (suurempi, pienempi, yhtäsuuri). Näiden lippujen nimet eivät ole tärkeitä (kunhan muistatte pari esimerkkiä siitä minkälaisia tarkoituksia niillä on), mutta ne ovat useimmiten intuitiivisia. Esim. suurempi kuin on G (Greater), nollalla jako on Z (divide by Zero) ja etuoikeitettu tila on P (Priviledged state). Aritmeettis-loogisessa yksikössä eli ALU:ssa suoritetaan kaikki aritmeettisia tai loogisia rakenteita käyttävät käskyt. Eli suomeksi kaikenlainen laskenta, vertailu ja bittijonooperaatiot. ALU:ssa on kaksi sisäänmenoa operandeille ja yksi ulostulo tulokselle. Operaation tulos viedään ulostulosta edelleen johonkin rekisteriin. Muistinhallintayksikkö eli MMU huolehtii kaikista viitteistä muistiin, sekä käskyistä laiteohjaimille. Se koostuu neljästä rekisteristä, base, limit, MAR ja MBR. Toteuttaakseen tehtävänsä sillä on liittymä suorittimen ulkopuoliseen väylään ja sitä kautta muistiin ja oheislaitteisiin. Base osoittaa prosessorin käyttöön annetun muistialueen alkuun. Kullakin prosessilla on oma muistialueensa, eikä se saa viitata sen ulkopuolelle. MMU muuntaa sille annetut suhteelliset osoitteet absoluuttisiksi osoitteiksi laskemalla Base + suhteellinen osoite. Limit puolestaan on prosessin oman muistialueen yläraja. MMU tarkistaa ennen muistinoutoa, että annettu suhteellinen osoite ei ole suurempi kuin limit. MAR eli muistiosoiterekisteri (memory address register) on se paikka, johon laitetaan haettavan tiedon osoite, tai osoite johon tieto tallennetaan. MAR:ista osoite siirtyy osoite-väylälle. MBR eli muistin puskurirekisteri (memory buffer register) puolestaan on se paikka, johon talletettava tieto sijoitetaan, tai johon luettu tieto tulee muistista. MBR käyttää dataväylää tiedon siirtämiseen. TTK-91:ssä ohjelmoijan käyttöön tarkoitettuja rekistereitä on kahdeksan. Kuusi indeksirekisteriä (R0-R5) sekä pino-osoitin (SP, stack pointer) ja ympäristöosoitin (FP, frame pointer). Indeksirekisterit ovat käytännöllisesti katsoen nopeita datapaikkoja suorittimen sisällä. Niillä ei ole mitään erityistä tarkoitusta, joten ohjelmoija voi käyttää niitä miten haluaa. Pino-osoitin osoittaa pinon päällimmäistä alkiota. Teoriassa sitä voisi käsitellä ihan kuten indeksirekisteriäkin (lisätä, vähentää, kertoa, jne.), mutta koska sitä käytetään viitteenä pinon päällimmäiseen alkioon, ohjelman toiminta menee helposti sekaisin. PUSH käsky automaattisesti kasvattaa pino-osoittimen arvoa ja

POP käsky puolestaan vähentää sitä. CALL ja SVC käskyt ja näistä palaavat EXIT ja IRET myös muuttavat pino-osoittimen arvoa. Ympäristöosoitinta käytetään lähinnä aliohjelmien kutsussa. Se osoittaa aktivointitietueen päälle, jolloin parametrit ja paluuarvon paikat voidaan löytää suhteessa siihen. Oikeissa tietokoneissa on yleensä myös välimuisti. Välimuisti on suorittimella oleva muisti, joten se on huomattavasti nopeampi kuin muisti (keskumuisti), koska sen ei tarvitse käyttää suorittimen ulkopuolista väylää. Suorittimen sisäinen väylä on paljon nopeampi kuin suorittimen ulkoinen väylä. Välimuistissa pidetään viimeisimpien keskusmuistista noudettujen muistipaikkojen sisältöjä, ja usein myös niiden lähellä olleiden muistipaikkojen sisältöjä. Jos viitattavan muistipaikan sisältö on tässä välimuistissa, säästyy suoritin hitaammalta muistinoudolta. 1.2. Muisti Muisti, eli keskusmuisti, on ohjelman suoritusaikana sekä käskyjen että datan talletuspaikka. Siellä sijaitsee myös käyttöjärjestelmä, sekä järjestelmään liittyvät kirjastorutiinit. Muistiin tieto on talletettu tavuina ja jokaisella tavulla (tai sanalla) on oma osoitteensa. Muistissa olevaan tietoon viitataan aina tällä muistiosoitteella. 1.3. Väylä Väylä on siirtotie, johon voidaan liittää prosessori-, muisti- ja oheislaiteohjainkortteja. Kullakin väylään liitetyllä laitteella on oma osoitteensa, jonka se tunnistaa väylältä. Väylän johtimet voidaan jakaa data-, osoite- ja ohjausväylään (data bus, address bus, control bus). Ohjausväylän avulla väylä varataan, ja sille annetaan lue ja kirjoita signaaleja. Osoiteväylälle tulee luonnollisesti osoite johon kirjoitetaan tai josta luetaan. Luettava tai kirjoitettava tieto kulkee dataväylää pitkin. Kaikki väylään kytketyt ohjaimet kuuntelevat väylällä liikkuvia osoitteita. Kun esimerkiksi muistikortti havaitsee itseensä liittyvän osoitteen ja kirjoitusohjauksen, se siirtää tiedon väylältä omiin muistipiireihinsä. 1.4. Ohjaimet Oheislaitteet kytketään prosessorin ja keskusmuistin yhteyteen ohjaimien välityksellä. Oheislaitteita tarvitaan tiedon syöttöä, tulostusta, pysyvää talletusta ja tiedonsiirtoa varten. Kutakin laitetyyppiä kohden on oma ohjaimensa ja yksi ohjain voi ohjata yhtä tai useampaa laitetta. Esimerkkejä ohjaimista ovat näytönohjain, levyohjain ja tietoliikenneohjain. Ohjaimia käytetään käyttöjärjestelmän palvelupyynnöillä.

2. Konekäskyjen suoritus Prosessori suorittaa tietojen käsittelyn sille annettujen ohjelmien mukaisesti. Nämä ohjelmat ovat kaikessa yksinkertaisuudessaan vain sarja yksittäisiä konekäskyjä. Koneen tunnistamat operaatiot on määritelty tietokoneen käskykannassa. Esimerkkejä ttk-91 koneen käskykannasta löytyy ttk-91 komentoesimerkkejä dokumentista. Käskyjä laitteiston ohjaussignaaleiksi dekoodattaessa on osattava erottaa operaatiokoodi, operandit sekä niiden tyyppi ja sijainti. Yhden käskyn suoritus muodostuu useista vaiheista. Yhden käskyn aikana prosessori suorittaa seuraavia toimintoja: 1. Ohjausyksikkö CU siirtää käskyn osoitteen muistinhallintayksikön MMU muistiosoiterekisteriin ja valmistautuu uuden käskyn noutamiseen kasvattamalla käskyosoittimen (PC) arvoa. 2. MMU tarkistaa osoitteen oikeellisuuden ja tekee osoitemuunnoksen, sekä käynnistää muistinoudon. 3. MMU ottaa käskyn väylältä vastaan ja välittää sen edelleen ohjausyksikölle, joka tulkitsee sen. 4. Ohjausyksikkö selvittää käskyn operaatio-osan perusteella käskyssä tarvittavien operandien osoitteet ja noutaa datan muistista tai rekistereistä ALU:un. 5. Ohjausyksikkö suorituttaa käskykoodin määräämät operaatiot tavallisimmin ALU:ssa ja tallettaa tulokset esimerkiksi rekistereihin. 6. Ohjausyksikkö tarkistaa tilarekisteristä SR oliko käskyn suorituksessa poikkeuksia tai aiheuttivatko prosessorin ulkopuoliset ohjaimet keskeytyksiä. Jos käskyn suoritusaikana tapahtui poikkeus tai keskeytys, siirtyy prosessori suorittamaan käyttöjärjestelmän koodia. Huomioi, että yhden konekäskyn suoritusta ei voi keskeyttää kesken käskyn! Keskeytykset katsotaan vasta kun konekäsky on suoritettu. Käsitellään seuraavaksi käskyn noutoa ja suoritusta vähän tarkemmin rekisteritasolla.

2.1. Käskyn nouto Yllä olevassa kuvassa on esitetty käskynouto. Käskyn noutovaihe on kaikille käskyille samanlainen. 1) Ohjausyksikön lähettämät signaalit siirtävät käskyosoittimen PC arvon muistiosoiterekisteriin MAR. 2) MMU tekee osoitemuunnoksen (MAR:ista MAR:iin, absoluuttinen osoite = suhteellinen osoite + BASE). 3) Varataan väylä laittamalla käsky Lue ohjausväylälle. 4) Siirretään muistiosoiterekisterissä oleva osoite osoiteväylälle. 5) Kasvatetaan PC:n arvoa yhdellä. Tämä voisi tapahtua missä tahansa vaiheessa sen jälkeen kuin vanha PC on siirretty MAR:iin mutta ennen kuin käskyä ruvetaan suorittamaan. 6) Hetken kuluttua osoitetun muistipaikan sisältö siirtyy dataväylää pitkin muistin puskurirekisteriin MBR. 7) MBR:stä käsky siirretään edelleen käskyrekisteriin IR. Ja käskyn käsittely voi alkaa.

2.2. Käskyn suoritus Yllä olevassa kuvassa on esitetty esimerkkikäskyn ADD R1, 100 suoritus. Käskyn suorituksen kulku riippuu siitä millaisesta käskystä on kyse, mutta se on suunnilleen samantapainen kaikille käskyille. Käskynoudon jälkeen käsky on rekisterissä IR. Käskykoodin perusteella ohjausyksikkö löytää mikrokoodista käskyn suorittamisessa tarvittavat ohjaustiedot (jokaista bittiähän vastasi yksi piuha, ja ne on laitettu kimppuihin siten, että operaatiokoodi ja operandit tulevat erikseen). Tässä tapauksessa käsky on yhteenlaskukäsky, ja sen operandit ovat rekisterissä R1 ja muistiosoitteessa 100. Tulos on talletettava rekisteriin R1. 1) Koska jälkimmäinen operandi on muistissa, on tehtävä muistinouto. Ohjausyksikön lähettämien signaalien ansiosta osoite 100 siirtyy käskyrekisteristä muistiosoiterekisteriin MAR. 2) MMU tarkistaa osoitteen oikeellisuuden ja tekee osoitemuunnoksen osoite = suhteellinen osoite + BASE. 3) Ohjauskäsky Lue käynnistää muistinoudon... 4)... ja absoluuttinen (eli fyysinen) osoite siirretään osoiteväylälle. 5) Hetken kuluttua osoitetun muistipaikan sisältö on muistipuskurirekisterissä MBR. 6) Nyt kun molemmat operandit ovat prosessorin sisällä, käsky voidaan suorittaa. Rekisterin R1 arvo siirretään ALU:n sisäänmenoon IN1. 7) Muistipaikan 100 sisältö siirretään MBR:stä ALU:n toiseen sisäänmenoon IN2. 8) Ohjausyksikkö antaa käskyn yhteenlaske. 9) Jos käskyn laskutoimituksessa sattui yli- tai alivuoto, merkitään tieto siitä tilarekisteriin SR. 10) Lopuksi yhteenlaskun tulos tulee ulos ALU:n ulostulosta ja siirtyy rekisteriin R1.