sistemas computacionales de 32 bits - sitio web...

73
Autor: Alejandro Furfaro 1 Sistemas Computacionales de 32 bits Universidad Tecnológica Nacional - FRBA Técnicas Digitales III

Upload: others

Post on 25-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Autor: Alejandro Furfaro 1

Sistemas Computacionales de 32 bits

Universidad Tecnológica Nacional - FRBA Técnicas Digitales III

Autor: Alejandro Furfaro 2

Introducción1 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 Componentes2 Hardware

i Procesadori PeriféricosiMemoria

2 Softwarei Programas de control aplicado para computadoras dedicadasi Sistemas Operativos para computadoras de propósito general o de tipo

embedded. Su complejidad varía entre ambos casos

Autor: Alejandro Furfaro 3

Ejemplos mas comunes

1Sistemas de propósito General2Antecedentes durante los 70’s: Commodore 64 / 128,

Amiga, Talent MSX, etc.iProcesadores de 8 bits. Z80 en el mejor de los casos, iCantidad de memoria reducida.iDispositivos de almacenamiento mínimos.

2A principios de los 80’s IBM introduce su modelo de Personal Computer PC.iProcesador de 16 bits: 8088,iDispositivos de almacenamiento, y cantidad de memoria

levemente mejores a sus antecesoresi Introduce junto con Intel el concepto de diseños escalables por

compatibilidad ascendente2Al mismo tiempo Apple lanza la Machintosh (“Mac”)

Autor: Alejandro Furfaro 4

Ejemplos mas comunes1 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 ROMi Evolución tecnológica => PC-104. Standard Industriali 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 Module4 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

Autor: Alejandro Furfaro 5

Ejemplos de SOM: IA-32

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 Ethernet1 Intel 855GME GMCH/ ICH4 Chipset 400 MHz PSB1 Interfaces PCI & AGP1 6 ports host USB 2.0

144 mm

95 m

m

Autor: Alejandro Furfaro 6

Ejemplos SOM: XScale

102 mm68

mm

1 Procesador Xscale PXA 255 de 400MHz.1 Memoria DRAM de 32 / 64 /128 Mbytes1 On board 1 M Flash ROM. Expandible externamente hasta 64

Mbytes. 1 Ethernet 10 / 100 BaseT1 2 ports host USB 1.1. 1 port USB device side1 Interfaz LCD 1024x768

Autor: Alejandro Furfaro 7

Ejemplos SBC: PC-1041 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 Ethernet1 Intel 855GME GMCH/

ICH4 Chipset 400 MHz PSB

1 Interfaces PCI & AGP1 6 ports host USB 2.0

96 mm11

5 m

m

Autor: Alejandro Furfaro 8

Componentes circuitales de una PC XT

Autor: Alejandro Furfaro 9

Mapa de Memoria00000000

Vector de IntModo RealBIOS Data Area

Area de datos y programas

1 K

byte

64

0 K

byte

s

0009FFFF000A0000

000BFFFF000C0000

000FFFFF00100000

FFFFFFFF

Autor: Alejandro Furfaro 10

Mapa de Memoria00000000

0009FFFF000A0000

000BFFFF000C0000

000FFFFF00100000

Buffers de Video Modos Texto y Gráfico

12

8 K

byte

s

FFFFFFFF

Autor: Alejandro Furfaro 11

Mapa de Memoria00000000

0009FFFF000A0000

000BFFFF000C0000

000FFFFF00100000

Zona de Extensión de

BIOS

64

Kb

yte

s

POST

BIOS

19

2 K

byte

s

FFFFFFFF

000FFFFF

000C0000

000EFFFF000F0000

Autor: Alejandro Furfaro 12

Mapa de E/S en una PC

Autor: Alejandro Furfaro 13

Hardware de Soporte de E/S1 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.

Autor: Alejandro Furfaro 14

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 PC2Enví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).

Autor: Alejandro Furfaro 15

Interrupciones en los procesadoresNotas:1 La instrucción

UD2 fueintroducida 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.

Autor: Alejandro Furfaro 16

Asignación de Interrupciones en unaPC

Autor: Alejandro Furfaro 17

DATABUS

BUFFER

D0 - D7

INSERVICE

REGISTER(ISR)

PRIORITYRESOLVER

INTERRUPTREQUESTREGISTER

(IRR)

INTERRUPT MASK REGISTER (IMR)

LOGICA DE CONTROL

INTA INT

IRQ0

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

BUS DE DATOS INTERNO

READWRITELOGIC

RD

WR

A0

CS

CASCADEBUFFER

COMPARA-TOR

CAS0

CAS1

CAS2

SP/EN

Interrupciones de Hardware: El PIC 8259

Autor: Alejandro Furfaro 18

Configuración del PIC 8259 en la PC

INT

INTA

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

Procesador80x86

INTR

INTA

8259Master

20h-21h

8259Slave

A0h-A1h

INT

INTA

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

CA

S 0

CA

S 1

CA

S 2

CA

S 0

CA

S 1

CA

S 2

OUT0

825440h-43h

8042Keyb Cont

SP/EN

SP/ENVcc

IRQ3IRQ4IRQ5IRQ6IRQ7

IRQ8IRQ9IRQ10

IRQ11IRQ12IRQ13IRQ14IRQ15

Nombre de las líneas en del Sub-sistema de

Interrupciones de la PC

Disponibles en los buses de expansión

Este 2do. 8259 fue agregado a partir dela PC-AT286

Timer TickTimer Tick

Data Bus

Autor: Alejandro Furfaro 19

Asignación y Tipo de las IRQ’s

Autor: Alejandro Furfaro 20

Interrupción No Enmascarable (NMI)

7 6 5 4 3 2 1 0

Error de paridad en MemoriaError de paridad en el Bus

Error del Coprocesador 8087MNI

80x86

Port de E/S 0A0h

7 6 5 4 3 2 1 0

Error de paridad en Memoria

Error de paridad en el BusMNI

80x86

Port de E/S 070h

Autor: Alejandro Furfaro 21

Programación del PIC 82591 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 dividirse2 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.

Autor: Alejandro Furfaro 22

Programación del PIC 8259; Inicialización PIC #1

mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si.out 20h,almov al,8 ;ICW2: INT base para el PIC N#1 Tipo 8.out 21h,almov al,04h ;ICW3: PIC N#1 Master, tiene un Slave conectado a IRQ2 (0000 0100b)out 21h,almov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086out 21h,al

; Antes de inicializar el PIC N#2, deshabilitamos las Interrupciones del PIC N#1mov al,0FFh :OCW1: Set o Clear el IMRout 21h,al

; Inicialización PIC N #2mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si.out 0A0h,almov al,070h ;ICW2: INT base para el PIC N#1 Tipo 070h.out 0A1h,almov al,02h ;ICW3: PIC N#2 Slave, IRQ2 es la línea que envía al Master (010b)out 0A1h,almov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086out 0A1h,al

; Inicialización PIC #1 mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si.out 20h,almov al,8 ;ICW2: INT base para el PIC N#1 Tipo 8.out 21h,almov al,04h ;ICW3: PIC N#1 Master, tiene un Slave conectado a IRQ2 (0000 0100b)out 21h,almov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086out 21h,al

; Antes de inicializar el PIC N#2, deshabilitamos las Interrupciones del PIC N#1mov al,0FFh :OCW1: Set o Clear el IMRout 21h,al

; Inicialización PIC N #2mov al,11h ;ICW1: IRQs activas por flanco, Modo cascada, ICW4 Si.out 0A0h,almov al,070h ;ICW2: INT base para el PIC N#1 Tipo 070h.out 0A1h,almov al,02h ;ICW3: PIC N#2 Slave, IRQ2 es la línea que envía al Master (010b)out 0A1h,almov al,01h ;ICW4: Modo No Buffered, Fin de Interrupción Normal, procesador 8086out 0A1h,al

Autor: Alejandro Furfaro 23

Power On Self Test1 Antes de iniciar su operación el sistema verificará el correcto

funcionamiento de la CPU1 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.

Autor: Alejandro Furfaro 24

Power On Self Test6. 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

Autor: Alejandro Furfaro 25

Power On Self Test11.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

Autor: Alejandro Furfaro 26

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ñada1 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.

Autor: Alejandro Furfaro 27

Extensiones BIOS: Mapa de Memoria00000000

0009FFFF000A0000

000BFFFF000C0000

000FFFFF00100000

POST

BIOS

FFFFFFFF

000FFFFF

000C0000

000EFFFF000F0000

Extensión de BIOS

Formato del encabezado de la de extensión BIOS:

Encabezado

Código y datos de la extensión

2Kbytes2Kbytes

Autor: Alejandro Furfaro 28

Arranque del sistema operativo1La rutina Boostrap Loader del BIOS solo se limita a 2Leer el primer sector físico del disco. 2Cargar los 512 bytes en memoria RAM (0000h:7C00h)2Saltar al primer byte (debe haber allí una instrucción

válida)1La unidad de disco que lee es la que tiene

configurada el equipo en la secuencia de arranque.1En ese sector debe residir un programa que sepa

cargar al Sistema Operativo.2Debe 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

2Debe descargarlos en memoria y en algún momento transferirles la ejecución.

Autor: Alejandro Furfaro 29

Organización de la información en el disco

1Los Sistemas Operativos almacenan la información en los discos en archivos

1Los archivos se organizan bajo una estructura de información que se conoce como file system.

1Cada sistema operativo establece su propio file system.2El mas popular (lo interpretan TODOS los sistemas

operativos) es el FAT, que introdujo en su época el sistema Operativo MS DOS

2Por eso, y por su enorme sencillez y difusión, es ideal para organizar el disquete que contenga el programa de arranque del Sistema Operativo

Autor: Alejandro Furfaro 30

Organización de la información en el disco

Boot SectorContiene el programa de carga del Sistema Operativo

FATFAT=File Allocation Table.Lista enlazada que contiene la referencia a los sectores del disco en los que están almacenados los archivos.

FAT #2

Copia de la FAT (única medida de consistencia del File System)

Directorio Root

Directorio Raíz: Contiene las referencias a archivos y subdirectorios Zona de

almacenamientoArea en donde están almacenados los archivos

Autor: Alejandro Furfaro 31

Boot Sector: BIOS Parameter Block[BITS 16]

ORG 0jmp START

OEM_ID db "TD3 OS"BytesPerSector dw 0x0200SectorsPerCluster db 0x01ReservedSectors dw 0x0001TotalFATs db 0x02MaxRootEntries dw 0x00E0TotalSectorsSmall dw 0x0B40MediaDescriptor db 0xF0SectorsPerFAT dw 0x0009SectorsPerTrack dw 0x0012NumHeads dw 0x0002HiddenSectors dd 0x00000000TotalSectorsLarge dd 0x00000000DriveNumber db 0x00Flags db 0x00Signature db 0x29VolumeID dd 0xFFFFFFFFVolumeLabel 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

BIO

S Pa

ram

eter

Blo

ck(6

2 by

tes)

Autor: Alejandro Furfaro 32

Directorio Boot Sector

FAT

FAT #2

Zona de almacenamiento

Nombre Extensión

Reservados FechaCreación

Horacreación

1er. Cluster

10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

AtributosBit Significado0 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

Byte 19. aaaaaaamByte 18. mmmddddd

0 1 2 3 4 5 6 7 8 9 A B C D E F

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

Reservados

LongitudDirectorio

Root

Autor: Alejandro Furfaro 33

FAT 12Boot Sector

1er. Cluster

Siguiente Cluster

Siguiente Cluster

12 bits

000 Cluster VacíoFF7 Cluster DañadoFF8-FFF Ultimo ClusterCualquier otro valorNext Cluster

1 byte

1er. EntradaFAT

2da.

Ent

rada

FAT #2

Directorio Root

Zona de almacenamiento

Autor: Alejandro Furfaro 34

FAT 12Boot Sector

1er. Cluster

12 bits

000 Cluster VacíoFF7 Cluster DañadoFF8-FFF Ultimo ClusterCualquier otro valorNext Cluster

N

1 byte

1er. Entrada

FAT

2da.

Ent

rada

FAT #2

Field Value Directorio Root

Zona de almacenamiento

NN = (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) << 8Ej: 33h | ((41h & 0Fh) << 8) = 133hSi N es impar

(N >> 4) OR ((N + 1) << 4)Ej:(41h >> 4) | (14h << 4) = 144h

Autor: Alejandro Furfaro 35

FAT 12Boot Sector000 Cluster Vacío

FF7 Cluster DañadoFF8-FFF Ultimo ClusterCualquier otro valor: Next Cluster FAT

FAT #2

Directorio Root

Zona de almacenamiento

0500 4000

0 1 2 3

0700 FFF 0900 FFF

4 5 6 7 8 9

FFFFFF

Arch1.txt

Arch2.txt

0002 Arch3.txt

Arch4.txt

0006

0003 0008

Autor: Alejandro Furfaro 36

Algoritmo para FAT 12LOAD_IMAGE:

mov ax, WORD [cluster] ;cluster a leerpop bx ;buffer en donde leer el clustercall Cluster2LBA ;convierte cluster a modo de dirección LBAxor cx, cxmov cl, BYTE [SectorsPerCluster];cantidad de sectores por clustercall ReadSectorspush bx

;calcula siguiente clustermov ax, WORD [cluster] ;cluster actualmov cx, ax ;copia 1 del cluster actualmov dx, ax ;copia 2 del cluster actualshr dx, 0x0001 ;copia 2 = copia 2 / 2add cx, dx ;copia 1 = copia 1 + (copia 2/2) = mult * 1,5 ;-)mov bx, 0x0200 ;bx apunta al buffer que contiene la FATadd bx, cx ;ahora bx apunta a la entrada de la FATmov dx, WORD [bx] ;leemos 2 bytes de la FATtest 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 actualcmp dx, 0x0FF0 ;testea que no sea EOFjb LOAD_IMAGE ;Si es menor vuelve a leer siguiente cluster

Autor: Alejandro Furfaro 37

FAT 16Boot Sector0000 Cluster Vacío

FFF7 Cluster DañadoFFF8-FFFF Ultimo ClusterCualquier otro valor: Next Cluster FAT

FAT #2

Directorio Root

Zona de almacenamiento

0005 0004

0 1 2 3

0007 FFFF 0009 FFFF

4 5 6 7 8 9

FFFFFFFF

Arch1.txt

Arch2.txt

0002 Arch3.txt

Arch4.txt

0006

0003 0008

En este caso el algoritmo es simple.Cada entrada de 16 bits es un puntero a la siguiente

Autor: Alejandro Furfaro 38

Acceso Directo a Memoria (DMA)

DREQ0

DREQ1

DREQ2

DREQ3

DACK0

DACK1

DACK2

DACK3

HRQ

HLDA

HOLD

HLDA

CPU

Controlador de DMA(8237A)

AddressBus

Add

ress

Bu

s

DRAM

Data Bus

Device 1Device 1

Device 2Device 2

Device 3Device 3

Device 4Device 4

Autor: Alejandro Furfaro 39

Subsistema de DMA en la PC y PC-XT

RAS0RAS1RAS2RAS3

RAS

74S08

74S08

A0

74LS2441G 2G

A1A2A3A4A5A6A7

74LS670

RDW

D0D1D2D3WAWBRBRA

Q0Q1Q2Q3

A16A17A18A19

Bus d

e D

irecc

ione

s “Bu

ffer

eado

A0A1A2A3A4A5A6A7

DACK0DACK1DACK2DACK3

EOP

AEN NC

Bus

de

D

irecc

ione

s

A8

74LS373

OE

LE

A9A10A11A12A13A14 A15

XD0 XD1 XD2 XD3 XD4 XD5 XD6 XD7 Bu

s

d

e

Dat

os

“Bu

ffer

eado

DB0DB1DB2DB3DB4DB5DB6DB7

8237A

DACK0 DACK1 DACK2 DACK3

EOP

AEN

Al S

lot I

SA d

el S

istem

a

ADSTB

GND

IOR IOWMEMR MEMW

74LS243XIORXIOWXMEMRXMEMW

Bus de Control

8288

IORIOW MEMR

MEMW

S0 S1 S2

Seña

les d

e St

atus

de

l 808

8

74LS138

CSAEN

G2A G2B

A B C

Y0

Y4

XA5XA6XA7XA8

XA9

RESCLK

RDY

DREQ1DREQ2DREQ3

DREQ0

HLDAHRQ

DREQ1DREQ2DREQ3

HLDA

HRQ

RESCLK

RDY TO DMA

74LS74QCL

D CLS

8253

OUT 1

5Vcc

Fig. 6. Circuito de Control de DMA en una IBM PC XT

DMA AEN

74LS32WRT DMA PG RG

Autor: Alejandro Furfaro 40

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

Autor: Alejandro Furfaro 41

Subsistema de DMA a partir de la PC AT286

Autor: Alejandro Furfaro 42

Subsistema de DMA a partir de la PC AT286

Autor: Alejandro Furfaro 43

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.

Autor: Alejandro Furfaro 44

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 detecnología IDE/ATA, de modo que estos PIO modes fueron incluidos en lasrespectivas 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

Autor: Alejandro Furfaro 45

Subsistemas de DMA modernos1 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 DMA2 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.

Autor: Alejandro Furfaro 46

TecladoUn 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 algunastraducciones)

Autor: Alejandro Furfaro 47

TecladoEl SCAN CODE se transmite cada vez que se pulsa una tecla acción conocida como MAKE, razón por la cual se denomina MAKE CODECuando 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+DELPara 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

MAKE

BREAK

Autor: Alejandro Furfaro 48

Controlador de Teclado

Registros accesibles desde la PC1 Registro de status (Read) o comandos (Write). Se accede en la

dirección 64h de E/S de la PC1 Output Buffer (Read only), para leer el código de la tecla pulsada o

liberada.Se accede en la dirección 60h de E/S1 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.

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.

Autor: Alejandro Furfaro 49

Controlador de Teclado

Autor: Alejandro Furfaro 50

BIOS Data Area: Bytes de Estado de teclas modificadoras

Address 0040:0017

Address 0040:0018

Autor: Alejandro Furfaro 51

Rutina de Atención de Int. de TecladoDetección de SCANDetección de SCAN

Actualiza Bytes de Estados en BIOS Data

Area

Actualiza Bytes de Estados en BIOS Data

Area

Analiza estado de Teclas Modificadoras

Analiza estado de Teclas Modificadoras

Traduce el Scan Code a ASCII desde una TablaTraduce el Scan Code a ASCII desde una Tabla

Es un ASCII Extendido?

Es un ASCII Extendido?

Escribe Scan Code y ASCII en el Buffer de Teclado

Escribe Scan Code y ASCII en el Buffer de Teclado

Es un BreackCode?

Es un BreackCode?

Es la Tecla INS?

Es la Tecla INS?

Escribe ASCII Extendido en el buffer

de teclado

Escribe ASCII Extendido en el buffer

de teclado

FINFIN

SISI

NONO

SISISISI

NONO

SISI

NONO

SISIEs una Tecla Modificadora?Es una Tecla Modificadora?

NONO

NONOEs un Breack Code?

Es un Breack Code?

Autor: Alejandro Furfaro 52

BIOS Data Area: Buffer circular de teclado

Autor: Alejandro Furfaro 53

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

Autor: Alejandro Furfaro 54

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_locationout 70h, alin al,71h

WRITE:mov al,Memory_locationout 70h,almov al,New_contentsout 71h,al

Autor: Alejandro Furfaro 55

Reloj en Tiempo Real

Status Register A

UIPUIP DV0-2DV0-2 RS3-0RS3-0

7 6 5 4 3 2 1 0

Update in progress. 1: Indica ciclo de actualización del reloj en proceso. 0: Indica fecha y hora listas para su lectura

Update in progress. 1: Indica ciclo de actualización del reloj en proceso. 0: Indica fecha y hora listas para su lectura

DV2-0:Divisor de 22 etapas que permite setear la frecuencia de la base de tiempos del sistema. El power on selftest lo coloca en 010 de modo de establecer 32,768 Khz.

DV2-0:Divisor de 22 etapas que permite setear la frecuencia de la base de tiempos del sistema. El power on selftest lo coloca en 010 de modo de establecer 32,768 Khz.

RS3-0: Rate Selection bits. Seleccionan el divisor de frecuencia de salida. El sistema inicializa este valor en 0110. Esto selecciona una señal cuadrada de salida de 1024 Hz, o lo que es igual un período de 0,976562 mseg.

RS3-0: Rate Selection bits. Seleccionan el divisor de frecuencia de salida. El sistema inicializa este valor en 0110. Esto selecciona una señal cuadrada de salida de 1024 Hz, o lo que es igual un período de 0,976562 mseg.

Autor: Alejandro Furfaro 56

Reloj en Tiempo Real Status Register B

7 6 5 4 3 2 1 0

Set 24/12DSEDSE

0: Se actualiza el reloj a razón de una cuenta por segundo. 1: Se detiene la actualización permitiendo inicializar los 14 registros sin interrupción hasta que vuelva a ponerse en ‘0’.

0: Se actualiza el reloj a razón de una cuenta por segundo. 1: Se detiene la actualización permitiendo inicializar los 14 registros sin interrupción hasta que vuelva a ponerse en ‘0’.

Periodic Interrupt Enable. Activo alto. Habilita el envío de unaseñal de interrupción a períodos establecidos en los bits RS3-0 del Status Register A.

Periodic Interrupt Enable. Activo alto. Habilita el envío de unaseñal de interrupción a períodos establecidos en los bits RS3-0 del Status Register A.

Alarm Interrupt Enable. Activo alto. Habilita el envío de una interrupción en la fecha y hora de alarma programada. Alarm Interrupt Enable. Activo alto. Habilita el envío de una interrupción en la fecha y hora de alarma programada.

Update-Ended Interrupt Enable. Habilita (activo alto) el envío de interrupción cada vez que actualiza fecha y hora. Update-Ended Interrupt Enable. Habilita (activo alto) el envío de interrupción cada vez que actualiza fecha y hora.

Set PIEPIE AIEAIE UIE SQWEUIE SQWE DM24/12DM

Autor: Alejandro Furfaro 57

Reloj en Tiempo Real

Status Register B7 6 5 4 3 2 1 0

24/12DSEDSE

Square Wave Enable. Activo alto. Habilita la generación de una ondacuadrada a intervalos establecidos en el Status Register A.Square Wave Enable. Activo alto. Habilita la generación de una onda cuadrada a intervalos establecidos en el Status Register A.

Date Mode. 0: Fecha y hora se actualizan en BCD (El POST lo inicializa de este modo). 1: Fecha y hora se actualizan en Binario.Date Mode. 0: Fecha y hora se actualizan en BCD (El POST lo inicializa de este modo). 1: Fecha y hora se actualizan en Binario.

0: Modo 12 hs. 1: Modo 24hs. (El POST lo inicializa de este modo)0: Modo 12 hs. 1: Modo 24hs. (El POST lo inicializa de este modo)

Daylight Saving Enable. El POST lo inicializa en 0,indicando que no está habilitadoDaylight Saving Enable. El POST lo inicializa en 0,indicando que no está habilitado

SetSet PIEPIE AIEAIE UIE SQWEUIE SQWE DM24/12DM

Autor: Alejandro Furfaro 58

Reloj en Tiempo Real

Status Register C7 6 5 4 3 2 1 0

PFPF AFAF UFUF

Bits Read only, que reflejan el estado de los bits PIE, AIE, y

UIE del Status Register B

Bits Read only, que reflejan el estado de los bits PIE, AIE, y

UIE del Status Register B

Status Register DValid RAM and Time.Indica con un 0 que el sistema no tiene alimentación suficiente (batería de Litio baja)

Valid RAM and Time.Indica con un 0 que el sistema no tiene alimentación suficiente (batería de Litio baja)

7 6 5 4 3 2 1 0

VRTVRT

Autor: Alejandro Furfaro 59

El Bus de expansión ISA

Vista frontal del conector del bus ISA

Microprocesador

Memoria

Motherboard

Autor: Alejandro Furfaro 60

El Bus de expansión ISA: SeñalesConector 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 A30 SA1 E/S B30 OSC S A31 SA0 E/S B31 GND P

Conectores del BUS ISA. Distribución de señales

Autor: Alejandro Furfaro 61

El Bus de expansión ISA: Ejemplo

D1

IOWR

74ALS32

1

23

A4

D5

A0

A6

D2

74LS245

23456789

191

1817161514131211

A1A2A3A4A5A6A7A8

GDIR

B1B2B3B4B5B6B7B8

VCC

AEN

D7

A7

D3

74LS21

910

1213

8

A3

RESET

A9

IRQ9

A1

D6

8254

87654321

22231920

21

91110

151413

181617

D0D1D2D3D4D5D6D7

RDWRA0A1

CS

CLK0G0

OUT0

CLK1G1

OUT1

CLK2G2

OUT2

A5

D0 8255

3433323130292827

53698

356

432140393837

1819202122232425

1415161713121110

D0D1D2D3D4D5D6D7

RDWRA0A1RESETCS

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

VCC

A8

IORD

A2

D4

74LS21

12

45

6

Autor: Alejandro Furfaro 62

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

Autor: Alejandro Furfaro 63

Crecimiento de la velocidad de clockde las CPU versus memoria

1100

1000

900

800

700

600

500

400

300

200

100

89 90 91 92 93 94 95 96 97 98 99 00

486 DX4100 MHz.

DX33 MHz

Pentium II400 MHz.

Pentium III1GHz

Memorias

Autor: Alejandro Furfaro 64

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.

Autor: Alejandro Furfaro 65

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 MemoryModule.

Autor: Alejandro Furfaro 66

Controlador de memoria1 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.

Autor: Alejandro Furfaro 67

Tecnologías de DRAM

1A 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.

1Se 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.

Autor: Alejandro Furfaro 68

Tecnologías de DRAM1 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 latenciastandard 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 SDRAM2 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.

Autor: Alejandro Furfaro 69

Tecnologías de DRAM1 RAMBus

2 En 1999 Intel anunció la tecnología Rambus que permitiría partir de 1,6Gbps de velocidad de transferencia, y agregando un segundo canalRambus, 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 enDRAMs de acceso ràpido” . Jim Handy, Principal Analyst, Dataquest.Dataquest Perspective: “Defining the Market For Low Latency” 15 de Mayo de 2000

Autor: Alejandro Furfaro 70

Tecnologías de DRAMChip típico de 256 Mbits de DRAM, organizado en 4 bancos internos de 64 Mbitscada 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

Autor: Alejandro Furfaro 71

Tecnologías de DRAMArquitectura 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 lossense ampssecundarios, 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”.

Autor: Alejandro Furfaro 72

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.

Autor: Alejandro Furfaro 73

Tecnologías de DRAM

1 DDR or SDRAM II2 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.