Лисья Нора
Обо мне
Привет! Это просто мой блог.
Могу еще раз снова сказать: понравился мне этот процессор. Он оказался самым простым в изготовлении, по сравнению с теми, которые я рассматривал ранее. Даже 6502 не такой простой, несмотря на нереально ограниченный набор инструкции, у RISC-V их вообще всего лишь около 50. Да, вот столько мало, это факт, с которым трудно не согласиться.
Неспешными шагами и очень постепенно я создаю программную оболочку для собственного эмулятора, который уже написал, но не знаю, отладил ли, поскольку некоторые проблемы всё-таки наблюдаются с эмуляцией, особенно когда я запустил soft-float и там всё попадало, как карточный домик, построенный до небес, так что отладку придётся проводить. Несмотря даже на это, простые программы без особых страданий запускаются и вычисляются корректно: я уже добавил ввод ASCII кодов с клавиатуры, вывод на экран строк, печать в текстовом режиме и рисование в графических 320x200 и 640x400.
Это всё хорошо, но надо бы двигаться дальше и что-то не только выводить на экран монитора, а еще и начать перекладывать вычисления в верилог, делать программу для ПЛИС и я почему-то слегка побаиваюсь. Нет, я смогу сделать, это же не так и сложно. Меня как всегда пугают эти 32 бита, которые надо считывать одновременно из памяти. Однако, я придумал как сделать так чтобы быстро это всё дело работало. Так как в чипах ПЛИС есть блоки BRAM, и они равны в среднем по 1024 байт, а также они двухпортовые, то я просто могу создать "бутерброд" из этих блоков и обращаться к ним одновременно! Да, и тогда можно будет и читать и писать сразу же по 4 байта без задержек благодаря этому сэндвичу из микросхем памяти.
Раз с этим всё хорошо, то переходим к следующему. Да, конечно же, круто, что у меня 308К памяти – только вот, этого явно не хватит для запуска более сложных программ, с большим количеством данных, которые надо хранить в ОЗУ и мне придётся сделать контроллер SDRAM, и помимо него, еще и контроллер памяти для хранения кеша. Как я выяснил, кеш – ведь не настолько сложная, тут достаточно считывать кеш-линии по 64 байта из медленной памяти и туда-сюда эти данные гонять, проверяя Dirty-байты перед этим. Создание кеш-контроллера задача отдельная, как и создание контроллера памяти в целом. Мне бы хотелось однажды его сделать и может быть когда-то сделаю.
И третий вопрос, программное обеспечение. Один из самых насущных вопросом. Допустим еще что кеш и контроллер памяти можно не делать, ограничившись использованием 308К памяти BRAM на первое время, но вот какие-то программы сделать бы стоило, и я о чем подумал: может быть, сделать мини-игры. Да, простые игры, там сокобан, тетрис, змейка, понг, арканоид и так далее. И платформа начнет каким-то образом уже быть полезной и интересной.
Теги: riscv, процессор
13 фев, 07:49