La CPU, también conocida como microprocesador, es el corazón y/o cerebro de una computadora. Profundicemos en el núcleo de la computadora para ayudarnos a escribir programas de computadora de manera eficiente.
- Charles Babbage
Una computadora u ordenador es una máquina que funciona principalmente con electricidad, pero su flexibilidad y capacidad de programación ha ayudado a lograr la simplicidad de una herramienta.
La CPU es el corazón y/o el cerebro de una computadora. Ejecuta las instrucciones que se le proporcionan. Su trabajo principal es realizar operaciones aritméticas y lógicas y orquestar las instrucciones juntas. Antes de sumergirnos en las partes principales, comencemos mirando cuáles son los componentes principales de una CPU y cuáles son sus roles:
Dos componentes principales de un procesador.
- Unidad de control - CU
- Unidad aritmética y lógica - ALU
Unidad de control - CU
La unidad de control CU es la parte de la CPU que ayuda a organizar la ejecución de las instrucciones. Le dice qué hacer. Según las instrucciones, ayuda a activar los cables que conectan la CPU a otras partes de la computadora, incluida la ALU. La unidad de control es el primer componente de la CPU que recibe las instrucciones para el procesamiento.
Hay dos tipos de unidad de control:
- unidades de control cableadas .
- Unidades de control microprogramables (microprogramadas).
Las unidades de control cableadas son el hardware y necesita el cambio en el hardware para agregar, está funcionando donde una unidad de control microprogramable puede programarse para cambiar su comportamiento. Las CU cableadas son más rápidas en la instrucción de procesamiento, mientras que las microprogramables son más flexibles.
Unidad aritmética y lógica - ALU
La unidad aritmética y lógica ALU como su nombre sugiere hace todos los cálculos aritméticos y lógicos. ALU realiza las operaciones como suma, resta. ALU consiste en circuitos lógicos o puertas lógicas que realizan estas operaciones.
La mayoría de las puertas lógicas toman dos entradas y producen una salida
A continuación se muestra un ejemplo de circuito de medio sumador que toma dos entradas y emite el resultado. Aquí A y B son la entrada, S es la salida y C es el carry.
Almacenamiento - Registros y Memoria
El trabajo principal de la CPU es ejecutar las instrucciones que se le proporcionan. Para procesar estas instrucciones la mayor parte del tiempo, necesita datos. Algunos datos son datos intermedios, algunos de ellos son entradas y otros son la salida. Estos datos junto con las instrucciones se almacenan en el siguiente almacenamiento:
Registros
Registrarse es un pequeño conjunto de lugares donde se pueden almacenar los datos. Un registro es una combinación de pestillos. Los pestillos también conocidos como flip-flops son combinaciones de puertas lógicas que almacenan 1 bit de información.
Un pestillo tiene dos cables de entrada, cable de escritura y entrada y un cable de salida. Podemos habilitar el cable de escritura para realizar cambios en los datos almacenados. Cuando el cable de escritura está desactivado, la salida siempre permanece igual.
La CPU tiene registros para almacenar los datos de salida. El envío a la memoria principal (RAM) sería lento, ya que son los datos intermedios. Estos datos se envían a otro registro que está conectado por un BUS. Un registro puede almacenar instrucciones, datos de salida, direcciones de almacenamiento o cualquier tipo de datos.
Memoria (RAM)
Ram es una colección de registros organizados y compactos juntos de manera optimizada para que pueda almacenar una mayor cantidad de datos. La RAM (memoria de acceso aleatorio) es volátil y sus datos se pierden cuando desconectamos la alimentación. Como la RAM es una colección de registros para leer/escribir datos, una RAM toma la entrada de la dirección de 8 bits, la entrada de datos para los datos reales que se almacenarán y finalmente el habilitador de lectura y escritura que funciona como es para los pestillos.
¿Qué son las instrucciones?
La instrucción es el cálculo de nivel granular que una computadora puede realizar. Hay varios tipos de instrucciones que una CPU puede procesar.
Instrucciones incluyen:
- Aritmética como sumar y restar
- Instrucciones lógicas como y , o , y no
- Instrucciones de datos como mover , entrada , salida , cargar y almacenar
- Instrucciones de control de flujo como goto , if ... goto , call , and return
- Notificar a la CPU que el programa ha terminado Halt
Las instrucciones se proporcionan a la computadora utilizando lenguaje ensamblador o son generadas por el compilador o se interpretan en algunos idiomas de alto nivel.
Estas instrucciones están cableadas dentro de la CPU. ALU contiene la aritmética y lógica donde CU controla el flujo de control.
En un ciclo de reloj, las computadoras pueden realizar una instrucción, pero las computadoras modernas pueden realizar más de una.
Un grupo de instrucciones que puede realizar una computadora se denomina conjunto de instrucciones .
Reloj de la CPU
Ciclo de reloj
La velocidad de una computadora está determinada por su ciclo de reloj. Es la cantidad de períodos de reloj por segundo en que trabaja una computadora. Los ciclos de un solo reloj son muy pequeños, como alrededor de 250 * 10 * -12 segundos. Más alto el ciclo del reloj, más rápido es el procesador.
El ciclo del reloj de la CPU se mide en gHz ( Gigahertz ). 1 gHz es igual a 10 9 Hz ( hertz ). Un hertz significa un segundo o una oscilacion de onda en un segundo. Entonces 1Gigahertz significa 10 9 ciclos por segundo.
Cuanto más rápido sea el ciclo de reloj, más instrucciones puede ejecutar la CPU. Ciclo de reloj = 1 / frecuencia de reloj Tiempo de CPU = número de ciclo de reloj / frecuencia de reloj
Esto significa que para mejorar el tiempo de CPU, podemos aumentar la velocidad del reloj o disminuir el número de ciclos de reloj al optimizar la instrucción que brindamos a la CPU. Algunos procesadores brindan la capacidad de aumentar el ciclo del reloj, pero dado que se trata de cambios físicos, puede haber sobrecalentamiento e incluso humo / incendios.
¿Cómo se ejecuta una instrucción?
Las instrucciones se almacenan en la RAM en orden secuencial. Para una CPU hipotética, la instrucción consta de código OP (código operativo) y memoria o dirección de registro .
Hay dos registros dentro de un registro de Instrucción de Unidad de Control (IR) que carga el código OP de la instrucción y el registro de dirección de Instrucción que carga la dirección de la instrucción de ejecución actual. Hay otros registros dentro de una CPU que almacena el valor almacenado en la dirección de los últimos 4 bits de una instrucción.
Tomemos un ejemplo de un conjunto de instrucciones que agrega dos números. Las siguientes son las instrucciones junto con su descripción:
PASO 1 - CARGA_A 8:
La instrucción se guarda en RAM inicialmente como digamos <1100 1000>. Los primeros 4 bits son el código operativo. Esto determina la instrucción. Esta instrucción se obtiene en el IR de la unidad de control. La instrucción se descodifica para que sea load_A, lo que significa que necesita cargar los datos en la dirección 1000, que son los últimos 4 bits de la instrucción para registrar A.
PASO 2 - CARGAR_B 2
Similar a lo anterior, esto carga los datos en la dirección de memoria 2 (0010) al registro de CPU B.
PASO 3 - AGREGAR BA
Ahora la siguiente instrucción es sumar estos dos números. Aquí la CU le dice a ALU que realice la operación de agregar y guardar el resultado nuevamente para registrar A.
PASO 4 - TIENDA_A 23
Este es un conjunto de instrucciones muy simple que ayuda a sumar dos números.
¡Hemos agregado con éxito dos números!
AUTOBÚS
Todos los datos entre la CPU, el registro, la memoria y el dispositivo IO se transfieren a través del bus. Para cargar los datos en la memoria que acaba de agregar, la CPU coloca la dirección de memoria en el bus de direcciones y el resultado de la suma en el bus de datos y habilita la señal correcta en el bus de control. De esta forma, los datos se cargan en la memoria con la ayuda del bus.
Cache
La CPU también tiene un mecanismo para captar previamente las instrucciones en su caché. Como sabemos, hay millones de instrucciones que un procesador puede completar en un segundo. Esto significa que pasará más tiempo recuperando las instrucciones de la RAM que ejecutándolas. Por lo tanto, el caché de la CPU capta previamente algunas de las instrucciones y también datos para que la ejecución sea rápida.
Si los datos en el caché y la memoria operativa son diferentes, los datos se marcan como un bit sucio.
Canalización de instrucciones
La CPU moderna utiliza la canalización de instrucciones para la paralelización en la ejecución de instrucciones. Recuperar, decodificar, ejecutar. Cuando una instrucción está en fase de decodificación, la CPU puede procesar otra instrucción para la fase de recuperación.
Esto tiene un problema cuando una instrucción depende de otra. Entonces, los procesadores ejecutan las instrucciones que no son dependientes y en diferente orden.
Computadora multi-núcleo
Básicamente es la CPU diferente, pero tiene algunos recursos compartidos como el caché.
Actuación
El rendimiento de la CPU está determinado por su tiempo de ejecución. Rendimiento = 1 / tiempo de ejecución
Digamos que se necesitan 20 ms para que un programa se ejecute. El rendimiento de la CPU es 1/20 = 0.05 ms Rendimiento relativo = tiempo de ejecución 1 / tiempo de ejecución.
El factor que se considera para el rendimiento de una CPU es el tiempo de ejecución de la instrucción y la velocidad del reloj de la CPU. Entonces, para aumentar el rendimiento de un programa, necesitamos aumentar la velocidad del reloj o disminuir el número de instrucciones en un programa. La velocidad del procesador es limitada y las computadoras modernas con múltiples núcleos pueden soportar millones de instrucciones por segundo. Pero si el programa que hemos escrito tiene muchas instrucciones, esto disminuirá el rendimiento general.
La notación O grande determina con la entrada dada cómo se verá afectado el rendimiento.
Se realiza una gran cantidad de optimización en la CPU para que sea más rápida y tenga el mayor rendimiento posible. Al escribir cualquier programa, debemos considerar cómo reducir la cantidad de instrucciones que brindamos a la CPU aumentará el rendimiento del programa de computadora.
Comentarios