← laboratuvar · donanım vaka incelemesi

Çekirdek İp Belleği
(Core Rope Memory)

1969. Üç kişiyi bir kutuya koyup Ay'a gönderiyorsun. Kutudaki bilgisayarın programı sekiz gün boyunca hiç değişmeyecek — ne fırlatmanın sarsıntısı, ne kesilen bir besleme, ne de yanlış çalışan bir satır tek bir biti bozabilecek. Soru şu: bir programı, hiçbir şeyin üstüne yazamayacağı bir yere nasıl yazarsın?

Cevap, programı elektrikte hiç tutmamak oldu. Program bir şekle yazıldı: ince bir tel, küçük bir halkanın içinden geçiyorsa bir şey, etrafından dolanıyorsa başka bir şey demekti. Sonra o teller elle dokundu. Kod, kelimenin tam anlamıyla dokunmuştu.

Aşağıda o dokumayı parça parça kuracaksın: önce tek bir halka, sonra bir kelime, sonra ipin kendisi. Hiçbir sayı sistemi ön bilgisi gerekmiyor — gerekeni yeri geldiğinde kuracağız. Acele etme.

Bellek dediğimiz şey normalde elektriktir. Bir yerde bir gerilim tutulur, o gerilim 1 demektir; kesilirse 0 olur, ya da hiç olur. Böyle bir belleğin iki huyu vardır: enerji gidince içindekini unutur, ve üstüne yazmak dünyanın en kolay işidir.

Yerde bu sorun değil. Bozulursa yeniden yükle, geç. Ay yolunda yeniden yükleyecek kimse yok, yükleyecek disk de yok. İniş yordamının, motor yanarken kendi kendine değişmemesi gerekiyordu.

Peki bir biti, üstüne yazmanın fiziksel olarak mümkün olmadığı bir yere nasıl koyarsın?

Şöyle: hiç enerjiyle tutma. Bir karar ver, o kararı bir telin izlediği yola işle, sonra teli oraya dik. Değiştirmek için elektrik değil, makas gerekir.

Ödenen bedel: bu belleğe yazamazsın. Bir kez dokunduktan sonra yalnızca okunur. Bugün buna ROM diyoruz (İngilizce read-only memory — "sadece-oku belleği"). Çalışırken değişmesi gereken sayılar — hız, açı, sayaçlar — AGC'de bambaşka, silinebilir bir bellekte durur. İp yalnızca programı ve değişmeyen sabitleri taşır.

Elinde küçük bir halka var. Ortası delik, kendisi mıknatıslanabiliyor — ama tanıdığın mıknatıs gibi değil.

Şöyle düşün: halkanın çevresi tek yönlü bir döner kavşak. Bütün trafik ya saat yönünde akar, ya tersine. İkisinin arası yok, ve dışarıdan sert bir itiş gelmedikçe yön hiç değişmez — fişi çeksen de değişmez, on yıl beklesen de.

Bir de ince, yalıtımlı bir telin var. Tel için tam olarak iki seçenek var: halkanın deliğinden geçer, ya da halkanın dışından dolanıp gider. Ortası yok — ya içeriden, ya dışarıdan.

içinden geçiyor
etrafından dolanıyor

Hepsi bu. Saklanan şey bu.

Sıradan bir ayrım gibi görünüyor. Değil. Bu sayfanın bütün fikri burada: bilgi halkanın içinde durmuyor. Halka boş; içine yazılmış bir işaret, tutulmuş bir yük, saklanmış bir sayı yok. Bilgi telin yolunda duruyor — ve tel bir kez o yoldan geçtikten sonra onu değiştirmenin yolu ipi sökmektir.

Benzetmenin sızdığı yeri kapatalım: buzdolabı mıknatısındaki gibi bir kuzey ucu, bir güney ucu arama. Buradaki yön halkanın çevresinde dolanıyor, uçlarda değil — kavşak benzetmesinin tuttuğu tek yer de bu.

Halkanın malzemesini merak ettiysen: AGC'nin ip çekirdekleri ince manyetik şeridin sarılmasıyla yapılmıştır — aşağıdaki fizik paneli o yüzden "bant sarımlı" diyor. Makinenin silinebilir belleğindeki çekirdekler başka türden. Şimdilik önemli olan halkanın neden yapıldığı değil, deliği.

Peki bir yol nasıl okunur? Teli gözle takip edecek hâlimiz yok — makinenin bunu elektrikle sorması lazım.

Sorma şekli şu: halkanın mıknatıslanmasını bir anda ters çevir. Trafiği tersine akıt. Bunu yapan şey kısa ve sert bir akım itişidir; adı darbe (İngilizce pulse — "vuruş"). Darbeyi taşıyan ayrı bir tel vardır; okuma telleri hiçbir şey sürmez, sadece dinler.

Halkanın deliğinden geçen tel o dönüşü üstünde hisseder: telde bir anlık gerilim tıkı belirir. Halkanın dışından dolanan tel hiçbir şey hissetmez, hattı sessiz kalır.

Değişim varsa ses var. Değişim yoksa sessizlik. Bu yüzden okumanın kendisi iki adımlıdır: önce bir darbe halkayı bir yöne sabitler, sonra ikincisi ters çevirir; bitler o ters dönüşte okunur. Halkada saklanan bir şey olmadığı için okumak hiçbir şeyi silmiyor — yol yerinde duruyor.

İki telin birbirine hiç değmediğine dikkat et. Halka aracılık ediyor: biri onu çeviriyor, öbürü çevrildiğini duyuyor. Değişimi duyan bu tellere belgelerde sense teli denir (İngilizce sense wire — "sezme teli"). Ve buradan sayfanın en ters cümlesi çıkıyor: çekirdek bir hafıza hücresi değil, bir transformatördür. Şarj aletinin içindeki küçük kutu da aynı fikri kullanır — bir taraftaki değişim, ona hiç değmeyen öteki tarafta gerilim doğurur. Halka bir bit tutmuyor; sadece bir haberi, kendisinden geçen herkese aynı anda duyuruyor.

tel delikten geçiyor → 1
tel etrafından dönüyor → 0
sürücü (set/reset) hattı

Burada bir kelime var: tek bir çekirdek ve deliğinden geçen ya da etrafından dönen on altı tel. Her tel kendi dilimine sahip olduğu için hiçbir bit deseninde birbirlerini kesmezler — soldan sağa dizseydik keserlerdi.

Ama şunu açıkça söyleyelim: bu bir şema, fotoğraf değil. Doğru olan kısım fizik — bit telin yolunda saklanıyor, çekirdek bir transformatör. Yerleşim ise çizim kolaylığı için seçildi. Gerçekte teller ışın gibi dağılmaz ve delikte U dönüşü yapmaz: düz geçer ve sıradaki çekirdeğe devam eder. Buradaki U, telin halkaya bağlanıp bağlanmadığını tek karede göstermenin yolu.

Gerçek modülün düzeni cordwood — odun istifi gibi, çekirdekler iki plaka arasında sıralı, teller aralarından demet halinde geçiyor. Bir modülde 512 çekirdek ve 192 sense teli var; yani buradaki bir çekirdek 12 kelimeye birden hizmet eder ve buradaki bir tel yüzlerce çekirdeğin arasından dolanır. Ölçeği birazdan konuşacağız.

Düğmeye basınca çekirdeğin mıknatıslanması bir anda ters döner — halkayı saran parlama ve dışarı açılan halka bu. Deliğinden geçen her tel o dönüşü aynı anda duyar; etrafından dönenler hiçbir şey duymaz. Aşağıdaki on altı iz aynı zaman eksenini paylaşıyor.

Dikkat: bütün dikenler aynı dikey çizgide. Bir kelimeyi okumak tek bir olaydır, bir tarama değil — bitlere sırayla bakılmaz, hepsi aynı anda konuşur.

01

Okuma iki fazlıdır: önce reset darbesi çekirdeği bir yöne doyurur, sonra set darbesi ters yöne çevirir. Bit, akının bu tam ters dönüşünde okunur — ΔB = 2·Bsat dediğimiz şey bu.

02

O çekirdekten geçen her sense teli bu değişimi aynı anda görür. Kelimenin bütün bitleri paralel okunur — sırayla değil. Bir kelimeyi okumak tek bir olaydır, bir tarama değil.

03

Tel çekirdeğin dışından dolaşıyorsa hiçbir bağlaşım oluşmaz, sense hattı sessiz kalır — bu da 0 olarak okunur.

04

Çekirdek bir hafıza hücresi değil, bir transformatördür. Bit çekirdeğin içinde saklanmıyor — telin çekirdekten geçip geçmemesinde saklanıyor. R-700 çekirdekleri zaten böyle tarif ediyor: "of the transformer type."

Yukarıdaki çizimde iki ad gördün: 1 ve 0. Şimdi nereden geldiklerini söyleyelim. Telin geçtiği hâle 1, dolandığı hâle 0 diyoruz. Bir telin taşıdığı bu tek karara bit denir: bilgisayardaki en küçük bilgi parçası, ya bu ya o.

Bu adlandırma keyfî. Tersini de seçebilirdik, makine umursamazdı. Serinin ilk dersindeki cümleyi hatırla: tel, "1" taşıdığını bilmez. Anlamı biz veriyoruz.

Tek tel tek karar taşır — çok değil. Yan yana dizince iş değişir. Jeton diliyle düşün: her tele bir değer biç. En sağdaki 1'lik, solundaki 2'lik, onun solundaki 4'lük, sonra 8'lik; her adımda iki katı. Bir tel demetinin söylediği sayı, 1 olan tellerin değerlerinin toplamıdır.

Ekrandaki 000 000 000 000 110 için bu toplam 4 + 2 = 6. Daha kalabalık bir örnek: 000 001 010 000 010 deseni 512 + 128 + 2 = 642 eder. On beş tel yan yana geldiğinde 0 ile 32.767 arasında istediğin sayıyı yazabilirsin. İşte bu kadar.

Makine tellere tek tek bakmaz. Sabit sayıda teli tek demet olarak alır, tek seferde okur, tek parça olarak işler. Bu demetin adı kelime (İngilizce word — makinenin bir seferde ağzına aldığı lokma). AGC'de bir kelime 16 teldir.

On altı tel var, ama sayı on beşinde. On altıncı tel hiçbir sayı taşımaz.

Neden? Çünkü bozuk bir kelime de gayet geçerli bir kelimedir. Bir tel yanlış halkadan geçmişse ortaya çıkan sayı hâlâ kusursuz bir sayıdır — yanlış olduğunu sayının kendisine bakarak anlayamazsın. Sessizce yanlış olan bir bellekten kötüsü yoktur. Makinenin "bu bozuk" diyebilmesi için sayıya dışarıdan bir tanık lazım.

Bir de şu var: bu tellerin her biri elle dokunuyor. Tek bir modülde yüz bine yakın "geçsin mi, dolansın mı" kararı var ve teli halkadan geçiren el insan eli. Tanık, süs değil.

On altıncı tel o tanık. Donanım onu, kelimedeki 1'lerin toplam sayısı her zaman tek kalacak biçimde seçer. Okurken makine 1'leri sayar: tek çıkıyorsa devam eder, çift çıkıyorsa ortada bir bozukluk var demektir. Bu tele parite biti denir (İngilizce parity — "tek-çiftlik").

Yaptığı iş düzeltmek değil, yakalamak. Dürüst olalım: aynı kelimede iki tel birden ters dönerse toplam yine tek kalır ve parite hiçbir şey fark etmez. Tek hatayı yakalar, ikisini değil; nerede olduğunu da söylemez. Yazılım bu tele dokunamaz — o, donanımın kendi denetçisidir.

Sayıları baştan tutturalım: yukarıdaki çizimde çekirdekten 16 tel geçiyor, aşağıdaki okumada 15 karakter var. Çelişki değil — 15'i veri, 16'sı parite. Çizimde parite telinin kesik çizgili olmasının ve tıklanmamasının sebebi bu: onu sen değil, donanım belirliyor. Herhangi bir veri teline dokun, P'nin onunla birlikte döndüğünü göreceksin.

000 001 010 000 010
Oktal: 01202 Ondalık: 642 İşaretli: +642 Parite: 0

Bitler üçerli gruplanıyor ve yanında dört sütun var. Dördü aynı işi yapmıyor: üçü aynı on beş telin üç ayrı okunuşu, biri hiç okunuş değil. Hangisinin ne olduğu ve neye yaradığı hemen aşağıda — sırayla.

Yukarıdaki kutuda dört sütun var: oktal, ondalık, işaretli, parite. Bunlar dört ayrı bilgi değil. İlk üçü aynı on beş telin üç ayrı okunuşu; dördüncüsü okunuş bile değil. Sırayla — ve her biri hangi derde çare, onunla birlikte.

Ondalık — senin için var. 000 001 010 000 010 yazısı makineye her şeyi söyler, sana hiçbir şey söylemez: bu sayı büyük mü, küçük mü, geçen seferkinin iki katı mı? Ondalık okunuş bunu tek bakışta veriyor: 642. Makineye zerre faydası yok. Zaten makine için yazılmadı.

Oktal — programcı için var. Sebebi estetik değil, pratik: on beş biti telefonda söylemek, deftere yazmak, yüz sayfalık bir listede gözle aramak zorundasın. On beş tane sıfır-bir bu işlerin hiçbirine gelmez.

Bitleri üçerli grupla. Üç telin söyleyebileceği en büyük sayı 4 + 2 + 1, yani 7 — demek ki her üçlü, 0 ile 7 arasında tek bir rakam eder. On beş üçe tam bölündüğü için elinde tam beş rakam kalır: 01202. Tabanı sekiz olan bu yazımın adı oktal (İngilizce octal — "sekizlik"); içinde 8 ve 9 rakamı yoktur, çünkü üç tel yediden fazlasını söyleyemez. En güzel yanı, çevirme diye bir işin olmaması: üçlüye bak, rakamı yaz; rakama bak, üçlüyü yaz. Gözle gidip gelirsin.

Peki neden bugün her yerde gördüğün onaltılık değil? Onaltılık bitleri dörderli ister. On beş, dörde bölünmez — sonda kırık bir grup kalır. AGC belgelerinin ve bu sayfadaki bütün sayıların sekizlik olmasının sebebi bu kadar sıradan.

İşaretli — eksi sayılar için var. Telin eksisi yoktur: halka ya bu yöne döner ya şu yöne, "eksi yön" diye üçüncü bir hâl yok. O zaman eksiyi de tellerle anlatman gerekiyor. AGC'nin çözümü: en soldaki tel işareti söyler — 0 ise artı, 1 ise eksi. Bir sayının eksisini yazmak içinse bütün tellerini terslersin: geçenler dolanır, dolananlar geçer. Bu kadar. En soldaki de terslendiği için işaret kendiliğinden düzeliyor; ayrıca uğraşmıyorsun.

Neden bu yol? Çünkü donanımdaki bedeli neredeyse sıfır — bir sayıyı eksiye çevirmek, her telin okumasını ters çevirmekten ibaret. Bunun adı birler tümleyeni (İngilizce ones' complement — "birlere tümleme"). Bedel tek bir yerde çıkıyor: sıfırın iki yazılışı oluyor. Hepsi sıfır olan 00000 artı sıfır; onu terslediğinde çıkan 77777 eksi sıfır.

Parite — ve dördüncü sütun sıradan çıkıyor. Parite bir okunuş değil; aynı sayının başka bir yazılışı değil. Sayının kendisiyle hiç ilgisi yok, sadece on altıncı telin ne durumda olduğunu söylüyor. Diğer üçü "bu sayı kaç?" sorusunun cevabı. Bu, "bu kelime sağlam mı?" sorusunun. Üç okunuş, bir denetçi.

Bu çiplerin hepsi Apollo 11'in Ay Modülü uçuş programından — gerçekten dokunmuş kelimeler. 00000 artı sıfır, 77777 eksi sıfır; ikisi de kaynak kodda ZERO ve OCT -0 diye geçiyor. Yanlarındaki kısaltmalar (EXTEND, CA, TCF) sayı adı değil, komut adı — ne oldukları hemen aşağıda.

Çünkü ipteki kelimelerin hepsi sayı değil. Bir kısmı işlemciye ne yapacağını söyler — bunlara komut denir (İngilizce instruction — "buyruk").

AGC'nin bunun için seçtiği bölüşme şu: bir kelimenin en soldaki üç teli ne yapılacağını, kalan on iki teli neye yapılacağını söyler. Üç tel sekiz farklı emir yazmaya yeter. On iki tel de bir adres yazar — ipteki bir kelimenin sıra numarası.

Programcılar bu emirleri numarayla değil kısaltmayla yazar. TC (transfer control) düz Türkçesiyle "oraya git" demek. TCF (transfer control to fixed) aynı işin sabit hafızaya giden türü. CA (clear and add) "şu kelimeyi al, elindekinin üstüne yaz". EXTEND ise tek başına duran bir emir: "sıradaki kelimeyi başka bir komut tablosuna göre oku" der — sekiz emir yetmediği için var.

Yukarıdaki 13247 — TCF/BZF çipinin iki isimli olmasının sebebi tam da bu. Aynı on beş tel deseni, önünde EXTEND varsa bir komut, yoksa başka bir komut olarak okunuyor. Aynı teller, aynı desen, aynı halkalar.

Yani bir kelimeye bakıp hangisi olduğunu anlayamazsın. 01202 yazan on beş tel, sayı olarak 642'dir; emir olarak okunursa "1202 adresine git" demektir. Hangisi olduğuna karar veren şey kelimenin kendisi değil — az aşağıda göreceğin gibi, işlemcinin oraya neden baktığı.

On iki telin yazabildiği en büyük adres 4095. İpte 36.864 kelime olduğuna göre bu yetmiyor — geri kalanına nasıl ulaşıldığı ayrı bir hikâye (banka anahtarlama) ve bu sayfanın konusu değil. Burada bilmen gereken tek şey, on iki telin bir adres yazdığı.

1202 numarası bu sayfada boşuna durmuyor: Apollo 11 Ay'a inerken ekranda beliren alarmın numarası buydu. Bilgisayarın "elimdeki iş bana fazla geldi" deme biçimiydi — düşük öncelikli işleri bırakıp kendini toparladı, iniş devam etti.

temel küme EXTEND
EXTEND'den sonra READ CH06

İki satır da aynı on beş teli okuyor. Aradaki fark kelimede değil: makine bir önceki kelimeyi EXTEND olarak gördüyse alt satırı, görmediyse üst satırı uygular. Yani bir kelimenin anlamı, o kelimenin bir özelliği bile değil — komşusuyla birlikte belirleniyor.

Yukarıdaki halkalardan herhangi birine dokun ve iki satırın birden değiştiğini gör. Her on beş bitlik dizi geçerli bir komuta çözülür — rastgele bir desen bile. Makinenin elinde "bu veri, şu komut" diye bir işaret yok; sadece Z'nin nereyi gösterdiği var.

Şimdiye kadar tek bir kelimeye baktın: on altı tel, bir sıra halka. Bir modülde bu kelimelerden binlercesi var — ve hepsi aynı halkaları kullanıyor.

Tek bir tel modülün içinde tek bir halkada durmuyor. Bütün halka dizisinin arasında dolaşıyor; kimisinin içinden geçiyor, kimisinin dışından. Yanındaki tel aynı halkaların arasından bambaşka bir yol izliyor. Yüzlerce tel, aynı halkaların arasında, birbirinin altından üstünden geçe dolana örülüyor.

Bitmiş hâline bak: örülmüş, sıkışmış, elle tutulacak kalınlıkta bir demet. Halat gibi duruyor. Adı buradan geliyor — core rope, çekirdek ipi.

Ölçek şu: tek bir halkadan 192 tel geçiyor, yani o tek halka on iki ayrı kelimeye birden hizmet ediyor. Altı modül yan yana konduğunda AGC'nin bütün sabit hafızası çıkıyor — 36.864 kelime.

Bu yüzden "bir çekirdek = bir bit" cümlesi bu bellek için yanlıştır. Halka bir hücre değil, ortak bir transformatör: aynı halkanın dönüşünü 192 tel birden duyar, her tel kendi kelimesindeki kendi bitini alır. Yukarıdaki çizimde gördüğün tek çekirdek ve on altı tel, bu yapının bir kelimelik dilimi — ölçek dışında doğru resim o.

Dokuma yarı otomatikti: delikli bir mylar örgü bandı makineyi sürüyor, makine kılavuzu doğru halkanın önüne konumlandırıyor, teli geçirme ya da dolandırma kararını operatör elle uyguluyordu. Bitmiş modül ikinci bir bantla — denetim bandı — baştan sona doğrulanıyordu. Bu doğrulamadan sonra program artık yazılım değildi; bir nesneydi.

Sayfanın başındaki soru buydu. Cevabı bu.

Yukarıdaki çizim bir çekirdeğe bakıyordu: bir halka, on altı tel. Şimdi dik açıdan bakalım — tek bir teli tut ve modülün içinde nereye gittiğini izle.

Tel tek bir halkada durmuyor. Sıradaki halkaya gidiyor, ondan sonrakine, ondan sonrakine. Her birinde yeniden aynı karar veriliyor: içeriden mi, dışarıdan mı. Yanındaki tel aynı halkaların arasından bambaşka bir yol izliyor.

Gerçek modülün düzenine cordwood deniyor — odun istifi gibi, çekirdekler iki plaka arasında sıralı, teller aralarından demet halinde geçiyor.

Bakır kuşak tel demetinin tamamı; içinden üç tanesini ayırıp çizdik ki demetin tellerden ibaret olduğu görünsün. Üçünün de aynı çekirdeklerden geçtiğine ama farklı yollar izlediğine dikkat et.

Ölçek şöyle çıkıyor:

1 çekirdek = 192 tel = 12 kelime · 1 modül = 512 çekirdek = 6.144 kelime · AGC = 6 modül = 36.864 kelime

Yoğunluk yaklaşık 1500 bit/inç³ — aynı dönemin silinebilir çekirdek belleğinin beş katı. Bütün fark, aynı halkayı 192 kez kullanmaktan geliyor.

İpin asıl icadı burada, ve ters çalışıyor.

Bir kelimeyi okumak için tek bir çekirdeği çevirmen lazım. Ama sürücü akımı seçici değil — 128 çekirdeği birden çevirmeye kalkıyor. Seçimi yapan şey, istediğini kurmak değil: istemediklerini engellemek.

Her çekirdekten, sürücü telinin yanı sıra engelleme (inhibit) telleri de geçiyor. Bunlar çiftler halinde: her adres biti için bir çift, ve çiftin biri o biti 0 olanlardan, diğeri 1 olanlardan geçiyor. Bir adres seçmek istediğinde, her bit için eşleşmeyen tarafı beslersin. Geriye tek bir çekirdek kalır — hiçbir engellemeye yakalanmayan.

Aşağıda üç bitlik küçültülmüş hali var: sekiz çekirdek, üç engelleme çifti. Bitleri çevir ve hangisinin ayakta kaldığını izle.

adres:

Kırmızı hatlar beslenen engelleme telleri, kırmızı × ise engellenmiş çekirdek. Yeşil olan tek çekirdek adreslenen kelimeyi taşıyor. Sekiz adres için üç çift yetiyor; gerçek AGC modülünde sekiz çift var — yedisi 128 çekirdeği ikiye bölerek seçiyor, sekizincisi adres paritesi, yani bilerek fazladan. Seçilmeyen her çekirdek en az iki ayrı engelleme sinyali alsın diye.

Bunun neden zekice olduğunu görmek için tersini düşün: her çekirdeğe ayrı bir seçme teli çekseydin, 512 çekirdek için 512 tel gerekirdi. Engellemeyle on altı tel yetiyor.

Bir kelime tek başına bir şey değil. İpte 36.864 kelime var ve her birinin bir numarası — bir adresi — var. Bellek ancak birinin sorduğu şey olarak anlam kazanır.

Soran şey işlemci. Ve şaşırtıcı biçimde, akışı sürdürmek için tuttuğu tek şey şu: sıradaki kelimenin adresi.

Z 03250 AGC'nin program sayacı. İçinde sıradaki kelimenin adresi durur. Kendisi de bellekte, 05 numaralı gözde — yani kayıt dediğimiz şey de bir adres.

İşlemcinin bütün işi dört adımın tekrarıdır: adresi al, ipten kelimeyi getir, ne dediğini çöz, yap. Yukarıdaki dört kutu tam olarak bu. Bu dört adımlık tura çevrim denir (İngilizce fetch–execute cycle — "getir-yap döngüsü") ve bir bilgisayarın açık olduğu sürece yaptığı tek şey budur. AGC bunu saniyede on binlerce kez döndürüyordu; aşağıdaki düğme sana bir turu, tek tek yaptırıyor.

Basmadan önce ne olacağını söyleyelim. Z'nin gösterdiği adresteki kelime getirilir, çözülür, yapılır; sonra Z ya bir artar ya da emrin söylediği adrese atlar. Bir basış = bir tur. Ekranda Z'nin sayısı ve dört kutunun içindekiler değişir — başka hiçbir yer kımıldamaz. Yukarıdaki halkaların kendi düğmesi var, bu düğme onlara dokunmuyor.

Hiçbir şeye dokunmadan üç kez bas: Z'nin 03251, 03252, 03253 diye ilerlediğini göreceksin — program satır satır akıyor. Sonra yukarıdaki hazır örneklerden 13247'yi seç ve tekrar bas: Z geriye, 03247'ye sıçrar ve orada kalır. 01202 seçiliyken ise ilk basıştan sonra ekranda hiçbir şey değişmez — bozuk değil: o kelime kendi adresine gitmeyi emrediyor, makine sonsuza kadar aynı yerde dönüyor. En dar döngü budur. Dallanma ayrı bir mekanizma değil — sadece son kutunun Z'ye yazması.

ÇÖZ kutusu yukarıdaki temel küme satırını gösteriyor — çünkü bu görünüşte bir önceki kelime yok, dolayısıyla EXTEND gelip gelmediğini bilemiyor. Gerçek makine bunu bilir; farkı yaratan tek şey de o.

Ve asıl mesele şu: ip, kendisine sorulan şeyin veri mi komut mu olduğunu bilmiyor. 77777 bir sabit — eksi sıfır. Ama Z oraya işaret ederse getirilir, çözülür ve yapılır. Hangisi olduğuna karar veren tek şey, Z'nin nereyi gösterdiği.

Tasarımın başında bir tahmin yapılmıştı: 4.000 kelime yeter. Uçan ipte 36.864 kelime vardı — dokuz katı. Ve yine sığmıyordu.

Sıradan bir bilgisayarda bunun çaresi bellidir: kodu küçült, sıkıştır, gerekirse diskten parça parça yükle. Burada hiçbiri yok. İp dokunduğu anda boyutu kesinleşiyor: 98.304 karar, ne bir eksik ne bir fazla. İpin içinde sıkıştırma yapılamaz.

O zaman tek bir yer kalıyor: ipe girmeden önce.

Ve tam olarak bu yapıldı. AGC'nin güdüm ve seyrüsefer kodu, bu sayfada gördüğün komutlarla yazılmadı. Daha yoğun, ayrı bir gösterimle yazıldı — ve onu çalıştıran şey, ipin içindeki başka bir program: yorumlayıcı (İngilizce interpreter — "çeviren").

Raporun kendi cümlesi bunu tereddütsüz söylüyor: bu gösterim "for economy of storage"yer ekonomisi için seçilmiş.

Bedeli de yazıyor: "a means of trading off execution speed against instruction repertoire." Yorumlayıcı her adımda önce ne yapacağını çözüyor, sonra yapıyor. Yani yeri zamanla satın alıyorsun. Kod küçülüyor, çalışması yavaşlıyor.

Bir kazanç daha var. Hatırlarsan, on iki telin yazabildiği en büyük adres 4095'ti ve ipte 36.864 kelime vardı — o boşluğu orada askıda bırakmıştık. Yoğun gösterim bunu da çözüyor: raporun deyişiyle tek bir kelimeden 32.768 adrese ulaşılabiliyor.

Yani AGC'nin içinde bir sıkıştırma algoritması var — ve o algoritma yorumlayıcının kendisi. Sıkıştırılan şey veri değil, programın kendisi.

Yer bu kadar sıkışıkken, ipin bir kısmının bilerek israf edildiğini söylesem?

Parite bunu yapıyor. Her on altı telden biri hiçbir sayı taşımıyor. Modül başına hesabı basit: 98.304 bitin 6.144'ü parite — kapasitenin tam 1/16'sı, yani %6,25'i. Yerin altın değerinde olduğu bir makinede, on altıda bir gönüllü olarak veriliyor.

Karşılığında alınan şey: tek bit hatasını yakalayabilmek. Yer ile güven arasında yapılmış, açık bir takas.

Bunun ikinci bir yüzü var ve daha ilginç. Tek parite kuralı, bir kelimenin on altı bitinin hepsinin birden 1 olmasını yasaklıyor. Demek ki bir çekirdekten geçen 192 tel, alabileceği her konfigürasyonu alamıyor:

Çekirdek fiziksel olarak 192 tel taşıyor ama yalnızca 180 bitlik özgürlüğü var. Aradaki 12 bit hiçbir şey saklamıyor — diğer 180'in bir fonksiyonu. Fazlalık dediğimiz şey tam olarak bu: yer kaplayan ama bilgi taşımayan bit.

Ve üçüncü bir yerde daha karşımıza çıkıyor. Adres çözücüde sekiz engelleme çifti vardı; yedisi 128 çekirdeği ikiye bölerek seçiyor, sekizincisi adres paritesi — yani bilerek fazladan. Seçilmeyen her çekirdek en az iki ayrı engelleme sinyali alsın diye.

Yani fazlalık bir yerde değil, üç yerde: sakladığın bitte, çekirdeğin alabileceği biçimde, ve adresi seçme yolunda. Üçünde de aynı takas — yerden veriyorsun, güvenden alıyorsun.

Sığmayan bir makinede bunları yapmak savurganlık değil. Ay yolunda bozuk bir kelimeyi fark etmemenin bedeli, altı bin bitten çok daha yüksekti.

Buraya kadar sinyalin var mı yok mu olduğuna baktık. Sıradaki soru büyüklüğü: o gerilim tıkı ne kadar? Bu bölüm cevabı vermiyor — neden veremediğimizi anlatıyor. İstersen atla; aşağıdaki hiçbir şey buna dayanmıyor.

EMF = N × Ae × ΔB / Δt
Faraday yasası — indüklenen gerilim, akının değişim hızıyla orantılıdır
Formül doğru. Ama AGC çekirdeği için bir sayı üretemiyoruz: bant sarımlı rope çekirdeğinin etkin kesit alanı Ae, hiçbir birincil kaynakta yok. Kaynaksız bir Ae ile hesaplanan her voltaj uydurmadır.
Bunun yerine: ölçülmüş değerler
silinebilir çekirdek bellek — ≈ 50 mV
R-700 Cilt III, s. 87, birebir: "The output signal from the memory cores has an amplitude of about 50 millivolts."
core rope — tartışmalı
Aynı NASA çizimini (SCD-1006320) okuyan iki araştırmacı farklı yayımlıyor: Ken Shirriff 215–430 mV, Mike Stewart ≈100 mV (25 mV gürültü tabanıyla). Kazananı biz seçmiyoruz — anlaşmazlığı olduğu gibi yazıyoruz.

Hepsi milivolt mertebesinde. Bir formülün doğru olması, içine koyduğun sayıların da doğru olduğu anlamına gelmez: Faraday yasası kusursuz çalışır, ama kaynaksız bir Ae ile beslenirse iki mertebe yanlış cevap verir. Δt burada bir voltaj değil, aşağıdaki darbenin şeklini sürüyor — hızlı dönüş, dar ve keskin darbe.

  • Her ip programının bir "rope mother"ı vardı: kodun o modüle dokunmaya hazır olduğunu onaylayan kişi. Luminary'nin rope mother'ı Margaret Hamilton'dı.
  • Enerji kesilse bile veri kaybolmaz — desen fiziksel olduğu için tamamen kalıcıydı.
  • Titreşime, radyasyona ve sıcaklık dalgalanmasına karşı olağanüstü dayanıklıydı — Ay yolculuğu için hız değil, güvenilirlik önceliğiydi.
  • Çekirdek, mıknatıslanabilen küçük bir halkadır. Çevresi boyunca iki yönden birine döner ve enerji kesilse de öyle kalır.
  • Bilgi halkada değil, telin yolunda: içinden geçiyorsa 1, etrafından dolanıyorsa 0.
  • Okumak, halkayı ters çevirmektir. İçinden geçen tel dönüşü duyar, dışarıdaki duymaz. Halka bir hücre değil, bir transformatördür.
  • Bir kelime 16 teldir: 15'i sayıyı söyler, 16'sı denetçidir. Parite 1'lerin toplamını hep tek tutar — tek bit bozulursa yakalar, iki bit bozulursa kaçırır.
  • Oktal, on beş biti üçerli gruplayıp beş rakama indiren kısaltmadır. 15 üçe bölünür, dörde bölünmez; onaltılığın bu makinede işi yok.
  • Eksi sayı, bütün bitlerin tersidir. Donanımda bedava, bedeli tek yerde: iki tane sıfır.
  • Tek halkadan 192 tel geçer, o halka 12 kelime taşır. Yüzlercesi aynı halkalardan örülünce ortaya halat gibi bir demet çıkar — adı buradan geliyor.
  • Bir kelime sayı da olabilir emir de. Farkı kelimede değil, işlemcinin oraya neden baktığında.