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