Multipleksery, Rejestry, Pamięci

83
Multipleksery, Rejestry, Pamięci Ernest Jamro Kat. Elektroniki AGH

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 Presentation

Transcript of Multipleksery, Rejestry, Pamięci

Page 1: Multipleksery, Rejestry,  Pamięci

Multipleksery, Rejestry, Pamięci

Ernest Jamro

Kat. Elektroniki AGH

Page 2: Multipleksery, Rejestry,  Pamięci

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

Page 3: Multipleksery, Rejestry,  Pamięci

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

Page 4: Multipleksery, Rejestry,  Pamięci

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

Page 5: Multipleksery, Rejestry,  Pamięci

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

Page 6: Multipleksery, Rejestry,  Pamięci

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.

Page 7: Multipleksery, Rejestry,  Pamięci

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

Page 8: Multipleksery, Rejestry,  Pamięci

Wybieranie 2 wymiarowe

SelY

Dekoder

binar na

1 z n

Mux SelX

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

Page 9: Multipleksery, Rejestry,  Pamięci

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

Page 10: Multipleksery, Rejestry,  Pamięci

SIPO (Serial-In Parallel-Out)

Page 11: Multipleksery, Rejestry,  Pamięci

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!!!

Page 12: Multipleksery, Rejestry,  Pamięci

SIPO (CE - Clock Enable)

Page 13: Multipleksery, Rejestry,  Pamięci

PIPO (Parallel-In Parallel-Out)

Page 14: Multipleksery, Rejestry,  Pamięci

SISO (Serial-In Serial-Out)

Page 15: Multipleksery, Rejestry,  Pamięci

Parallel-In Serial-Out

Page 16: Multipleksery, Rejestry,  Pamięci

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

Page 17: Multipleksery, Rejestry,  Pamięci

Dwukierunkowa transmisja danych po jednym przewodzie

Page 18: Multipleksery, Rejestry,  Pamięci

Szeregowe liczenie parzystości

Page 19: Multipleksery, Rejestry,  Pamię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

Page 20: Multipleksery, Rejestry,  Pamięci

Sumator bitów niezerowych

PISO Din

inkrementator

Cin

Rejestr

Akumulator

Page 21: Multipleksery, Rejestry,  Pamięci

Rejestr przesuwny w prawo lub lewo

Page 22: Multipleksery, Rejestry,  Pamięci

Barrel Shifer (szybkie przesunięcie o dowolną liczbę bitów)

Mnożenie

Dzielenie

Page 23: Multipleksery, Rejestry,  Pamięci

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.

Page 24: Multipleksery, Rejestry,  Pamięci

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

Page 25: Multipleksery, Rejestry,  Pamięci

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

Page 26: Multipleksery, Rejestry,  Pamięci

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

Page 27: Multipleksery, Rejestry,  Pamięci

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

Page 28: Multipleksery, Rejestry,  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

Page 29: Multipleksery, Rejestry,  Pamięci

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

Page 30: Multipleksery, Rejestry,  Pamięci

Tranzystor w EPROM

(technilogia FAMOS)

Swobodna bramka

(floating gate)

Page 31: Multipleksery, Rejestry,  Pamięci

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

Page 32: Multipleksery, Rejestry,  Pamięci

Programowanie i kasowanie EEPROM

Page 33: Multipleksery, Rejestry,  Pamięci

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

Page 34: Multipleksery, Rejestry,  Pamięci

Flash – kasowanie i programowanie

Page 35: Multipleksery, Rejestry,  Pamięci

Struktura NOR i NAND pamięci Flash

a) Struktura NOR

b) NAND

Page 36: Multipleksery, Rejestry,  Pamięci

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)

Page 37: Multipleksery, Rejestry,  Pamięci

Wielopoziomowe pamięci Flash

Page 38: Multipleksery, Rejestry,  Pamięci

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)

Page 39: Multipleksery, Rejestry,  Pamięci

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)

Page 40: Multipleksery, Rejestry,  Pamięci

Przykład odczytu danych

Page 41: Multipleksery, Rejestry,  Pamięci

Przykład c.d.

Page 42: Multipleksery, Rejestry,  Pamięci

Przykład c.d. -komendy

Page 43: Multipleksery, Rejestry,  Pamięci

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)

Page 44: Multipleksery, Rejestry,  Pamięci

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

Page 45: Multipleksery, Rejestry,  Pamięci

Schemat Blokowy układ: AS7C4096512k×8bit

Page 46: Multipleksery, Rejestry,  Pamięci

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

Page 47: Multipleksery, Rejestry,  Pamięci

Tablica stanów

Page 48: Multipleksery, Rejestry,  Pamięci

Przykładowe przebiegi

Page 49: Multipleksery, Rejestry,  Pamięci

Parametry czasowe pamięci

Page 50: Multipleksery, Rejestry,  Pamięci

Przykładowe przebiegi

Page 51: Multipleksery, Rejestry,  Pamięci

Warunki pomiaru

Page 52: Multipleksery, Rejestry,  Pamięci

Łą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

Page 53: Multipleksery, Rejestry,  Pamięci

Pamięci wieloportowe

Pamięć

Dwuportowa

Port A Port B

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

Page 54: Multipleksery, Rejestry,  Pamięci

Komórka pamięci wieloportowejPamięć jednoportowa dwuportowa

czteroportowa

Page 55: Multipleksery, Rejestry,  Pamięci

Optymalizacja komórki pamięci dwuportowej

Literatura: Area-Efficient Dual-Port Memory Architecture for Multi-Core Processors - Hassan Bajwa and Xinghao Chen

Page 56: Multipleksery, Rejestry,  Pamięci

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

Page 57: Multipleksery, Rejestry,  Pamięci

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

Page 58: Multipleksery, Rejestry,  Pamięci

Dynamic RAM

Pierwsze tranzystory-kondensatory

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

Page 59: Multipleksery, Rejestry,  Pamięci

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

Page 60: Multipleksery, Rejestry,  Pamięci

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

Page 61: Multipleksery, Rejestry,  Pamięci

Zapis pamięci DRAM

R C

RAS

CAS

Adres

WE

D

Page 62: Multipleksery, Rejestry,  Pamięci

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

Page 63: Multipleksery, Rejestry,  Pamięci

Fast Page Mode

R C

RAS

CAS

Adres

Hi - ZQ

C C

Page 64: Multipleksery, Rejestry,  Pamięci

Pamięć SDRAM Synchronouse DRAM (Single Data Rate)

Page 65: Multipleksery, Rejestry,  Pamięci

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

Page 66: Multipleksery, Rejestry,  Pamięci

Komendy SDRAM

Precharge – zakończenie dostępu do danego wiersza oraz ustawienie wzmacniaczy na napięcie progowe

Page 67: Multipleksery, Rejestry,  Pamięci

SDRAM –c.d.

Page 68: Multipleksery, Rejestry,  Pamięci

SDRAM – różne banki

Page 69: Multipleksery, Rejestry,  Pamięci

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

Page 70: Multipleksery, Rejestry,  Pamięci

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

Page 71: Multipleksery, Rejestry,  Pamięci

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

Page 72: Multipleksery, Rejestry,  Pamięci

Dual-Channel Memory

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

Page 73: Multipleksery, Rejestry,  Pamięci
Page 74: Multipleksery, Rejestry,  Pamięci

Szybkość transferu

Page 75: Multipleksery, Rejestry,  Pamięci

GDDR5

Page 76: Multipleksery, Rejestry,  Pamięci

GDDR5 – inwersja bitów

Page 77: Multipleksery, Rejestry,  Pamięci

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

Page 78: Multipleksery, Rejestry,  Pamięci

Łączenie pamięci

Literatura:

Qimonda GDDR5 – White Paper, www.qimonda.com

Page 79: Multipleksery, Rejestry,  Pamięci

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

Page 80: Multipleksery, Rejestry,  Pamięci

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

Page 81: Multipleksery, Rejestry,  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

Page 82: Multipleksery, Rejestry,  Pamięci

Look-Up Table (LUT)

LUT Adres

Dana wyjściowa

Kwadrat:

Adres: 0, 1, 2, 3, 4...

Dana: 0, 1, 4, 9, 16...

Page 83: Multipleksery, Rejestry,  Pamięci

Obliczanie histogramu

Adr Din BRAM

Dout

+1

DataIn