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

[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Temcka.is (обговорення | внесок)
м орфографія
Вичитав
Рядок 1:
{{без джерел|дата=липень 2015}}
[[Файл:Гарвардська архітектура.svg|thumb|300px|Блок-схема гарвардської архітектури комп'ютера.]]
'''Га́рвардська архітекту́ра''' ({{lang-en|Harvard architecture}})  — [[архітектураАрхітектура обчислювальної машиникомп'ютера|архітектура]] [[електронна обчислювальна машина|обчислювальних машин]], головною відмінністю якої від інших подібних архітектур (див. напр. [[Архітектура фон Неймана]]) є те, що дані та [[машиннаКоманда команда(програмування)|оператори]] (алгоритм) зберігаються окремо. Першим комп'ютером, який застосовував гарвардську архітектуру, був [[Марк I (обчислювальна машина)|Mark I]], який експлуатувався в [[ГарвардГарвардський університет|Гарварді]]і (звідки назва архітектури) та зберігав команди окремо на перфокартах, а дані в релейному [[Носій інформації|запам'ятовуючому пристрої]].
 
Така структура має одну важливу перевагу над [[архітектура фон Неймана|фон-нейманівською архітектурою]]: дані можна завантажувати для обробки з [[запам'ятовувальний пристрій|запам'ятовувальногоятовуючого пристрою]] одночасно з командами. В фон-нейманівській архітектурі для зв'язку операційного та керувального пристроїв (які разом складають [[центральний процесор]]), використовується одна [[Комп'ютерна шина|шина]], тому необхідно спочатку завантажити в процесор команду, а вже потім, звернувшись по тій же шині за адресою, яка вказана в команді — завантажити дані. Наявність в гарвардській архітектурі двох незалежних підсистем пам'яті з окремими шинами дозволяє вести процес завантаження команд і даних практично паралельно.
 
Головним недоліком гарвардської архітектури є порівняна з фон-нейманівською складність реалізації. Адже для кожного з запам'ятовуючих пристроїв необхідний свій контролер і своя шина, що зі збільшенням [[розрядність|розрядності]] призводить до зростання кількості з'єднань у системі, і це негативно впливає як на складність проектування, так і на швидкодію.
 
Гарвардська архітектура широко застосовується в спеціалізованих обчислювачах, зокрема в [[мікроконтролер]]ах та [[Процесор цифрових сигналів|цифрових сигнальних процесорах]], де необхідний високоінтенсивний обмін даними. Також за гарвардською архітектурою зазвичай організується кеш-пам'ять в ЕОМ загального призначення, яка розділяється окремо на кеш-пам'ять команд та кеш-пам'ять даних (але, точніше, це стосується внутрішньої організації процесора, а не [[архітектураАрхітектура ЕОМкомп'ютера|архітектури ЕОМ]])
 
== Історія ==
У 1930-х роках уряд США доручили Гарвардскому и Прінстонського університету Розробити архітектуру ЕОМ для військово-морської артілерії. Напрікінці [[1930-ті|1930-х]] років у [[Гарвардський_університет|Гарвардському університеті]] [[Говард_Ейкен|Говардом Ейкеном]] була розроблена архітектура комп'ютера [[Марк_I_(обчислювальна_машина)|Марк I]], надалі звана по імені цього університету. ОригінальнаУ жовтні 1937 року оригінальна ідея була продемонстрована Ейкеном для компанії IBM в жовтня 1937 року <ref>{{книга
| автор = Bernard Cohen
| рік = 2000
Рядок 18:
| сторінки = 53
| isbn= 978-0-2625317-9-5
}}</ref>. Однак перемогла більш проста у реалізації розробка Прінстонського університету (більш, відома як [[Архітектура_фон_Неймана|архітектура фон Неймана]], названа так по імені розробника, першою надала звіт про архітектуру), так як вона була простіше в реалізації.
 
Гарвардська архітектура використовувалася радянським ученим {{Нп|Кітов Анатолій Іванович|А. ИІ. КитовымКітовим|ru|Китов, Анатолий Иванович}} в ВЦ-1 МО СССРСРСР<ref>[http://www.osp.ru/os/2008/05/5205980/|title=М-100 ВЦ-1 МО СССР, 1958]</ref>.
 
== Класична гарвардська архітектура ==
Типові операції ([[додавання]] та [[множення]]) вимагають від будь-якого обчислювального пристрою кількох дій:
* вибірку двухдвох [[операнд]]ів;
* вибір [[Інструкція_(програмування)|инструкціїінструкції]] та іїїї виконання;
* збереження [[результат]]ів.
 
Ідея, реалізована [[Говард_Ейкен |Ейкеном]], полягала у фізичному поділі ліній передачі [[Команда_(програмування)|команд]] та даних. У першому комп'ютері Ейкена «[[Марк_I_(обчислювальна_машина)|Марк I]]» для зберігання інструкцій використовувалася [[Перфострічка|перфострічка]], а для роботи з даними -&nbsp;— електромеханічні [[Регістр_(цифрова_техніка) |регістри]]. Це дозволяло одночасно пересилати й обробляти команди і дані, завдяки чому значно підвищувалася загальна швидкодія комп'ютера.
 
У гарвардській архітектурі характеристики пристроїв пам'яті для інструкцій і пам'яті для даних не обов'язково повинні бути однаковими. Зокрема, ширина слова, тактированиетактування, технологія реалізації та структура адрес пам'яті можуть розрізнятися. У деяких системах інструкції можуть зберігатися в пам'яті тільки для читання, в той час як для збереження даних зазвичай потрібно пам'ять з можливістю читання і запису. У деяких системах потрібно значно більше пам'яті для інструкцій, ніж пам'яті для даних, оскільки дані зазвичай можуть довантажуватися з зовнішньої або більш повільної пам'яті. Така потреба збільшує бітность[[бітність]] (ширину) шини адреси пам'яті інструкцій в порівнянні з шиною адреси пам'яті даних.
 
=== Відмінність від архітектури фон Неймана ===
У чистій [[Архітектура фон Неймана|архітектурі фон Неймана]] процесор в кожен момент часу може або читати інструкцію, або читати/записувати одиницю даних з/в пам'ять. Обидві дії одночасно відбуватися не можуть, оскільки інструкції і дані використовують один і той же потік ('' шину '').
У комп'ютері з використанням гарвардської архітектури процесор може читати інструкції і виконувати доступ до пам'яті даних одночасно, без використання кеш-пам'яті. Таким чином, комп'ютер з гарвардської архітектурою при певноїпевній складності схеми працює швидше, ніж комп'ютер з архітектурою фон Неймана, оскільки шини інструкцій і даних розташовані на різних, не пов'язаних між собою фізично, каналах.
 
Виходячи з фізичного поділу шин команд і даних, розрядності цих шин (отже, і адресні простори) можуть мати різні значення і '' фізично '' не можуть перетинатися один з одним.
 
== Модифікації ==
 
=== Модифікована Гарвардська архітектура ===
{{main|Модифікована Гарвардська архітектура}}
Відповідна схема реалізації доступу до пам'яті має один очевидний недолік -&nbsp;— високу вартість. При поділі каналів передачі команд і даних на кристалі [[Центральний_процесор|процесора]] останній повинен мати майже вдвічі більше виводів, так як шина адреси і шина даних складають основну частину висновківвиводів мікропроцесора. Способом вирішення цієї проблеми стала ідея використовувати загальні шину даних і шину адреси для всіх зовнішніх даних, а всередині процесора використовувати шину даних, шину команд і дві шини адреси. Таку концепцію стали називати ''модифікованою модифікованої гарвардськоїгарвардською архітектурою ''.
 
Такий підхід застосовується в сучасних сигнальних процесорах. Ще далі по шляху зменшення вартості пішли при створенні однокристальних ЕОМ &nbsp;— [[мікроконтролер]]ів. У них одна шина команд і даних застосовується і усерединівсередині кристала.
Поділ шин в модифікованоїмодифікованій гарвардськоїгарвардській структуріархітектурі здійснюється за допомогою роздільних керуючихкерувальних сигналів: читання, запису або вибору області пам'яті.
 
=== Розширена Гарвардська архітектура ===
Часто потрібно вибрати три складові: два операнди та інструкцію (в алгоритмах цифрової обробки сигналів це найбільш поширена задача в [[Швидке_перетворення_Фур%27є|ШПФ]], [[FIR-фільтр]]и та [[Рекурсивний_фільтр|РФ]]). Для цього існує [[кеш]]-пам’ятьпам'ять. У ній може зберігатися інструкція -&nbsp;— отже, обидві шини залишаються вільними і з'являється можливість передати два операнда одночасно. Використання кеш-пам'яті разом з розділеними шинами отримало назву «Super Harvard Architecture» («SHARC») -&nbsp;— розширена Гарвардська архітектура.
Прикладом можуть служити процесори «[[Analog Devices]]»: ADSP-21xx -&nbsp;— модифікована Гарвардська архітектура, ADSP-21xxx (SHARC) -&nbsp;— розширена Гарвардська архітектура.
 
=== Гібридні модифікації з архітектурою фон Неймана ===
Існують гібридні архітектури, що поєднують переваги як гарвардської, так і фон-неймановской архітектур. Сучасні [[CISC]] -&nbsp;— процесори мають роздільної кеш-пам'яттю 1-го рівня для інструкцій і даних, що дозволяє їм за один робочий такт отримувати одночасно і команду, і дані для її виконання. Тобто процесорне ядро, формально, є гарвардським, але програмно воно фон-НеймановськаНеймановське, що спрощує написання програм. Зазвичай в даних процесорах одна шина використовується і для передачі команд, і для передачі даних, що спрощує конструкцію системи. Сучасні варіанти таких процесорів можуть іноді містити вбудовані контролери відразу декількох різнотипних шин для роботи з різними типами пам'яті -&nbsp;— наприклад, [[DDR SDRAM|DDR RAM]] і [[Флеш-пам%27ять| Flash]]. Тим не менше, і в цьому випадку шини, як правило, використовуються і для передачі команд, і для передачі даних без поділу, що робить дані процесори ще більш близькими до фон-неймановскої архітектурі при збереженні плюсів гарвардської архітектури.
 
== Використання ==
Першим комп'ютером, в якому була використана ідея гарвардської архітектури, був [[Марк_I_(обчислювальна_машина)|Марк I]].
 
Гарвардська архітектура використовується в [[Програмований_логічний_контролер |ПЛК]] та [[мікроконтролер]]ах, таких, як [[PIC|Microchip PIC]], [[Мікроконтролери_AVR|Atmel AVR]], [[Intel_4004 |Intel 4004]], [[Intel_MCS-51 |Intel 8051]], а також в [[кеш]]-пам'яті першого рівня [[x86]]- мікропроцесорів, діляться на два рівних або різних за обсягом блоку для даних і команд.
 
== Примітки ==
{{reflist}}
 
== Див. також ==
Рядок 64 ⟶ 69:
 
{{Технології CPU}}
{{ІТ-доробити}}
 
[[Категорія:Архітектура комп'ютера]]