Escenario 4 - Arquitectura Del Computador
Escenario 4 - Arquitectura Del Computador
Escenario 4 - Arquitectura Del Computador
Las respuestas correctas estarán disponibles del 5 de abr en 23:55 al 6 de abr en 23:55.
Pregunta 1 3.75
/ 3.75 pts
MARS es una herramienta de simulación que permite simular la ejecución de un programa sobre MIPS.
Luego de haber probado MARS con los ejercicios propuestos en el curso, se puede asegurar que este
simulador
Funciona como un compilador, pues permite que se escriba un programa en alto nivel y muestra su ejecución en
bajo nivel.
Permite ver en consola la ejecución del programa, pidiendo datos al usuario y mostrando información resultante
de la ejecución de las instrucciones.
Permite ver cómo se encuentran la memoria RAM, de programa y registros en cada paso de la ejecución.
Tiene una GUI que permite que el usuario interactúe con el programa ingresando y recibiendo información a
través de los periféricos.
Pregunta 2 3.75
/ 3.75 pts
La empresa MARKETING ESTRATÉGICO S.A. contrató los servicios de capacitación para su personal con
la firma consultora KNOWLEDGE INC. que presta sus servicios usando el siguiente modelo de construcción
de conocimiento:
La firma KNOWLEDGE INC puede verificar que su cliente ha logrado recibir la capacitación adecuada
cuando se realiza el paso de
internalización a socialización porque se parte del conocimiento de la organización para generar nuevo
conocimiento.
combinación a internalización porque el conocimiento grupal se nutre del individual para generar cultura
organizacional.
externalización a combinación porque los grupos pueden evidenciar sus conocimientos trabajando en equipo.
socialización a externalización porque el conocimiento individual puede ser compartido con los miembros del
grupo.
Pregunta 3 3.75
/ 3.75 pts
MIPS corresponde a la sigla de Microprocessor without Interlocked Pipeline Stages (Microprocesador sin
etapas de pipeline bloqueadas).
Su nombre se debe a que el procesamiento de una instrucción se realiza por etapas, a que todas las
instrucciones siguen las mismas etapas y a que cada etapa utiliza sus propios recursos de hardware sin
bloquear las etapas siguientes. Lo anterior hace que esta arquitectura
Ejecute 4 instrucciones en el tiempo en que haría una sola.
Ejecute más rápido cada instrucción.
Permita el procesamiento en paralelo a nivel de datos.
Permita el procesamiento en paralelo a nivel de instrucciones.
Pregunta 4 3.75
/ 3.75 pts
A partir de la división por generaciones aportada durante la unidad 1 para el estudio de la evolución de la
computación, mencionamos pensadores influyentes en cada una de ellas, entre ellos:
Fueron grandes pensadores que hicieron trascendentales aportes en la evolución de los computadores.
Charles Babagge, Von Neuman y Ada King.
El matemático británico Charles Babbage propuso la máquina analítica en el año 1833, que no era más
que un complejo sistema mecánico de palancas y engranajes que permitían programar operaciones
matemáticas. John Von Neumann: Destacado matemático húngaro - estadounidense, que por el año 1945,
a partir de los avances en computación del momento como el ENIAC, formuló la arquitectura de Von
Neumann, trascendental en el diseño de computadores. Ada King, hija del famoso poeta lord Byron, se
interesó por está y escribió los primeros algoritmos para la misma, siendo reconocida por ser la primera
programadora de la historia. Personajes mencionados en las respuestas erradas como Thomas Edison,
Niels Bohr o Nicola Tesla, fueron grandes pensadores, pero no influyeron directamente en el desarrollo de
los computadores ni de su arquitectura. Así mismo, Jhon Eniac y Harvard, no existen como tal.
Von Neumann, Harvad y Niels Bohr.
Harvard, Herman Hollerith y Nicola Tesla.
Thomas Edison, Von Neuman y Jhon Eniac.
Pregunta 5 3.75
/ 3.75 pts
De acuerdo a las acciones o comandos que se requieren ejecutar en un procesador, se debe diseñar el
conjunto de instrucciones, que se divide en tres tipos generales según la tarea o actividad que ejecute cada
instrucción con sus respectivos operandos.
Instrucciones de máquina como SUM o SUB, simples como LOAD y CLEAR y complejas como potenciación y
radicación.
Instrucciones de alto nivel como IF y FOR, de lenguaje ensamblador como SUM o SUB y de lenguaje de máquina
como 0001 o 1010.
Instrucciones lógicas como la suma o la resta, aritméticas como EXOR y NOT y de control como Inicio y Fin.
Instrucciones aritméticas como la suma o la resta, lógicas como OR o AND y de control como saltos
condicionales e incondicionales.
Existen tres tipos de instrucciones a considerar dentro del diseño de un conjunto de instrucciones.
Instrucciones aritméticas Aquellas que realizan operaciones aritméticas entre uno o más números
(operandos). Entre estas operaciones se encuentran: suma, resta, multiplicación, división, potenciación,
logaritmación, radicación, etc. Instrucciones lógicas Aquellas que, como su nombre lo indica, ejecutan
operaciones lógicas bit a bit con sus operandos, tales como NOT, AND y OR, y sus combinaciones NAND,
NOR, XOR, XNOR, etc. Instrucciones de control Son todas aquellas instrucciones que alteran el estado del
procesador o la ejecución vertical (en caída libre) del código del algoritmo a ejecutar, aquí se incluyen los
saltos condicionales (por mayor que, menor que, igual, menor o igual, mayor o igual, etc.) y los saltos
incondicionales. Por lo tanto, pensar en instrucciones simples, complejas, de alto nivel, de lenguaje
ensamblador, o de máquina no tiene sentido en este contexto, varias de estas se contradicen entre sí.
Pregunta 6 3.75
/ 3.75 pts
Un procesador MIPS permite la ejecución de instrucciones por etapas, de manera que múltiples
instrucciones se pueden ejecutar a la vez, siempre y cuando estén en diferentes etapas.
Suponga que en un procesador MIPS de 5 etapas, en el que cada etapa tarda lo mismo: 1ms, quiere
ejecutar 5 instrucciones independientes entre sí ¿En cuánto tiempo el procesador habrá ejecutado las 5
instrucciones?
10ms
5ms
25ms
9ms
Pregunta 7 3.75
/ 3.75 pts
La aritmética del procesador se refiere a la manera en que se realizan las operaciones aritméticas dentro
del procesador.
Establecer qué instrucciones sirven para realizar un producto de forma iterativa.
Definir cómo realizar el producto de dos números como un conjunto de sumas sucesivas.
Definir cómo encontrar el cociente de dividir dos números como un conjunto de restas sucesivas.
Definir qué hacer en caso de que haya un desbordamiento en la suma de dos valores.
La aritmética del procesador se refiere a la manera en que se realizan las operaciones aritméticas dentro
del procesador. Esta definición incluye lo que sucede cuando hay un desbordamiento en la suma o la resta,
cómo se manejan los productos teniendo en cuenta que la multiplicación requiere el doble de bits para el
resultado que los bits que tienen los operandos, cómo se maneja el cociente y el residuo en una división,
cómo se representan y operan los números reales, entre otros.
Pregunta 8 3.75
/ 3.75 pts
Hay diversos registros del procesador que se emplean para controlar su funcionamiento. La mayoría de
ellos no son visibles por el usuario y se clasifican como registros de control y de estado. Naturalmente,
procesadores diferentes tendrán distintas organizaciones de registros y usarán distinta terminología, sin
embargo, existen algunos esenciales que pueden ser encontrados en cualquier procesador.
Mencione tres registros no modificables por el usuario (conocidos también como registros de control y
estado), esenciales para el funcionamiento de cualquier procesador y explique por qué.
Los registros de uso general, única manera de almacenar variables de programa. El registro de instrucción, pues
contiene la última instrucción ejecutada y el registro de dirección de memoria, que contiene la dirección de una
posición de la memoria principal.
El registro de instrucción, pues contiene la última instrucción ejecutada. El registro de pila, pues es el que permite
acceder a la pila del procesador y el registro de datos que contiene la última palabra de datos escrita o leída en la
memoria del programa por el procesador.
El contador de programa, indispensable para saber la dirección de memoria de la línea del programa que se
ejecuta en el momento. El registro de instrucción, pues contiene la última instrucción ejecutada y el registro de
estado, ya que muestra indicadores del estado actual del procesador.
A continuación, se presenta una lista de posibles registros de control para la ejecución de una instrucción,
con una breve descripción:
● Registro de dirección de memoria (MAR): Contiene la dirección de una posición de la memoria principal.
● Registro intermedio de memoria (MBR): Contiene la palabra de datos a escribir en la memoria principal o
la palabra leída más reciente.
● Registro de estado (SR): Contiene un conjunto de “banderas”, representadas cada una por un bit (1 o 0)
que indican el estado actual del procesador. Los registros de uso general y de pila si pueden ser
directamente modificados por el usuario y no son fundamentales para el funcionamiento de un procesador.
El registro de estado, ya que muestra indicadores del estado actual del procesador. El contador de programa,
indispensable para saber la dirección de memoria de la línea del programa que se ejecuta en el momento y el
registro de pila, pues es el que permite acceder a la pila del procesador.
Pregunta 9 3.75
/ 3.75 pts
En lenguaje de máquina todas las variables, valores y expresiones se expresan en sistema binario. Se debe
prestar especial atención a los modos de direccionamiento que se utilizan para invocar cada operando y
mecanizar cómo los saltos, jumpsobranchs, alteran el flujo de ejecución del programa para crear ciclos o
condicionales.
Son éstos los aspectos que distan en mayor medida entre el lenguaje de alto y bajo nivel. Practicando el
desarrollo en lenguaje ensamblador verás cómo estos puntos clave se van manejando con mayor
naturalidad.
En lenguaje de máquina todas las variables, valores y expresiones se expresan en sistema binario. Se debe
prestar especial atención a los modos de direccionamiento que se utilizan para invocar cada operando y
mecanizar cómo los saltos, jumpsobranchs, alteran el flujo de ejecución del programa para crear ciclos o
condicionales.
Son éstos los aspectos que distan en mayor medida entre el lenguaje de alto y bajo nivel. Practicando el
desarrollo en lenguaje ensamblador verás cómo estos puntos clave se van manejando con mayor
naturalidad.
Indique de las siguientes extensiones de archivo cuáles se asocian a lenguajes de alto nivel.
.py
Respuesta correcta
.c
Respuesta correcta
.asm
.cpp
Respuesta correcta
Pregunta 10 3.75
/ 3.75 pts
La memoria de programa sirve para almacenar instrucciones como si fueran datos. El proceso de
compilación revisa que un programa escrito en un algoritmo de alto nivel esté escrito de acuerdo con las
reglas del lenguaje. Adicionalmente, convierte el algoritmo de alto a bajo nivel, usando el conjunto de
instrucciones del procesador en el que va a correr. Posteriormente, adapta el lenguaje ensamblador a
lenguaje de máquina, para que sea almacenable en la memoria de programa y posteriormente se pueda
ejecutar.
Cuando se compila un programa en MIPS cada instrucción que se almacena en la memoria de programa
Tiene el mismo tamaño y el orden de los bits depende de su tipo.
En MIPS todas las instrucciones tienen el mismo tamaño. El formato de instrucción está definido por su tipo
y determina en qué orden deben ir los bits según lo que representan.
Tiene un tamaño variable por lo que el orden y cantidad de bits depende de su tipo.
Tiene el mismo variable y el orden de los bits depende de los datos que se operan en la instrucción.
Tiene un tamaño variable y su tipo solamente determina el orden de los bits.
Pregunta 11 3.75
/ 3.75 pts
El formato de instrucción que utilizan
En MIPS los tipos de instrucciones se agrupan de acuerdo con el formato en el que se deben escribir, lo
que implica tener en cuenta el código de operación y los modos de direccionamiento.
La cantidad de bits que tienen
Su funcionalidad
La operación que ejecutan
Pregunta 12 3.75
/ 3.75 pts
La arquitectura del computador se define como: “la ciencia y el arte de diseñar, seleccionar e interconectar
componentes de hardware, y el de diseñar interfaces hardware/software para crear sistemas de cómputo
que cumplan ciertas metas funcionales, de desempeño, de consumo de energía, de costo, entre otros”
(Patt, 2001)
De acuerdo con la definición anterior, la arquitectura del computador es una ciencia y un arte con la que se
busca el diseño de un computador
Ajustado a su contexto de uso
La arquitectura es una ciencia y un arte con la que se busca diseñar computadores acordes a su contexto
de uso. Los computadores de escritorio, servidores, móviles o vestibles son computadores de propósito
específico. El uso de circuitos eléctricos es fundamental en la construcción de computadores, pero no es el
propósito de estudio de la arquitectura del computador.
Móvil o vestible
De escritorio o servidor
Usando circuitos eléctricos
Pregunta 13 3.75
/ 3.75 pts
Se le ha pedido diseñar un computador que sirva como servidor. Es necesario que revise los requerimientos
de diseño y construya una priorización
Es más importante el tamaño de su memoria RAM que el peso del computador en kilogramos.
Un servidor es un computador que requiere una alta capacidad de procesamiento, gran tamaño de disco
duro y memoria RAM, pero que se encuentra en un lugar fijo, con sistema de refrigeración adecuado. Por
esta razón, es más importante el tamaño de su RAM, en bytes, que su peso, en kilogramos..
El tamaño de la memoria RAM no es tan importante como su velocidad.
Es más importante la temperatura que alcanza que su capacidad de procesamiento.
No es crítico el tamaño del disco duro.
Pregunta 14 3.75
/ 3.75 pts
Una característica importante del lenguaje ensamblador es que sus instrucciones presentan un formato
rígidamente establecido, esto se debe a la conexión directa entre el software que se programa y el
hardware que lo ejecuta, por tanto, durante el diseño del conjunto de instrucciones de un procesador, el
formato que utilizarán las instrucciones a implementar es un factor clave.
Se debe definir los estados que podrá manejar el procesador y si estos influyen en la ejecución las instrucciones
a diseñar.
Se debe tener en cuenta la cantidad de registros y si estos serán visibles y modificables por el usuario
desarrollador.
Se debe tener en cuenta el tamaño de los registros que operarán y la cantidad de veces que cada instrucción
será invocada por el programa.
Se debe definir un código de operación (codop) que identifique cada instrucción y los operandos que va a utilizar
(si los requiere) teniendo en cuenta el modo de direccionamiento para acceder a ellos.
Un formato de instrucciones define la descripción en bits de una instrucción, en términos de las distintas
partes o campos que la componen. Un formato de instrucciones debe incluir un código de operación
(codop), e implícita o explícitamente, cero o más operandos. Cada operando se referencia según uno de
los modos de direccionamiento vistos previamente en el curso. El formato debe, implícita o explícitamente,
indicar el modo de direccionamiento de cada operando. Las demás opciones de respuesta simplemente no
tienen nada que ver con el formato de las instrucciones de un procesador.
Pregunta 15 3.75
/ 3.75 pts
MIPS permite realizar saltos de dos tipos diferentes: condicionales e incondicionales. Los condicionales
saltan a una posición del código si se cumple una condición, y los incondicionales van a una etiqueta en el
código independiente de cualquier condición.
Teniendo en cuenta cómo funciona MIPS y los dos tipos de saltos, podríamos asegurar que
Los saltos condicionales pueden no ejecutarse bien en el pipeline, porque al depender de una condición, no se
sabe cuál será la próxima instrucción que se debe ejecutar, y por lo tanto no podrá iniciarse hasta que se sepa el
resultado de la evaluación de la condición.
Uno de los cuellos de botella del pipeline sin los saltos condicionales. La razón es que en el pipeline,
cuando una instrucción completa la primera etapa, se lanza la siguiente instrucción para que la segunda
ejecute la primera etapa mientras la primera instrucción ejecuta la segunda etapa. Sin embargo, al ser un
salto condicional, no se sabe si la condición se cumple o no hasta que la instrucción del condicional se
finalice. Si se cumple la condición debe ejecutar una instrucción y si no se cumple debe ejecutar otra.
Como no se sabe sino hasta finalizar la instrucción condicional cuál será la próxima, entonces no se puede
aprovechar el pipeline.
Los saltos incondicionales pueden no ejecutarse bien en el pipeline, porque al depender de una condición, no se
sabe cuál será la próxima instrucción que se debe ejecutar, y por lo tanto no podrá iniciarse hasta que se sepa el
resultado de la evaluación de la condición.
Los saltos condicionales pueden no ejecutarse bien en el pipeline, porque al no depender de una condición, no se
sabe cuál será la próxima instrucción que se debe ejecutar, y por lo tanto no podrá iniciarse hasta que se sepa el
resultado de la evaluación de la condición.
Los saltos incondicionales pueden no ejecutarse bien en el pipeline, porque al no depender de una condición, no
se sabe cuál será la próxima instrucción que se debe ejecutar, y por lo tanto no podrá iniciarse hasta que se sepa
el resultado de la evaluación de la condición.
Pregunta 16 3.75
/ 3.75 pts
El direccionamiento, en la arquitectura del computador, se refiere a la forma en que se acceden los datos
que van a ser operados o que se requieren para ejecutar una instrucción.
Se desea realizar una resta entre un registro y una constante. Para este caso, el direccionamiento es
Inmediato, porque el valor constante (almacenado como parte de la instrucción) se resta al valor del registro
El modo de direccionamiento inmediato se refiere a aquellas instrucciones en los que uno de los operandos
es un valor constante que viene dentro de la instrucción.
Relativo a PC, porque el valor constante (almacenado en la memoria de programa) se resta al valor del registro
Directo a registro, porque el valor constante (almacenado en un registro) se resta al valor del registro
Indirecto a registro, porque el valor constante (almacenado en la memoria RAM) se resta al valor del registro
Pregunta 17 3.75
/ 3.75 pts
Las instrucciones aritmético-lógicas corresponden a todas aquellas que reciben 3 parámetros: 2 indicando
los operandos y 1 indicando el resultado, y adicionalmente aplican una operación aritmética o lógica.
t0,
s2,
s2 y lo que haya en
s3 y lo guarda en
t0
s2 y lo guarda en
s3
s3 y lo guarda en
s2
s3 y lo guarda en
t0
add
t0,
s2,
s3 indica que
t0 (el primer operando que aparece en la instrucción) corresponde al registro destino y que
s2 y
Pregunta 18 3.75
/ 3.75 pts
Un procesador MIPS permite la ejecución de instrucciones por etapas, de manera que múltiples
instrucciones se pueden ejecutar a la vez, siempre y cuando estén en diferentes etapas.
Suponga que en un procesador MIPS de 4 etapas, en el que cada etapa tarda lo mismo: 1ms, quiere
ejecutar 4 instrucciones independientes entre sí ¿Cuál instrucción se ejecuta más rápido?
La última, porque la ejecuta mientras las demás todavía no se han ejecutado completamente
La segunda, porque se empieza a ejecutar tan pronto la primera instrucción termina la primera etapa.
Ninguna, porque en un procesador MIPS todas las instrucciones tardan lo mismo
En MIPS todas las instrucciones deben ejecutarse en las mismas etapas, y por lo tanto todas tardan lo
mismo. El paralelismo se da cuando se procesan varias instrucciones y no cuando se piensa en la
ejecución de cada instrucción de manera independiente.
La tercera, porque cuando termina de ejecutarse, la última todavía no ha empezado.
Pregunta 19 3.75
/ 3.75 pts
Dentro del diseño de una ISA (Instruction Set Architecture), uno de los aspectos más importantes para
considerar es el conjunto de instrucciones, que no es más que los comando o acciones que el procesador
podrá ejecutar. En este orden de ideas, surgen dos grandes enfoques, CISC y RISC que proponen unos
lineamientos de diseño que generan ciertas ventajas y desventajas.
Un cliente le solicita el diseño de un procesador de propósito general, que se utilizará en aplicaciones que
usualmente necesitan comandos simples y sencillos. El rendimiento es un aspecto importante para su
cliente, a tal punto que prioriza una rápida ejecución de los comandos sin importar que los programas que
se escriban para el procesador resulten largos (gran cantidad de líneas de código) o complejos de
desarrollar. Para atender este requerimiento, usted diseña para su cliente un procesador con un conjunto de
instrucciones de tipo
RISC, contemplando una pequeña cantidad de instrucciones simples, a partir de las cuales se genera un
procesador más sencillo y eficiente ejecutando tales instrucciones.
La definición de RISC es, precisamente, Reduced Instruction Set Computing, que significa que el set de
instrucciones debe poseer una reducida cantidad de instrucciones y que por lo tanto cada una de ellas
debe ser de complejidad mínima, así son ejecutadas de manera más eficiente por el procesador. En
contrapartida, requiere programas más largos y complejos. Estas características corresponden a la
solicitud de diseño del cliente, por lo que un conjunto de instrucciones tipo CISC no sería adecuado, pues
tiene planteamientos completamente opuestos, tales como: gran cantidad de instrucciones complejas y de
lenta ejecución que generan programas cortos y fáciles de desarrollar.
CISC, contemplando una pequeña cantidad de instrucciones simples, a partir de las cuales se genera un
procesador más sencillo y eficiente ejecutando tales instrucciones.
CISC, contemplando una gran cantidad de instrucciones complejas, que conlleva a programas cortos y de fácil
desarrollo.
Los requerimientos solicitados por el cliente son contradictorios y no se pueden atender con ningún enfoque de
diseño de ISA.
Pregunta 20 3.75
/ 3.75 pts
Usted se encuentra diseñando un procesador donde determinó que requiere 7 registros de uso general e
instrucciones de un largo de 20 bits. A partir de estas premisas, necesitará
3 bits para direccionar los registros de uso general y una memoria de programa con bloques de mínimo 5 bits.
7 bits para direccionar los registros de uso general y una memoria de programa con al menos 220 bloques
disponibles.
2 bits para direccionar los registros de uso general y una memoria de programa con bloques de mínimo 20 bits.
3 bits para direccionar los registros de uso general y una memoria de programa con bloques de mínimo 20 bits.
Es importante tener en cuenta que entre más registros se definan, más bits de control se requieren para su
direccionamiento y por lo tanto más complejidad adquiere la micro arquitectura del procesador, en este
caso requeriremos 3 bits para direccionarlos los 7 registros, recordando que con 3 bits se pueden
direccionar máximo 8 registros pues 23 = 8. La memoria de programa debe manejar bloques de un tamaño
tal, que puedan almacenar mínimo una instrucción completa, por lo tanto, debe tener capacidad para
almacenar 20 bits en cada bloque, así cada línea del programa que se ejecute corresponde a un bloque de
la memoria de programa. Utilizar valores mayores a los explicados anteriormente harían al procesador
ineficiente, pues desperdiciaría recursos, mientras que utilizar valores menores, impedirían el correcto
funcionamiento del procesador para ciertas casuísticas.