Вы находитесь на странице: 1из 46

Memorias y dispositivos programables

Departamento de Tecnologa Electrnica Universidad de Sevilla


Contenidos

1. Concepto y jerarqua de memorias.


2. Principios de las memorias semiconductoras.
3. Memorias de acceso aleatorio (RAM).
4. Memorias de slo lectura (ROM).
5. Expansin de memorias.
6. Tipos especiales de memorias.
7. Dispositivos programables: Arquitectura bsica
de una FPGA.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Concepto y jerarqua de memorias

Departamento de Tecnologa Electrnica Universidad de Sevilla


Concepto de memoria

Una computadora requiere del almacena-miento


permanente de una gran cantidad de datos binarios.

Los sistemas basados en microprocesador necesitan


dispositivos de memoria con objeto de almacenar los
programas y mantener los datos generados durante
el procesamiento.

En informtica, normalmente el trmino memoria


hace referencia a las memorias RAM y ROM. El
trmino almacenamiento hace referencia a los
discos y dems dispositivos externos.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Clasificacin de memorias

Caracterstica Cinta HDD RAM ROM FIFO DVD

Magntica X X

Tecnologa Semiconductor X X X

ptica X

Aleatorio X X
Acceso
Secuencial X X X X

Voltil X X
Volatilidad
No voltil X X X X

Departamento de Tecnologa Electrnica Universidad de Sevilla


Clasificacin de memorias

Velocidad y tiempo de acceso

Velocidad de acceso: Cantidad de bits que se transfieren por


segundo (bits por segundo)

Tiempo de acceso (taccess): Intervalo de tiempo que transcurre


entre la orden de acceso y el acceso al dato.

Ejemplo de acceso de lectura a ROM o RAM:

Direcciones Dir. 1 Dir. 2


Seleccin chip (CS)

Bus Datos Dato 1 Dato 2

taccessCS taccessDirecc

Departamento de Tecnologa Electrnica Universidad de Sevilla


Jerarqua de memorias

Reg.

Cach

Velocidad
y Memoria principal Capacidad
(RAM y ROM)
Coste
Memoria secundaria
(HDD)

Almacenamiento externo

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Principios de las memorias


semiconductoras

Departamento de Tecnologa Electrnica Universidad de Sevilla


Matriz de memoria bsica

Cada elemento de 7 6 5 4 3 2 1 0
0
almacenamiento de una
1
memoria puede almacenar
2
1 bit y se denomina celda. 3
4
Las memorias estn 5
formadas por matrices de 6
celdas. 7
8
Cada fila de esa matriz de 9
memoria se denomina 10
palabra y representa la 11
12
informacin que puede
13
leerse/escribirse en cada
14
acceso a la misma. 15

Departamento de Tecnologa Electrnica Universidad de Sevilla


Unidades de datos binarios

Una palabra de bits puede tener cualquier longitud


aunque por defecto suele considerarse de 16 bits.

En cualquier caso, una palabra de bits puede


descomponerse en las siguientes unidades:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Bit
Nibble
Byte

Departamento de Tecnologa Electrnica Universidad de Sevilla


Direccin y capacidad de las memorias

La posicin de una
n M k palabra en una memoria
A D
(Bus de 2nxk (Bus de datos) se denomina direccin.
direcciones)

7 6 5 4 3 2 1 0
0
La capacidad de una
1
2
memoria es el nmero
3 total de bits que puede
A
(Address 4 almacenar:
Bus) 5
6
7

(Data Bus) k

Departamento de Tecnologa Electrnica Universidad de Sevilla


Operaciones bsicas de las memorias

Al tratarse de dispositivos de almacenamiento, las


memorias cuentan con dos operaciones bsicas:
Escritura (write): permite almacenar una palabra en una
determinada direccin de la memoria.
Lectura (read):permite recuperar la palabra almacenada en
una determinada direccin de la memoria.
Para la implementacin de estas operaciones se
necesitan dos buses:
R W
Bus de direcciones (address bus):
para indicar la direccin
de lectura/escritura.
Bus de datos (data bus): para An-1: A0 M Dk-1: D0
leer/escribir la palabra en s.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Operacin de escritura

Data Bus M(n) 7 6 5 4 3 2 1 0


0
En el ejemplo: 1
01001011 M(101) 2
3
A
(Address 4
Bus) 5 0 1 0 0 1 0 1 1
6
7

0 1 0 0 1 0 1 1
(Data Bus)
Departamento de Tecnologa Electrnica Universidad de Sevilla
Operacin de lectura

D = [M(n)]
7 6 5 4 3 2 1 0
0
En el ejemplo:
1
M(101)= 01001011
2
3
A
(Address 4
Bus) 5 0 1 0 0 1 0 1 1
6
7

0 1 0 0 1 0 1 1
D (Data Bus)
Departamento de Tecnologa Electrnica Universidad de Sevilla
Las memorias RAM y ROM

Las dos principales categoras de memorias


semiconductoras son:
ROM (Read-Only Memory): slo poseen capacidad
de lectura y son no voltiles.
RAM (Random-Access Memory): poseen capacidad
de lectura y escritura y son voltiles.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Memorias de slo lectura (ROM)

Departamento de Tecnologa Electrnica Universidad de Sevilla


Tecnologas de la ROM

TTL y MOS

Con metalizacin

Con fusibles

Departamento de Tecnologa Electrnica Universidad de Sevilla


Familia de memorias ROM

ROM
Read Only Memory

PROM
ROM de mscara
Programmable ROM

EPROM
Erasable PROM

UV EPROM EEPROM
Ultraviolet EPROM Electrically EPROM

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memoria ROM

CS A2 A1 A0 D3 D2 D1 D0
CS: Chip Selection 0 - - - HI HI HI HI
CS
1 0 0 0 0 0 1 1
ROM 1 0 0 1 1 0 0 0
23 x 4
1 0 1 0 1 0 1 0
x A2 D3 1 0 1 1 1 0 1 1
y A1 D2 1 1 0 0 0 1 1 1
z A0 D1 1 1 0 1 0 1 1 0
D0
1 1 1 0 1 1 0 0
1 1 1 1 0 1 0 0

En cada columna se realiza una funcin (cuando


CS=1). P. ej.
D0 = (m0, m3, m4, m5) = (M1, M2, M6, M7)

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memoria ROM

Descripcin de ROM en lenguaje Verilog


CS module rom8x4(
input CS,
input [2:0] A,
output reg [3:0] D
);

always @(CS, A)
A2 2 if (CS)
ROM case (A)
A1 1 0: D = 'h3;
8x4 1: D = 'h8;
A0 0
2: D = 'hA;
3: D = 'hB;
4: D = 'h7;
3 2 1 0 5: D = 'h5;
6: D = 'hC;
default: D = 'h4;
endcase
D3D2D1D0 else
D = 'hZ;

endmodule // rom8x4

Departamento de Tecnologa Electrnica Universidad de Sevilla


Operacin de memoria ROM

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Memorias de acceso aleatorio (RAM)

Departamento de Tecnologa Electrnica Universidad de Sevilla


Familia de memorias RAM

Las dos categoras


D
principales de memorias
RAM son:
S
SRAM (Static RAM):
realizada con flip-flops Q
(ms rpida).
Celda de SRAM

DRAM (Dynamic RAM):


realizada con S
condensadores (ms
econmica). D Q

Celda de DRAM

Departamento de Tecnologa Electrnica Universidad de Sevilla


Descripcin de memoria RAM

Puede tener las lneas de datos unidireccionales


(entradas y salidas separadas) o bidireccionales.

Descripcin de RAM 2n x k con lneas de datos


bidireccionales:

R W
RW M D=
00 MM HI
An-1: A0 M Dk-1: D0
01 M(A) D [D in]
10 MM D = M(A)
11 Prohibido

Departamento de Tecnologa Electrnica Universidad de Sevilla


Diseo de memoria RAM

RAM 2nxk: Estructura interna bsica

R
Control
W

En 0

Transceivers
1

An-1: A0 2 Dk-1: D0
DEC In/
Seleccin

Matriz de
de filas

n : 2n Out

I/O
nxk celdas
celdas
2

2n-1

Departamento de Tecnologa Electrnica Universidad de Sevilla


Descripcin Verilog de RAM

Descripcin de RAM en lenguaje Verilog


CS WE OE
module ram8x4(
input CS,
input WE,
input OE,
input [2:0] A,
A2 2 inout [3:0] D
RAM );
A1 1
8x4
A0 0 reg [3:0] mem [7:0];

always @(CS, WE, A, D)


3 2 1 0 if (CS && WE)
mem[A] = D;

assign D = (CS && !WE && OE) ?


D3D2D1D0 mem[A] : 'hZ;

endmodule // ram8x4

Departamento de Tecnologa Electrnica Universidad de Sevilla


Operacin de memoria RAM

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Expansin de memorias

Departamento de Tecnologa Electrnica Universidad de Sevilla


Expansin de longitud de palabra en memorias
ROM

Conseguir una ROM 23 x 8 con dos ROM 23 x 4


CS

A2 2 2
ROM ROM
A1 1 1
8x4 8x4
A0 0 0

3 2 1 0 3 2 1 0
ROM 8x8

D7D6D5D4 D3D2D1D0

Departamento de Tecnologa Electrnica Universidad de Sevilla


Expansin de longitud de palabra en memorias
RAM

CS WE OE

A2 2 2
RAM RAM
A1 1 1
8x4 8x4
A0 0 0

3 2 1 0 3 2 1 0
RAM 8x8

D7D6D5D4 D3D2D1D0

Departamento de Tecnologa Electrnica Universidad de Sevilla


Expansin de nmero de palabras en memorias
ROM

Conseguir una ROM 24 x 4 con dos ROM 23 x 4


CS

A3
A2 2 2
ROM ROM
A1 1 1
8x4 8x4
A0 0 0

3 2 1 0 3 2 1 0

ROM 16x4

D3D2D1D0
Departamento de Tecnologa Electrnica Universidad de Sevilla
Expansin de nmero de palabras en memorias
RAM

CS WE OE

A3
A2 2 2
RAM RAM
A1 1 1
8x4 8x4
A0 0 0

3 2 1 0 3 2 1 0

RAM 16x4

D3D2D1D0

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Tipos especiales de memorias

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias secuenciales

Memorias LIFO (Last In-First Out)

PUSH PULLo POP


Leer /y extraer
Escribe nuevo dato
Dato ltimo ltimo dato

Fondo TOP
Dato primero(R0)
(D)

PILA VACA: Cuando no se ha escrito ningn dato

PILA LLENA: Cuando estn escritos D datos

PILA OCIOSA: Cuando no hay Pull ni Push

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias LIFO (Last In-First Out)

Push (Escritura): se escribe en la cabecera de la pila


(siguiente posicin libre).
Pull (Lectura): se lee el dato ms nuevo y se libera
la posicin.

Descripcin estructural Descripcin funcional

Din (n) Dout (n)


PULL PUSH RX Dout=
0 0 RX RX Dout=HI
Push R0
0 1 RX R(X+1);R(D-1) 0 Dout=[R0]
Pull R1
1 0 RX R(X-1);R0 Din Dout=HI
...
1 1 Prohibida
R(D-1)

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias FIFO (First In-First Out)

Ej. 64 palabras de 8 bits


Sistema 1: Sistema 2:
el que enva 64 el que recibe
Din 8 Dout
Entrada preparada IR OR Salida preparada
Desplazar entrada SI SO Desplazar salida
Reloj de Sistema 1 Ck 1 Ck2 Reloj de Sistema 2

1 IR activo: 2 Almacenamiento en las 3 OR activo:


Sistema 1 (con Ck1) posiciones vacas ms Sistema 2 (con Ck2)
prximas a la salida
SI activo y, SO activo y,
secuencialmente,
llena secuencialmente,
Din: D, a, t, o, s Dout: D, a, t, o, s
s o t aD

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias de doble puerto

Cuentan con 2 puertos


independientes por lo
CS1 WE1 OE1 CS0 WE0 OE0 que permiten
simultanear:
A12 2 2 Lecturas
A11 1
A10 0 RAM 2 Escrituras
8x4 1 Lectura + 1 Escritura
A02 2 (Doble puerto)
A01 1
A00 0
3 2 1 0 3 2 1 0

D13 D12 D11 D10 D03 D02 D01 D00

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias con bus de direcciones multiplexado

CS WE OE
Se ahorran lneas de
conexin utilizando un bus
ms estrecho que el
A19/A9 9 necesario para suministrar
A18/A8 8 RAM
220x4 la direccin.

A11/A1 1 Son ms lentas ya que
A10/A0 0 hay que suministrar la
3 2 1 0
direccin por partes.
D3D2D1D0

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias NVRAM (Non-Volatile RAM)

Pueden implementarse siguiendo varias


estrategias diferentes:
SRAM + Pila de litio (configuracin BIOS)
SRAM + Batera (videoconsolas porttiles)
RAM + EEPROM: ante un pulso de retencin, el
contenido de la RAM se vuelca en la EEPROM en
paralelo (PDA).

Departamento de Tecnologa Electrnica Universidad de Sevilla


Memorias y dispositivos programables

Arquitectura bsica de una FPGA

Departamento de Tecnologa Electrnica Universidad de Sevilla


Definicin de FPGA

FPGA: (Field-
Programmable Gate
Array) es un dispositivo
programable:
Permite implementar
cualquier circuito
digital.
La nica limitacin es la
cantidad de puertas del
circuito.
El desarrollo se realiza
sobre una placa de
entrenamiento.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Principales fabricantes y modelos de
FPGA

Xilinx:
Spartan
Otros Virtex
Actel
Altera:
Lattice
Arria
Xilinx
Cyclone
Stratix
Altera
Actel:
Igloo
Cuota de mercado
ProASIC
SmartFusion

Departamento de Tecnologa Electrnica Universidad de Sevilla


Recursos internos de una FPGA

En general, una FPGA contiene los siguientes recursos internos:


Recursos lgicos:
o Slices, agrupados en CLB (Configurable Logic Blocks).
o Memoria BRAM (Block RAM).
o Multiplicadores empotrados.
Recursos de interconexin:
o Interconexin programable.
o Bloques de entrada/salida IOB (Input/Output Blocks).
Otros recursos:
o Bferes de reloj.
o Lgica de escaneo de pines (boundary scan logic) normalmente
mediante conexin JTAG (Join Test Action Group).

En las siguientes diapositivas se ilustra la estructura y un Slice


de la Virtex-II de Xilinx.

Departamento de Tecnologa Electrnica Universidad de Sevilla


Estructura general de la FPGA modelo Virtex-II
de Xilinx

BRAM IOB

Interconexin
programable

Multiplicadores
CLB
empotrados

Gestin
reloj

Departamento de Tecnologa Electrnica Universidad de Sevilla


Unidad bsica de programacin: slice

Cada slice incluye


Virtex-II bsicamente:
2 biestables D.
2 bloques de carry.
PR 2 bloques LUT
LUT Carry D (Look-Up Table).
CE Q
Los bloques LUT son
CL
programables
(equivalen a una ROM
16x1) y pueden
PR
LUT Carry D implementar cualquier
CE Q
funcin de 4 variables.
CL

Departamento de Tecnologa Electrnica Universidad de Sevilla


Bibliografa

T. L. Floyd, Fundamentos de Sistemas Digitales, 7


Ed., ISBN 84-205-2994-X, Prentice-Hall, 2002.

S. Daz, M. C. Romero, A. J. Molina, Estructura y


Tecnologa de Computadores. Teora y problemas,
ISBN 978-84-481-7085-1, McGraw-Hill, 2009.

Xilinx University Program, FPGA Design Flow


Workshop, 2009.

C. Baena, M. J. Bellido, A. J. Molina, M. P.


Parra, M. Valencia, Problemas de circuitos y
sistemas digitales, ISBN 84-481-0966-X, McGraw-Hill,
2001.

Departamento de Tecnologa Electrnica Universidad de Sevilla