Pull to refresh

Comments 18

Коллега, вы хоть представляете, что такое VME? У Вас в статье нет и десятой части сигналов этого интерфейса. Нет шины адреса, модификатора, шины данных, вообще опущена система выставления и обработки прерываний, географическая адресация. По сути, Вы взяли малююсенький кусок автомата записи, ответственного за хендшейк передачи, да и то — только в одном из нескольких режимов. А как же блочные передачи, чтение, как же Read-Modify-Write, как же снятие прерываний? Это у Вас вообще ни разу не bus controller.

Не говоря уже о том, что интерфейс старый как г-но мамонта; когда я защищал свой диплом по теме моста PCI-VME в 2001 году, уже тогда этот интерфейс был чудовищно устаревшим.

p.s. эту книгу можно найти целиком в интернете — ищите. Ну или по почте скину, если не найдете.
Пожалуйста, не грузите меня железками, я об этом действительно ничего не знаю. Я узкий специалист по синтезу асинхронных схем. Зато в этой области рядом со мной вообще никого нет. Ни близко, ни далеко. К петрифаю я привязался только по одной причине, он единственный, кто гордится своими результатами. И публикует их. То что интерфейс старый или новый мне вообще по барабану. Был в книжке пример с исходным заданием и полученным результатом, я его и сделал. Настругать такую схемку полчаса работы. Статью писать гораздо гумознее. В статье я не хвастался, что сделал какой-то VME (да хоть BBE), на примере я показал, как применять мой метод. Пример взят не потому, что он маленький или большой. Он весьма не плох для демонстрации.
А можно какой-нибудь реальный пример, где используются асинхронные схемы?
Пусть будет просто ссылка. Но именно не демо, а так сказать «подакшн».
Естественно, с исходным кодом.
Спасибо!
К сожалению, я не инженер, я только на бумажках рисую. О нужности, ненужности асинхронных схем судить не могу. Но вроде как существует мнение, что асинхронные схемы это хорошо, единственная загвоздка — не очень понятно как их делать. Я, как мне кажется, с этим разобрался. Что касается реальных примеров, то в книжке, фото обложки в начале статьи, как мне показалось, и приводятся реальные примеры. Правда, там вся асинхронность сосредоточена в управляющих схемах. Но я думаю, асинхронные принципы можно распространять и на данные, и на адреса…
Вот, к сожалению, данные, адреса и любые операции над ними не годятся для графового представления. Если придумаете как это сделать — будет революция.
А без данных, адресов и арифметики, лучшее что можно сделать асинхронным (с помощью графового метода) — машину Тьюринга. Но никак не процессор, к примеру. Поэтому тематика и заброшена, уже 20 лет как.
Буду осторожен, все-таки вступаю на чужую территорию. Может я неправ, но мне видится так. Дешифрация адреса — это последовательность из N «выборов по уровню». Вернее двоичное дерево. N — разрядность адреса, «выбор по уровню» — выбор в зависимости от состояния ячейки адреса (подробнее в общем обзоре, класс проблем, связанных с входными сигналами). Конечно записывать это в STG дико. Я и говорю, что STG несколько неадекватен. А вот язык наподобие языка программирования (с рекурсиями, вложенными функциями) вполне справился бы. Сам же синтез не так страшен, как кажется. На первый взгляд кажется, что там 4 типовых решения, и их надо раскидать, в зависимости от предыдущего количества 0 и 1 адреса.
Что касается данных, то тут даже попроще. Схема разряда данных, а может даже вместе с разрядом второго операнда, хранит свое состояние. Сигнал на операцию определяет выбор. Далее детерминированная последовательность событий. Копирование это выбор по уровню. А вот между памятью и регистром должна быть схема, представляющая из себя выбор на множество ветвей (по количеству адресов). Для каждой ветви решение типовое. В общем может и коряво, ну это первое что в голову пришло. Да, интересно было бы в этом поковыряться.
Так и знал, не будет никакой революции. И еще лет 20.
Раньше Вы обратное утверждали. Что случилось? Нашли у себя ошибку?
Не, революцию толпой делают, хотя бы маленькой. А я один.
Ну так и обратитесь к толпе, только к другой. Ведь толпа толпе рознь — на хабре публикации на казуальный интерес рассчитаны, а Вы хотите заинтересовать специалистов. Следовательно, нужны научные публикации, а не беллетристика. Правда, специалистов в РФ — единицы, а чтобы еще финансирование для этих исследований отыскать — вообще из области фантастики. Поэтому лучше сразу писать на английском, и сразу — на запад. Наших, если кого и заинтересует, они и на английском прочитают. Впрочем, Вы ведь со Стародубцевым много писали на английском лет 15 назад. Заинтересовали кого то? По-видимому нет. В этом и проблема, что нужно иметь два таланта — придумать новое, и заинтересовать. Одно без другого бесполезно. Я побывал ровно в такой же ситуации, что и Вы, могу только посочувствовать.

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

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

Там не только дело в квалификации разработчика. Чтобы схема заработала в железе, синтезатор и P&R должен четко знать все требования по времянкам между различными сигналами, hold, setup time и пр. И эти все констрейны разработчик должен знать и программировать ручками для каждого из сигналов.
В случае же с синхронными схемами, синтезатор легко генерирует констрейны самостоятельно, стоит только задать частоту тактового сигнала. И разработчику не надо об этом париться.

Дык приведенная схема и используется в продакшн — в BUS контроллере VME. Только люди, ее разрабатывавшие, уже, наверное, умерли.

Не, живы. И вполне себе хорошо питаются.
Да не, все при деле. Кто в ЕС, кто в Америке.
Sign up to leave a comment.

Articles