tamaño: 3682920B

Anuncio
 Diseño
o avan
nzado
o de ssistem
mas diigitale
es Sadot Aleexandres FFernándezz A
Alberto Agui
ilera 25. 280015 Madrid
d. Tel +34 9
91 542 28 000. www.upcomillas.es Diseño avanzado de sistemas digitales ÍNDICE 1. INTRODUCCIÓN A LAS TECNOLOGÍAS DIGITALES 1.1 TECNOLOGÍAS MICROELECTRÓNICAS 1.1.1 Tecnologías Bipolar y MOS 1.2 METODOLOGÍAS DE DISEÑO DE SISTEMAS 1.2.1 Herramientas para el diseño de sistemas de altas prestaciones 1.2.2 Diseño para test de sistemas digitales 1.3 EJERCICIOS 2. RUTA DE DATOS Y SUBSISTEMAS ARITMÉTICOS 2.1 DISEÑO Y PLANIFICACIÓN DE UN SISTEMA DIGITAL 2.1.1 La interconexión de bloques 2.2 SUBSISTEMAS ARITMÉTICOS 2.2.1 Sumadores binarios 2.2.2 Sumador Carry‐Bypass 2.2.3 Sumador Paralelo (Carry Look‐ahead) 2.2.4 Multiplicadores binarios 2.2.5 Multiplicador Carry‐Save 2.2.6 Arboles de Wallace 2.2.7 Algoritmo de Booth 2.2.8 Divisores 2.2.9 Desplazadores (Barrel Shifters) 2.3 EJERCICIOS 3. 4. 39 40 41 43 45 50 50 50 51 58 61 DISEÑO SEGMENTADO 62 63 65 66 72 72 75 75 75 DISEÑO ORIENTADO A TELECOMUNICACIONES Julio 2014 7 7 8 8 9 10 11 13 14 15 16 19 21 39 SUBSISTEMAS BASADOS EN MEMORIAS 5.1 INTRODUCCIÓN AL PIPELINE 5.1.1 Diseño segmentado 5.1.2 Características principales 5.1.3 Diseño pipeline 5.2 REDUCED INSTRUCTION SET COMPUTER: RISC 5.2.1 Introducción a RISC 5.2.2 Diseño superescalar 5.2.3 Diseño vectorial 5.3 EJERCICIOS 6. 7 24 28 31 35 38 DISEÑO SÍNCRONO DE SISTEMAS DIGITALES METAESTABILIDAD Y SINCRONIZACIÓN RELOJ Y SKEW RESET Y PRESET EJERCICIOS 4.1 INTRODUCCIÓN A MEMORIAS INTEGRADAS 4.1.1 Clasificación de memorias semiconductoras 4.1.2 Arquitectura interna y temporización 4.1.3 La celda de memoria 4.1.4 Diseño con memorias 4.2 INTEGRACIÓN CON MICROPROCESADORES 4.3 MEMORIAS ESPECÍFICAS 4.3.1 Memorias multipuerto. FIFO 4.3.2 Memorias cache 4.4 EJERCICIOS 5. 1 5 6 6 6 6 24 SUBSISTEMAS SECUENCIALES 3.1 3.2 3.3 3.4 3.5 1 77 i Sistemas digitales avanzados 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 6.2.4 Las comunicaciones I2C 6.3 EJERCICIOS 7. 77 77 77 77 77 77 77 79 83 84 BIBLIOGRAFÍA ii Julio 2014 Diseño avanzado de sistemas digitales 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 Julio 2014 1 Sistemas digitales avanzados 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. 2 Julio 2014 Diseño avanzado de sistemas digitales 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. Julio 2014 3 Sistemas digitales avanzados 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. 4 Julio 2014 Diseño avanzado de sistemas digitales 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. Julio 2014 5 Sistemas ddigitales avanzzados Figuraa 6: Sección trransversal de un transistorr CMOS y su rrepresentación como una puerta NOT. 1.2 M
Metodolo
ogías de diiseño de ssistemas 1.2.11
Herram
mientas para
a el diseño d
de sistemas de altas p
prestacioness 1.2.22
Diseño para test de sistemas digitales 1.3 EEjercicios 6 Julio
o 2014 Diseño avanzado de sistemas digitales 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. INPUT-OUTPUT
M EM O R Y
C ON T RO L
D A T A P A TH
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. Julio 2014 7 Sistemas ddigitales avanzzados 2.2 Subsiste
emas aritm
méticos 2.2.11
Sumado
ores binario
os La esstructura dee un sumador binario ccompleto de
e 1 bit, las e
ecuaciones lógicas de ssalida para la suma (S)) y el acarre
eo (Co) y su tabla de ve
erdad son las siguientess: S = A  B  Ci
= A BC i + ABC i + ABC
A
Ci
i + ABC
C o = AB + BC i + AC i
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
Ci
C
0
1
0
1
0
1
0
1
S
0
1
1
0
1
0
0
1
Co
C
0
0
0
1
0
1
1
1
Acarreoo Se borraa Se borraa Se propaaga Se propaaga Se propaaga Se propaaga Se geneera Se geneera Figuraa 8: Sumador completo de 1 bit. Tal q
que, el sum
mador binario de varioss bits más sencillo que se puedee construir, es el conju
unto de varrios sumado
ores de 4 bbits con la ssiguiente co
onfiguraciónn. Este sum
mador, en esste caso dee 4 bits, es el Sumadorr Serie (Rip
pple‐Carry) d
debido a quue el Acarreo se coneecta en seriee. Figuraa 9: Sumador Serie de 4 bitts. El tieempo de retardo de esste Sumadoor Serie, tal como se puede analizzar, depend
de del número de etap
pas conectaadas en seriie. La soluciión a este p
problema, ppasa por analizar la taabla de verdad y haccer que el retardo ocasionado o
por el acaarreo se pueda p
8 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales minim
mizar. Para ello se pue
ede ver en l a tabla de vverdad, tress diferentess salidas posibles del aacarreo: 


Se borra, D = A B Se generra, G = A •
• B Se propaaga, P = A B Las eecuaciones ccorrespondientes paraa la salida de
e la suma y el acarreo sson: Para el aacarreo: Co
o (G, P) = G G + P Ci Para la suma: S (G, P) = P Ci Estass ecuacionees sirven parra diferentees configuraaciones de ssumadores con el objetivo de reeducir el rettardo del su
umador com
mpleto. 2.2.22
Sumado
or Carry‐Bypass Su ob
bjetivo es reeducir el retardo cuanddo varias fu
unciones del tipo P, porr ejemplo, P
P0 = P1 = P2 = P3 = 1
1, conectand
do esta funcción por me
edio de un m
multiplexorr, tal que C033 = C0 G1
Ci ,0
P0
C o,0
P0
P0
P2
G3
Co,3
F
FA
G2
Co,1
FA
P3
FA
A
G1
C o ,0
FA
G2
Co,2
FA
G1
Ci,0
P2
C o ,1
FA
G1
P3
G3
BP=P
P oP1 P2 P3
C o,2
FA
FA
Multiplexer
P0
Co,3
Julio 22014 9 Sistemas ddigitales avanzzados e un Sumadorr Carry‐Bypasss cada 4 bits yy Sumador Ca
arry‐Bypass coompleto de 16 bits. Figuraa 10: Etapa de
2.2.33
Sumado
or Paralelo (Carry Lookk‐ahead) La fo
orma más ráápida de sum
mador es ell paralelo o con acarreo adelantaddo. El coste en puerrtas es much
ho más gran
nde que cuaalquier otro
o sumador, ganado en vvelocidad. Particularizando
o la ecuación del acarreeo para los diferentes bits: C1 = G1 + P1C0 C2 = G2 + P2C1 = G2
2 + P2G1 + P2P1C0 C3 = G3 + P3C2 = G3
3 + P3G2 + P3P2G1 + P
P3P2P1C0 …continu
ua para máás bits. Por cconsiguientte, los acarrreos de toddas las etap
pas se pued
den obteneer a partir de d las funciiones Gi y Pi. Al aum
mentar el nnúmero de
e bits los circuitos usaan puertass más comp
plejas pero no son máss lentos. 10 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales A0, B0
Ci,0
P0
A1, B1
Ci,1
S0
•••
P1
S1
AN-1
N , BN-1
Ci, N-1
•••
PN-1
SN-1
Figuraa 11: Sumado
or Paralelo (Ca
arry‐look‐ahe ad). Finalmente, se puede con
ncluir que dde las técnicas de imp
plementacióón hardware de sumaadores rápidos, hay do
os aspectos destacadoss del sumad
dor Carry‐Loook Ahead ((CLA). Se trrata de un sumador mu
uy estudiad o, por lo qu
ue únicamente se desttaca que traata de do de la caadena de aacarreo. Se
e generan directamennte los acaarreos evitaar el retard
interrmedios a partir de las entradaas y para cada bit, el e acarreo y la sumaa son indep
pendientes de los bits previos. Si se desarro
olla un poco
o la ecuacióón del acarrreo se aprecia un coste alto en hardware uttilizado y la existencia de señales s de entradaa que han d
de tener un
n número de
e conexionees, lo que puede ocasio
onar probleemas de retardos en laas señales. En tecnolo
ogías, comoo FPGA, hace que los recursos dde interconexión neceesarios sean
n muy elevados y el ret ardo asociaado también
n, si el sumaador es gran
nde. Las cconclusionees más impo
ortantes a la hora de comparar las diferenttes arquiteccturas de su
umadores q
que se han m
mostrado, sse resumen en: 

C
Compromiso
o entre áreaa y velocidaad. ‐ Las o
optimizacion
nes del cam
mino crítico (retardo) supone la uttilización de
e más puerrtas y por taanto más haardware. ‐ Un aumento a
en
n el númeroo de conexxiones supo
one más áreea y conexxiones más largas y porr lo tanto m
más retardoss. D
Dependencia con la teccnología. ‐ En lo
os cálculoss teóricos sse ha evaluar la influ
uencia de los retardo
os de coneexión. En caasos reales y dependie
endo de la tecnología los cálculo
os por número de bits pueden differir bastantte. 2.2.44
Multiplicadores binarios Mateemáticamen
nte, la multiplicación bbinaria se pu
uede expressar como: Funccionalmentee este algoritmo se reppresenta com
mo un conjunto de sum
mas parciale
es,: Julio 22014 11 Sistemas ddigitales avanzzados : mo básico de u
un Multiplicaddor. Figuraa 12: Algoritm
Lo qu
ue permite visualizar algunas sus ppropiedade
es básicas del multiplicaador, por ejem
mplo; ‐
‐
‐
‐
úmero de bits b resultannte es iguaal al número de bits ddel multipliccador El nú
más el número de bits del m
multiplicando. bit a 1 en el multiplica dor significa sumar el multiplicanndo desplazzando Un b
un bit b a la izquierda. Un 00 significa sumar s
con 0. 0 Lo que significa qu
ue los operrandos de lo
os sumadorres pasan p
por una fun
nción AND pprevia con el bit del m
multiplicado
or. El nú
úmero de sumas parci ales es iguaal al númerro de bits ddel multipliccador menos 1. Es de
ecir necesittamos tanttos sumado
ores como números de d bit tenga el multiplicador mennos 1. El nú
úmero de bits b de los sumadoress utilizados en las sum
mas parciales es iguall al número de bits del multiplican
ndo. La im
mplementacción de este
e multiplicaddor, es el llaamado multtiplicador e n array, es la siguiente:
Figuraa 13: Multiplicador de 4 bitts en Array. FFA = Fulla Add
der, HA = Half Adder. 12 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales El ejeemplo anterior, tal com
mo sucede een el sumad
dor, tiene un retado coondicionado
o a unoss caminos crríticos, que como ya puuede usted intuir, son debidos al rretardo del acarrreo. Tal com
mo se indicaa en la figurra. Esto es iggual a: Figuraa 14: Caminoss críticos en e
el multiplicadoor de 4 bits en
n Array. . 2.2.55
Multiplicador Carrry‐Save Para inttentar mejo
orar los tieempos invo
olucrados se s muestraa en las figuras anteriores, la arquitectura del Multipplicador se modifica lig
geramente para obten
ner el Multtiplicador Caarry‐Save. C
Como ya se habrá dado
o cuenta, el acarreo se trata como
o otro sumaando y se avanza a
a laa siguiente línea de su
uma. No exxiste, pues, propagació
ón de acarrreo en las sumas anterriores. La prropagación de señales se realiza hhacia la sigu
uiente etapa y no entree elementos de una miisma etapa. Es, por lo tanto, muy m veloz yy, como incconveniente
e, hay quee señalar qu
ue es neceesario añadir un sumaador normaal de M+N bits para generar ell resultado final deno
ominado Veector Mergin
ng Adder. HA
HA
HA
HA
HA
FA
FA
FA
HA
FA
FA
FA
FA
FA
HA
HA
A
Vector Meerging Adder
Figuraa 15: Multiplicador Carry‐SSave. Julio 22014 13 Sistemas ddigitales avanzzados Antees de term
minar con los algoritm
mos de multiplicació
m
ón, concrettamente co
on el Algoritmo de Bo
ooth, repasaaremos bre vemente lo
os Arboles d
de Wallace. 2.2.66
Arboless de Wallace Si veemos en deetalle el multiplicadorr del tipo Carry‐Save C
y visualizam
mos una de sus colum
mnas, estaa se pued
de reorgannizar como en la fig
gura siguieente. Con esta transsformación en árbol (Árbol dee Wallace) es posible
e mejorar el retardo
o del Multtiplicador (eequivalente al de un ssumador co
ompleto); sin embargoo, aún es po
osible mejo
orar este reetardo. Ello
o se consiggue empleaando el con
nocido com
mo Algoritm
mo de Bootth sobre Multiplicadores de W
Wallace que ha dado lugar a uno de
e los Multtiplicadores más rápido
os que existten; el Multiplicador de
e Booth‐Waallace. Figuraa 16: Transforrmación de una columna ddel Multiplica
ador Carry‐Sav
ve a una en cconfiguración
n Arbol de Waallace. Figuraa 17: Multiplicador de Wallace de 4 bitss 14 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales 2.2.77
Algoritm
mo de Bootth U
Una de las ventajas de d la aritméética binariia es el uso
o del despllazamiento para multiplicar y divvidir con po
otencia de 2. Basándose en esta propiedad,, el algoritm
mo de de Booth ess un algoritm
mo de multtiplicación q
que multipliica dos núm
meros multiplicación d
otación de complemen
nto a dos. E
Este algoritm
mo desarro
ollado binarrios con siggno en la no
por D
Donald Boo
oth en 1950
0, es usado ampliamen
nte en la m
mayoría de llas arquiteccturas de computadorres conocid
das, salvo een las del tipo t
DSP que utilizan multiplicadores rápid
dos. El procedimiento usado en el algoritmo d
de Booth se
e basa en eel análisis de dos bits, el primero es el meno
os significattivo del multiplicador ((R10) y un bbit adicionaal (Rx) éase la figu ra. Razón por p la cuál este algoriitmo es llam
mado que se inicializaa a “0”. Vé
Algoritmo de Bo
ooth Radix‐‐2. Estos doos bits se analizan a
en el control yy se decide
e si el desp
plazamiento
o se realiza con sumaa o resta o o simpleme
ente no se realiza nin
nguna operración aritm
mética y sólo se desp laza. Para entender este e
conceppto usarem
mos la tablaa de análisiss para el alggoritmo de B
Booth RADIX‐2 y la sigu
uiente figurra. R10
0
0
1
1
Rx
x
0
1
0
1
Operac
ción
Desplaz
za
Suma y desplaza
Resta y desplaza
Desplaz
za
Tabla 1: Algoritmo
o de Booth Radix‐2. Modoss de funcionam
miento Figuraa 18. Diagram
ma de bloquess de un multipplicador tipo B
Booth. El Algoritmo dee Booth se basa en uuna ruta de
e datos que
e contiene un conjuntto de regisstros (R0, R1
1 y R2), dos registros aadicionales de 1 bit (C y Rx) un suumador/restador Julio 22014 15 Sistemas digitales avanzados 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
0
1
2
3
4
R0
0110
0110
0110
0110
0110
R2
0000
0000
1101
0001
0000
R1
001
000
100
100
110
R10
0
1
0
0
0
Rx
0
0
1
0
0
Operación
Desplaza
Resta y Desplaza
Suma y desplaza
Desplaza
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
0
1
2
3
4
R0
0110
0110
0110
0110
0110
R2
0000
0000
1101
1110
1111
R1
111
011
001
100
010
R10
0
1
1
1
1
Rx
0
0
1
1
1
Operación
Desplaza
Resta y Desplaza
Desplaza
Desplaza
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 16 Julio 2014 Diseño avanzado de sistemas digitales 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) Divisor ___ 10011 Cociente 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 Julio 2014 17 Sistemas digitales avanzados Figura 19. Celda divisor básica para el algoritmo de división. N1 D1
N2
D2
N3
D3
N4
Q1
D
CD
CD
CD
N5
Q2
D
CD
CD
CD
N6
Q3
D
CD
CD
CD
R4
R5
R6
Figura 20. Divisor paralelo con 3 bits. 18 Julio 2014 Diseño avanzado de sistemas digitales 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) Julio 2014 19 Sistemas digitales avanzados Figura 22. Rotador a la derecha de 8 bits (RR) Figura 23. Desplazador/Rotador a la derecha de 8 bits con detector de desbordamiento 20 Julio 2014 Diseño avanzado de sistemas digitales 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). Julio 2014 21 Sistemas digitales avanzados 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
22 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
Julio 2014 Diseño avanzado de sistemas digitales Julio 2014 23 Sistemas digitales avanzados 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. 24 Julio 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 24. Tiemposs asociados a las señales dee entrada y sa
alida de un circuito combinnacional. P
Por otro lad
do, en los ccircuitos sínncronos, el elemento ffundamentaal para el diseño es el Flip‐Flop. R
Recordando
o que estoss elementoss presentan ciertas carracterísticass, que son las siguientees: ‐
‐
‐
‐
‐
‐
‐
Un Flip‐Flop es un circuito coon dos estaados, de ah
hí el nombbre de biesttable, debiendo permane
ecer sus ssalidas esttables, aún
n cuando la causa haya desapareecido. Un Flip‐Flop es un circuito sínncrono en el cúal la señal s
de Reeloj estable
ece el instante de cambio,, si procedee y en su casso produce una nueva salida. Un Flip‐FFlop se sinccroniza en loos flancos d
de la señal d
de reloj, bieen sea de subida o bien dee bajada. Un Flip‐‐Flop es un u circuitoo que tien
ne una bu
uena inmunnidad al ruido, r
generalm
mente a loss llamados ““glitches” o
o pulsos de corta duraación produ
ucidos por la conmutació
c
ón de los ccircuitos o por el propio diseñ o con la lógica l
combinaacional. Un Flip‐FFlop tiene u
una velocidaad de trabaajo limitada por la caraacterística p
propia del Flip‐FFlop, su imp
plementacióón y tecnolo
ogía usada.
Un Flip‐FFlop en un sistema sínncrono, tien
ne un consu
umo de eneergía en relación con la frecuencia de
e reloj. Puessto que este último, m
mantiene la aactualizació
ón del circuito en cada flaanco, aun cuuando el esstado del Flip‐Flop no haya camb
biado. Lo que supone un consumo innnecesario.
Un Flip‐Flop tiene unas caraccterísticas de d tiempo, que son cconveniente
es de recordarr, muy impo
ortantes en el diseño:
 Tiem
mpo de ase
entamiento (setup), tssu. Tiempo
o anterior aa la llegada del flancco de reloj e
en donde la entrada de
e datos debe permaneccer estable..  Tiem
mpo de man
ntenimientoo (hold), tho
old. Tiempo posterior aal flanco de
e reloj en do
onde la entrada de dattos debe pe
ermanecer e
estable.  Tiem
mpo de retaardo (propaagate) tp. Tiempo que transcurre desde el flanco f
de reeloj hasta que la salida de datos es estable. En la figgura siguiente se reppresentan estos e
tiemp
pos, así coomo tambié
én se represen
nta la utilizaación de un Flip‐Flop en
n un sistema síncrono. Julio 22014 25 Sistemas ddigitales avanzzados Figuraa 25: Tiempo
os asociados a las señalees de entrad
da y salida de d un circuitto secuencial y su impleementación de
entro de un sistema síncroono. Tal como
o se ha mencionado eel uso de re
egistros, un registro ess un conjunto de Flip‐FFlops, ayud
da a filtrar lo
os “glitchess”, que procceden el extterior (por eejemplo en R1) y tamb
bién los pro
oducidos po
or el circuitoo con la lógiica combina
acional inteermedia, a ttravés de R
R2. En cualq
quier caso, la lógica c ombinacion
nal tiene qu
ue estar bi en diseñad
da, en relacción a la optimización
n de las funnciones lógicas, la ecu
ualización dde las señales, la búsq
queda de baajo consumo y la reduccción del nú
úmero de transiciones s de no dese
eadas de laas señales que produzcan carrerass entre las m
mismas. Los “glitcches” o riessgos, valorees transitorios anómalo
os relejadoss como espurios, que se produceen en los circuitos com
mbinacionaales sin realimentaciónn. Pueden darse orios anómaalos en las salidas deb
bido a la exxistencia dee retardos en e los valorres transito
dispo
ositivos lógiicos. Véase la siguientee figura, en
n esta hay una puerta N
NOT con retardo de 2 nanosegun
ndos, previo
o a la mism
ma señal de
e entrada. La L señal enn color azul es el “glitcch”, debido al retardo de la puertaa NOT. 26 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 26: Señal anómala a
o gliitch, produciddo por el rettardo de una señal (Fuentte: Apuntes EUITT‐
UPM)). Existen básicam
mente dos tipos de riesggos, los riessgos funcion
nales, que aaparecen cu
uando se producen caambios en más m de unaa variable de entrada o los riesggos lógicos, que aparecen debid
dos a la realización harrdware del circuito y pueden prooducirse au
unque sólo cambie de estado una entrada. Figuraa 27: Riesgo funcional. (Fue
ente: Apunte s EUITT‐UPM). Figuraa 28: Riesgo ló
ógico. (Fuente
e: Apuntes EU
UITT‐UPM). Julio 22014 27 Sistemas ddigitales avanzzados Las aalternativass para evitaar los riegoos, pasa porr modificar la lógica dde los siguientes modos: 


In
nserción dee retardos h
hardware: SSu valor es d
difícilmente
e controlablle y varía co
on las ccondiciones de funcionamiento, p udiendo dar lugar a nu
uevos riesgoos. In
nserción dee lógica redu
undante: Peermite eliminar únicam
mente los rieesgos lógico
os. In
nserción dee lógica reggistrada: Noo elimina lo
os riesgos, sino s
su efe cto. Consiste en m
muestrear laa lógica cuaando ha finnalizado el rrégimen tra
ansitorio ‐y por tanto yya no eexisten glitcches‐almace
enando los valores de salida en flip‐flops. Essta solución es la m
más ampliamente utilizada tantoo para el diseño d
de ASICs comoo para circcuitos realizados co
on lógica programablee o discreta. Se denom
mina Metodoología de diseño SSíncrono. 3.2 M
Metaestabilidad y ssincronizaación El diseño síncro
ono de sistemas digitaales tiene una u base de d funcionaamiento sen
ncillo, tienee que cum
mplirse el siguiente s
c riterio: El régimen transitorio dde los circcuitos comb
binacionalees sin realimentación finaliza cu
uando ha transcurrido
t
o el tiemp
po de prop
pagación mááximo del circuito c
dessde el últim
mo cambio en una enntrada. Paraa que esto se cumplla, las salidas de lo s circuitos combinaccionales deeben registtrarse correectamente y deberán ser establees un tiempo antes del flanco acttivo de relo
oj o lo que ees lo mismo
o el tiempo de set‐up dde los flip‐flops. Véase la figura: Figuraa 29: Sistemas secuencial ssíncrono y tem
mporización d
del mismo. (Fu
uente: Apunttes EUITT‐UPM
M). Tal q
que la frecueencia máxim
ma de reloj permitada viene dada por la exprresión siguie
ente: max
m
1
Dond
de: 28 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales tpff max = es el tiempo de retardoo máximo del Flip‐Flop detalladdo en las hojas caraccterísticas d
de la tecnolo
ogía usada. tsu m
min = es el tiempo de
e asentamieento (setup
p) del Flip‐FFlop detallaado en las hojas caraccterísticas d
de la tecnolo
ogía usada. tpLC max = ess el tiempo
o de retarddo del bloq
que combin
nacional m
más lento de d los existentes en el sistema diggital síncronno. El sisstema digitaal debe cum
mplir que laa señal de rreloj les lleg
ga a todos los Flip‐Flops de maneera simultáánea. Esto, en gener al, no es posible que se verifiqque de maanera estriccta, el reloj llegará con
n cierto desffase debido
o a las longitudes de pi stas, conexxiones y difeerencias dee carga. El desfase de laa llegada de
el reloj a loss Flip‐Flops dde un circuito se deno
omina SKEW
W. Cuan
ndo la sinccronización de las se ñales de entrada e
no son realizzadas de forma f
correecta, se pro
oducen irregularidadess en la sincronización en consecuuencia se ge
enera un m
modo de operación den
nominado m
metaestable
e. Es decir, no se puedde asegurar en el Flip‐FFlop o en ell registro un
n valor de saalida establle. Esto se p
puede debe r a: 


A
A menudo existen e
enttradas al ci rcuito que son asíncronas respeecto a su re
eloj y d
deben ser sincronizadas antes de ppoder ser usadas en el mismo. LLa sincronizaación consiste en regisstrar la entrada en un flip‐flop coonectado all reloj d
del circuito. Durante essta operacióón puede occurrir que se violen loss tiempos de set‐
u
upo de hold del flip‐flop
p. C
Como conseecuencia, el flip‐flop puuede registrrar o no el e
evento de eentrada o, lo
o que ees peor, entrar en un esstado metaaestable. La M
Metaestabilidad se prod
duce cuanddo se violan los tiempos de set‐up p o de hold d
de un flip‐fflop, su salid
da puede pasar a un nnivel de tenssión interm
medio; al cabbo de un tie
empo indetterminado ttomará aleaatoriamentee el valor 0 ó 1. Figuraa 30: Metaesttabilidad. (Fue
ente: Apunte s EUITT‐UPM). La metaestabilid
dad se prod
duce en los ccasos siguie
entes: 
EEn la sincron
nización de entradas aasíncronas. A
Afecta solo a los flip‐fllops usadoss para sincronizar eestas entrad
das asíncronnas. Julio 22014 29 Sistemas ddigitales avanzzados 


LLa probabilidad de que
e un flip‐floop entre en estado metaestable
m
e y el tiemp
po de p
permanencia en dich
ho estado depende del proceso tecnolóógico y de
e las ccondiciones ambientale
es de funcioonamiento.
EEl estado metaestable generalme nte pasa a un estado e
estable ráppidamente e
en los flip‐flops invvolucrados. C
Cuando la saalida del flip‐flop es m
muestreada en el estad
do metaestaable, se pro
opaga u
un valor indefinido a la lógica a la qque esté co
onectado. La m
metaestabilid
dad en las entradas a síncronas se s corrige, proporcionaando un tie
empo en ciiclos de relo
oj, antes de
e usar las seeñales de e
entrada al circuito. Seggún sea el ccaso y form
ma de las enttradas, se p
puede hacerr de varias fformas. 
SSincronizació
ón de las señales s
asínncronas de entradas, cuando sonn mayores a un cciclo de relo
oj. Se usa un
n conjunto dde Flip‐Flops. Figuraa 31: Sincronización de enttradas asíncroonas. (Fuente
e: Apuntes EUITT‐UPM). 
SSincronizació
ón y conforrmación dee pulsos de entrada mas grandes que un cicclo de reloj a señales de un cicclo. Figuraa 32: Sincronización de enttradas asíncroonas. (Fuente
e: Apuntes EUITT‐UPM). 30 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales 
SSincronizació
ón y conforrmación de pulsos de e
entrada más pequeñoss que un cicclo de reloj. Figuraa 33: Sincroniización de enttradas asíncroonas más peq
queñas de un ciclo de reloj
oj. (Fuente: Ap
puntes EUITTT‐UPM). 
SSincronizació
ón y eliminaación de gli tches en lass entradas.
Figuraa 34: Sincronización de enttradas asíncroonas con glitcches. (Fuente: Apuntes EUITTT‐UPM). 3.3 R
Reloj y ske
ew En cu
ualquier sisstema síncrono, la refeerencia prin
ncipal del sistema es l a señal de reloj. Adem
más de otraas señales gglobales, coomo la señaal de reset, es tambiénn la que tien
ne un número alto de cargas de cconexiones,, lo que pro
oduce altos retardos. EEstas señale
es son especialmente ssensibles a problemas , pues están conectad
das a todos los Flip‐flops de Julio 22014 31 Sistemas ddigitales avanzzados un sistema. Su distribució
ón a lo larggo de un ciircuito integrado o dee una tarjeta de circu
uito impreso
o lleva asociado lo quee se denomiina líneas globales y quue pueden tener una aalta resistivvidad y una gran carga,, lo que se ttraduce en un retardo dependien
nte de la longitud de la línea. Essta es la caausa por lo
o que los flancos activvos del reloj no alcan
nzan a todo
os los Flip‐flo
ops en el m
mismo instan
nte de tiempo. Se dice entonces q
que la señal de reloj tieene SKEW. nos importaante, lo que
e sucede es que no toddos los Flip‐‐flops En ell caso del reeset es men
se reesetean sim
multáneame
ente, lo quue puede dar d lugar a estados nno deseado
os del sistema. Si bien no se suele
e hablar proopiamente d
de skew en el reset. Noo obstante es un prob
blema muy importante cuyas posibbles solucio
ones se mosstrarán más s adelante. Como se ha com
mentado, el SKEW es laa diferencia que existe en el flancoo de reloj en dos punttos distintoss del sistema digital. Esste SKEW tie
ene un mod
delo generaal: Figuraa 35: Desfase de reloj. Skew
w. (Fuente: A
Apuntes EUITT
T‐UPM). Otro efecto adiccional al skew es el “jiitter”. Este último es la
a variación temporal entre flanccos consecutivos de reloj. Lo que también puede ocasionarr problemaas de sincrronización. En ambos ccasos, se vee afectada lla señal de reloj. En la figura sigu
uiente se pu
uede ver la diferencia e
entre amboos efectos. EEl skew, Tsk y el jitter, TTjs. 32 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 36: Skew (tssk) y jitter (tjss) de reloj. Un eerror que se suele com
meter en eel diseño de
e los sistem
mas digitalees consiste en la geneeración de un u reloj para un bloq ue funcional o para un u registro a través de
e una funciión lógica. C
Como en el caso siguie nte: Figuraa 37: Generacción de reloj d
de forma com
mbinacional. (FFuente: Apuntes EUITT‐UPPM). Este tipo de diseño hay qu
ue evitarlo aa toda costta, pues pue
ede dar muuchos dolores de cabeeza. Puede funcionar f
en e algunas condiciones, pero con
n cambios dde frecuenccia de reloj o de disttribución en el emplaazamiento de componentes, segguramente dará prob
blemas. Figuraa 38: Evitar el e diseño con
n el reloj gennerado de forrma combinacional. (Fuennte: Apuntes EUITT‐
UPM)). El otro error que suele com
meterse de forma muyy frecuente,, es la gene ración de reloj a travéés de otro Flip‐Flop, lo que geneera una vio
olación de los tiempoos de reloj en la captu
ura de datos en otros registros,, debido a que los da
atos y el reeloj se regiistran simu
ultáneamentte, lo que o
ocasiona enn la temporrización una
a igualdad en el tiemp
po de set‐u
up de dato
os y reloj generado. Este tipo de funcion
namiento sse puede ver v a contiinuación. Julio 22014 33 Sistemas ddigitales avanzzados nerado de forrma secuencia
al. (Fuente: Apuntes EUITTT‐UPM). Figuraa 39: Violación de reloj gen
Figuraa 40: Evitar ell diseño con e
el reloj generaado de forma secuencial. (F
Fuente: Apunntes EUITT‐UP
PM). El disseño correccto en un sistema síncrrono, consisste en habilitar el relojj en el mom
mento que se necesitee a través del d uso de señales de “enable” o o del uso dde Flip‐Flops con habillitación. 34 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 41: Habilitacción de la señ
ñal de reloj. (FFuente: Apuntes EUITT‐UPM). 3.4 R
Reset y prreset ¿Cuáándo no hem
mos oído en
n nuestro ppaso por la u
universidad
d: hay que hhacer un “re
eset”. En geeneral duraante la univversidad enn el diseño de todos lo
os sistemass secuencialles se les d
da poco inteerés al “reset” y al “prreset”. Sin e
embargo un
n mal uso oo inadecuad
do de estoss puede ressultar catasstrófico en nnuestro disseño. Ambo
os tiene un objetivo sim
milar: llevar la salida Q
Q de un flip‐‐flop a “0” oo a “1” lógicco, respectivvamente. Diseñ
ñadores con experienccia recomieendan, en ggeneral, que
e todo flip‐‐flop deberíía ser puessto a un nivvel lógico, es decir iniciializado con
n reset o prreset, cuanddo lo requie
era el sistema. Esto tieene que serr planificadoo y estudiad
do, eligiendo una estraategia que p
puede de 2 formas: de forma aasíncrona oo de forma ssíncrona. ser d
Reseet asíncrono
o. Un mal diiseño asíncrrono del resset puede ccausar falloss en la operración del ssistema digiital. Generaalmente el pproblema se puede prresentar no cuando el reset se im
mpone sino cuando el reset se quuita. Este tipo de resett viene imppuesto en e
el flip‐
flop yy es típico eel uso de re
eset activo a nivel bajo
o (el flip‐flop va a “0” llógico cuando se ponee un”0” lógico a la entrrada de reseet). Un ejem
mplo en VHDL de un coontador con
n este tipo de reset es el siguiente
e: libr
rary ieee
e;
use ieee.std
d_logic_1
1164.all;
use ieee.std
d_logic_u
unsigned. all;
enti
ity ctr8s
sr is
port (
c
clk
: in std_logic
c;
r
rst_n
: in std_log
gic;
d : in st
td_logic;
l : in std_logic;
ld
;
Julio 22014 -- señal de reloj
j
-- señ
ñal de re
eset
35 Sistemas digitales avanzados 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');
elsif (ld = '1') then
36 -- reset síncrono
Julio 2014 Diseño avanzado de sistemas digitales count <= '0' & d;
else
count <= count + 1;
end if;
end if;
end process;
end rtl
-- carga síncrona
-- incremento
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 Julio 2014 37 Sistemas digitales avanzados 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 38 Julio 2014 Diseño avanzado de sistemas digitales 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. Julio 2014 39 Sistemas ddigitales avanzzados ma digital. Figuraa 43: Principaales inter‐ conexiones de unna memoria ccon un sistem
4.1.11
Clasificaación de me
emorias sem
miconducto
oras Existen una varriedad de formas, f
tam
maños y esttilos en fun
nción de laas necesidades y aplicaciones. Deependiendo
o del nivel de abstraccción que usemos, u
exxisten diferentes mas de expreesar el uso d
de la memooria, por eje
emplo, a nivvel de circuiito usamos el bit form
como
o parámetrro de medid
da equivale nte, al núm
mero individ
dual de celddas de mem
moria, esto es, kilobitss (Kbits), me
egabits (Mbbits), gigabiits (Gbits) o Terabits ((Tbits), o ell byte (grup
pos de 8 o 9
9 bits), esto
o es, Kbytess, Mbytes, G
Gbytes o Tb
bytes. A nivvel de sistem
ma es comú
ún usar el w
word (palab
bra), el cua l representta la unidad
d de cálculoo del orden
nador. Una palabra de 32 bits, rep
presentaría un ordenad
dor que trab
baja con dattos de 32 bits. oras suele sser en base
e a su La clasificación más generaal de las m emorias semiconducto
funciionalidad. A
A nivel gene
eral se puedden clasificaar en dos gra
andes grupoos, memoriias de sólo lectura o reead‐only meemory (ROM
M) y memorias de lectura y escrittura o read‐‐write mem
mory (RWM). Como su nombre loo indica, lass memoriass de lecturaa y escritura son más flexibles debido a essta caracterrística. En esta e
última, el dato ddigital, el bit, b se pued
de almacenaar en un flip
p‐flop (celdaa de memoria estática) o en la carrga capacitiva de un co
ondensador (celda de memoria ddinámica), respectivam
mente. En aambos caso
os, es neceesario circuitería de control c
parra la lectura y escrittura del biit en las celdas c
correespondientees y dado que q el circuuito de control y las celdas son aactivas, es decir, requieren de un
na tensión d
de alimentaación para m
mantener el dato binarrio en la celda, a estass memoriass se les clasiifica tambiéén como me
emorias vollátiles, el bitt pierde su valor cuan
ndo la tensió
ón de alime
entación se corta. Las m
memorias R
ROM, o de sólo lectura,, tienen la ccaracterísticca de ser noo volátil, es decir manttienen su informació
ón aún cuuando no estén con
nectadas aa la fuente de alimeentación. La L informacción digital se “guardaa” a travéss de una innterconexió
ón de diodo
os o transistores funccionando enn modo fussible. Existe
e un processo en el cu
uál se escribe el conteenido de laa memoria,, mecanism
mo con el que q se “reaarma” el fu
usible. Existen diferenttes tipos de
e memoriass ROM depe
endiendo d
del tipo de regeneració
ón de este fusible. Más M adelantte se detal lan cada una u de las celdas parra cada tip
po de mem
moria. Una segunda claasificación sse basa en lla forma en la que se trabaja con lla memoriaa. Una primera clase es e las llamaadas random
m‐access memory m
(RA
AM) o mem
morias de acceso aleattorio. Lo que significa q
que el dato binario puede ser leíd
do o escrito o en una possición de m
memoria en orden aleatorio. Esta segunda clasificación es la más eempleada hoy en día, ttal que en el mundo d
de los siste mas digitales se utiliza
a los términnos RAM y ROM 40 Julio
o 2014 Diseño avanzado de sistemas digitales 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 RAM SRAM Static random access
(volátil) DRAM Dynamic random Access
FIFO First‐in first‐out memory
CAM Contents‐addresssable memory VRAM Video random access memory ROM ROM Read only memory
(no volátil) PROM Programmable ROM
EPROM EEPROM FLASH Erasable programmable
ROM Electrically erasable programmable ROM Multiple Access EEPROM Aplicación
Rápida y de baja densidad. Un FF por celda Memoria cache Alta densidad. Un transistor por celda. Memoria principal de un ordenador Memoria multipuerto usada como buffer de interfaz de sistemas Memoria multipuerto de acceso según contenido del dato Memoria multipuerto de acceso de diferente ancho de puerto Grandes series de producción. No es borrable. Grabado en fábrica. Grandes series de producción. No es borrable. Permite un grabado. Borrable con luz ultravioleta. Permite regrabado Borrable de forma eléctrica. Permite regrabado 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. Julio 2014 41 Sistemas ddigitales avanzzados La esstrategia paara impleme
entar este t ipo de estru
uctura de m
memoria sem
miconducto
ora se basa en el esquema de la figura sigguiente, en
n la que se
e pueden vver dos blo
oques princcipales y dos d
buses de inform
mación conectados. El primer bloque es e un deco
odificador que q tiene co
omo objetivvo reducir el número de líneas dde selecció
ón del exterrior, llamad
do bus de diirecciones A
A0‐AK‐1. Este decodificad
dor convierrte la direccción A a N==2K líneas dee selección,, donde sóloo hay una línea activa a la vez. El bus de dattos es de an
ncho M‐bitss y por este bus, se lee o escribe u
una palabra. Figuraa 44: Arquitecctura de mem
moria de N‐pallabras y M‐bits por palabra
a. Tomaando como
o ejemplo laa figura ant erior, si queremos imp
plementar uuna memorria de 10 1Kbyyte, N será igual 1024 o lo que ees lo mismo
o 2 palabras y M seerá igual a 8 8 bits (bytee). La mem
moria es entonces de una capacidad de 8K
Kbits o de 1Kbyte con
n una estru
uctura de 10
024 palabraas de anchoo 1 byte. De
esde el pun
nto de vista del diseñador o ingen
niero de diseño, tamb
bién se sueele llamar posición p
de memoria aa una palabra o word
d. Evideentemente,, las estructturas de m emoria son
n ahora mu
uy complejaas debido al alto grado
o de integrración de lo
os circuitos,, por lo que el decodiificador de direcciones y la geom
metría del conjunto de celdass de almaacenamiento
o, obligan a distribuir y reorgganizar el p
proceso de d
decodificacción y de la memoria p
para disminuuir el retard
do en el proceso de leectura y escritura. Se inntroduce más lógica de
e control coon la finalidad de no peenalizar el ttiempo de aacceso a la iinformación
n. Otro aspecto im
mportante d
de las mem
morias en loss aspectos de diseño yy elección d
de las mism
mas, son lass característticas de tem
mporización
n. Estos asp
pectos tambbién nos diccen la calidad de la meemoria. Ya hemos vistoo que las m
memorias se pueden “leeer” o “escrribir”. es inmediatto. Existe unna latencia en el Como cualquierr circuito diggital este p roceso no e
tiempo desde que se indicaa la posiciónn de la mem
moria a leerr y el tiemppo en que ell dato está disponible a la salida de la memooria. Este tiiempo es lla
amado tiem
mpo de lecttura o read
d‐access‐tim
me. En conssecuencia eexiste un tiempo llam
mado de esscritura o write‐
w
accesss‐time, sieendo el tiempo entree una peticción de esccritura y la escritura en la posicción de meemoria indicada. Un t ercer tiemp
po, es el ciclo compleeto de lectura y escritura read‐w
write‐cycle. El cuál e s el tiempo mínimo necesario para lecturas y escrituras suceesivas, procceso que es usado ampliamen
nte en loss algoritmo
os de 42 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales programación. EEstos tres p
parámetros de tiempo,, no tienen por qué serr iguales, ess más seríaa raro que lo
o fueran. Ad
demás de e stos existen
n otros no m
menos impoortantes que hay que tener en cuenta c
cuaando se disseña con memorias m
integradas que se verrán a contiinuación. Read cycle
READ
D
Read
d access
Read acc
cess
Write cycle
WRITE
TE
W
Write
access
Data valid
v
DAT
TA
Data writtten
Figuraa 45: Parámettros de tempo
orización prinncipales de un
na memoria.
4.1.33
La celdaa de memoria ROM
M. Conceptu
ualmente, laa estructuraa de la mem
moria ROM es la más seencilla. Lo fforma un array de filaas y column
nas. Una ceelda es una posición do
onde la fila y la columna se cruzaan. Una celda es capaaz de alma cenar un bit. b Este bitt es puestoo a través de d un interrruptor lógicco controlado por tenssión a travé
és de diodoss, un transisstor bipolarr o un transsistor MOSFFET. Tal com
mo se puedee ver en la ssiguiente fig
gura. Julio 22014 43 Sistemas ddigitales avanzzados Figuraa 46: Represe
entación de un
na celda en RO
OM y de una ROM de 4x4 bits. RAM
M Estática. LLas celdas que componnen este tip
po de memo
oria están fformadas por un conju
unto de traansistores conectados, ya sean transistores b
bipolares o transistore
es del tipo MOS. La co
onfiguración
n de estos ttransistoress forman un
n Latch. Pueede usted vver en la figgura siguien
nte que mientras un el par de transistores a la dereecha (M4 y y M3) manttienen Q=1
1, aseguran
ndo que M
M2 y M1 estén e
en el modo com
mplementaario y mantteniendo /Q
Q=0. Este e
estado se m
mantiene hasta que desde fuera dde la celda no se fuercce el cambio. Si se corta la alimentació
ón, el contenido de la celda y en consecuencia dee la memoria RAM, se pierde. Lo q
que significa que este ttipo de mem
moria es vo
olátil. Figuraa 47: Represe
entación de un
na celda de m
memoria RAM estática RAM
M Dinámica. Las celdas que comp onen este tipo de me
emoria, son exclusivam
mente con ttransistoress MOSFET. El esfuerzoo realizado por las emp
presas tecnnológicas en
n este 44 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales tipo de memorias es muy ggrande, busscando altaas densidades con celddas cada vezz más pequ
ueñas, lo qu
ue significa memorias dde muy altaa capacidad
d. En sus iniicios, la celd
da de mem
moria RAM d
dinámica se
e realizaba ccon 3 o 4 trransistores,, véase la fi gura, para pasar en laa actualidad a celdass con un s olo transistor, reduciendo signifficativamen
nte la comp
plejidad y aumentando
o la densidaad. El prrincipio de esta clase de d memoriaas es la carrga del Con
ndensador CCs, condensador que es parte inttrínseca al transistor, si está com
mpletamente cargado ((un “1” lógiico) o comp
pletamentee descargad
do (un “00” lógico). La desven
ntaja de l a celda con 3 transsistores, es que la lectu
ura es destrructiva, es d
decir, que la
a lectura deel “1” lógico
o hace que el condenssador descaargue, por lo que pasa a “0”. Po
or lo que ees necesario
o que pués de la lectura se haga h
una opperación de
e escritura para restauurar el valo
or. No desp
ocurre igual en la celda fo
ormada poor un transistor, la lectura no es destructiva, sin embaargo requiere de un amplificaddor en la línea de lectura y uun condensador adicional. Por lo
o que la celda de una m
memoria dinámica de 1 transistorr no es un ttercio en taamaño que la celda de memoria ddinámica de 3 transistores. Las memorias dinámicas presentann una com
mplejidad adicional. El uso de un cond
densador reequiere de u
una circuiteería adicional, denomin
nada “refreesco”. La función de este sistemaa de refrescco es reescrribir las celdas leídas durante el ciclo de lecctura, perm
mitiendo maantener el vvalor de la ttensión en el condensador. Los vaalores típicos de refreesco son 2,4
4 u 8 milisegundos. EExisten diferentes tipo
os y modos de sistemas de refreesco según el tipo de memoria. LLas señales de control de este sisstema se suelen llamaar RAS (row
w‐address sttrobe) y CASS (column‐aaddress stro
obe) y juntoo a un sistem
ma de control (dynamiic memory ccontrol) reaalizan la tem
mporización
n del processo de refresco de las m
memorias dinámica. BL
WL
M1
CS
CBL
Figuraa 48: Repressentación de
e una celda de memoriia RAM diná
ámica. Izquieerda, celda con 3 transiistores. Dereccha, celda con
n un transistoor. 4.1.44
Diseño con memorias Existen dos mod
dos de trab
bajar con m
memorias, ya sea incrementar el aancho de bits de datos (palabra) o increm
mentar su capacidad
d (número de posicciones). En una Julio 22014 45 Sistemas ddigitales avanzzados “orgaanización de memoria”, cada me moria está representa
ada de un m
modo en nú
úmero de p
posiciones x x número de d bits porr posición. Así pue
es, una meemoria de 1Kx4, repreesenta una memoria de 1024 pos iciones con 4 bits de datos por poosición. El bus de direccciones es d
de K=10 y b
bus de datoos de M=4, según la fig
gura siguiennte. La mem
moria es dee 1024 palaabras, cada palabra de 4 bits. Otraa forma de expresar ell tamaño de
e esta mem
moria es de 4Kbits o 40
096 bits, orgganizada en
n 1024 posicciones de 4 bits. Figuraa 49: Diagram
ma de bloquess de una mem
moria genérica
a y una memo
oria de 1Kx4. Expaandiendo el bus de dattos. Siguien do el criterio anterior, podemos i ncrementar esta mem
moria en pasos de tam
maño el bus de datos. Por ejemplo, una mem
moria de 1K
K x 8, realizzada con m
memorias de
e 1Kx4, tenddremos unaa organización con 2 m
memorias de
e este tipo, como en laa figura sigu
uiente. En e sta figura se ha expand
dido el bus de direccio
ones y n correcta. Ambas memorias trab
bajan de fo rma simultánea, datos para ver la conexión
es deecir, el Chip
p Select se activa en ambas en el mismo instante, ta nto en escritura como
o en lecturaa. La diferencia es quee ahora el b
bus de datos es de 8 b its, la parte
e baja (4 bitts) se escrib
ben en la m
memoria de la parte sup
perior y la p
parte (4 bitss) se escribe
en en la meemoria de aabajo. El bu
us de direccciones está simplemen
nte conecta do en paralelo y es neecesario el mismo nú
úmero de sseñales de dirección, para un 1KK posiciones son neceesarios 10 b
bits. El méto
odo ilustraddo se aplicaa a cualquie
er tipo de m
memoria, yya sea tipo RAM o tipo
o ROM. 46 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 50: Expandiendo el bus d
de datos a unaa memoria de
e 1Kx8 con me
emorias de 1KKx4. Expaandiendo el e bus de direcciones
d
s. Suponga ahora que
e es un in cremento en el número de posiiciones, es decir, en laa capacidad en posiciones de la m
memoria. En
n este caso se expandee de 1Kx4 aa 2Kx4. Tal como usted
d ya se ha d
dado cuentta, en el eje
emplo anterior y en esste ejemplo ambos móódulos de m
memoria son
n de la mism
ma capacidaad en n, 1Kx8 = 2Kx4 = 8K b its. Puede usted número de bits, pero diferrentes en oorganización
que las direecciones re
equieren dee un bit más (A10), pues p
para 22K posiciones se ver q
neceesitan 11 bits. b
Estos bits b se connectan en paralelo los primeross 10 bits, desde d
A0
A9. La direección más alta, la A110, se utilizaa para seleccionar quee dispositivvo del módulo esta “acctivo” por m
medio del CChip Select y cuáles no
o (su bus dee datos en ttercer estad
do). Se geneeran por tanto dos líneeas de Chip Select. Ade
emás, fíjesee en la figura que el bu
us de dato
os es comp
partido por ambos memorias. Entonces cuuando A10=
=0, la mem
moria de arrriba en la figura, se enncuentra acttiva (los dattos se puedden leer a ttravés del b
bus de dato
os), mientraas que la dee abajo en la figura pe
ermanece een tercer esstado. En o
otras palabrras, se pueden leer/esscribir las posiciones p
de memorria 0000000
00000 (00016) hasta laa 01111111111 (3FF116). Ahora bien, cuand
do la direccción A10=
=1, se emorias, taal que ahorra las interrcambia el control del bus de ddatos entre ambas me
posicciones de m
memoria son
n 100000000000 (40016) hasta la 011111111111 (7FF16), que se correesponden a la memoriaa de abajo een la figura. Julio 22014 47 Sistemas ddigitales avanzzados eros de posiciiones a un módulo de memoria de 2Kxx4 con memorrias de Figuraa 51: Expandiendo el núme
1Kx4. Expaandiendo el e bus de datos y eel número de posicio
ones. Supoonga ahoraa que neceesitamos un
n módulo de memorria de 4Kx8
8, con mem
morias de 1Kx4. Es decir, dupliicamos el b
bus de datoss y cuadripl icamos el n
número de p
posiciones. Para facilittar las figuras cuando eexisten buses que van en paralelo
o, se usa grá
áficamente el bus. Tal ccomo ha po
odido dedu
ucir, necesitaremos de cuatro Chip
p Select dife
erentes, quee son generados por m
medio de lo
os dos bits d
de direccionnes más alto
os (A11 y A1
10). Figuraa 52: Expandiiendo el número de posiciiones a un m
módulo de me
emoria a 4Kx8
x8 con memorrias de 1Kx4. 48 Julio
o 2014 Diseño avanzado de sistemas digitales 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
A11 A10 A9 A8 A7 A6 A5 A4 A3
0 0 1 1 0 1 0 1 X X X X X X X X X X X X X X X X X X X X X
X
X
X
X
X
X
X
A2
A1
A0
CS0
X
X
X
X
X
X
X
X
X
X
X
X
0
1
1
1
Chip Select Posición
CS1 CS2 CS3 (hexade‐
cimal) 1
0
1
1
1
1
0
1
1 1 1 0 000‐3FF 400‐7FF 800‐CFF 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) Bit
7 Bit
0 000
0
1023
1K x 8
1Kx4 (x2)
CS0
1K x 8
1Kx4 (x2)
CS1
1K x 8
1Kx4 (x2)
CS2
BFF
C00
3xxx
4095
7FF
800
2048
3xxx
3FF
400
1024
2047
Posición de Inicio y fin (hexadecimal) 1K x 8
1Kx4 (x2)
CS3
FFF
Tabla 6: Mapa de memoria de módulo de 4Kx8 con memorias de 1Kx4 expresado en forma de bloque. Julio 2014 49 Sistemas ddigitales avanzzados 4.2 Integración con m
microproceesadores
Figuraa 53. Conexión típica de un
n microprocessador con disp
positivos exte
ernos y de meemoria. 4.3 Memoriaas específficas 4.3.11
Memorrias multipu
uerto. FIFO
Cuan
ndo dos o más m sistemaas tienen laa necesidad
d de compa
artir datos oo un espaccio de mem
moria, existee la necesidad de contrrolar o “arb
bitrar” el accceso a la m emoria evittando el co
onflicto. El árbitro o controladoor de acceso, no es más que uun sistemaa que multiplexa los b
buses de dattos, de direecciones y d
de control, ssegún se fijeen los criterios o las rreglas de acceso, por ejemplo ppor prioridaad, por tiempo, etc. En este tip
po de aplicaciones esp
peciales existe la posibbilidad de evitar este árbitro con aarquitecturras de moria con característic
c
cas específi cas, tal es el caso de
e memoriass que tenggan la mem
capacidad de leer o escribir por dos diiferentes dispositivos d
de forma sim
multánea en dos posicciones de memoria. Las difere ntes aplicaaciones que requiereen este tip
po de mem
morias sueleen ser de te
elecomunicaaciones, po
or ejemplo e
en multimeedia. Mientrras se proceesa la escrittura por un puerto de entrada, al mismo tiem
mpo se pueede ir leyend
do en otro puerto dee salida, un
na posiciónn por detráás o en otrra zona dee memoria. Este conccepto tienee un benefficio imporrtante también cuand
do hay doos sistemass que comp
parten un espacio e
de memoria ttrabajando con diferen
ntes velociddades de re
eloj o con eel mismo reeloj de form
ma asíncronaa. Las vventajas de este tipo de
e memoria son: 




50 LLa comuniccación y sincronizacióón de disp
positivos a través de memoria para transferir daatos, a la vez que almaccena. SSimplificació
ón del diseñ
ño de sistem
mas con memoria comp
partida. A
Acceso direccto a memo
oria (DMA) ssin detener los accesoss a la CPU. SSimplificar lo
os sistemas de memorria caché. SSimplificar los sistemass de comunnicaciones, usando memorias m ultipuerto como b
buffers y adaptando velocidades eentre sistem
mas. Julio
o 2014 Diseñ
ño avanzado de sistemass digitales 
LLa memoria cuenta porr lo general con un con
ntrol interno
o para evitaar la escritu
ura en laa misma po
osición por aambos puerrtos en el m
mismo instante. Dandoo prioridad aa uno d
de ellos. Figuraa 54. Memoria de doble pu
uerto. Mem
morias FIFO
O. El concep
pto FIFO (Fiirst In, Firstt Out), es ampliament
a
te usado co
on las mem
morias integgradas y se b
basa en unaa arquitectu
ura de mem
moria de dobble puerto y una lógica de contro
ol que se añade a
para lograr un estructura simple de “el primero
o que entraa”, es “ el p
primero que
e sale”. Se ssimplifican ttodos los bu
uses de dattos al exterior de la meemoria y so
olamente haay datos de escritura/le
ectura, juntto con las seeñales de Read y Writee. Este tipo de memorias son usaddas para haacer almace
enamiento yy control de
e flujo en lo
os sistemas de comunicaciones y de control y se compo
orta como uuna cola circular. Tal ccomo se ve en la figurra, hay un ppuntero de escritura (bus de direecciones en
n lado izquierdo) y un puntero de d lectura ((bus de dire
ecciones al lado dereccho). En el inicio (Reseet) ambos punteros están en la primera ub
bicación de memoria ((FIFO vacía) y la señal de Vacío sse activa. Si se escribe (Write) se incrementa
a el punteroo de direcció
ón de escritura y la seeñal de Vacio se desacctiva. Cuand
do el registrro de direccción de escritura alcan
nza al de lecctura, se activa la señaal de Lleno. Estas dos ú
últimas señaales (“flags””) son muy importantees para el co
ontrol de la FIFO desde
e los dispositivos que laa acceden. Figuraa 55. Estructu
ura principal d
de una memo ria FIFO. 4.3.22
Memorrias cache La mem
moria caché es una mem
moria SRAM
M usada por la CPU coon el objeto
o de a reducir el tiemp
po de acceso a la mem
moria princip
pal. La organización dee memoria e
en un sistema se con
noce como jerarquía dde memoriia. Es una organizacióón piramidal en niveles que tien
nen los siste
emas progrramables co
omplejos. Se
e puede veer la jerarqu
uía en la sigguiente figura. Julio 22014 51 Sistemas ddigitales avanzzados a en un sistem
ma digital. Figuraa 56. Jerarquíía de memoria
La memo
oria caché e
es una mem
moria más p
pequeña y m
más rápida l ocalizada lo
o más cercaa posible a los registros de la CPU
U, la cual alm
macena cop
pias de datoos ubicados en la mem
moria princcipal que se utilizan con máss frecuencia. Esta duuplicidad de d la inforrmación se conoce com
mo principioo de localid
dad. Esta prropiedad see justifica puesto que los datos originales tienen un coste de tiempo t
alto
o en velociidad de accceso, respeecto a la copia localizada en la cacché. El funcio
onamiento es simple, ccuando se accede porr primera veez a un datto, se hacee una copia de un bloqu
ue de datoss en la mem
moria caché. El acceso aal primer daato es más lento que los accesoss para com
mpletar el bloque, el tiiempo de aacceso med
dio es meno
or al iniciall. En el momento en ccuando el procesador p
necesita leeer o escrib
bir en una ubicación een memoriaa principal, pprimero verifica si una
a copia de loos datos esstá en la caché. Si es assí, el processador de inm
mediato lee
e o escribe e
en la memooria caché (Mca), que ees mucho m
más rápido q
que de la leectura o la e
escritura a la
a memoria principal (M
Mpp). Figuraa 57. Estructu
ura y organización de mem oria y una CP
PU. La orrganización de la mem
moria caché pasa por e
el diseño de
e las memo rias Mca, M
Mpp y un bloque de co
ontrol de direcciones aa la memoria Cache, co
onsiderandoo varios facctores que influyen diirectamente
e en el renndimiento de la mem
moria y porr lo tanto en e su 52 Julio
o 2014 Diseño avanzado de sistemas digitales 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. Julio 2014 53 Sistemas digitales avanzados Por último las políticas de lectura y escritura a la memoria Cache, que son: Lectura de Cache Escritura 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, 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 54 Julio 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 58. Correspo
ondencia en u
una memoria caché directa
a Cach
he Asociativva. Los bloques de la memoria p
principal se alojan en ccualquier bloque de laa memoria ccaché, comprobando ssolamente lla etiqueta de todos y cada uno d
de los bloques para veerificar acierto. El princcipal inconvveniente es que precissa una circu
uitería comp
pleja para hacer la co
omparaciónn en parale
elo de todo
os los camppos de etiq
queta. Siguiendo los daatos del ejemplo anter ior, 






M
Microprocessador de 16
6 bits: direccciones y dattos de 16 biits. M
Memoria caché de 512 Bytes. (buss de direccio
ones de cacché de 9 bitss) M
Memoria principal de 3
32KBytes. (laa mitad del mapa de m
memoria) N
Numero de palabras po
or bloque (KK) = 8 (3 bitss de direcció
ón). N
Número de bloques: 51
12/8 = 64 blloques (se n
necesitan 6 bits de direección) TTag = 16‐3 
 13 bits ( sse utilizan s ólo 12) TTamaño de palabra de la memoriia cache: 16
6 bits de da
atos + 12 bbits de tag  28 b
bits Julio 22014 55 Sistemas ddigitales avanzzados Figuraa 59. Correspo
ondencia en u
una memoria caché asociativa Cach
he Asociativva por Conjuntos. Estaa cache con
ntiene las ve
entajas de llos dos méttodos anteriores. Está compuesta por “r” bloques y “q” “ conjunttos de moddo que C = q×r , siend
do C el nº de bloques d
de la memo ria caché.
El fun
ncionamien
nto consiste
e en que cadda bloque d
de la memo
oria principaal tiene asiggnado un cconjunto dee la caché, pero se ppuede ubicaar en cualq
quiera de llos bloquess que perteenecen a dicho conjun
nto. Ello peermite mayo
or flexibilid
dad que la ccorrespondencia direccta y menorr cantidad d
de comparacciones que la totalmen
nte asociativva. Siguiendo el ejeemplo anterrior: 







M
Microprocessador de 16
6 bits: direccciones y dattos de 16 biits. M
Memoria caché de 512 Bytes. (buss de direccio
ones de cacché de 9 bitss) M
Memoria principal de 3
32KBytes. (laa mitad del mapa de m
memoria) N
Numero de palabras po
or bloque (KK) = 8 (3 bitss de direcció
ón). N
Número de bloques: 51
12/8 = 64 blloques (se n
necesitan 6 bits de direección) N
Número de bloques po
or conjunto = 2; Núme
ero de conju
untos = 64//2 = 32  5
5 bits d
de dirección
n TTag = 16‐8 
 8 bits ( se
e utilizan só lo 7) TTamaño de p
palabra de la memoriaa cache: 16 bits de dato
os + 8 bits dde tag  24
4 bits 56 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 60. Correspo
ondencia en u
una memoria asociativa po
or conjuntos
Ejem
mplo de cálcculo de tiem
mpo de acceeso. Hago e
el cálculo de
e la tasa de acierto (hitt) y el tiempo de acceeso efectivo
o para un pprograma qu
ue se ejecu
uta desde laas posiciones de mem
moria principal 48 a 95
5 y realiza 110 bucles desde d
la posición 15 a 31 en mem
moria princcipal. Supon
nga una memoria cachee con las sigguientes característicass: ‐
‐
‐
‐
‐
Memoriaa caché de mapeo direecto 4 bloquees de 16 palabras cada bloque Tiempo d
de acierto ((tiempo efeectivo de accceso a Mca) de 80 ns. Tiempo d
de fallo (tie
empo de accceso a Mpp) 2500 ns., lectura de bbloque. La memo
oria cache está vacía een el arranq
que y utiliza el modo dde lectura Load‐
through.. Julio 22014 57 Sistemas digitales avanzados Evento 1 fallo 15 aciertos 1 fallo 15 aciertos 1 fallo 15 aciertos 1 fallo 1 fallo 15 aciertos 9 aciertos 144 aciertos Posición 48
49‐63 64
65‐79 80
81‐95 15
16
17‐31 15
16‐31 Tiempo
2500ns 80ns*15=1200ns
2500ns 80ns*15=1200ns
2500ns 80ns*15=1200ns
2500ns 2500ns 80ns*15=1200ns
80ns*9=720ns
80ns*144=12,240ns
Comentario Bloque 3 de Mpp a Bloque 3 de Mca Bloque 4 de Mpp a Bloque 0 de Mca Bloque 5 de Mpp a Bloque 1 de Mca Bloque 0 de Mpp a Bloque 0 de Mca Bloque 1 de Mpp a Bloque 1 de Mca Ultimas 9 iteraciones del bucle Ultimas 9 iteraciones del bucle Número total de aciertos = 213 Número total de fallos = 5 213
218
97,7% 213 80
5 2500
218
136
. 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. 58 Julio 2014 Diseño avanzado de sistemas digitales 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 Microprocesador A0 ‐ A15 D0 ‐ D15 Decodificador
3 a 8 /X0 /X1 /X2 S2 /X3 S1 /X4 S0 /X5 /X6 /X7 ENABLE 16 16 /CS R//W TABLA DEL DESCODIFICADOR Enable S2 S1 S0 1 X X X 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 X0 X1 X2 X3 X4 X5 X6 X7
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
Posición de memoria A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 CS0 CS1 CS2 CS3 (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. Julio 2014 59 Sistemas digitales avanzados 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). 60 Julio 2014 Diseñ
ño avanzado de sistemass digitales 5. D
Diseño se
egmenta
ado En eeste capítu
ulo se aborda el disseño de nu
uevas arqu
uitecturas oorientadas a la consecución de altas veloccidades de cálculo y de altas presstaciones coomputacion
nales. Se trrata, pues, de diseñarr arquitectuuras óptimaas para el procesamieento de daatos a veloccidades eleevadas; ade
emás de eemplear nu
uevos meca
anismos y topologías para mejo
orar la eficaacia de la ru
uta de datoos. La descrripción de e
esta metodoología de diseño segm
mentado see ha basado en la obbra de F.M
Moreno, Miicroelectrónnica. Circuitos y Sistemas. Una p
perspectiva histórica.”
En este sentido
o el objetivo
o no es esttudiar la me
ejora de técnicas con las que obtener buen
nos circuitoss combinacionales o q ue permitan reducir la
a profundid ad de la lóggica o ecualizar las ru
utas de datos o bienn optimizar el rutado de determ
minadas se
eñales de hacer es estudiar en
n profundid
dad diferenttes arquiteccturas globaales. Lo quee se pretend
hardware que p
permitan ob
btener la mááxima veloccidad computacional; een algunos casos a partir de las características del alggoritmo que se desee procesar. Por ejemp
plo, el proceesado digitaal de señal, codificacióón de imáge
enes o cálculo aritméticco intensivo
o. Como se ha com
mentado, to
odo sistemaa digital resp
ponde a una
a estructuraa compuestta por dos ggrandes blo
oques, como
o el de la fi gura siguiente; un bloque de conntrol y un bloque con la ruta de datos. Figuraa 61. Arquitecctura genérica
a de un sistem
ma digital. El blloque de control c
estáá compuessto por una o varias máquinas de estado
o, sin embaargo la com
mplejidad haardware de l sistema esstá definida
a en el bloquue de camin
no de datos, en dondee se define el número de puertass equivalentte, su consuumo y veloccidad. En este sentido
o, este últim
mo bloque de camino
o de datos, su diseño arquitecturral se pued
de abordar de diferen
ntes formass: con un diseño d
de arquitecturra serie, co
on un diseñ
ño de arquittectura paralelo o con un diseño ssegmentado
o (pipeline)). Las A
Arquitecturaas Serie se caracterizaan por la uttilización de
e pocos reccursos hard
dware que han de ser utilizados ttantas vece s como núm
mero de da
atos han de ser processados. Por ello, su efficacia en cuanto a vvelocidad es muy lim
mitada ya que existe
e una Julio 22014 61 Sistemas ddigitales avanzzados depeendencia dirrecta con el volumen dde datos que se ha de procesar. E l Control de
e este tipo de arquiteccturas, sin sser excesivaamente com
mplejo, requ
uiere de unna sincronización entree la entrad
da de dato
os y el alm
macenamien
nto de resultados, caaracterísticaa que tamb
bién aparece en las Arq
quitecturas Pipeline. Las A
Arquitecturaas Paralelass o de Proceesamiento P
Paralelo fun
ndamentan su diseño yy, por tanto
o su contro
ol, en la obttención de un conjuntto de opera
aciones funncionalmentte sin depeendencia dee los datoss que perm
mita su pro
ocesamiento
o de formaa paralela en el tiempo. El costee hardware asociado a estas Arquitecturas ess muy elevaado y ha de estar justifficado, neccesariamentte, en térm
minos de eficacia e
com
mputacionaal. El Contrrol es sencillo mientrras que el tiempo dee procesam
miento está limitado por la Unidad Funccional más leenta. Finalmente, las Arquitectu
uras Segmeentadas o Pipeline P
suelen ser coonsideradass una terceera vía alteernativa a las dos esttudiadas an
nteriormente. Todo eello debido a su destaacada importancia en el diseño de d
sistemas digital es integrrados, micro
oprocesado
ores, sistem
mas empotrrados, etc; pues conju
ugan eficaccia (en cuanto a cálcu
ulo computaacional) y co
oste moderrado (hardw
ware emplea
ado). El co
oste de estee tipo de Arrquitecturass es el aum
mento de la complejidaad de su Control, sin eembargo la relación coste hardwaare y velocid
dad puede modularse,, por lo que
e para sistemas digitales de comp
plejidad meedia que permitan diferentes tipoos de algorittmos, es exxcelente, taal es el caso de los m
microproce
esadores y procesadorres de señaal. La referrencia biblio
ográfica tiene ya algunnos años de
escrita, desd
de 1981, poor P.M. Kogge en su ob
bra “The Architecture o
of Pipelinedd Computerr”. 5.1 IIntroducciión al pipe
eline La seegmentació
ón (Pipeline
e) surge ppor la nece
esidad de aumentar la velocidaad de proceesamiento, mantenie
endo siem
mpre un compromiiso entre velocidad
d de comp
putación y ccoste de la arquitecturra. La segme
entación exxplota el pa ralelismo co
on un costee mínimo de d hardwarre y la veloocidad de proceso, sin necesidaad de aumentar excesivamente la velocidaad de reloj.. Es decir, se busca optimizar o
ell procesam
miento temp
poral de los datos con aarquitecturras digitaless secuenciales y síncronnas. Partiendo de un
n sistema secuencial s
ssíncrono ge
enérico com
mo el que sse muestra en la figura siguiente,, se puede aafirmar quee la velocidaad de proce
esamiento eestá limitad
da por el rettardo del blloque llamaado Unidad Funcional.
Figuraa 62. Arquitecctura genérica
a de un sistem
ma secuenciall síncrono. 62 Julio
o 2014 Diseñ
ño avanzado de sistemass digitales La seegmentación tiene com
mo objetivoo dividir al U
Unidad Funccional en vaarias etapass (Ek). Cadaa etapa co
ontiene un
na unidad de proce
eso y un registro ppara almacenar temp
poralmente los datos. El procesoo de los daatos en la etapa e
correespondiente
e y su almaacenamiento
o en el regiistro se rea liza en un cciclo de relo
oj. La frecueencia de re
eloj es ahora limitada p
por la etapaa E más lennta. El coste
e hardware del caminoo de datos no es meno
or, pero es e relativam
mente pareecido a la arquitectura no‐segm
mentada co
on el aumeento de loss registros d
de almacennamiento. SSi embargo, la complejjidad del bloque de co
ontrol si con
nlleva un au
umento. Figuraa 63. Arquitecctura de un sistema secuenncial síncrono
o segmentado
o. Realiizada esta sencilla ide
ea, es neceesario el planteamien
p
nto del núm
mero de etapas posib
bles y las funciones de coste que lla segmentaación nos permitirá reaalizar a travvés de una m
metodologíía de diseño
o segmenta do. 5.1.11
Diseño segmentad
do Desd
de un punto
o de vista del d flujo dee datos, hay dos clasifficaciones dde arquiteccturas segm
mentadas, Lineal y no lineal. Pipelline Lineal. Formada p
por un conjuunto de etaapas conecttadas en caascada sin b
bucles de reealimentación. Tal es el caso de la figura ante
erior. Pipelline No Lineeal. Formad
da por un coonjunto de etapas en d
donde puedden existir b
bucles de reealimentación, tanto hacia adelannte como haacia atrás. V
Véase la figuura siguiente. Figuraa 64. Arquitecctura de un sistema secuenncial síncrono
o segmentado
o no lineal. Desd
de un punto
o de vista d
del tipo de ooperaciones que tiene
en que haceer los datoss, hay dos cclasificacion
nes, del tipo
o estático y del tipo din
námico. Pipelline Estático
o. Realiza una operacióón fija sobre
e el conjuntto de datos en la etapaa. Pipelline Dinámico. Realizaa diferentess operacion
nes sobre el e conjuntoo de datos en la etapa. Julio 22014 63 Sistemas ddigitales avanzzados Se pueden enco
ontrar pipe
eline lineal estático o dinámico así a como piipeline no lineal estáttico o dinám
mico. Como
o puede ustted darse cuenta, c
el control c
del pipeline ess muy impo
ortante, indicando en ccada etapa eel momento
o y la opera
ación que tieene que hacer. Para comenzar a explicarr el métoddo de diseño, el con
ncepto máss representtativo relaccionado con
n la segme
entación ess la denominada Tabla de Reserrva. La tabla de reserrva es la representació
ón temporaal de los datos a lo largo de las ddiferentes etapas (Ek) een las que sse procesan
n del pipeli ne. La tablaa es la reprresentación por un lad
do del tiempo (en ciclo
os de reloj) y del númeero de etap
pas en el ottro. La repreesentación de la tablaa de reservaa de un Pipe
eline Lineal Estático de
e 4 etapas e
es la siguiennte, donde d1 es el prrimer dato q
que entra, procesándoose en las d
diferentes E
Etapas, desdde E1 a la E
E4 en cicloss consecutivos de relojj. CICCLOS DE RELOJ T1 T2 T4 EE T
T A
A P
P A
A S E1 d1 E2 d1 E3 E4 R1 T3 d1
1 Figuraa 65. Tabla de
e reserva de u
un pipeline linneal estático d
de 4 etapas.
La ttabla de reserva r
es una herr amienta para p
diseña
ar el contrrol del sisstema segm
mentado. A partir de laa misma see obtiene el procesamiento óptim
mo de los datos, d
dand
do lugar a u
un diagramaa de tiempoo. Por ejemp
plo suponga
a un pipelinne lineal esttático de 4 etapas. El diagrama d
de tiempo ppara el flujo
o de datos es el mostrrado en la ffigura os es consttante desde
e la etapa E1, obteniiendo el primer anterior. El flujjo de dato
resulltado cuatro
o ciclos de reloj despu és de haber entrado a
al pipeline (RR1). Este tie
empo es deenominado Latencia In
nicial y es ell coste en tiempo que la arquitecctura no pro
oduce datos. Transcurrida esta latencia iniciaal el sistema entrega a
a la salida u n dato por ciclo, siempre y cuand
do se mante
enga constaante el flujo
o de datos a
a la entradaa. Si este flu
ujo de 64 Julio
o 2014 Diseño avanzado de sistemas digitales 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
4
3
1
3 ; → ∞;
4 3
4
1
; → ∞; 3
;
1 → ∞; 1/ Julio 2014 65 Sistemas digitales avanzados 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
E1 D1 D1 D2 D2
E2 D3 D3
D3 D3  ciclo estable (11 ciclos de reloj) 
D1 D1 D2
D2
D3 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. 66 Julio 2014 Diseño avanzado de sistemas digitales 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: 11
2
5,5 4
11
36% El porcentaje de utilización en el Ciclo Estable es el siguiente: 8
11
1
4
11
73% 2
36% 3
La aceleración, la eficiencia y el caudal de datos es el siguiente: 16
11
1,45 0,483 3
2
11
0,182 1
1
5,5 2
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
E2 D1 D1 D2
D3
D2
D3
D3
 ciclo estable (8 ciclos de reloj) 
D4 D4 D3
D4 D4 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. 1
8
8
4
8
100% 2
16
8
3
2
Julio 2014 50% 3
8
4
8
50% 2 0,66 0,25 67 Sistemas digitales avanzados 1
1
2
4 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, 68 Julio 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 69. Diagram
ma de estados y funciones ppara obtener la latencia a p
partir del Vecctor de colisio
ones. Como conclusió
ón al método, se parte de un estado inicial o vector inic ial de colisiones. Cadaa vez que transcurre un u ciclo de reloj sin in
ntroducir un
n nuevo daato, el Vector de Colissiones se deesplaza haccia la izquieerda introdu
uciendo un “0” por la derecha. En la Figurra anterior se apreciaa que con Latencia 3, 3 el Vector de Colisiiones resultante (estaado del pipeeline) será de; Vc = <00 0 1 1 1 0 0
0 0>. El “0” de “mayorr peso”, es decir, el deel extremo izquierdo de
el vector in dica que se
e puede intrroducir un nnuevo dato en el sistema. Hasta ese momento no habbía sido possible pues el e valor de dicho elem
mento habíaa sido “1”. Como consecueencia de laa introducc ión de un nuevo dato, el Vectoor de Colissiones resulltante se obtiene o
reaalizando la operación lógica “OR
R” entre diicho vectorr y el original, resultando (Ver Fiigura) que V
Vc = <1, 1, 1, 1, 1, 1, 1
1, 1>. Para el tercer d
dato a s
se pod
drá introdu cir en el sistema con Latencia 88, pues el vector v
proceesar, este sólo resulltante está formado exclusivame nte con “1”” y el prime
er “0” (quee indicará que se pued
de introducir un nuevo
o dato). En la posición de “mayor peso” de vvector aparecerá tras 88 ciclos de reloj. Es sen
ncillo deduccir que, en este último
o caso, la opperación “O
OR” se realizzará entre eel Vector de Colisione s original y un vector compuestoo exclusivam
mente por ““0”; obtenieendo de nuevo el Vecttor de Colissiones origin
nal. En resuumen, esta parte del d
diagrama está indicando que se pueden introducir da
atos sin collisiones con
n una secuencia de lattencias 3T, 8
8T, 3T, 8T,…
… o CICLO (3
3, 8). Siem
mpre existe una opción adicional qque consiste en espera
ar 8 ciclos dde reloj antes de intro
oducir un nu
uevo dato, CICLO (8,8 ), Este ciclo
o resulta ba
astante inefficiente com
mo se podrrá deducir sin mayor dificultad. Julio 22014 69 Sistemas digitales avanzados 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} 70 Julio 2014 Diseñ
ño avanzado de sistemass digitales Figuraa 70. Tabla de
e reserva y Dia
agrama de esstados que no
o cumple el M
MAL. Apliccando el critterio de Koggge, el MALL es igual a 2, sin emba
argo el diagrrama de esttados nos indica una laatencia media de 3, maayor que el MAL. La esstrategia co
onsiste en in
ntroducir unn estado de
e espera adicional en laa etapa E2, “EA” en laa figura sigguiente, en
n la tabla dde reserva,, obteniend
do un nuevvo diagram
ma de estad
dos. Que peermite alcan
nzar un el M
MAL igual a 2. T0 T1 T2 D E0 D
E1 D D D E1 D
E2 D
D E2 D
EA
E0 D T0 T1 T2 T3
D
CLP(E0) = {0
C
0,2} D
CLP(E1) = {0
C
0,2} D
CLP(E2) = {0
C
0} CLP(EA) = {0
C
0} Tabla de rreserva origginal Tablaa de reserva modificad
da con un ciiclo d
CLP == Uk CLP (i) = {0,2} y e
el Vc= {1,0,11,0} T0 T1 T2 T 3 T4 T5 T6 T7 T8 T9
E0 D1 D D2 D1 D2 D3 D4
4 D3 D4 D5
D
E1 D1 D2 D1 D2 D3
3 D4 D3 D4
D D5
E2 D1 D2
EA D1 D2
D3
3 D4
ciclo esttable (4)
D3 D4
D5
Tabla de reservaa con 5 datos en el pip
peline
Julio 22014 71 Sistemas ddigitales avanzzados ma de estados con un ciclo d
de espera adiicional. Figuraa 71. Nueva TTabla de reserrva y Diagram
5.2 Reduced
d instruction set com
mputer: R
RISC 5.2.11
Introdu
ucción a RISC A lo largo de estos 40 añoss, concretam
mente desd
de fines de los años 700s y principios de los 80’s, es frecuente f
encontrar arquitecturas diseña
adas con fines doce
entes, das ellas se
e han simp lificado, alggunas indusstriales, de bajo consumo o gennéricas. Tod
tanto
o que están
n muy lejos de los diseñños actuales y originale
es. Concrettamente en 1975 los aarquitectos de IBM cuestionaron la máquina 801, dado que la coomplejidad para conseguir una b
buena relacción coste/rrendimiento
o no era bu
uena. Pero nno ha sido hasta mediados de lo
os años 80 cuando Heennessy y Patterson P
(e
en UC Berkkeley y Stanford respeectivamente) decidierron iniciar el movimiento RISC (Reduced Instruction
n set Computer) con el modelo ttradicional CCISC (Comp
plex Instructtion Set Com
mputer). mplica enttender el ciclo y laa ejecución de Entender las arquitecturras RISC im
instrucciones paara mejorar la relaciónn coste/ren
ndimiento, en lugar dee incrementar el o que su obbjetivo es offrecer número de instrrucciones siiguiendo la idea tradicional. Por lo
instrucciones simples s
y sencillas, reduciendo
o el área y optimizzando consumo energético. En eeste apartaado se intrroduce la idea y la alternativa RISC. El ddocumento
o que comp
plementa eeste apartad
do y que deentro del co
onjunto de prácticas dde laboratorio se aborda el diseñ
ño, se encu
uentra en lla página web w de la asignatura a
con el nom
mbre: “Arquitectura del micropro
ocesador ICCAI‐RiSC‐16”” de Jose D
Daniel Muñooz Frías. Para un estud
dio más deetallado de
e análisis dde la ejecu
ución de in
nstruccionees y prograamas, consultar los texxtos especializados y ccitados en la bibliograffía, preferenntemente d
de los autores Henessyy y Patterso
on. Duraante mucho
os años la memoria fuue un recu
urso costoso
o. Por lo qque se penssó en mejo
orar este aspecto a travvés de una mejora de la arquitecttura. La miccroprogramación (la deecodificació
ón de instru
ucciones a t ravés de memoria), también se veeía afectadaa. Por lo qu
ue tener un
n programaa con menoos instrucciiones se co
onsiguen doos cosas: menos m
espacio de mem
moria y me
enos instruccciones que
e alimentarr desde meemoria, luego se e ejecución. aumeentaba la veelocidad de
72 Julio
o 2014 Diseño avanzado de sistemas digitales 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? (Reduced 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 Ejemplos:  DEC Alpha  MIPS Ventajas:  Mejor compilación  Fácil de implantar pipeline (segmentación) Julio 2014 ¿Qué es CISC? (Complex Instruction‐Set Computer) Incluye (por lo general): • instrucciones de formato variable instrucciones memoria‐registro • modos complejos de direccionamiento • instrucciones complejas CALL, EDIt..etc. Ejemplos:  DEC VAX  IBM 370  x86 Ventajas:  Mejor densidad de código. 73 Sistemas digitales avanzados 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. 74 Julio 2014 Diseño avanzado de sistemas digitales 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 Julio 2014 75 Sistemas digitales avanzados 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. 76 Julio 2014 Diseño avanzado de sistemas digitales 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. Julio 2014 77 Sistemas digitales avanzados 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). 78 Julio 2014 Diseño avanzado de sistemas digitales 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 Julio 2014 79 Sistemas digitales avanzados 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) 80 Julio 2014 Diseño avanzado de sistemas digitales 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
port (
clk, rst
:
init, end_tx :
data_tx
:
scl, sda
:
end i2c_controller;
is
IN STD_LOGIC;
IN STD_LOGIC;
IN STD_LOGIC_VECTOR (8 downto 0);
OUT STD_LOGIC);
architecture rtl of i2c_controller is
component counter
port (
clk
:
rst
:
end_count :
ena_count :
);
end component;
in std_logic;
in std_logic;
out std_logic;
in std_logic
type state_type is
signal state
:
signal end_count :
signal scl_int
:
signal sda_int
:
signal tx_reg
:
(s0, s1, s2);
state_type;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC_VECTOR (8 downto 0);
begin
inst1 : counter
port map
( clk
=>
rst
=>
end_count =>
ena_count =>
);
clk,
rst,
end_count,
scl_int
process(clk, rst)
begin
Julio 2014 81 Sistemas digitales avanzados if(rst = '0') then
state <= s0;
elsif(clk'event AND
case state IS
when s0 =>
scl_int
if init
state
end if;
when s1 =>
scl_int
state
when s2
scl_int
if end_tx
state
end if;
when others
scl_int
state
END CASE;
END IF;
END PROCESS;
clk = '1') then
-- Idle
<= '1';
= '1' then
<= s1;
-- Start
<= '1';
<= s2;
=>
-- Tx/RX
<= not scl_int; -- SCL = clock
='1' then
<= s0;
=>
<= '1';
<= s0;
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;
82 Julio 2014 Diseño avanzado de sistemas digitales 6.3 Ejercicios 1.‐ Diseñe el controlador SPI para el proceso de escritura en una memoria EEPROM. Julio 2014 83 Sistemas digitales avanzados 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. 84 Julio 2014 
Descargar