|
|
  |
Конвейеры |
|
|
|
Apr 26 2011, 15:37
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
по-английски,вас интересует термин "pipeline". начать, как всегда посоветовал бы с http://en.wikipedia.org/wiki/Instruction_pipelineа в целом - чем над большим объемом входных данных Вам нужно провести однотипное преобразование, тем эффективней конвейерный вычислитель,по сравнению с векторным. Ведь в идеале, вы получаете выходные данные каждый такт работы конвейера(за исключением времени наполнения конвейера данными)
|
|
|
|
|
Apr 26 2011, 18:19
|
Участник

Группа: Участник
Сообщений: 39
Регистрация: 12-05-10
Пользователь №: 57 219

|
Простейший пример касательно ПЛИС: представьте себе дерево из трех сумматоров, где нижний сумматор складывает содержимое двух верхних сумматоров. Пускай на выходе последнего сумматора стоит регистр для запоминания значения. Дерево сумматоров - это комбинационная схема, дающая задержку. Может быть так, что при выбранной частоте тактирования, из-за задержки в комбинационной схеме, не будут выполняться время установки или время удержания для триггера. То есть задержка настолько большая, что триггер, работая на своей тактовой частоте, переключается, когда данные еще не готовы. Триггер даже может перейти в метастабильное состояние. Но в промежуток между верхними и нижним сумматорами можно добавить регистры. Комбинационная схема разбивается пополам, задержка уменьшается, следовательно, можно повысить тактовую частоту. Результат появится на такт позже, но это ерунда  Для ПЛИС рекомендую всегда придерживаться такого принципа, потому что, если посмотреть на устройство логической ячейки в FPGA, то там каждая таблица LUT (она же комбинационный элемент) снабжается D-триггером.
|
|
|
|
|
Apr 27 2011, 06:14
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642

|
Цитата(iosifk @ Apr 27 2011, 08:47)  "Микропроцессор своими руками" - там в одной из статей будет написано, что такое конвейер в микропроцессоре. Думаю конвейеризация в микропроцессоре имеет свои тонкости, поскольку процессор изначально ориентирован на последовательное выполнение определенных команд, причем система команд ограничена. Конвейеризация изначально заложена в самой архитектуре ПЛИС, поскольку она предоставляет огромное количество ресурсов, которые могут работать параллельно, поэтому тут свои особенности.
--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти. (с) Уилл Роджерс
|
|
|
|
|
Apr 27 2011, 06:50
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(D-Luxe @ Apr 27 2011, 10:14)  Думаю конвейеризация в микропроцессоре имеет свои тонкости, поскольку процессор изначально ориентирован на последовательное выполнение определенных команд, причем система команд ограничена. Конвейеризация изначально заложена в самой архитектуре ПЛИС, поскольку она предоставляет огромное количество ресурсов, которые могут работать параллельно, поэтому тут свои особенности. Да нет, все тоже самое. Что АЛУ в микропроцессоре, что вычислитель в ПЛИС - вещи совершенно одного порядка. Разница не велика. АЛУ умеет выполнять несколько вариантов вычислений, а вычислитель в ПЛИС редко делают перенастраиваемый. Но, как я уже писал, если Вы делаете микроконтроллер в ПЛИС, то разница становится еще меньше...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|