А. і Б. Стругацькі "Казка про трійку".
Власне, приводом для цієї статті стала деяка заплутаність термінології, пов'язаної з архітектурою сучасних комп'ютерів. Шин стає все більше, чіпсети все інтегруватися і що є де, розібратися все складніше. Так що окинемо швидким поглядом сучасну архітектуру PC.
Отже, всім відомо, що основою будь-якого сучасного персонального комп'ютера, чи то пак PC, є процесор. Він же CPU, він же "камінь", він же "проц". Основне завдання процесора - обробка даних відповідно до заданих правил. Тобто подаючи на процесор два числа і команду "скласти", ми отримаємо в результаті суму цих чисел. І глибше в нетрі того, як саме це відбувається, лізти не будемо. Але природним чином постає питання, звідки процесор бере дані і куди вони потім відправляються. Для цих операцій потрібно інтерфейс з пристроями введення-виведення. І це саме те, для чого потрібна так звана материнська або системна плата. На платі розташований чіпсет (chipset) або, просто кажучи, набір мікросхем, що забезпечує взаємодію процесора з навколишньою дійсністю (пристроями введення-виведення і зберігання інформації). Власне кажучи, можна інтегрувати чіпсет разом з процесором на один напівпровідниковий кристал і отримати так звану однокристальних систем (system-on-chip), але поки що в області PC це не вигідно, що переконливо продемонстрував Intel, відмовившись від розробки Timna.
За сучасними архітектурним канонам чіпсет складається з двох мікросхем (число два теж, загалом-то, визначається співвідношенням ціни і ступеня інтегрованості). Цілком можливо, що в недалекому майбутньому ці два кристала зіллються в екстазі (як буде видно пізніше, до того все і йде), але поки економічно і технологічно вигідніше їх розділяти. Дві складові чіпсета називаються "північним мостом" (він же Host Bridge) і "південним мостом" (PCI-to-ISA Bridge). Північний міст безпосередньо з'єднаний з процесором спеціальної шиною, яка називається системної (ця ж шина носить горде ім'я FSB - Front side bus). З іншого боку північний міст з'єднаний з оперативною пам'яттю (для чого містить контролер пам'яті). З третього боку він з'єднується з шиною AGP (теж за допомогою відповідного контролера) і таким чином забезпечує висновок на екран. І, нарешті, з четвертого боку північний міст пов'язаний з шиною PCI. Південний міст знаходиться по іншу сторону шини PCI і спілкування з процесором і пам'яттю у нього відбувається через цю шину і північний міст. По крайней мере, так було до недавнього часу - тобто до Intel BX і VIA KT133 включно. Південний міст забезпечує роботу шини ISA (і пристроїв, що працюють через ISA - клавіатури, миші і портів), IDE (жорсткі диски, CD-ROM та інше), USB і взаємодія з BIOS'ом. Тобто, практично, північний міст забезпечує роботу внутрішньосистемних ресурсів, а південний - периферії. Схема системи з подібною архітектурою на рис. 1.
Однак, починаючи з чіпсета i810 у Intel і VIA Apollo Pro266 / KT266 у VIA (Ali, до речі, теж обіцяє в найближчих чіпсетах), була введена так звана хабів (від слова Hub) архітектура (рис. 2).
Північний міст був перейменований в GMCH (Graphics and Memory Controller Hub), а південний - в ICH (Input / Output Controller Hub). При цьому основна розкладка ресурсів залишилася колишньою, але шина PCI повністю відійшла до ICH, а передача даних між хабами здійснювалася по виділеній високошвидкісній шині. Навіщо це було зроблено, знову-таки, мова нижче.
Тепер розглянемо окремі шини докладніше. Почнемо, природно, з системної шини. Отже, шина FSB з'єднує процесор і північний міст і має ішіріну 64 біта або 8 байт (тут і далі мається на увазі ширина тієї частини шини, по якій передаються дані). У Intel ця шина називається AGTL +, у AMD - EV6. Частота шини FSB - це саме та частота, яка множиться на коефіцієнт множення процесора і визначає його робочу частоту. Так, номінальна частота FSB для процесорів Celeron - 66 МГц, для Pentium III - 100 або 133 МГц, для останніх процесорів AMD (Athlon, Duron) - 100 МГц (але оскільки специфікація EV6 передбачає передачу даних по фронту і спаду синхроимпульса, то ефективна частота в цьому випадку виходить 200 МГц).
Ще одна важлива (скоріше, навіть основна) характеристика будь-якої шини - максимальна пропускна здатність. Вона визначає максимальний обсяг даних, який можна передати по шині в одиницю часу, і виходить простим множенням розрядності на частоту. Відповідно, для Celeron (розігнаному) пропускна здатність FSB буде 533 Мб / с, для PIII - 800 або 1066 Мб / с, для Athlon - 1600 Мб / с. Природно, повністю потенціал шини в реальних системах ніколи не реалізується, оскільки будь-який запит даних від процесора передбачає деяку затримку перед їх передачею.
Шина пам'яті. З'єднує північний міст (контролер пам'яті) і пам'ять. Теж має ширину 64 біта (для процесорів типу Pentium і вище, у 486 було 32 біта). До недавнього часу частота шини пам'яті і FSB завжди збігалася. Однак в сучасних чіпсетах можна встановлювати для цих шин різні робочі частоти. Скажімо, чіпсет VIA Apollo Pro 133A дозволяє встановлювати частоту шини пам'яті на 33 МГц більше або менше частоти FSB (тобто 66, 100 і 133 МГц). Чіпсет VIA KT133 (під Athlon) дозволяє ставити частоти 100 або 133 МГц. Аналогічна ситуація і з останніми чіпсетами від Intel. Таким чином, для типової на сьогодні пам'яті стандарту PC100 SDRAM ми отримуємо пропускну здатність 800 Мб / с, для PC133 - 1066 Мб / с. Реальний потік даних для шини пам'яті буде, мінімум, вдвічі (а скоріше, в 5-6 разів) менше в силу різних затримок, пов'язаних з механізмом роботи схем пам'яті. Власне кажучи, саме це перманентне розбіжність пропускної здатності шин FSB, пам'яті і реального швидкодії пам'яті і рухало технологічний прогрес: DRAM-> FPM DRAM -> EDO DRAM -> PC66 SDRAM -> PC100 SDRAM -> PC133 SDRAM.
Один з варіантів вирішення проблеми був запропонований компанією Rambus з її сумно знаменитої DRDRAM (Direct Rambus DRAM). Ця пам'ять передбачала 16-розрядну шину даних і роботу на частоті 400 МГц по обох фронтах синхросигналу. Відповідно, ефективна частота виходила 800 МГц, а пропускна здатність - 1600 Мб / с (для одного каналу Rambus, а їх може бути кілька). Однак, незважаючи на райдужні перспективи, Rambus не набула поширення (в основному, з економічних і, знову ж таки, технологічних міркувань) і нині все більше займається судовими іскмі, а не технологіями. Єдиний чіпсет i820, що підтримує DRDRAM, повільно, але вірно повзе на звалище історії. Другий варіант - DDR SDRAM в стандарті PC266. Тобто та ж сама SDRAM, але працює по обох фронтах 133 МГц синхросигналу. Відповідно, пропускна здатність 2.1 Гб / с. Ну і реальний потік даних побільше, ніж у SDRAM. Зараз VIA оголосила перші масові DDR чіпсети VIA Apollo Pro266 / KT266, так що скоро побачимо, що буде в реальності.
Наступна шина - шина AGP. Розшифровується це як Accelerated Graphics Port. Розроблено стандарт APG був фірмою Intel, і, відповідно, вперше підтримка AGP з'явилася в чіпсеті Intel BX. З появою APG відеокарти фактично була виділена власна швидкісна шина до пам'яті (контролер AGP знаходиться в північному мосту, контролер пам'яті - там же). Зроблено це було, щоб звільнити шину PCI від потоку даних, що вимагається для роботи з'явилися приблизно в той же час 3D-прискорювачів. Шина AGP 32-розрядна і працює на частоті 66 МГц. Відповідно її пропускна здатність - 266 Мб / с. Потім послідували специфікації AGP 2X і 4X, що забезпечують пропускні спроможності 532 Мб / с і 1064 Мб / с. AGP дозволяє відеокарті безпосередньо працювати з оперативною пам'яттю і використовувати частину її в якості текстури пам'яті. Особливо це актуально для видеоконтроллеров, інтегрованих безпосередньо в північний міст (наприклад, i810). До речі, чіпсети, що підтримують частоту FSB 133 МГц "по-справжньому", відрізняються від тих, які просто можна розігнати до 133 МГц тим, що використовують при Тактирование AGP змінний коефіцієнт множення і частота APG залишається рівною 66 МГц. В іншому ж дивіться статтю Макса Курмаза "AGP: повне керівництво".
З шин, підтримуваних північним мостом, у нас залишається тільки шина PCI (Peripherial Component Interconnect). Теж розроблена Intel і служить для підключення пристроїв розширення (звук, мережа та інше). Шина 32-розрядна, працює на частоті 33 МГц (теж повинна забезпечуватися змінним дільником). Відповідно, пропускна здатність - 133 МГц. Шина PCI підтримує режим роботи Bus Mastering. Тобто PCI-пристрій може захопити управління шиною і організувати передачу даних без участі процесора. У бруківці архітектурі чіпсета підтримка PCI забезпечувалася північним мостом, в хабів за неї відповідає південний. У першому випадку крім передачі даних від PCI-пристроїв, шина PCI виконувала ще одну задачу - забезпечувала зв'язок між північним і південним мостами (тобто, фактично, між оперативної та дискової пам'яттю).
У хабів архітектурі цей зв'язок здійснюється по спеціальній шині. Intel ввела її, починаючи з чіпсета i810, VIA - зі свежеоб'явленних Apollo Pro266 / KT266, ALi теж має намір наслідувати їхній приклад в найближчих чіпсетах. У Intel ця шина називається Intel Hub Interface, у VIA - V-Link. З розрядністю і робочою частотою ситуація не зовсім зрозуміла, оскільки обидві компанії особливо не поширюються про специфікації. Точно відома тільки пропускна здатність - в обох випадках 266 Мб / с.
Далі слід шина IDE (integrated drive electronics), що служить для зв'язку з зовнішніми накопичувачами - вінчестерами, CD-ROM і т.д. Підключення пристроїв здійснюється 40- або 80-жильним кабелем, тактова частота 16.5 МГц (половина частоти PCI), контролер розташований в південному мосту (в разі ATA-100 може використовуватися зовнішній контролер). Відповідно, пропускна здатність в режимі PIO Mode 4 - 16.5 Мб / с, в режимі Ultra DMA33 - 33 Мб / с (робота по обох фронтах), Ultra DMA66 - 66 Мб / с (використовується 80-жильний кабель, в якому сигнальні дроти екрановані один від одного земляними, що дозволило істотно поліпшити тимчасові параметри сигналу) і, нарешті, новомодний Ultra DMA100 - 100 Мб / с. Тут, як завжди, максимальна пропускна здатність недосяжна, і в будь-якому випадку швидкість передачі обмежується швидкістю лінійного читання з диска. Єдиний випадок, коли швидкість може наближатися до максимальної - якщо дані беруться безпосередньо з буфера вінчестера.
Така, коротко, архітектура сучасного комп'ютера. Ми ще не торкнулися шин ISA, USB і інших зовнішніх пристроїв, але ці питання не так принципові. А оцінити шлях даних і можливі вузькі місця на цьому шляху ви тепер можете самі.
Костянтин АФАНАCЬЕВ, [email protected]