Процесор, структура, принципи роботи
Процесор - це функціональний блок обчислювального пристрою, призначений для реалізації обробки цифрових даних і управління ходом цієї обробки. Зазначені дії виконуються процесором за командами, які він автоматично зчитує з пам'яті обчислювача.
В узагальненому вигляді функціонування процесора може бути представлено як циклічне чергування двох етапів - (1) вибірки (читання) команд з пам'яті і їх дешифрування, і (2) виконання команд.
Вибірка (читання) команд є автоматичним процесом, що відбувається під впливом імпульсів від генератора тактових імпульсів (ГТВ), і не залежить від програміста в сенсі механізму реалізації, який жорстко визначається апаратною структурою процесора.
Дешифрування команди представляє собою процес формування послідовності керуючих сигналів для всіх вузлів процесора і інших блоків обчислювача на основі інформації (тобто коду), що міститься в команді.
Дії, що виконуються відповідно з командою, можуть являти собою арифметичну або логічну обробку даних, пересилання даних, формування адреси наступної команди або зміни режимів роботи процесора. У будь-якому випадку ці дії визначаються програмістом в рамках наявної в його розпорядженні системи команд конкретного процесора. Після виконання дій, що задаються командою, процесор автоматично переходить до вибірки наступної команди з пам'яті.
Сучасні мікропроцесори істотно розрізняються набором функціональних блоків і зв'язками між ними. Тим не менш, у структурі будь-якого процесора можна виділити основні елементи, що визначають специфіку процесора як керуючого центру обчислювача. Перш за все, мова йде про два блоки: пристрої керування та операційні пристрої.
Пристрій керування (ПК) призначено для реалізації вибірки команд, їх дешифрування, і на основі цього - для керування обміном і обробкою інформації шляхом генерації послідовності керуючих сигналів.
Операційний пристрій (ОП) служить для обробки цифрової інформації (арифметичні та логічні операції, зсув, аналіз чисел і т.п.).
Узагальнено структура мікропроцесора показана на рис. 1.
Рис. 1. Узагальнена структура мікропроцесора
Основним елементом для зберігання інформації всередині процесора є регістри, які виконують функцію зверх оперативного ОЗП з мінімальним часом запису і зчитування.
Регістр команд РГК (англ. IR - insructionregister) використовується для фіксації коду команди після зчитування її з пам'яті. Як правило, в цьому регістрі фіксується лише код операції (КОП) - частина коду команди, що визначає виконувану дію та спосіб адресації операндів.
Регістри операндів служать для зберігання даних у процесі їх обробки, дозволяють уникати постійних звернень до пам'яті. У сучасних процесорах кількість регістрів операндів може досягати 10-15 штук. По суті, вони утворюють внутрішню пам'ять процесора. У однокристальних мікроконтролерах кількість регістрів операндів доведено до кількох десятків, і стосовно до них вводиться поняття реєстрового файлу. Деякі з регістрів операнди можуть використовуватися також для зберігання або формування адрес інших операндів, тобто на їх основі реалізується механізм непрямої адресації даних в пам'яті. Дані, розміщені в регістрах операндів, надходять на обробку в арифметико-логічний пристрій (АЛП). У деяких типах процесорів один з регістрів операндів завжди є і приймачем результату операції в АЛП - такий регістр прийнято називати регістром-акумулятором. Процесори, в яких прийнята схема виконання операцій у вигляді:
<Акумулятор> (операція) <операнд> Þ <акумулятор>,
називаються процесорами з акумуляторно-орієнтованою структурою.
Лічильник команд (англ. PC - programmingcounter) - регістр, в якому при вибірці або виконанні поточної команди формується адреса наступної команди. Модифікація вмісту регістра PC - це засіб керування послідовністю вибірки команд з пам'яті і, отже, управління ходом обчислювального процесу (тобто реалізація розгалужень у алгоритмах).
Вказівник стеку (англ. SP - stackpointer) - регістр, в якому при виконанні програми зберігається адреса кордону тієї області пам'яті, для якої програміст використовує принцип послідовного доступу до даних (так званий протокол роботи зі стеком).
Регістр адреси - регістр, в якому формується адреса будь-якого пристрою, зовнішнього по відношенню до процесора (комірки пам'яті або порту вводу-виводу), перед зверненням до цього пристрою. Даний регістр необхідний, оскільки джерелом адресної інформації можуть бути різні регістри процесора. При цьому регістр адреси грає роль нагромаджуючого буфера, з якого адресна інформація видається на зовнішню шину адреси.
Регістр ознак (англ. F - flags) - це елемент внутрішньої пам'яті, в якому у вигляді окремих бітів фіксуються ознаки, що характеризують результат операції, виконаної в АЛП (нульовий результат, переповнення розрядної сітки тощо).
Арифметико-логічний пристрій (АЛП) - функціональний блок процесора, призначений для реалізації дій з обробки даних.
Результат операції, виконаної в АЛП, заноситься в один з регістрів або пересилається в пам'ять (в залежності від команди). У регістрі ознак автоматично формуються ознаки, що характеризують цей результат.
Функціонування процесора завжди синхронізується від зовнішнього генератора тактових імпульсів (ГТІ). Саме під впливом імпульсів від ГТІ пристрій управління процесора автоматично реалізує дії, пов'язані з вибіркою команд з пам'яті та їх дешифрацією.
Виконання команди завжди займає певну кількість періодів тактової частоти і складається з послідовності елементарних дій процесора (вибірка команди, читання операнда, обчислення в АЛП). Ці елементарні дії називають машинними циклами (МЦ). Протягом кожного МЦ відбувається генерація суворо певної комбінації керуючих сигналів для відповідних вузлів процесора і всієї обчислювальної системи.