Перейти к содержанию
    

микропрограммный автомат

На днях я слышал что микропрограммные автоматы(общее описание) работают быстрее микропроцессоров(микроконтроллеров) и даже обычных FSM(Мили или Мура). Применять можно например когда требуется "ну очень" высокая частота работы логики. И также что микропрограммный автомат может заменить микропроцессор(микроконтроллер).

 

Подтвердите или опровергните данное высказывание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На днях я слышал что микропрограммные автоматы(общее описание) работают быстрее микропроцессоров(микроконтроллеров) и даже обычных FSM(Мили или Мура). Применять можно например когда требуется "ну очень" высокая частота работы логики. И также что микропрограммный автомат может заменить микропроцессор(микроконтроллер).

 

Подтвердите или опровергните данное высказывание.

 

Специализированные чипы для воспроизведения видео меньше по размеру, работают быстрее и потребляют меньше микропроцессоров (как правило).

 

обычных FSM(Мили или Мура)

 

Этот аппарат и есть обычный FSM (только очень ограниченный). Я не думаю, что он быстрее FPGA с внутренним ROM.

 

И также что микропрограммный автомат может заменить микропроцессор(микроконтроллер).

Может в особых случаях (простой автомат). И, возможно, дешевле будет стоить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На днях я слышал что микропрограммные автоматы(общее описание) работают быстрее микропроцессоров(микроконтроллеров)
Да

и даже обычных FSM(Мили или Мура).
Нет, т.к. это одно и тоже. Описанный в статье 'микропрограмный автомат' является обычной FSM

Применять можно например когда требуется "ну очень" высокая частота работы логики.
Когда требуется 'очень высокая частота работы логики' то применять нужно 'логику'. Никакой автомат не сможет работать быстрее тактирующего клока

И также что микропрограммный автомат может заменить микропроцессор(микроконтроллер).
До некоторой степени. Микропроцессоры строются на базе FSM (обычно нескольких).

NB. У Xilinx PicoBlase в файлах сорцов называется конечным автоматом :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Xilinx PicoBlase в файлах сорцов называется конечным автоматом :rolleyes:

программируемым конечным автоматом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда число состояний большое от 100 до 1000 то лучше и удобней МПА, но нужна память для микрокоманд.

Мне приходилось синтезировать несколько разных МПА для спец.вычислителей. Длина микрокоманды была 64 или 48 бит, а число адресов до 1024. Для программирования МПА писался свой микроассемблер. Но это было давно.

Думаю, что быстродействие у FSM до 100 состояний больше чем у МПА.

Применять МПА или нет, зависит от задачи. Проще один или несколько NiosII, с аппаратным обрамлением для быстрых процессов, опять же с несколькими FSM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На днях я слышал что микропрограммные автоматы(общее описание) работают быстрее микропроцессоров(микроконтроллеров) и даже обычных FSM(Мили или Мура).

 

Я об этом писал в цикле статей "Микроконтроллер своими руками".

Коротко:

1. Автомат всегда делает переход по полученному воздействию за 1 такт. Микроконтроллер, получив прерывание... Сколько тактов? Конвейер и пр...

2. Если микроконтроллер не специализированный, то обработка может потребовать несколько команд. Автомат - всегда специализированный и сделает все за минимум тактов... Или "Вызовет" другой автомат. См. книги Шалыто АА по автоматам...

3. При числе состояний больше 20-50 автомат в отладке и программировании становится очень тяжелым...

4. что касается памяти, то и автомату она тоже нужна...

Удачи!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я конечно представляю с чего начать описание микропрограммного автомата, но ...

 

Может кто-то поделиться литературой или простым примером описания(желательно на VHDL, в крайнем случае можно и на Verilog) микропрограммного автомата

 

=> iosifk Спасибо, на Вашем сайте скачал статью читаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В библиотеку идти за статьями - искать, ксерить скажу честно скажу лень.

Класика совеЦкой литературы, прямо из библиотеки :laughing: детальнее чем здесь и на русском вряд ли где можно найти ;)

СцЫлко

правда без HDL :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

микропрограммные автоматы работают быстрее микропроцессоров(микроконтроллеров)

зависит от программы, но в общем случае да

 

даже обычных FSM(Мили или Мура).

зависит от уровня логики МПА, но в общем случае нет.

 

Может кто-то поделиться литературой или простым примером описания(желательно на VHDL, в крайнем случае можно и на Verilog) микропрограммного автомата

поройтесь на форуме, я выкладывал года 4 назад генератор МПА на питоне + описание ассемблера под него %)

 

там же можете посмотреть когда МПА айс, а когда совсем не айс %)

 

UPD : вот кстати та тема

 

UPD2 : проект из моего VHDLного прошлого, так что не обессудьте %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там же можете посмотреть когда МПА айс, а когда совсем не айс %)

это вы про >20 состояний КА??

 

Хотел бы есчё для себя прояснить: входные порты по которым вы ориентируете условия это Branch_in/Branch1_in. С помощью BranchDataIn_in вы задаёте address offset, а с помощью DataIn_in - cnt load (значение которое загрузится в PC) и выходы Edata_r_out/Edata_out у вас как и у Altera State Sequencer-а могут принимать значения только хардкоженые (ведь входные дата порты используются для работы с кодом машины грубо говоря)?

И вопрос номер 2 - а почему у вас как и у Altera State Sequencer-а нет

входов-операции_с_ними-выходов

?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это вы про >20 состояний КА??

Нет, не совсем. Главное узкое место любого МПА - генерация адреса. Если в КА нет проблем описать декодер как прыгнуть из любого состояния в любое состояние (при этом если это onehot, там будет всё в шоколаде). То для МПА эта проблема вырождается в большой мультиплексор по адресу. При этом этот адрес нельзя пайплайнить (ну если очень хочется то можно), поэтому тактовая и резко проседает.

 

Хотел бы есчё для себя прояснить: входные порты по которым вы ориентируете условия это Branch_in/Branch1_in. С помощью BranchDataIn_in вы задаёте address offset, а с помощью DataIn_in - cnt load (значение которое загрузится в PC) и выходы Edata_r_out/Edata_out у вас как и у Altera State Sequencer-а могут принимать значения только хардкоженые (ведь входные дата порты используются для работы с кодом машины грубо говоря)?

Ну вы спросили. 4 года назад дело было. Но вроде как вы верно думаете %)

 

И вопрос номер 2 - а почему у вас как и у Altera State Sequencer-а нет
входов-операции_с_ними-выходов

?

потому что это будет уже не МПА, а маленький проц %) типа Avalon uSequencer %)

 

UPD. Немного ошибся декодер как прыгнуть из любого состояния в любое состояние читать как декодер как прыгнуть из любого состояния в несколько других любых состояний

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

МПА исторически возникли тогда, когда САПРов цифровой техники не было.

Поэтому их легче было синтезировать/модернизировать вручную, чем автоматы.

(Сам синтезировал и автоматы и МПА в 76-90 гг.)

Теперь, когда операторы процесса транслируются в железо автоматически,

МПА, как методика синтеза управления, не имеет никаких преимуществ.

Пишите себе алгоритм управления как хочется в 1 или нескольких процессах.

И будет результат лучше, чем чистый МПА.

Может быть, МПА дисциплинирует в рамках сочинения алгоритма.

Но тогда пишите процесс ala МПА - с длинным оператором Case,

в котором каждый выбор - микрокоманда.

И будет выглядеть как микропрограмма,

а компилятор -синтезатор странслирует и соптимизирует по возможности.

 

Интересные результаты дает система Celoxica.

Описывается алгоритм на ЯВУ и транслируется в большой автомат.

Наверное, и другие такие системы уже есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...