4.2. El espectro de almacenamiento
Las computadoras de hoy utilizan una variedad de tecnolog�as de almacenamiento. Cada tecnolog�a est� orientada hacia una funci�n espec�fica, con velocidades y capacidades en combinaci�n.
Estas tecnolog�as son:
En t�rminos de capacidades y costos, estas tecnolog�as forman un espectro. Por ejemplo, los registros de CPU son:
Muy r�pidos (tiempos de acceso de unos pocos nanosegundos)
Baja capacidad (usualmente menos de 200 bytes)
Capacidades de expansi�n muy limitadas (se requiere un cambio en la arquitectura del CPU)
Costosas (m�s de un d�lar/byte)
Sin embargo, en el otro lado del espectro, el almacenamiento fuera de l�nea es:
Muy lento (tiempos de acceso se miden en d�as, si la media de respaldo debe ser entregada sobre largas distancias)
Capacidad muy alta (10s - 100s de gigabytes)
Capacidades de expansi�n pr�cticamente ilimitadas (solamente limitadas por el espacio f�sico requerido para hospedar la media de respaldo)
Bajo costo (fracciones de c�ntimos/byte)
Usando diferentes tecnolog�as con diferentes capacidades, es posible afinar el dise�o del sistema para un m�ximo rendimiento al costo m�s bajo posible. Las secciones siguientes exploran cada tecnolog�a en el espectro del almacenamiento.
4.2.1. Registros de CPU
Todos los dise�os de CPU de hoy d�a incluyen registros para una variedad de prop�sitos, desde el almacenamiento de direcciones de la instrucci�n recientemente ejecutada, hasta prop�sitos m�s generales de almacenamiento y manipulaci�n de datos. Los registros de CPU se ejecutan a la misma velocidad que el resto del CPU; de lo contrario habr�a un cuello de botella grave sobre el rendimiento completo del sistema. La raz�n para esto es que casi todas las operaciones realizadas por el CPU envuelven registros de una forma u otra.
El n�mero de registros de CPU (y sus usos) dependen estrictamente en el dise�o arquitect�nico del CPU mismo. No hay forma de cambiar el n�mero de registros de CPU, solamente puede migrar a un CPU con una arquitectura diferente. Por estas razones, el n�mero de registros de CPU se puede considerar como una constante, ya que s�lo pueden cambiarse con mucho dolor y grandes costos.
4.2.2. Memoria cach�
El prop�sito de la memoria cach� es actuar como una memoria temporal entre los registros de CPU, limitados y de gran velocidad y el sistema de memoria principal, mucho m�s grande y lento — usualmente conocido como RAM[1]. La memoria cach� tiene una velocidad de operaci�n similar a la del CPU mismo, por eso cuando el CPU accede a datos en la cach�, no tiene que quedarse esperando por los datos.
La memoria cach� es configurada de forma tal que, cuando se leen datos desde la RAM, el sistema de hardware verifica primero para determinar si los datos deseados est�n en cach�. Si los datos est�n en cach�, estos son recuperados r�pidamente y utilizados por el CPU. Sin embargo, si los datos no est�n en cach�, estos se leen desde la RAM y, mientras se transfieren al CPU, tambi�n se colocan en cach� (en caso de que se necesiten m�s tarde). Desde la perspectiva del CPU, todo esto se hace de forma transparente, por lo que la �nica diferencia entre el acceso de los datos en cach� y desde la RAM es la cantidad de tiempo que toma para que los datos sean recuperados.
En t�rminos de la capacidad de almacenamiento, la cach� es mucho m�s peque�a que la RAM. Por lo tanto, no todos los bytes en la RAM tienen su ubicaci�n �nica en cach�. Como tal, es necesario dividir la cach� en secciones que se puedan utilizar para alojar diferentes �reas de RAM y tener un mecanismo que permita que cada �rea de la cach� haga un "cach�" de la RAM en diferentes momentos. A�nque existe una diferencia en tama�o entre la cach� y la RAM, dada la naturaleza secuencial y localizada del acceso a almacenamiento, una peque�a cantidad de cach� puede efectivamente acelerar el acceso a grandes cantidades de RAM.
Cuando se escriben datos desde el CPU, las cosas se complican un poco. Existen dos enfoque que se pueden utilizar. En ambos casos, los datos son escritos primero a la cach�. Sin embargo, puesto que el prop�sito de la cach� es funcionar como una copia muy r�pida de los contenidos de porciones seleccionadas de RAM, cada vez que una porci�n de datos cambia su valor, ese nuevo valor debe ser escrito tanto a la cach� como a la RAM. De lo contrario, los datos en cach� y los datos en la RAM ya no coincidir�an.
Los dos enfoques se diferencian en c�mo se logra hacer esto. En un enfoque, conocido como write-through caching, los datos modificados se escriben inmediatamente a la RAM. Sin embargo, en el write-back caching, se retrasa la escritura de los datos modificados a la RAM. La raz�n para hacer esto es la de reducir el n�mero de veces que una porci�n de datos modificada frecuentemente debe ser escrita nuevamente a la RAM.
La cach� "write-through" o inmediata es un poco m�s simple de implementar; por esta raz�n es la m�s com�n. La cach� "write-back" es un poco m�s complicada; adem�s de almacenar los datos, es necesario mantener cierto tipo de mecanismo que sea capaz de notificar que los datos en cach� est�n al d�a o "limpios" (los datos en cach� son los mismos que los datos en RAM), o que est�n "sucios" (los datos en cach� han sido modificados, lo que significa que los datos en RAM ya no est�n actualizados). Tambi�n es necesario implementar una forma de vaciar peri�dicamente entradas "sucias" en cach� de vuelta en RAM.
4.2.2.1. Niveles de cach�
Los subsistemas de cach� en los dise�os de computadoras de hoy d�a pueden ser de niveles m�ltiples; esto es, puede haber m�s de un conjunto de cach� entre el CPU y la memoria principal. Los niveles de cach� a menudo est�n enumerados, con los n�meros menores m�s cercanos a la CPU. Muchos sistemas tienen dos niveles de cach�:
La cach� L1 a menudo est� ubicada en el chip del CPU mismo y se ejecuta a la misma velocidad que el CPU.
La cach� L2 usualmente es parte del m�dulo de CPU, se ejecuta a las mismas velocidades que el CPU (o casi) y normalmente es un poco m�s grande y lenta que la cach� L1
Algunos sistemas (normalmente servidores de alto rendimiento) tambi�n tienen cach� L3, que usualmente forma parte del sistema de la tarjeta madre. Como puede imaginarse, la cach� L3 es m�s grande (y casi con seguridad m�s lenta) que la cach� L2.
En cualquier caso, el objetivo del todos los subsistemas de cach� — bien sean simples o de m�ltiples niveles — es el de reducir el tiempo de acceso promedio a la RAM.
4.2.3. Memoria principal — RAM
La RAM resuelve la mayor�a del almacenamiento electr�nico en las computadoras de hoy en d�a. La RAM es utilizada tanto para almacenar datos como para almacenar los programas en uso. La velocidad de la RAM en la mayor�a de los sistemas actuales est� entre la velocidad de la memoria cach� y la de los discos duros y est� mucho m�s cercana a la velocidad de la primera que a la segunda.
La operaci�n b�sica de la RAM es en realidad bien sencilla. En el nivel m�s bajo, est�n los chips de RAM — circuitos integrados que "recuerdan". Estos chips tienen cuatro tipos de conexiones con el mundo externo:
Conexiones de energ�a (para operar la circuiter�a dentro del chip)
Conexiones de datos (para permitir la transferencia de datos hacia adentro y fuera del chip)
Conexiones de lectura/escritura (para controlar si los datos se almacenaran o se recuperaran desde el chip)
Conexiones de direcciones (para determinar si los datos en el chip ser�n le�dos/escritos)
He aqu� los pasos requeridos para almacenar datos en RAM:
Los datos a almacenar se presentan a las conexiones de datos.
La direcci�n en la que los datos se almacenaran se presenta a las conexiones de direcci�n.
La conexi�n de lectura/escritura se coloca en modo de escritura.
La recuperaci�n de datos es tambi�n muy directa:
La direcci�n de los datos deseados se presenta a las conexiones de direcciones.
La conexi�n de lectura/escritura es colocada a modo de lectura.
Los datos deseados son le�dos desde las conexiones de datos.
Mientras que estos pasos parecen bastante simples, estos toman lugar a grandes velocidades, con el tiempo consumido en cada paso medido en nanosegundos.
Casi todos los chips de memoria creados hoy en d�a se venden como m�dulos. Cada m�dulo consiste de un n�mero individual de chips de RAM conectados a una peque�a tarjeta de circuitos. La distribuci�n mec�nica y el�ctrica del m�dulo sigue los est�ndares de la industria, haciendo posible la compra de memorias desde diferentes fabricantes.
| Nota |
---|
| El beneficio principal de un sistema utilizando m�dulos RAM basados en est�ndares de la industria, es que tienden a mantener bajos los costos de las RAM, debido a la posibilidad de adquirir m�dulos a partir de diferentes fabricantes. Aunque la mayor�a de las computadoras utilizan m�dulos de RAM basados en est�ndares de la industria, existen algunas excepciones. Las m�s notables de estas excepciones son port�tiles (e inclusive aqu� se comienza a ver un poco m�s de estandarizaci�n) y servidores de punta. Sin embargo, a�n en estos ejemplos, es muy probable que est�n disponibles m�dulos de terceros, asumiendo que el sistema sea relativamente popular y que no se trate de un dise�o completamente nuevo. |
4.2.4. Discos duros
Todas las tecnolog�as discutidas hasta ahora son vol�tiles por naturaleza. En otras palabras, los datos contenidos en almacenamiento vol�til se pierden cuando se desconecta el poder.
Por otro lado, los discos duros son no-vol�tiles — lo que significa que los datos se mantienen all�, a�n despu�s que se ha desconectado la energ�a. Debido a esto, los discos duros ocupan un lugar muy especial en el espectro del almacenamiento. Su naturaleza no-vol�til los hace ideal para el almacenamiento de programas y datos para su uso a largo plazo. Otro aspecto �nico de los discos duros es que, a diferencia de la RAM y la memoria cach�, no es posible ejecutar los programas directamente cuando son almacenados en discos duros; en vez de esto, ellos deben primero ser le�dos a la RAM.
Otra diferencia de la cach� y de la RAM es la velocidad del almacenamiento y recuperaci�n de los datos; los discos duros son de al menos un orden de magnitud m�s lento que todas las tecnolog�as electr�nicas utilizadas para cach� y RAM. La diferencia en velocidad es debida principalmente a su naturaleza electromec�nica. Hay cuatro fases distintas que toman lugar durante cada transferencia de datos desde o hacia un disco duro. La lista siguiente ilustra estas fases, junto con el tiempo que en promedio tomar�a una unidad de alto rendimiento, para completar cada fase:
Movimiento del brazo de acceso (5.5 milisegundos)
Rotaci�n del disco (.1 milisegundos)
Lectura/escritura de datos de cabezales (.00014 milisegundos)
Transferencia de datos hacia/desde la electr�nica del disco (.003 Milisegundos)
De todas estas, solamente la �ltima fase no es dependiente de ninguna operaci�n mec�nica.
| Nota |
---|
| Aunque hay mucho m�s por aprender sobre los discos duros, las tecnolog�as de almacenamiento de disco son discutidas con m�s detalles en el Cap�tulo 5. Por los momentos, solamente es necesario tener presente la gran diferencia de velocidad entre la RAM y las tecnolog�as basadas en disco y que su capacidad de almacenamiento usualmente excede la de la RAM por un factor de al menos 10 y a menudo de 100 y hasta m�s. |
4.2.5. Almacenamiento para respaldos fuera de l�nea
El almacenamiento de respaldo fuera de l�nea d� un paso m�s all� del almacenamiento de disco duro en t�rminos de la capacidad (mayor) y de la velocidad (m�s lento). Aqu�, las capacidades solamente est�n limitadas por su habilidad de conseguir y almacenar la media removible.
Las tecnolog�as utilizadas en estos dispositivos var�an ampliamente. He aqu� los tipos m�s populares:
Cinta magn�tica
Disco �ptico
Por supuesto, el tener una media removible significa que los tiempos de acceso son a�n m�s largos, particularmente cuando los datos deseados est�n en un medio que a�n no est� cargado en el dispositivo de almacenamiento. Esta situaci�n es aliviada de alguna manera por el uso de dispositivos rob�ticos capaces de montar y desmontar autom�ticamente la media, pero las capacidades de almacenamiento de la media de tales dispositivos son finitas. Hasta en el mejor de los casos, los tiempos de acceso son medidos en segundos, lo cual est� bastante lejos de los tiempos t�picos de acceso de los ya relativamente lentos multi-milisegundos de un disco duro.
Ahora que ha visto brevemente las diferentes tecnolog�as de almacenamiento utilizadas hoy en d�a, vamos a explorar los conceptos b�sicos de la memoria virtual.