Intruction Register ( IR )


Instruction register

Dalam komputer, sebuah register instruksi adalah bagian dari unit kontrol CPU yang menyimpan instruksi yang sedang dieksekusi atau diterjemahkan. Dalam prosesor sederhana setiap instruksi yang dijalankan dimuat ke register instruksi yang memegang itu ketika sedang decode, disusun dan akhirnya dieksekusi, yang dapat mengambil beberapa langkah.
prosesor yang lebih rumit menggunakan pipa dari register instruksi dimana setiap tahap pipa tidak bagian dari persiapan, decoding atau eksekusi dan kemudian meneruskannya ke tahap berikutnya untuk langkah tersebut. prosesor modern bahkan dapat melakukan beberapa langkah keluar dari urutan yang decoding pada beberapa instruksi dilakukan secara paralel.
Decoding opcode di register instruksi meliputi penentuan instruksi, menentukan mana operan perusahaan dalam memori, saat mengambil operan dari memori, mengalokasikan sumber daya prosesor untuk mengeksekusi perintah (dalam prosesor superscalar), dll.

Bagian-bagian yang termasuk dalam system register di Atas adalah:

1.CPU

CPU merupakan bagian fungsional yang utama dari sebuah sistem komputer, dapat dikatakan bahwa CPU merupakan otak dari sebuah komputer. Di dalam CPU inilah semua kerja komputer dilakukan.
Hal-hal yang perlu dilakukan CPU adalah:
1. Membaca, mengkodekan dan mengeksekusi instruksi program
2. Mengirim data dari dan ke memori, serta dari dan ke bagian input/output.
3. Merespon interupsi dari luar.
menyediakan clock dan sinyal kontrol kepada sistem.

Dalam melakukan hal-hal di atas, jelas CPU perlu menyimpan data untuk sementara waktu. CPU perlu mengingat lokasi instruksi terakhir sehingga CPU akan dapat mengambil instruksi berikutnya. CPU perlu menyimpan instruksi dan data untuk sementara waktu pada saat instruksi sedang dieksekusi.Dengan kata lain, CPU memerlukan memori internal berukuran kecil yang disebut Register.
Arithmetic and Logic Unit (ALU) berfungsi membentuk operasi-operasi aritmatika dan logic terhadap data Register menyimpan data sementara dan hasil operasi ALU.
Control unit menghasilkan sinyal,, yang akan mengontrol operasi ALU, dan pemindahan data ke ALU atau dari ALU.

2.PIPA REGISTER INTRUKSI
Sebuah pipa register instruksi adalah teknik yang digunakan dalam perancangan komputer dan perangkat elektronik digital untuk meningkatkan throughput instruksi mereka (jumlah instruksi yang dapat dieksekusi dalam satu unit waktu).
Ide dasarnya adalah untuk membagi pemrosesan instruksi komputer menjadi serangkaian langkah-langkah independen, dengan penyimpanan pada akhir setiap langkah. Hal ini memungkinkan sirkuit kontrol komputer untuk mengeluarkan instruksi pada tingkat pengolahan langkah lambat, yang jauh lebih cepat dari waktu yang dibutuhkan untuk melakukan semua langkah sekaligus. Pipa merujuk pada kenyataan bahwa setiap langkah yang membawa data sekaligus (seperti air), dan setiap langkah terhubung ke berikutnya (seperti link dari pipa.)
Asal pipelining dianggap baik ILLIAC II proyek atau IBM Stretch proyek meskipun versi sederhana yang digunakan sebelumnya dalam Z1 pada tahun 1939 dan Z3 tahun 1941.
IBM Stretch Proyek mengusulkan istilah, “Ambil, Decode, dan Jalankan” yang menjadi penggunaan umum.
Paling modern CPU digerakkan oleh jam. CPU internal terdiri dari logika dan mendaftar ( sandal jepit ). Ketika sinyal clock tiba, sandal jepit mengambil nilai baru mereka dan logika kemudian memerlukan periode waktu tertentu untuk memecahkan kode nilai-nilai baru. Kemudian pulsa clock berikutnya tiba dan sandal jepit lagi mengambil nilai baru, dan sebagainya. Dengan melanggar logika menjadi potongan kecil dan memasukkan sandal jepit antara potongan-potongan logika, penundaan sebelum logika memberikan output yang valid berkurang. Dengan cara ini jam periode dapat dikurangi. Misalnya, pipa RISC klasik ini dibagi menjadi lima tahap dengan satu set sandal jepit di antara setiap tahap.
1. Instruksi mengambil
2. Instruksi decode dan mendaftar mengambil
3. Melaksanakan
4. Memori akses
5. Pendaftaran menulis kembali
Ketika seorang programmer (atau kompilator) menulis kode assembly, mereka membuat asumsi bahwa setiap instruksi dieksekusi sebelum pelaksanaan instruksi berikutnya dimulai.Asumsi ini diremehkan oleh pipelining. Ketika ini menyebabkan sebuah program untuk berperilaku salah, situasinya dikenal sebagai bahaya. Berbagai teknik untuk memecahkan bahaya seperti jasa dan mengulur-ulur ada.
Sebuah arsitektur non-pipa tidak efisien karena komponen CPU beberapa (modul) yang diam sementara modul lain sedang aktif selama siklus instruksi. Pipelining tidak sepenuhnya membatalkan waktu idle dalam CPU, tetapi membuat mereka bekerja modul secara paralel meningkatkan pelaksanaan program secara signifikan.
Prosesor dengan pipelining diatur dalam ke dalam tahap yang dapat semi-independen bekerja pada pekerjaan yang terpisah. Setiap tahap disusun dan dihubungkan ke dalam ‘rantai’ sehingga output setiap tahap adalah makan untuk tahap lain sampai pekerjaan selesai. Organisasi ini prosesor memungkinkan waktu proses keseluruhan secara signifikan berkurang.
Sebuah pipa lebih berarti bahwa ada tahapan lebih dalam pipa, dan karena itu, gerbang logika lebih sedikit dalam setiap tahap. Hal ini umumnya berarti frekuensi prosesor dapat ditingkatkan sebagai waktu siklus diturunkan. Hal ini terjadi karena ada komponen yang lebih sedikit dalam setiap tahapan pipa, sehingga delay propagasi menurun untuk tahap secara keseluruhan.
Sayangnya, tidak semua instruksi yang independen. Dalam pipa yang sederhana, menyelesaikan instruksi mungkin membutuhkan 5 tahap. Untuk beroperasi pada kinerja penuh, pipa ini akan perlu menjalankan 4 instruksi independen mendatang, sementara yang pertama adalah menyelesaikan. Jika 4 instruksi yang tidak tergantung pada output dari instruksi pertama tidak tersedia, logika kontrol pipa harus memasukkan kios atau siklus clock terbuang ke dalam pipa sampai ketergantungan teratasi. Untungnya, teknik seperti forwarding secara signifikan dapat mengurangi kasus-kasus di mana mengulur-ulur diperlukan. Sementara pipelining dapat dalam kinerja teori meningkat seiring inti unpipelined dengan faktor jumlah tahap (dengan asumsi frekuensi clock juga timbangan dengan jumlah tahap), pada kenyataannya, kode yang paling tidak memungkinkan untuk eksekusi idea.
3.OPCODE
Dalam ilmu komputer , sebuah opcode (kode timbangkan op) adalah bagian dari sebuah bahasa mesin instruksi yang menentukan operasi yang akan dilakukan. spesifikasi mereka dan format yang ditetapkan dalam set instruksi arsitektur prosesor yang bersangkutan (yang mungkin seorang jenderal CPU atau unit pengolahan khusus lebih). Terlepas dari opcode sendiri, instruksi biasanya juga memiliki satu atau lebih penspesifikasi untuk operan (data yaitu) di mana operasi harus bertindak, meskipun beberapa operasi mungkin memiliki operanimplisit, atau tidak sama sekali. Ada instruksi set dengan bidang hampir seragam dan operan untuk opcode specifier, serta yang lain (yang x86 arsitektur misalnya) dengan panjang bervariasi rumit struktur, lebih.
Tergantung pada arsitektur, operan dapat mendaftarkan nilai, nilai dalam stack , lain memori nilai, I / O port, dll, ditetapkan dan diakses menggunakan lebih atau kurang kompleks mode pengalamatan . Jenis operasi meliputi aritmatika , menyalin data, operasi logis , dan kontrol program, serta instruksi khusus (seperti CPUID dan lain-lain).
Opkode juga dapat ditemukan dalam yang disebut kode byte dan representasi lain yang dimaksudkan untuk penerjemah software daripada perangkat keras. Ini perangkat lunak berbasis set instruksi sering menggunakan data yang sedikit lebih tinggi tingkat jenis dan operasi dari rekan-rekan sebagian besar perangkat keras, tetapi tetap dibangun di sepanjang garis yang sama. Contoh termasuk bahasa pemrograman Java ‘s Java Virtual Machine (JVM), kode byte yang digunakan dalam GNU Emacs untuk dikompilasi LISP kode, BERSIH. Common Intermediate Language , dan banyak lainnya.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s