Статьи

Друге життя асинхронних процесорів

  1. Якщо ви хочете змусити масу людей цілеспрямовано пересуватися в заданому напрямку, немає нічого кращого,...
  2. NULL Convention Logic
  3. Роботи Asynchronous Design Group в Sun Microsystems
  4. MiniMYPS і AMULET
  5. погляд скептика
  6. Уроки механічного піаніно
Якщо ви хочете змусити масу людей цілеспрямовано пересуватися в заданому напрямку, немає нічого кращого, ніж, скориставшись віковим армійським досвідом, примусити натовп крокувати в ногу стрункими рядами. При необхідності прискоритися, можна скомандувати «ширше крок» або збільшити частоту (правда, остання дія для армійського ладу можливо тільки в теорії - частота кроку лімітована власною частотою коливання маятника-ноги). І все ж прискорення має межу, визначається не фізичними можливостями йдуть строєм, а синхронністю. Кожен з них має потенціал для більш швидкого руху, але на жорсткій зв'язці це зробити неможливо. Для того щоб реалізувати потенціал, потрібно перейти на асинхронний крок або біг - за умови, що буде запропонований якийсь альтернативний механізм управління. Ще одним обмеженням для синхронного переміщення є чисельність йдуть строєм людей; зрозуміло, що понад якоїсь межі всім крокувати в ногу не вдасться. Ці банальні міркування щодо обмежень, що накладаються синхронністю, як не дивно, цілком можна віднести до так званих процесорів. Ми звикли до того, що компоненти більшості процесорів «крокують в ногу», але є підстави припустити, у традиційній синхронної схеми є альтернатива в особі асинхронної.

Ми звикли до того, що компоненти більшості процесорів «крокують в ногу», але є підстави припустити, у традиційній синхронної схеми є альтернатива в особі асинхронної

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

Перекіс загального інтересу в бік частоти, яка є, без сумніву, важливим, але далеко не єдиним показником продуктивності, дуже характерний, особливо тепер, коли на ринку залишилося лише лічену кількість різних процесорних архітектур. Але не завжди вибір був так обмежений; на зорі комп'ютерної ери багатство архітектурних стилів було більше, хоча і тоді основна маса комп'ютерів мала центральний тактовий генератор. Втім, на загальному «синхронному» тлі були окремі альтернативні проекти. Як вдалий приклад комп'ютера «без годинника» можна привести побудований на початку 50-х років в Іллінойському університеті ORDVAC (Ordnance Variable Automated Computer), який з успіхом застосовувався для управління артилерійським вогнем. В історії комп'ютерів залишив помітний слід асинхронний проект IAS, що виконувався під керівництвом самого Джона фон Неймана. Протягом довгих років асинхронними комп'ютерами займалися в Манчестерському університеті, де був побудований MU5. Однак пізніше ідеї побудови асинхронних процесорів виявилися поза сферою інтересів великих виробників; про них майже забули.

В середині 90-х років інтерес до майже забутим асинхронним комп'ютерів прокинувся знову. Імпульсом до реінкарнації послужив програмний документ із значним назвою National Roadmap for Semiconductors, підготовлений американською Асоціацією виробників напівпровідників у 1997 році. Цей документ містив попередження про прийдешню кризу, який може виникнути через якийсь час і торкнутися всю напівпровідникову індустрію. На думку більшості членів Асоціації, загроза криється не в таких найбільш мусованих і, на перший погляд, дійсно найважливіших і широко обговорюваних факторах, як досягнення теоретичної межі ширини провідника або тієї ж тактової частоти.

Фізика і технології демонструють свої можливості долати багато, здавалося б, нездоланні бар'єри. Однак основним межею зростання продуктивності в майбутньому може стати саме синхронність - точніше, не сама синхронність, а викликається нею складність архітектури. Ця складність непідвладна ні фізики, ні технологій. Звичайно ж, у сучасних напівпровідникових технологій резерв для зростання продуктивності ще дуже великий, впадати в паніку не варто, активні антикризові заходи поки що не актуальні. Криза, якщо і вибухне, то безумовно не завтра. Тим часом, архітектурний кризу потрібно вирішувати архітектурними засобами. Тому вже сьогодні ведуться авангардні проекти зі створення альтернативних асинхронних процесорів. Ряд академічних лабораторій і комерційних компаній досліджують асинхронні рішення, пропоновані для заміни рішень синхронних; вже виробляються або готуються до виробництва реальні зразки подібних процесорів.

Координацію діяльності в області розробки асинхронних процесорів здійснює симпозіум International Symposium on Advanced Research in Asynchronous Circuits and Systems, який з 1994 року проводить щорічні зустрічі. Остання з них, Async2002, відбулася в Манчестері.

Синхронність і булева логіка

Головна біда синхронності полягає в тому, що вона вимагає для своєї реалізації досить складний механізм управління, який може займати від 10 до 50% загального числа транзисторів на мікросхемі. Варто задуматися: майже половина від усього наповнення чіпа, виявляється, зайнято непродуктивною роботою, грає роль координатора, не більше того.

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

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

Якщо комусь вдасться позбутися від механізму синхронізації, то після цього цілком можна буде повернутися до ідеї синтезу, можна буде використовувати серйозний математичний апарат, що відкриє шлях до створення нових, куди більш потужних процесорів. Коли стаття була практично закінчена, мені вдалося знайти в Internet посилання, що підтверджує цю думку. Виявляється, співробітниками Манчестерського університету Дагом Едвардсом і Ендрю Бердслі розроблена система BALSA ( «an asynchronous hardware synthesis system»), призначена для опису і синтезу схем шляхом прямої компіляції.

Звідки ж відбувається зберігається прихильність синхронності, якщо вона така погана? Є простеньке маркетингове пояснення: чим великовагові проектування або виробництво, тим вище рівень монополізації галузі; зрозуміло, хто опиняється у виграші. Але існує і більш серйозне пояснення генезису проблеми. Синхронність в сучасних процесорах є прямий наслідок використання виключно двійковій булевої логіки. Винайдена Джорджем Булем в середині XIX століття, ця логіка залишалася в безвісності майже століття, до тих пір, поки юний в ту пору студент Клод Шеннон не відчинив її можливостей для конструювання електронних схем, по своїй фізичній природі в основному довічних. (До речі, трохи раніше нього інженер В. Валтат теж запропонував використовувати двійкову систему числення, але тільки для механічних машин.) З тих пір до двійковій системі склалося культове ставлення (як у індусів до священних корів) дійшли до того, що першокласники вивчають двійкову систему числення. Якщо дозволите, «вроджена вада», яким страждає двоичная логіка, полягає в тому, що вона не включає в себе умову завершення виконання функції; вона може існувати тільки на тлі відповідної тимчасової діаграми, розгортає процес виконання в часі. Іншими словами, булева логіка не є символічно закінчену логічну систему (symbolically completed), оскільки їй для завершення недостатньо власного потоку логічних змінних. В даному випадку «completed» можна перекласти і як «завершена» (ще точніше буде досить дивне словосполучення «здатна до завершення», але може бути, краще було б назвати її «самодостатньою»).

Булеву логіку можна зробити закінченою з залученням зовнішнього управління, на цьому і побудовані всі сучасні процесори. Для практичної реалізації до основною логікою потрібно додати «невеликий доважок» у вигляді управління в часі, який здійснює синхронізацію. Зрозуміло, що інформаційні вхідні сигнали надходять не одночасно, затримка може бути різною, отже, на якийсь момент виникає ситуація невизначеності, яку можна вирішити, якщо, наприклад, регламентувати спрацьовування логічного схеми по керуючому синхросигналом. Синхронізація реалізується за допомогою додаткових сигналів (імпульсів, або «стробов»), що надходять від тактового генератора або внутрішнього годинника. Інакше кажучи, у двійковій схеми «і / або», що має два інформаційних входи, насправді зобов'язаний бути третій керуючий вхід, який Сінхронізуется два інших. Виходить, двоичная схема не є цілком двійковій, вона не може існувати без управління за межами найпростіших релейних схем.

Цього вродженого недоліку позбавлена ​​тризначна логіка. Свого часу були виконані досить цікаві альтернативні роботи з використанням троичной логіки, наприклад, в МГУ під керівництвом Миколи Брусенцова були створені оригінальні трійчастий комп'ютери «Сетунь» і «Сетунь 70». Але звернемо увагу на те, що ці комп'ютери будувалися на специфічної троичной елементній базі, де мають місце тризначні сигнали і елементи пам'яті з трьома стійкими станами ( «Тріт»); байту тут відповідає «тайт» - шістка тритію. Трійкова логіка використовувалася і для моделювання динамічних процесів, що відбуваються в комп'ютері; такими роботами займався мій колега по НДІ-5 Аркадій Бураковський, на жаль, по молодості ні я, ні мої колеги не могли зрозуміти глибини його ідей. Тепер, через роки, про це варто пожаліти.

Як би не були цікаві машини на трійчастий елементах, побудовані в 60-х - 70-х роках, вони залишилися без майбутнього. Бурхливий прогрес кремнієвої індустрії не залишив місця троичной елементній базі, яка будувалася головним чином на ферит-транзисторних елементах, тому серйозного розвитку трійчастий машини не отримали. Разом з залишилася в історії ферритной технологією виявилася майже забутої і завдання створення асинхронного процесора. На довгий час її відставили в сторону, оскільки вона виявилася безглуздою з прагматичних позицій. Так з водою виплеснули і дитину.

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

Дослідження в цьому напрямку ведуть кілька груп; їх роботи поступово виходять з підпілля і починають привертати до себе серйозну увагу. Показовим в цьому відношенні виявилося підведення підсумків 2001 року журналом Microprocessor Report. У січневому номері цього авторитетного журналу в області мікропроцесорної техніки названі переможці по десяти номінаціях. У найпрестижнішій номінації, «За видатні досягнення в області цифрової обробки» були відзначені чотири компанії-призера: Intel за «Hyper-Threading Technology», Proceler за «Dynamically VAriable Instruction seT Architecture», Sun Microsystems за «Asynchronous Design Technology» і Theseus Logic за «NULL Convention Logic». Так ось, з чотирьох робіт дві останні безпосередньо пов'язані зі створенням асинхронних процесорів. Крім Sun Microsystems і Theseus Logic активні роботи зі створення асинхронних процесорів відновив з 1990 року Манчестерський університет силами AMULET Group; є ще кілька дослідницьких груп в університетах Сполучених Штатів і Західної Європи.

NULL Convention Logic

З математичної точки зору, мабуть, найбільш витонченої є розробка альтернативної логіки NULL Convention Logic (NCL), виконана фахівцями з невеликої компанії Theseus Logic.

Варто сказати кілька слів про компанії, в чия назва символічно включено ім'я античного героя Тезея, який, застосувавши нестандартну логіку зміг перемогти Мінотавра в його палаці Лабіринті. Theseus Logic утворена ветеранами, які мають за плечима десятки років роботи в найбільших корпораціях, в тому числі, в блищала колись Honeywell. В якості головного ідеолога і теоретика NCL виступає Кард Фант, засновник Theseus. Це його друга компанія, в назві якої зустрічається ім'я Тезея. Рішення, запропоноване Theseus, складається з двох частин: власне математичного апарату і його реалізації. Логіку, запропоновану Фантом, можна назвати «розширеної двійковій логікою», оскільки крім двох основних сигналів TRUE і FALSE вона оперує ще двома, NULL і INTERMEDIATE. Логіка NCL існує в двох варіантах, як потрійна, де використовуються TRUE і FALSE + NULL, і як Четверичная, де використовуються всі чотири значення.

Позбавлення від обов'язкових годин і необхідності в синхронізації в NULL Convention Logic досягається шляхом інтеграції даних і управління в одному логічному вираженні, в одному логічному потоці, де NULL, її називають змінної-роздільником, виконує Сінхронізуется функцію. Інформативні сигнали, нулі і одиниці, і NULL передаються по різних проводах, тому іноді такий підхід образно називають «dual rail», маючи на увазі під цим, що для передачі сигналу використовується «дві рейки» (точніше, два дроти). Важливо помітити різницю в смисловому значенні сигналу: провідник сам по собі не несе в собі логічного значення, зміна напруги на ньому свідчить тільки про те, що сигнал надійшов. Сигнал набуває логічний зміст лише тоді, коли за паралельним провіднику надходить NULL; такий поділ забезпечує самосинхронізацію. Логіку NCL можна уявити як другий логічний рівень над булевої логікою, який дозволяє відтворити трійчастий елементи з використанням прийнятих сьогодні технологій.

В якості елементної бази, на якій реалізується NCL, застосовуються порогові вентилі з гістерезисом. На відміну від «простого» напівпровідникового вентиля цей має два стани - DATA або NULL. Початковий стан - завжди NULL, вентиль зберігає NULL. Перехід в стан DATA можливий, коли на всіх входах буде значення DATA, кожне підтверджене своїм роздільником NULL. На малюнку представлені спрощені реалізації логічних функцій NCL засобами звичайної двійковій логіки. Використання четвертого сигналу INTERMEDIATE і «четирехрельсовой» логіки дозволяє зробити конструкцію вентиля і схеми в цілому більш ефективною. Очевидно, розплачуватися за позбавлення від синхронізації доводиться збільшеним числом провідників і транзисторів.

В якості однієї з найбільш реальних областей застосування асинхронних мікросхем на основі NCL називають «системи на кристалі» (system-on-chip - SoC). У 2000 році Theseus випустила 8-розрядний мікроконтролер NCL08, що виготовляється по 0,25 мікронній технології і нараховує 1 млн. Транзисторів. З 1999 року існує стратегічне партнерство з корпорацією Motorola, яка перепроектувати свій мікропроцесор STAR08 на підставі пропозицій від Theseus. Але, може бути, найпереконливіший доказ перспективності NCL можна знайти в підписання п'ятирічного контракту між Theseus і Sanders, дочірньої компанії корпорації Lockheed Martin. Відповідно до нього Sanders і Theseus починають спільно працювати за проектом, спонсорованих тим самим агентством перспективним оборонних проектів DARPA, яке свого часу фінансував створення Internet, і самої Lockheed. Мета цього проекту полягає в створенні процесорів для перспективного тактичного винищувача F-22 Raptor.

Роботи Asynchronous Design Group в Sun Microsystems

Друга із зазначених журналом Microprocessor Report робіт по асинхронним процесорам ведеться в дослідницькій лабораторії Sun Microsystems під керівництвом Айвена Сазерленда. За свої роботи по наданню процесорам асинхронности він ще в 1989 році отримав премію імені Тьюрінга, одну з найвищих нагород в області computer science. Сазерленду належить ідея мікроконвейера, функціонування якого організована на принципах, названих «рукостисканням» (handshaking). Рукостискання в даному випадку - ні що інше, як реалізація зворотного зв'язку шляхом обміну службовими сигналами. Цей принцип отримав велике поширення, він існує в різних версіях, активне і пасивне, дво- і чотирьохфазна.

Однак сам Сазерленд на цьому не заспокоївся і зараз розвиває ідею асинхронності, але вже на рівні напівпровідникових переходів. Свої нові ідеї він реалізує в проекті під назвою FleetZero. Як стверджується, експериментальний процесор демонструє помітно вищу продуктивність, ніж синхронні схеми, а ефективність використання напівпровідникових ресурсів підвищується приблизно в двадцять разів. Втім, поки проект FleetZero знаходиться на початковій фазі і появи комерційних результатів можна очікувати не раніше 2005 року. В рамках цього проекту реалізується технологія управління потоком команд GasP, яка повинна добре узгоджуватися з логікою роботи компіляторів.

MiniMYPS і AMULET

Кілька компаній і дослідницьких груп ставлять собі за мету переробити в асинхронні стандартні синхронні процесори. Найбільш цікавою видається робота, яка проводилася в Каліфорнійському технологічному інституті в Пасадені. Тут дослідникам, взявши в якості прообразу процесор MIPS R3000, вдалося зробити його асинхронний аналог MiniMIPS. Сьогодні на основі цих досліджень діє починаюча компанія Fulcrum Microelectronics. Аналогічне напрямок робіт обрала для себе англійська група AMULET Group, що випускає з 1994 року процесори AMULET. Ці процесори споріднені синхронного процесору StrongARM. Крім того, в цьому дослідницькому центрі ведуться роботи по використанню нейронних мереж в асинхронних процесорах.

погляд скептика

Серед відомих фахівців в області процесорів немає одностайності в поглядах на асинхронні процесори. Гордон Белл, легендарний творець архітектур PDP і VAX, відноситься до числа скептично налаштованих. Він визнає, що, можливо, в якійсь дуже далекій перспективі у асинхронних процесорів дійсно є майбутнє, однак всі сучасні спроби їх побудувати він вважає невдалими. Він наводить таку аналогію: проектувальники перших сталевих мостів, не бажаючи того, повторювали те, як будували мости з каменю. Знадобилося тривалий час, щоб зрозуміти можливості нового матеріалу і створювати абсолютно нові проекти. Нинішні спроби створення асинхронних процесорів, на думку Белла, занадто прив'язані до того, що було зроблено за останні десятиліття, їм просто не вистачає радикалізму.

Леонід Черняк ( [email protected] ).

Уроки механічного піаніно

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

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

Впровадження асинхронного управління в процесор означає часткову або повну відмову від програмного управління і перехід до управління по зворотного зв'язку. на малюнку представлені два підходи: синхронний і асинхронний. Наповнення блоку «Комбінаційна Логіка» може відрізнятися в залежності від обраного рішення. Попри всю різноманітність рішень з точки зору управління, всі вони різняться між собою глибиною проникнення зворотного зв'язку - інакше кажучи, тим, який обсяг логіки передбачається вмістити в прямокутник, позначений як «Комбінаційна Логіка». Зворотний зв'язок можна помістити на найнижчий рівень, який реалізується безпосередньо на кристалі C-MOS, якщо використовувати так звані елементи З або елементи Мюллера і синтезувати процесор з використанням апарата мереж Петрі. Більш високий, середній рівень передбачає включення додаткових сигналів в потік даних, що дозволяє реалізувати зворотний зв'язок на рівні елементарних логічних функцій. До середнього рівня також відносять і технологію, яка називається мікроконвейерной. Нарешті, третій, верхній рівень передбачає охоплення петлею зворотного зв'язку більших логічних компонентів, що включають в себе регістри цілком.

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

Звідки ж відбувається зберігається прихильність синхронності, якщо вона така погана?

Новости


 PHILIP LAURENCE   Pioneer   Антистресс   Аромалампы   Бизнес   Игры   Косметика   Оружие   Панно   Романтика   Спорт   Фен-Шуй   Фен-Шуй Аромалампы   Часы   ЭКСТРИМ   ЭМОЦИИ   Экскурсии   визитницы   подарки для деловых людей   фотоальбомы  
— сайт сделан на студии « Kontora #2 »
E-mail: [email protected]



  • Карта сайта