arquitectura de la cpu

Mañana seguiremos trabajando en el caché, y los siguientes, 

El siguiente es el diagrama de marco de la CPU

empieza a explicar cpu

1. Controlador

El controlador también se denomina Unidad de control (CU para abreviar), la siguiente es la composición del controlador

1. Registro de instrucción IR: Se utiliza para almacenar una instrucción que se está ejecutando actualmente. Cuando es necesario ejecutar una instrucción, se extrae una instrucción de la memoria caché al registro de instrucción IR de acuerdo con la dirección de instrucción indicada por el contador de programa PC.

El código de operación es mov, add, jmp y otros códigos de símbolos en lenguaje ensamblador; la dirección del operando indica la dirección del operando requerido por la instrucción en el caché de datos. 

2. ID del decodificador de instrucciones: la instrucción en el registro de instrucciones se decodifica para determinar qué operación debe realizar la instrucción (es decir, el código de operación en la instrucción) y dónde está el operando (la dirección del operando).

3. Generador de tiempo TG: Similar al "horario de tiempo", proporciona las marcas de tiempo requeridas para el trabajo de cada parte de la computadora, y generalmente se realiza utilizando la secuencia de pulsos de tiempo y diferentes intervalos de pulso.

4. Controlador de operación CU: De acuerdo con las operaciones y señales requeridas para ser completadas por las instrucciones, se emiten varias secuencias de comando de microoperación para controlar todos los objetos controlados y completar la ejecución de las instrucciones.

5. PC contador de programas: Sirve para almacenar la dirección de la siguiente instrucción a ejecutar, y existe un camino directo entre ésta y la memoria (memory). Al ejecutar una instrucción, primero es necesario buscar la instrucción de la memoria en el registro de instrucción IR de acuerdo con la dirección de instrucción almacenada en el contador de programa PC para completar la operación de "buscar instrucción". El propio PC contador de programas tiene la función de sumar automáticamente 1, lo que puede dar automáticamente la dirección de la siguiente instrucción, de modo que cada instrucción se ejecute en un bucle.

2. Calculadora

La unidad aritmética generalmente incluye al menos 3 registros y 1 unidad aritmética lógica (ALU) Las computadoras modernas a menudo tienen grupos de registros de propósito general en su interior.

Register, una unidad de almacenamiento de alta velocidad con capacidad de almacenamiento limitada, se puede utilizar para almacenar temporalmente instrucciones, datos y direcciones. Hay muchos tipos de registros. Generalmente, hay 3 tipos relacionados con las cuatro operaciones aritméticas. ACC (Acumulador) es un acumulador, MQ (Registro de cociente multiplicador) es un registro multiplicador y X es un registro de operando. Cuando los tres tipos de registros completan diferentes operaciones. Los tipos de operandos almacenados también varían.

calculadora

 En cuanto al concepto de dígito alto del producto y dígito bajo del producto, tomando como ejemplo el sistema decimal, el dígito de las centenas es el dígito alto del dígito de las decenas, y el dígito de las decenas es el dígito bajo del dígito de las centenas. . Cuando se multiplican dos números de 16 bits, el resultado puede ser 32 bits. Los 16 bits de la mitad izquierda son los bits altos del producto, que se almacenan en ACC, y los 16 bits de la mitad derecha son los bits bajos de el producto, que se almacenan en MQ.
La Unidad Aritmética y Lógica (ALU, Unidad Aritmética y Lógica) es un componente de las operaciones aritméticas y lógicas. Las operaciones aritméticas incluyen operaciones con enteros, como suma, resta y multiplicación. Las operaciones lógicas son operaciones lógicas como Y, O, NO y XOR, así como operaciones como desplazamiento, comparación y transferencia.
Las operaciones de desplazamiento, desplazar un carácter hacia la izquierda o hacia la derecha, o hacer flotar un bit específico, incluida la extensión firmada y la extensión no firmada, se utilizan ampliamente en los programas.

3. Registrarse

Debe haber al menos seis tipos de registros en la CPU: registro de instrucciones (IR), contador de programa (PC), registro de dirección (AR), registro de datos (DR), registro de acumulación (AC) y registro de palabra de estado del programa (PSW). ).

Estos registros se utilizan para almacenar pequeñas cantidades de datos para que la CPU los utilice rápidamente.

  1. Registro de datos El registro de datos
    (Data Register, DR) también se denomina registro de búfer de datos. Su función principal es servir como estación de transferencia para la transmisión de información entre la CPU, la memoria principal y los periféricos para compensar el aumento de la velocidad de operación entre la CPU , memoria principal y periféricos diferencia.
    El registro de datos se utiliza para almacenar temporalmente una instrucción o una palabra de datos leída de la memoria principal; por el contrario, cuando una instrucción o una palabra de datos se almacenan en la memoria principal, también se almacenan temporalmente en el registro de datos.
    El papel del registro de datos es:
    (1) Como estación de transferencia para la transmisión de información entre la CPU, la memoria principal y los dispositivos periféricos;
    (2) Para compensar la diferencia en la velocidad de operación entre la CPU, la memoria principal y los dispositivos periféricos.
    (3) En una sola unidad aritmética con estructura de acumulador, el registro de datos también puede servir como registro de operandos .

  2. Registro de instrucciones Registro de instrucciones
    (Instruction Register, IR) se utiliza para guardar una instrucción que se está ejecutando actualmente.
    Cuando se ejecuta una instrucción, la instrucción se lee primero de la memoria principal al registro de datos y luego se transfiere al registro de instrucciones.
    Las instrucciones incluyen dos campos, el código de operación y el código de dirección. Para ejecutar la instrucción, el código de operación debe probarse para identificar la operación requerida. El decodificador de instrucciones (Instruction Decoder, ID) completa este trabajo. El decodificador de instrucciones decodifica la parte del código de operación del registro de instrucciones para generar el potencial de control de la operación requerida por la instrucción, lo envía al circuito de control de microoperación y genera un control de operación específico bajo la acción de la señal de temporización del Señal componente secuencial.
    La salida del campo de código de operación en el registro de instrucciones es la entrada al decodificador de instrucciones. Una vez que se decodifica el código de operación, se puede enviar una señal específica para una operación específica al controlador de operación.

  3. Contador de Programa
    El Contador de Programa (Program Counter, PC) se utiliza para señalar la dirección de la siguiente instrucción en la memoria principal.
    Antes de que se ejecute el programa, la primera dirección del programa, es decir, la dirección de la unidad de memoria principal donde se encuentra la primera instrucción del programa, debe enviarse a la PC, por lo que el contenido de la PC es la dirección de la primera instrucción extraída de la memoria principal.
    Al ejecutar una instrucción, la CPU puede incrementar automáticamente el contenido de la PC para que siempre guarde la dirección de memoria principal de la siguiente instrucción a ejecutar, lista para buscar la siguiente instrucción. Si es una instrucción de palabra única, entonces (PC)+1àPC, si es una instrucción de palabra doble, entonces (PC)+2àPC, y así sucesivamente.
    Sin embargo, cuando se encuentra una instrucción de bifurcación, la dirección de la siguiente instrucción se especificará mediante el campo de código de dirección de la instrucción de bifurcación, en lugar de obtenerse incrementando secuencialmente el contenido de la PC como de costumbre.
    Por lo tanto, la estructura del contador de programa debe ser una estructura con dos funciones de registro de información y conteo.

  4. Registro de direcciones
    El Registro de direcciones (Registro de direcciones, AR) se utiliza para guardar la dirección de la unidad de memoria principal a la que accede actualmente la CPU.
    Dado que existe una diferencia en la velocidad de operación entre la memoria principal y la CPU, los registros de dirección deben usarse para guardar temporalmente la información de dirección de la memoria principal hasta que se complete la operación de acceso a la memoria principal.
    Cuando la CPU y la memoria principal intercambian información, es decir, cuando la CPU almacena datos/instrucciones en la memoria principal o lee datos/instrucciones de la memoria principal, se utilizan el registro de direcciones y el registro de datos.
    Si direccionamos uniformemente el dispositivo periférico y la unidad de memoria principal, entonces cuando la CPU y el dispositivo periférico intercambien información, también necesitamos usar el registro de direcciones y el registro de datos.

  5. Registro de acumulación
    El registro de acumulación suele denominarse simplemente acumulador (Accumulator, AC), que es un registro de propósito general.
    La función del acumulador es: cuando la unidad aritmética lógica ALU de la unidad aritmética realiza operaciones aritméticas o lógicas, proporciona un área de trabajo para la ALU y puede guardar temporalmente un operando o resultado de operación para la ALU.
    Obviamente, debe haber al menos un registro de acumulación en la unidad aritmética.

  6. Palabra de estado del programa Registro
    Palabra de estado del programa (Palabra de estado del programa, PSW) se utiliza para representar el estado de funcionamiento actual y el modo de trabajo del programa.
    El registro de palabra de estado del programa se utiliza para guardar diversos contenidos de código de condición establecidos por la operación o los resultados de prueba de instrucciones aritméticas/lógicas, como el indicador de acarreo/préstamo de resultado de operación (C), el indicador de desbordamiento de resultado de operación (O) y el el resultado de la operación es el indicador cero (Z), el resultado de la operación es el indicador negativo (N), el indicador de signo del resultado de la operación (S), etc. Estos bits de indicador generalmente se guardan mediante un flip-flop de 1 bit.
    Además, el registro de palabras de estado del programa también se usa para guardar información como interrupciones y el estado de funcionamiento del sistema, de modo que la CPU y el sistema puedan mantenerse al tanto del estado de ejecución de la máquina y del programa.
    Por lo tanto, el registro de palabra de estado del programa es un registro que contiene varias banderas de condición de estado.

El siguiente es el diagrama de marco de la CPU y la memoria principal

4. MMU

pertenece a la cpu

 El papel de mmu es convertir entre direcciones virtuales y direcciones físicas.

La relación entre la dirección virtual y la dirección física se registra en la tabla de páginas y la tabla de páginas se almacena en la memoria.

El TLB es un caché para almacenar en caché los resultados de las traducciones de tablas de páginas, lo que reduce el tiempo de búsqueda de tablas de páginas.

Si no hay coincidencias en la TLB, use TWU para recorrer la tabla de páginas en la memoria, obtenga la dirección física o la dirección virtual y regístrela en la TLB.

 5.caché

pertenece a la cpu

En primer lugar, el caché se llama caché de alta velocidad, por qué hay caché, porque aunque los datos de acceso a la memoria son rápidos, todavía son demasiado lentos en comparación con la CPU, el caché es cientos de veces más rápido que la memoria y el acceso la velocidad es equivalente a la de la CPU, así que primero cargue los datos en la memoria en el caché por adelantado y cree un caché para que lo use la CPU.

El caché se divide en caché L3 / caché L2 / caché L1, el caché L1 se divide en caché de caché de instrucciones y caché de caché de datos

La caché L1 y L2 están en la misma CPU, y la caché L3 generalmente se comparte entre varias CPU

 La siguiente figura muestra los tipos de todos los datos almacenados en la computadora

1. Almacenamiento 2. Caché 3. Memoria 4. Disco duro

2. Proceso de ejecución de la CPU

proceso de ejecución de la CPU

1. Obtener instrucciones

La CPU lee una instrucción en la memoria caché de instrucciones a la que apunta el contador de programa y lee la instrucción en el registro de instrucciones IR.

2. Analizar y dar instrucciones

El ID del decodificador de instrucciones analiza la instrucción

El controlador de operación CU ​​y el generador de temporización TG emiten comandos de control a los componentes relevantes de acuerdo con la función del comando y ejecutan la operación del comando de control.

3. Ejecutar instrucciones

La ejecución de instrucciones se divide en dos pasos: obtener operandos y realizar operaciones.

Obtención de operandos: la CPU lee operandos de la memoria caché de datos en registros a través de operaciones de direccionamiento y los guarda temporalmente

Realizar operaciones: la unidad de operación opera en el número en el registro a través del código de operación en la instrucción

4. Recuento de instrucciones

Modifique el contador de programa PC para que apunte a la dirección de la siguiente instrucción. Continúe con los pasos anteriores hasta que no haya ninguna instrucción.

El tamaño de la memoria caché L3 de la CPU

El caché de primer nivel tiene la capacidad más pequeña y la unidad es KB No hay diferencia en el caché de primer nivel entre diferentes CPU.

El caché de segundo nivel es básicamente un MB de un solo dígito, excepto que algunas CPU de servidor tendrán más de 10 MB,

Caché L3, el caché L3 de la CPU común es de solo unos 10 MB (ahora, la serie X de AMD EPYC ha alcanzado los 768 MB de caché L3).

La relación entre cpu e io

El hardware de la computadora usa DMA para acceder al disco y otras IO, es decir, después de que se envía la solicitud, la CPU ya no la administrará hasta que el procesador DMA complete la tarea y luego le dice a la CPU a través de una interrupción. Por lo tanto, un solo tiempo de E/S ocupa muy poca CPU, y si está bloqueado, no ocupará la CPU, porque el programa no continúa ejecutándose y el tiempo de CPU se le da a otros subprocesos y procesos. Aunque IO no ocupa mucho tiempo de CPU, IO muy frecuente seguirá desperdiciando tiempo de CPU Por lo tanto, frente a una gran cantidad de tareas de IO, a veces se necesitan algoritmos para fusionar IO o usar caché para aliviar la presión de IO.



 

Supongo que te gusta

Origin blog.csdn.net/weixin_70280523/article/details/132157339
Recomendado
Clasificación