← Computers & Automation

Word Length in Digital Computers

B
Bilinmeyen Yazar
1956 · Computers and Automation

Dijital Bilgisayarlarda Sözcük Uzunluğu

D. D. McCracken


D. D. McCracken
General Electric Co., Aircraft Gas Turbine Div.
Cincinnati 15, Ohio

Herhangi bir büyüklükteki bilgisayarların çoğu, programın makine için problemi tanımlayan komutlarının, problem verileriyle birlikte bellekte saklandığını ima eden saklı program ilkesine dayanır. Günümüzdeki bilgisayarların neredeyse tamamı “ortak bellek” ile yapılmıştır; yani herhangi bir bellek konumu ya veri ya da komut içerebilir. (Başlıca istisna Harvard Mark IV’tür.) Her durumda bilgisayar, komutları üzerinde aritmetik değişiklikler ve testler yapabilme yeteneğine sahiptir. Bu yetenek, programın başka bölümlerine koşullu aktarmalar ya da sıçramalar yapabilme kabiliyetiyle birlikte, saklı programlı bilgisayara, programın makinenin belleğinin dışında olduğu erken otomatik bilgisayarlara kıyasla büyük bir üstünlük sağlar.

Bununla birlikte bir çelişki vardır. Ortak bellek varsayılırsa ve bellek konumlarının belirli, sabit bir kapasiteye sahip olduğu kabul edilirse, bir bellek konumu kaç basamak içermelidir? “Sözcük uzunluğu” ne olmalıdır?

Çoğu bilimsel çalışma için ve mevcut bellek boyutlarıyla, sayılar için komutlara kıyasla yaklaşık iki kat fazla basamağa ihtiyaç duyulduğu ortaya çıkmaktadır. Bu çelişki mevcut makinelerde nasıl çözülmektedir?

1.

Yukarıda Harvard Mark IV için sözü edilen, doğrudan bir çözüm, her biri için en uygun boyuta sahip olacak şekilde komutlar ve sayılar için iki ayrı bellek deposu oluşturarak problemi devre dışı bırakmaktır. Elbette komutların aritmetik olarak değiştirilmesine izin vermek mümkündür. Ancak bu, tasarımcı için ek bir yük oluşturur ve ayrıca komutların sayılara oranı konusunda bir seçim olanağı olmadığından bilgisayarın esnekliğini kısıtlar. Bu çözümün gelecekte büyük olasılıkla yalnızca özel amaçlı makinelerde kullanılması beklenir.

2.

Bir başka çözüm, belleği sayılar için uygun bir boyutta yapmak ve bir komut saklandığında fazladan alanı boşa harcamaktır. Bu çözüm DATATRON’da tam olarak bu şekilde uygulanmıştır ve sınırlı ölçüde tüm makinelerde görülür. IBM 704’te çoğu komutta altı ikili basamak boşa harcanır. Herhangi bir bilgisayarda, belirli bir komutun bir adrese ihtiyaç duymadığı durumlarda, örneğin yuvarlama komutunda olduğu gibi, alan boşa harcanır.

3.

Çok yaygın bir çözüm, her işlem için birden fazla adres kullanmaktır. Bu, tasarımcıları biraz daha fazla çalışmaya zorlar; ancak birçok durumda bunun diğer alternatiflere göre daha iyi bir çözüm olduğu görüşü benimsenmiştir. Elbette birçok kullanıcı da, programlama açısından çok adresli komutların daha iyi olduğunu düşünmektedir.

IBM 650, özellikle manyetik tamburlu bir makinede yararlı olan bir ikinci adresi, bir sonraki komutun konumunu belirtmek için kullanır. İkinci adres veriye atıfta bulunmadığından, bu genellikle değiştirilmiş tek adresli bir makine olarak adlandırılır. ERA 1103, tıpkı ELECOM 120 ve 125 ile birkaç başka makine gibi, veriler için iki adres kullanır. NORC ve diğerleri veriler için üç adres kullanır. SWAC, dördüncü adresin bir sonraki komutun konumunu belirttiği, değiştirilmiş üç adresli bir sistem kullanır.

4.

Oldukça yaygın bir çözüm, bir sayı boyutundaki konumun içine iki adet tek adresli komut yerleştirmektir. Bu, UNIVAC, IBM 701 ve Institute for Advanced Study makinelerinin örneklerinde kullanılan tekniktir: IAS makinesinin kendisi, MANIAC, JOHNNIAC, ILLIAC ve diğerleri. Bu, ilk problemi çözerken yeni bir problem ortaya çıkarır. İki yarının tanımlanmasının bir yolu bulunmalıdır. Yarım sözcük/tam sözcük düzeni, her yarıya bir adres verir, ardından komutta yarım ve tam sözcükleri ayırt etmek için bir gösterge kullanır. Diğer yöntemler, her ikisine yalnızca tek bir adres verir; bu nedenle bir komut üzerinde aritmetik işlem yapılabilmesi için, sözcüğün hangi yarısının komutu içerdiğinin bilinmesi gerekir. Bu, göreli programlamayı zorlaştırır. Böyle bir sistem programcılar için ek bir zahmettir ve özellikle yeni başlayanlar için oldukça can sıkıcıdır.

5.

Daha yeni bir yaklaşım, sayı uzunluğunu değişken yaparak konuyu dolaylı biçimde aşmaktır. Komutlar sabit uzunlukta kalır, ancak sayılar bir basamaktan başlayıp pratikte gerekenden çok daha büyük bir üst sınıra kadar herhangi bir boyutta olabilir. IBM 702 ve 705 bu ilke üzerine yapılmıştır. Bu, zorunlu olarak seri bir makineyi ima eder ve paralel çalışmaya kıyasla hız kaybına yol açar. Sayı boyutu için tek tip bir gereksinimi olmayan ticari kullanıcılar için özellikle çekicidir. Şu anda hiç de açık olmamakla birlikte, bu ilke bilimsel kullanıcı için de arzu edilir olabilir. Sabit sözcük uzunluğundan daha fazla basamak taşımak gerektiğinde işleri kesinlikle basitleştirir. Öte yandan, yerleşik kayan noktalı aritmetiğe sahip değişken sözcük uzunluklu bir makineyi tasavvur etmek zordur. Bu mücadelede son atış henüz yapılmamıştır.

Mevcut eğilimler nelerdir? Görünümü yavaş yavaş değiştiren bir eğilim, daha büyük sözcük uzunluğuna geçiştir. IBM 704, önceki modeli 701’in yalnızca 12’ye ihtiyaç duyduğu yerde, adresleri tanımlamak için 15 ikili basamak kullanır. Bir sonraki bilgisayar kuşağındaki makinelerde ikili sistemde 17 ya da 18 ikili basamak gerekeceğine dair bilgiler alıyoruz. Bu elbette yavaş bir eğilimdir. Her ek ikili basamak, bellek kapasitesinin iki katına çıkması anlamına gelir. Bilgisayarların gelecekteki en büyük boyutlarını ya da hızlarını tahmin etmek oldukça güvensizdir; ancak yalnızca artan bellek boyutunun problemi çözemeyeceği varsayılabilir.

Değişken sözcük uzunluğuna geçiş yönünde oldukça güçlü bir eğilim vardır. Bu büyük olasılıkla diğer makinelere de yayılacaktır.

Değişken sayı uzunluğunun hemen bir uzantısı, her ne kadar mevcut bilgisayarların hiçbirinde henüz görülmemiş olsa da, değişken komut uzunluğudur.

Bellekte şöyle bir komut biçimi hayal edin:

İşlem, adres
işlem, adres

Burada yıldız, sayılar arasındaki gibi komutlar arasında bir tür işaret ya da ayırıcıyı temsil eder. Bunun, elbette, bellekte gerçekten bir basamak konumu kullanması gerekmez.

Şimdi ayrıca, her zaman bir ya da iki karakterden oluşacak olan işlem kısmının önce denetim bölümüne okunduğunu varsayalım. Bu işlem kısmını, bu belirli komut için bir adresin gerekli olup olmadığına karar verecek kadar hızlı bir sürede çözümleyebilen devreleri tasavvur etmek çok da zor değildir. Eğer bir yuvarlama komutunda olduğu gibi adres gerekmiyorsa, bellekte bir adres bulunmasına gerek kalmaz ve dört ya da beş basamak konumu tasarruf edilmiş olur.

Ayrıca, 100.000 basamaklık belleğe sahip ondalık bir makineyi düşünürsek, adres için beş basamağa kadar izin verilebilir. Belirli bir adres yalnızca iki ya da üç basamak gerektiriyorsa, denetim devreleri “komut sonu” işaretini algılayabildiğinden, yalnızca o kadarının yazılması yeterlidir. Belleğin 10 numaralı bölümüne başvuran bir komutta bu düzenek, komut uzunluğunda yaklaşık üçte birlik bir tasarruf sağlar. Böyle bir sistem, yeterince avantaj sunduğundan, üreticiler tarafından mutlaka değerlendirilmektedir.

Sonuç olarak, üreticiler ile kullanıcılar arasında süregelen bir mücadele gözlemleyebiliriz. Neredeyse her zaman, tasarımın sadeliği ile programlamanın sadeliği, kısalığı ya da kullanışlılığı arasında bir seçim yapılmak zorundadır.

Örnekler: bazı erken makineler negatif sayıları temsil etmek için tümleyenleri kullanmıştır; bazı erken makinelerde bölme komutu yoktu; yerleşik kayan noktalı makineler ancak yakın zamanda kullanılabilir hâle gelmiştir. Kaba bir genelleme olarak şunu söyleyebiliriz: erken makinelerde mücadeleyi üreticiler kazanmıştı; ancak bundan sonra kullanıcılar kazanacaktır. Programcının işini basitleştirmek ya da daha güçlü kılmak için makineler yapısal olarak daha karmaşık hâle gelecektir. Bu eğilimle birlikte, çok sayıda ve güçlü komutlara sahip makineler mi yapılacağı, yoksa daha az ve daha basit komutlara sahip fakat çok hızlı bir makineye mi odaklanılacağı konusunda da henüz netleşmemiş bir konu bulunmaktadır.

Bu değerlendirmelerin bilgisayarlardaki sözcük uzunluğu üzerindeki etkisi, büyük ölçüde, şimdi yaygın kullanıma girmeye başlayan makinelerle elde edilecek deneyime bağlı olacaktır. Standartlaşma talep etmek için kesinlikle çok erkendir; denenmesi gereken çok fazla olasılık bulunmaktadır.


PROBLEMLERİN ÇÖZÜMÜ