Multipleksery, Rejestry, Pamięci

Post on 13-Jan-2016

71 views 2 download

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

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