В вычислениях Tube был интерфейсом расширения и архитектурой микрокомпьютерной системы BBC, которая позволяла BBC Micro взаимодействовать со вторым процессором или сопроцессором .
В архитектуре Tube сопроцессор будет запускать прикладное программное обеспечение для пользователя, в то время как Micro (действующий как хост ) обеспечивает все функции ввода-вывода , такие как отображение экрана, управление клавиатурой и устройствами хранения. Блок сопроцессора можно было подключить к любому BBC Micro с дисковым интерфейсом (ПЗУ которого содержало необходимое программное обеспечение хоста) и использовать немедленно.
Выполнение
40-контактный разъем IDC «Tube» представлял собой простое ведомое соединение с главной шиной хост-процессора с 8 линиями данных, 7 адресными линиями и входом прерывания. Протоколы Tube были реализованы аппаратно в подключенном устройстве.
Внутри блока сопроцессора запатентованная микросхема ( Tube ULA , первоначально производимая Ferranti ) связала и логически изолировала шины хоста и сопроцессора . Это позволило Tube работать с совершенно другой архитектурой шины в блоке сопроцессора. Единственными другими необходимыми активными компонентами были микропроцессор , некоторое количество ОЗУ , небольшое ПЗУ, содержащее специфичный для процессора клиентский код, связующую логику, такую как декодер адреса и источник питания .
Два процессора обмениваются данными через четыре пары буферов FIFO в Tube ULA. Консольный ввод / вывод, сообщения об ошибках , передача данных и системные вызовы имели свою пару буферов, по одному для каждого направления. Емкость очереди варьировалась от 1 до 24 байтов, в зависимости от функции выделенного буфера. Каждый буфер имел регистр управления и регистр состояния, чтобы отслеживать его состояние и настраивать возникновение прерываний .
Протокол для использования этих буферов был строго определен Acorn Computers [1] и сводится к межпроцессному взаимодействию посредством передачи сообщений . Большая часть взаимодействия была асинхронной, но быстрая передача блоков была синхронной и заключалась в том, что хост слепо запускал простой цикл выборка-сохранение, который определял скорость передачи. Сопроцессор синхронизировался путем передачи фиктивного байта и затем регулировался соответствующим семафором буфера.
Универсальный характер разъема Tube в принципе позволял использовать его для любого типа высокоскоростного периферийного устройства, хотя Acorn использовала его только для сопроцессоров Tube. Диапазон BBC Micro / Master обеспечивал 5 адресных строк для диапазона адресов & 60– & 7F, но протокол Tube использовал только младшие 3 бита. Только эти 3 адресные линии подключены к внутренним разъемам Tube, как в главном устройстве BBC или универсальном втором процессоре.
Приложения
Для Tube было разработано множество сопроцессоров. Чаще всего использовался процессор MOS Technology 6502 , который позволял немодифицированным программам BBC Micro работать быстрее и с большим объемом памяти, если они использовали API для всех операций ввода-вывода. [1] [2] Был также процессор Zilog Z80 для работы с CP / M и процессор National Semiconductor 32016 , работающий под управлением Panos (и неофициально вариант UNIX). [ необходима цитата ]
Эти сопроцессоры легли в основу серии компьютеров Acorn Business Computer , машины более высокого уровня были переупакованы BBC Micros с сопроцессором, подключенным через трубку. Серия Master поддерживала два соединения Tube, что позволяло устанавливать сопроцессор внутри корпуса, а другой - подключаться извне, но только одно можно было использовать в любом сеансе с питанием. Может быть установлен внутренний процессор 6502 или система на базе Intel 80186 для совместимости с DOS (хотя на практике это было ограничено). [3]
Tube также использовался при первоначальной разработке процессора ARM . Была разработана оценочная плата, которая снова использовала BBC Micro в качестве хост-системы для операций ввода-вывода.
Acorn настоятельно отговаривал программистов BBC Micro от прямого доступа к системной памяти и оборудованию, отдавая предпочтение официальным вызовам API. [4] Это было сделано якобы для обеспечения беспрепятственного переноса приложений на сопроцессор Tube 6502, поскольку прямой доступ оттуда был невозможен. Когда программа вызывала одну из точек входа MOS , подпрограмма замены в ПЗУ сопроцессора передавала соответствующее сообщение хосту, который выполнил операцию и вернул результат. Таким образом, приложение может работать идентично на хосте или сопроцессоре. В других моделях ЦП использовался специальный API, который обычно представлял собой ортогональный перевод API 6502 в собственный формат.
Рекомендации
- ^ a b Указание по применению Acorn 004, «Указание по применению для трубок»
- ^ Хотя наиболее часто упоминаемая причина того, что программное обеспечение работает быстрее на втором процессоре, заключалась в том, что оно могло переносить задачи ввода-вывода, такие как вычисления графики, на главный процессор, гораздо более важным соображением была тактовая частота: хост-процессор был ограничен до 2 МГц, чтобы дать время для обновления VDU для доступа к ОЗУ, тогда как сопроцессор может работать на частоте 3 МГц, при гораздо более простом обновлении DRAM он останавливается на частоте 68 кГц, см. Страницы 7 и 19 Руководства по обслуживанию второго процессора 6502, заархивированного по адресу http: // chrisacorns.computinghistory.org.uk/docs/Acorn/Manuals/Acorn_65022ndprocSM.pdf
- ^ Watford Electronics, "Расширенное справочное руководство для BBC Master Series", 1988
- ^ Колл, Джон (1982) [1982]. Аллен, Дэвид (ред.). Руководство пользователя микрокомпьютера BBC (в архиве RTF) . Лондон: Британская радиовещательная корпорация. стр. 443, 450, 473. ISBN 0-563-16558-8. Проверено 25 января 2010 года . CS1 maint: обескураженный параметр ( ссылка )