PERUBAHAN DEFENISI ARSITEKTUR KOMPUTER

SILABUS LINGKUP ARSITEKTUR KOMPUTER

ARSITEKTUR KOMPUTER interface

1. Evolution of instruction sets

2. Processor architecture Teknologi

3. System Bus dan I/O System

4. Addressing dan memory system Organisasi

5. Pipelining & RISC

6. Paralel komputer

Aplikasi

Simulasi & Pengukuran

TERMINOLOGI DAN LINGKUP

TEKNOLOGI :

Arsitektur adalah segala hal yang memungkinkan bagi programmer

untuk dimanipulasi : Set Instruksi, jumlah bit untuk representasi

PERUBAHAN DEFENISI ARSITEKTUR

data, Mekanisme I/O, teknik pengalamatan.

KOMPUTER

Organisasi adalah bagaimana semua fitur yang ada ° 1950 - 1960: Arsitektur komputer :suatu diimplementasikan : Sinyal kontrol, interface, teknologi memori

komputer aritmatik. ° 1970 - pertengahan 1980: Arsitektur komputer

:suatu desain set intruksi untuk suatu kompiler tertentu.

Arsitektur Komputer =

° 1990 : Arsitektur komputer :suatu bentuk desain

Arsitektur Set instruksi + CPU, sistem memori, sistem I/O, Multiprosesor,

dan Network komputer.

Organisasi Mesin + ….. ° 2010 : Arsitektur komputer :suatu sistem yang

dapat beradaptasi sendiri, struktur yang dapat mengorganisasikan sendiri, sistem DNA /

Komputansi Quantum ?

INTERFACE :

™ Antara Lapisan yang berbeda : Ilustrasi ISA :

1. Application programming interface (API) : Set

rutin yang digunakan aplikasi untuk meminta layanan service dari level yang paling rendah (mesin) yang dikoordinasikan biasanya oleh sistem operasi.

software

Misalnya untuk menangani maintenance task seperti me-manage file dan menampilkan informasi tertentu.

2. Instruction Set Architecture (ISA) : ... Atribut dari

instruction set

sistem komputasi yang dilihat dari sudut pandang programmer, seperti struktur konseptual, perilaku fungsional yang diterapkan pada organisasi aliran data

hardware

dan kendali atas desain logika dan implementasi fisik pada mesin. - Amdahl, Blaaw, and Brooks, 1964

™ Antara modul atau sistem yang berbeda – Protokol Network, Channels/bus

Contoh ISA :

™ Representasi – Character codes (ASCII/EBCDIC/6-bit)

8 Digital Alpha

– Numerics (IEEE 754)

(v1, v3)

1992-97

8 HP PA-RISC

(v1.1, v2.0)

1986-96

1987-95 ISA terdiri dari :

8 Sun Sparc

(v8, v9)

8 SGI MIPS (MIPS I, II, III, IV, V) 1986-96

1. Organisasi penyimpanan yang dapat diprogram

(8086,80286,80386, 1978-96 (Programmable Storage) 80486,Pentium, MMX, ..)

8 Intel

2. Tipe Data & struktur Data : Encoding & Representasi

3. Set Instruksi

4. Format Instruksi

5. Mode pengalamatan (Addressing) dan mode akses data dan

akses intruksi

6. Kondisi-kondisi tertentu

Contoh Penerapan ISA : ORGANISASI :

Pada MIPS R3000 Instruction Set Architecture :

ƒ Karakteristik Kapabilitas & Performance dari

masing-masing unit fungsional. Contoh : ƒ Kategori Instruksi Registers, ALU, Shift, Logic Unit, ...)

• Load/Store ƒ Bagaimana semua komponen ter-interkoneksi • Computasional

ƒ Aliran Informasi antara komponen

• Jump dan Branch ƒ Logika pengontrol aliran informasi. • Floating Point ƒ Suatu kreografi antara Floating ponit Unit dengan - coprocessor

ISA

• Memory Management ƒ Deskripsi bahasa Register Transfer Level (RTL) • Special

ƒ 3 Format Instruksi 32 bit Gambaran Organisasi :

CONTOH ORGANISASI :

simulaSI & pengukuran kinerja:

TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20

Arsitektur adalah proses yang iteratif :

„ Mencari lingkup desain yang

mungkin pada semua level sistem

komputer

aplikaSI :

ƒ CAD, CAM, CAE, . . . ƒ Office (presentasi, spreadsheet, wordprosessor, … ) ƒ Multimedia, . . . ƒ The Web, . . . ƒ JAVA, . . . ƒ The Net => ubiquitous computing ƒ CAD, CAM, CAE, . . . ƒ Office (presentasi, spreadsheet, wordprosessor, … ) ƒ Multimedia, . . . ƒ The Web, . . . ƒ JAVA, . . . ƒ The Net => ubiquitous computing

ARSITEKTUR KOMPUTER LINGKUP ARSITEKTUR KOMPUTER

Instruction Set Design Computer Organization

Interfaces Hardware Components Compiler/System View

Logic Designer’s View “Building Architect”

“Construction Engineer”

Representasi karakter yang paling dikenal :

1. Pada PC dan minikomputer adalah American Standard

SET INSTRUKSI

Code for Information Interchange (ASCII) : satu byte – satu karakter.

2. Pada mainframe IBM menggunakan Extended Binary Dua bagian utama Arsitektur Komputer:

Coded Decimal Interchange Code (EBCDIC). - Instruction-Set Architecture (ISA) / Arsitektur Set Instruksi

- Hardware-System Architecture (HSA) / Arsitektur Sistem Representasi data numerik yang biasa digunakan untuk

Hardware bilangan bulat dan pecahan (integer dan fraction):

- Unsigned-binary numbers (bil. Positif dan Nol) - ISA meliputi spesifikasi yang menentukan bagaimana programmer bahasa mesin akan berinteraksi dengan - Binary-Coded Decimals (BCD)

komputer. ISA menentukan sifat komputasional komputer.

- Signed-magnitude Integers - Ones-Complement Integers

HSA berkaitan dengan subsistem hardware utama - - Twos-Complement Integers komputer (CPU, sistem memori dan IO). HSA mencakup - Excess-n desain logis dan organisasi arus data dari subsistem. - Fraction (bilangan pecahan)

Representasi Floating-Point terdiri dari empat bagian:

REPRESENTASI DATA

- Sign (S) - Mantissa atau koefisien (M)

- Radix atau base eksponen (R)

Unit Informasi Dasar dalam sistem komputer :

- Eksponen (E)

- satu byte atau 8 bit.

- Word size (ukuran word) – merupakan ukuran register Format Floating-Point IEEE

operasionalnya.

a) Single Precision (presisi tunggal) – 32 bit terdiri dari : 1 bit sign, 8 bit eksponen, dan 23 bit mantissa.

Contoh :

b) Double Precision (presisi ganda) – 64 bit terdiri dari: 1

1. Komputer 16-bit mempunyai register 16-bit – satu word bit sign, 11 bit eksponen, dan 52 bit mantissa. terdiri dari 2 byte

2. Komputer 32-bit mempunyai register 32-bit – satu word

terdiri dari 4 byte.

KARAKTERISTIK DAN FUNGSI SET SET REGISTER INSTRUKSI

Salah satu perbedaan pokok antara satu komputer dengan Operasi dari CPU ditentukan oleh instruksi-instruksi yang komputer lainnya adalah pada sifat set registernya.

dilaksanakan atau dijalankannya. Instruksi ini sering disebut Set register dapat dibedakan menjadi dua:

sebagai instruksi mesin (mechine instructions) atau instruksi - set register tujuan khusus (special purpose)

komputer (computer instructions).

- set register tujuan umum (general purpose)

Defenisi :

Instruction Register (IR) atau Program Counter (PC) – untuk Kumpulan dari instruksi-instruksi yang berbeda yang dapat menyimpan alamat instruksi yang sedang dijalankan.

dijalankan oleh CPU disebut set Instruksi (Instruction Set).

Memory Address Register (MAR) untuk menyimpan alamat Elemen-elemen dari instruksi mesin (set instruksi) :

memori yang akan diakses. - Operation Code (opcode) : menentukan operasi yang akan

dilaksanakan

Memory Buffer Register (MBR) untuk menampung data pada - Source Operand Reference : merupakan input bagi operasi saat operasi pemuatan maupun penyimpanan data.

yang akan dilaksanakan - Result Operand Reference : merupakan hasil dari operasi

Indexs Register (IR) untuk menyimpan indeks, misalnya untuk

yang dilaksanakan

mengakses elemen dalam array. - Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi

Flag Register atau Processor-Status Bits, misalnya untuk

yang dijalankan selesai.

menyimpan indikasi hasil operasi aritmatika dan logika, seperti:

Lokasi Set Instruksi :

- P (hasil Positif) Source dan result operands dapat berupa salah satu diantara -Z (hasil Zero/Nol)

tiga jenis berikut ini:

-N (hasil Negatif)

1. Main or Virtual Memory

-C (Carry out)

2. CPU Register

-V (Over Flow)

3. I/O Device

- Dan lainnya -

REPRESENTASI INSTRUKSI

DESAIN SET INSTRUKSI

Opcodes direpresentasikan dalam bentuk singkatan yang Desain set instruksi merupakan masalah yang sangat disebut mnemonics, yang menunjukkan operasi yang akan komplek yang melibatkan banyak aspek, diantaranya adalah: dilaksanakan.

1. Kelengkapan set instruksi

Contoh dari mnemonics adalah :

2. Ortogonalitas (sifat independensi instruksi) - ADD

Add (Addition)

3. Kompatibilitas :

- SUB Subtract

- source code compatibility

- MPY Multiply

- Object code Compatibility

- DIV Divide

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai - STOR

- LOAD

Load data from memory

Store data to memory

berikut :

- dsb.

a. Operation Repertoire: Berapa banyak dan operasi Diagram siklus Instruksi Komputer (Fig. 8-1. Stallings, W.

apa saja yang disediakan, dan berapa sulit 1990, hal. 293) :

operasinya

b. Data Types: tipe/jenis data yang dapat olah

c. Instruction Format: panjangnya, banyaknya alamat,

dsb.

d. Register: Banyaknya register yang dapat digunakan

e. Addressing: Mode pengalamatan untuk operand

JUMLAH ALAMAT (NUMBER OF ADDRESSES)

FORMAT INSTRUKSI

Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang

Suatu instruksi terdiri dari beberapa field yang sesuai dengan terkandung dalam setiap instruksinya. elemen dalam instruksi tersebut.

Jumlah alamat maksimum yang mungkin diperlukan dalam Layout dari suatu instruksi sering disebut sebagai Format sebuah instruksi : Instruksi (Instruction Format).

1. Empat Alamat ( dua operand, satu hasil, satu untuk

alamat instruksi berikutnya)

Contoh suatu Format Instruksi adalah sbb.:

2. Tiga Alamat (dua operand, satu hasil)

3. Dua Alamat (satu operand merangkap hasil, satunya

lagi operand)

4. Satu Alamat (menggunakan accumulator untuk

REFERENCE

REFERENCE

menyimpan operand dan hasilnya)

Ilustrasi Format Instruksi Sederhana

Contoh:

(Fig. 8-2. Stallings, W. 1990, hal. 294)

Instruksi untuk menghitung persamaan: Y = (A – B) / (C + D * E)

JENIS INSTRUKSI

a). Three Address Instruction

1. Data procecessing: Arithmetic dan Logic Instructions

SUB Y,A,B

2. Data storage: Memory instructions

MPY T,D,E

ADD 3. Data Movement: I/O instructions T,T,C

DIV Y,Y,T

4. Control: Test and branch instructions

b) Two Address Instruction

MOVE

Y,A

SUB

Y,B

MOVE

T,D

MPY

T,E

ADD

T,C

Y,T

DIV

C) One Address Instruction

JENIS OPERASI

LOAD D MPY E

ADD C

Transfer data dari suatu lokasi ke lokasi STOR Y

LOAD A SUB B

Jika memori dilibatkan:

DIV Y

a) Menentukan alamat memori STOR Y

b) Melaksanakan transformasi memori

virtual-to-actual

c) Menginisiasi Memori Read/Write

JENIS-JENIS OPERAND

- Addresses (akan dibahas pada addressing modes)

Dapat melibatkan perpindahan data, - Numbers

Aritmatik

sebelum atau setelah :

- Characters

a) Melaksanakan fungsi dalam ALU - Logical Data

b) Set kondisi Kode dan flag

Numbers

Logikal

Sama dengan Aritmatik

- Integer or fixed point - Floating point

Sama dengan Aritmatik dan logical, Dapat - Decimal (BCD)

Konversi

melibatkan logika khusus untuk melaksanakan konversi

Characters

Update program counter untuk suatu - EBCDIC

subroutine call/return, me-manage parameter passing dan linkage

Logical Data

Bila data berbentuk binary: 0 dan 1

I/O

- Mengirim perintah ke Modul I/O. - Jika memori dipetakan I/O (memory

mapped I/O), maka ditentukan alamat memory-mapped-nya terlebih dahulu mapped I/O), maka ditentukan alamat memory-mapped-nya terlebih dahulu

Contoh Set Instruksi

Unconditional transfer; load PC with

Transfer Jump

Of

(Branch)

specified address

Tipe Nama Deskripsi Control

Operasi

Jump

Test specified condition; depending

Data

Move (transfer) Transfer word / blok dari source ke

Conditional

on condition, either load PC with

Tranfer

specified address or else Do nothing Store

destination

Transfer word dari processor ke

Jump to Place current program control

Subroutine call, information (PC, status register, Load

external memory

Transfer word dari external memory

Branch and Link etc) in known location, e.g. top of

stack; jump to specified address Exchange

ke processor

Swap content dari source dengan

Return

Replace contents of PC, status

register, etc. With information from Clear/reset

destination

known location, e.g. from top of Set

Transfer word 0 ke destination

Transfer word 1 ke destination

stack.

Push

Transfer word dari source ke bagian

Execute

Fetch operand from specified loca-

tion and execute as instruction; Pop (pull)

atas stack

Transfer word dari bagian atas stack

note that PC is not modified.

ke destination

Skip

Increment PC to skip the next Instruction

Arithme- Add

Compute sum of two operands

Skip Conditional Test specified condition; depen-ding

tic

on outcome, either increment PC or Subtract Compute difference of two operands

else do nothing

Test specified condition; set flag(s) Devide

Multiply Compute product of two operands

Test

Compute quotient of two operands

based on outcome

Absolute

Compare Make logical or arithmatic compa- Negate

Replace operand by its abs. Value

rison of two or more operands; Increment

Change sign of operand

set flag(s) based on outcome Decrement

Add 1 to operand

Substract 1 from operand

Set Control

Large class of instructions to set

Variabels

controls for protection purposes,

Logical

AND interupt handling, timer control, OR

etc.(often privilaged instructions) NOT Operation bitwise

Perform the specified logical

Stop program execution Exclusive-OR

Halt

Stop program execution; test a Shift

Wait (hold)

Left-(right) shift operand introducing

specified condition continuously;

when the condition is satisfied, Rotate

constants at end

Left-(right) shift operand

resume execution

No

No operation is performed, but

Operation

Program execution continues

Jenis-jenis addressing modes tersebut diilustrasi-kan pada Tabel dan Gambar . dibawah ini, dengan notasi :

Input-

Input (read)

Transfer data from specified IO

Output

port or device to destination, e.g., main memory or processor

- A = contents of the (an) address field in the instruction

- EA = actual (effective) address of the location containing Output (write)

register

Transfer data from specified

the referenced operand

source to IO port or device

- (X) = Contents of location X

Start IO

Transfer instruction to IOP to Initiate IO operation

Test IO

Transfer status information from IO system to specified destination

Mode Addressing Dasar

Conver

Translate

Translate values in a section of

Principal Principal -sion

Mode Algorithm

Memory based on a table of corres -pondences

Convert the contents of a word

Immediate Operand No memory

Limited operand

from one form to another (e.g.,

reference

magnitude

packed decimal to binary)

Limited address

System

OSCALL

Causes an interrupt, which passes

space

Control

control to operating system

Indirect

EA = (A)

Large address Multiple memory

No memory

Limited address

ADDRESSING MODES

Reference

space

Large address Extra memory Jenis-jenis addressing modes (Teknik Pengalamatan) yang

Register

EA = (R)

reference paling umum:

EA=A+(R) flexibility Complexity

- Immediate

ment

- Direct - Indirect

Limited - Register

Stack EA=top of No memory

applicability - Register Indirect

stack

Reference

- Displacement

- Stack

DUKUNGAN SISTEM OPERASI TUJUAN DAN FUNGSI

Kenyamanan

Membuat komputer lebih mudah penggunaannya.

Efisiensi

Penggunaan sumber daya komputer yang lebih baik

Layanan Sistem Operasi :

Tipe Sistem Operasi

1. Pembuatan program

ƒ Interaktif

2. Pelaksanaan program

ƒ Batch

3. Mengakses ke device I/O

ƒ Single program (Uni-programming)

4. Akses kontrol file

ƒ Multi-programming (Multi-tasking)

5. Akses sistem

6. Pendeteksian kesalahan dan respon

7. Perhitungan (Accounting)

Awal Sistem Operasi

Akhir 1940 sampai pertengahan 1950 :

Sistem Operasi sebagai Manager Sumber Daya :

1. Tidak ada Sistem operasi

2. Program saling berhubungan secara langsung dengan perangkat keras

3. Dua permasalahan utama: o Penjadwalan o Waktu setup

Sistem Batch Sederhana

1. Program monitor yang residen

2. User menngirim job ke operator

3. Operator mem-batch job

4. Monitor control mengendalikan urutan even untuk memproses secara batch

5. Ketika satu job sudah selesai, kendali kembali ke monitor yang akan membaca job berikutnya

6. Monitor menangani skeduling

Bahasa Kendali Job

Multi-programmed Batch Systems

ƒ Instruksi ke monitor

ƒ Device I/O sangat lambat

ƒ Biasanya diawali dengan $ atau beberapa karakter ƒ Ketika suatu program menunggu I/O selesai bekerja, spesial lainnya

yang lainnya seharusnya dapat menggunakan CPU. ƒ Contoh : – $JOB – $FTN

ILUSTRASI

– ... Beberapa instruksi Fortran – $LOAD

Program Tunggal :

– $RUN – ... Beberapa data – $END

z Bahasa awal (Predecessor) kemudian selanjutnya menjadi scripting languages (Burroughs WFL)

Fasilitas hardware Diinginkan

Multi-Programming dengan Dua Program :

ƒ Memori terproteksi : Untuk melindungi Monitor

ƒ Pengatur waktu (TIMER) : Untuk mencegah suatu pekerjaan memonopoli sistem

ƒ Instruksi yang diistimewakan : o Yang hanya dieksekusi oleh Monitor

o Misalnya I/O

ƒ Interupsi : Memungkinkan mempertimbangkan untuk melepaskan (untuk sementara) suatu kendali dan mendapatkannya kembali

Multi-Programming dengan Tiga Program :

Penjadwalan (Scheduling)

Merupakan kunci multi-programming, terdiri dari :

ƒ Long term

ƒ Menentukan program yang mana yang disiapkan untuk memproses. Misalnya mengendalikan derajat tingkat dalam multi-programming

ƒ Setelah di submit, suatu pekerjaan menjadi suatu proses yang dilaksanakan dalam penjadwalan jangka pendek. (atau menjadi suatu job yang di- swap ke luar untuk penjadwalan jangka menengah)

ƒ Medium term

ƒ Bagian dari fungsi swap.

Sistem Time Sharing

ƒ pada umumnya didasarkan pada kebutuhan untuk

mengatur multi-programming

ƒ Jika tidak ada virtual memori, manajemen memori

adalah sekedarnya saja.

Mengijinkan para pemakai untuk saling

berhubungan secara langsung dengan komputer,

ƒ Short term

yaitu Interaktifitas. Sebagai DISPATCHER, yaitu pengambil keputusan

langsung untuk menentukan pekerjaan mana yang akan Multi-Programming mengijinkan sejumlah para dlaksanakan berikutnya. Misalnya : pekerjaan aktual pemakai untuk saling berhubungan dengan mana yang harus segera masuk ke prosesor pada komputer

waktu slot selanjutnya.

ƒ I/O

Hubungan langsung permintaan layanan dari device I/O

untuk mendapatkan perhatian Prosesor.

Status Proses

Blok Kendali Proses

ƒ Identifier ƒ Informasi Status ƒ Skala Prioritas ƒ Program counter ƒ Memory pointer ƒ Context data ƒ Status I/O ƒ Accounting information

Penjadwalan Proses Elemen Kunci Sistem Operasi

I/O Queue

Request

I/O

I/O Queue

I/O

I/O Queue

ƒ Terjadi penukaran (swap), proses yang diblok ke

antrian yang akan segera dilayani.

Manajemen Memori

ƒ Terjadi penukaran (swap), proses yang sudah siap

atau proses baru.

ƒ Uni-Program Memori di-split menjadi dua : o Satu bagian untuk Sistem operasi (monitor)

Partitioning

o Satu bagian untuk eksekusi program

ƒ Multi-Program

Defenisi :

User adalah bagian dari sub-divided dan berbagi pakai Melakukan Split memori menjadi bagian-bagian untuk antar proses aktif saja.

dialokasikan ke proses ( termasuk proses pada Sistem operasi)

Swapping Partisi Fixed-sized

ƒ Dapat saja tidak dalam ukuran yang sama. ƒ Proses dimasukkan ke dalam lubang paling kecil yang

Masalah: I/O sangat lambat dibandingkan dengan CPU, paling tepat ukurannya dengan proses tersebut) bahkan di sistem yang multi-programming, CPU seringkali

ƒ Dapat saja beberapa bagian memori jadi tersia-sia, idle.

sehingga membutuhkan partisi dengan ukuran variabel.

Solusi : ƒ Meningkatkan memori utama : o Mahal o Memungkinkan pelaksanaan program besar.

ƒ Swapping ƒ Pada Long Term Queue (Antrian jangka panjang), proses disimpan pada disk. ƒ Proses “di-swap” ketika ruangan sudah tersedia. ƒ Jika proses sudah selesai, akan dipindahkan

keluar dari memori utama. ƒ Jika tidak satupun dari proses di dalam memori yang siap ( misalnya ketika semua I/O di blok) :

Ilustrasi Partisi Fixed-sized

Partisi Variable-sized

ƒ Mengalokasikan secara tepat memori yang diperlukan

suatu proses. ƒ Menyebabkan suatu hole kosong tidak terpakai pada bagian akhir memori, yang biasanya terlalu kecil untuk digunakan.

ƒ Dari keseluruhan memori yang tersedia, hanya ada satu

hole kecil - sedikit yang tersia-siakan ƒ Ketika semua proses diblok, akan terjadi penukaran (swap) proses keluar CPU, lalu CPU mengambil proses yang lain.

ƒ Proses baru mungkin saja lebih kecil dibanding proses yang ditukar keluar tadi, sehingga membuat hole baru. ƒ Amat cepat terbentuk sekelompok hole (fragmentation) ƒ Solusi:

o Koalisi - Menggabung dengan hole yang bersebelahan ke hole yang lebih besar. o Pemampatan (Compaction) - Dari waktu ke waktu melakukan perpindahan semua hole ke dalam satu blok bebas ( seperti pada disk de- fragmentation)

Ilustrasi Partisi Variable-sized

Relokasi

ƒ Tidak ada jaminan suatu proses akan mengisi ke dalam tempat yang sama dengan proses yang lain di dalam memori.

ƒ Instruksi berisi alamat : o Lokasi data o Alamat instruksi (percabangan)

ƒ Alamat logis - relatif untuk awal suatu program. ƒ Alamat fisik - Lokasi aktual (yang sesungguhnya)

dalam memori pada saat ini. ƒ Konversi otomatis berdasarkan alamat.

Paging

ƒ Memori di-split pada ukuran yang sama, chunks kecil -

disebut frame Page. ƒ Program yang dipisah ( proses) pada ukuran yang

sama, small chunks – disebut page. ƒ Mengalokasikan page frame yang diperlukan kepada

suatu proses. ƒ Sistem operasi memelihara daftar frame yang bebas.

SISTEM BUS KEUNTUNGAN MENGGUNAKAN BUS

 Memiliki berbagai macam kegunaan (Versatilitas): o Device baru dapat ditambahkan dengan mudah. o Peripheral dapat dipindah-pindahkan antar sistem

komputer yangh menggunakan standar bus yang sama.

Bus adalah :

 Jalur komunikasi yang dibagi pakai

 Harga Rendah:

 Suatu set kabel tunggal yang digunakan untuk o Set kawat tunggal dipakai bersama dalam

menghubungkan berbagai subsistem. berbagai cara dan metode

KERUGIAN MENGGUNAKAN BUS

Processor

Input

 Menciptakan suatu komunikasi bottleneck

Control

 Bandwidth (Luas bidang) bus dapat membatasi

Memory

maksimum I/OThroughput  Maksimum kecepatan bus biasanya dibatasi oleh:

Datapath

o Panjang bus

Output

o Banyaknya device yang terhubung pada bus

 Kebutuhan dukungan tambahan untuk device-device

yang :

 Merupakan tool yang fundamental dalam menyusun o Secara luas memiliki berbagai jenis latency sistem yang besar dan kompleks secara sistematis.

o Secara luas memiliki berbagai jenis data transfer

rate

 Suatu transaksi bus meliputi dua komponen:

ORGANISASI BUS

o Mengeluarkan perintah (dan alamat) - request

(permintaan)

o Memindahkan data - action (tindakan)

Jalur Kontro l

 Master adalah bus yang memulai transaksi bus dengan

Jalur Data

cara :

o Mengeluarkan perintah (dan alamat)

 Slave adalah bus yang bereaksi terhadap alamat

dengan cara :

 Jalur Kontrol :

o Mengirimkan data kepada master jika master

o Berisi Signal request dan sinyal

meminta data.

acknowledgments

o Menerima data dari master jika master

o Mengindikasikan tipe informasi pada jalur

mengirimkan data

data.

 Jalur Data membawa informasi antara sumber dan

DIRECT MEMORY ACCESS (DMA)

tujuan:

o Data dan alamat o Perintah-perintah kompleks.

ƒ Device I/O harus memindahkan sejumlah data yang

besar dari memori ke prosesor :

o Disk harus memindahkan blok lengkap ( 4K?

16K?)

MASTER VS SLAVE

o Paket besar dari jaringan

o Daerah frame penyangga (buffer) ƒ DMA memberi kemampuan pada device eksternal

Bus untuk dapat menulis ke memori secara langsung: Bus Master

Master mengirim perintah

Data dua arah

Overhead yang lebih kecil dibandingkan dengan jika prosesor me-request 1 word setiap waktu.

Slave

o Prosesor (atau sistem memori) bertindak seperti

slave

Kasus : Cache coherence • Penyimpanan sementara bagi kode dan hasil amat diperlukan, Apa Akibatnya jika device I/O menulis data yang sedang

contoh : Main memory

berada dalam prosesor cache? Prosesor tidak dapat lihat data baru!

Komputer Komponen (Top Level View) :

Solusi: ƒ Membersihkan cache pada setiap Operasi I/O (mahal) ƒ Memiliki perangkat keras yang membuat tidak

berlakunya suatu jalur cache.

KONSEP PROGRAM

Program adalah :

• Kumpulan Langkah yang berurutan • Untuk setiap langkah, akan menyelesaikan operasi aritmatik

atau operasi logikal • Untuk setiap operasi, membutuhkan suatu sinyal kontrol tertentu.

Fungsi Kontrol Unit :

• Untuk setiap operasi membutuhkan kode unik : ADD, MOVE • Segmen hardware menerima kode tersebut dan memilihkan

kontrol sinyal yang tepat.

• Kita memiliki Komputer!

Siklus Instruksi :

Komponen :

• Control Unit dan unit Aritmatik &Logika terdapat pada Central Processing Unit • Data dan instruksi perlu masuk ke dalam sistem tersebut dan hasilnya dikeluarkan dari sistem tersebut : Proses Input/output

• Increment PC : mencari alamat lainnya

Contoh Eksekusi Program :

• Instruksi di-load ke Instruction Register (IR) • Prosesor menginterpretasi instruksi dan menyiapkan aksi

yang dibutuhkan

2. Siklus Eksekusi

• Processor-memory : transfer data antara CPU dan main

memory • Processor I/O : transfer data antara CPU dan modul I/O • Data processing : Beberapa operasi aritmatik dan logika

pada data • Kendali.: alternatif aliran operasi, misalnya jump • Kombinasi di atas.

State Diagram Siklus Intruksi :

Dua Langkah Siklus Instruksi :

1. Siklus Fetch • Program Counter (PC) mengambil alamat instruksi

selanjutnya pada fetch. • Processor mengamb il instruksi dari memori yang ditunjuk oleh PC

Interupsi :

Siklus Interupsi :

• Mekanisme antara modul yang berlainan (misalnya I/O) dapat

• Ditambahkan dalam siklus Instruksi

menginterupsi aliran proses yang normal. • Prosesor akan menmeriksa interupsi : diindikasikan dengan • Berhubungan dengan program, misalnya : overflow, division

adanya sinyal interupsi.

by zero • Jika tidak ada interupsi maka akan mem-fetch intruksi • Berhubungan dengan Timer, misalnya : dibuat oleh timer

selanjutnya.

pada prosesor internal, digunakan dalam multitasking

• Jika terdapat interupsi :

• Berhubungan dengan I/O : dari I/O controller o Hentikan dulu eksekusi program yang sedang berjalan • Berhubungan dengan kesalahan Hardware, misalnya error

o Isi program di simpan dulu

pada parity memori. o Set PC untuk menunjuk ke alama awal rutin handler

interupsi o Memproses interupsi.

Kendali Aliran Program :

o Mengembalikan isi program dan melanjutkan program

yang terinterupsi tadi.

State Diagram Siklus Interupsi :

Multiple Interupsi :

Model Nested Multiple Interupsi :

• Men-disable interupsi • Prosesor akan mengabaikan interupsi yang lain kerika sedang memproses suatu interupsi • Interupsi yang di-pending akan dijalankan setelah interupsi yang sebelumnya telah selesai diproses. • Terdapat Interupsi yang menangani urutan. • Mendefinisikan prioritas • Interupsi prioritas rendah dapat diinterupsi oleh interupsi yang lebih tinggi prioritasnya. • Ketika proses pada interupsi yang berprioritas tinggi selesai dilakukan, proses akan kembali ke interupsi sebelumnya.

Model Sequensial Multiple Interupsi :

KONEKSI

• Setiap unit harus terkoneksi • Tipe koneksi berbeda u ntuk setiap tipe uni yang t

dikoneksikan.

Konek si Memori :

• Receive dan s end data • Receive alamat (suatu l okasi) • Receive sinyal kontrol : Read, Write, Timing

Koneksi Input/Output :

• Contoh : CPU perlu membaca instruksi (data) dari lokasi yang • Hampir mirip dengan koneksi memori

diberikan dalam memori.

• Output : Receive data dari computer dan Send data ke • Lebar Bus menunjukkan kapasitas maksimum memori suatu peripheral.

sistem, contoh : 8080 memiliki 16 bit bus alamat yang • Input : Receive data dari peripheral dan Send data ke

memberikan 64k space alamat

computer • Receive sinyal kontrol dari komputer

BUS KONTROL :

• Send sinyal kontrol ke peripheral, contoh : ke disk. • Mengendalikan dan mengatur timing informasi : • Receive alamat dari komputer, contoh : nomor port untuk

1. Sinyal read/write memori.

identifikasi peripheral.

2. Interrupt request

• Send sinyal interupsi (kontrol)

3. Sinyal Clock

Koneksi CPU :

• Read instruksi dan data.

SKEMA KONEKSI BUS :

• Write out data (setelah diproses). • Send sinyal kontrol ke unit lain. • Receive (dan menjalankan) interupsi

MACAM KONEKSI BUS KELEMAHAN SINGLE BUS : BUS DATA :

• Membawa data : Dalam hal ini tidak ada perbedaan antara Banyak device dalam 1 bus akan membuat : data dan instruksi.

• Delay Propagasi :

• Besar jalur ini mempengaruhi kinerjanya, contoh : 8, 16, 32, o Data path yang panjang mengakibatkan koordinasi

64 bit. penggunaan bus mempengaruhi kinerjanya. o Jika data transfer agregat, akan memenuhi kapasitas bus

BUS ALAMAT :

dengan cepat.

• Identifikasi sumber atau tujuan data

BUS TRADISIONAL ISA (DENGAN CACHE) : TIPE BUS

Menurut Berkeley :

ƒ Processor-Memory Bus (desain spesifik)

o pendek dan berkecepatan tinggi o Hanya dibutuhkan untuk berpasangan dengan

sistem memori. o Memaksimalkan bandwidth memori-ke-prosesor. o Menghubungkan secara langsung dengan

prosesor. o Mengoptimalkan transfer blok cache.

BUS DENGAN KINERJA TINGGI :

ƒ I/O Bus ( standard industri)

o Pada umumnya adalah lebih lambat dan panjang o Diperlukan untuk berpasangan dengan berbagai

macam device I/O. o Menghubungkan antara processor-bus memori

atau dengan bus backplane.

ƒ Backplane Bus ( kepemilikan atau standard) o Backplane: suatu struktur interkoneksi di dalam

chasis o Mengijinkan prosesor, memori, dan device I/O untuk dapat eksis pada waktu bersamaan o Keuntungan harga: satu bus untuk semua

komponen

Menurut Stalling :

Diagram Timing Asynchronous :

• Dedicated : Separasi jalur data dan alamat • Multiplexed

o Men-Share jalur o Kontrol jalur alamat valid atau data valid. o Kelebihan : jalur lebih banyak. o Kekurangan : Perlu kontrol lebih kompleks.

TIMING BUS

• Untuk Koordinasi setiap even dalam bus. • Synchronous :

o Even ditunjukkan oleh sinyal clock. o Bus Kontrol termasuk dalam clock line

o Semua device dapat membaca clock line

o Biasanya 1 siklus untuk setiap even.

Diagram Timing Synchronous :

Contoh : Organisasi Bus Sistem Pentium

Bus Prosesor/Memori

Bus PCI

Berbagai macam bus I/O

CPU (CENTRAL PROCESSING UNIT) z Dengan membuat register berfungsi secara khusus,

akan membuat

– Instruksi lebih kecil sehingga cepat.

Fungsi Utama CPU :

– Kurang fleksibel

– Fetch Instruksi

– Interpret Instruksi

Seberapa besar Register itu ?

– Fetch data

z Cukup besar untuk menangani alamat.

– Process data

z Cukup besar untuk menangani word

– Write data z Harus memungkinkan untuk mengkombinasikan antara

dua register data seperti :Single, double, extended

Register :

z CPU harus memiliki space untuk pengolahan yang

2. Register Data

dilakukannya (penyimpanan sementara) yang disebut

3. Register Alamat

register

z Jumlah dan fungsi penyimpanannya sangat bervariasi

4. Register Kode Status Kondisi

tergantung pada desain prosesornya

z Merupakan Top level dari hirarki memori. z Set dari bit individual : hasil dari operasi terakhir

sebelumnya adalah nol.

Beberapa Fungsi Register :

z dapat dibaca oleh program, contoh : Jump if zero z Biasanya tidak dapat di set oleh program.

1. General Purpose

Register Kontrol dan Status

z Untuk berbagai keperluan dasar

z Dapat digunakan untuk data atau pengalamatan pula,

z Program Counter

contoh :

z Instruction Decoding Register

• untuk data : Accumulator

z Memory Address Register

• Untuk alamat : Segment

z Memory Buffer Register

z Dengan membuat register berfungsi sebagai general

Beberapa Contoh Word Status Program :

purpose akan :

z set dari bit

– Meningkatkan fleksibilitas dan pilihan bagi

z Kode kondisi

programmer

z Tanda dari hasil sebelumnya

– Meningkatkan ukuran instruksi dan kompleksitas

z Zero z Zero

Siklus Instruksi Indirect

z Equal z Overflow z Interrupt enable/disable z Supervisor

Mode Supervisor :

z Bagian yang merupakan dasar dari informasi yang diberikan oleh vendor. z Mode Kernel z Memberikan izin/hak (privileged) untuk mengeksekusi

suatu instruksi z Digunakan oleh sistem operasi z Tidak tersedia bagi program user dimodifikasi.

Contoh Organisasi Suatu Register :

z Membutuhkan kses memori untuk melakukan fetch

operand z Pengalamatan Indirect membutuhkan lebih banyak

akses memori z Dapat digunakan sebagao tambahan instruksi dalam

subsiklus.

Diagram Siklus Instruksi Aliran Data dalam Proses Fetch Instruksi

z Tergantung desain CPU z Fetch

– PC mengandung alamat instruksi selanjutnya – Alamat akan dipindahkan ke MAR – Alamat diletakkan pada bus alamat – Control unit meminta pembacaan memori – Hasil akan diletakkan pada bus dara, dicopy ke

MBR kemudian ke IR – Biasanya PC kemudian bertambah 1

Aliran Data dalam Proses Fetch Data

z Register IR akan diuji z Jika pengalamatan indirect, akan mengalami siklus

indirect :

– N bit pada MBR ditransfer ke MAR – Control unit meminta pembacaan memori – Hasil (alamat operand) dipindahkan ke MBR

Diagram Aliran data Pada Proses Fetch

Diagram Aliran data Pada Proses Indirect

Aliran Data dalam Siklus Eksekusi

• Akan mengambil banyak form • Tergantung pada intruksi yang sedang dieksekusi • Biasanya didalamnya terdapat :

o Memory read/write o Input/Output o Register transfers o ALU operations

Aliran Data dalam Interupsi

Pre-Fetch

• Sederhana • Siklus Fetch mengakses memori utama • Dapat diprediksi

• Siklus eksekusi biasanya tidak lagi mengakses • Isi register PC akan disimpan sementara untuk

memori utama

kemudian dilanjutkan setelah interupsi selesai • Pada saat itulah dapat dilakukan proses fetch dilayani.

instruksi selanjutnya pada saat siklus eksekusi • Isi register PC di-copy ke MBR

sedang berlangsung mengerjakan suatu intruksi. • Lokasi memori spesial (misal : stack pointer) akan

Inilah yang disebut instruksi prefetch. di-load ke MAR

• Fetch biasanya lebih singkat waktunya • MBR akan melakukan penulisan ke memori

dibandingkan eksekusi, maka memungkinkan • Register PC di-load dengan alamat rutin yang

terjadinya Prefetch, namun Setiap menemui menangani interupsi

proses lompatan atau percabangan berarti proses • Instruksi selankjutnya (bagian awal dari rutin

instruksi pre-fetch yang melompat secara otomatis interrupt handler) dapat mulai di-fetch.

dalam urutan program utama seringkali tidak dibutuhkan lagi. Karena saat itu pointer prosesor

Diagram Aliran data dalam Interupsi

sudah mengarah ke alamat percabangan yang lain lagi

Proses Pipelining

1. mem-fetch instruksi

2. men-decode instruksi

3. Mengkalkulasi operand

4. mem-Fetch operand

5. meng-eksekusi instruksi

6. Menulis hasil

7. Melakuan overlap terhadap operasi ini dengan operasi lainnya.

Timing Pada Proses Pipelining

Percabangan Pada Pipelining

Penanganan Percabangan

1. Multiple Streams

2. Prefetch Target percabangan

3. Loop buffer

4. Memprediksi percabangan

5. Delay percabangan

1. Multiple Stream

Mengasumsikan bahwa suatu lompatan tidak akan terjadi ™ Selalu mem- fetch instruksi selanjutnya ™ Memiliki dua pipeline

™ Misalnya : mesin VAX tidak akan melakukan prefetch ™ Prefetch setiap percabangan akan masuk ke pipeline

setelah percabangan jika terjadi kesalahan page pada tersebut

hasilnya

™ Kemudian disalurkan ke busmelalui register ™ Percabangan yang banyak akan diarahkan ke pipeline

Prediksi yang akan terlaksana (Predict always taken) secara bergantian

™ Mengasumsikan bahwa suatu lompatan akan terjadi ™ Selalu mem-fetch instruksi untuk target

2. Pre-fetch Target Percabangan

Prediksi berdasarkan Opcode

™ Sejumlah instruksi menjadikan suatu lompatan menjadi ™ Tujuan percabangan di prefetch dengan instruksi

lebih mungkin dilaksanakan

tambahan yang diberikan pada saat ditemukan

™ Dapat mencapai kesuksesan 75%

percabangan. ™ Infromasi target akan dipertahankan sampai terjadi

Switch Taken/Not taken

eksekusi di percabangan.

™ Berdasarkan pada histry sebelumnya

™ Contoh penggunaannya pada mesin IBM 360/91

™ Sangat baik untuk looping

State Diagram Branch Prediction

3. Loop buffer

™ Memanfaatkan memori yang sangat cepat sebagai buffer ™ Ditangani oleh proses fetch pada pipeline ™ Akan selalui melihat dulu isi buffer sebelum melakukan

fetch ke memori ™ Sangat baik untuk looping yang kecil atau lompatan ™ Contoh penggunaannya pada mesin CRAY-1

4. Memprediksi percabangan

Prediksi yang tidak akan terlaksana (Predict never taken)

Proses Fetch - 4 Register

5. Delay Percabangan

• Memory Address Register (MAR)

Tidak akan melompat sampai selesai menyusun kembali

o Terkoneksi dengas bus alamat

intruski dengan sempurna. o Menetapkan alamat untuk operasi read atau write • Memory Buffer Register (MBR) o Terkoneksi dengas bus data

CU (CONTROL UNIT) o Mempertahankan data untuk ditulis atau dibaca

sampai selesai.

• Program Counter (PC)

Operasi Mikro

o • Komputer mengeksekusi program Mempertahankan alamat instruksi selanjutnya • Mengalami Siklus Fetch/execute yang akan di fetch kemudian

• Instruction Register (IR)

• Setiap siklus memiliki beberapa langkah, inilah o Mempertahankan instruksi terakhir yang telah di yang disebut operasi mikro

fetch

• Operasi Atomik CPU

Urutan Proses Fetch

Elemen dalam Eksekusi Program

1. Alamat instruksi selajutnya pada PC

2. Alamat pada MAR diletakkan pada bus alamat

3. Control unit memberi perintah READ

4. Hasil (data dari memori) berada dalam bus data

5. Data dari bus data di-copy ke MBR

6. PC akan bertambah 1 (paralel dngan proses fetch data

dari memori

7. Data (instruksi) dipindahkan dari MBR ke IR

8. MBR sekarang siap untuk data pada proses fetch

selanjutnya

Urutan Proses Fetch (dalam bentuk simbol)

Siklus In-direct

t1: MAR <- (PC) t2: MBR <- (memory)

1. MAR <- (IRaddress) - field alamat IR

PC <- (PC) +1

2. MBR <- (memory)

t3: IR <- (MBR)

3. IRaddress <- (MBRaddress)

(tx = Unit waktu /clock cycle)

4. MBR mengandung alamat

5. IR sekarang dalam state yang sama seperti atau

pengalamatan langsung yang digunakaan

t1: MAR <- (PC)

t2: MBR <- (memory)

Siklus Interupsi

t3: PC <- (PC) +1

IR <- (MBR)

t1: MBR <-(PC) t2: MAR <- alamat-yang disimpan

PC <- alamat-rutin

Aturan Pengelompokan Untuk Siklus Clock

t3: memory <- (MBR)

Setiap urutan harus diikuti

™ Di atas adalah perintah minimum :

MAR <- (PC) harus mendahului MBR <- (memory) ™ Perlu tambahan operasi mikro lagi dalam mengambil

alamat yang disimpan.

Konflik haris dihindarkan ™ Isi yang disimpan dilakukan oleh rutin interrupt handler, ™ Tidak boleh membaca dan menulis register yang sama

bukan operasi mikro.

dalam waktu yang sama

™ MBR <- (memory) da IR <- (MBR) tidak boleh dalam

siklus yang sama

Siklus Eksekusi (ADD)

™ Akan berbeda untuk setiap instruksi

Begitu juga : ™ Misalnya ADD R1,X Å akan menambahkan sejumlah ™ PC <- (PC) +1 melibatkan suatu penambahan

bilangan pada alamat X ke Register 1 , hasilnya di R1 ™ Menggunakan ALU

t1: MAR <- (IRaddress)

™ Membutuhkan tambahan operasi mikro yang lain

t2: MBR <- (memory)

t3: R1 <- R1 + (MBR)

™ Ini contoh untuk operasi mikro yang tidak overlap.

3. Menentukan fungsi control unit yang harus dilakukan

Siklus Eksekusi ( ISZ )

prosesor

ISZ X - increment dan skip bila zero

1. Elemen dasar Prosesor

t1: MAR <- (IRaddress) t2: MBR <- (memory)

™ ALU

t3: MBR <- (MBR) + 1

™ Registers

t4: memory <- (MBR)

™ Internal data path

if (MBR) == 0 then PC <- (PC) + 1

™ External data path

Catatan :

™ Control Unit

Ini terjadi dalam operasi mikro tunggal

Operasi mikro selesai pada t4

2. Tipe Operasi Mikro

Siklus Eksekusi ( BSA )

™ Transfer data antar register ™ Transfer data dari register ke eksternal

BSA X - Branch dan save address

™ Transfer data dari eksternal ke register

Alamat instruksi akan mengikuti BSA , untuk disimpan di X

™ Operasi Aritmatik atau logical

Eksekusi akan berlanjut dari X+1

t1: MAR <- (IRaddress)

3. fungsi control unit

MBR <- (PC)

t2: PC <- (IRaddress) a. Sequencing (mengurutkan operasi) Membuat sejumlah operasi CPU akan melalui urutan operasi

memory <- (MBR)

mikro tertentu

t3: PC <- (PC) + 1

b. Mengeksekusi

Membuat kinerja setiap operasi mikro selesai dengan

Kebutuhan Fungsional

menggunakan sinyal kontrol tertentu

1. Definisikan elemen dasar prosesor

2. Deskripsikan operasi mikro yang harus dilakukan prosesor 2. Deskripsikan operasi mikro yang harus dilakukan prosesor

Clock

MAR <- (PC)

™ Satu instruksi operasi mikro (atau satu set operasi mikro Control unit mengaktifkan sinya untuk membuka gerbang yang paralel) per siklus clock

antara PC dan MAR

Instruction register

MBR <- (memory)

™ Op-code untuk setiap instruksi ™ Membuka gerbang anatara MAR dan bus alamat ™ Menentukan intruksi mikro mana yang akan dilakukan

™ Sinyal kontrol pembacaan memori ™ Membuka gerbang antara data bus dan MBR

Flags ™ Menunjukkan status CPU

Sinyal-sinyal pada Control Unit

™ Menunjukkan hasil dari operasi sebelumnya

Yang ada pada bus kendali ™ Interupsi ™ Sinyal Acknowledgement

Yang ada pada Output Dalam CPU

™ Untuk pergerakan data ™ Untuk mengaktifkan fungsi tertentu

Yang melalui bus kendali ™ ke memori ™ ke modul I/O

SISTEM INPUT DAN OUTPUT Fungsi Modul I/O

1. Control & Timing

2. Komunikasi CPU

Permasalahan dalam I/O

3. Device untuk komunikasi

4. Data Buffering

™ Amat banyak variasi jenis peripheral :

5. Deteksi Error

o Menangani data dengan cara yang berbeda

o Dengan kecepatan yang berbeda

Langkah-langkah penanganan I/O

o Dengan format yang berbeda

o Kesemuanya lebih lambat dari CPU dan RAM

1. CPU mengecek status modul I/O device ™ Memerlukan modul I/O

2. I/O module mengirimkan statusnya

3. Jika ready, CPU meminta transfer data

4. I/O modul mengambil data dari device

Modul I/O

5. I/O modul transfer data ke CPU dalam variasi output

yang diinginkan.

Interface dengan CPU dan Memori

Interface ke satu atau lebih peripheral

Diagram Modul I/O

Device Eksternal

Pembacaan disisi manusia : Screen, printer, keyboard

Pembacaan disisi mesin : Monitoring and control

Komunikasi : Modem Network Interface Card (NIC)

Metode Pengaksesan Sistem I/O :

Metode Operasi Sistem I/O :

1. I/O Terprogram

1. Memori Mapped I/O

Æ CPU mengendalikan operasi I/O secara keseluruhan Piranti I/O dihubungkan sebagai lokasi memori virtual

dengan menjalankan serangkaian instruksi I/O dengan sehingga port I/O tergantung memori utama.

suatu program tertentu.

Karakteristik : • Port I/O Æ menempati bagian tertentu pada bus Alamat, diakses seolah-olah lokasi memori. • Piranti input Æ menjadi bagian dari memori yang memberi data ke bus data. • Piranti output Æ menjadi bagian dari memori yang memiliki data di dalamnya.

2. I/O Mapped I/O

Piranti I/O dihubgungkan sebagai lokasi terpisah dari lokasi memori, sehingga port I/O tidak tergantung pada keadaan memori utama.

Karakteristik : • Port I/O Æ tidak tergantung memori utama • Transfer informasi Æ dibawah kendali sinyal kontrol

dengan instruksi input dan output. • Operasi I/O Æ tergantung sinyal kendali dari CPU. • Jenis instruksi :

Gambar : Flowchart I/O Program

o Instruksi I/O Æ mengaktifkan baris kendali read/write pada port I/O.

Æ Karakteristik :

o Instruksi memory Æ mengaktifkan baris kendali • Terdapat program untuk : memulai - mengarahkan

read/write pada memori.

- menghentikan operasi I/O.

• Ruang memori dan ruang alamat I/O bisa saja • Membutuhkan perangkat keras register : memiliki alamat yang sama.

ƒ Register status Æ status piranti I/O dan data • Lebih cepat dan efisien karena penggunaan alamat

yang akan dikirim ƒ Register buffer Æ untuk menyimpan data

yang terpisah, namun memiliki keterbatasan jumlah sementara sampai CPU / piranti I/O siap.

instruksi yang dapat digunakan untuk operasi I/O.

ƒ Register pointer buffer Æ menunjuk ke lokasi memori dimana sebuah karakter harus ditulis

atau dibaca. ƒ Register counter data Æ tempat penyimpanan jumlah karakter dan akan berkurang nilainya jika karakter berhasil ditransfer.

• Perlu waktu proses yang menyita waktu pemanfaatan CPU.

2. I/O Interupsi (Demand Driven)

Æ CPU akan bereaksi ketika suatu piranti mengeluarkan permintaan untuk pelayanan. Æ Karakteristik :

• lebih efisien dalam pemanfaatan CPU Æ tidak harus terus menerus menguji status dari piranti. • Menunggu interupsi dari piranti I/O.

Jenis interupsi :

Sifat interupsi :

Gambar : Flowchart I/O Interupsi

1. Interupsi hardware :

timer, memori,

1. Maskable : interupsi

yang dapat di-disable

• Karena banyaknya piranti yang meminta interupsi,

powersupply dan lain-

untuk sementara dengan

lain

menuntut CPU untuk dapat menentukan prioritas

instruksi Disable

2. Interupsi Software :

interupsi khusus. layanan. Ada 2 cara metode pemilihan prioritas

opcode/data, divide by layanan : interupsi yang tidak zero

overflow, ilegal

2. Non maskable

1. pooling / Pooled interrupt : piranti-piranti

dapat di-disable dengan

instruksi perangkat

dihubungkan dengan suatu gerbang OR ke

lunak. kendali Interupsi (INTR=INTERRUPT REQUEST). CPU akan menguji bit status piranti, jika

permintaan interupsi ditemukan, rutin pooling akan bercabang ke lokasi memori tempat rutin pelayan interupsi berada.

2. vector interrupt : piranti yang berinterupsi diidentifikasi secara langsung dan dihubungkan dengan rutin pelayanan interupsinya. Caranya : 2. vector interrupt : piranti yang berinterupsi diidentifikasi secara langsung dan dihubungkan dengan rutin pelayanan interupsinya. Caranya :

intruksi INTR yang memang secara organisasi di set secara berlainan.

b. CPU men-set baris INTA (INTerrupt Acknowledgement) untuk mengarahkan masing-masing pinterupsi tersebut ke baris instruksi layanannya.

c. Piranti menerapkan interrupt vektor pada

bus.

d. CPU bercabang ke alamat memori yang

ditunjuk interrupt vektro tersebut.

3. Direct Memory Access (DMA)

Æ Metode transfer data secara langsung antara memori

Gambar : Pengendali DMA

dan piranti tanpa pengawasan dan pengendalian CPU.

Æ Hanya dapat dilakukan pada piranti I/O berkecepatan

tinggi dan mampu mentransfer data besar dalam waktu

Transfer Data pada Sistem I/O :

singkat seperti disk.

Æ Metode :

1. Format Transfer

1. CPU hanya menginisialisasi saluran DMA.

a. Paralel : semua bit pada karakter (word dengan

2. DMA controller kemudian mengendalikan sepenuhnya panjang tertentu) dikirim secara bersamaan dalam batas transfer data, dengan 2 cara :

waktu transmisi tertentu.

• skema transfer blok DMA dual port : CPU dan

b. Serial : data dikirim secara berurutan dalam satu DMA controller mengakses memori utama memlalui

bariskomunikasi tungga, sehingga antara pengirim dan MAR dan MBR, pada memori utama jenis dual port

penerima harus membagi batas waktu pengiriman (port 1 Æ CPU, port 2 Æ DMA controller)

karakter menjadi beberapa sub interval • skema transfer DMA Cycle Stealing : Memakai

pengiriman/penerimaan.

memori utama jenis port tunggal, sehingga CPU dan

piranti I/O akan beradu cepat mendapatkan tempat Transfer paralel lebih cepat karena memiliki saluran

layananan pada basis asynchronous independen transmisi yang banyak, namun tidak bisa diterapkan pada

jarak yang terlalu panjang, karena dapat terjadi interferensi antar saluran.

2. Mode Transfer

a. Synchronous : Baris kendali dipakai untuk emsinkronkan waktu pada semua kejadian yang terjadi selama periode tertentu. Setiap piranti harus bereaksi dengan kecepatan yang sama pada periode yang diberikan CPU. Namun karena kecepatan piranti I/O yang bervariasi sedang data dikirim secara serial dan bergantian dalam periode yang sudah ditetapkan, maka kecepatan transfer di set pada piranti I/O dengan kecepatan terendah.

Gambar : Transfer Asynchronous

Interfacing Piranti I/O

Æ Defenisi : Suatu alat yang digunakan untuk menghubungkan suatu piranti dengan CPU melalui BUS. Æ Fungsi Umum : Mensinkronkan data transfer antara CPU dan piranti I/O

Gambar : Transfer Synchronous

Æ Fungsi Detail :

• Penyedia status piranti I/O bagi CPU

b. Asynchronous : Proses back-and-forth (pulang-pergi)

• Memiliki kemampuan interupsi / DMA

dalam meneruskan sinyal kendali dari pengirim ke • Mampu me-transfer instruksi CPU ke piranti penerima. Tekniknya bernama handshaking dengan

• Mampu berfungsi sebagai buufer storage data transfer. melakukan terlebih dahulu pengecekan validitas data

• Mampu melakukan pengujian kesamaan data. yang akan transfer. Kelemahan : perlu banyak kendali.

• Mampu men-decode dan mgng-encode data Kelebihan : memungkinkan penggunaan piranti I/O yang

• Memiliki fasilitas khusus :

memiliki berbagai variasi kecepatan dalam sistem yang • Konversi data paralel-ke-serial dan sebaliknya. sama.

• Encoding karakter ketik ke VDU. • Encoding karakter ketik tertentu : F1, F2,

BACKSPC, DELETE dan sebagainya.

• Menyediakan sinyal status operasi.

Æ Komponen Utama Interface Piranti I/O :

1. Device dependent Æ bagian yang melayani piranti

I/O Channel

2. Device independent Æ bagian yang menghubungkan unit interface ke bus sistem.

Defenisi : Pengendali yang melakukan operasi I/O dalam mode DMA pada sistem bus yang mengatur

Æ Struktur Interface Piranti I/O : komunikasi dengan memori utama pada piranti-

1. Register piranti I/O melalui bus I/O Æ dapat melakukan • kendali (CR) Æ mencatat instruksi dan informasi

deteksi dan perbaikan kesalahan serta beroperasi dalam piranti.

pada basis cycle stealing.

• Status (SR) Æ mencatat status piranti dan mengeluarkan pesan kesalahan

Macam layanan :

• Data input (IDR) dan data output (ODR) Æ sebagai • Saluran multiplexer Æ menghubungkan piranti buffer data untuk operasi input dan output.

berkecepatan rendah / sedang, lalu

2. Bus mengoperasikannya secara bersamaan • Receiver Æ menangani data input

dengan multiplexing.

• Transciever Æ sirkuit bi-directional data menangani • Saluran selektor Æ menghubungkan piranti input maupun output