Модифікована Гарвардська архітектура: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Yuriz (обговорення | внесок) |
Yuriz (обговорення | внесок) |
||
Рядок 15: | Рядок 15: | ||
{{головна стаття|Гарвардська архітектура}} |
{{головна стаття|Гарвардська архітектура}} |
||
Найперша обчислювальна машина, від якої пішла назва архітектури — [[Harvard Mark I]] — мала повністю розділені системи пам'яті для збереження програм і даних. [[Процесор]] здійснював вибірку інструкції і завантаження даних одночасно і незалежно одне від одного. Такий механізм є фундаментальною відмінністю в порівнянні з архітектурою фон Неймана, де інструкції і дані зберігаються в одній і тій самій пам'яті, і (за відсутності [[кеш]]а можуть бути завантажені лише послідовно. |
|||
⚫ | |||
У «чисто» гарвардській ЕОМ адресні простори програм і даних мають бути ''повністю'' розділені: адреса інструкції і адреса даних — це різні сутності, що ідентифікують, відповідно, команду процесора і байт чи слово даних у двох різних просторах пам'яті. |
|||
Через таку розділеність гарвардська архітектура уможливлює різну розрядність (і взагалі, різні характеристики) пам'яті програм і даних. Наприклад, спеціалізований процесор може мати 10-розрядну шину адреси (тобто, адресувати не більше ніж 1024 машинних слів), при цьому оперувати 128-розрядними даними. |
|||
== розділ == |
|||
⚫ | У [[Мікроконтролер|мікроконтролерах]] пам'ять програм зазвичай реалізується у вигляді [[Постійний запам'ятовувач|постійної пам'яті]], а пам'ять даних — у вигляді [[Пам'ять з довільним доступом|оперативної пам'яті]]. У [[Процесор цифрових сигналів|сигнальних процесорах]] пам'ять програм змушені виконувати у вигляді [[Пам'ять з довільним доступом|ОЗП]]. Це пов'язано з більш високою швидкодією оперативного запам'ятовуючого пристрою, однак при цьому в процесі роботи здійснюється захист від запису в цю область пам'яті. |
||
Застосування двох системних [[Комп'ютерна шина|шин]] для звернення до пам'яті програм і пам'яті даних в Гарвадській архітектурі має два недоліки — високу вартість і велику кількість зовнішніх виводів [[Мікропроцесор|мікропроцесора]]. При використанні двох шин для передачі команд і даних, мікропроцесор повинен мати майже вдвічі більше виводів, оскільки шина адреси і шина даних складають їх основну частину. Для зменшення кількості виводів процесора фірми-виробники мікросхем об'єднали шини даних і шини адреси для зовнішньої пам'яті даних і програм, залишивши тільки різні сигнали управління (WR, RD, IRQ), а усередині мікропроцесора зберегли класичну гарвардську архітектуру. Таке рішення отримало назву модифікована Гарвардська архітектура. |
Застосування двох системних [[Комп'ютерна шина|шин]] для звернення до пам'яті програм і пам'яті даних в Гарвадській архітектурі має два недоліки — високу вартість і велику кількість зовнішніх виводів [[Мікропроцесор|мікропроцесора]]. При використанні двох шин для передачі команд і даних, мікропроцесор повинен мати майже вдвічі більше виводів, оскільки шина адреси і шина даних складають їх основну частину. Для зменшення кількості виводів процесора фірми-виробники мікросхем об'єднали шини даних і шини адреси для зовнішньої пам'яті даних і програм, залишивши тільки різні сигнали управління (WR, RD, IRQ), а усередині мікропроцесора зберегли класичну гарвардську архітектуру. Таке рішення отримало назву модифікована Гарвардська архітектура. |
Версія за 20:11, 16 січня 2018
Ця стаття не містить посилань на джерела. (грудень 2015) |
Цю статтю треба вікіфікувати для відповідності стандартам якості Вікіпедії. (грудень 2015) |
Ця стаття в процесі редагування певний час. Будь ласка, не редагуйте її, бо Ваші зміни можуть бути втрачені. Якщо ця сторінка не редагувалася кілька днів, будь ласка, приберіть цей шаблон. Це повідомлення призначене для уникнення конфліктів редагування. Останнє редагування зробив користувач Yuriz (внесок, журнали) о 20:11 UTC (3324037 хвилин тому). |
Модифікована Гарвардська архітектура — варіант Гарвардської архітектури ЕОМ, що дозволяє доступ до пам'яті інструкцій як до даних. Більшість сучасних комп'ютерів, у назві яких фігурує «Гарвардська архітектура», насправді реалізують таку модифікацію.
Архітектура фон Неймана
Комп'ютер з архітектурою фон Неймана має перевагу над «чистим» гарвардським через легкість роботи з кодом програми як даними (як і навпаки — роботи з даними як кодом). Наприклад, читання програми з носія інформації до пам'яті в принципі нічим не відрізняється від читання даних. Також легко здійснені такі прийомии, як JIT-компіляція чи код, що модифікує сам себе. З недоліків можна відзначити проблеми з захистом ділянок пам'яті для програми (недозволений запис у пам'ять програм може використовуватися шкідливими програмами) і складності з відлагоджуванням програми, код якої динамічно змінюється.
Гарвардська архітектура
Найперша обчислювальна машина, від якої пішла назва архітектури — Harvard Mark I — мала повністю розділені системи пам'яті для збереження програм і даних. Процесор здійснював вибірку інструкції і завантаження даних одночасно і незалежно одне від одного. Такий механізм є фундаментальною відмінністю в порівнянні з архітектурою фон Неймана, де інструкції і дані зберігаються в одній і тій самій пам'яті, і (за відсутності кеша можуть бути завантажені лише послідовно. У «чисто» гарвардській ЕОМ адресні простори програм і даних мають бути повністю розділені: адреса інструкції і адреса даних — це різні сутності, що ідентифікують, відповідно, команду процесора і байт чи слово даних у двох різних просторах пам'яті. Через таку розділеність гарвардська архітектура уможливлює різну розрядність (і взагалі, різні характеристики) пам'яті програм і даних. Наприклад, спеціалізований процесор може мати 10-розрядну шину адреси (тобто, адресувати не більше ніж 1024 машинних слів), при цьому оперувати 128-розрядними даними.
розділ
У мікроконтролерах пам'ять програм зазвичай реалізується у вигляді постійної пам'яті, а пам'ять даних — у вигляді оперативної пам'яті. У сигнальних процесорах пам'ять програм змушені виконувати у вигляді ОЗП. Це пов'язано з більш високою швидкодією оперативного запам'ятовуючого пристрою, однак при цьому в процесі роботи здійснюється захист від запису в цю область пам'яті.
Застосування двох системних шин для звернення до пам'яті програм і пам'яті даних в Гарвадській архітектурі має два недоліки — високу вартість і велику кількість зовнішніх виводів мікропроцесора. При використанні двох шин для передачі команд і даних, мікропроцесор повинен мати майже вдвічі більше виводів, оскільки шина адреси і шина даних складають їх основну частину. Для зменшення кількості виводів процесора фірми-виробники мікросхем об'єднали шини даних і шини адреси для зовнішньої пам'яті даних і програм, залишивши тільки різні сигнали управління (WR, RD, IRQ), а усередині мікропроцесора зберегли класичну гарвардську архітектуру. Таке рішення отримало назву модифікована Гарвардська архітектура.
Модифікована гарвардська структура застосовується в сучасних мікросхемах сигнальних процесорів. Ще далі по шляху зменшення вартості кристала за рахунок зменшення площі, займаної системна шина пішли виробники однокристальних ЕОМ — мікроконтролерів. У цих мікросхемах застосовується одна системна шина для передачі команд і даних (модифікована Гарвардська архітектура) і всередині кристала.
У сигнальних процесорах для реалізації таких алгоритмів є швидке перетворення Фур'є і цифрова фільтрація; часто потрібна ще більша кількість внутрішніх шин. Зазвичай застосовуються дві шини для читання даних, одна шина для запису даних і одна шина для читання інструкцій. Подібна структура мікропроцесора отримала назву розширеної гарвардської архітектури. Цей підхід практикують виробники сигнальних процесорів — фірми Analog Devices (сімейства сигнальних процесорів BlackFin і Tiger Shark), Texas Instruments (сімейства сигнальних процесорів C5000™ і C6000™), Freescale (сімейства сигнальних процесорів MSC8251 і DSP56K).
Сучасне застосування модифікованої Гарвардської архітектури
Кеш-пам'ять сучасних процесорів, зокрема кеш першого рівня, зазвичай розділена на окремі частини для команд і для даних.
Існують також процесори, що можуть вважатися гарвардськими у найбільш строгому сенсі (програма і дані знаходяться у різних адресних просторах), «модифіковані» лише з метою можливості запису програми у пам'ять як послідовності байтів (даних). Для прикладу, інструкції LPM (Load Program Memory) і SPM (Store Program Memory) у контролерах Atmel AVR реалізують таку модифікацію. Схожі рішення застосовані і в інших мікропроцесорах, таких як PIC і Z8 Encore!, і у багатьох цифрових сигнальних процесорах (наприклад, TMS320 від Texas Instruments). Через те, що виконання програми строго лімітоване окремим адресним простором, такі процесори дуже несхожі на традиційні фон-Нойманівські.
Розділені адресні простори створюють певні незручності при програмуванні на мовах високого рівня. Не всі компілятори підтримують модель, де дані лише для читання розташовуються в абсолютно іншому адресному просторі (і, як наслідок, вимагають особливих інструкцій для читання), в порівнянні з даними на читання і на запис. Компілятори з мови C, що підтримують розділені адресні простори, роблять це або за допомогою нестандартних розширень, або через механізми Embedded C, що лише нещодавно став стандартом.
Див. також
- Архітектура фон Неймана
- Архітектура потоків даних
- Архітектура з розвинутими засобами інтерпретації
- Паралельна архітектура ЕОМ
Це незавершена стаття про інформаційні технології. Ви можете допомогти проєкту, виправивши або дописавши її. |