# Computer Architecture
La Computer architecture define la organización y el comportamiento de los componentes de hardware de una computadora, enfatizando las interacciones entre CPU, memoria y I/O que determinan el rendimiento y la eficiencia energética.
Computer architecture encompasses the design and organization of the central processing unit (CPU), memory hierarchy, input/output systems, and the interconnections among these components. It includes instruction set architectures (ISAs), datapath design, control logic, pipelining strategies, cache hierarchies, virtual memory, memory coherence, and parallel processing models. Foundational models such as Von Neumann (shared memory for instructions and data) and Harvard (separate instruction and data memories) illustrate how architectural choices impact performance, power, and cost. Modern architectures balance latency and throughput through techniques like deep pipelines, branch prediction, cache coherence protocols, memory-level parallelism, and multi-core or many-core designs. A complete view also considers I/O subsystems, storage hierarchies, and virtualization that enable scalable, secure, and interoperable systems.
graph LR
Center["# Computer Architecture"]:::main
Rel_security_architecture["security-architecture"]:::related -.-> Center
click Rel_security_architecture "/terms/security-architecture"
Rel_hardware_security["hardware-security"]:::related -.-> Center
click Rel_hardware_security "/terms/hardware-security"
Rel_security_automation["security-automation"]:::related -.-> Center
click Rel_security_automation "/terms/security-automation"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explícalo como si tuviera 5 años
🧠 La arquitectura de computadoras es como el plano de una ciudad, decidiendo cómo los edificios (procesadores) y las carreteras (conexiones) trabajan juntos para realizar las tareas de manera eficiente.
🤓 Expert Deep Dive
## Inmersión Experta: Arquitectura de Computadoras
La arquitectura de computadoras moderna trasciende las descripciones básicas de componentes, adentrándose en intrincadas capas de abstracción y optimización. A nivel de la Arquitectura del Conjunto de Instrucciones (ISA), la divergencia fundamental entre los paradigmas RISC (p. ej., ARM) y CISC (p. ej., x86) dicta la complejidad de las instrucciones, el uso de registros y los modos de direccionamiento, impactando tanto la portabilidad del software como la implementación del hardware. La microarquitectura materializa luego esta ISA, empleando técnicas avanzadas como la ejecución superescalar, la ejecución fuera de orden (OoOE) con búferes de reordenación y estaciones de reserva, y sofisticados mecanismos de predicción de saltos (p. ej., Gshare, BTB) para maximizar el Paralelismo a Nivel de Instrucción (ILP).
La jerarquía de memoria es un espacio de diseño crítico, que equilibra latencia y rendimiento a través de cachés multinivel (L1, L2, L3) gestionadas por protocolos como MESI y empleando diversas políticas de reemplazo (LRU, FIFO). Más allá de la coherencia de caché, los modelos de consistencia de memoria (secuencial, relajada) influyen profundamente en los paradigmas de programación multiprocesador. El paralelismo se explota a Nivel de Hilo (TLP) y a Nivel de Datos (DLP), manifestándose en diseños multinúcleo con cachés compartidas y arquitecturas NUMA, y en sistemas de muchos núcleos como las GPU que utilizan modelos de ejecución SIMT y paralelismo masivo. Las interconexiones, que evolucionan de buses a sofisticadas Redes en Chip (NoC) con topologías como mallas y fat-trees, son vitales para la comunicación entre núcleos. El rendimiento se cuantifica cada vez más por la eficiencia energética (Rendimiento/Vatio) y la eficiencia de área (Rendimiento/Área), impulsando innovaciones en DVFS, bloqueo de reloj y aceleradores especializados (ASIC, FPGA, TPU) para la computación heterogénea. Las características de seguridad arquitectónica, como las TEE y las mitigaciones de canales laterales, también son primordiales.
❓ Preguntas frecuentes
What is the difference between computer architecture and computer organization?
Computer architecture defines the high-level design and the functional capabilities of a system, while computer organization describes how the components are arranged and operate to realize those capabilities.
What are Von Neumann and Harvard architectures?
Von Neumann architecture uses a single shared memory for instructions and data; Harvard architecture uses separate memories for instructions and data, affecting bandwidth and design tradeoffs.
Why is memory hierarchy important in architecture?
A memory hierarchy (registers, L1/L2/L3 caches, main memory) hides latency and increases effective bandwidth by exploiting locality, thereby improving overall performance.