26
1 TIES530 - Sulautettujen järjestelmien arkkitehtuurit Jukka Ihalainen, [email protected] Tietoliikennelaboratorio, http://rf.chydenius.fi Luento 2: Tietokonearkkitehtuurit Yleinen arkkitehtuuri

Luento 2: Tietokonearkkitehtuuritusers.jyu.fi/~jupeihal/Yleinen arkkitehtuuri.pdfJTAG- ja ISP-liittimet – näyttönä käytetään 4x16 merkin LCD-näyttöä – yhteys PC:hen on

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    TIES530 - Sulautettujen järjestelmien arkkitehtuurit

    Jukka Ihalainen, [email protected]

    Tietoliikennelaboratorio, http://rf.chydenius.fi

    Luento 2: Tietokonearkkitehtuurit

    Yleinen arkkitehtuuri

  • 2

    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

    Hardware

    Firmware

    Operating System

    Applications

    Hardware

    Firmware

    Operating System

    Application(s)

    Hardware

    FirmwareAppli-cation

    PöytäkoneIso

    sulautettu järjestelmä

    Pieni sulautettu järjestelmä

    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)

  • 3

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

  • 4

    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

    • Yleisiä mikroprosessoreita– Intel Pentium– Motorola/IBM

    PowerPC– MIPS (SGI Unix,

    Sony, Nintendo)– ARM– Ultra SPARC

  • 5

    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 tai AVR –kontrollereista 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 arkkitehtuurintapauksessa käytettiin kahta muistia joillaomat väylänsä: yksi dataa ja toinen koodiavarten.

  • 6

    ALU• 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, ArithmeticLogic Unit) suoritetaan datan muokkaus– lisäys, vähennys, kertominen,

    jakaminen, NOT, AND, NAND, OR, NOR, XOR, bittisiirrot ja –kierrot

  • 7

    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)

  • 8

    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 (intelin8086) 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

  • 9

    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

  • 10

    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

  • 11

    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

    78 56 34 12

    34 12

    12

    0100h 0101h 0102h 0103hAddress

    Long word

    Word

    Byte

    Big endian

    12 34 56 78

    12 34

    12

    0100h 0101h 0102h 0103hAddress

    Long word

    Word

    Byte

    Little endian

    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

  • 12

    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

  • 13

    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

  • 14

    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

  • 15

    Muistit

    • ohjelmamuistia (yleensä lukumuistia, ROM)

    • käyttömuistia (luku/kirjoitusmuistia, RAM)

    • nimityksiä– RAM, ROM, EPROM,

    EEROM, Flash

    0 1 0 1 0 1 0 1

    1 0 0 0 1 1 1 0

    0 0 0 0 0 0 0 1

    0 0 1 0 0 0 1 0

    0 1 1 0 0 0 0 0

    0 0 1 0 0 1 0 0

    1 1 0 1 0 1 0 0

    0000h

    0001h

    0002h

    0003h

    FFFFh

    FFFEh

    MSB LSB

    Osoite Tieto

    65536 rivä

    Bitti

    Tavu

    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)

  • 16

    Muistit…

    • Aikakaaviot1. osoite muistipiirille2. piiri valitaan3. piirin lähtö sallitaan4. muistipaikan tieto asettuu

    lähtöihin5. lähdön sallinta ylätilaan6. lähdöt suurimpedanssiseen

    tilaan7. piirinvalinta ylätilaan8. seuraava jakso alkaa

    1 2 876543

    Tieto

    OE

    CS

    Osoite

    Muistipiirin lukujakso

    Tieto

    WE

    CS

    Osoite

    Muistipiirin kirjoitusjakso

    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

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    IO7

    IO6

    IO5

    IO4

    IO3

    IO2

    IO1

    IO0

    Tiedonsuunta-rekisteri

    Tieto-rekisteri

  • 17

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

  • 18

    • 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)

    Sulautettujen arkkitehtuuri…

  • 19

    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ä

  • 20

    Kynnysjännittet

    • esim AtMega128

  • 21

    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, tallettaaniitä 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

  • 22

    ATMega 32

    RS-232

    (RX) PD0(TX) PD1

    Näppäin-ohjaus,

    suodatus

    PD3PD4

    PD5

    (ICP1) PD6

    K3

    K2

    K1

    RESET(SCK) PB7(MISO) PB6(MOSI) PB5(SS) PB4)

    7.2837 MHz kide

    XTAL2

    XTAL1

    (TCK) PC2(TMS) PC3(TDO) PC4(TDI) PC5

    PA7PA6PA5PA4

    PA2PA1PA0

    RESET

    IR-RX

    (INT0) PD2

    PD7

    ISPohjelmointiliitin

    LCD-näyttö

    JTAG-liitin

    IR-TX

    Skeman lukeminen…

    • mikrokontrolleri

    PB01

    PB12

    PB23

    PB34

    PB45

    PB56

    PB67

    PB78

    /RESET9

    VCC10

    GND11

    XTAL212

    XTAL113

    PD014

    PD115

    PD216

    PD317

    PD418

    PD519

    PD620 PD7 21PC0

    22PC123PC224PC325PC426PC527PC628PC729AVCC30AGND31AREF32PA733PA634PA535PA436PA337PA238PA139PA040

    ATmega32

    U1

    PC[2:5]

    PC3PC4PC5

    PB[5:8]

    PB5PB6PB7PB8

    Y17.3728MHz

    VCCVCC

    PD[0:1]

    PD0

    PD7

    PD1

    PD[2:5]

    C2 22p

    C3 22pPD2PD3PD4PD5PD6

    PD6

    PA[0:2]

    SW1

    RESET

    PA[4:7]

    LCD control

    LCD data

    JTAG

    Keyboard

    Serial

    ISP

    IR-rx

    IR-tx

    R1100k

    VCC

    PA0

    PB8

    PA1PA2

    PA4PA5PA6PA7

    PC2

  • 23

    Skeman lukeminen…

    • sarjaliityntä

    C1+1

    V+2

    C1-3

    C2+4

    C2-5

    V-6

    T2OUT7

    R2IN8

    VCC 16

    GND 15

    T1OUT 14

    R1IN 13

    R1OUT 12

    T1IN 11

    T2IN 10

    R2OUT9

    U3

    MAX232CPE

    +C61u

    +C71u

    +C8

    1u

    +

    C9

    1u

    VCC

    PD[0:1]

    PD0PD1

    DCD1

    Rx2

    Tx3

    DTR4

    GND5DSR 6RTS 7CTS 8

    RI 9U7

    D9_FEMAL

    RS-232 liitin

    ISP ohjelmointi-liitin

    JTAG -liitin

    UP-, DOWN- jaSELECT-painikkeet

    Mikrokontrolleri

    Reset-painike

    IR-led

    IR-vastaanotin

    LCD-näyttö

    Kontrastin säätö

  • 24

    Tietokonelogiikka

    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ä saadaanbitteinä pituusluvun n

    1)tai(0arvoibitinb2 i1

    0

    =

    ==∑−

    =

    n

    ii

    i b

    lukuestelmän kymmenjärjn)2ln()ln()(log2 ===

    nnbits

  • 25

    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

  • 26

    Porttipiirit