Охарактеризуйте види переривань
Залежно від джерела переривання поділяються на три види: зовнішні;
внутрішні; програмні.
Зовнішні переривання можуть виникати від апаратних пристроїв, вони повідомляють про чимось, що вимагає уваги процесора. Так само вони можуть виникати в результаті дій користувача за клавіатурою. Так само ці переривання називають апаратними, так як виникають після подачі пристроєм електричного сигналу, який подається на спеціальний вхід переривання процесора.
Внутрішні переривання можуть бути викликані при виявленні помилки при виконанні програми. Аналогічна ситуація може виникнути і в комп'ютері. Процесор може зустріти команди, не мають для нього ніякого сенсу, або дані, які не можна обробити. Наприклад, нульовий дільник, помилки захисту пам'яті, звернення за неіснуючою адресою, спроба виконати привілейовану інструкцію в режимі користувача і т.п. У докладних ситуаціях процесор генерує переривання, зване особливим випадком або виключенням.
Переривання третього виду не виникають непередбачено. Ідея переривань настільки потужна, що за допомогою переривання програми можуть запросити обслуговування, виконувані іншими програмами. Програмні переривання виникають при виконанні особливої команди процесора і являють собою зручний спосіб виклику процедур ОС. Механізм переривань
Механізм переривань підтримується апаратними засобами комп'ютера і програмними засобами ОС.
7) Обґрунтуйте, де містяться адреси програм, що обслуговують переривання.
8) Охарактеризуйте, як викликаються програмні переривання.
Програмні переривання викликаються незвичайними ситуаціями, що виникають при виконанні програми. Програмні переривання є наслідком помилок у програмі. Вони можуть з'явитися при порушенні захисту пам'яті,використанні неіснуючих кодів операції або адрес, переповненні розрядної сітки при виконанні різних арифметичних операцій і в деяких інших випадках. Програмні переривання, пов'язані з помилками при виконанні окремих команд.
Прикладвиконання фрагмента програми на конвеєрі. Програмне переривання використовується для організації точок зупину. При трасуванні інструкції виконуються в покроковому режимі. Програмні переривання виникають при виконанні команди в разі неправильноїспецифікації або неправильного використання команд. До них відносяться, наприклад, використання коду операції, якому не відповідає ніяка операція, або використання привілейованої команди не в режимі управління, або звернення в область пам'яті, захищену відзвернення.
9) Охарактеризуйте абсолютну пряму адресацію.
Абсолютна (пряма) адресація пам'яті — метод адресації пам'яті, в якому ефективна адреса операнда записується безпосередньо в команді.
Для великої розрядності пам'яті це потребує досить великого поля команди. Тому в CISC-машинах, де допускається змінна довжина команди, цей метод адресації реалізований як правило безпосередньо, а в деяких RISC-машинах, де довжина поля адреси обмежена, вона завантажується частинами в один з вільних регістрів, а потім використовується регістрова адресація (яка в свою чергу в RISC-машинах реалізується на базі адресації за зсувом з нульовим значенням зсуву). Абсолютною адресацією також називають спосіб знаходження наступної команди в командах переходу (наприклад, безумовного переходу), коли ефективна адреса наступної команди міститься повністю у відповідному полі команди переходу, або міститься там частково та обчислюється за встановленими правилами.
Наприклад, в багатьох 32-бітних RISC-архітектурах, ефективна адреса наступної команди обчислюється як об'єднання чотирьох старших біт з лічильника команд та 28 біт молодших біт, які містяться в команді переходу. Це дозволяє переходити на будь-яку команду в межах 256-мегабайтного діапазону. При прямій (або абсолютній) адресації в адресному полі прямо вказується місце розміщення операнда, тобто виконавча адреса операнда. При цьому можливі два випадки: пряма адресація основної пам’яті ОП, та пряма адресація регістрів регістрового файлу процесора.
10) Охарактеризуйте відносну пряму адресацію.
При відносній адресації для отримання виконавчої адреси операнда вміст D адресного поля команди додається до вмісту програмного лічильника ПЛ. Тобто вміст адресного поля команди є зміщенням відносно адреси поточної команди. Даний тип адресації грунтується на тому, що при вибірці команд звернення відбувається до комірок пам'яті, розміщених поблизу одна від одної. Тим самим зменшується довжина адресної частини команди, оскільки довжина поля зміщення може бути досить малою. Більше того, при переміщенні програми в пам'яті значення зміщення не змінюється, оскільки взаємне розміщення в пам'яті команд програми при цьому не змінюється. Цей тип адресації іще називається відносною адресацією з перемінною базою, оскільки тут в якості регістра бази використаний програмний лічильник і модифікація базової адреси здійснюється автоматично.
11) Охарактеризуйте непряму базову (регістрову) адресацію.
При непрямій адресації в адресному полі вказується місце розміщення адреси операнда, а виконавча адреса знаходиться наступним чином: А = [А1], де А1 - адреса комірки пам’яті, в якій зберігається виконавча адреса. Адреса А із адресної частини АЧ команди поступає на адресні входи основної пам’яті ОП , з відповідної комірки основної пам’яті ОП вибирається адреса операнда, по якій в відповідну комірку або регістр в режимі запису записується операнд із регістра даних РгД, а в режимі зчитування зчитується операнд в регістр даних РгД. Якщо пам’ять може зберігати М слів, то, використовуючи двійкове кодування, необхідно m біт для представлення всіх адрес, де m =]log2M[. Значення в дужках означає більше ціле. Для вибірки операнда необхідно здійснити два звернення до ОП. Для зберігання адрес операнців кожна використати регістровий файл процесора. Якщо регістровий файл може зберігати N слів, то, використовуючи двійкове кодування, необхідно п біт для представлення непрямої адреси в адресній частині команди, де n=]log 2 N [, а розрядність регістрів буде рівною m =]log 2 M [ . Значення в дужках означає більше ціле. Для вибірки операнда необхідно здійснити одне звернення до регістрової нам'яті і одне звернення до основної пам'яті OП. Такий підхід дозволяє при малій розрядності адресної частини команди п звертатися до пам'яті великої ємності маючи велику розрядність регістрів m.
12) Охарактеризуйте непряму базову (регістрову) адресацію із зсувом.
При такій адресації ефективний адреса операнда може перебувати тільки в базовому регістрі bx/ebx. Синтаксично в команді цей режим адресації виражається висновком імені регістру в квадратні дужки [ ]. Наприклад, команда mov ax,[ebx] поміщає в регістр ах вміст слова за адресою сегменту даних зі зміщенням, що зберігаються в регістрі еbх.
Цей вид адресації є доповненням до попереднього і призначений для доступу до даних з відомим зміщенням відносно деякого базового адреси. Цей вид адресації зручно використовувати для доступу до елементів структур даних, коли зсув елементів відомо заздалегідь, на стадії розробки програми, а базовий (початковий) адреса структури повинен обчислюватися динамічно, на стадії виконання програми. Модифікація вміст базового регістра дозволяє звернутися до однойменних елементів різних примірників однотипних структур даних. Команда mov ax,[ebx+3h] пересилає в регістр ах слова з пам'яті за адресою: вміст ebx + 3h. Команда mov ax,mas[bx] пересилає в регістр ах слово за адресою: вміст bx плюс значення ідентифікатора mas.
13) Охарактеризуйте непряму індексну адресацію з зсувом.
Цей вид адресації дуже схожий на непряму базову адресацію зі зміщенням. Тут для формування ефективного адреси операнда-джерела використовується регістр si/esi, а операнда-приймача – регістр di/edi. Але індексна адресація володіє однією цікавою особливістю, яка дуже зручна для роботи з масивами. Вона пов'язана з можливістю так званого масштабування вмісту індексного регістра. На рис. 8.1. нас цікавить байт sib. При обговоренні структури цього байта ми відзначали, що він складається з трьох полів. Одне з цих полів – поле масштабу ss, на значення якого збільшується вміст індексного регістра. У команді mov ax,mas[esi*2] значення ефективної адреси другого операнда обчислюється виразом mas+(esi)*2. У зв'язку з тим що в асемблері немає коштів для організації індексації масивів, програмісту своїми силами доводиться її організовувати. Наявність можливості масштабування суттєво допомагає у вирішенні цієї проблеми, але за умови, що розмір елементів масиву становить 1, 2, 4 або 8 байт.
14) Охарактеризуйте непряму базову індексну адресацію
При цьому виді адресації ефективний адреса формується як сума вмісту двох регістрів загального призначення: базового та індексного. В якості цих регістрів можуть застосовуватися будь-які регістри загального призначення, при цьому часто використовується масштабування вмісту індексного регістра. Наприклад: mov eax,[esi][ebx]. В даному прикладі ефективний адресу другого операнда формується з двох компонентів, (esi)+(ebx).
15) Охарактеризуйте непряму базову індексну адресацію з зсувом
Цей вид адресації є доповненням непрямої індексної адресації. Ефективний адреса формується як сума трьох складових: вміст базового регістра, вмісту індексного регістра і значення поля зсуву в команді. Наприклад, команда mov eax,[esi+5][ebx] пересилає в регістр еах подвійне слово за адресою: (esi) + 5 + (ebx). Команда add ax,array[esi][ebx] виробляє додавання вмісту регістра ах з вмістом слова за адресою: значення ідентифікатора array + (esi) + (ebx).
16) Охарактеризуйте структуру програми на асемблері.
Програма на асемблері являє собою сукупність блоків пам'яті, які називаються сегментами пам'яті. Програма може складатися з одного або декількох таких блоків-сегментів. Кожен сегмент містить сукупність речень мови, кожне з яких займає окремий рядок коду програми. Речення асемблера бувають чотирьох типів: команди або інструкції, що представляють собою символічні аналоги машинних команд. У процесі трансляції інструкції асемблера перетворяться у відповідні команди системи команд мікропроцесора;
дії оформляються певним чином речення тексту програми, замещаемые під час трансляції іншими реченнями; директиви, які є зазначенням транслятору асемблера на виконання деяких дій. У директив немає аналогів у машинному поданні; рядки коментарів, що містять будь-які символи, у тому числі і літери російського алфавіту. Коментарі ігноруються транслятором.
17) Охарактеризуйте типи сегментів оперативної пам’яті.
Типи оперативної пам'яті: Протилежністю до пам'яті з довільним доступом є пам'ять з послідовним доступом. При довільному доступі, пам'ять організована таким чином, що в будь-яку мить можна отримати значення, записане в будь-якій комірці пам'яті, не переглядаючи інші комірки. При пам'яті з послідовним доступом, яка реалізується, наприклад, на магнітній стрічці, для доступу до певного елемента пам'яті потрібно прокрутити стрічку, зчитуючи інші елементи. Види ЗПДД (запам'ятовуючий пристрій з довільним доступом) : Напівпровідникова статична (SRAM) — комірками є напівпровідникові тригери. Напівпровідникова динамічна (DRAM) — кожна комірка є конденсатором на основі переходу КМОН-транзистора. Переваги — низька вартість, великий обсяг. Недоліки — необхідність періодичного прочитування і перезапису кожної комірки — т.з. «регенерації», і, як наслідок, зниження швидкодії, велике енергоспоживання. Процес регенерації реалізується спеціальним контролером, встановленим наматеринській платі або в центральному процесорі. DRAM зазвичай використовується як оперативна пам'ять (ОЗП) комп'ютерів. Феромагнітна — є матрицею з провідників, на перетині яких знаходяться кільця або біакси, виготовлені з феромагнітних матеріалів.
18) Обґрунтуйте, де містяться адреси програмних сегментів.