(57)【要約】【課題】遅延時間を増大させずに実質的に物理的な記憶容量を増やすことができると共に書き込みと読み出しの２つの非同期な要求を並行に処理できる自己同期型ＦＩＦＯメモリ装置を提供する。【解決手段】自己同期型ＦＩＦＯメモリ装置１００は、ｎ個の自己同期型データ伝送路１１１〜１１ｎを並列に並べた構造を有する。入力制御部１０１は、ｎ個の自己同期型データ伝送路のうち１つを選択し、この選択した自己同期型データ伝送路と前段部の自己同期型データ伝送路との間での、第１の転送要求信号，第１のアクノリッジ（転送指示）信号およびデータの受け渡しを仲介する。また、出力制御部１０２は、ｎ個の自己同期型データ伝送路のうちの１つを選択し、選択した自己同期型データ伝送路と後段部の自己同期型データ伝送路との間で、第２の転送要求信号，第２のアクノリッジ（転送指示）信号およびデータの受け渡しを仲介する。【選択図】　図１
2004071103.tif 000002
【特許請求の範囲】
【請求項１】
自己同期信号制御回路とデータ保持回路とから成る複数の自己同期型データ伝送路を有する自己同期型ＦＩＦＯメモリ装置であって、
上記複数の自己同期型データ伝送路が並列接続された並列構造を有し、
上記並列構造に含まれる上記自己同期型データ伝送路の１つを選択し、前段部から入力される第１の転送要求信号を、上記選択した自己同期型データ伝送路に出力し、かつ、上記選択した自己同期型データ伝送路から出力される第１のアクノリッジ信号を上記前段部に出力し、かつ、上記選択した自己同期型データ伝送路へのデータ転送が可能な状態ならば、上記選択した自己同期型データ伝送路に対して上記前段部から入力される入力データを出力する入力制御部と、
上記並列構造に含まれる上記自己同期型データ伝送路の１つを選択し、この選択した自己同期型データ伝送路から出力される第２の転送要求信号を後段部に出力し、かつ、上記後段部から入力される第２のアクノリッジ信号を、上記選択した自己同期型データ伝送路に出力し、かつ、上記後段部へのデータ転送が可能な状態ならば、上記選択した自己同期型データ伝送路から出力される出力データを上記後段部に対して出力する出力制御部とを有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項２】
請求項１に記載の自己同期型ＦＩＦＯメモリ装置において、
上記入力制御部は、
上記並列構造に含まれる上記自己同期型データ伝送路への上記第１の転送要求信号の伝送経路、および、上記並列構造をなす自己同期型データ伝送路からの上記第１のアクノリッジ信号の伝送経路を選択するとともに、上記入力データを上記並列構造をなす自己同期型データ伝送路へ分配するためのシーケンサを有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項３】
請求項２に記載の自己同期型ＦＩＦＯメモリ装置において、
上記入力制御部は、入力段に自己同期信号制御回路とデータ保持回路とから成る自己同期型データ伝送路をさらに備え、
上記自己同期型データ伝送路は、上記前段部と上記入力制御部の上記シーケンサを含む内部回路との間で上記第１の転送要求信号および上記第１のアクノリッジ信号を伝達することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項４】
請求項１または２に記載の自己同期型ＦＩＦＯメモリ装置において、
上記出力制御部は、
上記並列構造に含まれる上記自己同期型データ伝送路からの上記第２の転送要求信号の伝送経路および上記並列構造に含まれる上記自己同期型データ伝送路への上記第２のアクノリッジ信号の伝送経路を選択するとともに、上記並列構造に含まれる上記自己同期型データ伝送路から出力される出力データを選択するためのシーケンサを有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項５】
請求項４に記載の自己同期型ＦＩＦＯメモリ装置において、上記出力制御部は、出力段に自己同期信号制御回路とデータ保持回路とから成る自己同期型データ伝送路をさらに備え、
上記自己同期型データ伝送路は、上記後段部と上記出力制御部の上記シーケンサを含む内部回路との間で上記第２の転送要求信号および上記第２のアクノリッジ信号を伝達することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項６】
請求項１乃至５のいずれか１つに記載の自己同期型ＦＩＦＯメモリ装置において、
記憶可能なデータ量を変化させるための記憶容量制御信号が入力される入力端子を有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項７】
請求項６に記載の自己同期型ＦＩＦＯメモリ装置において、上記入力制御部は、上記第１の転送要求信号の伝送経路および上記第１のアクノリッジ信号の伝送経路を選択するとともに入力データを分配するためのシーケンサを有し、このシーケンサが上記記憶容量制御信号の入力端子を有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【請求項８】
請求項６または７に記載の自己同期型ＦＩＦＯメモリ装置において、
上記出力制御部は、上記第２の転送要求信号の伝送経路および上記第２のアクノリッジ信号の伝送経路を選択するとともに上記出力データを選択するためのシーケンサを有し、このシーケンサが上記記憶容量制御信号の入力端子を有することを特徴とする自己同期型ＦＩＦＯメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、自己同期型のＦＩＦＯ（先入れ先出し（Ｆｉｒｓｔ　ｉｎ　Ｆｉｒｓｔ　ｏｕｔ））メモリ装置に関し、特に、ＦＩＦＯメモリ装置を制御する自己同期信号制御回路の入力信号または出力信号を伝達するための制御回路を備えた自己同期型ＦＩＦＯメモリ装置に関する。
【０００２】
【従来の技術】
クロックに同期してパイプラインデータ処理を行う論理回路は、通常、論理回路ＬＳＩとして構成される。これら論理回路ＬＳＩは、年々高速化と大規模化、微細化が進み、配線長の長大化と配線間隔の縮小が行われていて、配線の直列抵抗と他配線との間の並列容量が大きくなってきている。
【０００３】
このため、信号の遅延と波形なまりが大きくなってきていて、その影響は配線の長さによって大きくばらつく。ところが、チップ全体にランダムに配置されたすべてのフリップフロップへの配線長を揃えることは難しく、同位相の単一クロックの分配が困難になってきている。
【０００４】
この問題を回避するためには、チップ全体に、等遅延となるよう多段階の木構造にバッファを配置したクロックツリーを発生させる必要があるなど、そのコストが増大している。そのため、隣接するパイプラインレジスタの間で局所的に同期を取り合い、同位相の単一クロックが不要な自己同期型のパイプラインを持つ論理回路が検討されている。
【０００５】
この自己同期型のパイプラインでは、パイプラインからの出力データを後続の装置が受け取れない状態にある等の理由によって、パイプラインの出力端において一時的にデータ転送が停止させられると、パイプラインの入力端に向かって連鎖的にデータ転送が停止させられ、パイプラインの出力端において再びデータ転送が可能になるまで待機することになる。
【０００６】
その過程において、通常はある程度の間隔をおいて流れるパイプライン内のデータがその間隔を詰めることで、自律的な緩衝能力を示すが、その緩衝能力を超えた場合には、パイプラインの入力端において、一時的にデータを受け取れない状態を招く。この場合、パイプラインにＦＩＦＯメモリ装置を挿入して緩衝能力を強化することが望ましい。
【０００７】
図８に、このような自己同期型パイプラインの自律的な緩衝能力を活用したＦＩＦＯメモリ装置の一例を示す。図８において、ＦＩＦＯメモリ装置８００は、３つの自己同期型データ伝送路８１１，８１２，８１３を備え、この自己同期型データ伝送路８１１，８１２，８１３は、それぞれ、パイプラインレジスタ８０１，８０２，８０３を備えている。これにより、ＦＩＦＯメモリ装置８００は、最大３つのデータを保持可能になっている。
【０００８】
また、上記ＦＩＦＯメモリ装置８００の３つの自己同期型データ伝送路８１１，８１２，８１３は、それぞれ、自己同期型信号制御回路８０４，８０５，８０６を備えている。この３つの自己同期型信号制御回路８０４，８０５，８０６は、互いにハンドシェイクをしながら、パイプラインレジスタ８０１，８０２，８０３にクロックを供給する。
【０００９】
このように、自己同期型データ伝送路８１１，８１２，８１３は、それぞれ、１つの自己同期型信号制御回路８０４，８０５，８０６とそれが供給するクロックで動作する１つのパイプラインレジスタ８０１，８０２，８０３の組からなる。図８に示すように、自己同期型データ伝送路８１１，８１２，８１３を縦列に接続することによって、ＦＩＦＯメモリ装置８００を実現している。
【００１０】
次に、図９に、図８のＦＩＦＯメモリ装置８００における自己同期信号制御回路８０４，８０５，８０６のうちの１つの構成例を示す。図９に示すように、自己同期信号制御回路は、ＣＩ信号端子９０１とＲＯ信号端子９０２とＣＰ出力端子９０３とＣＯ出力端子９０４とＲＩ入力端子９０５を備え、ＲＳフリップフロップ９０６，９０８および論理回路である４入力ＮＡＮＤゲート９０７を備える。
【００１１】
上記ＣＩ信号端子９０１には前段の転送要求信号が入力され、上記ＲＯ信号端子９０２は、上記ＣＩ信号端子９０１からの転送要求信号を受け取ったことを示すアクノリッジ信号を前段に返す。また、ＣＰ信号端子９０３は、ＣＩ信号端子９０１からの転送要求信号によりパイプラインレジスタ８０１〜８０３へクロックパルスを送出する。
【００１２】
また、ＣＯ信号端子９０４は、前段からの転送要求信号を次段に伝える。また、ＲＩ信号端子９０５には、ＣＯ信号端子９０４からの転送要求が次段に受け取られたことを示すアクノリッジ信号が返される。また、ＲＳフリップフロップ９０６は、転送要求受付状態を保持し、ＲＳフリップフロップ９０８は次段への転送要求状態を保持する。また、４入力ＮＡＮＤゲート９０７は、ＲＳフリップフロップ９０６とＲＳフリップフロップ９０８の同期をとる。
【００１３】
次に、図１０のタイミングチャートに、図８のＦＩＦＯメモリ装置８００が一部を構成する自己同期型のパイプラインを動かすための信号の一例を示す。図８のＦＩＦＯメモリ装置８００におけるパイプラインの１段目をなす自己同期信号制御回路８０４のＣＩ信号端子ＣＩへ、転送要求信号８０４ＣＩのパルスが入力される。同じく、１段目のパイプラインレジスタ８０１のデータ端子Ｄへ処理データ８０１Ｄが入力される。
【００１４】
これにより、自己同期信号制御回路８０４において転送要求受付状態を保持するＲＳフリップフロップ９０６がセットされ、アクノリッジ信号８０４ＲＯが自己同期信号制御回路８０４のＲＯ信号端子ＲＯから前段のＦＩＦＯメモリ装置の自己同期信号制御回路へ返される。これにより、転送要求信号８０４ＣＩがＨ（Ｈｉｇｈ）レベルに戻り、信号８０４ＮＡＮＤがＬ（Ｌｏｗ）レベルとなり、次段への転送要求を保持するフリップフロップ９０８がセットされ、フリップフロップ９０６がクリアされる。
【００１５】
次に、パイプラインレジスタ８０１へのクロック８０４ＣＰがＨレベルとなり、これにより、パイプラインレジスタ８０１にデータがラッチされ、このデータはパイプラインレジスタ８０１の端子Ｑに出力される。また、自己同期信号制御回路８０４の端子ＣＯから、次段への転送要求パルス８０４ＣＯが出力される。この転送要求パルス８０４ＣＯは、図８のパイプラインを構成する２段目の自己同期型データ伝送路８１２を構成する自己同期信号制御回路８０５に入力され、同様に、信号８０４ＲＩ、信号８０５ＮＡＮＤ、信号８０５ＣＰ、信号８０５ＣＯが生成され、信号８０１Ｑが２段目のパイプラインレジスタ８０２でラッチされ、端子Ｑへ出力される。
【００１６】
同様の動作を、自己同期信号制御回路８０５と自己同期信号制御回路８０６との間で行うことで、データ信号８０２Ｑが３段目のパイプラインレジスタ８０３でラッチされ、パイプラインレジスタ８０３の端子Ｑからデータパス出力に出力される。
【００１７】
【発明が解決しようとする課題】
ところで、自己同期型パイプラインへの挿入を目的とするＦＩＦＯメモリ装置では、データの書き込みと読み出しの非同期な２つの要求を並行に処理できなければならず、かつ、自己同期型パイプラインの他の部分と同じ動作速度で処理できなければならない。
【００１８】
また、このＦＩＦＯメモリ装置内にデータが保持されていれば、自発的にデータ転送要求を発生する制御機構が不可欠である。さらに、パイプラインの深さに単純比例する遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことが期待される。加えて、パイプライン処理に最適なＦＩＦＯメモリ装置を実現するために、動的および静的に記憶容量を変更可能とすることが望ましい。
【００１９】
上記従来技術における自己同期型データ伝送路８１１〜８１３を縦列に接続した構成のＦＩＦＯメモリ装置８００は、書き込みと読み出しの２つの非同期な要求を並行に処理できる反面、自己同期型データ伝送路８１１〜８１３の縦列構造がパイプラインを深くしてしまうから、パイプラインの深さに単純比例して遅延時間を増大させてしまう。
【００２０】
なお、自己同期型パイプラインに挿入して緩衝能力を強化する目的とは異なるが、類似の技術として、非同期式ＦＩＦＯメモリ装置が開示されている（特開２０００−１１６３６）。この非同期式ＦＩＦＯメモリ装置は、外部装置との間で非同期にデータの入出力を行うＦＩＦＯメモリ装置である。
【００２１】
しかしながら、この従来技術の非同期式ＦＩＦＯメモリ装置は、外部の書き込みプロセッサと読み出しプロセッサとの中間に配置し、それらの能動的なプロセッサから送信された書き込み要求あるいは読み出し要求に対して、受動的に応答することを目的としている。その結果、自己同期型パイプラインのように自発的に転送要求信号を発生し得ない点、さらにＦＩＦＯメモリ装置への書き込みと読み出しを同時に処理できない。つまり、この従来技術（特開２０００−１１６３６）のような、自己同期型データ伝送路を使用しない非同期式ＦＩＦＯメモリ装置では、パイプラインの深さに単純比例する遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことが可能な反面、ＦＩＦＯメモリ装置が空になる場合や空き領域がなくなる場合等のクリティカルな状態における正常な動作を保証しつつ、書き込みと読み出しの非同期な要求を並行に処理する能力はない。加えて、この従来技術では、外部のプロセッサから出力要求を受信して初めてデータ出力を行うものであるので、自発的にはデータ転送要求を発生できない。これらの制約から、自己同期型パイプラインに上記の非同期式ＦＩＦＯメモリ装置を挿入することは困難である。
【００２２】
そこで、この発明の目的は、遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことができると共に、書き込みと読み出しの２つの非同期な要求を並行に処理できる自己同期型ＦＩＦＯメモリ装置を提供することにある。
【００２３】
【課題を解決するための手段】
上記目的を達成するため、この発明の自己同期型ＦＩＦＯメモリ装置は、自己同期信号制御回路とデータ保持回路とから成る複数の自己同期型データ伝送路を有する。上記複数の自己同期型データ伝送路は並列接続されて並列構造をなす。さらに、上記ＦＩＦＯメモリ装置は、入力制御部と出力制御部を有する。
【００２４】
上記入力制御部は、上記並列構造に含まれる上記自己同期型データ伝送路の１つを選択し、この選択した自己同期型データ伝送路に、前段部から入力される第１の転送要求信号を出力し、かつ、上記選択した自己同期型データ伝送路から出力される第１のアクノリッジ信号を上記前段部に出力し、かつ、上記選択した自己同期型データ伝送路へのデータ転送が可能な状態ならば、上記選択した自己同期型データ伝送路に対して上記前段部から入力される入力データを出力する。
【００２５】
また、上記出力制御部は、上記並列構造に含まれる自己同期型データ伝送路の１つを選択し、この選択した自己同期型データ伝送路から出力される第２の転送要求信号を後段部に出力し、かつ、上記後段部から入力される第２のアクノリッジ信号を上記選択した自己同期型データ伝送路に出力し、かつ、上記後段部へのデータ転送が可能な状態ならば、上記選択した自己同期型データ伝送路から出力される出力データを上記後段部に出力する。
【００２６】
この発明のＦＩＦＯメモリ装置では、複数の自己同期型データ伝送路を並列に並べた構造を有する。この複数の自己同期型データ伝送路をデータ伝送およびデータ保持のための素子として使用している。
【００２７】
また、上記並列に設けた自己同期型データ伝送路の直前には、入力制御部を有している。この入力制御部は、上記並列に設けた自己同期型データ伝送路のうち１つを選択し、この選択した自己同期型データ伝送路と前段部の自己同期型データ伝送路との間の、転送要求信号、転送指示信号（アクノリッジ信号）、およびデータの受け渡しを仲介する。さらに、上記並列に設けた自己同期型データ伝送路の直後に、出力制御部を有している。この出力制御部は、上記並列に設けた自己同期型データ伝送路のうちの１つを選択し、この選択した自己同期型データ伝送路と後段部の自己同期型データ伝送路との間で、転送要求信号、転送指示信号（アクノリッジ信号）、およびデータの受け渡しを仲介する。
【００２８】
これにより、この発明のＦＩＦＯメモリ装置は、従来技術に示した自己同期型ＦＩＦＯメモリ装置がデータ伝送路を直列に接続したものであるのと比較して、自己同期型データ伝送路を縦列に通過するデータ経路を持たなくとも、従来技術と同じ機能を有するＦＩＦＯメモリ装置を実現できる。
【００２９】
すなわち、この発明では、自己同期型データ伝送路が並列に配置されているので、任意の自己同期型データ伝送路に対して、１回のデータ転送でデータの入力あるいは出力を行うことが可能となる。このため、この発明は、従来技術である自己同期型データ伝送路を直列に並べたＦＩＦＯメモリ装置と異なり、最大記憶容量に単純比例して遅延時間が増大することはない。したがって、この発明によれば、遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことができると共に、書き込みと読み出しの２つの非同期な要求を並行に処理できる。
【００３０】
また、一実施形態のＦＩＦＯメモリ装置では、上記入力制御部はシーケンサを有する。このシーケンサは、上記並列構造をなす自己同期型データ伝送路への上記第１の転送要求信号の伝送経路、および、上記並列構造をなす自己同期型データ伝送路からの上記第１のアクノリッジ信号の伝送経路を選択するとともに、上記入力データを上記並列構造をなす自己同期型データ伝送路へ分配する。この実施形態では、上記シーケンサを有する入力制御部により、簡単な回路構成で上記入力制御部を実現できる。
【００３１】
この実施形態では、並列に設けた自己同期型データ伝送路のうちのいずれを選択するかは、入力制御部の内部に設けたシーケンサによって決定する。上記シーケンサは、ＦＩＦＯメモリ装置内部の状態に依らず、前段部の自己同期型データ伝送路から入力される信号によって駆動される。
【００３２】
また、一実施形態のＦＩＦＯメモリ装置では、上記入力制御部は、入力段に自己同期信号制御回路とデータ保持回路とから成る自己同期型データ伝送路をさらに備える。上記自己同期型データ伝送路は、上記入力制御部より外部の前段部と上記入力制御部の上記シーケンサを含む内部回路との間で上記第１の転送要求信号および上記第１のアクノリッジ信号を伝達する。
【００３３】
この実施形態では、上記入力制御部が上記自己同期型データ伝送路を備えたことで、データ伝送速度を低下させることなく、データ伝送をより確実にすることができる。
【００３４】
また、一実施形態のＦＩＦＯメモリ装置では、上記出力制御部はシーケンサを有する。このシーケンサは、上記並列構造をなす自己同期型データ伝送路からの上記第２の転送要求信号の伝送経路および上記並列構造をなす自己同期型データ伝送路への上記第２のアクノリッジ信号の伝送経路を選択するとともに、上記並列構造をなす自己同期型データ伝送路から出力される出力データを選択する。この実施形態によれば、上記シーケンサを有する出力制御部により、簡単な回路構成で上記出力制御部を実現できる。
【００３５】
この実施形態では、上記並列に接続した自己同期型データ伝送路のうちのいずれを選択するかは、上記出力制御部の内部に設けたシーケンサによって決定する。上記シーケンサは、ＦＩＦＯメモリ装置内部の状態に依らず、後段部の自己同期型データ伝送路から入力される信号によって駆動される。
【００３６】
なお、入力制御部の内部のシーケンサと出力制御部の内部のシーケンサとは、互いに独立に動作するが、並列に接続した自己同期型データ伝送路を選択していく順序は、上記両シーケンサの間で同一とすることが望ましい。これにより、動的に段数が可変で、パイプラインの深さに単純比例する遅延時間を増大させずに実質的に物理的な記憶容量を増やすことが可能となる。
【００３７】
また、一実施形態のＦＩＦＯメモリ装置では、上記出力制御部は、出力段に自己同期信号制御回路とデータ保持回路とから成る自己同期型データ伝送路をさらに備える。そして、上記自己同期型データ伝送路は、上記出力制御部より外部の後段部と上記出力制御部の上記シーケンサを含む内部回路との間で上記第２の転送要求信号および上記第２のアクノリッジ信号を伝達する。
【００３８】
この実施形態では、上記出力制御部が上記自己同期型データ伝送路を備えたことで、データ伝送速度を低下させることなく、データ伝送をより確実にできる。
【００３９】
また、一実施形態のＦＩＦＯメモリ装置では、記憶可能なデータ量を変化させるための記憶容量制御信号が入力される入力端子を有する。
【００４０】
この実施形態の発明では、記憶可能なデータ量を変化させるための記憶容量制御信号が入力される入力端子を有したことで、ＦＩＦＯメモリ装置の段数を静的に可変とすることができる。つまり、この記憶容量制御信号でもって、動的に可変可能なＦＩＦＯメモリ装置の段数（すなわちＦＩＦＯメモリ装置の最大記憶容量）を定めるものである。
【００４１】
なお、緩衝機能に注目した場合、動的に可変な段数の上限は大きいほど望ましいが、一方で、パイプラインの出力が滞っている場合にパイプラインへの入力を停止させたい状況においては、ＦＩＦＯメモリ装置の記憶容量が過剰でない方が望ましい場合がある。
【００４２】
すなわち、自己同期型パイプラインにおいては、パイプラインの出力が滞った場合には、パイプラインの出口から入口に向けて、自律的にデータ転送が停止されて行き、最終的にパイプラインの入口において、アクノリッジ信号がＬレベルに固定されることで、前段部ではパイプラインが飽和したことを知ることが可能である。このような目的のためには、ＦＩＦＯメモリ装置の最大記憶容量を適切に制限することが望ましい。
【００４３】
また、一実施形態のＦＩＦＯメモリ装置では、上記入力制御部はシーケンサを有し、このシーケンサが上記第１の転送要求信号の伝送経路および上記第１のアクノリッジ信号の伝送経路を選択するとともに入力データを分配する。また、このシーケンサが上記記憶容量制御信号の入力端子を有する。
【００４４】
この実施形態では、入力制御部の内部のシーケンサによって、並列に設けた自己同期型データ伝送路のうち、上記記憶容量制御信号で指示された個数の自己同期型データ伝送路のみを選択の対象とする。
【００４５】
また、一実施形態のＦＩＦＯメモリ装置では、上記出力制御部は、上記第２の転送要求信号の伝送経路および上記第２のアクノリッジ信号の伝送経路を選択するとともに上記出力データを選択するためのシーケンサを有し、このシーケンサが上記記憶容量制御信号の入力端子を有する。
【００４６】
この実施形態では、出力制御部の内部のシーケンサによって、並列に設けた自己同期型データ伝送路のうち、上記記憶容量制御信号で指示された個数の自己同期型データ伝送路のみを選択の対象とする。
【００４７】
なお、上記記憶容量制御信号を、上記入力制御部ならびに上記出力制御部に入力するときには、選択の対象とする自己同期型データ伝送路の集合、およびその中での選択順序は、入力制御部の内部のシーケンサと出力制御部の内部のシーケンサにおいて同一とする。これにより、複雑な機構を追加することなく、用途に合わせてＦＩＦＯメモリ装置の最大記憶容量を適切に制限することが可能になる。
【００４８】
以上の手段により、動的および静的に段数が可変なＦＩＦＯメモリ装置を実現し、これにより、自己同期型パイプラインに容易に挿入でき、かつ、この発明の応用システムおよび内部のパイプライン処理に最適なＦＩＦＯメモリ装置が得られる。すなわち、パイプラインの深さに単純比例する遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことが可能なＦＩＦＯメモリ装置を実現可能とする。
【００４９】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。
【００５０】
（第１の実施の形態）
図１に、この発明の第１実施形態としての自己同期型ＦＩＦＯメモリ装置のブロック構成を示す。
【００５１】
この第１実施形態の自己同期型ＦＩＦＯメモリ装置１００は、入力端子ＲＳＴ０，ＣＩ０，ＲＩ０，およびＤ０を有し、さらに、出力端子ＣＯ０，ＲＯ０，Ｑ０を有する。また、このＦＩＦＯメモリ装置１００は、入力制御部１０１と出力制御部１０２、および、この入力制御部１０１と出力制御部１０２の間に並列に接続されたｎ個の自己同期型データ伝送路１１１〜１１ｎを備える。この自己同期型データ伝送路１１１〜１１ｎは、それぞれ、自己同期信号制御回路とデータ保持回路とからなり、この自己同期信号制御回路は、図８の自己同期信号制御回路８０４と同様の構成であり、上記データ保持回路は、図８のパイプラインレジスタ８０１と同様の構成である。
【００５２】
図１に示すように、このｎ個の自己同期型データ伝送路１１１，１１２，…，１１ｎは全て、入力制御部１０１と出力制御部１０２の間で並列に配置されている。また、このＦＩＦＯメモリ装置１００は、入力制御部１０１の入力側に前段部が接続され、出力制御部１０２の出力側に後段部が接続される。この前段部および後段部は、例えば、図７に示すような自己同期型データ伝送路７１１および７１２からなる。また、上記前段部および後段部は、例えば、このＦＩＦＯメモリ装置１００と同様の構成としてもよい。
【００５３】
入力制御部１０１は、上記前段部から入力される第１の転送要求信号が入力される入力端子ＣＩ１と、上記自己同期型データ伝送路１１１〜１１ｎからの第１のアクノリッジ信号を上記前段部に出力する出力端子ＲＯ１と、上記前段部からのデータが入力されるデータ入力端子Ｄ１を有している。この入力端子ＣＩ１，出力端子ＲＯ１，データ入力端子Ｄ１は、それぞれ、ＦＩＦＯメモリ装置１００の入力端子Ｄ０，出力端子ＲＯ０，入力端子Ｄ０に接続されている。
【００５４】
また、入力制御部１０１は、転送要求信号を出力するｎ個の出力端子ＣＯ１〜ＣＯｎと、アクノリッジ信号が入力されるｎ個の入力端子ＲＩ１〜ＲＩｎと、データを出力するｎ個のデータ出力端子Ｑ１〜Ｑｎを有する。この入力制御部１０１のｎ個の出力端子ＣＯ１〜ＣＯｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎの入力端子ＣＩ１１〜ＣＩ１ｎに接続されている。また、上記入力制御部１０１のｎ個の入力端子ＲＩ１〜ＲＩｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎのｎ個の出力端子ＲＯ１１〜ＲＯ１ｎに接続されている。また、上記入力制御部１０１のｎ個のデータ出力端子Ｑ１〜Ｑｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎのデータ入力端子Ｄ１１〜Ｄ１ｎに接続されている。
【００５５】
さらに、入力制御部１０１は初期化信号が入力される入力端子ＲＳＴ１を有し、この入力端子ＲＳＴ１はＦＩＦＯメモリ装置１００の入力端子ＲＳＴ０に接続されている。
【００５６】
（入力制御部１０１の動作）
この入力端子ＲＳＴ０に初期化信号が入力され、入力制御部１０１の入力端子ＲＳＴ１がＨレベルになると、入力制御部１０１は、その内部で、入力端子ＣＩ１と出力端子ＣＯ１を接続し、出力端子ＲＯ１と入力端子ＲＩ１を接続し、データ入力端子Ｄ１とデータ出力端子Ｑ１を接続して、初期化される。
【００５７】
そして、上記初期化以降、入力制御部１０１は、入力端子ＲＳＴ１がＬレベルの間は、入力端子ＣＩ１がＬレベルからＨレベルに変化する毎に、入力端子ＣＩ１と出力端子ＣＯ１〜ＣＯｎとの内部接続を切り替える。すなわち、上記レベル変化毎に、順に、出力端子ＣＯ２，…，ＣＯｎ，ＣＯ１，ＣＯ２，…を循環的に選択して、上記入力端子ＣＩ１に接続する。
【００５８】
同様に、上記初期化以降、入力制御部１０１は、入力端子ＲＳＴ１がＬレベルの間は、入力端子ＣＩ１がＬレベルからＨレベルに変化する毎に、出力端子ＲＯ１と入力端子ＲＩ１〜ＲＩｎとの内部接続を切り替える。つまり、上記レベル変化毎に、順に、入力端子ＲＩ２，…，ＲＩｎ，ＲＩ１，ＲＩ２，…を循環的に選択して、出力端子ＲＯ１に接続する。
【００５９】
同様に、上記初期化以降、入力制御部１０１は、入力端子ＲＳＴ１がＬレベルの間は、入力端子ＣＩ１がＬレベルからＨレベルに変化する毎に、データ入力端子Ｄ１とデータ出力端子Ｑ１〜Ｑｎとの内部接続を切り替える。すなわち、上記レベル変化毎に、順に、データ出力端子Ｑ２，…，Ｑｎ，Ｑ１，Ｑ２，…を循環的に選択して、データ入力端子Ｄ１に接続する。
【００６０】
（出力制御部１０２）
出力制御部１０２は、上記ｎ個の自己同期型データ伝送路１１１〜１１ｎからの第２の転送要求信号が入力されるｎ個の入力端子ＣＩ１〜ＣＩｎと、上記後段部からの第２のアクノリッジ信号を出力するｎ個の出力端子ＲＯ１〜ＲＯｎを有する。また、上記出力制御部１０２は、ｎ個の自己同期型データ伝送路１１１〜１１ｎからのデータが入力されるｎ個のデータ入力端子Ｄ１〜Ｄｎを有する。
【００６１】
このｎ個のデータ入力端子Ｄ１〜Ｄｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎのデータ出力端子Ｑ１１〜Ｑ１ｎに接続されている。また、上記ｎ個の出力端子ＲＯ１〜ＲＯｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎの入力端子ＲＩ１１〜ＲＩ１ｎに接続されている。また、上記ｎ個の入力端子ＣＩ１〜ＣＩｎは、それぞれ、ｎ個の自己同期型データ伝送路１１１〜１１ｎの出力端子ＣＯ１１〜ＣＯ１ｎに接続されている。
【００６２】
また、出力制御部１０２は、上記後段部に対して、第２の転送要求信号を出力する出力端子ＣＯ２と、上記後段部から入力される第２のアクノリッジ信号が入力される入力端子ＲＩ２および、データ出力端子Ｑ２を有している。この出力端子ＣＯ２，入力端子ＲＩ２，データ出力端子Ｑ２は、それぞれ、ＦＩＦＯメモリ装置１００の出力端子ＣＯ０，入力端子ＲＩ０，データ出力端子Ｑ０に接続されている。また、この出力制御部１０２は、初期化信号が入力される入力端子ＲＳＴ２を有し、この入力端子ＲＳＴ２は、ＦＩＦＯメモリ装置１００の入力端子ＲＳＴ０に接続されている。
【００６３】
この出力制御部１０２では、入力端子ＲＳＴ０から初期化信号が入力され、入力端子ＲＳＴ２がＨレベルになると、出力制御部１０２は初期化される。つまり、出力制御部１０２の内部で、入力端子ＣＩ１が出力端子ＣＯ２に接続され、入力端子ＲＩ２が出力端子ＲＯ１に接続され、データ入力端子Ｄ１がデータ出力端子Ｑ２に接続される。
【００６４】
この初期化の以降は、リセット入力端子ＲＳＴ２がＬレベルの間は、入力端子ＲＩ２がＬレベルからＨレベルに変化する毎に、出力端子ＣＯ２とｎ個の入力端子ＣＩ１〜ＣＩｎとの内部接続を切り替える。すなわち、上記レベル変化毎に、順に、入力端子ＣＩ２，　…　，ＣＩｎ，ＣＩ１，ＣＩ２，　…を循環的に選択して、上記出力端子ＣＯ２に接続する。
【００６５】
同様に、リセット入力端子ＲＳＴ２がＬレベルの間は、入力端子ＲＩ２がＬレベルからＨレベルに変化する毎に、入力端子ＲＩ２とｎ個の出力端子ＲＯ１〜ＲＯｎとの内部接続を切り替える。すなわち、上記レベル変化毎に、順に、出力端子ＲＯ２，　…　，ＲＯｎ，ＲＯ１，ＲＯ２，…を循環的に選択して、上記入力端子ＲＩ２に接続する。同様に、上記レベル変化毎に、順に、データ入力端子Ｄ２，…，Ｄｎ，Ｄ１，Ｄ２，…を循環的に選択して、データ出力端子Ｑ２に接続する。
【００６６】
（入力制御部１０１の内部構成）
次に、図２のブロック図を参照して、上記入力制御部１０１の内部構成を説明する。この入力制御部１０１は、自己同期型データ伝送路２０１と、シーケンサ２０２と、分配制御回路２０３と、データ分配回路２０４を有する。
【００６７】
上述したように、この入力制御部１０１は、初期化信号の入力端子ＲＳＴ１，上記前段部からのデータ入力端子Ｄ１，上記前段部からの第１の転送要求信号の入力端子ＣＩ１および上記ｎ個の自己同期型データ伝送路１１１〜１１ｎからの第１のアクノリッジ信号の入力端子ＲＩ１〜ＲＩｎを有する。また、さらに、この入力制御部１０１は、上記自己同期型データ伝送路１１１〜１１ｎへのデータ出力端子Ｑ１〜Ｑｎ，上記自己同期型データ伝送路１１１〜１１ｎへの第１の転送要求信号の出力端子ＣＯ１〜ＣＯｎおよび上記前段部への第１のアクノリッジ信号の出力端子ＲＯ１を有する。
【００６８】
上記シーケンサ２０２は、リセット信号の入力端子ＲＳＴ２２と、クロック信号の入力端子ＣＬＫ２２および、分配指示信号の出力端子ＳＥＱ２２を有する。上記入力端子ＣＬＫ２２は、自己同期型データ伝送路２０１の出力端子ＣＯ２１に接続されている。また、このシーケンサ２０２の入力端子ＲＳＴ２２は、入力制御部１０１の入力端子ＲＳＴ１に接続されている。
【００６９】
このシーケンサ２０２は、入力端子ＲＳＴ２２がＨレベルになると、出力端子ＳＥＱ２２の値を「１」にするように初期化される。この初期化以降、入力端子ＲＳＴ２２がＬレベルの間は、クロック信号の入力端子ＣＬＫ２２がＬレベルからＨレベルに変化する毎に、出力端子ＳＥＱ２２の値を、「２」、…、「ｎ」、「１」，「２」、…の順に循環的に変化させる。
【００７０】
また、分配制御回路２０３は、第１の転送要求信号が入力される入力端子ＣＩ２３と、第１の転送要求信号を出力する出力端子ＣＯ１３〜ＣＯｎ３と、第１のアクノリッジ信号（転送指示信号）が入力される入力端子ＲＩ１３〜ＲＩｎ３と、第１のアクノリッジ信号（転送指示信号）を出力する出力端子ＲＯ２３および、分配指示信号が入力される入力端子ＳＥＬ２３を有する。上記入力端子ＣＩ２３は、自己同期型データ伝送路２０１の出力端子ＣＯ２１に接続され、上記出力端子ＲＯ２３は、自己同期型データ伝送路２０１の入力端子ＲＩ２１と接続されている。
【００７１】
なお、上記自己同期型データ伝送路２０１を有さない場合には、分配制御回路２０３の入力端子ＣＩ２３と出力端子ＲＯ２３は、それぞれ、入力制御部１０１の入力端子ＣＩ１と出力端子ＲＯ１に直接接続してよい。同様に、上記自己同期型データ伝送路２０１を有さない場合には、シーケンサ２０２の入力端子ＣＬＫ２２は、入力制御部１０１の入力端子ＣＩ１に直接接続してよい。また、この分配制御回路２０３の入力端子ＳＥＬ２３は、シーケンサ２０２の出力端子ＳＥＱ２２に接続されている。
【００７２】
また、この分配制御回路２０３のｎ個の出力端子ＣＯ１３〜ＣＯｎ３は、それぞれ、入力制御部１０１のｎ個の出力端子ＣＯ１〜ＣＯｎに接続されている。また、この分配制御回路２０３のｎ個の入力端子ＲＩ１３〜ＲＩｎ３は、それぞれ、入力制御部１０１のｎ個の入力端子ＲＩ１〜ＲＩｎに接続されている。
【００７３】
この分配制御回路２０３は、シーケンサ２０２の端子ＳＥＱ２２から入力端子ＳＥＬ２３に入力された分配指示信号の信号値に従って、入力端子ＣＩ２３に入力された信号を、ｎ個の出力端子ＣＯ１３〜ＣＯｎ３のうちのいずれか１つに転送する。また同様に、この分配制御回路２０３は、入力端子ＳＥＬ２３の値に従って、ｎ個の入力端子ＲＩ１３〜ＲＩｎ３のいずれか１つの信号を出力端子ＲＯ２３に転送する。
【００７４】
また、データ分配回路２０４は、データの入力端子Ｄ２４と、データの出力端子Ｑ１４〜Ｑｎ４、および、上記分配指示信号の入力端子ＳＥＬ２４を有する。このデータの入力端子Ｄ２４は、自己同期型データ伝送路２０１のデータの出力端子Ｑ２１に接続されている。
【００７５】
なお、自己同期型データ伝送路２０１を有さない場合には、上記データ分配回路２０４の入力端子Ｄ２４は、直接、入力制御部１０１のデータ入力端子Ｄ１に接続してよい。また、このデータ分配回路２０４の入力端子ＳＥＬ２４は、シーケンサ２０２の端子ＳＥＱ２２に接続されている。
【００７６】
また、このデータ分配回路２０４のｎ個のデータ出力端子Ｑ１４〜Ｑｎ４は、それぞれ、入力制御部１０１のｎ個のデータ出力端子Ｑ１〜Ｑｎに接続されている。このデータ分配回路２０４は、シーケンサ２０２の端子ＳＥＱ２２から　入力端子ＳＥＬ２４に入力された分配指示信号の信号値に従って、データ入力端子Ｄ２４に入力された信号値を、ｎ個のデータ出力端子Ｑ１４〜Ｑｎ４のうちのいずれか１つに転送する。例えば、データ入力端子Ｄ２４に入力された信号値を、上記分配指示信号の値「１」，「２」，…，「ｎ」に対応して、データ出力端子Ｑ１４，Ｑ２４〜Ｑｎ４に転送する。
【００７７】
この入力制御部１０１におけるｎ個の出力端子ＣＯ１〜ＣＯｎの値（電位）が不安定にならないように、分配制御回路２０３の入力端子ＳＥＬ２３の値（電位）の変化は、分配制御回路２０３の入力端子ＣＩ２３がＨレベルにある間に行われることを保証しなければならない。このことは、この入力制御部１０１では、自己同期型データ伝送路２０１の出力端子ＣＯ２１から、シーケンサ２０２のクロック入力端子ＣＬＫ２２と分配制御回路２０３の入力端子ＣＩ２３に、同一の入力信号を与えることで、保証している。
【００７８】
すなわち、シーケンサ２０２の入力端子ＣＬＫ２２がＨレベルに変化した後、分配制御回路２０３の入力端子ＳＥＬ２３の値が変化するまでには、一定の時間が必要であるので、分配制御回路２０３の入力端子ＳＥＬ２３の値が変化する時には、自己同期型データ伝送路２０１の入力端子ＣＩ２１は、既に、Ｈレベルに安定していることが保証される。
【００７９】
また、分配制御回路２０３の入力端子ＣＩ２３が、Ｈレベルに変化した後、再び、Ｌレベルに変化するまでにかかる時間よりも、シーケンサ２０２のクロック信号入力端子ＣＬＫ２２がＨレベルに変化してから分配制御回路２０３の入力端子ＳＥＬ２３の値が変化するまでにかかる時間の方が十分に短いことは、自己同期型データ伝送路２０１の内部にある自己同期信号制御回路（図示せず）の構造から保証されている。
【００８０】
上記分配制御回路２０３の入力端子ＳＥＬ２３の値（電位）と入力端子ＣＩ２３の値（電位）との関係が保証される限りにおいて、シーケンサ２０２の入力端子ＣＬＫ２２への入力として、自己同期型データ伝送路２０１の出力端子ＲＯ２１（あるいは自己同期型データ伝送路２０１の内部にある自己同期信号制御回路）が出力する転送制御信号を用いてもよい。
【００８１】
なお、この入力制御部１０１における自己同期型データ伝送路２０１は、この発明における入力制御部の機能にとって本質的ではない。しかしながら、自己同期型データ伝送路２０１がない場合には、入力制御部１０１のデータ入力端子Ｄ１への入力データを、データ出力端子Ｑ１〜Ｑｎに分配するのに時間がかかる。したがって、自己同期型データ伝送路２０１を備えることは、データ伝送速度を低下させることなくデータ伝送をより確実にすることができる利点がある。
【００８２】
（出力制御部１０２の内部構成）
次に、図３のブロック図を参照して、図１における出力制御部１０２の内部構成を示す。この出力制御部１０２は、自己同期型データ伝送路３０１とシーケンサ３０２と選択制御回路３０３およびデータ選択回路３０４を有する。
【００８３】
また、この出力制御部１０２は、入力端子ＲＳＴ２とｎ個の入力端子Ｄ１〜Ｄｎとｎ個の入力端子ＣＩ１〜ＣＩｎおよび入力端子ＲＩ２を有する。さらに、この出力制御部１０２は、出力端子Ｑ２と出力端子ＣＯ２およびｎ個の出力端子ＲＯ１〜ＲＯｎを有する。
【００８４】
上記シーケンサ３０２は、リセット信号の入力端子ＲＳＴ３２，クロック信号の入力端子ＣＬＫ３２および、選択指示信号の出力端子ＳＥＱ３２を有する。このクロック信号の入力端子ＣＬＫ３２は、自己同期型データ伝送路３０１の出力端子ＲＯ３１に接続されている。また、入力端子ＲＳＴ３２は、出力制御部１０２の入力端子ＲＳＴ２に接続されている。
【００８５】
このシーケンサ３０２は、入力端子ＲＳＴ３２がＨレベルになると、出力端子ＳＥＱ３２の値を「１」にするように初期化され、その初期化以降、入力端子ＲＳＴ３２がＬレベルにある間は、クロック信号の入力端子ＣＬＫ３２がＬレベルからＨレベルに変化する毎に、出力端子ＳＥＱ３２の値を、「２」、…、「ｎ」、「１」，「２」、…の順に循環的に変化させる。
【００８６】
また、選択制御回路３０３は、第２の転送要求信号が入力されるｎ個の入力端子ＣＩ１３〜ＣＩｎ３と、転送要求信号を出力する出力端子ＣＯ３３と、上記後段部からの第２のアクノリッジ信号（転送指示信号）が入力される入力端子ＲＩ３３と、第２のアクノリッジ信号（転送指示信号）を出力するｎ個の出力端子ＲＯ１３〜ＲＯｎ３と、シーケンサ３０２からの選択指示信号が入力される入力端子ＳＥＬ３３を有する。また、この選択制御回路３０３の出力端子ＣＯ３３は自己同期型データ伝送路３０１の入力端子ＣＩ３１に接続され、入力端子ＲＩ３３はデータ伝送路３０１の出力端子ＲＯ３１と接続されている。
【００８７】
なお、自己同期型データ伝送路３０１を有さない場合は、上記選択制御回路３０３の出力端子ＣＯ３３，入力端子ＲＩ３３は、それぞれ、出力制御部１０２の出力端子ＣＯ２，入力端子ＲＩ２に直接接続してよい。同様に、自己同期型データ伝送路３０１を有さない場合は、シーケンサ３０２の入力端子ＣＬＫ３２は、出力制御部１０２の入力端子ＲＩ２に直接接続してよい。
【００８８】
また、この選択制御回路３０３の入力端子ＳＥＬ３３は、シーケンサ３０２の出力端子ＳＥＱ３２に接続されている。また、選択制御回路３０３のｎ個の入力端子ＣＩ１３〜ＣＩｎ３は、この出力制御部１０２のｎ個の入力端子ＣＩ１〜ＣＩｎに接続されている。また、この選択制御回路３０３のｎ個の出力端子ＲＯ１３〜ＲＯｎ３は、それぞれ、出力制御部１０２のｎ個の出力端子ＲＯ１〜ＲＯｎに接続されている。
【００８９】
この選択制御回路３０３は、シーケンサ３０２からの選択指示信号が入力される入力端子ＳＥＬ３３の値に従って、入力端子ＣＩ１３〜ＣＩｎ３のいずれか１つの端子の信号を選択して、出力端子ＣＯ３３に転送する。また同様に、選択制御回路３０３は、上記入力端子ＳＥＬ３３の値に従って、出力端子ＲＯ１３〜ＲＯｎ３のいずれか１つの端子を選択して、この選択した端子に入力端子ＲＩ３３からの第２のアクノリッジ信号を転送する。
【００９０】
また、データ選択回路３０４は、データが入力されるｎ個の入力端子Ｄ１４〜Ｄｎ４と、データを出力する出力端子Ｑ３４および、シーケンサ３０２からの選択指示信号が入力される入力端子ＳＥＬ３４を有する。この出力端子Ｑ３４は、自己同期型データ伝送路３０１のデータ入力端子Ｄ３１に接続されている。
【００９１】
なお、自己同期型データ伝送路３０１を有さない場合は、データ選択回路３０４のデータ出力端子Ｑ３４は、出力制御部１０２のデータ出力端子Ｑ２に直接接続してよい。
【００９２】
また、このデータ選択回路３０４の入力端子ＳＥＬ３４は、シーケンサ３０２の出力端子ＳＥＱ３２に接続されている。また、データ選択回路３０４のｎ個のデータ入力端子Ｄ１４〜Ｄｎ４は、それぞれ、出力制御部１０２のｎ個のデータ入力端子Ｄ１〜Ｄｎに接続されている。
【００９３】
また、データ選択回路３０４は、シーケンサ３０２から選択指示信号が入力される入力端子ＳＥＬ３４の値に従って、入力端子Ｄ１４〜Ｄｎ４のいずれか１つの端子の値を選択して、出力端子Ｑ３４に転送する。
【００９４】
ここで、出力制御部１０２の出力端子ＲＯ１〜ＲＯｎの値が不安定にならないように、選択制御回路３０３の入力端子ＳＥＬ３３の値の変化は、選択制御回路３０３の入力端子ＲＩ３３がＨレベルにある間に行われることを保証しなければならない。この保証は、図３の出力制御部１０２では、自己同期型データ伝送路３０１の出力端子ＲＯ３１から、シーケンサ３０２の入力端子ＣＬＫ３２と選択制御回路３０３の入力端子ＲＩ３３とに、同一の入力信号（第２のアクノリッジ信号）を与えることで実現している。
【００９５】
すなわち、この出力制御部１０２では、シーケンサ３０２の入力端子ＣＬＫ３２がＨレベルに変化した後、選択制御回路３０３の入力端子ＳＥＬ３３の値が変化するまでには一定の時間が必要であることから、選択制御回路３０３の入力端子ＳＥＬ３３の値が変化する時には、選択制御回路３０３の入力端子ＲＩ３３は、既に、Ｈレベルに安定していることが保証される。
【００９６】
また、選択制御回路３０３の入力端子ＲＩ３３が、Ｈレベルに変化した後、再び、Ｌレベルに変化するまでにかかる時間よりも、シーケンサ３０２の入力端子ＣＬＫ３２がＨレベルに変化してから、選択制御回路３０３の入力端子ＳＥＬ３３の値が変化するまでにかかる時間の方が十分に短いことは、自己同期型データ伝送路３０１に含まれる自己同期信号制御回路の構造から保証されている。上記選択制御回路３０３の入力端子ＳＥＬ３３の値と入力端子ＲＩ３３の値との関係が保証される限りにおいて、シーケンサ３０２の入力端子ＣＬＫ３２の入力として、自己同期型データ伝送路３０１の内部にある自己同期信号制御回路（図示せず）が出力する転送制御信号を用いてもよい。
【００９７】
なお、この実施形態における出力制御部の機能にとって、この出力制御部１０２が備える自己同期型データ伝送路３０１は本質的ではない。しかしながら、自己同期型データ伝送路３０１を有さない場合には、データ入力端子Ｄ１〜Ｄｎに入力されるデータのうちの１つを選択して、データ出力端子Ｑ２に転送するのに時間がかかることを考慮すれば、データ伝送速度を低下させることなく、データ伝送をより確実にする目的で、この自己同期型データ伝送路３０１を設置することが望ましい。
【００９８】
この第１実施形態のＦＩＦＯメモリ装置１００では、上記入力制御部１０１は、上記並列接続された自己同期型データ伝送路１１１〜１１ｎのうちの１つを選択し、この選択された１つの自己同期型データ伝送路に対して上記前段部から入力される第１の転送要求信号を伝達する。また、上記入力制御部１０１は、上記選択された自己同期型データ伝送路から出力される第１のアクノリッジ信号を上記前段部に対して伝達する。また、上記入力制御部１０１は、上記第１の転送要求信号と上記第１のアクノリッジ信号とに基いて、上記選択された自己同期型データ伝送路へのデータ転送が可能か否かを判断し、上記選択された自己同期型データ伝送路へのデータ転送が可能な状態ならば、上記選択された自己同期型データ伝送路に対して上記前段部から入力される入力データを出力する。
【００９９】
また、上記出力制御部１０２は、上記並列接続された自己同期型データ伝送路１１１〜１１ｎのうちの１つを選択し、この選択された自己同期型データ伝送路から出力される第２の転送要求信号を後段部に出力する。また、上記出力制御部１０２は、上記後段部から入力される第２のアクノリッジ信号を上記選択された自己同期型データ伝送路に出力する。また、上記出力制御部１０２は、上記第２の転送要求信号と上記第２のアクノリッジ信号に基いて、上記後段部へのデータ転送が可能か否かを判断し、上記後段部へのデータ転送が可能な状態ならば、上記選択された自己同期型データ伝送路から出力される出力データを上記後段部に出力する。
【０１００】
この第１実施形態のＦＩＦＯメモリ装置では、ｎ個の自己同期型データ伝送路１１１〜１１ｎを並列に並べた構造を有し、このｎ個の自己同期型データ伝送路１１１〜１１ｎをデータ伝送およびデータ保持のための素子として使用している。
【０１０１】
上記入力制御部１０１は、上記並列に設けた自己同期型データ伝送路１１１〜１１ｎのうち１つを選択し、選択した１つの自己同期型データ伝送路と前段部に含まれる自己同期型データ伝送路との間で、第１の転送要求信号、第１のアクノリッジ信号（転送指示信号）、およびデータの受け渡しを仲介する。さらに、上記出力制御部１０２は、上記並列に設けたｎ個の自己同期型データ伝送路１１１〜１１ｎのうちの１つを選択し、選択した１つの自己同期型データ伝送路と上記後段部に含まれる自己同期型データ伝送路との間で、第２の転送要求信号、第２のアクノリッジ信号（転送指示信号）、およびデータの受け渡しを仲介する。
【０１０２】
この第１実施形態の自己同期型ＦＩＦＯメモリ装置１００では、従来のデータ伝送路を直列に接続した自己同期型ＦＩＦＯメモリ装置と異なり、ｎ個の自己同期型データ伝送路１１１〜１１ｎが並列に配置されているので、任意の自己同期型データ伝送路に対して、１回のデータ転送でデータの入力あるいは出力を行うことが可能となる。このため、この第１実施形態では、従来の自己同期型データ伝送路を直列に並べたＦＩＦＯメモリ装置と異なり、最大記憶容量に単純比例して遅延時間が増大することはない。したがって、遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことができると共に、書き込みと読み出しの２つの非同期な要求を並行に処理できる。
【０１０３】
また、この第１実施形態の自己同期型ＦＩＦＯメモリ装置１００では、上記入力制御部１０１はシーケンサ２０２を有する。このシーケンサ２０２は、上記分配制御回路２０３に分配指示信号を入力することで、分配制御回路２０３に、並列接続されたｎ個の自己同期型データ伝送路１１１〜１１ｎのうちの１つへの第１の転送要求信号の伝送経路を選択する。また、このシーケンサ２０２は、上記分配制御回路２０３へ、上記分配指示信号を入力することで、上記分配制御回路２０３に、上記並列接続されたｎ個の自己同期型データ伝送路１１１〜１１ｎからの上記第１のアクノリッジ信号の伝送経路を選択させる。さらに、上記シーケンサ２０２は、上記分配指示信号をデータ分配回路２０４に入力することで、データ分配回路２０４に、上記入力データを上記ｎ個の自己同期型データ伝送路１１１〜１１ｎのうちの１つへ分配させる。
【０１０４】
このように、この第１実施形態では、並列に設けたｎ個の自己同期型データ伝送路１１１〜１１ｎのうちのいずれを選択するかは、上記入力制御部１０１の内部に設けたシーケンサ２０２によって決定する。上記シーケンサ２０２は、ＦＩＦＯメモリ装置１００内部の状態に依らず、上記前段部に含まれる自己同期型データ伝送路から入力される転送要求信号の伝播によって駆動される。この第１実施形態では、上記シーケンサ２０２を有する入力制御部１０１によって、簡単な回路構成でもって入力制御部１０１を実現できる。
【０１０５】
また、この第１実施形態の自己同期型ＦＩＦＯメモリ装置１００では、出力制御部１０２はシーケンサ３０２を有する。このシーケンサ３０２は、選択指示信号を選択制御回路３０３に入力することで、選択制御回路３０３を制御して、選択制御回路３０３に上記ｎ個の自己同期型データ伝送路１１１〜１１ｎからの上記第２の転送要求信号の伝送経路を選択させる。また、このシーケンサ３０２は、選択指示信号を選択制御回路３０３に入力することで、上記ｎ個の自己同期型データ伝送路１１１〜１１ｎへの上記第２のアクノリッジ信号の伝送経路を上記選択制御回路３０３に選択させる。さらに、このシーケンサ３０２は、上記選択支持信号を上記データ選択回路３０４に入力することで、上記ｎ個の自己同期型データ伝送路１１１〜１１ｎから出力される出力データのうちの１つを上記データ選択回路３０４に選択させる。
【０１０６】
このように、この第１実施形態では、上記並列に設けたｎ個の自己同期型データ伝送路１１１〜１１ｎのうちのいずれを選択するかは、上記出力制御部１０２の内部に設けたシーケンサ３０２によって決定する。上記シーケンサ３０２は、ＦＩＦＯメモリ装置１００内部の状態に依らず、後段部に含まれる自己同期型データ伝送路から入力されるアクノリッジ信号（転送支持信号）の伝播によって駆動される。この第１実施形態では、シーケンサ３０２を有する出力制御部１０２によって、簡単な回路構成でもって出力制御部１０２を実現できる。
【０１０７】
なお、上記入力制御部１０１の内部のシーケンサ２０２と出力制御部１０２の内部のシーケンサ３０２とは、互いに独立に動作するが、並列に設けたｎ個の自己同期型データ伝送路１１１〜１１ｎを選択していく順序は、上記両シーケンサ２０２，３０２の間で同一とすることが望ましい。これにより、動的に段数が可変で、遅延時間を増大させずに実質的に物理的な記憶容量を増やすことが可能となる。
【０１０８】
（第２の実施の形態）
次に、図４に、この発明の第２実施形態としての自己同期型ＦＩＦＯメモリ装置４００を示す。この自己同期型ＦＩＦＯメモリ装置４００は、データ記憶容量制御信号を扱う入力制御部４０１と出力制御部４０２とを備え、ｎ個の自己同期型データ伝送路４１１〜４１ｎを備える。このｎ個の自己同期型データ伝送路４１１〜４１ｎは、入力制御部４０１と出力制御部４０２との間に並列に接続されている。
【０１０９】
この自己同期型ＦＩＦＯメモリ装置４００は、入力端子ＲＳＴ０と入力端子ＥＮ０と入力端子ＣＩ０と入力端子ＲＩ０と入力端子Ｄ０を有する。さらに、このＦＩＦＯメモリ装置４００は、出力端子ＣＯ０と出力端子ＲＯ０と出力端子Ｑ０を有する。
【０１１０】
この第２実施形態は、記憶容量制御信号が入力される入力端子ＥＮ０が、入力制御部４０１の入力端子ＥＮ１と出力制御部４０２の入力端子ＥＮ２に接続されている点だけが、図１に示した第１実施形態の自己同期型ＦＩＦＯメモリ装置１００の接続構造と異なる。
【０１１１】
この第２実施形態では、ＦＩＦＯメモリ装置４００の入力端子ＥＮ０が値「ｎ」を示している場合、入力制御部４０１は第１実施形態の入力制御部１０１と同様に動作し、出力制御部４０２は第１実施形態の出力制御部１０２と同様に動作する。
【０１１２】
一方、入力端子ＥＮ０が値「１」を示している場合は、入力制御部４０１は常に自己同期型データ伝送路４１１のみと内部接続を行うよう動作する。同様に、入力端子ＥＮ０が値「１」を示している場合、出力制御部４０２は常に自己同期型データ伝送路４１１のみと内部接続を行うように動作する。したがって、入力端子ＥＮ０に入力される記憶容量制御信号は、入力制御部４０１と出力制御部４０２との間に記憶し得るデータ数として、「１」から「ｎ」の範囲内のいずれかの整数値を選択するよう制御する信号である。
【０１１３】
次に、図５のブロック図に、図４における入力制御部４０１の構成を示す。この入力制御部４０１は、自己同期型データ伝送路５０１とシーケンサ５０２と分配制御回路５０３とデータ分配回路５０４を備える。
【０１１４】
この入力制御部４０１は、入力端子ＲＳＴ１，ＥＮ１，Ｄ１，ＣＩ１およびｎ個の入力端子ＲＩ１〜ＲＩｎを有する。さらに、この入力制御部４０１は、ｎ個の出力端子Ｑ１〜Ｑｎとｎ個の出力端子ＣＯ１〜ＣＯｎと１個の出力端子ＲＯ１を有する。
【０１１５】
この入力制御部４０１は、記憶容量制御信号が入力される入力端子ＥＮ１がシーケンサ５０２の入力端子ＥＮ５２に接続されている点のみが、図２に示した入力制御部１０１における接続構造と異なる。
【０１１６】
この入力制御部４０１では、入力端子ＥＮ１が１からｎの範囲内の値ｉを示しているときに、シーケンサ５０２の出力端子ＳＥＱ５２の値が１からｉの範囲内に限定される点のみが、図２における第１実施形態のシーケンサ２０２と異なる。すなわち、入力制御部４０１の入力端子ＥＮ１の値ｉが、ｉ＝ｎであるときに、このシーケンサ５０２は図２のシーケンサ２０２と全く同様に動作する。一方、入力制御部４０１の入力端子ＥＮ１の値ｉがｉ＝１であるとき、シーケンサ５０２は出力端子ＳＥＱ５２の値として常に１を出力する。これにより、データ分配回路５０４と分配制御回路５０３は、上記自己同期型データ伝送路４１１との伝送路を選択する。
【０１１７】
次に、図６のブロック図に、この第２実施形態の出力制御部４０２の構成を示す。この出力制御部４０２は、自己同期型データ伝送路６０１とシーケンサ６０２と選択制御回路６０３とデータ選択回路６０４を備える。また、この出力制御部４０２は、入力端子ＲＳＴ２と入力端子ＥＮ２とｎ個の入力端子Ｄ１〜Ｄｎとｎ個の入力端子ＣＩ１〜ＣＩｎと入力端子ＲＩ２を備える。
【０１１８】
さらに、この出力制御部４０２は、出力端子Ｑ２と出力端子ＣＯ２およびｎ個の出力端子ＲＯ１〜ＲＯｎを備える。この出力制御部４０２は、記憶容量制御信号が入力される入力端子ＥＮ２がシーケンサ６０２の入力端子ＥＮ６２に接続されている点のみが、図３に示した第１実施形態の出力制御部１０２と異なる接続構造になっている。
【０１１９】
この出力制御部４０２は、入力端子ＥＮ２が１からｎまでの範囲の値ｉを示しているときに、シーケンサ６０２の出力端子ＳＥＱ６２の値が１からｉまでの範囲に限定される点だけが、図３における第１実施形態のシーケンサ３０２と異なる。すなわち、この出力制御部４０２では、入力端子ＥＮ２の値ｉがｉ＝ｎであるとき、シーケンサ６０２は図３におけるシーケンサ３０２と全く同様に動作する。一方、入力端子ＥＮ２の値ｉがｉ＝１であるとき、シーケンサ６０２は出力端子ＳＥＱ６２の値として常に１を出力する。これにより、データ選択回路６０４と選択制御回路６０３は、上記自己同期型データ伝送路４１１との伝送路を選択する。
【０１２０】
したがって、この第２実施形態によれば、記憶可能なデータ量を変化させるための記憶容量制御信号の入力端子ＥＮ０，ＥＮ１，ＥＮ２，を有したことで、ＦＩＦＯメモリ装置４００の段数を静的に可変とすることができる。つまり、この記憶容量制御信号でもって、動的に可変可能なＦＩＦＯメモリ装置の段数（すなわちＦＩＦＯメモリ装置の最大記憶容量）を定めることができる。
【０１２１】
緩衝機能に注目した場合、動的に可変な段数の上限は大きいほど望ましいが、一方で、パイプラインの出力が滞っている場合にパイプラインへの入力を停止させたい状況においては、ＦＩＦＯメモリ装置の記憶容量が過剰でない方が望ましい。すなわち、自己同期型パイプラインにおいては、パイプラインの出力が滞った場合には、パイプラインの出口から入口に向けて、自律的にデータ転送が停止されて行き、最終的にパイプラインの入口において、アクノリッジ信号がＬレベルに固定されることで、前段部ではパイプラインが飽和したことを知ることが可能である。このような目的のためには、ＦＩＦＯメモリ装置の最大記憶容量を適切に制限することが望ましい。
【０１２２】
また、この第２実施形態では、上記入力制御部４０１がシーケンサ５０２を有し、出力制御部４０２がシーケンサ６０２を有し、このシーケンサ５０２，６０２が記憶容量制御信号の入力端子ＥＮ５２，ＥＮ６２を有する。そして、上記記憶容量制御信号を、上記入力制御部４０１ならびに上記出力制御部４０２に入力するときには、選択の対象とするｎ個の自己同期型データ伝送路４１１〜４１ｎの集合、およびその中での選択順序は、入力制御部４０１の内部のシーケンサ５０２と出力制御部４０２の内部のシーケンサ６０２において同一とする。これにより、複雑な機構を追加することなく、用途に合わせてＦＩＦＯメモリ装置の最大記憶容量を適切に制限することが可能になる。
【０１２３】
（応用システム）
次に、図７に、上記第１実施形態の自己同期型ＦＩＦＯメモリ装置１００を備えた自己同期型パイプラインシステムを示す。この自己同期型パイプラインシステムは、自己同期型データ伝送路７１１と７１２との間に、上記自己同期型ＦＩＦＯメモリ装置１００が接続されている。この自己同期型パイプラインシステムでは、自己同期型データ伝送路７１１と自己同期型ＦＩＦＯメモリ装置１００と自己同期型データ伝送路７１２とが縦列に接続されている。
【０１２４】
この自己同期型パイプラインシステムでは、組み合わせ回路７２１が自己同期型データ伝送路７１１と自己同期型ＦＩＦＯメモリ装置１００との間に接続されている。また、組み合わせ回路７２２が自己同期型ＦＩＦＯメモリ装置１００と自己同期型データ伝送路７１２との間に接続されている。
【０１２５】
上記自己同期型データ伝送路７１１は、転送要求信号の入力端子ＣＩと、第１の転送要求信号の出力端子ＣＯと、第１のアクノリッジ信号（転送指示信号）の入力端子ＲＩと、アクノリッジ信号（転送指示信号）の出力端子ＲＯと、データ入力端子Ｄと、データ出力端子Ｑを備える。また、自己同期型データ伝送路７１２は、第２の転送要求信号の入力端子ＣＩと、転送要求信号の出力端子ＣＯと、アクノリッジ信号（転送指示信号）の入力端子ＲＩと、第２のアクノリッジ信号（転送指示信号）の出力端子ＲＯと、データ入力端子Ｄと、データ出力端子Ｑを備える。
【０１２６】
この自己同期型パイプラインシステムでは、自己同期型データ伝送路７１１のデータ入力端子Ｄにデータが入力される。そして、自己同期型データ伝送路７１１のデータ出力端子Ｑから出力されたデータは、組み合わせ回路７２１を経由して、ＦＩＦＯメモリ装置１００のデータ入力端子Ｄ０に入力される。
【０１２７】
そして、ＦＩＦＯメモリ装置１００のデータ出力端子Ｑ０から出力されたデータは、組み合わせ回路７２２を経由して、自己同期型データ伝送路７１２のデータ入力端子Ｄに入力される。さらに、この自己同期型データ伝送路７１２は、データ出力端子Ｑからデータを出力する。
【０１２８】
この応用システムとしての自己同期型パイプラインシステムでは、自己同期型データ伝送路７１１，７１２と自己同期型ＦＩＦＯメモリ装置１００は、その内部における物理的な記憶容量の差異を除けば、互いに置き換えて使用可能な構造を有する。
【０１２９】
この自己同期型パイプラインシステムのより具体的な応用システムの一例として、自己同期型の演算パイプラインが考えられる。この演算パイプラインでは、組み合わせ回路７２１の入力側に自己同期型データ伝送路７１１が配置され、組み合わせ回路７２２の出力側に自己同期型データ伝送路７１２が配置されている。これにより、上記組み合わせ回路７２１と７２２は、パイプライン化された演算器をなし、組み合わせ回路７２１が演算の前半部を処理する演算器をなし、組み合わせ回路７２２が演算の後半部を処理する演算器をなす。
【０１３０】
この演算パイプラインでは、演算の内容によって、組み合わせ回路７２２での演算処理時間が組み合わせ回路７２１の処理時間よりも長くなる可能性がある場合、自己同期型データ伝送路７１２は、自己同期型データ伝送路７１２の出力端子ＲＯがＬレベルからＨレベルへ立ち上がるタイミングを一時的に遅らせるよう制御することによって、組み合わせ回路７２２の演算処理時間を十分に確保できるようにする。
【０１３１】
ここで、もし、上記自己同期型ＦＩＦＯメモリ装置１００がない場合には、組み合わせ回路７２２の処理が終了するまで、自己同期型データ伝送路７１１は新たなデータを保持することができず、結果的に、演算パイプライン全体の処理能力が低下してしまう。
【０１３２】
これに対し、上記自己同期型ＦＩＦＯメモリ装置１００を備えている場合では、この自己同期型ＦＩＦＯメモリ装置１００が飽和しない限り、自己同期型データ伝送路７１２の出力端子ＲＯがＬレベルに固定されている間も、組み合わせ回路７２１は後続のデータ列に対する演算を進めることができる。
【０１３３】
さらにその後、自己同期型データ伝送路７１２の出力端子ＲＯがＨレベルとなったとき、自己同期型ＦＩＦＯメモリ装置１００内に保存されていたデータ列を、可能な限り短い間隔で、組み合わせ回路７２２に供給することが可能になる。
【０１３４】
このように、上記第１の実施形態の自己同期型ＦＩＦＯメモリ装置１００は、自己同期型データ伝送路７１１，７１２と組み合わせ回路７２１，７２２を備えた演算パイプラインシステムにおける任意の箇所に容易に挿入することが可能であり、演算パイプラインシステムの演算処理能力を高く維持することが可能になる。
【０１３５】
【発明の効果】
以上より明らかなように、この発明の自己同期型ＦＩＦＯメモリ装置は、複数の自己同期型データ伝送路を並列に並べた構造を有する。この並列に設けた自己同期型データ伝送路の直前には、入力制御部を有している。この入力制御部は、上記並列に設けた自己同期型データ伝送路のうち１つを選択し、この選択した自己同期型データ伝送路と前段部の自己同期型データ伝送路との間の、転送要求信号、転送指示信号（アクノリッジ信号）、およびデータの受け渡しを仲介する。さらに、上記並列に設けた自己同期型データ伝送路の直後に出力制御部を有している。この出力制御部は、上記並列に設けた自己同期型データ伝送路のうちの１つを選択し、選択した自己同期型データ伝送路と後段部の自己同期型データ伝送路との間で、転送要求信号、転送指示信号（アクノリッジ信号）、およびデータの受け渡しを仲介する。
【０１３６】
これにより、この発明の自己同期型ＦＩＦＯメモリ装置は、従来技術である自己同期型データ伝送路を直列に並べたＦＩＦＯメモリ装置と異なり、最大記憶容量に単純比例して遅延時間が増大することはない。したがって、この発明によれば、遅延時間を増大させずに、実質的に物理的な記憶容量を増やすことができると共に、書き込みと読み出しの２つの非同期な要求を並行に処理できる。
【図面の簡単な説明】
【図１】この発明の自己同期型ＦＩＦＯメモリ装置の第１実施形態の構成を示すブロック図である。
【図２】上記第１実施形態の入力制御部１０１の構成を示すブロック図である。
【図３】上記第１実施形態の出力制御部１０２の構成を示すブロック図である。
【図４】この発明の記憶容量制御信号を扱う第２実施形態の自己同期型ＦＩＦＯメモリ装置の構成を示すブロック図である。
【図５】上記第２実施形態の入力制御部４０１の構成を示すブロック図である。
【図６】上記第２実施形態の出力制御部４０２の構成を示すブロック図である。
【図７】上記第１実施形態の自己同期型ＦＩＦＯメモリ装置１００を挿入した自己同期型パイプラインシステムの一例を示す図である。
【図８】自己同期型データ伝送路を縦列に接続した従来のＦＩＦＯメモリ装置の構成を示す図である。
【図９】上記従来のＦＩＦＯメモリ装置およびこの発明の実施の形態に適用される自己同期信号制御回路の一例を示す回路図である。
【図１０】上記従来のＦＩＦＯメモリ装置における自己同期型パイプラインのタイミングチャートの一例を示す図である。
【符号の説明】
１００…自己同期型ＦＩＦＯメモリ装置、１０１…入力制御部、
１０２…出力制御部、１１１，１１２，１１ｎ…自己同期型データ伝送路、
２０１…自己同期型データ伝送路、
２０２…シーケンサ、２０３…分配制御回路、２０４…データ分配回路、
３０２…シーケンサ、３０３…選択制御回路、３０４…データ選択回路、
４００…記憶容量制御信号の入力端子付きの自己同期型ＦＩＦＯメモリ装置、
４０１…記憶容量制御信号の入力端子付き入力制御部、
４０２…記憶容量制御信号の入力端子付き出力制御部、
４１１，４１２，４１ｎ…自己同期型データ伝送路、
５０１…自己同期型データ伝送路、
５０２…記憶容量制御信号の入力端子付きシーケンサ、
５０３…分配制御回路、５０４…データ分配回路、
６０１…自己同期型データ伝送路、
６０２…記憶容量制御信号の入力端子付きシーケンサ、
６０３…選択制御回路、６０４…データ選択回路、
７１１，７１２…自己同期型データ伝送路、７２１，７２２…組み合わせ回路、
８００…従来の自己同期型ＦＩＦＯメモリ装置、
８０１，８０２，８０３…パイプラインレジスタ、
８０４，８０５，８０６…自己同期信号制御回路、
８１１，８１２，８１３…自己同期型データ伝送路、９０１…ＣＩ信号端子、
９０２…ＲＯ信号端子、９０３…ＣＰパルス信号端子、
９０４…ＣＯ信号端子、９０５…ＲＩ信号端子、
９０６，９０８…ＲＳフリップフロップ、９０７…４入力ＮＡＮＤゲート。
【図１】
2004071103.tif 000003
【図２】
2004071103.tif 000004
【図３】
2004071103.tif 000005
【図４】
2004071103.tif 000006
【図５】
2004071103.tif 000007
【図６】
2004071103.tif 000008
【図７】
2004071103.tif 000009
【図８】
2004071103.tif 000010
【図９】
2004071103.tif 000011
【図１０】
2004071103.tif 000012