Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Ver: Modo: Orden:
Una opinión sobre el G5 | 44 comentarios (42 temáticos, 2 editoriales, 0 ocultos)
Ni para tí ni para mí (3.00 / 1) (#34)
por xitai a las Thu Jul 10th, 2003 at 08:55:09 PM CET
(Información Usuario)

Como escribía de memoria de cosas que hace mucho que no manejo, cabía la posibilidad de que estuviera equivocado, así que, siguiendo tu consejo, he buscado en mi biblioteca el manual de referencia del 486 (es lo más avanzado de Intel que llegué a programar a bajo nivel) y comprendí que había cometido el error de extrapolar el funcionamiento de los segmentos del modo real de 16 bits al modo protegido de 32 bits.

Pero tú estás incurriendo en el error de multiplicar los 4GB del los 32 bits por los 16K selectores para obtener un teórico espacio de direccionamiento de 64TB. En realidad cada selector apunta a un descriptor que define un segmento que no puede salirse de los 32 bits de dirección efectiva. Es decir, como máximo 4GB. Eso es así en el 486 al menos.

Lo mismo nos estamos pasando al discutir aquí este tema tan técnico y tan trivial.

[ Padre ]


Los dichosos 64 TB de los Intel (3.00 / 1) (#35)
por jorginius ("jorginius" en Google Mail) a las Thu Jul 10th, 2003 at 09:49:35 PM CET
(Información Usuario) http://www.rodriguezmoreno.com

Pero tú estás incurriendo en el error de multiplicar los 4 GB del los 32 bits por los 16K selectores para obtener un teórico espacio de direccionamiento de 64 TB. En realidad cada selector apunta a un descriptor que define un segmento que no puede salirse de los 32 bits de dirección efectiva

A ver, que me parece que uno de los dos se está perdiendo :-).

En el registro selector de segmento (de 16 bits) tienes los primeros 13 como índice de la tabla de descriptores de segmento, lo cual nos da que hay 8k entradas. Como cada proceso puede usar su LDT o la GDT, tenemos en total 16k entradas disponibles (de las cuales 8K son propias del proceso y 8K son globales).

Cada entrada contiene un descriptor. Los descriptores son de 64 bits, 32 bits para indicar la base y 20 bits para indicar el offset, lo que nos daría segmentos de como máximo 1MB (20 bits), pero como el límite puede expresarse en páginas (de 4 KB, es lo que se conoce como segmentacion paginada), tenemos segmentos de hasta 4 GB, y 4 GB por 16 K entradas dan los 64 TB (32 TB serián compartidas por todos los procesos del sistema y 32 TB estan disponibles como espacio virtual de cada proceso).

Eso es así en el 486 al menos.

Lo que te estoy contando es así desde el 386 (486 incluido). El espacio de direccionamiento virtual no cambia del 386 al 486. Lo que es "novedoso" (Pentium Pro, II, III, etc) son los 64 GB de memoria física direccionable.

Otra característica novedosa que se introduce con el Pentium Pro es que los micros Intel a partir de ahí son RISC. Son micros híbridos que leen instrucciones CISC pero que sólo ejecutan instrucciones RISC: hay un paso de traducción previo y a nivel de microarquitectura se pasa de una unidad microprogramada a una cableada. AMD fue pionera en x86 con esta técnica, en sus chips de 5º generación con tecnología RISC86 Intel tuvo algunos problemas al principio: en el Pentium Pro, la traducción era realmente ineficiente para el código de 16 bits, cosa que no ocurria en los micros de AMD.

Sólo lo comento porque la gente sigue asociando CISC con x86 y RISC con Macs o PowerPC. Igual que lo del límite de 4GB físicas, eso ya es algo del pasado.

Lo mismo nos estamos pasando al discutir aquí este tema tan técnico y tan trivial.

Ahora mismo no tengo nada mejor que hacer :-) y sabiendo el tipo de parroquianos que se juntan por estos lares, no creo que a nadie le suene a chino.

[ Padre ]


Seguimos (3.00 / 1) (#36)
por xitai a las Thu Jul 10th, 2003 at 11:03:00 PM CET
(Información Usuario)

In a segmented model of memory organization, the logical address space consists of as many as 16,383 segments of up 4 gigabytes each, or a total as large as 2^46 bytes (64 terabytes). The processor maps this 64 terabyte logical address space onto the physical address space (up to 4 gigabytes) by the address translation mechanism describred in Chapter 5.

(i486 Microprocessor Programmer's Reference Manual, Intel Corporation, 1990, Parágrafo 2.1.2)

Dirección lógica (0-64TB) -> dirección efectiva (0-4BG) -> dirección física (0-2^L)
Donde L es el número de líneas del bus de direcciones.



Respecto a lo que dices de que, interiormente, los pentiums son RISC, es cierto, lo cual demuestra que los RISCs han ganado la partida. Lo que pasa es que las necesidades de compatibilidad hace que se sigan usando las instrucciones CISCs.

Y qué opinas de los procesadores VLIW (Very Large Instruction Word)? ¿Tienen futuro? ¿Está la tecnología de compiladores lo bastante avanzada para ellos?.

Para los que no lo sepan, se trata de agrupar en una palabra de instrucción, muy larga, de tamaño fijo, varias operaciones que se ejecutan en paralelo.

[ Padre ]


Segmentos por todas partes... Y páginas (3.00 / 1) (#37)
por jorginius ("jorginius" en Google Mail) a las Fri Jul 11th, 2003 at 01:56:13 AM CET
(Información Usuario) http://www.rodriguezmoreno.com

(i486 Microprocessor Programmer's Reference Manual, Intel Corporation, 1990, Parágrafo 2.1.2)

Dirección lógica (0-64TB) -> dirección efectiva (0-4BG) -> dirección física (0-2^L) Donde L es el número de líneas del bus de direcciones.


No veo claro si me estás dando la razón o si no soy capaz de ver lo que quieres decir.

Lo que has leído en el manual es cierto. El espacio de direccionamiento virtual es de 64 TB, la dirección efectiva (u offset) es de 20 bits (20 y no 32) que, hablando en páginas, nos da esos 4GB por segmentos y la dirección física en un 486 es de 32 bits, lo que nos permite acceder a 4 GB de memoria física.

Todo correcto... Pero lo que parece que das a entender es que esto último (la dirección física de 32 bits) limita el uso del resto del espacio virtual de alguna forma :-?. Simplemente cuando accedamos a alguna dirección que no esté disponible en memoria principal, el bit de presencia del descriptor estará inactivo (o el bit de una de las páginas del segmento, ya que estamos trabajando con segmentación paginada), saltaría un trap y el SO que trabajase con ese esquema haría lo que tuviera que hacer.

El espacio de 64 TB es un espacio teórico que nadie usará nunca por ineficiente. Implica usar la 16K entradas conjuntas de las tablas de descriptores de segmento, que a 64 bits por descriptor hacen un total de 128 MB: 64 MB por proceso, sólo la LDT. Sin contar con las tablas de páginas, el tamaño y la complejidad de las estructuras que tendría que manejar el kernel para representar un solo proceso o para llevar la contabilidad de la memoria, los algoritmos que manejen aquello, etc.

... Pero que duda cabe de que sobre el papel y con la publicidad en la mano es perfectamente realizable :-).

Por otra parte, sobre los 64 GB:

The processor maps this 64 terabyte logical address space onto the physical address space (up to 4 gigabytes) by the address translation mechanism describred in Chapter 5.

Si cotejas el capítulo 5 de tu manual con el capítulo correspondiente de uno de un Pentium II (p.ej) verás que es diferente. Hay un nivel más de indirección: paginación a 3 niveles (o a 2 pero con páginas de 2 MB) y la dirección física resultante es de 36 bits.

Y qué opinas de los procesadores VLIW (Very Large Instruction Word)? ¿Tienen futuro?

No sabría decirte, es la primera noticia que tengo de ellos :-}. La verdad es que así, en frío y como lo explicas, no veo la ventaja al invento. Se impone una entrada de diario explicando a los legos como yo de qué va el asunto :-).

[ Padre ]


 

Una opinión sobre el G5 | 44 comentarios (42 temáticos, 2 editoriales, 0 ocultos)
Ver: Modo: Orden:
Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda