Publicado el 5 de Julio del 2017
678 visualizaciones desde el 5 de Julio del 2017
1,4 MB
75 paginas
Creado hace 15a (14/11/2008)
Tema 4
El procesador: camino
de datos y unidad de
control
Índice
Introducción
Estructura básica de la CPU: camino de datos y
control
El ciclo de instrucción
Diseño de un procesador monociclo
Descomposición de la ejecución en etapas
Realización multiciclo
Diseño de la unidad de control
Procesamiento de excepciones
Introducción
En este tema se estudia la Unidad Central de Procesamiento (CPU)
√ Camino de datos:
Es la sección del computador encargada de manipular y transformar los
datos procedentes de la memoria o los registros internos, para obtener los
resultados
Su labor es soportar el conjunto de operaciones que precisan las
instrucciones del repertorio que es capas de interpretar la unidad de control
√ Unidad de control:
Es la sección del computador encargada de interpretar las instrucciones del
programa y gobernar la ejecución de las mismas
La organización de los procesadores ha evolucionado con el paso
de los años, guiada por el desarrollo tecnológico y la necesidad de
obtener altas prestaciones
En este tema se analizan las ideas básicas comunes a todos los
procesadores, que sientan las bases para poder comprender los
avances en arquitectura de computadores
Introducción
El procesador es el que se encarga de ejecutar las
instrucciones especificadas por el programa.
Funciones básicas:
√ Captar instrucciones. El procesador debe leer instrucciones
de la memoria
√ Interpretar instrucciones. La instrucción debe decodificarse
para determinar qué acción es necesaria
√ Captar datos. La ejecución puede exigir leer datos de la
memoria o de un módulo de E/S
√ Procesar datos. La ejecución de una instrucción puede
exigir llevar a cabo alguna operación aritmética o lógica
√ Escribir datos. Los resultados de una ejecución pueden
tener que ser escritos en la memoria o en un módulo de E/S
Estructura básica de un procesador
El procesador se compone de
varias partes:
1. La unidad de control
2. La unidad aritmético-lógica
3. Un banco de registros
4. Otros registros internos, algunos
de los más importantes:
1. El contador de programa (PC)
2. El registro de instrucciones (IR)
Estructura básica de un procesador
Vamos a construir un camino de datos y su unidad de
control para dos realizaciones diferentes de un
subconjunto del repertorio de instrucciones del MIPS:
√ Instrucciones de acceso a memoria: lw, sw
√ Instrucciones aritmético-lógicas: add, sub, or, slt
√ Instrucción de salto condicional: beq
√ Instrucción de salto incondicional: j
Memoria deinstruccionesInstrucciónDirecciónMemoria de DatosDirecciónDatosDatosnº de registronº de registronº de registroRegistrosPCALU Estructura básica de un procesador
Metodología de sincronización
√ Las unidades funcionales se clasifican en dos tipos:
combinacionales y secuenciales
√ La metodología de sincronización define cuándo pueden leerse y
escribirse la diferentes señales
√ Asumimos sincronización por flancos
Estado 1Estado 2Ciclo de relojLógica combinatoria El ciclo de instrucción
El procesamiento que requiere una instrucción se denomina
ciclo de instrucción.
Ciclo básico de instrucción:
INICIO
Captura de
instrucción
Ciclo de captación
Ejecución de
la instrucción
Ciclo de ejecución
FIN
El ciclo de instrucción
Para el subconjunto de instrucciones MIPS, los dos primeros pasos son
idénticos:
√ Usar el contenido del PC para cargar, desde la memoria que contiene el
código, la siguiente instrucción
√ Leer uno o dos registros, utilizando para ello los campos de la instrucción
específicos para seleccionarlos
0x40000000 000000010100101101001000001000000x40000004 100101010010101000000000000000000x40000008 000100010100101111111111111110110x4000000C 000000001000010000010001000010100x40000004 PC00000001010010110100100000100000 IR0x40000000 00000001010010110100100000100000 0x40000008 000100010100101111111111111110110x4000000C 000000001000010000010001000010100x40000004100101010010101000000000000000000x40000004 PC1001010100101010000000000000000 IR0x40000000 000000010100101101001000001000000x40000004 100101010010101000000000000000000x40000008 000100010100101111111111111110110x4000000C 000000001000010000010001000010100x40000008 PC1001010100101010000000000000000 IRMemoria Procesador Diseño de un camino de datos sencillo
Procesador monociclo:
√ Comenzaremos por los elementos básicos y sus
funciones asociadas
√ Veremos los elementos necesarios para
implementarlos
√ Veremos un conjunto de instrucciones básico
√ Veremos como implementar estas instrucciones
Diseño de un camino de datos sencillo
Contador de programa:
√ Cada instrucción está en una dirección de memoria dada
√ Almacenamos la dirección en el registro PC
√ Tras procesar una instrucción avanzamos el contador hasta la
siguiente instrucción
Memoria deinstruccionesInstrucciónDirecciónPCSumador4 Diseño de un camino de datos sencillo
Operaciones tipo R:
√ Involucran tres registros: dos de lectura y uno de
escritura
√ Usan la ALU para realizar las operaciones
InstrucciónEscribirRegReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROS3Operación de la ALUCeroResultadode la ALUALU Diseño de un camino de datos sencillo
Acceso a memoria:
√ Instrucciones lw y sw
√ La dirección se indica con un registro más un
desplazamiento de 16 bits con signo
√ El desplazamiento se extiende a 32 bits
lw $t0, 8($s0)
100011
10000
01000
0000000000001000
sw $t0, 32($s0)
101011
10000
01000
0000000000100000
Diseño de un camino de datos sencillo
Memoria de DatosDirecciónDato aescribirDatoleídoInstrucción16323Operación de la ALUEscribirRegLeerMemEscribirMemReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROSCeroResultadode la ALUALUExtensiónde signo Diseño de un camino de datos sencillo
Saltos condicionales:
√ Evalúan si dos registros contienen ó no el mismo
valor
√ Si la condición se cumple aplican el salto
√ El salto es relativo con signo
√ Los 16 bits se extienden a 32 y se desplazan 2
posiciones a la izquierda para direccionar sólo
palabras completas
√ El PC ya se ha actualizado a PC + 4
Diseño de un camino de datos sencillo
Instrucción1632EscribirRegReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROS3Operación de la ALUCeroALUExtensiónde signoDesp.2 bits ala izq.ResultadoSumadorPC +4 del camino de datos de instruccionesDestino saltoDecidir si se hace el salto Diseño de un camino de datos sencillo
Todo junto:
√ Para construir el camino de datos hemos de
combinar los elementos explicados anteriormente
√ Intentaremos reutilizar parte del hardware
√ El hardware compartido selecciona los datos
mediante multiplexores
√ Parte del hardware no se podrá reutilizar y habrá que
replicarlo
Diseño de un camino de datos sencillo
Aritmética + Acceso a Memoria
Instrucción1632EscribirRegFuenteALUMem2regReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROSMemoria de DatosDirecciónDato aescribirDatoleído3Operación de la ALULeerMemEscribirMemCeroResultadode la ALUALUExtensiónde signoMuxMux Diseño de un camino de datos sencillo
Incorporamos gestión de PC
1632EscribirRegFuenteALUMem2regReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROSMemoria de DatosDirecciónDato aescribirDatoleído3Operación de la ALULeerMemEscribirMemCeroResultadode la ALUALUExtensiónde signoMuxMuxMemoria deinstruccionesInstrucciónDirecciónde lecturaPCSumador4 Diseño de un camino de datos sencillo
Añadimos saltos condicionales
1632EscribirRegFuenteALUMem2regOrigen del PCReg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROSMemoria de DatosDirecciónDato aescribirDatoleído3Operación de la ALULeerMemEscribirMemCeroResultadode la ALUALUExtensiónde signoMuxMuxMuxMemoria deinstruccionesInstrucciónDirecciónde lecturaPCSumador4Desp.2 bits ala izq.ResultadoSumador Inconvenientes de la implementación
monociclo
El ciclo de reloj está definido por la instrucción
más lenta
No es posible reutilizar ninguna unidad funcional
Estos inconvenientes se verían agravados en
una arquitectura más compleja que la
arquitectura MIPS
Evaluación del rendimiento
√ Supóngase los tiempos de ejecución de las unidades
funcionales siguientes:
Acceso a memoria: 2ns
ALU y sumadores: 2ns
Acceso a registros: 1ns
√ ¿Cúal de las siguientes realizaciones será más rápida?
Una realización en la que cada instrucción se ejecuta en un ciclo
de tamaño fijo (cada instrucción tarda lo que tardaría la más
lenta).
Una realización donde cada instrucción se ejecuta en un ciclo de
longitud variable (cada instrucción tarda únicamente lo
necesario)
Cálculo del ciclo de reloj
2 ns2 ns
2 ns2 ns
2 ns2 ns
1 ns1 ns
2 ns2 ns
2 ns2 ns
Reg. delectura 1Dato a escribirDatoleído 1Datoleído 2Reg. delectura 2Reg. deescrituraREGISTROSCeroResultadode la ALUALUExtensiónde signoControlMuxMuxMemoria deinstruccionesInstrucciónDirecciónde lecturaPCSumador4Desp.2 bits ala izq.Desp.2 bits ala izq.Inst. [25-21]Inst. [20-16]Inst. [15-11]Inst. [31-26]Inst. [25-0]2628Dirección de jump. [31-0]PC + 4 [31-28]1632Controlde laALUResultadoSumadorInst. [15-0]Inst. [5-0]Memoria de DatosDirecciónDato aescribirDatoleídoMuxMuxMuxEscribirRegSaltoIncondRegDestFuente ALUSalt CondALUopMem2regLeerMemEscribirMem Cálculo del ciclo de reloj
Tipo de
instrucción
Aritmética
lw
sw
Cargar
instrucción
Lectura de
registros
Cargar
instrucción
Lectura de
registros
Cargar
instrucción
Lectura de
registros
Unidades funcionales utilizadas por cada tipo de instrucción
ns
Escritura de
registros
Lectura
memoria
Escritura de
registros
Escritura en
memoria
ALU
ALU
ALU
ALU
6
8
7
Comentarios de: Tema 4 El procesador: camino de datos y unidad de control (0)
No hay comentarios