JPWO2008026273A1 - Dmaコントローラ - Google Patents

Dmaコントローラ Download PDF

Info

Publication number
JPWO2008026273A1
JPWO2008026273A1 JP2008531929A JP2008531929A JPWO2008026273A1 JP WO2008026273 A1 JPWO2008026273 A1 JP WO2008026273A1 JP 2008531929 A JP2008531929 A JP 2008531929A JP 2008531929 A JP2008531929 A JP 2008531929A JP WO2008026273 A1 JPWO2008026273 A1 JP WO2008026273A1
Authority
JP
Japan
Prior art keywords
circuit
reconfigurable
configuration information
data
configuration
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.)
Pending
Application number
JP2008531929A
Other languages
English (en)
Inventor
廣瀬 佳生
佳生 廣瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008026273A1 publication Critical patent/JPWO2008026273A1/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Logic Circuits (AREA)

Abstract

本発明の課題は、半導体集積回路に実装されるDMAコントローラのデータ転送効率を高めることである。DMAコントローラの内部に設けられる再構成可能な回路51は、再構成可能な組み合わせ回路52と、回路の構成情報を記憶する構成情報メモリ53とを有する。構成情報メモリ53には、構成情報を指定するCM制御信号が制御回路から与えられる。DMAコントローラは、プロセッサから転送された入力データを内部の再構成可能な組み合わせ回路52で処理し、処理結果のデータをプロセッサに転送する。

Description

本発明は、半導体集積回路に実装されるDMAコントローラに関する。
ユーザのアプリケーションに適したシステムLSIを開発する方法としてプロセッサで全ての処理を実行させる方法と、アプリケーションが要求する処理を実行する回路をプロセッサと別に設ける方法とがある。何れの方法でもシステムLSI内部でのデータ転送はDMA(Direct Memory Access)コントローラが行うことでプロセッサの処理負担を軽減している。
図24A、図24Bは、従来のシステムLSIのブロック図である。図24Aは、プロセッサで全ての処理を実行する場合のシステムLSIのブロック図であり、図24Bはアプリケーションの処理の一部を行う専用のハードウェアを設けたシステムLSIのブロック図である。
図24AのシステムLSI11は、プロセッサコア12と、内部メモリ13と、メモリコントローラ14と、DMAコントローラ15とを有する。このシステムLSI11は、プロセッサコア12がアプリケーションの要求する処理を全て実行する。メモリコントローラ14は、外部メモリ16へのデータの書き込み及び読み出しの制御を行う。
図24BのシステムLSI21は、プロセッサコア12とメモリ13とメモリコントローラ14とDMAコントローラ15と、複数のハードウェア回路17a〜17nとを有する。このシステムLSI21は、アプリケーションの要求する処理の一部を専用のハードウェア17a〜17nが分担して実行する。
特許文献1には、複数の演算器を変更可能に接続する接続経路と、パラメータ設定により処理仕様を変更できる専用ハードウェアとプロセッサとからなる集積回路について記載されている。
特許文献2には、再構成可能な論理デバイスへのデータ転送を汎用コントローラの命令セットを用いて行えるようにすることが記載されている。
図24Bに示すハードウェア回路17a〜17nの代わりに再構成可能な論理回路を用いることも行われている。しかしながら、再構成可能な論理回路にデータ処理を行わせるためには、DMAコントローラ15がデータを再構成可能な回路に転送し、再構成可能な論理回路で処理されたデータをDMAコントローラ15がプロセッサコア12に転送する必要がありデータ転送に時間を要してしまう。
特開2004−40188号公報 特開平11−307725号公報
本発明の課題は、半導体集積回路に実装されるDMAコントローラのデータ転送効率を高めることである。
本発明のDMAコントローラは、プロセッサを有する半導体集積回路に搭載されたDMAコントローラにおいて、回路構成を指定する構成情報を記憶する構成情報記憶回路と、前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備える。
この発明によれば、DMAコントローラの内部に再構成可能な回路を設けることで、入力データに対してDMAコントローラの外部の回路で処理を行うためにデータをDMA転送する処理、あるいは処理結果のデータをDMA転送する処理が不要となりDMA転送の効率を高めることができる。
上記の発明において、入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に入力させ、前記構成情報記憶回路に記憶されている第2の構成情報により定まる回路構成に基づいて前記中間データに対して第2の処理を行う。
このように構成することで、回路構成の異なる複数のハードウェア回路を設ける必要が無くなるので再構成可能な回路の回路規模を小さくできる。
上記の発明において、前記構成情報記憶回路から前記再構成可能な回路に出力させる前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する。
このように構成することで制御回路が、構成情報記憶回路から出力される構成情報を変更することで再構成可能な回路の回路構成を任意に変更できる。
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、前記複数の再構成可能な組み合わせ回路の出力の内の1つを選択して出力する出力選択回路を有する。
このように構成することで複数ステージの再構成可能な組み合わせ回路のどのステージの出力データを外部に出力するかを任意に選択することができる。これにより入力データに応じて必要なステージ数の処理を施すことができる。
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して先頭の再構成可能な回路に出力する入力選択回路と、前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える。
このように構成することで複数ステージの再構成可能な組み合わせ回路のどのステージの出力データを外部に出力するかを任意に選択することができる。また、最終ステージの再構成可能な組み合わせ回路の出力を先頭のステージに帰還して処理を繰り返すことで、再構成可能な回路の回路規模を大きくせずに複数の処理サイクルの処理を実現できる。
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、最終ステージの再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える。
このように構成することで中間データを中間バッファに保存した後、再構成可能な組み合わせ回路の回路構成を変更して中間データに対して所望の処理を施すことができる。これにより再構成可能な回路の回路規模を大きくせずに複数の処理サイクルの処理を実現できる。
上記の発明において、前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、最終ステージの前記再構成可能な組み合わせ回路の出力データを入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する。
このように構成することで再構成可能な組み合わせ回路からデータ出力されない空きのサイクルが発生しないので再構成可能な回路のデータの処理効率を高めることができる。
実施の形態のシステムLSIの構成を示す図である。 実施の形態のDMAコントローラの構成を示す図である。 第1の実施の形態の再構成可能な回路のブロック図である。 第1の実施の形態のタイミングチャートである。 第2の実施の形態の再構成可能な回路のブロック図である。 第2の実施の形態のタイミングチャートである。 第3の実施の形態の再構成可能な回路のブロック図である。 第3の実施の形態のタイミングチャートである。 第4の実施の形態の再構成可能な回路のブロック図である。 第4の実施の形態のタイミングチャートである。 第5の実施の形態の再構成可能な回路のブロック図である。 第5の実施の形態のタイミングチャートである。 第6の実施の形態の再構成可能な回路のブロック図である。 第7の実施の形態の再構成可能な回路のブロック図である。 制御回路の構成を示す図である。 CM制御信号生成回路の回路図である。 sel制御信号生成回路の回路図である。 sel2制御信号生成回路の回路図である。 update信号生成回路の回路図である。 updateタイミング信号生成回路の回路図である。 制御回路のタイミングチャートである。 画像処理用LSIのブロック図である。 実施の形態の画像処理用LSIのブロック図である。 従来のシステムLSIのブロック図である。 従来のシステムLSIのブロック図である。
以下、本発明の好適な実施の形態を図面を参照して説明する。図1は、実施の形態のシステムLSI31の構成を示す図である。
システムLSI31は、プロセッサコア32と、内部メモリ33と、外部メモリ36のアクセスを制御するメモリコントローラ34と、再構成可能な回路を有するDMAコントローラ(DMAC)35とを有する。プロセッサコア32、内部メモリ33、メモリコントローラ34及びDMAコントローラ35はバス37により接続されている。
図2は、DMAコントローラ35の構成を示す図である。DMAコントローラ35は、バスインターフェース回路41と制御レジスタ群42と制御回路43と複数のバッファ44a〜44nと再構成可能回路45とからなる。再構成可能な回路45は、例えば、複数の演算回路、あるいは論理回路とそれらの回路の接続を変更する切り換え回路等からなり、回路の組み合わせを変更することで入力データに対して異なる処理を実行することができる。
制御レジスタ群42は、DMA転送に必要な情報を記憶するレジスタであり、チャネル毎のDMAの転送元アドレス、転送先アドレス、データの転送サイズ、後述する構成情報メモリのアドレスを更新する周期、出力選択回路の選択信号等を記憶する複数のレジスタからなる。
バッファ44a〜44nは、DMA転送を行う入力データを保存するメモリであり、チャネル毎に設けても良いし、チャネル間で共用するようにしても良い。
制御回路43は、制御レジスタ群42に格納されている情報に基づいて再構成可能な回路45の構成を変更する各種の制御信号を出力する。
図3は、DMAコントローラ35内に設けられる、第1の実施の形態の再構成可能な回路51のブロック図である。
再構成可能な回路51は、再構成可能な組み合わせ回路52と、再構成可能な組み合わせ回路52の回路構成を決める構成情報を記憶する構成情報メモリ(CM:コンフィギュレーションメモリ)53と、再構成可能な組み合わせ回路52から出力されるデータを保存する出力バッファ54とを有する。
再構成可能な組み合わせ回路52は、出力段にフリップフロップ(FF)52aを有しており、処理結果のデータはフリップフロップ52aに保持される。構成情報メモリ53は、制御回路43から構成情報を指定するCM制御信号(アドレス情報)が与えられ、そのCM制御信号で指定される構成情報を再構成可能な組み合わせ回路52に出力する。クロック信号clkは、処理サイクルに同期した信号であり、このクロック信号clkの立ち上がりのタイミングで再構成可能な組み合わせ回路52は入力データをラッチする。
次に、上記の第1の実施の形態の再構成可能な回路51の動作を、図4のタイミングチャートを参照して説明する。
構成情報メモリ53には再構成可能な組み合わせ回路52の回路構成を決める構成情報が予め複数記憶されており、その構成情報に基づいて再構成可能な組み合わせ回路52の回路構成が一義的に決められる。
図4のタイミングチャートを参照して、バスインターフェース回路41から入力データ2と入力データ3が連続して入力する場合の回路動作を説明する。
バッファ44a(図4のバッファ1)から入力データ2が出力されると、再構成可能な組み合わせ回路52においてその入力データ2に対して所定の回路構成の処理が行われる。処理結果のデータ(処理データ2)はフリップフロップ52aに保持され、出力バッファ54に出力される。
同様に、バッファ44aから入力データ3が出力されると、再構成可能な組み合わせ回路52においてその入力データ3に対して所定の回路構成の処理が行われる。処理結果のデータ(処理データ3)はフリップフロップ52aに保持され、出力バッファ54に出力される。出力バッファ54に保存された処理データ2と処理データ3は、バスインターフェース回路41を介してプロセッサコア32等に出力される。
この第1の実施の形態は、DMAコントローラ51の内部に再構成可能な回路51を設けているので、データ処理のためにDMAコントローラ35の外部の回路にデータを転送するDMA転送処理、あるいは外部の回路で処理したデータをプロセッサコア32に転送するDMA転送処理が不要となりデータの転送時間を短縮してDMA転送の転送効率を高めることができる。
次に、図5は、第2の実施の形態の再構成可能な回路61のブロック図である。第2の実施の形態の特徴は、再構成可能な回路61の入力側に入力選択回路62を設けた点である。以下の説明では、図3の再構成可能な回路51と同じブロックには同じ符号を付けてそれらの説明は省略する。
入力選択回路62は、入力データと再構成可能な組み合わせ回路52の出力の一方を選択して再構成可能な組み合わせ回路52に出力する。この選択動作は制御回路43から出力されるsel制御信号に従って行われる。
入力選択回路62を設けることで、ある回路構成の再構成可能な組み合わせ回路52の処理結果を入力側に帰還し、その後、再構成可能な組み合わせ回路52の回路構成を変更して処理途中のデータに対して別の処理を施すことができる。すなわち、再構成可能な組み合わせ回路52の構成を変更することで1つのデータに対して異なるハードウェア構成の回路の処理を実行することができるので、それぞれの別の構成の回路を設ける場合に比べて再構成可能な回路61の回路規模を小さくできる。
次に、上記の第2の実施の形態の再構成可能な回路61の動作を、図6のタイミングチャートを参照して説明する。
以下、1つの入力データに対する処理が2サイクルかかる場合(処理レーテンシが2)について説明する。
制御回路43は、「構成1」を指定するCM制御信号(メモリのアドレスを指定する情報)を構成情報メモリ53に出力する。最初のサイクル(第1サイクル)では、再構成可能な組み合わせ回路52の回路構成は「構成1」の状態に設定されており、再構成可能な組み合わせ回路52は、入力データ1に対して「構成1」の回路による処理を実行する。
制御回路43は、次のサイクル(第2サイクル)で構成情報メモリ53に「構成2」を指定するCM制御信号を出力すると共に、sel制御信号をイネーブルにする。sel制御信号がイネーブルになると、入力選択回路62は、再構成可能な組み合わせ回路52の出力データ(中間データ1)を選択して再構成可能な組み合わせ回路52に出力する。従って、第2サイクルにおいて、再構成可能な組み合わせ回路52は、中間データ1に対して「構成2」の回路による処理を実行する。
このように再構成可能な組み合わせ回路52で処理を施した中間データを入力側に帰還し、回路構成を変更することで1つの入力データに対して異なる回路構成の処理を実行することができる。
入力データ2と入力データ3が連続して入力する場合も同様である。入力データ2と入力データ3に対して再構成可能な組み合わせ回路52の構成を、それぞれ「構成1」と「構成2」の2つの状態に変化させる。具体的には、入力データ2に対して「構成1」の再構成可能な組み合わせ回路52で処理を行った後、再構成可能な組み合わせ回路52の回路構成を「構成2」に変更し、1回目の処理結果のデータ(中間データ2)に対して「構成2」の処理を行う。入力データ3についても同様の処理を行う。この結果、入力データ2,3をそれぞれ「構成1」の回路と「構成2」の回路で処理したデータが得られる。
上述した第2の実施の形態によれば、入力データに対して複数の処理を施す必要がある場合に、再構成可能な組み合わせ回路52の回路構成を変更することで、入力データの必要な処理回数より少ない数の再構成可能な組み合わせ回路52で処理を実現できる。これにより、入力データに対して要求される処理を実現するための再構成可能な組み合わせ回路52の回路規模を少なくして集積回路上のデバイス面積を小さくできる。
また、DMAコントローラ35の内部に再構成可能な回路61を設けることで、入力データに対して外部の回路で処理を行うためにデータをDMA転送する処理、あるいは外部の回路の処理結果のデータをDMA転送する処理が不要となり、DMAコントローラ35におけるデータのDMA転送効率を高めることができる。
次に、図7は、第3の実施の形態の再構成可能な回路71のブロック図である。第3の実施の形態は、再構成可能な組み合わせ回路をn段(図7では3段)縦続に接続して入力データを連続して処理できるようにしたものである。
図7に示すように再構成可能な回路71は、縦続接続されたステージ1の再構成可能な組み合わせ回路72と、ステージ2の再構成可能な組み合わせ回路73と、ステージ3の再構成可能な組み合わせ回路74と、それぞれの再構成可能な組み合わせ回路72〜74の構成情報を記憶する構成情報メモリ75〜77と、出力選択回路78とからなる。
出力選択回路78は、ステージ1の再構成可能な組み合わせ回路72の出力と、ステージ2の再構成可能な組み合わせ回路73の出力と、ステージ3の再構成可能な組み合わせ回路74の出力の内の1つを選択して出力する。出力選択回路78の選択動作は、制御回路43から出力されるsel2制御信号に従って行われる。
第2の実施の形態のように1つの再構成可能な組み合わせ回路52の構成を変更して入力データに対する処理を行うようにした場合、入力データの処理レーテンシが大きいと、1つの入力データに対する処理が終了するまで次の入力データを再構成可能な組み合わせ回路52に入力させることができなくなる。例えば、処理レーテンシが2(2サイクルの処理時間がかかるデータ)の処理を実行する場合、図5の再構成可能な回路61は、2サイクルに1回しか処理結果のデータを出力できないのでスループットが0.5になる。
これに対して第3の実施の形態の再構成可能な回路71は、処理レーテンシが2の処理を実行する場合、ステージ2の再構成可能な組み合わせ回路73で最初の入力データに対して2サイクル目の処理を実行しているときに、同時にステージ1の再構成可能な組み合わせ回路72で次の入力データの処理を実行することができる。従って処理レーテンシが2以上の処理についても再構成可能な回路71から毎サイクル処理結果のデータを出力することができるのでスループットは1となる。
以下、処理レーテンシが「2」の処理を施す入力データ1〜4が連続して入力する場合の再構成可能な回路71の動作を、図8のタイミングチャートを参照して説明する。
ステージ1の再構成可能な組み合わせ回路72の回路構成として、例えば「構成1」が指定され、ステージ2の再構成可能な組み合わせ回路73の回路構成として「構成2」が指定されているものとする。
最初のサイクル(第1サイクル)で、入力データ1がステージ1の再構成可能な組み合わせ回路72に入力すると、再構成可能な組み合わせ回路72は、入力データ1に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ1)は、次のサイクル(第2サイクル)の期間フリップフロップ72aに保持される。
第2サイクルに、入力データ2がステージ1の再構成可能な組み合わせ回路72に入力すると、再構成可能な組み合わせ回路72は、入力データ2に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ2)は、次のサイクル(第3サイクル)の期間フリップフロップ72aに保持される。
第2サイクルに、ステージ2の再構成可能な組み合わせ回路73は、そのときフリップフロップ72aに保持されている中間データ1に対して「構成2」のハードウェア回路の処理を実行する。このときの処理結果のデータ(処理データ1)は、次のサイクル(第3サイクル)の期間フリップフロップ73aに保持される。
第3サイクルに、入力データ3がステージ1の再構成可能な組み合わせ回路72に入力すると、再構成可能な組み合わせ回路72は、入力データ3に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ3)は、次のサイクル(第4サイクル)の期間フリップフロップ74aに保持される。
第3サイクルに、ステージ2の再構成可能な組み合わせ回路73は、そのときフリップフロップ72aに保持されている中間データ2に対して「構成2」のハードウェア回路の処理を実行する。このときの処理結果のデータ(処理データ2)は、次のサイクル(第4サイクル)の期間フリップフロップ73aに保持される。
この場合、出力選択回路78には、ステージ2の再構成可能な組み合わせ回路73の出力を選択するsel2制御信号が与えられているので、出力選択回路78は、フリップフロップ73aに保持される処理データ1を選択して出力する。そして、次のサイクル(第4サイクル)に、バスインターフェース回路41から処理データ1がデータバス37に出力される。
第4サイクルに、入力データ4がステージ1の再構成可能な組み合わせ回路72に入力すると、再構成可能な組み合わせ回路72は、入力データ4に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ4)は、次のサイクル(第5サイクル)の期間フリップフロップ72aに保持される。
第4サイクルに、ステージ2の再構成可能な組み合わせ回路73sは、そのときフリップフロップ72aに保持されている中間データ3に対して「構成2」のハードウェア回路の処理を実行する。このときの処理結果のデータ(処理データ3)は、次のサイクル(第5サイクル)の期間フリップフロップ73aに保持される。
第4サイクルに、出力選択回路78は、そのときステージ2のフリップフロップ73aに保持されている処理データ2を選択して出力する。そして、次のサイクルに、バスインターフェース回路41からその処理データ2がデータバス37に出力される。以下同様に、第5サイクルに処理データ3が出力選択回路78から出力され、第6サイクルに処理データ4が出力選択回路78から出力される。
上述した第3の実施の形態によれば、再構成可能な組み合わせ回路72〜73を複数段縦続に接続して処理を並行して行うことで、処理レーテンシが2サイクル以上のデータに対してもデータを毎サイクル入出力することができる。これにより再構成可能な回路71の処理のスループットを向上させることができる。
また、DMAコントローラ35の内部に再構成可能な回路71を設けることで、入力データを集積回路内部の他の回路で処理するためにDMA転送する処理、あるいは処理結果のデータをDMA転送する処理が不要となり、DMAコントローラ35のデータのDMA転送の転送効率を高めることができる。
次に、図9は、第4の実施の形態の再構成可能な回路81のブロック図である。この第4の実施の形態は、再構成可能な組み合わせ回路82、83を縦続接続し(図9では2段)、最終ステージの再構成可能な組み合わせ回路83の出力を入力側に帰還し、同時に回路構成を変更することで、1つのデータに対して処理ループ毎に異なる回路構成の処理を実行できるようにしたものである。
図9に示す再構成可能な回路81は、縦続接続されたステージ1の再構成可能な組み合わせ回路82と、ステージ2の再構成可能な組み合わせ回路83と、それぞれの再構成可能な組み合わせ回路82、83の構成情報を記憶する構成情報メモリ84、85と、入力選択回路86と、出力選択回路87と、中間バッファ88とからなる。ステージ2の再構成可能な組み合わせ回路83の出力は、直接または中間バッファ88を介して入力選択回路86に帰還されている。
入力選択回路86は、入力データと中間バッファ88の出力とステージ2の再構成可能な組み合わせ回路83の出力の内の1つを選択してステージ1の再構成可能な組み合わせ回路82に出力する。入力選択回路86は、制御回路43から出力されるsel制御信号に基づいて選択動作を行う。
中間バッファ88は、ステージ2の再構成可能な組み合わせ回路83で処理された複数の中間データを記憶するメモリであり、記憶した中間データを入力選択回路86に出力する。
出力選択回路87は、ステージ1の再構成可能な組み合わせ回路82の出力と、ステージ2の再構成可能な組み合わせ回路83の出力の一方を選択して出力する。出力選択回路87の選択動作は、制御回路43から出力されるsel2制御信号に従って行われる。
次に、第4の実施の形態の再構成可能な回路81の動作を、図10のタイミングチャートを参照して説明する。
図10のタイミングチャートは、処理レーテンシが「4」の入力データ1〜4が連続して入力する場合のバスインターフェース回路41の出力と、バッファ44a〜44dの出力と、ステージ1及びステージ2のフリップフロップ82a、83aの出力と、中間バッファ88の出力を示している。
初期状態では、先頭のステージ1と最終ステージ2の再構成可能な組み合わせ回路82、83は「構成1」の回路構成が選択されているものとする。
第1サイクルに、入力データ1がステージ1の再構成可能な組み合わせ回路82に入力すると、再構成可能な組み合わせ回路82は、入力データ1に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ1)は、次のサイクル(第2サイクル)の期間フリップフロップ82aに保持される。
次の第2サイクルに、入力データ2がステージ1の再構成可能な組み合わせ回路82に入力すると、再構成可能な組み合わせ回路82は、入力データ2に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ2)は、次のサイクル(第3サイクル)の期間フリップフロップ82aに保持される。
第2サイクルに、ステージ2の再構成可能な組み合わせ回路83は、そのとき前段のフリップフロップ82aに保持されている中間データ1に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ1’)は、次のサイクル(第3サイクル)の期間フリップフロップ83aに保持される。
第3サイクルに、入力データ3がステージ1の再構成可能な組み合わせ回路82に入力すると、再構成可能な組み合わせ回路82は、入力データ3に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ3)は、次のサイクル(第4サイクル)の期間フリップフロップ82aに保持される。
第3サイクルに、ステージ2の再構成可能な組み合わせ回路83は、そのとき前段のフリップフロップ82aに保持されている中間データ2に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ2’)は、次のサイクル(第4サイクル)の期間フリップフロップ82aに保持される。
第4サイクルに、入力データ4がステージ1の再構成可能な組み合わせ回路82に入力すると、再構成可能な組み合わせ回路82は、入力データ4に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ4)は、次のサイクル(第5サイクル)の期間フリップフロップ82aに保持される。
第4サイクルに、ステージ2の再構成可能な組み合わせ回路83は、そのとき前段のフリップフロップ82aに保持されている中間データ3に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ3’)は、次のサイクル(第5サイクル)の期間フリップフロップ83aに保持される。
第5サイクルには、ステージ1の再構成可能な組み合わせ回路82にはデータが入力されない。ステージ2の再構成可能な組み合わせ回路83は、そのとき前段のフリップフロップ82aに保持されている中間データ4に対して「構成1」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ4’)は、次のサイクル(第6サイクル)の期間フリップフロップ83aに保持される。
なお、ステージ2の再構成可能な組み合わせ回路83の出力データである中間データ1’、中間データ2’、中間データ3’、中間データ4’は順に中間バッファ88に保存される。
入力データ4に対するステージ2での処理が終了した後、すなわち、第6サイクルの先頭の時刻t1に再構成可能な組み合わせ回路82,83の回路構成を「構成1」から「構成2」に同時に変更する。このとき、制御回路43は、入力選択回路86に中間バッファ88の出力を選択させるsel制御信号を出力する。従って、第6サイクル以降は、入力選択回路86で中間バッファ88に保存されている中間データが選択され、選択された中間データがステージ1の再構成可能な組み合わせ回路82に入力する。
第6サイクルに、ステージ1の再構成可能な組み合わせ回路82は、中間バッファ88から出力される中間データ1’に対して「構成2」のハードウェア回路の処理を実行する。このとき、ステージ1の再構成可能な組み合わせ回路82からデータは出力されず、この期間はステージ1の出力データの空きの期間となる。
第7サイクルに、ステージ1の再構成可能な組み合わせ回路82は、中間バッファ88から出力される中間データ2’に対して「構成2」のハードウェア回路の処理を実行する。このときの処理結果のデータ(中間データ2'')は、次のサイクル(第8サイクル)の期間ステージ1のフリップフロップ82aに保持される。
第6サイクルにおいてステージ1の出力データが存在しなかったことから、同じ第6サイクルにおいてステージ2の再構成可能な組み合わせ回路83は何も処理を実行しないことになる。従って、次の第7サイクルの期間、ステージ2の再構成可能な組み合わせ回路83からはデータが出力されず空き期間となる。
第8サイクル、第9サイクルに、中間バッファ88からステージ1の再構成可能な組み合わせ回路82に中間データ3’、中間データ4’が出力され、それらの中間データに対して「構成2」のハードウェア回路の処理が実行される。さらに、ステージ2の再構成可能な組み合わせ回路83において、ステージ1の処理結果のデータに対して「構成2」のハードウェア回路の処理が実行される。
以上のような回路動作により処理レーテンシ4の入力データ1〜4に対する処理を2個の再構成可能な組み合わせ回路82、83を用いて実現することができる。
上述した第4の実施の形態によれば、再構成可能な回路81を複数のステージで構成し、最終ステージのデータを先頭のステージに帰還させることで処理レーテンシの大きい処理を少ないハードウェア構成の回路で処理することができる。これにより、半導体集積回路上に形成する再構成可能な回路81のデバイス面積を小さくできる。また、1回目と2回目で各ステージの回路構成を変更することで同一のデータに対して異なるハードウェア回路の処理を少ない回路規模で実現できる。
また、DMAコントローラ35の内部に再構成可能な組み合わせ回路81を設けることで、入力データを集積回路内部の別の回路で処理するためにデータをDMA転送し、あるいは処理結果のデータをDMA転送する必要が無くなるので、データのDMA転送の転送効率を高めることができる。
第4の実施の形態では、最終ステージの出力を先頭のステージに戻しているが、出力選択回路の出力を先頭のステージに帰還させる経路を設け、ステージ数と入力データの処理レーテンシに応じて出力選択回路87で選択された途中のステージの出力データを先頭のステージに戻すようにしても良い。
ところで、上記の第4の実施の形態では、最後の入力データに対する最終ステージでの処理が終了した後、各ステージのハードウェア構成を同時に変更した後、中間バッファ88に保存した処理途中のデータ(中間データ)を先頭のステージに再度入力している。そのためデータが出力されない空きのサイクルが発生している。この空きのサイクルは中間データを先頭のステージに再入力するたびに発生し、ステージ数が多くなるほど空きのサイクル数も大きくなる。再構成可能な回路81がn段のステージで構成されているとすると、(n−1)サイクル分の空きサイクルが発生する。
この空きサイクルの問題は、再構成可能な回路でチャネル毎に異なる処理を実行させる場合にも発生する。例えば、複数のステージからなる再構成可能な回路において、チャネル1のデータに対して「構成1」の処理を実行し、チャネル2のデータに対して「構成2」の処理を実行する場合、チャネル1のデータとチャネル2のデータが連続して入力する場合でも、チャネル1のデータに対する最終ステージの処理が終了しないと、ステージ全体のハードウェア構成を変更できない。従って、この場合も、ステージ数をnとすると、(n−1)サイクル分の空きが発生してしまう。
図11は、上記の空きサイクルの問題を解決する本発明の第5の実施の形態の再構成可能な回路91のブロック図である。
この第5の実施の形態は、再構成可能な回路91の各ステージの回路構成を順に変更することで空きサイクルの発生を防止している。
図11に示す再構成可能な回路91は、パイプライン構成の4ステージの再構成可能な組み合わせ回路92、93、94、95と、構成情報を記憶する4個の構成情報メモリ96、97、98、99と、3個のフリップフロップ100,101,102と、入力選択回路103と、出力選択回路104とからなる。フリップフロップ100、101、102は、CM制御信号を1サイクル(処理サイクル)の周期に同期したタイミングで順にラッチする。再構成可能な組み合わせ回路92〜95は、処理結果のデータを保持するフリップフロップ92a〜95aを有する。
次に、第5の実施の形態の再構成可能な回路91の動作を、図12のタイミングチャートを参照して説明する。
図12のタイミングチャートは、処理レーテンシが「4」のチャネル1の入力データ1〜4とチャネル2の入力データ1〜4が連続して入力する場合に、チャネル1の入力データ1〜4に対してステージ1〜4で「構成1」の処理を行い、チャネル2の入力データ1〜4に対してステージ1〜4で「構成2」の処理を行う場合の動作タイミングを示している。
図9に示す第4の実施の形態の再構成可能な回路81で上記の2チャネルの入力データに対する処理を行うと、チャネル1の4番目のデータに対する最終ステージでの処理が終わるまで各ステージの回路構成を変更することができない。そのためチャネル2の入力データを再構成可能な回路81に入力するまで3サイクル待たされ、その分空きサイクルが発生する。
これに対してこの第5の実施の形態においては、チャネル1の最後の入力データ4がステージ1に入力して、その入力データ4に対するステージ1における処理が終了して次のサイクルが始まる時刻t1(図12に示す時刻t1)に、ステージ1の再構成可能な組み合わせ回路92の回路構成を「構成1」から「構成2」に変更する。このとき、他のステージ2〜4の回路構成は変更しない。そして、次の第2サイクルの開始時刻t2に、ステージ2の再構成可能な組み合わせ回路93の回路構成を「構成2」に変更する。さらに、次の第3サイクルの開始時刻t3にステージ3の再構成可能な組み合わせ回路94の回路構成を「構成2」に変更する。最後に、第4サイクルの開始時刻t4に、ステージ4の再構成可能な組み合わせ回路95の回路構成を「構成2」に変更する。各ステージの回路構成の変更は、構成情報を指定するCM制御信号を、図11のフリップフロップ100、101、102に順にシフトさせることで実現している。
時刻t1に制御回路43から「構成2」を指定するCM制御信号(アドレス)が出力されると、構成情報メモリ96からそのCM制御信号で指定されるアドレスの構成情報がステージ1の再構成可能な組み合わせ回路92に出力される。その結果、ステージ1の再構成可能な組み合わせ回路92の回路構成は「構成2」に変更される。
時刻t1を開始時刻とする第1サイクルに、ステージ1の再構成可能な組み合わせ回路92は、バッファ44i(バッファ44a〜44nの中の特定のバッファを指すものとする)から出力されるチャネル2の1番目の入力データ1に対して「構成2」のハードウェア回路の処理を実行する。このときの処理結果のデータ(図12に斜線で示すデータD1)は、次のサイクル(第2サイクル)の期間ステージ1のフリップフロップ92aに保持される。
次の第2サイクルの開始時刻t2にフリップフロップ100にCM制御信号がラッチされ、「構成2」を指定するCM制御信号がステージ2の構成情報メモリ97に出力される。その結果、構成情報メモリ97から「構成2」の構成情報が出力され、ステージ2の再構成可能な組み合わせ回路93の回路構成が「構成2」に変更される。
従って、第2サイクルにおいては、ステージ1の再構成可能な組み合わせ回路92は、チャネル2の2番目の入力データ2に対して「構成2」のハードウェア回路の処理を実行し、ステージ2の再構成可能な組み合わせ回路93は、そのときステージ1のフリップフロップ92aに保持されているデータD1に対して「構成2」のハードウェア回路の処理を実行する。ステージ1の処理結果のデータD2とステージ2の処理結果のデータD1は、それぞれ次のサイクル(第3サイクル)の期間、ステージ1のフリップフロップ92aとステージ2のフリップフロップ93aに保持される。
なお、同じ入力データであっても各ステージの出力データは異なる値となるが、説明を簡単にするために図12においては、各ステージの出力データを全てD1、D2、D3、D4で表してある。
次の第3サイクルの開始時刻t3にフリップフロップ101にCM制御信号がラッチされ、「構成2」を指定するアドレスがステージ2の構成情報メモリ98に出力される。その結果、構成情報メモリ98から「構成2」の構成情報が出力され、ステージ3の再構成可能な組み合わせ回路94の回路構成が「構成2」に変更される。
従って、第3サイクルにおいては、ステージ1の再構成可能な組み合わせ回路92は、チャネル2の3番目の入力データ3に対して「構成2」のハードウェア回路の処理を実行し、ステージ2の再構成可能な組み合わせ回路93は、そのときステージ1のフリップフロップ92aに保持されているデータD2に対して「構成2」のハードウェア回路の処理を実行する。さらに、ステージ3の再構成可能な組み合わせ回路94は、そのときステージ2のフリップフロップ93aに保持されているデータD1に対して「構成2」のハードウェア回路の処理を実行する。
次の第4サイクルの開始時刻t4にフリップフロップ102にCM制御信号がラッチされ、「構成2」を指定するアドレスがステージ4の構成情報メモリ99に出力される。その結果、構成情報メモリ99から「構成2」の構成情報が出力され、ステージ4の再構成可能な組み合わせ回路95の回路構成が「構成2」に変更される。
従って、第4サイクルにおいては、ステージ1の再構成可能な組み合わせ回路92は、チャネル2の4番目の入力データ4に対して「構成2」のハードウェア回路の処理を実行し、ステージ2の再構成可能な組み合わせ回路93は、そのときステージ1のフリップフロップ92aに保持されているデータD3に対して「構成2」のハードウェア回路の処理を実行する。また、ステージ3の再構成可能な組み合わせ回路94は、そのときステージ2のフリップフロップ93aに保持されているデータD2に対して「構成2」のハードウェア回路の処理を実行する。さらに、ステージ4の再構成可能な組み合わせ回路95は、そのときステージ3のフリップフロップ94aに保持されているデータD1に対して「構成2」のハードウェア回路の処理を実行する。
上述した第5の実施の形態によれば、再構成可能な組み合わせ回路92〜95の回路構成を順に変更することで、各ステージの再構成可能な組み合わせ回路92〜95の出力に空きサイクルが発生するのを防止できる。これにより再構成可能な回路91の処理効率を高めることができる。
また、DMAコントローラ35の内部に再構成可能な回路91を設けることで、入力データを集積回路上の別の回路にDMA転送し、また処理結果のデータをDMA転送する必要が無くなるのでデータ転送時間を減らすことができる。
次に、図13は、本発明の第6の実施の形態の再構成可能な回路201のブロック図である。
この第6の実施の形態と第5の実施の形態の異なる点は、構成情報メモリ202〜205の構成情報をプロセッサコア32から設定できるようにした点である。
再構成可能な回路201の回路構成を変更するときには、プロセッサコア32がデータバス37に変更したい構成情報を出力し、制御回路43に構成情報の書き込みを指示する。制御回路43は、書き込み対象の構成情報メモリ202〜205の書き込みアドレスをCM制御信号として出力する。最初の書き込みサイクルでは、このCM制御信号で指定される構成情報メモリ202のアドレスにデータバス37に出力された構成情報が書き込まれる。その結果、ステージ1の再構成可能な組み合わせ回路92の回路構成が、そのとき書き込まれた構成情報に対応する構成に変更される。
次のクロック信号clk(サイクルに同期した信号)の立ち上がりのタイミングでCM制御信号がフリップフロップ100にラッチされる。そして、このCM制御信号で指定されるステージ2の構成情報メモリ203の該当するアドレスにプロセッサコア32から出力された構成情報が書き込まれる。その結果、ステージ2の再構成可能な組み合わせ回路93の回路構成が、そのとき構成情報メモリ203に書き込まれた構成情報に基づいて変更される。なお、このときプロセッサコア32からデータバス37に出力する構成情報を変更すれば、ステージ2の回路構成をステージ1の回路構成と異ならせることができる。
次のサイクルの立ち上がりタイミングでCM制御信号がフリップフロップ101にラッチされる。そして、このCM制御信号で指定されるステージ3の構成情報メモリ204の該当するアドレスにそのときデータバス37に出力されている構成情報が書き込まれる。その結果、ステージ3の再構成可能な組み合わせ回路204の回路構成が、そのとき構成情報メモリ204に書き込まれた構成情報に基づいて変更される。
次のサイクルの立ち上がりタイミングでCM制御信号がフリップフロップ102にラッチされる。そして、このCM制御信号で指定されるステージ4の構成情報メモリ205の該当するアドレスにそのときデータバス37に出力されている構成情報が書き込まれる。その結果、ステージ4の再構成可能な組み合わせ回路95の回路構成がそのとき構成情報メモリ205に書き込まれた構成情報に基づいて変更される。
上述した第6の実施の形態によれば、プロセッサコア32が各ステージの構成情報メモリ202〜205の構成情報を個別に設定することができるので、再構成可能な回路201の各ステージの回路構成を個別に変更することができる。これにより、再構成可能な回路201の出力に空きサイクルが生じるのを防止でき、再構成可能な回路201のデータ処理効率を高めることができる。
また、DMAコントローラ35の内部に再構成可能な回路91を設けることで、入力データに対して特定のハードウェアの処理を実行する集積回路の他の回路にデータをDMA転送し、処理結果のデータをDMA転送する必要が無くなるのでデータ転送時間を減らすことができる。
次に、図14は、本発明の第7の実施の形態の再構成可能な回路301のブロック図である。
この第7の実施の形態と第6の実施の形態の異なる点は、構成情報メモリ302〜305への構成情報の書き込みをDMA転送の一部として行うようにした点である。
構成情報メモリ302〜305の構成情報を書き換える場合には、プロセッサコア34は、特定のチャネル(構成情報メモリへの書き込みだけを行う特定のチャネル)、あるいは一般のデータ転送用のチャネルを用いてデータバス37上に構成情報を出力する。プロセッサコア34は、同時に制御回路43に特定の構成情報メモリへの構成情報の書き込みを指示する。
この第7の実施の形態では、制御回路43から各構成情報メモリ302〜305に専用のCM制御信号が出力され、セレクタ103で選択された入力データが各構成情報メモリ302〜305に入力している。従って、任意の構成情報メモリ302〜305の書き込みアドレスを指定するCM制御信号を出力し、プロセッサコア32が入力データとして構成情報を出力することで各構成情報メモリ302〜305に個別に任意の構成情報を書き込むことができる。
例えば、プロセッサコア32が、入力データとして特定の構成情報を出力し、制御回路43が、ステージ1の構成情報メモリ302の書き込みアドレスを指定するCM制御信号を出力することで、ステージ1の構成情報メモリ302に所望の構成情報を書き込むことができる。構成情報メモリ302に書き込まれた構成情報は、ステージ1の再構成可能な組み合わせ回路92に出力され、ステージ1の回路構成がその構成情報に基づいて変更される。他のステージの構成情報メモリ303〜305についても同様にして構成情報の書き込みを行うことができる。
上述した第7の実施の形態によれば、プロセッサコア32がDMA転送を利用して各ステージの構成情報メモリ302〜305に構成情報を個別に書き込むことができる。これにより、各ステージの再構成可能な組み合わせ回路92〜95の構成を順に変更して各ステージで連続してデータを処理することが可能となるので、再構成可能な組み合わせ回路92〜95の出力に空きサイクルが発生するのを防止でき、データ処理効率を高めることができる。
また、DMAコントローラ35の内部に再構成可能な回路301を設けることで、入力データを集積回路の別の回路にDMA転送し、処理結果のデータをDMA転送する必要が無くなるのでデータ転送時間を減らすことができる。
ここで制御回路43の回路構成の一例を、図15と図16〜図20を参照して説明する。
図15は、制御回路43の構成を示す図である。制御回路43は、構成情報メモリの書き込みアドレスを指定するCM制御信号を生成するCM制御信号生成回路401と、入力選択回路103等の選択信号であるsel制御信号を生成するsel制御信号生成回路402と、出力選択回路104等の選択信号であるsel2制御信号を生成するsel2制御信号生成回路403を有する。
また、制御回路43は、再構成可能な回路が利用可能となったことを示すstart信号を生成するstart信号生成回路404と、チャネルCh選択信号を生成するチャネル選択信号生成回路405と、構成情報メモリ84等のアドレスの更新周期を示すupdate信号を生成するupdate信号生成回路406と、update_timing信号を生成するupdateタイミング信号生成回路407と、その他の制御信号生成回路408とを有する。
最初に、図2の制御レジスタ群42について説明する。図2には示していないが制御レジスタ群42には、以下の5種類のレジスタが設けられている。
CMアドレスレジスタCM−ADRS−1〜nには、構成情報メモリ84等の先頭アドレスが保持される。
リピートレジスタRPT−1〜nには、入力データに対して要求された処理を完了するために、再構成可能な回路81等のパイプライン(ステージ)の先頭に処理途中のデータを繰り返し入力するリピート回数が保持される。
出力選択レジスタOUTSEL−1〜nには、出力選択回路87等の選択信号が保持される。
アップデータレジスタUPDATE−1〜nには、構成情報メモリ84等のアドレスを更新する周期が保持される。
転送バースト長レジスタBST−1〜nには、入力データの転送バースト長から「1」を減算した値が保持される。例えば、データのバースト長が「4」であれば、該当する転送バースト長レジスタBST1〜nには「3」が格納される。
以上のことを前提にして制御回路43の個々の回路について説明する。図16は、CM制御信号生成回路401の回路図である。
CM生後信号生成回路401は、セレクタ501と、フリップフロップ502と、加算器503とを有する。セレクタ501は、start信号がイネーブルのとき、チャネル選択信号で指定されるCMアドレスレジスタCM−ADRS−1〜nの値を選択してCMアドレスカウンタ502に出力する。また、セレクタ501は、start信号をインバータINV1で反転した信号がイネーブルのとき、つまりstart信号がディセーブルのとき、フリップフロップ502の出力を加算器503で「+1」した値を選択してフリップフロップ502に出力する。
フリップフロップ502は、ORゲートOR1に入力するstart信号またはupdate信号がイネーブルのとき、サイクルに同期したタイミングでセレクタ501の出力をラッチする。フリップフロップ502は、CMアドレスカウンタとして機能し、start信号がイネーブルになったとき、CMアドレスレジスタCM−ADRS−1〜nの内の特定のCMアドレスレジスタの値を初期値としてロードしてそのアドレスをCM制御信号として出力する。そして、update信号が入力する毎に「+1」したアドレスをCM制御信号として出力する。
図17は、sel制御信号生成回路402の回路図である。sel制御信号生成回路402は、初期値「1」と、減算回路513の出力の一方を選択して出力するセレクタ511と、セレクタ511の出力をsel制御信号の上位ビット(1ビット目)の値として出力するフリップフロップ512と、フリップフロップ512の値が「0」でないか否かを判定する判定回路514と、判定回路514の出力とupdate_timing信号の論理積を取るANDゲートAND1とを有する。また、sel制御信号生成回路402は、転送バースト長レジスタBST−1〜nの中の指定されたレジスタの値を保持するフリップフロップ515と、フリップフロップ515の出力が「0」でないか否かを判定し、判定結果をsel制御信号の下位ビット(0ビット目)の値として出力する判定回路516とを有する。
セレクタ511は、start信号がイネーブルとなったとき「1」を出力し、start信号をインバータINV2で反転した信号がイネーブルとなったとき、つまりstart信号がディセーブルのとき、selフラグの値を「−1」した値を出力する。
フリップフロップ512は、ORゲートOR2を介して入力するstart信号がイネーブルとなったとき初期値「1」をロードしてsel制御信号の上位ビットの値として出力する。初期値「1」をロードした後、update信号がイネーブルになったとき、初期値「1」から「1」を減算した値「0」をsel制御信号の上位ビットの値として出力する。
判定回路516は、フリップフロップ515にラッチされた転送バースト長レジスタBST−1−nの値が「0」以外のとき、つまり転送バースト長が「2」以上のとき、sel制御信号の下位ビットの値として「1」を出力し、転送バースト長が「1」のとき、sel制御信号の下位ビットの値として「0」を出力する。
図18は、sel2制御信号生成回路403の回路図である。sel2制御信号生成回路403は、チャネル選択信号により指定される出力選択レジスタOUTSEL−1〜nの値を保持してsel2制御信号として出力するフリップフロップ521からなる。出力選択レジスタOUTSEL−1〜nには、例えば、図9の出力選択レジスタ87のどの入力を選択するかを決める選択信号が記憶されている。
図19は、update信号生成回路406の回路図である。update信号生成回路406は、チャネル選択信号により指定されるリピートレジスタRPT−1〜nの値と、減算器533でデクリメントされた値の一方を選択して出力するセレクタ531と、セレクタ531の出力をラッチするリピートカウンタ532と、リピートカウンタ532の出力が「0」以外か否かを判定する判定回路534と、判定回路534の出力とupdate_timing信号の論理積を取った信号をupdate信号として出力するANDゲートAND2とからなる。
セレクタ531は、start信号がイネーブルのとき、リピートレジスタRPT−i(RPT1〜nの中の1つ)の値を選択し、start信号をインバータINV3で反転した信号がイネーブルのとき、つまりstart信号がディセーブルのとき、リピートカウンタ532の値をデクリメントした値を選択してリピートカウンタ532に出力する。
リピートカウンタ532は、start信号がイネーブルとなったとき、リピートレジスタRPT−iの値を初期値としてロードする、また、update信号がイネーブルになったとき、減算器533でデクリメントされた値をラッチして出力する。例えば、リピートレジスタRPT−iの値が「1」のときには、start信号がイネーブルとなったとき、リピートカウンタ532に「1」がロードされる。判定回路534は、リピートカウンタ532の値が「0」でないことからハイレベルの信号を出力する。このときupdateタイミング信号がイネーブルとなると、ANDゲートAND2から出力されるupdate信号がイネーブルとなる。
図20は、updateタイミング信号生成回路407の回路図である。updateタイミング信号生成回路407は、アップデートレジスタUPDATE−1〜nの値と、減算器543の出力の一方を選択して出力するセレクタ541と、セレクタ541の出力をラッチするアップデートカウンタ542と、アップデータカウンタ542の出力が「0」でないか否かを判定する判定回路544とを有する。判定回路544は、アップデートカウンタ542の値が「0」でないときハイレベルの信号をORゲートOR4に出力し、アップデートカウンタ542の値が「0」のときローレベルの信号をORゲートOR4に出力する。
また、updateタイミング信号生成回路407は、アップデートカウンタ542の出力をラッチするフリップフロップ545と、アップデートカウンタ542の出力が「0」か否かを判定する判定回路546と、フリップフロップ545の出力が「1」か否かを判定する判定回路547と、判定回路546と判定回路547の出力の論理積を取り、その結果をupdate timing 信号として出力するANDゲートAND3とを有する。
アップデートカウンタ542のイネーブル端子には、start信号とupdate信号のORを取った信号と、判定回路544の出力とがORゲートOR4を介して入力している。従って、アップデートカウンタ542は、start信号またはupdate信号がイネーブルのとき、アップデートレジスタUPDATE−i(UPDATE−1〜nの内の1つ)の値を初期値としてロードする。また、判定回路544からはアップデートカウンタ542のカウント値が「0」となるまでハイレベルの信号が出力されるので、アップデートカウンタ542の値は毎サイクルデクリメントされ、アップデートカウンタ542の値が「0」となったとき、ANDゲートAND3から出力されるupdate_timing信号がイネーブルになる。
ここで、制御回路43の動作を、図21のタイミングチャートを参照して説明する。図21のタイミングチャートは、図9に示す再構成可能な回路81にバースト長が「4」、処理レーテンシが「4」の入力データが入力する場合の動作タイミングを示している。
この場合、処理レーテンシが「4」で、再構成可能な回路81のパイプラインの段数(ステージ数)が「2」であるので、再構成可能な回路81のステージの先頭に処理結果のデータを繰り返し入力するリピート回数は「1」となる。従って、この場合のリピートレジスタRPT−iの値は「1」となる。
また、構成情報メモリ84,85のアドレスを更新する周期は、バースト長が「4」でステージ数が「2」であるので、更新周期を保持するアップデートレジスタUPDATE−iの値は「4+2−2」で「4」となる。また、処理レーテンシが「4」であるので、転送バースト長レジスタBST−iの値は「3」となる。
図20に示すupdateタイミング信号生成回路407のアップデートカウンタ542は、start信号がイネーブルとなったとき、アップデートレジスタUPDATE−iから初期値として「4」をロードし、ロードした値が「0」になるまで毎サイクルデクリメントする。
上記のupdateタイミング信号生成回路407の動作を、図21のタイミングチャートを参照して説明すると、start信号がイネーブルとなったとき、アップデートカウンタ542に初期値「4」がラッチされ、その値がサイクル毎にデクリメントされ、5サイクル目にカウント値が「0」となる。カウント値が「0」になると、判定回路546の出力がハイレベルとなり、このときフリップフロップ545には1サイクル前のアップデートカウンタ542の値「1」がラッチされているので、判定回路547の出力はハイレベルとなる。よって、アップデートカウンタ542の値が「0」となったとき、ANDゲートAND3から出力されるupdate timing信号がハイレベル(イネーブル)になる。
図19に示すupdate信号生成回路406のリピートカウンタ532は、start信号がイネーブルになったとき、チャネル選択信号で指定されるリピートレジスタRPT−iから初期値として「1」をロードする。判定回路534は、リピートカウンタ532の値が「0」でないと判定するとハイレベルの信号を出力するので、このときupdate_timing信号がハイレベル(イネーブル)となると、ANDゲートAND2からハイレベル(イネーブル)のupdate信号が出力される。この結果、図21に示すように第5サイクルにupdate timing信号とupdate信号がイネーブルになる。
update信号がイネーブルになると、リピートカウンタ532のイネーブル端子がイネーブルとなり、リピートカウンタ532の値がサイクルに同期したタイミングでデクリメントされ、リピートカウンタ532の値が「0」に変化する。リピートカウンタ532の値が「0」となると、判定回路534の出力はローレベルになるので、それ以降はupdate_timing信号がイネーブルとなってもupdate信号はディセーブルのままとなる。
図17のsel制御信号生成回路402は、start信号がイネーブルになったとき、初期値「1」がフリップフロップ(selフラグ)512にラッチされ、selフラグの値は「1」となる。そして、第5サイクルにupdate_timing信号がイネーブルとなったとき、selフラグの値がデクリメントされselフラグの値は「0」になる(図21参照)。このとき、転送バースト長レジスタBST−iの値は「3」で、判定回路516の出力は「1」となっているので、sel制御信号の下位ビットの値は「1」となる。
従って、図21に示すように、start信号がイネーブルになった後、前半の5サイクルの期間は、sel制御信号の上位ビットは「1」となり下位ビットも「1」となる。また、update_timing信号とupdate信号がイネーブルになった後、後半の5サイクルの期間は、sel制御信号の上位ビットは「0」となり下位ビットは「1」となる。
この結果、図9の入力選択回路86は、前半の5サイクルは入力データ1〜4を選択してステージ1の再構成可能な組み合わせ回路82に出力する。また、後半の5サイクルは、中間バッファ88に保存されている処理途中のデータ1〜4を選択してステージ1の再構成可能な組み合わせ回路82に出力する。
次に、実施の形態の再構成可能な回路を有するDMAコントローラを搭載した半導体集積回路の一例を説明する。
図22は、画像処理用LSI601のブロック図である。画像処理用LSI601は、CCD(電荷結合素子)からの入力信号の前処理をする前処理回路602、画質向上のための処理を行う画質処理回路603,解像度を変換するための解像度変換回路604、色空間を変換するための色空間変換回路605等が必要であり、これらの回路をLSI内部に設ける必要がある。
本実施の形態では、図23に示すように画像処理用LSI701のDMAコントローラ702の内部に設けた再構成可能な回路703で種々のハードウェア回路を実現できるので回路面積を削減することができる。また、DMAコントローラ702上の構成情報メモリの構成情報を書き換えるだけで、再構成可能な回路703の回路構成を変更することができるので、ハードウェア回路を設計する場合に比べてLSIの開発期間を短縮することも可能である。さらに、構成情報を変更することでLSIが完成した後でも、バグの修正や性能向上をはかることもできる。
本発明は上述した実施の形態に限らず、例えば、以下のように構成しても良い。
(1)DMAコントローラの内部に設ける再構成可能な回路の構成は、実施の形態に示したステージ数に限らない。必要な処理サイクル数に応じて任意に決めることができる。
(2)制御回路43のsel制御信号生成回路402,update_timing信号生成回路407等の回路構成も実施の形態に示したものに限らず他の構成の回路でも良い。

Claims (12)

  1. プロセッサを有する半導体集積回路に搭載されたDMAコントローラにおいて、
    回路構成を指定する構成情報を記憶する構成情報記憶回路と、
    前記構成情報記憶回路の前記構成情報に基づいて回路構成が変更可能な再構成可能な回路とを備えるDMAコントローラ。
  2. 入力データと前記再構成可能な回路の出力データの一方を選択して前記再構成可能な回路に出力する入力選択回路を有し、
    前記再構成可能な回路は、前記構成情報記憶回路に記憶されている第1の構成情報により定まる回路構成に基づいて前記入力データに対して第1の処理を行い、前記第1の処理が施された中間データを前記入力選択回路を介して前記再構成可能な回路に帰還して、前記構成情報記憶回路に記憶されている第2の構成情報により定まる回路構成に基づいて前記中間データに対して第2の処理を行う請求項1記載のDMAコントローラ。
  3. 前記構成情報記憶回路から前記再構成可能な回路に出力する前記構成情報を変更して前記再構成可能な回路の回路構成を変更する制御回路を有する請求項1または2記載のDMAコントローラ。
  4. 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
    前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
    前記複数の再構成可能な組み合わせ回路の出力の内の1つを選択して出力する出力選択回路を有する請求項1記載のDMAコントローラ。
  5. 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
    入力データと最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して先頭のステージの再構成可能な回路に出力する入力選択回路と、
    前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項1記載のDMAコントローラ。
  6. 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
    最終ステージの前記再構成可能な組み合わせ回路から出力される複数の中間データを保持する中間バッファと、
    入力データと前記中間バッファの出力と前記最終ステージの再構成可能な組み合わせ回路の出力の内の1つを選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路と、
    前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項1記載のDMAコントローラ。
  7. 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
    前記構成情報記憶回路は、前記複数の再構成可能な組み合わせ回路に対応する複数の構成情報記憶回路からなり、
    最終ステージの前記再構成可能な組み合わせ回路の出力を先頭のステージの前記再構成可能な組み合わせ回路の入力側に帰還して処理を行う場合に、前記複数の再構成可能な組み合わせ回路の回路構成を処理サイクル単位で順に変更する制御を行う制御回路を有する請求項1記載のDMAコントローラ。
  8. 入力データと前記最終ステージの再構成可能な組み合わせ回路の出力データの内の1つを選択して前記先頭のステージの再構成可能な回路に出力する入力選択回路と、
    前記複数の再構成可能な組み合わせ回路の出力の1つを選択して出力する出力選択回路とを備える請求項7記載のDMAコントローラ。
  9. 2段目以降の各ステージの前記構成情報記憶回路の入力側に設けられ、前記構成情報記憶回路の前記構成情報を指定する制御信号を保持する複数の保持回路を有し、
    各ステージの再構成可能な組み合わせ回路の回路構成を変更するときに、前記制御回路から出力される前記構成情報を指定する制御信号を処理サイクル単位で前記保持回路に順に保持することで各ステージの回路構成を順に変更する請求項7または8記載のDMAコントローラ。
  10. 前記制御回路は、前記複数の構成情報記憶回路に対して前記構成情報の変更を指示する制御信号を個別に出力し、データバスを介して入力する前記構成情報を前記構成情報記憶回路に個別に書き込み、各ステージの回路構成を個別に変更する請求項7または8記載のDMAコントローラ。
  11. 前記再構成可能な回路は、縦続接続された複数の再構成可能な組み合わせ回路からなり、
    入力データと最終ステージの前記再構成可能な組み合わせ回路の出力の一方を選択して先頭のステージの前記再構成可能な組み合わせ回路に出力する入力選択回路を有する請求項1記載のDMAコントローラ。
  12. 前記構成情報記憶回路は、複数の構成情報を記憶し、前記制御回路から出力される制御信号により指定される構成情報を前記再構成可能な回路に出力して該再構成可能な回路の回路構成を決定する請求項3記載のDMAコントローラ。
JP2008531929A 2006-08-31 2006-08-31 Dmaコントローラ Pending JPWO2008026273A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/317191 WO2008026273A1 (fr) 2006-08-31 2006-08-31 Contrôleur dma

Publications (1)

Publication Number Publication Date
JPWO2008026273A1 true JPWO2008026273A1 (ja) 2010-01-14

Family

ID=39135565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008531929A Pending JPWO2008026273A1 (ja) 2006-08-31 2006-08-31 Dmaコントローラ

Country Status (2)

Country Link
JP (1) JPWO2008026273A1 (ja)
WO (1) WO2008026273A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5888050B2 (ja) 2012-03-27 2016-03-16 株式会社ソシオネクスト 半導体集積回路およびそのdma制御方法
JP6944117B2 (ja) * 2018-03-08 2021-10-06 富士通株式会社 情報処理装置、転送制御方法および転送制御プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201760A (ja) * 1988-02-08 1989-08-14 Fujitsu Ltd Dma制御装置
JPH04369245A (ja) * 1991-06-18 1992-12-22 Kawasaki Steel Corp プログラマブルロジックデバイス
JPH0844581A (ja) * 1994-07-29 1996-02-16 Fujitsu Ltd 自己修復機能付き情報処理装置
JPH10334038A (ja) * 1997-05-30 1998-12-18 Nec Corp データ転送装置
JPH11307725A (ja) * 1998-04-21 1999-11-05 Mitsubishi Electric Corp 半導体集積回路
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム
JP2005011287A (ja) * 2003-06-23 2005-01-13 Konica Minolta Holdings Inc コンピュータシステム及びデータ転送方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201760A (ja) * 1988-02-08 1989-08-14 Fujitsu Ltd Dma制御装置
JPH04369245A (ja) * 1991-06-18 1992-12-22 Kawasaki Steel Corp プログラマブルロジックデバイス
JPH0844581A (ja) * 1994-07-29 1996-02-16 Fujitsu Ltd 自己修復機能付き情報処理装置
JPH10334038A (ja) * 1997-05-30 1998-12-18 Nec Corp データ転送装置
JPH11307725A (ja) * 1998-04-21 1999-11-05 Mitsubishi Electric Corp 半導体集積回路
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム
JP2005011287A (ja) * 2003-06-23 2005-01-13 Konica Minolta Holdings Inc コンピュータシステム及びデータ転送方法

Also Published As

Publication number Publication date
WO2008026273A1 (fr) 2008-03-06

Similar Documents

Publication Publication Date Title
US4553203A (en) Easily schedulable horizontal computer
JP3188467B2 (ja) 最小値・最大値検索装置
US20140047218A1 (en) Multi-stage register renaming using dependency removal
US4521874A (en) Random access memory device
JP2019521445A (ja) Simdアーキテクチャにおけるレーンのシャッフルのためのシャッフラー回路
JP2004102799A (ja) レジスタファイル及びレジスタファイルの設計方法
JP2014006650A (ja) 動作合成装置、動作合成方法、動作合成装置を備えたデータ処理システム、及び、動作合成プログラム
JPH0391188A (ja) Fifoメモリ
JP5231949B2 (ja) 半導体装置、および、半導体装置によるデータ処理方法
JP4838009B2 (ja) リコンフィグラブル回路
JPWO2008026273A1 (ja) Dmaコントローラ
JP2000322235A (ja) 情報処理装置
JP3191302B2 (ja) メモリ回路
US20080077754A1 (en) Memory Access Apparatus
KR20080049727A (ko) 별도의 직렬 모듈을 지닌 프로세서 어레이
JPWO2010013427A1 (ja) 集積回路
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP2526293B2 (ja) スキャン回路アクセス装置
JP3441847B2 (ja) データメモリを有するプロセッサ
JP2012174105A (ja) メモリアクセス制御回路
JP5701930B2 (ja) 半導体装置
JP4851964B2 (ja) デュアルポートメモリを用いた同期化回路
JP2004362176A (ja) 集積回路
JP5382503B2 (ja) ブランチング・プログラム・マシン及び並列プロセッサ
JP2008219728A (ja) 再構成可能な演算処理回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110411

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206