Monday, July 6, 2009

SW VM MANAGEMENT FOR MMU-LESS EMBEDDED SYSTEM

Ringkasan 1. M. AMINUL LAILI K (4150412-054)

Sebuah perangkat lunak yang menggantikan fungsi dari Memory Management Unit (MMU) yang ditanamkan di OS (embedded system). Perangkat lunak ini disebut Virtual Memory Management (VMM) atau dikenal dengan nama “VM Assembler”. Tugas dari VM Assembler adalah mengkonversi kode assembly menjadi binary dan memetakannya pada VM library, kemudian menterjemahkan alamat – alamat yang di panggil untuk di proses di memori fisik.

Aplikasi VMM ini mendukung :
• Transparan untuk semua programmer
• Dapat dijalankan pada aplikasi khusus
• Menyempurnakan konstruksi
• Serba otomatis

Selain bisa memberikan tampilan ukuran memori yang besar kepada programmer, VMM juga mnyediakan skema keamanan, multitasking, dan pembagian alokasi memori yang adil. Percobaan sudah dilakukan dan berjalan dengan baik pada prosessor MIPS dengan compiler MIPS GCC yang dijalankan oleh VM Assembler.

Secara umum proses yang terjadi pada percobaan di mesin MIPS adalah sbb :
  • Dari Library alamat yang sudah diterjemahkan termasuk header file, bersama dengan parameter ukuran page dan ram, dan aplikasi, dimasukkan dalam compiler MIPS GCC
  • Setelah di compile di MIPS GCC hasilnya diterjemahkan di VM Assembler yang kemudian menghasilkan binary
  • Binary inilah yang kemudian akan di baca dan di proses di mesin prossesor MIPS dan memori fisik

Ada 3 pendekatan yang bisa dilakukan dalam menggantikan fungsi MMU oleh software VMM, yaitu :

1. Pure Virtual Memory

Pada pendekatan ini semua alamat yang dibutuhkan oleh proses akan di kirim dari Virtual Memori ke Memori fisik. Pada kasus ini jika halaman/page di memori fisik penuh, sedangkan ada alamat yang akan masuk yang dibutuhkan oleh proses, maka VM Assembler akan mencarikan page yang berisi alamat yang menunggu untuk di proses tetapi masih menunggu alamat yang lainnya, alamat ini akan dipindahkan sementara ke secondary storage, dan page yang kosong tersebut di isi oleh alamat yang dibutuhkan oleh proses, jika proses kemudian membutuhkan alamat yang tadi dipindahkan ke secondary storage, maka VM Assembler akan memanggil kembali alamat tersebut dan mencarikan kembali page yang kosong.


2. Fixed Address Virtual Memory

Pada pendekatan yang kedua ini, alamat-alamat yang berada pada virtual memori dibagi-bagi berdasarkan region, misalnya VM dibagi menjadi 3 region, maka memori fisik juga di bagi menjadi 3 region. Pengiriman dan pemanggilan alamat disesuaikan dengan sesama nomor region, misalnya region 1 di VM hanya bisa mengakses page pada region 1 di memori fisik. Dengan adanya pembagian perkelompok/region ini maka tugas VM Assembler menjadi lebih ringan dalam menterjemahkan alamat yang dibutuhkan oleh proses di memori fisik.

3. Selective Virtual Memory

Pada pendekatan ini secara prinsip hampir sama dengan Fixed Address tVirtual Memory, yaitu pembagian wilayah/region, tetapi di sini lebih di permudah dengan mengalokasikan page pada memori fisik untuk alamat-alamat yang sering di minta oleh proses. Page yang berisi alamat – alamat yang sering di akses ini di buat tetap dan tidak untuk di swap out. Jadi dengan penetapan page untuk alamat – alamat khusus ini maka proses terjemahan yang dilakukan oleh VM Assembler dari Virtual Memory ke Memori fisik menjadi lebih sedikit, sehingga hal ini akan mengoptimalkan proses karena menurunnya proses terjemahan oleh VM Assembler.

KESIMPULAN

Virtual Memory Management (VMM) yang disampaikan di sini menggunakan VM Assembler dan VM Library. Pada presentasi di atas pendekatannya adalah dengan memberikan tampilan memori yang besar kepada Programmer, bisa dijalankan pada aplikasi khusus, sangat kuat, otomatis, dan berjalan dengan menyesuaikan 2 parameter konfigurasi yaitu RAM size dan Page size. Tetapi pada waktu eksperimen VMM, digunakan konfigurasi yang berbeda pada mesin powerstone dengan aplikasi drawn, hasilnya adalah sebuah konfigurasi yang ideal untuk sebuah system Memori Virtual yang bergantung pada aplikasi. Eksperimen ini terbukti bisa dijalankan oleh system VMM. Recana kerja kedepan adalah memfokuskan pada optimalisasi terjemahan dari Virtual Memori ke Memori Fisik yang dapat mengutamakan pada penurunan perputaran waktu eksekusi. Rencana kedepannya juga akan fokus pada teknik penambahan cache seperti skema asosiatif.

--------------------------------------------------------------------------------------------------------------------

Ringkasan 2 : Dwiwanto Saputro (0150311-115)

Isi dari jurnal : sebuah software virtual memory management yang akan menggantikan memory management unit (MMU/berupa hardware), pada MMU-less embedded system.

1. Embedded Systems adalah suatu sistem khusus yang dirancang untuk melakukan satu atau beberapa fungsi khusus, dan biasanya sudah menjadi satu bagian dari perangkat yang lengkap, termasuk perangkat keras dan bagian mekanis.
Karena embedded system didedikasikan untuk tugas-tugas tertentu maka dapat memberi keuntungan dari segi produksi seperti optimalisasi desain, mengurangi ukuran dan biaya produk, atau meningkatkan kinerja dan kehandalan. Salah satu contoh dari embedded system adalah seperti jam digital, MP3 player, kamera digital, dan lain sebagainya.

2. MMU biasanya membagi Virtual Address Space (rentang alamat yang digunakan oleh prosesor) ke beberapa pages (halaman), yang masing-masing memiliki ukuran beberapa kilobyte. Penerjemahan alamat tersebut biasanya melalui cache yang disebut Translation Lookaside Buffer (TLB). TLB juga mencakup informasi tentang apakah pages telah ditulisi, kapan terakhir pages digunakan, dan proses seperti apakah yang menulisi dan membaca pages (user mode atau supervisor mode). Terkadang TLB melarang akses ke virtual pages, mungkin dikarenakan tidak ada memori fisik yang dialokasikan ke virtual pages. Jika tidak ada memori fisik yang kosong maka akan dilakukan algoritma penggantian, dan disimpan ke disk (secondary storage). Algoritma penggantian tersebut disebut paging. Dalam beberapa desain awal microprocessor, management memory dilakukan oleh sebuah Integrated Circuit (IC) yang terpisah. Tetapi pada zaman Intel 80286 sudah menjadi satu.

3. Software Virtual Memory Management adalah sebuah perangkat lunak komputer yang bertanggung jawab untuk menangani akses ke memori yang diminta oleh Central Processing Unit (CPU). Pada Software Virtual Memory Management ini terdapat 3 (tiga) pendekatan yang ditawarkan untuk menangani akses ke memori yang diminta oleh CPU.

Pure Virtual Memory
Cara kerjanya sama dengan cara kerja sistem memori management yang berupa perangkat keras (hardware), yaitu MMU. Jadi setiap akses memori yang diterjemahkan dari alamat virtual memori ke alamat fisik memori dilakukan selama runtime.

Fixed Virtual Memory
Sebagian wilayah memori ditandai dulu sebagai virtual memori. Setiap ada akses ke wilayah memori yang ditandai akan langsung diterjemahkan. Tetapi untuk menerapkan fixed virtual memory ini diperlukan vm-assembler yang akan memberi tahu kalau wilayah memori yang akan diakses adalah virtual memori.

Selective Virtual Memory
Cara kerja mirip dengan fixed virtual memory yang akan melakukan pemeriksaan apakah alamat memori yang dituju adalah virtual memori atau bukan dengan bantuan vm-assembler. Pada selective virtual memory, pemeriksaan melalu vm-assembler akan dihindari. Dimana untuk itu setiap ada akses ke memori akan dijelaskan melalui deklarasi variable apakah virtual memori atau bukan.

Setelah dilakukan perbandingan antara pure VM, fixed VM, dan selective VM. Didapatkan data perbandingan yang menyatakan bahwa, perbedaan siklus proses yang dilakukan dengan menggunakan pure VM dan Fixed VM hampir tidak jauh berbeda. Tetapi dengan selective VM, akan didapatkan perbedaan siklus proses. Dimana siklus proses yang mengunakan selective VM lebih kecil dibandingkan menggunakan pure VM dan fixed VM.

-------------------------------------------------------------------------------------------

Ringkasan 3 : Rizka Rubbyanti Rivera 41506110018

Tiga pendekatan virtual memori pada system yang tidak menggunkan MMU ( Memory Management Unit ) :

Virtual Memory Murni
Pada pendekatan ini data yang belum memiliki virtual address dapat memperolehnya dengan cara jika ada proses yang sudah memiliki virtual address tetapi belum mendapatkan physical address dapat dipindahkan ter;ebih dahulu ke extended area. Sehingga data yang tadinya tidak memiliki virtual address sudah dapat menempati tempat tersebut. Karena letak alamat yang tidak beraturan maka akan lebih banyak dilakukan pengecekan data agar dapat diketahui mana saja virtual address dan physical address yang sudah terisi.

VM yang telah ditentukkan

Pada pendekatan ini data yang akan masuk ke virtual address sudah di tentukan sehingga tempat di physical address juga sudah ditentuka. Misalnya, virtual address yang sudah disiapkan untuk data adalah 1 s/d 5, yang artinya data boleh dimasukan ke alamat antara 1 sampai dengan 5 yang nantinya akan menempati physical address 1.

VM Selektif
Pendekatan ini lebih mirip dengan pendekatan sebelumnya. Letak perbedaannya pada letak data pada virtual address dan physical address yang sudah teratur. Misalnya, jika data sudah memiliki virtual address 1 maka letak physical addressnya pun sudah pasti 1. Perbedaan lainnya adalah adanya pengecekkan routine tambahan dimana hanya struktur data yang berukuran besar saja yang di cek routine-nya sedangkan untuk struktur data yang berukuran kecil akan langsung masuk ke physical address

--------------------------------------------------------------------------------------------------------------------

Ringkasan : Saryani (41508110023)

Pada perancangan sistem embedded, microcontroller telah berperanan penting dalam meningkatkan kecepatan dan penerapan aplikasi data. Dari sisi memory, terdapat kebutuhan yang sama untuk melakukan proses running yang lebih besar. Hal ini biasanya dilakukan oleh MMU (Memory Management Unit) dimana MMU merupakan perangkat keras berupa chip khusus yang berfungsi untuk memetakan dari alamat virtual ke alamat fisik.

Memory Virtual merupakan sebuah skema yang menyediakan untuk layer software berupa sebuah ilusi tentang ruang alamat memory yang sangat besar. Ide dasar dibalik skema memori virtual adalah bahwa compiler bisa menghasilkan kode dengan operasi memori (Write/Save) untuk sebuah ruang alamat virtual. Sebuah alamat virtual, menghasilkan kode keluaran dari prosesor pada waktu runtime kemudian diterjemahkan menjadi alamat fisik yang valid.
Disini akan dibahas mengenai perangkat lunak tentang menejemen memori virtual untuk system embedded tanpa MMU (MMU-less). Tujuan pendekatannya adalah untuk menjelaskan kepada programmer dengan sebuah abstraksi memory virtual dengan sedikit modifikasi yang dibutuhkan untuk memogramnya. Perangkat lunak yang digunakan disini adalah vm-assembler dan library vitual memory.

Dalam table berikut adalah pendekatan yang dapakai untuk menyediakan memory virtual:

















Dari ketiga pendekatan tersebut, kita bisa bandingkan bahwa pendekatan Memory Virtual Selektif adalah yang paling efektif untuk dilakukan.

Dari semua itu bisa kita tarik kesimpulan bahwa memory virtual bisa diterapkan untuk Sistem Embedded tanpa MMU (MMU-less).

No comments: