You are on page 1of 16

Central processing unit Dari Wikipedia, ensiklopedia bebas "CPU" beralih ke halaman ini.

Untuk kegunaan lain, lihat CPU (disambiguasi) .

Sebuah Intel 80486DX2 CPU dari atas

Intel 80486DX2 dari bawah Unit pengolahan pusat (CPU) adalah bagian dari sebuah komputer sistem yang melaksanakan instruksi dari program komputer , untuk melakukan aritmatika, logis, dan dasar input / output dari sistem operasi. CPU memainkan peran yang agak analog dengan otak dalam komputer. Istilah ini telah digunakan dalam industri komputer setidaknya sejak awal 1960-an. [1] Bentuk, desain dan implementasi CPU telah berubah secara dramatis sejak awal contoh, tetapi operasi dasar mereka tetap sama. Pada mesin besar, CPU memerlukan satu atau lebih papan sirkuit tercetak . Pada komputer pribadi dan workstation kecil, CPU ditempatkan dalam satu chip silikon disebut mikroprosesor . Sejak 1970-an kelas mikroprosesor CPU telah hampir sepenuhnya diambil alih semua implementasi CPU lain. CPU modern skala besar sirkuit terpadu dalam paket biasanya kurang dari empat sentimeter persegi, dengan ratusan pin menghubungkan. Dua komponen khas dari CPU adalah logika aritmatika Unit (ALU), yang melakukan operasi aritmatika dan logika, dan unit kontrol (CU), yang ekstrak instruksi dari memori dan decode dan mengeksekusi mereka, menyerukan ALU bila diperlukan. Tidak semua sistem komputasi bergantung pada unit pengolahan pusat. Sebuah prosesor array atau vektor prosesor memiliki beberapa elemen komputasi paralel, dengan tidak ada satu unit

dianggap sebagai "pusat". Dalam komputasi terdistribusi model, masalah ini diselesaikan oleh satu set prosesor terdistribusi saling berhubungan. Isi [hide]

1 Sejarah 2 Unit kontrol o 2.1 Diskrit transistor dan sirkuit terpadu CPU o 2.2 Mikroprosesor 3 Operasi 4 Desain dan implementasi o 4.1 Integer jangkauan o 4,2 Jam tingkat o 4.3 Paralelisme 4.3.1 Instruksi level parallelism 4.3.2 Topik-level parallelism 4.3.3 paralelisme data 5 Kinerja 6 Lihat juga 7 Catatan 8 Referensi 9 Pranala luar

[ sunting ] Sejarah Artikel utama: Sejarah CPU tujuan umum

EDVAC , salah satu komputer program pertama disimpan

Komputer seperti ENIAC harus secara fisik rewired dalam rangka untuk melakukan tugas yang berbeda, yang menyebabkan mesin ini disebut "fixed-program komputer." Karena istilah "CPU" secara umum didefinisikan sebagai perangkat untuk perangkat lunak (program komputer) pelaksanaan, perangkat awal yang tepat bisa disebut CPU datang dengan munculnya komputer yang disimpan-program. Ide dari sebuah komputer disimpan-program sudah hadir dalam desain J. Presper Eckert dan John William Mauchly ENIAC ', namun pada awalnya dihilangkan sehingga bisa selesai cepat. Pada tanggal 30 Juni 1945, sebelum ENIAC dibuat, matematikawan John von Neumann membagikan makalah berjudul Draft Pertama Laporan pada EDVAC . Itu adalah garis dari sebuah komputer disimpan-program yang pada akhirnya akan selesai pada bulan Agustus 1949. [2] EDVAC dirancang untuk melakukan sejumlah instruksi (atau operasi) dari berbagai jenis. Instruksi ini dapat dikombinasikan untuk membuat program yang berguna bagi EDVAC untuk menjalankan. Secara signifikan, program yang ditulis untuk EDVAC disimpan dalam kecepatan tinggi memori komputer daripada yang ditentukan oleh kabel fisik dari komputer. Ini mengatasi pembatasan parah ENIAC, yang merupakan waktu dan usaha yang dibutuhkan untuk mengkonfigurasi ulang komputer untuk melakukan tugas baru. Dengan desain von Neumann, program, atau perangkat lunak, yang berlari EDVAC dapat diubah hanya dengan mengubah isi dari memori. CPU awal kustom-dirancang sebagai bagian dari yang lebih besar, kadang-kadang satu-of-a-kind komputer,. Namun, metode merancang CPU kustom untuk aplikasi tertentu umumnya telah memberikan cara untuk pengembangan produksi massal prosesor yang dibuat untuk berbagai tujuan. Standarisasi ini dimulai pada era diskrit transistor mainframe dan minicomputer dan cepat dipercepat dengan mempopulerkan sirkuit terpadu (IC). IC telah memungkinkan CPU semakin kompleks harus dirancang dan diproduksi untuk toleransi pada urutan nanometer . Baik miniaturisasi dan standardisasi CPU telah meningkatkan kehadiran perangkat digital dalam kehidupan modern jauh melampaui aplikasi terbatas mesin komputasi khusus. Mikroprosesor modern muncul dalam segala hal dari mobil ke ponsel dan mainan anak-anak. Sementara von Neumann yang paling sering dikreditkan dengan desain komputer yang disimpan-program karena desain nya EDVAC, lain sebelum dia, seperti Konrad Zuse , telah menyarankan dan menerapkan ide yang sama. Yang disebut arsitektur Harvard dari Harvard Mark I , yang selesai sebelum EDVAC, juga dimanfaatkan desain yang disimpan-program menggunakan pita kertas menekan daripada memori elektronik. Perbedaan utama antara von Neumann dan Harvard arsitektur adalah bahwa yang kedua memisahkan penyimpanan dan perawatan instruksi CPU dan data, sementara mantan menggunakan ruang memori yang sama untuk keduanya. Kebanyakan CPU modern terutama von Neumann dalam desain, tetapi elemen dari arsitektur Harvard yang biasanya terlihat juga. Relay dan tabung vakum (katup termionik) umum digunakan sebagai switching elemen, sebuah komputer yang berguna membutuhkan ribuan atau puluhan ribu perangkat switching. Kecepatan keseluruhan sistem tergantung pada kecepatan dari switch. Tabung komputer seperti EDVAC cenderung rata-rata delapan jam antara kegagalan, sedangkan komputer relay seperti (lebih lambat, tetapi sebelumnya) Harvard Mark I gagal sangat jarang. [1] Pada akhirnya, CPU berbasis tabung menjadi dominan karena keunggulan kecepatan yang signifikan diberikan pada umumnya

melebihi masalah kehandalan. Sebagian besar CPU sinkron awal berlari di rendah tingkat clock dibandingkan dengan desain mikroelektronik modern (lihat di bawah untuk pembahasan laju jam). Frekuensi sinyal clock mulai dari 100 kHz sampai 4 MHz sangat umum saat ini, sebagian besar dibatasi oleh kecepatan perangkat switching mereka dibangun dengan. [ sunting ] Unit kontrol Artikel utama: Unit Kontrol Unit kontrol dari CPU berisi sirkuit yang menggunakan sinyal listrik untuk mengarahkan keseluruhan sistem komputer untuk melaksanakan instruksi program yang tersimpan. Unit kontrol tidak mengeksekusi instruksi program, melainkan mengarahkan bagian-bagian lain dari sistem untuk melakukannya. Unit kontrol harus berkomunikasi dengan kedua unit aritmatika / logika dan memori. [ sunting ] transistor dan sirkuit terpadu Diskrit CPU

CPU, memori inti , dan antarmuka bus eksternal dari Desember PDP-8 / I. Terbuat dari skala menengah sirkuit terpadu Kompleksitas desain CPU meningkat sebagai teknologi memfasilitasi berbagai membangun perangkat elektronik yang lebih kecil dan lebih dapat diandalkan. Perbaikan seperti pertama datang dengan munculnya transistor . Transistorized CPU selama 1950-an dan 1960-an tidak lagi harus dibangun dari elemen switching besar, tidak dapat diandalkan, dan rapuh seperti tabung vakum dan relay listrik . Dengan peningkatan ini CPU lebih kompleks dan dapat diandalkan dibangun ke salah satu atau beberapa papan sirkuit cetak yang mengandung diskrit (individu) komponen. Selama periode ini, metode manufaktur banyak transistor dalam ruang kompak mendapatkan popularitas. Para sirkuit terpadu (IC) memungkinkan sejumlah besar transistor akan diproduksi pada satu semikonduktor berbasis mati , atau "chip." Pada awalnya hanya sangat dasar nonkhusus sirkuit digital seperti gerbang NOR adalah miniatur dalam IC. CPU ini berdasarkan "blok bangunan" IC umumnya disebut sebagai "skala kecil integrasi" (SSI) perangkat. SSI IC, seperti yang digunakan dalam komputer bimbingan Apollo , biasanya terkandung sampai transistor beberapa skor. Untuk membangun seluruh CPU dari SSI diperlukan ribuan IC chip individu, tapi masih dikonsumsi banyak ruang kurang dan kekuasaan daripada desain sebelumnya transistor

diskrit. Sebagai mikroelektronik teknologi canggih, peningkatan jumlah transistor pada IC ditempatkan, sehingga menurunkan jumlah individu yang diperlukan untuk IC CPU lengkap. MSI dan LSI (menengah dan skala besar integrasi) IC meningkat jumlah transistor untuk ratusan, dan kemudian ribuan. Pada tahun 1964 IBM memperkenalkan System/360 arsitektur komputer yang digunakan dalam serangkaian komputer yang dapat menjalankan program yang sama dengan kecepatan dan kinerja yang berbeda. Ini adalah signifikan pada saat komputer elektronik yang paling tidak kompatibel dengan satu sama lain, bahkan yang dibuat oleh produsen yang sama. Untuk memfasilitasi perbaikan ini, IBM memanfaatkan konsep microprogram (sering disebut "microcode"), yang masih melihat penggunaan luas dalam CPU modern. [3] Arsitektur System/360 begitu populer sehingga mendominasi komputer mainframe pasar untuk dekade dan meninggalkan warisan yang masih dilanjutkan oleh komputer modern mirip seperti IBM zSeries . Pada tahun yang sama (1964), Digital Equipment Corporation (DEC) memperkenalkan komputer lain berpengaruh ditujukan pada pasar ilmiah dan penelitian, PDP-8 . Desember nanti akan memperkenalkan sangat populer PDP-11 baris yang awalnya dibangun dengan SSI IC namun akhirnya diimplementasikan dengan komponen LSI sekali ini menjadi praktis. Dalam kontras dengan pendahulunya yang SSI dan MSI, LSI implementasi pertama dari PDP-11 berisi CPU terdiri dari hanya empat LSI sirkuit terpadu. [4] Transistor berbasis komputer telah keuntungan yang berbeda selama beberapa pendahulu mereka. Selain memfasilitasi peningkatan kehandalan dan konsumsi daya yang rendah, transistor juga memungkinkan CPU untuk beroperasi pada kecepatan jauh lebih tinggi karena waktu yang singkat beralih transistor dibandingkan dengan tabung atau relay. Berkat baik kehandalan meningkat serta kecepatan secara dramatis meningkat dari elemen switching (yang hampir secara eksklusif transistor dengan saat ini), tingkat clock CPU di puluhan megahertz diperoleh selama periode ini. Selain itu, sementara transistor diskrit dan IC CPU yang dalam penggunaan berat, baru kinerja tinggi desain seperti SIMD (Data Instruksi Beberapa Tunggal) prosesor vektor mulai muncul. Desain ini eksperimen awal kemudian memunculkan era khusus superkomputer seperti yang dibuat oleh Cray Inc [ sunting ] Mikroprosesor Bagian ini tidak mengutip manapun acuan atau sumber . Harap membantu meningkatkan bagian ini dengan menambahkan kutipan ke sumber terpercaya . Unsourced bahan mungkin akan ditantang dan dihapus . (Oktober 2009) Artikel utama: Microprocessor

Die dari Intel 80486DX2 mikroprosesor (ukuran sebenarnya: 12 6,75 mm) dalam kemasannya

Intel CPU Core i5 pada motherboard laptop Vaio seri E (di sebelah kanan, di bawah pipa panas ). Pada 1970-an penemuan mendasar oleh Federico Faggin (Silicon Gerbang MOS IC dengan gerbang sejajar diri bersama dengan metodologi logika baru nya acak desain) mengubah desain dan implementasi CPU selamanya. Sejak diperkenalkannya mikroprosesor yang tersedia secara komersial pertama ( Intel 4004 ), pada tahun 1970 dan secara luas digunakan pertama mikroprosesor (yang Intel 8080 ) pada tahun 1974, kelas ini CPU telah hampir sepenuhnya diambil alih semua metode pelaksanaan unit pengolahan pusat lainnya. Mainframe dan komputer mini produsen saat meluncurkan program proprietary pengembangan IC untuk meng-upgrade mereka yang lebih tua arsitektur komputer , dan akhirnya diproduksi set instruksi mikroprosesor yang kompatibel mundur-kompatibel dengan hardware dan software mereka yang lebih tua. Dikombinasikan dengan munculnya dan kesuksesan besar akhirnya sekarang di mana-mana komputer pribadi , CPU istilah sekarang diterapkan hampir secara eksklusif untuk mikroprosesor. Beberapa CPU dapat dikombinasikan dalam sebuah chip pemrosesan tunggal. Sebelumnya generasi CPU yang diimplementasikan sebagai komponen diskrit dan sejumlah kecil sirkuit terpadu (IC) pada satu atau lebih papan sirkuit. Mikroprosesor, di sisi lain, adalah CPU diproduksi pada jumlah yang sangat kecil dari IC, biasanya hanya satu. Ukuran keseluruhan CPU yang lebih kecil sebagai hasil dari diimplementasikan pada single die berarti lebih cepat beralih waktu karena faktor fisik seperti gerbang menurun kapasitansi parasit . Hal ini telah memungkinkan mikroprosesor sinkron untuk memiliki tingkat clock mulai dari puluhan megahertz untuk beberapa gigahertz. Selain itu, sebagai kemampuan untuk membangun transistor sangat kecil pada sebuah IC telah meningkat, kompleksitas dan jumlah transistor dalam sebuah CPU tunggal telah meningkat secara dramatis. Kecenderungan ini banyak diamati dijelaskan oleh hukum Moore , yang telah terbukti menjadi prediktor yang cukup akurat dari pertumbuhan dari CPU (dan IC lainnya) kompleksitas to-date. Sementara kompleksitas, ukuran, konstruksi, dan bentuk umum dari CPU telah berubah secara drastis selama enam puluh tahun terakhir, perlu dicatat bahwa desain dasar dan fungsi tidak banyak berubah sama sekali. Hampir semua CPU umum hari ini bisa sangat akurat digambarkan sebagai von disimpan-program mesin Neumann. Sebagai hukum Moore tersebut terus berlaku, kekhawatiran muncul tentang batas-batas teknologi transistor sirkuit terpadu. Miniaturisasi ekstrim dari gerbang elektronik yang menyebabkan efek fenomena seperti ELEKTROMIGRASI dan kebocoran subthreshold untuk menjadi jauh lebih signifikan. Keprihatinan baru adalah di antara banyak faktor yang menyebabkan peneliti untuk menyelidiki metode baru dari komputasi

seperti komputer kuantum , serta untuk memperluas penggunaan paralelisme dan metode lain yang memperpanjang kegunaan model von Neumann klasik. [ sunting ] Operasi Operasi dasar dari kebanyakan CPU, terlepas dari bentuk fisik mereka mengambil, adalah untuk mengeksekusi urutan instruksi disimpan disebut program. Program ini diwakili oleh serangkaian nomor yang disimpan di beberapa jenis memori komputer . Ada empat langkah yang hampir semua CPU digunakan dalam operasi mereka: fetch, decode, melaksanakan, dan writeback. Langkah pertama, mengambil, melibatkan mengambil sebuah instruksi (yang diwakili oleh nomor atau urutan angka) dari memori program. Lokasi di memori program ditentukan oleh program counter (PC), yang menyimpan nomor yang mengidentifikasi posisi saat ini dalam program ini. Setelah instruksi diambil, PC bertambah dengan panjang dari kata instruksi dalam hal unit memori. [5] Seringkali, instruksi yang akan diambil harus diambil dari memori yang relatif lambat, menyebabkan CPU untuk warung sambil menunggu instruksi untuk dikembalikan. Masalah ini sebagian besar dibahas dalam prosesor modern oleh cache dan arsitektur pipa (lihat di bawah). Instruksi yang CPU mengambil dari memori digunakan untuk menentukan apa CPU adalah melakukan. Pada langkah decode, instruksi yang dipecah menjadi bagian-bagian yang memiliki signifikansi untuk bagian lain dari CPU. Cara di mana nilai instruksi numerik ditafsirkan didefinisikan oleh set instruksi arsitektur CPU (ISA). [6] Sering kali, satu kelompok angka dalam instruksi, disebut opcode, yang menunjukkan operasi untuk melaksanakan. Sisa bagian nomor biasanya menyediakan informasi yang diperlukan untuk itu instruksi, seperti operan untuk operasi penjumlahan. Operan tersebut dapat diberikan sebagai nilai konstan (disebut nilai langsung), atau sebagai tempat untuk mencari nilai: sebuah mendaftar atau alamat memori, sebagaimana ditentukan oleh beberapa mode pengalamatan . Dalam desain yang lebih tua bagian dari CPU yang bertanggung jawab untuk decoding instruksi adalah perangkat keras berubah. Namun, dalam CPU lebih abstrak dan rumit dan ISA, microprogram adalah sering digunakan untuk membantu dalam menerjemahkan instruksi menjadi sinyal-sinyal berbagai konfigurasi untuk CPU. Microprogram ini kadang-kadang ditulis ulang sehingga dapat dimodifikasi untuk mengubah cara decode CPU petunjuk bahkan setelah telah dibuat. Setelah mengambil dan decode langkah, langkah eksekusi dilakukan. Selama langkah ini, berbagai bagian CPU dihubungkan sehingga mereka dapat melakukan operasi yang diinginkan. Jika, misalnya, sebuah operasi penjumlahan diminta, yang logika aritmatika Unit (ALU) akan terhubung ke satu set input dan satu set output. Masukan menyediakan nomor yang akan ditambahkan, dan output akan berisi jumlah akhir. ALU berisi sirkuit untuk melakukan aritmatika sederhana dan operasi logis pada input (seperti penambahan dan operasi bitwise ). Jika operasi penjumlahan menghasilkan hasil yang terlalu besar untuk CPU untuk menangani, overflow aritmetika bendera dalam register bendera juga dapat ditetapkan. Langkah terakhir, writeback, hanya "menulis kembali" hasil eksekusi langkah untuk beberapa bentuk memori. Sangat sering hasilnya ditulis untuk beberapa CPU internal mendaftar untuk akses cepat oleh instruksi berikutnya. Dalam kasus lain hasil dapat ditulis lebih lambat, tapi lebih

murah dan lebih besar, memori utama . Beberapa jenis instruksi memanipulasi program counter daripada secara langsung menghasilkan data hasil. Biasanya ini disebut "melompat" dan memfasilitasi perilaku seperti loop , pelaksanaan program bersyarat (melalui penggunaan dari lompatan bersyarat), dan fungsi dalam program. [7] Banyak instruksi juga akan mengubah keadaan digit dalam sebuah "bendera" mendaftar. Flag-flag ini dapat digunakan untuk mempengaruhi bagaimana sebuah program berperilaku, karena mereka sering menunjukkan hasil dari berbagai operasi. Sebagai contoh, satu jenis instruksi "membandingkan" menganggap dua nilai dan menetapkan nomor dalam daftar flag menurut mana yang lebih besar. Bendera ini kemudian bisa digunakan oleh instruksi jump kemudian untuk menentukan aliran program. Setelah pelaksanaan instruksi dan writeback dari data yang dihasilkan, mengulangi seluruh proses, dengan berikutnya siklus instruksi biasanya mengambil instruksi berikutnya-di-urutan karena nilai bertambah dalam program counter. Jika instruksi selesai itu melompat, program counter akan dimodifikasi untuk berisi alamat dari instruksi yang melompat, dan eksekusi program berlanjut secara normal. Pada CPU yang kompleks lebih dari satu yang dijelaskan di sini, beberapa instruksi dapat diambil, diterjemahkan, dan dieksekusi secara bersamaan. Bagian ini menjelaskan apa yang umumnya disebut sebagai " pipa RISC klasik ", yang sebenarnya cukup umum di antara CPU sederhana yang digunakan dalam perangkat elektronik banyak (mikrokontroler sering disebut). Ini sebagian besar mengabaikan peran penting dari CPU cache , dan karena itu tahap akses pipa. [ sunting ] Desain dan implementasi Artikel utama: desain CPU Konsep dasar dari CPU adalah sebagai berikut: Tertanam dalam desain CPU adalah daftar operasi dasar dapat melakukan, yang disebut set instruksi . Operasi tersebut mungkin termasuk menambah atau mengurangkan dua angka, membandingkan angka, atau melompat ke bagian lain dari sebuah program. Masing-masing operasi dasar diwakili oleh urutan tertentu bit , urutan ini disebut opcode untuk itu operasi tertentu. Mengirim opcode tertentu ke CPU akan menyebabkan itu untuk melakukan operasi diwakili oleh opcode itu. Untuk mengeksekusi instruksi dalam sebuah program komputer, CPU menggunakan opcode instruksi untuk itu serta argumen (misalnya dua nomor yang akan ditambahkan, dalam kasus operasi penambahan). Sebuah program komputer karena itu urutan instruksi, dengan masing-masing instruksi termasuk opcode dan argumen bahwa operasi itu. Operasi matematika sebenarnya untuk setiap instruksi dilakukan oleh subunit dari CPU yang dikenal sebagai unit logika aritmatika atau ALU. Selain menggunakan ALU untuk melakukan operasi, CPU juga bertanggung jawab untuk membaca instruksi berikutnya dari memori, membaca data yang dispesifikasikan dalam argumen dari memori, dan menulis hasil ke memori. Dalam desain CPU banyak, satu set instruksi dengan jelas akan membedakan antara operasi yang memuat data dari memori, dan mereka yang melakukan matematika. Dalam hal ini data diambil dari memori disimpan dalam register , dan operasi matematika tidak mengambil argumen tetapi

hanya melakukan matematika pada data dalam register dan menulis ke register yang baru, yang nilainya operasi terpisah maka dapat menulis ke memori. [ sunting ] kisaran Integer Cara CPU merupakan angka adalah pilihan desain yang mempengaruhi cara yang paling dasar di mana fungsi perangkat. Beberapa komputer digital awal digunakan model listrik yang umum desimal (basis sepuluh) sistem angka untuk mewakili angka internal. Sebuah komputer lain telah menggunakan sistem angka yang lebih eksotis seperti terner (base tiga). Hampir semua CPU modern mewakili angka dalam biner bentuk, dengan setiap digit yang diwakili oleh beberapa kuantitas fisik dua-nilai seperti "tinggi" atau "rendah" tegangan . [8]

MOS 6502 mikroprosesor dalam paket in-line ganda , desain 8-bit sangat populer Terkait dengan representasi nomor ukuran dan presisi angka yang CPU dapat mewakili. Dalam kasus CPU biner, sedikit mengacu pada satu tempat yang signifikan dalam jumlah CPU dengan sebuah kesepakatan. Jumlah bit (atau tempat angka) CPU menggunakan untuk mewakili angka ini sering disebut " kata ukuran "," lebar bit "," lebar data jalur ", atau" presisi integer "ketika berhadapan dengan angka ketat integer (sebagai lawan Mengambang titik ). Jumlah ini berbeda antara arsitektur, dan seringkali dalam bagian yang berbeda dari CPU yang sama. Sebagai contoh, sebuah 8-bit CPU transaksi dengan kisaran angka yang dapat diwakili oleh delapan digit biner (setiap digit memiliki dua nilai yang mungkin), yaitu, 2 8 atau 256 nomor diskrit. Akibatnya, ukuran bulat menetapkan batas hardware pada kisaran bilangan bulat perangkat lunak yang dijalankan oleh CPU dapat dimanfaatkan. [9] Kisaran Integer juga dapat mempengaruhi jumlah lokasi dalam memori CPU dapat mengatasi (mencari). Misalnya, jika CPU biner menggunakan 32 bit untuk mewakili alamat memori, dan setiap alamat memori merupakan salah satu oktet (8 bit), jumlah maksimum memori yang CPU dapat alamat 2 32 octet, atau 4 GiB . Ini adalah pandangan yang sangat sederhana dari CPU ruang alamat , dan desain banyak menggunakan metode pengalamatan yang lebih kompleks seperti paging dalam rangka untuk mencari memori lebih dari rentang bilangan mereka akan memungkinkan dengan ruang alamat datar. Tingkat lebih tinggi dari jangkauan bilangan bulat memerlukan struktur lebih banyak untuk berurusan dengan angka tambahan, dan kompleksitas karena itu lebih, ukuran, penggunaan daya, dan biaya umum. Ini sama sekali tidak biasa, oleh karena itu, untuk melihat 4 - atau 8-bit mikrokontroler yang digunakan dalam aplikasi modern, meskipun CPU dengan rentang yang jauh lebih tinggi (seperti 16, 32, 64, bahkan 128-bit) yang tersedia. Mikrokontroler sederhana biasanya lebih murah, menggunakan daya kurang, dan karena itu menghasilkan lebih sedikit panas, semua yang dapat menjadi pertimbangan desain utama untuk perangkat elektronik. Namun, pada tinggi-end aplikasi, manfaat yang diberikan oleh berbagai tambahan (paling sering

address space tambahan) lebih signifikan dan sering mempengaruhi pilihan desain. Untuk mendapatkan beberapa keuntungan yang diberikan oleh kedua panjang sedikit lebih rendah dan lebih tinggi, CPU banyak yang dirancang dengan lebar bit yang berbeda untuk bagian yang berbeda dari perangkat. Sebagai contoh, IBM System/370 menggunakan CPU yang terutama 32 bit, tapi dulu 128-bit presisi isinya floating point unit untuk memfasilitasi akurasi yang lebih besar dan jangkauan dalam jumlah floating point. [3] Banyak desain CPU kemudian menggunakan campuran yang mirip agak lebar, terutama ketika prosesor dimaksudkan untuk tujuan umum penggunaan keseimbangan yang wajar di mana kemampuan titik integer dan floating diperlukan. [ sunting ] Tingkat Jam Artikel utama: tingkat Jam Clock rate adalah kecepatan di mana sebuah mikroprosesor mengeksekusi instruksi. Setiap komputer berisi clock internal yang mengatur tingkat di mana instruksi yang dieksekusi dan mensinkronkan semua komponen komputer berbagai. CPU membutuhkan sejumlah tetap kutu jam (atau clock cycle) untuk mengeksekusi setiap instruksi. Semakin cepat jam, instruksi lebih CPU dapat menjalankan per detik. Kebanyakan CPU, dan memang sebagian besar logika sekuensial perangkat, yang sinkron di alam. [10] Artinya, mereka dirancang dan beroperasi pada asumsi tentang sinyal sinkronisasi. Sinyal ini, dikenal sebagai sinyal clock , biasanya mengambil bentuk periodik gelombang persegi . Dengan menghitung waktu sinyal listrik maksimum yang dapat bergerak di berbagai cabang sirkuit banyak CPU, para desainer dapat memilih yang sesuai jangka waktu untuk sinyal clock. Periode ini harus lebih dari jumlah waktu yang diperlukan untuk sinyal untuk bergerak, atau menyebarkan, dalam skenario terburuk. Dalam menetapkan periode clock untuk nilai jauh di atas terburuk delay propagasi , adalah mungkin untuk merancang seluruh CPU dan cara memindahkan data sekitar "tepi" dari sinyal clock naik dan turun. Hal ini memiliki keuntungan dari menyederhanakan CPU secara signifikan, baik dari perspektif desain dan perspektif komponen-hitungan. Namun, juga membawa kelemahan bahwa seluruh CPU harus menunggu pada elemen yang paling lambat, meskipun beberapa bagian dari itu jauh lebih cepat. Keterbatasan ini sebagian besar telah dikompensasikan dengan berbagai metode paralelisme CPU meningkat. (Lihat di bawah) Namun, perbaikan arsitektur saja tidak menyelesaikan semua kelemahan dari CPU global sinkron. Sebagai contoh, sebuah sinyal clock tunduk pada penundaan sinyal listrik lainnya. Tingkat clock yang lebih tinggi di CPU semakin kompleks membuat lebih sulit untuk menjaga sinyal clock dalam fase (disinkronkan) seluruh seluruh unit. Hal ini telah menyebabkan CPU modern membutuhkan beberapa sinyal clock identik diberikan untuk menghindari menunda sinyal tunggal cukup signifikan untuk menyebabkan CPU untuk kerusakan. Isu lain yang besar sebagai peningkatan dramatis tingkat jam adalah jumlah panas yang hilang oleh CPU. Jam terus berubah menyebabkan banyak komponen untuk beralih terlepas dari apakah mereka sedang digunakan pada waktu itu. Secara umum, komponen yang beralih menggunakan energi lebih dari sebuah elemen dalam keadaan statis. Oleh karena itu, seperti meningkatkan clock rate, begitu

pula disipasi panas, menyebabkan CPU untuk membutuhkan solusi pendinginan yang lebih efektif. Salah satu metode untuk berurusan dengan switching komponen yang tidak diperlukan disebut jam gating , yang melibatkan mematikan sinyal clock untuk komponen yang tidak diperlukan (efektif menonaktifkan mereka). Namun, hal ini sering dianggap sebagai sulit untuk menerapkan dan karena itu tidak melihat penggunaan umum di luar sangat rendah daya desain. Satu terkenal CPU desain akhir yang menggunakan jam gating adalah bahwa IBM PowerPC berbasis Xbox 360 . Ini menggunakan jam gating ekstensif untuk mengurangi kebutuhan daya dari konsol videogame tersebut di mana ia digunakan. [11] Metode lain menangani beberapa masalah dengan sinyal clock global adalah penghapusan dari sinyal clock sama sekali. Saat mengeluarkan sinyal clock global membuat proses desain jauh lebih kompleks dalam banyak cara, asinkron (atau clockless) desain membawa keuntungan yang nyata dalam konsumsi daya dan disipasi panas dibandingkan dengan desain sinkron serupa. Sementara agak jarang, seluruh CPU asinkron telah dibangun tanpa menggunakan sinyal jam global. Dua contoh penting dari ini adalah ARM sesuai Amulet dan MIPS R3000 MiniMIPS kompatibel. Daripada benar-benar mengeluarkan sinyal clock, beberapa desain CPU memungkinkan bagian-bagian tertentu dari perangkat yang akan asynchronous, seperti menggunakan asynchronous ALUS dalam hubungannya dengan pipelining superscalar untuk mencapai kinerja beberapa keuntungan aritmatika. Meskipun tidak sepenuhnya jelas apakah benar-benar desain asinkron dapat melakukan pada tingkat yang sebanding atau lebih baik daripada rekan mereka sinkron, jelas bahwa mereka melakukan setidaknya unggul dalam operasi matematika sederhana. Hal ini, dikombinasikan dengan konsumsi daya yang sangat baik dan sifat disipasi panas, membuat mereka sangat cocok untuk komputer tertanam .
[12]

[ sunting ] Paralelisme Artikel utama: Komputasi paralel

Model CPU subscalar. Perhatikan bahwa dibutuhkan lima belas siklus untuk menyelesaikan tiga instruksi. Deskripsi operasi dasar dari CPU yang ditawarkan di bagian sebelumnya menggambarkan bentuk yang paling sederhana yang dapat mengambil CPU. Ini jenis CPU, biasanya disebut sebagai subscalar, beroperasi pada dan mengeksekusi satu instruksi pada satu atau dua potongan data pada suatu waktu. Proses ini menimbulkan inefisiensi yang melekat dalam CPU subscalar. Karena hanya satu instruksi dieksekusi pada satu waktu, CPU harus menunggu seluruh instruksi yang untuk menyelesaikan sebelum melanjutkan ke instruksi berikutnya. Akibatnya, CPU subscalar mendapat "menutup telepon" pada instruksi yang mengambil lebih dari satu siklus clock untuk menyelesaikan eksekusi. Bahkan menambahkan unit eksekusi kedua (lihat di bawah) tidak meningkatkan kinerja yang jauh, melainkan dari satu jalur digantung, sekarang dua jalur yang menutup telepon dan jumlah transistor yang tidak terpakai meningkat. Desain ini, dimana sumber

daya eksekusi CPU dapat beroperasi hanya pada satu instruksi pada satu waktu, dapat hanya mungkin mencapai kinerja skalar (satu instruksi per clock). Namun, kinerja yang hampir selalu subscalar (kurang dari satu instruksi per siklus). Upaya untuk mencapai kinerja yang lebih baik skalar dan telah menghasilkan berbagai metodologi desain yang menyebabkan CPU untuk berperilaku kurang linear dan lebih secara paralel. Ketika mengacu pada paralelisme dalam CPU, dua istilah yang biasanya digunakan untuk mengklasifikasikan teknik-teknik desain. Instruksi level parallelism (ILP) berusaha untuk meningkatkan tingkat di mana instruksi dieksekusi dalam CPU (yaitu, untuk meningkatkan pemanfaatan on-die eksekusi sumber daya), dan tingkat benang paralelisme (TLP) tujuan untuk meningkatkan jumlah benang (program efektif individu) yang CPU dapat mengeksekusi secara bersamaan. Setiap metodologi berbeda baik dalam cara-cara di mana mereka diimplementasikan, serta efektivitas relatif mereka mampu dalam meningkatkan kinerja CPU untuk suatu aplikasi.
[13]

[ sunting ] Instruksi tingkat paralelisme Artikel utama: Instruksi pipelining dan Superscalar

Dasar-tahap lima pipa. Dalam skenario kasus yang terbaik, pipa ini dapat mempertahankan tingkat penyelesaian satu instruksi per siklus. Salah satu metode paling sederhana yang digunakan untuk mencapai paralelisme meningkat adalah untuk memulai langkah pertama mengambil instruksi dan decoding sebelum mengeksekusi instruksi sebelum selesai. Ini adalah bentuk sederhana dari teknik yang dikenal sebagai pipelining instruksi , dan digunakan di hampir semua CPU modern tujuan umum. Pipelining memungkinkan lebih dari satu instruksi yang akan dieksekusi pada setiap waktu yang diberikan oleh mogok jalur eksekusi ke tahap diskrit. Pemisahan ini dapat dibandingkan dengan jalur perakitan, di mana instruksi yang dibuat lebih lengkap pada setiap tahap sampai keluar dari pipa eksekusi dan pensiun. Pipelining, bagaimanapun, memperkenalkan kemungkinan untuk situasi di mana hasil dari operasi sebelumnya diperlukan untuk menyelesaikan operasi berikutnya, sebuah kondisi yang sering disebut konflik ketergantungan data. Untuk mengatasi hal ini, perawatan tambahan harus diambil untuk memeriksa kondisi semacam ini dan menunda sebagian dari pipa instruksi jika hal ini terjadi. Tentu, mencapai ini membutuhkan sirkuit tambahan, prosesor pipelined sehingga lebih kompleks daripada yang subscalar (meskipun tidak sangat signifikan begitu). Sebuah prosesor pipelined dapat menjadi sangat hampir skalar, dihambat hanya dengan warung pipa (instruksi menghabiskan lebih dari satu siklus jam di panggung).

Sederhana superscalar pipa. Dengan mengambil dan pengiriman dua instruksi pada satu waktu, maksimal dua instruksi per siklus dapat diselesaikan. Selanjutnya perbaikan atas gagasan pipelining instruksi menyebabkan pengembangan metode yang mengurangi waktu idle komponen CPU lebih jauh. Desain yang dikatakan superscalar menyertakan instruksi pipa panjang dan beberapa unit eksekusi yang identik. [14] Dalam sebuah pipa superscalar, beberapa instruksi yang membaca dan dilewatkan ke operator, yang memutuskan apakah atau tidak instruksi dapat dieksekusi secara paralel (bersamaan ). Jika demikian mereka dikirim ke unit eksekusi yang tersedia, sehingga kemampuan untuk beberapa instruksi akan dieksekusi secara bersamaan. Secara umum, lebih banyak instruksi CPU superscalar dapat mengirimkan secara simultan untuk unit eksekusi menunggu, instruksi lebih akan diselesaikan dalam siklus tertentu. Sebagian besar kesulitan dalam desain arsitektur superscalar CPU yang terletak dalam menciptakan sebuah operator yang efektif. Operator harus dapat dengan cepat dan benar menentukan apakah instruksi dapat dieksekusi secara paralel, serta mengutus mereka sedemikian rupa untuk tetap sebagai unit eksekusi banyak sibuk mungkin. Ini mensyaratkan bahwa instruksi pipa diisi sesering mungkin dan menimbulkan kebutuhan dalam arsitektur superscalar untuk jumlah signifikan CPU cache . Hal ini juga membuat bahaya -menghindari teknik seperti prediksi cabang , eksekusi spekulatif , dan out-of-order eksekusi penting untuk menjaga tingkat kinerja yang tinggi. Dengan mencoba untuk memprediksi cabang (atau path) instruksi kondisional akan mengambil, CPU dapat meminimalkan jumlah kali bahwa seluruh pipa harus menunggu sampai selesai instruksi kondisional. Eksekusi spekulatif sering menyediakan meningkatkan kinerja sederhana dengan menjalankan bagian dari kode yang tidak mungkin diperlukan setelah operasi bersyarat selesai. Out-of-order eksekusi yang agak menyusun urutan instruksi dieksekusi untuk mengurangi keterlambatan karena data dependensi. Juga dalam kasus Instruksi Tunggal Beberapa data - kasus ketika banyak data dari jenis yang sama harus diproses, prosesor modern dapat menonaktifkan bagian pipa sehingga ketika satu instruksi dijalankan berkali-kali, CPU melompat mengambil dan decode fase dan dengan demikian sangat meningkatkan kinerja pada saat-saat tertentu, terutama di mesin program yang sangat monoton seperti perangkat lunak pembuatan video dan pengolahan foto. Dalam kasus di mana sebagian dari CPU adalah superscalar dan sebagian tidak, bagian yang tidak menderita hukuman kinerja karena warung penjadwalan. Intel P5 Pentium memiliki ALUS superscalar dua yang bisa menerima satu instruksi per clock masing-masing, namun FPU yang tidak bisa menerima satu instruksi per clock. Jadi P5 adalah bilangan bulat tetapi superscalar superscalar titik tidak mengambang. Pengganti Intel untuk arsitektur P5, P6 , menambahkan

kemampuan superscalar dengan fitur mengambang titik, dan karenanya diberikan peningkatan yang signifikan dalam kinerja instruksi floating point. Kedua pipelining sederhana dan desain superscalar meningkatkan ILP sebuah CPU dengan memungkinkan prosesor tunggal untuk menyelesaikan pelaksanaan instruksi pada tingkat melebihi satu instruksi per siklus (IPC). [15] Kebanyakan desain CPU modern setidaknya agak superscalar, dan hampir semua CPU tujuan umum dirancang dalam dekade terakhir adalah superscalar. Dalam tahun kemudian beberapa penekanan dalam merancang tinggi ILP komputer telah pindah dari perangkat keras CPU dan ke antarmuka perangkat lunak, atau ISA . Strategi dari kata instruksi yang sangat panjang (VLIW) menyebabkan beberapa ILP menjadi tersirat secara langsung oleh perangkat lunak, mengurangi jumlah kerja CPU harus melakukan untuk meningkatkan ILP dan dengan demikian mengurangi kompleksitas desain. [ sunting ] Topik-level parallelism Strategi lain untuk mencapai kinerja adalah untuk menjalankan beberapa program atau benang secara paralel. Daerah penelitian dikenal sebagai komputasi paralel . Dalam taksonomi Flynn , strategi ini dikenal sebagai Beberapa Instruksi-Beberapa Data atau MIMD. Salah satu teknologi yang digunakan untuk tujuan ini adalah multiprocessing (MP). Rasa awal teknologi ini dikenal sebagai multiprocessing simetris (SMP), di mana sejumlah kecil CPU berbagi pandangan yang koheren dari sistem memori mereka. Dalam skema ini, setiap CPU memiliki hardware tambahan untuk mempertahankan selalu up-to-date tampilan memori. Dengan menghindari pandangan basi memori, CPU dapat bekerja sama pada program yang sama dan program dapat bermigrasi dari satu CPU yang lain. Untuk meningkatkan jumlah CPU bekerja sama di luar segelintir, skema seperti non-seragam akses memori (NUMA) dan direktori berbasis protokol koherensi diperkenalkan pada 1990-an. Sistem SMP terbatas pada sejumlah kecil CPU sementara sistem NUMA telah dibangun dengan ribuan prosesor. Awalnya, multiprocessing dibangun menggunakan beberapa CPU diskrit dan papan untuk menerapkan interkoneksi antara prosesor. Ketika prosesor dan interkoneksi mereka semua diimplementasikan pada sebuah chip silikon tunggal, teknologi ini dikenal sebagai multi-core mikroprosesor. Ia kemudian diakui bahwa butir halus-ada paralelisme dengan program tunggal. Sebuah program tunggal mungkin memiliki beberapa thread (atau fungsi) yang dapat dieksekusi secara terpisah atau paralel. Beberapa contoh awal dari teknologi ini diimplementasikan input / output pengolahan seperti akses memori langsung sebagai thread terpisah dari benang perhitungan. Sebuah pendekatan yang lebih umum untuk teknologi ini diperkenalkan pada 1970-an ketika sistem yang dirancang untuk menjalankan thread perhitungan secara paralel. Teknologi ini dikenal sebagai multi-threading (MT). Pendekatan ini dianggap lebih hemat biaya daripada multiprocessing, karena hanya sejumlah kecil komponen dalam CPU adalah direplikasi dalam rangka mendukung MT sebagai lawan dari seluruh CPU dalam kasus MP. Dalam MT, pelaksanaan unit dan sistem memori termasuk cache dibagi di antara beberapa thread. Kelemahan dari MT adalah bahwa dukungan hardware untuk multithreading lebih terlihat untuk perangkat lunak daripada MP dan dengan demikian pengawas perangkat lunak seperti sistem operasi harus menjalani perubahan yang lebih besar untuk mendukung MT. Salah satu jenis dari MT yang dilaksanakan dikenal sebagai blok multithreading, di mana satu thread yang dieksekusi

sampai terhenti menunggu data kembali dari memori eksternal. Dalam skema ini, CPU kemudian akan dengan cepat beralih ke thread lain yang siap untuk dijalankan, switch sering dilakukan dalam satu siklus clock CPU, seperti UltraSPARC Teknologi. Tipe lain dari MT dikenal sebagai multithreading simultan , di mana instruksi dari beberapa thread yang dieksekusi secara paralel dalam satu siklus clock CPU. Selama beberapa dekade dari tahun 1970an sampai awal 2000an, fokus dalam merancang tujuan kinerja CPU tinggi umum sebagian besar pada pencapaian ILP tinggi melalui teknologi seperti pipelining, cache, eksekusi superscalar, out-of-order eksekusi, dll Kecenderungan ini memuncak dalam jumlah besar , haus kekuasaan CPU seperti Intel Pentium 4 . Pada awal 2000-an, desainer CPU digagalkan dari mencapai kinerja yang lebih tinggi dari teknik ILP karena perbedaan tumbuh antara frekuensi operasi CPU dan memori utama frekuensi operasi serta CPU karena disipasi daya meningkat ke teknik ILP lebih esoteris. Desainer CPU kemudian meminjam ide dari pasar komputasi komersial seperti pemrosesan transaksi , di mana kinerja agregat beberapa program, juga dikenal sebagai throughput yang komputasi, lebih penting daripada kinerja sebuah thread tunggal atau program. Pembalikan penekanan dibuktikan oleh proliferasi CMP dual core dan multiple (chip-level multiprocessing) desain dan terutama, desain Intel baru menyerupai superscalar kurang nya P6 arsitektur. Desain terlambat dalam keluarga prosesor CMP beberapa pameran, termasuk x86-64 Opteron dan Athlon 64 X2 , yang SPARC UltraSPARC T1 , IBM Power4 dan POWER5 , serta beberapa konsol video game seperti CPU Xbox 360 's desain triple-core PowerPC, dan PS3 's 7inti mikroprosesor your . [ sunting ] Data paralelisme Artikel utama: Vector prosesor dan SIMD Sebuah paradigma yang kurang umum tapi yang semakin penting dari CPU (dan memang, komputasi secara umum) berkaitan dengan paralelisme data. Prosesor dibahas sebelumnya adalah semua disebut sebagai beberapa jenis perangkat skalar. [16] Seperti namanya, prosesor vektor berurusan dengan beberapa bagian data dalam konteks satu instruksi. Hal ini kontras dengan prosesor skalar, yang berhubungan dengan salah satu bagian dari data untuk setiap instruksi. Menggunakan taksonomi Flynn , kedua skema berurusan dengan data yang umumnya disebut sebagai SIMD (instruksi tunggal, beberapa data) dan SISD (instruksi tunggal, data tunggal), masing-masing. Utilitas besar dalam menciptakan CPU yang berhubungan dengan data vektor terletak pada mengoptimalkan tugas-tugas yang cenderung membutuhkan operasi yang sama (misalnya, jumlah atau dot product ) yang akan dilakukan pada set data yang besar. Beberapa contoh klasik dari jenis tugas yang multimedia aplikasi (gambar, video, dan suara), serta banyak jenis ilmiah tugas dan rekayasa. Sedangkan CPU skalar harus menyelesaikan seluruh proses mengambil, decoding, dan melaksanakan setiap instruksi dan nilai dalam satu set data, CPU vektor dapat melakukan satu operasi pada satu set yang relatif besar data dengan satu instruksi. Tentu saja, ini hanya mungkin bila aplikasi cenderung membutuhkan banyak langkah yang berlaku satu operasi untuk satu set data yang besar.

Paling awal vektor CPU, seperti Cray-1 , hampir secara eksklusif dikaitkan dengan penelitian ilmiah dan kriptografi aplikasi. Namun, seperti multimedia sebagian besar telah bergeser ke media digital, kebutuhan untuk beberapa bentuk SIMD secara umum-tujuan CPU telah menjadi signifikan. Tak lama setelah masuknya unit eksekusi floating point mulai menjadi biasa di tujuan umum prosesor, spesifikasi untuk dan implementasi dari unit eksekusi SIMD juga mulai muncul untuk tujuan umum CPU. Beberapa spesifikasi SIMD awal seperti HP ekstensi Multimedia Percepatan (MAX) dan Intel MMX adalah integer saja. Hal ini terbukti menjadi hambatan yang signifikan untuk beberapa pengembang perangkat lunak, karena banyak aplikasi yang mendapatkan keuntungan dari SIMD terutama berurusan dengan floating point nomor. Progresif, ini desain awal yang disempurnakan dan dibuat lagi ke beberapa, spesifikasi umum SIMD modern, yang biasanya dikaitkan dengan satu ISA. Beberapa contoh modern menonjol adalah Intel SSE dan PowerPC terkait AltiVec (juga dikenal sebagai vmx). [17] [ sunting ] Kinerja Artikel utama: kinerja komputer Kinerja atau kecepatan prosesor tergantung pada clock rate (umumnya diberikan dalam kelipatan hertz ) dan instruksi per jam (IPC), yang bersama-sama adalah faktor untuk instruksi per detik (IPS) yang CPU dapat melakukan. [18 ] Banyak melaporkan IPS nilai-nilai telah mewakili tingkat eksekusi "puncak" pada urutan instruksi buatan dengan beberapa cabang, sedangkan beban kerja yang realistis terdiri dari campuran instruksi dan aplikasi, beberapa yang memakan waktu lebih lama untuk mengeksekusi daripada yang lain. Kinerja dari hirarki memori juga sangat mempengaruhi kinerja prosesor, masalah nyaris tidak dipertimbangkan dalam perhitungan MIPS. Karena masalah ini, tes standar berbagai, sering disebut "benchmark" untuk tujuan ini-seperti SPECint - telah dikembangkan untuk mencoba untuk mengukur kinerja yang efektif nyata dalam aplikasi yang umum digunakan. Pengolahan kinerja komputer meningkat dengan menggunakan prosesor multi-core , yang pada dasarnya adalah memasukkan dua atau lebih prosesor individu (disebut core dalam pengertian ini) ke dalam satu sirkuit terpadu . [19] Idealnya, prosesor dual core akan hampir dua kali lebih kuat sebagai satu prosesor inti. Dalam prakteknya, bagaimanapun, mendapatkan kinerja yang jauh lebih sedikit, hanya sekitar 50%, [19] karena algoritma perangkat lunak tidak sempurna dan implementasi.

You might also like