Как стать автором
Обновить

Mir's project — разрабатываю свою одноплатную компактную (20 x 30 мм) ЭВМ с собственной архитектурой

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2K

Сегодня трудно удивить одноплатными компьютерами — рынок полон готовых решений от Raspberry Pi до Arduino. Но что, если одноплатная система станет ещё компактнее, а её архитектура — оригинальной? В этой статье я расскажу об инженерных особенностях Mir’s project — проекте, направленном на создание одноплатных ЭВМ. Пока это инженерный прототип и концепция, но я вижу его потенциал — от встраиваемых систем до обучающих платформ.

Зачем?

Мне хочется создать устройство компактнее и гибче существующих одноплатных ЭВМ, но с собственной архитектурой.

Описание

  • Целевые габариты платы: 20 x 30 мм

  • 9 шт. для подключения периферии

  • 9 шт. неопредленного назначения (GPIO пины)

  • Разъем для microSD

Микроархитектура

На диаграмме ниже представлена упрощенная блок-диаграмма микроархитектуры чипа. В отличие от традиционных синхронных систем, архитектура данного чипа в отдельных модулях минимизирует зависимость от тактового генератора. Это позволяет снизить задержки между блоками, сократить количество стадий конвейера и потенциально ускорить выполнение инструкций, поступающих из блока fetch unit.

Архитектура предусматривает наличие MMU (Memory Management Unit), который координирует обращение к памяти между блоком выборки инстуркций, регистровым файлом и видео ядром. Это позволяет реализовать ассоциированное адресное пространство и избежать "гонок" за данными.

Если MMU выбирает между запросами от fetch unit и register file, приоритет отдается последнему и fetch unit "откладывается". Это обусловлено тем, что доступ к данным из register file критичен для завершения текущей инструкции, тогда как выборка следующей инструкции может быть безопасно отложена — это предотвращает ситуацию, при которой следующая инструкция начнёт выполняться до результата предыдущей.

Упрощённая архитектура
Упрощённая архитектура

Адресное пространство

На диаграме ниже представлено разделение адресного пространства RAM на пространство видео ядра и на «основное».

Данное разделение обусловлено размером кадра — 20 кБайт (в моей архитектуре 1 байт = 8 бит).

Instruction set

На изображении ниже представлен instruction set, который поддерживает декодер процессора.

Всего реализовано 14 инструкций.

Получение остальных логических операций реализуемо программно через комбинацию «И», «ИЛИ» и «НЕ».

HDL

Сейчас проект на этапе описания чипа с помощью HDL Verilog. Упор идет на ослабление зависимости аппаратных блоков от тактового сигнала.

Описаны модули: alu, clockGenerator, fetchUnit, instructionSplitter, mmu, orchestrator, ram, registerFile, shifter, videoCore.

Чип конвертер

В рамках проекта прорабатывается концепция внешнего видеоконвертера — отдельного модуля, обеспечивающего интерфейс между ЭВМ и устройством отображения. Конвертер принимает видеоданные, передаваемые по последовательному каналу (например, SPI), выполняет преобразование потока в формат, совместимый с параллельным интерфейсом дисплея или иным протоколом.

Подобная архитектура позволяет разгрузить основную ЭВМ, минимизировать количество используемых GPIO-пинов и сохранить минимальные размеры платы. Кроме того, вынос видеовыхода в отдельный чип открывает возможность гибкой адаптации под разные типы экранов без изменения логики самой ЭВМ.

Продукт

Для наглядности представлены рендеры 3D-модели предполагаемой аппаратной реализации.

сравнение габаритов с Raspberry Pi Pico
сравнение габаритов с Raspberry Pi Pico

Заключение

Сейчас Mir’s project находится на этапе активной разработки. В ближайших планах — завершить этап описания аппаратуры на HDL, перейти к следующему — построение логических схем.

В следующих публикациях я планирую дополнить информацию о проекте, рассказать о продвижении. Буду рад услышать ваши мысли, вопросы и советы — пишите в комментариях.

Спасибо за внимание!

Теги:
Хабы:
+8
Комментарии8

Публикации

Ближайшие события