Mnemonic HCF
-
Lees ook de natuurkundige uitleg van ringkerngeheugen.
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.
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...
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