Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Equipos Microinformáticos 1. El Ordenador. Es un dispositivo electrónico capaz de recibir un conjunto de instrucciones, o programa, y, a continuación, ejecutarlo realizando cálculos sobre los datos numéricos, o bien compilando y correlacionando otros tipos de información. Todo lo que hace un ordenador digital se basa en una operación: la capacidad de determinar si un conmutador, o 'puerta', está abierto o cerrado. Es decir, el ordenador puede reconocer sólo dos estados en cualquiera de sus circuitos microscópicos: abierto o cerrado, alta o baja tensión o, en el caso de números, 0 ó 1. Sin embargo, es la velocidad con la cual el ordenador realiza este acto tan sencillo lo que lo convierte en una poderosa herramienta. Las velocidades del ordenador se miden en megahercios, o millones de ciclos por segundo. Un ordenador con una velocidad de reloj de 900MHz, velocidad bastante representativa de un microordenador o microcomputadora, es capaz de ejecutar 900 millones de operaciones discretas por segundo. Las microcomputadoras para empresas (uso profesional) pueden ejecutar entre 2500 y 3000 millones de operaciones por segundo, mientras que las supercomputadoras utilizadas en aplicaciones de investigación y de defensa alcanzan velocidades muy superiores. La velocidad y la potencia de cálculo de los ordenadores digitales se incrementan aún más por la cantidad de datos manipulados durante cada ciclo. Si un ordenador verifica sólo un conmutador cada vez, dicho conmutador puede representar solamente dos comandos o números. Así, ON simbolizaría una operación o un número, mientras que OFF simbolizará otra u otro. Sin embargo, al verificar grupos de conmutadores enlazados como una sola unidad, el ordenador aumenta el número de operaciones que puede reconocer en cada ciclo. Por ejemplo, un ordenador que verifica dos conmutadores cada vez, puede representar cuatro números (del 0 al 3), o bien ejecutar en cada ciclo una de las cuatro operaciones, una para cada uno de los siguientes modelos de conmutador: OFF-OFF (0), OFF-ON (1), ON-OFF (2) u ON-ON (3). En general, los ordenadores de la década de 1970 eran capaces de verificar 8 conmutadores simultáneamente; es decir, podían verificar ocho dígitos binarios, de ahí el término bit de datos en cada ciclo. Un grupo de ocho bits se denomina byte y cada uno contiene 256 configuraciones posibles de ON y OFF (o 1 y 0). Cada configuración equivale a una instrucción, a una parte de una instrucción o a un determinado tipo de dato; estos últimos pueden ser un número, un carácter o un símbolo gráfico. Por ejemplo, la configuración 11010010 puede representar datos binarios, en este caso el número decimal 210, o bien estar indicando al ordenador que compare los datos almacenados en estos conmutadores con los datos almacenados en determinada ubicación del chip de memoria. El desarrollo de procesadores capaces de manejar simultáneamente 16, 32 y 64 bits de datos ha permitido incrementar la velocidad de los ordenadores. La colección completa de configuraciones reconocibles, es decir, la lista total de operaciones que una computadora es capaz de procesar, se denomina conjunto, o repertorio, de instrucciones. Ambos factores, el número de bits simultáneos y el tamaño de los conjuntos de instrucciones, continúa incrementándose a medida que avanza el desarrollo de los ordenadores digitales modernos. 1 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 2. CPU (Unidad Central de Proceso) La CPU puede ser un único chip o una serie de chips que realizan cálculos aritméticos y lógicos y que temporizan y controlan las operaciones de los demás elementos del sistema. Las técnicas de miniaturización y de integración han posibilitado el desarrollo de un chip de CPU denominado microprocesador, que incorpora un sistema de circuitos y memoria adicionales. El resultado son unos ordenadores más pequeños y la reducción del sistema de circuitos de soporte. Los microprocesadores se utilizan en la mayoría de los ordenadores personales de la actualidad. La mayoría de los chips de CPU y de los microprocesadores están compuestos de cuatro secciones funcionales: una unidad aritmética / lógica; unos registros; una sección de control y un bus interno. La unidad aritmética / lógica proporciona al chip su capacidad de cálculo y permite la realización de operaciones aritméticas y lógicas. Los registros son áreas de almacenamiento temporal que contienen datos, realizan un seguimiento de las instrucciones y conservan la ubicación y los resultados de dichas operaciones. La sección de control tiene tres tareas principales: temporiza y regula las operaciones de la totalidad del sistema informático; su descodificador de instrucciones lee las configuraciones de datos en un registro designado y las convierte en una actividad, como podría ser sumar o comparar y su unidad interruptora indica en qué orden utilizarán la CPU las operaciones individuales y regula la cantidad de tiempo de CPU que podrá consumir cada operación. El último segmento de un chip de CPU o microprocesador es su bus interno, una red de líneas de comunicación que conecta los elementos internos del procesador y que también lleva hacia los conectores externos que enlazan al procesador con los demás elementos del sistema informático. Los tres tipos de bus de la CPU son: un bus de control que consiste en una línea que detecta las señales de entrada y de otra línea que genera señales de control desde el interior de la CPU; el bus de dirección, una línea unidireccional que sale desde el procesador y que gestiona la ubicación de los datos en las direcciones de la memoria y el bus de datos, una línea de transmisión bidireccional que lee los datos de la memoria y escribe nuevos datos en ésta. HISTORIA DE LA MICROELECTRÓNICA Escalas de Integración: SSI ( Small Scale Integration ) - pequeña escala de integracióncircuitos de funciones lógicas elementales. número aproximado de componentes por circuito, 100. número aproximado de puertas lógicas, 10. MSI ( Mediun Scale Integration) - media escala de integracióncircuitos más complejos que los anteriores, de aplicación general realizan funciones lógicas más complejas. Son codificadores, multiplexores, contadores, etc... número aproximado de componentes por chip entre 100 y 1000. número aproximado de puertas lógicas, 100. 2 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 LSI (Large Scale Integration) - gran escala de integraciónrealizan funciones lógicas muy complejas. son circuitos propios de la lógica programable como: memorias, microprocesadores, etc... el número aproximado de componentes por chip está entre 1000 y 10.000. número aproximado de puertas lógicas, 1000. VLSI (Very Large Scale Integration) - muy gran escala de integraciónson circuitos con más de 10 millones de transistores por chip. CIRCUITOS LSI: El microprocesador. 2.1. Estructura básica de un sistema con microprocesador. BUS DE DIRECCIONES MEMORIA C.P.U. ROM RAM E/S BUS DE DATOS BUS DE CONTROL Figura 1. Básicamente un sistema digital basado en microprocesador es una estructura hardware controlada mediante un sistema software o programa. 2.2. Estructura interna de un sistema basado en microprocesador: El procesador toma los datos de la memoria principal, y los acumula en el registro de instrucciones con el orden de llegada en una memoria intermedia del tipo LIFO, estos son decodificados en el DECODIFICADOR DE INSTRUCCIONES donde cada instrucción es cambiada por su código máquina correspondiente. El programa almacenado en memoria sigue una secuencia preestablecida, que sólo se verá alterada si se produce una petición de interrupción desde un dispositivo de E/S. Cuando se produce una interrupción se ejecuta una bifurcación en la secuencia del programa. Esto provoca la ejecución de una subrutina dentro de la secuencia general del programa. El stack o pila es el conjunto de registros que forman la memoria intermedia, en esta pila se almacenan los datos que va enviando el Contador de Programa, que es quien lleva el control de la siguiente posición de memoria a la que hay que acceder. Cuando la ALU obtiene el resultado de la operación, lo posiciona en memoria a través del bus de datos. (ver figura 2.) 3 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 CISC FRENTE A RISC La tecnología CISC (Complex Instruction Set Code) es un elemento derivado de los anteriores desarrollos de Intel (486), y básicamente es la adoptada por los procesadores P54C, el PENTIUM. La necesidad de que sea compatible con las aplicaciones creadas para las anteriores CPU’s de Intel, hace que de nuevo se haya ampliado el conjunto de instrucciones para acomodar nuevas prestaciones. Ahora bien, se ha cambiado notablemente la forma de realizar el proceso interno para cada operación. Hasta el advenimiento del Pentium, uno de los factores diferenciadores entre procesadores CISC y RISC era el número de ciclos de reloj necesarios para completar una instrucción. Mientras una instrucción RISC se ejecutaba típicamente en un ciclo de reloj, una instrucción CISC se subdividía en varias fases, que requerían en su conjunto múltiples ciclos de reloj para completarse. BUS DE DATOS DIRECCIÓN 1 2 3 CARGAR ACUM. 45 CONTADOR DE PROGRAMA SUMAR 4 21 5 GUARDAR 6 8 7 STOP DECODIFICADOR DE INSTRUCCIONES BUS DE DIRECCIONES C.P.U. 8 9 REGISTRO DE INSTRUCCIONES RELOJ Y SEÑALES DE CONTROL 66 (RESULTADO) CONTROL MEMORIA REGISTRO ACUMULADOR ALU ALU Estructura interna y memoria. Figura 2. 4 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 El procesador Pentium mantiene buena parte de la arquitectura CISC, pero al mismo tiempo incorpora en su núcleo circuitería e instrucciones propias de un RISC. Hay instrucciones que requieren varios ciclos de reloj, pero a cambio otras se operan internamente en menos de un ciclo por instrucción. El sistema de doble pipeline o pipeline bifásica y algunas optimizaciones más permiten que el funcionamiento general se aproxime al ideal RISC y se ejecute una cadencia cercana a una instrucción por ciclo. Microinstrucciones CISC MEMORIA Allá por la tercera generación del ordenador cuando las máquinas comienzan a soportar Unidad de Control lenguajes de alto nivel, surgieron juegos de (Decodificación) instrucciones complejos, en los que cada instrucción equivalía a varias decenas de operaciones simples, llamadas “operaciones elementales” en lenguaje máquina. Así se evitaban muchos accesos a la Memoria memoria principal, al mismo tiempo que se de control sacaba el máximo rendimiento de la máquina, denominando a este tipo de UNIDAD DE DECODIFICACIÓN computadores CISC (juego de código de instrucción complejo). Al aumentar la complejidad de las ALU instrucciones máquina surgió la necesidad de una fase intermedia encargada de CPU almacenar los microcódigos E/S correspondientes a cada macroinstrucción. Esta unidad intermedia se denominó Memoria de Control. En los procesadores CISC se establece un intercambio, por parte de la memoria de control, entre la lógica cableada de las operaciones simples y la programada de las complejas. Así se resolvía el problema derivado de las distintas velocidades entre las dos secciones principales del procesador. Además se paliaba la divergencia semántica con las instrucciones de los lenguajes de alto nivel. El número de instrucciones CISC sólo está limitado por la capacidad de la memoria de control. Los computadores RISC sólo disponen de las instrucciones máquina más importantes y usadas, que, suelen ser menos de 50. En este tipo de computadores se ha incrementado el número de registros de propósito general para evitar accesos a memoria y ayudar a los compiladores a analizar los datos y controlar los flujos de forma óptima al conocerse las variables más usadas que se han asignado a los registros. Las instrucciones RISC tienen normalizados tanto su formato como su longitud, lo que favorece el funcionamiento fragmentado o pipe-line, al estar todos sus campos en sitios determinados. Sin embargo, dada la limitación del juego de instrucciones RISC únicamente a las funciones elementales, requieren empleo de coprocesadores especializados. 5 Unidad de Control (Decodificación) Miguel Angel©1999-2002 CÓDIGOS MÁQUINA MEMORIA CACHÉ DE CÓDIGO Y DE DATOS Microinstrucciones RISC MEMORIA UNIDAD DE CONTROL Estructura y Tecnología de Computadores ALU CPU E/S PROCESADOR RISC Figura 4. 2.3. ESTRUCTURA SEGMENTADA La segmentación es la técnica usada en los microprocesadores para incorporar un cierto grado de paralelismo, con el fin de aumentar su velocidad de procesamiento. También recibe el nombre de técnica tubular o "pipeline", y emplea la filosofía aplicada en las cadenas de montaje y ensamblado de las carrocerías de los coches, consistente en dividir el proceso total en varias fases o etapas y destinar a cada una de ellas un conjunto de hombres y/o máquinas para efectuarla. Intel introdujo por primera vez en el 8086 el funcionamiento segmentado, que dividía un proceso en varias partes y dotaba a la CPU de unidades para el tratamiento de cada parte, permitiendo trabajar simultáneamente a dichas unidades y dando lugar a una aceleración en el tiempo total de realización. Internamente el 8086 estaba formado por dos unidades o procesadores independientes: La unidad de ejecución: encargada de ejecutar instrucciones procedentes de la cola de instrucciones. La unidad de intercambio con el bus: realiza todas las transferencias con el bus del sistema. Se encarga de direccionar la memoria y las E/S soportando la transferencia de datos. La técnica de la segmentación puede aplicarse en la arquitectura de computadores al procesamiento de las instrucciones, que se dividen en 4 subfunciones o registros: 1) Búsqueda de la instrucción (BI) 2) Decodificación (D) 3) Búsqueda de operandos (BO) 6 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 4) Ejecución (E) BÚSQUEDA INSTRUCCIÓN ( lectura ) DECODIFICACIÓN BUSQUEDA OPERANDOS D BO E D I1 BO E BO I1 E BO I2 E I1 BI I1 I5 I4 I3 I2 RELOJ RELOJ t2 RELOJ D I2 t3 t2 BI I4 I5 RELOJ t3 SALIDA t1 D I3 t4 SALIDA t1 BI I3 I5 I4 SALIDA t1 BI I2 I5 I4 I3 EJECUCIÓN t2 SALIDA t1 La ejecución en cadena de las fases de una instrucción permite obtener a la salida del proceso el resultado o finalización de cada instrucción con cada impulso de reloj. Figura 5. Como se refleja en la Figura anterior, cuando se ejecuta una serie de instrucciones al ritmo de los impulsos que genera el reloj, con el primero de dichos impulsos se realiza la fase de búsqueda de la primera instrucción I1. Con el segundo impulso, I1 pasa a la Unidad de Decodificación (D), dejando libre a BI, que pasa a ser ocupada por la siguiente instrucción, I2. En el tercer impulso, I1 pasa a la Unidad de Búsqueda de Operandos, mientras que I2 llega a D e I3 se introduce a la unidad BI. Así se desarrolla en cadena la ejecución de una secuencia de instrucciones. Como podemos observar son necesarios cinco ciclos de reloj hasta obtener el primer resultado. 2.4. Coprocesador matemático. Procesador de operaciones en coma flotante, también llamado coprocesador matemático, coprocesador numérico y unidad de coma flotante; se trata de un coprocesador (procesador adicional al microprocesador principal del sistema) que realiza cálculos con números en coma flotante, en oposición a los números enteros. La inclusión de un procesador de coma flotante puede aumentar de forma considerable la velocidad de ejecución de funciones matemáticas y gráficas (los trabajos gráficos conllevan generalmente muchos cálculos), siempre que los programas estén diseñados para 7 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 reconocerlo y utilizarlo. A partir del Intel 80486 y Motorola 68040, los nuevos procesadores de estas familias incorporan lógica para realizar operaciones de coma flotante que hacen innecesario el uso de coprocesador matemático externo, es decir, llevan coprocesador integrado en la CPU. El coprocesador puede aumentar de forma considerable el rendimiento del sistema, siempre que el software de aplicación haga uso de él, ya que pone a disposición de la aplicación instrucciones aritméticas, trigonométricas, exponenciales y logarítmicas con las que no cuenta el procesador principal. El coprocesador también incorpora operaciones fundamentales para el cálculo de senos, cosenos, tangentes, arcotangentes y logaritmos. Si se utilizan estas instrucciones adicionales, las operaciones son realizadas por el coprocesador, permitiendo al procesador dedicarse a otras tareas. int el R Es la compañía más importante del mercado en la fabricación de microprocesadores y componentes electrónicos. Intel se fundó en 1968 cuando Bob Noyce (coinventor del circuito integrado) junto a Gordon Moore decidieron abandonar la empresa que fundaron con cuatro colegas más, “Fairchild”, por problemas burocráticos y de inestabilidad. La nueva tecnología de memoria basada en semiconductores prometía lo suficiente como para embarcarse en este proyecto, Intel acababa de nacer y su actividad inicial fue la de diseñar memorias con tecnología LSI. Poco después se les unió Andy Grove, que a la postre se convertiría en el líder de Intel. En el primer medio año de vida la joven empresa ingresó 2.682 dólares, en el otro medio año ya dobló esa cantidad. Así se ha venido sucediendo hasta ahora, con esos record de ganancias y sin que nadie le discuta el liderazgo a esta empresa que, hoy por hoy, está representada en todo el mundo. Uno de los grandes aciertos de Intel fue fabricar el primer chip considerado como una CPU. Se trataba del 4004, un diminuto procesador de 4 bits diseñado en 1969 que contaba sólo con 16 patillas y que se empleó como corazón de la primera calculadora. 8 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 HISTORIA DE LOS MICROPROCESADORES DE INTEL. Diseñado en 1969 y Comercializado en 1971 el 4004 de INTEL con un Bus de datos de 4 bits. 1972, el 8008 de INTEL Bus de datos de 8 bits. 1974, el 8080 de INTEL Bus de 8 bits. 1976, el 8085 de INTEL Bus de 8 bits. 1978, el 8086 1979, el 8088 Primer procesador con bus de 16 bits. Bus de direcciones de 20 líneas: podía direccionar hasta 1Mb de Memoria. Dos versiones: 4.77 y 8Mhz. de velocidad de reloj. Bus interno de 16 bits / Bus externo de 8 bits. (Más lento que su predecesor, el 8086) Bus de direcciones de 20 líneas. Frecuencia de reloj 4.77Mhz. EL PRIMER PC, fabricado por IBM, utilizaba el 8088 de INTEL y apareció por primera vez en el mercado en 1982. 1984, Primer AT (Advanced Technology), el 80286 a 12Mhz y 16MHz. Bus de datos de 16 bits (ISA a 8MHz). Bus de direcciones de 24 líneas. Coprocesador matemático opcional (80287). 1985, el 80386 a 16, 20, 25 y 33MHz. (Coprocesador opcional 80387) Bus de datos y de direcciones de 32 bits. Aparecieron dos versiones: SX y DX (Single y Double Word external). 1989, el 80486 también en versiones DX y SX. Bus de 32 bits con formatos ISA y EISA. (El bus ISA trabaja con 16 bits a 8MHz. El bus EISA trabaja con 32 bits a 33MHz). Lleva coprocesador matemático interno. Es un procesador CISC: código de instrucción completo. En un principio trabajaba a una frecuencia de reloj de 25MHz, más tarde aparecieron versiones a 33MHz y 40MHz. Poco tiempo después aparecieron los... 1992, 1993, el 80486DX2 y el 80486DX4. Lo que hacen es duplicar y triplicar internamente la frecuencia de reloj del sistema. Integran en su interior 1,6 millones de transistores, sobre estructura de 0,6 micras y con una alimentación de 3,3volts. (Bus de 32 bits con formatos VLB: 33MHz; y PCI: 64 ó 32 bits a 33MHz) Ejecutan una instrucción por ciclo de reloj. Trabajan a 50, 66, 75 y 100MHz. 9 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 MARZO 1993, (5ª generación de procesadores INTEL) el PENTIUM o 586 ( nombre clave P54CX) es un Procesador CISC/RISC: código de instrucción reducido. Inicialmente trabajaba con unas frecuencias de 60 y 66MHz. Construido con 3,1 millones de transistores. Ejecuta dos instrucciones por ciclo de reloj. Es cinco veces más potente que el 486 a 33. ChipSet 430FX, VH, HX y TX. Fabricado con proceso BI-CMOS de geometría de 0,8 micras y con arquitectura superescalar. Bus interno de 256 bits. Bus externo de 64 bits, PCI. 1994/1995 Aparecen nuevas versiones del PENTIUM. PENTIUM a 75, 90, 100, 120 y 133MHz. DICIEMBRE 1995, Se presenta en el mercado el PENTIUM-PRO a 150MHz. Posteriormente aparecen tres versiones más: a 166, 180 y 200MHz. Es un procesador especialmente concebido para aplicaciones de 32bits. (Profesional). Construido con geometría de 0,6 micras. Microarquitectura superescalar. Es un RISC puro. Integra 5,5 millones de transistores. Puede ejecutar hasta 3 instrucciones por ciclo de reloj. ENERO 1996, Aparece el PENTIUM a 150 y 166MHz. Fabricados en 0,35 micras y alimentados a 3,3 volts. JULIO 1996, Llega el PENTIUM a 200MHz. Este chip se basa en la tecnología avanzada de proceso de 0,35 micras. Está construido con un encapsulado PPGA (Plastic Pin Grid Array) más eficaz térmicamente. SEPTIEMBRE 1996 PENTIUM 166 Y 200MHz MMX (P55CX). PENTIUM 233MHz MMX PENTIUM 266MHz MMX 1997 PENTIUM II 233MHz (MMX)- Slot 1. (nombre clave KLAMATH). ChipSet 440LX y 440FX. PENTIUM II 266MHz PENTIUM II 300MHz PENTIUM II 333MHz 1998 MAYO 1998 PENTIUM II 400MHz-Slot 2. (Bus de sistema a 100MHz). ChipSet440BX. - (Xeon™) 1999 PENTIUM III 450 – SLOT1 (KATMAI – MMX2). Bus a 100MHz. AGP 4x. 10 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 ESQUEMATIZACIÓN DE LOS Pentium DE INTEL Y DE SU MÁS FIEL COMPETIDOR. Pentium-clásico (P54CX) 1993 Procesador 60 66 75 90 100 120 133 Socket 7 CISC/RISC (FPU) ChipSet 430FX, VH, HX y TX. (Es cinco veces mas potente que un 486 a 33MHz) L1 Un Pentium se puede definir como dos procesadores 486 en paralelo ( mas exactamente, un 486SX y un 486DX en paralelo) 16KB 256 bits 3,1 millones de transistores BI-CMOS 0,8 micras L2 64 bits BUS DE SISTEMA 66MHz 256/512KB MEMORIA CACHÉ EDO-RAM MEMORIA PRINCIPAL Pentium-Pro (200MHz) 1995 L2 Procesador 150 166 180 200 (FPU) RISC 1MB de Caché personalizada. Bus de alta velocidad 200MHz 3I/CLK Socket 8 L1 32KB 0,6 micras microarquitectura superescalar 5,5 millones de transistores Especialmente concebido para aplicaciones de 32 bits (Windows NT) Pentium-MMX (P55CX) 256/512KB BUS DE SISTEMA 66MHz CACHÉ L2 Encapsulado PPGA (Plastic Pin Grid Array) a partir del 200MHz. 1996 Procesador CISC/RISC Socket 7 MMX 57 instr. 166 200 233 266 ChipSet 430 TX (VX mínimo) (FPU) L1 32KB 0,35 micras Alimentación Dual: Núcleo (core) 2,8V Patillaje (I/O) 3,3V nota: (FPU) Unidad de Procesamiento en coma Flotante, o más conocido como Coprocesador Matemático. 11 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Pentium II - MMX (KLAMATH) 1997 Procesador 233 266 300 333 L2 L1 Ej.: 300MHz Slot 1 32KB CLK/2 150MHz ChipSet 440LX-FX 512KB SRAM Con ChipSet LX se pueden construir placas que soportan dos procesadores en paralelo. MMX SEC (Single Edge Compact) Arquitectura DIB (Dual Independent Bus) 0,35 micras BUS DE SISTEMA 66MHz Pentium II - MMX (Deschutes)/100 1998 Procesador L2 L1 350 400 450 32KB Slot 1 CLK/2 ChipSet 440BX 512KB SRAM MMX 0,25 micras SEC (Single Edge Compact) Arquitectura DIB (Dual Independent Bus) 440 ChipSet BX BUS DE SISTEMA 100MHz Unidad E/S MEMORIA (SDRAM) 100 MHz. PC/100 Celeron 266/300 Procesador Slot1 L1 ChipSet 440EX 32KB no tienen caché L2 MMX 0,25 micras 7,5 millones de transistores SEC Alimentación Dual BUS DE SISTEMA 66MHz 12 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Celeron 300A/466 (Mendocino) 9,1 millones de transistores. Procesador 300 333 366 400 433 466 1998 L2 L1 Slot1-S.370 ChipSet 440EX 32KB MMX =CLK Optimizado para alpicaciones de 32 bits. La caché L2 trabaja a la misma velocidad que el procesador. 128KB SRAM 2,0V 3,3V 0,25 micras S.E.P.P. Alimentación Dual BUS DE SISTEMA 66MHz Pentium III (KATMAI) NÚMERO DE IDENTIFICACIÓN 450 500 550 600 .... 850 866 933 1000 1999 Juego de instrucciones IA-32 Procesador 3D 70 New Instruction S.S.E. L2 L1 Slot 1- S.370 Streaming SIMD Extensions 32KB 512KB CLK/2 SRAM MMX 0,25 micras 0,18 micras 2,0 V 3,3 V 9,5 millones de transistores S.E.C.C.2 Package / FC-PGA Package ChipSet 810 Incorpora 70 nuevas instrucciones S.S.E.(equivalentes a las 3D Now). Nota: son equivalentes pero incompatibles. Dynamic Execution Technology. Dual Processor Support. Internal Streaming SIMD Extensions Arquitectura DIB. BUS DE SISTEMA 100/133 Mhz PENTIUM -4 IA-64 Socket 370. FC-PGA2 0.13 micras Nota: el nuevo procesador de intel merece una atención especial, por lo que será tratado en otro momento. 13 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 AMD K5 PR75 PR90 PR100 PR120 PR133 PR166 L1 (Pentium clásico) Socket 7 Generalmente estos procesadores indican como medida de velocidad el denominado P-rating, que es una medida de velocidad comparada con los procesadores de Intel y según los resultados del test Winstone 98. 24KB L2 en placa madre (512KB) BUS de Sistema a 66MHz. M M AMD X 6 166 200 233 (Pentium II) Socket 7 ChipSet 430VX (Nx686) NexGen L1: 64KB L2: en placa Alimentación Dual: 2.8/3.3V BUS de Sistema a 66MHz. 8.8 millones de transistores X M 300 350 M AMD 6 3D NOW (Katmai) Zócalos: Socket 7 a 66MHz Super 7 a 100MHz juego de 24 instrucciones ChipSet AMD640. L1: 64KB Alimentación Dual: 2.2/3.3V Soporta Bus de sistema a 100MHz AGP, USB y Ultra DMA. 21,3 millones de transistores a 025 micras. (PentiumIII) M AMD 6 X M 400 450 L3: L1: 64KB L2 se comunica con la CPU a la frecuencia de reloj Zócalo Super 7 a 100MHz. Alimentación Dual: 2.4/3.3V L2: 256KB La caché de la placa base pasa a trabajar como memoria de tercer nivel. Su principal característica es su nuevo diseño de caché de 3 niveles. Esto se consigue incorporando una caché L2 de 256KB en el núcleo de la CPU. 14 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Micros: Retrospectiva y actualidad. E l microprocesador es el cerebro del ordenador, el encargado de procesar todas las instrucciones de programas y dispositivos. Aunque se trata de una parte fundamental en todos los ordenadores, la velocidad de un ordenador no sólo viene determinada por el procesador, la velocidad de todos sus componentes es fundamental y ello determina un mayor o menor rendimiento del sistema. El cuello de botella puede estar en cualquiera de los elementos que forman un ordenador como puede ser el adaptador gráfico, la memoria RAM o el subsistema de discos duros. La velocidad de un ordenador depende de cuatro aspectos fundamentales (procesador, memoria, tarjeta gráfica y disco duro) y ninguno de ellos es más importante que los otros. Arquitectura de un ordenador A grandes rasgos, un microprocesador de la última generación está formado, por una CPU (Unidad Central de Proceso) y una caché de nivel 1 (level 1 o L1), además de una ALU (Unidad Aritmético-lógica) . Lo más destacable es el concepto de caché y la distinción entre caché de nivel 1 y caché de nivel 2. El término caché se utiliza para designar una zona de almacenamiento rápido. El procesador accede a la caché a mucha más velocidad de lo que lo hace a la memoria principal. Gracias a la memoria caché se consigue aumentar la velocidad de proceso, pues en vez de acceder a los datos de la memoria principal, el procesador primero "mira" si esos datos están en el caché que es mucho más rápido. Diagrama de un ordenador actual Figura 1. 15 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Caché L1. La memoria caché de nivel 1 está incluida en el propio encapsulado del procesador. Al integrar el caché en el chip del procesador se consigue que la CPU tenga un acceso muy rápido al caché, ya que la conexión entre ambos es casi directa. Normalmente, se utilizan 16KB o 32KB de caché L1 (aunque existen procesadores con 64KB de caché L1), utilizando la mitad del caché para datos y la otra mitad para código. Caché L2. La memoria caché de nivel 2 también se utiliza para acelerar la comunicación entre el procesador y la memoria RAM. Se trata de una cantidad más grande de memoria, entre 256KB y 512KB, donde se guardan los datos más usados para acceder a ellos con mayor velocidad. Resulta más rápido leer la memoria caché que la RAM, porque la memoria caché es memoria estática (SRAM), con tiempos de acceso del orden de 10 nanosegundos, mientras que la memoria RAM es memoria dinámica (DRAM), cuya velocidad no puede bajar de 50 nanosegundos. Además de emplear tipos de memoria diferentes, para aumentar la velocidad de acceso al caché L2, algunos procesadores se construyen sobre un mismo circuito que incluyen el caché L2, como es el caso de los Pentium-Pro y Pentium II, estableciendo de esta forma un bus de alta velocidad entre el procesador y el caché. ChipSet. Como su nombre indica, el chipset es un conjunto de chips que se integran en la placa madre y que contienen todos los controladores y rutinas que ponen en comunicación el procesador con las diferentes partes funcionales del ordenador. El chipset incluye la unidad de gestión de memoria (MMU), el controlador de interrupciones (PIC), etc. Puesto que el chipset decide la comunicación del procesador con el resto del ordenador, según sus características se podrá utilizar el mismo procesador para crear ordenadores con capacidades diferentes, por ejemplo, hay chipset que permiten trabajar con un Pentium, mientras que otros permiten trabajar con 2 Pentium en paralelo. Es fundamental destacar la transcendencia del chipset en un ordenador, puesto que decide cosas tan importantes como la cantidad máxima de memoria RAM, el tipo de memoria RAM (EDO DRAM ó SDRAM) que soporta la placa madre, el número de procesadores que se pueden emplear en paralelo, la velocidad del bus de sistema o la posibilidad de utilizar puertos USB, tarjetas de vídeo AGP o discos duros Ultra DMA. Bus de Sistema y bus de Datos. La comunicación entre el procesador, la memoria RAM y el chipset se realiza a través del bus de sistema. Luego, cuando se empiezan a enviar datos a los periféricos conectados en los slots de expansión del ordenador, se utiliza el bus de datos. Estos buses miden su velocidad en megahertzios (millones de ciclos por segundo), que indica la velocidad con la que se envían los datos por el bus. Además, también hay que tener en cuenta al ancho de banda del bus (por ejemplo, 16, 32 ó 64 bits), es decir, la cantidad de datos que se pueden enviar en cada ciclo. Sabiendo la velocidad del bus y el ancho de banda, se puede obtener la velocidad de transferencia máxima del bus en bytes por segundo. Por ejemplo, un bus de 8 MHz con un ancho de banda de 16 bits (2 bytes) puede trabajar con una velocidad de transferencia máxima de 8 millones/seg. x 2 bytes = 16 MB/seg. 16 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 La familia intel Pentium El Pentium clásico. El primer Pentium (denominado técnicamente P54CX) apareció en 1994, como exponente de la quinta generación de los procesadores Intel. Un Pentium se puede definir como dos procesadores 486 en paralelo (más exactamente, un 486SX y un 486DX en paralelo), por lo que puede ejecutar más instrucciones que un 486, normalmente 2 instrucciones por ciclo de reloj. Existen Pentium de diferentes velocidades de reloj, con modelos que van desde los 60 hasta los 200MHz. Todos poseen 16 KB de caché L1 y soportan entre una cantidad variable de caché L2, cantidad que depende del ChipSet usado en la placa base, que es externa al micro conectada al procesador a través del bus de sistema. Lógicamente, la velocidad con la que accede el procesador a la caché L2 es la velocidad del propio bus de sistema, que según el modelo corresponde a 60 ó 66MHz. El Pentium se introduce en la placa base sobre zócalo ZIF, versión Socket 7, que como veremos es el zócalo en el que se apoyan otros fabricantes como AMD y Cyrix para sus procesadores. El Pentium Pro. Este procesador aparece en 1995 y está especialmente concebido para servidores, estando ligado al sistema operativo Windows NT. Esto es debido a varias razones. Por una parte, el Pentium Pro está preparado para trabajar en equipos con hasta cuatro Pentium Pro en paralelo, lo cual resulta fundamental para las situaciones críticas de los servidores. Además el Pentium Pro es muy lento escribiendo a sus registros de segmento, escritura que se produce con mucha frecuencia al ejecutar software de 16 bits (como Windows’95) y pocas veces al ejecutar software de 32 bits (como Windows NT). El resultado es que trabajando con Windows 95 un Pentium Pro es más lento que un Pentium clásico de la misma velocidad de reloj, pero mucho más rápido con Windows NT. La principal característica del Pentium Pro es que dentro del propio chip se incluye tanto el procesador como la memoria caché de nivel 2, los dos unidos mediante un bus de alta velocidad (se trata de un paquete cerámico con dos cavidades cuadradas que se pueden observar a simple vista). De esta forma, se consigue que el procesador sea capaz de acceder a la caché L2 a la misma velocidad del reloj del procesador. Un Pentium clásico a 200MHz accede a la caché L2 a la velocidad del bus de sistema, 66MHz, mientras que un Pentium Pro a 200MHz accede a su caché L2 a 200MHz. Además de la velocidad cuenta la cantidad, pues existen versiones del Pentium Pro con 1MB de caché L2, frente a los 512KB habituales en el caché L2 del Pentium clásico. Además el Pentium Pro puede ejecutar 3 instrucciones en cada ciclo de reloj (por las 2 instrucciones del Pentium) e incluye características de ejecución dinámica (capacidad de ejecutar instrucciones en cualquier orden, ejecutando la más adecuada según la lógica del programa). La versión más potente de Pentium Pro es de 200MHz con 1MB de caché L2. Este Pentium de 32 bits, con núcleo RISC puro, se inserta sobre zócalo ZIF versión Socket 8. Pentium MMX. En 1996 nace el P55C o Pentium MMX. Se trata de un procesador Pentium al cual se le han asignado un juego extra de 57 instrucciones que aceleran el procesamiento de vídeo, audio y gráficos, aumentando el rendimiento de las aplicaciones multimedia. Además de las instrucciones MMX, este Pentium se integra con 32KB de caché L1 (16KB para código y otros 16KB para datos), frente a los 16KB del P54C. En lo demás no cambia, manteniéndose la velocidad del bus a 66MHz e insertándose sobre Socket 7. Este procesador utiliza para su funcionamiento dos niveles de voltaje distintos, el patillaje del procesador se alimenta a 3,3 voltios, mientras que el núcleo del chip requiere 2,8 voltios. Por lo que necesita placas base con alimentación dual. Además de estar provistas de un ChipSet 430VX mínimo. Que son los primeros grabados para soportar la tecnología MMX. Aunque posteriormente Intel lanzó el conjunto de chips 430TX. Este chipset está compuesto por dos núcleos PCIset que incrementan el rendimiento de los procesadores MMX. 17 Estructura y Tecnología de Computadores Pentium® II Processor 450MHz Miguel Angel©1999-2002 Pentium II. El Pentium II aparece en el mercado a mediados de 1997 y fue conocido durante mucho tiempo con el nombre estratégico de Klamath, se trata de un procesador que se monta sobre un cartucho que incluye una caché L2 de 512KB. Es necesario diferenciarlo del Pentium Pro, en el cual existe una caché L2 personalizada y que se encuentra integrada en una de las dos cavidades del procesador. Intel, en el Pentium II, lo que hace es coger el chip convencional del procesador MMX y varios chip de memoria SRAM que servirán como caché L2, establecer un bus entre ellos, integrarlos en una pequeña placa de circuito impreso denominada cartucho SEC (Single Edge Compact) y recubrirla de una que es lo que envoltura de plástico y metal conocemos finalmente como Pentium II. El Pentium II incorpora dos buses dentro del chip y por eso se dice que tiene arquitectura DIB (Dual Independent Bus), uno es el habitual bus que conecta el procesador al bus de sistema y el otro es un bus oculto dentro del Pentium II que conecta el procesador con la caché L2. Este enfoque de dos buses permite al Pentium II aumentar la velocidad de acceso al caché L2, que ya no depende del bus de sistema (como el Pentium), aunque tampoco llega a igualar la velocidad de reloj del procesador (como en un sistema con Pentium Pro), quedándose en la mitad de la velocidad de reloj del procesador. Esto significa que un Pentium II a 300MHz accede a la caché L2 a 150MHz y no a los 66MHz habituales del bus de sistema. Está claro que el cartucho SEC donde se aloja el Pentium II y su caché L2 rompe con el tamaño habitual del Pentium clásico y el Pentium MMX, por lo que no se puede instalar sobre un zócalo Socket 7 de la placa madre. El Pentium II tiene la forma de una tarjeta de ampliación y se introduce en una ranura especial denominada Slot 1. Se requiere una placa madre especial que soporte Slot 1 y que incluya un ChipSet 440LX ó 440FX. Al igual que un Pentium MMX, el Pentium II integra 32KB de caché L1 e incluye el juego de instrucciones MMX. Como ya se ha comentado, los ordenadores con Pentium II tienen el chipset 440 LX, que permite construir placas con bus AGP para tarjetas de vídeo, con el nuevo bus de puertos USB y con discos duros Ultra DMA. Además, este chipset está preparado para soportar dos Pentium II en paralelo sobre la misma placa madre. Actualmente existen versiones a 233MHz, 266MHz, 300MHz y 333MHz. 18 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 LA TECNOLOGÍA DE LOS ZOCALOS DEL Pentium®. La aparición del Slot 1 en los procesadores Pentium II ha sido un gran motivo de controversia, pues ha recibido críticas que acusan a Intel de buscar con ello la desaparición del Socket 7, donde se han apoyado los fabricantes AMD y Cyrix para construir sus procesadores. La principal razón de esta acusación reside en que Intel no ha hecho públicas las especificaciones del Slot 1, más bien al contrario, afirma que existen patentes a nivel del sistema en el desarrollo del bus del Slot 1 (denominado bus P6). ¿Responde el slot 1 a una estrategia de marketing o a una necesidad del mercado? La respuesta es que el Slot 1 ofrece interesantes innovaciones tecnológicas, pero también es cierto que Intel ha decidido buscar las soluciones en una oferta propietaria antes que intentar mantener la compatibilidad con el Socket 7. Probablemente, lo más lógico habría sido que Intel hiciera públicas las especificaciones del Slot 1 pero la compañía no va a tomar una decisión en contra suya. La principal ventaja del Slot 1 es que utiliza procesadores conectados al caché L2 mediante un bus especial - La tecnología DIB-, lo cual aumenta la velocidad de acceso al caché L2. Como ya se ha comentado, el Pentium II permite acceder al caché L2 a la mitad de la velocidad de reloj. Es decir, un procesador a 233 MHz en un Slot 1 accede al caché a 166 MHz, mientras que un procesador a 233MHz en un socket 7 accede al caché a la velocidad del bus de sistema (66 MHz). Además de una mayor velocidad del caché L2, la ventaja de los procesadores para Slot 1 es que el bus de sistema se limita únicamente a gestionar accesos a memoria y las peticiones de los periféricos de entrada/salida, sin tener que ocuparse de la gestión del caché L2 (que es realizada por el bus especial que va entre el procesador y el caché L2). procesadores similares al Pentium Pro que incluyan dentro del mismo chip el caché L2, probablemente usando la misma velocidad de reloj. El inconveniente de este tipo de procesadores es que resulta muy difícil subir la velocidad del reloj Existen proyectos serios para crear placas madre Super 7 que incorporan un Socket 7 con un bus de sistema a 100MHz e incluyen nuevas tecnologías como AGP, USB o Ultra DMA. Pero el socket 7 se pone casi al límite con un bus a 100MHz, haciendo complicado el diseño de chipset necesario para esta tecnología (si hubiese sido tan fácil, probablemente lo habría llevado a cabo hace años Intel con el Pentium MMX). Y de todas formas, el acceso al caché L2 de un procesador Socket 7 en un bus a l00MHz, siempre será más lento que el más lento de los Pentium II (el modelo a 233 MHz accede al caché a 116 MHz). El resultado es que AMD y Cyrix tendrán que cambiar en el futuro a un nuevo zócalo, ya sea logrando la compatibilidad con el Slot 1 o diseñando uno nuevo. Con esta situación y la reciente aparición del Slot 1, no se comprende por qué intel propone otro nuevo zócalo (Slot 2) para los futuros Pentium II dirigidos a servidores y estaciones de trabajo. Y tampoco se comprende su interés en cubrir el mercado de PCs de nivel bajo-medio con ordenadores Slot 1 (basados en la gama de procesadores Celeron), cuando podían haberse utilizado perfectamente Pentium MMX a mayor velocidad o, simplemente haber dejado que bajaran los precios de los Pentium II a 233 y 266 MHz. Para luchar contra esta limitación del Socket 7 AMD y Cyrix pueden intentar aumentar el caché L1 de sus sistemas, pues ambas compañías ofrecen procesadores con 64KB frente a los 32KB del Pentium MMX y el Pentium II. Pero al final tendrán que crear 19 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 TECNOLOGIAS para 1998-1999. Pentium Deschutes. De entrada decir que no existe ningún procesador de Intel con este nombre, sino más bien Deschutes se ha utilizado por la compañía para designar procesadores creados con tecnología de fabricación de 0,25 micras destinada al Pentium II (en vez de la tecnología habitual de 0,35 micras). De hecho esta tecnología está ya superada, pues existe en el mercado el Pentium II a 333MHz con tecnología de 0,25 micras. Pentium II con bus de 100MHz. El Pentium II a 350 y 400MHz están preparados para trabajar con un bus de sistema de 100MHz. Desde los tiempos del 486 apenas había habido cambios en el bus de sistema, que se seguía manteniendo a 60 ó 66MHz. Esta lenta velocidad del bus de sistema estaba empezando a generar un cuello de botella importante, sobre todo en el acceso a la memoria RAM. Al aumentar a 100MHz el bus de sistema, se resuelve el problema, aunque requiere placas madre capaz de soportar memoria SDRAM (que está preparada, a diferencia de la EDO RAM, para trabajar con un bus de sistema de esta velocidad). Lógicamente, un cambio en la velocidad del bus de sistema exige un nuevo chipset que soporte este cambio fundamental para los componentes que rodean al procesador. Este nuevo chipset es el 440BX. Por lo que, no se podrá introducir un Pentium II /100 en las placas con chipset 440LX. Por lo demás, las características de un Pentium II con bus de 100MHz son iguales que los primeros Pentium II aparecido en el mercado, aunque, por supuesto, utilizan tecnología de fabricación de 0,25 micras (son Deschutes). Pentium II para Slot 2. Se trata del procesador que sustituye al viejo Pentium Pro como solución para sistemas servidores y estaciones de trabajo especializadas. Se trata de Pentium II /100 a 400 y 450MHz que trabajan con bus de sistema a 100MHz; permite trabajar con hasta cuatro procesadores en paralelo; incluye caché L2 de 2MB; y pueden acceder a la caché L2 a la velocidad de reloj. Además, aumentan el límite de la memoria RAM a 4GB (el Pentium II para Slot 1 sólo llega 512MB) y necesita un nuevo chipset, el 450NX. Se trata de procesadores fabricados con la tecnología de 0,25 micras. Por supuesto, el slot 2 es incompatible con el slot 1. Celeron 266. Este procesador aparece en el mercado con el propósito de posicionarse como el sustituto del Pentium MMX en la gama baja-media de ordenadores personales. A la hora de explicar sus características salta a la mente el antiguo procesador 486SX. Recordemos que un 486 normal o DX incluía un coprocesador matemático, mientras que el 486SX era un 486 con el coprocesador desactivado. El nuevo Celeron se puede considerar como un Pentium II sin caché L2 y, para abaratar los costes de fabricación, no se ha envuelto en el cartucho SEC del Pentium II. El procesador Celeron va acompañado de un nuevo chipset (440EX) que permite crear ordenadores con sólo 1 CPU, 3 ranuras ISA y 2 módulos DIMM, aunque AGP y Ultra DMA. Mendocino (Celeron 300 y 333). Este procesador que se estima aparezca a finales de 1998, lo hará en dos versiones 300MHz y 333MHz y pretende posicionarse en la gama media de usuarios domésticos y profesionales, por encima del Celeron 266 y por debajo de los Pentium II/100. Se trata de un procesador similar al Celeron, pero en el que ahora de nuevo se vuelve a añadir el caché, incorporándose 128KB de caché L2. Esta cantidad de caché puede parecer pequeña cuando de compara con los 512KB de un Pentium II, pero Mendocino puede acceder al caché L2 a la velocidad de reloj del procesador (y no a la mitad como el Pentium II). 20 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Katmai. Para el año próximo (1999) se espera la aparición de un nuevo procesador de Intel, el Katmai, que incorpora 70 nuevas instrucciones que se añaden a las MMX para aumentar el rendimiento multimedia y de los gráficos 3D. Este conjunto de instrucciones lo ha denominado Intel como Katmai o MMX2. También soportará la futura generación de memorias, ya sea SDRAM II (puede leer dos celdas de memoria en cada ciclo de reloj) o Direct Rambus DRAM (utiliza buses especiales para conseguir una velocidad 10 veces superior a la memoria DRAM convencional) . Permitirá la implantación del modo AGP 4x (que ofrece una vía de comunicación entre el procesador y la tarjeta gráfica que puede alcanzar una velocidad de transferencia máxima de 1GB/seg.). Merced. En el año 2000 aparecerá el procesador que hoy por hoy nos han dado ha conocer con el nombre de Merced, que responde a un desarrollo conjunto de Intel y Hewlett-Packard. Se trata del primer procesador de Intel de 64 bits, que utiliza un conjunto de instrucciones denominado IA64 y comenzará con una velocidad de reloj de 600 MHz. El procesador Merced soportará las instrucciones 3D del Katmai y estará fabricado con tecnología de 0,18 micras. Está recibiendo un amplio respaldo de la industria y Microsoft ya ha anunciado una versión prebeta de Windows NT 64 bits para finales de este año. LOS COMPETIDORES DE INTEL Los procesadores AMD La compañía Advanced Micro Devices es el principal competidor de Intel en el terreno de los procesadores. Tanto AMD como Cyrix sufren las consecuencias de la situación casi de monopolio por parte de Intel. En realidad, estos fabricantes producen procesadores completamente compatibles con los Intel y permiten ejecutar sin problemas todos los programas existentes. AMD K5. El procesador K5 ofrece unas prestaciones y características similares a la del Pentium clásico, e igual que él ha de considerarse ya prácticamente obsoleto. Como el Pentium, el K5 tiene el tamaño y formato para un zócalo Socket 7. Generalmente estos procesadores indican como medida de velocidad el denominado P-rating, que es una medida de velocidad comparada con los procesadores de Intel y según los resultados del test Winstone 98. Por ejemplo, un procesador PR75 indica que su rendimiento es similar a un Pentium a 75MHz. Del K5 existen modelos PR75, PR90, PR100, PR120, PR133 y PR166. Puesto que el K5 utiliza una placa base con Socket 7, el caché L2 es el caché de la placa madre, que pueden llegar a ser 512KB a los que accede según la velocidad del bus de sistema (66MHz). Hay que señalar que el K5 ofrece 24KB de caché L1 integrada en el chip, frente a los 16KB del Pentium clásico. AMD K6. La mejor definición que se podría dar del K6 es la de un "Pentium II para Socket 7". Es decir, el K6 ofrece un rendimiento similar a los Pentium II, con la ventaja de poder emplearse en las placas madre que utilizan Socket 7, lo cual protege la inversión que se hubiera realizado en esta tecnología. La mayoría de las placas madre con Socket 7 actuales están preparadas para trabajar con Pentium, Pentium MMX, AMD K6 y Cyrix 6x86MX, incluso detectando al arrancar el tipo de procesador incorporado. El K6 no fue diseñado inicialmente por AMD, que se encontró con problemas en el desarrollo del K5 y compró la compañía NexGen por su procesador Nx686, que es la base del K6. 21 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Este procesador, al igual que ocurriera con el Pentium MMX, utiliza para su funcionamiento dos niveles de voltaje distintos, el patillaje del procesador se alimenta a 3,3 voltios, mientras que el núcleo del chip requiere 2,8 voltios. Por lo que necesitará placas base con alimentación dual y estar provistas de un ChipSet 430VX mínimo. El K6 incluye el conjunto de instrucciones MMX y tiene 64KB de caché L1 frente a los 32KB de un Pentium II. Existen modelos a 166, 200 y 233MHz (en el K6 no se utiliza el P-rating y esa velocidad de reloj les posiciona al mismo rendimiento que los Pentium II de igual velocidad de reloj). A igualdad de velocidad de reloj, un K6 es más rápido que un Pentium MMX, pero un poco más lento que un Pentium II. Este rendimiento inferior respecto al Pentium II se debe a que el K6 es más lento gestionando las instrucciones MMX y en punto flotante (entre otras cosas, porque el PentiumII puede ejecutar 3 instrucciones por ciclo de reloj, frente a las 2 del K6), y porque todos los procesadores Intel tienen unidades en coma flotante (FPU) con pipeline (es decir, que pueden iniciar una segunda instrucción mientras esperan los datos de la instrucción actual), mientras que los procesadores AMD y Cyrix no soportan esta característica. De todas formas la gran ventaja del K6 es que es mucho más económico que el Pentium II. AMD K6 3D. Se ha presentado una nueva versión del K6, se trata del K6 3D, en versiones a 300 y 350MHz y que añade 24 nuevas instrucciones en el procesador para acelerar la gestión 3D en gráficos, audio, vídeo y otras aplicaciones multimedia. Es importante señalar que ese conjunto de instrucciones multimedia son propiedad de AMD y por tanto diferentes e incompatibles con las instrucciones MMX2 del procesador Katmai, por lo cual los programadores tendrán que elegir entre utilizar un juego de instrucciones u otro. El K6 3D necesita un bus de sistema de 100MHz, lo cual exige placas base con un nuevo chipset, por ejemplo, el AMD 640 o un futuro chipset que creara el fabricante. En este sentido, es fundamental para el desarrollo de los procesadores futuros de AMD y Cyrix la aparición de las denominadas placas base Super 7, que son placas con zócalos Socket 7 pero con todas las novedades que incorporan las nuevas placas base con Slot 1, es decir, bus de 100MHz y soporte de AGP, USB y Ultra DMA. Otros procesadores son los de la marca Cyrix, como el M1, equivalente al Pentium clásico ó el M2, que es la alternativa de Cyrix a los Pentium II. La apuesta más revolucionaria de esta marca es el procesador Cyrix MediaGX, que incorpora dentro del mismo procesador un chip de sonido, uno de gráficos, el controlador de memoria y el chipset PCI. Además incorpora el conjunto de instrucciones MMX. Con esto se consigue que los gráficos se procesen a la velocidad de reloj del procesador. Además, no es necesaria caché L2 ni VRAM (memoria de vídeo) porque el controlador de memoria dentro del chip permite acceso directo a la memoria RAM, que sirve como memoria de vídeo. 22 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 MICROPROCESADORES x86 Figura 10. 1.600.000 DESARROLLO DE LA FAMILIA “x86" Número de transistores 486DX2 MIPS 120 32 80486 32 80386 4 32 275.000 80286 1 16 120.000 80186 16 80188 8086 27.000 0.2 16/8 16 8088 8085 8080 4.000 16/8 8 8 74 76 78 82 85 89 92 Año El 80286 sirve de puente entre el 8086 y los microprocesadores avanzados que vendrían después. Los recursos técnicos introducidos en el 8086 y que sirvieron para construir el 80286 son cruciales para concebir e implementar los microprocesadores de 32 y 64 bits. Las características más sobresalientes del 80286 son: 1. MEMORIA VIRTUAL 2. DOS MODOS DE TRABAJO: - Modo real - Modo protegido virtuales 3. PROCESADOR NUMÉRICO DE 80 BITS (80287) con direcciones FAMILIA HARDWARE DEL 286. 80286 CPU 82284 Generador de reloj 82288 Controlador del bus 82289 Arbitro del bus 80287 Coprocesador matemático 82258 Controlador de DMA 8207 Controlador RAM dinámica 8206 Unidad de detección/corrección error 286/10 Tarjeta microcontroladora 23 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 ARQUITECTURA DEL 8086. Intel introdujo por primera vez en el 8086 el funcionamiento segmentado ( segmentación de la memoria ), que consiste en dividir un proceso en partes y construir unidades para el tratamiento de cada parte, permitiendo trabajar simultáneamente a dichas unidades y dando lugar a una aceleración en el tiempo total de realización. Se trata de un paralelismo implícito, similar al que se usa en el acabado de un automóvil en una cadena de fabricación en serie. Internamente el 8086 está formado por dos unidades o procesadores independientes: 1. La unidad de ejecución: encargada de ejecutar instrucciones procedentes de la cola de instrucciones. 2. La unidad de interfaz con el bus: realiza todas las transferencias con el bus del sistema. Se encarga de direccionar la memoria y las E/S para soportar las transferencias de información. Estructura interna simplificada del 8086. UNIDAD DE EJECUCIÓN UNIDAD DE INTERFAZ DEL BUS REGIST ROS DE SEGMENTOS BANCO REGISTROS GENERALES PUNTERO DE INSTRUCCIONES GENERACIÓN DE DIRECCIO NES OPERANDOS S E Ñ A LI Z A D OR E S BUS DEL SIST EMA COL A DE IN S T R U C C IO N E S ALU Figura 11. Arquitectura segmentada del 8086. Las dos Unidades que le conforman son independientes y trabajan en paralelo. LOS REGISTROS Se dividen en 4 grupos: 1. De Datos ( AX, BX, CX, DX) 2. De Punteros e índice ( SP, BP, SI y DI ) 3. Registros de segmento y puntero de instrucciones (CS, DS, SS, ES e IP ) 4. De Estado (Señalizadores). 24 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Registros de datos AX: Acumulador → está dedicado a las operaciones BX: Base → se usa como puntero base en el direccionamiento de memoria CX: Controlador → contador de interacciones DX: Datos → se usa en operaciones y en direccionamiento para E/S Registros puntero e índice SP: Puntero de pila BP: Base en el direccionamiento de la pila SI: Índice fuente en la segmentación DI: Índice destino en la segmentación Registro de segmento y puntero de instrucciones El 8086 utiliza el método de la segmentación para manejar la memoria. Dicho método consiste en asignar varios trozos de tamaño variable de la memoria ( segmentos ) a cada programa; cada trozo o segmento guarda un tipo de información concreta. Así existe un segmento de código que guarda los códigos OP de las instrucciones, otro segmento de datos, que guarda los datos, otro segmento de pila, que implementa la zona de memoria que actúa como pila en saltos a subrutinas, interrupciones, etc. Cada programa o procedimiento dispone de varios segmentos, cada uno de los cuales puede alcanzar un máximo de 64kb de memoria. Figura 12. 00000 H MEMORIA CS SEGMENTO DE CÓDIGO DS Bases de los 4 segmentos SEGMENTO DE DATOS 1 MB SS SEGMENTO DE PILA ES FFFFF H SEGMENTO EXTRA MEMORIA SEGMENTADA DEL 8086 La base de un segmento se obtiene a partir del contenido de uno de los 4 registros de la CPU, llamados registros de segmento. Las memorias que actualmente se utilizan en los sistemas digitales son circuitos integrados LSI. 25 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 La memoria de Lectura/Escritura Introducción Se trata de un tipo de memoria, que a diferencia de la ROM, su información puede ser leída o escrita tantas veces como se desee, y además, su contenido se altera en caso de faltar la alimentación de la misma. Se dice que son “volátiles”. Se las conoce generalmente con el nombre de memorias RAM, Random Access Memory (memoria de acceso aleatorio). Esto es, se puede acceder a cualquier posición, en cualquier momento, sin seguir ningún orden en particular. Memoria RAM estática. En síntesis, la estructura interna de filas y columnas es similar a las ROM. La diferencia se encuentra en la construcción de las celdas que, si bien aquellas consistían en la conexión o desconexión de un diodo, en estas la estructura se basa en una báscula electrónica o flip-flop del tipo D, capaz de almacenar un bit 1 ó 0 temporalmente. Por definición una memoria RAM es una memoria de lectura/escritura, ya que una báscula puede ser leída o escrita tantas veces como sea necesario. También es volátil ya que si a un flip-flop, al cual se le ha cargado una información, se le interrumpe la tensión de alimentación, al restaurarla, puede quedar aleatoriamente a1 ó 0. Si tenemos en consideración que un chip contiene miles de esos flip-flop, es lógico pensar que es imposible que todos ellos se restauren con lo que tenían originalmente. C7 C6 C5 C4 C3 C2 C1 C0 D Q CLK 0 LÍNEAS DE DIRECCIÓN 1 2 3 R /W PUERTA DE ENTRADA / SALIDA LÍNEAS DE CS DATOS Figura13. En la figura se muestra la arquitectura interna de una memoria RAM estática. 26 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Direccionamiento A través del bus de direcciones, la CPU envía la posición de memoria a la que se desea acceder. Esta es decodificada internamente para seleccionar a una de las múltiples filas. Esto implica la activación de los flip-flop que la componen, de forma que sólo ellos sean capaces de reaccionar. Seguidamente, el procesador envía la orden de lectura/escritura (R/W) a la puerta de entrada/salida de manera que la información entra desde el exterior hacia la posición seleccionada (Write, nivel “0”) o desde ésta al exterior (Read, nivel “1”). En ambos casos, la información estará disponible siempre que la señal CS (Chip Select) esté activa (normalmente a “0”). El número de posiciones de que dispone un determinado modelo se obtiene, al igual que en las ROM, elevando 2 al número de líneas de direcciones que tenga el chip. En cuanto al número de columnas o bits por fila, hay que señalar que, si bien en las ROM era de 8, en las RAM estáticas puede ser de 1, 4 u 8. Memoria RAM dinámica. Se trata de otra forma de almacenamiento de información binaria que puede ser modificada en cualquier momento y, desde luego, estamos ante una memoria volátil al igual que la anterior. En este caso, en lugar de emplearse un flip-flop como célula básica de almacenamiento, se emplea un condensador, conectado al terminal de surtidor de un FET, que se carga (nivel “1”) o se descarga (nivel “0”) según convenga. En la siguiente figura (fig.14) se muestra la configuración interna de este tipo de memoria RAM. Es necesario señalar, independientemente del número de filas que contenga, que por lo general sólo se manipula un bit de información por cada una de estas filas. Cn C2 C1 C0 RAS Di LINEA DE DATOS LINEAS DE DIRECCION WE RAS DECODIFICADOR DE COLUMNAS CAS Di - Do CAS DATO Figura 14. 27 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Internamente, existen dos decodificadores, uno para las filas y otro para las columnas. Ambos comparten las mismas líneas de direcciones del chip. En un primer lugar, por ellas debe darse, junto con la señal RAS activa a “0” (selección de filas), el número de la fila a la que se desea acceder. Tras un corto intervalo de tiempo (entre 20 y 100 ns), se proporciona, por las mismas líneas de direcciones y junto con la señal CAS activa a “0” (selección de columna), el número de columna a la que se desea acceder. Ambas coordenadas, filas-columnas, seleccionan una y sólo una de las múltiples células. Al mismo tiempo, la señal WE = 0, indica si se trata de leer o escribir sobre ella. Este tipo de dispositivos suelen disponer de dos patillas, una de entrada de bit (Di) para el caso de escritura y otra de salida (Do) para el caso de lectura. En los montajes prácticos, ambas patillas suelen estar unidas. No existe señal CS como en dispositivos anteriores, para dar por válido un acceso, es necesaria la secuencia completa de RAS – CAS junto con WE. Dado que para acceder a un único bit de información, ya sea en lectura o en escritura, es necesario realizar un doble acceso, primero para seleccionar la fila y luego la columna, el hardware utilizado entre el bus de direcciones de la CPU y las propias líneas de dirección del micro, está basado en un multiplexor que envía primero la dirección de filas y luego la de columnas más un circuito retardador encargado de generar la conmutación RAS / CAS. Capacidad de una memoria Las memorias se caracterizan fundamentalmente por el número de posiciones que la constituyen. Es necesario, en primer lugar, distinguir entre capacidad total y número total de posiciones disponibles. Se llama capacidad total al número de bits que una memoria puede almacenar. Por consiguiente, siempre será mayor la capacidad total que el número de posiciones, salvo en el caso de que el número de bits por posición sea uno. En estas circunstancias, ambos conceptos son coincidentes. En general, si llamamos n al número de bits de cada posición y m al número de posiciones, la cantidad total de bits, a la que denominaremos N, será: N=n·m La operación de selección de una determinada posición de memoria se denomina direccionamiento. El bus de direcciones o, dicho de otra manera, la cantidad de líneas necesarias para direccionar las m posiciones de una memoria será n, de tal forma que siempre debe cumplirse la siguiente igualdad: n1 2 =m Las memorias son conocidas por el número de posiciones que las forman y por la longitud del dato o palabra que es capaz de almacenar en cada posición de memoria. Así la expresión 32 x 4 referida a una memoria indica que es un dispositivo de 32 posiciones (m = 32) cuya longitud de palabra es de 4 bits (n = 4). La cantidad de posiciones de las memorias de gran capacidad se mide en Ks. 1K equivale a 1024 posiciones, y para direccionar todas ellas se necesitan diez líneas o variables binarias, ya que: 10 2 = 1024 28 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 La letra K como prefijo de la capacidad de una memoria tiene el mismo significado que la K utilizada como medida de otras magnitudes físicas; se ha 10 escogido el valor 1024 = 2 porque es la potencia de 2 que más se aproxima a 1000. Cuando la longitud de la palabra es de 8 bits, es decir, un byte, la capacidad se mide en kilobytes. La capacidad expresada en Ks de una memoria que utiliza n1 variables binarias para direccionar todas sus posiciones será: n1 -10 2 De manera que una memoria con n1 = 14 entradas de selección tendrá una capacidad de 16K posiciones. Por último, volviendo al concepto de capacidad total, calcularemos el número de bits de una memoria de 16 kilobytes, es decir, 16 x 8, expresado de manera más general: N = 16 x 1.024 x 8 = 131.072 bits. Configuración externa de una Memoria A continuación se muestra simbólicamente una memoria RAM con sus correspondientes entradas/salidas de direcciones, datos y control. La diferencia entre esta y una ROM reside en la ausencia, en el caso de esta última, de la entrada de control R/W que permite leer o escribir en función del nivel lógico aplicado. Memoria Direcciones n1 RAM E/S de datos n R/W CS Control Figura 15. Este dispositivo tiene comunes las entradas y las salidas de datos. El valor de la letra n depende de la longitud de las palabras o datos que pueden escribirse o leerse en cada posición. Existen memorias con entradas y salidas independientes. Las líneas de selección para el direccionamiento de cada uno de los registros están representadas por n . Su valor depende del número de posiciones que constituyen la memoria. 29 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Las entradas de control de este dispositivo son CS (Chip Select) y la ya mencionada R/W (Read/Write). A0 -A9 10 RAM 1Kx8 CS R/W 8 RAM 1Kx 8 CS R/W RAM 1Kx8 8 CS R/W 8 D0 - D7 8 R/W A 10 A0 - A12: Líneas de dirección D0 - D7: Líneas de datos 0 A 11 A 12 1 E: entrada de habilitación E 7 Unidad de memoria RAM formada por ocho pastillas de 1K x 8 cada una. Figura 16. En la fig.16 se muestra el esquema de conexión de una unidad de memoria de lectura/escritura, constituida por ocho chips o pastillas de 1K x 8. El número total de posiciones o palabras será de 8K, es decir, de 8.192 bytes. La selección, como ya hemos señalado, se realiza mediante las líneas de dirección del sistema. El número total de líneas constituyen el bus de direcciones y su amplitud depende fundamentalmente del tipo de microprocesador que se utilice. Un sistema cuyo bus de direcciones sea de 16 líneas tendrá capacidad para seleccionar 64K, o sea, 65.536 palabras. En el esquema indicado se utiliza un decodificador de tres entradas y ocho salidas. Además dispone de una entrada E (enable) de habilitación. El número total de líneas de dirección es de trece ( A0 – A12). Las diez primeras se utilizan para seleccionar cada una de las 1.024 palabras de cada pastilla y las tres restantes para seleccionar cada uno de los ocho circuitos. Como se puede comprobar, las salidas de todos los chips están unidas al mismo bus de datos. Esto es posible gracias a las propiedades de los buffer triestado que forman parte de la arquitectura interna de los circuitos de memoria. CIRCUITO 2114 A DE INTEL El circuito 2114 A fabricado por la compañía INTEL es una memoria de acceso aleatorio de lectura/escritura organizada en 1.024 palabras de 4bits cada una. Está construida en HMOS, que es una variante, con altas prestaciones, de la tecnología MOS. Los terminales de entrada y salida son comunes. 30 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 En la figura 17 se muestra el diagrama de conexión y el símbolo lógico. A6 A5 A4 A3 A0 A1 A2 CS GND 1 2 3 4 5 6 7 8 9 2114 A 18 17 16 15 14 13 12 11 10 Vcc A7 A8 A9 I/O 1 I/O 2 I/O 3 I/O 4 WE A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 WE I/O 1 I/O 2 I/O 3 I/O 4 CS Figura 17. Las entradas de control se denominan: WE (Write Enable) y CS (Chip Select). El circuito queda habilitado para escribir en él, cuando se aplica un nivel lógico cero en la patilla WE. Con el mismo nivel, aplicado a la entrada CS, el circuito queda seleccionado de entre todos los que componen el sistema de memoria. Refresco de Memoria Al margen de lo estudiado hasta ahora en cuanto a la configuración y modo de direccionamiento de este tipo de memorias, recordemos que se tratan de células elementales basadas en un condensador, que se carga o no dependiendo de la información que vaya a almacenar. En la práctica, ningún condensador es perfecto y todos, con el tiempo tienden a perder su contenido. Si se dejara que esto ocurriese en las memorias dinámicas, estas perderían continuamente su información. Se hace precisa una circuitería auxiliar que cada cierto tiempo produzca lo que se llama un ciclo de refresco, consistente en recargar todos los condensadores. Dicho ciclo debe producirse cada 4mS aproximadamente. Consiste simplemente, en pasar por todas las filas del dispositivo en modo de lectura. Esto es suficiente para refrescar, a su vez, todas las columnas. Evidentemente, la CPU no debe hacer uso de la memoria durante un ciclo de refresco ni emplear por tanto los buses. Estos serán controlados por esa circuitería auxiliar basado fundamentalmente en un contador. Cuando se recibe una orden de refresco, que puede venir dada periódicamente por un temporizador, la CPU se desconecta de los buses y los toma, a cambio, un contador. Éste, partiendo de 0, comienza una cuenta, descendente, que se va aplicando a las líneas de direcciones del banco de memoria a refrescar. Al mismo tiempo, se aplica la 31 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 señal RAS. En principio, y según el fabricante, esto es suficiente ya que se refrescan también las columnas de cada fila. En la práctica, cuando la CPU realiza un ciclo de lectura/escritura se produce un refresco espontáneo de la fila - columna direccionada. Siguiendo con el ejemplo, cuando el contador vuelva a pasar por 0, se supone finalizado el ciclo de refresco, por lo que el contador se desconecta de los buses cogiéndolos nuevamente la CPU. La secuencia se debe ir repitiendo constantemente cada cierto tiempo. Ciclo de Memoria Ciclo de lectura: comienza cuando se aplica una dirección de filas acompañada de una transición de señal RAS, pasando de “1” a “0”. A continuación, se aplica una dirección de columna acompañada de la señal CAS que también pasa de”1” a “0”. Tras un tiempo de acceso que depende del tipo de chip, aparece el bit de la célula seleccionada por la patilla Do. Este es estable mientras CAS se mantenga activada. La entrada WE debe permanecer en todo momento inactiva “1”. Cuando CAS pasa a “1” (inactiva), se da por terminado el ciclo y la salida queda en alta impedancia. Ciclo de escritura: es similar al de lectura con la diferencia de que la señal WE debe permanecer activa “0” mientras lo esté CAS. Ciclo de refresco: consiste en ir seleccionando y recorriendo todas las filas cada cierto tiempo (unos 4ms), junto con la señal RAS activa (“0”). Cuando se selecciona una, origina el refresco de todas las columnas que la componen. Es decir, no hace falta recorrer todas las células del chip. En cualquier caso, cualquier acceso normal de lectura/escritura sobre cualquier celda, origina automáticamente su refresco. System memory Extended Memory 1024K 15FFFFh Reserved Area for Display Memory, and ROM BIOS 640K Configuración de la memoria Memoria convencional: memoria base. 7FFFFh 8MB 0K Base Memory used by DOS and Application Programs 9FFFFh 00000h Se conoce como memoria convencional la memoria RAM situada entre las direcciones 00000h y 9FFFF h., es decir, los 640k primeros del mapa de memoria. El sistema operativo MS-DOS, en sus diferentes versiones, sólo es capaz de “ver” y gestionar hasta 1MB, límite que impone el microprocesador 8088. Dentro de esta área, se alojan, en primer lugar los vectores de interrupción empleados por el BIOS y el sistema operativo. Estos vectores contienen las direcciones de inicio de diferentes rutinas y tratamientos. Físicamente esto se encuentra en el primer K de memoria, sin ellos, es decir, si fallaran los chips del banco 0, el sistema ni tan siquiera arrancaría. Por encima de los vectores, el BIOS y el DOS van guardando datos y variables temporales. Más arriba queda instalado el núcleo del DOS, en el momento que éste se carga al encender la máquina. En el intervalo de 1024 y 1088K, (memoria extendida). Finalmente, se alojan los datos y programas de aplicación del propio usuario. La longitud de éstos dependerá de la cantidad total de memoria RAM que haya instalada. 32 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Memoria reservada: memoria superior. En términos generales se trata del espacio comprendido entre los 640K y el MB máximo que puede gestionar el micro 8088, es decir, desde la posición A0000h. hasta la FFFFFh. Memoria extendida (XMS) La memoria convencional y reservada está condicionada por las características propias del procesador 8088, que sólo puede gobernar hasta 1 MB de memoria en total. De la misma manera, la memoria extendida tiene su origen en los procesadores que se emplean en la construcción de las máquinas AT: el 80286 y el 80386. El 80286, dispone de un bus de direcciones de 24 líneas que le hacen capaz de gobernar 16MB, (224 = 16.777.216), y el 80386 posee otro de 32 líneas, con lo que su capacidad se sitúa en los 4GB, (232 = 4.294.967.296), 4096MB. Las máquinas con este tipo de procesadores utilizan los primeros 640K como memoria convencional y los 384K siguientes como reservada, según lo visto anteriormente. La memoria extendida es la que está situada por encima del primer mega. Es propia de los procesadores 80286 y 80386 y, por tanto un XT no podrá tener este tipo de memoria. Este tipo de memoria, bajo DOS, suele ser utilizada como “Disco Virtual” o “Disco RAM”. Otros sistemas operativos (OS/2, UNIX, etc.) la pueden emplear en otras aplicaciones. Memoria expandida Fig. 18 4GB MEMORIA 16MB EXTENDIDA BIOS 1MB MEMORIA RESERVADA 640KB MEMORIA Se trata de un pequeño “truco” MEMORIA OCUPADA CONVENCIONAL POR EL SIST. OP. que se propuso en su día por O MEMORIA BASE varias compañías fabricantes 8088 80286 80386 de software, (Lotus, Intel, Microsoft, LIM y otras) para conseguir que los programas en RAM bajo DOS pudieran superar el límite de los 640K. Recibe el nombre de EMS (Expanded Memory Specification). Se trata de una memoria RAM totalmente independiente, que según las especificaciones EMS v4.0 puede llegar hasta los 32MB. La memoria expandida se encuentra localizada dentro de la memoria superior. Desde el DOS, con solo teclear un comando podemos llegar a conocer la configuración exacta que soporta un ordenador cualquiera: si desde el directorio raíz tecleamos Mem (c:\>mem), podemos observar algo parecido a lo que se muestra a continuación: 33 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 (C)Copyright Microsoft Corp. 1981-1995. C:\WINDOWS>cd.. C:\>mem Tipo de memoria Total Usada Libre ------------------------ ---------- ---------- ----------Convencional 640K 108K 532K Superior 0K 0K 0K Reservada 384K 384K 0K Extendida(XMS) 31.744K 216K 31.528K ------------------------ ----------- ---------- ----------Memoria total 32.768K 708K 32.060K Total por debajo 640K 108K Expandida total (EMS) Expandida libre (EMS) 532K 31M (32.997.376 bytes) 16M (16.777.216 bytes) Mayor tamaño de programa ejecutable: 532K (544.880 bytes) Mayor bloque de memoria superior libre: 0K (0 bytes) MS-DOS es un programa residente en el área de memoria alta. C:\> Esta memoria puede emplearse para contener datos y programas. Mediante un software o hardware adecuado, se consigue que la información de esta memoria expandida pueda ser trasladada a áreas de la memoria convencional, 16MB ó 4GB cuando sea necesario, en bloques de 16K. MEMORIA EXTENDIDA El funcionamiento consiste 1024K en detectar bloques de la ÁREA DE ROM (BIOS, BASIC, ETC.) memoria convencional que, 960K MEMORIA 192K DE RAM en un momento dado no se PARA INTERCAMBIO (12 pág. De 16 K) emplean, e intercambiarlos 768K EXPANDIDA por bloques de la ÁREA DE VIDEO - RAM extendida, que si se usan. (2048 páginas de 640K De esta manera se 16K máximo) 384K de RAM consigue engañar al DOS, PARA INTERCAMBIO (24 pág. De 16K) ya que sólo ve la SOLO CON HARDWARE ESPECIAL MEMORIA convencional pero, en ésta BASE 256K dispone de información que 256K de MEMORIA RAM había en la memoria CONVENCIONAL expandida gracias al cambio de banco que se ha producido. Cuando se necesita otra información, se origina un nuevo cambio de bloque, y así sucesivamente. 32MB 0K 34 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 Aparentemente, el programa, y los datos que está manipulando el DOS, puede ser muy superior a la memoria que él reconoce. Este mecanismo también es conocido con el nombre de Memoria Virtual. En la figura 19 se representan los mapas de memoria correspondientes a las especificaciones EMS v4.0 de Octubre de 1987. LA MEMORIA CACHÉ Existen cachés de muy diversas formas y tamaños, pero todas se diseñan con una única finalidad: acelerar los accesos de la CPU a los datos que se utilizan con más frecuencia. La secuencia es la siguiente: mientras la CPU accede a los datos contenidos en la RAM, el controlador de caché copia los datos y, según su algoritmo de control, también las instrucciones consecutivas o relacionadas. Como resultado, se consigue que la próxima vez que la CPU necesite la información, ésta se encuentre en el caché. Además, debido a que el caché externo es más rápido que la RAM, el acceso de la CPU a los datos se realizará a mayor velocidad. Existen numerosos tipos de arquitecturas de caché y otros cuantos diseños de escritura en caché. La arquitectura de caché determina el método que ha de seguirse para organizar y localizar los datos de la RAM en el interior del caché. Los tres diseños más frecuentes son el de mapeado directo, el de asociación de grupos y el de asociación completa. El diseño de la escritura en caché establece cuándo y con qué frecuencia escribe el caché en la memoria principal datos que han sido alterados por la CPU. Los diseños principales son sólo lectura y lectura/escritura (Write-Back). ARQUITECTURAS Con el caché de mapa directo, una posición específica en el interior del caché corresponde a varias posiciones determinadas dentro de la memoria principal. Esto significa que cuando la CPU requiere unos determinados datos, el caché tiene que desplazarse a dicha posición dentro de sí mismo para obtener la información, de forma que se ahorra tiempo. El inconveniente de este tipo de caché es que como varios bloques de datos dentro de la RAM corresponden a la misma posición en el caché, si un programa accede a dichos datos, el caché estará constantemente en funcionamiento llamando a la memoria principal. De este modo no se obtiene un beneficio global. Con el caché totalmente asociativo, se pueden situar bloques de datos de la memoria principal en cualquier bloque libre dentro del caché. La ventaja es que la información a la que se ha accedido más recientemente suele estar presente en el caché, pero el inconveniente consiste en que la búsqueda es lenta, ya que el caché debe iniciar una búsqueda indexada para localizar los datos. En un caché asociativo por grupos se combina elementos de las dos arquitecturas anteriores: se divide en dos, cuatro u ocho grupos, que tienen diversas posiciones, cada una de las cuales alberga un bloque de datos. Cada bloque dentro de la memoria principal puede estar en cualquiera de los grupos, pero sólo puede estar en una posición dentro de un grupo. Por ejemplo, un caché asociativo en grupos de dos vías tiene dos grupos, por lo que tiene dos posiciones posibles en las que un determinado bloque de datos puede residir. De este modo el tiempo de búsqueda se reduce, y es menos probable que los bits de datos utilizados con más frecuencia se sobrescriban. El inconveniente es que estos cachés son más difíciles de desarrollar. 35 Estructura y Tecnología de Computadores Miguel Angel©1999-2002 LECTURA FRENTE A ESCRITURA La CPU se encarga de actualizar con frecuencia la información de un caché. Los cachés pasan estos cambios a la memoria principal mediante uno de dos métodos de escritura principales: lectura o lectura/escritura. En un caché de sólo lectura, cada vez que la CPU devuelve un bit de datos cambiado al caché, el caché actualizará dichos datos en sí mismo y en la memoria principal. En un caché de lectura/escritura, el caché almacena el bloque de datos cambiado en sí mismo pero lo actualizará en la memoria principal sólo en determinadas circunstancias: cuando al bloque de datos completo deba ser sobrescrito porque un bloque más reciente deba reemplazarlo, cuando otra parte del sistema, como el dispositivo de bus master, trate de acceder a dicho bloque de datos desde la memoria principal o, en ocasiones, cuando el algoritmo controlador determine que los datos han estado esperando demasiado tiempo para ser actualizados. Caché de mapa directo Memoria principal 110 Memoria principal Dos o más bloques pueden asignarse a la posición específica del caché, pero dicha posición sólo puede albergar un bloque cada vez. El caché tiene que desplazarse a una única posición para buscar la información ? 110 La CPU busca el bloque de datos 110. CPU Caché totalmente asociativo Memoria principal Cada bloque de datos puede almacenarse en una o dos posiciones del caché. 110 Caché externo (L2) Caché externo (L2) 110 Caché asociativa en grupos de dos vías Cualquier bloque puede almacenarse en cualquier posición dentro del caché. 110 Caché externo (L2) 110 El caché debe buscar una posición en cada grupo para localizar la información. ? 110 La CPU busca el bloque de datos 110. 110 ? 110 El caché debe buscar en todos sus bloques para localizar un bloque de datos determinado. La CPU busca el bloque de datos 110. CPU CPU Figura 10. 36