1 / 51

TIES530 - Sulautettujen järjestelmien arkkitehtuurit

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

isanne
Download Presentation

TIES530 - Sulautettujen järjestelmien arkkitehtuurit

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TIES530 - Sulautettujen järjestelmien arkkitehtuurit Luento 2: Tietokonearkkitehtuurit Jukka Ihalainen, jukka.ihalainen@chydenius.fi Tietoliikennelaboratorio, http://rf.chydenius.fi

  2. Yleinen arkkitehtuuri

  3. 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

  4. 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)

  5. 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

  6. 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….

  7. 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

  8. 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

  9. 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

  10. 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.

  11. 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

  12. 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)

  13. 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)

  14. 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

  15. 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

  16. 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

  17. 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ä

  18. 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

  19. 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

  20. 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

  21. 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

  22. Keskeytykset… • ohjelmistokeskeytys • ulkoisten keskeytyslinjojen lisäksi keskeytys voi tulla esim ajastimesta

  23. 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.

  24. 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

  25. 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

  26. 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

  27. Muistit • ohjelmamuistia (yleensä lukumuistia, ROM) • käyttömuistia (luku/kirjoitusmuistia, RAM) • nimityksiä • RAM, ROM, EPROM, EEROM, Flash

  28. 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)

  29. 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

  30. 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

  31. 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

  32. 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,…

  33. 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)

  34. 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ä

  35. Kynnysjännittet • esim AtMega128

  36. 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.

  37. 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

  38. Skeman lukeminen… • mikrokontrolleri

  39. Skeman lukeminen… • sarjaliityntä

  40. 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

  41. Tietokonelogiikka

  42. 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

  43. 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 ….

  44. Porttipiirit • aiemmin oli hyvin yleistä, että ohjauslogiikka tehtiin erillislogiikalla piirilevylle • nykyään logiikan tehtäviä hoitaa useimmiten yksi tai useampi mikrokontrolleri

More Related