Senin, 29 Oktober 2012

Tugas 2 (Arsitektur Set Instruksi dan CPU)


1.     Arsitektur Set Instruksi
Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer (computer instructions). Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).
ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
-          Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
-          Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
-          Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
-          Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.
Source dan result operands dapat berupa salah
Satu diantara tiga jenis berikut ini:
1.      Main or Virtual Memory
  1. CPU Register
  2. I/O Device

TEKNIK PENGALAMATAN
Ada 3 teknik dasar untuk pengalamatan, yaitu:
1. Pemetaan langsung (direct mapping), terdiri dari dua cara yakni Pengalamatan Mutlak (absolute addressing) dan Pengalamatan relatif (relative addressing).
- Pengalamatan Mutlak
Untuk teknik pengalamatan ‘alamat mutlak’ ini, tidak terlalu mempermasalahkan kunci atribut karena diminta langsung menuliskan di mana alamat record yang akan di masukkan. Jika kita menggunakan hard disk atau magnetic drum, ada dua cara dalam menentukan alamat memorinya, yaitu (1) cylinder addressing dan (2) sector addressing. Jika kita menggunakan cylinder addressing, maka kita harus menetapkan nomor-nomor dari silinder (cylinder), permukaan (surface), dan record, sedangkan bila kita menggunakan sector addressing, maka kita harus menetapkan nomor-nomor dari sektor (sector), lintasan (track), dan permukaan (surface). Teknik ini mudah dalam pemetaan (pemberian) alamat memorinya. Sulitnya pada pengambilan (retrieve) data kembali, jika data yang kita masukkan banyak, kita bisa lupa di mana alamat record tertentu.
-          Pengalamatan relatif
Teknik ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari NIM dijadikan bertipe numeric(integer) dan dijadikan alamat dari record yang bersangkutan. Cara ini memang sangat efektif untuk menemukan kembali record yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu alamat memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena nilai dari NIM tidak ada yang kecil. Pelajari keuntungan dan kerugian lainnya.Teknik ini termasuk dalam katagori address space dependent.

2. Pencarian Tabel (directory look-up)
Teknik ini dilakukan dengan cara mengambil seluruh kunci atribut dan alamat memori yang ada dan dimasukkan ke dalam tabel tersendiri. Jadi tabel itu (misal disebut dengan tabel INDEX) hanya berisi kunci atribut (misalkan NIM) yang telah disorting (diurut) dan alamat memorinya. Jadi, sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel INDEX itu, setelah ditemukan atribut kuncinya, maka data alamat yang ada di sana digunakan untuk meraih alamat record dari data (berkas/ file/ tabel) yang sebenarnya. Pencarian yang dilakukan di tabel INDEX akan lebih cepat dilakukan dengan teknik pencarian melalui binary search (dibagi dua-dua, ada di mata kuliah Struktur dan Organisasi Data 2 kelak) ketimbang dilakukan secara sequential. Nilai key field (kunci atribut) bersifat address space independent (tidak terpengaruh terhadap perubahan organisasi file-nya), yang berubah hanyalah alamat yang ada di INDEX-nya.

3. Kalkulasi (calculating).
Kalau pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan tabel INDEX-nya, maka pada teknik ini tidak diperlukan hal itu. Yang dilakukan di sini adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan kunci atribut record-nya, alamatnya sudah dapat diketahui. Tinggal masalahnya, bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya bisa efisien (dalam penggunaan memori) dan tidak berbenturan nilainya (menggunakan alamat yang sama).


DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi  instruksi)
3. Kompatibilitas :      
    -  Source code compatibility
    - Object code Compatibility
Selain ketiga aspek tersebut juga melibatkan  hal-hal sebagai berikut:
1. Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
2. Data Types: tipe/jenis data yang dapat olah
    Instruction Format: panjangnya, banyaknya alamat, dsb.
3. Register: Banyaknya register yang dapat digunakan
4.Addressing: Mode pengalamatan untuk operand
FORMAT INSTRUKSI
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).

JENIS-JENIS OPERAND
- Addresses (akan dibahas pada addressing modes)
- Numbers :  - Integer or fixed point
                                          -  Floating point
                                          -  Decimal (BCD)
- Characters : - ASCII
                                            - EBCDIC
- Logical Data : Bila data berbentuk binary: 0 dan 1
Operasi set instruksi untuk transfer data :
-          MOVE : memindahkan word atau blok dari sumber ke tujuan
-          STORE : memindahkan word dari prosesor ke memori.
-          LOAD : memindahkan word dari memori ke prosesor.
-          EXCHANGE : menukar isi sumber ke tujuan.
-          CLEAR / RESET : memindahkan word 0 ke tujuan.
-          SET : memindahkan word 1 ke tujuan.
-          PUSH : memindahkan word dari sumber ke bagian paling atas stack.
-          POP : memindahkan word dari bagian paling atas sumber

2.     Central processing unit (CPU)
Sebuah unit pemrosesan sentral (CPU), juga disebut sebagai unit prosesor sentral, [1] adalah perangkat keras dalam sistem komputer yang melaksanakan instruksi dari sebuah program komputer dengan melakukan aritmatika dasar, logis, dan operasi input / output dari sistem. Istilah telah digunakan dalam industri komputer setidaknya sejak awal 1960-an. [2] Bentuk, desain, dan implementasi dari CPU telah berubah selama sejarah mereka, tapi operasi fundamental mereka tetap sama.
Pada mesin besar, CPU memerlukan satu atau lebih papan sirkuit. Pada komputer pribadi dan workstation kecil, CPU ditempatkan dalam sebuah chip silikon tunggal yang disebut mikroprosesor. Sejak 1970-an kelas mikroprosesor CPU telah hampir sepenuhnya diambil alih semua implementasi CPU lainnya. CPU modern besar sirkuit terpadu skala dalam paket biasanya kurang dari empat sentimeter persegi, dengan ratusan menghubungkan pin. Dua komponen khas dari CPU adalah logika aritmatika unit (ALU), yang melakukan operasi aritmatika dan logika, dan unit kontrol (CU), yang ekstrak instruksi dari memori dan decode dan mengeksekusi mereka, menyerukan ALU bila diperlukan.
Tidak semua sistem komputasi bergantung pada satu unit pengolah pusat. Sebuah prosesor array atau vektor prosesor memiliki beberapa elemen komputasi paralel, dengan tidak ada satu unit dianggap sebagai "pusat". Dalam model komputasi terdistribusi, masalah ini diselesaikan dengan satu set saling didistribusikan dari prosesor.

ALU (Aritmatic Logical Unit)
Biasanya disingkat dengan ALU. Arithmetic Logical Unit merupakan unit penalaran secara logic. ALU ini adalah merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori.
Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut.
ALU sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika. Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan.
Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible.
Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor, kecuali untuk prosesor yang compatible dengannya.
Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan instruction set yang ada pada mesin, tergantung dimana lingkungan instruction set itu digunakan.

CU (Control Unit)
Suatu pengontrolan disyaratkan berada di dalam sistem komputer untuk:
(1)memberitahukan kepada unit input data apa yang dimasukkan ke dalam primary storage dan kapan dimasukkannya. 
(2)memberitahukan kepada unit primary storage dimana data itu harus ditempatkan.
(3)memberitahukan kepada unit arithmetic-logic operasi yang mana yang harus dilakukan, dimana data akan diperolehm dan di mana hasilnya akan ditempatkan.
(4)memberitahukan file mana yang boleh dipergunakan dan data apa yang dipergunakan.
(5)memberitahukan unit output yang mana yang akan ditulisi hasil akhir.

Sistem BUS
Bus merupakan jalur penghubung antar alat pada komputer yang digunakan sebagai media dalam proses melewatkan data pada suatu proses. Bus ini bisa dianggap sebagai sebuah pipa, dimana pipa atau saluran tersebut digunakan untuk mengirimkan dan menerima informasi antar alat yang dihubungkannya. Pada sistem komputer, bus ini termasuk perangkat internal, kecepatan pengiriman informasi melalui bus ini dilakukan dengan kecepatan tinggi. Alat transformasi data dari terminal satu ke terminal lain di dalam CPU. Jalur utama aliran data antara processor ke komponen lainnya (seperti sound card, video card, memory) pada mainboard.
Karakteristik bus adalah:
1. Jumlah interupsi mementukan banyak perangkat independen yang melakukan I/O.
2. Ukuran bus data eksternal berakibat pada kecepatan operasional I/O.
3. Ukuran bus alamat menentukan banyak memori yang ditunjuk board ekspansi.
4. Kecepatan clock maksimum yang dapat diakomodasi bus berakibat pada kinerja.
Interkoneksi antar komponen. Bus ini terdiri dari:
1. Bus alamat (address bus),
2. Bus data (data bus),
3. Bus kendali (control bus).
Satu bentuk tataletak jaringan yang menggunakan satu buah kabel dimana seluruh node jaringan disambungkan. Dikenal juga dengan topologi bus.

Set Register
Memori yang sangat cepat dalam transfer datanya, bertugas membantu operasi yang dilakukan pemroses, terutama sebagai tempat operan-operan. Register ini dikategorikan menjadi dua, yaitu:
(1) register yang terlihat pemakai, seperti data register dan address register.
(2) register untuk kendali status.
Beragam register tipe ini digunakan untuk mengendalikan operasi pemroses. Kebanyakan tidak terlihat oleh pemakai. Sebagiannya dapat diakses dengan instruksi mesin yang dieksekusi dalam mode kontrol atau kernel sistem operasi.
Register untuk kendali status antara lain:
- register untuk alamat dan buffer (address and buffer register)
- register untuk eksekusi intruksi (instruction execution register)
- register untuk informasi status (status information register)

Memori Cache
Cache adalah memori yg lebih kecil, lebih cepat yang menyimpan salinan data dari yang paling sering digunakan memori utama lokasi.

Fungsi Cache
Cache berfungsi untuk mempercepat akses data pada komputer karena cache menyimpan data/informasi yang telah diakses oleh suatu buffer, sehingga meringankan kerja processor.

Cache beasal dari kata cash. Dari istilah tersebut cache adalah tempat menyembunyikan atau tempat menyimpan sementara. Sesuai definisi tersebut cache memori adalah tempat menyimpan data sementara. Cara ini dimaksudkan untuk meningkatkan transfer data dengan menyimpan data yang pernah diakses pada cache tersebut, sehingga apabila ada data yang ingin diakses adalah data yang sama maka maka akses akan dapat dilakukan lebih cepat.Cache memori ini adalah memori tipe SDRAM yang memiliki kapasitas terbatas namun memiliki kecepatan yang sangat tinggi dan harga yang lebih mahal dari memori utama. Cache memori ini terletak antara register dan RAM (memori utama) sehingga pemrosesan data tidak langsung mengacu pada memori utama.

Level Memori Cache
Cache memori ada tiga level yaitu L1,L2 dan L3.
Cache memori level 1 (L1) adalah cache memori yang terletak dalam prosesor (cache internal). Cache ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb.Cache level 2 (L2) memiliki kapasitas yang lebih besar yaitu berkisar antara 256Kb sampai dengan 2Mb. Namun cache L2 ini memiliki kecepatan yang lebih rendah dari cache L1.
Cache L2 terletak terpisah dengan prosesor atau disebut dengan cache eksternal.
Cache level 3 hanya dimiliki oleh prosesor yang memiliki unit lebih dari satu misalnya dualcore dan quadcore. Fungsinya adalah untuk mengontrol data yang masuk dari cache L2 dari masing-masing inti prosesor.
L1 CACHE, L2 CACHE, L3 CACHE
L1 dan L2 Cache adalah memori sementara pada processor. Jadi ketika komputer dimatikan, maka ingatan yang ada pada processor pun akan hilang. L1 dan L2 mempunyai fungsi dan perbedaan, diantaranya adalah.

Fungsi Cache L1, L2, dan L3

Fungsi Cache L1:
Sejumlah kecil SRAM memori yang digunakan sebagai cache yang terintegrasi atau satu paket di dalam modul yang sama pada prosesor. L1 cache ini dikunci pada kecepatan yang sama pada prosesor. Berguna untuk menyimpan secara sementara instruksi dan data, dan memastikan bahwa prosesor memiliki supply data yang stabil untuk diproses sementara memori mengambil dan menyimpan data baru.

Fungsi Cache L2:
Fungsinya sama dengan L1 Cache, L2 Cache dikenal juga dengan nama secondary cache, adalah memory yang memiliki urutan kecepatan kedua (tipe memori yang paling cepat adalah L1 Cache) yang disediakan untuk mikroprosesor.

Fungsi Cache L3 :
L3 cache memori khusus yang bekerja tangan-di-tangan dengan L1 dan L2 cache untuk meningkatkan kinerja komputer. L1, L2 dan L3 cache yangpemrosesan komputer unit ( CPU ) cache, ayat-ayat jenis lain dalam sistem cache seperti hard disk cache

Perbedaan L1 cache, L2 cache, L3 cache adalah :
     Cache L1 adalah memori yang utama.
   
      Kecepatannya sama dengan kecepatan processor
     Cache L2 adalah memori yang kedua (sekunder)
   
      Kecepatannya dibawah kecepatan Cache L1
     Cache L3 memiliki kapasitas lebih besar dari Cache L2
  
     Lebih lambat dari Cache L2 tetapi lebih cepat dari memori utama (L1)

Letak Cache Memory

L1 cache terintegrasi dengan chip prosesor, artinya letak L1 cache sudah menyatu dengan chip prosesor (berada di dalam keping prosesor). 
L2 cache, ada yang menyatu dengan chip prosesor, ada pula yang terletak di luar chip prosesor, yaitu di motherboard dekat dengan posisi dudukan prosesor. Pada era prosesor intel 80486 atau sebelumnya, letak L2 cache kebanyakan berada di luar chip prosesor. Chip cache terpisah dari prosesor, berdiri mandiri dekat chip prosesor. Sejak era prosesor Intel Pentium, letak L2 cache ini sudah terintegrasi dengan chip prosesor (menyatu dengan keping prosesor). Posisi L2 cache selalu terletak antara L1 cache dengan memori utama (RAM). 
L3 cache belum diimplementasikan secara umum pada semua jenis prosesor. Hanya prosesor-prosesor tertentu yang memiliki L3 cache.


Cache memory yang letaknya terpisah dengan prosesor disebut cache memory non integrated atau diskrit (diskrit artinya putus atau terpisah). 
Cache memory yang letaknya menyatu dengan prosesor disebut cache memory integrated, on-chip, atau on-die (integrated artinya bersatu/menyatu/ tergabung, on-chip artinya ada pada chip).

L1 cache (Level 1 cache) disebut pula dengan istilah primary cache, first cache, atau level one cache. 
L2 cache disebut dengan istilah secondary cache, second level cache, atau level two cache.

Virtual Memori
Virtual Memory (Memori Virtual) adalah memory yang dapat dibuat oleh user (pengguna komputer), yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah ia menggunakannya sebagai RAM fisik.
Virtual memory menggabungkan RAM komputer Anda dengan ruang sementara pada hard disk. Ketika RAM berjalan rendah, memori virtual memindahkan data dari RAM ke sebuah ruang yang disebut paging file. Data bergerak ke dan dari paging file membebaskan RAM untuk menyelesaikan pekerjaannya.
Semakin banyak RAM komputer Anda, program-program Anda umumnya akan lebih cepat berjalan. Jika kurangnya RAM yang memperlambat komputer Anda, Anda mungkin tergoda untuk meningkatkan memori virtual untuk mengimbanginya. Namun, komputer Anda dapat membaca data dari RAM jauh lebih cepat daripada dari hard disk, sehingga menambahkan RAM adalah solusi yang lebih baik.

Penggunaan Virtual Memori
Virtual memory bisa dibuat dengan menggunakan memori yang ada di harddisk, jumlahnya tidak dibatasi, tergantung dari besarnya sisa memori yang ada di hard disk. Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual yaitu Virtual Memory Manager (VMM) yang memiliki fungsi untuk dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara ini maka setiap proses dapat memperoleh memori virtual yang cukup agar dapat berjalan dan tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file agar setiap aplikasi 32-bit dapat mengakses memori hingga 4 Gigabyte, meskipun Windows hanya membatasinya pada kisaran 2 Gigabyte.

Referensi :