Membuat komputer primitif dari awal

Komputer itu mudah. Atau tidak?


Siapa pun yang tertarik di bidang teknologi informasi, setidaknya pernah memikirkan bagaimana sebenarnya komputer itu bekerja. Dan memang, dengan bantuan komputer Anda dapat melakukan banyak hal yang mengejutkan sehingga tidak mungkin untuk percaya bahwa semua yang terjadi di dalamnya adalah penambahan angka. Kenapa tidak melakukannya sendiri?

gambar

Gagasan ini jelas terlihat dalam buku "Kode" Charles Petzold - bacaan yang bagus untuk mereka yang ingin memahami perangkat komputer dengan jari mereka tanpa menghabiskan banyak waktu. Buku ini memberi kesan kuat pada saya, sehingga saya memutuskan bahwa komputer adalah unit yang sangat sederhana dan tidak ada yang rumit tentangnya.

Tapi ini tidak benar. Setelah membaca, saya masih merasa ada sesuatu yang disembunyikan dari saya, bahwa beberapa aspek arsitektur tidak terpengaruh sama sekali. Untuk informasi lebih lanjut, saya membuka buku berikutnya, Arsitektur Komputer karya Andrew Tanenbaum . Informasi dalam buku ini jauh lebih luas, tetapi saya tidak mendapatkan apa yang saya inginkan.

Pada jalan saya di dunia arsitektur komputer berhenti, studi dimulai, saya terganggu oleh proyek-proyek lain yang lebih menarik bagi saya pada waktu itu. Tapi, sayangnya, saya adalah salah satu dari orang-orang yang tidak dapat menggunakan apa pun tanpa penyesalan, tidak tahu setidaknya secara kasar mekanisme alat ini. Itu membuat saya mencari materi tentang segalanya.

Serangkaian kekecewaan muncul setelah membaca beberapa bab buku tentang mesin game, kompiler, sistem operasi, dll. Saya hanya bingung: dunia yang kelihatannya logis dan sederhana pada saat itu menjadi besar dan membingungkan, membutuhkan pengetahuan yang mengesankan.

Awal dari perjalanan yang luar biasa


Apa yang menyelamatkan saya adalah tanggapan dari satu pengguna di beberapa forum terhadap jabatan seseorang yang menderita "gangguan" serupa, dunia IT tampak begitu besar baginya sehingga tentu saja tidak dapat dipahami. Saya ingat kata-kata itu, dan mereka membantu saya setiap kali saya menemukan sesuatu yang baru. "Jangan biarkan diri Anda kewalahan" adalah sesuatu yang harus dikatakan oleh setiap pemula IT.

Dan kemudian saya mulai menjelajah Internet dengan semangat baru untuk mencari literatur. Saya sangat beruntung menemukan buku The Elements of Computing Systems yang sangat bagus. Membangun Komputer Modern dari Prinsip Pertama ”oleh Noam Nisan dan Shimon Schocken (tidak ada edisi Rusia). Bagi mereka seperti saya yang menunjukkan penciptaan komputer yang benar-benar berfungsi dari awal, yaitu dari gerbang logis.

Saya mendapat ide dan mulai bekerja. Dia mulai dengan apa yang pernah dia lakukan setelah membaca Petzold - adders, register, multiplexer. Ini adalah beberapa perangkat paling sederhana, yang pekerjaannya sama sekali tidak sulit untuk dipahami (jika tidak memikirkan efisiensi), dan Anda dapat melakukannya dalam 10 menit dalam aplikasi yang mudah digunakan pada smartphone Anda.

Saya memulai setiap bab berikutnya dengan haus akan pengetahuan. Dirancang ALU, dipandu oleh tugas-tugas dalam buku ini. Saya tidak bisa mengatakan bahwa saya membuat sesuatu di dalamnya, mereka memberi saya bagian yang sudah jadi, dan saya memasangnya di mobil yang indah. Tapi betapa senangnya saya ketika saya menyadari bahwa saya telah membuat ALU yang berfungsi penuh dengan tangan saya sendiri.

Papan sirkuit ALU, dibuat di program BOOLR
gambar

Buah pertama


Itu diikuti oleh prosesor 16-bit yang berfungsi penuh, yang saya selesaikan hari ini. Tidak ada batasan untuk kebahagiaan saya, tetapi saya tidak akan berhenti. Saya menyesal, meskipun seluruh prosesor dalam buku ini dirakit sepenuhnya dari awal, assembler untuk itu adalah abstraksi dalam bab berikutnya (yang logis, buku ini dirancang untuk sedikit banyak lebih ringkas, walaupun penjelasan rinci). Setelah sedikit sedih, saya menyadari bahwa Assemblies juga merupakan bahasa pemrograman, dan membuat Assembler penuh dari awal akan membutuhkan banyak waktu.

Skema prosesor jadi. Bintik hitam besar adalah ALU yang sama
gambar

Tentang assembler dalam sebuah buku
Bahkan, topik ini dalam buku itu tidak sepenuhnya dihilangkan. Dikatakan assembler dapat ditulis menggunakan bahasa pemrograman tingkat tinggi. Sebagai seorang idiot dan pemberani, opsi ini tidak cocok untuk saya, saya ingin melakukan semuanya dengan tangan saya sendiri menggunakan prosesor yang saya miliki. Dan ya, saya mengerti bahwa saya akan kehilangan banyak waktu, tetapi saya akan menikmatinya, saya yakin.

Menulis Assembler Anda adalah tujuan yang ambisius, tetapi ini bukan satu-satunya kesulitan. Jalan yang saya pilih berjanji menjadi sulit. Registrasi dan dalam memori umum dalam program BOOLR hanya dapat diimplementasikan menggunakan gerbang logika. Mengapa ini menjadi masalah? Ini sederhana: RAM 1024 byte yang tidak signifikan, puluhan kali secara rekursif mencoba memasukkan register 16-bit komposit mereka ke dalam RAM komputer saya. Inilah yang terjadi:

Cuplikan layar dari Daftar Proses Pengelola Tugas

Secara umum, kadang-kadang suatu proyek tidak terbuka karena kurangnya RAM. Sepertinya jalan buntu, tetapi saya tidak bermaksud untuk berhenti di situ.

Source: https://habr.com/ru/post/id483568/


All Articles