JP4188233B2 - 集積回路装置 - Google Patents
集積回路装置 Download PDFInfo
- Publication number
- JP4188233B2 JP4188233B2 JP2003512850A JP2003512850A JP4188233B2 JP 4188233 B2 JP4188233 B2 JP 4188233B2 JP 2003512850 A JP2003512850 A JP 2003512850A JP 2003512850 A JP2003512850 A JP 2003512850A JP 4188233 B2 JP4188233 B2 JP 4188233B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- output
- address
- processing
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
Description
本発明は、データフローを再構成可能な集積回路装置に関するものである。
背景技術
RAM、ROMあるいは磁気ディスクなどのメモリに格納されたデータあるいは命令(以降においては、特に命令とデータを区別する必要がないときはデータと称する)をCPUなどで処理する場合、キャッシュあるいはキャッシュメモリと呼ばれる比較的小容量ではあるが高速なメモリを用い、データの時間的局所性あるいは空間的局所性を利用してデータへのアクセス速度を向上するようにしている。したがって、プロセッサあるいはプロセッサコアを搭載した、VLSI、システムLSIあるいはシステムASICなどと称される集積回路装置においては、キャッシュメモリとそれを制御するMMUなどの回路を備えたキャッシュシステムが搭載されている。
キャッシュメモリを利用する場合は、MMU(Memory Management Unit)およびTLB(Translation Look−aside Buffer)を用いて、CPUコアから出力される仮想あるいは論理アドレスに対応したデータがキャッシュメモリにあれば、CPUコアに対してはキャッシュメモリのデータが入出力される。キャッシュメモリにデータがない場合は、MMUおよびTLBによって仮想アドレスが物理アドレスに変換されて外部のメモリに対して入出力が発生し、キャッシュメモリのデータも更新される。したがって、MMUなどを備えたキャッシュ制御機構により、CPUコアで動作するソフトウェアに対しては、キャッシュメモリは透過的な存在となるように構成されている。このため、ソフトウェアはハードウェアに依存しない仮想アドレスに基づき動作するように開発すれば良く、開発および設計にかかる時間およびコストを低減することができる。また、同一のソフトウェアを、異なるハードウェアでも稼動させることができ、ソフトウェア資産を有効に利用できる。
CPUコアから出力された仮想アドレスのデータがキャッシュメモリに存在しない、すなわち、キャッシュメモリにヒットしないときは外部メモリに対して入出力処理が発生する。したがって、キャッシュメモリのヒット率が少ない場合は、キャッシュメモリは単にオーバヘッドになるだけであり、プログラムの実行時間に悪影響を及ぼす。このため、ヒット率を改善するために、命令キャッシュとデータキャッシュを分離したり、キャッシュを多階層化したり、機械的にあるいはソフトウェア的にプリフェッチするなどの技術が検討されている。
しかしながら、命令キャッシュとデータキャッシュを分離する場合は、1つのブロックに命令とデータが同時に存在すると、その取り扱いが難しくなる。たとえば、命令を書き換える処理があるとソフトウェアの処理に支障をきたす可能性がある。さらに、命令とデータへのアクセスが均等でないソフトウェアでは、単にキャッシュを分離しても効率は向上しない。たとえば、データへのアクセスが離散的であれば、データキャッシュの利用効率が低くなり、オーバヘッドになってしまう可能性もある。
多階層キャッシュは、キャッシュと外部メモリとのアクセス時間や記憶容量の差が大きい場合は有効である。しかしながら、多階層化することによりメモリにアクセスする回数は必然的に増加するので、ソフトウェアの構成や、処理するデータの入出力メディアなどの条件によってはオーバヘッドになる可能性は常にある。
プリフェッチした場合でも、分岐などのときのペナルティーを解消することはできない。数値計算プログラムにおいて配列要素の参照が多く、アクセスする要素が予め予想できるソフトウェアであると、プリフェッチ命令を用いてキャッシュのペナルティーは減少できるが、プリフェッチ命令を実行するためにCPUの時間を費やすことになり、効果的に利用できるソフトウェアは限定される。
上述したように、いずれの技術も、CPUで実行するソフトウェアと、データが格納されているメディアなどの条件がキャッシュメモリの方式と合致する場合は、キャッシュメモリのヒット率を向上することは可能である。しかしながら、キャッシュメモリは外部メモリとの間に中間的に配置されるハードウェアであるために、実行されるソフトウェアの処理内容や、そのソフトウェアの処理対象となるデータが格納されたハードウェアの環境などが異なると、予定しているキャッシュ効率が得られなかったり、逆にオーバヘッドになり、プロセッサの実行時間を低下させる要因となる。特定のアプリケーションに特化したプロセッサであれば最適なキャッシュメモリシステムを採用できるかもしれない。しかしながら、ある程度の汎用性を目指したプロセッサであると、キャッシュメモリを活かすためには、それほど効果的ではないとしても、オーバヘッドになることの少ないキャッシュメモリシステムを導入することになる。したがって、キャッシュメモリシステムがあってもそれほど性能が向上しないということになる。
そこで、本発明においては、プロセッサで実行されるソフトウェアの処理内容やハードウェア環境に対応して、キャッシュとして最も効率良く利用することができるメモリを有する集積回路装置を提供することを目的としている。また、メモリを、キャッシュとして最も効率良く利用することができる制御機能を備えた集積回路装置を提供することを目的としている。そして、様々なソフトウェアをさらに効率良く実行することができる集積回路装置を提供することを目的としている。
発明の開示
近年、データパスの構成またはデータフローの少なくとも1部を変更可能な処理ユニットが登場している。FPGA(Field Programmable Gate Array)は、単一な構成で論理を変更可能な論理エレメントまたは論理ブロックをアレイ状に敷き詰めてその間の結線を自由に変更し、データパスの構造を変更することができる集積回路装置である。また、命令セットにより種々の処理を行う中規模な単一構成の基本機能ユニットを用いてデータパスの構造を変更可能とした集積回路装置も検討されている。さらに、本願の出願人は、それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の専用処理要素と、これらの専用処理要素を接続する配線群とを備えた処理ユニットを開発している。そこで、これらのデータフローを変更または再構成可能な処理ユニットの一部によりキャッシュメモリを制御する回路を構成する。
すなわち、本発明の集積回路装置は、第2のメモリとの間でデータを入力および/または出力可能な第1のメモリと、少なくとも1つのデータフローが形成され、そのデータフローの少なくとも1部を変更可能な処理ユニットとを有し、この処理ユニットは、第1のメモリとの間で入力および/または出力されるデータを処理するデータ処理区画と、第1のメモリとデータ処理区画との間で入力および/または出力されるデータの第1のアドレスを出力する第1のアドレス出力区画と、第2のメモリと第1のメモリとの間で入力および/または出力されるデータの第2のアドレスを出力する第2のアドレス出力区画とを備えている。データフローを変更可能な処理ユニットの一部により第1および第2のアドレス出力区画を構成することにより、データ処理区画のハードウェア構成あるいはデータ処理区画で実行するソフトウェアにより、第1のアドレス出力区画または第2のアドレス出力区画のデータフローを変更したり、それぞれの区画の出力を制御することが可能となる。したがって、この集積回路装置で実行する処理に最も適したキャッシュメモリシステムをこの集積回路装置に構成できる。あるいは、集積回路装置で実行する処理に最も適したキャッシュメモリの制御を行うように、キャッシュメモリの制御回路を集積回路装置に構成することができる。
本発明の集積回路装置では、キャッシュメモリとなる第1のメモリを、第2のメモリに対する第2のアドレス、すなわち、データの第2のメモリにおける物理アドレス、または物理アドレスに変換可能な論理アドレスあるいは仮想アドレスにより受動的に制御することも可能である。この制御により、第2のメモリおよび/またはデータ処理区画に対して第1のメモリが透過的に存在するように構成することも可能である。それに加えて、データ処理区画および/または第1のアドレス出力区画からのデータあるいは信号により、さらには、データ処理区画および第1のアドレス出力区画のいずれからも独立して、第2のアドレス出力区画が能動的にデータの入出力を制御することが可能である。また、データ処理区画および第1のアドレス出力区画と並列に、第1および第2のメモリ間におけるデータの入出力動作を制御することも可能である。したがって、第2のアドレス出力区画により、データ処理区画および第1のアドレス出力区画のデータのアクセス先を決定するような構成も可能となり、従来のCPUに対し透過的なキャッシュではなく、逆に処理ユニットにおける処理を制御するようなキャッシュを構成することが可能となる。
すなわち、従来のキャッシュのアーキテクチャは、CPUコアあるいはDSPコアなどの画一的なハードウェア構成の処理機構で動作するソフトウェアに対して、平均的に実行速度を向上できるように、ユニホームで透過的なインターフェイスを提供するように構成されている。これに対し、本発明の集積回路装置においては、FPGAなどのデータパスの構成そのものを変更可能なアーキテクチャにより、コアとなるデータ処理区画が提供されるので、それにあわせて、キャッシュの構成もデータ処理区画の構成、およびそこで実行されるソフトウェアに最適な構成に動的に変更可能にするものである。したがって、ユニホームで透過的である必要はなく、コアあるいは実行部であるデータ処理区画に対して、従来のキャッシュとまったく異なったインターフェイスあるいはサービスを提供することが可能となる。
このため、本発明の集積回路装置では、処理ユニットで実行されるソフトウェアの処理内容やハードウェア環境に応じて、第1のメモリをキャッシュとして最も効率良く利用することができる。そして、種々のソフトウェアを実行する際に、高いヒット率が得られるようにキャッシュシステムを構成でき、キャッシュメモリの入出力がソフトウェアを実行する際のオーバヘッドとならない集積回路装置を提供することができる。
たとえば、データ処理区画で実行されるデータの第2のメモリにおけるアドレスが判明している場合は、第1のメモリのデータ残存量などによって第2のアドレス出力区画が独立してデータをプリフェッチすることが可能である。したがって、データ処理区画の処理時間を消費せずにキャッシュとなる第2のメモリにデータをハードウェア的に、あるいは第2のアドレス出力区画を制御するソフトウェアによりプリフェッチすることができる。たとえば、第1のアドレス出力区画からは第1のアドレスとして第1のメモリのアドレス、すなわち、第1のメモリの物理アドレス、あるいは物理アドレスに変換可能な仮想あるいは論理アドレスを出力し、第2のアドレス出力区画からは第2のアドレスとして第2のメモリのアドレス、すなわち、第1のメモリの物理アドレス、あるいは物理アドレスに変換可能な仮想あるいは論理アドレスを出力する。さらに、データ処理区画では、キャッシュメモリとなる第1のメモリのアドレスで処理が進むようにハードウェアあるいはソフトウェアを構成することができる。
さらに、第2のアドレス出力区画を、データ処理区画および/または第1のアドレス出力区画とは非同期に、すなわち独立して動作可能とすることが望ましく、これにより、データ処理区画とは独立して並列処理でプリフェッチすることが可能となる。第2のメモリに対する入力と出力を並列に独立して処理できるように、第1のメモリは非同期に、すなわち、独立に入出力可能な複数の格納区画、たとえば複数のメモリバンクを備えていることが望ましい。
また、第2のアドレス出力区画が独自で、あるいはデータ処理区画との組み合わせにより、第1のメモリのデータに基づいて第2のアドレスを出力するように構成することも可能であり、間接アドレッシングによるデータ処理を何らの制限もなく実行することができる。
キャッシュとして動作する第1のメモリは、データ処理区画に入力されるデータを格納する第1の入力メモリと、データ処理区画から出力されたデータを格納する第1の出力メモリとを備えていることが望ましい。これにより、データ処理区画に形成されるデータフローに対するデータの入力と出力とを独立して制御できる。第1のアドレス出力区画からは第1のメモリのアドレスが出力されるが、第1のメモリに第1のアドレスに対応するデータがなかったり、第1のアドレスに対応するデータを格納するスペースがないと、データ処理区画に形成されるデータフローの処理の障害となる。したがって、第1のメモリとデータ処理区画との間の入力および/または出力を管理する第1の調停ユニットを設けることが望ましい。
第1の調停ユニットには、第1のアドレスに対応するデータがない、または、第1のアドレスに対応するデータを格納するスペースがないなどのデータ処理区画との間の入力または出力の条件を満たさない場合は、ストップ信号をデータ処理区画に出力する機能を持たせることができる。そして、データ処理区画には、ストップ信号により、当該データ処理区画に形成された少なくとも1つのデータパスまたはデータフローの処理を停止する機能を持たせることにより、第1の調停ユニットによりデータパスまたはデータフローのオンオフを制御できる。したがって、データ処理区画に形成されたデータパスまたはデータフローを、処理対象となるデータが揃うのを待って稼動させるような制御を容易に実現できる。
第1のメモリが、第1の入力メモリと第1の出力メモリとを備えているのであれば、第1の調停ユニットとして、第1の入力メモリからデータ処理区画へのデータの転送を管理する第1の入力調停ユニットと、データ処理区画から第1の出力メモリへのデータの転送を管理する第1の出力調停ユニットとを設けることが望ましい。これにより、データ処理区画に形成されるデータフローの制御を入力側と出力側とから独立に行うことができる。
さらに、第1のメモリが、独立に入出力可能な複数の格納区画を備えている場合は、第1の調停ユニットに、複数の格納区画のそれぞれを独立に管理する機能を備えていることが可能である。データ処理区画に形成される複数のデータフローのそれぞれを、対応する格納区画の状態により第1の調停ユニットにより独立して制御できる。一方、第1の調停ユニットに、複数の格納区画を関連付けして管理する機能を設けることも可能である。これにより、データ処理区画に形成されたデータフローが、所定の格納区画に外部メモリから入力されたデータを優先して処理したり、データフローからの出力を所定の格納区画を介して外部メモリに対して優先的に出力したりする制御が容易に実現できる。
さらに、データ処理区画に複数のデータフローが構成可能であるときには、複数の第1のメモリを設け、処理ユニットには、各々の第1のメモリに対応する第1および第2のアドレス出力区画が形成されるようにすることが望ましい。これにより、データ処理区画および第1のアドレス出力区画を適切に構成することにより多階層キャッシュを構成することも可能となる。また、集積回路装置で実行するプログラムによっては、複数の第1のメモリを命令キャッシュとデータキャッシュとして使い分けたり、さらには、複数のデータ処理区画を設けたときにそれらで処理するデータをキャッシュするために複数の第1のメモリを使い分け、第2のアドレス出力区画によりそれぞれの第1のメモリにキャッシュされるデータを適切に制御することが可能となる。
複数の第2のアドレス出力区画を設ける場合は、第2のメモリと複数の第1のメモリとの間の入出力を管理する第2の調停ユニットを用意し、第2のアドレスは第2の調停ユニットに供給されるようにすることが望ましい。これにより、第2のメモリが外部メモリであるときに、その外部メモリに対して従来と同様に本発明の集積回路装置はアクセスできる。また、第2のメモリが同一チップ内に形成された集積回路装置においては、第2のメモリが第3のメモリとの間でデータを入力および/または出力可能として、第3のメモリと第2のメモリとの間で入力および/または出力されるデータの第3のアドレスを出力する第3のアドレス出力手段も設けてキャッシュメモリを多階層化することが可能である。すなわち、第3のメモリが外部メモリであれば、第1および第2のメモリによりキャッシュメモリが構成される。この第3のアドレス出力手段は、MMUなどの従来のキャッシュ制御機構であっても良く、第2のアドレス出力区画と同様に構成することも可能である。第4あるいはそれ以上の階層のメモリ(ROM、RAMに限らず、ディスクなどの様々なタイプの記録媒体を含む)を対象として制御する場合も同様である。
データフローを変更あるいは再構成可能な処理ユニットは、機能を変更可能な複数の単一種類の論理要素と、これらの論理要素を接続する配線群とを備えているもの、すなわち、上述したFPGAや、中規模な単一構成の基本機能ユニットを用いてデータパス構造またはデータフローを変更可能としたものであっても良い。それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の専用処理要素と、これらの専用処理要素を接続する配線群とを備えている処理ユニットを採用することが可能である。そして、このような再構成可能な処理ユニットであれば、アドレスを出力するのに適した内部データパスを備えた専用処理要素を予め組み込むことが可能であり、アドレスを発生する処理効率を高め、処理速度をさらに向上できる。また、余剰な回路要素の存在を低減できるので、データフローを変更するために選択する要素も低減でき、AC特性も向上でき、さらに、スペース効率も高くなる。
したがって、処理ユニットのデータフローの少なくとも1部の変更を指示する制御ユニットが、処理ユニットに対し、上述したデータ処理区画と、第1のアドレス出力区画と、第2のアドレス出力区画とを構成するように指示する工程を実行することにより、データフローをフレキシブルに、そして短時間にダイナミックに変更できる。そして、フレキシブルなキャッシュシステムを備えた、コンパクトで経済的な集積回路装置を提供できる。
処理ユニットのデータフローの変更を容易にするために、専用処理要素間の接続を変更可能とすると共に、専用処理要素の内部データパスの一部を選択する手段と、内部のデータパスの選択を記憶するコンフィグレイションメモリとを設けることが望ましい。制御ユニットは、コンフィグレイションメモリの内容を書き換えたり、処理ユニットのデータフローの少なくとも1部の変更を指示することによりデータフローを再構成できる。さらに、専用処理要素を備えた処理ユニットであれば、この制御ユニットにより、データ処理区画、第1のアドレス出力区画、または、第2のアドレス出力区画のデータフローの変更を非同期または独立して指示することが可能となる。これにより、第1のメモリに対してデータを入出力している間は、データ処理区画および/または第1のアドレス出力区画を構成する専用処理要素を、別の目的のデータフローを構成するために使用したり、逆に、データ処理区画で処理を実行している間は、第2のアドレス出力区画の専用処理要素を異なるメモリの制御に用いたり、あるいは異なる目的で利用したりすることが可能となり、処理ユニットのリソースをフレキシブルに効率良く活用できる。
さらに、制御ユニットに上記の処理を行わせるプログラムコードを記憶するコードメモリを搭載することにより、ワンチップのシステムLSIなどの集積回路装置を構成することが可能となる。したがって、様々な目的のソフトウェアに対し、キャッシュがオーバヘッドとならず、効率的に利用し、実行速度を向上できる集積回路装置を提供できる。また、データフローを再構成可能な処理ユニットを単体のチップあるいはプロセッサコアとして提供したり、キャッシュメモリとなる第1のメモリを搭載した状態でチップとして提供することも可能であり、本発明を実現可能な形態は様々であり、それらの形態を含む処理装置も本発明に含まれる。
発明を実施するための最良の形態
以下に図面を参照しながら、本発明についてさらに説明する。図1に、本発明に係るシステムLSI10の概略構成を示してある。このLSI10は、プログラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処理を行う汎用な構成のプロセッサ部(以降では基本プロセッサまたはプロセッサ)11と、マトリクス状に配置された演算あるいは論理エレメントにより特定のデータ処理に適合したデータフローあるいは擬似データフローがバリアブルに形成されるAAP(Adoptive Application Processor)部あるいはAAPユニット(以降ではAAP)20と、このAAP20からの割り込み処理を制御する割り込み制御部12と、AAP20に作動用のクロック信号を供給するクロック発生部13と、このLSI10で提供可能な演算回路のフレキシビリティーをさらに向上するためのFPGA部14と、外部に対するデータの入出力を制御するバス制御部15とを備えたデータ処理システムである。FPGA部14は、このLSI10の外部に設けられたFPGAチップとのインターフェイスであり、以降ではオフチップFPGAあるいはFPGAとして参照する。本発明の集積回路装置であるLSI10では、基本プロセッサ11とAAP20は、基本プロセッサ11とAAP20との間でデータを交換可能なデータバス17と、基本プロセッサ11からAAP20の構成および動作を制御するための命令バス18とにより接続されている。また、AAP20から割り込み制御部12に信号線19を介して割り込み信号が供給され、AAP20における処理が終了したり、処理中にエラーが発生したときはAAP20の状態を基本プロセッサ11にフィードバックできるようになっている。
AAP20とFPGA14との間もデータバス21により接続されており、AAP20からFPGA14にデータを供給して処理を行い、その結果をAAP20に返せるようになっている。さらに、AAP20は、ロードバス22およびストアバス23によってバス制御ユニット15と接続されており、LSI10の外部のデータバスとの間でデータを交換できるようになっている。したがって、AAP20は、外部のDRAM2やその他のデバイスからデータを入力でき、そのデータをAAP20で処理した結果を再び外部のデバイスに出力できる。基本プロセッサ11もデータバス11aとバス制御ユニット15を介して外部のデバイスとデータを入出力できる。
図2にAAPユニット20の概要を示してある。本例のAAPユニット20は、複数の算術および/または論理演算を行う論理ブロック、論理ユニットあるいは論理要素(以降ではエレメント)がマトリクス状に配置されたマトリクス部28と、そのマトリクス部28に対してデータを供給する入力バッファ26と、マトリクス部28から出力されるデータを格納する出力バッファ27を備えている。これら入力バッファ26および出力バッファ27は、それぞれ4つの小容量の入力メモリ(RAM)26a〜26dと、出力メモリ(RAM)27a〜27dとを備えている。AAP20は、さらに、これらの複数のメモリから構成される入力バッファ26および出力バッファ27とバス制御ユニット15との間におけるデータの入出力動作を制御する外部アクセス調停ユニット(第2の調停ユニット)25とを備えている。
本例の入力RAM26a〜26dおよび出力RAM27a〜27dは、各々が1kバイトの2ポートRAMとして機能し、64kビット幅で512バイトの深さのある2バンク形式のRAM81および82として使用できるようになっている。したがって、メモリに対する入力と出力で異なるバンクを使用することにより入出力を独立した動作として処理することが可能である。さらに、RAM81および82に対する入出力を管理する調停ユニット(第1の調停ユニット)85を備えており、入力および出力の回数をカウントすることにより各バンクのフルおよびエンプティーをチェックできるようになっている。
これら入力RAM26a〜26dおよび出力RAM27a〜27dの入出力を制御するために、マトリクス部28とそれぞれのRAMおよび調停ユニット85との間で複数種類の制御信号が交換される。まず、各入力RAM26a〜26d毎に、入力RAM26a〜26dからマトリクス部28が読み出すデータを制御するための16ビットの入力読み出しアドレスデータ(ira、第1のアドレス)61が出力される。この入力読み出しアドレス61は、各入力RAM26a〜26dの論理あるいは物理アドレスである。また、各入力RAM26a〜26dの調停ユニット85からマトリクス部28に、フルおよび/またはエンプティーによりアドレスデータ61の供給を制御する入力読み出しアドレスストップ信号(ira_stop)62が出力される。また、調停ユニット85からは、マトリクス部28から供給されたアドレスデータ61に対応するデータがないなどの、マトリクス部28に対する入力条件が整わない場合も入力読み出しアドレスストップ信号62が出力される。
マトリクス部28では、このストップ信号62によりマトリクス部28に形成されるデータフローをオンオフする。したがって、マトリクス部28にデータフローが形成された後の実行工程においては、データフローで定義された処理の実行を各入力RAM26a〜26dの調停ユニット85により制御することができる。したがって、入力RAM26に、入力読み出しアドレスデータ61に対応するデータがなければ、データフローの処理は待ち状態になる。また、入力RAM26に、入力読み出しアドレスデータ61に対応するデータがあれば、32ビットの入力読み出しデータ(ird)63がマトリクス部28に供給され、形成されたデータフローにより処理され、出力RAM27のいずれかに出力される。また、マトリクス部28からは入力読み出しデータ63を制御するストップ信号(ird_stop)64が各入力RAM26a〜26dに出力され、マトリクス部28のデータフローの動作が、たとえば、出力側による原因で停止したときは読み出しを停止する。
各入力RAM26a〜26dの調停ユニット85は、基本的には、各RAM26a〜26dを独立して制御する。したがって、各入力RAM26a〜26dとマトリクス部28との間のデータ交換は、入力RAM26a〜26d毎に制御および実行され、入力RAM26a〜26dに対応して形成されたマトリクス部28のデータフローが独立して制御される。以下で説明する出力RAM27a〜27dについても同様である。一方、これら入力RAM26a〜26dの調停ユニット85は、入力RAM26a〜26dの間の配線により、または、マトリクス部28を介した配線により接続することも可能であり、複数の入力RAM26a〜26dを関連付けして管理することも可能である。複数の入力RAM26a〜26dを関連付けして管理することにより、マトリクス部28に形成されるデータフローに対して複数の入力RAMを割り付けることが可能である。そして、調停ユニット85により、複数の入力RAM26a〜26dに優先順位をつけて、優先度の高いRAMのデータからデータフローに供給するといった制御が実現できる。
また、入力RAM26a〜26d毎に、バス制御ユニット15を介して外部メモリ2から読み出して各入力RAM26a〜26dに書き込むデータを制御するための32ビットの入力書き込みアドレスデータ(iwa、第2のアドレス)65と、そのデータタイプなどを指定可能な4ビットの制御信号(iwd_type)66がマトリクス部28から出力される。各入力RAM26a〜26dに対応するこれらの入力書き込みアドレスデータ65および制御信号66は、すべて外部アクセス調停ユニット25に出力される。この入力書き込みアドレス65は、外部メモリであるRAM2の物理アドレス、あるいは物理アドレスに相当する論理または仮想アドレスとなる。これに対し、外部アクセス調停ユニット25からアドレスデータ65の出力を制御するストップ信号(iwa_stop)67がマトリクス28に供給される。
さらに、外部アクセス調停ユニット25に供給された入力書き込みアドレスデータ65に呼応した64ビットの入力書き込みデータ(iwd)68が調停ユニット25から各入力RAM26a〜26dに供給され、各入力RAM26a〜26dからは入力書き込みデータ68を制御するストップ信号(iwd_stop)69が外部アクセス調停ユニット25に出力される。
マトリクス部28からの出力を制御するためには、各出力RAM27a〜27d毎に、マトリクス部28から読み出して出力RAM27a〜27dに書き込むデータを制御するための16ビットの出力書き込みアドレスデータ(owa、第1のアドレス)71が出力される。この出力書き込みアドレス71は、各出力RAM27a〜27dの論理または物理アドレスとなる。また、各出力RAM27a〜27dの調停ユニット85からマトリクス部28に、フルおよび/またはエンプティーによりアドレスデータ71の供給を制御する出力書き込みアドレスストップ信号(owa_stop)72が出力される。すなわち、調停ユニット85からは、マトリクス部28からの出力を受ける条件を満たさない場合に、出力書き込みアドレスストップ信号72が出力される。マトリクス部28では、このストップ信号72によりマトリクス部28に形成されるデータフローをオンオフし、データフローで定義された処理の実行を制御する。出力RAM27にスペースがあれば、出力書き込みアドレスデータ71と共に32ビットの出力書き込みデータ(owd)73がマトリクス部28から出力される。また、各出力RAM27a〜27dの調停ユニット85からマトリクス部28に出力書き込みデータ73を制御するストップ信号(owd_stop)74が供給される。
また、出力RAM27a〜27d毎に、バス制御ユニット15を介して各入力RAM26a〜26dから読み出して外部メモリ2に書き込むデータを制御するための32ビットの出力読み出しアドレスデータ(ora、第2のアドレス)75と、そのデータタイプなどを指定可能な4ビットの制御信号(ord_type)76がマトリクス部28から出力される。これらの出力読み出しアドレスデータ75と制御信号76はすべて外部アクセス調停ユニット25に出力される。この出力読み出しアドレス75は、外部メモリであるDRAM2の物理アドレス、あるいは物理アドレスに相当する論理または仮想アドレスとなる。これに対し、外部アクセス調停ユニット25からアドレスデータ75の出力を制御するストップ信号(ora_stop)77がマトリクス28に供給される。
さらに、出力読み出しアドレスデータ75と共に、64ビットの出力読み出しみデータ(ord)78が各出力RAM27a〜27dから外部アクセス調停ユニット25に供給され、外部アクセス調停ユニット25から各出力RAM27a〜27dに出力読み出しデータ68を制御するストップ信号(ord_stop)79が供給される。
したがって、本例のAAP20においては、マトリクス部28の入力データ63は、複数の入力RAM26a〜26dと、外部アクセス調停ユニット25とを経て外部メモリ2とのインターフェイスとなるバス制御ユニット15から供給される。また、マトリクス部28の出力データ73は、複数の出力RAM27a〜27dと、外部アクセス調停ユニット25とを経て外部メモリ2とのインターフェイスとなるバス制御ユニット15に供給される。そして、入力RAM26a〜26dおよび出力RAM27a〜27dは、各々が2バンク構成になっているので、入力RAM26a〜26dおよび出力RAM27a〜27dとマトリクス部28との間の処理と、入力RAM26a〜26dおよび出力RAM27a〜27dと外部アクセス調停ユニット25との間、すなわち、外部RAM2との間の処理とを独立してあるいは非同期で並列に実行できる。
また、外部アクセス調停ユニット25とバス制御ユニット15との間には、高速でブロック単位でデータを入出力できるように、32ビットのアドレスバスと256ビットのデータバスによりロードバス22およびストアバス23が構成されている。そして、アドレスバスを介して入力アドレス信号22aおよび出力アドレス信号23aが伝達され、データバスを介して入力データ22bおよび出力データ23bが伝達される。また、5ビットのコマンド22cおよび23cを伝達する信号線と、バス制御ユニット15のビジー信号22dおよび23dを伝達する信号線と、バス制御ユニット15のレディー信号22eを伝達する信号線も用意されている。
図3に、本例のマトリクス部28と小容量RAM26a〜26dおよび27a〜27dを含んだ構成29の概要を示してある。このマトリクス部28が、本発明における処理ユニットに対応するデータパスあるいはデータフローを再構成可能なシステムである。マトリクス部28は、複数の演算ユニットであるエレメント30を備え、それらのエレメント30が縦方向に4つのラインを構成するようにアレイ状あるいはマトリクス状に配置されている。また、マトリクス部28は、これらのエレメント30の間に配置された、横方向に延びた行配線群51と、縦方向に延びた列配線群52とを備えている。列配線群52は、列方向に並んだ演算ユニット30の左右に分かれて配置された配線群52xおよび52yが1対になっており、これらの配線群52xおよび52yからデータが各々のエレメント30に供給される。
行配線群51および列配線群52との交点にはスイッチングユニット55が配置されており、行配線群51の任意のチャンネルを、列配線群52の任意のチャンネルに切り替えて接続できるようになっている。各々のスイッチングユニット55は、設定を記憶するコンフィグレイションRAMを備えており、プロセッサ部11から供給されるデータによりコンフィグレイションRAMの内容を書き換えることにより、行配線群51と列配線群52の接続を動的に任意に制御できる。このため、本例のマトリクス部28においては、複数のエレメント30の全部あるいは一部が配線群51および52により接続されて形成されるデータフローの構成を任意に動的に変更することができる。
各エレメント30は、1組の列配線群52xおよび52yのそれぞれから入力データを選択するための1組のセレクタ31と、選択された入力データdixおよびdiyに特定の算術および/または論理演算処理を施し、出力データdoとして行配線群51に出力する内部データパス部32を備えている。そして、本例のマトリクス部28には、各行毎に異なる処理を行うための内部データパス部32を備えたエレメント30が並んで配置されている。さらに、これらの配線群51および52には、キャリー信号を伝送する配線も用意されている。キャリー信号は、桁上げ用の信号や真偽を示す信号として使用することが可能であり、本例のマトリクス部28では、各エレメント30において算術演算および論理演算を制御したり、結果を他のエレメント30に伝達するためなどに利用される。
まず、第1行目に配列されたエレメント30は、入力バッファ26からのデータを受信する処理に適したデータパス部32iを備えている。ロード用のデータパス部(LD)32iは、単にデータを受け入れるだけであれば、論理ゲートは不要であり、ロードバス22からデータを受信して、行配線群51に出力する。本例のマトリクス部28においては、ロード用のデータパス部32iは、入力RAM26のRAM調停ユニット85からストップ信号62を受けると、このデータパス部32iのエレメント30に繋がったデータフローの処理を停止する機能を備えている。さらに、マトリクス部28の内部要因や、出力側の要因によりデータパス部32iのエレメントに繋がったデータフローを停止するときは、対応する入力RAM26の調停ユニット85に対してストップ信号64を出力する機能を備えている。
第2行目に配置されたエレメント30aは、入力バッファ26の入力RAM26a〜26dの各々に外部RAM2からデータを書き込むためのエレメントであり、第2のアドレス出力区画に対応する。したがって、ブロックロードするためのアドレス(第2のアドレス)を発生するのに適した内部データパスを具備するデータパス部32aを備えている。このデータパス部32aは、BLA(Back Ground Load Address Generator)と称される。図4は、データパス部32aの一例であり、カウンタなどからなるアドレス発生回路38を備えており、そのアドレス発生回路38からアドレスが出力信号doとして出力される。出力信号doは、行配線群51および列配線群52を介して、そのまま、あるいは、他のエレメント30によって処理された後に入力信号dixあるいはdiyとしてデータパス部32に供給され、供給されたアドレスのいずれかがセレクタSELで選択されてフリップフロップFFを介してマトリクス部28からアクセス調停ユニット25に入力書き込みアドレス65として出力される。
マトリクス28を構成する全てのエレメント30と同様に、このアドレスを発生するエレメント30もアドレス発生回路38やセレクタSELの状態を設定するコンフィグレイションRAM39を備えており、このコンフィグレイションメモリ39のデータは基本プロセッサ11よりの制御信号18によりセットされる。
図5にアドレス発生回路38の一例を示してある。このアドレス発生回路38は、複数のカウンタ38aと、これらのカウンタ38aからの出力を演算してアドレスとして出力する加算器38bとを備えている。各々のカウンタ38aは、図6に示したように、算術演算ユニットALU38cと、コンパレータ38dとが組み合わされた構成となっており、ALU38cは、ADD、SUB、BITシフト、OR、XORやそれらを組み合わせた演算を行うようにセットすることが可能である。したがって、クロックが来る度に値を発生する関数発生回路としての機能があり、このカウンタ38aの機能はコンフィグレイションRAM39を介してプロセッサ部11からセットすることができる。
また、ALU38cの制御信号enを他のカウンタ38aから供給されるキャリー信号cyによりセットしたり、コンパレータ38dの出力をキャリー信号cyとして他のカウンタ38aに伝達できる。このようにキャリー信号を利用することにより、カウンタ38aの状態により他のカウンタ38aの状態をセットし、任意のアドレスを発生させることができる。さらに、本図には示されていないが、カウンタ38aの制御信号enを他のエレメント30から供給されるキャリー信号cyによりセットしたり、他のエレメント30に伝達できる。
したがって、この入力書き込みアドレス65を出力するエレメント(BLA)30aは、内部データパス32aとしてアドレス発生回路38を備えたアドレス発生に適した構成であると共に、コンフィグレイションRAM39を通じてプロセッサ11からアドレス発生の処理内容を制御することが可能であり、さらに、他のエレメント30との関連性も自由にセットすることができる。BLA32aに含まれる複数のカウンタ38aは、たとえば、32ビットのカウンタであり、外部メモリ2からローカルストアバッファであるRAM26a〜26bへDMA転送するためのアドレスを発生する。
図3の第3行目に配置されたエレメント30bは、入力RAM26a〜26dの各々より所望のデータをマトリクス部28へロードする入力読み出しアドレス61を発生するデータパス部32bを備えており、第1のアドレス出力区画に対応する。このデータパス部32bは、LDA(Load Address Generator)と称される。このデータパス部32bの構成は、出力されるアドレスが32ビットではなく16ビットであることを除き、基本的には上記のアドレス発生用の内部データパス部32aの構成と同じである。したがって、データパス部32bの基本的構成は図4に示した通りである。
LDA32bに含まれるアドレス発生回路38の一例を図7に示してある。このアドレス発生回路38は、4つの16ビットカウンタ38aを備えており、ローカルストアバッファであるRAM26a〜26bからマトリクス部28へデータを転送するためのアドレスを発生する。また、カウンタ38aの制御信号enは他のエレメント30から供給されるキャリー信号cyによりセットでき、さらに、他のエレメント30に伝達できるように構成されている。このエレメント30から出力された入力読み出しアドレス61により、入力RAM26a〜26dよりマトリクス部28へデータが供給され、マトリクス部28を構成する他の論理および演算エレメントにより演算処理される。
第4行目および第5行目に配列されたエレメント30cは、算術演算および論理演算に適したデータパス部(SMA)32cを備えている。このデータパス部32cは、たとえば、シフト回路、マスク回路、論理演算ユニットALUおよびALUで処理する演算をセットするコンフィグレイションRAM39を備えている。したがって、プロセッサ11が書き込んだ命令により、入力データdixおよびdiyを加算あるいは減算したり、比較したり、論理和あるいは論理積を取ったりすることができ、その結果が出力信号doとして出力される。
その下の行に配列されたエレメント30dは、データが伝送されるタイミングを遅延する処理に適したデータパス部(DEL)32dを備えている。このデータパス部32dには、たとえば、複数のセレクタとフリップフロップFFとの組み合わせで構成されたデータパスが用意されており、コンフィグレイションRAM39のデータによりセレクタで選択されたパスを入力信号dixおよびdiyが通ることにより、任意のクロック数だけ遅延して出力信号doxおよびdoyとして出力される。
その下の行に配列されたエレメント30eは、乗算器などを含む乗算処理に適したデータパス部(MUL)32eを備えている。さらに異なるエレメント30fとしては、マトリクス部28の外部に用意されたFPGA14とのインターフェイス用のデータパス部32fを備えたエレメントも用意されており、データをいったんFPGA14に供給して処理した後、再びマトリクス部28に戻して処理を継続することができる。
これらのデータ処理区画に相当するエレメントが配列された領域のさらに下方には、ストア用のアドレスを発生するのに適したデータパス部32gおよび32hをそれぞれ備えたエレメント30gおよび30hが配置されている。これらのデータパス部32gおよび32hは、上記にて図4から図7を参照しながら説明したアドレスを発生するデータパス部32bおよび32aと基本的に同一の構成となっている。データパス部32gを備えたエレメント30gは第1のアドレス出力区画であり、マトリクス28から出力されるデータを出力RAM27a〜27dに書き込むための出力書き込みアドレス71を出力する。そして、上述した各種類のエレメント30c〜30fにより構成されたデータ処理系列から出力されたデータを出力RAM27a〜27dに書き込む。このデータパス部32gは、STA(Store address Generator)と称され、LDA32bと同様の構成となる。
このエレメント(STA)30gの下方に配置され、データパス部32hを備えたエレメント30hは、第2のアドレス出力区画であり、出力RAM27a〜27dのデータを読み出して外部RAM2に書き込むための出力読み出しアドレス75を出力し、外部RAM2にマトリクス部28で処理されたデータを書き込む。このデータパス部32hは、BSA(Back Ground Store Address Generator)と称され、BLA32aと同様の構成となる。
そして、最下段には、ストア用にデータを出力するのに適したデータパス部32sを備えたエレメント30が配列されている。このデータパス部32sはSTと称されており、算術演算用のデータパス部32cとほぼ同様の構成のデータパス部を採用できる。さらに、本例においては、この出力用のデータパス部32sは、出力RAM27の調停回路85からストップ信号74を受けると、この出力用のエレメント30に繋がったデータフローの処理を停止する機能を備えている。
このように、本例のマトリクス28は、外部RAM2から入力RAM26a〜26dにデータを入力(ブロックロードする)ためのアドレスを発生する内部データパス(BLA)32aを備えたエレメント30aと、それら入力RAM26a〜26dからマトリクス部28へデータを入力するためのアドレスを発生する内部データパス(LDA)32bを備えエレメント30bを備えている。さらに、マトリクス部28から出力RAM27a〜27dへデータを出力するためのアドレスを発生する内部データパス(STA)32gを備えたエレメント30gと、出力RAM27a〜27dのデータを外部RAM2に出力する(ブロックロードする)ためのアドレスを発生する内部データパス(BSA)32hを備えたエレメント30hとを備えている。これらのエレメント30a、30b、30gおよび30hは、上述したようにいずれもアドレスを発生させるのに適したデータパスを備えていると共に、その構成あるいは機能をコンフィグレイションRAM39のデータを書き換えることにより変更できる。そして、マトリクス部28の他のエレメント30との接続環境も配線群51および52の接続を変えることにより変更できる。したがって、プロセッサ11、あるいは、マトリクス部28の他のエレメント30からアドレス発生のデータを提供したり、アドレスを発生するタイミングをフレキシブルに制御することが可能である。
したがって、様々な条件および/または構成で、外部RAM2からキャッシュとなる入力RAM26a〜26dに対しデータをロードすることができる。また、その処理とは別に、非同期で、あるいは独立して、異なる条件で入力RAM26a〜26dからマトリクス部28へデータをロードすることが可能である。そして、エレメント30aおよび30bが独立しているので、これらの処理を並列に実行することが可能である。したがって、これら複数の入力RAM26a〜26dは、それぞれが独立で入出力可能な格納区画となっている。
さらに、入力RAM26a〜26dは2バンク構成になっているので、入力RAM26a〜26dに対する入力および出力も並列に行うことが可能であり、入力RAM26a〜26dに対するデータの入出力が極めて効率良く行える構成となっている。出力RAM27a〜27dも同様であり、それぞれが独立で入出力可能な格納区画となり、さらに、個々のRAM27a〜27dに対する入力および出力も独立で並列に行うことが可能である。したがって、このシステムでは、キャッシュとして動作するRAM26a〜26dおよび27a〜27dに対してデータの入出力を極めて効率良く行うことができる。
本例のマトリクス28は、基本的にアドレス発生に適したデータパス部32a、32b、32gおよび32hをそれぞれ備えたエレメント30a、30b、30gおよび30hを備えており、それぞれの動作は基本プロセッサ11から指示により決定される。すなわち、制御ユニットである基本プロセッサ11から制御バス28を介して供給される指示により、第1のメモリであるRAM26a〜26dおよび27a〜27dへのアクセスする回路が決定され、さらに、主メモリ(第2のメモリ)となるDRAM2へのアクセスする回路が決定される。
さらに、それらメモリへのアクセスを制御する回路がマトリクス内に構成されるので、それらの回路の動作に、マトリクス28の内部における条件、たとえば、データフローの構成あるいは処理結果さらには、マトリクス28の他のエレメントを用いた処理の結果が直接あるいは間接的に反映することは極めて容易である。アドレスを発生させるのに適したエレメント30a、30b、30gおよび30hは他のエレメントと同様に、配線51および52により、マトリクス部28の他のエレメントに対して自由に配線できる。このため、マトリクス部28の中でデータ処理区画となる他のエレメントにより構成されるデータフローあるいはデータ処理区画で実行するソフトウェアにより、エレメント30a、30b、30gおよび30hのパラメータあるいは処理内容を変えることにより出力を制御できる。さらには、エレメント30a、30b、30gおよび30hと他のエレメントでデータフローを構成することにより、他のエレメントの機能をアドレス発生用に利用することも可能である。したがって、キャッシュシステムを構成する第1のメモリであるRAM26a〜26dおよび27a〜27dへのアクセス方法、さらに、主メモリ(第2のメモリ)となるDRAM2へのアクセス方法をマトリクス28の内部における条件、たとえば、データフローの構成あるいは処理結果によりフレキシブルに決定できる。
さらに、マトリクス部28は基本プロセッサ11からの制御により再構成可能な構成なので、これらアドレスを発生するエレメント30a、30b、30gおよび30hの内部のデータパスおよび機能を動的に再構成することが可能であり、外部の他のエレメントとの接続も動的に再構成することができる。もちろん、マトリクス部28の内部にエレメント内およびエレメント間の接続を再構成できる機能を持ち込むことも可能である。したがって、マトリクス部28で実行する処理内容によってマトリクス部28の他のエレメント30の接続を変更してデータフローあるいはデータパス構造を再構成する際に、入力RAMからなるバッファ26および出力RAMからなるバッファ27にデータを入出力する構成も変更することが可能である。
このため、マトリクス部28で実行する処理に最も適した構成でデータを入力バッファ26および出力バッファ27に入出力するように構成することが可能であり、キャッシュとしてのヒット率を高めたり、キャッシュの書き換えの回数を削減したりすることが可能となる。また、アドレスを発生するエレメント30a、30b、30gおよび30hの内部およびこれに関連するデータパス構造を、エレメント毎に再構成することも可能であり、それぞれのRAM26a〜26dおよび27a〜27dの単位でキャッシュシステムを再構成することも可能である。このため、フレキシビリティーは非常に高い。したがって、マトリクス部28に他のエレメント30によりデータ処理系列が構成される前に、そのデータ処理系列に適したデータ入力構造を実現して、データのロードを先行して開始したり、データ処理系列が他の処理のために再構成された後もデータ出力構造を維持してデータの出力だけを継続するなどの従来では考えられなかった処理も極めてフレキシブルに実行できる。すなわち、第1のメモリであるRAM26および27、さらには第2のメモリであるDRAM2に対する処理を、他のエレメントあるいはデータフローに従属した状態でも、独立した状態でも自由に実行することができる。もちろん、アドレスを発生するエレメント30a、30b、30gおよび30hを関連して動作させることも可能であり、複数のエレメント30aあるいは30bを関連して動作させ、複数のRAM26を1つの大容量のキャッシュとしてマトリクス部に利用させることも可能である。
また、エレメント30aは、入力RAM26aがエンプティーになると入力書き込みアドレス65を出力してRAM2からデータを書き込む処理を行い、エレメント30bは、入力RAM26aにデータがあると、そのデータをマトリクス部28にロードする処理を行うことも可能である。これにより、エレメント30aおよび30bを独立に並列に動かすことが可能であり、データ処理系列の処理時間を浪費することなく外部RAM2のデータを入力RAM26aにプリフェッチすることができる。また、エレメント30aが外部RAM2からデータを入力するアドレスを制御すれば、エレメント30bおよびマトリクス部28に構成されるデータ処理系列においては、内部RAM26aのアドレスだけで処理を進めることも可能である。さらに、マトリクス部28の他の複数のエレメント30によりデータフロータイプの処理系が定義されているようであれば、アドレスを除いたデータだけでマトリクス部28ではデータ処理を進めることも可能である。
マトリクス部28のデータ処理系列からは仮想アドレスが出力され、それをエレメント30bで入力RAM26aの物理アドレスに変換してデータを供給し、入力RAM26aにデータがない場合はエレメント30aで外部RAM2の物理アドレスに変換して外部RAM2からロードする構成にすることも可能である。
また、エレメント(BLA)30aが、入力RAM26bから入力されたデータによりアドレスを発生し、それにより外部RAM2から入力RAM26aにデータをロードするように構成することも可能である。したがって、マトリクス部28に構成されるデータ処理系列とは独立して、入力RAM26あるいは出力RAM27に対する入出力を処理する機構だけで、完全な間接アドレッシングの制御を行うことができる。さらに、複数の入力RAM26a〜26d、出力RAM27a〜27dさらにはアクセス調停ユニット25を連動させることにより複数の階層構造を備えたキャッシュ構造を実現することも可能である。
また、本例のAAP20では、エレメント30を4列に並べているのに対応させて4つの入力RAM26a〜26dおよび出力RAM27a〜27dを用意している。したがって、これらの入力RAM26a〜26dおよび出力RAM27a〜27dをマトリクス部28に、他のエレメント30により構成される複数のデータ処理系列に個別に対応したキャッシュメモリとして利用することができる。このため、マトリクス部28で複数のジョブあるいはアプリケーションが実行されている場合に、それらのジョブあるいはアプリケーションにそれぞれ最適なキャッシュとして各入力RAM26a〜26dおよび出力RAM27a〜27dを利用できる。エレメント30は4列に配列しているが、エレメント30により構成されるデータ処理系列は4列に限定されることはない。マトリクス部28に構成されるデータ処理系列が3列以下であれば、入力RAM26a〜26dおよび出力RAM27a〜27dのうちの複数のRAMを1つのデータ処理系列に割り当てることにより、キャッシュメモリの容量を増やすことができる。データ処理系列が5列以上であれば、キャッシュメモリとして1つのRAMを複数のデータ処理系列に割り当てることになるが、最悪でも、RAMを共用するデータ処理系列で、現状のCPUコアでマルチタスクのキャッシュ処理が行われているのと同様の状況が発生するだけである。
図8に概要を示すように、本発明の集積回路装置または処理装置であるシステムLSI10は、処理ユニットであるマトリクス部と小容量のRAMとを備えた構造あるいはアセンブリ29を備えており、マトリクス部から外部のRAM2に出力されるアドレスは調停回路25を経て外部のRAM2に供給される。そして、小容量のRAMの入出力を制御するアドレス発生機構はデータフローを再構成可能なマトリクス部で実現されているので、キャッシュメモリとして機能する小容量のRAMを制御するアーキテクチャも再構成可能であり、マトリクス部で実行されるソフトウェアに最適な構成に変更することができる。したがって、本発明の集積回路装置あるいは処理装置となるシステムLSI10では、実行されるソフトウェアの処理内容やハードウェア環境に応じて、小容量のRAMをキャッシュメモリとして最も効率良く利用することができる。そして、種々のソフトウェアを実行する際に、高いヒット率が得られるようにキャッシュメモリおよびそれを制御する回路を構成でき、キャッシュメモリの入出力がソフトウェアを実行する際のオーバヘッドとならないシステムLSIあるいはASICといった集積回路装置あるいは処理装置を提供することができる。
また、システムLSI10で制御可能な外部メモリ、すなわち、第2のメモリはRAMに限定されるものではない。入力RAMあるいは出力RAMに対して外部メモリとなるものは、RAMやROM、さらにはハードディスク装置のような記録装置に限定されることはなく、アドレスを指定することによりデータを入出力可能なデバイスは全て含まれる。たとえば、図9に示したように、LSI10が大容量RAM2とプリンタやディスプレイなどの周辺デバイス3を外部メモリとして制御する場合は、マトリクス部28のブロックロードするエレメントBLA30aおよびBSA30hにおいて、周辺デバイス3に割り当てられた物理アドレスを発生すれば良い。
また、図10に示したように、LSI10が複数のバスコントローラを経て複数の大容量RAM2および周辺デバイス3を制御する場合は、調停回路25を多重化するなどの変形も可能である。さらに、大容量RAM2をLIS10の内部に搭載することも可能であり、その大容量RAM2を周辺デバイス3に対するキャッシュメモリとして利用するような構成も可能である。また、大容量RAM2をプロセッサ部11のコードRAMとして利用することも可能である。
また、上述したマトリクス部28の構成は例示であり、これに限定されるものではない。演算を行う特定の内部データパス32を上述したエレメントはアドレス発生、算術演算、論理演算、乗算、遅延などの特定の処理に適したデータパスを備えているものの例であり、データパスの機能や、構成は本例に限定されるものではない。本発明の集積回路装置またはデータ処理装置であるLSI10で実行されるアプリケーションに適した機能のデータパスを備えたエレメントをマトリクスあるいはアレイ状に配置することにより、データフローを変更あるいは再構成できる処理ユニットを提供することができる。また、マトリクス部28は複数であっても良く、複数のマトリクス部を平面的に配置したり、立体的に配置することにより、さらに多数のエレメントを備えた集積回路装置を構築することが可能である。また、本発明の集積回路装置は、電子回路に限定されることはなく、光回路あるいは光電子回路にも適用できるものである。
さらに、上記では、AAP20、基本プロセッサ11およびバス制御ユニット15を組み込んでシステムLSI10として提供する例により本発明を説明しているが、どの範囲を1つのチップとして提供するか実装するアプリケーションなどの条件により異なる。AAP20を1つのチップとして提供することも可能であるし、キャッシュとなるRAM26および27とマトリクス部28を含めた範囲29をチップ化することも可能である。さらには、基本プロセッサ15に加えて複数のAAPあるいは他の専用回路などを含めていっそう大きなシステムLSIあるいはASICとして提供することも可能である。
また、図11に示すように、FPGAをマトリクス部28に代わる処理ユニットとし、本発明のデータ処理区画に加え、入力RAM26および出力RAM27をキャッシュとして機能させる本発明の第1および第2のアドレス出力区画をプログラミングあるいはマッピングすることにより、本発明の集積回路装置または処理装置を実現することも可能である。FPGAは、トランジスタレベルで汎用性を備えたデータパス構造を変更可能なアーキテクチャである。さらに、トランジスタレベルではないが、単一的な構成要素を備え、命令セットにより種々の処理を行う中規模な単一構成の基本機能ユニットを用いてデータパス構造またはデータフローを変更可能とした集積回路装置も検討されている。そのようなアーキテクチャで構成された処理ユニットに対しても、データ処理区画に加え、入力RAM26および出力RAM27をキャッシュとして機能させる本発明の第1および第2のアドレス出力区画を構成する、あるいは構成するように指示することにより、本発明の集積回路装置または処理装置を実現できる。
しかしながら、これらの単一構成の基本ユニットを並べたアーキテクチャと異なり、上述したマトリクス部に基づくアーキテクチャは、複数種類の内部データパスの異なるエレメントを備えたものである。したがって、トランジスタレベルの汎用性を要求するアーキテクチャではないので、実装密度も向上でき、コンパクトで経済的なシステムを提供できる。そして、各々のエレメント30が特定のデータ処理に特化したデータパス部32を備えているので、冗長な構成を極力削減することができ、FPGAや他の単一構成の基本機能ユニットを並べた処理ユニットに比べて大幅に処理速度を高速化でき、AC特性も向上できる。また、スペース効率も高くなるので、コンパクトなレイアウトを採用し、配線長も短くできる。したがって、本発明で開示している効率の良いキャッシュ構造を、確実に活かせる集積回路装置および処理装置には最適であり、高速処理が可能な処理装置を低コストで提供できる。
さらに、トランジスタレベルで回路をマッピングするFPGAと異なり、予め特定の処理に適したデータパス部32を備えたエレメント30の組み合わせを変えるので、短時間で、ほとんど1クロックでデータ処理ユニット、すなわちマトリクス部28に構成されるデータ処理系列の構成や機能を変更することができるというメリットもある。さらに、各々のエレメント30では、データパス部32を構成するセレクタやALUなどの論理ゲートの機能もコンフィグレイションメモリ39を介してプロセッサ11によって独立してセットすることが可能であり、各エレメント30のデータパス部32がサービスする機能の範囲内でフレキシブルに変更することができる。このため、本例のマトリクス部28でデータフロー型のデータ処理で実行可能な機能の範囲は非常に広い。また、ネットワーク処理や、画像処理などのLSI10が用いられるアプリケーションに適した種類の演算ユニット30を選択し、配列することが可能であり、さらに実装効率が良く、実行速度の速い集積回路装置を提供することが可能である。
以上に説明したように、本発明は、キャッシュメモリとして使用できる第1のメモリを制御する第1のアドレス出力区画および第2のアドレス出力区画とデータフローを変更可能な処理ユニットに形成している。このため、キャッシュシステムの構成を、データ処理区画の構成と、そこで実行されるソフトウェアに最適な構成に動的に変更でき、種々のソフトウェアを実行する際に、高いヒット率が得られるキャッシュシステムを構成できる。したがって、様々なソフトウェアあるいはアプリケーションをさらに短い処理時間で実行することができる集積回路装置を提供できる。
産業上の利用可能性
本発明の処理ユニットおよび集積回路装置は、様々なデータ処理を実行可能なシステムLSIあるいはASICなどとして提供することが可能である。また、本発明の処理ユニットおよび集積回路装置は、電子回路に限定されることはなく、光回路あるいは光電子回路にも適用できるものである。本発明の集積回路装置は、再構成可能なハードウェアによりデータ処理を高速に実行できるので、ネットワーク処理や、画像処理などの高速性およびリアルタイム性が要求されるデータ処理装置に好適なものである。
【図面の簡単な説明】
図1は、本発明の実施の形態に係る集積回路装置の概略構成を示すブロック図である。
図2は、処理ユニットであるAAPの概略構成を示す図である。
図3は、マトリクス部の概略構成を示す図である。
図4は、アドレスを出力する処理に適したデータパス部の例である。
図5は、図4に示したデータパス部のアドレス発生回路の構成を示す図である。
図6は、図5に示したカウンタの構成を示す図である。
図7は、図5と異なるアドレス発生回路の構成を示す図である。
図8は、大容量RAMを外部メモリとして制御する様子を示す図である。
図9は、大容量RAMおよび周辺デバイスを外部メモリとして制御する様子を示す図である。
図10は、複数の大容量RAMおよび周辺デバイスを外部メモリとして制御する様子を示す図である。
図11は、本発明の異なる集積回路装置により大容量RAMを外部メモリとして制御する様子を示す図である。
Claims (34)
- 第2のメモリとの間でデータを入力および/または出力可能な第1のメモリと、
少なくとも1つのデータフローが形成され、その少なくとも1つのデータフローの少なくとも1部を再構成可能な処理ユニットとを有し、
この処理ユニットは、前記第1のメモリとの間で入力および/または出力されるデータを処理するデータ処理区画と、
前記第1のメモリと前記データ処理区画との間で入力および/または出力されるデータの第1のアドレスを出力する第1のアドレス出力区画と、
前記第2のメモリと前記第1のメモリとの間で入力および/または出力されるデータの第2のアドレスを出力する第2のアドレス出力区画と、を備えており、
前記データ処理区画に形成されるデータフローの構成または処理結果により、前記第1のアドレス出力区画および/または前記第2のアドレス出力区画に関わるデータフローの少なくとも1部を再構成し、前記第1のメモリおよび/または第2のメモリに対するアクセス方法を決定する集積回路装置。 - 前記第1のアドレスは前記第1のメモリのアドレスであり、前記第2のアドレスは前記第2のメモリのアドレスである、請求項1の集積回路装置。
- 前記第1のアドレス出力区画および前記第2のアドレス出力区画に関わるデータフローの少なくとも一部を再構成し、前記第2のアドレス出力区画と前記第1のアドレス出力区画とが関連して機能する構成と、前記第2のアドレス出力区画と前記第1のアドレス出力区画とが独立して機能する構成とに変更可能である、請求項1の集積回路装置。
- 前記第1のメモリは独立に入出力可能な複数の格納区画を備えている、請求項1の集積回路装置。
- 前記第1のメモリは、前記データ処理区画に入力されるデータを格納する第1の入力メモリと、前記データ処理区画から出力されたデータを格納する第1の出力メモリとを備えている、請求項1の集積回路装置。
- 前記第1のメモリと前記データ処理区画との間の入力および/または出力を管理する第1の調停ユニットを有する、請求項1の集積回路装置。
- 前記第1の調停ユニットは、前記データ処理区画との間の入力または出力の条件を満たさない場合にストップ信号を前記データ処理区画に出力する機能を備えている、請求項6の集積回路装置。
- 前記データ処理区画は、前記ストップ信号により、当該データ処理区画に形成された少なくとも1つのデータフローの処理を停止する機能を備えている、請求項7の集積回路装置。
- 前記第1のメモリは、前記データ処理区画に入力されるデータを格納する第1の入力メモリと、前記データ処理区画から出力されたデータを格納する第1の出力メモリとを備えており、
前記第1の調停ユニットは、前記第1の入力メモリから前記データ処理区画へのデータの転送を管理する第1の入力調停ユニットと、前記データ処理区画から前記第1の出力メモリへのデータの転送を管理する第1の出力調停ユニットとを備えている、請求項6の集積回路装置。 - 前記第1のメモリは独立に入出力可能な複数の格納区画を備えており、
前記第1の調停ユニットは、前記複数の格納区画のそれぞれを独立して管理する機能を備えている、請求項6の集積回路装置。 - 前記第1のメモリは独立に入出力可能な複数の格納区画を備えており、
前記第1の調停ユニットは、前記複数の格納区画を関連付けして管理する機能を備えている、請求項6の集積回路装置。 - 前記データ処理区画には複数のデータフローを構成可能であり、さらに
複数の前記第1のメモリを有し、
前記処理ユニットには、各々の前記第1のメモリに対応する前記第1および第2のアドレス出力区画が形成される、請求項1の集積回路装置。 - 前記第2のメモリと前記複数の第1のメモリとの間の入出力を管理する第2の調停ユニットを有し、前記第2のアドレスは前記第2の調停ユニットに供給される、請求項12の集積回路装置。
- 前記処理ユニットは、機能を変更可能な複数の単一種類の論理要素と、これらの論理要素を接続する配線群とを備えている、請求項1の集積回路装置。
- 前記処理ユニットは、それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の専用処理要素と、これらの専用処理要素を接続する配線群とを備えている、請求項1の集積回路装置。
- 前記処理ユニットは、アドレスを出力するのに適した前記内部データパスを備えた前記専用処理要素を備えている、請求項15の集積回路装置。
- 前記専用処理要素は、前記内部データパスの一部を選択する手段と、前記内部データパスの選択を記憶するコンフィグレイションメモリとを備えている、請求項15の集積回路装置。
- 前記コンフィグレイションメモリの内容を書き換える制御ユニットを有する、請求項17の集積回路装置。
- 前記処理ユニットのデータフローの少なくとも1部の変更を指示する制御ユニットを有する、請求項1の集積回路装置。
- 前記制御ユニットは、前記データ処理区画、第1のアドレス出力区画、または前記第2のアドレス出力区画のデータフローの変更を独立に指示可能である、請求項19の集積回路装置。
- 前記制御ユニットを制御するプログラムコードを記憶するコードメモリを有する、請求項19の集積回路装置。
- 前記第2のメモリを有し、この第2のメモリは、第3のメモリとの間でデータを入力および/または出力可能であり、
前記第3のメモリと前記第2のメモリとの間で入力および/または出力されるデータの第3のアドレスを出力する第3のアドレス出力手段を有する、請求項1の集積回路装置。 - 少なくとも1つのデータフローが形成され、その少なくとも1つのデータフローの少なくとも1部を再構成可能な処理ユニットであって、
第2のメモリとの間でデータを入力および/または出力可能な第1のメモリとの間で入力および/または出力されるデータを処理するデータ処理区画と、
前記第1のメモリと前記データ処理区画との間で入力および/または出力されるデータの第1のアドレスを出力する第1のアドレス出力区画と、
前記第2のメモリと前記第1のメモリとの間で入力および/または出力されるデータの第2のアドレスを出力する第2のアドレス出力区画と、を有し、
前記データ処理区画に形成されるデータフローの構成または処理結果により、前記第1のアドレス出力区画および/または前記第2のアドレス出力区画に関わるデータフローの少なくとも1部を再構成し、前記第1のメモリおよび/または第2のメモリに対するアクセス方法を決定する処理ユニット。 - 前記第1のアドレス出力区画および前記第2のアドレス出力区画に関わるデータフローの少なくとも一部を再構成し、前記第2のアドレス出力区画と前記第1のアドレス出力区画とが関連して機能する構成と、前記第2のアドレス出力区画と前記第1のアドレス出力区画とが独立して機能する構成とに変更可能である、請求項23の処理ユニット。
- 前記データ処理区画には複数のデータフローを構成可能であり、さらに、
複数の前記第1のメモリの各々に対応する前記第1および第2のアドレス出力区画を備えている、請求項23の処理ユニット。 - それぞれ異なる特定の処理に適した内部データパスを備えた複数種類の専用処理要素と、これらの専用処理要素を接続する配線群とを有する、請求項23の処理ユニット。
- アドレスを出力するのに適した前記内部データパスを備えた前記専用処理要素を有する、請求項26の処理ユニット。
- 請求項26に記載の処理ユニットと、
前記第1のメモリとを有する処理装置。 - 前記処理ユニットのデータフローの少なくとも1部の変更を指示する制御ユニットをさらに有する、請求項28の処理装置。
- 第2のメモリとの間でデータを入力および/または出力可能な第1のメモリと、少なくとも1つのデータフローが形成され、その少なくとも1つのデータフローの少なくとも1部を再構成可能な処理ユニットとを有する集積回路装置の制御方法であって、
前記処理ユニットに対し、前記第1のメモリとの間で入力および/または出力されるデータを処理するデータ処理区画と、前記第1のメモリと前記データ処理区画との間で入力および/または出力されるデータの第1のアドレスを出力する第1のアドレス出力区画と、前記第2のメモリと前記第1のメモリとの間で入力および/または出力されるデータの第2のアドレスを出力する第2のアドレス出力区画とを構成するように指示し、前記データ処理区画に形成されるデータフローの構成または処理結果により、前記第1のアドレス出力区画および/または前記第2のアドレス出力区画に関わるデータフローの少なくとも1部を再構成し、前記第1のメモリおよび/または第2のメモリに対するアクセス方法を決定する工程を有する集積回路装置の制御方法。 - 前記指示する工程は、前記データ処理区画、前記第1のアドレス出力区画、または、第2のアドレス出力区画のデータフローの変更を独立して指示する工程を備えている、請求項30の制御方法。
- 前記指示する工程では、前記第1のアドレス出力区画および前記第2のアドレス出力区画に関わるデータフローの少なくとも1部を再構成し、第2のアドレス出力区画と前記第1のアドレス出力区画とが関連して機能する、または、前記第2のアドレス出力区画と前記第1のアドレス出力区画とが独立して機能するように指示する、請求項30の制御方法。
- 前記データ処理区画には複数のデータフローを構成可能であり、さらに、
前記指示する工程では、複数の前記第1のメモリの各々に対応する前記第1および第2のアドレス出力区画を形成するように指示する、請求項30の制御方法。 - 前記データ処理区画に少なくとも1つのデータフローを形成し、前記第1のメモリと入力および/または出力するデータに関連する処理を実行する工程を有し、この実行する工程では、前記第1のメモリと前記データ処理区画との間の入力および/または出力を管理する第1の調停ユニットが入力または出力の条件を満たさない場合に出力するストップ信号により、当該データ区画に形成された少なくとも1つのデータフローの処理を停止する、請求項30の制御方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001212545 | 2001-07-12 | ||
JP2001212545 | 2001-07-12 | ||
PCT/JP2002/007076 WO2003007155A1 (fr) | 2001-07-12 | 2002-07-11 | Dispositif a circuit integre |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2003007155A1 JPWO2003007155A1 (ja) | 2004-11-04 |
JP4188233B2 true JP4188233B2 (ja) | 2008-11-26 |
Family
ID=19047692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003512850A Expired - Lifetime JP4188233B2 (ja) | 2001-07-12 | 2002-07-11 | 集積回路装置 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6868017B2 (ja) |
EP (1) | EP1416388A4 (ja) |
JP (1) | JP4188233B2 (ja) |
KR (1) | KR100912437B1 (ja) |
CN (1) | CN1526100A (ja) |
AU (1) | AU2002318809B2 (ja) |
CA (1) | CA2451003A1 (ja) |
TW (1) | TW577020B (ja) |
WO (1) | WO2003007155A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013512511A (ja) * | 2009-11-25 | 2013-04-11 | ハワード ユニバーシティ | 複数メモリ特定用途向けデジタル信号プロセッサ |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993674B2 (en) * | 2001-12-27 | 2006-01-31 | Pacific Design, Inc. | System LSI architecture and method for controlling the clock of a data processing system through the use of instructions |
US7197620B1 (en) * | 2002-12-10 | 2007-03-27 | Unisys Corporation | Sparse matrix paging system |
JP4175124B2 (ja) | 2003-01-24 | 2008-11-05 | ソニー株式会社 | 画像信号処理装置 |
JP2005018626A (ja) * | 2003-06-27 | 2005-01-20 | Ip Flex Kk | 並列処理システムの生成方法 |
US20050283550A1 (en) * | 2004-06-18 | 2005-12-22 | Honeywell International Inc. | Method and architecture of a coupling system for microprocessors and logic devices |
JP4451733B2 (ja) * | 2004-06-30 | 2010-04-14 | 富士通マイクロエレクトロニクス株式会社 | 半導体装置 |
US7929518B2 (en) * | 2004-07-15 | 2011-04-19 | Broadcom Corporation | Method and system for a gigabit Ethernet IP telephone chip with integrated DDR interface |
JP4569284B2 (ja) * | 2004-12-10 | 2010-10-27 | 富士ゼロックス株式会社 | 集積回路のデバッグ方法、デバッグプログラム |
US7493578B1 (en) * | 2005-03-18 | 2009-02-17 | Xilinx, Inc. | Correlation of data from design analysis tools with design blocks in a high-level modeling system |
US7363599B1 (en) | 2005-10-04 | 2008-04-22 | Xilinx, Inc. | Method and system for matching a hierarchical identifier |
US7496869B1 (en) | 2005-10-04 | 2009-02-24 | Xilinx, Inc. | Method and apparatus for implementing a program language description of a circuit design for an integrated circuit |
US7761272B1 (en) | 2006-03-10 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for processing a dataflow description of a digital processing system |
US8402409B1 (en) | 2006-03-10 | 2013-03-19 | Xilinx, Inc. | Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit |
US7380232B1 (en) | 2006-03-10 | 2008-05-27 | Xilinx, Inc. | Method and apparatus for designing a system for implementation in a programmable logic device |
JP5605975B2 (ja) * | 2007-06-04 | 2014-10-15 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置及びその製造方法、並びに、データ処理システム |
CN101727433B (zh) * | 2008-10-20 | 2012-04-25 | 北京大学深圳研究生院 | 一种处理器结构 |
CN101727434B (zh) * | 2008-10-20 | 2012-06-13 | 北京大学深圳研究生院 | 一种特定应用算法专用集成电路结构 |
KR101581882B1 (ko) * | 2009-04-20 | 2015-12-31 | 삼성전자주식회사 | 재구성 가능한 프로세서 및 그 재구성 방법 |
US9270542B2 (en) | 2009-07-31 | 2016-02-23 | Ixia | Apparatus and methods for forwarding data packets captured from a network |
US8134927B2 (en) * | 2009-07-31 | 2012-03-13 | Ixia | Apparatus and methods for capturing data packets from a network |
EP2561645B1 (en) | 2010-04-23 | 2020-02-26 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Integrated network data collection arrangement |
US9158544B2 (en) | 2011-06-24 | 2015-10-13 | Robert Keith Mykland | System and method for performing a branch object conversion to program configurable logic circuitry |
US8869123B2 (en) | 2011-06-24 | 2014-10-21 | Robert Keith Mykland | System and method for applying a sequence of operations code to program configurable logic circuitry |
US10089277B2 (en) | 2011-06-24 | 2018-10-02 | Robert Keith Mykland | Configurable circuit array |
US9304770B2 (en) | 2011-11-21 | 2016-04-05 | Robert Keith Mykland | Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor |
US9633160B2 (en) | 2012-06-11 | 2017-04-25 | Robert Keith Mykland | Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor |
US10904075B2 (en) | 2012-07-02 | 2021-01-26 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Preconfigured filters, dynamic updates and cloud based configurations in a network access switch |
US9081686B2 (en) * | 2012-11-19 | 2015-07-14 | Vmware, Inc. | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
EA201591613A1 (ru) * | 2013-03-01 | 2016-05-31 | Атонарп Инк. | Устройство обработки данных и способ управления им |
US9275203B1 (en) | 2014-02-03 | 2016-03-01 | Purdue Research Foundation | Methods, systems, and computer readable media for preventing software piracy and protecting digital documents using same |
US9571296B2 (en) | 2014-04-30 | 2017-02-14 | Ixia | Methods and apparatuses for abstracting filters in a network visibility infrastructure |
US9967150B2 (en) | 2014-04-30 | 2018-05-08 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods and apparatuses for implementing network visibility infrastructure |
US10404459B2 (en) * | 2017-02-09 | 2019-09-03 | Intel Corporation | Technologies for elliptic curve cryptography hardware acceleration |
EP3796145A1 (en) * | 2019-09-19 | 2021-03-24 | MyScript | A method and correspond device for selecting graphical objects |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS649548A (en) | 1987-07-01 | 1989-01-12 | Nec Corp | Cache memory device |
JPH01273132A (ja) | 1988-04-25 | 1989-11-01 | Nec Corp | マイクロプロセッサ |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
JP3106998B2 (ja) * | 1997-04-11 | 2000-11-06 | 日本電気株式会社 | メモリ付加型プログラマブルロジックlsi |
JPH11143774A (ja) | 1997-11-06 | 1999-05-28 | Hitachi Ltd | キャッシュ制御機構 |
US6438737B1 (en) * | 2000-02-15 | 2002-08-20 | Intel Corporation | Reconfigurable logic for a computer |
US6417691B1 (en) * | 2000-08-29 | 2002-07-09 | Motorola, Inc. | Communication device with configurable module interface |
JP2002163150A (ja) * | 2000-11-28 | 2002-06-07 | Toshiba Corp | プロセッサ |
-
2002
- 2002-07-11 WO PCT/JP2002/007076 patent/WO2003007155A1/ja not_active Application Discontinuation
- 2002-07-11 CN CNA028137671A patent/CN1526100A/zh active Pending
- 2002-07-11 CA CA002451003A patent/CA2451003A1/en not_active Abandoned
- 2002-07-11 JP JP2003512850A patent/JP4188233B2/ja not_active Expired - Lifetime
- 2002-07-11 AU AU2002318809A patent/AU2002318809B2/en not_active Ceased
- 2002-07-11 KR KR1020047000422A patent/KR100912437B1/ko active IP Right Grant
- 2002-07-11 US US10/363,885 patent/US6868017B2/en not_active Expired - Lifetime
- 2002-07-11 TW TW091115475A patent/TW577020B/zh not_active IP Right Cessation
- 2002-07-11 EP EP02745985A patent/EP1416388A4/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013512511A (ja) * | 2009-11-25 | 2013-04-11 | ハワード ユニバーシティ | 複数メモリ特定用途向けデジタル信号プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
EP1416388A4 (en) | 2006-02-08 |
WO2003007155A1 (fr) | 2003-01-23 |
US6868017B2 (en) | 2005-03-15 |
US20040015613A1 (en) | 2004-01-22 |
CA2451003A1 (en) | 2003-01-23 |
JPWO2003007155A1 (ja) | 2004-11-04 |
KR20040017291A (ko) | 2004-02-26 |
EP1416388A1 (en) | 2004-05-06 |
KR100912437B1 (ko) | 2009-08-14 |
CN1526100A (zh) | 2004-09-01 |
TW577020B (en) | 2004-02-21 |
AU2002318809B2 (en) | 2008-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4188233B2 (ja) | 集積回路装置 | |
JP3853736B2 (ja) | ユーザによる構成可能なオンチップメモリシステム | |
KR101873484B1 (ko) | 신속 재구성가능 회로 및 고-대역폭 메모리 인터페이스를 사용한 컴퓨터 아키텍처 | |
Li et al. | Configuration caching management techniques for reconfigurable computing | |
US7793038B2 (en) | System and method for programmable bank selection for banked memory subsystems | |
EP3447647B1 (en) | Handling memory requests | |
JP3801214B2 (ja) | 再構成可能な演算システム | |
JP2009514070A (ja) | 局所キャッシュとしてシフトレジスタを使用する論理シミュレーション用のハードウェア加速システム | |
US6128244A (en) | Method and apparatus for accessing one of a plurality of memory units within an electronic memory device | |
JP4497184B2 (ja) | 集積装置およびそのレイアウト方法、並びにプログラム | |
US6988167B2 (en) | Cache system with DMA capabilities and method for operating same | |
US6101589A (en) | High performance shared cache | |
US6427189B1 (en) | Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline | |
US6606684B1 (en) | Multi-tiered memory bank having different data buffer sizes with a programmable bank select | |
JP2005018626A (ja) | 並列処理システムの生成方法 | |
JP5136974B2 (ja) | プロセッサの異種クラスターを有するハードウエアエミュレーションシステム | |
JPH1055311A (ja) | インターリーブ式キャッシュ | |
US7827023B2 (en) | Method and apparatus for increasing the efficiency of an emulation engine | |
US11475287B2 (en) | Managing control data | |
JP3952856B2 (ja) | キャッシュ方法 | |
JPH0438014B2 (ja) | ||
JPH1055310A (ja) | キャッシュ・サブアレイ・アービトレーションの改良 | |
US20050038961A1 (en) | Cache and memory architecture for fast program space access | |
Hussain et al. | PVMC: Programmable vector memory controller | |
TWI825853B (zh) | 可重組態資料處理器的缺陷修復電路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080527 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080725 |
|
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: 20080815 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080910 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4188233 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130919 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |