- •Перелік питань до екзамену з курсу «Архітектура комп’ютерних систем»
- •33.Що таке командний цикл і як він пов'язаний з тактовою частотою -
- •36.Як представляють числа з плаваючою комою у пеом? -
- •48.Які типи адресних просторів Ви знаєте? -
- •54.Які мінімальні та максимальні розміри сторінки і сегмента 32-розрядного процесора? -
- •61.Яка відмінність між скалярним і суперскалярним процесором?
- •86.Назвіть режими адресування 32-розрядного процесора фірми Intel.
- •88.Які головні відмінності між 32 та 64-розрядними мікропроцесорами?
- •96.Обмеження операційних систем на архітектури amd64 та Intel 64.
86.Назвіть режими адресування 32-розрядного процесора фірми Intel.
87.У чому полягає суть архітектури процесора Pentium IV? +
У серпні 2000 р. оголошено про випуск процесора Pentium IV. Розробники намагались якнайліпше наблизити процесор до його застосування у сфері Інтернету, опрацювання зображень, розпізнавання мови, відеопотоків, 3D графіки, мультимедіа та багатозадачних обчислювальних середовищ. Застосовано нову
мікроархітектуру NetBurst, яка повинна забезпечити зростання продуктивності й тактової частоти на перспективу.
Суть нової мікроархітектури NetBurst:
• застосовано технологію Hyper Pipelined (гіперконвеєр), тобто подвоєно до 20 етапів довжину конвеєра;
• подвоєно, порівняно з ядром процесора, тактову частоту роботи арифметико-логічних блоків. Це дозволяє процесору виконувати деякі команди за половину такту, а цілочислові операції виконувати з подвоєною швидкістю;
• вдосконалено системну шину (400 МГц), яка втричі швидша від шини процесора Pentium III. Швидкість передавання даних між процесором Pentium IV і контролером пам’яті досягає 3,2 Гбайти/с;
• кеш-пам’ять процесора має 64-байтовий доступ (попередні процесори мали 32-байтовий доступ). У кеші першого рівня зберігають декодовані команди (приблизно 12000 мікрокоманд), що помітно поліпшує швидкодію кешу й збільшує ефективність його використання. Pentium IV містить кеш другого рівня ємністю 256 Кбайт та швидкістю передавання даних 48 Гбітів/с;
• вдосконалено систему динамічного виконання команд та покращено схеми передбачення розгалужень у програмі;
• додано 144 нових SIMD команди (128-розрядних), які дозволяють суттєво пришвидшити роботу різних програм.
88.Які головні відмінності між 32 та 64-розрядними мікропроцесорами?
89.Які головні відмінності між CISK та RISC-архітектурою МП? +
CISK-архітектура (Complex Instruction Set Computing). Це родина Intel x86 (правда, останні моделі 486 та 586 мають деякі вкраплення RISC-архітектури) та МП фірми Motorola родини 68 К.
МП з архітектурою RISC (Reduced Instruction Set Computer) використовують порівняно невеликий (скорочений) набір найуживаніших команд. Цей набір визначено внаслідок статистичного
аналізу значної кількості програм для головних галузей застосування CISC-процесорів. Особливості RISC-архітектури ті, що всі команди мають однаковий формат, працюють з операндами, які розташовані у регістрах процесора. Звертання до пам'яті виконується за допомогою спеціальних команд завантаження регістра і запису. Невеликий набір команд і простота їхньої структури дають змогу реалізувати повністю апаратне виконання й ефективний конвеєр з порівняно незначним об'ємом обладнання. Завдяки цьому команди виконуються в 2-4 рази швидше, ніж у звичайних CISC з тою ж тактовою частотою. Продуктивність такого процесора на 30% більша ніж звичайного.
Перші експериментальні МП (RISC II, MIPS, IBM 801) з’явилися ще у 1980-81 рр. Мікропроцесорну революцію продовжили провідні фірм у 1985-86 рр. (Acorn, AMD, IBM, Sun Microsystems).
Головно це тримікронна СМОS технологія, розрядність шини даних 32 розряди.
Сьогодні RISC-процесори здебільшого використовують для побудови співпроцесорів та спецпроцесор
90.Для чого потрібні регістри TR? +
У захищеному режимі є чотири спеціальні регістри для звертання до таблиць або сегмента
GDTR – до таблиці глобального дескриптора GDT;
IDTR – до таблиці дескриптора переривань IDT;
LDTR – до таблиці локального дескриптора LDT;
TR – до сегмента стану задачі TSS.
Регістрі TR містить 16-бітові адреси сегментів для TSS. Сегмент TSS є сегментаом специфічних задач, визначений адресою, що поміщена в регістри системного сегмента.
Отже TR – регістр призначений для тестування. Тестові регістри МП 80386 використовуює тільки два регістри для керування і тестування сторінкової переадресації. TR6 –регістр тестування команд, а TR7 – регістр даних,
який зберігає результат тестування буфера асоціативної трансляції.
Два тестові регістри забезпечені засобами написання зразка в TLB і зчитуванням результату. Тестові регістри дають змогу провадити два види операцій з TLB. Запис у регістр тестової команди через команду MOV TR0, (регістр) приводить до виконаня операції TLB. Якщо біт 0 дорівнює 1, то виконуватиметься шукання TLB.
91.Головні характеристики архітектури AMD64. +
Архітектурні особливості
Основною визначальною характеристикою AMD64 є наявність 64-бітових регістрів загального призначення
(наприклад, RАX і RBX), арифметичних і логічних операцій над 64-бітними числами, а також 64-бітових
віртуальних адрес.
64-розрядні цілі числа
Всі регістри загального призначення (GPRS) розширені з 32 біт до 64 біт, і всі арифметичні і логічні
операції, пам'ять-регістр і регістр-пам'ять і т.д., тепер можуть працювати безпосередньо з 64-
розрядними цілими числами. Заштовхування і виштовхування у стек можливе 8 байтовими кроками, і
вказівники мають розмір 8 байт.
Додано регістри
На додаток до збільшення розміру регістрів загального призначення, кількість регістрів загального
призначення збільшується з восьми (тобто EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI) в x86 до 16
(тобто RАX , RBX, RCX, RDX, RBP, RSP, RSI, RDI, R8, R9, R10, R11, R12, R13, R14, R15). Таким
чином, можна зберегти більше локальних змінних в регістрах, а не в стеку, і утримувати в регістрах
часто використовувані константи; Аргументи для невеликих і швидких підпрограм також можуть бути
передані в регістрах більшою мірою.
AMD64 має менше регістрів, ніж багато RISCподібних (які зазвичай мають 32 регістри) або VLIW
машин - таких як IA-64 (який має 128 регістрів). Проте, реалізація AMD64 може мати набагато більше
внутрішніх регістрів, ніж кількість архітектурних регістрів, доступних в наборі команд.
Додано XMM (SSE) регістри
Крім того, число 128-бітних регістрів XMM (використовується для Streaming SIMD інструкцій) також
збільшилося з 8 до 16 (XMM0 — XMM15).
Великий віртуальний адресний простір
Архітектура AMD64 визначає формат віртуального адресного простору 64-бітовим, з яких молодші 48
біт використовуються в поточних реалізаціях. Це дозволяє мати до 256 ТБ (248 байт ) віртуального
адресного простору. Визначена архітектура дозволяє використати цю межу в майбутніх реалізаціях
повною мірою (до 64 біт), тобто розширення віртуального адресного простору для 16EB (264 байт).
Порівняйте з 4 ГБ (232 байт) для x86.
Великий фізичний адресний простір
Оригінальна архітектура AMD64 реалізована на 40-розрядних фізичних адресах і тому може
адресувати до 1 ТБ (240 байт) оперативної пам'яті. Поточні реалізації архітектури AMD64 (починаючи з
мікроархітектури AMD 10h ) розширені до 48-бітних фізичних адрес і, отже, можуть адресувати до 256
Тбайт ОЗУ. Архітектурні можливості, що зараз розглядаються, це 52 біт в майбутньому (обмежується форматом запису таблиці сторінок); Це дозволить отримати до 4 PB оперативної пам'яті. Для порівняння, 32-розрядні процесори x86 обмежені 64 ГБ оперативної пам'яті в режимі продовженої фізичної адреси (PAE), або 4 Гб оперативної пам'яті без режиму PAE.
Великий фізичний адресний простір в стандартному режимі
При роботі в стандартному режимі архітектура AMD64 підтримує Physical Address Extension режим
(PAE), як і більшість сучасних процесорів x86, але AMD64 поширюється PAE з 36 бітів архітектурної
межі до 52 біт фізичної адреси.
Вказівник команд
Тепер Інструкції можуть посилатися на дані, які визначаються 64-бітовим вказівником команд (RIP
регістр). Це робить Position Independent код, який часто використовується в більш ефективних
поділюваних бібліотеках і кодах, завантажуваних під час виконання.
Інструкції SSE
SSE (англ. Streaming SIMD Extensions, потокове SIMD-розширення процесора) — це SIMD набір інструкцій,
розроблених Intel, і вперше представлених у процесорах серії Pentium III як відповідь на аналогічний набір
інструкцій 3DNow! відAMD, який був представлений роком раніше. Оригінальна архітектура AMD64 прийняла від Intel SSE і SSE2 в якості основних інструкцій. Ці набори інструкцій забезпечують векторний додаток до скалярних x87 FPU, для одинарної точності і типів даних з подвійною точністю. SSE2 також пропонує цілий набір операцій для типів даних, починаючи від 8bit до 64bit. Це робить векторні можливості архітектури на одному рівні з передовими свого часу процесорами x86. Ці інструкції можуть бути також використані в 32-бітному режимі, що дозволяє покращення стандартів 32-бітних додатків 32-розрядної версії Windows 8. SSE3 інструкції та останні Streaming SIMD Extensions набори інструкцій не є стандартними особливостями архітектури.
No-Execute bit
Апаратний NX-Bit (No eXecute Bit в процесорах AMD), або XD-Bit (Execute Disable Bit в процесорах Intel) це
технологія, яка запобігає можливості виконання даних як коду. Біт "NX" (біт 63 запису таблиці сторінок)
дозволяє операційній системі вказати, які сторінки віртуального адресного простору може містити виконуваний код, а які ні. Спроба виконати код з сторінки, не поміченої " виконуваною" призведе до
порушення доступу до пам'яті, подібно спробі записати на сторінку тільки для читання. Аналогічна функція була доступна на процесорах x86 з моменту 80286 в якості ознаки дескрипторів сегментів. Сегментовані рішення вже давно вважаються застарілим режимом роботи, і всі нинішні операційні системи в силі обійти його, встановлюючи всі сегменти базової адреси в нуль (в реалізації 32 біт) і обмежитися розміром 4 ГБ. AMD був першим x86 сім'ї, який відмовився від режиму лінійної адресації.
Видалення старих функцій
Кілька «Системних функцій» архітектури x86 не використовуються в сучасних операційних системах і не доступні на AMD64 в довгому режимі (64-бітному і сумісному). Вони включають в себе сегментовану адресацію (хоча сегменти FS і GS зберігаються в залишковому вигляді для використання в якості додаткових базових вказівників в операційній системі), механізм task state switch, і віртуальний режим 8086 . Ці особливості залишаються повністю реалізовані в "стандартному режимі", що дозволяє процесорам працювати як з 32-розрядними, так і 16-бітовими операційними системами без змін. Деякі інструкції, які рідко використовуються, не підтримуються в 64-бітному режимі, у тому числі збереження / відновлення сегментних регістрів в стеку, збереження / відновлення всіх регістрів (PUSHA / POPA), десяткової
арифметики, і "дальні "стрибки з безпосередніми операндами.
Віртуальний адресний простір (подробиці)
Хоча віртуальні адреси дорівнюють 64 біти в 64-бітному режимі, поточні реалізації не дозволяють використовувати весь віртуальний адресний простір з 264 байт (16 EB). Це було б приблизно в чотири мільярди разів більше за розмір віртуального адресного простору на 32-розрядних машинах. Більшості операційних систем і додатків не потрібний такий великий адресний простір в осяжному майбутньому, тому реалізації такого широкого віртуального адресного простору просто збільшують складність і вартість трансляції адрес без реальної користі. Тому AMD вирішила, що в перших реалізаціях архітектури, тільки молодші 48 біт віртуальної адреси буде використано в трансляції адрес ( в таблиці сторінок пошуку).
92.Суть операції No eXecute Bit у процесорах AMD. +
No-Execute bit
Апаратний NX-Bit (No eXecute Bit в процесорах AMD), або XD-Bit (Execute Disable Bit в процесорах Intel) це технологія, яка запобігає можливості виконання даних як коду. Біт "NX" (біт 63 запису таблиці сторінок) дозволяє операційній системі вказати, які сторінки віртуального адресного простору може містити виконуваний код, а які ні. Спроба виконати код з сторінки, не поміченої " виконуваною" призведе до порушення доступу до пам'яті, подібно спробі записати на сторінку тільки для читання. Аналогічна функція була доступна на процесорах x86 з моменту 80286 в якості ознаки дескрипторів сегментів. Сегментовані рішення вже давно вважаються застарілим режимом роботи, і всі нинішні операційні системи в силі обійти його, встановлюючи всі сегменти базової адреси в нуль (в реалізації 32 біт) і обмежитися розміром 4 ГБ. AMD був першим x86 сім'ї, який відмовився від режиму лінійної адресації.
93.Адресування у межах «канонічної форми» +
Специфікація AMD вимагає, щоб біти з 48 до 63 будь-якої віртуальної адреси повинні бути копіями біта 47, інакше процесор згенерує виняток. Адреси, сформовані за дотримання цього правила, називають "канонічною формою." Ця функція полегшує масштабованість, правда 64-розрядної адресації. Багато операційних систем (у тому числі, і сім'я Windows NT ) залишають верхню половину адресного простору (простір ядра ) для себе і віддають нижню адресну половину ( простір користувача ) для коду програми, в режимі користувача . Стеки, купи та інші області даних гарантує дизайн "канонічних адрес", так що кожна сумісна реалізація AMD64 має, по суті, дві половинки пам'яті: нижня половина починається з 00000000'00000000 і "росте вгору", як більш віртуальна адреса. Крім того, дотримання «канонічної форми» адрес, перевіряючи невикористовувані біти адреси запобігає їх використання операційною системою в помічених вказівниками , як ознаки, привілеїв маркерів і т.д., а таке використання може стати проблематичним, коли архітектура має продовжений до реалізації більш віртуальний біт адреси.
94.Режими роботи AMD64. +
Архітектура має два основні режими роботи, тривалий (довгий) і спадковий (Legacy).
Довгий режим (Long Mode) Основний режим роботи - це поєднання режиму 64-бітного процесора і режиму комбінованої 32-бітної і 16-бітної сумісності. Він використовується 64-розрядними операційними системами. Під 64-бітною операційною системою 64-бітові програми працюють в 64-бітному режимі, і 32-бітові та 16-бітові додатки у захищеному режимі (які не повинні використовувати або реальний режим або віртуальний режим 8086) запускають в режимі сумісності. Програми та програми реального режиму, які використовують віртуальний режим 8086, не можуть працювати в тривалому режимі, якщо ці режими не емулюються програмно. Однак, такі програми можуть бути запущені з операційної системи, що працює в тривалому режимі на процесорах підтримка VT-X або AMD-V , створюючи віртуальний процесор, що працює в потрібному режимі. У основному режимі майже немає втрати продуктивності для виконання захищеного коду режиму x86. Це на відміну від Intel IA-64 , де відмінності в наборі базових інструкцій означають, що для запуску 32-бітного коду він повинен бути виконаний або в режимі емуляції х86 (що робить процес повільнішим) або виділеного процесора x86. Тим не менше, на платформі x86-64 багато додатків x86 могли б виграти від 64-бітної перекомпіляції через додаткові регістри в 64-бітному коді і гарантованої SSE2 підтримки FPU, які компілятор може використовувати для оптимізації. Однак, для додатків, які повинні регулярно обробляти цілі числа ширші, ніж 32 біти, такі як криптографічні алгоритми, знадобиться переписати код обробки великих чисел для того, щоб скористатися 64-розрядними регістрами.
Спадковий режим (Legacy Mode) Режим, який використовується у 16-бітовому («захищеному режимі» або «реальному режимі») 32-бітових операційних систем. У цьому режимі процесор працює як 32-бітний процесор x86, і тільки 16-розрядний і 32-бітний код може бути виконаний. Застарілий режим дозволяє використовувати максимум 32 біт віртуальної адресації, що обмежує віртуальний адресний простір 4 Гб. 64-розрядні програми не можуть бути запущені у стандартному режимі.
95.Відмінності між AMD64 і Intel 64. +
Хоча вони майже ідентичні, є деякі відмінності між цими двома наборами команд в семантиці кількох рідко
використовуваних машинних інструкцій, які в основному використовуються для системного програмування .
Компілятори зазвичай продукують виконувані файли (тобто машинний код ), які уникають будь-яких відмінностей, принаймні для звичайних прикладних програм. Ці відмінності, становлять інтерес головним чином для розробників компіляторів, операційних систем і їм подібних, які повинні мати справу з індивідуальними і спеціальними інструкціями системи.
В останніх реалізаціях
Intel 64 в BSF і BSR інструкціях (Bit Scan Forward) діє по-іншому, ніж AMD64-х, коли джерела дорівнюють
нулю, і розмір операнда дорівнює 32 біт. Процесор встановлює ознаку нуля і залишає верхні 32 бітів
призначення не визначеними.
AMD64 має інший формат оновлення мікрокоду та контролю MSRs (модель-специфічних регістрів), тоді
як Intel 64 знаряддя поновлення мікрокоду змінив тільки порівняно з 32-бітними процесорами.
Intel 64 не вистачає деяких MSRs, які вважаються архітектурними в AMD64. Вони включають в себе
SYSCFG, TOP_MEM і TOP_MEM2.
Intel 64 дозволяє SYSCALL / SYSRET тільки в 64-бітному режимі (не в режимі сумісності), і дозволяє
SYSENTER / SYSEXIT в обох режимах. AMD64 не вистачає SYSENTER / SYSEXIT в обох підрежимах
тривалого режиму .
У 64-бітному режимі префікс 66h (префікс розміру операнда) веде себе по-різному. Intel 64 ігнорує цей
префікс, а AMD64 використовує 16-бітовий зсув поля в інструкції, і очищає верхні 48 біт вказівника
інструкцій.
Процесори AMD мають кращі можливості виконання команд з плаваючою комою. Невірний виняток при
виконанні FLD або FSTP з 80-бітами сигналізує NaN, в той час як процесори Intel цього не мають.
У Intel 64 відсутня можливість збереження і відновлення режиму з плаваючою комою (залучення FXSAVE
іFXRSTOR інструкцій).
Останні процесори AMD64 знову мають обмежену підтримку сегментації, через довгий режим (LMSLE),
щоб полегшити віртуалізацію для 64-розрядних гостей.
