- •1. Архітектура комп’ютерів
- •2. Поняття архітектури мікропроцесорів. Типи мікропроцесорів. Цикл обробки команди. Формування керуючих сигналів. Апаратне та мікропрограмне управління процесором. Суперскалярне виконання.
- •3. Виконання команд на конвеєрі. Конфлікти по даних та структурні конфлікти. Методи мінімізації структурних та конфліктів по даних. Особливості спекулятивного завантаження. Канали просування даних.
- •5. Класифікація архітектури комп’ютера за складом системи команд. Складна та проста система команд. Доповнена система команд. Спеціалізована система команд.
- •8. Організація захищеного режиму. Регістр стану процесора. Віртуальна пам’ять. Сегментація пам’яті. Сторінкова організація пам’яті.
- •9. Арифметико-логічні пристрої (алп). Структура й типи архітектури алп. Алгоритмічні операційні пристрої.
- •10. Типи архітектури кеш-пам’яті. Встановлення відповідності між рядками кеш-пам’яті та оперативною пам’яттю.
- •11. Організація напівпровідникових запам’ятовуючих пристроїв. Запам’ятовуючі елементи. Нарощування об’єму пам’яті. Розподіл ліній адреси. Керуючі сигнали. Буфер обміну даних.
- •14. Організація введення-виведення в режимі прямого доступу до пам’яті. Робота контролера прямого доступу до пам’яті. Канали прямого доступу до пам’яті.
- •13. Переривання. Типи переривання. Системні та програмні переривання. Процес обробки переривання центральним процесором. Організація введення-виведення за перериванням.
5. Класифікація архітектури комп’ютера за складом системи команд. Складна та проста система команд. Доповнена система команд. Спеціалізована система команд.
Система команд — угода про надаваний архітектурою засобах програмування, а саме: певних типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способів обробки прерываний і исключений, методів ввода и вывода.
Система команд представляється специфікацією відповідності (микро)команд наборам кодов (микро) операций, виконуваних при виклику команди, обумовлених (мікро)архітектурою системи. (При цьому, на системах з різної (мікро)архітектурою може бути реалізована та сама система команд. Наприклад, Intel Pentium і AMD Athlon мають майже ідентичні версії системи команд x86, але мають радикально різний внутрішній дизайн.)
Базовыми командами є, як правило, що випливають:
арифметические, наприклад «додавання» і «вирахування»;
битовые, наприклад «логічне й», «логічне або» і «логічне не»;
присваивание данных, наприклад «перемістити», «завантажити», «вивантажити»;
ввода-вывода, для обміну даними із зовнішніми пристроями;
управляющие инструкции, наприклад «перехід», «условный переход», «виклик подпрограммы», «повернення з підпрограми».
Оптимальними в різних ситуаціях є різні способи побудови системи команд.
Якщо об'єднати найбільше часто використовувану послідовність мікрооперацій під однією мікрокомандою, то треба буде забезпечувати менше мікрокоманд. Така побудова системи команд зветьсяCISC (Complex Instruction Set Computer), у розпорядженні є невелике число складених команд.
С іншої сторони, це об'єднання зменшує гнучкість системи команд. Варіант із найбільшою гнучкістю — наявність безлічі близьких до елементарних операцій команд. Це RISC (Reduced Instruction Set Computer), у розпорядженні є усічені, прості команди.
Ще більшу гнучкість системи команд можна одержати використовуючи MISC підхід, побудований на зменшенні кількості команд до мінімального й спрощенні обчислювального пристрою обробки цих команд.
7. Організація стекової пам’яті. Операції зі стеком. Машинне представлення стеку, черги стеку. Програмна модель стеку. Інфіксна й постфіксна форма представлення арифметичних виразів. Стекові процесори.
Стек – це упорядкована множина елементів даних, тільки один із яких може бути доступний при кожному зверненні. Доступний елемент називається множиною стека і розміщується в вершині стека. Кількість елементів в стеку (довжина стека) змінна. Елементи можуть добавлятися тільки в вершину стека і видаляються тільки з вершини стека, тому стек іноді називають магазинним стеком (pushdown list) і списком з дисципліною обслуговування в зворотному порядку (LIFO-list, last-in-first-out – останнім ввійшов, першим вийшов). Операція PUSH (заштовхує) добавляє новий елемент в вершину стека, а операція POP (виштовхує) видаляє елемент, який розміщений в вершині стека. В обох випадках вершина стека відповідно зміщується.
Для роботи зі стеком потрібно знати значення трьох адресів, які частіше всього зберігаються в регістрах процесора:
вказівник стека – містить адрес вершини стека (поточного верхнього елемента стека); якщо в стек добавляється новий елемент або із стека видаляється верхній елемент, значення вказівника відповідно збільшується або зменшується, тому в кожен момент часу він вказує на поточний верхній елемент;
адрес основи стека – містить адрес „дна” стека, тобто початковий адрес області пам’яті, виділений під стек. У випадку спроби виконати операцію POP, коли значення вказівника стека рівний адресу основи стека формується повідомлення про виникнення помилки;
граничний адрес стека – містить адрес другої границі області пам’яті, який виділений під стек. У випадку спроби виконати операцію PUSH, коли значення вказівника стека рівний граничному адресу стека формується повідомлення про помилку.
Традиційно в більшості комп’ютерів основа стека розприділяється в області більших адрес виділеної області пам’яті і вказівник стека по мірі його заповнення зміщується в сторону менших адрес. Для прискорення операцій зі стеком два верхніх елемента зі стека іноді розміщують в регістрах процесора, як показано на рис. 2. В цьому випадку вказівник стека фактично містить адрес не верхнього, а третього елемента стека.
Форма представлення арифметичних виразів, які використовуються в математичній літературі називаються інфіксною (infix) формою. Основна її відмінність, це те що знак бінарної операції розміщується між операндами, тобто а+b. В склад виразів також входять дужки, які вказують на порядок виконання. Альтернативна форма запису виразу отримала назву постфіксної (postfix). В цій формі знак операції слідує за операндами. Наприклад:
a+b перетворюється в ab+
a+(b×c) перетворюється в abc×+
(a+b) ×c перетворюється в ab+c×
Зверніть увагу на те, що дужки в постфіксній формі не використовуються, не залежно від складності виразу. Переваги такої постфіксної форми запису в тому, що такий вираз легко обчислюється з використанням стекових операцій. Він переглядається зліва на право. Для кожного елемента виразу використовуються наступні правила:
Якщо елемент змінна або константа, то помістити його в стек.
Якщо елемент – оператор (знак операції), то вилучити із стека два верхніх елемента, виконати з ними відповідну операцію і помістити його результат в стек.
Після того, як всі вирази буде оброблено таким способом, то в вершині стека сформується результат.
Послідовність зміни стану стека при обчисленні виразу показано на рис. 3.
