マルチコアCPUを効率的に使うためのいくつかの壁を想定する。
その上で、AUTOSARのマルチコア対応について検討する。
bootコアにどのOSを載せるか。
できれば小さい方がいい。
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
TOPPERSのアイデアコンテスト
提案する予定の事項
|boot core|2nd|3rd|4th|5th|6th|
|:--|:--|:--|:--|:--|:--|:--|
|c|a|
|c|c|
|a|c|
|a|a|
|c|c|c|c|
|c|c|c|a|
|c|c|a|a|
|c|a|a|a|
|a|c|c|c|
|a|a|c|c|
|a|a|a|c|
|a|a|a|a|
|c|c|c|c|c|c|
|c|c|c|c|c|a|
|c|c|c|c|a|a|
|c|c|c|a|a|a|
|c|c|a|a|a|a|
|c|a|a|a|a|a|
|a|c|c|c|c|c|
|a|a|c|c|c|c|
|a|a|a|c|c|c|
|a|a|a|a|c|c|
|a|a|a|a|a|c|
|a|a|a|a|a|a|
a:adaptive platform: Linux
c:classic platform: Osek os
壁1 マルチコアloader
マルチコアCPUを起動しようとするときに、
マルチコアCPUのハードウェアマニュアルを読んで、
プログラムを書くといいと思うかもしれない。
それで書ける人はそれで書けばいい。
個々のCPUで、マルチコア機能の改良が進んでおり、
共同開発者または提案者でないとなかなか理解できないかもしれない。
マルチコアにどうやってプログラムをloadするかを考えるのが面倒臭いから
ROMブートにするという人がいると嬉しいかもしれない。
できれば、loader自体はCPUに機能としてあって、起動時に引数を渡して起動すれば、その引数で渡したところの番地から、それぞれのコアにloadしてくれると嬉しいかも。
壁2 マルチコア monitor
ロードできたとして、じゃ走らせて、どう走っているかを確かめる方法があると嬉しい。
コアが一つであれば、CPUの一つのピンを入出力にしてmonitorするように、
できれば、CPUのコア数分のピンがあって、そこで別々にmonitorできると嬉しい。
壁 3 マルチコア debugger
loader, monitorとくれば、次はdebuggerだろうか。
マルチコアで、いちいち、メインコアを経由してデバッグするのは面倒臭い。
かといって、それぞれのコアごとに、重いデバッガを入れると嬉しくないかもしれない。
マルチコアのデバッガを書いたり、デバッグしたことがなく、どういう設計がいいかはわかっていない。
コア一つのデバッガでも、デバッガのデバッグをするのに、どこにメモリを取るかとか、どう割り込みの禁止解除をするのか、ハードウェアで仕組みが用意してあると嬉しいと思う。
マルチコアであれば、マルチコア用のデバッガ機能がハードウェアで機能があると嬉しいかもしれない。
マルチコア用のデバッガは、割り込みの設定、監視が容易にできると嬉しい。
マルチコアへ割り込みを通知する際の注意点
https://malt.zendesk.com/hc/ja/articles/900006259663-マルチコアへ割り込みを通知する際の注意点
ペリフェラルの割り込みを静的にコアに割り付けてみよう!
2018年9月20日 浅羽 鉄平
https://www.aps-web.jp/academy/linux-mpsoc/546/
マルチコア時代のリアルタイムシステムの設計
https://www.concurrent-rt.co.jp/external/TechSup/PDF/RealTimeSystem.pdf
壁4 マルチコアOS
同じ種類のマルチコアを、一つの種類のOSで管理しているのは、
わかりやすいかもしれない。
それで必要な機能が実現すればいいことだ。
壁5 マルチコア、複数OS
せっかく複数コアがあれば、コアごとに異なるOSが動いていると嬉しいかもしれない。
一つは、OSEK、もう一つはLinuxっていう感じで。
SafeGは、
https://www.toppers.jp/safeg.html
汎用OSとしてLinux、RTOSとしてTOPPERS/FMPカーネル
FMPカーネルを、OSEKカーネルへ移植すればいいのかも。
書けるはずの方々の資料を見て描かなきゃって
本田晋也
https://porta.nanzan-u.ac.jp/research/view?l=ja&u=104254
http://www.ertl.jp/~honda/
組込み向け高信頼デュアルOSモニタのマルチコアアーキテクチャへの適用
https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=73837&item_no=1&attribute_id=1&file_no=1
SafeG-MP : マルチコア対応の組込みシステム向け仮想化環境
太田貴也, 大橋孝輔, D. Sangorrin, 本田晋也, 高田広章, 堀田孝一, 大山田光夫
マルチコア対応RTOSのハードウェア化による性能向上
丸山修孝, 一場利幸, 本田晋也, 高田広章
マルチコアにおけるコア隔離機構Timer ShieldによるLinuxのリアルタイム性向上
山田 真大, 小林 良岳, 本田 晋也, 高田 広章
https://www.jstage.jst.go.jp/article/jssst/31/4/31_4_77/_pdf/-char/ja
Athrill2でマルチコア
マルチコア対応仮想環境(athrill)を使用して TOPPERS/ATK2 を実行する
https://gist.github.com/tmori/11483e82a52c8ea8c2db6454d0cd8ed2
AUTOSARによる開発 ~排他エリア(Exclusive Area)
https://www.fsi.co.jp/blog/4572/
mROSをクラウド/仮想環境に連携させてみる
https://www.slideshare.net/takasehideki/mros
athrill(アスリル)から箱庭(hakoniwa)へ 森 崇 氏(永和システムマネジメント)
https://swest.toppers.jp/SWEST21/program/txt/s3b_minute.html
メモリ保護対応版 athrill(アスリル) のご紹介https://qiita.com/kanetugu2018/items/f2205475c4a4eae699c0
#参考資料
TOPPERS Rank 929|総記事数 230 | 総いいね数 1,409
https://qtvisualizer.com/trends/explore/TOPPERS
IAR Embedded Workbench®
C-SPY® デバッグガイド Advanced RISC Machines Ltd
ARM® コア
http://www.iarsys.co.jp/download/LMS2/arm/8101/ewarm8101doc/arm/doc/EWARM_DebuggingGuide.JPN.pdf
修士論文
マルチコア上での ソフトウェアフォルトトレランス技術に関する研究
北陸先端科学技術大学院大学
情報科学研究科情報科学専攻
川口 貴司 2010年3月
https://dspace.jaist.ac.jp/dspace/bitstream/10119/8923/3/paper.pdf
SMP・マルチコアに対応した型付きアセンブ リ言語
前田俊行 米澤明憲
http://web.yl.is.s.u-tokyo.ac.jp/~tosh/talk/tosh-dsw2008.pdf
マルチコアアセンブリ言語はどのように見えますか?
https://www.it-swarm-ja.com/ja/assembly/マルチコアアセンブリ言語はどのように見えますか?/957679975/
STM32MP1 - GIC
グローバル割込みコントローラ 2.0 版
https://www.stmcu.jp/wp/wp-content/uploads/files/presentation-ja/STM32MP1/10_STM32MP1-System-Global-Interrupt-Control-(GIC)_J.pdf
linux-kernel - マルチコアシステムでハードウェア割り込みを実行するプロセッサ
https://base64.work/so/linux-kernel/3237879
RH850 マルチコアプログラミングガイド 詳細編
https://www.renesas.com/eu/ja/document/man/897131?language=ja
産業用計算機のマルチコアCPU適用 - 三菱電機
https://www.giho.mitsubishielectric.co.jp/giho/pdf/2010/1010107.pdf
マ ル チ コ ア C P U で の L i n u x (†) リアルタイム性向上手法
https://www.global.toshiba/content/dam/toshiba/migration/corp/techReviewAssets/tech/review/2014/07/69_07pdf/r01.pdf
組み込みマルチコアプロセッサの ソフトウェア
https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=65529&item_no=1&attribute_id=1&file_no=1
パケット処理のマルチコアスケールについて
https://qiita.com/nyamage/items/04f348a868475cef0c77
現代における自作OSの難しさ 〜自作OSのいまと昔 [第2回]
https://knowledge.sakura.ad.jp/22963/
μITRON4.0 仕様 マルチコアプロセッサ拡張 ガイドライン (μITRON/AMP ガイドライン) Ver. 1.00.00
https://www.tron.org/ja/wp-content/themes/dp-magjam/pdf/specifications/ja/WG024-W030-01.00.00.pdf
マルチコアプロセッサ対応リアルタイムOS
https://www.esol.co.jp/embedded/et-kernel_multicore-edition.html
FreeRTOS カーネルの基礎
https://docs.aws.amazon.com/ja_jp/freertos/latest/userguide/dev-guide-freertos-kernel.html
今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御 木村啓二
http://www.kumikomi.net/archives/2005/02/02multi.php?page=12
割り込み処理 2012年02月07日 情報科学類 オペレーティングシステム II
筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖
http://www.coins.tsukuba.ac.jp/~yas/coins/os2-2011/2012-02-07/
機能分散型 マルチコア設計を体験する 大牧正知 ― 小型のテレビ電話端末を複数のCPUコアで実現
https://www.cqpub.co.jp/dwm/contents/0096/dwm009600370.pdf
マルチスレッドとマルチタスクの違い
https://www.ni.com/ja-jp/support/documentation/supplemental/07/differences-between-multithreading-and-multitasking-for-programm.html
マルチコアCPUの消費電力はスケジューリングで変わる?
https://ascii.jp/elem/000/000/672/672088/2/
マルチコアにおける 排他制御用ハードウェアの研究
神谷 航輝 南角 茂樹 大阪電気通信大学大学院総合情報学研究科
https://www.ieice.org/~iss/jpn/Publications/issposter_2017/data/pdf/ISS-P-100.pdf
計算機及び計算機の制御方法 静香 二宮 厚 浦山 正文 大桃 輝昌 上畑 株式会社日立製作所
https://patents.google.com/patent/WO2017013799A1/ja
デンソーとImaginationの提携はリアルタイム動作のADAS目指す
2016年11月29日
https://www.semiconportal.com/archive/editorial/technology/design/161129-imagination.html?print
マルチECU対応タイミング検証ツール
INCHRON TS(Tool Suite)
タイミング設計、時間制約の設計、実装での発見困難なミスをシミュレーション、実機で検出
https://www.ubiquitous-ai.com/products/inchron/
並行性 マルチコア
https://tomoyuki-nakabayashi.github.io/book/concurrency/index.html
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
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 初稿
ver. 0.02 add url 20240427
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.