Трубка (BBC Micro)

редактировать

В вычислениях трубка была интерфейсом расширения и архитектурой микрокомпьютерной системы BBC, которая позволяла BBC Micro взаимодействовать со вторым процессором или сопроцессором.

В архитектуре Tube сопроцессор будет запускать прикладное программное обеспечение для пользователя, в то время как Micro (действующий как хост) обеспечивает все функции ввода-вывода, такие как отображение экрана, управление клавиатурой и устройствами хранения. Сопроцессор можно было подключить к любому BBC Micro с дисковым интерфейсом (ПЗУ которого содержало необходимое программное обеспечение хоста) и использовать немедленно.

Реализация

40-контактный разъем IDC «Tube» представлял собой простое ведомое соединение с главной шиной хост-процессора с 8 линиями данных, 7 адресными линиями и входом прерывания. Протоколы Tube были реализованы аппаратно в подключенном устройстве.

Внутренняя часть процессора 6502 второго

Внутри блока сопроцессора запатентованная микросхема ( Tube ULA, первоначально производимая Ferranti ) связала и логически изолировала шины хоста и сопроцессора. Это позволило Tube работать с совершенно другой архитектурой шины в блоке сопроцессора. Единственными другими необходимыми активными компонентами были микропроцессор, некоторое количество ОЗУ, небольшое ПЗУ, содержащее специфичный для процессора клиентский код, связующую логику, такую ​​как декодер адреса и источник питания.

Два процессора взаимодействуют через четыре пары буферов FIFO в Tube ULA. Консольный ввод / вывод, сообщения об ошибках, передача данных и системные вызовы имели свою пару буферов, по одному для каждого направления. Емкость очереди варьировалась от 1 до 24 байтов, в зависимости от функции выделенного буфера. Каждый буфер имел регистр управления и регистр состояния, чтобы отслеживать его состояние и настраивать возникновение прерываний.

Протокол для использования этих буферов был строго определен Acorn Computers и сводится к межпроцессному взаимодействию посредством передачи сообщений. Большая часть взаимодействия была асинхронной, но быстрая передача блоков была синхронной и заключалась в том, что хост слепо запускал простой цикл выборка-сохранение, который определял скорость передачи. Сопроцессор синхронизировался передачей фиктивного байта и затем регулировался соответствующим семафором буфера.

Универсальный характер разъема Tube в принципе позволял использовать его с любым типом высокоскоростного периферийного устройства, хотя Acorn использовала его только для сопроцессоров Tube. Диапазон BBC Micro / Master обеспечивал 5 адресных строк для диапазона адресов amp; 60– amp; 7F, но протокол Tube использовал только младшие 3 бита. Только эти 3 адресные линии подключены к внутренним разъемам Tube, как в главном устройстве BBC или универсальном втором процессоре.

Приложения

Для Tube было разработано множество сопроцессоров. Чаще всего использовался процессор MOS Technology 6502, который позволял немодифицированным программам BBC Micro работать быстрее и с большим объемом памяти, если они использовали API для всех операций ввода-вывода. Также был процессор Zilog Z80 для запуска CP / M и процессор National Semiconductor 32016 с Panos (и неофициально вариант UNIX).

Эти сопроцессоры легли в основу серии компьютеров Acorn Business Computer, а машины более высокого уровня были переупакованы BBC Micros с сопроцессором, подключенным через трубку. Серия Master поддерживает два соединения Tube, что позволяет использовать сопроцессор внутри корпуса, а другой - подключаться извне, но только одно может использоваться в любом сеансе с питанием. Может быть установлен внутренний процессор 6502 или система на базе Intel 80186 для совместимости с DOS (хотя на практике это было ограничено).

Tube также использовался при первоначальной разработке процессора ARM. Была разработана оценочная плата, которая снова использовала BBC Micro в качестве хост-системы для операций ввода-вывода.

Acorn настоятельно отговаривал программистов BBC Micro от прямого доступа к системной памяти и оборудованию, отдавая предпочтение официальным вызовам API. Это было сделано якобы для обеспечения беспрепятственного переноса приложений на сопроцессор Tube 6502, поскольку прямой доступ оттуда был невозможен. Когда программа вызывала одну из точек входа MOS, подпрограмма замены в ПЗУ сопроцессора передавала соответствующее сообщение хосту, который выполнял операцию, и возвращал результат. Таким образом, приложение может работать идентично на хосте или сопроцессоре. В других моделях ЦП использовался собственный API, который обычно представлял собой ортогональный перевод API 6502 в собственный формат.

Ссылки
Последняя правка сделана 2024-01-10 08:00:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте