Сергей Симонов - Цвет сверхдержавы - красный. Трилогия (СИ)
Рассматривая набор регистров, команда Рамеева остановилась на 16-ти регистрах общего назначения (4 – 8-ми битных, 8 – 32-х битных и 4 – 64-х битных) и 15 специальных (регистры дескрипторов, регистры УУ, и т.д. включая 8 специальных парных адресных регистров: две пара регистров преобразования адресов блоков команд, и две пара преобразования адресов блоков данных, всего 31 регистр, 32-й регистр – нулевой – всегда имеет значение 0.)
Во-вторых, набор команд был основан на идее суперскалярной обработки с тремя конвейерами и тремя независимыми исполнительными устройствами: с фиксированной точкой, с плавающей точкой и устройству переходов. Таким образом то, изначальное АЛУ, которое он планировал для своей ЭВМ, эволюционировало в математический сопроцессор, работающий с числами, одинарной и двойной точности с плавающей точкой. Но оригинальная конструкция теперь не удовлетворяла потребностям, и сопроцессор был переработан, теперь он имел 16 регистров, 8 для работы с числами обычной точности (32 бит), 8 для работы с числами двойной точности (64 бит).
В-третьих, набор команд был расширен по сравнению с командами RISC, вводились «смешанные команды», в первую очередь: команды групповой загрузки и записи, команды модификации аккумулятора, команды манипуляции битовыми полями, и т.д. Но при этом основное «преимущество» RISC архитектуры – постоянная длина команды – сохранялось.
В-четвертых, вводился расширенный по сравнению с RISC машинами регистр условий.
Новый, переработанный «Урал-1» поддерживал реальную и страничную адресацию. Реальная адресация совпадала с эффективной (2^32) и составляла 4 ГБ, а виртуальная могла быть расширена до 52-х битов (2^52), но фактически, пока оставалась в том же 32-х битном пространстве, ради упрощения архитектуры. Но расширение адресного пространства до 52-х бит было заложено в архитектуру изначально.
В конечном итоге, конечная машина разрослась до 8 устройств – шкафов:
1. Блок целочисленной арифметики (обработка данных 8-ми и 32-х разрядных),
2. Блок вычислений с плавающей точкой (32, 64-х разрядные числа),
3. Устройство специальных (системных) регистров,
4. Устройство загрузки/записи,
5. Блок обработки переходов (предсказания переходов),
6. Устройство управления памятью,
7. Блоки памяти данных (1 для работы АЛУ, второй – FPU),
8. Блок памяти команд (общий).
По планам развёртывания производства «Урал» опережал планирующуюся элементную базу, но уже мог рассчитываться на основе дискретных элементов, внедряемых в производство. Понимая, что дёшево реализовать разработанную архитектуру, существенно потяжелевшую относительно первоначального проекта в 10-12 раз, (в РеИ «Урале-1» было 800 ламп и 3000 полупроводниковых выпрямителей, а переработанная архитектура тянула на все 40-45 тысяч вентилей), на планарных микросхемах не удастся, Башир Искандарович решил приближаться к цели постепенно, по мере прогресса элементной базы.
Вначале решено было применить диодно-транзисторную логику, на базе транзисторных парафазных усилителей на диодной логике (http://www.computer-museum.ru/document/pu_tyapkin.htm), т.е. применять в конструкции машины пусть и сходу устаревшую элементную базу но эффективно организованную и позволяющую получить высокое быстродействие.
Оставалась пока только проблема быстрой памяти. Все существующие на тот момент решения категорически не подходили под возможности новой машины, и фактически её быстродействие было заложником жутко медленных реализаций памяти. Изначальное решение 1953 года сделать оперативную память на магнитном барабане с частотой вращения 6000 оборотов в минуту, причём барабан служил одновременно и тактовым генератором, задающим частоту, Рамеев, ознакомившись с полученными материалами, отбросил, как кошмарный сон. Такая память не позволяла получить быстродействие более 100 операций в секунду (частота вращения барабана), в то время как лебедевская БЭСМ-1 уже делала 10000 оп/с.
Решение можно было найти через более эффективные механизмы работы с памятью, и тут Рамеев обратил своё внимание на опыт архитектуры ЭВМ БЭСМ-6, которая за счет 8-слойной физической организации памяти могла даже с ферритовыми кубами работать на высоких скоростях. Новая же память на плакированном проводе (plated-wire memory, разновидность твистор-памяти) была побыстрее ферритовых кубов, а главное дешевле и позволяла серьёзно нарастить объем памяти.
Магнитный барабан в конечной реализации остался лишь устройством долговременного хранения данных. Впрочем, переосмыслив полученную от академика Келдыша информацию, Рамеев сделал из магнитного барабана некое подобие накопителя на жёстком магнитном диске.
Барабан стал широким, теперь на него при помощи длинных, во всю ширину барабана, магнитных головок, записывалось не по 2 или 4 девятизначных цифры, а по 640 восьмибитных байт. За счёт этого «Урал» мог сразу считывать с барабана в кэш за один проход длинные строки. В среднем, на таких магнитных барабанах удавалось получать производительность не 100 операций (считываний) в секунду, а 16000 операций при работе с числами 32 бит и 8000 при работе с числами 64 бит (АИ).
В машину устанавливалось сразу два таких барабана (АИ) – один для 32-разрядных чисел, второй для 64-хразрядных чисел двойной точности. Считывание производилось сразу с обоих барабанов в два раздельных кэша на всё том же твисторе из плакированного пермаллоем провода. Два кэша позволяли параллельно вести 16000 операций над 32-х битными числами и 8000 операций над 64-х битными.
Разумеется, это было пиковое, а не среднее быстродействие, но на тот момент это было большим достижением. Орбита первого спутника, например, считалась на ЭВМ «Стрела» с быстродействием всего 2000 оп/с. Одна из первых машин должна была отправиться на космодром Байконур. Королёв, приехав в Пензу, чтобы ознакомиться с возможностями «Урала», назвал его «бешеным числогрызом» и едва не подрался с Келдышем из-за того, кому достанется первая серийная ЭВМ (АИ). Пришлось заводчанам поднапрячься и делать сразу две первых машины (Реальная история, первая партия серийных «Уралов состояла из 2-х ЭВМ).
Вследствие перехода на RISC-подобное решение регулярность АЛУ позволяла разбить его на четыре более простых блока, каждый условно по 8 бит, и содержащий по одному 8-ми битному, двух 32-х битных и одному 64-х битному регистру, а так же двух разных модулей организующих блок специальных регистров. Каждый из блоков построенных на дискретной логике представлял из себя тяжеленный куб, а все вместе они размещались в одном шкафу на две стойки по три куба в высоту. Позже, когда появились интегральные микросхемы средней и большой интеграции, кубы постепенно превратились сначала в некое подобие удвоенного процессора МТ15 – «кубика» из нескольких печатных плат, вставленных в общую материнскую плату. На этих платах были распаяны интегральные схемы (ИС) низкой и средней интеграции.
(Это выглядело примерно вот так http://www.6502.org/users/dieter/mt15/mt15_cpu_down2.jpg подробнее http://www.6502.org/users/dieter/mt15/mt15.htm Только платы были сильно побольше, из-за большего количества дискретных элементов.)
А еще позже, после появления сверхбольших интегральных схем (СБИС), всю реализацию машины «Урал», теперь и включая кэш память команд и кэш данных удалось разместить на одной плате (вот такой, примерно – http://ummr.altervista.org/IBM_RIOS9.jpg). Но это была уже серьезно модернизированная по сравнению с первоначальной реализация архитектуры «Урал-32», при этом программы из далёкой середины 50-х на этой машине работали! Пусть и не так эффективно, как программы написанные с использованием новых инструкций, но намного быстрее, чем на машинах 50-х годов, это уж точно.
Полная перетряска архитектуры машины, реализованная уже после защиты эскизного проекта, заняла около года.
В начале 1955 года на московском заводе Счётно-аналитических машин (САМ) был изготовлен опытный образец. В течение года он испытывался, отлаживался и дорабатывался, в результате чего к концу 1955 года его архитектура была скорректирована, а найденные ошибки исправлены. Комиссия под председательством академика Келдыша утвердила технический проект новой ЭВМ и рекомендовала её к серийному производству.
ЭВМ создавалась как серийная универсальная машина для КБ и НИИ. Запускать её в серию решили на Пензенском заводе Счётно-аналитических машин (САМ), где существовал малочисленный тогда филиал СКБ-245. Поэтому новая ЭВМ получила название «Урал-1». Серийное освоение столь сложной продукции требовало постоянного руководства на месте, и Рамеев переехал в Пензу.
Это обстоятельство было одной из причин, погубивших в «той истории» разработку ЗРК «Даль». Юрий Яковлевич Базилевский, хоть и получил за разработку «Стрелы» звание Героя Социалистического Труда, был, в основном, организатором. Когда Рамеев переехал в Пензу, ни Базилевский, ни директор СКБ-245 Михаил Авксентьевич Лесечко не смогли без него разработать работоспособную управляющую ЭВМ для комплекса.