Важная информация

User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 50 из 50

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

  1. #41
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,211
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    210
    Поблагодарили
    181 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Можно было бы сделать аналогичный функционал с т.з. пользователя (но без защиты от копирования) на другой элементной базе и в другом виде. Этот вариант уникальный, интересный, но развития практически не имеет.
    А он интересен не ради развития, а ради истории.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  2. #42
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    А он интересен не ради развития, а ради истории.
    Сейчас конечно да. Мы говорили о том времени, когда стояла задача создания своего спектрума. Сейчас все клоны - для истории или как удобный в плане использования (современная элементая база, высокая надежность, меньшие габариты, новые примочки и т.п.) ретрокомп. А не альтернатива современным игровым консолям и ПЦ. Разница уже слишком велика.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  3. #43
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,211
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    210
    Поблагодарили
    181 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Мы говорили о том времени, когда стояла задача создания своего спектрума.
    В таком случае, ни один закрытый проект на массовом рынке не имеет развития (в нашей стране по крайней мере). Да, Apple выжила, но это скорее исключение.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  4. #44
    Master Аватар для Conan
    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    2,250
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    108 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Я это понимаю, защита сделана хорошо
    Защита строилась исходя из реалий того времени. Поясню. В те годы кол-во сильных программистов занимавшихся спеком было несоизмеримо больше нынешнего. Взламывали практически все. Вопрос времени: день, месяц или год. Дальше все шло в свободном доступе, и это все понимали. Поэтому то, что по прошествии 15-ти лет несколько попыток сломать защиту не завершились ничем, это не совсем показатель ее "хорошести". Видимо нынешним "взломщикам" не слишком то и хотелось. Попробовали, увидели, что непросто и отложили.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Схема очень и очень сложная, это очень сложный конечный автомат, как клубок из которого торчат ниточки и дернув за каждую получаем некий результат который ещё и зависит от того что перед этим дергали. Академически это интересно, а вот практически...
    Не соглашусь. Схема довольно простая, а вот логика работы непростая, потому, что аппаратно-програмные связки. Насколько важно что внутри? Ровно настолько, насколько важно, например, что внутри 1515ХМ1 216. Есть чип, впаял работает. Если хорошо работает, вообще замечательно. А то, что из него только выводы торчат, а что внутри не видно, это не мешает практическому использованию.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Сложно проектировать и создавать, ладно вы делали вдвоем, а если это компания где много сотрудников которые приходят и уходят, никто не поймет толком что и как. Т.е. разработка должна быть понятна и ясна, документирована.
    Документации у напарника были три или четыре папки, очень подробные, с комментариями, большинство карандашем, вдоль распечаток. Иначе бы сами не разобрались через месяц, что делали.
    Проблема заключалась в другом. Разработка в активной фазе на два года растянулась. Потому, что не было ни денег ни оборудования, да и кушать в это время (вот незадача то ) что-то было надо. Родители пенсионеры, мы студенты и безработные, годы довольно тяжелые (начало 90-х). Вот и приходилось то PC XT сломанную занимать, ремонтировать, PCAD осваивать, то осциллогаф покупать, то искать деньги на заказ плат, то мониторы чинить, и так далее. Кредитов в те годы никто не давал. Тем более на такие разработки. Так что только своими силами. А что это значит с случае проекта? Ага. Значит сроками не управляем.

    Цитата Сообщение от Vadim Посмотреть сообщение
    При том, как я понимаю, возможности Z80 в ней практически исчерпаны, можно было взять и любой другой проц
    Возможности Z80 это по факту исполняемый код, а любой другой процессор был или дороже или менее доступен или требовал усложнения схемы. Для справки: в те годы на рынке из соизмеримого были КР580ИК80 или однокрислалки. И то и другое было только хуже, эти варинты прорабатывались. Все остальное или дефицит или сильно дороже.

    Цитата Сообщение от Vadim Посмотреть сообщение
    На западе все же сделали бы заказную мс. Да, я знаю что у нас это было нереально.
    Мы живем и работаем в России . И речь о спеке. На западе в те годы уже Amiga и PC правили бал. Заказная микросхема имеет свои недостатки, ибо жесткая логика в ней (как правило). Хотя, делается быстро.

    Цитата Сообщение от Vadim Посмотреть сообщение
    Можно было бы сделать аналогичный функционал с т.з. пользователя (но без защиты от копирования) на другой элементной базе и в другом виде. Этот вариант уникальный, интересный, но развития практически не имеет. Захотим сделать что-то ещё от схемы придется отказаться.
    Ошибка. Поясню. Код, формирующий все управляющие сигналы сам по себе не сложен. Грубо говоря 200 байт. Модифицируется легко (если нет защиты). Что это дает? А вот посмотрите, чем современные клоны богаты: возможность подключения к VGA, и корректное отображение на LCD мониторах всяких эффектов, развертки "Пентагон" или фирма, или еще какие. А ведь все это достагалось изменением нескольких байт в том самом коде. И управлять этими "волшебными превращениями" можно на ходу (передавая комманды второму Z80). Мы даже по началу делали пробные прошивки, где подгоняли положение экрана по высоте (в зависимости от телевизора или монитора). Про аппаратные скролы тоже где то уже рассказывал. В общем схему менять как раз было не надо. Надо было дорабатывать прошивку. В этом и был интерес (в отличие от других реализаций тех лет, где все это было забито в железную логику элементов на плате).

    Цитата Сообщение от Vadim Посмотреть сообщение
    Ещё я хотел вот что сказать, наши кооперативщики ("Дисплей" которые делали Колоры) 700р и больше в месяц получали. Как же так Вы отдавали им по 1р за ПЗУ? Готовый комп они продавали за тысячу и выше. Нельзя было отдавать свои разработки. Ну не получилось со слотом, сами бы попробовали. Сделать свой бизнес. Найти деньги, занять, не знаю, ну не отдавать же ноу-хау дельцам.
    Есть несколько подходов к окупаемости разработки. Можно заложить всю стоимость разработки в базовый конструктив (в некопируемую ПЗУ, или какую другую защиту). При этом минимальный набор (например, аналог "Ленинград 1") будет стоить очень дорого, соответственно, не будет массовым.
    А можно продавать базу по себестоимости, а прибыль получать разрабатывая к ней разные платы расширения, периферию и т.д.

    Мы выбрали вторую стратегию. Но было слишком поздно. "Слот" тут не виноват, рынок уже изменился к середине 90-х. Спектрум перестал быть самым массовым народным копмьютером. С запада (и востока) пришли игровые телеприставки и дешевые PC.

  5. #45
    Activist
    Регистрация
    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.

  6. #46
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от e2e4 Посмотреть сообщение
    фон-Неймонавская архитектура была бы наверное идеальной.
    Что опровергают все современные компьютерные системы где оочень легко программа из-за ошибок сделанных при ее написании затирает или саму себя или свои области данных и повисает.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

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

  8. #47
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    оочень легко программа из-за ошибок сделанных при ее написании затирает или саму себя или свои области данных и повисает.
    а зависит ли это от типа архитектуры? везде и всегда одинаково возможны глючные программы.

  9. #48
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В гарвардской архитектуре, по крайней мере, программа не может испортить саму себя. Из той памяти где лежит код программы проц ее считывает сам, программа туда не имеет доступа.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  10. #49
    ZEK
    Гость

    По умолчанию

    Oberon Java .NET на любой платформе если не юзать необязательные указатели (в Java их по моему до сих пор нет, хотя могу и обмануть) гарантирует что приложение себя никогда не положит. На 4GL языках можно делать операционку где все процессы не будут аппаратно изолированы и будут нормально жить, при этом затраты на переключение потоков (а мож и несколько порядков) меньше чем в том же линухе. Пример очень интересный Active Oberon где каждый экземпляр класса может быть отдельным потоком

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

    По умолчанию

    По поводу самомодифицирующегося кода (я упомянул выше про ограниченные команды i/o): был процессор (DSP), в котором у команд in/out простой до неприличия синтаксис: cmd addr, где addr - 16-бит int. Все. Ни тебе косвенной адресации, ничего. Только константный адрес, который ессесно был следующим словом после кода самой команды в памяти программ.
    Конечно, разработчики предполагали, что на шине ввода/вывода будет ряд устройств со своими регистрами по определенным адресам, и все будет ок. Хрен! Вот понадобилось нам туда подключить а) устройства со мноооожеством регистров (больше сотни) б) ОЗУ (да, извращение, но что делать) в) EEPROM и т.п. Скорость обращения к данному пространству не очень важна, но блин. Для обращения к памяти в 64к, повешенной на i/o надо ровно 64к памяти программ (типа in 0x0000; in 0x0001 и т.д.).
    Архитектура гарвардская. Флэш можно перепрограммировать теоретически без программатора следующим образом: загружаем в бут-память (2к слов) нечто через SPI (SPI соединяем в первом приближении с SCI). Переключаем флэш-память программ на бут (все 64к памяти программ недоступны для исполнения, исполняются только 2к бут-памяти). Появляются команды модифицирования массива flash- памяти программ. Модифицируем память программ в части адресов команд in/out (там флэш-массив модифицируется только блоками по 256 слов, а стирается/очищается еще более крупными вроде бы). Акробатический трюк - обратное переключение с сохранением всех регистров.... Вообщем крутизна.
    И тут вспоминаем про то, что в данном процессоре маленькая часть ОЗУ (256 слов) умеет быть как памятью данных, так и памятью программ (но одновременно - только одним типом). Видимо, разработчики процессора тоже о чем-то думали. Дальше - просто - в эту память в режиме данных копируем функцию чтения порта. Потом меняем определенное слово, соотв. адресу порта. Потом - переключаем ее на работу как память программ и CALL our_magic_io_fn. Медленно, конечно, но работоспособно.

    А больше и не припомню случаев, когда был реально нужен самомодифицирующийся код. Может быть кто-то что-то напишет на эту тему? Спектрум вроде распологал к тому, чтобы программировать виртуозно, да и программисты тогда были не сплошь академические и "правильные" (как я ).
    Для справки: описываемый проц - TMS320LF2407A (ну вся семейка TMS320xF24XX) фирмы Texas Instruments. Очень своеобразный проц, возможно это связано с тем, что само ядро (TMS320) - разработки начала 90-х если не 80-х. Одна система прерываний чего стоит! Однако по стабильности и надежности - не припомню более надежного. За более чем 7 лет работы с ним - ни одного случая зависания/сброса/сбоя/ошибки вычислений по вине железа (а работал он в очень жестких условиях по ЭМИ, да и по питанию тоже иногда). Вот что значит отлаженное ядро. Да и errata всего-то странички 2-3, причем в начещественных вещах.
    Последний раз редактировалось e2e4; 15.06.2010 в 18:28.

Страница 5 из 5 ПерваяПервая 12345

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

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

Эту тему просматривают: 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

Ваши права

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