Pamięci Ernest Jamro Kat. Elektroniki AGH. Pamięci - klasyfikacja ROM (Read Only Memory) - nieulotne (non-volatile) –ROM (programowany podczas produkcji.

Slides:



Advertisements
Podobne prezentacje
Taktowanie mikroprocesorów Jednostka sterująca mikroprocesora jest układem sekwencyjnym synchronicznym, czyli wymagającym sygnału taktującego (zegarowego).
Advertisements

Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Ernest Jamro Kat. Elektroniki AGH
Multipleksery, Rejestry, Pamięci
Inżynieria Systemów Programowalnych Część I
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
PAMIĘĆ RAM.
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
System przechowywania danych
by Ernest Jamro Katedra Elektroniki, AGH Kraków
by Ernest Jamro Katedra Elektroniki, AGH Kraków
Najczęściej popełniane błędy w VHDL’u
Pamięci RAM Brodziak Czubak.
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Autorzy: Łukasz Sztandarski Bartłomiej Granat
“Pamieci Komputerowe”
Mikroprocesory i mikrokontrolery
Procesory jednoukładowe
Komputer a system komputerowy
Programowalny układ we-wy szeregowego 8251
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Przerzutniki.
Pamięci półprzewodnikowe
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
Mikrokontrolery PIC.
Magazyny pamięci.
RAM.
Pamięci Operacyjne Pamięć Operacyjna jest to przestrzeń robocza
Magistrale szeregowe.
Cyfrowe układy logiczne
Zasada działania komputera
Pamięci używane w komputerach
Urządzenia techniki komputerowej
Pamięci Bibliografia:
Pamięć operacyjna i pamięci masowe
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
PROCESORY (C) Wiesław Sornat.
Architektura PC.
Wykonał: Marcin Tyburski
OPB - On-chip Peripherial Bus AXI – Advance eXtensible Interface
Pamięć operacyjna.
Pamięci RAM i ROM R. J. Baker, "CMOS Circuit Design, Layout, and Simulation", Wiley-IEEE Press, 2 wyd
Pamięci flash.
Nośniki pamięci zewnętrznej
Architektura systemów komputerowych
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Multipleksery, Rejestry, Pamięci
Pamięć DRAM.
Struktura wewnętrzna mikrokontrolera zamkniętego
Pamięć RAM Pamięć RAM.
Pamięć SRAM.
Logiczne układy bistabilne – przerzutniki.
Multipleksery, Rejestry, Pamięci Ernest Jamro Kat. Elektroniki AGH.
Rejestry przesuwne, Pamięci
Budowa (wewnętrzna) komputera
PAMIĘCI PÓŁPRZEWODNIKOWE
BUDOWA KOMPUTERA.. -płyta główna -procesor -ram-y -dysk twardy -karta graficzna -karta muzyczna -karta sieciowa -wentylator -cd-rom -stacja dyskietek.
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy kombinacyjne.
Pamięć operacyjna i pamięci masowe
PAMIĘĆ RAM.
Rejestry przesuwne, sumatory
Pamięci półprzewodnikowe
Interfejsy synchroniczne
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Budowa komputera..
Zapis prezentacji:

Pamięci Ernest Jamro Kat. Elektroniki AGH

Pamięci - klasyfikacja ROM (Read Only Memory) - nieulotne (non-volatile) –ROM (programowany podczas produkcji układu scalonego) –PROM (programowane jednorazowo u użytkownika) –EPROM (Erasable PROM – możliwa ale uciążliwa wielokrotna programowalność –EEPROM (Electrically Erasable and Programmable ROM) –Flash (błysk-awiczne EEPROM) RAM (Random Access Memory), Ulotne Pamięci specjalizowane

Pamięci ROM Pamięci ROM powstają bezpośrednio w procesie produkcji układu scalonego dlatego mają następujące cechy: Stan pamięci określony na poziomie produkcji układu scalonego Brak możliwości zmiany zawartości pamięci Tanie w produkcji ale wymagają dużych nakładów (wykonania w milionach sztuk – drogie przy małej liczbie sztuk) Długi okres produkcji – kilkanaście tygodni. Pamięci coraz rzadziej stosowane

Schemat pojedynczej komórki ROM

Wybieranie 2 wymiarowe Sposób wybierania np. klawiszy, komórek pamięci, itd

Dwuwymiarowe wybieranie komórki pamięci

Pamięci PROM Programmable Read Only Memory: Programowanie pamięci wykonywane jest przez użytkownika w specjalnym urządzeniu programującym. Programowanie następuje poprzez przepalenie tzw. bezpieczników (ang. fuse) i jest nieodwracalne. Pamięci te są dzisiaj rzadko stosowane

Pamięci EPROM Erasable Programmable ROM Kasowanie pamięci wymaga użycie promieni UV i specjalnego okienka kwarcowego – co zdecydowanie podraża koszt produkcji. Czas kasowania to około 30min. Pamięci dzisiaj raczej nie stosowane

Tranzystor w EPROM Swobodna bramka (floating gate)

Pamięci EEPROM Electrically Erasable Programmable Read-Only Możliwość elektrycznego wielokrotnego kasowania pamięci. Łatwość kasowania, nie potrzeba użycia promieni UV Kasowanie całej pamięci lub pojedynczego sektora Liczba kasowań około razy

Programowanie i kasowanie EEPROM

Pamięć EEPROM Flash Struktura działania podobna do EEPROM. Bardzo szybki proces kasowania (rzędu 1ms) w porównaniu z pamięcią EEPROM (rzędu 15min.). Szybkość pracy pamięci Flash polega głównie na kasowaniu całego bloku na raz a nie jak to ma miejsce w pamięci EEPROM pojedynczych bajtów. Potrzebny tylko 1 tranzystor na 1 bit pamięci

Flash – kasowanie i programowanie

Struktura NOR i NAND pamięci Flash a)Struktura NOR b) NAND

Flash: NOR i NAND W strukturze NAND napięcia wszystkich (oprócz jednej) bramek WL 0 -WL 15 są na tyle wysokie że tranzystory szeregowe zawsze przewodzą. Natomiast napięcie jednej bramki jest takie, że stan pracy tranzystora zależy od zaprogramowania. Cechy struktury NOR: Swobodny odczyt, ale wolny zapis i kasowanie Preferowane jako pamięci o dostępie swobodnym (BIOS, ROM procesora) Cechy struktury NAND Preferowany odczyt całego bloku danych Tańsze w produkcji od NOR (zajmują mniej powierzchni krzemu) Szybszy zapis i kasowanie Liczba kasowań około 10 razy większa niż w przypadku NOR Preferowany dla pamięci masowych (pendrive, karty CF/SD, SSD- Solid State Drive)

Wielopoziomowe pamięci Flash Multiple Level Cell (MLC) Alternatywa: Single Level Cell (SLC)

Pamięci Flash i Interface szeregowy: I 2 C (Inter Integrated Circuit) – 2 przewody (100, 400kHz, 3.4MHz) (Philips) SPI (Serial Peripherial Interface) – 3 przewody (1-50MHz) (Motorola) Microwire – 3 przewody (1-3MHz) (National Semiconductor)

Przykład pamięci ROM w VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity rom is port ( ADDR : in std_logic_vector(5 downto 0); DATA : out std_logic_vector(19 downto 0)); end rom; architecture syn of rom is type rom_type is array (63 downto 0) of std_logic_vector (19 downto 0); signal ROM : rom_type:= (X"0200A", X"00300", X"08101", X"04000", X"08601", X"0233A", X"00300", X"08602", X"02310", X"0203B", X"08300", X"04002", X"08201", X"00500", X"04001", X"02500", X"00340", X"00241", X"04002", X"08300", X"08201", X"00500", X"08101", X"00602", X"04003", X"0241E", X"00301", X"00102", X"02122", X"02021", X"00301", X"00102", X"02222", X"04001", X"00342", X"0232B", X"00900", X"00302", X"00102", X"04002", X"00900", X"08201", X"02023", X"00303", X"02433", X"00301", X"04004", X"00301", X"00102", X"02137", X"02036", X"00301", X"00102", X"02237", X"04004", X"00304", X"04040", X"02500", X"02500", X"02500", X"0030D", X"02341", X"08201", X"0400D"); begin data <= ROM(conv_integer(ADDR)); end syn;

Pamięci ROM (Read Only Memory) RAM (Random Access Memory) Statyczne (SRAM) -Asynchroniczne -Synchroniczne Dynamiczne (DRAM) -Asynchroniczne (historia) - Synchroniczne SDRAM, DDR, DDR2, DDR3, RAM-BUS (RDRAM), XDR-DRAM Specjalizowane FIFO (First-In First-Out) LIFO (Last-In First-Out – stos) CAM (Content-Addressable Memory) LUT (Look-Up Table) (pamięć ROM/RAM)

Podstawowa komórka pamięci SRAM Przerzutnik bistabilny – dwa inwertery Przerzutnik RS – przejście w inny stan poprzez zwarcie Linia wiersza Linia kolumny (bit B) Linia kolumny (bit B) U’ DD T1T1 T5T5 T3T3 T2T2 T6T6 T4T4 Przerzutnik RS

Alternatywna (już nie stosowana) postać komórki SRAM Linia wiersza Linia kolumny (bit B) Linia kolumny (bit B) U’ DD T1T1 RDRD T3T3 T2T2 RDRD T4T4

Synchroniczny zapis, asynchroniczny odczyt

Dwukierunkowa transmisja danych po jednym przewodzie

Schemat Blokowy układ: AS7C k×8bit

Tablica prawdy

Przykładowe przebiegi

Parametry czasowe pamięci

Przykładowe przebiegi (zapis)

Przykład zapisu i odczytu pamięci

Zerowanie pamięci „0” Licznik n –bitowy Clk DIN RAM 2 n x1 WE O A[n:0] wejście taktujące Brak resetu umożliwiającego zerowanie całej pamięci – konieczne jest zerowanie wszystkich komórek po kolei

Łączenie Pamięci, pamięć duża 128x1 z 4 pamięci 32x1 Użycie multipleksera A[6:0] A[4:0] A[6:5] dekoder 2-na-4 A0:A4 D WE D D D D Bloki pamięci RAM32x1 O O O O Multiplekser O D0 D1 D2 D3 S[1:0] E WE

Łączenie pamięci Zwiększenie szerokości magistrali danych (preferowane) Zwiększenie szerokości magistrali adresowej

Pamięci synchroniczne SRAM - odczyt t CHWEX t OEVCH t OHCEX t CEVCH t CHCEX Adres n Adres n + 1Adres n + 2 t CHCH t CH t CL t CHAX t AVCH t WEVCH Hi - Z t CHQX1 t CHQX2 t CHQV Dane z komórki o adresie n+1 CLK A 0 – A 16 t CHQZ CE OE WE Dane wyjściowe Dane z komórki o adresie n

Synchroniczny zapis, asynchroniczny odczyt

Synch. zapis / asynch. odczyt - VHDL process ( ) begin if ( 'event and = '1') then if ( = '1') then (conv_integer( )) ; end if; end process; (conv_integer( ));

Pamięci synchroniczne SRAM - zapis t CHWEX t CEVCH t CHCEX Adres n Adres n + 1Adres n + 2 t CHCH t CH t CL t CHAX t AVCH t WEVCH CLK A 0 – A 16 CE WE t CHDX DnDn D n + 1 t DVCH Dane

Niezależne magistrale danych do zapisu i odczytu Read before Write lub Write Before Read SSRAM, opóźnienie - 1 clk

SSRAM - Zapis i odczyt jedna magistrala danych

Pamięć - VHDL library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity rams_01 is port (CLK : in std_logic; WE : in std_logic; ADDR : in std_logic_vector(9 downto 0); DI : in std_logic_vector(15 downto 0); DO : out std_logic_vector(15 downto 0)); end rams_01; architecture syn of rams_01 is type ram_type is array (1023 downto 0) of std_logic_vector (15 downto 0); signal RAM: ram_type; signal ADDR_Q: std_logic_vector(9 downto 0); -- write before read begin process (CLK) begin if CLK'event and CLK = '1' then if WE = '1' then RAM(conv_integer(ADDR)) <= DI; end if; DO <= RAM(conv_integer(ADDR)) ; -- read before write ADDR_Q<= ADDR; -- write before read end if; end process; DO <= RAM(conv_integer(ADDR_Q)) ; -- write before read end syn;

Synchroniczny zapis, asynchroniczny odczyt

Pamięci wieloportowe Dwa takie same niezależne interface’y do pamięci – ale ta sama pamięć!

Pamięć quasi dwuportowa? Jeden port do zapisu synchronicznego, dwa porty do odczytu asynchronicznego

1 port zapis, 2 porty odczyt - VHDL process ( ) begin if ( 'event and = '1') then if ( = '1') then (conv_integer( )) ; end if; end process; (conv_integer( ));

Konflikty w pamięci dwuportowej Zapis na dwóch portach pod ten sam adres – konflikt (stan nieokreślony) – Adr= A2

Komórka pamięci wieloportowej Pamięć jednoportowadwuportowa czteroportowa

Optymalizacja komórki pamięci dwuportowej Literatura: Area-Efficient Dual-Port Memory Architecture for Multi-Core Processors - Hassan Bajwa and Xinghao Chen

Dynamic RAM Pierwsze tranzystory- kondensatory Dzisiejsze kondensatory są budowane w 3 wymiarach aby zmniejszyć rozmiar powierzchni i zwiększyć pojemność C

Pamięci dynamiczne DRAM Linia kolumny (bitu) Linia wiersza C pasożyt. C Store W T B Ф1Ф1 Ф3Ф3 T2T2 T1T1 I1I1 I2I2 Ф1Ф1 Ф2Ф2 Ф3Ф3 Odczyt 1 Odczyt 0 U S1 U S0 U B1 U B0 UMUM UBUB USUS UMUM 1 0

Odczyt pamięci DRAM C Stan nieistotny RAS CAS Adres t RCD t RC WE H Hi - Z Q R t RAC RAS – Row Address Strobe CAS – Column Address Strobe

Zapis pamięci DRAM RC RAS CAS Adres WE D

Odświeżanie RAS Adres CAS R Odświeża się cały wiersz podczas pojedynczego odczytu CAS before RAS Jeśli /CAS jest ustawiany w stan niski (aktywny) prezzd sygnałem /RAS to pamięć DRAM ignoruje adres podany na magistrali adresowej i używa swojego wewnętrznego licznika odświeżeń aby odświeżyć kolejny wiersz

Fast Page Mode RC RAS CAS Adres Hi - Z Q CC

Pamięć SDRAM Synchronouse DRAM (Single Data Rate) t CAS

Parametry czasowe tCAS-tRCD-tRP-tRAS przykład: CL = CAS Latency time: The time it takes between a command having been sent to the memory and when it begins to reply to it. It is the time it takes between the processor asking for some data from the memory and it returning it. TRCD = DRAM RAS# to CAS# Delay: The number of clock cycles performed between activating the Row Access Strobe and the Column Access Strobe. This parameter relates to the time it takes to access stored data. TRP = DRAM RAS# Precharge: The amount of time between the 'precharge' command and the 'active' command. The precharge command closes memory that was accessed and the active command signifies that a new read/write cycle can begin. TRAS = Active to Precharge delay: The total time that will elapse between an active state and precharge state. This is the sum of the previous timings: CL + TRCD + TRP

SDRAM

SDRAM – różne banki

DDR SDRAM- Double Date Rate Transfer danych następuje 2 razy na takt zegara – na narastające i opadające zbocze Komendy akceptowane są co takt zegara (w pierwszym przybliżeniu) i są podobne jak dla sdram Obniżono napięcie zasilania z 3.3V (sdr sdram) na 2.5V (DDR) Szybkość transmisji: 2(ddr) * 8 (bajtów) *f

DDR2 Transfer danych na narastającym i opadającym zboczu (błędem jest twierdzenie że 4 razy na takt zegara) Częstotliwość wewnętrzna pamięci 2 razy mniejsza od częstotliwości magistrali zewnętrznej – dlatego podczas jednego odczytu z pamięci wewnętrznej odczytywane są 4 bity, które są kolejno transferowane pojedynczo Obniżone napięci zasilania na 1.8V Aby osiągnąć wyższą wydajność od pamięci DDR pamięci DDR2 są taktowane wyższą częstotliwością Pamięci te mają większe opóźnienie (latency), np. Dla DDR typowe to 2 do 3, dla DDR2 typowe to 4 do 6 taktów zegara – opóźnienie to jest częściowo rekompensowane większą częstotliwością taktowania

DDR3 Częstotliwość wewnętrzna pamięci 4 razy mniejsza od częstotliwości zewnętrznej – dlatego podczas jednego odczytu wewnętrznego czytanych jest 8 bitów, które z kolei są transmitowane pojedynczo w 4 taktach zegara Zwiększono częstotliwość taktowania Zwiększono opóźnienie (latency) Zmniejszono napięcie zasilania do 1.5V

Dual-Channel Memory Zwiększona szerokość magistrali danych z 64-bitów do 128-bitów

First-In First-Out (FIFO) Wejście: A, B, -,C, -, D, E Wyjście: -, A, -, B, -, -, C, -, D, E empty full

Last-In First-Out (LIFO) (stos) Wejście: A, B, -,C, -, D, E Wyjście: -, B, -, C, -, -, E, -, D, A ZapisOdczytLicznik (Q n+1 ) 00Q n 10Q n +1 01Q n -1 11Q n

Bufor opóźniający na rejestrze przesuwnym

Bufor opóźniający na pamięci

Content-addressable memory (CAM) Podajemy wartość danej a pamięć CAM zwraca adres (lub adresy) pod którymi znajduje się podane dana W konsekwencji należy przeszukać całą pamięć aby otrzymać adres pod którym znajduje się podana dana Przykład pamięci: Adres: Dana: Dana: 4, wynik: 1; Dana 3, wynik: 2, (6, 7)

Look-Up Table (LUT) Kwadrat: Adres: 0, 1, 2, 3, 4... Dana: 0, 1, 4, 9, 16...

Obliczanie histogramu

Zadania lab na Zaprojektować układ zapełniający po kolei wszystkie komórki pamięci kolejnymi wartościami używając a) pamięci RAM16x?S, b) RAMB16_?S 2. Z pamięci o szerokości danych N-bitowej skonstruować pamięć o większej szerokości magistrali danych 2N-bitowej, 4N-bitowej (uŜywając pamięci a) RAM16x?S, b) RAMB16_S?). 3. Z pamięci o mniejszej pojemności zaprojektuj pamięci o a) 2, b) 4 razy większej pojemności, przy tej samej szerokości magistrali danych (używając pamięci a) RAM16x?S, b) RAMB16_S?). 4. Zaprojektuj układ zapisujący (i później odczytujący) konkretną wartość pod konkretną lokację adresową (używając pamięci a) RAM16x?S, b) RAMB16_S?). 5. Używając pamięci dwuportowej RAMB16_S?_S? zaprojektuj układ zapisujący (i później odczytujący) konkretną wartość pod konkretną lokację adresową na dwóch portach. Zaobserwuj co się stanie w przypadku zapisu i odczytu spod tego samego adresu równocześnie na dwóch portach.

Interface DDR

Ważne okno czasowe

Literatura: Qimonda GDDR5 – White Paper,

Szybkość transferu

GDDR5

GDDR5 – inwersja bitów

GDDR – I/O GDDR5 SGRAMs offer several features that let the controller perfectly adapt the device’s input and output characteristics to the actual system impedance and thus improve the data eye for a reliable data transmission. Auto calibration for process, voltage and temperature drift compensation Software controlled adjustable drive strengths Software controlled adjustable data, address and command termination impedances Software controlled adjustable data input reference voltage