Перейти к содержанию

Обзор архитектуры

Спецификация системы

Компонент Значение
CPU i80148
RAM 16 МБ (расширяется до 4096 МБ)
Порядок байтов Big Endian
Модель памяти Flat
Шина адреса данных 32 бита
Шина адреса инструкций 32 бита
Шина данных 32 бита
Шина инструкций 64 бита
Адресное пространство 4 ГБ

Модель памяти

Память организована в виде банков. Основной банк (BANK 0000h) содержит все стандартные регионы системы. Дополнительные банки используются для данных и расширений.

  • BANK 0000h - основной банк: BIOS, CMOS, MMIO, device calls, BIOS RAM, VRAM window, user RAM.
  • BANK 0001h–0002h - дополнительные данные.
  • BANK 0003h–FEFFh - прочие банки.
  • BANK FF00h–FFFFh - банки XPB.

Полная карта - в разделе Карта памяти.

Шины

  • Шина данных - 32 бита, Big Endian.
  • Шина инструкций - 64 бита, позволяет выбирать до 8 байт кода за такт.
  • Шина адреса - 32 бита, единая для данных и инструкций.
  • Шина XPB - отдельная шина расширения для подключения периферии, не входящей в базовый набор.

Периферия

Базовые устройства доступны через MMIO (memory-mapped I/O) в регионе 0x00020000–0x0002FFFF. Каждое устройство занимает свой диапазон адресов.

Основные группы устройств:

  • Системные - статус, управление, IRQ, таймер, RTC, банки памяти.
  • Видео - видеоадаптер, режимы, VRAM, терминал.
  • Ввод - клавиатура, мышь.
  • Хранение - дисковый контроллер XPB1.
  • Сопроцессоры - FPU, PSG, RNG.

Подробнее - в разделе Устройства.

Прерывания

Система поддерживает два класса прерываний:

  • Исключения (0x00–0x1F) - деление на ноль, отладочные ловушки, неизвестный опкод и т.д.
  • Аппаратные прерывания (0x20–0x27) - таймер, диск, GPU, клавиатура, мышь, аудио, сеть, XPB.

Обработчики находятся через таблицу дескрипторов прерываний (IDTR).

Подробности - в разделе Прерывания.

Структура системы

+---------------------------------------------------+
|                     CPU i80148                    |
|  (36 регистров, 32-бит, Big Endian, flat memory)  |
+-------------------------+-------------------------+
                          |
+-------------------------+-------------------------+
|                      Шина                         |
+---+---------------------+---------------------+---+
    |                     |                     |
+---+----+          +-----+-----+         +-----+------+
|  RAM   |          |   MMIO    |         |   XPB      |
| 16 MB  |          | 0x20000+  |         |  внешние   |
+--------+          +-----------+         |  устройства|
                                          +------------+

Режимы работы

Система стартует в режиме, определённом BIOS:

  • SCROLL = OFF
  • CURSOR = OFF
  • VC_MODE = 0x00 (80x25, 16 цветов)
  • TERM_ATTR = 0x07

После загрузки первого сектора (1024 байта) с загрузочного устройства по адресу 0x00060000 управление передаётся загруженному коду.