МАРСОХОД

Open Source Hardware Project

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: SoC для платы Марсоход2

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1511

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Я попрошу три инструкции - LockMessage, ExchangeMessage и UnlockMessage.
А поподробнее можно?
Если найдёте место в 1Кб для большого регистрового файла, то его можно очень хитро поделить и таким образом "заточить" под микроядро и многозадачность.
В другом процессоре есть 4К:
electronix.ru/forum?showtopic=60367&st=90
Если влезет, можно и его вставить.
Сейчас в SoC вставил таймер и UART. Хочу загружать по UART-у из PC картинки.
Как отлажу, выложу.

Николай.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1512

Большой регистровый файл делятся на две части - пул блоков регистров задачи и пул блоков регистров сообщений.

Каждый элемент пула блоков регистров задачи состоит из регистров общего назначения и вспомогательных регистров.

Каждый элемент пула блоков регистров сообщений состоит из 64 регистров.

В простейшем случае, при использовании стандартного программного обеспечения регистры сообщений не используются, а из блоков регистров задачи используется только первый блок регистров - таким образом модифицрованный процессор остаётся полностью обратно совместимым с предыдущими версиями.

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

Инструкции LockMessage и UnlockMessage - используются для коммутации блока регистров сообщений. LockMessage добавляет к активному регистровому пространству 64 дополнительных регистра, а UnlockMessage отсоединяет эти 64 регистра от активного регистрового пространства. Поскольку адрес регистра в коде инструкции имеет ограниченное число бит, возможно понадобится так же ввести две команды для пересылки данных из регистров сообщения в РОН и в обратную сторону. С другой стороны, интересна возможность работы с регистрами сообщения как с обычными регистрами, но это возможно только если система команд позволяет.

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

Вот вкратце то, что хотелось бы увидеть в процессорах. Если подробнее, то я готов предоставить формальное описание с регистрами и алгоритмами.

Собственно эти идеи не завязаны на конкретный микропроцессор и если, к примеру, это может быть реализовано на плате Марсохода-2, то привлекательная цена и близкое географическое положение разработчиков Марсохода - очень весомые аргументы для покупки FPGA.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от alman.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1518

товарищи если не сложно в архиве квартуса проект выложите, заранее спасибо =)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1532

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
Пока не до конца отладил выдачу BMP файлов в плату Marsohod2.

Николай.

P.S. Опять не вкладываются файлы.

Вложенный файл:

Имя файла: src_2013-02-09.zip
Размер файла: 214 KB


Вложенный файл:

Имя файла: code.zip
Размер файла: 166 KB


Вложенный файл:

Имя файла: implement_2013-02-09.zip
Размер файла: 127 KB


Вложенный файл:

Имя файла: synthesis_2013-02-09.zip
Размер файла: 208 KB


Вложенный файл:

Имя файла: msh2soc_2013-02-09.zip
Размер файла: 16 KB

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1537

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
To alman.
Попробовал вникнуть в суть.
На первый взгляд все это можно реализовать.
Но это будет другой процессор.
Пока надо доделать текущий проект.

Николай.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1538

Ynicky пишет: To alman.
Попробовал вникнуть в суть.
На первый взгляд все это можно реализовать.


Спасибо!

Ynicky пишет: Но это будет другой процессор.
Пока надо доделать текущий проект.


А в какую сторону Вы хотите его развивать? Судя по документации - вполне готовый процессор с достаточной системой команд.
А какова скорость работы с видеопамятью?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1540

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
А в какую сторону Вы хотите его развивать? Судя по документации - вполне готовый процессор с достаточной системой команд.
Для добавления команд с доступом к 64 регистрам требуется 6 бит в поле команды, что не особо вяжется
с системой команд данного процессора.
У меня уже есть готовый 32-х разрядный процессор с 64 регистрами общего назначения.
Его и можно модифицировать под многозадачность.

А какова скорость работы с видеопамятью?
По моделированию получается 12,5 МБ/с.

Выкладываю ссылку на ролик с выводом картинок на монитор.

msh2soc_1

Николай.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Ynicky.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1541

Ynicky пишет: Для добавления команд с доступом к 64 регистрам требуется 6 бит в поле команды, что не особо вяжется
с системой команд данного процессора.


Можно задействовать резервный код операции 0100.

0100 0 C RRRR MMMMMM

где R - регистр обшего назначения. M - регистр сообщения. С - бит LOAD/STORE

Можно так же уменьшить число регистров сообщения до 32 или даже до 16 - поскольку страничной виртуальной памяти нет, можно обойтись меньшим числом регистров, чем предлагает спецификация L4-X2.

У меня уже есть готовый 32-х разрядный процессор с 64 регистрами общего назначения.
Его и можно модифицировать под многозадачность.


Мне нравится Ваш процессор. Если у Вас пока нет идей, как реализовать многозадачность, то позвольте мне поделиться своими - это ни к чему не обязвает, но может подсказать Вам какое либо решение.

Поскольку ST16 имеет регистровый стек возвратов, то для минимальной многозадачности необходимо каждой задаче свой набор РОН, теневых регистров и регистров стека возвратов. Думаю, Вы с этим согласитесь.

Самое интересное - это обмен сообщениями между задачами и синхронизация задач. Я предлагаю вот такой вариант - l4os.ru/download/L4_Hard_20130119.pdf

Выкладываю ссылку на ролик с выводом картинок на монитор.

msh2soc_1


Очень интересно. Несколько вопросов.
Насколько я понимаю, скорость, показанная в ролике, ограничена скоростью пересылки данных из компьютера в плату Марсоход?
Какой объём ОЗУ Вы задействовали для демонстрационной программы?
Есть ли у Вас какие либо идеи или наработки по компилятору для ST16?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от alman.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1543

  • Ynicky
  • Ynicky аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 209
  • Спасибо получено: 39
To alman.
Что означает теневой регистр?

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

Какой объём ОЗУ Вы задействовали для демонстрационной программы?
Если имеется в виду ОЗУ данных, то никакой. Программа "uart_bmp.asm" написана на ассемблере.
В ней я сразу данные из регистров пересылаю в экранное ОЗУ.

Есть ли у Вас какие либо идеи или наработки по компилятору для ST16?
Я использую LCC 4.2 .
В нем не сложно написать свой "mashine description" файл.
Тем более есть примеры на популярные процессоры.

Николай.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: SoC для платы Марсоход2 6 года 7 мес. назад #1544

Ynicky пишет: To alman.
Что означает теневой регистр?


Ой, простите, я имел в виду дополнительные регистры. Виноват.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.251 секунд

ВКонтакте  facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Forum Наш форум Проекты пользователей SoC для платы Марсоход2