Jump to content

    
MegaVolt

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

 

Не следует путать Гарвардские/фон Неймановские архитектуры доступа в адресное пространство с 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 были как раз такими.

Share this post


Link to post
Share on other sites

Извините, бред. Поскольку получается, что одно и то же ядро (например, 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) -- у них абсолютно разные системные архитектуры.

Share this post


Link to post
Share on other sites
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. Иначе мы с вами на разных языках говорим.

Share this post


Link to post
Share on other sites
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", если на то пошло, -- вообще не архитектура, поскольку относится к способу реализации, а архитектура находится на более высоком уровне и с реализацией не связана. Но это ещё полбеды; вот когда выбрасывают из её названия "модифицированная"...

Share this post


Link to post
Share on other sites
2 hours ago, SII said:

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

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

Share this post


Link to post
Share on other sites
7 minutes ago, aaarrr said:

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

 

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

13 minutes ago, blackfin said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
14 минут назад, aaarrr сказал:

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.