Введение

Выпущенная в качестве шины расширения Commodore Amiga 3000 в 1990 году, компьютерная шина Zorro III использовалась для подключения периферийных устройств к материнской плате Amiga. Разработанная ведущим инженером Commodore International Дэйвом Хейни, 32-битная Zorro III заменила 16-битную Zorro II, использовавшуюся в Amiga 2000. Как и шина Zorro II, Zorro III обеспечивала полноценное Plug and Play автоопределение (аналогичное и предшествующее шине PCI для ПК), при котором устройствам динамически выделялись необходимые ресурсы при загрузке. Zorro III продолжила конструкцию Zorro II с прямым отображением памяти в адресное пространство (в отличие от процессоров 80x86, семейство MC68K, используемое в Amiga, не имело отдельного механизма ввода/вывода адресов). Подобно Zorro II на 24-битных системах, Zorro III резервировала значительный объем 32-битного адресного пространства реальной памяти для карт расширения с большим объемом памяти, а меньший объем с меньшей гранулярностью выделения – для плат типа "I/O". Zorro III не поддерживалась на 24-битных адресных устройствах или устройствах с 16-битной шиной данных – для ее работы требовался полноценный 32-битный процессор. Процессор мог напрямую обращаться к любому устройству Zorro III как к памяти, поэтому было возможно (и реализовано) расширение памяти Zorro, а также использование видеопамяти видеокарты в качестве системной оперативной памяти. Как асинхронная шина, Zorro III определяла циклы шины фиксированной длины, в течение которых могла выполняться транзакция, соответствующая спецификациям шины. Первоначальная реализация Zorro III была выполнена в массиве логических элементов "Fat" Buster (BUS conTrollER) от Commodore, с использованием высокоскоростного ПЗУ (PAL) и множества буферных микросхем TTL для буферизации, изоляции и мультиплексирования шины. Реализация в Amiga 4000 была в основном аналогичной, но включала второй массив логических элементов для замены буферов TTL. Чип Buster обеспечивал арбитраж шины, преобразование между протоколами шины MC68030 и циклами шины Zorro II или Zorro III (географически отображаемыми в зависимости от адреса шины Zorro), а также векторный механизм прерываний, который обычно не использовался. Мастера шины Zorro II имели законное право на монопольное использование шины, в то время как устройства Zorro III подвергались более справедливому арбитражу и имели ограниченное время владения шиной. Несмотря на то, что Zorro III была 32-битной шиной, она использовала тот же 100-контактный слот и краевой разъем, что и Zorro II. Дополнительные адресные и линии данных обеспечивались за счет мультиплексирования некоторых существующих соединений, при этом назначение линий изменялось на разных этапах цикла доступа к шине (например, адрес превращался в данные). Однако шина не была полностью мультиплексирована; младшие 8 бит адреса оставались доступными во время циклов передачи данных, что позволяло Zorro III поддерживать быстрый пакетный режим в режиме страничного доступа. Правильно спроектированные карты расширения Zorro II могли сосуществовать с картами Zorro III; от мастера шины Zorro III не требовалось поддержки доступа DMA к устройствам шины Zorro II. Карты могли определять тип подсистемы – Zorro III или Zorro II, что позволяло некоторым картам Zorro III функционировать при подключении к более старой шине Zorro II, хотя и с уменьшенной скоростью передачи данных. Теоретическая пропускная способность шины Zorro III составляет 150 Мбайт/с, исходя из идеального ведущего и ведомого устройства Zorro III, работающих с минимальными временами установки и удержания. Реальная скорость передачи данных между реализацией Zorro III в Amiga 3000/4000 и картой Zorro III составляет около 13,5 Мбайт/с из-за ограничений чипа Buster. Это было сопоставимо с первой реализацией PCI от Intel, которая достигала пиковой скорости 25 Мбайт/с. Zorro III была оптимизирована для будущих одночиповых реализаций протокола, но ресурсы, доступные Commodore в 1990 году, ограничили первоначальную реализацию. Это также является ограничивающим фактором для сторонних плат расширения Amiga PCI, таких как, например, Elbox Mediator PCI или Matay Prometheus PCI (около 12 Мбайт/с PCI в систему 68k). Передача данных по DMA между двумя картами Zorro III (или картами PCI на плате расширения PCI) может быть значительно быстрее.

Карта памяти

Адрес Размер [Мбайт] Описание 0x0000 0000 2.0 Чип-память 0x0020 0000 8.0 Пространство расширения памяти Zorro II 0x00A0 0000 1.5 Пространство расширения ввода-вывода Zorro II 0x00B8 0000 3.0 Пространство регистров материнской платы A2000 0x00E8 0000 0.5 Zorro II ввод-вывод 0x00F0 0000 1.0 ROM материнской платы 0x0100 0000 112.0 Пространство материнской платы A3000 0x0800 0000 128.0 Пространство расширения 32-битной памяти 0x1000 0000 1792.0 Пространство расширения Zorro III 0x8000 0000 2032.0 Зарезервировано 0xFF00 0000 64 КБ Конфигурационный блок Zorro III 0xFF01 0000 16.0 Зарезервировано 0xFFFF FFFF