Diseño de un Procesador. (Monociclo)

1 Capítulo 12. Diseño de un Procesador. (Monociclo) 12.1 Especificación de instrucciones. El primer paso es la especificación de la arquitectura del
Author:  Luis Duarte Soler

0 downloads 68 Views 804KB Size

Recommend Stories


Un microprocesador, El nacimiento de un procesador
Un microprocesador, también conocido como procesador, micro, chip o microchip, es un circuito lógico que responde y procesa las operaciones lógicas y

CONOCIENDO Y USANDO UN PROCESADOR DE TEXTO
2 CONOCIENDO Y USANDO UN PROCESADOR DE TEXTO Saber usar un procesador de texto como el Word, nos permite escribir o transcribir un texto. Al finaliza

Procesador Modelo del procesador
Procesador Modelo del procesador i5-5200U Familia de procesador Intel Core i5-5xxx Socket de procesador BGA1168 Número de núcleos de procesador

Desarrollar documentos en un procesador de textos
Desarrollar documentos en un procesador de textos Material del participante Desarrollar documentos en un procesador de textos Material del partici

Story Transcript

1

Capítulo 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: op rs rt rd shamt funct 31 26 25 21 20 16 15 11 10 6 5 0 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Formato R

Suma, resta y slt ( R ) add rd, rs, rt sub rd, rs, rt slt rd, rs, rt Or inmediato ( I ) ori rt, rs, inm16

op rs rt 31 26 25 21 20 16 15 6 bits 5 bits 5 bits Carga y Almacenamiento(I). Formato I lw rt, inm16(rs) sw rt, inm16(rs) Bifurcación ( I ) beq rs, rt, rótulo

op 31 26 25 6 bits

Salto incondicional. ( J ) j rótulo

inmediato16 00 16 bits

add26 00 26 bits Formato J

Figura 12.1 Especificación de intrucciones, 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 entrada- salida, frecuencia del reloj, etc.).

Profesor Leopoldo Silva Bijit

16-10-2008

2

Estructuras de Computadores Digitales

12.2. Manual de Programación MIPS reducido. Códigos Binarios OP 000000 000000 000000 000010 000100

Lenguaje Simbólico. Assembler.

Rs Fte1 Fte1 Fte1

Rt Fte2 Fte2 Fte2

Fte1

Fte2

Rd Shamt Funct Dst 00000 100000 Dst 00000 100010 Dst 00000 101010 jmp26 label16

Dst Dst Fte1

inm16 offset16 offset16

001101 Fte1 100011 Rbase 101011 Rbase

Nemo R add R sub R slt J j I beq

Campo1 Dst, Dst, Dst, jmp26 Fte1,

I I I

Dst, Dst, Fte1,

ori lw sw

Campo2 Fte1, Fte1, Fte1,

Camp3 Fte2 Fte2 Fte2

Descripción #Addition #Subtract #Set Less Than #Jump Fte2, label16 #Branch on Equal Fte1, inm16 #OR Immediate Offset16(RBase) #Load Word Offset16(RBase) #Store Word

Figura 12.2 Códigos binarios, descripción assembler. 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 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:

Profesor Leopoldo Silva Bijit

16-10-2008

Diseño de procesador monociclo

3

inm16

rotulo ( PC 4) 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 SUBU SLT ORI LOAD STORE BEQ JUMP

R[rd] = R[rs] + R[rt]; PC = PC + 4 R[rd] = R[rs] – R[rt]; PC = PC + 4 R[rd] = R[rs] < R[rt] ? 1: 0 ; PC = PC + 4 R[rt] = R[rs] or zero_ext(Inm16); PC = PC + 4 R[rt] = MEM[ R[rs] + sign_ext(Inm16)]; PC = PC + 4 MEM[ R[rs] + sign_ext(Inm16) ] = R[rt]; PC = PC + 4 if ( R[rs] = = R[rt] ) PC = (PC +4)+[sign_ext(Inm16)]*4; else PC = PC + 4 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 (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.

Profesor Leopoldo Silva Bijit

16-10-2008

4

Estructuras de Computadores Digitales AluCtr[2..0] Bnegate Operación 0 00 0 01 0 10 1 10 1 11

Resultado OpA & OpB OpA | OpB OpA + OpB OpA - OpB OpA < OpB ? 1: 0

Función ALU and or add sub slt

AluCtr OpA Resultado OpB

Figura 12.3 Descripción ALU 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 Figura 12.4 Cálculo de dirección de próxima instrucción 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.

Profesor Leopoldo Silva Bijit

16-10-2008

Diseño de procesador monociclo

5

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

Extensor Op32

Inm16

Operando de 32 bits

Figura 12.5 Unidad extensora de 16 a 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

CtrMux 00 01 10

Out S0 S1 S2

S0 S1 S2

0 Out 1 2

Figura 12.6 Multiplexor 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:

Profesor Leopoldo Silva Bijit

16-10-2008

6

Estructuras de Computadores Digitales

Di C1 0 0 1 1

C0 Out_i 0 Ai 1 Bi 0 Ci 1 Di

Ci

Out_i

Bi Ai C1 C0

Figura 12.7 Diseño de Multiplexor 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 0 bit 15 de Inm16

de Op32

1

de Op32

Inm16 Figura 12.8 Diseño de extensor 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.

Profesor Leopoldo Silva Bijit

16-10-2008

Diseño de procesador monociclo

OpA

7

Detector de Igualdad

Equal

OpB

Figura 12.9 Detector de igualdad 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 Figura 12.10 Diseño detector de igualdad 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.

Profesor Leopoldo Silva Bijit

16-10-2008

8

Estructuras de Computadores Digitales

MemWr MemRd

Inactivo MemRd

Dirección Inactivo

WrEn Rd AddrI

Dout

WrEn Rd AddrD Memoria Datos

Dirección

Memoria Instrucciones

Din

Dout

Figura 12.11 Modelos de memorias 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. 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

Figura 12.12 Arreglo registros

Profesor Leopoldo Silva Bijit

16-10-2008

Diseño de procesador monociclo

9

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

Figura 12.13 Contador del programa (program counter) Con Write Enable activado (asertado) se produce la escritura en un registro con el canto activo del reloj. 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.

Profesor Leopoldo Silva Bijit

16-10-2008

10

Estructuras de Computadores Digitales

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.

Rb

Ra

R0

WE1

0

R1

R0

5 a 32

R1 31

R31

WE31

0 busA

1 31

R0 R1

R31

busW

R31

0 1

busB

31

Figura 12.14 Diseño arreglo de registros 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. Profesor Leopoldo Silva Bijit

16-10-2008

Diseño de procesador monociclo

11

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

Figura 12.15 Camino de datos para calcular dirección de próxima instrucción 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:

Profesor Leopoldo Silva Bijit

16-10-2008

12

Estructuras de Computadores Digitales

nPC_sel[1..0]

1

4

IR

SigExt

PC

0

2

Get in touch

Social

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