JP7237457B2 - コンピューティング装置 - Google Patents
コンピューティング装置 Download PDFInfo
- Publication number
- JP7237457B2 JP7237457B2 JP2018082523A JP2018082523A JP7237457B2 JP 7237457 B2 JP7237457 B2 JP 7237457B2 JP 2018082523 A JP2018082523 A JP 2018082523A JP 2018082523 A JP2018082523 A JP 2018082523A JP 7237457 B2 JP7237457 B2 JP 7237457B2
- Authority
- JP
- Japan
- Prior art keywords
- bitstream
- field
- protocol
- data
- definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/06—Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
- H03M5/12—Biphase level code, e.g. split phase code, Manchester code; Biphase space or mark code, e.g. double frequency code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/28—Programmable structures, i.e. where the code converter contains apparatus which is operator-changeable to modify the conversion process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4904—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using self-synchronising codes, e.g. split-phase codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
(1)ビットストリーム定義
(2)イベント定義
(3)複雑なイベント定義
(4)イベント時間組み入れ/除外トークン
(5)条件に応じて調査の節(scoped if clauses)
(6)任意ビット・スタッフィング・ルール定義
(7)パケット定義の任意セクション内の調査領域
(8)フィールド・マッチング・ルール
(9)フィールド量化ルール
(10)フィールド入れ子処理及びグルーピング処理
(11)フィールド・プロパティ
(12)フィールド・アクション定義
(13)任意CRC多項式定義
(14)エラー及びCRCフィールド・シーケンス定義
bitstream A = nrz(data);
ここで「A」は、ビットストリーム変換関数の結果を含む変数を表し、「nrz()」は、メモリに格納された所定の関数であり、「data」は、物理的な入力信号450のサンプルされたデータを表す変数である。図4に示すように、領域1000の物理的な入力信号450は、領域1100のビットストリーム470aに重ねられ、その複数のエッジは、規則的な時間インターバルと合致していることが示され、時間インターバルにおいて、物理的な入力信号450は、領域1100のビットストリーム定義の下で、その値に基づいて判断される。
bitstream A = NRZM(data);
ここで「A」は、再度、ノン・リターン・トゥ・ゼロ・マーク・エンコーディングをデコードするための所定の関数に基づいて算出されたビット値のシーケンスを表し、NRZM()は、上述のように、ライン・コード・エンコーディング・ライブラリの予め定義され、格納された部分であっても良く、また、どのようにこの関数が所与の「data」、つまり、物理的な入力信号450について解くかであっても良い。図4に示すように、領域1000の物理的な入力信号450が領域1200のビットストリーム470bに重ねられ、その複数のエッジは、規則的な時間インターバルの中央にあることが示され、時間インターバルの間に、領域1200のビットストリーム定義の下、物理的な入力信号450が、ロー(Low:低)からハイ(High:高)又はハイ(High:高)からロー(Low:低)へと遷移したかに基づいて評価される。
ビットストリームA=getbits(data)
ここで「A」は、変換されたビットストリーム・データを表す変数であり、「getbits()」は、任意のユーザ定義関数であり、「data」は、領域1000の物理的な入力信号450である。別の例として、領域1300のユーザ定義カスタム・ビットストリーム定義は、プロトコル宣言30内に直接定義することもでき、次のようにSENTバス・プロトコルに基づいても良い:
bitstream getbits(pin data) {
bool isFall = false;
double pw = 0.0; double start = 0.0; double end = 0.0; double zeroWidth = 0.0;
double t1 = 0.0; double t2 = 0.0; double t3 = 0.0; double dataWidth = 0.0;
double lowerWidthBound = 0.0; double upperWidthBound = 0.0;
double UT = env.getvalue(“ut”, 0.000003);
if(UT<0.000003) { UT = 0.000003; }
if(UT>0.000010) { UT = 0.000010; }
int bit0 = 0; int bit1 = 0; int bit2 = 0; int bit3 = 0; int nibble = 0;
isFall = data == 0;
start = pintime(data);
end = pintime(data[2]);
pw = end ? start;
zeroWidth = 12.0 * UT;
lowerWidthBound = 11.0 * UT;
upperWidthBound = 28.0 * UT;
dataWidth = pw ? zeroWidth;
nibble = (int) ((dataWidth / UT) + 0.5);
t1 = start + UT;
t2 = t1 + UT;
t3 = t2 + UT;
bit0 = (nibble >> 3) & 0x1;
bit1 = (nibble >> 2) & 0x1;
bit2 = (nibble >> 1) & 0x1;
bit3 = nibble & 0x1;
if (isFall && pw > lowerWidthBound && pw < upperWidthBound) {
yield([start, bit0], [t1, bit1], [t2, bit2], [t3,bit3]);
}
yield();
}
ここで、物理的な入力信号450のエッジのクロック時間は、複数の時点(即ち、「pw」、「dataWidth」)間の差分の可変幅に基づいてわかると共に、値が求められる。図4に示すように、エッジ・データのセットには、物理的な入力信号450の0値を囲むエッジを含み(「isFall = data == 0」を用いて見つかる)、これは、SENTプロトコルに従って標準的な幅で離れている(即ち、「6UT」)。標準的な「ゼロの幅(zeroWidth)」(即ち、図4では0.04ms)が、下向きの立ち下がりエッジ間の時間差(即ち、「pw」、これの最初のものは、図4では0.08msとして示される)から引き算されて、「データ幅(dataWidth)」値を生じる。この「データ幅(dataWidth)」値(例えば、0.08ms-0.04ms=0.04ms)は、次いで、「UT」の観点からUTを除数として数値が求められて(例えば、0.04ms/0.00333…ms=12)、整数の「ニブル」値(例えば、12のバイナリ形式は、1100)がもたらされる。よって、図4に示すように、ビットストリーム470cの最初の4ビット値(つまり、「ニブル」)は、領域1000の物理的な入力信号450の最初の2つの下向きの立ち下がりエッジ間の時間の長さに基づいて、「1100」である。
if (isFall && pw > lowerWidthBound && pw < upperWidthBound) {
yield([start, bit0], [t1, bit1], [t2, bit2], [t3,bit3]);
}
ここで、ブール型の「isFall」と、「pw」の比較は、条件分岐を表し、これは、もし満たせば、内部コードのイールド・ステートメントへのアクセスが許される。
double UT = env.getvalue(“ut”, 0.000003);
isFall = data == 0;
start = pintime(data);
end = pintime(data[2]);
pw = end ? start;
dataWidth = pw ? zeroWidth;
nibble = (int) ((dataWidth / UT) + 0.5);
bit0 = (nibble >> 3) & 0x1;
bit1 = (nibble >> 2) & 0x1;
bit2 = (nibble >> 1) & 0x1;
bit3 = nibble & 0x1;
ここで、タイムスタンプ及びエッジ値は、「ut」の環境変数及び「データ(data)」信号の値に基づいて抽出される。図4に示すように、各立ち下がりエッジ間(即ち、エッジ・データ・セット中に見られる第1及び第3エッジ間)の距離は、次いで、整数の変数「ニブル」を計算するのに利用でき、これのバイナリ形式は、4ビット値を生じるのに利用される。このように、エッジ値及びタイムスタンプ・データ(例えば、「start」、「t1」、「bit0」)が抽出されて、データ・ストリーム中の現在の繰り返し位置と関係づけられる。
lowerWidthBound = 11.0 * UT;
upperWidthBound = 28.0 * UT;
if (isFall && pw > lowerWidthBound && pw < upperWidthBound) {
ここで、「lowerWidthBound」より小さいか、又は、「upperWidthBound」より大きいエッジ間の任意のタイミング差(即ち、「pw」)は、そのオフセットがエッジ・データ・セットの範囲を越えるであろうことから、無視される。
{Settings: polarity<“normal”>(“normal”, “invert”) }
decoder LIN(pin data) {
int dominant = 0; int recessive = 1;
bool invert = env.checkValue(“polarity”, “invert”);
bitstream A = invert ? ~nrz(data) : nrz(data);
ここで「Settings」は、ユーザ・インタフェース上で可能な設定を示し、これは、プロトコルがユーザの選択をランタイム・エンジンに返すのに必要とされると共に、「nrz()」関数を利用し、ビートストリーム570が結果として生じる「A」のビットストリーム定義に必要とされることがある。「polarity(極性)」の設定では、「normal(正常)」が選択され、「invert(反転)」が選択されなかったので、作成された「invert」と呼ばれるブール変数は、偽となり、「~」のビット単位補数演算子(bitwise complement operator)を用いてビットストリーム「A」は反転されない。
event SynchBreak = (A:10 == 0000000001b);
ここで、プロセッサ14は、9個の0と、これに1が続くシーケンスを形成する、ビットストリーム「A」570内の10個のビットを探す。イベント582に関するイベント定義には、マッチング・ルール(「A:10==0000000001b」)の例を含み、これは、値、パターン、マスク・マッチング及び正規表現の定義を有する、プロトコル宣言30の宣言型言語の一部として利用できる。加えて、宣言型言語で書かれた、プロトコル宣言30内のイベント時間組み入れ/除外トークン(token)は、パケット・フィールドの値を求める間に、例えば、次のように、プロセッサ14がパケット・イベントの開始の終了時間マーカと一緒にデータ・ビットを含めるべきかどうかを指定する柔軟性をユーザに与える:
packet DataPacket = Start
packet DataPacket = ( Start ]
ここで「= Start」の形式は、終了時間を含むことを意味し、「= ( Start ]」の形式は、終了時間を除外することを意味する。図5を参照すると、イベント582は、ビットストリーム「A」570内のパケット・フレーム580の開始を合図している。イベント582を表すこれら10個のビットに続いて、プロセッサ14は、構文木60に従ってフィールド・マッピング・ステージ300に進み、プロトコル宣言30内に定義されたフィールド定義302と一致するバイナリ・シーケンスを求めて、パケット・フレーム・データ580を調べる。
field StartBit = { (A:1) == dominant };
field StopBit = { (A:1) == recessive };
ここで、8ビットのバイトの開始は、0のビット値を有する先行するビットにフラグが付き、このバイトの終了は、1のビット値を有する後続のビットにフラグが付けられる。
field SynchFields = { StartBit, A.Synch:8.verify(__value, “Invalid synch field”, 0x55), StopBit };
ここで、フィールド593は、10個のビットから構成され、1ビット・フィールド591で始まり、これにビット・シーケンス01010101を有する8ビットの「synch(同期)」フィールドが続き、そして、1ビット・フィールド592で終わる。フィールド593に関するフィールド定義は、フィールド定義302が、既定のフィールド内に他のフィールをどのように入れ子にする(nest)かを示している。
field InterFrameSpace = { { (A:1) == recessive } {0, 15} };
ここで、フィールド594は、関係演算子「==」の真の結果の繰り返しに基づいて、ゼロから5ビットの長さを持ち得る。フィールド・マッチング・ルールに加えて、そして、フィールド・マッチング・ルールに比べて、フィールド定義302は、固定又は任意長のフィールドの繰り返しを可能にするフィールド量化(quantifier)ルールを含んでも良い。フィールド594に関するフィールド定義には、フィールド量化子「{0, 15}」の例があり、ここで、「0」は、最小フィールド長、「15」は、固定フィールド594についての最大フィールド長である。固定フィールド量化子(quantifier)は、(1)「{n}」、ここで、先行する要素は、正確にn回マッチングしなければならない。(2)「{n, m}」、ここで、先行する要素は、少なくともn回マッチングしなければならないが、m回より多くてはいけない。(3)「?」、ここで、先行する要素は、1回マッチングするか、又はマッチングしない必要がある、という形式である。フィールドは、任意のビット幅や長さで定義されても良く、これは、(1)「*」、ここで先行する要素は、ゼロ回以上マッチングしなければならない。(2)「+」、ここで先行する要素は、1回以上マッチングしなければならない。(3){n, }、ここで先行する要素は、少なくともn回マッチングしなければならない、という形式を利用しても良い。
field IdFields = { InterFrameSpace, StartBit, A.ID0#EXCLUDE:1, A.ID1#EXCLUDE:1, A.ID2#EXCLUDE:1, A.ID3#EXCLUDE:1, A.ID4#EXCLUDE:1, A.ID5#EXCLUDE:1, A.P0#EXCLUDE:1.verify(__parity, even, ID0, ID1, ID2, ID4), A.P1#EXCLUDE:1.verify(__parity, odd, ID1, ID3, ID4, ID5), StopBit, Identifier {ID0, ID1, ID2, ID3, ID4, ID5, P0, P1} };
ここで、フィールド595は、0から15ビットのフィールド594で始まり、これに1ビットのフィールド591、次いで、8ビットの「識別子(Identifier)」フィールドが続き、そして、1ビットのフィールド592で終わる。フィールド595についてのフィールド定義には、「識別子」フィールドの1ビット・フィールドの夫々に使用されるフィールド・プロパティ(特性、属性)の例を含み、ここで、「#EXCLUDE」トークンは、ランタイムの値を求める処理中において、結果の後処理を可能にする。更に、付加的な後処理工程のために、フィールド・マッピング中に、フィールドにタグ付けしたいか又は結びつけたい任意のプロパティに関して、「#」トークンの変形が可能である。加えて、フィールド595についてのフィールド定義内の「識別子」フィールドに関するフィールド定義は、フィールドの入れ子処理(nesting)の例である。フィールドの入れ子処理及びグルーピングによって、各レベルにおいて別々の量化ルールを有する入れ子構造が可能になる。最後に、上記フィールド定義中のフィールド「P0」及び「P1」は、データ検証を含み、ここで、「識別子」フィールド内の4つのフィールドは、「P0」及び「P1」フィールドの夫々に対し、偶数又は奇数パリティに関して比較及びチェックされる。
(A.DTS2:1) == HIGH <ENABLE_STROBE_SYNC>,
ここで「<ENABLE_STROBE_SYNC>」は、例示的なアクション・パラメータである。フィールド・アクション・パラメータに比較して、プロパティ・パラメータは、フィールドに対して任意のプロパティを設定するトークンであっても良い。プロパティ・パラメータ・トークンは、プロセッサ14が、フィールドの結果の前処理及び後処理のために利用しても良い。フィールド・プロパティ・パラメータは、上述した「#EXCLUDE」トークンのような所与のフィールド定義に関する任意のランタイムの値を求める処理のルールを確立する。
field DataFields = { InterFrameSpace, StartBit, A.Data:8, StopBit };
ここで、フィールド596は、ゼロから15ビットのフィールド594で始まり、これに1ビットのフィールド591、次いで、8ビットの「データ(data)」フィールドが続き、そして、1ビットのフィールド592で終わる。
field ClassicCheckSumFields = { InterFrameSpace, StartBit, A.Checksum:8.verify(__checksum, CARRYON, Data), StopBit };
ここで、フィールド597は、ゼロから15ビットのフィールド594で始まり、これに1ビットのフィールド591、次いで、8ビットの「チェックサム(Checksum)」フィールドが続き、そして、1ビットのフィールド592で終わる。フィールド597に関するフィールド定義には、「__checksum」を用いて、フィールドが「データ」フィールドであるか否か、つまり、先の8ビットの「データ」フィールドの適切なチェックサムの総計であるか否かを評価する、データ検証の別の例を含む。
__crc HeaderPoly = x^11 + x^9 + x^8 + x^7 + x^2 + 1, 0x01A, 0;
エラー及びCRCフィールド・シーケンス定義は、ばらばらのパケット区間に対して、パリティ、チェックサム、CRCその他のデータ検証計算を可能する(例えば、「verify(__parity, even, ID0, ID1, ID2, ID4)」)。更に、デコードされたフィールドの結果に連結する、プロトコル宣言の著者によって書かれたエラー・メッセージを可能にする変数置換(variable substitution)を有するユーザ定義の文字列のような検証フィールド定義が可能である。ユーザ・インタフェースは、ランタイム・エンジンによって検出されたランタイム/デコード処理エラー・メッセージを表示しても良い。
packet MASTER_REQUEST_FRAME = SynchBreak { LSB { SynchFields, IdFields, {ID0, ID1, ID2, ID3, ID4, ID5} == 0X3C, {DataFields} {8}, ClassicCheckSumFields } };
bitstuff stuffComplement = (0b, 5) | (1b, 5);
field RemoteFrameFields = {
stuffComplement {
{ RTR } == recessive,
A.CRC:15.verify(__crc, CAN_P, Identifier-DataLengthCode, SOF<-0) } };
ここで、ビット・スタッフィング定義「stuffComplement」は、周知のように、特定のフラグ、マーカその他のフィールドが、ビットストリーム中のデータやその他のフィールドに、誤って読み込まれるのを防止する。本開示の宣言型言語を用いると、プロトコル宣言の著者は、特定のアプリケーションに適した、カスタマイズされたドメイン固有のビット・スタッフィング・ルールを書くことができる。プロトコル宣言30が、メモリ16又は他の記憶媒体中のライブラリに格納された共通のビット・スタッフィング・ルールへのコールを含むようにしても良い。
decoder I2C(PIN clk, PIN data) {
bitstream A = clock(data) @ rise(clk);
ここで、「PIN clk」及び「PIN data」は、2つの異なる物理的な入力信号650を表し、ビットストリーム670は、クロック(「clk」)信号がロー(Low:低)からハイ(High:高)に行く毎のデータ(「data」)信号に基づいて、ビット値を求めることによって生成される。
event S = fall(data) when clk == 1;
event P = rise(data) when clk == 1;
ここで、イベント682は、クロック信号がハイ(high)の間に、データ信号がハイ(high)からロー(Low)へ行く度に生じ、イベント684は、クロック信号がハイ(high)の間に、データ信号がローからハイへ行く度に生じる。イベント682及び684に関するイベント定義は、ビットストリーム670内でパケット・フレーム化の範囲を見つけるために、プリアンブル・ステージ100から出力されたバイナリのビットストリームではなくて、未加工(raw)のアナログの物理的な入力信号を用いるイベント探索ステージ200の例を示す。
cevent SR = peek S;
cevent SRP = (P | SR);
ここで、複雑なイベント「SR」は、「peek(データを覗く)」動作に従って、イベント「S」が見つけられてスタックに加えられるといつでも生じ、複雑なイベント「SRP」は、構文木60が、(1)上記のイベント684に関するイベント定義に従って定義されるイベント「P」、又は(2)複雑なイベント「SR」のいずれかに出会ったときにはいつでも生じる。
int WRITE = 0; int READ = 1;
packet Read7 = S {
A.Address:7, (A.RW:1)==READ, A.Ack:1, (A.Data:8, A.Ack:1)+ } SRP;
ここで、パケット・フィールド698は、ゼロ・ビットのイベント682で始まり、これに7ビットの「アドレス(Address)」フィールド692及び1ビットの「RW」フィールド694(ここで、ビット値は1)、次いで、8ビットの「Data(データ)」フィールド697の少なくとも1つのグループ化したものに先行して、1ビットの「Ack」フィールド696、そして、複雑なイベント「SRP」で終わる。
14 プロセッサ
16 メモリ
18 入力端子
20 物理媒体入力ライン
22 ユーザ・インタフェース
24 出力ライン
30 プロトコル宣言
40 パーサ
50 物理的入力信号
60 構文木
70 ビットストリーム
90 パケット・ビットストリーム・データ
100 プリアンブル・ステージ
102 ビットストリーム定義
200 イベント探索ステージ
202 イベント定義
300 フィールド・マッピング・ステージ
302 フィールド定義
702 標準デコーダ
750 物理的な入力信号s
770 未加工ビットストリーム
772 ライン・コード・エンコーディング・ライブラリ
782 フィールド・デバイス・アクセス(FDA)及びデバイス記述言語(DDL)ライブラリ
730 プロトコル宣言
706 コンパイラ
760 構文木
780 ビットストリーム・フレーミング・データ
790 パケット化ビットストリーム・データ
714 パケット・コレクション
716 ペイロード抽出
712 CRCチェック
718 メディア・ファイル
720 データ・ストア
Claims (3)
- ライン・コード化物理的信号を受ける物理的チャンネル入力部と、
宣言型言語定義から生成された構文木(syntax tree)を記憶するメモリと、
該メモリと動作可能に結合され、上記構文木にアクセスし、上記ライン・コード化物理的信号から時間及びエッジ・データを抽出し、上記構文木の状態に基づいて抽出された上記時間及びエッジ・データを用いてビットストリームに関するビット値を生成するよう構成されるプロセッサと
を具える試験及び測定に適したコンピューティング装置。 - 上記プロセッサが、更に、
上記宣言型言語定義内の開始及び終了イベント定義に基づいて上記ビットストリームから開始及び終了イベントを抽出し、
抽出された上記開始及び終了イベントに基づいて上記構文木を用いて上記ビットストリームについてのパケット・フレームを生成するように構成される請求項1のコンピューティング装置。 - 上記プロセッサが、更に、
上記宣言型言語定義内のフィールド定義に基づいて、生成された上記パケット・フレーム内にフィールドをマッピングし、
マッピングされた上記フィールドに基づいて、上記構文木を用いて上記ビットストリームについてのパケットを生成するよう構成される請求項2のコンピューティング装置。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762489326P | 2017-04-24 | 2017-04-24 | |
US201762489301P | 2017-04-24 | 2017-04-24 | |
US62/489,326 | 2017-04-24 | ||
US62/489,301 | 2017-04-24 | ||
US15/948,923 US10628284B2 (en) | 2017-04-24 | 2018-04-09 | System and method for bitstream decoding with compiler-generated syntax trees |
US15/948,923 | 2018-04-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018197745A JP2018197745A (ja) | 2018-12-13 |
JP7237457B2 true JP7237457B2 (ja) | 2023-03-13 |
Family
ID=62116210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018082523A Active JP7237457B2 (ja) | 2017-04-24 | 2018-04-23 | コンピューティング装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10628284B2 (ja) |
EP (1) | EP3396525B1 (ja) |
JP (1) | JP7237457B2 (ja) |
CN (1) | CN108737384B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7364580B2 (ja) * | 2018-03-13 | 2023-10-18 | テクトロニクス・インコーポレイテッド | 試験測定装置のためのプロトコル・デザイナ及びプロトコル定義を生成、デバッグ及び展開する方法 |
US11537415B2 (en) * | 2018-10-02 | 2022-12-27 | Inter-University Research Institute Corporation Research Organization Of Information And Systems | Information processing apparatus, information processing circuit, information processing system, and information processing method |
US20200404332A1 (en) * | 2019-06-24 | 2020-12-24 | Alibaba Group Holding Limited | Transform-skip residual coding of video data |
CN111162972B (zh) * | 2019-12-31 | 2023-05-02 | 扬州航盛科技有限公司 | 基于语义分析的车载以太网协议栈自动化测试方法 |
US11775753B1 (en) * | 2021-04-05 | 2023-10-03 | Robert Stanley Grondalski | Method for converting parser determined sentence parts to computer understanding state machine states that understand the sentence in connection with a computer understanding state machine |
CN113438052B (zh) * | 2021-06-15 | 2022-09-16 | 深圳市元征未来汽车技术有限公司 | 信号解码方法、装置、电子设备以及存储介质 |
CN116232967B (zh) * | 2023-05-09 | 2023-07-04 | 中国科学技术大学先进技术研究院 | 网络安全检测方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002366596A (ja) | 2001-06-11 | 2002-12-20 | Sharp Corp | 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体 |
JP2003216668A (ja) | 1996-09-12 | 2003-07-31 | Sharp Corp | 集積回路の設計方法及びそれによって設計された集積回路 |
JP2010198363A (ja) | 2009-02-25 | 2010-09-09 | Toshiba Corp | 回路仕様記述視覚化装置及び回路仕様記述視覚化方法 |
WO2013141290A1 (ja) | 2012-03-23 | 2013-09-26 | 株式会社Mush-A | データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 |
JP2016081397A (ja) | 2014-10-20 | 2016-05-16 | 株式会社ソシオネクスト | 設計検証支援装置および設計検証支援方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6708329B1 (en) * | 2000-05-26 | 2004-03-16 | Itt Manufacturing Enterprises, Inc. | Method and apparatus for producing modules compatible with a target system platform from simulation system modules utilized to model target system behavior |
US7401326B1 (en) * | 2001-10-24 | 2008-07-15 | Finisar Corporation | Compiling protocol analysis code using protocol database |
CN1859359B (zh) * | 2005-07-12 | 2010-08-25 | 上海华为技术有限公司 | 用抽象语法规则描述的通信协议的实现方法及其装置 |
US8473897B2 (en) * | 2008-10-03 | 2013-06-25 | Microsoft Corporation | Common intermediate representation for data scripting language |
US8296744B2 (en) * | 2008-10-03 | 2012-10-23 | Microsoft Corporation | Tree-based directed graph programming structures for a declarative programming language |
-
2018
- 2018-04-09 US US15/948,923 patent/US10628284B2/en active Active
- 2018-04-23 JP JP2018082523A patent/JP7237457B2/ja active Active
- 2018-04-24 CN CN201810371918.5A patent/CN108737384B/zh active Active
- 2018-04-24 EP EP18169096.7A patent/EP3396525B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003216668A (ja) | 1996-09-12 | 2003-07-31 | Sharp Corp | 集積回路の設計方法及びそれによって設計された集積回路 |
JP2002366596A (ja) | 2001-06-11 | 2002-12-20 | Sharp Corp | 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体 |
JP2010198363A (ja) | 2009-02-25 | 2010-09-09 | Toshiba Corp | 回路仕様記述視覚化装置及び回路仕様記述視覚化方法 |
WO2013141290A1 (ja) | 2012-03-23 | 2013-09-26 | 株式会社Mush-A | データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 |
JP2016081397A (ja) | 2014-10-20 | 2016-05-16 | 株式会社ソシオネクスト | 設計検証支援装置および設計検証支援方法 |
Non-Patent Citations (1)
Title |
---|
Manchester Encoder-Decoder for Xilinx CPLDs,2002年10月01日,pp. 1-6,https://www.xilinx.com/support/documentation/application_notes/xapp339.pdf |
Also Published As
Publication number | Publication date |
---|---|
US10628284B2 (en) | 2020-04-21 |
JP2018197745A (ja) | 2018-12-13 |
CN108737384B (zh) | 2022-08-09 |
EP3396525A1 (en) | 2018-10-31 |
EP3396525B1 (en) | 2023-04-19 |
US20180307584A1 (en) | 2018-10-25 |
CN108737384A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7237457B2 (ja) | コンピューティング装置 | |
CN110609693B (zh) | 基于数据标准化的代码更新方法、装置及终端设备 | |
CN106970820B (zh) | 代码存储方法及代码存储装置 | |
US7089541B2 (en) | Modular parser architecture with mini parsers | |
US10664655B2 (en) | Method and system for linear generalized LL recognition and context-aware parsing | |
EP0204942A2 (en) | Compiler for a source program, a method of making the same and its use | |
CN103853650A (zh) | 一种模糊测试的测试用例生成方法及装置 | |
CN108052453A (zh) | 可编程逻辑控制器程序的测试方法、装置、设备和介质 | |
CN110069259B (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN112671726A (zh) | 工业控制协议解析方法、装置、电子设备和存储介质 | |
CN113887173A (zh) | 一种基于xml的协议动态组包和解析方法 | |
CN111813675A (zh) | Ssa结构解析方法、装置、电子设备和存储介质 | |
US8849650B2 (en) | System and method for automatically generating sentences of a language | |
CN115150483B (zh) | 一种网络数据包解析方法、系统及可读存储介质 | |
CN115310087A (zh) | 一种基于抽象语法树的网站后门检测方法和系统 | |
CN115292676A (zh) | 一种可编程数据平面程序验证方法及装置 | |
CN106663094B (zh) | 用于线性广义ll识别和上下文感知解析的方法和系统 | |
CN113946516A (zh) | 代码覆盖率确定方法、装置及存储介质 | |
CN118103815A (zh) | 编译方法以及用于编译的装置 | |
CN112579065A (zh) | 一种将图形组态画面生成跨平台代码的方法及系统 | |
JP6677983B2 (ja) | 試験測定装置及びデータ生成方法 | |
McMillan | Graph Neural Networks in Software Mining | |
Lavorato et al. | LL (k) optimization of a network protocol parser generator. | |
CN113778876A (zh) | 一种源代码层面的程序变异的生成方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A625 | Written request for application examination (by other person) |
Free format text: JAPANESE INTERMEDIATE CODE: A625 Effective date: 20210407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220201 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20220201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220524 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221024 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20221220 |
|
R155 | Notification before disposition of declining of application |
Free format text: JAPANESE INTERMEDIATE CODE: R155 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7237457 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |