Які переваги використання FPGA над TTL в архітектурі введення комп'ютера?


24

Я викладаю єдиний курс комп’ютерної архітектури у коледжі гуманітарних мистецтв. Курс необхідний для основних та неповнолітніх з інформатики. У нас немає комп’ютерної інженерії, електротехніки, інших апаратних курсів і т. Д. Моя основна мета курсу - це студенти зрозуміти до кінця до рівня воріт, як працюють комп'ютери, і я вважаю, що вони найкраще навчаються за допомогою апаратної лабораторії та не лише через підручник ( Комп'ютерна організація та дизайнГеннесі та Паттерсон). Моя вторинна мета - захоплювати їх комп'ютерною архітектурою та посилювати їхнє захоплення інформатикою. Підготувати їх безпосередньо для промисловості не є метою, хоча мотивувати їх вивчати більше комп’ютерної архітектури. Студенти, як правило, не мали досвіду будь-чого будувати або брати курс лабораторії на рівні коледжу. Зазвичай 10-15 студентів проходять курс за семестр.

Я викладаю цей курс з 1998 року таким же чином, як мене навчали комп’ютерній архітектурі та цифровій електроніці ще в кінці 1980-х років в MIT: використовуючи мікросхеми DIP TTL на електричних дошках. При першому завданні апаратної лабораторії студенти будують повний суматор. Приблизно на півдорозі семестру вони починають будувати простий комп'ютер з 8-бітовим набором інструкцій. Щоб зменшити проводку, я надаю їм друковану плату з деякою частиною електроніки (два D шльопальники, два 4-розрядні АЛУ LS 181, з'єднані між собою, щоб діяти як 8-бітний АЛУ, і три-державний буфер). У першій з цих лабораторій вони виводять (дуже прості) керуючі сигнали для двох форматів інструкцій і будують схему, вводячи вказівки на вимикачах та читаючи результати з вогнів. На другій з лабораторій вони додають лічильник програм (2 LS163) та EPROM (якиймоє первісне питання стосувалося, перш ніж переходити до того, як я повинен викладати архітектуру інтро). У підсумковій лабораторії вони додають умовну гілку інструкції. У той час як студенти витрачають досить багато часу на проводку та налагодження, я відчуваю, що там відбувається велика частина навчання, і студенти залишають справжнє відчуття успіху.

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

З огляду на мої цілі та обмеження, чи рекомендуєте ви, що EE дотримуватись свого поточного підходу до переходу на такий, який базується на FPGA? Якщо останнє, чи можете ви дати мені будь-які вказівки на матеріали, з якими я б навчався?

Як вимагається, ось посилання на навчальні програми та завдання лабораторії .

Доповнення: Так, це теж курс цифрової логіки. Коли я потрапив до свого коледжу, від студентів вимагали взяти по одному семестру з кожної архітектури комп’ютера та цифрової логіки, і я поєднав їх в один семестр. Звичайно, це твердження про минуле, а не про майбутнє.


Чи можете ви опублікувати або посилатися на свою навчальну програму / програму навчання?
Кевін Вермер

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

7
@JonnyBoats: ... як би це вмістилося? Вона говорить про побудову комп'ютерів із апаратних воріт.
darron

Щоб відповісти на ваше запитання - практично ніхто не будує апаратні ворота, вони купують чіпи з уже реалізованими воротами. З FPGA не створюються ворота в апаратному забезпеченні, вони встановлюються в програмному забезпеченні.
JonnyBoats

1
@JonnyBoats: FPGA будують цифрові конструкції з апаратних воріт (LUT - це програмовані ворота). Ворота існують як апаратні засоби, а ваша конструкція функціонує повністю фізично. З TTL ви також не "будуєте ворота" за цим стандартом ... вони заздалегідь побудовані ворота. Єдина відмінність полягає в тому, що функції воріт є програмованими, маршрутизація програмована (але все-таки фізична), і їх багато на порядок більше. Я досі не бачу, як Arduino взагалі вписується в курс цифрового логічного дизайну. (Якщо ви не мали намір для неї змінити мету самого курсу?)
darron

Відповіді:


16

Враховуючи цілі класу, я вважаю, що підхід TTL прекрасний, і я говорю це як "хлопець FPGA". FPGA - це море логіки, і ви можете робити з ними всілякі забавні речі, але є лише стільки, що по-людськи можливо зробити за семестр.

Дивлячись на ваш навчальний план, ваш клас - це суміш логічного дизайну та курсів "машинних структур", які я взяв у нижчій програмі. (Плюс, це для спеціальностей CS. Я весь для CS-спеціальностей, які мають зіткнутися з реальним обладнанням - дозволяти їм відійти від коду для написання, здається, крок назад.) На цьому вступному рівні ви переглядаєте, як інструкції зі зборки розбиті, я не бачу реальної користі від того, щоб студенти могли робити коди вручну. Робити HDL - це вивчити ЛПВЩ, навчитися писати синтезований ЛПВЩ та вивчити IDE. Це набагато більше концептуальної складності та переабстракції. Плюс доводиться вирішувати проблеми програмного забезпечення.

Як правило, сенс курсу, який використовує FPGA, полягає в практиці створення логіки, яка корисна - корисна для розмови з периферійними пристроями, серійними комунікаціями, оперативною пам’яттю, відеогенераторами і т. Д. Це цінні знання, що мають, але це, здається, дуже не вдається обсяг вашого курсу. Більш просунуті класи комп’ютерної архітектури дозволяють студентам реалізовувати складні процесори в FPGA, але це знову ж таки виходить за рамки вашого курсу.

Я хоч би присвятив лекцію FPGA. Пробіжіть кілька демонстрацій із дошкою розробників та покажіть їм робочий процес. Так як ви на Міллс, можливо , ви можете зв'язатися люди на Берклі , які керують CS 150 / 152 і піти подивитися , як вони роблять речі.


Я можу сказати, що на початку 90-х CS150 вчили в основному так, як ОП описує свої курсові роботи в MIT - в основному це 74xx ворота, що завершилося побудовою простого 8-бітового (або 4-бітового?) Процесора. У нас був короткий проект з використанням FPGA, розроблений в схематичному інструменті захоплення (без HDL). Схоже, поточний навчальний план здебільшого заснований на ЛПВЩ.
The Photon

Добре, що клас - це поєднання логічного дизайну та машинних структур. Як я додав до опису питання, раніше було два окремих курси, які я об'єднав в один. Дуже дякую за вашу допомогу. Я досліджуватиму FPGA та принаймні додаватиму лекцію про них. В UCB Дейв Паттерсон створив новий підхід до архітектури введення, що є значно вищим рівнем. Я стежу за цим, але не планую робити такого великого зміни.
Еллен Спертус

Я розглядав складність середовищ FPGA і, можливо, я не дуже погоджуюся з тим, що це може бути занадто багато для вступного курсу. Це просто здається справжнім соромно не навчатись із сучасними робочими процесами. Я сам грав з TTL, і лише тоді, коли я потрапив у FPGA, я почав реально розуміти, як працюють (порівняно прості) комп’ютери. Курсова робота виглядає краще за те, з чим мені довелося працювати, тому, можливо, вона краще отримує поняття. Однак, з точки зору логічних мікросхем TTL, "справжній" процесор виглядає дуже далеко. Після FPGA, це можливо зробити.
darron

Під поняттям "як працюють комп'ютери" я маю на увазі, як насправді їх будувати, а не нечітке поняття "годинник і флоп" ... що, звичайно, TTL достатньо. (і знову ж таки, її курсова робота виглядає так, що це може добре навчити ... моє питання полягає в навчанні концепцій апаратного забезпечення, яке майже не має реального застосування, замість того, щоб викладати обладнання, яке фактично використовується)
darron

@darron, TTL в основному застарілий, але він концептуально чистий - не існує мови та IDE для ускладнення речей, лише діаграми та точне з'єднання. Він стає безладним, коли розмір вашого слова збільшується, але 8-бітний матеріал не надто поганий. Якщо клас пішов далі, або якщо був би наступний клас, FPGA мали б сенс, але я думаю, це було б зайвим ускладненням з огляду на матеріал, який охоплюється.
mng

6

Я дуже погоджуюся з Фотоном. Є багато переваг використання FPGA. Ось кілька цікавих моментів, які слід врахувати:

1) Легка платформа для випробування конструкції воріт дуже швидко, без годин або потенційних днів роботи, що підключає речі. FPGA дозволяють потенційно дуже складні цифрові конструкції досить легко. (МНОГО більше теорії, менше зайнятості)

2) Значні частини роботи студента можна було б виконати в симуляції поза лабораторією.

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

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

5) З FPGA є дуже багато цікавих речей. Є такі сайти, як OpenCores, які надають сотні попередньо вбудованих модулів для використання з FPGA. Там є FPGA4Fun , в якому багато навчальних посібників та проектів. Для чистої розваги FPGA Arcade присвячений побудові ігор з FPGA. Залежно від того, що ви встановили навколо плати FPGA, це може зробити справді цікавий клас.

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

7) Робочий процес набагато ближче до того, як професійні дизайнерські роботи відбуваються в ці дні. Робочі знання з розробки FPGA - це негайно проданий навик.


Дуже дякую. Я обов'язково спробую це. FWIW, якби у мене був другий семестр лабораторної техніки, я б обов'язково робив з ними FPGA або Arduino.
Еллен Спертус

5

Я думаю, що зараз, якщо ти маєш справу з речами на рівні воріт, ти не працюєш у сфері "архітектури комп'ютера", ти справді просто займаєшся базовою цифровою електронікою. Але також ви не можете навчити всього, що потрібно знати, від цифрової електроніки на рівні воріт до алгоритмів кешування, паралельних архітектурних обчислень, SIMD, мереж тощо тощо в одному семестрі.

Таким чином, це дійсно зводиться до того, чого ви хочете навчити. Якщо ви хочете зосередитись на цифровій електроніці на рівні воріт, то робота з мікросхемами на рівні воріт дасть учням щось практичне для роботи та дасть їм більше розуміння цього матеріалу. Але якщо ви хочете навчити комп'ютерну архітектуру, вони, ймовірно, повинні працювати на набагато більшому рівні абстрагування, ніж ворота AND і OR.

Принаймні, ви, мабуть, зобов’язані самій собі вивчити HDL та реалізувати дизайн на основі FPGA або два, щоб ви (як експерт з питань освіти) могли оцінити, як ці навички вписуються у ваші цілі для ваших учнів. Я очікую, що інші відповіді дадуть безліч покажчиків на низькі та безцінні матеріали, які дозволять вам швидко розвинути дизайн 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 плату, або, можливо, модуль FPGA для пізніх панелей для пізніших лабораторій. Побудова гібридної машини, де FPGA залежить від якоїсь зовнішньої мікросхеми, яка реалізує частину процесора, була б можливою, але почувалась би дуже штучною - просто переключення технологій цілком у той момент, коли складність перевищує один шматок дошки може бути найбільш реалістичним.

Ви маєте змогу отримувати наявні окремі плати FPGA за ціною менше 100 доларів США / е за освітніми цінами.

Іншим варіантом може бути побудова власного як частини класу, можливо, побудова інтерфейсу послідовного завантаження FPGA як першої частини проекту. Приємною перевагою цього є те, що вартість буде достатньо низькою, щоб студенти могли тримати свої дошки замість того, щоб повертати їх в кінці терміну, що, сподіваємось, призведе до постійного зацікавлення та обізнаності серед пригорщі.


Дуже дякую. Мені було відомо про зміни в MIT. Насправді я почав працювати в своєму теперішньому закладі зі старими лабораторіями 6.004 / 6.111, які MIT більше не потрібні. Мої студенти, однак, не є студентами MIT і не можуть засвоїти стільки семестру, тому я маю бути вибірковою. (Насправді, на MIT я виявив, що більшість студентів не могли засвоїти стільки, скільки було кинуто на них, але це ще одна дискусія.) Більш низька вартість плат FPGA, безумовно, приваблива.
Еллен Спертус

1

Я думаю, що правильним підходом було б почати з побудови декількох воріт із реле, які легко побачити та зрозуміти, але, очевидно, занадто повільні та потужні голодні для сучасних програм. Потім покажіть, як транзистори можуть використовуватися для того ж самого більш компактного, швидшого та ефективнішого, а упаковані ворота [наприклад, "чотириногий" можуть зробити це ще краще. Після того, як ви перейдете до цього пункту, я б запропонував вам показати, як будувати такі речі, як мультиплексори та засувки з воріт, а потім як можна будувати більші структури з упакованих мультиплексів, засувок тощо. Ніхто не збирається побудувати комп’ютер нині за допомогою фізичної пайки разом безлічі тисяч дискретних транзисторів, але внутрішня робота комп'ютера дуже схожа на роботу транзисторів, за винятком того, що все набагато менше.

Однією з головних переваг, на яку я думаю, що студенти отримають від цього виду навчання, - це розуміння того, чому багато речей працюють так, як вони. Наприклад, якщо б "імітували" набір інструкцій, який не потребував практичної фізичної реалізації, не було б необхідності, щоб інструкція "завантажувати пам'ять" займала три цикли, а більшість інших інструкцій - одна. Деякі речі можна зрозуміти, не опускаючись до рівня транзистора, але деякі не можуть (наприклад, значення синхронних та асинхронних входів).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.