Каковы преимущества использования FPGA по сравнению с TTL в начальной компьютерной архитектуре?


24

Я преподаю единственный курс по компьютерной архитектуре в гуманитарном колледже. Курс обязателен для специалиста по информатике. У нас нет курсов по компьютерной инженерии, электротехнике, другим аппаратным средствам и т. Д. Моя основная цель в курсе заключается в том, чтобы студенты поняли, как работают компьютеры, вплоть до уровня ворот, что, я полагаю, они изучат лучше всего в аппаратной лаборатории и не только через учебник ( Компьютерная организация и дизайнХеннесси и Паттерсон). Моя вторичная цель состоит в том, чтобы побудить их к компьютерной архитектуре и повысить их интерес к информатике. Подготовка их непосредственно для промышленности не является целью, хотя мотивировать их изучать больше компьютерных архитектур. Студенты, как правило, не имели опыта создания чего-либо или прохождения лабораторного курса на уровне колледжа. Как правило, 10-15 студентов проходят курс в семестр.

Я преподаю курс с 1998 года в манере, подобной тому, как меня учили компьютерной архитектуре и цифровой электронике в конце 1980-х годов в Массачусетском технологическом институте: использование чипов DIP TTL на мощных макетах. На первом аппаратном лабораторном задании студенты строят полный сумматор. Примерно в середине семестра они начинают создавать простой компьютер с 8-битным набором инструкций. Чтобы уменьшить проводку, я предоставляю им плату с некоторыми электронными компонентами (два D-триггера, два 4-битных LS 181 ALU, соединенных вместе, чтобы действовать как 8-битный ALU, и буфер с тремя состояниями). В первой из этих лабораторий они получают (очень простые) управляющие сигналы для двух форматов команд и строят схему, вводя инструкции на переключателях и считывая результаты с индикаторов. Во второй лаборатории они добавляют счетчик программ (2 LS163) и EPROM (которыйМой первоначальный вопрос был о том, что до того, как я перешел к тому, как я должен преподавать вводную архитектуру В последней лаборатории они добавляют инструкцию условного перехода. В то время как студенты тратят немало времени на подключение и отладку, я чувствую, что именно там происходит большая часть обучения, и студенты уходят с настоящим чувством выполненного долга.

Люди на этом форуме говорили мне, что я должен перейти на FPGA, с которыми я раньше не работал. Я инженер по программному обеспечению, а не компьютерный инженер, и некоторое время я не ходил в школу, но я способен учиться. Я не смог бы получить много денег ( возможно, несколько тысяч долларов) за замену наших существующих цифровых тренеров. У нас есть один логический анализатор.

Учитывая мои цели и ограничения, вы, советники EE, порекомендовали бы мне придерживаться моего нынешнего подхода к переходу на тот, который основан на FPGA? Если последнее, можете ли вы дать мне какие-либо указатели на материалы, с помощью которых я могу обучаться?

По запросу, здесь есть ссылка на учебную программу и лабораторные задания .

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


Можете ли вы опубликовать или дать ссылку на свой учебный план / программу?
Кевин Вермеер

Могу ли я предложить вам рассмотреть альтернативный подход? Как насчет использования микроконтроллеров типа Arduinos в ваших лабораториях?
JonnyBoats

7
@JonnyBoats: ... как бы это вписалось? Она говорит о создании компьютеров из аппаратных элементов.
Даррон

Чтобы ответить на ваш вопрос - практически никто не строит аппаратные вентили, они покупают микросхемы с уже реализованными вентилями. С ПЛИС никто не строит ворота в оборудовании, они устанавливают их в программном обеспечении.
JonnyBoats

1
@JonnyBoats: FPGA конструируют цифровые конструкции из аппаратных элементов (LUT являются программируемыми элементами). Ворота существуют как аппаратные средства, и ваш дизайн функционирует совершенно физически. С TTL вы не «строите ворота» по этому стандарту, а ... они уже построены. Единственное отличие состоит в том, что функции ворот являются программируемыми, маршрутизация - программируемой (но все же физической), и их на много порядков больше. Я до сих пор не понимаю, как Arduino вписывается в курс по дизайну цифровой логики. (Разве вы не хотели, чтобы она изменила цель курса?)
Даррон

Ответы:


16

Учитывая цели класса, я думаю, что подход TTL хорошо, и я говорю это как "парень FPGA". ПЛИС - это море логики, и вы можете делать с ними всякие забавные вещи, но есть только так много, что по-человечески можно сделать за семестр.

Глядя на ваш учебный план, ваш класс представляет собой смесь курсов логического дизайна и "структур машин", которые я изучал в старших классах. (Плюс, это для CS майоров. Я все для CS майоров, которым приходится сталкиваться с реальным аппаратным обеспечением - позволить им уйти с написанием кода кажется шагом назад.) На этом вводном уровне, где вы проходите через инструкции по сборке Я не вижу никакой реальной пользы в том, чтобы ученики делали что-то в коде, а не вручную. Занятие ЛПВП означает изучение ЛПВП, обучение написанию синтезируемых ЛПВП и изучение IDE. Это намного больше концептуальной сложности и реабстракции. Кроме того, вам приходится иметь дело с проблемами программного обеспечения.

Обычно цель курса, в котором используются ПЛИС, состоит в том, чтобы попрактиковаться в создании логики, которая полезна - полезна для общения с периферийными устройствами, последовательной связью, ОЗУ, видеогенераторами и т. Д. Это ценное знание, но оно, похоже, далеко от объем вашего курса. Более продвинутые занятия по компьютерной архитектуре заставляют студентов внедрять сложные процессоры в FPGA, но, опять же, это выходит за рамки вашего курса.

Я бы по крайней мере посвятил лекцию FPGA. Запустите несколько демонстраций с помощью доски разработчика и покажите им рабочий процесс. Так как вы на Миллс, возможно , вы можете связаться люди на Беркли , которые управляют CS 150 / 152 и пойти посмотреть , как они делают вещи.


Я могу сказать, что в начале 90-х годов CS150 преподавали в основном так, как OP описывает ее курсовую работу в MIT - в основном это ворота 74xx, кульминацией которых стало создание простого 8-битного (или 4-битного?) Процессора. У нас был небольшой проект с использованием FPGA, разработанный в виде инструмента для захвата схемы (без HDL). Похоже, что нынешняя программа в основном основана на HDL.
Фотон

Хорошо, что класс представляет собой смесь логического дизайна и структур машин. Как я добавил к описанию вопроса, раньше было два отдельных курса, которые я объединил в один. Большое спасибо за вашу помощь. Я буду исследовать ПЛИС и, по крайней мере, добавлю к ним лекцию. В UCB Дейв Паттерсон создал новый подход к вводной архитектуре гораздо более высокого уровня. Я слежу за этим, но не планирую вносить в это большие перемены.
Эллен Спертус

Я размышлял над сложностью сред FPGA и, возможно, я действительно не согласен с тем, что это может быть слишком много для вводного курса. Просто кажется настоящим позором не учить с современными рабочими процессами. Я сам играл с TTL, и только когда я начал заниматься FPGA, я действительно начал понимать, как (относительно просто) работают компьютеры. Курсовая работа выглядит лучше, чем то, с чем мне приходилось работать, так что, возможно, она лучше проработает концепции. Однако с точки зрения логики чипов TTL «настоящий» процессор выглядит очень далеко. После ПЛИС это возможно сделать.
Даррон

Под термином «как работают компьютеры» я имею в виду, как на самом деле их создавать, а не нечеткую концепцию «часов и флопов» ... которой, конечно, достаточно для TTL. (и опять же, ее курсовая работа выглядит так, как будто она может этому научить ... моя проблема - учить понятиям аппаратного обеспечения, которое практически не имеет реального применения, вместо того, чтобы учить аппаратному обеспечению, которое фактически используется)
Даррон

@darron, TTL в основном устарел, но концептуально он чист - нет языка или IDE, которые усложняют ситуацию, только диаграммы и двухточечная разводка. Это становится грязным, когда ваш размер слова увеличивается, но 8-битные вещи не так уж плохо. Если бы урок пошел дальше, или если бы у нас был дополнительный класс, ПЛИС имели бы смысл, но я думаю, что это было бы ненужным осложнением, учитывая материал, который освещается.
MNG

6

Я очень согласен с Фотоном. Есть много преимуществ использования FPGA. Вот несколько интересных моментов для рассмотрения:

1) Простая платформа для очень быстрого опробования конструкции ворот без часов или, возможно, дней работы. ПЛИС позволяют довольно легко создавать сложные цифровые конструкции. (НАМНОГО больше теории, меньше занятой работы)

2) Значительная часть работы студента может быть выполнена в симуляции за пределами лаборатории.

3) Программная среда бесплатна (как правило, включая симулятор).

4) Есть много относительно дешевых платформ FPGA вокруг. Академические цены должны помочь. Что-то вроде Terasic DE0-Nano стоит $ 59 за полный комплект (и выглядит довольно неплохо). $ 50-60 выглядит как диапазон для каждой доски, на который вы бы смотрели.

5) Есть много действительно классных вещей, связанных с ПЛИС. Существуют сайты, такие как OpenCores, которые предоставляют сотни готовых модулей для использования с ПЛИС. Есть FPGA4Fun , в котором есть много уроков и проектов. Для чистого развлечения FPGA Arcade предназначена для создания игр с FPGA. В зависимости от того, что вы установили вокруг плат ПЛИС, это может быть очень интересным занятием.

6) Некоторые платы имеют классы цифрового дизайна, по-видимому, уже готовые для них: введение в цифровой дизайн (предупреждение: большая загрузка) с использованием немного старой платы на основе Xilinx Spartan 3E. (Несмотря на то, что один основано на ActiveHDL, я лично предпочитаю более стандартные VHDL или Verilog) поставщикам Основной FPGA также имеют университетские программы: Xilinx университет Программа , программа университета Altera , программа Lattice университета .

7) Рабочий процесс намного ближе к тому, как профессиональная дизайнерская работа происходит в наши дни. Знания в области разработки ПЛИС - это сразу приобретаемый навык.


Большое спасибо. Я обязательно попробую это. FWIW, если бы у меня был второй семестр аппаратной лаборатории, я бы определенно делал с ними FPGA или Arduino.
Эллен Спертус

5

Я думаю, что в настоящее время, если вы имеете дело с вещами на уровне ворот, вы не работаете в области «компьютерной архитектуры», вы действительно просто занимаетесь базовой цифровой электроникой. Но также вы не можете научить всему, что нужно знать, от цифровой электроники на уровне шлюза до алгоритмов кэширования, параллельных вычислительных архитектур, SIMD, сетей и т. Д. И т. Д. За один семестр.

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

По крайней мере, вы, вероятно, обязаны изучать HDL и реализовать один или два проекта на основе FPGA, чтобы вы (как эксперт по образованию) могли оценить, как эти навыки будут соответствовать вашим целям для ваших студентов. Я ожидаю, что другие ответы дадут множество указаний на недорогие и бесплатные материалы, которые позволят вам в короткие сроки освоить дизайн ПЛИС. (Подсказка: Xilinx и Altera предлагают бесплатные инструменты для разработки программного обеспечения и симуляторы, а также множество замечаний по применению и других учебных материалов).


Я не согласен с тем, что класс как таковой не учит компьютерной архитектуре. Студенты узнают, как внедрить ISA, который определенно является частью компьютерной архитектуры, и я также учу о конвейерной обработке и кэшировании. Я согласен, что в архитектуре есть нечто большее, чем то, чему я учу на одном курсе. Будучи студентом, я прошел несколько других курсов по архитектуре, проводил академические и отраслевые исследования в области архитектуры и т. Д. Я ценю поощрение изучения HDL и FPGA.
Эллен Спертус

5

Одно из преимуществ использования TTL заключается в том, что для очень элементарных схем детали HDL будут как бы маскировать действительные схемы, и большинство студентов просто тратят большую часть времени на написание и изучение HDL. Я думаю, что TTL для первой части, а затем FPGA для архитектуры, было бы лучше, так как на самом деле трудно сделать программируемую систему с TTL.


+1 HDL скрывает схемы. Существует несколько различных способов написания мультиплексоров в HDL, и большинство из них очень мало или совсем не связаны с тем, как устроены ворота для создания мультиплексора.
ajs410

Это ключевой момент - слишком просто писать код для FPGA, не понимая на фундаментальном уровне, как он работает. Теперь есть способы избежать этого, например, в IDE Altera есть схематический режим ввода, который может помочь вам сконцентрироваться на дизайне уровня шлюза, но придерживаясь этого, вы также в конечном итоге не сможете использовать возможности FPGA, так что на самом деле будет какая-то точка в переключении?
Жюль

1

Полностью осознавая важность некоторого практического опыта сборки физических схем, я думаю, что также важно признать, что вы не можете охватить современные вычислительные практики без некоторого уровня чего-то, что "похоже на" имитацию или скрыть слишком много абстракции, поэтому лучшее, что вы можете сделать, - это попытаться выполнить некоторую работу на каждом уровне, прежде чем добавлять достаточно абстракции, чтобы сделать попытку перехода на следующий уровень сложности правдоподобной. Например, курс MIT, на который вы ссылаетесь, в какой-то момент начал программную симуляцию 32-битной машины RISC, работающей поверх 8-битной микропрограммированной машины с чипами и модулями, которая была физически «построена». В этот момент я бы сказал, что эффективнее просто внедрить такую ​​машину в ПЛИС (что, я подозреваю, они и сделали с тех пор).

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

Вы должны быть в состоянии найти существующие автономные платы ПЛИС менее чем за 100 долларов США в год по образовательным ценам.

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


Большое спасибо. Я знал об изменениях в MIT. Фактически, я начал работать в своем нынешнем учреждении со старыми лабораторными наборами 6.004 / 6.111, в которых MIT больше не нужен. Мои ученики, однако, не являются студентами Массачусетского технологического института и не могут усваивать столько же за семестр, поэтому я должен быть избирательным. (На самом деле, в Массачусетском технологическом институте я обнаружил, что большинство учеников не могут поглотить столько, сколько им было брошено, но это еще одно обсуждение.) Более низкая стоимость плат FPGA определенно привлекательна.
Эллен Спертус

1

Я думаю, что правильным подходом было бы начать с создания нескольких выходов из реле, которые легко увидеть и понять, но, очевидно, слишком медленные и требуют много энергии для современных приложений. Затем покажите, как можно использовать транзисторы, чтобы сделать то же самое более компактно, быстрее и эффективнее, а упакованные вентили [например, «quad nand»] могут сделать это еще лучше. Как только вы дойдете до этого, я бы посоветовал вам показать, как создавать такие вещи, как мультиплексоры и защелки из шлюзов, а затем, как несколько более крупные структуры могут быть построены из упакованных мультиплексов, защелок и т. Д. Никто не собирается создать компьютер в настоящее время, физически спаяя бесчисленные тысячи дискретных транзисторов, но внутренняя работа компьютера очень похожа на работу транзисторов, за исключением того, что все намного меньше.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.