IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルテリス・インコーポレイテッドの特許一覧

特許7091546インターフェイス保護のためのシステムおよび方法
<>
  • 特許-インターフェイス保護のためのシステムおよび方法 図1
  • 特許-インターフェイス保護のためのシステムおよび方法 図2
  • 特許-インターフェイス保護のためのシステムおよび方法 図3a
  • 特許-インターフェイス保護のためのシステムおよび方法 図3b
  • 特許-インターフェイス保護のためのシステムおよび方法 図4a
  • 特許-インターフェイス保護のためのシステムおよび方法 図4b
  • 特許-インターフェイス保護のためのシステムおよび方法 図5
  • 特許-インターフェイス保護のためのシステムおよび方法 図6
  • 特許-インターフェイス保護のためのシステムおよび方法 図7
  • 特許-インターフェイス保護のためのシステムおよび方法 図8a
  • 特許-インターフェイス保護のためのシステムおよび方法 図8b
  • 特許-インターフェイス保護のためのシステムおよび方法 図9a
  • 特許-インターフェイス保護のためのシステムおよび方法 図9b
  • 特許-インターフェイス保護のためのシステムおよび方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-06-17
(45)【発行日】2022-06-27
(54)【発明の名称】インターフェイス保護のためのシステムおよび方法
(51)【国際特許分類】
   G06F 30/32 20200101AFI20220620BHJP
   G06F 115/02 20200101ALN20220620BHJP
   G06F 117/02 20200101ALN20220620BHJP
【FI】
G06F30/32
G06F115:02
G06F117:02
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2021196450
(22)【出願日】2021-12-02
【審査請求日】2022-02-10
(31)【優先権主張番号】17/116,242
(32)【優先日】2020-12-09
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ジョン・コディントン
(72)【発明者】
【氏名】シルバン・メリシアーニ
(72)【発明者】
【氏名】フレデリク・グリュ
(72)【発明者】
【氏名】グザビエ・バン・リュインベック
【審査官】松浦 功
(56)【参考文献】
【文献】特開2020-160650(JP,A)
【文献】米国特許第7930662(US,B1)
【文献】米国特許出願公開第2018/0203968(US,A1)
【文献】米国特許第7460984(US,B1)
【文献】米国特許第8131528(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
G06F 11/08 -11/10
H03M 13/03 -13/23
(57)【特許請求の範囲】
【請求項1】
インターフェイス保護のための方法であって、前記方法は、
電子設計を規定する電子設計パラメータを受信するステップと、
前記電子設計のインターフェイス保護スキームを規定するインターフェイス保護パラメータを受信するステップと、
コンポーネントのライブラリとインターフェイス保護モデルとを含むハードウェア記述ジェネレータを作成するステップと、
少なくとも前記インターフェイス保護モデルと前記インターフェイス保護パラメータと電子設計パラメータとを用いることにより、インターフェイス保護実装パラメータを作成するステップと、
少なくとも前記ハードウェア記述ジェネレータと前記電子設計パラメータと前記インターフェイス保護実装パラメータとを用いることにより、前記電子設計のハードウェア記述を生成するステップとを含む、方法。
【請求項2】
前記ハードウェア記述を出力するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記ハードウェア記述を出力するステップは、レジスタ転送ロジック(RTL)を出力するステップを含む、請求項2に記載の方法。
【請求項4】
前記インターフェイス保護パラメータは、ビルトインインターフェイス保護スキームライブラリのセットのうちのビルトイン保護スキームを指定するためのパラメータを含み、前記インターフェイス保護モデルは、保護ジェネレータ・チェッカーモデルを含み、前記ハードウェア記述ジェネレータは、前記インターフェイス保護モデルと前記ビルトインインターフェイス保護スキームライブラリのセットとを用いてインターフェイス保護実装パラメータを作成し、前記インターフェイス保護実装パラメータは、前記ハードウェア記述ジェネレータによって実行されると、イニシエータにおける保護ジェネレータと、ターゲットにおける保護ブロックと、対応する保護信号経路とを作成する、請求項1に記載の方法。
【請求項5】
前記インターフェイス保護パラメータは、1つ以上のインターフェイス保護コンポーネントのためのプレースホルダの作成を指定するためのパラメータを含み、前記ハードウェア記述ジェネレータは、前記インターフェイス保護の1つ以上のコンポーネントのためのプレースホルダを作成する、請求項4に記載の方法。
【請求項6】
前記インターフェイス保護パラメータは、前記保護ジェネレータ・チェッカーモデルの1つ以上の特徴を上書きするための1つ以上のパラメータを含む、請求項4に記載の方法。
【請求項7】
前記インターフェイス保護実装パラメータは、インターフェイス信号のセットと保護信号のセットとを含み、前記インターフェイス保護実装パラメータは、前記インターフェイス信号のセットと前記保護信号のセットとの関係を規定する、請求項4に記載の方法。
【請求項8】
前記インターフェイス信号のセットのうちの信号は、前記インターフェイス信号のセットのうちのその他の1つ以上の信号に基づいて、有効と判断される、請求項7に記載の方法。
【請求項9】
インターフェイス保護パラメータは、前記インターフェイス保護スキームを規定する1つ以上のユーザ指定インターフェイス保護スキームパラメータを含む、請求項1に記載の方法。
【請求項10】
前記インターフェイス保護パラメータは、前記ハードウェア記述のタイミングクローズを支援するためのリタイミングパラメータを含み、前記ハードウェア記述ジェネレータは、リタイミングコンポーネントを前記ハードウェア記述に追加する、請求項1に記載の方法。
【請求項11】
プロセッサとメモリとを含むシステムであって、前記メモリはコードを格納し、前記コードは、前記プロセッサによって実行されると、前記システムに、
電子設計の構造を規定する電子設計パラメータを受信することと、
前記電子設計のインターフェイス保護スキームを規定するインターフェイス保護パラメータを受信することと、
コンポーネントのライブラリとインターフェイス保護モデルとを含むハードウェア記述ジェネレータを作成することと、
少なくとも前記インターフェイス保護モデルと前記インターフェイス保護パラメータと電子設計パラメータとを用いることにより、インターフェイス保護実装パラメータを作成することと、
少なくとも前記ハードウェア記述ジェネレータと前記電子設計パラメータと前記インターフェイス保護実装パラメータとを用いることにより、前記電子設計のハードウェア記述を作成することとを、実行させる、システム。
【請求項12】
さらに前記ハードウェア記述を出力することを実行する、請求項11に記載のシステム。
【請求項13】
前記ハードウェア記述を出力することは、レジスタ転送ロジック(RTL)を出力することを含む、請求項12に記載のシステム。
【請求項14】
前記インターフェイス保護パラメータは、ビルトインインターフェイス保護スキームライブラリのセットのうちのビルトイン保護スキームを指定するためのパラメータを含み、前記インターフェイス保護モデルは、保護ジェネレータ・チェッカーモデルをさらに含み、前記ハードウェア記述ジェネレータは、前記インターフェイス保護モデルと前記ビルトインインターフェイス保護スキームライブラリのセットとを用いてインターフェイス保護実装パラメータを作成し、前記インターフェイス保護実装パラメータは、前記ハードウェア記述ジェネレータによって実行されると、保護ジェネレータと、保護チェッカーと、保護経路とを作成する、請求項11に記載のシステム。
【請求項15】
前記インターフェイス保護パラメータは、1つ以上のインターフェイス保護コンポーネントのためのプレースホルダの作成を指定するためのパラメータを含み、前記ハードウェア記述ジェネレータは、前記インターフェイス保護の1つ以上のコンポーネントのためのプレースホルダを作成する、請求項14に記載のシステム。
【請求項16】
前記インターフェイス保護パラメータは、前記保護ジェネレータ・チェッカーモデルの1つ以上の特徴を上書きするための1つ以上のパラメータを含む、請求項14に記載のシステム。
【請求項17】
前記インターフェイス保護実装パラメータは、インターフェイス信号のセットと保護信号のセットとを含み、前記インターフェイス保護実装パラメータは、前記インターフェイス信号のセットと前記保護信号のセットとの関係を規定する、請求項14に記載のシステム。
【請求項18】
前記インターフェイス信号のセットのうちの信号は、前記インターフェイス信号のセットのうちのその他の1つ以上の信号に基づいて、有効と判断される、請求項17に記載のシステム。
【請求項19】
インターフェイス保護パラメータは、前記インターフェイス保護スキームを規定する1つ以上のユーザ指定インターフェイス保護スキームパラメータを含む、請求項11に記載のシステム。
【請求項20】
前記インターフェイス保護パラメータは、前記ハードウェア記述のタイミングクローズを支援するためのリタイミングパラメータを含み、前記ハードウェア記述ジェネレータは、リタイミングコンポーネントを前記ハードウェア記述に追加する、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本技術は、コンピュータシステム設計の分野にあり、より具体的にはネットワークオンチップ(NoC:network-on-chip)のトポロジーの合成におけるインターフェイスのための保護スキームに関する。
【背景技術】
【0002】
背景
電子機器は、安全性および信頼性にとって、たとえば自動運転にとって、ますます重要になっており、それに伴って、接続されているコンポーネントが機能的であり通信していることを検証する必要性が増している。この通信は、どの電子コンポーネントでも起こり得る。たとえば、通信は、集積回路(IC)内のコンポーネント間で、ICチップ間で、回路基板間で、電子装置間で、および、これらの任意の組み合わせにおいて、行われる可能性がある。
【0003】
システムオンチップ(SoC)に実装されたマルチプロセッサシステムは、ネットワークオンチップ(SoC)等のネットワークを通して通信する。IP(Intellectual Property)ブロックまたはエレメントまたはコアが、チップの設計に使用される。SoCは、IPブロックのインスタンスを含む。一部のIPブロックはマスタである。一部のIPブロックはスレーブである。マスタとスレーブとは、NoC等のネットワークを通して通信する。
【0004】
通信の検証は、典型的にはソフトウェア、ファームウェア、またはハードウェア内で行われる。ソフトウェアおよび/またはファームウェアにおける通信の検証のいくつかの欠点は、各インターフェイスタイプごとのコードの作成および維持、このコードを実行するプロセッサの無駄な帯域幅、ならびに、エラーチェックコードの実行に要する時間に起因する、エラーが発生したときとシステムがエラーを受信したときとの間の遅延時間を含み得る。ソフトウェアおよび/またはファームウェアと比較した場合、ハードウェアで通信を検証することには利点があり、それはたとえば、プロセッサの負荷の低減、電力の削減、および応答時間の改善である。
【0005】
カスタムハードウェア通信検証の実現における課題は、コンポーネント間の互換性の保証である。IC設計チームは、その回路ブロック間の通信検証の互換性を保たなければならず、上記課題は、外部IPベンダからのIPブロックを使用する場合、指数関数的に大きくなる。外部インターフェイスを扱うとき、たとえば別のICチップとインターフェイスするときにも、同様の問題に直面する。この互換性の問題は、ICチップたとえばシステムオンチップ(SoC)により多くの機能が追加されると、一層難しくなる。加えて、IC設計者が通信検証コンポーネントをマニュアルで記述する場合、ICの設計時間が長くなり、そのためにICのコストが増加し、このマニュアルプロセスは、工学技術エラー、たとえばバグを意図せずして追加する可能性も高めることになる。加えて、特定の規格、たとえばISO26262に準拠するためには、インターフェイスが接続性を検証しなければならない。したがって、必要なのは、電子設計を、コンポーネントが機能および通信していることを検証することを追加するように修正する、システムおよび方法である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
発明の概要
電子設計を、コンポーネントが機能および通信していることを検証することを追加するように修正する、システムおよび方法が、開示される。本発明のある局面および実施形態に従うと、コンポーネントが機能および通信していることを検証することは、コンポーネントのインターフェイスにおけるハードウェアの妥当性確認を可能にするパラメータを追加することを含み得る。ハードウェアの妥当性確認を追加することは、コンポーネントの追加、コンポーネントの削除、信号の追加、信号の削除、信号の再ルーティング、およびハードウェア記述に対するその他任意の有効な修正を、含み得る。なお、当業者は、本願の出願時に、2つのコンポーネントが適切に通信しているならばこれらのコンポーネントはそのインターフェイスについて少なくとも機能していることを理解するであろう。
【0007】
本発明のある局面および実施形態に従うと、本発明は、電子設計パラメータとインターフェイス保護パラメータとを含むシステムパラメータを受けてもよい。本発明は、ビルトインライブラリおよびシステムパラメータを用いて、検証ロジックを追加するためのモデルを作成してもよい。モデルの作成後に、インターフェイス保護実装パラメータがこのモデルによって作成されてもよい。システムパラメータを用いて、妥当性確認されたハードウェア記述が作成され、システムパラメータに追加されてもよい。本発明は、妥当性確認されたハードウェア記述を出力してもよく、たとえばレジスタ転送ロジック(RTL:register transfer logic)コードを出力してもよい。本発明の別の局面および実施形態に従うと、本発明は、検証されたハードウェア記述を評価してもよく、ハードウェア記述が1つ以上の要件を満たさない場合はパラメータを調整してもよく、そうすることで、モデルを更新しハードウェア記述を再び作成してもよい。
【0008】
本発明のある局面および実施形態に従うと、妥当性確認されたハードウェア記述は、通信に傷害が発生したという通知を含み得る。本発明の別の局面および実施形態に従うと、妥当性確認スキームが、誤りのあるデータを訂正するのに十分な情報を含む場合は、検証ハードウェアがデータを訂正してもよい。
【0009】
本発明のある局面および実施形態に従うと、ユーザは、モデル作成のために内部ライブラリを使用する代わりに、モデル作成に使用するライブラリを指定してもよい。これに加えてまたはこれに代えて、ユーザは、ユーザの設計フローにおいて後に規定することができる構成のプレースホルダを指定してもよい。
【0010】
本発明を一層十分に理解するために、添付の図面または図を参照する。本発明は、以下の記載において、いくつかの局面および実施形態に従い、図面または図(FIG.)を参照しながら説明されるが、図面において、同様の番号は同一または同様の要素を示す。これらの図面は本発明の範囲を限定するものとみなされてはならないという理解の下で、ここに記載されている局面および実施形態ならびに現在理解される発明のベストモードが、添付の図面の使用を通してさらに詳細に説明される。
【図面の簡単な説明】
【0011】
図1】本発明の各種局面および実施形態に係る、イニシエータと、ネットワークオンチップ(NoC)と、ターゲットとを有するシステムを示す図である。
図2】本発明の各種局面および実施形態に係る、インターフェイスが保護された図1のシステムを示す図である。
図3a】経路によって接続された2つのIPブロックまたはモジュールを有するシステムを示す図である。
図3b】本発明の各種局面および実施形態に係る、保護経路を有する図3aのシステムを示す図である。
図4a】順方向経路および逆方向経路によって接続された2つのIPブロックまたはモジュールを有するシステムを示す図である。
図4b】本発明の各種局面および実施形態に係る、順方向保護経路および逆方向保護経路を有する図4aのシステムを示す図である。
図5】本発明の各種局面および実施形態に係る、パラメータを用いてハードウェア記述を作成するインターフェイス保護プロセスを示す図である。
図6】本発明の各種局面および実施形態に係る、インターフェイス保護最適化を示す図である。
図7】本発明の各種局面および実施形態に係る、インターフェイスが保護されたハードウェア記述を作成するためのシステムを示す図である。
図8a】本発明のある実施形態に係る、回転ディスクの非一時的なコンピュータ読取可能媒体を示す図である。
図8b】本発明のある実施形態に係る、フラッシュランダムアクセスメモリの非一時的なコンピュータ読取可能媒体を示す図である。
図9a】本発明のある実施形態に係る、コンピュータプロセッサベースのシステムオンチップの底側を示す図である。
図9b】本発明のある実施形態に係る、コンピュータプロセッサベースのシステムオンチップの上側を示す図である。
図10】本発明のある実施形態に係る、デバイスのシステムオンチップのブロック図を示す。
【発明を実施するための形態】
【0012】
詳細な説明
以下、本発明の各種局面および実施形態を示す本技術のさまざまな実施例について説明する。一般的に、実施例は、記載されている局面を任意の組み合わせで使用することができる。本明細書における、原理、局面、および実施形態、ならびにその具体例を記載したすべての記述はその構造的均等物および機能的均等物の双方を包含することが、意図されている。加えて、このような均等物は現在知られている均等物と将来開発される均等物、すなわち構造に関係なく同一機能を果たす開発された任意の要素とを含むことが、意図されている。
【0013】
なお、本明細書で使用される単数形「a」、「an」および「the」は、文脈上明らかに別段の指定がない限り、複数のものを含む。本明細書全体において、「一局面」、「ある局面」、「特定の局面」、「各種局面」、または同様の表現が記載されている場合、それは、いずれかの実施形態に関連して説明する具体的な局面、特徴、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれることを、意味する。
【0014】
本明細書全体において、「一実施形態において」、「少なくとも1つの実施形態において」、「ある実施形態において」、「特定の実施形態において」という表現、および同様の言い回しが記載されている場合、それらはすべて、同一の実施形態または同様の実施形態を意味する場合があるが、必ずしもそうではない。さらに、本明細書に記載の本発明の局面および実施形態は、具体例に過ぎず、当業者が理解する本発明の範囲または精神を限定すると解釈されてはならない。開示されている発明は、本明細書に記載のいずれかの新規の局面を含むいずれかの実施形態で有効に実施または使用される。本発明の局面および実施形態を記載した本明細書のすべての記述はその構造的均等物および機能的均等物の双方を包含することが、意図されている。このような均等物は現在知られている均等物と将来開発される均等物との双方を含むことが、意図されている。
【0015】
コンポーネントが機能的であり通信していることを保証する方法は、インターフェイス保護を追加することである。インターフェイス保護は、パリティ、誤り訂正符号(ECC:error-correcting code)、巡回冗長検査(CRC:cyclic redundancy check)、およびコンポーネントが機能的であり通信していることを保証することができるその他任意のスキーム等の、任意の種類の冗長スキームを使用して保護を実装する、ジェネレータとチェッカーとを含み得る。ハードウェアレベルでインターフェイス保護を使用する利点は、ソフトウェアが、インターフェイス保護実装の詳細を知らずにすべてのインターフェイスを同じように扱うことができる点である。
【0016】
電子部品間のインターフェイスは、内部のもの(たとえば電子設計階層内に含まれるサブブロック間のインターフェイス)と、外部のもの(たとえばARM AMBAプロトコル、OCP-IPなど)との任意の組み合わせであってもよい。外部インターフェイスは、ICチップ内の別のコンポーネントに対する、別のICチップに対する、回路基板に対する、別の電子装置に対する、または、インターフェイスと通信することができるその他任意のコンポーネントに対するインターフェイスであってもよい。外部インターフェイスとのインターフェイスを実現する場合、この外部インターフェイスは、インターフェイス保護を実装することが要求される場合がある。インターフェイス保護は、任意の種類のピン上で、たとえば、入力ピン、出力ピン、双方向ピン、およびその他任意の種類のインターフェイスピン上で、実装することができる。インターフェイス保護スキームは、たとえば電子コンポーネント間のセキュアな通信のための、符号化された信号を含み得る。
【0017】
本明細書において、「信号経路」、「経路」、および「ルート」という用語は区別なく使用される。経路は、エンドポイントおよびエッジ(エッジは本明細書ではリンクとも呼ばれる)の任意の組み合わせを含み、この組み合わせで構成され、信号またはデータの形態のトランザクションがソースから宛先(シンクまたはターゲット)まで送られる経路である。
【0018】
本明細書で使用される、「マスタ」、「イニシエータ」および「ソース」は、同様のIPブロック、ユニット、またはモジュールを意味する。「マスタ」、「イニシエータ」および「ソース」という用語は、本発明の範囲および実施形態の中で区別なく使用される。本明細書で使用される、「スレーブ」、「ターゲット」および「シンク」は、同様のIPブロックを意味し、「スレーブ」、「ターゲット」および「シンク」という用語は、本発明の範囲および実施形態の中で区別なく使用される。本明細書で使用されるトランザクションは、要求トランザクションまたは応答トランザクションであってもよい。要求トランザクションの例は、書込要求および読出要求を含む。
【0019】
次に図1を参照すると、信号を搬送する経路によってネットワークオンチップ(NoC)106に接続されたイニシエータ104を有するシステム100が示されている。イニシエータ104は、NoC06を介してターゲット108と通信する。ターゲット108は、信号を搬送する経路によってNoC106に接続される。
【0020】
次に図2を参照すると、本発明の1つ以上の実施
形態および局面に係るシステム200が示されている。イニシエータ204とターゲット208とは、ネットワークオンチップ(NoC)206を用いて通信する。システム200は、イニシエータ204とNoC206との間にインターフェイス210を含む。システム200は、ターゲット208とNoC206との間にインターフェイス212を含む。たとえば、イニシエータ204は、NoC206との通信を、要求(トランザクション)を生成し信号経路または経路216を介して送信することによって開始する。NoC206は、要求を内部回路を通してルーティングし、この要求を信号経路220を介してターゲット208に送信する。ターゲット208は、この要求を処理し、その後、応答を生成し信号経路218を介してNoC206に送信する。NoC206は、応答を内部回路を通してルーティングし、この応答を信号経路214を介してイニシエータ206に送信する。
【0021】
要求がイニシエータ204からターゲット208に送信される場合、これを順方向と呼んでもよい。リターン応答がターゲット208からイニシエータ204に送信される場合、これを逆方向と呼んでもよい。通信に言及している場合、この通信は、一方向または双方向のいずれかであると特定されていない限り、順方向および逆方向通信であることが、理解される。
【0022】
図3aを参照すると、モジュール304aとモジュール306aとが信号経路308aによって接続されたシステム302aが示されており、このシステムは、インターフェイス保護が追加される前のシステムである。本発明のある実施形態および局面に従うと、信号経路308aは、モジュール304aからモジュール306aへの単方向信号である。本発明の1つ以上の実施形態および局面に従うと、信号経路308aは、任意の種類の信号、たとえば、双方向、シリアル、マルチビット、アナログ、デジタル、混合信号、連続、離散、二重などであってもよい。本発明の1つ以上の実施形態および局面に従うと、システム302aを、パラメータを用いて、たとえばコンポーネント、接続性、ならびにモジュール304aおよびモジュール306aに関連する電子設計を説明し得るその他任意の情報を用いて、記述してもよい。
【0023】
本発明の1つ以上の実施形態および局面に従うと、システム302aに対するインターフェイス保護を、信号経路308aのインターフェイス保護を如何にして実装するかを記述するパラメータのセットを規定することにより、指定してもよい。たとえば、パラメータは、protection_type=Parityおよびsignals=Allを含み得る。本発明の1つ以上の実施形態および局面に従うと、保護ジェネレータ・チェッカーモデルが作成されてもよく、このモデルを用いてインターフェイス保護実装パラメータを作成してもよい。
【0024】
本発明の1つ以上の実施形態および局面に従うと、図3bに示されるように、保護ジェネレータ・チェッカーモデルをシステムパラメータとともにシステム302aに適用することにより、インターフェイスが保護されたシステム302bが作成される。システム302bは、モジュール304bと、モジュール306bと、信号経路308bと、保護信号経路310bと、ジェネレータ(generator)312bと、チェッカー(checker)314bと、故障信号経路316bとを含む。本発明のこの実施形態および局面に従うと、信号経路308aのためのインターフェイス保護がシステム302aに追加される場合、少なくとも以下の修正が実行される。
【0025】
ジェネレータ312bをモジュール304aに追加し、信号経路308aをジェネレータ312bを通して再ルーティングすることによって信号308bを作成し、保護信号経路310bを作成することにより、モジュール304bを作成する。
【0026】
チェッカー314bをモジュール306aに追加し、信号経路308aをチェッカー314bを通して再ルーティングすることによって保護信号経路310bを作成し、故障信号経路316bを作成することにより、モジュール306bを作成する。
【0027】
モジュール304bとモジュール306bとの間で保護信号経路310bをルーティングする。
【0028】
ジェネレータ312bは、経路308b上の信号をモニタリングすることにより、保護信号を経路310b上に作成する。チェッカー314bは、経路308b上の信号および経路310b上の保護信号をモニタリングすることにより、故障が発生したか否かを判断する。故障は、モジュール304bとモジュール306bとの間のインターフェイスの1つ以上の信号の恒久的または一時的な破損である場合がある。本発明の各種局面および実施形態に従うと、故障は、経路316b上の故障信号を用いて示される。ジェネレータ312bおよびチェッカー314bは、任意の種類の冗長スキーム、たとえばパリティ、ECC、CRCなどを用いて、インターフェイス保護を実装してもよい。本発明のある局面および実施形態に従うと、チェッカー314bは、修正可能な故障信号の経路を含むことにより、故障は修正可能であることを示してもよい。システムレベルにおいて、多数の訂正可能な誤りは、検出できない誤りの確率がより高いことを示し得るものであり、適切な応答、たとえばシステムのシャットダウンを実行してもよい。
【0029】
ジェネレータ312bおよびチェッカー314bの冗長スキームは、任意の数のチェックビット線を使用することができ、および/またはチェック対象の信号内で符号化することが可能である。たとえば、システム302bは、パリティ保護スキームを使用してもよく、このスキームにおいて、保護信号経路310bは信号経路308bのパリティビットである。たとえば、システム302bはRTLコードとして出力されてもよい。
【0030】
図4aを参照すると、インターフェイス保護が追加される前のシステムである、経路408aおよび経路410aによって接続されているモジュール404aおよびモジュール406aを有するシステム402aが示されている。本発明のいくつかの実施形態および局面に従うと、経路408aは単方向であり、信号はモジュール404aからモジュール406aに進む。経路410aは単方向経路であり、信号はモジュール406aから404sに進む。本発明の1つ以上の実施形態および局面に従うと、経路408aおよび経路410b上の信号は、任意の種類の信号、たとえば双方向、シリアル、マルチビット、アナログ、デジタル、混合信号、連続、離散などであってもよい。本発明の1つ以上の実施形態および局面に従うと、システム402aを、パラメータを用いて、たとえばインスタンス、接続性、および電子設計を記述し得るその他任意の情報を用いて、記述してもよい。本発明の1つ以上の実施形態および局面に従うと、システム402aは、システム302aと同一または同様の機能を有してもよく、システム402aは、信号の流れの方向を除いて信号経路408aと同一または同様の機能を有する追加の信号経路410aを含み得る。
【0031】
本発明の1つ以上の実施形態および局面に従うと、システム402aに対するインターフェイス保護を、経路408aのインターフェイス保護を如何にして実装するかを記述するパラメータのセットを規定することにより、特定してもよい。たとえば、パラメータは、protection_type=Parityおよびsignal=Allを含み得る。本発明の1つ以上の実施形態および局面に従うと、保護ジェネレータ・チェッカーモデルが作成されてもよく、このモデルを用いてインターフェイス保護実装パラメータが作成されてもよい。
【0032】
本発明の1つ以上の実施形態および局面に従うと、図4bに示されるように、システム402bは、保護ジェネレータ・チェッカーモデルを、適用されたシステムパラメータとともに含む。システム402bはインターフェイス保護を含む。システム402bは、モジュール404bと、モジュール406bと、経路408bと、経路410bと、保護経路412bと、ジェネレータ414bと、チェッカー416bと、故障経路418bと、保護経路420bと、チェッカー422bと、ジェネレータ424bと、故障経路426bとを含む。加えて、チェッカー416bおよび/またはチェッカー422bは、修正可能な故障信号の経路を含むことにより、故障は修正可能であることを示してもよい。本発明の1つ以上の実施形態および局面に従うと、経路408bおよび経路410bに対するインターフェイス保護の追加は、経路308aと同一または同様のやり方で行ってもよい。たとえば、システム402bはRTLコードとして出力されてもよい。
【0033】
本発明の1つ以上の実施形態および局面に従うと、インターフェイス保護の追加に続いて、インターフェイス保護の実装を評価することができる。インターフェイス保護の実装が所望の仕様を満たさない場合は、システムパラメータを調整することができ、インターフェイス保護アルゴリズムの追加を繰り返すことができる。この概念は、以下で図6を参照しながらより詳細に説明する。たとえば、インターフェイス保護がシステム402bに含まれた状態で、電気的設計をRTLとしてエクスポートする。合成・配置ルーティング(P&R:place and route)ツールが、電子設計が仕様を満たさない(たとえばタイミングをクローズできない)ことを発見した場合は、インターフェイス保護を作成するためのシステムパラメータを調整することができ、このプロセスは、仕様が満たされるまで、またはさらに他の改善が不可能なポイントに到達するまで、繰り返してもよい。システムパラメータを繰り返し調整することは、自動パラメータ調整アルゴリズム、ユーザがパラメータを対話方式で調整すること、その他任意のパラメータ調整方法、およびこれらの任意の組み合わせを含み得る。
【0034】
図5を参照して、インターフェイス保護プロセスが、ステップ502で開始される。本発明のいくつかの実施形態および局面に従うと、図5に記載されているインターフェイス保護プロセスは、パラメータを用いることで、インターフェイス保護を含むハードウェア記述を作成する。インターフェイス保護プロセスは、ユーザ入力、予定時刻到達、別のタスク完了、電子設計で発生するマイルストーンイベント、インターフェイス保護プロセスを開始可能なその他任意のイベント、およびこれらの任意の組み合わせにより、開始されてもよい。
【0035】
ステップ504において、電子設計記述パラメータとインターフェイス保護パラメータとを含むシステムパラメータを受信する。システムパラメータは、内部表現またはその他のフォーマットに変換されてもよく、変換されたシステムパラメータは残りのステップのために使用されてもよい。電子設計記述パラメータは、インターフェイス保護が追加される電子設計を記述する。電子設計記述パラメータは、電子設計の高水準記述、たとえばSystemC、等式、およびハードウェア設計に変換し得る電子設計を記述するその他任意の方法であってもよい。電子設計記述パラメータは、コンポーネント、コンポーネントパラメータ、コンポーネント接続性、電子設計インターフェイス(たとえば内部および外部インターフェイス)、およびインターフェイスパラメータを含み得る。電子設計記述パラメータは階層的であってもよく、たとえばサブブロックを含み得る。
【0036】
1つ以上の実施形態および局面において、電子設計記述パラメータは、ハードウェア記述を含み、それはたとえばハードウェア関数、ハードウェア記述言語(HDL:Hardware Description Language)、Verilog、VHDL、システムVerilog、レジスタ転送レベル(RTL:Register Transfer Level)、オープンアクセスデータベース、ライブラリ交換フォーマット(Library Exchange Format)および設計交換フォーマット(Design Exchange Format)(LEF/DEF)、ネットリスト、プロプライエタリフォーマット(たとえばベンダ開発、カスタマー開発など)、ならびにハードウェアを記述するその他任意の構造である。たとえば、図3aに示されるシステム302aは、電子設計記述パラメータを用いて記述されてもよい。
【0037】
インターフェイス保護パラメータは、インターフェイス保護スキームを記述し、たとえば、保護対象の信号(たとえば順方向および/または逆方向の任意の数の構成可能な信号)、保護の種類、保護対象のインターフェイス、ユーザ定義保護スキーム、およびインターフェイス保護スキームを規定するのに必要なその他任意のパラメータを、記述する。インターフェイス保護パラメータは、ユーザ入力、プロジェクト設定、過去の設定、デフォルトテンプレート、過去の使用に基づいた規則、およびパラメータを送信可能なその他任意のソースから、受けてもよい。インターフェイス保護パラメータは、ビルトイン保護スキームの名称を指定してもよい。たとえば、保護の種類は「パリティ」であってもよく、その場合、ビルトインライブラリを用いて、インターフェイス信号と同じ方向にパリティビットを追加することにより、電子設計を修正することができる。インターフェイス保護パラメータは、ユーザが自身の保護スキームを規定することを可能にしてもよく、その場合、インターフェイス保護パラメータは、インターフェイス保護スキームを作成するのに必要なすべてのパラメータを含む。たとえば、ユーザは、インターフェイス保護パラメータを、インターフェイス信号、これらの信号を処理する論理式、および結果として得られる保護信号のセットとして、指定してもよい。インターフェイス保護パラメータは、保護信号とインターフェイス信号との間の関係の記述を含み得る。インターフェイス保護パラメータは、インターフェイス保護が保護信号を生成する構成であって、ユーザが設計フローにおいて後に規定し得る空のプレースホルダーブロックを作成する構成を、可能にしてもよい。インターフェイス保護パラメータは、ユーザがモデルを少なくとも部分的に上書きすることとともに、ビルトインモデルの使用を可能にしてもよい。
【0038】
ステップ506において、インターフェイス保護パラメータを用いて、保護ジェネレータ・チェッカーモデルを作成する。インターフェイス保護パラメータがビルトイン保護スキームを使用するように構成されている場合、保護ジェネレータ・チェッカーモデルは、ビルトイン保護スキームライブラリおよびこのモデルを作成するのに必要なその他任意のパラメータから作成されてもよい。インターフェイス保護パラメータは、ビルトイン保護スキームライブラリモデルをベースとして使用すること、および、モデルの特定部分をインターフェイス保護パラメータで規定された通りに上書きすることを、指定してもよい。インターフェイス保護パラメータがユーザ定義保護スキームを指定する場合、保護ジェネレータ・チェッカーモデルは、インターフェイス保護パラメータを用いて作成されてもよい。
【0039】
インターフェイス保護パラメータが、プレースホルダを作成すべき保護スキームを指定する場合、保護ジェネレータ・チェッカーモデルは、このジェネレータおよびチェッカーモデルが特定のブロックのためのユーザ定義プレースホルダを作成するように構成されるように、作成されてもよい。保護ジェネレータ・チェッカーモデルは、電子設計記述パラメータを含み得る。保護ジェネレータ・チェッカーモデルは、保護信号、保護ブロック、およびインターフェイス修正を定義する論理式を含み得る。保護ジェネレータ・チェッカーモデルは、ある信号を、1つ以上の他の信号の値に基づいて、有効であると判断してもよい。保護ジェネレータ・チェッカーモデルは、設計仕様、たとえばクローズタイミングを満たすことを支援するためのリタイミング(retiming)段階を含み得る。
【0040】
ステップ508において、保護ジェネレータ・チェッカーモデルを用いて、インターフェイス保護実装パラメータをシステムパラメータに追加する。保護ジェネレータ・チェッカーモデルは、インターフェイス保護実装パラメータを介して電気的設計にインターフェイス保護を追加するのに必要な任意の変更を行うように構成される。インターフェイス保護実装パラメータは、インターフェイス保護が追加された電子設計のハードウェア記述を作成するのに必要な情報を提供する。保護ジェネレータ・チェッカーモデルは、電子設計に対する任意の編集、たとえばコンポーネントの追加、コンポーネントの削除、コンポーネントの修正、信号の追加、信号の削除、信号の再ルーティングなどを記述するインターフェイス保護実装パラメータを作成してもよい。インターフェイス保護が、インターフェイスが誤り(たとえばECC)を自動訂正することを可能にする場合、インターフェイス保護実装パラメータは、自動訂正を可能にする、たとえば訂正コンポーネントを追加するのに必要なパラメータを含み得る。
【0041】
保護ジェネレータ・チェッカーモデルは、電子設計の任意の階層レベルに対して、たとえば電子設計内のサブコンポーネント間のインターフェイスに対して機能してもよい。たとえば、ユーザがビルトインパラメータモデルの使用を選択し電子設計記述パラメータが図3aに示される設計を記述する場合、保護ジェネレータ・チェッカーモデルは、図3bに示される電子設計を記述することが可能なシステムに、インターフェイス保護実装パラメータを追加してもよい。インターフェイス保護スキームは、インターフェイス保護スキームの任意の組み合わせを含んでいてもよく、および/または特定の信号に対する保護を含まなくてもよい。たとえば、マルチビット信号a、b、c、d、e、およびfを有するインターフェイスの場合は、パリティインターフェイス保護が信号a[31:16]、b[10:2]、c[1:0]に適用されてもよく、ECCインターフェイス保護が信号a[15:0]、b[1:0]、c[13:2]に適用されてもよく、信号d、eおよびfにインターフェイス保護が適用されなくてもよい。
【0042】
ステップ510において、システムパラメータを用いてハードウェア記述を作成する。本発明の1つ以上の実施形態および局面に従うと、電子設計記述パラメータとインターフェイス保護実装パラメータとを用いてハードウェア記述を作成する。ハードウェア記述が少なくとも部分的に作成されたという通知が送信されてもよい。通知は、ハードウェア記述が完了したときに生成することができる。
【0043】
ステップ512において、インターフェイス保護を含むハードウェア記述を出力する。ハードウェアは、ハードウェアを記述することができる任意のフォーマットで出力することができ、それはたとえばハードウェア関数、ハードウェア記述言語(HDL)、Verilog、VHDL、システムVerilog、レジスタ転送レベル(RTL)、オープンアクセスデータベース、ライブラリ交換フォーマットおよび設計交換フォーマット(LEF/DEF)、ネットリスト、プロプライエタリフォーマット(たとえばベンダ開発、カスタマー開発など)、ならびにハードウェアを記述するその他任意の構造である。1つ以上の実施形態に従うと、ハードウェア記述はRTLとして出力される。このプロセスはステップ514で終了する。
【0044】
図6を参照して、インターフェイス保護最適化プロセスが、ステップ602で開始される。本発明のいくつかの実施形態および局面に従うと、図6に記載されているインターフェイス保護プロセスは、パラメータを用いることで、インターフェイス保護を含み最適化ループにおいて設計全体で繰り返されるハードウェア記述を作成する。
【0045】
インターフェイス保護最適化プロセスは、ユーザ入力、予定時刻到達、別のタスク完了、電子設計で発生するマイルストーンイベント、インターフェイス保護最適化プロセスを開始可能なその他任意のイベント、およびこれらの任意の組み合わせにより、開始されてもよい。
【0046】
ステップ604において、システムパラメータを用いて、インターフェイス保護とともにハードウェア記述を作成する。本発明の1つ以上の実施形態および局面に従うと、ステップ604は、ステップ502~ステップ514と同一または同様の機能を実行してもよい。
【0047】
ステップ606において、ハードウェア記述を評価することにより、評価メトリックを決定する。任意の評価メトリックを用いることにより、ハードウェア記述を評価してもよい。たとえば、ハードウェア記述をシミュレートすることにより、評価メトリックを決定してもよい。たとえば、配置およびルーティングが後に続く合成ツールを通してハードウェア記述を送信してもよく、タイミングクローズの状態が評価メトリックであってもよい。評価メトリックは多次元であってもよい。たとえば、回路の評価メトリックは、回路に必要な面積および回路が消費する電力であってもよい。
【0048】
ステップ608において、仕様を評価メトリックと比較することにより、仕様が満たされているか否かを判断する。仕様が満たされている場合、最適化プロセスを終了するステップ612が実行される。仕様が満たされていない場合、ステップ610が実行される。たとえば、ハードウェア記述が合成され配置およびルーティングされた後にタイミングがクローズされない場合は、仕様は満たされておらず、ステップ610が実行される。
【0049】
ステップ610において、システムパラメータを調整することにより、設計を最適化する、および/または仕様を満たす。最適化が意味するのは、漸進的改善(たとえば極小値)、グローバル最適化(たとえば最小値)の発見、および本願の出願時に当業者に周知のその他任意の意味であってもよい。パラメータ調整は、システムパラメータの変更、システムパラメータの削除、および/またはシステムパラメータの追加を含み得る。たとえば、リタイミング段階を含むためのパラメータをシステムパラメータに追加してもよい。ステップ610の終了後、調整されたシステムパラメータを用いてステップ604が実行される。
【0050】
図7を参照すると、本発明のいくつかの実施形態および局面に従い、システム702が示されており、このシステムでは、システムパラメータ704、保護ジェネレータ・チェッカーモデル712、ならびにその他のモデルおよびライブラリ714が、ハードウェア生成アプリケーション710によって使用されて、インターフェイスが保護されたハードウェア記述716が作成される。システムパラメータ704は、電子設計記述パラメータ706とインターフェイス保護パラメータ708とを含む。システムパラメータ704は、図5のステップ504で受信されるものと同一または同様のシステムパラメータであってもよい。電子設計記述パラメータ706は、インターフェイス保護が追加される電子設計を記述する。インターフェイス保護パラメータ708のパラメータは、インターフェイス保護スキームを記述する。保護ジェネレータ・チェッカーモデル712は、ハードウェア設計を少なくとも部分的に作成するために使用されるインターフェイス保護実装パラメータを作成する。保護ジェネレータ・チェッカーモデル712は、図5のステップ506の保護ジェネレータ・チェッカーモデルと同一または同様であってもよい。
【0051】
その他のモデルおよびライブラリ714は、ハードウェア生成アプリケーション710がインターフェイスが保護されたハードウェア記述716を作成するのに少なくとも一部が必要とされるモデルおよびライブラリを含む。その他のモデルおよびライブラリ714の非限定的な例は、インターフェイスモデルのライブラリおよびハードウェアコンポーネントモデルのライブラリを含み得る。ハードウェア生成アプリケーション710は、システムパラメータ704、保護ジェネレータ・チェッカーモデル712、ならびにその他のモデルおよびライブラリ714を用いて、インターフェイスが保護されたハードウェア記述716を作成する。インターフェイスが保護されたハードウェア記述716は、図5のステップ512で作成されるハードウェア記述と同一または同様であってもよい。
【0052】
次に図8aを参照すると、コンピュータプロセッサによって実行されるとこのコンピュータプロセッサに本明細書に記載の方法または一部の方法のステップを実行させるコンピュータコードを格納する非一時的なコンピュータ読取可能回転ディスク媒体800が示されている。
【0053】
次に図8bを参照すると、コンピュータプロセッサによって実行されるとこのコンピュータプロセッサに本明細書に記載の方法または一部の方法のステップを実行させるコンピュータコードを格納する非一時的なコンピュータ読取可能ランダムアクセスメモリ(RAM)チップ媒体810が示されている。
【0054】
次に図9aを参照すると、パッケージングされたシステムオンチップ(SoC)900の底(はんだボール)側が示されており、これは、コンピュータコードを実行することにより本明細書に記載の方法または一部の方法のステップを実行する本発明のいくつかの実施形態のコンポーネントを有する複数のコンピュータプロセッサコアを含む。
【0055】
次に図9bを参照すると、SoC900の上側が示されている。
上記1つ以上の非一時的なコンピュータ読取可能媒体の例は、本明細書に記載の方法のこのような命令を格納するように配置される。必要なコードのうちのいずれかを含む非一時的なコンピュータ読取可能媒体を保持するどのようなマシンも、本発明の一例または局面を実現し得る。いくつかの例は、半導体チップ等の物理的装置として、このような装置の論理的または機能的挙動のハードウェア記述言語表現として、および、このようなハードウェア記述言語表現を格納するように配置された1つ以上の非一時的なコンピュータ読取可能媒体として、実現されてもよい。原理、局面、および実施形態を記載した本明細書の記述は、その構造的均等物および機能的均等物の双方を包含する。本明細書に記載の要素は、結合されると、その他1つ以上の介在する要素との直接接続によりまたは間接接続により実現可能な有効な関係を有する。
【0056】
次に図10を参照すると、システムオンチップ1003内のコアのブロック図が示されている。システム1003は、マルチコアコンピュータプロセッサ(CPU)1021と、マルチコアグラフィックスアクセラレータプロセッサ(GPU)1022とを含む。CPU1021およびGPU1022は、NoC1023を介してDRAMインターフェイスユニット1024およびフラッシュRAMインターフェイスユニット1025に接続されている。ディスプレイインターフェイスユニット1026は、ディスプレイを制御し、システム1003がMPEGビデオおよびJPEG静止画像メッセージコンテンツを出力することを可能にする。I/Oインターフェイスユニット1027は、SoC1003によって制御されるデバイスのマンマシンインターフェイスのためのスピーカおよびマイクロフォンアクセスを提供する。ネットワークインターフェイスユニット1028は、システム1003がインターネットまたはワイヤレスネットワークまたはローカルエリアネットワークを介して遠隔場所(サーバ等)と通信するためのアクセスを提供する。
【0057】
本発明の各種局面に係る特定の方法は、非一時的なコンピュータ読取可能媒体に格納された命令によって実行されてもよい。非一時的なコンピュータ読取可能媒体は、1つ以上のプロセッサによって実行されるとシステムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを格納する。非一時的なコンピュータ読取可能媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM)チップ、およびその他任意の機械的に移動するまたはソリッドステート記憶媒体を含む。いずれの種類のコンピュータ読取可能媒体も、本発明の各種例および局面に係る命令を有するコードを格納するのに適している。
【0058】
本明細書において特定の例を説明してきたが、異なる例からの異なるコンポーネントの異なる組み合わせも可能となり得ることがわかるであろう。例をより良く説明するために顕著な特徴を示しているが、記載されているこれらの例の機能的要素を修正することなく、特定の特徴を追加、修正、および/または省略し得ることは明らかである。
【0059】
当業者は多数の修正および変形を認識するであろう。これらの修正および変形は、開示された特徴の任意の関連する組み合わせを含む。本明細書における、原理、局面、および実施形態を記載した記述は、その構造的均等物および機能的均等物の双方を包含する。本明細書において「結合された」または「通信可能に結合された」と記載されている要素は、1つ以上の他の介在要素を使用する直接接続または間接接続によって実現可能な有効な関係を有する。本明細書において、別のデバイス、モジュール、または要素と「通信する(「communicating」または「in communication with」)」と記載されている実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。たとえば、通信リンクは、有線接続、ワイヤレスプロトコル、近距離プロトコル、またはRFIDを用いて確立されてもよい。
【0060】
「含む(「including」、「includes」)」、「有する/備える(「having」、「has」、「with」」という用語、またはその変形が、詳細な説明および請求項のいずれかで使用されている限り、このような用語は、「comprising(備える/含む)」と同様に包括的用語であることが意図されたものである。
【0061】
したがって、本明細書に示され記載されている具体例としての実施形態および局面に本発明の範囲が限定されることは、意図されていない。むしろ、本発明の範囲および精神は、以下の請求項によって実現される。
【要約】      (修正有)
【課題】パラメータを用いてインターフェイス保護を電子設計に追加するシステム及び方法を提供する。
【解決手段】電子設計及びインターフェイス保護スキームはパラメータとして規定される。インターフェイス保護モデルが、インターフェイス保護の実装の詳細を記述するインターフェイス保護実装パラメータを作成する。ハードウェア記述モデルが、電子設計パラメータ及びインターフェイス保護実装パラメータを用いて、ハードウェア記述を作成する。インターフェイス保護スキームは、ビルトイン保護スキーム、ユーザ定義スキーム、ユーザが後に規定するプレースホルダを含むスキーム及びこれらの組み合わせとする。インターフェイス保護スキームは、ハードウェア記述のリタイミングを支援するためのコンポーネントを含む。
【選択図】図5
図1
図2
図3a
図3b
図4a
図4b
図5
図6
図7
図8a
図8b
図9a
図9b
図10