Digitális Rendszerek és Számítógép Architektúrák



Hasonló dokumentumok
Számítógép Architektúrák (MIKNB113A)

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Digitális Rendszerek és Számítógép Architektúrák (Levelező BSc)

Számítógép architektúrák. Tartalom. A memória. A memória

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék

Memóriák. Digitális Rendszerek és Számítógép Architektúrák 2011

A mikroszámítógép felépítése.

Operációs rendszerek Memóriakezelés 1.1

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

(A DRAM-okkal kapcsolatban a bank megnyitása, bank aktiválása, banksor megnyitása vagy a lap megnyitása kifejezések szinonímák, ugyanazt jelentik.

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

DIGITÁLIS ADATTÁRAK (MEMÓRIÁK)

Digitális rendszerek. Memória lapkák

Architektúra, memóriák

SZÁMÍTÓGÉPARCHITEKTÚRÁK

A Számítógépek felépítése, mőködési módjai

1. Az utasítás beolvasása a processzorba

Máté: Számítógép architektúrák

Számítógépek felépítése, alapfogalmak

Funkcionális áramkörök vizsgálata

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Számítógép Architektúrák

Számítógép Architektúrák

Számítógép Architektúrák

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Számítógépek felépítése

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Digitális Technika I. (VEMIVI1112D)

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Dr. Illés Zoltán

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Számítógép architektúrák. Tartalom. A memória. A memória

Digitális technika VIMIAA01

Villamos jelek mintavételezése, feldolgozása. Mérésadatgyűjtés, jelfeldolgozás 9. előadás

Máté: Számítógép architektúrák

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/12. (Personal computer - From Wikipedia, the free encyclopedia)

FPGA áramkörök alkalmazásainak vizsgálata

Máté: Számítógép architektúrák

Magyar nyelvű szakelőadások a es tanévben

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Programozási segédlet DS89C450 Fejlesztőpanelhez

Tartalom. Számítógép architektúrák. A memória. A tárak implementációja. A félvezető tárolók. Egy cella

Programozható logikai vezérlõk

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

A számítógép egységei

A PC története. Informatika alapjai-9 Személyi számítógép (PC) 1/15. (Personal computer - From Wikipedia, the free encyclopedia)

Máté: Számítógép architektúrák

Digitális Technika I. (VEMIVI1112D)

Tartalomjegyzék. 1. Alapfogalmak Az A/D (analóg-digitális) átalakítás...4

BEVEZETÉS AZ INFORMATIKÁBA - SZÁMÍTÓGÉP ARCHITEKTÚRÁK. Háber István Ihaber@pmmik.pte.hu

Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

Számítógép felépítése

statikus RAM ( tároló eleme: flip-flop ),

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

Számítógép Architektúrák

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

Egyszerű RISC CPU tervezése

elektronikus adattárolást memóriacím

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

7.hét: A sorrendi hálózatok elemei II.

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

Autóipari beágyazott rendszerek

Számítógép Architektúrák (MIKNB113A)

Számítógép architektúrák. A memória

Négyprocesszoros közvetlen csatolású szerverek architektúrája:

Számítógépes alapismeretek

A számítógép alapfelépítése

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Teljesítmény: időegység alatt végrehajtott utasítások száma. Egységek: MIPS, GIPS, MFLOPS, GFLOPS, TFLOPS, PFLOPS. Mai nagyteljesítményű GPGPU k: 1-2

Mielıtt használná termékünket Az eltérı környezeti körülmény elektromos áramütést, tüzet, hibás mőködést vagy. okozhat.

Számítógép architektúrák. A memória

Jeltárolás. Monitorozás

Számítógép egységei. Szoftver (a fizikai eszközöket működtető programok összessége)

Megszakítások és kivételek

GQ-3x és GQ-4x USB univerzális programozó Kézikönyv

Számítógép Architektúrák I-II-III.

MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK

Interrupt. ile ile 1 / 81

A TOSHIBA ÚJ SZILÁRDTEST-MEGHAJTÓJA A RUGALMAS VÁLLALATI TÁROLÁSI MEGOLDÁSOKAT SZOLGÁLJA

Az integrált áramkörök kimenetének kialakítása

Számítógép architektúrák. A memória

Programozás alapjai. 10. előadás

MICROCHIP PIC DEMO PANEL

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

Fábián Zoltán Hálózatok elmélet

AF 088II DIO 16/8 AF 088II DIO 16. Digitális ki-, bemeneti modul. Digitális bemeneti modul

Számítógépek felépítése, alapfogalmak

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

EUROFLEX-33 ESEMÉNY NYOMTATÓ. -felhasználói és telepítői leírás-

ARM processzorok felépítése

INVERSE E1 MULTIPLEXER LAN BRIDGE

ismerd meg! A PC vagyis a személyi számítógép

Átírás:

PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Digitális Rendszerek és Számítógép Architektúrák 8. előadás: Memóriák Előadó: Vörösházi Zsolt

Jegyzetek, segédanyagok: Könyvfejezetek: http://www.virt.vein.hu Oktatás Tantárgyak Digitális Rendszerek és Számítógép Architektúrák (Nappali) (chapter07.pdf + /addtitions/ - további részek, amik a könyvben nem szerepelnek) Fóliák, óravázlatok.ppt (.pdf) Feltöltésük folyamatosan 2

Memóriák, memória rendszerek RAM, ROM memóriák: nagyméretű, lineáris tároló tömb Virtuális memóriakezelés Lapozás Szegmentálás Cache memóriák 3

Mikro-minimalizálás elve: Gordon Moore törvénye (1965): rendkívüli jelentőséggel bír a memóriák és a félvezető áramkörök méretcsökkenése esetén. Tanulmány: félvezető áramkörök fejlődése (prognózis) A technológia fejlődésével minden 18 hónapban az 1 felületegységre (mm² Si) eső tranzisztorok száma közel megduplázódik (integritási sűrűség) Ezzel szemben az eszközök ára csökken, vagy stagnál. Jelenleg (2009. április): 3D rétegszerkezet szilíciumon Működő 45nm csíkszélességű tranzisztor (high K fém dielektrikum, Hafnium) pl: Intel újgenerációs processzoraiban Metal gate (a PolySi ot váltja fel) 4

Intel 45nm High-K technológia Intel Core mikro-architektúra 2-, 4- magos technológia (Core2, Penryn, Xeon) 400-800 millió tranzisztor Gate szivárgási áramának (leakage current) csökkenése Kisebb energia fogyasztás Gyorsabb kapcsolási sebesség 2009-re 32nm technológia, gyártás (~ 2 billió tranzisztor) 5

Moore törvénye Road Map *Die: Si felület egysége (mm²) - megvalósított tranzisztorszám 6

Általános memória modell: Cím / Address log 2 (N) bit W bites adatút (data-path) N elemű (rekeszű) memória tömb Fontos paraméterek: memória mérete (N elemű, rekeszű) címvonalak száma N függvényében: log 2 (N) w: adatvonal szélessége memóriaszervezési módszer sebesség T a : minimális (access time) elérési idő: az a legrövidebb idő, ami a cím kiadásától az adat megjelenéséig tart. T ct : memória (cycle time) ciklus idő: minimális idő két elérés között (burst módban) 7

Memória CPU I/O interfészek kapcsolatának blokkdiagramja: Data Path (adatút) Processzor Memória rendszer I/O interfészek I/O eszközök Data Path 8

Tár-hierarchia: Növekvő elérési idő (T[access)], növekvő méret CPU Registers Cache Main Store Secondary Store (Disk) Extended Store (Tape) Növekvő sebesség (speed), Növekvő költség (cost) Regiszterek: a gyorsabbak, mivel fizikailag is a legközelebb vannak a processzorhoz: kis számú, nagyon gyors regiszterbankot használunk. De nagyon drágák. (ns) Cache memória: a leggyakrabban előforduló adatokat ill. utasításokat tárolja, növeli a műveleti (végrehajtási) sebességet Main Store/Memória: programok (kód) és az adatok itt tárolódnak, együtt vagy külön (Neumann v. Harvard elvű architektúra szerint!). Elegendő mennyiség szükséges az OS (operációs rendszer) zavartalan működéséhez. (ns-os elérési idő) Secondary Store/Disk. háttértárolók, másodlagos-merevlemezes tároló elemek, nagy kapacitásúak. Fájlok, könyvtárak, swap-terület. Hosszabb időre tárolunk. (ms-os elérési idő) Extended Storage/Tape: szalagos, lemezes meghajtók, mágneslemezek. Nagyon lassúak. 9

Memóriafajták elérésük és hozzáférésük szerint: RAM: Random Access Memory: Véletlen hozzáférésű memória, írható és olvasható ROM: Read Only Memory: Csak olvasható memória (véletlen elérésű -RAM tulajdonság) SAM Volatile Memória: Serial Access Memory. Soros elérési idejű, tápfesz. kimaradásakor felejtő ún. elpárolgó tartalmú memória PROM: Programmable ROM: programozható ellenállások/biztosítékok átégetésével ill. átkötésével. vezetékek közötti EPROM: elektromosan programozható fel, de csak UV-fény segítségével (kis kvarc ablakon keresztül) törölhető. EEPROM: elektromosan programozható és törölhető SRAM: Statikus RAM: tápfesz. nélkül elveszti tartalmát, gyors, nem kell frissíteni, de nagy hegyet foglal (min. 6 tranzisztor) DRAM: Dinamikus RAM: tápfesz. alatt is frissíteni kell tartalmát, lassú, de kis helyet foglal RWM: Read/Write Memory: írható/olvasható memória (spec Ram) CAM: Content Address Memory: tartalom (asszociatív memória) Pl :CACHE memória. szerint címezhető memória FLASH: memóriakártyák 10

RAM és ROM memóriák 11

1.) ROM: Read Only Memory Csak egyszer írható (általában a gyártó által), utána már csak olvasható memória. Kikapcsoláskor megőrzik tartalmukat! Szervezése a RAM-hoz hasonló (de itt nem kell Write/Read vonal) Fontos alkalmazásai: Firmware: elektronikai eszközök (pl. számítógép ROM-Bios funkcióinak tárolására) Kód konverter: pl. BCD generáló 7 szegmenses kijelzőre Logikai függvény generátor: tetszőleges logikai fgv. szintézisénél (előállításánál) ROM-ban tároljuk az igazságtáblázatot Programozható ROM fajtái: PROM*: egyszer programozható EPROM*: programozható, és UV-fénnyel törölhető EEPROM*: elektromosan programozható/törölhető (Flash) *Lásd: programozási módok 12

2.) RAM: Random Access Memory Véletlen hozzáférésű, írható és olvasható memória. Címzésnél: dekódoló és multiplexer áramköröket használhatunk Pl. 10 lábbal 1024 (1K) cellát tudunk megcímezni Jelölés: RAM celláinak száma (4096) / tároló kapacitás 4K. Példák: a.) 4K= 1K x 4 RAM tartalmaz: 1024 számú 4 bites szót (word) b.) 4K= 4K x 1 RAM tartalmaz: 4096 számú 1-bites szót (word) (de itt az 1 bit/szó szervezéssel lábszámot spórolunk!) 12+1 b.) Cím 12 bit 0 4095 a.) Cím 10 bit 0 1023 1 bites adatút (data-path) 4096 elemű (rekeszű) memória tömb 4 bites adatút (data-path) 1024 elemű (rekeszű) memória tömb 13

RAM fontosabb időzítési paraméterei T(setup): T(access) elérési ideje a memóriának (valid) érvényes adat megjelenése előtt a címet stabil értéken kell tartani T(hold): T(release): amíg az érvényes adatot (ki)tartja az adatvonalon. Ezután felszabadul a vonal és még bizonyos ideig ismét stabil állapotot kell biztosítani a következő címnek. 14

RAM memória szervezés DRAM-ok esetén az Address (cím) felbontása: nagyméretű, például 1M x 1 bites memória esetén a címet (20 bites) fel kell bontani sor és oszlopcímekre (idő-multiplexált mód) Row address Column address Ezáltal 2D-s elrendezést kaphatunk. SRAM-ok esetén általában csak egy jelet (CS v. CE) használhatunk az adott cella azonosításához (általában nem idő-multiplexál jelek), 1-D szervezés 15

RAM blokk diagram (1-D szervezés) 3 bit address 3 to 8 decoder Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Data path Memória szervezés célja: a nagyméretű (nagyszámú cella) memóriaelem kivezetéseinek (lábak) számának csökkentése! - Dekóder és - Multiplexer áramkörökkel 16

Példa: 8Kx8 1D szervezésű memória 1 RAM cella: 2^16=64k Össz: 512 K w = 8-bites adatbusz N= 16-bites címbusz 17

Memória cellák 2-D szervezése Memory Cell Memory Cell Memory Cell Memory Cell 2 to 4 dekóder Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell Memory Cell 2 bit sor 2 bit oszlop cím 2 to 4 dekóder 18

Példa: 8Kx8 2D szervezésű Mem. 2^16=64k Össz: 512K 19

Példa: 3Mx2 memória 1Mx1 ből felépítve 2. bit/word 1. bit/word Írás: WRITE= T Olvasás: WRITE= F 1M = 20 bites cím (10 bites sor + 10 bites oszlopcím) 2D s szervezés + 3 Bank: BE engedélyező jel (melyik bank kapcsolódik a buszra) 20

Aszinkron memória típusok: - aszinkron SRAM - aszinkron DRAM 21

RAM: SRAM (Statikus) és DRAM (dinamikus) memória cellák felépítése: Word Line V DD Word Line p-mos p-mos Bit Line n-mos n-mos n-mos C n-mos n-mos Bit Line Gnd SRAM: n-mos és p-mos (n és p csatornás tranzisztorokból épül fel) 2-2 db, + 2 db áteresztő tranzisztor (össz. 6 CMOS tranzisztor) Bit Line Gnd DRAM: Tárolás: egy kisméretű kondenzátoron (C), töltése és kisülése. 22

a.) SRAM tulajdonságai Az információ a tápfesz. alatt is megmarad, nem kell frissíteni. Megvalósítható bipoláris (0,1) SRAM cellával, nmos tranzisztorokkal, vagy CMOS tranzisztorokból (6 tranzisztor). Kisebb kapacitású, de gyorsabb a DRAM-nál, mivel tápfeszültség alatt sem kell frissíteni. SRAM esetén a ciklusidők T(R/W Cycle) T(Access Time) közel azonosak. Nagy a fogyasztása. Integritási sűrűsége 4x kisebb. Tápfeszültség kikapcsolásával elveszti a tartalmát. Felhasználása: Cache memóriákban, digitális oszcillátorokban, logikai analizátorokban, operatív tárakban (memória), merevlemezek gyorsító pufferében, nyomtatók memóriájában. 23

Aszinkron Statikus RAM idődiagramjai: Olvasási ciklus Írási ciklus CS: Chip Select SRAM cella kiválasztó R/W: Read-H (olvasás), Read-L (írás: Write) 24

Példa: 64x4-es SRAM felépítése (1-D szervezésű) Feladat: Mekkora lábszámot kell biztosítani az SRAM működéséhez (közös R/W, de különböző data vonalak esetén)? 6+4+4+1(CS)+1(R/W)+ 1(Vdd)+1(Gnd) = 18 Tehát összesen 18 lábra (pin) van szükség! (64 rekesz, 4bit/szó) 6->64 6 Dekóder 64 0 1 2 63 4 Input Buffer Output Buffer 4 Read=1 / Write=0 CS=1 (Chip Select) 25

b.) DRAM tulajdonságai Általában CMOS technológiával készülnek. A tápfeszültség alatt is frissíteni kell 2-10 ms-ként, mivel idővel elvesztik tartalmukat. Kicsi a fogyasztása Nagyobb kapacitású, mint az SRAM, de lassabb (frissítés!) A hozzáférési idő kétszer nagyobb a memória R/W ciklusidejénél: 2*T(R/W Cycle)=T(Access Time). Egyszerűbb felépítésű (1 tranzisztor + kondenzátor), szemben az SRAM-al. Integritási sűrűsége 4x nagyobb. (IRAM: az időzítő elektronika a DRAM-ra van integrálva). Itt lényegében a CS=Chip Select (korábban CE: Chip Enable!) jelet két részre osztották fel: RAS=sorkijelölő, és CAS=oszlopkijelölő komponensekre. Felhasználása: operatív memória (DDR-, DDR-II, DDR3- SDRAM) 26

DRAM frissítése Kb. 2-10ms-ként kell frissíteni, mivel egy kisméretű kondenzátoron tároljuk az információt, melynek feszültsége idővel exponenciálisan csökken, tehát kisül. szimbóluma A frissítéskor például először egyetlen CAS oszlopcímet adunk ki, majd a RAS-al az összes sorcímet, hogy az összes cella frissítésre kerüljön. Frissítés történhet a kiolvasási/beírási ciklus végeztével is (még a következő tranzakció előtt). 27

Aszinkron Dinamikus RAM idődiagramjai: Olvasási ciklus Írási ciklus Címek: sor- és oszlop-azonosítók (RAS-CAS). A sorcím (Row), majd az oszlopcím (Col) megjelenik a címvonalon. Ezután válik elérhetővé a memória (setup time). A memória elérési idejétől (T acc ) függően kis idő múlva az adat érvényessé válik (Valid). A RAS felszabadul (T REL ) a kimeneten az adat visszatér (tri-state állapotba). 28

Példa: 128x128-as DRAM felépítése (2-D szervezésű) Feladat: Mekkora lábszámot kell biztosítani az DRAM működéséhez? Legyen w=16 bites CLK CAS_EN 7-bites oszlopcím regiszter 7 7->128 Dekóder 7+2*w+1(RAS_EN)+ 1(CAS_EN)+1(R/W) + 1(Vdd)+1(Gnd) = 44 Tehát összesen min. 44 lábra (pin) van szükség! (128*128 cella, 16bit/szó) RAS_EN 7 bites sor/oszlop cím 7-bites sorcím regiszter 7 7->128 Dekóder 128 128 DRAM 128x128 w w 29 Adat ki Adat be R/W

Memória interleaving technika Memória rendszer CPU Bank0 Bank1 Bank2 Bank3 Busz rendszer más modulok felé Cél: busz sávszélesség növelése. Nagyméretű memóriák esetén sokszor gyorsabb a memóriabusz sebessége, mint amit a memória ha egyben kezeljük kiszolgálni képes Pl. Nagyméretű memóriamodult 4-bankos szervezéssel kell kialakítani. Memória igénylések egyszerre jutnak el a bankokhoz, míg a válasz a kért adat időszeletekben a CPU-felé. Interleaving: bankok közötti időbeli átlapolódás 30

Aszinkron SRAM blokkdiagramja Ezekhez a részekhez a kapcsolódó segédanyagok: Link: /additions/ 31

Aszinkron SRAM olvasási ciklusa 32

Aszinkron SRAM írási ciklusa 33

Aszinkron SRAM tipikus időzítési paraméterei 34

Aszinkron DRAM blokk diagramja 35

Aszinkron DRAM frissítési idődiagramja 36

Aszinkron DRAM olvasási ciklusa 37

Aszinkron DRAM írási ciklusa 38

Szinkron memória típusok: - Szinkron SRAM (ZBT, NtRAM SSRAM) - Szinkron DRAM (DDR, DDR2 SDRAM) 39

ZBT (NtRAM) SSRAM blokk diagramja /additions/ds_k7n323645m.pdf ZBT: Zero Bus Turnaround = No turnaround 40

ZBT SSRAM olvasási ciklus 41

ZBT SSRAM írási ciklus 42

DDR SDRAM blokk diagramja /additions/512mbddrx4x8x16.pdf 512M = 32M x 16 A0-A12 512x32 BA0_1: Bank Addr (4) A0-A9 2^9 43

44

DDR SDRAM írási ciklus 45

DDR-SDRAM Standard name Memory clock Cycle time I/O Bus clock Data transfers per second Module name Peak transfer rate DDR-200 100 MHz 10 ns 100 MHz 200 Million PC-1600 1600 MB/s DDR-266 133 MHz 7.5 ns 133 MHz 266 Million PC-2100 2100 MB/s DDR-300 150 MHz 6.67 ns 150 MHz 300 Million PC-2400 2400 MB/s DDR-333 166 MHz 6 ns 166 MHz 333 Million PC-2700 2700 MB/s DDR-400 200 MHz 5 ns 200 MHz 400 Million PC-3200 3200 MB/s With 64-bit data at a time: Peak Transfer Rate = transfer rate of (memory bus clock rate) 2 (for dual rate) 64 (number of bits transferred) / 8 (number of bits/byte) 46

DDR-II SDRAM blokk diagram /additions/512mbddr2.pdf 47

DDR-II SDRAM olvasási ciklus 48

DDR-II SDRAM írási ciklus 49

DDR2-SDRAM Standard name Memory clock Cycle time I/O Bus clock Data transfers per second Module name Peak transfer rate DDR2-400 100 MHz 10 ns 200 MHz 400 Million PC2-3200 3200 MB/s DDR2-533 133 MHz 7.5 ns 266 MHz 533 Million PC2-4200 4266 MB/s DDR2-667 166 MHz 6 ns 333 MHz 667 Million PC2-5300 5333 MB/s DDR2-800 200 MHz 5 ns 400 MHz 800 Million PC2-6400 6400 MB/s DDR2-1066 266 MHz 3.75 ns 533 MHz 1066 Million PC2-8500 8533 MB/s With 64-bit data at a time: Peak Transfer Rate = transfer rate of (memory bus clock rate) 2 (for dual rate) 64 (number of bits transferred) / 8 (number of bits/byte) 50

SDRAM-ok összehasonlító táblázata SD DDR DDR-II I/O tápfeszültég V DD 3.3 2.5 1.8 CAS várakozási idő (latency) CL 1-3 2-3 3-5 Órajel ciklus ideje (Clock cycle time) t CK 6ns 5ns 3ns ACTIVE to PRECHARGE parancs t RAS 42ns 40ns 40ns ACTIVE to READ or WRITE késleltetés t RCD 18ns 15ns 12ns ACTIVE to ACTIVE/AUTO REFRESH t RC 60ns 55ns 54ns parancs peridódus ACTIVE Bank(a) to ACTIVE Bank(b) parancs t RRD 12ns 10ns 7.5ns Írás utáni visszaállási idő t WR 12ns 15ns 15ns PRECHARGE parancs periódus t RP 18ns 15ns 12ns REFRESH to REFRESH parancs intervallum t REFC 64ms 73us 105ns- 70us Átlagos, periódikus frissítés ideje t REFI 15us 7.8us 7.8us 51

Virtuális memória kezelés 52

Virtuális memória kezelés Miért van szükség rá? Ha a rendelkezésre álló fizikai memóriaterület kevesebb, mint amit a program(ok) igényelnek, akkor virtuális memóriára van szükségünk. Virtuális memóriakezelés: kapcsolatot teremt a rendelkezésre álló fizikai, ill. a program által igényelt logikai memória megfelelő szervezése között. Feladat: a program által igényelt virtuális cím valós memóriacímre konvertálása. Ezt nevezzük címfordítás-nak. 53

Virtuális memóriakezelés #2 Az OS elrejti a program (felhasználó számára is) a fizikai memóriakorlátot, azzal hogy virtuális memóriát használ. Multi-programming : egyszerre több program futhat, minden programnak saját logikai/bázis címtartománya van, amellyel hivatkozni lehet rá. Fizikai cím = program memóriacíme + program báziscíme Virtuális memóriakezelés két fő típusa: 1.) szegmentálás 2.) lapozás 54

Virtuális Memória Rendszer Program accesses memory with address in program space CPU Fizikai Cím = program cím + bázis cím Program 1 Program 2 Bázis cím Program 1 Bázis cím Program 2 CPU (Regiszterek) (Aritmetikai Egys.) Memória Fő program Szubrutinok Globális adatok Lokális adatok Base address Adder OS állítja be a bázis címet egy regiszterben Program 3 Program 4 Bázis cím Program 3 Bázis cím Program 4 Stack / Verem Program részei: kód / adat (lapokkal) multiprogramozás 55

1.) Szegmentálás mechanizmusa: virtuális memória címzés Szegmens: a program és a memória kevés számú, nagyméretű, és változó méretű logikai egységekre van feldarabolva. A program négy fő szegmense funkciójuk szerint: 0. szegmens: főprogramok (olvasható/végrehajtható), 1. szegmens: szubrutinok, 2. szegmens: csak olvasható adatok, 3. szegmens: olvasható / írható adatok. Az egyes szegmensek között átlapolódás lehetséges! Hátránya: ha sokszor cserélgetjük a szegmenseket, akkor a változó blokkmérete miatt üres helyek, hézagok keletkeznek, ami a memória rossz kihasználásához vezet, mivel a kisméretű üres területekre már nem lehet behívni újabb szegmenset. Ezt nevezzük külső tördelődésnek. 56

Címfordítás szegmentálás esetén FIZIKAI CÍM= Szegmens bázis címe + Szegmensen belüli eltolás (offset) címe A + itt ténylegesen összeadást jelent! HW-es megvalósítás kell az összeadó miatt, és kell egy összehasonlítás, azért hogy nem címeztünk-e ki a szegmens címtartományán kívülre! Hiba esetén megszakítást (interrupt) küld. Szegmenstábla: A szegmenstáblából olvassuk ki a szegmens számát (hexa érték) követően a hozzá tartozó szegmens hosszát, szegmens címet (hexa), továbbá az egyes szegmensek elérési információit: R/W/X: olvasható /írható /végrehajtható. Példa: Logikai cím a virtuális memóriában: 0,154 = 0 szegmens (főprogram) száma, és a szegmens 154 offszetcíme a virtuális memóriában. Legyen a 0.szegmens hexa címe 1310. Ezt kell összeadni a hexa 154-el. 1 3 1 0 + 1 5 4 = 1 4 6 4 (Fizikai Cím) 57

Példa: Szegmentálás mechanizmusa Fizikai címterület 0,0 Virtuális címterület Szegmens 0: Main Program Szegmens 1: Szubrutinok 1168 126C Unused Memory 0,154 0,18C 1,0 1,104 2,0 2,168 3,0 3,2DC Szegmens 1: Szubrutinok Szegmens 2: Read Only Data Szegmens 3: Read/Write Data Szegmens 0: Main Program Szegmens 2: Read Only Data Szegmens 3: Read/Write Data 1310 1464 149C 1534 169C 1838 1A44 Program Szegmens Tábla Segment Length Address Access 0 1 2 3 190 108 16C 210 1310 1168 1534 1838 Read, Execute Read, Execute Read Read, Write 58

Szegmentálás címfordító áramköre Address Bus Address within Segment 4 bit Segment Identifier 4 bit program ID register Programmed I/O Interface to Fill: - Program ID register - Segment Sizes - Segment Addresses 4 bits Addr 4 bits Addr 256 x 32 Memory Segment Sizes Data 4 bits Addr 4 bits Addr 256 x 32 Memory Segment Addresses Data CPAR ADD Memory Data Bus Out of Bounds Real Physical Address Address Data 59

Szegmentálás címfordító áramkör Az áramkör 16 programot tud kezelni, amelyek egyenként 16 szegmensből állnak (16x16=256 location). Az áramkör a címgeneráló és a memória között helyezkedik el. 32 bites címvonalat használ. A szegmenscímet párban generálja: áll egyrészt egy szegmensszámból és egy szegmensen belüli eltolásból (offset). Program futása előtt a CPU betölti a megfelelő szegmenset a memóriába, majd beállítja a szegmens hosszát és címét a két 256x32- es memóriába (az egyik a szegmens méretét, a másik a szegmens címét tárolja). Ezután az OS beállítja a megfelelő mintát a ProgramID regiszterben, és inicializálja/elindítja a programot. A ProgramID egy 4 bites regiszter - a 16 különböző program egyidejű tárolásakor - bizonyos minták alapján kapcsol a programok között. A memóriában a szegmenset a báziscímének és a szegmensen belüli eltolás címének összeadásával kapjuk meg, mindig összehasonlítjuk a szegmensen belüli címet a maximális címmel. Ha túl nagy címet kapunk, akkor egy out of bounds (határon kívül vagyunk) megszakítást küld. 60

2. ) Lapozás mechanizmusa: virtuális memória címzés Lap: a program és a memória is fizikailag sok, kisméretű, egyenlő méretű darabokra van osztva (fizikai határok). A főprogram, szubrutinok, globális adatok, lokális adatok, verem mind-mind egy-egy azonos méretű lapnak felelnek meg a memóriában. A lapozás gazdaságtalan, mert a kis méretű adatot is egy nagy méretű lapba kell tölteni, nem használja ki a rendelkezésre álló lapméretet (belső tördelődés). 61

Címfordítás lapozás esetén Fizikai Cím=Lap Báziscíme + Lap eltolás (offset) címe. A + itt konkatenációt / összefűzést, nem pedig direkt összeadást jelent. Ezáltal sokkal gyorsabb lesz a fizikai cím leképezése, mivel nem kell összeadót használni, a konkatenációt egyszerű huzalozással megoldhatjuk. A hexadecimális címek egy-egy számjegyét 4 bites bináris számmá kódoljuk, és összefűzzük. Példa: Logikai cím a virtuális memóriában: 2,344= 2. lap száma és a lap 344. rekeszcíme a virtuális memóriában. Legyen a 2. lap címe 2C00. Ezt kell összefűzni a 344-el. 2 C 0 0 + 3 4 4 = 2 F 4 4 0010 1100 0000 0000 + 0011 0100 0100 = 0010 1111 0100 0100 (Fizikai Cím) 62

Példa: Lapozás mechanizmusa Physical address space 2,344 0 1 2 3 4 5 6 7 8 9 A B C D E F Virtual address space Main Program Subroutines Read Only Data Read/Write Data 1400 1800 1C00 2000 2400 2800 2C00 3000 3400 3800 3C00 4000 4400 4800 4C00 5000 5400 5800 5C00 6000 6400 6800 2F44 Page Table Page Address Access 0 1 2 3 4 5 6 7 8 9 A B C D E F 2800 1800 2C00 6000 Not in memory 1400 2000 3C00 4000 Not in memory 3400 4400 5400 Not in memory Not in memory Not in memory Read, Execute Read, Execute Read, Execute Read, Execute Read, Execute Read, Execute Read, Execute Read, Execute Read Read Read Read Read, Write Read, Write Read, Write Read, Write 63

Laptábla bejegyzései Az OS minden futó folyamathoz hozzárendel egy laptáblát. A laptáblából olvassuk ki a lap számát (hexa érték), majd a hozzá tartozó lapcímet (hexa), továbbá az egyes lapok hozzáférési információit: R/W/X: olvasható /írható /végrehajtható. A fizikai címet a CPU határozza meg. Mivel a lapok kis egységek, nagy laptábla kell, célszerű őket a memóriában tartani. Itt a lapcímeken az összeadás helyett konkatenációt használunk: időt nyerünk (a fenti lapcímben a legkisebb helyiértékű bitek csupa nullák, azokat nem kell hozzáadni; amikben pedig nem csupa nulla szerepel, azokat egyszerűen egymás után fűzzük). A lapok mérete általában mindig kisebb, mint a szegmensek mérete, ezért a kisebb méretű lapok száma több kell, hogy legyen (pl. 1024) 64

TLB hit, miss TLB (Translation Lookaside Buffer): A leggyakrabban használt lapok (LRU) lapcímfordításhoz szükséges adatait tartalmazó átmeneti cache-tár, amely a processzor és a Cache-memória között helyezkedik el. TLB hit: Lapozásos virtuális tárkezelésnél azaz eset, amikor a virtuális címnek megfelelő lap a főtárban van, és róla bejegyzés található a TLB-ben (jele: h). TLB miss: Lapozásos virtuális tárkezelésnél azaz eset, amikor a virtuális címnek megfelelő lapról nem található bejegyzés a TLBben. (jele: m=1-h). Ez akkor fordul elő, - ha a lap a főtárban van, de nincs bejegyzés a TLB-ben (ez a "tiszta" TLB miss); - ha a lap nincs a főtárban, tehát laphiba keletkezett. 65

Lapozásos címfordító áramkör 66

Lapozásos címfordító áramkör A lapok mérete 512 byte-os, a laptábla 2.048 bejegyzést (lapot) tartalmaz. (Fizikai címet 24-bitesnek tekintjük) A megcímezhető max memória 512x2048= 2^20. (1Mbyte) 20 bit a virtuális címtartomány. A cím lapcímből és lapon belüli eltolási címből tevődik össze. Egy lap 512 (2^9) byteos 9 bitet használunk (ADDRESS (0:8)) a lapon belüli hely azonosítására. További fennmaradó (2048 = 2^11) 11 bitet a megfelelő lap címének azonosítására (ADDRESS (9:19)). A laptábla tehát 2.048x17 nagyságú, 17 bittel címezhető (17 = 15 bit a címzésre + 2 státuszbit). A címfordítás csak 15 bites (=24-9). Az egyik státuszbit jelzi, hogy a lap a főmemóriában található-e (hit), ill. a másik jelzi, hogy a betöltés óta módosult-e a lap (dirty bit). laptábla feltöltése: a vezérlőjelek: CS:ChipSelect, WE: WriteEnable hatására PIO_DATA-n keresztül adatokkal töltjük fel a laptáblát (11 bites) normál mód: A 9 legkisebb helyiértékű címvonalat (ADDR:8:0) kapjuk közvetlenül a címbuszról. Mivel összesen 24 fizikai címvonalunk van a maradék 15 vonal a laptáblából jön. 11 bites címvezetéken keresztül azonosítjuk a megfelelő lap helyét a laptáblában. A laptábla kiválasztja a kívánt lap báziscímét és az OE: Output Enable vezetékre rakja. Konkatenációval megkapjuk a fizikai címet. (A 11 magasabb helyiértékűt a 9 alacsonyabb helyiértékűvel összefűzve) 67

Virtuális (másodlagos) tároló: R VM = Taccess 8ms 133333 T = 60ns = MS T access : virtuális memória elérési ideje (háttértárolón!) [ms] T = T + T + T access Seek Rotational _ Latency Transfer T MS : főtár (Main Store elérési ideje) [ns] Ezen peridódus alatt egy 3 GHz processzor, 1 utasítás/órajel ciklus (IPC=Instruction Per Clock cycle) 3GIPS 8ms = 24 10 6 utasítást hajt végre Arányossági tényező 68

További fontosabb fogalmak: OS szinten kezelendő: Lapcsere stratégiák Trashing (vergődés) Térbeli/Időbeli lokalitás elve 69

Cache memóriák Kapcsolódó segédanyag: cachecoherence2.pdf 70

Cache (gyorsító) tárolók CACHE: kisméretű, de nagy sebességű memória, amely a processzor és a főmemória között helyezkedik el. Célja a műveletek nagysebességű végrehajtásához tárolást biztosítson a processzor felé. Működése hasonlít a virtuális memóriáéhoz, csak az aktuálisan használt adatokat (LRU technika) tárolja. A cache a program (felhasználó) számára rejtett (transparent), nem tudja, hogy használja, csak azt érzékeli, hogy gyorsabb a végrehajtás. Cache típusok elérésük szerint: közvetlen leképezésű (direct mapping) teljesen asszociatív (fully associative) n-utas csoport asszociatív (n-way set assoc.) 71

Cache memória használatával R CA T A_ Mainstore = = = T A_ Cache 60ns 1.5ns 40 3 GHz processzor, 1 Instruction/Clock cycle (IPC) 3GIPS 60ns = 180 utasítás Memória Rendszer Processzor Cache Főtár (Memória) 72

Egy cache tároló legfontosabb jellemzői a következők: a cache-tár mérete, a blokk mérete (az adatcsere a főtár és a cache között mindig blokkos formában történik), egy blokk kikeresésének eljárása a cache tárban, aktualizálási eljárás, amely szerint a processzor által módosított adatot a cache-tárba és a főtárba írjuk, a megfelelő helyettesítési stratégia (replacement policy), amivel eldöntjük, hogy a cache-ben melyik blokkot lehet felülírni, ha új blokkot kell bemásolni, a főtár és a cache-tár adategyezőségének biztosítása (koherencia). Cache hit: Ha processzor olyan adatot igényel, mely a cache-ben megtalálható, akkor találatról, vagy cache hit-ről beszélünk. A találatot a cache-vezérlő azzal állapítja meg, hogy a bemásolt blokkokhoz tartozó címrészek (toldalék, vagy tag ) alapján valamelyik cache blokkban benne van-e a processzor által igényelt adat főtárbeli címe. Jele: h Cache miss: Ha a processzor által igényelt adat nincs meg a cacheben, ezt tévesztésnek vagy cache miss-nek nevezzük. Jele: m=1-h 73

Cache memória további jellemzői T CA : cache memória elérési idő T MS : főtár (main store) elérési ideje h: cache memória hit rate -je T = h T + 1 h T + T ( ) ( ) EFF CA CA MS T = + ( 1 ) EFF TCA h T MS Effektív S T = MS T EFF Speed-up memória elérés 74

Effektív memóriaelérés (T EFF ) 1,6 1,4 1,2 R CA T = T CA MS TEFF/TMS 1 0,8 0,6 0,05 0,1 0,2 0,4 0,4 0,2 0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Hit Rate h 75

Effektív gyorsulás (speed-up) 20 15 R CA T = T CA MS TMS/TEFF 10 0,05 0,1 0,2 0,4 5 0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 Hit Rate h 76

Asszociatív cache típusok közvetlen leképezésű: a központi memória minden egyes blokkja csak egy adott sorban (rögzített / direct sorindex szerint) szerepelhet a cache-ben. Alacsony hit rate teljesen asszociatív: a központi tár bármelyik blokkja a cache-be bárhova betölthető, a blokk címe pedig bekerül a cache toldalék részébe (azonosításhoz). Gyors és Drága hw-t igényel n-utas csoport asszociatív: Olyan cache-tároló, amely több, "n" sorból álló csoportokra van osztva, és az egy csoporthoz tartozó cache-tárolórész önmagában teljesen asszociatív tárolóként működik. Annak megállapítása, hogy egy cache-be írandó blokk melyik csoporthoz tartozik, a közvetlen leképezésű cache-hez hasonlóan, a memóriacímből képzett indexszel kerül meghatározásra (az előző két módszer ötvözete) Valós cache szervezés Megj: blokk alatt a főtár rekeszeinek olyan egymás utáni sorozatát értjük, melynek bemásolása a cache-be egy lépésben megtörténhet. 77

A cache- és főmemória szervezése Processzor kiad egy memória kérést - normál mód 32 KByte Cache 1024 lines 32 Bytes/line 16 MByte Main Store 524,288 lines 32 Bytes/line Processzor Cache Főmemória Adatút itt a processzor sebességével küld és fogad adatot a cache memóriával Adatút - a cache és főtár közötti vonalakon kommunikál, lassabb elérést biztosít! 78

4-utas csoport asszociatív cache 0 Processzor cím T 1 Set ID T 2 Byte ID 32 bites cím: T1+T2 = 19 bit 24 bites cím: T1+T2 = 11 bit Tag tömb Mindegyik (set) csoport 'n' sort és a Tag-jeiket tartalmazza 0 8 bits 5 bits Adat tömb Mindegyik sor (line) 32 byte-os Set ID kiválszt egyet a 256 Tag csoportból Set ID kiválaszt egyet a 256 Adat csoportból 255 255 TAG: - címrész: főtárból bemásolt blokkra vonatkozó címinformációk; - vezérlőrész: a cache-blokk adataira vonatkozó érvényességi információk bitenként kódolva (dirty bitek, empty stb) Byte ID azonosítja a soron belüli helyet 79

Példa: 4-utas csoport asszociatív cache memória Első lépésben a csoportot azonosító, itt 7-bites index alapján a konkrét csoport kerül kiválasztásra. Ezt követően a letárolt 21 bites címek asszociatív azonosításával meghatározásra kerül a címnek megfelelő sor. Ezen belül egy konkrét bájt megcímzése a 32-bites processzorcím alsó 4 bitjével történhet meg. 80

Cache visszaírási (aktualizálási) stratégiák Write-through Adat megváltozásakor mind a cache, mind pedig a főmemória egyszerre aktualizálódik Write-back Az adat csak igény esetén aktualizálódik, frissül a főtárban ( dirty bit használata) 81

Pl: Cache-hierarchia szintek Példa: IBM Power5 Egy nagyméretű cache Nagy asszociativitás szükséges lassú kicsit hit rate Hierarchia típus Inclusive (minden szinten azonos tartalom lehet) Exclusive (kizárólagos) Hierarchia szintek: L1 L2 L3 82

Pl: IBM Power6 (2007. május 22.) 65nm 341mm2 ~790 millió tr. ~100 W 2 mag 2 thread / mag in order L2: 4-4 MByte L3: 32 MByte 83

Multiprocesszoros (SMP) rendszerek különböző memória hierarchiái a.) P 1 Switch P n b.) P 1 P n $ $ First-level $ Main memory Shared cache = közös Main memory Bus based shared memory c.) P 1 P n d.) P 1 P n $ $ $ $ Interconnection network Mem Mem Mem "Dancehall" Mem Interconnection network Distributed memory = elosztott 84

Cache koherencia probléma Osztott memóriahasználat esetén lép fel, amikor a P processzorok saját $ cache memóriával rendelkeznek. Probléma abból adódhat, amikor ugyanazon osztott memória blokk tartalma (u location) megjelenik egy vagy több processzor saját cache memóriájában (read), és pl. történik egy írási tranzakció (egyik processzor módosítja a főmemória tartalmát), a többi processzor pedig még a régi cache-beli tartalommal (másolat) dolgozik, tehát nem aktualizálódnak a cache memóriák értékei. Megoldás: Snooping (busz figyelő protokoll) Invalidation / update protokoll 85

Példa: Cache-koherencia probléma! P u=? 1 P u=? 2 P u=7 3 4 5 3 u:5 $ $ u:5 $ 1 u:5 Mem 2 86

Busz figyelő (snoopy) protokoll P 1 P n Processor $ Bus snoop $ Cache Mem Cache-memory transaction Busz figyelése (snoop): cache koherencia probléma megoldására (lokális cache vezérlő feladata) minden tranzakció (R/W) és tranzakciók sorrendjének figyelése 87

a.) Buszfigyelő (snoopy) protokoll egy Write-through cache esetén PrRd/BusRd PrRd/- V PrWr/BusWr BusWr/- Állapotgráf - sorrendiség PrRd: Processzor olvas PrWr: Processzor ír BusRd: Busz olv. BusWr: Busz ír PrWr/BusWr I Processor- initiated transactions Bus-snooper- initiated transactions Cache blokkok két érvényes állapota: Valid (V), Invalid (I) 88

b.) 3-állapotú (MSI) Write-Back Invalidation protokoll M modified / módosított, érvényes másolat S shared / osztott (nem módosított I invalid / érvénytelen (not present = invalidate) Flush adatot a cache szolgáltatja BusRdX - Read exclusive (kizárólagosan olvasható) PrRd/- PrWr/- M BusRd/Flush PrWr/BusRdX S BusRdX/Flush PrRd/- BusRd/- PrRd/BusRd BusRdX/- PrWr/BusRdX I Invalidate : cache másolat érvénytelenítése 89

Példa: MSI protokoll működése P u=? 1 P u=? 2 P u=7 3 4 5 3 u:5 $ $ u:5 $ 1 u:5 Mem 2 Processor Action State in P 1 State in P 2 State in P 3 Bus Action Data Supplyed By 1 P 1 reads u S - - BusRD Memory 2 P 3 reads u S - S BusRD Memory 3 P 3 writes u I - M BusRDX Memory 4 P 1 reads u S - S BusRD P 3 cache 5 P 2 reads u S S S BusRD Memory 90

c.) 4-állapotú (MESI) Write-Back Invalidation protokoll PrWr/- M PrWr/- BusRd/Flush PrWr/BusRdX E PrRd/- BusRd/Flush BusRdX/Flush PrRd/BusRd(S#) S BusRdX/Flush PrRd/- BusRd/- PrRd/BusRd(S) BusRdX/Flush' M modified / módosított - dirty E exclusive-clean / kizárólagos (csak egyetlen cache tárolja, még nem módosított), S shared / osztott (nem módosított) több CPU is tárolja I invalid / érvénytelen BusRd(S) Busz olvasáskor egy másik cache tárolja az adatot BusRd(S#) Busz olvasáskor nem egy másik cache tárolja az adatot Flush többszörös osztott másolat, így csak az egyik processzornak kell végrehajtania PrWr/BusRdX I 91

Példa: MESI (Dragon) protokoll működése Write Back Update P u=? 1 P u=? 2 P u=7 3 4 5 3 u:5 $ $ u:5 $ 1 u:5 Mem 2 Processor Action State in P 1 State in P 2 State in P 3 Bus Action Data Supplyed By 1 P 1 reads u E - - BusRD Memory 2 P 3 reads u Sc - Sc BusRD Memory 3 P 3 writes u Sc - Sm BusUpd P 3 cache 4 P 1 reads u Sc - Sm null - 5 P 2 reads u Sc Sc Sm BusRD P 3 cache 92