Anda di halaman 1dari 16

Cache Memory dan Pipeline

Adam Akbar (0811 501 303)


Heri Jumain (0811 502 418)
Andri Yansyah (0811 504 950)
Pendahuluan
Semakin berkembangnya teknologi serta kebutuhan manusia untuk me-
mecahkan tantangan alam yang ada, komputer memberikan andil yang cukup
besar dalam hal itu, dengan dasar “Hal apa yang dapat dikomputasikan?”
membuat banyak ilmuwan bekerja untuk membuat komputer yang cepat dan
dapat diandalkan, karena dengan perhitungan yang tepat serta dibantu ki-
nerja komputer banyak pertanyaan- pertanyaan yang dapat di jawab. Cache
Memory dan Pipeline sebagai salah satu contoh teknologi yang digunakan
untuk meningkatkan kinerja komputer.
Cache Memory salah satu ide kreatif yang datang pada saat kecepatan
pada memori utama tidak dapat menyandingakan dengan kecepatan pemro-
ses, dengan adanya cache pemroses tidak harus mengambil informasi yang
dibutuhkan pada memori utama terus menerus, namun dapat diambil dari
cache, sedangkan Pipeline membuat kinerja pemroses menjadi tinggi, dengan
memanfaatkan idle time pada pemroses untuk mengeksekusi proses-proses
yang harus berjalan.

1
1 Cache Memory
1.1 Penjelasan Umum
Sebuah prosesor komputer sangat cepat dan secara konstan membaca infor-
masi dari memori, namun karena kecepatan memori lebih lambat daripada
prosesor, sering kali prosesor harus menunggu untuk mendapatkan informasi
dari memori. Beranjak dari hal tersebut cache memory diciptakan untuk
mengurangi kesenjangan antara kecepatan prosesor dan kecepatan memo-
ri utama, cache memory berukuran kecil, bersifat sementara, memori yang
berbasiskan SRAM berukuran kecil, namun mempunyai kecepatan yang baik
(waktu akses relatif lebih cepat 5-10 kali dari memori utama) dan berisi sega-
la informasi yang dibutuhkan prosesor, tujuan utama cache memory untuk
mengurangi waktu pengaksesan memori dalam pencarian informasi.
Cache memory bekerja dengan mengambil beberapa informasi dari me-
mori utama yang sering digunakan, menempatkan secara acak lalu prosesor
dapat mengambil informasi dari cache memory, lokasi informasi pada cache
memory tiap bloknya tergantung 2 hal: cache mapping policy dan ukuran
cache. Ukuran dari cache memory sangat beragam, biasanya untuk level 2
(L2) berukuran 256K sampai 2M, level 1 (L1) lebih kecil dari L2 sekitar 8K
atau 16K. L1 cache berada didalam prosesor dan L2 terletak antara prosesor
dam memori utama.
Dalam mekanisme kerjanya, data yang akan diproses oleh prosesor, per-
tama kali dicari di L1 cache, bila tidak ada maka akan diambil dari L2 Cache,
kemudian dicari di L3 Cache (Jika diimplementasikan). 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 da-
ta 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) di-
simpan 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, kapa-
sitas cache memory yang lebih besar dapat membantu memperbaiki kinerja
prosesor, setidak-tidaknya mempersingkat waktu yang diperlukan dalam pro-
ses mengakses data.
Semua cache mengikuti model berikut, memori utama dibagi menjadi
fixed-size blok disebut cache lines, setiap cache line biasanya terdiri dari 4

2
sampai 64 byte yang berurutan, cache line dimulai penghitungan dari 0, jadi
jika ukuran line 32-byte maka line 0 adalah byte 0 sampai 31, line 1 ada-
lah byte 32 sampai 63 dan seterusnya, beberapa line sudah berada di cache,
ketika prosesor mencari informasi pada cache memory lalu cache controller
memeriksa apakah informasi tersebut ada pada cache jika iya, maka pro-
sesor langsung mengambil informasi tersebut, namun jika tidak ditemukan
maka entry line pada cache akan dihilangkan dan mencari informasi serta
mengambilnya pada memori utama atau pada cache yang lebih rendah.
Cache dikenal juga dengan content addressable memory karena untuk
mengakses cache dengan mencari apakah informasi yang diinginkan ada pa-
da cache jika informasi tersebut ada maka itu disebut cache hit namun jika
informasi yang diinginkan tidak ada maka disebut cache miss, untuk memu-
dahkan proses pencarian beberapa algoritma telah dikembangkan.

1.2 Kapasitas Cache


Menentukan ukuran memori cache sangatlah penting untuk mendongkrak ki-
nerja komputer. Dari segi harga cache sangatlah mahal tidak seperti memori
utama. Semakin besar kapasitas cache tidak berarti semakin cepat proses-
nya, dengan ukuran besar akan terlalu banya gate pengalamatannya sehingga
akan memperlambat proses. Kita bisa melihat beberapa merek prosesor di
pasaran beberapa waktu lalu. AMD mengeluarkan prosesor K5 dan K6 de-
ngan cache yang besar (1MB) tetapi kinerjanya tidak bagus. Kemudian Intel
pernah mengeluarkan prosesor tanpa cache untuk alasan harga yang murah,
yaitu seri Intel Celeron pada tahun 1998-an hasil kinerjanya sangat buruk
terutama untuk operasi data besar, floating point, 3D. Intel Celeron versi
berikutnya sudah ditambah cache sekitar 128KB. Lalu berapa idealnya ka-
pasitas cache? Sejumlah penelitian telah menganjurkan bahwa ukuran cache
antara 1KB dan 512KB akan lebih optimum.

1.3 Ukuran Blok


Elemen rancangan yang harus diperhatikan lagi adalah ukuran blok. Telah
dijelaskan adanya sifat lokalitas referensi maka nilai ukuran blok sangatlah
penting. Apabila blok berukuran besar ditransfer ke cache akan menyebabk-
an hit ratio mengalami penurunan karena banyaknya data yang dikirim dise-
kitar referensi. Tetapi apabila terlalu kecil, dimungkinkan memori yang akan
dibutuhkan CPU tidak tercakup. Apabila blok berukuran besar ditransfer
ke cache, maka akan terjadi :

• Blok - blok yang berukuran lebih besar mengurangi jumlah blok yang

3
menempati cache. Karena isi cache sebelumnya akan ditindih.

• Dengan meningkatnya ukuran blok maka jarak setiap word tambahan


menjadi lebih jauh dari word yang diminta, sehingga menjadi lebih
kecil kemungkinannya digunakan cepat.

Hubungan antara ukuran blok dan hit ratio sangat rumit untuk dirumusk-
an, tergantung pada karakteristik lokalitas programnya dan tidak terdapat
nilai optimum yang pasti telah ditemukan. Ukuran antara 4 hingga 8 satuan
yang dapat dialamati (word atau byte) cukup beralasan untuk mendekati
nilai optimum.

1.4 Jumlah Cache


Sebelumnya kita sudah membahas tentang L1 dan L2 dimana itu sebagai
level cache, pada sesi ini akan dibahasa secara dalam tentang jumlah cache.

1.4.1 Cache 1 Level


Memori yang bernama L1 Cache ini adalah memori yang terletak paling dekat
dengan prosesor (lebih spesifik lagi, dekat dengan blok CU [Control Unit]).
Penempatan Cache di prosesor dikembangkan sejak PC i486. Memori di ting-
kat ini memiliki kapasitas yang paling kecil, tetapi memiliki kecepatan akses
dalam hitungan nanodetik (sepermilyar detik). Data yang berada di memori
ini adalah data yang paling penting dan paling sering diakses. Biasanya data
di sini adalah data yang telah diatur melalui OS (Operating System) menja-
di Prioritas Tertinggi (High Priority). L1 Cache berbasis SRAM dan tidak
membutuhkan refresh cycles, biasanya L1 Cache terbagi menjadi 2 untuk
kode instruksi dan sisanya untuk informasi yang dibutuhkan prosesor.

Main
CPU Memory
Cache

Gambar 1: Arsitektur L1 Cache

4
1.4.2 Cache 2 Level
Penambahan dengan L2 Cache membuat prosesor menjadi lebih cepat, Me-
mori L2 Cache ini terletak terletak di MotherBoard (lebih spesifik lagi, modul
COAST : Cache On A Stick. Bentuk khusus dari L2 yang mirip seperti Me-
mory Module yang dapat diganti-ganti tergantung jenis Motherboard ). Akan
tetapi ada juga yang terintegrasi langsung dengan MotherBoard, atau juga
ada yang terintergrasi dengan Processor Module. Di L2 Cache ini, kapa-
sitasnya lebih besar dari pada L1 Cache. Ukurannya berkisar antara 256K
sampai 2M. Biasanya, L2 Cache yang besar diperlukan di Motherboard untuk
Server. Kecepatan akses sekitar 10ns (nano second ).

Main
Memory
CPU
Cache

Gambar 2: Arsitektur L2 Cache

1.4.3 Cache 3 Level


L3 Cache dibuat dengan tujuan untuk meningkatkan kecepatan, L3 Cache
datang untuk membantu konerja multi-CPU dengan adanya L1 dan L2 Cache
pada tiap prosesor dan L3 sebagai pembantu L2 dengan memberikan feed,
kecepatan L3 Cache lebih rendah dari L2 namun dengan kapasitas yang lebih
besar.

Core Core Core

L2 L2 L2

L3 Cache

Gambar 3: Arsitektur L3 Cache

5
1.5 Skema Pemetaan Cache
Agar dapat bekerja secara baik, cache harus menyimpan data, namun data
tersebut tidak akan berguna jika prosesor tidak dapat mencarinya alamat
pada memori utama berbeda dengan alamat pada cache, agar prosesor da-
pat mengenali alamat tersebut prosesor menggunakan skema pemetaan yang
“merubah” alamat pada memori utama ke lokasi cache.
Sebelum membahas berbagai pemetaan ada baiknya membahas bagai-
mana data disalin dari memori utama, memori utama dan cache memory
dibagi menjadi ukuran blok yang sama, pada saat alamat memori dimuat
cache mencari apakah word yang dibutuhkan ada di cache jika tidak dite-
mukan maka cache akan menyalin seluruh blok pada memori utama yang
terdapat word tersebut.

1.5.1 Pemetaan Langsung


Skema yang paling dasar untuk mengalokasikan cache, teknik ini memetakan
blok memori utama hanya kesebuah saluran cache saja.

Cache Main
Blok 1 Blok 1

Blok 2 Blok 2

Blok 3 Blok 3

Blok 4 Blok 4

Blok 5 Blok 5

Blok 6 Blok 6

Blok 7

Blok 8

Gambar 4: Skema Pemetaan Langsung

6
i = j mod m
m = 2r
Dimana :
i = nomor saluran cache
j = nomor blok memori utama
m = jumlah saluran yang terdapat dalam cache
Fungsi pemetaan diimplementasikan dengan menggunakan alamat, yang ter-
diri dari tiga field (tag, line dan word ) lihat gambar dibawah.
w = word, adalah bit paling kurang berarti yang mengidentifikasikan word
atau byte unik dalam blok memori utama.
s = byte sisa word yang menspesifikasi salah satu dari 2s blok memori
utama. Cache logik menginterpretasikan bit - bit s sebagai suatu tag
s r bit (bagian paling berarti dalam alamat) dan field saluran r bit.

Gambar 5: Skema Lengkap Pemetaan Langsung

Teknik pemetaan ini sederhana dan mudah diimplementasikan, namun


kelemahannya adalah terdapat lokasi cache yang tetap bagi sembarang blok
- blok yang diketahui. Dengan demikian, apabila suatu program berulang
- ulang melakukan word referensi dari dua blok yang berbeda memetakan
saluran yang sama maka blok - blok itu secara terus - menerus akan di-swap
ke dalam cache sehingga hit rasionya akan rendah.

7
1.5.2 Pemetaan Asosiatif
Pemetaan langsung tidak terlalu mahal dengan teknik lainnya karena tidak
dubuhtkan mencari di memori, tiap blok memori utama mempunyai lokasi
yang spesifik, pada saat alamat memori utama diubah menjadi alamat cache,
prosesor mengetehui dengan jelas posisi dimana dia dapat informasi yang
dibutuhkan tanpa harus mencari.
Pemetaan asosiatif mengatasi kekurangan pemetaan langsung dengan ca-
ra setiap blok memori utama dapat dimuat ke sembarang saluran cache.
Alamat memori utama diinterpretasikan dalam field tag dan field word oleh
kontrol logika cache. Tag secara unik mengidentifikasi sebuah blok memori
utama.
Mekanisme untuk mengetahui suatu blok dalam cache dengan memerik-
sa setiap tag saluran cache oleh kontrol logika cache. Dengan pemetaan ini
didapat fleksibilitas dalam penggantian blok baru yang ditempatkan dalam
cache. Algoritma penggantian dirancang untuk memaksimalkan hit ratio,
yang pada pemetaan langsung terdapat kelemahan dalam bagian ini. Ke-
kurangan pemetaan asosiatif adalah kompleksitas rangkaian sehingga mahal
secara ekonomi.

Gambar 6: Skema Lengkap Pemetaan Asosiatif

Pada pemetaan langsung, jika suatu blok telah menempati lokasi sebuah
cache dan ada blok lain yang akan mengisi lokasi tersebut, blok yang lama
akan dihilangkan (dapat juga dikembalikan ke memori utama jika telah dimo-
difikasi jika tidak akan segara dihilangkan). Dengan menggunakan pemetaan
asosiatif, pada saat cache penuh dibutuhkan algoritma untuk menempatkan
lokasi cache dan juga blok yang akan ditempatkan, algoritma yang sederhana

8
seperti First-in First-out (FIFO) dapat bekerja pada pemetaan asosiatif, de-
ngan algoritma lain seperti least-recently used (LRU) juga dapat digunakan.

11 bits 3 bits

Tag Word

14 bits

Gambar 7: Format Alamat Pemetaan Asosiatif

1.5.3 Pemetaan Asosiatif Set


Karena kecepatan dan kompleksnya teknik ini, pemetaan asosiatif set sangat
mahal, meskipun pemetaan langsung murah namun banyak kekurangan pada
teknik tersebut, teknik ketiga ini menggabungkan kedua teknik sebelumnya,
skema ini mirip dengan pemetaan langsung dengan menggunakan alamat
pada memori utama untuk menempatkan blok-blok pada cache, perbedaan
yang penting dari pemetaan langsung adalah memetakan sebuah alamat de-
ngan kumpulan blok daripada memetakan hanya satu blok, kumpulan blok
tersebut harus mempunyai ukuran yang sama.
Pada pemetaan asosiatif set, alamat memori utama terbagi menjadi 3
buah, tag, set dan word field. Tag dan word mempunyai peran yang sa-
ma sebelumnya dan set field mengindikasikan kemana kumpulan blok akan
ditempatkan.

8 bits 3 bits 3 bits

Tag Set Word

14 bits

Gambar 8: Format Alamat Pemetaan Asosiatif Set

Dalam pemetaan asosiatif set, cache dibagi dalam v buah set, yang masing-
masing terdiri dari k saluran. Hubungan yang terjadi adalah :

m = vxk

i = j modulus v dan v = 2d dimana :

9
i = nomer set cache

j = nomer blok memori utama

m = jumlah saluran pada cache

gambar dibawah menjelaskan contoh yang menggunakan pemetaan aso-


siatif set dengan dua saluran pada masing-masing set, yang dikenal sebagai
asosiatif set dua arah. Nomor set mengidentifikasi set unik dua saluran di
dalam cache. Nomor set ini juga memberikan jumlah blok di dalam me-
mori utama, modulus 2. Jumlah blok menentukan pemetaan blok terhadap
saluran. Sehingga blok-blok 000000, 00A000,,FF1000 pada memori utama
dipetakan terhadap set 0 cache. Sembarang blok tersebut dapat dimuatkan
ke salah satu dari kedua saluran di dalam set. Perlu dicatat bahwa tidak
terdapat dua blok yang memetakannya terhadap set cache yang sama me-
miliki nomor tag yang sama. Untuk operasi read, nomor set dipakai untuk
menentukan set dua saluran yang akan diuji. Kedua saluran di dalam set
diuji untuk mendapatkan yang cocok dengan nomor tag alamat yang akan
diakses. Penggunaan dua saluran per set (v = m/2, k = 2), merupakan
organisasi asosiatif set yang paling umum. Teknik ini sangat meningkatkan
hit ratio dibandingkan dengan pemetaan langsung. Asosiatif set empat arah
(v = m/4, k = 4) memberikan peningkatan tambahan yang layak dengan
penambahan harga yang relatif rendah. Peningkatan lebih lanjut jumlah
saluran per set hanya memiliki efek yang sedikit.

10
2 Pipeline
2.1 Penjelasan Umum
Teknologi pipeline yang digunakan pada komputer bertujuan untuk mening-
katkan kinerja dari komputer. Secara sederhana, pipeline adalah suatu cara
yang digunakan untuk melakukan sejumlah kerja secara bersamaan tetapi
dalam tahap yang berbeda yang dialirkan secara kontiniu pada unit pemro-
sesan. Dengan cara ini, maka unit pemroses selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sis-
tem komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sam-
pai pada tingkat yang rendah, seperti pada instruksi yang dijalankan oleh
microprocessor. Teknik pipeline yang diterapkan pada microprocessor, da-
pat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model
microprocessor yang tidak menggunakan arsitektur pipeline dengan microp-
rocessor yang menerapkan teknik ini.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi
dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Se-
dangkan dalam microprocessor yang menggunakan teknik pipeline, ketika
satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga da-
pat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses
secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada se-
jumlah tahapan yang akan dilewati oleh sebuah instruksi.
Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam
4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi
berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu
seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan pe-
ningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa
instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Se-
cara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali diban-
dingkan dengan microprocessor yang tidak menggunakan pipeline, apabila
tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperha-
tikan sehingga ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan
yang sering dihadapi ketika menggunakan teknik pipeline ini adalah : Terja-
dinya penggunaan resource yang bersamaan, Ketergantungan terhadap data,
Pengaturan Jump ke suatu lokasi memori.
Karena beberapa instruksi diproses secara bersamaan ada kemungkinan
instruksi tersebut sama-sama memerlukan resource yang sama, sehingga di-

11
perlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan
benar. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya in-
struksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta
untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan
program counter, sedangkan instruksi yang sedang berada dalam salah sa-
tu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya
perubahan program counter.
Dengan menerapkan teknik pipeline ini, akan ditemukan sejumlah per-
hatian yang khusus terhadap beberapa hal di atas, tetapi tetap akan meng-
hasilkan peningkatan yang berarti dalam kinerja microprocessor. Ada kasus
tertentu yang memang sangat tepat bila memanfaatkan pipeline ini, dan
juga ada kasus lain yang mungkin tidak tepat bila menggunakan teknologi
pipeline.

Gambar 9: Diagram Pewaktuan Pipeline

Pipeline tidak selalu berfungsi pada berbagai kasus, ada beberapa keru-
gian, berikut adalah kelebihan dan kekurangan pipeline:
Kekurangan Pipeline

• Mencegah penundaan cabang ini (berlaku, setiap cabang yang tertun-


da) dan masalah dengan serial instruksi yang dijalankan secara bersa-
maan, akibatnya desain yang lebih sederhana dan murah untuk pro-
duksi.

• Instruksi yang tersembunyi pada prosesor non pipelining tersebut sedi-


kit lebih rendah daripada di pipelining yang setara. Hal ini disebabkan

12
oleh kenyataan bahwa tiba-tiba harus ditambahkan ke jalur data dari
prosesor pipelined

• prosesor non pipelining akan ada instruksi bandwith yang stabil. Ki-
nerja prosesor pipelined sangat sulit untuk memprediksi dan dapat ber-
variasi secara lebih luas di antara berbagai program.

Kelebihan Pipeline

• Siklus waktu dalam prosesor berkurang, sehingga secara umum menilai


instruksi-isu

• kombinasi beberapa sirkuit seperti adders atau multipliers dapat di-


buat lebih cepat dengan menambahkan lebih circuitry. Jika pipelining
digunakan sebagai gantinya,ia dapat menyimpan circuity melawan yang
lebih kompleks atas kombinasi sirkuit.

2.2 Hyperthreading
Intel Hyper-Threading Technology merupakan sebuah teknologi mikroprose-
sor yang diciptakan oleh Intel Corporation pada beberapa prosesor dengan
arsitektur Intel NetBurst dan Core, semacam Intel Pentium 4, Pentium D,
Xeon, dan Core 2. Teknologi ini diperkenalkan pada bulan Maret 2002 dan
mulanya hanya diperkenalkan pada prosesor Xeon (Prestonia).
Prosesor dengan teknologi ini akan dilihat oleh sistem operasi yang men-
dukung banyak prosesor seperti Windows NT, Windows 2000, Windows XP
Professional, Windows Vista, dan GNU/Linux sebagai dua buah prosesor,
meski secara fisik hanya tersedia satu prosesor. Dengan dua buah prosesor
dikenali oleh sistem operasi, maka kerja sistem dalam melakukan eksekusi
setiap thread pun akan lebih efisien, karena meskipun sistem-sistem opera-
si tersebut bersifat multitasking, sistem-sistem operasi tersebut melakukan
eksekusi terhadap proses secara sekuensial (berurutan), dengan sebuah algo-
ritma antrean yang disebut dengan dispatching algorithm.

2.2.1 Kebutuhan Sistem Hyper-Threading


Sebuah prosesor yang mendukung teknologi Hyper-Threading membutuhkan
beberapa komponen berikut ini:

• chipset motherboard yang mendukung teknologi Intel Hyper-Threading.


Chipset yang dimaksud adalah Intel 845PE, Intel 865, Intel 875P, Intel
915, Intel 920, Intel 945, Intel 950, Intel 965, Intel 975.

13
Gambar 10: Hyper-threaded CPU

• BIOS yang mendukung teknologi Hyper-Threading.

• Sistem operasi yang mendukung banyak prosesor seperti Windows 2000,


Windows XP, serta GNU/Linux versi 2.4.18 ke atas. Pada sistem yang
mendukung, sebagai contoh, Device Manager Windows XP akan me-
nampilkan 2 buah prosesor dengan spesifikasi yang sama.

14
Referensi
Henderson, Harry. Encyclopedia of Computer Science and Technology, Facts
on File. 2003

Stallings, William. Computer Organization and Architecture, Prentice Hall.


2000

Wikipedia.org

15

Anda mungkin juga menyukai