De eerste computers
HCF: Halt & catch Fire!
Histechniek
Servers » TechTalk » Historisch perspectief » Halt & Catch Fire

Mnemonic HCF

-

-

Lees ook de natuurkundige uitleg van ringkerngeheugen.

De eerste computers hadden instrukties (opkodes) die uit één woord bestonden: de eerste nibble (halve woord) diende voor het soort operatie (optellen, lezen, vergelijken,...) de tweede nibble voor het soort operand: immediate, direct geadresseerd, register-geadresserd, enz.

Het is natuurlijk zo dat niet alle combinaties zinvol waren: bepaalde opkodes bestonden niet. Deze onbestaande opkodes werden tijdens het ontwerp gebruikt om het systeem te testen (we zitten nu echt in de begintijd van de computers). Een opkode diende bijvoorbeeld om alle geheugenplaatsen één voor één te lezen (wat een heel nuttige testfunktie was om kortsluitingen en defekte geheugencellen te detecteren). Eén opkode fungeerde als self repeat, een instruktie die zichzelf herhaalt tot de stroom afgelegd wordt (een beetje zoals een bekraste plaat of CD).

Hexadecimale opkodes kregen een mnemonic, dat wil zeggen een naam die gemakkelijk te onthouden was: ADD (optellen), JMP (jump) enz. Programmeurs hoefden dan niet core dumps te ontcijferen, maar konden werken met een listing bestaande uit mnemonics en operanden (assembler), de voorloper van alle progremmeertalen.


Ferrietkralen vormen het kerngeheugen


De kralen worden in een houder gespannen


en de houders worden gestapeld

De eerste computers gebruikten woorden die niet noodzakelijk 8 bits breed waren zoals bij de huidige computers: 13, 14 of 16 bits brede woorden waren niet ongewoon. Het gebruik van langere woorden had als voordeel dat er meer data simultaan verwerkt kon worden (de databus is namelijk even breed als de woorden). De benaming byte wordt tegenwoordig gebruikt in plaats van woord en is een veelvoud van 8 bits: de kleinst mogelijke adresseerbare eenheid. Moderne computers gebruiken pipelining: 32 bits (of 64, of 128) worden in één keer ingelezen door de processor, zelfs al zijn er maar 16 bits nodig. Bij sequentiële verwerking zijn deze extra bits misschien nodig in een volgende stap, en dan moeten ze niet meer opgevraagd worden.

In die eerste computers werkte men met kerngeheugen, kleine ferrietkraaltjes die de informatie in magnetische vorm opslaan. Door iedere ferriet lopen er vier draden: twee selectiedraden (X en Y, horizontaal en vertikaal), een leesdraad (Sense, diagonaal) en schrijfdraad (Inhibit, samen met de X-draad). Latere systemen konden de Sense en Inhibit draad tot één draad combineren. Bij het lezen stuurt men een schrijfstroom door de X en Y draden, en de ferriet die op de kruising zit ontvangt een magnetische stroom die juist groot genoeg is om de magnetisatie te doen veranderen. Deze verandering van magnetisatie kan door de leesdraad opgevangen worden. Na het lezen moet de data opnieuw geschreven worden, want het lezen is destructief. Meer informatie over de werking van kerngeheugen staat hier.

Een ferrietkraal = 1 bit. De houder links in beeld heeft een capaciteit van 30 * 30 bits. De houders worden dan gestapeld, men vormt stapels die de breedte van de databus van de processor hebben (in dit voorbeeld 13 bits). In de hoogtijdagen van het kerngeheugen kon men tot 1000 bits per kubieke centimeter stapelen! De stuurelectronika nam echter heelwat meer ruimte in beslag. Een mainframe had maximaal 600 kilobit werkgeheugen, en daarvoor had je een kast nodig ter grootte van een koelkast.

Kerngeheugen moest manueel gefabriceerd worden (men gebruikte in de begintijd naaisters die door de mechanisatie ontslagen werden). 1 bit kostte in die tijd 10 dollarcent om te produceren! Kerngeheugen werd gebruikt tot ver in de jaren '70, tot het ontstaan van CMOS IC's. De Apollo landingsmodule gebruikte een vluchtcomputer met een kerngeheugen van 4k en 4100 enkelvoudige IC's (nor gates).

Nu is het zo dat de lees- en schrijfdraden extreem dun waren. De schrijfstroom moet zeer hoog zijn, 400mA, want de draad vormt geen wikkeling rond de ferrietkraal (het “lezen” gebeurt door het schrijven van een nul en het meten of de magnetisatie in de ferrietkraal omgepoold werd).

Bij normaal gebruik wordt de geproduceerde warmte over een groot aantal draden verspreid en kan het afgevoerd worden door natuurlijke convectie. Bij de instructie hierboven (self repeat), waarbij telkens dezelfde opdracht uitgevoerd wordt, raken de enkele draden die gebruikt worden oververhit. En als de draden niet oververhit geraakten, dan gaan de stuurtransistoren stuk na een paar seconden. Deze germaniumtransistoren zijn immers berekend op een duty-cycle die onder de 1% ligt, waardoor de warmte die tijdens een aktieve cyclus geproduceerd wordt, gedissipeerd kan worden tijdens de niet-aktieve cycli.

Het heeft niet lang geduurd of deze gevaarlijke instructie de mnemonic HCF kreeg: Halt and Catch Fire (link naar Wikipedia Engels). Van zodra de processor in productie werd genomen werden deze gevaarlijke testfunkties verwijderd en vervangen door een NOOP: No Operation. De franstalige HCF pagina is duidelijker.

Het onstaan van de HCF mnemonic heeft geleid tot een hele reeks afgeleide opdrachten, en het heeft niet lang geduurd of humoristen eigen processoren ontwikkeld hebben met heel vreemde instructiesets...


Vista heeft 1 GB aan werkgeheugen nodig om te kunnen opstarten (1.073.741.824 bytes). Dit komt overeen met 1500 kasten kerngeheugen (10 containervrachtwagens). Deze computers hadden een rekensnelheid van 1 miljoen instructie per seconde (voor de snelste computers uit die tijd). Een moderne huiscomputer is minstens 10.000 sneller. Onze Apollo vluchtcomputer uit 1970, die probleemloos de raketten voor de maanlanding kon besturen, heeft nu 10 vrachtwagens kerngeheugen nodig (duizend kubieke meters) en 34 dagen nodig om Vista op te starten!

Je merkt pas hoe ingrijpend de technologische evolutie is gegaan, als je kerngeheugen vergelijkt met de moderne geheugenkaarten. Op de achtergrond heb je 8 bytes kerngeheugen (8×8 ferrietkralen), op het voorplan een micro-SD geheugenkaart met een capaciteit van 8GB. Dat is niet duizend maal meer (kilo), dat is niet een miljoen meer (mega), maar een miljard meer (giga) opslagruimte, en dit op een oppervlakte van 5.0 × 11.0 × 1.0 mm.

Meer fotovoorbeelden van kerngeheugens is te vinden op de pagina van het museum van de Koninklijke Hoogovens (nu Tata Steel) in Ijmuiden.

Publicités - Reklame

-