Anda di halaman 1dari 11

TUGAS AKHIR MATAKULIAH ARSITEKTUR DAN

ORGANISASI KOMPUTER

Disusun Oleh:
SAHAL ARAFAT ZAIN
ILMU KOMPUTER 08948 RIZA
TEGAR PRISANDI
ILMU KOMPUTER 09566 ARDIANTO
WIBOWO
ILMU KOMPUTER 09828
TRI SUGIYANTOWO

ILMU KOMPUTER 09832

ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
2005

PENDAHULUAN
[Type here]

Arsitektur dan Organisasi Komputer


Dalam sebuah sistem komputer, memori diperlukan untuk menyuplai data
yang

diperlukan

oleh

Central

Processing

Unit

Memorimemori

tersebut

dikelompokkan dalam beberapa tingkatan yang berbentuk sebuah sistem piramid.


Semakin keatas, kapasitas/besarnya memori akan semakin mengecil, tetapi nilai
ekonomis dari memori tersebut akan semakin tinggi. Tingginya nilai ekonomis dari
memori yang berada pada tingkatan atas tesebut disebabkan karena kecepatan
transfer data dari memori tersebut akan semakin cepat pula, bahkan kecepatan
akssesnya dapat menyamai kecepatan akses prosesor. Tingkatan memori tersebut
dimulai dari yang paling bawah adalah harddisk, memori utama dan cache memori
(level 2, level 1). Pada sebuah hard disk, memori dapat digunakan untuk keperluan
penyimpanan hasil kopian dari tape drives, remote file server juga halaman web.
Kemudian terdapat

memori utama yang digunakan untuk menyimpan file yang

berasal dari harddisk, sebagai pembantu memori utama ada lagi memory yang
namanya cache memory. Pada cache memory bisa terdiri dari satu, dua atau bahkan
tiga tingkatan (level). Dengan ditemukannya cache memory ini maka akan semakin
mempersingkat kinerja dari komputer, bila dengan menggunakan memory utama
membutuhkan waktu sekitar 100ns untuk memuatkan 10 byte pada sebuah ukuran
megabyte, maka dalam kasus yang sama untuk cache memory hanya membutuhkan
waktu sekitar 10ns.
Cache memori dibagi dalam beberapa tingkatan (2-3 tingkatan/level). Pada
tingkat 1 (cache dasar) dalam sebuah PC, tingkat ini merupakan tingkat yang paling
cepat. Berukuran sangat kecil, umumnya berkapasitas anatara 8 KB sampai dengan
64 KB, akan tetapi memiliki kecepatan akses sangat cepat hingga kecepatan
aksesnya pun menyamai kecepatan akses prosesor. Pada sebuah kasus, jika
prosesor meminta sebuah informasi, maka informasi ini terlebih dahulu akan dicari
pada cache tingkat 1, sebelum mengakses cache tingkat berikutnya. Tingkat pertama
ini biasa disebut internal cache karena terletak didalam prosesor. Kemudian terdapat
cache tingkat 2 yang merupakan cache yang berukuran lebih besar tetapi memiliki
kecepatan akses yang lebih lambat dibandingkan dengan cache tingkat 1. Cache
level 2 ini bertugas menangkap informasi yang tidak dapat dideteksi pada tingkat 1.
Umumnya cache level 2 ini berukuran antara 64 KB sampai 2 MB. Letaknya bisa
ditemukan pada motherboard. Untuk pentium pro, biasanya cache tingkat 2 ini
terletak didalam prosesor. Sedangkan pada pentium 2, cache tingkat 2 ini terletak
ditengah tengah prosessornya, sehingga cache ini berjalan setengah dari kecepatan
prosessor. Cache level 2 ini biasa disebut eksternal cache karena terletak diluar
prosesor.

Arsitektur dan Organisasi Komputer


Dibawah ini, digambarkan struktur memori pada
ur Intel
arsitekt
Sandy Bridge.
Processor
Chip
Regs
.

L1 Data
1 cycle
latency
64 KB
4- way assoc
Write
- through

L2 Unified
2 X 256KB
8- way assoc
Write-back
Write
allocate
64KB lines

L1
Instruction
16 KB, 4-way
32B lines

L3 Unified
4 MB
8-way
assoc
Write-back
Write
allocate
64KB lines

Main
Memory
Up to
16GB

Dari gambar diatas, dapat kita lihat bagaimana pentingnya sebuah cache memori
karena berhubungan secara langsung dengan prosesor.

Segala sesuatu yang

dibutuhkan oleh prosesor akan dicari terlebih dahulu pada cache level 1 sebelum
mengakses ke cache level selanjutnya.
Kinerja dari suatu memori dapat dilihat dari presentase ditemukannya data
yang dicari pada prosesor (Hit Rate) dan presentase tidak ditemukannya data dalam
memori (Miss Rate). Selain kedua faktor tersebut, faktor lainnya yang berpengaruh
adalah Hit time, yaitu waktu yang dibutuhkan untuk mengirimkan sebuah baris dari
cache memori kepada prosesor, misalnya 1 kali clock pada cache level 1 dan 3-8 kali
clock pada level 2. Terdapat pula Miss Penalty yang merupakan waktu tambahan
yang diberikan karena terjadinya Miss Rate, pada memori utama biasanya bernilai
antara 25-100 kali clock. Untuk mengoptimalkan kinerja dari memori, khususnya
cache memori maka digunakan suatu metode yang bernama cache friendly code.
Cache friendly code ini merupakan kode program yang dapat memanfaatkan kinerja
cache secara maksimal, sehingga penggunaannya sangat efektif.

Arsitektur dan Organisasi Komputer


PERCOBAAN
Dilakukan 3 kali percobaan dengan spesifikasi computer yang berbeda dan Clock yang
berbeda pula.

PERCOBAAN I
Proses kompilasi program mountain.c pada GCC Linux. Adapun spesifikasi komputer
yang digunakan adalah sebagai berikut :
- Mobile Prosesor AMD A10 2100 Mhz
- L1 data cache 64 KB
- L2 cache 4096 KB

Dari data diatas dibuat graphic dengan tools MS EXCEL :


128m
64m
32m
16m
8m
4m
2m
1024k
512k
256k
128k
64k
32k
16k
8k
4k
2k
1k

s1
945
938
966
1004
998
1022
1029
1041
1039
1038
1023
834
833
831
834
829
821
807

s3
394
404
419
408
443
537
594
789
860
787
780
779
778
822
825
812
791
749

s5
733
379
385
400
419
401
563
836
835
838
779
778
775
812
819
799
762
697

s7
601
600
597
597
585
577
709
885
856
876
799
797
794
806
812
782
732
661

s9
418
420
422
432
432
434
613
818
824
817
795
792
787
802
801
772
716
620

s11
289
290
291
293
293
296
461
801
800
794
773
770
765
796
796
752
690
629

s13
285
285
286
286
287
288
447
790
817
791
773
772
760
790
795
747
665
547

s15
265
266
266
267
267
270
433
804
808
807
767
766
756
786
788
730
642
520

s17
258
258
260
260
262
263
423
833
837
825
777
772
771
783
780
714
623
489

s19
258
259
260
260
260
262
417
829
814
828
785
778
758
781
767
709
615
529

s21
245
246
247
247
249
248
394
833
828
827
780
775
810
778
769
701
593
443

s23
235
235
237
236
237
238
389
831
819
831
772
765
772
785
760
686
578
471

s25
225
227
228
229
230
230
376
839
838
841
774
761
806
775
760
678
560
466

s27
217
220
219
220
220
221
356
835
832
830
777
765
761
767
742
669
556
451

s29
207
210
210
210
210
211
346
833
822
844
776
773
769
779
746
644
532
470

s31
197
199
199
201
201
201
341
841
835
834
776
770
764
751
736
638
520
430

1200
1000
800

128m 64m 32m 16m 8m 4m 2m 1024k 512k 256k 128k 64k 32k 16k 8k
600

Read Throughput (MB/s)

400
200

4k

2k

1k

Working Size (bytes)


stride(words)

Arsitektur dan Organisasi Komputer


Grafik tersebut akan digunakan untuk menentukan lereng (slope) dari lokasi
spatial dan punggung bukit (ridge) dari lokasi temporal dari komputer yang
digunakan.
Untuk menentukan Ridges of temporal locality dapat dilakukan dengan
memotong gunung memori dengan stride=1 kemudian dengan membuat
grafik dari potongan gunung memori tadi kita dapat menerangkan read
throughput dalam cache dan memori yang berbeda. Atau singkatnya kita dapat
mengetahui read throughput dari main memory region, L2 cache region dan L1
cache region. Untuk main memory region berada pada working set size dari
128mB sampai 4098kB. Untuk L2 cache region berada pada working set size
dari 4mB sampai 128kB. Dan untuk L1 cache region berada pada working set
size dari 64kB sampai 1kB. Berdasarkan konsep-konsep di atas maka
diperoleh grafik:
1200
Main Memory region

L2 Cache region

L1 Cache region

1000
800
600

Read Throughput (MB/s)

400
200
0

Working Set Size (Byte)


Gambar 1-1 Stride 1

Untuk menentukan lokasi dari lereng (slope) spatial dari gunung memori.
Caranya adalah dengan memotong bagian dari gunung memori pada working
set size = 2048kB. Kemudian dari data tersebut dibuat grafik yang akan
menunjukkan blok cache dari working set size. Grafik yang dihasilkan adalah
1200
1000
800

Read Throughput (MB/s)

600
400
200
0
s1

s3

s5

s7

s9 s11 s13 s15 s17 s19 s21 s23 s25 s27

stride(words)
Gambar 1-2 working set size = 2048kB

Dari uraian di atas mengenai lokasi dari lereng (slope) spatial dan punggung
gunung (ridge) temporal dari gunung memori. Kita sudah dapat menentukan
lokasi dari kedua hal tersebut di atas dan meletakkannya dalam grafik seperti
pada grafik dibawah ini
5

Arsitektur dan Organisasi Komputer


Ridges
Of
Tempora
n

1200
1000
800

128m 64m 32m 16m 8m 4m 2m 1024k 512k 256k 128k 64k 32k 16k 8k
600

Read Throughput (MB/s)

400

L
2

200

4k

2k

ME

1k

L
1

Working Size (bytes)

Slope of
Spatial
Locality

stride(words)

PERCOBAAN II
Proses kompilasi program mountain.c pada GCC Linux. Adapun spesifikasi komputer
yang digunakan adalah sebagai berikut :
- Mobile Prosesor Intel Core i3 3217U 1800 MHz
- L1 data cache 64 KB
- L2 cache 512 KB
- L3 cache 3072 KB
128m
64m
32m
16m
8m
4m
2m
1024k
512k
256k
128k
64k
32k
16k
8k
4k
2k
1k

s1
791
791
786
791
791
792
798
798
798
798
798
798
797
797
795
793
789
779

s3
777
780
780
782
781
781
797
797
798
798
797
796
796
794
790
782
767
743

s5
760
763
765
767
768
768
796
797
797
797
797
795
794
792
787
774
750
694

s7
753
754
752
754
758
765
795
796
796
796
795
794
793
789
782
764
732
676

s9
734
734
737
740
742
751
791
791
790
793
793
788
792
786
775
759
728
781

s11
711
710
711
717
719
738
780
780
780
787
790
786
791
785
770
742
702
819

s13
691
690
691
688
700
719
775
774
774
781
787
784
789
783
769
741
678
796

s15
674
673
677
674
682
698
762
761
764
774
780
775
786
778
759
730
671
763

s17
642
646
649
658
661
679
747
746
745
761
766
765
787
779
755
718
770
792

s19
577
577
580
598
629
656
742
741
739
758
766
761
785
771
747
715
814
506

s21
519
518
523
537
584
645
736
734
733
758
770
760
784
771
752
706
807
798

s23
479
481
483
494
542
637
729
728
728
755
762
766
781
769
740
701
769
760

s25
453
451
453
470
523
625
723
722
722
756
763
775
782
764
738
697
827
748

s27
431
432
433
454
513
605
718
718
716
756
761
774
780
766
739
699
802
755

s29
452
452
453
451
501
585
715
717
714
746
758
764
779
760
736
666
827
786

s31
442
376
451
460
476
562
714
717
717
748
766
768
777
760
727
666
760
741

Arsitektur dan Organisasi Komputer


900
800
700
600
500

Read Throughput (MB/s)

400

128m 64m 32m 16m 8m 4m300


2m 1024k 512k 256k 128k 64k 32k 16k 8k 4k 2k 1k
200
100
0

Working Size (bytes)


stride(words)

Untuk menentukan Ridges of temporal locality dapat dilakukan dengan memotong


gunung memori dengan stride=1 kemudian dengan membuat grafik dari potongan
gunung memori tadi kita dapat menerangkan read throughput dalam cache dan
memori yang berbeda. Atau singkatnya kita dapat mengetahui read throughput
dari main memory region, L2 cache region dan L1 cache region. Untuk main
memory region berada pada working set size dari 128mB sampai 3072kB. Untuk
L3 cache region berada pada working set size dari 1024kB sampai 2048kB. Untuk
L2 cache region berada pada working set size dari 128kB sampai 512kB. Dan
untuk L1 cache region berada pada working set size dari 64kB sampai 1kB.
Berdasarkan konsep-konsep di atas maka diperoleh grafik:
800
Main Memory Region
795
790

L3
Cache
Region

L2 Cache
Region

L1 Cache Region

785

Read Throughput (MB/s)

780
775
770
765

Working Set Size (Byte)

Gambar 1-3 Stride 1

Untuk menentukan lokasi dari lereng (slope) spatial dari gunung memori.
Caranya adalah dengan memotong bagian dari gunung memori pada working
set size = 2048kB. Kemudian dari data tersebut dibuat grafik yang akan
menunjukkan blok cache dari working set size. Grafik yang dihasilkan adalah
7

Arsitektur dan Organisasi Komputer

Read Throughput (MB/s)

820
800
780
760
740
720
700
680
660

s1 s3 s5 s7 s9 s11 s13 s15 s17 s19 s21 s23 s25 s27 s29 s31

stride(words)

Gambar 1-4 working set size = 2048kB

Dari uraian di atas mengenai lokasi dari lereng (slope) spatial dan punggung
gunung (ridge) temporal dari gunung memori. Kita sudah dapat menentukan
lokasi dari kedua hal tersebut di atas dan meletakkannya dalam grafik seperti
Ridges
pada grafik dibawah ini

Of
Tempora
n

900
800
700

L
1

600
500

Read Throughput (MB/s)

400

300
128m 64m 32m 16m 8m 4m 2m 1024k 512k 256k 128k 64k 32k 16k 8k 4k 2k 1k
200

Slope of
Spatial
Locality

100

L
3

L
2
Working
Size (bytes)
stride(words)

PERCOBAAN III
Proses kompilasi program mountain.c pada GCC Linux. Adapun spesifikasi komputer
yang digunakan adalah sebagai berikut :
- Mobile Prosesor Intel Core i7-2640M 2.80GHz
- L1 data cache 64 KB
- L2 cache 512 KB
- L3 cache 4096 KB

Arsitektur dan Organisasi Komputer


128m
64m
32m
16m
8m
4m
2m
1024k
512k
256k
128k
64k
32k
16k
8k
4k
2k
1k

s1
1444
1443
1446
1441
1454
1470
1494
1497
1496
1496
1497
1408
1411
1410
1414
1402
1393
1375

s3
1381
1385
1387
1389
1387
1440
1494
1491
1494
1494
1495
1407
1424
1407
1408
1414
1385
1356

s5
1318
1324
1324
1332
1332
1394
1490
1490
1491
1490
1492
1405
1430
1395
1432
1396
1362
1263

s7
1256
1263
1261
1256
1269
1348
1483
1482
1483
1480
1457
1395
1414
1421
1385
1370
1334
1269

s9
1199
1206
1206
1212
1215
1296
1476
1475
1474
1477
1446
1390
1420
1391
1378
1376
1317
1408

s11
1230
1232
1225
1233
1228
1274
1471
1473
1470
1480
1399
1396
1416
1411
1397
1345
1321
1509

1800
1600
1400
1200
1000
800
Read Throughput (MB/s)
600
128m 64m 32m 16m 8m 4m 2m
400
200
0

s13
1158
1165
1160
1168
1162
1243
1464
1462
1463
1478
1407
1394
1412
1385
1393
1332
1270
1501

1024k

s15
1056
1055
1052
1060
1059
1191
1439
1438
1438
1472
1411
1407
1412
1430
1415
1316
1282
1396

512k

s17
953
958
963
961
962
1136
1419
1417
1418
1457
1391
1387
1423
1396
1360
1296
1143
1384

256k

s19
871
871
867
872
875
1082
1408
1409
1407
1451
1395
1390
1407
1390
1361
1305
1524
1541

128k

s21
791
794
796
794
789
1023
1402
1401
1399
1451
1390
1380
1436
1378
1373
1296
1496
1540

64k

s23
737
740
742
740
741
966
1396
1387
1395
1449
1389
1382
1389
1403
1357
1314
1470
1574

32k

16k

s25
689
687
686
690
693
916
1396
1390
1394
1451
1390
1399
1401
1376
1334
1253
1468
1431

8k

s27
639
642
645
643
645
876
1391
1391
1393
1450
1389
1404
1374
1386
1364
1330
1414
1721

4k

s29
609
612
608
611
611
831
1391
1392
1387
1454
1380
1385
1418
1380
1314
1249
1406
1416

2k

1k

Working Size (bytes)


stride(words)

1550
1500

Main Memory Region


Read Throughput (MB/s)

L3 Cache
1450
Region

L2 Cache
Region

L1 Cache Region

1400
1350
1300

Working Set Size (Byte)

Arsitektur dan Organisasi Komputer

Read Throughput (MB/s)

1520
1500
1480
1460
1440
1420
1400
1380
1360
1340
1320

s1

s3

s5

s7

s9 s11 s13 s15 s17 s19 s21 s23 s25 s27 s29 s31

stride(words)

1800
1600
1400
1200
1000
800
Read Throughput (MB/s)
600
128m 64m 32m 16m 8m 4m 2m
400
200
0

Ridges
Of
Tempora
n

L
2
1024k

512k

256k

128k

64k

32k

16k

8k

4k

2k

1k

L
1
L
3
Working Size (bytes)

Slope of
Spatial
Locality

stride(words)

Dari percobaan-percobaan di atas dapat ditarik kesimpulan bahwa memory


mountain merupakan cara yang baik untuk menentukan karakteristik memori suatu
sistem dari performanya. Dengan mengukur read throughput sebagai sebuah
fungsi dari lokasi spatial dan temporal.

PEMBAHASAN
Penggunaan program mountain.c cukup efektif mengetahui besarnya cache
memori pada sebuah sistem komputer. Tingkatan dan ukuran memori pada
sebuah sistem komputer dapat dilihat pada tabel yang terbentuk. Tabel
tersebut dibentuk dari data-data yang diperoleh melalui proses kompilasi
program mountain.c menggunakan kompiler bahasa c (dalam hal ini GCC).
Program mountain yang dieksekusi akan menghasilkan sejumlah data yang
merupakan read throughput dari memori pada sistem tersebut. Pada grafik
10

Arsitektur dan Organisasi Komputer


yang berbentuk tiga dimensi tersebut, tiga buah variabel yang digunakaan
adalah stride, read throughput dan working set size. Pada program ini, stride
merupakan potongan/irisan dari gunung memori. Disini, stride dibagi menjadi
16 potongan, dimana dengan melihat nilai read throughput pada suatu nilai
stride maka dapat diketahui pada set working size (ukuran memori) berapa
yang memiliki nilai read throughput terbesar. Hal ini digunakan untuk mencari
nilai dari tingkatan memori pada sistem tersebut.
Jika kita mengamati sebuah potongan dari stride, maka kita akan melihat
pada workig set size (ukuran memori) mana yang mengalami kenaikan nilai
read throughput yang signifikan. Working set size ini kemungkinan besar
merupakan cache level 2, sedangkan untuk mengetahui keberadaan cache
level 1 kita dapat melihat pada grafik yang memiliki nilai read throughput
berubah secara signifikan dari nilai read throughput pada cache level 2, begitu
juga pada cache level 3. Untuk nilai working set size sebelum perubahan pada
level 2 yang pastinya berada pada ukuran memori yang lebih besar
merupakan keberadaan dari memori utama.
KESIMPULAN
1. Teknik memory mountain dapat digunakan untuk menentukan cache
memory. Hal ini bisa dilihat dari analisa grafik hasil eksekusi program
memory mountain. Nilai

kapasitas tersebut ditandai dengan adanya

slop, dengan menggunakan stride sebagai array untuk menganalisa


lokalitas spatial dan menggunakan ukuran data set untuk menganalisa
lokalitas temporal.
2. Dari hasil itu kesesuaian data teknis hasil eksekusi program dicocokan
dengan informasi manual masing-masing computer akan menghasilkan
data informasi yang sesuai. Meskipun demikian percobaan yang
berulang trehadap computer yang sama akan menghasikan perbedaan,
tetapi perbedaan tersebut tidak terlalu signifikan.
3. Perbedaan tersebut disebabkan oleh perbedaan nilai throughput yang
didapat dari tiap eksekusi. Namun selisih nilai untuk tiap eksekusi masih
dalam kewajaran.

11

Anda mungkin juga menyukai