Secara umum komputer dapat bekerja dengan bagan blok sistem komputer dan cara kerja komputer sebagai berikut :
|
gambar1. blok diagram sistem kerja komputer |
Keterangan :
- CPU mengendalikan urutan dari semua pertukaran informasi dalam komputer dan dengan dunia luar melalui unit I/O. Sedangkan unit memori terdiri dari sejumlah besar lokasi yang menyimpan program dan data yang sedang aktif digunakan CPU. Ketiga unit tersebut dihubungkan dengan berbagai macam bus.
- Bus adalah sekelompok kawat atau sebuah jalur fisik yang berfungsi menghubungkan register-register dengan unitunit fungsional yang berhubungan dengan tiap-tiap modul. Informasi saling dipertukarkan di antara modul dengan melalui bus.
Sebuah komputer moderen/digital dengan program yang tersimpan di dalamnya merupakan sebuah system yang memanipulasi dan memproses informasi menurut kumpulan instruksi yang diberikan. Sistem tersebut dirancang dari modul-modul hardware seperti :
|
gambar2. komponen sistem |
Register
Alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi yang digunakan untuk
menyimpan data dan instruksi yang sedang diproses sementara data dan instruksi lainnya
menunggu giliran untuk diproses masih disimpan di dalam memori utama.
Secara analogi, register diibaratkan sebagai ingatan di otak bila melakukan pengolahan data
secara manual, otak diibaratkan CPU yang berisi ingatan-ingatan, satuan kendali yang mengatur
seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan & perbandingan
logika.
Register CPU yang dapat digunakan oleh pemrogram, dengan menggunakan set intsruksi memungkinkan satu buah register atau lebih untuk dispesifikasian sebagai operand atau alamat operand.
- AX (Accumulator Register)
Fungsi: Sebagai akumulator dan berhubungan dengan jenis-jenis operasi khusus seperti Aritmetika, In/Out, Shift,Logic, Rotate, dan operasi desimal berkode biner.
- BX (Base Register)
Fungsi: Sebagai register base untuk mereferensi alamat memori. Operasi yang dapat dilakukan adalah Rotate, Logic, Shift, dan Aritmetika.
- CX (Counter Register)
Fungsi: Sebagai pencacah implisit dengan instruksi tertentu, misalnya terhadap perintah Loop dan operasi string. Counter naik jika direction flag bernilai 0, dan counter turun jika direction flag bernilai 1.
- DX (Data Register DX)
Fungsi: Menyimpan alamat port I/O selama operasi I/O tertentu, baik alamat port 8 bit maupun 16 bit. Digunakan juga dalam operasi perkalian dan pembagian.
- Pointer dan Index Register
- Register SP (Stack Pointer, 16 bit)Fungsi: Digunakan untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. - SP merupakan register yang secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
- Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam stack yang disediakan untuk penyimpanan data. BP juga digunakan si dengan bahasa pemrograman misalnya Assembler dan C.
- Register SI dan DI (Source Index dan Destination index, 16 bit)
Fungsi: Menyimpan nilai-nilai offset dalam segment data memori pada saat bersangkutan.
- Register IP (Instruction Pointer, 16 bit)
Fungsi: Register yang berpasangan dengan CS sebagai register utama untuk menunjukkan baris perintah program. Pada saat program dijalankan, IP akan langsung menunjuk pada awal program. Code Segment dan Instruction Pointer berfungsi sebagai program counter ditulis dengan format CS:IP. Secara umum, kode mesin diletakkan di Code Segment, semua data diletakkan di Data Segment, dan operasi PUSH dan POP dilakukan di Stack Segment.
- Register Segment (16 bit)
- Register CS (Code Segment)
Fungsi: Mencatat segment dari kode program atau instruksi, register CS berpasangan dengan register IP (Instruction Pointer) dalam format CS:IP.
- Register DS (Data Segment)
Fungsi: Menyimpan alamat dari segment dimana data terletak.
- Register SS (Stack Segment)
Fungsi: Menyimpan alamat segment memori yang dipergunakan sebagai stack.
- Register ES (Extra Segment)
Fungsi: Menyimpan alamat segment tambahan, misalnya alamat display, alamat sistem operasi, dan sebagainya.
Mikroprosesor 8086/8088 mempunyai Status Flag 1 bit dan 4 Kontrol Flag yang dikonfigurasikan dalam register 16 bit. Status Flag terdiri dari:
- CF (Carry Flag)
Tugas: Dimana sebuah carry out atau borrow, jika hasilnya adalah bit tertinggi (nilai 1).
- PF (Parity Flag)
Tugas: Menset (nilai 1), jika instruksi menghasilkan sebuah angka genap (even parity).
- AF (Auxiliary Flag)
Tugas: Digunakan oleh instruksi pegaturan desimal.
- ZF(Zero Flag)
Tugas: Menset (nilai 1), jika hasil instruksi adalah 0.
- SF (Sign Flag)
Tugas: Menset (nilai 1), jika hasilnya adalah negatif dan bernilai 0 jika positif. Kontrol Flag terdiri dari:
- OF (Overflow Flag)
Tugas: Menunjukkan sebuah operasi yang tidak benar yaitu merubah hasil daripada tanda bit..
- IF (Interrupt Enable Flag)
Tugas: Jika diset (nilai 1) dapat melakukan operasi interupsi dan sebaliknya bila bernilai 0, maka interupsi
tidak dapat dilakukan.
- DF (Direction Flag)
Tugas: Mengontrol arah dari operasi string. Jika DF=1, maka register SI dan DI nilainya menurun (decrement); jika DF=0, maka register DI dan SI nilai menaik (increment). Register ini digunakan untuk instruksi-instruksi MOVS, MOVSB, MOVSW, CMPS, CMPSB, dan CMPSW.
TF (Trap Flag)
Tugas: Ditempatkan dalam single step mode untuk keperluan debug.
Control dan status register digunakan oleh unit control untuk mengontrol operasi cpu dan oleh program system operasi untuk mengontrol eksekusi program diantaranya sebagai berikut:
Register untuk alamat dan buffer :
- MAR (Memory Address Register)
Untuk mencatat alamat memori yang akan diakses (baik yang akan ditulisi maupun dibaca)
-MBR (Memory Buffer Register)
Untuk menampung data yang akan ditulis ke memori yang alamatnya ditunjuk MAR atau untuk
menampung data dari memori (yang alamatnya ditunjuk oleh MAR) yang akan dibaca.
- I/O AR (I/O Address Register)
Untuk mencatat alamat port I/O yang akan diakses(baik akan ditulisi / dibaca).
- I/O BR (I/O Buffer Register)
Untuk menampung data yang akan dituliskan ke port yang alamatnya ditunjuk I/O AR atau
untuk menampung data dari port (yang alamatnya ditunjuk oleh I/O AR) yang akan dibaca.
ALU
Tugas utama adalah melakukan semua perhitungan aritmatika dan melakukan keputusan dari
suatu operasi logika.
Memori
Memori adalah bagian dari komputer tempat berbagai program dan data-data disimpan.
Memori utama adalah tempat penyimpanan sementara dimana dibutuhkan oleh prosesor yang
akan mengoperasikan program atau data tertentu.
Memori dalam komputer dapat dibedakan sebagai berikut :
- Register
- Cache memory (Static RAM) : internal cache dan external cache
- Memori utama (Dynamic RAM)
- Memori sekunder : magnetic disk, optical disk, magnetic tape
Memori yang memiliki hirarki paling atas memiliki kecepatan paling tinggi tetapi kapasitas
penyimpanan data paling rendah.
|
gambar3. memori |
Control Unit
Bertugas mengatur dan mengendalikan semua peralatan yang ada di sistem komputer, yaitu :
- mengatur dan mengendalikan alat-alat input dan output
- mengambil instruksi-instruksi dari memori utama
- mengambil data dari memori utama untuk diproses
- mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta
mengawasi kerja dari ALU
- mengirim hasil proses ke memori utama untuk disimpan dan pada saatnya disajikan ke alat
output.
I/O Interconection
Input-Output (/O) Interconection merupakan sistem koneksi yang menghubungkan antar
komponen internel dalam sebuah CPU, yaitu ALU, unit kontrol, dan register serta menghubugkan
CPU dengan bus-bus eksternal diluar CPU.
Dimana pada instruksi ini m menunjukkan address memori dari operand dan (m) menunjukkan nilai yang disimpan pada address memori tersebut. Opcode instruksinya ditulis dalam notasi heksadesimal.
JSUB dan RSUB
merupakan dua instruksi yang berhubungan dengan subrutin.
JSUB menyimpan PC saat ini ke L dan kemudian melompat ke subrutin dengan menyimpan operand ke PC. RSUB kembali dari subrutin dengan melompat ke lokasi yang dinyatakan oleh L.
Instruksi TD
digunakan untuk menguji piranti I/O sebelum berusaha untuk membaca dari atau menulis ke piranti tersebut.Hasil pengujian tersebut disimpan di dalam kode kondisi (condition code), field CC, pada SW. Panjang field ini 2 bit dan digunakan untuk mewakili salah satu dari tiga nilai <, =, >
Jika instruksi TD dijalankan, nilai field CC aka di-set menurut kode berikut :
< menunjukkan bahwa piranti telah siap
= menunjukan bahwa piranti sedang sibuk dan tidak dapat digunakan pada saat itu
> menunjukkan bahwa piranti tidak beroperasi
Instruksi COMP
digunakan juga untuk men-set field CC. Nilai yang disimpan field CC setelah sebuah instruksi COMP setelah sebuah instruksi COMP menggambarkan hubungan antara A dan operand instruksi
Instruksi IRT
digunakan oleh interrupt handler agar menyebabkan lompatan kembali ke tempat dimana CPU berada sebelum intrupsi terjadi. Jika interupsi terjadi, CPU akan menyimpan PC saat ini ke dalam memori pada address 0. Untuk kembali dari sebuah interupsi , isi dari alamat memori ini harus di-load kembali ke dalam PC.
Instruksi-instruksi lainnya
adalah operasi aritmatika dan logika, transfer dari pengendalian(jump), loading register, storing register atau membaca dan menulis ke piranti I/O.
Adalah operasi tingkat rendah yang dapat dilakukan oleh
komputer atau CPU sehingga fungsi-fungsi operasi akan
dihasilkan untuk memindahkan data antar register.
Salah satu cara dalam melakukan operasi mikro tersebut
dengan menggunakan bahasa transfer register / Register
Transfer Language (RTL).
RTL adalah sebuah bahasa yang digunakan untuk
menjabarkan atau melaksanakan operasi mikro.
Untuk mengungkapkan bahasa RTL ini dapat digunakan notasi
RTL yang merupakan aturan penulisan pemberian instruksi
RTL. Contoh notasi tersebut antara lain :
Notasi RTL untuk mentransfer isi register A ke B
A (Isi dari register)
Notasi RTL untuk mentransfer bagian-bagian dari register
(field). Sebuah field pada sebuah register dinotasikan
dengan menggunakan tanda kurung.
Field AD di register IR ditransfer ke register PC
Notasi RTL untuk mentransfer field AD dari register IR ke
register PC
Isi register X ditransfer ke bit 0 sampai 3 pada register
R1, yang berari X mempeunyai panjang bit adalah 4
Selain itu, dapat juga dipakai konstanta pada sisi sebelah
kanan tanda panah.
Artinya simpan nilai 5 pada register L
Notasi RTL untuk menggambarkan berbagai macam
operasi-mikro Aritmatika.
A3 <------- (A1) + (A2)
Artinya isi register A1 dan A2 dijumlahkan dengan
menggunakan sirkuit adder biner dan hasil jumlahnya
ditransfer ke register A3.
Namum apabila dilakukan pengulangan penjumlahan
akan menyebabkan overflow dan untuk menampung
overflow tersebut digunakan register 1-bit yaitu V sebagai
register overflow serta pelengkap A3.
Notasi RTL untuk menggambarkan berbagai macam
operasi-mikro Logika.
C <------ (A) OR (B)
Artinya bahwa logika OR dari sis register A dan B
ditransfer ke register C. Begitu juga dengan operasi AND.
Notasi RTL untuk menggambarkan transfer data ke dan
dari word memori.
Dalam RTL, unit memori utama pada komputer dianggap
sebagai M dan menulis word ke-i dalam memori menjadi
M[i].
Proses pembacaan memori (memory read) adalah :
B <------- (M[A])
Proses penulisan memori (memory write) adalah :
(M[A]) <------ (B)
artinya word memori yang alamatnya ditunjukkan oleh
register A ditransfer ke atau dari register B dalam CPU.
Notasi RTL digunakan untuk transfer register hanya pada
kondisi tertentu, hal tersebut dilakukan dengan 2 cara :
1. Menggunakan pernyataan kondisi logika (logical
condition)
IF (V) > (W) THEN (Q) <------ 0
Men-set 0 ke register Q hanya jika nilai register V lebih
besar dari nilai register W.
Note :
Pernyataan kondisi logikal hanya didefinisikan untuk IF
– THEN dan tidak untuk ELSE.
2. Menggunakan pernyataan kondisi pengendalian (control
condition)
t0 (c1 + c2) : (X) <----- (Y)
dengan metode ini, kondisinya merupakan fungsi logikal
dari variabel biner yang mengatur input register.
Fungsi-fungsi ini dijabarkan disebelah kiri dari operasi
transfer register dan diikuti oleh tanda titik dua.
Keterangan contoh di atas :
Isi Y dipindahkan ke X hanya jika t0 bernilai 1 dan salah
satu c1 atau c2 juga bernilai 1
Namun jika kondisi tertentu adalah 0, simbol utama (‘)
harus digunakan sehingga pernyataan RTL – nya adalah
:
t’0 (c1 + c2) : (X) <----- (Y)
maka transfer hanya akan terjadi jika t0 bernilai 0 dan
salah satu c1 atau c2 juga bernilai 1.
Sumber:
murni_rk.staff.gunadarma.ac.id/Downloads/files/.../Organisasi+Komputer+Dasar.pdf
nelly_sofi.staff.gunadarma.ac.id/Downloads/files/35635/Arsitektur+Komputer.pdf
arum_tri.staff.gunadarma.ac.id/Downloads/files/41459/Organisasi+Komputer.pdf