О потенциале расширения системы команд

Comment are off
Мы неоднократно утверждали что наш микропроцессор имеет уникальные возможности расширения и что по этому показателю мы лидируем среди всех существующих архитектур. Давайте попробуем вместе разобраться — насколько великии возможности расширения и далеки ли от истины наши утверждения. Для начала определимся с возможными путями расширения системы команд — это префиксы, свободные биты в «аргументах» некоторых инструкций и свободные коды операций. В этой статье мы не буде...
Дальше...

Что-то с памятью моей стало…

Comment are off
Какая досада! Выход новой прошивки неожиданно задерживается. Подвела нас оперативная память — при работе с микросхемой SDRAM Марсохода2 возникли неожиданные проблемы. Но обо всём по порядку. В качестве контроллера SDRAM нами было использовано вот это устройство — http://marsohod.org/index.php/ourblog/11-blog/281-sdramvhdl. Контроллер реализован на языке VHDL, но он очень легко интегрировался в Verilog проект. Результат интеграции контроллера в наш проект дал следующий результат:...
Дальше...

Система команд «Эверест» версия 1 редакция 1

Обновилась редакция системы команды «Эверест» и транслятор ассемблера. Пример объявления констант: Система команд дополнена новой формой инструкций с использованием расширенной адресации со смещением. В качестве смещения могут выступать как числовые константы, так и объявленные константы. Фрагмент тестового приложения: Помимо расширеной адресации в примере используется макро-операция для указания констант в операциях. Макрос реализован с помощью подстановки допол...
Дальше...

Linux версия ассемблера «Эверест»

Comment are off
Как то ненарочно мы обошли вниманием пользователей Линукс, предоставляя только средство разработки (Макро Ассемблер) для пользователей Windows. Мы решили исправиться и сделать сборку ассемблера для «линуксоидов». Итак, версия ассемблера для платформы Linux-x86 — everest_macro.tgz. Исполняемый модуль MACRO проверялся под 32-х и 64-х битными версиями Linux. Несколько примеров вы н...
Дальше...

Гибридный планировщик

Из за ограниченного количества логических элементов на нашей ПЛИС, нам не удалось аппаратно реализовать планировщик задач. Поэтому использована гибридная схема, при которой планировщик задач реализован в микрокоде процессора. В систему команд процессора добавлено несколько новых инструкций для взаимодействий с планировщиком, а также добавлены некоторые аппаратные возможности для обеспечения многозадачности. Ниже показана предварительная версия микрокода-планировщика. Вход в планир...
Дальше...

Как узнать коды клавиш терминала используя ассемблер

Comment are off
Иногда нужно срочно узнать сканкоды клавиш, возвращаемых терминалом, а под рукой ничего кроме процессора «Эверест» 🙂 Конечно, это шутка, но вот иногда хочется увидеть, что же приходит с удалённого терминала, особенно когда нажимаются функциональные клавиши или клавиши управления курсором. К счастью, маленькая и простая программа позволяет получить эту информацию: Простите, кажется мы забыли рассказать как запустить эту программу. Читайте об этом в статье Микропроцес...
Дальше...

ANSI графика, интерактивность и отладчик

Comment are off
Преодолён первый рубеж — процессор научился работать со встроенным последовательным портом. Чтобы показать что у нас получается, мы подгтовили простую демонстрационную прошивку. На следующей картинке показано количество ресурсов занятых демонстрационной прошивкой: Чтобы добавить в демку интерактивности, мы научили процессор читать данные с последовательного порта. Для этого былм реализованы две подпрограммы — _uart_status и _getchar. Их код показан на следующей ка...
Дальше...

«Привет, мир!»

Comment are off
Появились первые результаты переноса UART в адресное пространство процессора. Тестовая программа в бесконечном цикле выводит на экран строку «Hello world!\r\n». Ниже показан главный файл тестовой прошивки «Привет, мир». Код совершенно тривиален. Процессор обзавёлся новой инструкцией DEBUG, которая переводит процессор в режим пошагового исполнения команд и обратно (триггер). Однако, в этом примере пошаговая отладка не используется, поскольку код вывода строки работает...
Дальше...

Ядро «Эверест»

Comment are off
Вместо предисловия: «Пастух пас овец – в одиночестве. И захотелось ему повидать людей. Он и закричал, зашумел: «Волки, волки!» Люди из селения прибежали с палками и цепями. Осмотрелись, сначала удивились, потом плюнули и ушли к себе в селение. Прошло время и заскучавший пастух снова кричит: «Волки, волки!» Люди не так скоро, но прибежали. Опять нет волков, опять обман – обругали пастуха и обратно пошли. А вскоре слышат они с высоты голос пастуха в третий раз: «Волки, волки, вол...
Дальше...

Пошаговая отладка процессора

В предыдущей записи мы показали отладочное устройство. Нам удалось использовать его по назначению и совместить с процессором. В результате получилось вот такое устройство: Что это такое? Это наш процессор в режиме пошаговой отладки. По сути — это микроконтроллер, который умеет выполнять «зашитые» в него программы. Мы работаем над тем, чтобы он стал умнее и научился выполнять больше функций. Сколько ресурсов FPGA занимает это устройство? Ответ на этот вопрос пок...
Дальше...