RUMPUN KOMPUTER
Rumpun komputer pada dasarnya adalah suatu set penerapan penggunaan ISA (Instruction Set Architecture) yang sama. Maksud dari penerapan rumpun komputer adalah seluruh anggota rumpun dapat menjalankan program yang sama dan memelihara kompabilitas dengan hardware generasi sebelumnya, apabila akan dilakukan implementasikan pada teknologi yang baru.
Suatu rumpun komputer dapat dikatakan berhasil apabila setiap implementasi bersifat kompetitif dan juga kompatibel. Kuncinya adalah dengan menciptakan dengan arsitektur yang dapat diimplementasikan dengan berbagai cara untuk menjangkau berbagai macam tingkat biaya dan kinerja. Setiap implementasi harus bersifat kompetitif dan bersifat kompatibel (serasi-pasang). Program yang berjalan pada rumpun komputer dasar juga harus dapat dijalankan pada semua anggota rumpun pada tingkat yang lebih tinggi. Dan sebaliknya sebuah program yang dipindahkan dari anggota rumpun tingkat atas ke anggota rumpun tingkat yang lebih rendah juga harus berjalan secara kompatibel. Dengan memberikan mesin berdaya rendah dengan menggunakan memory serta kemampuan yang memadai untuk mendukung kinerjanya.
Jenis rumpun komputer:
- IBM menetapkan rumpun komputer pada tahun 1987, yaitu PS/2. Rumpun PS/2 adalah software yang kompatibel dengan IBM PC dan PC AT, namun ia mempunyai komponen interface elektrik dan fisik yang berbeda. Tidak lama setelah peluncuran PS/2, IBM menghentikan produksi PC dan PC AT-nya. Namun demikian, bisnis IBM PC dan PC AT tetap tumbuh pada saat itu, dengan menempatkan IBM dalam posisi satu-satunya perusahaan yang tidak menciptakan mesin yang kompatibel terhadap IBM PC atau PC AT. Akhimya, IBM meluncurkan beberapa model PSI 2 yang secara penuh kompatibel dengan IBM PC AT, dan secara resmi telah masuk kembali ke pasar.
- RISC (Reduced Instruction Set Computing) arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor. Selain digunakan dalam komputer vektor, desain ini juga diimplementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, Power PC dan Arsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan Strong ARM (termasuk di antaranya adalah Intel XScale), SPARC dan Ultra SPARC dari Sun Microsystems, serta PA RISC dari Hewlett-Packard.
- CISC (Complex instruction-set computing) sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. Contoh-contoh prosesor CISC adalah System/360, VAX, PDP-11, varian Motorola 68000, dan CPU AMD dan Intel x86.
CACHE MEMORY
Pengertian Cache memory
Cache memory adalah memory berukuran kecil berkecepatan tinggi yang berfungsi untuk menyimpan sementara instruksi dan/atau data (informasi) yang diperlukan oleh prosesor. Boleh dikatakan bahwa cache memory ini adalah memory internal prosesor. Cache memory ini berbasis SRAM yang secara fisik berukuran kecil dan kapasitas tampung datanya juga kecil atau sedikit. Pada saat ini, cache memory ada 3 jenis, yaitu L1 cache, L2 cache, dan L3 cache.
Letak cache memory
L1 cache terintegrasi dengan chip prosesor (cache internal)., artinya letak L1 cache sudah menyatu dengan chip prosesor (berada di dalam keping prosesor). Cache ini memiliki kecepatan akses paling tinggi dan harganya paling mahal. Ukuran memori berkembang mulai dari 8Kb, 64Kb dan 128Kb. Sedangkan letak L2 cache, ada yang menyatu dengan chip prosesor, ada pula yang terletak di luar chip prosesor (cache eksternal), yaitu di motherboard dekat dengan posisi dudukan prosesor. 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. 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). Sedangkan 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.
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.
Kecepatan cache memory
Transfer data dari L1 cache ke prosesor terjadi paling cepat dibandingkan L2 cache maupun L3 cache (bila ada). Kecepatannya mendekati kecepatan register. L1 cache ini dikunci pada kecepatan yang sama pada prosesor. Secara fisik L1 cache tidak bisa dilihat dengan mata telanjang. L1 cache adalah lokasi pertama yang diakses oleh prosesor ketika mencari pasokan data. Kapasitas simpan datanya paling kecil, antara puluhan hingga ribuan byte tergantung jenis prosesor. Pada beberapa jenis prosesor pentium kapasitasnya 16 KB yang terbagi menjadi dua bagian, yaitu 8 KB untuk menyimpan instruksi, dan 8 KB untuk menyimpan data.
Transfer data tercepat kedua setelah L1 cache adalah L2 cache. Prosesor dapat mengambil data dari cache L2 yang terintegrasi (on-chip) lebih cepat dari pada cache L2 yang tidak terintegrasi. Kapasitas simpan datanya lebih besar dibandingkan L1 cache, antara ratusan ribu byte hingga jutaan byte, ada yang 128 KB, 256 KB, 512 KB, 1 MB, 2 MB, bahkan 8 MB, tergantung jenis prosesornya. Kapasitas simpan data untuk L3 cache lebih besar lagi, bisa ratusan juta byte (ratusan mega byte).
Prioritas penyimpanan dan pengambilan data
Dalam mekanisme kerjanya, data yang akan diproses oleh prosesor, pertama kali dicari di L1 cache, bila tidak ada maka akan diambil dari L2 cache, kemudian dicari di L3 cache (bila ada). Jika tetap tidak ada, maka akan dicari di memori utama. Pengambilan data di L2 cache hanya dilakukan bila di L1 cahe tidak ada.
Lebih jelasnya proses baca tulis data yang dilakukan oleh prosesor ke memori utama dapat dijelaskan sebagai berikut:
Ketika data dibaca/ditulis di memori utama (RAM) oleh prosesor, salinan data beserta address-nya (yang diambil/ditulis di memori utama) disimpan juga di cache. Sewaktu prosesor memerlukan kembali data tersebut, prosesor akan mencari ke cache, tidak perlu lagi mencari di memori utama.
Jika isi cache penuh, data yang paling lama akan dibuang dan digantikan oleh data yang baru diproses oleh prosesor. Proses ini dapat menghemat waktu dalam proses mengakses data yang sama, dibandingkan jika prosesor berulang-ulang harus mencari data ke memori utama.
Secara logika, kapasitas cache memory yang lebih besar dapat membantu memperbaiki kinerja prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam proses mengakses data.
Cara Kerja Memori Cache
Ketika kebutuhan prosesor untuk membaca dari atau menulis ke sebuah lokasi di memori utama, pertama kali akan memeriksa apakah salinan data terdapat di cache. Jika demikian, prosesor segera membaca dari atau menulis ke cache, yang jauh lebih cepat daripada membaca dari atau menulis ke memori utama. Hal ini dilakukan dengan membandingkan alamat lokasi memori untuk semua tag dalam cache yang mungkin berisi alamat itu. Jika prosesor menemukan bahwa lokasi memori dalam cache, kita mengatakan bahwa cache hit telah terjadi; jika tidak, kita berbicara tentang cache miss.
Dalam kasus hit cache, prosesor segera membaca atau menulis data dalam baris cache. Proporsi Akses yang dihasilkan dalam cache hit dikenal sebagai tingkat memukul, dan merupakan ukuran efektivitas cache.
Dalam kasus cache miss, cache mengalokasikan sebagian besar entri baru, yang terdiri dari tag hanya tidak terjawab dan salinan data dari memori.
Referensi kemudian dapat diterapkan pada entri baru seperti dalam kasus hit. Data yang relatif lambat karena mereka memerlukan data yang akan ditransfer dari memori utama. Incurs transfer ini tertunda karena memori utama jauh lebih lambat dibandingkan dengan memori cache, dan juga incurs yang overhead untuk merekam data baru dalam cache sebelum dikirim ke prosesor.
Dalam rangka untuk memberikan ruang bagi entri baru pada cache miss, cache umumnya memiliki untuk membuang salah satu entri yang sudah ada. The heuristik yang digunakan untuk memilih entri untuk membuang disebut kebijakan penggantian. Masalah mendasar dengan kebijakan penggantian adalah bahwa ia harus memprediksi entri cache yang ada paling tidak mungkin untuk digunakan di masa depan. Meramalkan masa depan adalah sulit, terutama untuk hardware cache yang menggunakan aturan sederhana setuju untuk pelaksanaan di sirkuit, jadi ada berbagai kebijakan untuk memilih pengganti dari dan tidak ada cara yang sempurna untuk memutuskan di antara mereka. Satu kebijakan penggantian populer, LRU, menggantikan yang paling terakhir digunakan entri.
Ketika data ditulis ke cache, harus pada titik tertentu ditulis ke memori utama juga. Waktu menulis ini dikendalikan oleh apa yang dikenal sebagai kebijakan menulis. Dalam write-through cache, setiap menulis ke cache menyebabkan menulis ke memori utama. Atau, dalam write-back atau salin-kembali cache, menulis tidak langsung dicerminkan ke memori. Sebaliknya, cache lokasi track yang telah ditulis di atas (lokasi ini ditandai kotor). Data di lokasi tersebut ditulis kembali ke memori utama apabila data yang diusir dari cache. Untuk alasan ini, sebuah kehilangan dalam write-back cache akan sering memerlukan dua memori akses pada pelayanan: satu untuk pertama menulis lokasi yang kotor ke memori dan kemudian lain untuk membaca lokasi baru dari memori.
Ada kebijakan serta menengah. Mungkin cache write-through, tetapi menulis dapat diadakan dalam antrian yang menyimpan data sementara, biasanya beberapa media penyimpanan sehingga dapat diproses bersama-sama (yang dapat mengurangi siklus bus dan sehingga meningkatkan pemanfaatan bus).
Hierarki cache di prosesor modern
Specialized caches
Pipelined CPU mengakses memori dari beberapa poin dalam pipa: instruksi menjemput, virtual-ke-terjemahan alamat fisik, dan data fetch (lihat klasik RISC pipa). Desain alami adalah dengan menggunakan cache fisik yang berbeda untuk masing-masing titik-titik ini, sehingga tidak ada satu sumber daya fisik harus dijadwalkan untuk melayani dua titik dalam jaringan pipa. Dengan demikian, secara alami pipa berakhir dengan setidaknya tiga cache terpisah (instruksi, BIS, dan data), masing-masing khusus terhadap peran tertentu. Pipa dengan instruksi dan data terpisah cache, sekarang dominan, yang dikatakan memiliki arsitektur Harvard. Awalnya, frase ini disebut mesin dengan instruksi dan data yang terpisah kenangan, yang terbukti sama sekali tidak populer. CPU modern memiliki satu-memori arsitektur von Neumann.
Victim cache
Korban Cache adalah cache digunakan untuk menyimpan blok diusir dari cache pada CPU penggantian. Cache korban terletak di antara cache utama dan jalan isi ulang, dan hanya memegang blok yang diusir dari cache utama. Cache korban biasanya sepenuhnya asosiatif, dan dimaksudkan untuk mengurangi jumlah konflik meleset. Banyak program yang biasa digunakan tidak memerlukan pemetaan asosiatif untuk semua akses. Pada kenyataannya, hanya sebagian kecil dari mengakses memori dari program memerlukan associativity tinggi. Cache korban eksploitasi properti ini dengan menyediakan associativity tinggi hanya akses ini. Ini diperkenalkan oleh Norman Jouppi pada tahun 1990.
Trace cache
Salah satu contoh yang lebih ekstrem spesialisasi Trace cache adalah yang ditemukan dalam mikroprosesor Intel Pentium 4. Sebuah trace Cache adalah mekanisme untuk mengambil instruksi meningkatkan bandwidth dan mengurangi konsumsi daya (dalam kasus Pentium 4) dengan menyimpan jejak-jejak instruksi yang sudah diambil dan diterjemahkan. Diakui secara luas yang paling awal publikasi akademik trace cache oleh Eric Rotenberg, Steve Bennett, dan Jim Smith pada tahun 1996 mereka kertas “Trace Cache: Pendekatan Latency Rendah ke Tinggi Mengambil Instruksi Bandwidth.”
Sebuah Penyimpanan Trace cache instruksi baik setelah mereka telah diterjemahkan, atau karena mereka pensiun. Secara umum, instruksi yang ditambahkan untuk melacak cache dalam kelompok-kelompok yang mewakili blok dasar baik perorangan atau dinamis jejak instruksi. Blok dasar terdiri dari kelompok non-instruksi cabang yang berakhir dengan sebuah cabang. A dinamis trace ( “trace path”) hanya berisi instruksi yang hasilnya benar-benar digunakan, dan menghilangkan instruksi yang diambil berikut cabang (karena mereka tidak dijalankan); jejak yang dinamis bisa menjadi dasar Rangkaian dari beberapa blok. Hal ini memungkinkan unit fetch instruksi prosesor untuk mengambil beberapa dasar blok, tanpa harus khawatir tentang cabang di aliran eksekusi.
Multi-level caches
Masalah lainnya adalah fundamental cache tradeoff antara tingkat latensi dan memukul. Cache lebih besar lebih baik tingkat terkena tapi lagi latency. Untuk mengatasi tradeoff ini, banyak komputer yang menggunakan beberapa tingkat cache, dengan cache cepat kecil didukung oleh lebih lambat cache.
Multi-level cache umumnya beroperasi dengan memeriksa terkecil Level 1 (L1) cache pertama; jika hit, prosesor berlangsung dengan kecepatan tinggi. Jika cache misses yang lebih kecil, lebih besar berikutnya cache (L2) dicentang, dan seterusnya, sebelum memori eksternal dicentang.
Sebagai perbedaan latency antara memori utama dan cache tercepat telah menjadi lebih besar, beberapa prosesor telah mulai memanfaatkan sebanyak tiga tingkat on-chip cache. Misalnya, Alpha 21164 (1995) memiliki 96 KB on-die cache L3; IBM Power4 (2001) memiliki 256 MB L3 cache off-chip, dibagi di antara beberapa prosesor; Itanium 2 (2003) memiliki 6 MB terpadu tingkat 3 (L3) cache on-die; Intel Xeon MP kode produk bernama “Tulsa” (2006) fitur 16 MB on-die cache L3 dibagi antara dua prosesor cores; AMD Phenom II (2008) memiliki hingga 6 MB on-die unified L3 cache; dan Intel Core i7 (2008) mempunyai 8 MB on-die unified L3 cache yang inklusif, bersama-sama oleh semua core. Manfaat dari suatu L3 cache tergantung pada pola akses aplikasi.
Istilah penting yang berhubungan
- Cache hit, jika data yang diminta oleh unit yang lebih tinggi dan ada dalam cache disebut "hit". Permintaan dapat dilayani dengan cepat. Maksud urutan unit dari rendah hingga tinggi yaitu: Streamer - Hardisk Memori - Second Level - First level - CPU cache.
- Cache miss, bila data yang diminta tidak ada dalam cache, harus diambil dari unit dibawahnya yang cukup memakan waktu. Ini disebut miss (gagal)
- Burst mode, dalam modus cepat ini cache mengambil banyak data sekaligus dari unit dibawahnya. Ia mengambil lebih dari yang dibutuhkan dengan asumsi, data yang diminta berikutnya letaknya berdekatan.
- LRU (Least Recently Used) adalah algoritma penggantian cache.
- COAST, Cache on the stick adalah bentuk khusus L2, yang dapat diganti-ganti seperti RAM dan ditempatkan pada modul.
- DRAM, memori dinamik (''Dynamic Random Access Memory) adalah bentuk yang paling umum. DRAM hanya menggunakan sebuah kapasitor untuk menyimpan, sehingga kecil dan murah untuk kapasitas besar. Kekurangannya: kecepatannya tidak begitu tinggi.
- SRAM, memori statik (Static RAM) ini menggunakan sakelar elektronik (flip-flop) untuk menyimpan. secara teknis flip-flop pada RAM lebih rumit dari kapasitor pada DRAM. Karena lebih cepat, SRAM biasanya digunakan untuk cache L1 atau L2.
- SDRAM, memori dinamik tersinkronisasi (Synchronous DRAM) merupakan perkembangan lebih lanjut dari DRAM. Akses pada memori disinkronkan dengan frekuensi sistim prosesor sehingga menghemat waktu. Pada motherboard modern, SDRAM berfungsi sebagai pengganti langsung DRAM.
- First level cache (L1), ini tingkat cache teratas dalam hirarki, dengan kapasitas memori terkecil, termahal dan tercepat.
- Second level cache (L2), cache level dua ini memiliki kapasitas lebih besar dari L1, tetapi lebih lambat dan murah. Cache L2 masih lebih cepat dibandingkan dengan RAM.
- Write back (WB), cache digunakan tidak hanya saat membaca, tetapi juga dalam proses menulis.
- Write through (WT), mementingkan keamanan: cache hanya digunakan saat membaca, sedangkan untuk menulis ditunggu hingga memori yang dituju selesai menulis.