Гарвардська архітектура: відмінності між версіями

[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
DragonBot (обговорення | внесок)
м робот додав: sv:Harvardarkitektur
 
(Не показано 44 проміжні версії 24 користувачів)
Рядок 1:
[[Файл:Гарвардська архітектура.svg|thumb|300px|Блок-схема гарвардської архітектури комп'ютера.]]
'''ГАРВАРДСЬКАГа́рвардська АРХІТЕКТУРАархітекту́ра''' ({{lang-en|Harvard architecture}}) — [[архітектураАрхітектура обчислювальної машиникомп'ютера|архітектура]] [[електронна обчислювальна машина|обчислювальних машин]], головною відмінністю якої від інших подібних архітектур (див. напр. [[Архітектура фон НойманаНеймана]]), є те, що дані та [[машиннаКоманда команда(програмування)|оператори]] (алгоритм) зберігаються окремо. Першим комп'ютером, який застосовував гарвардську архітектуру, був [[Марк I (обчислювальна машина)|Mark I]], який експлуатувався в [[ГарвардГарвардський університет|Гарварді]]і (звідки назва архітектури) та зберігав данікоманди окремо на перфокартах, а командидані в релейному [[Носій інформації|запам'ятовуючому пристрої]].
 
Така структура має одну важливу перевагу над [[архітектура фон НойманаНеймана|фон-нойманівськоюнейманівською архітектурою]]: дані можна завантажувати для обробки з [[запам'ятовувальний пристрій|запам'ятовувальнийятовуючого пристрою]] одночасно з командами. В фон-нойманівськійнейманівській архітектурі для зв'язку [[фон нойманівська архітектура|операційного та керувальнийкерувального пристроїв]] (які разом складають [[центральний процесор]]), використовується одна [[Комп'ютерна шина (ел.)|шина]], тому необхідно спочатку завантажити в процесор команду, а вже потім, звернувшись по тій же шині за адресою, якяка вкзанавказана в ній самій -команді — завантажити дані. Наявність в гарвардській архітектурі двох незалежних підсистем пам'яті з окремими шинами, дозволяє вести процес завантаження команд і даних практично паралельно.
 
Головним недоліком гарвардської архітектури є порівняна з фон-нойманівськоюнейманівською складність реалізації. Адже для кожного з запам'ятовуючих пристроїв необхідний свій контролер, і своя шина, що зі збільшенням [[розрядність|розрядності]] призводить до зростання кількості з'єднань ву системі, і це негативно впливає як на складність проектування, так і на швидкодію.
 
Гарвардська архітектура широко застосовується в спеціалізованих обчислювачах, зокрема в [[мікроконтролер|мікроконтролерах]]ах та [[цифровийПроцесор сигнальнийцифрових процесорсигналів|цифрових сигнальних процесорах]], де необхідний високоінтенсивний обмін даними. Також за гарвардською архітектурою зазвичай організується кеш-пам'ять в ЕОМ загального призначення, яка розділяється окремо на кеш-пам'ять команд та кеш-пам'ять даних (але, строго кажучиточніше, це стосується внутришньоївнутрішньої організації процесора, а не [[архітектураАрхітектура ЕОМкомп'ютера|архітектури ЕОМ]]).
 
== Історія ==
==Дивись також==
У 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>.
[[cs:Harvardská architektura]]
 
[[de:Harvard-Architektur]]
== Класична гарвардська архітектура ==
[[en:Harvard architecture]]
Типові операції ([[додавання]] та [[множення]]) вимагають від будь-якого обчислювального пристрою кількох дій:
[[es:Arquitectura Harvard]]
* вибірку двох [[операнд]]ів;
[[fr:Architecture Harvard]]
* вибір [[Інструкція_(програмування)|інструкції]] та її виконання;
[[hr:Harvardska arhitektura]]
* збереження [[результат]]ів.
[[it:Architettura Harvard]]
 
[[ja:ハーバード・アーキテクチャ]]
Ідея, реалізована [[Говард_Ейкен|Ейкеном]], полягала у фізичному поділі ліній передачі [[Команда_(програмування)|команд]] та даних. У першому комп'ютері Ейкена «[[Марк_I_(обчислювальна_машина)|Марк I]]» для зберігання інструкцій використовувалася [[Перфострічка|перфострічка]], а для роботи з даними — електромеханічні [[Регістр_(цифрова_техніка) |регістри]]. Це дозволяло одночасно пересилати й обробляти команди і дані, завдяки чому значно підвищувалася загальна швидкодія комп'ютера.
[[ko:하버드 아키텍처]]
 
[[nl:Harvard-architectuur]]
У гарвардській архітектурі характеристики пристроїв пам'яті для інструкцій і пам'яті для даних не обов'язково повинні бути однаковими. Зокрема, ширина слова, тактування, технологія реалізації та структура адрес пам'яті можуть розрізнятися. У деяких системах інструкції можуть зберігатися в пам'яті тільки для читання, в той час як для збереження даних зазвичай потрібно пам'ять з можливістю читання і запису. У деяких системах потрібно значно більше пам'яті для інструкцій, ніж пам'яті для даних, оскільки дані зазвичай можуть довантажуватися з зовнішньої або більш повільної пам'яті. Така потреба збільшує [[бітність]] (ширину) шини адреси пам'яті інструкцій в порівнянні з шиною адреси пам'яті даних.
[[pl:Architektura harwardzka]]
 
[[pt:Arquitetura Harvard]]
=== Відмінність від архітектури фон Неймана ===
[[ru:Гарвардская архитектура]]
У чистій [[Архітектура фон Неймана|архітектурі фон Неймана]] процесор в кожен момент часу може або читати інструкцію, або читати/записувати одиницю даних з/в пам'ять. Обидві дії одночасно відбуватися не можуть, оскільки інструкції і дані використовують один і той же потік (''шину'').
[[sr:Харвардска архитектура]]
У комп'ютері з використанням гарвардської архітектури процесор може читати інструкції і виконувати доступ до пам'яті даних одночасно, без використання кеш-пам'яті. Таким чином, комп'ютер з гарвардською архітектурою при певній складності схеми працює швидше, ніж комп'ютер з архітектурою фон Неймана, оскільки шини інструкцій і даних розташовані на різних, не пов'язаних між собою фізично, каналах.
[[sv:Harvardarkitektur]]
 
[[vi:Kiến trúc Harvard]]
Виходячи з фізичного поділу шин команд і даних, розрядності цих шин (отже, і адресні простори) можуть мати різні значення і '' фізично '' не можуть перетинатися один з одним.
[[zh:哈佛结构]]
 
== Модифікації ==
=== Модифікована Гарвардська архітектура ===
{{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}}
 
[[Категорія:Архітектура ЕОМкомп'ютера]]
[[Категорія:Технології процесорів]]