Zephyrnet-logotyp

1970-talets dator: A Slice Of Computing

Datum:

Vad har HP-1000 och DEC VAX 11/730 gemensamt med tv-spelen Tempest och Battlezone? Mer än du kanske tror. Alla dessa maskiner, tillsammans med många andra från den tidsperioden, använde AM2900-familjen bitars-CPU:er.

Bitslice CPU var en mycket framgångsrik produkt som bara kunde ha funnits på 1970-talet. Idag, om du behöver ett datorsystem, finns det många processorer och till och med hela system på ett chip att välja mellan. Du kan också få många små system på styrelsenivå som förmodligen skulle göra vad du vill. På 1960-talet hade man inga val alls. Du byggde kretskort med grindar med hjälp av transistorer, rör, reläer eller - kanske - småskaliga IC-grindar. Sedan kopplade du upp brädorna.

Det krävdes inget geni för att inse att det skulle vara fantastiskt att erbjuda människor ett CPU-chip som du kan få idag. Problemet är att dagens halvledarteknik inte skulle tillåta det - åtminstone inte med någon betydande mängd resurser. Till exempel var Motorola MC14500B från 1977 en enbitsmikroprocessor, och även om den hade sina användningsområden, var den inte för alla eller allt.

svaret

Svaret var att producera så mycket av en CPU som möjligt i ett chip och göra åtgärder för att använda flera chips tillsammans för att bygga processorn. Det är precis vad AMD gjorde med AM2900-familjen. Om du tänker efter, vad är en CPU? Visst, det finns variationer, men i kärnan finns det en plats för att lagra instruktioner, en plats för att lagra data, ett sätt att välja instruktioner och ett sätt att arbeta med data (som en ALU — aritmetisk logisk enhet). Instruktioner flyttar data från en plats till en annan och ställer in tillståndet för saker som I/O-enheter, ALU-operationer och liknande.

<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="

Grundläggande bitslice-CPU från AMD-databoken

” data-medium-file=”https://zepyrnet.com/wp-content/uploads/2024/03/the-1970s-computer-a-slice-of-computing-2.png?w=400″ data- large-file=”https://zepyrnet.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://zepyrnet.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 400 250w” sizes=”(maxbredd: 100px) 250vw, XNUMXpx”>

Grundläggande bitslice-CPU från AMD-databoken

Visst, det är en alltför förenkling, men den kan utsträckas för att beskriva de flesta traditionella processorer. AMD-kretsarna gav en 4-bitars dataväg som kunde kedjas samman. Andra chips i familjen kunde hantera minnet (inklusive, valfritt, DMA) och sköta bokföringen mellan skivorna. Du kan bygga en 8-bitarsmaskin med två skivor, en 24-bitarsmaskin med tre, och så vidare.

Detta tillät inte bara färre IC:er än att använda konventionella chips, det tillät också bipolär logik som - särskilt på den tiden - var snabbare men inte lika tät som NMOS eller CMOS. Chips som AM2900-familjen låter dig skapa flexibla processorer. De passade din applikation och körde snabbt jämfört med vad du kanske skulle kunna göra med andra metoder.

Mikrokodning

Mikrokod är vanligt i många processorer, och bitslice processorer var inget undantag. Till exempel kan du ha en mycket lång mikrokodinstruktion där varje register har en separat läs- och skrivrad. Om du hade åtta register, är det 16 bitar bara i dessa kontroller. Då kanske du också har en funktionskod (4 bitar) och en bit som indikerar om villkorskoderna ska uppdateras. Nu är varje "instruktion" 21 bitar. Det är längre än du vill ha för, säg, en 8-bitars maskin, så du definierar instruktioner som exekverar mikrokod.

<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 av 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 av AM2901

Till exempel kan en instruktion att lägga till register A till register B och lämna resultatet i B ha tre mikrokodsteg. Den första skulle grinda register A och B till databussen och hävda koden som får ALU att lägga till. Sedan skulle den andra instruktionen lägga resultatet på databussen och beordra B-registret att läsa databussen. Den sista mikrokodsinstruktionen skulle hoppa till huvuddelen av mikrokoden som läser nästa instruktion och fortsätter programmet.

Det är så du vanligtvis designar en bitslice-CPU. En AM2909, AM2910 eller AM2911 (mikroprogramsekvenserare) skulle adressera ett mikroprogramlager-ROM, som skulle mata kommandon till en array av AM2901-chips. 40-stifts AM2901 kom i flera varianter (t.ex. AM2901B) som var och en har tekniska förbättringar för att göra dem mindre och snabbare.

Mikroprogramlagret skulle sedan orkestrera hämtning av instruktioner och deras exekvering. Förmodligen var mikroprogrammet relativt litet jämfört med den riktiga programvaran, så ditt ROM med mikrokoden kan vara mindre än ROM:et som innehåller din faktiska applikation.

Samarbete

Naturligtvis kan du inte göra allt bara genom att lägga till ytterligare ett chip. De måste samarbeta. Till exempel finns det en F-utgång på varje chip som är öppen kollektor. Man knyter ihop alla F-utgångar med ett pull-up-motstånd. Om någon CPU-skiva har ett resultat som inte är noll, kommer det att dra ner F-utgången. Därför, om F-utgången är hög, måste hela resultatet (hur många bitar det än må vara) vara noll.

Att hantera bär är också ett problem. Om din första skiva lägger till 1111+0001 är svaret inte riktigt 0000. Det är 0000 + en carry. Du kan helt enkelt koppla upp varje Cn+4-utgång till nästa chips Cn-ingång för att få ripple carry, men det kommer att skapa en hastighetsstraff som blir värre när du lägger till skivor. Du kan också använda en AM2902 för att "se framåt" för bättre prestanda. Varje 2902 kunde hantera fyra skivor eller 16 bitar. Om du ville gå längre än så kunde du använda en AM2902 för att se framåt efter ytterligare fyra AM2902:or, som var och en hanterade fyra CPU-skivor. Förmodligen skulle det vara möjligt att utöka detta schema ytterligare om du ville gå längre än 64 bitar, även om det 1975 kanske inte var ditt största problem med att bygga en så stor maskin.

Förskjutning och multiplikation krävde också samarbete. Det var vanligt att använda en multiplexer i varje ände av kedjan för att bestämma källan till nya bitar vid växling. Det berodde bara på vad du behövde.

Anpassning

Det är en intressant sak med att använda bitskiva. Du kunde designa precis vad du behövde. Varför bygga en 32-bitars maskin om du behövde 24-bitar för uppgiften? Varför använda multiplexer för att aktivera en rotationsinstruktion som du aldrig kommer att använda?

Nuförtiden tar vi en byggsten och får den att passa vårt problem. Med bitslice gjorde du en CPU som passade precis vad du behövde. Det fanns många godbitar om hur man gör olika operationer som att hämta instruktioner, multiplicera eller bytebyte i AM2900 databok.

Den databoken visar också chipsen du behöver, som AM2902s eller 48-stifts AM2903 "Superslice" med utdragbara register, multiplikatorer, division och andra specialkretsar ombord.

evolution

AM2900-familjen var mycket framgångsrik. Den ursprungliga AM2901 började med en mycket stor stans med lågeffekts Schottky och kunde fungera på 80 nanosekunder. 1978 - tre år senare var AM2901B-matrisen mindre än hälften så stor och kunde hantera 50 nanosekunder. År 1981 använde AM2901C ECL internt och kunde göra 37 nanosekunder på samma dyna. År 1979 kunde du till och med få en flyttals-samprocessor (AMD9511).

Dessa var enkla enheter eftersom du behövde flera chips för att stödja det och flera AM2901:or för att göra något större än fyra bitar. Den ursprungliga AM2901, till exempel, hade bara 540 grindar ombord. Ändå hittade de in i allt från arbetsstationer och musiksyntar till tv-spel. På grund av deras popularitet fanns det många andra leverantörer för enheten, och det är fortfarande möjligt att hitta nya gamla lager. Det gjordes till och med sovjetiska kopior.

Mer Bitslice

Många av processorerna som tillverkades med AM2900 var proprietära eller militära. Men om du vill se en som har en bra bit av dokumentation, här är en magisteruppsats från 1980 om implementering av en Nova 1200-kompatibel CPU använda tekniken - ja, en del av en i alla fall.

AM2900 var inte det enda spelet i stan. 1974 fanns National Semiconductors IMP och Intels 3000-serie tillgängliga. Dessutom tillverkade Motorola, Texas Instruments, Fairchild, Raytheon och andra liknande enheter. Men av olika anledningar är AM2900 vad de flesta tänker på när de kommer ihåg bitslice-processorer. Faktum är att magisteruppsatsen om Nova CPU har också en tabell över annan bitslice-teknik och anledningen till att de inte använde någon av de andra. Till exempel använde några av enheterna PMOS, vilket var långsamt. Andra använde ECL, en snabb teknik med ett välförtjänt rykte om att vara svår att använda. Annan avhandling från 1976 har liknande logik för att välja AM2900.

Vill ha mer?

[Ken Shirriff] tog isär en ECL-variant av AM2901. Det finns också en bok från 1980 du kan läsa. Det finns också massor av dokument på en Gopher-server (skojar inte). Om din webbläsare inte hanterar Gopher – och det kommer inte att förvåna oss – prova en av de många Gopher proxyservrar. Exemplet med 16-bitars datordesign är särskilt värt en titt. Vill du ha ett mer komplext exempel? Här är en blixtsnabb 8080 CPU byggd med bitslice. Över på hackaday.io, [zpekic] byggde nyligen denna 8080 och körde en liten Basic på den (se videon om du inte tror det).

[Inbäddat innehåll]

Xerox Star 8010 använde AM2900 1981. Kostar mindre än $17,000 XNUMX! Lyckligtvis kan du emulera en om du vill. För den delen kan man liksom emulera AM2900 använder Java, även om det kanske inte fungerar för alla möjliga design (tips: ladda ner från utgåvorna).

plats_img

Senaste intelligens

plats_img