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