Topik ini memetakan enam anak tangga yang dinaiki sepanjang jalur, yaitu gerbang logika, ALU, register dan memori, CPU, ISA, serta sistem operasi. Setiap anak tangga dilihat dari dua sisi yang sama, yaitu apa yang dibangun pada lapisan itu dan apa yang dianggap sudah jadi dari lapisan di bawahnya. Setelah peta ini tersedia, setiap topik teknis sepanjang jalur memiliki alamat yang jelas pada tangga.
Enam anak tangga, dua arah#
Tangga abstraksi komputer memiliki dua arah yang sama pentingnya. Arah pembangunan bergerak dari bawah ke atas, karena setiap lapisan hanya bisa dibangun dari bantuan lapisan tepat di bawahnya. Arah penggunaan bergerak dari atas ke bawah, karena aplikasi memanggil sistem operasi, sistem operasi meminta kerja prosesor, dan prosesor meminta kerja rangkaian. Diagram berikut menggambar keenam anak tangga itu sebagai satu tangga utuh beserta arah pembangunannya.
Definisi ringkas keenam anak tangganya adalah sebagai berikut.
- Gerbang logika adalah rangkaian yang menghasilkan keluaran boolean dari sejumlah masukan boolean, dibangun dari transistor.
- ALU (arithmetic logic unit) adalah rangkaian penghitung operasi aritmetika dan logika untuk nilai multi-bit, yaitu banyak bit sekaligus, dibangun dari gerbang.
- Register dan memori adalah penyimpanan state, yaitu nilai yang bertahan antar langkah, yang dibaca dan ditulis melalui alamat, dibangun dari flip-flop dan clock.
- CPU (central processing unit) adalah rangkaian yang mengambil, menafsirkan, dan menjalankan instruksi satu per satu, dirangkai dari ALU, register, dan memori.
- ISA (instruction set architecture) adalah kontrak instruksi mesin antara perangkat keras dan perangkat lunak, diwujudkan oleh CPU.
- Sistem operasi adalah pengelola perangkat keras yang mengubah mesin mentah menjadi layanan bagi program, dibangun di atas ISA.
Tiga anak tangga pertama: gerbang, ALU, penyimpanan#
Anak tangga pertama adalah gerbang logika, yaitu rangkaian kecil yang menghasilkan keluaran boolean dari sejumlah masukan boolean. Bahan bakunya berupa transistor, dan transistor dianggap sudah jadi, yaitu perilaku fisiknya diterima apa adanya tanpa dibedah lebih jauh. Pada anak tangga ini, gerbang seperti AND, OR, NOT, dan XOR dideskripsikan dalam teks berupa HDL (hardware description language), bahasa untuk mendeskripsikan perangkat keras, sehingga perilakunya dapat diuji tanpa merakit komponen sungguhan.
Anak tangga kedua menaikkan skala dari satu bit ke banyak bit. ALU menerima dua nilai multi-bit beserta sinyal pemilih operasi, lalu mengembalikan hasil operasi tersebut, misalnya penjumlahan atau perbandingan. Rangkaiannya dibangun dari penjumlah biner dan pemilih jalur, yang keduanya tersusun dari gerbang. Yang dianggap sudah jadi pada lapisan ini adalah perilaku gerbang sebagaimana tertera pada tabel kebenarannya, sedangkan yang baru dibangun adalah kemampuan menghitung untuk nilai utuh multi-bit.
Anak tangga ketiga menambahkan dimensi waktu. Gerbang dan ALU adalah rangkaian kombinasional, yaitu keluarannya sepenuhnya ditentukan oleh masukan saat itu juga, sehingga keduanya tidak mampu mengingat apa pun. Register dibangun dari flip-flop yang mengunci nilai pada tepi denyut clock, sedangkan RAM dibangun sebagai larik sel yang dipilih melalui alamat. Yang dianggap sudah jadi di sini adalah ALU beserta gerbangnya, sedangkan yang ditawarkan ke lapisan di atas berupa penyimpanan yang isinya bertahan antar denyut clock.
CPU dan ISA: mesin beserta kontraknya#
Anak tangga keempat merangkai seluruh bahan menjadi satu mesin. CPU menempatkan ALU, register, dan memori dalam datapath, yaitu jalur kabel yang mengalirkan data antar komponen, kemudian menambahkan rangkaian kontrol yang mengurutkan kerjanya. Setiap langkah mengikuti siklus fetch-decode-execute, yaitu mengambil instruksi dari memori, menafsirkan bit-bitnya, lalu menjalankan operasinya. Yang dianggap sudah jadi pada lapisan ini adalah aritmetika dan penyimpanan, sedangkan yang baru dibangun adalah mesin yang bergerak dengan urutan sendiri.
Anak tangga kelima bukan rangkaian, melainkan kontrak. ISA menetapkan register mana yang terlihat, instruksi apa saja yang tersedia, dan perilaku pasti setiap instruksi. CPU dibangun untuk mengikuti satu ISA, sedangkan program ditulis untuk menargetkan ISA tersebut, dan kedua sisi tidak perlu mengetahui rincian di balik kontrak. Jalur ini memakai RISC-V, khususnya RV32I, yaitu himpunan instruksi dasar 32 bit yang kecil dan teratur.
Batas inilah tempat sisi pembangunan berpindah. Di bawah ISA, yang dibangun berupa rangkaian, sedangkan di atas ISA, yang dibangun berupa program. Implementasi rangkaian boleh berbeda sama sekali antara dua prosesor, sepanjang keduanya mematuhi kontrak yang sama, dan program yang sama tetap berjalan pada keduanya. Sifat inilah yang memungkinkan satu berkas program berjalan pada perangkat keras yang berbeda tanpa perubahan apa pun pada programnya.
Anak tangga teratas: sistem operasi#
Anak tangga keenam menaikkan kontrak ke lapisan pengelolaan. Sistem operasi dibangun di atas ISA dengan bantuan mekanisme perangkat keras seperti mode hak akses dan interupsi (interrupt), yaitu sinyal yang menghentikan program berjalan sejenak agar layanan lain dapat dieksekusi. Dengan bantuan mekanisme itu, sistem operasi mengubah satu mesin mentah menjadi banyak proses yang berjalan bergantian, berkas yang tampak sebagai nama dan isi, serta memori yang tampak luas meski kapasitas aslinya terbatas.
Program aplikasi di puncak tangga tidak menyentuh instruksi mesin secara langsung dalam pekerjaan sehari-hari. Permintaan layanan dikirim melalui system call, yaitu mekanisme meminta layanan inti kepada sistem operasi, dan hasilnya berupa lingkungan yang seragam di atas perangkat keras yang berbeda-beda. Dari bawah ke atas, setiap lapisan menawarkan cara menyatakan yang lebih abstrak kepada lapisan di atasnya, dengan konsekuensi berupa rincian yang makin jauh dari fisika perangkat kerasnya. Pola itulah yang diulang-ulang pada setiap topik teknis sepanjang jalur ini.
Ringkasan#
- Tangga terdiri atas enam anak tangga, dan setiap lapisan dibangun hanya dari bantuan lapisan tepat di bawahnya.
- Gerbang logika memberi fungsi boolean, ALU memberi aritmetika multi-bit, register dan memori memberi penyimpanan, lalu CPU merangkai ketiganya menjadi mesin eksekusi instruksi.
- ISA menetapkan kontrak instruksi yang mengikat perangkat keras dengan perangkat lunak, sedangkan sistem operasi berdiri di atas kontrak itu dan menawarkan layanan berupa proses serta berkas.
Referensi#
- Nand to Tetris — Nisan dan Schocken — Proyek ini menaiki jenjang yang sama dari gerbang NAND hingga sistem operasi dan menjadi acuan bentuk tangga pada topik ini.
- RISC-V ISA Manual — RISC-V International — Dokumen resmi ISA RISC-V yang merinci kontrak RV32I yang disebut pada anak tangga kelima.
- Computation Structures — MIT OpenCourseWare — Mata kuliah ini menaiki tangga yang sama dari bit hingga prosesor lengkap dengan penyusunan bab yang mirip.