Совещание в декабре 1953-го перевернуло все представления Рамеева о том, как должна работать его ЭВМ.

   При тщательном изучении присылаемых ему, как и другим разработчикам ЭВМ, информационных материалов. Первоначально его заинтересовали системы команд и архитектуры процессоров х86 и ARM. Но вскоре Рамеев понял, что за скромным «x» скрывается целое семейство процессоров с богатой историей.

   Так, разбираясь в архитектуре х86, Рамеев часто натыкался на разные решения, казавшиеся ему, как минимум, странными. Складывалось впечатление, что архитектуру лепили как попало, без всякой систематизации, часто впихивая реализацию новых возможностей в «дыры», оставшиеся от предыдущего решения, что ярко было видно на примере адресации. Это породило кучу исключений и очень запутанную систему префиксов команд, сами команды при этом, казалось, не имели вообще никакой системы. И да, в пояснениях было явно указано, что эти «особенности» архитектуры проявились из-за реализации новой архитектуры поверх старой, т.е. ради совместимости. Архитектура ARM поэтому представлялась более простой и логичной, легче реализуемой.

   И вот, на основе описания архитектуры ARM, постепенно у коллектива разработчиков СКБ-245 сложилась собственная архитектура, отчасти похожая на ARM, но переработанная с учетом собственных размышлений. Так, разработчиков не устраивало: слишком малое число команд, которое в огромном количестве случаев является недостатком и приводит к непродуктивной работе процессора, главное – к серьезному увеличению размера программ (до 30% объема по сравнению с CISC), что при малом объеме и медленной работе памяти – становится важнейшим и серьезнейшим недостатком. Так же однословная команда RISC исключает прямую адресацию для полного 32-битового адреса. Поэтому Рамеев с командой разработчиков приступили к разработке своей оригинальной машины, конечно же, подсматривая в полученных бумагах кое-что готовое.

   Во-первых, после получения пакета информации по процессорам общего назначения на базе PDP-11, ARM, MIPS, POWER и х86, первое решение, которое было принято, состояло в том, что теперь процессор «Урала» надо было делать аккумуляторным, магистральной архитектуры с 3-х стадийной конвейеризацией на матричных умножителях (реализация дерева Уоллеса).

   Рассматривая набор регистров, команда Рамеева остановилась на 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-х ЭВМ).