Реалізація суперскалярної обробки в Athlon 64.2. SpeedFan 4.27, тестування температури CPU, HHD, швидкості кулерів

План



Реалізація суперскалярної обробки в Athlon 64.

SpeedFan 4.27/ тестування температури CPU, HHD, швидкості кулерів.


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

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

Дані в комп'ютері передаються у вигляді цифр через однакові проміжки часу. Для передачі одиничного біта даних в певний часовий інтервал посилається сигнал напруги високого рівня, а для передачі нульового біта даних — сигнал напруги низького рівня (біля Про В). Чим більше ліній, тим більше бітів можна передати за один і той же час. Сучасні процесори типу Pentium мають 64-розрядні зовнішні шини даних. Це означає, що процесори Pentium, включаючи Pentium 4, Athlon ХР, Athlon 64 і навіть Itanium/Itanium 2, можуть передавати в системну пам'ять (або отримувати з неї) одночасно 64 битий (8 байт) даних.

Уявімо собі, що шина — це автомагістраль з рухомими по ній автомобілями. Якщо автомагістраль має всього по одній смузі рухи в кожну сторону, то по ній в одному напрямі в певний момент часу може проїхати тільки одна машина. Якщо ви хочете збільшити пропускну спроможність дорогі, наприклад, удвічі, вам доведеться її розширити, додавши ще по одній смузі руху в кожному напрямі. Таким чином, 8-розрядну мікросхему можна представити у вигляді однополосной автомагістралі, оскільки в кожен момент часу по ній проходить тільки один байт даних (один байт рівний восьми бітам). Аналогічно цьому, 32-розрядна шина даних може передавати одночасно чотири байти інформації, а 64-розрядна подібна до швидкісної автостради з вісьма смугами руху. 

Розрядність шини даних процесора визначає також розрядність банку пам'яті. Це означає, що 32-розрядний процесор, наприклад класу 486, прочитує з пам'яті або записує в пам'ять 32 битий одночасно. Процесори класу Pentium, включаючи Pentium III, Celeron, Pentium 4, Athlon XP і Duron, а також 64-розрядні процесори Itanium і Athlon 64 прочитують з пам'яті або записують в пам'ять 64 битий одночасно.

Оскільки стандартні 72-контактні модулі пам'яті SIMM мають розрядність, рівну всього лише 32, в більшості систем класу 486 встановлюють по одному модулю, а в більшості систем класу Pentium — по два модулі одночасно. Розрядність модулів пам'яті DIMM рівна 64, тому в системах класу Pentium встановлюють по одному модулю, що полегшує процес конфігурації системи, оскільки ці модулі можна встановлювати або видаляти поодинці. Кожен модуль DIMM має таку ж продуктивність, як і цілий банк пам'яті в системах Pentium.

Починаючи з 2003 року класичні принципи додавання модулів пам'яті DIMM почали мінятися, оскільки з'явилися двохканальні набори мікросхем Intel 865/785 для процесорів Pentium 4/Celeron 4 і перші набори мікросхем для Athlon 64. В цілях підвищення продуктивності пам'яті для цих і більшості інших, якщо не всіх, наборів мікросхем буде потрібно установку ідентичних пар модулів пам'яті DIMM.

Модулі пам'яті RIMM (Rambus Inline Memory Modules) в деякому роді унікальні, оскільки використовують власний набір інструкцій. Ширина каналу пам'яті досягає 16 або 32 битий. Залежно від типу використовуваного модуля і набору мікросхем системної логіки, модулі встановлюються окремо або попарно.

Шина адреси

Шина адреси є набором провідників; по ним передається адреса елементу пам'яті, в яку або з якої пересилаються дані. Як і в шині даних, по кожному провідникові передається один біт адреси, відповідний одній цифрі в адресі. Збільшення кількості провідників (розрядів), використовуваних для формування адреси, дозволяє збільшити кількість осередків, що адресуються. Розрядність шини адреси визначає максимальний об'єм пам'яті, що адресується процесором.

Уявіть собі наступне. Якщо шина даних порівнювалася з автострадою, а її розрядність — з кількістю смуг руху, то шину адреси можна асоціювати з нумерацією будинків або вулиць. Кількість ліній в шині еквівалентно кількості цифр в номері будинку. Наприклад, якщо на якійсь гіпотетичній вулиці номера будинків не можуть складатися більш ніж з двох цифр (десяткових), то кількість будинків на ній не може бути більше ста (від 00 до 99), тобто 102. При тризначних номерах кількість можливих адрес зростає до 103 (від 000 до 999) і так далі.

У комп'ютерах застосовується двійкова система числення, тому при двохрозрядній адресації можна вибрати тільки чотири осередки (з адресами 00, 01, 10 і 11), тобто 22, при трьохрозрядній — вісім (від 000 до 111), тобто 2J. Наприклад, в процесорах 8086 і 8088 використовується 20-розрядна шина адреси, тому вони можуть адресувати 22° (1 048 576) байт, або 1 Мбайт пам'яті. Об'єми пам'яті, що адресується процесорами Intel, приведені в табл. 3.3. 

Шини даних і адреси незалежні, і розробники мікросхем вибирають їх розрядність на свій розсуд, але, ніж більше розрядів в шині даних, тим більше їх і в шині адреси. Розрядність цих шин є показником можливостей процесора: кількість розрядів в шині даних визначає здатність процесора обмінюватися інформацією, а розрядність шини адреси — об'єм пам'яті, з яким він може працювати.

Внутрішні регістри

Кількість бітів даних, які може обробити процесор за один прийом, характеризується розрядністю внутрішніх регістрів. Регістр — це, по суті, елемент пам'яті усередині процесора; наприклад, процесор може складати числа, записані в двох різних регістрах, а результат зберігати в третьому регістрі. Розрядність регістра визначає кількість розрядів оброблюваних процесором даних, а також характеристики програмного забезпечення і команд, що виконуються чіпом. Наприклад, процесори з 32-розрядними внутрішніми регістрами можуть виконувати 32-розрядні команди, які обробляють дані 32-розрядними порціями, а процесори з 16-розрядними регістрами цього робити не можуть. У більшості всіх сучасних процесорів внутрішні регістри є 32-розрядними. Процесори Itanium і Athlon 64 мають 64-розрядні внутрішні регістри, які необхідні для повнішого використання функціональних можливостей нових версій операційних систем і програмного забезпечення.

У деяких дуже старих процесорах розрядність внутрішньої шини даних (а шина складається з ліній передачі даних і регістрів) перевищує розрядність зовнішньої. Наприклад, в процесорах 8088 і 386SX розрядність внутрішньої шини тільки удвічі більше розрядності зовнішньої шини. Такі процесори (їх часто називають половинчастими або гібридними) зазвичай є дешевшими варіантами початкових. Наприклад, в процесорі 386SX внутрішні операції 32-розрядні, а зв'язок із зовнішнім світом здійснюється через 16-розрядну зовнішню шину. Це дозволяє розробникам проектувати відносно дешеві системні плати з 16-розрядною шиною даних, зберігаючи при цьому сумісність з 32-розрядним процесором 386.

Якщо розрядність внутрішніх регістрів більше розрядності зовнішньої шини даних, то для їх повного завантаження необхідно декілька циклів прочитування. Наприклад, в процесорах 386DX і 386SX внутрішні регістри 32-розрядні, але процесору 386SX для їх завантаження необхідно виконати два цикли прочитування, а процесору 386DX достатньо одного. Аналогічно передаються дані від регістрів до системної шини.

У процесорах Pentium шина даних 64-розрядна, а регістри 32-розрядні. Така побудова на перший погляд здається дивною, якщо не враховувати, що в цьому процесорі для обробки інформації служать два 32-розрядні паралельні конвеєри. Pentium багато в чому подібний до двох 32-розрядних процесорів, об'єднаних в одному корпусі, а 64-розрядна шина даних дозволяє швидше заповнити робочі регістри. Архітектура процесора з декількома конвеєрами називається суперскалярною.

Сучасні процесори шостого покоління, наприклад Pentium HI/4 і Athlon XP, мають цілих шість внутрішніх конвеєрів для команд, що виконуються. Хоча деякі з вказаних внутрішніх конвеєрів спеціалізовані (тобто призначені для виконання спеціальних функцій), ці процесори можуть все ж таки виконувати шість (Pentium 4) або дев'ять (Athlon XP) команд за один цикл.

Режими процесора

Всі 32-розрядні і пізніші процесори Intel, починаючи з 386-го, можуть виконувати програми в декількох режимах. Режими процесора призначені для виконання програм в різних середовищах; у різних режимах можливості чіпа неоднакові, тому що команди виконуються по-різному. Залежно від режиму процесора змінюється схема управління пам'яттю системи і завданнями. 

Процесори можуть працювати в трьох режимах: реальному, захищеному і віртуальному реальному режимі (реальному усередині захищеного).

Реальний режим

У первинному IBM РС використовувався процесор 8088, який міг виконувати 16-розрядні команди, застосовуючи 16-розрядні внутрішні регістри, і адресувати тільки 1 Мбайт пам'яті, використовуючи 20 розрядів для адреси. Все програмне забезпечення РС спочатку було призначене для цього процесора; воно було розроблене на основі 16-розрядної системи команд і моделі пам'яті об'ємом 1 Мбайт. Наприклад, DOS, все програмне забезпечення DOS, Windows від 1 х до Зл: і всі застосування для Windows від 1 х до 3х написані з розрахунку на 16-розрядні команди. Ці 16-розрядні операційні системи і додатки були розроблені для виконання на первинному процесорі 8088.

Пізніші процесори, наприклад 286, могли також виконувати ті ж самі 16-розрядні команди, що і первинний 8088, але набагато швидше. Іншими словами, процесор 286 був повністю сумісний з первинним 8088 і міг виконувати всі 16-розрядні програми точно так, як і 8088, але, звичайно ж, значно швидше. Шестнадцатіразрядний режим, в якому виконувалися команди процесорів 8088 і 286, був названий реальним режимом. Всі програми, що виконуються в реальному режимі, повинні використовувати тільки 16-розрядні команди, 20-розрядні адреси і підтримуватися архітектурою пам'яті, розрахованої на ємкість до 1 Мбайт. Для програмного забезпечення цього типу зазвичай використовується однозадачний режим, тобто одночасно може виконуватися тільки одна програма. Немає ніякого вбудованого захисту для запобігання перезапису елементів пам'яті однієї програми або навіть операційної системи іншою програмою; це означає, що при виконанні декількох програм цілком можуть бути зіпсовані дані або код однієї з них, а це може привести всю систему до краху (або останову).

Захищений режим

Першим 32-розрядним процесором, призначеним для РС, був 386-й. Цей чіп міг виконувати абсолютно нову 32-розрядну систему команд. Щоб повністю використовувати перевагу 32-розрядної системи команд, були необхідні 32-розрядна операційна система і 32-розрядні застосування. Цей новий режим називався захищеним, оскільки виконувані в нім програми захищені від перезапису своїх областей пам'яті іншими програмами. Такий захист робить систему надійнішою, оскільки жодна програма з помилками вже не зможе так легко пошкодити інші програми або операційну систему. Крім того, програму, "потерпілу крах", можна досить просто завершити без збитку для всієї системи.

Знаючи, що розробка нових операційних систем і додатків, що використовують переваги 32-розрядного захищеного режиму, займе якийсь час, Intel передбачила в процесорі 386 назад сумісний реальний режим. Завдяки цьому процесор 386 міг виконувати немодифіковані 16-розрядні застосування. Причому вони виконувалися набагато швидше, ніж на будь-якому процесорі попереднього покоління.Для більшості користувачів цього було досить; їм не було потрібне все 32-розрядне програмне забезпечення — достатньо було того, щоб 16-розрядні програми, що були у них, працювали швидше. На жаль, через це процесор ніколи не працював в 32-розрядному захищеному режимі і всі можливості такого режиму не використовувалися.

Коли високопродуктивний процесор, подібний Pentium 4, працює в реальному режимі, він нагадує "Turbo 8088". Слово "Turbo" означає, що процесор має перевагу в швидкодії при виконанні 16-розрядних програм, хоча він може виконувати тільки 16-розрядні команди і звертатися до пам'яті в межах все того ж 1 Мбайт, передбаченого картою пам'яті процесора 8088. Тому, навіть якщо у вас система з Pentium 4 або Athlon XP і оперативною пам'яттю ємкістю 256 Мбайт, при виконанні Windows 3x або DOS насправді використовується тільки перший мегабайт пам'яті, а останні 127 практично не застосовуються!

У зв'язку з цим було потрібно нові операційні системи і додатки, які б могли використовувати всі переваги сучасних процесорів в 32-розрядному захищеному режимі. Проте деякі користувачі спочатку чинили опір усіляким спробам переходу до 32-розрядного середовища. Співтовариство користувачів виявилося вельми стійким в своїх привязанностях і не бажало змінювати звичок. Я, признаюся, був одним з них!

Із-за опору користувачів, 32-розрядні операційні системи, такі, як Unix і її різновиди (наприклад, Linux), OS/2 і навіть Windows NT/2000/XP, розповсюджувалися на ринку персональних комп'ютерів досить мляво. З перерахованих систем Windows XP стала по-справжньому широко поширеним програмним продуктом багато в чому завдяки величезній популярності Windows 95/98/Ме (змішані 16/32-разрядные системи).

Останньою повністю 16-розрядною операційною системою була Windows серії Зx. Хоча насправді вона працювала як надбудова DOS.

Такі 64-розрядні процесори, як Itanium і AMD Opteron, призначені для використання в могутніх промислових серверах, тоді як процесор Athlon 64 створений безпосередньо для настільних систем. Обидва процесори сумісні зі всім існуючим 32-розрядним програмним забезпеченням. Але для того, щоб скористатися властивостями процесора в повному об'ємі, буде потрібно повноцінні 64-розрядні операційні системи і додатки. Microsoft вже випустила 64-розрядні версії операційної системи Windows XP, тоді як різними компаніями створюються 64-розрядні застосування для серверів і робочих станцій.

Віртуальний реальний режим

Для зворотної сумісності 32-розрядна система Windows використовує третій режим в процесорі — віртуальний реальний режим. По суті, це режим виконання 16-розрядного середовища (реальний режим), реалізований усередині 32-розрядного захищеного режиму (тобто віртуально, а не реально). Виконуючи команди у вікні підказки DOS усередині Windows, ви створюєте віртуальний сеанс реального режиму. Оскільки захищений режим є достовірно багатозадачним, фактично можна виконувати декілька сеансів реального режиму, причому в кожному сеансі власне програмне забезпечення працює на віртуальному комп'ютері. І всі ці застосування можуть виконуватися одночасно, навіть під час роботи інших 32-розрядних програм.

Звернете увагу на те, що будь-яка програма, що виконується у віртуальному вікні реального режиму, може звертатися тільки до пам'яті об'ємом до 1 Мбайт, причому для кожної такої програми це буде перший і єдиний мегабайт пам'яті в системі. Іншими словами, якщо ви виконуєте додаток DOS у віртуальному реальному вікні, йому буде доступна пам'ять тільки об'ємом до 640 Кбайт. Так відбувається тому, що є тільки 1 Мбайт загальної оперативної пам'яті в 16-розрядному середовищі, а верхні 384 Кбайт зарезервовано для системи. Віртуальне реальне вікно повністю імітує середовище процесора 8088, і, якщо не враховувати швидкодію, програмне забезпечення виконуватиметься так, як воно виконувалося першим РС в реальному режимі. Кожна віртуальна машина отримує власний 1 Мбайт адресного простору і власний екземпляр реальних апаратних подпро грам управління апаратурою (базову систему введення-виводу), причому при цьому емулюються всі регістри і можливості реального режиму.

Віртуальний реальний режим використовується при виконанні 16-розрядних програм у вікні DOS. При запуску додатку DOS операційна система Windows створює віртуальну машину DOS, на якій це застосування може виконуватися.

Важливо відзначити, що всі процесори Intel (а також AMD і Cyrix) при включенні живлення починають працювати в реальному режимі. При завантаженні 32-розрядна операційна система автоматично перемикає процесор в 32-розрядний режим і управляє їм в цьому режимі.

Деякі додатки DOS і Windows Зx- поводяться непередбаченим чином, тобто роблять речі, які не підтримуються навіть у віртуальному реальному режимі. Діагностичне програмне забезпечення — прекрасний тому приклад: воно коректно не працюватиме у вікні реального режиму (віртуального реального) під управлінням Windows. Щоб на Pentium 4 запустити таке програмне забезпечення в первинному спрощеному режимі, необхідно перервати процес початкового завантаження системи і просто завантажити DOS. Це можна виконати в Windows 9х (виключаючи Windows Me), натискаючи клавішу <F8>, коли на екрані з'являється підказка Starting Windows.... Потім, коли з'явиться завантажувальне меню, в нім потрібно вибрати команду завантаження простій 16-розрядної операційної системи реального режиму DOS. Краще всього вибрати Safe mode command prompt, якщо ви збираєтеся використовувати діагностичні процедури (зазвичай не виконувані в захищеному режимі), які повинні бути запущені з мінімумом драйверів і іншого програмного забезпечення.

Операційна система Windows Me створювалася, як ви знаєте, на основі Windows 98. Намагаючись відучити користувачів від 16-розрядного режиму роботи, Microsoft видалила опцію завантажувального меню (Startup). Операційні системи Windows NT/2000/XP також позбавлені можливості перервати завантаження так само. Для запуску комп'ютера в режимі DOS доведеться створити завантажувальний диск, який і потім використовуватиметься для завантаження системи в реальному режимі. Як правило, цей режим потрібний для певного технічного обслуговування, зокрема для виконання апаратної діагностики або безпосереднього редагування секторів диска.

Хоча реальний режим використовується DOS і "стандартними" додатками DOS, є спеціальні програми, які "розширюють" DOS і дозволяють доступ до додаткової пам'яті XMS (понад 1 Мбайт). Вони іноді називаються розширювачами DOS і зазвичай включаються як частина програмного забезпечення DOS або Windows Зx, в якому використовуються. Протокол, що описує, як виконувати DOS в захищеному режимі, називається DPMI (DOS protected mode interface — інтерфейс захищеного режиму DOS).

Цей протокол використовувався в Windows Зx для звернення до додаткової пам'яті XMS при роботі додатків для Windows 3х. Він дозволяв 16-розрядним застосуванням використовувати пам'ять, що перевищує 1 Мбайт. Розширювачі DOS особливо часто застосовуються в іграх DOS; саме завдяки ним ігрова програма може використовувати об'єм пам'яті, набагато стандартний (1 Мбайт), що перевищує, до якого можуть адресуватися більшість програм, що працюють в реальному режимі. Ці розширювачі DOS перемикають процесор в реальний режим і назад, а у разі запуску під управлінням Windows застосовують інтерфейс DPMI, вбудований в Windows, і тим самим дозволяють іншим програмам спільно використовувати частину додаткової пам'яті XMS системи.

Є ще одне виключення: перші 64 Кбайт додаткової пам'яті в реальному режимі доступні програмам. Це результат помилки в першому комп'ютері IBM AT, пов'язаною з 21-ою лінією адреси пам'яті (А20, оскільки АТ — перший рядок адреси). Управляючи сигналом на лінії А20, програмне забезпечення реального режиму може діставати доступ до перших 64 Кбайт додаткової пам'яті — це перші 64 Кбайт пам'яті, наступні за першим мегабайтом. Ця область пам'яті називається областю верхніх адрес пам'яті (high memory area — НМЛ).



2. SpeedFan 4.27 – це безкоштовна програма, яка дозволяє контролювати температуру і швидкість обертів вентиляторів (кулерів) в системі. Програма працює практично зі всіма чіпами моніторингу, а також дозволяє змінювати швидкість обертів вентиляторів в залежності від температури в середині корпуса комп’ютера.

SpeеdFan 4.27 також може показувати S.M.A.R.T. інформацію о тих жорстких дисках, які підтримують цю функцію і показує температуру цих жорстких дисків.






Використана література:



Злобін Г.Г., Рикалюк Р.Є. Архітектура та апаратне забезпечення ПЕОМ: Навч. посіб. – К.: Каравела, 2006

Угрюмов Е.П. Цифровая схемотехника. - СПб.: БХВ - Петербург, 2001