(57)【特許請求の範囲】
【請求項１】
複数の双方向レジスタユニットを縦続接続して構成するシフトレジスタであって、
前記各双方向レジスタユニットの入出力方向を指定された同一のシフト方向へ切り替える入出力方向切替手段と、
前記各双方向レジスタユニットのうち指定された双方向レジスタユニットを選択する双方向レジスタユニット選択手段と、
縦続接続した前記双方向レジスタユニット群の前記双方向レジスタユニット選択手段により選択された前記双方向レジスタユニットから終端までの前記双方向レジスタユニットにシフトクロックを選択的に供給するシフトクロック供給手段とを備え、
前記各双方向レジスタユニットは、
直接にデータを入出力することが可能な直接入出力端子と、
前記入出力方向切替手段によって前記入出力方向が前段から後段へのシフト方向へ切り替えられた場合、保持しているデータを後段の双方向レジスタユニットへ出力する手段と、
前記入出力方向切替手段によって前記入出力方向が前段から後段へのシフト方向へ切り替えられた場合、前記双方向レジスタユニット選択手段によって選択されていることを条件として、前記シフトクロック供給手段からのシフトクロックの供給を受けて、前記直接入出力端子からのデータを取り込んで保持する手段と、
前記入出力方向切替手段によって前記入出力方向が前段から後段へのシフト方向へ切り替えられた場合、前記双方向レジスタユニット選択手段によって選択されていないことを条件として、前記シフトクロック供給手段からのシフトクロックの供給を受けて、前段の双方向レジスタユニットからのデータを取り込んで保持する手段と、
前記入出力方向切替手段によって前記入出力方向が後段から前段へのシフト方向へ切り替えられた場合、保持しているデータを前段の双方向レジスタユニットへ出力する手段と、
前記入出力方向切替手段によって前記入出力方向が後段から前段へのシフト方向へ切り替えられた場合、前記シフトクロック供給手段からのシフトクロックの供給を受けて、後段の双方向レジスタユニットからのデータを取り込んで保持する手段と
を備えたことを特徴とするシフトレジスタ。
【請求項２】
前記双方向レジスタユニットは、
並列配置された複数の双方向レジスタから構成され、
これらの双方向レジスタは、前記シフトクロックが同期して印加され、かつそれぞれの直接入出力端子からの入出力動作が同期して行われる
ことを特徴とする請求項１記載のシフトレジスタ。
【請求項３】
格納されたデータ内容を指示するとこのデータが格納されている前記双方向レジスタユニットに対応した番号が出力される手段をさらに有することを特徴とする請求項１又は請求項２記載のシフトレジスタ。
【請求項４】
前記双方向レジスタユニットは、
最後尾検出情報の入出力を行う前記双方向レジスタをさらに有し、かつ
前記最後尾検出情報が格納されている前記双方向レジスタユニットに対応した番号が出力される手段をさらに有する
ことを特徴とする請求項２記載のシフトレジスタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の双方向レジスタユニットを縦続接続して構成したシフトレジスタに関し、特に保持しているデータ列に対するデータ挿入やデータ削除等の操作を高速に行うことができるシフトレジスタに関する。
【０００２】
【従来の技術】
通信装置等でデータを時刻順あるいはアドレス順に並べ替えて、順序よく整理したい場合にはデータ列の操作が必要となる。従来、このような機能の実現は、ソフトウェア処理によって行われていた。例えば、データ列中へのデータの挿入であれば、プログラムによって新しいデータを割り込ませたい場所から後ろに位置しているデータ群を１つずつすべてずらしてゆき、空いた場所に新しいデータを割り込ませるという手法が一般的であった。このため、データを１つ割り込ませるだけであっても多大な時間を要するという問題点があった。
【０００３】
この問題を解決するため、本願発明者は、特開２００１−１２６４９１において、データ列に対するデータ挿入操作（データの構築）を比較的簡単なハードウェア的構成を用いることで従来のソフトウェア処理に比べて格段に高速かつ簡単に行うためのシフトレジスタを提案している。
【０００４】
【発明が解決しようとする課題】
しかしながら、特開２００１−１２６４９１で示したシフトレジスタは、データ列中へのデータの挿入を高速かつ簡単に行うことができるが、保持しているデータ列から特定のデータを削除しようとすると、処理時間がかかるという問題があった。これは、特定のデータを削除するためには、削除したいデータが記録されているシフトレジスタユニットの後段の連続するシフトレジスタユニットに記録されているデータを逐次読み出し、前段のシフトレジスタユニットに書き込む動作を繰り返す必要があるためである。
本発明の目的は、データ列中へのデータの挿入およびデータ列中からのデータの削除のようなデータ列に対する操作を、比較的簡単なハードウェア的構成を用いて格段に高速かつ簡単に行うためのシフトレジスタを提案することにある。
【０００５】
【課題を解決するための手段】
上述した課題を解決するために、本発明のシフトレジスタは、複数の双方向レジスタユニットを縦続接続して構成するシフトレジスタであって、各双方向レジスタユニットの入出力方向を指定された同一のシフト方向へ切り替える入出力方向切替手段と、各双方向レジスタユニットのうち指定された双方向レジスタユニットを選択する双方向レジスタユニット選択手段と、縦続接続した双方向レジスタユニット群の双方向レジスタユニット選択手段により選択された双方向レジスタユニットから終端までの双方向レジスタユニットにシフトクロックを選択的に供給するシフトクロック供給手段とを備え、各双方向レジスタユニットは、直接にデータを入出力することが可能な直接入出力端子と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、保持しているデータを後段の双方向レジスタユニットへ出力する手段と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、双方向レジスタユニット選択手段によって選択されていることを条件として、シフトクロック供給手段からのシフトクロックの供給を受けて、直接入出力端子からのデータを取り込んで保持する手段と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、双方向レジスタユニット選択手段によって選択されていないことを条件として、シフトクロック供給手段からのシフトクロックの供給を受けて、前段の双方向レジスタユニットからのデータを取り込んで保持する手段と、入出力方向切替手段によって入出力方向が後段から前段へのシフト方向へ切り替えられた場合、保持しているデータを前段の双方向レジスタユニットへ出力する手段と、入出力方向切替手段によって入出力方向が後段から前段へのシフト方向へ切り替えられた場合、シフトクロック供給手段からのシフトクロックの供給を受けて、後段の双方向レジスタユニットからのデータを取り込んで保持する手段とを備えたことによって特徴づけられる。
【０００６】
このシフトレジスタの一構成例は、双方向レジスタユニットが並列配置された複数の双方向レジスタから構成され、これらの双方向レジスタは、シフトクロックが同期して印加され、かつそれぞれの直接入出力端子からの入出力動作が同期して行われる。また、別の構成例は格納されたデータ内容を指示するとこのデータが格納されている双方向レジスタユニットに対応した番号が出力される手段をさらに有する。さらに別の構成例は、双方向レジスタユニットが最後尾検出情報の入出力を行う双方向レジスタをさらに有し、かつ最後尾検出情報が格納されている双方向レジスタユニットに対応した番号が出力される手段をさらに有する。
【０００７】
【発明の実施の形態】
以下に図を用いて発明の実施の形態を説明する。
図１は、本発明にかかるシフトレジスタの第１の実施の形態を示しており、このシフトレジスタは、多段に縦続接続されたｎ個（ｎは２以上の自然数）の双方向レジスタユニット（ＲＵ）１１〜１ｎと、これらの双方向レジスタユニット１１〜１ｎを制御するシフト制御部１０とによって構成されている。
【０００８】
各双方向レジスタユニット１１〜１ｎは、ｍビット（ｍは自然数）のバス幅を有するデータバス９と直接にデータを入出力可能なｍビットの直接入出力端子Ａと、前段の双方向レジスタユニットとデータの入出力を行うｍビットの前段用入出力端子Ｂと、後段の双方向レジスタユニットとデータの入出力を行うｍビットの後段用入出力端子Ｃとを有している。さらに、ＣＬＫ信号（シフトクロック）を入力するＣＬＫ信号端子と、シフト動作の方向を指定するＤＩＲ信号を入力するＤＩＲ信号端子と、データバス９と直接にデータを入出力する双方向レジスタユニットを指定するＳＥＬ信号を入力するＳＥＬ信号端子と、ＳＥＬ信号と組み合わせて保持データをデータバス９に出力させるＯＥ信号を入力するＯＥ信号端子とを有している。
【０００９】
この双方向レジスタユニットは、ＤＩＲ信号によってシフト動作の方向（シフト方向）を切り替えることが可能である。ここで、図１の左から右にシフト動作する方向順方向、右から左にシフト動作する方向を逆方向とする。まず、ＤＩＲ信号が順方向に設定された場合について説明する。この双方向レジスタユニットは、ＤＩＲ信号が順方向のとき、保持データを後段用入出力端子Ｃから出力する。また、入力データとして前段の双方向レジスタユニットの後段用入出力端子Ｃから出力される出力データと、データバス９上のデータのいずれを用いるかをＳＥＬ信号によって選択することができ、ＣＬＫ信号によってこの入力データを取り込む。
【００１０】
この場合、双方向レジスタユニットは、ＳＥＬ信号によって入力データを取り込む端子を直接入出力端子Ａと前段用入出力端子Ｂから選択する。取り込まれた入力データは、次のＣＬＫ信号が入力されるまで保持される。また、ＳＥＬ信号によって直接入出力端子Ａが選択されているときに、ＯＥ信号端子にＯＥ信号が入力されると、保持データをデータバス９に出力する。なお、ＯＥ信号は、外部から各双方向レジスタユニット１１〜１ｎに共通の信号として供給される。
【００１１】
一方、ＤＩＲ信号が逆方向に設定された場合、この双方向レジスタユニットは保持データを前段用入出力端子Ｂから出力する。また、入力データとして後段の双方向レジスタユニットの前段用入出力端子Ｂから出力される出力データをＣＬＫ信号によって取り込み、次のＣＬＫ信号が入力されるまで保持する。また、ＳＥＬ信号によって直接入出力端子Ａが選択されているときに、ＯＥ信号端子にＯＥ信号が入力されると、保持データをデータバス９に出力する。
【００１２】
シフト制御部１０は、ｋビット（ｋは自然数）のＲＵ番号指定端子と、ＤＩＲ信号入力端子と、ＣＬＫ信号入力端子と、各双方向レジスタユニット１１〜１ｎに１対１で対応したｎ組のＳＥＬ信号出力端子とＤＩＲ信号出力端子とＣＬＫ信号出力端子を有している。シフト制御部１０は、ＲＵ番号指定端子にＲＵ番号指定データのバイナリー信号が入力されると、ＤＩＲ信号に関わりなく、ＲＵ番号指定データによって指定される双方向レジスタユニットに対し、対応するＳＥＬ信号出力端子からＳＥＬ信号を出力する。
【００１３】
また、ＲＵ番号指定データによって指定される双方向レジスタユニット以降の双方向レジスタユニットに対し、ＣＬＫ信号入力端子から入力されたシフトクロックであるＣＬＫ信号をそれぞれの対応するＣＬＫ信号出力端子から出力する。ＤＩＲ信号入力端子から入力されたＤＩＲ信号は、各双方向レジスタユニット１１〜１ｎにそれぞれの対応するＤＩＲ信号出力端子からそのまま分配する。
【００１４】
このように、シフト制御部１０は、各双方向レジスタユニットのうち指定された双方向レジスタユニットを選択する双方向レジスタユニット選択手段と、縦続接続した双方向レジスタユニット群１１〜１ｎの双方向レジスタユニット選択手段により選択された双方向レジスタユニットから終端までの双方向レジスタユニットにシフトクロックを選択的に供給するシフトクロック供給手段と、各双方向レジスタユニット１１〜１ｎの入出力方向を指定された同一のシフト方向へ切り替える入出力方向切替手段とを有する。
【００１５】
次に、この実施の形態のシフトレジスタを構成する各部の回路構成の具体例について説明する。図２は、双方向レジスタユニットの１ビット分の構成を示す回路図であり、この回路がデータバスのバス幅分だけ並列に並んで１段の双方向レジスタユニットを構成する。図２において、この回路は、Ｄ型フリップフロップ２０、２つのセレクタ２１，２２、３つのイネーブル付きバッファ２３，２４，２５、ＮＯＴ回路２６及びＡＮＤ回路２７からなる。
【００１６】
この場合、Ｄ型フリップフロップ２０には、データ入力端子ＤＩＮとデータ出力端子ＤＯＵＴとＣＬＫ信号入力端子ＣＬＫとがある。データ入力端子ＤＩＮは、順方向と逆方向の入力切替に用いるセレクタ２２の出力端子に接続されている。データ出力端子ＤＯＵＴは、３つのイネーブル付きバッファ２３，２４，２５の各入力に接続されている。ＣＬＫ信号入力端子ＣＬＫは、双方向レジスタユニットのＣＬＫ信号端子に接続されている。なお、Ｄ型フリップフロップ２０に代えてラッチ等を用いてもよい。また、Ｄ型フリップフロップにはリセットやプリセットの信号が接続されるのが普通であるが、ここでは簡単のため記載していない。
【００１７】
２つのセレクタ２１，２２は、共に２つの入力端子と選択信号入力端子と出力端子とがある。セレクタ２１は、一方の入力端子０が双方向レジスタユニットの前段用入出力端子Ｂｉ（１≦ｉ≦ｍ）に接続され、他方の入力端子１が双方向レジスタユニットの直接入出力端子Ａｉ（１≦ｉ≦ｍ）に接続され、選択信号入力端子が双方向レジスタユニットのＳＥＬ信号端子に接続されている。セレクタ２２は、一方の入力端子０が双方向レジスタユニットの後段用入出力端子Ｃｉ（１≦ｉ≦ｍ）に接続され、他方の入力端子１がセレクタ２１の出力端子に接続され、選択信号入力端子が双方向レジスタユニットのＤＩＲ信号端子に接続されている。また、出力端子が前述したようにＤ型フリップフロップ２０のデータ入力端子ＤＩＮに接続されている。
【００１８】
３つのイネーブル付きバッファ２３，２４，２５は、共に入力端子とイネーブル信号入力端子と出力端子とがある。イネーブル付きバッファ２３は、入力端子が前述したようにＤ型フリップフロップ２０のデータ出力端子ＤＯＵＴに接続され、出力端子が双方向レジスタユニットの前段用入出力端子Ｂｉ（１≦ｉ≦ｍ）に接続され、イネーブル信号入力端子がＮＯＴ回路２６の出力端子に接続されている。また、ＮＯＴ回路２６の入力端子は双方向レジスタユニットのＤＩＲ信号端子に接続されている。
【００１９】
イネーブル付きバッファ２４は、入力端子が前述したようにＤ型フリップフロップ２０のデータ出力端子ＤＯＵＴに接続され、出力端子が双方向レジスタユニットの直接入出力端子Ａｉ（１≦ｉ≦ｍ）に接続され、イネーブル信号入力端子がＡＮＤ回路２７の出力端子に接続されている。また、ＡＮＤ回路２７は２つの入力端子があり、一方の入力端子が双方向レジスタユニットのＳＥＬ信号端子に、他方の入力端子がＯＥ信号端子にそれぞれ接続されている。
【００２０】
イネーブル付きバッファ２５は、入力端子が前述したようにＤ型フリップフロップ２０のデータ出力端子ＤＯＵＴに接続され、出力端子が双方向レジスタユニットの後段用入出力端子Ｃｉ（１≦ｉ≦ｍ）に接続され、イネーブル信号入力端子が双方向レジスタユニットのＤＩＲ信号端子に接続されている。
【００２１】
次に、図２の回路の動作を説明する。まず、ＤＩＲ信号がＨの場合、双方向シフトレジスタは順方向の動作を行い、前段用入出力端子Ｂｉがデータ入力ポート、後段用入出力端子Ｃｉがデータ出力ポートとなる。これはセレクタ２２、イネーブル付きバッファ２３，２５及びＮＯＴ回路２６の働きによる。このときＳＥＬ信号がＬならセレクタ２１は前段の双方向レジスタユニットからの信号が入力されている前段用入出力端子Ｂｉ側、ＳＥＬ信号がＨならデータバス側からの信号が入力されている直接入出力端子Ａｉを選択し、ＣＬＫ信号の印加によって入力データを取り込む。
【００２２】
また、ＤＩＲ信号がＬの場合、双方向シフトレジスタは、後段用入出力端子Ｃｉがデータ入力ポート、前段用入出力端子Ｂｉがデータ出力ポートとなり、逆方向のシフト動作を行う。すなわち、ＣＬＫ信号の印加によって後段用入出力端子Ｃｉからの入力データを取り込む。また、ＳＥＬ信号とＯＥ信号がＨの場合はＤＩＲ信号の向きによらず、ＡＮＤ回路２７がＨとなり、イネーブル付きバッファ２４が導通してデータバス上にＤ型フリップフロップ２０のデータを出力する。
【００２３】
図３は、シフト制御部の構成を示す回路図であり、この回路は、ラインデコーダ３０とｎ個のイネーブル付きバッファ３１〜３ｎと（ｎ−１）個のＯＲ回路４２〜４ｎとからなる。この場合、ラインデコーダ３０には、シフト制御部のｋビット（ｋは自然数）のＲＵ番号指定端子と１対１に接続されたＲＵ番号指定信号入力端子１〜ｋと、この入力のデコード結果を出力するｎ個の出力端子１〜ｎとがある。また、イネーブル付きバッファ３１〜３ｎは入力端子とイネーブル信号入力端子と出力端子とがあり、ＯＲ回路４２〜４ｎは２つの入力端子と出力端子とがある。
【００２４】
ラインデコーダ３０のｎ個の出力端子１〜ｎは、それぞれシフト制御部のｎ個のＳＥＬ信号出力に１対１で接続される。また、この出力端子１は、１段目のイネーブル付きバッファ３１のイネーブル信号入力端子と、２段目のＯＲ回路４２の一方の入力端子に接続される。このＯＲ回路４２の他方の入力端子にはラインデコーダ３０の出力端子２が接続され、ＯＲ回路４２の出力端子は２段目のイネーブル付きバッファ３２のイネーブル信号入力端子と、３段目のＯＲ回路４３の一方の入力端子に接続される。
【００２５】
同様にＯＲ回路４３〜４ｎの出力は同じ段のイネーブル付きバッファ３３〜３ｎのイネーブル信号入力端子に接続され、ＯＲ回路４３〜４（ｎ−１）の出力が次段のＯＲ回路の一方の入力端子に接続される。また、ラインデコーダ３０の出力端子３〜ｎがそれぞれ対応する段のＯＲ回路４３〜４ｎの他方の入力端子に接続される。さらに、シフト制御部のＤＩＲ信号入力端子がシフト制御部のｎ個のＤＩＲ信号出力に接続される。
【００２６】
次に、図３の回路の動作を説明する。ラインデコーダ３０にＲＵ番号指定信号１〜ｋが入力されると、デコードされた結果として出力端子１〜ｎのうち、ＲＵ番号指定信号で指定された番号に対応する出力端子の出力がＨとなってこれに接続されたＳＥＬ信号出力がＨとなる。また、ＯＲ回路４２〜４ｎのうち、ＨとなったＳＥＬ信号が入力されたＯＲ回路以降に接続されたものも次々と出力がＨとなる。この結果、ＲＵ番号指定信号で指定された番号以降のイネーブル付きバッファが導通して指定された番号以降のＣＬＫ信号出力にＣＬＫ信号が伝達される。ＤＩＲ信号については本実施の形態では特に加工せずにすべてのＤＩＲ信号出力に伝達しているが、ＣＬＫ信号と同様に、ＳＥＬ信号で指定された番号以降のみ極性を変えるなどの制御を行う回路を付加することも可能である。
【００２７】
次に、このように構成されたシフトレジスタの動作について図４を参照して説明する。まず前提条件として、大別するとＡ，Ｂ，Ｃ，Ｄの４種類のデータがあるとする。各種類には複数のデータがあり、それぞれ番号がふられている。ここでは次々に発生するデータをＡ〜Ｄの順に、なおかつ同じ種類の中では若番順に並べる必要がある場合を想定する。ステップ１は、ある時点で双方向シフトレジスタＲＵ１〜ＲＵ１４に格納されているデータ列を示す。ここでは、ＲＵ１から順にＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｃ１、Ｃ４、Ｄ２、Ｄ３というデータが記録され、ＲＵ１２〜ＲＵ１４にはデータが記録されていないものとする。
【００２８】
ここで、ステップ２に示すようにＢ４というデータが発生した場合、このデータはＢ３とＣ１との間に挿入すべきである。この場合、前述した動作をこのシフトレジスタに行わせるには、データバス上にＢ４というデータを出力し、Ｃ１が格納されている８段目の双方向レジスタユニットＲＵ８を示すＲＵ番号指定データをシフト制御部１０のＲＵ番号指定端子に入力するとともにＤＩＲ信号入力端子に順方向の設定のＤＩＲ信号を入力し、シフトクロックであるＣＬＫ信号をシフト制御部１０のＣＬＫ信号入力端子に印加するだけでよい。ステップ３は上記動作を行った結果を示すものである。このように容易に、高速に、任意の位置にデータを割り込ませ、所望の並びのデータ列を構築することが可能である。
【００２９】
次に、特定のデータを削除し、生じた空き領域を削除したデータ以降のデータで埋める場合の動作について説明する。例えば、ステップ４のようにＡ３を削除してＡ３以降に保持されていたデータを左にシフトして詰めたいという場合、Ａ３が格納されている３段目の双方向レジスタユニットＲＵ３を示すＲＵ番号指定データをシフト制御部１０のＲＵ番号指定端子に入力するとともにＤＩＲ信号入力端子に入力するＤＩＲ信号を逆方向に設定し、シフトクロックであるＣＬＫ信号をシフト制御部１０のＣＬＫ信号入力端子に印加するだけでＡ３を削除（上書き）し、Ａ４〜Ｄ３を左に１段シフトできる。なお、最も右の双方向レジスタユニットには’０’等の適切な値を入力する。ステップ５は上記動作を行った結果を示すものである。このように容易に、高速に、任意の位置においてデータの削除と詰めを行い、所望の並びのデータ列を構築することが可能である。
【００３０】
次に、特定のデータをデータバス９に読み出す動作について説明する。データの読み出しは、読み出したいデータが格納されている双方向レジスタユニットを示すＲＵ番号指定データをシフト制御部１０のＲＵ番号指定端子に入力するとともにＯＥ信号を印加すればよい。これにより、指定された双方向レジスタユニットの保持データがデータバス９に出力されるので、外部からそのデータを読むことができる。
【００３１】
次に、図４と図５を参照して本発明にかかるシフトレジスタの第２の実施の形態について説明する。図４において、Ｂ４を挿入するためにはまずＢ３の位置を、またＡ３を削除するためにはＡ３の位置を検出することが必要である。従来であれば、先頭から一つずつ検索する、あるいはデータの並びに規則性がある場合は中間の値を検索して求める値がその場所より前か後ろかを判断し、残り半分についても同様に中間の値から前後を判断して絞り込みを行う手法である二分法を使用する等の方法があるが、いずれの方法でも検出までに平均的にはかなりのステップ数を要することになる。
【００３２】
これに対し、この実施の形態では、図５に示すように、図１の構成にｎ個のコンパレータ６１〜６ｎとプライオリティエンコーダ５０とを追加する。図５は、図１で説明したシフトレジスタに追加する箇所を中心にして記載した第２の実施の形態を示すブロック図であり、同図はシフト制御部の記載を省略してある。図５において、ＲＵ１〜ＲＵｎのｎ個の双方向レジスタユニット５１〜５ｎは、図１のレジスタユニット１１〜１ｎと同じものである。また、各コンパレータ６１〜６ｎの入力Ａはデータバス６０に接続され、入力Ｂは同じ段数の双方向レジスタユニット５１〜５ｎのフリップフロップ（又はラッチ）の出力に接続される。
【００３３】
各コンパレータ６１〜６ｎの一致検出出力はそれぞれプライオリティエンコーダ５０に入力され、一致検出の結果Ｈになったものの番号１〜ｎがバイナリーデータ等にエンコードされ、アドレス情報として出力される。このプライオリティエンコーダ５０は、複数のデータが一致した場合、例えば最も若番、あるいは最も老い番の番号を出力する。また、一致するデータがない場合は不一致検出がＨとなる。すなわち、この実施の形態においては、ｎ個のコンパレータ６１〜６ｎとプライオリティエンコーダ５０とにより、格納されたデータ内容を指示するとこのデータが格納されている双方向レジスタユニットに対応した番号が出力される手段を構成している。なお、コンパレータの比較動作においては、比較対象から除外する（マスクする）機能も有するものとする。
【００３４】
以上の構成により、例えばＢ３が存在することがわかっていてＢ３の位置を検出するのであれば、Ｂ３のデータをデータバス６０上に設定するだけでＢ３に対応する位置のコンパレータがＨとなり、即座にその場所のアドレス情報を把握することができる。また、例えばＥ３というデータを挿入したいがＥのグループが存在するかどうか不明の場合、Ｅ３をＥと３に分け、３の部分は比較対象から除外（マスク）してまずＥが存在しているかどうかを検出することが可能である。その結果、Ｅのグループがまだ存在していなければ、例えばデータ列の最後尾にＥ３を追加すればよい。このように、この実施の形態によれば、データ列に対する操作を第１の実施の形態よりもさらに高速に行うことができる。
【００３５】
次に、図６を参照して本発明にかかるシフトレジスタの第３の実施の形態について説明する。図６は、図１で説明したシフトレジスタに追加する箇所を中心にして記載した第３の実施の形態を示すブロック図であり、同図はシフト制御部の記載を省略してある。この実施の形態のシフトレジスタが図１のシフトレジスタと異なる点は、図１の構成にプライオリティエンコーダ７０を追加するとともに、各双方向レジスタユニット７１〜７ｎの１ビットを最後尾検出ビットとして割り当て、この１ビットに接続する直接入出力端子Ａの接続先をデータバス８０に代えてＨにつり上げたプルアップ信号線８１とし、フリップフロップ（又はラッチ）の出力をプライオリティエンコーダ７０の入力１〜ｎに接続したことである。
【００３６】
この最後尾検出ビットは、初期状態ではリセットされて全てＬとなっているが、データバス８０上のデータを挿入する動作が発生すると該当する最後尾検出ビットにはＨが設定される。また、このビット情報はシフト動作で次段に伝達されるため、結果としてデータが設定された全ての双方向レジスタユニットではＨ、それ以外ではＬとなる。また、この最後尾検出ビットはプライオリティエンコーダ７０に接続されているため、プライオリティエンコーダ７０により最も老い番のＨ入力の番号がバイナリーデータ等にエンコードされ、アドレス情報として出力される。
【００３７】
すなわち、この実施の形態においては、各双方向レジスタユニット７１〜７ｎに割り当てられた最後尾検出ビットの入出力を行う１ビットの双方向レジスタが最後尾検出情報の入出力を行う双方向レジスタを構成し、プライオリティエンコーダ７０が最後尾検出情報が格納されている双方向レジスタユニットに対応した番号を出力する手段を構成する。
【００３８】
以上の構成により、プライオリティエンコーダ７０からのアドレス情報を見れば双方向レジスタユニットにどこまでデータを設定したかがすぐに把握できるようになる。これにより、第２の実施の形態で述べたような、データ列の最後尾に新たなデータを追加したい場合、その位置を即座につかむことが可能となる。この実施の形態のような手段を設けていない場合は、例えば双方向レジスタユニットのどこまで設定を行ったかをメモリー等に記録しておくなどの手段が必要となり、繁雑な処理が必要となる。
【００３９】
【発明の効果】
以上説明したように、本発明のシフトレジスタは、複数の双方向レジスタユニットを縦続接続して構成され、各双方向レジスタユニットの入出力方向を指定された同一のシフト方向へ切り替える入出力方向切替手段と、各双方向レジスタユニットのうち指定された双方向レジスタユニットを選択する双方向レジスタユニット選択手段と、縦続接続した双方向レジスタユニット群の双方向レジスタユニット選択手段により選択された双方向レジスタユニットから終端までの双方向レジスタユニットにシフトクロックを選択的に供給するシフトクロック供給手段とを備え、各双方向レジスタユニットに、直接にデータを入出力することが可能な直接入出力端子と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、保持しているデータを後段の双方向レジスタユニットへ出力する手段と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、双方向レジスタユニット選択手段によって選択されていることを条件として、シフトクロック供給手段からのシフトクロックの供給を受けて、直接入出力端子からのデータを取り込んで保持する手段と、入出力方向切替手段によって入出力方向が前段から後段へのシフト方向へ切り替えられた場合、双方向レジスタユニット選択手段によって選択されていないことを条件として、シフトクロック供給手段からのシフトクロックの供給を受けて、前段の双方向レジスタユニットからのデータを取り込んで保持する手段と、入出力方向切替手段によって入出力方向が後段から前段へのシフト方向へ切り替えられた場合、保持しているデータを前段の双方向レジスタユニットへ出力する手段と、入出力方向切替手段によって入出力方向が後段から前段へのシフト方向へ切り替えられた場合、シフトクロック供給手段からのシフトクロックの供給を受けて、後段の双方向レジスタユニットからのデータを取り込んで保持する手段とを設けたので、双方向レジスタユニット群に格納されたデータ列に対するデータの挿入および削除のようなデータ列に対する操作がハードウェア上で簡単かつ高速に実行可能となるという効果が得られる。
【００４０】
また、双方向レジスタユニットが並列配置された複数の双方向レジスタから構成され、これらの双方向レジスタは、シフトクロックが同期して印加され、かつそれぞれの直接入出力端子からの入出力動作が同期して行われるので、データ列としてシリアルデータだけでなく、例えばバイトデータやワードデータを用い、バイト単位やワード単位でのデータの挿入および削除を簡単かつ高速に実行可能となるという効果が得られる。
【００４１】
また、格納されたデータ内容を指示するとこのデータが格納されている双方向レジスタユニットに対応した番号が出力される手段をさらに有するので、データの挿入又は削除を行うべき双方向レジスタユニットを簡単かつ高速に検出することができるという効果が得られる。
【００４２】
また、双方向レジスタユニットが最後尾検出情報の入出力を行う双方向レジスタをさらに有し、かつ最後尾検出情報が格納されている双方向レジスタユニットに対応した番号が出力される手段をさらに有するので、格納されているデータ列の最後尾を簡単かつ高速に検出することができるという効果が得られる。さらに、双方向レジスタユニットのどこまでデータが格納されているかを記録しておくメモリーなどの手段が不要となるので、構成が簡易となり安価となる利点を有する。
【図面の簡単な説明】
【図１】  本発明にかかるシフトレジスタの第１の実施の形態を示すブロック図である。
【図２】  図１の双方向レジスタユニットの１ビット分の構成を示す回路図である。
【図３】  図１のシフト制御部の構成を示す回路図である。
【図４】  本発明にかかるシフトレジスタの動作を示す説明図である。
【図５】  本発明にかかるシフトレジスタの第２の実施の形態を示すブロック図である。
【図６】  本発明にかかるシフトレジスタの第３の実施の形態を示すブロック図である。
【符号の説明】
９，６０，８０…データバス、１０…シフト制御部、１１〜１ｎ，５１〜５ｎ，７１〜７ｎ…双方向レジスタユニット（ＲＵ）、２０…Ｄ型フリップフロップ、２１，２２…セレクタ、２３，２４，２５，３１〜３ｎ…イネーブル付きバッファ、２６…ＮＯＴ回路、２７…ＡＮＤ回路、３０…ラインデコーダ、４２〜４ｎ…ＯＲ回路、５０，７０…プライオリティエンコーダ、６１〜６ｎ…コンパレータ、８１…プルアップ信号線。
【図１】
0003765273.tif 000002
【図２】
0003765273.tif 000003
【図３】
0003765273.tif 000004
【図４】
0003765273.tif 000005
【図５】
0003765273.tif 000006
【図６】
0003765273.tif 000007