Month: November 2014

First Effort to Build My Own Processor (1)

Untuk membuat prosesor, terlebih dulu saya mesti membuat spesifikasi awal prosesor saya, misalnya seberapa besar lebar bit yang dipakai.

Nah, meskipun penamaan kurang penting, tapi nama prosesor itu perlu untuk memudahkan pembaca merujuk prosesor saya. Baiklah, saya beri nama prosesor saya AdjieCPU.

Saya ingin AdjieCPU menjadi prosesor 4-bit. Itu berarti, AdjieCPU punya register, data bus, address bus selebar 4-bit.

Saya juga ingin AdjieCPU dibuat dengan komponen diskrit, tapi saya tidak segila pencipta CPU MT15 di link ini yang membuat CPU dari 3000 transistor, lagipula akan terlalu repot dan kecepatannya juga tidak bisa terlalu cepat. AdjieCPU dibuat dengan IC TTL (keluarga 74xx atau 4004, dan juga beberapa IC tipe lain). Dengan mengambil alternatif IC TTL, AdjieCPU setidaknya bisa berjalan di rentang 1 MHz-8 MHz.

Tapi sebagai pembuat prosesor pemula, saya cukup fokus saja pada desain yang berjalan dengan baik dulu, setelah itu baru tingkatkan kecepatan (baca juga esai tentang perancangan prosesor lain di link ini).

Nah, setelah mendefinisikan spesifikasi AdjieCPU (boleh jadi spesifikasi yang saya buat tidak lengkap, namun akan dilengkapi begitu dirasa perlu), saya perlu menentukan hal lain: saya ingin AdjieCPU punya beberapa pin input output digital (No analog to digital Pin, no PWM, they are simply just too complex for now), dan mampu melakukan operasi boolean sederhana. AdjieCPU hanyalah CPU 4-bit, sederhananya hanya ada 2^4 = 16 set instruksi yang mungkin.

Build Everything in Your Own: Microprocessor

People who are really serious about software should make their own hardware   -Alan Kay

Perancangan prosesor sangat menarik buat saya, prosesor tidak punya bagian mekanik yang bergerak namun dapat melakukan banyak hal, sama seperti otak kita. Hal itulah yang membuat saya kagum.

Orang yang benar-benar serius tentang perangkat lunak semestinya membuat perangkat kerasnya sendiri. Penafsiran saya, untuk betul-betul mengetahui how the software we are using really work underhood, kita mesti tahu bagaimana instruksi alias program komputer dieksekusi. Inilah alasannya mengapa kita harus membuat hardware kita sendiri.

Anda tahu modem? Pernah bongkar “mesin” modem USB Anda? Jika dibongkar, Anda akan temui chip modem yang menjadi pusat pemrosesan data yang lalu-lalang. Ada bagian yang bergerak? Tidak. Namun benda sekecil itu mampu memproses hingga jutaan informasi tiap detiknya.

Baik, sekarang mari kita fokuskan ke prosesor. Ketika membuat prosesor, kita benar-benar dibebaskan untuk merealisasikan desain apapun yang kita mau. Bahkan, kita bisa membuat instruction set sendiri sesuka kita, menambah kurang fitur-fitur yang diimplementasikan oleh prosesor buatan kita, menentukan seberapa cepat ia berjalan, dan seterusnya.

Jika Anda membayangkan prosesor adalah otak komputer yang diproduksi Intel dan AMD, Anda tidak salah. Tapi sebetulnya tidak terbatas itu saja, Anda bahkan sebetulnya bisa membuat sendiri prosesor di rumah, really, namun tentu tidak secepat prosesor laptop Anda. :p

Prosesor buatan rumah
Prosesor buatan Intel

Ada sebuah instructable mengenai pembuatan prosesor 8-bit sederhana di link ini. Cukup mudah diikuti meskipun saya sendiri belum pernah mencobanya.

Anda sebenarnya tidak mesti jadi seorang sarjana elektro atau computer scientist untuk mengerjakan proyek ini, namun mempelajari sistem digital baik di universitas ataupun secara otodidak akan sangat banyak membantu Anda mengerti perancangan prosesor. Ada banyak buku-buku yang menawarkan informasi berharga mengenai topik ini, mulai dari yang murah hingga mahal, dari yang berbahasa inggris sampai bahasa Indonesia pun juga ada.

Jika Anda tertarik dengan dunia rancang-merancang makhluk kecil nan powerful ini, Anda bisa mengikuti link yang saya sediakan di posting berikut ini.