UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores 12. Diseño de un Procesador. (Monociclo) 12.1

2 downloads 52 Views 189KB Size

Story Transcript

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

12. Diseño de un Procesador. (Monociclo) 12.1 Especificación de instrucciones. El primer paso es la especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar el procesador. Se elige modelo Carga-Almacenamiento, y la siguiente especificación de instrucciones en assembler del procesador: • Suma, resta y slt ( R ) add rd, rs, rt sub rd, rs, rt slt rd, rs, rt

op 31 26 6 bits

rs 25 21 5 bits

rt rd 20 15 16 11 5 bits 5 bits Formato R

op 31 26 6 bits

rs 25 21 5 bits

rt 20 16 5 bits Formato I

• Or inmediato ( I ) ori rt, rs, inm16 • Carga y Almacenamiento(I). lw rt, inm16(rs) sw rt, inm16(rs) • Bifurcación ( I ) beq rs, rt, rótulo • j

shamt 10 6 5 bits

funct 5 0 6 bits

inmediato16 15 00 16 bits

Salto incondicional. ( J ) rótulo

Si bien el repertorio es restringido, es lo suficientemente poderoso para representar una gran variedad de algoritmos. Nótese que en este caso particular no es necesario el campo que especifica el tamaño de los corrimientos, y tampoco se requiere un código de operación de 6 bits. Sin embargo, se mantendrá el mismo formato de instrucciones del procesador MIPS, ya que lo que importa es ilustrar los principios de diseño del procesador (no hay especificaciones de entradasalida, frecuencia del reloj, etc.).

Prof. Leopoldo Silva Bijit.

31-08-2004

223

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

12.2. Manual de Programación MIPS reducido. Códigos Binarios Assembler. OP Rs Rt Rd Sham Funct Nem t o 00000 Fte1 Fte2 Dst 00000 10000 R add 0 0 00000 Fte1 Fte2 Dst 00000 10001 R sub 0 0 00000 Fte1 Fte2 Dst 00000 10101 R slt 0 0 00001 jmp26 J j 0 00010 Fte1 Fte2 label16 I beq 0 00110 Fte1 Dst inm16 I ori 1 10001 Rbas Dst offset16 I lw 1 e 10101 Rbas Fte1 offset16 I sw 1 e

Lenguaje Simbólico. Campo Campo Camp Descripción 1 2 3 Dst, Fte1, Fte2 #Addition Dst,

Fte1,

Fte2

#Subtract

Dst,

Fte1,

Fte2

#Set Less Than

jmp26 Fte1, Dst, Dst, Fte1,

#Jump Fte2,

label1 #Branch on 6 Equal Fte1, inm16 #OR Immediate Offset16(RBas #Load Word e) Offset16(RBas #Store Word e)

La especificación anterior, establece el número máximo de registros, el largo de palabra de la memoria y el espacio de direccionamiento. Se elige tener una operación con operando inmediato para visualizar los requerimientos de este tipo de instrucciones. Se decide implementar una bifurcación y un salto incondicional, para visualizar la forma de resolver por hardware la secuenciación y control del flujo de las instrucciones. La bifurcación junto a la instrucción de comparación slt, permiten implementar todos los operadores relacionales, que se emplean para programar condiciones. El nombre monociclo, tiene que ver con los mecanismos de sincronización(o de temporización) que se emplearán en el diseño; y cómo se entenderá más adelante éste es el sistema más simple que puede emplearse. 12.3. Transferencia entre registros. El siguiente paso es detallar, en un lenguaje adecuado, los movimientos de datos y las operaciones que se efectúan sobre ellos. Se empleará un lenguaje de transferencias entre registros (se usa el Lenguaje C) para documentar cada una de las instrucciones. Deben

Prof. Leopoldo Silva Bijit.

31-08-2004

224

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

especificarse los operandos de entrada y salida, la operación a realizar y cuál será la próxima instrucción a realizar. Las instrucciones de bifurcación efectúan saltos relativos a PC. El programa que carga la instrucción en la memoria efectúa el siguiente cálculo, para determinar el valor binario del campo inmediato de 16 bits: Si PC contiene la dirección de la instrucción bifurcación, y rótulo es la dirección de la instrucción de la instrucción que debe ejecutarse si se efectúa la bifurcación, entonces: rotulo − ( PC + 4) inm16 = 4 Calcula la diferencia en bytes, y luego determina el número de instrucciones, dividiendo por cuatro. El valor resultante debe poder expresarse con 16 bits; en caso que exceda el rango debe planearse la bifurcación usando más instrucciones. Si despejamos rótulo, de la relación anterior, se obtiene el valor que debe escribirse en PC, en caso de que se efectúe la bifurcación: rotulo = nuevo _ valor _ de _ PC = ( PC + 4) + sign _ ext (inm16) * 4 Transferencias Lógicas: ADDU R[rd] = R[rs] + R[rt]; PC = PC + 4 SUBU R[rd] = R[rs] – R[rt]; PC = PC + 4 SLT R[rd] = R[rs] < R[rt] ? 1: 0 ; PC = PC + 4 ORI R[rt] = R[rs] or zero_ext(Inm16); PC = PC + 4 LOAD R[rt] = MEM[ R[rs] + sign_ext(Inm16)]; PC = PC + 4 STORE MEM[ R[rs] + sign_ext(Inm16) ] = R[rt]; PC = PC + 4 BEQ if ( R[rs] = = R[rt] ) PC = (PC +4)+[sign_ext(Inm16)]*4; else PC = PC + 4 JUMP PC = (PC +4)&0xF0000000 + add_26*4

El conjunto muestra los diferentes modos de direccionamiento para datos: relativo a registros, registro base más desplazamiento; y los modos de direccionamiento para el control de flujo de ejecución de las instrucciones: saltos incondicionales (salto absoluto dentro de un segmento) y bifurcaciones (saltos relativos a PC). Nótese que en bifurcaciones el campo inmediato representa el número de instrucciones, no de bytes. Por esto aparece multiplicado por cuatro. Se han introducido como funciones las extensiones con y sin signo; empleando zero_ext para extensión lógica o relleno de la parte más significaticva con ceros. Y sign_ext para extensión con signo o relleno con el bit del signo del campo inm16(el bit 15) de la parte más significativa. 12.4. Componentes físicas. A continuación deben especificarse las componentes físicas que se emplearán en el diseño. Algunas de ellas serán de tipo combinacional y otras serán de tipo almacenamiento

Prof. Leopoldo Silva Bijit.

31-08-2004

225

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

(secuencial). Obviamente las componentes de hardware deben poder realizar electrónicamente las transferencias físicas que demandan las especificaciones anteriores. 12.4.1. Recursos Combinacionales: 12.4.1.1 ALU Se requiere una Unidad Aritmético Lógica que pueda sumar, restar y realizar el or de los operandos de entrada. Se empleará la ALU diseñada anteriormente, la siguiente tabla resume las funciones de la Unidad Aritmético Lógica.

AluCtr[2..0] Bnegate Operación

0 0 0 1 1

00 01 10 10 11

Función ALU OpA & OpB and OpA | OpB or OpA + OpB add OpA - OpB sub OpA < OpB ? 1: 0 slt

AluCtr

Resultado

OpA Resultado OpB

12.4.1.2. Calculador de PC+4 Se requiere un sumador que permita calcular PC+4. Podría emplearse la ALU anterior, pero teniendo un recurso adicional, puede efectuarse en paralelo (en concurrencia) las operaciones en la ALU y el cálculo de la nueva dirección.

La constante 4 se forma cableando a Vcc el bit 2; el resto de los bits se conectan a tierra. Suma PC PC+4 4

Prof. Leopoldo Silva Bijit.

31-08-2004

226

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

12.4.1.3. Unidad extensora. Se requiere una unidad que permita extender lógicamente y con signo un operando(o campo de la instrucción) de 16 bits a un resultado de 32. ExtOp

ExtO Op. de 32 p 0 zero_ext(Inm16) 1 sign_ext(Inm16)

Extensor Op32

Inm16

Operando de 32 bits

12.4.1.4 Multiplexor Se requiere un multiplexor que permita canalizar diferentes señales hacia una de las entradas de la ALU o hacia la unidad que calcula la nueva dirección.

CtrMux S0 CtrMux 00 01 10

Out S0 S1 S2

S1 S2

0 1

Out

2

La necesidad de multiplexores puede advertirse notando que se tienen diversos operandos que ingresan a la ALU, y también que existen diferentes contenidos para la dirección de la próxima instrucción. Ejemplo de diseño de multiplexor.

El diseño digital, en base a compuertas, del bit de salida Out_i, de un multiplexor de 4 vías a uno, se ilustra en el siguiente diagrama: Di C1 0 0 1 1

C0 Out_i 0 Ai 1 Bi 0 Ci 1 Di

Ci

Out_i

Bi Ai C1 C0

Prof. Leopoldo Silva Bijit.

31-08-2004

227

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

Se requieren 32 circuitos similares al anterior, para construir un mux de 32 bits. Diseños más realistas de multiplexores, empleando compuertas de transmisión CMOS, puede verse en el punto 4.2.2 del texto "Contemporary Logic Design" de Randy H. Katz. Ejemplo de diseño de extensor.

A continuación se muestra la implementación del extensor lógico y aritmético, mediante un multiplexor de dos vías a uno. Las 16 salidas, más significativas, denominadas de Op32, están conectadas a la salida única del mux. ExtOp tierra

bit 15 de Inm16

0

de Op32

1

de Op32

Inm16

12.4.1.5. Detector de Igualdad. La instrucción BEQ requiere un circuito para determinar la igualdad de dos palabras de 32 bits. Esto no sería necesario si se desea utilizar la ALU anterior para efectuar la comparación; en este caso, ésta debe proveer la operación de resta y la condición de resultado igual a cero, lo cual implica operandos iguales en las entradas.

OpA OpB

Detector de Igualdad

Equal

Ejemplo de diseño de detector de igualdad.

El diseño lógico del comparador de igualdad se ilustra empleando compuertas or exclusivo, para largo de operandos de entrada igual a tres. Del cual puede inducirse el diseño de un comparador de 32-bits.

B2 A2 B1 A1

A=B

B0 A0 Prof. Leopoldo Silva Bijit.

31-08-2004

228

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

Como se verá más adelante el disponer de esta componente es importante en el diseño de arquitecturas más avanzadas. Por esta razón se la incluirá en el diseño inicial. 12.4.2. Recursos de Almacenamiento. Memorias y Registros. 12.4.2.1. Memorias. Se requiere una memoria para almacenar las instrucciones que serán ejecutadas; esta memoria si se supone grabada previamente con un programa, sólo será leída durante la ejecución (ROM). También se requiere una memoria para leer y escribir datos (RAM). Podría ocuparse una sola memoria para datos e instrucciones, pero en un diseño inicial se elige tener recursos separados.

Además el modelo empleado debe ser lo suficientemente general para modelar diseños de memoria más realistas (caché y virtual) que se verán más adelante. MemWr MemRd

Inactivo MemRd

Dirección Inactivo

WrEn Rd AddrI Memoria Instrucciones

Dout

Dirección Din

WrEn Rd AddrD Memoria Datos

Dout

Con Write Enable activado(asertado) se produce la escritura del bus de datos de entrada (Din) en la memoria, en la celda direccionada por el bus de direcciones, con el canto activo del reloj(de bajada de acuerdo al esquema). Además es preciso tener estable: el bus de direcciones y los datos en la entrada; y activada la señal de control de escritura MemWR. Luego del tiempo de acceso se obtiene: M[Addr] = Din Con Write Enable desactivado: no cambia la salida de la memoria, siempre y cuando no se cambie el bus de direcciones o se active control de escritura. Desde que se activa la señal de lectura de memoria (MemRd) y estando estable el bus de direcciones, transcurre el tiempo de acceso hasta que se tiene: Dout =M[Addr]. En lectura, el funcionamiento de la memoria puede considerarse combinacional. Esto se insinúa en el diagrama, mostrando segmentada la señal de reloj. Prof. Leopoldo Silva Bijit.

31-08-2004

229

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

12.4.2.2. Arreglo de registros. Debido al modelo carga-almacenamiento se requiere disponer de un arreglo de registros para intercambiar datos con la memoria. RegWr Rs 5 Rt 5 Rw 5 busW

Ra WE Rb Rw 32 Registros 32-bit

busA 32

busB 32

32

Con Write Enable, RegWr, activado (asertado) se produce la escritura en el registro, con el canto activo del reloj. Se obtiene: R[Rw] = busW Con Write Enable desactivado: no cambian las salidas del arreglo. Entonces: busA y busB mantienen sus valores siempre y cuando no se cambien las direcciones Ra y Rb. Los buses de salida toman valores válidos después de un tiempo de haber actualizado las direcciones Ra y Rb(el comportamiento en lectura también puede considerarse una operación combinacional). La operación de lectura puede escribirse: busA = R[ Ra ] ; busB = R[ Rb ] 12.4.2.3. Contador del Programa(Program Counter). Se requiere un registro para almacenar la dirección de la instrucción que está en ejecución (PC), ya que este valor debe sostenerse para formar la suma PC+4; y el nuevo contenido de PC, en caso de bifurcación o salto.

WE

RIn

PC

ROut

Con Write Enable activado (asertado) se produce la escritura en un registro con el canto activo del reloj. Prof. Leopoldo Silva Bijit.

31-08-2004

230

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

PC = RIn Con Write Enable desactivado, no cambia la salida del registro, y se tiene: ROut = PC Debe observarse que todos los elementos que requieren de sincronización tienen incorparada la señal de reloj, y además una habilitación de escritura (Write Enable). 12.4.2.4. Registro de Instrucción. Si no se modifica la dirección de la memoria de instrucciones, su contenido no cambia, y no es necesario disponer de un registro de instrucción IR, que contendría la instrucción que está en ejecución, con todos los campos de ésta disponibles. Ejemplo de diseño del arrego de Registros.

El siguiente diagrama muestra la estructura interna del arreglo de 32 registros. El registro R0, almacena una constante y es sólo de lectura. No se muestran los registros R2 a R30. RegWr

RW

Decodificador.

0

Ra

R0

Rb

WE1 R1

R0

5 a 32

R1 31

R31

WE31

0 busA

1 3

R0 R1

busW

Prof. Leopoldo Silva Bijit.

R31

R31

31-08-2004

0 1

busB

3

231

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

Los controles de selección de registro de lectura(Ra y Rb) operan sobre muxes de 32 salidas. El decodificador de RW (selección de registro de escritura) habilita sólo una de las 32 salidas del decodificador. El control de escritura en registro(RegWr) habilita sólo una de las 31 señales WE que permiten capturar la entrada y almacenarla en el registro. El bus de escritura(busW) coloca el dato en todas las entradas de los registros; pero sólo será escrito el que tenga su WE habilitado, mediante el and de RegWr y la única salida activa del decodificador. 12.5 Camino de Datos.

Es el siguiente paso en el diseño del procesador. Consiste en ir interconectado los recursos de hardware disponibles, de tal modo que puedan realizarse las transferencias físicas requeridas. 12.5.1. Determinación de la próxima instrucción. Comenzaremos con un diseño para la determinación del próximo valor del PC. Debe existir un camino para los datos que permita lograr la transferencia:

PC = PC + 4 Se muestran, en el diagrama siguiente, las conexiones necesarias entre un sumador y el registro PC. Camino de datos para realizar: PC = PC + 4: WEPC

Suma PC PC+4

PC

4

Prof. Leopoldo Silva Bijit.

31-08-2004

232

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

A continuación se muestra un diagrama, que ilustra el uso de mux y la incorporación de recursos adicionales, para implementar las transferencias hacia PC, debidas a las instrucciones de bifurcación y salto: nPC sel[1..0]

1

4

IR

SigExt

PC

0

2

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.