Обмеження частоти для домашніх процесорів


15

Переглядаючи деякі вбудовані процесори, я помітив, що частоти, на яких вони працюють, порівняно низькі порівняно з сучасними процесорами (порядку декількох МГц). Чи є причина цього обмеження в електронній техніці, наприклад, для макетів? Якщо так, то як визначити максимальну частоту, яку можна досягти за допомогою вашого дизайну?


Як ... домашні чіпи VLSI? Я думаю, це обмеження витрат. Точність, яку дає багатомільйонне обладнання, просто не може бути продубльована вдома, і в результаті чіпи повинні працювати повільніше.
Нейт

4
@Nate, я гадаю, що він має на увазі домашні багатопроцесорні процесори, побудовані з TTL. Наприклад: homebrewcpu.com
Альфред Кентаврі

@Nate Я оновив своє запитання, щоб бути більш конкретним.
Євген

@AlfredCentauri - так, ти маєш рацію;)
Євген

Відповіді:


16

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

Крім того, послідовна логіка має вимоги до термінів. Перед тим, як прийде край годинника, існує деякий мінімальний час встановлення, щоб входи повинні бути стабільними, а потім вони повинні бути стабільними протягом деякого часу утримування. Якщо вони будуть порушені, держава стає сміттям.

Затримка розповсюдження спричинена такими речами, як швидкість заряджання паразитарних ємностей, швидкість струму, що виникає в умовах індуктивності, і як швидко перемикаються пристрої кремнію. Наприклад, біполярний транзистор з меншою базою може перемикатися швидше, ніж один з більшою базою, тому крихітний транзистор на мікросхемі буде швидшим, ніж дискретний.

У попередній відповіді, яку я видалив, я писав про ефекти лінії електропередачі. Але я не вважав, що ці ефекти навіть не потрапляють у картину зі швидкістю, про яку ми говоримо, тому що, скажімо, при 10 МГц довжина хвилі все ще близько 30 метрів. Тож за шкалою звичайної розмірної плати імпульси за часовою шкалою в кілька мегагерців все ще досягають одночасно всіх частин мідної мережі.

Отже, якщо ви робите ЦП з дискретних компонентів, ви просто не досягаєте дрібних компонентів із швидкими часом перемикання, а така ж близькість, яка мінімізує бродячі ємності та індуктивності.

Тим не менше, древні дискретні компоненти в 1960-х роках працювали досить швидко, ніж ці саморобні машини. Щоб проїхати туди знадобився певний час і хитрість. Наприклад, модель IBM 360 44 (1964) працює на 4 МГц. Це все ще може бути "домашньою швидкістю", але CDC 7600, випущений лише через кілька років у 1969 році, перевищив 36 МГц. Стаття у Вікіпедії http://en.wikipedia.org/wiki/CDC_7600 дає підказку на деякі хитрощі, наприклад:

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

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


Залежно від складності шляху передачі даних, я думаю, що пристрій для домашнього перегляду повинен без особливих труднощів працювати з 20 МГц або більше, використовуючи сучасні технології та звичайні методи. Не багато ГГц, але не загальна сутулість. Я підозрюю, що в більшості випадків, коли використовуються домашні процесори, простота усунення несправностей важливіша, ніж швидкість. Між іншим, головний годинниковий кристал оригінальної аркадної машини марки Pong (R) був 14,3818 МГц, хоча він був розділений досить рано; Я думаю, що єдине, що швидко переживає таку швидкість, - це центральна лінія ігрового поля.
supercat

1
Дуже багато домашніх процесорів використовують EPROM для зберігання мікрокоду, а також для впровадження складних таблиць логіки та / або правдивості (багато з них навіть мають ALU, зроблений з одного або декількох ПЗУ). Швидкість доступу ПЗУ може суттєво обмежити максимальну швидкість машини, але вони популярні, оскільки дозволяють легко налагоджувати, змінювати і налаштовувати процесор без значної перемотки.
Олексій

15

Як колишній вищий школяр, який створив комп’ютер спеціального призначення з TTL серії 7400, який виграв якусь нагороду на науковому ярмарку, я спостерігав за цими речами, які не давали йому працювати якнайшвидше:

  • Блука ємність в макетній дошці. Кілька pF між кожною сусідньою парою роз'ємів. Цей обмежений час підйому / падіння краю пульсу і місцями додає перехресні переговори. Це, мабуть, був найбільшим фактором.

  • Варіації чіпсів-захоплень. (Хтось пам'ятає Poly-Paks?) 74LSxx, 74Hxx, 74xx з різними затримками розповсюдження та іншими характеристиками, унеможливлюючи синхронізацію сигналів на більш високій тактовій частоті, ніж кілька МГц.

  • Статичні мікросхеми Cheapo, знову ж таки, з мішка захоплення або іншого неякісного джерела. Вони просто не могли надійно читати чи писати понад певну швидкість.

  • Мій тестовий прилад був обмежений генераторами домашнього сигналу, осцилографом частоти 5 МГц і тимчасовою цифровою схемою, встановленою присяжними. Важко перевірити цілісність сигналу, терміни, амплітуди цифрових сигналів, які були низькочастотними, відфільтрованими у хитну кашу.

Сьогодні було б важко знайти область 5 МГц, якщо тільки хто не є покупцем антикваріату. Кращі фішки будь-яких видів так само легко дістати, навіть у 0,1-дюймових DIP-пакетах, за винятком того, що я давно не бачив на шляху захоплення мішків. Але розетки макетів сильно не змінилися. Блука ємність досі є вбивцею швидкості для будь-яких різких творчих цифрових проектів.

Уникнення дощок із застосуванням домашньої друкованої плати є найкращим способом уникнути розбіжної ємності, але, звичайно, потрібно більше зусиль та часу.


4

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

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

Ця формула

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


Чи можете ви пояснити взаємозв'язок між імпедансом і швидкістю ланцюга?
Євген

Тож як це пояснити, що процесори, такі як Intel Core I7, працюють на тактовій частоті 2,5 ГГц, а процесори, побудовані на дошках, не можуть досягти цієї швидкості? Спочатку я думав, що між мікросхемами процесора та оперативної пам’яті є зв’язок з довжиною дроту.
Євген

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

1
@DarenW: індуктивність та ємність збитків - це справді проблеми. У радіосистемі, як правило, є лише один провід нетривіальної довжини. У реалізації процесора у вас сотні, з взаємною індуктивністю залежно від відстані. Залежно від частоти взаємодії неможливо керувати через складність. Характерний імпеданс сильно залежить від таких речей, як відстань від ґрунтових слідів ..., які недостатньо керовані на дошці.
Бен Войгт

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

3

Інші відповіли на "чому". Ось як визначити максимальну швидкість.

  1. Кожен триггер шукайте годинник до Q.
  2. Загальна довжина проводів усіх проводів від триггера до наступного відкидного флопа. Поверніть цю довжину в часі. Дріт - ~ 2/3 швидкості світла
  3. Повна будь-яка затримка воріт, у тому числі через асинхронну ОЗУ.
  4. Візьміть час налаштування на наступному триггері.
  5. Додайте 1-4. Це ти мінімальний годинний період. Інвертувати, щоб отримати частоту.
  6. Розгляньте перекос годинника. Якщо годинник потрапляє на другий ff перед першим, додайте перекос з 1-4.
  7. Якщо годинник потрапляє на другий ff до першого, обчисліть мінімум 1-3. Переконайтесь, що вони менші за час утримування, необхідний другим ff плюс перекос годинника.

Про яку довжину дроту ви говорите: довжина від джерела живлення до центрального процесора, шпильки до мікросхем оперативної пам'яті ...? Також мені не зовсім зрозуміло, що ви маєте на увазі на першому кроці.
Євген

2
@Eugen - Я думаю (але це не моя область знань) він має на увазі внутрішню затримку розповсюдження - час, починаючи від встановлення та отримуючи стабільний вихід.
БезумовноВстановітьMonica

1

Окрім усіх електричних причин, що обмежують швидкість, на логічному рівні є також одна:

Ви не можете кинути стільки ресурсів, щоб зробити роботу швидше, як-от конвеєрна робота з прогнозуванням гілок, швидше арифметична та ін. Кеші не мають великого сенсу, якщо вони не швидші, ніж ваша основна пам'ять.


1

Для саморобних машин це зводиться до двох факторів. Затримка розповсюдження чипів, які ви використовуєте, та кількість мікросхем, які потрібно використовувати на найдовшому шляху через ваш процесорний дизайн.

Наприклад, 74HC574 (8-бітний регістр) має максимальну затримку розповсюдження приблизно 41н (взято з його даних). Тепер скажемо, що найдовший шлях вашого дизайну процесора вимагає пройти через 8 різних мікросхем. Складіть затримки розповсюдження для кожної з 8-х та дайте уявити, що вона дорівнює 333с З 1000 нс такий же, як 1 МГц, що дасть вам максимальну швидкість 3 МГц.

На практиці ви, можливо, захочете обмежитися чимось повільнішим, як 2 МГц, щоб забезпечити стабільну конструкцію. Навіть якщо ви думаєте, що будете пропускати терміни лише раз на мільярд циклів, то ваш все ще в біді. 10 мільярдів, розділених на 3 мільйони, означають, що ви пропускаєте виконання кожні 3 333 секунди, що становить приблизно один раз на годину. Збивати машину щогодини - це не добре!

Щоб зробити його швидше, ви можете скористатися швидшими фішками та / або змінити дизайн, щоб зменшити кількість фішок у найповільнішому шляху. Приблизно найшвидша швидкість роботи домашнього бульба становить близько 4 МГц, що дає вам 250 мн для завершення кожного циклу.

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