Digitaalitekniikka (piirit) Luku 20 Sivu 1 (24)
Digitaalitekniikka (piirit) Luku 20 Sivu 2 (24) Johdanto Tässä luvussa esitetään keskeiset muistipiirityypit ja muistipiireihin liittyvät käsitteet mainitaan muistipiirien keskeisiä sovelluksia esitetään eri kiintomuistityypit ja niiden keskeiset ominaisuudet käydään läpi kiintomuistin signaalit ja piirrosmerkki käydään läpi vaihtomuistin signaalit ja piirrosmerkki sekä ohjaus ja ajoitus esitetään suuren vaihtomuistin kokoaminen pienemmistä piireistä esitellään eri vaihtomuistityypit ja niiden keskeiset ominaisuudet lisäsisältönä esitetään esimerkki vaihtomuistista lukemisesta ja siihen kirjoittamisesta Luvun tavoitteena on antaa yleiskäsitys muistipiireistä ja niiden käytöstä digitaalilaitteissa opettaa kokoamaan suuri muisti pienemmistä muistipiireistä
Digitaalitekniikka (piirit) Luku 20 Sivu 3 (24)? 1 Yleistä muistipiireistä ROM RWM Muistipiirejä (memory circuits) käytetään tietokoneissa aina mikrokontrollerilla toteutetuissa digitaalilaitteissa hyvin usein muissakin digitaalilaitteissa usein Keskeiset muistityypit: kiintomuisti (lukumuisti) ROM (Read-Only Memory) vaihtomuisti (luku-kirjoitusmuisti) RWM (Read-Write Memory), RAM Nykyisin käytössä oleviin kiintomuisteihin voidaan myös kirjoittaa tietoa kirjoittaminen on hidasta ja lukemista mutkikkaampaa Vaihtomuistiin voidaan kirjoittaa ja siitä voidaan lukea tietoa: kirjoittaminen ja lukeminen ovat yhtä nopeita ja helppoja Kiintomuistissa on laitteen ohjelma tai osa ohjelmaa Vaihtomuistissa pidetään tietoja, joita muutetaan usein laskennan väli- ja lopputulokset yleistietokoneissa myös ohjelma
Digitaalitekniikka (piirit) Luku 20 Sivu 4 (24) Muistipiirin osat ja liitännät Muistipiiri koostuu muistisoluista (memory cells) ja solujen käsittelyyn tarvittavasta logiikasta Kukin muistisolu tallettaa yhden bitin tai useita bittejä tietoa Muistisolut on järjestetty ryhmiksi, joita nimitetään muistipaikoiksi ja sanoiksi (word, W): näissä on muistin sisältö eli data Sananpituus (word length) on yleensä n x 8 bittiä 8 bitin ryhmää nimitetään tavuksi (byte, B) ja sen puolikasta puolitavuksi (nibble) Jokaiselle muistipaikalle on oma osoite (address): antamalla tietty osoite päästään kiinni kyseisen muistipaikan sisältöön Lisäksi tarvitaan muistin toiminnan ohjaussignaaleja (control signals) Muistipiirin liitännät Muistipiiri MEM Osoitetulot Ohjaustulot Dataliitännät
Digitaalitekniikka (piirit) Luku 20 Sivu 5 (24) Muistin koko ja sen merkintätapa 2 10 10 3 Uusi standardi IEC 60027-2 ei vielä yleisesti käytössä Muistin koon mittayksiköt taulukossa Muistin koon ilmoittaminen b bittiä (b, bits), esim. 2 Mib t tavua (B, bytes), esim. 256 KiB s (sanaa) x n (bittiä/sana), esim. 128 Ki x 16 Yksikkö Esimerkkejä: 64 B = 64 tavua = 512 b = 512 bittiä (hyvin pieni muistipiiri) 16 MiB = 16 mebitavua = 16777216 B = 128 Mib = 134217728 b (iso piiri) 32 Ki x 16 = 64 KiB = 65536 B = 524288 b 64 Mi x 1 = 64 Mib = 67108864 b Koko Ki Mi Gi Ti kibi mebi gibi tebi 2 10 2 20 2 30 2 40 1 024 1 048 576 1 073 741 824 1 099 511 627 776 Pi pebi 2 50 1,125 899 9 10 15 Ei exbi 2 60 1,152 921 5 10 18 Muistipiiri(t) Muistipiiri(t)
Digitaalitekniikka (piirit) Luku 20 Sivu 6 (24) Muistin osoitetulot ja osoitteet? 2 Muistin sanojen lukumäärä määrää muistin osoitetulojen määrän ja osoiteavaruuden (address space) s sanaa osoitetuloja log 2 s ylöspäin pyöristettynä kääntäen: n osoitetuloa muistissa (max) 2 n sanaa s sanaa osoiteavaruus 0 s-1 Muistipiiri(t) Muistipiiri(t) Esimerkkejä: Sanoja 64 1 Ki 64 Ki 256 Ki 1 Mi 16 Mi Osoitetuloja 6 10 16 18 20 24 Osoitetulot A0 - A5 A0 - A9 A0 - A15 A0 - A17 A0 - A19 A0 - A23 Osoiteavaruus 0-3F 0-63 0-3FF 0-1 023 0 - FFFF 0-65 535 0-3FFFF 0-262 143 0 - FFFFF 0-1 048 575 0 - FFFFFF 0-16 777 215
Digitaalitekniikka (piirit) Luku 20 Sivu 7 (24) Muistin sisältö ja sen esittäminen Jokaiseen muistin osoitteeseen liittyy sananpituuden mittainen rekisteri Rekistereihin on talletettuna muistin sisältö eli data Muistin sisältö voidaan esittää taulukolla Esimerkki: 1 Ki x 16 muistin sisältö Muistin osoite Binaari Heksa Desimaali 0000000000 1011010101011100 0000000001 001 1 1010101110001001 0000000010 002 2 0000110101000110 1111111101 3FD 1021 1001110100010101 1111111110 1111111111 000 3FE 3FF 0 1022 1023 0000110100011110 1101111000100100 Muistipiiri(t) Muistipiiri(t) Muistin sisältö eli data Binaari Heksa B55C AB89 0D46 9D15 0D1E DE24
Digitaalitekniikka (piirit) Luku 20 Sivu 8 (24) Muistipiirien ryhmittely eri tyyppeihin voidaan ryhmitellä eri ominaisuuksien suhteen tyyppeihin Sisällön pysyvyys haihtumattomat (non-volatile) sisältö säilyy käyttöjännitteestä riippumatta kiintomuistipiirit ovat tällaisia haihtuvat (volatile) sisältö katoaa, kun käyttöjännite poistetaan vaihtomuistipiirit ovat yleensä tällaisia Saantitapa suorasaantimuistit (RAM, Random Access Memory) NV mikä tahansa muistipaikka on milloin tahansa osoitettavissa sarjasaantimuistit (SAM, Sequential Access Memory) tietyn muistipaikan sisältö on osoitettavissa vain ajoittain siirtorekisterit, muistitikkujen ja -korttien muistipiirit muut (esim. jonomuisti FIFO, pinomuisti LIFO, vertomuisti CAM) V RAM SAM
Digitaalitekniikka (piirit) Luku 20 Sivu 9 (24) Kiintomuisti ROM Kiintomuistin (ROM) sisältöä ei käytön aikana muuteta ollenkaan tai muutetaan yleensä harvemmin kuin sitä luetaan Kiintomuisti säilyttää sisältönsä, vaikka käyttöjännite katkaistaan Kiintomuistin sisältö kirjoitetaan siihen jollain seuraavista tavoista: valmistettaessa piirivalmistajan tehtaassa (harvinainen) ennen laitteeseen asennusta ohjelmointilaitteessa (laitevalmistaja ohjelmoi, harvinainen) laitteeseen asennettuna tuotantolinjalla (laitevalmistaja ohjelmoi, yleinen) normaalin käytön aikana (käyttäjä tekee, muistitikut, -kortit ja vastaavat, yleinen) Osoite Piirin valinta Luku k bittiä bittiä Kiintomuisti 2 kk sanaa sanaa n bittiä/sana 2 kk x n bittiä bittiä n bittiä bittiä Datalähdöt
Digitaalitekniikka (piirit) Luku 20 Sivu 10 (24) Ei uusissa tuotteissa Uusissa tuotteissa Kiintomuistityypit Tyyppi Teknologia Kirjoitus Tyhjennys Maski-ROM Bipolaarinen Piirivalmistaja Ei PROM Bipolaarinen Ohjelmointilaite Ei EPROM Unipolaarinen Ohjelmointilaite UV-valo (ikkuna) OTPROM Unipolaarinen Ohjelmointilaite Ei Flash Unipolaarinen Tuotantolinj. tai Sähköinen, kokotoiminnan aikana naan tai lohkoina EEPROM Unipolaarinen Toiminnan aikana Sähköinen, sana kerrallaan Eri muistityypeillä on erilaiset kirjoitusominaisuudet Maski-ROM, PROM ja OTPROM voidaan kirjoittaa vain kerran, muut 10.000-1 000.000 kertaa Sanan kirjoitus kestää paljon kauemmin kuin sen lukeminen ROM Ennen kirjoitusta muisti on tyhjennettävä Flash-muisteissa tietoa 1 bitti / solu (SLC) tai 2 tai 4 bittiä / solu (MLC) Unipolaariset kiintomuistit ovat hitaita: saantiaika 50-100 ns
Digitaalitekniikka (piirit) Luku 20 Sivu 11 (24) Flash-muistityypit? 3 NOR-Flash ("normaali" Flash) suorasaantimuisti: kaikki muistipaikat aina luettavissa uusissa piireissä ryöppyluku: saantiaika vain noin 10 ns/sana tyhjennys koko piiri tai lohko kerrallaan, kirjoitus lohkoittain lohkokoko vaihtelee piirityypeittäin, esim. 512 Kib (64 KiB) käyttö sulautettujen järjestelmien ohjelmamuistina kapasiteetit 32-512 Mib (4 MiB - 64 MiB) NAND-Flash sarjasaantimuisti: peräkkäiset muistipaikat luetaan sivuittain tyhjennys lohko kerrallaan, kirjoitus sivuittain sivu- ja lohkokoko vaihtelee, esim. 518 B / sivu, lohko 32 sivua käyttö massamuistina muistikortit ja -tikut kiintolevyt (SSD, Solid State Disk) kapasiteetit 128 Mib - 512 Gib (16 MiB - 64 GiB)
Digitaalitekniikka (piirit) Luku 20 Sivu 12 (24) Kiintomuistin signaalit ja piirrosmerkki Muistin koko 1 Ki x 8 = 8192 bittiä (pieni muisti) 10 osoitetuloa A0 - A9 8 datalähtöä D0 - D7 Yksi piirin valintasignaali CS tai CE kun CS = 0, piiri on aktiivinen Yksi lähdön sallintasignaali RD tai OE kun RD = 0, piirin datalähdöistä voidaan lukea osoitetulojen määräämän muistipaikan sisältö kun RD = 1, piirin lähtö ei ole aktiivinen (kolmetila-lähtö) Nykyisissä kiintomuisteissa on lisäksi kirjoitukseen tarvittavia signaaleja Uusissa nopeissa kiintomuisteissa on myös kellosignaali A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 CS RD 0 9 Osoiteriippuvuus ROM 1KX8 0 A 1023 G1 1EN[READ] [0]A [1]A [2]A [3]A [4]A [5]A [6]A [7]A ROM D0 D1 D2 D3 D4 D5 D6 D7
Digitaalitekniikka (piirit) Luku 20 Sivu 13 (24) Vaihtomuisti Vaihtomuistista voidaan lukea ja siihen voidaan kirjoittaa mielivaltaisen monta kertaa Vaihtomuisti tyhjenee, kun käyttöjännite katkaistaan Vaihtomuistissa on seuraavat liitännät: osoitetulot (k tuloa) piirin valintatulo tai -tulot luvun ja kirjoituksen valintatulo tai -tulot datatulot ja -lähdöt (n erillistä tai yhteistä tuloa ja lähtöä) synkronisissa nopeissa vaihtomuisteissa lisäksi kellotulot ja toimintaan liittyviä muita erikoistuloja ja -lähtöjä RWM RAM Osoite k bittiä bittiä Piirin valinta Luku Kirjoitus Vaihtomuisti 2 k n k bittiä bittiä sanaa sanaa n bittiä/sana 2 kk x n bittiä bittiä n bittiä bittiä Datatulot Datalähdöt
Digitaalitekniikka (piirit) Luku 20 Sivu 14 (24) Suuren vaihtomuistin signaalit ja piirrosmerkki? 4 Muistin koko 1 Mi x 8 = 8 Mib 20 osoitetuloa A0 - A19 Yhteiset dataliitännät D0 - D7 luettaessa lähtöjä kirjoitettaessa tuloja Piirin valintasignaali CS tai CE kun CS = 0, piiri on aktiivinen Luvun ja kirjoituksen valintasignaalit RD tai OE ja WR tai WE kun RD = 0, piirin dataliitännöistä (lähdöistä) voidaan lukea osoitetulojen määräämän muistipaikan sisältö kun WR = 0, piiri kirjoittaa dataliitäntöjen (tulojen) mukaisen sanan osoitetulojen määräämään muistipaikkaan A0 A1 A19 CS RD WR. RAM 1MX8 0 0 A. 1048575 19 G1 1EN2[READ] 1C3[WRITE] A,3D/2. RWM D0 D1 D2 D3 D4 D5 D6 D7
Digitaalitekniikka (piirit) Luku 20 Sivu 15 (24) Pienen vaihtomuistin signaalit ja piirrosmerkki Lisä Muistin koko 64 x 4 = 256 bittiä 6 osoitetuloa A0 - A5 Erilliset datatulot DI0 - DI3 ja -lähdöt DO0 - DO3 Piirin valintasignaali CS tai CE kun CS = 0, piiri on aktiivinen Luvun ja kirjoituksen yhdistetty valintasignaali R/W kun R/W = 0, piiri kirjoittaa datatulojen mukaisen sanan osoitetulojen määräämään muistipaikkaan kun R/W = 1, piirin datalähdöista voidaan lukea osoitetulojen määräämän muistipaikan sisältö A0 A1 A2 A3 A4 A5 CS R/W DI0 DI1 DI2 DI3 0 RAM 64X4 0 A 63 5 G1 1EN[READ] 1C2[WRITE] A, 2D A RWM DO0 DO1 DO2 DO3
Vaihtomuistin ohjaus ja ajoitus Digitaalitekniikka (piirit) Luku 20 Sivu 16 (24) Piirin valintasignaali CS (Chip Select) tai CE (Chip Enable) on yleensä nollassa aktiivinen Valintasignaaleja voi olla useita: kaikkien tulee olla aktiivisia, jotta piiri aktivoituisi Luvun ja kirjoituksen valintasignaali tai -signaalit yksi signaali R/W (Read/Write) erilliset nollana aktiiviset signaalit lukusignaali RD (Read) tai OE (Output Enable) kirjoitussignaali WR (Write) tai WE (Write Enable) vain toinen saa olla aktiivinen Signaalien ajoitus on tärkeä ensin osoite ja valintasignaali sitten luku- tai kirjoitussignaali piirin saantiaika t a ja jaksonaika t c on otettava huomioon RD WR CS R/W Lisä CE OE WE
Digitaalitekniikka (piirit) Luku 20 Sivu 17 (24) Vaihtomuistista lukemisen aikakaavio Esimerkki: mikroprosessori lukee siihen liitetystä muistista RWM Lisä CLK A0-Ak CS RD WR T1 T2 T3 T1 Osoite asetettu Jaksonaika t rc Saantiaika t a Prosessorin kellosignaali Prosessorin antamat signaalit Prosessori lukee datan D0-Dn Lähdöt passiiviset Data asetettu Muistipiiri asettaa datan Muistipiirin antamat signaalit
Digitaalitekniikka (piirit) Luku 20 Sivu 18 (24) Vaihtomuistiin kirjoittamisen aikakaavio Esimerkki: mikroprosessori kirjoittaa siihen liitettyyn muistiin RWM Lisä CLK A0-Ak CS T1 T2 T3 T1 Osoite asetettu Jaksonaika t wc Prosessorin kellosignaali Prosessorin antamat signaalit RD WR D0-Dn Prosessori asettaa datan Data asetettu Muistipiiri kirjoittaa datan
Digitaalitekniikka (piirit) Luku 20 Sivu 19 (24) Vaihtomuistin laajentaminen RWM Sananpituuden lisääminen suoraviivaista: kukin piiri muodostaa osan sanasta Osoiteavaruuden laajentaminen kaksinkertaistaminen invertterillä suurempi laajennus dekooderilla muistipiireissä on kolmetilalähtö: valitsemattoman piirin lähdöt ovat suuri-impedanssiset eli passiiviset Usein tarvitaan käytännössä molemmat laajennustavat yhtä aikaa Esimerkki kolmetilalähtöisestä vaihtomuistista: A0-A19 CS RD WR RAM 1MX8 ADDR CS DATA READ WRITE D0-D7 Kolmetilalähdön merkintä
Digitaalitekniikka (piirit) Luku 20 Sivu 20 (24) Vaihtomuistin sananpituuden lisääminen Kytketään piirejä rinnakkain tarvittava määrä Samat ohjaussignaalit kaikkiin piireihin Esimerkki: 1 Mi x 16 -vaihtomuisti 1 Mi x 8 -piireistä RWM A0-A19 CS RD WR RAM 1MX8 ADDR CS DATA READ WRITE RAM 1MX8 ADDR CS DATA READ WRITE D0-D7 D8-D15
Digitaalitekniikka (piirit) Luku 20 Sivu 21 (24)? 5 Vaihtomuistin osoiteavaruuden laajentaminen Osoitedekooderi EN A20 A21 A0-A19 RD WR X/Y EN 1 2 Esimerkki: 4 Mi x 8 vaihtomuisti 1 Mi x 8 -muistipiireistä RWM 0 1 2 3 RAM 1MX8 ADDR CS DATA RD WR RAM 1MX8 ADDR CS DATA RD WR RAM 1MX8 ADDR CS DATA RD WR RAM 1MX8 ADDR CS DATA RD WR Vain yksi piiri kerrallaan aktiivinen Osoitteet 000000H- 0FFFFFH Osoitteet 100000H- 1FFFFFH Osoitteet 200000H- 2FFFFFH D0-D7 Osoitteet 300000H- 3FFFFFH
Digitaalitekniikka (piirit) Luku 20 Sivu 22 (24) Staattiset vaihtomuistit SRAM Staattisissa vaihtomuisteissa (SRAM, Static RAM) muistielementti on salpa Data säilyy kerran kirjoitettuna, kunhan käyttöjännite pysyy Edellä on kuvattu asynkronisten staattisten vaihtomuistien ominaisuuksia Staattiset vaihtomuistit ovat nopeita: asynkronisen SRAM:n saantiaika n. 10 ns Nykyisin paljolti käytössä synkroniset DDR (Dual Data Rate) ja QDR (Quadruple Data Rate) -vaihtomuistit peräkkäisten muistipaikkojen osoittaminen on erittäin nopeaa kellosignaalin tahdissa, saantiaika jopa 0,5 ns Yleinen muistityyppi digitaalilaitteissa ja tietokoneissa välimuisteina Prosessori Sis. välimuistit Ulkoinen välimuisti Päämuisti Toisiomuisti (kiintolevy)
Digitaalitekniikka (piirit) Luku 20 Sivu 23 (24)? 6 Dynaamiset vaihtomuistit DRAM Dynaamisissa vaihtomuisteissa (DRAM, Dynamic RAM) muistielementti on kondensaattori yksinkertainen rakenne Data häviää, ellei sitä virkistetä määrävälein (8-64 ms piiristä riippuen) Virkistäminen vaatii virkistyslogiikan DRAM:n käyttäminen vaatii mutkikkaamman ohjauspiirin kuin SRAM:n DRAM:issa osoite annetaan kahdessa osassa peräkkäin: riviosoite ja sarakeosoite vähemmän nastoja piirissä, mutta hitaampi toiminta Peräkkäisten muistipaikkojen lukeminen/kirjoittaminen nopeaa: ~10 ns Nykyisin käytössä FPM (Fast Page Mode), EDO (Extended Data Out), SDRAM (Synchronous DRAM) ja DDR (Double Data Rate) Käytössä tietokoneissa päämuistina ja muuallakin suurina muisteina Prosessori Sis. välimuistit Ulkoinen välimuisti Päämuisti Toisiomuisti (kiintolevy)
Digitaalitekniikka (piirit) Luku 20 Sivu 24 (24) Yhteenveto Keskeiset muistityypit ovat ovat vaihtomuisti ja ja kiintomuisti Muistipiirin muistisolut on on järjestetty sanoiksi: jokaisella sanalla sanalla on on oma oma osoite, osoite, jolla jolla päästään kiinni kiinni kyseiseen sanaan sanaan Muistin Muistin koko koko ilmoitetaan bitteinä, tavuina tai tai sanoina x sananpituus voidaan ryhmitellä haihtumattomiin ja ja haihtuviin sekä sekä suorasaanti- ja ja sarjasaantimuisteihin Kiintomuistin sisältö sisältösäilyy, säilyy, vaikka vaikka käyttöjännite katkaistaan: siinä siinäon on osoitetulot, datalähdöt sekä sekäpiirin valintatulo Kiintomuistityypit ovat ovat ohjelman kiinteysjärjestyksessä maski-rom, PROM, PROM, OTPROM, EPROM, Flash Flash ja ja EEPROM Vaihtomuistissa on on osoitetulot, datatulot ja ja -lähdöt sekä sekäpiirin piirinvalinta- ja luku/kirjoitustulot: lukemiseen ja ja kirjoittamiseen on on omat omat ajoituksensa Vaihtomuistia voidaan laajentaa käyttämällä useita useita piirejä: piirejä: voidaan laajentaa osoiteavaruutta tai tai lisätä lisätäsananpituutta Staattinen vaihtomuisti säilyttää sisältönsä, kunhan kunhan käyttöjännite säilyy, säilyy, ja mutta mutta dynaamista on on virkistettävä