<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


11 Января 1999

ibm360.jpg (51343 bytes)

IBM 360 - классика компьютеростроения

Кажется порой, что 90% того, что сегодня считается новым IBM уже придумывал 10, 20 или 30 лет тому назад. Зачастую, так оно и есть. Просто техника от IBM, как правило, элитна - в том смысле, что ориентирована отнюдь не на массовый рынок, а на крупные компании, которым нужно совсем не то, что всем. Или было нужно совсем не то, что всем.

Время течет, и то, что было элитным (например, видеосистемы с трехмерной акселерацией) сегодня продается по сто баксов на любом углу. Это, впрочем, пример несколько экстремального варианта развития мира. Можно привести и менее яркие примеры - флоппи-диски, которые IBM разработал для загрузки с них фирмвера в свои "стиральные машинки", а вовсе не для использования в микрокомпьютерах. Тут не случилось дикого удешевления, по крайней мере, в начальный период использования их в "бытовой" технике, случился лишь переход некоторой технологии из области спецприменений в область попсы.

К чему я все это? Факт миграции mainframe-style решений в бытовуху имеет место быть. Точнее, не всегда   в бытовуху - тот же Pentium Pro пришел как процессор для серверов, и уж во второй своей инкарнации, в виде Pentium II/Celeron стал процессором для всех.

Вероятно, так случится и с героем сегодняшнего номера. Героем по имени NGIO.

NGIO - это шина такая. Очевидно, шина будущего. Точнее сказать, вовсе это и не шина, но если начать это говорить, то придется скомкать все в кучу, поэтому начнем по порядку.

Что у вас сегодня в компьютере в качестве шины? PCI и ISA? Нравится? ISA - не очень (низкая пропускная способность, отсутствие приличных механизмов plud'g'play, высокая нагрузка на процессор при работе - наиболее яркие отрицательные черты), PCI - вполне, но и он уже уступает часть своего влияния слоту AGP, так как даже в бытовой машинке производительности PCI хватает совсем не на все.

А уж в сервере! Если рабочая станция требует высокой производительности шины только на участках процессор-память и видеокарта-память, то в сервере нагружены и каналы сетевая карта-память, диски-память, а если по уму проектировать, то в идеале бы сделать еще и прямой обмен диск-сетевая карта...

Поставить в сервер вместо слотов PCI пять слотов AGP? Нельзя - как и все локальные шины AGP ограничен по числу слотов - более одного не поддерживается. Нужна шина, которая бы не имела такого ограничения, и выдержала бы рост производительности процессоров хоть на пару поколений вперед. Ну и, раз уж пререрабатывать шину, можно бы внести в нее и другие изменения, потребность в которых поднакопилась изрядно. Ведь, по сути, начиная еще с S-100, шины, популярной во времена Intel 8080, сохраняется существенная преемственность архитектур систем ввода-вывода.

Начнем с того, что базируются эти системы сплошь и рядом на... шинах. Мы так привыкли к этому слову, шина, что и забыли, что оно, по сути, значит и какие есть альтернативы. А ведь шина - не единственный и далеко не первый механизм подключения устройств ввода-вывода к компьютеру.

Напомню, какие свойства характерны для шины:

До шин было несколько решений проблемы ввода-вывода. Пара примеров:

"Варварский" - устройства ввода-вывода подключались прямо к процессору и в него встраивались средства обмена с ними. Например, непосредственно аккумулятор процессора переводился в режим сдвигового регистра и "выдвигал" свое содержимое бит за битом на головку записи лентопротяжного механизма.

"Крутой" - каналы a la IBM 360. Специализированные процессоры ввода-вывода, имевшие персональный вход в память. С процессором не "разговаривали" - общались толко записками. Он им клал в память программы, они эти программы выполняли. "Саша, сходи в магазин и делай уроки. Деньги по адресу 0x0F26A30. Твой CPU."

ngio_struct.gif (17305 bytes)

TCA - target channel adapter. HCA - host channel adapter.

Уроки, кстати, дело полезное. Их из IBM-овских наработок кто только не извлекал. И DEC, и Sun. А теперь и Intel.

Прочитав все это проницательный читатель, наверное, уже догадался, что NGIO - архитектура ввода-вывода для следующего поколения серверных машин на базе процессоров Intel, опирающаяся на канальный метод, а не на шину.

И действительно. Порешив, что проверенное десятилетиями IBM-овское решение проблемы ввода-вывода заслуживает внимания Intel принялся проектировать новую архитектуру, ориентированную на обслуживание процессоров класса Merced в hi-end серверах.

Ключевых особенностей у NGIO хоть отбавляй. Начать хоть с того, что она заранее ориентируется на hot plug, то есть подключение и отключение периферии на ходу. Причем при проектировании рассматриваются вопросы изоляции неисправностей с тем, чтобы, к примеру, выгорание одного периферийного устройства не вешало всю систему, как это возможно с шиной. Далее, см. рисунок, система базируется уже не на доступе драйверов к регистрам своих карт, а на посылке драйверами этим картам сообщений и приеме ответов. Это означает, что драйвера оказываются, фактически... аппаратно-независимыми и ОС-независимыми! Обмен с самими каналами будет, по всей видимости, осуществляться мини-драйвером нижнего уровня, поставляемым с ОС, а драйвер конкретной железки, как это сделано в архитектуре той же USB, должен только уметь с ней общаться на ее "языке", а больше ему ничего и не надо. Такой драйвер при переносе из ОС в ОС потребует минимальных изменений на уровне интерфейса ядра ОС к подсистеме отправки-приема пакетов. Да, кстати - пропадет, к чёртовой матери, проблема нехватки прерываний - не будут в NGIO ипользоваться прерывания! По крайней мере, в их текущем виде, как средства сигнализации устройства драйверу. Хочешь общаться с драйвером - отправь ему пакет.

Надо отметить, что темой переносимости драйверов Intel, по всей видимости, озабочен довольно серьезно так как эта тема прозвучала впервые задолго до NGIO, в применении к текущей архитектуре. Однако лишь в NGIO решение этой проблемы оказалось столь органичным и полномасштабным.

Очевидно, NGIO отличается от шиные еще и тем, что число одновременно происходящих обменов в этой архитектуре ограничено лишь числом пар устройств, способных к обмену. Внутри "фабрики переключений" (синий кубик, к которому сходятся линии от TCA на схеме выше) может устанавливаться более одной связи между узлами сети, так что пропускная способность у NGIO в существенной степени "резиновая". Правда, если большинство обменов происходят между устройствами и памятью, то все ограничивается способностями памяти, но, право, не анахронизм ли это при такой схеме? Думается, что пора уже учить диски читать и писать себя не поблочно, а с полной прямой побайтовой адресацийе и заставлять аппаратуру общаться напрямую.

Если немного помечтать, можно представить себе такую схему работы, к примеру, файл-сервера: на запрос клиента процессор сервера проверяет права доступа, определяет адрес информации на диске, формирует заголовок пакета ответа и выдает сетевому контроллеру пакет-задание - отправить по такому адресу сначала заголовок пакета из памяти, затем тело пакета с такого-то диска такого-то размера. Далее весь обмен идет мимо процессора, и, что главное, в основном - мимо памяти!

NB - вышеизложенные мечты намечтаны лично мной, а не Intel-ом, и к спецификации NGIO никакого отношения не имеют - просто ей навеяны. :-)

Ладно, на сегодня, пожалуй, хватит про NGIO. Я, видимо, вернусь к этой теме в будущих выпусках, напишу поподробнее о некоторых аспектах этого дела.

О квейке и мультиплейере.

   
From: Victor Bistrov
Subject: Quake III

Привет dz!

Хочу высказать свое мнение о политике Id Software, в котором позволю во многом не согласится с твоим виденьем данного вопроса, опубликованным в выпуске от 8 Января. Начнем с истории, почти сразу после релиза Quake II, Id анонсировала свою следующую 3D Action игру - Trinity, в которой будет multiplayer и single player. Но дата ее релиза не казалось особенно близкой, т.к. заявленные "фичи" были, действительно, не из разряда быстро воплощаемых в жизнь, к тому же, сделать они собирались совершенно новую модель gameplay, заметно отличавшуюся от существующей (Quake/Quake II). В это время по миру начал продвигаться семимильными шагами Quake II, который безусловно нравился новичкам (тут я уже начинаю говорить только о multiplayer) и не нравился 1/3 бывалых квакеров, почему? Тут уже и я затрудняюсь дать ответ. Но, тем не менее, QII стал мировым хитом, за счет действительно мощной multiplayer игры, приличной графики, не требующей сверхмощный компьютер, а также выпуску огромного количества модификаций созданных любителями, и других моментов, которые уже являются следствиями вышеупомянутых причин. Поехали дальше, Id, как мне кажется, прислушалась к диким воплям недовольных квакеров (не признававших QII), и решили не томить их 2.5-3 года до выпуска Trinity, а сделать игру, которая поможет скоротать деньки до выхода совершенно новой. Данную игру решили назвать Quake Arena, в последствии изменили название на Quake 3: Arena (чисто маркетинговый шаг). Для ее реализации решили использовать новый движок, основанный уже на некоторых графических новшествах движка Trinity. Тем самым, летом этого года, мы получим идеальную по своим параметрам multiplayer игру, которая будет совмещать все идеи Q/QII и добавит несколько новых, например, ввод в игру классов игроков (легкий, средний, тяжелый), но это уже не относится к сути поставленного сегодня вопроса. Уверен, что QIII, на протяжении нескольких лет, просто не будет равных в MP, а этих лет как раз и хватит на разработку очередной игры от Id (Trinity). Почему же нет SP (Single Player) в QIII? - с удивлением спросите вы (не кто-либо конкретно, а многие). Потому что SP делает большой и жирный отпечаток на MP, тем самым, разработчикам приходится подстраивать оружие/предметы для обоих видов игры, а это уж точно не на пользу gameplay, особенно в MP. И уж не в коем случае не из-за того, что Id нету денег на разработку SP :)))) Думаю, что цена коллекции машин Ferrari, которой владеет John Carmack, намного превышает бюджеты многих голивудских фильмов, не говоря уже о бюджетах игр и о фондах самой Id Software. Насчет надоедливости, вот чего-чего, так это SP надоедает на третий день, а их всех моих знакомых (включая меня) нет ни одного человека, которому надоел бы MP в Quake II, напомню, что год после релиза QII мы уже отметили месяц назад. Армия поклонников MP растет, а вот SP - нет, так как все больше людей подключаются к интернет, где они уже начинают играть в MP. Да и на работе, имея сетку, в SP будут играть только совсем темные люди. Насчет "одних и тех же коридоров", MP карты в Id делают профи, а если учесть, что каждый день в сети появляется новые карты? А что будет, когда выйдет QIII? Хочу заметить еще и то, что Id на вряд ли рассчитывает на продажи движка QIII, хотя может кто-либо его и купит, но только не ясно для каких целей.

Резюме: Id, безусловно, делает правильный шаг, который позволит заработать им огромную сумму денег, расчистив при этом дорогу для своих будущих проектов. А дикий бум MP уже начинается, что и окончательно подтвердит выход QIII.

P.S. Мое мнение основано не только на большой любви к MP, но, как мне кажется, и на знании/изучении данного вопроса.

------------------------------------
Victor Bistrov
Gameland's Quake Section Editor
victor@quake2.ru
http://victor.quake2.ru
The Ultimate Quake 2 Site in Russia
CONGRSS.SYS Corrupted: Reboot washington D.C (Y/N)?
------------------------------------

Спасибо за письмо, оно открывает некоторые до сих пор не освещенные стороны этого вопроса.

Я начну отвечать с конца, с огромной суммы денег. Тут в одном из писем мне написали, что, мол, Кармак самолично заявил, что деньги для них - не главное, и потому делать они будут не то, что прибыльно, а то, что нравится. Это я не к тому, что ты не прав, я не оспариваю ни того, ни другого предположений (что id деньги больше не нужны и что id заработает кучу денег). Я просто обращаю внимание на существенную неоднозначность вопроса и, все же, предлагаю относиться ко всем заявлениям сорудников id как к маркетинговым акциям, ибо любовь - любовью, а бизнес - бизнесом. Впрочем, если честно, не верю в то, что id может позволить себе расслабляться и не бороться за рынок. Этого не может себе позволить даже Микрософт, а уж у Микрософта-то рынок застолблен ку-уда покрепче, чем у id.

Некоторые поиски по Интернету дали цены на б/у Феррари в диапазоне от $21 000 до $599 000. Средняя цена в районе $100 000, навскидку. Это V12. Что касается V6 и V8, то тут дешевле - от $19 000 до $300 000, средняя порядка $60 000.

О цене Феррари. Не стоит преувеличивать их ценность и забывать, что зарплата среднего программиста в США исчисляется десятками тысяч долларов в год, а в id работают не средние. На стоимость машины в МИЛЛИОН долларов можно прокормить всего лишь 20 сотрудников с зарплатой в $50 000 в год всего лишь один год. После чего нужно, соответственно, получить хотя бы миллиона полтора долларов доходу, а то в штатах тоже налоги есть, а уходить от них нелегко. Особенно с такими цифрами. :-)

Теперь к главному. Действительно, игра против монстров и матч заметно отличаются по требованиям. Однако, где же тут конфликт? Основные беды малтиплейера - сетевая поддержка (скорость реакции на события при игре по Интернету) и сбалансированность оружия. Разве качественно сделанная сетевая часть игры ухудшит работу в single player режиме? Вроде не должна. Разве сбалансированность оружия - большая беда? Особенно при учете того, что никто не мешает изменить силу оружия в одиночной игре и deathmatch-е? Нет, вроде, не беда. Уже Q2 в этом плане сделан достаточно хорошо - оружие его удачно работает и в игре с монстрами, и не вносит раздрай в deathmatch, как это было с ракетницей в Q1. Значит, все же, можно? Можно.

В общем, аргумента "single player мешает deathmatch-у" я лично не приемлю. Не вижу, чем он там мешает. Более того. Все выходит совсем странно, если считать, что после QIII Arena выйдет, таки, полная QIII. Если считать, что id делает ставку на multiuplayer, то зачем вообще делать игру с монстрами? Нелогично.

Практически, я вижу только одно непротиворечивое объяснение происходящему. Вспомним, что перед выходом Quake был выпущен альфа-релиз, который не содержал уровней для одиночной игры, но был пригоден для death match-а. Очевидно, когда он был выпущен сам мотор Quake был написан и отлажен, а вот скрипты, управляющие интеллектом монстров и уровни все еще были в доработке.

Вероятно, id просто решила на этот раз получить первые доходы от игры раньше, просто-напросто выпустив часть, пригодную для deathmatch раньше, чем будут готовы уровни для одиночной игры. Есть у меня такое ощущение.

Из пресс-релиза Intel:

"Корпорация Intel сегодня объявила, что микропроцессоры следующего поколения, известные под кодовым наименованием Katmai, будут выпускаться под новым товарным знаком - Intel Pentium III. "

Слухи ходили давно, но сегодня они подтверждены официально.