Posts Issued on October 25, 2022

posted by sakurai on October 25, 2022 #538

図%%.1

機能安全(注1)コンサルティングを提供するFSマイクロ株式会社(本社:名古屋市)代表取締役社長 桜井 厚の論文が、2022年10月22日、IEEE(注2)主催の信頼性に関する国際学会であるRAMS 2023(注3)に正式採択されました。同著者の論文がRAMSに採択されるのは4年連続となります。また同著者は、2017年にIEEE主催の国際学会である第14回ISPCE 2017(注4)において、最優秀論文賞を受賞しています。

RAMS 2023は、2023年1月23日から26日まで米国フロリダ州オーランドのフロリダホテルアンドカンファレンスセンターにて開催される予定です。

図%%.2

2018年に車載電子機器における機能安全の国際規格であるISO 26262(注5)第2版が発行され、併せてPMHF(注6)式も改訂されました。同著者はRAMS 2020において、このPMHF式の数学的な背景を明らかにし、最適値が算出可能な新しいPMHF式を提案しました。

本論文は、新提案の確率的構成要素を用いることで、同著者の提唱するPMHF式を再度証明したものです。具体的には主機能と安全機構の合体エレメントを考えることで、ISO26262第1版におけるPMHF式を確率的構成要素に分解し、主機能と安全機構が修復可能な場合におけるPMHF式となることを証明しました。そのため、従来見られたPMHFの過剰見積りを防止することが可能となります。これにより、自動運転システムに代表される耐故障システム(注7)の設計工数の削減と市場投入期間の短縮が期待されます。

【お問い合わせ先】
商号      FSマイクロ株式会社
代表者     桜井 厚
設立年月日   2013年8月21日
資本金     3,200万円
事業内容    ISO 26262車載電子機器の機能安全のコンサルティング及びセミナー
本店所在地   〒460-0011
        愛知県名古屋市中区大須4-1-57
電話      052-263-3099
メールアドレス info@fs-micro.com
URL      http://fs-micro.com/

【注釈】
注1:機能安全は、様々な安全方策を講じることにより、システムレベルでの安全性を高める考え方
注2:IEEE(アイトリプルイー)はInstitute of Electrical and Electronics Engineersの略称。電気工学・電子工学技術に関する、参加人数、参加国とも世界最大規模の学会 http://ieee.org/
注3:RAMS(ラムズ)2023はThe 69th Annual Reliability & Maintainability Symposiumの略称。IEEE信頼性部会が主催する、信頼性工学に関する国際学会 http://rams.org/
注4:ISPCE(アイスパイス)はIEEE Symposium on Product Compliance Engineeringの略称。IEEE製品安全部会が主催する、製品安全に関する国際学会 http://2017.psessymposium.org/
注5:ISO 26262とは車載電気・電子システムに関する機能安全規格であり、自動車の運行中に車載電気・電子システムの故障により危険な事象が起きる可能性を、許容できる範囲にまで減少させることを目的とした国際規格
注6:PMHF(ピーエムエイチエフ)はProbabilistic Metric for Random Hardware Failuresの略称。車載電気・電子システムにおいて、車両寿命間にシステムが不稼働となる確率を時間平均した、ISO 26262のハードウェアに関する設計目標値のひとつ
注7:耐故障システムとは、故障した場合に直ちに機能を失うことなく、本来の機能を代替可能な安全性向上のためのシステム


左矢前のブログ 次のブログ右矢

posted by sakurai on October 25, 2022 #537

10/22に最終論文を提出するようにRAMS委員会から返答がありました。10/25に最終論文及びプレゼン資料を登録し、これで正式採択となります。

RAMS 2023は2023年1月にフロリダ州オーランドで開催予定ですが、CDCによる入国制限が今だ継続しており、米国入国が可能かどうかは現段階では不透明です。なお、入国できない場合は録画等で発表予定です。

表537.1 RAMS 2023へのマイルストーン
期限 マイルストーン 状態
2022/8/1 論文、プレゼン投稿締め切り(名前、所属無し版) 投稿済
2022/9/12022/9/27 第1回論文、プレゼン資料査読コメント受領 受領済
2022/10/9 改訂版論文、プレゼン投稿締め切り(名前、所属無し版) 投稿済
2022/10/22 最終査読コメント受領 受領済
2022/10/10 学会出席登録締め切り 登録済
2022/10/102022/10/25 最終論文、プレゼン投稿締め切り(名前、所属有り版) 登録済


左矢前のブログ 次のブログ右矢

posted by sakurai on October 25, 2022 #536

デコーダのソースの一部を示します。

genRules(
   switch(in_instr,
      when(pat(n(7'b0000000), v, v, n(3'b000), v, n(7'b0110011)), fadd),
      when(pat(n(7'b0100000), v, v, n(3'b000), v, n(7'b0110011)), fsub),
      when(pat(               v, v, n(3'b000), v, n(7'b0010011)), faddi),
      when(pat(n(7'b0000000), v, v, n(3'b111), v, n(7'b0110011)), fand),
      when(pat(n(7'b0000000), v, v, n(3'b110), v, n(7'b0110011)), ffor),
      when(pat(n(7'b0000000), v, v, n(3'b100), v, n(7'b0110011)), fxor),
      when(pat(               v, v, n(3'b111), v, n(7'b0010011)), fandi),
      when(pat(               v, v, n(3'b110), v, n(7'b0010011)), fori),
      when(pat(               v, v, n(3'b100), v, n(7'b0010011)), fxori),
      when(pat(               v, v, n(3'b010), v, n(7'b0000011)), flw),
      when(pat(            v, v, v, n(3'b010), v, n(7'b0100011)), fsw),
      when(pat(n(7'b0000000), v, v, n(3'b001), v, n(7'b0110011)), fsll),
      when(pat(n(7'b0000000), v, v, n(3'b101), v, n(7'b0110011)), fsrl),
      when(pat(n(7'b0100000), v, v, n(3'b101), v, n(7'b0110011)), fsra),
      when(pat(n(7'b0000000), v, v, n(3'b001), v, n(7'b0010011)), fslli),
      when(pat(n(7'b0000000), v, v, n(3'b101), v, n(7'b0010011)), fsrli),
      when(pat(n(7'b0100000), v, v, n(3'b101), v, n(7'b0010011)), fsrai),
      when(pat(n(7'b0000000), v, v, n(3'b010), v, n(7'b0110011)), fslt),
      when(pat(n(7'b0000000), v, v, n(3'b011), v, n(7'b0110011)), fsltu),
      when(pat(               v, v, n(3'b010), v, n(7'b0010011)), fslti),
      when(pat(               v, v, n(3'b011), v, n(7'b0010011)), fsltiu),
      when(pat(v, v, v, v, n(3'b000), v, v, n(7'b1100011)), fbeq),
      when(pat(v, v, v, v, n(3'b001), v, v, n(7'b1100011)), fbne),
      when(pat(v, v, v, v, n(3'b100), v, v, n(7'b1100011)), fblt),
      when(pat(v, v, v, v, n(3'b101), v, v, n(7'b1100011)), fbge),
      when(pat(v, v, v, v, n(3'b110), v, v, n(7'b1100011)), fbltu),
      when(pat(v, v, v, v, n(3'b111), v, v, n(7'b1100011)), fbgeu),
      when(pat(v, v, v, v, v, n(7'b1101111)), fjal),
      when(pat(               v, v, n(3'b000), v, n(7'b1100111)), fjalr),
      when(pat(               v, v, n(7'b0110111)), flui),
      when(pat(               v, v, n(7'b0010111)), fauipc),
      when(pat(               v, v, n(3'b001), v, n(7'b1110011)), fcsrrw),
      when(pat(               v, v, n(3'b101), v, n(7'b1110011)), fcsrrwi),
      when(pat(               v, v, n(3'b010), v, n(7'b1110011)), fcsrrs),
      when(pat(               v, v, n(3'b110), v, n(7'b1110011)), fcsrrsi),
      when(pat(               v, v, n(3'b011), v, n(7'b1110011)), fcsrrc),
      when(pat(               v, v, n(3'b111), v, n(7'b1110011)), fcsrrci),
      when(pat(n(25'b0), n(7'b1110011)), fecall)
   ) // switch
);

これは1ステップ目のデコーダステップであり、ここでビットパターン、例えばaddi命令とのマッチが取れれば、2ステップ目として個別の関数、例えばfaddiが呼び出されます。一例であるfaddiを示せば、

function Action faddi(Bit#(12) imm, Bit#(5) rs1, Bit#(5) rd) = 
   action
      Int#(32) immSext = signExtend(unpack(imm));
      if (immSext == 0)
         $display("time %4t -   mv\t%s,%s", $time, regname(rd), regname(rs1));
      else if (rs1 == 0)
         $display("time %4t -   li\t%s,%0d", $time, regname(rd), immSext);
      else
         $display("time %4t -   addi\t%s,%s,%0d", $time, regname(rd), regname(rs1), immSext);
   endaction;

RISC-Vにおいてaddi命令はイミディエイトがゼロの場合はmv命令として使用され、逆にソースレジスタにゼロレジスタを指定すれば、イミディエイトロード(li)命令として働きます。これらはプロセッサの設計的には不要な処理ですが、逆アセンブラのシンタックスシュガーとして実装しました。

2ステップ目の処理として、各種関数を命令数だけ並べる必要があります。


左矢前のブログ 次のブログ右矢