Documentos de Académico
Documentos de Profesional
Documentos de Cultura
. Explique cómo se ejecutarán los ciclos de búsqueda y ejecución en el modelo de Bus del
Sistema.
Ciclo de Instrucción;
CICLO DE BÚSQUEDA:
● Desde la CPU, que tiene el PC, por el Bus de Direcciones, se envía la dirección de la
P á g i n a 1 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
CICLO DE EJECUCIÓN:
P á g i n a 2 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Características:
TAMAÑO DE LA MEMORIA
● La arquitectura ARC tiene una memoria de 4G, la cual tiene un espacio de direcciones
de 32 bits, lo que quiere decir que tiene un rango de 0 a 2 elevado a la 32-4
direcciones.
TIPOS DE PALABRAS:
●
ESPACIO DE DIRECCIONES: Es el rango numérico de direcciones de memoria al que puede hacer
referencia la CPU. Está dividido en los siguientes sectores:
P á g i n a 3 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
● El espacio para el usuario es aquel que se reserva para la carga de los programas
ensamblador del usuario y puede crecer hasta que se encuentre con la pila del sistema.
● La pila del sistema se encuentra en la dirección 2 elevado a la 31-4 y crece hacia
direcciones inferiores de memoria
P á g i n a 4 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
6. Una palabra en ARC ¿cuántos registros usa?, ¿de cuántos bytes cada uno?
A) Bloque de datos: ¿Cómo está formado? ¿De qué otra forma se lo denomina?
Dibújelo, indicando las funciones de los buses y demás elementos involucrados.
¿Cuántos registros de propósito general tiene? Particularizar los registros 0, 14 y 15.
El bloque de trayecto de datos está formado por los registros y la ALU también se lo denomina
“DATAPATH” o camino de datos.
P á g i n a 5 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
8. ¿Cuántos bits se usan para indicar la dirección de un registro de la CPU? ¿Por qué?
Para indicar la dirección de un registro de la CPU se utilizan 5 bits, porque es el número más
grande que se utiliza para poder direccionar un registro. Registro 31 = 11111.
10. ¿Cómo es el Ciclo de Búsqueda – Ejecución en ARC?, ¿para qué sirve? En el paso 1 del
mismo ¿qué registros del CPU están involucrados? ¿En cuánto se debe incrementar el PC y
por qué?
5) Vuelta al paso 1.
11. Indique diferencias entre registros del CPU y registros de la memoria RAM.
Los registros de la CPU tienen un tamaño de 32 bits mientras que la memoria RAM tiene un
tamaño de 8 bits. Por otra parte, los registros que tiene la CPU son más veloces que los de la
RAM.
P á g i n a 6 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
a ser almacenada en un registro, en conjunto con otra instrucción que carga los 10 bits menos
significativos del registro.
FILADD.COM
NOR respectivamente, sobre sus operandos. Uno de los dos operandos origen debe estar en
un registro. El otro puede estar en un registro o puede ser una constante incluida en la
instrucción, expresada en 13 bits en notación complemento a dos, la que se extiende a 32 bits
cuando se la utiliza. El resultado se almacena en un registro. Para el caso de la instrucción
andcc, cada bit del resultado se coloca en 1 si los bits correspondientes de ambos operandos
son simultáneamente 1; en caso contrario, el bit del resultado vale 0. En la operación orcc,
cada bit del registro es 1 si al menos uno de los correspondientes bits de los operandos vale 1;
caso contrario, el bit correspondiente del resultado vale 0. La operación orncc es
complementaria de la orcc, de modo tal que cada bit del resultado vale 0 si uno o los dos bits
correspondientes en los operandos vale 1; caso contrario, el bit del resultado se coloca en 1.
Los sufijos cc especifican que luego de realizada la operación deben actualizarse los códigos de
condición del registro de estado de modo que permitan reflejar el resultado de la operación
realizada. Las instrucciones de desplazamiento permiten desplazar el contenido de un registro
hacia otro. La instrucción srl (shift right logical [desplazamiento lógico a derecha]) desplaza un
registro hacia la derecha y carga ceros en el (los) bit(s) más significativo(s). La instrucción sra
( shift right arithmetic [desplazamiento aritmético a derecha]), que no se indica en la tabla,
desplaza el contenido original del registro a la derecha y almacena una copia del bit más
significativo del contenido original en los bits vacíos creados por el desplazamiento del
registro. Esta operación da por resultado la extensión del signo del operando, preservando su
signo aritmético. La instrucción adcc realiza sobre sus operandos una suma de 32 bits en
complemento a dos.
4) Control: Las instrucciones call y jmpl forman un par utilizado para la llamada de subrutinas y
el retorno desde las mismas, respectivamente. La instrucción jmpl también se utiliza para
transferir el control a otro sector del programa. Las últimas cinco instrucciones son instrucción
de salto o bifurcación incondicional. Las instrucciones be, bneg, bcs, bvs y ba provocan un salto
en la secuencia de ejecución de un programa. Se las llama condicionales debido a que verifican
uno o más de los códigos de condición del registro de estado, y provocan el salto si los bits
indican que la condición verificada se cumple. Se utilizan para la implementación de
construcciones de alto nivel, tales como goto, if-then-else y do-while.
13. ¿Qué es PSR? ¿Dónde se encuentra? ¿Qué instrucciones se relacionan con él? ¿Quiénes
pueden modificarlo? Explique las funciones de los códigos de condición. ¿Cómo indicaría
que el resultado es positivo?
PSR:
El PSR o registro de estado del procesador se encarga de almacenar además de los otros 28
bits, el bits N,Z,V y C. Se encuentra en la sección de control dentro del CPU. Se relaciona con
este registro las instrucciones de tipo lógica, aritmética y con las del salto condicional. Pueden
modificarlo aquellas instrucciones que terminan en CC. El bit N sirve para indicar con un 1 si el
resultado en cuestión es negativo o con un 0 si el resultado es positivo. Por otra parte, el bit Z
indica con un 1 el resultado fue cero. El bit V indica un desborde, o sea que el resultado de la
operación aritmética es demasiado grande para la ALU. Y por último el bit C indica con un 1
P á g i n a 7 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
que se produjo un acarreo a la salida de la ALU. Para indicar que el resultado es positivo, N
debe estar en 0.
15. ¿Qué son los formatos de instrucción?, ¿En qué se vinculan con el registro IR? En los
formatos aritmético-lógicos y de memoria ¿qué nos indica el bit 13?
P á g i n a 8 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Los formatos de instrucción definirán como el programa ensamblador distribuye los diferentes
campos de una instrucción y la forma en que los interpreta en la Unidad de Control. Cada
instrucción tiene 32 bits. Se vinculan con el IR porque es el registro que recibirá y almacenará
la instrucción en el ciclo de la instrucción. El bit 13 (i) nos indica si se tiene un registro fuente 2
o no. Vale 0 si no existe un registro fuente 2, y 1 si existe.
16. Dados los siguientes enunciados, escriba las instrucciones en assembler y luego
conviértelas a código máquina. Ejemplifíquelas dibujando mapa de memoria y registros de
CPU involucrados, usted decide los valores no indicados.
Mapa de memoria:
Mapa de memoria:
P á g i n a 9 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
P á g i n a 10 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Mapa de memoria:
Mapa de memoria:
P á g i n a 11 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Mapa de memoria:
P á g i n a 12 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
F) Suma lógica 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.
Assembler: orcc %r1, %r3, %r25 ! %r25 ← %r1 or %r3
Mapa de memoria:
P á g i n a 13 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Mapa de memoria:
P á g i n a 14 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Mapa de memoria:
P á g i n a 15 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Mapa de memoria:
P á g i n a 16 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
J) Instrucción jmpl %r15 +4, %r0, almacenada en la dirección 4000. Si tomando como
referencia que la última instrucción call esta almacenada en la dirección 2000, ¿cuál
sería la nueva dirección del PC?.
Assembler: jmpl %r15 + 4, %r0 !regresa una palabra después de cuando fue llamada la
última subrutina
Mapa de memoria:
Las directivas son comandos que afectan al ensamblador, y no al microprocesador, por lo que
no generan código objeto. Se utilizan para definir segmentos, símbolos, procedimientos o
subrutinas, reservar memoria, etc.
18. ¿Qué sucede cuando una sentencia, en un proceso de traducción, aparece antes del
.begin o después del .end, para el lenguaje ensamblador de ARC?
P á g i n a 17 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
19. Un programa que está en lenguaje de máquina debe ser pasado a lenguaje
simbólico. Una vez traducido, ¿con cuántas directivas, etiquetas y comentarios finales
queda el programa traducido?
El programa en lenguaje máquina solo contiene datos e instrucciones, es decir que al pasarlo
de vuelta al simbólico no se tendría nada de directivas, comentarios y etiquetas.
P á g i n a 18 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
20. ¿Cuántas instrucciones a la vez ejecuta la CPU en ARC?, ¿en qué lenguaje deben estar
esas instrucciones?
La CPU de ARC ejecuta una instrucción por vez, esta última debe de estar en lenguaje máquina
para que sea posible.
22. Crear una tabla de símbolos para el segmento de programa ARC que se muestra a
continuación.
P á g i n a 19 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
23. Escribir una subrutina para ARC que realice una operación 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 4064
P á g i n a 20 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
.global subrutina
Id[X], %r2
st%,[Y]
st %r2,[X]
jumpl %r15,4,%r0
.end
.begin
.org 3000
ld[x], %r1
ld[y], %r2
st %r4, [z]
x: 10
y:15
z:0
.end
P á g i n a 21 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
P á g i n a 22 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
Símbolo Valor
a_start 3000
length 2092
address 2096
loop 2060
P á g i n a 23 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
B) Indique cuales son las etiquetas, las directivas, las instrucciones y los comentarios.
Comentarios: Son todos los que comienzan con un signo de admiración (!), por
ejemplo: “!Comienzo del ensamblado” .
Directivas: Son todas las que comienzan con un punto (.begin, .org, .equ, .end).
Etiquetas: Son las que terminan en dos puntos (a.start, loop, done, length, address, a).
Instrucciones: ld, andcc, be, ba, jmpl.
C) Realice la tabla de símbolos.
P á g i n a 24 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
done 2088
a 3000
P á g i n a 25 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
P á g i n a 26 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
P á g i n a 27 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
24
15
.begin
.org 2048
st %r3, [C]
datos: A:
15
B: 9
P á g i n a 28 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
C: 0
27. Compare la máquina de Von Neumann, el modelo IAS y la arquitectura ARC: • Memoria:
tamaño de la misma, rango de direcciones, formato de las palabras. • CPU: cantidad de
registros, tamaño de los mismos. • Otras diferencias (formato y tipo de instrucciones, ¿RISC
o CISC?, ¿cómo y qué instrucciones acceden a memoria?, etc).
P á g i n a 29 | 30
TRABAJO PRACTICO 5 GOMEZ LUIS DANIEL
P á g i n a 30 | 30