Galería de mapas mentales Capítulo 5 Unidad Central de Procesamiento
Este es un mapa mental sobre el Capítulo 5 Unidad Central de Procesamiento, que resume las funciones y la estructura básica de la CPU, el proceso de ejecución de instrucciones, las funciones y la estructura básica de la ruta de datos y otros puntos de conocimiento.
Editado a las 2024-01-16 15:53:05,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Capítulo 5 Unidad Central de Procesamiento
UPC
Funciones de la CPU y estructura básica.
Funciones de la CPU
composición
operador
La función del operador es procesar datos.
controlador
La función del controlador es coordinar y controlar la secuencia de instrucciones para que cada componente de la computadora ejecute el programa, incluida la búsqueda de instrucciones, el análisis de instrucciones y la ejecución de instrucciones.
Funciones específicas
control de comando
control de operaciones
control del tiempo
procesamiento de datos
Manejo de interrupciones
Estructura básica de la CPU
operador
unidad lógica aritmética
bloc de notas
registro de acumulación
Conjunto de registros de uso general
Registro de palabras de estado del programa
palanca de cambios
encimera
controlador
contador de programa
registro de instrucciones
decodificador de instrucciones
registro de dirección de memoria
registro de datos de memoria
sistema de sincronización
generador de señal de micro operación
Proceso de ejecución de instrucciones
ciclo de instrucción
Hay operaciones de acceso a la CPU.
El ciclo de búsqueda es para buscar instrucciones.
El ciclo de dirección indirecta es para obtener la dirección efectiva (operando)
El ciclo de ejecución es para obtener el operando.
El ciclo de interrupción es para guardar los puntos de interrupción del programa.
flujo de datos del ciclo de instrucción
ciclo de recuperación
PC → MAR → Bus de direcciones → Memoria principal CU emite comando de lectura → bus de control → memoria principal Memoria principal → bus de datos → MDR → IR (instrucciones de almacenamiento) CU envía una señal de control → el contenido de la PC aumenta en 1
La tarea del ciclo de recuperación es recuperar el código de instrucción de la memoria principal según el contenido de la PC y almacenarlo en el IR.
ciclo de direcciones indirectas
Ad(IR)(o MDR) → MAR → Bus de direcciones → Memoria principal CU emite comando de lectura → bus de control → memoria principal Memoria principal → bus de datos → MDR (dirección efectiva de almacenamiento)
La tarea del ciclo de dirección indirecta es obtener la dirección efectiva del operando.
ciclo de ejecución
La tarea del ciclo de ejecución es tomar el operando y generar el resultado de la ejecución a través de la operación ALU de acuerdo con el código de operación de la palabra de instrucción en el IR.
ciclo de interrupción
Los controles CU reducen SP en 1, SP → MAR → bus de direcciones → memoria principal CU emite comando de escritura → bus de control → memoria principal PC → MDR → Bus de datos → Memoria principal (los puntos de interrupción del programa se almacenan en la memoria principal) CU (dirección de entrada de la rutina de servicio de interrupción) → PC
CU envía la dirección especial de la memoria utilizada para guardar el punto de interrupción del programa (como el contenido del puntero de la pila) al MAR y la envía al bus de direcciones. Luego, la CU envía un comando de escritura a la memoria y envía el contenido de. la PC (punto de interrupción del programa) al MAR al MDR y, finalmente, el punto de interrupción del programa se almacena en la memoria a través del bus de datos. Además, la CU también necesita enviar la dirección de llenado del programa de servicio de interrupción a la PC para prepararse para el ciclo de búsqueda de instrucciones del siguiente ciclo de instrucciones.
La tarea del ciclo de interrupción es manejar las solicitudes de interrupción.
PC de tres hilos (bus de datos, bus de direcciones, bus de control)
Plan de ejecución de instrucciones
ciclo de instrucción único
múltiples ciclos de instrucción
Solución de tubería
Funciones de ruta de datos y estructura básica.
Funciones de ruta de datos
La función de la ruta de datos es realizar el intercambio de datos entre las unidades aritméticas y los registros dentro de la CPU.
Estructura básica de la ruta de datos.
estructura basica
ruta de datos de la estructura del bus
Modo de bus único interno de la CPU
Sólo un componente puede enviar datos al mismo tiempo; de lo contrario, se producirán conflictos de señales. La solución es: todas las salidas de los componentes (y las que conducen al bus u otras direcciones pero con conflictos de señal) deben conectarse al bus a través de puertas de tres estados, excepto los componentes con su propia función de salida de tres estados.
Dado que la salida de un componente de lógica combinacional solo depende de su entrada, los terminales de entrada y salida del componente de lógica combinacional no se pueden conectar en el mismo bus; de lo contrario, se producirán conflictos de señales. La primera solución es agregar un registro (o pestillo) para que solo uno de todos los terminales de entrada y de salida esté conectado directamente al mismo bus. La segunda solución es aumentar el número de buses para que cada terminal de entrada y salida esté conectado a un bus diferente.
A, B y F no se pueden conectar al mismo bus, por lo que se requieren 2 registros (o pestillos) adicionales, o se adopta una estructura de tres buses, o se adopta una estructura de doble bus y se agrega un registro.
Las contradicciones que se resuelven sumando registros y agregando puertas de tres estados son diferentes. Las puertas de los tres estados se centran en resolver conflictos en el autobús y los registros se centran en resolver conflictos en componentes de lógica combinacional.
Modo multibus interno de la CPU
Enfoque de ruta de datos dedicada
Dado que el mismo terminal de entrada está conectado a múltiples terminales de salida de componentes, para recibir datos de un solo terminal de salida de componentes al mismo tiempo, cada terminal de entrada del componente debe estar conectado a un terminal de salida de componente diferente a través de un multiplexor. El terminal de entrada solo está conectado a un terminal de salida de componente, excepto cuando la salida de componente está conectada.
Como no hay conflictos de salida, los GPR pueden configurar dos puertos de lectura para mejorar el rendimiento de la transferencia de datos.
Transferencia de datos entre registros.
(PC)→MAR PCout y MARin son válidos, contenido de PC→MAR
Transferencia de datos entre la memoria principal y la CPU.
(PC)→MAR PCout y MARin son válidos, la dirección de comando actual→MAR 1→R CU envía comando de lectura MEM(MAR)→MDR MDRin es válido (MDR)→IR MDRout e IRin son válidos, el comando actual→IR
Realizar operaciones aritméticas o lógicas.
(MDR)→MAR MDRout y MARin son válidos, la dirección efectiva del operando→MAR 1→R CU envía comando de lectura MEM(MAR)→MDR operando desde memoria→MDR (MDR)→Y MDRout y Yin son válidos, operando Y (ACC) (Y)→Z ACCout y ALUin son válidos, CU envía un comando de adición a ALU, el resultado→Z (Z)→ACC Zout y ACCin son válidos, el resultado→ACC
El componente funcional necesario para analizar la fase de instrucción es el decodificador de instrucciones, pero no pertenece a la ruta de datos.
Ruta de datos de una estructura de bus único
Debido a la estructura de bus único, la unidad aritmética ALU en la figura utiliza dos registros temporales X y Z. donde X se utiliza para preparar el operando A de la ALU. El otro operando B de la ALU proviene del bus interno. Z se utiliza para almacenar temporalmente los resultados de la operación.
El registro PSW es un registro de estado del programa, que se utiliza para almacenar los indicadores de estado de operación de la ALU, y los indicadores de estado temporales se enviarán al controlador de operación.
Los registros PC, AR, DR, IR, X, Z y los registros de archivos de registro están conectados directamente al bus interno. Además, los registros AR y DR también están conectados a la memoria MEM a través del bus externo.
En una estructura de bus, la cantidad de transferencias de datos que pueden ocurrir simultáneamente depende de la cantidad de buses. Para una estructura de bus única, puede haber varios módulos en el bus que reciben datos al mismo tiempo, pero solo un módulo puede enviar datos al bus en un momento determinado; de lo contrario, se producirán conflictos de datos.
Por lo tanto, los componentes conectados al bus requieren control de salida para evitar conflictos de datos en el bus. Por esta razón, todos los componentes funcionales que salen al bus interno en la figura utilizan puertas de tres estados para el control de salida (indicadas por flechas huecas triangulares en la figura).
Señales de control y sus funciones.
Instrucciones típicas de MIPS32
Proceso de ejecución de la instrucción lw.
La función de la instrucción lw es leer una palabra de memoria de 32 bits de la memoria principal. El código ensamblador es lw rt, imm (rs).
La dirección de acceso a la memoria es el registro correspondiente al campo rs más el imm inmediato con signo de 16 bits. Este es un direccionamiento indexado típico. lw extrae 4 bytes de la unidad de memoria principal correspondiente y los envía al registro rt para su almacenamiento.
Dado que el ancho de bits del registro es de 32 bits, el signo del imm inmediato de 16 bits debe extenderse a 32 bits antes de poder enviarse a la ALU para calcular la dirección de acceso a la memoria.
proceso de operación de instrucción lw y señales de control
La operación del ciclo de búsqueda T3 beat M[AR] → DR también se puede colocar en T2 beat, y las dos funciones son equivalentes. Cada M[AR] → DR puede ir acompañado de una transacción de transmisión de bus en el chip para mejorar la velocidad de ejecución de instrucciones.
Flujo de ejecución del comando sw
La función de la instrucción sw es escribir una palabra de memoria de 32 bits en la memoria principal. El código ensamblador es sw rt,imm(rs).
Proceso de operación del comando SW y señales de control.
Flujo de ejecución de la instrucción beq
La instrucción beq es una instrucción de rama condicional y el código ensamblador es beq rs,rt,imm. La función de la instrucción beq es comparar los valores de los registros rs y rt, y realizar un salto de rama si son iguales.
El valor de imm indica la dirección de destino de la bifurcación en relación con la siguiente instrucción, que es el número de instrucciones de la PC 4. Por lo tanto, al calcular la dirección de destino de la bifurcación, el valor de PC (actualizado a la PC 4 durante la etapa de búsqueda de instrucciones) y el signo de imm debe extenderse a 32 bits y luego a la izquierda. Se agregan los valores desplazados en dos bits. El propósito de desplazar dos bits hacia la izquierda aquí es calcular el desplazamiento de bytes.
proceso de operación de instrucción beq y señales de control
componentes de ruta de datos
Componentes operativos (circuitos lógicos combinacionales)
unidad de procesamiento de datos
La unidad de procesamiento de datos está compuesta por circuitos lógicos combinacionales, cuya salida solo está relacionada con la entrada actual y es responsable del procesamiento de datos, como ALU, unidad de extensión de señales, decodificador, etc.
Componentes de estado (circuitos lógicos secuenciales)
unidad de almacenamiento estatal
La unidad de almacenamiento de estado (unidad de estado) se refiere a una unidad con función de almacenamiento, como memoria y registro.
Ruta de datos típica del procesador de ciclo único
Un procesador MIPS de ciclo único es un procesador MIPS en el que todas las instrucciones se completan en un ciclo de reloj.
Aunque el tiempo de ejecución de diferentes instrucciones puede variar, según el principio del barril, el ciclo de reloj de un procesador de ciclo único está determinado por la instrucción que se ejecuta más lentamente.
Dado que la búsqueda y ejecución de instrucciones solo se puede completar dentro de un ciclo de reloj, los recursos en la ruta de datos durante la ejecución de la instrucción no se pueden reutilizar. Deben ser rutas de datos dedicadas y recursos que deben usarse varias veces (como sumadores). Es necesario configurar varios.
Tanto las operaciones de recuperación de instrucciones como de operación requieren acceso a la memoria, por lo que las instrucciones y los datos se almacenan en la memoria de instrucciones y en la memoria de datos, respectivamente, para evitar conflictos de recursos.
Dado que el procesador MIPS de ciclo único debe completar la instrucción dentro de un ciclo de reloj, el registro de instrucción IR no está configurado, pero la palabra de instrucción extraída de la memoria de instrucciones se analiza directamente. De lo contrario, simplemente recuperar la instrucción en el IR requerirá un reloj. ciclo.
Ruta de datos de instrucción aritmética tipo R
Las instrucciones de operación aritmética y lógica en MIPS son instrucciones de tipo R. A continuación se toma la instrucción de suma como ejemplo. agregar rd,rs,rt #RTL descripción de la función: R[rs] R[rt] → R[rd]
Los componentes funcionales involucrados en la ejecución de instrucciones incluyen principalmente el archivo de registro y la ALU. Solo necesita enviar los campos de registro de origen rs y rt en la palabra de instrucción leída desde la memoria de instrucciones a los dos terminales de número de registro de lectura R1# y R2# del archivo de registro respectivamente, y enviar el campo de registro de destino rd al registro de escritura. del archivo de registro W #, los valores de los dos registros de origen leídos del archivo de registro se envían a la unidad aritmética a través de los puertos R1 y R2, el campo de función en la palabra de instrucción determina el AluOp para controlar el ALU para realizar la operación correspondiente (aquí se debe seleccionar la adición). El resultado se envía al puerto de escritura de datos WD del archivo de registro. Cuando llega el flanco ascendente del reloj, el resultado de la operación se escribirá en el registro de destino rd.
Ruta de datos de instrucciones de acceso a memoria tipo I
Las instrucciones de acceso a la memoria MIPS pertenecen a las instrucciones de tipo I, que incluyen la recuperación y el almacenamiento de datos, tomando como ejemplo las instrucciones de acceso a palabras. lw rt,imm16(rs) #RTL descripción de la función:M[R[rs] SignExt(imm16)] → R[rt] sw rt,imm16(rs) #RTL descripción de la función: R[rt] → M[R[rs] SignExt(imm16)]
El campo rs en la palabra de instrucción todavía se envía al extremo R1# del archivo de registro; el campo de registro de destino rt se envía al final del número de registro de escritura W# del archivo de registro, además, el número inmediato de 16 bits imm16; debe convertirse a 32 bits a través de la unidad de extensión de signo. Luego se envía a la ALU y se suma al valor del registro de índice rs para formar la dirección de acceso final. Luego, los datos en la memoria de datos se leen y se envían a. registrar archivo escribir datos puerto WD.
Envíe los campos rs y rt en la palabra de instrucción a los extremos R1# y R2# del archivo de registro respectivamente; convierta los datos inmediatos de 16 bits en 32 bits a través de la unidad de extensión de signos, envíelos a la ALU y agréguelos a el valor del registro de índice rs forma la dirección de la memoria principal final y envía el valor del registro rt leído del archivo de registro al puerto de escritura de datos de la memoria de datos WD.
Funciones del controlador y principio de funcionamiento.
Estructura y función del controlador.
La función principal
Recuperar una instrucción de la memoria principal e indicar la ubicación de la siguiente instrucción en la memoria principal.
Decodifica o prueba las instrucciones y genera las señales de control de operación correspondientes para iniciar acciones específicas.
Dirige y controla la dirección del flujo de datos entre la CPU, la memoria principal y los dispositivos de entrada y salida.
controlador cableado
Diagrama de la unidad de control cableado
Fuente de señal de entrada CU
La información de instrucción generada al decodificar el decodificador de instrucciones.
Señales de período de máquina y señales de ritmo generadas por sistemas de cronometraje.
La información de retroalimentación de la unidad de ejecución es la bandera.
Señales de control del bus del sistema (bus de control), como solicitudes de interrupción y solicitudes DMA.
Sistema de temporización y microoperaciones para controladores cableados.
sistema de sincronización
ciclo de reloj
El ancho de cada tiempo corresponde exactamente a un ciclo de reloj.
ciclo de la máquina
El ciclo de la máquina puede considerarse como un tiempo base durante la ejecución de todas las instrucciones.
El tiempo más corto para leer una palabra de instrucción de la memoria se considera ciclo de la máquina.
Se pueden completar varias microoperaciones en un ciclo de máquina. Cada microoperación requiere una cierta cantidad de tiempo. La señal del reloj se puede utilizar para controlar la generación de cada comando de microoperación.
ciclo de instrucción
El tiempo que le toma a la CPU recuperar y ejecutar una instrucción de la memoria principal se llama ciclo de instrucción.
Los ciclos de instrucción suelen estar representados por varios ciclos de máquina, y un ciclo de máquina contiene varios ciclos de reloj (también llamados latidos o ciclos T, que son la unidad más básica de operación de la CPU).
El número de ciclos de la máquina en cada ciclo de instrucción puede variar, y el número de latidos en cada ciclo de la máquina también puede variar.
Las operaciones atómicas se refieren a operaciones que no se pueden refinar. Por lo general, las operaciones atómicas dentro de la CPU se denominan microoperaciones (μOP), y las señales de control de componentes que implementan μOP se denominan señales de control de microoperaciones, también llamadas comandos de microoperaciones (. μOPCmd). El tiempo para completar un μOP se llama latido, y se pueden controlar el tiempo de múltiples μOP a través de diferentes señales de ritmo para formar una secuencia μOP.
Análisis de comandos de microoperaciones.
Comandos de microoperación en el ciclo de recuperación.
Comandos de microoperación para ciclos de direcciones indirectas
Ejecutar comandos periódicos de microoperación.
instrucciones de acceso sin memoria
instrucciones de acceso a la memoria
instrucción de transferencia
método de control de la CPU
Método de control sincrónico
Se puede dividir en los siguientes tipos.
Ciclo de instrucción de duración fija
El número de ciclos de la máquina es fijo, pero el número de latidos no es fijo.
Control combinado central y local
La relación de temporización del control síncrono es relativamente simple y el diseño del controlador es conveniente, pero existe el problema de la baja eficiencia de la CPU cuando se utilizan componentes lentos.
Modo de control asíncrono
La sincronización de cada componente funcional y operación se implementa utilizando un mecanismo de respuesta después de que el componente de control envía una señal de control de operación al componente funcional, debe esperar hasta que el componente funcional envíe una señal de respuesta antes de comenzar la siguiente operación.
La ventaja es que cada componente puede funcionar de acuerdo con el tiempo real requerido y no hay ningún proceso del rápido esperando al lento, lo que mejora la velocidad del sistema, pero la estructura del método de control asíncrono es más compleja.
método de control conjunto
La mayoría de las secuencias de control de operación se controlan de forma sincrónica mediante ciclos de máquina y potenciales de batido. Para una pequeña cantidad de operaciones que son difíciles de determinar en un momento determinado, se puede utilizar el control asincrónico.
Pasos de diseño de la unidad de control cableado
controlador microprogramado
Conceptos básicos de control de microprogramas.
La idea de diseño es escribir cada instrucción de la máquina en un microprograma. Cada microprograma contiene varias microinstrucciones y cada microinstrucción corresponde a uno o varios comandos de microoperación.
terminología básica
Microcomandos y microoperaciones.
Una instrucción de máquina se puede descomponer en una secuencia de microoperaciones. Estas microoperaciones son las operaciones más básicas e irreducibles en la computadora.
Los diversos comandos de control emitidos por el componente de control al componente de ejecución se denominan microcomandos, que son las unidades más pequeñas que constituyen una secuencia de control.
Los microcomandos y las microoperaciones tienen una correspondencia uno a uno. Los microcomandos son las señales de control de las microoperaciones y las microoperaciones son los procesos de ejecución de los microcomandos.
Microinstrucciones y microciclos.
microinstrucciones
Campos de control de operación
campo de control de secuencia
Microciclo se refiere al tiempo necesario para ejecutar una microinstrucción, normalmente un ciclo de reloj.
Las microinstrucciones controlan la ejecución de un conjunto correspondiente de microoperaciones para realizar parte de las funciones de una instrucción.
Memoria principal y memoria de control.
La memoria principal se utiliza para almacenar programas y datos y se implementa fuera de la CPU mediante RAM.
La memoria de control (CM) se utiliza para almacenar microprogramas, que se implementa dentro de la CPU mediante ROM.
Programas y microprogramas.
Un programa es una colección ordenada de instrucciones.
La función de una instrucción se implementa mediante un microprograma.
Un microprograma es equivalente a una secuencia μOPCmd, una microinstrucción es equivalente a todos los μOPCmd en un paso de la secuencia μOPCmd y un microcomando es equivalente a un μOPCmd.
Cada microprograma consta de varias microinstrucciones.
Cada microinstrucción corresponde a un conjunto de μOPCmd
Los microcomandos apuntan a señales de control enviadas por los componentes, correspondientes a μOPCmd uno a uno.
Composición y proceso de trabajo del controlador microprogramado.
Componentes básicos del controlador microprogramado.
controlar la memoria
Almacene el microprograma correspondiente a cada instrucción.
registro de microinstrucciones
Se utiliza para almacenar microinstrucciones extraídas de CM. Su número de bits es igual a la longitud de la palabra de la microinstrucción.
registro de microdirecciones
Reciba la microdirección enviada desde el componente de formación de microdirecciones para prepararse para leer las microinstrucciones en el CM.
El proceso de trabajo del controlador microprogramado.
Tenga en cuenta que el campo de dirección inferior de la última microinstrucción de un microprograma generalmente apunta a la dirección de entrada del microprograma de búsqueda de instrucciones para garantizar que se pueda ingresar nuevamente a la etapa de búsqueda de instrucciones después de ejecutar la instrucción.
Microprogramas e instrucciones de máquina.
El número de microprogramas debe ser el número de instrucciones de la máquina más el número de microprogramas públicos correspondientes a la búsqueda de instrucciones, el direccionamiento indirecto y los ciclos de interrupción.
Cómo se codifican las microinstrucciones
Método de codificación directa (control directo)
Cada uno representa un microcomando.
Método de codificación directa de campo
Agrupe microcomandos mutuamente excluyentes en el mismo campo y agrupe microcomandos compatibles en diferentes campos. Por tanto, entre los microcomandos definidos por cada subcampo, existe como máximo un microcomando válido al mismo tiempo.
Cada campo está codificado de forma independiente, cada código representa un microcomando y el significado de cada código de campo se define por separado.
Los microcomandos deben emitirse después de pasar por el circuito de decodificación, por lo que es más lento que el método de codificación directa.
El peor de los casos para la codificación directa de campos es el método de codificación directa.
Método de codificación indirecta de campo.
Ciertos microcomandos en un campo deben ser interpretados por ciertos microcomandos en otro campo.
Entre los tres métodos de codificación, el método de codificación directa tiene el campo de control de operación más largo y la formación de señal de control μOP más simple. El método de codificación indirecta de campo tiene el campo de control de operación más corto y la formación de señal de control μOP más complicada. un compromiso entre los dos.
El método de formación de direcciones de microinstrucciones.
Indicado directamente por el campo de dirección inferior de la microinstrucción.
Los códigos de operación se forman según las instrucciones de la máquina.
Formato de microinstrucción
microinstrucciones horizontales
Una microinstrucción horizontal define y realiza varias operaciones paralelas básicas.
microinstrucciones verticales
Una microinstrucción vertical solo puede definir y ejecutar una operación básica.
microinstrucciones híbridas
Pasos de diseño de la unidad de control de microprograma.
Listar todas las secuencias μOPCmd
Diseñar formato de microinstrucción.
compilar microprograma
Diseño de circuitos relacionados.
Microprogramación dinámica y nanoprogramación.
Si el microprograma se puede cambiar según los requisitos del usuario, la máquina tiene capacidades de microprogramación dinámica.
Si el hardware no está controlado directamente por microprogramas, sino que es interpretado por nanoprogramas almacenados en la memoria de control de segundo nivel, esta memoria de control de segundo nivel se denomina nanomemoria y el hardware está controlado directamente por instrucciones femto.
Características del cableado y de los controladores programables
Mecanismo de excepción e interrupción
Conceptos básicos de excepciones e interrupciones.
Los eventos inesperados generados internamente por la CPU se denominan excepciones.
Una solicitud de interrupción emitida a la CPU por un dispositivo externo a la CPU se denomina interrupción.
Clasificación de excepciones e interrupciones.
Clasificación anormal
Falla
Trampa
Las trampas generalmente se detectan al final de la ejecución de la instrucción y, una vez que se detecta una trampa, el manejo de excepciones ocurre inmediatamente.
Las instrucciones de llamada al sistema y las instrucciones de autotrampa condicionales (como teq, teqi, tme, tnei, etc. en MIPS) son todas instrucciones de trampa.
En el modo de depuración de un solo paso, cada instrucción ordinaria se puede utilizar como una instrucción de captura para generar una excepción de captura. La excepción de captura se activa mediante la ejecución de la instrucción de captura. De manera similar a una llamada de función, no hay ningún punto de interrupción del programa. Las instrucciones provocarán una llamada incondicional o condicional al programa del núcleo del sistema operativo y lo ejecutarán. Una vez completada la ejecución, volverá a la siguiente instrucción de la instrucción de autotrampa para su ejecución. (Cuando la instrucción de captura es una instrucción de bifurcación, no regresa a la siguiente instrucción para su ejecución, sino que regresa a la instrucción de destino de bifurcación para su ejecución).
Abortar
Una falla aleatoria de hardware que impide que la CPU continúe ejecutándose no tiene nada que ver con instrucciones específicas.
La detección de anomalías internas se implementa mediante la lógica interna de la CPU. No es necesario notificar a la CPU mediante una señal externa.
Clasificación de interrupciones
interrupción enmascarable
Cuando las interrupciones están desactivadas, las interrupciones enmascarables no pueden obtener una respuesta de la CPU.
interrupción no enmascarable
Las interrupciones no enmascarables también deben responderse en modo de interrupción.
Proceso de respuesta de excepción e interrupción
Desactivar interrupciones
Guardar puntos de interrupción y estado del programa
Identificar excepciones e interrupciones y acudir a los controladores adecuados.
canal de instrucción
Conceptos básicos del proceso de instrucción.
Mejora del paralelismo del procesador desde dos aspectos
paralelismo temporal
Tecnología de línea de montaje
paralelismo espacial
procesador superescalar
Definición de canal de instrucción
El proceso de ejecución de instrucciones.
buscar (SI)
Obtener instrucciones de la memoria de instrucciones o del caché
Registro de decodificación/lectura (D)
El controlador de operaciones decodifica la instrucción y recupera los operandos del archivo de registro.
Dirección de ejecución/cálculo (EX)
Acceso a memoria (MEM)
Leer y escribir memoria.
Escribir de nuevo (WB)
Escribir los resultados de la ejecución de instrucciones en el archivo de registro
El principio del diseño de canalizaciones es que el número de segmentos de canalización de instrucciones se basa en el número de segmentos funcionales utilizados por las instrucciones más complejas.
Cómo expresar la tubería
Implementación básica de tubería.
La introducción de registros de canalización permite paralelizar en el tiempo las instrucciones de cada segmento.
Ruta de datos de canalización
Agregue un componente de registro de tubería largo en la posición de la línea de puntos en la figura.
Tenga en cuenta que no hay registros de canalización detrás del segmento WB, pero los datos de este segmento eventualmente se vuelven a escribir en el archivo de registro. La PC contadora de programas también puede considerarse como un registro de canalización, que proporciona datos para la recuperación de instrucciones del segmento IF.
El archivo de registro en el segmento de ID es un componente funcional relativamente especial. Es responsable de leer los operandos de registro en el segmento de ID. La operación de lectura pertenece a la lógica combinacional. Al mismo tiempo, el archivo de registro del segmento ID también es responsable de la operación de reescritura de los resultados de ejecución de instrucciones del segmento WB. La operación de escritura requiere la cooperación del reloj y es una lógica secuencial.
La fuente de entrada del puerto W# del número de registro de escritura del archivo de registro es seleccionada por el multiplexor de control de señal RegDst de acuerdo con la palabra de instrucción del segmento ID, mientras que los datos de escritura WD provienen del segmento WB, es decir, la dirección de escritura y la escritura; Los datos pertenecen a instrucciones diferentes, lo que provocará confusión en los datos.
Primero, ajuste la posición de salida del número de registro de escritura WriteReg# generado por el multiplexor del segmento ID. Ya no se envía al final W# del archivo de registro, sino que se envía directamente al registro de canalización ID/EX para el bloqueo, y luego. segmento por segmento pasado al segmento WB; finalmente, el registro de canalización MEM/WB del segmento WB lo devuelve al puerto W# del registro de escritura del archivo de registro. Observe en la figura que el multiplexor para el segmento ID se ha reposicionado ligeramente.
La información de datos transferida por diferentes pestillos de registro de tubería no es la misma.
El registro de canalización IF/ID necesita bloquear la palabra de instrucción extraída de la memoria de instrucciones y el valor de la PC 4.
El registro de canalización ID/EX necesita bloquear los dos operandos RS y RT extraídos del archivo de registro (los valores de los registros correspondientes a los campos rs y rt en la palabra de instrucción) y el número de registro de escritura WriteReg#, como así como el valor inmediato con signo extendido, PC 4 y otros operandos que pueden usarse más adelante.
Los registros de canalización EX/MEM deben bloquear los resultados de la operación de ALU, los datos que se escribirán en la memoria de datos WriteData, el número de registro de escritura WriteReg# y otros datos.
El registro de canalización MEM/WB necesita bloquear los resultados de la operación de ALU, los datos leídos de la memoria de datos, el número de registro de escritura WriteReg# y otros datos.
Señales de control de tuberías.
Clasificación de señales de control.
El proceso de ejecución de la tubería (tomando como ejemplo la instrucción de escritura desde la memoria de datos al registro)
buscar (SI)
Aunque la instrucción lw no utilizará la PC 4 en secciones de funciones posteriores, la PC 4 aún se transferirá al registro de canalización IF/ID para que otras instrucciones la utilicen (como beq).
Cuando llegue el reloj, la palabra de instrucción se bloqueará en el registro de canalización IF/ID y la PC se actualizará al valor de PC 4.
Registro de decodificación/lectura (ID)
En el segmento ID, el controlador de operación genera las señales de control de operación requeridas para segmentos posteriores basándose en las palabras de instrucción en el registro de canalización IF/ID y las transmite hacia atrás.
Además, el segmento de ID también leerá los valores RS y RT de los registros rs y rt en el archivo de registro en función de los campos rs y rt en la palabra de instrucción.
La unidad de extensión de signos extiende el literal de 16 bits en la palabra de instrucción a 32 bits.
El multiplexor genera el posible número de registro de escritura de la instrucción WriteReg# basándose en la palabra de instrucción (algunas instrucciones no requieren registros de escritura).
Estos 4 datos se transferirán al registro de tubería ID/EX junto con la dirección de instrucción secuencial PC 4.
Dirección de ejecución/cálculo (EX)
Para la instrucción lw, el segmento EX se utiliza principalmente para calcular la dirección de acceso a la memoria. La dirección de acceso a la memoria obtenida sumando el valor RS en el registro de canalización ID/EX y el valor inmediato extendido con signo se envía a la canalización EX/MEM. registro.
El segmento EX también necesita calcular la dirección de destino de la rama y generar la señal de salto de rama BranchTaken.
El valor de RT en el registro de canalización ID/EX se utilizará como datos de escritura en el segmento MEM, por lo que el valor de RT se enviará al registro de canalización EX/MEM como datos de escritura WriteData.
El número de registro de escritura WriteReg# en el registro de canalización ID/EX también se transferirá directamente al registro de canalización EX/MEM.
Acceso a memoria (MEM) (lectura o escritura)
Basado principalmente en los resultados de la operación ALU bloqueados en el registro de canalización EX / MEM: dirección de acceso a la memoria, escritura de datos y señal de control de lectura y escritura de la memoria MemWrite, la memoria se lee o escribe.
Los resultados de la operación ALU, WriteReg# y los datos leídos de la memoria de datos en el registro de canalización EX/MEM se enviarán al extremo de entrada del registro de canalización MEM/WB.
Escribir de nuevo (WB)
El segmento WB selecciona el resultado de la operación ALU o los datos de acceso a la memoria del registro de canalización MEM/WB y los vuelve a escribir en el registro designado WriteReg# del archivo de registro.
Cada sección funcional de la tubería no distingue la función de la instrucción. Toda la información de datos y las señales de control de operación se emiten desde el registro de la tubería al comienzo de la sección, por lo que cualquier dato y señal de control de operación que puedan ser utilizados por las secciones funcionales posteriores. debe pasarse hacia atrás.
Aventuras y procesamiento de la línea de montaje.
estructura aventura
Los conflictos causados por múltiples instrucciones que utilizan la misma unidad operativa en el mismo ciclo de reloj se denominan conflictos estructurales.
El cálculo de la PC 4, el cálculo de la dirección de destino de la bifurcación y la operación aritmética requieren el uso de unidades aritméticas.
Tanto el acceso a instrucciones como el acceso a datos requieren el uso de memoria.
También existen conflictos estructurales entre las operaciones del registro de lectura del segmento ID y el registro de escritura del segmento WB. Sin embargo, dado que la lógica de lectura y escritura del archivo de registro MIPS es una lógica completamente independiente, las direcciones y datos de lectura y escritura ingresan a través de diferentes puertos. , y la lógica de lectura y escritura puede operar simultáneamente. Por lo tanto, este conflicto estructural no existe.
Solución
Utilice memoria de instrucciones y memoria de datos independientes.
Bloquea el contador de programa de la PC, lo que hace que el segmento IF se detenga durante un ciclo de reloj. Cuando llega el siguiente reloj, el registro de canalización IF/ID se borra sincrónicamente. El ingreso al segmento ID no funciona (se realiza una instrucción MIPS de todos 0). equivalente a una operación no operativa). Espere hasta que la instrucción Load acceda a Después de completar la operación de guardar, se reinicia el segmento IF.
aventura de datos
La instrucción actual necesita utilizar el resultado de la operación de la instrucción anterior, pero este resultado aún no se ha generado o no se ha entregado a la ubicación especificada, lo que hará que la instrucción actual no pueda continuar con la ejecución. conflicto.
Los posibles conflictos de datos entre las dos instrucciones son los siguientes:
Conflicto de escritura antes de lectura (RAW)
Si el operando de origen de la instrucción I2 es el operando de destino de la instrucción I1, este conflicto de datos se denomina conflicto de escritura antes de lectura.
Cuando las instrucciones se ejecutan en forma canalizada, dado que la instrucción I2 usa el resultado de la instrucción I1, si la instrucción I2 lee el valor anterior del registro en el segmento ID antes de que la instrucción I1 escriba el resultado en el registro, provocará un error de lectura de datos. .
Conflicto de lectura antes de escribir (WAR)
Si el operando de destino de la instrucción I2 es el operando de origen de la instrucción I1, este conflicto de datos se denomina conflicto de lectura antes de escritura.
Esta dependencia de los datos no tiene ningún impacto en la ejecución de las instrucciones.
Conflicto de escritura tras escritura (WAW)
Si los operandos de destino de las instrucciones I2 e I1 son los mismos, este conflicto de datos se denomina conflicto de escritura tras escritura.
Cuando las instrucciones se ejecutan de forma canalizada, este conflicto de escritura tras escritura no tiene ningún impacto en la ejecución de las instrucciones.
La solución
Bloqueo de hardware e inserción de software de instrucciones "NOP"
Registrar manejo de aventuras RAW
Tecnología de derivación de datos
Si hay correlación de datos, los operandos de registro RS y RT del segmento EX son datos incorrectos. Los datos correctos deben provenir de los operandos de destino de las instrucciones del segmento MEM y WB, y estas instrucciones han completado la operación a través del segmento EX.
Excepto por las instrucciones de acceso a la memoria de la clase de carga, los operandos de destino en realidad se almacenan en los registros de canalización EX/MEM y MEM/WB. Los operandos correctos se pueden redirigir directamente (reenvío) desde sus ubicaciones a las ubicaciones apropiadas en el segmento EX (también). llamado Bypass).
No es necesario insertar burbujas, lo que puede resolver la mayoría de los problemas relacionados con los datos, evitar la degradación del rendimiento de la tubería causada por la inserción de burbujas y optimizar en gran medida el rendimiento de la tubería.
Optimización de la compilación de instrucciones y ajuste del orden de las instrucciones.
Toma el control de la aventura
Cuando la canalización encuentra una instrucción de bifurcación u otras instrucciones que cambiarán el valor de la PC, es posible que las instrucciones adyacentes cargadas en la canalización después de la instrucción de bifurcación no entren en la etapa de ejecución debido a saltos de bifurcación. Este conflicto se denomina conflicto de control, también conocido como. una rama.
Solución
Realice predicciones de bifurcación en instrucciones de transferencia y genere direcciones de destino de transferencia lo antes posible.
Captura previa de instrucciones de destino en direcciones de flujo de control exitosas y no exitosas.
Acelere y avance la formación de códigos de condición.
Mejore la precisión al adivinar la dirección de transferencia.
Indicadores de desempeño del oleoducto
Rendimiento de la tubería
Aceleración del oleoducto
Tecnología avanzada de tuberías
Tecnología de tuberías superescalar
IPC<1
Se pueden ejecutar múltiples instrucciones independientes al mismo tiempo en cada ciclo de reloj, es decir, dos o más instrucciones se compilan y ejecutan en operación paralela.
Se requiere que el procesador esté equipado con múltiples componentes funcionales y circuitos de decodificación de instrucciones, así como múltiples puertos y buses de registro, para que se puedan ejecutar múltiples operaciones simultáneamente.
Tecnología de súper tubería
Cuantos más segmentos funcionales de la canalización estén divididos, más corto será el ciclo de reloj y mayor será la tasa de rendimiento de las instrucciones. Por lo tanto, la tecnología de supercanalización mejora el rendimiento de la canalización al aumentar la frecuencia principal de la canalización.
En el ciclo de reloj original, el componente funcional se utiliza tres veces, lo que hace que la canalización funcione a tres veces la frecuencia del reloj original.
IPC=1
Tecnología de palabra de instrucción muy larga.
Al utilizar una arquitectura en la que se procesan múltiples instrucciones en paralelo en múltiples componentes de procesamiento, pueden fluir múltiples instrucciones en un ciclo de reloj.
Conceptos básicos de multiprocesadores.
Conceptos básicos de SISD, SIMD y MIMD
Arquitectura de datos únicos de flujo de instrucciones único (SISD)
Arquitectura de instrucción única de datos múltiples (SIMD)
Arquitectura de flujo de datos único de flujo de instrucciones múltiples (MISD)
Arquitectura de múltiples instrucciones y múltiples datos (MIMD)
Conceptos básicos de subprocesos múltiples de hardware.
Subprocesos múltiples de grano fino
Multihilo de grano grueso
Subprocesos múltiples simultáneos
Conceptos básicos de procesadores multinúcleo.
Conceptos básicos de multiprocesadores de memoria compartida.
Aunque estos sistemas comparten el mismo espacio de direcciones físicas, aún pueden ejecutar programas de forma independiente en sus propios espacios de direcciones virtuales.
dos tipos
Multiprocesador de acceso a memoria unificada (UMA)
Multiprocesadores de acceso a memoria no uniforme (NUMA)