i
FMIPA UNNES
ARSITEKTUR
KOMPUTER
ii
Much Aziz Muslim Budi Prasetiyo
iii
ARSITE ARS ITEKTU KTUR R KOMPUT KO MPUTER ER Penulis
: Much Aziz Muslim Budi Prasetiyo
Edisi Pertama Cetaan Pertama! "#$% &a Ci'ta ( "#$% 'ada 'enulis
FMIPA UNNES Kampus Sekaran Gunungpati Semarang Telp.
: (024) 8508112
Fa x
: ( 024) 8508 112
Email
: mipaunnes. a! a!. i" i"
Muslim, Much Aziz; Prasetiyo Budi ARSITEKTUR KOMPUTER/Much Aziz Muslim; Budi Prasetiyo Edisi Pertama ! Semara"#; $MIPA U%%ES, &'() i* + (- hlm, ( .il 0 (1 * (- cm ISB%
0 -23'&('14'-)
( Kom5uter
I .udul
iv
KATA PENG PENGAN ANT TAR
P
uji syukur syukur penul penulis is panjat panjatkan kan ke hadira hadiratt Allah Allah SWT, SWT, karena karena berkat rahmat-Nya penulis bisa menyelesaikan buku yang berjudul Arsitektur Komputer. Komputer. Buku ini ditujukan bagi siapapun siapapun yang ingin mempelajari tentang arsitektur komputer dan seluk beluknya. Kami Kami mengu menguca capka pkan n terima terima kasih kasih kepada kepada semua semua pihak pihak yang yang telah telah membantu sehingga buku ini dapat diselesaikan. Buku ini masih jauh dari sempurna, oleh karena itu, kritik dan saran yang bersiat membangun sangat kami harapkan demi sempurnanya buku ini. Semo Semoga ga buku buku ini ini memb member erik ikan an ino inorm rmas asii bagi bagi masy masyar arak akat at dan dan bermanaat bermanaat untuk pengembangan !a!asan dan peningkatan ilmu pengetahuan bagi bagi kita semua.
Semarang, "ebruari #$%&
v
vi
DAFTAR ISI KATA PENGANTAR DAFTAR ISI
iii v
BAB 1 PENGENALAN SISTEM KOMPUTER ARSTEKTUR KOMPUTER BAHASA MESIN PERBENDAHARAAN INTRUKSI TRANSFER D ATA A RITMATIKA / LOGIKA K ONTROL D AMPAK P ERKEMBANGAN T EKNOLOGI I NFORMASI PENGUKURAN K INERJA K OMPUTER BAB 2 ARSITEKTUR SET INTRUKSI DAN DESAIN LOKASI M EMORI DAN O PERASI TEKNIK P ENGALAMATAN INTRUKSI
1 6 8 9 12 13 13 15 20
25 25 28 35
BAB 3 ASSEMBLY LANGUAGE PROGRAMMING
41
BAB 4 ALU ARITMATIC LOGIC UNIT
57
ALU A RITHEMTIC AND L OGIC U NIT ! K ON"ERSI B ILANGAN PROSES ALU PADA C PU BAB 5 PROCESSING UNIT DESIGN PERANGKAT P EMROSES CPU! U NIT K ENDALI C ONTROL U NIT ! A RITMETIC L OGIC U NIT ALU! K ONSTRUKSI ALU R EGISTER EKSEKUSI I NSTRUKSI D ATA P ATH vii
57 58 61
#5 65 66 68 71 73 79 80
BAB # DESAIN SISTEM MEMORI HIRARKI M EMORI
$3 84
BAB 7 DESAIN SISTEM MEMORY MEMORI U TAMA ALAMAT &ALAMAT M EMORI REGISTER ORGANISASI M EMORI RAM DAN ROM HIRARKI M EMORI BAB $ DESIGN DAN ORGANISASI INPUT&OUTPUT PENDAHULUAN MEMPROGRAMKAN I/O BUS INPUT&O UTPUT I NTERFACE BAB ' PIPELINING
1%3 103 106 107 108 108 115
11' 119 123 130 135
13'
KONSEP U MUM 139 DUA &T AHAP I NSTRUKSI P IPELINE 141 PIPELINE S TALL 145 INSTRUCTION LE"EL PARALLELISM 145 DASAR D ASAR P IPELINE P ADA P ROSESOR DL( 146 KLASIFIKASI H A)ARD D ATA 147 PENJAD*ALAN I NSTRUKSI UNTUK M ENCEGAH H A)ARD DATA 148 HA)ARD K ENDALI 150 BAB 1% REDUCED INSTRUCTIONS SET COMPUTER
153
PENDAHULUAN SEJARAH E"OLUTION CYCLE! RISC/CISC PRINSIP DARI D ESAIN RISC O"ERLAPPED DARI * INDO*S R EGISTER RISC "S CISC
153 154 156 160 161
viii
BAB 11 MULTIPROCESSOR PENGERTIAN M ULTIPROCESSOR JENIS & J ENIS M ULTIPROCESSING INTERKONEKSI J ARINGAN K EUNGGULAN M ULTIPROCESSOR Parallel Processing
1#' 169 171 178 181 182
DAFTAR PUSTAKA
1$3
TENTANG PENULIS
1$5
ix
x
BAB 1 PENGENALAN SISTEM KOMPUTER Komputer pertama adalah manusia Pada a!aln"a #omputer ele#troni# dan #omputer matematis pada masa a!al di$eri nama #omputer adalah
#arena
#omputer
di%una#an
untu#
men%er&a#an pe#er&aan manusia pada 'aman dulu( Komputer se$enarn"a adalah nama &a$atan pe#er&aan "an% se$a%ian $esar di la#u#an perempuan pada masa
itu
"a#ni
perhitun%an(
tu%asn"a
Perhitun%an
adalah
"an%
mela#u#an
dila#u#an
seperti
men%hitun% ta$el na)i%asi* men%hitun% peta om$a#* men%hitun% posisi
planet
"an%
di%una#an
untu#
menentu#an #alender astronomi( +am demi &am* hari demi hari tida# ada pe#er&aan lain selain men%hitun%( Lama lama mere#a merasa#an $osan* Ma#a dari itu selama
ratusan
men,ari
alat
tahun
untu#
para
ilmu!an
mem$antu
$erhitun%( 1
$erusaha
manusia
dalam
ABRA-US* $er.un%si
merupa#an
untu#
mela#u#an
alat
mem$antu
perhitun%an(
pertama
"an%
manusia Seoran%
dalam a$ra,us
pro.essional mampu men%hitun% pen¨ahan dan pen%uran%an sama ,epatn"a den%an #al#ulator pada 'aman
se#aran%*
tentun"a
untu#
per#alian
dan
pem$a%ian mem$utuh#an !a#tu "an% le$ih lama( A$a,us tertua di %una#an di Ba$"lonia pada tahun /00 SM( A$a,us
tertua
$er$entu#
me&a
den%an
,e#un%an "an% meman&an% "an% di dalam ,e#un%an terse$ut dileta##an $ola $ola #a"u untu# mem$antu pen%in%atan an%#a "an% sedan% dihitun%( A$a,us "an% le$ih silinder
modern men%%una#an
"an%
#e,il
$atan% $atan%
meman&an%
"an%
diisi#an
sema,am $ola den%an lu$an% diten%ahn"a( A$a,us modern ini merupa#an
alat
hitun%
"an%
$an"a#
di%una#an pada saat itu* mun%#in dulu !a#tu S masih
men%%%u#anan A$a,us
"an% di Indonesia
di#enal den%an nama 2Sempoa3( Kemudian pada tahun 1415 seoran% S#otlandia $ernama +ohn Napier menemu#an Lo%aritma* "a#ni te#nolo%i pem$a%ian
"an%
memun%#in#an
dila#u#an
se,ara
le$ih
per#alian
dan
mudah(
+ohn
Napier menemu#an ta$el ta$el alternati. lo%aritma den%an men,ipta#an $atan%6$atan% #a"u i)or" "an%
2
dipahat dan se#aran% dise$ut Napier Bones 7tulan%6 tulan% Napier8( Kemudian Gott.ired 9ilhelm Lei$ni' dari +erman menemu#an perhitun%an empat .un%si "an% dise$ut stepped re,#oner* empat .un%si terse$ut meliputi operasi pen¨ahan* pen%uran%an* per#alian dan pem$a%ian(
Pada
men%%una#an
drum
alatn"a
sendiri
serulin%
"an%
Gott.ired dilin%#ar#an
serulin% serulin% #e,il "an% men"erupai 10 ana# tan%%a( Pasa tahun 1:/4 seseoran% dari +erman $ernama
Kornad
;use
men,ipta#an
#al#ulator
me#anis "an% dise$ut ;1* pen,iptaan ;1 $ertu&uan untu# men,ari tero$osan te#nolo%i men%enai .loatin% point aritmati#a* pen"impanan dan ,ontrol unit * tetapi
#eti%a tero$osan itu tida# sepenuhn"a diterap#an di ;1* ;1 di%una#an untu# sensus di AS( A#hirn"a pada tahun 1:/: ;use men,ipta#an ;< "an% dapat di#endali#an oleh .i=ed point aritmati#a "an% se,ara penuh di#endali#an se,ara me#anis( Pen%em$an%an dari ;< "a#ni ;/ di ,ipta#an ;use pada tahun 1:>1* #omputer ini memili#i #onsep "an% sama den%an #omputer modern se#aran% seperti adan"a
.loatin%
point *
pen"impanan*
,ontrol
dan
input6output ( Ke#uran%an dari ;/ "aitu $elum $isa
men"impan
pro%ram
#e
dalam
memori
se,ara
$ersamaan dalam $entu# data* #arena #apasitas 3
pen"impanan pada ;/ han"a 4> #ata* hal ini san%at $erat apa$ila untu# men"impan pro%ram6pro%ram* man%#an"a
'use
men%%una#an
;/
han"a
untu#
men"impan an%#a dan nilai( Setelah pen,iptaan ;/* ;use men,ipta#an ;> di di)isi matemati#a terapan ;uri,h Institut ?ederal dan di%una#an disana sampai tahun 1:@@* ;> memili#i #apasitas pen"impanan 1( 0<> #ata dan tida# la%i men%%una#an .ilm melain#an sudah men%%una#an dis#et( Pada tahun 1:>> IBM $e#er&a sama den%an ar)ard Uni)ersit" den%an men,ipta#an #omputer Mar# I* Mar# I adalah #omputer pertama "an% di$uat di
Ameri#a
dan
tida#
sepenuhn"a
ele#troni#
melain#an di $uat dari sa#lar* rela"* $atan% $erputar* dan #oplin% serta men%%una#an #ertas $erlu$an%( Memili#i $erat @ ton* mem$utuh#an #a$el @00 mil* tin%%i #a#i* pan&an% @1 #a#i dan terdapat $atan% $erputar sepan&an% @0 #a#i "an% diputar oleh motor ele#tri# $erda"a @ tena%a #uda( Mar# I $er&alan 1@ tahun
tanpa
ruan%an
henti
dan
"an% dipenuhi
$er$un"i
seperti
se$uah
oleh oran% "an% sedan%
men&ahit( Salah satu pro%rammer perempuan utama Mar# I Gra,e opper menemu#an 2 $u% 3 pertama( Pada dasarn"a #ata 2 $u% 3 pada #omputer merupa#an #e&adian "an% menimpa Mar# I "an% pada saat itu ada n%en%at "an% masu# pada salah satu pem$a,a pita 4
#ertas
"an%
#emudian
men%%an%%u
pem$a,aan
lu$an% di pita #ertas* dan se&a# itu #ata 2 $u% 3 men&adi istilah untu# ter&adin"a suatu #esalahan semen&a# tahun 1:( Tahun 1:@@ IBM men,ipta#an Stret,h den%an u#uran // #a#i "an% $erisi 1@0( 000 transistor( U#uran ini
&auh
le$ih
#e,il
&i#a
di$andin%#an
den%an
pendahulun"a "aitu ta$un% hampa( Untu# penelitian di
la$oratorium
atom(
Tahun
1:>/61:>@
+ohn
Mau,hl" dan +( Prespert E,#ert mem$uat Ele,troni, Numeri,al Inte%rator and -al,ulator 7ENIA- 8( ENIA-
mempun"ai le$ar <0 = >0 #a#i* $eratn"a /0 ton dan men%%una#an
1(
000
ta$un%
hampa
dan
men%%una#an pita #ertas sama seperti Mar# I* dan men%hasil#an
da"a
15>*000
!att
"an%
$erarti
mem$utuh#an sistem pendin%in udara "an% #uat( ENIA-
sendiri
$ah#an tida#
men%%una#an
nama
2#omputer3 di#arena#an pada 'aman dulu istilah 2#omputer3 merupa#an manusia( ENIA- di pro%ram ulan%* men%apa ENIA- perlu dipro%ram ulan% Karena satu masalah n"a adalah ENIA- men%%una#an ta$un% hampa "an% tida# e.e#ti.* oleh #arena itu ENIA- mem$utuh#an desain "an% dapat menampun% 1( 000 ta$un% "an% $e#er&a se,ara serenta#( +( Prespert E,#ert a#hirn"a menemu#an solusi den%an mem$uat desain
sir#uit(
en%an
adan"a 5
desain
sir#uit
per#a$elan "an% di$uat E,#ert dan dihilan%#ann"a $a%ian $er%era# "an% dulun"a men&adi pen%%era# ta$un%
men&adi#an
ENIA-
$er&alan
le$ih
,epat*
per#alian di Mar# I memerlu#an !a#tu 4 deti#* sedan%#an di ENIA- han"a mem$utuh#an !a#tu 1C <* ri$u deti#( Mempro%ram ulan%
ENIA- $erarti
men%u$ah desain dan sir#uit6sir#uit "an% ada di ENIA- "an% tentun"a a#an mema#an !a#tu selama
$erhari6hari* oleh #arena itu E,#ert dan Mau,l" $e#er&a
sama
Neumann
den%an
untu#
matemati#a!an
mendesain
ulan%
+ohn
ENIA-
Don "an%
$ernama EDA-( EDA- di pu$li#asi#an pada tahun 1:>5(
iran,an%
untu#
memenuhi
#e$utuhan
di
la$oratorium $alisti# mili# departemen pertahanan ameri#a seri#at( Apli#asi "an% dapat di hasil#an adalah perhitun%an $esar sudut rudal* sehin%%a rudal tepat men%enai sasaran( +ohn Don Neumann seseoran% "an% &enius "an% pada usia tahun dapat men%er&a#an soal #al#ulus( Bisa men,erita#an $u#u "an% pernah di$a,an"a $ertahun
tahun
#ata
demi
#ata(
an
dia
$isa
mem$a,a se$uah halaman di $u#u telepon dan men%in%atn"a
se,ara
mundur(
Pada
suatu
#esempatan Neumann mem$utuh#an !a#tu selama 4 menit
untu#
men"elesai#an
masalah
"an%
diselesai#an pro.essor selama $er&am &am den%an 6
men%%una#an
#al#ulator
me#anis(
an
Neumann
adalah seseoran% "an% mampu men%er&a#an metode rumit untun# memati#an se$uah $om atom( Setelah ENIA- dan EDA- datan% #omputer #omputer lain seperti ILLIA-* +ONIA-* MANIA-( E,#ert
dan
Mau,l"
#emudian
menin%%al#an
Uni)ersitas Penns"l)ania setelah mun,ul #era%uan men%enai siapa "an% a#an memili#i ha# paten atas penemuan
mere#a(
perusahann"a
A#hirn"a
sendiri
dan
mere#a
mendiri#an
memasar#an
produ#
pertaman"a "an% $ernama UNIDA- pada tahun 1:@1 6 1:@( UNIDA- merupa#an #omputer "an% diprodu#si masssal den%an pem$uatan >4 $uah* untu# di$u#a untu# $e$erapa #epentin%an* seperti $iro sensus Ameri#a*
#epentin%an
uni)ersitas
Ne!
or#*
perusahaan asuransi* a#an tetetapi setelah 1:@ E,#ert dan Mau,l" tida# dapat #euntun%an dari pemasaran UNIDA- dan a#hirn"a $an%#rut* Kemudian IBM "an% men%i#uti &e&a# E,#ert dan Mau,l" dalam pemasaran #omputer den%an melun,ur#an RAMA-* pada RAMA- terdapat -PU* -ard reader* dan printer( IBM le$ih dominan dalam pemasaran #omputer( Pada perusahaan ra#sasa seperti IBM $elum puas den%an hasil "an% di dapat( Oleh #arena itu IBM $e#er&asama .irma "an% saat itu $elum ter#enal 7
tetapi memili#i a%resi.itas "an% tin%%i "an% mana nama .irma terse$ut adalah Mi,roso.t "an% didiri#an oleh Bill Gates dan Paul Allen "an% men"edia#an so.t!are untu# P-( en%an $antuan #er&asama dari
IBM* Mi,roso.t mele&it mele$ihi IBM hin%%a tahun <000* dan dan mendapat#an #euntun%an dua #ali lipat di$andin%#an den%an pen%hasilan IBM itu sendiri( Sa"an%n"a hu$un%an #er&asama IBM dan Mi,roso.t $era#hir pada tahun 1::1( INTEL* lahir pada tahun 1:4 "an% pada a!aln"a han"a mem$uat memor" semi#ondu#tor( Pada tahun 1:4: Intel di de#ati oleh perusahaan +epan% $ernama Busi,om "an% memasar#an #al#ulator $er#e,epatan tin%%i( Busi,om in%in Intel mem$uat 1< ,hip untu# #al#ulatorn"a( Satu ,hip untu# men%endali#an input dan satu ,hip di%una#an untu# desain tampilan #al#ulator(
Setelah
Busi,om
mau
mem$ia"ai
pem$uatan ,hip terse$ut tern"ata mema#an !a#tu "an% le$ih lama dari per#iraan* a#hirn"a Busi,om men%undur#an diri dari #er&asaman"a $ersama Intel dan Intelpun mem$a"ar seluruh pem$uatan "an% a!aln"a didanai oleh Busi,om( Intel $erasumsi $ah!a ada sesuatu "an% menari# dari ,hip "an% di$uatn"a( Ini
#emudian
men&adi
Intel
>00>*
mi#roprosesor
pertama 7uP8( Intel >00> terdiri dari 00 transistor dan mempun"ai ,lo,# speed 10 #' 710*000 #ali per 8
deti#8( Anehn"a* Busi,om $an%#rut dan tida# pernah men%%una#an mi#roprosesor "an% men%he$oh#an ini( Intel melan&ut#an >00> den%an 00 dan 00( Intel men&ual uP 00 den%an #emampuan dua #ali dari
>00>(
00
#omputer MITS
pertama
Altair*
"an%
#ali
dipasan%
men&adi
di
#omputer
personal 7P-8 pertama di dunia( Itu meman% men&adi $etul6$etul personal #arena harus mera#itn"a sendiri( A#hirn"a
pen,iptaan
mi,ropro,essor
melahir#an
e)olusi dari mi,ro,omputer * dimana $entu# "an% #emudian men&adi #omputer pri$adi atau personal #omputer seperti "an% #ita %una#an se#aran% ini(
1(1( Arsite#tur #omputer Ran%#aian ele#troni# dalam se$uah #omputer "an%
mela#sana#an
$er$a%ai
operasi
7seperti
misaln"a pen¨ahan dan pen%uran%an8 pada data tida# tersam$un% se,ara lan%sun% den%an sel6sel pen"impanan data "an% ada dalam memori utama mesin #omputer( Se$ali#n"a* ran%#aian ini terisolasi dalam
salah
satu
$a%ian
dalam
#omputer
"an%
dise$ut unit pen%olahan pusat 7 -entral Pro,essin% Unit 8* atau -PU( Unit ini terdiri dari dua $a%ianF unit
aritmati#aClo%i#a* "an% $erisi ran%#aian ele#troni#a "an% mela#sana#an manipulasi data* dan unit ,ontrol*
9
"an% memuat ran%#aian "an% men%#oordinasi#an $er$a%ai a#ti)itas mesin( Untu# men"impan in.ormasi se,ara sementara* -PU $erisi sel6sel atau re%ister* "an% mirip den%an sel sel
memori
utama(
Re%ister6re%ister
ini
dapat
di#elompo##an se$a%ai re%ister ser$a%una 7 %eneral purpose
re%ister 8
atau
re%ister
#husus
7 spe,ial
purpose re%ister 8(
Re%ister ser$a%una $erperan se$a%ai tempat pen"impanan data sementara $a%i data "an% sedan% dimanipulasi
oleh
-PU(
Re%ister6
re%ister
ini
menampun% input "an% a#an di$eri#an #epada unit aritmati#aClo%i#a
dan
men"edia#an
ruan%
pen"impanan $a%i hasil6hasil operasi unit terse$ut( Untu#
mela#sana#an
operasi
pada
data
"an%
tersimpan dalam memori utama* adalah men&adi tan%%un% &a!a$ unit ,ontrol untu# memindah#an data dari
memori
#e
mem$eritahu#an
re%ister
#epada
ser$a%una*
unit
untu#
aritmati#aClo%i#a
re%ister re%ister mana sa&a "an% $erisi data* untu# men%a#ti.#an ran%#aian6ran%#aian "an% sesuai di dalam
unit
aritmati#aC
men%in.ormasi#an
#epada
lo%i#a* unit
dan
untu#
aritmati#aClo%i#a
re%ister mana "an% harus menerima hasil operasi data( Untu# tu&uan pemindahan pola pola $it* -PU dan
memori
mesin
utama 10
mesin
#omputer
disam$un%#an pada se#umpulan &alur data ele#tronis "an%
dise$ut
$us(
Melalui
$us
ini*
-PU
dapat
men%am$il* atau mem$a,a data dari memori utama den%an &alan mem$eri#an alamat sel memori "an% rele)an den%an se$uah sin"al $a,a( en%an ,ara "an% sama* -PU dapat meleta##an* atau menulis data #e memori utama den%an men%irim#an alamat sel "an% ditu&u dan data "an% a#an disimpan $eserta se$uah sin"al tulis( Komputer#omputer
a!al
tida#
memili#i
.le#si$ilitas "an% tin%%i* lan%#ahlan%#ah
operasi
dila#sana#an oleh masin% masin% peran%#at dalam #omputer di$uat men"atu se,ara permanen di dalam ,ontrol se$a%ai
unit
sema,am
ini
dapat
$a%ian
dari
mesin(
Sistem
dianalo%i#an den%an se$uah
#ota# musi# "an% selalu memain#an la%u "an% sama* sementara se$uah
"an% -
di$utuh#an ,han%er (
adalah Untu#
.le#si$ilitas memperoleh
.le#si$ilitas"an% le$ih tin%%i* $e$erapa ele#troni# a!al
diran,an%
sedemi#ian
rupa
sehin%%a
unit
#ontroln"a dapat den%an mudah dilepas sam$un%#an( ?le#si$ilitas ini diperoleh den%an menerap#an sistem pe%6$oard "an% mirip den%an papan s!it,hin% telepon
lama* dimana u&un% 6 u&un% #a!at &umper ditan,ap#an #e dalam lu$an%6lu$an%( Se$uah tro$osan 7dinisa$ah#an* se,ara tida# tepat
#epada
+ohn
Don 11
Neumann8
mun,ul
dari
%a%asan $ah!a suatu pro%ram* se$a%aimana haln"a data* dapat di#ode#an dan dapat disimpan dalam memori utama( Apa$ila unit #ontrol dapat di ran,an% untu#
men%am$il
pro%ram
mener&emah#an
dari
memori*
intru#si6intru#si*
dan
men%e#se#usin"a* se$uah pro%ram #omputer dapat diu$ah6u$ah den%an han"a men%u$ah isi memori #etim$an% harus melepas6sam$un%#an unit #ontrol(
1(<( BAASA MESIN Untu# menerap#an #onsep pro%ram tersimpan* -PU
diran,an%
untu#
men%enali
intru#si
"an%
di#ode#an se$a%ai pola6pola $it( Kumpulan intru#si ini $ersama
den%an
sistem
pen%#odeann"a
dise$ut
$ahasa mesin( Se$uah intru#si "an% die#spresi#an dalam $ahasa ini dise$ut intru#si le)el mesin atau intru#si mesin(
1(/( PERBENAARAAN INTRUKSI Se$enarn"a $ah!a ¨ah intru#si mesin "an% harus dapat diter&emah#an dan die#se#usi oleh -PU "an% tipi#al tida#lah $an"a#( Pada #en"ataann"a* salah satu aspe# "an%
men%a%um#an
dari ilmu
#omputer adalah apa$ila se$uah mesin telah mampu mela#sana#an
tu%as
tu%as 12
dasar
"an%
sesuai*
penam$ahan
.itur6.itur
lainn"a
tida#
a#an
menin%#at#an #emampuan teoritis mesin terse$ut( en%an #ata lain* diluar $atasan6$atasan tertentu* .itur6.itur tam$ahan dapat menin%#at#an #en"amanan dan #emudahan $a%i pen%%una tetetapi sama se#ali tida#
menam$ah#an
sesuatu
apapun
#epada
dua
pende#atan
#emampuan dasar mesin( Kemudian peren,anaan men"ata#an
lahirlah desain
$ah!a
-PU( -PU
Pende#atan
harus
pada
pertama
diran,an%
untu#
men%e#se#usi set intru#si mesin seminimal mun%#in( Pende#atan
ini
men%hasil#an
apa
"an%
dise$ut
se$a%aiF redu,ed intru,tion set ,omputer 7#omputer den%an
set intru#si "an% teredu#si 8 7RIS-88 atau HKomputasi set instru#si "an% disederhana#anH( RIS- pertama #ali di%a%as oleh +ohn -o,#e* peneliti dari IBM di or#to!n*
Ne!
or#
pada
mem$u#ti#an $ah!a se#itar
tahun <0
1:5>
saat
instru#si
ia
pada
se$uah prosesor tern"ata menan%ani se#itar 0 dari #eseluruhan
#er&an"a(
Komputer
pertama
"an%
men%%una#an #onsep RIS- ini adalah IBM P-CJT pada era
1:06an(
Istilah
RIS-
sendiri
pertama
#ali
dipopuler#an oleh a)id Patterson* pen%a&ar pada Uni)ersit" o. -ali.ornia di Ber#el"(
13
RIS- merupa#an se$uah arsite#tur #omputer atau arsite#tur #omputasi modern den%an instru#si6 instru#si dan &enis e#se#usi "an% palin% sederhana( Arsite#tur #iner&a
ini
di%una#an
tin%%i*
seperti
pada
#omputer
#omputer
den%an
)e#tor(
Selain
di%una#an dalam #omputer )e#tor* desain ini &u%a diimplementasi#an seperti
pada
pada
prosesor
$e$erapa
#omputer
mi#roprosesor
Intel
lain* :40*
Itanium 7IA4>8 dari Intel -orporation* Alpha AJP dari E-* R>=00 dari MIPS -orporation* Po!erP- dan Arsite#tur
PO9ER
dari
International
Business
Ma,hine( -iri6,iriF 1( Instru#si $eru#uran tun%%al <( U#uran "an% umum adalah > $"te /( +umlah pen%alamatan data sedi#it* $iasan"a #uran% dari @ $uah( Ar%umentasi
"an%
mendu#un%
arsite#
RIS-
adalah $ah!a mesin6mesin seperti ini ,epat dan e.esien( i sisi "an% $erla!anan* piha#6piha# lain men"ata#an
ar%umentasi
"an%
mendu#un%
-PU
den%an #emampuan untu# men%e#se#usi se¨ah $esar intru#si "an% #omple#s* se#alipun intru#si6 intru#si terse$ut se,ara te#nis selalu $erle$ihan( asil dari pende#atan sema,am ini di#enal se$a%ai ,omple= intru,tion set ,omputer 7#omputer de$%a$ 14
set
intru#si
len%#ap8
7-IS-8(
-IS-
merupa#an
#epan&an%an dari -omple= Instru,tion Set -omputin% atau
-omple=
Instru,tion
Set -omputer 7-IS-
HKumpulan instru#si #omputasi #omple#sH8 adalah se$uah arsite#tur dari set instru#si dimana setiap instru#si a#an men&alan#an $e$erapa operasi tin%#at rendah* seperti pen%am$ilan dari memor"* operasi aritmeti#a* dan
pen"impanan #e dalam
memor"*
semuan"a se#ali%us han"a di dalam se$uah instru#si( -iri6,iri 1( +umlah instru#si $an"a# <( Ban"a# terdapat perintah $ahasa mesin /( Instru#si le$ih #omple#s
Se$elum proses RIS- didesain untu# pertama #alin"a*
$an"a#
arsite#
#omputer
men,o$a
men&em$atani ,elah semanti#* "aitu $a%aimana ,ara untu#
mem$uat
set6set
mempermudah
pemro%raman
men"edia#an
instru#si
instru#si le)el
Hle)el
peman%%ilan
pro,edure* proses
mode6mode
pen%alamatan
untu#
tin%%i
den%an
tin%%iH
seperti
pen%ulan%an
#omple#s
dan
sehin%%a
stru#tur data dan a#ses arra" dapat di#om$inasi#an den%an se$uah instru#si( Kara#teristi# -IS- "% Hsarat in.ormasiH
ini
mem$eri#an 15
#euntun%an
di
mana
u#uran
pro%ram6pro%ram
"an%
dihasil#an
a#an
men&adi relati. le$ih #e,il* dan pen%%unaan memor" a#an sema#in $er#uran%( Karena -IS- inilah $ia"a pem$uatan #omputer pada saat itu 7tahun 1:408 men&adi &auh le$ih hemat( Ar%umentasi "an% mendu#un% arsite#tur -ISadalah $ah!a -PU "an% le$ih #omple#s &u%a le$ih mudah untu# dipro%ram #arena satu intru#si sa&a sudah ,u#up untu# men"elesai#an se$uah pe#er&aan "an% mem$utuh#an ran%#ain $e$erapa intru#si dalam arsite#tur RIS-( Pro,essor RIS- ataupun -IS- telah tersedia se,ara #omersil( Pro,essor6pro,essor seri Pentium* "an% di#em$an%#an oleh Intel* merupa#an ,ontoh arsite# dari -IS-* pro,essor seri Po!erP-* "an% di#em$an%#an
oleh
Apple
-omputer*
IBM*
dan
Motorola* merup#an ,ontoh dari arsite#tur dari RIS-( Untu# dalam
mem$ahas
per$endaharaan
intru#si6intru#si mesin
"an%
#omputer*
ada
adalah
san%at mem$antu apa$ila #ita memahami $ah!a intru#si6intru#si
terse$ut
dapat
di#elompo##an
didalam ti%a #ata%oriF 1(
Kelompo# pemindahan data(
<(
Kelompo# aritmati#aClo%i#a(
/(
Kelompo# ,ontrol( 16
1(>( Trans.er ata Kelompo# pertama terdiri dari intru#si6intru#si untu# memerintah#an pemindahan data dari satu lo#asi #e lo#asi lainn"a( Misaln"aF Lan%#ah 1( Am$il salah satu nilai "an% a#an di¨ah#an dari memori dan leta##an dalam se$uah re%ister( Lan%#ah <( Am$il nilai lainn"a "an% a#an di ¨ah#an dari memori dan leta##an dalam re%ister "an% $er$eda( Lan%#ah /( Simpan hasil pen¨ahan dalam memori( Proses e#se#usi intru#si pemindahan data le$ih men"erupai
proses
pen"alinan
data
terse$ut
#etim$an% memindah#ann"a( Salah satu #umpulan intru#si "an% pentin% dalam #ata%ori trans.er terdiri dari perintah6perintah untu# $er#omuni#asi den%an peran%#at6peran%#at
diluar
#onte#s
-PU
memori
utama 7printer* #e"$oard* monitor* dis#* dri)e* ds$(8 #arena
intru#si6intru#si
ini
menan%ani
a#ti)itas6
a#ti)itas input C output 7ICO8 mesin #omputer* intru#si6 intru#si ini dise$ut intru#si ICO(
17
1(@( Aritmati#a C lo%i#a Kelompo# aritmati#aClo%i#a terdiri dari intru#si6 intru#si "an% mem$eritahu#an #epada unit #ontrol untu#
memerintah#an
a#ti)itas
dalam
aritmati#aClo%i#a operasi
diluar
unit
dila#sana#ann"a
aritmati#aClo%i#a(
mampu
mela#sana#an
operasi6operasi
suatu
an
unit
$er$a%ai
aritmati#a
dasar*
misaln"a operasi6operasi lo%i#a AN* OR* dan JOR(
1(4( Kontrol Kelompo# ,ontrol terdiri dari intru#si6intru#si "an%
men%arah#an
pen%e#se#usian
$u#ann"a manipulasi data(
18
pro%ram
dan
1(5( Per#em$an%an Te#nolo%i In.ormasi Per#em$an%an san%at
pesat
te#nolo%i
hin%%a
telah
se#aran%(
$er#em$an%
ulun"a
$an"a#
daerah6daerah terpen,il "an% tida# ter&amah oleh te#nolo%i*
#ini
dapat
merasa#an
&u%a
te#nolo%i
in.ormasi "an% $eredar saat ini( Kini #ita dapat meni#mati te#nolo%i in.ormasi dimana sa&a "an% #ita mau( Te#nolo%i
In.ormasi
se$enarn"a
sudah
hadir
se&a# dahulu( ulu manusia men,ipta#an te#nolo%i #arena doron%an a#an hidup le$ih $ai#( Sehin%%a mendoron% manusia untu# mem$uat se$uah te#nolo%i "an% dapat mem$antu mere#a dalam hal pe#er&aan( Sehin%%a mun,uln"a te#nolo%i hin%%a se#aran%( Saat ini Te#nolo%i in.ormasi masih $er#em$an% pesat
di
se%ala
aspe#
#ehidupan(
ari
"an%
sederhana* hin%%a "an% muta#hir( i $er$a%ai ne%ara ma&u dan $er#em$an%* hadir te#nolo%i6te#nolo%i $aru "an% dapat mem$antu #ita dalam hal per#er&aan( Per#em$an%an Te#nolo%i In.ormasi Saat Ini ulu manusia telah men%enal "an% naman"a te#nolo%i( Namun tentun"a te#nolo%i dahulu &auh $er$eda den%an te#nolo%i "an% saat ini( -ontohn"a 19
sa&a mesin ti#* dulun"a mesin ini di%una#an oran%6 oran%
untu#
mem$uat
do#umen(
Namun
#arena
adan"a te#nolo%i* sehin%%a mema#sa mesin ti# untu# men"udahi &amann"a dan di%anti#an den%an adan"a #omputer "an% le$ih e.isien( Selain itu* dulun"a manusia pernah men%#onsep se$uah ide atau ima&inasi( Namun #arena #uran%n"a te#nolo%i "an% ada pada &aman itu* a#hirn"a #onsep itu ta# terla#sana( -ontohn"a sa&a* pada &aman dahulu manusia mem$uat #onsep a%ar oran% "an% $erada di tempat "an% $er&auhan* dapat merapat#an sesuatu atau $ertemu( Namun #arena dulun"a tida# ada Te#nolo%i "an% seperti itu* ma#a hin%%a dia menin%%al* #onsep terse$ut $elum terla#sana( Namun #arena &aman se#aran% sudah ada te#nolo%i "an% seperti itu* sehin%%a se#aran% ada te#nolo%i "an% men"erupai #onsep terse$ut( apat
disimpul#an
$ah!a
Per#em$an%an
te#nolo%i in.ormasi pada saat ini ma&u san%at pesat dari
a$ad
#e
1:*
menu&u
a$ad
#e
<0(
apat
dipredi#si#an $ah!a a$ad #e <1 a#an mempun"ai per#em$an%an te#nolo%i "an% le$ih muta#hir "an% a#an le$ih $erman.aat $a%i manusia(
20
1(( ampa# Per#em$an%an Te#nolo%i In.ormasi en%an
hadirn"a
per#em$an%an
Te#nolo%i
In.ormasi ini* tentun"a semua .a#tor memili#i dampa# positi.
dan
#ehidupan
ne%ati. #ita(
"an%
$isa
Kema&uan
$erdampa# te#nolo%i
dalam
tele)isi*
andphone* internet dapat $erdampa# san%at $esar $a%i #ehidupan #ita( ampa# Positi. Per#em$an%an Te#nolo%i In.ormasiF 1( apat Men&an%#au Le$ih +auh en%an adan"a internet* #ita dapat men&an%#au le$ih &auh di semua $elahan dunia( -ontohn"a sa&a #ita $er&ualan*
#ita
dapat
men&an%#au
seluruh
Indonesia* atau $ah#an man,ane%ara untu# memper&ual$eli#an produ# #ita( <( Menemu#an
Le$ih
-epat
alam
dunia
pendidi#an tentun"a #ita tida# dapat han"a men%andal#an %uru sa&a( Oleh #arena itu* #ita dapat meman.aat#an internet untu# men,ari hal
apapun
"an%
$erhu$un%an
den%an
pendidi#an( Selain itu* pen%a&ar &u%a dapat menerap#an #onsep $ela&ar "an% #reati. dan atra#ti.( 21
ampa# Ne%ati. Per#em$an%an Te#nolo%i In.ormasiF 1( Mudahn"a
a#ses
porno%ra.i
tida#
dapat
dipun%#iri* den%an $e$asn"a a#ses internet se#aran%(
apat
memudah#an
ter&adin"a
porno%ra.i( Seperti a#ses )ideo porno* &ual $eli .ilm porno* hin%%a ter&adin"a a#si porno( Ini "an% masih men&adi PR pemerintah untu# men%henti#an porno%ra.i ini( <( Men&adi#an Malas Adalah satu dampa# "an% palin% $esar dalam dunia pendidi#an adalah men&adi#an pela&ar malas untu# men%er&a#an tu%as( Karena den%an adan"a internet* pela&ar a#an diman&a#an den%an #omputer( Pela&ar a#an
le$ih
senan%
di
depan
#omputer*
daripada men%er&a#an tu%as mere#a( -ontoh per#em$an%an te#nolo%iF 1(
Peneliti
Te#nolo%i
untu#
Ameri#a
in%in
Men%hilan%#an
Kem$an%#an Manusia
dari
Pandan%an N"amu#
Para peneliti "an% turut dalam pertemuan #omunitas
Ameri,an
-hemi,al
So,iet"
in%in
men%em$an%#an te#nolo%i $aru untu# melindun%i manusia dari %i%itan n"amu#( Te#nolo%i terse$ut dima#sud#an
a%ar
para n"amu# ta# 22
mampu
mendete#si #e$eradaan manusia "an% ada di de#atn"a(
Gam$ar ( 1 Salah
satu
peneliti
Ameri,an
-hemi,al
So,iet"* Ulri,h Bernier men%ata#an $ah!a mere#a in%in men%em$an%#an pende#atan "an% $er$eda den%an
men%%una#an
men%hilan%#an
$ahan
#emampuan
"an%
pen,iuman
dapat dari
n"amu#( en%an $e%itu* n"amu# tida# a#an mampu mendete#si #e$eradaan manusia di de#atn"a( Para
peneliti
men%ata#an
$ah!a
untu#
mem$lo#ir #emampuan pen,iuman dari n"amu# tida# terlalu sulit( itam$ah* $e$erapa sen"a!a #imia "an% se,ara alami ada di #ulit manusia tern"ata san%at e.e#ti. men%usir n"amu# tanpa 23
memun,ul#an $au( Sen"a!a itu $iasan"a dise$ut inhi$itor( Mes#ipun $e%itu* para peneliti tetap memili#i permasalahan
dalam
meman.aat#an
inhi$itor
terse$ut( al ini #arena #e$eradaan su$stansi terse$ut $iasan"a di$aren%i den%an 'at lain "an% menari# perhatian n"amu#( an untu# mela#u#an hal terse$ut* #ini mere#a pun $erusaha untu# memisah#an 'at inhi$itor dan 'at "an% menari# para n"amu# terse$ut( <( Topen%
Mahasis!a "an%
Bisa
In%%ris
Berhasil
Mem$eri#an
-ipta#an
Kemampuan
seperti Super ero Men&adi seoran% pahla!an super tentun"a $an"a# diimpi#an oleh ana#6ana# dan mun%#in oran%
de!asa(
an
den%an
mema#ai
se$uah
topen% "an% di#em$an%#an oleh para mahasis!a Ro"al -olle%e o. Art di London* In%%ris* hal terse$ut $isa di!u&ud#an(
24
Gam$ar ( < Terdapat #em$an%#an*
dua di
$uah mana
topen%
"an%
mere#a
masin%6masin%
topen%
menutupi $e$erapa $a%ian !a&ah dan memili#i .un%si tertentu( Topen% pertama menutupi $a%ian telin%a* mulut dan hidun%( Topen% ini $er.un%si a%ar pen%%unan"a $isa memperoleh #emampuan menden%ar mele$ihi manusia $iasa( Sementara itu topen% #edua "an% di%una#an pada mata $isa di%una#an untu# men%am$il )ideo "an%
selan&utn"a
Selan&utn"a*
$isa
data
)ideo
di#irim
#e
terse$ut
#omputer( pun
$isa
mem$eri#an #e%unaan se,ara real time #epada pema#ain"a( Para mahasis!a ini $ertu&uan a%ar topen% ini $isa
dipa#ai
seoran%
atlet(
untu#
men%analisis
Selain 25
itu*
per%era#an
den%an
topen%
$er#emampuan penden%aran super* pen%%unan"a pun $isa menden%ar#an suara tertentu mes#ipun dalam lin%#un%an "an% $isin%( /(
In&e#si Ota# Manusia pada Ti#us Ter$u#ti
Men%hasil#an Penin%#atan Intele&ensi Ba%aimana &adin"a &i#a ada see#or ti#us "an% mempun"ai tin%#at #epintaran ta# #alah den%an manusia i .ilm #e&adian seperti ini meman% sudah
serin%
di%am$ar#an(
Namun
#alau hal ini ter&adi di #e&adian n"ata
Gam$ar ( /
26
$a%aimana
al inilah "an% $aru sa&a dila#u#an oleh para peneliti
dari
Uni)ersit"
o.
Ro,hester
Medi,al
-enter( Mere#a pun $erusaha men,ipta#an see#or ti#us "an% memili#i tin%#at #epintaran di atas rata6 rata( Se$a%ai lan%#ah untu# men,ipta#an ti#us pintar terse$ut* mere#a pun men%in&e#si#an $a%ian sel ota# manusia $ernama astrosit( an $er#at in&e#si
terse$ut*
ti#us
"an%
di&adi#an
$ahan
per,o$aan pun memili#i #emampuan untu# $ela&ar( Se$a%ai ,ontoh* para peneliti pun men,o$a untu#
mem$andin%#an
ti#us
pintar
terse$ut
den%an ti#us $iasa untu# mele!ati se$uah la$irin( asiln"a* ti#us pintar le$ih ,epat men"elesai#an la$irin di$andin%#an ti#us $iasa( -ontoh
diatas
adalah
se$a%ian
,ontoh
per#em$an%an te#nolo%i saat ini( an apa$ila in%in ,ontoh "an% le$ih dapat di#un&un%i di httpFCC!!!( $eritate#nolo%i(
,omCtentan%Cper#em$an%an6
te#nolo%iC
Pen%u#uran Kiner&a Komputer Terdapat
dua
,ara
untu#
men%u#ur
#iner&a
#omputer( Pertama* men%%una#an parameter sistem 27
itu sendiri misaln"a la&u deta# prosesor atau ¨ah instru#si "an% dapat diproses tiap satuan !a#tu( +umlah instru#si "an% diproses dalam satuan !a#tu tertentu die#spresi#an dalam satuan MIPS 7millions instru,tion per se,ond8( Prosesor $erarsite#tur RIS-* memerlu#an men&alan#an
le$ih suatu
$an"a# tu%as
instru#si 7tas#8
untu# tertentu
di$andin%#an den%an prosesor $erasite#tur -IS-( en%an u#uran MIPS* prosesor RIS- a#an $e#er&a &auh le$ih ,epat di$andin% prosesor -IS-( -ara #edua adalah den%an men%%una#an $en,hmar# sintetis( 9hetstone dan hr"stone merupa#an ,ontoh $en,hmar# sintetis "an% $an"a# di%una#an untu# men%u#ur #iner&a #omputer( Pen%u#uran den%an $en,hmar# sintetis terdapat dua #elemahan( Selain #era%uan apa#ah pro%ram "an% disusun $enar6$enar me!a#ili pro%ram apli#asi "an% se$enarn"a* #era%uan hasil pen%u#uran &u%a dise$a$#an oleh mudahn"a te#ni# pen%u#uran ini dimanipulasi den%an mela#u#an optimisasi #ompilator 7Sharp dan Ba,on* 1::>F4@8( Untu# mendapat#an tolo#6u#ur $a#u a%ar dapat mem$andin%#an #iner&a $er$a%ai sistem #omputer* se#elompo# perusahaan $esar sepertiF E-* e!lett6Pa,#ard* IBM* Intel* dan Sun sepa#at mem$entu# lem$a%a non6pro.it "an% di$eri nama S"stem Per.orman,e E)aluation -orporation 7Sharp dan Ba,on* 1::>F44 Reill"* 1::@8( Lem$a%a ini $ertu%as untu# men%em$an%#an dan mem$eri 28
du#un%an terhadap pem$a#uan $en,hmar# #iner&a #omputer( Peran%#at $en,hmar# pertama "an% di$uat diper#enal#an pada tahun 1::* #arena itu dise$ut SPE-:( Pada tahun 1::< dimun,ul#an SPE-:< "an% terdiri atas <0 pro%ram "an% ter$a%i men&adi dua #elompo#* "a#ni untu# operasi $ilan%an inte%er dan untu# operasi $ilan%an .loatin%6point( Saat ini* SPE-:< &u%a sudah tida# di%una#an la%i #arena telah dimun,ul#an peran%#at $en,hmar# $aru "a#ni SPE-:@( Ben,mar# SPE-:@ men%u#ur dan mem$andin%#an #iner&a #omputer dalam ti%a #ate%ori pilihanF 1( Kiner&a terhadap $ilan%an inte%er
)ersus .loatin% point <( Kiner&a den%an #ompilasi a%resi.
)ersus #ompilasi #onser)ati. /( Ke,epatan )ersus throu%hput
Untu# pen%u#uran #e,epatan* setiap elemen $en,hmar# memili#i SPE-ratio( SPE-ratio adalah re.erensi !a#tu SPE- di$a%i den%an !a#tu6 pela#sanaan 7 runtime 8 tiap6tiap elemen pro%ram pada sistem "an% diu#ur( Untu# mendapat#an u#uran throu%hput atau la&u e#se#usi pro%ram* "an% dise$ut &u%a metode #apasitas homo%en $e$erapa salinan elemen pro%ram tertentu di&alan#an( Metode ini terutama ,o,o# untu# sistem multiprosesor ( asiln"a* "an% dise$ut la&u SPE- 7SPE-rate8 men%%am$ar#an $erapa $an"a# elemen pro%ram "an% dapat 29
di&alan#an pada satu !a#tu tertentu( en%an demi#ian la&u SPE- men%%am$ar#an #apasitas sistem untu# tu%as6tu%as "an% sama #ara#teristi#n"a den%an pro%ram u&i 7i=it dan Reill"* 1::@8( $en,hmar# Selain SPE-:@* $er$a%ai di#em$an%#an untu# men%u#ur #iner&a #omputer( iantaran"a* "aituF
9hetstone di%una#an untu# mem$andin%#an arsite#tur maupun #ompilator teroptimisasi "an% di&alan#ann"a( hr"stone merupa#an $en,hmar# sinteti# "an% di.o#us#an untu# men%u#ur #iner&a #omputer atas $ilan%an inte%er dan strin% 7Sharp dan Ba,on* 1::>F48( Linpa,#* #erneln"a di#em$an%#an dari rutin pro%ram apli#asi al&a$ar linier 7Sharp dan Ba,on* 1::>F4 Sill* 1::48( Semula ditulis dan di%una#an dalam lin%#un%an $ahasa pro%ram ?ortran namun tersedia &u%a )ersi $ahasa -( NAS di%una#an paralel(
Parallel Ben,hmar# 7NPB8* "an% untu# men%u#ur #iner&a #omputer
Pen%u#uran #iner&a #omputer den%an $en,hmar# "an% ada saat ini $an"a# di#riti# #arena seperti oran% $uta mera$a %a&ah( Ber%antun% pada $a%ian "an% dipe%an%* %a&ah $isa dide.inisi#an se$a%ai tin%%i seperti pohon #elapa* pan&an% dan #e,il seperti ular* atau le$ar dan tipis seperti #ipas 7Gusta.son dan Todi* 1::8( Ben,hmar# "an% ada 30
,enderun% men%u#ur satu aspe# dari #omputer dan hasiln"a di%una#an men%%eneralisasi #iner&a #eseluruhan(
#iner&a untu#
Kemudian $en,hmar# Per.e,t -lu$ dan SPEmen%em$an%#an suite apli#asi "an% men%u#ur $er$a%ai aspe# perila#u sistem a%ar diperoleh %am$aran sistem le$ih len%#ap( Menurut Gusta.son dan Todi 71::8 apli#asi sema,am itu tetaplah han"a men%u#ur satu titi# sampel dari #iner&a #omputer sementara "an% diperlu#an adalah men%u#ur seluruh rentan% #iner&a #omputer( al lain "an% tida# masu# dalam perhitun%an para peran,an% $en,hmar# adalah .a#ta $ah!a menurut hu#um Moore* #iner&a #omputer $ertam$ah se$esar 40 setiap tahun( Semua $en,hmar# mendasar#an diri pada masalah $eru#uran tetap 7 .i=ed 6si'e pro$lem8 sehin%%a relati. terhadap #iner&a "an% terus menin%#at* masalah "an% diu&i#an se$a%ai pen%u#ur #iner&a men&adi san%at #e,il dalam $e$erapa tahun #emudian( Ben,hmar# LINPA-K* misaln"a* mulai den%an menentu#an $ah!a u#uran matri#s harus 100=100( Keti#a #iner&a #omputer $ertam$ah $esar dan pen%hitun%an matri#s $eru#uran 100=100 terselesai#an le$ih ,epat dari !a#tu "an% diperlu#an pemro%ram untu# mene#an tom$ol ENTER* u#uran masalah diper$esar den%an matri#s /00=/00 dan #emudian 1000=1000( Bah#an selan&utn"a peran,an% LINPA-K men%i&in#an )ersi se$esar "an% dapat ditampun% oleh memori(
31
$en,hmar# Men%em$an%#an tanpa memperhitun%#an la&u penin%#atan #iner&a dapat dii$arat#an memato# har%a $aran% tanpa memperhitun%#an la&u in.lasi 7dan perlu diin%at* in.lasi #iner&a #omputer adalah 40 pertahun8( Keti#a LINPA-K petama #ali di%una#an* !a#tu "an% diperlu#an den%an matri#s 100=100 di#umpul#an dari $er$a%ai sistem #omputer "an% ada di $er$a%ai instutusi dan dilapor#an se,ara rutin( Pada tara. presisi /< $it* matri#s 100=100 terse$ut han"a memerlu#an >0( 000 $"te memori dan 450( 000 operasi .loatin%6point (
Peran,an%an pen%u#ur #iner&a #omputer "an% uni)ersal sema#in sulit dila#u#an a#i$at sema#in $er)ariasin"a arsite#tur #omputer* #on.i%urasi dan #apasitas memori* tara. presisi sistem* maupun te#ni# optimisasi #ompilator( Ber$a%ai pende#atan ilmiah dila#u#an dalam upa"a meran,an% $en,hmar# "an% memperhitun%#an semua aspe# di atas* tetetapi tetap mudah di%una#an( Sampai saat ini* pema#ai sendirilah "an% harus menentu#an $en,hmar# pilihann"a* se#edar untu# mendapat#an predi#si #iner&a #omputer $ila di$eri $e$an #er&a sesuai den%an pema#aian "an% se$enarn"a( en%an tetap memperhati#an #elemahan $en,hmar# "an% dipa#ai* setida#n"a dapat diperoleh %am$aran a!al #iner&a #omputer atas $e$an6#er&a "an% a#an di$eri#an #epadan"a(
32
33
BAB < ARSITEKTUR SET INTRUKSI AN ESAIN
Lo#asi Memori dan Operasi Memori $isa #ita i$arat#an seperti haln"a lemari "an% mempun"ai $an"a# la,i* $an"a# la,i dise$ut &u%a $an"a#n"a alamat dalam memori( Setiap la,i diisi se$uah #ata* dan alamat dari la,i "an% $erisi se$uah #ata ditulis diluar la,i terse$ut( Misaln"a #ita a#an menulis 2$a&u3 pada alamat 55* ma#a analo%in"a adalah men"impan #ata 2$a&u3 #edalam la,i $ertanda 55( Kemudian* mem$a,a alamat 55 adalah serupa den%an
melihat
isi
la,i
terse$ut(
Kita
tida#
men%hilan%#an #ata dalam alamat tertentu $ila #ita mem$a,an"a* tetetapi #ita a#an men%u$ah isi alamat &i#a #ita men"impan atau menulis#an #ata $aru(
34
Alamat $ Alamat %
N Kata
Alamat N-%
Setiap #ata $erisi $an"a# $it "an% sama 2Setiap alamat atau lo#asi $erisi se¨ah $it $iner "an% tetap* $an"a# $it $iner ini dise$ut pan&an% #ata memori itu( Memori den%an lo#asi se$an"a# >0:4* masin%6masin% den%an alamat "an% $er$eda* dan dalam setiap lo#asi dapat tersimpan 14 $it dise$ut memori 146$it >0:4 #ata* atau dalam istilah #omputer memori 146$it >K( 7Karena pada umumn"a memori mempun"ai ¨ah #ata 14( /> #ata* dalam #omputer literatur a#an dia,u se$a%ai memori 14K* den%an pen%ertian $ah!a se$etuln"a dalam memori itu ada
+adi* memori 146$it <1@ #ata dise$ut memori 146$it /
Kata "an% a#an disimpan #e dalam lo#asi
memori adalah pertama dimuat oleh -PU men&adi re%ister tertentu* "an% dise$ut data memor" data Re%ister 7MR8 <(
Alamat lo#asi dimana #ata terse$ut a#an
disimpan
dimuat
oleh
-PU
#e
dalam
da.tar
tertentu* "an% dise$ut memori address re%ister 7MAR8 /(
Se$uah
sin"al*
dise$ut
menulis*
di#eluar#an oleh -PU menun&u##an $ah!a #ata disimpan dalam MR a#an disimpan di lo#asi memori alamat "an% dimuat di dalam MAR( Ti%a
lan%#ah
dasar
"an%
diperlu#an
untu#
mela#u#an memori mem$a,a operasiF 1(
Alamat lo#asi dari #ata "an% a#an di$a,a
dimuat #e dalam MAR <(
Se$uah
sin"al*
dise$ut
mem$a,a*
di#eluar#an oleh -PU "an% menun&u##an $ah!a 36
#ata "an% alamatn"a di MAR adalah untu# di$a,a #e dalam MR ( /(
Setelah $e$erapa !a#tu* sesuai den%an
#eterlam$atan
memori
dalam
mem$a,a
#ata
tertentu* #ata "an% diperlu#an a#an dimuat oleh memori #e dalam MR siap di%una#an oleh -PU( Ti%a
lan%#ah
dasar
"an%
diperlu#an
untu#
mela#u#an memori mem$a,a operasiF 1(
Alamat lo#asi dari #ata "an% a#an di$a,a
dimuat #e dalam MAR <(
Se$uah
sin"al*
dise$ut
mem$a,a*
di#eluar#an oleh -PU "an% menun&u##an $ah!a #ata "an% alamatn"a di MAR adalah untu# di$a,a #e dalam MR ( /(
Setelah $e$erapa !a#tu* sesuai den%an
#eterlam$atan
memori
dalam
mem$a,a
#ata
tertentu* #ata "an% diperlu#an a#an dimuat oleh memori #e dalam MR siap di%una#an oleh -PU(
Te#ni# Pen%alamatan Mode
pen%alamatan adalah
$a%aimana
,ara
menun&u# dan men%alamati suatu lo#asi memori pada se$uah alamat di mana operand a#an diam$il( Mode 37
pen%alamatan diterap#an pada set instru#si* dimana pada umumn"a instru#si terdiri dari op,ode 7#ode operasi8 dan alamat( Setiap mode pen%alamatan mem$eri#an .le#si$ilitas #husus "an% san%at pentin%( Bila alamat dalam memori di$eri#an pada suatu #ata instru#si* te#ni# "an% umum adalah mem$eri alamat memori dalam $entu# $iner( -ara ini $iasa dise$ut den%an istilah pen%alamatan lan%sun%( Namun ta# selaman"a "an% di%una#an adalah ,ara ini* !alaupun ,ara ini merupa#an ,ara "an% e.e#ti.* namun &u%a men%a,u padaF a(
Kein%inan untu# memperpende# $a%ian
alamat Misaln"a sa&a* &i#a #ita mempun"ai #omputer den%an memori <@4K* 1 $it a#an diperlu#an untu# asin%6masin% alamat lan%sun% dan te#ni# pen%alamatan dipa#ai untu# meredu#si $an"a# $it "an% dipa#ai( $(
Kemudahan $a%i pemro%ram
Terdapat
$e$erapa
te#ni#
pen%alamatan
"an% men"edia#an #emudahan pada pemro%ram #eri# menulis#an pro%ram( ,(
?asilitas sistem operasi 38
alam hampir semua #omputer $esar $isa mempun"ai
$e$erapa
pro%ram
"an%
$er$eda
dalam memorin"a pada satu saat tertentu dan a#an
$er%antianmen&alan#an
pro%ram6pro%ram
tertentu(
%.
'engalamatan (angsung )*irect Addressing+
Pem$erian alamat $iner dalam memori adalah ,ara palin% lan%sun% untu# men,ari tempat operand atau menentu#an alamat untu# melompat( A#i$atn"a* semua
#omputer
mempun"ai
$entu#6$entu#
pan%alamatan lan%sun%( alam mode pen%alamatan dire,t addressin%* har%a "an% a#an dipa#ai diam$il lan%sun% dalam alamat memori lain( -ontohn"aF MOD A*/0h( alam instru#si ini a#an di$a,a data dari RAM internal den%an alamat /0h dan #emudian disimpan dalam a#umulator( Mode pen%alamatan ini ,u#up ,epat* mes#ipun har%a "an% didapat tida# lan%sun% seperti immediate* namun ,u#up ,epat #arena disimpan dalam RAM internal( emi#ian pula a#an le$ih mudah men%%una#an mode ini daripada mode immediate
39
#arena har%a "an% didapat $isa dari lo#asi memori "an% mun%#in )aria$el(
Gam$ar mode pen%alamatan lan%sun% Beri#ut ini #ele$ihan dan #e#uran%an dari satu pen%alamatan
den%an
metode
pen%alamatan
lan%sun%F a( ?ield
Kele$ihan alamat
$erisi
e.e#ti.
address
se$uah
operandi( $(
Ke#uran%an
Keter$atasan .ield alamat #arena pan&an% .ield alamat $iasan"a le$ih #e,il di$andin%#an pan&an% #ata 7!ord8(
#. Dariasi
'engalamatan Tak (angsung dalam pen%alamatan "an% lain "an%
$an"a# dipa#ai di#enal se$a%ai pen%alamatan ta# lan%sun%( Bila dipa#ai* pen%alamatan lan%sun% a#an men"e$a$#an #ata instru#si mem$eri#an 2alamat3( 40
Bu#an operand "an% harus dipa#ai* tetetapi alamat operand(
Gam$ar Mode Pen%alamatan ta# lan%sun% -ontoh &i#a #ita tulis A /0< dan instru#sin"a adalah instru#si
tam$ah
alamat
lan%sun%
#on)ensional*
$ilan%an pada lo#asi /0< a#an ditam$ah#an pada #ata "an% se#aran% ada dalam a#umulator( +i#a instru#si penam$ahan teralamat#an ta# lan%sun% #ita tulis IA /0< 7indire,taddCtam$ah#an ta# lan%sun%8* ma#a $ilan%an "an% disimpan pada alamat /0< a#an mem$eri#an alamatoperand"an% dipa#ai( -ontoh Bila pro%ram
#ata
instru#si
$eri#ut
ini
@
dalam
memori dalam
dila#sana#an*
ini
a#an
men"e$a$#an $ilan%an 14> ditam$ah#an pada isi a#umulator "an% se#aran%( 41
ALAMAT
ISI
MEMORI @ ((( /0< ((( >:@
IA /0< ((( >:@ ((( 14>
Beri#ut ini #ele$ihan dan #e#uran%an dari satu pen% pen%al alam amat atan an
den% den%an an
meto metode de
pen% pen%al alam amat atan an
ta# ta#
lan%sun%F
Kele$ihan
Ruan% Ruan% $a%i $a%i satu alama alamatt men&a men&adi di $esar $esar**
sehi sehin% n%% %a sema sema#i #in n $an $an"a# alam alamat at "an% dapa dapatt dire.erensi(
Ke#uran%an
iperlu rlu#an
re. re.erensi
memori
%anda
dalam satu .et,h sehin%%a memperlam$at proses operasi(
42
. Mode san%at
'eng 'engal alam amat atan an Seg Seger eraa )m )mme medi diat atee Addr Addres esin ing+ g+ pen% en%alamata matan n
umum
dipa#ai
imm immedia diate
#arena
har%a r%a
address ressiin% "an%
a#an
disi disimp mpan an dala dalam m memo memori ri lan% lan%su sun% n% men% men%i# i#ut utii #ode operasi rasi dalam
memo memori ri((
en%an
#ata lain* in*
tid tida#
diperlu#an pen%am$ilan har%a dari alamat lain untu# disimpa disimpan( n( -ontoh -ontohn" n"aF aF MOD MOD A*<0h A*<0h(( alam alam instru#si instru#si terse terse$ut $ut** a#umu a#umula lato torr a#an a#an diisi diisi den% den%an an har%a har%a "an% "an% lan%sun% men%i#utin"a* dalam hal ini <0h( Mode ini san%atlah ,epat #arena har%a "an% dipa#ai lan%sun% tersedia(
Beri#ut ini #ele$ihan dan #e#uran%an dari satu pen%alamatan den%an metode pen%alamatan se%eraF
Kele$ihan
Tida Tida# # adan adan" "a re.e re.ere rens nsii memo memori ri sela selain in
dari instru#si "an% diperlu#an untu# memperoleh operand( 43
Men% Men%he hema matt
si#l si#lus us
inst instru ru#s #sii
sehi sehin% n%% %a
proses #eseluruhan a#an ,epat(
Ke#uran%an
U#ura U#uran n $ilan $ilan%a %an n ddi$a ddi$atas tasii oleh oleh u#ura u#uran n
.ield alamat(
44
.
'eng 'engal alam amaatan tan /eg /egis iste terr Addr Addres essi sing ng
Re%ister merupa#an se$a%ian memori dari mi#ro pro, pro,es esso sorr "an% "an% dapa dapatt dia# dia#se ses s den% den%an an #e,epa ,epata tan n tin%%i( Metode pen%alamatan re%ister ini mirip den%an mode pen%alamatan lan%sun%( Per$edaann"a terleta# pada .ield alamat "an% men%a,u pada re%ister* $u#an pada memori utama(
Mode Pen%alamatan Re%ister
&.
'eng 'engal alam amat atan an /eg /egis iste terr ndi ndire rect ct Addr Addres essi sing ng
Metode pen%alamatan re%ister tida# lan%sun% ini mirip mirip den% den%an an mode mode pen% pen%al alam amat atan an tida tida# # lan% lan%su sun% n%(( Per$ Per$ed edaa aann nn" "a adal adalah ah .ield .ield alam alamat at men% men%a, a,u u pada pada alamat re%ister( Leta# Operand $erada pada memori "an% ditu&u oleh isi re%ister( 45
Mode pen%alamatan Re%ister Ta Ta# Lan%sun% Lan%s un%
0.
'engalamatan /el /elati
Pen% Pen%a alama lamata tan n
rela relati ti..
san% san%a at
seru serupa pa
den% den%a an
pen%halaman* #e,uali alamat "an% "an% dia,u adalah relati relati.. terhad terhadap ap #ata #ata instru# instru#si( si( Pada Pada umumn umumn"a "a $ila $ila pen% pen%al alam amat atan an rela relati ti.. dipa dipa#a #ai* i* $a%i $a%ian an alam alamat at #ata #ata instru#si
men%hasil#an
ditam$ tam$a ah#an #an
pada ada
alama lamatt
$ilan%an
"an%
harus
"an%
men men%i#u i#uti
#ata ata
instru# instru#si( si( +adi +adi dalam dalam pen% pen%al alama amatan tan relati relati.* .* $a%ia $a%ian n alamat $erisi perpindahan dari lo#asi #ata instru#si dalam
memori(
perp perpin inda daha hann nn" "a tet tetetap tapi
en%an
mere meredu du#s #sii
han"a se$ se$a%ia %ian
dipa#ai( 46
mem$eri#an $an" $an"a a#n" #n"a
$it $it
han"a alam alamat at
dari mem memori "an%
sia siap
Misaln"a &i#a #ata instru#si mema#ai pen%alamatan relati. dan $a%ian alamat $erisi $it* ma#a han"a <@4 lo#asi memori "an% tersedia untu# instru#si "an% di$eri#an(
1.
'engalamatan Berindeks
Terdapat memori
suatu
lan%sun%
)ariasi
"an%
pada
pen%alamatan
#on)ensional
"an%
$isa
memudah#an pemro%raman* #hususn"a pemro%raman sederetan
instru#si
"an%
harus
diulan%i
pada
se#umpulan data "an% terdistri$usi #e seluruh mesin( Te#ni# ini dise$ut pen%inde#san( Pen%inde#san mula6mula dipa#ai dalam satu #omputer
"an%
di#em$an%#an
di
Uni)ersitas
Man,hester 7Ameri#a Seri#at8( Re%ister "an% di$eri nama #ota# B ditam$ah#an pada $a%ian #endali( Isi #ota# B dapat ditam$ah#an pada isi re%ister alamat memori $ila diperlu#an( Bila #ota# B dipa#ai* alamat operand "an% terleta# dalam memori a#an ada pada alamat "an% ditulis#an oleh pemro%raman isi plus #ota# B( Istilah oran% Ameri#a untu# #ota# B ini adalah re%ister inde#s* dan istilah ini a#an #ita %una#an( Re%ister inde#s san%at $er%una sehin%%a 47
#omputer6#omputer
masin%6masin%
men"edia#an
$e$erapa re%ister seperti itu( Pema#aian
re%ister
inde#s
memudah#an
penulisan pro%ram "an% memproses data dalam ta$el6 ta$el* meredu#si $an"a#n"a instru#si "an% diperlu#an dalam
pro%ram
intera#ti.(
Re%ister
inde#s
memun%#in#an modi.i#asi automati# dari lama "an% dia,u tanpa men%u$ah instru#si "an% terseimpan dalam memori(
Intru#si Instru#si6instru#si
untu#
memerintah
pemindahan data dari satu lo#asi #e lo#asi lainn"a( Proses e#se#usi instru#si pemindahan data le$ih men"erupai proses men"alin data terse$ut #etim$an% memindah#ann"a(
Salah
satu
#umpulan
instru#si
"an% pentin% dalam #ate%ori trans.er data terdiri dari perintah6perintah
untu#
$er#omuni#asi
den%an
peran%#at6peran%#at di luar #onte#s -PU6memori utama 7printer* #e"$oard* monitor* dis# dri)e*ds$8( Karena instru#si6instru#si ini menan%ani a#ti)itas6 a#ti)itas inputCoutput 7ICO8 mesin #omputer* instru#si6 instru#si ini dise$ut instru#si ICO dan #adan%#ala 48
dipandan%
se$a%ai
se$uah #ate%ori "an% $erdiri
sendiri( Oleh #arena itu* a#ti)itas6a#ti)itas ICO ini dapat
ditan%ani
oleh
instru#si6instru#si
"an%
memerintah#an pemindahan data antara -PU dan memori utama( +adi* Kita a#an memandan% instru#si6 instru#si ICO se$a%ai $a%ian dari #elompo# trans.er data(
Operasi set instru#si untu# trans.er dataF
MODEF memindah#an !ord atau $lo# dari
sum$er #e tu&uan
STOREF memindah#an !ord dari prosesor
#e memori(
LOAF
memindah#an
!ord
darimemori#eprosesor(
EJ-ANGEF
menu#ar
isi
sum$er
#e
tu&uan(
-LEAR C RESETF memindah#an !ord 0 #e
tu&uan(
SETF memindah#an !ord 1 #e tu&uan(
PUSF memindah#an !ord dari sum$er
#e $a%ian palin% atas sta,#(
POPF memindah#an
palin% atas sum$er 49
!ord dari $a%ian
Instru#si Aritmeti#aC Lo%i#a Kelompo# aritmati#aClo%i#a terdiri dari instru#si6 instru#si "an% mem$eritahu#an #epada unit #ontrol untu#
memerintah#an
dila#sana#ann"a
suatu
a#ti)itas dalam unit aritmeti#aClo%i#a( Se$a%aimana diindi#asi#an oleh naman"a* unit aritmati#aClo%i#a mampu
mela#sana#an
$er$a%ai
operasi
di
luar
operasi6operasi aritmati#a dasar( Be$erapa diantara operasi6operasi tam$ahan ini adalah operasi6operasi lo%i#a
AN*
serin%#ali tun%%al
OR*
dan
di%una#an
dalam
JOR(
untu#
Operasi6operasi memanipulasi
se$uah re%ister
ser$a%una
ini
$it6$it tanpa
men%%an%%u $a%ian lain dari re%ister terse$ut(
Operasi set instru#siuntu#arithmeti,F 1( A
F Pen¨ahan
@(
<( SUBTRA-TF Pen%uran%an
4(
ABSOLUTE
NEGATIDE /( MULTIPLF Per#alian >( IDIEF pem$a%ian
5( E-REMENT ( IN-REMENT
Nomor @ sampai merupa#aninstru#si operand tun%%al( 50
Mes#ipun
#ita
telah
men"in%%un%
operasi6
operasi aritmati#a seperti pen¨ahan* pen%uran%an* per#alian dan pem$a%ian( Bera%am &enis operasi dapat diturun#an dari #om$inasi se$uah operasi pen¨ahan dan se$uah proses ne%asi( Berdasar#an hal ini* se¨ah #omputer $eru#uran #e,il diran,an% han"a den%an men"erta#an instru#si pen¨ahan( Kita &u%a harus memperhati#an $ah!a untu# setiap operasi aritmeti#a* tersedia $e%itu $an"a# ra%am )ariasi(
Operasi set instru#si untu#operasi lo%i,alF 1(
AN* OR* NOT* EJOR
Operasi6operasi ini dapat diperluas men&adi operasi6opersai ran%#aian ran%#aian
$it6$it $it6$it
"an%
men%%a$un%#an
untu# output
me%hasil#an den%an
dua satu
menerap#an
operasi dasar pada masin%6masin% #elom se,ara terpisah( <(
-OMPARE "aitu mela#u#an per$andin%an
lo%i#a( /(
TEST untu# men%u&i #ondisi tertentu(
51
>(
SI?T merupa#an operand men%%eser #e
#iri atau #anan men"e$a$#an Konstanta pada u&un% $it( @(
ROTATE merupa#an operand men%%eser
#e #iri atau #e #anan den%an u&un% "an% ter&alin( Operasi6operasi "an% $erada dalam #elas operasi rotasi
dan
shi.t
men%%era#an
$it6$it
men"edia#an dalam
suatu
sarana re%ister
untu# dan
serin%#ali di%una#an untu# men"elesai#an masalah6 masalah "an% $er#aitan den%an tempat #edudu#an( Operasi6operasi
ini
di#elompo#an
menurut
arah
per%era#an $it6$itn"a 7#anan atau #iri8 dan sesuai den%an apa#ah per%era#an terse$ut $ersi.at sir#ular 7melin%#ar atau memutar8 atau tida#( Apa$ila #ita memili#i se$uah $"te "an% tentun"a terdiri dari delapan $it dan men%%eser $it6$it terse$ut satu lan%#ah #e #anan atau #iri* #ita dapat mem$a"an%#an $ah!a $it "an% $erada pada posisi palin% u&un% a#an ter&atuh dari tepi u&un% $"te dan se$uah tempat #oson% a#an mun,ul di u&un% se$ali#n"a( Perla#uan "an% di$eri#an terhadap $it "an% &atuh dan tempat #oson% ini merupa#an ,iri "an% mem$eda#an satu operasi %eser den%an operasi %eser lainn"a( Salah 52
satu te#ni# "an% diterap#an adalah meleta#an $it "an% &atuh pada tempat #oson% di u&un%
"an% $erla!anan( asiln"a
adalah se$uah per%eseran sir#ular* "an% dise$ut &u%a rotasi( Ma#a &i#a #ita mela#sana#an per%eseran sir#ular #e#anan pada pola $it $eru#uran satu $"te se$an"a# delapan #ali* #ita a#an mendapat#an pola $it "an% sama den%an a!aln"a(
Instru#si Seuen,in% Instru#si
Seuen,in%
merupa#an
sederetan
instru#siCa#si "an% a#an dila#sana#an 7die#se#usi8 oleh
#omputer
$erdasar#an
urutan
penulisann"a(
Instru#si seuen,e dise$ut &u%a stur#tur #ontrol al%oritma "an% palin% sederhana( +i#a ditulis#an se$uah
seuen,e
instru#siCa#si
#e
"an%
1*<*/*>*(
terdiri (
(
(
dari n
ma#a
deretan setiap
instru#siCa#si a#an dila#sana#an se,ara $erurutan mulai dari "an% #e 1* #emudian #e6<* #e6/*( ( ( ( smapai den%an #e6n( an pro%ram palin% sederhana tentun"a han"a men%andun% satu seuen,e "an% men%andun% satu instru#si sa&a(
Instru#si InputCOutput
53
?un%sin"a adalah memindah#an in.ormasi antara -PU atau memori utama den%an dunia luar( ICO ini terdiri atas piranti ICO 7peripheral8* pen%endali ICO 7de)i,e ,ontroller8 dan peran%#at luna#( Untu# proses in.ormasi antara -PU den%an se$uah peripheraln"a sendiri "aitu pertama memilih ICO dan men%u&in"a* #emudian
men%inisialisasi
trans.er
dan
men%#oordinasi#an pen%aturan !a#tu operasi ICO* lalu mentrans.er in.ormasi* dan men%henti#an proses trans.er( Seperti "an% sudah diulas di atas &u%a $ah!a a#ti)itas6a#ti)itas inputCoutput 7ICO8 mesin #omputer &u%a
ditan%ani
oleh
instru#si6instru#si
"an%
memerintah#an pemindahan data antara -PU dan memori utama( +adi* Kita a#an memandan% instru#si6 instru#si ICO se$a%ai $a%ian dari #elompo# trans.er data(
54
55
BAB / ASSEMBL LANGUAGE PROGRAMMING
Suatu pro%ram #omputer dapat ditulis dalam $entu# $ahasa pemro%raman tin%#at tin%%i seperti &a)a atau
-(
Komputer
dapat
men%e#se#usi
pro%ram &i#a terdapat pro%ram dalam $entu# $ahasa mesin "an% spesi.i# untu# arsite#tur( Pro%ram $ahasa mesin untu# arsite#tur $erisi #umpulan instru#si mesin "an% diter&emah#an dalam $entu# $iner( Bahasa mesin adalah $ahasa "an% asli terdapat pada prosesor( Instru#si $ahasa mesin din"ata#an dalam $ilan%an numeri, "an% tersimpan se$a%ai $"te di memori( Masin%6masin% instru#si $ahasa mesin memili#i operation
instru#si
#ode
numeri#
,ode atau
$ahasa
"an%
uni#
op,ode (
mesin
setiap 56
"an%
alam
dise$ut
pem$uatan
instru#si
dia!ali
den%an suatu op,ode dan dapat dii#uti oleh data( Bahasa mesin san%at rumit apa$ila dipro%ram se,ara lan%sun%* sehin%%a di$uat suatu sim$ol 7 mnemoni, 8 untu# me!a#ili masin%6masin% instru#si terse$ut a%ar
le$ih
mudah
diin%at
dan
dan
di$a,a oleh
manusia( Bahasa sedan%#an
mesin $ahasa
adalah
#ode
$iner
adalah
assem$l"
murni*
pemetaan
lan%sun% dari #ode $iner #e $entu# sim$olis "an% le$ih mudah $a%i manusia untu# memahami dan men%elola( Kon)ersi representasi sim$olis #e dalam $ahasa mesin dila#u#an den%an pro%ram #husus "an% dise$ut assem$ler ( Assem$ler adalah se$uah pro%ram "an% menerima pro%ram $ahasa sim$oli# 7 sour,e 8 dan men%hasil#an $ahasa mesin "an% setara 7tar%et8( alam
mener&emah#an
assem$ler a#an
pro%ram
#e
#ode
$iner*
men%%anti alamat sim$olis oleh
alamat numeri#* men%%anti#an operasi sim$oli# #ode den%an #ode operasi mesin* pen"impanan ,adan%an untu#
instru#si
dan
data*
dan
mener&emah#an
#onstanta #e dalam representasi mesin( Se$elum diperlu#an
mempela&ari
$ahasa
pen%etahuan tentan% 57
assem$l"
prosesor se,ara
rin,i( al6hal "an% perlu di#etahui adalah u#uran memori dan or%anisasi* prosesor re%ister* .ormat instru#si* dan seluruh set instru#si( Se$uah prosesor $er$asis a#umulator memili#i lima re%ister 14 $it "aituF 1(
Pro%ram -ounter 7P-8*$erisi alamat dari
instru#si $eri#utn"a "an% a#an die#se#usi <(
Instru,tion Re%ister 7IR8* $erisi $a%ian
#ode opersasi instru#si "an% sedan% die#se#usi /(
Address
Re%ister
7AR8*$erisi
alamat
instru#si "an% sedan% die#se#usi >(
A,,umulator 7A-8* $er.un%si
se$a%ai
sum$er dan tu&uan dari data @(
ata Re%ister 7R8* $er.un%si se$a%ai
tempat pen"impanan data( Prosesor
sederhana
mendu#un%
ti%a
&enis
instru#si* "aituF 1(
ata Trans.er
Operasi "an% terdapat pada trans.er data adalah a(
Load* "aitu suatu perintah untu# men%isi
data pada re%ister dari ata Re%ister $(
Store*
"aitu
suatu
perintah
untu#
men"impan data dari re%ister #e ata Re%ister 58
,(
Mo)e*
"aitu
suatu
perintah
untu#
memindah#an data antara A,,umulator Re%ister dan ata Re%ister <(
ata Pro,essin%
Operasi "an% terdapat pada pen%olahan data adalah add * su$tra,t * and * dan not ( /(
Pro%ram -ontrol
Operasi "an% terdapat pada pro%ram ,ontrol adalah &ump dan ,onditional &ump ( Bahasa assem$l" adalah $entu# sim$olis dari $ahasa
mesin*
prosesor
memili#i
$ahasa
"an%
assem$l" "an% uni# dan $er$eda sesuai masin%6
masin% tipe prosesor( Pemro%raman $ahasa assem$l" serin% dise$ut se$a%ai #ate%ori $ahasa pemro%raman tun%%al* pada #en"ataann"a ada $er$a%ai ma,am &enis pera#itan $ahasa pera#it( Pro%ram assem$l" ditulis
den%an
sin%#atan
pende#
"an%
dise$ut
mnemoni#* "aitu sin%#atan "an% me!a#ili instru#si mesin "an% se$enarn"a( Ber$eda den%an $ahasa pemro%raman tin%#at tin%%i* $ahasa assem$l" atau ra#itan $iasan"a memili#i hu$un%an satu6satu den%an instru#si $ahasa mesin( Misaln"a* tiap mnemoni# "an% ditulis di pro%ram den%an $ahasa ra#itan a#an 59
diter&emah#an men&adi tepat satu #ode operasi "an% dapat $ahasa
dimen%erti tin%#at
lan%sun% tin%%i*
oleh
#omputer( Pada
satu
perintah
dapat
diter&emah#an men&adi $e$erapa #ode operasi dalam $ahasa mesin( Proses pen%u$ahan $ahasa ra#itan #e $ahasa mesin dila#u#an oleh assem$ler * dan proses $ali#ann"a dila#u#an oleh disassem$ler (
Kele$ihan Bahasa Assem$l" F 1(
Keti#a di6 ,ompile u#uran le$ih #e,il
<(
Le$ih e.isien dan hemat memori
/(
Le$ih ,epat die#se#usi
Kesulitan Bahasa Assem$l" F 1(
alam mela#u#an suatu pe#er&aan* $aris
pro%ram relati. le$ih pan&an% di$andin% $ahasa tin%#at tin%%i <(
Relati.
le$ih
sulit
untu#
dipahami
terutama &i#a ¨ah $aris sudah terlalu $an"a# /(
Le$ih sulit dalam mela#u#an pe#er&aan
rumit* misaln"a operasi matematis ( Pemro%raman $ahasa assem$l" memun%#in#an pro%rammer
untu#
mempro%ram
den%an
#ode
instru#si* tetetapi den%an men%%una#an mnemoni# 60
sederhana untu# meru&u# pada #ode6#ode instru#si( Pemro%raman assem$l" men%hasil#an pro%ram "an% le$ih sin%#at dan #e,epatan e#se#usi "an% le$ih tin%%i( Setiap pera#it sedi#it
men%%una#an .ormat $er$eda
"an% untu#
menter&emah#anmener&emah#an instru#si #ode* data dan arahan #husus untu# mera#it pro%ram a#hir( e#larasi adalah instru#si #husus "an% diran,an% untu# memudah#an penulisan se$uah pro%ram dalam $entu# sim$olis( Misaln"a de#larasi $eri#utF
ORG Q1000 Menetap#an $ah!a pro%ram a#an $erada pada alamat
1000
he#sadesimal
7a!al8
pada memori(
Apa$ila dipa#ai penentuan a!al demi#ian* pro%ram a#an
$ermu#im
pada
alamat
tertentu
didalamdi
dalam memori dan dise$ut Pemro%raman A$solut( Se$ali#n"a se$uah pro%ram "an% dapat dimuat di mana sa&a dalam memori dise$ut pro%ram "an% dapat ditempatta#an #em$ali( Untu#
menempat#an
pro%ram
"an%
dapat
ditempat#an #em$ali dalam memori* alamat sim$olis dalam
pro%ram
harus
diu$ah
men&adi
alamat
sesun%%uhn"a( Tu%as ini dila#sana#an oleh pro%ram 61
pemuat 7 loader pro%ram8( alam mi#roprosesor "an% diterap#an dalam penerapan pen%endalian* se$a%ian $esar pro%ram dimuat han"a satu #ali #e dalam memori ROM "an% tida# dapat diu$ah #arena itu pro%ram dimuat dalam alamat a$solut( Penelusuran #esalahan
pro%ram
7 de$u%%er 8
mela#sana#an
pro%ram
penetuanpenentuan
alamat
untu#
men,o$a
harus relati.
ada
terhadap
a!al
pro%ram* apa$ila tida# pro%ram tida# dapat dimuat #em$ali( Mem$eri#an nama sim$olis #epada data mem$eri#an
dua
.asilitas
terpisah(
ata
harus
ditentu#an .ormat dan isin"a( Misaln"aF
ATA RMB 1 e#larasi ini men"edia#an 1 $"te untu# stru#tur data "an% dise$ut data 7dalam $ahasa asem$li 4008 sama haln"a
TABLE RMB @0 Men%alo#asi#an @0 $"te untu# stru#tur data "an% dise$ut ta$el( Lan%#ah pertama untu# pemro%raman dalam $ahasa assem$l" adalah menentu#an assem$ler "an% a#an di%una#an dan .ormat apa "an% di%una#ann"a( Pemro%raman
$ahasa
assem$l"adalah 62
penulisan
instru#si mesin dalam $entu# mnemoni#* dimana setiapinstru#si mesin dalam $entu# $iner atau nilai he=
di%anti
mnemoni#
den%an
mem$uat
mnemoni#(
pemro%raman
Pen%%unaan pada
tin%#at
rendah ini le$ih mudah dipahami dan le$ih mudah di#elola( -ontoh pemro%raman assem$l" BEGIN LAA Q>? LOA A-- A 9IT DALUE >? BEGIN adalah alamat sim$olis LAA adalah #ode operasi >? adalah operand LOA A-- A 9IT DALUE >?adalah #omentar Se$uah pro%ram assem$l" terdiri dari urutan instru#si pera#itan* di mana instru#si ditulis $aris per $aris( Setiap $aris dari pro%ram assem$l" di$a%i men&adi empat $idan% $eri#utF 1( La$el sim$oli#
La$el di%una#an untu#
untu#
alamat
mem$eri#an
memori(
Se$uah
nama la$el
adalahidenti.ier "an% dapat di%una#an pada $aris pro%ram untu# ,a$an% #e $aris $erla$el( La$el&u%a dapat
di%una#an
untu#
men%a#ses
data
men%%una#an nama sim$oli#( e#larasi La$el adalah 63
mirip den%an de#larasi identi.ier lain dan dia#hiri den%an
#ara#ter
titi#6dua(
Identi.ier
han"a
$isa
di$entu# den%an #ara#ter pertama adalah #ara#ter Alpha$et*
dan
numeri#*
dan
ma#simum
#ara#ter #ara#ter
la$el
selan&utn"a HH
$er$eda
serta antara
$oleh
&u%a
HH(
Pan&an%
satu
$ahasa
assem$l" den%an $ahasa "an% assem$l" "an% lain( Be$erapa $ahasa assem$l" memun%#in#an pan&an% la$el hin%%a /< #ara#ter* sedan%#an "an% lainn"a han"a
4
#ara#ter( Be$erapaprosesor memerlu#an
sim$ol titi# dua setelah setiap la$el sementara "an% lainn"a tida#( Ba%ian ini memun%#in#an instru#si mana sa&a untu# dire.erensi men%%una#an tanda dan $u#an alamat a$solut( <(
Operation -ode 7op,ode8
Operation
,ode
atau
mnemoni#
merupa#an
sin%#atan sim$olis $erupa #ode numeri# "an% uni# ( Ba%ian ini se,ara sim$olis men%%am$ar#an instru#si "an% dila#sana#an( Pada ,ontoh diatas LAA adalah mnemoni#* $a%ian ini menentu#an a#umulator A harus $erhu$un%an den%an isi se$uah lo#asi memori( /(
Operand
64
Operand adalah $entu# spesi.i# dari mnumoni, "an% men%is"arat#an tu%as tertentu( Bidan% operan terdiri dari in.ormasi tam$ahan atau data "an%op,ode mem$utuh#an( Bidan% operan dapat di%una#an untu# menentu#an #onstanta* la$el* data lan%sun%* da.tar* atau alamat( >(
-omment
Komentar
men"edia#an
tempat
untu#
menulis#an ,atatan ter#aitden%an apa "an% telah dila#u#an untu# tu&uan de$u%%in% dan pemeliharaan( Penulisan #omentar dia!ali den%an sim$ol HCH( Ta$el
$ahasa
assem$l"
sederhanaF
65
untu#
prosesor
Mnem oni,
O pera
Isi Instru#si
nd Men%henti#an
STOP
e#se#usi Memindah#an
L
J operand dari memori 7di
STOP
J
MODA -
lo#asi =8 #e AMen"impan
isi
dari
A- #e memori Men"alin isi A- #e R
MODA
Men"alin isi R #e
-
AMenam$ah#an R #e
A
AMen%uran%#an
SUB
dari A-
AN
R #e A-
NOT
Komplemen isi A-
BRA
B;
R
A dr
#e
instru#si den%an alamat adr
A dr
Melompat
Melompat instru#si adr &i#a A- 0 66
#e
Kate%ori instru#si menurut #ode operasi 1(
Instru#si trans.er "an% men"an%#ut alat
e#stern 7memori atau ICO8 <(
Instru#si trans.er antara re%ister 7intern
terhadap MPU8 /(
Instru#si aritmeti#a 7misal A dan SUB8
>(
Instru#si Lo%i#a 7misal OR dan AN8
@(
Instru#si ta# simetris 7seperti ROT dan
SI?T8 4(
Instru#si pen%endali
Penin&auan #eenam instru#si se,ara terperin,iF 1(
Instru#si trans.er #e dan dari alat6alat
e#stern Instru#si ini $ertan%%un% &a!a$ atas per%era#an in.ormasi antara satu re%ister mi#roprosesor den%an lo#asi e#stern "an% tertentu* seperti memori atau se$uah re%ister( -ontoh dari peran%#at instru#si 400F LAA AR 1 LAA AR < Instru#si diatas memuat isi alamat AR 1 dan AR < pada re%ister A dan B 7A dan B adalah dua 67
a#umulator intern 4008 AR 1 dapat men,ari lo#asi memori
atau
se$uah
re%ister
serpih
ICO( Setiap
instru#si "an% mennun&u#an alamat memori dapat di%una#an dalam modus pen%alamatan mana sa&a "an% di sedia#an mi#roprosesor( Misaln"a pada 400F LAA >> Memuat a#umulator har%a >>( Operand dimuat apa adan"a #edalam a#umulator dan $u#an se$a%ai alamat memori( <(
Trans.er antar re%ister
Instru#si trans.er antar re%ister memanipulasi data "an% intern terhadpa MPU tanpa menun&u# alat e#stern( ila#sana#n &auh le$ih ,epat dari instru#si "an% menun&u# alat e#stern* #arena $eroperasi intern dalam MPU( /(
Instru#si aritmeti#a
Ter$atasn"a mi#roprosesor instru#si
daerah
untu#
aritmeti#
tersedia
pada
men%impletasi $iasan"a
.un%si
di$atasi
serpih -PU pada
pen¨ahan* selisih penam$ahan dan pen%uran%an* dan instru#si pendu#un%* seperti AA dan manipulasi pindahan( Idealn"a* instru#si aritmeti#aharus $erisi 68
semua
instru#si
per#alian
dan
aritmeti#a
pem$a%ian(
ditam$ah
?un%si
den%an
per#alian
dan
pem$a%ian disedia#an han"apada mi#roprosesor 146 $it( >(
Instru#si lo%i#a
Instru#si operasi
lo%i#a
lo%i#a
men"elen%%ara#an
men%%una#an
ALU(
suatu
Palin%
sedi#t
empat operasi lo%i#a harus disedia#anFOR 7atau8* AN 7dan8* OR e#slusi. 7disn%#at JOR atau EOR8* NOT 7$u#an8( asil llo%i#a dapat ditun&u#an den%an ta$el lo%i#a( alam ta$el lo%i#a* 0 me!a#ili salah dan 1 me!a#ili $enar( Ta$el lo%i#a untu# masin%6masin% operasi se$a%ai $eri#utF OR A
AN
B
A
A
+
B
B
A ,B
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
JOR
NOT 69
A
B
0
JOR B 0 0
A 0
1
0
1
1
1
0
1
0
1
1
1
0
@(
A
Operasita# simetris
Operasi
ta#
simetris
adalah
per%eseran*
perputaran* dan operasi serupa men%u$ah tempat $it didalam se$uah re%ister( Operasi ta#simetris perlu untu# mela#u#an instru#si per#alian atau pem$a%ian* dan untu# memeri#sa isi $it di dalam re%ister( alam mi#roprosesor 6$it instru#si ini a#an $eroperasi umun"a han"a pada a#umulator* mes#ipun san%at diin%in#an a%ar dapat $eroperasi pada re%ister mana sa&a( Bisa tersedia )ariasi misaln"a pertu#aran ni$$le pertu#aran > $it #iri dan > $it #anan( Per%eseran #e #iri 1 $it e#ui)alen den%an per#alian den%an dua dalam sistem $iner( Beri#ut tipe per%eseran
Per%eseran lo%i#a* #e #anan atau #e #iri
70
Per%eseran aritmeti#a* #e #anan atau #e
Perputaran* #e #anan atau #e #iri
4(
Instru#si pen%endali
#iri
Instru#si
pen%endali
men%u$ah
urutan
pela#sanaan pro%ram* $ai# ta# $ers"arat maupun den%an sesuatu ,ara ter%antun% dari har%a indi#ator status(
Iinstru#si
#emampuan
intele%ensia
mem$eda#an #al#ulator(
pen%endali
se$uah
Ia
men"edia#an
#omputer( #omputer
mem$eri
Instru#si dari
#omputer
ini
se$uah
#emampuan
men%implement #eputusan "an% $er$eda ter%antun% har%a parameter "an% di hitun%( alam menulis pro%ram $ahasa assem$l" untu# arsite#tur
tertentuada
hal6hal
"an%
perlu
diperhati#an* "aituF 1(
Arahan Asssem$ler
Pen%%unaanarahanassem$ler "an%
pentin%dalam
assem$l"(
Arahan
"an%dipahami
oleh
merupa#an
menulis
pro%ram
Assem$ler
adalah
assem$ler
dan
tida#
hal
$ahasa perintah sesuai
den%an instru#si mesin "an% se$enarn"a( Arahan Assem$ler mempen%aruhi ,ara assem$ler mela#u#an 71
#on)ersi#ode assem$l" #e #ode mesin( Misaln"a* arahan
assem$ler
men%instru#si#an
#husus
dapatdi%una#an
untu#
assem$ler dalam menempat#an
item data sedemi#ian rupa sehin%%a mere#a memili#i #eselarasan( diperlu#an
Pen"elarasan untu#
data
implementasi
dalam
memori
arsite#tur
"an%
e.isien( <(
Pen%%unaan Sim$ol
alam
pro%ram
$ahasa
assem$l"
sim$ol
di%una#an untu# me!a#ili an%#a( Pen%%unaan sim$ol $ertuauan untu# mem$uat #ode le$ih mudah di$a,a* dipahami*dan de$u%( Sim$ol di&a$ar#an #e dalam nilai numeri# "an% $erhu$un%an den%anassem$ler( /(
Pen%%unaan Operasi Sintetis
Pen%%unaan
operasi
pro%rammer
assem$l"
instru#si"an%
tida#
sintetis untu#
lan%sun%
mem$antu men%%una#an
didu#un%
oleh
arsite#tur( Operasi sintesis #emudian diter&emah#an olehassem$ler
untu#
satu
set
instru#si
"an%
dide.inisi#an oleh arsite#tur( >(
Sinta#s Assem$ler
Assem$ler $iasan"a mem$erla#u#an $e$erapa #on)ensi "an% men%a,u pada #omponen peran%#at 72
#erasseperti re%ister dan lo#asi memori( Salah satu #on)ensi terse$ut adalah a!alan dari nilai lan%sun% den%an #ara#ter
#husus 78 atau nama re%ister
den%an#ara#ter 78( @(
Intera#si en%an Sistem Operasi
ard!are
"an%
mendasari
dalam
$e$erapa
mesin tida# dapat dia#ses se,ara lan%sun% oleh se$uah
pro%ram(
Sistem
operasi
7OS8
$er.un%si
se$a%ai media a#ses #e sum$er da"aseperti memori dan .asilitas ICO( Intera#si den%an sistem operasi 7OS8 dapat$erlan%sun%
dalam
$entu#
#ode
"an%
men"e$a$#an pela#sanaan .un%si "an%$a%ian dari OS( ?un%si6.un%si ini dise$utsistem ,alls( Pro%ram "an% ditulis dalam $ahasa assem$l" perlu diter&emah#an#e dalam $ahasa mesin dalam $entu# $iner a%ar dapat die#se#usi( alam pera#itan dan proses e#se#usi $ahasa assem$l" terdapat / #omponen utama "aitu assem$ler* data stru,tures* lin#er dan loader( Beri#ut ini adalah ti%a lan%#ah dalam
pera#itan
dan
proses
e#se#usi
assem$l" pada masin%6masin% #omponen( 1(
Assem$ler 7Pera#it8
73
$ahasa
Assem$ler adalah pro%ram "an% men%hasil#an instru#si #ode mesin dari sum$er#ode pro%ram "an% ditulis
dalam
men%%anti#an
$ahasa assem$l"( Assem$ler a#an alamat
sim$olis
den%an
alamat
numeri#* men%%anti#an #ode operasi sim$oli# den%an #ode operasi mesin* media pen"impanan ,adan%an untu# instru#si dan data* dan mener&emah#an #e dalam
#onstantarepresentasi
assem$ler
"aitu
memindai
mesin(
pro%ram
-ara
#er&a
assem$l"dan
mela#u#an pemetaan instru#si untu# #ode mesin( Karena
sim$oldapat
di%una#an
mere#a
dide.inisi#an
se$elum
dalam
instru#si
dalam
"an%
#empemindaian tun%%alpro%ram mun%#in tida# ,u#up untu# mela#u#an pemetaan( Proses s,an assem$ler sederhana padaseluruh pro%ram pera#itan ter&adi dua #ali( Pada tahap pen%u&ian pertama men%hasil#an ta$el "an% men,a#up semua sim$ol dan nilai6nilai* ta$el
inidise$ut
ta$el
sim$ol(
Selama
mele!ati
pen%u&ian #edua* assem$ler a#an men%%una#an ta$el sim$ol dan ta$ellain untu#men%hasil#an pro%ram o$&e#* dan
output
$e$erapa
di$utuh#an oleh lin#er( <(
ata Stru,tures 74
in.ormasi"an%
a#an
Assem$ler Assem$ler men%%un men%%una#an a#an setida# setida#n" n"a a ti%a ti%a ta$el ta$el untu# men&alan#an .un%sin"a* "aitu ta$el sim$ol*ta$el op,o op,ode de** dan ta$e ta$ell pseud pseudo o instru# instru#si( si( Ta$el $el sim$o sim$ol* l* "an% diha dihasi sil# l#an anda dala lam m satu satu lulu lulus* s* memi memili li#i #i se$u se$uah ah entri entri untu# untu# setia setiap p sim$o sim$oll dala dalam m pro%ra pro%ram m ini( ini( an% terda terdapa patt dalam dalam setia setiapsi psim$o m$oll adala adalah h nilai nilai $ine $inerr dan dan in.ormasi lainn"a( /( Lin#er
Lin#er dan Loader adalah
men%%a$un%#an
entitas
modul
o$&e#
"an% "an%
dapat mun%#in
diha dihasi sil# l#an an dari dari $e$e $e$era rapa pa modu modull pera pera#i #ita tan n se,a se,ara ra terpisah terpisah(( Loader Loader adalah adalah operasis operasisistem istem utilitas utilitas "an% "an% mem$a,a e=e,uta$le #e dalam memori dan memulai e#se#usi
pro%ram(
setelah
modul
pera pera#i #ita tan n
dite diter& r&em emah ah#a #an n #e dala dalam m modu modull
o$" o$"e#*
.un% .un%si sida dari ri
lin# lin#e er
dan dan
Sin%#atn" tn"a*
load loade er
adal adalah ah
men men"iap# iap#an an
pro% pro%ram ram untu# untu# e#se# e#se#usi usi(( ?un%si6 n%si6.un .un%si %si initerm initermasu asu# # men%%a$un%#an
modul
o$&e#
$ersama6sama*
men" men"el elesa esai# i#an an pen% pen%al alam amata atan n "an% "an% tida# tida# di#e di#etahui tahui pada !a#tu pera#itan* men%alo#asi#an pen"impanan* dan a#hirn"a mela#sana#an pro%ram(
75
76
BAB > ALU ARITMA ARITMATI- LOGILOGIUNIT
ALU 7Arithemti, And Lo%i, Unit8 1(
Pen%ertian dari ALU 7Arithemti, And
Lo%i, Unit8 Arithme Arithmeti, ti, Lo%i Lo%i, , Unit Unit 7ALU8 7ALU8 adal adalah ah salah salah satu satu $a%ian
dalam
$er.u r.un%si
dari
untu#
se$uah
mela#u#an
mi#rop roprosesor operasi
"an%
hitun tun%an
aritmati#a dan lo%i#a( Tu&uan &uan ALU ALU adala adalahme hmela# la#u# u#an an #epu #eputusa tusan n dari dari operasi lo%i#a sesuai den%an instru#si pro%ram( Operat Operator or lo%i# lo%i#a a "an% "an% dipa# dipa#ai ai pada pada ALU ALU adala adalah h se$a%ai $eri#utF a( $(
sama den%an 78 tida# sa sama de den%an 7 78 77
,(
#uran% dari 7 78
d(
#ura #uran% n% atau atau sama sama den% den%a an dar darii 78 78
e(
le$ih $esar da dari 7 78
.(
le$i le$ih h $esa $esarr ata atau u sam sama a den den% %an dar darii 7 788
<(
S#ema ALU Inputs and Outputs
-ontrol Unit* $er.un%si untu# men%ontrol operasi -PU dan men%ontrol #omputer se,ara #eseluruhan(
Arithmeti,
$er.u r.un%si
untu#
And
Lo%i,
mem$entu#
Unit
7ALU8*
.un%si6.un%si
pen%olahan data #omputer(
Re%is Re%ister ter** $er.un%s $er.un%sii se$a% se$a%ai ai pen" pen"imp impan an
internal $a%i -PU(
?la%s
$er.u r.un%si
se$a%ai
unit
,ontrol
untu# tu# men menentu# tu#an st stat atus us pros roseso esor dan hasil sil operasi ALU se$elumn"a( se$el umn"a(
Kon)ersi Bilan%an 1( Pen% Pen%er erti tian an Kon)er n)ersi si Bila Bilan% n%an an
78
Kon)e Kon)ersi rsi $ilan%a $ilan%an n adalah adalah suatu proses proses dimana dimana satu satu s" s"st stem em $ila $ilan% n%an an den% den%an an $asi $asis s terte tertent ntu u a#an a#an di&adi#an $ilan%an den%an $asis "an% lain( Sistem Bilan%an terdiri dari > antara lainF 1(
esimal
7Basis
108 adalah
Sistem
Bila Bilan% n%a an "an% pali palin% n% umum umum di%u di%una na#a #an n dala dalam m #ehid #ehidup upan an sehari6 sehari6ha hari( ri( Sistem Sistem $ilan $ilan%a %an n desima desimall men% men%%u %una na#a #an n $asi $asis s 10 dan dan men% men%%u %una na#a #an n 10 ma,am sim$ol si m$ol $ilan%an "aituF 0* 1* <* /* >* @* 4* 5* 5* dan :( <(
Biner 7Basis <8 adalah Sistem Bilan%an
"an% terdiri dari < sim$ol "aitu 0 dan 1( /(
O#tal tal 7Basis 8 adalah Sistem Bilan%an
"an% terdiri dari Sim$ol "aitu 0* 1* <* /* >* @* 4* 5( >(
e=adesima simall 7Basis asis 148* e=a $erart rartii 4
dan dan esima esimall $era $erarti rti 10 adala adalah h Sistem Sistem Bilan Bilan%a %an n "an% terdiri dari 14 sim$ol "aitu 0* 1* <* /* >* @* 4* 5* * :* A7108* B7118* -71<8* 71/8* E71>8* ?71@8( Pada Sistem Bilan%an e=adesimal memadu#an < unsur "aitu
an%#a
dan
an%#a an%#a 10* B me! me!a#ili a#ili
huru.(
uru. A me!a#ili
an%# an%#a a 11 dan dan
sampai uru. ? me!a#ili an%#a 1@(
79
sete seterusn rusn"a "a
<(
Kon)ersi Bilan%an
Kon)ersi
Bilan%an
di$a%i
men&adi
/
"aitu
se$a%aia $eri#ut( 1(
Kon)ersi dari $ilan%an esimal #e $iner(
<(
Kon)ersi $ilan%an esimal #e O#tal(
/(
Kon)ersi
$ilan%an
esimal
#e
e=adesimal( 1(
Kon)ersi dari $ilan%an esimal #e $iner
aitu den%an ,ara mem$a%i $ilan%an desimal den%an dua #emudian diam$il sisa pem$a%iann"a( -ontohF 1(
<@>10VVVV( <
<@>F < 1<5 sisa 0 1<5F < 4/ sisa 1 4/F < /1 sisa 1 /1F < 1@ sisa 1 1@F < 5 sisa 1 5F < / sisa 1 /F < 1 sisa 1 1F < 0 sisa 1 0F < 0 sisi 0
80
+adi <@>10 11111110< diurut#an dari sisa pem$a%ian tera#hir se$a%ai MSB 7Most Si%ni.i,ant Bit8
Kon)ersi
dari
$ilan%an
Biner
#e
esimal
,ontohF 11111110<VVV( 10 7 1 = < 0 8 7 1 = < 1 8 7 1 = < < 8 7 1 = < / 8 7 1 = <> 8 7 1 = <@ 8 7 1 = <4 8 7 0 = < 5 8 7 0 8 7 < 8 7 > 8 7 8 7 14 8 7 /< 8 7 4> 8 7 1< 8 <@>10 Sehin%%a 11111110< <@>10 <(
Kon)ersi $ilan%an esimal #e O#tal
aitu den%an ,ara mem$a%i $ilan%an desimal den%an #emudian diam$il sisa pem$a%iann"a( -ontohF >0:5
10
V(
>0:5F @1< sisa 1 @1 sisa 0 4>F sisa 0 81
F 0 sisa 0 Sehin%%a >0:5 10 0001( Kon)ersi $ilan%an O#tal #e esimal
001
V( 10
-aran"aF 001 0 = 0 0 = 1 1 = < 7 0 8 7 0 8 7 4> 8 4>10 +adi* 0001 4>10
/(
Kon)ersi
$ilan%an
esimal
#e
e=adesimal aitu den% den%an an ,ara ,ara mem$a mem$a%i %i $ilan $ilan%a %an n desima desimall den%an 14 #emudian #emudian diam$il diam $il sisa pem$a%iann"a( -ontohF
/10
V 14
-aran"aF /F 14 <>/ sisa 0 <>/F 14 1@ sisa /
82
1@F 14 0 sisa 1@ in%at 1@ di%anti den%an ?( 0F 14 0 Sehin%%a / 10 ?/014 Kon)ersi Kon)ersi $ilan%an e=adesimal e=adesimal #e esimal B4A14 V( 10 -aran"aF B4A 711 = 14 08 74 = 1418 710 = 14<8 7 154 8 7 :4 8 7 <@40 8 </<10 Sehin%%a B4A14 </< 10
Proses ALU pada -pu 1(
-ara proses ALU pada -PU
Proses merupa#an instru#si atau perintah "an% di#er&a#an oleh ,omputer untu# men&alan#an operasi data se,ara aritmati#a dan lo%i#a "an% ila#u#an pada data( ta(
Sela Selam ma
uruta rutan n*
dan
prose roses s
data* ta*
tru tr u#turn turn" "a
data diu$ah $ah
sehin%%a
$entu# tu#*
mendapat#a t#an
hasiln"a( Setelah itu hasil terse$ut disimpan idalam data( -PU terdiri dari / $a%ian utama "aituF 83
ALU 7 aritmati,a lo%i,al unit8
-U 7 ,ontrol unit 8
REGISTER
a(
ALU 7 aritmati,a lo%i,al unit 8
Tu%as %as utama utama dari dari ALU ALU ialah ialah mela# mela#u# u#an an semua semua perhi perhitun tun%a %an n aritm aritmat ati# i#a a 7mat 7matem emat ati# i#a8 a8 "an% "an% ter& ter&ad adii sesu sesuai ai
dena dena%a %an n
inst instru# ru#si si
tam$ tam$ah ahan an**
en%u en%ura ran% n%an an**
per#alian dan se$a%ain"a( $(
-U 7-ontrol Unit8
-ontrol Unit 7 Unit #ontrol 8 men"impan perintah saat
ini
"an%
memerintah#an
ALU
dila#u#an untu#
oleh
#omputer*
mela#sanaan
dan
mendapa mendapat#an t#an #em$al #em$alii in.ormasi in.ormasi 7dari 7dari memori8 memori8 "an% "an% dipe diperlu rlu#a #an n untu# untu# mela mela#s #san ana# a#an an perin perinta tah h itu* itu* dan dan memind memindah ah#a #an n #em$a #em$ali li hasil hasil #e lo#a lo#asi si memori memori "an% "an% sesu sesuai ai(( Unit Unit ini ini $er.un% $er.un%si si men% men%on ontr trol ol pem$ pem$a, a,aa aan n instru#si pro%ram #omputer( ,(
Re%ister
84
Re%ister merupa#an alat pen"impanan #e,il "an% mempun" mempun"ai ai a#ses a#ses #e,ep #e,epatan atan tin%%i tin%%i "an% "an% di%una# di%una#an an untu untu# # men men"impa impan n data data dn inst instru ru#s #sii "an% seda sedan% n% dipe dipero rose ses s* seme sement ntar ara a masih
disimpan
di
data data dan dan
dalam
inst instru ru#s #sii
memori
lain lainn n"a
utama
untu#
menun%%u %iliran diproses( -PU Adalah $a%ian dari #omputer "an% $ertu%as menerima* men% men%o olah
mener&emah#an* in.o in.orm rmas asii
sert serta a
men"impan*
men& men&al alan an#a #an n
#ontorl "an% disimpan dalam memori
85
dan
pro% pro%ra ram m
86
BAB @ PRO-ESSING UNIT ESIGN
Peran%#at Pemroses 7-PU8 Pen%olahan
data
adalah
se$uah
proses
men&adi#an se$uah data dari data asli men&adi data "an%
$aru
7in.ormasi8
sesuai
den%an
#e$utuhan
pen%olahan( +enis data "an% diolah san%at $er)ariasi seperti te#s* %am$ar* suara dan se$a%ain"a( Pada dasarn"a s"stem ,omputer memili#i $e$erapa .un%si utama
"aitu
pro,essin%8* pemindahan
mela#u#an
pen%olahan
pen"impanan data
7data
data
data
7data
mo)ement8
7data
stora%e8*
dan
#endali
7,ontrol8( -PU
7-entral
Pro,essin%
Unit8
merupa#an
tempat pemrosesan instru#si6instru#si pro%ram( Pada 87
#omputer
mi#ro*
pro,essor
ini
dise$ut
den%an
mi,ropro,essor* namun umumn"a pen%%una ,omputer men"e$utn"a se$a%ai -PU 7-entral Pro,essin% Unit8( -PU merupa#an ota# $a%i se$uah s"stem ,omputer( -PU memili#i / #omponen utama "an% merupa#an $a%ian tu%as utaman"a "aitu unit #endali 7-ontrol Unit8* unit arithmati#a dan lo%i#a 7arithmeti, and lo%i, unit 8dan $e$erapa simpanan "an% $eru#uran #e,il "an% dise$ut den%an re%ister* "an% $er.un%si mem$antu
mela#u#an
hu$un%an
7inter.a,e8
dari
dan#e memori( Tu%as -PU adalah mela#sana#an dan men%a!al #eseluruhan operasi ,omputer sehin%%a $isa
di#ata#an
dila#sana#an
hampir
disini*
#eseluruhan
sehin%%a
serin%
pemi#iran dinama#an
se$a%ai ota# ,omputer( -PU tempatn"a terleta# pada papan indu# 7mother$oard8* pada $a%ian inilah &u%a terleta# se%ala pusat peran%#at ,omputer seperti memori* port input6output 7ICO8 dan se$a%ain"a(
Unit Kendali 7-ontrol Unit8 -ontrol Unit men%arti#an instru#si6instru#si dari pro%ram #omputer* mem$a!a data dari alat input #e 88
main memor"* men%am$il data dari main memor" untu#
diolah(
Bila
ada
instru#si
perhitun%an
arithmati#a atau per$andin%an lo%i#a* ,ontrol unit men%irim instru#si terse$ut #e arithmeti, and lo%i, unit( asil dari pen%olahan data ini di$a!a oleh ,ontrol unit #e main memor" untu# disimpan( en%an demi#ian* tu%as ,ontrol unit adalah se$a%ai $eri#utF 1(
Men%atur dan men%endali#an alat6alat
input dan output( <(
Men%am$il instru#si6instru#si dari main
memor"* Mela#u#an pen%iriman instru#si #e ALU $ila ada se$uah proses perhitun%an aritmeti, dan lo%i, dan men%a!asi #er&a ALU itu sendiri( /(
Men%am$il data dari main memor" #alau
diperlu#an oleh proses >(
Men%irim instru#si #e arithmeti, dan
lo%i, unit $ila ada perhitun%an arithmati#a dan per$andin%an lo%i#a serta men%a!asi #er&a dari arithmati, and lo%i, unit( @(
Men"impan hasil proses #e main memor"(
-ontrol unit 7-U8 ini $erupa ,hip ele#troni# "an% men%%una#an
sin"al
ele#tri# 89
"an%
men%arah#an
#eseluruhan s"stem ,omputer untu# mela#sana#an suatu arus data( alam mela#u#an a#ti)itasn"a* -U selalu $er#omuni#asi terutama den%an
ALU dan
memori untu# memasti#an #elan,aran se$uah s"stem ,omputer(
Ia
&u%a
$ertan%%un%
&a!a$
untu#
menentu#an operasi6operasi apa "an% a#an dipan%%il oleh pro%ram dan den%an ,ara $a%aimana operasi6 operasi terse$ut dila#sana#an( Keti#a
se$uah
,omputer
pertama
#ali
dihidup#an* ma#a ,omputer terse$ut men&alan#an operasi $ootstrap( Operasi ini a#an mem$a,a se$uah instru#si
dari
suatu
di#etahui
se$elumn"a
lo#asi dan
memori
"an%
mentrans.er
telah
instru#si
terse$ut #e unit #endali untu# die#se#usi( Instru#si6 instru#si di$a,a dari memori dan die#se#usi sesuai den%an urutan pen"impanann"a( Pro%ram ,ounter dari suatu
#omputer
men"impan
men"edia#an
lo#asi
instru#si
suatu
,ara
$eri#utn"a(
untu# Urutan
e#se#usi $eru$ah den%an memindah lo#asi instru#si $aru #e pro%ram ,ounter se$elum pem$a,aan 7.et,h8 instru#si di#er&a#an( -ontrol Unit merupa#an #omponen utama "an% men%arah#an sistem operasi den%an men%irim#an 90
sin"al #ontrol #e datapath( Sin"al terse$ut men%ontrol aliran data di dalam -PU dan antara -PU dan e#sternal unit seperti memori dan ICO( Kontrol $us umumn"a mem$a!a sin"al antara ,ontrol unit dan #omputer lainn"a di ,lo,# dri)en manner( Sistem &am men%hasil#an urutan "an% #ontinu dari pulsa di &an%#a !a#tu dan .re#uensi tertentu(
Aritmeti, Lo%i, Unit 7ALU8 Tu%as utama dari arithmeti, and lo%i, unit7ALU8 adalah mela#u#an semua perhitun%an arithmati# atau matemati#a "an% ter&adi sesuai den%an instru#si pro%ram( ALU
mela#u#an
instru#si
pertam$ahan*
sedan%#an untu# instru#si lain seperti pen%uran%an* per#alian*
pem$a%ian
dila#u#an
den%an
dasar
pen¨ahan( Karena dasar arithmati#an"a adalah pen¨ahan*
ma#a
sir#uit
ele#troni#
ALU
"an%
di%una#an dalam mela#sana#an operasi arithmati#a dise$ut adder( Tu%as lain dari ALU adalah mela#u#an #eputusan dari operasi lo%i#a sesuai den%an instru#si pro%ram( asil operasi pada ALU a#an di$eri#an #epada -U se$elum ditampila#n #e la"ar monitor( 91
Operasi aritmeti#a "an% dila#u#an ALU seperti penam$ahan 78* pen%uran%an 768* pem$a%ian 7C8* dan per#alian
7W8(
Sedan%#an
operasi
lo%i#a
seperti
operasi $oolean 7OR* AN* NOT8 atau per$andin%an "aitu untu# operasi per$andin%an antara dua operand "an% ada* seperti sama den%an 78* tida# sama den%an 78* #uran% dari 78* #uran% dari atau sama den%an 78* le$ih $esar dari 78* serta le$ih $esar atau sama den%an dari 78( ALU atau Unit lo%i#6aritmeti# 7aritmeti,6lo%i, unit8 adalah $a%ian #omputer "an% mela#sana#a operasi lo%is pada data "an% diproses oleh #omputer( Ba%ian #omputer ini dapat merupa#an $a%ian "an% relati. #e,il "an% terdiri dari satu atau le$ih ,hip LSI 7,hip tepadu se#ala $esar8* atau untu# pen%olah $ilan%an "an% $esar 7#omputer $erorientasi6ilmiah8* $a%ian ini terdiri dari $an"a# se#ali lari# #omponen lo%i# $er#e,epatan tin%%i( 9alaupun terdapat )ariasi dalam u#uran $enda dan #erumitann"a* mesin "an% #e,il $iasan"a mela#sana#an operasi aritmeti# dan operasi lo%isn"a den%an mema#ai prinsip "an% sama den%an mesin "an% $esar( an% $eru$ah adalah #e,epatan %er$an% lo%i, dan .lip.lop "an% dipa#ai* 92
&u%a te#ni# istime!a( dipa#ai untu# memper,epat operasi
dan
supa"a
dapat
mela#u#an
$e$erapa
operasi se,ara paralel( 9alaupun $an"a# .un%si dapat dila#sana#an oleh ALU dari mesin masa #ini* operasi aritmeti# dasar "aitu
pen¨ahan*
pen%uran%an*
per#alian*
pem$a%ian se,ara terus menerus masih merupa#an operasi 2roti dan mente%a3 7per#er&aan dasar "an% dila#u#an sehari6hari8( Idemen%enai menam$ah#an men"impan merupa#an
satu
dua
re%ister
hasiln"a prinsip
adderumum
dalam
"an%
"an%
mampu
$ersama6sama re%ister
mendasar
dan
lainn"a
pada
ALU(
Sehin%%a ALU dide.inisi#an se$a%ai se$uah unit "an% $erisi sir#uit untu# men&alan#an se#umpulan operasi mi#ro aritmati#a dan lo%i#a(
?un%si Aritmati#a pada se$uah ALU $iasan"a men,a#up inte%er* .loatin%6point7real8 dan desimal $er#ode $iner( isini operasi "an% ter&adi adalah penam$ahan* pen%uran%an* per#aliandan pem$a%ian(
93
?un%si Lo%i#a pada ALU le$ih sederhana( Untu# se%ala operasi lo%i#a "an% in%in diterap#an* ma#a han"a perlu memuat se¨ah %er$an% lo%i#a tertentu untu# operas iterse$ut7satu untu# setiap pasan%an $it input8(
Selain itu pula ALU dapat di %una#an se$a%ai Per%eseran*
den%an
menerap#an
sir#uit
%eser
#om$inasional "an% di#enal se$a%ai s#alar posisi( Karena #ita in%in men&alan#an per%eseran $ersamaan den%an .un%si aritmati#a atau lo%i#a* seperti pada per#alian atau pen%epa#an strin%* ma#a a#an le$ih e.isien untu# men6set pen%%eser diluar ALU( en%an ,ara
ini
dapat
ditam$ah#an
dua
an%#a
dan
men%%eser seluruh hasil dalam satu lan%#ah dari pada
menerus#an
hasiln"a
#e
input
ALUla%i
dan#emudian mensetup ALU untu# men%%eser an%#a terse$ut(
an% dila#u#an oleh ALU adalah men¨ah#an* men%uran%i* men%%eser* dan seterusn"a* &i#a unit itu di$eri si%nal masu#an den%an urutan "an% $enar( Ber%antun% pada elemen #endali untu# mem$eri 94
si%nal ini #arena hal itu merupa#an .un%si unit memori untu# men"iap#an elemen aritmeti# $ersama den%an in.ormasi "an% harus dipa#ai ( Kita an%%ap $ah!a
$a%ian
memori
suatu
mesin
mampu
men%irim#an si%nal #endali "an% $enar* dan $ah!a data "an% a#an diolah telah tersedia( +adi* .un%si ALU adalah men¨ah#an* men%uran%i* atau operasi "an% diperintah#an oleh elemen #endali( Alu mempun"ai dua t"peF 1(
serial6$"6$it ALU*"aitu menam$a#an satu
$it dari setiap < an%#a di%it %anda7multidi%it8 setiap !a#tu( <( di%it
Parallel ALU* "an% memproses semua se,ara
serenta#(
+auh
Le$ih
,epat
di$andin%#an serial6$"6$it( se$enarn"a semua ALU men&adi
parallel
se#aran%*
di#arena#an
pen%uran%an har%a transistors(
Konstru#si ALU In.ormasi "an% diolah dalam #omputer $iasan"a di$a%i $a%i men&adi 2#ata3* setiap #ata terdiri dari se¨ah $it tertentu ( misaln"a #ata "an% diolah oleh mesin $iner pan&an%n"a mun%#i /< $it( alam #asus 95
ini ALU mampu mela#u#an pen¨ahan* pen%uran%an dan se$a%ain"a* #ata "an% pan&an%n"a /< $it( Operan "an% diapa#ai di#irim dari pen"impanan #omputer* dan elemen #endali men%arah#an operasi "an% harus dila#sana#an(
+i#a
pen¨ahan
harus
dila#u#an
$ilan%an "an% ditam$ah#an dan penam$ahn"a harus di#irm#an
#e
ALU
"an%
harus
mela#sana#an
pen¨ahan $ilan%an itu dan men"impan hasiln"a 7¨ahn"a8 sedi#itn"a untu# sementara !a#tu( Untu# $isa memper#enal#an $e$erapa #onsep* #ita terle$ih dahulu menin&au #onsep ALU #omputer "an% $iasa dipa#ai( Peranti pen"impan terdiridari se#umpulan re%ister .lip6.lop "an% masin%6masin% terdiri dari suatu atau le$ih .lip6.lop( Pan&an% setiap re%ister dide.inisi#an se$a%ai $an"a#n"a in.ormasi ma#simum "an% dapat disimpan oleh re%ister( alam re%ister
$iner*
pan&an%
re%ister
sama
den%an
$an"a#n"a di%it $iner ma#simum "an% dapat disimpan dan dalam re%ister B-* pan&an% re%ister sama den%an $an"a#n"a di%it desimal "an% dapat disimpan dalam re%ister itu( Untu#
memudah#an*
$er$a%ai
re%ister
ALU
$iasan"a di$eri nama* misaln"a re%ister =* re%ister $* 96
re%ister MX* dan se$a%ain"a dan .lip6.lopn"a di$eri nama "an% sama* sehi%%a re%ister J $erisi .lip6.lop J1*J<*J/* dan seterusn"a( ampir
semua
#omputer
memili#i
re%ister
m#roprosesor8
7#hususn"a "an%
dise$ut
a#umulator "an% merupa#an re%ister utama untu# aritmeti# dan oprasi lo%is( Re%ister ini men"impan hasil setiap operasi aritmeti# atau operasi lo%is* dan ran%#aian pen%%er$an%an ditempel#an pada re%ister ini* sehin%%a operasi "an% perlu dila#u#an pda isin"a dan
pada
re%ister
lain
"an%
$er#aitan(
+adi
a#umulator merupa#an re%ister pen"impan dasar dari elemen aritmeti#( +i#a mesin dintru#si#an untu# memuati a#umulator* elemen #endali mula mula a#an mem$ersih#an se%ala
a#umulator
sesuatu
"an%
den%an
tersimpan
me%hapus#an di
dalamn"a*
#emudian memindah#an operan terpilih "an% ada dalam pen"impanan #e dalam re%ister a#umulator( +i#a
#omputer
itu
diperintah#an
untu#
men¨ah#an* ma#a $ilan%an "an% tersimpan dalam a#umulator a#an $erupa $ilan%an "an% ditam$ah#an( penam$ahann"a
dileta#an
dalam
memori
dan
ran%#aian #omputer a#an menam$ah#an penam$ah 97
pada
$ilan%an
"an%
tadin"a
tersimpan
dalam
#omputer dan men"impan hasil ¨ahn"a dalam a#umulator( Be$erapa #omputer $eru$ah men&adi memili#i a#umulator tun%%al #omputer itu memili#i dua atau le$ih
a#umulator*
dan
a#umulator
itu
dise$ut*
misaln"a a#umulator A* dan a#umulator B 7seperti dalam mi#roprosessor 4008 atau A--1* A--<* dan seterusn"a 7seperti dalam #omputer ata General8( Bila
$an"a#n"a
re%ister
"an%
disedia#an
untu#
men"impan operan le$ih $an"a# daripada empat* re%istern"a serin%#alidise$ut
re%ister umum*
dan
re%ister indi)idual di$eri nama* misaln"a* re%ister umum >* re%ister umum * dan seterusn"a(
Re%ister Re%ister merupa#an tempat pen"impanan #e,il "an% mempun"ai #e,epatan tin%%i* le$ih ,epat @ sampai
10
#ali
di$andin%#an
den%an
#e,epatan
pere#aman atau pen%am$ilan data di main memor"( Re%ister di%una#an untu# men"impan instru#si dan data
"an%
sedan%
diproses
oleh
-PU*
sedan%
instru#si6instru#si dan data lainn"a "an% menun%%u 98
untu# diproses disimpan di main memor"( Se,ara analo%i re%ister ini dapat dii$arat#an den%an in%atan di ota# $ila anda mela#u#an pen%olahan data se,ara manual(
Konsep
pentin%
"an%
mempen%aruhi
#e,epatan dari pro,essor adalah u#uran dari re%ister( Istilah dari 9ord si'e men%%am$ar#an u#uran dari operand re%ister "an% $er#isar dari sampaii 4> $it( Misaln"a operand re%ister mempun"ai !ord si'e /< $it* ma#a pro,essor terse$ut dise$ut den%an /<6$it pro,essor*
selan&utn"a
$an"a#
"an%
men"e$ut
#omputern"a se$a%ai #omputer /< $it( -ontoh re%ister "an% serin% di%una#an adalahF 1(
Memor" Bu..er Re%ister 7MBR8* $erisi
se$uah !ord "an% a#an disimpan di dalam memori atau di%una#an untu# menerima !ord 7susunan data $it8 dari memori( <(
Memor"
Address
Re%ister
7MAR8*
$er.un%si menentu#an alamat !ord di memori untu# ditulis#an dari MBR atau di$a,a #e MBR( /( 6$it
Instru,tion Re%ister 7IR8* $erisi instru#si op6,ode
7#ode
die#se#usi(
99
operasi8
"an%
a#an
>(
Instru#tion
Bu..er
Re%ister
7IBR8*
$er.un%si untu# men"impan sementara instru#si se$elah #anan !ord di dalam memori( @(
Pro%ram
-ounter
7P-8*
$erisi
alamat
pasan%an instru#si $eri#utn"a "an% a#an diam$il dari memori( 4( 7MX8*
A,,umulator 7A-8 dan multiple6uontient $er.un%si
untu#
men"impan
sementara
operand dan hasil operasi ALU( Seperti hasil per#alian dua $uah $ilan%an >06$it adalah se$uah $ilan%an 06$it* >06$it "an% palin% $erarti 7most si%ni.i,ant $it8 disimpan dalam A- dan >06$it "an% #uran% $erarti 7least si%ni.i,ant $it8 disimpan di MX( Be$erapa
-PU
men%%una#an
suatu
-a,he
memor" atau dise$ut se$a%ai s,rat,h6pad memor"
atau hi%h6speed $u..er atau $u..er memor" a%ar #er&a -PU le$ih e.isien dan untu# men%uran%i !a#tu "an% ter$uan%( Tanpa -a,he memor" * -PU a#an menun%%u hasil pen%olahan selesai di#irim #e memori utama $aru proses selan&utn"a $isa dila#u#an* padahal proses dari memori utama le$ih lam$at di$andin%
100
den%an #e,epatan re%ister( Leta#
-a,he memor"
antara -PU den%an memori utama( Gam$ar $eri#ut men&elas#an posisi dari ,a,he memoriF CPU
Cache memory
Memori Utama
+alur data dan &alur alamat 7ARESS8 selalu $e#er&a $eririn%an dalam men%%una#an lintasan data dari dan #e memori* "aitu mem$a,a atau men%%anti setiap data di memori dalam RAM 7Random A,,ess Memor"8( Sedan%#an ROM 7Read Onl" Memor"8 han"a dapat di$a,a dan tida# dapat dihapus( -PU
0
diran,an%
untu#
mela#sana#an
instru#si* men&alan#an operasi aritmati#a dan operasi lo%i#a*
disampin%
menerima
instru#si
dan
mele!at#an data menu&u dan dari memori( +adi si.at re%ister
mirip
den%an
)aria$le
pada
$ahasa
pemro%raman tin%#at tin%%i( +adi re%ister se$enarn"a adalah se$uah memori #e,il
7
atau
14
$it8
"an%
$er.un%si
untu#
transitC$u..er data dalam operasi oleh pro,essor 0( Re%ister ada $e$erapa &enis* masin%6masin%
101
mempun"ai
.un%si
"an%
$er$edaC#husus(
+enis
re%ister adalah se$a%ai $eri#utF General Purpose Re%ister
1(
A#umulator*
$er.un%si
se$a%ai
a#umulator $iner* operasi aritmati#a* lo%i#a* shi.t* rotasi dan lintas data dari dan #e port( <(
Basis* $er.un%si se$a%ai $ase alamat
memori* "aitu di%una#an untu# men,atat address memor" "an% isin"a a#an di#er&a#an dan dapat mela#sana#an operasi aritmati#a dan lo%i#a( /(
-ounter* di%una#an untu# perintah loop
dan perintah $lo,# trans.er* termasu# operasi strin%( >(
ata*
di%una#an
untu#
menampun%
address poil "an% tida# terdapat pada re%ister lainn"a( Pointer dan Inde= Re%ister
1(
BP
7Base
Pointer8*
di%una#an
untu#
men,atat address data di sta,# "an% di#er&a#an( <(
SP
7Sta,#
Pointer8*
di%una#an
untu#
men,atat address sta,# den%an operasi push dan pop
102
/(
SI
7Sour,e
Inde=8*
di%una#an
untu#
men,atat asal address memor" "an% isin"a a#an di#er&a#anCmenun&u# o..set sum$er >(
I 7estination Inde=8* di%una#an untu#
men,atat tu&uan address dataCmenun&u# o..set tu&uan @(
IP 7Instru,tion Pointer8* $iasan"a re%ister
ini $ersama 7-ode Se%ment8 -S untu# men,atat address tempat #ode $ahasa mesin sutu pro%ram "an% di%elar di RAMCmenun&u# instru#si $eri#ut "an% a#an die#se#usi 7tida# dapat dia#ses oleh pro%rammer8 Se%ment Re%ister
Se%ment re%ister terdiri atasF 1(
-S 7-ode Se%ment8* di%una#an untu#
men,atat address se%ment memor" tempat #ode operasi suatu pro%ram "an% a#an di$a,a dan dila#sana#an oleh -PU <(
S
men,atat
7ata address
Se%ment8* di%una#an se%ment
memor"
untu# tempat
men"impan data di memori "an% di%una#an oleh pro%ram
103
/(
SS 7Sta,# Se%ment8* di%una#an untu#
men,atat
address
se%ment
memor"
"an%
di%una#an men&adi sta,# dalam operasi push dan pop >(
ES 7E=tra Se%ment8* di%una#an $a%i data
"an% tida# terdapat dalam -S* S dan SS
104
Ma% Re%ister
Ma% re%ister di%una#an untu# menampun% tanda pada operasi "aituF 1(
Operasi
#husus
tentan%
#er&a
mi,ropro,essor* terdiri atas $itF a(
O? 7O)er ?lo!8
$(
? 7ire,tion ?la%8
,(
I? 7Interupt ?la%8
d(
TU 7Trap ?la%8
<(
Operasi Aritmati#a dan Lo%i#a* terdiri
atas $itF a(
S? 7Si%n ?la%8
$(
;? 7;ero ?la%8
,(
A? 7Au=iliar" ?la%8
d(
P? 7Parit" ?la%8
e(
-? 7-arr" ?la%8
Setiap Re%ister set $er$eda $eda dari satu #omputer #e #omputer lain( Re%ister set $iasan"a merupa#an
#om$inasi dari tu&uan
umum
se$uah
re%ister dan tu&uan #husus se$uah re%ister( Seperti naman"a
tu&uan
umum
re%ister
$er.un%si
untu#
tu&uan apapun( Sedan%#an tu&uan #husus re%ister "aitu se$a%ai #omponen "an% memili#i .un%si tertentu 105
dalam ,pu* se$a%ai ,ontoh P- 7pro%ram ,ounter8 adalah tu&uan #husus re%ister "an% di%una#an untu# men"impan
alamat
dari
instru#si
"an%
a#an
die#se#usi selan&utn"a( -ontoh lain dari tu&uan #husus re%ister adalah instru#si
re%ister
men"impan
7IR8*
instru#si
"an%
"an%
di%una#an sedan%
untu#
di&alan#an(
sedan%#an ALU &u%a $er.un%si men"edia#an sir#uit "an% di$utuh#an untu# mela#u#an aritmati#a* operasi lo%is dan per%eseran dituntut dari set instru#si( Unit #ontrol adalah entitas "an% $ertan%%un% &a!a$ untu# men%am$il memori
instru#si
utama
"an%
dan
a#an
de,odin%
die#se#usi dan
dari
#emudian
men%e#se#usin"a( Re%ister dari se$uah #omputer se,ara #ole#ti. dise$ut
se$a%ai
#umpulanre%ister
7re%isterset8(
Re%ister adalah #omponen dalam ,omputer "an% di$an%un dari .lip .lop dan %er$an%( Re%ister $iasan"a diu#ur $erdasar#an $an"a#n"a $it 7$inar" di%it8 "an% dapat disimpan( Berdasar#an data "an% di#elolan"a* re%ister dapat di$eda#an men&adiF 1(
Re%ister
data
"an%
men"impan $ilan%an inte%er 106
di%una#an
untu#
<(
Re%ister alamat "an% men"impan alamat
"an% di%una#an untu# men%a#ses memori /(
Re%ister
tu&uan
umum
"an%
dapat
men"impan data maupun alamat >(
Re%ister .loatin% point "an% men"impan
$ilan%an .loatin% point @(
Re%ister #onstanta "an% men"impan nilai
"an% han"a dapat di$a,a 4(
Re%ister )e#tor "an% men"impan data
untu# mela#u#an pemrosesan )e#tor( 5( #ondisi
Re%ister pro%ram
didalamn"an
tu&uan
#husus
7pro%ram
pen,a,ah
men"impan
state8
termasu#
pro%ram*
petun&u#
tumpu#an 7sta,# pointer8 dan re%ister status( (
Re%ister
"an%
$erhu$un%an
den%an
pen%a#sesan memori seperti re%ister penahan 7$u..er
re%ister8*
re%ister
data
dan
re%ister
alamat(
E#se#usi Instru#si Salah satu ,iri pro,essor "an% diran,an% untu# tu&uan umum 7%eneral purpose pro,essor8 adalah terdapat memori "an% men"impan intru#si dan data( 107
Pro%ram men&adi san%at dominan daripada peran%#at #erasn"a(
Peran%#at
#eras
diran,an%
se.le#si$el
mun%#in untu# men&alan#an se$uah instru#si( Instru#si "an% tersimpan dalam memori se,ara $erurutan
die#se#usi
oleh
pro,essor(
Proses
e#se#usin"a sesuai den%an alamat "an% ditun&u##an oleh pen,a,ah 7P-Cpro%ram ,ounter8( Nilai P- ini "an% di%una#an
se$a%ai
alamat
instru#si
"an%
a#an
di&alan#an oleh pro,essor( Se,ara
umum
terdapat
ti%a
tahap
dalam
e#se#usi instru#si* se$a%ai $eri#utF 1(
?et,h
Pen%am$ilan
instru#si
dari
memori
den%an
men%%una#an P- se$a%ai alamatn"a( Pada $e$erapa pro,essor
instru#si
disimpan
sementara
dalam
Re%ister Instru#si( Pen,a,ah
7P-8
men%eluar#an
nilai
"an%
di%una#an se$a%ai alamat memori instru#si "an% a#an di$a,a( Instru#si "an% telah di$a,a di$a%i men&adi $e$erapa se%men dan di#irim #e #omponen "an% $er$eda( <(
e,ode
108
Pener&emahan #ode operasi "an% ditun&u##an oleh 4 $it #ode operasi( Proses ini dila#u#an di unit #endali "an% selan&utn"a men%eluar#an sin"al #endali untu# men&alan#an instru#si terse$ut( Proses ini $ertu&uan untu# mener&emah#an #ode operasi dan men%hasil#an : $its #endali serin% dise$ut se$a%ai mi#roinstru#si( /( Tahap
E=e,ute men&alan#an
instru#si
"an%
telah
diter&emah#an( Ter%antun% dari &enis instru#si "an% die#se#usi( Tahap a#hir dalam men&alan#an instru#si "aitu e#se#usi( alam e#se#usi instru#si* suatu instru#si di$eda#an men&adi ti%a #elas se$a%ai $eri#utF 1(
Tipe6R 7R6t"pe8
Tipe ini di%una#an untu# men&alan#an operasi6 operasi aritmati#( <(
LoadCStore t"pe
Tipe ini di%una#an untu# men&alan#an instru#si "an%
$er#aitan
den%an
memori
maupun menulis( /(
Bran,h6t"pe
109
$ai#
mem$a,a
Tipe ini di%una#an untu# men&alan#an instru#si lompatan dan pen,a$an%an(
ata Path -PU dapat di$a%i men&adi $a%ian data dan $a%ian #ontrol( Ba%ian data*"an% $iasa"a dise$ut datapath* datapath $erisi re%ister dan ALU( atapath adalah #apa$el "an% mela#u#an operasi tertentu pada item data( Ba%ian #ontrol pada dasarn"a adalah unit #ontrol* "an% men%eluar#an sin"al #ontrol untu# datapath terse$ut( dari internal #e -PU* data "an% $erpindah dari satu re%ister #e re%ister "an% lain"a dan diantara ALU dan re%ister( Gera#an data internal dila#u#an melalui $us lo#al* "an% dapat mem$a!a data*instru#si* dan alamat( Se,ara e#sternal* data "an% $er%era# dari re%ister #e memori dan peran%#at ICO* serin%#ali den%an men%%una#an $us sistem( Per%era#an data internal di antarare%ister dan antara ALU
dan
re%ister
dapat
dila#u#an
den%an
men%%una#an $er$a%aior%anisasi termasu# satu $us* dua $us* atau or%anisasi ti%a $us( Menurut pendapat datapaths &u%a dapat di%una#an di antara #omponen 110
#omponen "an% mentrans.er data di antara mere#a le$ih serin%( Se$a%ai ,ontohn"a* isi dari P- ditrans.er #eMAR untu# men%am$il instru#si $aru pada a!al setiap si#lus instru#si( Oleh #arena itu*a datapath #husus
dari
P-
#e
MAR
dapat
$er%una
memper,epat ini$a%ian dari e#se#usi instru#si(
111
dalam
112
BAB 4 ESAIN SISTEM MEMORI
Memor" men"impan
merupa#an $ersi.at
alat
pen"impanan
sementara
atau
"an%
permanen(
Memor" di$utuh#an #omputer untu# memudah#an pen"impanan
dan
pemrosesan
data(
Ke$utuhan
pen%olahan dan pen"impanan data oleh user sema#in menin%#at seirin% $er#em$an%n"a #e$utuhan dan te#nolo%i*
oleh
#arena
itu
pen"impanan "an% dapat
di$utuh#an
memori
mema#simal#an #iner&a
#omputer* $u#an han"a dalam hal #apasitas* namun &u%a dalam hal #e,epatan a#ses data( Pen"impanan dalam #omputer di$a%i men&adi dua $a%ian utama "aitu memori utama dan memori se#under( Pro%ram6pro%ram dalam #omputer dapat di&alan#an &i#a terleta# dalam memori utama #arena 113
pro%ram6pro%ram
terse$ut
dapat
men%a#ses
$e$erapa in.ormasi se,ara lan%sun% di sini* ma#a a%ar dapat $er&alan den%an optimal semua data harus di olah dan disimpan dalam memori utama* namun hal ini tida# mun%#in #arena( 1(
Memori
utama
memili#i
tempat
pen"impanan "an% san%at #e,il sehin%%a tida# memun%#in#an
untu#
men"impan
data
"an%
san%at $esar <(
Memori utama $ersi.at )olatile* "a#ni
data "an% tersimpan dalam memori ini a#an hilan% #eti#a da"a dalam #omputer dimati#an A%ar #omputer dapat mela#u#an pen%olahan data "an% e.e#ti. dan e.isien* para ahli mela#u#an $er$a%ai riset untu# menemu#an suatu tero$osan memor" "an% dapat men"impan dalam #apasitas $esar namun memili#i #e,epatan a#ses "an% tin%%i( al ini tentu sa&a san%at sulit dila#u#an men%in%at mahaln"a har%a memori "an% memili#i #e,epatan a#ses tin%%i* oleh #arena itu diperlu#an suatu hirar#i memori 7tin%#atan memori8 "an% dapat memenuhi #e$utuhan6#e$utuhan terse$ut(
114
irar#i Memori Sistem hirar#i memori memun%#in#an memori memili#i !a#tu a#ses "an% tin%%i den%an har%a "an% murah dan memili#i pen"impanan "an% $esar( Sistem hirar#i ini memerlu#an $e$erapa &enis memori a%ar dapat men%optimal#an #iner&a #omputer* diantaran"a "aitu memori re%ister* memori ,a,he* memori utama dan $e$erapa memori pen"impanan lain* $eri#ut ,ontoh hirar#i memori "an% dipa#ai saat ini(
Gam$ar 5( irar#i Memori Komponen6#omponen dalam hirar#i memoriF a(
-PU
-PU Re%isters merupa#an
#omponen
terpentin%
dari
sistem #omputer( -PU adalah #omponen pen%olah 115
data $erdasar#an instru#si6instru#si "an% di$eri#an #epadan"a( -PU terdiri dari dua $a%ian utama "aitu unit #endali 7,ontrol unit8 dan unit aritmati#a dan lo%i#a 7ALU8 selain itu* -PU mempun"ai $e$erapa alat pen"impan
"an%
$eru#uran
#e,il
"an%
dise$ut
re%ister( Unit Kendali 7-ontrol Unit8* $ertu%as men%ontrol operasi -PU dan se,ara #eselurahan men%ontrol #omputer sehin%%a ter&adi sin#ronisasi #er&a antar #omponen
dalam
men&alan#an
.un%si6.un%si
operasin"a( Termasu# dalam tan%%un% &a!a$ unit #ontrol
adalah men%am$il
memori
utama
dan
instru#si6instru#si
menentu#an
&enis
dari
instru#si
terse$ut( -PU $er.un%si seperti #al#ulator* han"a sa&a -PU memili#i da"a proses "an% le$ih tin%%i( ?un%si utama dari -PU adalah mela#u#an operasi aritmati#a dan lo%i#a terhadap data "an% diam$il dari memori atau dari in.ormasi "an% dimasu##an melalui $e$erapa peran%#at #eras* seperti papan #eti#*pemindai* tuas #ontrol* maupun teti#us( -PU di#ontrol men%%una#an se#umpulan
instru#si
peran%#at
luna#
#omputer(
Peran%#at luna# terse$ut dapat di&alan#an oleh -PU 116
den%an mem$a,an"a dari media pen"impan seperti ,a#ram #eras* dis#et* ,a#ram padat* maupun pita pere#am(
Instru#si6instru#si
terse$ut
#emudian
disimpan terle$ih dahulu pada memori .isi# 7RAM8* "an% mana setiap instru#si a#an di$eri alamat uni# "an% dise$ut alamat memori( Selan&utn"a* -PU dapat men%a#ses data6data pada RAM den%an menentu#an alamat data "an% di#ehenda#i( Saat se$uah pro%ram die#se#usi* data men%alir dari RAM #e se$uah unit "an% dise$ut den%an $us "an% men%hu$un%#an antara -PU den%an RAM( ata #emudian dide#ode den%an men%%una#an unit proses "an% dise$ut
se$a%ai pende#oder
instru#si "an%
san%%up mener&emah#an instru#si( ata #emudian $er&alan #e unit aritmati#a dan lo%i#a 7ALU8 "an% mela#u#an #al#ulasi dan per$andin%an( Suatu data $isa disimpan sementara oleh ALU dalam se$uah lo#asi memori "an% dise$ut den%an re%ister supa"a dapat diam$il #em$ali den%an ,epat untu# diolah( ALU dapat mela#u#an operasi6operasi tertentu*
meliputi
pen¨ahan*
per#alian*
pen%uran%an* pen%u&ian #ondisi data dalam re%ister* hin%%a men%irim#an hasil pemrosesann"a #em$ali #e 117
memori .isi#* media pen"impan atau re%ister untu# diolah la%i( Selama proses ini ter&adi* se$uah unit dalam -PU "an% dise$ut den%an pen%hitun% pro%ram a#an memantau instru#si "an% su#ses di&alan#an supa"a instru#si terse$ut dapat die#se#usi den%an urutan "an% $enar dan sesuai( $(
Memori -a,he
-a,he $erasal dari #ata ,ash "an% artin"a tempat men"em$un"i#an atau tempat men"impan sementara( -a,he merupa#an memori "an% memili#i #apasitas le$ih #e,il dari memori utama namun memili#i #e,epatan "an% le$ih $esar dari memori utama( Pen"impanan sementara ini memun%#in#an penin%#atan trans.er data den%an ,ara men"impan data "an% pernah dia#ses pada ,a,he terse$ut* sehin%%a apa$ila data "an% in%in dia#ses adalah data "an% sama ma#a* a#ses a#an dapat dila#u#an le$ih ,epat( Memori ,a,he ini terleta# antara re%ister dan RAM 7main memor"8 sehin%%a pemrosesan data dari re%ister tida# lan%sun% men%a,u pada memori utama( ,(
-PU
Memori Utama 7Main Memor"8 7-entral
Pro,essin%
Unit 8
han"a
dapat
men"impan data dan intstru#si di re%ister "an% 118
memili#i
u#uran
#e,il*
sehin%%a
tida#
dapat
men"impan semua in.ormasi "an% di$utuh#an seluruh proses( Untu# men%atasi hal ini di$uat suatu alat pemroses "an% memili#i da"a tampun% $esar* saperti memori utama( Memori utama merupa#an #umpulan $lo#6$lo# arra" di mana masin%6masin% $lo# terse$ut dapat men"impan suatu in.ormasi $ai# $erupa data maupun intstru#si
dan
tiap6tiap
$lo#
lo#asi
terse$ut
ditun&ut##an oleh suatu alamat "an% dise$ut den%an address memor" ( d(
Pen"impanan
Se#under
7Se,ondar"
Stora%e8 Ke$utuhan
a#an
memori
utama
sa&a
tida#
men,u#upi* ma#a diperlu#an peralatan tam$ahan untu# men"impan data "an% le$ih $esar( Kapasitas memori pen"impan dapat mempen%aruhi #e,epatan pemrosesan data( e(
Pada
irar#i -a,he memor" semua
si#lus
instru#si*
prosesor
men%a#ses setida#n"a satu #ali untu# mem$a,a instru#si $ah#an le$ih* untu# mem$a,a operand danCatau men"impan hasiln"a( Ke,epatan e#se#usi 119
se$uah prosessor &elas di$atasi oleh !a#tu si#lus memori(
Keter$atasan
ini
ter&adi
#arena
adan"a
#etida# ,o,o#an antara #e,epatan prosessor dan memori utama( Untu# men&em$atani #etida#sesuaian ini para ahli men%%una#an suatu memori #husus "an% di se$ut -a,he memor" ( -a,he memor" adalah memori $er$asis SRAM
$eru#uran #e,il dan $er#e,epatan tin%%i "an% di #endali#an se,ara otomatis oleh hard!are( U#uran ,a,he ,u#up #e,il sehin%%a har%a rata6rata per $it
mende#ati har%a
memori utama( Sema#in $esar
,a,he* sema#in $esar ¨ah %ate "an% terdapat pada pen%alamatan ,a,he( Penemuan untu#
-a,he
mem$eri#an
mende#ati
#e,epatan
memor" merupa#an
#e,epatan prosesor*
memori dan
solusi "an%
se#ali%us
mem$eri#an memori semi#ondu#tor "an% $eru#uran $esar den%an har%a "an% murah( -a,he memor" menin%#at#an
#iner&a
#omputer
den%an
,ara
men&em$atani per$edaan #e,epatan antara -PUdan memori utama(
120
2'3
2ache
4emori 3tama
Gam$ar ( u$un%an -a,he memor" den%an memori utama In.ormasi "an% terleta# di memori ,a,he dapat dia#ses dalam !a#tu "an% le$ih #e,il di$andin%#an pen%a#sesan
in.ormasi
dalam
memori
utama(
Be$erapa perintah dan data "an% ditampun% dalam -a,he
memor" $iasan"a
memili#i
!a#tu
a#ses
se#itar 106<@ dari !a#tu "an% diperlu#an untu# men%a#ses memor" utama( en%an demi#ian* satu unit pen%olah pusat 7-PU8 den%an memori ,a,he $isamen%%una#an &auh le$ih sedi#it !a#tu menun%%u instru#si dan operan "an% a#an diam$il danCatau disimpan(
Komputer
"an%
tida#
memili#i
-a,he
memor" memili#i per$edaan "an% si%ni.i#an den%an
#omputer "an% men%%una#an -a,he memor" dalam hal #e,epatan( 121
a(
+enis6&enis -a,he memor"
Berdasar#an
leta#n"a*
memor" di$a%i
-a,he
men&adi dua ma,am* "aitu( i( internal
-a,he
memor" "an%
pro,essor*
terdapat
pada
memor" &enis
-a,he
ini
memili#i #e,epatan a#ses "an% san%at tin%%i dan har%an"a san%at mahal( al ini $isa terlihat pada prosesor
"an%
$erhar%a
mahal
seperti
P>*
P/*AM6Athlon* dll( Sema#in tin%%i #apasitas L1* L< -a,he memor" ma#a sema#in mahal dan sema#in ,epat pro,essor( ii(
-a,he memor" "an% terdapat di luar
pro,essor*
"aitu
memori &enis
ini
$erada
pada
mother$oard*
#e,epatan a#sesn"a san%at
tin%%i* mes#ipun tida# se,epat ,a,he memori &enis pertama 7"an% ada pada internal pro,essor8( Sema#in $esar #apasitasn"a ma#a sema#in mahal dan
,epat(
mother$oard
al
ini
den%an
$isa
#ita
lihat
$erane#a
pada ra%am
#apasitas-a,he memor"* "aitu <@4 #$* @1< #$* 1 M$* < M$* dll( -a,he memor" $iasan"a mempun"ai $e$erapa
le)el "an% menun&u##an tin%#at #ede#atann"a den%an 122
mi#roprosesor,ontoh* L1 ,a,he ada pada ,hip "an% sama den%an mi#roprosesor 7$uilt6in8* sedan%#an L< ,a,he adalah -a,he memor" "an% merupa#an ,hip tersendiri "an% terpisah dari mi,ropro,essor( $(
Prinsip #er&a ,a,he memor"
-a,he $erisi salinan se$a%ian memori utama( Pada saat -PU mem$a,a se$uah !ord memori* ma#a dila#u#an pemeri#saan untu# men%etahui apa#ah !ord terdapat pada ,a,he atau tida#( +i#a ada ma#a !ord a#an di#irim #e prosesor dan &i#a tida# ada ma#a $lo# memori utama "an% terdiri dari se¨ah !ord a#an di$a,a#an #e dalam ,a,he #emudian di#irim #e prosesor(
123
Gam$ar ( Operasi pem$a,aan ,a,he ,(
?un%si pemetaan 7 mappin% 8
-a,he memor" memili#i $e$erapa saluran "an%
dihu$un%#an den%an $lo#6$lo# memori utama* namun saluran
,a,he
memili#i
¨ah
le$ih
sedi#it
di$andin%#an den%an $lo#6$lo# terse$ut* sehin%%a perlu al%oritma untu# pemetaan $lo#6$lo# memori #e dalam saluran ,a,he dan diperlu#an alat untu# menentu#an
$lo#
memori
utama
"an%
sedan%
mema#ai saluran ,a,he( Pemilihan .un%si pemetaan dalam ,a,he $isa $ersi.at lan%sun%* asosiati. dan set6 124
asosiati.(
Per$edaan
terleta#
pada
#eti%a te#ni#
#riteria
"an%
pemetaan
di%un#an
ini
untu#
menempat#an ,a,he dalam se$uah $lo# memori utama dan pen%%antian ,a,he den%an $lo# masu# #eti#a $lo# terse$ut penuh( i(Pemetaan lan%sun% 7 ire,t mappin% 8 ire,t mappin% merupa#an te#ni# pemetaan "an%
palin% sederhana* "aitu meleta##an masin%6masin% $lo# memori utama han"a #e se$uah saluran ,a,he sa&a( ?un%si pemetaan ini mudah diimplementasi#an men%%una#an alamat( -a,he "an% dia#ses den%an men%%una#an alamat memori utama dian%%ap terdiri dari ti%a .ield "aitu ta% * line dan !ord(
125
Gam$ar :( Te#ni# pemetaan lan%sun% Pemetaan dalam
se,ara
lan%sun%
#esederhanaan
memili#i
al%oritma
#euntun%an
pemetaann"a(
Kesederhanaan dalam menentu#an #e$eradaan untu# menempat#an $lo# memori utama dalam ,a,he ini memudah#an
proses
pemetaan*
namun
te#ni#
pemetaan ini tida# e.e#ti. untu# pemetaan dalam ¨ah $an"a#( Ke#uran%an te#ni# pemetaan ini adalah terdapat lo#asi ,a,he "an% tetap untu# sem$aran% $lo#6$lo# "an%
di#etahui*
pro%ram
se,ara
den%an
demi#ian
$erulan%6ulan% 126
apa$ila
mela#u#an
suatu !ord
re.eren,e dari dua $lo# "an% $er$eda memeta#an #e saluran "an% sama* ma#a $lo#6$lo# itu se,ara terus menerus a#an di s!ap #e dalam ,a,he* a#i$atn"a rasio hitn"a a#an men&adi rendah(
ii(
Pemetaan
asosiati.
7 ?ull"
asso,iati)e
mappin% 8
Pemetaan
asosiati.
dapat
men%atasi
#e#uran%an
pemetaan lan%sun% den%an ,ara men%i'in#an setiap $lo# memori utama untu# dimuat#an #e sem$aran% saluran
,a,he(
alam
hal
ini*
,ontrollo%i,,a,he
men%interpretasi#an alamat memori han"a se$a%ai se$uah .ield ta% dan .ield !ord( ?ield ta% se,ara uni# men%identi.i#asi suatu $lo# memori utama( Untu# menentu#an apa#ah suatu $lo# $erada di dalam ,a,he* ma#a,ontrol lo%i, ,a,heharus se,ara simultan memeri#sa setiap saluran ta% "an% sesuai( en%an pemetaan asosiati.* terdapat .le#si$ilitas pen%%antian $lo# #eti#a se$uah $lo# di $a,a #e dalam ,a,he( Se$uah $lo# input memori utama dapat ditempat#an di tempat manapun "an% memili#i $lo# ,a,he( Oleh #arena itu* alamat "an% di#eluar#an oleh prosesor 127
han"a perlu memili#i dua $idan% "aitu ta%* untu# men%identi.i#asi $lo# sementara ,a,he
dan
!ord* untu#
"an% $erada di
men%identi.i#asi
elemen
dalam $lo# "an% diminta oleh prosesor(
Gam$ar 10( Te#ni# pemetaan .ull"6asso,iati)e Ke#uran%an
pemetaan
ini
adalah
#omple#sitas
ran%#aian "an% diperlu#an untu# men%u&i ta% seluruh saluran ,a,he se,ara paralel(
iii(
Pemetaan set6asosiati. 7Set6Asso,iati)e
mappin%8 Te#ni# pemetaan ini
dila#u#an
den%an
mem$a%i
,a,he men&adi $e$erapa set( Setiap set terdiri dari se¨ah $lo#( Setiap satu set ,a,he memili#i peta 128
$lo# memori utama $erdasar#an pada persamaan* dimana S adalah ¨ah set dalam ,a,he*i adalah ¨ah
$lo#
memori
utama*
dan s adalah
,a,he
#husus "an% diatur untu# mem$lo#ir peta i namun* se$uah $lo# "an% masu# peta #e setiap $lo# di ditempat#an oleh set ,a,he oleh #arena itu* alamat "an% di#eluar#an oleh prosesor di$a%i men&adi ti%a $idan% "an% $er$eda "a#ni ta%* set dan !ord( Ta% merupa#an $lo# uni# "an% ditar%et#an dalam set "an%
ditentu#an(
Set
di%una#an
untu#
men%identi.i#asi set ,a,he tertentu "an% idealn"a harus meme%an% $lo# "an% ditar%et#an( Sedan%#an !ord di%una#an untu# men%identi.i#asi elemen 7#ata8 dalam $lo# "an% diminta oleh prosesor
129
Gam$ar 11( Te#ni# pemetaan set6 asso,iati)e d(
Al%oritma
pen%%antian
7 repla,ement
al%orithm 8
Al%oritma pen%%antian $e#er&a den%an memilih $lo# "an% a#an di%anti( A%ar le$ih e.e#ti.* $lo# "an% di%anti 130
adalah $lo# "an% memili#i #emun%#inan palin% #e,il untu# di%una#an #em$ali pada !a#tu de#at "aitu den%an men%%anti $lo# "an% palin% lama $erada di dalam ,a,he den%an tanpa ada re.erensi #e $lo# terse$ut( Al%oritma pen%%antian ini serin% dise$ut se$a%ai
al%oritma
Me#anisme
Least
hard!are
Re,entl"
Used
diperlu#an
7LRU8( untu#
men%identi.i#asi $lo# "an% Least Re,entl" Used( Pada
dasarn"a
te#ni#
pen%%antian
di
$eda#an
men&adi / "aitu* Random Sele,tion* ?irst In ?irst Out 7?I?O8 dan Least Re,entl" Used 7LRU8( Random Sele,tion adalah $lo# "an% dipilih se,ara a,a#* sementara al%oritma?irst In ?irst Out 7?I?O8 adalah $lo# "an% $erada di ,a,he "an% terpan&an%* dan "an% tera#hir adalah Least Re,entl" Used 7LRU8* LRU adalah $lo# "an% di%una#an sementara dalam ,a,he( Apa$ila isi $lo# "an% terdapat di dalam ,a,he telah $eru$ah* $lo# terse$ut perlu ditulisa#an #em$ali #e dalam
memori
utama
se$elum
men%%anti#ann"a(
9rite poli," a#an $e#er&a apa$ila operasi penulisan memori ter&adi( Penulisan dapat ter&adi apa$ila $lo# itu di6update( Pada #asus lainn"a* penulisan han"a dapat ter&adi apa$ila $lo# di%anti( Poli," "an% dise$ut 131
tera#hir meminimal#an operasi penulisan memori* namun men"e$a$#an memori utama men&adi tida# $er%una(
Keadaan
seperti
itu
a#an
men%%an%u
operasi multiprosesor dan dire,t memori a,,es "an% dila#u#an oleh modul6modul ICO( e(
Ke$i&a#an
,a,he6!rite
7-a,he
9rite
Poli," 8
Koherensi antara ,a,he6!ord dan salinann"a dalammemori utama harus dipertahan#an setiap saat &i#a mun%#in( Se¨ah #e$i&a#an 7te#ni#8 di%una#an dalam mela#u#an operasi !rite untu# $lo# memori utama
saat
$erada
di
dalam
,a,he(
Ke$i&a#an6
#e$i&a#an ini menentu#an tin%#at #oherensi "an% dapat dipertahan#an antara ,a,he6!ord dan re#an6 re#ann"a
di
memori
utama(
Ke$i&a#an6#e$i&a#an
dalam ,a,he6!rite ada /( i(
-a,he 9rite Poli,ies Upon a -a,he it
Ada dua #e$i&a#an "an% mun%#in pada ,a,he6hit ( a(
9rite6throu%h
Setiap operasi !rite untu# ,a,he diulan% #e memori utama di !a#tu "an% sama( Ke$i&a#an !rite6 throu%h dapat mempertahan#an #oherensi antara ,a,he $lo# dan re#an6re#an mere#a di memori utama 132
den%an
men%or$an#an
di$utuh#an
untu#
!a#tu
menulis
#e
tam$ahan memori
"an% utama(
Ke$i&a#an ini dapat menin%#at#an rata6rata !a#tu a#ses $(
9rite6$a,#
Semua
#e$i&a#an
!rite
di$uat
untu#
,a,he( Ke$i&a#an !rite #e memori utama ditunda sampai pen%%anti di$utuh#an( Setiap ,a,he $lo# "an% dise$ut $it di%una#an untu# menun&u##an $ah!a operasi !rite telah dila#u#an untu# $lo# saat $erada dalam
,a,he(
Pada
saat
pen%%antian*
$it
#otor
diperi#sa* &i#a sudah diatur* ma#a $lo# terse$ut ditulis #em$ali #e memori utama* &i#a tida#* $lo# itu han"a ditimpa oleh $lo# "an% masu#( Koherensi han"a di&amin pada saat pen%%antian
ii(
-a,he 9rite Poli,ies Upon a -a,he Miss
Ke$i&a#an ini memili#i dua s#ema "an% dapat di%una#an( a(
9rite6allo,ate
S#ema ini mem$a!a $lo# memori utama #e ,a,he #emudian diper$arui $(
9rite6no6allo,ate 133
Ber$eda den%an s#ema !rite6allo,ate * dalam s#ema ini $lo# memori utama "an% hilan% diper$arui #eti#a $erada di memori utama dan tida# di$a!a #e ,a,he(
iii( -a,he Read Poli,ies Upon a -a,he Miss
Ada dua strate%i "an% dapat di%una#an dalam -a,he Read Poli,ies Upon a -a,he Miss(
a(
Blo# memori utama "an% hilan% di$a!a
#e ,a,he sementara !ord diterus#an lan%sun% #e -PU se%era setelah tersedia $(
Blo#
memori
utama
"an%
hilan%
sepenuhn"a disimpan dalam ,a,he dan !ord "an% diperlu#an #emudian diterus#an #e -PU
.(
Analisis
or%anisasi
,a,he
dalam
#ehidupan n"ata i(
Le)el memori ,a,he
alam ,a,he memori ada ti%a le)el "aitu L1*L< dan L/( a(
-a,he le)el 1 7L18
-a,he memori L1 adalah ,a,he memori "an% terleta# dalam prosesor 7,a,he internal8( -a,he 134
ini memili#i #e,epatan a#ses palin% tin%%i dan har%an"a
palin%
mahal(
U#uran
memori
$er#em$an% mulai dari K$* 4>K$ dan 1<K$( $(
-a,he le)el < 7L<8
-a,he ini memili#i #apasitas "an% le$ih $esar
di$andin%#an
$er#isar
antara
den%an
<@4K$
,a,he
sampai
L1
"aitu
den%an
namun ,a,he L< inimemili#i #e,epatan "an% le$ih rendah dari ,a,he L1( -a,he L< terleta# terpisah den%an prosesor atau dise$ut den%an ,a,he e#sternal(
135
,(
-a,he le)el / 7L/8
-a,he le)el / han"a dimili#i oleh prosesor "an% memili#i unit
le$ih dari satu misaln"a
dual,ore dan uad,ore( ?un%sin"a adalah untu# men%ontrol data "an% masu# dari ,a,he L< dari masin%6masin% inti prosesor( -a,he L1 dan L< merupa#an memori sementara pada pro,essor( +adi #eti#a #omputer dimati#an* ma#a in%atan "an% ada pada pro,essor terse$ut a#an hilan%( L1 dan L< mempun"ai .un%si dan per$edaan* $eri#ut ta$el per$edaan antara ,a,he L1( L< dan L/( -a,he L1 -a,he L1
-a,he L< -a,he L<
-a,he L/ -a,he L/
adalahmemori
adalahmemori
memili#i#apas
"an% utama(
"an% #edua
itasle$ih$esar
7se#under8(
dari -a,he L<(
Ke,epatann "asamaden%an#e
Ke,epatann"
Le$ihlam
,epatan
adi$a!ah#e,epat
$atdari -a,he
pro,essor
an -a,he L1
L< tetetapile$ih, epatdarimemo
ii(
Implementasi
#omputer 136
memori
riutama 7L18 ,a,he dalam
Pen%%unaan
,a,he
san%at
$erman.aat
untu#
men%optimal#an #iner&a #omputer* $eri#ut $e$erapa #omputer
"an%
meman.aat#an
,a,he
dalam
mana&emen memorin"a(
a( Po!erP-
Po!erP- 40> Pro,essor -a,he ,a,he
"an%
ter$a%i men&adi
data dan
instru#si ,a,he* dise$ut ar)ard Or%ani'ation( Kedua instru#si dan ,a,he data diatur men&adi 146K$"te empat arah set asosiati.
$(
PM-6Sierra RM5000A 4>6$it MIPS RIS-
Pro,essor RM5000 men%%una#an or%anisasi ,a,he "an% $er$eda di$andin%#an den%an Intel dan Po!erP-( alam #asus ini* ,a,he terpisah men&adi /F Instru#si
,a,heprimer*
A
14
K$"tes*
>6!a"
men%atur ,a,he asosiati. den%an u#uran $lo# /<6$"te 7delapan instru#si8(
Primar" -a,he ataF A 14 K$"tes* >6!a"
men%atur ,a,he asosiati. den%an /< $"te u#uran $lo# 7delapan #ata8(
137
-a,he Se#underF A <@4 K$"tes* >6!a"
men%atur ,a,he asosiati. untu# #edua instru#si dan data( Selain ti%a ,a,he on6,hip* RM5000 men"edia#an antarmu#a
-a,he
tersier
$erdedi#asi*
"an%
mendu#un% u#uran ,a,he tersier @1< K$"tes* < M$"tes* dan M$"tes( -a,he tersier ini han"a dia#ses setelah ,a,he miss se#under(
138
139
BAB 5 ESAIN SISTEM MEMOR
Memori Utama Komponen
"an%
palin%
pentin% dari se$uah
memori adalah memorin"a( Tanpa memori pasti tida# a#an
#omputer6#omputer
seperti
"an%
di#enal
se#aran%( Memori di%una#an untu# men"impan $ai# instru#si6instru#si
"an% harus di&alan#an maupun
data( ( Memori adalah $a%ian dari #omputer tempat pro%ram6pro%ram dan data6data disimpan( Be$erapa pa#ar ,omputer 7terutama "an% $erasal dari In%%ris8 men%%una#an
istilah
store
atau
stora%e
untu#
memori* mes#ipun #ata 2stora%e3 serin% di%una#an untu#
menun&u#
#e
pen"impanan 140
dis#et(
Tanpa
se$uah memori se$a%ai tempat untu# mendapat#an in.ormasi %una di$a,a dan ditulis oleh prosesor* ma#a tida# a#an ada #omputer6#omputer di%ital den%an s"stem pen"impanan pro%ram( Satuan po#o# memori adalah di%it $iner* "an% dise$ut $it( Se$uah $it dapat $erisi se$uah an%#a 0 dan 1( Ini adalah satuan "an% palin% sederhana( 7Se$uah peralatan untu# men"impan han"a an%#a nol mustahil
dapat
mem$entu#
landasan
dari
suatu
s"stem memori palin% tida# diperlu#an dua nilai8(
Memori
utama
men"edia#an
pen"impanan utama untu# #omputer (
ua re%ister -PU "an% di%una#an untu#
antarmu#a -PU #e memori utamaF
Memor" Address Re%ister 7 MAR 8
dan
The
Memor"
ata
Re%ister
7 MR 8F di%una#an untu# men"impan data "an% a#an disimpan dan C atau diam$il di C dari lo#asi memori "an% alamat diada#an di MAR(
141
Gam$ar 5( 1 al ini dimun%#in#an untu# mem)isualisasi#an memori internal utama #has Stru#tur se$a%ai terdiri dari $aris dan #olom dasar sel ( Setiap sel mampu men"impan satu $it in.ormasi(
142
alam te#nolo%i -MOS statis* setiap sel memori utama terdiri dari enam transistor ( Enam transistor sel memori -MOS statis terdiri dari dua in)erter #em$ali #e $ela#an% ( Perlu di,atat $ah!a sel $isa ada di salah satu dari dua ne%ara "an% sta$il( Kedua transistor
N/
dan
N>
di%una#an
untu#
men%hu$un%#an sel #e dua data 7 $it 8 $aris ( +i#a #ata
pilih
tida#
dia#ti.#an*
dua
transistor
ini
dimati#an* sehin%%a melindun%i sel dari si%nal)alues di$a!a oleh %aris data( Kedua transistor dia#ti.#an #eti#a #ata pilih $aris dia#ti.#an ( Apa "an% ter&adi
143
#eti#a dua transistor dihidup#an a#an ter%antun% pada operasi intendedmemor"
144
Stati, -MOS Memor" Sel
Alamat6alamat Memori Memori6memori terdiri dari se¨ah ,ell6,ell masin%6masin% dapat men"impan sepoton% in.ormasi( Setiap ,ell memili#i se$uah an%#a* "an% dise$ut alamat* "an% dapat dipa#ai pro%ram6pro%ram se$a%ai a,uan( +i#a se$uah memori memili#i n ,ell* ,ell6,ell terse$ut memili#i alamat6alamat 0 sampai n61( Semua ,ell dalam se$uah memori $erisi ¨ah $it "an% sama( +i#a se$uah ,ell terdiri dari # $it* ,ell terse$ut dapat men"impan salah satu dari <# #om$inasi $it "an%
$er$eda(
Komputer6#omputer
"an%
men%%una#an s"stem $ilan%an $iner 7termasu# notasi o,tal
dan
he#sadesimal 145
untu#
$ilan%an6$ilan%an
$iner8( +i#a se$uah alamat memili#i an%#a ma#simum dari ,ell6,ell "an% dapat dialamat#an adalah < m( Si%ni.i#ansi ,ell adalah ,ell merupa#an satuan ter#e,il "an% dapat dialamat#an( e!asa ini* hamper semua
perusahaan
pem$uat
,omputer
telah
menetap#an se$uah ,ell $it se$a%ai standar "an% dise$ut $"te( B"te6$"te di#elompo##an dalam !ord( Se$uah ,omputer den%an se$uah !ord /< $it memili#i > $"teC!ord* sementara se$uah ,omputer den%an 4> $it memili#i $"teC!ord( Si%ni.i#ansi se$uah !ord adalah se$a%ian $esar instru#si $eroperasi pada semua !ord* ,ontoh* den%an menam$ah#an dua !ord $ersama6sama( memili#i
+adi
se$uah
re%ister6re%ister
mesin
/<
$it
/<
$it
dan
a#an
instru#si6
instru#si untu# memanipulasi !ord /< $it* sedan%#an se$uah mesin 4> $it a#an memili#i re%ister6re%ister 4> $it dan instru#si6instru#si untu# meminda#an* menam$ah#an*
men%uran%i*
dan
se$ali#n"a
memanipulasi !ord 4> $it(
Re%ister ?lip6.lop #on.i%urasi(
tersedia
dalam
Salah6satu 146
$er$a%ai
#on.i%urasin"a
ma,am "an%
sederhana $erisi dua .lip6.lop independen den%an sin"al ,lear dan preset( Mes#ipun di#emas men&adi satu dalam ,hip 1> pin "an% sama* #edua .lip6.lop terse$ut tida# salin% $erhu$un%an( Pen%aturan "an% san%at $er$eda adalah .lip6.lop o#tal( Sementara salah satu alas an untu# men%elompo##an &alur6&alur deta# dan ,lear adalah untu# men%hemat pin( alam #on.i%urasi ini ,hip di%una#an dalam ,ara "an% $er$eda dari delapan .lip6.lop "an% tida# $er#aitan( -hip terse$ut di%una#an se$a%ai se$uah re%ister $it tun%%al( Atau dapat &u%a* dua ,hip seperti itu dapat di%una#an se,ara parallel untu# mem$entu# se$uah re%ister 14 $it den%an men%%a$un%#an pin1 dan pin 11 mere#a se,ara $ersama(
Or%anisasi Memori Untu#
mem$uat
diperlu#an
suatu
or%anisasi
dimana
memori
or%anisani
$eru#uran
$esar
$er$eda*
suatu
masin%6masin%
!ord
dapat
dialamat#an( Untu# memilih ,hip memori ini* lo%i#a e#sternal harus men6set -S tin%%i dan &u%a men6set R tin%%i 7lo%i#a 18 untu# mem$a,a dan rendah 7lo%i#a 08 untu# menulis( Kedua &alur alamat harus di6 147
set untu# menun&u##an "an% mana dari #eempat !or / $it harus di$a,a atau ditulis( Untu# suatu operasi mem$a,a* &alur6&alur input tida# di%una#an* tetetapi !ord "an% dipilih ditempat#an pada &alur6&alur output data( Untu# operasi menulis* $it6$it "an% terdapat pada &alur6&alur input data dimuat #e dalam !ord memori "an% dipilihF &alur6&alur output data tida# di%una#an(
RAM dan ROM Memori6memori "an% telah #ita pela&ari hin%%a se&auh
ini
seluruhn"a
dapat
di$a,a
dan
ditulis(
Memori6memori sema,am itu dise$ut RAM 7Random A,,ess Memor"8* se$uah nama "an% tida# terlalu tepat #arena semua ,hip memori dapat dia#ses se,ara a,a#* namun istilah terse$ut telah di%una#an se,ara luas sehin%%a sulit dihilan%#an saat ini( Ada dua ma,am RAM* "aitu RAM stati, dan RAM dinami#( RAM stati, 7Stati, RAMCSRAM8 di$ua se,ara internal den%an
men%%una#an
ran%#aian6ran%#aian
"an%
sama den%an .lip6.lop dasar( Keistime!aan memori6 memori ini adalah $ah!a isin"a tida# a#an hilan% selama da"a di&a%a tetap hidup dalam hitun%an deti#* 148
menit* &am* $ah#an hari( SRAM san%at ,epat( 9a#tu a#ses &enis ini adalah $e$erapa nano6deti#( Karena itu* SRAM le$ih di#enal se$a%ai ,a,he memori le)el <( Se$ali#n"a* RAM inami# 7"nami, RAMCRAM8 tida# men%%una#an .lip6.lop( +ustru* se$uah RAM dinami# adalah seran%#aian sel6sel* masin%6masin% sel
$erisi satu transistor
dan
se$uah
#apasitor
$eru#uran #e,il( Kapasitor6#apasitor dapat diisi atau di#oson%#an* "an% memun%#in#an 0 dan 1 dapat disimpan( Karena muatan listri# $iasan"a $o,or* setiap $it dalam se$uah RAM dinami# harus dimuati setiap $e$erapa milideti# untu# men,e%ah a%ar data tida# $o,or atau #eluar( Karena lo%i#a e#sternal harus memperhati#an pemuatan ulan%* RAM dinami# mem$utuh#an
inter.a,e
"an%
le$ih
#omple#s
daripada RAM stati#* mes#ipun dalam dalam $an"a# apli#asi #elemahan6#elemahan ini dapat ditutupi oleh se%i #apasitasn"a "an% le$ih $esar( Karena RAM dinami# mem$utuh#an han"a satu transistor dan satu #apasitor per $it 7$andin%#an enam transistor per $it RAM stati, "an% ter$ai#8* RAM dinami# memili#i densitas "an% san%at tin%%i 7$an"a# $it per ,hip8( Oleh #arena itu* memori6memori utama 149
hampir selalu di$uat dari RAM dinami#( Tetetapi* #apasitas
$esar
ini
memili#i
#e#uran%anF
RAM
dinami# memili#i #e,epatan "an% lam$at 7puluhan nanodeti#8( +adi #om$inasi antara ,a,he RAM stati, den%an memori utama RAM dinami# men,o$a untu# memadu#an #eistime!aan6#eistime!aan dari masin%6 masin% RAM( ROM 7Read Onl" Memor"8 adalah memori "an% tida# dapat diu$ah atau dihapus den%an disen%a&a ataupun tida# disen%a&a( Memori ini han"a dapat di$a,a sa&a( Pen%em$an%an produ# dari ROM adalah PROM
7Pro%ramma$le
ROMCROM
"an%
dapat
dipro%ram8( Se$uah PROM sama seperti se$uah ROM* #e,uali
$ah!a
di%una#an*
PROM
sehin%%a
dapat
dipro%ram
meniada#an
!a#tu
7setelah8 tun%%u(
Ban"a# PROM $erisi se¨ah se#erin% #e,il di $a%ian dalam( Se$uah se#erin% spesi.i# dapat diputus#an den%an memilih $aris dan #olomn"a dan #emudian men%%una#an tean%an tin%%i #e suatu pin #husus pada ,hip( Le$ih sin%#atn"a PROM adalah salah satu &enis ROM "an% dapat mempro%ram ROM setelah ROM terse$ut di%una#an(
150
Pen%em$an%an selan&utn"a pada &alur ini adalah EPROM 7Erasa$le PROMCPROM "an% dapat dihapus8* "an% tida# dapat han"a dipro%ram#an dilapan%an tetapi &u%a dapat dihapus( EPROM $iasan"a memili#i or%anisasi "an% sama seperti RAM stati#( Memori adalah $a%ian dari #omputer tempat pro%ram6pro%ram dan data6data disimpan 79illiam Stallin%8( Memori dalam #omputer di$eda#an me&adi < "aituF memori internal dan memori e#sternal( Memori iternal "aitu memori "an% dapat dia#ses lan%sun% oleh prosesor dalam hal ini memori internal di$a%i men&adi / "aituF re%ister "an% $erada pada prosesor* ,a,he memori* dan memori utama "an% $erada diluar prosesor(
Sedan%#an
memori
e#sternal
adalah
memori "an% dia#ses melalui ICO ,ontohn"a hardis#( Memori e#sternal ini $iasan"a $er#apasitas le$ih $esar #arena $erisi data6data "an% diolah suatu pro%ram( Memori
dalam
prosesn"a
memili#i
$e$erapa
operasi pada sel6seln"a( Sel6sel memori ini memili#i $e$erapa si.at antara lainF
151
1( dapat
Meili#i
<
#eadaan
mempresentasi#an
sta$il*
operasi
"an%
den%an
an%#a $iner "aitu 1 dan 0 <(
Sel6sel
memori
mampu
unutu#
ditulisi atau diisi 7!rite8 /(
Sel6sel
memori
mempun"ai
#emampuan untu# di$a,a 7read8 alam operasin"a sel memori mempun"ai / terminal( Untu# operasi !rite* terminaln"a adalah sele,t* ,ontrol dan data in( Sedan%#an untu# operasi !rite adalah sele,t* ,ontrol dan sense( Terminal sele,t inilah "an% mendete#si $ah!a suatu operasi a#an di&alan#an atau tida# den%an men%%una#an an#a $iner "an% terdete#si 71 dan 08( Memori
utama
$ersi.at
)olatile
7sementara8
dimana han"a men"impan data dan pro%ram selama #omputer hidup 7memili#i po!erCda"a listri#8( -ara #er&an"a adalahF 1(
Memori utama men%am$il data dan
pro%ram dari memori e#sternal 7hardis#* dll8 untu# diolah 7data dan pro%ram "an% diam$il terse$ut adalah data dan pro%ram "an% telah di ,op"8( 152
<(
Sementara
diolah*
data
dan
pro%ram "an% asli masih utuh dalam memori se#under(
-PU
men%e#se#usi
data
dan
pro%ram dari RAM( +i#a in%in men"impan se,ara permanen ma#a peru$ahan data dan pro%ram
itu
di#irim
#em$ali
#e
memori
se#under 7sa)e .ile to dis#8( Memori mempun"ai $e$erapa sistem pemetaan "an% dapat di%una#an( Alasan men%apa memori harus dipeta#an #arena #apasitas ,a,he "an% le$ih #e,il dari memori utama( Oleh #arena itu perlu dipilih $lo#6 $lo# mana "an% a#an masu# dal ,a,he memori a%ar tida# ter&adi o)erload( Sistem pemetaan terse$ut adalahF pemetaan lan%sun%* pemetaan asosiati. dan pemetaan asosiati. set( Pemetaan
lan%sun%
adalah
pemetaan
"an%
palin% sederhana #arena han"a memeta#an $lo# memori pada satu saluran ,a,he sa&a( alam sistem ini $a%ian alamat $lo# memori utama $er.un%si se$a%ai nomor saluran ,a,he( Keti#a suatu $lo# data sedan% dia#ses atau di$a,a terhadap saluran "an% di$eri#an* ma#a perlu mem$eri#an ta%atau tanda $a%i data untu# mem$eda#ann"a den%an $lo#6$lo# 153
lain "an% sesuai den%an saluran terse$ut( Kelemahan pada s"stem ini adalah lo#asi ,a,he "an% tetap $a%i semua $lo#( +i#a $lo#6$lo# "an% dipeta#an ada pada 1 saluran "an% sama ma#a $lo#6$lo# terse$ut a#an di s!ap terus menerus #edalam ,a,he sehin%%a hit rasion"a rendah( Pemetaan
asosiati.
$ertu&uan
untu#
ma#simal#an hit rasio pada ,a,he( Prosesn"a adalah den%an ,ara setiap $lo# dapat masu# #e sem$aran% saluran ,a,he( Alamat memori utama di&adi#an #ode nomor pada .ield ta% dan .ield !ord( Alamat6alamat ini $er.un%si
se$a%ai
adalah den%an
#ode
saluran(
Me#anismen"a
,ara memeri#sa setiap ta%
oleh
,ontrol lo%i#a ,a,he( alam hal ini pemetaan terse$ut le$ih .le#si$el #arena $lo#6$lo# $aru dapat di%anti sehin%%a hit rasion"a tin%%i( Kelemahan pada s"stem ini adalah $ia"an"a "an% mahal #arena ran%#aiann"a "an% #omple#s( Pemetaan
asosiati.
set
men%%a$un%#an
#ele$ihan "an% ada pada pemetaan lan%sun% dan pemetaan
asosiati.(
adalah emori6memori
Proses dalam
dalam
pemetaan
ini
,a,he
di$a%i dalam
$entu# set6set "an% $er$eda( Pemetaan asosiati. set 154
prinsipn"a adalah pen%%a$un%an #edua pemetaan se$elumn"a( Alamat memori utama diinterpretasi#an dalam ti%a .ield* "aituF .ield ta%* .ield set* dan .ield !ord( al ini mirip dalam pemetaan lan%sun%( Setiap $lo# memori utama dapat dimuat dalam sem$aran% saluran ,a,he( Set6set terse$ut di$eri nomor sesuai den%an ¨ah saluran( Nomor set men%identi.i#asi set "an% ada pada setiap saluran di dalam ,a,he( Nomor set ini &u%a mem$eri#an ¨ah $lo# di dalam memori utama( Sedan%#an ¨ah $lo# menentu#an pemetaan $lo# terhadap saluran( Sem$aran% $lo# terse$ut dapat dimuat#an #e salah satu dari #edua saluran di dalamset( Oleh #arena itu tida# terdapat dua $lo# "an% memeta#ann"a terhadap set ,a,he "an% sama memili#i nomor ta% "an% sama( Untu# operasi read* nomor set dipa#ai untu# menentu#an set pada saluran "an% a#an diu&i( Saluran6saluran di dalam set diu&i untu# mendapat#an nomor saluran "an% ,o,o# den%an nomor ta% alamat "an% a#an dia#ses( alam asosiati.
pemetaan
set
asosiati.
diperlu#an
suatu
dan
pemetaan
al%oritma
untu#
men%atur per%antian $lo#6$lo# memori $aru dan lama 155
pada
,a,he(
Al%oritma
ini
$er.un%si
untu#
menin%#at#an #iner&a #omputer( Al%oritma ini dise$ut al%oritma pen%%antian( Al%oritma pen%%antian "an% serin% di%una#an "aitu LRU 7Least Re,entl" Used8* ?I?O 7?irst In ?irst Out8* L?U 7Last ?reuentl" Used8 dan al%oritma Random( Al%oritma "an% palin% e.e#ti. adalah Least Re,entl" Used 7LRU8* "aitu men%%anti $lo# data "an% terlama $erada dalam ,a,he dan tida# memili#i re.erensi( Al%oritma ?irst In ?irst Out 7?I?O8* "aitu men%%anti $lo# data "an% pertama masu#( Kemudian
Least
?reuentl"
Used
7L?U8
adalah
men%%anti $lo# data "an% mempun"ai re.erensi palin% sedi#it( Al%oritma Random* "aitu pen%%antian tida# $erdasa#an pema#aian datan"a* melain#an $erdasar slot dari $e$erapa slot #andidat se,ara a,a#( Read pen"impanan
Onl" data
Memor" merupa#an pada
#omputer
dan
$entu# $er$a%ai
peran%#at ele#troni# lainn"a termsu# smartphone maupun ta$let "an% tida# a#an dapat den%an mudah untu# dipro%ram atau diu$ah( Selain itu* Read Onl" Memor" sendiri
$er.un%si
se$a%ai
tempat
pen"impanan data internal "an% di%una#an untu# meleta##an
atau
menaruh 156
Sistem
Operasi
7OS8
$eserta den%an seluruh sistem 6 sistem "an% terdapat di dalamn"a( ROM
sendiri
den%an RAM atau
$er$andin%
$ersi.at
permanen
ter$ali# 7non)olatile8*
"an% artin"a pro%ram atau data "an% telah disimpan di dalamn"a tida# a#an mudah $eru$ah atau hilan% mes#ipun aliran listri# dipadam#anCdimati#an( Salah satu ,ontoh dari ROM ialah ROM BIOS "an% $erisi#an pro%ram6pro%ram dasar dari sistem #omputer "an% $er.un%si
men"iap#an
atau
men%atur
semua
#omponen atau peralatan "an% terdapat di dalam #omputer disaat #omputer din"ala#an( +enis6&enis ROMF 1( PROM 7Pro%ramma$le
Read
Onl"
Memor"8* "aitu ROM "an% dapat depro%ram se#ali sa&a dan tida# dapat diu$ah #em$ali <( EPROM 7Erasa$le
Pro%ramma$le
Read Onl" Memor"8* "aitu ROM "an% dapat dihapus den%an sinar ultra )iolet serta dapat dipro%ram #em$ali $erulan%6ulan% /( EEPROM 7Ele,tri,all"
Erasa$le
Pro%ramma$le Read Onl" Memor"8* "aitu
157
ROM "an% dapat dihapus se,ara ele#troni# dan dapat dipro%ram #em$ali( +i#a -PU merupa#an ota# dari se$uah #omputer* ma#a memor" merupa#an #omponen pem$antu #er&a -PU dalam mela#u#an #e%iatan pemrosesan data atau pen%e#se#usian se$uah perintah( Pro%ram dan perintah
"an%
a#an
die#se#usi
oleh
pro,essor*
se$elumn"a disimpan terle$ih dahulu dalam se$uah memori( Be$erapa to#oh mende.inisi#an memori se$a%ai $eri#utF
Tanem$aun* <001 2Memori
merupa#an
$a%ian
dari
#omputer
tempat $er$a%ai pro%ram dan data6data disimpan3
S,ot Mueller* <00/ 2Se,ara umum* memori merupa#an !or#spa,e 7area #er&a8 dari pro,essor #omputer( Sedan%#an memori utama dalam se$uah #omputer merupa#an tempat pen"impanan sementara dimana di$utuh#an oleh pro,essor "an% a#an men%operasi#an pro%ram atau data tertentu3
158
irar#i Memori Se$uah sistem #omputer memili#i $er$a%ai &enis memori
"an%
memili#i
#iner&a*
#apasitas
dan
#e,epatan $er$eda sesuai den%an tin%#at hirar#in"a( Memori
"an%
memili#i hirar#i "an%
palin%
atas*
memili#i tin%#at #e,epatan "an% palin% tin%%i tetetapi memili#i #apasitas 7#emampuan men"impan data8 palin% rendah( Sesuai tin%#at
hirar#in"a di$eda#an
se$a%ai
$eri#utF 1( Re%ister <( -a,he Memor" 7Stati, RAM8 a(
Internal -a,he
$(
E=ternal -a,he
/( Memori Utama 7"nami, RAM8 >( Memor" Se#under a(
Ma%neti, is#
$(
Opti,al is#
,(
Ma%neti, Tape
1( Re%ister Re%ister merupa#an memori den%an hirar#i "an% palin% tin%%i( Berada dalam ,hip se$uah pro,essor dan merupa#an $a%ian inte%ral dari pro,essor itu 159
sendiri(
Re%ister
merupa#an
memori
den%an
#emampuan proses palin% ,epat* dimana proses $a,a dan tulis dila#u#an dalam satu si#lus deti#(
<( -a,he Memor" -a,he
memili#i
#apasitas
#e,il
tetetapi
$er#e,epatan tin%%i dan dipasan% di antara pro,essor dan memori utama( Memori ini di$uat den%an latar $ela#an% oleh adan"a per$edaan #e,epatan operasi antara men&adi
pro,essor
dan
memori
utama
#endala
$a%i
di,apain"a
"an%
e.isiensi
$isa #er&a
sistem #omputer(
/( Memori Utama Memori utama di$uat dari $ahan "an% $ersi.at dinamis sehin%%a &u%a dise$ut se$a%ai "nami, RAM( ar%an"a le$ih murah* tida# ,epat panas tetetapi proses "an% dila#u#ann"a tida# se,epat memori statis( Le$ih di#enal den%an RAM 7Random A,,ess Memor"8( ise$ut se$a%ai memor" utama #arena $erhu$un%an
lan%sun%
den%an
pro,essor
dalam
men"edia#an pro%ram dan data "an% di$utuh#an(
>( Memori Se#under Men"edia#an
media
pen"impanan
se#under
dalam &an%#a !a#tu lama untu# pro%ram dan data 160
"an% #adan% di$utuh#an* tetetapi tida# se,ara a#ti. 7$iasan"a terdiri dari unit dis# "an% terhu$un% se,ara ele#troni# #e sistem8(
161
162
BAB ESIGN AN ORGANISASI INPUT6 OUTPUT
Pendahuluan esain Input6Output dan Or%anisasi merupa#an peralatan antarmu#a 7inter.a,e8 $a%i sistem $us atau s!it,h
sentral
dan
men%ontrol
satu
atau
le$ih
peran%#at peripheral( Arti lain dari Or%anisasi input6 output
tida#
han"a
pen%hu$un%* tetetapi
se#edar se$uah
se$a%ai
piranti
"an%
modul $erisi
lo%i#a dalam mela#u#an .un%si #omuni#asi antara peripheral dan $us #omputer( Or%anisasi input6output mempun"ai dua .un%si utama "aitu se$a%ai piranti antarmu#a #e -PU dan memori melalui $us s"stem 163
dan se$a%ai piranti antarmu#a den%an peralatan peripheral lainn"a den%an men%%una#an lin# data tertentu( isisi lain or%anisasi input6output memili#i .un%si "an% ta# #alah pentin% "aitu se$a%ai $eri#utF 1(
Bertan%%un% &a!a$ atas
pen%ontrolan
se$uah peran%#at luar atau le$ih( <(
Bertan%%un%
&a!a$
pula
dalam
pertu#aran data antara peran%#at luar terse$ut den%an memori utama ataupun den%an re%ister6 re%ister -PU( /(
Antarmu#a
internal
den%an
#omputer
7-PU dan memori utama8( >(
Antarmu#a
e#sternaln"a
untu#
den%an men&alan#an
peran%#at .un%si6.un%si
pen%ontrolan( esain input6output dan or%anisasi $erisi se$uah pen%aturan "an% sederhana untu# men%hu$un%#an prosesor
dan
memori
dalam
men%in%at
sistem
#omputer #e peran%#at input dan peran%#at output( alam se$uah $us tun%%al* terdiri dari alamat "an% diperlu#an* data* dan %aris #ontrol "an% di%una#an untu#
men%hu$un%#an
sistem
#omponen(
Ada
susunan "an% dise$ut den%an shared ICO( alam 164
susunan pertama* peran%#at ICO menu%as#an alamat tertentu* #emudian men%asin%#an dari ruan% alamat "an% ditu%as#an #e memori( Pela#sanaan intru#si input
pada
alamat
peran%#at
input
a#an
men"e$a$#an #ara#ter "an% tersimpan dalam da.tar input dari peran%#at "an% a#an ditrans.er #e da.tar #husus di -PU( emi#ian pula* pela#sanaan perintah output
pada
alamat
peran%#at
output
a#an
men"e$a$#an #ara#ter "an% tersimpan dalam da.tar tertentu dalam -PU "an% a#an ditrans.er #e da.tar output peran%#at output( Keuntun%an utama dari shared ICO
adalah pen%aturan
pemisahan
antara
ruan% alamat memori dan share ICO dari ICO de)i,e( Keru%ian utaman"a adalah #e$utuhan untu# memili#i petun&u# input dan Output #husus dalam #umpulan instru#si prosesor( Pen%aturan shared ICO se$a%ian $esar diadopsi oleh Intel( Kemudian ada susunana "an% dise$ut den%an pemetaan ICO( aitu den%an men%urai#an input dan output re%ister seolah6olah mere#a adalah memori $iasa( alam hal ini* operasi $a,a dari alamat "an% sesuai den%an da.tar input dari peran%#at input* misaln"a* $a,a e)i,e4* adalah setara den%an mela#u#an input operasi dari input 165
re%ister peran%#at 4( emi#ian pula* operasi tulis #e alamat
"an%
sesuai
untu#
da.tar
output
dari
peran%#at output* misaln"a menulis e)i,e:* setara den%an mela#u#an se$uah operasi #eluaran #e output menda.tar dalam e)i,e :( Keuntun%an utama dari pemetaan memori ICO adalah pen%%unaan instru#si $a,a dan tulis dari prosesor untu# mela#u#an operasi input
dan
output*
se,ara $erturut6turut(
al
ini
men%hilan%#an #e$utuhan selama memper#enal#an petun&u# ICO #husus( Keru%ian utama dari pemetaan memori ICO adalah #e$utuhan untu# men"edia#an $a%ian tertentu dari ruan% alamat memori untu# menan%ani peran%#at ICO* "aitu* pen%uran%an ruan% alamat memori "an% tersedia( Pemetaan Memori ICO telah $an"a# diadopsi oleh Motorola( Proses .un%si #omuni#asi antara -PU dan modul ICO -ommand e,odin%* "aitu modul ICO menerima perintah6perintah dari -PU "an% di#irim#an se$a%ai sin"al $a%i $us #ontrol( Misaln"a* se$uah modul ICO untu# dis# dapat menerima perintahF Read se,tor* S,an re,ord I* ?ormat dis#( ata* pertu#aran data antara -PU dan modul ICO melalui $us data( Status Reportin%* "aitu pelaporan #ondisi status modul ICO 166
maupun status
peran%#at #ondisi
peripheral*
Bus"
atau
umumn"a
Read"(
+u%a
$erupa status
$erma,am6ma,am #ondisi #esalahan 7error8( Address Re,o%nition*
$ah!a
peralatan
atau
#omponen
pen"usun #omputer dapat dihu$un%i atau dipan%%il ma#a harus memili#i alamat "an% uni#* $e%itu pula pada peran%#at peripheral* sehin%%a setiap modul ICO harus
men%etahui
alamat
peripheral
"an%
di#ontroln"a( Tu&uan utama dari $u..er adalah mendapat#an pen"esuaian data sehu$un%an per$edaan la&u trans.er data dari peran%#at peripheral den%an #e,epatan pen%olahan
pada
-PU(
La&u
trans.er
data
dari
peran%#at peripheral le$ih lam$at dari #e,epatan -PU
maupun
media
pen"impanan(
Ada
empat
#alsi.i#asi perintah ICO* "aituF 1(
Perintah ,ontrol (
Perintah
ini
di%un#an
untu#
men%a#ti)asi
peran%#at peripheral dan mem$eritahu#an tu%as "an% diperintah#an padan"a( <(
Perintah test (
Perintah
ini
di%una#an
-PU
untu#
men%u&i
$er$a%ai #ondisi status modul ICO dan peripheraln"a( 167
-PU perlu men%etahui peran%#at peripheraln"a dalam #eadaan
a#ti.
dan
siap
di%una#an*
&u%a
untu#
men%etahui operasi6operasi ICO "an% di&alan#an serta mendete#si #esalahann"a( /(
Perintah read (
Perintah pada modul ICO untu# men%am$il suatu pa#et data #emudian menaruh dalam $u..er internal( Proses selan&utn"a pa#et data di#irim melalui $us data
setelah
ter&adi
sin#ronisasi
data
maupun
#e,epatan trans.ern"a( >(
Perintah !rite (
Perintah
ini
#e$ali#an
dari
read(
-PU
memerintah#an modul ICO untu# men%am$il data dari $us data untu# di$eri#an pada peran%#at peripheral tu&uan data terse$ut(
Mempro%ram#an ICO Ada $e$erapa lan%#ah "an% harus dii#uti dalam mempro%ram I CO* se$a%ai $eri#utF 1(
Prosesor men%e#se#usi instru#si input
dari peran%#at 4* misaln"a* INPUT 4( Pen%aruh dari pela#sana#an instru#si ini adalah untu# men%irim#an nomor peran%#at #e sir#uit alamat 168
de,oder
di
setiap
peran%#at
input
untu#
men%identi.i#asi peran%#at input tertentu untu# terli$at( ( alam hal ini* output dari de,oder di e)i,e 4 a#an dia#ti.#an* sementara output dari semua e,oder lain a#an dinona#ti.#an( <(
The
$u..er
7pada
%am$ar
#ita
men%asumsi#an $ah!a ada $u..er terse$ut8 meme%an%
data
di
peran%#at
input
"an%
ditetap#an 7Peran%#at 48 a#an dia#ti.#an oleh output dari sir#uit alamat de,oder( /(
ata Output $u..er "an% dia#ti.#an a#an
tersedia pada $us data( >(
Perintah peme,ahan #ode a#an %er$an%
dari data "an% tersedia pada $us data #e input dari
re%ister
tertentu
dalam
-PU*
$iasan"a
a#umulator( Operasi output dapat dila#u#an den%an ,ara "an% sama( Satu6satun"a per$edaan a#an men&adi arah trans.er data* "an% a#an $erasal dari da.tar -PU tertentu #e da.tar output di peran%#at output "an% ditetap#an( Operasi ICO "an% dila#u#an den%an ,ara ini dise$ut Pro%rammed ICO( Itu dila#u#an di $a!ah -PU ,ontrol( Se$uah instru#si len%#ap men%am$il* 169
mem$a,a sandi* dan men%e#se#usi si#lus harus $isa die#se#usi untu# setiap Operasi Input dan output( Pro%rammed ICO $er%una dalam #asus6#asus dimana satu #ara#ter pada satu !a#tu "an% a#an ditrans.er( Suatu
me#anisme
harus
diadopsi
dalam
ran%#a
menan%ani per$edaan #e,epatan "an% ,u#up $esar antara peran%#at ICO dan prosesor( Se$a%ai ,ontoh* memasti#an $ah!a #ara#ter di#irim #e da.tar output dari pran%#at output* seperti la"ar* tida# la%iditulis oleh pro,essor 7#arena #e,epatan tin%%i prosesor8 se$elum itu ditampil#an dan $ah!a #ara#ter "an% tersedia dalam da.tar input dari #e"$oard di$a,a han"a se#ali oleh prosesor( Me#anisme "an% dapat diterap#an
memerlu#an
#etersediaan
Status
Bit
dalam inter.a,e masin%6masin% peran%#at input dan Status Bit dalam inter.a,e masin%6masin% peran%#at output( Setiap #ali peran%#at input memili#i #ara#ter "an% tersedia dalam da.rar input* hal ini menun&u##an $ah!a den%an menetap#an
it1(
Se$uah pro%ram di
prosesor dapat di%una#an untu# terus memantau Keti#a pro%ram melihat $ah!a menter&emah#an
$ah!a
it1*
it(
ma#a a#an
perten%ahan
#ara#ter
tersedia dalam input re%ister #e peran%#at( Mem$a,a 170
#ara#ter
terse$ut
a#an
memerlu#an
proto#ol
di&elas#an se$elumn"a( Setiap #ali #ara#ter di$a,a* pro%ram ini dapat men%atur ulan%
it
0* sehin%%a
men%hindari $e$erapa #ali mem$a,a dari #ara#ter "an% sama( en%an ,ara "an% sama* prosesor dapat men"impan #ara#ter dalam Output re%ister peran%#at output han"a #eti#a an"a
it
0(
setelah
peran%#at
menun&u##an #ara#ter "an% set
it
output
telah
1* menun&u##an
#epada pro%ram monitorin% $ah!a peran%#at output siap untu# menerima #ara#ter $eri#utn"a( Proses pemeri#saan untu#
status
menentu#an
peran%#at
ICO
#esiapann"a
diperintah#an
untu#
menerima
danCatau men%irim #ara#ter* adalah dise$ut So.t!are ICO Pollin%( Selain ICO Pollin%* dua me#anisme lain dapat di%una#an untu# mela#sana#an operasi ICOF Interrupt6dri)en ICO( i dalam Komputer terdapat $er$a%ai ma,am peran%#at mempun"ai
#eras .un%si
7hard!are8 "an%
"an%
$an"a#
$er$eda6$eda
dan
setiap
peran%#atn"a( en%an adan"a hal terse$ut di dalam pemprosesan suatu perintah #omputer harus ada pen%aturan di setiap perintah6perintah "an% a#an 171
di&alan#an( Be%itulah
.un%si utama dari
Interupt
ard!are* den%an #emampuan ard!are Interrupt dalam
$entu#
mem$antu
Interrupt
proses
Garis
prosesor(
#husus
Interrupt
untu#
%aris
ini
di%una#an untu# men%irim suatu sin"al interupt #e prosesor* ma#a dariitu prosesor harus dilen%#api den%an suatu me#anisme "an% memun%#in#an untu# menan%ani suatu atau $e$erapa permintaan interupsi simultan
dan
untu#
men%enali
hal6hal
"an%
men%%an%%u peran%#at( Ada < s#ema dasar "an% diterap#an untu# mela#u#an tu%as ini* "aituF a(
ais" Rantai Bus Ar$itrase 7 -BA 8
$(
Independen
Sum$er
7 ISBA 8
172
Bus
Ar$itrase
Selain adan"a interupsi hard!are "an% ada di dalam #omputer* ada pula Interupsi dalam sistem operasi "an% di &alan#an* #eti#a suatu interupsi ter&adi sistem operasi memperoleh #ontrol dalam men%atur interupsi "an% ada di dalam #omputer terse$ut( Sistem operasi men"impan #eadaan dari proses
interupt*
analisis
interupt*
dan
mele!ati
#ontrol "an% men%a!asi se,ara rutin dan menan%ani interupt "an% sedan% ter&adi( Be$erapa interupsi "an% ter&adi Input
diantaran"a C
Output
adalah
interupt
ICO
interupsi(
Se$uah
mem$eritahu#an
#epada
sistem operasi $ah!a peran%#at Input C Output telah selesai* sedan% $er&alan* atau men%henti#an operasi menurut #e$utuhan "an% di$utuh#an oleh -PU
173
alam proses interupsi* proses saat ini atau "an% sedan% ter&adi harus disimpan dan ditan%ani se,ara
rutin
selan&utn"a*
dan proses
S!it,hin%( Konte#s
menun%%u
untu#
ini
dise$ut
proses
&u%a
&u%a
interupsi #onte#s
mempun"ai
dua
$a%ian "aituF a(
Konte#s
pro,essorF
adalah
#eadaan
re%ister -PU termasu# pro%ram ,ounter 7P-8* pro%ram status #ata 7 PS9s 8 dan re%ister "an% lainn"a( $(
Konte#s
memor"F
adalah
#eadaan
memor" pro%ram termasu# pro%ram dan data(
Pertama*
pro%ram
ini
men%eluar#an
permintaan I C O melalui I C O pan%%ilan(
Permintaan mele!ati #e peran%#at I C O (
Bila peran%#at melen%#api I C O* interupsi
di#irim dan interrupt handler dipan%%il (
174
A#hirn"a* #ontrol dilepas#an #em$ali #e
proses "an% mempra#arsai I C O( ,(
ire,t Memor" A,,ess 7 MA 8(
Ada dua implementasi perintah dalam instru#si ICOF 1(
Memor"6mapped ICO
Terdapat ruan% tun%%al untu# lo#asi memori dan peran%#at ICO( -PU memperla#u#an re%ister status dan re%ister data modul ICO se$a%ai lo#asi memori dan men%%una#an instru#si mesin "an% sama untu# men%a#ses
$ai#
memori
maupun
peran%#at
ICO(
Kons#uensin"a adalah diperlu#an saluran tun%%al untu#
pem$a,aan
dan
saluran
tun%%al
untu#
penulisan( Keuntun%an memor"6mapped ICO adalah e.isien dalam pemro%raman* namun mema#an $an"a# ruan% memori alamat( <(
Isolated ICO
ila#u#an pemisahan ruan% pen%alamatan $a%i memori dan ruan% pen%alamatan $a%i ICO( en%an te#ni# ini diperlu#an $us "an% dilen%#api den%an saluran pem$a,aan dan penulisan memori ditam$ah saluran perintah output( Keuntun%an isolated ICO adalah sedi#itn"a instru#si ICO( 175
ire,t Memor" A,,ess 7 MA 8 adalah untu# memun%#in#an peran%#at peri.eral untu# memoton% Hmiddle manH 7 penen%ah 8 men%atur peran -PU dalam trans.er data( al ini memun%#in#an peran%#at peri.eral
untu#
mentrans.er
data
lan%sun%
dari
dan memori tanpa ,ampur tan%an -PU( Memili#i peri.er peran%#at a#ses memori se,ara lan%sun% a#an memun%#in#an -PU untu# mela#u#an pe#er&aan lain* "an% a#an men%a#i$at#an menin%#at#an #iner&a* terutama dalam #asus6#asus $esar trans.er ( The MA ,ontroller adalah $a%ian dari peran%#at #eras "an% men%ontrol satu atau le$ih peran%#at peri.eral ( al ini memun%#in#an peran%#at untu# mentrans.er data #e atau dari memori sistem tanpa $antuan prosesor ( alam $e$erapa trans.er MA* suatu peristi!a mem$eritahu MA pen%ontrol data perlu ditrans.er #e atau dari memori ( Kedua MA dan -PU $us men%%una#an memori dan han"a satu atau "an% lainn"a dapat men%%una#an memori pada !a#tu "an% sama ( MA ,ontroller #emudian men%irim#an permintaan #e -PU meminta i'in untu# men%%una#an
176
$us -PU men%em$ali#an pen%a#uan #epada MA #ontroler pem$erian itu a#ses $us ( The MA se#aran% dapat men%ontrol $us #e se,ara independen mela#u#an perpindahan memori Setelah trans.er selesai* MA relinuishes n"a #ontrol dari $us #e -PU ( Prosesor "an% mendu#un% MA men"edia#an satu atau le$ih masu#an sin"al $ah!a pemohon $us dapat men"ata#an untu# mendapat#an #ontrol $us dan satu atau le$ih #eluaran sin"al $ah!a -PU
mene%as#an
untu#
menun&u##an
itu
telah
melepas#an $us (
1(
MA ,ontroller memulai trans.er data (
<(
ata dipindah#an 7menin%#at#an alamat
dalam memori* dan men%uran%i ¨ah #ata6#ata untu# dipindah#an8
177
/(
Keti#a ¨ah #ata men,apai nol* MA
mem$eritahu -PU dari terminasi den%an ,ara interupsi ( >(
-PU mendapat#an #em$ali a#ses #e $us
memori (
BUS Bus
adalah
+alur
#omuni#asi
"an%
di$a%i
pema#ai Suatu set #a$el tun%%al "an% di%una#an untu# men%hu$un%#an $er$a%ai su$sistem( Sistem $us adalah pen%hu$un% $a%i #eseluruhan #omponen ,omputer dalam men&alan#an tu%asn"a(
Gam$ar Bus Slots
178
Be$erapa
sistem
$us
"an%
terdapat
pada
#omputer* "aituF 1(
S"n,hronous Bus
alam $us sin#ron* lan%#ah6lan%#ah trans.er data
$erlan%sun%
disi#lus
&am
tetap(
Semuan"a
disin#ron#an den%an $us ,lo,# dan sin"al ,lo,# "an% di$uat tersedia untu# #edua master dan sla)e( Si#lus dalam $us sin#ron dimulai pada salah satu tepi &am dan $era#hir di tepi "an% lain* dan tepi tera#hir itu adalah $a%ian a!al dari si#lus "an% selan&utn"a( Se$uah trans.er dapat men%am$il $e$erapa si#lus $us ter%antun% pada #e,epatan parameter $us dan #edua u&un% trans.er( Bus
S"n,hronous
sederhana
dan
mudah
diimplementasi#an( Namun* #eti#a men%hu$un%#an peran%#at
den%an
#e,epatan
"an%
$er$eda6$eda
untu# $us sin#ron* peran%#at palin% lam$at a#an menentu#an #e,epatan $us( Pan&an% $us sin#ron pun $isa
di$atasi
untu#
men%hindari
s#e!in%(
179
masalah
&am6
Gam$ar S"n,hronous Timin% ia%ram Bus sin#ron $iasan"a le$ih ,epat daripada $us as"n,hronous
#arena
tida#
ada
o)erhead
untu#
mem$an%un re.erensi !a#tu untu# setiap transa#si( Alasan lain "an% mem$antu $us sin#ron $eroperasi ,epat adalah $ah!a proto#ol $us sudah ditentu#an se$elumn"a dan san%at sedi#it lo%i#a terli$at dalam menerap#an
#eadaan
mesin
"an%
ter$atas(
Sedan%#an #e#uran%an dari transmisi sin#ron adalah hard!are
"an%
di%una#an
desainn"a le$ih #omple#s( <(
As"n,hronous Bus
180
le$ih
maahal
serta
Gam$ar As"n,hronous Timin% ia%ram As"n,hronous$us
adalah
se$uah
$us
"an%
men%hu$un%#an peran%#at sistem #omputer dimana trans.er in.ormasi antara peran%#at sel.6timed $u#an di#endali#an oleh sin"al ,lo,# sin#ronisasi( Se$uah peran%#at "an% terhu$un% menun&u##an #esiapann"a untu#
trans.er
den%an
permintaan(
Se$uah
menun&u##an
pen"elesaian
men%a#ti.#an
sin"al
men%a#ti.#an
peran%#at trans.er
men%a#ui(
sin"al
menan%%api ini 9a#tu
den%an "an%
diperlu#an untu# men"elesai#an transa#si ditentu#an oleh !a#tu respon dari peran%#at dan #eterlam$atan sepan&an% $us inter#one#si dan dapat $er)ariasi untu# $er$a%ai peran%#at( alam
as"n,hronous
$us*
lan%#ah6lan%#ah
proto#oln"a tida# dipandu oleh sin"al ,lo,#( Se$a%ai %antin"a*
di%una#an
handsha#in%( 181
andsha#in%
dila#u#an untu# mela#u#an transmisi data se,ara $enar antara pen%irim dan penerima( Seperti pada %am$ar di atas* master mene%as#an $aris data6 read"7point 1 pada %am$ar8 sampai melihat sin"al dari data6a,,ept( Keti#a sla)e melihat sin"al data6 read"* ma#a a#an mene%as#an %aris data6a,,ept "aitu titi# < pada %am$ar di atas( Menin%#atn"a %aris data6s,,ept a#an memi,u #e&atuhan dari $aris data6 read" dan pen%hapusan dari data6$us( +atuhn"a $aris data6read" "aitu point / dalam %am$ar* a#an memi,u &atuhn"a %aris data6a,,ept atau pada %am$ar diatas ditulis#an den%an an%#a >( andsha#in% ini* "an% dise$ut salin% ter#ait se,ara penuh* dan a#an diulan% sampai data $enar6$enar ditrans.er( As"n,hronous $us sesuai untu# peran%#at den%an #e,epatan "an% $er$eda( Ke#uran%an dari transmisi as"n,hronous adalah $esar
$ia"a
o)erhead
ditransmisi#an
relati.*
se,ara
propirsi
uni#
tin%%i
untu#
$it
tu&uan
pen%endalian sehin%%a tida# mem$a!a in.ormasi "an%
$er%una(
transmisi
Mes#ipu
as"n,hronous
$e%itu*
#ele$ihan
adalah
murah*
182
dari
#arena
transmisi
As"n,hronous
tida#
terlalu
$an"a#
memerlu#an peran%#at #eras( /(
Ar$itraseBus
a(
Sentralisasi Ar$itrase
alam s#ema ar$itrase terpusat* ar$iter tun%%al di%una#an untu# memilih master $eri#utn"a( Bentu# sederhana ar$itrase terpusat men%%una#an &alur $us permintaan* &alur hi$ah $us* dan &alur $us si$u#( Setiap $aris terse$ut di$a%i oleh master potensial* "an% dais"6dirantai dalam #as#ade( Masin%6masin% master potensial dapat men%a&u#an permintaan $us setiap saat( Prioritas tetap diatur antara dari #iri #e #anan(
Keti#a permintaan $us diterima di ar$iter $us pusat* ma#a ar$iter $us pusat a#an men%eluar#an 183
$us $antuan den%an mene%as#an &alur $us $antuan( Keti#a potensi master "an% palin% de#at den%an ar$iter "aitu Potensi Master 1* a#an melihat sin"al $us $antuan( Potensi master itua#an memeri#sa untu#
melihat
apa#ah
ar$iter
$us
pusat
telah
mem$uat permintaan $us( +i#a "a* potensi master 1a#an men%am$il alih $us dan men%henti peram$atan dari sin"al $us $antuan le$ih &auh( +i#a $elum mem$uat permintaan*potensi master 1 a#an den%an mudah men%u$ah sin"al $us $antuan untu# master se$elah
#anan
"aitu
Potensi
men%uasai
<*
dan
se$a%ain"a( $(
esentralisasi Ar$itrase
Ar$itrase esentralisasi dalam s#emaar$itrase desentralisasi* prioritas $er$asis ar$itrase $iasan"a di%una#an
dalam
mode
di
distri$usi#an(
Setiap
potensi utama memili#i nomor ar$itrase "an% uni#* "an% di %una#an dalam men"elesai#an #on.li# #eti#a $e$erapa permintaan "an% dia&u#an( Se$a%ai ,ontoh* #on.li# selalu dapat diselesai#an dalam mendu#un% peran%#at den%an nomor ar$itrase tertin%%i( -ara
menentu#an
peran%#at
¨ah ar$itrase tertin%%iF 184
"an%
memili#i
Peran%#at
"an%
mem$uatnomorar$itrase"an%
memintaa#an uni#"an%
tersedia
untu# semuaperan%#at lain( Setiap
peran%#ata#an
mem$andin%#an¨ah
terse$utden%an
nomorar$itrasesendiri(
Peran%#atden%an¨ah"an%
le$ih
#e,ilselaludi$erhenti#an(
A#hirn"a*
peran%#at
pemintaden%an
nomorar$itrasetertin%%ia#an$ertahan dandi$eri#an a#ses$us(
Input6Output Inter.a,e Inter.a,e
merupa#an
&alur
data
antara
dua
peran%#at "an% terpisah dalam sistem #omputer( Inter.a,e #e $us dapat di#lasi.i#asi#an $erdasar#an ¨ah $it "an% ditransmisi#an pada !a#tu tertentu #e serial port paralel di$andin%#an( alam port serial* han"a 1 $it data trans.er merah pada suatu !a#tu( Ti#us dan modem $iasan"a terhu$un% #e port serial( Se$uah port paralel memun%#in#an le$ih dari 1 $it data "an% a#an diproses se#ali%us( Printer adalah
185
peran%#at peri.eral "an% palin% umum "an% terhu$un% #e port paralel( Rin%#asan dari$er$a%ai$us daninter.a,e "an% di%una#an dalam#omputer pri$adi 7A$d6El6Barr* <00@F
%5%+6 BusCIn
es,ription
ter.a,e
Suatu &enisport 7atau inter.a,e8"an% dapat PSC<
di%una#anuntu#
men%hu$un%#anmouse #omputer(
Indust r" Standart Ar,hite,tur e 7ISA8
ThePSC<
dan
#e"$oard#e
port#adan%6#adan%
dise$utport mouse( ISAa!aln"a$us6$it
dan#emudian
diperluas#e$us146$it
tahun
Pada
pada
tahun
1:>( 1::/*
InteldanMi,roso.tmemper#enal#anplu% and
pla"$usISA"an%
memun%#in#an#omputeruntu# otomatis
se,ara
mendete#sidan
men%aturperipheralISA#omputer E=ten
sepertimodematau#artu suara( EISAmerupa#an $entu#"an%
ded
disempurna#anISA*
"an%
Industr"
memun%#in#anuntu#
Standart
sam$il mempertahan#andu#un%an untu#6
Ar,hite,tur
dan
trans.er
papane#spansi146$it( 186
data/<6$it*
Namun*
#e,epatan$usn"a* sepertiISA* han"aM'( e 7EISA8
EISAtida#
$an"a#
di%una#an*
#arena
$ia"a"an% tin%%i dansi.at "an% rumit( M-A diper#enal#an oleh IBM pada tahun 1:5( Ini mena!ar#an $e$erapa .itur Mi,ro
tam$ahan atas ISA seperti $us /<6$it*
-hannel
#artu
otomatis
di#on.i%urasi
dan
$us
Ar,hite,tur
masterin% untu# e.isiensi "an% le$ih $esar(
e 7MI-A8
al ini sedi#it le$ih un%%ul EISA* tetetapi tida# $an"a# papan e#spansi "an% pernah di$uat a%ar sesuai spesi.i#asi M-A( TheDESA* se$uah or%anisasi nirla$a
DESA
"an%didiri#an
olehNE-*
7Dideo
tahun
Ini
Ele,troni,s
memili#ia#ses
Standards
sistempada
Asso,iation
$iasan"a>4-PU7//C>0
8 Lo,al Bus
0#emudian
7DLB8
memili#i$us4>6$itdan
Periph
1::<(
merilisDLBpada
adalah$us/<6$it lan%sun%
#ememori
#e,epatanprosesor* M'8(
dirilispada
tahun
#e,epatan$usdari@0M'( P-Idiper#enal#an 1::<*
"an%
DLB<( 1::>dan
olehIntelpada
eral
tahun
dire)isipada tahun
-omponent
)ersi <( 0* dan#emudian dire)isipada tahun
Inter,onne,
1::@
t 7P-I8
$it"an%&u%a
untu#P-I<(
1(
Ini
1::/#e
adalah$us/<6
tersediase$a%ai$us4>6$itsaat
ini(
Ban"a# 187
papane#spansimodernterhu$un% #eslotP-I( AGPdiper#enal#an tahun
1::5(
olehIntelpada
AGPadalah$us/<6$it
"an%
diran,an%untu# #e$utuhantin%%i%ra.is /( AGPmemili#i Ad)an
"an%
%arislan%sun%#e
memori*
memun%#in#anelemen
/untu#
,ed Graphi,
disimpandalam
Port 7AGP8
memorisistem$u#anmemori)ideo( AGPdiarah#andata6intensi.#artu seperti
%ra.is*
a#selerator/
"an%terendahdesainaluntu#throu%hput dataatrma#anmurah dari<44MBCs( USB adalah $us e#sternal
Uni)er sal
Series
Bus 7USB8
Men%em$an%#an
d$"
esem$er*
Mi,roso.t*
IBM*
Intel*
-ompa* NE-
dan
Northern Tel,om( irilis pada tahun 1::4 den%an Intel >/0J Tr iton II Mother Board( USB memili#i #emampuan mentrans.er 1< M$ps* mendu#un% sampai 1<5 peran%#at( Ban"a# peran%#at "an% dapat dihu$un%#an #e port USB* "an% mendu#un% plu% and pla"(
?ire 9ire 1/:>8
7IEEE
?ire9ireadalah
&enis$use#sternal*
"an% mendu#un%#e,epatan trans.ersan%at ,epatF >00M$ps( Karena itu* ?ire9ire,o,o# 188
untu#men%hu$un%#anperan%#at seperti D-R#e #omputer( S-SIadalah
)ideo*
&enisparalel
inter.a,e"an% Small -omputer S"stem Inter.a,e 7S-SI8
umum
di%una#anuntu#massaperan%#at pen"impanan( S-SIdapat mentrans.er data padatin%#at>MBCs
i
mendu#un%#e,epatan
ri)e
Ele,troni,s 7IE8 Enhan
"an%
MBCs8*
-epatLuasS-SI7<0
ated
itu*ada
$e$erapa&enisS-SI"an%
S-SI-epat710
Inte%r
sampin%
le$ih
UltraS-SIdan
MBCs8*
sertaUltra
9ideS-SI7>0 MBCs8( IEadalah inter.a,e"an% di%una#anuntu#dri)ehard
tin%%iF
umum
dis#dan-6ROM
dri)e( al inile$ih murah daripadaS-SI* tetapi mena!ar#ansedi#it #uran%dalam hal #iner&a( EIEmerupa#an
,ed
pen"empurnaandariIE*
Inte%rated
mena!ar#an#iner&a
ri)e
$ai#daripadaS-SIstandar(
Ele,troni,s
mena!ar#an#e,epatan
7EIS8 P-I6J
trans.erantara>dan14*4MBCs( P-I6J $us#iner&a diran,an%
"an% "an%
le$ih Ia
tin%%i"an%
untu#memenuhi
menin%#atn"aICOtuntutante#nolo%i seperti?i$re
-hannel* 189
Gi%a$itEthernet*
-omm
danUltra/S-SI( P-I6J $us#iner&a
tin%%i"an%
uni,ation
diran,an%
untu#memenuhi
and
menin%#atn"aICOtuntutante#nolo%i
Net!or#
seperti?i$re
Riser 7-NR8
danUltra/S-SI(
-hannel*
190
Gi%a$itEthernet*
BAB : PIPELINING
Konsep Umum Pipelinin%
merupa#an
,ara
e.e#ti.
untu#
men%atur a#ti.itas #on#uren dalam s"stem #omputer( Ide dasarn"a san%at sederhana( al ini serin% ditemui di dalam pa$ri#* dimana pipelinin% umumn"a di#enal se$a%ai
operasi
assem$l"6line(
Se$a%ai
sistem
#omputer "an% $er#em$an%* a%ar #iner&an"a le$ih $esar dapat di,apai den%an men%am$il #euntun%an dalam te#nolo%i* seperti sir#uit "an% le$ih ,epat( Pada umumn"a* e.isiensi se$uah sistem #omputer dinilai $erdasar#an #e,epatan peran%#at #eras dan .asilitas6.asilitas
peran%#at
luna#(
Penilaian
ini*
dise$ut se$a%ai throu%hput* dide.inisi#an se$a%ai ¨ah pemrosesan "an% dapat di#er&a#an dalam 191
suatu inter)al !a#tu tertentu( Salah satu te#ni# "an% mendoron% "an%
penin%#atan suatu sistem throu%hput
,u#up
he$at
dise$ut
se$a%ai
pemrosesan
pipeline( Konsep pemrosesan pipeline dalam suatu #omputer mirip den%an suatu $aris pera#itan dalam suatu pa$ri# industri( Am$il ,ontoh* suatu proses pem$uatan mo$il( Keti#a se$uah mo$il di$uat* mo$il terse$ut $erpindah sepan&an% $an $er&alan den%an $erurutan* mele!ati $e$erapa stasiun( Pada setiap stasiun* di#er&a#an se$a%ian proses #onstru#si pada mo$il
itu*
#emudian
$erpindah
la%i
#e
stasiun
$eri#utn"a( Perpindahan mo$il itu dari satu stasiun #e stasiun $erada
lainn"a* pada
$ersamaan*
memun%#in#an
$aris
pera#itan
masin%6masin%
$e$erapa
pada
pada
!a#tu stasiun
mo$il "an% "an%
terpisah( Selain itu* or%anisasi peran%#at tam$ahan untu# prosesor dapat menin%#at#an #iner&a #omputer( Se$a%ai
,ontohn"a seperti pen%%unaan $e$erapa
re%ister tun%%al a#umulator* dan pen%%unaan memori ,a,he( Pende#atan or%anisasi se,ara umum* adalah instru#si pipelinin%( Instru#si pipelinin% ini mirip den%an pen%%unaan &alur pera#itan di manu.a#tur tanaman( +alur pera#itan itu men%am$il #euntun%an 192
dari $er$a%ai .a#ta $ah!a produ# itu $er&alan melalui $er$a%ai tahap produ#si( en%an meleta##an proses produ#si di &alur pera#itan* $e$erapa produ# pada $er$a%ai tahap dapat $e#er&a se,ara $ersamaan( Proses ini &u%a dise$ut se$a%ai pipelinin%* #arena* seperti dalam pipa* masu#an $aru diterima di salah satu
u&un%
se$elum
input
"an%
diterima
pada
se$elumn"a mun,ul se$a%ai output di u&un% lain( Untu# menerap#an #onsep e#se#usi dan intru#si ini* #ita harus men"adari $ah!a* pada #en"ataann"a* instru#si memili#i $e$erapa tahap( Misaln"a* pada instru#si sepeda itu di$a%i men&adi 10 tu%as "an% ter&adi se,ara $erurutan( +elas* harus ada $e$erapa #esempatan men%a,u
$a%i
pada
pipelinin%(
te#ni#C,ara
Pipelinin%
di
mana
itu
&u%a
tu%as
"an%
di$eri#an itu ter$a%i men&adi $e$erapa su$C$a%ian "an% perlu dila#u#an se,ara $erurutan ( $a%ian "an% harus di$a%i se,ara $erurutan itu se$a%ai $eri#utF 1(
Setiap su$ tas# 7tu%as8 dila#u#an oleh
satuan .un%sional "an% di$eri#an* <(
Unit "an% terhu$un% se,ara serial dan
$eroperasi se,ara $ersamaan*
193
/(
Pen%%unaan
#iner&a
se$a%ai
Pipelinin%
tu%as
menin%#at#an
e#se#usi
se#uensial
tradisional( Se$a%ai
pende#atan
mempertim$an%#an
sederhana*
pen%elompo#an
pen%olahan
instru#si #e dalam dua tahapF men%am$il instru#si dan
men%e#se#usi
instru#si(
Ada
#ali
selama
e#se#usi dari instru#si #eti#a memori utama tida# sedan%
dia#ses(
men%am$il
Kali
instru#si
ini
$isa
di%una#an
untu#
se,ara
paralel
$eri#utn"a
den%an pela#sanaan "an% se#aran%(
ua6Tahap Instru#si Pipeline Pada %am$ar 7a8 men%%am$ar#an pende#atan ini( Pipa ini memili#i dua tahap independen( Itu pada tahap pertama men%am$il instru#si dan $u..er itu( 194
Keti#a tahap #edua adalah %ratis* "an% pertaman tahap di$a%i#an instru#si $u..er( Sedan%#an tahap #edua sedan% men%e#se#usi instru#si* tahap pertama men%am$il #euntun%an dari setiap si#lus memori "an% tida# terpa#ai untu# men%am$il dan pen"an%%a instru#si $eri#utn"a( Ini dise$ut instru#si pre.et,h atau
.et,h
tumpan%
tindih(
-atatan
$ah!a
pende#atan ini* "an% meli$at#an instru#si $u..erin%* mem$utuh#an re%ister la%i( Pada umumn"a* pipelinin% mem$utuh#an re%ister untu# men"impan data antara tiap tahap( arus
&elas
$ah!a proses
ini
a#an
memper,epat e#se#usi instru#si( +i#a men%am$il dan mela#sana#an tahap "an% durasin"a sama* !a#tu si#lus instru#si a#an di$elah men&adi dua( Namun* &i#a #ita melihat le$ih de#at pada pipa %am$ar 7$8* #ita a#an melihat "an% dua #ali lipat ini tin%#at e#se#usi tida# mun%#in di#arena#an ada dua alasanF 1(
9a#tu
e#se#usi
a#an
le$ih
pan&an%
daripada pen%am$ilan !a#tu e#se#usi "an% a#an mem$a,a dan men"impan operan serta #iner&a $e$erapa operasi( en%an demi#ian* men%am$il pan%%un%
mun%#in
harus
195
menun%%u
untu#
$e$erapa !a#tu se$elum dapat men%oson%#an n"a pen"an%%a( <(
Se$uah
instru#si
,a$an%
$ers"arat
mem$uat alamat instru#si $eri#utn"a "an% a#an diam$il se,ara tida# di#etahui( an mempun"ai !a#tu "an% dapat di%una#an untu# men%am$il instru#si $eri#utn"a se,ara parallel 7$ersamaan8 den%an e#se#usi intru#si $eri#utn"a( an ada &u%a ,ontoh per$edaan mendasar antara men%ese#usi empat $a%ian tas# dari intru#si "an% di$eri#an( Empat $a%ian tas# dari intru#si meliputiF #asus ?et,hin% ?* e,odin% * E=,e,ution E* dan 9rite result 9( Beri#ut ,ontoh empat $a%ian tas# "an% men%%una#an pipelinin% dan seuential pro,essin% (
-ontoh ini men%ilustrasi#an $atasan dasar "an%F harus dila#u#an untu# men&amin hasil "an% tepat( Pada saat dua operasi salin% ter%antun% satu sama 196
lain*
ma#a
#eduan"a
harus
dila#uY#an
se,ara
$erurutan dalam urutan "an% $enar( Kondisi ini &elas memili#i #onse#uensi "an% mendalam( Memahami impli#asin"a adalah #un,i untu# memahami $er$a%ai alternati. desain dan pertu#aran "an% dihadapi dalam #omputer pipelined( alam
ran%#a
atau
%ra.i#
diatas
terse$ut
merumus#an $e$erapa #iner&a "an% dila#u#an untu# #e$ai#an pipeline dalam memproses seran%#aiantas# 7tu%as8* da nada &u%a nama lain dari %ra.i# ruan% !a#tu "aitu serin% dise$ut den%an %ra.i# Gantt( ari pem$ahasan se$elumn"a* mun%#in tampa# $ah!a sema#in $esar ¨ah tahap dalam pipa* sema#in ,epat tin%#at e#se#usi( Be$erapa desainer IBM SC/40 menun&u##an dua .a#tor "an% men%%a%al#an pola ini tampa#n"a sederhana untu# hi%hper.orman,e desain ZANE45a[* dan mere#a tetap elemen "an% desainer harus masih pertim$an%#an( Beri#ut ,ontoh %ra.i# "an% menun&u##an su#sesi su$6tas# 7tu%as8 dalam pipa terhadap !a#tu*
197
Selain men%%una#an %ra.i# seperti diatas ada &u%a u#uran6u#uran #iner&a untu# #e$ai#an pipeline "an% sudah disedia#an* diantarn"a se$a%ai $eri#utF 1(
Speed up 7Ke,epatan8
Mempertim$an%#an pela#sanaan tu%as
m 7petun&u#8 men%%una#an
7unit8 pipa(
N m61 unit !a#tu "an% diperlu#an untu#
men"elesai#an tu%as6tu%as dari m
<(
Throu%hput U 7n8 *
Throu%hput adalah $an"a#n"a instru#si "an% die#se#usi setiap !a#tun"a( /(
E.isiensi E 7n8(
198
Pipeline Stall Pipeline
stall
merupa#an
Se$uah
operasi
pipeline "an% di#ata#an telah terhenti oleh satu unit "an%
mem$utuh#an
le$ih
$an"a#
!a#tu
untu#
mela#u#an .un%sin"a* sehin%%a mema#sa tahapan lain untu# men&adi Idle( Pipeline HStallH mempun"ai $e$erapa Instru#si Keter%antun%anF 1(
Keter%antun%an Instru#si men%a,u pada
#asus dimana pen%am$ilan data dari instru#si ter%antun% pada hasil men%e#se#usi instru#si se$elumn"a( <(
Keter%antun%an
memani.estasi#an
dirin"a
Instru#si dalam
pela#sanaan
instru#si ,a$an% $ers"arat( Se$a%ai
,ontoh*
dalam
#asus
H,a$an%
&i#a
ne%ati.H instru#si* instru#si $eri#utn"a "an% a#an diam$il
tida#
a#an
di#etahui
sampai
hasil
men%e#se#usi $ah!a H,a$an% &i#a ne%ati.H instru#si di#enal( Pipeline HStallH #arena data Keter%antun%anF Keter%antun%an data dalam pipa ter&adi $ila sum$er operan
instru#si
ter%antun%
pela#sanaan instru#si se$elumn"a 199
pada
hasil
dari
Instru,tion le)el parallelism Paralelisme
tin%#at
instru#si6instru#si
"an%
instru#si terdapat
ter&adi pada
apa$ila
ran%#aian
$ersi.at independen dan #arena itu dapat die#se#usi se,ara paralel den%an ,ara salin% $ertumpan% tindih( Paralelisme .re#uensi
tin%#at
true
dependen,"
data
"an%
instru#si
ditentu#an
dependen," terdapat
dan
di
oleh
pro,edural
dalam
#ode(
Pen%%unaan set instru#si "an% memili#i pan&an% tetap a#an menin%#at#an paralelisme tin%#at instru#si(
asar asar Pipeline Pada Prosesor LJ Pada
industr"
pera#itan*
apa
pun*
proses
dipe,ah men&adi $e$erapa su$ proses "an% le$ih #e,il( Setiap su$proses di#er&a#an se,ara mandiri dari su$
proses
pera#itan
model
"an% lain( Misal pada industr" pemasan%anan
den%an
proses
pemasan%an ran%#a adalah dua su$ proses $er$eda "an% $ias dila#u#an se,ara parallel( \]Ban $er&alam]]
200
demi#ianlah se,ara umum s"stem ini di#enal( ampir semua manu.a#tur men%%una#an s"stem ini( Bera!al dari ide \]Ban $er&alan]] inilah terdapat #onsep pipeline( -ara #er&an"a mirip den%an s"stem terse$ut(
E#se#usi
instru# ru#si
dipe,ah
men&adi
$e$erapa su$ proses( Setiap proses di#er&a#an se,ara mandi ndiri( ri(
Pada
prose roseso sorr
LJ LJ
tela telah h
me% me%%una#an
#onsep ini( Pen%er&aan suatu instru#si di$a%i dalam tahapan6tahapan di mana tiap tahapan men%er&a#an suatu
instru# ru#si
terhu terhu$u $un% n%
se,ara
den% den%an an
parallel(
taha tahapa pan n
Tiap
tahapan
sela selan& n&ut utn" n"a a
sehi sehin% n%%a %a
ter$entu# pipa* instru#si ini masu# pada u&un% a!al taha tahapa pan n "an% "an% #emud #emudian ian dipro diproses ses melal melalui ui tahap tahapan6 an6 tahapan "an% ada dan #eluar pada u&un% a#hir taha tahapa pan( n( Karen Karena a tahap tahapan6 an6tah tahap apan an pada pada pipa pipa salin% salin% terhu$un%*
seluruh ruh
tahapan
harus
siap
untu# tu#
memp mempro rose ses s dala dalam m !a#tu "an% "an% $ers $ersam amaa aan( n( 9a#tu #tu "an%
di$utuh#an
untu#
memindah#an
se$uah
instru#si satu lan%#ah #e depan depan dise$ut si#lus mesin( Pan&an% dari si#lus mesin ditentu#an dari !a#u "an% di$utuh# di$utuh#an an oleh oleh tahapan tahapan "an% "an% palin% palin% lam$at lam$at !a#tu !a#tu e#se e#se#u #usi sin n"a( en% en%a an
#ondis ndisii
ini* ini* #e,epa ,epata tan n
dari dari
pipeline se$andin% se$andin% den%an den%an ¨ah tahapan pada pipa( 201
Biasan"a #eseim$an%an pan&an% tahapan tida# a#an sempurna( i sampin% itu proses pipelinin% itu sendiri menim$ul#an $e$erapa o)erhead (
Klasi.i#asi a'ard ata a'a a'ard rd data data ter& ter&ad adii pada pada saat saat anta antarr inst instru# ru#si si salin% $e$as* dan instru#si6instru#si terse$ut ,u#up de#at
di
mana
o)erlap
men"e$a$#an
pipeline
men%u$ah urutan a#ses operand( a'ard data dapat di#lasi..i#asi#an men&adi ti%a tipe*
ter%antun%
pada
urutan
$a,a
dan
tulis
pen%a#sesan dalan instru#si( Misal#an dua instru#si I dan +* di mana I ter&adi se$elu +( a'ard data "an% mun%#in adalahF
RA9 7read a.ter !rite 8F 8F + men,o$a untu#
mem$a,a sum$er se$elum I menulisn"a* sehin%%a + mendapat nilai lama "an% tida# $enar( Ini &enis ha'ard
data
"an%
palin%
umum
dan
#ita
men%%una#an men%%una#an te#ni# .or!ardin% untu# men%atasi( men%atasi( Te#ni# .or!ardin .or!ardin% % adalah adalah den%a den%an n menam$ah menam$ah#an #an &alur $ali# data dari hasil operasi ALU lan%sun% #epada pada sum$ sum$er er data data "an% di$u di$utu tuh# h#an an pros proses es selan&utn"a( 202
rite a.te .ter 9A9 7!rite
!rit rite 8F
+
men,o$a
untu# untu# menu menuli lis s oper operan and d se$e se$elu lum m ditul ditulis is oleh oleh I( Penu Penulis lisan an $era# $era#hir hir dila# dila#san sana#a a#an n den% den%an an urutan urutan "an% salah* menin%%al#an nilai "an% ditulis oleh I $u#an nilai "an% ditulis oleh +( a'ard ini han"a ter&ad ter&adii dala dalam m pipeli pipeline ne "an% "an% menuli menulis s pada pada le$ih le$ih satu satu tahap tahap pipel pipeline ine(( Pipe Pipelin line e inte%e inte%err LJ LJ han" han"a a menulis re%ister pada 9B dan men%hindari ha'ard &enis ini( +i#a #ita mem$uat dua peru$ahan pada pipeline
LJ*
ha'ard
9A9
mun%#in
ter ter&adi*
pertama #ita memindah tulis $ali# untu# operasi ALU
#edalam
tahap
MEM*
#arena
nilai
data
tersedia tersedia #emudi #emudian( an( Kedua* Kedua* missal missal pen%a pen%a#ses #sesan an memori memori data data memerlu memerlu#a #an n dua dua tahap tahap(( Beri#u Beri#utt ini ini urutan urutan dua instru#si instru#si "an% "an% menun&u# menun&u#an an e#se#usi e#se#usi pada pipeline "an% diper$ai#i iniF L9
R1*
I
I
07R<8 A
?
R1*R<*R/
?
E J
I
M EM1
I
203
M EM<
E J
B 9
B
9
Pen&ad!alan Instru#si untu# Men,e%ah a'ard ata Be$erapa tipe pipeline stall serin% ter&adi( Pola pem$ pem$an an%# %#it itan an6# 6#od ode e
"an%
$ias $iasa a
untu# untu# pern pern" "ataa$ taa$
ABAB- men%h men%hasi asil# l#an an pipe pipelin line e stall stall untu# untu# load load nilai nilai data #edua #edua 7B8( Pen"imp Pen"impana anan n A tida# tida# men"e men"e$a$ $a$#an #an pipe pipeli line ne stall stall** #are #arena na hasi hasill pen& pen&um umla laha han n dapa dapatt di6 di6 .or! r!a ard
#e
memori
data
untu# tu#
di%una#an
oleh
instru#si store( ari aripa pada da
mela mela#u #u#a #an n
pipe pipeli line ne
stal st all* l* ,omp ,ompil iler er
dapa dapatt men, men,o$ o$a a untu# untu# men& men&ad ad! !al urut urutan an inst instru# ru#si si untu# untu# men, men,e% e%ah ah ter& ter&ad adin in" "a pipe pipeli line ne st stal alll den% den%an an men"u men"usun sun ulan% ulan% urutan urutan #ode #ode untu# untu# men%h men%hila ilan%# n%#an an ha'a ha'ard rd(( -ont -onto oh* #ompil mpilat ato or dapa dapatt men, men,o$ o$a a untu# untu# men,e%ah
adan"a
#ode
load
"an%
dii#uti
oleh
pen%%unaan lan%sun% re%ister tu&uan load( Te#ni# ini* dise$ut pen&ad!alan instru#si( -ontohF
Buatlah
#ode
LJ
"an%
pipeline stall untu# urutan perintah $eri#utF a$, de.
204
men,e%ah
Asumsi#an load mempun"ai #eterlam$atan satu si#lus ,lo,#( +a!a$anF
Beri#ut
ini
#ode
"an%
telah
di&ad!al#anF L9 R$* $ L9 R,* , L9 Re* e A Ra* R$* R, L9 R.* . S9 a* Ra SUB Rd* Re* R. S9 d* Rd Kedua interlo,# load 7L9 R,* , terhadap A Ra* R$* R, dan L9 R.* . terhadap SUB Rd* Re* R.8 dapat dihilan%#an(
Terda rdapat
#eter%antun tun%an
antara
instru instru#si #si ALU ALU den% den%an an pen" pen"imp impan anan an** tetap tetapii stru#tu stru#turr pipeline men%i'in#an hasil di6.or!ard( -ata -atata tanF nF
pen% pen%%u %una naan an
re%i re%ist ste er
"an%
$er$ $er$ed eda a
untu# instru#si pertama dan #edua adalah hal pentin% sehin%%a pen&ad!alan ini le%al( Se,ara #husus* &i#a )aria$le e di6load #e dalam re%ister "an% sama seperti $ tau ,* ma#a ma#a pen&a pen&ad! d!al alan an ini ini tida# tida# $ole $oleh( h( Se,ar Se,ara a
205
umum*
pen&ad!alan
pipeline
dan
menin%#at#an
¨ah re%ister "an% diperlu#an( Be$erapa men%%una#an
#ompilator
modern
pen&ad!alan
instru#si
men,o$a untu#
menin%#at#an #iner&a pipeline( alam al%oritma "an% san%at
sederhana*
#ompilator
men&ad!al#an
men%%una#an instru#si lain pada $lo# dasar "an% sama( Blo# dasar adalah urutan #ode lurus tanpa trans.er "an% masu# maupun #eluar* #e,uali pada a!al dan a#hir( Pen&ad!alan #ode seperti tida# sulit* #arena #ita tahu $ah!a setiap instru#si dalam $lo# die#se#usi &i#a "an% pertama die#se#usi( Kita dapat mem$uat %raph #eter%antun%an dan men%urut#an instru#si sehin%%a dapat meminimal#an pipeline stall(
a'ard Kendali a'ard #endali dapat men"e$a$#an penurunan #iner&a "an% le$ih $esar pada pipeline LJ daripada ha'ard
data(
Pada
saat
operasi
pen,a$an%an
die#se#usi* ada #emun%#inan P- diu$ah #e suatu nilai lain alamat instru#si "an% ditu&u( +i#a tida# ter&adi
pen,a$an%an
ma#a 206
nilai
P-
se#aran%
ditam$ah >( +i#a suatu instru#si + men%a#i$at#an pen,a$an%an ma#a nilai P- $elum $eru$ah sampai selesai tahap MEM* setelah selesai pen%hitun%an alamat dan per$andin%an( -ara "an% palin% sederhana $er#enaan den%an pen,a$an%an adalah den%an pipeline stall se,epatn"a #eti#a #ita mendete#si pen,a$an%an sampai #ita men,apai tahap MEM* "an% menentu#an nilai $aru untu# P-( Tentun"a* #ita tida# dapat mela#u#an pipeline stall se$elum men%etahui $ah!a instru#si terse$ut adalah pen,a$an%an* &adi pipeline stall tida# ter&adi sampai tahap I( Pipeline stall pada ha'ard #endali diimplementasi#an se,ara $er$eda den%an ha'ard data* #arena tahap I? instru#si "an% men%i#uti pen,a$an%an men%etahui
harus hasil
diulan%
se%era
pen,a$an%an(
setelah
+adi*
tahap
#ita I?
pertama pada dasarn"a pipeline stall &u%a #arena tida# pernah di%una#an( Pipeline stall ini dapat diimplementasi#an den%an mem$eri#an nilai re%ister I?CI den%an nol untu# ti%a tahap a!al( Ti%a
si#lus
,lo,#
di$uan%
setiap
instru#si
pen,a$an%an adalah #ehilan%an "an% $erarti( en%an .re#uensi /0 dan -PI idealn"a 1* mesin den%an 207
pipeline stall pen,a$an%an han"a men,apai se#itar seten%ah penin%#atan #e,epatan ideal pada pipeline( +adi* men%hilan%#an pipeline stall pada pen,a$an%an san%at
pentin%(
+umlah
pipeline
stall
pada
pen,a$an%an dapat di#uran%i den%an dua ,araF 1(
Men,ari
tahu
le$ih
a!al
apa#ah
pen,a$an%an ter&adi atau tida#( <(
Men%hitun% le$ih a!al alamat tu&uan
pen,a$an%an &i#a ter&adi pen,a$an%an(
208
209
BAB 10 REU-E INSTRU-TIONS SET -OMPUTER
Pendahuluan Pada $a$ ini a#an di&elas#an men%enai RIS7Redu,ed seperan%#at
Instru,tion
Set
instru#si
-omputin%8 #omputasi
atau "an%
disederhana#an( Mesin ini memper#enal#an se$uah peru$ahan dalam pola arsite#tur #omputer( Pola atau $entu# ini le$ih menon&ol#an se$uah #esederhanaan daripada #e6#omple#s6an( RIS- diper#uat oleh se$uah penelitian "an% menun&u##an $ah!a pen%umpulan tu%as*
per,a$an%an
$ers"arat*
dan
prosedur
peman%%ilan menun&u##an le$ih dari :0 dan operasi 210
"an% #omple#s seperti $a%ian pan&an% han"a se#itar < dari #iner&a "an% ditampil#an dalam se$uah peran%#at pro%ram $en,hmar# "an% sama( Penelitian ini &u%a menun&u##an $ah!a diantara semua #er&a* prosedur peman%%ilan "an% mema#an $an"a# !a#tu( Berdasar#an
hasil
terse$ut*
RIS-
#emudian
menin%#at#an arsite#tur den%an sum$erda"a "an% di$utuh#an untu# mem$uat e#se#usi dari "an% palin% serin% dan palin% mema#an !a#tu operasi a%ar le$ih e.isien(
RIS-
mun,ul
pertama
#ali
pada
tahun
1:50]an* merupa#an per!u&udan n"ata "an% mun,ul di Ber#ele" RIS- dan Stan.ord MIPS ma,hine* "an% #emudian diper#enal#an pada perten%ahan tahun 1:0]an( Kini
RIS-
adalah
se$uah
mesin
"an%
di#ate%ori#an den%an $e$erapa .itur seperti simpel dan
pen%uran%an
set
intru#si*
per$ai#an
.ormat
instru#si* satu instru#si per satu si#lus mesin* alur pen,apaian
instru#siC
unit
e#se#usi*
$an"a#n"a
¨ah dari tu&uan umum re%ister6re%ister* memori pen"impanan
operasi
dan
$er#a$el(
211
desain
,ontrol
unit
Se&arah 7e)olution ,",le8 RIS-C-ISRIS- adalah sin%#atan dari Redu,ed Instru,tion Set -omputin%( Pada a!aln"a di#enal se$a%ai se$uah %a%asan untu# men&elas#an arsite#tur "an% dapat men%e#se#usi se,epat6,epatn"a satu instru#si per si#lus !a#tu( RIS-
mulai
tahun1:50]an mem$an%un
dan mesin
di%a%as
pada
a#hirn"a RIS-
perten%ahan
memulai
pertama*
"aitu
untu# mini
#omputer IBM 01( Pelun,uran penemuan RIS- ini diumum#an se$a%ai a!al dari se$uah paradi%ma $aru dalam desain arsite#tur #omputer( ?a#tan"a RIS-le$ih $an"a# di%una#an #em$ali pada a!al penemuan dari pada men"edia#an hard!are "an% le$ih ,o,o# untu# $ahasa tin%#at tin%%i( Paradi%ma ini $eru$ah sesuai den%an apa "an% #ita #etahui tentan% ,elah semanti#* se$uah perhitun%an dari per$edaan antara operasi6 operasi "an% disedia#an dalam $ahasa tin%#at tin%%i dan itu disedia#an dalam arsite#tur #omputer( RIS- di#enal se$a%ai,elah semanti# terle$ar* den%an a#i$at "an% tida# diin%in#an dalam ¨ah ter$an"a#(
iantaran"a
adalah
tida#
e.isienn"a
e#se#usi* u#uran pro%ram mesin "an% $erle$ihan dan 212
menin%#atn"a #erumitan ,ompiler( Konse#uensi "an% diharap#an*
respon
#on)ensional
dari
arsite#
#omputer "an% menam$ah lapisan rumit #e arsite#tur ter$aru( Menai##an ¨ah dan #e#omple#san dari instru#si $ersama den%an menai##an ¨ah dari model pen%alamatan( Arsite#tur ini dihasil#an dari se$uah adopsi 2add more ,omple=it"3( Se#aran% di#enal
se$a%ai
-IS-
7-omple=
Instru,tion
Set
-omputin%8( A#an tetetapi* itu a#an men&adi se$uah instru#si #omple#s den%an $e$erapa #e#uran%an( -IS- &u%a termasu# se$uah s#ema peme,ahan #ode instru#si
"an% #omple#s( Kenai##an
u#uran dari
,ontrol unit* dan penundaan lo%i#a "an% men%alami #enai##an( Ke#uran%an6#e#uran%an ini men&adi#an tim arsite# #omputer men%adopsi prinsip 2less is a,tuall"
more3(
Se¨ah
penelitian
#emudian
diada#an untu# meneliti pen%aruh dari per.orma "an% #omple#s( RIS- ini pertama #ali ditemu#an oleh seoran% peneliti dari IBM* +ohn -o,#e se#itar tahun 1:5>( RIS- ini ditemu#an saat dia mem$u#ti#an $ah!a ada se#itar <0 instru#si pada se$uah prosesor dapat men%er&a#an atau men%e#se#usi le$ih 213
dari
0
#iner&an"a( Pertama #ali dipopuler#an oleh seoran% pen%a&ar dari Uni)ersit" o. -ali.ornia* a)id Paterson se#itar tahun 1:0]an( Be$erapa
mi#roprosesor
"an%
men%%una#an
prinsip RIS- ini diantaran"a adalah se$a%ai $eri#utF
Intel
:40*
Itanium
7IA4>8
dari
Intel
-orporation*
Alpha AJP dari E-* R>=00 dari MIPS
-orporation*
Po!erP-
dan
Arsite#tur
PO9ER
dari
7ARM8
dan
International Business Ma,hine(
Ad)an,ed
RIS-
Ma,hine
Stron%ARM 7termasu# di antaran"a adalah Intel JS,ale8*
SPAR-
dan
UltraSPAR-
dari
Sun
Mi,ros"stems*
PA6RIS- dari e!lett6Pa,#ard(
-ontoh6,ontoh
prosesor
-IS-
adalah
S"stemC/40* DAJ* PP611* )arian Motorola 4000* dan -PU AM dan Intel =4(
214
Prinsip dari esain RISSe$uah
#omputer
den%an
¨ah
instru#si
minimum memili#i #elemahan $ah!a se$a%ian $esar instru#si harus di&alan#an den%an me!u&ud#an suatu .un%si "an% sederhana( al ini a#an men%a#i$at#an #eru%ian
pada
masalah
#e,epatan(
i sisi
lain*
#omputer den%an ¨ah instru#si "an% sema#in menin%#at
memili#i
#elemahan
pada
#omple#sde,odin% dan #eru%ian pada #e,epatan( Aspe# perhitun%an "an% harus diperhati#an dalam men%uran%i set instru#si meliputiF 7a8 operasi "an% palin% serin% dila#u#an selama pela#sanaan pro%ram 7$8 operasi "an% palin% serin% mema#an !a#tu lama dan 7,8 &enis operan "an% palin% serin% di%una#an(
Sejumlah penelitian a!al dilakukan dalam rangka untuk mngetahui
kerusakan
yang
khas
pada
operasi
yang
melaksanakan program patokan, perkiraan distribusi operasi ditunjukkan pada Tabel berikut6 Operasi Tu%as pern"ataan Loop6loop Prosedur
Per#iraan Persentase /@ @ 1@
pan%%ilan 215
-a$an% $ers"arat -a$an% tida#
>0 /
$er#ondisi Lainn"a < Berdasar#an ta$el di atas* perila#u pro%ram "an% #has telah men"e$a$#an se$a%ai $eri#ut( 1(
Per%era#an
data
"an%
sederhana
7di!a#ili oleh pern"ataan penu%asan8 daripada operasi "an% #omple#s* "an% su$stansial dan harus dioptimal#an( <(
-a$an%
#ondisional
"an%
dominan
Karena harus hati6hati dalam pem$a"aran #epada urutan instru#si( al ini $erla#u $ila di#etahui $ah!a pipelinin% san%at diperlu#an( /(
Prosedur
pan%%ilan
"an%
mema#an
!a#tu operasi dan #arena itu me#anisme harus diran,an% untu# mem$uat #omuni#asi parameter antara pan%%ilan dan prosedur terse$ut "an% men"e$a$#an sedi#itn"a ¨ah instru#si untu# pen%e#se#usian( >(
Operasi utama adalah me#anisme untu#
men"impan dan men%a#ses s#alar )aria$el lo#al( Kesimpulan di atas telah men"e$a$#an ar%umen mem$a!a instru#si diatur arsite#tur le$ih de#at #e 216
LLs* harus le$ih tepat untu# le$ih men%optimal#an #iner&a "an% mema#an !a#tu pro%ram dari .itur #has LL( Ini &elas merupa#an pan%%ilan untu# mem$uat arsite#tur sederhana daripada "an% #omple#s( In%at $ah!a operasi #omple#s seperti pem$a%ian pan&an% han"a me!a#ili se$a%ian #e,il 7#uran% dari <8 dari operasi "an% dila#u#an selama perhitun%an "an% #has( Untu# men,apai hal terse$ut #ita dapat 7a8 men&a%a operan "an% palin% serin% dia#ses di dalam re%ister dan -PU dan 7$8 meminimal#an operasi re%ister #e memori( ua
prinsip
di
atas
dapat
di,apai
den%an
men%%una#an me#anisme6me#anisme $eri#utF 1( untu#
Men%%una#an se¨ah $esar re%ister men%optimal#an
re.erensi
operan
dan
men%uran%i lalu lintas memori prosesor( <(
Men%optimal#an desain pipeline instru#si
terse$ut( /(
Men%%una#an
set
instru#si
"an%
disederhana#an dan men%a$ai#an "an% #omple#s dan tida# perlu instru#si( Beri#ut dua pende#atan "an% dide.inisi#an untu# menerap#an #eti%a me#anisme di atas "aitu( 217
1(
Pende#atan peran%#at luna#( Guna#an
,ompiler
untu#
mema#simal#an
pen%%unaan
re%ister den%an men%alo#asi#an re%ister untu# )aria$el6)aria$el "an% di%una#an dalam periode !a#tu tertentu( <(
Pende#atan peran%#at #eras( Guna#an
re%ister -PU "an% ,u#up sehin%%a )aria$el le$ih dapat diselen%%ara#an di re%ister untu# &an%#a !a#tu "an% le$ih $esar( Pende#atan peran%#at #eras
memerlu#an
pen%%unaan
or%anisasi
re%ister $aru* "an% dise$ut o)erlapped re%ister !indo!s( Terdapat se¨ah prinsip desain* "an% #adan%6 #adan% dise$ut Prinsip6prinsip esain RIS-* "an% harus $enar6$enar dipatuhi oleh peran,an% -PU "an% memili#i tu&uan umum( Be$erapa diantaran"aF 1(
Semua
instru#si
se,ara
lan%sun%
di&alan#an oleh hard!are( <(
Supa"a
mempun"ai
tin%%ima#a semua
instru#si
se,ara
oleh
lan%sun%
#e,epatan
umum di&alan#an
hard!are(
Instru#si6
instru#si terse$ut tida# diinterpretasi#an oleh mi#roinstru#si6mi#roinstru#si( 218
Men%hilan%#an
suatu
le)er
interpretasi
a#an
men%hasil#an
#e,epatan tin%%i $a%i se$a%ian $esar instru#si( /(
Mema#simal#an
#e,epatan
dimana
instru#si6instru#si di#eluar#an( >(
-omputer6#omputer
modern
men%%una#an $an"a# tri# untu# menin%#at#an #iner&an"a*
terutama
den%an
men,o$a
men%e#se#usi#an @00 &uta instru#si per deti# 7MIPS8( @(
Instru#si6instru#si harus mudah untu#
dide#ode#an 4(
Batas
#ritis
pada
tin%#at
#e,epatan
men%eluar#an instru#si6instru#si adalah den%an mende#ode#an
masin%6masin%
instru#si
untu#
men%etahui sum$er da"a6sum$aer da"a apa "an% mere#a $utuh#an( 5(
an"a instru#si6instru#si load dan Store
"an% dia#ses #e Memor" (
Salah satu ,ara palin% sederhana untu#
mem$a%i lan%#ah
operasi6operasi terpisah
adalah
#e
dalam
menetap#an
lan%#ah6 supa"a
operand6operand untu# se$a%ian $esar instru#si
219
harus $era!al dari 66dan #em$ali #e66 re%ister6 re%ister :(
Men"iap#an $an"a# re%ister
10( Karena a#ses #e memori a%a# lam$at* ma#a perlu disiap#an $an"a# re%ister 7palin% tida# /< re%ister8( Karena itu setelah se$uah instru#si
diam$il*
instru#si
terse$ut
tetap
tersimpan dalam se$uah re%ister hin%%a instru#si itu tida# diperlu#an la%i(
O)erlapped dari 9indo!s Re%ister Ga%asan utama di $ali# pen%%unaan !indo!s re%ister adalah untu# meminimal#an pen%a#sesan memori( alam ran%#a untu# pen,apaian terse$ut* se$a%ian
$esar
re%ister
-PU
harus
di$utuh#an(
Se$a%ai ,ontoh* ¨ah re%ister -PU "an% tersedia di SPAR- den%an mesin asli 7salah satu RIS- pertama8 adalah 1<0( Namun* han"a su$set dari re%ister terlihat pada !a#tu tertentu( Oleh #arena itu* re%ister -PU di$a%i men&adi $e$erapa set #e,il* masin%6masin% ditu%as#an untu#
prosedur "an% $er$eda( Suatu
prosedur pan%%ilan se,ara otomatis a#an $eralih pada -PU untu# men%%una#an !indo!s tetap den%an 220
u#uran "an% $er$eda dari re%ister( alam ran%#a untu# meminimal#an %era#an a#tual dari parameter "an% dipan%%il dan prosedur terse$ut( O)erlapped memun%#in#an parameter "an% a#an $erla#u antara prosedur tanpa a#tual per%era#an data 7Gam$ar 10( 18( Le)el & Para
7peman%%il8 Masu# Le)el &1
meter
Re%iste r lo#al
re%ister
r RIS-61 Bar#ele" P"ramid6
%ister sement ara
7"% dipan%%il8 Arsite#tu
Re
+umlah !indo!
+umlah per !indo! 14
14
/<
/<
/<
piramid SPAR-
RIS- DS -ISRIS-
221
re%ister
Redu,ed Instru,tion Set -omputin% 7RIS-8 atau HKomputasi
set
instru#si
"an%
disederhana#anH
pertama #ali di%a%as oleh +ohn -o,#e* peneliti dari IBM di or#to!n* Ne! or# pada tahun 1:5> saat ia mem$u#ti#an
$ah!a se#itar
<0
instru#si
pada
se$uah prosesor tern"ata menan%ani se#itar 0 dari #eseluruhan
#er&an"a(
Komputer
pertama
"an%
men%%una#an #onsep RIS- ini adalah IBM P-CJT pada era
1:06an(
Istilah
RIS-
sendiri
pertama
#ali
dipopuler#an oleh a)id Patterson* pen%a&ar pada Uni)ersit" o. -ali.ornia di Ber#el"( RIS- di$uat se$a%ai hasil dari pro&e# 01 "an% dimulai pada tahun 1:5@ di IBM T( +( 9atson resear,h ,enter dan selesai pada tahun 1:0an( Pro"e# ini tida# di$erita#an se,ara luas oleh IBM* tetetapi ada dua pro"e# "an% sama di a!al tahun 1:0an "aitu di uni)ersit" o. -ali.ornia Ber#ele" dan di Stan.ord uni)ersit"*
Tetetapi
RIS-
"an%
dipa#ai
sampai
se#aran% adalah hasil resear,h dari uni)ersit" o. -ali.ornia Ber#ele"( Tu&uan dari RIS- adalah dapat men%e#se#usi one -",le Per Instru,tion(
222
ISA
7Instru,ture
Set
Ar,hite,ture8
mende.inisi#an #eadaan dari prosesoor dan se,ara tida# lan%sun% mempen%aruhi #eseluruhan $entu# sistem(
-ISTu&uan
utama
mela#sana#an
dari
suatu
arsite#tur perintah
-IS-
,u#up
adalah den%an
$e$erapa $aris $ahasa mesin sedi#it mun%#in( al ini $isa ter,apai den%an ,ara mem$uat peran%#at #eras prosesor
mampu
$e$erapa
ran%#aian
memahami operasi(
dan -IS-
men&alan#an adalah
suatu
s"stem "an% men%%una#an instru#tur "an% #omple#s( MULT
RISProsesor RIS- han"a men%%una#an instru#si6 instru#si sederhana "an% $isa die#se#usi dalam satu si#lus(
en%an
demi#ian*
instru#si
\MULT]
se$a%aimana di&elas#an se$elumn"a di$a%i men&adi ti%a instru#si "an% $er$eda* "aitu 2LOA3* "an% di%una#an untu# memindah#an data dari memori #e dalam
re%ister*
2PRO3*
"an%
di%una#an
untu#
mela#u#an operasi produ# 7per#alian8 dua operan 223
"an% $erada di dalam re%ister 7$u#an "an% ada di memori8
dan
2STORE3*
"an%
di%una#an
untu#
memindah#an data dari re%ister #em$ali #e memori( Beri#ut
ini
adalah
urutan
instru#si
"an%
harus
die#se#usi a%ar "an% ter&adi sama den%an instru#si 2MULT3 pada prosesor RIS- 7dalam > $aris $ahasa mesin8F LOA A*
Keun%%ulan RISSaat ini* han"a Intel =4 satu6satun"a ,hip "an% $ertahan
men%%una#an
arsite#tur
-IS-(
al
ini
ter#ait den%an adan"a #ema&uan te#nolo%i #omputer pada se#tor lain( ar%a RAM turun se,ara dramatis( Pada tahun 1:55* RAM u#uran 1MB $erhar%a @*000* sedan%#an pada tahun 1::> har%an"a men&adi se#itar Q4(
Te#nolo%i
#ompailer
&u%a
sema#in
,an%%ih*
den%an demi#ian RIS- "an% men%%una#an RAM dan per#em$an%an
peran%#at
luna#
$an"a# ditemu#an(
224
men&adi
sema#in
Telah
terlihat
$ah!a
RIS-
$u#an
se$uah
re)olusi* melain#an .ormalisasi seperan%#at #riteria desain dipandu oleh e)olusi te#nolo%i( apat dilihat $ah!a prinsip utama dari metodolo%i RIS- adalah untu# men%inte%rasi#an hard!are han"a .itur "an% teru#ur menin%#at#an #iner&a( en%an #ata lain* RISdapat
dilihat
mene#an#an
se$a%ai
%a"a
arsite#tur
#esederhanaan
dan
#omputer e.isiensi(
Pende#atan ini men%i#uti saran Don Neumann pada set instru#si desain pada tahun 1:>4F Kami $erharap untu# memasu##an #e dalam mesin dalam $entu# sir#uit han"a #onsep lo%is seperti "an% $ai# perlu memili#i sistem "an% len%#ap atau san%at n"aman #arena .re#uensi "an% mere#a ter&adi(
Saran Don Neumann menun&u##an $ah!a dasar6 dasar .iloso.i RIS- $u#an hal $aru( RIS- desain mela,a#
a#ar
mere#a
#e
#omputer
ele#troni#
pertama( Seperti RIS-* #omputer a!al adalah mesin dire,t6e#se#usi "an% memili#i6to6de,ode mudah set instru#si sederhana( Ide arsite#tur mi,ropro%rammed mun,ul pertama pada tahun 1:@1* di&elas#an oleh 9il#es( Tetapi* #omputer #omersial pertama "an% 225
$er$asis pada se$uah mi,ro,ode adalah IBM /40 pada tahun 1:4>( Itu adalah #omputer pertama "an% memili#i arsite#tur* "aitu* stru#tur a$stra# den%an satu
set
tetap
instru#si
mesin*
terpisah
dari
implementasi hard!are( Kemudian*
desainer
#omputer
mini
han%at
memelu# mi,ro,ode se$a%ai ,ara untu# mem$an%un mesin "an% hemat $ia"a( Mere#a terutama diperlu#an untu# men%uran%i $ia"a hard!are dan menin%#at#an #iner&a( To#o mi,ro,ode #e,il di$an%un dari ROM dan mi#ro mesin dipindah#an #e to#o mi,ro,ode $esar dan unit hard!are "an% #omple#s dan seuen,er* untu# men,apai tu&uan terse$ut( Per$ai#an sir#uit terpadu
se#itar
mi,ro,ode
le$ih
tahun
1:50
mem$uat
,epat*
mendoron%
memori
pertum$uhan
mi,ropro%rams( Misaln"a* E- DAJ 11C50 memili#i le$ih dari >00( 000 $it mi,ro,ode( Bah#an* desain mi,ro,ode men&adi seni "an% tin%%i di tan%an arsite# #omputer( Salah satu masalah ter$esar den%an mi,ro,ode adalah $ah!a hal itu &aran% $u%6.ree( Konse#uensi ne%ati. dari pende#atan terse$ut menin%#at !a#tu desain* #esalahan desain "an% le$ih* dll( 226
-ONTO TE -RA61 Super,omputer Be$erapa arsite# #omputer tida# meme%an% pendapat $ah!a mi,ro,ode menin%#at#an #iner&a( Se"mour -ra" telah mendapat pen%a#uan se$a%ai pelopor
arsite#tur
#omple#sitas
itu
super#omputer men%%una#an
RIS-( $uru#
ia dan
ter,epat set
instru#si
per,a"a terus
di
$ah!a
mem$an%un
dunia
den%an
sederhana(
Se$a%ian
$esar .itur desain -- 4400 dan -RA61 #omputer men%in%at dasar dari .iloso.i desain RIS-( en%an ,ara ini* -RA61 super#omputer adalah salah satu pre#ursor dari arsite#tur RIS- modern(
TE IBM 01 KOMPUTER Pada
tahun
"an%
sama
71:5@8*
se#elompo#
peneliti "an% dipimpin oleh Geor%e Radin di IBM Thomas +( 9atson Resear,h -enter mulai $e#er&a pada se$uah #omputer "an% didasar#an pada #onsep "an% di#em$an%#an oleh +ohn -o,#e( +ohn -o,#e adalah seoran% pen%an&ur petun&u# sederhana untu# meran,an% ,ompiler e.isien( Tim 227
IBM melihat $an"a# &utaan $aris #ode di#ompilasi( Mere#a menemu#an
$ah!a instru#si
rumit
"an%
mem$antu pro%rammer assem$l"6$ahasa manusia* tetapi ,ompiler $ahasa tin%#at tin%%i se$a%ian $esar men%a$ai#an
mere#a(
Para
peneliti
menentu#an
$ah!a se$a%ian $esar #ode "an% dihasil#an oleh ,ompiler terutama terdiri dari $e$an* to#o* ,a$an%* menam$ah dan mem$andin%#an petun&u#( Semua instru#si
sederhana
ini
mi,roinstru,tion lan%sun%(
228
memili#i
setara
?urrther* para peneliti IBM o$er)ed men%ata#an $ah!a $an"a# petun&u# "an% le$ih #omple#s tersedia pada
#e$an"a#an
memerlu#an
#omputer
peran%#at
mi,ro,oded
#eras
tam$ahan
tida# dan
diterap#an han"a se$a%ai rutinitas mi,ro,oded( +ohn -o,#e
men"impul#an
tin%%i
$enar6$enar
$ah!a tida#
prosesor perlu
$er#iner&a
men"erta#an
mi,ro,ode ROM den%an mesin ne%ara pen%ontrol 229
ter#ait( al ini le$ih e.isien untu# meran,an% set instru#si
sederhana
"an%
memun%#in#an
pela#sanaan satu instru#si per ,lo,# ,",le( Temuan ini dipandu desain e#sperimental 01 #omputer IBM( i$an%un dari o..6the6shel. 7Emitter6 itam$ah Lo%i,8 dan selesai pada tahun 1:5:* IBM 01 adalah #omputer mini /<6$it den%an instru#si sin%le6,",le* /< re%ister* ,a,he
memori
terpisah
untu#
instru#si
,a$an%
instru#si
dan
data*
dan
tertunda( The IBM 01 se#aran% umumn"a dia#ui se$a%ai "an% pertama disen%a&a mesin RIS-( Namun* istilah RIS- $elum di,ipta#an dan pada tahun 1:0 rumor
pro"e#
IBM
01
men"e$ar
$ah#an
tanpa
pen%un%#apan resmi oleh IBM( Pada saat "an% sama* RIS- 7Redu,ed Instru,tion Set
-omputer8
dan
MIPS
7Mesin
tanpa
salin%
$ertautan Pipeline Sta%es8 pro"e# dimulai masin%6 masin% di Ber#ele" 7Uni)ersit" o. -ali.ornia8 dan Stan.ord(
230
231
BAB 11 MULTIPRO-ESSOR
Pen%ertian Multipro,essor Multipro,essin% adalah suatu #emampuan suatu sistem operasi "an% men&alan#an dua atau le$ih instru#si
se,ara
se¨ah
-PU
serenta#
dalam
sistem seperti ini
den%an
se$uah
men%%una#an
#omputer(
en%an
se$uah sistem operasi
dapat
men%atur a%ar se¨ah -PU men&alan#an instru#si6 instru#si "an% $er$eda "an% terleta# dalam se$uah pro%ram
dalam
!a#tu
"an%
sama(
Kemampuan
e#se#usi terhadap $e$erapa proses peran%#at luna# dalam
se$uah
sistem
se,ara
serenta#*
di$andin%#an den%an se$uah proses
&i#a
dalam satu
!a#tu* mes#i istilah multipro%rammin% le$ih sesuai untu# #onsep ini( 232
Sistem multi prosessor "an% serin% di%una#an adalah model s"mmetri, multipro,essin%* dimana setiap prosessor men&alan#an sistem operasi "an% identi#
dan
diperlu#an(
#omuni#asi
antar
Be$erapa
prosesor
sistem
&i#a
men%%una#an
as"mmetri, multipro,essin%* dimana setiap prosessor mempun"ai
tu%as
men%ontrol
sistem*
instru#si
tetentu(
prosessor
master
atau
oleh
master(
ditentu#an
Prosessor lain
mempun"ai S#ema
ini
master
menun%%u tu%as
"an%
merupa#an
hu$un%an master6sla)e( Prosessor master men&ad!al dan men%alo#asi#an pe#er&aan dari prosessor sla)e( -ontoh
s"mmetri,
multipro,essin%
adalah
sistem UNIJ )ersi En,ore]s untu# #omputer Multima= Komputer dapat di#on.i%urasi#an untu# menan%ani satu
lusin
prosessor* semua
men&alan#an
UNIJ(
Keuntun%an dari model ini adalah $ah!a $e$erapa proses dapat $er&alan pada satu !a#tu 7N proses &i#a terdapat N -PU8 tanpa men"e$a$#an pen%uran%an per.ormansi( Sehin%%a #ita dapat men%ontrol ICO se,ara hati6hati untu# men&amin data mendapat#an prosessor "an% tepat(
233
Se,ara tradisional* #omputer telah dipandan% se$a%ai suatu mesin se#uential( Se$a%ian $esar $ahasa
pemro%raman
pemro%ram
#omputer
men%harus#an
untu# menentu#an al%oritma se$a%ai
ran%#aian
instru#si6instru#si( Pro,esor mela#u#an
e#se#usi
pro%ram
den%an
,ara
men%e#se#usi
instru#si6instru#si mesin se,ara $erurutan dan satu per satu( Setiap instru#si die#se#usi dalam urutan operasi
7mem$a,a
instru#si*
mem$a,a
operand*
mela#u#an operasi* men"impan hasil8( -ara tida#lah
memandan% sepenuhn"a
#omputer
seperti
$enar(
Pada
di
atas
tin%#at
mi,rooperation* $e$erapa ,ontrol si%nal dihasil#an dalam !a#tu "an% $ersamaan( Pipelinin% instru#si* sedi#itn"a
sampai
mem$a,a
dan
men%e#se#usi
operasi "an% $ertumpan% tindih* telah ada se&a# lama( Keduan"a merupa#an ,ontoh pem$entu#an .un%si se,ara paralel( emi#ian
sema#in
ma&un"a
te#nolo%i
dan
sema#in murahn"a har%a hard!are* para peran,an% #omputer telah men,ari #emun%#inan diterap#ann"a paralelisme* umumn"a untu# menin%#at#an #iner&a dan #adan%6#adan% untu# menin%#at#an relia$ilitas( 234
i dalam $u#u ini* #ita a#an mem$ahas dua $uah pende#atan "an% palin% populer untu# memperoleh paralelisme prosesorF
den%an s"mmetri,
,ara
mela#u#an
multipro,essor
repli#asi
7SMP8
dan
,luster(
+enis 6 +enis Multipro,essin%
Berdasar#an ¨ah instru#si dan datan"a* dapat di$a%i #e dalam 7lihat Ta#sonomi ?l"nn8F
Sin%le
Instru,tion
stream
235
Sin%le
ata
7SIS8
Se$uah pro,essor mela#u#an e#se#usi aliran instru#si tun%%al untu# men%operasi#an data "an% tersimpan di dalam se$uah memor"(
Sin%le Instru,tion Multiple ata 7SIM8
stream
Se$uah instru#si mesin men%ontrol e#se#usi simultan se¨ah elemen pen%olahan $erdasar#an lo,#stepn"a( memori
data
Setiap
elemen
pen%olahan
memili#i
tertentu* sehin%%a setiap instru#si
die#se#usi $erdasar#an himpunan data "an% $er$eda oleh prosesor "an% $er$eda pula( De,tor pro,essor dan arra" pro,essor $erada dalam #ate%ori ini(
236
Multiple Instru,tion Sin%le ata 7MIS8
stream
Ran%#aian pro,essor
data
"an%
men%e#se#usi
ditransmisi#an
#e
masin%6masin%
ran%#aian
instru#si
"an%
se¨ah prosesor $er$eda(
Stru#tur ini tida# pernah diimplementasi#an(
Multiple Instru,tion Multiple ata 7MIM8
stream
Se¨ah pro,essor mela#u#an e#se#usi se,ara simultan ran%#aian instru#si "an% $er$eda pada himpunan data "an% $er$eda( 237
Pada or%anisasi MIM* pro,essorn"a $ersi.at %eneral6purpose #arena prosesor6prosesor itu harus mampu men%olah seluruh instru#si "an% diperlu#an untu# mela#u#an trans.ormasi data "an% sesuai( Selan&utn"a
MIM
dapat
di$a%i6$a%i
$erdasar#an
den%an pro,esor mana #omuni#asi dila#u#an( Apa$ila setiap prosesor memili#i memori "an% didedi#asi#an* ma#a
setiap
elemen
#omputer6#omputern"a
pen%olahan
sendiri(
merupa#an
Komuni#asi
antar6
#omputer itu dila#u#an melalui lintasan "an% tetap atau melalui .asilitas &arin%an( Sistem seperti itu dise$ut se$a%ai ,luster* atau multi#omputer( Apa$ila prosesor sama*
men%%una#an
ma#a
memori
masin%6masin%
se,ara
prosesor
$ersama6
men%a#ses
pro%ram dan data "an% tersimpan di dalam memori "an%
dapat
dipa#ai
$ersama
dan
prosesor
$er#omuni#asi satu den%an lainn"a melalui memori itu* sistem seperti itu di#enal se$a%ai shared memor" multipro,essor( Se$uah
#lasi.i#asi
umum
shared
memor"
multipro,essor didasar#an pada ,ara proses di6assi%n #e prosesor( ua pende#atan .undamental adalah masterCsla)e dan s"mmetri,( Pada arsite#tur master C 238
sla)e* #ernel sistem operasi selalu $eroperasi pada prosesor
tertentu( Prosesor lainn"a han"a dapat
men%e#se#usi
pro%ram
pen%%una
dan
utilitas6utilitas
sistem
operasi
sa&a(
$ertan%%un%&a!a$
atas
pen&ad!alan
mun%#in Master
proses
atau
thread( Se#ali prosesCthread $erada dalam #eadaan a#ti.* apa$ila sla)e memerlu#an la"anan 7misaln"a peman%%ilan ICO8* sla)e harus men%irim#an reuest #e master dan menun%%u la"anan itu di$eri#an( Pende#atan
ini
memerlu#an
sedi#it
multi6pro%ammin%
,u#up
sederhana
penin%#atan
uniprosesor(
dan
han"a
sistem
operasi
Resolusi
#on.li#
men&adi le$ih sederhana #arena se$uah prosesor memili#i #ontrol terhadap seluruh memori dan sumer da"a ICO( Ke#uran%an pende#atan ini adalah se$a%ai $eri#utF 1(
Ke%a%alan master a#an melumpuh#an
sistem se,ara #eseluruhan <(
Master dapat men&adi $ottlene,# #iner&a
#arena master itu sendiri "an% harus mela#u#an seluruh pen&ad!alan dan mana&emen proses Multipro,essin% dapat di$a%i #e dalam $e$erapa #elas $erdasar#an simetrin"a "aituF 239
As"mmetri, Multipro,essin% 7AMP8
Pende#atan
pertama
S,hedulin%
adalah
S,hedulin%
atau
untu#
as"mmetri, $iasa
Multipro,essor multipro,essin%
dise$ut
&u%a
se$a%ai
pen&ad!alan Master Sla)e MultiPro,essor( imana pada metode ini satu prosesor $ertinda# se$a%ai master dan prosesor lainn"a se$a%ai sla)e( Master Pro,essor
$ertu%as
untu#
men&adual#an
dan
men%alo#asi#an proses "an% a#an di&alan#an oleh Sla)e
Pro,essors(
Master
Pro,essor
mela#u#an
pe#er&aan "an% $erhu$un%an den%an S"stem* Sla)e Pro,essor
mela"ani
user
reuests
dalam
pen%e#se#usian pro%ram( Pemrosesan "an% $an"a# tida# men"e$a$#an penurunan per.orman,e( Metode
ini
sederhana
#arena
han"a
satu
prosesor "an% men%a#ses stru#tur data sistem dan &u%a
men%uran%i
prosesor die#se#usi*
master
data
sharin%(
memilih
#emudian
Se$a%ai
proses
men,ari
,ontoh*
"an%
a#an
prosesor
"an%
a)aila$le* dan mem$eri#an instru#si start pro,essor( Prosesor sla)e memulai e#se#usi pada lo#asi memori "an% ditu&u( Saat sla)e men%alami se$uah #ondisi tertentu* prosesor sla)e mem$eri interupsi #epada 240
prosesor
master
dan
$erhenti
untu#
menun%%u
perintah selan&utn"a( Perlu di#etahui $ah!a prosesor sla)e "an% $er$eda dapat ditu&u#an untu# suatu proses "an% sama pada !a#tu "an% $er$eda( Master pro,essor dapat men%e#se#usi OS dan menan%ani ICO*
sedan%#an
#emampuan
ICO
sisan"a dan
pro,essor
dise$ut
tida#
se$a%ai
pun"a
Atta,hed
Pro,essor 7Aps8( APs men%e#se#usi #ode#ode user di$a!ah pen%a!asan master pro,essor(
S"mmetri, Multipro,essin% 7SMP8
Pada arsite#tur s"mmetri, Multipro,esor* #ernel dapat mela#u#an e#se#usi pada prosesor manapun* dan
umumn"a
masin%6masin%
prosesor
dapat
mela#u#an pen&ad!alann"a sendiri dari pool proses atau thread "an% ada( Kernel dapat dian%%ap se$a%ai proses &ama# atau thread &ama#* "an% memun%#in#an se$a%ian #ernel untu# mela#u#an e#se#usi se,ara paralel(
Pende#atan
SMP
a#an
mem$uat
sistem
operasi men&adi #omple#s( Pende#atan ini harus men&amin $ah!a
#edua
prosesor
tida#
memili#i
proses "an% sama dan proses6proses itu tida# a#an hilan% di dalam antrian( iperlu#an te#ni#6te#ni#
241
tertentu untu# men%atasi dan mensi#ron#an #laim6 #laim terhadap sum$er da"a(
Non6uni.orm memor" a,,ess 7NUMA8
Non6Uni.orm Memor" A,,ess atau Non6Uni.orm Memor" Arsite#tur 7NUMA8 adalah memori #omputer Ran,an%an "an% di%una#an dalam multipro,essors* dimana !a#tu a#ses memori ter%antun% pada lo#asi memori
relati.
terhadap
prosesor( Under
NUMA*
alam NUMA* prosesor atau NUMA multipro,essor adalah se$uah sistem shared memor" dimana !a#tu a#sesn"a $er)ariasi #e lo#asi memori !ord( Berdasar#an #ede#atan antar prosesor* dapat di$a%i #e dalamF
Loosel" ,oupled
Mendistri$usi#an #omputasi diantara $e$erapa prosessor(
Prosessor
$er#omuni#asi
den%an
prosessor lain melalui saluran #omuni#asi* misaln"a $us #e,epatan tin%%i atau saluran telepon( Sistem ini dise$ut
loosel"
terdistri$usi
,oupled 7distri$uted
s"stem
atau
s"stem8
sistem den%an
men%%una#an memor" lo,al atau multi #omputer(
242
Setiap site memili#i pro,essor* memori lo#al dan ,lo,# sendiri namun semua resour,e dapat dia#ses dari setiap site( Proses "an% di&alan#an pada #omputer "an% $er$eda modul salin% $er#omuni#asi den%an $ertu#ar pesan melalui Messa%e Trans.er S"stem 7MTS8(
Thi%htl" ,oupled
Ti%ht ,ouplin% di antara !indo! adalah #onsep antarmu#a "an% mendu#un% #oordinasi se,ara %lo$al atau multi pro,essor( Prosesor "an%
lain
$er#omuni#asi antara satu
den%an
,ara
$er$a%i
memori
den%an utama*
sehin%%a #e,epatan #omuni#asi dari satu prosesor #e "an% lain ter%antun% pada $and!idth memori( 243
Se$uah memori lo#al #e,il atau $u..er 7,a,he8 #emun%#inan terdapat pada setiap prosesor untu# memper$ai#i #iner&a(
Inter#one#si +arin%an alam
$entu#
sederhana*
#omuni#asi
data
men%am$il tempat antara dua alat "an% se,ara lan%sun%
dihu$un%#an
oleh
media
#omuni#asi(
Pen"am$un%an #omputer #e dalam &arin%an ,omputer haruslah memenuhi $e$erapa #riteria $eri#ut iniF
Peralatan
#omuni#asi
data
leta#n"a
$er&auhan( +i#a #ita a#an men%hu$un%#an #edua alat terse$ut "an% &ara#n"a ri$uan Km* &elas a#an san%at mahal( 244
Ada
$an"a#
peralatan
"an%
salin%
dihu$un%#an satu sama lain* "an% a#hirn"a a#an ter$entu# satu ran%#aian "an% #omple=( -ontoh "an% sederhana adalah sistem telepon* &i#a #omputer &u%a a#an diran%#ai#an seperti telepon ma#a a#an ter$entu# &arin%an "an% luas dan $esar( +elas hal ini memerlu#an in)estasi "an% $esar se#ali(
Peme,ahan men%hu$un%#an
masalah #omputer
pada
diatas
adalah
se$uah
&arin%an
#omuni#asi( Gam$ar 1( /( Ada dua #ate%ori utama dalam
&arin%an
di#lasi.i#asi#an
#omuni#asi*
se$a%ai
29ide
"an% Area
79ANs8 dan 2Lo,al Area Net!or#s3 7LANs8( 245
dapat
Net!or#s3
Untu# melihat per$edaan "an% ada antara 9ANs dan LANs dapat dilihat se,ara men"eluruh pada %am$ar 1( /( Tampa# oleh #ita $ah!a LAN a#an terleta#
dalam
satu
area
tertentu
"an%
salin%
$erhu$un%an* sedan%#an 9ANs a#an ada $an"a# s!it,hin% node( +adi satu #omputer se$a%ai sour,e a#an mele!ati $e$erapa s!it,hin% node a%ar sampai #e destination 7tu&uan8( +elas tampa# lo#asi #eduan"a &u%a
dapat
de#at
ataupun
$er&auhan
ter%antun%
perleta##an s!it,hin% node( +adi adan"a &arin%an "an% luas pada 9ANs sedan%#an pada LANs ,u#up han"a satu area "an% dapat dihu$un%#an tanpa s!it,hin% node(
9ide
9ide Area Net!or#
Area
Net!or#
dipa#ai
se,ara
umum
se$a%ai alat untu# men%atasi &ara# %eo%ra.is "an% luas* mema#ai &arin%an pu$li# seperti telepon* atau &arin%an data pa#et dan lainn"a a%ar dapat ter&adi hu$un%an #omuni#asi !alaupun &ara#n"a "an% &auh( Se,ara #husus* 9ANs terdiri dari se¨ah s!it,hin% node "an% salin% dihu$un%#an( Keti#a data di#irim* ia a#an
mele!ati
se¨ah
men,apai tu&uann"a( 246
s!it,hin%
node
untu#
Se,ara tradisional* 9ANs telah dilen%#api se,ara #husus
a%ar
mampu
men%%u#an
satu
dari
dua
te#nolo%i "an% palin% $an"a# dipa#ai oleh pu$li# "aitu 2&arin%an s!it,h3 atau serin% dise$ut &arin%an telepon dan 2&arin%an pa#et3(
+arin%an S!it,h 7-ir,uit S!it,h8
alam &arin%an s!it,h* &alur #omuni#asi dapat tersam$un%
melalui
$an"a#
s!it,hin%
node
$erdasar#an alur "an% telah ditentu#an di masin%6 masin% s!it,hin% node sampai tu&uan( Alur "an% telah ter$entu# a#an mem$uat saluran terhu$un% dari sum$er
#e
tu&uan
se,ara
2dedi,ated3
sehin%%a
ter$entu# &alur 2lin#3 untu# $er#omuni#asi Lin# "an% telah ter$entu# ini di se$ut 2lo%i,al ,hannel3* lin# a#an terputus &i#a #omuni#asi telah selesai( Konsep ini dipa#ai pada &arin%an telepon(
+arin%an Pa#et 7Pa#et S!it,hin%8
Pende#atan "an% &ustru $er$eda adalah dalam pen%%unan &arin%an pa#et( alam #asus ini* tida# pentin% ter$entu#
dedi,ated
lin# antara sum$er
den%an tu&uan( Pada sistem &arin%an pa#et data di#irim #eluar dari sum$er dalam $entu# pa#etpa#et #e,il( Pa#etpa#et terse$ut $er%era# dari satu 2node3 247
#e node lain( Tiap node a#an menampun% semua pa#et "an% datan% #emudian diterus#an #e node $eri#utn"a sampai #e tu&uan( Konsep pa,#et s!it,h net!or# ini palin% serin% dipa#ai pada transmisi antar terminal
#e
#omputer
atau
dari
#omputer
#e
#omputer(
Keun%%ulan Multipro,essor 1(
Penin%#atan
throu%hput*
#arena
le$ih
$an"a# proses C thread "an% $er&alan dalam satu !a#tu se#ali%us 7&i#a proses "an% antri di read" ueue sedi#it8( Perlu diin%at hal ini tida# $erarti da"a #omputasin"a men&adi menin%#at se¨ah prosesorn"a(
an%
menin%#at
ialah
¨ah
pe#er&aan "an% $isa dila#u#ann"a dalam !a#tu tertentu( <( dalam
E,onom" o. s,ale 7e#onomis8* e#onomis de)i,es
"an%
di$a%i
$ersama
sama(
Prosesor6prosesor terdapat dalam satu #omputer dan dapat mem$a%i peripheral 7e#onomis8 seperti dis# dan ,atu da"a listri#( /(
Penin%#atan
#ehandalan
7relia$ilitas8*
+i#a satu prossor men%alami suatu %an%%uan* 248
ma#a proses "an% ter&adi masih dapat $er&alan den%an
$ai#
#arena
tu%as
prosesor
"an%
ter%an%%u diam$il alih oleh prosesor lain( al ini di#enal
den%an
istilah
Gra,e.ul
e%radation(
Sistemn"a sendiri di#enal $ersi.at .ault tolerant atau .ailo.t s"stem(
Parallel Pro,essin% Pemrosesan paralel 7parallel pro,essin%8 adalah pen%%unaan le$ih dari satu -PU untu# men&alan#an se$uah pro%ram se,ara simultan( Idealn"a* parallel pro,essin% mem$uat pro%ram $er&alan le$ih ,epat #arena sema#in $an"a# -PU "an% di%una#an( Tetetapi dalam pra#te#* serin%#ali sulit mem$a%i pro%ram sehin%%a dapat die#se#usi oleh -PU "an% $er$eda6 $eda tanpa $er#aitan di antaran"a( Komputasi paralel adalah salah satu te#ni# mela#u#an
#omputasi
meman.aat#an
se,ara
$e$erapa
$ersamaan
den%an
#omputer
se,ara
$ersamaan( Biasan"a diperlu#an saat #apasitas "an% diperlu#an san%at $esar* $ai# #arena harus men%olah data dalam ¨ah $esar ataupun #arena tuntutan proses #omputasi "an% $an"a#( Untu# mela#u#an 249
ane#a
&enis
#omputasi
paralel
ini
diperlu#an
in.rastru#tur mesin paralel "an% terdiri dari $an"a# #omputer "an% dihu$un%#an den%an &arin%an dan mampu $e#er&a se,ara paralel untu# men"elesai#an satu masalah( Untu# itu diperlu#an ane#a peran%#at luna#
pendu#un%
"an%
$iasa
dise$ut
se$a%ai
middle!are "an% $erperan untu# men%atur distri$usi pe#er&aan antar node dalam satu mesin paralel( Selan&utn"a pema#ai harus mem$uat pemro%raman paralel untu# merealisasi#an #omputasi( MisalF di$eri#an @ $uah data a,a# "an% nantin"a a#an
diurut#an
men%%una#an
se,ara
-R-96Sort
As,endin% den%an
den%an
men%%una#an
perhitun%an ZnC<[( n ¨ah data ZnC<[ Z@C<[ Z<*@[ /* &adi #ita memerlu#an / #ali putaran untu# men%urut#an data terse$ut( an
masin%6masin%
data
diproses
oleh
pro,essor( Beri#ut %am$ar dari pemrosesan diatas(
250
1
ari %am$ar diatas $isa dilihat dari data "an% tida#
terurut
^4*@*:*<*>_
men&adi
terurut
den%an
men%%una#an / #ali putaran sear,hin% se,ara %an&il dan %enap den%an men%%una#an @ $uah pro,essor( an%
men%hasil#an
data
"an%
terurut
men&adi
^<*>*@*4*:_ +adi dari #edua pen%ertian diatas dapat diam$il se$uah #esimpulan $ah!a #iner&a #omputasi den%an parallel
pro,essin%
memun%#in#an
$e$erapa
pe#er&aan dila#u#an se,ara $ersamaan dan dalam !a#tu
"an%
$ersamaan
dan
sema#in
$an"a#
pe#er&aan "an% dapat diselesai#an tepat !a#tu(
251