JP2008092190A - 遅延回路及びプロセッサ - Google Patents
遅延回路及びプロセッサ Download PDFInfo
- Publication number
- JP2008092190A JP2008092190A JP2006269567A JP2006269567A JP2008092190A JP 2008092190 A JP2008092190 A JP 2008092190A JP 2006269567 A JP2006269567 A JP 2006269567A JP 2006269567 A JP2006269567 A JP 2006269567A JP 2008092190 A JP2008092190 A JP 2008092190A
- Authority
- JP
- Japan
- Prior art keywords
- delay
- data
- valid
- output
- input
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pulse Circuits (AREA)
Abstract
【課題】回路規模の増大を防ぐ。
【解決手段】遅延回路1では、データ遅延部1aでは、入力データを、複数のデータ遅延素子によって遅延する。バリッド遅延部1bは、入力データの有効を示す入力バリッドを、データ遅延部1aのデータ遅延素子に対応するバリッド遅延素子によって遅延する。これにより、入力データとそのバリッドとは、対応付けられたデータ遅延素子とバリッド遅延素子を同じタイミングで通過する。各データ遅延素子及びバリッド遅延素子の出力信号は、それぞれ取り出すことができるので、遅延回路1に入力する1つの入力信号について、所望の遅延量の複数の出力信号を得ることができる。
【選択図】図1
【解決手段】遅延回路1では、データ遅延部1aでは、入力データを、複数のデータ遅延素子によって遅延する。バリッド遅延部1bは、入力データの有効を示す入力バリッドを、データ遅延部1aのデータ遅延素子に対応するバリッド遅延素子によって遅延する。これにより、入力データとそのバリッドとは、対応付けられたデータ遅延素子とバリッド遅延素子を同じタイミングで通過する。各データ遅延素子及びバリッド遅延素子の出力信号は、それぞれ取り出すことができるので、遅延回路1に入力する1つの入力信号について、所望の遅延量の複数の出力信号を得ることができる。
【選択図】図1
Description
本発明は遅延回路及びプロセッサに関し、特に、予め設定された構成情報に基づいて、入力信号を遅延させて出力する遅延回路と、このような遅延回路で構成される遅延モジュールと所定の演算処理を行う演算処理モジュールとを有し、モジュールの接続構成を切り替えながら所定の演算処理を行うプロセッサに関する。
従来、アプリケーションに柔軟に対応するための技術として、動的にハードウェアの再構築を行う技術(ダイナミックリコンフィギュラブル技術)がある。
たとえば、動的再構成が可能なリコンフィギュラブル・プロセッサは、再構成可能なハードウェア部分の処理内容と配置(以下、コンフィギュレーションという)に関する構成情報であるコンフィギュレーション・データを格納するコンフィギュレーションメモリと、処理内容を設定可能なプロセッサ・エレメント(Processor Element;以下、PEとする)と、PEを可変に接続するネットワークを具備する。コンフィギュレーションメモリに格納されるコンフィギュレーション・データに基づいて、PEの配置と処理内容を定め、各PEによる演算処理を並行して実行させるパイプライン処理を行う。このようにパイプライン処理を行うことにより、性能向上を図ることができる。
たとえば、動的再構成が可能なリコンフィギュラブル・プロセッサは、再構成可能なハードウェア部分の処理内容と配置(以下、コンフィギュレーションという)に関する構成情報であるコンフィギュレーション・データを格納するコンフィギュレーションメモリと、処理内容を設定可能なプロセッサ・エレメント(Processor Element;以下、PEとする)と、PEを可変に接続するネットワークを具備する。コンフィギュレーションメモリに格納されるコンフィギュレーション・データに基づいて、PEの配置と処理内容を定め、各PEによる演算処理を並行して実行させるパイプライン処理を行う。このようにパイプライン処理を行うことにより、性能向上を図ることができる。
一連のパイプライン処理が終了すると、コンフィギュレーション・データに基づいてコンフィギュレーションの再構成が行われる。しかしながら、一連の処理が終了してから再構成を行うとすると、切り替え時間が全体処理のオーバヘッドとなる。そこで、パイプライン処理終了時のコンフィギュレーションの切り替えを効率的に行うため、コンフィギュレーションの実行時間を算出して処理が終了するまでのクロックサイクルを予め確定しておき、実際に計測したクロック数と比較することによって、パイプライン処理の終了時刻を判定するプロセッサが提案されている(たとえば、特許文献1参照。)。
特開2006−18413号公報(図1)
しかし、従来のダイナミックコンフィギュラブル技術を用いたLSI(Large Scale Integrated Circuit)では、演算処理のタイミング調整のための遅延エレメントを多数用いなければならず、回路規模が増大するという問題点があった。
PEには、主に演算処理を行うALU(Arithmetic and Logic Unit)と、複数のデータの処理タイミングを調整する遅延エレメントがある。図13は、リコンフィギュラブル・プロセッサのPE接続例を示したブロック図である。
図は、「連続入力データ(a0,a1,a2,a3,・・・)を入力し、(a0+a3)×p0+(a1+a2)×p1の演算を行って結果を出力する」という演算処理を行うためのリコンフィギュラブル・プロセッサの構成例である。ALU911は「a0+a3」、ALU912は「a1+a2」、ALU913は「ALU911の出力(a0+a3)×p0」、ALU914は「ALU912の出力(a1+a2)×p1」、及びALU915は「ALU913の出力[(a0+a3)×p0]+ALU914の出力[(a1+a2)×p1]」、の演算処理をそれぞれ実行する。
たとえば、ALU911は、a0と、a0より3サイクル遅れて入力するa3とを加算する。そこで、演算処理のタイミングをとるため、信号伝達経路に3つの遅延エレメント921,922,923を接続し、これらを経由したa0をALU911へ入力する。これにより、a0のALU911への入力を3サイクル遅らせ、a0とa3を同じタイミングで入力させることが可能となる。なお、遅延エレメント921,922,923は、それぞれ入力データを1サイクル遅らせて出力する。
同様に、ALU912は、a1とa2の入力タイミングを合わせ、かつ、演算処理のタイミングをALU911と合わせるため、a1は、2つの遅延エレメント921,922を経由し、a2は、1つの遅延エレメント921を経由してALU912に入力されるようにする。これにより、ALU912に同じタイミングでa1とa2を入力することができる。また、ALU911とALU912の演算処理開始のタイミングが同じになる。
なお、この例では、ALU911とALU912との演算処理タイミングは同期するので、後段のALU913,914へ新たな遅延エレメントを接続せずに演算結果を出力することができるが、演算処理の構成によっては、さらに、遅延エレメントを接続する必要がある。また、上記の説明では、入力は4データであったが、同様の処理を8データで行うとすると、必要な遅延エレメントは7つになってしまう。したがって、自由度の高いコンフィギュレーションを可能とするためには、さまざまなケースを想定して多数の遅延エレメントを予め用意しておかなければならない。
このように、ダイナミックコンフィギュラブル技術を用いたLSIを設計する場合には、遅延エレメントを予め多数用意しておかなければならならず、回路規模が増大するという問題点がある。
また、一般的に、ALUは、データが有効であることを表す有効フラグが付加されているデータを受け取ることで演算を開始し、有効フラグ付きの結果を出力する。たとえば、図13のALU911の場合では、有効フラグ付きで入力データが順次入力されるので、毎回、現入力データと3サイクル前の入力データとを加算する演算処理が行われ、演算結果が出力される。この時発生する組み合わせによっては、演算結果が後段で不要となるものがある場合には、不要なデータを破棄する管理処理が必要となるという問題点もある。
本発明はこのような点に鑑みてなされたものであり、コンフィギュレーションの自由度を損なうことなく回路規模の増大を防ぐことが可能な遅延回路及びプロセッサを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような遅延回路1が提供される。遅延回路1は、データ遅延部1aと、有効情報(図では、バリッド)遅延部1bとを有し、予め設定された構成情報に基づいて、入力信号を遅延させて出力する。
データ遅延部1aは、それぞれに設定される所定の遅延量に基づいて、入力データの出力を遅延させる複数のデータ遅延素子を具備する。そして、データ遅延部1a内の異なる遅延量の複数のデータ遅延素子の出力データを外部に出力する。また、有効情報(バリッド)遅延部1bは、データ遅延部1aの入力データが有効である場合に入力データに添付されて遅延回路1に入力される有効情報(バリッド)を受け取ると、対応する入力データに応じて有効情報(バリッド)の出力を遅延する有効情報(バリッド)信号遅延素子を有する。
このような遅延回路1によれば、入力データと、その入力データに添付される有効情報(バリッド)とを受け取ると、入力データはデータ遅延部1a、有効情報(バリッド)は有効情報(バリッド)遅延部1bに入力する。入力データは、データ遅延部1aの異なる遅延量が設定される複数のデータ遅延素子によって出力が遅延されて、外部に出力される。これにより、1つの入力データから遅延量の異なる複数の出力データが得られる。一方、有効情報(バリッド)遅延部1bでは、有効情報(バリッド)遅延素子によって、有効情報(バリッド)を、対応するデータ遅延部1aの入力データの遅延量に応じて遅延する。したがって、入力データとその有効情報(バリッド)とは、対応付けられているデータ遅延素子と有効情報(バリッド)遅延素子との組ごとに異なる遅延量で遅延された後、出力される。これにより、同じ入力データについて、遅延量の異なる複数の出力データ及び出力有効情報(バリッド)を得ることができる。
また、上記課題を解決するために、予め設定された構成情報に基づいて、入力信号の遅延や所定の演算処理を行うモジュールの接続構成を切り替えながら所定の演算処理を行うプロセッサにおいて、入力データを受け取ると、それぞれに設定される所定の遅延量に基づいて入力データの出力を遅延させる複数のデータ遅延素子を具備するデータ遅延部と、入力データが有効である場合に入力データに添付されて入力される有効情報を受け取ると、対応する入力データに応じて有効情報の出力を遅延させる複数の有効情報遅延素子を具備する有効情報遅延部と、を有する遅延モジュールと、遅延モジュールから出力された出力データ及び有効情報を入力し、構成情報に基づき所定の演算処理を行う演算処理モジュールと、を具備することを特徴とするプロセッサが提供される。
このようなプロセッサによれば、遅延モジュールでは、入力データとその有効情報とを受け取ると、入力データと有効情報との組ごとに異なる遅延量で出力が遅延される。これにより、遅延モジュールから、同じ入力データに対し、遅延量の異なる複数の出力信号を得ることができる。演算処理モジュールは、遅延モジュールから出力された出力データ及び有効情報を入力し、所定の演算処理を行う。
本発明に係る遅延回路及びこの遅延回路を搭載したプロセッサでは、入力データを所定の遅延量で遅延させる複数のデータ遅延素子を有するデータ遅延部と、入力データに添付される有効情報(バリッド)遅延素子を有する有効情報(バリッド)遅延部とを具備し、入力データとその有効情報(バリッド)とを所望の遅延量で遅延して出力する。これにより、遅延回路に入力される1つの入力データ及び有効情報(バリッド)に対し、異なる遅延量の複数の出力データ及び出力有効情報(バリッド)を得ることができる。この結果、出力信号ごとに用意されていた遅延回路の数を削減させることができる。
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
図1は、実施の形態に適用される発明の概念図である。
本発明に係る遅延回路1は、データ遅延部1a、有効情報(以下、バリッドとする)遅延部1b、及び遅延制御部1cを有する。なお、この遅延回路1がLSIに組み込まれる場合には、遅延回路1全体が1つの遅延モジュールとして組み込まれる。遅延回路1は、入力データと、その入力データが有効である場合には、入力データに添付されるバリッドを受け取る。
データ遅延部1aは、それぞれに設定される所定の遅延量に基づいて入力データの出力を遅延させる複数のデータ遅延素子で構成され、入力データを取り込む信号線と、生成した出力データを外部に出力する複数の信号線とに接続する。信号線を介して外部から入力データを受け取ると、各データ遅延素子は、それぞれに設定される遅延量によって入力データの出力を遅延する。これにより、同じ入力データから遅延量の異なる複数の出力データ(1)、・・・、出力データ(n)が生成される。なお、nは任意の整数である。この出力データ(1)、・・・、出力データ(n)は、所定の信号線を介して外部に出力される。
バリッド遅延部1bは、データ遅延部1aのデータ遅延素子に対応付けられる所定の遅延量に基づいて、入力バリッドの出力を遅延させる複数のバリッド遅延素子で構成され、入力バリッドを取り込む信号線と、生成した出力バリッドを外部に出力する複数の信号線とに接続する。データ遅延部1aに入力される入力データが有効である場合に入力データに添付されるバリッドを入力し、データ遅延部1aによる対応する入力データの遅延に応じて、バリッドの出力を遅延する。これにより、入力データに添付された入力バリッドが、対応するデータ遅延部1aの出力データ(1)、・・・、出力データ(n)の出力タイミングに合わせて、出力バリッド(1)、・・・、出力バリッド(n)として出力される。
遅延制御部1cは、制御信号と入力バリッドとを入力する信号線と、データ遅延部1a及びバリッド遅延部1bにそれぞれを制御する制御信号を伝達する信号線とに接続する。遅延回路1の動作指示を行う制御信号と、入力バリッドとを受け取ると、制御信号及び入力バリッドに基づいて、データ遅延部1a及びバリッド遅延部1bの動作を制御する。図の例では、データ遅延部1aに対しデータ遅延部制御信号、バリッド遅延部1bに対しバリッド遅延部制御信号を出力し、制御を行う。
ここで、制御信号が、遅延回路1の動作の停止を指示する信号である場合には、遅延制御部1cは、制御信号に応じてデータ遅延部制御信号及びバリッド遅延部制御信号を設定し、データ遅延部1a及びバリッド遅延部1bの動作を停止させる。これらの制御信号によって停止要求が出力されている間、データ遅延部1a及びバリッド遅延部1bは動作を停止させる。
また、制御信号が、予め設定される構成情報に基づいて遅延回路1の動作を指示する信号である場合には、遅延制御部1cは、指示に従って、バリッド出力など、データ遅延部1a及びバリッド遅延部1bの動作を制御する。たとえば、入力データに添付される入力バリッドを監視し、入力バリッドが添付されていない場合には、遅延処理動作を行わないようにデータ遅延部1aを制御する。また、計数手段を具備し、たとえば、入力バリッドが添付される入力データの個数をカウントし、カウント値に応じてバリッド遅延部1bを制御し、バリッド遅延部1bの出力バリッド(1)、・・・、出力バリッド(n)の状態を操作するとしてもよい。詳細は、後述する。
このような構成の遅延回路1の動作について説明する。
遅延回路1は、入力データと、その入力データが有効であることを示す入力バリッドを受け取ると、入力データをデータ遅延部1a、入力バリッドをバリッド遅延部1bに送る。データ遅延部1aとバリッド遅延部1bとは、それぞれ所定の遅延量が設定されるデータ遅延素子群とバリッド遅延素子群とを有する。データ遅延素子群とバリッド遅延素子群とは対応付けられており、一対の入力データと入力バリッドとは、特に動作指定がされない場合は、データ遅延部1a及びバリッド遅延部1bから同じタイミングで出力される。また、データ遅延部1aのデータ遅延素子群のうちの2以上のデータ遅延素子、及びバリッド遅延部1bのバリッド遅延素子群のうちの2以上のバリッド遅延素子には、出力データと、出力バリッドとを外部に出力するための信号線が接続されている。これにより、1組の入力データと入力バリッドとが、遅延量の異なる複数の出力データと出力バリッドとして出力される。
遅延回路1は、入力データと、その入力データが有効であることを示す入力バリッドを受け取ると、入力データをデータ遅延部1a、入力バリッドをバリッド遅延部1bに送る。データ遅延部1aとバリッド遅延部1bとは、それぞれ所定の遅延量が設定されるデータ遅延素子群とバリッド遅延素子群とを有する。データ遅延素子群とバリッド遅延素子群とは対応付けられており、一対の入力データと入力バリッドとは、特に動作指定がされない場合は、データ遅延部1a及びバリッド遅延部1bから同じタイミングで出力される。また、データ遅延部1aのデータ遅延素子群のうちの2以上のデータ遅延素子、及びバリッド遅延部1bのバリッド遅延素子群のうちの2以上のバリッド遅延素子には、出力データと、出力バリッドとを外部に出力するための信号線が接続されている。これにより、1組の入力データと入力バリッドとが、遅延量の異なる複数の出力データと出力バリッドとして出力される。
たとえば、図13に示した連続入力データ(a0,a1,a2,a3,・・・)について、「a0+a3」のように、a0と、a0より3サイクル遅れて入力するa3と、を後段の演算回路で加算する場合を例にとって説明する。遅延回路1のデータ遅延部1aは、1サイクルずつ遅延を行う複数のデータ遅延素子で構成されるとする。後段の演算回路では、遅延回路1の複数の出力データ(1)、・・・、出力データ(n)のうち、遅延量の差が3サイクルの出力データ2点を選択して接続すれば、1つの遅延回路1によって演算タイミングを調整することができる。なお、バリッドについても同様である。
このように、本発明によれば、同じ入力データに対し、遅延量の異なる複数の出力データと出力バリッドを得ることができるので、出力データごとに設けられていた遅延回路の数を減らすことができる。
さらに、構成情報に基づいて生成される制御信号によって遅延制御部1cがデータ遅延部1a及びバリッド遅延部1bを制御することにより、演算タイミングの調整をより詳細に制御することができる。
以下、実施の形態を、リコンフィギュラブル・プロセッサに適用した場合を例に図面を参照して詳細に説明する。
図2は、本発明の実施の形態のリコンフィギュラブル・プロセッサの構成例を示したブロック図である。
図2は、本発明の実施の形態のリコンフィギュラブル・プロセッサの構成例を示したブロック図である。
本発明の実施の形態のリコンフィギュラブル・プロセッサ10は、コンフィギュレーションメモリ11、PE12a,12b,・・・,12n、及びネットワーク13を有する。
コンフィギュレーションメモリ11は、PE12a,12b,・・・,12nの処理内容や配置、ネットワーク13におけるPE接続などの構成情報であるコンフィギュレーション・データを格納する。
PE12a,12b,・・・,12nは、四則演算や論理演算などの処理を行うALUや、遅延モジュールとして機能する遅延エレメントなどのエレメント群である。コンフィギュレーションメモリ11に格納される動作設定に従って処理動作を行う。エレメントには、1つのバリッド付き入力データを、異なる遅延量で遅延し、それぞれ遅延量の異なる複数のバリッド付き出力データとして出力する、本発明に係る多出力遅延エレメントも含まれる。
ネットワーク13は、PE12a,12b,・・・,12nの間のデータ転送を処理する。コンフィギュレーションメモリ11に格納される接続設定に従って、PE12a,12b,・・・,12n間のデータの流れを切り替える。
たとえば、コンフィギュレーションメモリ11に格納されるコンフィギュレーション・データに、PE12aが多出力遅延エレメント、PE12bがPE12aの2つの出力データを加算するALUであることが設定されていたとする。PE12aは、コンフィギュレーション・データに従って、ネットワーク13経由で入力される入力データを異なる遅延量の複数の出力データとして出力する。ネットワーク13は、コンフィギュレーション・データに従って、PE12aの所定の出力データをPE12bの加算エレメントに転送する。PE12bは、入力データを加算し、ネットワーク13へ出力する。ネットワーク13は、次の接続PEへデータを転送する。
ここで、本発明の実施の形態の多出力遅延エレメントについて説明する。
図3は、本発明の実施の形態の多出力遅延エレメントのデータ遅延部の構成例を示すブロック図である。
図3は、本発明の実施の形態の多出力遅延エレメントのデータ遅延部の構成例を示すブロック図である。
多出力遅延エレメント100は、データ遅延部110、バリッド遅延部120、及び遅延制御部130を具備する。
データ遅延部110は、入力データの伝達経路に、データ遅延素子111−1,111−2,・・・,111−nが並ぶデータ遅延素子列により構成される。データ遅延素子111−1,111−2,・・・,111−nは、入力データを所定の遅延量で遅延し、所定の遅延量の出力データを外部に出力する。この例では、データ遅延素子111−1は、外部から入力される入力データを遅延し、後段のデータ遅延素子111−2へ出力する。以下同様に、入力データは、データ遅延素子間を順に転送され、最終段のデータ遅延素子111−nまで流れる。各データ遅延素子111−1,111−2,・・・,111−nの出力は、それぞれの出力端に接続する信号線によりネットワーク13に出力される。このような構成により、入力データに対し、複数の異なる遅延量を有する出力データが生成される。
データ遅延部110は、入力データの伝達経路に、データ遅延素子111−1,111−2,・・・,111−nが並ぶデータ遅延素子列により構成される。データ遅延素子111−1,111−2,・・・,111−nは、入力データを所定の遅延量で遅延し、所定の遅延量の出力データを外部に出力する。この例では、データ遅延素子111−1は、外部から入力される入力データを遅延し、後段のデータ遅延素子111−2へ出力する。以下同様に、入力データは、データ遅延素子間を順に転送され、最終段のデータ遅延素子111−nまで流れる。各データ遅延素子111−1,111−2,・・・,111−nの出力は、それぞれの出力端に接続する信号線によりネットワーク13に出力される。このような構成により、入力データに対し、複数の異なる遅延量を有する出力データが生成される。
たとえば、データ遅延素子111−1,111−2,・・・,111−nが、入力データを1サイクル遅延して出力する遅延素子であるとすると、遅延量が1サイクルのデータ遅延素子111−1の出力データから、遅延量がnサイクルのデータ遅延素子111−nの出力データまで、1サイクルごとに任意の遅延量のデータを得ることができる。利用者は、必要な遅延量のデータ遅延素子を選択することにより、所望の遅延データを得ることができる。
また、データ遅延部110は、遅延制御部130からの動作停止信号1を入力し、動作停止信号1が停止を指示するときには、遅延処理を停止する。
バリッド遅延部120は、入力データに添付される入力バリッドをデータ遅延部110の出力データの遅延量に応じて遅延させ、対応する出力データの出力タイミングに合わせて出力する。たとえば、データ遅延部110と同様に、入力バリッドの伝達経路に並ぶバリッド遅延素子により構成される。また、遅延制御部130からの動作停止信号2を入力し、動作停止信号2が停止を指示するときには、遅延処理を停止する。さらに、出力バリッドの値を制御するマスク信号及びクリア信号を遅延制御部130から入力し、これらの制御信号に応じて出力バリッドを操作する。
バリッド遅延部120は、入力データに添付される入力バリッドをデータ遅延部110の出力データの遅延量に応じて遅延させ、対応する出力データの出力タイミングに合わせて出力する。たとえば、データ遅延部110と同様に、入力バリッドの伝達経路に並ぶバリッド遅延素子により構成される。また、遅延制御部130からの動作停止信号2を入力し、動作停止信号2が停止を指示するときには、遅延処理を停止する。さらに、出力バリッドの値を制御するマスク信号及びクリア信号を遅延制御部130から入力し、これらの制御信号に応じて出力バリッドを操作する。
遅延制御部130は、制御信号、動作設定信号、及び入力バリッドを入力し、これらの信号に応じて、動作停止信号1、動作停止信号2、マスク信号、及びクリア信号を操作し、データ遅延部110及びバリッド遅延部120を制御する。
入力側の制御信号は、多出力遅延エレメント100の動作の停止を指示する信号とし、動作設定信号は、コンフィギュレーション・データに基づいて動作を指定する指示情報であるとする。出力側の動作停止信号1は、データ遅延部110の遅延処理を停止させる信号とし、動作停止信号2は、バリッド遅延部120の遅延処理を停止させる信号とする。マスク信号は、任意の期間、バリッド遅延部120の出力バリッドの値を無効状態にするための制御信号とする。そして、クリア信号は、バリッド遅延部120の各バリッド遅延素子が保持するバリッドの値をリセットするための制御信号とする。遅延制御部130は、これらの信号を用いて、さまざまなケースに適応するようにデータ遅延部110及びバリッド遅延部120を制御することができる。したがって、利用者は、従来、多数のPEを接続して行っていた遅延制御を多出力遅延エレメント100だけで実現することができる。適用例については、後述する。
なお、上記の説明では、データ遅延部110の各データ遅延素子111−1,111−2,・・・,111−nの出力データは、直接ネットワーク13に出力するとしたが、このような構成では、ネットワークへの出力負荷にばらつきがあり、高速動作をする場合には問題がある。そこで、高速動作を目的としたデータ遅延部の構成例を以下に示す。
図4は、本発明の実施の形態の多出力遅延エレメントのデータ遅延部の他の構成例を示すブロック図である。図3と同じものには同じ番号を付し、説明は省略する。
データ遅延部112は、図3の多出力遅延エレメント100のデータ遅延部110と置き換えることができる。データ遅延部112は、データ遅延素子111−1,111−2,・・・,111−nとネットワーク13を接続する信号線に出力専用レジスタ113−1,113−2,・・・を具備する。出力専用レジスタ113−1,113−2,・・・により、ネットワーク13への出力負荷を揃え、高速動作時の動作を安定させることができる。
データ遅延部112は、図3の多出力遅延エレメント100のデータ遅延部110と置き換えることができる。データ遅延部112は、データ遅延素子111−1,111−2,・・・,111−nとネットワーク13を接続する信号線に出力専用レジスタ113−1,113−2,・・・を具備する。出力専用レジスタ113−1,113−2,・・・により、ネットワーク13への出力負荷を揃え、高速動作時の動作を安定させることができる。
次に、実施の形態の多出力遅延エレメントの動作を、PE接続例を用いて説明する。
図5は、本発明の実施の形態の多出力遅延エレメントを用いたPE接続の一例を示した図である。図13に示した従来の演算処理を実施の形態の多出力遅延エレメントを用いて構成する例を示している。
図5は、本発明の実施の形態の多出力遅延エレメントを用いたPE接続の一例を示した図である。図13に示した従来の演算処理を実施の形態の多出力遅延エレメントを用いて構成する例を示している。
多出力遅延エレメント100は、図3に示したように、入力データを1サイクル遅延して出力するデータ遅延素子111−1,111−2,・・・,111−nで構成される遅延素子列を具備する。このデータ遅延素子列において、入力データを1サイクル遅延させた出力データをc1、2サイクル遅延させた出力データをc2、3サイクル遅延させた出力データをc3、及び4サイクル遅延させた出力データをc4とする。
加算エレメント141は、c1と、c1より3サイクル前のc4を入力して加算処理を行うことにより、a0と、a0より3サイクル後に入力されるa3との加算処理「a0+a3」を実行する。また、加算エレメント142は、c4、c1と同じタイミングで出力されるc3と、c2を加算する処理(a1+a2に相当する)を行う。以降の演算処理は、図13と同様であるので省略する。
このように、従来3つの遅延エレメントで構成された演算処理を、1つの多出力遅延エレメントで構成することが可能となる。この結果、出力信号ごとに用意されていた遅延回路の数を削減させることができる。
遅延エレメントを用いた演算タイミングの調整は、演算に用いるデータが揃うまでに所定の時間を要する連続入力データの処理などでは必須であるので、そのようなケースで特に効果が得られる。また、上記の例では、3入力であったが、入力が多入力になるほど、遅延エレメントの削減効果が増大する。
次に、多出力遅延エレメントを構成するデータ遅延部、バリッド遅延部、及び遅延制御部の回路構成例を説明する。
図6は、本発明の実施の形態の多出力遅延エレメントのデータ遅延部の回路構成例を示した回路ブロック図である。図は、1入力8出力の場合の回路構成例を示している。
図6は、本発明の実施の形態の多出力遅延エレメントのデータ遅延部の回路構成例を示した回路ブロック図である。図は、1入力8出力の場合の回路構成例を示している。
本発明の実施の形態のデータ遅延部110は、遅延素子として、フリップフロップ(以下、FFとする)が8段、入力データの伝達経路に直列に配置される。
各FFは、クロック信号に応じて、入力データを順次1サイクル遅延して出力する。また、各FFのイネーブル端子には、動作停止信号1が接続されており、動作停止信号1によってFFの動作を停止させることができる。
各FFは、クロック信号に応じて、入力データを順次1サイクル遅延して出力する。また、各FFのイネーブル端子には、動作停止信号1が接続されており、動作停止信号1によってFFの動作を停止させることができる。
これにより、各FFを通過するごとに、入力データは1サイクルから8サイクルまで、1サイクルずつ遅延される。これにより、FFに接続する8つの出力端子には、出力データとして、1サイクルから8サイクルまでの遅延量の入力データが出力される。また、動作停止信号1が入力されると、FFは動作を停止し、その状態を保持する。
図7は、本発明の実施の形態の多出力遅延エレメントのバリッド遅延部の回路構成例を示した回路ブロック図である。図は、1入力8出力の場合の回路構成例を示している。
本発明の実施の形態のバリッド遅延部120は、遅延素子であるFFが8段、入力バリッドの伝達経路に直列に配置される。
本発明の実施の形態のバリッド遅延部120は、遅延素子であるFFが8段、入力バリッドの伝達経路に直列に配置される。
各FFの入力端及び出力端は、ANDに接続される。入力側のANDにより、前段のFFの出力とクリア信号との論理積が入力される。また、出力側のANDにより、FFの出力とマスク信号との論理積がバリッド遅延部120の出力バリッドとして出力される。
ここで、後段のALUでは、バリッドが1のとき、入力データはバリッド付きの有効データであると判定し、0のときはバリッド無しの無効データであると判定することとする。各FFは、クロック信号に応じて、入力バリッドを順次1サイクル遅延して出力する。このときFFには、バリッドが保持される(これを内部バリッドと呼ぶ)が、この内部バリッドは、クリア信号がLowになると、リセットされ、0(バリッド無し)になる。出力側も、マスク信号がLowになると、FFの出力バリッドによらず、出力端子に出力される出力バリッドは、0(バリッド無し)になる。
これにより、マスク信号及びクリア信号がHighであれば、入力バリッドは、各FFを通過するごとに、1サイクルから8サイクルまで1サイクルずつ遅延される。このとき、FFに接続する8つの出力端子には、出力データとして、1サイクルから8サイクルまでの遅延量の入力バリッドが出力される。動作停止信号2が入力されると、FFは動作を停止し、その状態が保持される。また、マスク信号がLowになると、バリッド遅延部120から出力される出力バリッドは、すべて0(バリッド無し)になる。したがって、対応する入力データは、すべてバリッド無し入力データとなり、後段のALUで無効データとして取り扱われる。クリア信号がLowになると、内部バリッドがすべて0にリセットされ、これに応じて、バリッド遅延部120の出力バリッドもすべて0にリセットされる。
図8は、本発明の実施の形態の多出力遅延エレメントの遅延制御部の回路構成例を示した回路ブロック図である。
本発明の実施の形態の遅延制御部130は、動作設定信号保持回路131、内部バリッドクリア・マスク制御回路132、バリッドカウンタ133、及び遅延動作制御回路134を具備する。
本発明の実施の形態の遅延制御部130は、動作設定信号保持回路131、内部バリッドクリア・マスク制御回路132、バリッドカウンタ133、及び遅延動作制御回路134を具備する。
動作設定信号保持回路131は、動作設定信号を受け取ると、その動作設定信号を保持するとともに、動作設定信号に応じて内部バリッドクリア・マスク制御回路132、バリッドカウンタ133、及び遅延動作制御回路134を制御する。
内部バリッドクリア・マスク制御回路132は、制御信号及び動作設定信号保持回路131の動作設定信号に応じてクリア信号とマスク信号を設定し、バリッド遅延部120の出力バリッドを操作する。たとえば、制御信号により、動作が停止されたとき、動作設定信号に応じて要求があれば、クリア信号を操作して、バリッド遅延部120のFFに保持される内部バリッドをクリアし、バリッド遅延部120の状態を初期化する。また、後段のALUに演算処理を実行させたくない場合は、マスク信号を操作して、バリッド遅延部120の出力バリッドを強制的にリセット(バリッド無し)とする。また、マスク信号やクリア信号の操作タイミングは、バリッド付き入力データが入力した個数に応じて決めることができる。たとえば、バリッドカウンタ133から出力されるバリッド出力指示信号がオンとなった場合にのみ、バリッド遅延部120のFFの出力を出力させるようにマスク信号を操作するというような用い方もできる。
バリッドカウンタ133は、有効なバリッド付き入力データが入力された回数を計数する計数手段である。そして、計数されたカウント値と、予め設定された指定個数とを比較し、一致する場合には、バリッド出力指示信号を内部バリッドクリア・マスク制御回路132へ出力する。また、バリッドカウンタ停止信号が入力されると、動作を停止する。このように、バリッド付き入力データの入力個数に応じて処理を変更することができる。
遅延動作制御回路134は、制御信号及び動作設定信号に応じて、バリッドカウンタ停止信号、動作停止信号1、及び動作停止信号2を出力し、バリッドカウンタ133、データ遅延部110、及びバリッド遅延部120の動作を制御する。
以下、本発明の実施の形態の多出力遅延エレメントの動作を、いくつかの適用例により説明する。図9は、適用例に用いられる本発明の実施の形態の多出力遅延エレメントを示した図である。
以下の適用例で使用する多出力遅延エレメント100aは、コンフィギュレーション・データに基づいて遅延処理を行う。入力端子(a0)から連続入力データdt0,dt1,dt2,dt3,dt4,dt5,・・・を入力し、入力データを1サイクルずつ遅延させる4段のデータ遅延素子で構成される。それぞれのデータ遅延素子の出力データは、出力端子c1,c2,c3,c4から出力される。
(1)適用例1
適用例1は、連続入力データを3つずつの組で演算処理を行う場合である。
ここでは、入力端子(a0)から入力される3組の入力データが揃った時点で演算を行う。すなわち、dt0,dt1,dt2が揃った時点で「dt0+dt1+dt2」の演算を行い、続いて、dt3,dt4,dt5が揃った時点で「dt3+dt4+dt5」の演算を行うケースである。本発明の実施の形態では、バリッドカウンタ133において入力したバリッド付き入力データの個数をカウントし、3入力データが揃ったかどうかを検出する。そして、検出結果に応じてマスク信号を操作し、3入力データが揃ったときのみ演算が行われるようにする。このため、バリッドカウンタ133は、動作設定信号に基づき、バリッド付き入力データが指定個数(ここでは3)に到達した場合にバリッド出力信号をオンし、カウンタ値をリセットするように動作が指示されている。また、内部バリッドクリア・マスク制御回路132は、動作設定信号に基づき、バリッド出力指示信号がオンになってから1サイクルの間、マスク信号をLow、クリア信号をHighにして、出力データに対応するバリッドの出力を許可するように動作が指示されている。
適用例1は、連続入力データを3つずつの組で演算処理を行う場合である。
ここでは、入力端子(a0)から入力される3組の入力データが揃った時点で演算を行う。すなわち、dt0,dt1,dt2が揃った時点で「dt0+dt1+dt2」の演算を行い、続いて、dt3,dt4,dt5が揃った時点で「dt3+dt4+dt5」の演算を行うケースである。本発明の実施の形態では、バリッドカウンタ133において入力したバリッド付き入力データの個数をカウントし、3入力データが揃ったかどうかを検出する。そして、検出結果に応じてマスク信号を操作し、3入力データが揃ったときのみ演算が行われるようにする。このため、バリッドカウンタ133は、動作設定信号に基づき、バリッド付き入力データが指定個数(ここでは3)に到達した場合にバリッド出力信号をオンし、カウンタ値をリセットするように動作が指示されている。また、内部バリッドクリア・マスク制御回路132は、動作設定信号に基づき、バリッド出力指示信号がオンになってから1サイクルの間、マスク信号をLow、クリア信号をHighにして、出力データに対応するバリッドの出力を許可するように動作が指示されている。
このような設定の多出力遅延エレメントの動作をタイムチャートを用いて説明する。
図10は、本発明の実施の形態の多出力遅延エレメントを適用例1に用いた場合の動作を示したタイムチャートである。なお、バリッド無しの無効データは、()で表す。
図10は、本発明の実施の形態の多出力遅延エレメントを適用例1に用いた場合の動作を示したタイムチャートである。なお、バリッド無しの無効データは、()で表す。
多出力遅延エレメントの入力端子a0に入力される連続入力データは、dt0,dt1,dt2,dt3,dt4,dt5,・・・は、出力端子c1,c2,c3から1サイクルずつ遅延されて出力される。
バリッドカウンタ133は、バリッド付き入力データをカウントする。dt0,dt1が入力されている間は、カウント値が指定個数(3)に到達しないので、バリッド出力指示信号はオフを出力する。このとき、内部バリッドクリア・マスク制御回路132は、バリッド出力指示信号がオフであるので、マスク信号をHigh、クリア信号をLowで出力する。したがって、出力端子c1,c2から出力されるdt1,dt0は、バリッド無しとなり、後段のALUでは演算処理が行われない。
d2が入力され、バリッドカウンタ133のカウント値が指定個数(ここでは、3)に到達した場合は、バリッド出力指示信号がオンされる。また、カウンタはリセットする。内部バリッドクリア・マスク制御回路132は、バリッド出力指示信号がオンになったことが検出されてから1サイクルの間マスク信号をLowにし、クリア信号をHighにする。したがって、出力端子c1からdt2、出力端子c2からdt1、及び出力端子c3からdt0が出力されている間は、それぞれのデータのバリッドが有効になる。後段のALUは、バリッド付きのdt0,dt1,dt2が入力されたので、演算処理を行う。
次のdt4が入力されるときには、バリッドカウンタ133のカウント値はリセットされており、マスク信号はHigh、クリア信号はLowになる。このため、出力端子c1,c2,c3の出力データは、バリッド無しとなり、後段のALUでは演算処理が行われない。
dt5が入力されると、再びバリッドカウンタ133のカウント値が指定個数(3)となるので、バリッド出力が有効となり、演算が行われる。
このように、出力データに添付されるバリッドを操作して、演算対象のデータが揃ったときのみに出力データのバリッドを有効とすることができる。これにより、後段で不必要な演算を停止させることができ、不必要な演算結果を破棄する必要もなくなる。
このように、出力データに添付されるバリッドを操作して、演算対象のデータが揃ったときのみに出力データのバリッドを有効とすることができる。これにより、後段で不必要な演算を停止させることができ、不必要な演算結果を破棄する必要もなくなる。
(2)適用例2
適用例2は、連続入力データが揃ったら、連続入力データで順次演算処理を行う場合である。
適用例2は、連続入力データが揃ったら、連続入力データで順次演算処理を行う場合である。
ここでは、入力端子(a0)から4データが入力されたら順次演算処理を行うとする。すなわち、dt0,dt1,dt2,dt3が揃った時点で「dt0+dt1+dt2+dt3」の演算を行い、続いて、dt4が入力されれば、「dt1+dt2+dt3+dt4」の演算を行うケースである。本発明の実施の形態では、バリッドカウンタ133において入力したバリッド付き入力データの個数をカウントし、4入力データが揃ったかどうかを検出する。そして、検出結果に応じてマスク信号を操作し、4入力データが揃った時点以降の演算を許可する。このため、バリッドカウンタ133は、動作設定信号に基づき、バリッド付き入力データが指定個数(ここでは4)に到達した以降は、バリッド出力信号をオンするように動作が指示されている。また、内部バリッドクリア・マスク制御回路132は、動作設定信号に基づき、バリッド出力指示信号がオンの間、マスク信号をLow、クリア信号をHighにして、出力データに対応するバリッドの出力を許可するように動作が指示されている。なお、内部バリッドクリア・マスク制御回路132側で、マスク信号とクリア信号の状態を保持するようにしてもよい。
このような設定の多出力遅延エレメントの動作をタイムチャートを用いて説明する。
図11は、本発明の実施の形態の多出力遅延エレメントを適用例2に用いた場合の動作を示したタイムチャートである。
図11は、本発明の実施の形態の多出力遅延エレメントを適用例2に用いた場合の動作を示したタイムチャートである。
多出力遅延エレメントの入力端子a0に入力される連続入力データdt0,dt1,dt2,dt3,dt4,dt5,・・・は、出力端子c1,c2,c3,c4から1サイクルずつ遅延されて出力される。
バリッドカウンタ133は、バリッド付き入力データをカウントする。dt0,dt1,dt2が入力されている間は、カウント値が指定個数(4)に到達しないので、バリッド出力指示信号はオフを出力する。このとき、内部バリッドクリア・マスク制御回路132は、バリッド出力指示信号がオフであるので、マスク信号をHigh、クリア信号をLowで出力する。したがって、出力端子c1,c2,c3から出力されるdt2,dt1,dt0は、バリッド無しとなり、後段のALUでは演算処理が行われない。
dt4が入力され、バリッドカウンタ133のカウント値が指定個数(ここでは、4)に到達した場合は、バリッド出力指示信号がオンされる。内部バリッドクリア・マスク制御回路132は、バリッド出力指示信号がオンであるので、マスク信号をLowにし、クリア信号をHighにする。したがって、出力端子c1からdt3、出力端子c2からdt2、出力端子c3からdt3、及び出力端子c4からdt0が出力されるときに、それぞれのデータのバリッドが有効になり、後段のALUで演算処理を行う。
次のサイクルでもバリッドカウンタ133は、バリッド出力指示信号をオンしているので、内部バリッドクリア・マスク制御回路132もマスク信号及びクリア信号の状態を保持する。したがって、出力端子c1からdt4、出力端子c2からdt3、出力端子c3からdt2、及び出力端子c4からdt1が、バリッドが添付されて出力されるので、後段のALUで演算処理を行う。
ここで、dt4の後の入力データが無効であったとする。たとえば、バリッドカウンタ133は、バリッド無し入力データを検出すると、カウンタをリセットし、バリッド出力指示信号をオフするとする。これにより、内部バリッドクリア・マスク制御回路132は、バリッド出力指示信号のオフに基づき、マスク信号をHigh、クリア信号をLowで出力する。したがって、出力データはバリッド無しとなり、後段のALUでは演算処理が行われない。バリッドカウンタ133は、バリッド付き入力データが4連続入力されるまで、この状態を継続する。
このように、出力データに添付されるバリッドを操作して、演算対象のデータが揃ったとき以降に出力データのバリッドを有効とすることができる。これにより、後段で不必要な演算を停止させることができ、不必要な演算結果を破棄する必要もなくなる。また、バリッド無し入力データが入力された場合は、出力データが無効となり、次にバリッド付きデータが揃うまで後段のALUの演算を停止させることができる。
(3)適用例3
適用例3は、入力データにバリッド付き入力データ(有効データ)と、バリッド無し入力データ(無効データ)とが混在する場合である。
適用例3は、入力データにバリッド付き入力データ(有効データ)と、バリッド無し入力データ(無効データ)とが混在する場合である。
ここでは、入力端子(a0)から4データが入力されたら順次演算処理を行うとするが、入力データは、バリッド付き入力データとバリッド無し入力データが混在するとする。適用例3では、バリッド無し入力データが入力された場合には、演算を停止させるのではなく、バリッド付き入力データが4つ揃った時点で演算を行うようにする。
本発明の実施の形態では、バリッドカウンタ133において入力したバリッド付き入力データの個数をカウントし、4入力データが揃ったかどうかを検出する。そして、検出結果に応じてマスク信号を操作し、4入力データが揃った時点で演算を許可する。そして、バリッド無し入力データが入力された場合には、遅延動作制御回路134は、データ遅延部110の動作停止信号1及びバリッド遅延部120の動作停止信号2によって、遅延処理を停止させる。
図12は、本発明の実施の形態の多出力遅延エレメントを適用例3に用いた場合の動作を示したタイムチャートである。
多出力遅延エレメントの入力端子a0に入力される連続入力データは、dt0,dt1,dt2,dt3,dt4,dt5,・・・は、出力端子c1,c2,c3,c4から1サイクルずつ遅延されて出力される。なお、バリッド無しの無効データは、×で表現する。
多出力遅延エレメントの入力端子a0に入力される連続入力データは、dt0,dt1,dt2,dt3,dt4,dt5,・・・は、出力端子c1,c2,c3,c4から1サイクルずつ遅延されて出力される。なお、バリッド無しの無効データは、×で表現する。
ここで、入力端子a0には、dt0,dt1とバリッド付き入力データが入力された後、無効データが入力される。続いて、dt2、無効データ、dt3の順に入力される。
バリッドカウンタ133は、バリッド付き入力データの個数をカウントし、指定個数(4)となった場合に、バリッド出力指示信号をオンする。したがって、dt3が入力されるまで、バリッド出力指示信号はオフされ、マスク信号はLow、クリア信号はHighが出力される。この間、出力端子c1,c2,c3,c4の出力データは、バリッド無しとなり、後段のALUでは演算処理が行われない。
バリッドカウンタ133は、バリッド付き入力データの個数をカウントし、指定個数(4)となった場合に、バリッド出力指示信号をオンする。したがって、dt3が入力されるまで、バリッド出力指示信号はオフされ、マスク信号はLow、クリア信号はHighが出力される。この間、出力端子c1,c2,c3,c4の出力データは、バリッド無しとなり、後段のALUでは演算処理が行われない。
遅延動作制御回路134は、入力データにバリッド無しの無効データが検出されると、動作停止信号1と動作停止信号2(以下、まとめて停止信号と表記する)をLowとし、データ遅延部110とバリッド遅延部120を停止させる。データ遅延部110とバリッド遅延部120は、停止信号がLowで停止し、Highで動作することとする。停止信号がLowになると、その間データ遅延部110は停止し、出力データも保持される。停止信号がHighになると、データ遅延部110は動作を再開し、入力データを1サイクル遅延する。したがって、データ遅延部110では、バリッド付き入力データが入力されたときのみ、遅延動作が実行され、4つの有効データが揃った時点で、後段のALUに出力される。なお、バリッド遅延部120も同様に動作する。
このように、有効データと無効データが混在して入力される場合において、有効データだけを選択して出力タイミングを調整し、後段のALUに出力することができる。
以上、本発明の実施の形態の多出力遅延エレメントによれば、さまざまな演算処理に適用可能な自由度を備えており、遅延エレメント及びバリッド処理に関する論理演算を行う論理演算エレメントなどを削減することができるばかりでなく、利用者が任意のアプリケーションを容易に構築することが可能となる。
以上、本発明の実施の形態の多出力遅延エレメントによれば、さまざまな演算処理に適用可能な自由度を備えており、遅延エレメント及びバリッド処理に関する論理演算を行う論理演算エレメントなどを削減することができるばかりでなく、利用者が任意のアプリケーションを容易に構築することが可能となる。
なお、上記の適用例は、実施の形態の一例であり、他に様々な適用例が想定できる。
1 遅延回路
1a データ遅延部
1b 有効情報(バリッド)遅延部
1c 遅延制御部
10 リコンフィギュラブル・プロセッサ
11 コンフィギュレーションメモリ
12a,12b,・・・,12n PE
13 ネットワーク
100 多出力遅延エレメント
110,112 データ遅延部
111−1,111−2,・・・,111−n データ遅延素子
113−1,113−2 出力専用レジスタ
120 バリッド遅延部
130 遅延制御部
1a データ遅延部
1b 有効情報(バリッド)遅延部
1c 遅延制御部
10 リコンフィギュラブル・プロセッサ
11 コンフィギュレーションメモリ
12a,12b,・・・,12n PE
13 ネットワーク
100 多出力遅延エレメント
110,112 データ遅延部
111−1,111−2,・・・,111−n データ遅延素子
113−1,113−2 出力専用レジスタ
120 バリッド遅延部
130 遅延制御部
Claims (10)
- 予め設定された構成情報に基づいて、入力信号を遅延させて出力する遅延回路において、
入力データを受け取ると、それぞれに設定される所定の遅延量に基づいて前記入力データの出力を遅延させる複数のデータ遅延素子を有するデータ遅延部と、
前記入力データが有効である場合に前記入力データに添付されて入力される有効情報を受け取ると、対応する前記入力データに応じて前記有効情報の出力を遅延させる複数の有効情報遅延素子を有する有効情報遅延部と、
を有することを特徴とする遅延回路。 - 前記データ遅延部は、前記データ遅延素子を前記入力データの伝達経路に並べたデータ遅延素子列が形成され、前記データ遅延素子列の並び順に従って前記入力データを順次転送し、
前記有効情報遅延部は、前記有効情報遅延素子を前記有効情報の伝達経路に並べた有効情報遅延素子列が形成され、前記有効情報遅延素子列の並び順に従って前記有効情報を順次転送することを特徴とする請求項1記載の遅延回路。 - 前記データ遅延部は、前記データ遅延素子と外部出力端子との間に出力専用レジスタを有し、
前記データ遅延素子の出力データは、前記出力専用レジスタを介して外部へ出力される
ことを特徴とする請求項1又は2記載の遅延回路。 - 前記遅延回路は、さらに、前記構成情報に基づく動作指定を含む制御信号を受け取ると、前記制御信号に基づき、前記データ遅延部及び前記有効情報遅延部の動作を制御する遅延制御部を有することを特徴とする請求項1乃至3のいずれか一項に記載の遅延回路。
- 前記遅延制御部は、
前記制御信号として動作の停止指示を受け取ると、前記制御信号に応じて前記データ遅延部及び前記有効情報遅延部の動作の実行と停止を制御することを特徴とする請求項4記載の遅延回路。 - 前記遅延制御部は、前記構成情報に基づく前記動作指定に応じて、前記データ遅延部に入力される前記入力データに添付された前記有効情報の状態を検出し、前記入力データが有効である場合にのみ、前記データ遅延部を動作させることを特徴とする請求項4又は5記載の遅延回路。
- 前記遅延制御部は、前記構成情報に基づく前記動作指定に応じて、前記有効情報が添付された前記入力データの個数を計数する計数手段を有し、
前記計数手段の計数値に応じて前記有効情報遅延部から出力される出力有効情報の状態を制御することを特徴とする請求項4乃至6のいずれか一項に記載の遅延回路。 - 前記遅延制御部は、前記動作指定に応じて、前記計数手段による前記計数値が前記動作指定に基づく指定個数に達するまでは、前記有効情報遅延部に対し、前記有効情報遅延部が出力する前記出力有効情報を無効状態とするように指示することを特徴とする請求項7記載の遅延回路。
- 前記遅延制御部は、前記動作指定に応じて、前記計数手段による前記計数値が前記動作指定に基づく指定個数に達するまでは、前記有効情報遅延部に対して前記有効情報遅延部が出力する前記出力有効情報を無効状態とするように指示し、前記計数値が前記指定個数になったときは、前記有効情報遅延部に対して前記有効情報遅延部が出力する前記出力有効情報を有効状態とするように指示し、前記計数手段を初期化することを特徴とする請求項7又は8記載の遅延回路。
- 予め設定された構成情報に基づいて、入力信号の遅延や所定の演算処理を行うモジュールの接続構成を切り替えながら所定の演算処理を行うプロセッサにおいて、
入力データを受け取ると、それぞれに設定される所定の遅延量に基づいて前記入力データの出力を遅延させる複数のデータ遅延素子を有するデータ遅延部と、前記入力データが有効である場合に前記入力データに添付されて入力される有効情報を受け取ると、対応する前記入力データに応じて前記有効情報の出力を遅延させる複数の有効情報遅延素子を有する有効情報遅延部と、を有する遅延モジュールと、
前記遅延モジュールから出力された出力データ及び前記有効情報を入力し、前記構成情報に基づき所定の演算処理を行う演算処理モジュールとを有することを特徴とするプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269567A JP2008092190A (ja) | 2006-09-29 | 2006-09-29 | 遅延回路及びプロセッサ |
US11/892,210 US20080082787A1 (en) | 2006-09-29 | 2007-08-21 | Delay circuit and processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269567A JP2008092190A (ja) | 2006-09-29 | 2006-09-29 | 遅延回路及びプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008092190A true JP2008092190A (ja) | 2008-04-17 |
Family
ID=39262383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006269567A Withdrawn JP2008092190A (ja) | 2006-09-29 | 2006-09-29 | 遅延回路及びプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080082787A1 (ja) |
JP (1) | JP2008092190A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287122A (ja) * | 2009-06-12 | 2010-12-24 | Fujitsu Semiconductor Ltd | 多重化用補助peおよび半導体集積回路 |
JP2013142999A (ja) * | 2012-01-11 | 2013-07-22 | Fuji Xerox Co Ltd | 画像処理装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7433931B2 (ja) * | 2020-01-27 | 2024-02-20 | キヤノン株式会社 | 情報処理装置及びその制御方法及びプログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4258418A (en) * | 1978-12-28 | 1981-03-24 | International Business Machines Corporation | Variable capacity data buffer system |
US5602878A (en) * | 1994-09-23 | 1997-02-11 | Intel Corporation | Method of delivering stable data across an asynchronous interface |
JP3560780B2 (ja) * | 1997-07-29 | 2004-09-02 | 富士通株式会社 | 可変遅延回路及び半導体集積回路装置 |
US6353640B1 (en) * | 1997-11-03 | 2002-03-05 | Harris Corporation | Reconfigurable radio frequency communication system |
CA2360712A1 (en) * | 2001-10-31 | 2003-04-30 | Sicon Video Corporation | Method and apparatus for the data-driven synchronous parallel processing of digital data |
WO2004100000A1 (en) * | 2003-05-09 | 2004-11-18 | Koninklijke Philips Electronics N.V. | Method for data signal transfer across different clock-domains |
US6934198B1 (en) * | 2004-05-04 | 2005-08-23 | Xilinx, Inc. | First-in, first-out buffer system in an integrated circuit |
EP1708080A1 (en) * | 2005-03-31 | 2006-10-04 | STMicroelectronics Pvt. Ltd | Configurable length first-in first-out memory |
US7515664B1 (en) * | 2005-04-21 | 2009-04-07 | Xilinx, Inc. | Method of recovering data in asynchronous applications |
US7818699B1 (en) * | 2007-02-14 | 2010-10-19 | Xilinx, Inc. | Dynamic core pipeline |
US8207976B2 (en) * | 2007-03-15 | 2012-06-26 | Qimonda Ag | Circuit |
-
2006
- 2006-09-29 JP JP2006269567A patent/JP2008092190A/ja not_active Withdrawn
-
2007
- 2007-08-21 US US11/892,210 patent/US20080082787A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010287122A (ja) * | 2009-06-12 | 2010-12-24 | Fujitsu Semiconductor Ltd | 多重化用補助peおよび半導体集積回路 |
US9317475B2 (en) | 2009-06-12 | 2016-04-19 | Cypress Semiconductor Corporation | Multiplexing auxiliary processing element and semiconductor integrated circuit |
JP2013142999A (ja) * | 2012-01-11 | 2013-07-22 | Fuji Xerox Co Ltd | 画像処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080082787A1 (en) | 2008-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4146519B2 (ja) | プログラミング可能なコンポーネントにおけるコンフィグレーション可能な各エレメントの自己同期を確立する方法 | |
KR102497178B1 (ko) | 재진입 큐를 사용하는 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 루프 실행 제어 | |
US11573796B2 (en) | Conditional branching control for a multi-threaded, self-scheduling reconfigurable computing fabric | |
KR102545047B1 (ko) | 멀티 스레드, 자체 스케줄링 재구성 가능한 컴퓨팅 패브릭에 대한 중지 신호를 사용한 역압 제어 | |
US7036036B2 (en) | Method of self-synchronization of configurable elements of a programmable module | |
US20190303346A1 (en) | Loop Thread Order Execution Control of a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
US20190303147A1 (en) | Execution Control of a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
WO2010009142A1 (en) | Asynchronous digital circuits including arbitration and routing primitives for asynchronous and mixed-timing networks | |
KR20110095248A (ko) | 신호 송신 방법 및 전송 유닛 | |
US20080320276A1 (en) | Digital Computing Device with Parallel Processing | |
JP2008092190A (ja) | 遅延回路及びプロセッサ | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
US8761188B1 (en) | Multi-threaded software-programmable framework for high-performance scalable and modular datapath designs | |
CN114996204B (zh) | 一种片上系统可配置装置 | |
US20160344373A1 (en) | Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters | |
KR100947446B1 (ko) | Vliw 프로세서 | |
US7752420B2 (en) | Configuration layout number controlled adjustable delaying of connection path changes among processors in array to reduce transition glitches | |
US20110202786A1 (en) | Stalling synchronisation circuits in response to a late data signal | |
JP2006085574A (ja) | データ処理システムおよびその制御方法 | |
US8150949B2 (en) | Computing apparatus | |
US8060729B1 (en) | Software based data flows addressing hardware block based processing requirements | |
US9081901B2 (en) | Means of control for reconfigurable computers | |
US8677103B1 (en) | Asynchronous pipelined data path with data transition | |
US20030101363A1 (en) | Method and system for minimizing power consumption in embedded systems with clock enable control | |
US20040139436A1 (en) | Device for controlling processing of data elements of a data stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080729 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090623 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110520 |