BLOGGER TEMPLATES AND TWITTER BACKGROUNDS

Senin, 21 November 2011

Instruction set (Set instruksi )

Instruction set (Set instruksi )
Set instruksi
Sebuah set instruksi, atau instruksi arsitektur set (ISA), adalah bagian dari arsitektur komputer yang berkaitan dengan pemoggram, termasuk asli jenis data, instruksi, register, modepengalamatan , arsitektur memori, interupsi dan exception handling , dan eksternal /-O. ISA mencakup spesifikasi dari himpunan opkode (bahasa mesin), dan perintah-perintah asli diimplementasikan oleh prosesor tertentu.
Arsitektur set instruksi dibedakan dari mikroarsitektur , yang merupakan seperangkat teknik desain prosesor yang digunakan untuk mengimplementasikan set instruksi. Komputer dengan microarchitectures berbeda dapat berbagi set instruksi yang sama. Sebagai contoh, Intel Pentium dan AMD Athlon mengimplementasikan versi yang hampir identik dari x86 set instruksi, namun memiliki desain internal yang sangat berbeda.
Beberapa mesin virtual yang mendukung bytecode untuk Smalltalk , yang mesin virtual Java , dan Microsoft Common Language Runtime mesin virtual karena ISA mereka menerapkannya dengan menerjemahkan bytecode untuk jalur kode yang umum digunakan ke dalam kode mesin asli, dan melaksanakan jalur kode kurang-sering digunakan oleh interpretasi; Transmeta menerapkan instruksi x86 ditetapkan atas VLIW prosesor dengan cara yang sama.

TIMI
Konsep ini dapat diperpanjang untuk ISA unik seperti TIMI hadir (Teknologi-Machine Interface Independen) di System/38 IBM dan IBM AS/400 . TIMI merupakan sebuah ISA yang diimplementasikan oleh perangkat lunak tingkat rendah menerjemahkan kode ke kode TIMI "asli" mesin, dan fungsional menyerupai apa yang sekarang disebut sebagai mesin virtual . Ini dirancang untuk meningkatkan umur panjang dari platform dan aplikasi yang ditulis untuk itu, yang memungkinkan seluruh platform untuk dipindahkan ke perangkat keras yang sangat berbeda tanpa harus memodifikasi perangkat lunak apapun kecuali yang diterjemahkan ke dalam kode mesin TIMI asli, dan kode yang mengimplementasikan jasa yang digunakan oleh kode asli yang dihasilkan. Hal ini memungkinkan IBM untuk memindahkan AS/400 platform dari yang lebih tua CISC arsitektur untuk yang lebih baru DAYA arsitektur tanpa harus menulis ulang atau mengkompilasi ulang setiap bagian dari OS atau perangkat lunak terkait dengan itu selain kode tingkat rendah tersebut.



Bahasa mesin
Bahasa mesin yang dibangun dari pernyataan diskrit atau instruksi. Pada arsitektur pemrosesan, instruksi yang diberikan dapat menentukan:
• Khusus register untuk aritmatika, menangani, atau fungsi kontrol
• Khusus lokasi memori atau offset
• Khusus mode pengalamatan digunakan untuk menafsirkan operan
Operasi yang lebih kompleks yang dibangun dengan menggabungkan instruksi sederhana ini, yang (dalam arsitektur von Neumann ) dijalankan secara berurutan, atau seperti yang diarahkan oleh kontrol aliran instruksi.
 Instruksi jenis
Beberapa operasi tersedia dalam set instruksi yang paling meliputi:
• Penanganan data dan operasi Memori
o menetapkan mendaftar (yang sementara "penggaris" lokasi di CPU itu sendiri) untuk nilai konstan tetap
o memindahkan data dari lokasi memori ke register, atau sebaliknya. Hal ini dilakukan untuk memperoleh data untuk melakukan perhitungan di atasnya nanti, atau untuk menyimpan hasil dari perhitungan yang.
o membaca dan menulis data dari perangkat keras
• Aritmatika dan Logika
o menambah, mengurangi, mengalikan, atau membagi nilai-nilai dari dua register, menempatkan hasilnya dalam register, mungkin pengaturan satu atau lebih kode kondisi dalam status mendaftar
o melakukan operasi bitwise , mengambil bersama dan disjungsi dari bit yang sesuai di sepasang register, atau negasi setiap bit dalam register
o membandingkan dua nilai dalam register (misalnya, untuk melihat jika salah satu kurang, atau jika mereka adalah sama)
• Kontrol aliran
o cabang ke lokasi lain dalam program dan mengeksekusi instruksi ada
o kondisional cabang ke lokasi lain jika kondisi tertentu berlaku
o tidak langsung cabang ke lokasi lain, sambil menyimpan lokasi instruksi berikutnya sebagai titik untuk kembali ke (a panggilan )







 Instruksi Kompleks
Beberapa komputer termasuk "kompleks" petunjuk di set instruksi mereka. Sebuah single "kompleks" instruksi melakukan sesuatu yang dapat mengambil banyak instruksi pada komputer lain. Instruksi tersebut ditandai dengan instruksi yang mengambil beberapa langkah, pengendalian beberapa unit fungsional, atau muncul pada skala yang lebih besar daripada sebagian besar petunjuk sederhana diimplementasikan oleh prosesor diberikan. Beberapa contoh dari "kompleks" instruksi meliputi:
• menyimpan banyak register pada stack sekaligus
• bergerak besar blok memori
• kompleks dan / atau aritmatika floating-point ( sinus , kosinus , akar kuadrat , dll)
• melakukan sebuah atom tes-dan-set instruksi
• ALU instruksi yang menggabungkan dengan operand dari memori daripada register
Suatu jenis instruksi yang kompleks yang telah menjadi sangat populer baru-baru adalah SIMD atau Single-Multiple-Instruksi Streaming Streaming operasi data atau instruksi vektor , operasi yang melakukan operasi aritmatika yang sama pada beberapa bagian data pada saat yang sama. SIMD memiliki kemampuan memanipulasi vektor dan matriks yang besar dalam waktu minimal. Instruksi SIMD memungkinkan mudah paralelisasi algoritma umum terlibat dalam suara, gambar, dan pemrosesan video. Berbagai SIMD implementasi telah dibawa ke pasar di bawah nama dagang seperti MMX , 3DNow! dan AltiVec .


 Bagian dari instruksi


Satu instruksi mungkin memiliki beberapa bidang, yang mengidentifikasi operasi logis yang harus dilakukan, dan bisa juga menyertakan sumber dan alamat tujuan dan nilai-nilai konstan. Ini adalah MIPS "Tambah" instruksi yang memungkinkan pemilihan sumber dan register tujuan dan inklusi dari sebuah konstanta kecil.
Pada arsitektur tradisional, instruksi mencakup opcode menentukan operasi yang akan dilakukan, seperti "isi menambahkan memori untuk mendaftar", dan nol atau lebih operand specifier, yang dapat menentukan register , lokasi memori, atau data harfiah. Para penspesifikasi operan mungkin memiliki mode pengalamatan menentukan maknanya atau mungkin dalam bidang tetap.
Dalam kata instruksi yang sangat panjang (VLIW) arsitektur, yang mencakup banyak microcode arsitektur, opcode dan operan simultan ditentukan dalam instruksi tunggal.
Beberapa set instruksi eksotis tidak memiliki medan opcode (seperti Arsitektur Transportasi Dipicu (TTA) atau mesin virtual yang Forth ), hanya operan (s). Lain yang tidak biasa " 0-operan "set instruksi kurangnya setiap operan bidang specifier, seperti beberapa mesin tumpukan termasuk NOSC [1] .

 Instruksi panjang
Ukuran atau panjang instruksi sangat bervariasi, dari sesedikit empat bit dalam beberapa mikrokontroler untuk ratusan bit dalam beberapa sistem VLIW. Prosesor yang digunakan dalam komputer pribadi , mainframe , dan superkomputer memiliki ukuran instruksi antara 8 dan 64 bit (Instruksi terpanjang di x86 adalah 15 byte, yang adalah 120 bit). Dalam satu set instruksi, instruksi yang berbeda mungkin memiliki panjang yang berbeda. Pada beberapa arsitektur, terutama yang paling komputer set instruksi dikurangi (RISC), instruksi yang panjang tetap, biasanya sesuai dengan arsitektur ukuran word . Di arsitektur lain, instruksi memiliki panjang variabel, biasanya kelipatan integral dari suatu byte atau sindiran .

Instruksi pelaksanaannya diatur
Setiap set instruksi yang diberikan dapat diimplementasikan dalam berbagai cara. Semua cara melaksanakan instruksi set yang sama memberikan model pemrograman , dan mereka semua mampu menjalankan executable biner yang sama. Berbagai cara menerapkan set instruksi memberikan timbal balik yang berbeda antara biaya,, konsumsi kinerja daya, ukuran, dll
Ketika merancang mikroarsitektur prosesor, insinyur menggunakan blok dari "terprogram" elektronik sirkuit (sering dirancang secara terpisah) seperti penambah, multiplexer, counter, register, ALUS dll Beberapa jenis bahasa mentransfer mendaftar yang kemudian sering digunakan untuk menggambarkan decoding dan urutan setiap instruksi dari ISA menggunakan mikroarsitektur fisik. Ada dua cara dasar untuk membangun sebuah unit kontrol untuk melaksanakan deskripsi ini (walaupun banyak desain menggunakan cara-cara tengah atau kompromi):
1. Desain komputer awal dan beberapa komputer RISC sederhana "terprogram" instruksi menyelesaikan set decoding dan sekuensing (seperti sisa mikroarsitektur tersebut).
2. Desain lain menggunakan microcode rutinitas dan / atau tabel untuk melakukan ini-biasanya seperti pada ROM chip dan / atau Plas (walaupun RAM terpisah telah digunakan historis).
Ada juga beberapa desain CPU baru yang mengkompilasi set instruksi untuk dapat ditulis RAM atau lampu kilat di dalam CPU (seperti Rekursiv prosesor dan Imsys Cjip ), [2] atau FPGA ( reconfigurable komputasi ). Para Western Digital MCP-1600 adalah contoh yang lebih tua, menggunakan ROM, khusus terpisah untuk microcode.
Sebuah ISA juga dapat ditiru dalam perangkat lunak oleh sebuah interpreter . Tentu, karena overhead penafsiran, ini lebih lambat daripada langsung menjalankan program pada perangkat keras ditiru, kecuali perangkat keras menjalankan emulator adalah urutan besarnya lebih cepat. Hari ini, adalah praktik umum bagi vendor ISA baru atau microarchitectures untuk membuat emulator perangkat lunak yang tersedia untuk pengembang perangkat lunak sebelum implementasi hardware siap.
Seringkali rincian implementasi memiliki pengaruh kuat pada instruksi tertentu yang dipilih untuk set instruksi. Sebagai contoh, banyak implementasi dari instruksi pipa hanya mengizinkan beban memori tunggal atau menyimpan memori per instruksi, mengarah ke arsitektur beban-toko (RISC). Sebagai contoh lain, beberapa cara awal pelaksanaan instruksi pipa menyebabkan keterlambatan Slot .
Tuntutan tinggi kecepatan pemrosesan sinyal digital telah mendorong dalam arah berlawanan-memaksa instruksi yang harus dilaksanakan dengan cara tertentu. Misalnya, dalam rangka untuk melakukan filter digital cukup cepat, instruksi MAC dalam khas prosesor sinyal digital (DSP) harus diimplementasikan menggunakan jenis arsitektur Harvard yang dapat mengambil instruksi dan dua data kata secara bersamaan, dan itu membutuhkan satu- siklus kalikan-menumpuk multiplier .


Referensi
1. Ganssle, Jack. "Debugging Proaktif" . Diterbitkan 26 Februari 2001.
2. http://cpushack.net/CPU/cpu7.html
3. Evolusi teknologi RISC di IBM oleh John Cocke - IBM Journal of R & D, Volume 44, Nomor 1 / 2, hal.48 (2000)
4. http://repo.or.cz/w/fpgammix.git/blob_plain/HEAD:/doc/README

0 komentar: