Rumah > Artikel > Peranti teknologi > Pembahagian memori dan mekanisme keselamatan berfungsi yang dilaksanakan
Dalam seni bina AUTOSAR, perisian aplikasi terletak di atas RTE dan terdiri daripada AUTOSAR SWC yang saling bersambung Komponen ini secara atom merangkumi pelbagai komponen kefungsian perisian aplikasi.
Rajah 1: Perisian aplikasi
AUTOSAR SWC adalah bebas perkakasan, dan oleh itu boleh diintegrasikan ke dalam mana-mana perkakasan ECU yang tersedia. Untuk memudahkan pertukaran maklumat dalam dan dalam ECU, AUTOSAR SWC hanya berkomunikasi melalui RTE.
AUTOSAR SWC mengandungi banyak fungsi dan pembolehubah yang menyediakan kefungsian dalaman. Struktur dalaman AUTOSAR SWC, iaitu pembolehubah dan panggilan fungsinya, disembunyikan daripada pandangan umum melalui fail pengepala. Hanya panggilan RTE luaran akan berkuat kuasa pada antara muka awam.
Rajah 2: SWC
AUTOSAR SWC juga mengandungi fungsi yang mesti dipanggil semasa runtime. Fungsi C ini dipanggil Runnable dalam AUTOSAR.
Runnable tidak boleh dilaksanakan dengan sendirinya; Peruntukan sedemikian boleh dilakukan dengan memasukkan panggilan fungsi Runnables ke dalam badan tugas OS.
The Runnables kemudiannya dilaksanakan dalam gelung dan/atau dipacu peristiwa dalam konteks OS-Task pemanggil. Pembahagian tugas oleh Runnables dilakukan mengikut Rajah 3 dan 4.
Rajah 3: seni bina perisian berlapis AUTOSAR - pemetaan Runnables
Rajah 4 menunjukkan penjelasan tentang hubungan dalam Rajah 3. Menurut rajah ini, Runnable dalam AUTOSAR SWC diberikan kepada tugasan OS.
Rajah 4: SWC ke OS-Pemetaan Aplikasi
OS AUTOSAR -Aplikasi ialah koleksi objek OS (seperti tugas, ISR, jadual, kaunter dan penggera) yang membentuk unit berfungsi yang padu. Semua objek yang dimiliki oleh OS-Applications yang sama boleh mengakses satu sama lain.
Objek OS dalam OS-Applications mungkin tergolong dalam AUTOSAR SWC yang berbeza. RTE melaksanakan kawasan memori yang semua ahli OS-Applications mempunyai akses tanpa had untuk memudahkan komunikasi yang cekap antara SWC.
Terdapat dua kategori OS-Applications:
Menurut Rajah 4 dan Rajah 3, satu OS-Applications boleh mengandungi berbilang AUTOSAR SWC dan Runnable yang berkaitan. Hanya Runnable dibenarkan untuk mengakses terus pembolehubah dan melakukan panggilan fungsi dalam SWC masing-masing.
Panggilan fungsi dalaman dan pembolehubah SWC tidak boleh diakses secara terbuka oleh SWC lain kerana takrifannya tidak disediakan oleh fail pengepala antara muka luaran, jadi komunikasi terus melalui pembolehubah dan pelaksanaan SWC lain tidak boleh dirancang.
Dalam Rajah 5, contoh perkongsian kod menggambarkan ini Perkongsian kod hanya dibenarkan dalam SWC dan tidak dibenarkan dikongsi antara SWC bagi Aplikasi OS. Komunikasi dengan SWC lain harus dilakukan melalui RTE. Runnable4 mungkin tidak dapat melaksanakan fungsi kepunyaan SWC2.2.
Rajah 5: Perkongsian kod dalam OS-Applications
Perisian aplikasi dalam AUTOSAR ECU boleh terdiri daripada SWC yang berkaitan dengan keselamatan dan SWC yang tidak berkaitan dengan keselamatan. Kebebasan gangguan antara SWC dengan tahap ASIL yang berbeza hendaklah dipastikan mengikut keperluan ISO26262.
OS AUTOSAR kebal terhadap kegagalan berkaitan memori dengan meletakkan OS-Applications ke dalam kawasan memori eksklusif. Mekanisme ini dipanggil pembahagian memori. OS-Applications dilindungi daripada satu sama lain kerana kod yang dilaksanakan dalam partition memori satu OS-Application tidak boleh mengubah suai kawasan memori lain. Keperluan yang sepadan dalam spesifikasi OS AUTOSAR ditunjukkan dalam Jadual 1.
Jadual 1: Pembahagian memori AUTOSAR OS- OS-Applications
Perisian aplikasi boleh terdiri daripada SWC dengan tahap ASIL yang berbeza. Walau bagaimanapun, SWC dengan penilaian ASIL yang berbeza tidak boleh diberikan kepada Aplikasi OS yang sama. Pembahagian memori tidak memberikan imuniti gangguan antara SWC yang diberikan kepada OS-Applications yang sama. OS hanya menghalang OS-Applications lain daripada melakukan akses yang salah. Tidak menghalang SWC yang rosak daripada mengubah suai kawasan memori SWC lain dalam OS-Applications yang sama.
Nota: Lihat pembahagian seterusnya untuk butiran tentang pembahagian peringkat tugas.
SWC ASIL Campuran mungkin terdiri daripada Runnables dengan rating ASIL yang berbeza, jadi sokongan diperlukan yang tidak mengganggu antara persekitaran pelaksanaan Runnables ini . Ia tidak mungkin untuk melaksanakan Runnable yang berbeza bagi SWC dalam partition memori yang berbeza atas sebab berikut:
Partition memori dilaksanakan pada tahap OS-Applications. Seperti yang ditunjukkan dalam Rajah 3 dan Rajah 4, SWC hanya boleh diperuntukkan kepada satu OS-Applications, jadi hanya terdapat satu partition memori. Selain itu, SWC Runnables hanya boleh dipanggil oleh tugasan OS-Applications.
Seperti yang ditunjukkan dalam Rajah 6, SWC Runnables tidak boleh diedarkan kepada tugas berbilang OS-Applications.
Rajah 6: SWC dan partition
Partition memori tidak boleh digunakan Asingkan Runnables dalam SWC yang sama. Jika SWC perlu mengandungi Runnables dengan ASIL yang berbeza, dan Runnables ini perlu dilaksanakan secara bebas tanpa gangguan, maka pembahagian memori pada peringkat OS-Applications tidak mencukupi, pembahagian memori mesti dilakukan pada peringkat tugas. Kaedah ditunjukkan dalam Rajah 7.
Rajah 7: Pembahagian peringkat tugas
dan peringkat tugas memori Keperluan berkaitan partition disenaraikan dalam Jadual 2 spesifikasi AUTOSAR OS. Penggunaan perkataan lemah "mungkin" menunjukkan bahawa pelaksanaan pembahagian peringkat tugas adalah pilihan untuk AUTOSAR OS. Oleh itu, bukan setiap pelaksanaan OS AUTOSAR menyokong pembahagian memori peringkat tugas.
Jadual 2: Keperluan OS AUTOSAR – pembahagian memori peringkat tugas
Pelbagai konsep keselamatan teknikal boleh dilaksanakan pada peringkat sistem dan perisian menggunakan mekanisme pembahagian memori.
Rajah 8 menunjukkan pelaksanaan yang mungkin, manakala semua modul perisian asas dilaksanakan dalam partition memori mod yang dipercayai/dipantau (diserlahkan dengan warna merah dalam Rajah 8). Sesetengah SWC dikumpulkan secara logik dan diletakkan dalam partition memori tidak dipercayai/mod pengguna yang berasingan (diserlahkan dalam warna hijau). Modul perisian yang dipilih tergolong dalam partition memori mod dipercayai/terurus yang sama seperti modul perisian asas (lihat SWC keempat yang diserlahkan dengan warna merah dalam Rajah 8). Mungkin terdapat berbilang partition yang tidak dipercayai/mod pengguna, setiap satu mengandungi satu atau lebih SWC.
Pelaksanaan SWC dalam partition memori tidak dipercayai/mod pengguna adalah terhad dan tidak boleh mengubah suai kawasan memori lain, manakala pelaksanaan SWC dalam partition memori dipercayai/monitor tidak terhad.
Mikropengawal moden yang digunakan untuk aplikasi berkaitan keselamatan menyokong pembahagian memori melalui perkakasan khusus (Memory Protection Unit (MPU)).
Nota: Diandaikan bahawa penghirisan memori akan dilaksanakan pada mikropengawal dengan MPU atau keupayaan perkakasan yang serupa.
Menggunakan pelaksanaan MPU biasa, aplikasi yang tidak dipercayai boleh dibenarkan untuk mengakses berbilang partition ruang alamat mikropengawal. Kawalan capaian ditakrifkan sebagai gabungan akses baca, tulis dan laksana. Konfigurasi MPU hanya dibenarkan dalam mod monitor.
Nota: Dalam sesetengah pelaksanaan mikropengawal, MPU disepadukan ke dalam teras pemproses. Oleh itu, MPU hanya mengawal akses kepada teras yang berkaitan. Induk bas lain (seperti pengawal DMA dan teras lain) tidak dikawal oleh tika MPU tersegmen ini.
Jadual dan kes penggunaan di bawah menggambarkan satu set senario yang mungkin apabila konfigurasi unit perlindungan memori diperoleh daripada keperluan sistem. NOTA: Jadual ini mungkin tidak lengkap untuk keupayaan peranti perkakasan tertentu yang digunakan.
Jadual 3: Skim konfigurasi perlindungan memori
Perihalan ikon:
🎜>Nota: Dari perspektif prestasi, mungkin terdapat kesan sampingan akibat perbalahan bas, timbang tara antara muka, dsb.
Kes Penggunaan 1: SWC berada dalam partition yang sama.
SWC dalam partition yang sama boleh mengakses kawasan RAM masing-masing dan oleh itu berpotensi merosakkan kandungan memori masing-masing.
Secara takrifan, SWC tidak boleh mengakses persisian kerana mereka tidak sepatutnya mengetahui tentang seni bina mikropengawal asas. Apabila SWC dibenarkan akses terus ke peranti persisian, sistem yang tidak selamat boleh dibuat.
Kes Guna 2: SWC dalam partition berbeza.Jika terdapat pelanggaran akses memori atau konflik arahan CPU dalam partition tidak dipercayai/mod pengguna, akses yang salah akan disekat dan perkakasan mikropengawal akan mengeluarkan pengecualian. OS dan RTE menghapuskan partition perisian yang salah dengan melakukan penutupan partition atau memulakan semula semua partition perisian partition ini.
Nota: Respons sebenar OS boleh dikonfigurasikan melalui pelaksanaan cangkuk perlindungan. Lihat dokumentasi OS SWS[i] untuk butiran lanjut.
Nota: Dokumen AUTOSAR "Arahan Pengendalian Ralat Peringkat Aplikasi"[ii] menyediakan maklumat tambahan tentang pengendalian ralat. Dalam dokumentasi, diterangkan bagaimana pengendalian ralat dilakukan dan dari mana data yang diperlukan (cth. nilai gantian) boleh diperolehi. Selain itu, dokumen ini menyediakan arahan terperinci (Manual Pengguna) tentang cara melakukan penamatan Aplikasi/Pembahagian OS dan mulakan semula dalam AUTOSAR.
1.
Piawaian ISO26262 memerlukan imuniti antara SWC tahap ASIL yang berbeza [iii]. Walau bagaimanapun, piawaian ini tidak memerlukan imuniti gangguan antara SWC dengan penarafan ASIL yang sama.
Membenarkan penggunaan OS-Applications yang terdiri daripada sejumlah besar SWC. Jika satu SWC menyebabkan konflik yang menyebabkan keseluruhan partition memori ditutup atau but semula, semua SWC lain yang berfungsi untuk partition memori ini juga akan terjejas.
2. Pembahagian memori tidak tersedia untuk Aplikasi OS yang dipercayai.
Pelaksanaan partition memori mod dipercayai/dipantau tidak dikawal oleh OS dan beberapa pelaksanaan perkakasan MMU/MPU.
3. Tahap tugasan tidak menyokong pembahagian memori.
Pelaksanaan pembahagian peringkat tugasan tidak diperlukan untuk pelaksanaan AUTOSAR OS. Oleh itu, imuniti gangguan dalam OS-Applications mungkin tidak disokong.
4. Kehilangan prestasi akibat pembahagian memori.
Bergantung pada seni bina perisian aplikasi dan pelaksanaan perkakasan mikropengawal dan OS, menggunakan partition memori boleh mengurangkan prestasi. Penalti ini meningkat dengan bilangan suis konteks yang dilakukan setiap unit masa.
5. Tiada partition perisian asas.
Spesifikasi semasa untuk perisian asas tidak menyatakan pembahagian memori untuk SWC asas dengan tahap ASIL yang berbeza daripada vendor yang berbeza.
Atas ialah kandungan terperinci Pembahagian memori dan mekanisme keselamatan berfungsi yang dilaksanakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!