16+
Пятница
16 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Средства и методы разработки

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Evgeny_CD  (29.04.2018 00:04, ссылка, ссылка, просмотров: 134)
[Какой софткор нам нужен]? Размышлизма по причине достижения -> предела софткоростроения. Неплохая статья по теме гибридных стеково-регистровых процессоров --> 
  • Исключения
  • На практике могут быть любые, самые невероятные извращения, которые делают неприменимыми все описанные мною мысли.
  • Зачем нам нужен софткор?
  • Он нужен, чтобы сэкономить ресурсы на программировании гигантских не очень быстрых конечных автоматов в FPGA. Например, 1Г Ethernet - это 200к пакетов в секунду по 512 байт [грубая прикидка]. И для 50 MIPS софткора у нас будет 250 32 битных операций на обработку этого пакета. Не так и сложно успеть. А вот КА для обработки пакета - это монстр! Софткор нам нужен, чтобы управлять чем-то.
  • Что софткор не должен делать?
  • Софткор не должен проводить массивные вычисления самостоятельно. Он может управлять вычислительнымп блоком, но не сам проводить вычисления. Аппаратные умножение и деление стоит оставить для удобства программиста. Никакой плавучки! Linux на софткоре - это эпическая глупостью. Одно время это было очень продвигаемым решением, но увы - это время закончилось. Для этого есть FPGA со встроенными железными ядрами. "Linux микросхема за $16" caxapa.ru/686130.html сделает это сильно быстрее и сильно-сильно дешевле.
  • Каким должен быть софткор
  • Event-система. Мы засунули софткор внутрь чипа потому, что нам надо быстро, и внешний MCU черех SPI не успевает? Значит, нужна система событий. Во многих современных MCU она есть, но в программируемом варианте это достаточно сложная вещь, по сути специализированная FPGA внутри MCU. Если на этапе синтеза FPGA мы пропишем все связи, то ресрурсов надо будет очень немного. Быстрая работа с прерываниями. Раз нам надо быстро, то и прерывания должны быть очень быстрыми. Безрегистровая архитектура - самое то. Нет нужды сохранять контекст по причине его отсуствия. Быстрая IO шина - идеи Cortex-M0+ Нужны команды прямой работы с виртуальными регистрами, которые отображены на отдельную IO шину. Чтобы не "считать содержимое регистра, наложить маску, понять, что там творится", а чтобы был некий виртуальный регистр (несколько штук - единицы), с содержимым которого софткор работал бы за 1 такт. В том числе переходы. Еще раз - таких регистров буквально 1-2. Могут сильно ускорить реальные задачи.
  • Asm программизм.
  • Эта часть сильно отличается от общепринятой традиции. Чистое IMHO. Наш кастомный процессор управляет кастомной периферией - готовых либ не будет. Так что совместимость нас заботит не очень сильно. Пусть у нас есть безрегистровое ядро, в которого ALU делает все операции над 32 битными числами. Кроме плавучки. Если писать в нормальной IDE, с человеческими именами переменных и визуализатором стека, то будет эффективно.
    Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
    Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
    MMI © MMXVIII