Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843

1 Pengenalan

Memori F-RAM Cypress SPI yang tidak meruap boleh digunakan dalam pelbagai cara. Pertama, set arahan mereka serasi dengan EEPROM bersiri klasik dan memori Flash. Ciri ini membolehkan pembangun mengendalikan peranti F-RAM seperti bahagian EEPROM atau Flash menggunakan pemacu perisian sedia ada.
Sebaliknya, peranti F-RAM mempunyai ciri RAM dan advantages: ia boleh dibaca dan ditulis serta-merta berdasarkan bait demi bait tanpa perlu memadam atau mengundi seperti peranti Flash. Pengawal SPI moden yang termaju boleh menjana urutan arahan yang diperlukan dengan segera dalam perkakasan dan menyokong akses dipetakan memori melalui penunjuk. Ini menjadikan peranti F-RAM bersiri kelihatan seperti RAM biasa kepada aplikasi.
Kedua-dua model penggunaan dibentangkan dan dibandingkan secara terperinci dalam bahagian berikut.

2 Akses Gaya EEPROM/Flash

Jika F-RAM bersiri digunakan seperti peranti EEPROM atau Flash, maka aliran kawalan biasa ialah:

  1. Buka peranti khas file
  2. Tetapkan file mengimbangi kepada kedudukan tertentu
  3. Mengeluarkan panggilan baca atau tulis.

Langkah 2 dan 3 diulang sekerap yang diperlukan.
Menambah sokongan F-RAM pada pemacu EEPROM/Flash sedia ada biasanya mudah. Dalam kebanyakan kes, adalah cukup untuk menambah hanya ID peranti baharu pada senarai peranti yang disokong dalam kod sumber pemacu untuk menjadikan peranti berfungsi. Arahan SPI untuk membaca dan menulis data adalah serasi antara EEPROM/Flash dan F-RAM, dan arahan padam diabaikan oleh peranti F-RAM. Kebanyakan aplikasi tidak bergantung pada nilai lalai memori yang baru dipadamkan (cth 0xFF) jadi tingkah laku ini baik. Dalam kes khas di mana ia berlaku, kawasan memori yang dipadamkan boleh ditetapkan secara eksplisit kepada nilai lalai yang dijangkakan oleh fungsi padam. Selain itu, kod undian yang digunakan dalam pemacu perisian EEPROM/Flash untuk mengesan penghujung operasi program tidak menjejaskan F-RAM. Bagi pemacu perisian tersebut, peranti F-RAM nampaknya telah dilakukan serta-merta dengan sebarang program atau memadam operasi dan mengawal pulangan selepas satu lelaran undian. Sebagai alternatif, pengundian mungkin dilumpuhkan sepenuhnya untuk F-RAM dalam pemacu.

Dalam Linux, sebagai contoh konkritampOleh itu, kaedah capaian memerlukan pengguna membuka Peranti Teknologi Memori (MTD) atau peranti khas EEPROM file dan mengeluarkan dua panggilan sistem untuk setiap baca atau tulis. Pertama, panggilan sleek() untuk meletakkan file deskriptor kepada offset yang dikehendaki dan isu kedua sama ada panggilan sistem baca() atau tulis() untuk membaca atau menulis data. Untuk blok data yang besar, panggilan sistem yang berkaitan dan overhednya adalah tidak penting dan boleh diabaikan. Throughput adalah parameter penting dalam kes sedemikian. Untuk saiz data yang kecil (contohnyaample, pembolehubah 1-16 bait), walau bagaimanapun, overhed panggilan sistem menyebabkan kependaman yang ketara.

Apa yang menjadikan perkara lebih rumit untuk aplikasi ialah keperluan untuk memperuntukkan dan mengurus penimbal yang dihantar kepada fungsi baca dan tulis. Selalunya, data disalin berulang-alik beberapa kali dalam kaedah capaian ini, ke dan dari penimbal dalam aplikasi dan kemudian sekali lagi dari penimbal ke FIFO pengawal SPI dalam pemacu peranti dan sebaliknya. Operasi penyalinan ini mempunyai kesan negatif terhadap daya pengeluaran pada sistem pantas.

3 Akses Dipetakan Memori

Penimbal data terurus pengguna dan pergerakan manual data tidak diperlukan untuk akses dipetakan memori (juga dikenali sebagai I/O Pemetaan Memori atau MMIO). Dalam kaedah capaian ini, aplikasi boleh membaca dan menulis kepada F-RAM hanya dengan menuding penunjuk kepada objek data dengan saiz yang dikehendaki.

Bantuan perisian hanya diperlukan semasa permulaan untuk menyiasat peranti dan kemudian untuk menyediakan pemetaan alamat yang sesuai untuk aplikasi. Setelah pemetaan ini diwujudkan, semua akses baca dan tulis berjalan sepenuhnya dalam perkakasan. Ini membawa kepada tahap prestasi yang lebih baik berbanding dengan akses gaya EEPROM/Flash klasik. Terutamanya, kependaman adalah lebih pendek menghasilkan hasil yang jauh lebih baik untuk saiz data yang kecil.

Tambahan pula, akses dipetakan memori memudahkan kod aplikasi. Data tidak perlu disalin berulang-alik antara penimbal, dan panggilan sistem tidak diperlukan untuk mengakses memori F-RAM selepas permulaan.

Akhir sekali, ciri lanjutan seperti pelaksanaan kod terus daripada SPI F-RAM (XIP) hanya boleh dilakukan dengan persediaan dipetakan memori. Walaupun aplikasi baca sahaja juga boleh dilakukan dengan SPI Flash dalam persediaan dipetakan memori, penulisan dipetakan gagal pada peranti ini kerana keperluan tinjauan dan pemadamannya.

Cabaran mungkin ialah kod persediaan khusus pengawal mesti ditambahkan pada pemacu perisian. Kod pemacu generik hampir tidak mungkin.

4 Kajian Kes

Untuk menyiasat faedah prestasi capaian dipetakan memori, SoC i.MX8QXP NXP dengan Cypress Exelon Ultra CY15B104QSN F-RAM digunakan untuk menyediakan platform penanda aras moden.

OS dalam kes ini ialah Linux (kernel 4.14.98) yang menjalankan Cypress SPI Memories Pemandu versi tindanan v19.4. Pemacu perisian ini menyokong kedua-dua MTD klasik serta akses dipetakan memori. CY15B104QSN dikendalikan dalam mod QPI pada frekuensi jam SPI 100 MHz SDR. Oleh itu, daya pemprosesan teori maksimum untuk kedua-dua operasi baca dan tulis dihadkan kepada 50 MiB/s1.

Pengawal i.MX8QXP FlexiSpot menyokong akses dipetakan memori melalui jadual kecil boleh dikonfigurasikan. Jadual Carian (LUT) ini boleh memuatkan sehingga 32 jujukan untuk mensintesis urus niaga bas SPI dengan segera dalam perkakasan. Daftar indeks dalam pengawal boleh ditetapkan untuk memberitahu pemproses urutan yang akan dilaksanakan bagi memori yang dipetakan dan dibaca, contohnyaample, jika penunjuk dinyahrujuk. Ia mungkin satu jujukan atau satu set berbilang jujukan, contohnyaamptetapi, jika arahan Write Enable ditambah dengan arahan Program perlu dikeluarkan untuk operasi tulis. Untuk QPI membaca dan menulis ke F-RAM, entri/urutan LUT berikut boleh digunakan:

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Kajian Kes Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Kajian Kes

Nota bahawa CY15B104QSN mempunyai bit WREN (Tulis Dayakan) melekit dalam daftar status. Apabila bit ini telah ditetapkan, peranti tidak memerlukan perintah Write Enable yang eksplisit lagi sebelum setiap operasi tulis memori. Oleh itu, hanya urutan kedua pasangan urutan yang disenaraikan untuk laluan tulis digunakan.

Satu lagi teknik pengoptimuman yang digunakan ialah prefetching yang boleh dilakukan secara automatik oleh pengawal i.MX8QXP FlexSPI. Ciri ini mempengaruhi dan mempercepatkan laluan baca untuk semua kaedah capaian. Ia sentiasa memuatkan blok data 2 kB penuh daripada F-RAM ke dalam beberapa penimbal perkakasan. Permintaan baca daripada perisian kemudian disampaikan daripada penimbal ini.

Jadual 1 meringkaskan hasil yang diukur dan menunjukkan faedah prestasi capaian dipetakan memori langsung. Khususnya, kependaman adalah jauh lebih pendek berbanding kaedah capaian gaya Flash standard (lebih daripada 20x). Latensi yang sangat singkat memanfaatkan ciri tidak meruap segera F-RAM dan membantu dalam situasi di mana kuasa sistem hilang secara tiba-tiba. Akses yang dipetakan memori menjadi keperluan percuma dalam keadaan tersebut, memendekkan tetingkap masa di mana data berisiko.

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Jadual 1. Keputusan Penandaarasan untuk CY15B104QSN pada i.MX8QXP

Dalam penanda aras ini, hasil daya pemprosesan diukur dengan membaca atau menulis keseluruhan peranti. Untuk kes yang dipetakan memori, memcpy() dipanggil untuk menyalin semua data tatasusunan utama daripada F-RAM ke DRAM sistem biasa atau sebaliknya. Lihat Lampiran A untuk beberapa pengoptimuman memcpy() khusus ARMv8-A. Dengan prefetching perkakasan dilumpuhkan, throughput baca adalah susunan yang sama seperti throughput tulis.

Latensi menandakan kelewatan selepas operasi tulis atau baca telah dikeluarkan oleh aplikasi perisian sehingga data dipindahkan secara fizikal pada bas SPI. Dalam penanda aras ini, latensi diukur dengan mengeluarkan operasi baca dan tulis 1 bait kecil.

5 Caching CPU

Secara lalai, caching CPU dilumpuhkan pada kebanyakan platform untuk keseluruhan ruang memori I/O. Ini menguatkuasakan akses memori yang tersusun dan tidak digabungkan dan adalah satu kemestian, contohnyaample, untuk mengisi FIFO perkakasan atau untuk memprogram atau memadam peranti Flash.

Untuk kenangan F-RAM, bagaimanapun, cache CPU mungkin didayakan dalam kombinasi dengan akses dipetakan memori untuk menolak sampul prestasi lebih jauh. Dengan cache CPU, saiz letusan semula jadi pada bas SPI untuk membaca dan menulis ialah satu baris cache (64 bait pada i.MX8QXP). Ini menjadikan penggunaan lebar jalur bas SPI yang tersedia dengan lebih baik berbanding dengan siri pemindahan yang lebih kecil. Walau bagaimanapun, semasa penurunan kuasa, data mungkin hilang jika ia berada dalam talian cache yang belum ditulis kembali kepada F-RAM. Manakala untuk memori RAM biasa, tingkah laku ini boleh diterima dengan sempurna, untuk F-RAM tidak.

Mendayakan skim caching baca mudah (iaitu, dengan dasar cache tulis) adalah selamat untuk F-RAM, kerana data ditulis kembali dengan serta-merta ke tatasusunan F-RAM dalam konfigurasi ini.

Jika aplikasi mempunyai titik penyegerakan yang jelas (contohnyaample, menyimpan imej kamera penuh), maka polisi tulis balik pun mungkin didayakan. Operasi tulis yang lebih kecil boleh digabungkan dengan skema ini untuk membina penulisan baris cache penuh 64-bait yang sangat cekap. Walau bagaimanapun, arahan penyelenggaraan halangan dan cache mesti ditambahkan pada titik penyegerakan kod sumber, dalam kes ini untuk mengepam cache dari semasa ke semasa. Arahan sedemikian menyebabkan data yang terkumpul dalam cache CPU ditulis semula secara eksplisit, dan dengan itu menghapuskan risiko kehilangan data.

6 Kesimpulan

Kebanyakan pengawal SPI hari ini menyokong akses dipetakan memori kepada peranti luaran. Oleh itu, dengan pengawal ini, akses dipetakan memori telah menjadi pilihan yang berdaya maju untuk dipertimbangkan dan pelanggan boleh mendapat manfaat daripadanya, khususnya dalam kes F-RAM.

Akses yang dipetakan memori kepada F-RAM mempunyai faedah prestasi yang jelas dan memudahkan kod aplikasi berbanding kaedah akses EEPROM/Flash bersiri klasik. Ia bersifat universal, fleksibel dan menyepadukan F-RAM dengan lancar ke dalam sistem moden.

Dengan menganalisis dan mengoptimumkan kod aplikasi dengan teliti, gabungan capaian yang dipetakan memori dengan caching CPU boleh meningkatkan lagi daya pemprosesan dan kependaman.

7 Dokumen Berkaitan

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Dokumen Berkaitan

Lampiran A. Memcpy() 16-bait yang dioptimumkan untuk ARMv8-A

Pelaksanaan memcpy() lalai untuk ARMv8-A dalam Linux menggunakan arahan pemasangan pasangan muat dan pasang stor yang menggerakkan dua daftar 8 bait sekaligus. Malangnya, arahan ini mencetuskan dua letusan SPI 8-bait pada bas dan bukannya letusan 16-bait tunggal. Untuk memperbaiki keadaan, memcpy() boleh dioptimumkan untuk menggunakan daftar FP/SIMD 16-bait serta arahan muat/stor yang sepadan, seperti yang ditunjukkan di bawah. Perubahan ini menghasilkan letupan SPI 16-bait yang dikehendaki pada bas.

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Lampiran A

Sejarah Dokumen

Tajuk Dokumen: AN229843 – Akses Dipetakan Memori kepada SPI F-RAM Nombor Dokumen: 002-29843

Akses Dipetakan Memori CYPRESS kepada Panduan Pengguna SPI F-RAM AN229843 - Sejarah Dokumen

Sokongan Jualan dan Reka Bentuk Seluruh Dunia
Cypress mengekalkan rangkaian pejabat, pusat penyelesaian, wakil pengilang dan pengedar di seluruh dunia. Untuk mencari pejabat yang terdekat dengan anda, lawati kami di Cypress Locations.

Produk
Pengawal Mikro Arm® Cortex® cypress.com/arm
Automotif  cypress.com/automotive
Jam & Penampan cypress.com/clocks 
Antara muka cypress.com/interface
Internet Perkara  cypress.com/iot
Ingatan  cypress.com/memory
Pengawal mikro cypress.com/mcu 
PSoC cypress.com/psoc
IC Pengurusan Kuasa  cypress.com/pmic
Sentuhan Sensing  cypress.com/touch
Pengawal USB cypress.com/usb 
Kesambungan Wayarles cypress.com/wireless

Penyelesaian PSoC®
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP | PSoC 6 MCU

Komuniti Pembangun Cypress
Komuniti | Kod Cthamples | Projek | Video | Blog | Latihan | Komponen

Sokongan Teknikal
cypress.com/support

Semua tanda dagangan lain atau tanda dagangan berdaftar yang dirujuk di sini adalah hak milik pemilik masing-masing.

Logo CYPRESS

Semikonduktor Cypress
Sebuah Syarikat Infineon Technologies 198 ChampMahkamah ion
San Jose, CA 95134-1709

© Cypress Semiconductor Corporation, 2020. Dokumen ini adalah hak milik Cypress Semiconductor Corporation dan anak syarikatnya (“Cypress”). Dokumen ini, termasuk sebarang perisian atau perisian tegar yang disertakan atau dirujuk dalam dokumen ini ("Perisian"), dimiliki oleh Cypress di bawah undang-undang harta intelek dan perjanjian Amerika Syarikat dan negara lain di seluruh dunia. Cypress menyimpan semua hak di bawah undang-undang dan perjanjian tersebut dan tidak, kecuali seperti yang dinyatakan secara khusus dalam perenggan ini, memberikan mana-mana lesen di bawah paten, hak cipta, tanda dagangan atau hak harta intelek yang lain. Jika Perisian tidak disertakan dengan perjanjian lesen dan anda sebaliknya tidak mempunyai perjanjian bertulis dengan Cypress yang mengawal penggunaan Perisian, maka Cypress dengan ini memberikan anda lesen peribadi, bukan eksklusif, tidak boleh dipindah milik (tanpa hak untuk sublesen ) (1) di bawah hak ciptanya dalam Perisian (a) untuk Perisian yang disediakan dalam bentuk kod sumber, untuk mengubah suai dan mengeluarkan semula Perisian semata-mata untuk digunakan dengan produk perkakasan Cypress, hanya secara dalaman dalam organisasi anda, dan (b) untuk mengedarkan Perisian dalam bentuk kod binari secara luaran kepada pengguna akhir (sama ada secara langsung atau tidak langsung melalui penjual semula dan pengedar), semata-mata untuk digunakan pada unit produk perkakasan Cypress, dan (2) di bawah tuntutan paten Cypress yang dilanggar oleh Perisian (seperti yang disediakan oleh Cypress, tidak diubah suai) untuk membuat, menggunakan, mengedar dan mengimport Perisian semata-mata untuk digunakan dengan produk perkakasan Cypress. Sebarang penggunaan lain, pengeluaran semula, pengubahsuaian, terjemahan, atau penyusunan Perisian adalah dilarang.

SEJAUH YANG DIBENARKAN OLEH UNDANG-UNDANG YANG BERKENAAN, CYPRESS TIDAK MEMBUAT SEBARANG JENIS JAMINAN, TERSURAT MAUPUN TERSIRAT, BERKENAAN DOKUMEN INI ATAU MANA-MANA ​​PERISIAN ATAU PERKAKASAN YANG MENGIRINGI, TERMASUK, TETAPI TIDAK TERHAD KEPADA, PERKARA TERSIRAT DAN TIDAK TERHAD. .

Tiada peranti pengkomputeran boleh benar-benar selamat. Oleh itu, walaupun langkah keselamatan dilaksanakan dalam produk perkakasan atau perisian Cypress, Cypress tidak akan mempunyai liabiliti yang timbul daripada sebarang pelanggaran keselamatan, seperti akses tanpa kebenaran atau penggunaan produk Cypress. CYPRESS TIDAK MEWAKILI, MENJAMIN ATAU MENJAMIN BAHAWA PRODUK ATAU SISTEM CYPRESS YANG DIBUAT MENGGUNAKAN PRODUK CYPRESS, AKAN BEBAS DARIPADA RASUAH, SERANGAN, VIRUS, GANGGUAN, PENGGODAMAN, KEHILANGAN ATAU KECURIAN DATA, ATAU SECARA LAIN-LAIN. ). Cypress menafikan sebarang liabiliti yang berkaitan dengan sebarang Pelanggaran Keselamatan, dan anda hendaklah dan dengan ini melepaskan Cypress daripada sebarang tuntutan, kerosakan atau liabiliti lain yang timbul daripada sebarang Pelanggaran Keselamatan. Selain itu, produk yang diterangkan dalam bahan ini mungkin mengandungi kecacatan reka bentuk atau ralat yang dikenali sebagai errata yang boleh menyebabkan produk menyimpang daripada spesifikasi yang diterbitkan. Setakat yang dibenarkan oleh undang-undang yang terpakai, Cypress berhak untuk membuat perubahan pada dokumen ini tanpa notis lanjut. Cypress tidak menanggung sebarang liabiliti yang timbul daripada penggunaan atau penggunaan mana-mana produk atau litar yang diterangkan dalam dokumen ini. Sebarang maklumat yang diberikan dalam dokumen ini, termasuk mana-mana sampmaklumat reka bentuk atau kod pengaturcaraan, disediakan hanya untuk tujuan rujukan. Adalah menjadi tanggungjawab pengguna dokumen ini untuk mereka bentuk, memprogram dan menguji dengan betul kefungsian dan keselamatan mana-mana aplikasi yang dibuat untuk maklumat ini dan sebarang produk yang dihasilkan. “Peranti Berisiko Tinggi” bermaksud sebarang peranti atau sistem yang kegagalannya boleh menyebabkan kecederaan diri, kematian atau kerosakan harta benda. CthampPeranti Berisiko Tinggi ialah senjata, pemasangan nuklear, implan pembedahan dan peranti perubatan lain. “Komponen Kritikal” bermaksud mana-mana komponen Peranti Berisiko Tinggi yang kegagalannya untuk melaksanakannya boleh dijangka secara munasabah menyebabkan, secara langsung atau tidak langsung, kegagalan Peranti Berisiko Tinggi, atau menjejaskan keselamatan atau keberkesanannya. Cypress tidak bertanggungjawab, secara keseluruhan atau sebahagian, dan anda hendaklah dan dengan ini melepaskan Cypress daripada sebarang tuntutan, kerosakan atau liabiliti lain yang timbul daripada sebarang penggunaan produk Cypress sebagai Komponen Kritikal dalam Peranti Berisiko Tinggi. Anda hendaklah menanggung rugi dan menahan Cypress, pengarahnya, pegawai, pekerja, ejen, ahli gabungan, pengedar, dan serah hak tidak berbahaya daripada dan terhadap semua tuntutan, kos, kerosakan dan perbelanjaan, yang timbul daripada sebarang tuntutan, termasuk tuntutan untuk liabiliti produk, kecederaan peribadi atau kematian, atau kerosakan harta benda yang timbul daripada sebarang penggunaan produk Cypress sebagai Komponen Kritikal dalam Peranti Berisiko Tinggi. Produk Cypress tidak dimaksudkan atau dibenarkan untuk digunakan sebagai Komponen Kritikal dalam mana-mana Peranti Berisiko Tinggi kecuali setakat yang terhad (i) helaian data Cypress yang diterbitkan untuk produk tersebut dengan jelas menyatakan Cypress telah melayakkan produk untuk digunakan dalam Risiko Tinggi tertentu. Peranti, atau (ii) Cypress telah memberi anda kebenaran bertulis terlebih dahulu untuk menggunakan produk sebagai Komponen Kritikal dalam Peranti Berisiko Tinggi tertentu dan anda telah menandatangani perjanjian ganti rugi yang berasingan.
Cypress, logo Cypress, Spansion, logo Spansion dan gabungannya, WICED, PSoC, CapSense, EZ-USB, F-RAM dan Traveo ialah tanda dagangan atau tanda dagangan berdaftar Cypress di Amerika Syarikat dan negara lain. Untuk senarai lebih lengkap tanda dagangan Cypress, lawati cypress.com. Nama dan jenama lain boleh dituntut sebagai hak milik pemilik masing-masing.

www.cypress.com

Dokumen / Sumber

Akses Dipetakan Memori CYPRESS kepada SPI F-RAM AN229843 [pdf] Panduan Pengguna
CYPRESS, Memori Dipetakan, Akses, kepada, SPI, F-RAM, AN229843

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *