multipleksery, rejestry, pamięci
DESCRIPTION
Multipleksery, Rejestry, Pamięci. Ernest Jamro Kat. Elektroniki AGH. Literatura. Józef Kalisz – Podstawy Elektroniki Cyfrowej Baranowski J. et.al. Układy Elektroniczne cz.3 – Układy i systemy cyfrowe www.wikipedia.org (ang.) http://galaxy.uci.agh.edu.pl/~jamro/tc. Multiplekser. Mux 2:1. - PowerPoint PPT PresentationTRANSCRIPT
Multipleksery, Rejestry, Pamięci
Ernest Jamro
Kat. Elektroniki AGH
Literatura
• Józef Kalisz – Podstawy Elektroniki Cyfrowej
• Baranowski J. et.al. Układy Elektroniczne cz.3 – Układy i systemy cyfrowe
• www.wikipedia.org (ang.)
• http://galaxy.uci.agh.edu.pl/~jamro/tc
Multiplekser
In0
In1
Out
Sel
0
1
11
00
SelwhenIn
SelwhenInOut
Mux 2:1
In0
Out
Sel
0 In1
In2
In3
1 2 3
33
22
11
00
SelwhenIn
SelwhenIn
SelwhenIn
SelwhenIn
Out Mux 4:1
Multiplekser 2:1 na bramkach
In0
In1
Out
Sel
0
1
Sel\In1, In0 00 01 11 10
0 0 1 1 0
1 0 0 1 1
Out= SelIn0 + Sel In1
In0
In1
Sel
Out
Multiplekser na bramkach – postać ogólna
In0
Out
Sel
In1
Inn
In0
In1
Sel
Out
Dekoder kodu binarnego na 1 z n
Inn
In0
In1
Sel1
Out
In2
In3
Sel0
Mux 4:1
Multiplekser na buforach trójstanowych
I n 0
I n 1
S e l
O u t
D e k o d e r k o d u b i n a r n e g o n a 1 z n
I n n
I n
T
O u t
0
1
TwhenHiZ
TwhenInOut
In0
In1
Sel0
Sel1
Out
Możliwa równoczesny stan niskiej impedancji dla dwóch buforów trójstanowych wynikający z czasów propagacji
Aby uniknąć krótkotrwałego zwierania buforów stosuje się krótki czas martwy w którym wszystkie bufory są w stanie wysokiej impedancji. Wymaga to użycia automatu zamiast prostego dekodera kodu binarnego na 1 z n.
Demultiplekser
In
Sel
Out0
Dekoder kodu binarnego na 1 z n
Out1
Outn
In
Sel1
Out0
Sel0
Out1
Out2
Out3
Out0
Sel
In Out1
Outn
Wybieranie 2 wymiarowe
SelY
Dekoder
binar na
1 z n
Mux SelX
Sposób wybierania np. klawiszy, komórek pamięci, itd
Multipleksowanie w czasie
In0
In1
In3
In2 4
4 Dekoder
BCD na kod 7-
segmentowy
Licznik mod 4
Dekoder z kodu
binarego na 1 z 4
7
W układach scalonych z reguły bardziej kosztowne jest dodanie dodatkowego wyprowadzenia niż dodatkowej logiki
Wyświetlacz
7-segmentowy
Tylko jeden wyświetlacz jest aktywny w danej krótkiej chwili czasowej
SIPO (Serial-In Parallel-Out)
SIPO (Clock Enable) – błędne użycie
Przykład taktowania co drugi takt zegara i złego użycia bramki AND na sygnale zegarowym – powstaje wyścig!!!
SIPO (CE - Clock Enable)
PIPO (Parallel-In Parallel-Out)
SISO (Serial-In Serial-Out)
Parallel-In Serial-Out
Przesyłanie danych szeregowo
PISO
Clk
SIPO
Dclk
takt
Sposób 1
Sposób 2
In0
Sel
In1
Inn
Mux
Licznik modulo n
Out0
Dserial Out1
Outn
Sel
Licznik modulo n
Rejestr
Clk
D Mux
Dwukierunkowa transmisja danych po jednym przewodzie
Szeregowe liczenie parzystości
Szeregowe sumowanie
Takt
Składnik A
n-bitowy rejestr przesuwający
C
Składnik B
n-bitowy rejestr przesuwający
C
Ci-1
A Σ SB
CiD Q
C
Suma
n-bitowy rejestr przesuwający
C
Sumator bitów niezerowych
PISO Din
inkrementator
Cin
Rejestr
Akumulator
Rejestr przesuwny w prawo lub lewo
Barrel Shifer (szybkie przesunięcie o dowolną liczbę bitów)
Mnożenie
Dzielenie
Barrel Shifter - wielopoziomowy
In0
Sel0
In1 In2 In3
Sel1
Out3 Out2 Out1 Out0
przesuń 0 lub 1-bit
przesuń 0 lub 2-bity
Każdy z n poziomów przesuwa o 0 lub 2i-bitów (i=0..(n-1)) bitów w ten sposób można przesunąć o dowolną liczbę bitów w zakresie od (0..2n-1)-bitów używając prostych multiplekserów 2:1.
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
VDD
Stan ‘1’ – brak bramki lub
całego tranzystora
Stan ‘0’ – jest bramka
Dekoder k-bitowego
kodu dwójkowego na „1 z 2
k”
Wyjście
A0
A1
Ak-1
Wejście adresowe
Dwuwymiarowe wybieranie komórki pamięci
VDD
Dekoder k-bitowego
kodu dwójkowego na „1 z 2k”
Wiersz A0
A1
Ak-1
VDD VDD
Multiplekser: 1 z 2n-k adresowany (n-k)-bitowowo
Kolumna
Ak
Ak+1
An-1
Wyjście
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)
• Pamięci specjalizowane
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
(technilogia FAMOS)
Swobodna bramka
(floating gate)
Pamięci EEPROMElectrically 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 10 000 - 100 000 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 NANDW strukturze NAND napięcia wszystkich (oprócz jednej) bramek WL0-WL15 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
Pamięci Flash a Interface szeregowy:
•I2C (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 Flash: AT49BV322A• Single Voltage Read/Write Operation: 2.65V to 3.6V
• Access Time – 70 ns
• Sector Erase Architecture
– Sixty-three 32K Word (64K Bytes) Sectors with Individual Write Lockout
– Eight 4K Word (8K Bytes) Sectors with Individual Write Lockout
• Fast Word Program Time – 12 µs
• Fast Sector Erase Time – 300 ms
• Suspend/Resume Feature for Erase and Program
– Supports Reading and Programming from Any Sector by Suspending Erase of a Different Sector
– Supports Reading Any Byte/Word in the Non-suspending Sectors by SuspendingProgramming of Any Other Byte/Word
• Low-power Operation
– 12 mA Active
– 13 µA Standby
• Data Polling, Toggle Bit, Ready/Busy for End of Program Detection
• VPP Pin for Write Protection
• RESET Input for Device Initialization
• Sector Lockdown Support
• 128-bit Protection Register
• Minimum 100,000 Erase Cycles
• Common Flash Interface (CFI)
Przykład odczytu danych
Przykład c.d.
Przykład c.d. -komendy
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
T1
T5
T3
T2
T6
T4
Przerzutnik RS
Schemat Blokowy układ: AS7C4096512k×8bit
Cech pamięci SRAM• AS7C4096 (5V version)
• AS7C34096 (3.3V version)
• Industrial and commercial temperature
• Organization: 524,288 words × 8 bits
• High speed
- 10/12/15/20 ns address access time
- 5/6/7/8 ns output enable access time
• Low power consumption: ACTIVE
- 1375 mW (AS7C4096) / max @ 12 ns
- 468 mW (AS7C34096) / max @ 12 ns
• Low power consumption: STANDBY
- 110 mW (AS7C4096) / max CMOS
- 72 mW (AS7C34096) / max CMOS
• Equal access and cycle times
• Easy memory expansion with CE, OE inputs
• TTL-compatible, three-state I/O
Tablica stanów
Przykładowe przebiegi
Parametry czasowe pamięci
Przykładowe przebiegi
Warunki pomiaru
Łączenie pamięci
CEN OEN WEN
SRAM0 A D7-0
CEN OEN WEN
SRAM1 A D7-0
CEN
OEN
WEN
A
D15-0
D7-0
D15-8
Zwiększenie szerokości magistrali danych (preferowane)
CEN OEN WEN
SRAM0 ADR D7-0
CEN OEN WEN
SRAM1 ADR D7-0
CEN
OEN
WEN
A15-1
D7-0
A0
A0
Zwiększenie szerokości magistrali adresowej
Pamięci wieloportowe
Pamięć
Dwuportowa
Port A Port B
Dwa takie same niezależne interface’y do pamięci – ale ta sama pamięć!
Komórka pamięci wieloportowejPamięć jednoportowa dwuportowa
czteroportowa
Optymalizacja komórki pamięci dwuportowej
Literatura: Area-Efficient Dual-Port Memory Architecture for Multi-Core Processors - Hassan Bajwa and Xinghao Chen
Pamięci SRAM synchroniczne - odczyt
tCHWEX
tOEVCH tOHCEX
tCEVCH tCHCEX
Adres n Adres n + 1 Adres n + 2
tCHCH
tCH
tCL
tCHAXtAVCH
tWEVCH
Hi - Z Hi - Z
tCHQX1
tCHQX2
tCHQV
Dane z komórki o adresie n
CLK
A0 – A16
tCHQZ
CE
OE
WE
Dane wyjściowe
Pamięci SRAM synchroniczne - zapis
tCHWEX
tCEVCH tCHCEX
Adres n Adres n + 1 Adres n + 2
tCHCH
tCH
tCL
tCHAXtAVCH
tWEVCH
CLK
A0 – A16
CE
WE
tCHDX
Dn Dn + 1
tDVCH
Dane
Dynamic RAM
Pierwsze tranzystory-kondensatory
Dzisiejsze kondensatory są budowane w 3 wymiarach aby zmniejszyć rozmiar powierzchni i zwiększyć pojemność C
Pamięci dynamiczne DRAML
inia
ko
lum
ny
(bit
u)
Linia wiersza
CB
CS
W
T
B
Ф1
Ф3
T2
T1
I1 I2
Ф1
Ф2
Ф3
Odczyt 1
Odczyt 0
US1
US0
UB1
UB0
UM
UB
USUM
1
0
Odczyt pamięci DRAM
C
Stan nieistotny
RAS
CAS
Adres
tRCD
tRC
WEH
Hi - ZHi - ZQ
R
tRAC
RAS – Raw Address Strobe
CAS – Column Address Strobe
Zapis pamięci DRAM
R C
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
R C
RAS
CAS
Adres
Hi - ZQ
C C
Pamięć SDRAM Synchronouse DRAM (Single Data Rate)
Parametry czasowetCAS-tRCD-tRP-tRAS przykład: 2.5-3-3-8
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
Komendy SDRAM
Precharge – zakończenie dostępu do danego wiersza oraz ustawienie wzmacniaczy na napięcie progowe
SDRAM –c.d.
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
Szybkość transferu
GDDR5
GDDR5 – inwersja bitów
GDDR – I/OGDDR5 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
Łączenie pamięci
Literatura:
Qimonda GDDR5 – White Paper, www.qimonda.com
First-In First-Out (FIFO)
Wejście: A, B, - ,C, - , D, E
Wyjście: - , A, - , B, - , - , C, - , D , E
Pamięć dwuportowa
Licznik wyjściowy
Licznik wejściowy
We Wy
empty
full
We
Wy Mux
Up/Down Counter
Rejestr przesuwny w prawo
Last-In Last-Out (LIFO)(stos)
Wejście: A, B, - ,C, - , D, E
Wyjście: - , B, - , C, - , - , E, - , D , A
Pamięć dwuportowa
Licznik wyjściowy
Licznik wejściowy
We Wy
We
Rejestr przesuwny w prawo i lewo
Wy
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
Look-Up Table (LUT)
LUT Adres
Dana wyjściowa
Kwadrat:
Adres: 0, 1, 2, 3, 4...
Dana: 0, 1, 4, 9, 16...
Obliczanie histogramu
Adr Din BRAM
Dout
+1
DataIn