User Tag List

Показано с 1 по 10 из 50

Тема: В чем смысл раздельных областей программы и данных

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    09.01.2010
    Адрес
    г. Москва
    Сообщений
    271
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уж извините, если уже упоминалось, читать все страницы темы лень. Отвечая на вопрос темы:
    В основном, конечно, разницы принципиальной нет, за исключением того, что вообще-то почти всегда (если не всегда) можно логически отделить данные от исполняемого кода (если только не юзать самомодифицирующийся код). Тогда, появляется возможность определить исполняемый код в а) ПЗУ б) EEPROM в) Flash и т.п. Т.е. смысл в том, что исполняемый код модифицировать не требуется, и его можно разместить в более емкой/дешевой/быстрой/неудобной по доступу (выбирать самостоятельно) памяти. А вот данные уж будь добр либо в DRAM либо в SRAM.
    Собственно так все нормальные своременные микроконтроллеры и строятся (память программ обычно внутри, flash, программируется с помощью специальных танцев с бубном, иногда даже требует отличного от VDD напряжения программирования) + 1...4 Кб обычной ОЗУ (тоже внутренней). Бывает еще память двойного доступа (в зависимости от состояния определенных регистров, работает как память программ или как память данных, но все-таки она - ОЗУ, т.е если там программа, то надобно ее туда скопировать после RESET'а, компилятор обычно сам об этом заботится), но это уже экзотика.

    Кстати есть еще адресное пространство ввода-вывода, которое отличается тем, что проц обычно не имеет столь развитых средств работы с ним и ограничивается командамит in,out, и то бывает весьма урезанными - без косвенной адресации. Бывает, что это тоже отдельная шина.

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

    Хотя наверное, если память программ и данных разделены, есть возможность одновременно делать выборку следующей команды из памяти программ и читать/писать данные в память данных при исполнении текущей команды. Т.е. получаем ускорение за счет "двойного" обращения к памяти.

    Еще раз извиняюсь за очевидные вещи.
    Последний раз редактировалось e2e4; 13.06.2010 в 18:58.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Базы данных на Спекки
    от Ewgeny7 в разделе Софт
    Ответов: 18
    Последнее: 06.06.2019, 17:30
  2. Суперпаковщик данных BitBuster
    от Aprisobal в разделе Программирование
    Ответов: 35
    Последнее: 18.10.2010, 08:02
  3. В чем смысл разделых полей памяти
    от Gryphon в разделе Для начинающих
    Ответов: 31
    Последнее: 20.05.2010, 18:12
  4. База данных по модулям МПИ
    от KALDYH в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 10.06.2009, 17:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •