Bugün öğrendim ki: Hewlett-Packard 9100A masaüstü hesap makinesini tasarlarken Bill Hewlett, bunun masasının daktilo sehpasına sığacak kadar küçük olması konusunda ısrar etti. Prototip biraz fazla büyüktü. Bir HP marangozu, hesap makinesinin sığması için masayı gizlice değiştirdi.

HP 9100 Projesi: Ekzotermik Bir Tepkime

Loveland, Colorado'da yaklaşık 1968 yılına ait HP 9100A montaj hattı.

Fotoğraf, Hewlett-Packard Şirketi'nin izniyle kullanılmıştır.

HP 9100A masaüstü hesap makinesi, Barney Oliver'ın yeni kurulmuş HP Laboratuvarları için ideal bir geliştirme projesiydi. Aynı dönemde geliştirilen HP 2116A minikompüter, o zaman mevcut en gelişmiş elektronik teknolojileri (entegre devreler) kullanırken, HP 9100A daha düşük maliyetli bir pazara yönelikti ve genellikle entegre devrelerin lüksünü karşılayamıyordu. Entegre devreler, boyutu ve ağırlığı önemli olan makinelerde, örneğin ICBM'lerde ve Apollo kılavuz bilgisayarının yedek tasarımında kullanılıyordu. Bunun yerine, HP 9100A projesi tasarım ekibini, ayrık transistörler, diyot kapıları ve CRT ekranlar gibi daha ucuz ve daha az enerji tüketen teknolojiler için yeni kullanım ve uygulamalar geliştirmeye yönlendirdi.

HP 9100A'nın tasarımında çok sayıda insandan o kadar çok teknoloji geliştirici fikir ortaya çıktı ki, Barney Oliver projeyi ekzotermik bir reaksiyon olarak tanımladı: tepkimeye giren bileşenlerin karıştırılmasından otomatik olarak başlayan ve ısı üreten bir reaksiyon. HP 9100A projesinde yer alan temel bileşenler arasında, Volder'ın trigonometrik fonksiyonları hesaplamak için CORDIC algoritması ve Volder ve Malcolm Macmillan'ın hesap makinesi tasarımından HP'ye getirilen J. E. Meggitt'in sahte bölme ve sahte çarpma algoritmaları yer alıyordu; hızlı ve düşük güç tüketen bir hesap makinesi olan Tom Osborne'ın VLIW (çok uzun talimat kelimesi) yüzer noktalı işlemci tasarımı; HP'nin Chuck Near ve Arnie Bergh tarafından geliştirilen baskılı devre tabanlı, endüktif okuma-sadece bellek; Chung Tung'un minikompüter çekirdek belleğinin masaüstü hesap makinesinin sınırlı depolama gereksinimlerine uyarlanması; Dave Cochran ve Tony Lukes tarafından son derece iç içe geçmiş VLIW programlaması; ve son olarak Roy Ozaki ve Don Aupperle'ın, HP 9100A'nın çeşitli filmlerde küçük rollerde yer almasını sağlayan geleceğe yönelik endüstriyel stili vardı. Bu kişiler ve daha birçok kişi, HP 9100A'nın hızlı bir şekilde geliştirilmesine yeni fikirler katkıda bulundular.

(Tom Osborne'ın bu hikaye hakkındaki kişisel anlatımını görmek için buraya tıklayın.)

CORDIC ve Hustler

1956 yılında, havacılık üreticisi Convair (General Dynamics'in bir bölümü), Fort Worth'ta ABD Hava Kuvvetleri için dünyanın ilk aşırı ses hızındaki bombardıman uçağını geliştiriyordu. Çok kısa bir hizmet ömrüne sahip olacaktı (1960'ların başlarında çok daha hızlı ICBM'ler tarafından yerini alacaktı), ancak delta kanatlı Convair B-58 Hustler bombardıman uçağı, bir dizi havacılık ve elektronik teknolojide sınırları zorlayacaktı. (B-58, 1964 yapımı "Fail Safe" filminde de rol aldı.) HP 9100A geliştirme hikayesinde en önemli nokta, Convair'in, II. Dünya Savaşı bombardıman uçaklarında geliştirilen analog elektromekanik çözücülere (döner değişken transformatörler) dayalı olan B-58'in navigasyon teknolojisini iyileştirmek istemesiydi. Convair, B-58'in navigasyon sisteminin günün analog uçak navigasyon bilgisayarlarından çok daha doğru olmasını istedi. Sayısal hesaplamalar gerekli doğruluğu sağlayabilirdi, ancak 1950'lerin ortalarındaki uçak içine sığacak sayısal bilgisayarlar en iyi durumda yavaş ve kaba idi ve gerçek zamanlı küresel navigasyon için gerekli trigonometrik hesaplamaları yapmak için gereken hesaplama yeteneklerine sahip değildi; yavaş seri genişletme trigonometrik algoritmaları veya o günkü bellek yoğunluğundaki tablodan okuma yöntemleri kullanıldı.

Sonuçlanan CORDIC algoritması, erken ve basit sayısal bilgisayarlar için aşkın hesaplamaları pratik hale getirdi. Volder ilk olarak CORDIC algoritmasını 1956'da Convair'in iç bir raporunda yayınladı, ancak en azından başlangıçta Convair veya Hava Kuvvetleri içinde fazla bir coşku uyandırmadı.

Sonunda, 1958'in sonlarında, Volder, CORDIC çalışmasını, 1959 Batı Birleşik Bilgisayar Konferansı Bildirileri'nde yayınlanan bir makalede yayınlama izni aldı. IRE, aynı yıl bu makaleyi Elektronik Hesaplama Üzerine Yürütmelerinde yeniden yayınladı. Bu yayınlar, görünüşte işe yaradı, çünkü Hava Kuvvetleri Convair'e CORDIC I adı verilen prototip bir sayısal navigasyon bilgisayarını inşa etmesini yetkilendirdi ve bu prototip 1960 yılında tamamlandı. Bu prototip yeterince başarılıydı ve Hava Kuvvetleri, 1962'de tamamlanan CORDIC II adlı üretim bilgisayarının geliştirilmesini yetkilendirdi.

Ancak, Jack Volder, CORDIC I prototipinin tamamlanmasından bile önce Convair'den ayrıldı. 1960'ların başında Volder, Güney Kaliforniya'da yaşayan bir fizikçi olan Malcolm Macmillan ile birlikte çalıştı. Macmillan ve Volder, "Athena" adlı sabit nokta prototip bir hesap makinesinde trigonometrik fonksiyonları hesaplamak için CORDIC algoritmalarını kullandılar. Macmillian, 1965 Haziran'ında Athena'yı HP'ye (muhtemelen Bill Hewlett'e) gösterdi.

Oliver ve Stoft Athena gösterimini gördüler ve zarif CORDIC algoritmasından etkilendiler. Ancak, Athena'nın sabit nokta donanımını "büyük bir karmaşa" (mühendislik için en kötü niteleme) olarak gördüler ve Volder ve Macmillan'ın kullandığı donanım yaklaşımının Athena yapıldıktan sonra zaten eskimiş olduğunu deneyimlerinden biliyorlardı. Athena büyük ölçüde büyüktü (Oliver onu iki arı kovanı büyüklüğünde olarak tanımladı), sorunlu idi (aygıtı Güney Kaliforniya'dan HP'ye getirdikten sonra aygıtı başarıyla göstermek iki gün süren bir hata ayıklama çalışması gerektiriyordu) ve nispeten yavaştı (Athena bir aşkın fonksiyonu hesaplamak için bir saniyeden fazla zaman alıyor, bu da iyi bir mühendisin aynı hesaplamayı kayar cetvel üzerinde yapmasından yaklaşık aynı hızda). Ancak hesap makinesi için CORDIC algoritmasının kullanımı son derece parlak idi. Oliver ve Stoft, birkaç matematiksel kavram ve dönüşümü zihinlerinde uygulayarak, CORDIC algoritmasının yalnızca trigonometrik olanlar, Athena prototipine uygulanan fonksiyonlar değil, tüm aşkın fonksiyonları hesaplamak için kullanılabileceğini fark ettiler.

İkinci Unsur

Tom Osborne

Fotoğraf, Hewlett-Packard Şirketi'nin izniyle kullanılmıştır.

Oliver, Macmillan'ın Athena ile HP'ye ziyaretiyle heyecanlandı. Ancak, fikri üretim ürünü haline getirmek için dijital tasarım konusunda daha fazla kavrayışa sahip birine ihtiyacı olduğunu biliyordu. O sırada Oliver'da çalışan bir mühendis olan Tony Lukes, muhtemel bir aday olarak arkadaşı Tom Osborne'ı tavsiye etti. Lukes, Osborne ile SCM'de çalışmış ve Osborne'ın dijital tasarım becerilerinden etkilenmişti. Osborne'ın bilimsel hesap makinesini uygulamak için Macmillan ve Volder'ın fikrini uygulamak için donanım geliştirmek için doğru kişi olduğunu düşündü. Oliver, Lukes'e Osborne'ı ziyaret için davet etmesini istedi.

Osborne, toplantıya kendisinden fazlasını getirdi. Yeşil Makine'nin prototipini—4 işlevli, yüzer noktalı hesap makinesi prototipini—getirdi. IBM ve yaklaşık 30 yüksek teknoloji şirketi, Osborne'ın alışılmadık tasarım yaklaşımı ve teknik bir üne sahip olmaması dahil olmak üzere çeşitli nedenlerle onun hesap makinesi tasarımını reddetmişti. (1963 yılında sadece iki yıl önce MSEE'sini almıştı.) Oliver ve Stoft, Athena ve Yeşil Makinenin birleşmesinin, HP'nin mevcut test ve ölçüm müşterilerinin kesinlikle seveceği dünya çapında başarılı bir bilimsel hesap makinesi olacağını fark ettiler.

Nasıl biliyorlardı? HP'nin 1939'dan yaklaşık 1990'a kadar iyi hizmet veren aynı pazarlama tekniğini kullanmışlardı: bir sonraki tezgah pazar araştırması. Kısacası, bir sonraki tezgahta pazar araştırması, bir fikri bir sonraki tezgahtaki mühendisine sunmayı içerir. Eğer o (o zaman tüm HP mühendisleri "erkek" idi) fikri beğenirse, o zaman başaracak demekti. Oliver ve Stoft, Osborne'ın hızlı masaüstü hesap makinesi konusundaki fikirlerini çok beğendi. Osborne'ın donanım yaklaşımını ve Volder'ın CORDIC algoritmalarını birleştirerek pratik bir bilimsel hesap makinesi oluşturabileceklerini anlayınca, fikirleri daha da çok beğendiler. Daha da iyisi, Bill Hewlett de fikri sevdi.

Oliver, 1965'in sonlarında HP 9100A projesini başlattı ve bir yılın biraz daha kısa bir süresinde çalışan bir prototip üretti. Mantıksal olarak, Osborne hesap makinesi projesinin başına gelebilirdi, ancak HP'ye bir çalışan olarak katılmak istemedi. Osborne, Stan Frankel'ın tasarımını geliştirmek yerine kendi hesap makinesini tasarlamak için SCM'deki işinden ayrıldığında (Oliver, "Kendinde bir tür özgür ruhu vardı") bağımsız ruhunu göstermişti. HP'de çalışmak yerine, Osborne, birçok geliştirme projesinde danışmanlık yaptığı HP için ücretli bir danışman oldu ve yıllarca bu şekilde kaldı. Osborne, güç kaynağı ve manyetik kart okuyucu hariç, neredeyse tüm HP 9100 devrelerini tasarladı. Ayrıca Chuck Near'ın baskılı devre ROM'u için algılama devrelerini de tasarladı ve bunun kendisinin yaptığı en zor tasarım olduğunu söylüyor.

Proje lideri Dick Monnier, 1966'nın başlarında HP 9100A projesinin başına geçti. Monnier, HP örnekleme osiloskop projeleri ve bir TV dalga şekli monitöründe proje lideri olmuştu. Berkeley California Üniversitesi'nden BSEE ve Stanford'dan MSEE mezunu idi. Monnier'nin önceki deneyimi derin bir dijital bilgisayar ürünü bilgisini göstermiyordu, ancak bu deneyim eksikliği, HP'nin işe aldığı mühendislerin temel becerilerine duyduğu geleneksel güveni vurgulamaktadır. En az 1980'lere kadar, HP, işe aldığı her mühendisin neredeyse her türlü mühendislik projesini yapabileceğine inanıyordu: analog tasarım, dijital tasarım, entegre devre tasarımı, yazılım programlama, üretim mühendisliği, bileşen tasarımı vb. Sonuçta, Bill Hewlett bir mühendisin mühendisiydi ve tüm HP mühendislerinden de aynı şey bekleniyordu.

Anılar İçin Teşekkürler

Osborne'ın VLIW işlemcisi, 64 bit genişliğinde bir ROM (sadece okuma belleği) gerektiriyordu. HP 9100A'nın işlemcisi aslında mikroprogramlanmış bir durum makinesi idi ve geleneksel anlamda yazılım çalıştırmazken, durum makinesi tasarımı, makinenin her durumda işlemlerini yönetmek için, dallanma koşullarını test etmek ve bir sonraki durum belirlemek için bir kontrol ROM kullanabilir. Osborne, HP 9100A'nın en azından 32 kbit'lik bir ROM'a, 512 64 bitlik kelime olarak düzenlenmesi gerektiğini belirledi. HP 9100A daha fazla ROM kapasitesini kullanabilirdi, ancak 1965'teki elektronik teknolojisi için 32 kbit bile son derece ilerici idi. Aslında, 1965'teki entegre devre teknolojisi, bir çip üzerinde yalnızca 50 cihazı (transistörler, diyotlar ve dirençler) biçimlendirmede zorlanıyordu; 32.768 bit entegre devre belleğinden bahsetmiyorum bile.

Chuck Near'ın 64 bitlik ROM prototipi, bu iş için korkunç derecede yetersizdi, bu nedenle Osborne onu genişletmeye başladı. Günün entegre devre teknolojisi umutsuz derecede kaba idi, bu nedenle Near, üretim öğrenme eğrisinin çok daha aşağısında olan fotolitografiye dayalı farklı bir teknoloji—çok katmanlı baskılı devre (PCB)—kullanmayı seçmişti. Yine de, 1965'te PCB üretimi işi ancak ancak yapabilirdi. HP'nin PCB dükkanı, Osborne'ın özelliklerine göre ROM'u ilk başta oluşturamadı. Osborne, o zamana kadar HP'nin en iyi devre kartı görüntüleme yeteneklerinin yaklaşık üçte biri büyüklüğünde litografik özellikler gerekiyordu. Yavaş yavaş, PCB dükkanı, ROM'un bellek dizisini nasıl biçimlendireceğini öğrendi.

HP'nin devre kartı dükkanı ROM bit desenlerini görüntülemekle meşgulken, Osborne ROM'un algılama yükselticileri için devre üzerinde çalışıyordu. ROM kartının ortasındaki algılama hatları, algılama yükselticilerinin çalışması için yeterli sinyal üretti. Ancak, kartın kenarlarındaki kenar elektriksel etkileri nedeniyle, ROM kartının kenarlarındaki algılama hatları, Osborne'ın ilk algılama yükseltici tasarımıyla güvenilir bir şekilde çalışmak için yeterli sinyal üretmiyordu. Osborne algılama yükseltici tasarımını sürekli olarak geliştirdi ve her iki ayda bir ROM'dan bir sonraki operasyonel biti çıkardı. Yavaşça, Osborne tam ROM'u hayata geçirdi.

ROM, HP 9100'deki en karmaşık mantık derlemesi olacaktı. Yedek olarak, Osborne, 1964'te kendi orijinal makinesi için yaptığı ROM gibi, ilk HP 9100 prototipi için diyot tabanlı bir ROM kartı geliştirdi, ancak bu ROM tasarımının binlerce diyot gerektirdiği ve hesap makinesini üretimi için aşırı derecede pahalı hale getireceği anlaşılmıştı. Neyse ki, Osborne ROM kartındaki kenar etkilerini kontrol altına aldı ve HP başarıyla PCB ROM'u geliştirdi. (HP 9100 PCB ROM'u hakkında daha fazla teknik ayrıntı için buraya tıklayın.)

Bitleri Altına Çevirmek: Dijital bir Rumpelstiltskin

32 kbit'lik PCB ROM, HP 9100A'da kullanılan tek ROM değildi. HP 9100A işlemci tasarımı 29 bitlik mikro kod talimatlarını kullanıyordu, ancak yalnızca 64 farklı talimatı vardı. Altı dört talimat yalnızca 6 bitle kodlanabilir (her ne kadar seyrek talimat kelimesi kodlaması, mikro kodlu durum makinesi tasarımının oldukça tipiktir, çünkü kodlama devresini tasarruf sağlar). HP 9100'deki bitleri tasarruf etmek için, 64 mikro kodlu talimat kelimesinden her biri, 64 bitlik mikro kod kelimesinin içindeki 6 bitlik bir alan içindeki bir değerle temsil edildi. Bu yaklaşım, her talimat kelimesinde 23 bit tasarruf etti ve sorunlu devre kartı ROM'unun kelime boyutunu rahatlıkla yönetilebilir 64 bit'e indirdi. Ancak bu bit sıkıştırma sonucu, HP 9100A'nın mikro kod talimat alanını 6 bit'ten 29 bite genişletmek için ek devre gerekliydi. Bugün, bu genişletmeyi basit bir yarı iletken ROM veya programlanabilir mantık cihazı kullanırız, ancak bu teknoloji 1965'te çok uzaklarda bulunuyordu.

Bunun yerine, Osborne dokuma veya örgülü tel (ya da basitçe "ip") belleği adı verilen başka bir olağandışı bellek cihazını kullandı. Bu "manyetik ROM", 29 ferrit çekirdeğinden oluşuyordu (küçük siyah dönerler gibi görünüyordu). Algılama teli 29 çekirdeğin her birinden geçer ve 64 tahrik teli bazı çekirdeklerden (bir tane üretir) ve diğer çekirdeklerin dış çevresinden (sıfır üretir) geçer. Tahrik telindeki bir akım darbesi, mikro kod talimatının tüm 29 bitini aynı anda üretir.

HP 9100A'daki son bellek, hesap makinesinin kayıtlarında değerleri depolamak için kullanılan okuma-yazma çekirdek belleği idi. HP 9100A, üç birincil kayıt (X, Y ve Z) ve on altı ek kayıt ("0" ile "9" ve "a" ile "f" olarak onaltılık olarak etiketlenmiş) olarak düzenlenmiş 2208 bitlik lityum ferrit çekirdek belleği kullanıyordu. Bu çekirdek belleği, o dönemde ana çerçeve bilgisayarlarında ve minikompüterlerde yaygın olarak kullanılan bir bellek türüydü. Ancak, HP 9100A'nın çekirdek belleği, maliyetleri düşürmek için küçük tutuldu.

HP 9100A'daki her kayıt, bir yüzer noktalı değeri (10 basamaklı, işaretli mantis ve 2 basamaklı, işaretli üs) tutabilirdi. Kayıtlar "0" ile "9" ve "a" ile "d", ayrıca her biri 14 program adımını tutabilirdi, toplam kapasite 196 program adımıydı. (HP 9100A programlama meraklıları, hesap makinasının programlama kapasitesine hızla ulaşacak ve HP, hesap makinesinin güncellenmiş versiyonunda, HP 9100B'de daha fazla belleğin sunulmasına çalışacaktır.)

Her ne kadar çekirdek belleği, 1965 yılına kadar bilgisayar bellek depolamada yaygın olarak kullanılıyordu—HP, aynı zamanda HP 9100A hesap makinesi ile geliştirilen HP 2116A minikompüterinde de çekirdek belleği kullanıyordu—HP 9100A tarafından gerekli olan nispeten küçük miktardaki çekirdek belleği, hesap makinesinin her bir bit için maliyetinin nispeten yüksek olmasını sağladı. Çünkü her çekirdek belleği derlemesinde (adres kodlayıcıları, sütun sürücüleri ve algılama yükselticileri) belirli miktarda fazlalık devre bulunur ve bu fazlalık devre, belleğin kapasitesinden bağımsız olarak, bellek için minimum maliyeti belirler. HP 9100A gerçekten yarı iletken belleğe ihtiyaç duyuyordu, ancak HP'nin hesap makineleri tasarım gereksinimlerine ayak uyduracak entegre devre sektörünü başka bir nesil beklemek zorundaydı.

HP 9100A'nın Çekirdeği

Rastgele erişimli çekirdek belleği, Tom Osborne'ın hızlı bir hesap makinesi için kavramının gerçekten "çekirdeği"ydi. Çekirdek belleğin 1,6 mikro saniyelik erişim süresi, Stanley Frankel'ın hesap makinesi tasarımındaki gecikme hattına göre inanılmaz derecede hızlıydı. Çekirdek belleğin hızı, Osborne'ın makinasının 1,21 MHz'lik oldukça hızlı bir şekilde çalışmasını sağladı (her halükarda 1965 için hızlıydı). Sonuç olarak, HP 9100A iki yüzer noktalı sayıyı 2 milisaniyede toplayabilir veya çıkarabilir, iki sayıyı 12 milisaniyede çarpabilir ve 280 milisaniyede bir trigonometri hesaplaması yapabilirdi. Bu hızlar, HP 9100'ü rakip elektronik hesap makinelerinden on kat daha hızlı hale getirdi, el hesaplamaları için performans gereksinimlerini çok aştı (operatör 2 milisaniyelik bir toplamanın ve 100 milisaniye süren bir toplamanın arasındaki farkı zar zor anlayabilir). Ancak, bu hızlar, program yürütme sırasında çok sayıda yinelemeli hesaplama yapması gereken HP 9100A gibi programlanabilir bir hesap makinesi için kesinlikle gereklidir.

HP 9100A'nın çekirdek belleği, 6 bitlik kelimelerden oluşan kayıtlar halinde düzenlendi. Her kayıt, on altı 6 bitlik kelime içeriyordu. Her 6 bitlik kelime, bir 4 bitlik BCD (ikili kodlanmış ondalık) rakamı artı bir işaret biti veya bir 6 bitlik program adımını (bir tuş kodu) içeriyordu. Bir BCD rakamı, 0 ile 9 arasındaki sayıları saklar ve 4 bitlik sayının en anlamlı altı ikili kodunu ("a" ile "f" arası onaltılık) kullanılmadan bırakır. HP 9100 için kodu yazan Dave Cochran, her 6 bitlik rakamdaki ek iki biti ara hesaplamalar için (örneğin taşma) programlama bayrakları ve algoritma durumları olarak kullandı. Ayrıca, altı "kullanılmayan" BCD sayısını "a" ile "f" arasında, örneğin -1'i temsil etmek için "f" gibi "diğer" rakamlar olarak kullandı.

Cochran, HP 9100 projesinin ilk günlerinde BCD veya ikili gösterimin seçilmesinin açık olmadığını hatırlıyor. Her gösterimin avantajları vardı. İkili gösterimin avantajı, ikili hesaplamaların genellikle BCD hesaplamalarından daha hızlı olmasıydı. Günümüzün bilgisayarları ikili hesaplamaları kullanmasının nedenlerinden biri budur. Ancak, HP mühendisleri için hassasiyet en önemli endişeydi ve BCD'den ikili gösterimlere ve geri dönüşümde kaçınılmaz dönüştürme hataları vardı. İnsan operatörler her zaman ondalık gösterimde veri girer ve sonuçları ondalık gösterimde okumak ister, bu nedenle bir makinenin iç sayısal gösterimi ikili ise bu dönüşümler kaçınılmazdır. Dönüştürme hatasına ek olarak, BCD-ikili ve ikili-BCD dönüştürme rutinleri zaman alır, bu da ikili hesaplamanın hız avantajını ortadan kaldırabilir. Sonuç olarak, HP mühendisleri uzun tartışmaların ardından HP 9100 hesap makinesinde BCD gösterimini kullanmaya karar verdiler.

Adım Başına Altı Bit

HP 9100A program adımı, bir tuş kodu ile eş anlamlı idi ve hesap makinelerinde 62 tuş bulunuyordu, bu nedenle her tuş kodu 6 bitlik depolama gerektiriyordu. Dolayısıyla her hesap makinesi kaydı, 16 rakam veya program adımını tutabilirdi, ancak HP 9100A'da uygulanan gerçek kapasite, bir yüzer noktalı sayı oluşturmak için 14 BCD basamağı veya kayıt başına 14 program adımıydı. (Not: bugün 6 bit genişliğinde bir bellek naif görünebilir, ancak 1960'ların başlarında standart bir kelime genişliği idi. Örneğin, IBM'in erken ana çerçeve bilgisayarları 1965 yılında System/360'ın gönderilinceye kadar 6 bitlik kelimeler kullandı.)

HP 9100 kayıtlarında depolanan 14 BCD rakamdan 12'si yüzer noktalı sayının mantisini ve ikisi yüzer noktalı sayının üssünü depolamak için kullanılıyordu. Her BCD rakamı, mantisin veya üssün işaretini göstermek için ek bir bite sahipti. HP 9100A, mantiste 12 önemli rakamı korudu ve tüm hesaplamaları yüzer noktada yaptı, ancak mantistan en az iki önemli rakam korumalı rakam olarak kabul edildi ve gösterilmedi. (Ancak bir sayıyı 10 ile çarparsanız, sayıyı 100 ile çarparak tüm rakamları iki yere kaydırarak iki korumalı rakama "bakabilirsiniz".)

Hesap makinesinin ekranında (hesap makinesinin yığıtının X, Y ve Z kayıtlarının içeriğini temsil eden) gösterilen üç sayının ekran biçimlendirmesini kontrol eden bir "ondalık basamak" çarkı vardı. Bu özellik, operatörün çözülen probleme uygun bir boyuta gösterilen hassasiyeti sınırlamasını sağladı. Ancak, hesap makinesi her zaman, basamak çarkının ayarından bağımsız olarak tam hassasiyetli yüzer nokta sayıları kullanarak hesaplamalarını yaptı.

Alternatif olarak, yardımcı kayıtlar 0 ile 9 ve a ile d, her biri 14 program adımını depolayabilirdi, toplam 192 program adımı. X, Y ve Z kayıtları, program adımlarını değil, yalnızca yüzer noktalı sayıları depolayabilirdi. X, Y ve Z kayıtları 16 yardımcı kayda eklendiğinde, HP 9100A'nın 19 kullanıcıya açık kaydı vardı, ancak HP 9100A'nın çekirdek belleği 23 kayıt uyguluyordu. Kalan dört kayıt kullanıcıya açık değildi ve ara değerlerin ve makine durumunun iç depolama için kullanılıyordu. Osborne, makinenin kontrol edilmesi ve çalıştırılması için gerekli diğer bilgileri kodlamak için ek kayıt bitlerini ve değerli çekirdek belleğindeki ek 6 bitlik kelimeleri de kullandı.

Çok Fazla Statik

Manyetik kart okuyuculu HP 9100A

Fotoğraf, Hewlett-Packard Şirketi'nin izniyle kullanılmıştır.

HP, HP 9100A hesap makinesini, Mart 1968'de New York'ta düzenlenen IEEE Elektrik Gösterisi'nde seçilmiş bir grup müşteriye gizli bir şekilde tanıttı. HP ekibi, var olan beş ön üretim hesap makinesi prototipinden oluşan tümünü fuar için bir otele getirdi ve kurdu. Kurulum sırasında, Barney Oliver açılan makinelerden birinin üstüne eğildi ve kravatı, diyotlarla aşırı derecede yüklenmiş hesap makinesinin mantık devresine sürüklendi. Statik elektrik kıvılcımları Oliver'ın kravatından diyotlara sıçradı. Makine anında çalışmayı durdurdu ve yalnızca dört HP 9100 prototipini göstermeye devam etti.

Elektrik gösterisinde, Bill Hewlett, Wang Labs kurucusu ve başkanı An Wang'ı HP 9100'ü görmeye davet etti. Wang Labs o sırada bilimsel hesap makineleri için önde gelen satıcıydı ve Hewlett, HP 9100'ün Wang'ın işine büyük bir darbe vurmak üzere olduğunu biliyordu. An Wang HP 9100'a baktı, hesaplama hızına şahit oldu ve Hewlett'e teşekkür ettikten ve "İşimize yoğunlaşmalıyız" diyerek ayrıldı. Sonunda, Wang, algoritmalarında logaritmaların kullanımı için HP 9100'e karşı bir patent ihlali davası açacaktı, ancak Dave Cochran, söz konusu logaritma tabanlı algoritmaların kökenini 16. ve 17. yüzyılda yaşamış İngiliz matematikçi Henry Briggs'e kadar takip eden bir araştırma yaptı ve dava böylece sona erdi. Bir patent ihlal davasını durdurmak için 300 yıllık önceki eserlerin olmadığı yoktur.

HP, HP 9100'ü resmi olarak, Eylül 1968 tarihli HP Dergisi sayfalarında duyurdu. HP 9100A'nın piyasada elde ettiği başarı arttıkça, belleği hızla sınırlayıcı bir faktör haline geldi. HP, HP 9100A'yı tanıttıktan yaklaşık bir yıl sonra kayıt belleğini iki katına çıkaran bir "B" modeli çıkardı. Daha sonra, HP 9100'ün belleğini HP 9101A (aşağıda bakınız) adlı harici bir bellek kutusu ile daha da artırdı.

Fiziksel olarak Haritalanmış Programlama, Fonksiyon Başına Bir Tuş

HP 9100A, boyutuna göre benzersiz hesaplama gücü sağladı. Dahası, bilimsel ve mühendislik topluluğuna düşük maliyetli, programlanabilir hesaplamayı tanıtırken çok tehditkar olmayan bir şekilde yaptı. Bunu sezgisel, fiziksel olarak haritalanmış bir programlama dili kullanarak başardı: klavyeleri. HP 9100A'nın yapabileceği tüm işlevler, 62 tuşlu klavyesinde her zaman görünür halde idi, bu nedenle FORTRAN gibi geleneksel bir programlama dilini ezberlemeye gerek yoktu.

HP 9100A'nın tasarımcıları, makinenin kullanımını basitleştirmek için hesap makinesinin tuşlarını fiziksel olarak gruplandırdı. Dört tuş grubu vardı: giriş ve aritmetik işlemler grubu; konumlandırma ve depolama grubu; koordinat dönüşümleri, genişletilmiş trigonometri ve logaritma fonksiyonları grubu (temelde CORDIC grubu); ve programlama grubu. Bir operatör, giriş ve aritmetik işlemler tuş grubunu ve hemen bitişik konumlandırma ve depolama grubundan tek bir tuşu (çift boyutlu "yukarı ok" veya "enter" tuşu) kullanarak HP 9100A'yı basit bir hesap makinesi olarak kullanabilirdi. HP 9100A, "ters-işaretli polonyalı" gösterim (RPN) kullandığı için (birçok HP hesap makinesinin birincisi), parantez tuşlarına ihtiyaç duymuyordu.

HP, RPN'yi, operatörün hesaplamayı hesap makinesi kullanmadan önce analiz etmesini zorunlu kılarak, hesap makinesinin durum makinesinin tasarımını basitleştirdiği için seçti. RPN, karmaşık bir sorunun iç içe geçmiş parantez kümesinden dışarı doğru çözülmesini gerektirdiği için, insan operatör sorunu hesap makinesi için basitleştirdi. Başka bir deyişle, insan operatör sorunu ayrıştırmak zorunda kaldığından, hesap makinesinin bunu nasıl yapacağını bilmesi gerekmiyordu. (Unutmayın ki HP 9100'de yalnızca 512 64 bitlik kelime programlama için mevcuttu.)

Giriş ve aritmetik işlemler tuş grubu, "0" ile "9" arasındaki rakamlar, ondalık nokta, dört basit aritmetik işlem (toplama, çıkarma, çarpma ve bölme), karekök, işaret değiştirme, üs girme, X'i temizleme (girişi temizleme) ve π (pi) için ayrı tuşlar içeriyordu. Eşittir tuşunun olmaması dikkat çekicidir. RPN hesap makineleri, cebirsel hesap makineleri gibi eşittir operatörünü kullanmaz. İki sayıyı toplamak için, ilk sayıyı tuşlayın, "enter" tuşuna basın, sonra ikinci sayıyı tuşlayın ve "+" tuşuna basın. HP 9100A'da "enter" tuşu, konumlandırma ve depolama tuş grubunda bulunuyordu.

X kaydı, giriş veya klavye kaydıdır. Bir sayı hesap makinesine girdiğinizde, doğrudan X kaydına gider. Sonraki sayı için yer açmak için, girdiğiniz ilk sayıyı başka bir kayda (genellikle Y) taşımanız gerekir. "Enter" tuşu, X kaydındaki değeri Y kaydına taşır. Ardından basit aritmetik işlemlerden birini basarak, X ve Y kayıtlarındaki değerleri aritmetik olarak birleştirir ve sonucu Y (sonuç veya birikim) kaydına yerleştirir. (Not: Osborne bunu, Friden'in sahip olabileceği ilgili herhangi bir patentin ihlal edilmesini önlemek için yaptı. X ve Y kayıtları, HP 9100'ün 3 satır ekranında görünür olduğundan, hesaplama sonucunun hedef kaydının gerçekten önemli değildi. HP 35'i geliştirdiği zaman, HP 35'in sadece 1 satırlı bir ekranı vardı ve Friden oyun dışındaydı, bu yüzden HP HP 35'in yığınının çalışmasını değiştirdi, böylece aritmetik işlemlerin sonuçları görünür X kaydına değil, görünmez Y kaydına gitti.)

HP 9100'ün Z kaydı, daha karmaşık hesaplamalar için geçici, görünür depolama sağlar. X, Y ve Z kayıtları, RPN kayıt "yığından" oluşur. HP, HP 35 gibi diğer RPN hesap makinesi nesillerini geliştirdiğinde, ek geçici depolama için T adlı dördüncü bir kayıt ekledi. Ancak HP 9100A'da yalnızca 3 kayıtlı bir yığın vardı.

"Gazinta" operatörünün kökeni

Konumlandırma ve depolama tuş grubundaki kalan tuşlar, değerleri kayıtlar arasında taşımak için kullanıldı. Kaydırma tuşları, tüm yığıttaki değerleri yukarı ve aşağı hareket ettirdi. Değiştirme tuşu, X ve Y kayıtlarında tutulan değerleri değiştirdi. İki "sağ ok" tuşu, X veya Y kayıtlarında depolanan değerleri HP 9100A'nın yardımcı depolama kayıtlarından birine ("0" ile "9" ve "a" ile "f") kopyaladı. Bu sağ ok tuşları, bir değerin bir depolama kaydına "gittiği" için hızla "goesinto" veya "gazinta" tuşları olarak bilinmeye başladı. ( "gazinta" işlemi, daha ileri gelecekteki RPN olmayan HP 9825A masaüstü hesap makinesinin yapı taşı olacak bir özellik olurdu.) Başka bir hesap makinesi tuşu, Y kaydındaki değeri belirlenmiş bir yardımcı depolama kaydındaki değerle değiştirdi. Son olarak, konumlandırma ve depolama tuş grubu, giriş ve aritmetik işlem grubunda "0" ile "9" arasındaki rakamlarla birlikte kullanılan "a" ile "f" arasındaki tuşları içermekte olup, HP 9100A'nın yardımcı depolama kayıtlarından birini belirtmek için kullanılıyordu. HP 9100A'nın tüm kayıtları manyetik çekirdek belleği ile uygulanmıştır.

HP 9100A'nın koordinat dönüşümü, genişletilmiş trigonometri ve logaritma tuşları, X ve Y kayıtlarındaki değerler üzerinde tanıdık mühendislik ve bilimsel işlemleri gerçekleştirdiler. Bu işlemler, Jack Volder'ın CORDIC algoritmalarını kullandı.

Bir operatör HP 9100A'da hesaplamaları elle nasıl gerçekleştireceğini öğrendikten sonra, programlama kolaylaştı çünkü hesap makinesinin programlama dili ezberlenmiş tuş vuruşlarından oluşuyordu. HP 9100