Download actividad 3 - cloudfront.net

Document related concepts
no text concepts found
Transcript
CAP 3: EL PAPEL DEL RENDIMIENTO
CAP 4: EL COMPUTADOR
SANTOS MAURICIO LONDOÑO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
PROGRAMA INGENIERIA DE SISTEMAS
ARQUITECTURA DEL PC
SEMESTRE V
2007
ACTIVIDAD 3
CAP 3: EL PAPEL DEL RENDIMIENTO
CAP 4: EL COMPUTADOR
SANTOS MAURICIO LONDOÑO
Trabajo Teórico Práctico
TUTOR
Haimer Gutiérrez
Ing. De Sistemas
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
PROGRAMA INGENIERIA DE SISTEMAS
ARQUITECTURA DEL PC
SEMESTRE V
2007
ACTIVIDAD 3
Capitulo 3: El Papel Del Rendimiento
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, cual es el
incremento de velocidad que el fabricante ha conseguido en dos años?
Tiempo de CPU A = ciclo de reloj de CPUA
Frecuencia de reloj A
200s = ciclo de reloj
100 mhz
Ciclo de reloj = 200s × 100*10(6) = 20000*10(6) ciclos
150s = ciclo de reloj
100 mhz
Ciclo de reloj = 150s × 100*10(6) = 15000*10(6) ciclos
2. Por qué se usan programas de prueba y conjunto de programas de prueba para
medir las prestaciones de un computador?
Los Programas De Pruebas Se Utilizan Con El Fin De Ensayar Los Últimos Retoques
De Un Nuevo Programas O Determinar Los Requerimientos De Un Usuario
3. Si se tienen dos implementaciones de la misma arquitectura del repertorio de
instrucciones. La maquina A tiene una duración de ciclo de reloj de 10 ns y un CPI de
2.0 para un programa, y la maquina 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?
(Tiempo de ciclo de reloj): Unidad de tiempo, normalmente nanosegundos/ciclo.
Ic (Instruction count): Número de instrucciones objeto a ejecutar. Unidad:
instrucciones.
CPI (Ciclos por instrucción): Número de ciclos por instrucción (ordenadas por familia
de instrucciones). Unidad: ciclos/instrucción.
C: Total de ciclos de reloj de ejecución de un programa. Unidad: ciclos.
Tp (Tiempo CPU de ejecución de un programa): Unidad tiempo, normalmente
nanosegundos:
Arquitectura A:
A = 10 nseg.
CPIA = 2.0 ciclos.
CA = IcA * CPIA = 2.0 IcA
Arquitectura B:
B = 20 nseg.
CPIB = 1.2 ciclos.
CB = IcB * CPIB = 1.2 IcB
TpA = CA *
TpA = 2.0 IcA * 10 = 20 IcA nseg.
TpB = CB *
TpB = 1.2 IcB * 20 = 24 IcB nseg.
TpB > TpA, por tanto RA > RB
Conclusión:
La arquitectura a es un 40% más rápida que la b
Capitulo 4: El Computador
1. Obtener información acerca de las especificaciones del bus PCI y productos basados
en el mismo en PCI Special Interest Group.
Especificaciones:
Bus PCI no depende del reloj de la CPU, porque está separado de ella por el
controlador del bus.
emplea un conector estilo Micro Channel de 124 pines.
El límite práctico en la cantidad de conectores para buses PCI es de tres.
2. Dibuje y explique un diagrama de tiempos para una operación de escritura en un bus
PCI.
Bus PCI
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.
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 24 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) 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) Al comienzo del pulso 2, el dispositivo del que se lee reconocerá su dirección en
las líneas AD (direcciones y datos).
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) 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) 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)
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) 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)
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)
El maestro desactiva IRDY, haciendo que el bus vuelva a estar libre, y el
dispositivo de lectura desactiva TRDY y DEVSEL.
3. Investigue como esta organizada la memoria caché en el PENTIUM II y el PowerPC
El microprocesador es el corazón del ordenador, aunque sea en el sentido metafórico
del término, ya que es el que constituye la base sobre la que funciona el resto del
sistema . Un buen procesador puede hacer un buen sistema aún mejor; un mal
procesador puede arruinar el funcionamiento del sistema operativo .
Cuando se comparaban las primeras versiones de los eternamente enemigos Macintosh
e IBM PC, que por aquel entonces eran el genuino IBM PC con el procesador 8088 y el
Macintosh 128K, ningún especialista en microprocesadores ponía en duda que el
68000 empleado en el Macintosh era técnicamente muy superior al 8088 utilizado en el
IBM PC . No es cuestión en este momento de realizar comparaciones técnicas entre
estos dos modelos, como ha quedado demostrado en muchas ocasiones un buen
producto es una excelente ayuda para el márketing, pero el márketing sin dicha ayuda
puede hacer triunfar al producto incluso más mediocre . Sin embargo, resulta
interesante analizar, aunque sea brevemente, la trayectoria sufrida por los dos
ordenadores a lo largo del tiempo hasta la actualidad .
Una breve historia
Durante muchos años, Apple basó el funcionamiento de sus ordenadores Macintosh
exclusivamente en el procesador 68000 de Motorola . Este integrado disponía en su
interior de un auténtico procesador de 32 bits, tanto en capacidad de cálculo
matemático como de operaciones y direccionamiento; es decir, capacidad de memoria
que puede manejar . Sin embargo, a nivel de comunicación con los demás componentes
del ordenador: memoria, periféricos, pantalla, etc . , esta potencia estaba restringida a
16 bits en el bus de datos y 24 bits en el bus de direcciones, con un máximo de 16
Megabytes de memoria que debido al diseño del hardware del Macintosh se reducían
realmente a la mitad: 8 Megabytes de memoria .
Estas especificaciones contrastaban con su competidor más directo, el IBM PC que
contenía un procesador Intel 8088 con un bus de datos de tan sólo 8 bits . Aunque
podía manejar más de un Megabyte de memoria, la arquitectura interna de este
procesador se diseñó para ser compatible con el 8085, un popular procesador de 8 bits
para el que existía un gran número de aplicaciones, y manejaba dicha memoria en
bloques de 64 Kilobytes, siendo extremadamente complicado para el programador
realizar aplicaciones que sobrepasaran esta barrera . Por esta razón las aplicaciones
de Macintosh durante mucho tiempo resultaron sensiblemente superiores a las
equivalentes de PC .
Posteriormente a la aparición de los procesadores 68000 y 8088 ( y del 8086, similar al
8088 pero con bus de datos de 16 bits y que fue empleado por muchos fabricantes de
ordenadores compatibles ) cada uno de los fabricantes de procesadores, Motorola e
Intel respectivamente, sacó una versión más avanzada, 68010 y 80186, que sin embargo
no fue utilizada por ninguno de los fabricantes en el lanzamiento de nuevos modelos .
Para ello tuvo que esperarse a la tercera generación, protagonizada por el 68020 y el
80286, que siguieron la norma de aumentar el segundo y tercer dígito respectivamente .
Además de aumentar el tamaño de sus buses de datos y direcciones, el 68020 tenía
ambos de 32 bits mientras que el 80286 mantenía el bus de datos de 16 bits, en ambos
casos se añadieron nuevas instrucciones y formas de funcionamiento que
incrementaron su potencia . Es de destacar que estos procesadores fueron los primeros
en soportar realmente diversas variantes de Unix .
La reñida competencia entre ambos fabricantes de integrados continuó con su cuarta
generación, encarnada en el 80386 y en el 68030, que incorporaba dentro del
integrado ciertos elementos que previamente habían sido externos al procesador, como
una unidad de manejo de memoria y un procesador aritmético de coma flotante . Ambos
procesadores ya disponían de buses de datos y direcciones de 32 bits . No obstante Intel
produjo también una versión con un bus de datos de 16 bits para asegurar la
compatibilidad con diseños anteriores: el 386 SX, que podía adaptarse fácilmente a los
anteriores diseños para procesadores 286 .
Sin embargo, no transcurrió mucho tiempo sin que apareciera la siguiente generación
de procesadores . En este caso se trató del 80486 y del 68040, que junto con aumentos
de velocidad ofrecían más potencia debido a su estructura interna y un conjunto
ampliado de instrucciones, aunque debe indicarse que los sistemas operativos más
comunes en ambos entornos: Windows 3 . 1 y Windows 95 en Intel y Mac OS con
Motorola, no sabían aprovechar estas nuevas funciones .
Resultaría lógico pensar que el siguiente paso de la evolución hubiera sido el 80586 y
el 68050, pero no fue este el caso . Las familias de procesadores 80x86 de Intel y 680x0
de Motorola se engloban en lo que se conoce como procesadores CISC, o procesadores
con conjuntos de instrucciones complejas . Se basan en ofrecer unas instrucciones
altamente especializadas que exigen una gran complejidad de ejecución, consumiendo
cada una de ellas varios ciclos de reloj . Diversos estudios llegaron a la conclusión de
que estos diseños no eran los más óptimos, ya que dichas instrucciones se utilizaban de
forma esporádica aumentando la complejidad de forma innecesaria . Una solución más
óptima, según esta teoría, partiría de crear procesadores con un conjunto de
instrucciones muy sencillo pero muy rápidos, implementando por software las
operaciones complejas que en otros casos se incluían en el mismo procesador . Estos
procesadores se conocen como RISC y ocupan un porcentaje elevado del mercado de
procesadores, dominado hasta hace pocos años por la tecnología CISC .
Sin abandonar su estrategia CISC, Intel necesitaba poder ofrecer al mercado un
procesador avanzado que pudiera adaptarse a los requisitos de potencia que los nuevos
sistemas operativos y aplicaciones le requerían . Por este motivo abandonó su sistema
de numeración tradicional y presentó el procesador Pentium .
Procesadores superescalares
El concepto de procesador tradicional, tal como lo implementa la familia Motorola
680x0 y el Intel 80x86, sigue una estructura totalmente lineal en la ejecución de
instrucciones . El integrado recupera de la memoria el código correspondiente a la
instrucción, a continuación decodifica dicha instrucción y si necesita algún dato de la
memoria lo recupera en el siguiente ciclo de reloj . El siguiente paso es realizar el
cálculo propiamente dicho y, por último, almacena el resultado . El procesador sigue
con la siguiente instrucción sólo cuando se finaliza con toda la ejecución .
Al aumentar la velocidad del procesador, la memoria se convierte en un cuello de
botella, tal como se comenta en el cuadro " memoria cache " y en el caso de que una
instrucción requiera un dato que no se encuentre en un registro o en una cache de
acceso rápido, se interrumpiría su trabajo hasta que pudiera cargarse la información
solicitada . Para evitar este bloqueo, los nuevos procesadores contienen un sistema de
pipeline en la cache de primer nivel que les proporciona acceso a varias instrucciones
consecutivas . Cuando la instrucción en curso se bloquea, el procesador determina si
alguna de las instrucciones siguientes no depende del resultado de la operación en
curso . Si es así, empieza a ejecutar el nuevo cálculo mientras que espera a recibir los
datos para el primero . Este procesamiento en paralelo se produce incluso cuando la
primera instrucción no está bloqueada, obteniendo como resultado que el procesador
está constantemente ejecutando dos, tres o cuatro instrucciones de forma simultánea .
Este sistema, conocido como superescalar, mantiene las instrucciones ejecutadas en sus
unidades de cálculo para asegurarse de que terminan en el orden en que se recibieron
inicialmente, evitando que una salida desordenada de los resultados pueda afectar al
funcionamiento de la aplicación . Por tanto si se empiezan a ejecutar simultáneamente
las instrucciones 1, 2 y 3, aunque la número tres se termine antes que las otras dos, los
resultados no se graban en sus registros definitivos hasta que lo haga la primera,
seguido de la segunda y, por último, la tercera .
Debe tenerse en cuenta que este procesamiento simultáneo de instrucciones no es
posible siempre . Hace falta que el procesador disponga de una unidad de proceso del
tipo necesario sin uso . Por ejemplo, si a un PowerPC 604 le llegan dos instrucciones
de cálculo de números enteros, como este procesador dispone de tres unidades de
proceso de este tipo puede asignarle una operación a cada unidad para su proceso en
paralelo . En cambio, si las dos instrucciones consecutivas son de cálculo de
bifurcación, la segunda deberá esperar ya que el PowerPC sólo dispone de una unidad
de cálculo de este tipo .
Arquitectura Pentium
En la actualidad, bajo el nombre Pentium se engloban cuatro procesadores distintos:
Pentium, Pentium Pro, Pentium con MMX y Pentium II . Al contrario que en el caso del
PowerPC, la arquitectura Pentium se basa en la misma tecnología CISC de los modelos
anteriores de Intel; es decir, ofrece un conjunto de instrucciones complejo que es
compatible con el 80486 y anteriores . Para conseguir una ampliación de su velocidad
de procesador, el Pentium original utiliza lo que se conoce como tecnología
superescalar .
Un procesador normal toma las instrucciones secuencialmente de memoria y las
ejecuta una a una, sin pasar a la siguiente hasta no haber completado la actual . En
cambio, en una arquitectura superescalar, el procesador puede ejecutar varias
operaciones simultáneamente siempre que una de ellas no dependa del resultado de
alguna de las anteriores . Incluso en este último caso es posible que ejecute parte de la
instrucción a falta de los datos necesarios para completarla . Para poder funcionar de
esta forma, el Pentium dispone de dos canales de proceso de instrucciones con dos
unidades independientes de cálculo de enteros, aunque sólo tiene una unidad de cálculo
de coma flotante, lo que significa que no puede ejecutar simultáneamente dos
instrucciones que operen con números decimales .
El Pentium MMX, el siguiente paso en la evolución, ofrece mejoras de prestaciones en
diversos aspectos, como una cache doble para instrucciones y datos, un sistema de
predicción de saltos que permite determinar la dirección resultante de una bifurcación
del programa en ejecución y cargar la instrucciones resultantes en la cache antes de
que sean necesarias . Pero las mejoras más importantes, que son las que le dan el
apelativo MMX por su orientación multimedia, son la implementación de 57 nuevas
instrucciones orientadas a este área y la incorporación del sistema SIMD, que permite
ejecutar la misma operación sobre diversos datos simultáneamente, lo que permite
ahorrar un gran número de ciclos de reloj .
El Pentium Pro, tercero en la gama, expandió aún más esta arquitectura con un tercer
canal de ejecución de instrucciones que le posibilita para ejecutar tres operaciones
simultáneamente en el caso más óptimo . Además incorpora una memoria cache de
segundo nivel integrada con el procesador que acelera el acceso a las instrucciones y
datos . Un sistema de predicción de ejecución más avanzado que el incorporado en el
Pentium MMX que incluye análisis del flujo de datos, predicción múltiple de saltos y
ejecución especulativa le permite alcanzar rendimientos muy superiores a los del
Pentium normal .
El Pentium II, última incorporación hasta ahora de esta familia de procesadores,
proporciona los avances propios del Pentium II junto con las extensiones multimedia
del Pentium MMX .
Arquitectura PowerPC
El cambio de tecnología CISC a RISC se vivió con especial intensidad en el mundo
Macintosh, ya que se abandonó la línea Motorola y se comenzaron a utilizar
procesadores PowerPC, basados en el diseño Power de IBM originado a finales de los
setenta y que esta compañía utilizaba para sus servidores con AIX . El Power original
es una arquitectura basada en varios circuitos, mientras que el PowerPC es una
versión reducida de la misma arquitectura para funcionar en un único circuito . Los
microprocesadores PowerPC están diseñados y fabricados por la denominada
PowerPC Alliance, coalición formada por IBM, Apple y Motorola .
Pese a tratarse de circuitos totalmente incompatibles con la familia 680x0, los
programadores de sistemas de Apple lograron crear un emulador de este último tipo de
procesador para permitir que todas las aplicaciones antiguas, e incluso el Sistema
Operativo, funcionaran sobre los nuevos Power Macintosh . Una buena prueba de la
potencia proporcionada por esta familia de procesadores se encontraba en el hecho de
que incluso tratándose de una emulación, las aplicaciones funcionaban más rápido en
la nueva máquina que en la antigua, que contenía el procesador para el que
supuestamente se habían escrito .
El primer procesador PowerPC se introdujo en el año 94 . Se trataba del PowerPC
601, un integrado con arquitectura Superescalar que le permite ejecutar un máximo de
tres instrucciones en el mismo ciclo de reloj, dispone de unidad de cálculo entero,
gestor de bifurcaciones y unidad de cálculo de coma flotante, cada una de las cuales
puede funcionar de forma simultánea e independiente con una instrucción .
El siguiente escalón de la gama PowerPC que se ha empleado en los ordenadores
Macintosh es el 603 . Además de las tres unidades de procesado del 601, incluye una
unidad de carga/almacenamiento y otra de registro del sistema . Este procesador
puede, al igual que el 601, ejecutar tres instrucciones simultáneamente .
El procesador más potente empleado actualmente es el PowerPC 604 . Dispone de seis
unidades de proceso independientes; dos de enteros de simple precisión, una de enteros
de múltiple precisión, una de coma flotante, una de gestor de bifurcaciones y una de
carga/almacenamiento .
Aunque todavía no se encuentra disponible en ordenadores de venta al público, ya se
fabrica a nivel de circuito, y Apple tiene anunciados productos de próximo lanzamiento
con el PowerPC 750 . Este integrado incorpora en el propio circuito un controlador de
memoria cache de segundo nivel, que en el resto de la familia debe implementarse de
forma externa, que cuando se utiliza con memoria de este tipo de alta velocidad
incrementa el rendimiento de las aplicaciones de forma significativa . Ete integrado se
ha diseñado con técnicas de bajo consumo de energía, permitiendo su uso en
ordenadores portátiles además de en equipos de sobremesa . No obstante este menor
consumo no influye en el rendimiento, con un factor SPECint de 12,4 a una frecuencia
de 266 MHz, la máxima velocidad a la que se fabrica actualmente, mientras un
PowerPC a 350 MHz da una medida de 14,6 .
Según aumenta la potencia de los procesadores, también aumenta el tamaño de la
memoria cache de primer nivel que incorpora en el propio procesador y que influye
decisivamente en su posterior rendimiento . Otros elementos parejos con esta evolución
son el número de unidades de procesamiento que incorpora la unidad y el número de
operaciones que pueden ejecutarse simultáneamente .
Diseños de placa
La implementación de un procesador de elevadas prestaciones no tiene sentido si el
resto de la electrónica no se encuentra a la altura de éste . Es necesario que todos los
circuitos de apoyo puedan adaptarse a estas velocidades . En la realidad esto no sucede
así . Ningún ordenador personal tiene un bus de datos funcionando a 200 megahertzios,
velocidad típica de un procesador actual . En todos los casos, la velocidad interna de la
CPU se divide por tres o cuatro para obtener una velocidad efectiva de 50 ó 66
megahertzios .
Una de las razones que forzaron el cambio de diseño de Apple de los conectores NuBus
a PCI fue precisamente que la interfaz NuBus creaba un gran cuello de botella en sus "
comunicaciones " con el procesador .
Conclusión
Aunque se trate del corazón del ordenador, el procesador no es la única pieza clave de
este producto . Incluso como ha demostrado Apple en el cambio de los Macintosh con
procesador Motorola 680x0 a PowerPC, es posible que un cambio de esta envergadura
resulte transparente para el usuario .
A nivel de procesador puro, el PowerPC demuestra en las medidas un mejor
rendimiento en todas las operaciones . Pero más allá de eso, la arquitectura PowerPC
está preparada directamente para funcionar en sistemas multiprocesador con un
máximo de cuatro circuitos cooperando entre sí, mientras que en el caso del Pentium II
esta organización abarca un máximo de dos circuitos . Los sistemas operativos
empleados por los usuarios, ya se trate del uso de sistemas operativos Mac OS o
Windows 95, no permiten aprovechar las capacidades que estos procesadores ofrecen .
Arquitectura de bloques del PPC 603e
Este esquema muestra la distribución interna del procesador PowerPC 603 . Los
diversos elementos se definen por bloques, aunque no haya división física entre ellos
dentro del integrado .
- La Cola de Instrucciones mantiene hasta un máximo de seis instrucciones y es capaz
de cargar dos de ellos durante un ciclo de reloj . El Alimentador Secuencial se
encargar de leer constantemente instrucciones de la memoria y meterlos en esta cola
para que estén disponibles de forma inmediata para el resto de los componentes .
- La Unidad de Disposición se encarga de distribuirlas entre las diversas unidades de
proceso ( situadas debajo en el esquema ) controlando la dependencia entre ellas y
evitando interferencias entre las operaciones .
- La Unidad de Proceso de Salto recibe las ordenes de bifurcación desde el
Alimentador Secuencial y calcula la dirección de destino con anticipación en los saltos
condicionales permitiendo que un salto de este tipo pueda ejecutarse en muchos casos
sin consumir ciclos de reloj .
- La Unidad de Enteros ejecuta todas las operaciones aritméticas y lógicas con
números enteros, empleando un ciclo de reloj en la mayoría de ellas . Para estas
operaciones cuenta con 32 registros .
La Unidad de Coma Flotante contiene la circuitería necesaria para implementar las
operaciones de multiplicación y suma de forma directa, tanto en simple precisión como
en múltiple precisión .
- En la Unidad de Carga/Almacenamiento se controla toda la transferencia de datos
entre los registros internos y la memoria . Este módulo calcula la dirección real en
base a los registros de la MMU y proporciona la secuenciación necesaria para la
lectura o escritura de cadenas de datos .
- La Unidad de Registro del Sistema realiza las operaciones relacionadas con el estado
del sistema, incluyendo comparaciones lógicas de los registros del sistema y lectura y
escritura en dichos registros .
- Unidad de Terminación es el nombre del módulo que se encarga de controlar los
procesos de las demás unidades y gestionar la transferencia de los resultados desde los
registros temporales a los definitivos en el orden correcto .
- Las unidades de manejo de memoria ( MMU ) se encargan de transformar la
dirección de memoria virtual en la dirección física real . También controlan los
privilegios de acceso para cada área .
Arquitectura de bloques del Pentium Pro
Para poder entender cómo funciona internamente el Pentium Pro, un sistema conocido
como Ejecución Dinámica, es necesario entender cómo funcionan las diversas unidades
que lo componen .
- La unidad de Carga/Decodificación lee el flujo de instrucciones del programa y las
decodifica convirtiéndolas en microinstrucciones . La decodificación de instrucciones
se realiza de forma anticipada a su utilización . Consta del Decodificador de
Instrucciones, RAT ( Tabla de Alias de Registro ) , MIS ( Secuenciador de
Instrucciones de Microcódigo ) y BTB ( Bufer de destinos de salto ) .
- La unidad de Disposición/Ejecución acepta las microinstrucciones decodificadas por
la unidad anterior y coordina su ejecución en función de las dependencias entre unas y
otras, la disponibilidad de recursos y almacena temporalmente el resultado de estas
ejecución .
En esta unidad se encuentran la RS ( Estación de Reserva ) , FEU ( Unidad de
Ejecución de coma flotante ) , IEU ( Unidad de Ejecución de Enteros ) , JEU ( Unidad
de Ejecución de Salto ) y AGU ( Unidad de Generación de Direcciones ) .
- La unidad de Retirado es la encargada de coordinar el resultado de las diversas
operaciones emprendidas por la unidad de Disposición/Ejecución, que pueden
terminarse de una forma desordenada, y asignar ordenadamente los resultados desde
su almacenamiento temporal al definitivo .
En esta unidad se encuentran tres elementos: La Estación de Reserva ( RS ) , MIU (
Unidad de Interfaz de Memoria ) y RRF ( Archivo de Registro de Retiro ) .
- El flujo de instrucciones De aquí se obtiene la siguiente instrucción a ejecutar en
función del contenido de la memoria de predicción de salto ( BTB ) . Esta instrucción se
decodifica y se convierte en una o varias instrucciones de microcódigo con la ayuda del
Secuenciador de Instrucciones de Microcódigo ( MIS ) , pasando en último lugar por la
tabla de alias de registro, que convierte las direcciones lógicas de registro del
procesador en direcciones reales .
El resultado de estas conversiones se transfiere al pool de instrucciones, pasando su
control a la unidad de Disposición/Ejecución . Si tiene disponibles todos los datos
necesarios para su ejecución, la Estación de Reserva ( RS ) elimina dicha instrucción
de la cola y lo envía a la unidad de procesamiento que lo ejecuta . El resultado de dicha
ejecución se envía nuevamente al pool de instrucciones .
- La unidad de retiro es la encargada de tomar los resultados de las instrucciones
válidas y transferirlos a la memoria o registro definitivo . Además retira la instrucción
del pool de instrucciones y ambos procesos debe realizarlos siguiendo el flujo original
del programa, es decir con las instrucciones terminando de ejecutarse en el mismo
orden en que llegaron al procesador .
Rendimiento: especificaciones SPEC
Este cuadro muestra la velocidad de los diversos procesadores de ambas familias
medidas empleando las especificaciones del consorcio SPEC . En rojo se muestra la
velocidad en operaciones con enteros, a mayor longitud de la barra más rápidez, y en
azul la velocidad en operaciones de coma flotante . Cada procesador se ha medido a la
máxima velocidad disponible para dicho integrado . Por ejempo el Pentium original se
ha medido a 200 MHz, mientras que el PowerPC 604e se ha medido a 350 MHz .
Cómo se mide un procesador
A la hora de dar las características de un procesador el fabricante ofrece una serie de
características básicas que en dos o tres líneas permiten al entendido asimilar las
principales características de funcionamiento del integrado .
- 16/32/64 bits . Es uno de los principales elementos que definen a un procesador . Este
valor indica el número de bits que es capaz de manejar simultáneamente el procesador
. Evidentemente cuanto mayores sean los números que puede manejar un procesador,
necesita menos operaciones para realizar la mayoría de los cálculos .
- Bus de direcciones y de datos . Son dos elementos fundamentales en la velocidad de
funcionamiento de un ordenador .
- El bus de direcciones indica la memoria máxima que puede tener instalado el
ordenador .
- La frecuencia de reloj es otro factor fundamental en la medida de la potencia que
puede obtenerse de un procesador . Este elemento genera la secuencia a la que el
procesador es capaz de ejecutar instrucciones .
MIPS . Es un sistema de medida estándar que permite comparar diversos procesadores
de una forma objetiva . Se trata de diversos algoritmos, que se suponen típicos de un
programa convencional, que se implementan en el lenguaje de cada procesador y cuya
ejecución se mide
- MFLOPS . Es el equivalente de MIPS pero cuando se trata de medir la velocidad de
realización de operaciones con números en coma flotante .
- SPEC95 . Medida de rendimiento por software . La norma SPEC95 consiste en dos
grupos de medidas: CINT95 para evaluar cálculo intensivo con enteros y CFP95 para
la misma medición en coma flotante .
Memoria cache
Los espectaculares avances que han sufrido los procesadores a nivel de velocidad, hay
un elemento que súbitamente ha adquirido una gran importancia y que puede
convertirse en un cuello de botella del diseño del ordenador . Se trata de la memoria .
Si se considera una velocidad de reloj de 200 megahertzios el tiempo óptimo para leer
de la memoria es de 5 nanosegundos, cuando estos componentes únicamente pueden
llegar a 60 ó 70 nanosegundos . Como resultado, la unidad central emplea una gran
cantidad de ciclos de reloj esperando a que la memoria le devuelva la información . Es
posible utilizar memoria de mayor velocidad, pero su coste es tan elevado que resulta
prohibitivo instalar 32 ó 64 Megabytes . En su lugar, se utiliza una cantidad mucho
menor de memoria de alta velocidad, normalmente 256 ó 512 Kilobytes con una
circuitería especial . Esta memoria, conocida como cache de segundo nivel se encarga
de ir leyendo bloques de datos de la memoria principal con anticipación a su uso por el
procesador . Cuando éste necesita un dato en particular, si está en el bloque que tiene
esta memoria cache su acceso es mucho más rápido y se ahorran ciclos de espera . La
circuitería adicional se encarga de leer y escribir los bloques de datos entre esta cache
y la memoria principal .
Normalmente esta memoria cache se situaba en la placa base, siendo por tanto
independiente del mismo procesador y pudiendo ampliarse por el usuario . Sin
embargo, los procesadores más recientes incorporan 256 ó 512 Kilobytes de cache en
el mismo chip .
Algunos procesadores incorporan una memoria de este tipo dentro del mismo
procesador, conocida como cache de primer nivel, que es incluso más rápida que la de
segundo nivel . En estos caso, la transferencia se produce entre la cache de primer
nivel y la de segundo . El resultado final es que el acceso a la memoria por parte del
procesador es inmediato .
Procesadores: características técnicas
PPC 603e PPC 604e PPC 750 Pentium P . MMX P . Pro Pentium II
Fabricante IBM/ IBM/ IBM/ Intel Intel Intel Inte l
Motorola Motorola Motorola
Frecuencia máxima ( MHz ) 300 350 266 200 233 300
Instrucciones simultáneas 3 4 3 2 2 3 3
SPECint95 ( rendimiento/frecuencia ) 7,4/300 14,6/350 12,4/266 5,17/200 6,44/200
8,2/2 00 11,7/300
SPECfp95 ( rendimiento/frecuencia ) 6,1/300 9,0/350 8,4/266 4,32/200 4,37/200
6,21/20 0 8,15/300
Bus de Datos 32/64 bits 64 bits 32/64 bits 64 bits 64 bits 64 bits 64 bits
Cache Nivel 1 A 16Kb/16Kb 32Kb/32Kb 32Kb/32Kb 8Kb/8Kb 16Kb/16 Kb
Cache Nivel 2 integrada - - 256/512/1024 Kb 256/512 Kb 512Kb
Proceso de fabricación 0,29 µ 0,25 µ 0,29 µ 0,35 µ 0,35 µ 0,35 µ 0,35 µ
Unidades de ejecución 5 7 6 6
Alimentación B 2,5 V 1,8 V 2,5 V 3,3 V 2,8 V 3,3 V 2,8 V
Potencia consumida 2,5 W 6 W 4,2 W ND ND 43 W . 43 W
A En el caso de procesadores que poseen una cache para instrucciones y otra para
datos, se dan estos valores separados por una barra . B Se da la tensión de
funcionamiento interno .
Por motivos de interfaz la mayoría de los procesadores se comunican al exterior a 3,3
Voltios
Pentium II: Básicamente es un Pentium Pro al que se ha sacado la memoria caché de
segundo nivel del chip y se ha colocado todo ello en un tarjeta de circuito impreso,
conectada a la placa a través de un conector parecido al del estandar PCI, llamado
Slot 1, y que se es utilizado por dos tipos de cartuchos, el S.E.C. y el S.E.P.P (el de los
Celeron).
También se le ha incorporado el juego de instrucciones MMX.
Está optimizado para aplicaciones de 32 bits.
Se comercializa en versiones que van desde los 233 hasta los 400 Mhz.
Posee 32 Kbytes de caché L1 (de primer nivel) repartidos en 16Kb. para datos y los
otros 16 para instrucciones.
La caché L2 (segundo nivel) es de 512 Kb. y trabaja a la mitad de la frecuencia del
procesador.
La velocidad a la que se comunica con el bus (la placa base) sigue siendo de 66 Mhz,
pero en las versiones a partir de los 333 ya pueden trabajan a 100 Mhz.
Incorpora 7,5 millones de transistores.
Los modelos de 0,35 µ pueden cachear hasta 512 Mb, los de 0,25 hasta 4 Gb. (menos
los antiguos modelos a 333)
Intel ha desarrollado la arquitectura Dual Independent Bus (Bus Dual Independiente)
para resolver las limitaciones en el ancho de banda de la arquitectura de la plataforma
actual de la PC.
La arquitectura Dual Independent Bus (Bus Dual Independiente) fue implementada por
primera vez en el procesador Pentium Pro y tendrá disponibilidad más amplia con el
procesador Pentium II. Intel creó la arquitectura del bus dual independiente para
ayudar al ancho de banda del bus del procesador. Al tener dos buses independientes el
procesador Pentium II está habilitado para acceder datos desde cualesquiera de sus
buses simultáneamente y en paralelo, en lugar de hacerlo en forma sencilla y
secuencial como ocurre en un sistema de bus simple.
Dos buses conforman la arquitectura Dual Independent Bus (Bus Dual Independiente):
el "bus del caché L2" y el "bus del sistema" entre el procesador y la memoria principal.
El procesador Pentium II puede utilizar simultáneamente los dos buses.
La arquitectura Dual Independent Bus (Bus Dual Independiente) permite al caché L2
del procesador Pentium II de 266MHz, por ejemplo, operar al doble de velocidad del
caché L2 de los procesadores Pentium. Al aumentar la frecuencia de los procesadores
Pentium II futuros, también lo hará la velocidad del caché L2.
El bus del sistema de procesamiento por canalización permite transacciones múltiples
simultáneas (en lugar de transacciones únicas secuenciales), acelerando el flujo de la
información dentro del sistema y elevando el desempeño total.
Conjuntamente estas mejoras en la arquitectura Dual Independent Bus (Bus Dual
Independiente) brindan hasta tres veces el desempeño del ancho de banda sobre un
procesador de arquitectura de bus sencillo. Además, la arquitectura Dual Independent
Bus (Bus Dual Independiente) soporta la evolución del bus de memoria del sistema
actual de 66 MHz a velocidades más elevadas en el futuro. Esta tecnología de bus de
alto ancho de banda está diseñada para trabajar concertadamente con el poder de
procesamiento de alto desempeño del procesador Pentium II.
PowerPC: La potencia de la arquitectura PowerPC se basa en dos pilares
fundamentales: por un lado ofrece un rendimiento superior frente al Pentium, dado que
las instrucciones RISC son más cortas y se pueden ejecutar en un menor número de
ciclos de reloj ( en el caso del PowerPC esta cifra es de hasta tres instrucciones por
ciclo de reloj, mientras que en el caso del Pentium, el máximo es de dos instrucciones
por ciclo de reloj, siempre y cuando no exista dependencias de resultados entre ambas
instrucciones ) .
Por otra parte, al tratarse de una más o menos reciente tecnología, los procesadores
PowerPC han sido diseñados desde el principio para ser escalables (una de los puntos
que han permitido el lanzamiento de tres generaciones del procesador en un corto
periodo de tiempo); mientras que Intel aún tardará en lanzar el siguiente procesador al
Pentium.
En el caso del PowerPC 604 el direccionamiento de memoria es de 32 bits,
proporcionando direccionamiento lógico para datos enteros de 8, 16 y 32 bits, y para
datos en coma flotante de 32 y 64 bits (precisión sencilla y doble precisión). El bus de
datos externo es de 64 bits, y el bus de direcciones de 32 bits.
En el aspecto práctico de ejecución de aplicaciones, el PowerPC 604 es capaza de
ejecutar hasta un máximo de seis instrucciones por cada ciclo de reloj (entre las que se
pueden incluirse tres instrucciones de enteros); para ello dispone de seis unidades
independientes de ejecución.
La memoria caché interna (tanto de instrucciones como de datos) ha sido otro de los
aspectos mejorados en esta versión del procesador, al disponer de 16 KB de memoria
cache asociativa de cuatro vías.
4. 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?
Organización interna de los chips de memoria: Una celda de memoria es capaz de
almacenar un bit de información. Por lo general, varias celdas se organizan en forma
de arreglo. Las memorias semiconductoras pueden dividirse en: de tipo bipolar y de
MOS(Metal Oxide Semiconductor – semiconductor de óxido metal). Sin embargo, debe
observarse que éstas no son de ninguna manera las únicas posibilidades. Existen
muchas otras configuraciones de celdas que representan distintos equilibrios entre
varios diseños.
Memoria de acceso aleatorio o RAM: Es la memoria basada en semiconductores que
puede ser leída o escrita por el microprocesador u otros dispositivos de hardware. Es
un acrónimo del inglés Random Access Memory, el cual es bastante inadecuado puesto
a que todas las pastillas de memoria son accesibles en forma aleatoria, pero el término
ya se ha arraigado. El acceso a posiciones de almacenamiento se puede realizar en
cualquier orden. Actualmente la memoria RAM para computadoras personales se suele
fabricar en módulos inestables llamados SIMM.
SIMM (Single In-line Memory Module): Consta de una pequeña placa de circuito
impreso con varios chips de memoria integrados. Los SIMM están diseñados de modo
que se puedan insertar fácilmente en la placa base de la computadora, y generalmente
se utilizan para aumentar la cantidad de memoria RAM. Se fabrican con diferentes
capacidades (4Mb, 8Mb, 16Mb, etc.) y con diferentes velocidades de acceso. Hoy en día
su uso es muy frecuente debido a que ocupan menos espacio y son más manejables y
compactos que los tradicionales chips de memoria. Aparecen en dos formatos de 30
contactos los cuales manejan 8 bits cada vez, miden unos 8.5 cm ó de 72 contactos que
manejan 32 bits y tienen un largo de 10,5 cm.
5. 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é?
Algunos dispositivos de entrada/salida envían datos a la memoria más rápido de lo que
el microprocesador puede manejar. El controlador de DMA (Direct Memory Access) es
un circuito integrado dedicado que puede enviar y recibir datos más rápido que el
microprocesador. Luego, dispositivos como discos ópticos y magnéticos utilizan este
integrado para acceder a la memoria del sistema.
El controlador de DMA (Direct Memory Access) toma prestado los buses de datos, de
direcciones y de control del sistema y envia un número programado de bytes desde un
dispositivo de entrada/salida hasta la memoria. El "8237 DMA controller" es el nombre
del circuito integrado que utilizan los PCs para esta función.
El acceso directo a memoria (DMA, del inglés Direct Memory Access) permite a cierto
tipo de componentes de ordenador acceder a la memoria del sistema para leer o
escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan
DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de
sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que
permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a
una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un
dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se
lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de
memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa
el procesador y como resultado puede ser planificado para efectuar otras tareas. Las
transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que
requieran muchos recursos.
Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que
se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que
existen diferentes estrategias para regular su uso, permitiendo así que no quede
totalmente acaparado por el controlador DMA.
6. 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.
En la paginación, se debe cuidar el tamaño de las páginas, ya que si éstas son muy
pequeñas el control por parte del sistema operativo para saber cuáles están en RAM y
cuales en disco, sus direcciones reales, etc.; crece y provoca mucha `sobrecarga'
(overhead). Por otro lado, si las páginas son muy grandes, el overhead disminuye pero
entonces puede ocurrir que se desperdicie memoria en procesos pequeños. Debe haber
un equilibrio.
Uno de los aspectos más importantes de la paginación, así como de cualquier esquema
de memoria virtual, es la forma de traducir una dirección virtual a dirección real. Para
explicarlo.