Perangkat keras adalah komponen yang berada pada tingkat paling bawah dari sistem komputer dan merupakan komponen sistem komputer yang berwujud fisik. Yang paling kasat mata adalah peranti input – input (I /O) dari komputer seperti monitor, keyboard, mouse, printer, dan scanner. Namun komponen perangkat keras yang paling vital adalah prosesor (CPU, Central Processing Unit), memori, serta komponen fisik internal lainnya yang biasanya diletakkan dalam suatu kotak tertutup yang disebut casing. Bagaimana komponen fisik ini diorganisasi sebagai suatu unit yang disebut komputer ? Komputer yang umumnya digunakan dewasa ini memiliki arsitektur yang sesuai dengan arsitektur Von Neuman seperti yang ditunjukkan pada gambar dibawah ini.

Struktur Komputer Von Neuman
Struktur Komputer Von Neuman

Komponen perangkat keras terdiri atas prosesor, memori, memori utama, modul, I/O, saluran bus (sistem interkoneksi), serta peranti I/O.

PROSESOR

Prosesor adalah tempat eksekusi kode instruksi program. Prosesor terdiri atas :

  1. Control Unit (CU).
  2.  Arithmetic Logic Unit (ALU).
  3. Register.

Kode instruksi program beserta data – data tersimpan dalam memori. Instruksi dan data memori diambil satu per satu dan disimpan di register untuk dieksekusi. Ketika dieksekusi, instruksi di register akan mnentukan apa yang akan dilakukan oleh CU maupun ALU.

CU bertugas untuk mengatur eksekusi dan mengendalikanseluruh komponen komputer lainnya, seperti memori maupun modul I/O. Sementara ALU bertugas untuk mengeksekusi operasi arithmweika dan logika. Operasi aritmetika meliputi penjumlahan, pengurangan, perkalian, dan pembagian. Sementara contoh operasi logika adalah perbandingan lebih besar, lebih kecil, kesamaan, ataupun ketidaksamaan. Secara garis besar jenis instruksi yang dijalankan oleh prosesor antara lain :

  1. Pertukaran data antara prosesor dan memori utama
    Instruksi ini dilakukan ketika data harus dibaca / ditulis kememori utama.
  2. Pertukaran data antara prosesor dan modul I/O
    Instruksi ini dilakukan ketika data harus dibaca / ditulis ke piranti I/O. Umumnya data – data unutk operasi I/O akan disimpan sementara di memori utama sebelum diproses oleh prosesor.
  3. Pemrosesan data oleh Prosesor
    Instruksi ini dilakukan jika diperlukan operasi – operasi aritmatika ataupun logika.
  4. Operasi kendali
    Instruksi ini dilakukan jika diperlukan pengaturan alur eksekusi instruksi, seperti operasi lompat (jump) ke instruksi tertentu.

Untuk menjalankan tugasnya, prosesor membutuhkan tempat menampung instruksi, data, maupun alamat data. Memori semacam ini disebut dengan register. Jenis – jenis register yang umumnya terdapat pada suatu prosesor antara lain :

1.  Register Pengguna
Yaitu register yang dapat digunakan untuk menyimpan data serta alamat data program,yang terdiri atas :
A. Register Data
Register data digunakan untuk menyimpan data yang dibaca dari memori ataupun yang akan diproses di ALU. Yang termasuk register data antara lain register AX,BX,CX,DX.
B. Register Alamat
Register alamat digunakan untuk menyimpan dalamat memori dari data ataupun kode instruksi program yang akan diakses oleh prosesor, Register alamat dapat dikelompokkan ke dalam register indeks (Index Register, seperti SI, DI), register segmen (Segmen Register, seperti register ES, DS, SS) dan register pointer (Pointer Register, seperti BP,SP).

2. Register Status and Kontrol
Yaitu register yang digunakan untuk mengontrol eksekusi kode instruksi program, yang terdiri atas :
a. Register penghitung (PC, Program Counter Register)
Register ini menyimpan alamat memori (alamat relatif / logika) dari kode instruksi yang sedang dieksekusi.
b. Register segmen kode instruksi (CS, Code Segment Register)
Register ini meyimpan dalamat segmen memori dari kode instruksi yang sedang dieksekusi.
c. Register Instruksi (IR, Instruction Register)
Register ini menyimpan kode instruksi yang sedang / akan dieksekusi. Kode instruksi ini dibaca dari memori fisik menggunakan alamat yang ditunjukkan oleh register CS dan PC.
d. Register status (F, Flag Register)
Register ini menyimpan sejumlah status hasil eksekusi kode instruksi yang sedang berlangsung. Misalkan jika terjadi pembagian dengan bilangan nol maka kondisi tersebut akan dicatat di register status.

Berikutnya, marilah kita lohat bagaimana prosesor melakukan eksekusi instruksi program. Secara garis besar, siklus dari prosesor dapat dilukiskan seperti bambar dibawah ini :

Siklus Eksekusi Processor
Siklus Eksekusi Processor

Pertama , prosesor mengambil kode intruksi (siklus fetch), kemudian dieksekusi(siklus execute). Jika intrupsi aktif (enabled) maka prosesor akan melakukan pengecekan (siklus interrupt), sedangkan jika interupsi tidak aktif (disabled), prosesorakan mengambil intruksi selanjutnya(siklus fetch). Jika intruksi yang dijalankan adalah HALT maka prosesor akan menghentikan siklus eksekusinya sama sekali (akhir eksekusi suatu program).
Interupsi adalah sinyal perangkat keras , terutama peranti I/O, ataupun perangkat lunak untuk meminta prosesor melakukan suatu tugas tertentu. Interupsi merupakan pula mekanisme komunikasi antara prosesor dengan perangkat keras lainnya. Interupsi dapat dikelompokkan atas:

1. Interupsi perangkat lunak (Software inrerrupt), yaitu interupsi yang diakibatkan oleh intruksi atau efek dari perngkat lunak.Interupsi ini sering juga disebut dengan system call, karena umumnya digunakan untuk meminta layanan atau penanganan dari sistem operasi.contoh kondisi yang memicu terjadinya interupsi perangkat lunak adalah: program meminta sistem untuk mencetak hasil keluaran atau output ke printer, atau terjadi kondisi pembagian dengan bilangan nol (division by zero) ataupun hasil operasi aritmatika melebihi presisi tipe data penyimpan (arithmetic overflow).

2. Intrupsi pernagkat keras (Hardware Interrupt), yaitu interupsi yang diakibatkan aksi pada perangkat keras. Ada dua kategori untuk interupsi ini, yaitu:
a. Maskable Inrerrupt, yaitu interupsi yang disela, misalkan: interupsi oleh timer, penekanan keyboard atau mouse.
b. Non-Maskable Interrupt, yaitu intrupsi yang tidak dapat disela, misalnya terjadi kegagalan perangkat keras seperti penyuplai tenaga (power failure) ataupun memori (memory parity error).

Cara kerja interupsi ditunjukkan Gambar 1.5. Setiap interupsi memiliki rutin interupsi (ISR, Interrupt Service Routine), yaitu kumpulan interuksi yang akan dieksekusi jika interupsi tersebut terjadi. Rutin interupsi atau ISR disimpan di memori pada saat komputer dihidupkan. Alamat memori dari ISR ini disimpan sebagai referensi dalam suatu tabel interupsi (IST, Interrupt Service Table). Ketika interupsi terjadi (1), prosesor akan menunda program yang sedang dieksekusi, kemudian menyimpan isi register-register prosesor, disebut juga dengan konteks prosesor, ke memori.

Prosesor selanjutnya akan membaca (lookup) di IST(2) untuk mengetahui alamat ISR interupsi bersangkutan. Dalam pembacaan ini, prosesor menggunakan nomor interupsi yang dibangkitkan perangkat keras sebagai nomor indeks untuk membaca IST. Setelah mengetahui alamat ISR, prosesmulai membaca kode interuksi ISR dan mengeksekusinya (3). 
Setelah eksekusi ISR selesai, prosesor akan kembali mengeksekusi program yang tertunda, yang diawali dengan mengisi kembali register-register prosesor sehingga kondisinya sama seperti terjadi interupsi.

Cara Kerja Interupsi
Cara Kerja Interupsi

Contoh fisik dari fabrikasi chip prosesor dapat dilihat pada Gambar 1.6. Umumnya prosesor yang beredar di pasaran diidentifikasi menggunakan nama perusahaan pembuatnya (vendor), nama dagang teknologi prosesornya, serta frekuensi clock-nya. Contoh spesifikasi chip prosesor: Intel Pentium IV , GHz, AMD Sepron 1,8 GHz+. Spesifikasi prosesor dapat juga menggunakan nomor seri produksi seperti M740 1,7 GHz yang dipakai sebagai prosesor laptop. Belakangan ini, vendor prosesor seperti Intel memproduksi chip prosesor yang memiliki dua inti prosesor, dan spesifikasi prosesornya ditambah akhiran Core 2 Duo.

Contoh Chip Prosesor Yang Pernah Ada dipasaran
Contoh Chip Prosesor Yang Pernah Ada dipasaran