Componentes, estructura y funcionamiento de la CPU

Anuncio
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
Tema 3: Componentes, estructura y funcionamiento de la CPU
1.
Introducción ___________________________________________________________ 1
2.
Componentes de la UCP __________________________________________________ 2
2.1. Registros_____________________________________________________________ 2
2.2. Unidad de control (UC) _________________________________________________ 3
2.3. ALU (Unidad Aritmético Lógica) _________________________________________ 5
2.4. Otros elementos que forman parte de CPU __________________________________ 5
3.
Estructura de la UCP _____________________________________________________ 6
3.1. 8085 ________________________________________________________________ 6
3.2. Estructuras avanzadas __________________________________________________ 7
4.
Funcionamiento_________________________________________________________ 8
4.1. Fases de ejecución de una instrucción ______________________________________ 8
5.
Bibliografía ___________________________________________________________ 10
1. Introducción
El computador es un sistema muy complejo que precisa de varios niveles de abstracción
para su estudio. En el más alto se definen los componentes, estructura y funcionamiento de
este, independientemente de la construcción física.
La arquitectura que se utiliza hoy en día fue descrita en 1945 por el físico Von Newmann,
su más importante aportación fue la de construir una computadora con programa almacenado.
Los computadores existentes hasta entonces trabajaban con programas cableados, éstos se
introducían estableciendo manualmente las conexiones entre las distintas unidades. La idea de
Von Neumann consistió en conectar permanentemente las unidades de la computadora, siendo
coordinado su funcionamiento bajo un control central. Es conveniente conocer esta
arquitectura para identificar dentro de todos los componentes a la CPU y entender más
fácilmente como interacciona con el resto de elementos.
Vamos a centrarnos en estudiar:
9 Los componentes de la UCP y las funciones de cada uno de ellos
9 La estructura, es decir, ¿cómo se organizan?, ¿cómo se conectan?, prestando especial
importancia a las estructuras avanzadas según su diseño (CISC, RISC) y según el
paralelismo (superescalares, vectoriales, segmentados, VLWI)
9 El funcionamiento de la CPU, para comprender exactamente cómo interactúan todos
sus componentes y consiguen su objetivo (ejecutar programas)
Fernando Mollinedo
Página 1 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
2. Componentes de la UCP
Nos vamos a centrar en los principales componentes de la UCP que son la UC, ALU,
registros, FPU y caches. A continuación presentamos un diagrama de bloques de la CPU
2.1. Registros
La UCP es la encargada de captar las instrucciones, interpretarlas, ejecutarlas y
escribirlos resultados, es evidente que para realizar correctamente todas esta operaciones se
precisa de elementos de memoria, de almacenamiento, estos son los registros. Los registros
son un grupo de bits de memoria RAM situados dentro del procesador, que contienen los
datos que van a ser ejecutados en la ALU o en la FPU
Sus características son:
9 El tamaño o la longitud, es el responsable del tipo de datos e instrucciones que
pueden ser utilizados por el procesador, determina la eficiencia del computador a
mayor tamaño se reducirá el trafico en la UCP
En la primera y segunda generación de PC (8088, 8086, 286) sólo disponían de
registros de 16 bits, solamente podían ejecutar software de 16 bits (DOS y Windows
3.x.). El 80386 fue el primer modelo que incluyo registros de 32 bits en su UCP y por
consiguiente ejecutar software de 32bits (todas las UCP de los 386, de los 486 y de los
primeros Pentium estaban limitadas a 32 bits). Las UCP de los Pentium MMX y de los
Pentium II disponían de algunos registros de 128 bits, lo que permitía a la ALU operar
con varios números de 32 bits con una sola instrucción, a esta técnica se la denominó
SIMD (single-instruction, multiple-data). Sin embargo, esto solo implica 32 bits
aritméticos por lo que todos los Pentium están considerados como procesadores de 32
bits. El Itanium fue el primer procesador para PC, de Intel que contiene registros de 64
bits
9 Especialización, nos indican la funcionalidad de los registros, si hay registros que
siempre realizan la misma función, la lógica de la unidad de control se simplifica ya
que siempre usaré los mismos registros, pero esto es menos flexible
Fernando Mollinedo
Página 2 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
9 Cantidad, a mayor cantidad de registros menos accesos a memoria y mayor rapidez
Tipos de registros:
Los registros que solemos encontrarnos varían en función de la UCP, pero
principalmente tenemos:
De control, no son modificables por el usuario, ejemplos:
9 MAR: (Memory Access Register), indica la siguiente posición de memoria a la
que hay que acceder para coger o dejar datos o instrucciones
9 MBR: (Memory Buffer Register), contiene el resultado de la última lectura
hecha en memoria o lo que se va a escribir en está
9 IR: (Instrucction Register), contiene la instrucción actual que se ejecuta
9 SP: (Stack Point), es el puntero de pila, almacena la dirección de la cabecera de
la pila
9 PC: (Program Count), es el contador de programa, contiene la dirección de la
siguiente instrucción a ejecutar
9 AC: (Acumulador), se emplea para las operaciones aritmético lógicas.
De usuario, son modificables por el usuario, ejemplos:
9 PSW: (Program Status Word), contiene el resultado de las operaciones más
recientes
9 Generales: tienen un uso polivalente, podemos almacenar datos e
instrucciones
2.2. Unidad de control (UC)
Capta las instrucciones, las interpreta, capta los operandos y los lleva a los circuitos
adecuados de la unidad de procesamiento, envía las señales oportunas a la ALU para
completar las operaciones implicadas en la instrucción y ordena el almacenamiento de los
resultados en el destino correspondiente.
Los pasos en el proceso de ejecución de una instrucción (ciclo de instrucción) son:
8
8
8
8
8
8
Captación
Decodificación
Captar los operandos
Ejecución de la operación
Escribir los resultados en Memoria o E/S
Comprobar las interrupciones
Es evidente que para realizar todos estos pasos, la CPU debe almacenar temporalmente
algunos datos, es decir, necesitará de alguna memoria interna. Esta memoria está constituida
por una serie de registros que conforman el nivel más alto en la jerarquía de memoria (es la
memoria más pequeña, más cara, más rápida)
Fernando Mollinedo
Página 3 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
Segmentación:
La tendencia actual es la de dividir en el mayor número de fases el proceso de
ejecución de una instrucción, de modo que podamos solapar y ejecutar al mismo tiempo
algunos de estas fases
Por ejemplo, cuando estamos ejecutando una operación podemos estar captando la
siguiente instrucción, a esto se le llama segmentación y es una constante en todos los
computadores
Diseño:
Existen principalmente dos métodos de construir una unidad de control:
8 Lógica cableada, consiste en un gran circuito combinacional, en el que se sueldan todas
las posibles combinaciones de entradas mediante puertas lógicas, de modo que
automáticamente cuando se detecta la entrada se generan las señales de salida, que
componen la señalización de control. Muy costoso su diseño y difícil de modificar, pero
muy rápidas
8 Microprogramada, (basadas en el modelo de Wilkes), la UC consta de una memoria de
control, que contiene el conjunto de instrucciones del procesador. Aquí se consulta cuales
son las señales de control (microinstrucciones) que se deben generar según la instrucción
que se ejecuta. Su diseño es más fácil y barato pero es más lenta y ocupa más espacio
Arquitecturas de procesador (CISC/RISC)
8 CISC (Complex Instruction Set Computer), dispone de un grupo muy amplio de
instrucciones complejas y potentes, Inicialmente los ordenadores tendían a aumentar su
potencia a base de ampliar su repertorio de instrucciones e incrementar la potencia de
estas, de manera que se adaptasen más a los lenguajes de más alto nivel. El hecho de que
el tiempo de ejecución de una instrucción fuera de varios ciclos de reloj no representaba
un problema puesto que la UC era mucho más rápida que la memoria principal
8 RISC (Reduced Instruction Set Computer), posee un juego de instrucciones lo más
reducido posible, con un porcentaje alto de estas se completa en un ciclo de reloj y un alto
número de registros de propósito general. Cuando se necesita realizar una instrucción
compleja, se suele componer a partir de instrucciones simples
Características CISC
)
)
)
)
)
)
)
Características RISC
Formatos de instrucción de varios tamaños
Interpreta microinstrucciones
Muchos modos de direccionamiento
Pocos registros de propósito general
Repertorio de instrucciones flexible
Son lentas, ejecución intermedia por software
Unidad de control microprogramaza
Fernando Mollinedo
Página 4 de 10
)
)
)
)
)
)
)
Formatos de instrucción de pocos tamaños
Interpreta microoperaciones
Pocos modos de direccionamiento
Muchos registros de propósito general
Repertorio de instrucciones rígido
Son rápidas, ejecución directa por hardware
Unidad de control cableada
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
2.3. ALU (Unidad Aritmético Lógica)
Ver Tema 2
2.4. Otros elementos que forman parte de CPU
9 Unidad de decodificación de la instrucción
Parte de la CPU que decodifica la instrucción, es decir, traduce las instrucciones a
código máquina. Los diseños más modernos incluyen varias unidades de decodificación
9 Unidad de proceso de coma flotante (FPU)
Desde el 8086-80386, la FPU estaba constituida por un circuito externo que se
conectaba en su propio zócalo (coprocesador matemático). A partir del 486 excepto el 486SX
disponen de una FPU integrada dentro del propio núcleo de la CPU. Está aumenta de la
velocidad de procesamiento de la CPU (2 a 10 veces) en la realización de operaciones de
coma flotante
9 Caché de nivel 1 (interna) y caché de nivel 2
Se usa para guardar las posiciones de la lenta memoria principal utilizadas más
frecuentemente y más recientemente. Cuando la caché contiene los datos que necesita la CPU,
no se produce ninguna espera y se denomina acierto de caché. Cuando no contiene los datos,
se denomina un fallo de la caché y tendrá que esperar un tiempo hasta que reciba los datos de
la memoria principal más lenta (DRAM).
‰ Diseño
ƒ
386 caché SRAM de 64 K en la placa base, aciertos 90%
ƒ
486 incluye una pequeña cantidad de caché dentro del chip del procesador, no
siendo necesaria así la caché de la placa base
ƒ
486DX, al aumentar la velocidad del procesador aumento el porcentaje de
fallos. Para solucionarlo volvieron a incluir la caché SRAM en la placa base
(caché de nivel 2), la caché incluida en el procesador (caché de nivel 1)
ƒ
Pentium y procesadores posteriores la caché de nivel 1 se dividió en dos partes
para separar dentro de la ALU los bits procedentes del bus de datos:
) Caché I: que contenía exclusivamente instrucciones
) Caché D: que contenía exclusivamente datos
ƒ
Pentium II, III y IV incluyen una caché de nivel 2 que funciona a la misma
velocidad que la CPU (situada al lado del chip)
9 Bus frontal, FSB (Font Side Bus)
Es el bus que conecta la placa base con la CPU
Fernando Mollinedo
Página 5 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
9 Bus posterior, BSB (Back Side Bus)
Bus que sirve de interfaz entre la caché de nivel 1, en el núcleo del procesador y la caché
de nivel 2
3. Estructura de la UCP
3.1. 8085
Hasta el momento hemos visto los componentes y las funciones, ahora vamos a ver
cómo se organizan y cómo se conectan éstos. Vamos a analizar la estructura de una UCP real,
la del 8085:
8 El 8085 es un procesado de 8 bits fabricado por Intel, precursor de la familia x86, es decir,
del 8086, 80286, 80386, 80486, y pentium
8 La estructura de un procesador sencillo podría ser la siguiente
Del circuito de control salen una serie de señales que sirven para indicar a la ALU la
operación a realizar, y habilitar el flujo de datos y direcciones entre los distintos elementos.
Algunos de estos son:
8 Registro contador del programa (CP), almacena la dirección de la siguiente
instrucción a ejecutar
8 Registro de dirección de memoria (RD), almacena las direcciones de memoria
sobre las que se va a leer o escribir
8 Registro de datos de memoria (RM), registro intermedio entre la memoria y el bus
de datos, almacena temporalmente los datos que se van a escribir o que se acaban
de leer
8 Memoria
Fernando Mollinedo
Página 6 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
3.2. Estructuras avanzadas
Las arquitecturas actuales tratan de potenciar el paralelismo, es decir, la ejecución de
varias instrucciones simultáneamente, para ello utilizan los siguientes mecanismos
3.2.1. Segmentada
Consiste en dividir en el mayor número posibles de etapas el proceso de ejecución de
una instrucción, de modo que mientras una instrucción se ejecuta en una fase, puede dar
comienzo otra
3.2.2. Super-segmentada
No incorpora nada nuevo solo que el nivel de segmentación se lleva a más
profundidad
3.2.3. Super-escalar
Dentro de la CPU hay varias unidades funcionales, es como varias CPU juntas, hay
sólo una UC pero varias ALUs, registros, acumuladores por lo que se pueden ejecutar varias
instrucciones al mismo tiempo. Su estructura es la siguiente:
Esto implica una serie de problemas:
8 Dependencia de las instrucciones, es posible que para poder ejecutar una
instrucción necesites el resultado de otra, por lo que no pueden ejecutarse al mismo
tiempo, se debe detener una
8 Saltos, al poder ejecutar dos instrucciones al mismo tiempo, estás se van leyendo
de dos en dos, con lo que es posible que la primera indique un salto y la siguiente
ya no sea la segunda que ha leído
Para minimizar estos problemas en la UCP se han incluido unidades que predicen en la
medida de lo posible los saltos
Como ejemplo podemos citar a la familia de los Pentium que poseen dos unidades
funcionales, es decir, pueden ejecutar dos instrucciones al mismo tiempo
Fernando Mollinedo
Página 7 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
3.2.4. VLIW (Very Long Instrucction Word)
Procesadores superescalares, es decir, con varias unidades de ejecución, que pueden
ejecutar varias instrucciones al mismo tiempo. A diferencia de los superescalares no se
preocupan de las dependencias entre las instrucciones, ni de los saltos. Suponen que es el
compilador el que ha detectado todas las dependencias, y los saltos, agrupando las
instrucciones en bloques que si pueden ejecutarse al mismo tiempo, con lo que la eficiencia
del procesador sube espectacularmente al no tener que preocuparse de nada más que de
ejecutar los bloques de instrucciones paralelas.
Este sistema implica una mayor complicación en los compiladores que ahora además
de todas las funciones que realizan, deben agrupar las instrucciones en bloques que permitan
la ejecución paralela. Nos podemos encontrar con el problema de que cada vez que aparezca
un nuevo modelo de procesador VLIW haya que rescribir los compiladores de modo que
puedan adaptarse a las cualidades de los nuevos procesadores
3.2.5. Vectoriales
Son procesadores normales a los que se les han añadido unos registros y unas operaciones
especiales que permiten el tratamiento automático de los vectores, es decir, de matrices de
datos unidimensionales. De este modo se pueden realizar operaciones con matrices completas
en el tiempo que se tarda en ejecutar una sola instrucción. También podemos vectorizar
bucles, lo que implica que se puedan realizar todas las iteraciones de un bucle de una sola vez.
Es adecuado precisar que de todas las estructuras vistas ninguna se implementa pura, en
un solo procesador, si no que normalmente se realizan fusiones de varias de ellas,
aprovechando las ventajas de algunas. El Pentium es superescalar y segmentado
4. Funcionamiento
Resulta más fácil entender el funcionamiento de la CPU entendiendo la funciones de cada
una de las unidades que la componen y como interactúan entre ellas. La primera función de un
ordenador es ejecutar programas.
Un programa es un conjunto de instrucciones que son almacenadas secuencialmente en
posiciones o direcciones sucesivas de memoria y que serán ejecutadas una tras otra
El funcionamiento del ordenador consistirá en ir extrayendo sucesivamente instrucciones
de la memoria, interpretarlas, extraer de memoria los operandos implicados en la operación,
enviarlos a la unidad que realiza las operaciones y hallar el resultado
4.1. Fases de ejecución de una instrucción
Las instrucciones y sus operandos se guardan en posiciones sucesivas de la memoria
del ordenador, desde donde son transferidas una a una a la UCP, donde se decodifican y
ejecutan
Fernando Mollinedo
Página 8 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
Fases de ejecución:
) Carga (fech), el procesador genera las señales necesarias para cargar la siguiente
instrucción de la memoria del sistema. Desde allí, la instrucción es transferida a una
localización dentro del procesador conocida como registro de instrucción (RI). El
contenido actual del contador de programa (CP) es la dirección 0100. Este valor es
colocado en el bus de direcciones, tras lo que se activa una señal de lectura en el bus de
control. La memoria recibe esta señal y encuentra el contenido de la dirección 0100, que
es la instrucción MOV AX, 0. Coloca la instrucción en el bus de datos, y el procesador
procede a copiarla desde aquí al registro de instrucción desde donde pasarán a ejecutarse
) Descodificación (decode), la instrucción es decodificada por el procesador. El procesador
transfiere la instrucción del registro de instrucción (RI) a la unidad de decodificación
(UD). Esta compara la instrucción leída buscando en una tabla interna y lee en la tabla las
microinstrucciones que es necesario ejecutar para realizar la instrucción
Fernando Mollinedo
Página 9 de 10
Últ. Revisión Febrero 2004
Tema3 SIMM: “Componentes, estructura y funcionamiento de la UCP”
) Ejecución de la operación (execute), el procesador, si la instrucción así lo requiere,
obtendrá los operandos necesarios para el trabajo de la instrucción
) Almacenamiento de los resultados, si es necesario se producirá el almacenamiento del
resultado en la posición indicada por la instrucción . Por último se procederá al cálculo de
la siguiente instrucción
) Peticiones de interrupción, si el procesador está habilitado para atender interrupciones, al
finalizar el procesamiento de la instrucción actual y antes de cargar la siguiente
instrucción se salvará el estado del proceso actual y se atenderá a la interrupción
5. Bibliografía
Zacker, Craig, Rourke, John: “Pc Hardware, Manual de Referencia”. Mc Graw Hill, 2001
Stalling, William: “Organización y arquitectura de computadores”. 4ª Ed. Prentice Hall. 1997
De Miguel Anasagasti, Pedro: “Fundamentos de los computadores”, 6ª Ed. Paraninfo, 1998
Hermida, Román: “Fundamentos de los comptadores”. Síntesis. 1998
Fernando Mollinedo
Página 10 de 10
Últ. Revisión Febrero 2004
Descargar