Publicado el 5 de Julio del 2017
764 visualizaciones desde el 5 de Julio del 2017
1,4 MB
75 paginas
Creado hace 16a (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 registroRegistrosPCALUEstructura 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 combinatoriaEl 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 ProcesadorDise帽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贸nPCSumador4Dise帽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 ALUALUDise帽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 signoDise帽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 saltoDise帽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 signoMuxMuxDise帽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 lecturaPCSumador4Dise帽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.ResultadoSumadorInconvenientes 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 CondALUopMem2regLeerMemEscribirMemC谩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