Instruksi dalam CPU
Operasi Central Processing Unit (CPU) ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai machine-instruction (instruksi mesin) atau computer instruction (instruksi computer). Kumpulan fungsi yang dapat dieksekusi CPU ini disebut set instruksi (CPU Instruction Set).
Step by Step Instruksi Mesin
Keterangan Instruction Address Calculation(iac): Menentukan alamat instruksi berikutnya yang akan dieksekusi. Instrruction Fetch (if) : Membaca instruksi dari lokasi memorinya ke dalam CPU. Instruction Operation Decoding(iod) : Menganalisis instruksi untuk menentukan jenis instruksi yang akan dibentuk dan operan yang akan digunakan. Operand Address Calculation (oac) : Bila Operasi melibatkan referensi ke operand di dalam memory atau dapat diperoleh memalui I/O, maka tentukan alamat operand. Operation Fetch (of) : Ambil operand dari memory dan baca operand itu dari I/O Data Operation (do) : Bentuk Operasi yang ditunjukkan di dalam Instruksi. Operation Store (os) : Tuliskan hasilnya ke dalam memory atau keluarkan ke I/O
INGAT ! Setiap tindakan/operasi pengambilan data dan/atau instruksi dari main-memory disebut load, sedangkan meletakkan ke main-memory disebut store.
Siklus Sederhana
Alur proses spesifik data/instruksi dalam processing-unit sistem komputer modern
main-memory Instruction Cycle CPU dan Yang berlangsung dalam sebuah sistem komputer pada berfokus pada relasi CPU dan main-memory
Instruction Cycle Periode yang dibutuhkan oleh sebuah komputer untuk membaca dan memproses instruksi dari memori, atau rentetan aksi pada CPU yang dilakukan untuk mengeksekusi setiap bahasa mesin yang terdapat dalam program
Instruction Cycle Fetch Cycle mencakup langkah membaca instruksi dan/atau data dari memori utama. Execute Cycle mencakup eksekusi instruksi yang ada dan menyimpan hasil instruksi.
Instruction Cycle
Elemen-elemen Instruksi Mesin Operator (operation code): menspesifikasikan operasi yang akan dilakukan dimana operasi tersebut dispesifikasikan oleh kode biner yang dikenal sebagai op-code. Operand masukan (source operand reference): menpesifikasikan operand sumber; dengan kata lain operand sebagai input bagi operasi. Operand keluaran (result operand reference): menspesifikasikan hasil dari operasi operand. Operasi data selanjutnya (next instruction reference): elemen ini memberitahukan CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi.
Contoh: - perhatikan statement berikut ini: A A + B ; maka: Operation code: + Source operand reference: A , B Result operand reference: A Jika dilanjutkan kembali statement sebagai berikut: A C A ; Maka: Next instruction reference:
Contoh berikutnya, ditampilkan sebuah listing program dalam Bahasa Pemrograman BASIC: LET A=2 ; operand masukan-1=A berisi 2 LET B=3 ; operand masukan-2=B berisi 3 LET C=A+B ; operator adalah + dan hasilnya disimpan di operand C, ; maka C sebagai operand keluaran PRINT A ; operasi data selanjutnya PRINT B ; operasi data selanjutnya PRINT C ; operasi data selanjutnya
Mnemonic Instruction Sangatlah sulit bagi seorang pemrogram atau user untuk memahami representasi biner instruksi-instruksi mesin; karena pada dasarnya instruksi mesin direpresentasikan dalam bentuk bit (binary-digit). Oleh karena itu, diperlukan penggunaan representasi simbolik (symbolic representation) instruksi mesin dengan singkatan-singkatan kode akronim yang disebut mnemonic instruction
Mnemonic Instruction Lanjutan ADD : add (tambahkan) SUB : substract (kurangkan) MUL : multiply (kalikan) DIV : divide (bagikan) LOAD : load ambil data dari main-memory STOR : store tampungkan data ke main-memory MOV : move copy-kan sebuah nilai ke sebuah lokasi hasil atau lokasi temporer sebelum operasi dilakukan.
contoh Contoh: ADD R1,R2 ; berarti tambahkan nilai yang terdapat pada isi register R2 ke isi register R1, dan simpankan di lokasi register R1.
Agar dapat dieksekusi, setiap program yang ditulis dalam bahasa pemrograman tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Dengan demikian set instruksi bahasa mesin harus dapat mengekspresikan setiap instruksi bahasa pemrograman tingkat tinggi.
jenis-jenis instruksi Pengolahan Data (data processing) instruksi-instruksi arithmatika dan logika. Penyimpanan Data (data storage) instruksi-instruksi memori. Perpindahan Data (data movement) instruksi-instruksi I/O. Kontrol atau kendali (controlling) instruksi-instruksi pemeriksaan dan pencabangan.
Pengalamatan Operand mnemonic instruction dikenal tiga cara dalam pengalamatan operand, yaitu: instruksi 3 alamat (3 operand), 2 alamat (2 operand), dan instruksi 1 alamat (1 operand).
Instruksi 3 alamat (3 operand) Y (AB) (C+DE) ;
Instruksi 2 alamat (2 operand) Y (AB) (C+DE) ;
Instruksi 1 alamat (1 operand) Y (AB) (C+DE) ;
Tahapan Pemrosesan Instruksi Pemrosesan instruksi yang dilakukan oleh CPU mencakup 2 tahap, yaitu: Instruction Fetch, dan Instruction Execute.
Keterangan Instruction Fetch tahap pertama dari pemrosesan suatu instruksi oleh CPU, dimana proses CPU mengambil atau membawa atau menjemput instruksi dari main-memory ke CPU. Instruction Execute tahap ke-2 dari pemrosesan instruksi oleh CPU, dimana terjadi proses dari CPU untuk mengerjakan instruksi yang sudah dijemput (fetch) dari main-memory dan sudah berada di Instruction Register, dan menyimpankan kembali ke main-memory setelah selesai dieksekusi.
Algoritma Instruction Fetch: Alamat dari instruksi yang ada di PC (Program Counter) diletakkan di MAR. Selanjutnya MAR dihubungkan ke main-memory dengan Address Bus, sehingga alamat dari instruksi tersebut dikirimkan ke main-memory lewat Address Bus. Sementara itu Control Unit di CPU mengirimkan sinyal request membaca instruksi lewat bus untuk instruksi di alamat yang dikirimkan lewat Address Bus.
Algoritma Instruction Fetch: Lanj, Setelah mengirimkan sinyal request tersebut, CPU menunggu sampai menerima sinyal jawaban dari main-memory yang dikirimkan balik lewat Control Bus bahwa pengiriman instruksi telah dilakukan dan telah ada di MDR lewat Data Bus. Instruksi yang telah berada di MDR dipindahkan oleh CPU ke IR. Alamat instruksi sebelumnya di PC (Program Counter) ditambah satu, yang merupakan alamat dari instruksi berikutnya di main-memory.
Data Bus, Address Bus, dan Control Bus Data Bus bus yang digunakan untuk jalur transportasi data dan instruksi. Address Bus bus yang digunakan untuk jalur transportasi alamat di main-memory untuk data dan/atau instruksi yang akan diambil (loaded) atau akan direkamkan (stored). Control Bus bus yang digunakan untuk mengirimkan sinyal sebagai pemberitahuan akan dikirimkan suatu informasi atau telah diterimanya informasi yang dikirimkan dari satu devices ke devices yang lain.
Algoritma Instruction Execute: Bila operasi yang dilakukan membutuhkan data, maka data tersebut harus dijemput dari main-memory sebagai berikut: Alamat dari main-memory tempat data tersebut berada, yang ditunjukkan oleh operand alamat diletakkan di MAR dan dikirimkan ke main-memory melalui Address Bus. Control Unit mengirimkan sinyal request membaca isi dari alamat memori tersebut ke main-memory melalui Control Bus. CU (Control Unit) menunggu sinyal balik jawaban dari main-memory bahwa data yang di-request sudah dikirimkan dan sebagai hasilnya main-memory mengirimkan data tersebut ke MDR melalui Data Bus. Data yang sudah berada di MDR dikirim oleh Control Unit ke Operand Register.
Algoritma Instruction Execute: Data yang sudah ada di operand register tersebut, siap untuk diolah oleh ALU. Bila hasil pengolahan data akan direkam kembali ke main-memory, maka dapat diuraikan sebagai berikut: Alamat dari main-memory, dimana data ditampung, akan direkamkan yang ditunjukkan oleh operand alamat diletakkan di MAR, dan dikirimkan ke main-memory melalui Address Bus. Data hasil pengolahan yang berada di Accumulator dipindahkan ke MDR. CU (Control Unit) mengirimkan sinyal request tulis ke alamat memori tersebut, ke main-memory melalui Control Bus. CU (Control Unit) menunggu sinyal balik jawaban dari main-memory melalui Control Bus, bahwa perekaman data sudah dilakukan.