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

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

Советую просто поискать такую вещь, как modified harward architecture. Именно её сегодня имеют в виду, когда говорят о Гарвардской архитектуре, которая возникла во времена перфокарт, и тогда было тяжко обращаться по разным шинам к одной памяти.

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


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

Гарвардская архитектура - это именно раздельные шины для инструкций и данных. Это позволяет обращаться к инструкциям и данным одновременно. Именно это и есть главная фишка этой архитектуры. А у фон Неймана шина одна и за инструкциями и данным там доступ осуществляется по очереди. А уж раздельные там адресные пространства или общее - дело пятое.

 

Не следует путать Гарвардские/фон Неймановские архитектуры доступа в адресное пространство с Instruction Set Architecture (ISA). Это вообще очень опосредованно связанные вещи. И когда речь идёт о конкретных реализациях типа Cortex-M3, ARM7TDMI, это называется микроархитектуры. Т.е. ISA может быть у них всех одна и та же, а реализации очень разными. Например, Cortex-M3 и Cortex-A9 - это одна и та же ISA (ARMv7), но совершенно разные микроахритектуры - например, у M3 конвейер 3 стадии (насколько помню), а у A9 - 9 или 10. Cortex-M0 и ARM11 - это ARMv6. При этом М0 - фон Нейман, у него одна шина для инструкций и данных, а ARM11 - Гарвард, раздельные шины. Адресное пространство унифицированное - общее. ADI Blackfin тоже Гарвардская: 64-разрядная шина инструкций, 3 32-разрядных шины данных (две на чтение, одна за запись), по всем шинам доступ может осуществляться одновременно. Адресное пространство общее.

8 часов назад, one_eight_seven сказал:

modified harward architecture

Это частный случай Гарвардской архитектуры, когда данные можно располагать в памяти программ. Скорее вариант для бедных. Древние ADSP-21xx были как раз такими.

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


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

Извините, бред. Поскольку получается, что одно и то же ядро (например, Cortex-M3) может быть и фон-неймановским, и гарвардским в зависимости от того, как конкретно оно используется. Конкретно с Cortex-M3 (или там Cortex-M1) ничто не мешает не использовать ITCM и DTCM вообще, подключив всю память через AHB (как это делается, скажем, в Cortex-M0). Так что разделение на фон-неймановскую и гарвардскую -- это именно на уровне архитектуры, а не микроархитектуры, на уровне логических принципов, а не конкретной реализации.

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

Ну и, кстати говоря, здесь Вы свалили в одну кучу совершенно разные архитектуры. Cortex-M0 -- это ARMv6-M, которая никакого отношения, кроме сходства названия и совпадения части одной из систем команд, не имеет к просто ARMv6, к которой относятся ядра ARM11. То же самое для Cortex-M3 (ARMv7-M) и Cortex-A9 (ARMv7-A) -- у них абсолютно разные системные архитектуры.

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


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

1 час назад, SII сказал:

Извините, бред. Поскольку получается, что одно и то же ядро (например, Cortex-M3) может быть и фон-неймановским, и гарвардским в зависимости от того, как конкретно оно используется.

Извините, вы текст, на который возражаете, внимательно читали? Cortex-M3 - это микроархитектура (погуглите, что этот термин обозначает). Он не может быть "фон-неймановским, и гарвардским в зависимости от того, как конкретно оно используется", он всегда один и тот же - это конкретная реализация ISA. И таких реализаций ISA может быть сколько угодно, от single-cycle вариантов до крутых конвейерных, от примитивных до навороченных out-of-order с register renaming, в том числе построенных на одной общей шине доступа в память (фон Нейман) до раздельных шин (Гарвард). Cortex-M3 - это одна вот такая реализация, и она Гарвардская.

 

1 час назад, SII сказал:

То же самое для Cortex-M3 (ARMv7-M) и Cortex-A9 (ARMv7-A) -- у них абсолютно разные системные архитектуры.

Изучайте, что такое ISA. Иначе мы с вами на разных языках говорим.

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


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

2 minutes ago, dxp said:

Извините, вы текст, на который возражаете, внимательно читали?

Да, внимательно.

2 minutes ago, dxp said:

Cortex-M3 - это микроархитектура (погуглите, что этот термин обозначает).

Я прекрасно знаю, что такое микроархитектура, и об этом я писал несколькими постами выше.

3 minutes ago, dxp said:

Cortex-M3 - это одна вот такая реализация, и она Гарвардская.

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

7 minutes ago, dxp said:

Изучайте, что такое ISA. Иначе мы с вами на разных языках говорим.

Я прекрасно знаю, что такое ISA. А вот Вы, похоже, плохо представляете, в чём разница между, скажем, ARMv7-A и ARMv7-M, и реально не знаете, что такое эта самая ISA, иначе б не стали валить всё в одну кучу. Даже что касается собственно ISA (а она является лишь частью архитектуры), у них есть очень и очень существенные различия: ARMv7-A всегда имеет две совершенно разные системы команд (ARM и Thumb-2) и может иметь ещё и третью недосистему (ThumbEE), у ARMv7-M -- всего одна система команд (Thumb-2), причём не на 100% совпадающая с нею же из ARMv7-A; т.е. уже на уровне ISA эти архитектуры, мягко говоря, не эквивалентны. А ведь есть ещё и другая сторона архитектуры, связанная с состояниями процессора, обработкой прерываний и т.п. -- и в этой части у A- и M-профилей вообще ничего общего нет.

11 hours ago, one_eight_seven said:

Советую просто поискать такую вещь, как modified harward architecture. Именно её сегодня имеют в виду, когда говорят о Гарвардской архитектуре, которая возникла во времена перфокарт, и тогда было тяжко обращаться по разным шинам к одной памяти.

Вот в том-то и дело, что "имеют в виду" и всё такое: в результате происходит смешивание понятий. Эта самая "modified harward architecture", если на то пошло, -- вообще не архитектура, поскольку относится к способу реализации, а архитектура находится на более высоком уровне и с реализацией не связана. Но это ещё полбеды; вот когда выбрасывают из её названия "модифицированная"...

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


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

2 hours ago, SII said:

Поскольку получается, что одно и то же ядро (например, Cortex-M3) может быть и фон-неймановским, и гарвардским в зависимости от того, как конкретно оно используется.

Вы забыли ещё один способ конкретного использования - "микропроцессор в диодном включении".. :dirol:

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


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

Из той же педии:

Quote

The true distinction of a Harvard machine is that instruction and data memory occupy different address spaces

 

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


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

7 minutes ago, aaarrr said:

Из той же педии:

 

О чём, собственно, я и говорю.

13 minutes ago, blackfin said:

Вы забыли ещё один способ конкретного использования - "микропроцессор в диодном включении".. 

Каюсь, таким способом микропроцессоры не использовал, но за идею спасибо :) Но вот код и данные в одной и той же памяти таки размещал-с -- в частности, в LPC1788, где внутри как раз Cortex-M3 и лежит.

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


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

nA9IiC7.png

И?

gs0zqWU.png

 

https://www.arm.com/assets/images/events/Mini_Cortex_book.pdf

 

 

 

7 минут назад, aaarrr сказал:

Так bus architecture.

26FItdo.png

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


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

Возьмите описание архитектуры, а не одной из возможных реализаций. Например, "Arm® v7-M Architecture Reference Manual" не предписывает придерживаться той или иной шинной структуры. Она любой может быть по нынешним временам.

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


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

14 минут назад, aaarrr сказал:

Возьмите описание архитектуры, а не одной из возможных реализаций. Например, "Arm® v7-M Architecture Reference Manual" не предписывает придерживаться той или иной шинной структуры. Она любой может быть по нынешним временам.

Совершенно верно. ISA не накладывает никаких ограничений на организацию шин. И при конкретной реализации ISA - микроархитектуре - может быть выполнен любой вариант доступа к инструкциям и данным. По очереди через одну шину - фон Нейман. Одновременно - Гарвард. А сами блоки памяти могут физически быть одним куском памяти или разными, как они размещены в адресном пространстве (или пространствах), это уже определяется реализацией мультиплексора адреса. У фон Неймана тут, правда, ограничение: блоки должны составлять единое адресное пространство, т.к. шина-то физически одна общая. А у Гарварда тут есть свобода: можно разделить начисто и адресовать каждую область с нуля (AVR), а можно объединить их в единое адресное пространство (Blackfin, Cortex-M3).

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


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

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

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

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

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

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

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

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

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

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