Thursday, January 8, 2009

Web Widget

A web widget is a portable chunk of code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation. They are derived from the idea of code reuse. Other terms used to describe web widgets include: gadget, badge, module, webjit, capsule, snippet, mini and flake. Web widgets usually but not always use DHTML, JavaScript, or Adobe Flash.

Widgets often take the form of on-screen tools (clocks, event countdowns, auction-tickers, stock market tickers, flight arrival information, daily weather etc).

Widget

Embeddable chunks of code have existed since the start of the World Wide Web. Web developers have long sought and used third party code chunks in their pages. It could be said that the original web widgets were the link counters and advertising banners that grew up alongside the early web.

A widget is anything that can be embedded within a page of HTML, i.e. a web page. A widget adds some content to that page that is not static. Generally widgets are third party originated, though they can be home made. Widgets are also known as modules, snippets, and plug-ins.

The first widely syndicated web widget, Trivia Blitz, was introduced in 1997. It was a java game applet offered by Uproar.com embedded on 15,200 websites as of December 31, 1998 and 36,100 websites as of December 31, 1999. It spread virally through an "add this game to your website" button. Sites that carried the game ranged from Geocities and Tripod personal pages to CNN and Tower Records. Uproar paid sites a referral fee for new users that registered through the widget. When Uproar.com was acquired by Vivendi Universal in 2001, the widget was discontinued.

Widgets are now commonplace and are used by bloggers, social network users, auction sites and owners of personal web sites. They exist on home page sites such as iGoogle, Netvibes, or Pageflakes. Widgets distribution platforms such as Clearspring and Gigya are now used to seed and distribute widgets as Rich media Advertisement units. Media and entertainment companies are increasingly using widgets to run Ad campaigns. Widgets are used as a distribution method by ad networks such as Google’s AdSense, by media sites such as Flickr, by video sites such as YouTube and by hundreds of other organizations.

Usage and Criticism

Applications can be integrated within a third party website by the placement of a small snippet of code. The code brings in ‘live’ content – advertisements, links, images – from a third party site without the web site owner having to update or control.

End users can utilize Web Widgets to enhance a number of web-based hosts, or drop targets. Categories of drop targets include social networks, blogs, wikis and personal homepages. Although end users primarily use Web Widgets to enhance their personal web experiences, or the web experiences of visitors to their personal sites, corporations can potentially use Web Widgets to improve their web sites using syndicated content and functionality from third party providers.

The use of web widgets has been increasingly proposed as a marketing channel that could replace the less effective targeted banner ads and take advantage of the viral distribution in social networks. This usage has been criticized as ineffective [1] on the basis that users of a social space are not mainly in a mindset receptive to information exposition but one of content creation.


Security Considerations

As any program code, widgets can be used for malicious purposes. One example is the Facebook “Secret Crush” widget, reported in early 2008 by Fortinet as luring users to install Zango adware.

Widget Management Systems

Widget management systems offer a method of managing widgets that works on any web page, such as a blog or social networking home page. Many blog systems like Wordpress or Movable Type come with built in widget management systems as plug-ins. Users can obtain widgets and other widget management tools from widget companies such as Clearspring or Widgetbox.

Mobile Web Widget

A Mobile Web widget is a web widget that is made or designed for access on mobile devices.

PHP SQL Injection

SQL Injection ?

SQL Injection is a technique which enables an attacker to execute unauthorized SQL commands by taking advantage of unsanitized input opportunities in Web applications building dynamic SQL queries.

This is due to the fact that PHP combines the strings of the MYSQL query you gave it with the variable before it so that someone could add a second query or otherwise change your MYSQL query to give them information or access that they should not have.

The most common of these unsanitized input includes unescaped quotes in SQL statements.

1. Injection of a Second Query

1.1 The Problem
Consider the following SQL query in PHP:
$result=mysql_query('SELECT * FROM users WHERE username="'.$_GET['username'].'"');

The query selects all rows from the users table where the username is equal to the one put in the query string. If you look carefully, you'll realise that the statement is vulnerable to SQL Injection - quotes in $_GET['username'] are not escaped, and thus will be concatenated as part of the statement, which can allow malicious behaviour.

Consider what would happen if $_GET['username'] was the following: " OR 1 OR username = " (a double-quote, followed by a textual " OR 1 OR username = " followed by another double-quote). When concatenated into the original expression, you have a query which looks like this: SELECT * FROM users WHERE username = "" OR 1 OR username = "". The seemingly redundant OR username = " part added is to ensure that the SQL statement evaluates without error. Otherwise, a hanging double quote would be left at the end of the statement.

This selects all rows from the users table. While it may not seem dangerous, other more malicious code could be added in place, especially in DELETE or UPDATE queries which modify the tables.

Also, another line of SQL code can be added to
SELECT * FROM `users` WHERE username =
''
by adding a quote and a semicolon to the end so that the line would become
SELECT * FROM `users` WHERE username =
''; '
This could easily become:
SELECT * FROM `users` WHERE username =
'';
DELETE * FROM `forum` WHERE title != '
'

1.2 The Solution
Never trust user provided data, process this data only after validation; as a rule, this is done by pattern matching. In the example below, the username is restricted to alphanumerical chars plus underscore and to a length between 8 and 20 chars - modify as needed.

if (preg_match("/^\w{8,20}$/", $_GET['username'], $matches)) $result = mysql_query("SELECT * FROM users WHERE username=$matches[0]"); else // we don't bother querying the database echo "username not accepted";

For increased security, you might want to abort the script's execution replacing echo by exit() or die().

This issue still applies when using checkboxes, radio buttons, select lists, etc. Any browser request(even POST) can be replicated through telnet, duplicate sites, javascript, or code (even PHP), so always be cautious of any restricions set on client-side code.

2. Use of mysql_real_escape_sring()
PHP provides you with a function to deal with user input in MySQL, and that is mysql_real_escape_string(string unescaped_string[, resource link_identifier]). This script escapes all potentially dangerous characters in the string provided and returns the escaped string such that is is now safe to put into a MySQL query.

(The original function, myqsl_escape_string, did not take the current character set in account for escaping the string, nor accepted the connection argument. It is deprecated since PHP 4.3.0.)

For example, consider one of the examples above:

$result=mysql_query('SELECT * FROM users WHERE username="'.$_GET['username'].'"');

This could be escaped as follows:

$result=mysql_query('SELECT * FROM users WHERE username="'.mysql_real_escape_string($_GET['username']).'"');

This way, if the user tried to inject another statement such as a DELETE, it would harmlessly be interpreted as part of the WHERE clause parameter as expected:

SELECT * FROM `users` WHERE username = '\';DELETE * FROM `forum` WHERE title != \''

The backslashes added by mysql_real_escape_string make MySQL interpret them as actual single quote characters rather than as part of the SQL statement.

Note that MySQL does not allow stacking of queries so the ;DELETE FROM table attack would not work anyway

3. For more information
PHP Manual: SQL Injection

Wednesday, January 7, 2009

PERKEMBANGAN MEMORY

Kata "memory" digunakan untuk mendiskripsikan suatu sirkuit elektronik yang mampu untuk menampung data dan juga instruksi program. Memory dapat dibayangkan sebagai suatu ruang kerja bagi komputer dan memory juga menentukan terhadap ukuran dan jumlah program yang bisa dijalankan dalam waktu yang sama, sekaligus juga jumlah data yang bisa diproses. Memory terkadang disebut sebagai primary storage, primary memory, main storage, main memory, internal storage atau juga random access memory (RAM). Ada empat macam tipe dari memory komputer, yaitu:

1. Random Access Memory (RAM)
Memori akses acak (bahasa Inggris: Random access memory, RAM) adalah sebuah tipe penyimpanan komputer yang isinya dapat diakses dalam waktu yang tetap tidak memperdulikan letak data tersebut dalam memori. Ini berlawanan dengan alat memori urut, seperti tape magnetik, disk dan drum, di mana gerakan mekanikal dari media penyimpanan memaksa komputer untuk mengakses data secara berurutan.
Pertama kali dikenal pada tahun 60'an. Hanya saja saat itu memori semikonduktor belumlah populer karena harganya yang sangat mahal. Saat itu lebih lazim untuk menggunakan memori utama magnetic.
Perusahaan semikonduktor seperti Intel memulai debutnya dengan memproduksi RAM , lebih tepatnya jenis DRAM.
Biasanya RAM dapat ditulis dan dibaca, berlawanan dengan memori-baca-saja (read-only-memory, ROM), RAM biasanya digunakan untuk penyimpanan primer (memori utama) dalam komputer untuk digunakan dan mengubah informasi secara aktif, meskipun beberapa alat menggunakan beberapa jenis RAM untuk menyediakan penyimpanan sekunder jangka-panjang.
Tetapi ada juga yang berpendapat bahwa ROM merupakan jenis lain dari RAM, karena sifatnya yang sebenarnya juga Random Access seperti halnya SRAM ataupun DRAM. Hanya saja memang proses penulisan pada ROM membutuhkan proses khusus yang tidak semudah dan fleksibel seperti halnya pada SRAM atau DRAM. Selain itu beberapa bagian dari space addres RAM ( memori utama ) dari sebuah sistem yang dipetakan kedalam satu atau dua chip ROM.
Ketika orang berpikir mengenai memory komputer, maka seringkali random access memory (RAM) lah yang mereka maksudkan. RAM terdiri dari sekumpulan chip. Chip-chip ini mampu untuk menampung:
A. data untuk diproses;
B. instruksi atau program, untuk memproses data;
C. data yang telah diproses dan menunggu untuk dikirim ke output device, secondary storage atau juga communication device;
D. instruksi sistem operasi yang mengontrol fungsi-fungsi dasar dari sistem komputer
Semua data dan instruksi tadi ditampung di dalam RAM secara temporer. Isi dari RAM bisa berubah-ubah sesuai dengan data yang diproses di dalamnya, atau juga program yang menggunakannya. RAM merupakan sumber daya komputer yang sifatnya reusable atau bisa digunakan kembali.
Kebanyakan dari RAM disebut sebagai barang yang volatile. Artinya adalah jika daya listrik dicabut dari komputer dan komputer tersebu mati, maka semua konten yang ada di dalam RAM akan segera hilang secara permanen. Karena RAM bersifat temporer dan volatile, maka orang menciptakan suatu media penyimpanan lain yang sifatnya permanen. Ini biasanya disebut sebagai secondary storage. Secondary storage bersifat tahan lama dan juga tidak volatile, ini berarti semua data atau program yang tersimpan di dalamnya bisa tetap ada walaupun daya atau listrik dimatikan. Beberapa contoh dari secondary storage ini misalnya adalah magnetic tape, hardisk, magnetic disk dan juga optical disk.
Kapasitas penyimpanan dari RAM sangat beragam dalam berbagai komputer. Kapasitas merupakan faktor yang penting, karena dia menentukan seberapa banyak data yang bisa diproses dalam waktu yang sama dan seberapa besar dan kompleks progam yang bisa menempatinya. Sistem operasi di dalam komputer bertugas untuk mengatur penggunaan RAM sehingga program bisa berjalan dengan baik. Untuk mengerti kapasitas dari RAM, maka beberapa terminologi berikut ini sering digunakan.
- Bit, yaitu suatu sistem penomoran biner yang mewakili unit terkecil dari data dalam suatu sistem komputer. Suatu bit hanya terdiri dari dua buah angka yaitu 1 dan 0. Di dalam komputer, sebuah 0 berarti suatu sinyal elektronik atau magnetis adalah tiada atau absen, sementara 1 berarti sebaliknya.
- Byte, yaitu suatu grup dari delapan bit. Sebuah byte mewakili satu karakter, satu digit atau satu nilai. Kapasitas dari memory komputer, atau RAM, dinyatakan di dalam bytes atau sekumpulan dari bytes.
Data, instruksi dan program yang disimpan di dalam RAM sebenarnya disimpan dalam bentuk kumpulan bits yang merepresentasikan data, instruksi dan program tadi. Bit-bit ini disimpan ke dalam suatu bagian elektronik yang mikroskopis yang disebut dengan kapasitor.

Tipe umum RAM :
- SRAM atau Static RAM
- NV-RAM atau Non-Volatile RAM
- DRAM atau Dynamic RAM
- Fast Page Mode DRAM
- EDO RAM atau Extended Data Out DRAM
- XDR DRAM
- SDRAM atau Synchronous DRAM
- DDR SDRAM atau Double Data Rate Synchronous DRAM sekarang (2005) mulai digantikan dengan DDR2
- RDRAM atau Rambus DRAM

Tipe tidak umum RAM
- Dual-ported RAM
- Video RAM
- WRAM
- MRAM
- FeRAM

Produsen peringkat atas RAM
- Infineon
- Hynix
- Samsung
- Micron
- Rambus
- Corsair

2. Read Only Memory (ROM)
Read Only Memory (ROM) adalah suatu himpunan dari chip yang berisi bagian dari sistem operasi yang mana dibutuhkan pada saat komputer dinyalakan. ROM juga dikenal sebagai suatu firmware. ROM tidak bisa ditulisi atau diubah isinya oleh pengguna. ROM tergolong dalam media penyimpanan yang sifatnya non volatile. Chip ROM datang dari pabriknya dengan program atau instruksi yang sudah disimpan di dalamnya. Satu-satunya cara untuk mengganti kontennya adalah dengan mencopotnya dari komputer dan menggantinya dengan ROM yang lain. Chip ROM dapat berisi program yang sering digunakan, seperti rutin-rutin komputasi untuk menghitung akar suatu bilangan dan lain sebagainya.
Penggunaan dari ROM ini contohnya adalah sebagai media penyimpanan dari BIOS (Basic Input-Output System) yang diuat oleh pabriknya. BIOS merupakan bagian yang sangat kritis dari suatu sistem operasi, yang mana fungsinya memberi tahu komputer bagaimana caranya mengakses disk drive. Ketika komputer dinyalakan, RAM masih kosong dan instruksi yang ada pada ROM BIOS lah yang digunakan oleh CPU untuk mencari disk drive yang berisi file-file utama dalam sistem operasi. Komputer lalu memindahkan file-file tersebut ke dalam RAM dan kemudian menjalankannya.

Ada tiga variasi dari ROM, yaitu:
A. PROM (Programmable Read Only Memory).
Chip PROM adalah suatu chip yang kosong yang mana program dapat dituliskan ke dalamnya dengan menggunakan suatu peralatan khusus. Chip PROM dapat diprogram sekali dan biasanya digunakan oleh pabrik sebagai control device di dalam produk-produknya.
B. EPROM (Erasable Programmable Read Only Memory).
EPROM mirip dengan PROM, tetapi program dapat dihapus dan program yang baru bisa dituliskan ke dalamnya dengan menggunakan suatu peralatan khusus yang menggunakan sinar ultraviolet. EPROM digunakan untuk controlling device, seperti robot dan sebagainya.
C. EEPROM (Electronic Erasable Programmable Read Only Memory).
Chip EEPROM dapat diprogram ulang dengan menggunakan suatu electric impulses yang khusus. Mereka tidak perlu dicabut atau diubah.

3. CMOS Memory CMOS
Merupakan singkatan dari "complementary metal oxide semiconductor". CMOS adalah suatu memory yang khusus yang berisi data vital mengenai konfigurasi komputer dan bersifat semi-permanen. Tanpa adanya data ini, komputer tidak akan bisa beroperasi. CMOS lebih permanen dari pada RAM dan kurang permanen dibandingkan ROM. CMOS memerlukan daya yang sangat kecil untuk mempertahankan kontennya, dan chip ini memanfaatkan baterai sebagai sumber daya listriknya. Ketika perubahan diperlukan ke dalam konfigurasi sistem komputer (misalnya ada penambahan hardisk, penambahan RAM dan lain sebagainya), maka CMOS dapat diubah dengan menjalankan suatu program utility khusus yang tersedia melalui sistem operasi.

4. Virtual Memory Virtual
Memory adalah suatu metode penyimpanan data dimana bagian dari program atau data disimpan di dalam magnetic disk dan tidak di dalam RAM, sampai suatu saat diperlukan. Ini akan memberikan semacam ilusi bahwa RAM tersebut sifatnya unlimited. Jadi kesimpulannya, virtual memory mensimulasikan dirinya sebagai suatu RAM. Dia mengijinkan komputer untuk menjalankan lebih banyak program daripada sebelumnya, memanipulasi data yang lebih besar dan juga menjalankan program yang besar tanpa takut kekurangan RAM. Virtual storage leih lambat daripada RAM dan sifatnya non volatile.

Memory utama komputer dapat dibayangkan sebagai sebuah tabel dua dimensi, dimana masing-masing sel memiliki alamat yang unik. Silakan lihat pada Figure 1, dimana setiap sel dapat menyimpan satu byte data dengan menggunakan delapan kapasitor yang mewakili delapan bit dalam satu byte.

MEMORI RAM SEMIKONDUKTOR

Memori semikonduktor tersedia dalam rentang kecepatan yang luas. Waktu siklusnya berada pada rentang 100ns hingga kurang dari 10ns. Pada saat diperkenalkan pertama kali pada akhir tahun 1960an, memori tersebut lebih mahal daripada memori inti magnetik. Karena perkembangan teknologi VLSI (Very Large Scale Integration) yang sangat cepat, biaya memori semikonduktor telah menurun secara drastis. Akibatnya, teknologi tersebut sekarang digunakan secara eksklusif dalam menerapkan memori.

Organisasi Internal Chip Memori
Sel Memori biasanya diatur dalam bentuk array, dengan tiap sel dapat menyimpan satu bit informasi. Organisasi yang mungkin diilustrasikan pada gambar berikut.
Blok diatas adalah blok memori yang menggunakan 16 jalur alamat dan 8 jalur data. Karena terdapat 8 jalur data, maka jumlah word (register) tiap alamat dapat menyimpan 8 bit (1 byte) data. Untuk 16 jalur alamat, maka jumlah word total yang dapat dialamati adalah 65535. Sehingga kapasitas memori total pada blok diatas adalah 65535 byte (64 Kilobyte).
Jalur alamat biasanya ditunjukkan oleh bilangan heksadesimal untuk mempermudah analisa. Jika seluruh bit pada jalur alamat bernilai 0, maka bilangan heksadesimal yang ditunjukkan adalah 0000 (1 bit bilangan heksadesimal mewakili 4 bit bilangan biner). Jika seluruh bit pada jalur alamat bernilai 1, maka bilangan heksadesimal yang ditunjukkan adalah FFFF.
Dengan 16 jalur alamat, prosessor dapat mengalamati 65535 (2 16 ) lokasi memori. Untuk itu diperlukan Address Decoder. Saat alamat berada pada jalur alamat, address decoder memilih lokasi memori yang sesuai. Setelah meletakkan sebuah alamat pada bus alamat, prosessor akan membaca isi dari lokasi memori, atau menulis data kedalam memori. Untuk menulis lokasi memori, prosessor mengirim sinyal Memory Read (MEMR). Untuk menyimpan byte data pada lokasi memori, prosessor mengirim sinyal kontrol Memory Write (MEMW). Untuk jalur data yang lebih dari 8bit, maka pengalamatannya menggunakan model byte addressable (lihat modul pengalamatan memori).
Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang ada pada Program Counter. Instruksi dapat berupa menempatkan/menyimpan dari/ke alamat di memori, penambahan, dan sebagainya. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu.
Satuan pokok memori adalah bit. Sejumlah bit dapat berisi 0 atau 1. Memori terdiri dari sejumlah cell-cell yang masing-masing dapat menyimpan informasi. Semua cell dalam sebuah memori berisi jumlah bit yang sama. Tiap cell mempunyai alamat, yang dipakai program sebagai acuan. Komputerkomputer menggunakan sistem bilangan biner (termasuk notasi oktal dan heksa untuk bilangan biner).
Memori komputer kadang dapat membuat kesalahan karena tekanantekanan voltase pada arus listrik atau sebabsebab lain. Untuk menghindari kesalahan­kesalahan semacam itu, beberapa memori menggunakan kode-kode pendeteksi kesalahan. Ketika kode-kode ini digunakan, bit-bit ekstra ditambahkan pada setiap word memori dengan suatu cara khusus.
Ketika sebuah word/data muncul dari memori, bit-bit tambahan tersebut diperiksa untuk melihat apakah terjadi sebuah kesalahan. Memori berfungsi untuk menyimpan data dan program. Terdapat beberapa tipe memori, mulai yang tercepat aksesnya sampai yang terlambat. Hirarki memori berdasarkan kecepatan akses adalah seperti berikut:

REGISTER
Adalah tempat penyimpanan beberapa buah data volatile yang akan diolah langsung di prosesor yang berkecepatan sangat tinggi. Register ini berada di dalam prosesor dengan jumlah yang sangat terbatas karena fungsinya sebagai tempat perhitungan/komputasi data. Atau bisa dikatakan bahwa register berfungsi sebagai tempat penyimpanan sementara hasil dari tahapantahapan operasi aritmatika dan logika.

CACHE MEMORY
Cache memory adalah memori berkapasitas terbatas, berkecepatan tinggi yang lebih mahal dibanding memori utama. Cache memori terletak diantara memori utama dan register CPU, dan berfungsi agar CPU tidak langsung mengacu ke memori utama tetapi di cache memori yang kecepatan aksesnya lebih tinggi. Metode ini akan meningkatkan kinerja system. Dahulu cache disimpan di luar prosesor dan dapat ditambahkan. Untuk eningkatkan kinerja, saat ini cache ditanamkan di prosesor.
Kecepatan memori utama sangat rendah dibandingkan kecepatan prosessor modern. Untuk performa yang baik, prosessor tidak dapat membuang waktunya dengan menunggu untuk mengakses instruksi dan data pada memori utama. Karenanya sangat penting untuk memikirkan suatu skema yang mengurangi waktu dalam mengakses informasi. Karena kecepatan memori utama dibatasi oleh batasan elektronik dan packaging, maka solusinya harus dicari pada sistem arsitektur yang berbeda. Solusi yang efisien adalah menggunakan memori cache cepat yang sebenarnya membuat memori utama tampak lebih cepat bagi prosesor daripada sebenarnya.
Keefektifan mekanisme cache didasarkan pada properti program komputer yang disebut locality of reference. Analisa program menunjukkan bahwa sebagian besar waktu eksekusinya digunakan sebagai routine dimana banyak instruksi dieksekusi secara berulangkali. Instruksi tersebut dapat merupakan loop sederhana, nested loop, atau beberapa prosedur yang berulang kali saling memanggil. Pola detail aktual dari rangkaian instruksi tidaklah penting – yang utama adalah banyak instruksi dalam area program yang terlokalisasi dieksekusi berulangkali selama beberapa periode, dan bagian program yang lain relatif jarang diakses. Disebut locality of reference. Hal ini memanifestasikan dirinya dalam dua cara: temporal dan spasial. Yang pertama berarti bahwa instruksi yang baru dieksekusi tampaknya akan dieksekusi lagi dengan segera. Aspek spasial berarti instruksi yang dekat dengan instruksi yang baru saja dieksekusi (dengan mengacu pada alamat instruksi) tampaknya juga akan dieksekusi dengan segera.
Jika segmen program aktif dapat diletakkan dalam memori cache dengan cepat, maka waktu eksekusi total dapat direduksi secara signifikan. Secara konseptual, operasi memori cache sangat sederhana. Sirkuit kontrol memori didesain untuk memanfaatkan properti locality of reference. Aspek temporal locality of reference menyatakan bahwa kapanpun suatu item informasi (instruksi atau data) pertama kali diperlukan, maka item tersebut sebaiknya dibawa kedalam cache dimana item tersebut akan tetap tinggal hingga diperlukan lagi. Aspek spasial menyatakan daripada mengambil hanya satu item dari memori utama ke cache, akan berguna untuk mengambil juga beberapa item yang terletak pada alamat yang berdekatan. Digunakanistilah blok untuk mengacu pada set lokasi alamat beberapa ukuran yang berdekatan. Istilah lain yang sering digunakan untuk mengacu pada blok cache adalah jalur cache.
Perhatikan pengaturan sederhana pada gambar berikut. Pada saat request Read diterima dari prosessor, isi blok word memori yang berisi lokasi tertentu ditransfer ke cache satu word tiap satu waktu. Selanjutnya, pada saat program mengacu pada suatu lokasi pada blok ini, maka isi yang dimaksud dibaca langsung dari cache. Biasanya, memori cache dapat menyimpan sejumlah blok pada tiap waktu tertentu, tetapi jumlah ini kecil dibandingkan dengan jumlah total blok dalam memori utama. Hubungan antara blok memori utama dan yang ada di dalam cache ditentukan dengan fungsi mapping. Pada saat cache penuh dan word memori (instruksi atau data) yang tidak berada di dalam cache direferensi, hardware control cache harus memutuskan blok mana yang harus dihapus untuk menghasilkan ruang bagi blok baru yang berisi word tereferensi. Kumpulan aturan untuk menentukan keputusan tersebut merupakan algoritma pergantian (replacement algorithm).
Prosessor tidak perlu tahu pasti tentang keberadaan cache tersebut. Prosessor cukup hanya mengeluarkan request Read dan Write menggunakan alamat yang mengacu ke lokasi dalam memori. Sirkuit kontrol cache menentukan apakah word yang diminta saat ini berada dalam cache. Jika ya, operasi Read atau Write dilakukan pada lokasi cache yang sesuai. Dalam hal ini, dinyatakan telah terjadi Read atau Write hit. Pada operasi Read, memori utama tidak terlibat. Untuk operasi Write, sistem dapat berjalan dengan dua cara. Pada teknik pertama, yang disebut protokol write through, lokasi cache dan lokasi memori utama diupdate secara bersamaan. Teknik kedua adalah hanya mengupdate lokasi cache dan menandainya sebagai terupdate dengan bit flag yang sesuai, sering disebut bit dirty atau modified. Lokasi memori word diupdate kemudian, pada saat blok yang berisi word bertanda ini dipindahkan dari cache untuk memberi ruang baru bagi blok baru. Teknik ini disebut protokol write back, atau copy back. Protokol write through lebih sederhana, tetapi menghasilkan operasi Write yang tidak perlu dalam memori utama pada saat word cache tertentu diupdate beberapa kali selama cache recidencynya.
Perhatikan bahwa protokol write back dapat pula menghasilkan operasi Write yang tidak perlu karena pada saat blok cache dituliskan kembali ke memori maka semua word pada blok dituliskan kembali, bahkan jika hanya word tunggal yang diubah pada saat blok berada di dalam cache.
Pada saat word yang dituju dalam operasi Read tidak berada di dalam cache, terjadi Read miss. Blok word yang berisi word yang diminta dicopy dari memori utama ke dalam cache. Setelah seluruh blok diload ke dalam cache, maka word yang diminta diteruskan ke prosessor. Kemungkinan lain, word ini dapat dikirim ke prosessor segera setelah dibaca dari memori utama.
Pendekatan yang terakhir, yang disebut load through, atau early restart, mengurangi periode tunggu prosessor, tetapi menghasilkan sirkuit yang lebih kompleks.
Selama operasi Write, jika word yang dituju tidak berada di dalam cache, maka terjadi write miss. Kemudian, jika protokol write through digunakan, maka informasi tersebut ditulis ke langsung ke memori utama. Dalam protokol write back, blok yang berisi word yang dituju mula-mula dibawa ke dalam cache, dan kemudian word di dalam cache yang dimaksud di overwrite dengan informasi baru.

MEMORI EXTENSI
Tambahan memori yang digunakan untuk membantu prosesproses dalam komputer, biasanya berupa buffer. Peranan tambahan memori ini sering dilupakan akan tetapi sangat penting artinya untuk efisiensi. Biasanya tambahan memori ini memberi gambaran kasar kemampuan dari perangkat tersebut, sebagai contoh misalnya jumlah memori VGA, memori soundcard.

ROM (Read Only Memory)
Chip SRAM dan DRAM volatile, artinya chip tersebut kehilangan informasi yang disimpannya jika daya dioff. Terdapat banyak aplikasi yangmemerlukan perangkat memori yang mempertahankan informasi tersimpan jika daya dioff. Misalnya dalam komputer biasa driveharddisk digunakan untuk menyimpan sejumlah besar informasi, termasuk software sistem operasi. Pada saat komputer dion, software sistem operasi harus diload dari disk ke dalam memori. Hal ini memerlukan eksekusi program yang ”boot” sistem operasi. Karena program boot cukup besar, sebagian besar disimpan dalam disk. Prosessor harus mengeksekusi beberapa instruksi yang meload program boot ke dalam memori. Jika seluruh memori hanya terdiri dari chip memori volatile, maka prosessor tidak akan memiliki sarana untuk mengakses instruksi tersebut. Solusi praktisnya adalah dengan menyediakan sejumlah kecil memori non volatile yang menyimpan instruksi yang eksekusinya menghasilkan loading program boot dari disk.
Memori non volatile digunakan secara luas dalam sistem embedded. Sistem semacam ini biasanya tidak menggunakan perangkat penyimpanan disk. Programnya disimpan dalam perangkat memori semikonduktor non volatile.
Tipe memori non volatile yang berbeda telah dikembangkan. Umumnya, isi memori semacam itu dapat dibaca seakan sebagai memori SRAM atau DRAM. Tetapi proses penulisan khusus diperlukan untuk meletakkan informasi tersebut dalam memori ini. Karena operasi normalnya melibatkan hanya pembacaan data yang tersimpan, maka memori tipe ini disebut readonly memory. Data ditulis ke dalam ROM pada saat fabrikasi.
Beberapa desain ROM memungkinkan data diload oleh user, sehingga menghasilkan programmable ROM (PROM). PROM menyediakan fleksibilitas dan kemudahan yang tidak dimiliki ROM. Yang terakhir lebih menarik secara ekonomi untuk menyimpan program dan data tetap pada saat ROM volume tinggi diproduksi. Akan tetapi, biaya untuk mempersiapkan mask yang diperlukan untuk menyimpan pola informasi tertentu dalam ROM menjadikannya sangat mahal pada saat hanya sejumlah kecil yang diperlukan. Dalam hal ini, PROM menyediakan pendekatan yang lebih cepat dan lebih murah karena dapat diprogram langsung oleh user.
Tipe lain chip ROM memungkinkan data yang disimpan dihapus dan diload data baru. ROM yang erasable dan programmable biasanya disebut EPROM. Tipe ini menyediakan fleksibilitas selama fase pengembangan sistem digital. Karena EPROM mampu mempertahankan informasi yang tersimpan untuk waktu yang lama, maka dapat digunakan untuk menggantikan ROM pada saat software dikembangkan. Dengan cara ini, perubahan dan update memori dapat dilakukan dengan mudah.
Kentungan yang penting dari chip EPROM adalah isinya dapat dihapus dan diprogram ulang, dilakukan dengan menyinari chip pada sinar ultraviolet. Untuk alasan ini, chip EPROM dipasang pada unit yang memiliki jendela transparan.
Kerugian EPROM yang signifikan adalah chip tersebut harus dipindahkan dari sirkuit untuk pemrograman ulang dan seluruh isinya dihapus oleh sinar ultraviolet. Dimungkinkan untuk menerapkan versi lain erasable PROM yang dapat diprogram dan dihapus secara elektrik. Chip semacam ini, yang disebut EEPROM, tidak harus dipindahkan untuk penghapusan. Lagipula dimungkinkan untuk menghapus isi sel secara selektif. Satusatunya kerugian dari EEPROM adalah diperlukan tegangan yang berbeda untuk penghapusan, penulisan, dan pembacaan data yang tersimpan.
Jenis terbaru dari EEPROM adalah memory flash. Terdapat perbedaan substansial dalam beberapa hal antara EEPROM dan flash memory. Dalam EEPROM dapat dimungkinkan untuk membaca dan menulis sel tunggal. Pada perangkat flash mungkin untuk membaca sel tunggal, tetapi hanya mungkin untuk menulis seluruh blok sel. Sebelum penulisan, isi blok sebelumnya akan dihapus. Perangkat flash memiliki densitas yang lebih besar, yang menghasilkan kapasitas yang lebih tinggi dan biaya lebih rendah per bit. Perangkat tersebut memerlukan supply daya tunggal, dan mengkonsumsi daya lebih rendah dalam operasinya.
Konsumsi daya yang rendah pada memori flash membuatnya menarik untuk digunakan dalam perangkat portable yang dikendalikan dengan batere. Aplikasi yang umum antara lain komputer handheld, telepon seluler, kamera digital, dan player musik MP3. Pada komputer handheld dan telepon seluler, memori flash menyimpan software yang diperlukan untuk mengoperasikan peralatan tersebut, sehingga meniadakan perlunya disk drive. Pada kamera digital, memori digunakan untuk menyimpan data gambat, sedangkan pada player MP3 digunakan untuk menyimpan file audio. Terdapat dua pilihan yang populer untuk implementasi modul flash memori yaitu kartu flash (flash card) dan drive flash (flash drive).

Kartu Flash
Salah satu cara untuk mengkonstruksi modul yang lebih besar adalah dengan memasang chip flash pada kartu kecil. Kartu flash semacam ini memiliki antar muka standar yang membuatnya dapat digunakan dalam berbagai produk. Suatu kartu chip dicolokkan ke dalam slot yang sesuai. Kartu flash memiliki berbagai ukuran memori. Ukuran yang umum adalah 8, 16, 32, 64, 128, 256, hingga 1Gbyte bahkan lebih.

Drive Flash
Modul memori flash yang lebih besar telah dikembangkan untuk menggantikan drive harddisk. Fakta bahwa drive flash adalah perangkat elektronik solid state yang tidak memiliki bagian yang dapat dipindahkan menghasilkan keuntungan penting. Perangkat tersebut memiliki waktu pencarian dan akses yang lebih singkat, sehingga menghasilkan respon yang lebih cepat. Drive tersebut memiliki konsumsi daya yang lebih rendah, yang menjadikannya atraktif untuk aplikasi yang diatur dengan batere, dan perangkat tersebut juga tidak sensitif terhadap goncangan. Kerugian drive flash dibandign drive harddisk adalah kapasitasnya yang lebih rendah dan biaya per bit yang lebih tinggi. Disk menyediakan biaya per bit yang jauh lebih rendah.
Kerugian lain adalah kemampuan flash memori akan menurun setalah ditulis berulang kali. Sedangkan pada harddisk, jumlah penulisan lebih tinggi, paling sedikit jutaan kali.

KONFIGURASI SISTEM OPERASI DAN MANAJEMEN MEMORI
Antara manajemen memori dan konfigurasi system operasi merupakan dua hal yang tidak bisa dipisahkan. Pada dasarnya pengkonfigurasian system operasi adalah mengatur pemanfaatan memori komputer yang ada. Dalam pengkonfigurasian system operasi dikenal dua bentuk memori yaitu :
1. Physical memory
2. Virtual memori
Phisycal memory adalah memori yang terdapat pada komputer secara fisik, yaitu berbentuk modul memori (RAM). Memori ini digunakan untuk mengolah data. Instruksi dan data yang akan ditampilkam ke layar monitor. Sedangkan virtual memori merupakan memori bayangan karena secara fisik memori ini tidak ada di mainboard komputer. Virtual memori merupakan memori yang dibentuk oleh system operasi dengan memanfaatkan sebagian kapasitas Hard Disk Drive.
Virtual memory dibuat oleh system operasi sesuai kebutuhan akan memori yang diperlukan oleh program aplikasi. Selanjutnya sistem operasi akan mengatur proses swapping data dan instruksi antara virtual memori dengan physical memori. Dalam proses multitasking ini keseluruhan memori (physical memori) akan digunakan untuk menjalankan program secara bersamaan. Jika memori tersebut kurang maka beberapa bagian kapasitas hard disk drive untuk dipergunakan sebagai virtual memory sebesar kekurangan memori yang ada .
Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swapout) dan diganti (swapin) oleh bagian disk yang diperlukan itu.
Sedangkan untuk physical memory, dalam penggunaannya membutuhkan pengaturan tersendiri. Physical memory akan dibagi menjadi beberapa bagian memori.

Conventional (base) memory
Conventional memory adalah 640 KB pertama dari seluruh kapasitas RAM pada komputer. Seluruh system operasi akan secara otomatis menggunakan memori ini sehingga memori ini tidak memerlukan pengaturan khusus. Memori inilah yang digunakan oleh system operasi.

UMA (Upper Memory Area)
UMA adalah memori sebesar 384 KB setelah memori konvensional. UMA digunakan oleh komputer untuk mendukung perangkat keras yang ada, seperti display adapter. Untuk pembagian 384 K upper memori:
- 128 K yang pertama disebut video ram dengan alamat A0000BFFFF
- 128 K berikutnya digunakan untuk adapter bios dengan alamat C0000DFFFF
- 128 K berikutnya digunakan untuk motherboard BIOs yang digunakan untuk POST dan boot strap leaders dengan alamat E0000FFFFF

Entended Memory (XMS)
Extended memory adalah memori komputer diatas MB. Sistem opersii Windows dan system aplikasi berbasis Windows dan system aplikasi berbasis Windows merupakan system yang membutuhkan memori ini.

High Memory Area (HMA)
HMA adalah 64 KB pertama dari XMS. Pada komputer dengan extended memory, setup system operasi bisa menempatkam system operasi(misalnya dos) pada high memory area. Dengan demikian akan menambah sisa ruang pada memori konvensional.

EXPANDED MEMORY (EMS)
Beberapa sistem aplikasi berbasis DOS tidak mampu menggunakan extended memory yang ada. Sistem aplikasi tersebut menggunakan kapasitas memori yang lebih tersebut dalam bentuk expanded memory. Untuk bisa mengakses expanded memory dibutuhkan expanded memory manajer seperti EMM386. Program akan menggunakan expanded memory sebesar 64Kbytes pada satu saat dan mengalamatkanya ke upper memory area yang disebut EMS page frame. Karena expanded memory manager memberi batas penggunaan expanded memory pada satu saat, maka penggunaan expanded memory menjadi lebih lambat dibandingkan dengan extended memory. Meskipun Windows dan sistem aplikasinya tidak membutuhkan expanded memory, namun Windows mampu mengemulasikan expanded memory untuk sistem aplikasi berbasis DOS. Itulah sebabnya beberapa sistem aplikasi berbasis DOS mampu berjalan normal di Windows.
Sebagaimana telah diuraikan di atas, bahwa untuk menggunakan memori memori yang ada tersebut dibutuhkan device driver untuk manajemen memori kecuali memori konvensional yang memang langsung bisa dipakai. Pengaturan device drive tersebut dilakukan oleh sistem operasi. Dengan demikian untuk bisa mengatur pemanfaatan memori, harus mengatur konfigurasi pada sistem informasi, yaitu dengan memanipulasi file konfigurasi sistem. Karena pengaturan memori tersebut akan digunakan sejak awal hingga akhir pengoperasian komputer, maka pengaturan sistem konfigurasi tersebut juga harus memungkinkan hal ini terjadi.

Memori map

Rangkuman Sejarah
Sekitar 1990, kemajuan sisitem operasi, seperti windows, muncul pada pasaran, saat itulah dimulainya persaingan RAM. Windows pertama dioperasikan pada PC dengan kapasitas memori yang dapat dialamati sebesar 2 MB, tetapi tidak lama kemudian memori berukuran 4 MB juga dapat dialamati dan kemudian menjadi standart saat itu. Perkembangan ini berlangsung selama tahun 90an, harga RAM pun semakin turun drastis.

TIPE RAM
RAM tipe lama adalah DRAM (dynamic RAM). Tipe yang lain adalah SRAM (static RAM). Kemudian DRAM diperbaharuhi kembali dengan menambah kecepatan selama beberapa mili detik. DRAM terdiri dari mikro kapasitor, sedangkan SRAM 512 K terdiri dari tombol off atau on. Oleh karena itu, SRAM dapat merespoan lebih cepat daripada DRAM. SRAM dapat digunakan dengan waktu yang cepat selama 4 ns. DRAM jauh lebih mudah untuk dibuat. Tipe DRAM lebih baru dan lebih cepat dikembangkan secara terus-menerus.
Berikut adalah tipe-tipe DRAM : ­
- FPM (Fast Page Mode) ­
- ECC (Error Correcting Code) ­
- EDO (Extended Data Output) ­
- SDRAM (Synchronous Dynamic RAM) ­
- RDRAM (Rambus Direct RAM) ­
- DDRRAM (Double Data Rate RAM)

Penjelasan singkat tipe DRAM
FPM adalah RAM model lama untuk PC sebelum EDO diperkenalkan. Dengan menggunakan modul SIMM (Single Inline Memory Module) 2, 4, 8, 16, atau 32 MB. Khususnya, ditemukan dalam versi 60 ns atau 70 ns. 60 ns paling cepat dan yang pertama digunakan. Pengguna komputer tidak dapat mencampur modul memori dengan kecepatan berbeda dalam satu motherboard yang sama.
EDO (Extended Data Out) RAM adalah perbaikan FPM RAM. Data dibaca lebih cepat. Data keluaran yang valid dari EDO memerlukan waktu yang lama.
Dengan perubahan dari FPM ke EDO, dapat diharapkan sebuah peningkatan hasil 25%. EDO RAM biasanya tersedia dalam versi 60 ns. Versi 50 ns tersedia dengan biaya yang lebih mahal.
Berikutnya, EDO digantikan oleh SDRAM (Synchronous DRAM), salah satu jenis DRAM yang operasinya disinkronisasikan langsung dengan sinyal clock. SDRAM muncul dipasaran dengan ukuran 64 bit (sepanjang 168 pin DIMMs).
SDRAM hanya mengakses 612 ns Pada frekuensi kerja 66 MHz. Kemudian muncul pula pada frekuensi kerja 100 dan 133 MHz.
Standar SDRAM melakukan operasi pada sisi sinyal clock tinggi. Tersedia perangkat memori serupa, yang mengakses sel array dengan cara yang sama, tetapi mentransfer data pada kedua sisi clock (saat kondisi tepi). Latency perangkat ini sama dengan standar DRAM. Tetapi karena mentransfer data pada kedua sisi clock, maka bandwidth perangkat tersebut pada dasarnya lipat dua untuk transfer burst panjang. Perangkat tersebut dikenal dengan nama double data rate SDRAM. DDR SDRAM (Double data rate SDRAM) adalah versi clock ganda SDRAM, yang mengganti SDRAM mulai 2001 hingga sekarang.
Normalnya suatu sistem komputer menggunakan 8 bit dalam satu byte. Pada beberapa tahun belakangan 1 bit ditambah sebagai keseimbangan, sehingga menjadi 9 bit dalam blok RAM. 1 bit tersebut digunakan untuk membuktikan transmisi yang benar atau digunakan sebagai pendeteksi kesalahan. Jika motherboard memerlukan modul 36 bit, sebenarnya modul yang digunakan adalah 32 bit.

RAM dan motherboard
Pada sistem board modern, RAM terpasang pada modul SIMM atau DIMM, sebelum DRAMs kecil sendiri digunakan. Biasanya ada ruang untuk 36 chips kecil pada sistem board. Sebenarnya, seorang pengguna telah dimudahkan untuk memasang memori RAM dengan mudah. SIPP modul pertama kali hadir. Modul ini mempunyai banyak pin, yang sesuai dengan pin yang ada pada motherboard. Sampai dengan SIMM modul muncul kemudian. Modul ini ada pada sebuah kartu, yang mempunyai sebuah edge connector. Modul ini menyesuaikan dengan soket pada motherboard, diharapkan semua orang dapat menginstallnya dengan mudah.

Kecepatan RAM
Satuan kecepatan RAM diukur dalam ns (nano seconds). Beberapa tahun lalu RAM muncul dengan kecepatan 120, 100 dan 80 ns. Sekarang ini, kecepatannya telah mencapai 6 ns dan terus bertambah cepat.

Peak Bandwidth
Pada tabel berikut dapat dilihat peak bandwidth secara maksimum dalam 3 tipe RAM.

SIMM RAM
SIMM (Single Inline Memory Modules) pertama dibuat dalam edisi 8 bit. Modul ini adalah kartu kecil dengan 1, 2 atau 4 MB RAM. Perangkat ini dihubungkan ke motherboard dengan penghubung 30 pin dan memiliki 8 bit. Ini berarti bahwa 16 bit prosesor (286 dan 386SX) membutuhkan 2 SIMMs dalam satu pasang. Jadi, tersedia ruangan untuk 2 modul yang juga disebut sebagai sebuah bank.
Prosesor 32 bit (386DX dan 486) membutuhkan 4 SIMMs kecil 8 bit dalam sebuah bank. Tentu saja lebar banknya 32 bit. Khusus pada generasi pertama 486 motherboard, pengguna dapat menginstal 4 X 1 MB, 4 X 2 MB, atau 4 X 4 MB pada setiap bank.

32 bit modules
Dengan munculnya prosesor 486, diperlukan modul RAM yang lebih baik. Kemudian muncul modul terbesar yaitu 32 bit dalam penggunaannya. Sebuah motherboard 486 masih mempunyai soket 4 SIMM, tetapi modul yang lebarnya 32 bit muncul, modul tersebut dapat dipasang dalam waktu yang tidak terlalu lama. Hal itu sudah menjadi keunggulan saat itu.
Pengguna dapat menambah tipe modul yang berbeda dan masih menggunakan barang yang lama. Sejak motherboard 486 dijalankan hanya pada 33 Mhz pada sistem bus, kualitas modul RAM tidak terlalu buruk. Pengguna bahkan dapat mencampur 60 ns dan 70 ns yang berbeda jenis tanpa masalah. Pada gambar berikut terlihat sepasang modul SIMM. Pada ukuran 64 bit ( 168 pin). Kemudian ukuran 32 bit dengan 72 pin penghubung. Dibawah ini modul 8 bit dengan pin penghubung :
- 64bit SDRAM
- 32bit DRAM 16bit
- DRAM

Pentium motherboard dengan SIMMs
Pada pentium motherboard, sistem bus lebarnya 64 bit. Oleh karena itu, SIMMs 32 bit diinstal dalam satu pasang. Sejak motherboard umumnya hanya mempunyai dua tepi dengan jumlah 4 SIMM soket, kemungkinan perkembangan RAM dibatasi.

Catatan :
Modul kecepatan RAM yang berbeda tidak pernah dapat digunakan pada satu Pentium motherboard. Semua modul harus mempunyai kecepatan yang sama. Pada tabel berikut dapat terlihat konfigurasi pada Pentium motherboard yang lama dengan 4 SIMM socket.

DIMMs
RAM tipe modern paling banyak digunakan, SDRAM yang dibuat dalam modul yang lebarnya 64 bit disebut DIMMs (Dual Inline Memory Module).
Modul tersebut mempunyai sebuah panghubung sebanyak 168 pin edge connector.
Keuntungan meningkatkan kecepatan SDRAM menyediakan peningkatan kecepatan sistem Bus. Dengan 60 ns EDORAM, dapat dijalankan dengan kecepatan maksimum 75 MHz pada sistem bus. Kecepatan SDRAM dapat meningkat sampai 133 MHz.
Kebanyakan chipset dibuat untuk SDRAM. Beberapa motherboard mempunyai kedua SIMM dan DIMM sockets. Memberi pilihan pada pengguna komputer untuk dapat menggunakan kembali EDO RAM dalam SIMM sockets, atau memilih menginstall SDRAM dalam DIMM socket. Kedua modul tersebut tidak dirancang untuk mencampur tipe RAM walaupun bekerja pada board yang sama.
Diatas : 64 MB DIMMmodule mempunyai 32 chips setiap 16 Mbit (32 X 16 Mbit / 8 bit = 64 MB).

PC133
PC133 RAM dijalankan pada 133 MHz adalah versi terakhir dari SDRAM. Spesifikasinya dibuat oleh VIA, Micron, NEC, Samsung, SIS, Acer Labs dan vendor lainnya. Produksi pertama (dari Corsair, June 1999) menggunakan ukuran kecepatan 7.5 ns RAM dari micron.

Model intelligent Rambus
Performa memori dinamik ditentukan dengan latensi dan bandwidthnya. Karena semua chip memori dinamik menggunakan organisasi yang serupa untuk array selnya, maka latensi cenderung mirip jika chip diproduksi menggunakan proses fabrikasi yang sama. Sebaliknya, bandwidth efektif sistem memori tergantung tidak hanya pada struktur chip memori, tetapi juga pada sifat jalur penghubung ke prosessor. DDR SDRAM dan SDRAM standar dihubungkan ke bus prosessor. Sehingga kecepatan transfer bukan hanya fungsikecepatan perangkat memori – juga tergantung pada kecepatan bus. Bus diclock pada 133 MHz memungkinkan paling banyak satu transfer setiap 7,5 ns, atau dua transfer jika kedua sisin clock digunakan. Satu-satunya cara untuk meningkatkan jumlah data yang dapat ditransfer pada bus berkecepatan terbatas adalah untuk meningkatkan lebar bus dengan menyediakan lebih banyak jalur data, sehingga memperlebar bus.
Bus yang sangat lebar banyak dan memerlukan banyak ruang di motherboard. Pendekatan alternatif adalah mengimplementasikan bus sempit yang lebih cepat. Pendekatan ini digunakan oleh Rambus Inc. Untuk mengembangkan desain proprierty yang disebut Rambus. Fitur utama teknologi Rambus adalah metode signalling cepat yang digunakan untuk mentransfer informasi antar chip. Sebagai pengganti penggunaan sinyal yang memiliki level tegangan 0 atau Vsupply untuk menyatakan nilai logika, maka sinyal tersebut terdiri dari ayunan tegangan yang lebih kecil disekitar tegangan referensi Vref. Tegangan referensi adalah sekitar 2V, dan dua nilai logika dinyatakan dengan ayunan 0,3V diatas dan dibawah Vref, Tipe signalling ini biasanya dikenal sebagai signalling diferensial. Ayunan tegangan kecil memungkinkan waktu transisi singkat, sehingga memungkinkan transmisi kecepatan tinggi.
Signalling diferensial dan kecepatan transmisi tinggi memerlukan teknik khusus untuk desain koneksi kabel yang berfungsi sebagai link komunikasi. Persyaratan ini mempersulit pembuatan bus lebar. Juga perlu mendesain antar muka sirkuit khusus untuk menangani sinyal diferensial. Rambus menyediakan spesifikasi lengkap untuk desain link komunikasi, disebut saluran Rambus. Desain Rambus saat ini memungkinkan frekuensi clock 400MHz. Lagipula, data ditransmisikan pada kedua sisi, sehingga kecepatan transfer data efektif adalah 800MHz.
Rambus memerlukan chip memori yang didesain secara khusus. Chip ini menggunakan array sel berbasis pada teknologi DRAM standar. Banyak bank array sel digunakan untuk mengakses lebih dari satu word pada satu waktu. Sirkuti yang diperlukan untuk antar muka ke saluran Rambus disertakan pada chip. Chip semacam itu dikenal sebagai Rambus DRAM (RDRAM).
Spesifikasi asli Rambus disediakan untuk saluran yang terdiri dari 9 jalur data dan sejumlah jalur kontrol dan supply daya. Delapan jalur dimaksudkan untuk mentransfer byte data. Jalur data kesembilan dapat digunakan untuk tujuan seperti pemeriksaan paritas. Spesifikasi selanjutnya memungkinkan saluran tambahan. Rambus duasaluran, juga disebut Direct RDRAM, memiliki 18 jalur data yang dimaksudkan untuk mentransfer dua byte data pada satu waktu. Tidak ada jalur alamat terpisah. Komunikasi antara prosessor, atau beberapa perangkat lain yang dapat berfungsi sebagai master, dan modul RDRAM, yang berfungsi sebagai slave, dilakukan dengan menggunakan paket yang ditransmisikan pada jalur data. Terdapat tiga paket: request, acknowledge, dan data. Paket request dikeluarkan oleh master mengindikasikan tipe operasi yang akan dilakukan . Paket tersebut berisi alamat lokasi memori yang diinginkan dan menyertakan 8bit count yang menyatakan jumlah byte yang terlibat di dalam transfer. Tipe operasi tersebut menyertakan baca dan tulis memori, dan juga membaca dan menulis berbagai register kontrol dalam chip RDRAM. Pada saat master menyatakan paket request, slave yang dituju merespon dengan mengembalikan paket acknowledge positif jika dapat memenuhi request tersebut dengan segera. Sebaliknya, slave mengindikasikan bahwa dia ”sibuk” dengan mengembalikan paket acknowledge negatif, dalam hal ini master akan mencoba lagi.
Jumlah bit dalam paket request melebihi jumlah jalur data, yang berarti bahwa beberapa clock cycle diperlukan untuk mentransmisikan seluruh paket. Penggunaan link komunikasi narrow dikompensasi dengan transmisi kecepatan sangat tinggi.
Chip RDRAM dapat diassemble emnjadi mosul yang lebih besar, mirip dengan SIMM dan DIMM. Modul semacam itu disebut RIMM, dapat menyimpan 16RDRAM.
Teknologi Rambus bersaing langsung dengan teknologi DDR SDRAM. Masing-masing memiliki keuntungan dan kerugian tertentu. Pertimbangan non teknis adalah spesifikasi DDR SDRAM merupakan open standard, sedangkan RDRAM adalah desain propierty dari Rambus Inc. Sehingga produsen chip harus membayar royalti. Akhirnya kita harus memperhatikan bahwa dalam pasar memori, dengan asumsi bahwa performa memadai, maka faktor penentu adalah harga komponen. Lebar modul RIMM hanya 16 bit dibanding SDRAM DIMMs yang lama 64 bit, tetapi RIMM bekerja pada frekuensi clock yang lebih tinggi.
RIMM mempunyai chip power control yang dapat dimatikan menjadi tidak dapat digunakan. RIMM dapat juga mengurangi kecepatan memori jika sensor termal terlalu panas.
Chip RDRAM ditempatkan di tempat tertutup pada CPU untuk mengurangi radio noise. Menunjukkan, bahwa teknologi RIMM lebih sensitive terhadap gangguan dibanding tipe RAM yang lain.

Perbandingan bandwidth
Di bawah ini dapat dilihat bandwidth ideal pada tipe RAM yang berbeda. CPU dan unit lain tidak dapat membaca data pada kecepatan itu; mereka menunggu beberapa putaran clock diantara setiap pembacaan sebelum memulai transfer data. Sama seperti DDR RAM.