Tema 3 – Componentes, estructura y funcionamiento de la Unidad Central de Proceso.

1. Introducción

1.1. Arquitectura de Von Neuman: La idea VN consistió en conectar permanentemente las unidades de la computadora, siendo coordinado su funcionamiento bajo un control central.
Unidades básicas: Unidad E/S, Memoria, UAL y UC

clip_image002

1.2. Las CPU de las actuales computadoras: son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico (transistores, etc.) y las conexiones necesarias para formarlo. El microcircuito se encapsula en una pastilla de plástico con una serie de conexiones hacia el exterior, en forma de patillas metálicas, que forman su nexo de unión al resto del sistema informático.

1.3. Funcionamiento

· Programa: Conjunto de instrucciones que son almacenadas secuencialmente en posiciones o direcciones sucesivas de memoria y que serán ejecutadas una tras otra.

· Registro CP: Registro contador de programa que almacena la dirección de la siguiente instrucción que se ha de ejecutar.

· Funcionamiento:

1. Lectura en memoria de la nueva instrucción a ejecutar

2. Decodificación de la instrucción y cálculo de las direcciones de los operandos

3. Lectura en memoria para extraer los operandos y envío de estos a la UAL junto con las señales de control oportunas

4. Almacenamiento del resultado en la posición indicada por la instrucción y cálculo de la dirección de la instrucción siguiente

2. Lenguaje máquina: Lenguaje de bajo nivel que se compone de una serie de instrucciones de máquina (juego de instrucciones del computador)

Propiedades:

· Realizan una única función por lo que su interpretación es sencilla

· Emplean un número fijo de operandos

· La codificación es sistemática

· Las instrucciones son autocontenidas

Tipos:

· Instrucciones de transferencia de datos

· Instrucciones de modificación de secuencia

· Instrucciones aritméticas

· Instrucciones lógicas

· Instrucciones de comparación

· Instrucciones de desplazamiento

· Instrucciones de entrada/salida

· Instrucciones de movimiento de cadenas

3. Arquitectura del procesador (CISC/RISC)

· Arquitectura CISC

· Interpreta microintrucciones

· Grupo muy amplio de instrucciones complejas y potentes

· Muchos modos de direccionamiento

· Una instrucción ocupaba varios ciclos de reloj, xo no era problema puesto que la UCP era mucho más rápida que la memoria principal.

· Arquitectura RISC

· Interpreta microoperaciones

· Instrucciones simples y rápidas

· Pocos modos de direccionamiento

· Muchos registros de propósito general

4. Unidad Aritmético-Lógica (UAL/ALU)

4.1. Función

· Se encarga de tratar los datos ejecutando las operaciones requeridas de acuerdo al programa en curso, según la unidad de control vaya enviándole los datos correspondientes e indicándole que operación debe realizar mediante las señales de control.

· Operaciones muy elementales, de manera que todas las tareas que debe realizar son decompuestas en pasos elementales para que la UAL sea capaz de ejecutarlos.

4.2. Operaciones

· De desplazamiento: consiste en mover los bites de un operando.

· Lógicas: NOT, AND, OR, XOR.

· Manipulación de signo: Cambio o extensión de signo

· Aritméticas: suma, resta, multiplicación y división.

o Aritmética entera: Se suele utilizar la notación complemento a 1 o complemento a 2 para poder restar por medio de sumas. signo-magnitud no es adecuada.

o Aritmética flotante: cálculos de alta precisión con números muy grandes o muy pequeños. Notación mediante signo, mantisa y exponente.

4.3. Operadores: La UAL está formada por uno o un conjunto de operadores. Un operador es un circuito electrónico capaz de realizar una operación aritmética o lógica.

Ámbito de los operadores:

· Generales: pueden realizar distintas clases de operaciones.

· Especializados: se restringen a una sola clase de operaciones. Clásicamente, no solían tener varios operadores especializados por el elevado coste. Como se explicará más adelante, en la actualidad se incluyen múltiples operadores en cada microprocesador.

Realización de un operador:

· Combinacionales: circuido digital diseñado para que realice una o varias operaciones. No tiene elementos de memoria. El tiempo de respuesta es la suma del retardo de las puertas lógicas que deben atravesar las señales.

· Secuenciales: Requiere varias fases para obtener el resultado, debe contar con elementos de memoria para almacenar información entre fases y con un contador entre estas.

Paralelismo del operador:

· Paralelo realiza la operación sobre todos los dígitos de los operandos al mismo tiempo.

· Serie trabaja dígito a dígito.

4.4. Estructura de una UAL

Se compone de uno o varios operandos, de un conjunto de registros, de unos biestables de estado y, en algunos casos, de un órgano secuenciador. Esto ocurre cuando se dota a la unidad aritmética de varios operadores en paralelo, o de un coprocesador aritmético (algo usual desde los ya obsoletos Intel 486). En estos casos los operadores secuénciales deben incluir su propio órgano secuenciador, compuesto por un contador de fases, una lógica de descodificación de fases y de un conjunto de registros de almacenamiento temporal.

Registros: La UAL contar con 8-16 registros que almacenan temporalmente datos y resultados intermedios.

Biestables: Suelen almacenar condiciones relativas a la última operación como Zero, Negativo, Acarreo, etc.

Existen máquinas de tres direcciones y de una dirección, estas últimas cuentan con un registro acumulador y otro temporal.

5. Unidad de Control

5.1. Función

· Unidad funcional que monitoriza, organiza y coordina a los restantes elementos del computador por medio de señales de control.

1. Lectura en memoria de la nueva instrucción a ejecutar

2. Decodificación de la instrucción y cálculo de las direcciones de los operandos, y interpretación de los biestables indicadores y de control.

3. Lectura en memoria para extraer los operandos y envío de estos a la UAL junto con las señales de control oportunas.

4. Almacenamiento del resultado en la posición indicada en la instrucción y cálculo de la dirección de la instrucción siguiente.

5.2. Secuenciador

· Recibe el código de la operación, el modo de direccionamiento y las direcciones de los operandos que se van a utilizar, así como el estado de la máquina (biestables). Con todo ellos debe producir las microórdenes que han de distribuirse por la ruta de datos, según los cronogramas precisos para poder gobernar los diferentes órganos del ordenador.

· Existen 2 clases de secuenciadotes:

o Lógica cableada: utilización de puertas lógicas y de técnicas de diseño de sistemas combinaciones y secuenciales.

o Microprogramación: almacena en una memoria las microórdenes que producen las microoperaciones que implementan las distintas instrucciones (microprogramas). La ejecución de una instrucción sencillamente implica leer de memoria de control las microórdenes correspondientes a ella.

5.3. Funcionamiento (fases de ejecución de una instrucción).

· Carga (fetch): El procesador genera las señales necesarias para cargar la siguiente instrucción de la memoria del sistema. La instrucción es transferida al Registro de Instrucciones dentro del procesador.

· Descodificación (decode): la instrucción es decodificada por el procesador. Este, transfiere la instrucción del Registro de Instrucciones a la unidad de descodificación, que busca la instrucción en una tabla interna, y cuando la encuentra, lee las microinstrucciones que es necesario ejecutar.

· Ejecución de la operación (execute): Si la instrucción lo requiere, el procesador obtendrá los operandos necesarios para le trabajo de la instrucción.

· Almacenamiento del resultado: 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 dirección de la instrucción siguiente.

Este ciclo puede verse alterado por una interrupción. En este caso, tras almacenar el resultado de la instrucción se guardaría el estado del sistema (biestables y registros) y se saltaría a la rutina de tratamiento de la interrupción.

5.4. Construcción de una UC

5.4.1. Cableada

Consiste básicamente en un gran circuito combinacional en el que las señales lógicas de entrada son transformadas en un conjunto de señales de salida, que componen la señalización de control.

Las entradas clave son el registro de instrucción, el reloj, los indicadores, y las señales de control del bus.

Debe haber una entrada única para cada código de operación. Esta función puede realizar un descodificador que toma una entrada codificada y produce una salida única. Los codificadores presentan una de sus 2n salidas activadas, dependiendo del valor presentado en sus n entradas.

La construcción resulta de estudiarla lógica interna necesaria para producir las señales de control de salida en función de sus señales de entrada. Ello requiere que para cada señal de control se obtenga la expresión booleana correspondiente como una función de las entradas.

5.4.2. Microprogramada

En esta la lógica no se implementa como un circuito, sino como un microprograma almacenado en memoria de control.

Microprograma: secuencia binaria que representa los valores de las señales de control de la U.C. durante la ejecución de una instrucción del repertorio de la U.C.P. Se conoce como firmware por estar colocada entre el hardware y el software.

Direccionamiento:

Condiciones:

o Se debe disponer de una memoria de control con los microprogramas correspondientes a todas las instrucciones del juego de instrucciones del procesador.

o Se debe contar con un procedimiento para hacer corresponder a cada instrucción de máquina su microprograma. A partir del código de operación de la instrucción se ha de poder calcular la dirección de memoria de control donde comienza su microprograma.

o Se debe tener un mecanismo para ir leyendo las microinstrucciones del microprograma en curso y pasar a un nuevo microprograma cuando finalice el que se está ejecutando.

Técnicas de direccionamiento:

o Direccionamiento implícito: cada microinstrucción proporcione la dirección de la siguiente. Cada instrucción contiene su microinstrucción y la dirección de la siguiente microinstrucción.

o Direccionamiento explicito: Una microinstrucción normal direcciona implícitamente la microinstrucción que se encuentra en la dirección próxima siguiente a la suya. Los saltos pueden realizarse usando un bit de la microinstrucción como indicador de salto y el resto para albergar la dirección de la próxima microinstrucción.

Codificación de las microinstrucciones:

Microprogramación horizontal: Consiste en asociar un bit de la microinstrucción a cada posible señal de control, es decir, no codificar las microinstrucciones. Si principal inconveniente es la mayor longitud de la microinstrucción. Como ventaja permite emplear en paralelo los elementos del computador.

Microprogramación vertical: Consiste en codificar el conjunto de las posibles microórdenes con el número mínimo de bits. Se gana en cuanto al coste de la memoria de control, y se pierde en cuanto a la decodificación. Se necesitaría una microinstrucción por cada combinación posible de señales de control que se fuera a activar con lo que se pierde la posibilidad del paralelismo.

En la práctica se dan diversas soluciones intermedias como la codificación por campos en la que se dividen las distintas microórdenes en grupos independientes.

6. Microprocesadores y tendencias actuales

Las CPU de las actuales computadoras son microprocesadores construidos sobre un cristal de silicio semiconductor donde se crean todos los elementos que forman un circuito electrónico y las conexiones necesarias para formarlo. Todo ello encapsulado en una pastilla de plástico con patillas de metálicas de conexión acordes con sus Sockets correspondientes.

En la actualidad, el mercado de microprocesadores para equipos de sobremesa se lo reparten principalmente Intel y AMD con microprocesadores que superan los 3GHz. Dichos procesadores incluyen en sus encapsulados varias unidades de ejecución independiente de coma flotante, de aritmética entera y de cálculo de direcciones, además de instrucciones específicas para entornos 3d, multimedia y comunicaciones (MMX, SSE, etc.) entre otras características (amén de sus cachés de primer y segundo nivel y sus cerca de 200 millones de transistores en los modelos dual core), por lo que se sitúan muy por encima de la arquitectura de computadores clásica.

Mucho ha pasado desde los 4,77 MHz del IBM PC original hasta los casi 3 ó 4 GHz de los micros actuales. Pero aunque los principales fabricantes están realizado proezas espectaculares para mantener el ritmo de subida de velocidad, van alcanzándose los límites del proceso en silicio; en la misma Intel se habla de un máximo de unos 20 GHz, pero sólo aumentando a un ritmo mucho menor y a costa de soluciones técnicas muy costosas.

Por ello, dos de las empresas más importantes, Intel. Y AMD, están evolucionando hacia las CPUs con “doble núcleo” y 64 bits.

· Doble núcleo: Parecido a meter dos microprocesadores en la misma pastilla y permiten ejecutar 2 hilos simultáneamente. Ejemplo: Intel Pentium D (Dual Core) y AMD Atlon 64 x2 (Dual Core)

· 64 bits, que permitirán, entre otras cosas, aumentar la memoria principal por encima de los 4GB hasta ahora insuperables. AMD Athlon 64 e Intel Itanium 2.

En cuanto a los microprocesadores especializados en servidores, cabe destacar la evolución de la gama SPARC de SUN, recientemente ampliada con su UltraSPARC IV+ que entre otras novedades incluye una nueva jerarquía de memoria caché de tres niveles, con una caché de Nivel 2 de 2 Mb integrada en el chip y una caché de Nivel 3 de 32 Mb externa al chip. Por su lado, Intel y AMD se adentran cada vez más en este mercado con sus Intel XEON Dual Core Hyper-Threading (permite la ejecución de hasta 4 hilos simultáneamente), y Opteron Dual Core 64 bits (que permite conectar hasta 8 vias en un mismo servidor). No hay que olvidar que Intel tiene múltiples proyectos multi-core en desarrollo pensando en servidores de media y gran escala basados en DP (Dual Procesor) y MP (Multi Procesor).

Publicado: marzo 24, 2019 por Laura Gonzalez

Etiquetas: tema 3 informatica