Funcionamiento Del Cpu

17
Instituto Tecnológico de Tapachula Alumno: Jesus Ruiz Cruz Materia: Arquitectura de Computadoras Catedrático: Ing. Rosel Muños López Carrera: ing. Sistemas Computacionales Semestre: 5to

description

arquitectura de computadoras

Transcript of Funcionamiento Del Cpu

Page 1: Funcionamiento Del Cpu

Instituto Tecnológico de Tapachula

Alumno: Jesus Ruiz Cruz

Materia: Arquitectura de Computadoras

Catedrático: Ing. Rosel Muños López

Carrera: ing. Sistemas Computacionales

Semestre: 5to

Grupo: “A”

25/11/2015

Page 2: Funcionamiento Del Cpu

LA CPULa Unidad Central de Proceso (CPU) es el cerebro de la computadora, el lugar donde se manipulan los datos. En una microcomputadora, la CPU entera está contenida en un único chip llamado microprocesador. Cada CPU tiene dos partes básicas: la unidad de control y la unidad aritmético-lógica.

La unidad de control

La unidad de control administra todos los recursos de la computadora. Es el centro lógico de la computadora.

Las instrucciones para que la CPU pueda realizar las diferentes operaciones están incorporadas en la unidad de control. Hay un conjunto de instrucciones que se corresponde con todas las operaciones que puede realizar la CPU. Cada instrucción se expresa en microcódigo, una serie de instrucciones básicas que le dicen a la CPU cómo ejecutar operaciones más complejas. Antes de que un programa se pueda ejecutar, cada comando del mismo debe ser desglosado en instrucciones que estén en el conjunto de instrucciones de la CPU. Cuando se ejecuta el programa, la CPU lleva a cabo las instrucciones en orden convirtiéndolas en microcódigo. Las computadoras actuales pueden traducir millones de instrucciones por segundo.

Diferentes CPUs pueden tener diferentes conjuntos de instrucciones. Los fabricantes tienden a agruparlas en “familias” con conjuntos de instrucciones similares. La familia de procesadores x86 de Intel, por ejemplo, incluye los tipos más comunes de CPU encontrados en la mayor parte de los PCs. Por lo general, al desarrollar una nueva CPU, el conjunto de instrucciones tiene los mismos comandos que las anteriores y algunos nuevos. De esta manera los programas pueden seguir funcionando en procesadores más modernos de la misma familia.

La unidad aritmético-lógica (ALU)

Las computadoras sólo pueden realizar dos tipos de operaciones: aritméticas y lógicas. Las aritméticas incluyen suma, resta, multiplicación, división y potencia. Las lógicas incluyen comparaciones: igual a, no igual a, mayor que, menor o igual a, etc. Muchas de las instrucciones que realiza la unidad de control sólo implican movimiento de datos. Sin embargo, cuando la unidad de control encuentra una instrucción que implica aritmética o lógica, pasa esa instrucción a la unidad aritmético-lógica. Esta unidad tiene una serie de registros, que son ubicaciones de alta velocidad que están en la CPU donde se colocan los datos que se usan en

Page 3: Funcionamiento Del Cpu

cada momento. Por ejemplo, la unidad de control podría cargar dos números desde la Tema 3: Unidades funcionales de la computadora Página 3 memoria en los registros de la ALU y darle la instrucción a la ALU de que divida los dos números o los compare para ver si son iguales.

Velocidad de procesamiento

Hay varios factores que influyen en la velocidad de una computadora:

1) El diseño de los circuitos de la CPU.

El diseño de los circuitos de la CPU determina su velocidad básica, pero hay más factores que pueden implicar mayor velocidad de procesamiento. Uno de estos factores es el tamaño de los registros de la ALU. En los primeros procesadores estos registros eran de 16 bits. En la actualidad suelen ser de 32 e incluso pueden llegar a 64. El tamaño de los registros se conoce como tamaño de palabra e indica la cantidad de datos con los que puede trabajar la computadora en cualquier momento. Muchas veces se habla de computadoras de 32 o 64 bits, refiriéndose al tamaño de palabra.

2) El reloj del sistema.

Otro factor importante que afecta a la velocidad de procesamiento es el reloj del sistema. Se trata de un reloj accionado por un cristal de cuarzo (como la mayoría de los relojes de pulsera). Cuando se le aplica electricidad, las moléculas del cristal vibran millones de veces por segundo, con un ritmo constante. La computadora utiliza estas vibraciones para medir sus operaciones de procesamiento. Esta velocidad se ha ido incrementando de manera constante. Se mide en hercios, que son ciclos por segundo. El primer PC operaba a 4,77 megahercios. Esto significa que podía realizar 4,77 millones de operaciones por segundo. En octubre de 2002 ya se alcanzan en los procesadores para PC los 2,8 gigahercios.

Debido a la extrema dificultad de fabricar componentes electrónicos que funcionen a las velocidades de MHz habituales hoy en día, todos los micros modernos tienen 2 velocidades:

Velocidad interna: la velocidad a la que funciona el micro internamente: 450, 500, 750, 1000, 2800 MHz, etc.

Velocidad externa o de bus: la velocidad con la que se comunican el micro y la placa base: 100, 133, 200, 233 MHz, etc)

Los buses del sistema.

Las conexiones entre los componentes de una computadora se denominan buses. Hay tres buses principales: bus de datos, bus de direcciones y bus de control. (Cuando sólo se dice “el bus” se refiere al de datos).

Page 4: Funcionamiento Del Cpu

Bus de datos.

El bus de datos conecta la CPU, la memoria y el resto de dispositivos hardware de la placa madre. Consiste en una serie de cables que pueden transmitir un bit de cada vez. Dependiendo del número de cables que formen el bus, se pueden mover tantos bits a la vez. Estos buses están diseñados para igualar las capacidades de los dispositivos conectados a ellos. Cuando las CPUs no podían transmitir más de un byte a la vez, no tenía sentido tener buses de más 8 bits. Al ir mejorando la velocidad de los microprocesadores, se fueron creando rutas más anchas por las que poder transmitir más datos. En la actualidad las velocidades de los procesadores son mucho más elevadas que las de los buses de comunicaciones. En 1984 salió al mercado un bus de datos de 16 bits (para acompañar al microprocesador de INTEL 80286) que se convirtió en el estándar de la industria. Se conoce como bus ISA (Industry Standard Architecture) y aún se utiliza en algunos dispositivos de PC. Dos años más tarde, el INTEL 80386 podía transmitir a 32 bits. Para sustituir al bus ISA, IBM desarrolló el bus MCA (Micro Channel Architecture), pero esta arquitectura de bus no era compatible con los modelos de PC anteriores, de manera que se un consorcio de desarrolladores de hardware propuso un nuevo bus denominado EISA (Extended Industry Standard Architecture). En 1990 VESA (Video Electronics Standards Association) presenta el VESA Bus de 32 bits, que ofrece conexión de datos rápida para el 80486. Sin embargo, el bus de 32 bits que se extendió fue el PCI (Peripheral Component Interconnect) desarrollado por Intel de manera específica para integrar más fácilmente nuevos tipos de datos como sonido, video y gráficos.

El bus AGP (Advanced Graphics Port) fue creado tras la aparición del Pentium II con el fin de proporcionar a las tarjetas 3D un canal de comunicación con la memoria del PC que superase los 133 Mbits/s del bus PCI que resultaban insuficientes.

Bus de direcciones.

En lo referente al bus de direcciones, se encarga de conectar la CPU y la memoria RAM indicando direcciones de memoria (habitualmente cada byte de memoria tiene una dirección). En este caso, el número de cables del bus determina el tamaño máximo de la memoria. Los primeros PCs tenían un bus de direcciones de 20 bits, de manera que podían direccionar 220 direcciones de memoria (1MByte de datos). En la actualidad la mayoría de las CPU tienen buses de direcciones de 32 bits, de manera que pueden direccionar 4GBytes de memoria RAM.

Una de las mayores dificultades encontradas en la evolución de los PCs fue el hecho de que el sistema operativo utilizado en la mayoría de estos equipos (MSDOS) estuviera diseñado para direccionar 1MByte de RAM. Al aumentarse las capacidades de la RAM, fue necesario diseñar software especial para poder utilizarla (memoria expandida y memoria e xtendida).

Page 5: Funcionamiento Del Cpu

Bus de control.

Se utiliza para controlar el acceso y el uso de las líneas de datos y de direcciones. Ejemplos de señales de control:

· Escritura en Memoria

· Lectura de memoria

· Escritura de Entrada/Salida.

· Lectura de Entrada/Salida.

4) Memoria caché. Uno de los trabajos que más tiempo consumen a la CPU es el movimiento de datos entre los registros de la CPU y la RAM, debido a que la RAM es mucho más lenta que la CPU. Para evitar en parte este problema se propuso la inclusión de una pequeña memoria caché en la CPU. Este tipo de memoria es similar a la RAM pero mucho más rápida que la memoria normal. Esta memoria se utiliza para guardar los datos que tienen más probabilidad de ser utilizados por la CPU, para que puedan ser accedidos por ésta de manera más rápida. Desde finales de los 80, la memoria caché se incluyó en la mayoría de las CPUs de PC (en principio sólo cabían 0,5 KBytes, luego 8, 16, 32…) En la actualidad pueden traer hasta 64 KBytes. Además de esta caché incorporada en la CPU, también se suele agregar otra caché a la placa madre.

5) Otros componentes. Algunas computadoras aceleran ciertas operaciones agregando un coprocesador matemático a la CPU. El coprocesador está especialmente diseñado para tratar con datos numéricos en coma flotante y libera a la ALU de ciertas operaciones que éste puede realizar a mayores velocidades.

Las tarjetas aceleradoras de gráficos procesan la información relacionada con los gráficos liberando de este trabajo a la CPU. Además, no sólo aumentan la velocidad de ejecución al liberar a la CPU de trabajo, sino que están diseñados especialmente para esa tarea, de manera que la realizan más rápido de lo que lo haría la propia CPU.

Registros de la CPU

Para poder hacer estas cosas, es obvio que la CPU necesita almacenar algunos datos temporalmente. Debe recordar la posición de la última instrucción de forma que sepa dónde ir a buscar la siguiente. Necesita almacenar instrucciones y datos temporalmente mientras una instrucción está siendo ejecutada. En otras palabras, la CPU necesita una pequeña memoria interna. En la estructura interna de la CPU se indican los caminos de transferencia de datos y de control lógico, que incluyen un elemento con el rótulo bus interno de la CPU. Este elemento es necesario para transferir datos entre los diversos

Page 6: Funcionamiento Del Cpu

registros y la ALU, ya que ésta en realidad sólo opera con datos de la memoria interna de la CPU. La figura muestra también los elementos básicos típicos de la ALU. Dentro de la CPU hay una memoria interna compuesta por un conjunto de registros. Los registros de la CPU son:

- Registros visibles al usuario: Permiten al programador de lenguaje de máquina o ensamblador minimizar las referencias a memoria principal optimizando el uso de los registros

- Registros de control: Son utilizados por la unidad de control para controlar el funcionamiento de la CPU y por programas privilegiados del sistema para controlar la ejecución de programas.

- Registro de estado: Se utiliza para tomar decisiones en función de operaciones realizadas. - Registro puntero a pila.

Registros visibles al usuario

Un registro visible al usuario es aquél que puede ser referenciado por medio del lenguaje máquina que ejecuta la CPU. Prácticamente todos los diseños contemporáneos de CPUs están provistos de varios registros visibles al usuario, en oposición a disponer de un único acumulador.

Podemos clasificarlos en:

- Uso General

- Datos 

- Direcciones

- Códigos de Condición

Page 7: Funcionamiento Del Cpu

Los registros de uso general pueden ser asignados por el programador a diversas funciones. A veces, su uso dentro del repertorio de instrucciones es para contener el operando para cualquier código de operación. Esto proporciona una utilización de registros de auténtico uso general. Con frecuencia, sin embargo, existen restricciones. Por ejemplo, puede haber registros específicos para operaciones en coma flotante. En algunos casos los registros de uso general pueden ser utilizados para funciones de direccionamiento. En otros casos hay una separación clara o parcial entre registros de datos y registros de direcciones.

Los registros de datos pueden ser usados únicamente para contener datos y no se pueden emplear en el cálculo de una dirección de operando. Los registros de dirección pueden ser en sí registros de uso más o menos general, o pueden estar dedicados a un modo de direccionamiento particular. El caso más conocido es el puntero a pila. La cantidad de registros generales o especializados es una cuestión de diseño. No hay solución óptima, pero la tendencia parece ir hacia el uso de registros especializados. Otro problema de diseño es el número de registros, de uso general o de datos más direcciones, que tienen que incluirse. 

A mayor cantidad de registros se requieren mayor cantidad de bits en el campo de operando. Parece óptimo entre 8 y 32 registros. Menos registros se traducen en más referencias a memoria; más registros no reducen notablemente las referencias a memoria. Por último, está la cuestión de la longitud de los registros. Los registros que han de contener direcciones han de ser lo suficientemente grandes como para albergar la dirección más grande. Los registros de datos deben ser capaces de contener valores de la mayoría de tipos de datos. Algunas máquinas permiten que los registros contiguos sean usados como uno para contener valores de doble longitud. Una categoría final de registros, que es al menos parcialmente visible al usuario, contiene códigos de condición (también llamados indicadores o flags). Los códigos de condición son bits fijados por el hardware de la CPU como resultado de alguna operación. Por ejemplo, una operación aritmética puede producir un resultado positivo, negativo o nulo, o con desbordamiento. Además de almacenarse el propio resultado en un registro o en la memoria, se obtiene también un código de condición. El código puede ser examinado con posterioridad como parte de una condición de bifurcación condicional. Los bits de códigos de condición se reúnen en uno o más registros. Por lo general, forman parte de un registro de control. Comúnmente, las instrucciones de máquina permiten que estos bits sean leídos por referencia implícita, pero no pueden ser alterados por el programador. En algunas máquinas, una llamada a subrutina dará lugar a la salvaguarda automática de todos los registros visibles al usuario, que serán

Page 8: Funcionamiento Del Cpu

restablecidos en el retorno de la subrutina. La CPU lleva a cabo la salvaguarda y restablecimiento como parte de la ejecución de las instrucciones de llamada y retorno, respectivamente. Esto permite a cada subrutina usar independientemente los registros visibles al usuario. En otras máquinas, es responsabilidad del programador guardar los contenidos de los registros visibles al programador relevantes antes de la llamada a subrutina, teniendo que incluir en el programa instrucciones para este fin.

Registros de control

Hay diversos registros de la CPU que se pueden emplear para controlar su funcionamiento. La mayoría de éstos, en la mayor parte de las máquinas, no son visibles al usuario. Algunos de ellos pueden ser visibles a instrucciones de máquina ejecutadas en un modo de control o de sistema operativo. Naturalmente, máquinas diferentes tendrán diferentes organizaciones de registros y usará distinta terminología. Se enumera aquí una lista razonablemente completa de tipos de registros, con una breve descripción. Son esenciales cuatro registros para la ejecución de una instrucción: el contador de programa, el registro de dirección, el registro de instrucción y el registro de datos. El contador de programa contiene una dirección de instrucción. Típicamente, la CPU actualiza el PC después de cada captación de instrucción de manera que siempre apunta a la siguiente instrucción a ejecutar. Una instrucción de bifurcación o salto también modificará el contenido de PC. La instrucción captada se carga en el registro de instrucción, donde son analizados el código de operación y los campos de operando. Se intercambian datos con la memoria por medio de registro de direcciones y el de datos. En un sistema con organización de bus, el de direcciones se conecta directamente al bus de direcciones, y el de datos directamente al bus de datos. Los registros visibles al usuario, sucesivamente, intercambian datos con el de datos. Los cuatro registros que acaban de mencionar se usan para la transferencia de datos entre la CPU y la memoria. Dentro de la CPU, los datos tienen que ofrecerse a la ALU para su procesamiento. La ALU puede tener acceso directo al de datos y a los registros visibles al usuario. Como alternativa, puede haber registros intermedios adicionales en el límite de la ALU; estos registros sirven como registros de entrada y salida de la ALU e intercambian datos con el de datos y los registros visibles al usuario.

Registro de estado

Todos los diseños de CPUs incluyen un registro o un conjunto de registros, conocidos a menudo como palabra de estado de programa "programa status word", PSW), que contiene información de estado. La PSW contiene típicamente códigos de condición además de otra información de estado. Entre los campos comunes o indicadores se incluyen los expresados en la tabla.

Page 9: Funcionamiento Del Cpu

Bit de estado

Nombre Descripción

C Acarreo Puesto a uno si una operación da lugar a un acarreo (suma) o adeudo (resta) de un bit de orden superior.

P Paridad Paridad del resultado de una operación aritmética o lógica. Un 1 indica paridad par y el 0 paridad impar.

Z Cero Puesto a uno cuando el resultado de una operación aritmética o lógica es cero.

S Signo Contiene el bit de signo del resultado de la última operación aritmética.

O Desbordamiento Usado para indicar un desbordamiento aritmético.

I Interrupción Usado para habilitar o inhabilitar interrupciones

Registro puntero a pila

El registro puntero a pila permite almacenar la dirección de acceso a la memoria pila. Veremos su funcionamiento al tratar las subrutinas.

Cómo funciona un CPU

Simplificando al extremo, y en términos didácticos, el funcionamiento de un procesador está dado por cuatro fases. Estas fases no necesariamente están siempre separadas, sino que por norma general se solapan, y siempre ocurren en simultáneo aunque no necesariamente para una función en específico.

Page 10: Funcionamiento Del Cpu

Durante la primera fase el procesador se encarga de cargar el código desde la memoria. En otras palabras se leen los datos que deben ser procesados posteriormente. En esta primera fase se encuentra un problema común en la arquitectura de los procesadores, y es que hay un máximo de datos que pueden ser leídos por periodo de tiempo, y suelen ser inferiores a los que pueden ser procesados, por lo que hay una especie de efecto de pico de botella que en la actualidad se trata de solventar aplicando el multicanal y cachés.

En la segunda fase ocurre la primera etapa del procesamiento como tal. La información leída en la primera fase es analizada siguiendo un juego de instrucciones. Así pues, dentro de los datos leídos habrá fracciones descriptivas para el set de instrucciones, que indicarán qué se debe hacer con el resto de la información. Por poner un ejemplo práctico, hay código que indica que se deben sumar los datos de un paquete con los de otro paquete, siendo cada paquete información que describe un número, con lo que se obtiene una operación aritmética común.

A continuación viene la fase que continua con el procesamiento franco, y se encarga de ejecutar las instrucciones tomadas decodificadas dentro de la segunda fase. En el ejemplo anterior, aquí sería dónde se realiza la suma y se obtiene el resultado.

Por último, el proceso concluye con una fase de escritura, dónde de nuevo la información es cargada, solo que esta vez desde el procesador hasta la memoria. En algunos casos la información puede ser cargada a memoria del procesador para ser reutilizada posteriormente, pero una vez terminado el procesamiento de labor en particular, los datos siempre terminan siendo

Page 11: Funcionamiento Del Cpu

escritos en la memoria principal, de donde luego pueden ser escritos a la unidad de almacenamiento o no, dependiendo de la aplicación.

Ejecución de Instrucciones con el CPU

Las instrucciones se almacenan en la memoria RAM de la computadora (Memoria de Acceso Aleatorio, conocida en inglés como Random Access Memory), la cual será cubierta en la sección

Existen dos componentes principales en el CPU. Uno es la unidad de control, que accede instrucciones almacenadas en la RAM, interpreta su significado, y luego las dirige al lugar apropiado. La otra es la Unidad Aritmética/Lógica (ALU) que desarrolla operaciones aritméticas (por ejemplo, suma, resta, multiplicación y división) y lógicas (por ejemplo, mayor que, menor que, igual que) requeridas para procesar las instrucciones.

Al ejecutar una instrucción, el CPU desarrolla cuatro pasos, que son llamados el ciclo de instrucción (fetch-execute-cycle). A continuación se muestran los cuatro pasos:

1. Extraer - La unidad de control obtiene la instrucción de la memoria.

2. Interpretar- La unidad de control decodifica el significado de la instrucción y mueve los datos necesarios de la memoria a la ALU.

3. Ejecutar- La unidad de control solicita a la ALU que desarrolle las operaciones aritméticas y lógicas necesarias.

4. Almacenar- El resultado del cálculo se guarda en la memoria.

El siguiente diagrama ilustra los pasos realizados por el CPU para ejecutar una instrucción que suma dos números. La instrucción es: Permite que R = X + Y.

Page 12: Funcionamiento Del Cpu

Otro componente del microprocesador es la caché, una memoria especial de alta-velocidad que almacena los datos usados más recientemente, para acelerar el proceso de ejecución de instrucciones. La caché puede acelerar la recuperación de datos porque los datos usados más recientemente podrían sean usados de nuevo por la computadora.

La memoria caché de Nivel 1 (L1) o memoria caché principal se localiza en el CPU para proporcionarle el acceso más rápido a los datos. También existe una caché más lenta, la memoria caché de Nivel 2 (L2) o caché secundaria, localizada entre la RAM y el CPU (algunas veces en el CPU). Si los datos no pueden ser encontrados en alguna de las dos cachés, serán recuperados de la RAM. En relación a la distancia entre el CPU y las áreas de almacenamiento de los datos e instrucciones, los datos se recuperan más rápido de la caché L1, luego de la caché L2, y luego de la RAM.

Page 13: Funcionamiento Del Cpu

La siguiente figura muestra cómo las partes de un microprocesador encajan dentro de los otros componentes de una computadora.