Формати даних, команд та способи адресації



Зміст 1. Технічне завдання 1.1. Предмет проектування 1.2. Загальні вимоги до розробляється процесору 1.3. Вихідні дані для курсового проектування 1.4. Результати проектування 2. Послідовність виконання курсового проекту 2.1. Уточнення структури системи 2.2. Розробка архітектури зовнішніх висновків 2.3. Вибір форматів даних 2.4. Визначення структури реєстрової пам'яті 2.5. Вибір форматів команд 2.6. Розробка системи команд 2.7. Внутрішня організація 2.8. Основні алгоритми функціонування 2.9. Алгоритми виконання окремих операцій 2.10. Розробка алгоритмів виконання основних операцій на шині 3. Оформлення курсового проекту Література.     Завдання на курсовий проект. У процесі виконання курсового проекту розробляються: 1) формати команд і даних; 2) регістрова модель процесора, включаючи користувацькі і системні регістри; 3) структура висновків кристала; 4) система команд, включаючи семантику їх виконання та встановлення прапорців; 5) узагальнений алгоритм функціонування процесора, включаючи алгоритми виконання основних команд; 6) алгоритми виконання основних операцій на шині (читання, запис, введення, виведення, захоплення шини, переривання), необхідно передбачити пакетний режим обміну між і кеш пам'яттю; 7) внутрішня організація (до структурного рівня), включаючи механізми віртуальної пам'яті, механізми захисту пам'яті і механізми роботи з кеш-пам'яттю.   Розробляється процесор призначений для використання в якості ЦП робочої станції (варіанти з традиційною архітектурою) або як вбудованого процесора. Рисунок. 2.1 Загальна структура робочої станції.      Загальна структура робочої станції показана на рисунку 2.1. До складу станції входять кілька процесорних кристалів, які становлять предмет розробки, ОЗП, системний чіп, контролери зовнішніх пристроїв і відеоадаптер. Є дві шини: швидка системна шина і шина введення-виведення, розділені системним чіпом. Як шина вводу-виводу зазвичай використовується стандартна шина, наприклад PCI. Системний чип (чіпи) містять зовнішню логіку (таймери, RTC, контролери і т.п.).   Рисунок. 2.2 Узагальнена гарвардська архітектура.      Узагальнена структура, відповідна гарвардської архітектури, наведена на рисунку 2.2. Вона являє собою ЕОМ з однією платою, призначену для вбудованих пристроїв. На платі розміщуються: ЦП, пам'ять даних, лічильник-таймер, адаптер інтерфейсу. Крім того, на платі можуть розміщуватися допоміжні схеми та інтерфейсні схеми для підключення зовнішніх пристроїв (на рисунку 2.2 ці схеми не показані). Розроблена плата не має власної дискової пам'яті, дисплея і клавіатур. Передбачається, що розробка і налагодження програмного забезпечення здійснюються на інструментальній машині з використанням крос-систем програмування. Основним завданням даного етапу проектування є уточнення структури і розрядності внутрішньої шини.     Рисунок 2.3                              Рисунок. 2.4 Загальна архітектура зовнішніх виводів кристала ЦП таспівпроцесора.      При розробці архітектури зовнішніх висновків слід орієнтуватися на використання стандартних корпусів, які мають, відповідно, 40, 68, 132, 144. 168, 172 виводів. У випадку, якщо залишаються "зайві" виводи, вони можуть бути використані для наступних цілей: - Дублювання контактів "Живлення" і "Заземлення"; - Збільшення розрядності шини адреси; - Введення декількох рівнів переривання. Узагальнена архітектура зовнішніх виводів кристала ЦП показана на рисунку 2.3, а співпроцесора - на рисунку 2.4.     Процесор, зображений на рисунку 2.3, має поєднану шину адреси і даних (AD). Сигнал ALE використовується для фіксації адреси на зовнішньому регістрі-клямці. Пара сигналів HLD і HLDA використовується для реалізації механізму захоплення шини. Сигнали INT і INTA є сигналами запиту та підтвердження переривання. Якщо на корпусі є достатня кількість вільних висновків, то доцільно ввести декілька рівнів запиту на переривання. Лінії RD (Читання), WR (Запис), IN (Введення), OUT (Виведення), BHE (Дозвіл записи старшого байта) задають на шині операцію, яка виконується. Лінія FRAME використовується для організації режиму пакетного обміну між ОЗП і внутрішніми кешами. Поява даного сигналу на шині позначає початок транзакції, а зняття вказує на те, що наступний цикл передачі даних на шині є останнім. Сигнал WAIT використовується для організації взаємодії з зовнішнім математичним співпроцесором. На контакт WAIT надходить сигнал від співпроцесора про закінчення обчислень. Контакт READY (Готовність) служить для прийому сигналу готовності від повільних зовнішніх пристроїв. На рисунку 2.4 показаний можливий варіант архітектури зовнішніх виводів співпроцесора. У співпроцесора (рисунок 2.4) на виводі FPBUSY видається одиничний сигнал, вказуючи на те на те, що співпроцесор зайнятий. По лінії FPINT видається сигнал переривання в разі виникнення помилкової ситуації типу спроби поділу на нуль. Призначення інших висновків таке ж, як і однойменних висновків ЦП. ЦП і співпроцесор взаємодіють наступним чином. ЦП декодує потік команд, якщо з'являється команда обробки з ПК, то ЦП переписує її на регістр команди співпроцесора, в якості якого може в окремому випадку     виступати порт вводу-виводу, а потім продовжує роботу. При необхідності обчислення пам'яті адреси виконуються в ЦП. Для перевірки доступності ЦП може використовуватися, наприклад, спеціальна команда WAIT.

Регістри процесора

Процесор містить дванадцять 16-розрядних регістрів, що програмно-адресуються, які прийнято об'єднувати в три групи : регістри даних, регістри-покажчики і сегментні регістри. Крім того, до складу процесора входять лічильник команд і регістр прапорів,а за функціональним призначенням регістри процесора поділяються на такі:

§ Регістри даних — використовуються для збереження цілочисельних даних (див.нижче регістри плаваючої коми). В деяких архітектурах, відомих як акумуляторні, такий регістр лише один.

§ Адресні регістри — зберігають адреси (номери комірок) в пам'яті та використовуються в операціях з пам'яттю. Такі регістри іноді називаються індексними або базовими.

§ Регістри загального призначення — можуть зберігати і дані, і адреси

§ Регістри плаваючої коми — призначаються для зберігання даних для обчислень з плаваючою комою

§ Регістри констант — зберігають константи (наприклад в RISC-архітектурах регістр з порядковим номером нуль зазвичай зберігає константу нуля).

§ Векторні регістри — зберігають векторні дані та забезпечують векторні обчислення (наприклад, в мультимедійних розширеннях архітектури x86).

 

 


§ vРегістри спеціального призначення — зберігають внутрішню інформацію, необхідну для функціонування процесора (лічильник команд, вказівник стеку, регістр стану процесора та ін.).

 

У групу регістрів даних включаються регістри AX, BX, CX і DX. Програміст може використати їх на власний розсуд для тимчасового зберігання будь-яких об'єктів(даних або адрес) і виконання над ними необхідних операцій. При цьому регістри допускають незалежне звернення до старших(AH, BH, CH і DH) і молодших(AL, BL, CL і DL) половин. Так команда

mov BL, AH

пересилає старший байт регістра AX в молодший байт регістра BX, не зачіпаючи при цьому других байтів цих регістрів. Ще раз відмітимо, що спочатку вказується операнд-приймач, а після коми - операнд-джерело, тобто команда виконується як би справа наліво. У багатьох випадках регістри

 

 

 


загального призначення цілком еквівалентні, проте прийнятніше в першу чергу використати AX, оскільки багато команд займають в пам'яті менше місця і виконуються швидше, якщо їх операндом є регістр AX(чи його половини AH або AL).

Індексні регістри SI і DI так само, як і регістри даних, можуть використовуватися довільним чином. Проте їх основне призначення - зберігати індекси(зміщення) відносно деякої бази(тобто начала масиву) при вибірці операндів з пам'яті. Адреса бази при цьому зазвичай знаходиться в одному з базових регістрів(BX або BP). Приклади такого роду будуть наведені нижче.

Регістр BP служить покажчиком бази при роботі з даними в стекових структурах, про що буде мова попереду, але може використовуватися і довільним чином у більшості арифметичних і логічних операцій або просто для тимчасового зберігання яких-небудь даних.

Останній з регістрів-покажчиків, покажчик стека SP, стоїть осібно від інших в тому відношенні, що используеся виключно як покажчик вершини стека - спеціальної структури, яка буде розглянута пізніше.

Регістри SI, DI, BP і SP, на відміну від регістрів даних, не допускають побайтову адресацію.

Чотири сегментні регістри CS, DS, ES і SS зберігають початкові адреси сегментів програми і, тим самим, забезпечують можливість звернення до цих сегментів.

Регістр CS забезпечує адресацію до сегменту, в якому знаходиться код команд програми, регістри DS і ES, - до сегментів даних(таким чином, у будь-якій точці програма може мати доступ до двох сегментів даних, основному і додатковому), а регістр SS - до сегменту стека. Сегментні регістри, природно, не можуть виступати регістрами загального призначення.

 

 


Покажчик команд IP " стежить" за ходом виконання програми, вказуючи в кожен момент відносну адресу команди, що йде за виконуваною. Регістр IP програмно недоступний(IP - це просто його скорочена назва, а не мнемонічне позначення, використовуване в мові програмування); нарощування адреси в нім виконує мікропроцесор, враховуючи при цьому довжину поточної команди.

Регістр прапорів, еквівалентний регістру стану процесора інших обчислювальних систем, містить інформацію про поточний стан процесора. Він включає 6 прапорів стану і 3 біта управління станом процесора, які, втім, теж зазвичай називаються прапорами.

Прапор перенесення CF(Carry Flag) відображає перенесення або позику при виконанні арифметичних операцій, а також служить індикатором помилки при зверненні до системних функцій.

Прапор паритету PF(Parity Flag) встановлюється в 1, якщо молодші 8 біт результату операції містять парне число двійкових одиниць.

Прапор допоміжного перенесення AF(Auxiliary Flag) використовується в операціях над упакованими двійково-десятковими числами. Він відображає перенесення або позику із старшої тетради(біта 4).

Прапор нуля ZF(Zero Flag) встановлюється в 1, якщо результат операції дорівнює нулю.

Прапор знаку SF(Sign Flag) показує знак результату операції, встановлюючись в 1 при негативному результаті.

Прапор переповнювання OF(Overflow Flag) фіксує переповнювання, тобто вихід результату операції за межі допустимого для цього процесора діапазону значень.

 

 

 


Прапори стану автоматично встановлюються процесором після виконання кожної команди. Так, якщо в регістрі AX міститься число 1, то після виконання команди декремента(зменшення на 1)

dec AX

вміст AX дорівнюватиме 0, і процесор відразу відмітить цей факт, встановивши в регістрі прапорів біт ZF(прапор нуля). Якщо спробувати скласти два великі числа, наприклад, 58000 і 61000, то встановиться прапор перенесення CF, оскільки число 119000, що виходить в результаті складання, повинні зайняти більше двійкових розрядів, чим поміщається в регістрах або елементах пам'яті, і виникає " перенесення" старшого біта цього числа у біт CF регістра прапорів.

Прапори процесора, що відображають, дають можливість проаналізувати, якщо це треба, результат останньої операції і здійснити " розгалуження" програми : наприклад, у разі нульового результату перейти на виконання одного фрагмента програми, а у разі ненульового - на виконання іншого фрагмента.Такі розгалуження здійснюються за допомогою команд умовних переходів, які в процесі свого виконання аналізують стан регістра прапорів. Так, команда

jz zero

здійснює перехід на мітку zero, якщо результат виконання попередньої команди дорівнюватиме нулю(тобто прапор ZF встановлений), а команда

jnc okey

виконає перехід на мітку okey, якщо попередня команда скинула прапор перенесення CF(чи залишила його в скинутому стані).

 

Прапор трасування TF(Trace Flag), що управляє, використовується у відладчиках для здійснення покрокового виконання програми. Якщо TF = 1, то після виконання кожної команди процесор реалізує процедуру переривання 1(через вектор переривання з номером 1).

Прапор дозволу переривань IF(Interrupt Flag), що управляє, дозволяє(якщо рівний 1) або забороняє(якщо рівний 0) процесору реагувати на переривання від зовнішніх пристроїв.

Прапор напряму DF(Direction Flag), що управляє, використовується особливою групою команд, призначених для обробки рядків. Якщо DF = 0, рядок обробляється в прямому напрямі, від менших адрес до великих; якщо DF = 1, обробка рядка йде у зворотному напрямі.

Таким чином, на відміну від бітів стану, прапори, що управляють, встановлює або скидає програміст, якщо він хоче змінити налаштування системи(наприклад, заборонити на якийсь час апаратні переривання або змінити напрям обробки рядків).

Процесор в загальному випадку містить 2 групи регістрів:
- Призначені для користувача регістри;
- Системні регістри.

Системні регістри доступні тільки при роботі в режимі ядра.На етапі визначення структури регістровий пам'яті обираються:

- Число регістрів різних типів та їх розрядність;
- Склад і структура регістра прапорців.

Користувальницькі регістри, в свою чергу, поділяються на адресні, цілочисельні і регістри з ПК.

Часто одні й ті ж регістри використовуються як в якості адресних, так і в якості цілочисельних (РЗП). Крім того, зазвичай є деяка кількість керуючих регістрів.

 

 

До складу системних регістрів можуть входити такі регістри як:
- регістр фізичної адреси таблиці векторів переривання;
- регістр фізичної адреси таблиці переадресації;
- регістр для запису адреси сторінкової помилки, куди записується адреса сторінки, відсутньої з пам'яті.Один з можливих варіантів організації користувальницької реєстрової пам'яті ЦП для варіантів з використанням зовнішнього співпроцесора зображений на рисунку 2.6.

 

Рисунок. 2.6 Структура зовнішнього співпроцесора

Формати даних, команд та способи адресації

На рисунку2.5 показані основні типи даних, які використовуються.

Рисунок. 2.5 Основні типи даних.

При виборі форматів слід виходити з принципів RISC-обробки, відповідно до яких використовується мінімальна кількість форматів команд. Найбільш бажаним є використання одного (32-розрядного) формату. Прийнятним можна також вважати варіант, коли команди мають різну довжину.

Рисунок 2.8 Формати операційних 32-розрядних команд

 

              Рисунок 2.9 Формати команд різної довжини

 

   На рисунках  2.8 і 2.9 наведені можливі формати команд.

На рисунку 2.8 показані формати команд, відповідні другому випадку. Операційні команди (рисунок 2.8, а) мають довжину 16 розрядів і містять 4 поля: 7-розрядне поле коду операції (OP) і три 3-розрядних поля для завдання регістрів джерел і приймача. Типова двомісна операція типу додавання виконується за схемою R1 Я <R2> * <R3>.

Команди звернення до пам'яті, звернення до підпрограм, переходів, а також команди, що використовують безпосередні операнди мають довжину 32 розряду (рис. 2.8, б).

Крім полів OP, R1 і R2 є 19-розрядне поле зміщення (disp). Адреса пам'яті визначається складанням вмісту R2 і disp: A = <R2> + disp.

 

На рис. 2.9 показаний приклад 32-розрядного формату.

Команда на рис. 2.9 містить 6 полів: 7-розрядне поле коду операції (OP), 1-розрядне поле SCC дозволяє, або забороняє установку прапорців. Поля DEST, SRS1 і SRS2 задають, відповідно, регістр-приймач і регістри-джерела даних.

Однорозрядне поле IMM визначає зміст 13-розрядного поля SRS2. Якщо IMM = 0, то вміст зазначеного поля інтерпретується як номер регістра, в іншому випадку-розглядається як 13-розрядна константа. У командах звернення до пам'яті воно використовується як зміщення. При цьому адреса пам'яті визначається як A = <SRS1> + SRS2.

 

Алгоритм, написаний користувачем програми, кінець кінцем реалізується у вигляді машинних команд. Під командою розуміють сукупність відомостей, представлених у вигляді двійкових кодів, необхідних процесору для виконання чергового кроку. В ході команди для відомостей про тип операції, адресну інформацію про знаходження оброблюваних даних, а також для інформації про місце зберігання результатів виділяються певні розряди(поля).

Форматом команди називається заздалегідь обговорена структура полів в її кодах, дозволяюча ЕОМ розпізнавати складові частини коду.

Головним елементом коду команди є код операції(КОП), що визначає, які дії будуть виконані по цій команді. Під нього виділяється N старших розрядів формату. У інших розрядах розміщуються А1 і А2 v адреси операндів. А3 - адреса результату.

Розподіл полів у форматі команди може змінюватися при зміні способу адресації. Довжина команди залежить від числа адресних полів. По числу адрес команди діляться на:безадресні, одно-, двох-, трьохадресні

 

Довжина коду команди вимірюється в машинних словах. Щоб отримати можливість працювати з мінімальним числом адресних полів, результат, приміром, можна розміщувати за місцем зберігання одного з операндів. Або заздалегідь розміщують один або декілька операндів в спеціально виділених регістрах процесора.

Безліч машинних дій, що реалізовуються, утворює її систему команд. Система команд часто визначає області і ефективність застосування ЕОМ. Склад і число команд мають бути орієнтовані на стандартний набір операцій, використовуваних користувачем для вирішення своїх завдань.

По функціональному призначенню в системі команд ЕОМ розрізняють наступні групи:

1)Команди передачі даних(обмін входами між регістрами процесора, процесора і оперативною пам'яттю, процесора і периферійними установками).

2)Команди обробки даних(команди складання, множення, зрушення,

3)Команди передачі управління(команди безумовного і умовного переходу).

4)Команди додаткові(типу RESET, TEST, -).

Група команд передачі управління забезпечує примусову зміну порядку виконання команд в програмі.

 

Команди, що відтранслюють, записуються в сусідні елементи пам'яті в порядку їх дотримання в програмі. При природному порядку виконання команд в програмі, адреса кожної наступної команди визначається по вмісту

 

 

спеціального лічильника команд, який входить до складу процесора. Вміст цього лічильника автоматично нарощується на 1 при виконанні чергової команди. При організації галуження циклу або для переходу на підпрограму в лічильник в лічильник команд примусово записується адреса переходу, вказана в ході команди.

Більшість алгоритмів можуть бути реалізовані невеликим базовим набором команд. В той же час система команд має бути повною, тобто містити усі команди, які потрібні для інтерпретації алгоритму в машинних кодах. ЕОМ загального призначення має універсальний набір команд і застосовується в основному для вирішення тривіальних(стандартних) завдань.

Існують 2 різні принципи пошуків операндів в пам'яті: асоціативний і адресний.  

Асоціативний пошук(пошук за змістом осередку, що запам'ятовує) припускає перегляд вмісту усіх елементів пам'яті для виявлення коду, що містить задану командою асоціативну ознаку.    

Адресний пошук припускає, що операнд знаходиться за адресою, вказаною в адресному полі команд.

Виконавською адресою операнда називається двійковий код номера елементу пам'яті, по якому буде записаний або лічений оператором.

Адресним кодом команди називається двійковий код в адресному полі команди, за допомогою якого необхідно сформувати виконавську адресу операнда. У ЕОМ адресний код і виконавська адреса не співпадають, тому спосіб адресації можна визначити, як спосіб формування виконавської адреси за адресним кодом команди.

Способи адресації класифікують:

1)по наявності адресної інформації в команді(явна і неявна адресація);

2)по кратності звернення в оперативну пам'ять;

3) за способом формування адрес елементів пам'яті

При явній адресації операнда вкоманді є поле адреси цього операнда.

При неявній v адресне поле в команді відсутнє, а адреса операнда мається на увазі кодом операції. Наприклад, з команди може бути виключена адреса приймача адресата, при цьому мається на увазі, що результат записується на місці другого операнда.

По кратності звернення в оперативну пам'ять розрізняють:

1)безпосереднюадресацію(directaddressing)

При безпосередній адресації операнд розташовується безпосередньо в адресному полі команди.

2)прямуадресацію(immediateaddressing)

при прямій адресації звернення за операндом робиться за адресним кодом в полі команди. При цьому виконавська адреса співпадає з адресою коду команди.

3)непрямуадресацію(indirectaddressing)

Непряма адресація -- при непрямій адресації код команди вказує адресу елементу пам'яті, в якій знаходиться не сам операнд, а його адреса, що називається покажчиком.

 

Відносна адресація

При відносній адресації застосовується спосіб обчислення адреси шляхом підсумовування кодів, що становлять адресу

Індексна адресація

Для роботи програм з масивами, що вимагають однотипних операцій над елементами масиву, зручно використати індексну адресацію.

 

Система команд повинна бути функціонально повної і включати, як мінімум, наступні команди:
1) звернення до пам'яті з читання та запису;
2) цілочисельні арифметичні для чисел із знаком і без знака (додавання, віднімання, множення, ділення, порівняння);
3) арифметичні з ПК (додавання, віднімання, множення, ділення, порівняння);
4) логічні (порозрядне "І", "АБО" і "Що виключає АБО");
5) зрушень на довільне число тактів;
6) умовних і безумовних переходів;
7) роботи з підпрограмами;
8) завантаження в регістри безпосередніх операндів;
9) вводу-виводу;
10) управління обчислювальним процесом.

 

Внутрішня організація

При розробці структури процесора слід виходити з таких моментів.
У процесорі реалізується конвеєрний принцип обробки інформації. Використовується або двоступеневий, або триступеневий конвеєр.
Два можливі варіанти структурної організації процесора показані на рисунках 2.10 і 2.11.

 

Для двоступеневого конвеєра (рисунок 2.10) виділяються фаза вибірки команди і фаза виконання команди. Паралельно і асинхронно можуть працювати два процесори: процесор пам'яті і виконавчий процесор. Процесор пам'яті забезпечує роботу з пам'яттю команд і пам'яттю даних, а також з кеш-пам'яттю. На виконавчий процесор покладаються функції, пов'язані з дешифруванням і виконанням команд.
Для триступеневого конвеєра (рисунок 2.11) виділяються фази: вибірки команди з пам'яті; дешифрування команди і вибірки операндів; виконання команди і записи результату.

 

Рисунок 2.10 Організації процесора для двоступеневого конвеєра

Рисунок 2.11 Організації процесора для триступеневого конвеєра

 

   При використанні триступеневого конвеєра (рисунок 2.11) до складу процесора можуть входити, наприклад адресний процесор, процесор шини, процесор команд і виконавчий процесор.

Процесор шини керує виконанням основних операцій на шині. Адресний процесор виконує операції адресної арифметики та операції, пов'язані з перетворенням віртуальних адрес у фізичні з використанням таблиці переадресації (TLB). Процесор команд виконує функції, пов'язані з дешифруванням команд, і витяг операндів. Виконавчий процесор зайнятий власне виконанням операції.

Реєстрова пам'ять реалізується на реєстрових файлах, що допускають в одному такті вибірку двох операндів і запис одного

 

 

операнда. Дані при цьому вибираються з реєстрових файлів по передньому фронту імпульсу синхронізації і записуються по задньому фронту. Операційні пристрої, як цілочисельні, так і з ПК, є комбінаційну схему. Всі цілочисельні операції виконуються за 1 такт, а з ПК - за фіксоване число тактів. Наприклад, додавання з ПК і множення з ПК виконуються за 2 такта, а поділ з ПК - за 5 тактів. Арифметичні операції з ПК виконуються або в співпроцесор, або в окремому арифметико-логічному пристрої (АЛП).

 

Рисунок 2.12 Загальна структура виконавчої підсистеми

 

   Узагальнена структура виконавчої підсистеми показана на рисунок 2.12. Основними елементами виконавчої підсистеми є регістровий файл і

 

АЛП. З переднього фронту синхроімпульса з реєстрового файлу одночасно обираємо 2 операнда, відповідних адресам R2 і R3. Протягом часу тривалості тактового імпульсу сигнали поширюються через комбінаційні схеми АЛП. При цьому виконувана операція визначається подається на вхід АЛП кодом операції (OPC). Якщо на керуючий вхід реєстрового файлу подається сигнал дозволу запису WR, то на задньому фронту в регістровому файлі за адресою R1 запам'ятовується результат виконання операції.

У випадку, якщо завданням передбачено підтримку механізму роботи з віртуальною пам'яттю, то до складу адресного процесора необхідно ввести регістри переадресації (TLB), в яких зберігаються окремі рядки таблиці переадресації. Число TLB може перебувати в межах від 16 до 256. В системі команд необхідно передбачити команди роботи з даними регістрами і подбати про те, щоб ці команди були віднесені до привілейованих. Крім власне регістрів TLB необхідно передбачити наявність необхідних керуючих регістрів. Як мінімум необхідно мати реєстр, в якому зберігається абсолютний адреса таблиці сторінок. Крім того може бути корисний регістр, в якому зберігається, наприклад, випадковий адреса буфера TLB. Необхідно передбачити команду очищення буфера TLB. Очищувати буфер необхідно при перемиканні завдання, оскільки кожна задача має свою таблицю сторінок.

Типова схема формування фізичної адреси показана на рисунку 2.13.

Віртуальний адреса розбивається на два поля: поле N сторінки і поле зміщення. Поле N сторінки задає номер віртуального сторінки, з якою працює користувач. Це поле використовується як точки входу в таблицю переадресації, яка зазвичай має достатньо великий розмір і зберігається в оперативній пам'яті. Частина таблиці зберігається в апаратних регістрах (TLB). Завантаження окремих частин таблиці здійснюється під управлінням

 

операційної системи. Розмір сторінки звичайно становить 4 Кб.

Кожен рядок таблиці переадресації має два поля, в яких вказуються, відповідно, початковий адресу фізичної сторінки і атрибути. Як атрибутів можуть виступати: прапорець наявності даної сторінки в ОЗУ, прапорець звернення, прапорець зміни і прапорці захисту.
Прапорець звернення фіксує факт звернення до даної сторінки. Прапорець зміни фіксує факт звернення до даної сторінки за записом. Прапорці поля захисту можуть нести наступну інформацію:
- Дозвіл читання даних;
- Дозвіл запису;
- Дозвіл роботи з сторінкою тільки в режимі ядра;
- Дозвіл виконання.


Дата добавления: 2018-04-05; просмотров: 240; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!