Professional Documents
Culture Documents
Datos e Instrucciones.
5. A qu llamamos direccin en una memoria?
7. Qu son registros?
El compilador: es un programa que convierte un lenguaje de alto nivel a uno de bajo nivel
(asamblea)
Adems de las mencionadas existen acciones adicionales que deben ser resueltas por el
compilador, como la asignacin de variables a registros, el control del uso de registros y si
as lo quisiera el programador la optimizacin del programa.
14. Cul es el concepto ms importante que se introduce con el Modelo de Von Neumann?
17. Explique cmo se ejecutaran los ciclos de bsqueda y ejecucin en el modelo de Von
Neumann.
Se requieren tres instrucciones, que consumen tres ciclos de captacin y tres de ejecucin:
18. Indique las partes en que est compuesta la estructura del computador IAS y las
subdivisiones de la CPU. Describa en forma sinttica la funcin que cumple cada una de
ellas y sus registros
EL COMPUTADOR IAS
La estructura general del computador IAS. Esta consta de:
Una memora principal: almacena tanto datos como instrucciones.
Una unidad aritmtica-lgica: capaz de hacer operaciones con datos binarios.
Un Equipo de entrada y salida: dirigido por la unidad de control.
19. A partir del Modelo de Von Neumann, indique que otros registros se incorporan al IAS y
que uso tienen.
El computador IAS Utiliza los mismos registros de von Neumann y adems incorpora dos
nuevos registros:
20. En el modelo IAS indique cuales son los registros de la ALU y cules de la UC.
Registros de la ALU:
21. Cuntas palabras tiene la memoria del IAS?, qu longitud tienen?, qu tipos de
palabras usa?
22. Cuntos bits tiene una instruccin en IAS?, cmo est formada?
La instruccin izquierda est formada por 20 bits (ocho para el codop, 12 para la
instruccin).La instruccin derecha est formada por 20 bits (ocho para el codop, 12 para
la instruccin).
24. Escribir un programa que lea un dato de la direccin 600 de memoria y lo almacene en la
direccin 601.
LOAD M(600)
STOR M(601)
25. . Escribir un programa que sume el nmero almacenado en la posicin 867 ms el nmero
almacenado en la posicin 562. El resultado de la suma (sin considerar acarreo) se debe
almacenar en la posicin 778.
LOAD M (867)
ADD M (562)
STOR M (778)
26. Escribir un programa que divida el nmero almacenado en la posicin 867 por 8. El
resultado de la divisin (sin considerar el resto ni la parte fraccionaria) se debe almacenar
en la posicin 778.
LOAD M (867)
RSH
RSH
RSH
STOR M (778)
00000001 010000011000
00000101 010000011001
00010101
00010101
00100001 010000011010
28. Explique cmo se ejecutaran los ciclos de bsqueda y ejecucin en el computador IAS.
Una vez que el codop est en el IR, se lleva a cabo el ciclo de ejecucin. Los circuitos de
control interceptan el codop y ejecutan las instrucciones enviando seales de control a la
ALU y el PC incrementa en 1.
29. Indique en donde se almacenan las instrucciones previas al ciclo de bsqueda, durante el
ciclo de bsqueda y en el momento en que se estn ejecutando.
30. Dada una hipottica 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
cdigos numricos asignados a cada operacin son desde el nmero 0 (cero) en adelante,
desde la primera operacin que es la suma. Esta mquina trabaja con un formato de
instruccin que puede manejar una direccin por vez.
Se pide:
a) Cuntos bits se necesitan para representar las tres instrucciones?
b) Dibujar el formato de instruccin correspondiente, indicando el nombre de cada
campo, su funcin y longitud.
c) Con el formato del punto anterior, realizar el cdigo mquina de la instruccin de
lectura de un dato en la posicin 900 de memoria.
d) Escribir la instruccin del punto anterior en lenguaje assembler, de acuerdo a la
arquitectura IAS.
Respuestas:
a) 2 bits se necesitara para poder representar las 3 instrucciones.
b) Formato de instruccin:
CODOP DIRECCION
2bits 14bits
c) LOAD M(900)
d)
CODOP DIRECCION
01 00001110000100
31. Dado el ejemplo de una mquina hipottica (figura 3.5, pgina 64, captulo 3, libro del
autor Stallings), indique qu hace en sus seis pasos?, cuntas instrucciones usa?,
cuntos ciclos de instruccin se usaron?
Las instrucciones se ejecutan dentro de la CPU, a pesar que las instrucciones y los
datos se encuentren almacenados en la memoria.
Las instrucciones y los datos deben cargarse desde la memoria hacia los registros de la
CPU, en tanto q los resultados deben devolverse a la memoria para su
almacenamiento desde los registros de la CPU.
34. Explique cmo se ejecutaran los ciclos de bsqueda y ejecucin en el modelo de Bus del
Sistema.
La CPU enva la direccin a buscar en la Memoria, a travs del Bus de Direccin .Lo buscan
y lo devuelve a la CPU a travs del Bus de Datos
Frente a esta cuestin caben dos filosofas de diseo; mquinas denominadas CISC y
mquinas denominadas RISC.
Hasta hace solo algunos aos, la divisin era tajante: RISC se utilizaba para entornos
de red, mientras que CISC se aplicaba en ordenadores domsticos. Pero en la
actualidad se alzan voces que afirman que CISC est agotando sus posibilidades,
mientras otras defienden fervientemente que CISC ya ha alcanzado a RISC,
adoptando algunas de sus principales caractersticas.
Arquitectura RISC
La idea fue inspirada por el hecho de que muchas de las caractersticas que eran
incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban
siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la
velocidad del procesador en relacin con la memoria de la computadora que acceda
era cada vez ms alta. Esto con llev la aparicin de numerosas tcnicas para reducir
el procesamiento dentro del CPU, as como de reducir el nmero total de accesos a
memoria.
36. Describa la memoria del computador ARC. Qu es el mapa de memoria? Dibuje el de la
arquitectura ARC. Qu es el espacio de direcciones? .A qu memoria se refiere?
ARC tiene diferentes tipos de datos (byte, media palabra,entero, etc.), pero, por el
momento considerara solo el tipo de datos enteros 32 bits.Cada entero se almacena en
memoria como un conjunto de 4 bits. La arquitectura ARC funciona con el byte ms
significativo almacenado en la menor de las direcciones asignada a la palabra, lo que se
conoce como almacenamiento bigendian.
39. Una palabra en ARC cuntos registros usa?, de cuntos bytes cada uno?
En la ARC cada palabra tiene 32 bits,esta dividida en 4 registros de 8 bits cada uno .
40. Cules son la primera y la ltima direccin de una memoria de 2^(20) bytes si la menor
estructura direccionable es una palabra de cuatro bytes?
42. Cmo est compuesta la CPU en ARC? Describa las funciones de sus bloques
La arquitectura de la CPU consiste en una seccin de datos, formada por los registros y la
ALU, y una seccin de control, la que interpreta las instrucciones y realiza transferencias
entre los registros. La seccin correspondiente a los datos se conoce tambin como
Trayecto de datos.
La CPU, Unidad Central de Procesamiento, consiste de una seccin de datos que contiene
registros y una ALU, y una seccin de control, que interpreta las instrucciones y realiza las
transferencias entre registros. La seccin de datos se conoce como "camino de datos" o
"datapath". La CPU lee las instrucciones y los datos desde la memoria, ejecuta las
instrucciones y almacena los resultados nuevamente en la memoria.
43. Cmo est formado el bloque trayecto de datos? De qu otra forma se lo llama
tambin? Dibuje el trayecto de datos, indicando las funciones de los buses y dems
elementos involucrados.
45. Cuntos bits se usan para indicar la direccin de un registro de la CPU? Por qu?
47. Cmo es el Ciclo de Bsqueda Ejecucin en ARC?, para qu sirve? En el paso 1 del
mismo qu registros del CPU estn involucrados? En cunto se debe incrementa el PC y
por qu?
La arquitectura ARC contiene 32 registros denominados %r0-%r31, cada uno de los cuales
contiene una palabra de 32 bits. Tambin existe un registro de estado del procesador
(PSR),que describe el estado vigente del procesador, y un contador de programa (PC) de
32 bits. Los registros %14 y %15 tienen aplicacin adicional como puntero de pila (%sp) y
Registro de enlace y el %r0 siempre contiene el valor 0 por lo cual no pude modificarse.
49. Qu es PSR? Explique las funciones de cdigos de condicin. Cmo indicara que el
resultado es positivo?
Registro de estado del procesador (PSR): contiene informacin acerca del estado del
procesador, incluida la informacin referida a los resultados de las operaciones
aritmticas. Las banderas aritmticas, del registro de estado se denominan Cdigos de
condicin. Especifican si una operacin aritmtica determinada el resultado dio cero (z). Si
dio un nmero negativo (n), si se obtuvo un arrastre a la salida de la unidad aritmtica-
lgica (c), o si se produjo un desborde (v).
50. Indique la diferencia entre registros del CPU y registros de la memoria RAM.
ARC es una mquina de 32 bits con capacidad para manejar tipos de datos de 32 bits. La
direccin de las palabras de 32 bits es la del byte almacenado en la menor de las
direcciones de la palabra. La memoria est dividida de la siguiente manera:
51. Cuntas instrucciones a la vez ejecuta la CPU en ARC?, en qu lenguaje deben estar esas
instrucciones?
52. Explique cada subconjunto de instrucciones ARC.
Instrucciones de memoria:
Las primeras dos instrucciones ld y st transfiere una palabra entre la memoria entre la
memoria principal y algunos de los registros de ARC. La instruccin sethi carga los 22 bits
ms significativos de un registro con la constante de 22 bits contenida dentro de la
instruccin.
Instrucciones aritmticas:
La instruccin sr1 desplaza un registro un registro hacia la derecha y carga los ceros en el
bit ms significativo.
La instruccin sra, desplaza el contenido original del registro a la derecha y almacena una
copia del bit ms significativo del contenido original.
La instruccin addcc realiza sobre sus operandos una suma de 32 bits en complemento a
dos.
Instrucciones de control:
Las instrucciones call y jmpl dormn un par utilizando para el llamada de subrutinas y el
retorno desde las mismas, respectivamente. La instruccin jmpl tambin se utiliza para
transferir el control a otro sector del programa.
a)Inst 1: ld [%ro,2048],%24
b) Inst 2: st%24,[%r0,4096]
55. . Dibuje un mapa de memoria que ejemplifique la instruccin de lectura ld [%r0, %r1],
%r24, la cual se encuentra en la posicin 20004, el contenido del registro 1 es 4096, y en la
posicin 4096 se encuentra el dato 212. Indique en CPU que valor queda almacenado en el
registro destino.
212 4096
Ld[%r0,%r1],%r24 20.004
!%r0=0
!%r1=4096
!%r24=212
!PC=20.004
!IR=ld[20004],%24
56. De un ejemplo de instruccin en assembler de suma lgica usando dos registros fuentes y
el registro 25 como destino. Los valores de los registros fuentes son 00000000(16) y
FFFFFFFF(16). Indique que valor queda almacenado en el registro destino. Dibuje un mapa
de memoria que ejemplifique la instruccin, usted decida la direccin de la misma
Orcc %r1,%r2,%25
57. Dada la instruccin ba 12, almacenada en la direccin 4000 de memoria. Cul sera la
direccin hacia dnde salta? Dibuje el mapa de memoria.
4000 ba 12
4048
PC - 4048
IR-ba 12
58. Luego de ejecutar la instruccin jmpl %r15 +4, %r0, almacenada en la direccin 4000, y
tomando como referencia que la ltima instruccin call esta almacenada en la direccin
2000, cul sera la nueva direccin del PC?.
PC= 2004
59. Dada la instruccin ld %r0, 20000, %r5. Indique si es correcta. Si no lo es explique el
motivo y como lo solucionara.
61. Qu sucede cuando una sentencia, en un proceso de traduccin, aparece antes del .begin
o despus del .end, para el lenguaje ensamblador de ARC?.
62. Escribir una subrutina para ARC que realice una operacin de intercambio entre los
operandos de bits x = 25 e y = 50, los que se encuentran almacenados en memoria. Usar la
menor cantidad de registros
begin
.org 2048
[y], %r2
call add_2
end
.begin
st %r1, [y]
jmpl %r15 + 3, %r0
x: 25
y: 50
.end
begin
.org 2048
ld [y], %r2
call add_2
.end
.begin
st %r1, [y]
x: 25
y: 50
end
Un programa consta de una secuencia de instrucciones , cada una de las cuales especifica una
accin particular. Una parte de la instruccin, llamada cdigo de operacin. Seala la accin que
se va a ejecutarse. Muchas instrucciones contienen los datos que usan, o bien especifican donde
estn
66. Convierta cada una de las instrucciones escritas en assembler, de los ejemplos anteriores, a
cdigo mquina
Muchos ensambladores dan dos pasadas al programa fuente a fin de resolver referencias hacia
adelante (o posteriores) a direcciones que aun no se encuentran en el programa. Durante la pasad
1, el ensamblador lee todo el cdigo fuente y construye una tabla de smbolos de nombres y
etiquetas usadas en el programa, esto es nombres de campos de daos y etiquetas de programa y
sus localidades relativas (desplazamiento) dentro del segmento, usted puede ver tal table de
smbolos. La pasada 1 determina la cantidad de cdigo que es generado por cada instruccin.
Durante la pasada 2, el ensamblador usa la tabla de smbolos que construyo en la pasada 1. Ahora
que Conoce la longitud y posiciones relativas de cada campo de datos e instrucciones, puede
completar el cdigo objeto para cada instruccin. Despus produce, si se solicita, los diferentes
archivos objeto (.OBJ) de listado (.LST) y de referencia cruzada (.REF)
68. Un programa que est en lenguaje de mquina debe ser pasado a lenguaje simblico. Una vez
traducido, con cuntas directivas, etiquetas y comentarios finales queda el programa traducido?.
B. Indique cuales son las etiquetas, las directivas, las instrucciones y los comentarios.
Lo hace de la siguiente manera : lo hace a travs de un sistema repetitivo con una subrutina , en la
cual el programa lo que hace es al principio carga los valores de %r1 y %r2 de a , luego verifica
que %r3 sea = 0 y despus testea el resto de los elementos , finaliza cuando el resultado sea = 0,
%r1 se le resta -4 para que se decremente la longitud de arreglo y se informa al programa de las
otras direcciones que se quieren sumar , se carga los registro de %r4 y %r5 , y se suman en la
memoria %r4 en %r5, despus se suma con %r3 el cual pasa a ser un nuevo elemento se cargar
%r3 , despus se repite la secuencia , se hace el retorno a la rutina de llamada y se da el resultado
y se establecen nuevos valores
B_
C_
D_
70. Crear una tabla de smbolos para el segmento de programa ARC que se muestra a
continuacin.
Ld %r0,2068,%r1 %r1=0
Ld %r0,2072, %r2
Numero 15
Numero 9
Numero 0
72)