Unit Pemroses Sentral: Perbedaan antara revisi
Baris 15: | Baris 15: | ||
[[Berkas:ABasicComputer.gif|jmpl|Diagram blok dari komputer uniprocessor-CPU dasar. Garis hitam menunjukkan aliran data, sedangkan garis merah menunjukkan aliran kontrol; panah menunjukkan arah aliran.]] |
[[Berkas:ABasicComputer.gif|jmpl|Diagram blok dari komputer uniprocessor-CPU dasar. Garis hitam menunjukkan aliran data, sedangkan garis merah menunjukkan aliran kontrol; panah menunjukkan arah aliran.]] |
||
Terpasang ke dalam sirkuit CPU adalah serangkaian operasi dasar yang dapat dilakukannya, yang disebut [[Arsitektur set instruksi|set instruksi]]. Operasi semacam itu mungkin melibatkan, misalnya, menambah atau mengurangi dua angka, membandingkan dua angka, atau melompat ke bagian program yang berbeda. Setiap operasi dasar diwakili oleh kombinasi [[bit]] tertentu, yang dikenal sebagai bahasa mesin [[opcode]] ; saat menjalankan instruksi dalam program bahasa mesin, CPU memutuskan operasi mana yang akan dilakukan dengan "mendekode" opcode. Instruksi bahasa mesin lengkap terdiri dari opcode dan, dalam banyak kasus, bit tambahan yang menentukan argumen untuk operasi (misalnya, angka yang akan dijumlahkan dalam kasus operasi penambahan). Menaikkan skala kompleksitas, program bahasa mesin adalah kumpulan instruksi bahasa mesin yang dieksekusi CPU. |
Terpasang ke dalam sirkuit CPU adalah serangkaian operasi dasar yang dapat dilakukannya, yang disebut [[Arsitektur set instruksi|set instruksi]]. Operasi semacam itu mungkin melibatkan, misalnya, menambah atau mengurangi dua angka, membandingkan dua angka, atau melompat ke bagian program yang berbeda. Setiap operasi dasar diwakili oleh kombinasi [[bit]] tertentu, yang dikenal sebagai bahasa mesin [[opcode]] ; saat menjalankan instruksi dalam program bahasa mesin, CPU memutuskan operasi mana yang akan dilakukan dengan "mendekode" opcode. Instruksi bahasa mesin lengkap terdiri dari opcode dan, dalam banyak kasus, bit tambahan yang menentukan argumen untuk operasi (misalnya, angka yang akan dijumlahkan dalam kasus operasi penambahan). Menaikkan skala kompleksitas, program bahasa mesin adalah kumpulan instruksi bahasa mesin yang dieksekusi CPU. |
||
=== Arithmetic logic unit === |
|||
{{main|Arithmetic logic unit}} |
|||
[[Berkas:ALU_block.gif|jmpl|Representasi simbolik dari ALU dan sinyal input dan outputnya]] |
|||
Arithmetic logic unit (ALU) adalah sirkuit digital di dalam prosesor yang melakukan operasi aritmatika integer dan [[Operasi bitwise|logika bitwise]]. Input ke ALU adalah kata-kata data yang akan dioperasikan (disebut [[operand]]), informasi status dari operasi sebelumnya, dan kode dari unit kontrol yang menunjukkan operasi mana yang harus dilakukan. Bergantung pada instruksi yang dijalankan, operand dapat berasal dari register CPU internal atau memori eksternal, atau mungkin merupakan konstanta yang dihasilkan oleh ALU itu sendiri. |
|||
== Cara Kerja CPU == |
== Cara Kerja CPU == |
Revisi per 8 Agustus 2020 10.31
Unit Pemroses Sentral (bahasa Inggris: Central Processing Unit/Processor; CPU), adalah sirkuit elektronik di dalam komputer yang menjalankan instruksi yang membentuk program komputer. CPU melakukan operasi aritmatika, logika, pengendalian, dan input/output (I/O) dasar yang ditentukan oleh instruksi dalam program. Industri komputer menggunakan istilah "unit pemrosesan pusat" sejak tahun 1955.[1] Secara tradisional, istilah "CPU" mengacu pada prosesor, lebih khusus lagi untuk unit pemrosesan dan control unit (CU), yang membedakan elemen inti komputer ini dari komponen eksternal seperti memori utama dan sirkuit I/O.[2]
Bentuk, desain, dan implementasi CPU telah berubah sepanjang sejarahnya, tetapi operasi fundamentalnya hampir tidak berubah. Komponen utama dari CPU termasuk unit logika aritmatika (ALU) yang melakukan aritmatika dan operasi logika, register prosesor yang memasok operan ke ALU dan menyimpan hasil operasi ALU, dan unit kontrol yang mengatur pengambilan (dari memori) dan eksekusi. instruksi dengan mengarahkan operasi terkoordinasi ALU, register dan komponen lainnya.
Struktur dan implementasi
Terpasang ke dalam sirkuit CPU adalah serangkaian operasi dasar yang dapat dilakukannya, yang disebut set instruksi. Operasi semacam itu mungkin melibatkan, misalnya, menambah atau mengurangi dua angka, membandingkan dua angka, atau melompat ke bagian program yang berbeda. Setiap operasi dasar diwakili oleh kombinasi bit tertentu, yang dikenal sebagai bahasa mesin opcode ; saat menjalankan instruksi dalam program bahasa mesin, CPU memutuskan operasi mana yang akan dilakukan dengan "mendekode" opcode. Instruksi bahasa mesin lengkap terdiri dari opcode dan, dalam banyak kasus, bit tambahan yang menentukan argumen untuk operasi (misalnya, angka yang akan dijumlahkan dalam kasus operasi penambahan). Menaikkan skala kompleksitas, program bahasa mesin adalah kumpulan instruksi bahasa mesin yang dieksekusi CPU.
Arithmetic logic unit
Arithmetic logic unit (ALU) adalah sirkuit digital di dalam prosesor yang melakukan operasi aritmatika integer dan logika bitwise. Input ke ALU adalah kata-kata data yang akan dioperasikan (disebut operand), informasi status dari operasi sebelumnya, dan kode dari unit kontrol yang menunjukkan operasi mana yang harus dilakukan. Bergantung pada instruksi yang dijalankan, operand dapat berasal dari register CPU internal atau memori eksternal, atau mungkin merupakan konstanta yang dihasilkan oleh ALU itu sendiri.
Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di MAA (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Akumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.
Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmetika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan tombol, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (MAA), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada MAA dengan menentukan alamat data yang dikehendaki.
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan MAA. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmetika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.
Percabangan instruksi
Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Selama Tahap-I Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan selama Tahap-II Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di MAA, setelah Instruction Fetch dilakukan. Waktu pada Tahap-I ditambah dengan waktu pada Tahap-II disebut waktu siklus mesin (EN: "machine cycle time").
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.
Bilangan yang dapat ditangani
Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat. Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, yaitu sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmetika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU. Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.
Referensi
- Architecture of the IBM System
- First Draft of a Report on the EDVAC
- The MIPS32® Instruction Set
- Ir. SNMP Simamora, MT,"Course Work: Mikroprosesor dan Antar-muka", Pangalengge Educations, 2006.
Pranala luar
Perancang CPU
- Advanced Micro Devices (AMD)
- ARM Ltd.
- Freescale Semiconductor (Motorola)
- IBM Microelectronics (IBM)
- Intel Corporation (Intel)
- MIPS Technologies (MIPS)
- Texas Instruments
Informasi lain
- ^ ""A Survey of Domestic Electronic Digital Computing Systems"". ed-thelen.org. Diakses tanggal 2020-08-08.
- ^ "Kuck, David (1978). Computers and Computations, Vol 1. John Wiley & Sons, Inc. p. 12." Wikipedia (dalam bahasa Inggris).