A.
PENGERTIAN
PIRANTI PROSES
Piranti proses adalah adalah alat
dimana instruksi – instruksi program diproses untuk mengolah data yang sudah
dimasukkan lewat Peranti masukan dan hasilnya akan ditampilkan di Peranti
keluaran. Saat komputer berjalan, terdapat banyak proses yang berjalan secara
bersamaan. Sebuah proses dibuat melalui system call create-process yang
membentuk proses turunan ( child process) yang dilakukan oleh proses induk
(parent process). Proses turunantersebut juga mampu membuat.
Ketika sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti waktu CPU, memori, berkas, atau perangkat I/O. Sumber daya ini dapat diperoleh langsung dari sistem operasi, dari proses induk yang membagi-bagikan sumber daya kepada setiap proses turunannnya, atau proses turunan dan proses induk berbagi sumber-daya yang diberikan sistem operasi. Pranti proses terdiri dari Central Processing Unit (CPU) dan Main Memory .
B.
PENGELOLAAN PROSES
Proses perlu dikelola karena dalam
sebuah proses membutuhkan beberapa sumber daya untuk menyelesaikan tugasnya.
Sumber daya tersebut dapat berupa CPU time, memori, berkas-berkas, dan
perangkat-perangkat I/O. Perkembangan sistem komputer mendatang adalah menuju
ke sistem multi- processing, multiprogramming, terdistribusi dan paralel yang
mengharuskan adanya proses-proses yang berjalan bersama dalam waktu yang
bersamaan. Hal demikian merupakan masalah yang perlu perhatian dari perancang
sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari
satu proses disebut dengan kongkurensi (proses-proses yang kongkuren).
Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Proses tersebut tidak lepas dari peran prosesor sebagai pengendali dari berjalannya sebuah proses.
Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Proses tersebut tidak lepas dari peran prosesor sebagai pengendali dari berjalannya sebuah proses.
1. CPU
(Central Processing Unit)
CPU
merupakan tempat pemrosesan instruksi-instruksi program. Pada komputer mickro,
prosesor ini disebut mikro prosesor. CPU
terdiri dari 2 bagian utama, yaitu unit kendali (control unit) dan unit
arithmatika dan logika ( arithmatik and logic unit). Disamping 2 bagian utama,
CPU mempunyai beberapa bagian penting yang disebut dengan register .
1.1. Control
Unit
Bagian
ini bertugas untuk mengatur dan mengendalikan semua peralatan yang ada pada sistem
komuter serta mengatur kapan
alat menerima data dan kapan data diolah, serta kapan ditampilakan pada alat
output. Selain iu control unit mengartikan instruksi-instrusi dasri progam
computer membawa data input ke memory. Bila ada instruksi pada arithmatika atau
perbandingan logika control unit mengirim instruksi tersebut ke arithmetic and
logic unit. Hasil dari pengolahan data ini dibawa oleh control unit ke main
memory untuk di simpan.
Pada awal-awal desain
komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain.
Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di
dalam tempat penyimpanan kontrol (control store). Beberapa word dari
microprogram dipilih oleh microsequencer dan bit yang datang dari word-word
tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat
tersebut, termasuk di antaranya adalah register, ALU, register instruksi, bus
dan peralatan input/output di luar chip. Pada komputer modern, setiap subsistem
ini telah memiliki kontrolernya masing-masing, dengan CUTugas control unit adalah sebagai berikut :
a.
Mengatur
dan mengendalikan alat-alat input dan output.
b.
Mengabil
instruksi dari main memory.
c.
Mengambil
data dari min memory kalau diperlukan oleh proses.
d.
Mengirim
instruksi ke arithmetic and logic unit bila ada perhitungan arithmatika atau
perbandingan logika serta mengawasi kerja arithmetic and logic unit.
e.
Menyimpan
hasil proses ke main memory.
Masukan-masukan
unit control:
a. Clock / pewaktu
Pewaktu adalah cara unit control dalam menjaga
waktunya. Unit control menyebabkan sebuah operasi mikro
(atau sejumlah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu.
Pulsa ini dikenal sebagai waktu siklus prosesor.
b.
Register
instruksi
opcode instruksi saat itu digunakan untuk menentukan
operasi mikro mana yang akan dilakukan selama siklus eksekusi.
c.
Flag
Flag ini diperlukan oleh unit
control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya.
d.
Sinyal control untuk mengontrol bus
Bagian
bus control bus system memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal interupsi dan
acknowledgement
Macam-macam CU
a. Single-Cycle
CU
Proses
di CUl ini hanya terjadi dalam satu clock cycle, artinya setiap instruksi ada pada satu cycle, maka dari itu tidak
memerlukan state. Dengan demikian fungsi boolean masing-masing control line
hanya merupakan fungsi dari opcode saja. Clock cycle harus mempunyai panjang
yang sama untuk setiap jenis instruksi. Ada dua bagian pada unit kontrol ini,
yaitu proses men-decode opcode untuk mengelompokkannya menjadi 4 macam
instruksi (yaitu di gerbang AND), dan pemberian sinyal kontrol berdasarkan
jenis instruksinya (yaitu gerbang OR). Keempat jenis instruksi adalah
“R-format” (berhubungan dengan register), “lw” (membaca memori), “sw” (menulis
ke memori), dan “beq” (branching). Sinyal kontrol yang dihasilkan bergantung
pada jenis instruksinya. Misalnya jika melibatkan memori ”R-format” atau ”lw”
maka akan sinyal ”Regwrite” akan aktif. Hal lain jika melibatkan memori “lw”
atau “sw” maka akan diberi sinyal kontrol ke ALU, yaitu “ALUSrc”. Desain
single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi cycle ini
tidak efisien.
b.
Multi-Cycle CU
Berbeda
dengan unit kontrol yang single-cycle, unit kontrol yang multi-cycle lebih
memiliki banyak fungsi. Dengan memperhatikan state dan opcode, fungsi boolean
dari masing-masing output control line dapat ditentukan. Masing-masingnya akan
menjadi fungsi dari 10 buah input logic. Jadi akan terdapat banyak fungsi
boolean, dan masing-masingnya tidak sederhana. Pada cycle ini, sinyal kontrol
tidak lagi ditentukan dengan melihat pada bit-11 bit instruksinya. Bit-bit
opcode memberitahukan operasi apa yang selanjutnya akan dijalankan CPU; bukan
instruksi cycle selanjutnya
1.2. Arihmatic
And Logic Unit
Tugas
utama dari arithmetic and logic unit (ALU) adalah melakukan semua perhitungan
arithmatika atau matematika yang terjadi sesuai dengan, seperti pengurangan,
perkalian, pembagian, dan penjumlahan. Tugas lain dari ALU melakukan keputusan
dari logika sesuai dengan instruksi progam. Operasi logika meliputi 2 buah
elemen dengan operator logika yaitu :
a.
Sama
dengan ( = )
b.
Tidak
sama dengan ( ≠ )
c.
Kurang
dari ( < )
d.
Kurang
dari sama dengan ( ≤ )
e.
Lebih
besar dari ( > )
f.
Lebih
dari sama dengan ( ≥ )
1.3. Register
Merupakan simpanan kecil yang mempunyai kecepatan tinggi
lebih cepat 5 -10 kali dibandingkan dengan kecepatan perekaman atau pengambilan
data di main memory. Register digunakan untuk menyimpan instruksi dan data yang
diproses oleh CPU sedangkan instruksi-instruksi dan data lainnya yang menunggu
giliran untuk diproses masih disimpan di main memory.
Secara analog, register ini diibaratkan dengan ingatan di
otak bila anda melakukan pengolahan data secara manual. Sehingga otak dapat
diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang
mengendalikan seluruh kegiatan tubuh dan yang tempat untuk melakukan perhitungan dan
perbandingan logika.
Progam kumpulan data yang diletakan di main memory dapat
diibaratkan sebagai sebuah meja. Progam tersebut akan memproses
instruksi-instruksi yang didalamnya memulai dari instruksi pertama. Instruksi
yang di baca dan di ingat (instruksi yang sedang diproses disimpan di
register). Misalnya instruksi tersebut berbunyi HITUNG C = A + B, maka anda
membutuhkan data untuk nilai A dan B yang masih ada di meja. Data tersebut anda
baca dan masuk ke dalam ingatan. (data yang sedang proses di simpan di
register), yaitu A bernilai 2 dan B bernilai 3. Sekarang di ingatan otak anda
telah tersimpan suatu instruksi dan nilai dari C dapat anda hitung hasilnya,
yaitu sebesar 5. Hasil dari perhitungan ini perlu anda tuliskan kembali ke meja
(hasil pengolahan direkam kembali ke main memory) setelah semua instruksi
selesai anda proses, kemungkinan program, data dan hasil pengolahan ingin anda
simpan secara permanen untuk keperluan di lain hari dan dapat anda simpan di
filling cabinet. Jadi ada 3 macam ingatan yang dipergunakan di dalam sistem
komuter yaitu: sebagai berikut,
a.
Register, dipergunakan untuk menyimpan instruksi dan data
yang sedang di proses
b.
Main memory, dipergunakan untuk menyimpan instruksi dan
data yang diproses dan hasil dari pengolahan.
c.
External memory (simpanan luar) , dipergunakan untuk
menyimpan program dan data secar permanen.
Register yang berubungan dengan
instruksi yang sedang diproses adalah instruction register dan program counter.
Instruction register (IR) atau di sebut juga progam register digunakan untuk
menyimpan instruksi yang sedang diproses. Progam yang berisi kumpulan dari
instruksi, pertama kali ditempatkan di main memory. Pemrosesan dilakukan
instruksi perinstruksi. Instruksi yang mendapat giliran untuk diproses, diambil
dari main memory dan disimpan di instruction register (IR).
Progam Counter (PC)
adalah register yang dilakukan untuk menyimpan alamat (address) lokasi dari
main memory yang berisi instruksi yang sedang di proses. Selama pemrosesan
instruksi yang dilakukan oleh CPU, isi dari PC dirubah dengan alamat main
memory.
Register yang
berhubungan dengan data yang sedang dip roses adalah general purpose register.
Untuk beberapa computer diberi symbol R0, R1, R2. … Rn yang mempunyai kegunaan
umum seperti menampung data yang sedang diolah (operand register) dan untuk
menampung hasil pengolahan (accumulator).
Operand register
digunakan untuk menampung data atau operand yang sedang dioperasikan. Sedangkan
accumulator adalah register yang digunakan untuk menyimpan hasil dari operasi
arithmatika dan operasi logika yang dilakukan oleh ALU. Misalnya operand
register mempunyai wordsize 16 bit, maka processor tersebut disebut 16 bit processor
yaitu pada intel 8088.
Register lainnya yang digunakan sebagai jembatan antara CPU dengan main memory adalah memory address register (MAR) yang digunakan untuk menampung data atau instruksi hasil pengiriman dari main memory ke CPU untuk menampung data yang akan direkam ke main memory hasil pengolahan ke CPU. dan memory data register (MDR) yang digunakan untuk menampung alamat data atau instruksi di main memory yang akan diambil atau direkam. Register ini yang dihubungkan dengan suatu jalur (BUS) ke main memory. Selain itu adapun yang disebut register processor yaitu Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Register lainnya yang digunakan sebagai jembatan antara CPU dengan main memory adalah memory address register (MAR) yang digunakan untuk menampung data atau instruksi hasil pengiriman dari main memory ke CPU untuk menampung data yang akan direkam ke main memory hasil pengolahan ke CPU. dan memory data register (MDR) yang digunakan untuk menampung alamat data atau instruksi di main memory yang akan diambil atau direkam. Register ini yang dihubungkan dengan suatu jalur (BUS) ke main memory. Selain itu adapun yang disebut register processor yaitu Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Istilah register
saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara
langsung untuk melakukan input/output terhadap sebuah instruksi yang
didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata
"Register Arsitektur". Sebagai contoh set instruksi Intel x86
mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU
yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan
register 32-bit. Register terbagi menjadi beberapa kelas:
§
Register data, yang digunakan untuk menyimpan angka-angka
dalam bilangan bulat (integer).
§ Register alamat,
yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses
memori.
§ Register general
purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara
sekaligus.
§ Register
floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik
mengambang (floating-point).
§ Register konstanta
(constant register), yang digunakan untuk menyimpan angka-angka tetap yang
hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan
lainnya.
§ Register vektor,
yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh
prosesor SIMD.
§ Register special
purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti
halnya instruction pointer, stack pointer, dan status register.
§ Register yang
spesifik terhadap model mesin (machine-specific register), dalam beberapa
arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang
berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register
langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register
jenis ini tidak menjadi standar antara generasi prosesor. Berikut
ini adalah ukuran register dan padanan prosesornya
Register
|
Prosesor
|
4-bit
|
Intel 4004
|
8-bit
|
Intel 8080
|
16-bit
|
Intel 8086, Intel
8088, Intel 80286
|
32-bit
|
Intel 80386, Intel
80486, Intel Pentium Pro, Intel Pentium, Intel Pentium 2, Intel Pentium 3,
Intel Pentium 4, Intel Celeron, Intel Xeon, AMD K5, AMD K6, AMD Athlon, AMD
Athlon MP, AMD Athlon XP, AMD Athlon 4, AMD Duron, AMD Sempron
|
64-bit
|
Intel Itanium, Intel
Itanium 2, Intel Xeon, Intel Core, Intel Core 2, AMD Athlon 64, AMD Athlon
X2, AMD Athlon FX, AMD Turion 64, AMD Turion X2, AMD Sempron
|
1.4.
Array
Processor
Digunakan untuk
mempercepat waktu process. Dengan Array processor, perhitungan arithmatika yang
besar dan yang sulit dapat dilakukan dengan memecah atau membagi perhitungan
tersebut dan dilakukan bersama-sama atau central processor dan array processor.
Jadi fungsi utama array processor adalah untuk perhitungan matematika yang
rumit, yang disebut math-processor atau numeric data processor.
2.
Main
Memory
CPU hanya dapat
menyimpan data dan instruksi di register yang ukurannya kecil, sehingga tidak
dapat menyimpan nama informasi yang dibutuhkan untuk keseluruhan proses dari
progam.
Main Memory dapat
dibayangkan sebagai sekumpulan kotak-kotak yang masing-masing kotak dapat
menyimpan suatu fungsi penggal informasi baik berupa data maupun instruksi.
Tiap-tiap lokasi dari kotak ditunjukkan oleh suatu alamt. Alamat memory
merupakan suatu nomor yang menunjukan loksi tertentu dari kotak memory. Main memory terdiri dari RAM dan ROM
2.1. RAM
(Random Acces Memory)
Merupakan jenis memori yang isinya dapat diganti-ganti
selama komputer sihidupkan dan sebagai suatu penyimpanan data yang dapat dibaca
atau ditulis dan dapat dilakukan secara berulang-ulang dengan data yang
berbeda-beda. Jenis memori ini merupakan jenis volatile (mudah menguap), yaitu
data yang tersimpan akan hilang jika catu dayanya dimatikan. Karena alasan
tersebut, maka program utama tidak pernah disimpan di RAM. Random artinya data
yang disimpan pada RAM dapat diakses secara acak. Modul memori RAM yang umum
diperdagangkan berkapasitas 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, dan 4 GB.
RAM dibagi lagi menjadi dua jenis, yaitu jenis Statik dan
Dinamik. RAM statik menyimpan satu bit informasi dalam sebuah flip-flop. RAM
statik biasanya digunakan untuk aplikasi-aplikasi yang tidak memerlukan
kapasitas memori RAM yang besar. RAM dinamik menyimpan satu bit
informasi data sebagai muatan. RAM dinamik menggunakan kapasitansi gerbang
substrat sebuah transistor MOS sebagai sel memori elementer. Untuk menjaga agar
data yang tersimpan RAM dinamik tetap utuh, data tersebut harus disegarkan
kembali dengan cara membaca dan menulis ulang data tersebut ke memori. RAM
dinamik ini digunakan untuk aplikasi yang memerlukan RAM dengan kapasitas
besar, misalnya dalam sebuah komputer pribadi (PC).
Semua data dan progam yang dimasukan lewat alat input akan disimpan
terlebih dahulu di main memory, khususnya di RAM. RAM merupakan memory yang
dapat di akses yaitu diisi dan diambil isinya oleh programmer. Struktur dari
RAM dibai menjadi 4 bagian, yaitu :
§
Input
storage, digunakan untuk menampung input yang dimasukan lewat alat input.
§
Progam
storage, digunakan untuk menyimpan semua instruksi-instruksi progam yang akan
diproses.
§
Working
storage, digunakan untuk menyimpan data yang akan diolah dan hasil dari
pengolahan.
§
Output
storage, digunakan untuk menampung hasil akhir dari pengolahan data yang akan
ditampilkan ke alat output.
Input yang
dimasukkan lewat alat input, pertama kali ditamping terlebih dahulu di input
storage, bila input tersebut berbentuk progam, maka dipindahkan ke progam
storage dan bila berbentuk data, akan dipindahkan ke working storage. Hasil
dari pengolahan juga ditampung di working storage dan hasil yang akan di
tampilkan ke alat output dipindahkan ke output storage.
RAM mempunyai kemampuan untuk melakukan pengecekan dari data yang
disimpannya, yang disebut dengan isitilah parity check. Bila data hilang atau
rusak, dapat diketahui dari ebuah bit tambahan yang disebut dengan parity bit
atau check bit.
2.2. ROM
( Read Only Memory)
Merupakan perangkat keras pada komputer berupa chip memori
semikonduktor yang isinya hanya dapat dibaca. Jenis memori ini datanya hanya
bisa dibaca dan tidak bisa ditulis secara berulang-ulang. Memori ini berjenis
non-volatile, artinya data yang disimpan tidak mudah menguap (hilang) walaupun
catu dayanya dimatikan. Karena itu memori ini biasa digunakan untuk menyimpan
program utama dari suatu sistem. ROM pada komputer disediakan oleh vendor
komputer dan berisi program atau data.Di dalam PC, ROM biasa disebut BIOS
(Basic Input/Output System) atau ROM-BIOS. Instruksi dalam BIOS inilah yang
akan dijalankan oleh mikroprosesor ketika komputer mulai dihidupkan.
Sampai sekarang dikenal beberapa jenis ROM yang pernah
beredar dan terpasang pada komputer, antara lain PROM :
·
PROM (Progammable Read-Only-Memory) :
Jika isi ROM ditentukan oleh vendor, PROM dijual dalam keadaan kosong dan
kemudian dapat diisi dengan program oleh pemakai. Setelah diisi dengan program,
isi PROM tak bisa dihapus.
·
EPROM (Erasable Programmable
Read-Only-Memory) : Berbeda dengan PROM, isi EPROM dapat dihapus setelah
diprogram. Penghapusan dilakukan dengan menggunakan sinar ultraviolet.
EEPROM (Electrically Erasable Programmable
Read-Only0Memory) : EEPROM dapat menyimpan data secara permanen, tetapi isinya
masih bisa dihapus secara elektris melalui program. Salah satu jenis EEPROM
adalah Flash Memory. Flash Memory biasa digunakan pada kamera digital, konsol
video game, dan cip BIOS.
Memory ini hanya dapat dibaca saja, programmer tidak bisa mengisi sesuatu
ke dalam ROM. Isi ROM sudah diisi oleh pabrik pembuatnya, berupa system operasi
(Operasi System) yang terdiri dari progam-progam pokok yang diperlukan oleh sistem
komputer, seperti misalnya progam untuk mengatur penampilan karakter di layar,
pengisian tombol kunci di keyboard untuk keperluan kontrol tertentu bootstrap
progam. Beberapa komputer misalnya komputer mikcro apple dan IBM PC, ROM juga
diisi dengan progam interpreter BASIC.
Bootsrap progam diperlukan pada waktu pertama kali sistem komputer
diaktifkan, yang proses ini sering kali diistilahkan sebagai booting yang dapat
berupa cold booting dan warm booting. Cold booting merupakan proses pengaktifan
sistem komputer pada saat pertama kali, untuk mengambil proses bootstrap progam
dari keadaan listrik komputer mati dengan cara menghidupkannya, sedangkan warm
botting merupakan proses pengulangan pengambilan bootstrap progam pada saat
komputer hidup dengan cara menekan beberapa tombol tertentu di keyboard seperti
(Ctrl + Alt + Del) yang ditekan secara bersamaan. Warm booting ini biasanya
dilakukan saat sistem komputer macet atau mengalami hangout.
Instruksi-instruksi yang disimpan di ROM disebut dengan microinstructions
atau microcode atau disebut juga dengan firmware, karena hardware dan software dijadikan
satu oleh pabrik pembuatnya. ROM itu sendiri adalah hardware sedang microinstructions
adalah software.
Isi dari ROM tidak boleh hilang atau rusak, bila terjadi demikian, maka
sistem komputer tidak akan berfungsi. Oleh karena itu, untuk mencegahnya,
pabrik komputer merancang ROM sedemikian rupa sehingga hanya bisa dibaca saja,
tidak dapat diisi oleh progammer supaya tidak terganti oleh isi yang lain yang
dapat menyebabkan isi ROM rusak.
2.3.
Cache
memory
Sebagai tambahan dari
register, beberapa CPU menggunakan suatu cache memory atau disebut dengan
scratch-pad memory atau high-speed buffer atau buffer memory dengan maksud
supaya kerja dari CPU lebih efesien dan
mengurangi waktu yang terbuang.
Tanpa cache memory, CPU akan menunggu data atau instruksi diterima dari main
memory atau menunggu hasil pengolahan selesai dikirim ke main memory baru
proses selanjutnya bisa dilakukan, padalah proses dari main memory lebih lambat
dibandingkan dengan kecepatan register. Cache memory diletakkan diantara CPU
dengan main memory.
Cache memory harus lebih cepat dari main
memory dan mempunyai ukuran yang cukup besar, tetapi tidak sebesar main memory. Sebenarnya cache memory tidak diperlukan bilamana main
memory dibuat secepat cache memory, tetapi cara demikian tidaklah ekonomis.
Cache
berasal dari kata cash yakni sebuah tempat menyembunyikan atau tempat
menyimpan sementara. Sesuai definisi tersebut Cache Memory adalah tempat
menyimpan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data
dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila
ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat
dilakukan lebih cepat. Cache memori ini terletak antara register dan memory
utama sehingga pemrosesan data tidak langsung mengacu pada memori utama.
Penggunaan
cache ditujukan untuk meminimalisir terjadinya bottleneck dalam aliran data
antara processor dan RAM. Sedangkan dalam terminologi software, istilah ini
merujuk pada tempat penyimpanan sementara untuk beberapa file yang sering
diakses (biasanya diterapkan dalam network).
Dengan cache memory, sejumlah blok informasi di main memory dipaindahkan ke
cache memory dan selanjutnya CPU akan berhubungan dengan cache memory.
1.
Jenis -
Jenis Cache Memory
L1
cache terintegrasi dengan chip prosesor, artinya letak L1 cache sudah menyatu
dengan chip prosesor (berada di dalam keping prosesor). Sedangkan letak L2
cache, ada yang menyatu dengan chip prosesor, ada pula yang terletak di luar
chip prosesor, yaitu di motherboard dekat dengan posisi dudukan prosesor. Pada
era prosesor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada di
luar chip prosesor. Chip cache terpisah dari prosesor, berdiri mandiri dekat
chip prosesor. Sejak era prosesor Intel Pentium, letak L2 cache ini sudah
terintegrasi dengan chip prosesor (menyatu dengan keping prosesor). Posisi L2
cache selalu terletak antara L1 cache dengan memori utama (RAM). Sedangkan L3
cache belum diimplementasikan secara umum pada semua jenis prosesor. Hanya
prosesor-prosesor tertentu yang memiliki L3 cache.
Cache
memory yang letaknya terpisah dengan prosesor disebut cache memory non
integrated atau diskrit (diskrit artinya putus atau terpisah). Cache memory
yang letaknya menyatu dengan prosesor disebut cache memory integrated, on-chip,
atau on-die (integrated artinya bersatu/menyatu/ tergabung, on-chip artinya ada
pada chip).
L1 cache (Level 1
cache) disebut pula dengan istilah primary cache, first cache, atau level one
cache. L2 cache disebut dengan istilah secondary cache, second level cache,
atau level two cache.
2. Kecepatan
cache memory ,
Transfer data dari L1 cache ke
prosesor terjadi paling cepat dibandingkan L2 cache maupun L3 cache (bila ada).
Kecepatannya mendekati kecepatan register. L1 cache ini dikunci pada kecepatan
yang sama pada prosesor. Secara fisik L1 cache tidak bisa dilihat dengan mata
telanjang. L1 cache adalah lokasi pertama yang diakses oleh prosesor ketika
mencari pasokan data. Kapasitas simpan datanya paling kecil, antara puluhan
hingga ribuan byte tergantung jenis prosesor. Pada beberapa jenis prosesor pentium
kapasitasnya 16 KB yang terbagi menjadi dua bagian, yaitu 8 KB untuk menyimpan
instruksi, dan 8 KB untuk menyimpan data.
Transfer
data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil
data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2
yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1
cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB,
512 KB, 1 MB, 2 MB, bahkan 8 MB,
tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar
lagi, bisa ratusan juta byte (ratusan mega byte).
Ketika data
dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta
address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache.
Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke
cache, tidak perlu lagi mencari di memori utama.
Jika
isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data
yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses
mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus
mencari data ke memori utama.
Secara
logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki
kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam
proses mengakses data.
Sebagai tambahan dari
register, beberapa CPU menggunakan suatu cache memory atau disebut dengan
scratch-pad memory atau high-speed buffer atau buffer memory dengan maksud
supaya kerja dari CPU lebih efesien dan
mengurangi waktu yang terbuang.
Tanpa cache memory, CPU akan menunggu data atau instruksi diterima dari main
memory atau menunggu hasil pengolahan selesai dikirim ke main memory baru
proses selanjutnya bisa dilakukan, padalah proses dari main memory lebih lambat
dibandingkan dengan kecepatan register. Cache memory diletakkan diantara CPU
dengan main memory.
3.
Fungsi Cache Memory
Cache memory harus lebih cepat dari main memory dan
mempunyai ukuran yang cukup besar, tetapi tidak sebesar main memory. Sebenarnya cache memory
tidak diperlukan bilamana main memory dibuat secepat cache memory, tetapi cara
demikian tidaklah ekonomis.
C.
Cara
Kerja Sistem Komputer
Sistem Komputer sekalipun
merupakan hasil tekhnologi tingkat tinggi yang canggih,pada dasarnya benda mati
yang tersusun atas rangkaian komponen elektronik
yang hanya akan mampu merima
masukan,memproses,dan menghasilkan keluaran berdasarkan intruksi-intruksi dalam
bentuk kode biner (0) nol dan (1) satu.Berdasarkan kombinasi digit 0 dan 1 itulah
komputer akan dapat berkerja.Setiap perintah yang dimasukkan ke komputer
melalui piranti masukan berupa papan ketik atau piranti masukan yang lain harus
dirubah menjadi kode biner.
Komputer bisa mengerti
tentang program yang ditulis menggunakan perangkat lunak bahasa pemograman
karena masing - masing perangkat lunak bahasa pemograman dilengkapin dengan
suatu penerjemah (compiler).
Compiler digunakan untuk
menerjemahkan program yang diuat dengan suatu bahasa pemograman tertentu
kedalam bahasa mesin dalam kode biner.Dengan bantuan penerjemahan tersebut,maka
perintah - perintah dalam program yang dibuat dengan bahasa pemograman dapat
dimengerti dan dilaksanakan oleh komputer.Proses penerjemahan program dalam
salah satu bahasa pemograman disebut sebagai proses komplikasi (compilation).
Penerjemah dapat dibedakan
menjadi 2 jenis,yaitu interpreter dan compiler.Fungsi dan tugas kedua jenis
penerjemahan tersebu adalah sama,yaitu mengubah program yang ditulis dalam
bahasa pemograman komputer ke dalam bahasa mesin.Tetapi secara prinsip kedua
jenis penerjemah tersebuh memiliki perbedaan.
Interpreter
akan
mengubah program sumber(source program) yang ditulis dalam bahasa pemograman
kedalam bahasa mesin selangkah demi selangkah dimulai pada baris paling awal
hingga garis paling akhir.
Compiler
akan
mengubah bahasa dalam program sumber (source program) yang ditulis dalam bahasa
pemograman kedalam bahasa mesin sekaligus secara keseluruhan mulai dari baris
awal hingga baris akhir.
Secara umum,proses
menjalankan suatu program yang ditulis dengan bahasa prmograman hingga
menghasilkan keluaran yang ditulis dengan bahasa pemograman hingga menghasilkan
keluaran sesuai yang di progamkan harus melalui tiga tahapan utama,yaitu
sebagai berikut
1 . Tahap kompilasi (Compilation)
Tahap
kompilasi merupakan proses menejermahkan program applikasi yang ditulis dalam
bahasa pemograman menjadi program dalam bahasa mesin yang disebut Object
Program.Program dalam bahasa mesin tersebut masih belum dijalankan/di eksekusi.
2 . Tahap penggabungan (link)
Tahap
penggabungan merupakan proses menggabungkan program bahasa mesin yang
dihasilkan pada tahap 1 dengan beberapa komponen lain yang diperlukan sehingga
menjadi program exe (executable machine) yang siap di eksekusi.
3 . Tahap Eksekusi (execution)
Tahap
eksekusi merupakan proses pelaksanan intruksi dalam program aplikasi yang
sesungguhnya.Dalam tahap ini data- data masukaan dibaca untuk di proses dan
akan memberikan hasil sesuai yang diinginkan sebagaimana tertulis dalam
programnya.
Setiap bahasa pemograman
dilengkapi dengan penerjemahan yang berbeda,bahkan untuk setiap versi yang
berbeda juga mempuyai compiler khusus yang berbeda dengan versi lain.Semakin
baru versi bahasa pemograman akan semakin banyak variasi perintah yang
dimiliki,namun tetap mempertahankan perintah dalam versi
sebelumnya.Akibatnya,suatu program aplikasi yang ditulis dalam versi yang awal
akan dapat diproses oleh compiler dalam versi yang lebih baru,namun tidak
demikian sebalikanya.
Intruksi yang dapat diproses
oleh CPU hanyalah intruksi dalam bentuk bahasa mesin/biner.Intruksi dan data
yang akan diproses oleh CPU diletakkan terlebih dahulu di main memory.Proses
ini bisa dilakukan dengan mengetikkan nama program pada prompt DOS,atau
meng-klik icon pada tampilan windows.
Tahap pertama,pemrosesan
suatu intruksi oleh CPU adalah pengambilan intruksi dari main menory ke CPU dan
akan diletakkan didalam register IR.Tahap ini disebut instruction fecth.Waktu
yang dibutuhkan untuk menyelesaikan tahap ini disebut waktu intruksi (instruction
time)
Selanjutnya,tahap kedua adalah melaksanakan
instruksi yang ada didalam IR register.Tahap ini disebut instruction
execute.Waktu yang dibutuhkan untuk menyelesaikan tahap kedua ini disebut waktu
eksekusi (execution time).Sedangkan total waktu yang dibutuhkan untuk tahap pertama dan kedua disebut waktu sikslus
( cycle time)
Kecepatan CPU di ukur
berdasarkan lamanya waktu yang dibutuhkan untuk melaksanakan satu siklus mesin
yang diukur dengan satuan Megahertz (Mhz).Ukuran 1 Mhz dimaksudkan bahwa komputer
dapat menyelesaikan 1 juta siklus per detik.Alat pengukur waktu dalam CPU
disebut Clock.Clock akan berdetak pada setiap siklus yang akan dilakukan.Untuk
CPU dengan kecepatan 16Mhz berarti memiliki clock akan berdetak sebanyak 16
juta kali pada setiap detiknya,Tekhnologi yang lebih baru akan memiliki
kecepatan proses dan clock yang semakin tinggi.