8479 - Utilización de Un Simulador de Cpu

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

INSTITUTO TECNOLÓGICO SUPERIOR DE CALKINI

EN EL ESTADO DE CAMPECHE

INGENIERIA EN SISTEMAS COMPUTACIONALES

QUINTO SEMESTRE

ARQUITECTURA DE COMPUTADORAS

CARLOS JIMENEZ LOPEZ

03 MANUAL DE PRÁCTICA: UTILIZACIÓN DE UN SIMULADOR DE CPU

8479 – AZIEL ESAÚ HIDALLGO Cob

GRUPO: 5A

CALKINI, CAMPECHE
03 MANUAL DE PRÁCTICA: UTILIZACIÓN DE UN SIMULADOR DE CPU
INTRODUCCIÓN
Este manual de práctica se centra en el uso de un simulador de CPU para comprender
el ciclo de instrucción y la ejecución de programas sencillos en lenguaje ensamblador.
Los simuladores de CPU son herramientas educativas valiosas que permiten visualizar
y experimentar con el funcionamiento interno de un procesador, facilitando la
comprensión de conceptos abstractos de la arquitectura de computadoras.
OBJETIVO
• Comprender el ciclo básico de instrucción de una CPU (Fetch-Decode-Execute).
• Observar cómo se ejecutan las instrucciones en un pipeline y los posibles riesgos
asociados.
• Analizar el impacto de diferentes arquitecturas de CPU (CISC y RISC) en el ciclo
de instrucción.
• Desarrollar habilidades para escribir y depurar programas sencillos en lenguaje
ensamblador.
LUGAR
• Laboratorio de computación o aula con acceso a computadoras con el simulador
de CPU instalado.
SEMANA DE EJECUCIÓN
• Semana 5 (o según la planificación del curso)
MATERIAL Y EQUIPO
• Computadora con el simulador de CPU instalado (MARS, WebMIPS,
SimpleScalar u otro).
• Conjunto de instrucciones de referencia (MIPS, x86 u otro).
• Programas de ejemplo en lenguaje ensamblador.
• Editor de texto o IDE para escribir y modificar código ensamblador.
DESARROLLO DE LA PRÁCTICA
1. Familiarización con el simulador:
o Explorar la interfaz del simulador, identificando las diferentes ventanas y
paneles.
o Comprender cómo cargar y ejecutar programas en ensamblador.
o Identificar las opciones para visualizar el pipeline, los registros, la
memoria y otros componentes de la CPU.
2. Ejecución de programas sencillos:
o Cargar y ejecutar programas de ejemplo en ensamblador proporcionados
por el profesor o encontrados en recursos en línea.
o Observar la ejecución paso a paso de las instrucciones, analizando el
ciclo de instrucción en cada etapa del pipeline.
o Identificar los valores de los registros y la memoria en cada paso de la
ejecución.
3. Análisis de riesgos en el pipeline:
o Introducir modificaciones en los programas de ejemplo para generar
riesgos en el pipeline (dependencias de datos, control, etc.).
o Observar cómo el simulador detecta y maneja estos riesgos.
o Analizar el impacto de los riesgos en el rendimiento del pipeline.
4. Comparación de arquitecturas CISC y RISC:
o Ejecutar programas similares en ensamblador para arquitecturas CISC y
RISC.
o Comparar el número de instrucciones, la longitud del código y el
rendimiento en cada arquitectura.
o Analizar las ventajas y desventajas de cada arquitectura en relación con
el ciclo de instrucción y la segmentación.
5. Escritura y depuración de programas:
o Escribir programas sencillos en ensamblador para realizar tareas
específicas (suma, multiplicación, operaciones lógicas, etc.).
o Utilizar el simulador para ejecutar y depurar los programas, identificando
y corrigiendo errores.
o Experimentar con diferentes modos de direccionamiento y observar su
impacto en la ejecución del programa.
EVALUACIÓN Y RESULTADOS
Aquí tenemos la ventana principal del emulador MARS, donde se puede apreciar
funciones básicas
Componentes visibles en la ventana de MARS:
1. Registros Internos del Procesador
2. Instrucciones en Ejecución
3. Trazas de Pipeline
4. Estado del Cache
5. Eventos y Contadores de Desempeño.
6. Señales de Control
7. Interrupciones y Excepciones
Utilidad de la ventana MARS:
• Depuración de Fallos
• Optimización de Procesamiento
• Diagnóstico de Problemas de Hardware

Aquí se tiene un código simple para la suma de dos números.


Aquí es posible apreciar la ejecución del código junto con los ciclos de instrucción, así
como los estados de memoria
El siguiente código es un “Hola Mundo”

Y por último un código de bifurcación en MIPS


Comparación entre las arquitecturas CISC y RISC, destacando las diferencias en
el ciclo de instrucción y el rendimiento.
Características CISC RISC
Conjunto de instrucciones Grande y complejo Pequeño y sencillo
Ciclo de instrucción Múltiples ciclos por Un ciclo por instrucción
instrucción
Instrucciones Pueden hacer varias Realizan una sola
operaciones operación
Pipeline Menos eficiente debido a la Más eficiente,
complejidad optimizado para el pipeline
Uso de memoria Menos Más instrucciones,
instrucciones, más tiempo menos ciclos por
por instrucción instrucción
Decodificación Sencilla y rápida
Compleja y lenta
Rendimiento Mejor en tareas que Mejor en aplicaciones con
requieren instrucciones alta demanda de
complejas procesamiento y eficiencia
energética
Conclusiones sobre la importancia de comprender el ciclo de instrucción y las
diferentes arquitecturas de CPU.
La comprensión del ciclo de instrucción y de las diferentes arquitecturas de CPU es
fundamental para optimizar el rendimiento, elegir hardware adecuado, y escribir software
eficiente. Esta base de conocimiento es esencial para ingenieros de hardware,
desarrolladores de software, y profesionales en computación que buscan maximizar la
eficiencia y el rendimiento en diversas aplicaciones, desde sistemas embebidos hasta
computadoras de alto rendimiento.
REFERENCIAS
• Patterson, D. A., & Hennessy, J. L. (2013). Computer Organization and Design:
The Hardware/Software Interface. Morgan Kaufmann.
• Hennessy, J. L., & Patterson, D. A. (2017). Computer Architecture: A Quantitative
Approach. Morgan Kaufmann.
• Tanenbaum, A. S. (2014). Structured Computer Organization. Pearson.
• emulsiV - Simulator for Virgule, a minimal processor based on the RISC-V
architecture. (s/f). Github.Io. Recuperado el 26 de septiembre de 2024, de
https://eseotech.github.io/emulsiV/
• Embedded Systems, in Pyjama! [@inpyjama]. (s/f). 0. Lab setup (codespace) |
assembly, C on bare-metal RISC-V. Youtube. Recuperado el 26 de septiembre de
2024, de
https://www.youtube.com/watch?v=MBL3wJp7cAA&list=PLFt5JBAXXlQow0PLTd
qvaiIUMR a71VQHl&index=2
• 1. Clone the c-ninja-resources repository from here:
https://github.com/inpyjama/c-ninja-l...
• 2. Download and install Docker Desktop from here: https://www.docker.com
• 3. Get VSCode for your operating system from here:
https://code.visualstudio.com/download#
ANEXO
I. Simuladores de CPU Recomendados
• MARS (MIPS Assembler and Runtime Simulator): Ideal para principiantes,
ofrece una interfaz gráfica intuitiva y visualización del pipeline, registros y
memoria. Descarga gratuita desde:
https://courses.missouristate.edu/KenVollmar/MARS/
• WebMIPS: Simulador MIPS basado en web, accesible desde cualquier
navegador. Permite la ejecución interactiva de programas y visualización
del pipeline en tiempo real. Disponible en: [se quitó una URL no válida]
• Emulador Ripes: Simulador de código abierto con soporte para múltiples
arquitecturas (RISC-V, MIPS, etc.). Interfaz gráfica moderna y
personalizable, visualización del pipeline, registros y memoria. Disponible
en: https://github.com/cliffordwolf/picorv32
II. Conjuntos de Instrucciones de Referencia
• MIPS: Arquitectura RISC ampliamente utilizada en la enseñanza, con un
conjunto de instrucciones sencillo y bien documentado. Muchos
simuladores, incluyendo MARS y WebMIPS, están diseñados
específicamente para MIPS. • Otros conjuntos de instrucciones: Si se
desea utilizar otra arquitectura (x86, ARM, RISC-V, etc.), es necesario
asegurarse de que el simulador elegido la soporte.
III. Programas de Ejemplo en Lenguaje Ensamblador
• Ejemplos proporcionados con el simulador: La mayoría de los simuladores
incluyen ejemplos de programas en ensamblador que ilustran diferentes
conceptos y características de la arquitectura.

También podría gustarte