JP5222937B2 - 時限ポート - Google Patents
時限ポート Download PDFInfo
- Publication number
- JP5222937B2 JP5222937B2 JP2010503479A JP2010503479A JP5222937B2 JP 5222937 B2 JP5222937 B2 JP 5222937B2 JP 2010503479 A JP2010503479 A JP 2010503479A JP 2010503479 A JP2010503479 A JP 2010503479A JP 5222937 B2 JP5222937 B2 JP 5222937B2
- Authority
- JP
- Japan
- Prior art keywords
- port
- processor
- thread
- data
- time value
- 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
- 238000012546 transfer Methods 0.000 claims description 79
- 238000000034 method Methods 0.000 claims description 46
- 239000013598 vector Substances 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 239000000470 constituent Substances 0.000 claims 2
- 230000000694 effects Effects 0.000 description 42
- 239000000872 buffer Substances 0.000 description 32
- 230000000630 rising effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- SVYBEBLNQGDRHF-UHFFFAOYSA-N 4-amino-N-(5-ethyl-1,3,4-thiadiazol-2-yl)benzenesulfonamide Chemical compound S1C(CC)=NN=C1NS(=O)(=O)C1=CC=C(N)C=C1 SVYBEBLNQGDRHF-UHFFFAOYSA-N 0.000 description 7
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008676 import Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000035484 reaction time Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 102100037402 Casein kinase I isoform delta Human genes 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Bus Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Information Transfer Systems (AREA)
Description
本発明の別の態様によれば、相互接続されたプロセッサの配列が提供され、前記プロセッサのうちの少なくとも1つが、インタフェース部分と内部環境とを有し、前記インタフェース部分は、現在時間値を受け取るように構成された少なくとも1つのポートと、前記ポートと関連付けられて、トリガ時間値を記憶するように構成された第1のレジスタと、現在時間値がトリガ時間値と一致するかどうかを検出し、前記一致が検出された場合には、ポートと配列内の別のプロセッサとの間でデータを転送し、転送を示すためにレディ信号を変化させるように構成された比較ロジックとを含み、内部環境は、少なくとも1つのポートと内部環境との間でデータを転送するための実行ユニットと、実行ユニットによる実行のために一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのスレッドスケジューラであって、レディ信号に応じて実行するための1つまたは複数の前記スレッドをスケジューリングするステップを含むスレッドスケジューラとを含む。
−各スレッドごとに1組のレジスタ
−実行するスレッドを動的に選択するスレッドスケジューラ
−入出力に使用される1組のポート(ポート22)
−入出力を外部時間領域と同期させるための1組のドックジェネレータ
−実時間の実行を制御する1組のタイマ
各プロセッサ上で小さな1組のスレッドを使用して、通信または入出力が、プロセッサによって処理される他の保留タスクと一緒に進行することを可能にし、また幾つかのスレッドを継続させながら同時に他のスレッドをサスペンドしてリモートインタフェースプロセッサとの間の通信を保留することによって相互接続における待ち時間を隠すことができる。
−レジスタが、実行できる前に初期化されている。
−レジスタが、準備ができていないポート又はデータが利用可能でないポートから入力を試みた。
−レジスタが、準備ができていないポート又はデータの余地のないポートへの出力を試みた。
−ポートが入力の準備ができたときに生成される可能性のある1つまたは複数のイベントを待機させる命令を実行した。
−データがポートに入力されたこと
−特定のデータがポートに入力されたこと
−ポートが出力に利用可能になったこと、および/または
−特定の時間に達したこと
そのようなアクティビティの検出を容易にするために、ポート22は、1組のレジスタ38を備える。これらのレジスタは、関連スレッドの識別を記憶するためのスレッド識別子(TID)レジスタ、1つまたは複数の状態を記憶するための制御(CTRL)レジスタ、実行がサスペンドされたプログラム内の位置を記憶するための継続点ベクトル(VECTOR)レジスタ、および状態と関連付けられた任意のデータを記憶するためのデータ(DATA)レジスタを含む。値TIDは、直接パス30(図3では30a、30b、30cになる)によってスレッドスケジューラ18によりレジスタ38に書き込まれ、値VECTOR、CTRLおよびDATAは、直接パス31によって実行ユニット16により書き込まれる。TIDは、関連スレッドを識別するために、所望のアクティビティを検出したときにスレッドスケジューラ18に戻される。レジスタ38は、また、ポートのクロックジェネレータ172を識別するクロックジェネレータ識別子レジスタCKID54、指定された時間値を記憶するトリガ時間レジスタTIME55、およびタイムスタンプレジスタTSTAMPを含む。アクティビティロジックは、また、さらに詳しく後述するイネーブルフラグ39を含む。
制御レジスタ:
−PCはプログラムカウンタである。
−SRは状態レジスタである
アクセスレジスタ:
−GPはグローバルプールポインタである。
−DPはデータポインタである。
−SPはスタックポインタである。
−LRはリンクレジスタである。
オペランドレジスタ:OP1...OP12
制御レジスタは、スレッドの実行を制御する際に使用される、スレッドの状態に関する情報を記憶する。特に、スレッドがイベントまたは割り込みを受け入れる能力は、スレッド状態レジスタSRに保持された情報によって制御される。アクセスレジスタは、プロシージャのローカル変数に使用されたスタックポインタ、プロシージャ間で共用されるデータに通常使用されるデータポインタ、および大きな定数とプロシージャエントリポイントにアクセスするために使用される特定のプールポインタを含む。オペランドレジスタOP1...OP12は、算術および論理演算を実行し、データ構造にアクセスし、サブルーチンを呼び出す命令によって使用される。また、タイムスタンプされた入力を使用するとき、スレッドは、スレッドのオペランドレジスタOPのうちの1つにタイムスタンプを読み込む。
SETC port, mode port[ctri]←mode ポート制御を設定する
以下に、SETCモード設定の効果について述べる。各設定の第1のエントリは、デフォルトモードである。
モード 効果
OFF ポートがアクティブでない。ピンが高インピーダンス
ON アクティブ
IN ポートは入力である
OUT ポートは出力である(但し、入力は現在のピン値を戻す)
RAW データがピンとの間で直接転送される
CLOCKED データ転送がクロックと同期される
TIMED データ転送の時間が決められる
EVENT ポートはイベントを発生させる
INTERRUPT ポートは割り込みを生じさせる
DRIVE ピンがハイとローの両方に駆動される
PULLDOWN ピンが0ビットではプルダウンされ、他の場合は高インピーダンスである
PULLUP ピンが1ビットではプルアップされ、他の場合は高インピーダンスである
RISING 主要(取り込み)エッジはポートのクロックの立ち上がりである
FALLING 主要(取り込み)エッジはポートのクロックの立ち下がりである
DATAPORT ポートは通常通り働く
CLOCKPORT ポートのクロックはその出力に直接結合される
NOSTAMP タイムスタンプは実行されない
STAMPED タイムスタンプがイネーブルされる
UNCOND ポートは常にレディ状態であり、入力が直ちに完了する
EQUAL ポートは値がそのDATA値と等しいときに準備ができている
NE ポートは値がそのDATA値と異なるときに準備ができている
TRANSITION ポートは値がDATA値の方に変化するときに準備ができている
GR ポートは値がそのDATA値より大きいときに準備ができている
LS ポートは値がそのDATA値より小さいときに準備ができている
DRIVE、PULLDOWN、およびPULLUPモードは、ポート方向がOUTのときだけ適切である。TRANSITION状態は、1ビットのポートだけに適切であり、GRおよびLS状態は、複数のビットを有するポートだけに適切である。
TSE s SR←SR∨s スレッド状態イネーブル
TSD s SR←SR∧┐s スレッド状態ディスエーブル
これらの命令のオペランドは、次のいずれかでなければならない。
EE イベントをイネーブルまたはディスエーブルする
IE 割り込みをイネーブルまたはディスエーブルする
イベントは、セットアップされたのと同じ範囲で処理される。従って、イベント時にすべてのスレッドの状態が有効であり、スレッドがイベントに対して素早く応答することができる。スレッドは、イベント情報の一部またはすべてを変化させないまま、イベントが生じたポートを使用して入出力操作を実行することができる。これにより、スレッドは、イベントの処理を完了し、すぐに別の類似のイベントを待つことができる。
SETV port, v portfvector]←v イベントベクトルを設定する
SETD port, d port[data]←d イベントデータを設定する
SETC port, c port[ctrl]←c イベント制御を設定する
EET port, b port[enable]←b; port[ tid]←threadイベントイネーブル真
EEF port, b port[enable]←┐b; port[ tid]←thread イベントイネーブル偽
EDU port port[enable]←false; port[ tid]←thread イベントイネーブル
EEU port port[enable]←true; port[ tid]←thread イベントイネーブル
1つまたは複数のポート上のイベントをイネーブルした後、スレッドは、WAITEU命令を使用して少なくとも1つのイベントを待つことができる。この結果、対応するイベントベクトルによって指定されたイベントハンドラに制御が移され、EE(イベントイネーブル)フラグをクリアすることによってイベントがディスエーブルされた状態で、イベントがすぐに生じることができる。あるいは、スレッドは、イベントが生じるまでサスペンドされてもよく、その場合、EEフラグは、イベントが生じたときにクリアされ、スレッドは実行を再開する。
WAITET b if b then SR[EE]←true 真の場合にイベント待機
WAITEF b if┐b then SR[EE]←true 偽の場合にイベント待機
WAITEU SR[EE]←true イベント待機
CLRE SR[EE]←false; forall port if port[tid] = thread then port[enable]←false スレッドのすべてのイベントをディスエーブルする
条件が満たされるまで1つまたは複数のイベントを繰り返し待つ一般的なケースを最適化するために、条件付きの形のイベント待機命令が提供される。WAITET命令は、その状態オペランドが真の場合だけ待ち、WAITEFは、その状態オペランドが偽の場合だけ待つ。
SAVESR←SR;
SR[EE]←false;
SR[IE]←false;
PC←r[vector];
ハンドラが完了したとき、割り込まれたスレッドの実行は、RFINT命令によって実行することができる。
RFlNT PC←SAVEPC; 割り込みから戻る
SR←SAVESR
各プロセッサは、100MHzで時間を刻むクロック(第3のクロック173)を有することが好ましい。入力操作と出力操作を、この内部で生成されたクロックまたは外部から供給されたクロックと同期させることができる。これを行うために1組のクロックジェネレータ172が提供され、これらのクロックジェネレータ172がそれぞれ、そのクロックソースとして、ドック173、クロックまたは外部1ビットクロックを使用することができる。
SETCLK generator, sgenerator[sid]←s クロックジェネレータのソースを設定する
クロックジェネレータを構成した後、そのクロックジェネレータからクロックされる入力ポートをクロックジェネレータに取り付ける必要がある。これは、また、ポートでSETCLK命令を使用して他のオペランドとしてクロックジェネレータIDを指定することによって行われる。
SETCLK port, s port[ckid]←s ポートのクロックジェネレータを設定する
出力ポート22がクロックジェネレータ172から駆動されるとき、ピン上のデータは、対応するクロック信号(例えば、ck2)のエッジと同期して状態を変化させる。いくつかの出力ポートが同一クロック信号によってクロックされる場合は、プロセッサが異なる時間にデータを送出することがある場合でも、それらの出力ポートは、単一出力ポートとして動作するように見える。同様に、入力ポート22がクロックジェネレータ172によって駆動される場合は、データは、対応するクロック信号のエッジと同期してサンプリングされ、いくつかの入力ポートが同一クロック信号によってクロックされる場合は、プロセッサが異なる時間にそれらのポートからデータを取得する場合でも、単一入力ポートとして動作するように見える。あるいは、各ポートは、異なる第2のクロック信号ck2、ck2’およびck2”などによってクロックされてもよい。例えば、各ポートは、異なる外部クロックソースから生成されたクロック信号によってクロックされてもよい。
UNCOND タイマが常にレディ状態−時間がタイマから直ちに読み出される
AFTER 時間がそのTIME値の後のときにタイマがレディ状態。
SETPTIME port, s port[time]←s ポート時間を設定する
GETTSTMP port, d d←port[tstamp] タイムスタンプを取得する
入力モードでは、データは、外部環境(例えば、ピン)から取り込まれ、記憶された時間値が現在時間と一致したときにレディビットがセットされ、条件が無視される。IN命令またはINSHR命令が実行されかつレディビットがセットされたとき、取得データが戻され、レディビットがクリアされる。レディビットがセットされない場合、スレッドは、レディビットがセットされるまで休止される。入力モードでは、SETPTIME命令は休止することはない。
IN inport, v
SETC inport, STAMPED
SETC inport, NE
SETD inport, v
SETC outport, TIMED
loop:
IN inport, v
GETTSTMP inport, t
ADD t, t, interval
SETTIME outport, t
OUT outport, v
BBU loop //分岐
以下は、時限ポートとタイムスタンピングの使用を示す別の例である。データが、ルックアップテーブル内の対応する出力値にアクセスするために使用されるinportから取得され、次にその値がoutportを介して出力される。データは、外部ポート(ckport)がハイになったときに取得される。inportポートは、ckportポートからクロックされ、ckportの状態の変化がタイムスタンプされ、したがってinportから取得されたデータは、このタイムスタンプに対応する。最後に、データは、時限ポートoutportを介して、指定されたタイマサイクル数の後に出力される。
GETR ck, CLOCK
SETC ckport, STAMPED
SETC ckport, TRANSITION
SETD ckport, 1
SETCLK ck, ckport
SETC inport, CLOCKED
SETCLK inport, ck
SETC outport, TIMED
loop:
IN ckport, d
GETTSTMP ckport, t
IN inport, d
LDW q, lookup, d //ルックアップテーブルからレジスタにロードする
ADD t, t, interval
SETTIME outport, t
OUT outport, d BBU loop
以上の説明と例から、本発明が、スレッドの実行、管理およびスケジューリングのタイミングをどのように正確に決定し、またそのようなスレッドによって処理される入力操作と出力操作に対する応答時間をどのように正確に制御するかを理解することができる。
7a、7b、7c、7d ポート
13 バス
14a、14b、14c インタフェースプロセッサ
16 実行ユニット
18 スレッドスケジューラ
201、202、20m レジスタ
24 メモリ
Claims (62)
- インタフェース部分と内部環境とを有するプロセッサであって、前記インタフェース部分は、
現在時間値を受け取るように構成された少なくとも1つのポートと、
前記ポートと関連付けられて、トリガ時間値を記憶するように構成された第1のレジスタと、
前記現在時間値が前記トリガ時間値と一致するかどうかを検出し、前記一致が検出された場合に、前記ポートと外部環境との間でデータを転送し、前記転送を示すためにレディ信号を変化させるように構成された比較ロジックとを含み、
前記内部環境は、
前記少なくとも1つのポートと前記内部環境との間でデータを転送するための実行ユニットと、
前記実行ユニットによって実行するための一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのスレッドスケジューラであって、前記レディ信号に応じて実行するために前記スレッドの1つまたは複数をスケジューリングするステップを含むプロセッサ。 - 前記現在時間値を出力するように構成されたカウンタを含み、前記少なくとも1つのポートは、前記カウンタから前記現在時間値を受け取るように構成された、請求項1に記載のプロセッサ。
- 複数のポートと複数の第1のレジスタとを含み、前記第1のレジスタはそれぞれ、それぞれのポートと関連付けられ、それぞれのトリガ時間値を記憶するように構成されており、前記スレッドスケジューラによる前記スケジューリングするステップは、前記レディ信号に応じて実行するための前記スレッドの1つまたは複数をスケジューリングするステップを含む、請求項2に記載のプロセッサ。
- 前記転送は、入力操作を含み、それにより、前記外部環境から前記少なくとも1つのポートにデータが取り込まれ、前記変化させるステップは、前記レディ信号を、前記データを前記内部環境に入力できることを示す第1の状態に設定するステップを含む、請求項1に記載のプロセッサ。
- 前記転送は、出力操作を含み、それにより、前記少なくとも1つのポートのそれぞれから前記外部環境にデータが提示され、前記変化させるステップは、前記レディ信号を、前記少なくとも1つのポートが前記内部環境との間でデータをさらに転送できることを示す第2の状態に設定するステップを含む、請求項1に記載のプロセッサ。
- 前記実行ユニットは、前記レディ信号のそれぞれが前記第1の状態にある場合にポートから前記内部環境にデータを入力する入力命令を実行するように構成され、前記入力命令は、前記1つまたは複数のスレッドのシーケンスの構成命令である、請求項4に記載のプロセッサ。
- 前記実行ユニットは、前記レディ信号のそれぞれが前記第2の状態にある場合に前記内部環境からポートにデータを出力する出力命令を実行するように構成され、前記出力命令は、前記1つまたは複数のスレッドのシーケンスの構成命令である、請求項5に記載のプロセッサ。
- 前記転送は、出力操作を含み、それにより、前記少なくとも1つのポートのそれぞれから前記外部環境にデータが提示され、前記変化させるステップは、前記レディ信号を、前記少なくとも1つのポートが前記内部環境との間でデータをさらに転送できることを示す第2の状態に設定するステップを含み、
前記実行ユニットは、前記入力命令が完了したときに前記それぞれのレディ信号を前記第2の状態に設定するように構成された、請求項6に記載のプロセッサ。 - 前記実行ユニットは、前記出力命令の完了時に前記それぞれのレディ信号を前記第1の状態に設定するように構成された、請求項7に記載のプロセッサ。
- 前記スレッドスケジューラによる前記スケジューリングするステップは、前記それぞれのレディ信号が前記第1の状態に設定されるまで前記入力命令のスレッドの実行を保留するステップを含む、請求項6に記載のプロセッサ。
- 前記スレッドスケジューラによる前記スケジューリングするステップは、前記それぞれのレディ信号が前記第2の状態に設定されるまで前記出力命令のスレッドの実行を保留するステップを含む、請求項7に記載のプロセッサ。
- 前記実行ユニットは、前記出力命令の完了時に前記それぞれのレディ信号を前記第1の状態に設定するように構成され、
前記転送は、入力操作と出力操作の両方を含み、前記実行ユニットは、入力命令と出力命令を実行するように構成された、請求項8に記載のプロセッサ。 - 前記実行ユニットは、前記トリガ時間値を前記第1のレジスタのうちの1つに記憶するセットトリガ時間命令を実行するように構成された、請求項1に記載のプロセッサ。
- 前記外部環境は、前記プロセッサが収容された集積回路の少なくとも1つのピンを含む、請求項1に記載のプロセッサ。
- 前記外部環境は、前記プロセッサが収容された集積回路上の別のプロセッサを含む、請求項1に記載のプロセッサ。
- ポートと前記内部環境との間のデータの転送は、前記ポートと前記実行ユニットとの間の転送を含む、請求項1に記載のプロセッサ。
- 前記内部環境はバスを含み、ポートと前記内部環境との間のデータの転送は、前記ポートと前記バスとの間の転送を含む、請求項1に記載のプロセッサ。
- 前記内部環境は、複数組の第2のレジスタを含み、各組の第2のレジスタは、前記複数のスレッドのそれぞれに関する情報を記憶し、ポートと前記内部環境との間の転送は、前記ポートと前記第2のレジスタのうちの1つとの間の転送を含む、請求項1に記載のプロセッサ。
- 前記スレッドスケジューラは、1組の実行可能スレッドを維持するように構成され、前記スレッドスケジューラによる前記スケジューリングするステップは、前記1組からスレッドを取り出すことによって前記スレッドを保留するステップを含む、請求項1に記載のプロセッサ。
- 前記少なくとも1つのポートは、タイムスタンプモードで動作可能であり、それにより、前記ポートは、タイムスタンプを前記ポートと前記外部環境との間のデータの転送と関連付ける、請求項1に記載のプロセッサ。
- 前記インタフェース部分は、前記少なくとも1つのポートと関連付けられた第3のレジスタを含み、タイムスタンプの前記関連付けは、前記タイムスタンプされた転送を実行する際に前記第3のレジスタに前記現在時間値を記憶するステップを含む、請求項20に記載のプロセッサ。
- 前記少なくとも1つのポートは、タイムスタンプモードで動作可能であり、それにより、前記ポートは、タイムスタンプを前記ポートと前記外部環境との間のデータの転送と関連付け、
前記インタフェース部分は、前記少なくとも1つのポートと関連付けられた第3のレジスタを含み、タイムスタンプの前記関連付けは、前記タイムスタンプされた転送を実行する際に前記第3のレジスタに前記現在時間値を記憶するステップを含み、
前記実行ユニットは、前記タイムスタンプを、前記第3のレジスタから、前記タイムスタンプされた転送と関連付けられたスレッドの前記第2のレジスタのうちの1つに転送するように構成された、請求項18に記載のプロセッサ。 - 前記実行ユニットは、前記ポートからのデータの入力と関連付けられたタイムスタンプを読み出し、前記トリガ時間値を前記タイムスタンプと指定された時間間隔を加えたものに設定して、前記時間間隔が経過した後で前記ポートから前記外部環境へのデータの出力をトリガする、請求項20に記載のプロセッサ。
- 前記現在時間値を前記実行ユニットに転送するように構成された少なくとも1つのタイマを含む、請求項1に記載のプロセッサ。
- 前記タイマは、ウェイクアップ時間値を記憶するように構成された第4のレジスタと、前記現在時間値が前記ウェイクアップ時間値と一致した場合に指示を生成するように構成された比較ロジックとを含み、
前記スレッドスケジューラによる前記スケジューリングは、前記指示を受け取るまで時限スレッドの実行を保留するようにスケジューリングするステップを含む、請求項24に記載のプロセッサ。 - 前記実行ユニットは、前記指示に応じて前記タイマから前記現在時間を読み出すように構成された、請求項25に記載のプロセッサ。
- 前記指示は、前記スレッドスケジューラに送られるスレッド識別子を含み、前記スレッド識別子は、前記時限スレッドを識別する、請求項25に記載のプロセッサ。
- 前記指示は、前記実行ユニットに送られる継続点ベクトルを含み、前記継続点ベクトルは、前記時限スレッド内の前記実行が再開されるポイントを指定する、請求項25に記載のプロセッサ。
- 前記実行ユニットは、前記継続点ベクトルを設定するセットベクトル命令を実行するように構成された、請求項28に記載のプロセッサ。
- インタフェース部分と内部環境とを有し、前記インタフェース部分が、少なくとも1つのポートと、前記ポートと関連付けられた第1のレジスタとを含み、前記内部環境が、実行ユニットとスレッドスケジューラを含むプロセッサにおいてスレッドをスケジューリングする方法であって、
前記ポートに現在時間値を受け取るステップと、
トリガ時間値を前記第1のレジスタに記憶するステップと、
前記現在時間値を前記トリガ時間値と比較して、前記現在時間値が前記トリガ時間値と一致するかどうかを検出するステップと、
前記一致が検出された場合に、前記ポートと外部環境との間でデータを転送し、前記転送を示すためにレディ信号を変化させるステップと、
前記スレッドスケジューラを操作して、前記実行ユニットにより実行するための一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのステップであって、前記レディ信号に応じて実行するために1つまたは複数の前記スレッドをスケジューリングするステップを含むステップと、
前記実行ユニットを操作して前記少なくとも1つのポートと前記内部環境との間でデータを転送するステップとを含む方法。 - 前記プロセッサは、前記現在時間値を出力するように構成されたカウンタを含み、前記現在時間値を前記カウンタから前記少なくとも1つのポートに提供するステップを含む、請求項30に記載の方法。
- 前記プロセッサは、複数のポートと、それぞれのポートとそれぞれ関連付けられた複数の第1のレジスタとを含み、それぞれのトリガ時間値をそれぞれの第1のレジスタに記憶するステップを含み、前記スレッドスケジューラによってスケジューリングする前記ステップは、前記レディ信号に応じて実行するために前記スレッドの1つまたは複数をスケジューリングするステップを含む、請求項31に記載の方法。
- 前記転送は、入力操作を含み、それにより、前記外部環境から前記少なくとも1つのポートにデータが取り込まれ、前記変化させるステップは、前記レディ信号を、前記データを前記内部環境に入力できることを示す第1の状態に設定する、請求項30に記載の方法。
- 前記転送は、出力操作を含み、それにより、前記少なくとも1つのポートのそれぞれから前記外部環境にデータが提示され、前記変化させるステップは、前記レディ信号を、少なくとも1つのポートが前記内部環境との間でデータをさらに転送することができることを示す第2の状態に設定するステップを含む、請求項30に記載の方法。
- 前記レディ信号のそれぞれが第1の状態にある場合に、前記実行ユニットを操作してデータをポートから前記内部環境に入力する入力命令を実行するステップを含み、前記入力命令は、前記1つまたは複数のスレッドのシーケンスの構成命令である、請求項33に記載の方法。
- 前記レディ信号のそれぞれが第2の状態にある場合に、前記実行ユニットを操作してデータを前記内部環境からポートに出力する出力命令を実行するステップを含み、前記出力命令は、前記1つまたは複数のスレッドのシーケンスの構成命令である、請求項34に記載の方法。
- 前記転送は、出力操作を含み、それにより、前記少なくとも1つのポートのそれぞれから前記外部環境にデータが提示され、前記変化させるステップは、前記レディ信号を、少なくとも1つのポートが前記内部環境との間でデータをさらに転送することができることを示す第2の状態に設定するステップを含み、
前記入力命令の完了時に、前記実行ユニットを操作して前記それぞれのレディ信号を前記第2の状態に設定するステップを含む、請求項35に記載の方法。 - 前記出力命令の完了時に、前記実行ユニットを操作して前記それぞれのレディ信号を前記第1の状態に設定するステップを含む、請求項36に記載の方法。
- 前記スレッドスケジューラによる前記スケジューリングをするステップが、前記それぞれのレディ信号が前記第1の状態に設定されるまで前記入力命令のスレッドの実行を保留するステップを含む、請求項35に記載の方法。
- 前記スレッドスケジューラによる前記スケジューリングするステップが、前記それぞれのレディ信号が前記第2の状態に設定されるまで前記出力命令のスレッドの実行を保留するステップを含む、請求項36に記載の方法。
- 前記出力命令の完了時に、前記実行ユニットを操作して前記それぞれのレディ信号を前記第1の状態に設定するステップを含み、
前記転送は、入力操作と出力操作の両方を含み、前記実行ユニットを操作して入力命令と出力命令を実行するステップを含む請求項37に記載の方法。 - 前記実行ユニットは、前記第1のレジスタのうちの1つにトリガ時間値を記憶するセットトリガ時間命令を実行するように構成された、請求項30に記載の方法。
- 前記外部環境は、前記プロセッサが収容された集積回路の少なくとも1つのピンを含む、請求項30に記載の方法。
- 前記外部環境は、前記プロセッサが収容された集積回路上の別のプロセッサを含む、請求項30に記載の方法。
- ポートと前記内部環境との間のデータの前記転送は、前記ポートと前記実行ユニットとの間の転送を含む、請求項30に記載の方法。
- 前記内部環境は、バスを含み、ポートと前記内部環境との間のデータの前記転送は、前記ポートと前記バスとの間の転送を含む、請求項30に記載の方法。
- 前記内部環境は、複数組の第2のレジスタを含み、各組の第2のレジスタは、前記複数のスレッドのそれぞれに関する情報を記憶し、ポートと前記内部環境との間の転送は、前記ポートと前記第2のレジスタのうちの1つとの間の転送を含む、請求項30に記載の方法。
- 前記スレッドスケジューラを操作して1組の実行可能スレッドを維持するステップを含み、前記スレッドスケジューラによる前記スケジューリングするステップは、前記1組の実行可能スレッドからスレッドを除外することによって前記スレッドを保留するステップを含む、請求項30に記載の方法。
- 前記ポートと前記外部環境との間のデータの転送をタイムスタンプと関連付けるステップを含む、請求項30に記載の方法。
- 前記インタフェース部分は、前記少なくとも1つのポートと関連付けられた第3のレジスタを含み、タイムスタンプの前記関連付けは、前記タイムスタンプされた転送を実行する際に前記現在時間値を前記第3のレジスタに記憶するステップを含む、請求項49に記載の方法。
- 前記ポートと前記外部環境との間のデータの転送をタイムスタンプと関連付けるステップを含み、
前記インタフェース部分は、前記少なくとも1つのポートと関連付けられた第3のレジスタを含み、タイムスタンプの前記関連付けは、前記タイムスタンプされた転送を実行する際に前記現在時間値を前記第3のレジスタに記憶するステップを含み、
前記実行ユニットを操作して、前記タイムスタンプを、前記第3のレジスタから、前記タイムスタンプと関連付けられたスレッドの前記第2のレジスタのうちの1つに転送するステップを含む、請求項47に記載の方法。 - 前記実行ユニットを操作して、前記ポートからデータの入力と関連付けられたタイムスタンプを読み出し、前記トリガ時間値を前記タイムスタンプと指定された時間間隔を加えたものに設定して、前記時間間隔が経過した後で前記ポートから前記外部環境へのデータの出力をトリガする、請求項49に記載の方法。
- 前記プロセッサは、少なくとも1つのタイマを含み、前記タイマから前記実行ユニットに前記現在時間値を転送するステップを含む、請求項30に記載の方法。
- 前記タイマは、第4のレジスタを含み、
前記第4のレジスタにウェイクアップ時間値を記憶するステップと、
前記現在時間値を前記ウェイクアップ時間値と比較して、前記現在時間値が前記ウェイクアップ時間値と一致しているかどうかを検出するステップと、
前記一致が検出された場合に指示を生成するステップとを含み、
前記スレッドスケジューラによる前記スケジューリングするステップが、前記指示を受け取るまで時限スレッドの実行を保留するステップを含む、請求項53に記載の方法。 - 前記実行ユニットを操作して、前記指示に応じて前記タイマから前記現在時間を読み出すステップを含む、請求項54に記載の方法。
- 前記指示を生成するステップは、前記スレッドスケジューラに、前記時限スレッドを識別するスレッド識別子を送るステップを含む、請求項54に記載の方法。
- 前記指示を生成するステップは、前記実行ユニットに、前記時限スレッド内の実行が再開されるポイントを指定する継続点ベクトルを送るステップを含む、請求項54に記載の方法。
- 前記実行ユニットを操作して、前記継続点ベクトルを設定するセットベクトル命令を実行するステップを含む、請求項57に記載の方法。
- モバイルアプリケーションプロセッサ、少なくとも1つの周辺装置、および前記モバイルアプリケーションプロセッサと周辺装置との間に接続されたインタフェースプロセッサを有し、前記インタフェースプロセッサが、インタフェース部分と内部環境を有する移動端末であって、前記インタフェース部分は、
現在時間値を受け取るように構成された少なくとも1つのポートと、
前記ポートと関連付けられて、トリガ時間値を記憶するように構成された第1のレジスタと、
前記現在時間値が前記トリガ時間値と一致するどうかを検出して、前記一致が検出された場合に、前記ポートとモバイルアプリケーションプロセッサまたは周辺装置との間でデータを転送し、転送を示すためにレディ信号を変化させるように構成された比較ロジックを含み、
前記内部環境は、
前記少なくとも1つのポートと前記内部環境との間でデータを転送するための実行ユニットと、
前記実行ユニットによって実行するために一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのスレッドスケジューラであって、前記レディ信号に応じて実行するために前記スレッドの1つまたは複数をスケジューリングするステップを含むスレッドスケジューラとを含む移動端末。 - 相互接続されたプロセッサの配列であって、前記プロセッサの少なくとも1つが、インタフェース部分と内部環境とを有し、前記インタフェース部分は、
現在時間値を受け取るように構成された少なくとも1つのポートと、
前記ポートと関連付けられて、トリガ時間値を記憶するように構成された第1のレジスタと、
前記現在時間値が前記トリガ時間値と一致するかどうか検出し、前記一致が検出された場合に、前記ポートと前記配列内の別のプロセッサとの間でデータを転送し、前記転送を示すためにレディ信号を変化させるように構成された比較ロジックとを含み、
前記内部環境は、
前記少なくとも1つのポートと前記内部環境との間でデータを転送するための実行ユニットと、
前記実行ユニットによって実行するために一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのスレッドスケジューラであって、前記レディ信号に応じて実行するための前記スレッドの1つまたは複数をスケジューリングするステップを含むスレッドスケジューラとを含む相互接続されたプロセッサの配列。 - インタフェース部分と内部環境を有するプロセッサであって、前記インタフェース部分は、
現在時間値を受け取るように構成されたポート手段と、
前記ポート手段と関連付けられトリガ時間値を記憶するためのレジスタ手段と、
前記現在時間値が前記トリガ時間値と一致するかどうかを検出し、前記一致が検出された場合に、前記ポート手段と外部環境手段との間でデータを転送し、前記転送を示すためにレディ信号を変化させるための比較手段とを含み、
前記内部環境は、
前記少なくとも1つのポート手段と前記内部環境との間でデータを転送するための実行手段と、
前記実行手段によって実行するために一連の命令をそれぞれ含む複数のスレッドをスケジューリングするためのスレッドスケジューリング手段であって、前記レディ信号に応じて実行するために1つまたは複数の前記スレッドをスケジューリングするステップを含むスレッドスケジューリング手段とを含むプロセッサ。 - インタフェース部分と内部環境を有し、前記インタフェース部分が、少なくとも1つのポートと、前記ポートと関連付けられた第1のレジスタとを含み、前記内部環境が、実行ユニットとスレッドスケジューラを含むプロセッサにおいてスレッドをスケジューリングするためのプログラムであって、コンピュータ上で実行されたときに、
前記ポートで現在時間値を受け取るステップと、
前記第1のレジスタにトリガ時間値を記憶するステップと、
前記現在時間値を前記トリガ時間値と比較して、前記現在時間値が前記トリガ時間値と一致するかどうかを検出するステップと、
前記一致が検出された場合には、前記ポートと外部環境との間でデータを転送し、前記転送を示すためにレディ信号を変化させるステップと、
前記スレッドスケジューラを操作して、前記実行ユニットにより実行するために一連の命令をそれぞれ含む複数のスレッドをスケジューリングするステップであって、前記レディ信号に応じて実行するために1つまたは複数の前記スレッドをスケジューリングするステップを含むスケジューリングするステップと、
前記少なくとも1つのポートと前記内部環境との間でデータを転送するステップとを含むプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/785,346 | 2007-04-17 | ||
US11/785,346 US7617386B2 (en) | 2007-04-17 | 2007-04-17 | Scheduling thread upon ready signal set when port transfers data on trigger time activation |
PCT/EP2008/054530 WO2008125670A1 (en) | 2007-04-17 | 2008-04-15 | Timed ports |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010525436A JP2010525436A (ja) | 2010-07-22 |
JP5222937B2 true JP5222937B2 (ja) | 2013-06-26 |
Family
ID=39737141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010503479A Active JP5222937B2 (ja) | 2007-04-17 | 2008-04-15 | 時限ポート |
Country Status (6)
Country | Link |
---|---|
US (1) | US7617386B2 (ja) |
EP (2) | EP3349120B1 (ja) |
JP (1) | JP5222937B2 (ja) |
KR (1) | KR101486027B1 (ja) |
CN (1) | CN101689157B (ja) |
WO (1) | WO2008125670A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5510000B2 (ja) * | 2010-03-31 | 2014-06-04 | ソニー株式会社 | コンテンツ送信装置、コンテンツ再生システム、コンテンツ送信方法、およびプログラム |
US8732357B2 (en) * | 2010-10-28 | 2014-05-20 | International Business Machines Corporation | Apparatus and method for dynamically enabling and disabling write XFR—RDY |
US9098270B1 (en) * | 2011-11-01 | 2015-08-04 | Cypress Semiconductor Corporation | Device and method of establishing sleep mode architecture for NVSRAMs |
US9104423B2 (en) * | 2012-05-16 | 2015-08-11 | Nvidia Corporation | Method and system for advance wakeup from low-power sleep states |
US9395799B2 (en) | 2012-08-09 | 2016-07-19 | Nvidia Corporation | Power management techniques for USB interfaces |
FR2996091B1 (fr) * | 2012-09-21 | 2015-07-17 | Thales Sa | Noeud fonctionnel pour un reseau de transmission d'informations et reseau correspondant |
TWI489237B (zh) * | 2012-11-16 | 2015-06-21 | Ind Tech Res Inst | 即時取樣裝置及其方法 |
JP6029433B2 (ja) | 2012-11-26 | 2016-11-24 | ルネサスエレクトロニクス株式会社 | マイコン |
US9760150B2 (en) | 2012-11-27 | 2017-09-12 | Nvidia Corporation | Low-power states for a computer system with integrated baseband |
US9465655B2 (en) | 2012-11-28 | 2016-10-11 | Htc Corporation | Method for managing threads using executing time scheduling technique and electronic device using the same method |
CN103853605B (zh) * | 2012-11-28 | 2017-06-09 | 宏达国际电子股份有限公司 | 线程管理方法及其电子装置 |
CN103857019B (zh) | 2012-11-30 | 2018-01-02 | 辉达公司 | 一种在移动终端中用于省电的方法 |
KR102250089B1 (ko) * | 2014-03-11 | 2021-05-10 | 삼성전자주식회사 | 레지스터 포트를 관리하는 방법 및 장치 |
US10203745B2 (en) | 2016-03-30 | 2019-02-12 | Qualcomm Incorporated | Apparatus and method for dynamic power reduction in a unified scheduler |
KR102530391B1 (ko) | 2018-01-25 | 2023-05-09 | 삼성전자주식회사 | 외부 인터럽트를 지원하는 저전력 보이스 트리거 시스템을 포함하는 애플리케이션 프로세서, 이를 포함하는 전자 장치 및 그 동작 방법 |
EP3537293A1 (de) | 2018-03-09 | 2019-09-11 | Till I.D. GmbH | Zeitlich deterministischer mikroprozessor und mikrocontroller |
CN110427634B (zh) * | 2019-05-17 | 2022-08-02 | 西南交通大学 | 基于fpga实现反应系统的通信系统及其构建方法 |
US11288072B2 (en) * | 2019-09-11 | 2022-03-29 | Ceremorphic, Inc. | Multi-threaded processor with thread granularity |
GB2601735A (en) * | 2020-12-01 | 2022-06-15 | Nordic Semiconductor Asa | Peripheral interconnect controller |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6025952B2 (ja) * | 1978-05-20 | 1985-06-21 | アイホン株式会社 | 時限方式 |
JPH01140339A (ja) * | 1987-11-27 | 1989-06-01 | Hitachi Ltd | 定時刻起動方式 |
JPH03208130A (ja) * | 1990-01-11 | 1991-09-11 | Nec Corp | 状態遷移実行装置 |
JPH04315209A (ja) * | 1991-04-12 | 1992-11-06 | Mitsubishi Electric Corp | マイクロコンピュータ |
JPH1091431A (ja) * | 1996-09-13 | 1998-04-10 | Ricoh Co Ltd | データ処理装置 |
US5818839A (en) * | 1997-06-27 | 1998-10-06 | Newbridge Networks Corporation | Timing reference for scheduling data traffic on multiple ports |
US6219741B1 (en) * | 1997-12-10 | 2001-04-17 | Intel Corporation | Transactions supporting interrupt destination redirection and level triggered interrupt semantics |
US6243842B1 (en) * | 1998-06-08 | 2001-06-05 | Stmicroelectronics, Inc. | Method and apparatus for operating on a memory unit via a JTAG port |
US7171542B1 (en) | 2000-06-19 | 2007-01-30 | Silicon Labs Cp, Inc. | Reconfigurable interface for coupling functional input/output blocks to limited number of i/o pins |
JP3698987B2 (ja) * | 2000-12-18 | 2005-09-21 | エヌイーシーコンピュータテクノ株式会社 | バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置 |
US7289523B2 (en) * | 2001-09-13 | 2007-10-30 | International Business Machines Corporation | Data packet switch and method of operating same |
CN100449478C (zh) * | 2002-05-31 | 2009-01-07 | 德拉华州大学 | 用于实时多线程处理的方法和装置 |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7380248B1 (en) * | 2004-02-26 | 2008-05-27 | Sun Microsystems, Inc. | Queue alerts |
JP2006048241A (ja) * | 2004-08-02 | 2006-02-16 | Hitachi Ltd | 組込み制御装置 |
US7406550B2 (en) | 2005-01-27 | 2008-07-29 | Innovasic, Inc | Deterministic microcontroller with configurable input/output interface |
-
2007
- 2007-04-17 US US11/785,346 patent/US7617386B2/en active Active
-
2008
- 2008-04-15 JP JP2010503479A patent/JP5222937B2/ja active Active
- 2008-04-15 EP EP18158941.7A patent/EP3349120B1/en active Active
- 2008-04-15 EP EP20080736224 patent/EP2137627A1/en not_active Withdrawn
- 2008-04-15 CN CN2008800206793A patent/CN101689157B/zh active Active
- 2008-04-15 KR KR1020097023971A patent/KR101486027B1/ko active IP Right Grant
- 2008-04-15 WO PCT/EP2008/054530 patent/WO2008125670A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US7617386B2 (en) | 2009-11-10 |
US20080263318A1 (en) | 2008-10-23 |
CN101689157A (zh) | 2010-03-31 |
KR20100016636A (ko) | 2010-02-12 |
WO2008125670A1 (en) | 2008-10-23 |
CN101689157B (zh) | 2012-08-22 |
JP2010525436A (ja) | 2010-07-22 |
KR101486027B1 (ko) | 2015-01-28 |
EP3349120A1 (en) | 2018-07-18 |
EP3349120B1 (en) | 2019-02-20 |
EP2137627A1 (en) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5222937B2 (ja) | 時限ポート | |
EP2137628B1 (en) | Clocked ports | |
KR101486025B1 (ko) | 프로세서에서의 쓰레드 스케쥴링 | |
KR101501181B1 (ko) | 인터페이스 프로세서 | |
EP2137618B1 (en) | Processor instruction set | |
EP2137617B1 (en) | Processor instruction set | |
JP2010521730A5 (ja) | ||
EP2137613B1 (en) | Processor register architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130128 |
|
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: 20130219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130311 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160315 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5222937 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |