Kamis, 20 November 2014

SET INTRUKSI (Organisasi dan Arsitektur Komputer)

A. KARAKTERISTIK INSTRUKSI MESIN


Menurut Kamus Besar Bahasa Indonesia, Karakteristik adalah ciri-ciri khusus atau mempunyai sifat khas sesuai dengan perwatakan tertentu. Instruksi adalah perintah atau arahan (untuk melakukan suatu pekerjaan
atau melaksanakan suatu tugas). Mesin adalah perkakas untukmenggerakkan, atau membuat sesuatu yang dijalankan dengan roda-roda dan digerakkan oleh tenaga manusia atau motor penggerak yang menggunakan bahan bakar minyak atau tenaga alam. Jadi, karakteristik-karakteristik instruksi mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh instruksi-instruksi atau kode operasi dalam pemrograman komputer. Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai intruksi mesin atau instruksi computer. Set fungsi dari instruksi-instruksi yang berbeda yang dapat di eksekusi oleh CPU dikenal sebagai set instruksi CPU.

A. Elemen-elemen Instuksi Mesin
Setiap instruksi harus terdiri dari informasi yang diperlukan oleh CPU untuk dieksekusi. Gambar langkah langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah sebagai
berikut :
Kode Operasi : menentukan operasi-operasi yang akan dilakukan (misalnya: ADD,I/O). Operasi itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.
Acuan Operand Sumber : Operasi dapat melibatkan satu atau lebih operand sumber, dengan kata lain, operand adalah input bagi operasi.
Acuan Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
Acuan Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi. Instuksi berikutnya yang akan diambil berada di memori utama atau pada system memori virtual, akan berada baik di dalam memori utama atau memori sekunder. Umumnya, instruksi yang akan segera diambil selanjutnya, berada setelah instruksi saat itu. Ketika acuan eksplisit dibutuhkan, maka alamat memori utama atau alamat memori virtual harus disiapkan. Operand sumber dan hasil dapat berada di salah satu dari ketiga daerah berikut ini:

Memori Utama atau Memori Virtual: Dengan adanya acuan instruksi berikutnya, maka alamat memori utama atau memori virtual harus diketahui.
Register CPU: Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya terdapat sebuah register saja, maka acuan ke instruksi tersebut dapat berbentuk implicit. Sedangkan jika terdapat lebih dari satu register, maka setiap register diberi nomor yang unik, dan instruksi harus terdiri dari nomor register yang dimaksud.
Perangkat I/O: Instruksi harus menspesifikan modul I/O dan perangkat yang diperlukan oleh operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan memori utama atau memori virtual.

B. Representasi Instruksi


Di dalam computer, instruksi dipresentasikan oleh sehimpunan bit.Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-bidang ini berkaitan dengan elemen-elemen yang akan memuat instruksi. Layout instruksi ini dikenal sebagai bentuk instruksi. Pada sebagian besar set instruksi, dapat digunakan lebih dari satu bentuk. Selama berlangsungnya eksekusi instruksi, instruksi dibaca ke dalam register instruksi yang terdapat dalam CPU. Untuk melakukan operasi yang diperlukan, CPU harus dapat mengeluarkan data dari berbagai bidang instruksi. Opcode direpresentasikan dengan singkatan-singkatan, yang disebut mnemorik, yang mengindikasikan operasi, contohnya adalah:

-ADD Add (Menambahkan)
-SUB Substract (Pengurangan)
-MPY Multiply (Perkalian)
-DIV Divide (Pembagian)
-LOAD Muatkan data data dari memori
-STOR Simpan data ke memori

Operand-operand juga direpresentasikan secara simbolik. Misalnya instruksi ADD R,Y Berarti tambahkan niali yang terdapat pada lokasi Y ke isi register R. Dalam contoh ini, Y berkaitan dengan alamat lokasi di dalam memori, dan R berkaitan dengan register tertentu. Perlu dicatat bahwa operasi dilakukan terhadap isi alamat, bukan terhadap alamatnya. Sehingga adalah mungkin untuk menuliskan program bahasa mesin dalam bentuk simbolik. Setiap opcode simbolik memiliki representasi biner yang tetap, dan pemrograman dapat menetapkan masing-masing operand simbolik. Misalnya, pemrograman dapat memulainya dengan definisi- definisi:

-X=523
-Y=514

dan seterusnya. Sebuah program yang sederhana akan menerima input simbol ini, kemudian mengkonversiakn opcode dan acuan operand menjadi bentuk biner, dan akhirnya membentuk instruksi mesin biner.

C. Jenis-Jenis Instruksi

Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau FORTRAN. X = X+Y Pernyataan ini menginstruksiakna komputer untuk menambahkan nilai yang tersimpan di Y ke nilai yang tersimpan di X dan menyimpan hasilnya di X. Variabel X dan Y berkorespondensi dengan lokasi 513 dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka operasi ini dapat dilakukan dengan tiga buah instruksi:

1. Muatkan sebuah register dengan isi lokasi memori 513
2. Tambahkan isi lokasi memori ke register
3. Simpan isi register di lokasi memori 513

Suatu komputer harus memiliki set instruksi yang memungkinkan pengguna untuk memformulasikan pengolahan data atau dengan memperhatikan kemampuan pemrograman bahasa tingkat tinggi. Agar dapat dieksekusi, setiap program yang ditulis dalam bahasa program tingkat tinggi harus diterjemahkan ke dalam bahasa mesin. Jadi, set instruksi mesin harus dapat mengekspresikan setiap instruksi bahas atingkat tinggi.
Adapun Jenis-jenis instrusi sebagai berikut:

- Pengolahan Data : Instrusi-instruksi aritmatika dan logika
- Penyimpanan Data : Instriksi-instruksi memori
- Perpindahan Data : Instruksi I/O
- Kontrol : Instruksi pemeriksaan dan percabangan

D. Rancangan Set Instruksi

Salah satu hal yang paling menarik tentang rancangan komputer adalah rancangan set instruksi. Karena rancangan ini mempengaruhi banak aspek sistem komputer, maka rancangan set instruksi sangat kompleks. Set instruksi menentukan banyak fungsi yang akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat menentukan implementasi CPU. Set instruksi merupakan alat bagi pemrogram untuk mengontrol CPU. Dengan demikian, kebutuhan-kebutuhan pemrogram harus menjadi bahan pertimbangan dalam merancang set instruksi. Masalah rancangan fundamental yang paling signifikan meliputi:

Repertoire Operasi: Berapa banyak dan opersai-operasi apa yang harus disediakan, dan sekompleks apakah operasi itu seharusnya.
Jenis data : berbagai jenis data pada saat operasi dijalankan
Bentuk instruksi : Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang, dan sebagainya.
Register : Jumlah register CPU yang dapat diacu oleh instruksi, dan fungsinya.
Pengalamatan: Mode untuk menspesifikasikan alamat suatu operand.

Kesimpulan,
Instruksi mesin (machine intruction) yang dieksekusi membentuk suatu operasi dan berbagai macam fungsi CPU.
Kumpulan fungsi yang dapat dieksekusi CPU disebut set instruksi (istruction set) CPU.
Karakteristik instruksi mesin, meliputi:

Elemen-elemen instruksi
Representasi instruksi
Jenis-jenis instruksi
Penggunaan alamat
Rancangan set instruksi

B. TIPE-TIPE OPERAND

Operand adalah sebuah objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi. Operand atau operator dalam bahasa C berbentuk simbol bukan berbentuk keyword atau kata yang biasa ada di bahasa pemrograman lain. Simbol yang digunakan bukan karakter yang ada dalam abjad tapi ada pada keyboard kita seperti =,,* dan sebagainya.

Tipe-tipe operand diantaranya :

1. Addresses (akan dibahas pada addressing modes)
2. Numbers :
- Integer or fixed point
- Floating point
- Decimal (BCD)
3. Characters :
- ASCII
- EBCDIC
4. Logical Data : Bila data berbentuk binary: 0 dan 1

Jenis-jenis operator adalah sebagai berikut :

1. Operator Aritmetika
Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).

2. Operator relational
Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).

3. Operator Logik
Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).

C. TIPE-TIPE OPERASI


A. Operasi set instruksi untuk transfer data :

• MOVE : memindahkan word atau blok dari sumber ke tujuan
• STORE : memindahkan word dari prosesor ke memori.
• LOAD : memindahkan word dari memori ke prosesor.
• EXCHANGE : menukar isi sumber ke tujuan.
• CLEAR / RESET : memindahkan word 0 ke tujuan.
• SET : memindahkan word 1 ke tujuan.
• PUSH : memindahkan word dari sumber ke bagian paling atas stack.
• POP : memindahkan word dari bgian paling atas sumber

B. Operasi set instruksi untuk arithmetic :

• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal.

C. Operasi set instruksi untuk operasi logical :

• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta

pada ujung bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang

terjalin.

D. Operasi set instruksi untuk conversi :

• TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori

berdasrkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk

lainnya.
e. Operasi set instruksi Input / Ouput :

• INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali

operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan

F. Operasi set instruksi untuk transfer control :

• JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan

alamat tertentu.
• JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan

alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari

lokasi tertentu.
• EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi

sebagai instruksi.
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan

pada persyaratan.
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.

D. ADDRESSING MODES (Mode Pengalamatan)


Jenis-jenis addressing modes (Teknik Pengalama-tan) yang paling umum:
- Immediate
- Direct
- Indirect
- Register
- Register Indirect
- Displacement
- Stack

Pengenalan Mode Pengalamatan
Mode pengalamatan adalah bagaimana cara menunjuk dan mengalamatisuatu lokasi memori pada sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat. Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect addressing, dan immediate addressing.

1. Direct Addresing
Dalam mode pengalamatan direct addressing, harga yang akan dipakai diambil langsung dalam alamat memori lain. Contohnya: MOV A,30h. Dalam instruksi ini akan dibaca data dari RAM internal dengan alamat 30h dan kemudian disimpan dalam akumulator. Mode pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung seperti immediate, namun cukup cepat karena disimpan dalam RAM internal. Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate karena harga yang didapat bisa dari lokasi memori yang mungkin variabel. Kelebihan dan kekurangan dari Direct Addresing antara lain :
- Kelebihan
----Field alamat berisi efektif address sebuah operand

- Kelemahan
----Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word

2. Indirect Addresing
Mode pengalamatan indirect addressing sangat berguna karena dapat memberikan fleksibilitas tinggi dalam mengalamati suatu harga. Mode ini pula satu-satunya cara untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052. Contoh: MOV A,@R0. Dalam instruksi tersebut, 89C51 akan mengambil harga yang berada pada alamat memori yang ditunjukkan oleh isi dari R0 dan kemudian mengisikannya ke akumulator. Mode pengalamatan indirect addressing selalu merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Karena itu, menggunakan mode ini untuk mengalamati alamat lebih dari 7Fh hanya digunakan untuk keluarga 8052 yang memiliki 256 byte spasi RAM internal.
Kelebihan dan kekurangan dari Indirect Addresing antara lain :
- Kelebihan
---Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi
- Kekurangan
---Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat preoses operasi

3. Immediate Addresing
Mode pengalamatan immediate addressing sangat umum dipakai karena harga yang akan disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan. Contohnya: MOV A,#20h. Dalam instruksi tersebut, akumulator akan diisi dengan harga yang langsung mengikutinya, dalam hal ini 20h. Mode ini sangatlah cepat karena harga yang dipakai langsung tersedia.
Kelebihan dan kekurangan dari Immedieate Addresing antara lain :
- Kelebihan
---Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
---Menghemat siklus instruksi sehingga proses keseluruhan akan cepat
- Kekurangan
---Ukuran bilangan dibatasi oleh ukuran field alamat

B. Pengenalan pada Register Addressing
Register adalah merupakan sebagian memori dari mikro prosessor yang dapat diakses dengan kecepatan tinggi. Metode pengalamatan register ini mirip dengan mode pengalamatan langsung. Perbedaannya 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 ata 16 register general purpose.
Kelebihan dan kekurangan Register Addressing :
- Keuntungan pengalamatan register
- Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
- Akses ke regster 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 Perbedaannya adalah field alamat mengacu pada alamat register. Letak operand berada pada memori yang dituju oleh isi register Kelebihanan dan kekurangan pengalamatan register tidak langsung adalah sama dengan pengalamatan tidak langsun Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banya 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

C. Pengenalan Displacement Addressing dan Stack Addresing
Displacement Addressing adalah menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung. Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit. Field eksplisit bernilai A dan field implisit mengarah pada register.
Ada tiga model displacement : Relative addressing, Base register addressing, Indexing
- Relative addressing
Register yang direferensi secara implisit adalah program counter (PC)
- Alamat efektif relative addresing didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
- Relativ addressing memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya
- Base register addresing, 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 adalah 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-program interative

Stack adalah array lokasi yang linier = pushdown list = last-in- first-out. Stack merupakan blok lokasi yang terbalik. Butir ditambakan ke puncak stack sehingga setiap saat 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.

E. SET INSTRUKSI

Set instruksi (instruction set) adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code), karna aslinya
juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh manusia.

Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan. Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-alamatnya) disebut pengalamatan

Pada beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin yang lain mungkin terdapat banyak panjang berbeda. Instruksi-instruksi mungkin lebih pendek dari, memiliki panjang yang sama seperti, atau lebih panjang dari panjang word. Membuat semua instruksi memiliki panjang yang sama lebih muda dilakukan dan membuat pengkodean lebih mudah tetapi sering memboroskan ruang, karena semua instruksi dengan demikian harus sama panjang seperti instruksi yang paling panjang.

Di dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:

Operation code (op code)
Source operand reference
Result operand reference
Xext instruction preference
Format instruksi (biner):

Misal instruksi dengan 2 alamat operand : ADD A,B A dan B adalah suatu alamat register.

Beberapa simbolik instruksi:

ADD : Add (jumlahkan)

SUB : Subtract (Kurangkan)

MPY/MUL : Multiply (Kalikan)

DIV : Divide (Bagi)

LOAD : Load data dari register/memory

STOR : Simpan data ke register/memory

MOVE : pindahkan data dari satu tempat ke tempat lain

SHR : shift kanan data

SHL : shift kiri data .dan lain-lain

Cakupan jenis instruksi:

Data processing : Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT, SHR, dsb); konversidata

Data storage (memory) : Transfer data (STOR, LOAD, MOVE, dsb)

Data movement : Input dan Output ke modul I/O

Program flow control : JUMP, HALT, dsb.

Bentuk instruksi:

- Format instruksi 3 alamat

Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y := A – B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B, kemudian simpan hasilnya di reg Y. bentuk bentuk pada format ini tidak umum digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya, dalam peongoprasianya banyak register sekaligus dan program lebih pendek.

Contoh:
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
SUB Y, A, B Y := A – B
MPY T, D, E T := D × E
ADD T, T, C T := T + C
DIV Y, Y, T Y:= Y / T
Memerlukan 4 operasi

- Format instruksi 2 alamat

Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y – B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B, kemudian simpan hasillnya di reg Y. bentuk bentuk format ini masih digunakan di computer sekarang, untuk mengoprasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.

Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y, A Y := A
SUB Y, B Y := Y – B
MOVE T, D T := D
MPY T, E T := T × E
ADD T, C T := T + C
DIV Y, T Y:= Y / T
Memerlukan 6 operasi

- Format instruksi 1 alamat

Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator, missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg Acc. bentuk bentuk format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan di perlukan satu register, tapi panjang program semakin bertambah.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D AC := D
MPY E AC := AC × E
ADD C AC := AC + C
STOR Y Y := AC
LOAD A AC := A
SUB B AC := AC – B
DIV Y AC := AC / Y
STOR Y Y := AC
Memerlukan 8 operasi

- Format instruksi 0 alamat
Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik : S[top]:=S[top-1]-S[top] dan
arti dalam bentuk penjelasan : kurangkan isi stack no2 dari atas dengan isi stack paling atas, kemudian simpan hasilnya di stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH dan POP.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A S[top] := A
PUSH B S[top] := B
SUB S[top] := A – B
PUSH C S[top] := C
PUSH D S[top] := D
PUSH E S[top] := E
MPY S[top] := D × E
ADD S[top] := C + S[top]
DIV S[top] := (A – B) /S[top]
POP Y Out := S[top]
Memerlukan 10 operasi

SLIDESHARE



Sumber :

Rabu, 05 November 2014

Arithmetic Logical Unit (ALU)

Arithmatic Logical Unit (ALU), adalah salah satu bagian/komponen dalam sistem di dalam sistem komputer yang berfungsi melakukan operasi/perhitungan aritmatika dan logika (Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU bekerja besama-sama memori, di mana hasil dari perhitungan di dalam ALU di simpan ke dalam memori.
      
Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner two’s complement. ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori.
     
Pada saat sekarang ini sebuah chip/IC dapat mempunyai beberapa ALU sekaligus yang memungkinkan untuk melakukan kalkulasi secara paralel. Salah satu chip ALU yang sederhana (terdiri dari 1 buah ALU) adalah IC 74LS382/HC382ALU (TTL). IC ini terdiri dari 20 kaki dan beroperasi dengan 4×2 pin data input (pinA dan pinB) dengan 4 pin keluaran (pinF).
     
Arithmatic Logical Unit (ALU), fungsi unit ini adalah untuk melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika. ALU terdiri dari register-register untuk menyimpan informasi.Tugas utama dari ALU adalah melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. Rangkaian pada ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Adder digunakan untuk memproses operasi aritmetika, Adder juga disebut rangkaian kombinasional aritmatika. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
  1. sama dengan (=)
  2. tidak sama dengan (<>)
  3. kurang dari (<)
  4. kurang atau sama dengan dari (<=)
  5. lebih besar dari (>)
  6. lebih besar atau sama dengan dari (>=)
     Ada 3 jenis adder:
     1. Rangkaian Adder dengan menjumlahkan dua bit disebut Half Adder.
     2. Rangkaian Adder dengan menjumlahkan tiga bit disebut Full Adder.
     3. Rangkain Adder dengan menjumlahkan banyak bit disebut Paralel Adder
1. HALF ADDER
Rangkaian Half Adder merupakan dasar penjumlahan bilangan Biner yang terdiri dari satu bit, oleh karena itu dinamai Penjumlah Tak Lengkap.
     a. jika A = 0 dan B = 0 dijumlahkan, hasilnya S ( Sum ) = 0.
     b. jika A = 0 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 1.
     c. jika A = 1 dan B = 1 dijumlahkan, hasilnya S ( Sum ) = 0
     Jika A = 1 dan B =1 dijumlahkan, hasilnya S ( Sum ) = 0. dengan nilai pindahan cy(Carry Out) = 1 dengan demikian, half adder memiliki 2 masukan ( A dan B ) dan dua keluaran ( S dan Cy ).
2. FULL ADDER
Sebuah Full Adder menjumlahkan dua bilangan yang telah dikonversikan menjadi bilangan-bilangan biner. Masing-masing bit pada posisi yang sama saling dijumlahkan. Full Adder sebagai penjumlah pada bit-bit selain yang terendah. Full Adder menjumlahkan dua bit input ditambah dengan nilai Carry-Out dari penjumlahan bit sebelumnya. Output dari Full Adder adalah hasil penjumlahan (Sum) dan bit kelebihannya (carry-out).
3. PARALEL ADDER
Rangkaian Parallel Adder adalah rangkaian penjumlah dari dua bilangan yang telah dikonversikan ke dalam bentuk biner. Anggap ada dua buah register A dan B, masing-masing register terdiri dari 4 bit biner : A3A2A1A0 dan B3B2B1B0.
Rangkaian Parallel Adder terdiri dari Sebuah Half Adder (HA) pada Least Significant Bit (LSB) dari masing-masing input dan beberapa Full Adder pada bit-bit berikutnya. Prinsip kerja dari Parallel Adder adalah sebagai berikut : penjumlahan dilakukan mulai dari LSB-nya. Jika hasil penjumlahan adalah bilangan desimal “2” atau lebih, maka bit kelebihannya disimpan pada Cout, sedangkan bit di bawahnya akan dikeluarkan pada Σ. Begitu seterusnya menuju ke Most Significant Bit (MSB)nya.
Tugas lain dari ALU adalah melakukan keputusan dari operasi sesuai dengan instruksi program yaitu operasi logika (logical operation). Operasi logika meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika.
     Arithmatic Logical Unit (ALU):
-    Bertugas membentuk fungsi – fungsi pengolahan data komputer.
-   ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya
-   ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi dan tugas tersendiri.
   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.
      Arithmatic Logical Unit (ALU) merupakan unit penalaran secara logic. ALU ini merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori. Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut.
     ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan.
    Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible. Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenisprosesor,kecuali untuk prosesor yang compatible dengannya.
      Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan instruction set yang ada pada mesin, tergantung dimana lingkungan instruction set itu digunakan.

Integer Representation

Meskipun secara matematis, dalam sistem bilangan biner bisa digunakan tanda minus 
dan radix point, di dalam komputer hanya ada bilangan 0 & 1 untuk merepresentasikan semua angka
Contoh bilangan biner matematis:
-1101.0101 = -13.3125
Bentuk seperti ini tidak membawa manfaat bagi komputer, malah menyulitkan. Oleh karena itu tidak dipakai
Representasi Integer Positif
Seandainya semua integer positif, konversi ke biner biasa, tinggal disesuaikan dengan panjang bit register yang tersedia. Misal data akan disimpan dalam reg. 8-bit:
00000000 = 0
00000001 = 1
00101001 = 41
10000000 = 128
11111111 = 255

Representasi Integer Negatif (1)
Mulai timbul masalah saat akan menyimpan bilangan negatif. Komputer tidak mengenal tanda minus
Sign-Magnitude Representation. Bit paling kiri menunjukkan magnitude 
integer (positif atau negatif) -> sign bit
+18 = 00010010
- 18 = 10010010
Kekurangan: ada 2 buah angka nol: nol 
positif (00000000) dan negatif (10000000).
Representasi Integer Negatif (2)

Two’s Complement Representation
Ini yang digunakan di komputer sekarang. Satu bit paling kiri dijadikan bernilai negatif,  kemudian dijumlahkan dengan bit sisanya. 
Nalar manusia paling gampang, gunakan Value Box
Misal 8-bit:
-128 64 32 16 8 4 2 1
Mengapa 1 bit paling kiri? Porsi sama besar: 
negatif = -128
positif = (64 + 32 + 16 + 8 + 4 + 2 + 1) = 127

MSB (Most Significant Bit)
Bit yang terletak paling sebelah kiri yang memiliki nilai terbesar
Contoh dalam bilangan Biner berikut:
1001 0101 = 149 MSB nya adalah yang berwarna Merah
LSB
Least Significant Bit
Bit yang terletak paling sebelah kanan yang memiliki nilai terkecil
Contoh dalam bilangan Biner berikut:
1001 0101 = 149 MSB nya adalah yang berwarna Merah
Komplemen

DEFINISI : Pelengkap
 
Decimal
Komplemen 9
Komplemen 10
“Komplemen sembilan dari bilangan desimal diperoleh dengan mengurangkan masing-masing digit desimal tersebut ke bilangan 9, sedangkan komplemen sepuluh adalah komplemen sembilan ditambah 1”
Lihat contoh nyatanya!
Bilangan Desimal 123 651 914
Komplemen Sembilan 876 348 085
Komplemen Sepuluh 877 349 086 Ã  ditambah dengan 1!
Perhatikan hubungan diantara bilangan dan komplemennya adalah simetris. Jadi, dengan memperhatikan contoh di atas, komplemen 9 dari 123 adalah 876 dengan simple menjadikan jumlahnya = 9 ( 1+8=9, 2+7=9 , 3+6=9 )!
Sementara komplemen 10 didapat dengan menambahkan 1 pada komplemen 9, berarti 876+1=877!
 
Biner
Analogi yang bisa diambil dari perhitungan komplemen di atas adalah, komplemen satu dari bilangan biner diperoleh dengan jalan mengurangkan masing-masing digit biner tersebut ke bilangan 1, atau dengan bahasa sederhananya mengubah masing-masing 0 menjadi 1 atau sebaliknya mengubah masing-masing 1 menjadi 0. Sedangkan komplemen dua adalah satu plus satu. Perhatikan Contoh .!
  
Bilangan Biner 110011 101010 011100
Komplemen Satu 001100 010101 100011
Komplemen Dua 001101 010110 100100
Komplemen 1 Biner
Biner 0 diubah menjadi 1
Biner 1 diubah menjadi 0

Integer Arithmatic

Bagian ini akan membahas fungsi-fungsi aritmatik bilangan dalam representasi komplemen dua.

A. Negasi
Pada notasi komplemen dua, pengurangan sebuah bilangan integer dapat dibentuk dengan mengunakan aturan berikut:
Anggaplah komplemen boolean seluruh bit bilangan integer (termasuk bittanda). Perlakukan hasilnya sebagai sebuah unsigned binary integer, tambahkan1. misalnya:18=00010010 (komplemen dua).


B. Representasi Integer Positif, Negatif, dan Bilangan 0
  • Bila sebuah bilangan integer positif dan negatif yang sama direpresentasikan (sign – magnitude),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Bila hanya terdapat sebuah representasi bilangan 0 (komplemen dua),maka harus ada representasi bilangan positif dan negatif yang tidak sama.
  • Pada kasus komplemen dua,terdapat representasi bilangan n-bit untuk -2n,tapi tidak terdapat untuk 2n.
Aritmetik Integer – Multiplication Unsigned Binary Multiplication

Aturan:
  1. Masukkan bilangan yang akan dikalikan ke M
  2. Masukkan bilangan pengali ke Q
  3. Awal: A dan C diset 0
  4. Jika kondisi terakhir Q0 = 0, hanya lakukan shift kanan 1 bit sepanjang A dan Q, tapi
  5. Jika kondisi terakhir Q0 = 1, tambahkan M ke A (jika tidak cukup, tampung sisa digitnya di C), kemudian lakukan shift kanan 1 bit sepanjang C, A dan Q Ulangi dua baris di atas sebanyak panjang bit Q
  6. Setelah loop terakhir, hasil akan tersedia di A dan Q
Aritmetik Integer – Overflow
  • Kadang penjumlahan tidak menghasilkan panjang digit yang sama, bisa lebih, kelebihan itu dihilangkan saja (dipotong).
  • Overflow terjadi jika register ybs tidak mampu menampung bilangan yang dihasilkan. Misal 4-bit rangenya -8 … 7, tidak bisa menampung bilangan 11
  • Overflow jika dan hanya jika: penjumlahan dilakukan terhadap dua bilangan bertanda sama, dan hasilnya bertanda berbeda.

Floating Point Representation

- Menyatakan suatu bilangan yang sangat besar/sangat kecil dengan menggeser titik desimal secara dinamis ke tempat yang sesuai dan menggunakan eksponen 10 untuk menjaga titik desimal itu.
- Sehingga range bilangan yang sangat besar dan sangat kecil untuk direpresentasikan hanya dengan beberapa digit saja.
- Dinyatakan dengan notasi ? a = (m,e) , dimana :
a= m x re r = radiks
m = mantissa
e = eksponen
Contoh : Tunjukkan bilangan-bilangan berikut ini dalam notasi floating point.
a. (45.382)10? 0.45382 x 102 = (0.45382,2)
b. (-21,35)8 ? -2135,0 x 8-2 = (-2135.0,-2)

ARITMATIKA FLOATING POINT

- Penambahan 0,63524 x 103
0,63215 x 103 +
1,26739 x 103 ? 0,126739 x 104
- Pengurangan 0,63524 x 103
0,63215 x 103 ?
0,00309 x 103? 0,309 x 101
- 0,10100 x 22 ? 0,01010 x 23
0,11000 x 23 ? 0,11000 x 23 +
1,00010 x 23 ? 0,10001 x 24
- Perkalian
(0,253 x 102) x (0,124 x 103) = (0,253) x (0,124) x 102+3
= 0,031 x 105 ? 0,31 x 104

Normalize
- Pembagian 0,253 x 102 = 0,253 x 102-3
0,124 x 103 0,124
= 2,040 x 10-1 ? 0,204 x 100
overflow

Beberapa bagian-bagian dari CPU adalah sebagai berikut:
 
Arithmetic and Logical Unit (ALU)
ALU melaksanakan seluruh perhitungan (penambahan, pengurangan, perkalian atau pembagian) dan operasi logika. ALU berfungsi melakukan operasi aritmatik dan logik yang terbagi menjadi empat kelas, yaitu decimal arithmetic, fixed point arithmetic, floating point aritmetic dab logic operation.
Decimal Arithmetic digunakan untuk operasi bilangan desimal dengan menggunakan tanda plus (+) atau negatif (-). Fixed Point Arithmetic adalah operasi arithmetic dari data binary untuk menyatakan address dari penyimpanan. Floating Point Arithmetic untuk operasi matematika. Logic Operation dapat berupa operasi-operasi perbandingan, testing, transalting, editing dan moving logic data.
 
Control Unit (CU)
CU merupakan bagian CPU yang berfungsi untuk:
• Membaca dan mengintepresikan instruksi-instruksi program
• Melangsungkan operasi komponen-komponen prosesor internal
• Mengendalikan aliran program dan data ke dalam dan ke luar RAM.
 
- Floating Point adalah tipe data yang dapat menyimpan angka dengan pecahan. VB membedakan menjadi dua jenis, yaitu:
• Tipe data single. Tipe data ini, dapat menampung angka negatif dengan jangkauan -3.402823E38 hingga -1.401298E-45, dan angka positif dengan jangkauan 1.401298E-45 hingga 3.402823E38. Huruf E menunjukkan 10 pangkat, misalnya pada -3.402823E38 berarti -3.402823 x 1038. Tipe data ini membutuhkan 4 byte memori, dan merupakan tipe floating point yang paling sederhana (dan paling tidak presisi).
• Tipe data double. Daya tampung tipe data double adalah -1.79769313486232E308 hingga -4.94065645841247E-324 untuk bilangan negatif, dan 4.9406564581247E-324 sampai 1.79769313486232E308 untuk bilangan positif. Kenyataan yang sebenarnya, operasi terhadap tipe data single tidak secepat tipe data double ini.


Sumber :

Kamis, 30 Oktober 2014

Sistem I/O (Input/Output)

Pengertian Sistem Input Dan Output Komputer I/O    
     Sistem Input Dan Output Komputer atau sering juga disingkat dengan I/O adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula sebaliknya). Fungsi I/O pada dasarnya adalah mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode apliksi sangat fleksibel, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash.
      Agar pembahasan kita tidak melebar keman-mana,mari kita langsung saja ketopik utama pembahasan kita tentang Sistem Input Dan Output Komputer, Silahkan disimak berikut adalah penjabarannya :

Teknik Pengoperasian Perangkat I/O

A.     Perangkat I/O terprogram (programmed I/O)
Merupakan perangkat I/O komputer yang dikontrol oleh program.Contohnya, perintah mesin in, out, move. Perangkat I/O terprogram tidak sesuai, untuk pengalihan data dengan kecepatan tinggi karena dua alasan yaitu:
  • Memerlukan overhead (ongkos) yang tinggi, karena beberapa perintah program harus dieksekusi untuk         setiap kata data yang dialihkan antara peralatan eksternal dengan memori utama.
  • Banyak peralatan periferal kecepatan tinggi memiliki mode operasi sinkron, yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung CPU.

B. Perangkat berkendalikan interupsi (Interrupt I/O)

Interupsi lebih dari sebuah mekanisme sederhana untuk mengkoordinasi pengalihan I/O. Konsep interupsi berguna di dalam sistem operasi dan pada banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan seksama, relatif peristiwa-peristiwa eksternal.
C. DMA (Direct Memory Address)
Direct Memory Access (DMA) ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
Tiga langkah dalam transfer DMA:

1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.

2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

         Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama ialah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka. Download

Kelemahan I/O terprogram dan Interrupt- Driven I/O
• Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
• Kerja CPU terganggu karena adanya interupsi secara langsung.

Prinsip kerja DMA
• CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
• Melaksanakan transfer data secara mandiri :
1. DMA memerlukan pengambilalihan kontrol bus dari CPU
2. DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus

3. Teknik cyclestealing, modul DMA mengambil alih siklus bus.

I/O Terprogram
        Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada I/O terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, termasuk status perangkat pengindera, pengiriman perintah pembacaan atau penulisan dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih cepat dibandingkan modul I/O maka hal ini akan membuang-buang waktu CPU. Dengan menggunakan interrupt driven I/O, CPU mengeluarkan perintah CPU dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I/O terprogram dan I/O interrupt maka CPU bertanggungjawab atas pengeluaran data dari memori utama untuk keperluan output dan penyimpanan data di dalam memori utama untuk keperluan input. Alternatifnya dikenal sebagai direct memory access(DMA). Dalam mode ini, modul I/O dan main memori saling bertukar data secara langsung tanpa melibatkan CPU.


Contoh Komponen I/O

  1. Perangkat Input
Perangkat input adalah perangkat yang digunakan untuk memasukkan data atau
perintah ke dalam komputer. Peralatan yang hanya berfungsi sebagai alat input dapat
digolongkan menjadi :



  •  Alat input langsung
  •  Alat input tidak langsung

1.  Alat Input langsung

Yaitu alat input yang dimasukan dan langsung diproses oleh alat pemroses, contohnya yaitu:



  • Keyboard 






merupakan peranti masukan yang terdiri dari kumpulan huruf, angka dan karakter khusus. Keyboard juga memberikan kemudahan bagi user untuk memberikan perintah yang diperlukan apabila menekan kombinasi antara karakter yang ada pada keyboard dengan tombol-tombol tertentu. 
  • Mouse








Peranti masukan dengan bentuk seperti tikus ini berfungsi untuk memindahkan pointer atau kursor secara cepat
  •   Scanner
berfungsi untuk menyalin (copy) file atau dokumen baik berupa teks atau gambar menjadi teks atau gambar digital.
  • Barcode

berfungsi untuk membaca suatu kode yang berbentuk kotak atau garis-garis vertikal tipis dan tebal yang selanjutnya diterjemahkan dalam bentuk angka-angka. Biasanya kode barcode ini ditemukan pada kemasan makanan, minuman, buku, alat elektronik serta produk-produk. Biasanya barcode ini memudahkan kasir yang ada di toko swalayan atau departemen store untuk mengidentifikasi suatu barang yang dibeli.

2.  Alat Input tidak langsung

            Yaitu alat input yang dimasukan melalui media tertentu sebelum suatu input diproses oleh alat  pemroses. Contohnya yaitu: 

a.      Key To Card
Key to card atau keypunch adalah salah satu alat masuka paling tua, alat ini memungkinkan operator memasukan data yang akan dipindah terlebih dahulu ke dalam bentuk media punched card. Bila digunakan beberapa unit alat keypunch,maka dapat dilakukan pembagian tugas merubah data dari sumber data ke dalam bentuk kartu plong.kumpulan kartu plong selanjutnya dapat dibacakan ke komputer untuk diproses melalui card reader

b.      Key To Tape
Alat ini memungkinkan operator untuk merekamkan data ke media penyimpanan luar pita magnetic sebelum diproses ke CPU. Data yang tersimpan di pita magnetic diproses ke CPU dapat dibacakan ke computer lewat alat pembaca pita magnetic

c.       Key To Disk
Seperti key to card, maka key to disk memungkinkan operator untuk merekam data lebih dulu ke media simpanan luar, misalnya disket. Data yang disimpan dalam disket dibaca di CPU lewat Flopy Disk Drive.


      2.  Perangkat Proses

“Perangkat proses yaitu perangkat komputer yang berfungsi untuk memproses atau mengelola data yang masuk sehingga menjadi suatu informasi yang diinginkan”.

a. Cpu (Central Procesing Unit)
       merupakan tempat pemrosesan instruksi – instruksi program biasa disebut microprocessor terdiri dari :
Ø  Unit kendali (control unit)
Ø  Unit aritmatika dan logika (aritmetic and logic unit) alu
Ø  Simpanan (register)

b. Main Memory
-       Register
-       Main memory
a.      Ram (random access memory) adalah memory yang dapat diakses  dan bersifat volatile
b.      Rom ( read only memory)  adalah memory yang hanya dapat dibaca dan bersifat non volatile
-       Simpanan luar (external memory)


      3. Perangkat Output

Output Device yaitu perangkat keras yang berfungsi untuk mengeluarkan data yang telah diproses sehingga menjadi suatu informasi”.
Yang termasuk perangkat output diantaranya :
Alat keluaran juga dapat berbentuk :      
1.      Hard copy device
2.      Soft copy device

a.      Hard Copy Device
Merupakan alat keluaran yang digunakan untuk mencetak tulisan, grafik, atau gambar pada media pencetak. Alat hard copy device yang umum diperguanakan adalah printer. Selain itu juga dikenal plotter, yaitu alat cetak yang mempunyai kemampuan mencetak grafik atau gambar dengan baik, biasanya menggunakan pen plotter.

-      Printerperalatan dari komputer yang dapat mencetak teks atau gambar ke media kertas atau media lainnya seperti kertas transparansi

-      Plotteradalah alat yang digunakan untuk mencetak gambar dengan ukauran besar

a.      Soft Copy Device
Merupakan alat yang digunakan untuk menampilkan tulisan, image, dan suara pada media soft (lunak) yang berupa sinyal elektronik. Contoh soft copy device adalah video display (monitor), flat panel display (Liquid Crystal Display), dan speaker.

-         Monitor,  merupakan unit keluaran yang memberikan informasi kepada pengguna computer dari hasil peoses dan masih dalam bentuk softcopy





-         Speakermerupakan peralatan yang memberkan keluaran dalam bentuk suara



 Prinsip Perangkat Keras I/O
Batasan : bagaimana hardware tersebut di program

Manajemen perangkat I/O mempunyai beragam fungsi, diantaranya :
-        mengirimkan perintah ke perangkat I/O agar menyediakan layanan
-        menangani interupsi perangkat I/O
-        menangani kesalahan pada perangkat I/O
-        menyediakan interface ke pemakai


      Jenis-jenis Perangkat I/O
Secara umum, terdapat beberapa jenis perangkat I/O, seperti :
-         perangkat penyimpanan (disk, tape)
-         perangkat transmisi (network card, modem) dan
-         perangkat antarmuka dengan pengguna (screen, keyboard, mouse).
 Perangkat tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki oleh perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang menghubungkan beberapa perangkat menggunakan kabel-kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat. Langkah yang ditentukan untuk perangkat ialah command-ready, busy, dan error. Host mengeset command-ready ketika perintah telah siap untuk dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang mengerjakan sesuatu, dan men-clear busy ketika telah siap untuk menerima perintah selanjutnya. Error diset ketika terjadi kesalahan.

Modul I/O (Input/Output)
       Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output.
Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral..
Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computerModul I/O adalah suatu komponen dalam sistem komputer yang Bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan juga,Bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU termasuk internal interface(antarmuka internal) dengan komputer (CPU dan memori utama) dan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan


Perangkat Eksternal
       Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer bila tidak adamonitor.Keyboard dan monitor tergolong dalam perangkat eksternal komputer.
Perangkat eksternal yang dihubungkan modul I/O seringkali disebut perangkat peripheral, atau untuk mudahnya disebut peripheral.
      Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dengan komputer. Perangkat eksternal dihubungkan dengan komputer oleh suatu link dengan modul I/O
Link digunakan untuk pertukaran kontrol, status, dan data antara modul I/O sering kali disebut sebagai perangkat peripheral, atau untuk mudahnya disebut peripheral.


Klasifikasi

Secara umum perangkat eksternal diklasifikasikan menjadi 3 kategori :
1. Human Readable
yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer.
Cocok untuk berkomunikasi dengan pengguna komputer.
Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
2. Machine readable
yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor
dan tranduser untuk monitoring dan kontrol suatu peralatan atausistem.
cocok untuk berkomunikasi dengan peralatan.
3. Communication
yaitu perangkat yang berhubungan dengan komunikasi jarak jauh.Misalnya: NIC dan
modem. cocok untuk berkomunikasi dengan perangkat jarak jauh.
Interface ke modul I/O adalah dalam bentuk signal-signal control, status dan data.

Saluran I/O dan Processor
Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :

• CPU akan mendelegasikan kerja I/O kepada DMA
• CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada    DMA dan akhir proses saja

Klasifikasi berdasar arah data



Saluran I/O

Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang berhubungan dengan I/O. Tetapi tanggung jawab untuk kontrol peralatan diserahkan pada prosesor I/O, yang dikenal sebagai saluran I/O (I/O channel).Saluran I/O itu sendiri merupakan prosesor yang sudah diprogram. Program-program yang di-execute ini disebut channel program. Channel program ini menentukan operasi, yang diperlukan untuk akses peralatan dan mengontrol jalur data (data pathway).

MACAM-MACAM SALURAN
1.  Selector Channel
Dapat mengatur aliran data antara memori utama dengan sebuah peralatan pada saat tersebut.Karena saluran merupakan processor-processor yang cepat maka saluran selektor biasanya hanya menggunakan peralatan I/O dengan kecepatan tinggi, sepertidisk.Penggunaan peralatan dengan kecepatan rendah, misal card reader.
2.  Multiplexor Channel
Dapat mengatur aliran data antara memori utama dengan beberapa peralatan.Saluran Multiplexor lebih efektif bila menggunakan peralatan dengan kecepatan rendah, dibandingkan dengan selector channel. Dengan saluran multiplexor, beberapa peralatan dapat diaktifkan secara serentak, tetapi saluran harus melengkapi saluran program untuk satu peralatan sebelum memulai dengan saluran program lain
3. Block Multiplexor Channel
Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel dapat mengeksekusi satu instruksi dari saluran program untuk satu peralatan, kemudian dapat mengalihkan instruksi-instruksi dari saluran program itu ke peralatan yang lain.

MACAM-MACAM DEVICE 
1.  Dedicated Device
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh : Terminal.
2.  Shared Device
Digunakan untuk pengaksesan oleh banyak pemakai secara bersamaan.
Contoh : Disk.
Aktifitas I/O untuk shared device adalah sangat kompleks dibanding aktifitas I/O pada dedicated device. Dua fungsi yang sangat penting dari shared device adalah alokasi tempat dan pemberian akses yang tepat.

AKTIVITAS SALURAN
Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main memory dengan unit pengontrol penyimpan.CPU berkomunikasi dengan saluran melalui beberapa perintah yang sederhana.

Beberapa saluran akan memberi perintah :

-  Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan sedang sibuk.
-  Start I/O, pada peralatan tertentu.
- Halt I/O, pada peralatan tertentu.
Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.
Jika interupsi terjadi, kontrol akan bercabang melalui rutin pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan penyebab dari interupsi, melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil (caller).



KESIMPULAN :

Teknologi zaman ini sudah sangat berkembang pesat sehingga memudahkan kegiatan manusia termasuk memenuhi kebutuhan sehari-hari, salah satunya adalah Komputer. Komputer(CPU) memiliki sistem yaitu Sistem I/O (Input/Output). Dalam sistem komputer, I/O bertanggung jawab atas pengontrolan sebuah perangkat luar atau eksternal dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan register-register CPU. Dalam untuk melakukan hal ini, di perlukan antarmuka internal dengan komputer(CPU Interface) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi-fungsi pengontrolannya. Selain sistem I/O ada juga modul modul I/O sistem komputer ini yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU. Dan ada juga I/O terprogram yang berperan sebagai pertukaran data antar CPU seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat tapi kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Inti semuanya dalam I/O itu mempunyai fungsi dan perintah tersendiri yang berperan sangat penting untuk sistem komputer.