Rabu, 11 Oktober 2017

Central Prosessing Unit (CPU)

A.   Pengertian CPU                                                                    

Tugas softskill 4
Unit Pemroses Sentral (UPS) (bahasa Inggris: Central Processing Unit/Processor; CPU), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan perintah dan data dari 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 aktifitas yang ada pada komputer. Kecepatan eksekusi processor tergantung apalagi pada frekuensinya, satuan adalah MHz (MegaHertz) atau GHz (1 GigaHertz = 1000 MegaHertz).

B.   Cara Kerja CPU

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 Unit 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.
C.   Fungsi 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 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 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.

Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan 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 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 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.

D.   Pengertian dan cara kerja sistem bus

Bus adalah Jalur komunikasi yang dibagi pemakai Suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai sub sistem. Karakteristik penting sebuah bus adalah bahwa bus merupakan media transmisi yang dapat digunakan bersama. Sistem komputer terdiri dari sejumlah bus yang berlainan yang menyediakan jalan antara dua buah komponen pada bermacam-macam tingkatan hirarki sistem komputer.

Suatu Komputer tersusun atas beberapa komponen penting seperti CPU, memori, perangkat Input/Output. setiap computer saling berhubungan membentuk kesatuan fungsi.
Sistem bus adalah penghubung bagi keseluruhan komponen computer dalam menjalankan tugasnya. Transfer data antar komponen komputer sangatlah mendominasi kerja suatu computer. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi CPU melalui perantara bus, begitu juga kita dapat melihat hasil eksekusi melalui monitor juga menggunakan system bus.

*      Cara Kerja Sistem Bus
·     Pada sistem komputer yang lebih maju, arsitektur  komputernya akan lebih kompleks, sehingga untuk meningkatkan performa, digunakan beberapa buah bus.
·      Tiap bus merupakan jalur data antara beberapa device yang berbeda. Dengan cara ini RAM, Prosesor, GPU (VGA AGP) dihubungkan oleh bus utama berkecepatan tinggi yang lebih dikenal dengan nama FSB (Front Side Bus) .
·     Sementara perangkat lain yang lebih lambat dihubungkan oleh bus yang berkecepatan lebih rendah yang terhubung dengan bus lain yang lebih cepat sampai ke bus utama. Untuk komunikasi antar bus ini digunakan sebuah bridge.

E.   Komponen CPU
v  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.

v  ALU, singkatan dari Arithmetic And Logic Unit (bahasa Indonesia: unit aritmetika dan logika), adalah salah satu bagian dalam dari sebuah mikroprosesor yang berfungsi untuk melakukan operasi hitungan aritmetika dan logika. Contoh operasi aritmetika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. tugas utama dari ALU (Arithmetic And Logic Unit)adalah melakukan semua perhitungan aritmetika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebut adder. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:

a. sama dengan (=)
b. tidak sama dengan (<>)
c. kurang dari (<
d. kurang atau sama dengan dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=) (sumber: Buku Pengenalan Komputer, Hal 154-155, karangan Prof.Dr.Jogiyanto H.M, M.B.A.,Akt.)


Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan), Addu (penjumlahan tidak bertanda), Sub (pengurangan), Subu (pengurangan tidak bertanda), and, or, xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain.

v  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.

         Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tetapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.
§  Jenis register
Register terbagi menjadi beberapa kelas:
·         Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
·         Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
·         Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
·         Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
·         Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phinulltruefalsedan lainnya.
·         Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
·         Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status register.
·         Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.

v  Memori (atau lebih tepat disebut memori fisik) merupakan istilah generik yang merujuk pada media penyimpanan data sementara pada komputer. Setiap program dan data yang sedang diproses oleh prosesor akan disimpan di dalam memori fisik. Data yang disimpan dalam memori fisik bersifat sementara, karena data yang disimpan di dalamnya akan tersimpan selama komputer tersebut masih dialiri daya (dengan kata lain, komputer itu masih hidup). Ketika komputer itu direset atau dimatikan, data yang disimpan dalam memori fisik akan hilang. Oleh karena itulah, sebelum mematikan komputer, semua data yang belum disimpan ke dalam media penyimpanan permanen (umumnya berbasis disk, semacam hard disk atau floppy disk), sehingga data tersebut dapat dibuka kembali di lain kesempatan. Memori fisik umumnya diimplementasikan dalam bentuk Random Access Memory (RAM), yang bersifat dinamis (DRAM).

Mengapa disebut Random Access, adalah karena akses terhadap lokasi-lokasi di dalamnya dapat dilakukan secara acak (random), bukan secara berurutan (sekuensial). Meskipun demikian, kata random access dalam RAM ini sering menjadi salah kaprah. Sebagai contoh, memori yang hanya dapat dibaca (ROM), juga dapat diakses secara random, tetapi ia dibedakan dengan RAM karena ROM dapat menyimpan data tanpa kebutuhan daya dan tidak dapat ditulisi sewaktu-waktu. Selain itu, hard disk yang juga merupakan salah satu media penyimpanan juga dapat diakses secara acak, tapi ia tidak digolongkan ke dalam Random Access Memory.
§  Penggunaan memori
Komponen utama dalam sistem komputer adalah Arithmetic and Logic Unit (ALU), Control Circuitry, Storage Space dan piranti Input/Output. Tanpa memori, komputer hanya berfungsi sebagai piranti pemroses sinyal digital saja, contohnya kalkulator atau media player. Kemampuan memori untuk menyimpan data, instruksi dan informasi-lah yang membuat komputer dapat disebut sebagai komputer multi-fungsi (general-purpose). Komputer merupakan piranti digital, maka informasi disajikan dengan sistem bilangan biner (binary). Teks, angka, gambar, suara dan video dikonversikan menjadi sekumpulan bilangan biner (binary digit atau disingkat bit). Sekumpulan bilangan biner dikenal dengan istilah BYTE, dimana :
1 bita = 8 bit
1 bit = 1 karakter
1 kilobita = 1024 bita
bps = bit per second 1 kbps = 1000 bps 1 mbps = 1.000.000 bps

Semakin besar ukuran memorinya maka semakin banyak pula informasi yang dapat disimpan di dalam komputer (media penyimpanan).

§  Jenis-jenis memori
Beberapa jenis memori yang banyak digunakan adalah sebagai berikut:

a.     Register prosesor
b.     RAM atau Random Access Memory
c.     Cache Memory (SRAM) (Static RAM)
d.     Memori fisik (DRAM) (Dynamic RAM)
e.     Perangkat penyimpanan berbasis disk magnetis
f.      Perangkat penyimpanan berbasis disk optik
g.     Memori yang hanya dapat dibaca atau ROM (Read Only Memory)
h.     Flash Memory
i.       Punched Card (kuno)
j.       CD atau Compact Disk
k.     DVD
§  Pembagian memori
Dalam pembicaraan mengenai arsitektur komputer seperti arsitektur von Neumann, misalnya, kapasitas dan kecepatan memori dibedakan dengan menggunakan hierarki memori. Hierarki ini disusun dari jenis memori yang paling cepat hingga yang paling lambat; disusun dari yang paling kecil kapasitasnya hingga paling besar kapasitasnya; dan diurutkan dari harga tiap bit memori-nya mulai dari yang paling tinggi (mahal) hingga yang paling rendah (murah).


Referensi:


Selasa, 10 Oktober 2017

Arsitektur Set Instruksi

A.   Pengertian set instruksi
                                                         Tugas Softskill 3
Set Instruksi (bahasa Inggris: Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
Set instruksi (instruction set) biasa disebut juga sebagai sekumpulan lengkap instruksi yang dapat dimengerti oleh sebuah CPU dengan sebuah kamus berisi daftar perintah apa saja yang dapat dilakukan (didukung) oleh sebuah prosesor, dan biasanya terikat dengan sebuah keluarga arsitektur prosesor tertentu.
ISA merupakan sebuah spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.
ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.

B.   KARAKTERISTIK DAN FUNGSI SET INSTRUKSI

  Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer (computer instructions).
  Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).

C.   ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)

  • Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
  • Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
  • Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
  • Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.

*      Source dan result operands dapat berupa salah satu diantara tiga jenis berikut ini:
  Main or Virtual Memory
  CPU Register
  I/O Device


D.   DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi
     instruksi)
3. Kompatibilitas :    
    -  Source code compatibility
    - Object code Compatibility
Selain ketiga aspek tersebut juga melibatkan
hal-hal sebagai berikut:
1. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
2. Data Types: tipe/jenis data yang dapat olah
    Instruction Format: panjangnya, banyaknya alamat, dsb.
3. Register: Banyaknya register yang dapat digunakan
4.Addressing: Mode pengalamatan untuk operand
v  Format Instruksi
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).

v  Jenis-Jenis Operand
·         Addresses (akan dibahas pada addressing modes)
·         Numbers          : Integer or fixed point, Floating point, Decimal (BCD)
·         Characters       : ASCII, EBCDIC
·         Logical Data   : Bila data berbentuk binary ( 0 dan 1 )
v  Jenis-Jenis Instruksi

1. Pengolahan Data
Instruksi untuk aritmetika dan logika. Instruksi Aritmetika memiliki kemampuan untuk mengolah data numeric. Instruksi Logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan.

2. Penyimpanan Data
Instruksi untuk Memori. Instruksi memori diperlukan untuk memindahkan data yang terdapat pada memori dan register.

3. Perpindahan Data
Instruksi untuk I/O. Instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputansi kepada pengguna.

4. Kontrol
Instruksi untuk pemeriksaan dan percabangan. Instruksi kontrol digunakan untuk memeriksa nilai data dannmencambangkan ke set industri lain.

E.   Jenis Addressing Mode (Teknik Pengalamatan)

Yang termasuk Teknik pengalamatan yaitu : Immediate, Direct, Indirect, Register, Register Indirect, Displacement, Stack

Ø  Immediate Addressing

o   Pengalamatan yang paling sederhana.
o   Operand benar-benar ada dalam instruksi atau bagian dari intsruksi
o   Operand sama dengan field alamat
o   Umumnya bilangan akan disimpan dalam bentuk complement dua
o   Bit paling kiri sebagai bit tanda
o   Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data

Keuntungan :
- Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
- Menghemat siklus instruksi sehingga proses keseluruhanakan akan cepat

Kekurangan :
- Ukuran bilangan dibatasi oleh ukuran field

Contoh :
- ADD 7 ; tambahkan 7 pada akumulator

Ø  Direct Addressing

o   Teknik ini banyak digunakan pada komputer lama dan komputer kecil
o   Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus

Kelebihan :
- Field alamat berisi efektif address sebuah operand

Kekurangan :
- Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word

Contoh :
- ADD A ; tambahkan isi pada lokasi alamat A ke akumulator

Ø  Indirect Addressing

o   Merupakan mode pengalamatan tak langsung
o   Field alamat mengacu pada alamat word di alamat memori, yang pada gilirannya akan berisi alamat operand yang panjang

Kelebihan :
- Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi

Kekurangan :
- Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi

Contoh :
- ADD (A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator


Ø  Register Addressing

o     Metode pengalamatan register mirip dengan mode pengalamatan langsung
o     Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama
o     Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register general purpose

Keuntungan :
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
- Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat

Kerugian :
- Ruang alamat menjadi terbatas

Ø  Register Indirect Addressing

Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung
o   Perbedaannya adalah field alamat mengacu pada alamat register
o   Letak operand berada pada memori yang dituju oleh isi register
o   Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung
o   Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak
o   Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung

Ø  Displacement Addressing

o   Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
o   Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
o   Operand berada pada alamat A ditambahkan isi register
Tiga model displacement
o   Relative addressing : register yang direferensi secara implisit adalah Program Counter (PC)
o   Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
o   Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya

o   Base register addressing : register yang direferensi berisi sebuah alamat memori dan field alamat berisi perpindahan dari alamat itu
§  Referensi register dapat eksplisit maupun implisit
§  Memanfaatkan konsep lokalitas memori
o   Indexing  : field alamat mereferensi alamat memori utama, dan register yang direferensikan berisi pemindahan positif dari alamat tersebut
·         Merupakan kebalikan dari mode base register
·         Field alamat dianggap sebagai alamat memori dalam indexing
·         Manfaat penting dari indexing adalah untuk eksekusi program-pprogram iteratif

Contoh :
- Field eksplisit bernilai A dan field imlisit mengarah pada register

Ø  Stack Addressing

o   Stack adalah array lokasi yang linier = pushdown list = last-in-firs-out
o   Stack merupakan blok lokasi yang terbaik
o   Btir ditambahkan ke puncak stack sehingga setiap blok akan terisi secara parsial
o   Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack
o   Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi ke elemen ketiga stack
o   Stack pointer tetap berada dalam register
o   Dengan demikian, referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsung.

Referensi :

1.    https://en.wikipedia.org/wiki/Instruction_set
2.    https://en.wikipedia.org/wiki/Complex_instruction_set_computing
3.  https://docs.google.com/document/d/1shUV_xUF89iHyomHPD_VDNaaJr6jbqCJDw4aY2mKQU/edit?usp=sharing
4.  https://rosdianasetiawan.blogspot.co.id/2013/02/set-instruksi-teknik-pengalamatan.html