La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES

Presentaciones similares


Presentación del tema: "TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES"— Transcripción de la presentación:

1 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

2 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso Los sistemas digitales vistos en el tema anterior sólo podían llevar a cabo una determinada operación. En este tema estudiaremos los sistemas digitales de proceso programables, ordenadores, procesadores o CPUs (Central Processing Units), capaces de realizar diferentes tipos de operaciones. Elementos en un sistema digital de proceso programable: Secuenciador Ruta de datos Memoria de Programa Memoria de Datos La operación concreta a realizar se especifica mediante un programa, el cual consta de una serie de instrucciones que, en su conjunto, llevan a cabo la operación deseada. Tanto el programa como los datos sobre los que opera, se almacenan en circuitos de memoria. La unidad de control del sistema consta de un secuenciador que gobierna el orden en que se van ejecutando las instrucciones del programa. La unidad de proceso del sistema (ruta de datos) consta de una serie de registros así como de unidades funcionales que permiten la manipulación de los datos del programa. Tipos de sistemas digitales de proceso programables: Microprocesadores: sistemas de propósito general, núcleo central de los ordenadores. - Microcontroladores: especializados en el control de procesos en tiempo real. Más sencillos y más rápidos, suelen incluir dispositivos periféricos. - Procesadores digitales de señal (DSPs): optimizados para realizar operaciones numéricas a muy alta velocidad. Son especialmente útiles para el procesado y representación de señales en tiempo real. -

3 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

4 INSTRUCCIONES TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.2.- Arquitectura de un ordenador sencillo INSTRUCCIONES El usuario le dice al ordenador (procesador) las operaciones a realizar y su secuencia mediante un programa, el cual consiste en una lista de instrucciones que especifica las operaciones, los operandos y en qué orden se van procesando. Las instrucciones del programa y los datos se almacenan en memoria RAM, ya sea en chips separados (arquitectura Harvard) o en el mismo chip (arquitectura Von-Neumann). La unidad de control lee una instrucción de la memoria, la decodifica, y después la lleva a cabo ejecutando una o varias microoperaciones sobre la unidad de proceso (ruta de datos). Internamente, la instrucción es una colección de bits que indica al procesador la operación a realizar, dónde se encuentran los operandos, dónde guardar el resultado de la operación, y en ocasiones, dónde se encuentra la siguiente instrucción a ejecutar. El código de operación (opcode) es un código de bits en la instrucción que especifica el tipo de operación que se va a realizar. A la colección de todas las instrucciones que puede ejecutar un procesador se le denomina conjunto de instrucciones, y a la completa descripción de dicho conjunto, arquitectura del conjunto de instrucciones. La instrucción especifica también dónde encontrar los operandos y en qué lugar colocar el resultado de la operación (registros en la ruta de datos o posiciones en la memoria). Esta especificación puede ser explícita, si la instrucción incluye bits que identifican la localización de los operandos y/o resultado, o implícita, si dicha localización está incluida en la propia definición de la instrucción.

5 FORMATO DE LA INSTRUCCIÓN
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.2.- Arquitectura de un ordenador sencillo FORMATO DE LA INSTRUCCIÓN El formato de la instrucción normalmente se especifica mediante un rectángulo que simboliza sus bits tal y como aparecen en las posiciones de memoria o en registros de control. Consideraremos un procesador con un conjunto de 128 instrucciones, como máximo, y que dispone de 8 registros (R0 a R7) de 16 bits en su ruta de datos. La memoria tiene una capacidad de 216×16 bits. Secuenciador (PC, 16 bits) Ruta de datos 8×16 bits Memoria de Programa 215×16 bits Memoria de Datos El secuenciador consiste en un registro, llamado contador de programa PC, cuyo contenido apunta a la posición de memoria donde se encuentra la instrucción a ejecutar. Opcode Registro de destino (DR) Registro fuente A (SA) Registro fuente B (SB) Ejemplos de formato de instrucción: Operando (OP) Dirección msb (AD) Dirección lsb (AD) a) Registro: b) Inmediato: c) Salto:

6 FORMATO DE LA INSTRUCCIÓN
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.2.- Arquitectura de un ordenador sencillo FORMATO DE LA INSTRUCCIÓN EJEMPLOS a) Registro: Opcode Registro de destino (DR) Registro fuente A (SA) Registro fuente B (SB) b) Inmediato: Opcode Registro de destino (DR) Registro fuente A (SA) Operando (OP) c) Salto: Opcode Dirección msb (AD) Registro fuente A (SA) Dirección lsb (AD) Suponemos que R4=70 y R5=80. Formato instrucción Dirección (decimal) Contenido de la memoria M Opcode (decimal) Otros campos especificados Operación Registro (Restar) DR:1, SA:2, SB:3 R1R2-R3 Registro (Guardar) SA:4, SB:5 M[R4]R5 Inmediato (Sumar Inmediato) DR:2, SA:7, OP:3 R2R7+3 Salto (Salto si cero) AD:44, SA:6 Si R6=0, PCPC-20 M[70]=192. Después de la ejecución de la instrucción en 35, M[70]=80.

7 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

8 RUTA DE DATOS TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.3.- Unidad Aritmético-Lógica y Desplazador RUTA DE DATOS Los sistemas algorítmicos programables emplean un cierto número de registros de almacenamiento conjuntamente con una unidad funcional. Load Enable A select B select Dirección A Dirección B Dato D Una microoperación consiste en aplicar a la unidad funcional los contenidos de dos registros fuente, hacer una operación, y almacenar el resultado en un registro destino (en un solo ciclo de reloj): En el bus A se puede leer el contenido de cualquier registro. - En el bus B se puede leer el contenido de un registro o una palabra externa Constant in. - BANCO DE REGISTROS Con G se selecciona la operación a realizar en la ALU. Con H un desplazamiento en el desplazador. - Dato A Dato B En el bus D se puede leer la salida de la ALU, la del desplazador, o un dato externo Data in. - Con el decodificador se selecciona el registro de destino. - Despla- zador ALU Bits de estado de la ALU: V: Desbordamiento. C: Acarreo. N: Negativo. Z: Cero. - UNIDAD FUNCIONAL

9 UNIDAD ARITMÉTICO-LÓGICA
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador UNIDAD ARITMÉTICO-LÓGICA Selección de operación Dato A Operación Función Transfiere A Incrementa A Suma A+B Suma A+B+1 Suma A con el complemento a 1 de B Resta A-B Decrementa A AND de A y B OR de A y B XOR de A y B NOT de A (complemento a 1 de A) Salida G Dato B ALU Acarreo de entrada Acarreo de salida X Selección de operación Selección de modo Características: - S2 es un bit que permite seleccionar entre operaciones aritméticas (S2=0) o lógicas (S2=1). - Cin, S1 y S0 permiten seleccionar entre 8 operaciones aritméticas distintas. - Cin y S0 permiten seleccionar entre 4 operaciones lógicas distintas. Diseñaremos primeramente la parte aritmética, después la parte lógica, y finalmente las combinaremos en un solo circuito.

10 UNIDAD ARITMÉTICO-LÓGICA
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador UNIDAD ARITMÉTICO-LÓGICA BLOQUE ARITMÉTICO Teniendo en cuenta las operaciones a realizar, el diseño del bloque aritmético se puede plantear: Selección Entr. Operación Todo 0 Todo 1 Sumador n bits Lógica de entrada de B Cin S1 S0 A0 B0 A1 B1 A2 B2 A3 B3 G0 C0 G1 C1 G2 C2 G3 C3 Cout Σ Entradas Salida

11 UNIDAD ARITMÉTICO-LÓGICA BLOQUE LÓGICO Y CIRCUITO FINAL
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador UNIDAD ARITMÉTICO-LÓGICA BLOQUE LÓGICO Y CIRCUITO FINAL La operaciones lógicas se hacen bit a bit, con lo que el diseño se puede plantear a partir de un simple multiplexor para cada bit de salida: a Salida Operación Los bloques aritmético y lógico se pueden combinar utilizando otro multiplexor: a Gi Etapa básica del bloque aritmético Etapa básica del bloque lógico

12 DESPLAZADOR TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.3.- Unidad Aritmético-Lógica y Desplazador DESPLAZADOR B Plantearemos el diseño como circuito combinacional para que el desplazamiento se pueda hacer en un solo ciclo de reloj. n 2 Características: S Desplazador IL Con S=00 H=B, con S=01 se desplaza un bit a la derecha, y con S=10 se desplaza un bit a la izquierda. - IR IR es un bit que se introduce por la izquierda en un desplazamiento a la derecha. - n H IL es un bit que se introduce por la derecha en un desplazamiento a la izquierda. -

13 DESPLAZADOR DE BARRIL TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.3.- Unidad Aritmético-Lógica y Desplazador DESPLAZADOR DE BARRIL En ocasiones resulta útil poder desplazar un número arbitrario de bits en un solo ciclo de reloj. Un desplazador de barril es un circuito combinacional que desplaza (o rota) los bits de la palabra de entrada un cierto número de posiciones especificado mediante un valor binario en unas líneas de selección. Ejemplo: Desplazador de barril de 4 bits (rotación a la izquierda). Selec. Salidas S1 S0 Y3 Y2 Y1 Y0 Operación 0 0 D3 D2 D1 D0 No hay rotación 0 1 D2 D1 D0 D3 Rota un bit 1 0 D1 D0 D3 D2 Rota dos bits 1 1 D0 D3 D2 D1 Rota tres bits

14 REPRESENTACIÓN DE LA RUTA DE DATOS
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador REPRESENTACIÓN DE LA RUTA DE DATOS Load Enable A select B select Dirección A Dirección B Dato D Dato D Dirección D Banco de registros 2m×n Dirección A Dirección B BANCO DE REGISTROS Dato A Dato B Comentar que en general el banco de registros puede tener muchos más de 4 registros, y que normalmente suele ser un tipo especial de memoria rápida. En este caso m=2. Para 32 registros m sería 5. Unidad funcional Despla- zador ALU UNIDAD FUNCIONAL

15 REPRESENTACIÓN DE LA RUTA DE DATOS
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador REPRESENTACIÓN DE LA RUTA DE DATOS Correspondencia entre el código FS (4 bits) y las entradas MF Select (1 bit), G Select (4 bits) y H Select (2 bits): 1 Microoperación Se tiene que: MF=F3F2, G3=F3, G2=F2, G1=F1, G0=F0, H1=F1 y H0=F0.

16 LA PALABRA DE CONTROL TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.3.- Unidad Aritmético-Lógica y Desplazador LA PALABRA DE CONTROL Particularizando para un banco de 8 regitros, se tiene que la palabra de control es de 16 bits: Dato D Write Dirección D Banco de registros 8×n Dirección A Dirección B Dato A Dato B DA,AA,BA MB FS MD RW Reg. Cód. Fuente Cód. Función Cód. Fuente Cód. Escribir Cód. R Registro F=A 0000 Función 0 No R Const. in 1 F=A Data in 1 Sí R F=A+B 0010 R F=A+B R F=A+B 0100 R F=A+B R F=A R F=A 0111 F=AB 1000 F=AB 1001 F=AB 1010 F=A 1011 F=B 1100 F=sr B 1101 F=sl B 1110 Unidad funcional

17 LA PALABRA DE CONTROL TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.3.- Unidad Aritmético-Lógica y Desplazador LA PALABRA DE CONTROL Ejemplos de microoperaciones en la ruta de datos, usando notación simbólica: Micro-operación Registro Función Registro Función Función Función Registro Registro Función Palabras de control corrrespondientes a los ejemplos anteriores: Micro-operación Para poner a 0 el registro 5 se hace la operación XOR.

18 TEMPORIZACIÓN DE SEÑALES
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.3.- Unidad Aritmético-Lógica y Desplazador TEMPORIZACIÓN DE SEÑALES Clock Microoperación 1 2 3 4 5 6 7 Dato D Dirección D Dirección A Dirección B Banco de registros 8×n Unidad funcional Write Dato A Dato B Se supone que las microoperaciones de la tabla se ejecutan secuencialemente, que el número de bits por registro es 8, y que su contenido inicial coincide con el número del registro. Para representar los resultados se usa una notación binaria sin signo (-1 es 255). Status_bits se da como un valor conjunto de los bits VCNZ, en este orden (en los ciclos 5 y 6 su valor no tiene sentido por no usarse la ALU).

19 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

20 Decodificador de instrucciones
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard En la arquitectura Harvard, se tienen dos memorias independientes, una para las instrucciones del programa y otra para los datos. Decodificador de instrucciones Memoria de Programa Dirección Instrucción Control PC Registros Unidad funcional Memoria de Datos Entrada Salida de salto RUTA DE DATOS El PC direcciona la memoria de programa, en cuyas salidas aparece la instrucción. El decodificador de instrucciones la transforma en las señales necesarias para la ruta de datos y el control de programa. Se ejecuta una instrucción en cada ciclo de reloj. A partir de IR(2:0), “Zero fill” rellena con ceros a la izquierda para obtener “Constant in”. A partir de IR(8:6)ǁIR(2:0), “Extend” genera el desplazamiento para los saltos condicionales. La ejecución del programa se controla mediante el combinacional “Control PC”: PL 1 BC XXX 000 001 010 011 100 101 110 111 JB X Bit de estado C N V Z NOT C NOT N NOT V NOT Z PC Incremento: PC  PC + 1 Si el bit de condición es 1, salto a la dirección obtenida con extensión de signo: PC  PC + se AD Si el bit de condición es 0, incremento: PC  PC + 1 Salto incondicional: PC  R[SA]

21 DECODIFICADOR DE INSTRUCCIONES
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard DECODIFICADOR DE INSTRUCCIONES Transforma la instrucción del programa en la palabra de control: 2 - 0 3 4 5 6 7 11 - 8 12 BC Ruta de datos Control PC El tipo de instrucción viene definido por los bits 13, 14 y 15 de Opcode. El resto de los bits (9 a 12) determina la operación de la unidad funcional (FS) salvo en las de salto condicional, que determinan el bit que se tiene en cuenta para las bifurcaciones (BC): Bits Opcode Tipo de instrucción Operaciones con la unidad funcional y registros Lectura de memoria Escritura en memoria Operaciones con la unidad funcional y “constant in” Bifurcación condicional Salto Bits de la palabra de control MB 1 X MD RW MW PL JB

22 DECODIFICADOR DE INSTRUCCIONES
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard DECODIFICADOR DE INSTRUCCIONES 4 4 12 11 - 8 7 6 5 4 3 2 - 0 BC Se hace el producto lógico de FS con PL para que en las instrucciones de salto, el código de operación sea FS=0000, y así la unidad funcional simplemente transfiera el dato A y los bits de estado puedan ser evaluados.

23 EJEMPLOS DE INSTRUCCIONES
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard EJEMPLOS DE INSTRUCCIONES Nemó- nico MOV A INC ADD SUB DEC AND OR XOR NOT MOV B SHR SHL LDI ADI LD ST BRZ BRN JMP Instrucción Mueve A Incremento Suma Resta Decremento AND OR XOR NOT Mueve B Desp. derecha Desp. izquierda Carga inmediata Suma inmediata Carga Almacena Salto si cero Salto si negativo Salto Opcode Descripción R[DR]  R[SA] * R[DR]  R[SA] + 1 * R[DR]  R[SA] + R[SB] * R[DR]  R[SA] – R[SB] * R[DR]  R[SA] – 1 * R[DR]  R[SA]  R[SB] * R[DR]  R[SA]  R[SB] * R[DR]  R[SA]  R[SB] * R[DR]  R[SB] * R[DR]  sr R[SB] * R[DR]  sl R[SB] * R[DR]  zf OP * R[DR]  R[SA] + zf OP * R[DR]  M[SA] * M[SA]  R[SB] * Si R[SA]=0: PC  PC + se AD Si R[SA]≠0: PC  PC + 1 Si R[SA]<0: PC  PC + se AD Si R[SA]≥0: PC  PC + 1 PC  R[SA] MB 1 FS 0000 0001 0010 0101 0110 1000 1001 1010 1011 1100 1101 1110 MD 1 RW 1 MW 1 PL 1 JB 1 * Para todas estas instrucciones, PCPC+1 también se ejecuta para apuntar a la siguiente instrucción en memoria.

24 EJEMPLO DE PROGRAMA TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard EJEMPLO DE PROGRAMA El siguiente programa realiza el cálculo 83-(2+3). Se supone que inicialmente el registro R3 contiene el valor 248, al posición 248 de la memoria de datos contiene un 2, la posición 249 guarda el valor 83 y el resultado se almacena en la posición 250: LD R1, R3 Carga en R1 el valor contenido en la posición de memoria 248 (R1=2). ADI R1, R1, 3 Suma 3 a R1 (R1=5). NOT R1, R1 Complementa bit a bit R1. INC R1, R1 Incrementa el contenido de R1 (R1=-5). INC R3, R3 Incrementa el contenido de R3 (R3=249). LD R2, R3 Carga en R2 el valor contenido en la posición de memoria 249 (R2=83). ADD R2, R2, R1 Suma el contenido de R1 con el contenido de R2 (R2=78). INC R3, R3 Incrementa el contenido de R3 (R3=250). ST R3, R2 Almacena el contenido de R2 en la posición 250 de la memoria (M[250]=78).

25 ARQUITECTURA DE CICLO SENCILLO
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard ARQUITECTURA DE CICLO SENCILLO LIMITACIONES Aunque en algunos casos la estrategia de temporización y control del procesador de ciclo sencillo estudiado puede resultar útil, posee también una serie de inconvenientes: Tmin = 17 ns  Fmax = 59 MHz Ejemplo: Memoria de programa Registro (lectura) Unidad Funcional o Memoria de datos (escritura) PC MUX B MUX D No se pueden llevar a cabo instrucciones complejas. Por ejemplo, una instrucción para multiplicar usando el algoritmo de suma y desplazamiento requiere más de un ciclo de reloj, dada la ruta de datos vista. - No se puede utilizar la misma memoria para almacenar datos e instrucciones. En ese caso se necesitarían al menos dos accesos a la memoria en diferentes ciclos de reloj, uno para leer la instrucción, y otro para acceder al dato requerido. - El período de reloj está limitado al máximo retardo de propagación en el sistema. - Solución: recurrir a un procesador de ciclos múltiples.

26 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

27 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann En la arquitectura Von-Neumann se usa una sola memoria para programa y datos. Implementaremos instrucciones de más de un ciclo de reloj: 6 A la memoria M se accede desde el PC para buscar las instrucciones, y a través del bus A para buscar los datos. Se necesita el MUX M. - Para mantener un dato durante varios ciclos, se usa un registro temporal R8 accesible con TA, TB y TD en 1. - Banco de Registros 9×16 TD ǁ DR TA ǁ SA Para mantener la instrucción durante varios ciclos se almacena en el registro de instrucción IR. - 7 8 PC puede ser incrementado o cargado con PC + se AD para las bifurcaciones. - DR, SA y SB van directamente al banco de registros. - Memoria de Control 256×27 4 Entrada Dirección Las microinstrucciones se programan en una memoria ROM direccionada por el registro CAR. CAR se incrementa o se carga en función del MUX S. Con MUX C se selecciona si la carga se hace con el Opcode más un bit 0 a la izquierda, o con la palabra NA de 8 bits. - Unidad funcional Memoria M Salida Controles para la secuenciación Controles para la ruta de datos CONTROL RUTA DE DATOS

28 MICROINSTRUCCIONES TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROINSTRUCCIONES Formato de la microinstrucción: 15 14 13 12 11 10 9 8 3 2 1 NA MS M C I L P I P L T D T A T B M B FS M D R W M M W Terminales de control para la ruta de datos: Function F = A F = A+1 F = A+B F = A+B+1 F = A-1 F = AB F = AB F = AB F = B F = sr A F = sl A Code 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 TD Select DR R8 TA SA TB SB MB Register Constant 1 MD FnUt Data RW No write (NW) Write (WR) MM Address (MA) PC MW FS He cambiado en la unidad funcional que sea el operando del bus A el que pase al desplazador en vez del del bus B (para poder hacer la instrucción SRM, que utiliza un campo de operando directo que está en SB).

29 MICROINSTRUCCIONES TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROINSTRUCCIONES Formato de la microinstrucción: NA MS M C I L P T D A B FS R W 1 2 3 8 9 10 11 12 13 14 15 Terminales de control para la secuenciación de la unidad de control:

30 MICROPROGRAMACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES …
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROPROGRAMACIÓN Los microprogramas suministran la información necesaria en la memoria de control para buscar (fetch) y ejecutar (execute) las instrucciones: IF IR  M[PC] PC  PC + 1 ADI EX0 R[DR]  R[SA] + zf IR[2:0] LD R[DR]  M[R[SA]] ST M[R[SA]]  R[SB] INC El registro IR se carga con la instrucción direccionada en la memoria por el PC en el flanco de reloj que hace salir al controlador del estado IF. El código asociado a cada estado es el contenido del registro CAR, que junto con el contenido del registro IR determinan el estado de la unidad de control. Hablar también de la temporización en comparación con la de ciclo sencillo. Opcode R[DR]  R[SA] + 1 NOT R[DR]  R[SA] ADD R[DR]  R[SA] + R[SB]

31 MICROPROGRAMACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROPROGRAMACIÓN Microprograma simbólico para la búsqueda y la ejecución de las seis instrucciones: Microprograma en binario para la búsqueda y la ejecución de las seis instrucciones: Comentar que instrucciones como SUB, AND, OR, XOR, serían exactamente iguales que la ADD, sólo habría que cambiar la FS por la que corresponda. 0000 0010 0001 1011

32 MICROPROGRAMACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES … …
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROPROGRAMACIÓN Veremos ahora dos ejemplos de instrucciones que no son posibles en el procesador de ciclo sencillo. La primera es la de carga indirecta de registro (LRI): IF IR  M[PC] PC  PC + 1 EX0 LRI1 R8  M[R[SA]] Opcode Comparar con la temporización que sería necesaria para realizar esta misma operación con varias instrucciones. LRI2 R[DR]  M[R8] LRI requiere 4 ciclos de reloj. Hacer lo mismo sin ella requeriría 2 instrucciones LD, es decir, 6 ciclos de reloj. Por tanto, LRI implica una mejora en cuanto al tiempo de ejecución y espacio en memoria.

33 MICROPROGRAMACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES … …
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROPROGRAMACIÓN El segundo ejemplo es un desplazamiento múltiple a la derecha (SRM), en el que se toma la palabra contenida en R[SA], se desplaza a la derecha un número s de bits dado en el campo OP (IR[2:0]), y el resultado queda almacenado en R[DR]: IF IR  M[PC] PC  PC + 1 EX0 SRM1 R8  zf IR[2:0] 1 Z SRM2 En R8 se almacena el número de veces que hay que desplazar. Hay ahorro en tiempo de ejecución cuando s=4, 5, 6 o 7. Si se quiere que el resultado quede almacenado en el propio registro SA, basta con llamar la instrucción con DR=SA. R[DR]  sr R[SA] Opcode SRM3 R8  R8 - 1 SRM requiere 2s+3 ciclos de reloj. Hacer lo mismo a partir de desplazamientos individuales requeriría 3s ciclos. Por tanto, SRM implica una mejora de s-3 ciclos en cuanto al tiempo de ejecución, aparte de un considerable ahorro de espacio en memoria.

34 MICROPROGRAMACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann MICROPROGRAMACIÓN Microprogramas simbólico y binario para las operaciones LRI y SRM: NXT ADD EX0 IF SRM3 SRM2 Address IF EX0 LRI1 LRI2 SRM1 SRM2 SRM3 MS CNT NXT BZ BNZ MC OPC NXA NXANXA IL LDI NLI PI INP NLP PL NLP TD R8 DR TA SA R8 TB MB Constant FS F = A F = sr A F = A-1 MD Data FnUt RW NW WR MM PC MA MW NW NXT ADD 193 000 192 191 009 Address 192 193 006 007 008 009 191 MS 000 001 100 111 MC 1 IL 1 PI 1 PL TD 1 TA 1 TB MB 1 FS 0000 1101 0110 MD 1 RW 1 MM 1 MW

35 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.1.- Introducción: Sistemas digitales de proceso. 2.2.- Arquitectura de un ordenador sencillo. 2.3.- Unidad Aritmético-Lógica y Desplazador. 2.4.- Control cableado de ciclo sencillo – Arquitectura Harvard. 2.5.- Control microprogramado de ciclos múltiples – Arquitectura Von-Neumann. 2.6.- Ruta de datos y control en canalización (pipeline).

36 PLANTEAMIENTO DEL PROBLEMA
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.6.- Ruta de datos y control en canalización (pipeline) PLANTEAMIENTO DEL PROBLEMA Supongamos un circuito digital complejo insertado en un sistema de procesamiento de datos, caracterizado por un tiempo de cálculo TCALC: m p CLK RI RO IN OUT I O CIRCUITO DIGITAL m p Despreciando los tiempos de preparación y de retardo de los registros frente a TCALC, el período mínimo TMIN de la señal de reloj CLK tiene que verificar: TMIN = TCALC Por tanto, la frecuencia máxima de funcionamiento del sistema será: FMAX = 1/TMIN = 1/TCALC ¿Qué hacer si como especificación de diseño se nos pide que la frecuencia de funcionamiento del sistema sea mayor que FMAX?

37 PARALELISMO TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.6.- Ruta de datos y control en canalización (pipeline) PARALELISMO Si se desea multiplicar por N la frecuencia de funcionamiento, se conectarán en paralelo N circuitos. Por ejemplo, si N=3: SINCRONIZACIÓN CLK CLK1 CLK2 CLK3 CLK1 I1 O1 CIRCUITO DIGITAL RI1 RO1 p m m p p CLK2 I2 O2 CIRCUITO DIGITAL OUT IN RI2 RO2 p p m m m p p CLK3 Sin considerar las puertas AND y OR y el circuito de sincronización, el coste se ha multiplicado por 3. I3 O3 CIRCUITO DIGITAL RI3 RO3 p m m p p

38 TEMPORIZACIÓN DE LAS SEÑALES
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.6.- Ruta de datos y control en canalización (pipeline) TEMPORIZACIÓN DE LAS SEÑALES CLK IN D1 D2 D3 D4 D5 D6 CLK1 CLK2 CLK3 I1 D1 D4 O1 TCALC R1 TCALC R4 I2 D2 D5 O2 R2 I3 D3 D6 O3 R3 OUT R1 R2 R3 R4 TMIN = TCALC/3  La frecuencia máxima de funcionamiento se multiplica por 3

39 CANALIZACIÓN, SEGMENTACIÓN O “PIPELINE”
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.6.- Ruta de datos y control en canalización (pipeline) CANALIZACIÓN, SEGMENTACIÓN O “PIPELINE” Esta técnica se puede utilizar cuando el sistema digital admite una subdivisión en circuitos más sencillos conectados en cascada: CIRCUITO DIGITAL 1 CIRCUITO DIGITAL 2 CIRCUITO DIGITAL K IN RI RO OUT m m p p CLK Si el tiempo de cálculo total es TCALC  TMIN = TCALC  FMAX = 1/TCALC CIRCUITO DIGITAL 1 RI m IN OUT R1 DIGITAL 2 R2 RK-1 DIGITAL K RO p CLK Insertaremos registros entre cada uno de los subcircuitos para controlar el flujo de datos: Cada subcircuito puede procesar resultados parciales que provienen de datos de origen distintos en el mismo ciclo de la señal CLK. TMIN vendrá dado por el subcircuito más lento. En el caso de que todos tengan el mismo tiempo de cálculo, igual a TCALC/K, entonces: TMIN = TCALC/K  FMAX = K/TCALC La frecuencia de funcionamiento se ha multiplicado por K, mientras que el coste sólo ha aumentado ligeramente por la inclusión de los registros R1 a RK-1.

40 REGISTRO ACUMULADOR   TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.6.- Ruta de datos y control en canalización (pipeline) REGISTRO ACUMULADOR Como ejemplo, veremos la aplicación de la técnica de segmentación para el caso de un registro acumulador de 4 bits. Dicho registro realiza la operación Acc = Acc + B + CIN. B3 B2 B1 B0 X Y X Y X Y X Y CIN CI CO CI CO CI CO CI CO S S S S D D D D D FF FF FF FF FF Q Q Q Q Q COUT Acc3 Acc2 Acc1 Acc0 Coste = 4×Coste( ) + 5×Coste(FF) Características: Tiempo de cálculo = 4×Retardo( ) + Setup(FF) + Retardo(FF)

41 REGISTRO ACUMULADOR SEGMENTADO
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.6.- Ruta de datos y control en canalización (pipeline) REGISTRO ACUMULADOR SEGMENTADO B3 D FF Q D FF Q D FF Q B2 D FF Q D FF Q B1 D FF Q B0 X Y X Y X Y X Y CIN CI CO D FF Q CI CO D FF Q CI CO D FF Q CI CO S S S S D D D D D FF FF FF FF FF Q Q Q Q Q COUT Acc3 D FF Q Acc2 D FF Q D FF Q Acc1 D FF Q D FF Q D FF Q Acc0 Tiempo de cálculo=Retardo( )+Setup(FF)+Retardo(FF) Características: Coste=4×Coste( )+20×Coste(FF)

42 TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.6.- Ruta de datos y control en canalización (pipeline) Como ejemplo de procesador segmentado, volvemos a la arquitectura de ciclo sencillo: Memoria de Programa Dirección Instrucción Decodificador de instrucciones Unidad funcional Memoria de Datos Salida Registros PC IR D DA Entrada RUTA DE DATOS A B ETAPA 4 ETAPA 3 ETAPA 2 ETAPA 1 Decodificador de instrucciones Memoria de Programa Dirección Instrucción Control PC Registros Unidad funcional Memoria de Datos Entrada Salida de salto RUTA DE DATOS DOF: decode and operand fetch. WB: write-back. Ahora una instrucción necesita 4 ciclos de reloj para su ejecución. Etapas: 1.- Búsqueda de la instrucción (IF). 2.- Decodificación y búsqueda del dato (DOF). 3.- Ejecución (EX). 4.- Escritura del resultado (WB).

43 Decodificador de instrucciones
TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES 2.6.- Ruta de datos y control en canalización (pipeline) TEMPORIZACIÓN PC 5 ns 4 ns Volviendo a nuestro ejemplo: Dirección ETAPA 1 Memoria de Programa Memoria de programa Registro (lectura) Unidad Funcional o Memoria de datos (escritura) PC MUX B MUX D Instrucción IR Registros A B Tmin = 17 ns Fmax = 59 MHz ETAPA 2 Decodificador de instrucciones Dirección Unidad funcional ETAPA 3 Memoria de Datos Salida En la arquitectura segmentada, una instrucción necesita 4 ciclos de reloj, siendo 5 ns el período mínimo. Por tanto, el procesador segmentado necesita 20 ns para ejecutar una instrucción. Entrada Dirección Memoria de Datos ETAPA 4 D DA RUTA DE DATOS Registros

44 TEMPORIZACIÓN TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES
2.6.- Ruta de datos y control en canalización (pipeline) TEMPORIZACIÓN La ventaja del uso de la arquitectura segmentada se obtiene cuando se ejecuta más de una instrucción. Ejemplo: Ciclo de reloj 1 LDI R1, 1 2 LDI R2, 2 3 LDI R3, 3 4 LDI R4, 4 5 LDI R5, 5 6 LDI R6, 6 7 LDI R7, 7 Llenado Instrucción Pipeline lleno Vaciado Se necesitan 10 ciclos de reloj para ejecutar las 7 instrucciones. Cuando el pipeline está totalmente lleno, se ejecuta una instrucción en cada ciclo de reloj: Rendimiento = = = 3.4 Tiempo de ejecución en la arquitectura sin segmentar Tiempo de ejecución en la arquitectura segmentada 17 ns 5 ns Aunque el pipeline tiene 4 etapas, el tiempo de cálculo no se divide exactamente por 4 debido a que los retardos no son exactamente iguales en cada etapa. El rendimiento del pipeline baja cuando se producen saltos y bifurcaciones en el programa, debido a que en esos casos hay que vaciar el pipeline y volverlo a llenar.


Descargar ppt "TEMA 2: SISTEMAS ALGORÍTMICOS PROGRAMABLES"

Presentaciones similares


Anuncios Google