Tema 3 - Camino de Datos

↗️
Modos de direccionamiento

Introducción

📖
Parámetros Generales del procesador
MIPS32
  • Tamaño de palabra (W): 32 bits
  • Banco de 32 registros de propósito general, 2 de lectura y 1 de escritura: 32 bits
  • Registros de propósito específico (PC=contador de programa y otros): 32 bits
  • Memoria con unidad direccionable el byte, en la que se accede a byte (B), media palabra (H), palabra (W)
  • Direcciones de memoria: 32 bits
  • Instrucciones: 32 bits (formatos: R, I y J)
  • ALU para datos de 32 bits
Directrices a tener en cuenta
  • En términos de rendimiento, es más eficiente priorizar la velocidad en las operaciones comunes en lugar de las infrecuentes. Además, instrucciones simples conducen a diseños regulares y más simples, lo que generalmente resulta en mayor velocidad.
  • Lograr un alto rendimiento en una computadora es crucial. El rendimiento se relaciona con el tiempo de ejecución de los programas y se ve afectado por el recuento de instrucciones ejecutadas, la velocidad del reloj del procesador y el número de ciclos por instrucción (CPI).
  • El camino de datos de una computadora comprende elementos de memoria y procesamiento necesarios para ejecutar instrucciones, conectados por enlaces.
  • La estrategia de control es la técnica para crear la unidad de control que supervisa el camino de datos. contempla las instrucciones y es limitada por los requisitos del computador
📖
Implementación del procesador:
Viene dado por la elección del camino de datos y del circuito de control. Esto tiene un gran impacto en el rendimiento general, por ejemplo el control de los ciclos de reloj (clk) o el nº de ciclos por instrucción (cpi).
📖
Las Instrucciones:
Hay distintos tipos de instrucciones en el repertorio:
Tipo R
Formato General:
  • OPCODE: Código de operación que especifica la operación a realizar.
  • RS: Registro fuente.
  • RT: Segundo registro fuente.
  • RD: Registro destino.
  • SHAMT: Desplazamiento (utilizado en operaciones de desplazamiento lógico y aritmético).
  • FUNCT: Código de función que especifica la operación específica dentro de la categoría de instrucciones.
Tipo I
Formato General
  • OPCODE: Código de operación que especifica la operación a realizar.
  • RS: Registro fuente.
  • RT: Registro destino o segundo registro fuente, dependiendo de la instrucción.
  • IMMEDIATE: Valor inmediato o desplazamiento utilizado en la operación.
Tipo J
Formato General
  • OPCODE: Código de operación que especifica la operación de salto. En el caso de las instrucciones de tipo J, este código es específico para saltos y suele tener el valor 000010 en binario para saltos incondicionales (j) y 000011 para saltos con enlace (jal).
  • ADDRESS: Dirección de destino a la cual se realizará el salto.
La ejecución de las instrucciones consta de cinco etapas:
  1. Lectura de la instrucción en memoria.
  1. Interpretación y lectura de operandos fuente: En esta fase común a todas las instrucciones, se identifica la instrucción específica leída, se determinan sus operandos fuente y se generan las señales de control para coordinar la ejecución de las fases de la instrucción.
  1. Ejecución en la ALU.
  1. Acceso a memoria.
  1. Escritura del resultado en un registro.
Las instrucciones no siempre involucran las mismas etapas.
📖
Existencia ESENCIAL del registro pc
  1. Siempre indica la dirección de memoria de la próxima instrucción a ejecutar.
  1. Todas las instrucciones requieren un incremento del PC, generalmente durante la lectura de la instrucción.
  1. Al final de cada ciclo, el PC se actualiza con el nuevo valor incrementado.

Metodología de Sincronización

📖
Metodología de Sincronización
El reloj es una señal periódica con niveles alto y bajo, divididos en flancos de subida o bajada.
La metodología de sincronización define cuándo leer y escribir señales en los biestables usando uno o varios relojes. Preferimos sincronización por flanco, más simple de controlar, con cambios en el flanco activo, ya sea de subida o bajada.
El reloj muestrea y almacena datos en biestables en el flanco activo. La sincronización por flanco implica muestreo instantáneo y requiere señales estables en ese momento, a menos que cambien las señales de entrada.
Se usan biestables D activados por flanco en registros.
En sistemas de sincronización por flanco, biestables dan datos a bloques combinacionales para cálculos. Al final, resultados se guardan en biestables. El ciclo de reloj debe ser suficientemente largo para señales estables en flanco activo.
El elemento de estado puede servir para entradas y resultados. Sincronización por flanco permite lecturaescritura en el mismo ciclo de reloj sin problemas. Valor leído es inicial, actualización en flanco activo.
La entrada D de los biestables debe ser válida antes y después del flanco activo del reloj. Tiempo de preestabilización antes y mantenimiento después son importantes. Las entradas deben ser válidas alrededor del (suma de preestabilización y mantenimiento). En estas figuras, el es el de bajada.
Las señales deben ser válidas al llegar al flanco activo. El camino crítico determina la velocidad del sistema. Tiempos de propagación y preestabilización del biestable también importan. El tiempo de propagación influye en el ciclo de reloj si es mayor que el tiempo de mantenimiento.
El sesgo del reloj causa problemas debido a que el flanco de reloj puede no llegar simultáneamente a todos los elementos de estado. Esto se debe a diferentes rutas y retardos en la señal de reloj. Si el sesgo es mayor que el retardo combinacional, se producen condiciones de carrera y resultados incorrectos. Para resolverlo, se necesita un ciclo de reloj más ancho sumando el sesgo.
💡
Anchura CK ≥ tiempo propagación + retorno camino crítico + tiempo preestabilización + sesgo reloj
Estudiaremos instrucciones en nuestro camino de datos simplificado, incluyendo:
  • Aritmético-lógicas
  • Acceso a la memoria (carga y almacenamiento)
  • Control de flujo (salto condicional e incondicional)
  • El procesador MIPS real tiene más instrucciones
Buscamos que nuestro camino de datos reducido sea compatible con el camino de datos completo de MIPS. Usaremos los formatos de instrucción, códigos de operación y modos de direccionamiento estándar de MIPS.
  • Habrá lagunas ya que no implementaremos todas las instrucciones reales en nuestro camino de datos. Los ejercicios se enfocan en hacer ajustes pequeños para agregar nuevas instrucciones.
  • Estos ajustes implican agregar conexiones, multiplexores, puertas lógicas y cambios en la unidad de control. Grandes modificaciones requerirían un diseño completamente nuevo del camino de datos.