INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA PRÁCTICA 1: ESTRUCTURA INTERNA DE UNA CPU.

Documentos relacionados
Introducción al simulador

Arquitectura del CPU. Organización del Computador 1 Verano 2016

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.

Los números naturales y enteros en el 80X86 y en LAN

Arquitectura de Computadores II Clase #3

Memoria y Buses. Organización de Computadoras Universidad Nacional de Quilmes

El Diseño de un Lenguaje Máquina

Ejercicios del tema 4. El procesador

Interrupciones y entrada/salida

ESTRUCTURA. Estructura básica de un computador ESTRUCTURA BÁSICA DE UN COMPUTADOR RELOJ. Unidad de control CPU ULA. Onda cuadrada RELOJ

LABORATORIO DE COMPUTADORAS

SEGUIMIENTO DE UNA INSTRUCCIÓN EN UNA CPU

Bus de direcciones. Bus de datos

INSTRUCCIONES CONDICIONALES

Introducción a la arquitectura de computadores

MANUAL DE INSTALACION

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

EXAMEN ORDINARIO DE ORGANIZACIÓN DE COMPUTADORES

Práctica 3 - Arquitectura del CPU

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

Organización de Computadoras. Clase 6

Arquitectura del ordenador

COMPUTADORA. Introducción Las computadoras se usan en diversas aplicaciones

Arquitectura de Computadoras

Guía de ejercicios # 3 Memoria, Buses, Q2 y Accesos

Arquitectura de Computadores II Clase #3

Elementos constituyentes de la ejecución de un programa

1.2.- EL MICROPROCESADOR.

Repaso Registros internos Z80 1/37

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

PRÁCTICA N 5 LABORATORIO DE SISTEMAS MICROPROCESADOS

Primera pregunta (1 punto) Segunda pregunta (1 punto) Tercera pregunta (2 puntos) PRIMERA PARTE (SIN LIBROS) Duración: 45 minutos

Un. VIII. Generación de Código Objeto

Arquitectura de Computadores Problemas (hoja 4). Curso

Seguimiento. Organización del Computador I. Gustavo Cairo Carlos A. Di Pietro Carolina Lang. 1 er Cuatrimestre de 2016

Tema 2: Introducción a los Computadores

Ejercicios del tema 4. El procesador

Práctica 5 - Memoria Cache

Conceptos de Arquitectura de Computadoras Curso 2015

3 - Arquitectura interna de un up

Formato. Microcontroladores DURACIÓN. Revisó. Aprobó. Coordinador. r de la Carreraa. Gestión de la Calidad. Maestro. Autorizó PLAN DE ESTUDIO

Contenidos: Definiciones:

ARQUITECTURA DEL PIC16F84A

Memoria principal e Interconexión

Programación de IA-32 Modo Real

PROCESADORES I ENSAMBLADOR Y SIMULADOR

WINDLX. Álvarez Yanes, Rubén Darias Camacho, Yeray Monzón Hernández, Juan Ramón

DESCRIPCIÓN DE LAS INSTRUCCIONES

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR

Tema 1. Fundamentos del lenguaje ensamblador

Fundamentos de los Computadores Grado en Ingeniería Informática

5 - Lenguaje Ensamblador

2. Números naturales: sistema de numeración y operaciones básicas

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

DESCRIPCIÓN DE LA ARQUITECTURA DE LA MÁQUINA RUDIMENTARIA

Laboratorio - Organización de la CPU

Práctica 3: Programación en ASM Orga 1

Sector de arranque. Introducción a la programación para ingeniería de computadores. Gustavo Romero López. Arquitectura y Tecnología de Computadores

Tema 2: Conceptos básicos. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Arquitectura de Computadores Problemas (hoja 2). Curso

Relación de Problemas I

SISTEMAS OPERATIVOS Arquitectura de computadores

Organización de computadoras. Clase 2. Universidad Nacional de Quilmes. Lic. Martínez Federico

COMUNICACIÓN CON PANTALLAS MP-MERCURY MEDIANTE PROTOCOLO TCP-ASCII

Práctica 2: Sector de arranque

Práctica 2: Sector de arranque

Estructura de Computadores Tema 1. Introducción a los computadores

Clase Práctica - caché

MOVE.W #$6728,D0 MOVE.W #100,D1 BUCLE SUB.W #$02A6,D0 SUBQ.W #1,D1 BNE BUCLE END D0 100 D1 (D0)-678 D0 (D1)-1 D1. No (D1)==0?

Clase Práctica Memoria Caché

5. Procesador: camino de datos y control

Introducción a los microcontroladores. Decanato de Postgrado Mayo de 2011

Tema 4. Fundamentos del ensamblador

Tema: Microprocesadores

Bibliografía básica de referencia: Fundamentos de Informática para Ingeniería Industrial, Fernando Díaz del Río et al.

Sistemas con Microprocesadores I

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 1 - INTRODUCCIÓN JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Práctica de Arquitectura de Computadores Sistemas de Entrada/Salida: Entrada/Salida Programada Curso 2016/2017

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88

Tema 1 Introducción a los computadores

Guía de ejercicios # 11 - Jerarquía de memoria

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Guía de ejercicios # 4 Rutinas: modularización y reuso

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Conceptos y definiciones básicos en computación

Clasificación del procesador según el número de referencias a memoria.

DBC - Diseño y Construcción de un Ordenador de 8 Bits

PRÁCTICA N 5 LABORATORIO DE SISTEMAS MICROPROCESADOS

LA INTELIGENCIA DEL MICROPROCESADOR (una mirada rápida de la arquitectura)

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION INGENIERIA EN COMPUTACION ARQUITECTURA DE MAQUINAS III. SIMULADOR DLX (jbz)

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES

Arquitectura (Procesador familia 80 x 86 )

Transcripción:

INFORMÁTICA INDUSTRIAL. 3º INGENIERÍA TÉCNICA ELECTRÓNICA PRÁCTICA 1: ESTRUCTURA INTERNA DE UNA CPU. OBJETIVOS: En esta práctica se pretende que el alumno aprenda la estructura y funcionamiento de un procesador sencillo basado en el modelo de Von Neumann. El alumno deberá conocer cómo se ejecutan las instrucciones de lenguaje o código máquina, y extraer las características principales del procesador estudiado. PREPARACIÓN: En el aula de ordenadores se ejecutarán un par de programas sencillos (en código máquina) en un simulador de una CPU simple. La CPU se compone de una ALU, una Unidad de Control, y los registros habituales (PC, IR, MAR, MDR, etc.), como se ve en la siguiente figura. En tal figura se observan los 8 registros de la CPU (con el valor que contienen en hexadecimal) y los buses (todos tienen un nombre, pero no son útiles para esta práctica). Entre los buses, destacar el gran bus (contiene el valor 000B en la figura) que conecta los registros con la ALU, el IR y los MAR, MDR. Además hay un registro especial encima de la ALU: es el registro de estado (SR, State Register), que indica qué ha ocurrido tras hacer una operación en la ALU. Concretamente tiene 4 bits, que señalan: si la operación dio como resultado cero (se pondría a 1 el bit ZF, Zero Flag). si la operación generó un acarreo (se pondría a 1 el bit CF, Carry Flag). si se produjo desbordamiento (se pondría a 1 el bit OF, Overflow Flag). si el signo del resultado es negativo (se pondría a 1 el bit SF, Sign Flag). Los programas que se quieren ejecutar (en simulación) deben estar en ficheros de texto (pero con la extensión.prg). Tales ficheros deben contener una línea por cada instrucción o dato que se almacenará en la memoria (del ordenador simulado), y además una primera línea con dos números (hexadecimales), que son dos direcciones: la primera es donde se almacenará el código ensamblador, y la segunda, el valor inicial del PC (Program Counter, Contador de Programa), o sea, será la dirección de donde se empiecen a ejecutar las instrucciones. Por ejemplo, el programa de la izquierda de la figura siguiente, nos dice que las instrucciones y datos se almacenarán en la dirección 1

0x100 de la memoria, y el PC tomará el valor 0x106. Luego tras cargar tal fichero para simular su ejecución la memoria tendrá el contenido dado por la parte derecha de tal figura (se ha separado con una línea horizontal los datos de las instrucciones). Evidentemente, el programa está en código máquina, y no podemos saber qué hará si no sabemos el formato del juego de instrucciones. Afortunadamente, el simulador de CPU puede desensamblar el código máquina, esto es, traducirlo a lenguaje ensamblador (más fácil de entender por los humanos). En la última columna de la derecha se pone la traducción a lenguaje ensamblador. Fichero pot.prg 100 106 5800 2801 5840 2101 Direcciones de Memoria 0x100 0x101 0x102 0x103 0x104 0x105 0x106 (PC) 0x107 0x108 0x109 0x10A 0x10B 0x10C 0x10D 0x10E 0x10F 0x110 Datos (o instrucciones) 5800 2801 5840 2101 Traducción de las instrucciones CLR R0 MOVH R0, 1 CLR R1 MOVL R1, 1 MOV [R0], R1 INC R0 ADD R1,R1,R1 MOV [R0], R1 INC R0 ADD R1,R1,R1 MOV [R0], R1 Algunas aclaraciones sobre el juego de instrucciones de esta CPU: El destino de la operación es el registro de la izquierda. A la derecha están los fuentes. CLR pone a cero el registro (CLEAR). INC incrementa en 1 el valor del registro. ADD suma el contenido de dos registros y lo almacena en el destino. MOV escribe o lee de memoria (aquí se usa el símbolo corchete [ ] para indicar acceso a memoria). Hay dos variantes de MOV: MOVH (del inglés HIGH) carga un número de 8 bits (inmediato) en los 8 bits más significativos de un registro, y MOVL (del inglés LOW) carga un número de 8 bits en los 8 bits menos significativos de un registro. Por ejemplo las dos instrucciones CLR R1 y MOVL R1,1, consiguen primero poner a cero el registro R1 y luego ponerlo a 1. La unidad direccionable de la memoria no es el byte (se pregunta en la tabla de resultados). Cada vez que se carga un programa o se reinicia (resetea) el ordenador, toda la memoria se pone a 0 (0x). La instrucción cuyo código máquina es el 0x es la MOV R0, R0, es decir una instrucción que no hace nada útil, ni provoca ningún cambio en el registro R0. En base a este ejemplo, contestar a las preguntas de primera tabla de resultados (última página de este boletín). EJERCICIOS A REALIZAR EN LABORATORIO: Para simular que se está ejecutando un programa hay que hacer: 1. Ejecutar el programa simulador (que se llama smldrcpu.exe). 2. Cargar en el simulador el programa en código máquina. El primer programa con que trabajaremos en esta prácticas se llama pot.prg y el segundo impares.prg. 2 3. A continuación comprobar que la carga del programa se hizo correctamente. Para ello el simulador dispone de una opción para ver el contenido de la memoria del ordenador simulado. Se aconseja usar Utilidades->Memoria->Desensamblador. Se verá una pantalla como la de la siguiente figura.

Obsérvese cómo está cargado el programa y los datos del fichero pot.prg (el de la preparación de esta práctica). Pulsando sobre un registro se mostrará la zona de memoria apuntada por tal registro, es decir, las direcciones del valor del registro. También se puede especificar una dirección numérica en la caja Ir a.... 4. Para el fichero impares.prg, copiar el programa cargado en un folio y pensar en lo que va a hacer. 5. Tras salir del desensamblador, se puede simular la ejecución del programa. Esto se puede hacer instrucción a instrucción (pulsando F8), o ciclo a ciclo (periodo) de reloj (pulsando F7, o haciendo clic sobre el símbolo que representa un flanco de subida de una señal cuadrada fe, en la esquina superior izquierda). Si se ejecuta ciclo a ciclo se observará que las instrucciones tardan varios ciclos en ejecutarse (fases IF, ID, EX). Se empezará ejecutando por la dirección que indica el PC y se seguirán ejecutando instrucciones, mientras el PC se va incrementando. 6. También puede abrirse la ayuda del simulador, que es otro fichero llamado usuario.hlp. En la ayuda se explica también como simular un programa, y además el juego de instrucciones que tiene el procesador simulado. 7. Contestar a las preguntas de la tabla de resultados. ALGUNAS ACLARACIONES DEL SIMULADOR: Para incrementar el PC, le suma cero, pero añadiéndole un acarreo (carry, señal CARRY_IN activada) de 1, en definitiva le suma 1. Lo que se muestra en el simulador en cada ciclo de reloj, ya se ha ejecutado. 3

4 PÁGINA DEJADA INTENCIONADAMENTE EN BLANCO

ALUMNOS: PRACTICA 1: RESULTADOS TURNO(fecha/hora): GRUPO (número): Tamaño en bits de una instrucción Tamaño en bits de la unidad direccionable de la memoria Tamaño en bits del PC Tamaño en bits de los registros R0, R1,...,R7 Número de bits que se usarán dentro del formato de una instrucción para indicar un registro Número de bits del bus de datos de la memoria Número de bits del bus de direcciones de la memoria EJERCICIOS DE PREPARACIÓN Qué hace el programa del ejemplo de la figura suponiendo que repitiera más veces las últimas tres instrucciones? Cómo lo hace? Ciclo 1 RESULTADOS DE LABORATORIO: PROGRAMA 1 (POT.PRG) Explique que hace en cada ciclo (periodo) la instrucción INC R0 Explique que hace en cada ciclo (periodo) la instrucción MOV [R0], R2. Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 5

Rellene cuántos ciclos de reloj duraría cada fase (o etapa) de ejecución de las dos instrucciones anteriores, si se definiera que la instrucción tiene 3 fases: IF, ID, EX instrucción INC R0 instrucción MOV [R0], R2. IF ID EX RESULTADOS DE LABORATORIO: PROGRAMA 2 (IMPARES.PRG) Qué hace el segundo programa del ejemplo (impares.prg)? Cómo lo hace? Tamaño máximo direccionable de la memoria en bytes Qué condición o pregunta hace la instrucción de salto? Si el bus de memoria funcionara a 100 MHz, cuántos bits por segundo se podrían transmitir en tal bus? (suponiendo que se transmite un dato por ciclo de bus) Si todas las instrucciones duraran lo mismo que INC R0 o DEC R2, y el reloj de la CPU fuera de 1 GHz, cuántas instrucciones podría ejecutar en un segundo este ordenador? Utilizando la ayuda del simulador (fichero usuario.hlp->juego de instrucciones), indique porqué la instrucción MOV [R0], R2 es en código máquina 0x1040 Utilizando la ayuda del simulador (fichero usuario.hlp->juego de instrucciones) y la pregunta anterior, indique como sería el código máquina de la instrucción MOV [R1], R7 6