Pull to refresh
18
Karma
0
Rating
Alex Surkov @Khort

Пользователь

  • Followers 23
  • Following 2

Заметки дилетанта, или Сказ о том, как Scala-разработчик ПЛИС конфигурировал

Улыбнуло, спасибо :-)
На самом деле, очень показательно, что Chisel вообще работает, и на нем можно писать и получать рабочее железо. У меня были большие сомнения по этому поводу еще с тех времен, когда только начали появляться новости про risk-5, и как его создавали. Отличный bridging the gap между программистом и железом. Но на мой взгляд, до конкуренции Chisel и HDL — как до до луны пешком.

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Вот схема из советского перевода американского учебника (Switching Theory Volume I Only: Combinational Circuits, 1965 by Raymond E. Miller ) image

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Строго говоря, в модели Хаффмана не было регистров и клока. В его время в качестве памяти использовали линии задержки, синхронных схем еще не существовало, а Мур и Мили еще футбол во дворе гоняли. Рисунок не верен, и я бы его даже студентам не стал показывать.

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Это один из двух принципов работы асинхронных схем, популярный в основном в Америке. Я там писал выше уже про домино. Если поставить фишки домино в ряд, а потом толкнуть первую, то они повалятся — волной. А потом надо представить что после падения, фишки встают обратно, получается обратно направленная волна. Т.е. две встречных волны — одна валит фишки, вторая подымает. Вот и весь принцип wave pipelining (абстрагируясь от реализации). Фактически, схема является большим конвейером. Если схема не конвейерная, этот метод не работает. Еще забавный момент — у волны должен быть источник, в литераторе его называли водителем ритма rhythm driver. Структура конвейера может быть многомерной, но rhythm driver только один, иначе будет нарушаться целостность пакетов на стыках волн от разных драйверов. В общем, все это интересно, но дальше исследований не пошло.

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Знаете, почему они Wave? У асинхронщиков еще с середины 70х появился термин -волновая (фактически — конвейерная) обработка информации. Принцип тот же, что и у ряда из падающих фишек домино, только если бы фишки потом вставать могли — тоже волной, но противоположно направленной. Т.е. в схеме идет два встречных процесса, прямая волна — обработка информации, и встречная волна — гашение. Когда образовали стартап Wave, они вроде бы собирались делать асинхронные чипы по волновому принципу, отсюда и название. Ну что же, значит только это слово и осталось от асинхроники. Так же как Achronix уже давно не асинхронный. Жаль.

Прямой репортаж с рождения крупного игрока в аппаратном AI, который ускоряет TensorFlow и конкурирует с NVidia

Wave очень сомнительная контора. Исторически они отпочковались от асинхронных стартапов, которые проводили исследования на деньги военных. Асинхронные разработки не пошли, поэтому несколько лет Wave буксовали, переименовались один-два раза и вдруг — о чудо! Оказывается, они уже занимаются AI, выпустили чип и даже купили мипс. По крайней мере, я рад за мипс :-) Но вот интересно, а осталось ли хоть что то асинхронное в сегодняшнем Wave?

Ангстрем-Т: хронология проекта и мега-заказ

Частное мнение. Как можно обосновать то, чего не было? Есть другая информация — фото в студию.

Ангстрем-Т: хронология проекта и мега-заказ

В том то и печаль, что у А-Т нет НИЧЕГО для соревнования. Если кратко описать историю А-Т, то: купили три линейки — 350, 130 и 90нм, всё разломали; из того что осталось целым, кое как склепали франкенштейна — 250нм, а остальное (большую часть) распродали всем желающим. И 250 — далеко не факт, что вообще работает. В феврале, к примеру, даже тестовых пластин не было, одно моделирование в ти-каде. Фуфел, другим словом, и очковтирательство. Ну и чем тут соревноваться? Микрон хоть как то работает.

Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»

Сергей, если сделали революцию, то изложите в понятной всем форме. Я имею ввиду, что арифметику не задают в виде STG, это громоздко и потому неудобно. Кроме того, арифметика сама по себе не интересна, а интересна только в составе автомата. К примеру, автомата Мура(арифметика, и после нее память + обратная связь). Это очень простая задача, сделать самосинхронный автомат Мура, если использовать dual rail. Так покажите как работает Ваш метод, постройте асинхронный (SI или как угодно) автомат Мура на single rail. Только исходную функцию задавайте в классическом виде f=a&b+c, а не STG. Либо сначала покажите, как получить STG по функции, заданной в классическом виде. На мой взгляд, это не тривиальная задача.

Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»

Судя по публикациям, зарубежным, DFT делают, точно так же. Ведь самосинхронные схемы используют все тот же базис элементов логики, только триггеры немного более сложные. Не вижу никакой принципиально разницы, разве что — нет смысла в таких продвинутых режимах DFT как at-speed testing. Что касается отечественной электроники, то не каждый дизайн-центр умеет даже в синхронные чипы DFT вставлять… :-)

Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»

Сергей, независимость от задержек элементов — следствие полумодулярности (математический термин — читайте книгу Мараховского-Яковлева-Розенблюма), а независимость от задержек в проводах и элементах — свойство дистрибутивности (снова математический термин, фактически означающий более жесткую полумодулярность). Все полумодулярные (и дистрибутивные) схемы — самосинхронные. При этом, обратное утверждение не верно. Что из этого следует: если и можно делать «не самосинхронные схемы, но не зависящие от задержек элементов», то необходимо придумать математическое доказательство «независимости от ..». Лично мне ничего неизвестно о существовании чего то подобного.

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

p.s. Для самосинхронной реализации арифметики с использованием парафазного кодирования Варшавский придумал несколько методов, лучший из которых (на мой взгляд) — перекрестная реализация. Что такое «функциональный подход» мне не очень понятно, но вот «перекрестная реализация» Варшавского очень даже работает. Для этого метода можно адаптировать коммерческие САПР синтеза (Genus, Design Compiler и т.д.). По ПЛИС ничего сказать не могу, программируемой логикой не занимаюсь.

Ответ Л.П. Плеханова на замечания по книге «Основы самосинхронных электронных схем»

Редакторы существуют. Очень визуальные и очень удобные. К сожалению, этот софт пишется не у нас. В настоящее время самая сильная группа, занимающаяся самосинхронными схемами, находится в Ньюкасле (Англия)

Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем»

Коллега, не мне Вас учить, пусть за Вас краснеют Ваши учителя. Написали полнейшую ересь. 1. Базис элементов влияет на схемотехнику напрямую, и особенно в СС. 2. Какой такой Кэденс? Кэденс, это производитель тулов, один из. Библиотеки элементов же предоставляет фабрика, и в некоторых случаях — дезайн хаусы. Т.е. Кэденс никак не может просить денег за включение IP в библиотеку, Вы что то с чем то спутали.

Элемент, на который я кивал, приведен выше — это 8-ми входовой элемент. Такие элементы делать можно, но чтобы они эффективно работали, нужно напряжение питания около 3 вольт (оценочно — Vth * число входов). На процессах суб 100нм питание элементов ядра от 1.2В и ниже — до 700мВ. Питание можно поднять, но очень незначительно, поскольку на тонких процессах возможен пробой диэлектрика (физики — поправьте, если соврал), и фабрика не гарантирует исправность приборов. Итого, 8-ми входовой элемент при недостатке питания делать нет смысла, если только он не составной. А составные элементы не подходят для СС. Варшавский этого знать не мог, в его время тонких процессов не было. А вот зачем такие схемы публиковать сейчас — вопрос.

Мои замечания о книге Л.П. Плеханова «Основы самосинхронных электронных схем»

Сергей, книга, о которой Вы пишете, не несет ни теории (ее там нет вообще), ни практической пользы — таких лог. элементов как в этой книге ни в одном суб 100нм логическом базисе не найдешь. Читайте лучше первоисточник Моделирование параллельных процессов.

FPGA для программиста, конечные автоматы (verilog)

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

По поводу иголок (они же глитчи, гонки, или состязания), они присутствуют в практически любой комбинационной схеме, за исключением некоторых видов специального кодирования сигнала (к примеру — dual rail four phases).

FPGA для программиста, конечные автоматы (verilog)

А в чем идея? В стиле описания? Если бы Вы показали, что синтезатор два олвейз-блока минимизирует лучше чем один или три олвейз-блока — был бы аргумент. Вместо этого ведутся рассуждения о числе строк кода. Вы знаете, что индусам платят за число строк кода? Они сделают из Вашей публикации диаметрально противоположный вывод. О вкусах, как говорят, не спорят.

FPGA для программиста, конечные автоматы (verilog)

По типу автоматов — в статье описан классический алгоритм Мура (автомат Мили можно свести к Мура), поскольку язык верилог под конструкцией always понимает элемент памяти типа мастер-слейв (вообще и защелку тоже, но в контексте поста — триггер), и другие типы автоматов (которые нельзя свести к Мура) таким кодом не опишешь. Можно было бы для расширения кругозора описать еще автомат Хаффмана, но тогда без always, поскольку он асинхронен (использует элемент памяти на линии задержки).

Было бы полезно не просто запостить некий верилог-код автомата, а показать как сделать так, чтобы синтезаторы synopsys/cadence понимали, что это за автомат. Зачем? Да потому что в тексте нигде нет ни слова про минимизацию автоматов, а так хоть тулам на откуп отдать можно было бы. Поэтому статья Sunburst design (которую автор критикует в начале) реально рулит, а этот пост — нет.

Проверка синтезируемости красивых возможностей SystemVerilog на практике

Одно замечание. Тулы синтеза умеют только импортировать SV; на выходе у них в 100% случаев получается обычный верилог-нетлист. Соответственно, это означает флатованные до 1-го разряда интерфейсы и дикие, трехэтажные названия портов и сигналов, полученные при конверсии имен. С такими названиями очень трудно писать констрейнты и дебажить нетлист, ведь постоянно придется сопоставлять, какой цепи и регистру в RTL соответствует цепь и регистр из нетлиста. Поэтому SV (и конструкции generate в обычном верилоге) не рекомендуют использовать в сложных проектах, а особенно — на верхнем уровне. SV — язык красивый и удобный, но только до этапа синтеза.

Сетевой JTAG программатор для Altera Quartus Prime из Raspberry Pi3

«Сетевой программатор» используют уже два десятка лет. Рядом со стендом ставится ноут с программатором (BB1/2, USBblaster, MasterBlaster и т.д.), поднимается Altera JTAG сервер. На удаленной машине ставится клиентская часть. Всё, можно работать удаленно.
+ На ноуте еще часто делают удаленный ресет и включение питания стенда.

Опасность сбоев от отдельных ядерных частиц — миф или реальность?

Очень любопытно, спасибо!
Но не во всех сбоях электроники стоит винить ТЗЧ и космос. Есть еще такая штука, как метастабильность: это как заряженное ружье на стене, раз в сто лет может выстрелить. На тему метастабильности и «бога в машине» есть отличная книжка на английском: He Who Hesitates is Lost: Decisions and free will in men and machines

Information

Rating
Does not participate
Location
Россия
Registered
Activity