Escolar Documentos
Profissional Documentos
Cultura Documentos
LABORATORIO #02
“Hardware PC AT Pentium IV (Última Generación)”
Arequipa-Perú
04-10-12
PC AT PENTIUM IV EPIE - UNSA
ÍNDICE
ÍNDICE ............................................................................................................................... 1
1. SISTEMAS QUE COMPONEN LA COMPUTADORA AT ................................................ 3
Placa base ............................................................................................................... 3
La fuente de alimentación (Fuente de poder) ........................................................ 5
2. CARACTERÍSTICAS DEL PROCESADOR PENTIUM IV INTEL MULTI-CORE ................... 9
Tecnología “hipercanalizada” ............................................................................... 10
Extensiones Streaming SIMD 2 ............................................................................. 10
Bus del sistema de 400 MHz ................................................................................. 10
Ejecución dinámica avanzada ............................................................................... 10
Coma flotante y unidad multimedia mejoradas ................................................... 10
Caché de seguimiento de ejecución ..................................................................... 10
Sistema de ejecución rápida ................................................................................. 10
El procesador Pentium 4 optimiza el margen de ampliación necesario para su
empresa. ..................................................................................................................... 11
3. FUNCIONAMIENTO EN GENERAL ............................................................................ 11
CHIPSET ................................................................................................................. 11
RANURA AMR ....................................................................................................... 12
RANURA DE EXPANSION ....................................................................................... 12
ZOCALO PARA MICROPROCESADOR..................................................................... 13
CONECTORES PARA DISCO.................................................................................... 13
RANURAS PARA RAM ............................................................................................ 13
PUERTOS DE E/S.................................................................................................... 13
CONECTOR SATA (ATA) ......................................................................................... 13
BIOS ....................................................................................................................... 14
4. SISTEMA DESCRITO POR BLOQUES Y POR CIRCUITOS............................................. 14
TECNOLOGÍA HIPERSEGMENTADA. ...................................................................... 14
BUS DE SISTEMA DE 400 MHZ. ............................................................................. 14
RAPID EXECUTION ENGINE. .................................................................................. 14
CACHÉ Y OTRAS CARACTERÍSTICAS. ..................................................................... 15
DESCRIPCIÓN DE LA ARQUITECTURA. .................................................................. 15
5. ESQUEMÁTICO DEL SISTEMA COMPLETO SISTEMA DE APLICACIÓN. ..................... 17
6. MUESTRA DE UNA MAINBOARD AT CON IDENTIFICACIÓN DE DISPOSITIVOS ....... 18
Diagrama de Bloques: ..................................................................................................... 18
7. REGISTROS ............................................................................................................... 20
Registros de uso general....................................................................................... 20
Registros de segmento ......................................................................................... 20
Registros de puntero ............................................................................................ 21
Registro de estado ................................................................................................ 21
8. MODOS DE DIRECCIONAMIENTO ............................................................................ 23
Modo Registro ...................................................................................................... 24
Modo Registro: Ejemplo ....................................................................................... 24
Modo Registro Indirecto ....................................................................................... 24
Modo Registro Indirecto: Ejemplo........................................................................ 24
Modo Autoincremento ......................................................................................... 25
Arquitectura de Computadoras #1
PC AT PENTIUM IV EPIE - UNSA
Arquitectura de Computadoras #2
PC AT PENTIUM IV EPIE - UNSA
Hardware PC AT Pentium IV
Placa base
Formato de Placa Baby AT: IBM presenta en 1985 el formato Baby AT, que es
funcionalmente equivalente a la AT, pero significativamente menor: 8,5
pulgadas de ancho y de 10 a 13 pulgadas de profundo, su menor tamaño
favorece las cajas más pequeñas y facilita la ampliación, por lo que toda la
Arquitectura de Computadoras #3
PC AT PENTIUM IV EPIE - UNSA
Arquitectura de Computadoras #4
PC AT PENTIUM IV EPIE - UNSA
Memoria RAM
Arquitectura de Computadoras #5
PC AT PENTIUM IV EPIE - UNSA
"de acceso directo" porque los diferentes accesos son independientes entre sí
(no obstante, el resto de memorias ROM, ROM borrables y Flash, también son
de acceso aleatorio). Por ejemplo, si un disco rígido debe hacer dos accesos
consecutivos a sectores alejados físicamente entre sí, se pierde un tiempo en
mover la cabeza lectograbadora hasta la pista deseada (o esperar que el sector
pase por debajo, si ambos están en la misma pista), tiempo que no se pierde en
la RAM. Sin embargo, las memorias que se encuentran en el ordenador, son
volátiles, es decir, pierde su contenido al desconectar la energía eléctrica; pero
hay memorias (como la memoria RAM flash), que no lo son porque almacenan
datos.
La memoria RAM ha evolucionado con el tiempo a medida que se ha hecho
necesario poder manejar una mayor cantidad de datos y a una mayor
velocidad, las mismas se han clasificado de acuerdo al número de contactos
con los que lleven los módulos que la conforman.
SIMM:
DIMM:
Arquitectura de Computadoras #6
PC AT PENTIUM IV EPIE - UNSA
pero no ambos.
La extensión en el uso de los módulos DIMM ha coincidido con un aumento
muy sustancial de la capacidad de memoria: actualmente están disponibles de
64, 128, 256 y 512 MB (megabytes) y de 1, 2 o más gigabytes.
Los módulos de memoria denominados DDR DIMM (Double Data Rate DIMM,
módulos DIMM de doble velocidad de transferencia de datos), han ido
sustituyendo paulatinamente a los módulos DIMM estándar a partir del año
2000; tienen la ventaja de doblar la velocidad con que se transfieren los datos a
la placa principal. Así, los valores estándar de 100 y 133 MHz, se convertirán en
un módulo DDR en 200 y 266 MHz, respectivamente.
RIMM:
Arquitectura de Computadoras #7
PC AT PENTIUM IV EPIE - UNSA
Microprocesador
Arquitectura de Computadoras #8
PC AT PENTIUM IV EPIE - UNSA
Arquitectura de Computadoras #9
PC AT PENTIUM IV EPIE - UNSA
Tecnología “hipercanalizada”
Un canal más profundo que hace posible que las instrucciones del procesador
se pongan en cola y se ejecuten con la mayor rapidez posible, de forma que el
procesador Pentium 4 puede alcanzar las velocidades de reloj más altas del
mundo en ordenadores de sobremesa.
3. FUNCIONAMIENTO EN GENERAL
El funcionamiento en general está dado por las siguientes componentes:
CHIPSET
Conjunto de chips, o chipset, es un elemento formado por un determinado
número de circuitos integrados en el que se han incluido la mayoría de los
componentes que dotan a un ordenador de compatibilidad PC/AT a nivel
RANURA AMR
El audio/modem rise, también conocido como slot AMR2 o AMR3 es una ranura
de expansión en la placa madre para dispositivos de audio (como tarjetas de
sonido) o módems lanzada en 1998 y presente en placas de Intel Pentium III,
Intel Pentium IV y AMD Athlon. Fue diseñada por Intel como una interfaz con
los diversos chipsets para proporcionar funcionalidad analógica de
Entrada/Salida permitiendo que esos componentes fueran reutilizados en
placas posteriores sin tener que pasar por un nuevo proceso de certificación de
la FCC (con los costes en tiempo y económicos que conlleva).
Cuenta con 2x23 pines divididos en dos bloques, uno de 11 (el más cercano al
borde de la placa madre) y otro de 12, con lo que es físicamente imposible una
inserción errónea, y suele aparecer en lugar de un slot PCI, aunque a diferencia
de este no es plug and play y no admite tarjetas aceleradas por hardware (sólo
por software)
RANURA DE EXPANSION
PCI: el estándar actual. Pueden dar hasta 132 MB/s a 33 MHz, lo que es
suficiente para casi todo, excepto quizá para algunas tarjetas de vídeo 3D.
Miden unos 8,5 cm y generalmente son blancos.
AGP: se dedica exclusivamente a conectar tarjetas de vídeo 3D, por lo que
sólo suele haber una; además, su propia estructura impide que se utilice
para todos los propósitos, por lo que se utiliza como una ayuda para el PCI.
Según el modo de funcionamiento puede ofrecer 264 MB/s o incluso 528
MB/s. Mide unos 8 cm y se encuentra bastante separada del borde de la
placa.
ISA: son las más veteranas, un legado de los primeros tiempos del PC.
Funcionan a unos 8 MHz y ofrecen un máximo de 16 MB/s, suficiente para
conectar un módem o una tarjeta de sonido, pero muy poco para una
tarjeta de vídeo. Miden unos 14 cm y su color suele ser negro; existe una
versión aún más antigua que mide sólo 8,5 cm.
CNR: es una ranura de expansión en la placa madre para dispositivos de
PUERTOS DE E/S
Seriales: Ratón, Scanner, etc.
Paralelos: Impresoras
USB: Desde hace tres años, los PC, traen un puerto llamado USB (Universal
Serial Bus) que facilita la conexión de periféricos. Un periférico es cualquier
dispositivo externo que conecte al computador, como el monitor, el teclado, el
ratón, una impresora, un escáner, etc. Los puertos USB, que paulatinamente
desplazarán a los puertos serial y paralelo, tienen dos ventajas: velocidad y
facilidad de uso (todos estos son puertos externos; están en la parte trasera del
PC).
BIOS
La BIOS realmente no es sino un programa que se encarga de dar soporte para
manejar ciertos dispositivos denominados de entrada-salida (Input-Output).
Físicamente se localiza en un chip que suele tener forma rectangular, como el
de la imagen.
Además, la BIOS conserva ciertos parámetros como el tipo de disco duro, la
fecha y hora del sistema, etc., los cuales guarda en una memoria del tipo
CMOS, de muy bajo consumo y que es mantenida con una pila cuando el
ordenador está desconectado.
Las BIOS pueden actualizarse bien mediante la extracción y sustitución del chip
(método muy delicado) o bien mediante software, aunque sólo en el caso de las
llamadas Flash-BIOS.
TECNOLOGÍA HIPERSEGMENTADA.
Dentro de un microprocesador, los datos pasan por "pipelines" (canales de
datos), de un número determinado de etapas. En un Pentium con arquitectura
P6 (Pentium Pro, Pentium II, Pentium III y Celeron), el pipeline tiene 10 etapas;
en el Pentium 4 hay 20 etapas. Cuantas más etapas, más se tarda en "liberar"
los datos, por lo que un número excesivo de etapas puede llegar a bajar el
rendimiento del ordenador. Sin embargo, esto tiene una ventaja, al Pentium 4
le permite alcanzar mayores velocidades de reloj (más MHz), que es lo que
busca Intel, a costa de perder parte del rendimiento para poder recuperarlo a
fuerza de GHz
DESCRIPCIÓN DE LA ARQUITECTURA.
Sobre los componentes del Pentium 4 destaca el BTB (Branch Target Buffer)
que es la parte encargada de guardar las direcciones de los saltos y de
predecirlos. Tras pasar éste módulo la instrucción va al Decodificador que la
convierte de formato x86 en varias microinstrucciones. Más tarde se pasa la
instrucción a la zona de Renombramiento/Reposicionamiento que sirve para
ejecutar varias instrucciones simultáneamente, siendo necesario que sean
mínimamente independientes.
Más tarde se pasa a las Colas de microinstrucciones: las cuales almacenan las
mini instrucciones pendientes de ejecutar. Para finalizar, se pasa a la zona
Store/Load AGU compuesta de dos unidades que se encargan de guardar
Diagrama de Bloques:
Periféricos Externos:
7. REGISTROS
El procesador necesita para su funcionamiento de ciertas áreas de
almacenamiento, que aquí se llaman registros, y que son de dimensiones mínimas;
sin embargo, tienen la ventaja de su rapidez. Comparados con los accesos a RAM,
los de registro son como mínimo 10 veces más veloces.
Registros de segmento
Se dispone de cuatro registros que sirven para contener las direcciones de
otros tantos segmentos (zonas de 64 KB de memoria). Utilizándolos en
conjunción con otros registros que señalan las direcciones concretas dentro de
estos segmentos (los desplazamientos), permiten manejar la totalidad de la
memoria direccionable (el bus de direcciones es de 20 bits). Ver al respecto el
epígrafe "Direccionamiento segmentado".
Segmento de código CS ("Code segment"). Señala la dirección del segmento de
código del programa que se está ejecutando.
Segmento de datos DS ("Data segment"). Señala la dirección del segmento de
datos del programa en ejecución.
Segmento de pila SS ("Stack segment"). Señala la dirección del segmento
donde está la pila del programa.
Segmento extra ES ("Extra segment"). Es un segmento auxiliar a los anteriores,
se utiliza para señalar espacio extra en alguno de los segmentos o para
almacenar momentáneamente direcciones intermedias.
Registros de puntero
Son 5 registros destinados a contener direcciones; estas direcciones son
desplazamientos dentro de los segmentos indicados por los registros de
segmento.
El primero, denominado indistintamente puntero de instrucción IP
("Instrucción pointer") y contador de programa PC ("Program counter"), indica
el desplazamiento (dentro del segmento de código CS) de la próxima
instrucción a ejecutar.
El puntero de pila SP ("Stack Pointer"), señala el desplazamiento del final de la
pila dentro del segmento de pila SS. En caso necesario la pila puede crecer a
partir de este punto, de forma que por ejemplo, una nueva invocación de
función creará un nuevo registro de activación que comenzará en este punto.
El puntero base BP ("Base pointer") señala el desplazamiento (dentro del
segmento de pila SS) donde se encuentra el origen de la zona ocupada por las
variables dinámicas.
Existen dos registros denominados "de índice", en razón de su utilización muy
particular; el índice fuente SI ("Source index") y el índice destino DI
("Destination index"). Generalmente estos dos registros se utilizan con alguno
de los registros de uso general y con ciertas instrucciones específicamente
pensadas para transferir datos (dentro de un rango de posiciones de memoria),
desde un punto inicial de un segmento de datos, a otro.
Registro de estado
Existe un registro especial, el registro de estado (FLAGS), en el que 9 de los 18
bits actúan como semáforos (indicadores del estado del procesador y del
resultado de determinadas operaciones). Por ejemplo, si después de una suma
aritmética hay o no desbordamiento del bit más significativo.
Los nombres y situación de cada uno, dentro de la palabra de 16 bits, se
muestran en la figura 2.
Cada bit individual puede estar "activo" (1) o "inactivo" (0), y tiene un
identificador que termina en F ("Flag"). Son los siguientes:
Invocar DEBUG desde una ventana DOS (suponemos que estamos en Windows;
el "prompt" es un guión "-") introducir el comando R (pedimos que nos
muestre el contenido de los registros).
Salir de Debug con Q.
En la PC la respuesta al comando tiene el siguiente aspecto:
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1779 ES=1779 SS=1779 CS=1779 IP=0100 NV UP EI PL NZ NA PO NC
Los valores están expresados en hexadecimal. La última secuencia de
caracteres (NV UP EI PL NZ NA PO NC) muestra el contenido del registro de
estado (el bit TF de detención no se muestra), el significado de la notación
utilizada es el siguiente:
8. MODOS DE DIRECCIONAMIENTO
Nos referiremos a los diferentes campos de la instrucción como ci1, ci2, etc.
La expresión (ci1) significa el contenido del campo ci1 de la instrucción, o lo que es
lo mismo, el numero codificado en dicho campo.
La expresión (Ri), donde Ri es el nombre de un registro, significa el contenido del
registro.
La expresión dato R significa que se carga en el registro R el dato.
Modo Registro
Los registros pueden almacenar operandos.
La dirección de registro es diferente a la dirección de memoria.
Modo Autoincremento
El registro involucrado en el cálculo de la dirección efectiva se incrementa después
de ser utilizado.
El tamaño del incremento (1, 2, 4, etc.) está relacionado con el tamaño del
operando (8, 16, 32 bits, etc.)
de = ((ci)); (Ri) + {1, 2, 4}! Ri, donde Ri es el registro codificado en el campo ci.
Modo Absoluto
La dirección activa se encuentra en el campo de la propia instrucción.
Útil para acceder a constantes de un programa.
de = (ci)
9. SET DE INSTRUCCIONES
Las instrucciones más representativas de la arquitectura IA-32 son las siguientes:
Instrucciones aritméticas
En este grupo se incluyen aquellas instrucciones que realizan operaciones
aritméticas sencillas con números enteros y naturales tales como la suma,
Instrucciones de multiplicación
La instrucción de multiplicación tiene dos variantes, IMUL y MUL para números
enteros y naturales respectivamente y su formato supone un caso especial,
pues permite la especificación de entre uno y tres operandos.
La versión de IMUL y MUL con un único operando ofrece, a su vez la posibilidad
de multiplicar números de 8, 16 y 32 bits. Las instrucciones asumen que el
segundo multiplicando está almacenado en el registro %al (para números de 8
bits), %ax (para números de 16 bits) y %eax (para números de 32 bits). El
tamaño del número a multiplicar se deduce del operando explícito de la
instrucción.
Si se multiplican dos operandos de n bits, el resultado tiene tamaño doble y
debe representarse con 2n bits. Por tanto, si los operandos son de 8 bits, el
resultado de esta instrucción se almacena en %ax, si son de 16 bits se almacena
en los 32 bits resultantes al concatenar los registros %dx: %ax, y si los
operandos son de 32 bits, en los 64 bits obtenidos al concatenar los registros
%edx: %eax. En estos dos últimos casos, los registros %dx y %edx contienen los
bytes más significativos del resultado.
La versión de IMUL y MUL con dos operandos es más restrictiva que la anterior.
El segundo operando puede ser únicamente uno de los ocho registros de
Instrucciones lógicas
En este grupo se incluyen las instrucciones de conjunción, disyunción,
disyunción exclusiva y negación.
La aplicación práctica de estas instrucciones no es a primera vista del todo
aparente, sin embargo, suelen estar presentes en la mayoría de programas.
Las cuatro instrucciones lógicas consideradas son AND, OR, NOT y XOR para la
conjunción, disyunción, negación y disyunción exclusiva, respectivamente.
Estas instrucciones tienen en común que realizan sus operaciones “bit a bit”. Es
decir, el procesador realiza tantas operaciones lógicas como bits tienen los
operandos tomando los bits que ocupan la misma posición y, por tanto,
produciendo otros tantos resultados.
Considérese el caso de la instrucción de conjunción AND con sus dos
operandos. Al igual que en el caso de instrucciones como la de suma o resta, el
segundo operando es a la vez fuente y destino. El procesador obtiene un
resultado de igual tamaño que sus operandos y en el que cada bit es el
resultado de la conjunción de los bits de idéntica posición de los operandos. Las
instrucciones de disyunción (OR) y disyunción exclusiva (XOR) se comportan de
forma análoga.
La instrucción NOT tiene un único operando que es fuente y destino y cambia el
valor de cada uno de sus bits.
La siguiente tabla muestra ejemplos de utilización de este tipo de instrucciones.
Se asume que el símbolo contador se refiere a un operando almacenado en
memoria.
Instrucciones de rotación
Las instrucciones de rotación permiten manipular un operando como si sus bits
formasen un círculo y se rotan en ambos sentidos un número determinado de
posiciones.
Las instrucciones ROL y ROR rotan a izquierda y derecha respectivamente el
contenido de su segundo operando tantas posiciones como indica el primer
operando. El último bit que ha traspasado los límites del operando se almacena
en el bit de acarreo CF.
Las instrucciones RCL y RCR son similares a las anteriores con la excepción que
el bit de acarreo CF se considera como parte del operando. El bit que sale del
límite del operando se carga en CF y éste a su vez pasa a formar parte del
operando.
Instrucciones de salto
El procesador ejecuta una instrucción tras otra de forma secuencial a no ser
que dicho flujo de ejecución se modifique. Las instrucciones de salto sirven
para que el procesador, en lugar de ejecutar la siguiente instrucción, pase a
ejecutar otra en un lugar que se denomina “destino del salto”.
La instrucción de salto JMP (del inglés jump) tiene un único operando que
representa el lugar en el que el procesador debe continuar ejecutando. Al
llegar a esta instrucción, el procesador no realiza operación alguna y
simplemente pasa a ejecutar la instrucción en el lugar especificado como
destino del salto. El único registro, por tanto, que se modifica es el contador de
programa.
A la instrucción JMP se le denomina también de salto incondicional por
contraposición a las instrucciones de salto en las que el procesador puede
saltar o no al destino dependiendo de una condición.
La arquitectura IA-32 dispone de 32 instrucciones de salto condicional. Todas
ellas comienzan por la letra J seguida de una abreviatura de la condición que
determina si el salto se lleva a cabo o no. Al ejecutar esta instrucción el
procesador consulta esta condición, si es cierta continua ejecutando la
instrucción en la dirección destino del salto. Si la condición es falsa, la
instrucción no tiene efecto alguno sobre el procesador y se ejecuta la siguiente
instrucción.
Las condiciones en las que se basa la decisión de saltar dependen de los valores
de los bits de estado CF, ZF, OF, SF y PF. La tabla 9.10 muestra para cada
instrucción los valores de estos bits para los que se salta a la instrucción
destino.
Turbo Editassm:
Este es desarrollado por Speedware, Inc., y consiste de un ambiente
integrado que incluye un editor y utilerías para el proceso de
ensamble y depuración. Es capaz de realizar el ensamble línea a
línea, conforme se introducen los mnemónicos, y permite revisar
listas de referencias cruzadas y contenido de los registros. Este
ensamblador trabaja con tablas en memoria, por lo que la
generación del código ejecutable no implica la invocación explícita
del ligador por parte del programador. Adicionalmente permite la
generación de listados de mensajes e información de cada etapa del
proceso y la capacidad de creación de archivos de código objeto.
Turbo Assembler:
De Borland Intl., es muy superior al Turbo Editassm. Trabaja de la
misma forma, pero proporciona una interfaz mucho más fácil de
usar y un mayor conjunto de utilerías y servicios.
En lo que se refiere a las presentes notas, nos enfocaremos al Microsoft
Macro Assembler v4.0. Los programas ejemplo han sido desarrollados con
éste y está garantizado su funcionamiento. Estos mismos programas
posiblemente funcionen con otros ensambladores sin cambios o con
cambios mínimos cuando utilizan directivas o pseudoinstrucciones.
Realmente la diferencia entre los ensambladores radica en la forma de
generar el código y en las directivas con que cuente, aunque estas
diferencias son mínimas. El código ensamblador no cambia puesto que los
microprocesadores con los que se va a trabajar son comunes. Así, todos los
programas que se creen con un ensamblador en particular podrán ser
ensamblados en otro, cambiando las pseudo-operaciones no reconocidas
por el equivalente indicado en el manual de referencia del paquete
empleado.
Los programas que componen el Macro Ensamblador Microsoft v4.0 son los
siguientes:
Debuger:
Se trata de una utilidad muy poco amigable, sin menús y -sólo en versiones
recientes- con ayuda mínima, pero una vez aprendidos unos cuantos comandos es
extremadamente potente. Hay quien lo considera como el mejor programa que ha
hecho Microsoft.
Debug, invocado sin parámetros, se carga y pasa a mostrar un lacónico guión, a la
espera de órdenes del usuario. Todas -a excepción de las relativas a operaciones
con memoria expandida, que no se verán aquí- constan de una única letra seguida
o no de parámetros. Si se va a desensamblar un programa, se le puede indicar a
debug que lo cargue también tras cargarse él escribiendo:
debug nombre-del-programa argumentos-del-programa
Debug
C:\> Debug [Enter]
En la siguiente línea aparecerá un guión, éste es el indicador del Debug, en este
momento se pueden introducir las instrucciones del Debug. Utilizando el comando:
- r [Enter]
Se desplegaran todos los contenidos de los registros internos de la UCP; una forma
alternativa de mostrarlos es usar el comando "r" utilizando como parámetro el
nombre del registro cuyo valor se quiera visualizar. Por ejemplo:
- rbx
Esta instrucción desplegará únicamente el contenido del registro BX y cambia el
indicador del Debug de " - " a “: "
Estando así el prompt es posible cambiar el valor del registro que se visualizó
tecleando el nuevo valor y a continuación [Enter], o se puede dejar el valor anterior
presionando [Enter] sin teclear ningún valor.
Es posible cambiar el valor del registro de banderas, así como utilizarlo como
estructura de control en nuestros programas como se verá más adelante. Cada bit
12. BIBLIOGRAFÍA
http://www.wikipedia.org
http://www.intel.com
http://www.slideshare.net
http://www.rincondelvago.com
http://www.monografias.com