Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Unidades principales en la implementación Data Register # PC Address Instruction Instruction memory Registers Register # ALU Address Data memory
Author:  Alba Soler Navarro

1 downloads 47 Views 702KB Size

Recommend Stories


SENSE Servidor Unidades de Operación y Control
SENSE Servidor Unidades de Operación y Control DESCRIPCIÓN GENERAL Con el Sistema Abierto de Operación y Control SENSE se pueden configurar diferente

Tipos de datos estructurados
Tipos de datos estructurados Hasta ahora hemos empleado siempre tipos de datos simples. Hemos definido atributos y dominios de tipo Numeric, de tipo

Unidades de almacenamiento de datos
Hardware. Disco duro. Discos removibles. Capacidades. Copias de seguridad. Sistema de archivos. Sistemas RAID

Story Transcript

Unidades principales en la implementación Data Register # PC

Address

Instruction

Instruction memory

Registers Register #

ALU

Address Data memory

Register #

El procesador: camino de datos y control

Data

„

IEC – UTM Moisés E. Ramírez G.

„

1

Introducción „

„ „

„

„

Instrucciones de acceso a memoria: lw, sw Instrucciones aritmético-lógicas: add, sub, slt, and, or Brincos: BEQ, J

„

Para mantener consistencia, y no entrar en detalles de los valores de voltaje, una señal acertada indicará un 1 lógico.

„

Cualquier valor que se almacene, será guardado durante el flanco de reloj.

„

En la implementación, cada instrucción inicia su ejecución sobre el flanco de reloj y la completa al siguiente flanco de reloj. El inconveniente es que todas las instrucciones están limitadas a la instrucción que ocupa más tiempo.

Pasos generales „ „ „ „

Elementos que operan sobre datos (combinacionales) Elementos que contienen estados (secuenciales)3

Convenciones

Se diseñará una implementación que incluya las instrucciones más importantes. „

Tipos de elementos:

Enviar el contador del programa (PC) a la memoria que contiene el código y atrapar la instrucción. Leer uno o dos registros usando los campos de la instrucción para seleccionar los registros a leer. Uso de la ALU para el cálculo de una dirección, ejecución de una operación aritmética o lógica o comparaciones. Acceso a la memoria de datos para lectura o escritura. 2

4

1

Elementos a usar para la búsqueda y captura de la instrucción a ejecutar (fetch) „

La memoria de instrucciones almacenará las instrucciones a ejecutar.

„

El program counter, indica la instrucción que se está ejecutando

„

Un sumador es necesario para calcular la siguiente instrucción que se ejecutará (sumar 4 al PC).

Las entradas al archivo de registros deben incluir los números de los registros a leer y el número de registro a escribir, al igual que el dato que se escribirá en el registro especificado.

„

Para calcular la dirección en memoria a accesar, se suma el contenido del registro base con el desplazamiento de 16 bits.

„

La memoria de datos permitirá lecturas (cargas) y escrituras (almacenamientos).

„

El módulo de extensión de signo permitirá convertir una palabra de 16 a 32 bits. La constante es un valor expresado en complemento a 2 de esta manera permite acceder a direcciones anteriores o posteriores al registro base.

5

Archivo de registros (register file) „

Cargas y almacenamientos

5 Register numbers

5 5

Data

3

Read register 1 Read register 2 Registers Write register Write data

ALUcontrol

Read data 1 Data

Zero ALU ALU result

Read data 2

7

Camino de datos para cargas y almacenamientos „

Se accesa a los registros, posteriormente se calcula la dirección de memoria ya sea para leer o escribir y posteriormente, en el caso de una carga, se concluye con la escritura del registro.

RegWrite a. Registers

b. ALU

6

8

2

Saltos incodicionales J

Instrucción BEQ „

„

El repertorio de instrucciones especifica que la base para el cálculo de la dirección destino es la dirección siguiente a la instrucción del brinco. Dado que en el camino de los datos dedicado a buscar y capturar la instrucción, calculamos PC + 4, este valor se usará como base para obtener el destino del salto.

„

„

Debido a que las instrucciones utilizan palabras de 32 bits, el desplazamiento debe corresponder a un desplazamiento de palabras y no de bytes. Para ello, una vez que se haya extendido en signo al campo del desplazamiento, será necesario multiplicarlo por 4, esto se consigue si se desplaza 2 lugares a la izquierda. 9

Camino de datos para BEQ

La instrucción j tiene dos campos, un campo de 6 bits que corresponde al opcode y otro de 26 bits que indica la dirección destino del salto. Para esta instrucción también deberá considerarse que las instrucciones ocupan 4 bytes, de manera que también será necesario desplazar este campo 2 bits a la izquierda. Después del desplazamiento se tendrán 28 bits, de manera que el nuevo valor del contador del programa se obtendrá concatenando los 4 bits más significativos del PC

11

Implementación „

„

10

Debe tomarse en cuenta que se trata de una implementación que ejecutará todas las instrucciones en 1 ciclo de reloj. Esto significa que los recursos en el camino de los datos no pueden ser usados mas de una vez por instrucción, de manera que cualquier elemento que se requiera mas de una vez, deberá ser duplicado. Al compartir elementos, pueden requerirse múltiples conexiones a una entrada. Para ello se utilizarán multiplexores, y será el control el que determine cual de los datos fluirá a cada entrada. 12

3

Implementación de un ciclo

Tipo R + acceso a memoria „

„

„

„

El primer operando en ambos casos es el dato escrito en el registro 1, obtenido del archivo de registros, sin embargo el segundo operando difiere para las dos instrucciones: En el caso de las instrucciones tipo-R el segundo operando es el dato escrito en el registro 2, obtenido del archivo de registros. Mientras que para los accesos a memoria, el segundo operando es una constante extendida en signo. Por lo que es necesario un multiplexor en la entrada del segundo operando de la ALU. En la entrada de datos del archivo de registros también deberá colocarse un multiplexor por medio del cual se seleccione entre el dato que viene de memoria (lw) o el resultado de la operación de la ALU

BEQ: Un multiplexor a la entrada del PC, para permitirá seleccionar entre PC + 4 y el resultado de haber sumado a PC + 4 una constante. PCSrc

Add ALU Add result

4 RegWrite Instruction [25–21] PC

Read address Instruction [31– 0] Instruction memory

Instruction [20–16]

Read register 1 Read register 2

Read data 1 Read data 2

1 M u Instruction [15–11] x 0

Write register Write data Registers

RegDst Instruction [15–0]

16

Sign 32 extend

1 M u x 0

Shift left 2

MemWrite ALUSrc 1 M u x 0

ALU control

Zero ALU ALU result

MemtoReg Address

Read data

1 M u x 0

Write Data data memory MemRead

Instruction [5– 0]

13

15 ALUOp

Camino de datos para instrucciones tipo R y de acceso a memoria

Control de la ALU „

„

„ 14

Para cargas y almacenamientos se requiere que la ALU realice una suma para calcular la dirección de la localidad de memoria a la que se realizará el acceso. Para instrucciones aritmético lógicas la ALU realizará una suma, resta, AND, OR o ajuste sobre menor que, dependiendo del campo de función. Para el salto sobre igual la ALU necesita realizar una resta. 16

4

Diseño del control de la ALU

Campos en los tipos de instrucciones „ „ „

„

Se usan dos formatos de instrucciones distintos Las instrucciones tipo R usan 3 registros como parámetros (fuentes: rs, rt; destino: rd) Las instrucciones de salto sobre igual y cargas y almacenamientos usan 2 registros rs y rt que serán evaluados para conocer si son iguales. En las cargas (35) y almacenamientos (43), el registro base rs, es el registro que se sumará a la dirección de 16 bits.

17

Tabla de verdad para controlar las operaciones de la ALU

19

Diseño del control principal „ „

„ „

„

Opcode bits 31-26 -> op[5-0] En instrucciones tipo R, saltos sobre igual y almacenamientos, los registros a ser leídos: rs (25-21) y rt (20-16) El registro base para cargas y almacenamientos es rs (25-21) Los 16 bits de desplazamiento para brincos sobre igual, cargas y almacenamientos siempre están en los bits 15-0 El registro destino está en uno de dos lugares: „ „

„

En caso de requerir más funciones, serán necesarias nuevas ecuaciones. Ya que habrá nuevas combinaciones. 18

instrucciones tipo R en rd (15-11) Cargas en rt (20-16)

Por lo tanto es necesario un multiplexor para seleccionar el campo que corresponda al registro que se escribirá de acuerdo a la operación. 20

5

Cada una de las señales de control

Camino de datos con las señales de control identificadas

21

23

El control principal

Señales del control principal

22

24

6

Control para la implementación de un solo ciclo „

„

„

La unidad de control ajustará el valor de todas las señales dependiendo del código de operación, con excepción de PCSrc, ya que depende del resultado de la comparación en BEQ. Una de las entradas de la AND en PCSrc indica que se está realizando la operación de BEQ y la otra provendrá de la bandera de cero proveniente de la comparación dentro de la ALU| En la siguiente tabla se muestra las señales de control que deberán colocarse en función del Opcode

25

27

Implementación del control

26

28

7

Implementación de saltos incondicionales „ „

„

Problemas en la implementación de un solo ciclo

J es un tipo de salto incondicional, ello implica que el salto siempre se realizará. La instrucción contiene una dirección de 26 bits que se extenderá a 28 bits (palabras en vez de bytes). Al realizarse un salto, la nueva dirección estará formada de: „ „

„ „ „

No se usa una implementación de un solo ciclo porque no es eficiente. Una implementación de un solo ciclo tiene CPI de 1 (ciclos por instrucción). Todos los ciclos deberán ser del mismo tamaño, están determinados por la ruta o la instrucción que ocupa mayor cantidad de elementos en la máquina, la carga: „ „

Los 4 bits más significativos de PC+4, 28 bits (26 + 2 bits) del campo inmediato de la instrucción de salto.

„ „ „

„

Memoria de instrucciones Archivo de registros ALU Memoria de datos Archivo de registros

Diferentes tipos de instrucciones se podrían ejecutar en menos tiempo.

29

31

Implementación multiciclos „

Cada instrucción se dividirá en pasos: „ „ „

„ „ „ „

30

lectura de la instrucción, decodificación, lectura de registros, etc.

Cada paso se realizará en un ciclo de reloj, todos los ciclos de la misma longitud. Se requerirán multiples ciclos para cada instrucción. El número de ciclos dependerá del tipo de instrucción. Una unidad funcional puede ser usada más de una vez por instrucción, en diferentes ciclos. 32

8

Ventajas de una implementación multiciclos „ „ „ „ „

„

Consideraciones:

Cada instrucción puede tomar diferente número de ciclos de reloj. Se pueden compartir unidades funcionales dentro de la ejecución de una instrucción. Se puede usar una sola memoria para datos e instrucciones. Se puede usar una sola ALU Se agregan registros después de cada unidad funcional, para que éstos mantengan la salida hasta que su valor sea usado en un ciclo de reloj sucesivo. Estos registros no son visibles al programador. La colocación de los registros temporales depende de dos factores: „ „

Se puede notar que existen: „ „

„ „

34

El archivo de registros puede realizar a la vez dos lecturas o una escritura. La memoria puede realizar una lectura o una escritura. La ALU puede realizar una operación

Cada uno de estos tres elementos genera un resultado que debe salvarse para las próximas etapas. Se agregan a la implementación: „

Registros temporales para respaldar la salida de la memoria: „ „

IR Instruction Register (instrucción). Este es el único registro que se mantiene durante toda la ejecución de la instrucción. MDR memory data register (dato)

Ambos registros se almacenan por separado ya que ambos pueden ser necesarios en un mismo ciclo. „ „

La salida del archivo de registros se almacenan en A y B. La salida de la ALU se almacena en ALUOut. 35

Implementación de múltiples ciclos. „

Una sola memoria (instrucciones y datos) Una sola ALU, en vez de una ALU y dos sumadores.

En cada ciclo de reloj: „

Las unidades funcionales que se requieren en cada ciclo Los datos que se requerirán en etapas posteriores. 33

Aproximación a un camino de datos de una implementación multiciclos „

„

En los recuadros se marcan los registros necesarios para la implementación de múltiples ciclos.

36

9

Camino de datos y control para la implementación de múltiples ciclos.

Multiplexor para Instrucciones o Datos „

Un multiplexor para seleccionar entre dos posibles direcciones: „ „

Dirección de una instrucciones (que proviene del PC) Dirección de un dato (que se generó como el resultado de una operación de la ALU).

37

Multiplexores que controlan las entradas de la ALU „

„

„

„ „

PC A (registro)

El segundo multiplexor „ „ „ „

„

Posibles valores que escribirán en el PC

El primer multiplexor permite seleccionar entre „

39

„

B 4 Salida de ext de signo 16->32 Dirección desplazada

Get in touch

Social

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