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