Presentación de PowerPoint - Universidad Tecnológica Nacional

Anuncio
Sistemas Computacionales de 32
bits
Universidad Tecnológica Nacional - FRBA
Técnicas Digitales III
Autor: Alejandro Furfaro
1
Introducción
1
Sistemas Computacional:
2
2
2
1
Conjunto de dispositivos lógicos de Hardware y Software que se
utilizan para procesar datos, señales, o cualquier información digital.
Dedicados: Cumplen una única función o un grupo determinado de
funciones específicas
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.
Componentes
2
Hardware
Procesador
i Periféricos
i Memoria
i
2
Software
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
Autor: Alejandro Furfaro
i
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.
2A
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”)
Autor: Alejandro Furfaro
3
Ejemplos mas comunes
1 Computadoras
2 Sistemas
dedicadas.
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
Autor: Alejandro Furfaro
4
Ejemplos de SOM: IA-32
95 mm
144 mm
1
1
1
1
Autor: Alejandro Furfaro
1
1
Procesador Embedded Pentium M o Dothan 1.6 GHz/1.1 GHz con
64KB de memoria cache L1.
Memoria DRAM 2 x 200 pin SODIMM sockets, ECC Double Data Rate
(DDR)128 MB to 1 GB. Caché 2do nivel de 1 M
1000Base-T Ethernet
Intel 855GME GMCH/ ICH4 Chipset 400 MHz PSB
Interfaces PCI & AGP
5
6 ports host USB 2.0
Ejemplos SOM: XScale
68 mm
102 mm
1
1
1
1
1
Autor: Alejandro Furfaro
1
Procesador Xscale PXA 255 de 400MHz.
Memoria DRAM de 32 / 64 /128 Mbytes
On board 1 M Flash ROM. Expandible externamente hasta 64
Mbytes.
Ethernet 10 / 100 BaseT
2 ports host USB 1.1. 1 port USB device side
Interfaz LCD 1024x768
6
Ejemplos SBC: PC-104
96 mm
1
115 mm
1
Autor: Alejandro Furfaro
1
1
1
1
Procesador Embedded
Pentium M 1.6 GHz/1.1
GHz con 64KB de
memoria cache L1.
Memoria DRAM 2 x 200
pin SODIMM sockets,
ECC Double Data Rate
(DDR)128 MB to 1 GB.
Caché 2do nivel de 1 M
100Base-T Ethernet
Intel 855GME GMCH/
ICH4 Chipset 400 MHz
PSB
Interfaces PCI & AGP
6 ports host USB 2.0
7
Componentes circuitales de una PC
XT
Autor: Alejandro Furfaro
8
0009FFFF
000A0000
000BFFFF
000C0000
000FFFFF
00100000
Vector de Int
Modo Real
BIOS Data
Area
Area de datos
y programas
640 Kbytes
00000000
1 Kbyte
Mapa de Memoria
FFFFFFFF
Autor: Alejandro Furfaro
9
Mapa de Memoria
0009FFFF
000A0000
000BFFFF
000C0000
Buffers de
Video Modos
Texto y
Gráfico
128 Kbytes
00000000
000FFFFF
00100000
FFFFFFFF
Autor: Alejandro Furfaro
10
Mapa de Memoria
0009FFFF
000A0000
Zona de
Extensión de
BIOS
000BFFFF
000C0000
000FFFFF
00100000
000EFFFF
000F0000
000FFFFF
POST
BIOS
192 Kbytes
000C0000
64 Kbytes
00000000
FFFFFFFF
Autor: Alejandro Furfaro
11
Mapa de E/S en una PC
Autor: Alejandro Furfaro
12
Hardware de Soporte de E/S
1
8253 / 8254:
2
2
2
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”.
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.
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.
Registro de comando y status. Dirección 43h.
Autor: Alejandro Furfaro
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
2
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.
Port B: Dirección 61h. Sus líneas trabajan como salidas de control
individuales.
2 Envío de la salida del Timer0 al parlante de la PC
2 Enví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.
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
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.
Autor: Alejandro Furfaro
15
Asignación de Interrupciones en una
PC
Autor: Alejandro Furfaro
16
Interrupciones de Hardware: El PIC
8259
INTA
D0 - D7
DATA
BUS
BUFFER
INT
LOGICA DE CONTROL
BUS
DE
DATOS
INTERNO
RD
IRQ0
READ
WRITE
LOGIC
WR
A0
IRQ1
IN
SERVICE
REGISTER
(ISR)
PRIORITY
RESOLVER
CS
INTERRUPT
IRQ2
REQUEST
REGISTER
(IRR)
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
CAS0
CAS1
CAS2
CASCADE
BUFFER
COMPARATOR
INTERRUPT MASK
REGISTER (IMR)
SP/EN
Autor: Alejandro Furfaro
17
Configuración del PIC 8259 en la PC
Timer
Timer Tick
Tick
Data Bus
Autor: Alejandro Furfaro
CAS2
CAS1
CAS0
SP/EN
0
Disponibles en los
buses de expansión
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
IRQ8
IRQ9
IRQ10
IRQ0
IRQ1
INT
IRQ2
IRQ3
INTA
IRQ4
IRQ5
8259
Slave IRQ6
A0h-A1h IRQ7
SP/EN
CAS2
Procesador
80x86
8042
Keyb Cont
CAS1
INTA
OUT
CAS0
INTR
8259
Master
IRQ0
20h-21h
IRQ1
INT
IRQ2
IRQ3
INTA
IRQ4
IRQ5
IRQ6
IRQ7
8254
40h-43h
Este 2do. 8259 fue
agregado a partir de
la PC-AT286
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
Vcc
Nombre de las líneas
en del Sub-sistema de
Interrupciones de la PC
18
Asignación y Tipo de las IRQ’s
Autor: Alejandro Furfaro
19
Interrupción No Enmascarable (NMI)
80x86
Error de paridad en Memoria
Error de paridad en el Bus
Error del Coprocesador 8087
MNI
7 6 5 4 3 2 1 0
Port de E/S 0A0h
80x86
Error de paridad en Memoria
Error de paridad en el Bus
MNI
7 6 5 4 3 2 1 0
Port de E/S 070h
Autor: Alejandro Furfaro
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
2
2
1
La primer PC tenía un solo PIC en las direcciones de port 20h y 21h.
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.
Este PIC es accesible en las direcciones de port A0h y A1h.
Palabras de Comando de Inicialización:
2
2
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.
A los efectos del PIC 8259, la secuencia de Inicialización es una operación
atómica, es decir, que no puede dividirse
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
21
Programación del PIC 8259
;;Inicialización
InicializaciónPIC
PIC#1
#1
mov
mov al,11h
al,11h ;ICW1:
;ICW1:IRQs
IRQsactivas
activaspor
porflanco,
flanco,Modo
Modocascada,
cascada,ICW4
ICW4Si.
Si.
out
20h,al
out 20h,al
mov
;ICW2:
mov al,8
al,8
;ICW2:INT
INTbase
basepara
parael
elPIC
PICN#1
N#1Tipo
Tipo8.
8.
out
out 21h,al
21h,al
mov
mov al,04h
al,04h ;ICW3:
;ICW3:PIC
PICN#1
N#1Master,
Master,tiene
tieneun
unSlave
Slaveconectado
conectadoaaIRQ2
IRQ2(0000
(00000100b)
0100b)
out
out 21h,al
21h,al
mov
al,01h
mov al,01h ;ICW4:
;ICW4:Modo
ModoNo
NoBuffered,
Buffered,Fin
Finde
deInterrupción
InterrupciónNormal,
Normal,procesador
procesador8086
8086
out
21h,al
out 21h,al
;;Antes
Antesde
deinicializar
inicializarel
elPIC
PICN#2,
N#2,deshabilitamos
deshabilitamoslas
lasInterrupciones
Interrupcionesdel
delPIC
PICN#1
N#1
mov
mov al,0FFh
al,0FFh:OCW1:
:OCW1:Set
SetooClear
Clearel
elIMR
IMR
out
out 21h,al
21h,al
;;Inicialización
InicializaciónPIC
PICNN#2
#2
mov
al,11h
;ICW1:
mov al,11h ;ICW1:IRQs
IRQsactivas
activaspor
porflanco,
flanco,Modo
Modocascada,
cascada,ICW4
ICW4Si.
Si.
out
0A0h,al
out 0A0h,al
mov
mov al,070h
al,070h;ICW2:
;ICW2:INT
INTbase
basepara
parael
elPIC
PICN#1
N#1Tipo
Tipo070h.
070h.
out
out 0A1h,al
0A1h,al
mov
mov al,02h
al,02h ;ICW3:
;ICW3:PIC
PICN#2
N#2Slave,
Slave,IRQ2
IRQ2es
esla
lalínea
líneaque
queenvía
envíaal
alMaster
Master(010b)
(010b)
out
0A1h,al
out 0A1h,al
mov
mov al,01h
al,01h ;ICW4:
;ICW4:Modo
ModoNo
NoBuffered,
Buffered,Fin
Finde
deInterrupción
InterrupciónNormal,
Normal,procesador
procesador8086
8086
out
out 0A1h,al
0A1h,al
Autor: Alejandro Furfaro
22
Power On Self Test
1
1
1
1
1
Antes de iniciar su operación el sistema verificará el correcto
funcionamiento de la CPU
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).
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.
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.
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
23
Power On Self Test
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
6.
Autor: Alejandro Furfaro
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
Autor: Alejandro Furfaro
25
Detección de extensiones BIOS
1
1
1
1
1
1
1
1
El POST busca extensiones de BIOS.
El rango de direcciones de memoria en las que se puede
mapear estas ROMs va desde la C0000h hasta la EFFFFh.
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.
Si el POST detecta alguna ROM adicional, le transfiere
temporariamente el control. La extensión de BIOS:
Inicializará el hardware para el que fue diseñada
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.
Interceptará las interrupciones que necesite, enganchándose
a sí misma en el sistema.
Devolverá al POST el control del sistema (RET) dejando al
hardware asociado a la extensión BIOS, listo para su uso.
Autor: Alejandro Furfaro
26
Extensiones BIOS: Mapa de Memoria
00000000
0009FFFF
000A0000
000BFFFF
000C0000
000FFFFF
00100000
000C0000
2Kbytes
2Kbytes
Extensión de
BIOS
000EFFFF
000F0000
POST
000FFFFF
BIOS
Encabezado
Código y
datos de la
extensión
Formato del encabezado de la de extensión BIOS:
FFFFFFFF
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
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
Autor: Alejandro Furfaro
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
Autor: Alejandro Furfaro
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
Autor: Alejandro Furfaro
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
Nombre
Extensión
Reservados
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
Reservados
Atributos
Hora Fecha 1er.
creaciónCreación Cluster
Longitud
Byte 19. aaaaaaam
Significado
De lectura solamente.
Byte 18. mmmddddd
Archivo no visible (hidden).
Archivo propio del sistema.
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.
Byte 17. hhhhhmmm
7
Reservado.
Autor: Alejandro Furfaro
Byte 16. mmmsssss
Bit
0
1
2
3
Boot Sector
FAT
FAT #2
Directorio
Root
Zona de
almacenamiento
32
FAT 16
Boot Sector
0000 Cluster Vacío
FFF7 Cluster Dañado
FFF8-FFFF Ultimo Cluster
Cualquier otro valor: Next Cluster
Arch1.txt 0002
FAT
Arch3.txt 0006
Arch2.txt 0003
0
1
2
3
4
5
Arch4.txt 0008
6
7
8
9
FDFF FFFF 0005 0004 0007 FFFF FFFF FFFF 0009 FFFF
Reservados
En este caso el algoritmo es simple.
El Nro. de Cluster se multiplica por 2
Cada entrada de 16 bits es un puntero a la siguiente
Autor: Alejandro Furfaro
FAT #2
Directorio
Root
Zona de
almacenamiento
33
FAT 12
12 bits
Siguiente Cluster
Siguiente Cluster
Autor: Alejandro Furfaro
Boot Sector
1 byte
2da. Entrada
000 Cluster Vacío
FF7 Cluster Dañado
1er. Entrada
FF8-FFF Ultimo Cluster
Cualquier otro valor 1er. Cluster
Next Cluster
FAT
FAT #2
Directorio
Root
Zona de
almacenamiento
34
FAT 12
12 bits
Field Value
N = (Field value) * 1.5
Lee word a partir de N luego el nuevo
offset para el próximo elemento se
obtiene de:
Si N es entero:
WORD [N] & 0FFFh
Si N no es entero
WORD [N] >> 4
Autor: Alejandro Furfaro
1 byte
Boot Sector
2da. Entrada
000 Cluster Vacío
FF7 Cluster Dañado
1er. Entrada
FF8-FFF Ultimo Cluster
Cualquier otro valor 1er. Cluster N
Next Cluster
FAT
FAT #2
N
Directorio
Root
Zona de
almacenamiento
35
FAT 12
Arch1.txt 0002
2 * 1,5 = 3
entero => Next = 4005 & 0FFF = 5
5 * 1,5= 7,5
7
No entero => Next = FFF0>>4 = FFF
Fin de Archivo
Arch1.txt, ocupa Clusters 2, y 5
Arch4.txt 0008
8 * 1,5 = 12
entero => Next = 0090 & 0FFF = 9
9 * 1,5= 13,5
13
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FD
FF
FF
05
40
00
07
F0
FF
FF
FF
FF
09
F0
FF
00
No entero => Next = FFF0>>4 = FFF
Fin de Archivo
Arch2.txt, ocupa Clusters
Autor: Alejandro Furfaro
8y9
Arch2.txt 0003
3 * 1,5 = 4,5
4
No entero => Next = 0040 >> 4 = 4
4 * 1,5= 6
entero => Next = F007 & =FFF = 7
7 * 1,5= 10,5
10
No entero => Next = FFFF >>4 = FFF
Fin de Archivo
Arch2.txt, ocupa Clusters 3, 4, y 7
Arch3.txt 0006 6 * 1,5 = 9
entero => Next = FFFF & 0FFF = FFF
Fin de Archivo
Arch2.txt, ocupa Cluster 6 solamente
36
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
Autor: Alejandro Furfaro
37
Acceso Directo a Memoria (DMA)
CPU
DREQ0
HRQ
HLDA
HLDA
Address
Bus
HOLD
DACK0
DREQ1
DACK1
Controlador
de DMA
(8237A)DREQ
DRAM
2
DACK2
Address
Bus
DREQ3
DACK3
Device
Device 1
1
Device
Device 2
2
Device
Device 3
3
Device
Device 4
4
Data Bus
Autor: Alejandro Furfaro
38
Subsistema de DMA en la PC y PCXT
5Vcc
RAS
OUT 1
CL
DREQ0
Q
74LS74
DREQ 1
DREQ2
DREQ3
DREQ1
DREQ2
DREQ3
HRQ
HLD
A
RDY TO DMA
CLK
RES
IO
IOW
R
MEMR
MEMW
NC
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
2
RAS
2G
3
74S08
EOP
AEN
RAS
74S08
DACK0
DACK1
DACK2
DACK3
EOP
AEN
74LS243
XIOR
XIO W
XMEM R
XMEMW
IOR
IOW
MEMR
MEMW
D0
Q0
D1
Q1
D2
Q2
Q3
D3
WA
WB74LS670
RB
RA
A16
A17
A18
A19
de
Bus de Control
8288
RD W
ADSTB
Datos
GND
DMA AEN
74LS32
Fig. 6. Circuito de Control de DMA en una IBM PC XT
Autor: Alejandro Furfaro
1G
1
Bus
74LS138
S2
8237A
Y4
G2A
G2B
S0
S1
CS
Y0
A
B
C
74LS24
4
RAS
RAS
A0
A1
A2
A3
A4
A5
A6
A7
DACK0
DACK1
DACK2
DACK3
“ Buffereado”
HLDA
RDY
CL
K
RES
WRT DMA PG RG
de
Señales de Status
del 8088
XA9
HRQ
Bus
AEN
XA5
XA6
XA7
XA8
A0
A1
A2
A3
A4
A5
A6
A7
Direcciones
8253
0
Al Slot ISA del Sistema
CL
Bus de Direcciones “ Buffereado”
D S
XD0
XD1
XD2
XD3
XD4
XD5
XD6
XD7
OE
74LS37
3
A8
A9
A10
A11
A12
A13
A14
A15
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
Autor: Alejandro Furfaro
40
Subsistema de DMA a partir de la PC
AT286
Autor: Alejandro Furfaro
41
Subsistema de DMA a partir de la PC
AT286
Autor: Alejandro Furfaro
42
Subsistema de DMA PC AT286:
Limitaciones
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
43
1
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
Autor: Alejandro Furfaro
1/Tiempo de Ciclo
44
Subsistemas de DMA modernos
1
Bus Mastering
2
2
2
1
Para los discos rígidos el método PIO, demanda demasiada CPU.
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
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.
Ultra DMA
2
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.
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
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)
Autor: Alejandro Furfaro
46
Teclado
MAKE
BREAK
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
48
Controlador de Teclado
Autor: Alejandro Furfaro
49
BIOS Data Area: Bytes de Estado de
teclas modificadoras
Address 0040:0017
Address 0040:0018
Autor: Alejandro Furfaro
50
Rutina de Atención de Int. de Teclado
Detección
Detección de
de SCAN
SCAN
SI
Actualiza
Actualiza Bytes
Bytes de
de
Estados
Estados en
en BIOS
BIOS Data
Data
Area
Area
NO
Analiza
Analiza estado
estado de
de Teclas
Teclas
Modificadoras
Modificadoras
Es
Es una
una Tecla
Tecla
Modificadora?
Modificadora?
NO
Es
Es un
un
Breack
Breack Code?
Code?
SI
Es
Es un
un
Breack
Breack
Code?
Code?
SI
SI
Es
Es la
la Tecla
Tecla
INS?
INS?
Traduce
Traduce el
el Scan
Scan Code
Code aa
ASCII
ASCII desde
desde una
una Tabla
Tabla
Es
Es un
un ASCII
ASCII
Extendido?
Extendido?
NO
NO
SI
Escribe
Escribe ASCII
ASCII
Extendido
Extendido en
en el
el buffer
buffer
de
de teclado
teclado
NO
Escribe
Escribe Scan
Scan Code
Code yy ASCII
ASCII
en
en el
el Buffer
Buffer de
de Teclado
Teclado
Autor: Alejandro Furfaro
FIN
FIN
51
BIOS Data Area: Buffer circular de
teclado
Autor: Alejandro Furfaro
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
01
Segundos
Segundos de alarma
10
11
Byte de tipo de drive de disquete (A y B)
Reservado
02
03
04
05
Minutos
Minutos de alarma
Horas
Horas de alarma
12
13
14
15
Byte de tipo de hard disk (C y D)
Reservado
Byte de equipo
Byte bajo de memoria base
06
07
08
09
Día de la semana
Fecha del Mes
Mes
Año
16
17
18
19-2D
Byte alto de memoria base
Byte bajo de expansión de memoria
Byte alto de expansión de memoria
Reservado
0A
0B
0C
0D
Status Register A
Status Register B
Status Register C
Status Register D
2E-2F
30
31
32
Checksum del CMOS (registros 10h a 2Fh)
Byte bajo de expansión de memoria
Byte alto de expansión de memoria
Byte de siglo de fecha
0E
0F
Byte de estados de diagnóstico
Byte de estado de Shutdown
33
34-3F
Flag de información (seteado durante power on)
Reservado
Autor: Alejandro Furfaro
53
Reloj en Tiempo Real
1
1
1
1
Al tener 64 registros internos, utiliza el modo de direccionamiento
indirecto para evitar consumir demasiadas direcciones de E/S.
Se muestra al procesador como dos ports:
Uno de direcciones (en donde escribimos el número del registro interno
con el cual queremos transaccionar),
y otro de datos (en donde realizamos la transacción).
READ:
mov al,Memory_location
out 70h, al
in al,71h
Autor: Alejandro Furfaro
WRITE:
mov
out
mov
out
al,Memory_location
70h,al
al,New_contents
71h,al
54
Reloj en Tiempo Real
Status Register A
7
6
UIP
UIP
5
4
3
DV
DV0-2
0-2
Update
Update in
in progress.
progress.
2
RS
RS3-0
3-0
‰
‰1:
1: Indica
Indica ciclo
ciclo de
de
actualización
actualización del
del reloj
reloj en
en
proceso.
proceso.
‰
‰0:
0: Indica
Indica fecha
fecha yy hora
hora listas
listas
para
para su
su lectura
lectura
Autor: Alejandro Furfaro
1
0
RS
: Rate Selection bits.
RS3-0
3-0: Rate Selection bits.
Seleccionan
Seleccionan el
el divisor
divisor de
de
frecuencia
frecuencia de
de salida.
salida. El
El sistema
sistema
inicializa
inicializa este
este valor
valor en
en 0110.
0110.
Esto
Esto selecciona
selecciona una
una señal
señal
cuadrada
cuadrada de
de salida
salida de
de 1024
1024 Hz,
Hz,
oo lo
lo que
que es
es igual
igual un
un período
período de
de
0,976562
0,976562 mseg.
mseg.
DV
:
DV2-0
2-0:
Divisor
Divisor de
de 22
22 etapas
etapas que
que permite
permite
setear
setear la
la frecuencia
frecuencia de
de la
la base
base de
de
tiempos
tiempos del
del sistema.
sistema. El
El power
power on
on self
self
test
test lo
lo coloca
coloca en
en 010
010 de
de modo
modo de
de
establecer
establecer 32,768
32,768 Khz.
Khz.
55
Reloj en Tiempo Real
Status Register B
7
6
5
4
3
2
1
0
SQWE DM
Set
24/12DSE
Set PIE
DM 24/12
DSE
PIE AIE
AIE UIE
UIESQWE
Update-Ended
Update-Ended Interrupt
Interrupt Enable.
Enable. Habilita
Habilita (activo
(activo alto)
alto) el
el
envío
envío de
de interrupción
interrupción cada
cada vez
vez que
que actualiza
actualiza fecha
fecha yy hora.
hora.
Alarm
Alarm Interrupt
Interrupt Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita el
el envío
envío de
de una
una
interrupción
interrupción en
en la
la fecha
fecha yy hora
hora de
de alarma
alarma programada.
programada.
Periodic
Periodic Interrupt
Interrupt Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita el
el envío
envío de
de una
una
señal
del
señal de
de interrupción
interrupción aa períodos
períodos establecidos
establecidos en
en los
los bits
bits RS
RS3-0
3-0 del
Status
Status Register
Register A.
A.
0:
0: Se
Se actualiza
actualiza el
el reloj
reloj aa razón
razón de
de una
una cuenta
cuenta por
por segundo.
segundo. 1:
1: Se
Se detiene
detiene la
la
actualización
actualización permitiendo
permitiendo inicializar
inicializar los
los 14
14 registros
registros sin
sin interrupción
interrupción hasta
hasta
que
que vuelva
vuelva aa ponerse
ponerse en
en ‘0’.
‘0’.
Autor: Alejandro Furfaro
56
Reloj en Tiempo Real
7
Status Register B
6
5
4
3
2
1
0
SQWE DM
Set
24/12DSE
Set PIE
DM 24/12
DSE
PIE AIE
AIE UIE
UIESQWE
Daylight
Daylight Saving
Saving Enable.
Enable. El
El POST
POST lo
lo inicializa
inicializa en
en 0,
0,
indicando
indicando que
que no
no está
está habilitado
habilitado
0:
0: Modo
Modo 12
12 hs.
hs. 1:
1: Modo
Modo 24hs.
24hs. (El
(El POST
POST lo
lo inicializa
inicializa de
de este
este
modo)
modo)
Date
Date Mode.
Mode. 0:
0: Fecha
Fecha yy hora
hora se
se actualizan
actualizan en
en BCD
BCD (El
(El POST
POST lo
lo
inicializa
inicializa de
de este
este modo).
modo). 1:
1: Fecha
Fecha yy hora
hora se
se actualizan
actualizan en
en Binario.
Binario.
Square
Square Wave
Wave Enable.
Enable. Activo
Activo alto.
alto. Habilita
Habilita la
la generación
generación de
de una
una onda
onda
cuadrada
cuadrada aa intervalos
intervalos establecidos
establecidos en
en el
el Status
Status Register
Register A.
A.
Autor: Alejandro Furfaro
57
Reloj en Tiempo Real
7
6
Status Register C
5
4
3
2
1
0
PF
PF AF
AF UF
UF
Bits
Bits Read
Read only,
only, que
que reflejan
reflejan el
el
estado
estado de
de los
los bits
bits PIE,
PIE, AIE,
AIE, yy
UIE
UIE del
del Status
Status Register
Register BB
Status Register D
Valid
Valid RAM
RAM and
and Time.
Time.
Indica
Indica con
con un
un 00 que
que el
el
sistema
sistema no
no tiene
tiene
alimentación
alimentación suficiente
suficiente
(batería
(batería de
de Litio
Litio baja)
baja)
Autor: Alejandro Furfaro
7
6
5
4
3
2
1
0
VRT
VRT
58
El Bus de expansión ISA
Motherboard
Memoria
Microprocesador
Vista frontal del conector del bus ISA
Autor: Alejandro Furfaro
59
El Bus de expansión ISA: Señales
Pin
A1
Conector Bus PC y PC XT
S eñal
E/S
Pin
S eñal
*I/O CH CK
E
B1
GND
E/S
P
Pin
C1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
A16
A17
A18
A19
A20
A21
A22
A23
A24
A25
A26
A27
A28
A29
A30
A31
SD7
SD6
SD5
SD4
SD3
SD2
SD1
SD0
IO CH RDY
AEN
SA19
SA18
SA17
SA16
SA15
SA14
SA13
SA12
SA11
SA10
SA9
SA8
SA7
SA6
SA5
SA4
SA3
SA2
SA1
SA0
S
P
E
P
E
P
E
P
P
S
S
E/S
E/S
S
E
S
E
S
S
E
E
E
E
E
S
S
S
P
S
P
C2
C3
C4
C5
C6
C7
C8
C9
C10
C11
C12
C13
C14
C15
C16
C17
C18
Autor: Alejandro Furfaro
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E
S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
*RESET
+ 5V
IRQ 2
- 5V
DRQ 2
- 12V
CRDSEL
+ 12V
GND
*SM EM W
*SM EM R
*IOW
*IOR
*DACK 3
DRQ 3
*DACK 1
DRQ 1
*DACK 0
CLK
IRQ 7
IRQ 6
IRQ 5
IRQ 4
IRQ 3
*DACK 2
T/C
ALE
+ 5V
OSC
GND
Conector adicional Bus IS A (AT 286 y superiores)
S eñal
E/S
Pin
S eñal
E/S
*SBHE
S
D1
*M EM CS16
E
LA23
LA22
LA21
LA20
LA19
LA18
LA17
*M RDC
*M WTC
SD8
SD9
SD10
SD11
SD12
SD13
SD14
SD15
E/S
E/S
E/S
E/S
E/S
E/S
E/S
S
S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
E/S
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
D16
D17
D18
*IO16
IRQ10
IRQ11
IRQ12
IRQ15
IRQ14
*DACK 0
DRQ 0
*DACK 5
DRQ 5
*DACK 6
DRQ 6
*DACK 7
DRQ 7
+ 5V
*M ASTER16
GND
E
E
E
E
E
E
S
E
S
E
S
E
S
E
P
E
P
Conectores del BUS IS A. Distribución de señales
60
El Bus de expansión ISA: Ejemplo
A0
A1
1
2
3
A2
A3
VCC
A4
A5
A6
A7
A8
A9
AEN
1
2
6
4
5
1
6
4
5
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
15
14
13
12
11
10
9
7
74LS138
74LS21
2
10
9
2
3
4
5
6
7
8
9
19
1
A1
A2
A3
A4
A5
A6
A7
A8
G
DIR
74LS245
IORD
IOWR
5
36
9
8
35
6
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
RD
WR
A0
A1
RESET
CS
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
B1
B2
B3
B4
B5
B6
B7
B8
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
18
17
16
15
14
13
12
11
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
8255
8
7
6
5
4
3
2
1
22
23
19
20
21
RESET
D0
D1
D2
D3
D4
D5
D6
D7
74LS21
74ALS32
D0
D1
D2
D3
D4
D5
D6
D7
13
12
8
3
VCC
34
33
32
31
30
29
28
27
D0
D1
D2
D3
D4
D5
D6
D7
RD
WR
A0
A1
CLK0
G0
OUT0
CLK1
G1
OUT1
CLK2
G2
OUT2
9
11
10
15
14
13
18
16
17
CS
8254
IRQ9
Autor: Alejandro Furfaro
61
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
62
Crecimiento de la velocidad de clock
de las CPU versus memoria
1100
1000
Pentium III
1GHz
900
800
700
600
Pentium II
400 MHz.
500
400
486 DX4
100 MHz.
300
Memorias
200
DX
33 MHz
100
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
65
Controlador de memoria
1
1
1
1
Microprocesadores dedicados a la supervisión de la
transferencia de datos hacia y desde la memoria.
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).
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.
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
66
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.
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.
Autor: Alejandro Furfaro
67
Tecnologías de DRAM
1
Memoria EDO
2
1
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).
SDRAM
2
2
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.
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).
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
68
Tecnologías de DRAM
1
RAMBus
2
2
1
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.
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.
“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
Autor: Alejandro Furfaro
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
Autor: Alejandro Furfaro
70
Tecnologías de DRAM
Arquitectura DRAM
Standard comparada
con el array SRAMDRAM 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”.
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
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.
Autor: Alejandro Furfaro
73
Descargar