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

Procesador digital genrico

MEM ORY INPUT-OUTPUT

CONTROL

DATAPATH

Estructura de procesamiento de datos, memoria, unidad de control, bloques E/S


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Unidad de procesamiento de datos


Control

Bit 3 Multiplexer Data-In Register Bit 2 Bit 1 Bit 0 Shifter Data-Out Adder

Compuesta por una interconexin de funciones combinatorias bsicas, como operadores aritmticos (suma, multiplicacin, comparacin y desplazamiento) o lgicos (AND, OR y XOR).
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Diseo de Bloques Aritmticos


Diseo de sumadores, multiplicadores y desplazadores optimizando las prestaciones, el rea o el consumo Optimizaciones lgicas y de sistema para mdulos de procesamiento de datos Compromisos entre consumo y retardo en los mdulos de procesamiento de datos
Captulo 11, Diseo de bloques aritmticos J.M. Rabaey et al., Circuitos Integrados Digitales
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Bloques Aritmticos - Sumadores


Ripple-carry (carry propagate adder CPA, sumador de propagacin del acarreo) Carry-bypass (sumador de puenteo) Carry-select (sumador de seleccin de acarreo) Carry-look ahead (CLA, sumador de prediccin del acarreo) Carry-save (CSA)
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador binario
A Ci B Co

S = ( A B) Ci Co = ( AB) + Ci ( A B) = Co = A B + A Ci + B C i

Full adder S

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador binario
A Ci B Co

S = ( A B) Ci Co = ( AB) + Ci ( A B) = = A B + A Ci + B Ci
Solo dependen C de A y B! o

Full adder S

G = AB D = AB P = AB

S(G, P ) = P Ci Co (G, P ) = G + P

Igual se pueden derivar expresiones de S(D,P) y Co(D,P) C


i

Sumador Ripple-Carry

Sumador de N bits conectando en cascada N circuitos sumadores completos (FA) conectando Co,k-1 a Ci,k para k=1 a N-1 y con Ci,0 conectado a 0
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Ripple-Carry

El retardo del circuito depende del nmero de etapas lgicas que haya que recorrer, y estar en funcin de las seales de entrada aplicadas
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Ripple-Carry

Para algunas seales de entrada no se produce ningn efecto de propagacin, mientras que para otras el acarreo tiene que propagarse a lo largo de todo el circuito desde el bit LSB hasta el bit MSB
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Ripple-Carry

El retardo de propagacin en este caso (camino crtico) se define como el retardo de caso peor para todos los posibles patrones de entrada tp = (N-1)tcarry + tsum
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Propagacin en un RCA
0 1
0 1 0 1 1 1

3tcarry

2tcarry

tcarry

tsum

tsum

tsum

tsum

4tcarry 3tcarry + tsum

3tcarry

2tcarry

tcarry tsum

tRCA = 3tcarry + tsum


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Propagacin en un RCA
0 1
0 0 0 1 1 1

tcarry

2tcarry

tcarry

tcarry tcarry +tsum 2tcarry +tsum

tRCA = 2tcarry + tsum


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Propagacin en un RCA
El retardo de propagacin del sumador RCA es linealmente proporcional a N. Este sumador resulta adecuado para la implementacin de sumas con longitud de palabra relativamente pequea. Al disear la celda de sumador completo para un sumador rpido con propagacin de acarreo, es mucho ms importante optimizar tcarry que tsum.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
Ejemplo 1 Sumar: 3456789876543 + 6543210123456
propaga acarreo

Ejemplo 2 Sumar: 3456789876543 + 6544210123456

Principio: Buscar una condicin que permita un atajo en el camino crtico de propagacin.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
Ejemplo 1 Sumar: 3456789876543 + 6543210123456
propaga acarreo

Ejemplo 2 Sumar: 3456789876543 + 6544210123456


propaga acarreo genera acarreo

Principio: Buscar una condicin que permita un atajo en el camino crtico de propagacin.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
Principio: Buscar una condicin que permita un atajo en el camino crtico de propagacin.

Si todos los Ak y Bk provocan Pk en alto (k=1,2,3), entonces un Ci,0=1 se propagar a travs de la cadena completa para dar Co,3=1
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
En otras palabras, si P1P2P3P4=1, entonces Co,3=Ci,0

En todos los dems casos se activan las seales D (descartar) y G (generar).

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
En otras palabras, si P1P2P3P4=1, entonces Co,3=Ci,0

De otra manera, Co,3 es independiente del Ci,0


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass
Estructura de un sumador con puenteo de acarreo de 16 bits.

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass - Retardos


Sumador de N bits, dividido en N/M etapas de bypass de igual longitud cada una de las cuales contiene M bits (N=16, M=4):

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass - Retardos


Sumador de N bits, dividido en N/M etapas de bypass de igual longitud cada una de las cuales contiene M bits (N=16, M=4):
tp = tsetup + Mtcarry + (N/M-1)tbypass + (M-1)tcarry + tsum
tbypass

tbypass

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Bypass - Retardos


tp
tp

El retardo es linealmente proporcional a N

Sumador con propagacin

Sumador con bypass


Depende de consideraciones tecnolgicas.

48
DCSE 2008-09

N
Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select
Principio: Precalcular los acarreos de un grupo de bits intermedios para los dos posibles valores de acarreo de entrada evitando as el tiempo de espera de su llegada. Cuando llega el acarreo de entrada definitivo, los acarreos siguientes ya estn preparados y slo hay que seleccionar el correcto mediante una etapa multiplexora.

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select
Setup
P,G

"0"

"0" Carry Propagation

Se generan las seales G y P para calcular los acarreos intermedios de cada bloque Selecciona los acarreos precalculados en funcin del acarreo de entrada recibido

"1"

"1" Carry Propagation

Co,k-1

Multiplexer
Carry Vector

C o,k+3

Sum Generation

Generada con la seal P y los acarreos

Topologa de un mdulo de seleccin de acarreo


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select
Bit 03 Setup Bit 47 Setup Bit 811 Setup Bit 1215 Setup

0-Carry

0-Carry

0-Carry

0-Carry

1-Carry

1-Carry

1-Carry

1-Carry

Ci,0

Multiplexer

Co,3

Multiplexer

Co,7

Multiplexer

Co,11

Multiplexer

Co,15

Sum Generation S03

Sum Generation S47

Sum Generation S811

Sum Generation S1215

Sumador lineal de 16 bits con carry-select


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select
Se puede construir un sumador completo de N bits con carry-select encadenando una serie de etapas sumadoras de igual longitud, de M bits cada una, como en la tcnica de carry-bypass. El retardo de propagacin de caso peor ser:
tp = tsetup + Mtcarry + N/Mtmux + tsum

Sumador Carry-Select - Retardo


El retardo es tambin linealmente proporcional a N, porque la seal de seleccin de bloque que elige entre las soluciones correspondientes a los casos 0 y 1 contina teniendo que propagarse a travs de todas las etapas en el caso peor.

tp = tsetup + Mtcarry + N/Mtmux + tsum

Sumador Carry-Select - Desventajas


Se duplican los recursos (doble generacin de acarreo) Hardware adicional: extra camino de generacin de carry + un multiplexor 30% extra rea y mayor coste

Sumador Carry-Select - Variante


Lineal Carry Select
Bit 0-3 Setup (1) "0" (1) "1" Carry "1" (5) (5) (6) Multiplexer Ci,0
Sum Generation DCSE 2008-09 S0-3 Sum Generation Sum Generation

Bit 4-7 Setup

Bit 8-11 Setup

Bit 12-15 Setup

"0" Carry

"0"

"0" Carry

"0"

"0" Carry

"0"

"0" Carry

"1" Carry "1" (5) (7) Multiplexer "1"

"1" Carry "1" (5) (8) Multiplexer

"1" Carry (5) Multiplexer (9)


Sum Generation

Diseo digitales / Bloques Aritmticos S4-7 de circuitos y sistemas S8-11 S12-15 (10)

Sumador Carry-Select - Variante


Square Root Carry Select
Bit 0-1 Setup (1) "0" (1) "1" (3) Ci,0
Sum Generation Sum Generation Sum Generation Sum Generation

Bit 2-4 Setup

Bit 5-8 Setup

Bit 9-13 Setup

Bit 14-19

"0" Carry

"0"

"0" Carry

"0"

"0" Carry

"0"

"0" Carry

"1" Carry (3)

"1" (4)

"1" Carry (4)

"1" (5)

"1" Carry (5)

"1" (6)

"1" Carry (6) (7) Multiplexer Mux (8) Sum S14-19 (9) (7)

Multiplexer

Multiplexer

Multiplexer

S0-1

S2-4

S5-8

S9-13

Se ecualizan las entradas de los multiplexores para que la seal de control y los datos llegan a la vez.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select - Variante


En la prctica, el truco consiste en hacer que las etapas sumadoras sean progresivamente ms grandes. Esto da como resultado una estructura de sumador con caractersticas de retardo cuya dependencia con respecto al nmero de bits es menor que lineal.

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select - Variante


Suponemos sumador de N bits, con P etapas, de las cuales la primera suma M bits:
N = M + (M + 1) + (M + 2) + (M + 3) + K + (M + P 1) = 1 P(P 1) P 2 N = MP + = + P M 2 2 2

Si M<<N, el primer trmino es el dominante y simplificamos:


P2 N 2
DCSE 2008-09

P 2N
Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry-Select - Variante


El retardo de propagacin de caso peor ser: Caso lineal:
tp = tsetup + Mtcarry + N/Mtmux + tsum

Caso raiz cuadrada:


tp = tsetup + Mtcarry + 2Ntmux + tsum

Este retardo est calculado para sumadores de gran tamao (M<<N), donde el retardo pasa a ser casi constante.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumadores- Retardos
50 40 30 Linear select 20
) s y a l e t i d n u ( p t

Ripple adder

10 0

Square root select 0 20 N 40 60

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Ripple-Carry

El retardo de propagacin en este caso (camino crtico) se define como el retardo de caso peor para todos los posibles patrones de entrada tp = (N-1)tcarry + tsum
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry Lookahead

G = AB D = AB P = AB
DCSE 2008-09

Para evitar el retardo de la cadena de acarreo, se generan directamente los acarreos intermedios a partir de las entradas
Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry Lookahead

Co,k = f ( Ak , Bk , Co,k 1 ) = Gk + Pk Co,k 1 Co,k = Gk + Pk (Gk 1 + Pk 1 Co,k 2 ) Co,k = Gk + Pk Gk 1 + Pk 1 (K + P1(G0 + P0 Ci ,0 ))


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador Carry Lookahead


Para cada bit, las salidas de acarreo y de suma son independientes de los bits anteriores. Por tanto, el efecto de propagacin se ha eliminado y el tiempo de suma debera ser independiente del nmero de bits. Sin embargo, el alto fan-in del circuito hace que sea prohibitivamente lento para valores grandes de N. Adems, el fan-out de algunas seales crece en exceso.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Lookahead Carry Units

Mltiples sumadores de este tipo se pueden combinar para formar sumadores ms largos.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Arboles binarios
Una cadena serie, si el operador es asociativo, se puede transformar en un rbol (i.e., operaciones AND, OR, XOR).
A0 A1 A2 A0 A1 A2 A3 F A4 A5
DCSE 2008-09

A3

A4

A5

A6

A7

tp N

A6 A7

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

tp log2(N)

Arboles binarios
El retardo de la cadena serie crece linealmente con el nmero de etapas y el retardo del rbol crece logartmicamente. Un sumador logartmico de estructura de rbol de Kogge-Stone requiere un tiempo proporcional a log2(N) para el clculo de acarreo de salida.
S10 S11 S12 S13 S14 (A14, B14) S15 (A15, B15) S0 S1 S2 S3 S4 S5 S6 S7 S8 (A8, B8) S9 (A9, B9)

(A0, B0)

(A1, B1)

(A2, B2)

(A3, B3)

(A4, B4)

(A5, B5)

(A6, B6)

(A7, B7)

(A10, B10)

(A11, B11)

(A12, B12)

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

(A13, B13)

Sumadores de ms de 2 nmeros
Suma de M nmeros de N bits cada uno: Sumar los dos primeros, luego sumar el tercero al resultado anterior, etc. Total M-1 sumas, en un tiempo proporcional a Mlog2(N) usando sumadores logartmicos CLA. Formando un rbol de sumadores: tiempo proporcional a log2Mlog2N Podemos mejorar ms el tiempo de calculo?
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save
Fase 1:

Fase 2:

Fase 3:

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save
Fase 1:

Fase 2:

Fase 3:

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save
Se puede aplicar el mismo principio para sumar 3 nmeros binarios:

O(1)

O(log2N)

Retardo total O(log2N)


DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save

El bloque CSA es el mismo circuito que un FA, con algunos de los seales con nombre diferente.
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save

Para cada bit usamos 1 bloque CSA. El circuito suma M = 3 nmeros de N = 8 bits en dos nuevos nmeros.

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save
Para sumar M nmeros de N bits: Repetimos el mismo proceso M veces. Habr M-2 mdulos de 1-bit CSA bloques y un CLA al final, que sumar 2 nmeros de N+-2 bits. Total retardo: O(M+log2(N+M))
CLA

DCSE 2008-09

Diseo de circuitos y sistemas digitales / Bloques Aritmticos

Sumador carry-save
Para sumar M nmeros de N bits: Reorganizacin en forma de rbol (rbol de Wallace) El ltimo CSA tendr O(N+log2M) bits y el CLA tendr un retardo de O(log2(N+log2M)) Total retardo: O(log2M + log2(N+log2M))
DCSE 2008-09 Diseo de circuitos y sistemas digitales / Bloques Aritmticos

CLA

Вам также может понравиться