TP 4
TP 4
TP 4
Comisión: 1K4
1) ¿Qué entiende por ciclo de instrucción? ¿Cómo se subdivide?
Interrupción: si las interrupciones están habilitadas y ha ocurrido una interrupción, guardar el estado del
proceso actual y atender la interrupción.
2)
La memoria de acceso aleatorio es la memoria desde donde el procesador recibe las instrucciones y guarda los
resultados.
3)
Se emplean para controlar las instrucciones en ejecución, manejar direccionamiento de memoria y propiciar la
capacidad aritmética.
Los registros vienen de tres tipos: datos, direcciones e índice. El tamaño de un registro depende del CPU; los más
simples tienen registros que aceptan 8 o 16 bits de datos y los más complejos tienen registros de 32, 48 o 64 bits.
4)
¿Qué es un decodificador y qué función cumpliría en una memoria?
Un decodificador o descodificador es un circuito combinacional, cuya función es inversa a la del codificador, esto es,
convierte un código binario de entrada (natural, BCD, etc.) de N bits de entrada y M líneas de salida (N puede ser
cualquier entero y M es un entero menor o igual a 2 N), tales que cada línea de salida será activada para una sola de
las combinaciones posibles de entrada.
5) Explique la diferencia entre el lenguaje máquina y el lenguaje simbólico. ¿De qué otra forma se denominan
estos lenguajes? ¿Varían según las arquitecturas?
LENGUAJE MÁQUINA.
sa
Las instrucciones de máquina o instrucciones del computador son las que determinan el funcionamiento de la CPU
que las ejecuta, la CPU puede realizar una diversidad de funciones que son el reflejo de la variedad de las
instrucciones definidas para dicha CPU, el programador tiene un repertorio de instrucciones como medio para
controlar la CPU.
Las operaciones más complejas se realizan combinando estas instrucciones sencillas, que pueden ser ejecutadas
secuencialmente o mediante instrucciones de control de flujo.
Posibilidad de transferir un programa a la memoria sin necesidad de traducción posterior, lo que supone una
velocidad de ejecución superior a cualquier otro lenguaje de programación.
LENGUAJE ENSAMBLADOR
Uso: Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con los potentes
lenguajes de alto nivel.
Muchos dispositivos programables (como los microcontroladores) aun cuentan con el ensamblador como la única
manera de ser manipulados.
Su importancia: Es considerado de primera generación. A partir de el se derivaron todos los demás lenguajes hasta llegar
al de alto nivel.
Un compilador es querer traducir un programa de un lenguaje de alto nivel a otro lenguaje de nivel
inferior(típicamente lenguaje maquina).
Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA (del inglés Instruction Set
Architecture, Arquitectura del Conjunto de Instrucciones) es una especificación que detalla las instrucciones que
una CPU de un ordenador puede entender y ejecutar, o el conjunto de todos los comandos implementados por un
diseño particular de una CPU. El término describe los aspectos del procesador generalmente visibles a un
programador, incluyendo los tipos de datos nativos, las instrucciones, los registros, la arquitectura de memoria y las
interrupciones, entre otros aspectos.
Existe principalmente de 3 tipos: CISC (Complex Instruction Set Computer), RISC (Reduced Instruction Set Computer)
y SISC (Specific Instruction Set Computer).
Los procesadores de los microcontroladores PIC son de tipo RISC.
La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir este conjunto de características
de la microarquitectura, que son los elementos y técnicas que se emplean para implementar el conjunto de
instrucciones. Entre estos elementos se encuentras las microinstrucciones y los sistemas de caché.
9) Explique los componentes del Modelo de Von Neumann. Nombre sus principales registros y buses.
El programa almacenado en memoria es el aspecto más importante del modelo. Sus componentes son: • Unidad de
Memoria: almacena datos e instrucciones. • Unidad Aritmético Lógica (ALU): procesa los datos e instrucciones. •
Unidad de Control (UC): realiza el control y dirección de todo. • Unidad de Entrada: provee los datos e instrucciones
requeridos por el sistema. •Unidad de Salida: recibe los resultados. La ALU y la UC forman la Unidad Central de
Procesamiento (CPU). Las flechas gruesas representan RUTA DE DATOS y las flechas finas RUTAS DE CONTROL.
13) Indique las partes en que está compuesta la estructura del computador IAS y las subdivisiones de la CPU. Describa
en forma sintética la función que cumple cada una de ellas y sus registros.
MAR: Especifica la dirección en memoria de la palabra que va a ser escrita o leída en MBR.
MBR: Contiene una palabra que debe ser almacenada en la memoria o es usado para recibir una palabra procedente
IR: Contiene los 8 bits del código de operación de la instrucción que se va a ejecutar.
IBR: Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria.
PC: contienen la dirección de la próxima pareja de instrucciones que van a ser captadas de la memoria.
AC y MQ se emplean para almacenar operandos y resultados de operaciones de la ALU Temporalmente. Por ejemplo, el
resultado de multiplicar dos números de 40 bits en un numero de 80 bits, los 40 bits más significativos se almacenan
en AC y los menos significativos se almacenan en MQ
14)
A partir del Modelo de Von Neumann, indique que otros registros se incorporan al IAS y que uso tienen
IBR: Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria
MQ: Se emplea para almacenar operandos y resultados de operaciones de la ALU temporalmente. Por ejemplo, el
resultado de multiplicar dos números de 40 bits es un numero de 80 bits; los 40 bits mas significativos se almacenan
en AC y los menos significativos se almacenan en MQ.
15) ¿Cuántas palabras tiene la memoria del IAS?, ¿qué longitud tienen?, ¿qué tipos de palabras usa?
La memoria IAS consiste en 1000 palabras, de 40 bits cada una tanto palabras como datos se almacenan ahí; por lo
tanto, los números pueden en forma binaria y cada instrucción tiene también un código binario, cada numero se
representa con un bit de signo y 39 bits de valor. Una palabra puede contener también dos instrucciones de 20 bits,
donde cada instrucción consiste en un código de operación de 8 bits (codop) que especifica la operación que se va a
realizar, y una dirección de 12 bits que indica una de las palabras de la memoria(numeradas de 0 a 99)
16) Cuántos bits tiene una instrucción en IAS?, ¿cómo está formada?
una instrucción en IAS está compuesta por 2 partes, el codop que está formado por un rango de 0 a 8 bits, y la otra
parte es la dirección que va desde 8 a 19 bits teniendo así un total de 20 bits por instrucción.
17) Explique cómo se ejecutarían los ciclos de búsqueda y ejecución en el computador IAS.
Al principio de cada ciclo, la CPU busca una instrucción en la memoria. En la CPU hay un registro llamado contador del
programa (PC) que posee la dirección de la próxima instrucción a buscar.
La CPU después de buscar cada instrucción incrementa el valor contenido en PC, así podrá buscar la próxima instrucción
de forma secuencial.
Esta instrucción se encuentra en forma de código binario que especifica las acciones que tomara la CPU.
Esta última, interpreta cada instrucción y lleva a cabo las acciones requeridas
18) ¿Cómo se clasifica el conjunto de instrucciones del IAS?. De un ejemplo de cada una.
* Se caracterizan por ser muy amplias y permiten operaciones complejas entre operadores situados en la memoria o en
los registros internos
* Se caracteriza por que sus instrucciones son de tamaño fijo y presentadas en un numero reducido de formatos solo las
instrucciones de carga y almacenamiento acceden a la memoria de datos. El objetivo de diseñar maquinas con esta
arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos de
memoria.
Esto se da mediante el uso de la tecnología VLSI, que permite a múltiples dispositivos de bajo costo que se utilizan
conjuntamente para resolver un problema particular dividido en partes disjuntas
Ej: DSP.
19)
Escribe un programa que lea un dato de la dirección 600 de memoria y lo almacena en la dirección 601
21)Escribe un programa que divida el numero almacenado en la posición 867 por 8. El resultado de la división (sin
considerar el resto ni la parte fraccionaria se debe almacenar en la posición 778.
Se pide que: A. Escriba el comentario de lo que hace cada instrucción. B. Pase el programa a lenguaje de máquina.
… 1048 55
1049 11
1050 0
23. Dada una hipotética maquina (computador) que maneja una Memoria de 128 MB, en donde cada registro de
memoria tiene una longitud de 16 bits, cuyo Procesador posee un conjunto de 3 instrucciones (sumar, leer de la
memoria, escribir en la memoria). Los códigos numéricos asignados a cada operación son desde el número 0
(cero) en adelante, desde la primera operación que es la suma. Esta máquina trabaja con un formato de
instrucción que puede manejar una dirección por vez. Se pide: a) ¿Cuántos bits se necesitan para representar las
tres instrucciones? b) Dibujar el formato de instrucción correspondiente, indicando el nombre de cada campo, su
función y longitud. c) Con el formato del punto anterior, realizar el código máquina de la instrucción de lectura de
un dato en la posición 900 de memoria. c) Escribir la instrucción del punto anterior en lenguaje assembler, de
acuerdo a la arquitectura IAS.
b) Codop Dirección
2bits 27bits
c)
Código Maquina
01 ooooooooooooooooo111oooo1oo
d)
Load M(900)
24. Dado el ejemplo de una máquina hipotética, indique ¿qué hace en sus seis pasos?, ¿cuántas instrucciones
usa?, ¿cuántos ciclos de instrucción se usaron?
En el primer paso en la dirección de memoria 300 va a la registro ir donde va a contener los 8 bits del código de
operación de la instrucción que se va a ejecutar
1)Se lee la pc que tiene dirección 800 en la dirección 300 esta guarda la instrucción 1940 y se lo guarda en el ir
(registro de instrucción).
2)Se realiza la letra de memoria lo que hay guardado en la dirección 940 se lo manda al acumulador y se incrementa
1 al pc