Большинство из нас, кто имеет опыт работы с электроникой, знают, что SRAM быстрее, чем DRAM. Но когда дело доходит до сравнения ОЗУ с ПЗУ, я не уверен.
Мой вопрос связан с микроконтроллером: «Если код выполняется непосредственно из ОЗУ / ПЗУ, производительность которого будет лучше: 1) выполнение из ОЗУ или 2) выполнение из ПЗУ или 3) оба будут работать одинаково»
Также учитывая тот факт, что ПЗУ предназначены для более высокой скорости чтения. в то время как для RAM существует компромисс скорости чтения для наличия возможностей записи.
microcontroller
ram
rom
Принц Рамбаде
источник
источник
Ответы:
Таблица данных должна указывать, сколько времени занимает каждая инструкция, и какие существуют различия, если они есть, между выполнением из ОЗУ или ПЗУ.
Для микроконтроллера, который предлагает возможность выполнения из ОЗУ, это, вероятно, быстрее, вероятно, является основной целью использования дополнительного пространства ОЗУ для выполнения кода из. Там также могут быть некоторые проблемы с перекрытием извлечения. В некоторых случаях это может быть быстрее выполнить из ПЗУ, потому что это отдельная память, и доступ к ОЗУ может происходить одновременно.
Опять же, единственный способ узнать какой-либо конкретный микроэлемент - ПРОЧИТАТЬ ДАННЫЕ .
источник
Это полностью зависит от памяти и архитектуры процессора. Как правило, SRAM быстрее флэш-памяти, особенно на высокоскоростных микроконтроллерах (> 100 МГц). Битовые ячейки SRAM производят (более или менее) выход логического уровня, в то время как флэш-память должна проходить более медленный процесс измерения тока.
Насколько быстрее (если таковые имеются) снова зависит от архитектуры - размер слова в памяти, количество состояний ожидания для каждого, наличие кэширования, размер инструкций процессора и т. Д. Если вы работаете на При достаточно низкой частоте вы можете иметь нулевое состояние ожидания на флэш-памяти и ОЗУ, чтобы они могли работать с одинаковой скоростью.
Код также имеет значение. Если ваш код является строго линейным (без разветвления), флэш-память может выполнять предварительную выборку команд достаточно быстро, чтобы поддерживать насыщение процессора даже на более высоких частотах. Как сказал Олин, ЦП Гарвардской архитектуры с отдельными путями чтения программ и данных может работать по-разному, когда код и данные находятся в разных запоминающих устройствах.
Металлические ПЗУ (и другие энергонезависимые запоминающие устройства, такие как FRAM) имеют свои собственные характеристики и могут быть или не быть такими же быстрыми, как SRAM. Способность писать не обязательно имеет значение; это больше о характеристиках выходных битовых ячеек и чувствительных цепей.
Таблица данных даст вам приблизительное представление о разнице в скорости, но единственный способ узнать наверняка - это профилировать ваш код.
источник
«Запуск программы» требует процессора с синхронными часами. Медленная память может быть приспособлена либо путем запуска всей системы на достаточно медленных тактовых частотах, либо путем вставки
wait states
(дополнительные тактовые циклы бездействия между фазами выборки и декодирования), активные только для определенных диапазонов адресов (см., Например, древний 8085). Извлечение инструкций процессора не знает или не заботится точно, когда данные устанавливаются к своему окончательному значению, лишь бы они не изменялись в течение интервала установки / удержания.Микроконтроллер обычно имеет всю свою встроенную память, поэтому, если не указано иное, я предполагаю, что вся система памяти находится в состоянии нулевого ожидания. (но прочитайте таблицу для подтверждения). Типичные микроконтроллеры предназначены для более простых одночиповых решений по сравнению с настольными компьютерами, поэтому в микроконтроллере состояния ожидания маловероятны. Так что вряд ли микроконтроллер имел бы несоответствующие скорости памяти на кристалле.
Быстрая память обычно стоит дороже (более высокое напряжение, меньшая емкость, больший спрос). 80xx86 имеет быструю SRAM в кеше L2 и еще более быструю SRAM в кеше L1, а также множество более медленных внешних микросхем DRAM, подключенных к контроллеру памяти. Такая система намного сложнее, чем микроконтроллер, и выходит за рамки вопроса. (Но большой интерес для компьютерного инженера!)
источник