ACTIVIDAD III ARQUITECTURA DE COMPUTADORES Trabajo

Anuncio
ACTIVIDAD III
ARQUITECTURA DE COMPUTADORES
Trabajo presentado al Ing.
HAIMER GUTIERREZ
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
FACULTAD DE CIENCIAS BASICAS E INGENIERIAS
INGENIERIAS DE SISTEMAS, QUINTO SEMESTRE
ACACIAS 2007
ACTIVIDAD III
ARQUITECTURA DE COMPUTADORES
YENNY ISLENA CESPEDES BERNAL
CODIGO: 40.443.529
MARIA ANGELICA SANCHEZ CARDOZO
CODIGO: 30.081.565
JOSE ANTONIO ROCHA
CODIGO: 86.080.624
Trabajo presentado al Ing.
HAIMER GUTIERREZ
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
FACULTAD DE CIENCIAS BASICAS E INGENIERIAS
INGENIERIAS DE SISTEMAS, QUINTO SEMESTRE
ACACIAS 2007
INTRODUCCION
De acuerdo a los componentes que conformen el computador, podemos
determinar la capacidad de este, y seleccionar el que se adapte a los
requerimientos deseados, con el siguiente trabajo veremos las diferentes formas
de medir la capacidad de los equipos de computo y los componentes que los
conforman.
OBJETIVOS
 Conocer las diferentes formas de determinar la capacidad de los equipos.
 Aprender sobre los programas de prueba que permiten medir las
prestaciones de los equipos de cómputo.
 Investigar las especificaciones del bus PCI y sus características.
1. Si la versión de 1998 de un computador ejecuta un programa en 200 s
y la versión del computador hecha en el 2000 ejecuta el mismo
programa en 150 s, cuál es el incremento de velocidad que el
fabricante ha conseguido en dos años?
Rendimiento x =
Rendimiento y
tiempo de ejecución y = n = 150s = 0.75
tiempo de ejecución x
200s
El incremento de velocidad que ha conseguido el fabricante es de 0.75
1. Por qué se usan programas de prueba y conjunto de programas de
prueba para medir las prestaciones de un computador?
Mientras que para un matemático probar es poco más o menos demostrar la
corrección de un programa, para un programador es básicamente convencerse de
que el programa va bien, funciona correctamente, y tendrá éxito y aceptación
cuando lo entregue a sus usuarios finales.
El IEEE se atreve con una definición:
Es el proceso de ejercitar o evaluar un sistema, manual o automáticamente, con el
ánimo de verificar que satisface los requisitos especificados, o identificar
discrepancias entre los resultados esperados y los que el programa devuelve.
La práctica nos convence, en cambio, de que hay que usar planteamientos más
duros, del tipo:
Probar un programa es ejercitarlo con la peor intención a fin de encontrarle fallos.
Por poner un ejemplo duro, probar un programa es equivalente a la actividad de
ciertos profesores para los que examinar a un alumno consiste en poner en
evidencia todo lo que no sabe. Esto es penoso cuando se aplica a personas; pero
es exactamente lo que hay que hacerle a los programas.
Los programas de prueba son un conjunto de programas para evaluar el
rendimiento.
La elección no es trivial, cada programa utilizará principalmente unos determinado
tipos de instrucciones, el rendimiento dependerá de que el programa elegido sea
apropiado a la máquina, esto puede ser engañoso.
Habrá que elegir un conjunto equilibrado:
Programas que forman una carga de trabajo con la que el usuario
Espera predecir el rendimiento de la carga de trabajo real
2. Si se tienen dos implementaciones de la misma arquitectura del
repertorio de instrucciones. La máquina A tiene una duración de ciclo
de reloj de 10 ns y un CPI de 2.0 para un programa, y la máquina B una
duración de ciclo de reloj de 20 ns y un CPI de 1.2 para el mismo
programa. Qué máquina es más rápida para este programa y cuánto?
T CPU A= numero de instrucciones x CPI x Tiempo del ciclo
= 2 x 2.0 x 10ns
= 40ns.
T CPU B = numero de instrucciones x CPI x Tiempo del ciclo
= 2 x 1.2 x 20ns
=48ns
Rendimiento A =
Rendimiento B
tiempo de ejecución B = n = 48ns = 1.2
tiempo de ejecución A
40ns
La maquina A es 1.2 veces mas rápida que la maquina B.
3. Obtener información acerca de las especificaciones del bus PCI y
productos basados en el mismo en PCI Special Interest Group.
El bus PCI (Peripheral Component Interconnect), Interconexión de Componente
Periférico es un bus propuesto recientemente, de ancho de banda elevado,
independiente del procesador. Comparado con otros buses, el PCI proporciona
mejores prestaciones para E/S de alta velocidad. El estándar actual permite el uso
de 64 líneas de datos a 33 MHz, para una velocidad de transferencia de 264 MB/s,
ó 2.112 GB/s. El PCI ha sido diseñado para ajustarse, económicamente, a los
requisitos de E/S de los sistemas actuales; se implementa con muy pocos circuitos
integrados y permite que otros buses se conecten a él.
Intel empezó a trabajar el PCI en 1990 pensando en sus sistemas Pentium. Muy
pronto Intel cedió sus patentes al dominio público. El resultado ha sido que el PCI
ha sido ampliamente adoptado y se esta incrementando su uso en las
computadoras personales, estaciones de trabajo y servidores. La versión actual es
PCI 2.0.
El PCI esta diseñado para permitir una cierta variedad de configuraciones basadas
en microprocesadores, incluyendo sistemas tanto de uno como de varios
procesadores. Utiliza temporización síncrona y un esquema de arbitraje
centralizado.
El bus PCI puede configurarse como un bus de 32 ó 64 bits. Las 50 líneas de
señal obligatorias se dividen en los grupos funcionales siguientes:

Terminales de sistema: Constituidas por las señales de reloj y reinicio.

Terminales de direcciones y datos: Incluye 32 líneas para datos y
direcciones multiplexadas. Las otras líneas del grupo se utilizan para
interpretar y validar las señales correspondientes a datos y direcciones.

Terminales de control de interfaz: Controlan la temporización de las
transferencias y proporciona coordinación entre los que la inician y los
destinatarios.
 Terminales de arbitraje: Estas no son líneas compartidas. Cada maestro del
PCI tiene su propio par de líneas que lo conectan directamente al arbitro del
bus PCI.
 Terminales para señales de error: Indican errores de paridad u otros.
Además la especificación PCI define 50 señales opcionales, divididas en los
siguientes grupos funcionales:
 Terminales de interrupción: Para los dispositivos PCI que deben generar
peticiones de servicio. Cada dispositivo PCI tiene su propia línea conectada a
un controlador de interrupciones.
 Terminales de soporte de cache: Para permitir memorias cache en el bus
PCI asociadas a un procesador o a otro dispositivo.
 Terminales de extensión a bus de 64 bits: 32 líneas multiplexadas para
dirección y datos y se combinan con las líneas obligatorias de dirección y
datos. Hay dos líneas que permiten que dos dispositivos PCI se pongan de
acuerdo para usar los 64 bits.
 Terminales de prueba (JTAG / Boundary Scan): estas líneas se ajustan al
estándar IEEE 149.1 para la definición de procedimientos de prueba.
A diferencia de los buses ISA, el bus PCI permite configuración dinámica de un
dispositivo periférico. En el tiempo de arranque del sistema, las tarjetas PCI y el
BIOS interactúan y negocian los recursos solicitados por la tarjeta PCI. Esto
permite asignación de IRQs y direcciones del puerto por medio de un proceso
dinámico diferente del bus ISA, donde las IRQs tienen que ser configuradas
manualmente usando jumpers externos. Aparte de esto, el bus PCI proporciona
una descripción detallada de todos los dispositivos PCI conectados a través del
espacio de configuración PCI.
La especificación PCI cubre el tamaño físico del bus, características eléctricas,
cronómetro del bus y sus protocolos
4. Dibuje y explique un diagrama de tiempos para una operación de
escritura en un bus PCI.
Transferencia de datos en el bus PCI
Toda transferencia de datos en el bus PCI es una transacción única que consta de
una fase de direccionamiento y una o más fases de datos. A continuación se
ilustra una operación de lectura típica; las operaciones de escritura se producen
de forma análoga.
La figura muestra los tiempos de una operación de lectura. Todos los eventos se
sincronizan en los flancos de bajada del reloj. Los dispositivos del bus interpretan
las líneas del bus en los flancos de subida al comienzo del ciclo del bus. A
continuación se describen los eventos significativos del diagrama:
Figura 24. Operación de lectura en el PCI
a) a) Una vez que el maestro obtiene el control del bus, debe iniciar la
transacción activando FRAME. Esta línea permanece activa hasta terminar la
última fase de datos. El maestro también pone la dirección de inicio en el bus y
la orden de lectura en las líneas C/BE (señales de órdenes del bus y de byte
activo).
b) b) Al comienzo del pulso 2, el dispositivo del que se lee reconocerá su
dirección en las líneas AD (direcciones y datos).
c) c) El maestro libera las líneas AD. En todas las líneas de señal que pueden
ser activadas por más de un dispositivo se necesita un ciclo de cambio
(indicado por las dos flechas circulares) para que la liberación de las líneas de
dirección permita que el bus pueda ser utilizado por el dispositivo de lectura. El
maestro cambia la información de las líneas C/BE para indicar cuales líneas
AD se utilizan para transferir el dato direccionado (de 1 a 4 bytes). El maestro
también activa IRDY para indicar que esta preparado para recibir el primer
dato.
d) d) El dispositivo de lectura seleccionado activa DEVSEL (selector de
dispositivo) para indicar que ha reconocido las direcciones y va a responder.
Pone el dato solicitado en AD y activa TRDY (target ready) para indicar que
hay un dato válido en el bus.
e) e) El maestro lee el dato al principio del pulso 4 y cambia las líneas de
habilitación de byte según se necesite para la próxima lectura.
f) f) En este ejemplo, el dispositivo d lectura necesita tiempo para preparar el
segundo bloque de datos para la transmisión. Por consiguiente, desactiva
TRDY para indicar al maestro que no proporcionará otro dato en el próximo
ciclo. En consecuencia, el maestro no lee las líneas de datos al comienzo del
pulso 5 y no cambia la señal de habilitación de byte durante ese ciclo. El
bloque de datos se lee al comienzo del pulso 6.
g) g) Durante el pulso 7, el dispositivo de lectura pone el tercer dato en el bus.
No obstante, en este ejemplo, el maestro todavía no esta listo para leer el dato.
Para indicarlo desactiva IRDY. Esto hará que el dispositivo le lectura mantenga
el tercer dato en el bus durante un pulso de reloj extra.
h) h) El maestro sabe que el tercer dato es el último, y por eso desactiva
FRAME para indicar al dispositivo de lectura que este es el último dato a
transferir. Además activa IRDY para indicar que está listo para completar esa
transferencia.
i) i) El maestro desactiva IRDY, haciendo que el bus vuelva a estar libre, y el
dispositivo de lectura desactiva TRDY y DEVSEL.
5. Investigue cómo está organizada la memoria caché en el PENTIUM II y
el PowerPC
Pentium II
Componentes básicos
 v Unidad de captación/
Decodificación.
 Unidad de envío/ejecución.
 Unidad de retiro.
 Funcionamiento
 Capta las instrucciones en memoria en el orden del programa.
 Cada instrucción se traduce en una o más instrucciones RISC de tamaño
fijo (microoperaciones o microops).
 Se ejecutan las microops en un cauce superescalar fuera de orden0
 Se almacenan los resultados de la ejecución de las microops en el orden
del flujo original del programa.
 ¿CISC o RISC?
 La arquitectura tiene una envoltura CISC con un núcleo RISC interno.
 Las microops RISC pasa por una cauce de 11 etapas.
Unidad de captación/decodificación
Unidad de captación/decodificación
 Etapas de captación
 IFU1 – Buffer de instrucciones
 Capta instrucciones de la caché de instrucciones
 Unidad siguiente IP proporciona la dirección de la siguiente
instrucción a captar
o Incrementar puntero e influencia de saltos e interrupciones
 IFU2 – Decodificador de longitud de instrucciones
 Examina los bytes para determinar los límites de las instrucciones
(longitud variable)
 Si la instrucción es de salto, pasa la dirección a la unidad de
predicción dinámica de saltos.
 IFU3 – Alineamiento de instrucciones para decodificadores
 Si es preciso rota el contenido de su buffer para adaptarse a la
estructura de ID1
o La primera instrucción compleja y las otras dos sencillas.
o Si hay dos o más complejas, se introducen en ID1 en distintos
tiempos.
 Etapas de decodificación
 ID1 – Decodificador
 Maneja tres instrucciones máquina en paralelo
 Traduce una inst. máquina de una a cuatro microps (inst RISC de
118 bits)
 Dispone de tres decodificadores
o Uno para instrucciones complejas (de 2 a 4 microops)
o Los otros dos para instrucciones sencillas (una microops)
 Si la instr. es de más de 4 microops se transfiere al secuenciador de
instrucciones de microcódigo (MIS)
o ROM de microcódigo con secuencias de microops asociadas a
una instr. Máquina compleja
o MIS es una unidad microprogramada
 ID2 – Cola de instrucciones decodificadas
 Encola las microops en el orden original del programa
 Si alguna es de salto pasa a unidad de predicción estática, que
alimenta a la unidad de predicción dinámica.

 Asignador de registros (Register allocator RAT)
 Transforma las referencias a los 16 registros de la arquitectura a un
conjunto de 40 registros físicos
 Elimina dependencias falsas provocadas por el limitado número de registros
de la arquitectura
 Preserva las dependencias verdaderas
Buffer de reordenación
 Buffer circular que puede contener hasta 40 microops y con 40
registros hardware.
 Campos de cada entrada en el buffer ROB.
 Estado
 Indica si la microops está lista para ejecutarse, si ha sido emitida o si
ha terminado su ejecución
 Dirección de memoria
 Dirección de la instrucción que generó la microops
 Microop
 Operación propiamente dicha
 Registro alias
 Si la microops referencia a unos de los 16 registros, este campo
redirecciona a uno de los 40 registros hardware
 Las microops entran en el buffer en orden
 Se emiten fuera de orden siempre que
 La unidad de ejecución este libre y los datos disponibles
Unidad de envío/ejecución
Unidad de envío/ejecución
 Estación de reserva (Reservation station - RS)
 Recupera microops del buffer de reordenación, las manda a ejecutar y
guarda los resultados en ROB
 Busca en ROB microops cuyo estado indique que operandos
disponibles
 Si la unidad de ejecución necesitada está disponible, la capta y la
manda ejecutar
 Se pueden enviar cinco microops por ciclo
 Si hay más de una microop disponible para una unidad de ejecución,
la RS las envía de forma secuencial desde ROB
 Unión RS con unidades de ejecución
 Puerto 0 y 1
 Instrucciones con enteros (IEU), punto flotante (FPU), MMX y unidad
de ejecución de saltos (JEU)
 Puertos 2, 3 y 4
 Carga y almacenamiento en memoria
 JEU (Jump Execution Unit)
 Gestiona las predicciones de salto erróneas
 Si una predicción es errónea, microops tendrán que ser retiradas de las
unidades de ejecución
 Cuando se ejecuta un salto condicional, se compara el resultado con el
pronóstico realizado por el hardware de predicción
 Si no coinciden
 JEU cambia el estado de las microops siguientes al salto para
eliminarlas
 El destino correcto se proporciona a la unidad de predicción de saltos
que regenera el estadp
Unidad de retiro
 Procesa el buffer de reordenación para entregar los resultados de la
ejecución
 Tiene en cuenta los fallos en las predicciones de saltos
 Cuando una microop se ha ejecutado (sin problemas con saltos) se marca
como preparada para ser retirada
 Cuando se retira la instrucción máquina previa, y cuando todas las microops
de la instrucción se han marcado como preparadas entonces la unidad de
retiro actualiza los registros físicos y quita la microop del buffer de
reordenamiento.
Predicción de saltos
 Predicción dinámica de saltos
 basada en la historia de las ejecuciones recientes de saltos condicionales
 Buffer de destino de saltos (branch target buffer – BTB)
 Almacena información sobre los últimos saltos condicionales
 Memoria asociativa de cuatro vías con 512 líneas que incluye
 La dirección del salto, dirección de destino y un campo de historia
 Funcionamiento
 Si aparece una inst. salto se comprueba el BTB
 Si existe una entrada en el buffer
 la unidad de inst. se guía por esa información almacenada para
predecir si se toma o no el salto
 Si se predice el salto, la dirección destino del salto asociada con esa
entrada se utiliza para precaptar la inst. destino del salto
o Cuando se ejecuta el salto, se actualiza la información de
historia de saltos
 Si la inst. no está en BTB se carga su dirección en una entrada de BTB
 Predicción estática de saltos
 Para saltos condicionales que no tienen historia en BTB
 Algoritmo
 En saltos condicionales hacia atrás (respecto a IP)
 Se predice que se producirá el salto
 BUCLES
 En saltos condicionales hacia adelante (respecto a IP)
 Se predice que no se producirá el salto
 En saltos condicionales no relativas a IP
 Si es un retorno, se predice que se producirá el salto
 En cualquier otro caso, no se tomará el salto
PowerPC
Precedentes
 IBM 801
 RT PC
 RS/6000 (primer superescalar)

Arquitectura RISC superescalar
PowerPC
 601
 603
 604
 620
 7xx (G3)
 74xx (G4)
 75xx (G5)
Tres unidades de ejecución independientes
 De coma flotante
 De procesamiento de saltos
 De enteros
 instrucciones de enteros, carga/almacenamiento entre registros y
caché y comparación de enteros
 Diseño superescalar de grado 3
 Se pueden ejecutan 3 instrucciones simultáneamente
 Unidad de captación
 Puede precaptar de la caché hasta 8
Instrucciones al mismo tiempo
 Unidad de caché
 Soporta una caché de
instrucciones y datos
 Responsable de suministrar
instrucciones a las otras unidades y datos
a los registros
 Lógica de arbitraje envía a la
caché la dirección del acceso
de mayor prioridad
 Funciones
 Toma instrucciones de la caché y las carga en una cola (8 instrucciones)
 Procesa el flujo de instrucciones para suministrar un flujo constante a las
tres unidades de ejecución
 Estructura
 Mitad superior
 Actúa como buffer con instrucciones hasta que se transfieran a la
mitad inferior
 Mitad inferior
 Asegura que esta unidad no se retrasa esperando inst. de la caché
 Esquema de envío
 Unidad de procesamiento de saltos
 La instrucción de salto situada en la zona más baja de la cola de envío
se emite a esta unidad si puede aceptarla
 Unidad de coma flotante
 La instrucción de coma flotante situada en la zona más baja de la cola
de envío se emite si el cauce de inst. no está lleno
 Esquema de envío
 Unidad de enteros
 Una instrucción de enteros se emite sólo cuando se haya filtrado hasta
el extremo inferior de la cola de envío
 Emisión fuera de orden de instrucciones de salto y de coma flotante
para
 Mantener llenos los cauces de coma flotante y de procesamiento de saltos
 Control para la correcta ejecución
 Si existe una dependencia el cauce correspondiente se detiene
 Lógica para calcular la dirección de precaptación
 Capta instrucciones de forma continua y secuencial hasta que un salto esté
en la mitad inferior de la cola
 Cuando la unidad de salto procese la instrucción, puede actualizar la
dirección de precaptación para que las nuevas inst. se capten de la nueva
dirección
6. Por qué las RAM han sido tradicionalmente organizadas en sólo un bit
por chip mientras que las ROM están normalmente organizadas en
múltiples bits por chip?
Memoria de acceso aleatorio o RAM (Random Access Memory) es la memoria
basada en semiconductores que puede ser leída y escrita por el microprocesador
u otros dispositivos de hardware. El acceso a las posiciones de almacenamiento
se puede realizar en cualquier orden.
Los chips de memoria son pequeños rectángulos negros que suelen ir soldados en
grupos a unas plaquitas con "pines" o contactos. La diferencia entre la RAM y
otros tipos de memoria de almacenamiento, como los disquetes o los discos
duros, es que la RAM es muchísimo más rápida, y que se borra al apagar el
ordenador, no como éstos.
El interior de cada chip se puede imaginar como una matriz o tabla en la cual cada
celda es capaz de almacenar un bit. Por tanto, un bit se puede localizar
directamente proporcionando una fila y una columna de la tabla. En realidad, la
CPU identifica cada celda mediante un número, denominado dirección de
memoria. A partir de una dirección se calcula cuál es la fila y columna
correspondiente, con lo que ya se puede acceder a la celda deseada. El acceso se
realiza en dos pasos: primero se comunica la fila y después la columna empleando
los mismos terminales de conexión. Obviamente, esta técnica –denominada
multiplexado– permite emplear menos terminales de conexión para acceder a la
RAM, lo que optimiza la relación entre el tamaño del chip y la capacidad de
almacenamiento.
Realmente, la CPU no suele trabajar con bits independientes, sino más bien con
agrupaciones de los mismos, en forma de palabras binarias. Esto hace que la
RAM no se presente en un solo chip, sino más bien en agrupaciones de los
mismos. Por ejemplo, un grupo de 8 chips, cada uno capaz de almacenas x bits,
proporcionará en conjunto x Kb.
La memoria no deja de ser un circuito electrónico real, y por tanto está expuesta a
efectos que pueden producir errores en su contenido. En otras palabras, tras
escribir una palabra en una posición de memoria es perfectamente posible que
algún bit cambie de estado durante el tiempo que permanezca almacenada. Si se
accede de nuevo a la memoria para leer dicha palabra se recuperará información
errónea y esto puede acarrear todo tipo de consecuencias. Para ello se suelen
emplear dos soluciones: la paridad y la técnica ECC (Error Correction Code). El
elemento que implementa estos métodos se encuentra en el interior del PC y
recibe el nombre de controlador de memoria.
La paridad consiste en añadir un bit adicional a cada palabra, que hace que el
número de unos sea par o impar (según se emplee la paridad par o impar). Si al
leer información de la memoria el bit de paridad no está de acuerdo con el número
de unos se habrá detectado un error.
El sistema ECC añade un conjunto de bits a cada palabra a almacenar. La ventaja
es que permite detectar errores en varios bits y además es capaz de corregir
dichos errores. Estas técnicas implican añadir bits adicionales y por tanto tendrán
impacto en la cantidad de memoria incorporada en cada módulo.
MEMORIAS R.O.M (Read Only Memory): Se trata en este caso de chips de
memoria de Solo Lectura (Read Only). Dicho de otra manera es imposible para μP
escribir en una ROM y esta es la primera gran diferencia que existe con una RAM.
La segunda consiste en que no son de "acceso al azar" sino de "acceso
secuencial", es decir que una vez iniciada la lectura de la memoria desde una
posición cualquiera debe continuarse leyendo las posiciones siguientes. Estas
memorias tienen datos grabados (programas) en forma permanente y no
dependen de la tensión de alimentación para mantenerlos. Consisten básicamente
en una matriz de fusibles, donde aquellos que están abiertos representan un 0
(cero lógico) y los que no un 1 (uno lógico).
7. En casi todos los sistemas que tienen módulos de DMA, el acceso del
módulo de DMA a memoria principal tiene más prioridad que el acceso
de la CPU a memoria principal. Por qué?
El funcionamiento es el siguiente:
 Para realizar una transferencia de E/S, la CPU primero ha de indicar qué
canal de E/S ejecuta un determinado programa.
 La CPU también debe definir el área de almacenamiento temporal,
establecer una prioridad y establecer las correspondientes acciones en
caso de error. El programa a ejecutar está cargado en memoria principal y
puede contener instrucciones propias sólo procesables por el canal de E/S.
 Después de terminar la operación de E/S, el canal de E/S deja el resultado
en un área de memoria y a continuación genera una interrupción para
indicar que ha acabado.
8. Indique las razones por las que el tamaño de página en un sistema de
memoria virtual no debe ser ni muy grande ni muy pequeño.
La memoria virtual es un espacio de direcciones cuyo tamaño máximo está
determinado por el esquema de direccionamiento del computador (es decir, por
la cantidad máxima de bytes posibles de direccionar que depende de la
cantidad de bits o dígitos binarios utilizados para expresar una dirección.
El almacenamiento que puede ser directamente accedido por el computador
(memoria principal) se denomina memoria real. El espacio de la memoria real
es un conjunto de ubicaciones físicas de memoria en el cual las instrucciones y
datos de programa deberán ser ubicados para su procesamiento. Los
programas se refieren a los datos e instrucciones por la dirección de memoria
virtual sin conocer la ubicación física de memoria real.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de
direcciones y la memoria real; el espacio de direcciones que puede ser usado
en los programas tiene idéntico tamaño al espacio de memoria real posible. Si
se utiliza memoria virtual, el espacio de direcciones disponibles para los
programas es aquél determinado por el tamaño de la memoria virtual
implementada y no el espacio de direcciones provisto por la memoria real
disponible (el espacio de la memoria virtual será mayor que el de la memoria
real).
La memoria virtual se llama así porque representa una imagen de memoria en
lugar de una memoria física del procesador. Dado que la memoria virtual no
existe como una entidad física de memoria principal, las instrucciones y datos
de un programa referenciados por direcciones virtuales deben ser contenidos
en alguna ubicación física de memoria para ser ejecutados.
Los contenidos de la memoria virtual están divididos en porciones o secciones
(páginas) de tamaño fijo. El programa está completo en la memoria virtual pero
en la memoria real sólo están algunas páginas del mismo que van cambiando
automáticamente durante la ejecución.
A su vez, la memoria real también está dividida en secciones (bloques) de igual
tamaño que las páginas. Cuando se debe ejecutar un programa, éste es traído
a la memoria virtual y las instrucciones y datos del mismo son transferidos
entre la memoria virtual y la real de a una sección por vez durante la ejecución
del programa. Una sección será llevada a la memoria real sólo cuando es
requerida. Por otro lado, una sección que está en la memoria real sólo será
reescrita en la memoria virtual cuando la memoria real asignada a esa sección
es requerida por otra sección del mismo o de otro programa, siempre que no
se esté ejecutando y, además, si ha sido modificada.
En general, se controla la actividad de las secciones de todos los programas en
ejecución a fin de mantener, en lo posible, en memoria real a las secciones más
activas o usadas, dejando las menos activas en la memoria virtual.
El aprovechamiento de la memoria real que supone esta forma de utilización es
muy superior a cualquier otra forma de asignación de memoria.
El hardware de traducción de direcciones o la función interna de mapping son los
mecanismos por los cuales se pueden traducir las direcciones de memoria virtual
en direcciones de memoria real durante la ejecución de las instrucciones.
En teoría, la asociación de las direcciones virtuales con las físicas se efectúa
según lo descrito. El número de página virtual se divide en un número de página
virtual (los bits superiores) y un ajuste (los bits inferiores). El número de página
virtual se utiliza como un índice en la tabla de páginas para encontrar la entrada
de esa página virtual. El número de marco (si existe) se determina a partir de la
tabla de páginas. El número de marco se asocia al extremo superior del ajuste y
reemplaza al número de página virtual para formar una dirección física que se
puede enviar a la memoria.
La finalidad de la tabla de páginas es asociar las páginas virtuales con los marcos.
En términos matemáticos, la tabla de páginas es una función, cuyo argumento es
el número de página virtual y como resultado el número del marco físico. Mediante
el resultado de esta función, se puede reemplazar el campo de la página virtual de
una dirección virtual por un campo de marco, lo que produce una dirección en la
memoria física. Sin embargo hay que enfrentar dos aspectos fundamentales:
1. La tabla de páginas puede ser demasiado grande.
2. La asociación debe ser rápida.
El primer punto proviene del hecho de que las computadoras modernas utilizan
direcciones virtuales de al menos 32 bits. Por ejemplo, si el tamaño de página es
de 4K, un hueco de direcciones de 32 bits tiene un millón de páginas; en el caso
de un hueco de direcciones de 64 bits, se tendría más información de la que uno
quisiera contemplar.
El segundo punto es consecuencia del hecho de que la asociación virtual - física
debe hacerse en cada referencia a la memoria. Una instrucción común tiene una
palabra de instrucción y también un operando de memoria. Entonces es necesario
hacer una, dos o más referencias a la tabla de páginas por cada instrucción.
CONCLUSIONES
 Los programas de prueba son un conjunto de programas para evaluar el
rendimiento. La elección no es trivial, cada programa utilizará
principalmente unos determinado tipos de instrucciones, el rendimiento
dependerá de que el programa elegido sea apropiado a la máquina.
 El bus PCI (Peripheral Component Interconnect), Interconexión de
Componente Periférico es un bus propuesto recientemente, de ancho de
banda elevado, independiente del procesador. Comparado con otros buses,
el PCI proporciona mejores prestaciones para E/S de alta velocidad.
 La memoria caché es una clase de memoria RAM estática (SRAM) de
acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se
presenta de forma temporal y automática para el usuario, que proporciona
acceso rápido a los datos de uso más frecuente. La ubicación de la caché
entre el microprocesador y la RAM, hace que sea suficientemente rápida
para almacenar y transmitir los datos que el microprocesador necesita
recibir casi instantáneamente.
BIBLIOGRAFIA

http://campusvirtual.uma.es/fundinfo/matdoc/teoria/doc/tema2.pdf

http://www.inf.uach.cl/apuntes/apuntes_so.pdf

http://reyporundia.phplibre.com.es/personal/descargas/Apuntes%20de%20Estr
uctura%20de%20Computadores.pdf

http://avellano.fis.usal.es/~bcurto/docencia/arquitectura/pdf_arq/tema4_2.pdf

http://ortihuela.galeon.com/ram.htm

http://ciam.ucol.mx/villa/docs/CCVA_M006.pdf
Descargar