diseño avanzado de sistem as digitale s - … · 4.1.3 la celda de memoria 43 ... sistemas...
TRANSCRIPT
Diseño
A
o avan
Alberto Agui
nzado
Sadot Ale
ilera 25. 280
www
o de s
exandres F
015 Madrid
.upcomi
sistem
Fernández
d. Tel +34 9
llas.es
mas di
z
91 542 28 0
igitale
00.
es
Diseño avanzado de sistemas digitales
Julio 2014 i
ÍNDICE
1. INTRODUCCIÓN A LAS TECNOLOGÍAS DIGITALES 1
1.1 TECNOLOGÍAS MICROELECTRÓNICAS 1 1.1.1 Tecnologías Bipolar y MOS 5
1.2 METODOLOGÍAS DE DISEÑO DE SISTEMAS 6 1.2.1 Herramientas para el diseño de sistemas de altas prestaciones 6 1.2.2 Diseño para test de sistemas digitales 6
1.3 EJERCICIOS 6
2. RUTA DE DATOS Y SUBSISTEMAS ARITMÉTICOS 7
2.1 DISEÑO Y PLANIFICACIÓN DE UN SISTEMA DIGITAL 7 2.1.1 La interconexión de bloques 7
2.2 SUBSISTEMAS ARITMÉTICOS 8 2.2.1 Sumadores binarios 8 2.2.2 Sumador Carry‐Bypass 9 2.2.3 Sumador Paralelo (Carry Look‐ahead) 10 2.2.4 Multiplicadores binarios 11 2.2.5 Multiplicador Carry‐Save 13 2.2.6 Arboles de Wallace 14 2.2.7 Algoritmo de Booth 15 2.2.8 Divisores 16 2.2.9 Desplazadores (Barrel Shifters) 19
2.3 EJERCICIOS 21
3. SUBSISTEMAS SECUENCIALES 24
3.1 DISEÑO SÍNCRONO DE SISTEMAS DIGITALES 24 3.2 METAESTABILIDAD Y SINCRONIZACIÓN 28 3.3 RELOJ Y SKEW 31 3.4 RESET Y PRESET 35 3.5 EJERCICIOS 38
4. SUBSISTEMAS BASADOS EN MEMORIAS 39
4.1 INTRODUCCIÓN A MEMORIAS INTEGRADAS 39 4.1.1 Clasificación de memorias semiconductoras 40 4.1.2 Arquitectura interna y temporización 41 4.1.3 La celda de memoria 43 4.1.4 Diseño con memorias 45
4.2 INTEGRACIÓN CON MICROPROCESADORES 50 4.3 MEMORIAS ESPECÍFICAS 50
4.3.1 Memorias multipuerto. FIFO 50 4.3.2 Memorias cache 51
4.4 EJERCICIOS 58
5. DISEÑO SEGMENTADO 61
5.1 INTRODUCCIÓN AL PIPELINE 62 5.1.1 Diseño segmentado 63 5.1.2 Características principales 65 5.1.3 Diseño pipeline 66
5.2 REDUCED INSTRUCTION SET COMPUTER: RISC 72 5.2.1 Introducción a RISC 72 5.2.2 Diseño superescalar 75 5.2.3 Diseño vectorial 75
5.3 EJERCICIOS 75
6. DISEÑO ORIENTADO A TELECOMUNICACIONES 77
Sistemas digitales avanzados
ii Julio 2014
6.1 INTRODUCCIÓN AL DISEÑO PARA COMUNICACIONES 77 6.1.1 Comunicaciones digitales 77 6.1.2 Diseño de interfaces 77
6.2 INTERFACES CON DISPOSITIVOS 77 6.2.1 Las comunicaciones RS232 77 6.2.2 Las comunicaciones RS485 77 6.2.3 Las comunicaciones SPI 77 6.2.4 Las comunicaciones I2C 79
6.3 EJERCICIOS 83
7. BIBLIOGRAFÍA 84
Diseño avanzado de sistemas digitales
Julio 2014 1
1. Introducción a las tecnologías digitales
Este capítulo y el libro en su conjunto, está enfocado a una introducción de la tecnología digital y su impacto en los sistemas digitales complejos. El texto hace un puente entre el diseño digital básico y su aproximación al diseño de sistemas de complejidad media‐alta. Se expone la microelectrónica como motor de estos sistemas, introduciendo desde el funcionamiento de los dispositivos electrónicos básicos del diseño digital –la puerta NOT‐, subiendo a elementos más complejos, como puertas básicas, sumadores, multiplicadores, biestables, memorias y sistemas. Se presenta también el avance logrado en los últimos años en los métodos de diseño de sistemas y circuitos digitales, así como en el flujo del diseño y test de los mismos a través de lenguajes de descripción de hardware (HDL). Con ello, se busca que el texto brinde al alumno o al lector el interés por “bucear” en el conocimiento y experiencia de los sistemas digitales, desde un punto de vista analítico, experimental y fundamentalmente práctico.
1.1 Tecnologías microelectrónicas
El concepto de información o dato digital es conocido por todos, o al menos todos lo hemos escuchado, así como hemos visto su impacto social a lo largo de estos últimos años. Su aportación en la conversión en el mundo de las telecomunicaciones y la electrónica de consumo es imparable. Baste el ejemplo de la comunicación por voz, desde el par de cobre telefónico analógico hasta el famoso ADSL, que por cierto pasará en breve a mejor vida con la fibra óptica y las revolucionarias tecnologías inalámbricas, como lo son GSM, UMTS y LTE1. Las llamadas, 2G, 3G y 4G y la telefonía IP. Pues bien, todo esto permitido por la capacidad de la microelectrónica y de la integración de los sistemas, cada vez más pequeños haciendo crecer la complejidad de los núcleos de cálculo –microprocesadores‐, llegando a ordenadores inimaginables que hacen miles de millones de operaciones por segundo y con consumos muy bajos de energía.
Los primeros pasos realizados en esta revolución, desde la calculadora mecánica (Figura 1) a la electrónica, han sido con la invención del transistor bipolar en los Laboratorios Bell, ahí por el año 1947 en el Estado de Nueva Jersey en USA y la creación de la primera puerta digital, ahí por el año 1956. Sin embargo no es hasta los 60’s cuando Fairchild, National y Texas Instruments, empresas que comienzan la carrera de la etapa de los semiconductores digitales en circuitos integrados (ICs) con la tecnología llamada TTL, acrónimo de Transistor‐Transistor Logic, también llamada tecnología bipolar. Esta tecnología ha estado en funcionamiento desde esa época hasta muy entrado la década de los 80’s, inclusive hasta muy entrado el cambio de siglo, perdiendo la batalla por la tecnología MOS, Metal‐Oxide Semiconductor. La razón es simple, el alto consumo de energía por puerta lógica en la tecnología TTL
1 GSM: Group Special Mobile o Global System for Mobile Communications UMTS: Universal Mobile Telecommunications System LTE: Long Term Evolution
Sistemas digitales avanzados
2 Julio 2014
incrementa de forma notable el consumo del circuito digital conforme el número de puertas aumenta, lo que hace inviable el empaquetamiento del circuito digital. A partir de los años 90’s la tecnología digital se ha ido gradualmente pasando y consolidando a la tecnología MOS. Esta tecnología patentada mucho antes en Canadá, en 1925, y retomando el camino en los años 70’s se inició con la llamada tecnología P‐MOS (transistor de canal tipo P) para el uso de calculadoras y posteriormente con la tecnología N‐MOS (transistor de canal tipo N). Esta última marca el primer hito tecnológico: la introducción del primer microprocesador de la compañía INTEL en 1972, el llamado 4004 y en 1974 el 8080 (Figura 3). Microprocesadores de 4 bits y 8 bits respectivamente. Paralelamente, sale a la luz, la primera memoria integrada, la memoria MOS de 4Kbit.
Finalmente el avance en los procesos tecnológicos, de manufactura y de integración en la lucha por conseguir un bajo consumo de energía, se llega a la tecnología CMOS (Complementary Metal Oxide Semiconductor), aún vigente y que ha dado los mejores resultados hasta nuestros días. Otras tecnologías paralelas se han venido evaluando y comercializando, como BICMOS, ECL o GaAs2. Tecnologías las cuáles sacrifican el consumo de energía por un alto rendimiento en velocidad.
La capacidad y la densidad de integración se han venido midiendo por la Ley de Moore. El ya conocido co‐fundador de Intel, que visionariamente escribe que el número de transistores por IC irá creciendo exponencialmente con el tiempo. Es decir, aproximadamente la complejidad de integración se dobla cada 2 años. Este resultado, indica que desde los 70´s la densidad de un circuito digital, por ejemplo una memoria, se ha incrementado miles de veces, así como la frecuencia de reloj y velocidad de cálculo, pasando de los 10MHz, a los 10GHz. Esta revolución ha permitido que haya más transistores disponibles que capacidad de cálculo en un solo circuito integrado. Por esta razón, los ingenieros de diseño han pasado del microprocesador en un IC a los microprocesadores multi‐núcleo y que además contienen varios niveles de memoria interna, pues relativamente “sobra silicio”. Ni que decir, que esto tiene un profundo impacto en cómo el ingeniero aborda el diseño y que tan potentes son y deben ser las herramientas para su desarrollo.
¿Cómo entonces se debe abordar un diseño digital? El concepto clave de esta cuestión, es la complejidad a la que quiero llegar, es decir el nivel de abstracción a la que se pretende trabajar. Si el nivel de abstracción se reemplaza por una caja negra o un modelo, entonces la organización del diseño se sustituye por jerarquías que utilizan bloques o cajas del nivel inmediato inferior. Los niveles de abstracción en el diseño digital más comúnmente usadas son: el nivel de dispositivo (silicio), el nivel de circuito (transistor), el nivel de puerta lógica (puerta equivalente), el nivel de módulo (p.e. sumador), el nivel de sistema (p.e. microprocesador), ver Figura 4. Esta filosofía sólo es posible si se cuenta con herramientas CAD para el diseño que permitan varios niveles de complejidad, la verificación del diseño, la generación y simulación y la compilación de circuitos con la síntesis del diseño.
2 BICMOS: Tecnología compuesta con transistores tipo bipolar y tipo CMOS. ECL: (Emitter Coupled Logic) Tecnología bipolar de emisor acoplado para alta velocidad. GaAs: (Gallium Arsenide) Tecnología de muy alta velocidad de Arsenurio de Galio.
Diseño avanzado de sistemas digitales
Julio 2014 3
Al mismo tiempo que las herramientas de ayuda al diseño se vienen desarrollando, en la década de los 80’s aparecen los lenguajes de descripción de hardware, Verilog3 primeramente y posteriormente VHDL ‐Very High Speed Integrated Circuits Hardware Description Language‐. VHDL fue desarrollado por el U.S. Department of Defense y respaldado por el IEEE, con el propósito de ayudar en el diseño de circuitos digitales de alta velocidad. Hoy en día es uno de los referentes principales en la industria para describir sistemas digitales. Tanto Verilog como VHDL permiten describir y simular diseño digitales complejos. Además de estos dos, existen otros lenguajes de hardware, ya sea menos potentes o con otros objetivos, tal es el caso de ABEL (Advanced Boolean Equation Language), dirigido a dispositivos programables de baja densidad o SystemC. Este último, un lenguaje de descripción a nivel de sistemas desarrollado en C++ para simulación de procesos concurrentes. En este texto se utiliza VHDL conforme se describe en el IEEE estándar 1076‐1993. No hay que olvidar que los lenguajes de descripción de hardware no son lenguajes de programación tradicionales. Un HDL es concurrente y describe el comportamiento tal como las puertas lógicas reales funcionan, es decir, se ejecuta en paralelo tal como el comportamiento físico del hardware. Este comportamiento es normalmente un sistema digital, e incorpora la temporización de los sistemas en todos los niveles de abstracción del diseño.
Figura 1 : Parte del control de la primera calculadora automática (1832).
3 Verilog es un lenguaje de modelado y descripción de hardware ampliamente usada en la industria y fue desarrollado por Phil Moorby en 1985 y los derechos de los simuladores lógicos de Verilog son propiedad de la empresa Cadence Design System. La versión última de Verilog es el estándar IEEE 1364‐2001.
Sistemas digitales avanzados
4 Julio 2014
Figura 2: Sala de control del ENIAC (1946).
Figura 3: Características tecnológicas de diferentes microprocesadores.
Figura 4: Niveles de abstracción de diferentes niveles de diseño.
Diseño avanzado de sistemas digitales
Julio 2014 5
1.1.1 Tecnologías Bipolar y MOS
En el diseño digital los transistores son usados como interruptores, es decir, en los llamados modos de operación de corte y de saturación, generando de este modo los niveles lógicos de 0 o 1 representados por los niveles de tensión correspondientes.
En la tecnología bipolar se utiliza un transistor bipolar, dispositivo de tres terminales, dos de ellas, llamadas emisor y colector con un tipo de región conductora y otro terminal, llamado base, con una región conductora diferente. Véase la figura a) siguiente. Dependiendo de las tensiones aplicadas a los terminales, es posible efectuar los diferentes modos de operación. Estos modos de operación se resumen en la tabla a continuación. Tal que una configuración como la mostrada en la figura b) usando cuatro transistores en modo corte y saturación, permite generar la función de una puerta lógica tipo NAND.
a) Tensiones aplicadas al transistor b) Estructura de una puerta lógica NAND
Figura 5: a) Transistores bipolares, tipos NPN y PNP. b) Puerta NAND‐TTL
En la tecnología MOS el transistor es también un dispositivo de tres terminales (puerta, drenador y surtidor). A diferencia del transistor FET, antecesor del MOSFET, la puerta está aislada por un óxido (SiO2). Este transistor es el de uso común en el diseño digital actual. Sus ventajas radican en la alta densidad de integración y un proceso de fabricación sencillo, que lo hacen atractivo y económico para los circuitos digitales complejos. Su funcionamiento se basa en el control del paso de portadores desde el terminal drenador al terminal surtidor a través de un canal que se forma mediante el campo eléctrico creado por la tensión de puerta. Según la versión del substrato, la base del silicio con el que se parte para la fabricación, se pueden fabricar transistores del tipo NMOS o PMOS. Es decir, transistores con canal P o transistores con canal N. En la tecnología CMOS, ambos transistores se estructuran de forma que en el mismo substrato se funde un transistor de canal opuesto. Se puede observar en la figura a) un corte transversal de esta estructura CMOS y su función lógica en la figura b). Es una puerta NOT, la más simple.
6
Figura
1.2 M
1.2.1
1.2.2
1.3 E
a 6: Sección tr
Metodolo
1 Herram
2 Diseño
Ejercicios
ransversal de
ogías de di
mientas para
para test d
un transistor
iseño de s
a el diseño d
e sistemas
r CMOS y su r
sistemas
de sistema
digitales
representació
s de altas p
Sistemas d
n como una
prestaciones
digitales avanz
Julio
puerta NOT.
s
zados
o 2014
Diseño avanzado de sistemas digitales
Julio 2014 7
2. Ruta de datos y subsistemas aritméticos
2.1 Diseño y Planificación de un Sistema Digital
En este capítulo se aborda el diseño de nuevas arquitecturas orientadas a la consecución de altas velocidades computacionales. Se trata, pues, de diseñar arquitecturas óptimas para el procesamiento de datos a velocidades elevadas; además de emplear nuevos mecanismos y topologías para mejorar la eficacia de la ruta de datos. Esencialmente aquellos problemas que presentan un gran volumen de datos a velocidades altas de cálculo, como puede ser:
Cálculo aritmético
Procesado Digital de Señal
Codificación y descodificación de imágenes, etc
Para comenzar, todos estos sistemas responden, a grandes rasgos, a una estructura que se puede dividir en dos grandes bloques: Bloque de Control y Ruta de Datos.
Figura 7: Arquitectura de un sistema digital.
2.1.1 La interconexión de bloques
La complejidad hardware de todo Sistema Digital se encuentra principalmente en la Ruta de Datos. El bloque de Control estará compuesto por una o varias Máquinas de Estados, incluso con un elevado número de estados; pero su complejidad radica en una buena planificación de la ruta de datos que tiene que llevar la información. Además de estos dos grandes bloques, existen otros dos, que son la memoria y las interfaces de entrada/salida. Haremos una breve introducción de estos, comenzando con los sistemas que forman la ruta de datos, constituidos principalmente por los sistemas aritméticos y la segmentación de estos.
M EM O R Y
D AT AP A TH
C O N T RO L
INP
UT
-OU
TP
UT
8
2.2
2.2.1
La espara
Figura
Tal qconjuen escone
Figura
El tienúmla ta
Subsiste
1 Sumado
structura dela suma (S)
a 8: Sumador
que, el sumunto de varste caso deecta en serie
a 9: Sumador
empo de reero de etapabla de ve
emas aritm
ores binario
e un sumad) y el acarre
completo de
mador binarrios sumadoe 4 bits, es e.
Serie de 4 bit
tardo de espas conectardad y hac
méticos
os
or binario ceo (Co) y su
1 bit.
io de variosores de 4 bel Sumador
ts.
ste Sumadoadas en sericer que el
S A B=
A= BCi
Co AB +=
completo detabla de ve
A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
s bits más bits con la sr Serie (Rip
or Serie, tal ie. La soluci retardo o
B Ci
ABCi A+ +
BCi ACi+ +
e 1 bit, las eerdad son la
Ci S C
0 0 0
1 1 0
0 1 0
1 0 1
0 1 0
1 0 1
0 0 1
1 1 1
sencillo qusiguiente copple‐Carry) d
como se pión a este pocasionado
ABCi ABC+
Sistemas d
ecuaciones s siguientes
Co Acarreo
0 Se borra
0 Se borra
0 Se propa
1 Se propa
0 Se propa
1 Se propa
1 Se gene
1 Se gene
e se puedeonfiguracióndebido a qu
uede analizproblema, ppor el aca
Ci
digitales avanz
Julio
lógicas de ss:
o
a
a
aga
aga
aga
aga
era
era
e construir, n. Este sumue el Acarr
zar, dependpasa por anarreo se p
zados
o 2014
salida
es el mador, eo se
de del alizar pueda
Diseñ
Julio 2
minimdel a
Las e
Estasde re
2.2.2
Su obP1 =
ño avanzado
2014
mizar. Paraacarreo:
Se borra
Se gener
Se propa
ecuaciones c
Para el aPara la s
s ecuacioneeducir el ret
2 Sumado
bjetivo es reP2 = P3 = 1
Ci,0
Ci,0
de sistemas
ello se pue
, D = A
ra, G = A •
aga, P = A
correspond
acarreo: Couma:
es sirven partardo del su
or Carry‐By
educir el re1, conectand
FA
P0 G1
FA
P0 G1
C
s digitales
ede ver en l
B
• B
B
ientes para
o (G, P) = G S (G, P)
ra diferenteumador com
pass
tardo cuanddo esta func
FA
P0 G
Co,0
FA
P0 G1
Co,0
a tabla de v
a la salida de
G + P Ci = P Ci
es configurampleto.
do varias fución por me
FA
G1 P2
Co,1
FA
P2 G2
Co,1
verdad, tres
e la suma y
aciones de s
unciones deedio de un m
A F
G2 P3
Co,2
FA
P3 G
Co,2
s diferentes
el acarreo s
sumadores
l tipo P, pormultiplexor
FA
G3
Co,3
G3
Mul
tipl
exer
BP=P
s salidas po
son:
con el obje
r ejemplo, Pr, tal que C03
Co,3
PoP1P2P3
9
sibles
tivo
P0 =
3 = C0
10
Figura
2.2.3
La fopuer
Parti
Por cfuncicomp
a 10: Etapa de
3 Sumado
orma más rártas es much
cularizando
C1 = G1 C2 = G2 C3 = G3 …continu
consiguientiones Gi y plejas pero
e un Sumador
or Paralelo
ápida de sumho más gran
o la ecuació
+ P1C0 + P2C1 = G2+ P3C2 = G3ua para má
te, los acarrPi. Al aumno son más
r Carry‐Bypas
(Carry Look
mador es elnde que cua
n del acarre
2 + P2G1 + 3 + P3G2 + ás bits.
reos de todmentar el ns lentos.
ss cada 4 bits y
k‐ahead)
l paralelo o alquier otro
eo para los
P2P1C0 P3P2G1 + P
das las etapnúmero de
y Sumador Ca
con acarreo sumador,
diferentes
P3P2P1C0
pas se puede bits los c
Sistemas d
arry‐Bypass co
o adelantadganado en v
bits:
den obteneircuitos usa
digitales avanz
Julio
ompleto de 1
do. El coste velocidad.
er a partir dan puertas
zados
o 2014
6 bits.
en
de las s más
Diseñ
Julio 2
Figura
FinalsumaSe trevitainterindepaprehan den lanece
Las cde su
C
D
2.2.4
Mate
Func
ño avanzado
2014
a 11: Sumado
mente, se adores rápirata de un sar el retardrmedios a pendientes cia un costde tener unas señales. esarios sean
conclusioneumadores q
Compromiso‐ Las o
puer‐ Un a
más
Dependenci‐ En lo
conenúm
4 Multipl
emáticamen
cionalmente
de sistemas
or Paralelo (Ca
puede condos, hay doumador mudo de la capartir de de los bitse alto en hn número deEn tecnolo
n muy eleva
es más impoque se han m
o entre áreaoptimizacionrtas y por taaumento enlargas y por
a con la tecos cálculosexión. En caero de bits
icadores bi
nte, la mult
e este algor
Ci,0
A0
s digitales
arry‐look‐ahe
ncluir que dos aspectos uy estudiadadena de alas entradaprevios. Si ardware ute conexioneogías, comodos y el ret
ortantes a mostrado, s
a y velocidanes del camanto más han el númeror lo tanto m
cnología. s teóricos sasos reales pueden dif
narios
iplicación b
itmo se rep
A1, B1
S1S0
P0Ci,1
0, B0
ad).
de las técndestacadoso, por lo quacarreo. Seas y para se desarrotilizado y laes, lo que po FPGA, haardo asocia
la hora de se resumen
ad. mino críticoardware. o de conex
más retardos
se ha evaly dependieferir bastant
binaria se pu
presenta com
P1
1
• • •
• • •
icas de imps del sumadue únicamee generan cada bit, eolla un poco existencia uede ocasioce que los ado también
comparar len:
(retardo) s
xiones supos.
uar la influendo de la te.
uede expres
mo un conj
AN
S
Ci, N-1
plementaciódor Carry‐Lonte se destdirectamenel acarreo o la ecuacióde señales onar problerecursos dn, si el suma
as diferent
upone la ut
one más áre
uencia de tecnología
sar como:
unto de sum
N-1, BN-1
SN-1
PN-1
ón hardwaook Ahead (taca que trante los acay la suma
ón del acarrs de entradaemas de retde interconador es gran
tes arquitec
tilización de
ea y conex
los retardolos cálculo
mas parciale
11
re de (CLA). ata de arreos a son reo se a que ardos exión nde.
cturas
e más
xiones
os de os por
es,:
12
Figura
Lo quejem
La imsigui
Figura
a 12: Algoritm
ue permite mplo;
‐ El númás
‐ Un bun boperdel m
‐ El númenteng
‐ El núigual
mplementacente:
a 13: Multipli
mo básico de u
visualizar a
úmero de bel número bit a 1 en ebit a la izqurandos de lomultiplicadoúmero de sos 1. Es dea el multiplúmero de bl al número
ción de este
cador de 4 bit
un Multiplicad
lgunas sus p
bits resultande bits del ml multiplicaierda. Un 0os sumadoror. umas parciecir necesiticador menbits de los de bits del
e multiplicad
ts en Array. F
dor.
propiedade
nte es iguamultiplicandor signific0 significa sres pasan p
ales es iguatamos tantnos 1. sumadoresmultiplican
dor, es el lla
FA = Fulla Add
es básicas d
al al númerdo. a sumar el sumar con 0por una fun
al al númertos sumado
s utilizados ndo.
amado mult
der, HA = Half
Sistemas d
:
el multiplica
o de bits d
multiplican0. Lo que nción AND p
ro de bits dores como
en las sum
tiplicador e
Adder.
digitales avanz
Julio
ador, por
del multiplic
ndo desplazsignifica quprevia con
del multiplicnúmeros d
mas parcial
n array, es
zados
o 2014
cador
zando ue los el bit
cador de bit
es es
la
Diseñ
Julio 2
El ejeunosacarr
Figura
2.2.5
anteMultsumaacarretap
necedeno
Figura
ño avanzado
2014
emplo antes caminos crreo. Tal com
a 14: Caminos
5 Multipl
Para intriores, la atiplicador Caando y se areo en las sa y no entre
Es, por esario añadominado Ve
a 15: Multipli
de sistemas
rior, tal comríticos, que mo se indica
s críticos en e
icador Carr
tentar mejorquitecturaarry‐Save. Cavanza a laumas antere elemento
lo tanto, mir un sumaector Mergin
cador Carry‐S
HA
s digitales
mo sucede ecomo ya pua en la figur
el multiplicado
ry‐Save
orar los tie del MultipComo ya se a siguiente riores. La prs de una mi
muy veloz yador normang Adder.
Save.
HA
FA
Vector Me
en el sumaduede usted ra. Esto es ig
or de 4 bits en
empos invoplicador se habrá dadolínea de suropagación isma etapa
y, como incal de M+N
HA
FAHA
FA FA
FA HA
erging Adder
dor, tiene uintuir, son gual a:
n Array. .
olucrados smodifica ligo cuenta, eluma. No exde señales .
conveniente bits para
HA
FA
FA
n retado codebidos al r
se muestrageramente acarreo se xiste, pues, se realiza h
e, hay quegenerar el
HA HA
FA
ondicionadoretardo del
a en las fipara obten trata comopropagació
hacia la sigu
e señalar qul resultado
A
13
o a
guras ner el o otro ón de uiente
ue es final
14
AnteAlgo
2.2.6
Si vecolumtransMultmejoBootMult
Figurade Wa
Figura
es de termritmo de Bo
6 Arboles
emos en demnas, estasformación tiplicador (eorar este reth sobre tiplicadores
a 16: Transforallace.
a 17: Multipl
minar con ooth, repasa
s de Wallac
etalle el ma se pueden árbol
equivalenteetardo. ElloMultiplicad más rápido
rmación de u
icador de Wa
los algoritmaremos bre
e
ultiplicadorde reorgan(Árbol de al de un so se consigores de Wos que exist
na columna d
llace de 4 bits
mos de mvemente lo
r del tipo Cnizar comoe Wallace)sumador cogue empleaWallace qten; el Mult
del Multiplica
s
multiplicacióos Arboles d
Carry‐Save en la figes posible
ompleto); siando el conue ha daiplicador de
ador Carry‐Sav
Sistemas d
ón, concretde Wallace.
y visualizamgura siguiee mejorar n embargonocido comdo lugar e Booth‐Wa
ve a una en c
digitales avanz
Julio
tamente co
mos una dente. Con el retardo
o, aún es pomo Algoritma uno deallace.
configuración
zados
o 2014
on el
e sus esta
o del osible mo de e los
n Arbol
Diseñ
Julio 2
2.2.7
Umultmultbinarpor Dde crápid
bits, que Algodespopertabla
Tabla
Figura
El Alregis
ño avanzado
2014
7 Algoritm
Una de las iplicar y diviplicación drios con sigDonald Booomputadordos.
El proceel primero se inicializaritmo de Boplazamientoración aritma de análisis
1: Algoritmo
a 18. Diagram
goritmo destros (R0, R1
de sistemas
mo de Boot
ventajas dvidir con pode Booth esgno en la nooth en 1950res conocid
dimiento ues el menoa a “0”. Véooth Radix‐o se realizamética y sós para el alg
o de Booth Ra
ma de bloques
e Booth se 1 y R2), do
s digitales
th
de la aritméotencia de s un algoritmotación de 0, es usado das, salvo e
sado en el os significatéase la figu‐2. Estos do con sumalo se despgoritmo de B
R10 Rx0 00 11 01 1
dix‐2. Modos
s de un multip
basa en us registros a
ética binari2. Basándomo de multcomplemenampliamen
en las del t
algoritmo dtivo del mura. Razón pos bits se aa o resta olaza. Para Booth RADI
x OperacDesplazSuma y Resta y Desplaz
s de funcionam
plicador tipo B
una ruta deadicionales
ia es el usose en esta tiplicación qnto a dos. Ente en la mtipo DSP q
de Booth seltiplicador (por la cuál analizan en o simplemeentender eX‐2 y la sigu
ción za desplaza desplaza
za
miento
Booth.
e datos quede 1 bit (C
o del desplpropiedad,que multipliEste algoritmmayoría de lue utilizan
e basa en e(R10) y un beste algoriel control y
ente no se este concepuiente figur
e contiene y Rx) un su
lazamiento , el algoritmica dos númmo desarrolas arquitecmultiplica
el análisis dbit adicionaitmo es llamy se deciderealiza ninpto usaremra.
un conjuntumador/res
15
para mo de meros ollado cturas dores
e dos al (Rx) mado e si el nguna mos la
to de tador
Sistemas digitales avanzados
16 Julio 2014
y un bloque de control que tiene como función secuenciar las operaciones según el número de bits del multiplicador.
Para entender mejor el funcionamiento, veremos un par de ejemplos con multiplicaciones de 4 bits. El primero con la multiplicación de dos número positivos y el segundo con una multiplicación de un número positivo y otro negativo.
Ejemplo 1, A * B = 0110 * 0010; R0=0110 y R1=0010. El resultado se presenta en 8 bits y será igual a R2=0000(L) y R1= 1100(H). Suponga que los registros se encuentran ya cargados con los datos iniciales.
Ciclos R0 R2 R1 R10 Rx Operación 0 0110 0000 001 0 0 Desplaza 1 0110 0000 000 1 0 Resta y Desplaza 2 0110 1101 100 0 1 Suma y desplaza 3 0110 0001 100 0 0 Desplaza 4 0110 0000 110 0 0 Termina
Tabla 2: Algoritmo de Booth con Multiplicando, R0=0110 y Multiplicador, R=0110.
Ejemplo 2, A*B=0110*1110. El multiplicador es un número negativo.
Ciclos R0 R2 R1 R10 Rx Operación 0 0110 0000 111 0 0 Desplaza 1 0110 0000 011 1 0 Resta y Desplaza 2 0110 1101 001 1 1 Desplaza 3 0110 1110 100 1 1 Desplaza 4 0110 1111 010 1 1 Termina
Tabla 3: Algoritmo de Booth con Multiplicando, R0=0110 y Multiplicador, R=1110.
En conclusión, el algoritmo de Booth realiza:
La multiplicación con sumas y restas, simplemente y demuestra su validez para multiplicación con signo representando los operandos y el resultado en complemento a 2.
Una simplificación de operaciones con sumas y restas a través de supervisar las cadenas de 1s o 0s en el multiplicador.
Si se analiza previamente el multiplicador y el multiplicando, entre la cantidad de transiciones entre 0s y 1s que contiene cada uno, elegir entonces cuál es el multiplicador (la multiplicación tiene una propiedad conmutativa), aumentando la rapidez en la ejecución del algoritmo.
2.2.8 Divisores
La más compleja de las operaciones aritméticas es la de división. Por lo general se resuelve por software, a través de una secuencia de restas y desplazamientos. Sin embargo existen microprocesadores especializados que disponen de divisores implementados en hardware, incrementando con ello la velocidad de la unidad
Diseño avanzado de sistemas digitales
Julio 2014 17
aritmética. La tecnología ha hecho que esto no sea problema hoy en día, ya que sistemas complejos, como un divisor hardware sea posible a coste bajo. Procesadores de señal, compresores, moduladores o detectores, cuentan con unidades especializadas de este tipo. Sin embargo no hay que olvidar el objetivo del diseño, por ejemplo en diseño de bajo consumo y en sistemas portátiles, el uso de batería requiere de un análisis particular y del compromiso velocidad versus tamaño.
Para entender la implantación hardware lo mejor es ver primero el algoritmo básico a nivel de ejemplo, sea la siguiente división en punto fijo:
Dividendo 11011001 (217), Divisor 1011 (11) Cociente 10011 (19), Residuo 1000 (8)
___ 10011 Cociente
Divisor 1011 √ 11011001 Dividendo 1011 Divisor 0101 Dividendo reducido 0000 Divisor 0 por ser mayor que el dividendo reducido 1010 Dividendo reducido 0000 Divisor 0 por ser mayor que el dividendo reducido 10100 Dividendo reducido 1011 Divisor desplazado 10011 Dividendo reducido 1011 Divisor desplazado 1000 Residuo
El ejemplo anterior consiste en realizar una resta entre el dividendo y el divisor desde el MSB. Si el resultado del MSB es “1”, entonces el cociente es “0”, sumando entonces el siguiente bit del dividendo y desplazando el divisor un bit. Por el contrario, si el resultado del MSB es un “0”, entonces el cociente en “1”, dejando el resultado y desplazando el divisor un bit. El número de ciclos de operación es igual al número de bits del divisor. La premisa de este algoritmo es que se debe cumplir que N<D (dividendo mayor que divisor) Este algoritmo se llama divisor con restauración. El hardware necesario se puede ver a continuación.
P= /AB + /AC + BC = /A(B+ C) + BC S= AD + A/B/C + ABC + /AB/C/D + /A/BC/D Reduciendo: S = A⨁B⨁C, si D = 0 S = A , si D = 1
Sistemas digitales avanzados
18 Julio 2014
Figura 19. Celda divisor básica para el algoritmo de división.
CD CD
CD
CD
CD CD
CD CD CD
N1 D1 N2 D2 N3 D3 N4
Q1
Q2
Q3
D
N5
N6
D
D
R4 R5 R6
Figura 20. Divisor paralelo con 3 bits.
Diseño avanzado de sistemas digitales
Julio 2014 19
2.2.9 Desplazadores (Barrel Shifters)
Los desplazadores (Barrel shifters) son usados en sistemas integrados de propósito específico o también en sistemas microprocesadores de uso general. El desplazamiento y la rotación son operaciones básicas en una Unidad Lógico‐Aritmética (ALU) y puede estar embedido en la misma unidad o como una unidad adicional a la ALU y tiene como propósito y objetivos simplificar muchas operaciones de multiplicación y división, es decir, en el procesamiento digital de señal por lo general. Desde este punto de vista debe ser capaz de ejecutar una operación de desplazamiento en un ciclo de reloj. Las operaciones básicas que se usan con esta unidad son: SRL: shift right logical, SRA: shift right arithmetic, RR: rotate right, SLL: shift left logical, SLA shift left arithmetic RL: rotate left. EL tamaño y las operaciones que tiene que hacer dependerán de los objetivos del microprocesador en el que tenga que implementarse. A más funciones mayor densidad de área. A continuación se muestran algunos ejemplos de implementación:
Figura 21. Desplazador lógico a la derecha de 8 bits (SRL)
Sistemas digitales avanzados
20 Julio 2014
Figura 22. Rotador a la derecha de 8 bits (RR)
Figura 23. Desplazador/Rotador a la derecha de 8 bits con detector de desbordamiento
Diseño avanzado de sistemas digitales
Julio 2014 21
2.3 Ejercicios
1) Se requiere en un algoritmo hacer operaciones de multiplicación. Para valorar qué será mejor, un arquitecto de sistemas evaluará las dos opciones siguientes . Se pide, diseñar y evaluar a) un multiplicador paralelo y b) un multiplicador serie. En ambos casos, se usarán números de cuatro bits para hacer la evaluación más rápida. Para comprobar el algoritmo use los valores de:
Valor del Multiplicando M= 1101
Valor de Multiplicador N = 1011
Opción a) El multiplicador paralelo. Elabore un multiplicador paralelo completo de 4 bits con cualquier tipo de puerta. Utilice el siguiente algoritmo y obtenga el tiempo máximo de una operación completa, si Tprop. (puertas=7 ns).
a3 a2 a1 a0 X b3 b2 b1 b0
b0a3 b0a2 b0a1 b0a0 b1a3 b1a2 b1a1 b1a0
b2a3 b2a2 b2a1 b2a0
b3a3 b3a2 b3a1 b3a0
P7 P6 P5 P4 P3 P2 P1 P0
Opción b) El multiplicador serie (como el de la figura). Este multiplicador es el algoritmo llamado “clásico”, para ello haga:
El sumador de 4 bits con puertas (el sumador más rápido). Utilice el tiempo de puerta del apartado anterior. Haga un seudocódigo del control e indique las señales que le sean necesarias.
Haga un diagrama de tiempos en el cronograma mostrando los registros A, B, P y las señales que considere. Parta de la situación donde los registros ya están previamente cargados
Calcule, al igual que el apartado anterior, la máxima frecuencia y el tiempo para hacer una operación completa usando, Tprop. (puertas=7 ns). Tprop. (registro de =7 ns) Tsetup (registro de=2 ns).
Sistemas digitales avanzados
22 Julio 2014
2) Diseñar un divisor secuencial con restauración a partir del algoritmo descrito en el
apartado 2.2.8.
3) Un diseñador de sistemas está empezando a hacer sus circuitos digitales y ha pensado en un sistema que multiplica con el algoritmo de Booth. El bloque de control lo especificará usted en VHDL y la ruta de datos es la del esquema siguiente. A partir de éste, haga: La operación en binario, primeramente según la figura, obtenga el resultado para una operación de 6 x (‐6) completando en la tabla siguiente:
Valor de N Valor de A Valor de M Q Q-1 Ciclo de reloj Q Q-1 Función
Reset = 0 0 0 Desplaza
INIT = 1 0 1 Suma y desplaza
1 0 Resta y desplaza
1 1 Desplaza
Diseño avanzado de sistemas digitales
Julio 2014 23
Sistemas digitales avanzados
24 Julio 2014
3. Subsistemas secuenciales
El diseño de sistemas digitales, ya sea del tipo discreto, circuito integrado específico o circuito programable, pasa por varios factores, entre otras cosas, por un buen diseño de los bloques que lo componen, tanto combinacionales como secuenciales. Estos factores no son únicamente una buena simplificación de la función lógica o una mejor codificación del diagrama de estados. Como ya sabe, las características temporales de estos circuitos ideales, no son ideales, es decir no reaccionan de forma inmediata a los cambios de las señales de entrada o a las señales de control.
En este apartado se pretende estudiar los factores principales con importancia en el diseño de sistemas y circuitos digitales reales. Estos factores son determinantes en las prestaciones y condiciona en la mayoría de los casos su funcionamiento. A continuación se estudiarán las principales reglas de diseño del diseño síncrono, su integración en los sistemas digitales, la sincronización de señales asíncronas, la metaestabilidad y la importancia del, “jitter” y “skew” del reloj en todo sistema digital.
3.1 Diseño síncrono de sistemas digitales
En los cursos básicos de sistemas digitales, se han estudiado los circuitos combinacionales y secuenciales y se han introducido sus características tecnológicas. Pero en su diseño generalmente no se ha tenido en cuenta el tiempo de reacción ante un cambio en el valor de las señales de entrada o de control; ese retardo inherente en su funcionamiento (desde que se produce un evento en alguna de sus entradas, hasta que se observan sus efectos en la/s salida/s) se denomina Tiempo de Propagación o Retardo (Tp). Este tiempo depende, entre otros aspectos, de las características de los dispositivos internos con los que están diseñados, de las cargas que tengan conectadas en sus salidas, el denominado FAN‐IN y el de su salida, el FAN‐OUT, de la temperatura de funcionamiento y del envejecimiento de los dispositivos, principalmente.
Por otro lado, este Tiempo de Propagación suele ser distinto para cada señal de salida de cada dispositivo lógico, teniendo una cierta dependencia también del valor final de dicha señal (transición de “0” lógico a un “1” lógico; o viceversa). Además, las señales en un circuito no cambian instantáneamente, sino que lo hacen con una determinada pendiente que será diferente en el caso de pasar de “0” a “1” ó de “1” a “0”. Recordará usted de la siguiente figura, los denominados tiempo de subida (tr) y tiempo de bajada (tf), medidos entre el 90% y el 10% de la propia señal. Así como los tiempos de retardo (propagación), tpHL y tpLH, medidos entre el 50% de la señal de entrada y salida, respectivamente.
Diseñ
Julio 2
Figura
Pes elson l
‐
‐
‐
‐
‐
‐
‐
ño avanzado
2014
a 24. Tiempos
Por otro lad Flip‐Flop. Ras siguiente
Un Flip‐debienddesapareUn Flip‐instante Un Flip‐Fo bien deUn Flip‐generalmpor la ccombinaUn Flip‐Fdel Flip‐FUn Flip‐Fcon la frcircuito Lo que sUn Flip‐recordar
Tiemflanc
Tiemen do
Tiemde re
En la figrepresen
de sistemas
s asociados a
do, en los cRecordandoes:
Flop es un o permaneecido. Flop es un de cambio,Flop se since bajada. ‐Flop es umente a losconmutacióacional. Flop tiene uFlop, su impFlop en un ecuencia deen cada flaupone un cFlop tiene r, muy impo
mpo de aseco de reloj e
mpo de manonde la ent
mpo de retaeloj hasta q
gura siguienta la utiliza
s digitales
las señales de
circuitos síno que estos
circuito coecer sus s
circuito sín, si procedecroniza en lo
un circuitos llamados “ón de los c
una velocidaplementaciósistema síne reloj. Puesanco, aun cuonsumo innunas carac
ortantes en
entamiento en donde la
ntenimientorada de dat
ardo (propaue la salida
nte se repación de un
e entrada y sa
ncronos, el s elementos
on dos estasalidas est
ncrono en e y en su casos flancos d
o que tien“glitches” ocircuitos o
ad de trabaón y tecnoloncrono, tiensto que estuando el esnecesario.cterísticas del diseño:
(setup), ts entrada de
o (hold), thotos debe pe
agate) tp. T de datos e
presentan eFlip‐Flop en
alida de un ci
elemento fs presentan
ados, de ahtables, aún
el cúal la sso produce de la señal d
ne una buo pulsos de por el pr
ajo limitada ogía usada.ne un consue último, mstado del F
de tiempo,
su. Tiempoe datos deb
old. Tiempoermanecer e
iempo que s estable.
estos tiempn un sistem
rcuito combin
fundamenta ciertas car
hí el nombn cuando
señal de Reuna nueva de reloj, bie
uena inmuncorta duraopio diseñ
por la cara
umo de enemantiene la alip‐Flop no
que son c
o anterior ae permanec
posterior aestable.
transcurre
pos, así coa síncrono.
nacional.
al para el dracterísticas
bre de biestla causa
eloj establesalida. en sea de s
nidad al ración produo con la l
acterística p
ergía en relactualizacióhaya camb
conveniente
a la llegadcer estable.
al flanco de
desde el f
omo tambié
25
iseño s, que
table, haya
ece el
ubida
ruido, ucidos lógica
propia
ación ón del biado.
es de
a del .
e reloj
flanco
én se
26
Figuraimple
Flip‐Ftambde Rrelacbúsqde la
que valordispode 2 “glitc
a 25: Tiempoementación de
Tal comoFlops, ayudbién los proR2. En cualqción a la oqueda de baas señales q
Los “glitcse produceres transitoositivos lógi nanosegunch”, debido
os asociadosentro de un s
o se ha meda a filtrar looducidos poquier caso, ptimizaciónajo consumue produzc
ches” o riesen en los corios anómaicos. Véase ndos, previo al retardo
a las señaleistema síncro
ncionado eos “glitchesor el circuitola lógica c
n de las funo y la reducan carreras
sgos, valoreircuitos comalos en las la siguienteo a la mismde la puerta
es de entradono.
el uso de res”, que proco con la lógiombinacionnciones lógcción del nús entre las m
es transitorimbinacionasalidas debe figura, enma señal dea NOT.
da y salida d
egistros, un ceden el extica combinanal tiene quicas, la ecuúmero de tmismas.
os anómaloales sin reabido a la exn esta hay ue entrada. L
Sistemas d
de un circuit
registro esterior (por eacional inteue estar biualización dransiciones
os relejadoslimentaciónxistencia dena puerta NLa señal en
digitales avanz
Julio
to secuencia
s un conjunejemplo en ermedia, a ten diseñadde las señals de no dese
s como espn. Pueden e retardos eNOT con ren color azul
zados
o 2014
l y su
to de R1) y través da, en es, la eadas
urios, darse en los tardo es el
Diseñ
Julio 2
FiguraUPM)
Existse paparsólo
Figura
Figura
ño avanzado
2014
a 26: Señal a).
en básicamroducen caecen debidcambie de
a 27: Riesgo f
a 28: Riesgo ló
de sistemas
anómala o gli
mente dos tiambios en mdos a la reaestado una
uncional. (Fue
ógico. (Fuente
s digitales
itch, producid
pos de riesgmás de unalización harentrada.
ente: Apunte
e: Apuntes EU
do por el ret
gos, los riesa variable rdware del
s EUITT‐UPM
UITT‐UPM).
tardo de una
sgos funcionde entradacircuito y
).
señal (Fuent
nales, que a o los riesgpueden pro
te: Apuntes
aparecen cugos lógicosoducirse au
27
EUITT‐
uando , que unque
28
Las amod
Inc
In
InmemrS
3.2 M
El ditienecombpropesto correque e
Figura
Tal q
Dond
alternativasos:
nserción decondiciones
nserción de
nserción demuestrear laexisten glitcmás ampliaealizados coSíncrono.
Metaesta
seño síncroe que cumbinacionalepagación máse cumpl
ectamente es lo mismo
a 29: Sistema
que la frecue
de:
s para evita
e retardos hde funcion
e lógica redu
e lógica rega lógica cuaches‐almacemente utilon lógica p
bilidad y s
ono de sistmplirse el ses sin realiáximo del cla, las saliy deberán o el tiempo
s secuencial s
encia máxim
m
ar los riego
hardware: Samiento, p
undante: Pe
gistrada: Noando ha finenando los izada tantorogramable
sincroniza
emas digitasiguiente cmentación circuito desdas de loser establede set‐up d
síncrono y tem
ma de reloj
max
os, pasa por
Su valor es dudiendo da
ermite elim
o elimina lonalizado el rvalores de o para el de o discreta
ación
ales tiene uriterio: El finaliza cusde el últims circuitoses un tiempde los flip‐fl
mporización d
permitada
r modificar
difícilmenter lugar a nu
inar únicam
os riesgos, srégimen trasalida en fldiseño de . Se denom
una base drégimen tuando ha tmo cambio combinaco antes deops. Véase
del mismo. (Fu
viene dada
1
Sistemas d
la lógica d
e controlabluevos riesgo
mente los rie
sino su efeansitorio ‐y ip‐flops. EsASICs como
mina Metodo
de funcionaransitorio dtranscurridoen una en
cionales del flanco actla figura:
uente: Apunt
por la expr
digitales avanz
Julio
de los sigui
le y varía coos.
esgos lógico
cto. Consispor tanto y
sta solucióno para circología de d
amiento sende los circo el tiempntrada. Paraeben registtivo de relo
tes EUITT‐UPM
resión siguie
zados
o 2014
entes
on las
os.
te en ya no es la cuitos iseño
ncillo, cuitos po de a que trarse oj o lo
M).
ente:
Diseñ
Julio 2
tpff carac
tsu mcarac
tpLC exist
El sismaneestricy difedeno
Cuancorreun mFlip‐F
Ad
Ldu
Ce
La Mflip‐findet
Figura
La m
Es
ño avanzado
2014
max = es cterísticas d
min = es elcterísticas d
max = esentes en el
stema digitaera simultácta, el reloj erencias deomina SKEW
ndo la sincecta, se promodo de opFlop o en el
A menudo edeben ser si
La sincronizadel circuito. upo de hold
Como consees peor, ent
Metaestabiliflop, su salidterminado t
a 30: Metaest
etaestabilid
En la sincronincronizar e
de sistemas
el tiempo de la tecnolo
tiempo dede la tecnolo
s el tiemposistema dig
al debe cumánea. Esto,llegará con
e carga. El dW.
cronización oducen irreeración denl registro un
existen entncronizada
ación consiDurante es del flip‐flop
ecuencia, elrar en un es
dad se prodda puede ptomará alea
tabilidad. (Fue
dad se prod
nización de estas entrad
s digitales
de retardoogía usada.
e asentamieogía usada.
o de retardgital síncron
mplir que la en genern cierto desfesfase de la
de las segularidadesnominado mn valor de sa
tradas al cis antes de p
ste en regissta operacióp.
flip‐flop pustado meta
duce cuandasar a un natoriamente
ente: Apunte
duce en los c
entradas adas asíncron
o máximo
ento (setup
do del bloqno.
a señal de ral, no es fase debidoa llegada de
ñales de es en la sincmetaestablealida establ
rcuito que poder ser u
strar la entón puede oc
uede registraestable.
do se violan nivel de tense el valor 0
s EUITT‐UPM
casos siguie
asíncronas. Anas.
del Flip‐Fl
p) del Flip‐F
que combin
reloj les llegposible quo a las longiel reloj a los
entrada noronización e. Es decir, le. Esto se p
son asíncrsadas en el
rada en uncurrir que s
rar o no el e
los tiemposión intermó 1.
).
entes:
Afecta solo
op detallad
Flop detalla
nacional m
ga a todos e se verifiqtudes de pis Flip‐Flops d
son realizen consecuno se puedpuede debe
onas respemismo.
flip‐flop coe violen los
evento de e
s de set‐up medio; al cab
a los flip‐fl
do en las
ado en las
más lento d
los Flip‐Floque de mastas, conexde un circu
zadas de fuencia se gede asegurar r a:
ecto a su re
onectado als tiempos d
entrada o, lo
p o de hold dbo de un tie
lops usados
29
hojas
hojas
de los
ps de anera xiones ito se
forma enera en el
eloj y
l reloj e set‐
o que
de un empo
s para
30
Lpc
Ef
Cu
La men ciform
Sc
Figura
Sr
Figura
La probabilipermanencicondiciones
El estado mlip‐flops inv
Cuando la saun valor ind
metaestabilidiclos de relo
ma de las ent
Sincronizacióciclo de relo
a 31: Sincroni
Sincronizacióeloj a señal
a 32: Sincroni
dad de quea en dichambientale
etaestable volucrados.
alida del fliefinido a la
dad en las oj, antes detradas, se p
ón de las soj. Se usa un
zación de ent
ón y confores de un cic
zación de ent
e un flip‐floho estado es de funcio
generalme
p‐flop es mlógica a la q
entradas ae usar las sepuede hacer
señales asínn conjunto d
tradas asíncro
rmación declo.
tradas asíncro
op entre edepende
onamiento.
nte pasa a
muestreada que esté co
síncronas señales de er de varias f
ncronas dede Flip‐Flop
onas. (Fuente
e pulsos de
onas. (Fuente
n estado mdel proce
un estado e
en el estadonectado.
se corrige, entrada al cformas.
entradas, s.
e: Apuntes EU
entrada m
e: Apuntes EU
Sistemas d
metaestableso tecnoló
estable ráp
do metaesta
proporcionaircuito. Seg
cuando son
ITT‐UPM).
as grandes
ITT‐UPM).
digitales avanz
Julio
e y el tiempógico y de
pidamente e
able, se pro
ando un tiegún sea el c
n mayores
que un cic
zados
o 2014
po de e las
en los
opaga
empo caso y
a un
clo de
Diseñ
Julio 2
Sr
FiguraEUITT
S
Figura
3.3 R
En cuAdemnúmespe
ño avanzado
2014
Sincronizacióeloj.
a 33: SincroniT‐UPM).
Sincronizació
a 34: Sincroni
Reloj y ske
ualquier sismás de otraero alto de cialmente s
de sistemas
ón y confor
ización de ent
ón y elimina
zación de ent
ew
stema síncras señales gcargas de csensibles a
s digitales
rmación de
tradas asíncro
ación de gli
tradas asíncro
ono, la refeglobales, coconexiones,problemas
pulsos de e
onas más peq
tches en las
onas con glitc
erencia prinomo la seña, lo que pro, pues está
entrada má
queñas de un
s entradas.
ches. (Fuente:
ncipal del sal de reset, oduce altos n conectad
s pequeños
ciclo de reloj
Apuntes EUIT
istema es les tambiénretardos. E
das a todos
s que un cic
oj. (Fuente: Ap
TT‐UPM).
a señal de n la que tienEstas señalelos Flip‐flo
31
clo de
puntes
reloj. ne un es son ps de
32
un scircuuna ala loalcanseña
En else resisteprob
Compunt
Figura
Otro flancsincrse pu
istema. Su uito impresoalta resistivngitud de nzan a todol de reloj tie
l caso del reesetean simma. Si bien blema muy i
o se ha comtos distintos
a 35: Desfase
efecto adiccos consecronización. uede ver la
distribucióo lleva asocvidad y una la línea. Esos los Flip‐floene SKEW.
eset es menmultáneameno se suelemportante
mentado, els del sistem
de reloj. Skew
cional al skutivos de En ambos cdiferencia e
ón a lo largiado lo quegran carga,sta es la caops en el m
nos importaente, lo que hablar procuyas posib
SKEW es laa digital. Es
w. (Fuente: A
ew es el “jireloj. Lo casos, se veentre ambo
go de un cie se denomi, lo que se tausa por lomismo instan
ante, lo queue puede dopiamente dbles solucio
a diferenciaste SKEW tie
Apuntes EUITT
itter”. Este que tambe afectada los efectos. E
ircuito inteina líneas gtraduce en o que los fnte de tiem
e sucede esdar lugar ade skew enones se mos
que existe ene un mod
T‐UPM).
último es laién puede la señal de El skew, Tsk
Sistemas d
grado o delobales y quun retardo lancos activpo. Se dice
que no tod estados nel reset. No
strarán más
en el flancodelo genera
a variación ocasionarreloj. En la y el jitter, T
digitales avanz
Julio
e una tarjeue pueden dependienvos del rel entonces q
dos los Flip‐no deseadoo obstante s adelante.
o de reloj eal:
temporal r problema figura siguTjs.
zados
o 2014
ta de tener nte de oj no que la
‐flops os del es un
n dos
entre as de uiente
Diseñ
Julio 2
Figura
Un egenefunci
Figura
Este cabereloj prob
FiguraUPM)
El ottravécaptusimuset‐uconti
ño avanzado
2014
a 36: Skew (ts
error que seración de uión lógica. C
a 37: Generac
tipo de diseza. Puede fo de dist
blemas.
a 38: Evitar e).
ro error qués de otro ura de datultáneamentup de datoinuación.
de sistemas
sk) y jitter (tjs
e suele comun reloj paComo en el
ción de reloj d
eño hay qufuncionar etribución e
el diseño con
e suele comFlip‐Flop, los en otrote, lo que oos y reloj
s digitales
s) de reloj.
meter en era un bloqcaso siguie
de forma com
ue evitarlo aen algunas n el empla
n el reloj gen
meterse de o que genes registros,ocasiona engenerado.
el diseño deue funcionnte:
mbinacional. (F
a toda costcondicioneazamiento
nerado de for
forma muyera una vio, debido a n la temporEste tipo
e los sistemal o para u
Fuente: Apun
ta, pues pues, pero conde compo
rma combina
y frecuente,olación de que los darización unade funcion
mas digitaleun registro
tes EUITT‐UP
ede dar mun cambios dnentes, seg
cional. (Fuen
, es la genelos tiempoatos y el rea igualdad namiento s
es consiste a través de
PM).
uchos dolorde frecuencguramente
nte: Apuntes
ración de ros de reloj eloj se regien el tiempse puede v
33
en la e una
es de cia de dará
EUITT‐
eloj a en la istran po de ver a
34
Figura
Figura
El disque habil
a 39: Violació
a 40: Evitar el
seño correcse necesitelitación.
n de reloj gen
l diseño con e
cto en un sie a través d
nerado de for
el reloj genera
stema síncrdel uso de
rma secuencia
ado de forma
rono, consisseñales de
al. (Fuente: A
secuencial. (F
ste en habi“enable” o
Sistemas d
puntes EUITT
Fuente: Apun
litar el relojo del uso d
digitales avanz
Julio
T‐UPM).
ntes EUITT‐UP
j en el momde Flip‐Flop
zados
o 2014
PM).
mento s con
Diseñ
Julio 2
Figura
3.4 R
¿CuáEn geles destoslleva
Diseñpuessisteser d
Resedel sse imflop yponetipo libruse use enti
ño avanzado
2014
a 41: Habilitac
Reset y pr
ándo no hemeneral durada poco intes puede resr la salida Q
ñadores costo a un nivma. Esto tiede 2 formas
et asíncronosistema digimpone sino y es típico ee un”0” lógide reset es
rary ieeeieee.stdieee.std
ity ctr8sport (
crdl
de sistemas
ción de la señ
reset
mos oído enante la univerés al “ressultar catasQ de un flip‐
n experiencvel lógico, eene que ser: de forma a
o. Un mal diital. Generacuando el el uso de reco a la entrel siguiente
e; d_logic_1d_logic_u
sr is
clk : in rst_n : id : in stld : in s
s digitales
ñal de reloj. (F
n nuestro pversidad enet” y al “prstrófico en n‐flop a “0” o
cia recomies decir inicir planificadoasíncrona o
iseño asíncralmente el preset se queset activo rada de resee:
1164.all;unsigned.
std_logicn std_log
td_logic;td_logic;
Fuente: Apun
paso por la un el diseño reset”. Sin enuestro diso a “1” lógic
endan, en gializado cono y estudiado de forma s
rono del resproblema suita. Este tia nivel bajoet). Un ejem
all;
c; gic;
;
tes EUITT‐UP
universidadde todos loembargo unseño. Amboco, respectiv
general, quen reset o prdo, eligiendsíncrona.
set puede ce puede prpo de reseto (el flip‐flomplo en VH
-- señal -- señ
M).
d: hay que hos sistemasn mal uso oos tiene un vamente.
e todo flip‐reset, cuando una estra
causar fallosresentar no t viene impp va a “0” lDL de un co
de relojñal de re
hacer un “res secuencialo inadecuadobjetivo sim
‐flop deberído lo requieategia que p
s en la oper cuando el puesto en elógico cuanontador con
j eset
35
eset”. les se do de milar:
ía ser era el puede
ración reset
el flip‐do se n este
Sistemas digitales avanzados
36 Julio 2014
q : out std_logic_vector(7 downto 0); co : out std_logic);
end ctr8sr; architecture rtl of ctr8sr is signal count : std_logic_vector(8 downto 0); begin
co <= count(8); q <= count(7 downto 0);
process (clk,rst) begin
if (rst_n = '0') then count <= (others => '0'); -- reset asíncrono
elsif (clk'event and clk = '1') then if (ld = '1') then
count <= '0' & d; -- carga síncrona else
count <= count + 1; -- incremento end if;
end if; end process;
end rtl
Reset síncrono. Se basa en la premisa que la señal de reset afectará únicamente al estado del flip‐flop en el momento del flanco de reloj. El reset puede ser impuesto como parte de una lógica combinacional previa a la entrada D del flip‐flop. Un ejemplo en VHDL de un contador con este tipo de reset es el siguiente: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ctr8sr is
port ( clk : in std_logic; -- señal de reloj rst_n : in std_logic; -- señal de reset d : in std_logic; ld : in std_logic; q : out std_logic_vector(7 downto 0); co : out std_logic);
end ctr8sr; architecture rtl of ctr8sr is signal count : std_logic_vector(8 downto 0); begin
co <= count(8); q <= count(7 downto 0);
process (clk) begin
if (clk'event and clk = '1') then if (rst_n = '0') then
count <= (others => '0'); -- reset síncrono elsif (ld = '1') then
Diseño avanzado de sistemas digitales
Julio 2014 37
count <= '0' & d; -- carga síncrona else
count <= count + 1; -- incremento end if;
end if; end process; end rtl
Figura 42: Reset asíncrono (arriba), reset síncrono (en medio) y reset síncrono‐asincrono (abajo). (Fuente Altera. Recommended Design Practices. QII51006‐ 2014.06.30. http://www.altera.com/literature/hb/qts/qts_qii51006.pdf).
La gran ventaja del reset asíncrono en el diseño digital es que su distribución es “limpia” en el diseño. Todos los bloques a sincronizar se conectan a esta señal sin lógica combinacional adicional. Además de eliminar la dependencia de la señal de
Sistemas digitales avanzados
38 Julio 2014
reloj, este presente o no. Por otro lado, la desventaja es la asincronía que puede tener esta señal al momento de imponerse y sobre todo de quitarse. Si la señal levantada en el flanco de reloj, el flip‐flop puede entrar en un modo metaestable, por lo que hay que evitar rebotes, glitches y ruidos en esta señal.
La lógica de reset síncrona tiene la ventaja de usar flip‐flop más pequeños (en número de transistores) al no llevar asociada la lógica de reset y preset dentro. Sin embargo al sintetizar el VHDL, esta lógica va fuera del flip‐flop, tal que el total de espacio ganado puede no ser significante. Con la tecnología actual, esto parece irrelevante. Por otro lado, el reset síncrono nos asegura que el diseño es 100% síncrono y que este reset ocurrirá solamente durante el flanco de reloj.
Como conclusiones, en el diseño síncrono, es aconsejable:
Las normas de diseño síncrono son una buena guía para la realización de diseños con un funcionamiento seguro.
En su aplicación práctica es frecuente que se den casos en los que resulta inevitable vulnerarlas: en el interfaz con buses asíncronos o con memorias asíncronas, por ejemplo, o en el de la sincronización de entradas asíncronas.
Cuando esto ocurra es aconsejable aislar los módulos de interfaz con sistemas asíncronos y diseñar el resto del sistema ateniéndose a las reglas enunciadas.
En el diseño de circuito es aconsejable utilizar flip‐flops tipo D, puesto que son los de funcionamiento más simple y facilitan la interpretación del modo de operación del circuito. Además, con los flip‐flops tipo D resulta muy sencilla la incorporación de entradas síncronas de reset, preset y habilitación de reloj.
Las entradas asíncronas de los flip‐flops sólo deben utilizarse, si se desea, para la inicialización del circuito, pero nunca durante la operación normal del mismo.
3.5 Ejercicios
Diseño avanzado de sistemas digitales
Julio 2014 39
4. Subsistemas basados en memorias
4.1 Introducción a memorias integradas
Gran parte del diseño digital actual necesita o se dedica al almacenamiento de información, datos o instrucciones de programas. Como se ha comentado en la introducción, actualmente la integración de los circuitos digitales permite que ésta se dedique a la memoria, en sus diferentes versiones. El diseño también ha evolucionado, tal que en la lógica programable, por ejemplo, el uso de memoria para la implementación de tablas de verdad o cualquier lógica combinacional, simplifica la síntesis de los sistemas.
De forma general, se representa una memoria integrada como una matriz de celdas de almacenamiento. Técnicamente es posible si usamos un conjunto de registros (Flip‐Flops) organizados de forma tal que representen una estructura geométrica en filas y columnas del tamaño necesario. Sin embargo, esto crea un problema de tamaño y de acceso a la información, por lo que para almacenamiento de información relativamente grande, se tiene que hacer uso de memorias integradas. Estas memorias integradas tienen como objetivo optimizar el acceso a la información, tanto en los modos de lectura como de escritura, la optimización del consumo de la memoria y la optimización del control para el acceso a la información.
Por lo general, el proceso de guardar información se llama escritura y el proceso de leer datos se llama proceso de lectura. En la mayoría de los casos, estos procesos se hacen a través de un sistema programable (microprocesador, CPU u ordenador). Estos sistemas cuentan con una unidad aritmético/lógica (ALU), un conjunto de registros y lógica de control que se encarga de ejecutar estas lecturas y escrituras a memoria para hacer el trasiego de operaciones de un programa. Nótese en la figura siguiente tres caminos, denominados buses, el de datos (bidireccional), el de direcciones (unidireccional) y el de control (unidireccional). El bus de datos, como su nombre lo indica, tiene por objeto llevar los datos de la CPU a memoria (proceso de escritura) o de leer los datos de la memoria a la CPU (proceso de lectura). El bus unidireccional llamado de direcciones, se corresponde con la dirección de memoria (posición de la misma) en donde se localiza el dato a leer o escribir, según lo indique el bus de control. El tercer bus o de control, tiene que ver con dos líneas que la CPU se encarga de poner a la memoria y son la señal de lectura/escritura (read/write), por lo general una sola línea que indica a la memoria si se procede a leer (read/write=1) o en su caso a escribir (read/write=0) y el CS (Chip Select), una de las señales más importantes para el diseño con memorias. El Chip Select como su nombre lo indica, es una señal de control que permite a la memoria correspondiente poner en modo activo su bus de datos en modo lectura, en otro caso, dejar ese bus de datos desconectado o en tercer estado, es decir “al aire”, por lo que el bus de datos puede ser compartido con otras memorias u otros dispositivos conectados al bus de datos. Es labor del ingeniero de diseño la organización de las memorias y dispositivos para controlar a través de las señales correspondientes de CS una correcta organización de memoria. Esta organización de memoria y dispositivos se le llama “mapa de memoria” y se verá con mayor detenimiento más adelante.
40
Figura
4.1.1
Existaplicformcomoesto (grupcomúUna
La clfuncisólo memmás puedun conececorrerequestascuan
Las mmantalimediodoescriExisteste mem
Una primaleatde mdía, t
a 43: Principa
1 Clasifica
en una varaciones. De
mas de expreo parámetres, kilobitspos de 8 o 9ún usar el wpalabra de
asificación ionalidad. Alectura o re
mory (RWMflexibles d
de almacenaondensadoesario circuespondienteieren de uns memoriasndo la tensió
memorias Rtienen su entación. Los o transibe el conteen diferentfusible. M
moria.
segunda claera clase etorio. Lo qumemoria en tal que en
ales inter‐ con
ación de me
riedad de fependiendoesar el uso dro de medids (Kbits), me9 bits), estoword (palab32 bits, rep
más generaA nivel geneead‐only me). Como suebido a esar en un flipr (celda deitería de ces y dado qna tensión ds se les clasión de alime
ROM, o de sinformació
La informacstores funcenido de lates tipos de
Más adelant
asificación ses las llamae significa qorden aleael mundo d
exiones de un
emorias sem
formas, tamo del nivel de la memoda equivaleegabits (Mbo es, Kbytesbra), el cuapresentaría
al de las meral se puedemory (ROM nombre losta caracterp‐flop (celda memoria dcontrol parque el circude alimentaifica tambiéentación se
ólo lectura,ón aún cución digital cionando ena memoria,e memoriaste se detal
se basa en ladas randomque el dato torio. Esta de los siste
na memoria c
miconducto
maños y estde abstrac
oria, por ejente, al númbits), gigabis, Mbytes, Gl representun ordenad
emorias seden clasificaM) y memoo indica, lasrística. En ea de memodinámica), ra la lectuuito de conación para mén como mecorta.
, tienen la cuando no se “guardan modo fus, mecanisms ROM depelan cada u
la forma enm‐access m binario pusegunda clmas digital
con un sistem
oras
tilos en funcción que uemplo, a nivmero individits (Gbits) Gbytes o Tbta la unidaddor que trab
miconductoar en dos grarias de lects memoriasesta últimaria estáticarespectivamra y escrittrol y las cmantener eemorias vol
característicestén cona” a travéssible. Existe
mo con el qendiendo duna de las
la que se tmemory (RAede ser leídasificación es se utiliza
Sistemas d
ma digital.
nción de lausemos, exvel de circuidual de celdo Terabits (bytes. A nivd de cálculobaja con dat
oras suele sandes grupoura y escrits de lectura, el dato d) o en la carmente. En atura del bieldas son al dato binarlátiles, el bit
ca de ser nonectadas as de una ine un procesque se “readel tipo de celdas par
rabaja con lAM) o memdo o escrito es la más ea los términ
digitales avanz
Julio
as necesidaxisten diferito usamos das de mem(Tbits), o elvel de sistemo del ordentos de 32 b
ser en baseos, memoritura o read‐a y escriturdigital, el brga capacitiambos casoit en las cactivas, es rio en la cet pierde su
o volátil, es a la fuentnterconexióso en el cuarma” el furegeneracióra cada tip
la memoriamorias de ao en una posempleada hnos RAM y
zados
o 2014
des y entes el bit
moria, l byte ma es nador. its.
e a su ias de ‐write a son bit, se va de os, es celdas decir, lda, a valor
decir e de ón de uál se usible. ón de po de
a. Una cceso sición oy en ROM
Diseño avanzado de sistemas digitales
Julio 2014 41
para denominar a las memorias. Con este último concepto la tabla siguiente resume la clasificación de memorias a un nivel general.
Por supuesto existen muchas cantidades de diferentes tipos y modos de operación de memorias conforme las aplicaciones y versiones de microprocesadores se han venido desarrollando, especialmente con su funcionalidad. Así pues, aparecen memorias del tipo multipuerto o de acceso simultáneo por más de dos interfaces. Este tipo de memorias responden a un requisito de necesidades de ancho de banda, es decir, acelerar o paralelizar el acceso a los datos con el aumento de puertos para leer y/o escribir, tal es el caso de memorias FIFO (first‐in, first‐out), CAM (contents‐addressable memory), memorias multipuerto y una lista larga, según la funcionalidad y aplicación a la que están dirigidos. Algunas de estas se incluyen en la tabla de clasificación y se verán en este texto. El uso y aplicación de las estructuras así como la forma de operación, se verá en los siguientes apartados.
Acrónimo Tipo Aplicación
RAM (volátil)
SRAM Static random access
Rápida y de baja densidad. Un FF por celda Memoria cache
DRAM Dynamic random Access
Alta densidad. Un transistor por celda. Memoria principal de un ordenador
FIFO First‐in first‐out memory
Memoria multipuerto usada como buffer de interfaz de sistemas
CAM Contents‐addresssable memory
Memoria multipuerto de acceso según contenido del dato
VRAM Video random access memory
Memoria multipuerto de acceso de diferente ancho de puerto
ROM (no
volátil)
ROM
Read only memory Grandes series de producción. No es borrable. Grabado en fábrica.
PROM Programmable ROM Grandes series de producción. No es borrable. Permite un grabado.
EPROM Erasable programmableROM
Borrable con luz ultravioleta. Permite regrabado
EEPROM Electrically erasable programmable ROM
Borrable de forma eléctrica. Permite regrabado
FLASH Multiple Access EEPROM
Acceso por bloque en lectura y escritura en la misma operación
Tabla 4: Clasificación de memorias semiconductoras
4.1.2 Arquitectura interna y temporización
Una memoria semiconductora se puede ver como un array en forma de pila de N‐words cada una de ancho M‐bits. Cada vez que leemos o escribimos a la memoria, lo hacemos en un formato de longitud un word, es decir, una lectura o una escritura de una palabra en formato de M‐bits. Esto se hace con la ayuda de un control que permite seleccionar la palabra que se accede en lectura o escritura de las N‐palabras que dispone la memoria. Por lo tanto, se necesita un conjunto de S0‐SN‐1 de señales que indiquen qué palabra es la que se está seleccionando y solamente una Si puede estar activa a la vez.
42
La esbasa princdecoextera N=de an
Figura
Toma1Kby(byteestruingenword
Evidegradogeomreorgel prno pe
Otro mismcalidComtiemestá readaccesposicescriescri
strategia pa en el esqcipales y dodificador qrior, llamad=2K líneas dencho M‐bits
a 44: Arquitec
ando comoyte, N será e). La memuctura de 10niero de did.
entemente,o de integrmetría del ganizar el poceso de leenalizar el t
aspecto immas, son lasad de la meo cualquierpo desde qdisponible
d‐access‐timss‐time, sieción de metura read‐wturas suce
ara implemeuema de ldos buses que tiene codo bus de die selección,s y por este
ctura de mem
o ejemplo laigual 1024
moria es en024 palabraseño, tamb
, las estructración de loconjunto
proceso de dectura y esctiempo de a
mportante ds característemoria. Ya r circuito digue se indicaa la salida
me. En consendo el tieemoria indiwrite‐cycle.esivas, proc
entar este ta figura sigde inform
omo objetivirecciones A, donde sólo bus, se lee
moria de N‐pal
a figura anto lo que etonces de as de anchobién se sue
turas de mos circuitos,de celdasdecodificacritura. Se inacceso a la i
de las memticas de temhemos vistogital este pa la posiciónde la memosecuencia empo entrecada. Un t El cuál eceso que
ipo de estruguiente, enmación covo reducir A0‐AK‐1. Esteo hay una l o escribe u
labras y M‐bi
erior, si ques lo mismouna capaco 1 byte. Deele llamar p
emoria son, por lo qus de almación y de la ntroduce minformación
morias en losmporizacióno que las mroceso no en de la memoria. Este tiexiste un te una peticercer tiemps el tiempes usado
uctura de mn la que senectados. el número decodificadínea activa una palabra
ts por palabra
eremos impo 210 palabidad de 8Kesde el punposición de
n ahora mue el decodiacenamientomemoria pás lógica den.
s aspectos n. Estos aspmemorias sees inmediatmoria a leeriempo es llaiempo llamción de escpo, es el co mínimo ampliamen
Sistemas d
memoria seme pueden vEl primer de líneas ddor conviera la vez. El.
a.
plementar uras y M seKbits o de nto de vista memoria a
uy complejaificador de o, obligan para disminue control co
de diseño ypectos tamb pueden “leto. Existe unr y el tiempamado tiemmado de escritura y la iclo complenecesario nte en los
digitales avanz
Julio
miconductover dos blobloque e
de selecciórte la direcc bus de dat
una memorerá igual a 81Kbyte con del diseñaa una pala
as debido adireccionea distrib
uir el retardon la finalid
y elección dbién nos diceer” o “escrna latencia po en que elmpo de lectscritura o w escritura eto de lectpara lectus algoritmo
zados
o 2014
ora se oques es un ón del ción A tos es
ria de 8 bits n una dor o bra o
l alto s y la uir y do en ad de
de las cen la ribir”. en el l dato tura o write‐en la ura y ras y os de
Diseñ
Julio 2
progseríaque conti
Figura
4.1.3
ROMun acruzaintertrans
ño avanzado
2014
ramación. Ea raro que lotener en cinuación.
a 45: Parámet
3 La celda
M. Concepturray de filaan. Una cerruptor lógicsistor MOSF
DAT
WRITE
READ
de sistemas
Estos tres po fueran. Adcuenta cua
tros de tempo
a de memo
ualmente, laas y columnlda es capaco controlaFET. Tal com
Read
TA
TE
D
s digitales
parámetros demás de eando se dis
orización prin
ria
a estructuranas. Una ceaz de almado por tensmo se puede
d access
Read cycle
de tiempo,stos existenseña con m
ncipales de un
a de la memelda es una cenar un bsión a travée ver en la s
Read acc
Data v
, no tienen n otros no mmemorias i
na memoria.
moria ROM posición dobit. Este bités de diodossiguiente fig
cess
Wvalid
por qué sermenos impontegradas
es la más seonde la fila t es puestos, un transisgura.
Write cycle
Write access
Data writ
r iguales, esortantes quque se ver
encilla. Lo fy la colum
o a través dstor bipolar
tten
43
s más e hay rán a
forma na se de un r o un
44
Figura
RAMconjutipo la figmantmantfuercconses vo
Figura
RAMcon t
a 46: Represe
M Estática. Lunto de traMOS. La cogura siguientienen Q=1teniendo /Qce el camecuencia deolátil.
a 47: Represe
M Dinámica. transistores
entación de un
Las celdas qansistores configuraciónnte que m1, aseguranQ=0. Este ebio. Si se e la memor
entación de un
Las celdass MOSFET.
na celda en RO
ue compononectados, n de estos tientras un ndo que Mestado se mcorta la ia RAM, se
na celda de m
que compEl esfuerzo
OM y de una
nen este tip ya sean trtransistoresel par de
M2 y M1 emantiene haalimentaciópierde. Lo q
memoria RAM
onen este o realizado
ROM de 4x4
po de memoansistores bs forman untransistoreestén en elsta que deón, el conque signific
estática
tipo de mepor las emp
Sistemas d
bits.
oria están fbipolares o n Latch. Pues a la dere modo comsde fuera dtenido de a que este t
emoria, sonpresas tecn
digitales avanz
Julio
formadas p transistoreede usted vecha (M4 ymplementade la celda la celda
tipo de mem
exclusivamnológicas en
zados
o 2014
or un es del ver en y M3) ario y no se y en moria
mente n este
Diseñ
Julio 2
tipo pequmemen lacomp
El prque comptransque despocurembaadicien ta
Las condde epermrefrerefrellamacontlas m
Figuratransi
4.1.4
Existdato
ño avanzado
2014
de memoriueñas, lo qumoria RAM da actualidaplejidad y a
rincipio de es parte intpletamentesistores, es el condens
pués de la lre igual enargo requional. Por loamaño que
memorias densador reste sistemamitiendo maesco son 2,4esco según ar RAS (rowrol (dynamimemorias di
a 48: Represistores. Derec
4 Diseño
en dos mods (palabra
de sistemas
as es muy gue significa dinámica sed a celdasumentando
esta clase dtrínseca al e descargadque la lectusador descaectura se h la celda foere de uno que la cella celda de
dinámicasequiere de ua de refrescantener el v4 u 8 milisel tipo de
w‐address stic memory cnámica.
sentación decha, celda con
con memo
dos de trab) o increm
s digitales
grande, busmemorias de realizaba cs con un so la densida
de memoriatransistor, do (un “0ura es destrargue, por haga una opormada po amplificadda de una mmemoria d
presentanuna circuiteco es reescrvalor de la tegundos. Ememoria. Ltrobe) y CAScontrol) rea
e una celda n un transisto
rias
bajar con mmentar su
scando altade muy altacon 3 o 4 trolo transisad.
as es la carsi está com0” lógico). ructiva, es dlo que pasperación deor un transidor en la memoria didinámica de
n una comería adicionribir las celtensión en Existen difeLas señales S (column‐aalizan la tem
de memorior.
memorias, ycapacidad
as densidada capacidadransistores,tor, reduci
rga del ConmpletamentLa desven
decir, que laa a “0”. Poe escritura stor, la leclínea de lnámica de 3 transisto
mplejidad al, denomindas leídas el condensrentes tipode control
address stromporización
ia RAM diná
a sea incred (número
WL
CBL
es con celdd. En sus ini, véase la fiendo signif
ndensador Ce cargado (ntaja de la lectura deor lo que epara restautura no es ectura y u1 transistorres.
adicional. nada “refredurante el ador. Los vaos y modos de este sisobe) y junton del proces
ámica. Izquie
mentar el ade posic
M1
BL
das cada vezicios, la celdgura, para ficativamen
Cs, conden(un “1” lógia celda cel “1” lógicoes necesariourar el valo destructivun condenr no es un t
El uso desco”. La fuciclo de lecalores típic de sistemstema se so a un sistemso de refres
erda, celda
ancho de bciones). En
CS
45
z más da de pasar nte la
sador ico) o on 3 o hace o que or. No a, sin sador tercio
e un nción ctura, os de as de uelen ma de co de
con 3
its de una
46
“orgade prepredireces demem
Figura
Expamemrealiztipo, datoes decomo(4 bitla mees nenecetipo
anización dposiciones xesenta una cciones es de 1024 palamoria es de
a 49: Diagram
andiendo elmoria en pazada con m como en las para ver ecir, el Chipo en lecturats) se escribemoria de aecesario el esarios 10 bRAM o tipo
e memoriax número dmemoria dde K=10 y babras, cada 4Kbits o 40
ma de bloques
bus de datsos de tam
memorias dea figura sigula conexiónp Select sea. La difereben en la mabajo. El bu mismo núbits. El métoo ROM.
”, cada mede bits pore 1024 posbus de datopalabra de 096 bits, org
s de una mem
tos. Siguienmaño el bus e 1Kx4, tenduiente. En en correcta. activa en ncia es que
memoria de us de direccúmero de sodo ilustrad
moria está r posición. iciones conos de M=4, 4 bits. Otraganizada en
moria genérica
do el criterde datos.
dremos unasta figura sAmbas meambas en e ahora el bla parte supciones está señales de do se aplica
representa Así pue 4 bits de dsegún la figa forma de n 1024 posic
a y una memo
io anterior, Por ejempla organizacie ha expandmorias trabel mismo ibus de datoperior y la psimplemendirección, a a cualquie
Sistemas d
ada de un mes, una meatos por pogura siguienexpresar elciones de 4
oria de 1Kx4.
podemos io, una memón con 2 mdido el bus bajan de fonstante, tas es de 8 bparte (4 bitsnte conectapara un 1Ker tipo de m
digitales avanz
Julio
modo en núemoria de osición. El bnte. La meml tamaño debits.
ncrementamoria de 1Kmemorias dede direcciorma simultnto en escits, la partes) se escribedo en paraK posicionememoria, y
zados
o 2014
úmero 1Kx4, us de moria e esta
r esta K x 8, e este ones y ánea, ritura e baja en en lelo y s son ya sea
Diseñ
Julio 2
Figura
Expanúmcaso antenúmver qneceA0módestadel bumemdel bEn o(000interposiccorre
ño avanzado
2014
a 50: Expandi
andiendo eero de posise expanderior y en esero de bitsque las direesitan 11 bA9. La direulo esta “acdo). Se geneus de datomoria de arrbus de datootras palabr
16) hasta larcambia el ciones de mesponden a
de sistemas
endo el bus d
el bus de diciones, es e de 1Kx4 aste ejemplo, pero diferecciones rebits. Estos bección más ctivo” por meran por taos es compriba en la fios), mientraras, se puea 0111111control de
memoria son la memoria
s digitales
de datos a una
direccionesdecir, en laa 2Kx4. Tal ambos mórentes en oequieren debits se conalta, la A1medio del Cnto dos línepartido por gura, se enas que la deden leer/es1111 (3FF1l bus de dn 10000000a de abajo e
a memoria de
s. Suponga a capacidad como ustedódulos de morganizacióne un bit mnectan en 10, se utilizaChip Select eas de Chip ambos m
ncuentra acte abajo en scribir las p
16). Ahora datos entre 0000 (40016en la figura
e 1Kx8 con me
ahora queen posiciod ya se ha dmemoria sonn, 1Kx8 = 2ás (A10), pparalelo loa para seley cuáles noSelect. Adeemorias. Etiva (los datla figura peposiciones bien, cuandambas me) hasta la 0.
emorias de 1K
e es un innes de la mdado cuentn de la mismKx4 = 8K bpues para 2s primerosccionar queo (su bus deemás, fíjesentonces cutos se puedermanece ede memordo la direcemorias, ta111111111
Kx4.
cremento memoria. Enta, en el ejema capacidaits. Puede 2K posicions 10 bits, de dispositive datos en te en la figuruando A10=den leer a ten tercer esria 0000000cción A10=al que ahor11 (7FF16), q
47
en el n este emplo ad en usted es se desde vo del tercer a que =0, la través stado. 00000 =1, se ra las ue se
48
Figura1Kx4.
Expaneceduplifigurha popor m
Figura1Kx4.
a 51: Expandi
andiendo eesitamos unicamos el bas cuando eodido dedumedio de lo
a 52: Expandi
endo el núme
el bus de n módulo bus de datosexisten busucir, necesitos dos bits d
iendo el núm
eros de posici
datos y ede memors y cuadriples que van aremos de de direccion
ero de posici
iones a un m
el número ria de 4Kx8icamos el nen paralelocuatro Chip
nes más alto
iones a un m
ódulo de me
de posicio8, con memnúmero de po, se usa gráp Select difeos (A11 y A1
módulo de me
Sistemas d
moria de 2Kx
ones. Supomorias de posiciones. áficamente erentes, que10).
emoria a 4Kx8
digitales avanz
Julio
x4 con memor
onga ahora1Kx4. Es Para facilitel bus. Tal ce son gene
x8 con memor
zados
o 2014
rias de
a que decir, tar las como rados
rias de
Diseño avanzado de sistemas digitales
Julio 2014 49
Conforme la arquitectura del módulo de memoria se va expandiendo en los datos o en las posiciones de memoria, el sistema se complica gráficamente. Tal que dos formas alternativas de expresar la distribución y organización de memoria y de dispositivos es a través de una forma tabular o en bloque. Ambos formatos representan un ”mapa de memoria” y nos lleva a la distribución de la memoria en el módulo de una forma más sencilla de ver. El mapa de memoria para el ejemplo anterior es el siguiente:
Direcciones de memoria Chip Select Posición
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS0 CS1 CS2 CS3 (hexade‐cimal)
0 0 X X X X X X X X X X 0 1 1 1 000‐3FF
0 1 X X X X X X X X X X 1 0 1 1 400‐7FF
1 0 X X X X X X X X X X 1 1 0 1 800‐CFF
1 1 X X X X X X X X X X 1 1 1 0 D00‐FFF
Tabla 5: Mapa de memoria de módulo de 4Kx8 con memorias de 1Kx4 expresado en forma de tabla.
Posición de inicio y fin
(decimal) Bit7
Bit0
Posición de Inicio y fin (hexadecimal)
0 000 1K x 8
1Kx4 (x2) 1023 CS0 3FF 1024 400
1K x 8 1Kx4 (x2)
2047 CS1 7FF 2048 800
1K x 8 1Kx4 (x2)
3xxx CS2 BFF 3xxx C00
1K x 8 1Kx4 (x2)
4095 CS3 FFF
Tabla 6: Mapa de memoria de módulo de 4Kx8 con memorias de 1Kx4 expresado en forma de bloque.
50
4.2
Figura
4.3
4.3.1
Cuanmemel comultlas raplicmemcapaposicmemproceotro conccompcon e
Las v
Lt
S
A
S
Sb
Integrac
a 53. Conexió
Memoria
1 Memor
ndo dos o mmoria, existeonflicto. El iplexa los breglas de aaciones esp
moria con ccidad de leciones de morias sueleesa la escritpuerto de
cepto tieneparten un eel mismo re
ventajas de
La comunicransferir da
Simplificació
Acceso direc
Simplificar lo
Simplificar lbuffers y ad
ión con m
n típica de un
as específ
rias multipu
más sistemae la necesidárbitro o
buses de datcceso, por peciales exicaracterísticer o escribimemoria. en ser de tetura por une salida, une un benefespacio de eloj de form
este tipo de
cación y siatos, a la ve
ón del diseñ
cto a memo
os sistemas
os sistemasaptando ve
microproce
n microproces
ficas
uerto. FIFO
as tienen laad de contrcontroladotos, de direejemplo pste la posibcas específir por dos diLas difereelecomunica puerto de na posiciónficio impormemoria t
ma asíncrona
e memoria
ncronizacióz que almac
ño de sistem
oria (DMA) s
de memor
s de comunlocidades e
esadores
sador con disp
a necesidadrolar o “arbor de acceecciones y dpor prioridabilidad de ecas, tal es iferentes dintes aplicaaciones, poentrada, al
n por detrártante tamtrabajando a.
son:
ón de dispcena.
mas con me
sin detener
ria caché.
nicaciones, entre sistem
positivos exte
d de compabitrar” el accso, no es de control, sad, por tievitar este áel caso despositivos daciones quor ejemplo e mismo tiemás o en otrbién cuandcon diferen
positivos a
moria comp
los accesos
usando mmas.
Sistemas d
ernos y de me
artir datos oceso a la mmás que usegún se fijempo, etc. rbitro con ae memoriasde forma sime requiereen multimempo se puera zona dedo hay dontes velocid
través de
partida.
s a la CPU.
emorias m
digitales avanz
Julio
emoria.
o un espacemoria evitun sistemaen los criteEn este tiparquitecturs que tengmultánea een este tipedia. Mientrede ir leyende memoria.os sistemasdades de re
memoria
ultipuerto
zados
o 2014
cio de tando a que rios o po de ras de gan la n dos po de ras se do en Este s que eloj o
para
como
Diseñ
Julio 2
Llad
Figura
Memmemlógicentrala meWriteen loTal cizqui(Reseseñaescrialcanmuy
Figura
4.3.2
redusistenivella sig
ño avanzado
2014
La memoria a misma pode ellos.
a 54. Memori
morias FIFOmorias intega de controa”, es “ el pemoria y soe. Este tipoos sistemas como se ve erdo) y un et) ambos l de Vacío stura y la senza al de lecimportante
a 55. Estructu
2 Memor
La memcir el tiempma se cones que tienguiente figu
de sistemas
cuenta porosición por a
a de doble pu
O. El concepgradas y se bol que se aprimero queolamente ha de memorde comunien la figur puntero dpunteros ese activa. Si eñal de Vacctura, se aces para el co
ura principal d
rias cache
moria caché po de accesnoce como nen los sistera.
s digitales
r lo general ambos puer
uerto.
pto FIFO (Fibasa en unaañade para e sale”. Se say datos de ias son usadcaciones y ra, hay un pde lectura (stán en la se escribe io se desactiva la señaontrol de la
de una memo
es una memo a la memjerarquía demas progr
con un conrtos en el m
irst In, Firsta arquitectulograr un
simplifican tescritura/ledas para hade control puntero de (bus de direprimera ub (Write) se ctiva. Cuandal de Lleno. FIFO desde
ria FIFO.
moria SRAMmoria principde memoriramables co
ntrol internomismo insta
t Out), es aura de memestructura todos los buectura, juntacer almacey se compoescritura (ecciones al bicación deincrementado el registrEstas dos úe los dispos
M usada popal. La orgaia. Es una omplejos. Se
o para evitante. Dando
ampliamentmoria de dobsimple de uses de datto con las seenamiento yorta como ubus de direlado derecmemoria (
a el punteroro de direccúltimas señaitivos que la
r la CPU conización deorganizacióe puede ve
ar la escrituo prioridad a
te usado coble puerto “el primerotos al exterieñales de Ry control deuna cola cirecciones encho). En el (FIFO vacíao de direccióción de escales (“flags”a acceden.
on el objetoe memoria eón piramider la jerarqu
51
ura en a uno
on las y una o que or de ead y e flujo cular. n lado inicio ) y la ón de ritura ”) son
o de a en un al en uía en
52
Figura
cercameminforque respe
hacemás menouna la caque e
Figura
La orun bque
a 56. Jerarquí
La memoa posible a moria princrmación se los datos ecto a la co
El funcioe una copia lento que or al inicialubicación eché. Si es ases mucho m
a 57. Estructu
rganización loque de coinfluyen di
ía de memoria
oria caché elos registrocipal que conoce comoriginales pia localiza
onamiento de un bloqulos accesosl. En el moen memoriasí, el procesmás rápido q
ura y organiza
de la memontrol de diirectamente
a en un sistem
es una mems de la CPUse utilizanmo principiotienen un da en la cac
es simple, cue de datoss para commento en ca principal, psador de inmque de la le
ción de mem
moria caché recciones ae en el ren
ma digital.
moria más pU, la cual alm con máso de localidcoste de tché.
cuando se s en la memmpletar el bcuando el pprimero vemediato leeectura o la e
oria y una CP
pasa por ea la memorndimiento
pequeña y mmacena cops frecuencidad. Esta prtiempo alto
accede pormoria caché.loque, el tiprocesador rifica si unae o escribe eescritura a la
PU.
el diseño deia Cache, code la mem
Sistemas d
más rápida lpias de datoa. Esta duropiedad seo en veloci
r primera ve El acceso aiempo de anecesita le
a copia de loen la memoa memoria
e las memoonsiderandomoria y por
digitales avanz
Julio
ocalizada loos ubicadosuplicidad de justifica pidad de ac
ez a un datal primer daacceso medeer o escribos datos esoria caché (principal (M
rias Mca, Mo varios facr lo tanto e
zados
o 2014
o más en la de la uesto cceso,
to, se ato es dio es bir en stá en Mca), Mpp).
Mpp y ctores en su
Diseño avanzado de sistemas digitales
Julio 2014 53
objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la caché y de sus bloques. Además se definen tres conceptos básicos para su diseño:
Bloque: Cantidad de información en posiciones de memoria que se define para estar presente o no en Mpp y Mca. Es importante definir el tamaño del bloque y de la Mca. Un tamaño de Mca grande tiene por el contrario una lógica de control más compleja, el acceso es más lento y físicamente es más grande. Por el contrario, si la Mca es pequeña, se incrementa la cantidad de fallos a la Mca.
Acierto: Cuando el dato solicitado por la CPU está en la Mca
Fallo: Cuando el dato solicitado por la CPU no está en la Mca.
Rendimiento: Se calcula del siguiente modo:
1
∗ 1 ∗
donde:
ó ó
Las tres formas de ubicación más utilizadas son:
Cache Directa: Al bloque i‐ésimo de memoria principal le corresponde la posición i módulo n, donde n es el número de bloques de la memoria caché.
Caché Asociativa: Cualquier bloque de memoria principal puede ir en cualquiera de los n bloques de la memoria caché.
Caché Asociativa por conjuntos: La memoria caché se divide en k conjuntos de bloques, así al bloque i‐ésimo de memoria principal le corresponde el conjunto i módulo k. Dicho bloque de memoria podrá ubicarse en cualquier posición de ese conjunto.
Debido a que el tamaño de la Mca es mucho menor que la Mpp, existen una serie de políticas de reemplazo para determinar que bloques de la Mca se deben reemplazar.
Reemplazo Aleatorio: El bloque es reemplazado de forma aleatoria.
Reemplazo FIFO: Se usa un algoritmo FIFO (primero en entrar es el primero en salir) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente, pues utiliza el parámetro de antigüedad en el dato.
Reemplazo (LRU) el menos recientemente usado: Se sustituye el bloque que hace más tiempo que no se ha usado en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí.
Reemplazo (LFU) el de menos frecuencias usadas: Se sustituye el bloque que ha experimentado menos referencias.
Sistemas digitales avanzados
54 Julio 2014
Por último las políticas de lectura y escritura a la memoria Cache, que son:
Lectura de Cache
Dato en caché Dato a la CPU
(Load Through)Dato no en caché Lee de Mpp y rellena cache o, Dato no en caché Rellena Caché de Mpp y dato a CPU,
Escritura de Cache
Dato en caché Escribe dato en Mca y Mpp (Write Through) Dato en caché Escribe dato en Mca, escribe en Mpp hasta que el bloque es reescrito. (Write Back)
Dato no en caché Leer de Mpp el dato y actualizar (Write Allocate).
Cache Directa. Cada bloque de la memoria principal tiene su posición en la caché y siempre en el mismo sitio. Suponga en el ejemplo siguiente:
Microprocesador de 16 bits: direcciones y datos de 16 bits.
Memoria caché de 512 Bytes. (bus de direcciones de caché de 9 bits)
Memoria principal de 32KBytes. (la mitad del mapa de memoria)
Numero de palabras por bloque (K) = 8 (3 bits de dirección).
Número de bloques: 512/8 = 64 bloques (se necesitan 6 bits de dirección)
Tag = 16‐6‐3 7 bits ( se utilizan sólo 6)
Tamaño de palabra de la memoria cache: 16 bits de datos + 7 bits de tag 23 bits
Diseñ
Julio 2
Figura
Cachde labloqcompSigui
M
M
M
N
N
T
Tb
ño avanzado
2014
a 58. Correspo
he Asociativa memoria cues para vepleja para endo los da
Microproces
Memoria ca
Memoria pr
Numero de
Número de
Tag = 16‐3 Tamaño de bits
de sistemas
ondencia en u
va. Los blocaché, comerificar aciehacer la coatos del eje
sador de 16
ché de 512
incipal de 3
palabras po
bloques: 51
13 bits ( s
palabra de
s digitales
una memoria
ques de la probando srto. El princomparaciónmplo anter
6 bits: direcc
Bytes. (bus
32KBytes. (la
or bloque (K
12/8 = 64 bl
se utilizan s
la memori
caché directa
memoria psolamente lcipal inconvn en paraleior,
ciones y dat
s de direccio
a mitad del
K) = 8 (3 bits
loques (se n
ólo 12)
ia cache: 16
a
principal se la etiqueta veniente eselo de todo
tos de 16 bi
ones de cac
mapa de m
s de direcció
necesitan 6
6 bits de da
alojan en cde todos y que precis
os los camp
its.
ché de 9 bits
memoria)
ón).
bits de dire
atos + 12 b
cualquier bcada uno d
sa una circupos de etiq
s)
ección)
bits de tag
55
loque de los uitería queta.
28
56
Figura
Cachantesiend
El funun cpertedirec
Sigui
M
M
M
N
N
Nd
T
T
a 59. Correspo
he Asociativriores. Estdo C el nº d
ncionamienconjunto deenecen a dcta y menor
endo el eje
Microproces
Memoria ca
Memoria pr
Numero de
Número de
Número de de dirección
Tag = 16‐8 Tamaño de p
ondencia en u
va por Conjá compuese bloques d
nto consistee la caché, icho conjunr cantidad d
emplo anter
sador de 16
ché de 512
incipal de 3
palabras po
bloques: 51
bloques pon
8 bits ( se
palabra de
una memoria
untos. Estata por “r” de la memo
e en que cadpero se p
nto. Ello pede comparac
rior:
6 bits: direcc
Bytes. (bus
32KBytes. (la
or bloque (K
12/8 = 64 bl
or conjunto
e utilizan só
la memoria
caché asocia
a cache conbloques y “ria caché.
da bloque dpuede ubicaermite mayociones que
ciones y dat
s de direccio
a mitad del
K) = 8 (3 bits
loques (se n
= 2; Núme
lo 7)
a cache: 16
tiva
ntiene las ve“q” conjunt
de la memoar en cualqor flexibilidla totalmen
tos de 16 bi
ones de cac
mapa de m
s de direcció
necesitan 6
ero de conju
bits de dato
Sistemas d
entajas de ltos de mod
oria principaquiera de ldad que la cnte asociativ
its.
ché de 9 bits
memoria)
ón).
bits de dire
untos = 64/
os + 8 bits d
digitales avanz
Julio
los dos métdo que C =
al tiene asiglos bloquescorrespondva.
s)
ección)
/2 = 32 5
de tag 24
zados
o 2014
todos q×r ,
gnado s que encia
5 bits
4 bits
Diseñ
Julio 2
Figura
Ejemtiemmemprinc
‐ ‐ ‐ ‐ ‐
ño avanzado
2014
a 60. Correspo
mplo de cálcpo de acce
moria princicipal. Supon
Memoria4 bloqueTiempo dTiempo dLa memothrough.
de sistemas
ondencia en u
culo de tiemeso efectivopal 48 a 95nga una me
a caché de es de 16 palde acierto (de fallo (tieoria cache .
s digitales
una memoria
mpo de acceo para un p5 y realiza 1moria cache
mapeo direabras cada (tiempo efeempo de accestá vacía e
asociativa po
eso. Hago eprograma qu10 bucles de con las sig
ecto bloque
ectivo de accceso a Mppen el arranq
or conjuntos
el cálculo deue se ejecudesde la poguientes ca
ceso a Mca) 2500 ns., que y utiliz
e la tasa de uta desde lasición 15 a racterísticas
) de 80 ns. lectura de ba el modo d
acierto (hitas posicion 31 en mems:
bloque. de lectura
57
t) y el es de moria
Load‐
Sistemas digitales avanzados
58 Julio 2014
Evento Posición Tiempo Comentario
1 fallo 48 2500ns Bloque 3 de Mpp a Bloque 3 de Mca
15 aciertos 49‐63 80ns*15=1200ns
1 fallo 64 2500ns Bloque 4 de Mpp a Bloque 0 de Mca
15 aciertos 65‐79 80ns*15=1200ns
1 fallo 80 2500ns Bloque 5 de Mpp a Bloque 1 de Mca
15 aciertos 81‐95 80ns*15=1200ns
1 fallo 15 2500ns Bloque 0 de Mpp a Bloque 0 de Mca
1 fallo 16 2500ns Bloque 1 de Mpp a Bloque 1 de Mca
15 aciertos 17‐31 80ns*15=1200ns
9 aciertos 15 80ns*9=720ns Ultimas 9 iteraciones del bucle
144 aciertos 16‐31 80ns*144=12,240ns Ultimas 9 iteraciones del bucle
Número total de aciertos = 213 Número total de fallos = 5
213218
97,7%
213 80 5 2500
218136 .
4.4 Ejercicios
1) Calcule el número de circuitos de memoria de 16Kx4 necesarios para desarrollar los módulos siguientes:
a. 256K x 8 b. 128K x 16 c. 1M x 4
2) Dibuje los diagramas lógicos que muestren la interconexión de un módulo de 4K x
8, con memorias tipo ROM de 4K x 1. El Chip Select de las memorias es activo a nivel bajo.
3) Dibuje los diagramas lógicos que muestren la interconexión de un módulo de 256K x 8, con memorias tipo ROM de 64K x 8. El Chip Select de las memorias es activo a nivel bajo.
4) Genere en la tabla, a continuación. el mapa de memoria para conectar memoria RAM y memoria ROM a un microprocesador de 16 bits (16 bits en el bus de direcciones y de datos), con las siguientes características:
a. Bloque de memoria para datos con SRAM del tamaño 16Kx16 en la parte más alta del mapa de memoria usando memorias SRAM del tipo 8Kx16.
b. Bloque de memoria para vídeo con SRAM del tamaño 16Kx16 a continuación hacia abajo de la anterior en el mapa, usando memorias de características SRAM de 16Kx 8, y
c. Bloque de memoria de programa con EPROM del tamaño 8Kx16 en la parte más baja del mapa de memoria usando memorias del tipo EPROM de 8Kx4.
Hacer: 1) Completar Tabla de verdad con el mapa de memoria completo. Los bloques
de memoria respectivos que manejan y su posición en el mapa.
Diseño avanzado de sistemas digitales
Julio 2014 59
2) Para la selección cuenta exclusivamente con un descodificador de 3 a 8 y puertas. Dibujar en la figura del descodificador la conexión necesaria de las señales del microprocesador de la figura para generar las señales de /CS de las memorias (activas a nivel bajo). La tabla de verdad del descodificador se puede ver a continuación, Enable, S2,S1, S0 son las entradas y x0…X7 las salidas.
3) Haga de nuevo la conexión de los módulos, sustituyendo al decodificador, con un módulo descrito en VHDL
TABLA DEL DESCODIFICADOR Enable S2 S1 S0 X0 X1 X2 X3 X4 X5 X6 X7
1 X X X 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 1 1 0 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1
0 0 1 1 1 1 1 0 1 1 1 1
0 1 0 0 1 1 1 1 0 1 1 1
0 1 0 1 1 1 1 1 1 0 1 1
0 1 1 0 1 1 1 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1 1 0
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS0 CS1 CS2 CS3
Posición de memoria (hexadecima) inicial‐final
5) Se va a proceder a una ampliación de memoria con memoria cache a un microprocesador. Tal como se está haciendo en el laboratorio. Como estamos usando una FPGA, no disponemos de mucha memoria interna, por ello una de estas ampliaciones será un módulo de memoria principal (externo a la FPGA) y una memoria cache (interna a la FPGA) para instrucciones y otra para datos. Considere el tamaño de las memorias caché (Mca) de 1K x 16 y una memoria principal (Mpp) de 1M x 16. Asuma que el tamaño de cada bloque/segmento de cache es de 32 posiciones para ambas cachés. El funcionamiento de ambas es idéntico.
Microprocesador A0 ‐ A15 D0 ‐ D15 /CS
R//W
16
16
Decodificador 3 a 8 /X0 /X1 /X2 S2 /X3 S1 /X4 S0 /X5 /X6 /X7 ENABLE
Sistemas digitales avanzados
60 Julio 2014
a. Dibuje el diagrama entre Mca y Mpp para una configuración de memoria caché asociativa. ¿Cuántos segmentos hay en memoria principal? ¿Cuántos segmentos hay en memoria caché?
b. ¿De qué tamaño es el campo TAG para localizar un segmento dentro de la memoria? ¿De qué tamaño debe ser en estas condiciones, la memoria para almacenar todos los TAGs de la cache?
c. Considere el siguiente programa para el cálculo del tiempo efectivo de acceso (Tef).El programa es un bucle que se hará 10 veces sobre un conjunto de datos. i. Posiciones del programa en memoria principal: 64 a 127 ii. Datos del programa en las posiciones 128 a 192 iii. El tiempo de acierto es de 50 ns. iv. El tiempo de fallo es de 300 ns. v. La cache está inicialmente vacía. vi. Con estas condiciones, ¿cuándo se llena la cache? vii. Calcule el número total de aciertos (hits) y fallos (miss) así como el Hit‐ratio
(Thit) y el Tiempo efectivo de acceso (Tef).
Diseñ
Julio 2
5. D
En econsSe trvelocmejosegmSiste
En ebuenecuaglobaharda paproce
Comdos gcon l
Figura
El blembadatoEn epueddiseñ
Las Aque Por
ño avanzado
2014
Diseño se
este capítuecución derata, pues, cidades eleorar la eficamentado semas. Una p
ste sentidonos circuitoslizar las ruales. Lo queware que prtir de las esado digita
o se ha comgrandes bloa ruta de d
a 61. Arquitec
loque de cargo la coms, en dondeste sentidode abordar ño de arquit
Arquitecturahan de ser ello, su ef
de sistemas
egmenta
ulo se abo altas velocde diseñar
evadas; adeacia de la rue ha basadperspectiva
o el objetivos combinacutas de dae se pretendpermitan obcaracterístal de señal,
mentado, tooques, comoatos.
ctura genérica
control estámplejidad hae se define o, este últimde diferentectura par
as Serie se utilizados tficacia en
s digitales
ado
rda el discidades de r arquitectuemás de euta de datoo en la obhistórica.”
o no es estionales o qtos o biende hacer es btener la máicas del algcodificació
odo sistemao el de la fi
a de un sistem
á compuesardware deel número mo bloque ntes formasalelo o con
caracterizatantas vececuanto a v
seño de nucálculo y duras óptimaemplear nuos. La descrbra de F.M
tudiar la meue permitan optimizar estudiar enáxima velocgoritmo quón de imáge
a digital respgura siguie
ma digital.
sto por unl sistema esde puertasde caminos: con un dun diseño s
an por la uts como númvelocidad
uevas arque altas presas para el uevos mecaripción de eMoreno, Mi
ejora de tén reducir la el rutadon profundidcidad compe se deseeenes o cálcu
ponde a unante; un blo
a o varias stá definidas equivalento de datos, diseño de segmentado
tilización demero de daes muy lim
uitecturas ostaciones coprocesamieanismos y esta metodoicroelectrón
cnicas con a profundidde determ
dad diferentutacional; e procesar. lo aritmétic
a estructuraque de con
máquinas a en el bloqute, su consusu diseño arquitecturo (pipeline)
e pocos recatos han de mitada ya
orientadas omputacionento de datopologías ología de dnica. Circui
las que obad de la lógminadas setes arquitecen algunos Por ejempco intensivo
a compuestntrol y un b
de estadoue de caminumo y velocarquitecturra serie, co).
cursos hard ser procesque existe
61
a la nales. atos a para iseño tos y
tener gica o eñales cturas casos plo, el o.
ta por loque
o, sin no de cidad. ral se on un
dware sados. e una
62
depetipo entretamb
Las AtantodepetiemjustifsencFunc
Finaltercedestamicrocálcu
El cosin esistees exrefersu ob
5.1 I
La seprocecompcosteexcetemp
Partifigurel ret
Figura
endencia dirde arquitece la entradbién aparec
Arquitecturao su controendencia depo. El costeficado, necillo mientrcional más le
mente, lasera vía alteacada imoprocesadoulo computa
oste de esteembargo la mas digitalxcelente, tarencia bibliobra “The Ar
Introducci
egmentacióesamiento,putación y ce mínimo dsivamente poral de los
endo de una siguiente,tardo del bl
a 62. Arquitec
recta con ecturas, sin sda de datoe en las Arq
as Paralelasol, en la obte los datose hardware cesariamentras que el enta.
Arquitectuernativa a portancia ores, sistemacional) y co
e tipo de Arrelación coes de compal es el caográfica tiechitecture o
ión al pipe
ón (Pipeline manteniecoste de la de hardwarla velocida datos con a
n sistema s, se puede aloque llama
ctura genérica
l volumen dser excesivaos y el almquitecturas
s o de Procetención de s que permasociado a te, en térmtiempo de
uras Segmelas dos esten el
mas empotroste moder
rquitecturasste hardwaplejidad meso de los mne ya algunof Pipelined
eline
e) surge pendo siemarquitecturre y la veload de reloj.arquitectur
secuencial safirmar queado Unidad
a de un sistem
de datos quamente commacenamienPipeline.
esamiento Pun conjunt
mita su proestas Arqu
minos de ee procesam
entadas o Ptudiadas andiseño drados, etc; rado (hardw
s es el aumare y velocidedia que pemicroprocenos años ded Computer
por la necempre un ra. La segmeocidad de . Es decir, ras digitales
síncrono gee la velocidaFuncional.
ma secuencial
e se ha de mplejo, requnto de res
Paralelo funto de operaocesamientoitecturas eseficacia commiento est
Pipeline sunteriormende sistempues conju
ware emplea
mento de la dad puede rmitan difeesadores y escrita, desdr”.
esidad de compromientación exproceso, sse busca os secuencial
enérico comad de proce
l síncrono.
Sistemas d
procesar. Euiere de unultados, ca
ndamentan aciones funo de formas muy elevamputacionaá limitado
elen ser cote. Todo eas digitalugan eficacado).
complejidamodularse,rentes tipoprocesadorde 1981, po
aumentar iso entre xplota el pain necesidaoptimizar eles y síncron
mo el que sesamiento e
digitales avanz
Julio
l Control dena sincronizaracterística
su diseño yncionalmenta paralela ado y ha de al. El Contrpor la U
onsideradasello debido es integrcia (en cua
ad de su Co, por lo queos de algoritres de señaor P.M. Kog
la velocidavelocidad
ralelismo coad de auml procesamnas.
se muestra está limitad
zados
o 2014
e este ación a que
y, por te sin en el estar rol es nidad
s una a su
rados, nto a
ntrol, e para tmos, al. La ge en
ad de d de on un entar
miento
en la da por
Diseñ
Julio 2
La seCadatempalmaahormenoaumede co
Figura
Realiposibuna m
5.1.1
Desdsegm
Pipelde re
Pipelde re
Figura
Desddos c
Pipel
Pipeletap
ño avanzado
2014
egmentacióa etapa coporalmenteacenamientoa limitada por, pero eento de losontrol si con
a 63. Arquitec
izada esta bles y las fumetodologí
1 Diseño
de un puntomentadas, L
line Lineal. ealimentaci
line No Lineealimentaci
a 64. Arquitec
de un puntoclasificacion
line Estático
line Dináma.
de sistemas
n tiene comontiene un los datos. o en el regipor la etapaes relativams registros dnlleva un au
ctura de un si
sencilla idenciones de ía de diseño
segmentad
o de vista dineal y no li
Formada pón. Tal es e
eal. Formadón, tanto h
ctura de un si
o de vista dnes, del tipo
o. Realiza u
ico. Realiza
s digitales
mo objetivona unidad El procesoistro se reaa E más lenmente parede almacenumento.
stema secuen
ea, es nececoste que lo segmenta
do
del flujo deneal.
por un conjul caso de la
da por un coacia adelan
stema secuen
del tipo de oo estático y
na operació
a diferentes
o dividir al Ude proce
o de los daliza en un cnta. El costeecido a lanamiento. S
ncial síncrono
esario el pla segmentado.
e datos, ha
unto de eta figura ante
onjunto de nte como ha
ncial síncrono
operacionedel tipo din
ón fija sobre
s operacion
Unidad Funceso y un atos en la eciclo de reloe hardware arquitectu
Si embargo,
o segmentado
planteamienación nos p
y dos clasif
apas conecterior.
etapas en dacia atrás. V
o segmentado
s que tienenámico.
e el conjunt
nes sobre e
cional en varegistro p
etapa correoj. La frecuedel caminora no‐segm la complej
o.
nto del númermitirá rea
ficaciones d
tadas en ca
donde puedVéase la figu
o no lineal.
en que hace
to de datos
el conjunto
arias etapaspara almaespondienteencia de reo de datos mentada cojidad del b
mero de ealizar a trav
de arquitec
ascada sin b
den existir bura siguient
er los datos
en la etapa
o de datos
63
s (Ek). cenar e y su eloj es no es on el loque
tapas vés de
cturas
bucles
bucles e.
s, hay
a.
en la
64
Se pestátimpo
Para relacreser(Ek) etiemtablael prciclos
Figura
La tsegmdandde 4 anteresules dedatosiem
ueden encotico o dinámortante, ind
comenzarcionado conrva es la reen las que spo (en cicloa de reservarimer dato qs consecuti
ETAPAS
a 65. Tabla de
tabla de rmentado. A do lugar a uetapas. El rior. El flujltado cuatroenominado s. Transcurpre y cuand
ontrar pipemico. Comoicando en c
a explicarn la segmepresentacióse procesanos de reloj) a de un Pipeque entra, vos de reloj
E T A P A S
E1
E2
E3
E4
e reserva de u
reserva es partir de la
un diagramadiagrama djo de datoo ciclos de Latencia Inrida esta lado se mante
eline lineal o puede ustcada etapa e
r el métodentación esón temporan del pipeliy del númeeline Lineal procesándoj.
CIC
T1
d1
un pipeline lin
una herra misma sea de tiempode tiempo pos es constreloj despunicial y es eltencia iniciaenga consta
estático o ted darse cel momento
do de dises la denomal de los dane. La tablaero de etapEstático deose en las d
CLOS DE RE
T2 T3
d1
d1
neal estático d
amienta pe obtiene eo. Por ejemppara el flujotante desdeés de habel coste en tal el sistemante el flujo
dinámico acuenta, el co y la opera
ño, el coninada Tabltos a lo lara es la reprpas en el ote 4 etapas ediferentes E
LOJ
3 T4
1
R1
de 4 etapas.
para diseñal procesamplo supongao de datos e la etapa r entrado aiempo que a entrega ao de datos a
Sistemas d
así como picontrol del ación que tie
ncepto mása de Resergo de las dresentación tro. La reprees la siguienEtapas, desd
ar el contriento óptima un pipelines el mostrE1, obteni
al pipeline (Rla arquiteca la salida ua la entrada
digitales avanz
Julio
ipeline no pipeline esene que ha
s representrva. La tabdiferentes e por un ladesentación nte, donde de E1 a la E
rol del sismo de los dne lineal estrado en la fiendo el pR1). Este tiectura no pron dato por a. Si este flu
zados
o 2014
lineal s muy cer.
tativo la de tapas do del de la d1 es E4 en
stema datos, tático figura rimer empo oduce ciclo, ujo de
Diseño avanzado de sistemas digitales
Julio 2014 65
datos es interrumpido, el pipeline se vacía. El ciclo se repite para un nuevo ciclo de datos. Por lo que para una máxima eficiencia en un arquitectura pipeline, el volumen de datos a la entrada para su procesamiento, en cuanto mas grande, mejor.
5.1.2 Características principales
Aceleración (Speedup) (S). Es el incremento de velocidad de un pipeline estático de K etapas. Se expresa como el cociente entre el número de ciclos de reloj necesario para procesar n datos en una arquitectura no‐pipeline y el número de ciclos de reloj necesarios para la misma arquitectura una vez segmentada.
1
Si el número de datos, n, es muy grande, la aceleración tiende a su valor máximo.
→ ∞;
Eficiencia (E). Es la media absoluta del incremento de velocidad y el número de etapas empleado para ello. Tal que;
1; → ∞; 1
Caudal (Throughput) (Th). Es el número de datos procesados por unidad de tiempo. Este parámetro se calculo en el ciclo estable del pipeline, es decir cuando existe un flujo constante de datos, una vez pasado el ciclo de latencia inicial.
1 1
; → ∞;
Al igual que la Eficiencia, si el número de datos, n, es grande el caudal tiende al límite de la frecuencia de reloj. Lo que significa, es que la velocidad de procesamiento máxima en el ciclo estable del pipeline es de 1 dato por ciclo de reloj.
Suponga el ejemplo de la figura anterior, del pipeline lineal estático de 4 etapas.
1 4 1 3
43; → ∞; 4
4 3
; → ∞; 1
1 3
; → ∞; 1/
Sistemas digitales avanzados
66 Julio 2014
5.1.3 Diseño pipeline
El apartado anterior trata con un pipeline lineal y estático, en donde el control de la arquitectura segmentada es sencillo. En este apartado se introduce a través de un ejemplo el control de arquitecturas segmentadas con pipeline no‐lineal y estático. Siendo este el caso más común en el diseño de arquitecturas de ordenadores y diseño de microprocesadores segmentados.
Se recurre a un ejemplo para obtener las diferentes variantes en la organización del diseño, que en definitiva repercuten en la organización del control.
Suponga un pipeline no‐lineal y estático de 3 etapas con la tabla de reserva siguiente. Esta tabla indica como el dato reutiliza las Etapas E0, E1 y E2 en diferentes ciclos de reloj, es decir el dato se realimenta en diferentes etapas y en diferentes ciclos de reloj. Por lo que el diseño del control ya no es tan evidente y requiere mayor complejidad en la especificación de la maquina de estado, incrementado el uso adecuado de multiplexores para el camino de datos.
CICLOS DE RELOJ
T0 T1 T2 T3 T4 T5 T6 T7
E0 D D D D
E1 D D
E2 D D
Figura 66. Tabla de reserva y cronograma de un ejemplo de pipeline no‐lineal estático de 3 etapas.
Se exponen 3 casos de ensayo para establecer la estrategia de control y obtener los mejores resultados para la aceleración, eficiencia y caudal.
Caso a). El primer caso consiste en esperar a que termine el primer dato en procesarse. Por lo que como es irrelevante, pues es un caso tonto, no se trata aquí.
Caso B). Para este y a primera vista se establece cuando se puede insertar el segundo dato al pipeline. Este primer caso, lo podemos denominar caso “ansioso” pues se efectúa por inspección. Se introduce el segundo dato (D2) tres ciclos después del primero, evitando colisión en todo momento y en todas las etapas. Ocho ciclos después se introduce el tercer dato a procesar (D3) y así sucesivamente. Tal que la introducción de datos se produce con una secuencia de repetición de 3T, 8T, 3T, 8T…‐el ciclo estable es de 11T.
T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17
E0 D1 D1 D2 D2 D1 D1 D2 D2 D3 D3 D3
E1 D1 D1 D2 D2 D3 D3
E2 D1 D1 D2 D2 D3 D3
ciclo estable (11 ciclos de reloj)
Figura 67. Tabla de reserva y cronograma de un ejemplo de pipeline no‐lineal estático de 3 etapas con una estrategia de control por inspección.
Diseño avanzado de sistemas digitales
Julio 2014 67
Este ciclo para este ejemplo es de 11 ciclos de reloj cada 2 datos procesados. Este dato permite, definir otro parámetro importante, la latencia media, que es igual a:
112
5,5
El porcentaje de utilización en el Ciclo Estable es el siguiente:
1811
73% 2411
36% 3411
36%
La aceleración, la eficiencia y el caudal de datos es el siguiente:
1611
1,45
3
0,483
2
110,182
1 1
25,5
Caso c). Realizado el primer caso por inspección, se ve que en ningún caso tenemos ninguna de las Etapas ocupadas al 100%, por lo que puede ser posible usar otra estrategia para introducir los datos de otra forma en base a prueba y error, comprobando que no existe colisión en la tabla de reserva. En este caso, se espera 4 ciclos entre el primer dato y el segundo. El Ciclo Estable aparece a partir del ciclo de reloj T4. Calculando de nuevo, se obtiene:
T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 T17
E0 D1 D1 D2 D2 D1 D1 D3 D3 D2 D2 D4 D4 D3 D3 D5 D5
E1 D1 D1 D2 D2 D3 D3 D4 D4
E2 D1 D1 D2 D2 D3 D3 D4 D4
ciclo estable (8 ciclos de reloj)
Figura 68. Tabla de reserva y cronograma de un ejemplo de pipeline no‐lineal estático de 3 etapas con una estrategia de prueba y error.
188
100% 248
50% 348
50%
168
2
3
0,66
28
0,25
Sistemas digitales avanzados
68 Julio 2014
1 1
24
La secuencia de latencias es <4T, 4T, 4T…> y ciclo estable aparece en (4T, 4T) = 8T. Se puede ver en los porcentajes de ocupación que E1 está al 100%, pudiendo decir que no podemos obtener una mejora con este método de prueba y error.
Para formalizar el método, Kogge establece que, la mínima latencia alcanzable, M.A.L., es mayor o igual que el máximo del número de veces que se utiliza una etapa para procesar un dato en la tabla de reserva original. El MAL en este caso es 4. Por lo que se puede decir que la separación media entre 2 datos consecutivos a procesar es 4. A partir de aquí no es posible introducir datos a un ritmo mayor sin evitar las colisiones.
La formalización del método consiste en crear un vector de colisiones Vc(i). Este vector de colisiones es un array booleano de longitud igual al número de ciclos de reloj usado en la tabla de reserva, indicando con un “1” la colisión en esa etapa si se introduce un nuevo dato en el ciclo de reloj “i”. En caso contrario se pone un “0”.
Además se define el conjunto de latencias prohibidas CLP(k) para cada etapa como un array de enteros de longitud variable e igual a aquellas latencias en las que se producen colisión. Por lo que el CLP del pipeline será la unión del CLP de cada etapa.
Se puede observar que en el ejemplo original anterior, para la primera etapa E0, si se deja transcurrir 1 ciclo de reloj antes de introducir un dato, se produce colisión en T1 y en T7, por lo que las latencias 0 y 1 pertenecen al CLP de la etapa E0. Continuando con el análisis, las latencias 5,6 y 7 también lo son. En definitiva, el conjunto de latencias prohibidas para la etapa E0, E1 y E2 y el conjunto total para el pipeline del ejemplo son las siguientes:
CLP(E0) = {0,1,5,6,7}
CLP(E1) = {0,2}
CLP(E2) = {0,2}
Por lo que el es,
CLP = Uk CLP (i) = {0,1,2,5,6,7}
El vector de colisiones Vc(i);
VC(I) = {1,1,1,0,0,1,1,1}
Se establece un Diagrama de Estados a partir del vector de colisiones. Este diagrama refleja en qué momento se puede introducir un nuevo dato sin que existan colisiones. Para obtener esta información se parte del vector de colisiones original y se desplaza a la izquierda introduciendo un “0” por la derecha,
Diseñ
Julio 2
Figura
ComCadaColisFigur(estael desistehabía
Comresulorigiproceresulpuedtras 8realizpor “del dsecu
Siemintropodr
ño avanzado
2014
a 69. Diagram
o conclusióa vez que tsiones se dera anterior ado del pipeel extremo ima. Hasta a sido “1”.
o consecueltante se onal, resultaesar, este sltante está de introduc8 ciclos de zará entre e“0”; obteniediagrama eencia de lat
mpre existe oducir un nurá deducir s
de sistemas
ma de estados
ón al métodranscurre uesplaza hacse aprecia
eline) será zquierdo deese mome
encia de laobtiene reando (Ver Fisólo se podformado eir un nuevoreloj. Es senel Vector dendo de nustá indicantencias 3T, 8
una opciónuevo dato, in mayor di
s digitales
y funciones p
o, se parte un ciclo de cia la izquiea que con de; Vc = <0el vector innto no hab
a introduccalizando la igura) que Vdrá introduxclusivameo dato). En ncillo deduce Colisioneevo el Vectdo que se 8T, 3T, 8T,…
adicional qCICLO (8,8ficultad.
para obtener
de un estareloj sin in
erda introduLatencia 3
0 0 1 1 1 0 0dica que sebía sido pos
ión de un operación Vc = <1, 1, cir en el sinte con “1”la posición cir que, en s original y tor de Colispueden in
… o CICLO (3
que consist), Este ciclo
la latencia a p
do inicial o ntroducir unuciendo un3, el Vecto0 0>. El “0”e puede intrsible pues e
nuevo datlógica “OR1, 1, 1, 1, 1stema con ” y el primede “mayoreste últimoun vector
siones origintroducir da3, 8).
e en esperao resulta ba
partir del Vec
vector inicn nuevo da “0” por lar de Coliside “mayorroducir un nel valor de
o, el VectoR” entre di1, 1>. Para Latencia 8er “0” (quepeso” de v
o caso, la opcompuestonal. En resuatos sin col
ar 8 ciclos dastante inef
ctor de colisio
ial de colisiato, el Vect derecha. iones resulr peso”, es nuevo dato dicho elem
or de Colisicho vector el tercer d8, pues el ve indicará qvector aparperación “Oo exclusivamumen, esta lisiones con
de reloj antficiente com
69
ones.
ones. or de En la tante decir, en el
mento
siones r y el dato a vector ue se ecerá
OR” se mente parte n una
es de mo se
Sistemas digitales avanzados
70 Julio 2014
Finalmente, existe la posibilidad de introducir un dato dejando transcurrir 4 ciclos de reloj desde el vector original (Latencia 4) e introducir un nuevo dato cada 4 ciclos a partir del vector resultante7, CICLO (4, 4).
En resumen, existen las siguientes estrategias posibles:
CICLO (3, 8) ‐ CICLO “ANSIOSO”, ya estudiado en el caso anterior.
CICLO (8, 8) ‐ CICLO “TONTO”
CICLO (4, 8) ‐ CICLO “CASI‐TONTO”
CICLO (4, 4) ‐ CICLO “ÓPTIMO” SEGÚN LA AFIRMACIÓN DE P. M. KOGGE ESTUDIADA ANTERIORMENTE.
Existe otras estrategias de optimización para alcanzar un caudal máximo y que no cumple estrictamente el M.A.L., tal como lo establece Kogge en su método. Consiste en introducir una o varias etapas más de registros que incrementan los ciclos de espera, pero que ayudan a optimizar la tabla de reserva cuando se introducen más datos a procesar en el pipeline. Suponga la siguiente tabla de reserva de un arquitectura segmentada con pipeline no‐lineal y estático:
T0 T1 T2
E0 D D
E1 D D
E2 D
El conjunto de latencias para cada etapa, el vector de colisiones y el diagrama de estados son los siguientes:
CLP(E0) = {0,2}
CLP(E1) = {0,1}
CLP(E2) = {0}
Por lo que el CLP es,
CLP = Uk CLP (i) = {0,1,2}
El vector de colisiones Vc(i);
VC(I) = {1,1,1}
Diseñ
Julio 2
Figura
Aplicnos i
La esen laestad
CLP =
ño avanzado
2014
a 70. Tabla de
cando el critndica una la
strategia coa figura sigdos. Que pe
T0 T
E0 D
E1 D
E2 D
Tabla de rd
= Uk CLP (i)
de sistemas
e reserva y Dia
terio de Kogatencia me
onsiste en inguiente, enermite alcan
T1 T2
D
D D
D
reserva orig
= {0,2} y e
T
E0 D
E1
E2
EA
Tabl
s digitales
agrama de es
gge, el MALdia de 3, ma
ntroducir unn la tabla dnzar un el M
E0
E1
E2
EA
ginal Tabla
el Vc= {1,0,1
T0 T1 T2
D1 D2 D1
D1 D2
D1 D2
D1
ciclo est
a de reserva
stados que no
L es igual a ayor que el
n estado dede reserva,MAL igual a
T0 T1 T
0 D D
1 D
2 D
D
a de reserv
1,0}
T3 T4 T5
D2 D3 D4
D1 D2 D3
D3
D2
table (4)
a con 5 dat
o cumple el M
2, sin emba MAL.
e espera ad, obteniend2.
2 T3
D C
D C
C
D C
a modificad
T6 T7 T
4 D3 D4 D
3 D4 D3 D
3 D4
D3 D4
os en el pip
MAL.
argo el diagr
icional en lado un nuev
CLP(E0) = {0
CLP(E1) = {0
CLP(E2) = {0
CLP(EA) = {0
da con un ci
T8 T9
D5
D4 D5
D5
peline
rama de est
a etapa E2,vo diagram
0,2}
0,2}
0}
0}
iclo
71
tados
“EA” ma de
72
Figura
5.2
5.2.1
A lo los industantolos aconsmedrespeCom
Enteinstrnúminstrener
En ecompabor“Arqestudconsauto
Duramejo(la delo quespaaume
a 71. Nueva T
Reduced
1 Introdu
largo de es80’s, es fstriales, deo que estánarquitectos eguir una biados de loectivamentputer) con
nder las ucciones paero de instrucciones sgético.
este apartaplementa eda el diseñuitectura ddio más deultar los texres Henessy
ante muchoorar este asecodificacióue tener uncio de mementaba la ve
Tabla de reser
d instructi
ucción a RIS
tos 40 añosfrecuente bajo consn muy lejos de IBM cubuena relacos años 80 e) decidierel modelo t
arquitecturara mejorarucciones sisimples y
ado se intreste apartadño, se encuel microproetallado dextos especiy y Patterso
os años la pecto a travón de instrun programamoria y meelocidad de
rva y Diagram
on set com
C
s, concretamencontrar umo o gende los diseñestionaron ción coste/rcuando Heron iniciar tradicional C
ras RISC imr la relacióniguiendo la sencillas,
roduce la do y que deuentra en locesador ICe análisis dalizados y con.
memoria fuvés de una ucciones a ta con menoenos instruce ejecución.
ma de estados
mputer: R
mente desdarquitectu
néricas. Todños actualela máquin
rendimientoennessy y Pel movimCISC (Comp
mplica entn coste/renidea tradicreduciendo
idea y la entro del cola página wCAI‐RiSC‐16”de la ejecucitados en l
ue un recumejora de ravés de mos instruccicciones que
con un ciclo d
RISC
de fines de ras diseñadas ellas ses y originalea 801, dado no era buPatterson (eiento RISCplex Instruct
tender el ndimiento, ional. Por loo el área
alternativa onjunto de web de la a” de Jose Dución de ina bibliograf
urso costosola arquitectemoria), taiones se coe alimentar
Sistemas d
de espera adi
los años 70adas con e han simpes. Concreto que la couena. Pero nen UC Berk(Reduced
tion Set Com
ciclo y laen lugar deo que su oby optimiz
RISC. El dprácticas dasignatura Daniel Muñonstruccionefía, preferen
o. Por lo qtura. La micmbién se veonsiguen dor desde me
digitales avanz
Julio
icional.
0s y principifines docelificado, algtamente en omplejidadno ha sido keley y StaInstruction
mputer).
a ejecucióe incremenbjetivo es ofzando con
documentode laboratocon el nomoz Frías. Paes y prograntemente d
que se penscroprogrameía afectadaos cosas: memoria, lue
zados
o 2014
os de entes, gunas 1975 para hasta nford n set
n de tar el frecer sumo
o que rio se mbre: ra un amas, de los
só en ación a. Por menos go se
Diseño avanzado de sistemas digitales
Julio 2014 73
En general el principio RISC se basa en las siguientes dos premisas:
De carácter general. Hardware directo especialmente con funciones complejas, con relojes lentos o segmentación compleja. Este esquema se sigue un 90% ‐ 10% haciendo aquellas funciones lentas muy rápidas
De carácter específico. Uso extensivo de simulación de arquitecturas y programas, manteniendo aquellas que demuestran cuantitativamente una mejora en el rendimiento y reducen los ciclos por instrucción (CPI).
El resultado es: hacer más énfasis en el software
Las tablas siguientes reflejan ambas ideas de las que estamos hablando:
¿Qué es RISC? ¿Qué es CISC?
(Reduced Instruction Set Computer) (Complex Instruction‐Set Computer)
Incluye (por lo general):
registros de propósito general
instrucciones de tamaño fijo (3 campos)
FORMATO: • arquitectura tipo load‐store • modos simples de direccionamiento• instrucciones sencillas
Incluye (por lo general): • instrucciones de formato variable instrucciones memoria‐registro • modos complejos de direccionamiento • instrucciones complejas
CALL, EDIt..etc.
Ejemplos:
DEC Alpha
MIPS
Ejemplos:
DEC VAX
IBM 370
x86
Ventajas:
Mejor compilación
Fácil de implantar pipeline (segmentación)
Ventajas:
Mejor densidad de código.
Sistemas digitales avanzados
74 Julio 2014
Figura 72. Tabla de referencia RISC vs. CISC y cronología de evolución RISC (Hennesy y Patterson).
Desde el punto de vista de diseño hardware, la ecuación que rige el principio de rendimiento es la siguiente:
Donde; MIPS: Million Instructions Per Second normalizados a una tarea.
Tal que el modelo de rendimiento se puede expresar como:
Velocidad de reloj Rendimiento de CPU = ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
Instrucciones ejecutadas por ciclos de reloj Velocidad de Reloj – Velocidad de reloj de la máquina o del procesador Instrucciones ejecutadas – Instrucciones dinámicas contadas por un banco de registros Ciclos por Instrucción – Promedio de ciclos por instrucción
Figura 73. Ecuación y modelo de rendimiento.
Diseño avanzado de sistemas digitales
Julio 2014 75
El rendimiento se puede mejorar reduciendo cualquiera de estos tres factores. ¿Pero cómo entonces podemos hacer una arquitectura RISC ?. En principio y desde el punto de vista del ingeniero de diseño tenemos que pensar en los siguientes términos:
Aumentando la velocidad de reloj (tiempo/ciclo). Implicaciones: o Diseño VLSI. o Entendimiento de la arquitectura o Alta integración del sistema de memoria
Reduciendo los ciclos por instrucción (ciclos/inst). Implicaciones: o Mejora en el conjunto de instrucciones de la arquitectura o Mejora en el sistema de memoria o Tecnología de compiladores
Reduciendo el número de instrucciones (inst/task). Implicaciones: o Diseño balanceado del conjunto de instrucciones o Optimización de la tecnología del compilador
5.2.2 Diseño superescalar
5.2.3 Diseño vectorial
5.3 Ejercicios
1) Sistema de procesamiento numérico. Este sistema procesará el siguiente algoritmo Z(i) = [A(i) + B(i) ]3. Los datos vienen en 4 bits en binario natural. El resultado se dará en 8 bits. Se pide:
a. Indique en una lista la secuencia y las operaciones para un ciclo del algoritmo.
b. Haga un diagrama de bloques general del sistema detallando los subsistemas y su ruta de datos, utilizando bloques sumadores, multiplicadores y registros de 4 bits con retardos de 10 y 20 ns, para el sumador y multiplicador respectivamente, y Tpropagación=5 ns y Tsetup=2 ns para el registro. Calcule el tiempo necesario para una operación del algoritmo en nanosegundos
c. Optimización en tiempo. i. Planifique con pipeline lineal. No reutilice unidades funcionales, en
esta versión no tenemos limitación de área. Registre donde sea necesario, analice el algoritmo y vea si hay paralelismo de operaciones.
ii. Dibuje una tabla de reserva según el pipeline diseñado anteriormente. Indicando al menos dos ciclos de operación del algoritmo
iii. Calcule el tiempo de operación para un número ilimitado de datos a la entrada.
iv. Indique la aceleración obtenida respecto al apartado 2). d. Optimización en área.
i. Planifique un pipeline reutilizando unidades funcionales. Disponemos de un multiplicador y un sumador. Utilice multiplexores
Sistemas digitales avanzados
76 Julio 2014
del ancho que considere. Indique sus entradas y salidas correspondientes. Recuerde indicar dónde está la salida de datos o los registros en donde se almacena la salida.
ii. Dibuje la nueva tabla de reserva según el pipeline diseñado. Indicando al menos dos ciclos de operación del algoritmo.
iii. Indique la aceleración obtenida respecto al apartado b) y c). iv. Dibuje el diagrama de estados del control para este caso, detallando
las entradas y salidas necesarias para la temporización del sistema. Especifique este diagrama en VHDL.
Diseño avanzado de sistemas digitales
Julio 2014 77
6. Diseño orientado a telecomunicaciones
6.1 Introducción al diseño para comunicaciones
6.1.1 Comunicaciones digitales
6.1.2 Diseño de interfaces
6.2 Interfaces con dispositivos
6.2.1 Las comunicaciones RS232
6.2.2 Las comunicaciones RS485
6.2.3 Las comunicaciones SPI
El estándar SPI (Syncronous Peripheral Interface) es un enlace de datos en formato serie, del tipo síncrono y que bidireccional diseñado para la comunicación entre dispositivos periféricos. Fue creado inicialmente por Motorola y posteriormente adoptado por diferentes fabricantes. Actualmente es un estándar de alta velocidad y distancias cortas, hasta los 400Mhz y 10 a 20 cms. y tiene un uso más extendido entre dispositivos en el mismo PCB.
El “bus” SPI utiliza 4 señales (MOSI, MISO, SCK, CS) y un esquema de protocolo maestro/esclavo. Este protocolo sueles ser hardware, pero también es posible desarrollarlo por software utilizando un puerto de un microprocesador cualquiera.
MOSI y MISO son señales de datos síncronos, mientras que la señal SCK es la señal de reloj. Por cada pulso de reloj, se señaliza un bit de información, sea de entrada o salida. Por lo que 8 pulsos de reloj son necesarios para transferir 1 byte. Mientras que CS sirve para habilitar el dispositivo esclavo. Las funciones específicas de cada señal son:
Master In Slave Out (MISO) o (SO). Línea del esclavo para enviar datos al maestro.
Master Out Slave In (MOSI) o (SI). Línea del maestro para enviar datos a periféricos.
Serial Clock (SCK). Reloj generado por el maestro para sincronizar la transmisión de los datos.
Slave Select pin (SS) o (CS). Asignada a cada uno de los dispositivos el maestro la utiliza para habilitar o inhabilitar la comunicación. Esto protege de falsas transmisiones por culpa de posibles ruidos en los cableados.
Sistemas digitales avanzados
78 Julio 2014
Hay que prestar especial atención a las hojas de las características técnicas (datasheet) del dispositivo esclavo para generar la comunicación. A continuación se detalla un protocolo SPI para una memoria EEPROM y un dispositivo maestro (por lo general un microprocesador).
Figura 74. Funcionalidad del bus SPI (Atmel‐8707E‐SEEPROM‐AT25010B‐020B‐040B‐Datasheet_052014).
Figura 75. Ciclo de lectura SPI en una memoria EEPROM (Atmel‐8707E‐SEEPROM‐AT25010B‐020B‐040B‐
Datasheet_052014).
Figura 76. Ciclo de escritura SPI en una memoria EEPROM (Atmel‐8707E‐SEEPROM‐AT25010B‐020B‐040B‐
Datasheet_052014).
Diseño avanzado de sistemas digitales
Julio 2014 79
6.2.3.1 Controlador SPI en VHDL
Observando las figuras anteriores, el controlador SPI debe inicializarla el maestro con una trasferencia de datos en cada ciclo de reloj de la señal SCK, el maestro escribe entonces en la señal MOSI un bit y lee un bit de la señal MISO. El dato simplemente es transferido desde un registro de desplazamiento de forma síncrona con el reloj en un modo tipo FIFO. Si el formato es bidireccional la comunicación es simultánea, si es bidireccional, las figuras anteriores describen un ciclo de lectura y un ciclo de escritura.
El ciclo de escritura del controlador SPI de la figura anterior, visto desde el microcontrolador o desde una FPGA, puede ser el siguiente:
Código VHDL
6.2.4 Las comunicaciones I2C
La comunicación I2C o I2C es un bus o protocolo serie que soporta multiples dispositivos esclavos conectados a un dispositivo maestro. Consiste de solamente dos líneas, una bidireccional de datos (SDA) y otra de sincronización o reloj (SCL). La velocidad de este bus no es muy alta, pero es considerablemente suficiente para muchos dispositivos periféricos. El estándar maraca una velocidad de 100Khz, pero hay dispositivos que llegan a los 400Khz.
Cada dispositivo conectado al I2C tiene una dirección única, tal que el maestro conoce de antemano los dispositivos conectados y sus direcciones. El maestro controla el
Sistemas digitales avanzados
80 Julio 2014
acceso al bus y los dispositivos controlados son los esclavos. La conexión típica de este controlador es la de la siguiente figura:
Figura 77. Conexión de un bus I2C.
El protocolo I2C es sencillo, cuando el bus está en reposo, ambas señales SDA y SCL se encuentran a nivel lógico “1”. El maestro inicia la comunicación (siempre) con una transferencia (START), cambiando SDA a “0”. Condición considerada como “bus ocupado”. A continuación envía la dirección del dispositivo esclavo (7 bits) seguida de un octavo bit (Read/Write), donde un “0” significa escritura del maestro al esclavo, lectura en caso contrario. A continuación el maestro envía un bit por ciclo de reloj sobre la línea SCL en un formato MSB (enviando en primer lugar el bit más significativo). La transmisión termina cuando SDA cambia a nivel alto.
Figura 78. Condiciones de inicio y final de transmisión, protocolo I2C y secuencia de datos para escribir un registro en el dispositivo esclavo (a) o en su caso lectura (b). (Enoch Hwang, April 2008)
Diseño avanzado de sistemas digitales
Julio 2014 81
Como puede observarse en la figura, el dispositivo esclavo cuya dirección coincide con la dirección del maestro, inicializa un proceso de reconocimiento en la línea SDA, poniendo a nivel bajo (“0”) SDA en el noveno ciclo de reloj de la señal SCL (ACK). El octavo bit indica si es una lectura o escritura (R/W). A partir de aquí puede también observarse que el tamaño de la trama de datos con 8 bits con el MSB primero, excepto la señalización START y STOP. La única condición es que, SDA no cambie cuando la señal SCL está en nivel alto (“1”). No hay restricción de la longitud de bytes transmitidos. Cada byte transmitido es seguido por un bit de ACK. Para asegurar la comunicación, esta se finaliza levantando la señal SDA durante el ciclo de ACK (al final de un byte).
6.2.4.1 Controlador I2C en VHDL
-- Controlador bus I2C -- Sadot Alexandres -- DEAC - ICAI library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity i2c_controller is port ( clk, rst : IN STD_LOGIC; init, end_tx : IN STD_LOGIC; data_tx : IN STD_LOGIC_VECTOR (8 downto 0); scl, sda : OUT STD_LOGIC); end i2c_controller; architecture rtl of i2c_controller is component counter port ( clk : in std_logic; rst : in std_logic; end_count : out std_logic; ena_count : in std_logic ); end component; type state_type is (s0, s1, s2); signal state : state_type; signal end_count : STD_LOGIC; signal scl_int : STD_LOGIC; signal sda_int : STD_LOGIC; signal tx_reg : STD_LOGIC_VECTOR (8 downto 0); begin inst1 : counter port map ( clk => clk, rst => rst, end_count => end_count, ena_count => scl_int ); process(clk, rst) begin
Sistemas digitales avanzados
82 Julio 2014
if(rst = '0') then state <= s0; elsif(clk'event AND clk = '1') then case state IS when s0 => -- Idle scl_int <= '1'; if init = '1' then state <= s1; end if; when s1 => -- Start scl_int <= '1'; state <= s2; when s2 => -- Tx/RX scl_int <= not scl_int; -- SCL = clock if end_tx ='1' then state <= s0; end if; when others => scl_int <= '1'; state <= s0; END CASE; END IF; END PROCESS; process (clk, rst) begin IF(rst = '0') THEN tx_reg <= data_tx; ELSIF(clk'EVENT AND clk = '1') THEN case state is when s1=> -- start cycle sda_int <= '0'; when s2=> -- clocking if end_count = '1' then tx_reg <= data_tx; if (scl_int='1' and end_count='1' and end_tx='1') then sda_int <= '1'; else sda_int <= '0'; end if; else sda_int <= tx_reg(8); register tx_reg(8 downto 1) <= tx_reg(7 downto 0); tx_reg(0)<= '0'; end if; when others=> sda_int<= '1'; tx_reg <= data_tx; end case; END IF; end process; scl <= scl_int; sda <= sda_int; END rtl;
Diseño avanzado de sistemas digitales
Julio 2014 83
6.3 Ejercicios
1.‐ Diseñe el controlador SPI para el proceso de escritura en una memoria EEPROM.
Sistemas digitales avanzados
84 Julio 2014
7. Bibliografía
José D., Muñoz Frías, (2012), "Introducción a los sistemas digitales. Un enfoque usando lenguajes de descripción de hardware”. http://www.dea.icai.upcomillas.es/daniel/asignaturas/SistDig1_1_ITL/ApuntesED.pdf [Online; último acceso 20 de Abril de 2012]
Daniel D. Gajski (1997). ”Principios de Diseño Digital”. Prentice‐Hall.
David A. Patterson, John L. Hennessy (2000). “Estructura y Diseño de Computadores”. 3 Vols . Ed. Reverte.
David A. Patterson y John L. Hennessy (2004). “Computer Organization and Design”. 3ª Edición. Ed. Morgan Kaufmann. ISBN‐1‐55860‐604‐1.
Jan M. Rabaey, Anantha Chandrakasan, Borivoje Nicolic (2004). “Circuitos Integrados Digitales”. 2ª Edición, Ed. Pearson.
Peter M. Kogge (1981). “The Architecture of Pipelined Computers”. Hemisphere Publishing Corporation, McGraw‐Hill Book Co., ISBN: 0‐07‐035237‐2.
F.Moreno y T. Riesgo. (2010) “Microelectrónica. Circuitos y Sistemas. Una perspectiva histórica.”. www.lulu.com.