INFORMTICA Tema 5: El Pentium a Fondo Carlos Garre y David Miraut 1 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Jerarqua de Memoria Jerarqua de memoria del Pentium: Registros del microprocesador. Memoria principal: Memoria segmentada. Mecanismo de paginacin. Memoria cach. C o n t e n i d o s 2 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registros del Microprocesador 7 registros de propsito general: AX, BX, CX, DX, BP, DI, SI 16 bits. EAX, EBX, ECX, EDX, EBP, EDI, ESI 32 bits. RAX, RBX, RCX, RDX, RBP, RDI, RSI 64 bits. AH, AL, ... Parte alta y parte baja (1B) del registro AX. No hay acceso independiente a los 16 MSb de EAX, EBX, ... C o n t e n i d o s 3 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registros de la Pila Las operaciones de la pila utilizan hasta 3 registros: SS (Stack Segment): Direccin de comienzo del segmento de pila en memoria. ESP (Extended Stack Pointer): Desplazamiento dentro del segmento de pila: PUSH decrementa ESP. POP incrementa ESP. Se utiliza implcitamente en instrucciones de subrutina y tratamiento de interrupciones y excepciones. EBP (Extended Base Pointer): Si pasamos a pila una estructura de datos, apunta al comienzo de la estructura (ESP apuntar al final). Su uso es opcional. Esquema en la pizarra... 4 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registros para manejo de Strings Los registros EDI y ESI estn pensados para trabajar con cadenas de caracteres: ESI: Direccin de comienzo de una cadena de origen. EDI: Direccin de comienzo de una cadena de destino. MOVS Copia la cadena apuntada por ESI a la cadena apuntada por EDI. CMPS Compara las dos cadenas apuntadas por ESI y EDI. 5 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Puntero de Instruccin El registro EIP (Extended Instruction Pointer) es un contador de programa (PC): En modo protegido, se utiliza EIP, de 32 bits Hasta 4GBs. En modo real, se utiliza IP, de 16 bits Hasta 64KBs: Intros de 64KB Vdeo. El registro CS (Code Segment) sirve de base para el segmento de cdigo, y EIP es el desplazamiento. 6 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registro de Estado El registro EFLAGS, de 32 bits, contiene: Sealizadores de estado, controlados por la ALU: acarreos paridad cero signo desbordamientos. Sealizadores de control del sistema: Control de interrupciones Modos de operacin Problemas de alineamiento de memoria Etc... 7 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registros de Segmento Segmentos: trozos de la memoria de tamao variable que contienen el mismo tipo de informacin. 3 tipos de segmentos: De pila. De cdigo. De datos. El Pentium controla 6 segmentos, con 6 registros de segmento de 16 bits: 8 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Registros de Segmento (II) Estructura de los registros de segmento: RPL: 2 bits que indican el nivel de privilegio del segmento. 9 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Otros Registros del Pentium Registros de tablas del sistema: para manipular las tablas que maneja el S.O. en modo protegido GDTR, IDTR, LDTR, TR. Registros de control: determinan el modo de operacin del Pentium y las caractersticas de la tarea en ejecucin CR0..CR4. Registros de depuracin: los utiliza el programador para depurar (puntos de ruptura) DR0..DR7. Registros de prueba de la TLB: Permiten leer y escribir en la TLB TR6 y TR7. Registros especficos del Pentium: Registros de 64b para acceder a caractersticas especficas de cada procesador. Son accesibles mediante las instrucciones RDMSR y WRMSR TR1 y TR2. 10 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Jerarqua de Memoria Jerarqua de memoria del Pentium: Registros del microprocesador. Memoria principal: Memoria segmentada. Mecanismo de paginacin. Memoria cach. C o n t e n i d o s 11 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Memoria cach El Pentium original contiene dos cachs de nivel 1 (L1): Cach de datos: 8KBs y bus de 64 bits. Cach de instrucciones: 8KBs y bus de 256 bits. Se conecta con los registros de prebsqueda de instrucciones. Cada cach dispone de su propia TLB. Se puede hacer un acceso simultneo a ambas cachs. En los siguientes procesadores, fue aumentado el tamao de la cach de nivel 1, hasta 32KBs + 32KBs. La arquitectura NetBurst (Pentium 4) sustituye la cach de instrucciones por una cach de traza: Almacenar microinstrucciones en lugar de instrucciones. Nos ahorramos hacer de nuevo la etapa de decodificacin. 12 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Estructura de la cach Controlador de cach: encargado de gobernar cada uno de los elementos de la memoria cach (algoritmos y activaciones de buffers). Elementos de cach. cada elemento de cach consta de: Bloque de datos: almacena rplicas de datos de memoria principal. La informacin se agrupa en lneas, y cada lnea contiene varios datos. Cuando se habla de tamao de la cach, se habla del tamao del bloque de datos. Bloque de etiquetas: lista de direcciones de memoria que estn almacenadas en el bloque de datos. Contiene slo los bits ms significativos. Hay una etiqueta por cada lnea. Lgica de control: comparadores de tantos bits como tenga la etiqueta. De esta manera se controla qu datos estn o no estn ya copiados en la cach. 13 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Estructura de la cach (II) 14 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Organizacin de la cach en el Pentium Mtodo de organizacin: definicin de cmo deben ser almacenados los datos en la cach. Para localizar un elemento en la cach Funcin que convierta la direccin de la memoria principal en una posicin de cach. El Pentium utiliza una cach asociativa de N vas: Tambin conocida como asociativa por conjuntos. La cach se divide en conjuntos: cada conjunto contiene N lneas. La memoria principal se divide en grupos: cada grupo contiene N bloques de memoria. N: Nmero de vas. En el caso del Pentium, N = 2. El Pentium III tiene 4 vas para la cach de instrucciones y 2 para la de datos. 15 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Organizacin de la cach en el Pentium (II) Cada va tiene 128 etiquetas. Cada lnea tiene 32 bytes. Cada etiqueta es de 22 bits: 20 bits de direccin 2 bits de atributos: WP = Write Protect. V = Valid. 16 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Organizacin de la cach en el Pentium (III) Cada va tiene 128 etiquetas. Cada lnea tiene 32 bytes. Cada etiqueta es de 22 bits: 20 MSBs de direccin. 2 bits de atributos: WP = Write Protect. V = Valid. Direccin fsica: A31-A0: A31-A12 (20 bits): Etiqueta. A11-A15 (7 bits): Conjunto. ndice en el acceso a la va. A4-A0 (5 bits): Posicin. Byte dentro de la lnea. 17 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Actualizacin de la cach en el Pentium Cuando se produce una ausencia en la cach, se busca la informacin de una lnea completa (32B) en la memoria principal y se carga en una lnea que est libre. Si debe sustituirse una de las lneas existentes, se aplica un algoritmo de reemplazo. El Pentium utiliza el algoritmo de reemplazo LRU (Least Recently Used): se sustituye la lnea que lleva ms tiempo en la cach sin haber sido referenciada. No confundir con: LFU: se sustituye la lnea menos referenciada, independientemente del tiempo que lleve. FIFO: se sustituye la lnea que ms tiempo lleve, independientemente de cunto se haya referenciado. Para actualizar la lnea se utiliza lectura directa: primero se da a la CPU el dato que quiere, y luego se lee el resto de la lnea, mientras la CPU trabaja. 18 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Actualizacin de la Memoria Principal Antes de reemplazar un bloquede cach, es necesario comprobar si ha sido alterado en cach pero no en memoria principal. Si ha sido modificado, la memoria principal debe tambin actualizarse Evitar incongruencias de datos. El Pentium utiliza el mtodo de actualizacin de memoria de escritura obligada (Write Back): Los resultados de las operaciones no se transfieren a memoria principal, sino que quedan almacenados en la cach hasta que sea preciso actualizarla. La memoria principal se actualiza obligatoriamente cuando: Se accede a una posicin de la memoria principal modificada en la cach por el procesador Antes de leer, hay que escribir el dato modificado. Hay que reemplazar una lnea de la cach en la que se ha modificado un dato. 19 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Jerarqua de cach Cach de nivel 1 (L1) o cach primaria: Cach de pequeo tamao integrada en la CPU. La ms rpida (velocidad del microprocesador). Desde el i80486 = 8 KBs. Pentium = 8KBs (I) + 8KBs (D). Algoritmos de carga clsicos (vecindad temporal y espacial). Cach de nivel 2 (L2) o cach secundaria: Ligeramente ms lenta que la cach L1, pero de mayor capacidad. Almacena los datos e instrucciones muy usados recientemente pero que no han sido guardados en la cach L1. Si la L1 no contiene el dato, se transfierela peticin a L2. Algoritmos especiales (ajustados a programas). Puede estar en la placa base o integrada en la CPU (pero separada de la L1). Se incluye a partir del Pentium Pro. 20 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Jerarqua de cach (II) Cach de nivel 3 (L3): Permanece en la placa base y no se integra en la CPU. Mayor capacidad que L2, pero ms lenta. Si L2 no contiene el dato, se transfiere la peticin a L3. Se incluye a partir de algunos Pentium 4. En procesadores multicore, se comparte una nica L3 para todos los ncleos. 21 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Organizacin de la Cach del Pentium II La cach L2 tiene entre 256KB y 1MB, y es asociativa por conjuntos de 8 vas. Alimenta a las dos cachs L1 (8-16KB). 22 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Organizacin de la Cach del Pentium IV Las cachs L2 (512 KB) y L3 (1 MB, opcional) son asociativas por conjuntos de 8 vas y tamao de lnea de 128 bytes. 23 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Protocolos de Coherencia de Cach En un sistema multiprocesador con varias cachs, dos CPUs pueden estar empleando la misma posicin de la memoria principal, cuyo contenido permanece en las cachs de ambas CPUs Surge la necesidad de asegurar que cualquier acceso a la memoria lea el dato ms actualizado. Esto tambin es til en sistemas monoprocesador pero con varios niveles de cach (coherencia entre cach L1, cach L2 y memoria principal). Pentium utiliza el protocolo MESI (Modified Exclusive Shared Invalid). Cada lnea de cada cach se encuentra en uno de 4 estados: Modificada, Exclusiva, Compartida, Invlida. 24 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Protocolo MESI M (Modificada): La lnea de cach ha sido modificada (es diferente de memoria principal). La versin de la lnea slo reside en esta cach. E (Exclusiva): El contenido de la lnea de cach coincide con memoria principal (copia sin modificar), y ninguna otra cach contiene una copia de la lnea. S (Compartida): La lnea en la cach coincide con memoria principal, y puede estar presente en otra cach. Si se escribe en una de ellas, las dems se invalidarn automticamente. I (No vlida): La lnea de la cach no contiene datos vlidos. Una lectura del procesador genera una ausencia, y una escritura obliga a actualizar la memoria principal de inmediato. 25 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Protocolo MESI (II) 26 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Jerarqua de Memoria Jerarqua de memoria del Pentium: Registros del microprocesador. Memoria principal: Memoria segmentada. Mecanismo de paginacin. Memoria cach. C o n t e n i d o s 27 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Memoria Principal 10 Consejos para elegir la memoria principal del PC (Arquitectura del PC, Volumen II. Manuel Ujaldn): Rasgos externos: 1. Contactos del chip. 2. Nmero de chips. 3. Seleccin de zcalos. 4. Gestin de errores. Parmetros internos: 5. Tipo de memoria. 6. Velocidad. 7. Tamao Especificaciones comerciales: 8. Etiquetado. 9. Marca. 10. Fecha. 28 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Rasgos Externos Contactos del chip: cuantos ms contactos, ms moderno es el mdulo. El material debe ser dorado (aleaciones de oro), tanto en el mdulo como en el zcalo de la placa base. Nmero de chips: cuanto menos chips por mdulo, mejor. Es ms caro, pero hay menor tasa de fallos al minimizar problemas de sincronizacin, interferencia electromagntica, etc. Seleccin de zcalos: cuantos ms zcalos libres, mejor. Los bancos numricamente ms bajos alojarn la memoria ms rpida Aceleramos tareas crticas del S.O. Vigilar voltajes. Gestin de errores: Si hay un nmero impar de chips en el mdulo, probablemente es porque tenemos chips de paridad, que aumentan la fiabilidad del mdulo. Vigilar la compatibilidad con la placa y con los otros mdulos. 29 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Parmetros Internos Tipo de memoria: Asegurar compatibilidad entre la placa base y los mdulos de memoria. Velocidad: No interesa la ms rpida, sino la ms rpida que sea compatible con la placa. Si no, funcionar muy lenta o incluso no funcionar. Todos los mdulos deben ser de la misma velocidad. Tamao: El tamao mximo viene limitado por: Nmero de zcalos * tamao mximo mdulo. Rango de direcciones que puede manejar el controlador de la placa base (comnmente, una placa de Pentium slo poda controlar 256MBs!!) Cantidad de memoria direccionable por el procesador (32 bits = 4GBs). 30 MICROPROCESADORES ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA Especificaciones Comerciales Etiquetado: Si se detalla el tiempo de respuesta cuanto menor, mejor. Si se detalla la frecuencia cuanto mayor, mejor. Marca: Clasificacin de Manuel Ujaldn: 1. Kingston: garanta de por vida. 2. Micron: buena garanta, y amplio abanico de productos. 3. Fujitsu-Siemens, Hitachi, Mitsubishi, Motorola, NEC Samsung, Texas Instruments y Toshiba: muy buenas marcas, pero no especializadas en este sector. 4. El resto: bajo coste = baja calidad. Fecha: Mirar fecha de fabricacin. Conveniente que no exceda de 2 aos. La fecha puede estar oculta en algn cdigo del fabricante. Ejemplo: 9904 dentro de un cdigo puede significar abril de 1999. 31