(57)【特許請求の範囲】
【請求項１】
メモリ装置に対して読み出し及び書き込みを行なうシステムであって、
複数Ｍ個のメモリレジスタを含むメモリ装置であって該メモリレジスタの各々がＸビットの情報を格納するように構成されたメモリ装置と、
Ｍ，Ｎ及びＸをそれぞれ正の整数とし、ＮがＭとＸの積よりも大きいものとしたとき、Ｎ個の連続したメモリ要素に接続された直列データ入力ポート及び直列データ出力ポートを有するステージングレジスタであって、前記メモリ要素の各々がデータビットを格納するように構成され、前記データビットを前記直列データ入力ポートを介して前記ステージングレジスタ内に直列にシフトインし、前記連続したメモリ要素の各々を通して前記直列データ出力ポートを介して出力するように構成されたステージングレジスタと、
から構成され、
前記ステージングレジスタは、前記連続したメモリ要素Ｍ個分の間隔で互いに等間隔に隔離された前記ステージングレジスタのＸ個の非隣接メモリ要素からなる第１の集合が前記メモリ装置の入力ポートに相互接続されるように、前記入力ポートと相互接続されている、
システム。
【請求項２】
前記メモリ装置は、レジスタファイル、大容量メモリのセグメント、及び、内容参照可能メモリ（ＣＡＭ）からなる一群の中から選択される、請求項１のシステム。
【請求項３】
前記メモリ装置はデータバッファを介して前記ステージングレジスタに相互接続された出力ポートをさらに含み、前記連続したメモリ要素Ｍ個分の間隔で互いに等間隔に隔離された前記ステージングレジスタのＸ個の非隣接メモリ要素からなる第２の集合が前記データバッファを介して相互接続されるようになっている、請求項１のシステム。
【請求項４】
Ｘ個の非隣接メモリ要素からなる前記第１の集合と前記第２の集合とが、Ｍ個の連続したメモリ要素分だけ互いにオフセットされている、請求項３のシステム。
【請求項５】
前記メモリ装置のアドレスポートに接続されたアドレスカウンタをさらに含む、請求項１のシステム。
【請求項６】
Ｍ及びＸをいずれも正の整数としたとき、Ｘビットの情報を格納するメモリレジスタを複数Ｍ個有するメモリ装置に対して、書き込み及び読み出しを行なう方法であって、
ａ）Ｍ個の並列データストリームからまずビット０すべてを前記シリアルストリームに流し込み、次にビット１すべてを、次にビット２すべてを、...、以下同様にビット（Ｘ−１）まで続けることにより、Ｍ×Ｘビットの情報ビットをＭ個の並列データストリームから直列ビットストリームにインタリーブすることと、
ｂ）前記直列ビットストリームを前記メモリ装置の入力ポートに対して整列させ、前記並列データストリームから選択されたすべてのビット値が前記メモリ装置の所定のメモリレジスタへ同時に並列に転送されるように配置することと、
ｃ）前記並列データストリームから選択されたすべてのビット値を前記メモリ装置の所定のメモリレジスタへ同時に書き込むことと、
ｄ）次のメモリレジスタを判定し、前記直列ビットストリームからのビット値を前記入力ポートに対して同時にシフトさせ、前記次のメモリレジスタに対応する次に選択された並列データストリームからのすべてのビット値が前記次のメモリレジスタへ同時に並列に転送されるように配置することと、
ｅ）前記ｃ及び前記ｄの処理をすべてのメモリレジスタが書き込まれるまで繰り返すことと、
からなる方法。
【請求項７】
前記次のメモリレジスタの判定は、アドレスカウンタをデクリメントすることを含む、請求項６の方法。
【請求項８】
前記同時に書き込む処理は１クロック周期内で実施される、請求項６の方法。
【請求項９】
Ｍ個の連続したビットを書き込む処理は連続するＭクロック周期内で実施される、請求項８の方法。
【請求項１０】
Ｍ及びＸをいずれも正の整数としたとき、Ｘビットの情報を格納するメモリレジスタを複数Ｍ個有するメモリ装置に対して、書き込み及び読み出しを行なう方法であって、
ａ）ステージングレジスタ内のシリアルビットストリームのメモリ要素を前記メモリ装置の出力データストリームに対して整列させ、前記メモリ装置の所定のメモリレジスタのすべてのビット値が前記ステージングレジスタの一定間隔で選択された非隣接メモリ要素へ同時に並列に転送されるように配置することと、
ｂ）前記メモリ装置の所定のメモリレジスタのすべてのビット値を前記シリアルビットストリーム内のステージングレジスタの前記一定間隔で選択された非隣接メモリ要素に読み出すことと、
ｃ）次のメモリレジスタを判定し、前記直列ビットストリームを前記ステージングレジスタ内の一定間隔で選択された前記非隣接メモリ要素に対して一定方向にシフトさせ、前記ｂの処理によって前記一定間隔で選択された非隣接メモリ要素に読み出されるすべてのビット値が対応する前記一定間隔で選択された非隣接メモリ要素に対して一様にインタリーブされるようにすることと、
ｄ）前記ｂ及びｃの処理をすべてのメモリレジスタが読み出されるまで繰り返すことと、
ｅ）前記ステージングレジスタから前記シリアルビットストリームをシフトアウトすることと、
ｆ）前記シリアルビットストリームの情報ビットのインタリーブを解除して、Ｍ個の並列データストリームであって該並列データストリームの各々が前記メモリ装置の予め選択されたメモリレジスタに対応するＭ個の並列データストリームを復元することと、
からなる方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、半導体要素の組み込みセルフテスト（ＢＩＳＴ）に関するものであり、とりわけ、ステージングレジスタを用いたＢＩＳＴエンジンのプログラミングに関するものである。
【０００２】
【従来の技術】
ＰＡ−８５００プロセッサチップのようなデバイスは、ステージングレジスタを備えた直列インターフェイスによってプログラムされる組み込みセルフテスト（ＢＩＳＴ）を備えている。ステージングレジスタは、普通、直列インターフェイスを介したレジスタの読み出しまたは書き込みタスクを取り扱うために利用される。すなわち、ステージングレジスタは、ＢＩＳＴエンジンに書き込まれるプログラミング命令を転送することが可能であり、また、翻訳及び解析のためにセルフテスト・データを転送することも可能である。書き込み時、ステージングレジスタは、完全なワードのシフトインが済むまで直列データを収集し、その後、そのワードをターゲットレジスタへ並列に転送する。読み出し時、データ・ワードは、ステージングレジスタへ並列に転送され、その後、順次シフトアウトされる。この方法は、ターゲットレジスタとステージングレジスタが、ＰＡ−８５００に用いられているように同じビット幅である場合には満足に機能するが、ターゲットレジスタとステージングレジスタのビット幅が異なる場合には、非効率となる。
【０００３】
従って、ビット幅の狭いターゲットレジスタを採用するＢＩＳＴエンジンに対して効率的なプログラミングを実施するためのシステム及び方法を開発するのが有効である。さらに、回路構成及び動作が単純化されたこうした方法及びシステムを開発するのも有効である。さらに、既存のハードウェア及びＢＩＳＴレジスタ技法を利用するようにこれらのシステム及び方法の開発を行い、最大限に実現可能な拡張を施すことも有効であろう。
【０００４】
【発明が解決しようとする課題】
本発明は、既存のＢＩＳＴレジスタ技法へのインタフェースを提供するシステム及び方法に向けられており、本システムは、ビット幅の狭いメモリレジスタを備えたメモリ装置への書き込み及び該メモリ装置からの読み出しを行うためのステージングレジスタを採用している。
【０００５】
【課題を解決するための手段】
本発明によれば、ステージングレジスタは既存の技術を含んでいるが、ビット幅の広いステージングレジスタのインタリーブされたデータと、ビット幅の狭いレジスタファイル、例えば１０ビットのスロット幅を備えた８スロットの内容参照可能メモリ（ＣＡＭ）とのインターフェイスをとることによって、新たな二つの利点が得られる。第１に、従来必要とされていた８つの個別のシフト動作に替えて、単一のシフト動作で全てのＣＡＭスロットをロードすることが可能になる。第２に、データビットをインタリーブして読み出し及び書き込みが８つの連続したクロック周期で実行されるようにすることによって、必要な回路構成が単純化される。このシステム及び方法では、ステージングレジスタ内においてシフト中のデータのストリームを操作し、適切な時点でＣＡＭスロットへ転送する。
【０００６】
それぞれがビット幅Ｘを備えるＭ個のメモリレジスタを有するＣＡＭまたは他のターゲットメモリ装置への書き込みを行う場合、Ｍ個の並列データストリームが、従来のハードウェアまたはソフトウェア技法を用いて、直列ビットストリームにインタリーブされ、次に、Ｎ個のメモリ要素からなるステージングレジスタにシフトインされる。ここで、Ｎは通常、ＸとＭの積より大きい。これらのビットは、直列ビットストリーム内でインタリーブされ、まず、インタリーブされたデータストリームのビット０の全てがシフトインし、次にビット１の全てが、次にビット２の全てが．．．、最後に、ビット（Ｘ−１）がシフトインするようにインタリーブされる。これらのビットは、Ｍ番目の並列データストリーム内のすべてのＸ値のビットが、ターゲットメモリ装置の入力ポートに相互接続され等間隔で配された非隣接メモリ要素を占めるように整列される。これと同時に、ターゲットメモリ装置のＭ番目のメモリレジスタがアドレス指定され、全てのＸビットが、ターゲットメモリ装置のＭ番目のスロットまたはレジスタへ同時に書き込まれる。この並列同時書き込み動作は、システムの単一クロック周期内で行われる。次に、こんどは（Ｍ−１）番目の並列データストリームが、ターゲットメモリ装置に相互接続された前記メモリ要素位置を占めるように、前記ビットストリームが１メモリ要素分シフトされ、ターゲットメモリ装置のアドレスがデクリメントされ、メモリ要素の（Ｍ−１）番目のレジスタへＸビットが同時に書き込まれる。このプロセスは、Ｍクロック周期の総所要時間内において、Ｍ個のレジスタのすべてが書き込まれるまで繰り返される。
【０００７】
メモリ装置からのデータの読み出しは、実質的に書き込みと逆のプロセスで行われ、メモリレジスタのアドレスを繰り返しデクリメントするステップ、メモリレジスタの内容のすべてをステージングレジスタの非隣接メモリ要素へ並列に読み出すステップ、及び、次の読み取り周期のためにステージングレジスタのビットストリームをシフトさせてビットをインタリーブするステップを含む。書き込みの場合と同様に、すべてのＭレジスタの読み出しは、Ｍクロック周期の所要時間内に実施される。読み出しの後、インタリーブされたビットストリームはステージングレジスタからシフトアウトされ、従来のハードウェアまたはソフトウェア技法を用いてインタリーブが復号される。
【０００８】
本発明の原理は、様々な構成に適用することが可能であり、様々なビット幅及びＣＡＭスロット数、例えば、それぞれが６ビット幅を有する１６ＣＡＭスロットなどの構成が含まれる。また、ＣＡＭは例えば、ビット幅の大きなステージングレジスタと通信するレジスタファイル、大きなメモリの小さなセグメントまたはビット幅の狭いレジスタの集合などで置きかえることも可能である。
【０００９】
ここまでは、以下で行う本発明の詳細な説明をより明確に理解することができるように、本発明の特徴及び技術的利点についてかなり一般的な概要説明がなされた。以下では、本発明の請求項の根拠を形成する本発明のさらなる特徴及び利点について述べることにする。当業者には、開示される概念及び特定の実施例を、本発明と同じ目的で実施するための変更または他の構造の設計を行うための基礎として、これらを容易に利用できることが分かるはずである。また、これらの同等の構成物が、本発明の思想および付加した特許請求の範囲に規定される権利範囲から外れることがないことも、当業者には分かるはずである。本発明のシステムと方法の両方に関して本発明の特徴であると確信する新規の特徴は、双方ともさらなる目的と利点を有しており、これらは、付加した図面と共に以下の説明を考察することにより、より良く理解できるであろう。当然のことではあるが、これらの図のそれぞれは例示及び説明の目的でのみ提供されるものであり、本発明の定義を限定することを意図しているわけではない。
【００１０】
【発明の実施の形態】
図１Ａ及び１Ｂは、両方とも本発明の実施態様による８スロットの内容参照可能メモリ（ＣＡＭ）に相互接続されたステージングレジスタ（ＳＴＧ）を例示する、単純化された概略図である。ステージングレジスタ12は通常１５２ビットの（メモリ要素）幅であり、１５２ビットの並列rbus110を介して他のステージングレジスタ（図示せず）のスタックと通信する。これら他のステージングレジスタは、すべて同様に１５２ビット幅である。単一レジスタによる実施も含めて他のレジスタ幅または他のレジスタ数を用いることもできるが、これらの代替的実施例は図１Ａ、１Ｂに示される実施例の論理的な均等物である。単純化するため、図１Ａではステージングレジスタのメモリ要素のすべてが示されるのではなく、選択されたメモリ要素のみが示され、rbus110に接続されている。
【００１１】
ステージングレジスタ（ＳＴＧ）12は、１つの直列入力ポート(shift_data_in)
102、１つの直列出力ポート（shift_data_out）104、制御ポート106における３つの制御ビット入力（shift106-0、write106-1、及び、cam_to_stg106-2）を備え、さらに、並列データバスrbus110に対する入出力接続を備えている。直列データ入力ポート102は、shift_data_in信号をステージングレジスタ12へ導く。シフト制御ビット106-0は、ステージングレジスタ12がシフトされるときに高になる。書き込み制御ビット106-1は、シフトが書き込み動作の場合には高になり、シフトが読み出し動作の場合には低になる。cam_to_stg制御ビット106-2は、ＣＡＭが読み出し／書き込みを行うように選択されると、読み出し動作の場合は高になり、書き込み動作の場合は低になる。直列データ出力ポート104は、ステージングレジスタ12からshift_data_out信号を出力する。
【００１２】
ＣＡＭ14は、それぞれが１０ビット幅である８つのレジスタを備えたレジスタファイルとみなすことができる。ＣＡＭ14は、rbus110を介してステージングレジスタ12のメモリ要素0,8,16,24,32,40,48,56,64および72に相互接続された１０ビットのdata_inポートと、１０ビット幅の相互接続バス116を介してＣＡＭデータバッファ16に相互接続された１０ビットのdata_outポートを備えている。さらに、ＣＡＭ14は、アドレスライン118を介してＣＡＭアドレスカウンタ18に接続された３ビットのaddrポートと、ＣＡＭシフト制御装置13（図１Ｂを参照）に接続された書き込み許可（ＷＥ）制御ポートを備えている。ＷＥ制御ビットが高の場合、data_inポートにある値は、ＣＡＭアドレスポートにある３ビットのアドレス制御ビットによって選択されたＣＡＭスロットへロードされる。ＷＥが低の場合、３ビットのアドレス制御によって選択されたＣＡＭスロットのデータが、ＣＡＭのdata_outポートから読み出され、相互接続バス116を介してＣＡＭデータバッファ16へ転送される。cam_to_stgビット106-2が高の場合、ＣＡＭデータバッファ16はＣＡＭ14のdata_outからデータを受信し、これをステージングレジスタ12の対応するメモリ要素に接続されたrbus110のビット8,16,24,32,40,48,56,64,72及び80へ送信する。
【００１３】
ＣＡＭアドレスカウンタ（ＣＡＣ）18は、３ビットのカウンタである。ＣＡＣは、制御用接続ライン114に設けられた１つの制御入力ビット（cac_dec）と、アドレスライン118を介してＣＡＭ14のaddrポートに送信する３ビットの出力を有している。cac_dec制御信号が高の場合、ＣＡＭアドレスカウンタ18は１だけデクリメントされ、現在のカウンタ値がアドレスライン118へ送出される。
【００１４】
図１Ｂを参照すると、シフトカウンタ15は、２つの制御入力すなわちwrite106-1及びshift106-0と、２つの出力ビットすなわちwready122及びrready128を備えている。シフトが生じると、シフトカウンタ15がカウントを開始する。これには、write制御ビット106-1の状況により２つのモードがある。write制御ビット106-1が高の場合、所定のカウントしきい値がセットされ、この値に到達するとwreadyが高になる。write制御ビット106-1が低の場合（読み出しを表す）、シフトカウンタ15は、異なる所定のしきい値までカウントしてから、rreadyを高にセットする。
【００１５】
ＣＡＭシフト制御装置13は、２つの入力制御ビットすなわちwrite106-1及びcam_addr112と、３つの出力制御ビットすなわちcam_to_stg106-2、cam_write108、及びcac_dec114を備えているが、これらについては、後に詳細に説明する。
【００１６】
入力ポート102からステージングレジスタ12に入る前に、直列ビットストリームはインタリーブされ、８つのＣＡＭスロットの所定のビット位置にあるビットのすべてがグループ化される。言いかえると、１０ビット幅のスロットのそれぞれについて８つのスロット全てから、まず、全てのビット０がシフトインし、次に全てのビット１が、次に全てのビット２が、．．．、全てのビット９がシフトインする。インタリーブされたビットストリームがステージングレジスタにシフトインした後、これらのビットは所定の位置に好適に整列されて格納され、例えば、ＣＡＭスロット７に対応する１０ビットが、全てrbus110へ同時に接続され、再命令することなく単一クロック周期内の書き込み動作でＣＡＭ14のスロット７へ並列伝送が可能になる。この最初の書き込みサイクルの後、ステージングレジスタ12がシフトし、これに同期してＣＡＭ14のアドレスがデクリメントされる。このように１０ビットのすべてを整列させることは、ＣＡＭスロット６のための用意であり、後続のクロック周期内でＣＡＭ14へ並列書き込みを完了させることを意図している。このプロセスは、１つのブロックを成す８つの連続するクロック周期内において、ＣＡＭ14の８つのスロットがすべて書き込まれるまたは読み出されるまで繰り返される。この結果、例えば、ＢＩＳＴエンジンへプログラミング命令を書き込むための効率のよい方法が得られる。
【００１７】
同様に、例えば、セルフテストの測定結果のようなデータをＣＡＭ14からＳＴＧ12に読み取った後や、直列ビットストリームがシフトアウトした後は、一般に、翻訳及び解析する前にインタリーブされたデータの復号を行わなければならない。これらの読み出し及び復号の動作は、前述のインタリーブ及び書き込みの動作とほぼ逆のやり方で実施される。
【００１８】
実施形態によっては、８つの並列ビットストリームのビットを単一の直列ビットストリームへインタリーブする方法は、プログラマが従来のソフトウェア技術を用いて実現することもできる。このアプローチでは、必要とされるハードウェアが単純化され、適応性が改善される。別の実施形態としては、インタリーブをハードウェアで実施することも可能であり、例えば、ＭＵＸチップを組み込む方法がある。同様に、インタリーブの復号は、従来のソフトウェアまたはハードウェアのいずれにおいても実施されうる。
【００１９】
図１Ａ〜１Ｂに示されるように、３つの独立した外部制御ビットがある。具体的には、ＳＴＧ12とシフトカウンタ15の両方に用いられ、ＳＴＧとＣＡＭがシフト動作中には高であるシフトビット106-0；高の場合ＣＡＭシフト制御装置13に対してＣＡＭが読み出し／書き込み動作に選択されることを伝えるcam_addrビット112；及びＳＴＧ12、シフトカウンタ15、及びＣＡＭシフト制御装置13に加えられるwriteビット106-1である。読み出し動作と書き込み動作のどちらであるかを識別するため、writeビット106-1はＣＡＭシフト制御装置13へ送信される。シフトカウンタ15も、wreadyまたはrready信号を生成するために、writeビット106-1を有する必要がある。
【００２０】
他の全ての制御ビットは、上述の３つの外部制御ビットの組み合わせに応答して、内部的に生成される。シフトカウンタ15によって生成される中間制御ビットには、下記のものが含まれる：
write106-1及びshift106-0の両方が所定のカウントに対して高のときに高になり、cam_write108及びcac_dec114をイネーブルして、ＳＴＧ12のインタリーブされたビットからＣＡＭ14の８つのスロットへ、８回の連続的な書き込みを開始するwready122。この動作の間、ＳＴＧ12とＣＡＭ14は同時に一段階デクリメントされる。;
８回書き込みの動作が完了すると高になり、cam_write108及びcac_dec114をディセーブルする8write124。write106-1及びshift106-0は、この装置への外部入力であり、いつオフにすべきかを既に認識している。8writeによって、読み出し／書き込みサイクルの始めにもどる。；
８回読み出しの１サイクルが完了した後高になり、cam_to_stg106-2及びcac_dec114をディセーブルするための8read126。；
8readsがシフトカウンタ15によりタイムアウトした後高になり、読み出し／書き込みサイクルの始めに戻るためのrready128。
【００２１】
上述の組み合わせに応答して、ＣＡＭシフト制御装置13によって発生する制御ビットには、状態が高のときＣＡＭ14からＳＴＧ12へのデータ読み出しを示し、ＳＴＧ12及びＣＡＭデータバッファ16へ入力されるcam_to_stg106-2；ＣＡＭ書き込み許可入力へ入力され、ＳＴＧ12からＣＡＭ14へのデータ書き込みの許可を行うcam_write108；ＣＡＭアドレスカウンタ18へ入力され、１スロット・ステップごとにアドレスライン118の３ビットのＣＡＭアドレス制御ビットのデクリメントを行うcac_dec114が含まれている。
【００２２】
図２は、図１Ａ〜１Ｂの実施例の動作を論理的に示す状態遷移図である。それぞれの円21-26は、状態を表している。弦201-208及び211-215で示される適切な状態が存在する場合、システムは、ある状態から別の状態へ遷移する。上述の制御ビットは、各々の弦に関連している。図２において、頭に記号「〜」が付く名前の制御ビットは、対応する弦に沿って低の状態にある。その他の弦に沿う対応する制御ビットは高の状態である。
【００２３】
システムは休止状態21から開始し、シフト（弦204に沿う〜shiftに示される）が生じないかぎり、この状態にとどまる。shiftビットが高になると（弦211）、システムは、ヘッダ状態22へ遷移し、ＣＡＭ14の読み出しまたは書き込みに備える。ＣＡＭ14以外のレジスタが選択されていた場合（〜cam_addr）、システムは、弦203に沿って、休止状態21に戻る。そうでないとき、writeビットが高の場合は、システムは弦212に沿って書込待機状態23へ推移し、ここで、すべての適切なビットがシフトインされ８回書き込みの１組に備えて配置が完了したことを示す信号をシフトカウンタ15が出力するまで待機する。この移動が完了するとwready信号が高になり、システムは弦214に沿って書込状態24へ遷移する。書込状態24において、ＣＡＭシフト制御装置13は、cam_write及びcac_decを高にし、これによってＳＴＧ12のデータがＣＡＭ14のスロット７からスロット０の順でそれぞれのスロットへ連続的に書き込まれる。８回の書き込みが終了すると、シフトカウンタ15は8writesを高にし、システムは、弦201に沿って休止状態21へ遷移する。
【００２４】
読み出しの場合、経路は、休止状態21から始まり、前述のようにヘッダ状態22へ遷移する。読み出しの場合、writeビットは低であるため、システムは読出状態25へ遷移する。読出状態にある間、ＣＡＭシフト制御装置13はcam_to_stg及びcac_decを高にし、これによってＣＡＭ14からのデータが読み出され、ＣＡＭデータバッファ16へ送信される。そして、これらのデータはrbus110のビット8,16,24,32,40,48,56,64,72及び80へ順に送信される。writeビットが低のため、ＳＴＧ12は、rbus110からデータを読み取り、これらをシフトアウトする。この方法においては、８つのＣＡＭスロットが連続的に読み出されるため、スロット７で始まりスロット０で終了する。８回の読み出しが生じると、シフトカウンタ15は8readを高にし、システムは、弦215に沿って読出待機状態26へ遷移し、読み出したデータをＳＴＧ12からシフトアウトすることが可能になる。シフトアウトが生じると、シフトカウンタ15はrreadｙを高にし、システムは、弦202に沿って休止状態21に戻る。
【００２５】
状態機械が、書込待機状態23への弦212または読出状態25への弦213のいずれへ遷移するべきかを判定できるようにするため、外部書き込みビットがＣＡＭシフト制御装置13へ直接入力されている点に留意して欲しい。さらに、wreadyビットまたはrreadyビットのいずれを生成するべきかを判定できるようにするため、シフトカウンタ15は別個に外部書き込みビットを必要とする。cam_addrビットはシステムへの外部制御入力であり、後続の弦212または213の状態にあるとき高であることが保証されているが、それ以外ではこの値は無視される。
【００２６】
説明した実施例は、８つのスロットを備える１０ビットＣＡＭと通信するものである。これらは、ステージングレジスタがシフトしている間に「オン・ザ・フライ方式」でそれぞれのスロットにアクセスする。これらの実施例は、高速で効率的な動作を扱うことが可能であり、既存のハードウェアを最大限利用している。本発明の原理は、さまざまなデータ経路幅及び数のＣＡＭスロットを含む、さまざまな条件に応用することが可能であり、例えば、それぞれが６ビット幅である１６ＣＡＭスロットなどに応用できる。また、ＣＡＭは、レジスタファイルまたはメモリの小セグメントに置き換えることも可能であり、あるいは、ビット幅の広いステージングレジスタと通信するビット幅の狭いレジスタの集合に置き換えることも可能である。
【００２７】
ここまで本発明及び本発明の利点について詳細に説明してきたが、本発明の思想及び付加する特許請求の範囲によって定義される本発明の権利範囲から逸脱することなく、様々な変更や置換及び代替が可能であることは分かるはずである。さらに、本発明の権利範囲は、発明の詳細に記載した特定の工程、機械、製造方法、物質の組成、手段、方法及び手順によって制限されることは意図していない。本発明の開示により、当業者であれば、現存の、または、本明細書に記載した実施例と実質的に同じ機能を実施するあるいは同じ結果を成す今後開発されるであろう工程、機械、製造方法、物質の組成、手段、方法または手順を、容易に理解するであろう。したがって、付加する特許請求の範囲には、このような工程、機械、製造方法、物質の組成、手段、方法または手順が含まれることが意図されている。
【００２８】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
１．メモリ装置からの読み出し及びメモリ装置への書き込みを行うためのシステムであって、
Ｘビットの情報を有するメモリレジスタを複数Ｍ個含むメモリ装置14と、
直列データ入力ポート102及び直列データ出力ポート104を有するステージングレジスタであって、Ｍ，Ｎ及びＸをそれぞれ正の整数としたときに、ＮがＭとＸの積より大きな値であり、前記直列データ入力ポート及び前記直列データポートがＮ個の連続したメモリ要素の列に接続され、前記メモリ要素のそれぞれがデータビットを格納し、前記データビットを前記直列データ入力ポートからステージングレジスタ内へ直列にシフトさせ、前記連続したメモリ要素を通して、前記直列データ出力ポートへ出力するように構成され、さらに、前記メモリ装置の入力ポートに相互接続され、前記連続したメモリ要素Ｍ個分の間隔で互いに等間隔に隔離された前記ステージングレジスタのＸ個の非隣接メモリ要素の第１の集合が、前記メモリ装置の前記入力ポートに相互接続されるように構成されるステージングレジスタと
からなるシステム。
２．前記メモリ装置14が、レジスタファイル、大容量メモリのセグメント、内容参照可能メモリ（ＣＡＭ）からなる一群から選択される１つである項番１のシステム。
３．データバッファ16を通して前記ステージングレジスタに相互接続された前記メモリ装置の出力ポートをさらに含み、前記ステージングレジスタ12のＸ個の非隣接メモリ要素からなる第２の集合が、前記データバッファを通して相互接続される前記連続したメモリ要素Ｍ個分の等間隔で互いに隔離される、項番１のシステム。
４．Ｘ個の非隣接メモリ要素からなる前記第１及び第２の集合が、Ｍ個の連続したメモリ要素によって互いにオフセットされる、項番３のシステム。
５．前記メモリ装置14のアドレスポートに接続されたアドレスカウンタ18をさらに含む、項番１のシステム。
６．Ｍ及びＸが両方とも正の整数であるとき、Ｘビットの情報を有する複数Ｍ個のレジスタからなるメモリ装置に対して書き込み及び読み出しを行うための方法であって、
ａ）まず、Ｍ個の並列データストリームのビット０すべてを直列データストリーム内へ移動し、次にビット１すべてを前記直列データストリーム内へ移動し、...、同様にビット（Ｘ−１）まで続けることにより、Ｍ×Ｘビットの情報のビットをＭ個の並列データストリームからひとつの直列データストリームへインタリーブするステップと、
ｂ）前記直列ビットストリームを前記メモリ装置の入力ポートに関連して整列させ、選択された並列データストリームからのすべてのビット値が、前記メモリ装置の所定のメモリレジスタへ同時に並列に転送されるように配置されるようにするステップと、
ｃ）前記選択された並列データストリームの前記ビット値のすべてを前記メモリ装置の前記所定のメモリレジスタへ同時に書き込むステップと、
ｄ）次のメモリレジスタを判定し、前記入力ポートに関連する前記直列ビットストリームを同時にシフトさせ、前記次のメモリレジスタに対応する次の選択された並列データストリームからのすべてのビット値を、前記次のメモリレジスタへ並列に同時に転送するように配置するステップと、
ｅ）すべてのメモリレジスタが書き込まれるまで、前記ステップ（ｃ）及び（ｄ）の動作を反復するステップと、
からなる方法。
７．次のメモリレジスタを判定するステップが、アドレスカウンタ18をデクリメントするステップである、項番６の方法。
８．前記同時に書き込みを行う動作が単一クロック周期内で行われる、項番６の方法。
９．前記Ｍ個の連続した書き込み動作がＭこの連続したクロック周期内で行われる、項番８の方法。
１０．Ｍ及びＸが両方とも正の整数であるとき、Ｘビットの情報を有する複数Ｍ個のレジスタからなるメモリ装置に対して書き込み及び読み出しを行うための方法であって、
ａ）直列ビットストリームを前記メモリ装置の出力データストリームに関連してステージングレジスタ内のメモリ要素間で整列させ、前記メモリ装置の所定のメモリレジスタからのすべてのビット値が、選択された均一な間隔の前記ステージングレジスタの非隣接メモリ要素へ同時に並列に転送されるように配置するステップと、
ｂ）前記メモリ装置の前記所定のメモリレジスタの前記ビット値のすべてを、前記直列ビットストリーム内の前記ステージングレジスタの選択された均一な間隔の非隣接メモリ要素内へ同時に読み出すステップと、
ｃ）次のメモリレジスタを判定し、前記ステージングレジスタ内の前記選択された均一な間隔の非隣接メモリ要素に関連して前記直列ビットストリームを同時に単方向へシフトさせ、ステップ（ｂ）において前記選択された均一な間隔の非隣接メモリ要素に読み出されたすべてのビット値が、対応する前記選択された均一な間隔の非隣接メモリ要素に関連して均一にインタリーブされようにするステップと、
ｄ）すべてのメモリレジスタが読み出されるまでステップ（ｂ）及び（ｃ）の動作を繰り返すステップと、
前記直列ビットストリームを前記ステージングレジスタの外へシフトするステップと、
前記直列ビットストリームから情報のビットを復号し、Ｍ個の並列データストリームのそれぞれが前記メモリ装置のあらかじめ選択されたメモリレジスタに対応するように再構築されるステップと、
からなる方法。
【００２９】
【発明の効果】
本発明は、上記のように構成することにより、ビット幅の異なるステージングレジスタとターゲットレジスタの間で効率的なデータ転送を可能にしている。
【図面の簡単な説明】
【図１Ａ】本発明の実施態様に従って８スロットの内容参照可能メモリ（ＣＡＭ）に相互接続されたステージングレジスタ（ＳＴＧ）を例示する単純化された概略図の一部である。
【図１Ｂ】本発明の実施態様に従って８スロットの内容参照可能メモリ（ＣＡＭ）に相互接続されたステージングレジスタ（ＳＴＧ）を例示する単純化された概略図の一部である。
【図２】図１Ａ〜１Ｂの実施態様の動作を論理的に例示した状態遷移図である。
【符号の説明】
１２  ステージングレジスタ
１４  ＣＡＭ（内容参照可能メモリ）
１６  ＣＡＭデータバッファ
１８  ＣＡＭアドレスカウンタ
１０２  直列データ入力ポート
１０４  直列データ出力ポート
【図１Ａ】
0003792576.tif 000002
【図１Ｂ】
0003792576.tif 000003
【図２】
0003792576.tif 000004