Catto / Mapa de Temas · Técnicas Digitales II 4to nivel
Técnicas Digitales II · 120 h · Contenido 3 de 6

Arquitecturas y organización de procesadores

Sumar una matriz recorriéndola por columnas en lugar de por filas puede bajar la tasa de aciertos de la caché del 87 % al 0 %. El algoritmo es el mismo; lo que cambia es el orden.

RISC y CISC CPI Pipeline Caché Localidad

01Arquitectura y organización

Hay dos maneras de mirar un procesador. La arquitectura es el contrato con el software: el conjunto de instrucciones, los registros visibles, los modos de direccionamiento, el modelo de memoria. La organización (o microarquitectura) es cómo se cumple ese contrato en el silicio: cuántas etapas tiene el pipeline, qué cachés hay, cuántas instrucciones se ejecutan a la vez. Dos procesadores con la misma arquitectura, como un Cortex-M0 y un Cortex-M7, ejecutan el mismo código con organizaciones y rendimientos muy distintos. La visión general de CPU, memoria y buses está en el sistema computacional de Informática I y en arquitectura de microprocesadores, de la tecnicatura.

La primera decisión de organización es cómo llegan instrucciones y datos. En la arquitectura de von Neumann comparten memoria y bus; en la Harvard, tienen memorias y buses separados y se pueden leer a la vez. Casi todos los procesadores actuales son Harvard modificados: una sola memoria principal, pero cachés separadas de instrucciones y de datos.

02El conjunto de instrucciones

CISCRISC
InstruccionesMuchas, algunas complejas, de largo variablePocas y simples, de largo fijo (32 bits)
Acceso a memoriaCasi cualquier instrucción puede operar sobre memoriaSolo las de carga y almacenamiento (load/store)
RegistrosPocos, con usos especialesMuchos de propósito general (32 en RISC-V)
Ejemplosx86, 8051ARM, RISC-V, AVR, MIPS

La simplicidad de RISC es lo que permite segmentar la ejecución con eficiencia: todas las instrucciones pasan por las mismas etapas y tardan lo mismo en cada una. Los procesadores x86 modernos traducen internamente sus instrucciones complejas a microoperaciones de tipo RISC.

03La ecuación del rendimiento

\[ T_{CPU} = N_{instr} \cdot CPI \cdot T_{clk} \] El tiempo de ejecución es la cantidad de instrucciones por los ciclos promedio por instrucción por el período del reloj. Mil millones de instrucciones con CPI 1,5 a 500 MHz tardan 3 s. Mejorar un factor a costa de otro no siempre gana.

El compilador y el conjunto de instrucciones deciden \( N_{instr} \); la organización decide el CPI; la tecnología y la profundidad del pipeline deciden el reloj. Comparar procesadores por su frecuencia de reloj solamente ignora los otros dos factores.

04Segmentación

Un pipeline divide la ejecución en etapas, y cada etapa trabaja sobre una instrucción distinta a la vez, como una línea de montaje. El clásico de cinco etapas: búsqueda (IF), decodificación y lectura de registros (ID), ejecución (EX), acceso a memoria (MEM) y escritura del resultado (WB). Idealmente termina una instrucción por ciclo, y el reloj puede ser hasta cinco veces más rápido que sin segmentar.

RiesgoCausaSolución
EstructuralDos etapas necesitan el mismo recursoDuplicar el recurso: memorias separadas de instrucciones y datos
De datosUna instrucción necesita un resultado que todavía no se escribióAdelantamiento (forwarding) desde las etapas posteriores; si no alcanza, una burbuja
De controlUn salto se resuelve recién en EX, con instrucciones ya buscadas detrásPredicción de saltos; si falla, se descartan las instrucciones buscadas

05Jerarquía de memoria y caché

Un procesador ejecuta una instrucción por nanosegundo, y una DRAM tarda decenas de nanosegundos en responder. La solución es una jerarquía: una memoria pequeña y rápida, la caché, guarda copias de lo usado recientemente. Funciona porque los programas tienen localidad: temporal (lo que se usó se vuelve a usar) y espacial (después de una dirección se usa la siguiente). Por eso la caché trae líneas enteras de 32 o 64 bytes.

La dirección se divide en tres campos: el desplazamiento elige el byte dentro de la línea, el índice elige el conjunto donde puede estar, y la etiqueta se compara para saber si la línea guardada es la buscada. En una caché de correspondencia directa cada línea tiene un solo lugar posible; en una asociativa de n vías, n lugares.

\[ t_{medio} = t_{acierto} + m \cdot t_{penalidad} \] El tiempo medio de acceso: con 1 ciclo de acierto, 100 de penalidad y 5 % de fallos, 6 ciclos. Cada punto de tasa de fallos cuesta un ciclo por acceso.

Los fallos tienen tres causas: obligatorios (el primer acceso a una línea), de capacidad (el programa usa más datos de los que caben) y de conflicto (líneas que compiten por el mismo conjunto aunque sobre lugar en otros). Los últimos dependen de las direcciones, y el mismo algoritmo puede ser rápido o lento según cómo recorre los datos.

Laboratorio · una caché ante cuatro programas

Una caché de datos con reemplazo LRU recibe la secuencia de direcciones de un programa corto. La franja de arriba muestra los primeros 512 accesos (verde, acierto; rojo, fallo) y la grilla, qué arreglo ocupa cada línea al terminar. Se supone 1 ciclo por acierto y 100 por fallo.

06Más allá de una instrucción por ciclo

TécnicaQué haceDónde
SuperescalarVarias instrucciones por ciclo, con ejecución fuera de ordenProcesadores de computadoras y teléfonos
SIMDUna instrucción opera sobre varios datos a la vezExtensiones vectoriales para audio, video y redes neuronales
MultinúcleoVarios procesadores completos en un chip, con cachés compartidasCasi todo lo que no es un microcontrolador simple
DSPMultiplicación y acumulación en un ciclo y direccionamiento circularFiltros digitales y procesamiento de señales

07En el laboratorio

Actividad 1 · Filas contra columnas

Escribir en C la suma de una matriz de 2048 × 2048 recorrida por filas y por columnas, medir los tiempos en una computadora y explicar la diferencia con la caché.

Actividad 2 · Ciclos por instrucción

En un microcontrolador con contador de ciclos, medir cuántos ciclos tarda un lazo y compararlo con el código ensamblador que generó el compilador.

Actividad 3 · Un pipeline a mano

Dibujar el diagrama de un pipeline de cinco etapas para una secuencia de seis instrucciones con dos dependencias de datos, con y sin adelantamiento, y contar los ciclos.

08Errores frecuentes

  • Comparar procesadores solo por el reloj. El CPI y la cantidad de instrucciones pesan igual.
  • Recorrer una matriz en contra de cómo está guardada. En C se guarda por filas; recorrerla por columnas puede multiplicar el tiempo.
  • Usar tamaños y separaciones potencia de dos sin pensar. Hacen coincidir los índices de caché y provocan fallos de conflicto.
  • Confundir arquitectura con organización. Un mismo binario ARM corre en procesadores muy distintos.

09Autoevaluación

¿Cómo se divide una dirección de 32 bits en una caché directa de 4 KB con líneas de 32 B?

5 bits de desplazamiento, 7 de índice (128 líneas) y 20 de etiqueta.

¿Qué tiempo medio de acceso da una tasa de fallos del 2 % con 1 ciclo de acierto y 80 de penalidad?

\( 1 + 0{,}02 \cdot 80 = 2{,}6 \) ciclos.

Un programa pasa de CPI 2 a CPI 1,2, pero el reloj baja de 1 GHz a 800 MHz. ¿Mejora?

Sí: el tiempo por instrucción pasa de 2 ns a 1,5 ns.

¿Qué tipo de fallo elimina aumentar la asociatividad?

Los de conflicto. Los de capacidad necesitan una caché más grande, y los obligatorios, líneas más largas o precarga.

10Para ampliar

  • David A. Patterson y John L. Hennessy. Computer Organization and Design: RISC-V Edition. 2.ª ed., Morgan Kaufmann, 2020. El texto de curso: conjunto de instrucciones, pipeline y jerarquía de memoria sobre RISC-V.
  • John L. Hennessy y David A. Patterson. Computer Architecture: A Quantitative Approach. 6.ª ed., Morgan Kaufmann, 2017. El nivel siguiente: paralelismo de instrucciones, cachés avanzadas y aceleradores.
  • Sarah L. Harris y David Harris. Digital Design and Computer Architecture: RISC-V Edition. Morgan Kaufmann, 2021. Construye un procesador RISC-V completo en HDL, desde las compuertas.
Desarrollo del contenido «Arquitecturas y organización de procesadores» de Técnicas Digitales II (cuarto nivel), según el diseño curricular de Ingeniería Electrónica, Plan 2023 — Ordenanza N° 1849 del Consejo Superior de la UTN. Volver al Mapa de Temas · catto.ar