Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6812

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

136

Подання 1 на вхід керування регістра Priout з'єднує вихід регістра Ргі з шиною, а подання 1 на вхід керування регістра Ргііп записує число з шини в регістр Ргі. Подаючи на регістри вказані сигнали, можна переписувати числа з одного регістра в інший наприклад, для пере­запису числа із регістра РгЗ до регістра Рг5 необхідно подати наступні сигнали: Pr3out, Pr5in.

4.1.2.4. Виконання арифметичних і логічних операцій

Арифметико-логічний пристрій (АЛП) процесора призначений для виконання опе­рацій обробки даних. Тип виконуваної операції вказується кодом на вході керування АЛП. В АЛП, зокрема, виконуються такі операції: зсув - зміщення кодів, які зберігають­ся в регістрах регістрового файлу, вліво або вправо на задане число розрядів; додавання до слова 1 або -1 - операція рахунку; дешифрування - перетворення двійкових кодів у сигнали (однорядний код); шифрування - перетворення однорядного коду в двійковий; порівняння - визначення відношення старшинства двох чисел або їх рівності; пороз-рядне доповнення - формування оберненого коду; порозрядні логічні множення і до­давання двох чисел; порозрядне додавання двох чисел по модулю; додавання двох чисел. Звичайно, цей перелік може бути розширений.

Розглянемо виконання операції додавання двох чисел з регістрів Ргі і Рг2 з записом результату в регістр РгЗ на одношинній структурі процесора, представленій на рис. 4.1:

  1. Priout, РгУіп (запис до вхідного регістра АЛП РгУ вмісту регістра Ргі).

  2. Pr2out, Add, PrZin (подання числа з регістра Рг2 на внутрішню шину процесора, звідки воно поступає на другий вхід АЛП, виконання в АЛП операції додавання чисел з регістра РгУ та з шини і запам'ятовування результату в регістрі PrZ).


137

3) PrZout, РгЗіn (запис до регістра РгЗ вмісту регістра PrZ).

Подібним чином виконуються інші вище перераховані операції. Необхідно відзна­чити, що сигнали Priout та Prjin, де і та j - номери регістрів, мають бути рознесеними в часі для забезпечення коректного перезапису інформації з одного регістра до іншого з врахуванням часу спрацювання 'їх вхідних та вихідних схем, ємності провідників шини та затримки в комбінаційних схемах АЛП. Цей час визначає такт роботи процесора.

4.1.3. Багатошинна структура процесора

Наведена на рис. 4.1 одношинна структура процесора є достатньо простою. Тому вона широко використовується при побудові процесорів реальних комп'ютерів. Зокре­ма, за такою схемою побудовано більшість мікроконтролерів, від яких не вимагається висока швидкодія. Якщо ж така вимога існує, то застосовується багатошинна організа­ція процесора, в якій завдяки наявності багатьох шин забезпечується можливість пара­лельного обміну інформації між функціональними вузлами процесора і, тим самим, сут­тєво підвищується швидкість опрацювання інформації. Як приклад на рис. 4.3 показано можливий варіант двошинної структури процесора.

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


138

Розглянемо виконання на цій структурі процесора операції РгЗ : = РгО + Рг1:

  1. Pr0out, Prlout, Add, PrZin (подання на шину А числа з регістра Рг1 та на шину В числа з регістра РгО, виконання в АЛП операції додавання та запис результату до регі­стра PrZ).

  2. PrZout, РгЗіп (запис числа з регістра PrZ до регістра РгЗ через міст М зв'язку між шинами).

Як видно, для виконання операції додавання тут потрібно лише два такти, тоді як в одношинній структурі процесора було потрібно три такти.

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

Збільшення кількості шин ускладнює структуру процесора та збільшує кількість необхідного обладнання на його побудову. Адже кожна додаткова шина - це велика кількість додаткових провідників, які займають багато місця на кристалі. Однак потре­ба підвищення продуктивності змушує розробників застосовувати саме багатошинну структуру процесора. Більшість процесорів сучасних високопродуктивних комп'ютерів є багатошинними.

4.1.4. Приклади виконання операцій в процесорі

4.1.4.1. Виконання операції додавання двох чисел

Об'єднаємо послідовність елементарних операцій, необхідних для виконання однієї команди. Розглянемо команду "Додати вміст деякої комірки основної пам'яті до вмісту регістра Рг1 із записом результату до цього ж регістра, причому адреса комірки основної пам'яті задана в адресному полі команди".

Виконання цієї команди вимагає наступних дій:

  1. Вибірки команди з основної пам'яті та її запис до регістра команди РгК.

  2. Вибірки першого операнда з основної пам'яті та його запис до одного з регістрів надоперативної пам'яті процесора.

  3. Виконання додавання.

  4. Засилання результату в регістр Рг1.

Програма виконання цих дій на одношинній структурі процесора (рис. 4.1) буде мати наступний вигляд: Фаза вибірки :

  1. IUIout, PrAin, зчитування, очищення регістра PrY, включення переносу та опера­ції додавання в АЛП, PrZin (адреса команди з програмного лічильника ПЛ подана на шину та записалась до регістра адреси РгА, на вхід керування режимом роботи основ­ної пам'яті подано сигнал Read, на вхід скиду регістра PrY подано сигнал Reset, в АЛП виконалась операція додавання 1 до вмісту програмного лічильника ПЛ та її результат записався в регістр PrZ).

  2. PrZout, ПЛіп, чекання підтвердження сигналу зчитування (результат додавання з регістра PrZ записався в програмний лічильник ПЛ, команда з основної пам'яті записа­лась в регістр РгД).

  3. РгДоЩ, РгКіп (команда з регістра даних РгД записалась до регістра команди РгК).


139

Фаза виконання:

  1. (Поле адреси PrK)out, PrAin, зчитування (адреса з поля адреси регістра команди РгК переписується до регістра адреси РгА, на вхід керування режимом роботи основної пам'яті подано сигнал Read).

  2. Prlout, РгУіn, чекання підтвердження сигналу зчитування (число з регістра Рг1 записалось до регістра PrY, а число з основної пам'яті записалось до регістра РгД).

  3. РгДоиі, Add, PrZin (число з регістра РгД поступило на шину та додалося в АЛП до числа з регістра PrY, а результат записався в регістр PrZ).

  4. PrZout, Prlin, End (число з регістра PrZ переписалось в регістр Рг1, кінець вико­нання операції).

Тут Add - код операції додавання, який поступає на вхід АЛП та вказує йому тип виконуваної операції.

4.1.4.2. Виконання операції переходу

Адреса переходу зазвичай одержується шляхом додавання значення X, яке знахо­диться в адресному полі команди, до біжучого значення ПЛ.

Програма має наступний вигляд при виконанні безумовного переходу:

  1. ПЛоut, РгАіп, зчитування, очищення регістра У, включення переносу та опера­ції додавання в АЛП, PrZin (адреса команди з програмного лічильника ПЛ подана на шину та записалась до регістра адреси РгА, на вхід керування режимом роботи основ­ної пам'яті подано сигнал Read, на вхід скиду регістра PrY подано сигнал Reset, в АЛП виконалась операція додавання 1 до вмісту програмного лічильника ПЛ та її результат записався в регістр PrZ).

  2. PrZout, ПЛіп, чекання підтвердження сигналу зчитування (результат додавання з регістра PrZ записався в програмний лічильник ПЛ).

  3. РгДоut, РгКіп (команда з регістра даних РгД записалась до регістра команди РгК).

  4. ПЛоut, РгУіп (число з програмного лічильника ПЛ записалось до регістра PrY).

  5. (Поле адреси PrK)out, ADD, PrZin (число з поля адреси регістра команди РгК по­ступило на шину та додалося в АЛП до числа з регістра PrY, а результат записався в регістр PrZ).

  6. PrZout, ПЛіп, End (число з регістра PrZ переписалось в програмний лічильник ПЛ, кінець виконання операції).

При виконанні умовного переходу по значенню ПЛ = 0 крок 4 заміниться на наступний:

7) ПЛоШ:, РгУіп, if ПЛ=0 then End (запис вмісту програмного лічильника до регістра
PrY і його аналіз на рівність 0. Якщо це так - кінець виконання операції).

4.1.5. Особливості побудови процесора комп'ютера із складною системою команд

Вище розглядалася структура та організація роботи процесора комп'ютера, який із середини вісімдесятих років минулого століття був віднесений до комп'ютерів з склад­ною системою команд КССК (CISC). Аналізуючи його роботу і розглянуті в розділі 2 формат команди та склад системи команд названого комп'ютера, можна прийти до ви­сновку, що для процесора комп'ютера із складною системою команд характерні наступні особливості:


140

  • виконання команди за багато тактів, оскільки для цього потрібно здійснити бага­торазові операції звернення до основної пам'яті та до програмно-доступних регістрів процесора;

  • орієнтація АЛП на виконання великої кількості операцій, що пов'язано з розшире­ним складом системи команд;

  • складна система розпізнавання команди, що пов'язано з великою кількістю методів адресації та великою кількістю форматів команд різної розрядності;

  • програмне дешифрування команд з метою зменшення затрат обладнання;

  • складна організація конвеєризації виконання команд, що пов'язано, в першу чергу, з різнотипністю їх виконання;

  • орієнтація структури на виконання команд типу регістр-пам'ять та пам'ять-пам'ять.

Вказані особливості стримують побудову високопродуктивних комп'ютерів на осно­ві процесора розглянутого типу. Вони були враховані при створенні процесорів комп'ю­терів із простою системою команд.

4.2. Процесор комп'ютера з простою системою команд

4.2.1. Вимоги до процесора комп'ютера з простою системою команд

При розгляді системи команд комп'ютера ми ознайомилися з архітектурою комп'ю­терів із простою системою команд КПСК (RISC). Виходячи з основних принципів реалі­зації цих комп'ютерів, можна виділити наступні вимоги, яких необхідно притримувати­ся при побудові їх процесора:

  • Довільна комп'ютерна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл).

  • Пристрій керування та арифметико-логічний пристрій процесора мають орієнту­ватися на виконання мінімальної кількості спрощених команд, що статистично пере­важають у програмах, причому в системі команд відносно небагато операцій та режимів адресації операндів (способів адресації).

  • Команди обробки даних мають реалізуватися лише у формі "регістр-регістр". Обмі­ни з основною пам'яттю виконуються лише за допомогою команд завантаження/запису (архітектура load/store).

  • Дешифрування команд із спрощеними форматами має виконуватися лише апарат­но, аби збільшити швидкодію.

  • Необхідно забезпечити високий рівень конвеєризації виконання команд.

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

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

4.2.2. Базові принципи побудови процесора комп'ютера з простою
системою команд

Для ілюстрації базових принципів побудови процесора комп'ютера з простою сис­темою команд ми використаємо архітектуру комп'ютера, яка була запропонована для навчальних цілей Джоном Хеннессі та Дейвідом Паттерсоном і отримала назву DLX. Ця