2.1 Introducción a la arquitectura de computadoras

La arquitectura de computadoras es una disciplina central en el campo de la informática que estudia el diseño, la organización y la interacción entre los componentes de un sistema computacional. Esta área abarca tanto aspectos de hardware como de software que interactúan directamente con él, proporcionando principios fundamentales para construir sistemas eficientes, robustos y adaptables. Comprender su funcionamiento resulta esencial para analizar cómo se implementan, optimizan y escalan los sistemas informáticos en diversos contextos tecnológicos (Stallings 2021; Tanenbaum 2016; Murdocca and Heuring 2000; Bryant and O’Hallaron 2015).

Uno de los conceptos clave en esta disciplina es la distinción entre arquitectura de computadoras y organización de computadoras. La arquitectura se refiere a los elementos visibles para el programador, como el conjunto de instrucciones, los registros y los modos de direccionamiento. La organización, en cambio, se enfoca en los detalles físicos de implementación, tales como el diseño de circuitos y los ciclos de reloj necesarios para cada operación (Stallings 2021; Tanenbaum 2016; Murdocca and Heuring 2000; John L. Hennessy and Patterson 2017a; Bryant and O’Hallaron 2015).

Distinguir esta diferencia es crucial para analizar cómo los diseños arquitectónicos han evolucionado en respuesta a las crecientes demandas de rendimiento, eficiencia energética y escalabilidad. En este sentido, arquitecturas como ARM y RISC-V se han consolidado en sistemas embebidos y dispositivos móviles debido a su simplicidad estructural y bajo consumo energético (Waterman and Asanović 2014; Harris and Harris 2015; Null 2023). En contraste, la arquitectura x86 ha adoptado un enfoque híbrido que combina características de CISC y RISC, permitiéndole adaptarse a los exigentes requerimientos del mercado (Bryant and O’Hallaron 2015; Stallings 2021; Patterson et al. 2014).

El análisis de una arquitectura de computadoras implica examinar múltiples dimensiones técnicas que inciden en su desempeño y aplicabilidad. Entre las más relevantes se encuentran:

  • Repertorio de instrucciones: conjunto de operaciones que el procesador puede ejecutar directamente.
  • Capacidad de procesamiento: determinada por el número de bits con los que opera la CPU (por ejemplo, 32 o 64 bits).
  • Modos de direccionamiento de memoria: mecanismos mediante los cuales una instrucción accede a posiciones de memoria, como el direccionamiento directo, indirecto, segmentado o lineal.
  • Jerarquía de memoria y mecanismos de entrada/salida: estructuras que influyen en la eficiencia del acceso a datos y en la interacción con dispositivos periféricos.
  • Grado de paralelismo: capacidad de ejecutar múltiples instrucciones o tareas simultáneamente, ya sea a nivel de instrucción (ILP) o de procesos (TLP).

Estos dimensiones técnicas adquieren especial relevancia en sistemas contemporáneos aplicados a inteligencia artificial, internet de las cosas (IoT), computación en la nube y ciberseguridad, donde el equilibrio entre rendimiento, consumo energético y escalabilidad resulta determinante (David A. Patterson and Hennessy 2016a; Harris and Harris 2015; Belli et al. 2020).

Un componente esencial en el estudio de esta disciplina es la arquitectura del conjunto de instrucciones (ISA, por sus siglas en inglés), que define la interfaz entre el hardware y el software (John L. Hennessy and Patterson 2017a). La ISA especifica las operaciones disponibles, la codificación de las instrucciones y las formas de manipular los datos. Esta interfaz es fundamental para el diseño de compiladores, sistemas operativos y herramientas de simulación, ya que permite abstraer el funcionamiento del hardware a nivel lógico y facilita la portabilidad del software.

El diseño arquitectónico implica tomar decisiones que suponen compromisos (trade-offs), tales como la complejidad del hardware frente al rendimiento, o la eficiencia energética frente a la flexibilidad funcional. Estas decisiones determinan la aplicabilidad de una arquitectura en distintos dominios tecnológicos. Por ejemplo:

En síntesis, el estudio de la arquitectura de computadoras permite comprender el funcionamiento interno de los sistemas, optimizar el desarrollo de soluciones tecnológicas complejas y fomentar la innovación en ingeniería de sistemas. Su enseñanza resulta fundamental en la formación en ciencias de la computación y disciplinas afines.

Desde una perspectiva educativa, el uso de herramientas de simulación contribuye a una comprensión progresiva de los conceptos arquitectónicos, al permitir experimentar con distintas arquitecturas y observar de forma interactiva el comportamiento del hardware (Akram and Sawalha 2019b; Menchón, Tosini, and Goñi, n.d.). Esta dimensión didáctica adquiere especial importancia en el desarrollo de la herramienta propuesta en esta tesis, centrada en la arquitectura x86. Dicha arquitectura, ampliamente difundida en contextos académicos e industriales, también presenta desafíos significativos desde el punto de vista pedagógico, debido a su complejidad estructural y diversidad funcional.

Bibliografía

———. 2019b. “A Survey of Computer Architecture Simulation Techniques and Tools.” Ieee Access 7: 78120–45.
Belli, Laura, Antonio Cilfone, Luca Davoli, Gianluigi Ferrari, Paolo Adorni, Francesco Di Nocera, Alessandro Dall’Olio, Cristina Pellegrini, Marco Mordacci, and Enzo Bertolotti. 2020. “IoT-Enabled Smart Sustainable Cities: Challenges and Approaches.” Smart Cities 3 (3): 1039–71.
Bryant, Randal E, and David R O’Hallaron. 2015. Computer Systems: A Programmer’s Perspective. Pearson.
Harris, Sarah, and David Harris. 2015. Digital Design and Computer Architecture. Morgan Kaufmann.
Hennessy, John L., and David A. Patterson. 2017a. Computer Architecture: A Quantitative Approach. 6th ed. Boston: Morgan Kaufmann.
Menchón, Martı́n, Marcelo Tosini, and Oscar Goñi. n.d. “Herramientas de Software Educacional Para El Aprendizaje de Arquitectura de Procesadores.”
Murdocca, Miles J, and Vincent Heuring. 2000. Principles of Computer Architecture. Pearson Education.
Null, Linda. 2023. Essentials of Computer Organization and Architecture with Navigate Advantage Access. 6th ed. Burlington, MA: Jones & Bartlett Learning.
Patterson et al. 2014. Computer Organization and Design: The Hardware/Software Interface-5th. Morgan Kaufmann.
Patterson, David A., and John L. Hennessy. 2017. Computer Organization and Design RISC-v Edition: The Hardware Software Interface. Morgan Kaufmann.
———. 2016a. Computer Organization and Design ARM Edition: The Hardware Software Interface. Morgan kaufmann.
Stallings, William. 2021. Computer Organization and Architecture: Designing for Performance. 11th ed. Boston, MA: Pearson.
Tanenbaum, Andrew S. 2016. Structured Computer Organization. Pearson Education India.
Waterman, Andrew, and Krste Asanović. 2014. The RISC-V Instruction Set Manual, Volume i: User-Level ISA, Version 2.0. University of California, Berkeley. https://riscv.org/technical/specifications.