RXv3コアのレジスタ一括退避機能の使い方(Register Bank Save Function Usage)を調べてみるスレッド

こんにちは。NoMaYです。

RXv3コア搭載の120MH動作のRXマイコンも、RX66T以降、RX671、RX66N、RX660と品種が増えてきましたが、RXv3コアのセールスポイントの1つであるレジスタ一括退避機能の使い方が今ひとつピンと来ません。そこで、いつものように、ちょっと好奇心からスレッドを立ててみました。(注: RX66Tは、160MHz動作、レジスタ一括退避機能未搭載、です。) いつものように、ぼちぼちと続きます。

ホワイトペーパー
卓越したMCU性能と電力効率を実現するRXv3コア
2019年10月
www.renesas.com/jp/ja/document/whp/introducing-rxv3-core-superior-performance-excellent-power-efficiency#page=6

割り込み応答時間の改善

モータ制御システムなどは、高速な割り込み処理によるリアルタイム性能が必要となってきます。

RXv3コアには、割り込み処理時にレジスタを高速退避/復帰するために、オプション機能として、レジスタ退避バンクと呼ばれる専用メモリを実装しています。図6に示すように、レジスタ退避バンクを使用することで割り込み応答時間を短縮でき、割り込み処理全体の時間を短縮することができます。 割り込み処理ルーチンの中で、SAVE命令を使用すると汎用レジスタとアキュムレータを1クロックで専用メモリに保存できます。RSTR命令は、保存されたレジスタを3~6cycleで復元します。レジスタ退避バンクは専用メモリを複数面持っており、多重割り込みにも対応することが可能です。

図6.割り込み応答時間の改善

レジスタ退避バンクは、割り込みハンドラだけでなく、RTOSコンテキスト切り替えにも使用できます。 RTOSコンテキスト切り替え時間は、レジスタバンク保存機能により最大20%高速化します。


Parents
  • シェルティさん、こんにちは。NoMaYです。

    別スレッドで頂いていた以下のリプライは、こちらのスレッドのものでしょうかね。リプライありがとうございました。

    community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/9581/gcc-for-renesas-rx-gnurx-dcmr/46877#46877

    シェルティです、こんにちは。

    ご連絡、解析ありがとうございます。こちらではRXv3コアのレジスタ一括退避機能をFreeRTOSカーネルで使ってみてどうなるかの検証を進めています。過去にNoMaYさんに実施いただいたプルリクエストなどを活用して、AWS本家と調整してみようと考えています。

    なお、「RXv3コアのレジスタ一括退避機能」そのものや「多重割込み」の是非についても考え方をまとめてみたいなと考えています。個人的にはNoMaYさんと似た感じの考えでいます。

    以上です


Reply
  • シェルティさん、こんにちは。NoMaYです。

    別スレッドで頂いていた以下のリプライは、こちらのスレッドのものでしょうかね。リプライありがとうございました。

    community-ja.renesas.com/cafe_rene/forums-groups/tools/f/forum21/9581/gcc-for-renesas-rx-gnurx-dcmr/46877#46877

    シェルティです、こんにちは。

    ご連絡、解析ありがとうございます。こちらではRXv3コアのレジスタ一括退避機能をFreeRTOSカーネルで使ってみてどうなるかの検証を進めています。過去にNoMaYさんに実施いただいたプルリクエストなどを活用して、AWS本家と調整してみようと考えています。

    なお、「RXv3コアのレジスタ一括退避機能」そのものや「多重割込み」の是非についても考え方をまとめてみたいなと考えています。個人的にはNoMaYさんと似た感じの考えでいます。

    以上です


Children
  • NoMaYさん

    シェルティです、こんにちは。

    はい。こちらのスレッドを指してのリプライでした。ありがとうございます。

    引き続きNoMaYさんやhirakuni45さんの書き込み等を参考にさせていただき、FreeRTOS公式のコードへのフィードバック方法の検討を進めてまいります。

    NoMaYさんとAmazon FreeRTOSの開発を一緒に始めたときはこちらシェルティひとりだったのですが、今は1個チームが組めるくらいに開発費が集まりスタンドアロンで動き始めました。ただまだまだこういった掲示板での活動やGitHubを使ってみたりなどの新しい取り組みを開始するには若いチームなので、進行速度は早くありません。AWS側の変化に追従するのに四苦八苦、といった状況ですね。とはいえ何とかいただいたフィードバックは公式に反映していくべく活動継続してまいります。Azure RTOS関連の開発も同じチームで推進しています。

    シェルティの方はというと、RTOS開発は開発チームに任せて、サンプルコードの提供方法のマイコン間の共通化や、社内ソフトウェア開発環境の整備(GitLab CI/CDを活用したマイコンソフトの評価の実機レベルでの自動化実現による品質・開発効率向上)などの活動に勤しんでおります。

    #さらに個人的にはグローバルなRTOSの整備が最低限できたから、そろそろ日本人としてITRONをまたやりたいなァ・・・などと妄想しています

    以上です