Unit pemrosesan pusat
Unit pemrosesan pusat (CPU) adalah bagian penting dari setiap komputer. CPU mengirimkan sinyal untuk mengontrol bagian lain dari komputer, hampir seperti bagaimana otak mengontrol tubuh.
CPU adalah mesin elektronik yang bekerja pada daftar hal-hal yang harus dilakukan komputer, yang disebut instruksi. CPU membaca daftar instruksi dan menjalankan (mengeksekusi) masing-masing instruksi secara berurutan. Daftar instruksi yang dapat dijalankan CPU adalah program komputer.
Clock rate, atau kecepatan bagian internal CPU, diukur dalam hertz (Hz). Prosesor modern sering kali berjalan begitu cepat sehingga gigahertz (GHz) digunakan sebagai gantinya. Satu GHz adalah 1.000.000.000 siklus per detik.
Sebagian besar CPU yang digunakan dalam komputer desktop (rumahan) adalah mikroprosesor yang dibuat oleh Intel atau Advanced Micro Devices (biasanya disingkat menjadi AMD). Beberapa perusahaan lain yang membuat CPU adalah ARM, IBM, dan AMD di bawah ATI Technologies, yang merupakan pemimpinnya saat ini. Sebagian besar CPU mereka digunakan dalam sistem tertanam untuk hal-hal yang lebih khusus, seperti di ponsel, mobil, konsol game, atau di militer.
CPU Pentium di dalam komputer
Jenis-jenis CPU
Pada abad ke-20, para insinyur menemukan banyak arsitektur komputer yang berbeda. Saat ini kebanyakan komputer desktop menggunakan CPU 32-bit atau CPU 64-bit. Instruksi-instruksi dalam CPU 32-bit bagus dalam menangani data yang berukuran 32 bit (kebanyakan instruksi "berpikir" dalam 32 bit dalam CPU 32-bit). Demikian juga, CPU 64-bit bagus dalam menangani data yang berukuran 64 bit (dan sering kali bagus juga dalam menangani data 32-bit). Ukuran data yang paling baik ditangani oleh CPU sering disebut ukuran kata CPU. Banyak CPU lama dari tahun 70-an, 80-an dan awal 90-an (dan banyak sistem embedded modern) memiliki ukuran kata 8-bit atau 16-bit. Ketika CPU ditemukan pada pertengahan abad ke-20, mereka memiliki banyak ukuran kata yang berbeda. Beberapa memiliki ukuran kata yang berbeda untuk instruksi dan data. Ukuran kata yang kurang populer kemudian berhenti digunakan.
Kebanyakan CPU adalah mikroprosesor. Ini berarti bahwa CPU hanyalah sebuah chip tunggal. Beberapa chip dengan mikroprosesor di dalamnya juga mengandung komponen lain, dan merupakan "komputer" chip tunggal yang lengkap. Ini disebut mikrokontroler.
Register
Apabila CPU menjalankan program komputer, CPU memerlukan suatu tempat untuk menyimpan data yang dioperasikan oleh instruksi (data yang dibaca dan ditulis). Penyimpanan ini disebut register. CPU biasanya memiliki banyak register. Register harus sangat cepat untuk diakses (untuk membaca dan menulis). Oleh karena itu, register merupakan bagian dari chip CPU itu sendiri.
Memori
Menyimpan semua data dalam register akan membuat sebagian besar CPU terlalu rumit (dan sangat mahal). Oleh karena itu, register biasanya hanya menyimpan data yang sedang dikerjakan CPU "sekarang". Sisa data yang digunakan oleh program disimpan dalam RAM (memori). Kecuali pada mikrokontroler, RAM biasanya disimpan di luar CPU dalam chip terpisah.
Apabila CPU ingin membaca atau menulis data dalam RAM, CPU akan mengeluarkan alamat ke data tersebut. Setiap byte dalam RAM memiliki alamat memori. Ukuran alamat sering kali sama dengan ukuran kata: CPU 32-bit menggunakan alamat 32-bit, dll. Namun, CPU yang lebih kecil, seperti CPU 8-bit, sering menggunakan alamat yang lebih besar dari ukuran kata. Jika tidak, panjang program maksimum akan terlalu pendek.
Karena ukuran alamat terbatas, jumlah maksimum memori juga terbatas. Prosesor 32-bit biasanya hanya bisa menangani RAM hingga 4 GB. Ini adalah jumlah byte berbeda yang dapat dipilih dengan menggunakan alamat 32-bit (setiap bit dapat memiliki dua nilai-0 dan 1-dan 232 byte adalah 4 GB). Prosesor 64-bit mungkin bisa menangani hingga 16 EB RAM (16 exabytes, sekitar 16 miliar GB, atau 16 miliar miliar byte). Sistem operasi mungkin membatasi penggunaan jumlah yang lebih kecil.
Informasi yang disimpan dalam RAM biasanya mudah menguap. Ini berarti bahwa informasi tersebut akan hilang jika komputer dimatikan.
Cache
Pada komputer modern, RAM jauh lebih lambat daripada register, sehingga mengakses RAM memperlambat program. Untuk mempercepat akses memori, jenis memori yang lebih cepat yang disebut cache sering diletakkan di antara RAM dan bagian utama CPU. Cache biasanya merupakan bagian dari chip CPU itu sendiri, dan jauh lebih mahal per byte daripada RAM. Cache menyimpan data yang sama seperti RAM, tetapi biasanya jauh lebih kecil. Oleh karena itu, semua data yang digunakan oleh program mungkin tidak muat dalam cache. Cache mencoba menyimpan data yang kemungkinan besar akan banyak digunakan. Contohnya termasuk data yang baru saja digunakan dan data yang dekat dalam memori dengan data yang baru saja digunakan.
Sering kali masuk akal untuk memiliki "cache untuk cache", sama seperti masuk akal untuk memiliki cache untuk RAM. Dalam cache multi-level, ada banyak cache, yang disebut cache L1, cache L2, dan seterusnya. Cache L1 adalah cache tercepat (dan paling mahal per byte) dan "paling dekat" dengan CPU. Cache L2 selangkah lebih jauh dan lebih lambat dari cache L1, dst. Cache L1 sering kali dapat dipandang sebagai cache untuk cache L2, dll.
Bus
Bus komputer adalah kabel yang digunakan oleh CPU untuk berkomunikasi dengan RAM dan komponen lain dalam komputer. Hampir semua CPU memiliki setidaknya bus data - digunakan untuk membaca dan menulis data - dan bus alamat - digunakan untuk mengeluarkan alamat. Bus-bus lain di dalam CPU membawa data ke berbagai bagian CPU.
Set instruksi
Set instruksi (juga disebut ISA - Instruction Set Architecture) adalah bahasa yang dipahami secara langsung oleh CPU tertentu. Bahasa ini juga disebut kode mesin atau biner. Bahasa-bahasa ini menjelaskan bagaimana Anda memerintahkan CPU untuk melakukan berbagai hal yang berbeda, seperti memuat data dari memori ke dalam sebuah register, atau menambahkan nilai dari dua register. Setiap instruksi dalam set instruksi memiliki pengkodean, yaitu bagaimana instruksi ditulis sebagai urutan bit.
Program yang ditulis dalam bahasa pemrograman seperti C dan C++ tidak dapat dijalankan langsung oleh CPU. Program-program tersebut harus diterjemahkan ke dalam kode mesin sebelum CPU dapat menjalankannya. Kompiler adalah program komputer yang melakukan penerjemahan ini.
Kode mesin hanyalah urutan 0 dan 1, yang membuatnya sulit bagi manusia untuk membacanya. Untuk membuatnya lebih mudah dibaca, program kode mesin biasanya ditulis dalam bahasa assembly. Bahasa assembly menggunakan teks, bukan 0s dan 1s: Anda mungkin menulis "LD A,0" untuk memuat nilai 0 ke dalam register A misalnya. Program yang menerjemahkan bahasa assembly ke dalam kode mesin disebut assembler.
Fungsi
Berikut ini beberapa hal dasar yang bisa dilakukan CPU:
- Membaca data dari memori dan menulis data ke memori.
- Menambahkan satu angka ke angka lain.
- Uji untuk melihat apakah satu angka lebih besar dari angka lainnya.
- Memindahkan angka dari satu tempat ke tempat lain (misalnya, dari satu register ke register lain, atau antara register dan memori).
- Melompat ke tempat lain dalam daftar instruksi, tetapi hanya jika beberapa tes benar (misalnya, hanya jika satu angka lebih besar dari angka lainnya).
Bahkan program yang sangat rumit pun dapat dibuat dengan menggabungkan banyak instruksi sederhana seperti ini. Hal ini dimungkinkan karena setiap instruksi membutuhkan waktu yang sangat singkat untuk terjadi. Banyak CPU saat ini dapat melakukan lebih dari 1 miliar (1.000.000.000) instruksi dalam satu detik. Secara umum, semakin banyak yang dapat dilakukan CPU dalam waktu tertentu, semakin cepat CPU tersebut. Salah satu cara untuk mengukur kecepatan prosesor adalah MIPS (Million Instructions Per Second). Flops (Operasi floating-point per detik) dan kecepatan clock CPU (biasanya diukur dalam gigahertz) juga merupakan cara untuk mengukur seberapa banyak pekerjaan yang dapat dilakukan prosesor dalam waktu tertentu.
CPU dibangun dari gerbang logika; CPU tidak memiliki bagian yang bergerak. CPU komputer terhubung secara elektronik ke bagian lain dari komputer, seperti kartu video, atau BIOS. Program komputer dapat mengontrol periferal ini dengan membaca atau menulis angka ke tempat khusus dalam memori komputer.
Jalur pipa instruksi
Setiap instruksi yang dijalankan oleh CPU biasanya dilakukan dalam banyak langkah. Sebagai contoh, langkah-langkah untuk menjalankan instruksi "INC A" (meningkatkan nilai yang tersimpan di register A sebanyak satu) pada CPU sederhana bisa seperti ini:
- Baca instruksi dari memori,
- memecahkan kode instruksi (mencari tahu apa yang dilakukan instruksi tersebut), dan
- tambahkan satu untuk mendaftar A.
Bagian CPU yang berbeda melakukan hal-hal yang berbeda ini. Seringkali dimungkinkan untuk menjalankan beberapa langkah dari instruksi yang berbeda pada saat yang sama, yang membuat CPU lebih cepat. Misalnya, kita dapat membaca instruksi dari memori pada saat yang sama kita mendekode instruksi lain, karena langkah-langkah tersebut menggunakan modul yang berbeda. Hal ini dapat dianggap sebagai memiliki banyak instruksi "di dalam pipeline" sekaligus. Dalam kasus terbaik, semua modul bekerja pada instruksi yang berbeda sekaligus, tetapi ini tidak selalu memungkinkan.
Unit manajemen memori (MMU) dan memori virtual
CPU modern sering menggunakan unit manajemen memori (MMU). MMU adalah komponen yang menerjemahkan alamat-alamat dari CPU ke alamat RAM yang (biasanya) berbeda. Ketika menggunakan MMU, alamat-alamat yang digunakan dalam program (biasanya) bukan alamat "nyata" di mana data disimpan. Ini disebut memori virtual (kebalikan dari "real"). Beberapa alasan mengapa sebaiknya memiliki MMU tercantum di bawah ini:
- MMU dapat "menyembunyikan" memori program lain dari suatu program. Hal ini dilakukan dengan tidak menerjemahkan alamat apa pun ke alamat "tersembunyi" sewaktu program sedang berjalan. Ini bagus karena berarti program tidak dapat membaca dan memodifikasi memori program lain, yang meningkatkan keamanan dan stabilitas. (Program tidak bisa "memata-matai" satu sama lain, atau "saling menginjak jari kaki").
- Banyak MMU dapat membuat beberapa bagian memori tidak dapat ditulis, tidak dapat dibaca, atau tidak dapat dieksekusi (artinya kode yang disimpan di bagian memori tersebut tidak dapat dijalankan). Hal ini baik untuk alasan stabilitas dan keamanan, serta untuk alasan lain.
- MMU memungkinkan program yang berbeda untuk memiliki "pandangan" memori yang berbeda. Hal ini berguna dalam banyak situasi yang berbeda. Sebagai contoh, akan selalu memungkinkan untuk memiliki kode "utama" dari sebuah program pada alamat (virtual) yang sama tanpa bertabrakan dengan program lain. Hal ini juga berguna ketika ada banyak potongan kode yang berbeda (dari library) yang digunakan bersama antar program.
- MMU memungkinkan kode dari pustaka muncul di alamat yang berbeda setiap kali program dijalankan. Hal ini bagus karena tidak mengetahui di mana sesuatu berada di memori sering kali mempersulit hacker untuk membuat program melakukan hal-hal buruk. Ini disebut pengacakan ruang alamat.
- Program dan sistem operasi tingkat lanjut bisa menggunakan trik dengan MMU untuk menghindari keharusan menyalin data di antara tempat yang berbeda dalam memori.
Beberapa inti
Prosesor multi-inti menjadi hal yang umum pada awal abad ke-21. Ini berarti bahwa mereka memiliki banyak prosesor yang dibangun pada chip yang sama sehingga mereka dapat menjalankan banyak instruksi sekaligus. Beberapa prosesor mungkin memiliki hingga tiga puluh dua inti, seperti AMD Epyc 7601.
Produsen
Perusahaan-perusahaan berikut ini membuat CPU komputer:
- ARM
- Intel
- Perangkat Mikro Lanjutan
- MCST
- SRISA
- Sun Microsystems
Informasi lebih lanjut
- Mikroprosesor
- ALU
- Unit eksekusi
- Unit titik mengambang
- Intel
- AMD
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan CPU?
J: CPU (unit pemrosesan pusat) adalah bagian penting dari setiap komputer. CPU mengirimkan sinyal untuk mengontrol bagian lain dari komputer, hampir seperti bagaimana otak mengontrol tubuh. CPU adalah mesin elektronik yang bekerja pada daftar instruksi untuk melakukan tugas tertentu.
T: Bagaimana cara kerja CPU?
J: CPU membaca daftar instruksi dan menjalankan (mengeksekusi) masing-masing instruksi secara berurutan. Daftar instruksi yang dapat dijalankan CPU adalah program komputer.
T: Berapa clock rate atau kecepatan CPU diukur?
J: Clock rate atau kecepatan bagian internal CPU diukur dalam hertz (Hz). Prosesor modern sering kali berjalan begitu cepat sehingga gigahertz (GHz) digunakan sebagai gantinya - satu GHz adalah 1.000.000.000 siklus per detik.
T: Siapa saja perusahaan yang membuat CPU?
J: Beberapa perusahaan yang membuat CPU adalah Intel, Advanced Micro Devices (AMD), ARM (baru-baru ini dibeli oleh Nvidia), IBM dan AMD di bawah ATI Technologies yang saat ini memimpin pasar.
T: Di mana sebagian besar CPU digunakan?
J: Sebagian besar CPU yang digunakan dalam komputer desktop adalah mikroprosesor yang dibuat oleh Intel atau AMD, sementara sebagian besar CPU lainnya digunakan dalam sistem tertanam untuk hal-hal yang lebih khusus seperti ponsel, mobil, konsol video game atau aplikasi militer.