§ Описание и цель

Достаточно много и долго я рассказывал на своем сайте, что с самого раннего детства у меня была мечта о создании собственного компьютера и, возможно, операционной системы для него. В какой-то мере, у меня появилась эта возможность. Я пробовал разные варианты, но остановился только на одном, это на ядре AVR. Выбрано оно было по разным причинам, в основном — он простое и для него есть хороший компилятор Си.
Целью же всего этого является именно создание всего с нуля. Как системных, так и прикладных программ. Зачем? Ну, просто так. Мне нравится этим заниматься.

§ Конфигурация компьютера

Тип: SoC
Процессор: AVR с поддержкой MUL
Ядер: 1 + N
Частота: 25 мгц
Разрешение экрана: ZX Spectrum экран 256 x 192
Накопитель: съемная MicroSD
Оперативная память: 64Кб + доступная DRAM
Клавиатура: PS/2
Мышь: отсутствует
Компьютер по всем параметрам очень скромный, но он может расширяться. Например, количество оперативной памяти хоть и 64К, но доступна возможность обращаться к памяти через банки или порты, к DRAM или RAM, в зависимости от того, сколько памяти установлено внешней.

§ Многоядерность и многозадачность

Мне недавно пришла одна идея по поводу нескольких ядер на кристалле. Поскольку процессор AVR у меня там может быть не один, а несколько, то тогда имеет смысл сделать такого рода конфигурацию.
  • Основной процессор, супервизор, 128К ROM. Выполняет все что нужно на максимальном уровне привилегии и доступа
  • Вторичный процессор, количество ROM настраивается
Задумка такая, что супервизор управляет процессами, которые бы он запускал на вторичных ROM. То есть, например, надо запустить какую-то программу, ядро грузит данные с SD-карты, потом перезаписывает так называемый "ROM", для конкретной программы устанавливает ее пределы — то есть, откуда второй процессор будет считывать начало ROM, и длину, а также можно выбрать даже тип процессора, к примеру, Attiny там.
Для второго процессора все будет выглядеть так, как будто он запускается совершенно изолированно и работает как обычно, что в общем-то, так и происходит. Супервизор контролирует карту памяти, систему прерываний, порты. По сути, это получается отдельно работающее ядро, которое даже не может знать о наличии супервизора. Так что, выходит, это технология виртуализации, но только более нативная и скоростная. Как и ядро, второй процессор работает на частоте 25 мгц.
Может быть не только второе, но третье, четвертое ядро. Каждый из них может обрабатывать собственную программу, иметь собственные выделенные области памяти и работать параллельно с другими процессами. Супервизор, как его и положено, управляет ресурсами дочерних процессоров.
Причем, процессоры могут быть не только AVR, но и 6502 или z80.