KnigaRead.com/

Павел Дмитриев - Зерна отольются в пули

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Павел Дмитриев, "Зерна отольются в пули" бесплатно, без регистрации.
Перейти на страницу:

Так что еще год назад казалось: вот только правильно отрисовать «проводки» «на кремнии» и можно занимать очередь в кассу — получать премию. Однако скоро выяснилось, что перенести на кристалл все «один в один» невозможно. Тут задержка лишняя, там кусочек схемы получился в неудобном виде, транзисторов многовато выходит, да и вообще… Все самые лучшие идеи пришли в голову инженерам в аккурат на следующее утро после сдачи «в серию». Несмотря на мои слабые протесты, пошла раскрутка страшного маховика доработки и улучшения.[393]

Первая версия «Денди» была сделана впопыхах, без особых архитектурных затей, и по сути являлась безрегистровой двухадресной машиной[394] наподобие первых «Минсков».[395] То есть в роли регистров выступал весь объем ОЗУ, а любая машинная инструкция могла использовать не более двух ячеек памяти. Таким образом, результат операции сложения автоматически записывался на место одного из слагаемых. Это был шаг вперед по сравнению с трехадресными БЭСМ-4 или М-20, в которых нужно было явно указывать следующую, как бы третью ячейку, но за сокращение длины кода пришлось «платить» пересохранением данных для повторного использования.

Надо заметить, что в конце 60-х подобную схему можно было без всяких сомнений признать безнадежно устаревшей. Я был поражен, когда не в теории, а собственными глазами и руками попробовал, что значит указывать два адреса для памяти на 64 килобайта — это же два числа, каждое из которых по 16 бит! Если добавить минимальные 8 бит на саму инструкцию, получается цепочка в 40 бит. И всю эту груду ноликов и единичек надо как-то хранить в оперативной памяти и пересылать по жалкой 8-разрядной шине.

Выход нашли давно, лучшие «собаководы» из DEC для своей PDP-8 использовали «особую» ячейку-аккумулятор, в которой хранился один из аргументов, туда же, после выполнения инструкции, записывался результат. Специально адресовать аккумулятор не требовалось, и большая часть команд заметно укоротилась. Несмотря на возросшую сложность программирования, архитектура была очень популярна даже в СССР, по ней была сделана новая, прогрессивная серия «Уралов». Примени этот метод ребята Староса, на операцию сложения потребовалось бы не 40 бит, а всего 24. Но на первой «Денди» «схитрили» еще проще, пользуясь там, что код «Тетриса» занимал заведомо менее 8 килобайт, разработчики ограничились только 8 битами на адрес, и для сложения двух чисел вполне хватало 32 бит.[396]

Дальше — больше. Операции с относительно медленной памятью на ферритовых сердечниках успели изрядно надоесть конструкторам, и они пустились «во все тяжкие» в деле изобретения «быстрых» архитектур, из которых можно было выделить два основных направления — стековое[397] и регистровое.

Сторонники первого решили напрочь все упростить и выкинули адреса из команд вообще. Соответственно, арифметико-логическое устройство оперировало исключительно двумя «верхними» ячейками, а сам стек был устроен примерно как магазин АК-47, в котором числа «заряжены» вместо патронов. В теории, сторонникам такой архитектуры никто не мешал добавить операции прямого доступа в основное ОЗУ, но красота идеологии потребовала крови практиков, которым оставили всего две операции — «загрузить в стек» и «выгрузить из стека». Причем нельзя сказать, что это все было какой-то абстрактной идеей, — реализации «в натуре» не только существовали, но они еще и производили очень приличное впечатление. К примеру, стековые мейнфреймы Burroughs[398] В5500 и тем более В6500 вполне успешно конкурировали с IBM и вымирать как-то не собирались.

Регистровые варианты на этом фоне смотрелись откровенно консервативным развитием идеи аккумуляторов. Где была одна «особая» ячейка — стало две, три, восемь или шестнадцать, все с «особым» коротким адресом. Однако и тут назревали нешуточные «развилки истории». Кто-то ратовал за упрощение а-ля стек, при котором АЛУ будет иметь дело только с регистрами, другие отстаивали необходимость «длинных» команд для прямого обращения к памяти… На первый взгляд такая мелочь! Вот только для программиста, имеющего дело с кодами, получаются совершенно разные ЭВМ. Соответственно, и перспективы могли выйти очень… разными.

Тут-то бы и сказаться преимуществам послезнания во всей красе! Увы, ничего дельного я не мог подсказать даже по самым общим вопросам. Разве что споры о полных и ограниченных наборах команд навевали ассоциации[399] про будущие холивары между RISC и CISC, но полной уверенности все же не было. Да и чем это могло помочь? Разумеется, я прекрасно помнил, что Intel использовал CISC до процессора i486DX и только потом перешел на RISC-ядро. Вот только кто ответит, насколько оптимальным был их путь?!

В поисках знаний я проштудировал кучу книг из будущего. Увы, скоро в голове было «не протолкнуться» от шин, кэшей, акселераторов, обработчиков графики, северных и южных мостов, AGP и PCI и прочих хитрых аббревиатур… То, что было связано с программированием, вообще «вынесло мозг» разнообразием подходов и вариантов.

Когда-то в будущем я считал себя специалистом, весьма и весьма неплохо разбирающимся в особенностях компьютеров, да что там, я мог буквально часами рассуждать, к примеру, о преимуществах DDR3 SDRAM! Оказывается, это были пустые камлания вокруг маркетингового буллшита! Подражающий реальному диспетчеру дикарь в сплетенных из ротанга «наушниках» и с куском палки в качестве «микрофона» мог «призвать» самолет с новой порцией стеклянных бус на ближайшую к стойбищу поляну с большей вероятностью, чем я связать свои навыки с проектированием реального устройства.

Хорошо одно: пока я пытался явить окружающим откровение из будущего, специалисты сами определились с решением. Едва «попробовав» первые образцы SRAM и получив заверения в быстром росте количества бит на кристалле, сторонники «длинных» команд «с прямыми адресами» буквально «положили на лопатки» как своих «регистровых» оппонентов, так и желающих «попробовать стек». Причина была тривиальной — полупроводниковое ОЗУ работало фактически на скорости будущего процессора, и отказ поддерживать доступ к нему на уровне команд стал казаться бессмысленной глупостью.[400]

После решения архитектурных вопросов пошло моделирование. На этой стадии я даже не пытался вмешиваться, но все же примерно к пятой версии «Денди» не выдержал и как-то очень по-доброму настучал Шелепину. Сколько можно, есть прототип сложностью чуть менее пяти тысяч транзисторов, в нем 8-битное АЛУ с логикой, сдвигом, сложением-вычитанием, такая же шина данных, 16-битные адреса позволяют использовать 64 килобайта памяти, где-то сбоку функциональной схемы пристроены 16 регистров общего назначения… И прочие параметры, эдак на три машинописных листа, если использовать гостовский двойной интервал… В общем, мне казалось, что результат должен быть не сильно хуже «Ямахи»[401] из моего школьного детства.

Главное, система работает, ее надо в серию гнать, а не доводить до окончательного совершенства. Без того спецы «убили» последний квартал на какой-то хитрый двухфазный тактовый сигнал,[402] который дает надежду получить частоту минимум в один мегагерц. Вроде прекрасный результат, но только дай им волю — будут следующие полгода переводить прототип на четыре фазы, а потом и про восемь вспомнят.

В результате Филипп Георгиевич не разговаривал со мной неделю, но все же разгул перфекционизма прекратил, и, надо признать, сделал это очень вовремя. Позже стало понятно, что потеря темпа обошлась очень недешево, враг подобрался буквально вплотную. Совсем не тот, что изображается на развороте «Крокодила» в черных цветах и фашистской каске с набранным болдом шильдиком «НАТО». Доморощенные конкуренты оказались куда опаснее.

Первое время нас буквально «спасала» относительно низкая тактовая частота, непонятность и реальная сложность освоения новых технологий. Профессионалы-лебедевцы из ИТМиВТ походили было вокруг, но вполне справедливо решили, что даже сверхбольшие микросхемы не сильно помогут в деле создания будущей рекордной суперЭВМ БЭСМ-8. Поэтому оставили Староса в покое, сосредоточив свои немалые аппаратные возможности на добыче полупроводниковой памяти.

Однако стоило Лебедеву увидеть заминку и очевидное недовольство «ленинградской командой» со стороны Шокина… Как будто вожак-волк заметил жирного подранка в лосином стаде! Сразу кто-то особо умный догадался, что СССР не помешает БЭСМ-Light, в конце концов, упрощать не сложно, а уж с опытом, который за последние двадцать лет накопил Институт точной механики, так и вообще, задача не стоит выеденного яйца. Почувствовав усиление конкурента, в ответ обнажили административные клыки сторонники ЕС-ЭВМ, в конце концов, копировать IBM тоже можно по-разному, и специально разработанная элементная база в этом деле не помешает.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*