Title: TIES530 - Sulautettujen j
1TIES530 - Sulautettujen järjestelmien
arkkitehtuurit
Luento 2 Tietokonearkkitehtuurit
- Jukka Ihalainen, jukka.ihalainen_at_chydenius.fi
- Tietoliikennelaboratorio, http//rf.chydenius.fi
2Yleinen arkkitehtuuri
3Konsepti
- 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 KJn
4Konsepti
- 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)
5Konsepti
- 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 -
6Konsepti
- Muut laitteet
- prosessorista/kontrollerista/sovelluksesta
riippuen erilaisia ympäryslaitteita tarvitaan - teholähteitä
- muistia
- näyttöjä ja näppäimiä
- antureita ja toimilaitteita
- ym.
7Systeemiarkkitehtuuri
- 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
8Mikroprosessorit
- 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
9Mikrokontrollerit
- 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.microchi
p.com/downloads/en/DeviceDoc/41239C.pdf) tai AVR
kontrollereista (http//www.atmel.com/dyn/resourc
es/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.
11ALU
- 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
12(No Transcript)
13(No Transcript)
14Rekisterit
- 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
- CPUn rekistereitäAkku (A), R-rekisterit
(R0R7), B-rekisteri, ohjelmalaskuri (PC),
dataosoitin (DPTR), pino-osoitin (SP),
prosessorin tilasana (PSW)
15Pinot
- 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)
16Vä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
17Vä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
18Vä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
19Vä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ä
20Väylät
- Ohjausväylä
- tuloja ja lähtöjä
- näillä prosessori ohjaa laitteita
(luku/kirjoitus) - näistä prosessori myös saa tietoa laitteilta
21Big-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
22Keskeytykset
- 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
23Keskeytykset
- 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
24Keskeytykset
- ohjelmistokeskeytys
- ulkoisten keskeytyslinjojen lisäksi keskeytys voi
tulla esim ajastimesta
25Vahtikoira-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.
26CISC 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
27CISC 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
28DSP
- 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
29Muistit
- ohjelmamuistia (yleensä lukumuistia, ROM)
- käyttömuistia (luku/kirjoitusmuistia, RAM)
- nimityksiä
- RAM, ROM, EPROM, EEROM, Flash
30Muistit
- 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)
31Muistit
- 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
32I/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
33I/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
34Sulautettujen 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ärjestel
mät, lentokoneet, laivat,
35(No Transcript)
36Sulautettujen 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)
37(No Transcript)
38Digitaalinen 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ä
39Kynnysjännittet
40(No Transcript)
41Skeman 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 PClle sarjayhteyttä pitkin.
Laite voi toimia myös ns. välittävänä laitteena,
jolloin se PCltä 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.
42Skeman lukeminen
- laitteistoarkkitehtuuri
- mikrokontrollerina käytetään Atmelin ATMega32,
joka käyttää 7.2837 MHzn ulkoista kidettä - ohjelmointiin ja debuggaukseen laitteistosta
löytyy JTAG- ja ISP-liittimet - näyttönä käytetään 4x16 merkin LCD-näyttöä
- yhteys PChen 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
43(No Transcript)
44Skeman lukeminen
45Skeman lukeminen
46Mikrokontrolleri
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
47Tietokonelogiikka
48Lukujä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
49Lukujä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
.
50Porttipiirit
- aiemmin oli hyvin yleistä, että ohjauslogiikka
tehtiin erillislogiikalla piirilevylle - nykyään logiikan tehtäviä hoitaa useimmiten yksi
tai useampi mikrokontrolleri
51Porttipiirit