Soy un estudiante de desarrollo de software, que quiere mejorar sus conocimientos de hardware.
Estoy leyendo Organización informática estructurada de Tanenbaum . En el capítulo 2, el autor dice lo siguiente:
"[...] En los últimos años, casi todos los fabricantes de computadoras se han estandarizado en una celda de 8 bits [...]".
Pensé que esto era correcto, pero al buscar en Internet, ¡descubrí que no hay memorias con 8 bits por celda!
Entonces, mi pregunta es: ¿Es un error del autor o entendí mal lo que trató de explicar? Si es así, ¿cuál es, "generalmente", la cantidad de bits por celda y cómo podría ver los bits por celda de mi memoria?
Parece haber cierta confusión entre la organización de la memoria (que suele ser múltiplos enteros de 8 bits de ancho) y los bits por celda de memoria.
El almacenamiento de más de un bit por celda se puede lograr almacenando un voltaje analógico que se puede diferenciar en diferentes niveles para pedacitos El flash MLC puede tener 2 o 3 bits por celda, lo que requiere 4 u 8 niveles. Se vuelve progresivamente más difícil y, por lo tanto, más propenso a errores y malos rendimientos a medida que aumenta el número de bits.
Deben significar que una unidad direccionable más pequeña es de 8 bits, lo que se denomina byte o, a veces, incluso llaman a esa unidad direccionable más pequeña como una celda. Al agrupar estas celdas, se obtiene una palabra.
Entonces, una computadora de 64 bits tiene 8 celdas / palabra. Entonces, en efecto, es probable que sean sistemas x8
Esta cita parece estar usando la palabra "celda" para referirse a una ubicación de almacenamiento direccionable, donde la mayoría de nosotros consideraría que una celda es algo capaz de almacenar un bit.
No sé la antigüedad de ese libro, pero los circuitos integrados de memoria más antiguos se organizaron para que cada ubicación direccionable almacenara 8 bits (1 byte o palabra de memoria).
Hay tantos tipos de memoria que es difícil responder.
Lo que se "estandarizó" (¿qué estándar?) fue el byte (octeto) como tamaño fundamental en una computadora. Esto significa que, por lo general, las computadoras tienen cómo manejar números de 8 bits, incluso si son de 32 bits. Un byte tiene 8 bits en cualquier lugar, pero la palabra de la computadora puede tener otros tamaños, múltiplos de un byte (por ejemplo, una palabra de 32 bits que se compone de cuatro bytes, etc.). Incluso podría organizar esos bytes en diferentes órdenes (MSB primero, LSB primero, etc.).
Pero, en los recuerdos, puedes encontrar muchos tipos. Puede encontrar una EPROM de 8 bits o una RAM de un solo bit (donde necesita agrupar 8 chips de RAM para obtener un solo byte, etc.). O incluso memorias completas de 64 bits que transfieren palabras de 64 bits a la vez.
Pero, incluso cuando todas las memorias tienen diferentes tamaños de palabra, aún puede DIRECCIONAR todas las memorias en límites de 8 bits.
Por ejemplo :
Si su "celda" fuera de 32 bits, así se almacenaría el programa en la memoria:
100 add r1, r2, r3
101 sub r3, r5, r1
102 br 100
Si su "celda" es de 8 bits, así es como se almacena en la memoria:
100 add r1, r2, r3
104 sub r3, r5, r1
108 br 100
En el pasado, algunas computadoras funcionaban como el primer ejemplo, teniendo celdas de memoria de 32 bits (o 36, o 24, etc.), entonces, en ese caso, la "estandarización" era aceptar un solo tamaño de "celda" de memoria (8 bits) y tejer otras tallas a partir de eso.
Esto no quiere decir que un ordenador no pueda acceder a la RAM en racimos de otros múltiplos de 8 bits (16, 32, 64, etc.). Es posible que tenga instrucciones como
MOV EAX, [BP+10000] // hipotetical, i dont know if this addressing mode exists
// wich will transfer 4 bytes in a single cycle into the EAX.
Pero el BP+10000 en la instrucción todavía ve la memoria como si estuviera hecha de celdas de 8 bits.
Asmyldof