Шрифт:
Закладка:
Я решил, что все ядра моего будущего компьютера, как и Радио-86РК, будут тактироваться от многофазного генератора. Таким образом, никогда не будет ситуации, что в одну ячейку памяти придёт больше одного процессора и случится логическая гонка.
Тот кто посмотрит на мою архитектуру скажет: “это можно было бы сделать с одним ядром, работающем на большей частоте!”. И я соглашусь с ним. Да одно ядро, переключая свой контекст с задачи на задачу может делать то же самое. А мои ядра, по сути — это и есть аппаратная поддержка переключения контекста с задачи на задачу.
Поддержку прерываний я решил не делать и, таким образом, ядро моего CPU радикально упрощается.
Я сплёл четырёхбитный прототип шины данных, сделал регистр адреса и занялся мультиплексором, переключающим внутреннее содержимое ALU в зависимости от кода на входе. Это самая сложная и плохо масштабируемая часть.
У меня не было отладочных средств, но зато я мог остановить генератор тактовой частоты и рассматривать получившуюся систему в статике. Этакий аппаратный дебагер.
Первая команда, которую я сделал — это загрузка адресного регистра значением. Фактически это команда перехода. JUMP по абсолютному адресу. Когда, спустя неделю, у меня получился процессор умеющий переходить по адресу, то я как ребёнок баловался программами “перейти по адресу 2, перейти по адресу 0”. Такая минимальная версия моего процессора, помещалась на двадцати семи металлических пластинках-перфокартах. Заменив константы в шести из них, я могу сделать из четырёхбитного компьютера сто двадцати восьми битный.
На плетение четырёхбитного одноядерного прототипа, умеющего выполнять только одну команду, мой Радио-86РК тратит около тридцати секунд. Это вместе с шестнадцатью ячейками памяти. Полноценный прототип будет, видимо, собираться значительно дольше, но зато потом он начнёт строить сам себя и наступит сингулярность развития моего вычислительного потенциала.
После команды JUMP я пришёл всё-таки к необходимости делать систему прерываний, либо придумывать альтернативу. Если мой процессор дойдёт до неизвестного кода команды, то хотелось бы иметь возможность писать программы-эмуляторы. Так же без прерываний не обойтись, если я захочу программно останавливать код на том или ином CPU. Вместо того, чтобы делать систему прерываний, я решил упростить себе жизнь и добавил ещё один регистр, куда копируется регистр адреса и программа после этого просто переходит в фиксированное место. Сейчас там нет никакой программы, но в будущем, по мере расширения моего ассемблера, я смогу вписать там эмулятор новой функциональности. Причина прерывания просто отображается в некоторых битах регистра адреса. Ещё в регистре статуса я выделил место под константу с версией моего процессора, её можно использовать при создании эмуляторов.
Помимо регистра статуса, у каждого CPU есть управляющий регистр. Записывая различные биты в него, CPU можно сбросить, прервать и остановить.
Это всё, что я успел сделать, пока ехал в направлении к Цехину без Коры. Она почему-то задерживалась, и, подъехав к городу на расстояние видимости, я организовал лагерь из которого обследовал его конструктами.
Огромное количество полтергейстов, кружащих вокруг, сразу же бросилось в глаза. Их здесь было, вероятно, штук сто! Они летали около границы города, но не могли преодолеть антиэлементальную защиту.
Эта защита имела как бы два уровня: внешний город — более слабая и внутренний город — более сильная.
Одна и та же дорога
Караван, с которым Маас отправился в Цехин, проходил через Хано.
Придя в город, в котором он провёл последний десяток лет, он первым делом подал заявку на встречу с Араргом.
Затем добрался до своей пирамиды и открыл дверь в свою каморку. Он не был здесь вечность! Казалось, что это не его комната. Присев за стол, он разглядывал быт будто бы другого человека. События последних месяцев вытеснили всю прежнюю жизнь из его мыслей куда-то на периферию. Что-то стало забываться. Только воздух, запахи здесь всколыхнули в нём какой-то кусочек ностальгии по прошлому.
Помывшись, Маас отправился спать, а утром его разбудил курьер от Арарга. Почему-то он предлагал встретиться у Хано, вместо того, чтобы назначить приём в своём кабинете. Хотя назначенного времени оставалось около часа, Маас решил отправиться туда немедленно и подождать на месте.
Длинная каменная скамья окружала Хано со всех сторон и являлась границей дальше которой фиолетовая мана не распространялась. Место, где посидеть, здесь всегда можно было найти. Народу обычно было не много, а уйти в ту или иную сторону можно было на несколько километров. Чтобы обойти Хано кругом нужно было потратить несколько часов, если не целый день.
Усевшись лицом к вулкану он растянул ауру на максимальную ширину собирая ману в свой накопитель. Понемногу в его голове выстраивался план, о том, как осуществить задуманное архимагом. Нужно купить несколько артефактов, которые помогут не подставиться в случае провала.
— Ты наверное думаешь: “Почему здесь?” — отвлёк его от мыслей голос шефа.
— У меня есть предположения, но это не сильно и важно. Надо так надо.
— Ну-ка, Озвучь?! — усмехнулся демон, присаживаясь рядом.
— Астральное наблюдение? Вы хотите, чтобы наблюдающие за нашим центром управления не могли подслушать?
— В точку! Ну рассказывай, зачем хотел меня видеть?
— Во-первых, хочу сказать, что меня завербовал Руархид для выполнения той же работы.
— Старая хитрая задница! Что и оклад он тебе положил?
— Нет, оклада нет, но он компенсировал мне пару телепортов, которые я использовал для встреч с ним.
— Ты его за горло что ли держал? Угрожал ему? — нахмурился шеф.
— Нет, он сам. Я принёс ему информацию о нападении эльфов на его караван, которому был свидетелем. Выяснилось, что он астральщик и уже знает многое из нашей с вами беседы. Ну и я не стал скрывать остальное, тем более, что он помог мне с некоторыми данными. Я обещал ему, что расскажу вам о нашем сотрудничестве. Он был не против. Сказал, что это будет даже полезно.
— Интересно. А что во-вторых?
— Во-вторых, я наткнулся на то, что есть люди, занимающиеся тем же, чем и я. Увы, контакта с ними пока не получилось. Но зато я теперь знаю некоторые подробности строения города эльфов и механизма того, что они собираются устроить.
— Так, давай по порядку и со всеми подробностями. — Потребовал демон.
Чтобы рассказать всё, Маасу потребовалось около часа времени. Шеф даже пообсуждал с ним его план развёртывания сигнальной сети в Цехине и нашёл его вполне адекватным.
— В общем, — резюмировал Арарг, — я не ограничивал тебя в контактах и действиях. Поэтому, если ты ищешь моего одобрения или неодобрения на контакты с Руархидом, то это полностью твоё дело. Думаю, ты всё