|
Суббота, 21.06.2025, 19:28 |
Приветствую Вас Гость | RSS |
|
Архітектура
| |
Ellcrys | Дата: Вторник, 21.06.2011, 13:59 | Сообщение # 1 |
Любопытный соф
Группа: Администраторы
Сообщений: 56
Статус: Offline
| 1. Поняття про архітектуру та структурну організацію комп’ютерів. Типи та класифікація архітектур. Мікропроцесорні комплекти. Набір компонентів системної логіки. Баланс продуктивності компонентів комп’ютера. Існуючі на даний час процесорні архітектури поділяються на 2 глобальні категорії – RISC і CISC. Сімейство x86 нараховує 7 поколінь процесорів: Перше покоління (процесори 8086, 8080 і математичний сопроцесор 8087) заклало архітектурну основу – набір нерівноправних 16-розрядних регістрів, сегментну систему адресації пам’яті у межах 1Мбайт Друге покоління (80286 із сопроцесором 80287) принесло захищений режим, що дозволяє задіяти віртуальну пам’ять розміром до 1Гбайт для кожної задачі, фізичною пам’яттю у межах 16Мбайт. Третє покоління (386/387 DX і SX) – перехід до 32-розрядної архітектури IA-32. Збільшився об’єм адресованої пам’яті (до 4Гбайт реальної, 64Тбайт віртуальної). В систему команд введено можливість переключення розрядності адресації і даних. тактова частота досягла 40МГц. Четверте покоління (486 DX і SX) у видиму архітектурну модель великих змін не внесло, але було прийнято ряд заходів для збільшення продуктивності. Значно ускладнений виконавчий конвеєр – основні операції виконує RISC-ядро, „завдання” для якого готуються з вхідних CISC-інструкцій. П’яте покоління (Intel Pentium, AMD K5) привнесло суперскалярну архітектуру. Після блоків попередньої вибірки і першої стадії декодування інструкцій є два конвеєра, U-конвеєр і V-конвеєр. З’являється розширення MMX (Multimedia Extensions) Шосте покоління процесорів Intel (мікроархітектура P6: Pentium Pro, Pentium II, Pentium III, Celeron, Xeon). Характерна риса – динамічне виконання, під котрим розуміється виконання інструкцій не в тому порядку (out of order), як передбачено програмним кодом, а в тому, як „зручно” процесору. Сьоме покоління (у AMD) почалося з процесора Athlon, в якому суперскалярність і суперконвеєрність охопили блок FPU. Intel розпочала 7 покоління процесором Pentium 4. Архітектура комп’ютерної системи – це абстрактне представлення або визначення фізичної системи (мікропрограми та комплексу програмних засобів) з точки зору програміста або розробника компілятора. Під терміном структурна організація комп’ютерної системи розуміється сукупність операційних блоків (пристроїв) та їх взаємозв’язків, які забезпечують реалізацію специфікацій, заданих архітектурою комп’ютера. Класифікація М. Флінна описує архітектурні особливості комп’ютера з погляду потоку команд (інструкцій) та потоку даних. Структурна систематика Р. Хокні та К. Джессхоупа. На першому рівні всі обчислювальні системи поділяють за принципом множинності (кількості) на однокомп’ютерні та багатокомп’ютерні. Обчислювальні системи з одним комп’ютером, у свою чергу, поділяються на ЕОМ з одним конвеєрним процесором (традиційний послідовний комп’ютер) та з багатьма процесорами (поділяються на конвеєрні, неконвеєрні, та мікропроцесорні матриці). Архітектура фон Неймана. Універсальні комп’ютери мають традиційну архітектуру SISD (або скалярну архітектуру). У 1946 р. американським математиком Джоном фон Нейманом було вперше сформульовано основні принципи побудови таких програмно-керованих комп’ютерів: CISC-архітектура: невелика кількість регістрів загального призначення; велика кількість типів машинних інструкцій;наявність команд, навантажених семантичним значенням, подібним до операторів високорівневих мов програмування; такі команди виконуються за декілька машинних циклів (тактів). RISC-архітектуру мають комп’ютери із скороченим набором команд (RISC – Reduced Instruction Set Computer). велика кількість регістрів загального призначення; використання команд фіксованої довжини з малою кількістю типів форматів; регулярність, що дає змогу завдяки простоті команд виконувати одні й ті самі апаратні пристрої для виконання майже всіх команд; виконання більшості команд за один такт; підвищення швидкості досягається за рахунок апаратної реалізації виконання команд (на відміну від мікропрограмної); Для побудови сучасних комп’ютерів використовують мікропроцесорні засоби – комплекси апаратно і програмно сумісних ІМС різного ступеню складності (СІС, ВІС, НВІС та ультра-ВІС). Основою мікропроцесорних засобів є мікропроцесорні комплекти МПК і базові кристали, ВІС пам’яті. Залежно від виду і типу базової програмовної ВІС виділяють такі МПК: з одним або кількома однокристальними мікропроцесорами: серії КР580, КР581, К1810, К1518, К1821, КР1828, КМ1831, К1838; з багатокристальними (модульними) мікропроцесорами: К581, К588; із секціонованими (розрядно-модульними) мікропроцесорами: К583, К1800, К1802, К1804, К1822; з однокристальними мікро-ЕОМ: К1813, К1816, К1820, К1827.Мікропроцесори мають різні пристрої керування із схемною або програмною логікою та комбіновані.
2. Поняття архітектури мікропроцесорів. Типи мікропроцесорів. Цикл обробки команди. Формування керуючих сигналів. Апаратне та мікропрограмне управління процесором. Суперскалярне виконання. Під архітектурою процесора розуміється його програмна модель, тобто властивості, які є доступними програмно. Під мікроархітектурою розуміється внутрішня реалізація цієї програмної моделі. Конвеєризація (pipelining) – передбачає розбиття виконання кожної інструкції на декілька етапів, при цьому кожний етап виконується на своїй ступені конвеєра процесора. Під час виконання інструкція пересувається по конвеєру по мірі звільнення наступних ступіней. Скалярним називають процесор з єдиним конвеєром (усі процесори Intel до 486 включно). Суперскалярний процесор має більше одного конвеєра (Pentium – 2, Pentium Pro – 3), здатних обробляти інструкції паралельно. Архітектури 32-розрядних мікропроцесорів мають ряд недоліків, зокрема, обмеження продуктивності, яка їм органічно властива. Для її підвищення процесор повинен досягати відповідної швидкодії і виконувати при цьому якомога більше команд за один такт. Це можливо при реалізації паралельних обчислень. Над розробкою нової архітектури сьогодні працюють спільно корпорації Intel І Hewlett Packard. Ця архітектура має назву Intel Architecture-64 (ІА-64). Представником цієї архітектури є процесор з кодовою назвою Merced. Основними її особливостями є: використання "довгих" слів інструкцій (long instruction word-LIW), передбачення наступних виконуваних інструкцій, усунення переходів, спекулятивне завантаження та інші методики збільшення паралелізму і оптимізації програмного коду. Процесор містить як елементи RISC-, так і CISC-архітектури. Підвищення продуктивності досягається також за рахунок додаткової інформації, що з'являється на етапі компіляції додатку. Перейменування регістрів (register renaming) дозволяє обійти архітектурне обмеження на можливість паралельного виконання інструкцій (доступно усього 8 загальних регістрів). Процесори з перейменуванням регістрів фактично мають більше 8 загальних регістрів, і при запису проміжних результатів встановлюється відповідність логічних імен і фізичних регістрів. Переміщення даних (data forwarding) передбачає початок виконання інструкції до готовності усіх операндів. Передбачення переходів (branch prediction) дозволяє продовжувати вибірку і декодування потоку інструкцій після вибірки інструкції розгалуження (умовного переходу), не чекаючи перевірки умови переходу. Виконання по припущенню, або спекулятивне виконання (speculative execution) – передбачені після переходу інструкції не тільки декодуються, але й по можливості виконуються до перевірки умови переходу. обробки команди на більшу кількість незалежних етапів, наприклад: F: Вибірка (Fetch) – читання команди з пам’яті. D: Декодування (Decode) – декодування команди і вибірка її вхідних операндів. E: Виконання (Execute) – виконання заданої в команді операції. W: Запис (Write) – збереження результату по цільовій адресі.
3. Виконання команд на конвеєрі. Конфлікти по даних та структурні конфлікти. Методи мінімізації структурних та конфліктів по даних. Особливості спекулятивного завантаження. Канали просування даних. У загальних рисах конвеєрна обробка команд у комп’ютері нагадує збирання виробу на конвеєрі у машинобудуванні. Ефективність збирального конвеєра основана на тому, що виріб послідовно проходить через певні робочі стадії, причому операції на всіх стадіях виконуються одночасно. Розглянемо найпростішу схему розділення процесу обробки команди на два етапи – вибірка команди і виконання. При виконанні команди існують інтервали часу, коли звернення до пам’яті не здійснюється. Їх можна використати для вибірки наступної команди паралельно з виконанням поточної. Щоб збільшити швидкість обробки необхідно організувати на конвеєрі не дві, а декілька робочих стадій, тобто розділити цикл обробки команди на більшу кількість незалежних етапів, наприклад: F: Вибірка (Fetch) – читання команди з пам’яті. D: Декодування (Decode) – декодування команди і вибірка її вхідних операндів. E: Виконання (Execute) – виконання заданої в команді операції. W: Запис (Write) – збереження результату по цільовій адресі. Отже, конвеєрна організація може суттєво підвищити швидкодію процесора, але потребує добро продуманих проектних рішень, які підтримують оптимальне співвідношення між передбаченим підвищенням продуктивності та складністю засобів реалізації. Ще одна причина, по якій неможливо досягти максимальної продуктивності, – наявність у конвеєрі ситуацій, коли він призупиняє свою роботу. Такі ситуації називають конфліктами конвеєра (структурні, конфлікти по даних, конфлікти по керуванню). Структурні конфлікти. Якщо деяка команда не може бути прийнята у конвеєр внаслідок конфлікту по ресурсах, то кажуть, що в машині присутній структурний конфлікт. Структурні конфлікти можуть виникати, наприклад у машинах, які мають єдиний конвеєр пам‘яті для команд та даних. У цьому випадку коли команда буде містити звернення до пам‘яті за даними, воно буде конфліктувати з вибіркою наступної команди з пам‘яті. Щоб вирішити таку проблему, достатньо просто призупинити конвеєр на один такт, коли відбувається звернення до пам‘яті за даними. Подібна зупинка називається “конвеєрною бульбашкою” оскільки бульбашка проходить по конвеєру, займаючи місце, але не виконуючи ніякої корисної роботи. Конфлікти по даних– це ситуація, коли конвеєр зупиняється по причині відсутності даних, над якими повинна здійснюватися чергова команда. Конфлікти по даних виникають у тому випадку, коли застосування конвеєрної обробки може змінити порядок звернення за операндами таким чином, що порядок виконання команд буде відрізнятись від порядку команд, що виконувались би на неконвеєрній машині. Цей конфлікт обумовлений тим, що команда очікує запис даних в регістровий файл. Однак ці дані з’являються на виході АЛП по завершенні певного етапу. Цю затримку можна скоротити і навіть усунути, передавши результати першої команди безпосередньо другій команді. Усунення конфліктів. Багато типів зупинок конвеєра можуть траплятися досить часто. Існують апаратні методи зміни порядку виконання команд для того, щоб мінімізувати зупинки конвеєра. Ці методи отримали загальну назву методів динамічної оптимізації. Основними засобами динамічної оптимізації є 1.Розміщення схеми виявлення конфліктів у найнижчій точці конвеєра команд таким чином, щоб дозволити команді пересуватись по конвеєру до тих пір, поки їй реально не знадобиться операнд, що є також результатом логічно більш ранньої але ще не завершеної команди. Альтернативним підходом є централізоване виявлення конфліктів на ранній стадії конвеєра; 2.Буферизація команд, що очікують вирішення конфлікту, та видача наступних, логічно не зв‘язаних команд в “обхід” буфера; 3.Відповідна організація комутуючих магістралей, що забезпечує безпосередню передачу результату операції в буфер, що зберігає логічно залежну команду що було затримано внаслідок конфлікту або безпосередньо на вхід функціонального пристрою до того, як результат буде записаний у регістровий файл або в пам‘ять. Однією з особливостей архітектури ІА-64 є можливість спекулятивного завантаження даних (speculative loading). її суть полягає в тому, що процесор має можливість завантажувати дані з пам'яті до того, коли вони знадобляться. Якщо при завантаженні даних виникає виключна ситуація (exception), повідомлення про неї можна відкласти. Суть спекулятивного завантаження даних зводиться до розподілу завантаження даних і їх використання в найбільшому проміжку часу. В результаті процесор не витрачає даремно цикли, очікуючи витягнення даних з більш повільнодіючої пам'яті. Технологія спекулятивного завантаження даних реалізується на двох рівнях: під час компіляції та виконання команди. 4. Особливості функціонування конвеєрів. Оцінка продуктивності конвеєрів. Конфлікти по керуванню. Статичне й динамічне передбачення переходів. Організація блоку вибірки для мінімізації конфліктів по керуванню. Конфлікти по керуванню. Команди умовних і безумовних переходів часто зустрічаються у програмах. У типовій програмі вони складають біля 20% загальної кількості команд. Зупинки конвеєра, викликані наявністю таких команд, називаються конфліктами по керуванню. Часові втрати, які відбуваються при цьому, називають накладними витратами переходу. Конфлікти по керуванню можуть викликати навіть більші втрати, ніж конфлікти по даних. Коли виконується команда умовного переходу, вона може змінити або не змінити значення вказівника команд. Коли команда заміняє вказівник команд на адресу, що було обчислено у команді, перехід називається виконаним, інакше – невиконаним. Відкладені переходи. Команди умовного переходу можуть служити причиною додаткових конфліктів, пов’язаних з тим, що умова переходу залежить від результату виконання попередньої команди. Поки не завершиться її обробка, процесор не прийме рішення про перехід. Команди умовних і безумовних переходів часто зустрічаються у програмах. У типовій програмі вони складають біля 20% загальної кількості команд. Зупинки конвеєра, викликані наявністю таких команд, називаються конфліктами по керуванню. Часові втрати, які відбуваються при цьому, називають накладними витратами переходу. Накладні витрати при такій їх кількості приводять до суттєвого зниження продуктивності комп’ютера. Негативний вплив команд переходу на продуктивність можна суттєво зменшити за рахунок спеціальних методів їх обробки. Для скорочення накладних витрат переходу адресу переходу можна обчислювати раніше. Для скорочення негативних наслідків команд переходів або промахів при зверненні до кеш-пам’яті до складу багатьох процесорів включають складні блоки вибірки, які вибирають команди ще до того, як вони знадобляться, і поміщують їх у чергу. Блок диспетчеризації пересилає команди, розташовані на початку черги, до блоку виконання ( Рис. ). Крім вибірки команд з черги блок диспетчеризації виконує їх декодування. Для ефективного функціонування конвеєра блок вибірки повинен володіти потужними засобами декодування і обробки команд, які дозволяють розпізнати і виконати команди переходу. Його завдання – постійне формування черги команд, що зменшує вплив на роботу конвеєра випадкових затримок при вибірці чергової команди. Якщо зупинка конвеєра викликана конфліктом по даних, блок диспетчеризації не може передавати наступним стадіям команди з черги. Однак, це не заважає блоку вибірки продовжувати вибирати команди і поміщувати їх у чергу. Коли затримка при вибірці команди виникає внаслідок переходу або промаху при зверненні до кеш-пам’яті, блок диспетчеризації може продовжити вибирати команди з черги і передавати наступним блокам для виконання. Рис. 1. Черга команд конвеєра. На початку роботи черга містить одну команду. При виконанні операції вибірки черга збільшується на одну команду, а при виконанні операції диспетчеризації зменшується на одну команду. Тому протягом перших 4 тактів довжина черги залишається незмінною. черга команд і технологія розгалуження із суміщенням дозволяють знизити негативний вплив команд переходу і промахів при зверненні до кеша на продуктивність комп’ютера. Ефективність цієї технології тим вища, чим більше команд може бути одночасно зчитано з кеш-пам’яті. Мінімізація конфліктів по керуванню при конвеєрній обробці даних. Конфлікти по керуванню можуть викликати навіть більші втрати, ніж конфлікти по даних. Коли виконується команда умовного переходу, вона може змінити або не змінити значення вказівника команд. Коли команда заміняє вказівник команд на адресу, що було обчислено у команді, перехід називається виконаним, інакше – невиконаним. Найпростіший метод роботи з переходами полягає у зупинці конвеєра при появі команди переходу до того, як буда з‘ясована адреса переходу. Такі зупинки повинні реалізовуватись інакше, ніж зупинки конфліктів по даних. Вибір команди після команди умовного переходу має статись якомога швидше після з‘ясування адреси переходу: схема обробки команд умовного переходу полягає в зупинці операцій в конвеєрі шляхом блокування будь-якої операції, що знаходиться в конвеєрі після операції умовного переходу до точного з‘ясування цільової адреси умовного переходу. Перевагою цього рішення є його простота Альтернативна схема прогнозує перехід як виконуваний. Як тільки команду умовного переходу декодовано та обчислена цільова адреса переходу, робиться припущення що перехід виконуваний і вибираються команди з цільової адреси переходу.
|
|
| |
Ellcrys | Дата: Вторник, 21.06.2011, 14:00 | Сообщение # 2 |
Любопытный соф
Группа: Администраторы
Сообщений: 56
Статус: Offline
| 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× Зверніть увагу на те, що дужки в постфіксній формі не використовуються, не залежно від складності виразу. Переваги такої постфіксної форми запису в тому, що такий вираз легко обчислюється з використанням стекових операцій. Він переглядається зліва на право. Для кожного елемента виразу використовуються наступні правила: 1)Якщо елемент змінна або константа, то помістити його в стек. 2)Якщо елемент – оператор (знак операції), то вилучити із стека два верхніх елемента, виконати з ними відповідну операцію і помістити його результат в стек. Після того, як всі вирази буде оброблено таким способом, то в вершині стека сформується результат. Послідовність зміни стану стека при обчисленні виразу показано на рис. 3.
8. Організація захищеного режиму. Регістр стану процесора. Віртуальна пам’ять. Сегментація пам’яті. Сторінкова організація пам’яті. Мінімальний захист який вик в комп системах в основному використовує 2 режими: 1.Режим повного доступу до ресурсів системи 2.Режим часткового доступу Такий спосіб забезпечує зняття конфліктів, що пов’язані із втручанням різних користувачів до конкретного ресурсу, а також забезпечують функціонування різного роду додатків. Багатозадачний режим повинен забезпечуватися захистом від несанкціонованого доступу та зачобами розподілу ресурсів системи. Захищений режим є основним режимом 32-розрядних процесорів і забезпечує повну незалежність виконання багатьох задач одночасно. В основному даний режим передбачає розподіл ресурсів пам’яті та різного роду системних таблиць, доступ до яких організовується з допомогою переривань, які в певний момент часу надають таблицю для користування. В основному захист пам’яті базується на програмно керованих засобах, тобто на рівні О.С. В захищеному режимі використовується сегментація пам’яті, відповідно до цього кожна задача використовує ті сегменти, які їй дозволила О.С. Інформація про це записується в дескрипторних таблицях. Захист пам’яті за допомогою сегментації не дозволяє: Використовувати сегменти не за призначенням Порушувати права доступу Отримувати доступ до елементів які виходять за рамки сегменту Змінювати вміст таблиць дескрипторів (не маючи на це прав) Захищений режим має засоби переходу від 1-ї задачі до іншої. Стан кожної задачі може бути збережений в спеціальному сегменті стану Механізм що дозволяє будь якій задачі використовувати логічний адресний простір до 64 Гбайт наз механізмом віртуальної пам’яті. Сторінкова організація пам’яті Основна думка зводиться до формування таблиць описання пам'яті, які визначають стан її окремих сегментів/сторінок тощо. У разі нестачі пам'яті операційна система може відвантажити частину даних з оперативної пам'яті на диск, а до таблиці описів внести зазначення на відсутність цих даних у пам'яті. При спробі звернення до відсутніх даних процесор сформує виключення (різновид переривання) і віддасть управління операційній системі, яка поверне дані до пам'яті, а потім поверне управління програмі. Таким чином для програм процес підкачки даних з дисків відбувається непомітно. Підхід до організації пам‘яті спирається на той факт, що програми часто ділаться на окремі частини-сегменти. Кожний сегмент представляє собою окрему логічну одиницю інформації, що містить сукупність даних або програм та розташовану у адресному просторі користувача. Сегменти створюються користувачами, які можуть звертатися до них по символічному імені. У кожному сегменті встановлюється своя власна нумерація слів, починаючи з нуля. Для реалізації сегментації було запропоновано декілька схем, котрі відрізняються деталями реалізації, але засновані на тих самих принципах. У системах з сегментацією пам‘яті кожне слово у адресному просторі користувача визначається віртуальною адресою, що складається з 3 частин: старші розряди розглядаються як номер сегменту, середні як номер сторінки у сегменті, молодші – номер слова у сторінці. Як і у випадку сторінкової організації, необхідно забезпечити перетворення віртуальної адреси у реальну фізичну адресу основної пам‘яті. З цією метою для кожного користувача операційна система повинна сформувати таблицю сегментів. Кожний елемент таблиці сегментів містить вказівник (дескриптор) сегменту. Таблиці сегментів різних користувачів операційна система зберігає у основній пам‘яті. Для визначення розподілу таблиці сегментів виконуваної програми використовується спеціальний регістр захисту, який завантажується операційною системою перед початком її виконання. Цей регістр містить дескриптор таблиці сегментів ((базу і границю), причому база містить адресу початку таблиці сегментів виконуваної програми, а границя – довжину цієї таблиці сегментів. Розряди номера сегмента віртуальної адреси використовуються в якості індексу для пошуку у таблиці сегментів. Таким чином, наявність базово-граничних пар у дескрипторі таблиці сегментів та у елементах таблиці сегментів запобігає можливості звернення програми користувача до таблиць сегментів та сторінок, з якими вона не пов‘язана. Наявність у елементах таблиці сегментів індикаторів режиму доступу дозволяє реалізувати необхідний режим доступу з боку даної програми. Для підвищення ефективності схеми використовується асоціативна кеш-пам‘ять.
9. Арифметико-логічні пристрої (АЛП). Структура й типи архітектури АЛП. Алгоритмічні операційні пристрої.
|
|
| |
Ellcrys | Дата: Вторник, 21.06.2011, 14:00 | Сообщение # 3 |
Любопытный соф
Группа: Администраторы
Сообщений: 56
Статус: Offline
| 9. Арифметико-логічні пристрої (АЛП). Структура й типи архітектури АЛП. Алгоритмічні операційні пристрої.
10. Типи архітектури кеш-пам’яті. Встановлення відповідності між рядками кеш-пам’яті та оперативною пам’яттю. Сегментний спосіб організації віртуальної пам'яті Першим серед розривних методів розподілу пам'яті був сегментний. Для цього методу програму необхідно розбивати на частині і вже кожній такій частині виділяти фізичну пам'ять. Природним способом розбивки програми на частині є розбивка її на логічні елементи — так називані сегменти. Кожен сегмент розміщується в пам'яті як самостійна одиниця. Кожен сегмент, розташований у пам'яті, має відповідну інформаційну структуру, часто називану дескриптором сегмента. Саме операційна система будує для кожного процесу, що виконується, відповідну таблицю дескрипторів сегментів і при розміщенні кожного з сегментів в оперативній чи зовнішній пам'яті в дескрипторі відзначає його поточне місцезнаходження. Для рішення проблеми заміщення (визначення того сегмента, який повинний бути або переміщений у зовнішню пам'ять, або просто заміщений новим) використовуються наступні дисципліни (їх наз. дисциплінами заміщення): правило FIFO (first in — first out: «перший прийшов першим і вибуває»); правило LRU (1еаst recently used: «довше всього невикористовуваний»); правило LFU (1еаst frequently used: «використовуваний рідше всіх інших»); випадковий (random) вибір сегмента. Сторінковий спосіб організації віртуальної пам'яті При такому способі усі фрагменти програми, на які вона розбивається (за винятком останньої її частини), виходять однаковими. Частина віртуальних сторінок задачі розміщається в оперативній пам'яті, а частина — у зовнішній. Місце в зовнішній пам'яті називають файлом підкачки або сторінковим файлом (swap-файлом), тим самим підкреслюючи, що записи цього файлу — сторінки — заміщають один одного в оперативній пам'яті. Розбивка всієї оперативної пам'яті на сторінки однакової величини приводить до того, що замість одномірного адресного простору пам'яті використовується двовимірний. Перша координата адресного простору — це номер сторінки, а друга координата — номер комірки всередині обраної сторінки (його називають індексом). При звертанні до віртуальної сторінки, якої не має в даний момент у оперативної пам'яті, виникає переривання і керування передається диспетчеру пам'яті, що повинний знайти вільне місце. Звичайно надається перша вільна сторінка. найважливішою перевагою сторінкового способу організації пам’яті є мінімальна фрагментація. Цей метод можна було назвати найкращим, якщо б не наступних дві обставини. Перша – сторінкова трансляція віртуальної пам’яті вимагає суттєвих накладних витрат. Таблиці сторінок необхідно розміщати теж в пам’яті. Крім цього ці таблиці необхідно обробляти – з ними працює диспетчер пам’яті. Друга – програми розбиваються на сторінки випадково, без обліку логічних зв’язків. Це приводить до того, що міжсторінкові переходи відбуваються частіше ніж міжсегментні і стає важко організовувати поділ програмних модулів між процесами, що виконуються. Сегментно-сторінковий спосіб організації віртуальної пам'яті Як і в сегментному способі розподілу пам'яті, програма розбивається на логічно закінчені частини — сегменти — і віртуальна адреса містить вказівку на номер відповідного сегмента. Друга складова віртуальної адреси — зсув відносно початку сегмента — у свою чергу, може складатися з двох полів: віртуальної сторінки й індексу. Іншими словами, виходить, що віртуальна адреса тепер складається з трьох компонентів: сегмент, сторінка, індекс. Цей спосіб організації віртуальної пам'яті вносить ще більшу затримку доступу до пам'яті. Необхідно спочатку обчислити адресу дескриптору сегмента і прочитати його, потім обчислити адресу елементу таблиці сторінок цього сегменту і витягти з пам'яті необхідний елемент, і вже тільки після цього можна до номера фізичної сторінки приписати номер комірки в сторінці (індекс). Затримка доступу до шуканої комірки виходить принаймні в три рази більше, ніж при простій прямій адресації. Щоб уникнути цієї неприємності, вводиться кешування, причому кеш, як правило, будується по асоціативному принципі. 11. Організація напівпровідникових запам’ятовуючих пристроїв. Запам’ятовуючі елементи. Нарощування об’єму пам’яті. Розподіл ліній адреси. Керуючі сигнали. Буфер обміну даних. В основі реалізації ієрархії пам‘яті сучасних комп‘ютерів полягають 2 принципи: принцип локальності звернень та співвідношення вартість / швидкодія. Принцип локальності звернень говорить про те, що більшість програм не виконують звернень до всіх команд та даних рівноімовірно, а найчастіше звертаються до певної частини свого адресного простору. Ієрархія пам‘яті сучасних комп‘ютерів будується на декількох рівнях, причому більш високий рівень менший по об‘єму, більш швидкий та має більшу вартість в перерахунку на один байт, ніж нижчий рівень. Усі рівні ієрархії взаємопов‘язані: дані на певному рівні можуть бути знайдені на більш низькому рівні та всі дані на більш низькому рівні можуть бути знайдені на ще нижчому і так далі, доки не буде досягнута основа ієрархії. Архітектура пам‘яті складається з багатьох рівнів, але у кожний момент часу ми маємо справу тільки з двома сусідніми рівнями. Мінімальна одиниця інформації яка може бути присутня або відсутня у дворівневій ієрархії називається блоком. Розмір такого блоку може бути або фіксованим, або змінним. Якщо об‘єм фіксований, то об‘єм пам‘яті має бути кратним об‘єму блока. Вдале чи невдале звернення до більш високого рівня називається відповідно попаданням (hit) або промахом (miss). Попадання це звернення до об‘єкта пам‘яті, який знайдено на даному рівні. Якщо об‘єкт не знайдено на даному рівні, така ситуація називається промахом. Коефіцієнт попадань (hit ratio) обчислюється як відносна кількість вдалого звернення до блока від загальної кількості звернень. Коефіцієнт промахів (miss ratio) – це відносна кількість промахів при зверненні до пам‘яті. Зрозуміло, сума цих коефіцієнтів повинна в результаті давати 1 або 100% якщо обчислення ведеться у процентах. Оскільки підвищення швидкодії є головною причиною появи ієрархії пам‘яті, коефіцієнти попадань та промахів є важливими характеристиками. Час звернення при попаданні (hit time) є час звернення до більш високого рівня ієрархії, яке включає до себе час, необхідний для з‘ясування того, наявний блок у даному рівні ієрархії чи ні. Втрати при промаху (miss penalty) є час для заміщення блоків у більш високому рівні на блок з нижчого рівня + час для пересилки цього блока в пристрій (як правило, процесор). Втрати на промах також включають у себе дві компоненти: час доступу (access tine) – час звернення до першого слова при промаху, та час пересилки (transfer tine) – додатковий час для пересилки решти слів блоку. Час доступу пов‘язаний з затримкою пам‘яті більш низького рівня, у той час як час для пересилки пов’язаний зі смугою пропускання каналу між двома рівнями ієрархії. Для того щоб описати деякий рівень ієрархії пам‘яті треба відповісти на такі питання: 1.Де може розміщуватися блок на вищому рівні ієрархії (розміщення блока); 2.Як знайти блок, коли він знаходиться на верхньому рівні (ідентифікація блока); 3.Який блок повинен бути замінений у випадку промаху (заміщення блоків); 4.Що відбувається під час запису (стратегія запису).
12. Система магістралей комп’ютера. Ієрархічний принцип побудови магістралей. Внутрішня та зовнішня магістралі процесора. Синхронні та асинхронні магістралі. Арбітраж. Типи арбітражу. Передавання даних по системній магістралі. Інформаційна магістраль (bus) – це сукупність електричних зв’язків і обслуговуючих електронних приладів, що забезпечують обмін інформацією між двома або більше пристроями. Магістралі можна розділити на дві категорії в залежності від їх синхронізації. У синхронній магістралі всі події відбуваються у відповідності з тактовими імпульсами, які генеруються кварцевим генератором на додатковій лінії Clock. Будь-яка дія займає цілу кількість так званих циклів магістралі. Асинхронна магістраль не містить керуючого генератора. Цикли магістралі можуть бути будь-якої потрібної довжини і необов’язково однакові по відношенню до всіх пар пристроїв. Не дивлячись на переваги асинхронної магістралі, більшість існуючих магістралей є синхронними, оскільки синхронну систему простіше реалізувати і здійснити тестування. Можлива ситуація, коли контроль над магістраллю намагаються отримати одночасно декілька під’єднаних до неї модулів. Оскільки в кожний момент часу тільки одному модулю може бути дозволено контролювати магістраль, необхідно „розсудити” конкуруючих претендентів. Цей процес називається арбітражем магістралі (bus arbitration). Мета процесу арбітражу полягає у тому, щоб вибрати пристрій (процесор або модуль в/в), який відіграватиме роль ведучого (master). При централізованому арбітражу пристрій, який отримає доступ до магістралі, визначається спеціальним пристроєм – контролером або арбітром магістралі. Децентралізований арбітраж відбувається тоді, коли пристрою потрібна магістраль, він запускає свою лінію запиту. Коли магістраль не потрібна жодному з пристроїв, лінія арбітра передає сигнал усім пристроям. Щоб отримати доступ до магістралі, пристрій спочатку перевіряє, чи магістраль вільна, і чи встановлений сигнал арбітра IN. Якщо ні, пристрій не може стати ведучим. У цьому випадку він скидає сигнал OUT. Якщо IN встановлений, пристрій також скидає сигнал OUT, в результаті чого наступний пристрій не отримає сигнал IN і, в свою чергу, скидає сигнал OUT. Отже, всі наступні у ланцюгу пристрої не отримають сигнал IN і скидають OUT. В результаті залишається тільки один пристрій, у якого сигнал IN встановлений, а сигнал OUT скинутий. Він стає ведучим пристроєм магістралі, запускає лінію BUSY і сигнал OUT, і починає передачу даних. Типи та призначення магістралей комп’ютера Під магістраллю комп’ютера розуміють загальний канал зв’язку, котрий використовується для організації взаємодії між двома і більше компонентами системи. Комп’ютер має кілька типів шин. Основними з них є шина процесора, шини адреси, шина вводу/виводу. В комп’ютері реалізовано декілька типів шин. Є зовнішні та внутрішні магістралі. Внутрішні магістралі розміщені в самому процесорі. Шина процессора шина, що з’єднує мікропроцесор (CPU) з декількома безпосередньо зв’язаними з ним мікросхемами. Шина процесора використовується в основному для передачі даних між процесором та основною системною шиною або між процесором і зовнішнім кешем. Шина пам’яті призначена для передачі інформації між процесором і основною пам’яттю (RAM). Дана шина – це або продовження шини процесора, або незалежний набір спеціальних мікросхем для передачі інформації між процесором та пам’яттю. Системи, основані на процесорі з тактовою частотою вище 16 МГц. У всіх системах з тактовою частотою процесора вище 16 МГц для усунення невідповідностей між швидкою шиною процесора і повільною оперативною пам’яттю комп’ютера використовуються спеціальні мікросхеми Шина введення/виведення забезпечує взаємодію процесора і периферійні пристроїв. Ця шина і під’єднані до неї роз’єми призначені для того, щоб комп’ютер міг виконувати всі подані запити. Основні типи шин введення виведення: шина ISA (Indastry Standart Architecture – промислова стандартна шина архітектура) – це 16-розрядна шина, працює на частоті 8 МГц; шина PCI (Peripheral Component Interconnect – шина взаємодії периферійних компонентів); шина AGP (прискорений графічний порт) – це 32-розрядна шина працює на частоті 66 МГц і призначена для під’єднання відеоадаптера.
|
|
| |
Ellcrys | Дата: Вторник, 21.06.2011, 14:01 | Сообщение # 4 |
Любопытный соф
Группа: Администраторы
Сообщений: 56
Статус: Offline
| 13. Переривання. Типи переривання. Системні та програмні переривання. Процес обробки переривання центральним процесором. Організація введення-виведення за перериванням. Для повідомлення процесору про те, що необхідно опрацювати певний запит, використовуються канали запитів переривання IRQ (апаратні переривання). Вони являють собою провідники на системній платі і відповідні їм контакти в роз'емах. Завдяки перериванням комп'ютер може своєчасно реагувати на події, котрі є зовнішніми відносно процесора. До системних ресурсів відносяться комунікаційні канали, адреси і сигнали, котрі використовуються вузлами комп'ютера для обміну даними за допомогою шин. Під системними ресурсами розуміють: адреси пам'яті; канали запитів переривань (TRQ); канали прямого доступу до пам'яті (DMA); адреси портів вводу/виводу. Канали переривань являють собою провідники на системній платі з відповідними контактами в роз`ємах. Після отримання запиту на переривання процесор виконує спеціальну процедуру обробки переривань, в якій міститься список адрес пам`яті, що відповідають каналам переривань. Відповідно до номера переривання запускається спеціальна програма його обробки, тобто для кожного переривання є своя програма обробки. Адреси пам`яті, за якими знаходяться програми обробки визначають вказівними в таблиці векторів. Після виконання необхідних дій по обслуговуванню пристрою, який подав запит на переривання, програма обробки повертає із стеку вміст внутрішніх регістрів процесора та передає керування програмі, яка виконувалась раніше. Таким чином, система переривань дозволяє процесору своєчасно реагувати на події в системі, які є зовнішніми відносно процесора. Апаратні переривання мають свої пріоритети (ієрархію пріоритетів). В ієрархії пріоритетів чим менший номер переривання, тим вищий пріоритет. В комп`ютері з цієї причини виникають вкладені переривання. Це приводить до того, що стек переповнюється і ПК зависає. Для того, щоб уникнути таких ситуацій намагаються збільшити розмір стеку. На шині ISA можуть виникати ситуації, коли декілька плат (адаптерів) використовують один канал переривання. В такому випадку необхідно додатково (або вручну) налагодити цей пристрій на окремий канал переривання. В шинах розширення PCI дозволяється використання одного каналу переривання для кількох пристроїв на відміну від ISA. Шина PCI підтримує апаратні переривання, які використовують встановлені пристрої. Ці переривання називаються : INTA # ; INTB # ; INTC # ; INTD # . Починаючи з операційної системи Windows 95 підтримуються функції керування перериваннями. Для того, щоб операційна система могла використовувати ці функції, BIOS повинна підтримувати специфікацію Plug and Play. В загальному випадку системні BIOS автоматично встановлюють номери переривань встановленим пристроям. У випадку, коли закінчується переривання, можливий автоматичний перерозподіл на шині PCI. Керування перериваннями здійснюється за допомогою кількох таблиць, наприклад ОС Windows для того, щоб знайти необхідні параметри розглядає таблиці переривань. Шина PCI дозволяє використовувати 2 типи пристроїв: Master (ініціатор), Slave (одержувач). Шиною PCI керує арбітр, який є частиною контролера шини PCI. Він керує доступом до всіх пристроїв шини PCI. Для того, щоб ініціатор міг отримати шину, йому необхідний дозвіл від арбітра, який є в свою чергу частиною контролера PCI. Програмований ввід/вивід, коли операція виконується під контролем програмного забезпечення; При реалізації методики програмного вв/вив існує досить тісний зв’язок між інструкціями вв/вив, які процесор вилучає із виконуваної програми, і команди, які він передає модулю вв/вив в процесорі обробки інструкцій. Можна сказати, що набір інструкцій вв/вив відображається на наборі команд і між ними існує практично однакове співвідношення. Формат інструкцій залежить від способу адресації зовнішніх пристроїв. В обчислювальних системах, в яких процесор , оперативна пам’ять і модулі вв/вив використовують для обміну інформації єдину системну магістраль, можливо два режими адресації: зміщений і ізольований. Зміщений режим передбачає, що для адресації комірок пам’яті і зовнішніх пристроїв використовують єдине адресний простір. Ізольований режим адресації вв/вив адресний простір пам’яті і регістрів зовнішніх пристроїв розділені. Введення/введення по перериванню, при якому програма користувача запускає процес обміну, а потім переключається на виконання інших задач, поки її не перерве апаратура підсистеми введення/введення і не повідомить про завершення процесу обміну; 14. Організація введення-виведення в режимі прямого доступу до пам’яті. Робота контролера прямого доступу до пам’яті. Канали прямого доступу до пам’яті. Пристрої введення/введення забезпечують взаємодію комп’ютерної системи з зовнішніми пристроями. Архітектура підсистеми введення/виведення проектується таким чином, щоб підтримати системними засобами процедури обміну даними із зовнішніми пристроями і подати операційній системі інформацію, яка необхідна для ефективного керування введення/введення. Одним зі способів операцій введення/введення є прямий доступ до пам ’яті, коли спеціалізований процесор модуля підсистеми введення/введення приймає на себе всі дії по передачі інформації між оперативною пам’яттю комп’ютера і зовнішнім пристроєм. Під системними ресурсами розуміють: адреси пам'яті; канали запитів переривань (TRQ); канали прямого доступу до пам'яті (DMA); адреси портів вводу/виводу. В даному перерахунку системні ресурси розміщені в порядку зменшення ймовірності виникнення конфліктів. При кількісному порівнянні конфліктів IRQ і DMA можна прийти до висновку, що конфліктів, иов'язаних з ресурсами IRQ, виникає значно більше, ніж з ресурсами DMA, оскільки переривання запитуються частіше. Канали прямого доступу до пам'яті (DMA) використовуються пристроями, котрі здійснюють високошвидкісний обмін даними. Один канал DMA може використовуватись різними пристроями, але не одночасно. У випадку використання одного каналу DMA, наприклад, мережним адаптером і накопичувачем на магнітній стрічці при роботі в мережі не можна записувати інформацію на магнітну стрічку. Для цього кожному адаптеру необхідно виділяти свій канал DMA. При прямому доступі кожний запис має свою унікальну адресу, що відповідає її фізичному положенню на носії. Доступ здійснюється прямим зверненням до зони носія, в якій знаходиться адресований запис, и далі послідовно переглядаються записи всередині цієї зони, поки механізм читання/запису не буде суміщено із шуканим записом. Прямий доступ реалізований у конструкція тих зовнішніх ЗП, які використовують у якості носія диски з концентричними носіями. Канали прямого доступу до пам'яті (DMA) використовуються пристроями, що здійснюють високошвидкісний обмін даними. Послідовний і паралельний порти, наприклад, не використовують DMA, на відміну від звукової плати чи адаптера SCSI. Один канал DMA може використовуватися різними пристроями, але не одночасно. Наприклад, канал DMA 1 може використовуватися як мережевим адаптером, так і накопичувачем на магнітній стрічці, але ви не зможете записувати інформацію на стрічку при роботі в мережі. Для цього кожному адаптеру необхідно виділити свій канал DMA. Канали DMA 8-розрядної шини ISA. У цій шині для швидкісної передачі даних між пристроями вводу-виводу і пам'яттю можна використовувати чотири канали DMA. Стандартний розподіл цих каналів приведене в таб.
Канал DMA Стандартна функція Тип слота (адаптера) 0 Регенерація динамічної пам'яті
Нет 1 Доступний
8-розрядний 2 Контролер гнучких дисків 8 3 Контролер жорсткого диска 8
15. Розподіл простору пам’яті комп’ютера й зовнішніх пристроїв. Непряма адресація. Регістри стану зовнішніх пристроїв. Взаємодія зовнішніх пристроїв з центральним процесором в режимі програмного управління введенням-виведенням. Прямая адресация. В этом типе адрес данных сам является частью инструкции. Когда процессор декодирует инструкцию, он получает адрес ячейки памяти, откуда может быть считана (куда может быть записана) требуемая информация. Mov Reg. [Addr] В данном случае операнд Addr указывает на область памяти, содержащее данные и копирует их в указанный регистр Reg. Непряма адресация. В этом случае адрес может храниться в регистре. Инструкции будут обращаться к регистру, содержащему адрес. То есть, для получения данных, инструкция должна декодировать данные соответствующего регистра. Содержимое регистра будет обработано как адрес, используя который, будет считана/записана информация из/в соответствующую область памяти. Программно-управляемая передача данных осуществляется при непосредственном участии и под управлением процессора. Например, при пересылке блока данных из периферийного устройства в оперативную память процессор должен выполнить следующую последовательность шагов: 1.сформировать начальный адрес области обмена ОП; 2.занести длину передаваемого массива данных в один из внутренних регистров, который будет играть роль счетчика; 3.выдать команду чтения информации из УВВ; при этом на шину адреса из МП выдается адрес УВВ, на шину управления - сигнал чтения данных из УВВ, а считанные данные заносятся во внутренний регистр МП; 4.выдать команду записи информации в ОП; при этом на шину адреса из МП выдается адрес ячейки оперативной памяти, на шину управления - сигнал записи данных в ОП, а на шину данных выставляются данные из регистра МП, в который они были помещены при чтении из УВВ; 5.модифицировать регистр, содержащий адрес оперативной памяти; 6.уменьшить счетчик длины массива на длину переданных данных; 7.если переданы не все данные, то повторить шаги 3-6, в противном случае закончить обмен. Как видно, программно-управляемый обмен ведет к нерациональному использованию мощности микропроцессора, который вынужден выполнять большое количество относительно простых операций, приостанавливая работу над основной программой. При этом действия, связанные с обращением к оперативной памяти и к периферийному устройству, обычно требуют удлиненного цикла работы микропроцессора из-за их более медленной по сравнению с микропроцессором работы, что приводит к еще более существенным потерям производительности ЭВМ. Как правило, регистры внешних устройств имеют четные адреса, однако при помощи байтовых команд можно обращаться к любому байту 16- разрядного регистра. Каждое внешнее устройство может иметь несколько различных регистров. Регистр состояния (РС) содержит информацию об операции, выполняемой внешним устройством, характеризует состояние внешнего устройства и участвует в операциях по предоставлению прерывания. Таблица 3. Формат регистра состояния порта принтера
6. Основні характеристики набору машинних команд. Формати операндів. Формат машинної команди. Формат адресної частини команди. Розподіл полів в команді. Принципи організації нуль-, одно-, двох-, і трьохадресного формату команд Визначення формату адресної частини команди – це один з головніших питань при проектуванні системи команд нового процесора. Чим менша кількість адресних полів в коді команди, ти простіший набір команд і тим простіший процесор. Але з іншої сторони, для програмування алгоритму прийдеться використовувати велику кількість простих команд. Раціональний вибір формату адресної частини набору команд ускладнений декількома факторами. Необхідно все-таки визначити чи вміст поля адреси в команді відноситься до оперативної пам’яті, чи до регістрів процесора. Оскільки регістрів в процесорі значно менше, чим комірок в оперативній пам’яті, код адреси регістру значно коротші. Крім того в команді повинно бути передбачено декілька режимів інтерпретації вмісту поля адреси (режимів адресації), и специфікація конкретного режиму також займає визначене місце у форматі команди. Операції, які виконуються центральним процесором визначаються набором машинних команд (machine instruction set). Кожна машинна команда повинна містити інформацію, яка необхідна однозначної його інтерпретації і виконання процесором. На рис. 1 показано основні етапи виконання машинної команди, які неявно визначають склад інформації в ній. Компонентами машинної команди являються: код операції – визначає, які саме перетворення повинен виконувати процесор з переданими йому елементами даних; посилання на операнд – джерело – в процесі виконання машинної команди одні дані перетворюються в інші. Дані, які перетворюються, - операнди повинні бути специфіковані; посилання на результат – визначає, що зробити з результатом перетворення операндів (куди помістити); посилання на наступну виконувану команду – визначає, звідки центральний процесор повинен вилучити наступну команду після завершення поточної.
Інформація про операнди і результат операції в машинній команді може знаходитися: оперативна або віртуальна пам’ять – як у випадку з адресом наступної команди, інформація про розміщення операндів або результату може мати вид адреса в оперативній чи віртуальній пам’яті; регістр ЦП – мають один або декілька регістрів, на які можна посилатися в машинній команді; пристрій введення/виведення – деякі команди в якості операнда або результату використовують модуль або пристрій введення/виведення. В комп’ютері кожна машинна команда представлена двійковим кодом, розділена на поля. Програмісту важко розробляти програму на рівні машинної команди і оперувати з двійковими кодами, тому на практиці використовують символьне представлення. Коди операцій представляють: ADD – додавання; SUB – віднімання (скорочення від subtract); MUL – множення (скорочення від multiply); DIV – ділення (скорочення від divide); LOAD – завантаження елемента даних із пам’яті; STOR – збереження елемента даних в пам’яті. Розрізняють такі типи команд: - арифметичні команди призначені для перетворення числових даних; - логічні операції працюють з окремими бітами даних, які представлені в двійковому коді; - команди керування введенням/виведенням необхідні для організації обміну з зовнішніми пристроями; - команди перевірки і аналізу використовують для аналізу елементів даних і стану обчислювального процесу; - команди розгалуження (умовного і безумовного переходів) використовуються для зміни ходу обчислювального процесу в залежності від поточних результатів арифметичних і логічних операцій. Із бурхливим розвитком комп’ютерної техніки появились класифікації обчислювальних комп’ютерів, які розрізняють по адресних компонентах в форматі машинної команди – поділялись на нуль-, одно-, двох-, і трьохадресні (рис. 2). В команді для відомостей про тип операції та адресної інформації про знаходження оброблених даних, а також про інформацію знаходження результату виділяються розряди (поля).
Форматом команди називають завчасно обговорену структуру полів в її кодах, які дозволяють комп’ютерам розпізнавати складові частини коду. Головним елементом коду команди являється код операції (КОП), що визначає, які дії будуть виконуватися по заданій команді. Під нього виділяється N старших розрядів формату. Розподілення полів в форматі команди може змінюватися при зміні способу адресації, а довжина команди залежить від числа адресних полів. Довжина коду команди вимірюється в машинних словах. Множина створюваних машинних дій утворює її систему команд. Система команд часто визначає область і ефективність застосування комп’ютерів. Склад і число команд, які орієнтовані на стандартний набір операцій, які використовуватимуться для вирішення задач. На рис. 3 представлено послідовності команд трьох видів (одно-, двох-, і трьохадресні) необхідні для виконання обчислень Y=(A-B)/(C+D*E).
В трьохадресній команді спеціалізується розміщення в пам’яті двох операндів і результату виконання команди. Оскільки не бажано в процесі обчислень змінювати значення вихідних даних, для збереження проміжних результатів використовується комірка за адресою Т. Слід звернути увагу, що у вихідному виразі є п’ять операндів, а для його реалізації необхідна послідовність з чотирьох. Оскільки трьохадресний формат потребує щоб в кожній команді хватало місця для трьох полів адреси, довжина такої команди досить велика. Тому такий формат використовується рідко. В двоадресних командах бінарних арифметичних і логічних операцій одно поле адреси має подвійне призначення – воно спеціалізує адресу одного з операндів і адрес результату. Так, команда SUB Y,B задає обчислення значення Y-B і зберігає результати за адресою Y. Довжина двохадресної команди менше трьохадресної, але у цього формату є інший недолік – деколи, щоб не „запортити” значення операндів, приходиться переписувати їх за допомогою команди MOVE у вільні комірки пам’яті. Найбільш короткий формат мають одноадресні команди. Адреса другого операнда для бінарних операцій задається неявно. Такий формат часто використовується обчислювальними машинами першого покоління, в яких в якості неявно заданого місця зберігання другого операнда і результату використовується спеціальний регістр – акумулятор (АС). Можна реалізувати деякі обчислення операції навіть за допомогою нульадресних команд, в яких поле адреси взагалі відсутнє. Для цього необхідно спеціальної форми організації пам’яті – стекова організації. Стек являє собою список, що працює за принципом LIFO (last-in-last-out). Набір машинних команд впливає на багато характеристик обчислювального комплексу. Вибраний набір команд в основному визначає склад функцій процесора, а відповідно – і його структурну і схемну реалізацію. Від вибраного набору команд в значній мірі залежать і можливість контролювати з сторони програми весь обчислювальний процес, тому при проектування набору команд необхідно врахувати: • набір операцій, що реалізуються на апаратному рівні процесором у відповідності з машинними командами, кількість операцій, степінь їх складності; • типи даних, над яким виконуються операції на рівні машинних команд; • формат команд – довжина коду команди, кількість адресних полів, розміри окремих полів і т.д.; • регістри – кількість регістрів процесора і операції, які можна виконувати з їх вмістом; • режими адресації – способи (або спосіб) інтерпретації вмісту полів адресної частини команд набору.
|
|
| |
|
|
|