aaarrr 56 22 октября, 2021 Опубликовано 22 октября, 2021 · Жалоба Согласен с @SII - не стоит смешивать архитектуру и её реализацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 22 октября, 2021 Опубликовано 22 октября, 2021 · Жалоба Советую просто поискать такую вещь, как modified harward architecture. Именно её сегодня имеют в виду, когда говорят о Гарвардской архитектуре, которая возникла во времена перфокарт, и тогда было тяжко обращаться по разным шинам к одной памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Гарвардская архитектура - это именно раздельные шины для инструкций и данных. Это позволяет обращаться к инструкциям и данным одновременно. Именно это и есть главная фишка этой архитектуры. А у фон Неймана шина одна и за инструкциями и данным там доступ осуществляется по очереди. А уж раздельные там адресные пространства или общее - дело пятое. Не следует путать Гарвардские/фон Неймановские архитектуры доступа в адресное пространство с 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 были как раз такими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Извините, бред. Поскольку получается, что одно и то же ядро (например, 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) -- у них абсолютно разные системные архитектуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба 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. Иначе мы с вами на разных языках говорим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба 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", если на то пошло, -- вообще не архитектура, поскольку относится к способу реализации, а архитектура находится на более высоком уровне и с реализацией не связана. Но это ещё полбеды; вот когда выбрасывают из её названия "модифицированная"... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 11 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба 2 hours ago, SII said: Поскольку получается, что одно и то же ядро (например, Cortex-M3) может быть и фон-неймановским, и гарвардским в зависимости от того, как конкретно оно используется. Вы забыли ещё один способ конкретного использования - "микропроцессор в диодном включении".. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Из той же педии: Quote The true distinction of a Harvard machine is that instruction and data memory occupy different address spaces Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SII 0 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба 7 minutes ago, aaarrr said: Из той же педии: О чём, собственно, я и говорю. 13 minutes ago, blackfin said: Вы забыли ещё один способ конкретного использования - "микропроцессор в диодном включении".. Каюсь, таким способом микропроцессоры не использовал, но за идею спасибо :) Но вот код и данные в одной и той же памяти таки размещал-с -- в частности, в LPC1788, где внутри как раз Cortex-M3 и лежит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Так bus architecture. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба И? https://www.arm.com/assets/images/events/Mini_Cortex_book.pdf 7 минут назад, aaarrr сказал: Так bus architecture. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба Возьмите описание архитектуры, а не одной из возможных реализаций. Например, "Arm® v7-M Architecture Reference Manual" не предписывает придерживаться той или иной шинной структуры. Она любой может быть по нынешним временам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 31 23 октября, 2021 Опубликовано 23 октября, 2021 · Жалоба 14 минут назад, aaarrr сказал: Возьмите описание архитектуры, а не одной из возможных реализаций. Например, "Arm® v7-M Architecture Reference Manual" не предписывает придерживаться той или иной шинной структуры. Она любой может быть по нынешним временам. Совершенно верно. ISA не накладывает никаких ограничений на организацию шин. И при конкретной реализации ISA - микроархитектуре - может быть выполнен любой вариант доступа к инструкциям и данным. По очереди через одну шину - фон Нейман. Одновременно - Гарвард. А сами блоки памяти могут физически быть одним куском памяти или разными, как они размещены в адресном пространстве (или пространствах), это уже определяется реализацией мультиплексора адреса. У фон Неймана тут, правда, ограничение: блоки должны составлять единое адресное пространство, т.к. шина-то физически одна общая. А у Гарварда тут есть свобода: можно разделить начисто и адресовать каждую область с нуля (AVR), а можно объединить их в единое адресное пространство (Blackfin, Cortex-M3). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться