¿Qué significa el número de "instrucciones de una sola palabra" en las especificaciones de memoria de una MCU?

He copiado la siguiente oración de una hoja de datos de PIC MCU:

"PIC18(L)F26K22, PIC18(L)F46K22: 64 Kbytes de memoria flash, hasta 37 768 instrucciones de una sola palabra ".

la pregunta es ¿qué significa "37,768 instrucciones de una sola palabra" para una memoria?

¿Muestra qué tan rápida es la memoria o algo más? ¿Cuál es su significado y cómo se calcula?

En primer lugar, son 32 768 palabras y es una medida del tamaño de la memoria, no de la velocidad.
Por cierto, según el estándar internacional, el tamaño de Flash se describiría correctamente como 64 kibibytes o 64 KiB. El prefijo kibi significa 2^10 mientras que kilo significa 10^3.
Supongo que es esta hoja de datos: microchip.com/stellent/groups/picmicro_sg/documents/devicedoc/… En realidad contiene la cifra 37768 (página 64, sección 5.1), por lo que técnicamente la cita aquí es correcta. Sin embargo, obviamente es un error tipográfico, está el número correcto en la tabla 1 en la página 2.

Respuestas (2)

Primero, su pregunta contiene un error tipográfico, quiere decir 32,768 (2^15) no 37,768.

El PIC en cuestión tiene una palabra de instrucción de 16 bits.

El tamaño de la memoria flash se especifica como 64K (65536) bytes . Con dos bytes por palabra, hay espacio para 32768 instrucciones simples.

Muchos procesadores, aparentemente incluido este, ofrecen instrucciones de longitud variable; las instrucciones más complejas pueden incluir cosas como operandos inmediatos o direcciones de memoria. Estos requieren más bits para codificar, por lo que son más largos que las instrucciones de "una sola palabra".

Por lo tanto, la hoja de datos le ofrece el mejor de los casos. Según el compilador o la estrategia de codificación manual, el código real puede tener una longitud de instrucción promedio variable, por lo que es más difícil decir cuántas instrucciones típicas caben en flash. Incluso si es posible escribir un programa usando todas las instrucciones de una sola palabra, en una máquina diseñada para admitirlas, puede ser más eficiente usar algunas de varias palabras, especialmente si eso evita tener que buscar otra constante de memoria de datos

¿Quiso decir "operandos inmediatos"?

Espero que sean 32.768 instrucciones de una sola palabra. Si una "palabra" tiene dos bytes y la memoria tiene 65 536 bytes, entonces la memoria puede contener 32 768 de esas palabras. No tiene nada que ver con la velocidad de la memoria.