Nuestros computadores actuales incluso los que tienen 15 años o menos tienen procesadores de 64 bits, y ha habido muchos cambios en el transcurso del tiempo, y hablando en el mundo del PC, nuestros procesadores y el hardware alrededor de él. Independientemente de lo que se piense, el procesador es el que le dice a cada pieza de hardware lo que debe hacer con la información que ingresa o que sale del computador, aunque hay piezas que hacen cosas impresionantes, el procesador es el que le dice lo que debe y no debe hacerse con la información.
Para entender más, el procesador es el centro del computador y lo veremos aquí. Junto a él veremos las diferentes memorias que hay.
Es un chip electrónico, diseñado con lógica digital y fabricado en silicio que posee un juego de instrucciones las cuales son regidas por una base de tiempo y que ayudan a realizar las mismas. Este juego de instrucciones se les llama código de instrucción y pueden realizar la función para manejar los datos que ingresan y salen del procesador. Esas instrucciones están divididas en: movimiento de datos desde y hacia memorias o puertos de entrada y salida; Operaciones matemáticas de números enteros; Operaciones matemáticas de punto flotante; Operaciones lógicas entre otras más.
El primer procesador hecho así en la historia se construyó por Intel en 1971 con el nombre 4004, Este procesador de 4 bits podía hacer cosas siguiendo un programa que se graba en una memoria ROM, la memoria RAM solo es un apoyo para el programa que maneja el procesador. Luego de él apareció el 8080 que es de 8 bits y luego la familia del 8086 conocida como el x86. Cuando IBM estableció el estándar de los PC, lo hizo con un procesador de la familia x86 de Intel llamado el 8088 para reducción de costos y que la gente pudiera adquirirlo y usarlo, pues el procesador se comunicaba con el hardware alrededor de él a 8 bits e internamente trabajaba a 16 bits. Junto a ese PC aparecieron las distintas marcas que hay y aparecen nuevas al seguirse ensamblando PC tipo torre.
En cuanto a procesadores, también aparecieron AMD, IBM, Ciryx y Texas Instruments que aparecieron con procesadores compatibles con la familia x86, lo que permitió reducir los costos, ya que, estos hacían lo mismo que los de Intel de manera más económica. Luego apareció el i286 (286 en la competencia) dentro del mundo del PC. Este procesador tiene varias características que aún empleamos en nuestros computadores. La primera que apareció fue la memoria virtual y la multitarea.
Para entender porque esto es vital, debemos entender que la memoria RAM, es una memoria con muy poco espacio, de hecho no ocupa mucho espacio dentro del procesador. Resulta que el procesador tiene dos buses, uno de datos que es bidireccional y en el 286 es de 16 bits, y uno de direcciones que tiene una cantidad más grande bits que el bus de datos. Por el bus de datos viajan las instrucciones y los datos a trabajar que puede provenir de un puerto de entrada o salida (E/S, en inglés I/O) o estar en la memoria RAM. El bus de direcciones es el que me permite por medio de una dirección acceder a cualquiera de las opciones mencionadas, y esas se alistan en una instrucción dentro del procesador. Además posee un bus de control que permite escoger si es memoria, un puerto I/O o un DMA (Direct Memory Access) y si lo que se va a realizar es una función de Lectura (RD) o de escritura (WR).
Teniendo lo anterior claro, las memorias RAM disponibles para instalar depende del espacio que me deja la ROM (que tiene el programa que me configura el computador al prenderse y que además tiene el Setup para configurar en detalle el mismo) llamada BIOS y la CMOS (es una memoria RAM sostenida por una pila CR2032, y en donde se guarda la configuración del equipo) las cuales ocupan las primeras direcciones de memoria del procesador. Adicional a esto, la memoria RAM es un poco más compleja de construir que una ROM, por lo que siempre que sale una nueva hay que indicar como direccionar las celdas de datos y que tan ancho es el bus de datos de la misma, por lo tanto la capacidad total de la memoria (la cantidad máxima de direcciones que tiene multiplicado por el ancho del bus de datos) siempre es limitada dentro del chip de silicio en el que se construye.
La memoria Virtual es una serie de conjuntos de instrucciones que simula memoria RAM en una unidad de almacenamiento (generalmente un disco duro o una SSD actual), por lo que el programa que se está manejando no nota la diferencia y puede continuar trabajando. Antes de la memoria Virtual, si ya no tenía memoria RAM se te bloqueaba el equipo o el sistema operativo te sacaba un error de falta de memoria. Con la memoria Virtual se mantiene funcionando el programa y el archivo que estás manejando, además de poder abrir más programas y mantenerlos a todos trabajando, esta función se llama MultiTasking o MultiTarea. Función que usamos extensamente en nuestros computadores en modo gráfico.
Esto facilitó las tareas en el computador tipo PC. Luego apareció la familia x86-32 de 32 bits, con 32 bits en el bus de datos y 32 bits en el bus de direcciones, en direcciones puedes direccionar hasta 4 Gigas en memoria, Puertos I/O y DMA. Elúltimo de esta familia antes de entrar el Pentium fue el 486DX que tenía una memoria RAM Caché interna L1 lo que aceleró más el proceso y que veremos más adelante. Con el Pentium llegó la unidad de punto flotante incorporada (FPU), bus de datos de 64 bits y bus de direcciones de 32 bits con un juego de instrucciones de 32 bits ampliado. Adicional a lo que ya traía el 486DX tenía para direccionar externamente memoria Caché L2. Otra característica es que internamente el Pentium tenía 2 Pipelines cada uno con un juego de instrucciones propios, esto permitió al procesador hacer dos instrucciones al tiempo y ejecutar un programa en desorden debido a que el núcleo interno sabía como funcionaba el programa. Esto aumentó el rendimiento. Esto continuó así hasta el Pentium 4.
Por otro lado AMD probó una nueva manera de hacer procesadores compatibles con el juego de instrucciones de Intel con sus procesadores K6 II y K6 III para luego saltar a la tecnología x86-64 bits, que luego aprendió a realizar Intel mediante licencia por un tiempo y que es la que hoy usamos. Los procesadores x86-64 tienen 64 bits en el bus de datos y 64 bits en el bus de direcciones trabajando de forma nativa a 64 bits. Después de tan larga historia veamos porque podemos decir que nuestros procesadores siguen siendo compatibles, internamente tienen las instrucciones siguientes:
x86-16: el conjunto de instrucciones del 8086 hasta el 286
x86-32: El conjunto de instrucciones anterior y el juego de instrucciones del 386 hasta el Pentium 4 que incluye MMX y las instrucciones SSE1 hasta SSE4 para el manejo de información de los DVD de audio y los DVD de vídeo.
x86-64: son las últimas e incluye el juego de instrucciones de los AMD64 que incluye las del K6 II 3D Now y K6 III.
Así que, los que tenemos PC podemos usar cualquier sistema operativo que queramos y trabajar en él sin problema. Ahora conoceremos las memorias.
Ya hablamos un poco de ellas en el tema anterior. La función de la memoria dentro de un computador es mantener abierto el programa que está ejecutando el procesador. Dentro de ella no hay nada salvo las celdas en donde están las instrucciones y los datos a procesar por parte del procesador. Por eso no hay diferencia en los chips de RAM que se usan para el procesador ni para la tarjeta de vídeo.
Como la ROM es en donde está la BIOS y ocupa las primeras direcciones del procesador, las otras son RAM. La diferencia entre ambas es que, la ROM puede estar sin energía y guardar lo que tenga grabado de forma indefinida. Mientras que, la RAM sí necesita energía para retener la información. Tan pronto le quitas la electricidad se borra todo lo que tenga allí. Por eso es importante, siempre guardar la información que estemos trabajando, porque si se te va la luz te toca volver a empezar si no has guardado la información.
A este grupo de Memorias hay que agregarle la virtual que apareció con el i286 en la familia x86 y que se sigue usando con cada vez mayor capacidad por fuera de los límites inherentes del procesador. Conoceremos entonces a partir de la RAM en adelante.
Memoria RAM
Es una memoria de acceso aleatorio (Random Access Memory) en el que se guardan temporalmente instrucciones o información del procesador o de los usuarios del computador. En el tema anterior mencioné que no había diferencia entre la memoria que se usa para vídeo y la que el procesador, y es cierto. Porque en el vídeo es el procesador de vídeo llamado unidad de procesamiento gráfico (GPU) es el encargado de seguir las instrucciones que le envía el procesador yéñ se encarga de procesar la información que le llega y escribir en la RAM que tiene como se va a ver la información en pantalla. Esa RAM hace exactamente lo mismo que la del procesador, solo mantiene la información a procesar mientras el equipo esté encendido. La velocidad e imagen o de ejecución de un programa no está en la RAM sino en el Procesador y la forma en que la maneje.
Las memorias RAM tanto para el uno como para el otro, son memorias sincrónicas llamadas actualmente DDR y las de vídeo van una generación adelantada. Mientras nuestro procesador va en la DDR5 en las de vídeo van en la DDR6. El procesador y la memoria RAM van a la misma velocidad que el mismo procesador por lo que se ve su rendimiento incrementado al enviar y recibir información que va guardada allí. Aunque pareciera que la memoria RAM ejecutara los programas, la verdad el que ejecuta los programas es el procesador. Lo que vemos es como se accede rápidamente a la información en la RAM.
La memoria Caché es también una memoria RAM sincronizada a la velocidad del procesador, solo que, con una pequeña diferencia, esta tiene la capacidad de guardar las instrucciones y datos que repite con frecuencia el procesador y de informarle si posee la siguiente instrucción o dato a trabajar. Si ella no la tiene, el procesador lo busca en la memoria principal que es más lenta que la Caché, así que, lo que vemos es el alto rendimiento que el procesador logra con la memoria RAM Caché más que con la principal. Esta memoria se divide en L1, L2 y L3. La L1 es la más veloz de todas, ya que se encuentra dentro de cada uno de los núcleos que conforma el procesador. La L2 es rápida, pero tiene poca capacidad, la L3 es igual de rápida, sin embargo tiene una capacidad más grande que la L2 y va de acuerdo al modelo del procesador que haya hecho el fabricante.
Las memorias son piezas importantes, pero sin el procesador esto no funciona nunca.
La memoria virtual, no es completamente de Intel la idea. Resulta que ya existía antes que apareciera el primer procesador en Unix, un sistema operativo antecesor del primer procesador lo mismo que la multitarea. Lo que pasa es que construir un computador y luego con los procesadores antes del 286,hacer la memoria virtual que en Unix se llama Swap, requería largas líneas de programación, pero el principio es el mismo que con el Intel, hacer creer al programa que hay más memoria RAM para trabajar.
Al introducirse el procesador 286, lo que se hizo es disminuir las líneas de programación con un juego de instrucciones dentro del procesador. Para que esto funcione lo mismo que la multitarea se tiene que usar un espacio o una unidad de almacenamiento de mayor capacidad que la RAM principal, para hacerlo incluyendo la multitarea. Hoy en día existen discos duros muy grandes y veloces lo mismo que unidades de estado sólido llamadas SSD de alta capacidad y sin partes mecánicas que han ido reemplazando poco a poco los discos duros.
Existen dos tipos de memorias virtuales, la dinámica y la estática. La dinámica es muy usada en Windows, y se hace dentro del mismo espacio del sistema operativo en una carpeta TMP. El problema con este tipo de memoria virtual es que disminuye a medida que se va llenando la unidad de almacenamiento hasta que con el tiempo el acceso se hace muy lento y por último sale el letrero de poca memoria o se bloquea el computador.
La memoria virtual estática se hace separando un espacio o colocándola en una unidad aparte y formateándola como área de intercambio o Swap. Esta técnica usada en Unix y Linux permite tener un espacio independiente en donde el procesador siempre encuentra en donde ir guardando lo que debe mantener abierto y funcionando. Generalmente se separa el tamaño de la RAM Principal hasta lo que pueda conseguir en unidad de almacenamiento que hoy en día está por encima de varios Terabytes.
Ahora bien, podemos usar discos duros, sin embargo, con el tiempo mientras aumenta el volumen de trabajo su rendimiento inicial va disminuyendo a medida que va ocupando espacio en el disco, por lo que para tareas no muy complejas es aconsejable su uso. Para mayor rendimiento es preferible usar unidades de estado sólido conocidas como SSD.
Existen SSD que se conectan en el mismo sitio del disco duro con un buen rendimiento, pues recordemos que estas no tienen piezas mecánicas como el disco duro; otras se conectan al PCI Express directamente y hay módulos que te permiten conectar estas SSD en el banco de la memoria RAM Principal que tengas libre. Al no tener piezas mecánicas son mucho más rápidas sin importar que tan llenas estén, lo que mejora el rendimiento sin disminuirlo en ningún momento.
Ahora bien, a medida que voy cerrando programas y archivos la memoria virtual se desocupa y dejándola vacía para una próxima ocasión en que se requiera, por lo que pareciera que tuviéramos una RAM en el computador.
Este tipo de memoria es un apoyo muy bueno, y como estas unidades de almacenamiento son cada vez más grandes, podemos disponer de una memoria virtual cada vez más grande, y es muy aconsejable tener una unidad de almacenamiento independiente realizando dicha tarea, mejorando nuestra forma de trabajar en el computador y manteniendo el rendimiento lo más alto que se pueda.
Podemos concluir entonces, que los procesadores que tenemos los podemos trabajar en lo que queramos usar, y en memorias conocimos la memoria virtual, que al usar el juego de instrucciones del procesador podemos trabajar en nuestros computadores con más memoria que con la que compramos y que la mejor y más grande es usar unidades de almacenamiento aparte para lograr hacer más tareas sin perder rendimiento.
Espero el tema les haya servido.
Buen día a todos.