Category: архитектура

Category was added automatically. Read all entries about "архитектура".

Улыбка

Итоги 2016 года

Проект RetroBSD: практически не притрагивался. На мой взгляд, операционная система доведена до состояния логической завершённости. Хороший образец для изучения архитектуры ранних юниксов. Дальше её можно развивать вширь (драйверы периферии), переносить на другие архитектуры, но я свою задачу считаю выполненной. Цель была продемонстрировать возможности Unix на современных микроконтроллерах.

Проект LiteBSD: сделана установка пакетов из сети (как в OpenWRT). Сделан ассемблер с выходом ELF. Линкер почти готов. С лета проект несколько подвис. Общественного интереса немного, двигать некому. Крошечные юникс-системы не особенно интересуют публику, на фоне Raspberry Pi и других недорогих платформ типа Linkit Smart.

Занялся асинхронной логикой. Доделал транслятор языка Balsa для генерации кода на Xilinx FPGA. Изобрёл способ реализации асинхронного арбитра на FPGA. Следующий запланированный этап - синтез асинхронной логики непосредственно из языка Verilog.

Участвовал в создании сайта besm6.org. Фактически это веб-интерфейс к архиву музейно-исторических материалов о линии советских ЭВМ ряда БЭСМ-6.

Создал проект micro-BESM. Задача повторить разработку на современной элементной базе (FPGA), используя сохранившиеся исходные тексты микрокода, тестов и операционной системы. Сейчас уже проходят тесты микрокода и 90% комплексного теста системы команд.

Cross-post from: http://vak.dreamwidth.org/430695.html

Улыбка

Архитектура микро-БЭСМ с точки зрения программиста

Набросал краткое описание архитектуры процессора микро-БЭСМ в режиме математика. Коды команд взяты непосредственно из таблицы микрокода, так что в них я уверен, а вот перечень команд надо будет сравнить с таблицей.
Улыбка

Асинхронный арбитр

Столкнулся с необходимостью изобразить на FPGA асинхронный арбитр. Это такая схема, которая определяет, который из двух сигналов поступил раньше. Для ASIC задача решается так:

Выглядит как простая цифровая схема, но на самом деле здесь решается нетривиальная проблема фильтраци метастабильного состояния, аналоговая по своей сути. Об эту тему много копий сломано и научных статей написано. Для FPGA качественного решения не существует. В идеале изготовители FPGA должны бы закладывать в архитектуру чипа некоторое количество модулей-арбитров. Увы, в нынешних чипах от Xilinx и Altera их нет, поэтому приходится измышлять решения "на коленке". Пока думаю обойтись двумя вентилями NAND2, а в качестве фильтра метастабильности задействовать пару MUX7. По идее, всё это должно поместиться в один слайс. Еще можно попробовать вместо NAND2 использовать штатную RS-защелку типа FDCPE. У неё есть асинхронные входы для сброса и установки. Да и время выхода из метастабильного состояния должно получиться поменьше.
Daemon

Платка для RetroBSD

Фирма Olimex выпустила плату специально для операционной системы RetroBSD.


На плате установлен микроконтроллер Microchip PIC32MX795F512H с архитектурой MIPS M4K частотой 80МГц, памятью ЭСППЗУ 512 кбайт и ОЗУ 128 кбайт.

Операционная система RetroBSD представляет собой глубоко переработанную модификацию Unix 2.11BSD, приспособленную для работы на процессорах с "плоской" памятью. В состав системы входит компилятор Си, интерпретаторы Basic, Forth, Scheme, Pico-C, текстовые редакторы vi, re, med, классический набор игр BSD.

Всем разработчикам из команды RetroBSD фирма Olimex предоставила бесплатные образцы платы, за что ей большое спасибо.
Улыбка

MIPS-микроконтроллер от Samsung

Samsung теперь тоже выпускает микроконтроллеры архитектуры MIPS. Да не простые, а двухпроцессорные!



Внутри у него неонка два процессора MIPS microAptiv с частотами 250MHz и 80MHz, сопроцессор с плавающей точкой, дополнительная система команд DSP, 1 мегабайт SRAM, 4 мегабайта SPI Flash, Bluetooth low energy, контроллер дисплея 800x480, гироскоп, акселерометр и магнетометр. Предварительную спецификацию можно скачать здесь (PDF).

Надо будет прикинуть, можно ли на этой железяке запустить LiteBSD.
Улыбка

Симулятор QEMU для PIC32

Сварганил на досуге забавную штуку: вариант симулятора QEMU для микроконтролеров Microchip PIC32. Инструкцию по сборке и примеры запуска можно посмотреть здесь: https://github.com/sergev/qemu/wiki

Симулятор реализует две архитектуры: pic32mx7 и pic32mz. Для каждой из архитектур поддерживается несколько разных плат. Весь список на сегодняшний день:Примеры запуска реальных приложений:
"Hello World" на плате Max32
2.11BSD на плате Max32
4.4BSD на плате WiFire
Улыбка

Описание системы команд Эльбрус

Спасибо коллегам из бывшего новосибирского ИТМиВТ: желающие имеют возможность изучить архитектуру и систему команд Эльбрус (PDF, 38Мб).  Имеется в виду Эльбрус-1 (1973-1979гг) и Эльбрус-2 (1977-1984гг) имени Бурцева, не путать с Эльбрусом-3 Бабаяна.

Прямо скажем, не самая простая архитектура, даже если сделать скидку на тяжелый стиль описания.  Я насчитал 236 машинных инструкций.  Повеселила мнемоника ПОСПИ: поиск по списку.  :)

Друзья, если у Вас есть возможность добыть какие-нибудь бинарные коды программ от Эльбруса, это может сильно помочь в создании эмулятора.  
Улыбка

Язык Эль-76

В дебрях сети обнаружились симулятор и примеры языка Эль-76:
http://web.archive.org/web/20030710092032/www.mstu.ru/studies/Others/War/IlbrusLanguage-emul.rar
http://web.archive.org/web/20030710091904/www.mstu.ru/studies/Others/War/IlbrusLanguage-docs.rar

Спасибо oboguev за наводку.  Язык в целом очень похож на Алгол-68, но семантически отражает особенности архитектуры Эльбруса: полиморфные операции, аппаратная защита массивов и т.п.  Переложил примеры в свою копилку.  Так выглядит обработка списков:Collapse )
Улыбка

Moxie: 32-битная процессорная архитектура

Инженерная мысль не стоит на месте, и это радует.  Неожиданно для себя обнаружил на просторах интернета новую замечательную идею: Moxie.
  • 32-битная процессорная архитектура, свободная от патентов.
  • Простой 16-битный набор инструкций.
  • Поддерживается компилятором GCC, начиная с 4.6.1.  Собственно, архитектура и разрабатывалась как максимально удобная для GCC.
  • MoxieLite: реализация для FPGA.
  • Есть версия ядра Linux.
  • Симулятор QEMU.
  • Отладчик GDB.
Весь софт здесь: MoxieDev.