La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7309 - FUNCIONAMIENTO DE MEMORIA PENTIUM
Autor:  RAUL AYALA OVANDO
Quisiera saber el funcionamiento de lña memoria pentium.Es para una materia de lenguaje ensamblador,por otra parte esta pagina esta de maravilla y muy completa.

  Respuesta:  Jorge Luis Peralta
Te recomiendo que trabajes en modo protegido.
Aparenteme es dificil, pero en modo protegido es mas facil.
La ventaja es que te olvidas de los segmentos, o sea si tienes datos mayores a 64Kbytes no hay problema porque puedes manejar en un solo segmento hasta con datos hasta 4 Gbytes.
Para la manipulacion de datos en memoria tienes que tener en cuenta que debes trabajar con registros de 32 bits ESI, EDI y EBX en lugar de SI, DI, BX.
La asignacion de Segmentos, descriptores de eso se encarga el sistema operativo, por lo que te recomiendo no los toques.

  Respuesta:  numen numen
El funcionamiento de la memoria en el Pentium es idéntico al del i386 y todos los microprocesadores tipo intel de 32 bits. Esencialmente existen para estos micros tres modos de operación:

1) Modo real: La memoria consiste en 1Mb en total, y se direcciona mediante el mecanismo de segmento:offset. Esencialmente, el bus de memoria es de 20bits (1Mega), asi que se usan dos registros de 16bits (seg/off). El segmento se multiplica por 16 y se suma al offset. Con eso se obtienen 20 bits. Usualmente el segmento se deja fijo y se varía el offset, de forma que sólo se direccionan cómodamente 16bits (64Kb) de los 20. Este es el método primitivo de los primeros micros de Intel (8086-80186).

2) Modo protegido: Si el modo real te parece complicado, el modo protegido es peor. Hace falta un pequeño libro para describirlo, así que te sugiero que te leas los manuales de intel (www.intel.com). Esencialmente, se emplea un bus de memoria de 32bits (4Gb direccionables) con la posibilidad de paginar memoria en el disco duro. Se establecen mecanismos para proteger la memoria, de forma que no puedes acceder (en general) a toda la memoria a menos que tengas privilegios para ello. Ahora los offset son de 32bits, en tanto que los segmentos indican una entrada en una base de datos (GDT) donde se describen los límites, permisos, etc. que se conceden a ese segmento para acceder a la memoria. Este mecanismo es necesario para hacer sistemas operativos multiusuario y multitarea, pues la memoria no puede ser usada promiscuamente.

3) Modo v86 (virtual-86): Consiste en una simulación del modo real dentro del modo protegido. Es el que emplean algunos extendedores de DOS (como DPMI) para dar más de un mega de memoria baja MSDOS.

Espero no haberte asustado. Lo mejor que puedes hacer es irte a Intel.com y bajarte la descripción del i386 a nivel de hardware, donde te explicarán los arcanos de su mecanismo de direccionamiento. Realmente vale la pena si quieres programar tu ordenador a bajo nivel. Aunque de lo dicho arriba tampoco hace falta mucho. En general el sistema operativo de 32 bits que uses se encargará de administrar los segmentos, de forma que no tendrás que preocuparte de nada.