Перейти к содержанию
    

Маленький процессор для Xilinx

Нет, M0 имеет архитектуру фон Неймана, а SCR1 и M3 - Гарвардскую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, SII said:

У меня тоже какая-то проблема была, но не помню, как решил. Скорей всего, слепил свой проект без всяких там IP -- просто на уровне исходников впихнул (а может, вообще на Спартане-3Е делал в ИЗЕ...)

Попробовал заменить один из шифрованных исходников кортекса на дешифрованный - вылазит ошибка. 

Оказывается, у меня уже обновлённая версия корки М3 - r0p1, а в закромах расшифрованная r0p0.

 

Нет ли, чисто случайно, возможности обновить версию? :smile:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, sonycman said:

Нет ли, чисто случайно, возможности обновить версию? 

Ну, у меня зашифрованных нет. Попробовал ща у АРМа зарегистрироваться, но не факт, что дадут. Ну и не факт, что расшифровать получится, дешифратор не я лепил, я его только использовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 minutes ago, SII said:

Ну, у меня зашифрованных нет. Попробовал ща у АРМа зарегистрироваться, но не факт, что дадут. Ну и не факт, что расшифровать получится, дешифратор не я лепил, я его только использовал.

Прикрепил архив.

У них какой-то баг с инициализацией TCM памяти, readmemh попросту не вызывается из кода вообще, так как вивадо сообщил бы обязательно в логах.

AT426-BU-98000-r0p1-00rel0.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 hours ago, sonycman said:

Прикрепил архив.

У них какой-то баг с инициализацией TCM памяти, readmemh попросту не вызывается из кода вообще, так как вивадо сообщил бы обязательно в логах.

Расшифровал. Но, сдаётся мне, это тот же самый проц. Во всяком случае, в комментах и там, и там идёт ссылка на доку по r2p1. Может, сменилась версия не собсно проца, а вот этого примера по его использованию?

Cortex-M3.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 minutes ago, SII said:

Расшифровал. Но, сдаётся мне, это тот же самый проц. Во всяком случае, в комментах и там, и там идёт ссылка на доку по r2p1. Может, сменилась версия не собсно проца, а вот этого примера по его использованию?

Спасибо большое! :drinks:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 10/7/2021 at 8:54 PM, makc said:

Нет, M0 имеет архитектуру фон Неймана, а SCR1 и M3 - Гарвардскую.

Случайно заметил только сейчас, когда полез смотреть другое :)

У всех ARMов без исключения архитектура -- фон Неймановская; то, что во всяких TRM пишут про Гарвардскую -- чушь собачья, демонстрирующая полнейшее непонимание этими "писателями" значения термина "архитектура". Эти клоуны почему-то считают, что выделение отдельных шин для доступа к коду и к данным -- это "Гарвард". Ну, объявите тогда все производительные процессоры (в частности, все интеловские и АМДшные IA-32/AMD64, используемые в персоналках) гарвардскими: у них внутри тоже отдельные каналы для кода и для данных (идут к кэшу первого уровня для кода и данных соответственно) -- как раз для производительности.

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

В Cortex-M3 как раз и реализована самая что ни на есть обычная фон-неймановская архитектура (общее адресное пространство кода и данных) с выделением физически отдельных шин для ITCM, DTCM, PPB и всего остального. Невозможность выполнения кода из DTCM определяется не архитектурой, а конкретной реализацией (не стали городить лишние мультиплексоры и т.п.); выборка данных из ITCM вполне себе возможна обычными командами вроде LDR. Сравните с архитектурой AVR8 (всякие там Атмеги на Ардуинах) -- вот это действительно Гарвардская архитектура: есть отдельное адресное пространство памяти данных (ОЗУ) и памяти кода (флэш), доступ к флэшу обычными командами загрузки-записи невозможен в принципе, и для выборки оттуда значений констант используются специально для этого предназначенные команды.

Ну и, в любом случае, почему архитектура должна ограничивать возможности сравнения по производительности, о чём, собственно, была речь?

Пы.Сы. Холивар -- это святое :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, SII said:

У всех ARMов без исключения архитектура -- фон Неймановская; то, что во всяких TRM пишут про Гарвардскую -- чушь собачья, демонстрирующая полнейшее непонимание этими "писателями" значения термина "архитектура". Эти клоуны почему-то считают, что выделение отдельных шин для доступа к коду и к данным -- это "Гарвард". Ну, объявите тогда все производительные процессоры (в частности, все интеловские и АМДшные IA-32/AMD64, используемые в персоналках) гарвардскими: у них внутри тоже отдельные каналы для кода и для данных (идут к кэшу первого уровня для кода и данных соответственно) -- как раз для производительности.

Давайте я процитирую Wiki:

Quote

The Harvard architecture is a computer architecture with separate storage and signal pathways for instructions and data. It contrasts with the von Neumann architecture, where program instructions and data share the same memory and pathways.

The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself.

 

Вики нас обманывает? Тогда приведите, пожалуйста, ссылку на авторитетный источник, на основании которого вы строите свои суждения.

1 hour ago, SII said:

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

Жду ссылку на источник вашего определения различия архитектур, поскольку ваше определение в моем понимании расходится с общепринятым (в том числе и  моим) определением.

1 hour ago, SII said:

В Cortex-M3 как раз и реализована самая что ни на есть обычная фон-неймановская архитектура (общее адресное пространство кода и данных) с выделением физически отдельных шин для ITCM, DTCM, PPB и всего остального. Невозможность выполнения кода из DTCM определяется не архитектурой, а конкретной реализацией (не стали городить лишние мультиплексоры и т.п.); выборка данных из ITCM вполне себе возможна обычными командами вроде LDR.

См. определение в Wiki. Выделение разных блоков памяти и физических шин как раз и позволяет утверждать, что согласно определению Cortex-M3 имеет гарвардскую архитектуру. В чем подвох?

1 hour ago, SII said:

Ну и, в любом случае, почему архитектура должна ограничивать возможности сравнения по производительности, о чём, собственно, была речь?

Архитектура определяет возможности ядра по порядку (стадиям) выполнения команд. Если есть две независимые шины (гарвардская архитектура), то очевидно есть возможность одновременного извлечения из памяти данных и команд. В случае одной единственной шины кому-то придётся подождать и будет лишний такт на извлечение, например, данных. Разве не так?

1 hour ago, SII said:

Пы.Сы. Холивар -- это святое :)

Никакого холивара. Есть определение и спорить в общем не о чем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, makc said:

Давайте я процитирую Wiki:

Вики нас обманывает? Тогда приведите, пожалуйста, ссылку на авторитетный источник, на основании которого вы строите свои суждения.

Именно что обманывает. Она -- абсолютно ненадёжный источник информации вообще по чему угодно (не только по политике и истории), и как раз потому, что любой там может писать любой бред, а критерий выбора "авторитетный источников" никому не понятен, кроме её модераторов. Она годится, чтобы получить некие предварительные сведения, но не пригодна ни для чего, требующего надёжности.

Что касается моих источников -- это книги, а не интернет. Хотя бы потому, что учился я во второй половине 80-х -- начале 90-х. И по этой причине, прошу прощения, ссылок не будет: нету у меня тех книг.

4 hours ago, makc said:

См. определение в Wiki. Выделение разных блоков памяти и физических шин как раз и позволяет утверждать, что согласно определению Cortex-M3 имеет гарвардскую архитектуру. В чем подвох?

Подвох в том, что Cortex-M3 -- это не архитектура, и Cortex-M0 -- это не архитектура, и какой-нибудь там Core i7-1234 -- это не архитектура. Архитектура для Cortex-M3 именуется ARMv7-M, и к этой же самой архитектуре относятся Cortex-M4 и Cortex-M7; архитектура Cortex-M0 именуется ARMv6-M и официально является подмножеством первой (ну а архитектурой всяких там интеловских Core i является IA-32). Все эти Cortex -- это реализации архитектуры, а не сама архитектура, и эти понятия были разделены не мною, а фирмой IBM в 1964 году, когда была анонсирована System/360 -- первая в истории единая архитектура с множеством (четырьмя на тот момент) разных реализаций.

И, кстати говоря, вот если я возьму ядро Cortex-M3 и реализую на ПЛИС систему, где у этого ядра не будет ни ITCM, ни DTCM, а будет только общая память, подключённая через AHB Lite (такое вполне допустимо и реализуемо), то это же самое ядро, следуя Вашей логике, сразу переместится из гарвардской архитектуры в фон-неймановскую? Или, например, Cortex-M0 -- это для Вас фон-неймановская архитектура, ибо имеет только одну общую шину AHB Lite, а Cortex-M1 -- Гарвардская, поскольку у -M1 имеется не только AHB Lite, но и ITCM с DTCM, и Вас при этом ни разу не смутит, что и -M0, и -M1 являются ядрами, реализующими архитектуру ARMv6-M, т.е., вообще-то, имеющими одинаковую архитектуру?

4 hours ago, makc said:

Архитектура определяет возможности ядра по порядку (стадиям) выполнения команд. Если есть две независимые шины (гарвардская архитектура), то очевидно есть возможность одновременного извлечения из памяти данных и команд. В случае одной единственной шины кому-то придётся подождать и будет лишний такт на извлечение, например, данных. Разве не так?

Архитектура этого не определяет. Ещё раз: она определяет (с 1964 года) представление процессора с точки зрения программиста, а не то, как именно он устроен внутри. И именно поэтому какая-нибудь там банковская программа, разработанная на Коболе в 60-х и работавшая изначально на какой-нибудь System 360/50, может успешно работать и сегодня на любом из мэйнфреймов z/Architecture (в раньше могла работать и на советских ЕС ЭВМ) -- хотя внутренности этих машин, мягко говоря, слегка различаются.

Сильно подозреваю, что вся эта путаница в головах изначально возникла из-за введения понятия "микроархитектура", которое как раз и обозначало внутреннее устройство процессора, т.е. его реализацию -- но, естественно, журналамеры, толком не понимая, о чём пишут, быстренько выкинули "микро" из термина и смешали тем самым всё в одну кучу (во всяком случае, неоднократно приходилось читать обзоры про "архитектуру Sandy Bridge" и т.п. -- про интеловские процы, архитектура коих уже много лет как именуется официально IA-32 и никак иначе, ну а все эти "бриджи" -- кодовые названия очередных микроархитектур). Ну а Вика лишь отражает общий бардак...

Нет, понятно, "о терминах не спорят, о терминах договариваются". Но в данном случае получается полный хаос, поскольку, если следовать Вашей логике, один и тот же процессор в зависимости от обстоятельств может быть отнесён то к одной архитектуре, то к другой, а руководство по архитектуре вообще тогда описывает незнамо что (ибо оно не описывает те самые разделения на шины и такты процессора, а описывает регистры и систему команд).

4 hours ago, makc said:

Никакого холивара. Есть определение и спорить в общем не о чем.

Проблема в том, что определение -- неверное и порождающее проблемы, о которых я выше и написал. Вы вполне можете послать меня куда подальше, прикрывшись "авторитетным источником" в виде Википедии, которое "авторитетно" я опровергнуть не могу (ибо не могу прикрыться "бумажкой", а оперирую только логикой и здравым смыслом), но тогда придётся признать, что Architecture Reference Manuals по ARMv6-M, ARMv7-M и т.п. описывают не архитектуру, а невесть что -- ибо они применимы в полном объёме к целой куче по-разному устроенных процессорных ядер, но при этом ни слова не говорят о наличии или отсутствии разделения на шины и т.д. и т.п., т.е. вообще никак не оговаривают реализацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 минуту назад, SII сказал:

Что касается моих источников -- это книги, а не интернет.

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

(причём книги вы так и не привели)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Lmx2315 said:

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

У меня был знакомый который смотрел правописание фразы сравнивая количество ссылок с тем или иным написанием в гугле.
Где больше число так и правильнее. :wacko2::biggrin:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 minutes ago, Lmx2315 said:

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

(причём книги вы так и не привели)

Книги не привёл, да -- уж извините, за 30 лет и несколько переездов, в т.ч. из страны в страну (спасибо развалу Союза) всё было благополучно потеряно.

А что до тысяч людей... Ещё не так давно всеобщим убеждением было то, что Земля -- плоская, а Солнце крутится вокруг неё (и не факт, что через какое-то время это опять не станет "всеобщим убеждением", увы). И это не говоря о том, что люди (любые, и я в том числе) склонны бездумно тиражировать то, что услышали -- без какого-либо осмысления этого (разве что если жизнь заставит, да и то не всегда).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, SII said:

невозможность выполнения кода из области данных и принципиальная же невозможность использования команд загрузки/записи данных для информации, размещённой в "не той" памяти

 

А я кстати полностью согласен с возмущённым аффтором.

Если АРМ вдруг стал "гарвардским по определению" (мне даже лень это выяснять), то такое "определение" совершенно бесполезно и не заслуживает использования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, Dr.Alex said:

 

А я кстати полностью согласен с возмущённым аффтором.

Если АРМ вдруг стал "гарвардским по определению" (мне даже лень это выяснять), то такое "определение" совершенно бесполезно и не заслуживает использования.

Так всё ещё хуже: АРМ то гарвардский, то фон-неймановский в зависимости от того, сколько шин из конкретного процессорного ядра торчит (а если довести до логического конца -- что я и сделал -- то даже одно и то же ядро может быть то такой архитектуры, то сякой в зависимости от того, как именно память к нему подключена).

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...