Juan Sebastián cardona Sánchez
Ingeniería de sistemas
A00346539
Arquitectura de hardware
Taller de repaso Parcial I
1. ¿Qué se entiende por Arquitectura de Computadores?
Es el diseño conceptual y la estructura operacional fundamental de un sistema de
computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y
las implementaciones de diseño para varias partes de una computadora, con especial interés
en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las
direcciones de memoria.
2. ¿Qué se entiende por Organización de Computadores?
La organización de computadoras se refiere a las unidades funcionales de una computadora
(como la unidad central de procesamiento, unidad de memoria y los dispositivos de
entrada/salida) y sus interconexiones, que materializan especificaciones arquitectónicas.
3. Mencione algunas características de un computador desde el punto de vista de
Arquitectura y Organización.
Arquitectura:
Set de instrucciones
Bits utilizados para representar los datos
Mecanismos de direccionamiento
Entrada y salida
La estructura se la forma en la que los componentes se relacionan entre sí.
Organización:
Se refiere a la implementación de la arquitectura.
Interfaces entre CPU/memoria.
Está relacionada con las unidades operativas y sus interconexiones.
Señales de control, Tecnología de la memoria
4. ¿Cuáles son las funciones básicas de un computador? Explique cada una.
El ciclo de procesamiento de información que realiza una computadora se puede resumir en
las siguientes cuatro funciones básicas:
Aceptar entradas. Una entrada es cualquier tipo de dato que introducimos a la
computadora como: palabras y símbolos de un documento, números para realizar cálculos,
instrucciones para realizar procesos, imágenes, sonidos, etc. Se utilizan diferentes
dispositivos como el teclado, ratón y/o micrófono para que la computadora reciba las
entradas.
Procesar datos. Consiste en manipular los datos de diferentes maneras para: realizar
cálculos, modificar palabras e imágenes, ordenar o alterar el orden de los datos. La
computadora utiliza un dispositivo que se llama Unidad de Procesamiento. Esta unidad
contiene dos elementos principales:
Unidad Central de Procesamiento (en inglés: Central Processing Unit [CPU]).
Memoria del Sistema.
Almacenar datos e información. La computadora debe almacenar datos para que estén
disponibles durante el procesamiento. El lugar donde se almacenarán depende de cómo se
utilicen los datos. Por ejemplo, en la Memoria del Sistema (dentro de la Unidad de
Procesamiento) la computadora guarda lo que está usando. Hay otro tipo de
almacenamiento, que es más permanente, en donde se guarda lo que no se necesita para
procesar en ese momento (por ejemplo: disquetes, CD, disco duro).
Producir salidas. Son los resultados generados por la computadora. Algunos ejemplos de
resultados son: reportes, documentos, gráficas, imágenes, etc. Se utilizan dispositivos como
el monitor, impresora, bocinas.
5. ¿Existe alguna diferencia entre el concepto de organización y el concepto de
estructura de un computador? Explique su respuesta.
Una diferencia es que la arquitectura de computadoras se refiere a los atributos de un
sistema visible a un programador, en cambio, una Organización de computadoras se refiere
a las unidades operativas y sus interconexiones que se dan cuenta de las especificaciones
arquitectónicas.
Estructura del computador: Es independiente de su tamaño o propósito todos los
computadores se componen del mismo conjunto de partes.
Arquitectura del computador: Es el diseño conceptual y la estructura operacional
fundamental de un sistema de computadoras.
6. ¿Por qué estudiar la organización y la arquitectura de los computadores?
La razón por la que es importante estudiar la organización y la arquitectura d ellos
computadores, es debido a que como la organización es como se organizan los
componentes del modelo y la arquitectura son los componentes del mismo, esto nos ayuda
a saber cómo utilizar correctamente nuestros recursos, ya al momento de elegir los
componentes al construir un pc para correr ciertos sistemas, ciertos programas, etc. Como
saber que está fallando nuestros programas debido a su organización y arquitectura.
7. ¿En qué consiste la idea conocida como Concepto de Programa Almacenado?
Un computador de programa almacenado es el que almacena las instrucciones del programa
en la memoria electrónica. Con frecuencia la definición es extendida con el requerimiento
de que el tratamiento en memoria de datos y programas sea intercambiable o uniforme.
Un computador con una arquitectura de von Neumann almacena los datos y las
instrucciones del programa en la misma memoria. un computador con una arquitectura
Harvard tiene memorias separadas para almacenar los datos y los programas.
El computador de programa almacenado a veces es usado como sinónimo de la arquitectura
de von Neumann, sin embargo, el profesor Jack Copeland considera que es "históricamente
inapropiado referirse a los computadores electrónicos digitales de programa almacenado
como 'máquinas de von Neumann'". Hennessy y Patterson escriben que las primeras
máquinas de Harvard fueron consideradas como "reaccionarias por los defensores de los
equipos de programa almacenado"
Es una máquina la cual su principal misión es almacenar los datos y los resultados
intermedios de una ecuación, también las instrucciones que explican el procedimiento las
ecuaciones o de la ecuación.
8. De acuerdo con la literatura, ¿Existe alguna definición universal del término palabra
(word)?
Definición de Palabra: Una palabra es una pieza de datos que tiene un tamaño fijo y que es
tratado como una unidad por el hardware del procesador de la computadora.
El tamaño o longitud de una palabra se mide en número de bits, lo cual constituye una
característica importante en el diseño de un procesador o de una arquitectura de
computadora específicos. Este tamaño de palabra determina muchos aspectos del diseño,
estructura y operación de la computadora. Los procesadores modernos suelen tener un
tamaño de palabra de 8, 16, 24, 32 o 64 bits, en tanto las computadoras tipo PC o notebooks
suelen usar 32 o 64 bits. A lo largo de la historia de la computación también se han usado
palabras de otros tamaños como 9, 12, 18, 36, 39, 40, 48 y 60 bits, algunos usados también
en la actualidad para procesadores de propósito específicos.
9. Mencione las principales características de la máquina de Von Neumann.
La arquitectura Von Neumann se basa en tres propiedades:
1) Hay un único espacio de memoria de lectura y escritura, que contiene las instrucciones y
los datos necesarios.
2) El contenido de la memoria es accesible por posición, independientemente de que se
acceda a datos o a instrucciones.
3) La ejecución de las instrucciones se produce de manera secuencial: después de ejecutar
una instrucción se ejecuta la instrucción siguiente que hay en la memoria principal, pero se
puede romper la secuencia de ejecución utilizando instrucciones de ruptura de secuencia.
10. A nivel de circuito integrado, ¿Cuáles son los tres componentes principales de un
computador?
Transistores: El transistor es un dispositivo electrónico semiconductor utilizado
para entregar una señal de salida en respuesta a una señal de entrada. Cumple
funciones de amplificador, oscilador, conmutador o rectificador.
Resistencia: Se le denomina resistencia eléctrica a la oposición al flujo de corriente
eléctrica a través de un conductor.
Conductores: Un conductor eléctrico es un material que ofrece poca resistencia al
movimiento de la carga eléctrica. Sus átomos se caracterizan por tener pocos
electrones en su capa de valencia, por lo que no se necesita mucha energía para que
estos salten de un átomo a otro.
11. Explique en detalle en qué consiste la Ley de Moore y qué consecuencias ha traído
esta. ¿Hoy día se cumple tal ley?
La Ley de Moore dice que cada 18 meses se duplica el número de transistores en un
circuito integrado, lo que ha provocado que la velocidad de procesamiento crezca de forma
exponencial, y si, la ley hoy en día se cumple.
12. Enumere las características clave de una familia de computadores.
Tamaño máximo de memoria.
Velocidad de la transferencia de datos procedente de a memoria.
Tiempo del ciclo de procesador.
Velocidad relativa.
Número máximo de canales de datos en un canal.
Compatibilidad de software
Compatibilidad de hardwares
13. Enumere algunas de las técnicas modernas que se aplican para aumentar la
velocidad de los procesadores.
Formatos de datos mayores. Los procesadores modernos de 64 bits son el resultado de una
larga evolución desde los primeros procesadores de 4 bits. Cada mejora ha provisto un
procesamiento más rápido de mayores cantidades de datos, y ha permitido que los
procesadores puedan apuntar directamente a mayores volúmenes de memoria.
Paralelismo a nivel de instrucciones. También conocido como ILP por sus siglas en inglés
(Instruction Level Parallelism), permite que un procesador dinámicamente evalúe conjuntos
de código para determinar qué instrucciones son independientes y se pueden procesar de
forma simultánea o en otro ord
Hyper-Threading. Es una técnica que permite que en un momento determinado las
diferentes partes de un CPU estén trabajando en diferentes hilos (threads). De esta forma se
obtiene un mayor aprovechamiento del CPU.
Mayor cache. La memoria cache es un espacio para almacenar datos e instrucciones cerca
del procesador (típicamente en el mismo chip). Esto la hace mucho más rápida que la
memoria convencional, además de consumir menos energía.
14. ¿Qué implicaciones trae el hecho de que la velocidad de los procesadores
modernos crezca con mucha mayor rapidez que la de los otros componentes
esenciales? Realice una comparación al respecto entre el procesador y la memoria
principal.
Provoca que haya un desequilibro de prestaciones, no se compensa la rapidez que tiene uno
a otro. Sin embargo, en el caso de aplicaciones que no hagan un buen uso de threads, las
mejoras de desempeño que se pueden obtener al aumentar el número de núcleos de
procesamiento son marginales. Es por esto que las organizaciones deben revisar
cuidadosamente el modelo y carga de trabajo al que están sujetos sus aplicaciones y
servidores, para evaluar qué tantas mejoras pueden obtener a través de multicore.
Adicionalmente deben establecer lineamientos para que las nuevas aplicaciones hagan un
buen uso de threads y por lo tanto aprovechen al máximo las arquitecturas multicore.
15. ¿Qué se entiende por equilibrio de prestaciones? Explique algunos ejemplos que
permitan lograr tal equilibrio.
El equilibrio de prestaciones hace referencia a que existe una desigualdad de prestaciones
entre microprocesador y memoria principal. Si la memoria no logra mantener las demandas
del procesador este se detiene. Por lo que la solución que permite lograr este equilibrio es
aumentando su capacidad de tamaño de la memoria para satisfacer la demanda que el
microprocesador requiera
16. ¿Cuál es la clave para distinguir las características de un microprocesador?
Cache, velocidad del reloj, buses de interconexión, núcleos y socket. Mas cachés y
almacenamiento además del uso de buses de interconexión de más alta velocidad y con
estructuras as elaboradas la clave de esto es el “Equilibrio”.
Unidad 2: Aritmética del sistema de cómputo:
1. Explique brevemente las siguientes representaciones: signo-magnitud, complemento
a dos, sesgada.
La representación en exceso a M consiste en sumarle al número N que vamos a representar
en valor M (normalmente M = 2^n-1 siendo n el número de bits disponibles). De esta
forma, los números negativos se convierten en positivo, y no se necesita bit de signo.
Simplemente se utiliza la representación binaria pura
El complemento a dos de un número N que, expresado en el sistema binario con n dígitos,
se define como: El total de números positivos será y el de negativos, siendo n el número
máximo de bits. El 0 contaría aparte.
Cuando un número binario con signo se representa en formato signo- magnitud, el bit más a
la izquierda es el bit del signo y los restantes bits son los bits de magnitud.
2. Explique cómo determinar si un número es negativo en las siguientes
representaciones: signo-magnitud, complemento a dos, sesgada.
Por medio de su signo mas significativo a la izquierda, con 1 es negativo y con 0 es
positivo.
3. ¿Cómo se obtiene el opuesto de un entero en la representación de complemento a
dos?
Lo que hacemos es poner todos los ceros por unos y los unos por ceros a partir del primer 1
de derecha a izquierda y mantener ese 1 y los bits a su derecha.
4. Si al sumar tratamos los números en complemento a dos como si fuesen enteros sin
signo, el resultado, interpretado como numero en complemento a dos, es correcto.
¿Por qué esto no se cumple para la multiplicación?
Porque para realizar una multiplicación, el resultado puede tener hasta el doble de bits que los
productos. De hecho, si es posible realizar multiplicación de números en complemento a 2, solo si
son extendidos en signo hasta el doble de su longitud original. El resultado se deberá de tomar los
últimos 2*n bits, y será correcto
5. ¿Cuáles son los cuatro elementos esenciales de un número en la notación de coma
flotante?
- Signo
- Mantisa
- Exponente
- Valor decimal
6. ¿Qué ventaja supone utilizar la representación sesgada para la parte del exponente,
y desbordamiento de la parte significativa?
Representación sesgada del exponente: La razón que justifica la interpretación sesgada es
que mantiene la relación de orden observada en la codificación entera sin signo
7. ¿Qué diferencias existen entre desbordamiento positivo, desbordamiento del
exponente, y desbordamiento de la parte significativa?
Desbordamiento positivo: Ocurre cuando el número es demasiado grande para la representación,
por lo que se desborda y se convierte en un resultado no esperado.
Desbordamiento de exponente: El exponente no puede ser presentado en los bits que posee, es
decir producto de una operación aritmética, el exponente del resultado en la forma
normalizada puede exceder el valor máximo representable (128, caso exponente con 8 bit)
(overflow).
Desbordamiento de la parte significativa: El valor representado por la mantisa (el significante) se
desborda, resultando en valores inesperados.
8. Indique un motivo para el uso de los bits de guarda.
Porque durante el cálculo de operaciones en punto flotante se requiere que estos resultados
sean precisos y se pueden necesitar bits adicionales.
9. Represente tanto en signo-magnitud como en complemento a dos, con 16 bits, los
siguientes decimales: +512, -29
Signo-Magnitud:
+512: 0000001000000000
-29: 1000000000011101
Complemento a dos:
+512: 0000001000000000
-29: 1111111111100011
10. Represente en decimal los siguientes valores en complemento a dos: 1101011,
0101101.
1101011 -> 0010101 = 21
0101101 -> 1010011 = 83
Lo que se hace para todos es, al sustraendo se le aplica el complemento a 2 y luego al
minuendo se le suma el resultado que tenga el complemento a 2 del sustraendo y listo.
A= 000101 = 5
B= 10011110 = 158
C= 00100011100 = 284
D= El resultado de hacer lo anterior seria 11011011, luego a este numero le sacamos el
complemento a 1 y le sumamos uno, por lo que nos queda -00100101 = -37
12. Use el algoritmo de Booth para multiplicar 23 (multiplicando) por 29
(multiplicador), donde cada número está representado con 7 bits.
23 = M = 0010111
29 = Q = 0011101
Y consideramos el complemento a 2 de 23 que es igual a: 1101001
Además, consideramos:
10 -> A = A-M y desplazo a la derecha
01 -> A = A+M y desplazo a la derecha
00 -> Desplazo a la derecha
11 -> Desplazo a la derecha
N (# de bits) A Q Q-1 Proceso
7 0000000 0011101 0 Inicialización
1101001 0011101 0 A=A-M
6 1110100 1001110 1 Desplazo
0001011 1001110 1 A=A+M
5 0000101 1100111 0 Desplazo
1101110 1100111 0 A=A-M
4 1110111 0110011 1 Desplazo
3 1111011 1011001 1 Desplazo
2 1111101 1101100 1 Desplazo
0010100 1101100 1 A=A+M
1 0001010 0110110 0 Desplazo
0 0000101 0011011 0 Desplazo
Tenemos entonces: 00001010011011 = 667
Y efectivamente tenemos que 23*29 = 667 por lo que nuestro algoritmo se hizo
correctamente.
A = 11000000101000000000000000000000
B = 01000000110000000000000000000000
C = 10111111110000000000000000000000
D = 01000011110000000000000000000000
E = 00111101100000000000000000000000
F = 10111100100000000000000000000000
G = 00000000000000000000000000000000
H = 11111111111111111111111111111111
I = 111111111000000000000000000000000
J = 111111111111111111111111111111111
14. Los siguientes números emplean el formato en coma flotante IEEE de 32 bits.
¿Cuáles son sus valores decimales equivalentes?
a. 1 10000011 11000000000000000000000 = -28
b. 0 01111110 10100000000000000000000 = 0.8125
c. 0 10000000 00000000000000000000000 = 2
Unidad 3: Organización de una unidad central de procesamiento
1. La Arquitectura de Von Neumann se basa en tres conceptos. ¿Cuáles son?
1.- Los datos y las instrucciones se almacenan en una sola memoria de lectura - escritura.
2.- Los contenidos de esta memoria se direccionan indicando su posición, sin considerar el tipo de
dato contenido en la misma.
3.- La ejecución se produce siguiendo una secuencia de instrucción tras instrucción (a no ser que
dicha instrucción se modifique explícitamente)
2. ¿En qué consiste un ciclo de instrucción?
En arquitectura de computadores, los ciclos por instrucción o CPI son una medida del
rendimiento de un procesador: el número medio de ciclos de reloj por instrucción en un
programa o fragmento. Es el inverso multiplicativo de las instrucciones por ciclo.
3. ¿Cuáles son los tipos de instrucciones que puede ejecutar una CPU?
Existen principalmente tres tipos: CISC (Complex Instruction Set Computer), RISC
(Reduced Instruction Set Computer) y SISC (Simple Instruction Set Computing).
4. Explique el diagrama de estados correspondiente al ciclo de instrucción básico.
1. Buscar la instrucción en la memoria principal
Se vuelca el valor del contador de programa sobre el bus de direcciones. Entonces la CPU
pasa la instrucción de la memoria principal a través del bus de datos al Registro de
Dirección de Memoria (MAR). A continuación, el valor del MAR es colocado en el
Registro de Instrucción Actual (CIR), un circuito que guarda la instrucción temporalmente
de manera que pueda ser decodificada y ejecutada.
2. Decodificar la instrucción
El decodificador de instrucción interpreta e implementa la instrucción. El registro de
instrucción (IR) mantiene la instrucción en curso mientras el contador de programa (PC,
program counter) guarda la dirección de memoria de la siguiente instrucción a ser
ejecutada.
Recogida de datos desde la memoria principal
Se accede al banco de registros por los operandos (solo si es necesario)
Se calcula el valor del operando inmediato con extensión de signo (solo si es
necesario)
También se lee la dirección efectiva de la memoria principal si la instrucción tiene una
dirección indirecta, y se recogen los datos requeridos de la memoria principal para ser
procesados y colocados en los registros de datos.
3. Ejecutar la instrucción
A partir del registro de instrucción, los datos que forman la instrucción son decodificados
por la unidad de control. Ésta interpreta la información como una secuencia de señales de
control que son enviadas a las unidades funcionales relevantes de la CPU para realizar la
operación requerida por la instrucción poder terminarla y seguir así.
4. Almacenar o guardar resultados
El resultado generado por la operación es almacenado en la memoria principal o enviado a
un dispositivo de salida dependiendo de la instrucción. Basándose en los resultados de la
operación, el contador de programa se incrementa para apuntar a la siguiente instrucción o
se actualiza con una dirección diferente donde la próxima instrucción será recogida.
5. ¿Para qué sirven las interrupciones? Explique los diferentes tipos de interrupciones
y la forma en que afectan el ciclo de instrucción del procesador. ¿Qué alternativas se
pueden usar para tratar interrupciones múltiples?
Una interrupción es un mecanismo que permite ejecutar un bloque de instrucciones
interrumpiendo la ejecución de un programa, y luego restablecer la ejecución de este sin
afectarlo directamente, aunque su efecto es el detenimiento del proceso el ciclo de
instrucciones luego es recuperado rápidamente.
Interrupciones de hardware
Las interrupciones de hardware son aquellas interrupciones que se producen como
resultado de, por lo general, una operación de E/S. No son producidas por ninguna
instrucción de un programa sino por las señales que emiten los dispositivos periféricos para
indicarle al procesador que necesitan ser atendidos.
Excepciones
Las excepciones son un tipo de interrupción sincrónica típicamente causada por una
condición de error en un programa, como por ejemplo una división entre 0 o un acceso
inválido a memoria en un proceso de usuario. Normalmente genera un cambio de contexto
a modo supervisor para que el sistema operativo atienda el error.
Interrupciones por software
Las interrupciones por software, también denominadas llamadas al sistema son aquellas
generadas por un programa mientras este está ejecutándose. En general, actúan de la
siguiente manera: Un programa en ejecución llega a una instrucción que requiere del
sistema operativo para alguna tarea, por ejemplo, para leer un archivo en el disco duro
(cuando un programa necesita un dato exterior, se detiene y pasa a cumplir con las tareas de
recoger ese dato).
6. ¿Qué es una estructura de interconexión? ¿Qué tipos de transferencias se llevan a
cabo mediante ésta?
Al grupo de vías que conectan los diversos módulos, se les llama la estructura de
interconexión. El diseño de esta estructura dependerá de los intercambios que se deben
hacer entre módulos.
Un ejemplo de esta sería el Bus el cual representa básicamente una serie de cables mediante
los cuales pueden cargarse datos en la memoria y desde allí transportarse a la CPU. Por así
decirlo es la autopista de los datos dentro del PC ya que comunica todos los componentes
del ordenador con el microprocesador. El bus se controla y maneja desde la CPU.
7. ¿Qué es un bus de sistema, ¿cómo está conformado? ¿Qué tipos de buses hay en un sistema
basado en procesador?
Un bus de datos es un dispositivo mediante el cual al interior de una computadora se transportan
datos e información relevante. ... En otras palabras, un bus de datos es una autopista o canal de
transmisión de información dentro de la computadora que comunica a los componentes de dicho
sistema con el microprocesador.
Físicamente su descripción es: conjunto de hilos físicos utilizados para la transmisión de datos entre
los componentes de un sistema informático. Un bus está compuesto por conductos, o vías, que
permiten la interconexión de los diferentes componentes, principalmente, con la CPU y la memoria.
Hay diferentes tipos de buses:
Bus paralelo: Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda
de varias líneas que tienen funciones fijas.
Bus serie: En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas
de software.
Bus de Datos: Este es un bus bidireccional, pues los datos pueden fluir hacia ó desde la CPU. Los m
terminales de la CPU, de D0 – Dm-1, pueden ser entradas ó salidas, según la operación que se esté
realizando (lectura o escritura) .
Bus de Control: Este conjunto de señales se usa para sincronizar las actividades y transacciones con
los periféricos del sistema
8. Al conectar demasiados dispositivos a un bus, las prestaciones del sistema disminuyen
debido a dos causas. ¿Cuáles son? Explique brevemente y mencione las posibles soluciones.
1. A más dispositivos conectados mayor es el retardo de propagación, este retardo determina el
tiempo necesario para que los dispositivos puedan coordinarse en el uso del bus. Al pasar el control
frecuentemente de un dispositivo a otro los retardos se hacen considerables afectando las
prestaciones del sistema.
2. El bus puede convertirse en el cuello de botella a medida que las peticiones de transferencia
acumuladas se aproximan a la capacidad del bus. Este problema se puede solucionar en parte
incrementando la velocidad del bus y utilizando buses más anchos.
Por este motivo la mayoría de los computadores utilizan varios buses, normalmente organizados
jerárquicamente.
9. ¿Cómo se clasifican los buses? Explique los elementos que se deben tener en cuenta en el
diseño de un bus.
Las líneas del bus se pueden dividir en dos tipos genéricos" dedicadas y multiplexadas. En donde -
Dedicadas: Una línea de bus dedicada está permanente asignada a una función o a un subconjunto
físico de componentes del computador. Un bus multiplexado básico, son estructura que controlan
las memorias y los dispositivos de entrada y salida.