Struktur Komputer
Adapun
Struktur Sistem Komputer adalah :
§
Sistem
Operasi Komputer
§
Struktur
I/O
§
Struktur
Penyimpanan
§
Storage Hierarchy
§
Proteksi
Perangkat Keras
Sistem Operasi Komputer
Dewasa
ini sistem computer multiguna terdiri dari CPU ( central processing unit) sejumlah device controller yang dihubungkan melalui bus yang menyediakan akses ke memori . Setiap device controller bertugas mengatur perangkat yang spesifik (contohnya disk drive, audio device,
dan video
display). CPU dan device controller dapat dijalankan secara bersamaan, namun demikian
diperlukan mekanisme sinkronisasi untuk mengatur akses ke memori.
Pada
saat pertama kali dijalankan atau di-reboot,
terdapat sebuah program awal yang mesti dijalankan. Program awal ini disebut program
bootstrap. Program ini berisi semua aspek dari sistem computer,
mulai dari register CPU, device controller, sampai isi memori.
Interupsi
merupakan bagian penting dari sistem arsitektur computer. Setiap sistem
computer memiliki mekanisme yang berbeda-beda. Interupsi bisa terjadi apabila
perangkat keras(hardware) atau perangkat lunak (software) minta “dilayani” oleh prosesor. Apabila terjadi
interupsi maka prosesor menghentikan proses yang sedang dikerjakannya, kemudian
beralih mengerjakan service
routine untuk melayani interupsi tersebut. Setelah
selesai mengerjakan service
routine maka prosesor kembali melanjutkan proses
yang tertunda.
Struktur I/O
Dalam
bab ini kita berbicara tentang struktur I/O, interupsi I/O, dan DMA. Serta
perbedaan dalam penanganan interupsi.
Interupsi I/O
Untuk
memulai operasi I/O, CPU me-load
register yang bersesuaian ke device controller. Sebaliknya device controller memeriksa isi register untuk kemudian menentukan
opersasi apa yang harus dilakukan. Pada saat operasi I/O dijalankan ada dua
kemungkinan, yaitu synchronous
I/O dan asynchronous I/O. Pada synchronous I/O,
kendali dikembalikan ke proses pengguna setelah proses I/O selesai dikerjakan.
Sedangkan pada asynchronous
I/O, kendali dikembalikan ke proses pengguna
tanpa menunggu proses I/O selesai.Sehingga proses I/O dan proses pengguna dapat
dijalankan secara bersamaan.
Direct Memory Acces (DMA) suatu metode penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan
CPU. Setelah men-set buffers, pointers, dan counters
untuk perangkat I/O, device controller mentransfer blok data langsung ke penyimpanan tanpa
campur tangan CPU. DMA digunakan untuk perangkat I/O dengan kecepatan tinggi.
Hanya terdapat satu interupsi setiap blok, berbeda dengan perangkat yang
mempunyai kecepatan rendah dimana interupsi terjadi untuk setiap byte (word).
Struktur Penyimpanan
Program
computer harus berada di main memory
(biasanya RAM) untuk dapat dijalankan. Main memory adalah satu-satunya tempat penyimpanan yang dapat
diakses secara langsung oleh prosesor. Idealnya program dan data secara
keseluruhan dapat disimpan dalam main memory
secara permanen . Namun demikian hal ini tidak mungkin karena:
§
Ukuran
main
memory relatif kecil untuk dapat menyimpan data
dan program secara keseluruhan.
§
Main memory bersifat
volatile, tidak bisa menyimpan secara permanen, apabila komputer
dimatikan maka data yang tersimpan di main memory
akan hilang.
Main
Memory
Hanya
main
memory dan register merupakan tempat penyimpanan
yang dapat diakses secara langsung oleh prosesor. Oleh karena itu instruksi dan
data – data yang akan dieksekusi harus disimpan di main memory atau register.
Untuk
mempermudah akses perangkat I/O ke memori, pada arsitektur komputer menyediakan
fasilitas pemetaan memori ke I/O. Dalam hal ini sejumlah alamat di memori
dipetakan dengan device
register . Membaca dan menulis pada alamat memori
ini menyebabkan data ditransfer dari dan ke device register. Metode ini cocok untuk perangkat dengan waktu respon
yang cepat seperti video
controller.
Register
yang terdapat dalam prosesor dapat diakses dalam waktu 1 clock cycle. Hal ini menyebabkan register merupakan media
penyimpanan dengan akses paling cepat bandingkan dengan main memory yang membutuhkan waktu relatif lama. Untuk mengatasi
perbedaan kecepatan, dibuatlah suatu buffer
penyimpanan yang disebut cache.
Magnetic
Disk
Magnetic Disk berperan
sebagai secondary
storage pada sistem komputer modern. Magnetic Disk disusun dari piringan-piringan seperti CD. Kedua
permukaan piringan diselimuti oleh bahan-bahan magnetik. Permukaan dari
piringan dibagi-bagi menjadi track
yang memutar, yang kemudian dibagi lagi menjadi sektor.
Storage
Hierarchy
Dalam
storage
hierarchy structure,data-data yang sama bisa
tampil dalam level berbeda dari sistem penyimpanan. Sebagai contoh integer A
berlokasi pada file B yang ditambahkan 1,dengan asumsi file B terletak pada magnetic disk. Operasi penambahan diproses dengan pertama kali
mengeluarkan operasi I/O untuk menduplikat disk block pada A yang terletak pada
main
memory. Operasi ini diikuti dengan kemungkinan
penduplikatan A ke dalam cache dan
penduplikatan A ke dalam internal register.Sehingga penduplikatan A terjadi di
beberapa tempat. Pertama terjadi di internal register dimana nilai A berbeda
dengan yang di sistem penyimpanan. Dan nilai di A akan kembali sama ketika
nilai baru ditulis ulang ke magnetic disk
Pada
kondisi multi prosesor, situasi akan menjadi lebih rumit. Hal ini disebabkan
masing-masing prosesor mempunyai . Dalam kondisi seperti ini hasil duplikat
dari A mungkin hanya ada di beberapa cache.
Karena CPU(register-register) dapat dijalankan secara bersamaan maka kita harus
memastikan perubahan nilai A pada satu cache akan mengubah nilai A pada semua cache yang ada. Hal ini disebut sebagai Cache Coherency.
Proteksi Perangkat Keras
Sistem
komputer terdahulu berjenis programmer-operated systems. Ketika komputer dioperasikan dalam konsol
mereka(pengguna) harus melengkapi sistem terlebih dahulu. Akan tetapi setelah
sistem operasi lahir maka hal tersebut diambil alih oleh sistem operasi.
Sebagai contoh pada monitor yang proses I/O sudah diambil alih oleh O/S,
padahal dahulu hal ini dilakukan oleh pengguna.
Untuk
meningkatkan utilisasi sistem, O/S akan membagi sistem sumber daya sepanjang
program secara simultan. Pengertian spooling
adalah suatu program dapat dikerjakan walaupun I/O masih mengerjakan proses
lainnya dan disk secara bersamaan menggunakan data untuk banyak proses.
Pengertian multi
programming adalah kegiatan menjalankan beberapa
program pada memori pada satu waktu.
Pembagian
ini memang menguntungkan sebab banyak proses dapat berjalan pada satu waktu
akan tetapi mengakibatkan masalah-masalah baru. Ketika tidak di sharing maka jika terjadi kesalahan hanyalah akan membuat
kesalahan program. Tapi jika disharing
jika terjadi kesalahan pada satu proses/program akan berpengaruh pada proses
lainnya
Sehingga
diperlukan pelindung(proteksi).Tanpa proteksi jika terjadi kesalahan maka hanya
satu saja program yang dapat dijalankan atau seluruh output pasti diragukan
Banyak
kesalahan pemprograman dideteksi oleh perangkat keras. Kesalahan ini biasanya
ditangani oleh sistem operasi.Jika terjadi kesalahan program, perangkat keras
akan meneruskan kepada sistem operasi dan sistem operasi akan menginterupsi dan
mengakhirinya. Pesan kesalahan disampaikan, dan memori dari program akan
dibuang. Tapi memori yang terbuang biasanya tersimpan pada disk agar programmer bisa membetulkan kesalahan dan menjalankan program
ulang.
Operasi Dual Mode
Untuk
memastikan operasi berjalan baik kita harus melindungi O/S, program, dan data
dari program-program yang error.
Proteksi ini memerlukan share resources.
Hal ini bisa dilakukan O/S dengan cara menyediakan pendukung perangkat keras
yang mengijinkan kita membedakan mode pengeksekusian program.
Mode
yang kita butuhkan ada dua mode operasi yaitu
§
Mode
Monitor
§
Mode
Pengguna
Pada
perangkat keras akan ada bit atau Bit Mode yang berguna untuk membedakan mode
apa yang sedang digunakan dan apa yang sedang dikerjakan. Jika Mode Monitor
maka akan benilai 0, dan jika Mode Pengguna maka akan bernilai 1.
Pada
saat boot
time, perangkat keras bekerja pada mode monitor
dan setelah sistem operasi di-load
maka akan mulai masuk ke mode pengguna. Ketika terjadi trap atau interupsi, perangkat keras akan men-switch lagi keadaan dari mode pengguna menjadi mode monitor
(terjadi perubahan state menjadi bit 0). Dan akan kembali menjadi mode pengguna
jikalau O/S mengambil alih proses dan kontrol komputer (state akan berubah
menjadi bit 1)
Proteksi I/O
Pengguna
bisa mengacaukan sistem operasi dengan melakukan instruksi I/O ilegal dengan
mengakses lokasi memori untuk O/S atau dengan cara hendak melepaskan diri dari
prosesor. Untuk mencegahnya kita menganggap semua instruksi I/O sebagai privaladge instruction sehingga mereka tidak bisa mengerjakan instruksi I/O
secara langsung ke memori tapi harus lewat O/S terlebih dahulu. Proteksi I/O
dikatakan selesai jika pengguna dapat dipastikan tidak akan menyentuh mode
monitor. Jika hal ini terjadi proteksi I/O dapat dikompromikan.
Proteksi Memori
Salah
satu proteksi perangkat keras adalah dengan proteksi memori yaitu dengan
pembatasan penggunaan memori. Disini diperlukan beberapa istilah yaitu:
§
Base
Base Register Register yaitu alamat memori fisik awal yang dialokasikan/boleh
digunakan oleh pengguna
§
Limit
Register yaitu nilai batas dari alamat memori fisik awal yang
dialokasikan/boleh digunakan oleh pengguna
§
Proteksi
Perangkat Keras
Sebagai contoh sebuah pengguna dibatasi
mempunyai base register 300040 dan mempunyai limit register 120900 maka
pengguna hanya diperbolehkan menggunakan alamat memori fisik antara 300040
hingga 420940 saja
Struktur
CPU (Central Processing Unit)
Unit
Pengolah Pusat (UPP) (bahasa Inggris: CPU, singkatan dari Central Processing
Unit), merujuk kepada perangkat keras komputer yang memahami dan melaksanakan
perintah dan data dari perangkat lunak. Istilah lain, prosesor (pengolah data),
sering digunakan untuk menyebut CPU. Adapun mikroprosesor adalah CPU yang
diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit
terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit
terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam
penerapan CPU.
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
• Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
o Mengatur dan mengendalikan alat-alat input dan output.
o Mengambil instruksi-instruksi dari memori utama.
o Mengambil data dari memori utama (jika diperlukan) untuk diproses.
o Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
o Menyimpan hasil proses ke memori utama.
• Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
• ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
• CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.
• Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.
Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika danlogika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan.
Percabangan instruksi
Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut.
• Unit kontrol yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU.CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
o Mengatur dan mengendalikan alat-alat input dan output.
o Mengambil instruksi-instruksi dari memori utama.
o Mengambil data dari memori utama (jika diperlukan) untuk diproses.
o Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
o Menyimpan hasil proses ke memori utama.
• Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
• ALU unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
• CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.
• Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.
Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika danlogika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan.
Percabangan instruksi
Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan. Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time).
Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.