Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема- Ідентифікація процесорів Виконав- ст

Работа добавлена на сайт samzan.net:


Міністерство освіти і науки, молоді та спорту  України

Хмельницький національний університет

Кафедра системного програмування

     

Лабораторна робота №3

із дисципліни: «Архітектура комп’ютерів»

Тема: «Ідентифікація процесорів»

Виконав:

ст.  гр. КІ-09-X

Перевірив:

Тітова В.Ю.

2012

Мета: 

 Отримати практичні навички у визначенні типу, сімейства та моделі процесора.

Контрольні питання

  1.  Як ідентифікувати процесор після апаратного скидання?

Можливість програмного визначення типу процесора закладена в архітектуру 32- та 64-розрядних процесорів. У будь-якому процесорі відразу після апаратного скидання в регістрі (E)DX можна прочитати номер сімейства (3 - 386, 4 - 486, 5 - Pentium, 6 - P6 і т.д.), моделі, типу і степпінгу.  

Поле "модель" дозволяє відрізняти, наприклад, Pentium MMX від "просто" Pentium 75-233 МГц або Pentium 60-66 МГц, Celeron від Pentium II або Pentium Pro. По полю "тип" можна відрізнити, наприклад, процесори OverDrive. Поле "степпінг" без таблиць виробника не розшифрувати, воно несе інформацію про нюанси - наприклад, виправлені чи ті чи інші помилки, можливий діапазон частот (визначається опосередковано і не точно).

  1.  Що саме входить в поняття ідентифікації процесорів?

Поле степпінгу (біти 3:0) - номер версії процесора в межах однієї моделі. Поле "тип" (біти 13:12) розрізняє процесори OEM-версій (00), OverDrive (01) і Dual (10); значення 11 зарезервовано. Найбільш цікава інформація міститься в полях "сімейство" (біти 11:8) і "модель" (біти 7:3). Старші біти (14-31) регістра EDX поки не використовуються (вони нульові).

Процесори 80386 мали дещо інше призначення біт: поле "сімейство" збігається з типом, поле "модель" займає біти 15:11, біти 7:0 відводяться під степпінг.

Для молодших процесорів регістр DH містить ідентифікатор процесора (01 - 8086/88, 02 -80286), DL - номер моделі.  

  1.  Структура та призначення команди CPUID?

Починаючи з процесорів Pentium з'явилася нова інструкція CPUID, за якою будь-яка програма на будь-якому рівні привілеїв в будь-який момент часу могла отримати ту ж інформацію, що і BIOS після скидання. Отриману інформацію програма може використовувати, наприклад, для вибору виконуваного коду, оптимального для даного процесора (або відмови виконання на "негідному" її процесорі), а також для налаштування констант програмних реалізацій затримок. Інструкція CPUID була реалізована і в ряді пізніх моделей процесорів класу 486. Формат інструкції практично безмежно розширюваний, з її допомогою процесор може видавати хоч весь свій словесний портрет (якщо цю можливість закладуть його розробники). Однак інформація для CPUID "зашивається" у процесор на етапі виготовлення кристалу, що не дозволяє, наприклад, "випитати" у процесора його офіційну тактову частоту (вона визначається пізніше - на етапі тестування вже готового процесора). А ця інформація була б корисна при боротьбі з піратським розгоном (перемаркуванням) процесорів.

 

  1.  Призначення пам'яті PIROM та Scratch EEPROM?

Спеціальна постійна (тільки для читання) пам'ять процесорної інформації PIROM, яка зберігає такі дані, як електричні специфікації ядра процесора і кеш-пам'яті (діапазони частот і напруг), S-специфікацію (степпінг) і 64-бітний серійний номер процесора. Крім того, є незалежна пам'ять Scratch EEPROM, яка призначена для занесення системної інформації постачальником процесора (або комп'ютера з цим процесором) і може бути захищена від подальшого запису.

  1.  Призначення інтерфейсу SMBus?

Для взаємодії з PIROM і Scratch EEPROM процесор має додаткову послідовну шину SMBus (System Management Bus) - окремий електричний інтерфейс, з яким працює чіпсет системної плати. Звернення до цих обліковими даними виходить досить складним - це ціла процедура, прив'язана до реалізації чіпсета, а не одна інструкція.

  1.  Як здійснюється ідентифікація процесорів користувацькими програмами?

Програмам, завантажуваним операційною системою, та й самій ОС, інформація про процесор з регістра EDX недоступна (апаратне скидання був занадто давно). Задача ідентифікації ускладнюється тим, що покоління процесора заздалегідь невідомо. Коли з'явився процесор 80286, його (і всі наступні) відрізняли від 8086/88 за значеннями, що зберігаються для стеку інструкцією PUSH SP: перші процесори спочатку декрементували покажчик стека, а потім його зберігали. Для ідентифікації процесорів, починаючи ще з 16-розрядних, рекомендується аналіз значення регістра прапорців, збереженого за інструкцією PUSHF після спроби його зміни. Наведемо параметри регістра прапорців у тому порядку, в якому їх аналізують при ідентифікації типу:

у процесорів 8086/88 біти 12-15 завжди встановлені в 1 - спроба їх скидання не вдається;

у 80286 в реальному режимі біти 12-15 завжди скинуті;

у 32-розрядних процесорів в реальному режимі біт 15 завжди скинутий, а біти з 12-14 зберігають останнє завантажене в них значення. У захищеному режимі біт 15 завжди скинутий, а біт 14 зберігає останнє завантажене в нього значення (біти 12, 13 можна змінити тільки за IOPL = 0).

Для 32-розрядних процесорів аналізується EFLAG:

біт 18 доступний, починаючи з процесорів 486, - у 80386 його неможливо змінити;

біти 19 (VIF) та 20 (VIP) у процесорів, що не підтримують розширення віртуального режиму (VME) завжди нульові;

біт 21 (ID) визначає можливість використання інструкції CPUID. Ознакою доступності інструкції є можливість програмної зміни значення цього біта.

Для визначення присутності співпроцесора виконують інструкцію FNINIT, після чого виконують інструкцію FNSTENV і перевіряють коректність образу співпроцесора, збереженого в пам'яті. Тип співпроцесора зазвичай визначається типом CPU, крім процесора 80386, який може працювати як з 80287, так і з 80387. Їх розрізнити можна по способу представлення +нескінченність і -нескінченність: у 287 вони однакові, у 387 - різні.

Інструкція CPUID, доступна, починаючи з Pentium і деяких моделей 486, викликається з параметром, зазначеним у регістрі EAX. Значення EAX при виклику CPUID, зазначені в дужках, визначає функцію виклику:

CPUID (0) - в регістр EAX повертається максимально допустиме значення параметра виклику; в регістрах EBX, EDX і ECX процесор повертає символьний рядок, специфічний для виробника. Символи рядку розміщуються в регістрах у зазначеному порядку, починаючи з молодших байт.

  1.  Призначення прапорців розширення архітектури?

Біт

Назва

Призначення

0

FPU

Floating Poin Unit - наявність математичного співпроцесора

1

VME

Virtual-8086 Mode Enhancements - розширення режиму V86 (віртуалізація прапора переривань)

2

DE

Debugging Extensions - розширення налагодження (можливість зупинки за зверненням до портів)

3

PSE

Page Size Extension - можливість застосування розміру сторінки в 4 Мбайт

4

TSC

Time Stamp Counter - наявність лічильника міток реального часу

5

MSR

Model Specific Register - підтримка модельно-специфічних регістрів в стилі Pentium (інструкції RDMSR, WRMSR)

6

PAE

Physical Address Extension - можливість розширення фізичної адреси до 36 біт

7

MCE

Machine Check Exception - підтримка виключення машинного контролю # MC

8

CX8

Підтримка інструкції CMPXCHG8B

9

APIC

Наявність вбудованого програмно-доступного контролера переривань APIC

10

-

Зарезервовано

11

SEP

SYSENTER Present - підтримка інструкцій швидких системних викликів SYSENTER і SYSEXIT

12

MTRR

Memory Type Range Registers - наявність регістра керування кешуванням MTRRcap

13

PGE

Page Global Enable - підтримка біт глобальності в елементах каталогу і таблиць сторінок, а також біта PGE в регістрі CR4

14

MCA

Machine Check Architecture - підтримка архітектури машинного контролю

15

CMOV

Conditional Move - підтримка інструкцій умовної пересилання CMOVcc, а якщо є FPU, то і інструкцій FCMOVCC і FCOMI

16

PAT

Page Attribute Table - підтримка таблиць атрибутів сторінок (PAT)

17

PSE-36

36-bit Page Size Extension - можливість використання 36-бітної фізичної адресації для сторінок в 4 Мб

18

PN

Processor Number — підтримка повідомлень 96-бітного серійного номера за інструкцією CPUID(3)

18–22

-

Зарезервовано

23

MMX

Підтримка MMX

24

FXSR

Fast floating point save and restore — підтримка інструкцій швидкого збереження і відновлення контексту FPU (інструкцій FXSAVE і FXRSTOR). Вказує на доступність індикатора використання цих інструкцій операційною системою (CR4.OSFXSR)

25

XMM

Наявність блоку XMM (підтримка нових інструкцій розширення SSE)

24...31

-

Зарезервовано




1. своеобразных особенностях личности существенное место занимают интеллектуальные особенности по структуре
2. его наиболее подвижная и быстро развивающаяся часть
3. тема на юге Турции- It ws five o~clock on winter~s morning in Syri пять часов утра зима Сирия- было пять часов зимнего
4. 1111 Компания провела свою первую презентацию дав старт совершенно новой теории и практике сетевого бизнеса
5. Ru Все книги автора Эта же книга в других форматах Приятного чтения Редьярд Джозеф Киплинг Книг
6. Утверждаю Президент World rmlifting ssocition Филимонов А
7. Вариант 3 1. Укажите область значений функции 2
8. Основна гімнастика 1
9. Topic for me ws ldquo;terrorismrdquo;
10. Статья- Русская история в стихах и песнях- поэзия Александра Городницкого
11. Статья- Особенности формирования правового сознания россиян в современных условиях
12. публичная или общественная политика является то что ее употребление в последние годы все шире выходит за п
13. КОММУНАЛЬНОЕ ХОЗЯЙСТВО ЗДРАВООХРАНЕНИЕ ОБРАЗОВАНИЕ На уровне области вопросами жилищноком
14. Интерпретация квантовомеханических представлений с позиций волнового описания системности физических величин
15. Дизайн и оформление печатной рекламы.html
16. Тема 2 Некоторые общетеоретические проблемы института юридического лица
17. устойчивость финансовой системы обязательного социального страхования обеспечиваемая на основе эквивале
18. Тема 300 Выберите правильный ответ
19. Регулирование аудиторской деятельности
20. ПОДГОТОВКА ПРЕДПРИЯТИЙ К ПРОВЕРКАМ ГИТ Новые правила проведения проверок государственной инспекци