Что означает количество «инструкций из одного слова» в спецификациях памяти микроконтроллера?

Я скопировал следующее предложение из таблицы данных PIC MCU:

«PIC18(L)F26K22, PIC18(L)F46K22: 64 Кбайт флэш-памяти, до 37 768 инструкций, состоящих из одного слова ».

вопрос в том, что означает «37 768 однословных инструкций» для памяти?

это показывает, как быстро память или что-то еще? в чем его смысл и как он рассчитывается?

Во-первых, это 32 768 слов, и это показатель объема памяти, а не скорости.
Кстати, согласно международному стандарту, размер Flash-памяти правильно описывать как 64 кибибайта или 64 КиБ. Приставка киби означает 2 ^ 10, а кило означает 10 ^ 3.
Я предполагаю, что это таблица данных: microchip.com/stellent/groups/picmicro_sg/documents/devicedoc/… На самом деле она содержит цифру 37768 (стр. 64, раздел 5.1), поэтому технически приведенная здесь цитата верна. Это, очевидно, опечатка, в таблице 1 на странице 2 есть правильный номер.

Ответы (2)

Во-первых, ваш вопрос содержит опечатку, вы имеете в виду 32 768 (2 ^ 15), а не 37 768.

Рассматриваемый PIC имеет 16-битное командное слово.

Размер флэш-памяти указан как 64К (65536) байт . С двумя байтами на слово это место для 32768 простых инструкций.

Многие процессоры, в том числе и этот, предлагают инструкции различной длины — более сложные инструкции могут включать такие вещи, как непосредственные операнды или адреса памяти. Для их кодирования требуется больше битов, и поэтому они длиннее, чем инструкции «одного слова».

Таким образом, таблица данных дает вам лучший случай. В зависимости от компилятора или стратегии ручного кодирования реальный код может иметь различную среднюю длину инструкций, поэтому сложно сказать, сколько типичных инструкций может поместиться во флэш-памяти. Даже если можно написать программу, использующую все инструкции, состоящие из одного слова, на машине, предназначенной для их поддержки, вполне может быть более эффективно использовать некоторые инструкции, состоящие из нескольких слов, особенно если это позволяет избежать необходимости выполнять еще одну выборку константы из память данных.

Вы имели в виду "непосредственные операнды"?

Я ожидаю, что это должно быть 32 768 однословных инструкций. Если «слово» состоит из двух байтов, а в памяти 65 536 байт, то в памяти может храниться 32 768 таких слов. Это никак не связано со скоростью памяти.