Zephyrnet-logo

De computer uit de jaren zeventig: een stukje computergebruik

Datum:

Wat hebben de HP-1000 en de DEC VAX 11/730 gemeen met de videogames Tempest en Battlezone? Meer dan je zou denken. Al deze machines, samen met vele anderen uit die periode, gebruikten bit slice-CPU's uit de AM2900-familie.

De bit slice CPU was een zeer succesvol product dat pas in de jaren zeventig had kunnen bestaan. Als je tegenwoordig een computersysteem nodig hebt, kun je kiezen uit veel CPU's en zelfs hele systemen op een chip. Je kunt ook veel kleine systemen op bordniveau krijgen die waarschijnlijk alles doen wat je wilt. In de jaren zestig had je helemaal geen keus. Je bouwde printplaten met poorten erop met behulp van transistors, buizen, relais of – misschien – kleinschalige IC-poorten. Vervolgens heb je de planken aangesloten.

Er was geen genie voor nodig om te beseffen dat het geweldig zou zijn om mensen een CPU-chip aan te bieden zoals je die vandaag de dag kunt krijgen. Het probleem is dat de hedendaagse halfgeleidertechnologie dit niet toestaat – althans niet met een aanzienlijke hoeveelheid middelen. De Motorola MC14500B uit 1977 was bijvoorbeeld een één-bits microprocessor, en hoewel dat zijn nut had, was het niet voor iedereen of alles geschikt.

The Answer

Het antwoord was om zoveel mogelijk CPU's in één chip te produceren en voorzieningen te treffen om meerdere chips samen te gebruiken om de CPU te bouwen. Dat is precies wat AMD deed met de AM2900-familie. Als je erover nadenkt, wat is een CPU? Zeker, er zijn variaties, maar in de kern is er een plek om instructies op te slaan, een plek om gegevens op te slaan, een manier om instructies te kiezen en een manier om met gegevens te werken (zoals een ALU – rekenkundige logische eenheid). Instructies verplaatsen gegevens van de ene plaats naar de andere en stellen de status in van zaken als I/O-apparaten, ALU-bewerkingen en dergelijke.

<img decoding="async" data-attachment-id="665623" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/bcpu/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png" data-orig-size="785,551" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="bcpu" data-image-description data-image-caption="

Basic bitslice CPU uit het AMD-databoek

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=400″ data- large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=785″ class=”size- thumbnail wp-image-665623″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing.png” alt width=”250″ height=”175″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png 785w, https://zephyrnet .com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=250,175 250w, https://zephyrnet.com/wp-content/uploads/ 2024/03/the-1970s-computer-a-slice-of-computing-2.png?resize=400,281 400w”sizes=”(max-breedte: 250px) 100vw, 250px”>

Basic bitslice CPU uit het AMD-databoek

Natuurlijk, dat is een te grote vereenvoudiging, maar het kan worden opgerekt om de meeste traditionele CPU's te beschrijven. De AMD-chips zorgden voor een 4-bits datapad dat aan elkaar kon worden gekoppeld. Andere chips in de familie zouden het geheugen kunnen beheren (inclusief, optioneel, DMA) en de boekhouding tussen plakjes kunnen verzorgen. Je zou een 8-bits machine met twee segmenten kunnen bouwen, een 24-bits machine met drie, enzovoort.

Dit maakte niet alleen minder IC's mogelijk dan het gebruik van conventionele chips, het maakte ook bipolaire logica mogelijk die - vooral in die tijd - sneller was maar niet zo compact als NMOS of CMOS. Met chips zoals de AM2900-familie kunt u flexibele CPU's maken. Ze passen bij uw toepassing en zijn snel uitgevoerd vergeleken met wat u met andere methoden zou kunnen doen.

Microcodering

Microcode is gebruikelijk in veel CPU's, en bitslice-CPU's vormden daarop geen uitzondering. U hebt bijvoorbeeld mogelijk een zeer lange microcode-instructie waarbij elk register een afzonderlijke lees- en schrijfregel heeft. Als je acht registers had, zijn dat 16 bits alleen al in die besturingselementen. Dan heb je misschien ook een functiecode (4 bits) en een bit die aangeeft of de conditiecodes moeten worden bijgewerkt. Nu is elke "instructie" 21 bits. Dat is langer dan je wilt voor bijvoorbeeld een 8-bits machine, dus definieer je instructies die microcode uitvoeren.

<img decoding="async" data-attachment-id="665630" data-permalink="https://hackaday.com/2024/03/06/the-1970s-computer-a-slice-of-computing/pin2901/" data-orig-file="https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png" data-orig-size="317,460" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="pin2901" data-image-description data-image-caption="

Pinout van AM2901

” data-medium-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=276″ data-large-file=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?w=317″ class=”size-thumbnail wp-image-665630″ src=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-1.png” alt width=”172″ height=”250″ srcset=”https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png 317w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=172,250 172w, https://zephyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-4.png?resize=276,400 276w” sizes=”(max-width: 172px) 100vw, 172px”>

Pinout van AM2901

Een instructie om register A toe te voegen aan register B en het resultaat in B te laten staan, kan bijvoorbeeld drie microcodestappen hebben. De eerste zou register A en B naar de databus sturen en de code bevestigen die de ALU doet optellen. Vervolgens zou de tweede instructie het resultaat op de databus plaatsen en het B-register opdracht geven de databus te lezen. De laatste microcode-instructie springt naar het hoofdgedeelte van de microcode dat de volgende instructie leest en het programma voortzet.

Dat is hoe je normaal gesproken een bitslice-CPU zou ontwerpen. Een AM2909, AM2910 of AM2911 (microprogrammasequencers) zouden een ROM voor een microprogrammaopslag adresseren, die opdrachten naar een reeks AM2901-chips zou sturen. De 40-pins AM2901 kwam in verschillende varianten (bijvoorbeeld AM2901B), elk met technologische verbeteringen om ze kleiner en sneller te maken.

De microprogrammaopslag zou dan het ophalen van instructies en de uitvoering ervan orkestreren. Vermoedelijk was het microprogramma relatief klein vergeleken met de echte software, dus uw ROM met de microcode kan kleiner zijn dan de ROM die uw daadwerkelijke toepassing bevat.

Samenwerking

Je kunt natuurlijk niet alles doen door simpelweg nog een chip toe te voegen. Ze moeten samenwerken. Er is bijvoorbeeld een F-uitgang op elke chip die een open collector is. Je koppelt alle F-uitgangen aan elkaar met een pull-up-weerstand. Als een CPU-segment een resultaat heeft dat niet nul is, wordt de F-uitvoer verlaagd. Als de F-uitvoer hoog is, moet het gehele resultaat (ongeacht hoeveel bits dat ook zijn) nul zijn.

Het omgaan met transport is ook een probleem. Als je eerste slice 1111+0001 optelt, is het antwoord niet echt 0000. Het is 0000 + een carry. Je kunt eenvoudig elke Cn+4-uitgang aansluiten op de Cn-ingang van de volgende chip om ripple carry te krijgen, maar dat zal een snelheidsboete opleveren die erger wordt naarmate je plakjes toevoegt. Je kunt een AM2902 ook gebruiken om “vooruit te kijken” voor betere prestaties. Elke 2902 kon vier plakjes of 16 bits verwerken. Als je verder wilt gaan, kun je één AM2902 gebruiken om vooruit te kijken naar nog eens vier AM2902's, die elk vier CPU-plakken kunnen verwerken. Vermoedelijk zou het mogelijk zijn om dit schema verder uit te breiden als je verder wilde gaan dan 64 bits, hoewel dat in 1975 misschien niet je grootste probleem was bij het bouwen van zo'n grote machine.

Verschuiving en vermenigvuldiging vereisten ook samenwerking. Het was gebruikelijk om aan elk uiteinde van de keten een multiplexer te gebruiken om bij het verschuiven de bron van nieuwe bits te bepalen. Het hing er maar vanaf wat je nodig had.

maatwerk

Dat is een interessant aspect van het gebruik van bit slice. Je kon precies ontwerpen wat je nodig had. Waarom een ​​32-bits machine bouwen als je 24-bits nodig hebt voor de taak die je moet uitvoeren? Waarom multiplexers gebruiken om een ​​rotatie-instructie mogelijk te maken die u nooit zult gebruiken?

Tegenwoordig nemen we een bouwsteen en zorgen ervoor dat deze bij ons probleem past. Met bitslice maakte je een CPU die precies paste bij wat je nodig had. Er waren veel weetjes over hoe je verschillende bewerkingen moest uitvoeren, zoals het ophalen van instructies, vermenigvuldigen of het wisselen van bytes in de AM2900-gegevensboek.

In dat databoek staan ​​ook de chips die je nodig hebt, zoals AM2902's of de 48-pins AM2903 "Superslice" met uitbreidbare registers, vermenigvuldigers, delingen en andere speciale circuits aan boord.

Stap

De AM2900-familie was zeer succesvol. De originele AM2901 begon op een zeer grote chip met behulp van Schottky met laag vermogen en kon werken op 80 nanoseconden. In 1978, drie jaar later, was de AM2901B-chip minder dan de helft zo groot en kon hij 50 nanoseconden verwerken. In 1981 gebruikte de AM2901C intern ECL en kon hij 37 nanoseconden op dezelfde chip doen. In 1979 zou je zelfs een floating point coprocessor kunnen krijgen (de AMD9511).

Dit waren eenvoudige apparaten omdat je meerdere chips nodig had om dit te ondersteunen en meerdere AM2901's om alles groter dan vier bits te doen. De originele AM2901 had bijvoorbeeld slechts 540 poorten aan boord. Toch vonden ze hun weg naar alles, van werkstations en muzieksynthesizers tot videogames. Vanwege hun populariteit waren er veel tweede-bronleveranciers voor het apparaat, en het is nog steeds mogelijk om nieuwe, oude voorraad te vinden. Er werden zelfs Sovjet-kopieën geproduceerd.

Meer Bitslice

Veel van de CPU's gemaakt met de AM2900 waren eigen of militair. Maar als je er een wilt zien met veel documentatie, dan is dit hier een masterscriptie uit 1980 over de implementatie van een Nova 1200-compatibele CPU met behulp van de technologie – nou ja, in ieder geval een onderdeel ervan.

De AM2900 was niet het enige spel in de stad. In 1974 waren de IMP van National Semiconductor en de 3000-serie van Intel beschikbaar. Bovendien maakten Motorola, Texas Instruments, Fairchild, Raytheon en anderen soortgelijke apparaten. Maar om verschillende redenen is de AM2900 waar de meeste mensen aan denken als ze zich bitslice-CPU's herinneren. In feite bevat de masterscriptie over de Nova CPU ook een tabel met andere bitslice-technologie en de reden waarom ze geen van de andere gebruikten. Sommige apparaten gebruikten bijvoorbeeld PMOS, wat traag was. Anderen gebruikten ECL, een snelle technologie met de terechte reputatie dat deze moeilijk te gebruiken is. Een andere scriptie uit 1976 heeft een soortgelijke logica voor het selecteren van de AM2900.

Meer willen?

[Ken Shiriff] heb een ECL-variant van de AM2901 uit elkaar gehaald. Er is ook een boek uit 1980 jij kunt lezen. Er is ook een heleboel documenten op een Gopher-server (geen grapje). Als uw browser Gopher niet aankan – en dat zal ons niet verbazen – probeer dan een van de vele Gopher-proxy's. Het 16-bits computerontwerpvoorbeeld is vooral het bekijken waard. Wilt u een complexer voorbeeld? Hier is een razendsnelle 8080 CPU gebouwd met bitslice. Over hackaday.io, [zpekic] heeft onlangs deze 8080 gebouwd en er Tiny Basic op uitgevoerd (zie de video als je het niet gelooft).

[Ingesloten inhoud]

De Xerox Star 8010 gebruikte de AM2900 in 1981. Kost minder dan $ 17,000! Gelukkig kan dat emuleer er een als je wilt. Wat dat betreft kun je dat soort dingen doen emuleer de AM2900 met behulp van Java, hoewel dit mogelijk niet voor elk mogelijk ontwerp werkt (tip: download uit de releases).

spot_img

Laatste intelligentie

spot_img