Sistemas Computacionales de 32 bits

Documentos relacionados
Mapa de E/S en una PC. Autor: Alejandro Furfaro 12

Arquitectura de computadoras

Sistemas Computacionales de 32 bits

Sistemas Computacionales de 32 bits

Controlador de Floppy Disk - DMA

Gestión de Memoria e Interrupciones en modo protegido

Organización del Computador. Entradas / Salidas

Integración de Equipos para Comunicaciones

Arquitectura de la PC

Gestión de Memoria e Interrupciones en modo protegido

(7) Unidad 7. Buses básicos de la arquitectura 80x86 SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Memorias FORMAS DE ESCRITURA

Segmentacion e Interrupciones en IA-32

Electrónica Digital II

El ordenador. Codificación binaria. Código ASCII

Estructura de un Ordenador

Memoria y Entrada/Salida Tecnología Organización - Expansión

... La Memoria. La Memoria CAPÍTULO. Conceptos Básicos sobre Tecnologías de la Información

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

8237A. Programación en Ensamblador Ing. Marcelo Tosini

o Nos vamos a centrar en la memoria del sistema, esta memoria es conocida como RAM (random-access memory, memoria de acceso aleatorio).

BIOS: Basic Input Output System

ORGANIZACIÓN DEL MICROCOMPUTADOR

Motherboard. Daniel Rúa Madrid

UNIDAD CENTRAL DE PROCESO

Entrada y Salida! EC-2721 Arquitectura del Computador I! Entradas/Salidas: Problemas. Entradas salidas: Criterios. Amplia variedad de periféricos!

Introducción a la Computación. Capítulo 7 Entrada/Salida

Organización del Computador I. Introducción e Historia

En una placa base del ordenador personal, tenemos:

Arquitectura de Computadores

ELEMENTOS HARDWARE DEL ORDENADOR. Memoria Principal (RAM)

Centro de Formación Profesional Nº 401 Curso: Reparador de PC Instructor: Walter Carnero

Velocidades Típicas de transferencia en Dispositivos I/O

Componentes de un equipo Microinformático

MODULO DE MEMORIA RAM. Ing. Raúl Rojas Reátegui

Integración de Equipos para Comunicaciones Tema 3: Bus ISA Aurelio Vega Martínez

Colegio Cedas, Inc. V. Souchet 2013

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

Arquitectura de Computadores

Velocidades Típicas de transferencia en Dispositivos I/O

UNIDAD 1: - ESTRUCTURA Y FUNCIONAMIENTO DE UN ORDENADOR

ARQUITECTURA DE COMPUTADORES DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses)

Acceso directo a Memoria

Dispositivos de memoria (Parte #2)

SISTEMAS BASADOS EN MICROPROCESADORES

Tema 5 Jerarquía de Memoria

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

1.2 Análisis de los Componentes. Arquitectura de Computadoras Rafael Vazquez Perez

Introducción a las Computadoras. Capítulo 3 Buses del Sistema

El Computador y sus Partes INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Tema 5 Jerarquía de Memoria

Solución 1. Solución usando un 8255 para las entradas y salidas, un 8254 para la temporización y realizando la entrada/salida por polling.

Estructura y Tecnología de Computadores. Módulo E. El subsistema de E/S. Tema 9. Acceso directo a memoria (DMA) y procesadores de E/S

Unidad 5 Caso de Estudio. Arquitectura ISA. Técnicas Digitales II UTN-FRM. Introducción

Federico Reina Toranzo

Herramientas Informáticas I

Organización del Computador 1 Memoria Cache

Controladores de memoria externa

LA MEMORIA. Conrado Perea

Periféricos Interfaces y Buses

Tema 0. Introducción a los computadores

Arquitectura de Computadoras 2011

Computación Conociendo la herramienta de cálculo

Procedimientos para el Montaje de Equipos Microinformáticos.

Tema 9 Periféricos de Entrada

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

Controlador Programable de Interrupciones i8259

Arquitectura de Computadores II Clase #3

(5) Unidad 5. Entrada / Salida SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

TEMA 12: MEJORA DE LAS PRESTACIONES DE LA MEMORIA

Es un sistema de comunicación que transfiere datos entre una o varias computadoras

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

2.- Se puede cambiar el puente norte en una placa si se estropea? 3.- La memoria caché, donde se encuentra y para qué sirve?

Los componentes de la tarjeta madre del PC. Sistemas Operativos. Febrero 2014.

ARQUITECTURA DE COMPUTADORES. 2º INGENIERIA INFORMATICA. Soluciones del BOLETIN 2: Tecnología de los sistemas de memoria. Curso 06/07.

Conceptos de Arquitectura de Computadoras Curso 2015

Secuencia de arranque de un computador. Estructura lógica del disco duro de una PC

Reemplazaron a las memorias RAM tipo SIMM ("Single In line Memory Module").

Tema 2.1. Hardware. Arquitectura básica

Lógica de petición de interrupciones X. Chip controlador de teclado (8042/8741/8742) línea serie

MODULO DE ENSAMBLAJE - TEMA 2: PARTES PRINCIPALES DEL PC

S u m a r i o SUMARIO CAPÍTULO 1 LOS COMPONENTES CAPÍTULO 2 EL MOTHERBOARD

Organización del Computador. Memorias

MODULO 6: MEMORIA RAM

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

INTERRUPCIONES. Existen 256 interrupciones En el modo real cada una tiene un vector asociado Vectores de 4 bytes: segmento + offset 32 F0 50 8A

Arquitectura de Computadoras 2011

MANTENIMIENTO DE EQUIPO DE CÓMPUTO. CINDEA Sesión 06

SIGLAS RELACIONADAS CON LOS PUERTOS DE UN EQUIPO DE CÓMPUTO

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

TEMA 1: Concepto de ordenador

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

INEL 4206 Microprocesadores Texto: Barry B Brey, The Intel Microprocessors: 8va. Ed., Prentice Hall, 2009

SOPORTE FÍSICO O HARDWARE (I)

LIC. CESAR ESPINOZA JIMÉNEZ

LIC. CESAR ESPINOZA JIMÉNEZ

Lectura # 2. Lectura de apoyo al curso

Unidad 2: Taller de Cómputo. Estructura y Componentes de la Computadora UNIDAD DOS: INTRODUCCIÓN

ESTRUCTURA BÁSICA DE UN ORDENADOR

Transcripción:

Sistemas Computacionales de 32 bits Universidad Tecnológica Nacional - FRBA Técnicas Digitales III 1

Introducción 1 Sistemas Computacional: 2 Conjunto de dispositivos lógicos de Hardware y Software que se utilizan para procesar datos, señales, o cualquier información digital. 2 Dedicados: Cumplen una única función o un grupo determinado de funciones específicas 2 De propósito general: Sirven para ejecutar todo tipo de aplicaciones. El único límite es el número máximo de aplicaciones que pueden albergar en un mismo momento, y la capacidad de procesamiento para poder ejecutar aplicaciones de determinada envergadura. 1 Componentes 2 Hardware i Procesador i Periféricos i Memoria 2 Software i Programas de control aplicado para computadoras dedicadas i Sistemas Operativos para computadoras de propósito general o de tipo embedded. Su complejidad varía entre ambos casos 2

Ejemplos mas comunes 1 Sistemas de propósito General 2 Antecedentes durante los 70 s: Commodore 64 / 128, Amiga, Talent MSX, etc. i Procesadores de 8 bits. Z80 en el mejor de los casos, i Cantidad de memoria reducida. i Dispositivos de almacenamiento mínimos. 2 A principios de los 80 s IBM introduce su modelo de Personal Computer PC. i Procesador de 16 bits: 8088, i Dispositivos de almacenamiento, y cantidad de memoria levemente mejores a sus antecesores i Introduce junto con Intel el concepto de diseños escalables por compatibilidad ascendente 2 Al mismo tiempo Apple lanza la Machintosh ( Mac ) 3

Ejemplos mas comunes 1 Computadoras dedicadas. 2 Sistemas de tipo Embedded. i Diseños single board con procesadores compatibles con los de la IBM PC a medida que esta gana popularidad. i Versiones de DOS para ROM i Evolución tecnológica => PC-104. Standard Industrial i SBC => Single Board Computer 4 Aprovechan la base instalada de PC s para integrar módulos muy compactos para aplicaciones dedicadas desarrollables en una PC ya que tienen los mismos recursos en las mismas direcciones. 4 Algunos sistemas operativos están preparados para construir imágenes mínimas para el control de las aplicaciones requeridas para cada solución. => Sistemas multitarea dedicados i SOM =>System On Module 4 Son CPU s listas para usar, con firmware embebido. Pueden hostaear una imagen de un Sistema Operativo. 4 Son una versión mucho mas compacta de un SBC 4

Ejemplos de SOM: IA-32 144 mm 95 mm 1 Procesador Embedded Pentium M o Dothan 1.6 GHz/1.1 GHz con 64KB de memoria cache L1. 1 Memoria DRAM 2 x 200 pin SODIMM sockets, ECC Double Data Rate (DDR)128 MB to 1 GB. Caché 2do nivel de 1 M 1 1000Base-T Ethernet 1 Intel 855GME GMCH/ ICH4 Chipset 400 MHz PSB 1 Interfaces PCI & AGP 5

Ejemplos SOM: XScale 102 mm 68 mm 1 Procesador Xscale PXA 255 de 400MHz. 1 Memoria DRAM de 32 / 64 /128 Mbytes 1 On board 1 M Flash ROM. Expandible externamente hasta 64 Mbytes. 1 Ethernet 10 / 100 BaseT 1 2 ports host USB 1.1. 1 port USB device side 1 Interfaz LCD 1024x768 6

Ejemplos SBC: PC-104 115 mm 96 mm 1 Procesador Embedded Pentium M 1.6 GHz/1.1 GHz con 64KB de memoria cache L1. 1 Memoria DRAM 2 x 200 pin SODIMM sockets, ECC Double Data Rate (DDR)128 MB to 1 GB. Caché 2do nivel de 1 M 1 100Base-T Ethernet 1 Intel 855GME GMCH/ ICH4 Chipset 400 MHz PSB 1 Interfaces PCI & AGP 1 6 ports host USB 2.0 7

Componentes circuitales de una PC XT 8

Mapa de Memoria 00000000 0009FFFF 000A0000 000BFFFF 000C0000 000FFFFF 00100000 Vector de Int Modo Real BIOS Data Area Area de datos y programas 640 Kbytes 1 Kbyte FFFFFFFF 9

Mapa de Memoria 00000000 0009FFFF 000A0000 000BFFFF 000C0000 Buffers de Video Modos Texto y Gráfico 128 Kbytes 000FFFFF 00100000 FFFFFFFF 10

Mapa de Memoria 00000000 000C0000 0009FFFF 000A0000 000BFFFF 000C0000 Zona de Extensión de BIOS 192 Kbytes 000FFFFF 00100000 000EFFFF 000F0000 000FFFFF POST BIOS 64 Kbytes FFFFFFFF 11

Mapa de E/S en una PC 12

Hardware de Soporte de E/S 1 8253 / 8254: 2 Timer 0: Dirección 40h. Base de tiempos del sistema. A la entrada CLK0 se conecta un cristal de 1,193,180 MHz. Se programa para generar por OUT0 un pulso cada 55 mseg. Este pin se conecta a la línea IRQ0 del PIC 8259: asi se genera una interrupción a dicho intervalo, o como se refiere en la jerga, genera 18,2 (?) interrupciones por segundo. 2 Timer 1: Dirección 41h. Se programa del mismo modo que Timer 0 pero se lo utiliza para activar el sistema de refresco de memoria DRAM. Para ello, OUT1 va conectado a la entrada DREQ0 del 8237. A partir del modelo AT 286 se utilizará un hardware dedicado al refresco de memoria. 2 Timer 2: Dirección 42h. Se programa para generar a su salida una señal cuadrada de 50% de duty cycle y OUT2 se conecta al parlante del sistema. 2 Registro de comando y status. Dirección 43h. 13

Hardware de Soporte de E/S 18255: Fue inmediatamente reemplazado en el modelo siguiente (AT 286). Sin embargo los ports A y B, siguen presentes 2 Port A: Dirección 60h. La lógica de control de teclado al recibir los códigos de las teclas los almacena en este port. 2 Port B: Dirección 61h. Sus líneas trabajan como salidas de control individuales. 2Envío de la salida del Timer0 al parlante de la PC 2Envío de un pulso a la línea IRQ1 del PIC 8259 cada vez que se recibe un código de tecla desde el teclado. 2 Port C: Dirección 62h. Cuatro de estas líneas se utilizan como información de configuración del sistema. El sistema de configuración en los modelos originales PC y PC-XT era sumamente rudimentario (trabajaba con dip switches). 14

Interrupciones en los procesadores Notas: 1 La instrucción UD2 fue introducida con el procesador Pentium Pro. 1 Los procesadores IA-32 posteriores al Intel386 no generan esta excepción. 1 Esta excepción fue introducida en el procesador Intel486. 1 Esta excepción fue introducida en el procesador Pentium y mejorada en la familia de procesadores P6. 1 Esta excepción fue introducida en el procesador Pentium III. 15

Asignación de Interrupciones en una PC 16

Interrupciones de Hardware: El PIC 8259 INTA INT D0 - D7 DATA BUS BUFFER LOGICA DE CONTROL BUS DE DATOS INTERNO RD WR A0 CS READ WRITE LOGIC IN SERVICE REGISTER (ISR) PRIORITY RESOLVER INTERRUPT REQUEST REGISTER (IRR) IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 CAS0 CAS1 CAS2 CASCADE BUFFER COMPARA- TOR INTERRUPT MASK REGISTER (IMR) SP/EN 17

Configuración del PIC 8259 en la PC INTR INTA Procesador 80x86 Timer Tick 8259 Master 20h-21h INT INTA IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 OUT 0 8254 40h-43h 8042 Keyb Cont Disponibles en los buses de expansión IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 Data Bus CAS 0 CAS 1 SP/EN CAS 2 IRQ0 IRQ1 INT IRQ2 IRQ3 INTA IRQ4 IRQ5 8259 Slave IRQ6 A0h-A1h IRQ7 SP/EN CAS 0 CAS 1 CAS 2 Vcc IRQ8 IRQ9 IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 Este 2do. 8259 fue agregado a partir de la PC-AT286 Nombre de las líneas en del Sub-sistema de Interrupciones de la PC 18

Asignación y Tipo de las IRQ s 19

Interrupción No Enmascarable (NMI) Error de paridad en Memoria Error de paridad en el Bus Error del Coprocesador 8087 MNI 80x86 7 6 5 4 3 2 1 0 Port de E/S 0A0h Error de paridad en Memoria Error de paridad en el Bus MNI 80x86 7 6 5 4 3 2 1 0 Port de E/S 070h 20

Programación del PIC 8259 1 El 8259, presenta al procesador una interfaz de programación a través de dos direcciones de E/S. 2 La primer PC tenía un solo PIC en las direcciones de port 20h y 21h. 2 La PC AT 286, incluyó un segundo PIC, ya que la PC original ya había agotado la asignación de IRQ s, y seguían apareciendo nuevos dispositivos: Placas de red, placas de sonido, etc. 2 Este PIC es accesible en las direcciones de port A0h y A1h. 1 Palabras de Comando de Inicialización: 2 Son una secuencia de entre dos y cuatro bytes que envía el procesador al 8259A antes de comenzar la operación normal, a fin de configurarlo. 2 A los efectos del PIC 8259, la secuencia de Inicialización es una operación atómica, es decir, que no puede dividirse 2 El 8259 detecta la secuencia de inicialización cuando recibe en la dirección de port par (A0 = 0), una palabra con el bit D4=1. Palabras de Comando de Operación: Una vez inicializado el 8259A, estas palabras le definen diversas operaciones a realizar. Luego de la inicialización, se pueden enviar en cualquier momento. 21

Programación del PIC 8259 ;; Inicialización PIC PIC #1 #1 mov moval,11h ;ICW1: IRQs IRQs activas por por flanco, Modo cascada, ICW4 Si. Si. out out 20h,al mov moval,8 ;ICW2: INT INT base base para para el el PIC PIC N#1 N#1 Tipo Tipo 8. 8. out out 21h,al mov moval,04h ;ICW3: PIC PIC N#1 N#1 Master, tiene tiene un un Slave conectado a IRQ2 IRQ2 (0000 0100b) out out 21h,al mov moval,01h ;ICW4: Modo No No Buffered, Fin Fin de de Interrupción Normal, procesador 8086 8086 out out 21h,al ;; Antes de de inicializar el el PIC PIC N#2, N#2, deshabilitamos las las Interrupciones del del PIC PIC N#1 N#1 mov moval,0ffh :OCW1: Set Set o Clear el el IMR IMR out out 21h,al ;; Inicialización PIC PIC N #2 #2 mov moval,11h ;ICW1: IRQs IRQs activas por por flanco, Modo cascada, ICW4 Si. Si. out out 0A0h,al mov moval,070h ;ICW2: INT INT base base para para el el PIC PIC N#1 N#1 Tipo Tipo 070h. out out 0A1h,al mov moval,02h ;ICW3: PIC PIC N#2 N#2 Slave, IRQ2 IRQ2 es es la la línea línea que que envía al al Master (010b) out out 0A1h,al mov moval,01h ;ICW4: Modo No No Buffered, Fin Fin de de Interrupción Normal, procesador 8086 8086 out out 0A1h,al 22

Power On Self Test 1 Antes de iniciar su operación el sistema verificará el correcto funcionamiento de la CPU 1 Chequea si el contenido de la ROM es el correcto (realiza un checksum del contenido de la ROM completa que en fábrica se ajusta de modo que el resultado del check sea cero). 1 Detecta el tipo de adaptador de video instalado. Lo inicializa en modo texto 80x25. Escribe en la BIOS DATA AREA los principales datos de interés para el sistema que proporciona este controlador. 1 Comprueba la correcta interacción con el 8042 y setea el modo de trabajo con los diferentes ports de E/S que proporciona este chip. 1 Si el Timer 1 funciona correctamente se lo programa para generar un pulso al final de la cuenta, cuenta cíclica, y duración de la misma 15 mseg. 23

Power On Self Test 6. Comprueba el correcto funcionamiento para el canal de DMA 0. 7. Si los test descriptos indican que el Timer 1 y el canal 0 de DMA funcionan correctamente, entonces se dispara el refresco de memoria. 8. Comprueba el 8259 y lo inicializa con los valores default de los vectores de Interrupción. A los que usa, los apunta a las rutinas de la ROM correspondientes. 9. Una vez finalizada la cuenta de memoria, chequea los restantes timers y canales de DMA. Si funcionan correctamente los inicializa de acuerdo a la forma en la que van a trabajar cada uno de ellos. 10.Funcionando correctamente el teclado y el timer tick, habilita sus interrupciones en el 8259 24

Power On Self Test 11.Testea el funcionamiento de las unidades de disco flexible y rígido. Una vez comprobado las inicializa, y escribe los resultados y principales parámetros en la BIOS DATA AREA. 12.Chequea si existen ports serie. Inicializa a los que encuentra y guarda resultados en BIOS DATA AREA. 13.Chequea si existen ports paralelo. Inicializa a los que encuentra y guarda resultados en BIOS DATA AREA. 14.Establece si existen extensiones BIOS. Esto es: La ROM BIOS de las PC provee un camino para integrar adaptadores de E/S con su propia ROM on-board. 15.Llama a la rutina Bootstrap loader para la carga del sistema operativo 25

Detección de extensiones BIOS 1 El POST busca extensiones de BIOS. 1 El rango de direcciones de memoria en las que se puede mapear estas ROMs va desde la C0000h hasta la EFFFFh. 1 Se busca dentro de este rango cada 2K una firma fija e igual a 55AAh. Si la encuentra asume que en esa página de 2k comienza una extensión de BIOS. 1 Si el POST detecta alguna ROM adicional, le transfiere temporariamente el control. La extensión de BIOS: 1 Inicializará el hardware para el que fue diseñada 1 Realizará, del mismo modo que el POST de la ROM del sistema) un checksum, cuyo resultado debe ser 0 para que la ROM se considere de contenido válido. 1 Interceptará las interrupciones que necesite, enganchándose a sí misma en el sistema. 1 Devolverá al POST el control del sistema (RET) dejando al hardware asociado a la extensión BIOS, listo para su uso. 26

Extensiones BIOS: Mapa de Memoria 00000000 000C0000 2Kbytes 2Kbytes Encabezado 0009FFFF 000A0000 000BFFFF 000C0000 000EFFFF 000F0000 Extensión de BIOS POST Código y datos de la extensión 000FFFFF 00100000 000FFFFF BIOS Formato del encabezado de la de extensión BIOS: FFFFFFFF 27

Arranque del sistema operativo 1 La rutina Boostrap Loader del BIOS solo se limita a 2 Leer el primer sector físico del disco. 2 Cargar los 512 bytes en memoria RAM (0000h:7C00h) 2 Saltar al primer byte (debe haber allí una instrucción válida) 1 La unidad de disco que lee es la que tiene configurada el equipo en la secuencia de arranque. 1 En ese sector debe residir un programa que sepa cargar al Sistema Operativo. 2 Debe leer del disco los archivos necesarios para bajar a la memoria. Para ello deben conocer la forma en que está organizada la información en el disco 2 Debe descargarlos en memoria y en algún momento transferirles la ejecución. 28

Organización de la información en el disco 1 Los Sistemas Operativos almacenan la información en los discos en archivos 1 Los archivos se organizan bajo una estructura de información que se conoce como file system. 1 Cada sistema operativo establece su propio file system. 2 El mas popular (lo interpretan TODOS los sistemas operativos) es el FAT, que introdujo en su época el sistema Operativo MS DOS 2 Por eso, y por su enorme sencillez y difusión, es ideal para organizar el disquete que contenga el programa de arranque del Sistema Operativo 29

Organización de la información en el disco Contiene el programa de carga del Sistema Operativo FAT=File Allocation Table. Lista enlazada que contiene la referencia a los sectores del disco en los que están almacenados los archivos. Copia de la FAT (única medida de consistencia del File System) Directorio Raíz: Contiene las referencias a archivos y subdirectorios Area en donde están almacenados los archivos Boot Sector FAT FAT #2 Directorio Root Zona de almacenamiento 30

Boot Sector: BIOS Parameter Block BIOS Parameter Block (62 bytes) [BITS 16] ORG 0 jmp START OEM_ID db "TD3 OS" BytesPerSector dw 0x0200 SectorsPerCluster db 0x01 ReservedSectors dw 0x0001 TotalFATs db 0x02 MaxRootEntries dw 0x00E0 TotalSectorsSmall dw 0x0B40 MediaDescriptor db 0xF0 SectorsPerFAT dw 0x0009 SectorsPerTrack dw 0x0012 NumHeads dw 0x0002 HiddenSectors dd 0x00000000 TotalSectorsLarge dd 0x00000000 DriveNumber db 0x00 Flags db 0x00 Signature db 0x29 VolumeID dd 0xFFFFFFFF VolumeLabel db "QUASI BOOT" SystemID db "FAT12 " ;..A partir de aquí se colocan los datos y el código del programa de arranque Boot Sector FAT FAT #2 Directorio Root Zona de almacenamiento 31

Directorio Una entrada de directorio es una nestructura de 32 bits que contiene el descriptor de un archivo cuyo contenido estará en la Zona de Almacenamiento, y cuyos clusteres están en la FAT 0 1 2 3 4 5 6 7 8 9 A B C D E F Boot Sector FAT Nombre Reservados Extensión 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F Atributos Hora Fecha creacióncreación 1er. Cluster Reservados Longitud Byte 19. aaaaaaam Byte 18. mmmddddd Bit Significado 0 De lectura solamente. 1 Archivo no visible (hidden). 2 Archivo propio del sistema. 3 Atributo de volúmen. Esta entrada al directorio contiene el "nombre" del disco.puede aparecer solamente en el directorio principal. 4 Subdirectorio. 5 Bit de actualización. Es puesto en 1 cuando el archivo es creado o modificado. 6 Reservado. 7 Reservado. Byte 17. hhhhhmmm Byte 16. mmmsssss FAT #2 Directorio Root Zona de almacenamiento 32

FAT 12 000 Cluster Vacío FF7 Cluster Dañado FF8-FFF Ultimo Cluster 1er. Cluster Cualquier otro valor Next Cluster 12 bits 1er. Entrada 1 byte 2da. Entrada Boot Sector FAT FAT #2 Siguiente Cluster Directorio Root Siguiente Cluster Zona de almacenamiento 33

FAT 12 000 Cluster Vacío FF7 Cluster Dañado FF8-FFF Ultimo Cluster 1er. Cluster Cualquier otro valor Next Cluster 12 bits 1er. Entrada N 1 byte 2da. Entrada Boot Sector FAT FAT #2 Field Value N N = (Field value) * 1.5 Lee N y N+1, luego el nuevo offset para el próximo elemento se obtiene de: Si N es par: (N) or ((N+1) and 0Fh) << 8 Ej: 33h ((41h & 0Fh) << 8) = 133h Si N es impar (N >> 4) OR ((N + 1) << 4) Ej:(41h >> 4) (14h << 4) = 144h Directorio Root Zona de almacenamiento 34

FAT 12 000 Cluster Vacío FF7 Cluster Dañado FF8-FFF Ultimo Cluster Cualquier otro valor: Next Cluster Boot Sector FAT Arch1.txt 0002 Arch3.txt 0006 FAT #2 Arch2.txt 0003 Arch4.txt 0008 0 1 2 3 4 5 6 7 8 9 0500 4000 0700 FFF FFF FFF 0900 FFF Directorio Root Zona de almacenamiento 35

Algoritmo para FAT 12 LOAD_IMAGE: mov ax, WORD [cluster] ;cluster a leer pop bx ;buffer en donde leer el cluster call Cluster2LBA ;convierte cluster a modo de dirección LBA xor cx, cx mov cl, BYTE [SectorsPerCluster];cantidad de sectores por cluster call ReadSectors push bx ;calcula siguiente cluster mov ax, WORD [cluster] ;cluster actual mov cx, ax ;copia 1 del cluster actual mov dx, ax ;copia 2 del cluster actual shr dx, 0x0001 ;copia 2 = copia 2 / 2 add cx, dx ;copia 1 = copia 1 + (copia 2/2) = mult * 1,5 ;-) mov bx, 0x0200 ;bx apunta al buffer que contiene la FAT add bx, cx ;ahora bx apunta a la entrada de la FAT mov dx, WORD [bx] ;leemos 2 bytes de la FAT test ax, 0x0001 ;FAT de 12 bits, rata diferente a las entradas ;pares de las impares. jnz.odd_cluster.even_cluster: ;Formula "Microsoft :(byte N) or (byte(n+1) and 0Fh) << 8 ;Intel almacena en little endian ;dh = byte N+1, dl = byte N and dx, 0x0FFF ;por lo tanto solo con la and queda resuelta jmp.done.odd_cluster: ;Fórmula "Microsoft :(byte N >> 4) OR ((byte N+1) << 4) shr dx, 0x0004 ;basta con un shift general 4 bits a la derecha.done: mov WORD [cluster], dx ;DX tiene el nuevo cluster. Lo guardamso como actual cmp dx, 0x0FF0 ;testea que no sea EOF jb LOAD_IMAGE ;Si es menor vuelve a leer siguiente cluster 36

FAT 16 0000 Cluster Vacío FFF7 Cluster Dañado FFF8-FFFF Ultimo Cluster Cualquier otro valor: Next Cluster Arch1.txt Arch2.txt 0002 Arch3.txt 0006 0003 Arch4.txt 0008 Boot Sector FAT FAT #2 0 1 2 3 0005 0004 4 5 6 7 8 9 0007 FFFF FFFF FFFF 0009 FFFF Directorio Root En este caso el algoritmo es simple. Cada entrada de 16 bits es un puntero a la siguiente Zona de almacenamiento 37

Acceso Directo a Memoria (DMA) CPU HOLD HLDA HRQ HLDA DREQ 0 DACK 0 Device 1 Address Bus DRAM Address Bus Controlador de DMA (8237A) DREQ 1 DACK 1 DREQ 2 DACK 2 Device 2 Device 3 DREQ 3 Device 4 DACK 3 Data Bus 38

Subsistema de DMA en la PC y PC- XT 5Vcc DREQ1 DREQ2 DREQ3 HRQ HLD RDY TO DMA A CLK RES AEN XA5 XA6 XA7 XA8 XA9 Señales de St at us del 8088 DMA AEN A B C G2A G2B S0 S1 S2 8288 Y0 Y4 74LS138 MEMR RIOW MEMW 8253 OUT 1 74LS243 CL 74LS74 Q Bus de Control XIOR XIOW XMEMR XMEMW Fig. 6. Circuito de Control de DMA en una IBM PC XT D S CL DREQ0 DREQ1 DREQ2 DREQ3 HRQ HLDA RDY CL RES K CS IOR IOW MEMR MEMW 8237A GND A0 A1 A2 A3 A4 A5 A6 A7 DACK0 DACK1 DACK2 DACK3 EOP AEN DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 ADSTB WRT DMA PG RG 74LS32 Bus de Direcciones Buffereado NC Bus de Datos Buffereado XD0 XD1 XD2 XD3 XD4 XD5 XD6 XD7 74LS24 4 1G D0 D1 D2 D3 WA WB RB RA 2G 74LS670 OE RDW 74LS37 3 Q0 Q1 Q2 Q3 A0 A1 A2 A3 A4 A5 A6 A7 A16 A17 A18 A19 A8 A9 A10 A11 A12 A13 A14 A15 Bus de Direcciones RAS 74S08 74S08 DACK0 DACK1 DACK2 DACK3 EOP AEN RAS 0 RAS 1 RAS 2 RAS 3 Al Slot ISA del Sist ema LE 39

Subsistema de DMA: Direcciones de E/S DMA Page Registers: El 8237 solo direcciona 64 Kbytes (bus de address de 16 bits) En la XT, se agregan estos Registros para llegar al Mnye de espacio de direccionamiento. Por lo tanto son registros de 4 bits. En las AT286 se extendieron a 8 bits, ya que el 80286 agrega al bus de direcciones las líneas A20 a A23 40

Subsistema de DMA a partir de la PC AT286 41

Subsistema de DMA a partir de la PC AT286 42

Subsistema de DMA PC AT286: Limitaciones 1 Este subsistema introdujo mejoras en la performance de una PC XT con un disco rígido de 10 Mbytes. 1 En las máquinas modernas con discos de 100 Gbytes, la combinación 8237 mas Bus ISA, se transformaría en un cuello de botella. 1 Los chipsets que acompañan a los procesadores Pentium, aún los mas modernos siguen incluyendo la lógica equivalente a este subsistema (8237 like). La única razón: COMPATIBILIDAD. A este montaje se lo denomina DMA de terceras partes. 1 las PCs modernas utilizan DMA de primera parte. Se refiere a controladores de dispositivos de E/S (como disco por ejemplo) capaces de requerir por si solos el DMA y manejarlo. Este concepto se conoce como Bus Mastering y en él se basa la tecnología Ultra DMA (UDMA) de los controladores IDE para discos rígidos. 43

Alternativas al Subsistema de DMA legacy E/S Programada (PIO) Esquema de acceso a la E/S mediante instrucciones de E/S del procesador (IN, OUT, INS, y OUTS) y algún hardware adicional. Arranca para Bus ISA. De acuerdo a la implementación se consiguieron diferentes velocidades de acceso. Estas se conocen como Modos de E/S Programada o PIO Modes. La solución resultó mas que aceptable para los primeros discos rígidos de tecnología IDE/ATA, de modo que estos PIO modes fueron incluidos en las respectivas especificaciones de los estándares ATA-1 y ATA-2. Cantidad de nano segundos para que se lleve a cabo la transferencia 1/Tiempo de Ciclo 44

Subsistemas de DMA modernos 1 Bus Mastering 2 Para los discos rígidos el método PIO, demanda demasiada CPU. 2 El Bus PCI aumenta las velocidades de transferencia, y permite acceder al bus del sistema de manera transparente al procesador. Por este motivo se desarrollo el método de Bus Mastering para reemplazar al PIO en transferencias masivas de datos de modo de liberar al procesador 2 Para habilitar Bus Mastering en un sistema, se requiere que el hardware del chipset, y el BIOS, lo soporten, que el dispositivo periférico soporte Bus Mastering, y trabajar con un sistema operativo de 32 bits: Windows 2000, Windows XP, Linux, etc. En algunas ocasiones se requiere la instalación de un driver. 1 Ultra DMA 2 Esta tecnología corresponde al concepto de DMA de primera parte, y se implementó en los discos rígidos en reemplazo de la PIO. 2 Nos referiremos en mas detalle al abordar el tema de Discos Rígidos, ya que no es un control de DMA abierto a cualquier periférico que lo requiera sino que se encuentra embebido en el hardware del controlador de disco y es exclusivo para éste. 45

Teclado Un Microcontrolador se encarga del barrido de la matriz de teclas con la implementación del control de antirrebote. Una vez detectada la pulsación o liberación de una tecla se transmite por línea serie a la PC el código de la misma. Qué código? Cada tecla se identifica con un código de acuerdo con su posicón dentro del layout del teclado. En el caso de la tecla ESC por ejemplo su código es 1. Este valor se denomina SCAN CODE (o código de rastreo en algunas traducciones) 46

Teclado MAKE BREAK El SCAN CODE se transmite cada vez que se pulsa una tecla acción conocida como MAKE, razón por la cual se denomina MAKE CODE Cuando se libera la tecla pulsada (acción conocida como BREAK), se vuelve a transmitir el SCAN CODE de la tecla a la PC para generar una segunda interrupción por IRQ1. La PC detecta tanto la pulsación como la liberación de cada tecla. De otro modo no se podrái por ejemplo actuar ante CTRL+ALT+DEL Para diferenciar la acción de BREAK de un MAKE el código que se transmite es el mismo SCAN CODE pero con el MSB en 1. Este código se deniomina BREAK CODE 47

Controlador de Teclado A partir de la AT 286 del lado PC un microcontrolador 8042 es quien se encarga de recibir el Make o el Break code. Es un miembro especial de la familia MCS- 51, denominado Universal Peripheral Interface: Dispone de una interfaz para que sus propios ports integrados sean accesibles desde el exterior por otro microprocesador. En este caso ese microprocesador es el de la PC. Recibe los datos desde el teclado por una interfaz serie, chequea paridad, traduce los scan codes y los deja disponible en un port interno que visto desde el exterior se accede en la dirección 60h del mapa de E/S de la PC. Registros accesibles desde la PC 1 Registro de status (Read) o comandos (Write). Se accede en la dirección 64h de E/S de la PC 1 Output Buffer (Read only), para leer el código de la tecla pulsada o liberada.se accede en la dirección 60h de E/S 1 Input Buffer (Write only). En la dirección 64h se escribe un comando al controlador (Command Register, visto anteriormente). En la dirección 60h se escribe un dato, que será enviado al teclado. 48

Controlador de Teclado 49

BIOS Data Area: Bytes de Estado de teclas modificadoras Address 0040:0017 Address 0040:0018 50

Rutina de Atención de Int. de Teclado Detección de SCAN Es una Tecla Modificadora? NO SI Actualiza Bytes de Estados en BIOS Data Area Es un Breack Code? NO Es un Breack Code? SI NO Analiza estado de Teclas Modificadoras Traduce el Scan Code a ASCII desde una Tabla SI Es la Tecla INS? NO SI Es un ASCII Extendido? NO Escribe Scan Code y ASCII en el Buffer de Teclado SI Escribe ASCII Extendido en el buffer de teclado FIN 51

BIOS Data Area: Buffer circular de teclado 52

Reloj en Tiempo Real A partir de la AT 286, se incluyó en el diseño un chip de Motorola con un Real time clock y una RAM CMOS de 64 bytes: El MC146818. Los registros internos de la RAM CMOS, se detallan a continuación: Registros del MC 146818 00 Segundos 10 Byte de tipo de drive de disquete (A y B) 01 Segundos de alarma 11 Reservado 02 Minutos 12 Byte de tipo de hard disk (C y D) 03 Minutos de alarma 13 Reservado 04 Horas 14 Byte de equipo 05 Horas de alarma 15 Byte bajo de memoria base 06 Día de la semana 16 Byte alto de memoria base 07 Fecha del Mes 17 Byte bajo de expansión de memoria 08 Mes 18 Byte alto de expansión de memoria 09 Año 19-2D Reservado 0A Status Register A 2E-2F Checksum del CMOS (registros 10h a 2Fh) 0B Status Register B 30 Byte bajo de expansión de memoria 0C Status Register C 31 Byte alto de expansión de memoria 0D Status Register D 32 Byte de siglo de fecha 0E Byte de estados de diagnóstico 33 Flag de información (seteado durante power on) 0F Byte de estado de Shutdown 34-3F Reservado 53

Reloj en Tiempo Real 1 Al tener 64 registros internos, utiliza el modo de direccionamiento indirecto para evitar consumir demasiadas direcciones de E/S. 1 Se muestra al procesador como dos ports: 1 Uno de direcciones (en donde escribimos el número del registro interno con el cual queremos transaccionar), 1 y otro de datos (en donde realizamos la transacción). READ: mov al,memory_location out 70h, al in al,71h WRITE: mov al,memory_location out 70h,al mov al,new_contents out 71h,al 54

Reloj en Tiempo Real Status Register A 7 6 5 4 3 2 1 0 UIP DV 0-2 RS 3-0 RS 3-0 : 3-0 Rate Selection bits. Seleccionan el el divisor de frecuencia de salida. El El sistema inicializa este valor en 0110. Esto selecciona una señal cuadrada de salida de 1024 Hz, o lo lo que es igual un período de 0,976562 mseg. Update in in progress. 1: 1: Indica ciclo de de actualización del reloj en en proceso. 0: 0: Indica fecha y hora listas para su su lectura DV 2-0 : 2-0 Divisor de 22 etapas que permite setear la la frecuencia de la la base de tiempos del sistema. El El power on self test lo lo coloca en 010 de modo de establecer 32,768 Khz. 55

Reloj en Tiempo Real Status Register B 7 6 5 4 3 2 1 0 Set PIE AIE UIE SQWEDM UIE SQWE DM24/12 24/12DSE Update-Ended Interrupt Enable. Habilita (activo alto) el el envío de de interrupción cada vez que actualiza fecha y hora. Alarm Interrupt Enable. Activo alto. Habilita el el envío de de una interrupción en en la la fecha y hora de de alarma programada. Periodic Interrupt Enable. Activo alto. Habilita el el envío de de una señal de de interrupción a períodos establecidos en en los los bits RS RS 3-0 del 3-0 Status Register A. A. 0: 0: Se Se actualiza el el reloj a razón de de una cuenta por segundo. 1: 1: Se Se detiene la la actualización permitiendo inicializar los los 14 14 registros sin sin interrupción hasta que vuelva a ponerse en en 0. 56

Reloj en Tiempo Real Status Register B 7 6 5 4 3 2 1 0 Set PIE AIE AIE UIE SQWE UIE SQWE DM24/12 24/12DSE Daylight Saving Enable. El El POST lo lo inicializa en en 0, 0, indicando que no no está habilitado 0: 0: Modo 12 12 hs. 1: 1: Modo 24hs. (El (El POST lo lo inicializa de de este modo) Date Mode. 0: 0: Fecha y hora se se actualizan en en BCD (El (El POST lo lo inicializa de de este modo). 1: 1: Fecha y hora se se actualizan en en Binario. Square Wave Enable. Activo alto. Habilita la la generación de de una onda cuadrada a intervalos establecidos en en el el Status Register A. A. 57

Reloj en Tiempo Real Status Register C 7 6 5 4 3 2 1 0 PF AF UF Bits Read only, que reflejan el el estado de los bits PIE, AIE, y UIE del Status Register B Valid RAM and Time. Indica con un 0 que el el sistema no tiene alimentación suficiente (batería de Litio baja) Status Register D 7 6 5 4 3 2 1 0 VRT 58

El Bus de expansión ISA Motherboard Memoria Microprocesador Vista frontal del conector del bus ISA 59

El Bus de expansión ISA: Señales Conector Bus PC y PC XT Conector adicional Bus ISA (AT 286 y superiores) Pin Señal E/S Pin Señal E/S Pin Señal E/S Pin Señal E/S A1 *I/O CH CK E B1 GND P C1 *SBHE S D1 *MEM CS16 E A2 SD7 E/S B2 *RESET S C2 LA23 E/S D2 *IO16 E A3 SD6 E/S B3 + 5V P C3 LA22 E/S D3 IRQ10 E A4 SD5 E/S B4 IRQ 2 E C4 LA21 E/S D4 IRQ11 E A5 SD4 E/S B5-5V P C5 LA20 E/S D5 IRQ12 E A6 SD3 E/S B6 DRQ 2 E C6 LA19 E/S D6 IRQ15 E A7 SD2 E/S B7-12V P C7 LA18 E/S D7 IRQ14 E A8 SD1 E/S B8 CRDSEL E C8 LA17 E/S D8 *DACK 0 S A9 SD0 E/S B9 + 12V P C9 *MRDC S D9 DRQ 0 E A10 IO CH RDY E B10 GND P C10 *MWTC S D10 *DACK 5 S A11 AEN S B11 *SMEMW S C11 SD8 E/S D11 DRQ 5 E A12 SA19 E/S B12 *SMEMR S C12 SD9 E/S D12 *DACK 6 S A13 SA18 E/S B13 *IOW E/S C13 SD10 E/S D13 DRQ 6 E A14 SA17 E/S B14 *IOR E/S C14 SD11 E/S D14 *DACK 7 S A15 SA16 E/S B15 *DACK 3 S C15 SD12 E/S D15 DRQ 7 E A16 SA15 E/S B16 DRQ 3 E C16 SD13 E/S D16 + 5V P A17 SA14 E/S B17 *DACK 1 S C17 SD14 E/S D17 *MASTER16 E A18 SA13 E/S B18 DRQ 1 E C18 SD15 E/S D18 GND P A19 SA12 E/S B19 *DACK 0 S A20 SA11 E/S B20 CLK S A21 SA10 E/S B21 IRQ 7 E A22 SA9 E/S B22 IRQ 6 E A23 SA8 E/S B23 IRQ 5 E A24 SA7 E/S B24 IRQ 4 E A25 SA6 E/S B25 IRQ 3 E A26 SA5 E/S B26 *DACK 2 S A27 SA4 E/S B27 T/C S A28 SA3 E/S B28 ALE S A29 SA2 E/S B29 + 5V P Conectores del BUS IS A. Distribución de señales A30 SA1 E/S B30 OSC S A31 SA0 E/S B31 GND P 60

61 El Bus de expansión ISA: Ejemplo D1 IOWR 74ALS32 1 2 3 A4 D5 A0 A6 D2 74LS245 2 3 4 5 6 7 8 9 19 1 18 17 16 15 14 13 12 11 A1 A2 A3 A4 A5 A6 A7 A8 G DIR B1 B2 B3 B4 B5 B6 B7 B8 VCC AEN D7 A7 D3 74LS21 9 10 12 13 8 A3 RESET A9 IRQ9 A1 D6 8254 8 7 6 5 4 3 2 1 22 23 19 20 21 9 11 10 15 14 13 18 16 17 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS CLK0 G0 OUT0 CLK1 G1 OUT1 CLK2 G2 OUT2 A5 D0 8255 34 33 32 31 30 29 28 27 5 36 9 8 35 6 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 74LS138 1 2 3 6 4 5 15 14 13 12 11 10 9 7 A B C G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 VCC A8 IORD A2 D4 74LS21 1 2 4 5 6

Memorias De modo que IBM ha equipado todos los XT con lo que considera ser el equipo mínimo para un ordenador personal serio. Ahora, el disco de 10 Mbytes y los 128K [un octavo de un Mbyte] de memoria representan la configuración mínima para una máquina seria. Escrito por Peter Norton en Inside the IBM PC, 1983. "640K debe ser suficiente para cualquiera. Bill Gates, 1981 62

Crecimiento de la velocidad de clock de las CPU versus memoria 1100 1000 900 Pentium III 1GHz 800 700 600 500 Pentium II 400 MHz. 400 300 200 100 DX 33 MHz 486 DX4 100 MHz. Memorias 89 90 91 92 93 94 95 96 97 98 99 00 63

SIMM Single In-Line Memory Module. Anchos de bus Un SIMM de 30 contactos soporta ocho bits de datos; un SIMM de 72 contactos soporta 32 bits de datos. 64

Small Outline DIMM (de contorno pequeño) o SO DIMM. Tipo de memoria que se usa comúnmente en laptops y portátiles DIMM Dual In-Line Memory Module. 65

Controlador de memoria 1 Microprocesadores dedicados a la supervisión de la transferencia de datos hacia y desde la memoria. 1 Desempeñan un rol activo en el proceso de corrección de errores, por medio de ciertos métodos, tales como paridad y ECC(Error Correction Code). 1 La diferencia entre ECC y paridad es que ECC es capaz de detectar y corregir los errores de un bit sin que el usuario se dé cuenta de que se ha producido un error. 1 Ciertos tipos de controladores de memoria implementan algoritmos ECC capaz detectar errores en 2, 3 ó 4 bits de memoria. Sin embargo, aun cuando ECC puede detectar estos errores de múltiples bits, sólo puede corregir los errores de un bit. Si se presenta el caso de un error de múltiples bits, el circuito ECC devuelve un error de paridad. 66

Tecnologías de DRAM 1 A fines de los 80 s y principios de los 90`s las CPU 80486 ejecutaban a 33 MHz, velocidad similar a la del bus del sistema. 1 Se utilizaban memorias DRAM de Página Rápida (FP = Fast Page), montada en módulos SIMM (Single Inline Memory Modules), cuya latencia o tiempo de acceso era de 100 nseg y su velocidad de 16 MHz, es decir la mitad aproximadamente de la velocidad del bus. 67

Tecnologías de DRAM 1 Memoria EDO 2 La memoria de Extended Data Output, o EDO, permite la salida de datos aún cuando la señal CAS haya terminado. De este modo se pudo progresar de velocidades de 33 MHz, a 66 MHz, alcanzando la mitad de la velocidad de los procesadores Pentium que en ese momento trabajaban a 133 MHz. En ancho del bus se llevó a 64 bits, y el tiempo de acceso o latencia standard de esta tecnología fue de 70 nseg. (10 a 15% más rápida que los chips de modalidad de paginación rápida). 1 SDRAM 2 La DRAM sincrónica es una tecnología de DRAM que utiliza un reloj para sincronizar la entrada y la salida de señales en un chip de memoria. El reloj está coordinado con el reloj de la CPU, para que la temporización de los chips de la memoria y de la CPU estén sincronizados. 2 Permite temporizar las address y los datos en un solo ciclo de clock, hecho que redujo el tiempo de acceso a 58 nseg. ( un 20% superior a la de la memoria EDO). 2 La organización de estos subsistemas de memoria pasó del montaje SIMM al DIMM conservando el ancho de bus en 64 bits. Posteriormente llegaron a velocidades de 100 MHz. corriendo detrás de los requerimientos de los procesadores Pentium, y su tiempo de acceso bajó a 56 nseg. 68

Tecnologías de DRAM 1 RAMBus 2 En 1999 Intel anunció la tecnología Rambus que permitiría partir de 1,6 Gbps de velocidad de transferencia, y agregando un segundo canal Rambus, llegar a 3,2 Gbps. Sin embargo su elevado costo, la complejidad que introducía en el diseño de los mother boards, y varios problemas en su implementación llevaron a los fabricantes de DRAMs a descartar esta solución, ya que los beneficios de performance no eran significativos cuando se efectuaban benchmarks frente a las otras tecnologías. 2 Esto demostró que la performance del sistema en lo que a la memoria se refiere, no depende tanto del ancho de banda del bus, como de la latencia (tiempo de acceso) que de acuerdo a la práctica es lo que manda. 1 Ahora que el ancho de banda del bus ha llegado hasta donde queremos y que el caché está en su máximo, qué debemos hacer a continuación?. El siguiente paso natural es acelerar el propio array de DRAM. Dataquest estima que las actuales tecnologías serán reemplazadas por otras de acceso rápido en el largo plazo. En el 2005, la mitas del mercado de u$s50 Billones de DRAM consistirán en DRAMs de acceso ràpido. Jim Handy, Principal Analyst, Dataquest. Dataquest Perspective: Defining the Market For Low Latency 15 de Mayo de 2000 69

Tecnologías de DRAM Chip típico de 256 Mbits de DRAM, organizado en 4 bancos internos de 64 Mbits cada uno de los cuales se compone de dos mitades de 8192 líneas de word (8 K líneas) y 4096 líneas de bits (4 Klíneas). La salida de información tiene lugar mediante las líneas de datos globales 70

Tecnologías de DRAM Arquitectura DRAM Standard comparada con el array SRAM- DRAM combinado. El caché SRAM toma la función de los Sense Amplifiers (SA) secundarios. A pesar de mover solo los datos desde las celdas especificadas por la señal CAS a través de las líneas de bit en los sense amps secundarios, la cantidad total de datos dentro de una fila activada se mueve al caché de fila. En consecuencia un requerimiento de lectura llamará los datos desde las celdas rápidas de SRAM. Al miso tiempo el array DRAM volverá al estado idle tan pronto como se haya ejecutado el comando auto precharge all. 71

Tecnologías de DRAM Diagrama detallado de la ESDRAM. Reemplazando los sense amps secundarios con un registro SRAM se reduce el riesgo de pasar por los sense amps primarios cuando se transmite la señal a las líneas globales de datos. Esto resulta en mayor velocidad de lectura que compensa con creces el tiempo que se toma el sistema en volcar los datos en el caché de fila. 72

Tecnologías de DRAM 1 DDR or SDRAM II 2 Double Data Rate SDRAM es la siguiente generación a la SDRAM. La DDR se basa en el diseño de la SDRAM, con mejoras que suponen un aumento de la velocidad de transferencia. Como resultado de esta innovación, la DDR permite la lectura de datos tanto en la fase alta como baja del ciclo del reloj, con lo que se obtiene el doble de ancho de banda que con la SDRAM estándar. La DDR duplica la velocidad respecto a la tecnología SDRAM sin aumentar la frecuencia del reloj. 73