Sejak diperkenalkannya dari arsitektur 32-bit, mikroprosesor
telah berevolusi skema manajemen memori canggih yang membangun pembelajaran
dengan sistem menengah dan skala besar. Dalam banyak kasus, versi mikroprosesor
lebih unggul dengan yang lebih besar-sistem mereka pendahulunya. Karena skema
tersebut dikembangkan oleh vendor perangkat keras mikroprosesor dan dapat
digunakan dengan berbagai sistem operasi, mereka cenderung menjadi cukup umum
purpose. Sebagai contoh yang representatif adalah skema yang digunakan pada
perangkat keras II. Pentium II manajemen memori pada dasarnya adalah sama
seperti yang digunakan dalam Intel 80386 dan 80486 prosesor, dengan beberapa
perbaikan.
Alamat Spasi
Pentium
II mencakup perangkat keras untuk kedua segmentasi dan paging. Kedua mekanisme
dapat dinonaktifkan, memungkinkan pengguna untuk memilih dari empat pandangan
yang berbeda dari memori:
•
Memori Unpaged Unsegmented: Dalam hal ini, alamat virtual adalah sama dengan
alamat fisik. Hal ini berguna, misalnya, dalam kompleksitas rendah,
highperformance aplikasi kontroler.
•
Memori Paged Unsegmented: Berikut memori dipandang sebagai ruang alamat linier
paged. Perlindungan dan manajemen memori dilakukan melalui paging. Ini disukai
oleh beberapa sistem operasi (misalnya, Berkeley UNIX).
•
Memori Unpaged Tersegmentasi: Berikut memori dipandang sebagai kumpulan dari
ruang alamat logis. Keuntungan dari pandangan ini melalui pendekatan paged
adalah bahwa hal ini memberikan perlindungan ke tingkat byte tunggal, jika
perlu. Selanjutnya, tidak seperti paging, ia menjamin bahwa tabel terjemahan
yang diperlukan (tabel segmen) yang on-chip ketika segmen tersebut dalam
memori. Oleh karena itu, hasil memori tersegmentasi unpaged di waktu akses
diprediksi.
•
Segmented paged memori: Segmentasi digunakan untuk menentukan partisi memori
logis tunduk pada kontrol akses, dan paging digunakan untuk mengelola alokasi
memori dalam partisi.Sistem operasi seperti UNIX System V mendukung pandangan
ini.
Segmentasi
Ketika segmentasi digunakan, masing-masing alamat virtual (disebut alamat logis di Pentium II dokumentasi) terdiri dari referensi segmen 16-bit dan 32-bit offset. Dua bit dari kesepakatan referensi segmen dengan mekanisme perlindungan, meninggalkan 14 bit untuk menentukan segmen tertentu. Jadi, dengan memori unsegmented, memori virtual pengguna adalah 232 = 4 GBytes. Dengan memori tersegmentasi, ruang total memori virtual sebagai terlihat oleh pengguna adalah 246 = 64 terabyte (TBytes). Ruang alamat fisik menggunakan alamat 32-bit untuk maksimal 4 GBytes.
Ketika segmentasi digunakan, masing-masing alamat virtual (disebut alamat logis di Pentium II dokumentasi) terdiri dari referensi segmen 16-bit dan 32-bit offset. Dua bit dari kesepakatan referensi segmen dengan mekanisme perlindungan, meninggalkan 14 bit untuk menentukan segmen tertentu. Jadi, dengan memori unsegmented, memori virtual pengguna adalah 232 = 4 GBytes. Dengan memori tersegmentasi, ruang total memori virtual sebagai terlihat oleh pengguna adalah 246 = 64 terabyte (TBytes). Ruang alamat fisik menggunakan alamat 32-bit untuk maksimal 4 GBytes.
Jumlah
memori virtual sebenarnya dapat lebih besar dari 64 TBytes. Hal ini karena
penafsiran prosesor dari alamat virtual tergantung pada proses yang sedang
aktif. Ruang alamat virtual dibagi menjadi dua bagian. Satu-setengah dari ruang
alamat virtual (8K segment x 4 GBytes) adalah global, bersama dengan semua
proses, sisanya adalah lokal dan berbeda untuk setiap proses.
Terkait dengan segmen masing-masing dua bentuk perlindungan: hak istimewa tingkat dan atribut akses. Ada empat tingkat hak istimewa, dari yang paling dilindungi (tingkat 0) untuk paling tidak dilindungi (tingkat 3). Tingkat hak istimewa yang terkait dengan segmen data adalah “klasifikasi” nya, tingkat hak istimewa yang terkait dengan segmen program yang mengeksekusi Sebuah program hanya dapat mengakses segmen data untuk tingkat peluruhan yang lebih rendah dari (lebih istimewa) atau sama “izin.” untuk (hak istimewa yang sama) tingkat hak istimewa segmen data.
Terkait dengan segmen masing-masing dua bentuk perlindungan: hak istimewa tingkat dan atribut akses. Ada empat tingkat hak istimewa, dari yang paling dilindungi (tingkat 0) untuk paling tidak dilindungi (tingkat 3). Tingkat hak istimewa yang terkait dengan segmen data adalah “klasifikasi” nya, tingkat hak istimewa yang terkait dengan segmen program yang mengeksekusi Sebuah program hanya dapat mengakses segmen data untuk tingkat peluruhan yang lebih rendah dari (lebih istimewa) atau sama “izin.” untuk (hak istimewa yang sama) tingkat hak istimewa segmen data.
Hardware
tidak menentukan bagaimana tingkat hak istimewa yang akan digunakan; ini
tergantung pada desain OS dan implementasi. Hal ini dimaksudkan bahwa hak
istimewa tingkat 1 akan digunakan untuk sebagian besar OS, dan tingkat 0 akan
digunakan untuk itu sebagian kecil dari OS ditujukan untuk manajemen memori,
perlindungan, dan kontrol akses. Hal ini meninggalkan dua tingkat untuk
aplikasi. Dalam banyak sistem, aplikasi akan berada di tingkat 3, dengan
tingkat 2 yang tidak terpakai. Subsistem aplikasi khusus yang harus dilindungi
karena mereka menerapkan mekanisme keamanan mereka sendiri adalah kandidat yang
baik untuk tingkat 2. Beberapa contoh adalah sistem manajemen database, sistem
otomatisasi kantor, dan lingkungan rekayasa perangkat lunak.
Selain
akses mengatur ke segmen data, mekanisme hak membatasi penggunaan instruksi
tertentu. Beberapa instruksi, seperti yang berhubungan dengan manajemen memori
register, hanya dapat dilaksanakan di tingkat 0. Instruksi I / O hanya dapat
dieksekusi sampai ke tingkat tertentu yang ditunjuk oleh OS, biasanya, ini akan
menjadi level 1. Atribut akses data segmen menentukan apakah membaca / menulis
atau baca akses yang diizinkan. Untuk segmen program, menentukan atribut akses
membaca / mengeksekusi atau membaca-hanya akses.
Terjemahan
alamat mekanisme untuk segmentasi melibatkan pemetaan alamat virtual ke dalam
apa yang disebut sebagai alamat linier.
Sebuah
alamat maya terdiri dari 32-bit offset dan 16-bit segmen pemilih. Segmen
pemilih terdiri dari bidang-bidang berikut:
• Tabel Indikator (TI): Menunjukkan
apakah tabel segmen global atau tabel segmen lokal harus digunakan untuk
terjemahan.
• Segmen Number: Jumlah segmen. Ini berfungsi sebagai indeks ke dalam tabel segmen.
• Requested Privilege Level (RPL): Tingkat diminta untuk hak akses ini.
• Segmen Number: Jumlah segmen. Ini berfungsi sebagai indeks ke dalam tabel segmen.
• Requested Privilege Level (RPL): Tingkat diminta untuk hak akses ini.
Setiap
entri dalam tabel segmen terdiri dari 64 bit.
Paging
Segmentasi merupakan fitur opsional dan dapat dinonaktifkan. Ketika segmentasi digunakan, alamat yang digunakan dalam program adalah alamat virtual dan dikonversi menjadi alamat linier, seperti yang baru saja dijelaskan. Ketika segmentasi tidak digunakan, alamat linier yang digunakan dalam program. Dalam kedua kasus, langkah berikut adalah untuk mengkonversi alamat linier ke alamat 32-bit nyata.
Segmentasi merupakan fitur opsional dan dapat dinonaktifkan. Ketika segmentasi digunakan, alamat yang digunakan dalam program adalah alamat virtual dan dikonversi menjadi alamat linier, seperti yang baru saja dijelaskan. Ketika segmentasi tidak digunakan, alamat linier yang digunakan dalam program. Dalam kedua kasus, langkah berikut adalah untuk mengkonversi alamat linier ke alamat 32-bit nyata.
Untuk
memahami struktur dari alamat linier, Anda perlu tahu bahwa mekanisme Pentium
II sebenarnya paging dua tingkat tabel operasi pencarian. Tingkat pertama
adalah direktori halaman, yang berisi hingga 1024 entri. Ini membagi ruang
memori 4-GByte linier menjadi 1024 kelompok halaman, masing-masing dengan tabel
halaman sendiri, dan masing-masing 4 MBytes panjang. Setiap tabel halaman
berisi hingga 1024 entri; setiap entri sesuai ke halaman 4-KByte tunggal.
Manajemen memori memiliki pilihan untuk menggunakan salah satu direktori
halaman untuk semua proses, salah satu direktori halaman untuk setiap proses, atau
beberapa kombinasi dari keduanya.Direktori halaman untuk tugas saat ini selalu
dalam memori utama. Tabel halaman mungkin dalam memori virtual.
Pentium
II juga membuat penggunaan buffer melihat sisi terjemahan. Buffer dapat
menyimpan entri tabel halaman 32.Setiap kali bahwa direktori halaman berubah,
buffer akan dihapus.
Untuk kejelasan, melihat sisi terjemahan
buffer dan mekanisme memori cache tidak ditampilkan.
Akhirnya, Pentium II termasuk ekstensi baru tidak ditemukan pada 80386 atau 80486, penyisihan untuk dua ukuran halaman.Jika PSE (ekstensi halaman ukuran) bit dalam kontrol mendaftar 4 adalah set ke 1, maka unit paging memungkinkan programmer OS untuk mendefinisikan sebuah halaman baik sebagai KByte 4 atau 4 MByte dalam ukuran.
Akhirnya, Pentium II termasuk ekstensi baru tidak ditemukan pada 80386 atau 80486, penyisihan untuk dua ukuran halaman.Jika PSE (ekstensi halaman ukuran) bit dalam kontrol mendaftar 4 adalah set ke 1, maka unit paging memungkinkan programmer OS untuk mendefinisikan sebuah halaman baik sebagai KByte 4 atau 4 MByte dalam ukuran.
Ketika
4-MByte halaman yang digunakan, hanya ada satu tingkat tabel lookup untuk
halaman. Ketika hardware mengakses direktori halaman, direktori halaman masuk
memiliki set bit ke 1 PS. Dalam hal ini, bit 9 sampai 21 bit diabaikan dan 22
sampai 31 menentukan alamat dasar untuk halaman 4-MByte dalam memori. Jadi, ada
tabel halaman.
Segmen Descriptor (Segmen Entri
Tabel)
Base
Mendefinisikan alamat awal segmen dalam ruang alamat 4-GByte linier.
Base
Mendefinisikan alamat awal segmen dalam ruang alamat 4-GByte linier.
D/B bit
Dalam sebuah segmen kode, ini adalah sedikit D dan menunjukkan apakah operand dan mode pengalamatan yang 16 atau 32 bit.
Dalam sebuah segmen kode, ini adalah sedikit D dan menunjukkan apakah operand dan mode pengalamatan yang 16 atau 32 bit.
Descriptor Privilege Level (DPL)
Menentukan tingkat hak istimewa dari segmen disebut oleh deskriptor segmen.
Menentukan tingkat hak istimewa dari segmen disebut oleh deskriptor segmen.
Granularity bit (G)
Menunjukkan apakah bidang Batas harus ditafsirkan dalam unit dengan satu byte atau 4 KByte.
Menunjukkan apakah bidang Batas harus ditafsirkan dalam unit dengan satu byte atau 4 KByte.
Limit
Mendefinisikan ukuran segmen. Prosesor menafsirkan bidang batas dalam salah satu dari dua cara, tergantung pada bit rincian: dalam satuan satu byte, hingga batas segmen berukuran 1 MByte, atau dalam satuan 4 KByte, hingga batas ukuran segmen 4 GBytes .
Mendefinisikan ukuran segmen. Prosesor menafsirkan bidang batas dalam salah satu dari dua cara, tergantung pada bit rincian: dalam satuan satu byte, hingga batas segmen berukuran 1 MByte, atau dalam satuan 4 KByte, hingga batas ukuran segmen 4 GBytes .
S bit
Menentukan apakah segmen yang diberikan adalah sistem atau segmen segmen kode atau data.
Menentukan apakah segmen yang diberikan adalah sistem atau segmen segmen kode atau data.
Segment Present bit (P)
Digunakan untuk sistem nonpaged. Hal ini menunjukkan apakah segmen hadir dalam memori utama. Untuk paged sistem, bit ini selalu diset ke 1.
Digunakan untuk sistem nonpaged. Hal ini menunjukkan apakah segmen hadir dalam memori utama. Untuk paged sistem, bit ini selalu diset ke 1.
Type
Membedakan antara berbagai macam segmen dan menunjukkan atribut akses.
Membedakan antara berbagai macam segmen dan menunjukkan atribut akses.
Page Directory Entry and Page Table
Entry
Accessed bit (A)
Bit ini diset ke 1 oleh prosesor dalam kedua tingkat tabel halaman saat membaca atau menulis operasi untuk halaman yang sesuai terjadi.
Dirty bit (D)
Bit ini diset ke 1 oleh prosesor ketika operasi menulis ke halaman yang sesuai terjadi.
Page Frame Address
Menyediakan alamat fisik dari halaman dalam memori jika bit ini diatur. Karena frame halaman yang sejajar pada batas-batas 4K, 12 bit bawah adalah 0, dan hanya bagian atas 20 bit termasuk dalam entri. Dalam direktori halaman, alamat adalah bahwa dari sebuah tabel halaman.
Page Cache Disable bit (PCD)
Menunjukkan apakah data dari halaman mungkin cache.
Page Size bit (PS)
Menunjukkan apakah ukuran halaman adalah 4 KByte atau 4 MByte.
Halaman Menulis Melalui bit (PWT)
Menunjukkan apakah write-through atau menulis-kembali kebijakan caching akan digunakan untuk data di halaman yang sesuai.
Present bit (P)
Menunjukkan apakah tabel halaman atau halaman dalam memori utama.
Read/Write bit (RW)
Untuk pengguna-tingkat halaman, menunjukkan apakah halaman akses read-only atau membaca / menulis akses untuk user-level program.
User/Supervisor bit (US)
Menunjukkan apakah halaman yang tersedia hanya untuk sistem operasi (tingkat pengawas) atau tersedia untuk kedua sistem operasi dan aplikasi (tingkat pengguna).
Accessed bit (A)
Bit ini diset ke 1 oleh prosesor dalam kedua tingkat tabel halaman saat membaca atau menulis operasi untuk halaman yang sesuai terjadi.
Dirty bit (D)
Bit ini diset ke 1 oleh prosesor ketika operasi menulis ke halaman yang sesuai terjadi.
Page Frame Address
Menyediakan alamat fisik dari halaman dalam memori jika bit ini diatur. Karena frame halaman yang sejajar pada batas-batas 4K, 12 bit bawah adalah 0, dan hanya bagian atas 20 bit termasuk dalam entri. Dalam direktori halaman, alamat adalah bahwa dari sebuah tabel halaman.
Page Cache Disable bit (PCD)
Menunjukkan apakah data dari halaman mungkin cache.
Page Size bit (PS)
Menunjukkan apakah ukuran halaman adalah 4 KByte atau 4 MByte.
Halaman Menulis Melalui bit (PWT)
Menunjukkan apakah write-through atau menulis-kembali kebijakan caching akan digunakan untuk data di halaman yang sesuai.
Present bit (P)
Menunjukkan apakah tabel halaman atau halaman dalam memori utama.
Read/Write bit (RW)
Untuk pengguna-tingkat halaman, menunjukkan apakah halaman akses read-only atau membaca / menulis akses untuk user-level program.
User/Supervisor bit (US)
Menunjukkan apakah halaman yang tersedia hanya untuk sistem operasi (tingkat pengawas) atau tersedia untuk kedua sistem operasi dan aplikasi (tingkat pengguna).
Penggunaan
4-MByte halaman mengurangi persyaratan penyimpanan memori-manajemen untuk
kenangan utama besar.Dengan 4-KByte halaman, memori 4-GByte penuh utama
membutuhkan sekitar 4 MBytes memori hanya untuk tabel halaman. Dengan 4-MByte
halaman, tabel tunggal, 4 KByte panjang, sudah cukup untuk manajemen halaman
memori.
MANAJEMEN
MEMORY ARM
ARM menyediakan arsitektur sistem memori virtual
yang serbaguna dapat disesuaikan dengan kebutuhan dari desainer sistem
embedded.
Sistem memori OrganisasiHardware memori virtual terjemahan menggunakan satu atau dua tingkat tabel untuk terjemahan dari virtual ke alamat fisik, seperti yang dijelaskan selanjutnya. Para melihat sisi terjemahan buffer (TLB) adalah cache dari entri tabel halaman terakhir. Jika entri tersedia dalam TLB, maka TLB langsung mengirim alamat fisik ke memori utama untuk operasi membaca atau menulis. Data yang dipertukarkan antara prosesor dan memori utama melalui cache. Jika sebuah organisasi cache yang logis digunakan, maka persediaan ARM bahwa alamat langsung ke cache serta memasok ke TLB saat terjadi cache miss. Jika sebuah organisasi cache yang fisik digunakan, maka TLB harus memberikan alamat fisik ke cache. Entri dalam tabel penerjemahan juga termasuk bit kontrol akses, yang menentukan apakah suatu proses dapat mengakses bagian tertentu memori. Jika akses ditolak, akses kontrol hardware pasokan sinyal membatalkan ke prosesor ARM.
Virtual Memory Address Translation
ARM mendukung akses memori didasarkan pada baik bagian atau halaman:
• Supersections (opsional): Terdiri dari 16-MB blok memori utama
• Sections : Terdiri dari 1-MB blok memori utama
• Large pages : Terdiri dari 64-KB blok memori utama
• Small pages : Terdiri dari 4-KB blok memori utama
Bagian dan supersections didukung untuk
memungkinkan pemetaan wilayah besar memori sementara hanya menggunakan satu
entri dalam TLB. Mekanisme akses kontrol tambahan diperpanjang dalam halaman
kecil untuk Subpages 1KB, dan dalam halaman besar untuk 16KB Subpages. Tabel
terjemahan diselenggarakan di memori utama memiliki dua tingkat:
• First-level table : Gelar terjemahan bagian dan supersection, dan pointer
ke tingkat kedua tabel• Second-level tables : Pegang baik terjemahan halaman besar dan kecil
Unit memori-manajemen (MMU) menerjemahkan alamat
virtual yang dihasilkan oleh prosesor ke alamat fisik untuk mengakses memori
utama, dan juga berasal dan memeriksa izin akses.Terjemahan terjadi sebagai
akibat dari miss TLB, dan mulai dengan mengambil tingkat pertama. Sebuah
mengakses seksi-dipetakan hanya membutuhkan tingkat pertama mengambil,
sedangkan mengakses halaman-dipetakan juga membutuhkan tingkat kedua-fetch.
Sebuah prosedur dua halaman pencarian yang serupa
digunakan untuk halaman yang besar. Untuk bagian dan supersection, hanya
halaman L1 tabel lookup diperlukan.
Manajemen Format Memori
Untuk mendapatkan pemahaman yang lebih baik dari
skema manajemen memori ARM, kita mempertimbangkan format kunci.
• Bit [01:00] = 01 dan bit 19 = 0: entri ini adalah bagian untuk alamat
deskriptor terkait virtual.• Bit [01:00] = 01 dan bit 19 = 1: entri ini adalah deskriptor supersection untuk alamat terkait virtual.
Entri dengan bit [01:00] = 11 disediakan.
Untuk memori terstruktur ke halaman, dua-tingkat halaman akses tabel diperlukan. Bit [31:10] dari halaman masuk L1 berisi pointer ke tabel halaman L1. Untuk halaman kecil, entri L2 berisi pointer 20-bit untuk alamat dasar halaman 4-KB di memori utama.
Parameter Manajemen Memori ARM
Access Permission (AP), Access Permission Extension (APX)
Bit-bit kontrol akses ke wilayah memori yang sesuai. Jika mengakses dibuat untuk area memori tanpa izin diperlukan, Patahan Izin dinaikkan.
Bufferable (B) bit
Menentukan, dengan bit TEX, bagaimana menulis buffer digunakan untuk memori cacheable.
Cacheable (C) bit
Menentukan apakah wilayah ini memori dapat dipetakan melalui cache.
Domain
Koleksi kontrol memori regions.Access dapat diterapkan berdasarkan domain.
not Global (nG)
Menentukan apakah terjemahan harus ditandai sebagai global (0), atau spesifik proses (1).
Shared (S)
Menentukan apakah terjemahan ini karena tidak-berbagi memori (1) (0), atau berbagi.
SBZ
Should be zero.
Type Extension (TEX)
Bit ini, bersama dengan bit B dan C, kontrol akses ke cache, bagaimana menulis buffer digunakan, dan jika wilayah memori dibagikan dan oleh karena itu harus disimpan koheren.
Execute Never (XN)
Menentukan apakah wilayah ini dieksekusi (0) atau tidak dieksekusi (1).
Kisaran ruang alamat fisik dapat diperluas hingga
delapan bit alamat tambahan (bit [23:20] dan [8:05]). Jumlah bit tambahan bit
dependent. Implementasi tambahan dapat diartikan sebagai memperluas ukuran dari
memori fisik sebanyak faktor demikian, memori fisik mungkin sebenarnya sebanyak
256 kali lebih besar ruang memori yang tersedia untuk setiap proses individu.
Access Control
AP bit kontrol akses dalam setiap akses entri
tabel kontrol ke wilayah memori dengan suatu wilayah tertentu process.A memori
dapat ditunjuk sebagai tidak ada akses, read only, atau membaca-menulis.
Selanjutnya, wilayah ini dapat ditunjuk sebagai akses istimewa saja,
dicadangkan untuk digunakan oleh OS dan bukan oleh aplikasi.
ARM juga mempekerjakan konsep dari sebuah domain,
yang merupakan kumpulan bagian dan / atau halaman yang memiliki izin akses
tertentu. Mendukung arsitektur ARM 16 domain. Fitur domain memungkinkan
beberapa proses untuk menggunakan tabel terjemahan yang sama tetap menjaga
beberapa perlindungan dari satu sama lain.
Setiap entri tabel halaman dan masuk BIS berisi
field yang menentukan entri yang domain yang masuk Sebuah medan 2-bit dalam
Access Control Domain mengontrol akses ke setiap domain. Setiap bidang
memungkinkan akses ke seluruh domain akan diaktifkan dan dinonaktifkan dengan
sangat cepat, sehingga daerah seluruh memori dapat ditukarkan dalam dan keluar
dari memori virtual yang sangat efisien. Dua jenis akses domain yang didukung:
• Clients: Pengguna domain (mengeksekusi program
dan data akses) yang harus memperhatikan hak akses dari bagian individu dan /
atau halaman yang membentuk domain tersebut.
• Managers: Kontrol perilaku dari domain (bagian saat ini dan halaman dalam
domain, dan akses domain), dan memotong hak akses untuk entri tabel dalam
domain tersebut
Salah satu program dapat menjadi klien dari
beberapa domain, dan manajer dari beberapa domain lainnya, dan tidak memiliki
akses ke domain yang tersisa. Hal ini memungkinkan perlindungan memori yang
sangat fleksibel untuk program yang mengakses sumber daya memori yang berbeda.
0 komentar:
Posting Komentar