Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭК(вопросы и ответы).doc
Скачиваний:
13
Добавлен:
10.09.2019
Размер:
5.98 Mб
Скачать

2.30. На базі існуючих технічних рішень провести розробку структурної схеми мікропроцесора.

На рис. 1.2 показана структура мікропроцесорів сімейства P6, яка має дві

Системна шина

L2 кеш

Інтерфейс шини

L1 кеш команд

L1 кеш даних

Пристрій вивантаження

Пристрій вибірки та дешифрування

Пристрій диспетчеризації та виконання

Пул команд

Рис. 1.2. Структура мікропроцесорів сімейства P6

основні відмітні особливості: мікро-архітектуру динамічного виконання команд, яка є ядром МП, і архітектуру подвійної шини, яка дозволяє підключити до ядра МП як системну шину, так і кеш-пам'ять другого рівня L2. Конструктивно ця кеш-пам'ять може розташовуватися на платі (картриджі) разом з МП у виді мікросхеми чи кількох мікросхем, або знаходитися в одному корпусі з МП. Кеш-пам'ять L2, на відміну від кеш-пам'яті 1-го рівня, є об'єднаною, тобто містить як команди, так і дані. Обмін даними між мікропроцесором та кеш-пам'яттю 2-го рівня здійснюється для МП Pentіum ІІІ (Copermіne) по 288-розрядній шині, 32 байта якої є даними (рядок кеша), і 32 розряди є кодами виявлення і виправлянь помилок. Для інших МП сімейства P6 ця шина складає 64 розряду.

Мікро-архітектура динамічного виконання команд має три основних вузли (рис. 1.2):

– пристрій вибірки та дешифрування (Fetch/Decode Unіt);

– пристрій диспетчеризації та виконання (Dіspatch/ExecuteUnіt);

– пристрій вивантаження (Retіre Unіt).

Пристрій вибірки та дешифрування здійснює вибірку команд з кеш-пам'яті команд і їх дешифрування, тобто перетворення команд формату x86 в мікрооперації, у тому порядку, в якому команди розташовані в програмі, і тому є упорядкованим пристроєм.

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

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

2.31. Сегментація пам’яті в захищеному режимі. Розробка дескрипторів сегментів. Формування лінійної адреси при звертанні до пам’яті.

Сегмент характеризуется такими параметрами:

-размер;

-базовый адрес;

-права доступа к сегменту.

Эти параметры формируются в виде 8-байтовой структуры, называемой дескриптором сегмента.

Структура дескриптора сегмента:

7

6

5

4

3

2

1

0

Баз. адрес (31-24)

G

D/B

0

X

Граница (19-16)

Байт доступа

Базовый адрес (23-0)

Граница (15-0)

Граница сегмента = Размер сегмента-1.

Базовый адрес – это адрес, по которому сегмент находится в банке памяти.

X: бит программно доступен для пользователя.

D/B (Default/Big): D=0 – 16-разрядные данные, D=1 – 32-разрядные данные;

B=0 – размер стека = 64 Кбайт, B=1 – размер стека = 4 Гбайт.

G (Granularity): G= 0 – размер сегмента выражен в байтах, G = 1 – в 4-Кбайтовых страницах.

Байты доступа:

Сегмента кода

Сегмента данных

Системного сегмента

7

6

5

4

3

2

1

0

P

DPL

S=1

E=1

C

R

A

7

6

5

4

3

2

1

0

P

DPL

S=1

E=0

ED

W

A

7

6

5

4

3

2

1

0

P

DPL

S=0

TYPE

P(Present) P=1 – сегмент в памяти, P=0 – сегмент на диске

P

P

DPL–уровень защищенности сегмента 0 – высший, 3 - низший

DPL

DPL

S(System) S=1–несистемный сегмент, S=0 – системный сегмент

S=1

S=0

E(Execute) E=1–сегмент кода,E=0- сегмент стека

E=0

TYPE=1100 – шлюз;

TYPE=1110 – обработчик прерывания;

TYPE=1111 – обработчик ловушки

С(Conform) – бит подчинения (используется для шлюзов)

ED(Expand Down) ED=0 – сегмент данных, ED=1 – сегмент стека

R(Read) R=1 – сегмент можно читать, R=0 – нельзя читать

W(Write) W=1 – писать можно, W=0 – писать нельзя

A(Access) устанавливается аппаратно при доступе к сегменту

A

При программном описании дескриптор сегмента представляется в виде такой структуры:

t _descr = record

lim_l, {граница 15-0}

base_l: word; {база 15-0}

base_h, {база 23-16}

access, {байт доступа}

lim_h, {граница 23-16}

base_hh: byte; {база 31-24}

end;

gdt: array [0..n] of t_descr; {таблица GDT}

Схема формирования линейного адреса: