Обзор архитектуры¶
Спецификация системы¶
| Компонент | Значение |
|---|---|
| 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 = OFFCURSOR = OFFVC_MODE = 0x00(80x25, 16 цветов)TERM_ATTR = 0x07
После загрузки первого сектора (1024 байта) с загрузочного устройства по адресу 0x00060000 управление передаётся загруженному коду.