Unit Pemroses Sentral: Perbedaan antara revisi
k ←Suntingan 140.213.51.127 (bicara) dibatalkan ke versi terakhir oleh NawanPangestu95 Tag: Pengembalian |
Reno-Sifana (bicara | kontrib) k Perbaikan Kosmetika |
||
(41 revisi perantara oleh 17 pengguna tidak ditampilkan) | |||
Baris 1: | Baris 1: | ||
{{Multiple image |
|||
'''Unit Pemroses Sentral''' (UPS) ([[bahasa Inggris]]: '''''Central Processing Unit'''''/'''''Processor'''''; '''CPU'''), merujuk kepada [[perangkat keras]] [[komputer]] yang memahami dan melaksanakan [[instruksi|perintah]] dan [[data]] dari [[perangkat lunak komputer|perangkat lunak]]. Istilah lain, pemroses/prosesor (''processor''), sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang diproduksi dalam [[sirkuit terpadu]], seringkali dalam sebuah paket [[sirkuit terpadu]]-tunggal. Sejak pertengahan tahun [[1970-an]], mikroprosesor [[sirkuit terpadu]]-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU. CPU Merupakan bagian utama dari komputer karena processor berfungsi untuk mengatur semua aktivitas yang ada pada komputer. Kecepatan eksekusi processor tergantung apalagi pada frekuensinya, satuan adalah MHz (MegaHertz) atau GHz (1 GigaHertz = 1000 MegaHertz). |
|||
|direction = vertical |
|||
|width = 120 |
|||
|image1 = Intel 80486DX2 top.jpg |
|||
|caption1 = Sebuah CPU [[Intel 80486DX2]], seperti yang terlihat dari atas |
|||
|image2 = Intel 80486DX2 bottom.jpg |
|||
|caption2 = Sisi bawah [[Intel 80486DX2]], menunjukkan pinnya |
|||
}} |
|||
'''Unit Pemroses Sentral''' atau '''Unit Pengolahan Pusat''' ({{lang-en|Central Processing Unit/Processor (CPU)}}) adalah [[sirkuit elektronik]] di dalam [[komputer]] yang menjalankan [[Set instruksi|perintah]] untuk membentuk [[program komputer]]. CPU melakukan operasi [[aritmatika]], logika, pengendalian, dan masukan/keluaran (I/O) dasar yang ditentukan oleh perintah dalam program. Industri komputer menggunakan istilah "unit pemrosesan pusat" sejak tahun 1955.<ref>{{Cite web|url=http://ed-thelen.org/comp-hist/BRL-i.html#IBM-CPC|title="A Survey of Domestic Electronic Digital Computing Systems".|last=|first=|date=|website=ed-thelen.org|access-date=2020-08-08}}</ref> Secara tradisional, istilah "CPU" mengacu pada [[Prosesor (komputasi)|prosesor]], lebih khusus lagi untuk unit pemrosesan dan [[control unit]] (CU), yang membedakan elemen inti komputer ini dari komponen eksternal seperti [[Penyimpanan data komputer#Penyimpanan utama|memori utama]] dan sirkuit I/O.<ref>{{Cite journal|last=|first=|date=|title=Kuck, David (1978). Computers and Computations, Vol 1. John Wiley & Sons, Inc. p. 12.|url=https://en.wiki-indonesia.club/wiki/Special:BookSources/978-0471027164|journal=Wikipedia|language=en|volume=|issue=|pages=|doi=}}</ref> |
|||
[[Berkas:Intel 80486DX2 bottom.jpg|jmpl|ka|250px|Pin mikroprosesor [[Intel Corporation|Intel]] [[80486|80486DX2]].]] |
|||
Bentuk, [[Desain prosesor|desain]], dan implementasi CPU telah berubah sepanjang sejarahnya, tetapi operasi dasarnya hampir tidak berubah. Komponen utama dari CPU termasuk [[Arithmetic logic unit|unit logika aritmatika]] (ALU) yang melakukan aritmatika dan [[Boolean algebra|operasi logika]], [[register prosesor]] yang memasok [[Operand|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. |
|||
== Komponen CPU == |
|||
[[Berkas:CPU block diagram.svg|ka|jmpl|210px|Diagram blok sederhana sebuah CPU.]] |
|||
== Operasi == |
|||
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut: |
|||
Operasi dasar dari sebagian besar CPU, terlepas dari bentuk fisiknya, adalah menjalankan urutan perintah tersimpan yang disebut program. Perintah yang akan dijalankan disimpan dalam beberapa jenis memori komputer. Hampir semua CPU mengikuti langkah-langkah pengambilan, dekode, dan eksekusi dalam operasinya, yang secara kolektif dikenal sebagai siklus instruksi. |
|||
* '''Unit kontrol''' yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antarkomponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmetika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah: |
|||
** Mengatur dan mengendalikan alat-alat masukan (''input'') dan keluaran (''output''). |
|||
** Mengambil instruksi-instruksi dari memori utama. |
|||
** Mengambil data dari memori utama (jika diperlukan) untuk diproses. |
|||
** Mengirim instruksi ke ALU bila ada perhitungan aritmetika atau perbandingan logika serta mengawasi kerja dari ALU. |
|||
** Menyimpan hasil proses ke memori utama. |
|||
* '''Register''' merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika. |
|||
* '''ALU''' unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut ''mesin bahasa'' karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmetika yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmetika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder. |
|||
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ). |
|||
Setelah eksekusi instruksi, seluruh proses berulang, dengan siklus instruksi berikutnya biasanya mengambil instruksi urutan berikutnya karena nilai yang bertambah di [[Program counter|penghitung program]]. Jika instruksi jump dijalankan, penghitung program akan dimodifikasi untuk memuat alamat instruksi yang dilompati dan eksekusi program berlanjut secara normal. Dalam CPU yang lebih rumit, beberapa perintah dapat diambil, didekodekan, dan dijalankan secara bersamaan. |
|||
* '''CPU Interconnections''' adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, peranti masukan /keluaran. |
|||
== |
=== Fetch === |
||
Langkah pertama, pengambilan, melibatkan pengambilan instruksi (yang diwakili oleh nomor atau urutan angka) dari memori program. Lokasi instruksi (alamat) dalam memori program ditentukan oleh penghitung program (PC), yang menyimpan nomor yang mengidentifikasi alamat instruksi berikutnya yang akan diambil. Setelah instruksi diambil, PC bertambah panjang instruksi sehingga akan berisi alamat instruksi berikutnya secara berurutan.{{Efn|Since the program counter counts ''memory addresses'' and not ''instructions'', it is incremented by the number of memory units that the instruction word contains. In the case of simple fixed-length instruction word ISAs, this is always the same number. For example, a fixed-length 32-bit instruction word ISA that uses 8-bit memory words would always increment the PC by four (except in the case of jumps). ISAs that use variable-length instruction words increment the PC by the number of memory words corresponding to the last instruction's length.}} Seringkali, instruksi yang akan diambil harus diambil dari memori yang relatif lambat, menyebabkan CPU berhenti ketika menunggu instruksi dikembalikan. Masalah ini sebagian besar ditangani dalam prosesor modern oleh tembolok dan arsitektur pipa (lihat di bawah). |
|||
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 Uni''t 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''. |
|||
=== |
=== Dekode === |
||
Instruksi yang diambil CPU dari memori menentukan apa yang akan dilakukan CPU. Pada langkah dekode, dilakukan oleh sirkuit yang dikenal sebagai ''instruction decoder'', instruksi diubah menjadi sinyal yang mengontrol bagian lain dari 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 (komputer)|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 (komputer)|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. |
|||
Cara instruksi diinterpretasikan ditentukan oleh CPU arsitektur set instruksi (ISA).{{Efn|Because the instruction set architecture of a CPU is fundamental to its interface and usage, it is often used as a classification of the "type" of CPU. For example, a "PowerPC CPU" uses some variant of the PowerPC ISA. A system can execute a different ISA by running an emulator.}} Seringkali, satu kelompok bit (yaitu, "field") di dalam instruksi, yang disebut opcode, menunjukkan operasi mana yang akan dilakukan, sedangkan field yang tersisa biasanya memberikan informasi tambahan yang diperlukan untuk operasi tersebut, seperti operan. Operan tersebut dapat ditentukan sebagai nilai konstan (disebut immediate value), atau sebagai lokasi nilai yang mungkin merupakan [[register prosesor]] atau alamat memori, seperti yang ditentukan oleh beberapa [[mode pengalamatan]]. |
|||
Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan [[bus (komputer)|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 [[ALU|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 (komputer)|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. |
|||
== Struktur dan implementasi == |
|||
=== Percabangan instruksi === |
|||
{{see also|Desain prosesor}} |
|||
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"). |
|||
[[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. |
|||
=== Arithmetic logic unit === |
|||
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''. |
|||
{{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 prosesor|register CPU internal]] atau memori eksternal, atau mungkin merupakan konstanta yang dihasilkan oleh ALU itu sendiri. |
|||
=== |
=== Rentang interger === |
||
Setiap CPU merepresentasikan nilai numerik dengan cara tertentu. Misalnya, beberapa komputer digital awal merepresentasikan angka sebagai nilai sistem angka desimal (basis 10) yang sudah dikenal, dan yang lainnya menggunakan representasi yang lebih tidak biasa seperti terner (basis tiga). Hampir semua CPU modern merepresentasikan angka dalam bentuk biner, dengan setiap digit diwakili oleh beberapa kuantitas fisik bernilai dua seperti [[volt]]ase "tinggi" atau "rendah".{{Efn|The physical concept of [[voltage]] is an analog one by nature, practically having an infinite range of possible values. For the purpose of physical representation of binary numbers, two specific ranges of voltages are defined, one for logic '0' and another for logic '1'. These ranges are dictated by design considerations such as noise margins and characteristics of the devices used to create the CPU.}} |
|||
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 10<sup>57</sup>). 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''. |
|||
[[Berkas:Binary_Forty.PNG|kiri|jmpl|Kata enam-bit yang berisi representasi yang dikodekan biner dari nilai desimal 40. Kebanyakan CPU modern menggunakan ukuran kata yang merupakan pangkat dua, misalnya 8, 16, 32 atau 64 bit.]] |
|||
Terkait dengan representasi numerik adalah ukuran dan presisi interger yang dapat diwakili oleh CPU. Dalam kasus CPU biner, ini diukur dengan jumlah bit (digit signifikan dari interger yang dikodekan biner) yang dapat diproses CPU dalam satu operasi, yang biasa disebut ''[[Word (arsitektur komputer)|ukuran kata]]'', ''lebar bit'', ''lebar jalur data'', ''presisi integer''. , atau ''ukuran integer''. Ukuran interger CPU menentukan kisaran nilai interger yang dapat dioperasikan secara langsung. Misalnya, CPU [[Komputasi 8-bit|8-bit]] dapat secara langsung memanipulasi interger yang diwakili oleh delapan bit, yang memiliki kisaran 256 (<math>2^8</math>) nilai interger terpisah. |
|||
== Performa == |
|||
''Performa'' atau ''kecepatan'' dari prosesor bergantung pada, di antara banyak faktor lain, kecepatan clock (umumnya diberikan dalam kelipatan [[hertz]]) dan ''instructions per clock'' (IPC), yang bersama-sama merupakan faktor untuk ''[[instructions per second]]'' (IPS) yang CPU dapat bekerja.<ref>{{Cite web|url=http://www.cpu-world.com/Glossary/C/CPU_Frequency.html|title=CPU Frequency|website=www.cpu-world.com|access-date=2020-08-08}}</ref> Banyak nilai IPS yang dilaporkan telah mewakili tingkat eksekusi "puncak" pada urutan instruksi buatan dengan beberapa cabang, sedangkan beban kerja realistis terdiri dari campuran instruksi dan aplikasi, beberapa di antaranya membutuhkan waktu lebih lama untuk dieksekusi daripada yang lain. Kinerja [[hierarki memori]] juga sangat memengaruhi kinerja prosesor, masalah yang hampir tidak dipertimbangkan dalam penghitungan MIPS. Karena masalah ini, berbagai pengujian standar, yang sering disebut "''[[benchmark]]''" untuk tujuan ini —seperti [[SPECint]] — telah dikembangkan untuk mencoba mengukur kinerja efektif yang sebenarnya dalam aplikasi yang umum digunakan. |
|||
== Catatan == |
|||
{{notelist|30em}} |
|||
== Referensi == |
== Referensi == |
||
{{reflist}} |
|||
* [http://www.research.ibm.com/journal/rd/441/amdahl.pdf Architecture of the IBM System] |
|||
* [http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf First Draft of a Report on the EDVAC] |
|||
* [http://www.mips.com/content/Documentation/MIPSDocumentation/ProcessorArchitecture/doclibrary The MIPS32® Instruction Set] |
|||
* [http://www.geocities.com/raja_pangalengge/ascii8b.zip Ir. SNMP Simamora, MT,"Course Work: Mikroprosesor dan Antar-muka", Pangalengge Educations, 2006.] |
|||
== Pranala luar == |
== Pranala luar == |
||
{{Commons category|Unit pemrosesan sentral}} |
|||
=== Perancang CPU === |
|||
* [http://www. |
* [http://www.howstuffworks.com/microprocessor.htm Bagaimana Mikroprosesor Bekerja] di [[HowStuffWorks]]. |
||
* [https://spectrum.ieee.org/25chips 25 Microchips that shook the world] - sebuah artikel oleh [[Institute of Electrical and Electronics Engineers]]. |
|||
* [http://www.arm.com/ ARM Ltd.] |
|||
* [http://www.freescale.com/ Freescale Semiconductor] ([[Motorola]]) |
|||
* [http://www-03.ibm.com/chips/ IBM Microelectronics] (IBM) |
|||
* [http://www.intel.com/ Intel Corporation] (Intel) |
|||
* [http://www.mips.com/ MIPS Technologies] (MIPS) |
|||
* [http://www.ti.com/home_p_allsc Texas Instruments] |
|||
=== Informasi lain === |
|||
* [http://computer.howstuffworks.com/microprocessor.htm Cara kerja mikroprosesor] |
|||
* [http://www.gamezero.com/team-0/articles/math_magic/micro/index.html Desain prosesor] |
|||
{{Komponen_dasar_komputer}} |
{{Komponen_dasar_komputer}} |
||
[[Kategori: |
[[Kategori:Unit Pemroses Sentral]] |
||
[[Kategori:CPU| ]] |
Revisi terkini sejak 10 Juni 2024 15.33
Unit Pemroses Sentral atau Unit Pengolahan Pusat (bahasa Inggris: Central Processing Unit/Processor (CPU)) adalah sirkuit elektronik di dalam komputer yang menjalankan perintah untuk membentuk program komputer. CPU melakukan operasi aritmatika, logika, pengendalian, dan masukan/keluaran (I/O) dasar yang ditentukan oleh perintah 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 dasarnya 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.
Operasi
[sunting | sunting sumber]Operasi dasar dari sebagian besar CPU, terlepas dari bentuk fisiknya, adalah menjalankan urutan perintah tersimpan yang disebut program. Perintah yang akan dijalankan disimpan dalam beberapa jenis memori komputer. Hampir semua CPU mengikuti langkah-langkah pengambilan, dekode, dan eksekusi dalam operasinya, yang secara kolektif dikenal sebagai siklus instruksi.
Setelah eksekusi instruksi, seluruh proses berulang, dengan siklus instruksi berikutnya biasanya mengambil instruksi urutan berikutnya karena nilai yang bertambah di penghitung program. Jika instruksi jump dijalankan, penghitung program akan dimodifikasi untuk memuat alamat instruksi yang dilompati dan eksekusi program berlanjut secara normal. Dalam CPU yang lebih rumit, beberapa perintah dapat diambil, didekodekan, dan dijalankan secara bersamaan.
Fetch
[sunting | sunting sumber]Langkah pertama, pengambilan, melibatkan pengambilan instruksi (yang diwakili oleh nomor atau urutan angka) dari memori program. Lokasi instruksi (alamat) dalam memori program ditentukan oleh penghitung program (PC), yang menyimpan nomor yang mengidentifikasi alamat instruksi berikutnya yang akan diambil. Setelah instruksi diambil, PC bertambah panjang instruksi sehingga akan berisi alamat instruksi berikutnya secara berurutan.[a] Seringkali, instruksi yang akan diambil harus diambil dari memori yang relatif lambat, menyebabkan CPU berhenti ketika menunggu instruksi dikembalikan. Masalah ini sebagian besar ditangani dalam prosesor modern oleh tembolok dan arsitektur pipa (lihat di bawah).
Dekode
[sunting | sunting sumber]Instruksi yang diambil CPU dari memori menentukan apa yang akan dilakukan CPU. Pada langkah dekode, dilakukan oleh sirkuit yang dikenal sebagai instruction decoder, instruksi diubah menjadi sinyal yang mengontrol bagian lain dari CPU.
Cara instruksi diinterpretasikan ditentukan oleh CPU arsitektur set instruksi (ISA).[b] Seringkali, satu kelompok bit (yaitu, "field") di dalam instruksi, yang disebut opcode, menunjukkan operasi mana yang akan dilakukan, sedangkan field yang tersisa biasanya memberikan informasi tambahan yang diperlukan untuk operasi tersebut, seperti operan. Operan tersebut dapat ditentukan sebagai nilai konstan (disebut immediate value), atau sebagai lokasi nilai yang mungkin merupakan register prosesor atau alamat memori, seperti yang ditentukan oleh beberapa mode pengalamatan.
Struktur dan implementasi
[sunting | sunting sumber]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
[sunting | sunting sumber]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.
Rentang interger
[sunting | sunting sumber]Setiap CPU merepresentasikan nilai numerik dengan cara tertentu. Misalnya, beberapa komputer digital awal merepresentasikan angka sebagai nilai sistem angka desimal (basis 10) yang sudah dikenal, dan yang lainnya menggunakan representasi yang lebih tidak biasa seperti terner (basis tiga). Hampir semua CPU modern merepresentasikan angka dalam bentuk biner, dengan setiap digit diwakili oleh beberapa kuantitas fisik bernilai dua seperti voltase "tinggi" atau "rendah".[c]
Terkait dengan representasi numerik adalah ukuran dan presisi interger yang dapat diwakili oleh CPU. Dalam kasus CPU biner, ini diukur dengan jumlah bit (digit signifikan dari interger yang dikodekan biner) yang dapat diproses CPU dalam satu operasi, yang biasa disebut ukuran kata, lebar bit, lebar jalur data, presisi integer. , atau ukuran integer. Ukuran interger CPU menentukan kisaran nilai interger yang dapat dioperasikan secara langsung. Misalnya, CPU 8-bit dapat secara langsung memanipulasi interger yang diwakili oleh delapan bit, yang memiliki kisaran 256 () nilai interger terpisah.
Performa
[sunting | sunting sumber]Performa atau kecepatan dari prosesor bergantung pada, di antara banyak faktor lain, kecepatan clock (umumnya diberikan dalam kelipatan hertz) dan instructions per clock (IPC), yang bersama-sama merupakan faktor untuk instructions per second (IPS) yang CPU dapat bekerja.[3] Banyak nilai IPS yang dilaporkan telah mewakili tingkat eksekusi "puncak" pada urutan instruksi buatan dengan beberapa cabang, sedangkan beban kerja realistis terdiri dari campuran instruksi dan aplikasi, beberapa di antaranya membutuhkan waktu lebih lama untuk dieksekusi daripada yang lain. Kinerja hierarki memori juga sangat memengaruhi kinerja prosesor, masalah yang hampir tidak dipertimbangkan dalam penghitungan MIPS. Karena masalah ini, berbagai pengujian standar, yang sering disebut "benchmark" untuk tujuan ini —seperti SPECint — telah dikembangkan untuk mencoba mengukur kinerja efektif yang sebenarnya dalam aplikasi yang umum digunakan.
Catatan
[sunting | sunting sumber]- ^ Since the program counter counts memory addresses and not instructions, it is incremented by the number of memory units that the instruction word contains. In the case of simple fixed-length instruction word ISAs, this is always the same number. For example, a fixed-length 32-bit instruction word ISA that uses 8-bit memory words would always increment the PC by four (except in the case of jumps). ISAs that use variable-length instruction words increment the PC by the number of memory words corresponding to the last instruction's length.
- ^ Because the instruction set architecture of a CPU is fundamental to its interface and usage, it is often used as a classification of the "type" of CPU. For example, a "PowerPC CPU" uses some variant of the PowerPC ISA. A system can execute a different ISA by running an emulator.
- ^ The physical concept of voltage is an analog one by nature, practically having an infinite range of possible values. For the purpose of physical representation of binary numbers, two specific ranges of voltages are defined, one for logic '0' and another for logic '1'. These ranges are dictated by design considerations such as noise margins and characteristics of the devices used to create the CPU.
Referensi
[sunting | sunting sumber]- ^ ""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).
- ^ "CPU Frequency". www.cpu-world.com. Diakses tanggal 2020-08-08.