Revision 20865963 of "Intel Pentium 4" on ukwiki

{{Infobox Computer Hardware Cpu
| name             = Pentium 4
| image           = Pentium 4-2,4GHz.JPG
| caption         = Intel Pentium 4
| produced-start = 2000
| produced-end    = 2008
| slowest       = 1300 | slow-unit = MHz
| fastest      = 3800 | fast-unit = GHz
| fsb-slowest = 400| fsb-slow-unit = MHz
| fsb-fastest = 1066 | fsb-fast-unit = MT/s
| manuf1      = Intel
| size-from = 0.180
| size-to   = 0.065
| arch      = [[IA-32]], [[MMX]], [[SSE]], [[SSE2]], [[SSE3]], [[EM64T]]
| microarch = [[x86]], [[x86-64]]
| sock1 = [[Socket 423]]
| sock2 = [[Socket 478]]
| sock3 = [[Socket 775]]
| core1 = Willamette
| core2 = Northwood
| core3 = Gallatin
| core4 = Prescott
| core5 = Cedar Mill
| predecessor  = [[Pentium III]]
| successor  = [[Pentium M]]
}}

'''[[Intel]] [[Pentium]] 4''' — одноядерний мікропроцесор компанії [[Intel]], що був представлений 20 листопада [[2000]] року. Він став першим мікропроцесором, в основі якого була принципово нова архітектура сьомого покоління (за класифікацією [[Intel]]) — [[Intel NetBurst (microarchitecture)|NetBurst]]. Крім різних варіантів Pentium 4 до процесорів архітектури NetBurst відносяться двоядерні процесори [[Pentium D]], а також деякі процесори [[Xeon]], які призначені для серверів. Більш того, частина процесорів [[Celeron]], призначених для систем нижнього цінового рівня, являють собою Pentium 4 з частково відключеним кешем другого рівня.

Виробництво процесорів Pentium 4 було почате в 2000 році. З середини 2005 року почався їх поступовий перехід до нижньої цінової категорії. Їх місце зайняли двоядерні процесори [[Pentium D]]. 27 липня 2006 року з'явились перші процесори [[Intel Core 2|Core 2 Duo]], що замінили процесори архітектури NetBurst, а вже 8 серпня 2007 року компанія [[Intel]] повідомила про початок дії програми стосовно зняття з виробництва всіх процесорів архітектури [[NetBurst]].

== Нововведення ==
===Hyper Pipelined Technology===
Назвою Hyper Pipelined Technology конвеєр Pentium 4 зобов'язаний своїй довжині – 20 стадій. Для порівняння – довжина конвеєра Pentium III становить 10 стадій.  Завдяки декомпозиції виконання кожної команди на більш дрібні етапи, кожен з цих етапів може виконуватися швидше, що дозволяє безперешкодно збільшувати частоту процесора. Так, якщо при використовуваному сьогодні технологічному процесі 0.18 мкм гранична частота для Pentium III складає 1 ГГц (ну або, за більш оптимістичними оцінками, 1.13 ГГц), Pentium 4 зможе досягти частоти 2 ГГц. Однак, у надмірно довгого конвеєра є і свої недоліки. Перший недолік очевидний – кожна команда тепер, проходячи більше число стадій, виконується довше. Тому, щоб молодші моделі Pentium 4 перевершували по продуктивності старші моделі Pentium III, частоти Pentium 4 починаються з 1.4 ГГц. Якби Intel випустив би Pentium 4 1 ГГц, то цей процесор безсумнівно би програв у продуктивності гігагерцовому [[Pentium III]]. Другий недолік довгого конвеєра розкривається при помилках в пророкуванні переходів. Як і будь-який сучасний процесор Pentium 4 може виконувати інструкції не тільки послідовно, але й паралельно, відповідно не завжди в тому порядку, як вони йдуть у програмі і не завжди достеменно знаючи напрямки умовних переходів. Для того, щоб вибирати в таких випадках гілки програми для подальшого виконання, процесор прогнозує результати виконання умовних переходів на основі накопиченої статистики. Однак, іноді блок пророкування переходів все ж помиляється, і в цьому випадку доводиться повністю очищати конвеєр, зводячи нанівець усю попередньо проведену процесором роботу по виконанню не тієї гілки в програмі. Природно, при більш довгому конвеєрі, його очищення обходиться дорожче в тому сенсі, що на нове заповнення конвеєра йде більше процесорних тактів, а отже і часу.
===Advanced Dynamic Execution===
Advanced Dynamic Execution, як раз і є мінімізація простою процесора при неправильному прогнозі переходів і збільшення імовірності правильних передбачень. Для цього Intel поліпшив блок вибірки інструкцій для позачергового виконання і підвищив правильність передбачення переходів. Правда, для цього алгоритми передбачення переходів були доопрацьовані мінімально, основним же засобом для досягнення мети було обрано збільшення розмірів буферів, з якими працюють відповідні блоки процесора. Так, для вибірки наступної інструкції для виконання використовується тепер вікно завбільшки в 126 команд проти 42 команд процесора Pentium III. Буфер ж, у якому зберігаються адреси виконаних переходів і на підставі якого процесор пророкує майбутні переходь, тепер збільшено до 4 Кбайт, у тієї годину як у Pentium III його розмір становив всього 512 байт. Результатом цього, а також завдяки невеликій доопрацювання алгоритмом, ймовірність правильного передбачення переходів була поліпшена в порівнянні з Pentium III на 33%. Це дуже хороший показник, оскільки тепер Pentium 4 пророкує переходи правильно в 90-95% випадків.
===Trace Cache===
Замість звичайного L1 [[Кеш|кешу]], який Pentium III був розділений на область інструкцій і область даних у Pentium 4 застосований новий підхід. Інструкції кеші L1 не зберігаються, він призначений тільки для даних. Для кешу інструкцій тепер використовується Trace Cache, однак у порівнянні зі звичайним L1-кешем він має багато переваг, спрямованих знову ж на мінімізацію простоїв процесора при виконанні неправильних прогнозів переходів. Перше і основне – у Trace Cache зберігаються вже декодовані інструкції. Це означає, що в ньому зберігаються не класичні x86 інструкції, а так звані микрокоманды, більш прості операції якими безпосередньо оперує процесорне ядро. Збереження в Trace Cache мікрооперацій дозволяє уникнути повторного декодування інструкцій x86 при повторному виконанні того ж ділянки програми або при неправильному прогнозі переходів.

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

Intel не розкриває розмірів свого Trace Cache в кілобайтах, однак, відомо, що в ньому може бути збережено до 12000 мікрооперацій.
===Rapid Execute Engine===
Найбільш проста частина сучасного процесора – це [[ALU]] (арифметико-логічний пристрій). Завдяки цьому факту, [[Intel]] визнав можливим збільшити його тактову частоту всередині Pentium 4 вдвічі по відношенню до самого процесора. Таким чином, наприклад, в 1.4 ГГц Pentium 4 ALU працює на частоті 2.8 ГГц.

У ALU виконуються прості цілочисельні інструкції, тому, продуктивність нового процесора при операціях з цілими числами повинна бути дуже високою. Однак, на продуктивності Pentium 4 при операціях з речовими числами, MMX або SSE дворазове прискорення ALU ніяк не позначається. Таким чином, латентність ALU істотно знижується. Зокрема, на виконання однієї інструкції типу add Pentium 4 1.4 ГГц витрачає всього 0.35 нс, в той час як виконання цієї команди у Pentium III 1 ГГц займає 1 нс.
===SSE2===
Реалізувавши у своєму процесорі Athlon новий конвеєрний FPU, [[Advanced Micro Devices|AMD]] дуже сильно обігнала інтеловський Pentium III в продуктивності при операціях з речовими числами. Однак, Intel у своєму Pentium 4 не став зосереджуватися на вдосконалення свого FPU, а просто збільшив можливості блоку SSE. В результаті, в Pentium 4 має місце розширений набір команд SSE2, в якому до наявного набору з 70 інструкцій було додано ще 144. Таке рішення – результат NetBurst ідеології, основною метою якої є збільшення швидкості роботи з потоками даних. Інструкції SSE дозволяли оперувати з вісьмома 128-бітними регістрами XMM0..XMM7, в яких зберігалися за чотири дійсних числа одинарної точності. При цьому всі SSE операції проводилися одночасно над четвірками чисел, в результаті чого спеціально оптимізовані програми, в яких проводилося велику кількість однотипних обчислень (а до них, крім обробки потоків даних в якійсь мірі відносяться і 3D-ігри), отримували істотний приріст в продуктивності. SSE2 ж оперує з тими ж самими регістрами і назад сумісний з SSE процесора Pentium III. А настільки вражаюче розширення набору команд викликано тим, що тепер операції з 128-бітними регістрами можуть виконуватися не тільки як з четвірками дійсних чисел подвійної точності, але і як з парами дійсних чисел подвійної точності, з шістнадцятьма однобайтовыми цілими, з вісьмома короткими двобайтовими цілими, з чотирма четырехбайтовыми цілими, з двома восьмибайтовыми цілими або з 16 байтовими цілими. Тобто, тепер SSE2 представляючи собою симбіоз MMX і SSE і дозволяє працювати з будь-якими типами даних, влезающими в 128-бітові регістри.

== Використання кешу ==
===L1 кеш===
Що стосується кеша першого рівня в Pentium 4, оскільки тепер команди зберігаються в Trace Cache, він призначений тільки для зберігання даних. Однак, його розмір в Pentium 4, заснованому на ядрі Willamette складає всього 8 Кбайт. Це виглядає досить невеликий цифрою навіть на тлі 16-килобайтной області даних в кеші L1 Pentium III. Однак, Intel був змушений скоротити обсяг кеша першого рівня в Pentium 4, так як ядро цього процесора і без того виходило занадто великим. Тим не менш, архітектура цього процесора може підтримувати L1-кеш і більшого розміру, тому, швидше за все, при переході на технологічний процес 0.13 мкм і нове ядро Northwood, цей кеш буде збільшено.

Однак, для збільшення продуктивності, Intel застосував для доступу до L1-кешу новий алгоритм, чим зменшив в Pentium 4 латентність цього кеша до двох процесорних тактів замість трьох тактів в Pentium III. Таким чином, враховуючи більшу тактову частоту Pentium 4, час реакції його L1 кешу складає всього 1.4 нс для 1.4 ГГц моделі проти 3нс у L1 кешу Pentium III 1 ГГц. Також як і у [[Pentium III]], L1 кеш Pentium 4 є write through і асоціативним з 4 областями асоціативності. При цьому довжина одного рядка кеша L1 дорівнює 64 байтам.
===L2 Advanced Transfer Cache===
[[Процесор]] Pentium 4 має Advanced Transfer Cache другого рівня об'ємом 256 Кбайт. Також, як і у Pentium III, L2-кеш має широку 256-бітну шину, завдяки якій процесори від Intel мають більш високу пропускну здатність кеша, ніж їх конкуренти від AMD, використовують 64-бітну шину кеша. Однак, на відміну від Athlon, в Pentium 4 (втім, також як і у Pentium III) L2 кеш не є ексклюзивним, тобто він дублює дані, що знаходяться в кеші L1. Так як Pentium 4 розрахований на обробку потокових даних, швидкість роботи L2-кеша для нього є одним з ключових моментів. Тому, Intel збільшив пропускну здатність кеша другого рівня в Pentium 4 в два рази. Це вдосконалення було зроблено завдяки передачі даних з L2-кеша на кожен процесорний такт, в той час, як дані з L2-кеша Pentium III передаються тільки на кожен другий такт. Таким чином, пропускна здатність L2-кеша Pentium 4, що працює, наприклад, з частотою 1.4 ГГц, має тепер значну величину 44.8 Гбайт/с. Для порівняння – пропускна здатність Advanced Transfer Cache у Pentium III 1 ГГц становить 16 Гбайт/с. Також як і у Pentium III, L2 кеш має вісім областей асоціативності та рядка довжиною 128 байт. Однак, на відміну від Pentium III, кожен рядок може бути вилучено не цілком, а 64-байтовим половинкам. Говорячи про систему кешування в Pentium 4, не можна обійти стороною і той факт, що архітектура NetBurst підтримує і кеш третього рівня розміром до 4 Мбайт. Однак, в Pentium 4 поки ця можливість використовуватися не буде. Вона зарезервована для майбутнього застосування в серверних процесорах.

==Northwood==
Intel Pentium 4 1800 на ядрі Northwood

7 січня 2002 компанією Intel були анонсовані процесори Pentium 4 на новому ядрі Northwood на основі ядра ​​Willamette із збільшеним до ½ Мбайт об'ємом кеш-пам'яті другого рівня. Процесори на ядрі Northwood містили 55 млн транзисторів і вироблялися за новою 130 нм КМОН-технологією з мідними з'єднаннями. За рахунок використання нової технології виробництва вдалося значно скоротити площу кристала: кристал процесорів на ядрі Northwood ревізії B0 мав площу 146 мм ², а в наступних ревізіях площа кристала зменшилася до 131 мм ².

Тактова частота процесорів Pentium 4 на ядрі Northwood становила 1,6-3,4 ГГц, частота системної шини - 400, 533 або 800 МГц в залежності від моделі. Всі процесори на ядрі Northwood випускалися в корпусі типу FC-mPGA2 і призначалися для установки в системні плати з роз'ємом Socket 478, напруга ядра цих процесорів становило 1,475-1,55 В залежно від моделі, а максимальне тепловиділення - 134 Вт на частоті 3,4 ГГц.

14 листопада 2002 був представлений процесор Pentium 4 з 3066 МГц, що підтримує технологію віртуальної багатоядерності - [[Hyper-Threading]]. Цей процесор виявився єдиним процесором на ядрі Northwood з частотою системної шини 533 МГц, що підтримував технологію Hyper-Threading. Надалі цю технологію підтримували всі процесори з частотою системної шини 800 Мгц (2,4-3,4 ГГц)

==Prescott==
2 лютого 2004 компанією Intel були анонсовані перші процесори Pentium 4 на ядрі Prescott. Вперше з моменту своєї появи архітектура NetBurst зазнала значних змін.

Основною відмінністю ядра Prescott від попередників був подовжений з 20 до 31 стадії конвеєр. Це дозволило збільшити частотний потенціал процесорів Pentium 4, однак могло призводити до більш серйозних втрат продуктивності при помилці передбачення переходів. У зв'язку з цим ядро ​​Prescott отримало вдосконалений блок пророкування переходів, що дозволив значно скоротити кількість помилок передбачення. Крім того, було модернізовано ALU, зокрема, був доданий блок цілочисельного множення, був відсутній в процесорах на ядрах Willamette і Northwood. Кеш даних першого рівня був збільшений з 8 до 16 Кбайт, а кеш другого рівня - з 512 Кбайт до 1 Мбайт.

Тактова частота процесорів Pentium 4 на ядрі Prescott становила 2,4-3,8 ГГц, частота системної шини - 533 або 800 МГц в залежності від моделі. При цьому в настільних процесорах з тактовою частотою нижче 2,8 ГГц була відключена підтримка технології [[Hyper-threading]]. Спочатку процесори на ядрі Prescott випускалися в корпусі типу FC-mPGA2 (Socket 478), а потім - у корпусі типу FC-LGA4 (LGA775). Процесори містили 125 млн транзисторів, вироблялися по 90 нм технології КМОН з використанням напруженого кремнію (en: strained silicon), площа кристала становила 112 мм ², напруга ядра - 1,4-1,425 У залежно від моделі.

Незважаючи на те, що процесори на ядрі Prescott вироблялися за новою 90 нм технології, домогтися зниження тепловиділення не вдалося: так, наприклад, Pentium 4 3000 на ядрі Northwood мав типове тепловиділення 81,9 Вт, а Pentium 4 3000E на ядрі Prescott в корпусі типу FC-mPGA2 - 89 Вт Максимальне тепловиділення процесорів Pentium 4 на ядрі Prescott становило 151,13 Вт на частоті 3,8 ГГц .

Процесори Pentium 4 на ядрі Prescott отримали підтримку нового додаткового набору команд - [[SSE3]], а також підтримку технології EM64T (у ранніх процесорах підтримка 64-бітових розширень була відключена). Крім того, була оптимізована технологія Hyper-threading (зокрема, в набір SSE3 увійшли інструкції, призначені для синхронізації потоків) .

У результаті змін, внесених в архітектуру NetBurst, продуктивність процесорів на ядрі Prescott змінилася в порівнянні з процесорами на ядрі Northwood, що мають рівну частоту, таким чином: у однопоточних додатках, що використовують інструкції x87, MMX, SSE і SSE2, процесори на ядрі Prescott виявлялися повільніше , ніж попередники, а в додатках, що використовують багатопоточність або чутливих до об'єму кеш-пам'яті другого рівня, випереджали їх .

20 лютого 2005 компанією Intel були представлені процесори Pentium 4 на модернізованому ядрі Prescott. Це ядро ​​відрізнялося від попередника лише збільшеним до 2 Мбайт об'ємом кеш-пам'яті другого рівня, тому отримало найменування Prescott 2M. Кількість транзисторів у процесорах на новому ядрі збільшилася до 169 млн, площа кристала - до 135 мм ², а напруга ядра не змінилося в порівнянні з процесорами на ядрі Prescott.

Всі процесори на ядрі Prescott 2M випускалися в корпусі типу FC-LGA4, мали частоту системної шини 800 МГц, підтримували технології Hyper-threading і EM64T. Тактова частота процесорів Pentium 4 на ядрі Prescott 2M становила 3-3,8 ГГц .

==Cedar Mill==

16 січня 2006 компанією Intel були представлені процесори на ядрі Cedar Mill. Cedar Mill стало останнім ядром, що використовувалися в процесорах Pentium 4. Воно являло собою ядро ​​Prescott 2M, випускається по новому техпроцесу - 65 нм. Застосування 65 нм технології дозволило зменшити площу кристала до 81 мм ².

Існувало чотири моделі процесорів Pentium 4 на ядрі Cedar Mill: 631 (3 ГГц), 641 (3,2 ГГц), 651 (3,4 ГГц), 661 (3,6 ГГц). Всі вони працювали з частотою системної шини 800 МГц, призначалися для установки в системні плати з роз'ємом [[LGA775]], підтримували технологію Hyper-Threading, EM64T, XD-bit, а в останніх ревізіях C1/D0 обзавелися ще й енергозберігаючими EIST, С1Е і технологією захисту від перегріву ТМ2. Напруга живлення цих процесорів була в межах 1,2-1,3375 В, параметр TDP становив 86 Вт для процесорів степпінгів B1 і C1, в ревізії D0 цей показник вдалося зменшити до 65 Вт.

Ядро Cedar Mill також лежало в основі двоядерних процесорів Pentium D на ядрі Presler, які мали не один монолітний кристал, а два кристала аналогічних тим, які використовувалися в процесорах Pentium 4, розташованих на підкладці і закритих теплорозподільною кришкою.

Процесори Pentium 4 на ядрі Cedar Mill випускалися до 8 серпня 2007 року, коли компанія Intel оголосила про зняття з виробництва всіх процесорів архітектури NetBurst.
== Посилання ==
'''Офиційна інформація'''
* {{Cite web | url=http://www.intel.com/design/Pentium4/documentation.htm |title=Документація по процесорам Intel Pentium 4}}{{ref-en}}

'''Опис архітектури та історія процесорів'''
* {{Cite web|url=http://www.fcenter.ru/online.shtml?articles/hardware/processors/11103|title=Pentium 4: от Willamette до Prescott|archiveurl=http://www.webcitation.org/61BZPlSXH|archivedate=2011-08-25}}{{ref-en}}
* {{Cite web|url=http://www.hardwaresecrets.com/article/235|title=Inside P4 Architecture|archiveurl=http://www.webcitation.org/61BZRGf1l|archivedate=2011-08-25}}{{ref-en}}

== Джерела ==
* [http://www.radioland.net.ua/contentid-214.html Нововведення]
* [http://www.radioland.net.ua/contentid-214.html Використання кеша]
* [http://www.cpu-world.com/Cores/Cedar%20Mill.html Cedar Mill]

== Див. також ==
* [[Pentium]]
* [[Intel]]

{{Intel CPU}}