Sinopsis
Von Neumann menggambarkan desain rinci dari "sistem komputasi digital otomatis berkecepatan sangat tinggi." Ia membaginya menjadi enam subdivisi utama: bagian aritmetika pusat, CA; bagian kontrol pusat, CC; memori, M; input, I; output, O; dan memori eksternal (lambat), R, seperti kartu pon, pita Teletype, atau kawat magnetik atau pita baja.
CA akan melakukan penambahan, pengurangan, perkalian, pembagian, dan akar kuadrat. Operasi matematika lainnya, seperti logaritma dan fungsi trigonometri, akan dilakukan dengan pencarian tabel dan interpolasi, mungkin bikuadrat. Dia mencatat bahwa perkalian dan pembagian dapat dilakukan dengan tabel logaritma, tetapi untuk menjaga tabel tetap cukup kecil, interpolasi akan diperlukan dan ini pada gilirannya memerlukan perkalian, meskipun mungkin dengan presisi yang lebih rendah.
Angka akan direpresentasikan dalam notasi biner. Dia memperkirakan 27 digit biner (dia tidak menggunakan istilah "bit", yang diciptakan oleh Claude Shannon pada tahun 1948) akan cukup (menghasilkan akurasi 8 tempat desimal) tetapi membulatkannya menjadi angka 30-bit dengan bit tanda dan satu bit untuk membedakan angka dari perintah, menghasilkan kata 32-bit yang dia sebut siklus minor. Aritmetika komplemen dua akan digunakan, menyederhanakan pengurangan. Untuk perkalian dan pembagian, dia mengusulkan untuk menempatkan titik biner setelah bit tanda, yang berarti semua angka diperlakukan berada antara −1 dan +1[a] dan oleh karena itu masalah komputasi harus diskalakan sesuai.
Desain Sirkuit
Tabung vakum akan digunakan daripada relay karena kemampuan tabung untuk beroperasi dalam satu mikrodetik dibandingkan dengan 10 milidetik untuk relay.
Von Neumann menyarankan (Bagian 5.6) untuk menjaga komputer sesederhana mungkin, menghindari segala upaya untuk meningkatkan kinerja dengan tumpang tindih operasi. Operasi aritmetika akan dilakukan satu digit biner pada satu waktu. Dia memperkirakan penambahan dua digit biner membutuhkan waktu satu mikrodetik dan oleh karena itu perkalian 30-bit seharusnya memakan waktu sekitar 302 mikrodetik atau sekitar satu milidetik, jauh lebih cepat daripada perangkat komputasi apa pun yang tersedia pada waktu itu.
Desain Von Neumann dibangun menggunakan apa yang dia sebut "elemen E," yang didasarkan pada model neuron biologis,[1][2] tetapi merupakan perangkat digital yang menurutnya dapat dibangun menggunakan satu atau dua tabung vakum. Dalam istilah modern, elemen E paling sederhana nya adalah gerbang AND dua-input dengan satu input yang dibalik (input inhibit). Elemen E dengan lebih banyak input memiliki ambang batas terkait dan menghasilkan output ketika jumlah sinyal input positif memenuhi atau melebihi ambang batas, asalkan garis inhibit (satu-satunya) tidak diberi pulsa. Dia menyatakan bahwa elemen E dengan lebih banyak input dapat dibangun dari versi paling sederhana, tetapi menyarankan agar mereka dibangun langsung sebagai sirkuit tabung vakum karena lebih sedikit tabung yang akan dibutuhkan.
Blok fungsi yang lebih kompleks akan dibangun dari elemen E ini. Dia menunjukkan cara menggunakan elemen E ini untuk membangun sirkuit untuk penambahan, pengurangan, perkalian, pembagian, dan akar kuadrat, serta blok memori dua keadaan dan sirkuit kontrol. Dia tidak menggunakan terminologi logika Boolean.
Sirkuit akan sinkron dengan osilator jam sistem master yang berasal dari osilator tabung vakum, mungkin dikontrol kristal. Diagram logikanya menyertakan simbol kepala panah untuk menunjukkan penundaan waktu satu unit, karena penundaan waktu harus diperhitungkan dalam desain sinkron. Dia menunjukkan bahwa dalam satu mikrodetik, pulsa listrik bergerak 300 meter sehingga hingga kecepatan jam yang jauh lebih tinggi, misalnya 108 siklus per detik (100 MHz), panjang kawat tidak akan menjadi masalah.
Kebutuhan untuk deteksi dan koreksi kesalahan disebutkan tetapi tidak dijelaskan.
Desain Memori
Konsep desain kunci yang diutarakan, dan kemudian dinamakan arsitektur Von Neumann, adalah memori seragam yang berisi baik angka (data) maupun perintah (instruksi).
"Perangkat ini memerlukan memori yang cukup besar. Meskipun tampaknya berbagai bagian memori ini harus melakukan fungsi yang agak berbeda dalam sifatnya dan cukup berbeda dalam tujuannya, tetapi menggoda untuk memperlakukan seluruh memori sebagai satu organ, dan untuk membuat bagian-bagiannya bahkan dapat dipertukarkan semaksimal mungkin untuk berbagai fungsi yang disebutkan di atas." (Bag. 2.5)
"Perintah yang diterima oleh CC berasal dari M, yaitu dari tempat yang sama di mana materi numerik disimpan." (Bag. 14.0)
Von Neumann memperkirakan jumlah memori yang diperlukan berdasarkan beberapa kelas masalah matematika, termasuk persamaan diferensial biasa dan parsial, pengurutan dan eksperimen probabilitas. Di antaranya, persamaan diferensial parsial dalam dua dimensi plus waktu akan membutuhkan memori paling banyak, dengan tiga dimensi plus waktu berada di luar apa yang dapat dilakukan menggunakan teknologi yang tersedia pada saat itu. Dia menyimpulkan bahwa memori akan menjadi subdivisi terbesar dari sistem dan dia mengusulkan 8.192 siklus minor (kata) dari 32-bit sebagai tujuan desain, dengan 2.048 siklus minor masih berguna. Dia memperkirakan beberapa ratus siklus minor akan cukup untuk menyimpan program.
Dia mengusulkan dua jenis memori cepat, garis tunda dan tabung ikonoskop. Setiap siklus minor akan dialamatkan sebagai satu unit (pengalamatan kata, Bag. 12.8).
Instruksi akan dieksekusi secara berurutan, dengan instruksi khusus untuk beralih ke titik yang berbeda dalam memori (yaitu instruksi lompat).
Digit biner dalam memori garis tunda melewati garis dan diumpankan kembali ke awal. Mengakses data dalam garis tunda memberlakukan penalti waktu sambil menunggu data yang diinginkan muncul lagi. Setelah menganalisis masalah pengaturan waktu ini, dia mengusulkan untuk mengatur memori garis tunda menjadi 256 "organ" garis tunda (DLA) masing-masing menyimpan 1024 bit, atau 32 siklus minor, disebut siklus mayor. Akses memori pertama-tama memilih DLA (8 bit) dan kemudian siklus minor dalam DLA (5 bit), untuk total 13 bit alamat.
Untuk memori ikonoskop, dia mengenali bahwa setiap titik pemindaian pada permukaan tabung adalah kapasitor dan bahwa kapasitor dapat menyimpan satu bit. Pemindaian presisi sangat tinggi akan diperlukan dan memori hanya akan bertahan dalam waktu singkat, mungkin hanya satu detik, dan karena itu perlu disalin ulang secara berkala (direfresh).
Perintah (Instruksi)
Dalam Bag 14.1 von Neumann mengusulkan format untuk perintah, yang dia sebut kode. Jenis perintah mencakup operasi aritmetika dasar, memindahkan siklus minor antara CA dan M (muat dan simpan kata dalam istilah modern), sebuah perintah (s) yang memilih satu dari dua angka berdasarkan tanda dari operasi sebelumnya, input dan output serta mentransfer CC ke lokasi memori lain (lompat). Dia menentukan jumlah bit yang dibutuhkan untuk berbagai jenis perintah, menyarankan perintah langsung di mana kata berikutnya adalah operan, dan membahas keinginan untuk meninggalkan bit cadangan dalam format perintah untuk memungkinkan memori yang dapat dialamatkan lebih banyak di masa depan, serta tujuan tidak terinci lainnya. Kemungkinan menyimpan lebih dari satu perintah dalam satu siklus minor dibahas, dengan sedikit antusiasme untuk pendekatan itu. Tabel perintah disediakan, tetapi tidak ada diskusi tentang instruksi input dan output yang termasuk dalam First Draft.