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
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS GADJAH MADA
2005
PENDAHULUAN
[Type here]
diperlukan
oleh
Central
Processing
Unit
Memorimemori
tersebut
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.
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.
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.
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
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
400
200
4k
2k
1k
L2 Cache region
L1 Cache region
1000
800
600
400
200
0
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
600
400
200
0
s1
s3
s5
s7
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
1200
1000
800
128m 64m 32m 16m 8m 4m 2m 1024k 512k 256k 128k 64k 32k 16k 8k
600
400
L
2
200
4k
2k
ME
1k
L
1
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
400
L3
Cache
Region
L2 Cache
Region
L1 Cache Region
785
780
775
770
765
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
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)
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
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
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
1550
1500
L3 Cache
1450
Region
L2 Cache
Region
L1 Cache Region
1400
1350
1300
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)
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
11