RX671のQSPI経由でRAM領域は確保できますか?

こんにちは

大型連休前に解決したいと思い急遽UPさせていただきます。

RX671のQSPI経由でQSPIインタフェイスを持つRAM(PSRAMなど)を接続してメモリマッピング後R/Wできるのでしょうか?

データシート上ではROM対象のようですが、Writeもできそうな記述もあるのでお伺いしたいと思います。

また、RAM領域を拡張する方法で、外部RAMを使用する以外でアイデアをお持ちの方がおられればご教授いただければありがたいです。

  • kitasanさん、こんにちは。NoMaYと申します。

    > メモリマッピング後R/W
    > Writeもできそうな記述もある

    具体的にはユーザーズマニュアルの何ページの記述ですか?あるいは、それ以外のドキュメントで見た場合は、そのURLを教えて頂けないですか?

    RX671グループ ユーザーズマニュアル ハードウェア編
    R01UH0899JJ0110 Rev.1.10 Pages 3084 2022.04.15
    www.renesas.com/jp/ja/document/mah/rx671-group-users-manual-hardware-rev100#page=2442
     

  • NoMaYさん、アドバイス頂きありがとうございます。

    ユーザーズマニュアルの2442ページに記述されている内容です。

    「メモリマップドモード」に「シリアルROMのデータを読み出すモード」と書いてありますが、FeRAMも使えるならPSRAMもつかえるのでは? というレベルの話です。

    目的は、エッジデバイスで大量の演算を要し、なおかつバッテリ駆動で稼働時間を長くしたい要件で、CoreMark/MHzが優秀なRX671を選択したのですが、何分メモリが足らずマッピングできるメモリを拡張したいということになります。

    よろしくお願いいたします。

  • kitasanさん、こんにちは。NoMaYです。

    すみません、メモリマップトでライトが出来るかどうか、という質問では無かった?、ということでしょうか?書き込みはFeRAMなりPSRAMなりのそれぞれのプロトコルでそれぞれのメモリの内部レジスタを操作出来れば良くて、メモリマップトでライト出来なくても構わない?ということでしょうか?

  • kitasanさん、こんにちは。NoMaYです。

    ユーザーズマニュアルを見直して思ったのですけれども、以下の文面を「メモリマップトでFeRAMに書ける」と解釈されたのですか?


    42. クワッドSPI メモリインタフェース(QSPIX)

    クワッドSPI メモリインタフェース(QSPIX) モジュールは、SPI 互換インタフェースを持つシリアルROM ( シリアルフラッシュメモリ、シリアルEEPROM、シリアルFeRAM などの不揮発性メモリ) を接続するためのメモリコントローラです。


    または、メモリマップトで「シリアルROMのデータを読み出す」ことが出来るなら、当然、メモリマップトで書き込むことも出来るよね、といった感じの解釈ですかね?そして、FeRAMしか例として書かれていないけれども、PSRAMはどうだろうか?という感じでしょうか?

  • NoMaYさん、こんにちは。

    FeRAMをあえて使うユースケースがわかりませんでした。(多分知見不足・・)

    シリアルフラッシュメモリやシリアルEEPROMで面倒なバンクイレース処理等がないFeRAMを使うことができるのであれば、表向き同じようなアクセスができる(?)PSRAMも行けんじゃないの。という感じです。ご推察の通りです。

    私はハードの専門でないので基本的なところで勘違いしているかもしれません。

    よろしくご教授ください。

  • NoMaYさん、こんにちは。

    返信が前後してしまいました。

    目的は、なるべく早くRAMにW/Rできる手法がないか検討している中で、単純にメモリマップトだと早そう。というところからの発想です。

    なので、「なるべく早くRAMにW/Rできる手法」があればそれで検討したいという状態です。

    何かアドバイスいただければありがたいです。

  • kitasanさん、こんにちは。NoMaYです。

    頂いたリプライで、kitasanさんの発想が、たぶん、分かったような気がしました。PSRAMということで、具体的に、以下を例にしたいと思います。

    ESP-PSRAM64 & ESP-PSRAM64H Datasheet
    cdn-shop.adafruit.com/product-files/4677/4677_esp-psram64_esp-psram64h_datasheet_en.pdf


    リードする場合、例えば、Fast Quad Readモードでは、以下のプロトコルが使われます。

    PSRAM側 上記ドキュメントの14ページ (表記上は10/22ページ)
    Figure 6-3. SPI Fast Quad Read ‘hEB

    RX671側 ユーザーズマニュアルの2468P
    42.6.7 Fast Read Quad I/O 命令


    他方、ライトする場合、例えば、SPI Quad Writeモードでは、以下のプロトコルが使われます。

    PSRAM側 上記ドキュメントの15ページ (表記上は11/22ページ)
    Figure 6-5. SPI Quad Write ‘h38

    RX671側 ユーザーズマニュアルに該当コマンドの記載無し
    つまりメモリマップトでライトする機能は無いです


    こういうことなのですけれども。

  • NoMaYさん、おはようございます。

    詳細なご説明ありがとうございます。

    頂いた情報はハード担当者に展開させていただきます。

    理解した内容を簡単に書くと、

    ・PSRAMリードだけなら、マッピングされたアドレスから読める

    ・ライトは、ドライバ等でプロトコルを組んで(提供されているかもしれないけど)書く

    ・なので、ライトは面倒で遅めだけれども、リードは簡単で早め

    という内容で方向性は間違ってないでしょうか?

    当然何かあってもこちらの全責任で進めていきます。

    よろしくお願いいたします。

  • kitasanさん、こんにちは。NoMaYです。

    もしかしたら、(遅め、は、ともかく、)早め、に関して、思っておられる程度の「桁」が違っているのでは、と危惧しています。メモリマップトにてリードする場合でも、例えば、32ビットデータを内蔵RAMからリードする場合に比べて、PSRAMからリードすると1桁以上遅くなります。この見積もりの論拠は、単純で、以下の理屈によるものです。

    内蔵RAM: RXマイコンの動作として、32ビットデータを一度に、かつ、120MHzのスピードで、リード出来ます。

    PSRAM: Quadモード(データ線を4本使うモード)であっても、リードを8回繰り返さなければ32ビットデータを得られません。更に、1回分のリードスピードも最大60MHz(CPU動作クロック120MHzの1/2(この機能の回路の仕様))になります。

    つまり、両者を比べると、8×2=16倍、の差が出てしまうのです。

  • NoMaYさん、こんにちは。kitasanです

    返信遅れました。すいません。
    頭の中はほぼPowerONReset状態です。(^-^;

    ご教示ありがとうございます。そうなりますよね・・・

    実は、SDカードを演算中のデータバッファとして使おうとして評価基板を作成し評価しておりました。
    その結果から今回のポストとなった経緯があります。
    なので、まずはSDカードのR/W速度との比較となります。
    FAT32とシーケンシャルを比較したのですがあんまり差がなかったということで、SDカードではこれが速度限界かなというところは捉えています。
    それよりも少しでも早い構成は無いかという目論見です。
    まだ試していませんが、現在の評価基板のピン配を変更すれば8bitデータバスのSDRAMが使用できそうなので手はまだ残っていそうで後は覚悟というところでしょうか。
    ちなみに、SDカードのRWとクワッドSPI メモリのRWのアクセスの比較に関してなんらかの知見をお持ちであれば教えていただければうれしいです。
    あとは自分でやってみて。ということであればCloseとします。
    お手数をおかけしてすいません。