(57)【要約】【課題】シフトレジスタを縮小化する。【解決手段】ゲート端子から入力される信号がハイレベルのときに入力されたデータをそのまま出力し、また、ゲート端子から入力される信号がローレベルのときに入力されたデータを遮断し、それまで入力されていたデータを保持して保持しているデータを出力するＨラッチ５０Ａ、５０Ｃ、５０Ｅと、その逆の動作をするＬラッチ５０Ｂ、５０Ｄ、５０Ｆと、を交互に接続する。クロック信号制御回路５５と論理回路５１〜５３とを組み合わせることにより、クロック信号５４を制御し、ゲート端子に入力する信号を制御する。【選択図】図２
2008283396.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶領域の段からなるメモリであって、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されたデータをそのまま該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを前記出力端子から出力するハイラッチと、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されたデータをそのまま前記出力端子から出力するローラッチと、を備え、
前記複数の記憶領域の段は、交互に接続された前記ハイラッチと前記ローラッチとから構成され、
所定周期でハイレベルのクロック信号とローレベルのクロック信号とを繰り返し出力するクロック信号出力部と、
前記クロック信号を制御するための制御信号を出力するクロック信号制御部と、
前記ハイラッチ及び前記ローラッチのゲート端子それぞれに接続され、前記クロック信号と前記制御信号とを入力し、所定の演算を施した後演算結果を前記ゲート端子に出力する複数の論理回路と、
を備えることを特徴とするメモリ。
【請求項２】
請求項１に記載のメモリの構成を有するシフトレジスタ。
【請求項３】
前記複数の論理回路は、論理積回路と論理和回路とを含み、
出力が前記ハイラッチのゲート端子に接続される論理回路は論理積回路であり、
出力が前記ローラッチのゲート端子に接続される論理回路は論理和回路であり、
前記クロック信号制御部は、前記制御信号を反転して前記論理和回路に入力する
ことを特徴とする請求項２に記載のシフトレジスタ。
【請求項４】
前記クロック信号制御部は、前記ハイラッチ及び前記ローラッチそれぞれに対応した複数の出力部を含み、
前記出力部それぞれは、前記所定周期の１／２の出力周期で前記各ハイラッチまたは前記各ローラッチを制御するための特定制御信号を出力する
ことを特徴とする請求項２または３に記載のシフトレジスタ。
【請求項５】
前記出力部それぞれは、対応する前記ハイラッチまたは前記ローラッチにデータが入力されるタイミングでハイレベルの前記特定制御信号を出力し、対応する前記ハイラッチまたは前記ローラッチにデータを保持するタイミングでローレベルの前記特定制御信号を出力する
ことを特徴とする請求項３または４に記載のシフトレジスタ。
【請求項６】
請求項２乃至５のいずれか１項に記載のシフトレジスタと、
制御部と、
前記制御部の制御に基づき動的に回路構成を変更し回路構成に応じた演算を行う回路と、
を備え、
前記制御部と前記回路とは、前記シフトレジスタを記憶領域として用いる
ことを特徴とする集積回路。
【請求項７】
請求項６に記載の集積回路と、
前記集積回路に実行させるプログラムを格納するプログラム格納部と、
を備えることを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ、シフトレジスタ、集積回路及び処理装置に関する。
【背景技術】
【０００２】
プログラムの実行をハードウェアで直接的に実現するための技術として、ＦＰＧＡ（Field Programmable Gate Array）が知られている（例えば、特許文献１）。
【０００３】
ＦＰＧＡは、プログラムとして論理データを与えることで論理回路間の結線論理を変更し、これによってハードウェア的に演算結果をえることができるようにしたものである。ＦＰＧＡを利用して演算を行うことによって、従来の汎用コンピュータのようなＣＰＵ（Central Processing Unit）による演算よりも非常に高速に演算結果を得ることができる。
【０００４】
また、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている。動的変更が可能なタイプのハードウェアを以下リコンフィギュラブルハードウェアという。
【特許文献１】特許第３５４０７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、リコンフィギュラブルハードウェアをＬＳＩ（Large Scale Integration）として実現する場合、構成情報を保持したり、回路構成を動的に変更する前の内部状態の情報を保持する必要がある。これらの情報を保持するための機構として、簡単に小サイズで作る為に、従来はフリップフロップを用いたシフトレジスタ等を用いていた。
【０００６】
この情報を保持するための機構のゲートサイズ（面積）の大きさがリコンフィギュラブルハードウェアのゲートサイズの大部分を占め、リコンフィギュラブルハードウェアをＬＳＩとして実現する場合の問題点となっている。
【０００７】
本発明は、上記問題に鑑みてなされたものであり、小規模化したメモリ、シフトレジスタ、及びそれを備える集積回路、処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係るメモリは、
複数の記憶領域の段からなるメモリであって、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されたデータをそのまま該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを前記出力端子から出力するハイラッチと、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されたデータをそのまま前記出力端子から出力するローラッチと、を備え、
前記複数の記憶領域の段は、交互に接続された前記ハイラッチと前記ローラッチとから構成され、
所定周期でハイレベルのクロック信号とローレベルのクロック信号とを繰り返し出力するクロック信号出力部と、
前記クロック信号を制御するための制御信号を出力するクロック信号制御部と、
前記ハイラッチ及び前記ローラッチのゲート端子それぞれに接続され、前記クロック信号と前記制御信号とを入力し、所定の演算を施した後演算結果を前記ゲート端子に出力する複数の論理回路と、
を備えることを特徴とする。
【０００９】
上記目的を達成するため、本発明の第２の観点に係るシフトレジスタは、
複数の記憶領域の段からなるメモリであって、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されたデータをそのまま該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを前記出力端子から出力するハイラッチと、
ゲート端子と入力端子と出力端子とを備え、該ゲート端子から入力されるクロック信号がハイレベルのときに該入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを該出力端子から出力し、また、前記ゲート端子から入力されるクロック信号がローレベルのときに前記入力端子から入力されたデータをそのまま前記出力端子から出力するローラッチと、を備え、
前記複数の記憶領域の段は、交互に接続された前記ハイラッチと前記ローラッチとから構成され、
所定周期でハイレベルのクロック信号とローレベルのクロック信号とを繰り返し出力するクロック信号出力部と、
前記クロック信号を制御するための制御信号を出力するクロック信号制御部と、
前記ハイラッチ及び前記ローラッチのゲート端子それぞれに接続され、前記クロック信号と前記制御信号とを入力し、所定の演算を施した後演算結果を前記ゲート端子に出力する複数の論理回路と、
を備えることを特徴とする。
【００１０】
前記複数の論理回路は、論理積回路と論理和回路とを含み、
出力が前記ハイラッチのゲート端子に接続される論理回路は論理積回路であり、
出力が前記ローラッチのゲート端子に接続される論理回路は論理和回路であり、
前記クロック信号制御部は、前記制御信号を反転して前記論理和回路に入力するように構成されてもよい。
【００１１】
前記クロック信号制御部は、前記ハイラッチ及び前記ローラッチそれぞれに対応した複数の出力部を含み、
前記出力部それぞれは、前記所定周期の１／２の出力周期で前記各ハイラッチまたは前記各ローラッチを制御するための特定制御信号を出力する
ように構成されてもよい。
【００１２】
前記出力部それぞれは、対応する前記ハイラッチまたは前記ローラッチにデータが入力されるタイミングでハイレベルの前記特定制御信号を出力し、対応する前記ハイラッチまたは前記ローラッチにデータを保持するタイミングでローレベルの前記特定制御信号を出力するように構成されてもよい。
【００１３】
本発明の第３の観点に係る集積回路は、
前記シフトレジスタと、
制御部と、
前記制御部の制御に基づき動的に回路構成を変更し回路構成に応じた演算を行う回路と、
を備え、
前記制御部と前記回路とは、前記シフトレジスタを記憶領域として用いる
ことを特徴とする。
【００１４】
本発明の第４の観点に係る処理装置は、
前記集積回路と、
前記集積回路に実行させるプログラムを格納するプログラム格納領域と、
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、メモリ、シフトレジスタの面積を縮小化することができる。特に、そのシフトレジスタを備える集積回路の面積を縮小化することができる。また、その集積回路を備えた処理能力の高い処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態に係るメモリ、シフトレジスタ６０、集積回路としてのリコンフィギュラブルハードウェア４、及び処理装置１０について説明する。図１は本発明の実施の形態に係る処理装置１０の全体構成を示すブロック図である。
【００１７】
図１に示すように、処理装置１０は、リコンフィギュラブルハードウェア２と、コンパイル部３と、記憶部４と、を備える。
【００１８】
リコンフィギュラブルハードウェア２は、リコンフィギュラブル回路２１と、設定部２２と、制御部２３と、内部状態保持回路２４とを備える。
【００１９】
リコンフィギュラブル回路２１は、入力データを受け取り所定の演算を施したあと、出力データを出力する回路である。リコンフィギュラブル回路２１は、制御部２３の制御のもと、設定を変更することが可能である。そしてその設定の変更により演算機能を変更することができる。リコンフィギュラブル回路２１は、単純な演算を行う演算機構の最小単位である多数のＰＥ（Processor Element）と、演算の途中結果を保持する多数のフリップフロップで構成される。また、各ＰＥの入力と出力との結線関係を設定可能な接続部を含む。各ＰＥ間の結線関係は、設定部２２により供給される設定データ２２Ａに基づいて設定される。
【００２０】
なお、リコンフィギュラブル回路２１に入力される入力データは、キーボードなどの入力装置から入力されるデータの他、磁気ディスク装置などの外部記憶装置から読み出されたデータであってもよい。また、リコンフィギュラブル回路２１から出力される出力データは、ディスプレイ装置などの出力装置から出力する他、外部記憶装置に書き込むものであってもよく、さらに、周辺機器を制御するための制御データであってもよい。リコンフィギュラブルハードウェア２を備える処理装置１０においては、動的にリコンフィギュラブル回路２１の回路構成を変更させて、入力データに応じた処理を高速に実行することができる。そして、処理結果を出力データとして出力することができる。
【００２１】
設定部２２は、設定データ２２Ａを格納する。設定部２２は、制御部２３の制御のもと、リコンフィギュラブル回路２１を所定の回路構成とするための設定データ２２Ａを供給する。設定データ２２Ａを受け取るとリコンフィギュラブル回路２１は、設定データ２２Ａにもとづき回路構成を変更する。
【００２２】
制御部２３は、リコンフィギュラブルハードウェア２全体の動作を制御する。また、制御部２３は、記憶部４から設定データ４２を取得する。
【００２３】
内部状態保持回路２４は、設定部２２によりリコンフィギュラブル回路２１の回路構成が変更されるときに、回路構成変更前に演算の途中結果としてリコンフィギュラブル回路２１内のフリップフロップに保持されている途中結果データや変更前の回路構成を示すデータ（内部状態データ）を退避するための回路である。そして、回路構成変更後の演算が終了したなどのタイミングで、制御部２２の制御により、退避した内部状態データを用いてリコンフィギュラブル回路２１を変更前の回路構成に復帰させ、リコンフィギュラブル回路２１内のフリップフロップに途中結果データを復帰させる。内部状態保持回路２４の出力は、フィードバックパスとして機能する経路部２５により、リコンフィギュラブル回路２に接続する。
【００２４】
コンパイル部３は、ハードウェア記述が可能なプログラム言語に記述されたソースプログラムをリコンフィギュラブル回路２１におけるＰＥの機能やＰＥ間の結線関係を定めるデータ（設定データ４２）にコンパイルする。
【００２５】
記憶部４には、ソースプログラム４１と設定データ４２とが格納される。
【００２６】
ソースプログラム４１は、ハードウェア記述が可能なプログラム言語（例えば、ＲＴＬ（Register Transfer Level）やＣ言語など）で記述されたものである。ソースプログラム４１は、リコンフィギュラブルハードウェア２により実現されるべきプログラムである。
【００２７】
設定データ４２は、リコンフィギュラブル回路２１におけるＰＥの機能やＰＥ間の結線関係を定める。上述のように、設定データ４２は、ソースプログラム４１をコンパイル部３がコンパイルすることにより生成される。そして、生成された設定データ４２は、制御部２３により設定部２２に格納される。設定部２２に格納された設定データ２２Ａは、設定部２２によりリコンフィギュラブル回路２１に供給され、設定データ２２Ａを受け取るとリコンフィギュラブル回路２１は、その設定データ２２Ａにもとづき回路構成を変更する。
【００２８】
設定部２２の設定データ２２Ａを格納する部分、および内部状態保持回路２４は、本発明の実施の形態に係るシフトレジスタ６０により構成される。本発明の実施の形態に係るシフトレジスタ６０は、記憶セルとして通常採用されるＤ（ディレイ）フリップフロップではなく、Ｄフリップフロップよりゲートサイズの小さいＤ（ディレイ）ラッチを用いたシフトレジスタである。
【００２９】
図２は、本発明の実施の形態に係るシフトレジスタ６０を示す図である。図２（Ａ）に示すように、シフトレジスタ６０は、３２ビットの書き込みバスを持ち、必要段階のＤラッチ５０により構成される（この実施の形態では説明の簡単のため６段階）。Ｄラッチ５０は、それぞれゲート端子（クロック入力）と入力端子と出力端子とを備える。
【００３０】
これらのＤラッチ５０には、ゲート端子から入力され信号がハイレベルのときに入力端子から入力されたデータをそのまま出力端子から出力し、また、ゲート端子から入力される信号がローレベルのときに入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを出力端子から出力するＨ（ハイ）ラッチがある。また、Ｈラッチとは逆に、ゲート端子から入力される信号がハイレベルのときに該入力端子から入力されるデータを遮断し、それまで入力されていたデータを保持して保持しているデータを該出力端子から出力し、また、前記ゲート端子から入力される信号がローレベルのときに前記入力端子から入力されたデータをそのまま前記出力端子から出力するＬ（ロー）ラッチがある。この実施の形態のシフトレジスタ６０は、ＨラッチとＬラッチを交互に接続した構成である。各Ｄラッチの出力端子と入力端子とが接続される。
【００３１】
この実施の形態では、Ｄラッチ５０Ａ、５０Ｃ、５０ＥがＨラッチであり、Ｄラッチ５０Ｂ、５０Ｄ、５０ＦがＬラッチである。
【００３２】
なお、Ｌラッチは、Ｈラッチのゲート端子に否定回路（ＮＯＴ回路）を接続したものであってもよい。
【００３３】
図２（Ｂ）に示すように、この実施の形態のシフトレジスタ６０のＨラッチのゲート端子には論理積回路（ＡＮＤ回路）５１が接続され、また、Ｌラッチのゲート端子には論理和回路（ＯＲ回路）５２が接続される。論理和回路５１及び論理積回路５１にはクロック信号（ＣＬＫ）５４と、クロック信号制御回路５５からの制御信号と、が入力される。クロック信号制御回路５５から論理積回路５１への経路には否定回路（ＮＯＴ回路）が設けられ、クロック信号制御回路５５からの制御信号が反転されて論理積回路５１に入力される。
【００３４】
論理積回路５１と論理和回路５２とは、２つの入力端子と１つの出力端子とを備える。論理積回路５１は、入力端子全てに「１」（ハイレベル）が入力されたときのみ「１」（ハイレベル）を出力する回路である。論理和回路５２は、少なくとも１つの入力端子に「１」（ハイレベル）が入力されたときに「１」（ハイレベル）を出力する回路である。否定回路５３は入力端子及び出力端子を１つずつ備える。否定回路５３は、「１」（ハイレベル）が入力されると「０」（ローレベル）を、「０」（ローレベル）が入力されると「１」（ハイレベル）を出力する回路である。
【００３５】
クロック信号５４とは、周期的に電圧がハイレベルとローレベルを繰り返す信号である。クロック信号５４は、例えば水晶発信器などから生成される。
【００３６】
クロック信号制御回路５５は、Ｈラッチ及びＬラッチのゲート端子に入力されるクロック信号５４を制御するための回路である。論理積回路５１または論理和回路５２を介して、クロック信号５４とクロック信号制御回路５５から出力される制御信号とを論理演算させることで、Ｈラッチ及びＬラッチのゲート端子に入力されるクロック信号５４を制御する。
【００３７】
クロック信号制御回路５５は、制御回路５６と制御用レジスタ５７とを備える。制御回路５６は、クロック信号制御回路５５から出力する制御信号を制御するための回路である。制御用レジスタ５７は、シフトレジスタ６０を構成するＤラッチ６０の段階数と同じ数（この実施の形態では６段階）のレジスタ（例えばＤフリップフロップ）が設けられる。各制御用レジスタ５７は、各Ｄラッチに対応している。そして、各制御用レジスタ５７に記憶されるデータが制御用信号として、制御回路５６の制御のもと、クロック信号５４の１／２の周期（即ち２倍速）で出力される。
【００３８】
図３は、クロック信号制御回路５５（特に制御用レジスタ５７）の動作を示す図である。この実施の形態では、制御用レジスタ５７は６段階設けられている（５７Ａ〜５７Ｆ）。
【００３９】
まず、制御回路５６の制御により、時刻Ｔ１に１段階目の制御用レジスタ５７Ａに「１」を示すデータが格納される。それとともに、制御用レジスタ５７Ａから「１」を示すデータ（ハイレベル信号）がＤラッチ５０Ａに接続される論理積回路５１に出力される。また、時刻Ｔ２に２段階目の制御用レジスタ５７Ｂにも「１」を示すデータが格納される。それとともに、制御用レジスタ５７Ａから「１」を示すデータ（ハイレベル信号）が、Ｄラッチ５０Ａに接続される論理積回路５１に出力され、制御用レジスタ５７Ｂからから出力され否定回路５３で反転された「０」を示すデータ（ローレベル信号）が、Ｄラッチ５０Ｂに接続される論理和回路５２に出力される。即ち、所定の周期（Ｔ２−Ｔ１＝Ｔ１）で全ての段に「１」を示すデータが順次格納される。そして、それとともに、各々の制御用レジスタ５７が接続される論理積回路５１に「１」を示すデータ（ハイレベル信号）が出力される。また、各々の制御用レジスタ５７が接続される論理和回路５２に「０」を示すデータ（ローレベル信号）が出力される。
【００４０】
そして、全ての段に「１」を示すデータが格納されると、反転して制御用レジスタ５７に「０」を示すデータが格納される。即ち、時刻Ｔ８に６段階目の制御用レジスタ５７Ｆに「０」を示すデータが格納される。それとともに、制御用レジスタ５７Ｆから「０」を示すデータ（ローレベル信号）がＤラッチ５０Ｆに接続される論理和回路５２に出力される。
【００４１】
このように、制御回路５６は、所定の周期（Ｔ１）で制御用レジスタ５７に順次「１」を示すデータを格納し、端の制御用レジスタ５７まで格納し終わると反転し「０」を示すデータを格納していく。
【００４２】
なお、図３中のＣＬＫエッジとはクロック信号５４のエッジを示しており、上向きの矢印がクロック信号５４の立ち上がりを示しており、下向きの矢印がクロック信号５４の立ち下がりを示している。このように、制御信号とクロック信号５４とを同期させている。クロック信号５４の周期は、Ｔ３−Ｔ１＝Ｔ２＝Ｔ１＊２。即ち、制御回路５６の動作の周期の２倍である。
【００４３】
図４は、各Ｄラッチ５０に入力されるデータと信号のタイミングチャートである。図中の時刻は、図３で用いた時刻と一致していうる。図中における「データ」とは、各Ｄラッチ５０に入力されるデータを示している。この図では、シフトレジスタ６０にデータＡ〜データＦが順次入力されている例を示している。データＡ〜データＦが順次入力される周期は、クロック信号５４の周期と一致している。
【００４４】
図中における「ＣＬＫ」とは、クロック信号５４を示している。また、「制御信号」とは、クロック信号制御回路５５から、各Ｄラッチ５０に接続される論理積回路５１に入力される制御信号を示している。「制御信号（反転）」とは、クロック信号制御回路５５から、各Ｄラッチ５０に接続される論理和回路５２に否定回路５３を介して入力される反転された制御信号を示している。
【００４５】
即ち、各Ｄラッチ５０に接続される論理回路（論理積回路５１または論理和回路５２）が示されている。そして、「ＡＮＤ」と「ＯＲ」とは、対応する論理回路の演算結果を示しており、各Ｄラッチ５０のゲート端子に入力される信号である。
【００４６】
図５は、シフトレジスタ６０に入力されるデータを模式的に表した図である。図４及び図５に示すように、Ｄラッチ５０Ａには、時刻Ｔ１にデータＡが入力され、Ｈラッチであるのでゲート端子に入力される信号が「０」になるタイミングである時刻Ｔ２にデータＡを保持する（ラッチする）。時刻Ｔ３にデータＢが入力され、時刻Ｔ４にデータＢを保持する。時刻Ｔ５にデータＣが入力され、時刻Ｔ６にデータＣを保持する。時刻Ｔ７にデータＤが入力され、時刻Ｔ８にデータＤを保持する。時刻Ｔ９にデータＥが入力され、時刻Ｔ１０にデータＥを保持する。時刻Ｔ１１にデータＦが入力され、時刻Ｔ１２にデータＦを保持する。このように、Ｄラッチ５０Ａでは、最終的にデータＦを保持することとなる。
【００４７】
Ｄラッチ５０Ｂには、時刻Ｔ２にデータＡが入力され、Ｌラッチであるのでゲート端子に入力される信号が「１」になるタイミングである時刻Ｔ３にデータＡを保持する（ラッチする）。時刻Ｔ４にデータＢが入力され、時刻Ｔ５にデータＢを保持する。時刻Ｔ６にデータＣが入力され、時刻Ｔ７にデータＣを保持する。時刻Ｔ８にデータＤが入力され、時刻Ｔ９にデータＤを保持する。時刻Ｔ１０にデータＥが入力され、時刻Ｔ１１にデータＥを保持する。時刻Ｔ１１以降はゲート端子に入力される信号は「１」なので、データＥを保持し続ける。このように、Ｄラッチ５０Ｂでは、最終的にデータＥを保持することとなる。
【００４８】
Ｄラッチ５０Ｃには、時刻Ｔ３にデータＡが入力され、Ｈラッチであるのでゲート端子に入力される信号が「０」になるタイミングである時刻Ｔ４にデータＡを保持する（ラッチする）。時刻Ｔ５にデータＢが入力され、時刻Ｔ６にデータＢを保持する。時刻Ｔ７にデータＣが入力され、時刻Ｔ８にデータＣを保持する。時刻Ｔ９にデータＤが入力され、時刻Ｔ１０にデータＤを保持する。時刻Ｔ１０以降はゲート端子に入力される信号は「０」なので、データＤを保持し続ける。このように、Ｄラッチ５０Ｃでは、最終的にデータＤを保持することとなる。
【００４９】
Ｄラッチ５０Ｄには、時刻Ｔ４にデータＡが入力され、Ｌラッチであるのでゲート端子に入力される信号が「１」になるタイミングである時刻Ｔ５にデータＡを保持する（ラッチする）。時刻Ｔ６にデータＢが入力され、時刻Ｔ７にデータＢを保持する。時刻Ｔ８にデータＣが入力され、時刻Ｔ９にデータＣを保持する。時刻Ｔ９以降はゲート端子に入力される信号は「１」なので、データＣを保持し続ける。このように、Ｄラッチ５０Ｄでは、最終的にデータＣを保持することとなる。
【００５０】
Ｄラッチ５０Ｅには、時刻Ｔ５にデータＡが入力され、Ｈラッチであるのでゲート端子に入力される信号が「０」になるタイミングである時刻Ｔ６にデータＡを保持する（ラッチする）。時刻Ｔ７にデータＢが入力され、時刻Ｔ８にデータＢを保持する。時刻Ｔ８以降はゲート端子に入力される信号は「０」なので、データＢを保持し続ける。このように、Ｄラッチ５０Ｅでは、最終的にデータＢを保持することとなる。
【００５１】
Ｄラッチ５０Ｆには、時刻Ｔ６にデータＡが入力され、Ｌラッチであるのでゲート端子に入力される信号が「１」になるタイミングである時刻Ｔ７にデータＡを保持する（ラッチする）。時刻Ｔ７以降はゲート端子に入力される信号は「１」なので、データＡを保持し続ける。このように、Ｄラッチ５０Ｆでは、最終的にデータＡを保持することとなる。
【００５２】
このようにして、アドレスを持たせてデータを格納する制御の様にデコード回路を必要とすることなく、簡単な制御によりＤラッチを用いたシフトレジスタ６０は順次データを格納することができる。シフトレジスタ６０は、記憶セルとしてフリップフロップの１／２のゲートサイズのＤラッチ５０を用いているので、シフトレジスタ６０のゲートサイズを縮小化することができる。その結果、リコンフィギュラブルハードウェア２（集積回路）のサイズを縮小化することができる。また、リコンフィギュラブルハードウェア２を備えた処理装置１０により、高速に情報を処理することができる。
【００５３】
なお、シフトレジスタ６０に格納したデータは、図６に示すように、各Ｄラッチ５０から並列に信号線を配することで、パラレルに出力することができる。
【００５４】
（変形例）
上記実施の形態では、各Ｄラッチ５０に順次格納されるようにクロック制御回路５５が制御信号を出力するようにすることで、本発明の実施の形態に係るメモリをシフトレジスタとして機能させていた。制御回路５６が制御用レジスタ５７を制御することで、任意の制御信号を出力させることができる。
【００５５】
例えば、図７及び図８に示すように、Ｄラッチ５０に格納したデータを、所定のタイミング順次出力するようにしてもよい。図７の例では、時刻Ｔ１０から２周期おきに順次出力している。このように動作させるためには、制御回路５６が、図９及び図１０に示すように、制御用レジスタ５７にデータを格納するように制御すればよい。図９及び図１０の例は、時刻Ｔ１０までは図３に示した例と同様である。時刻Ｔ１１以降において、制御回路５６が、出力側の端のレジスタ（この例では制御用レジスタ５７Ｆ）から入力の方向に制御用レジスタ５７Ｂまで順次「１」を埋めて行き、その後、折り返して制御用レジスタ５７Ｆまで「０」を埋める。なお、時刻Ｔ２２からの動作は時刻Ｔ１からの動作と同様である。
【００５６】
このように制御することで、本発明の実施の形態に係るメモリを、最低遅延の２倍のメモリ容量を持つディレイラインやＦＩＦＯ（First In First Out）として使用することができ、画像の遅延、フレーム外でのウェイトなどに使用することができる。
【００５７】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【００５８】
上記実施の形態では、設定部２２の設定データ２２Ａを格納する部分、および内部状態保持回路２４がシフトレジスタ６０により構成されるものとしたが、どちらか一方のみをシフトレジスタ６０として、他方をスタックなど他のレジスタを用いるようにしてもよい。
【００５９】
また、クロック信号制御回路５５は、制御用レジスタ５７を用いて制御信号を出力していたが、本発明の目的を達成できる制御信号を出力できればこれに限定されず、他の構成により制御信号を出力するようにしてもよい。
【００６０】
また、図２（Ａ）に示したように、クロック信号制御回路５５と論理積回路５１、論理和回路５２、および否定回路５３とを組み合わせてクロック信号５４を制御するものとしたが、これは一例であり、クロック信号制御回路５５との組み合せで同一の制御を実行できるものであれば、論理回路の組み合せは任意である。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態に係る処理装置の全体構成を示すブロック図である。
【図２】本発明の実施の形態に係るシフトレジスタを示す図である。
【図３】クロック信号制御回路の動作を示す図である。
【図４】各Ｄラッチに入力されるデータと信号のタイミングチャートである。
【図５】シフトレジスタに入力されるデータを模式的に表した図である。
【図６】シフトレジスタからの情報の出力を説明するための図である。
【図７】変形例のシフトレジスタに入力されるデータを模式的に表した図である。
【図８】変形例のシフトレジスタに入力されるデータを模式的に表した図である。
【図９】変形例のクロック信号制御回路の動作を示す図である。
【図１０】変形例のクロック信号制御回路の動作を示す図である。
【符号の説明】
【００６２】
２  リコンフィギュラブルハードウェア
３  コンパイル部
４  記憶部
１０  処理装置
２１  リコンフィギュラブル回路
２２  設定部
２２Ａ  設定データ
２３  制御部
２４  内部状態保持回路
２５  経路部
４１  ソースプログラム
４２  設定データ
５０  Ｄラッチ
５１  論理積回路
５２  論理和回路
５３  否定回路
５４  クロック信号
５５  クロック信号制御回路
５６  制御回路
５７  制御用レジスタ
６０  シフトレジスタ
【図１】
2008283396.tif 000003
【図４】
2008283396.tif 000004
【図２】
2008283396.tif 000005
【図３】
2008283396.tif 000006
【図５】
2008283396.tif 000007
【図６】
2008283396.tif 000008
【図７】
2008283396.tif 000009
【図８】
2008283396.tif 000010
【図９】
2008283396.tif 000011
【図１０】
2008283396.tif 000012