edubun
Bahasa Indonesia

Apa yang dikerjakan CPU

Prosesor 3 GHz berdetak 3 miliar kali per detik, satu detak setiap sepertiga nanodetik.

Bayangkan sebuah kelas komputer. (Ini adegan rekaan.) Enam belas kotak bernomor digambar di papan, masing-masing berisi delapan bit. Tiga siswa memerankan CPU. Satu memegang kartu bertulisan PC, satu kartu IR, satu kartu ACC. Kartu PC bertulisan 0. Siswa IR berjalan ke kotak 0 dan menyalin isinya, 0001 1110, dan siswa PC mengubah kartunya menjadi 1. Kelas mencari empat bit pertama di tabel yang tertempel di dinding: 0001 berarti LOAD. Empat bit terakhir, 1110, adalah 14. Jadi siswa ACC pergi ke kotak 14 dan menyalin angka 7 yang ia temukan di sana. Lalu semuanya dimulai lagi dari kotak 1.

Kotak 1 berbunyi ADD 15, jadi ACC menjadi 7 + 5 = 12. Kotak 2 berbunyi STORE 13, dan siswa ACC menulis 12 ke kotak 13. Kotak 3 berbunyi HALT, dan semua orang duduk. Seluruhnya dua belas langkah. Tak seorang pun dari ketiganya perlu tahu bahwa program itu "menjumlahkan 7 dan 5". Masing-masing mengikuti satu aturan kecil. Kotak-kotak itu adalah memori, kartu-kartu itu register, dan tabel di dinding adalah dekoder. CPU sungguhan bekerja dengan cara yang sama, miliaran kali per detik, dan tidak ada apa pun di dalamnya yang memahami program itu juga.

Putaran pendek yang sama, miliaran kali per detik

Gerbang bisa menjumlah, membandingkan, dan memilih, tetapi harus ada yang memberi tahu apa yang dikerjakan, dalam urutan apa, dan dengan bilangan mana. Itulah tugas unit pemrosesan pusat, CPU. CPU mengulang satu putaran pendek. Program counter (PC, pencacah program) menyimpan alamat instruksi berikutnya. Fetch (ambil): CPU membaca sel yang ditunjuk PC ke instruction register (IR, register instruksi) dan memajukan PC satu langkah. Decode (urai): rangkaian kendali melihat bit opcode dan menyiapkan jalur yang tepat, misalnya menyambungkan penjumlah untuk ADD. Execute (jalankan): pekerjaannya dilakukan. Sebuah bilangan dimuat, dijumlahkan, atau disimpan, atau PC diubah sehingga program melompat ke tempat lain. Lalu putarannya dimulai lagi. Satu instruksi, JZ, melompat hanya jika akumulator bernilai nol, dan satu jenis lompatan inilah yang membuat program bisa memutuskan dan mengulang.

Memuat

Seret untuk memutar. Gulir atau cubit untuk memperbesar.

Program di sel 0 sampai 3 menjumlahkan 7 (sel 14) dan 5 (sel 15), lalu menyimpan 12 di sel 13. Tekan Langkah untuk maju satu fase setiap kali dan perhatikan PC, IR, dan ACC. Empat instruksi memakan dua belas fase. Lalu pilih 4 × 3, yang mengalikan dengan menjumlahkan 4 tiga kali memakai perulangan, atau Hitung mundur.

Adegan menjalankan program yang sama dengan yang diperagakan kelas. Tekan Langkah, dan PC, IR, serta ACC berubah persis seperti kartu-kartu tadi: LOAD 14, lalu ADD 15, STORE 13, dan HALT, empat instruksi yang masing-masing tiga fase, seluruhnya dua belas fase. Program perkalian memakai beberapa instruksi yang sama, tetapi JZ dan JUMP-nya mengirim PC kembali ke 0 dua kali sebelum pencacah di sel 15 mencapai nol, jadi program itu menjalankan 24 instruksi dalam 72 fase. Enam kali jumlah instruksi penjumlahan tadi.

Program berada di memori yang sama dengan bilangan

Di papan, instruksi dan bilangan 7 serta 5 berada di deretan kotak yang sama. Itu bukan kebetulan. Pada Juni 1945 John von Neumann menulis "First Draft of a Report on the EDVAC", yang menggambarkan komputer yang menyimpan instruksinya di memori yang sama dengan datanya, dan hampir semua komputer sejak itu bekerja dengan cara tersebut. Instruksi hanyalah bilangan yang bit-bitnya dibagi menjadi beberapa bagian. Di komputer mainan ini setiap sel menampung 8 bit. Empat bit pertama menyatakan apa yang dikerjakan, yaitu opcode, dan empat bit terakhir menyatakan sel mana yang dipakai, yaitu alamat. 0001 adalah LOAD, jadi 0001 1110 berarti "LOAD 14": salin bilangan di sel 14 ke akumulator, register kerja CPU.

Seberapa cepat putarannya

Langkah-langkah itu mengikuti sinyal clock (detak), tegangan yang menyala dan mati dengan laju tetap. Clock 3 GHz berdetak 3 000 000 000 kali per detik, jadi satu detak berlangsung 1 ÷ 3 000 000 000 detik, sekitar 0.333 nanodetik. Cahaya hanya menempuh sekitar 10 sentimeter dalam waktu itu. Dengan satu fase per detak, detaknya cukup untuk menjalankan program 7 + 5 milik mainan ini 250 juta kali per detik. Prosesor sungguhan tidak menyelesaikan satu instruksi utuh per detak dengan cara sederhana seperti mainan kita. Prosesor menumpangtindihkan fase beberapa instruksi seperti ban berjalan, yang disebut pipelining, dan chip masa kini memuat beberapa prosesor lengkap, yang disebut core (inti), berdampingan. Mainan ini tidak punya semua itu, dan justru karena itu kamu bisa mengikutinya dengan tangan.

OpcodeNamaFungsinya
0000HALTBerhenti
0001LOAD aACC = sel a
0010ADD aACC = ACC + sel a
0011SUB aACC = ACC − sel a
0100STORE asel a = ACC
0101JUMP aPC = a
0110JZ ajika ACC = 0, PC = a
Kesalahan umum
  • "PC menghitung berapa instruksi yang sudah dijalankan." PC menyimpan alamat instruksi berikutnya. Dalam program 4 × 3, PC dikirim kembali ke 0 dua kali, sementara jumlah instruksi yang selesai terus naik sampai 24.
  • "CPU membaca program seperti cara kita membacanya." CPU membaca 8 bit, membaginya menjadi opcode dan alamat, lalu mengikuti kabel tetap untuk opcode itu. Seperti para siswa dengan kartunya, CPU tidak pernah tahu bahwa program itu menjumlahkan 7 dan 5.
  • "Angka GHz yang lebih tinggi selalu berarti komputer yang lebih cepat." Clock menentukan seberapa sering satu langkah bisa terjadi, bukan seberapa banyak pekerjaan yang selesai dalam setiap detak. Chip sungguhan menumpangtindihkan fase instruksi dan punya beberapa core, jadi dua chip dengan GHz yang sama bisa menyelesaikan jumlah pekerjaan yang sangat berbeda.
Catatan untuk guruPeragakan dulu sebelum menunjukkan adegan. Gambar enam belas kotak, bagikan tiga kartu (PC, IR, ACC), dan jalankan program 7 + 5 satu fase setiap kali, dengan kelas menyebutkan setiap fase. Bagian yang membuat siswa tersesat adalah bahwa PC sudah maju saat fetch, jadi ketika sebuah instruksi dijalankan, PC sudah menunjuk instruksi berikutnya. Berhenti sesudah fetch pertama dan tanyakan apa yang tertulis di PC. JUMP dan JZ lalu masuk akal sebagai "tulis bilangan baru di kartu PC". Setelah peragaan berhasil, tombol Langkah di adegan akan terasa akrab.
  1. Urutkan fase-fase siklus instruksi.
  2. CPU mengambil (fetch) instruksi di alamat 3. Berapa nilai PC tepat sesudah fetch?
  3. Di komputer mainan, apa arti 0010 1111?
    • ADD 15
    • LOAD 15
    • STORE 2
    • ADD 7
  4. Tulis LOAD 14 sebagai 8 bit.
  5. Sebuah clock berjalan pada 3 GHz. Berapa lama satu detak, dalam nanodetik? (tiga tempat desimal)
  6. Berapa instruksi yang dijalankan program 7 + 5, termasuk HALT?
  7. Setiap instruksi memakan tiga fase. Berapa fase yang dibutuhkan program 7 + 5?
  8. Apa yang dilakukan STORE 13?
    • Menyalin akumulator ke sel 13
    • Menyalin sel 13 ke akumulator
    • Melompat ke alamat 13
    • Menambahkan 13 ke akumulator
  9. Instruksi mana yang membuat program bisa mengulang perulangan sampai hitungan mencapai nol?
    • JZ (lompat jika nol)
    • STORE
    • HALT
    • LOAD
  10. Pada tahun berapa von Neumann menulis First Draft of a Report on the EDVAC?
Poin penting
  • Program disimpan sebagai bilangan di memori yang sama dengan data (von Neumann, 1945).
  • CPU mengulang fetch, decode, execute; PC menunjuk instruksi berikutnya.
  • Bit-bit instruksi dibagi menjadi opcode dan alamat.
  • Clock menentukan temponya: 3 GHz berarti satu detak setiap 0.333 ns.
Sumber kursus ini (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

Diperiksa: 2026-10-17