510 likes | 829 Views
TIES530 - Sulautettujen järjestelmien arkkitehtuurit. Luento 2: Tietokonearkkitehtuurit. Jukka Ihalainen, jukka.ihalainen@chydenius.fi Tietoliikennelaboratorio, http://rf.chydenius.fi. Yleinen arkkitehtuuri. Konsepti. Laitteita ja ohjelmistoja
E N D
TIES530 - Sulautettujen järjestelmien arkkitehtuurit Luento 2: Tietokonearkkitehtuurit Jukka Ihalainen, jukka.ihalainen@chydenius.fi Tietoliikennelaboratorio, http://rf.chydenius.fi
Konsepti • Laitteita ja ohjelmistoja • lähimpänä rautaa ns. firmware –ohjelmisto, joka alustaa laitteiston käynnistyksen yhteydessä • tämä on monesti pienen sulautetun järjestelmän itse ohjelmisto • bootloader on pieni alkulatausohjelma, joka lataa varsinaisen KJ:n
Konsepti… • kerrosmainen ajattelu • firmwaren päällä käyttöjärjestelmä, joka sulautetuissa järjestelmissä on usein reaaliaikainen käyttöjärjestelmä (tehtävien vasteajat oltava pienet tai ainakin niille voitava määritellä vasteaikarajat) • KJ tai FW ohjaa laitteen käyttöä (syöttö, tulostus, muisti…) • monet sulautetut järjestelmät eivät tarvitse käyttöjärjestelmää, vaan systeemit yksinkertaisesti suorittavat niille ohjelmoitua tehtävää • kaukosäädin ei tarvitse käyttöjärjestelmää • reititin on sulautettu järjestelmä, jossa usein käyttöjärjestelmä mukana (esim. Cisco IOS)
Konsepti… • Prosessori(t) systeemin ytimenä • jokaisella prosessorityypillä oma käskykanta • periaate sama: haetaan muistista tieto, tulkitaan se, suoritetaan • tieto binäärisenä: 1011 0000 0100 1111 1111 0111 • tieto heksana: B0 4F F7 • Assemlykielisenä voisi olla: ADD.B #0xFF, W7 ; Add the byte -1 to register W7
Konsepti… • Muut laitteet • prosessorista/kontrollerista/sovelluksesta riippuen erilaisia ympäryslaitteita tarvitaan • teholähteitä • muistia • näyttöjä ja näppäimiä • antureita ja toimilaitteita • ym….
Systeemiarkkitehtuuri • Mikrotietokone koostuu • mikroprosessori, muistit ja liityntäpiirit • osia yhdistää kolme väylää • tietoväylä (Data Bus), osoiteväylä (Address Bus) sekä ohjausväylä (Control Bus) • lisäksi ulkoisia ohjauksia kuten kello, resetointi ja keskeytykset
Mikroprosessorit • http://linuxdevices.com/articles/AT4313418436.html • Yleisiä mikroprosessoreita • Intel 386 • http://download.intel.com/design/intarch/datashts/27242007.pdf • Motorola/IBM PowerPC • MIPS (SGI Unix, Sony, Nintendo) • ARM • http://www.arm.com/products/CPUs/ARM7TDMI.html • Ultra SPARC
Mikrokontrollerit • mikrokontrolleri on prosessorin, muistin ja joidenkin i/o laitteiden integroitu piiri, joka on tarkoitettu käytettäväksi sulautetuissa järjestelmissä • valmistajia huomattavasti enemmän kuin mikroprosessoreilla • koot vaihtelevat pienistä PIC (http://ww1.microchip.com/downloads/en/DeviceDoc/41239C.pdf)tai AVR –kontrollereista (http://www.atmel.com/dyn/resources/prod_documents/doc1006.pdf ) tehokkaisiin 32-bittisiin ARM, PowerPC ym. prosessoreihin • Lisäksi SOC prosessorit (System-On-Chip) • kuvassa TI/Chipcon CC2430
Von Neumann arkkitehtuuri: 1 muisti (RAM) jossa sekä data että ohjelmakoodi • Alkuperäisen Harvard arkkitehtuurin tapauksessa käytettiin kahta muistia joilla omat väylänsä: yksi dataa ja toinen koodia varten.
periaatteessa 6 perusfunktiota, joita prosessori voi suorittaa kirjoittaa dataa muistiin tai i/o-laitteelle lukea dataa muistista tai i/o-laitteelta lukea käskyn muistista muokata dataa prosessorien rekistereissä aritmeettis-loogisessa yksikössä (ALU, Arithmetic Logic Unit) suoritetaan datan muokkaus lisäys, vähennys, kertominen, jakaminen, NOT, AND, NAND, OR, NOR, XOR, bittisiirrot ja –kierrot ALU
Rekisterit • prosessorin sisäisiä muistipaikkoja • välitetään tietoa paikasta toiseen prosessorin sisällä • nimet, määrä ja leveys prosessorikohtaisia • esim. CC2430 sisältää • erikoisrekistereitä 120 kpl • CPU:n rekistereitä:Akku (A), R-rekisterit (R0…R7), B-rekisteri, ohjelmalaskuri (PC), dataosoitin (DPTR), pino-osoitin (SP), prosessorin tilasana (PSW)
Pinot • prosessorit toteuttavat yhden tai useamman pinon, joka on väliaikainen muistipaikka käyttömuistissa (RAM) • prosessori voi viedä pinoon (PUSH) tietoa rekisteristä ja se voi palauttaa pinosta (POP or PULL) tietoa • pino voi täyttyä joko ylhäältä alaspäin (intelin 8086) tai alhaalta ylöspäin (cc2430)
Väylät • Osoiteväylä • väylän leveys määrää sen kuinka paljon muistia voidaan liittää • esim 16 bittinen 216 = 65536 osoitettavaa muistipaikkaa • osoiteväylän liitäntöjä merkitään yleensä A-kirjaimella (A0, A1, A2, …, An) • osoiteväylän ylimmät bitit kytkeytyvät tavallisesti osoitekooderille
Väylät… • Osoitekooderi • jos mikrotietokoneen muisti koostuu useammasta piiristä tai jos siinä on useampia liitäntäpiirejä niin tarvitaan osoitekooderi, joka selvittää mille piirille väylällä oleva osoite kuuluu
Väylät… • Tietoväylä • kaksisuuntainen, leveys 4, 8, 16, 32 tai 64 bittiä • tietoväylän liitäntöjä merkitään yleensä D-kirjaimella (D0, D1, D2, …, Dn) • tietoväylälle kytkeytyvien komponenttien lähtöliitännät ovat ns. kolmitilalähtöjä (Tri-State Output) • lähtö voi olla kolmessa tilassa: ala-, ylä- tai suurimpedanssisessa tilassa • suurimpedanssinen tila vastaa tilannetta, jossa väylä kytketään irti lähtöliitännästä • prosessori huolehtii, että vain yksi komponentti kerrallaan voi liittyä tietoväylään
Väylät… • Yhdistetty tieto- ja osoiteväylä • osoite ja data vuorottelevat samoissa prosessorin liitännöissä • tyypillinen monissa Intelin prosessoreissa ja kontrollereissa • väylän liitäntöjä merkitään usein AD kirjainparilla (AD0, AD1, AD2 … ADn) • tarvitaan ulkoinen väyläerotin • prosessori syöttää yhdistetylle väylälle ensin osoitteen, joka lukitaan lukkopiirin lähtöihin • lukituksen jälkeen lukkopiiri irrotetaan ja väylä toimii normaalina tietoväylänä
Väylät… • Ohjausväylä • tuloja ja lähtöjä • näillä prosessori ohjaa laitteita (luku/kirjoitus) • näistä prosessori myös saa tietoa laitteilta
Big-endian ja Little-endian • prosessori voi tallettaa tietoa kahdella eri tavalla (koskee 16 bittisiä tai suurempia sanoja) • big-endian tapauksessa prosessori tallettaa sanan eniten merkitsevän tavun vähiten merkitsevään osoitteeseen • little-endian tapauksessa sanan eniten merkitsevä tavu eniten merkitsevään osoitteeseen
Keskeytykset • interrupt, trap, exception • sulautettujen ohjelma suoritaa päättymätöntä silmukkaa • ohjattavassa prosesissa tulee usein eteen tilanne, johon pitää reagoida mahdollisimman nopeasti (näppäimen painallus, sarjaporttiin tulee merkki, ajastimen tai laskurin ylivuoto jne.) • ei ole mielekästä laittaa prosessoria pollaamaan tapahtumia; käytetään keskeytyksiä • kun tapahtuu keskeytys (ja keskeytykset ovat sallittuja) niin prosessori suorittaa ensin meneillään olevan käskyn loppuun, tallentaa nykyisen tilansa (rekisterit, ohjelmalaskuri) pinoon (PUSH) ja lataa keskeytysvektorin alkuosoitteen ohjelmalaskuriin • kun keskeytysohjelma päättyy niin prosessorin talletettu tila palautetaan ja ohjelma jatkuu normaalisti
Keskeytykset… • laitteistokeskeytykset • prosessorilla voi olla yksi tai useampi ulkoinen keskeytyslinja • jos yksi linja ja useita laitteita niin keskeytysrutiinissa pollattava mikä laite aiheutti keskeytyksen • jos linjoja useampia niin ohjelma voi suoraan hypätä oikeaan keskeytysrutiiniin (ISR) • nopea laitteistokeskeytys (fast hardware interrupt) • keskeytyksen sattuessa vain ohjelmalaskurin arvo talletetaan, ISR tallettaa muut tarvittaessa
Keskeytykset… • ohjelmistokeskeytys • ulkoisten keskeytyslinjojen lisäksi keskeytys voi tulla esim ajastimesta
Vahtikoira-ajastin • on ajastin, joka asettaa signaalin, jos laskuri saavuttaa jonkin tietyn raja-arvon (tai nollan) ellei laskuria käynnistetä uudelleen. Jos kaikki toimii niin laskuri ei saavuta raja-arvoa koskaan vaan ohjelma ehtii alustamaan ajastimen ennen raja-arvon saavuttamista. Jos raja-arvo saavutetaan niin ohjelmassa on jotain vialla (kaatunut) ja ajastimen asettama signaali resetoi järjestelmän.
CISC ja RISC • kaksi prosessorien perusarkkitehtuuria • CISC (Complex Instruction Set Computer) • Intel x86, Motorola 68xxx • vähän rekistereitä ja paljon käskyjä (käskyjen dekooderi monimutkainen ja hidas), iso pinta-ala ja kuuma • RISC (Reduced Instruction Set Computer) • PowerPC, ARM, Atmel AVR, Microchip PIC • paljon rekistereitä (jopa 1000), vähän käskyjä • esim. kertolasku kokonaisluvuilla voi viedä 80486 CISC prosessorilta 42 kellojaksoa ja RISC prosessorilta vain yhden kellojakson
CISC ja RISC… clear 0x1000 ; clear memory location 0x1000 load r1, #5 ; load register 1 with the value 5 xor r1, r1 ; clear register 1 store r1, 0x1000 ; clear memory location 0x1000 add r1, #5 ; load register 1 with the value 5
DSP • erikoisprosessoreita tarkoitettu reaaliaikaisen signaalin muokkaamiseen • GSM, modeemit, äänikortit, mittalaitteet • yleensä Harvard-arkkitehtuuri, lisäksi data-alue voitu jakaa vielä kahteen tai useampaan osaan • mahdollistaa yhtäaikaisen datan haun nopeuttaa
Muistit • ohjelmamuistia (yleensä lukumuistia, ROM) • käyttömuistia (luku/kirjoitusmuistia, RAM) • nimityksiä • RAM, ROM, EPROM, EEROM, Flash
Muistit… • luku- ja kirjoitusmuistin yksinkertaistettu symboli • 8-bittinen datalinja • 15-bittinen osoitelinja kapasiteetti 32 KB • piirinvalintasignaali (CS, Chip Select) (aktiivinen alatilassa) • kirjoituksen sallinta (WE, Write Enable) • lähdön sallinta (OE, Output Enable)
Muistit… • Aikakaaviot • osoite muistipiirille • piiri valitaan • piirin lähtö sallitaan • muistipaikan tieto asettuu lähtöihin • lähdön sallinta ylätilaan • lähdöt suurimpedanssiseen tilaan • piirinvalinta ylätilaan • seuraava jakso alkaa
I/O • Liitäntäpiirien avulla mikrotietokone yhteydessä ympäröivään elektroniikkaan (näppäimet, näytöt, releet, muuntimet,…) • näkyvät prosessorille yhtenä tai muutamana muistiosoitteena (rekisterinä) • tiedonsuuntarekisteri, jonka biteillä valitaan onko liitäntä tulo (0) tai lähtö (1) • liitäntöjen tilat voidaan lukea tietorekisteristä samoin kun lähtöjen tieto kirjoitetaan tietorekisteriin
I/O… • Liitäntäpiirissä voi olla useita I/O –portteja (A, B, ..) • kuvan piirissä kaksi porttia, jolloin tarvitaan 4 rekisteriä • rekisterit voidaan osoittaa kahdella rekisterinvalintalinjalla
Sulautettujen arkkitehtuuri • Pöytäkoneessa tehokas CPU, paljon keskusmuistia, käyttöjärjestelmä, sovelluksia, paljon massamuisteja, erilaisia I/O –laitteita ja verkko- ym. liitynnät • suuret sulautetut järjestelmät vastaavanlaisia • reitittimet, puhelinkeskukset, automaatiojärjestelmät, lentokoneet, laivat,…
Sulautettujen arkkitehtuuri… • pienemmät sulautetut järjestelmät käyttävät mikrokontrollereita, jotka sisältävät yhdellä piirillä samoja toimintoja mitä koko tietokonejärjestelmätkin • mikrokontrollerissa on minimissään CPU, pieni määrä muistia (RAM ja/tai ROM)
Digitaalinen signaali • bitit esitetään jännitetasoina • loogista nollaa vastaa maapotentiaali eli 0V • loogista ykköstä vastaa yleensä käyttöjännite, joka voi olla esim. 1.8V, 2.7V, 3.3V, 5V, 12V • loogiset tasot ovat jotain maapotentiaalin ja käyttöjännitteen välillä
Kynnysjännittet • esim AtMega128
Skeman lukeminen • esimerkkinä IR-valolla toimiva kauko-ohjain • järjestelmän yleiskuvaus • Laitteistolla voidaan vastaanottaa IR-signaaleja toisesta kauko-ohjaimesta, dekoodata ne binäärisiksi ohjauskoodeiksi, tallettaa niitä laitteiston EEPROM muistiin ja lähettää vastaanotettu koodi PC:lle sarjayhteyttä pitkin. Laite voi toimia myös ns. välittävänä laitteena, jolloin se PC:ltä saamansa ohjauskoodin ensin koodaa IR-signaaliksi ja sitten lähettää vastaanotinlaitteelle. Laite voi toimia myös itsenäisenä kauko-ohjaimena, jolloin sillä voidaan valita jokin EEPROM-muistiin tallennettu koodi ja lähettää se vastaanottimelle.
Skeman lukeminen… • laitteistoarkkitehtuuri • mikrokontrollerina käytetään Atmelin ATMega32, joka käyttää 7.2837 MHz:n ulkoista kidettä • ohjelmointiin ja debuggaukseen laitteistosta löytyy JTAG- ja ISP-liittimet • näyttönä käytetään 4x16 merkin LCD-näyttöä • yhteys PC:hen on toteutettu standardin RS-232 –liitynnän kautta • laitetta voidaan ohjata kolmella näppäimellä. Näppäimet toimivat keskeytysperiaatteella. • IR-led ja IR-vastaanotin on kytketty kuvan osoittamiin I/O-liityntöihin
Skeman lukeminen… • mikrokontrolleri
Skeman lukeminen… • sarjaliityntä
Mikrokontrolleri JTAG -liitin IR-led Reset-painike IR-vastaanotin LCD-näyttö UP-, DOWN- ja SELECT-painikkeet ISP ohjelmointi-liitin Kontrastin säätö RS-232 liitin
Lukujärjestelmistä • tietokonepuolella yleisimpiä binääri- ja heksajärjestelmät • bittejä (bits, b), tavuja (bytes, B), sanoja (words) • binääriluvun desimaaliarvo voidaan laskea • vaadittavien bittien määrä saadaan
Lukujärjestelmistä… • muunnokset lukujärjestelmien välillä • esim. IPv4-osoite on 32-bittinen, jolloin oktetteina esitetty osoite 192.168.137.77 on binäärisenä 11000000 10101000 10001001 01001101 • heksalukuna se olisi C0 A8 89 4D • ja desimaalisena 3 232 270 669 • kannattaa muistaa: 10 bitillä voi esittää 1024 vaihtoehtoa, 11 bitillä kaksinkertaisen määrän, 12 bitillä taas kaksinkertaisen määrän eli 4096 ….
Porttipiirit • aiemmin oli hyvin yleistä, että ohjauslogiikka tehtiin erillislogiikalla piirilevylle • nykyään logiikan tehtäviä hoitaa useimmiten yksi tai useampi mikrokontrolleri