Está en la página 1de 11

Trabajo Practico Nº4

Nombre y Apellido:

PROBLEMAS PROPUESTOS

1. ¿Qué entiende por ciclo de instrucción? ¿Cómo se subdivide?

Un ciclo de instrucción (también llamado ciclo de fetch-and-execute o ciclo de fetch-decode-


execute en inglés) es el período que tarda la unidad central de proceso (CPU) en ejecutar una
instrucción de lenguaje máquina.
Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para
ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una
CPU, puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de
instrucción está formado por uno o más ciclos máquina.
Este se subdivide en:
 Ciclo de lectura: (fetch, encargado de leer desde memoria. Común a todas las
instrucciones.) y Ciclo de ejecución (execution, dependiendo de la instrucción puede
implicar varias operaciones).
La ejecución del programa se interrumpe sólo si la máquina se apaga, hay un error ó una
instrucción que interrumpa a la computadora.
Las etapas del ciclo de instrucción son:
• IF (búsqueda)
• ID (decodificación)
• EX (ejecución en el operador multiciclo)
• WB (escritura en el bus común de datos).

Al principio de cada ciclo, la CPU busca una instrucción en memoria. En la CPU hay un registro, llamado
contador de programa (PC), que tiene 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 siguiente
instrucción en secuencia.

La instrucción buscada se carga dentro de un registro de la CPU, llamado registro de instrucción (IR). La
instrucción está en la forma de un código binario que especifica las acciones que tomará la CPU. La CPU
interpreta cada instrucción y lleva a cabo las acciones requeridas.

En general las acciones caen en 4 tipos:

•CPU – Memoria: Datos pueden transferirse entre memoria y CPU.

•CPU – E/S: Datos pueden transferirse entre CPU y entrada/salida.

•Procesamiento de datos: El CPU efectúa operaciones aritméticas ó lógicas en datos. •Control: Alterar la
secuencia de ejecución de instrucciones.

2. En la memoria RAM, ¿qué se almacenan? ¿A qué llamamos dirección en una memoria?


Explique el concepto de palabra y de qué depende éste.

La memoria RAM o “memoria de acceso aleatorio” es la memoria principal del dispositivo, en la que se
almacenan programas y datos. Sus siglas significan Random Access Memory y es el lugar en el que se
cargan todas las instrucciones que ejecuta la unidad central de procesamiento y otras unidades del PC.
La RAM es una memoria de acceso aleatorio, es decir, que un byte o una palabra se puede
encontrar de una forma clara y directa, sin necesidad de tener en cuenta los bytes almacenados
antes o después de esa palabra. Permite el acceso para escritura y lectura de información.
Este es un dispositivo electrónico que es capaz de almacenar instrucciones y datos, de forma
temporal, pero pierde los datos cuando el equipo se apaga. La gran ventaja de la memoria RAM es
que tiene una alta velocidad en el momento de hacer transmisión de la información.
 Un direccionamiento de memoria es un identificador único una ubicación la memoria, con
las cuales el CPU u otros dispositivos pueden almacenar, modificar o recuperar datos de la
misma, por lo general, las direcciones de memoria se expresan en hexadecimal.
En las computadoras, cada direccionamiento de memoria apunta hacia un Byte de
almacenamiento (el byte es la memoria mínima a la que se pueda acceder).
Los modos de direccionamiento de un procesador son las diferentes formas de transformación del
campo de operando de la instrucción en la dirección del operando y este se coincidiera desde dos
puntos de vista:
Físico: Se refiere a los medios electrónicos en el ordenador para acceder a las diversas posiciones
de memoria.
Lógico: Se refieren a la forma en que se expresan y guardan las direcciones.
 Una palabra es una cadena finita de bits que son manejados como un conjunto por la
máquina. El tamaño o longitud de una palabra hace referencia al número de bits
contenidos en ella, y es un aspecto muy importante al momento de diseñar
una arquitectura de ordenadores.
El tamaño de una palabra se refleja en muchos aspectos de la estructura y las operaciones de las
computadoras. La mayoría de los registros en un ordenador normalmente tienen el tamaño de la
palabra.
La cantidad de datos transferidos entre la CPU del ordenador y el sistema de memoria a menudo
es más de una palabra. Una dirección utilizada para designar una localización de memoria a
menudo ocupa una palabra.

Dependiendo de cómo se organiza un ordenador, las unidades de tamaño de palabra se pueden utilizar
para:

 Números enteros: Los contenedores de valores numéricos enteros pueden estar disponibles en


varios tamaños diferentes, pero uno de los tamaños disponibles casi siempre será la palabra. Los
otros tamaños, suelen ser múltiplos o fracciones del tamaño de palabra.

 Números en coma flotante: Los contenedores para valores numéricos en coma flotante son
típicamente una palabra o un múltiplo de una palabra.

 Direcciones: Los contenedores para direcciones de memoria tienen que ser capaces de


expresar el rango necesario de valores, pero no excesivamente grande. A menudo el tamaño
utilizado es el de la palabra, pero puede ser un múltiplo o una fracción.

 Registros: Los registros son diseñados con un tamaño apropiado para el tipo de dato que
almacenan. Muchas arquitecturas de computadores utilizan registros de "propósito general" que
pueden albergar varios tipos de datos, estos registros se dimensionan para permitir los más
grandes de estos tipos y el tamaño típico es el tamaño de palabra de la arquitectura.

 Transferencia memoria-procesador: Cuando el procesador lee del subsistema de memoria a un


registro o escribe el valor de un registro en memoria, la cantidad de datos transferidos es a menudo
una palabra. En los subsistemas de memoria simples, las palabras son transferidas sobre el bus de
datos de memoria, que típicamente tiene un ancho de una palabra o media palabra.
 Resolución de unidades de dirección: Es una arquitectura dada, los sucesivos valores de
direcciones designan sucesivas unidades de memoria. En muchos ordenadores, la unidad puede ser
un carácter o una palabra. Si la unidad es una palabra, entonces se puede acceder a una gran suma
de memoria utilizando una dirección de un tamaño dado.

 Instrucciones: Las instrucciones máquina normalmente son fracciones o múltiplos de la


longitud de palabra de la arquitectura. Esta es una elección natural ya que las instrucciones y los
datos normalmente comparten el mismo subsistema de memoria.

3. ¿Qué son registros?


Dentro de los microprocesadores existe un componente llamado registro de información, que
almacena temporalmente los valores de los datos a los que se accede con frecuencia durante el
proceso. Los registros, de importancia primordial dentro de la jerarquía de memoria de la
computadora, se utilizan para almacenar sólo los valores de los datos, comandos, estados binarios
y otras instrucciones que definen qué datos se procesan y cómo.
Esta accesibilidad se debe a la ubicación de los registros dentro de los microprocesadores. Los
registros no sólo comparten la carga del procesador, sino que también le proporcionan
instrucciones acerca de cómo se deben procesar los datos. Además, estos registros proporcionan
una importante ayuda a los microprocesadores en la tarea de determinar dónde enviar los datos
tras el procesamiento, y en qué disposición almacenarlo en la memoria principal o dentro de un
dispositivo de almacenamiento.

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, es decir, 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
2N), tales que cada línea de salida será activada para una sola de las combinaciones posibles de
entrada.
Con un código de n bits se pueden encontrar 2n posibles combinaciones. Si se tienen 3 bits (3
entradas) serán posibles 23 = 8 combinaciones. Una combinación en particular activará sólo una
salida.
Para poder conectar un dispositivo de memoria al microprocesador es necesario decodificar la
direccion enviada desde el ultimo. La decodificacion hace que la memoria funcione en una seccion
o una particion unica del mapa de memoria. Sin un decodificador de direccion, solamente un
dispositivo de memoria podria conectarse al microprocesador, lo cual lo haria inutil.
La decodificacion y el mapeo de memoria son importantes por que permite conectar mas de un
dispositivo al microprocesador. Estos dispositivos pueden ser memorias (ROM/RAM), buffer’s,
transeiver’s, etc.

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?
El lenguaje de máquina o código máquina es el sistema de códigos directamente interpretable
por un circuito microprogramable, como el microprocesador de una computadora o
el microcontrolador de un autómata. Este lenguaje está compuesto por un conjunto de
instrucciones que determinan acciones a ser tomadas por la máquina. El lenguaje de máquina
es específico de la arquitectura de la máquina, aunque el conjunto de instrucciones disponibles
pueda ser similar entre arquitecturas distintas.
Los circuitos microprogramables son digitales, lo que significa que trabajan con dos únicos niveles
de tensión. Dichos niveles, por abstracción, se simbolizan con los números 0 y 1, por eso el
lenguaje de máquina sólo utiliza dichos signos.
El lenguaje simbólico o ensamblador (en inglés assembly language), es un lenguaje de
programación de alto nivel. Consiste en un conjunto de mnemónicos que representan
instrucciones básicas para los computadores, microprocesadores, microcontroladores y
otros circuitos integrados programables. Implementa una representación simbólica de los códigos
de máquina binarios y otras constantes necesarias para programar una arquitectura de
procesador y constituye la representación más directa del código máquina, específico para cada
arquitectura legible por un programador.
Cada arquitectura de procesador tiene su propio lenguaje ensamblador que usualmente es
definida por el fabricante de hardware, y está basada en los mnemónicos, los registros del
procesador, las posiciones de memoria y otras características del lenguaje.

6. ¿Qué hace un programa compilador y uno ensamblador?


Ensambladores: Se llaman ensambladores los programas encargados de traducir los
programas escritos en ensamblador a código binario. Fíjese en que tanto el programa
traductor como el lenguaje se llaman del mismo modo: ensamblador. Traduce
una instrucción de lenguaje simbólico a otra instrucción en lenguaje de máquina, la
traducción es de 1 a 1.
Compiladores: El compilador es un programa que traduce el código de alto nivel a
código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya
que las diferencias entre los lenguajes de alto nivel y el código binario son muy
grandes. El compilador se encarga de convertir el programa fuente en un programa
objeto, una instrucción de alto nivel puede ser el equivalente varias instrucciones a
nivel de máquina, la traducción es de 1 a muchos.

7. ¿Qué es el conjunto de instrucciones? ¿Es igual en todos los procesadores?


Un conjunto de instrucciones, es una especificación que detalla las instrucciones que
una unidad central de procesamiento puede entender y ejecutar, o el conjunto de todos los
comandos implementados por un diseño particular de una CPU.
¿Qué tipos de instrucciones para procesador existen?
Aritméticas. Una de las más sencillas, estoy hablando de sumas, restas, multiplicaciones. Desde hace
mucho tiempo el coprocesador matemático se incluye dentro del procesador y por lo tanto son
capaces de trabajar con número reales y con operaciones mucho más complejas.
Lógicas. Estas incluyen las comparaciones. Muy importantes para cualquier tipo de programa.
Control de flujo. Permiten saltar a otra parte a veces se combinan con las anteriores para permitir el
salto en caso de ser necesario.
La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir este
conjunto de características de la micro arquitectura, que son los elementos y técnicas que se
emplean para implementar el conjunto de instrucciones. Entre estos elementos se encuentras
los microinstrucciones y los sistemas de caché
8. Indique las características de las arquitecturas CISC.
Arquitectura cisc (Complex Instruction Set Computer), en español (Computadora de Conjunto
de Instrucciones Complejas), el procesador trae cientos de registros y se necesitan muchos
pasos y ciclos de reloj para realizar una sola operación. Los microprocesadores CISC tienen un
conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones
complejas entre operandos situados en la memoria o en los registros internos. Este tipo de
arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría
de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas
instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente
microinstrucciones. Funciona directamente en los bancos de la memoria de computadora y no
requiere a programador llamar explícitamente ningún cargamento o las funciones el almacenar.
Una de las ventajas primarias de este sistema es que el recopilador tiene que hacer muy poco el
trabajo para traducir una declaración del idioma de alto nivel a la asamblea.

9. Explique los componentes del Modelo de Von Neumann. Nombre sus principales
registros y buses.
EL MODELO DE VON NEUMANN

Sus componentes son:


• Unidad de Entrada: provee los datos e instrucciones requeridos por el sistema.
• 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 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.

Los principales registros de esta computadora son:


• MAR (Registro de Dirección de Memoria, Memory Address Register).
• MBR (Registro Temporal de Memoria, Memory Buffer Register).
• PC (Contador de Programa, Program Counter).
• IR (Registro de Instrucción, Instruction Register).
• AC (Acumulador, Accumulator).
• INPR (Registro de Entrada, Input Register).
• OUTR (Registro de Salida, Output Register).

10. ¿Cuál es el concepto más importante que se introduce con el Modelo de Von
Neumann?
El programa almacenado en memoria es el concepto más importante introducido por parte del
modelo Von Neumann.

11. Dibuje y explique el formato de instrucción del Modelo de Von Neumann.


Ciclo de instrucción:
 Al principio de cada ciclo, la CPU busca una instrucción en memoria.
 En la CPU hay un registro, llamado contador de programa (PC), que tiene
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 siguiente instrucción en secuencia
 La instrucción buscada se carga dentro de un registro de la CPU, llamado
registro de instrucción (IR).
 La instrucción está en la forma de un código binario que especifica las
acciones que tomará la CPU.
 La CPU interpreta cada instrucción y lleva a cabo las acciones requeridas

12. Explique cómo se realizarían los ciclos de búsqueda y ejecución en el modelo de Von
Neuman.
Fase de Búsqueda:

1- Transferir el contenido del contador de programa (CP) al


registro de direcciones (RD)
2- Pasar a registro de memoria (RD) el dato almacenado en la
dirección de memoria indicando por RD
3- Transferir el dato leído desde el RM al registro de instrucción
(RI)
4- Incrementar el valor del contador de programa para apuntar a
la instrucción siguiente
Fase de Ejecución:

1- Decodificacion de la instrucción. Por ejemplo la instrucción ADD.

2- Transferir del campo “CD” de la instrucción en curso (este campo contoene la


dirección de memoria en la que se encuentra el perando, y que se encuentra en el
registro RI desde que finalizo la fase de búsqueda), al registro RD. Se inicia, por tanto,
un proceso similar al de la fase de búsqueda, pero en esta ocasión para buscar en
memoria el operador de la instrucción.
3- Lanzar un ciclo9 de lectura de memoria que ponga en RM el operando almacenado en
la dirección indicada por RD
4- Transferencia del dato leído desde el RM al registro intermedio, Ro2, del operador.
Paralelamente se puede transferir el otro operando desde el acumulador, AC,
(contenido en el un instante anterior), al registro intermedio Ro1.
5- Realizar la operación de SUMA (ADD) y almacenar el resultado en el AC.

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.
Las partes en la que está compuesta la estructura del computador IAS son:
• Una memoria principal que almacena tanto datos como instrucciones (hace referencia a
instrucciones de máquina, NO instrucciones de lenguaje de alto nivel).
• Una unidad aritmético-lógica (ALU) capaz de hacer operaciones con datos binarios.
• Una unidad de control que interpreta las instrucciones en memoria y provoca su ejecución.
• Un equipo de entrada salida (E/S) dirigido por la unidad de control.

14. A partir del Modelo de Von Neumann, indique que otros registros se incorporan al IAS
y que uso tienen.
Algunos de los registros que se agregan al computador IAS en comparación al
modelo de Von Neumann son:
 Acumulador (AC) y multiplicador cociente (MQ, Multiplier Quotient): 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 es un número de 80 bits; los 40 bits más significativos se
almacenan en el AC y los menos significativos en el MQ.
 Registro temporal de instrucción (IBR, Instruction y Buffer Register):
empleado para almacenar temporalmente la instrucción contenida en la
parte derecha de una palabra en memoria
 Registro temporal de memoria (MBR, Memory Buffer Register): contiene
una palabra que debe ser almacenada en la memoria, o es usada para
recibir una palabra procedente de la memoria.
 Registro de dirección de memoria (MAR, Memory Address Register):
específica la dirección en memoria de la palabra que va a ser escrita o
leída en MBR.
 Contador de programa (PC, Program Counter): contiene la dirección de la
próxima pareja de instrucciones que va a ser captada de la memoria
Registro de instrucción (IR, Instruction Register): contiene los 8 bits del código
de operación de la instrucción que se va a ejecutar.
15. ¿Cuántas palabras tiene la memoria del IAS?, ¿qué longitud tienen?, ¿qué tipos de
palabras usa?

La memoria del IAS consiste en 1000 posiciones de almacenamiento, llamadas


palabras, de 40 dígitos binarios (bits) cada una. Tanto los datos como las
instrucciones se almacenan ahí, por tanto, los números se puede representar en
forma binaria y cada instrucción tiene también un código binario. Cada número se
representa con un bit de signo y 39 bits de valor.

16. ¿Cuántos bits tiene una instrucción en IAS?, ¿cómo está formada?
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) específica 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 999).

17. Explique cómo se ejecutarían los ciclos de búsqueda y ejecución en el computador IAS.
El IAS, opera ejecutando repetidamente un ciclo instrucción. Cada ciclo
constará de dos subciclos. Durante el ciclo de captación, el codop de la
siguiente instrucción es cargado en el IR, y la parte que contiene la dirección se
almacena en el MAR. Esta instrucción puede ser captada desde el IBR, o
puede de ser obtenida de la memoria cargando una palabra en el MBR, y luego
en IBR, IR y MAR.
Una vez que el codop está en el IR, se lleva a cabo el ciclo de ejecución. Los
circuitos de control interpretan el codop y ejecutan las instrucciones, enviando las
señales de control adecuadas para provocar que los datos se transfieran o que la
ALU realice una operación.

18. ¿Cómo se clasifica el conjunto de instrucciones del IAS?. De un ejemplo de cada una.
El computador IAS tiene un total de 21 instrucciones. Las instrucciones típicas
que incluye cualquier CPU, que se pueden dividir en los siguientes grupos son:
 Transferencia de datos: se emplea para mover información entre los
diferentes espacios (registros, memoria, registros de controladores de
entrada/salida). Aunque algunas CPU restringen los movimientos (8086 y
los procesadores RISC no permiten movimientos de memoria a memoria),
otros permiten cualquier combinación (ortogonalidad). También se
incluyen operaciones específicas de entrada/salida o de acceso a los
espacios de pila.
 Aritméticas: instrucciones que realizan operaciones aritméticas,
negaciones de signo, sumas, restas, multiplicaciones, divisiones de
operándose enteros (con y sin signo), en coma flotante, etc. También
aparecen a veces instrucciones de comparación, que se suele utilizar con
las de salto condicional.
 Lógicas y de desplazamientos: estas instrucciones implementan
operaciones lógicas bit a bit entre los operandos, incluyéndose
operaciones como AND, OR, XOR, NOT, desplazamientos izquierda o
derecha y rotaciones a izquierda o derecha. Manejo de bits: estas son
instrucciones que permite modificar o consultar bits de un operando de
forma individual. Control del programa: estas son instrucciones que
permite modificar el flujo de ejecución de un programa. Entré ellas se
incluyen los saltos condicionales o incondicionales, las llamadas y
retornos de subrutina, las comprobaciones de errores y los desvíos al
sistema operativo.
 Control del procesador: así se incluyen instrucciones específicas del
procesador, como instrucciones que dejan parado el procesador, lo dejan
bloqueado hasta que aparezca una interrupción; instrucciones que no
hacen nada, o instrucciones que consultan o modifican registro de
propósito específico dentro del procesador (por ejemplo, palabras de
estado).
 Miscelánea: aparecen también instrucciones que facilitan el manejo de
cadenas de caracteres o instrucciones que facilitan la compartición de
memoria entre varios procesadores.

19. Dado los siguientes enunciados: escriba las instrucciones en lenguaje assembler,
coloque sus comentarios y luego páselas a código máquina.

A. Escribir un programa que lea un dato de la dirección 600 de memoria y lo almacene en


la dirección 601.
 LOAD M (600)  00000001 001001011000
 STOR M (601)  00100001 001001011001

B. Escribir un programa que sume el número almacenado en la posición 867 más el


número almacenado en la posición 562. El resultado de la suma se debe almacenar en
la posición 778.
 LOAD M (867)  00000001 001101100011
 ADD M (562)  00000101 001000110010
 STOR M (778)  00100001 001100001010
C. Escribir un programa que divida el número almacenado en la posición 867 por 8. El
resultado de la división se debe almacenar en la posición 778.
 LOAD M (867) 00000001 001101100011
 DIV M(8) 00001100 000000001000
 STOR M(778) 00100001 001100001010
20. Compare los modelos Von Neumann e IAS: similitudes, diferencias, ventajas,
desventajas.
Las computadoras IAS: Los datos y las instrucciones se almacenan en una sola memoria de
lectura-escritura. Sus contenidos de la memoria se direccionan indicando su posición, sin
considerar el tipo de dato contenido en la misma. La ejecución se produce siguiendo un
proceso de instrucción tras instrucción. Es un equipo de entrada salida (E/S) dirigido por la
unidad de control.
Maquina Von Neumann: Consta de una unidad de procesamiento, la cual contiene:
· Unidad lógica
· Registros del procesador
· Unidad de control (contiene un registro de las instrucciones y un contador de programa)
· Memoria (almacena los datos como instrucciones)
· Consta de mecanismos de entrada y salida
· Puede conseguir sus instrucciones leyéndolas de la memoria
· Puede hacer o modificar un programa colocando los valores en una zona de memoria

También podría gustarte