Sunday, April 21, 2013

Memori Cache


Prosesor bekerja sangat cepat dibandingkan dengan memori utama yang biasanya merupakan memori dinamik yang elemen utamanya adalah kapasitor. Oleh karena prosesor selalu membaca isi memori, perbedaan kecepatan itu menjadikan prosesor selalu menunggu sampai data atau instruksi dalam memori siap dibaca. Memori cache adalah memori berkapasitas kecil tetapi bekerja sangat cepat sehingga sangat tepat apabila digunakan untuk menyimpan data atau instruksi yang sering diakses prosesor atau data/instruksi yang diprediksi akan segera diakses.
Bekerja dengan cache biasa kita lakukan dalam kehidupan sehari-hari, tidak dalam konteks komputer. Misalkan, Anda akan menulis makalah tentang arsitektur komputer modern. Apakah anda akan pergi ke perpustakaan, mengambil satu buku yang membahas arsitektur komputer, pulang ke rumah, lalu pergi ke perpustakaan lagi mencari informasi tambahan, pulang lagi, lalu balik lagi ke perpustakaan untuk mencari tambahan bahan lain, dan seterusnya? Tentu saja tidak. Anda pergi ke perpustakaan, memilih beberapa buku yang anda perkirakan akan anda perlukan, dan membawa pulang semuanya. Perpustakaan dalam hal ini analog dengan memori utama dalam sistem komputer sedangkan rumah anda (atau meja belajar tempat anda meletakkan buku dari perpustakaan) adalah cache.
Memori cache secara struktur terletak antara memori utama dengan prosesor. Isi memori cache adalah salinan data/instruksi yang sering diakses prosesor sehingga prosesor tidak perlu terlalu sering mengakses memori utama. Juga, memori cache bisa sangat teratur isinya seperti lemari perpustakaan, bisa saja berantakan seperti meja kerja (misalnya) dosen. Ada hal yang berbeda antara memori cache dengan kehidupan sesungguhnya: komputer sama sekali tidak tahu, apriori, mengenai data/instruksi apa yang akan sering diakses, sehingga ia menggunakan prinsip lokalitas dengan memindahkan seluruh blok dari memori utama ke cache setiap kali ia mengambil data/instruksi dari memori. Jika probabilitas penggunaan data/instruksi dalam blok yang dipindah itu tinggi, maka pemindahan satu blok tadi akan menghemat waktu akses.

Dokumen lengkap dapat diunduh dari situs 4shared atau Mediafire berikut ini.

Memori Komputer

Memori adalah cip elektronik tempat menyimpan data dan program dalam bentuk kode biner yang disimpan secara elektrik. Dalam sistem komputer, terdapat memori utama (atau memori primer) dan memori sekunder (atau lazim disebut sebagai penyimpan massal). Program hanya bisa dijalankan oleh mikroprosesor apabila disimpan di dalam memori primer (atau di cache, apabila komputer atau sistem mikroprosesor tersebut memiliki cache).

Pada komputer dengan arsitektur Harvard  memori untuk program terpisah dari memori untuk data dan jalur menuju prosesor juga terpisah. Dalam beberapa buku berbahasa Inggris, terutama Inggris British, memori disebut sebagai storage sementara pada buku lain, storage  merujuk kepada penyimpan massal semisal hardisk. Tanpa memori yang merupakan tempat di mana prosesor membaca atau menuliskan data, tidak akan pernah ada istilah komputer digital dengan program tersimpan.

Bit

Unit dasar data yang tersimpan dalam memori (dan yang dipindah ataupun diolah oleh prosesor) adalah bit. Bit berisi angka biner 0 atau 1. Sering dinyatakan bahwa komputer menggunakan aritmetika biner karena efisien. Yang dimaksudkan sebenarnya adalah bahwa informasi yang disimpan dalam bentuk biner jauh lebih mudah dibedakan nilainya. Biner hanya membedakan nilai 0 dan 1, dan nilai itu jauh lebih mudah direalisasikan dengan ada atau tidak adanya tegangan listrik, ada atau tidak adanya arus listrik, atau nyala/padamnya lampu.
Komputer mainframe IBM tempo dulu, dalam salat satu iklannya dikatakan mampu melaksanakan operasi aritmetika biner maupun desimal. Yang dilakukan sebenarya adalah menyelesaikan aritmetika dalam biner, menggunakan 4 angka biner untuk menyimpan satu bilangan desimal dengan menggunakan kode yang disebut BCD (Binary Coded Decimal). Dalam kode BCD, 4 bit biner memberikan 16 kombinasi (44), digunakan untuk mengkodekan angka 0 sampai 9, enam kombinasi lainnya tidak digunakan. Angka 1944 ditunjukkan dengan kode BCD dan biner berikut ini:

    BCD             : 0001 1001 0100 0100
    Biner murni    : 0000011110011000

Enambelas bit dalam format desimal dapat menyimpan angka dari 0 sampai 9999 (10000 kombinasi) sedangkan 16-bit biner murni dapat menyimpan 0 sampai 65535 (65536 kombinasi). Oleh karena  alasan ini dikatakan bahwa biner lebih efisien.
Ceritanya akan berbeda jika misalnya seorang mahasiswa teknik brilian (mungkin Anda?) menemukan  perangkat elektronik (atau fotonik, atau quantumik) yang mampu menyimpan angka 0 sampai 9 secara langsung dengan cara mampu membedakan masing-masing nilai secara reliabel. Bila itu terjadi, mungkin akan mudah membangun komputer yang berbasis desimal, dan pasti jauh lebih efisien dibandingkan aritmetika biner.


Berikut ini tautan menuju ke bahan-bahan kuliah tentang memori:
  1. Memori Utama
  2. Memori Sekunder
Bahan lain, silahkan Googling. Selamat belajar!