Організація роботи мiкропроцесора в захищеному режимi, страница 5

                                                                             Продовження таблиці 4.7

Дескpиптоpи для опису кеш-пам'ятi i TLB

1

2

45h

Об’єднаний кеш L2:

розмір 2 Мб, 4-направлений, рядок 32 байта

50h

TLB команд: 4 Кб, 2Мб, 4Мб сторінки,

повністю асоціативний, 64 рядки

51h

TLB команд: 4 Кб, 2Мб, 4Мб сторінки,

повністю асоціативний, 128 рядків

52h

TLB команд: 4 Кб, 2Мб, 4Мб сторінки,

повністю асоціативний, 256 рядків

5Bh

TLB даних: 4 Кб, 4Мб сторінки,

повністю асоціативний, 64 рядки

5Ch

TLB даних: 4 Кб, 4Мб сторінки,

повністю асоціативний, 128 рядків

5Dh

TLB даних: 4 Кб, 4Мб сторінки,

повністю асоціативний, 256 рядків

66h

Кеш даних : розмір 8 Кб, 4-направл.ений, рядок 64 байта

67h

Кеш даних : розмір 16 Кб, 4-направлений, рядок 64 байта

68h

Кеш даних : розмір 32 Кб, 4-направлений, рядок 64 байта

70h

Кеш трас команд: 12 К мікроінструкцій, 8-направлений

71h

Кеш трас команд: 16 К мікроінструкцій, 8-направлений

72h

Кеш трас команд: 32 К мікроінструкцій, 8-направлений

79h

Об’єднаний кеш L2 :

розмір 128 Кб, 8-направлений, рядок 64 байта

7Ah

Об’єднаний кеш L2 :

розмір 256 Кб, 8-направлений, рядок 64 байта

7Bh

Об’єднаний кеш L2 :

розмір 512 Кб, 8-направлений, рядок 64 байта

7Ch

Об’єднаний кеш L2 :

розмір 1 Мб, 8-направлений, рядок 64 байта

82h

Об’єднаний кеш L2:

розмір 256 Кб, 8-направлений, рядок 32 байта

83h

Об’єднаний кеш L2:

розмір 512 Кб, 8-направлений, рядок 32 байта

84h

Об’єднаний кеш L2:

розмір 1 Мб, 8-направлений, рядок 32 байта

85h

Об’єднаний кеш L2:

розмір 2 Мб, 8-направлений, рядок 32 байта

Програма P_MODE для визначення типу МП використовує процедуру модуля PROT: get_cpu_type (inf: byte; var cpu: byte), яка на пiдставi наведених вище особливостей регiстрiв прапорiв МП рiзних типiв, або  шляхом використання команди CPUID (таблиця 4.2) виводить на екран сигнатуру МП i повертає як значення змiнної cpu наступнi величини (при inf =  0):

cpu = 0  - 8086;

cpu = 2  - 80286;

cpu = 3  - 80386;

cpu = 4  - i486 або МП сiмейства 0100;

cpu = 5  - МП сiмейства 0101 (Pentium);

cpu = 6  - МП сiмейства 0110 (Pentium Pro, Pentium II, Celeron і Pentium III) ;

    cpu = Fh - МП сiмейства 1111 (Pentium 4).

При inf = 1 процедура get_cpu_type() також визначає i виводить на екран iнформацiю про особливостi МП (таблиці 4.3 і 4.4), про наявнiсть та характеристики блокiв кеш-пам'ятi i TLB МП (табл. 4.7), а для МП Pentium III - також його серiйний номер.

4.2. Формування глобальної дескpиптоpної таблицi

Сегментацiя пам'ятi, тобто pозбивка пам'ятi на окремi блоки, що називаються сегментами, здiйснюється по-рiзному в реальному i захищеному  режимах.

В захищеному режимi атрибути сегментiв, що задають мiсцеположення сегмента в загальному адресному просторi, його розмiр i особливостi доступу до нього, пpедставленi у виглядi 8-байтної структури даних, що називається дескриптором.

Дескpиптоpи зберiгаються в пам'ятi у виглядi дескрипторних таблиць. Дескpиптоpи сегментiв коду, стека, даних, а також системнi дескpиптоpи, знаходяться в глобальнiй дескpиптоpнiй таблицi - GDT (Global Descriptor Table).

При багатозадачнiй роботi (див. роздiл 5) кожна задача може мати свої сегменти коду, стека i даних, недоступнi для iнших задач. В цьому випадку дескpиптоpи цих сегментiв помiщаються в локальну дескpиптоpну таблицю - LDT (Local Descriptor Table), яка може бути сформована, якщо це необхiдно, для кожної задачi.

Дескpиптоpи обробникiв пеpеpивань (див. роздiл 4) зберiгаються в дескpиптоpнiй таблицi пеpеpивань - IDT (Interrupt Descriptor Table).