2.44k likes | 2.85k Views
Tietokone-järjestelmät. Sisältö: 1. Sulautetut järjestelmät 2. Tietokonearkkitehtuurit 3. Liitännät ja oheispiirit 4. Muistipiirit 5. Ohjelmistotekniikka Sovellusesimerkki Anturit sulautetuissa järjestelmissä. Tietokonejärjestelmät Perusasioita
E N D
Sisältö: 1. Sulautetut järjestelmät 2. Tietokonearkkitehtuurit 3. Liitännät ja oheispiirit 4. Muistipiirit 5. Ohjelmistotekniikka • Sovellusesimerkki • Anturit sulautetuissa järjestelmissä
Tietokonejärjestelmät Perusasioita • Elektroniikan tarkoitus on signaalien käsittely • Signaaleilla voi olla kaksi muotoa: Analoginen signaali jatkumo, kuten reaaliluvut;esimerkiksi mikrofonista tuleva jännite • Digitaalinen eli numeerinen signaali diskreettiä (erillistä) eli kvantisoitua, kuten murtoluvut • Elektroniikka voidaan vastaavasti jakaa kahteen ryhmään: analogiaelektroniikka ja digitaalielektroniikka • Tietokone on digitaalielektroninen laite, jonka tarkoitus on digitaalisten signaalien käsittely
Tietokonejärjestelmät Perusasioita • Tietokone on monitoimityökalu • Ei paras mahdollinen mihinkään tehtävään • Jokainen tehtävä voidaan paremmin hoitaa erikoistyökalulla • Parempi≈ nopeampi, tarvitsee vähemmän sähkötehoa • Tietokone on kuitenkin ylivoimaisen joustava ja periaatteessa sopii mihin tehtävään tahansa • Erikoistyökalu soveltuu vain tiettyyn tehtävään • Tietokone sovitetaan johonkin tehtävään ohjelmoimalla
Tietokonejärjestelmät Perusasioita Tietokonejärjestelmän perusrakenne:
Tietokonejärjestelmät Perusasioita Käyttöjärjestelmä: • perustoiminto: piilottaa laitteiston epäolennaiset yksityiskohdat (käytännössä lähes kaikki) ja tarjota laitteistoriippumaton rajapinta sovelluksille • muita toimintoja: • resurssien jako tehtävien (task, thread) tärkeyden mukaisesti, erityisesti reaaliaikakäyttöjärjestelmissä • tehtävien välinen tietojenvaihto • muut palvelut, kuten tiedostojärjestelmä ja tietoliikenne
Tietokonejärjestelmät Perusasioita Käyttöjärjestelmä: • käyttöjärjestelmä on hyödyllinen, mutta hyöty ilmenee enimmäkseen monimutkaisissa järjestelmissä joissa on useita samanaikaisia tehtäviä • käyttöjärjestelmän tarvitsemat resurssit ovat poissa sovelluksilta • käyttöjärjestelmä ei ole pakollinen, eikä sitä käytetä yksinkertaisimmissa tapauksissa, jotka itse asiassa muodostavat valtaosan tietokonesovelluksista sulautetut järjestelmät (embedded systems) • silloin sovellukset joutuvat suoraan käyttämään laitteistoa laiteläheinen ohjelmointi
Sulautetut järjestelmät Määritelmä • Sulautettu järjestelmä (embedded system) = mikä tahansa elektroninen laite joka sisältää mikro-ohjaimen • Siis lähes kaikki sähkölaitteet, varsinaisia tietokoneita lukuunottamatta
Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo
Reaktiivinen järjestelmä Ottoja:HeräteTapahtumaMittaus Antoja:Vaste (reaktio)ToimenpideOhjaus Tietokonejärjestelmät Reaktiivinen järjestelmä Sulautetut järjestelmät ovat yleensä reaktiivisia järjestelmiä:
Tietokonejärjestelmät Terminologiaa • Yleinen menetelmä minkä tahansa järjestelmän toiminnallisessa testauksessa: • syötetään ottoihin sopiva testisignaali eli heräte (stimulus) • heräte aiheuttaa antoihin jonkin vasteen (response) • vasteesta voidaan päätellä jotain järjestelmän toiminnasta • riippuen siitä, mitä halutaan saada selville käytetään erilaisia herätteitä, joista yleisimmät ovat: sinifunktio taajuusvaste askelfunktio askelvaste impulssi impulssivaste Näillä tutkitaan järjestelmän toimintaa muutostilanteissatransienttiominaisuudet
Tietokonejärjestelmät Terminologiaa • Digitaalisissa järjestelmissä kaikki asiat ovat diskreettejä • Siten herätteitä voidaan kutsua tapahtumiksi (event), ja vasteita toimenpiteiksi (action) • Tällöin tietokonejärjestelmää kutsutaan reaktiiviseksi järjestelmäksi • Suurin osa varsinkin sulautetuista järjestelmistä on luonteeltaan reaktiivisia • Kaikki tietokonejärjestelmät eivätole reaktiivisia, eikä kaikissa tietokonejärjestelmissä voida puhua tapahtumista
Tietokonejärjestelmät Reaktiivinen järjestelmä Toimintatapa: • järjestelmä reagoi tapahtumiin (event) eli herätteisiin stimulus) • havaittuaan tapahtuman järjestelmä reagoi eli suorittaa tarvittavat toimenpiteet (action) eli kehittää vasteen (response) • sen jälkeen järjestelmä ryhtyy odottamaan uutta tapahtumaa • tapahtumaa odottaessaan järjestelmä ei välttämättä tee mitään, vaan voi mennä lepotilaan esimerkiksi tehonkulutuksen minimoimiseksi
Tietokonejärjestelmät Terminologiaa • Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne:
Tietokonejärjestelmät Automaatiotekniikka • Automaatiojärjestelmän perimmäinen tarkoitus on ohjata jonkin prosessin jotain suuretta halutulla tavalla • Sangen usein (mutta ei aina) halutaan pitää jokin suure vakiona, esimerkiksi: • lämpötila • kierrosluku • paine • Tätä varten on ensin mitattava kyseinen suure anturilla, ja mittauksen sekä jonkin säätöalgoritmin mukaisesti ohjataantoimilaitteella prosessia siten, että suure käyttäytyy halutulla tavalla
Tietokonejärjestelmät Automaatiotekniikka Klassinen esimerkki:sähkölämmitin, muun muassa silitysrauta • prosessi: lämmittimen ympäristö, esimerkiksi huonetila • suure: ympäristön lämpötila, joka halutaan pitää vakiona • anturi: lämpötila-anturi, joita on vaikka minkälaisia • toimilaite: lämmitysvastus ja sitä ohjaava kytkin (rele, kontaktori) • säätöalgoritmi; monenlaisia, joista yleisimmät: • PID-säätö, klassinen ja yhäti eniten käytetty • sumea säätö (fuzzy control), uudempi ja oudompi • kaikkein yksinkertaisin mutta varsin toimiva: “bang-bang”
Tietokonejärjestelmät Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: • kaksi toimintatilaa: lämmittää “täysillä” ( ympäristön lämpötila nousee) tai ei lämmitä lainkaan (ympäristön lämpötila laskee) • haluttu lämpötila määritellään ylärajan ja alarajan avulla. Näiden eroa kutsutaan järjestelmän hystereesiksi. • tapahtuma E1: lämpötila nousee ylärajalletoimenpide A1: lämmitin pois päältä, lämpötila laskee • tapahtuma E2: lämpötila laskee alarajalletoimenpide A2: lämmitin päälle, lämpötila kohoaa
Lämpötila t E1 tYLÄ E2 tALA Aika kuluu Tietokonejärjestelmät Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin:
Aloitus:C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Alkuasetukset:ohjausbittien asetukset Päättymätön silmukka:odotellaan tapahtumia Ohjelmistotekniikka Ohjelmiston vuokaavio • sulautetun sovelluksenohjelmarakenne on ainasama eli päättymätönsilmukka
Digitaalinen signaali-prosessori Digitaalinen ottosignaali eli isokroninenvirta peräkkäisiä lukuarvoja Muokattu digitaalinen antosignaali Tietokonejärjestelmät Muunlaiset järjestelmät Kaikki tietokonejärjestelmät eivät ole reaktiivisia, esimerkiksi signaaliprosessori:
Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: • I/O = Input/Outputeli otto/antotai syöttö/tulostussiis yhteydet ympä-ristöön • CPU = CentralProcessing Unitsuomeksi prosessoritai suoritin, yksikkö jokasuorittaa operaatiot elitoiminnot
Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: • sama kuin edellinenkuva, mutta vähäneri tavalla piirretty Ohjelma-muisti Data-muisti KeskusyksikköProsessoriSuoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta LiitäntäyksikötPeripherals Ympäristö
Tietokonearkkitehtuurit Tietokoneen osat Tarkoitus: Prosessori: käsittelee tietoa suorittamalla aritmeettisia ja loogisia operaatioita eli “laskutoimituksia”. Kaikki prosessorit ovat nykyään mikroprosessoreja. Muisti: siellä ovat ohjelmat eli käsittelyohjeet ja käsiteltävät tiedot eli datat. Useita erityyppisiä muisteja käytössä. I/O-yksiköt: näilla ollaan yhteydessä ympäristöön, siis havaitaan tapahtumia sekä suoritetaan toimenpiteitä.
Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin Kolme pääyksikköä tässäkin:
GIGO DatatieData Path Käsiteltävä tieto Käsitelty tieto Tilatiedot(takaisinkytkentä) Käsittelyn ohjaus Ohjausyksikkö Käskyt eli toimintaohjeet Tietokonearkkitehtuurit Prosessori Toiminnallinen lohkokaavio:
Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin:
Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Mikro-ohjelmointi: • mikro-ohjelmointi on paljon käytetty menetelmä toteuttaa ohjausyksikkö • tällöin ohjausyksikkö on kuin tietokone tietokoneessa • kutakin konekäskyä eli suorittimen käskyä vastaa ohjelmapätkä mikro-ohjelmamuistissa • etuna sama joustavuus kuin tietokoneissa ylipäänsä: esimerkiksi uusia konekäskyjä voidaan ottaa käyttöön ilman laitteiston muutoksia • toisaalta: ei kaikkein suorituskykyisin tapa toteuttaa ohjausyksikkö
Tietokonearkkitehtuurit Käskykanta-arkkitehtuuri • ISA: Instruction Set Architecture • siis kaikki mitä assembler-ohjelmoinnissa tulee tietää ja tuntea prosessorista: • käskyt • osoitusmuodot (tässä on villakoiran ydin!) • rekisterit • C-kielellä tai vastaavalla ohjelmoitaessa ei tarvitse tietää juuri mitään prosessorista • laiteläheisessä ohjelmoinnissa tärkein asia on I/O-yksiköiden rekisterit
Varsinainen käskykoodi (opcode), kertoo mikä operaatio suoritetaan Osoitteet, eli missä ovat operandit ja mihin tallennetaan tulokset. Tietokoneissa kaksi perusvaihtoehtoa paikan suhteen: rekisterit tai muisti Tietokonearkkitehtuurit Osoitusmuodot • konekäskyt ovat tietenkin binäärilukuja, kuten kaikki muukin digitaali- ja tietokonetekniikassa • käsky voidaan jakaa kahteen osaan eli bittikenttään:
Tietokonearkkitehtuurit Osoitusmuodot Operaatiot ja operandit: • kuinka tulkitaan esimerkiksi merkintä ? • algebrassa x ja y ovat muuttujia, ohjelmissa taas operandeja • algebrassa z on funktio, ohjelmissa taas tulos • “+” on itse operaation symbooli, tässä aritmeettinen summa tai Boolen operaatio TAI (OR) • RPN-syntaksi (Reverse Polish Notation): esimerkiksi 5*(1+2) merkitään 5 1 2 + *, käytetään joissakin ohjelmointikielissä
Tietokonearkkitehtuurit Osoitusmuodot • käytännön suorittimissa yhdellä käskyllä tehdään vain yksi operaatio • yksi tulos ja 0…2 operandia, siis enintään 3 lukua eli dataa • merkittävä poikkeus: VLIW (Very Large Instruction Word) eli leveän käskysanan arkkitehtuuri • siinä samassa käskyssä on useita operaatioita, joita varten koneessa on useita toiminnallisia yksiköitä • tässä pyritään lisäämään samanaikaisia toimintoja, jotta ehdittäisiin tehdä enemmän samassa ajassa • tärkein kysymys osoitusmuodoissa: montako osoitetta tarvitaan???
Op1 ALU Tulos Op2 Tietokonearkkitehtuurit Operaatiot • 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta:
Tietokonearkkitehtuurit Osoitteet • 3 osoitetta turhan paljon bittejä • esimerkiksi, jos muistialue käsittää 64 Ktavua tarvitaan 16-bittisiä osoitteita, eli kolmella osoitteella yhteensä 48 bittiä. Tämä on aivan liikaa! • eri arkkitehtuureissa rajoitetaan muistibittien määrää eri konsteilla: • akku-arkkitehtuuri: vain yksi osoite, kaksi muuta = sama implisiittinen vakio • load/store-arkkitehtuuri: 3 osoitetta, mutta hyvin pieni osoitealue, tyypillisesti vain 32 mahdollista osoitetta • pinoarkkitehtuuri: ei osoitetta ollenkaan (oikeammin: yksi implisiittinen vakio-osoite)
Muu rekisteri, muisti tai I/O Op1 Akun tallennus Akun lataus ALU Tulos Akkurekisteri Op2 Tietokonearkkitehtuurit Akku-arkkitehtuuri • erityinen akkurekisteri, jonka osoite on implisiittinen vakio • yksi operandi aina akusta, ja tulos aina akkuun, tarvitaan vain toisen operandin osoite
Op1 Rekisterit Load ALU Store Tulos Op2 Tietokonearkkitehtuurit Load/store-arkkitehtuuri • joukko samanarvoisia rekistereitä, tyypillisesti 32 kpl • kolme osoitetta, mutta kukin osoite vain 5 bittiä (tässä esimerkissä) • operaatiot pelkästään rekistereiden välillä, paitsi load/store-operaatiot
Push Pop Op1 Pinomuisti LIFO-periaate: Last In - First Out ALU Tulos Op2 Tietokonearkkitehtuurit Pino-arkkitehtuuri • operandit pinomuistin kahdessa päällimmäisessä rekisterissä • tulos pinoon päällimmäiseksi
Tietokonearkkitehtuurit Pino-arkkitehtuuri • varsinaiset pinokoneet harvinaisia prosessoripiireissä, mutta toiminta-ajatusta ja pino-operaatioita käytetään paljon tietokonetekniikassa • C-kääntäjä rakentaa virtuaalisen pinokoneen mille tahansa alustalle - käyttäjä ei tiedä tästä mitään • FORTH-ohjelmointikielessä (lähes) kaikki operaatiot (käskyt) ovat eksplisiittisesti pinotyyppisiä, vaikka suoritin ei olekaan pinokone • FORTH-kielessä RPN-tyyppinen syntaksi • pino-operaatioiden tehostamiseksi monissa prosessoreissa on erityinen rekisteri, pino-osoitin
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR:SpecialFunctionRegisters Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali)
Tietokonearkkitehtuurit Esimerkki: Atmel AVR • kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva
Tietokonearkkitehtuurit Esimerkki: Freescale HC08 • kahdeksanbittinen CISC-tyyppinen akku-arkkitehtuuri, myös hyvin selkeä • selkeyttä lisääsekin, että suorit-timessa on vainyksi ainoa muistialueeli muistiavaruus
Tietokonearkkitehtuurit Esimerkki: Microchip PIC16 • kahdeksanbittinen RISC-tyyppinen (33 käskyä)akku-arkkitehtuuri, aika hankala • akku = W-rekisteri(Working) • SFR = SpecialFunction Registereli muut rekisterit,joista osa kuuluuliitäntöihin, eisuorittimeen
Tietokonearkkitehtuurit Esimerkki: x86-suoritin • x86 tunnetaan myös nimellä IA-32 • kuvassaperusrekisterit • AH + AL = AXon akkurekisteri • punaisellamerkitytkäytettävissävain suojatussatoimintatilassa (protected mode) • perusrekistereiden lisäksi paljon muitakinrekistereitä tullut mukaan matkan varrella
Tietokonearkkitehtuurit Esimerkki: x86-suoritin • uudemmissa x86-suorittimissa on lisäksi paljon, paljon muitakin rekistereitä, jotka voidaan jakaa seuraaviin ryhmiin: • FP (Floating Point): liukulukulaskentaan liittyvät • MMX (MultiMedia eXtensions): SIMD-tyyppisiä rekistereitä (SIMD = Single Instruction Multiple Data) • 3DNow!: sama kuin MMX, mutta kilpailijan (AMD) versio • MSR (Model Specific Registers): nimensä mukaisesti tietyn suoritintyypin erikoisrekistereitä • runsaasti lisätietoja aiheesta löytyy Internetistä Sandpile-sivustosta
Tietokonearkkitehtuurit x86-valmistajia • suurimmat ja kauneimmat: • Intel • AMD • omaperäinen: VIA Technologies, keskittynyt pienen tehonkulutuksen suorittimiin ja pieniin emolevyformaatteihin (ITX, Micro-ITX, Nano-ITX) • yrittää kovasti: Transmeta, keskittynyt kannettavien laitteiden suorittimiin, omaperäinen sisäinen arkkitehtuuri • vain sulautetut sovellukset: STMicroelectronics, esimerkiksi STPC Vega: samalla sirulla Pentium II + USB + Ethernet + IDE-liitäntä + I2C-liitäntä + UART-sarjaportti, kilpailee AMD:n Geode-suoritinperheen kanssa
Tietokonearkkitehtuurit Esimerkki: x86-suoritin • x86-suorittimessa hyvin runsaasti historiallista painolastia • tavattoman monimutkaiset osoitusmuodot • x86-assemblerohjelmointi on erittäin haasteellista, useimmille jopa täysin ylivoimaista protected mode-tapauksessa • dokumentissa “The Ten Commandments for C Programmers” luonnehditaan x86-arkkitehtuuria sangen osuvasti: This particular heresy bids fair to be replaced by “All the world's a Sun” or “All the world's a 386” (this latter being a particularly revolting invention of Satan), but the words apply to all such without limitation. Beware, in particular, of the subtle and terrible “All the world's a 32-bit machine”, which is almost true today but shall cease to be so before thy resume grows too much longer.
CPU AGP PohjoissiltaNorth BridgeMemory Bridge DRAM ATA USB EteläsiltaSouth BridgeI/O Bridge KorppuasemaSarjaportitRinnakkaisporttiNäppäin/hiiri-liitäntä (PS/2) AC97 LPC-väylä PCI-väylä Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Nykyinen käytäntö: • prosessorin lisäksi kaksiosainenpiirisarja (chip set) • useita emolevy-formaatteja,ATX yleisin • monenlaisia liitäntöjäja väyliä
Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Nykyinen käytäntö: • prosessorissa on vain asynkroninen rinnakkaisväylä • pohjoissillassa (Intel: Memory Controller Hub) nopeimmat liitännät: • muistipiirit • grafiikkakortti (AGP = Advanced Graphics Port) • eteläsillassa (Intel: Integrated Controller Hub) muut liitännät: • ATA-liitäntä: kovalevyt sekä CD- ja DVD-asemat • USB-väylä • AC97: Audio Codec 97 eli äänipiirin liitäntä • LPC: Low Pin Count bus, entisen ISA-väylän muisto
Tietokonearkkitehtuurit PC-emot Aikojen kuluessa on kehitelty yhtä jos toistakin: • XT ja AT (Advanced Technology): alkuperäiset emoformaatit, ei enää käytössä. Baby AT oli AT:n kutistettu versio • ATX (Advanced Technology eXtended): AT:n seuraaja vuodelta 1995, pienempikokoinen, erilainen teholähteen liitin. Mini-ATX ja Micro-ATX kutistettuja versioita • LPX ja NLX: hyviä ideoita Inteliltä, mutta ei kaupallista menestystä, ilmeisesti liian kalliita ratkaisuja • ITX: taiwanilaisen VIA:n kehittämä, Micro-ITX ja Nano-ITX ovat kaikkein pienikokoisimmat emot • BTX (Balanced Technology eXtended): uusin emoformaatti, vasta tulossa, tämäkin Intelin kehittämä
Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Uusin versio: • BTX-emolevyformaatti • ATA-liitäntä korvattu SATA-liitännällä • PCI-väylä ja AGP korvattu PCIExpress-liitännöillä • uusin muistipiiriliitäntä on DDR 2 • edelleen kahden piirin piirisarja
Tietokonearkkitehtuurit PC-emot NLX-emot: • emolevyhelppo irroittaa ja laittaa takaisin ilman muiden korttien ja yksiköiden irroittamista