Memori
dengan komputer memiliki hubungan yang tak dapat dipisahkan, karena setiap
komputer memerlukan memori sebagai tempat kerjanya. Memori ini dapat berfungsi
untuk memuat program dan juga sebagai tempat untuk menampung hasil proses.
Yang
perlu kita perhatikan bahwa memori untuk menyimpan program maupun hasil dari
pekerjaan bersifat volatile yang berarti bahwa data yang disimpan cuma sebatas
adanya aliran listrik. Jadi bila listrik mati maka hilang pulalah semua data
yang ada di dalamnya. Hal ini mengakibatkan diperlukannya media penyimpan kedua
yang biasanya berupa disket maupun hard disk.
Pada
IBM-PC terdapat suatu bagian penting yang disebut microprocessor atau yang
sering disebut processor saja. Processor ini berfungsi untuk menangani
keseluruhan dari kerja komputer kita. Pada processor inilah segala hal yang
berhubungan dengan kerja komputer diatur dan dibagi prioritasnya dengan baik
agar tidak terjadi kesalahan yang kemudian akan menyebabkan kacaunya informasi
yang diperoleh.
Lama
kelamaan tugas komputer tentu saja makin bertambah baik dari segi kuantitas
maupun kerumitannya. Sejalan dengan itu processor juga makin dikembangkan.
Processor yang baru sebenarnya hanyalah perbaikan dan pengembangan dari yang
versi lama sehingga semua instruksi yang berlaku di processor lama dapat pula
dikerjakan oleh yang baru dengan tentu saja beberapa keunggulan.
Adapun
processor yang kini banyak beredar di pasaran :
ĂĽ 8088
& 8086 :
Ini
merupakan processor IBM-PC yang pertama sekali atau yang sering disebut XT. Processor 8088 menggunakan jalur bus
data 8 bit sedangkan 8086 menggunakan 16 bit. Perbedaan jalur bus ini
menyebabkan perbedaan jumlah data yang dikirim pada satu saat dan secara
langsung mengakibatkan speed 8086 berada di atas 8088. Baik 8088 maupun 8086
mampu mengalamatkan memori hingga 1 MB.
ĂĽ 80286
:
Versi
pengembangan dari 8086. Pada 80286 ini beberapa instruksi baru ditambahkan.
Selain itu dengan jalur bus yang sama dengan 8086, 80286 dirancang mempunyai
speed di atas 8086. Selain itu 80286 dapat bekerja pada 2 mode yaitu mode real dan protected.
Mode
real pada 80286 dapat beroperasi sama seperti 8088 dan 8086 hanya terdapat
perbedaan dalam hal speed. Mode real ini dimaksudkan agar semua software yang
dapat dioperasikan pada 8088/8086 dapat pula dioperasikan dengan baik di 80286.
Pada mode protected 80286 mampu mengalamatkan sampai 16 MB memori.
ĂĽ 80386
:
Processor
80386 merupakan sesuatu yang sangat baru dibanding 80286 sebab bus data yang
digunakan di sini sudah 32 bit sehingga speednya juga jauh di atas 80286.
Selain itu pada 80386 ditambahkan pula sebuah mode pemrograman baru yaitu mode
virtual. Pada mode virtual ini 80386 mampu mengalamatkan sampai 4 GB memori.
Sama seperti 80286, mode real dimaksudkan untuk kompatibilitas dengan 8088/8086
dan mode protected untuk menjaga kompatibilitas dengan 80286.
Organisasi Memori Pada PC
Memori
yang ada pada komputer perlu diatur sedemikian rupa sehingga mudah dalam
pengaksesannya. Oleh sebab itu dikembangkanlah suatu metode yang efektif dalam
pengorganisasiannya. Pada bagian ini akan dibahas mengenai pengorganisasian
memori ini.
Pembagian Memori
Memori
komputer terbagi atas 16 blok dengan fungsi-fungsi khusus yang sebagian besar
adalah sebagai RAM (Random Access Memory) yang berfungsi sebagai penyimpan bagi
hasil pengolahan pada komputer itu sendiri. Untuk lebih jelasnya diberikan
pembagian fungsi pada blok memori ini secara kasar pada gambar 2.1.
BLOCK |
FUNGSI
|
0
|
RAM
|
1
|
RAM
|
2
|
RAM
|
3
|
RAM
|
4
|
RAM
|
5
|
RAM
|
6
|
RAM
|
7
|
RAM
|
8
|
RAM
|
9
|
RAM
|
A
|
EXTENDED
VIDEO MEMORY
|
B
|
EXTENDED
VIDEO MEMORY
|
C
|
PERLUASAN
ROM
|
D
|
FUNGSI
LAIN
|
E
|
FUNGSI
LAIN
|
F
|
BIOS
& BASIC
|
Gambar 2.1. Pembagian Blok Memori IBM PC
Pengalamatan Memori Dengan Segment
Offset
Sudah
kita bahas bersama bahwa baik 8086 maupun mode real 80286 dapat mengalamatkan
sampai 1 MB memori. Tetapi sebenarnya baik 8086 maupun 80286 adalah procesor 16
bit. Banyaknya memori yang dapat dicatat atau dialamatkan oleh procesor 16 bit
adalah maksimal 216 byte (=64 KB). Jadi bagaimana 8086 dan mode real 80286
mampu mengalamatkan sampai 1 MB memori ?.
Hal
ini dapat dimungkinkan dengan adanya pengalamatan yang menggunakan sistem 20
bit walaupun sebenarnya procesor itu hanya 16 bit. Dengan cara ini dapat
dialamatkan 220 byte (=1 MB) memori. Tetapi masih tetap ada satu kendala dalam
pengalamatan 20 bit ini. Yaitu bahwa sesuai dengan tipenya procesor ini hanya
mampu mengakses 16 bit data pada satu kali akses time. Sebagai pemecahannya
dikembangkanlah suatu metode pengalamatan 20 bit yang dimasukkan ke dalam
format 16 bit.
Pada
metode pengalamatan ini baik 8086 maupun mode real 80286 membagi ruang memori
ke dalam segmen-segmen di mana besar 1 segmen adalah 64 KB (=216 byte). Jadi
pada segmen 0000h(Tanda "h" menunjukkan hexadesimal) terdapat 64 KB
data, demikian pula dengan segmen 0001h dan seterusnya.
Sekarang
bagaimana caranya agar setiap data yang tersimpan dalam satu segmen yang
besarnya 64 KB itu dapat diakses secara individual. Cara yang dikembangkan
adalah dengan membagi-bagi setiap segmen menjadi bagian-bagian yang disebut
offset. Dalam satu segmen terdapat 216 offset yang diberi nomor dari 0000h
sampai FFFFh. Nomor offset selalu diukur relatif dari awal suatu segmen.
Sekarang
kita lihat bagaimana sebenarnya letak suatu segmen dalam memori komputer kita.
Segmen 0000h berawal dari lokasi memori 0 hingga 65535 ( 64 KB). Segmen 0001h
berawal dari lokasi memori 16 (0010h) hingga 65551 (65535 + 16). Segmen 0002h
berawal dari lokasi 32 hingga 65567. Demikian seterusnya.
Kita
lihat bahwa sistem penempatan segmen semacam ini akan menyebabkan terjadinya
overlapping (tumpang-tindih) di mana lokasi offset 0010h bagi segmen 0000h akan merupakan offset 0000h bagi
segmen 0001h. Demikian pula offset 0011h bagi segmen 0000h akan merupakan
offset 0001h bagi segmen 0001h. Dalam pembahasan selanjutnya akan kita lihat
bahwa ada banyak nilai segmen:offset yang dapat digunakan untuk menyatakan
suatu alamat memori tertentu disebabkan adanya overlapping ini. Untuk lebih
jelasnya dapat kita lihat pada gambar 2.2.
Segmen Offset
0000
+------------------------------ +
0000
| |
0001 + ---- +------------------- +0000 | 0016
| | |
0002 +------- +--------------- +
0000 | 0016 | 0032
| | | |
0003+------- +-------------- +0000 | 0016 |
0032 | 0048
| | | | |
| | : : :
| : : : :
| : | | |
| | | +-------- +65535
: | | |
: | +-------- +65535
| | |
| +-------- + 65535
| |
+---------------------- +
65535
Gambar 2.2. Peta Overlapping Segmen
Konversi Alamat
Alamat
yang menggunakan sistem segmen:offset ini disebut sebagai alamat relatif karena
sifat offset yang relatif terhadap segmen. Sedangkan alamat memori yang
sebenarnya disebut alamat absolut. Berikut kita lihat cara pengkonversian
alamat relatif ke absolut.
Pengkonversian
dapat dilakukan dengan menggeser nilai segmen 4 bit ke kiri dan kemudian
dijumlahkan dengan nilai offset. Atau yang lebih sederhana adalah dengan mengalikan
nilai segmen dengan 24 (=10h) dan kemudian dijumlahkan dengan nilai offset.
Cara ini dikembangkan dari besarnya selisih segmen yang satu dengan yang
berikutnya yang sebesar 16 bit (=10h).
Alamat
relatif : 1357h:2468h 1356h:2478h
13570
13560
2468
2478
-------
-------
Alamat
absolut : 159D8h 159D8h
Pada
kedua contoh di atas terlihat jelas alamat relatif 1357h:2468h sebenarnya
menunjukkan lokasi yang sama dalam memori dengan alamat relatif 1356h:2478h
yang disebut overlapping. Alamat
yang overlapping ini menyebabkan sebuah alamat absolute dapat dinyatakan dengan
alamat segmen:offset yang bervariasi sebanyak 2 pangkat 12 atau sebanyak 4096 variasi.
Variasi
untuk alamat absolute :
0 -
15 dapat dinyatakan dengan 1 variasi
16 -
31 dapat dinyatakan dengan 2 variasi
32 -
48 dapat dinyatakan dengan 3 variasi
65520
keatas dapat dinyatakan dengan 4096 variasi.