А внутрях у ей
неёнка. Она ей думает... А. и Б. Стругацкие "Сказка о тройке". |
Собственно, поводом для данной статьи послужила некоторая запутанность терминологии, связанной с архитектурой современных компьютеров. Шин становится все больше, чипсеты все интегрированнее и что есть где, разобраться все сложнее. Так что окинем беглым взглядом современную архитектуру 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]
Горячие темы