Technika Cyfrowa i Mikroprocesory Pamięci dr inŝ Krzysztof Kołek Materiały wyłącznie dla potrzeb wykładu Układy cyfrowe oraz mikroprocesory II/III rok RA wydział EAIiE AGH Inne wykorzystanie bez zgody autora zabronione 1 Podział Hierarchia Ogólna charakterystyka Architektura SRAM DRAM SDRAM ROM/EPROM/EEPROM/FLASH Pamięć notatnikowa Pamięć wirtualna Podsumowanie Plan 2 1
Podział Pamięci Biologiczne Półprzewodnikowe Magnetyczne Optyczne RAM ROM Flash SSD HDD FDD Taśma CD DVD Pamięci półprzewodnikowe szybkie, magnetyczne i optyczne pojemne W dalszym ciągu tylko o pamięciach półprzewodnikowych Pamięci półprzewodnikowe uŝywane jako pamięć operacyjna (równieŝ rejestry procesora i pamięć notatnikowa (ang cache)), magnetyczne i optyczne oraz flash jako pamięć masowa Zwykle Ŝaden z typów pamięci samodzielnie nie jest wystarczający i stosuje się jednocześnie: rejestry, cache, RAM, ROM, HDD, streamer, CD/DVD 3 Wzrost szybkości, większa częstotliwość uŝycie, wzrost kosztu / bit Wzrost pojemności Hierarchia pamięci Rejestry wewnątrz procesora (układu programowalnego), bardzo szybkie ale mało pojemne; zawierają dane aktualnie przetwarzane przez procesor (~10 - ~100 bitów) Cache pośredniczy między pamięcią RAM/ROM a rejestrami; zawiera dane w stosunku do których sterownik cache podejrzewa, iŝ będą potrzebne w najbliŝszym czasie (kilkakilkaset kb) RAM/ROM zawierają aktualnie wykonywany program oraz aktualnie przetwarzane dane (~kb - ~MB) DRAM / SDRAM pamięć operacyjna (~MB) Pamięć wirtualna nie jest to fizyczny nowy rodzaj pamięci; fragment pamięci masowej widziana przez procesor jako pamięć RAM (~MB ~GB) Pamięci masowe (FDD, HDD, Flash, CD, DVD) programy i dane aktualnie nie przetwarzane przez procesor (~GB - ~TB) 4 2
Charakterystyka Pojemność liczba bitów (bajtów, słów) Szerokość magistrali danych (1, 2, 4, 8, 16, 32, 64 bity) Czas dostępu (ang access time) czas wymagany do wykonania odczytu, moŝe się znacznie róŝnić od czas zapisu Czas cyklu czas między kolejnymi cyklami zapisu/odczytu Transfer danych (pasmo) FDD 05Mb/s (Mb Mbit), HDD 140Mb/s, CDx32 384Mb/s, DVDx4 432Mb/s, FLASH 160Mb/s, DRAM 1600Mb/s Pamięci o dostępie swobodnym (RAM Random Access Memory), LIFO (Last-In First-Out), FIFO (First-In First-Out), pamięć RAM ma jednakowy czas dostępu do kaŝdej danej, FIFO to pamięć bezadresowa Pamięci stałe, a pamięci ulotne (ang non-volatile / volatile) Pamięć jedno/dwuportowe dwuportowa szczególnie istotna w przypadku pamięci video Asynchroniczne / synchroniczne zmiana adresu i sterowań powoduje zapis lub odczyt / operacje wykonywane zgodnie ze zboczem zegara 5 Pamięci półprzewodnikowe PROM / ROM Programmable Read-Only Memory / Read-Only Memory EPROM Erasable Programmable Read-Only Memory EEPROM Electrically Erasable Programmable Read-Only Memory FLASH RAM Random Access Memory OTP EPROM One Time Programmable EPROM, tańsze od EPROM 6 3
Architektura L0 Słowo 0 A0 L0 Słowo 0 L1 L2 Słowo 1 Słowo 2 A1 A2 Dekoder 1 z N L1 L2 Słowo 1 Słowo 2 LN-1 Słowo N-1 AK-1 LN-1 Słowo N-1 M M Słowo M-bitowe N słów, N linii adresowych Słowo M-bitowe K linii adresowych, max 2^K słów 7 Architektura - tablica A0 L0 M-bitowa komórka A1 A2 AK-1 AK AK+P-1 Dekoder 1 z N Dekoder 1 z O L1 L2 LN-1 LN LN+O-1 Tablica N wierszy O kolumn K bitowych Wybór słowa M-bit 1 z O Kwadratowa organizacja skraca połączenia M N=2^K, O=2^P K linii adresowych, max 2^K słów 8 4
Architektura - hierarchiczna Adres wiersza Adres kolumny Adres bloku M Organizacja logiczna i fizyczna mogą być odmienne 9 RAM Pamięci ulotne tracą zawartość po zaniku zasilania RAM statyczne oraz dynamiczne (SRAM oraz DRAM) RAM: Asynchroniczne Synchroniczne SSRAM SDRAM DDR Double Data Rate podwójna prędkość odczytu QDR Quad Data Rate poczwórna prędkość odczytu DRAM uŝywane typowo jako pamięć operacyjne; w prostych mikroprocesorach pamięć operacyjna typu SRAM SRAM droga, ale nie wymaga odświeŝania; małe pojemności (256kB); szybsza od DRAM stosowana jako cache 10 5
RAM DRAM SDRAM interface synchroniczny; burst read synchronizowany zegarem; kaskadowe dostęp: dekodowanie adresu wiersza, aktywacja wiersza, dekodowanie adresu kolumny, dostęp do komórki na przecięciu wiersza i kolumny FPM DRAM EDO DRAM PC133 SDRAM DDR DRAM dual clock edge QDR dual clock edge, dual port 1T-SRAM Direct RDRAM 11 BL SRAM BL WL VDD T1 T2 T4 T6 T3 T5 6 tranzystorów / 1 bit przerzutnik bistabilny Zapis 0 : T1 i T6 otwarte (bo komórka wybrana), BL\=1, BL=0 => włączenie T5 i zatkanie T4 => włączenie T2 i zatkanie T3 co podtrzymuje stan na bramkach np T4 i T5 Mniejsza pojemność, ale większa szybkość od DRAM prostsze sekwencje sygnałów sterujących 12 6
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM A[015], IO[015], CE,OE, WE BHE/BLE Byte High Enable/Byte Low Enable 13 SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM 14 7
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM Czas dostępu!!! t RC = 8ns min (Read Cycle Time) t AA = 8ns max (Address Access Time) <<<<!!! t OHA = 3ns min (Data Hold From Address Change) 15 SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM t ACE = 8ns max (CE Low To Data Valied) t DOE = 4ns max (OE Low To Data Valied) t HZOE = 4ns max (OE High To High Z) t HZCE = 4ns max (CE High To High Z) 16 8
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM t WC = 8ns min (Write Cycle Time) t SD = 4ns min (Data Set-Up Time To Write End) t HD = 0ns min (Data Hold Time To Write End) t SA = 0ns min (Address Set-Up To Write Start) t SCE = 7ns min (CE Low To Write End) 17 SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM t AW = 6ns min (Address Set-Up To Write End) t PWE = 6ns min (WE Pulse Width) 18 9
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM 128K x 8 A[015] IO[18] IO[916] A16 WE\ OE\ CE\ BHE\ BLE\ 19 SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM 128K x 16 A[015] IO[116] A16 WE\ OE\ CE\ BHE\ BLE\ A[015] IO[116] WE\ OE\ CE\ BHE\ BLE\ 20 10
SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM 256K x 16 A[015] IO[116] IO[116] A[015] WE\ OE\ CE\ BHE\ BLE\ WE\ OE\ CE\ BHE\ BLE\ A[015] IO[116] IO[116] A[015] A17 A16 O0 O1 O2 WE\ OE\ CE\ BHE\ BLE\ WE\ OE\ CE\ BHE\ BLE\ O3 21 SRAM - Cypress CY7C1021BV33 64K x 16 Static RAM 64K x 32 A[015] IO[116] WE\ OE\ CE\ BHE\ BLE\ IO[132] A[015] IO[116] WE\ OE\ CE\ BHE\ BLE\ 22 11
BL DRAM CBL WL Tr Cs Cs jeden dla kaŝdego bitu, CBL jeden dla kaŝdej kolumny Zapis: ładowanie Cs poprzez odblokowanie Tr (linia WL) i wstawienie BL w odpowiedni stan STOPNIOWE ROZŁADOWYWANIE KONDENSATORA Cs Odczyt: otwarcie Tr; układy związane z linią BL (ang sense amplifier) odczytują poziom napięcia, a następnie doładowują kondensator Cs (ustaw BL na Vdd/2, faza redystrybucji ładunku między Cs i CBL, faza detekcji stanu i faza doładowania Cs) OdświeŜanie: to odczyt bez wyprowadzenia danych na zewnątrz; odblokowanie tranzystorów w wierszu (WL) powoduje iŝ układy odczytu stany wszystkich linii BL doładują wszystkie kondensatory w związane z bitami tego wiersza; ukryte odświeŝanie następuję po kaŝdym odczycie Czas dostępu kilkanaście kilkadziesiąt ns Cykl odświeŝania (podanie WSZYSTKICH adresów wierszy, w dowolnej kolejności) 8-64ms 23 Architektura - DRAM RAS CS A0 A1 A2 A9 CAS 10 A d w i e r s z a W0 W1 W2 W9 K0 D Bufor magistrali danych 1024x1024 Adres kolumny K9 OE WE 24 12
10 A RAS CAS OE WE CS D 8 DRAM sygnały we/wy A wejście adresowe MULTIPLEKSOWANE w czasie D we/wy danych RAS\ Row Address Strobe CAS\ Column Address Strobe OE\ Output Enable WE\ Write Enable CS\ Chip Select Narastające zbocze RAS\ zapisuje adres wiersza Narastające zbocze CAS\ zapisuje adres kolumny OE\=H oraz WE\=L D pracuje jako wejście OE\=L oraz WE\=H D pracuje jako wyjście CS\=H układ nie reaguje na sygnały sterujące, a D w stanie wysokiej impedancji; nie zawsze występuje; układ moŝe być nieaktywny np dla OE\=H i WE\=H 25 DRAM cykl odczytu (HITACHI HM5116100) 26 13
DRAM cykl wczesnego zapisu (HITACHI HM5116100) 27 DRAM cykl opóźnionego zapisu (HITACHI HM5116100) 28 14
DRAM cykl odświeŝania (HITACHI HM5116100) 29 DRAM fast page mode - odczyt (HITACHI HM5116100) 30 15
DRAM fast page mode - zapis (HITACHI HM5116100) TU WIDOCZNY ZYSK tylko adresy kolumn przyspieszają dostęp!!! 31 DRAM rozwój DRAM a rozwój procesorów Szybkość CPU i DRAM 1000 CPU 100 10 DRAM 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Powiększająca się róŝnica w szybkościach wymaga sztuczek!!! 32 16
SDRAM Synchronous Dynamic Random Access Memory Pamięć ASYNCHRONICZNA odpowiada najszybciej jak to moŝliwe na zmiany sygnałów sterujących Gdzie zysk dla pracy SYNCHRONICZNEJ? W pamięci synchronicznej pojedynczy sygnał zegarowy taktujący wszystkie operacje na pamięci; sygnały sterujące w takt zegara sterują wewnętrznym automatem FSM, realizującym przychodzące z zewnątrz instrukcje Synchroniczne instrukcje mogą być przetwarzane potokowo (ang pipeline) nowa instrukcja moŝe się pojawić gdy poprzednia się jeszcze nie skończyła!!! tutaj widoczny zysk SDRAM w stosunku do DRAM Wynik instrukcji widoczny jest z pewnym opóźnieniem (ang latency) W przypadku zapisu jest on wykonywany po określonej liczbie cykli zegara względem podania danych do zapisu i wydania komendy zapisu W przypadku odczytu wynik pojawia się określona liczbę cykli zegara po wydaniu rozkazu odczytu 33 SDRAM Wewnętrzna budowa w znacznej części jak DRAM Dostęp do pamięci moŝe odbywać się jak do pamięci DRAM, jednak zyski widoczne podczas transferu pakietowego (ang burst) Podczas takiego transferu przesyła się kilka kolejnych lokacji (2, 4 lub 8), ale podaje adres tylko pierwszej lokacji resztę generuje automatycznie licznik wbudowany w pamięć W trybie burst dla magistrali 333MHz dane pojawiają się co 3ns!!! Pamięć zwykle składa się z kilku banków kaŝdy transfer w trybie burst z innym bankiem taki przeplot (ang interleave) podnosi transfer Pamięć musi przed pracą zostać zaprogramowana posiada specjalny rejestr konfiguracyjny zawierający np informacje o parametrach czasowych Sterownik pamięci moŝe przejąć całkowicie kontrolę nad odświeŝaniem Pamięć realizuje sekwencje rozkazów jest to więc właściwie KOPROCESOR (specjalizowany sterownik wykonujący zadania dla procesora głównego) Pamięć raczej przystosowana do bezpośredniej współpracy ze sterownikiem cache, a nie do bezpośredniej współpracy z procesorem 34 17
SDRAM (NEC mpd45128441) 35 SDRAM (NEC mpd45128441) CLK zegar`taktujący; aktywne zbocze narastające CKE\ bramkowanie zegara; w stanie niskim wprowadza układ w tryb suspend (oszczędzanie do 99% energii) RAS\, CAS\, WE\ do dekodowania komend CS\ - odcina układ od magistral, ale nie przerywa wykonywania komend DQM sterowanie wycinaniem elementów pakietu w trybie burst Ustawienie w stan jedynki logicznej pomija dane do zapisu lub nie wystawia danych odczytywanych A magistrala adresowa, multipleksowana; szerokość zaleŝna od pojemności; częścią sygnały BAx pełniące funkcje selektorów banków DQ magistrala danych 36 18
SDRAM rozkazy (NEC mpd45128441) 37 SDRAM przykład operacji (NEC mpd45128441) 38 19
DDR SDRAM W kaŝdym okresie zegara transfer dwóch porcji danych (Double Data Rate) oba zbocza pracują dwukrotny wzrost transferu Podwójny sygnał zegarowy: CLK oraz CLK\ Dodatkowy dwukierunkowy sygnał DQS; w fazie odczytu sterowany przez pamięć, w fazie zapisu przez kontroler pamięci; określa połoŝenie waŝnych danych na magistrali danych względem zbocza lub środka DQS DDR pracują do częstotliwości zegara 200MHz (dane co 2,5ns) DDR2 pracują do częstotliwości zegara 400MHz (dane co 1,25ns) DDR3 pracują do częstotliwości zegara 500MHz (dane co 1ns) 39 PROM / ROM Pamięć wyłącznie do odczytu programowana jednorazowo (poprzez utworzenie lub przepalenie wewnętrznych połączeń) przez uŝytkownika lub programowana w procesie produkcyjnym Zwykle przechowuje programy startowe (BIOS (ang Basic Input- Output System) aktualnie jest to raczej flash; zawiera procedury startowe oraz procedury dostępu do urządzeń we/wy) lub niezmienne nastawy; dostęp do danych w ROM wolniejszy od dostępu do RAM często system procesorowy kopiuje dane z ROM do pomocniczej pamięci RAM i następnie korzysta tylko z RAM 40 20
EPROM EEPROM kasowany światłem ultrafioletowym, Układ scalony zawiera okienko kwarcowe do kasowania Czas kasowania rzędu minut; rośnie wraz z kolejnymi skasowaniami Liczba skasowań ograniczona rzędu kilkudziesięciu Czas zapisu rzędu milisekund/b Programowanie w dedykowanych programatorach 41 EPROM NMC27C64 (8k x 8) 42 21
EPROM NMC27C64 (8k x 8) Programowanie Odczyt 43 EEPROM RAM Random Access Memory PROM / ROM Programmable Read-Only Memory EPROM Erasable Programmable Read-Only Memory EEPROM Electrically Erasable Programmable Read-Only Memory 44 22
FLASH Floating Gate Transistor a oprócz tej bramki bramka zwykła MoŜliwość kasowania i zapisu wielu komórek jednocześnie Odczyt w czasie jak DRAM (~ns) Zapis skomplikowany; czas jak HDD (~ms) Maksymalna liczba cykli kasowania/zapisu 100 000 1 000 000 I D U GS 45 Cache (pam notatnikowa) Szybka, o niewielkiej pojemności, pamięć do przechowywania najczęściej uŝywanych danych Procesor zwykle dłuŝszy okres czasu operuje w jednym obszarze pamięci 90% odwołań do pamięci w zakresie 16kB Cache ZAWSZE ZAWIERA KOPIĘ danych Zawiera ostatnio uŝywane (najczęściej uŝywane) dane oraz kod programu Podczas odczytu przez procesor: 1 Dane są dostępne w cache wówczas są odczytywane z tej szybkiej pamięci 2 Danych nie ma w cache odczytywana jest wymagana dana, i jest ona wraz kilkoma sąsiednimi bajtami (zwykle 16B) umieszczana w cache (uprzednio zwykle z cache coś trzeba wyrzucić) Podczas zapisu dana zapisywana jest do pamięci głównej, oraz jeŝeli kopia danej jest w cache to tam teŝ wykonywany jest zapis Co w przypadku transferu DMA? 46 23
Cache Pojemność Szybkość Odległość od procesora Cena / bajt CPU L1 L2 L3 Main Memory µp L1 zintegrowane z procesorem, pracuje z zegarem procesora kilka kilkadziesiąt kb, czasami i L2 zintegrowane z procesorem setki kb pojedyncze MB Core i7 ma wewnątrz równieŝ L3 8MB Czas dostępu do L1 lepszy o rząd wielkości od czasu dostępu do pamięci głównej 47 Cache i486 Blok Katalog Dane B2 B1 B0 V 21 bitowy adres zestawu 0 Zestaw 0 B2 B1 B0 V 21 bitowy adres zestawu n Zestaw n B2 B1 B0 V 21 bitowy adres zestawu 127 Zestaw 127 A31 A11 A10 A4 A3 A0 48 24
Cache i486 Pojemność 4 bloki po 2kB (2kB 128 zestawów po 16B) Z zestawem danych związany 21-bitowy adres zestawu w pamięci głównej oraz flaga waŝności danych (V) Podczas dostępu bity A10-A4 lokalizują zestaw; jednocześnie porównywane są bity A31-A11 w odpowiednich zestawach wszystkich bloków to wykrywa czy dane są w pamięci cache; dane są obecne jeŝeli jedno z porównań jest prawdziwe oraz flaga V jest ustawiona to tzw trafienie Bity B2-B0 słuŝą do oznaczenia numeru bloku z najdawniej uŝywanymi danymi dla kaŝdego zestawu; jeŝeli potrzeba zwolnić miejsce usuwany jest zestaw najdawniej uŝywany W przypadku trafienia dane z całego zestawu (128 bitów) transferowane są do procesora; w przypadku braku trafienia inicjowana jest 16-bajtowa transmisja typu burst 49 Pamięć wirtualna MoŜliwość uŝycia pamięci masowej jako rozszerzenia pamięci operacyjnej w sposób niewidoczny dla aplikacji Aplikacja moŝe widzieć ciągły obszar pamięci operacyjnej większy od rozmiaru fizycznej pamięci (lub od rozmiaru aktualnie wolnej pamięci) Realizowana dzięki współdziałaniu mechanizmów procesora i systemu operacyjnego W procesorach Intela realizowane na poziomie segmentu lub strony Pojemność Szybkość Odległość od procesora Cena / bajt CPU Cache Main Memory HDD 50 25
Podsumowanie System determinuje typ uŝywanej pamięci CPU Cache SRAM DRAM / SDRAM HDD Tape Zasoby sieciowe Szybkość Pojemność Czas przechowania danych: FLASH 5 lat, HDD 10 lat, CD/DVD 15 lat I tak najlepszy papier (gliniane sumeryjskie tabliczki?) Wzrost szybkości procesorów wymaga sztuczek w konstrukcji pamięci Nieunikniony wzrost pojemności w przyszłości 51 Literatura Turczyński M, Goczyński R: Koprocesory 80286, 80386 i i486, KOW Help, Warszawa, 1992 Metzger P: Anatomia PC, Helion, Gliwice, 2004 Sacha K: Pamięci półprzewodnikowe RAM, WNT, Warszawa, 1991 Prince B: Nowoczesne pamięci półprzewodnikowe, WNT, 1999 Tietze, Schenk C: Układy półprzewodnikowe, WNT, 2000 Marks P: Pamięci masowe w systemach mikroprocesorowych: Poradnik konstruktora, Wydawnictwo BTC, 2006 52 26