実時間処理または高速制御の仕組みは、いろいろ考えることができる。
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
clock
CPUのclockがどれだけかによって、どれくらいの処理が可能かが比例する。
clock以外は同じ処理能力の設計であれば、処理時間はclockに比例する。
100MHzのCPUは、1GHzのCPUの10分の1の処理速度である。
Register 幅
4bit, 8bit, 16bit, 32bit, 64bit, 128bit と増えてくれば、計算結果のビット数が多いほど、処理精度が高い。もし、計算精度が必要な場合は、同じClockであればRegister幅が広い方が有利だろう。
メモリアドレスが何ビットかは、次の主記憶装置の大きさに関する事項で分類でき、アドレス幅が何bitあろうが、実メモリが存在しない場合には有り難みが少なく、意味をなさないかもしれない。
メモリ容量
8KB(kiro byte), 64KB, 1MB, 10MB, 100MB, 1GB, 10GB,100GBなど、容量が大きければ、
あらかじめ複雑な計算結果を値として持って、表記美で結果を渡すことができる。
どのような処理かによるが、高速化に大容量が関係できることがわかる。
固定小数点、浮動小数点
計算を整数だけにすれば、高速処理は実現しやすい。
小数を扱いたい場合も、浮動小数点ではなく、固定小数点にした方が処理速度をかせぐことができるかもしれない。 浮動小数点演算装置の能力による。問題の大きさと、必要な精度により、絶対といえるとは鍵らないかもしれない。
割恋処理
外部からの入力があれば、すぐに必要な処理へCPUのハードウェア機能またはファームウェア機能として実現していれば、高速処理が可能である。
CPUの設計によっては、レジスタを表裏の2種類もち、高速に切り替える機能をもっている場合があった。
割り込み優先度
割り込みの種類によって優先度を設定できるCPUがある。
処理したい割り込みの種類と関連性によるが、割り込み優先度がいくつあるとよいかについての実情はよく存じ上げない。
個人的には3つか、4つくらいまでは設計できる気がする。
例えば、ブレーキとアクセルとハンドルとかの入力割り込みと、モータの出力制御割り込みの3種類。
割込みの概要と簡単な実例
割り込み禁止区間の最小化
必要以上に割り込み禁止区間を設定しないことが大事かもしれない。
最小時間の割り込みに対して、その時間の半分以下で実行できないようだと、他の処理が実行できる確率は極端に減っていくかもしれない。
例えば、100マイクロ秒ごとの割り込み処理があった場合に、処理時間が50μs以上かかると、他の処理がほとんどできなくなるかもしれない。
上の図の上の4つが、1、2、4、8と倍の時間間隔の処理で、それぞれが4分の1の時間で終わるようなら納まることがわかる。
上の図の下の3つは、1、4、16と4倍の時間間隔の処理で、それぞれが4分の1の時間で終わるようなら治ることがわかる。
資源天井規約
OSEK/VDX OSでは、資源を使う処理では、
その資源に優先度を割り当て、資源待ちによる処理停止(dead lock)が起きないようにする仕組みがある。
さらに、重要なことは、最優先処理は、資源を割り当てなければ、その天井よりも上で実行でき、制御を妨げない仕組みになっている。 周期の4分の1以下で終わるようであれば、他の処理の設計にも悪い影響は与えないかもしれない。
例えば、一まわり大きな周期処理の場合も、その周期の4分の1以下で終わるようであれば、ほかの処理の設計にも悪い影響は与えないかもしれない。
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 初稿 20240427
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.