Está en la página 1de 57

Sistemas Secuenciales

Síncronos

Capítulo 3:
Sistemas Secuenciales
Síncronos
• Introducción al diseño de autómatas.

• Estados equivalentes.

• Simplificación de estados equivalentes.

En autómatas completamente especificados.

En autómatas incompletamente especificados.

• Codificación de estados.

• Temporización en circuitos secuenciales.

• Skew de reloj.

• Pipeline

Referencias:
•Jan M. Rabaey, “Digital Integrated Circuits:A Design
Perspective” Prentice Hall.

•Victor P. Nelson y otros. “Digital Logic Circuits


Analysis&Design” Prentice Hall

•Peter M. Kogge “The Architecture of Pipelined


Computers” McGraw Hill

D.I.E. DCSE.4-1
Sistemas Secuenciales
Síncronos

Introducción a los Autómatas Finitos

Concepto de Estado

x 1 (t) q 1(t) z 1(t)

(...) (...) (...)


q (t)
x n(t) m z p(t)

X(t)={x (t)}
i Q(t)={q (t)}
i Z(t)={z (t)}
i

Z(t) = g[X(t), X(t-1), X(t-2), ..., X(t-∞)]

Estado, Q(t): Representa toda la información asociada


al circuito desde que se puso en funcionamiento
(memoria). Problema: Q(t) puede llegar a tomar infinitos
valores.
Z(t) = g [X(t), Q(t) ]
Q(t+1) = f [X(t), Q(t)]

Estructura General

x1 z1
X(t) Z(t)
xn CIRCUITO zp
COMBINACIONAL

Q(t) Q(t+1)

MEMORIA
(flip-flops)

CLK
D.I.E. DCSE.4-2
Sistemas Secuenciales
Síncronos

Autómatas de Mealy y de Moore

• Autómata Finito = (X, Q, Z, f, g)


X, Q, Z = Entradas, Estados, Salidas
f = Función de transición, Q(t+1) = f [X(t),Q(t)]
g = Función de salida

Autómata de Mealy: Z(t) = g [X(t),Q(t)]

X(t)
g Z(t)

c
f

Q(t) Q(t+1)

MEMORIA
(flip-flops)
Clk

Autómata de Moore: Z(t) = g [Q(t)]

g Z(t)

X(t) c
f

Q(t) Q(t+1)

MEMORIA
(flip-flops)
Clk

D.I.E. DCSE.4-3
Sistemas Secuenciales
Síncronos

Temporización de Autómatas

Fases del Autómata en un Ciclo de Reloj


• Hay una señal de reloj que establece los instantes t

Ø1 Ø2 Ø3

Ø1: Los biestables leen sus entradas


Ø2: Transición de estado en los biestables
Ø3: Transición de salidas

Temporización en Autómatas de Mealy y Moore


• Mealy: Una transición en la entrada puede provocar
varias transiciones en la salida
• Moore:La transición en la salida ocurre un ciclo
después que la transición en la entrada
1 2 3 1 2 3 1 2 3

Clk
xb
xa
qj
qi

zn
MEALY zm
zs
MOORE zr

t t+1 t+2
D.I.E. DCSE.4-4
Sistemas Secuenciales
Síncronos

Representación de Autómatas

Tabla de Transiciones y Salidas (Mealy)


Estado actual Entrada actual
Q x1 x2 ... xn
q1 f(q1,x1)/g(q1,x1) f(q1,x2)/g(q1,x2) ... f(q1,xn)/g(q1,xn)
q2 f(q2,x1)/g(q2,x1) f(q2,x2)/g(q2,x2) ... f(q2,xn)/g(q2,xn)
... ... ... ... ...
qm f(qm,x1)/g(qm,x1) f(qm,x2)/g(qm,x2) ... f(qm,xn)/g(qm,xn)

Estado siguiente / Salida actual

Tabla de Transiciones y Salidas (Moore)


Estado actual Entrada actual
Q x1 x2 ... xn z
q1 f(q1,x1) f(q1,x2) ... f(q1,xn) g(q1,x1)
q2 f(q2,x1) f(q2,x2) ... f(q2,xn) g(q2,x1)
... ... ... ... ... ...
qm f(qm,x1) f(qm,x2) ... f(qm,xn) g(qm,x1)

Estado siguiente Salida actual

Diagrama de Estados

q x2/z j x4
q /z
A D p

Mealy x1/z i x5 Moore


x3/z k qB x6 q /z
E m

q q /z
C F n

D.I.E. DCSE.4-5
Sistemas Secuenciales
Síncronos

Diseño de Autómatas (I)

Ejemplo: Detector de tres ´1´s consecutivos

A) Autómata de Moore con flip-flops tipo D:


1) Diagrama de Estados:
a) Definición de los estados
qi = i '1's consecutivos en ciclos anteriores
q0 es el estado inicial
b) Diagrama: 1
0 q 0/0 q 1/0
0
0 1
0

1 q 3/1 q 2/0
1

2) Número de flip-flops necesarios, m = 2. Se debe


cumplir que 2m ≥ número de estados
3) Asignación de estados a valores en flip-flops (y2,y1):
q0=00 q1=01 q2=10 q3=11
• Normas de asignación:
a) Códigos con más 0's para los estados más
referenciados
b) Minimizar el número de flip-flops que cambian en
las transiciones de estado
• Estrategias con los estados no utilizados:
a) Riesgo mínimo: Evitar transiciones accidentales
a estos estados no utilizados
b) Coste mínimo: Se consideran indeterminados en
la Tabla de Excitaciones

D.I.E. DCSE.4-6
Sistemas Secuenciales
Síncronos

Diseño de Autómatas (II)

4) Tabla de transiciones/excitaciones del flip-flop:


y(t) y(t+1) D(t) J(t) K(t) T(t)
0 0 0 0 X 0
0 1 1 1 X 1
1 0 0 X 1 1
1 1 1 X 0 0

5) Tabla de Excitaciones, Transiciones y Salidas:

X(t) Q(t) Q(t+1) D(t) Z(t)


e y2 y1 y2 y1 D2 D1 s
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
0 1 1 0 0 0 0 1
1 0 0 0 1 0 1 0
1 0 1 1 0 1 0 0
1 1 0 1 1 1 1 0
1 1 1 1 1 1 1 1

6) Simplificación (Karnaugh):
D2 = e (y1+y2) D1 = e (y’1+y2) s = y1 y2
7) Circuito:

D2 y2

e > y2
s
D1 y1

Clk > y1

D.I.E. DCSE.4-7
Sistemas Secuenciales
Síncronos

Diseño de Autómatas (III)


B) Autómata de Mealy con flip-flops tipo JK:
1) Diagrama de Estados:
0/0 q0
qi = i ciclos siendo '1'
1/0
0/0
0/0

1/1 q2 q1
1/0
2) Número de flip-flops necesarios, m = 2
3) Asignación de estados (y2,y1): q0=00, q1=01, q2=11
4) Tabla del flip-flop JK (ver ejemplo anterior)
5) Tabla de Excitaciones, Transiciones y Salidas:

X(t) Q(t) Q(t+1) JK(t) Z(t)


e y2 y1 y2 y1 J2 K2 J1 K1 s
0 0 0 0 0 0 X 0 X 0
0 0 1 0 0 0 X X 1 0
0 1 0 X X X X X X X
0 1 1 0 0 X 1 X 1 0
1 0 0 0 1 0 X 1 X 0
1 0 1 1 1 1 X X 0 0
1 1 0 X X X X X X X
1 1 1 1 1 X 0 X 0 1

6) Simplificación: J1=e, K1=K2=e’, J2=ey1, s=ey2


7) Circuito:

e J1 y1 J2 y2 s
K1 K2
> y1 > y2

Clk
D.I.E. DCSE.4-8
Sistemas Secuenciales
Síncronos
• Estados Equivalentes: Representan la misma historia
del circuito.

• Para cada una de las entradas posibles producen la


misma salida y conducen a estados siguientes iguales
o equivalentes.

Q2 Q3
a/
n

a/n b/m
m
b/

c/l
Q0 Q1
c/l

Q0 y Q1 son estados equivalentes

Q2 Q3

a/n
b/m

Q c/l

D.I.E. DCSE.4-9
Sistemas Secuenciales
Síncronos

Varios estados equivalentes se pueden agrupar en uno


solo.

La simplificación de estados equivalentes es


importante por:

Coste: El número de elementos de memoria está


directamente relacionado con el número de estados.

Complejidad: Cuanto mayor el número de estados más


complejo el diseño y más compleja la implementación.

Fallo de las herramientas de análisis: Muchas de las


herramientas de análisis asumen que no hay estados
equivalentes.

D.I.E. DCSE.4-10
Sistemas Secuenciales
Síncronos

Simplificación de estados equivalentes en autómatas


completamente especificados:

Método de particiones:

1. Se agrupa en la misma partición todos los estados


que produzcan la misma salida para cada una de las
posibles entradas.

2. Para cada partición se comprueba que todos sus


estados conducen, para cada entrada, a estados
siguientes que se encuentran en la misma partición.
Caso de que no sea así se subdividen las particiones.

3. Si se ha subdividido alguna partición, volver a repetir


el punto 2 con las nuevas particiones. Si no se ha sub-
dividido ninguna en el punto anterior, todos los estados
se encuentren en una misma partición son equivalentes
y se pueden agrupar en uno solo.

D.I.E. DCSE.4-11
Sistemas Secuenciales
Síncronos

x
0 1
A C/1 B/0
B C/1 E/0
C B/1 E/0
D D/0 B/1
E E/0 A/1

Partición P0 (ABCDE)
Salida para x=0 11 10 0
Salida para x=1 00 01 1

Partición P1 (ABC) (DE)


Estado siguiente para x=0 CCB DE
Estado siguiente para x=1 BEE BA

Partición P2 (A) (BC) (DE)


Estado siguiente para x=0 C CB DE
Estado siguiente para x=1 B EE BA

Partición P3 (A) (BC) (D) (E)


Estado siguiente para x=0 C CB D E
Estado siguiente para x=1 B EE B A

Partición P4=P3 (A) (BC) (D) (E)

D.I.E. DCSE.4-12
Sistemas Secuenciales
Síncronos

Tabla de implicantes:

Método muy eficaz para autómatas incompletamente


especificados, también se puede utilizar en completa-
mente especificados.

1. Se hace una tabla: En vertical todos los estados menos


el primero. Horizontal todos menos el último. Cada
casilla lleva asociados dos estados, y en ella se pone el
resultado del test de equivalencia.

2. Como solo pueden ser equivalentes estados con la


misma salida para cada una de las entradas, se descartan
con “X” los que no cumplen esta condición.

3. En las casillas libres de “X” se pone las condiciones


que deben cumplir los “estados siguientes”, para que
los estados asociados a la casilla sean a su vez equiva-
lentes.

4. Se repasan las condiciones de equivalencia impuestas,


y se tachan las imposibles.

5. Si se ha tachado alguna casilla en 4 volver a repetir


paso 4. “Else” todas las casillas no tachadas representan
pares de estados equivalentes.

D.I.E. DCSE.4-13
Sistemas Secuenciales
Síncronos

B
x
0 1 C
A E/0 D/0
E-B
B A/1 F/0 D D-A
C C/0 A/1
A-D
D B/0 A/0 E F-C
E D/1 C/0
F C/0 D/1 A-D
F
G H/1 G/1
H C/1 B/1 G
H-C
H G-B

A B C D E F G
B

C
Luego los estados:
E-B A-D
D D-A
B-E
A-D C-F
E F-C Son equivalentes.
A-D
F

G
H-C
H G-B

A B C D E F G

D.I.E. DCSE.4-14
Sistemas Secuenciales
Síncronos

Simplificación de estados en autómatas incompletamente


especificados:

X
0 1
A B/- E/0
B B/1 E/-
C F/0 C/0
D B/1 A/1
E D/0 C/-
F D/- C/1

Supongamos que fijamos las indeterminaciones de forma


que: “A” equivalente a “B”, “E” equivalente a “F”:

X
0 1
(A,B) = A’ A’ A’/1 D’/0
C = B’ B’ D’/0 B’/0
D = C’ C’ A’/1 A’/1
(E,F) = D’ D’ C’/0 B’/1

Simplificación inmediata, fácil de ver pero no óptima.

D.I.E. DCSE.4-15
Sistemas Secuenciales
Síncronos

Si fijamos las indeterminaciones del siguiente modo:

X
0 1 Nos queda que los estados
A B/0 E/0 (A,C,E) y (B,D,F) son
B B/1 E/1 equivalentes:
C F/0 C/0 X
D B/1 A/1 0 1
E D/0 C/0 A’ B’/0 A’/0
F D/1 C/1 B’ B’/1 A’/1

Estados compatibles:

- Dos estados son compatibles cuando para cada


posible entrada :
•Las salidas que produce son iguales, si están
especificadas.

• Los estados siguientes que produce son


•iguales, si están especificados.

- Un conjunto de estados compatibles se llama


una clase compatible.

- Un máximo compatible es una clase compatible


en la que la incorporación de cualquier estado
(no de la clase) lo hace que deje de ser clase compatible.

Estados incompatibles: los que no cumplen las dos


condiciones de compatibilidad anteriores.

D.I.E. DCSE.4-16
Sistemas Secuenciales
Síncronos

¡¡OJO!! En autómatas completamente especificados,


la equivalencia es una propiedad transitiva:
Si A equivalente B y B equivalente C, podemos asegurar
que A equivalente C, (A,B,C) son equivalentes.

En autómatas incompletamente especificados para que


(A,B,C) sean equivalentes se tiene que cumplir:
- A equivalente B
- A equivalente C
- B equivalente C.

Para simplificar nuestra máquina debemos seleccionar


un conjunto de clases compatibles que cumpla:

•Completo: La unión de todas las clases debe contener


todos los estados de la máquina original.

•Consistente: El conjunto de clases compatibles elegido


debe ser cerrado: Para cada entrada, los siguientes
estados asociados a cada clase deben estar contenidos en
una clase de las elegidas.

•Mínimos: El menor número de clases que cumpla los dos


criterios anteriores, es el que se debe seleccionar.

D.I.E. DCSE.4-17
Sistemas Secuenciales
Síncronos

El número de estados K de nuestra máquina simplificada


será: U>K>L
- U: Mínimo valor entre número estados originales
y número agrupaciones máximas compatibles obtenidas.

- L: Número de estados de la mayor agrupación máxima


incompatible.

Procedimiento a seguir para la simplificación de


estados equivalentes:

1. Buscar las máximas compatibles.


2. Buscar las máximas incompatibles.
3. Determinar los valores U y L.
4. Buscar por prueba y error el conjunto de clases que
cumplan condiciones de: Mínimo, Consistente y Com-
pleto.
5. Producir la tabla de estados mínimos, que en general
puede tener salidas y estados siguientes sin especificar.

D.I.E. DCSE.4-18
Sistemas Secuenciales
Síncronos

Ejemplo: Simplifiquemos el siguiente autómata:

X B BD
0 1 C BD
A B/1 D/0
B -/- B/0 D AD AB
C E/0 D/- E CD
D B/1 A/0 DE
F CE
E -/- C/1
F -/0 E/1 A B C D E

1. Buscar los máximos compatibles: (ABD), (BC), (E), (F)

(BD) (BC) (AD) (AB) (E) (F)

(BD), (AD), (AB) -> (ABD)

2. Buscar los máximos incompatibles:

(CDEF) (ACEF) (BEF)

3. Determinar valores U y L

U: Nº estados iniciales 6, Nº máximos compatibles 4


U=4

L: Nº estados del mayor máximo incompatible= 4

Luego K=4

D.I.E. DCSE.4-19
Sistemas Secuenciales
Síncronos

4. Los cuatro máximos compatibles formarán los


estados del autómata simplificado:

X
0 1
(ABD) B ABD Cumplen propiedades
(BC) E BD Completo y Consistente.
(E) - C
(F) - E X
0 1
(ABD) -> A’ A’ A’,B’/1 A’/0
(BC) -> B’ B’ C’/0 A’/0
(E) -> C’ C’ -/- B’/1
(F) -> D’ D’ -/0 C’/1

El autómata resultante tiene todavía grados de libertad


que se pueden utilizar para simplificar la realización
hardware del circuito.

D.I.E. DCSE.4-20
Sistemas Secuenciales
Síncronos

Otro ejemplo:
X B AC
0 1
A A/- -/- C AD
B C/1 B/0 D AD BD CD
C D/0 -/1 AD BC
E AE
D -/- B/-
E A/0 C/1 A B C D

Máximos compatibles: (ABD) (ACD) (ACE)

Máximos incompatibles: (BC) (BE) (DE)

Cálculo de U: 5 Estados iniciales, 3 Máximos compa-


tibles-> U=3

Cálculo de L: Nº estados del mayor máximo incompatible


2-> L=2.

Nº estados autómata simplificado 2<K<3

Probemos a obtener un conjunto de 2 máximos


compatibles que cumpla condiciones de completo y
consistente:

El conjunto formado ppor A’= (ABD) y B’= (ACE) lo


cumple.

D.I.E. DCSE.4-21
Sistemas Secuenciales
Síncronos

X
0 1 X
(ABD) AC B 0 1
(ACD) AD B A’ B’/1 A’/0
(ACE) AD C B’ A’/0 B’/1

Consideraciones:
•La minimización de estados conduce a un circuito con
un número mínimo de elementos de memoria
(biestables), que no siempre se traduce en un circuito
de mínima complejidad. El circuito está formado por
los biestables más los bloques combinacionales.

Hay veces que aumentando el número de biestables


se consigue se consigue reducir la lógica combi-
nacional. Ejemplo en un contador en anillo se utilizan
N biestables para tener 2N estados, pero la lógica
combinacional se reduce hasta hacerla desaparecer.

D.I.E. DCSE.4-22
Sistemas Secuenciales
Síncronos

Óptima codificación de estados:

Una vez definido el número de estados de nuestro


circuito debemos codificarlos inteligentemente para
conseguir que el circuito combinacional asociado
sea los más sencillo posible.

Sea el autómata:
X
0 1
A B/0 E/0
B C/0 G/0
C D/0 F/0
D A/1 A/0
E G/0 C/0
F A/0 A/1
G F/0 D/0

Si codificamos los estados con el siguiente criterio:

Y1 Y2 Y3
A 0 0 0 J1=Y2’X+Y3X
B 0 0 1 K1=Y3’+X
C 0 1 1 J2=Y3
D 0 1 0 K2=Y3’
E 1 0 1 J3=Y2’
F 1 1 0 K3=Y2
G 1 1 1 Z=Y3’Y2Y1’X’+Y3’Y1X

D.I.E. DCSE.4-23
Sistemas Secuenciales
Síncronos

Consideremos ahora la siguiente asignación:

Y1 Y2 Y3
A 0 0 0 J1=Y3’X+Y2’X
B 0 0 1 K1=Y3+X
C 0 1 0 J2=Y3’Y1 +Y1’Y3
D 0 1 1 K2=Y3 +Y1X’ +Y1’X
E 1 0 0 J3=Y2+Y1’X’
F 1 0 1 K3=1
G 1 1 0 Z=Y3Y1X+Y3Y2X’

1ª asignación: 3-OR, 4-AND, 1-NOT (8 puertas)

2ª asignación: 6-OR, 9-AND, 1-NOT (16 puertas)

En un autómata de N biestables y M estados:

2N > M > 2N-1


El número de asignaciones posibles Na será:

Na = 2N ! / (2N - M) !

D.I.E. DCSE.4-24
Sistemas Secuenciales
Síncronos

No todas estas asignaciones son independientes


con relación al resultado.

Ejemplo:
X
Posibles asignaciones:
0 1
A A/0 B/0 1 2 3
B A/0 C/0 Y1Y2 Y1Y2 Y1Y2
C C/0 D/0 A 0 0 1 0 0 0
D C/1 A/0 B 0 1 1 1 1 0
C 1 1 0 1 1 1
D 1 0 0 0 0 1

Con asignación 1:

D1 = Y1X’+Y2X
D2 = Y1X’+Y1’X

Con asignación 2:

D1 = Y1X’+Y2’X
D2 = Y1’X’+Y1X

Con asignación 3:

D1 = Y2X’+Y2’X
D2 = Y2X’+Y1X

D.I.E. DCSE.4-25
Sistemas Secuenciales
Síncronos

Para un autómata de dos biestables las únicas 3


posibles asignaciones independientes son:

1 2 3
Y1Y2 Y1Y2 Y1Y2
A 0 0 0 0 0 0
B 0 1 1 1 1 0
C 1 1 0 1 0 1
D 1 0 1 0 1 1

Apliquemos estas tres asignaciones al siguiente


autómata:

X
0 1
A C/0 D/0
B C/0 A/0
C B/0 D/0
D A/1 B/1

D.I.E. DCSE.4-26
Sistemas Secuenciales
Síncronos

Con asignación 1:

D2 = Y1’Y2’+Y2’X’+XY1Y2
D1 = Y2’X’+Y1X’+XY1’Y2
Z = Y1’Y2
Con asignación 2:

D2 = Y1’X+Y2’Y1
D1 = Y2’X’+Y1X’+XY1’Y2
Z = Y1’Y2

Con asignación 3:

D2 = Y1Y2’+Y2’X+XY1
D1 = Y2’X+Y1’X’
Z = Y1Y2

Si en cada solución contamos el número total


de entradas a las puertas:

Asignación Nº entradas
1 20
2 18
3 15

D.I.E. DCSE.4-27
Sistemas Secuenciales
Síncronos

Reglas de asignación de estados:

- Objetivo: Conseguir máximas agrupaciones de 1’s


en las tablas de simplificación del estado siguiente.
Hacer que los 1’s se encuentren en una
misma columna o fila.

- Consideremos que cada fila representa el siguiente


estado para cada una de las entradas asociadas a un
determinado “estado presente”.

- Consideremos que cada columna representa el


siguiente estado para cada uno de los distintos
“estados presentes” de una determinada entrada.

Reglas:

1. Estados que tengan el mismo “estado siguiente”


para una determinada entrada se les asignarán
códigos adyacentes.

2. “Estados siguientes” asociados a entradas


adyacentes, para un estado presente determinado,
se les asignará códigos adyacentes.

Ojo: no todas las condiciones de adyacencia se


podrán cumplir siempre, habrá que intentar
cumplir las máximas posibles.

D.I.E. DCSE.4-28
Sistemas Secuenciales
Síncronos

De la inspección de nuestro autómata, de derivan


las siguiente condiciones de adyacencia:

- Regla 1: “A” y “B” deben ser adyacentes,


y también A-C

- Regla 2: A-B, A-C, B-D Y C-D

Algunas condiciones se repiten, se debe intentar


cumplir:
A-B, A-C, B-D Y C-D

Veamos cómo hemos codificado los estados


en cada una de las tres asignaciones:

Y2 Y2 Y2
Y1 0 1 Y1 0 1 Y1 0 1
0 A D 0 A D 0 A B
1 B C 1 C B 1 C D
Asignación: 1 2 3

En las asignaciones 1 y 2 cumplimos dos condiciones


de adyacencia, en la 3 cumplimos las 4.

D.I.E. DCSE.4-29
Sistemas Secuenciales
Síncronos

Temporización en circuitos secuenciales:

In Q Com Com Out


Re L Re
bina bina
gis gis
cio cio
tro tro
nal nal

Clk

Clk

tff tc tsu

L
T

tff: Tiempo retardo biestable


tc: Tiempo retardo combinacional
tsu: T set-up
th: Thold.
T > tff max.+ tcmax.+ tsu
th < tff min.+ tcmin.

D.I.E. DCSE.4-30
Sistemas Secuenciales
Síncronos

El problema del skew

• Los circuitos secuenciales precisan de una


correcta ordenación de los eventos.

• En el diseño síncrono la ordenación se logra


por medio de un reloj global.

• Dicho reloj se distribuye por todo el sistema y


se conecta a todos los registros y flip-flops.

• Todo ello provoca una elevada resistencia de


la línea de reloj y una gran carga capacitiva
sobre el generador de reloj.

• La línea de reloj actúa como una red RC


distribuida donde el retardo es función de la
longitud.

• Aparece así el problema del skew:

Los flancos activos del reloj no alcanzan a


todos los elementos de memoria en el
mismo instante.

D.I.E. DCSE.4-31
Sistemas Secuenciales
Síncronos

El problema del skew

Ejemplo: datapath síncrono segmentado

tc ts tr th Salida
Entrada
de datos ti de datos

C1 R1 C2 R2

Reloj

tϕ’ tϕ’’

• C1 y C2: circuitos combinacionales


• R1 y R2: unidades de memoria (registros)
• tc: tiempo de retardo de los combinacionales
• ti: tiempo de retardo de las interconexiones
• ts: tiempo de set-up de los registros
• tr: tiempo de retardo de los registros
• th: tiempo de hold de los registros

Skew: δ = tϕ’’ − tϕ’ ≠ 0

D.I.E. DCSE.4-32
Sistemas Secuenciales
Síncronos

Restricciones temporales

tϕ’ tϕ’’
T

δ Reloj en R1
3
2 5

ts th ts th Reloj en R2

tr+ti+tc+ti Datos en la entrada de R2

• En ➀ (instante tϕ’) el flanco activo del reloj


alcanza al registro R1, con lo cual se captura
el dato presente a su entrada y se propaga
hacia R2.
• En ➃ el dato alcanza el registro R2 después
de un tiempo de retardo tr+ti+tc+ti.
• En ➁ y ➄ el registro R2 captura el dato
presente en su entrada.

D.I.E. DCSE.4-33
Sistemas Secuenciales
Síncronos

Restricciones temporales

• El evento ➃ debe ser posterior al ➁, ya que


en caso contrario se produce una captura
doble y se pierde un dato†:
δ < tr MIN + 2ti + tc MIN + ts MIN (1)

• El evento ➃ debe ser anterior al ➄, ya que en


caso contrario se produce una captura nula y
se duplica un dato:
δ + T > tr MAX + 2ti + tc MAX + ts MAX (2)

• El retardo absoluto del reloj es irrelevante,


lo que importa es el retardo relativo entre
dos registros consecutivos.

† Si bien la condición (1) garantiza que no se producirá


captura doble, el funcionamiento sólo quedará
asegurado si el evento ➃ es posterior al ➂:
δ < tr MIN + 2ti + tc MIN − th MAX (1’)

D.I.E. DCSE.4-34
Sistemas Secuenciales
Síncronos

Posibles escenarios

1.-Reloj rutado en el mismo sentido que los datos:


Skew: δ = tϕ’’ − tϕ’ > 0

C1 R1 C2 R2

Reloj
tϕ’ tϕ’’

• Es necesario diseñar obligando a que se


cumpla (1) (o mejor (1’)), ya que de lo contrario
se producirá un mal funcionamiento con
independencia de la frecuencia de reloj.

• Se puede aumentar la frecuencia de reloj (y por


tanto incrementar el throughput) reduciendo
T en la cantidad δ, como se deduce de la
expresión (2) (aunque siempre dentro del límite
impuesto por (1’)).

D.I.E. DCSE.4-35
Sistemas Secuenciales
Síncronos

Posibles escenarios
2.-Reloj rutado en sentido contrario que los datos:
Skew: δ = tϕ’’ − tϕ’ < 0

C1 R1 C2 R2

Reloj
tϕ’ tϕ’’

• La expresión (1’) se verifica sin condiciones†,


lo cual garantiza siempre un correcto
funcionamiento.

• Para que se cumpla (2) es necesario


aumentar T, reduciendo la frecuencia de reloj
(y por tanto recortando el throughput del
circuito).

† En la temporización básica de un circuito secuencial,


con skew nulo (δ = 0), debe cumplirse la expresión (1’).
Así pues, tanto más cuando δ < 0.

D.I.E. DCSE.4-36
Sistemas Secuenciales
Síncronos

Soluciones para el skew

1.-Según se ha visto, una posible solución es


rutar reloj y datos en sentido contrario.

Sin embargo, este procedimiento no es práctico:

• Es necesario recortar el throughput del


circuito, reduciendo la frecuencia de reloj.

• El flujo de datos no siempre es unidireccional,


sino que a veces existen realimentaciones.

Así pues, esta técnica sólo puede emplearse en


subcircuitos concretos, como por ejemplo
datapaths. Otra técnica deberá ser aplicada a
escala global en el sistema.

D.I.E. DCSE.4-37
Sistemas Secuenciales
Síncronos

Soluciones para el skew

2.-Emplear una red de distribución de reloj del


tipo H-tree, como la de la figura.

Reloj

• Los bloques están equidistantes de la fuente


del reloj, por lo cual el retardo es similar para
todos ellos.
• Los bloques deben ser suficientemente
pequeños como para que el skew sea
despreciable en su interior.
• Este método proporciona por tanto un skew
nulo, pero sólo es adecuado para circuitos
muy regulares.

D.I.E. DCSE.4-38
Sistemas Secuenciales
Síncronos

Soluciones para el skew

3.-Emplear una red de distribución de reloj en


forma de árbol jerárquico.

Reloj

• Los bloques están equidistantes de la fuente


del reloj, por lo cual el retardo es también
similar para todos ellos.
• Sin embargo, el skew no es nulo en los
bloques, por lo cual deben ser diseñados con
cuidado para mantenerlo acotado.
• Los buffers de las ramas permiten amplificar
las señales de reloj degradadas por el
cableado y aislar la fuente de reloj de la carga
que producen los bloques.

D.I.E. DCSE.4-39
Sistemas Secuenciales
Síncronos

Notas sobre el skew

• La distribución de reloj es cada vez más un


problema dominante debido al aumento en:
– las densidades de integración
– el tamaño de los sistemas
– las frecuencias de reloj

• Es imprescindible considerar el problema del


skew lo antes posible en la etapa de diseño,
ya que puede influir notablemente en la
distribución final del sistema.

• Actualmente se investiga en arquitecturas


autotemporizadas, que evitan la distribución
de señales de reloj globales.

D.I.E. DCSE.4-40
Sistemas Secuenciales
Síncronos

ARQUITECTURAS PIPELINE (Segmentadas)


•Surgen por la necesidad de aumentar la velocidad de
procesamiento
•La velocidad, en un sistema secuencial síncrono, está
limitada, entre otros factores, por:
•Tecnológicos
•Consumo
•Restricciones algorítmicas
•Arquitecturales
•Etc
•Segmentar una arquitectura es dividirla en segmentos
o etapas
•Cada segmento (etapa) está definido por un registro
que almacena los datos a procesar y otro que almacena
los resultados

Entrada Salida
Unidad de Procesamiento no
segmentada
CLK

Entrada Salida
E1 E2 En

CLK

Arq. Segmentada (n segmentos o etapas)


D.I.E. DCSE.4-1
Sistemas Secuenciales
Síncronos

•CLASIFICACIÓN:

1.- LINEAL: Está formado por un conjunto de etapas


conectadas en cascada, sin bucles de realimentación de
datos
2.- NO LINEAL: Pueden existir bucles hacia delante o
hacia atrás (Feedback, feedforward)

•Atendiendo a la función que realizan se pueden


clasificar en:

1.- ESTÁTICOS: Realizan una función fija sobre un


conjunto de datos de entrada
2.- DINÁMICOS: Realizan diferentes funciones sobre
un conjunto de datos de entrada

D.I.E. DCSE.4-2
Sistemas Secuenciales
Síncronos

•DEFINICIONES BÁSICAS:
•Partiendo de la arquitectura genérica de un pipeline
estático, como el representado en la figura:

Entrada Salida
E1 E2 Ek

CLK

1.- TABLA DE RESERVA de un pipeline lineal


estático de K etapas

t=0 TIEMPO (CICLOS DE CLK)


T1 T2 T3 .......................................... Tk
E1 X
E2 X
E3 X
... ....................................................................

Ek X

Indican en qué etapa hay datos procesándose, en un


determinado ciclo de reloj
D.I.E. DCSE.4-3
Sistemas Secuenciales
Síncronos

2.- Tal y como se vió, al estudiar el Skew, se ha de


cumplir que:

δ+T≥trmáx+2.ti+τcmáx+tsmáx

Tmin= trmáx +2.ti+τcmáx+tsmáx- δ


•La frecuencia máxima será:

1
f máx =
T min
3.- Se define el THROUGHPUT como el nº de datos
procesados por unidad de tiempo:

TH=f⇒Siempre que se mantenga


un flujo cte de datos de entrada
4.- SPEEDUP(SK):
•En un pipeline lineal estático de K etapas y n datos a
procesar, el nº de ciclos de reloj necesario es:

K+(n-1)

D.I.E. DCSE.4-4
Sistemas Secuenciales
Síncronos

•En una arquitectura no pipeline será:

n.K
•Luego el Speedup (SK), es:

n.K
SK =
K + ( n − 1)
•Si el número de datos, n, es muy grande:

n→∞
SK=SKmáx=K
5.- EFICIENCIA (EK):

SK n →∞
EK = = n→
 1
K K + (n −1)

6.- THROUGHPUT (TH):

n n. f n→∞
TH = = →
 f
[K +(n −1)].T K +(n −1)
D.I.E. DCSE.4-5
Sistemas Secuenciales
Síncronos

•Control de arquitecturas segmentadas


•Se trata de saber cuándo y cómo introducir un dato
nuevo en el pipeline:
•Para obtener un rendimiento máximo
•Y que no existan colisiones, es decir, que no se
introduzca un nuevo dato en una etapa antes de
haber procesado el anterior
•Máximo rendimiento≡Throughput máximo

N º datosprocesados
TH máx =
tiempo

•EJEMPLOS:
1.- Pipeline estático lineal que realiza la función A
(con 3 etapas)
t0 t1 t2 t3 t4 .......... tn
E1 A1 A2 A3 A4 A5 ...
E2 A1 A2 A3 A4 ...
E3 A1 A2 A3 ... An-1
t0=t1=t2=.................=tn=T(periodo de reloj)
A1=dato1;A2=dato2......;An-1=daton-1
“llenado” del pipeline=LATENCIA INICIAL
D.I.E. DCSE.4-6
Sistemas Secuenciales
Síncronos

•El control de este tipo de pipelines es trivial:


•Se introduce un dato en cada ciclo de reloj (sin
colisiones)
•Para procesar A1 (a la salida de E3) transcurren
3 ciclos de reloj: Latencia Inicial
•A partir de ese instante se obtiene un resultado
por cada ciclo de reloj
•Para procesar n datos:

[K +(n−1)].T =[3+n−1].T =(n+2).T


•SPEEDUP(S3):

n.3.T
S3 = n→∞ → 3 ⇒ N º Etapas
(n + 2).T

•Eficiencia (E3):

S3 n
E3 = = n→ ∞ →1
3 n+2

D.I.E. DCSE.4-7
Sistemas Secuenciales
Síncronos

•THROUGHPUT (TH):

n. f 1
TH = n→ ∞ → f =
n + 2 T
•Se define la Latencia Media como:
•Nº de unidades de tiempo (T) transcurridas
entre 2 entradas consecutivas

1
Latencia _ Media =
TH
•Se define la utilización media de una etapa o
segmento (en %) como:

Tiempo_ de _ uso _ de _ una _ etapa


Tiempo_ total _ de _ procesado(n _ datos)

D.I.E. DCSE.4-8
Sistemas Secuenciales
Síncronos

2.- Pipeline estático no lineal que realiza la función B


con 3 etapas
t0 t1 t2 t3 t4 t5 t6 t7

E0 B B B B

E1 B B

B B
E2

TABLA DE RESERVA

•Estrategias de Control:
1ª.- “Introducir un nuevo dato en cuanto se pueda”

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15


E1 B1 B1 B2 B2 B1 B1 B2 B2 B3 B3
E2 B1 B1 B2 B2 B3 B3
E3 B1 B1 B2 B2 B3

•Ciclo estable=11.T ciclos de reloj


•Secuencia de latencias <3T,8T,3T,8T,...>
•Ciclo estable (3T,8T)=11.T
D.I.E. DCSE.4-9
Sistemas Secuenciales
Síncronos

•Latencia media=5’5 (11ciclos de reloj/2 datos


procesados)
•Utilización de etapas:
E1⇒8/11≈73%
E2 ⇒4/11≈36%
E3 ⇒4/11≈36%
•Speedup (S3): 2datosx8ciclosxT

S3=16.T/11.T ≈1’45
•Eficiencia (E3):
E3=S3/3 ≈0’48 ⇒50% máximo
•Throughput (TH):
TH=11 ciclos/2 datos

D.I.E. DCSE.4-10
Sistemas Secuenciales
Síncronos

2ª.- “Prueba y Error: Esperamos 4 ciclos de reloj y


analizamos el pipeline”

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15


E1 B1 B1 B2 B2 B1 B1 B3 B3 B2 B2 B4 B4 B3 B3
E2 B1 B1 B2 B2 B3 B3 B4
E3 B1 B1 B2 B2 B3 B3 B4

Ciclo estable ≡ 8.T

•Ritmo de entrada=2 datos/8.T


•Secuencia de latencias <4,4,....>
•Ciclo estable (4T,4T) = 8.T
•Latencia Media = 8 ciclos/2 datos = 4
•Utilización de etapas (en el ciclo estable):
E1⇒100% ⇒¡Es óptimo, no se puede mejorar!
E2 ⇒50%
E3 ⇒50%
•Speedup (S3):
S3=16.T/8.T= 2
•Eficiencia (E3):
E3=S3/3≈0’66.... ⇒ 66’6%

D.I.E. DCSE.4-11
Sistemas Secuenciales
Síncronos

•Throughput (TH):
TH=1/latencia media=0’25
•Hay que formalizar el método, no vale con “prueba y
error”
•Hay que demostrar que el control es óptimo
•Se puede demostrar que: “LA MÍNIMA LATENCIA
ALCANZABLE (M.A.L.) ES MAYOR O IGUAL
QUE EL MÁXIMO DEL Nº DE VECES QUE SE
UTILIZA UNA ETAPA PARA PROCESAR UN
DATO”
•En el ejemplo anterior, para la función B, de la tabla de
reserva original se ve que:
•E1 se utiliza 4 veces, E2 se utiliza 2 veces y E3 2
veces.
•La M.A.L es 4
•FORMALIZACIÓN DEL MÉTODO
•Se define el vector de colisiones, Vc, como:
Vc(i)=ARRAY (0..H-1) OF BOOLEAN
H⇒Nº de ciclos de reloj para procesar un dato en
la tabla de reserva
Vc(i) 1 ⇒Colisión si entra un nuevo dato en i ciclos de reloj
0 ⇒No habrá colisión

D.I.E. DCSE.4-12
Sistemas Secuenciales
Síncronos

•Se define el conjunto de latencias prohibidas por


cada segmento o etapa:
CLP(n)n≡Nº de etapas⇒Indica cuando se produce
colisión
•Se define el CLP de todo el pipeline, como:
CLP=UnCLP(n)
•Se obtendrá el vector de colisiones Vc, a partir del
CLP del pipeline:
Vc(i) 1⇒Si i está en el CLP

0 ⇒Si i no está en el CLP

•EJEMPLO:
t0 t1 t2 t3 t4 t5 t6 t7

B B B B CLP(1)={0,1,2,5,6,7}
E0
E1 B B CLP(2)={0,2}
E2 CLP(3)={0,2}
B B

CLP=U3CLP(i)={0,1,2,5,6,7}

Vc(i)=<1,1,1,0,0,0,1,1,1>
D.I.E. DCSE.4-13
Sistemas Secuenciales
Síncronos

•Diagrama de estados de Vc(i)

Vector inicial
La
=3 11100111 ten
c i a cia

La
=4
aten
≥8

ten
L
cia

cia
ten

≥8
Latencia≥8
La

11111111 11110111
Latencia=4

*Se obtiene haciendo *Se obtiene haciendo


el OR lógico: el OR lógico:
Vc DESPLAZADO
00111000 01110000
Vc ORIGINAL
11100111 11100111
11111111 11110111

•CICLO (3,8) → CICLO “ANSIOSO”


•CICLO (8,8) → CICLO “TONTO”
•CICLO (4,4) → CICLO “ÓPTIMO”

LATENCIA MEDIA = M.A.L.=4

D.I.E. DCSE.4-14
Sistemas Secuenciales
Síncronos

•En ocasiones no es posible alcanzar MAL, o


Throughput máximo
•Una posible solución (a veces no se consigue) es
insertar ciclos de espera.
•EJEMPLO: Pipeline con 3 etapas, Función A.

t0 t1 t2
E1 A A CLP(1)={0,2}
E2 A A CLP(2)={0,1}
E3 A CLP(3)={0}

CLP=U3CLP(n)={0,1,2}
Vc(i)=<1,1,1>
•Diagrama de estados de Vc(i):

111 Latencia≥3

•Se sabe que MAL=2, pues es el máximo Nº de veces


que se utiliza E1 y E2 para procesar un dato

D.I.E. DCSE.4-15
Sistemas Secuenciales
Síncronos

•Si se introduce un estado de espera D, se obtiene:

t0 t1 t2 t3
E1 A A CLP(1)={0,2}
E2 A X A CLP(2)={0,2}
E3 A CLP(3)={0}
D A CLP(4)={0}

•CLP=U4CLP(i)={0,2}
•Vc=<1,0,1,0>
•Diagrama de estados de Vc:
ci a≥3
Laten

=1
1010
i a Lat
t e nc enc
ia≥
La 3

1110

•Latencia media=1+3/2(datos)=2=M.A.L.
t0 t1 t2 t3 t4 t5 t6 t7 t8
E1 A1 A2 A1 A2 A3 A4 A3 A4 A5
E2 A1 A2 A1 A2 A3 A4 A3 A4
E3 A1 A2 A3 A4
D A1 A2 A3 A4
Ciclo estable (2 datos procesados)
D.I.E. DCSE.4-16
Sistemas Secuenciales
Síncronos

•CONCLUSIONES:
1.- En una arquitectura pipeline, los datos no se
procesan más deprisa; incluso más despacio (más Hw,
estados de espera, etc)
2.- Se procesan mayor nº de datos por unidad de tiempo
(Throughput)
3.- Una vez alcanzado el ciclo estable (pipelines
estáticos no lineales) el throughput es máximo
4.- En los lineales, una vez “llenado” el pipeline
(latencia inicial), se obtiene un resultado por ciclo de
reloj
5.- Para que 3 y 4 sean ciertos, el flujo de datos de
entrada debe ser continuo y grande
6.- El control de los pipelines lineales es muy simple; el
de los no lineales requiere de autómatas que “decidan”
cuándo y cómo introducir nuevos datos y su ruta por la
arquitectura

D.I.E. DCSE.4-17

También podría gustarte