← Organización y Arquitectura de Computadoras
Clase 03
M.I. José Antonio de Jesús Arredondo Garza · 7 sep 2026 · Tema 2 — Continuación: Pico 1 vs. Pico 2, RISC-V (filosofía, modularidad, libre de regalías), CISC vs. RISC, periféricos, FPU con 32 registros de punto flotante, modos de ejecución (bootloader), independencia funcional de periféricos (ADC + DMA).
En corto
- Pico 1 vs. Pico 2: impacto del overclocking, ciclo máquina, tamaño del chip, pines, periféricos (4 → 8 máquinas de estado de interfaz), memoria.
- RISC-V: arquitectura abierta, libre de regalías, modular (instrucciones base + extensiones), alternativa a Intel (CISC) y ARM (RISC).
- CISC vs. RISC: Intel CISC · ARM y RISC-V RISC. Anchos de palabra 32/64/128 bits.
- RISC-V estructura: 32 registros generales (x0–x31), modularidad de instrucciones, ABI (asignación de uso por software), latencia en saltos (>1 ciclo).
- FPU (Pico 2): 32 registros de punto flotante (s0–s31), operaciones suma/resta/mult/div/sqrt, no hay funciones trascendentales directas.
- Bootloader Pico 2: selecciona en arranque entre ARM normal o RISC-V (un bit, ruta distinta).
- Independencia de periféricos: ADC + DMA trabajan autónomamente sin intervención de la CPU una vez programados.
🎯 Para el examen
- CISC vs. RISC: Intel = CISC; ARM y RISC-V = RISC.
- Ensamblador: overflow, carry, modos de direccionamiento (inmediato, indirecto).
- Saltos en RISC: duran >1 ciclo máquina.
- Independencia funcional: periféricos (ADC/DMA) funcionan autónomos una vez configurados.
- FPU Pico 2: 32 registros s0–s31 de punto flotante; programa compilado para Pico 2 no corre en Pico 1.
Diferencias Pico 1 vs. Pico 2
- Impacto del overclocking: cambios en el ciclo máquina y la capacidad de procesamiento.
- Tamaño del chip y pines: diferencias en la organización física.
- Periféricos: expansión de máquinas de estado de interfaz de 4 a 8.
- Mapas de memoria: distinción entre versiones en la organización de RAM, Flash y periféricos.
RISC-V — Arquitectura abierta y modular
Filosofía: "Proponer una arquitectura libre con un conjunto de instrucciones básico y la posibilidad de agregar instrucciones a través de modularidad". Surgió como alternativa abierta para no pagar regalías de licenciamiento.
- Modularidad: conjunto de instrucciones base + extensiones.
- Libre de regalías: contrasta con arquitecturas propietarias (Intel CISC, ARM RISC).
- Origen: UC Berkeley (2014/2015) como proyecto de investigación.
- Consorcio RISC-V International: miembros como Google, Intel, Huawei, Ali Cloud.
CISC vs. RISC — Comparación de arquitecturas
- CISC (Complex Instruction Set Computer): Intel x86/x64 — instrucciones complejas de ancho variable, operan directamente en memoria.
- RISC (Reduced Instruction Set Computer): ARM Cortex, RISC-V — instrucciones simples y de ancho fijo, principalmente load/store, pipeline fuerte.
- Anchos de palabra: 32 bits, 64 bits, 128 bits (extensiones RISC-V).
Estructura de instrucciones y registros en RISC-V
- Registros generales: 32 registros (x0–x31) para propósito general.
- ABI (Application Binary Interface): normas que asignan un uso determinado a cada registro (p. ej. x0 = zero, envío de parámetros en funciones).
- Codificación de instrucciones: modular en memoria.
- Latencia de saltos: defecto de arquitectura RISC: las instrucciones de salto duran más de un ciclo máquina (>1 ciclo).
Unidad de Punto Flotante (FPU) en Pico 2
- Registros: 32 registros de punto flotante (s0–s31).
- Operaciones soportadas: suma, resta, multiplicación, división, raíz cuadrada.
- Sin funciones trascendentales: no incluye sen, cos, exp, log de forma nativa en la FPU.
- Portabilidad: un programa compilado para la FPU de Pico 2 no puede ejecutarse en Pico 1 (que no tiene FPU).
- Soporte en compiladores: estado actual del soporte para instrucciones DSP aún en desarrollo.
Mecanismo de selección de arquitectura en Pico 2
Bootloader: proceso donde "el procesador detecta un determinado bit que se habilita por software al inicio a través del bootloader y toma dos caminos: uno puede ser ARM normal y el otro RISC-V". Si se arranca en modo normal de ARM, no se puede acceder a RISC-V.
- Selección en tiempo de arranque mediante un bit de control.
- Dos rutas de ejecución: ARM estándar o RISC-V.
- Decisión tomada al inicio, no intercambiable en tiempo de ejecución.
Independencia funcional de periféricos
Definición: criterio de diseño en el que "una vez programado el periférico, no se tenga que estar refrescando cada vez", permitiendo que funcione autónomamente sin depender continuamente de la CPU.
Ejemplo — ADC con DMA: al configurar el Convertidor Analógico-Digital (ADC) usando acceso directo a memoria (DMA) y separar una región de RAM, el ADC realiza conversiones continuas y llena la memoria sin requerir intervención ni ciclos de CPU. Ambos núcleos pueden atender otras tareas mientras el periférico trabaja.
Ejemplos y ejercicios de la clase
- Generación de onda cuadrada y paralelismo: diferencias entre Pico 1 y Pico 2 requieren ajustar el procedimiento de generación de ondas por cambios en la arquitectura.
- Filtro digital en ensamblador de punto flotante: rutina que implementa un filtro usando instrucciones FPU y registros s0–s31.
- Simulación en Visual Studio Code: uso de VS Code integrado con Make, emulador integrado (evita máquinas virtuales pesadas como QEMU).
- Ensamblador cruzado (inline) en MicroPython: método de desarrollo rápido incrustrando código ensamblador directamente en MicroPython.
Contexto — no examen
- (Contexto — no examen) UC Berkeley: lugar donde surgió RISC-V (2014/2015). Anécdota descriptiva del campus: óvalo gigante con pinos, inclinación, comparación con Ciudad Universitaria (CU).
- (Contexto — no examen) Recursos y documentación: libros sobre RISC-V disponibles traducidos descargables, páginas de referencia rápida de instrucciones en línea, consorcio RISC-V International.
- (Contexto — no examen) Expansión de memoria: disponibilidad comercial de módulo externo para expandir memoria de Pico vía interfaz serial.
Pendiente / próxima clase
- Revisión paso a paso del conjunto de instrucciones en ensamblador, tecleando y analizando cada instrucción.
- Comenzar con instrucciones básicas antes de ejercicios aplicados.
- Práctica de direccionamiento a registros: ejercicios iniciales sin librerías intermedias.