Rör (BBC Micro)
Inom datorer är röret expansionsgränssnittet och arkitekturen för BBC Microcomputer System som gör att BBC Micro kan kommunicera med en andra processor eller coprocessor .
Under Tube-arkitekturen kör samprocessorn applikationsmjukvaran för användaren, medan Micro (fungerar som en värd ) tillhandahåller alla I/O- funktioner, såsom skärmvisning, tangentbord och hantering av lagringsenheter. En samprocessorenhet kan kallpluggas till vilken BBC Micro som helst med ett diskgränssnitt (vars ROM innehöll den nödvändiga värdmjukvaran) och användas omedelbart.
Genomförande
Den 40-pin IDC "Tube"-kontakten är en enkel slavanslutning till värdprocessorns huvudbuss, med 8 datalinjer, 7 adresslinjer och en avbrottsingång. Tube-protokollen implementeras av hårdvara i den anslutna enheten.
Inuti samprocessorenheten är ett proprietärt chip ( Tube ULA , tillverkad från början av Ferranti ) gränssnitt och isolerar logiskt värd- och samprocessorbussarna . Detta gör att röret kan arbeta med en helt annan bussarkitektur i samprocessorenheten. De andra aktiva komponenterna som behövs är en mikroprocessor , lite RAM , ett litet ROM som innehåller processorspecifik klientkod, limlogik som en adressavkodare och en strömkälla .
De två processorerna kommunicerar genom fyra par FIFO- buffertar i Tube ULA. Konsolingång /utgång, felmeddelanden , dataöverföringar och systemanrop har var och en sitt eget par buffertar, en för varje riktning. Kökapaciteten varierar mellan 1 och 24 byte, beroende på den dedikerade buffertfunktionen. Varje buffert har ett kontrollregister och statusregister för att övervaka dess tillstånd och konfigurera uppkomsten av avbrott .
Protokollet för användningen av dessa buffertar är strikt specificerat av Acorn Computers och motsvarar kommunikation mellan processer genom att skicka meddelanden . De flesta interaktioner är asynkrona men snabba blocköverföringar är synkrona och består av att värden blint kör en enkel hämtningsbutiksloop, som definierar överföringshastigheten. Samprocessorn synkroniseras genom att passera en dummy-byte och regleras sedan av den relevanta buffertsemaforen.
Tube-anslutningens generella karaktär gör att den i princip kan användas för alla typer av höghastighetsutrustning, även om Acorn bara använder den för Tube-samprocessorer. BBC Micro/Master-intervallet tillhandahåller 5 adresslinjer för adressintervallet &60–&7F men Tube-protokollet använder de lägsta 3 bitarna. Endast dessa 3 adresslinjer är anslutna till interna Tube-uttag, som finns i BBC Master eller Universal Second Processor Unit.
Ansökningar
Många samprocessorer utvecklades för röret. Vanligast är en MOS Technology 6502- processor som gör att omodifierade BBC Micro-program kan köras snabbare och med mer minne, så länge de använder API för alla I/O. Det finns även en Zilog Z80- processor för att köra CP/M och en National Semiconductor 32016- processor som kör Panos (och inofficiellt en UNIX-variant). [ citat behövs ]
Dessa samprocessorer utgör grunden för Acorn Business Computer- serien, de högre maskinerna packas om BBC Micros med en samprocessor ansluten via röret. Master-serien stöder två röranslutningar, vilket möjliggör en samprocessor monterad inuti höljet och en annan ansluten externt, men endast en kan användas i valfri strömförsörjd session. En intern 6502-processor kan monteras, eller ett Intel 80186- baserat system för DOS- kompatibilitet (även om detta i praktiken är begränsat).
Tuben har också använts under den inledande utvecklingen av ARM- processorn. En utvärderingstavla utvecklades som återigen använder BBC Micro som ett värdsystem för I/O-operationer.
Acorn hade starkt avrådt BBC Micro-programmerare från att direkt komma åt systemminnet och hårdvaran, och gynnade officiella API-anrop. Detta är skenbart för att säkerställa att applikationer sömlöst kan flyttas till Tube 6502-samprocessorn, eftersom direkt åtkomst därifrån är omöjlig. När ett program anropar en av MOS- ingångspunkterna skickar en ersättningssubrutin i samprocessorns ROM ett motsvarande meddelande till värden som utför operationen och skickar tillbaka resultatet. På detta sätt kan en applikation köras identiskt på värden eller samprocessorn. Andra CPU-modeller använder ett anpassat API, vilket vanligtvis är en ortogonal översättning av 6502 API till ett inbyggt format.