- •1. Архітектура комп’ютерів
- •2. Поняття архітектури мікропроцесорів. Типи мікропроцесорів. Цикл обробки команди. Формування керуючих сигналів. Апаратне та мікропрограмне управління процесором. Суперскалярне виконання.
- •3. Виконання команд на конвеєрі. Конфлікти по даних та структурні конфлікти. Методи мінімізації структурних та конфліктів по даних. Особливості спекулятивного завантаження. Канали просування даних.
- •5. Класифікація архітектури комп’ютера за складом системи команд. Складна та проста система команд. Доповнена система команд. Спеціалізована система команд.
- •8. Організація захищеного режиму. Регістр стану процесора. Віртуальна пам’ять. Сегментація пам’яті. Сторінкова організація пам’яті.
- •9. Арифметико-логічні пристрої (алп). Структура й типи архітектури алп. Алгоритмічні операційні пристрої.
- •10. Типи архітектури кеш-пам’яті. Встановлення відповідності між рядками кеш-пам’яті та оперативною пам’яттю. Сегментний спосіб організації віртуальної пам'яті
- •Сторінковий спосіб організації віртуальної пам'яті
- •Сегментно-сторінковий спосіб організації віртуальної пам'яті
- •11. Організація напівпровідникових запам’ятовуючих пристроїв. Запам’ятовуючі елементи. Нарощування об’єму пам’яті. Розподіл ліній адреси. Керуючі сигнали. Буфер обміну даних.
- •13. Переривання. Типи переривання. Системні та програмні переривання. Процес обробки переривання центральним процесором. Організація введення-виведення за перериванням.
- •14. Організація введення-виведення в режимі прямого доступу до пам’яті. Робота контролера прямого доступу до пам’яті. Канали прямого доступу до пам’яті.
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.