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