Керівництво по мікроконтролерів

М. Предко Керівництво по мікроконтролерів

архітектура процесорів

Як зазначено вище, мені б не хотілося вдаватися в дискусію з поводутого, яка з архітектур краще - CISC або RISC, Гарвардська або Прінстонського. Я спробую пояснити відмінності між цими архітектурами і показати, яке відношення вони мають до мікроконтролерів.







CISC проти RISC

В даний час існує безліч RISC (Reduced Instruct Set Computers - комп'ютери з скороченою системою команд) процесорів, так як склалася думка, що RISC швидше ніж CISC (Complex Instruction Set Computers: Комп'ютери зі складною системою команд) процесори. Таке мені-ня не зовсім вірно. Є багато процесорів званих RISC, але на са-мом справі відносяться до CISC. Більш того, в деяких додатках CISC-процесори виконують програмний код швидше, ніж це роблять RISC-процесори, або вирішують такі завдання, які RISC-процесори не можуть ви-конати.

Можливість рівноправного використання всіх регістрів процесора на-ни опиняються "ортогональних" або "симметричностью" процесора. Це забезпе-печує додаткову гнучкість при виконанні деяких операцій. Рас-дивимося, наприклад, виконання умовних переходів в програмі. У CISC-npoцeccopax умовний перехід зазвичай реалізується відповідно до визна-ленним значенням біта (прапора) в регістрі стану. В RISC-процесорах ус-ловного перехід може відбуватися при певному значенні біта, який знаходиться в будь-якому місці пам'яті. Це значно спрощує операції з прапорець-гами і виконання програм, що використовують ці прапори.

Успіх при використанні RISC-процесорів забезпечується завдяки тому, що їх більше прості команди вимагають для виконання значно менше число машинних циклів. Таким чином, досягається істотне підвищення продуктивності, що дозволяє RISC-процесорів ефективно вирішувати надзвичайно складні завдання.

ГАРВАРД проти Прінстона

Багато років тому уряд Сполучених Штатів дало завдання Гар-вардскому і Прінстонському університетах розробити архітектуру комп'ютерах тера для військово-морської артилерії. Прінстонський університет розробив комп'ютер, який мав загальну пам'ять для зберігання програм і даних. Та-кая архітектура комп'ютерів більше відома як архітектура Фон-Неймана по імені наукового керівника цієї розробки (рис.1.3).

У цій архітектурі блок інтерфейсу з пам'яттю виконує арбітраж за-просо до пам'яті, забезпечуючи вибірку команд, читання і запис даних, роз-щаемих в пам'яті або внутрішніх регістрах. Може здатися, що блок ін-терфейс є найвужчим місцем між процесором і пам'яттю, так як одночасно з даними потрібно вибирати з пам'яті чергову коман-ду. Однак у багатьох процесорах з Принстонской архітектурою ця проблема вирішується шляхом вибірки наступної команди під час виконання попе-щей. Така операція називається попередньою вибіркою ( "предвибірки"), і вона реалізується в більшості процесорів з такою архітектурою.






Гарвардський університет представив розробку комп'ютера, в якому для зберігання програм, даних і стека використовувалися окремі банки пам'я-ти (рис. 1.4)

Принстонська архітектура виграла змагання, так як вона більше з-відповіла рівню технології того часу. Використання загальної пам'яті виявилося кращим через ненадійність лампової електроніки (це було до широкого поширення транзисторів) - при цьому виникало менше відмов.

Гарвардська архітектура майже не використовувалася до кінця 70-х років, ко-ли виробники мікроконтролерів зрозуміли, що ця архітектура дає пре-майна пристроїв, які вони розробляли.

Основною перевагою архітектури фон Неймана є те, що вона спрощує пристрій мікропроцесора, так як реалізує звернення тільки до однієї загальної пам'яті. Для мікропроцесорів найважливішим є те, що вміст ОЗУ (RАМ - Random Ассеss Мemory) може бути використано як для зберігання даних, так і для зберігання програм. У деяких додатку-пах програмі необхідно мати доступ до вмісту стека. Все це пре-доставляє велику гнучкість для розробника програмного забезпечення, перш за все в області операційних систем реального часу, про які піде мова пізніше.

Гарвардська архітектура виконує команди за меншу кількість так-тов, ніж архітектура фон Неймана. Це обумовлено тим, що в Гарвардській архітектурі більше можливостей для реалізації паралельних операцій. Вибірка наступної команди може відбуватися одночасно з виконанням третьому попередньої команди, і немає необхідності зупиняти процесор на час вибірки команди.

Наприклад, якщо процесору з Принстонской архітектурою необхідно вважати байт і помістити його в акумулятор, то він виробляє послідовник-ність дій показану на рис. 1.5. 13 першому циклі з пам'яті вибирається команда, в наступному циклі дані, які повинні бути поміщені в елект-мулятор, зчитуються з пам'яті.

В Гарвардської архітектури, що забезпечує більш високу ступінь па-раллелізма операцій, виконання поточної операції може поєднуватися з ви-Борки наступної команди (рис 1.6). Команда також виконується за два цик-ла, але вибірка чергової команди проводиться одночасно з виконанням попередньої. Таким чином команда виконується за все за один цикл (під час читання наступної команди).

Цей метод реалізації операцій ( "паралелізм") дозволяє командам ви-виконуватися за однакове число тактів, що дає можливість більш просто оп-рідшали час виконання циклів і критичних ділянок програми. Ця обставина є особливо важливим при виборі мікроконтролера для додатків, де потрібно суворе забезпечення заданого часу виконан-ня.

Наприклад, мікроконтролер РIC фірми Мiсrochip виконує будь-яку ко-манду, крім тих, які модифікують вміст програмного лічильника, за чотири такту (один цикл). Це спрощує реалізацію критичних до часу процедур в порівнянні з мікро контролером Intel 8051, де для виконання команд може знадобитися від 16 до 64 тактів. Через це часто не вдається підрахувати точний час виконання програми вручну і доводиться при-міняти симулятори або апаратні емулятори.

Слід зазначити, що такі загальні способи порівняння продуктивно-сті не слід використовувати для всіх процесорів і мікроконтролерів, в ко-торих реалізуються ці дві архітектури. Порівняння краще проводити примі-ково до певної програми. Різні архітектури та пристрої мають свої специфічні особливості, які дозволяють найкращим обра-зом реалізувати ті чи інші програми. У деяких випадках конкретне додаток може бути виконано тільки з використанням певної ар-хітектури і специфічних особливостей мікроконтролера.

Після читання цього розділу багато, ймовірно, подумають, що Гарвардська архітектура - це єдино правильний вибір. Але Гарвардська архитекту-ра є недостатньо гнучкою для деяких програмних процедур, кото-які потрібні для реалізації ряду програм. Відповідний приклад буде наведено в цій книзі.

Ви не повинні вважати, що одна архітектура краще, ніж інша. У даній книзі будуть описані відмінності між архітектурою мікроконтролерів, рас-дивимося їх переваги та недоліки в різних ситуаціях.







Схожі статті