Comments 18
Не говоря уже о том, что интерфейс старый как г-но мамонта; когда я защищал свой диплом по теме моста PCI-VME в 2001 году, уже тогда этот интерфейс был чудовищно устаревшим.
p.s. эту книгу можно найти целиком в интернете — ищите. Ну или по почте скину, если не найдете.
Пусть будет просто ссылка. Но именно не демо, а так сказать «подакшн».
Естественно, с исходным кодом.
Спасибо!
А без данных, адресов и арифметики, лучшее что можно сделать асинхронным (с помощью графового метода) — машину Тьюринга. Но никак не процессор, к примеру. Поэтому тематика и заброшена, уже 20 лет как.
Что касается данных, то тут даже попроще. Схема разряда данных, а может даже вместе с разрядом второго операнда, хранит свое состояние. Сигнал на операцию определяет выбор. Далее детерминированная последовательность событий. Копирование это выбор по уровню. А вот между памятью и регистром должна быть схема, представляющая из себя выбор на множество ветвей (по количеству адресов). Для каждой ветви решение типовое. В общем может и коряво, ну это первое что в голову пришло. Да, интересно было бы в этом поковыряться.
Насколько я понимаю, реализация асинхронных схем на реальном железе требует очень объемной верификации и тестирования, не говоря уже о квалификации разработчика. Собственно поэтому их и применяют в различных ASICах, где борются за каждый гейт. Ну или еще для быстродействия, но опять же с появлением последовательных высокоскоростных шин (которые собственно и убивают VME сегодня) этот вопрос тоже перестал быть актуальным.
В ПЛИСах уже давно используются синхронные схемы, которые хоть и проигрывают в быстродействии асинхронным, но требуют гораздо меньшей верификации и квалификации разработчика.
Там не только дело в квалификации разработчика. Чтобы схема заработала в железе, синтезатор и P&R должен четко знать все требования по времянкам между различными сигналами, hold, setup time и пр. И эти все констрейны разработчик должен знать и программировать ручками для каждого из сигналов.
В случае же с синхронными схемами, синтезатор легко генерирует констрейны самостоятельно, стоит только задать частоту тактового сигнала. И разработчику не надо об этом париться.
Дык приведенная схема и используется в продакшн — в BUS контроллере VME. Только люди, ее разрабатывавшие, уже, наверное, умерли.
Еще один пример синтеза асинхронных схем: VME bus controller