Documentos de Académico
Documentos de Profesional
Documentos de Cultura
10 El sistema
de memoria
En este capítulo presentamos distintos aspectos acerca del sistema de memoria de un
computador. En primer lugar (Sección 10.1), se analiza el concepto de jerarquía de memo-
ria que pretende dar una visión global y unificada de distintos medios de memorización,
diferenciados fundamentalmente por su capacidad de almacenamiento y su velocidad de
funcionamiento. Posteriormente, se estudia la memoria interna (Sección 10.2), constituida
básicamente por la memoria caché y la memoria principal. En último lugar (Sección 10.3) se
describen los principales dispositivos de memoria externa que pretenden soslayar los pro-
blemas de la memoria principal en cuanto a su limitada capacidad y pérdida de información
al desconectarla de su fuente de energía eléctrica. Los dispositivos de memoria externa que
se discuten son: discos y cintas magnéticas, discos ópticos y memoria flash USB.
EJEMPLO 10.1
Suponiendo un microprocesador Pentium IV con frecuencia de reloj de 1,3 GHz y que ejecute por tér-
mino medio 4 instrucciones/ciclo; esto quiere decir que ejecuta 1,3 × 109 ciclos/s · 4 instrucciones/ciclo
= 5,2 × 109 instrucciones/segundo.
Bajo la hipótesis de que se capta la instrucción completa en cada acceso a memoria, el resultado anterior
implica que habría que efectuar 5 × 2 × 109 accesos/segundo, o lo que es lo mismo, el tiempo de acceso
tendría que ser de (5 × 2 × 109)−1 = 0,19 ns.
No obstante, las memorias RAM dinámicas (que son las que se utilizan para diseñar la memoria prin-
cipal) tienen tiempos de acceso del orden de 50 ns, con lo que son unas 250 veces más lentas que la
velocidad requerida. Hay un salto de 3 órdenes de magnitud entre las velocidades del procesador y de
la memoria principal.
(Nota: este ejemplo es únicamente ilustrativo, ya que como se verá en la Sección 10.2.2 si las instruc-
ciones se encuentran consecutivamente en memoria se pueden obtener tiempos de acceso efectivos
mucho menores.)
385
Para paliar este problema, se utiliza una memoria especial denominada memoria caché (a
veces denominada también antememoria o memoria oculta) que se coloca entre la memoria
principal y el procesador, de forma tal que éste se comunica directamente con ella y no con
la memoria principal, siendo transparente al programador ya que el computador actúa fun-
cionalmente como si no existiese. Como veremos en la Sección 10.2.1 la memoria caché suele
estar constituida por circuitos integrados SRAM que son más rápidos (aproximadamente 8 y
16 veces) que los DRAM que se utilizan para la memoria principal.
La memoria principal no tiene un tamaño (capacidad) suficiente para atender las nece-
sidades de almacenamiento de las aplicaciones y de los usuarios, por lo que es necesario
disponer de otros elementos más capaces (discos magnéticos y ópticos, y cintas magnéticas)
pero que, desafortunadamente, son mucho más lentos (unas 200.000 veces, véase Tabla 10.1);
con lo cual, como en toda transferencia de información entre dos unidades la unidad más
lenta impone la velocidad, el rendimiento global del computador sería muy bajo.
Ancho de banda
Nivel Dispositivo Capacidad Tiempo de acceso
MB/s
0 Registros procesador 6, 8, 16, ..., 256 0,25 a 0,5 ns 20.000 a 100.000
1 Memoria caché (SRAM) 8 KB a 8 MB 0,5 a 25 ns 5.000 a 10.000
2 Memoria principal (DRAM) 1 MB a 32 GB 80 a 200 ns 1.000 a 5.000
3 Disco duro (magnético) 5 GB-1,2 TB 3 a 15 ms 3 a 320
4 Disco óptico CD y DVD 680 MB 80 a 220 ms 0.6
7 Cinta magnética 300 KB a 800 GB 60 a 160 s 1 a 30
Registros de
Nivel 0
la CPU
T
I
E
M Caché
Nivel 1
P (SRAM)
O P
R
D E Memoria principal
E C Nivel 2
I (DRAM)
A O
C
C Nivel 3 Discos magnéticos
E
S
O
Nivel 4 Discos ópticos y
cintas magnéticas
CAPACIDAD
tener que introducir un nuevo bloque, un algoritmo de reemplazo debe decidir qué bloque
de datos debe desalojarse para acoger al nuevo. En caso de que el bit de modificación del
bloque a desalojar sea cero, puede sobrescribirse sin más, ya que existe una copia exacta de
él en el nivel inmediatamente inferior; si, por el contrario, el bit de modificación es uno,
antes de alojar el nuevo bloque hay que actualizar la copia del antiguo existente en el nivel
inmediatamente inferior.
Existen estrategias para determinar qué información en un momento dado debe ubicarse
en cada uno de los niveles superiores, de forma que se produzca el menor número posible
de fallos en los accesos a datos en un determinado nivel. Así, si se está ejecutando un
determinado programa o utilizando un grupo de datos es muy probable que si se referencia
a un elemento, los elementos cercanos a él tiendan a ser referenciados pronto (principio
denominado de localidad espacial). También, debido a que los bucles son muy frecuentes
en programación, si se referencia un elemento, tenderá a ser nuevamente referenciado pronto
(principio de localidad temporal). Estos dos principios han inspirado distintos algoritmos de
reemplazo y procedimientos para gestionar la memoria caché y la memoria virtual.
La memoria virtual es una técnica que resulta de aplicar los principios anteriores, y que
se analizará en detalle en la Sección 13.6.5. Con ella el programa y sus datos se mantienen
en disco, y sólo la parte de ellos implicada en la ejecución se lleva a la memoria interna.
Se denomina tasa de aciertos, τaciertos,i , de un determinado nivel i al cociente entre el
número de accesos realizados con éxito y el número total de accesos a ese nivel; y tasa de
fallos, τfallos,i, de un determinado nivel i al cociente entre el número de accesos realizados sin
éxito y el número total de accesos a ese nivel. También se suele medir el volumen de aciertos
y fallos en porcentajes (%).
Conociendo el tiempo de acceso de cada sistema de memorización en cada nivel, podemos
obtener el tiempo medio de acceso a un nivel i con la siguiente expresión:
[10.2]
ta,i = τaciertos,i · ti + τfallos,i · ti+1
donde ti representa el tiempo de acceso del sistema de almacenamiento del nivel i, y ti+1 el
del nivel inmediato inferior dentro de la jerarquía mostrada en la Figura 10.1.
EJEMPLO 10.2
Suponiendo un sistema que no dispusiese de memoria virtual, y con tan sólo dos niveles de jerarquía
(caché y memoria principal). Si los tiempos de acceso de los dispositivos utilizados son 5ns y 50 ns,
respectivamente, y el porcentaje de aciertos en caché del 95%. ¿Qué porcentaje de mejora se ha obtenido
en el tiempo de ciclo al haber introducido la caché?
Si no hubiese caché, el tiempo medio de acceso sería el de la memoria principal: 50 ns, ya que el
procesador efectuaría todos los accesos a ella.
Con memoria caché el tiempo medio de acceso sería, de acuerdo con la expresión [10.2]:
tacceso T a , caché tcaché T f , caché tmp (0,95 · 5) (0,05 · 50) 7, 25 ns
Es decir, el tiempo de acceso del sistema de caché mejora con respecto al sistema sin ella en un:
50
7, 25
mejora · 100 85,5%
50
EJEMPLO 10.3
El Intel Pentium 4 dispone de una memoria caché interna (dentro del propio chip) de dos niveles (L1 y
L2). El nivel L1 (más rápido pero menos capaz que el L2) está, a su vez, dividido en dos bloques: uno
(L1I) de 96 KBytes para microoperaciones y otro (L1D) de 8 KB para datos. El otro nivel, L2, es tanto
para instrucciones como para datos y puede ser de 256 ó 512 KBytes. El procesador accede directamente
al nivel 1 (L1I y L1D), y el nivel 1 se comunica con el exterior tan sólo a través del nivel 2 (L2). Otros
procesadores, como los primeros Pentium o el USPARC III, están diseñados de forma que la caché de
nivel 2 (L2) debe instalarse externamente (hasta 8 MBytes en el caso del UltraSPARC III).
Tanto la memoria caché como la memoria virtual (que se analizará en la Sección 13.6.5)
se fundamentan en el concepto de localidad de las referencias, que se basa en los principios
de localidad espacial y temporal, citados anteriormente (Sección 10.1). Como consecuencia,
cuando el procesador requiere una información determinada, son tácticas muy adecuadas:
a) Recuperar no sólo el dato o instrucción requerida sino también los de direcciones
próximas a él (consideración espacial). Ese grupo de direcciones adyacentes se deno-
mina bloque de datos.
b) Almacenar temporalmente el bloque de datos recuperado, en un subsistema con tiempo
de acceso lo más próximo posible al del procesador, ya que con gran probabilidad en
un plazo de tiempo pequeño volverá a ser solicitado (consideración temporal).
Procesador
Transferencia de
palabras
Caché
Transferencia de
bloques
Memoria principal
La memoria caché es una memoria que se sitúa entre el procesador y la memoria principal
(Figura 10.2) y, simplificadamente, funciona de la manera que se describe a continuación. El
procesador genera peticiones de acceso a memoria (lectura o escritura) proporcionando direc-
ciones de posiciones de memoria. El controlador de la caché, a partir de la dirección emitida
por el procesador comprueba si su contenido está o no en la caché; si lo está, se produce un
A continuación se describen brevemente: los tipos de circuitos integrados que suelen uti-
lizarse para construir la memoria principal (circuitos DRAM, Sección 10.2.2.1), la forma de
ensamblarlos en módulos de memoria para poderlos conectar adecuadamente en el computador
(Sección 10.2.2.2) y, por último, la distintas formas de acceder a los datos (Sección 10.2.2.3).
de: interfaz con el exterior del chip, para refresco (caso de DRAM), y para seleccionar, a
partir de la dirección de entrada, la posición a la que hay que acceder para leer o escribir
una palabra. Para seleccionar una posición a partir de una dirección de entrada, disponen
de un decodificador (Sección 5.4.5 y 6.6). Así, un chip con un espacio de direcciones de 1
Mpalabras, necesita un decodificador de 20 entradas a 1.048.576 salidas. La complejidad de
este decodificador es muy grande y su implementación ocupa una gran cantidad de espacio
dentro del chip que podría utilizarse para incrementar el tamaño del núcleo de celdas, y por
tanto su capacidad de almacenamiento. Este tipo de arquitectura se denomina configuración
de memoria 2D (dos dimensiones). Es mejor utilizar una configuración de memoria 3D
(tres dimensiones) de forma que las posiciones se distribuyesen regularmente a lo largo de un
plano de dos dimensiones (X,Y ), y las distintas celdas o bits de una palabra determinada se
encontrasen en distintos planos pero en la misma posición (X,Y ). Para seleccionar una palabra
determinada hay que proporcionar las direcciones de fila (X ) y de columna (Y ), de esta manera
en lugar del gran decodificador indicado en el ejemplo anterior serían necesarios dos de 10
entradas a 1.024 salidas que juntos ocupan mucho menos espacio que el de una arquitectura
2D y por tanto en dicho chip se podría integrar un número mayor de celdas de memoria.
EJEMPLO 10.4
El núcleo de celdas de una memoria de 256 MB organizada en palabras de 8 bits, podría organizarse
de las siguientes formas:
• Configuración de memoria 2D: las celdas de memoria se distribuirían en un plano de 28·220 = 228 =
2681435.460 filas y 8 columnas (cada una para un bit de la palabra de datos). Los circuitos
auxiliares deberían contener un decodificador de 28 entradas en 2681435.460 salidas.
• Configuración de memoria 3D: las celdas de memoria se distribuirían en 8 planos, uno por
cada bit de la palabra; así, el plano inferior podría contener todos los bits de orden 0 de
todas las palabras, el plano inmediato superior los bits de orden 1, y así sucesivamente. Cada
plano contendría 13.384 filas y 16.384 columnas, de forma que así se podrían direccionar las
13.3842 = 2681435.460 posiciones del núcleo de la memoria.
Ocupan mucho menos espacio dos decodificadores de 14 entradas en 16.384 salidas, que uno de 28
entradas en 2681435.460 salidas.
EJEMPLO 10.5
Los chips de memorias DRDRAM (Direct Rambus DRAM) están divididos en 16 bancos de celdas, y
utilizan un bus que funciona a 400 MHz con 3 canales de un byte cada uno (uno para direcciones/control
y dos para datos. Los bits de datos y control se transfieren en paquetes de 8 bytes consumiendo 4 ciclos
de reloj. En consecuencia, el tiempo de ciclo del bus será:
1
Tbus 2,5 10
6 s 2,5 ns
400 106 ciclos/s
Para transferir un paquete de datos de 16 bits se necesitarán:
t paquete 4 ciclos 2,5 ns/ ciclo 10 ns
Ahora bien, en cada ciclo del bus se transmiten datos tanto en el flanco de subida como de bajada de la
señal de reloj, con lo que en cada 4 ciclos se transfieren 2·8 = 16 Bytes. Por consiguiente la velocidad
de transferencia alcanzable será:
16 Bytes
vtransferencia 1,6 GB/s
10 ns
EJEMPLO 10.6
Suponiendo un procesador que consume 6 ciclos de reloj para acceder a una palabra, y 3 ciclos para
accesos sucesivos, calcular el número de ciclos que se invierten desde que el procesador solicita un
bloque de 16 palabras consecutivas hasta que las recibe.
SOLUCIÓN:
Tenemos que considerar los siguientes tiempos:
• Transmisión de la dirección procesador memoria: 1 ciclo.
• Acceso a la 1ª palabra del bloque: 6 ciclos.
• Acceso a la 2ª palabra del bloque: 3 ciclos (en el primero de ellos simultáneamente se transmite
la 1ª palabra de memoria procesador).
• Acceso a la tercera palabra del bloque: 3 ciclos (en el primero de ellos simultáneamente se
transmite la 2ª palabra de memoria procesador).
• ……
• Acceso a la 16ª palabra del bloque: 3 ciclos (en el primero de ellos simultáneamente se transmite
la 15ª palabra de memoria procesador).
• Transmisión de la 16ª palabra de memoria procesador: 1 ciclo.
Es decir:
[10.4]
Nc = 1 + 6 + 16 · 3 + 1 = 56 ciclos
SIMM
Conectores (oro)
(64 Mbits × 8 = 64 MBytes)
DIMM
(64 Mbits × 16 × 2 = 256 MBytes)
30 DRAM
SIM
72 FPM
168 FPM, EDO, SRAM
DIMM 184 DDR, SRAM
240 SRAM DDR2
72 FPM, EDO
SODIMM 144 FPM, EDO, SDRAM
200 DDR, SDRAM
RIMM 184 RDRAM (Rambus)
EJEMPLO 10.7
Sea una memoria direccionable por bytes y de longitud de palabra de n = 32 bits. En esta memoria, por
lo tanto, en cada palabra caben 4 bytes (Figura 10.4), y sus direcciones de comienzo serán: 0, 4, 8, 16,
etc… Obsérvese que, en binario, todas las direcciones de palabra acabarán con dos ceros, de forma de
que si m = 32, las direcciones de las palabras serían las que se indican en la Figuras 10.4 y 10.5.
Puede concluirse de este ejemplo que de los 32 bits de dirección, los 30 más significativos
identifican la palabra, y los dos menos significativos el byte dentro de la palabra. Si el
ancho de la memoria fuese de 64 bits, de los 32 bits de dirección, los 29 más significativos
identificarían la palabra, y los tres menos significativos el byte dentro de la palabra; es decir,
las direcciones de los bytes de inicio de las palabras acabarían siempre con tres ceros.
Cuando las palabras se organizan en la forma anteriormente indicada se tienen direccio-
nes alineadas; ahora bien, como en realidad el direccionamiento de la memoria se hace por
bytes, una palabra puede comenzar en cualquier posición arbitraria, y si no coincide con un
múltiplo del número de bytes por palabra se tienen direcciones no alineadas. Si la memoria
se direcciona por bytes y se quieren obtener direcciones alineadas los dos o tres bits menos
significativos tienen que ser 0, dependiendo de que el ancho de la memoria fuese de 32 ó
64 bits, respectivamente.
Palabra 0 Byte 0000 0000 Byte 0000 0001 Byte 0000 0002 Byte 0000 0003
Palabra 1 Byte 0000 0004 Byte 0000 0005 Byte 0000 0006 Byte 0000 0007
Palabra 2 Byte 0000 0008 Byte 0000 0009 Byte 0000 000A Byte 0000 000B
Palabra 3 Byte 0000 000C Byte 0000 000D Byte 0000 000E Byte 0000 000F
Palabra 4 Byte 0000 0010 Byte 0000 0011 Byte 0000 0012 Byte 0000 0013
Palabra 230−1 Byte FFFF FFFC Byte FFFF FFFD FFFF FFFE FFFF FFFF
Nº de palabra Dirección en binario del inicio de cada palabra (bytes) Dirección HEX
0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
1 0000 0000 0000 0000 0000 0000 0000 0100 0000 0004
2 0000 0000 0000 0000 0000 0000 0000 1000 0000 0008
3 0000 0000 0000 0000 0000 0000 0000 1100 0000 000C
4 0000 0000 0000 0000 0000 0000 0001 0000 0000 0010
5 0000 0000 0000 0000 0000 0000 0001 0100 0000 0014
6 0000 0000 0000 0000 0000 0000 0001 1000 0000 0018
7 0000 0000 0000 0000 0000 0000 0001 1100 0000 001C
8 0000 0000 0000 0000 0000 0000 0010 0000 0000 0020
... ... ...
230−4 1111 1111 1111 1111 1111 1111 1111 0000 FFFF FFF0
230−3 1111 1111 1111 1111 1111 1111 1111 0100 FFFF FFF4
230−2 1111 1111 1111 1111 1111 1111 1111 1000 FFFF FFF8
2 −1
30
1111 1111 1111 1111 1111 1111 1111 1100 FFFF FFFC
Cuando una palabra incluye diversos bytes de un mismo dato o instrucción, según se
comentó en la Sección 4.5 (Figura 4.6) el byte almacenado en la parte más baja de las
direcciones de memoria puede albergar los 8 bits menos significativos del dato o instrucción,
o los más significativos, según se siga el criterio del extremo menor o el criterio del extremo
mayor, respectivamente.
j bits k bits
Dirección dentro de cada módulo Selección del
módulo
EJEMPLO 10.8
Una memoria dispone de 16 módulos entrelazadazos, cada uno de ellos de 1Mpalabra. El esquema de
direccionamiento de memoria sería el siguiente:
• Para direccionar dentro de cada módulo, serán necesarios 20 bits, ya que 220= 1Mega.
• Como hay 16 módulos, serían necesarios 3 bits para identificar cada uno de ellos, ya que
24 = 16.
En consecuencia, las direcciones serían de 24 bits. Al leer, por ejemplo, la dirección A35B78, se leería
en los 16 módulos 16 las palabras de posición A35B7, y de todas ellas la palabra solicitada sería la
del módulo 8.
Información a Información
grabar leída
cabeza
lectora/grabadora
Amplificador
Amplificador
Campo
magnético Material
magnetizable
celda
pista N N S N S N S
Substrato
movimiento
En 1990 IBM desarrolló otro tipo de cápsulas lectoras, denominadas cabezas magnetorre-
sistivas. Se fundamentan en el uso de materiales cuya resistencia eléctrica varía con el campo
magnético en el que se encuentren inmersos. Se aplica al dispositivo magnetorresistivo una
corriente eléctrica constante, y se obtiene una tensión eléctrica cuyo valor depende del campo
magnético detectado. De esta forma se puede leer la información de la pista del disco (la
escritura se sigue haciendo por inducción).
También IBM, en 1991, propuso cambiar el recubrimiento de óxido magnetizable del sustra-
to por una película delgada (microscópica) de metal puro que se puede realizar por deposición
al vacío u otros métodos utilizados en el proceso de fabricación de circuitos integrados. Ese
sistema tiene tres ventajas importantes: (1) al ser el grosor de la capa magnetizable menor, se
pueden conseguir densidades de grabación mayores, (2) los campos magnéticos producidos son
más inmunes a los cambios (el medio es más coercitivo), y (3) la capa magnetizable queda
fuertemente unida al sustrato dando mayor consistencia al conjunto.
A diferencia de las memorias de semiconductor, la información grabada en un soporte
magnético permanece sin necesidad de ningún aporte constante de energía.
En la Figura 10.8 se muestran los códigos que se suelen utilizar para grabar información
digital en una superficie magnética. Dependiendo del tipo de soporte y del modelo de dispo-
sitivo se utiliza uno u otro. A continuación se describen brevemente estos códigos.
Vuelta a cero (RZ, return to zero)
El 1 lógico se graba magnetizando el centro de la celda. El 0 es ausencia de magnetización.
Vuelta a saturación (RS, return to saturation)
La información se representa así: el 1 por un estado de magnetización en el centro de la
celda. El resto de la celda, así como el 0 lógico, se representa con el estado de magneti-
zación opuesto.
0 1 1 0 0 1 0
NRZ
NRZ1
PE
FM
R2
PR
MFM R1
M2 FM
A lo largo del estudio de las unidades de memoria auxiliar nos referiremos a estos tipos de
grabación, indicando cuándo se utilizan unos u otros. Para grabar con fiabilidad la informa-
ción es frecuente efectuar una transformación de código previa (además de introducir bits de
paridad). Así, por ejemplo, el código NRZI modificado (MNRZI) transforma grupos de 4 bits
en grupos de 5 bits. El código nuevo es tal que nunca se graban más de dos ceros seguidos
(véase Ejercicio 10.10).
Los dispositivos más modernos utilizan el sistema de grabación RLL 3,9 (RLL avan-
zada). Hace corresponder a cada byte un patrón predeterminado de grabación de 16 bits, de
forma tal que siempre hay entre cada dos unos consecutivos (transiciones), de 3 a 9 ceros (el
mínimo espaciamiento entre inversiones es 4 y el máximo 10). Así se consiguen densidades
de grabación del doble de las técnicas usuales en doble densidad de grabación.
Más detalles sobre los códigos pueden verse en la referencia [Mig04].
La información contenida en un soporte magnético se transfiere desde y hacia el pro-
cesador o memoria principal no celda a celda, sino a ráfagas de información, denominadas
bloques o registros físicos. El tiempo que se tarda en acceder a un registro determinado
es variable, dependiendo, entre otras cosas, del lugar previo donde se encuentra la cabeza
lectora. Se denomina tiempo de acceso (medio) al tiempo que por término medio se tarda en
acceder a cualquier registro físico. Si para acceder a un bloque concreto es necesario que la
cabeza lectora vaya recorriendo (o leyendo) uno a uno los bloques que hay desde su posición
inicial a la final, se dice que el dispositivo es de acceso secuencial. Si, por el contrario, la
cabeza lectora puede posicionarse directamente en un registro dado (indicando su posición
física) se dice que el dispositivo es de acceso directo. Los circuitos de la memoria central,
los tambores, y los discos magnéticos son unidades de acceso directo, por el contrario las
cintas magnéticas son de acceso secuencial. Los dispositivos de acceso directo son mucho
más rápidos que los de acceso secuencial.
numerados en una secuencia única para todo el disco, y la capacidad de información del
usuario que suele almacenarse en un sector es de 512 Bytes.
La unidad física de lectura/escritura es el sector, y ésta es la unidad utilizada, por
ejemplo, por el sistema de archivos NTFS. No obstante, hay sistemas operativos, que utili-
zan como unidades de transferencia conjuntos de un número determinado de sectores, que
denominan unidades de asignación (clusters). El número de sectores que conforma una
unidad de asignación depende del tamaño y tipo de disco, suelen estar comprendidos entre
4 y 64 sectores.
EJEMPLO 10.9
Si se tienen 512 B/sector y 4 sectores/clúster, una unidad de asignación se compone de 2 KB, con lo que
toda la información transferida debe ser troceada en bloques de 2 KB. Si tenemos un fichero de 270 Bytes,
se desperdiciarán 2 · 1024 − 270 = 1778 Bytes.
Según se observa en la Figura 10.9, los sectores de las pistas más exteriores son de mayor
longitud que las interiores; ahora bien, el número de bits grabados en cada sector es siempre
el mismo, con lo que la densidad de grabación (bits grabados por pulgada, bpi) será menor
en las pistas exteriores que en las interiores. Esto es evidente si se tiene en cuenta que la
velocidad de transferencia de información hacia, o desde, la superficie del disco es constante,
con lo que, como el tiempo en recorrer un sector interior es igual al de uno exterior, en ambos
casos se grabará la misma cantidad de información.
Sector 7 Sector 0
Plato
Pista 0
Brazo con cabeza Giro
Sector 1
Pista 8
Sector 2 movimiento
Pistas
Sector 4 Sector 3
La lectura y escritura en la superficie del disco, como se vio en la Sección 10.3.1, se hace
mediante una cabeza o cápsula. La cabeza, en las unidades de cabeza móvil, está insertada
en un extremo de un brazo mecánico móvil, que se desplaza hacia el centro o hacia la parte
externa del disco bajo el control de los circuitos electrónicos del periférico (Figura 10.9b).
El direccionamiento para leer o grabar un sector del disco se efectúa dando al periférico: el
número de unidad, el número de superficie, el número de pista, y el número de sector. El
brazo sitúa rápidamente la cápsula encima de la pista correspondiente y espera a que el sector
en cuestión se posicione (como consecuencia del giro del plato) bajo la cápsula.
2. La cabeza espera encima de la pista hasta que, como consecuencia del giro del plato,
el sector a acceder se posicione debajo de ella. El tiempo que dura esta operación se
denomina tiempo de espera (o latencia rotacional), Te, y depende de la velocidad de
rotación del disco, y de la posición donde se encuentre el sector a acceder. Puede ser
que en el momento que llega la cabeza a la pista, el inicio del sector se encuentre justo
debajo de aquélla, con lo que el tiempo de espera sería cero; pero también puede ser
que acabe de sobrepasarla con lo cual el tiempo sería el que dure una rotación comple-
ta; es decir, 1/ωr siendo ωr la velocidad de rotación del disco en revoluciones/segundo.
Teniendo en cuenta todas las situaciones posibles, por termino medio el tiempo de
espera será el que se tarda en realizar media rotación; es decir:
[10.6]
1
Te segundos
2 Wr
Se denomina tiempo de acceso, Ta, al tiempo que tarda la unidad en posicionarse al inicio
del sector al que se quiere acceder. Del razonamiento efectuado anteriormente se deduce que
será la suma del tiempo de búsqueda y del tiempo de espera; es decir:
[10.10]
Ta Tb Te
Podemos concluir que para leer un determinado bloque de información consecutiva hay
que sumar el tiempo de acceso al inicio del bloque y el tiempo de transferencia. De lo dicho
anteriormente se deduce una cuestión práctica de una gran relevancia: cuanto mayor es el
bloque a leer menor será el tiempo efectivo total de lectura o escritura. En otras palabras,
se tarda menos en leer un bloque de C bytes si se puede realizar con un solo acceso en vez
de hacerlo con varios accesos.
En la mayor parte de los tipos de discos duros las cabezas de lectura/grabación nunca
llegan a tocar la superficie del disco, retrayéndose el brazo cuando el disco no está en régimen
de funcionamiento. Cuando el disco adquiere su estado estacionario de rotación se está en
condiciones de leer/escribir, saliendo el brazo de su posición de reposo y posicionándose la
cápsula encima de la superficie del disco, pero flotando sobre ella, sin llegar a tocarla. Esto
ocurre a causa de que la gran velocidad de rotación genera turbulencias en la capa de aire
próxima a la superficie, actuando como una almohadilla para el brazo haciéndole volar o
flotar. La distancia entre la cabeza y la superficie es del orden de micras o decenas de micras.
En el caso de que, por accidente, la cabeza toque la superficie (aterrice) se deteriora, e incluso
puede que la cápsula se averíe. En los disquetes, por el contrario, durante las operaciones de
lectura y escritura la cabeza entra en contacto físico con la superficie del plato.
Los platos de discos suelen tener una o varias referencias físicas (orificios o muescas) para
poder identificar los sectores y pistas del plato. Esto se denomina sectorización hardware
o física. En los disquetes sólo existe un orificio de alineamiento y referencia. Este orificio,
cuando el disco gira, es detectado por un conjunto fotodiodo/fototransistor, utilizándose como
punto de referencia para el acceso a las distintas pistas y sectores. Las unidades de discos
duros suelen tener unas muescas que identifican los límites de cada sector y el primer sector
de la pista.
Antes de utilizar un disco es necesario efectuar sobre él unas grabaciones para dar for-
mato al disco. Al formatear un disco se definen por software las pistas, y sectores (pueden
no coincidir con los sectores hardware); además se inicializa un directorio para información
sobre el contenido del disco (el directorio es un índice del contenido del disco) (Sección 13.8).
Cada sector tiene grabado su dirección, los datos del usuario (si los hay), e información de
control que identifica los límites del sector, e incluye redundancias para detectar posibles
errores en la grabación de los datos. En la Figura 10.10 puede verse un ejemplo de la infor-
mación contenida en un sector formateado. El formateo efectúa una sectorización software
o lógica que detecta, y elimina para ulteriores grabaciones, las zonas del disco deterioradas.
También inicializa los sectores con la información antes indicada (graba dirección y contro-
les, e inicializa el directorio).
Sincro.
Sector
CRC
CRC
Pista
Debido a la alta velocidad de giro del disco, con frecuencia los circuitos de control no
pueden procesar consecutivamente la información de dos sectores adyacentes, por lo que,
para reducir el tiempo de espera, los sectores se suelen direccionar (es decir, grabar) al-
ternativamente (interleaving, véase Figura 10.25a). Por ejemplo en la figura, si se acaba de
leer el sector 0, mientras el periférico procesa esta lectura la cabeza lectora habrá pasado a
la parte central del sector 4, pudiéndose recuperar rápidamente la información del sector 1,
después de la del 0 (la información se graba y recupera según las direcciones consecutivas
indicadas en la figura).
Se pueden considerar cinco tipos de unidades de discos magnéticos:
• Discos de cabezas fijas. Tienen una cabeza individual de lectura/escritura por cada
pista, consiguiéndose con ello tiempos de accesos relativamente bajos (del orden de
milisegundos), ya que estos vienen fijados únicamente por la velocidad de giro del
disco. Existían unidades con un único plato o con varios platos. Por ejemplo la unidad
Data General 6006 disponía de 8 superficies, cada una de ellas con 128 pistas, cada
pista contiene 8 sectores de 256 palabras (16 bits) cada uno. El tiempo medio de acceso
a un sector era de 9,5 ms, y el disco giraba a 3.540 rpm. La velocidad de transferencia
con el computador era aproximadamente de 500 KB/s.
a)
Peine de brazos
Cabeza
b)
“Peine”
Cabezas
Cilindro de 10 pistas
6 Platos
• Paquetes de discos. Son unidades compuestas por varios platos que giran solidariamente
alrededor de un eje común (Figura 10.11). Las cabezas de lectura/escritura son móviles,
existiendo una por superficie, y se desplazan simultáneamente a gran velocidad radial-
mente buscando la pista en que se encuentra el sector que deben leer o escribir. Cada
cabeza lee/graba en el sector correspondiente a su superficie. Cada grupo de pistas de
igual radio se denomina cilindro, existiendo tantos cilindros en el dispositivo como pis-
tas en una superficie. Con frecuencia las superficies externas no se utilizan para grabar;
así, una unidad con 6 platos puede utilizar sólo 10 superficies, y una de 11 platos, 20
superficies. Usualmente las superficies externas, como en el caso de la Figura 8.27b, no
se utilizan para grabar; así una unidad con 6 platos puede utilizar sólo 10 superficies, y
una de 11 platos, 20 superficies. En ocasiones una de las superficies contiene únicamente
información para centrar las cabezas sobre las pistas. Esta superficie se suele denominar
“superficie del servo”, y el acceso y centrado a un cilindro se efectúa con un proceso de
realimentación: se lee en la superficie del servo y se comprueba si la cabeza está o no
centrada, corrigiéndose, en su caso, la posición. Los paquetes de discos no se utilizan en
la actualidad, pero han servido de base para el desarrollo de la tecnología Winchester,
que es la utilizada en los discos duros modernos.
• Discos cartucho. Son unidades con un plato y dos superficies de grabación, encerradas
dentro de una carcasa, con una abertura lateral por donde se introducen las cabezas.
• Disquetes. Los disquetes son pequeños discos cuyos platos son flexibles, ya que están
constituidos por un material plástico, Mylar, recubierto de óxido férrico. La velocidad
de rotación de funcionamiento suele ser de 300 a 600 rpm, y son intercambiables. Los
primeros disquetes eran de 8” y 5¼” y posteriormente tuvieron gran popularidad los
de 3½”. Tuvieron una gran relevancia debido a que eran un soporte intercambiable,
de pequeño tamaño y con una capacidad típica de 1,44 MB. Hoy día han sido susti-
tuidos por las memorias flash USB, mucho más capaces, rápidas y de menor tamaño
(Sección 10.3.5).
Característica Valores