Sabelnikov_Report_PTICA


Министерство образования и науки Украины
Национальный аэрокосмический университет им. Н.Е. Жуковского
«Харьковский авиационный институт»
Кафедра компьютерных систем и сетей
Разработка цифрового вычислителя с конвейерной обработкой данных
Пояснительная записка к курсовому проекту,
направление 6.050102 – «Компьютерная инженерия»
по дисциплине «Прикладная теория цифровых автоматов»
ХАІ.503.535.14О.050102, 1105079 ПЗ
Выполнил студент гр. 535 Сабельников И.В.
(№ группы) (Ф.И.О.)

(подпись, дата)
Проверил ст. преподаватель
(научная степень, ученое звание, должность)
Фурманов К.К.
(подпись, дата)(Ф.И.О.)
Харьков DATE \@ "YYYY" 2014
Содержание
TOC \h \z \t "-заголовок,1,-заг2,2,-заг-стд,1" Задание к курсовому проекту PAGEREF _Toc378719784 \h 31.Введение PAGEREF _Toc378719785 \h 41.1.История PAGEREF _Toc378719786 \h 51.2.Тактовый генератор PAGEREF _Toc378719787 \h 51.3.Конфликт конвейера PAGEREF _Toc378719788 \h 61.4.Бесконвейерная архитектура PAGEREF _Toc378719789 \h 61.5.Преимущества и недостатки PAGEREF _Toc378719790 \h 81.6.Общий конвейер PAGEREF _Toc378719791 \h 91.7.«Пузырек» PAGEREF _Toc378719792 \h 111.8.Трудности PAGEREF _Toc378719793 \h 112.Проектирование линейного конвейера PAGEREF _Toc378719794 \h 142.1.Граф информационных связей PAGEREF _Toc378719795 \h 142.2.Операционная схема конвейерного процессора PAGEREF _Toc378719796 \h 152.3.Управляющий автомат PAGEREF _Toc378719797 \h 162.4.Таблица занятости PAGEREF _Toc378719798 \h 172.5.Граф-схема алгоритма (ГСА) в закодированном виде PAGEREF _Toc378719799 \h 183.Проектирование конвейера с обратными связями PAGEREF _Toc378719800 \h 193.1.Граф информационных связей PAGEREF _Toc378719801 \h 193.2.Операционная схема конвейерного процессора PAGEREF _Toc378719802 \h 203.3.Сокращенная таблица занятости PAGEREF _Toc378719803 \h 213.4.Полная таблица занятости PAGEREF _Toc378719804 \h 223.5.Граф-схема алгоритма (ГСА) в закодированном виде PAGEREF _Toc378719805 \h 233.6.Формат микропрограммы PAGEREF _Toc378719806 \h 243.7.Микропрограмма для управляющего автомата PAGEREF _Toc378719807 \h 243.8.Принципиальная схема вычислителя PAGEREF _Toc378719808 \h 25Выводы PAGEREF _Toc378719809 \h 26Список использованной литературы PAGEREF _Toc378719810 \h 27
Задание к курсовому проектуТема: Разработка цифрового вычислителя с конвейерной обработкой данных.
Вычислитель реализует функцию F=sin2(a+b)+(a+b)*b.
В фигурных скобках задания указаны типы операционных блоков - {+, *, sin}.
Функция F реализуется для 10 различных наборов выходных данных.
Разрядность данных – 1 байт.
Элементарные функции (y=f(x)) реализовать таблично на ПЗУ.
В пояснительной записке к курсовому проекту представить:
Титульный лист.
Задание к курсовому проекту.
Введение.
Для линейного конвейера представить:
Линейный граф информационных связей.
Таблицу занятости операционных блоков.
Разработку операционной схемы вычислителя и полной таблицы занятости.
Граф микропрограммы.
Для конвейера с обратными связями представить:
Совмещённый граф информационных связей.
Таблицу занятости.
Операционную схему вычислителя.
Полную таблицу занятости.
Граф микропрограммы.
Формат микрокоманды и микропрограмму для управляющего автомата с гибкой логикой.
Принципиальную схему вычислителя – реализовать на Quartus II.
Заключение.
Список использованной литературы.

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

Простой пятиуровневый конвейер в RISC-процессорах
На рисунке 1 показан простой пятиуровневый конвейер в RISC-процессорах. Здесь:
IF (англ. Instruction Fetch) — получение инструкции,
ID (англ. Instruction Decode) — раскодирование инструкции,
EX (англ. Execute) — выполнение,
MEM (англ. Memory access) — доступ к памяти,
WB (англ. Register write back) — запись в регистр.
Вертикальная ось — последовательные независимые инструкции, горизонтальная — время. Зелёная колонка описывает состояние процессора в один момент времени, в ней самая ранняя, верхняя инструкция уже находится в состоянии записи в регистр, а самая последняя, нижняя инструкция только в процессе чтения.
ИсторияСам термин «конвейер» пришёл из промышленности, где используется подобный принцип работы — материал автоматически подтягивается по ленте конвейера к рабочему, который осуществляет с ним необходимые действия, следующий за ним рабочий выполняет свои функции над получившейся заготовкой, следующий делает ещё что-то. Таким образом, к концу конвейера цепочка рабочих полностью выполняет все поставленные задачи, сохраняя высокий темп производства. Например, если на самую медленную операцию затрачивается одна минута, то каждая деталь будет сходить с конвейера через одну минуту.
Считается, что впервые конвейерные вычисления были использованы либо в проекте ILLIAC II, либо в проекте IBM Stretch. Проект IBM Stretch предложил термины «получение» (HYPERLINK "http://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" \o "Английский язык"Fetch), «расшифровка» (Decode) и «выполнение» (Execute), которые затем стали общеупотребительными.
Тактовый генераторМногие современные процессоры управляются тактовым генератором. Процессор внутри состоит из логических элементов и ячеек памяти — триггеров. Когда приходит сигнал от тактового генератора, триггеры приобретают своё новое значение и «логике» требуется некоторое время для декодирования новых значений. Затем приходит следующий сигнал от тактового генератора, триггеры принимают новые значения, и так далее. Разбивая последовательности логических элементов на более короткие и помещая триггеры между этими короткими последовательностями, уменьшают время, необходимое логике для обработки сигналов. В этом случае длительность одного такта процессора может быть соответственно уменьшена.
Например, простейший конвейер RISC-процессоров можно представить пятью стадиями с наборами триггеров между стадиями:
получение инструкции (Instruction Fetch);
декодирование инструкции (Instruction Decode) и чтение регистров (Register fetch);
выполнение (Execute);
доступ к памяти (Memory access);
запись в регистр (Register write back).
Конфликт конвейераПри написании ассемблерного кода (либо разработке компилятора, генерирующего последовательность инструкций) делается предположение, что результат выполнения инструкций будет точно таким, как если бы каждая инструкция заканчивала выполняться до начала выполнения следующей за ней. Использование конвейера сохраняет справедливость этого предположения, однако не обязательно сохраняет порядок выполнения инструкций. Ситуация, когда одновременное выполнение нескольких инструкций может привести к логически некорректной работе конвейера, известна как «конфликт конвейера (Pipeline hazard)». Существуют различные методы устранения конфликтов:  HYPERLINK "http://ru.wikipedia.org/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%84%D0%BB%D0%B8%D0%BA%D1%82_%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D0%B9%D0%B5%D1%80%D0%B0&action=edit&redlink=1" \o "Конфликт конвейера (страница отсутствует)" форвардинг (Register forwarding) (иногда называется  HYPERLINK "http://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%B9%D0%BF%D0%B0%D1%81" \o "Байпас" bypass) и другие.
Бесконвейерная архитектура
Бесконвейерная архитектура значительно менее эффективна из-за меньшей загрузки функциональных модулей процессора в то время, пока один или небольшое число модулей выполняет свою роль во время обработки инструкций. Конвейер не убирает полностью время простоя модулей в процессорах как таковое и не уменьшает время выполнения каждой конкретной инструкции, но заставляет модули процессора работать параллельно над разными инструкциями, увеличивая тем самым количество инструкций, выполняемых за единицу времени, а значит и общую производительность программ.
Процессоры с конвейером внутри устроены так, что обработка инструкций разделена на последовательность стадий, предполагая одновременную обработку нескольких инструкций на разных стадиях. Результаты работы каждой из стадий передаются через ячейки памяти на следующую стадию, и так — до тех пор, пока инструкция не будет выполнена. Подобная организация процессора, при некотором увеличении среднего времени выполнения каждой инструкции, тем не менее обеспечивает значительный рост производительности за счёт высокой частоты завершения выполнения инструкций.
Не все инструкции являются независимыми. В простейшем конвейере, где обработка инструкции представлена пятью стадиями, для обеспечения полной загрузки, в то время пока заканчивается обработка первой инструкции, должно обрабатываться параллельно ещё четыре последовательных независимых инструкции. Если последовательность содержит инструкции, зависимые от выполняемых в данный момент, то управляющая логика простейшего конвейера приостанавливает несколько начальных стадий конвейера, помещая этим самым в конвейер пустую инструкцию («пузырёк»), иногда неоднократно, — до тех пор, пока зависимость не будет разрешена. Существует ряд приёмов, таких как форвардинг, значительно снижающих необходимость приостанавливать в таких случаях часть конвейера. Однако зависимость между инструкциями, одновременно обрабатываемыми процессором, не позволяет добиться увеличения производительности кратно количеству стадий конвейера в сравнении с бесконвейерным процессором.

Преимущества и недостаткиКонвейер помогает не во всех случаях. Существует несколько возможных минусов. Конвейер инструкций можно назвать «полностью конвейерным», если он может принимать новую инструкцию каждый машинный цикл. Иначе в конвейер должны быть вынужденно вставлены задержки, которые выравнивают конвейер, при этом ухудшат его производительность.
Преимущества:
Время цикла процессора уменьшается, таким образом увеличивая скорость обработки инструкций в большинстве случаев.
Некоторые комбинационные логические элементы, такие как сумматоры или умножители могут быть ускорены путем увеличения количества логических элементов. Использование конвейера может предотвратить ненужное наращивание количества элементов.
Недостатки:
Бесконвейерный процессор исполняет только одну инструкцию за раз. Это предотвращает задержки веток инструкций (фактически, каждая ветка задерживается), и проблемы, связанные с последовательными инструкциями, которые исполняются параллельно. Следовательно, схема такого процессора проще и он дешевле для изготовления.
Задержка инструкций в бесконвейерном процессоре слегка ниже, чем в конвейерном эквиваленте. Это происходит из-за того, что в конвейерный процессор должны быть добавлены дополнительные триггеры.
У бесконвейерного процессора скорость обработки инструкций стабильна. Производительность конвейерного процессора предсказать намного сложнее, и она может значительно различаться в разных программах.

Общий конвейер

Общий четырёхуровневых конвейер; цветные квадраты символизируют независимые друг от друга инструкции
Сверху изображён общий конвейер с четырьмя стадиями работы:
Получение (Fetch)
Раскодирование (Decode)
Выполнение (Execute)
Запись результата (Write-back)
Верхняя серая область — список инструкций, которые предстоит выполнить. Нижняя серая область — список инструкций, которые уже были выполнены. И средняя белая область является самим конвейером.
Выполнение представлено в таблице 1.
Выполнение операций на конвейере
Цикл Действия
0 Четыре инструкции ожидают исполнения
1 Зелёная инструкция забирается из памяти
2 Зелёная инструкция раскодируется
Фиолетовая инструкция забирается из памяти
3 Зелёная инструкция выполняется (то есть исполняется то действие, которое она кодировала)
Фиолетовая инструкция раскодируется
Синяя инструкция забирается из памяти
4 Итоги исполнения зелёной инструкции записываются в регистры или в память
Фиолетовая инструкция выполняется
Синяя инструкция раскодируется
Красная инструкция забирается из памяти
5 Зелёная инструкция завершилась
Итоги исполнения фиолетовой инструкции записываются в регистры или в память
Синяя инструкция выполняется
Красная инструкция раскодируется
6 Фиолетовая инструкция завершилась
Результаты исполнения синей инструкция записываются в регистры или в память
Красная инструкция выполняется
7 Синяя инструкция завершилась
Итоги исполнения красной инструкции записываются в регистры или в память
8 Красная инструкция завершилась
9 Все инструкции были выполнены

«Пузырек»
Пузырек в третьем такте обработки задерживает исполнение
Когда в выполнении по каким-либо причинам случается небольшой сбой или задержка, в конвейере получается «пузырёк», в котором не происходит ничего полезного. Во втором такте обработка фиолетовой инструкции задерживается и вместо стадии расшифровки в третьем такте теперь находится пузырёк. Всё, что находится «за» фиолетовой инструкцией, испытывает задержку в один такт, тогда как всё, что находится «перед» фиолетовой инструкцией продолжает исполняться.
Очевидно, что наличие пузырька в конвейере даёт суммарное время исполнения в 8 тактов вместо 7 на схеме исполнения, показанной выше.
Пузырьки — это как заглушки, в которых не происходит ничего полезного при их прочтении, раскодировании, исполнении и записи результата. Они могут быть выражены при помощи инструкции NOP ассемблера.
ТрудностиМножество схем включают в себя конвейеры в 7, 10 или даже 20 уровней (как, например, в  HYPERLINK "http://ru.wikipedia.org/wiki/Pentium_4" \o "Pentium 4" Pentium 4). Поздние ядра Pentium 4 с кодовыми именами  HYPERLINK "http://ru.wikipedia.org/wiki/Prescott" \o "Prescott" Prescott и  HYPERLINK "http://ru.wikipedia.org/wiki/Cedar_Mill" \o "Cedar Mill" Cedar Mill (и ихPentium D-производные) имеют 31-уровневый конвейер, самый длинный среди популярных процессоров ( HYPERLINK "http://ru.wikipedia.org/w/index.php?title=Xelerator_X10q&action=edit&redlink=1" \o "Xelerator X10q (страница отсутствует)" Xelerator X10q имеет конвейер длиной более, чем в тысячу шагов.). Обратной стороной медали в данном случае является необходимость сбрасывать весь конвейер в случае, если ход программы изменился (например, по условному оператору). Эту проблему пытаются решать предсказатели переходов. Предсказание переходов само по себе может только усугубить ситуацию, если предсказание производится плохо. В некоторых областях применения, таких как вычисления на суперкомпьютерах, программы специально пишутся так, чтобы как можно реже использовать условные операторы, поэтому очень длинные конвейеры весьма позитивно скажутся на общей скорости вычислений, так как длинные конвейеры проектируются так, чтобы уменьшить CPI (Clocks Per Instruction, количество тактов на инструкцию). Если ветвление происходит постоянно, переорганизация таким образом, чтобы те инструкции, которые, скорее всего, понадобятся, были размещены в конвейере, может значительно уменьшить потери скорости по сравнению с необходимостью каждый раз полностью сбрасывать конвейер. Программы типа  HYPERLINK "http://ru.wikipedia.org/wiki/Gcov" \o "Gcov" gcov могут использоваться для того, чтобы определять, как часто отдельные ветки исполняются на самом деле, используя технологию, известную как анализ покрытия кода (Code coverage analysis), хотя на практике подобный анализ является последней мерой при оптимизации.
Высокая пропускная способность конвейеров приводит к уменьшению производительности в случае, если в исполняемом коде содержится много условных переходов: процессор не знает, откуда читать следующую инструкцию, и поэтому вынужден ждать, когда закончится инструкция условного перехода, оставляя за ней пустой конвейер. После того, как ветка будет пройдена и станет известно, куда процессору необходимо переходить в дальнейшем, следующая инструкция должна будет пройти весь путь через конвейер перед тем, как результат становится доступным и процессор снова «работает». В крайнем случае, производительность конвейерного процессора может теоретически упасть до производительности бесконвейерного, или даже быть хуже за счет того, что будет занят только один уровень конвейера и между уровнями присутствует небольшая задержка.
Из-за конвейера процессора, код, который загружает процессор, не будет исполнен мгновенно. Из-за этого, обновления в коде, которые находятся очень близко к текущему месту исполнения программы, могут пройти незамеченными из-за того, что код уже предзагружен во входную очередь предвыборки ( HYPERLINK "http://en.wikipedia.org/wiki/Prefetch_input_queue" \o "en:Prefetch input queue" Prefetch input queue). Кэш инструкций ещё больше усугубляют эту проблему. Стоит учитывать, что данная проблема присутствует только в самомодифицирующихся программах, а также в упаковщиках исполняемых файлов.

Проектирование линейного конвейераРазработаем эскиз линейного конвейера, который предназначен для многократного вычисления функции:
F=sin2(a+b)+(a+b)*b
Граф информационных связейСоставим граф информационных связей:

Граф информационных связей линейного конвейера
Из графа определяем типы и число операционных блоков (ОБ): {+, *, sin, Ma, Mb, MF}
Перечень операционных блоков:
+ - сумматор
- умножитель
sin – вычисление натурального логарифма
- магазины для данных
- магазин для сохранения результата вычисления
Операционная схема конвейерного процессора
Операционная схема линейного конвейерного устройства
Список операционных блоков:
- магазины хранения исходных данных
- сумматоры
*1,*2 - умножители
Фn - фиксатор
Ф+ - фиксатор, сохраняет результат после суммирования
Фsin - фиксатор, сохраняет результат после вычисления синуса числа
sin – вычисление синуса числа
М – магазин для сохранения результата
Управляющий автомат
Управляющий автомат линейного конвейерного устройства
х – осведомительный сигнал
СЧ – счетчик числа циклов
m – число цикловСписок управляющих сигналов и логических условий:
установка в выходные буферы магазинов данных ,;







Таблица занятостиЗанятость конвейера представлена в таблице 2. Каждое отображает какой набор данных обрабатывается в определенном операционном блоке.
Внизу таблицы вынесены управляющие сигналы, вырабатывающиеся на каждом такте.
Каждое относится к своей ступени. При этом в нее могут входить несколько операционных блоков. Главным условием является выполнение неперекрывающихся операций в рамках одной ступени.
Занятость конвейера
Ступени Такты
0 с 1 + 2 sin, * 3 * 4 + 5 F
y0
y7 y0
y1
y0
y1
y2
y0
y1
y2
y3
y0
y1
y2
y3
y4
y0
y1
y2
y3
y4
y5
y6
y0
y1
y2
y3
y4
y5
y6
y0
y1
y2
y3
y4
y5
y6
y0
y1
y2
y3
y4
y5
y6
y0
y1
y2
y3
y4
y5
y6
y1
y2
y3
y4
y5
y2
y3
y4
y5
y3
y4
y5
y4
y5
y5




Граф-схема алгоритма (ГСА) в закодированном виде
ГСА линейного конвейерного устройства в закодированном виде
Проектирование конвейера с обратными связямиГраф информационных связей
Граф информационных связей конвейерного устройства
Список операционных блоков:
+ - сумматор
sin - блок извлечения синуса
Ф1 – фиксатор, необходим для задержки на один такт
- умножитель
mx1, mx2, mx3, mx4 - мультиплексоры
F – магазин для сохранения результата
Операционная схема конвейерного процессора
Операционная схема конвейерного устройства с обратными связями
Список операционных блоков:
-магазины хранения исходных данных
+ - сумматор
- умножитель
sin - вычисление синуса
Ф+ - фиксатор, сохраняет результат после суммирования
Фsin - фиксатор, сохраняет результат после вычисления синуса
Ф* - фиксатор, сохраняет результат после умножения
Ф1 – фиксатор, необходим для задержки на один такт
MX1, MX2, MX3, MX4 - мультиплексоры
МF – магазин для сохранения результата
Сокращенная таблица занятостиПостроение таблицы начинается с заполнения ячеек для нулевого набора данных. Далее следует поочередно размещать все остальные наборы. При этом нужно исправлять коллизии - в одной ячейке не должно оказаться двух или более различных наборов. Если накладывание происходит, то следует поставить дополнительный элемент задержки и снова пересчитать таблицу. Необходимо учитывать, что данные сохраняются в магазинах до прибытия следующих данных.
В итоге должна получиться таблица, где хотя бы одна ступень полностью занята по времени. У нас это блоки "+" и "*" (см. табл. 3). Середина таблицы должна сформировать повторяющуюся последовательность действий (цикл). В нашем случае он занимает два такта.

Занятость конвейера для десяти входных наборов данных (сокращенная форма)
Такты 0 1 2 3 4 5 20 21 22 23
M F0 F0 F1 F1 F2 F2 … F9 F9 F9 F9
+ F0 F1 F0 F2 … F8 F9 Ф1 F0 F1 … F9 sin F0 F1 … F9 * F0 F0 F1 F1 … F9 F9 F F0 … F8 (F9
Начало Цикл Конец


Полная таблица занятостиСокращенная таблица не отображает операций, производимых в операционных блоках на каждом шаге. Она предназначена лишь для быстрого построения конвейера с обратными связями. Чтобы раскрыть внутренние процессы, следует развернуть таблицу в полную форму представления (см. табл. 4). Теперь мы будем не только знать, что в каком блоке находится в конкретный момент времени, но и определим детальный список управляющих сигналов для каждого конкретного такта. Полная форма представлена в таблице 4.
Занятость конвейера для десяти входных наборов данных (полная форма)
Такты 0 1 2 3 4 5 20 21 22 23
y0 M a0 b0 a0 b0 a1 b1 a1 b1 a2 b2 a2 b2 … a9 b9 a9 b9 a9 b9 a9 b9
y1 + a0+b0 a1+b1 (a0+b0)*b0 + sin2(a0+b0) a2+b2 … (a8+b8)*b8 + sin2(a8+b8) (a9+b9)*b9 + sin2(a9+b9) y2 Ф1 (a0+b0)*b0 (a1+b1)*b1 … (a9+b9)*b9 y3 sin sin(a0+b0) sin(a1+b1) … sin(a9+b9) y4 * (a0+b0)*b0 sin2(a0+b0) (a1+b1)*b1 sin2(a1+b1) … (a9+b9)*b9 sin2(a9+b9) y5 F F0 … F8 F9
y0 y0 y0 y6 y1 y1 y1 y1 y1 y1 y2 y2 y2 y3 y3 y3 y4 y4 y4 y4 y4 y4 y5 y5 y5
A1=0 A1=0 A1=1 A1=1 A2=0 A2=1 A2=0 A2=1 A2=0 A2=1
Граф-схема алгоритма (ГСА) в закодированном видеОпираясь на таблицу 4 составим ГСА, а также выделим микрокоманды автомата с гибкой логикой. Одной из особенностей данной схемы будет то, что все условия являются инвертированными, т.е. переход будет осуществляться по логическому уровню нуля.

Граф-схема алгоритма в закодированном виде

Формат микропрограммыНа каждый управляющий сигнал отводится один бит. У нас имеется семь таких сигналов: начиная от y0 и заканчивая y6.
На управления двумя парами мультиплексоров отводится 2 управляющих сигнала. Их можно свести до одного, затратив дополнительный логический элемент НЕ. Но это снизит гибкость управляющей микропрограммы, т.к. пары мультиплексоров смогут находится только в противофазе.
Имеется три осведомительных канала и соответственно для них отведено 3 бита.
Т. к. максимальный адрес перехода - АМ5, то для этого механизма достаточно задействовать 3 бита.
Формат микропрограммы
Y X A
7 2 3 3
Микропрограмма для управляющего автоматаМикропрограмма для управляющего автомата с гибкой логикой
Y X A
M0 - *,* AM0
M1 y0 y6 *,* - -
M2 y1 0,* - -
M3 y0 y3 y4 *,0 - -
M4 y1 y2 y4 0,1 - -
M5 y0 y1 y3 y4 *,0 - -
M6 y1 y2 y4 y5 *,1 - -
M7 - *,* AM5
M8 y1 y3 y4 1,0 M9 y2 y4 y5 *,1 M10 y1 1,* - -
M11 y5 *,* 1 AM0

Принципиальная схема вычислителяВ среде Quartus II была построена принципиальная схема вычислителя, которая представлена на рисунке 11. Следует заметить, что проводники, имеющие одно название - соединены, хотя на схеме могут находится в разных местах. Это сделано, чтобы избежать усложнения восприятия схемы из-за нагромождения рисунков.

Принципиальная схема конвейерного устройства в визуальном редакторе среды Quartus II

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

Список использованной литературыПараллельная обработка данных [Электронный ресурс] . – Электрон. дан. – Режим доступа : http://www.parallel.ru/vvv/lec1.html
Pipelining: An Overview [Электронный ресурс] . – Электрон. дан. – Режим доступа : http://arstechnica.com/features/2004/09/pipelining-1/1/
К.Вильсон, в сб. "Высокоскоростные вычисления". М. Радио и Связь, 1988, сс.12-48.
Б.А.Головкин, "Параллельные вычислительные системы". М.. Наука, 1980,519 с.
Р.Хокни, К.Джессхоуп,"Параллельные ЭВМ. М. Радио и Связь, 1986, 390 с.
Flynn И.,7., IEEE Trans. Comput., 1972, о.С-21, N9, рр. 948-960.
Russel К.М., Commun. АСМ, 1978, v. 21, # 1, рр. 63-72.
Т.Мотоока, С.Томита, Х.Танака, Т. Сайто, Т.Уэхара, "Компьютеры на СБИС", m.l. М. Мир, 1988.

Приложенные файлы

  • docx 18468788
    Размер файла: 1 MB Загрузок: 0

Добавить комментарий