Гарвардська архітектура: відмінності між версіями
[неперевірена версія] | [перевірена версія] |
Вилучено вміст Додано вміст
м робот додав: sv:Harvardarkitektur |
|||
(Не показано 44 проміжні версії 24 користувачів) | |||
Рядок 1:
[[Файл:Гарвардська архітектура.svg|thumb|300px|Блок-схема гарвардської архітектури комп'ютера.]]
'''
Така структура має одну важливу перевагу над [[архітектура фон
Головним недоліком гарвардської архітектури є порівняна з фон-
Гарвардська архітектура широко застосовується в спеціалізованих обчислювачах, зокрема в [[мікроконтролер
== Історія ==
==Дивись також==▼
У 1930-х роках уряд США доручили Гарвардському та Принстонському університету Розробити архітектуру ЕОМ для військово-морської артилерії. Напрікінці [[1930-ті|1930-х]] років у [[Гарвардський_університет|Гарвардському університеті]] [[Говард_Ейкен|Говардом Ейкеном]] була розроблена архітектура комп'ютера [[Марк_I_(обчислювальна_машина)|Марк I]], надалі звана по імені цього університету. У жовтні 1937 року оригінальна ідея була продемонстрована Ейкеном для компанії IBM<ref>{{книга
| автор = Bernard Cohen
| рік = 2000
*[[Архітектура з розвинутими засобами інтерпретації]]▼
| заголовок = Howard Aiken, Portrait of a computer pioneer
| видавництво = The MIT Press
| місто = Cambridge, Massachusetts
[[Категорія:Архітектура ЕОМ]]▼
| сторінки = 53
| isbn= 978-0-2625317-9-5
}}</ref>. Однак перемогла більш проста у реалізації розробка Принстонського університету, відома як [[Архітектура_фон_Неймана|архітектура фон Неймана]].
Гарвардська архітектура використовувалася радянським ученим {{Нп|Кітов Анатолій Іванович|А. І. Кітовим|ru|Китов, Анатолий Иванович}} в ВЦ-1 МО СРСР<ref>[http://www.osp.ru/os/2008/05/5205980/|title=М-100 ВЦ-1 МО СССР, 1958]{{Недоступне посилання|date=квітень 2019 |bot=InternetArchiveBot }}</ref>.
== Класична гарвардська архітектура ==
Типові операції ([[додавання]] та [[множення]]) вимагають від будь-якого обчислювального пристрою кількох дій:
* вибірку двох [[операнд]]ів;
* вибір [[Інструкція_(програмування)|інструкції]] та її виконання;
* збереження [[результат]]ів.
Ідея, реалізована [[Говард_Ейкен|Ейкеном]], полягала у фізичному поділі ліній передачі [[Команда_(програмування)|команд]] та даних. У першому комп'ютері Ейкена «[[Марк_I_(обчислювальна_машина)|Марк I]]» для зберігання інструкцій використовувалася [[Перфострічка|перфострічка]], а для роботи з даними — електромеханічні [[Регістр_(цифрова_техніка) |регістри]]. Це дозволяло одночасно пересилати й обробляти команди і дані, завдяки чому значно підвищувалася загальна швидкодія комп'ютера.
У гарвардській архітектурі характеристики пристроїв пам'яті для інструкцій і пам'яті для даних не обов'язково повинні бути однаковими. Зокрема, ширина слова, тактування, технологія реалізації та структура адрес пам'яті можуть розрізнятися. У деяких системах інструкції можуть зберігатися в пам'яті тільки для читання, в той час як для збереження даних зазвичай потрібно пам'ять з можливістю читання і запису. У деяких системах потрібно значно більше пам'яті для інструкцій, ніж пам'яті для даних, оскільки дані зазвичай можуть довантажуватися з зовнішньої або більш повільної пам'яті. Така потреба збільшує [[бітність]] (ширину) шини адреси пам'яті інструкцій в порівнянні з шиною адреси пам'яті даних.
=== Відмінність від архітектури фон Неймана ===
У чистій [[Архітектура фон Неймана|архітектурі фон Неймана]] процесор в кожен момент часу може або читати інструкцію, або читати/записувати одиницю даних з/в пам'ять. Обидві дії одночасно відбуватися не можуть, оскільки інструкції і дані використовують один і той же потік (''шину'').
У комп'ютері з використанням гарвардської архітектури процесор може читати інструкції і виконувати доступ до пам'яті даних одночасно, без використання кеш-пам'яті. Таким чином, комп'ютер з гарвардською архітектурою при певній складності схеми працює швидше, ніж комп'ютер з архітектурою фон Неймана, оскільки шини інструкцій і даних розташовані на різних, не пов'язаних між собою фізично, каналах.
Виходячи з фізичного поділу шин команд і даних, розрядності цих шин (отже, і адресні простори) можуть мати різні значення і '' фізично '' не можуть перетинатися один з одним.
== Модифікації ==
=== Модифікована Гарвардська архітектура ===
{{main|Модифікована Гарвардська архітектура}}
Відповідна схема реалізації доступу до пам'яті має один очевидний недолік — високу вартість. При поділі каналів передачі команд і даних на кристалі [[Центральний_процесор|процесора]] останній повинен мати майже вдвічі більше виводів, так як шина адреси і шина даних складають основну частину виводів мікропроцесора. Способом вирішення цієї проблеми стала ідея використовувати загальні шину даних і шину адреси для всіх зовнішніх даних, а всередині процесора використовувати шину даних, шину команд і дві шини адреси. Таку концепцію стали називати ''модифікованою гарвардською архітектурою''.
Такий підхід застосовується в сучасних сигнальних процесорах. Ще далі по шляху зменшення вартості пішли при створенні однокристальних ЕОМ — [[мікроконтролер]]ів. У них одна шина команд і даних застосовується і всередині кристала.
Поділ шин в модифікованій гарвардській архітектурі здійснюється за допомогою роздільних керувальних сигналів: читання, запису або вибору області пам'яті.
=== Розширена Гарвардська архітектура ===
Часто потрібно вибрати три складові: два операнди та інструкцію (в алгоритмах цифрової обробки сигналів це найбільш поширена задача в [[Швидке_перетворення_Фур'є|ШПФ]], [[FIR-фільтр]]и та [[Рекурсивний_фільтр|РФ]]). Для цього існує [[кеш]]-пам'ять. У ній може зберігатися інструкція — отже, обидві шини залишаються вільними і з'являється можливість передати два операнда одночасно. Використання кеш-пам'яті разом з розділеними шинами отримало назву «Super Harvard Architecture» («SHARC») — розширена Гарвардська архітектура.
Прикладом можуть служити процесори «[[Analog Devices]]»: ADSP-21xx — модифікована Гарвардська архітектура, ADSP-21xxx (SHARC) — розширена Гарвардська архітектура.
=== Гібридні модифікації з архітектурою фон Неймана ===
Існують гібридні архітектури, що поєднують переваги як гарвардської, так і фон-неймановской архітектур. Сучасні [[CISC]] — процесори мають роздільну кеш-пам'ять 1-го рівня для інструкцій і даних, що дозволяє їм за один робочий такт отримувати одночасно і команду, і дані для її виконання. Тобто процесорне ядро, формально, є гарвардським, але програмно воно фон-Неймановське, що спрощує написання програм. Зазвичай в даних процесорах одна шина використовується і для передачі команд, і для передачі даних, що спрощує конструкцію системи. Сучасні варіанти таких процесорів можуть іноді містити вбудовані контролери відразу декількох різнотипних шин для роботи з різними типами пам'яті — наприклад, [[DDR SDRAM|DDR RAM]] і [[Флеш-пам'ять|Flash]]. Тим не менше, і в цьому випадку шини, як правило, використовуються і для передачі команд, і для передачі даних без поділу, що робить дані процесори ще більш близькими до фон-неймановскої архітектурі при збереженні плюсів гарвардської архітектури.
== Використання ==
Першим комп'ютером, в якому була використана ідея гарвардської архітектури, був [[Марк_I_(обчислювальна_машина)|Марк I]].
Гарвардська архітектура використовується в [[Програмований_логічний_контролер |ПЛК]] та [[мікроконтролер]]ах, таких, як [[PIC|Microchip PIC]], [[Мікроконтролери_AVR|Atmel AVR]], [[Intel_4004|Intel 4004]], [[Intel_MCS-51|Intel 8051]], а також в [[кеш]]-пам'яті першого рівня [[x86]]-мікропроцесорів, діляться на два рівних або різних за обсягом блоку для даних і команд.
== Примітки ==
{{reflist}}
▲* [[Архітектура з розвинутими засобами інтерпретації]]
* [[Паралельні обчислення]]
== Джерела ==
* [http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka11516.html Harvard vs von Neumann] {{Webarchive|url=https://web.archive.org/web/20160303211310/http://infocenter.arm.com/help/topic/com.arm.doc.faqs/ka11516.html |date=3 березня 2016 }}
* [http://pictutorials.com/Harvard_vs_Von_Nuemann_Architecture.htm Анімація архітектур Harvard vs Von Nuemann] {{Webarchive|url=https://web.archive.org/web/20160303184555/http://pictutorials.com/Harvard_vs_Von_Nuemann_Architecture.htm |date=3 березня 2016 }}
* [http://infocenter.arm.com/help/index.jsp ARM Information center] {{Webarchive|url=https://web.archive.org/web/20070823070944/http://infocenter.arm.com/help/index.jsp |date=23 серпня 2007 }}
{{Технології CPU}}
[[Категорія:Технології процесорів]]
|