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?
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
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.
david tweed
eliot alderson
ilkkachu