Rabu, 14 November 2018

CPU, sistem bus, dan ALU


CENTRAL PROCESSING UNIT ( CPU )

Central Processing Unit ( 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).


Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut:
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.

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.

ALU adalah unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmetika yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmetika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder. Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).

CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, peranti masukan /keluaran.

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.

Fungsi CPU

Sebagai komponen utama dalam sebuah komputer, CPU memiliki beberapa fungsi penting. Diantara fungsi-fungsi tersebut antara lain :
1.      Fetching
Fetching adalah suatu istilah yang digunakan dalam ilmu komputer dan diartikan sebagai proses pengambilan atau pemanggilan data. Dalam sebuah perangkat komputer, data disimpan dalam harddisk pada CPU dengan sebuah alamat.
Diibaratkan data didalam prosesor atau CPU disusun dalam kumpulan alamat dan ketika suatu program dijalankan CPU akan mengambil data dari alamat yang tersimpan dalam komponennya tersebut.
2.      Decoding
Dalam suatu sistem CPU, sebuah program yang akan dijalankan atau yang dieksekusi, harus sesuai dengan kode instruksi yang nantinya akan diterjemahkan agar CPU dapat mengenalinya dalam kode instruksi biner. Dapat disimpulkan bahwa decoding adalah suatu proses penterjemahan suatu program ke dalam bahasa yang dimengerti oleh CPU.
Decoding terjadi di dalam CPU dan semua program yang berjalan dalam perangkat komputer harus melalui proses decoding terlebih dahulu.
3.      Executing
Saat suatu program dijalankan maka CPU akan mengeksekusi program tersebut. Maksudnya adalah CPU akan melakukan satu hal yakni melakukan kalkulasi atau perhitungan dengan menggunakan suatu komponen didalamnya yang disebut dengan ALU atau Arithmetical Logical Unit .
Kompenen ALU sendiri bertanggung jawab dalam semua proses perhitungan matematika dan logika dalam komputer. Selain itu fungsi eksekusi dari suatu CPU juga berarti sebagai proses pemindahan suatu data dari suatu perangkat memori menuju perangkat memori yang lainnya.
4.      Storing
Storing atau menyimpan data adalah salah satu fungsi lainnya dari CPU. Saat seseorang menggunakan komputer maka ia membutuhkan perangkat untuk menyimpannya baik secara sementara maupun secara permanen.
Jika seseorang membutuhkan data dengan cepat dan memyimpannya secara sementara maka CPU akan menyimpannya dalam RAM sementara data yang disimpan secara permanen akan masuk ke dalam harddisk. Kedua fungsi tersebut dilakukan dan dikendalikan sepenuhnya oleh CPU.

BUS SISTEM

System bus atau bus sistem, dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.
Sebuah komputer memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam sistem, tergantung dari arsitektur sistem komputer yang digunakan. Sebagai contoh, sebuah komputer PC dengan prosesor umumnya Intel Pentium 4memiliki bus prosesor (Front-Side Bus), bus AGP, bus PCI, bus USB, bus ISA (yang digunakan oleh keyboard dan mouse), dan bus-bus lainnya.
Bus disusun secara hierarkis, karena setiap bus yang memiliki kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi. Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada. Sebagai contoh, kartu grafis AGP akan dihubungkan ke bus AGP. Beberapa perangkat lainnya (utamanya chipset atau kontrolir) akan bertindak sebagai jembatan antara bus-bus yang berbeda. Sebagai contoh, sebuah kontrolir bus SCSI dapat mengubah sebuah bus menjadi bus SCSI, baik itu bus PCI atau bus PCI Express.

Berdasar jenis busnya, bus dapat dibedakan menjadi bus yang khusus menyalurkan data tertentu, contohnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus yang dilalui informasi yang berbeda baik data, alamat, dan sinyal kontrol dengan metode multipleks data maka bus ini disebut multiplexed bus. Kekurangan multiplexed bus adalah hanya memerlukan saluran sedikit sehingga menghemat tempat tetapi kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimultipleks. Sedangkan untuk dedicated bus merupakan kebalikan dari multipexed bus.
Beberapa bus utama dalam sistem komputer modern adalah sebagai berikut:

Bus prosesor. Bus ini merupakan bus tercepat dalam sistem dan menjadi bus inti dalam chipsetdan motherboard. Bus ini utamanya digunakan oleh prosesor untuk meneruskan informasi dari prosesor ke cache atau memori utama ke chipset kontrolir memori (Northbridge, MCH, atau SPP). Bus ini juga terbagi atas beberapa macam, yakni Front-Side Bus, HyperTransport bus, dan beberapa bus lainnya. Sistem komputer selain Intel x86 mungkin memiliki bus-nya sendiri-sendiri. Bus ini berjalan pada kecepatan 100 MHz, 133 MHz, 200 MHz, 266 MHz, 400 MHz, 533 MHz, 800 MHz, 1000 MHz atau 1066 MHz. Umumnya, bus ini memiliki lebar lajur 64-bit, sehingga setiap detaknya ia mampu mentransfer 8 byte.
Bus AGP(Accelerated Graphic Port). Bus ini merupakan bus yang didesain secara spesifik untuk kartu grafis. Bus ini berjalan pada kecepatan 66 MHz (mode AGP 1x), 133 MHz (mode AGP 2x), atau 533 MHz (mode AGP 8x) pada lebar jalur 32-bit, sehingga bandwidth maksimum yang dapat diraih adalah 2133 MByte/s. Umumnya, bus ini terkoneksi ke chipsetpengatur memori (Northbridge, Intel Memory Controller Hub, atau NVIDIA nForce SPP). Sebuah sistem hanya dapat menampung satu buah bus AGP. Mulai tahun 2005, saat PCI Express mulai marak digunakan, bus AGP ditinggalkan.

Bus PCI(Peripherals Component Interconnect). Bus PCI tidak tergantung prosesor dan berfungsi sebagai bus peripheral. Bus ini memiliki kinerja tinggi untuk sistem I/O berkecepatan tinggi. Bus ini berjalan pada kecepatan 33 MHz dengan lebar lajur 32-bit. Bus ini ditemukan pada hampir semua komputer PC yang beredar, dari mulai prosesor Intel 486 karena memang banyak kartu yang menggunakan bus ini, bahkan hingga saat ini. Bus ini dikontrol oleh chipset pengatur memori (northbridge, Intel MCH) atau Southbridge (Intel ICH, atau NVIDIA nForce MCP).
  • Bus PCI Express(Peripherals Component Interconnect Express)
  • Bus PCI-X(Peripherals Component Interconnect Express)
  • Bus ISA(Industry Standard Architecture)
  • Bus EISA(Extended Industry Standard Architecute)
  • Bus MCA(Micro Channel Architecture)
Bus SCSI (Small Computer System Interface). Bus ini diperkenalkan oleh Macintosh pada tahun 1984. SCSI merupakan antarmuka standar untuk drive CD-ROM, peralatan audio, harddisk, dan perangkat penyimpanan eksternal berukuran besar
Bus USB(Universal Serial Bus). Bus ini dikembangkan oleh tujuh vendor komputer, yaitu Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom. Bus ini ditujukan bagi perangkat yang memiliki kecepatan rendah seperti keyboard, mouse, dan printer karena tidak akan efisien jika perangkat yang berkecepatan rendah dipasang pada bus berkecepatan tinggi seperti PCI. Keuntungan yang didapat dari bus USB antara lain : tidak harus memasang jumper, tidak harus membuka casing untuk memasang peralatan I/O, hanya satu jenis kabel yang digunakan, dapat mensuplai daya pada peralatan I/O, tidak diperlukan reboot.
Bus 1394. Bus yang mempunyai nama FireWirememiliki kecepatan tinggi diatas SCSI dan PCI. Bus 1394 sangat cepat, murah, dan mudah untuk diimplementasikan. Bus ini tidak hanya populer perangkat komputer tetapi juga perangkat elektronik seperti kamera digital, VCR, dan televisi.

UNIT ARITMATIKA DAN LOGIKA

Simbol umum ALU.
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:
sama dengan (=)
tidak sama dengan (<>)
kurang dari (<)
kurang atau sama dengan dari (<=)
lebih besar dari (>)
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.
Cara Kerja Arithmetic Logic Unit (ALU)
Secara umum, sirkuit eksternal mengontrol sebuah ALU dengan menerapkan sinyal ke input. Biasanya, sirkuit eksternal mempekerjakan logika sekuensial untuk mengendalikan operasi ALU, yang mondar-mandir oleh sinyal clock frekuensi yang cukup rendah untuk memastikan waktu yang cukup untuk output ALU untuk menetap dalam kondisi terburuk.
Misalnya, CPU dimulai operasi Selain ALU oleh routing operan dari sumber mereka (yang biasanya register) untuk input operan ALU, sementara unit kontrol secara bersamaan berlaku nilai untuk masukan opcode ALU ini, mengkonfigurasi untuk melakukan penambahan. Pada saat yang sama, CPU juga rute ALU hasil output ke daftar tujuan yang akan menerima jumlah tersebut. sinyal input ALU, yang diadakan stabil sampai jam berikutnya, diperbolehkan untuk menyebarkan melalui ALU dan register tujuan sementara CPU menunggu jam berikutnya. Ketika jam berikutnya tiba, register tujuan menyimpan hasil ALU dan, sejak operasi ALU selesai, masukan ALU dapat diatur untuk operasi ALU berikutnya.

ALU melakukan operasi aritmatika dan logika dasar. Contoh operasi aritmatika adalah penambahan, pengurangan, perkalian, dan pembagian. Contoh operasi logika adalah perbandingan antara nilai-nilai dalam operasi logis bitwise yang digunakan seperti:
DAN: bitwise AND A dan B muncul di Y.
OR: bitwise OR A dan B muncul di Y.
Exclusive-OR: bitwise XOR dari A dan B muncul di Y.
Melengkapi satu: semua bit A (atau B) terbalik dan muncul di Y.
Semua informasi dalam komputer disimpan dan dimanipulasi dalam bentuk bilangan biner, yaitu 0 dan 1. switch Transistor digunakan untuk memanipulasi angka biner karena hanya ada dua kemungkinan dari switch: terbuka atau tertutup. Transistor terbuka, di mana tidak ada saat ini, merupakan 0. ditutup transistor, di mana ada saat ini, merupakan 1.
Operasi dapat dicapai dengan menghubungkan beberapa transistor. Satu transistor dapat digunakan untuk mengendalikan kedua kemungkinan yang berlaku, memutar saklar transistor atau menonaktifkan tergantung pada keadaan transistor kedua. Hal ini disebut sebagai gerbang karena pengaturan dapat digunakan untuk membolehkan atau menghentikan arus.
Jenis paling sederhana dari operasi adalah gerbang NOT. Ini hanya menggunakan satu transistor. Menggunakan satu input dan menghasilkan satu output, yang selalu kebalikan dari input. Angka ini menunjukkan logika gerbang NOT.
Bagaimana sebuah gerbang NOT memproses data biner ?

Gerbang lain yang terdiri dari beberapa transistor dan menggunakan dua input. Hasil gerbang OR dalam 1 jika salah satu dari masukan pertama atau masukan kedua adalah 1. gerbang OR hanya menghasilkan 0 jika kedua input adalah 0. Angka ini menunjukkan logika dari gerbang OR.

Bagaimana sebuah gerbang OR memproses data biner ?
AND hasil gerbang dalam 1 hanya jika kedua input pertama dan kedua adalah 1. Angka ini menunjukkan logika gerbang.

Bagaimana sebuah gerbang AND memproses data biner ?
Gerbang XOR, juga diucapkan X-gerbang OR, hasil dalam 0 jika kedua input adalah 0 atau jika keduanya 1. Jika tidak, hasilnya adalah 1. Angka ini menunjukkan logika gerbang XOR.
REGISTER PROSESOR
Register prosesor dalam arsitektur komputer adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.

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 phi, null, true, false dan lainnya.
  • Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
  • Register special purposeyang 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. 


Register di dalam CPU terdiri atas :

Instruction Register (IR) digunakan untuk menyimpan instruksi yang sedang
Program Counter (PC) adalah register yang digunakan untuk menyimpan alamat lokasi main memory yang berisi instruksi yang sedang diproses. Selama proses berlangsung, isi PC diubah menjadi alamat main memory yang berisikan instruksi berikutnya yang akan diproses. Hal ini memungkinkan untuk melacak jejak instruksi selanjutnya di main memory.
General purpose register, yaitu register yang mempunyai berbagai macam fungsi yang berhubungan dengan data yang sedang diproses. Misal, jika digunakan untuk menampung data yang sedang diolah disebut sebagai operand register, sedangkan jika digunakan untuk menampung hasil olahan disebut sebagai accumulator.
Memory Data Register (MDR), yaitu register yang digunakan untuk menampung data atau instruksi yang dikirimkan dari main memory ke CPU, atau menampung data yang akan disimpan ke main memory sebagai hasil olahan CPU.
Memory Address Register (MAR) digunakan untuk menampung alamat data atau instruksi pada main memory yang akan diambil atau yang akan diletakkan

arsitektur set instruksi (jenis2, teknik pengalamatan dan desain set instruksi)



ARSITEKTUR SET INSTRUKSI


Set Instruksi (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). 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.

Elemen – Elemen dari 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 instruksi berikutnya setelah instruksi yang dijalankan selesai.
Jenis-Jenis Instruksi
  1. Data Processing / Pengolahan Data : instruksi- instruksi aritmetika dan logika. Instruksi aritmetika memiliki kemampuan untuk mengolahdata numeric, sedangkan instruksi logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan. Operasi-operasi tersebut dilakukan terutama untuk data di register CPU.
  2. Data Storage / Penyimpanan Data : instruksi- instruksi memori. Instruksi- instruksi memori diperlukan untuk memindah data yang terdapat di memori dan register.
  3. Data Movement / Perpindahan Data : instruksi I/O. Instruksi- instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputansi kepada pengguna.
  4. Control / Kontrol : instruksi pemeriksaan dan percabangan. Instruksi- instruksi kontrol digunakan untuk memeriksa nilai data, status komputansi dan mencabangkan ke set instruksi lain.
Desain Set Instruksi

Desain set instruksi merupakan masalah yang sangatkomplek yang melibatkan banyak aspek, diantaranya adalah:
  • Kelengkapan set instruksi
  • Ortogonalitas (sifat independensi instruksi)
  • Kompatibilitas : Source Code Compatibility dan Object Code Compatibility
Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :
  1. Operation Repertoire, Berapa banyak dan opera siapa saja yang disediakan, dan berapa sulit operasinya
  2. Data Types
Tipe/jenis data yang dapat diolah
  • Instruction Format, Panjangnya, banyaknya alamat,dsb.
  • Register, Banyaknya register yang dapat digunakan
  • Addressing, Mode pengalamatan untuk operand
TEKNIK PENGALAMATAN
  1. Immediate Addressing
Immediate Addressing ModePenjelasan :
  • Operand benar-benar ada dalam instruksi atau bagian dari intsruksi
  • Operand sama dengan field alamat
  • Umumnya bilangan akan disimpan dalam bentuk complement dua
  • Bit paling kiri sebagai bit tanda
  • 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 dan menghemat siklus instruksi sehingga proses keseluruhan akan cepat

Kekurangan : Ukuran bilangan dibatasi oleh ukuran field

Contoh : ADD 7 yaitu tambahkan 7 pada akumulator

2. Direct Addressing
Direct Addressing ModePenjelasan :
  • Teknik ini banyak digunakan pada komputer lama dan komputer kecil
  • 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 yaitu tambahkan isi pada lokasi alamat A ke akumulator

3. Indirect Addressing
Indirect Addressing Mode


Penjelasan :
  • Merupakan mode pengalamatan tak langsung
  • 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) yaitu tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator

4. Register Addressing
Register Addressing Mode


Penjelasan :
  • Metode pengalamatan register mirip dengan mode pengalamatan langsung
  • Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama
  • 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 dan akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat

Kerugian : Ruang alamat menjadi terbatas

5. Register Indirect Addressing
register indirect
Penjelasan :

  • Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung
  • Perbedaannya adalah field alamat mengacu pada alamat register
  • Letak operand berada pada memori yang dituju oleh isi register
  • Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung
  • Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak
  • 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
6. Displacement Addressing
displacement addressing


Penjelasan :

  • Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
  • Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
  • Operand berada pada alamat A ditambahkan isi register
  • Tiga model displacement :-Relative addressing : register yang direferensi secara implisit adalah Program Counter (PC)-Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat-Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya.
  • 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
  • Indexing : field alamat mereferensi alamat memori utama, dan register yang direferensikan berisi pemindahan positif dari alamat tersebut

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

7. Stack addressing

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