(57)【特許請求の範囲】
【請求項１】
異なる機能ブロック（１，３〜１５）と内部メモリ手段（１）を備えるデータチップ内に適切に配置されたメモリチャネル手段（２）であって、該メモリチャネル手段（２）は、
幾つかのメモリチャネル（ＭＣ１〜ＭＣ６）を備え、該各メモリチャネルがソースおよびデスティネーションデータストリーム・インターフェースを有し、該各ソースおよびデスティネーションデータストリーム・インターフェースが異なるブロック（１，３〜１５）に接続可能であり、前記メモリチャネルの少なくとも１つは、前記内部メモリ手段（１）のためのソースおよびデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）を発生するアドバンストアドレス発生器（１９）を備え、該アドバンストアドレス発生器は、伝送されるデータの変更された順序をもたらすようになっており、前記アドバンストアドレス発生器（１９）は、
前記少なくとも１つのメモリチャネルのための第１のカウンタ（ＭＣｘ＿ＣＮＴ１）であって、該第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達するまで伝送された各ワードによりデクリメントされるのに適用されるものと、
前記少なくとも１つのメモリチャネルのための第２のカウンタ（ＭＣｘ＿ＣＮＴ２）であって、前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達した後で前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）のリロードの前に、該第２のカウンタ（ＭＣｘ＿ＣＮＴ２）がゼロに達するまでデクリメントされるのに適用されるものと、を有し、
前記アドバンストアドレス発生器（１９）は、
前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）および前記第２のカウンタ（ＭＣｘ＿ＣＮＴ２）のいずれもがゼロに達していないとき、ストライド値（ＭＣｘ＿ＳＴＲ０）を、前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がデクリメントするたびに、現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に加算し、そして、
前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達するのが生じたとき、第１のストライド値（ＭＣｘ＿ＳＴＲ１）を、前記第２のカウンタ（ＭＣｘ＿ＣＮＴ２）がデクリメントするたびに、現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に加算するのに適用され、
前記メモリチャネル手段（２）は、さらに、各メモリチャネルがソースまたはデスティネーションモードにおいて動作しているかどうかを示すためのソース／デスティネーション選択レジスタ（ＭＣｘ＿ＳＥＬ）を備えることを特徴とするメモリチャネル手段。
【請求項２】
請求項１に記載のメモリチャネル手段において、前記アドバンストアドレス発生器（１９）は、前記第２のカウンタ（ＭＣｘ＿ＣＮＴ２）がゼロに達した後で該第２のカウンタ（ＭＣｘ＿ＣＮＴ２）のリロードの前にデクリメントされるのに適用される第３のカウンタ（ＭＣｘ＿ＣＮＴ３）を有し、
前記アドバンストアドレス発生器（１９）は、前記第３のカウンタ（ＭＣｘ＿ＣＮＴ３）がデクリメントするたびに、現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に対して、第２のストライド値（ＭＣｘ＿ＳＴＲ３）を加算するのに適用されることを特徴とするメモリチャネル手段。
【請求項３】
請求項１または２のいずれか１項に記載のメモリチャネル手段において、前記アドバンストアドレス発生器（１９）は、前記カウンタ（ＭＣｘ＿ＣＮＴ１，ＭＣｘ＿ＣＮＴ２，ＭＣｘ＿ＣＮＴ３）に対して、該カウンタ（ＭＣｘ＿ＣＮＴ１，ＭＣｘ＿ＣＮＴ２，ＭＣｘ＿ＣＮＴ３）のそれぞれがゼロに達した後に、予め定められた値をリロードするのに適用されることを特徴とするメモリチャネル手段。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリチャネル手段において、前記データチップ上の前記メモリチャネル手段（２）、前記内部メモリ手段（１）および他の機能ブロック（１，３〜１５）は、オンチップＣＰＵ（１３）によって制御されることを特徴とするメモリチャネル手段。
【請求項５】
請求項１〜４のいずれか１項に記載のメモリチャネル手段において、前記アドバンストアドレス発生器（１９）は、前記メモリチャネル（ＭＣ１〜ＭＣ６）のソースデータストリームインターフェースからの受信されたワードの数をカウントするのに適用された各メモリチャネルのためのワードカウンタ（ＭＣｘ＿ＣＮＴ）を有することを特徴とするメモリチャネル手段。
【請求項６】
請求項１〜５のいずれか１項に記載のメモリチャネル手段において、各メモリチャネル（ＭＣ１〜ＭＣ６）用の伝送が完了したか、開始されていないか、或いは、進行中かを示すメモリチャネルステータスレジスタ（ＭＣ＿ＳＴＡＴＵＳ）により特徴付けられるメモリチャネル手段。
【請求項７】
請求項１〜６のいずれか１項に記載のメモリチャネル手段において、前記データチップは、ディジタル画像システム用のデータチップであることを特徴とするメモリチャネル手段。
【請求項８】
異なる機能ブロック（１，３〜１５）と内部メモリ手段（１）との間でデータストリームを伝送するための方法であって、前記異なる機能ブロック（１，３〜１５）および前記内部メモリ手段（１）はデータチップ上に配置され、メモリチャネル手段（２）は、幾つかのメモリチャネル（ＭＣ１〜ＭＣ６）を備えて前記データチップ内に適切に配置され、
少なくとも１つのチャネルのために、
伝送される各ワードのために第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達するまで、該第１のカウンタ（ＭＣｘ＿ＣＮＴ１）をデクリメントする段階と、
前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）および前記第２のカウンタ（ＭＣｘ＿ＣＮＴ２）のいずれもがゼロに達していないとき、前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がデクリメントするたびに、現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に対してストライド値（ＭＣｘ＿ＳＴＲ０）を加算する段階と、
前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達した後で前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）のリロードの前に、第２のカウンタ（ＭＣｘ＿ＣＮＴ２）がゼロに達するまで該第２のカウンタ（ＭＣｘ＿ＣＮＴ２）をデクリメントする段階と、
前記第１のカウンタ（ＭＣｘ＿ＣＮＴ１）がゼロに達するのが生じたとき、前記第２のカウンタ（ＭＣｘ＿ＣＮＴ１）がデクリメントするたびに、前記現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に対して第１のストライド値（ＭＣｘ＿ＳＴＲ１）を加算する段階と、
前記メモリチャネル手段（２）に含まれるソース／デスティネーション選択レジスタ（ＭＣｘ＿ＳＥＬ）によって、少なくとも１つのメモリチャネルがソースまたはデスティネーションモードにおいて動作しているかどうかを示す段階と、により特徴付けられる伝送方法。
【請求項９】
請求項８に記載の伝送方法において、
前記第２のカウンタ（ＭＣｘ＿ＣＮＴ２）がゼロに達した後で該第２のカウンタ（ＭＣｘ＿ＣＮＴ２）のリロードの前に第３のカウンタ（ＭＣｘ＿ＣＮＴ３）をデクリメントし、且つ、
前記第３のカウンタ（ＭＣｘ＿ＣＮＴ３）がデクリメントするたびに、現在のソースまたはデスティネーションアドレス（ＭＣｘ＿ＰＴＲ）に対して第２のストライド値（ＭＣｘ＿ＳＴＲ２）を加算するさらなる段階により特徴付けられる伝送方法。
【請求項１０】
請求項８または９のいずれか１項に記載の伝送方法において、前記カウンタ（ＭＣｘ＿ＣＮＴ１，ＭＣｘ＿ＣＮＴ２，ＭＣｘ＿ＣＮＴ３）に対して、該カウンタ（ＭＣｘ＿ＣＮＴ１，ＭＣｘ＿ＣＮＴ２，ＭＣｘ＿ＣＮＴ３）のそれぞれがゼロに達した後に、予め定められた値をリロードするさらなる段階により特徴付けられる伝送方法。
【請求項１１】
請求項８〜１０のいずれか１項に記載の伝送方法において、前記メモリチャネル（ＭＣ１〜ＭＣ６）のソースデータストリームインターフェースからの受信されたデータユニットの数をカウントするさらなる段階により特徴付けられる伝送方法。
【請求項１２】
請求項８〜１１のいずれか１項に記載の伝送方法において、各メモリチャネル（ＭＣ１〜ＭＣ６）用の伝送が完了したか、開始されていないか、或いは、進行中かを示すステータス値（ＭＣ＿ＳＴＡＴＵＳ）を記憶する段階により特徴付けられる伝送方法。
【発明の詳細な説明】
【０００１】
［発明の分野］
本発明は、広くメモリチャネル手段に関し、特に、データチップ上の異なるブロックと内部メモリ手段との間でデータストリームを伝送する幾つかのメモリチャネルを備えるメモリチャネル手段に関する。
【０００２】
［従来技術の記載］
汎用用途および特殊用途のチップは、通常、内部バスによってデータを遣り取りするＣＰＵ、制御回路、Ｉ／Ｏポート、メモリユニット、レジスタ等の多くの異なるブロックを備えている。バスは、データを一方向または双方向に伝送するために構成された接続のセットである。幾つかのバスは、専用のバス、すなわち、特有のソース（source：源）およびデスティネーション（destination：行き先）を有するバスである。従って、もし、ｎ個のブロックがバスにより全ての可能な経路で相互接続される必要があるならば、ｎ（ｎ−ｌ）個の専用バスが必要である。一般に、バスドライバおよび論理回路は、バスを制御するために必要とされる。これらの構成は、かなりの費用を伴い、従って、幾つかのソースのうちの１つを幾つかのデスティネーションのうちの１つに接続させ得るバスが使用される。しかしながら、より少ないバスを持つこの構成は、より複雑な論理回路およびバスコントローラを必要とする。
【０００３】
伝統的なバスは、ＣＰＵ−メモリバスまたはＩ／Ｏバスとして分類される。Ｉ／Ｏバスは、長く、多くの種類のデバイスを相互接続することができ、デバイスのデータバンド幅の広いレンジを有している。一方、ＣＰＵ−メモリバスは、短く、高速バスであり、そして、ＣＰＵ−メモリバスのバンド幅を最大化するように設計される。また、メモリおよびＩ／Ｏ装置の両方のための単一バスも利用することができる。
【０００４】
ＬＳＩロジック株式会社（LSI Logic Corporation）から提供されるＤＣＡＭ（登録商標）−１０１は、ディジタルスチルカメラのための特殊用途チップである。このＤＣＡＭ−１０１は、ディジタル画像のプレビュー、キャプチャー、圧縮、フィルタ、記憶、伝送および表示に必要とされる異なる機能を含んでいる。その結果、ＤＣＡＭ−１０１チップは、ＣＰＵ、メモリユニット、異なるＩ／Ｏインターフェースおよび制御ブロック等の幾つかのブロックおよびユニットを備え、それらの全ては、伝統的な内部バスを介してデータを遣り取りしている。
【０００５】
そのような伝統的なバスは、チップ上の異なるブロック間の受動的なデータの伝送だけを可能とし、すなわち、データは、伝送の間の如何なる経路においても処理されない。
【０００６】
［発明の概要］
本発明の主たる目的は、１つのチップ上の異なるブロックの間でデータストリームを移動させ、且つ、伝送されるデータを同時に処理するために、改良されたメモリチャネル手段を提供することにある。
本発明の他の目的は、データストリーム内のデータの順序を変更することにある。
【０００７】
本発明のさらなる目的は、チップにおける必要なメモリの容量を低減する改良されたメモリチャネル手段を提供することにある。
本発明のさらに他の目的は、規則的なアドレス指定機構（アドレッシングスキム）を得ることにある。
さらに、本発明の付加的な目的は、並行して動作し且つ互いに独立なメモリをアクセスするメモリチャネルおよびアドレス発生器を提供することにある。
【０００８】
本発明のこれらおよび他の目的、構成並びに長所は、幾つかのメモリチャネルであって、各チャネルがソースおよびデスティネーションデータストリーム・インターフェースを有し、各インターフェースが異なるブロックに接続可能であるものと、内部メモリのためのソースおよびデスティネーションアドレスを発生するフレキシブルアドレス発生器（１６，１９）と、を備える本発明に係るフレキシブルメモリチャネル手段によって遂行され、それは、図面と関連した以下の詳細な記述から明らかになるであろう。
本発明の第１の形態によれば、異なる機能ブロックと内部メモリ手段を備えるデータチップ内に適切に配置されたメモリチャネル手段であって、該メモリチャネル手段は、幾つかのメモリチャネルを備え、該各メモリチャネルがソースおよびデスティネーションデータストリーム・インターフェースを有し、該各ソースおよびデスティネーションデータストリーム・インターフェースが異なるブロックに接続可能であり、前記メモリチャネルの少なくとも１つは、前記内部メモリ手段のためのソースおよびデスティネーションアドレスを発生するアドバンストアドレス発生器を備え、該アドバンストアドレス発生器は、伝送されるデータの変更された順序をもたらすようになっており、前記アドバンストアドレス発生器は、前記少なくとも１つのメモリチャネルのための第１のカウンタであって、該第１のカウンタがゼロに達するまで伝送された各ワードによりデクリメントされるのに適用されるものと、前記少なくとも１つのメモリチャネルのための第２のカウンタであって、前記第１のカウンタがゼロに達した後で前記第１のカウンタのリロードの前に、該第２のカウンタがゼロに達するまでデクリメントされるのに適用されるものと、を有し、前記アドバンストアドレス発生器は、前記第１のカウンタおよび前記第２のカウンタのいずれもがゼロに達していないとき、ストライド値を、前記第１のカウンタがデクリメントするたびに、現在のソースまたはデスティネーションアドレスに加算し、そして、前記第１のカウンタがゼロに達するのが生じたとき、第１のストライド値を、前記第２のカウンタがデクリメントするたびに、現在のソースまたはデスティネーションアドレスに加算するのに適用され、前記メモリチャネル手段は、さらに、各メモリチャネルがソースまたはデスティネーションモードにおいて動作しているかどうかを示すためのソース／デスティネーション選択レジスタを備えることを特徴とするメモリチャネル手段が提供される。
本発明の第２の形態によれば、異なる機能ブロックと内部メモリ手段との間でデータストリームを伝送するための方法であって、前記異なる機能ブロックおよび前記内部メモリ手段はデータチップ上に配置され、メモリチャネル手段は、幾つかのメモリチャネルを備えて前記データチップ内に適切に配置され、少なくとも１つのチャネルのために、伝送される各ワードのために第１のカウンタがゼロに達するまで、該第１のカウンタをデクリメントする段階と、前記第１のカウンタおよび前記第２のカウンタのいずれもがゼロに達していないとき、前記第１のカウンタがデクリメントするたびに、現在のソースまたはデスティネーションアドレスに対してストライド値を加算する段階と、前記第１のカウンタがゼロに達した後で前記第１のカウンタのリロードの前に、第２のカウンタがゼロに達するまで該第２のカウンタをデクリメントする段階と、前記第１のカウンタがゼロに達するのが生じたとき、前記第２のカウンタがデクリメントするたびに、前記現在のソースまたはデスティネーションアドレスに対して第１のストライド値を加算する段階と、前記メモリチャネル手段に含まれるソース／デスティネーション選択レジスタによって、少なくとも１つのメモリチャネルがソースまたはデスティネーションモードにおいて動作しているかどうかを示す段階と、により特徴付けられる伝送方法が提供される。
【０００９】
本発明をより詳細に説明すると共に、本発明の長所および構成を説明するために、好適な実施例の以下の詳細な記述が添付図面に従って言及される。
［発明の詳細な記述］
本発明は、好ましくは、ディジタル画像システム用のチップのような特殊用途チップ上の異なるブロックと内部メモリ手段との間でデータストリームを伝送するフレキシブルメモリチャネル手段である。
【００１０】
ディジタル画像システム用のチップは、本発明に係るフレキシブルメモリチャネル手段の一実施例の適用を説明するためにだけ役に立つ。本発明の他の実施例は、他の適用に対しても応用可能である。さらに、以下の記述において、チャネルの数、レジスタの数、各レジスタのビット数およびチップ上の異なるブロックの数といった多数の具体的な記述は、本発明をより詳述に記述するために提供されている。しかしながら、本発明は、それらの具体的な細目なし実施することができるであろうことは、いわゆる当業者であれば明らかであろう。幾つかの公知の構成は、本発明を不明瞭にしないために詳細には説明されない。
【００１１】
図１に示されるように、ディジタルの画像システムのためのチップ等の特殊用途チップは、ＪＰＥＧ等の圧縮アルゴリズムを使用するＣＣＤカメラやビデオソースからカラー画像を圧縮するのに好適な異なるブロックを備える。チップ上の殆どのブロックは、データソース、データデスティネーション或いはその両方として動作する。
【００１２】
内部メモリ手段またはＲＡＭ（ＲＡＭ）１は、幾つかのメモリチャネル、実施例においてはＭＣ１〜ＭＣ６を備える本発明に係るメモリチャネル手段２を介してアクセスされる。各チャネルは、内部のメモリのためにソースおよびデスティネーションアドレスを発生するフレキシブルアドレス発生器と、ソースおよびデスティネーションデータストリーム・インターフェースとを有し、各インターフェースは、異なるブロックに対して接続可能である。
例えば、入力データは、ＣＣＤインターフェース３或いはビデオインターフェース４を介して受け取られ、そのデータは、図２に示されるように、第１のメモリチャネルＭＣ１のデスティネーションデータストリーム・インターフェースを介して内部ＲＡＭ１に格納（記憶）される。さらに、記憶されたデータは、ＤＣＴ（離散コサイン変換）ブロック５によって、ＤＣＴ係数に変換して量子化ブロック６において量子化するためにＲＡＭ１から第２のメモリチャネルＭＣ２のソースデータストリーム・インターフェースを介して読み出される。さらに、量子化された係数は、シンボルハフマン（Symbol Huffman）ＶＬＩブロック７における可変長整数符号化（variable length integer coding）およびハフマンエントロピー符号化（Huffman entropy coding）のための対象である。結果としてのシンボルは、ビットストリームブロック８においてビットストリームに変換され、そして、データストリームがホストインターフェース９を介して外部のホストに出力される前に、データストリームはＦＩＦＯブロック１０にバッファされる。データストリームは、必ずしも外部のホストに伝送されるわけではないが、後の検索のために第４のメモリチャネルＭＣ４のデスティネーションデータストリーム・インターフェースを介してＲＡＭ１に蓄えられる。
【００１３】
幾つかの画像動作は、外部メモリのサポートを必要とする。クロックを画像に載せる（putting）といったような静止画像のオーバーローディング（過負荷）は、外部メモリのアクセスを伴う。ここで、データは、外部のＲＡＭインターフェース１１を介して、例えば、第２のメモリチャネルＭＣ２のデスティネーションデータストリーム・インターフェースを介して外部メモリから読み込まれる。過負荷の動作は、ブリッタ１２により実行される。画像データは、第２および第３のメモリチャネルＭＣ２およびＭＣ３の一方のソースデータストリーム・インターフェースを介してＲＡＭ１から読み込まれ、そのデータはブリッタ１２によって処理されて、第１および第４のメモリチャネルＭＣ１およびＭＣ４のデスティネーションデータストリーム・インターフェースを介してＲＡＭ１に戻されて格納される。
【００１４】
メモリチャネル手段２、ＲＡＭ１およびチップ上の他の機能ブロックを制御するために、オンチップＣＰＵ１３が提供される。
付加的なメモリユニット或いはＲＡＭ１４は、それらを適切に動作させるべくブロックのうちの幾つかをサポートするために提供され、一般のＩ／Ｏインターフェース１５もまたチップと他の外部のＩ／Ｏ装置間の通信のために提供される。
【００１５】
上述したように、内部のＲＡＭ１へのアクセスは本発明に係るメモリチャネル手段２を介して行われ、このメモリチャネル手段２は、実施例では６つのメモリチャネルを備えている。各メモリチャネルは、ソースおよびデスティネーションの少なくとも２つのデータストリームインターフェースと、関連付けられたアドレス発生器を有している。第１、第２および第３のメモリチャネルＭＣ１，ＭＣ２およびＭＣ３は、アドバンストアドレス発生器を伴って提供され、また、第４、第５および第６のメモリチャネルＭＣ４，ＭＣ５およびＭＣ６は、シンプルアドレス発生器を伴って提供される。メモリチャネルＭＣ４〜ＭＣ６の実施例は、シンプルアドレス発生器１６、アドレスデコーダ１７およびデータチャネル１８を伴って提供され、それは図３Ａに描かれている。また、アドバンストアドレス発生器１９、アドレスデコーダ２０およびデータチャネル２１を伴って提供されるメモリチャネルＭＣ１〜ＭＣ３の実施例は、図３Ｂに描かれている。さらに、各メモリチャネルは、制御手段、および、適切な動作のためのソフトウェアおよび／またはハードウェアを備えている。しかしながら、これは、当業者には明らかである。
【００１６】
シンプルアドレス発生器は、連続するソースおよびデスティネーションアドレスを発生し、また、アドバンストアドレス発生器は、より複雑なアドレス指定機構（アドレススキム）を提供する。
シンプルアまたはアドバンストの同じ種類の全てのアドレス発生器は、レジスタＭＣｘ＿ＹＹＹｙの同じセットを有している。ここで、ＭＣｘは、メモリチャネルｘ（ｘ：１〜３はアドバンスト用発生器、そして、４〜６はシンプル用発生器）であり、また、ＹＹＹｙは、レジスタの種類である。
【００１７】
本発明に係る好ましい実施例において、以下のレジスタは、それぞれ図４Ｂおよび図４Ａに示されるアドバンストアドレス発生器１９およびシンプルアドレス発生器１６が使用可能である。さらに、アドレス計算器２２は、シンプルアドレス発生器１６に提供され、また、アドレス計算器２３は、アドバンストアドレス発生器１９に提供される。さらにまた、各アドレス発生器が制御手段、および、適切な動作のためのソフトウェアおよび／またはハードウェアを備えていることは、当業者には明らかである。
【００１８】
｛アドバンストアドレスレジスタ（１〜３）｝
ＭＣｘ＿ＣＮＴ：    ワードカウンタ（伝送されるワードの数）
ＭＣｘ＿ＰＴＲ：    アドレスポインタ（現在のアドレス）
ＭＣｘ＿ＳＴＲ０：  ストライド値０
ＭＣｘ＿ＣＴＲＬ：  制御レジスタ
ビット０  −  ソース／デスティネーション制御
１  −  デスティネーション
０  −  ソース
ビット１  −  マイナーストライド  イネーブル
ビット２  −  メジャーストライド  イネーブル
ビット３  −  メガストライド  イネーブル
【００１９】
ＭＣｘ＿ＣＮＴｌ：  マイナーカウント（連続的アクセスの数）
ＭＣｘ＿ＳＴＲ１：  マイナーストライド（全てのマイナーカウントアクセス毎にアドレスポインタＭＣｘ＿ＰＴＲに追加される）
ＭＣｘ＿ＣＮＴ２：  メジャーカウント（連続的なマイナーサイクルの数）
ＭＣｘ＿ＳＴＲ２：  メジャーストライド（メジャーカウントマイナーサイクルの後のアドレスポインタＭＣｘ＿ＰＴＲに追加される）
ＭＣｘ＿ＣＮＴ３    メガカウント（連続的なメジャーサイクルの数）
ＭＣｘ＿ＳＴＲ３    メガストライド（メガカウントメジャーサイクルの後のアドレスポインタＭＣｘ＿ＰＴＲに追加される）
ＭＣｘ＿ＳＥＬ      ソース／デスティネーション選択
【００２０】
｛シンプルアドレスレジスタ（４〜６）｝
ＭＣｘ＿ＣＮＴ：    ワードカウンタ（伝送されるワードの数）
ＭＣｘ＿ＰＴＲ：    アドレスポインタ（現在のアドレス）
ＭＣｘ＿ＣＴＲＬ：  制御レジスタ
ビット０  −  ソース／デスティネーション制御
１  −  デスティネーション
０  −  ソース
ＭＣｘ＿ＳＥＬ      ソース／デスティネーション選択
【００２１】
従って、３つの異なるストライドレジスタＭＣｘ＿ＳＴＲ１，ＭＣｘ＿ＳＴＲ２およびＭＣｘ＿ＳＴＲ３は、ストライド値によってロードされ得る。その値は、ストライドユニットの状態に依存する次のアドレスを提供するために、アドレス発生器１９におけるアドレス計算器２３により使用される。状態は、３つの異なるストライドカウンタにより制御され、それぞれアドレスをカウントするときにアップデートされ、続く低いストライドカウンタはゼロとされる。カウンタがゼロのとき、そのカウンタは、予め蓄えられたスタートの値でリロードされる。これは、伝送が完了するまで繰り返され、それは現在のメモリチャネルＭＣ１〜ＭＣ６によって制御される。全てのレジスタは、特有の順序でロードされる。
【００２２】
次の順序が好ましい。
１．ストライド０をレジスタＭＣｘ＿ＳＴＲ０にロードする。
２．ストライド設定レジスタＭＣｘ＿ＣＴＲＬをロードする。
３．全ての（使用された）カウンタおよびストライドレジスタＭＣｘ＿ＣＮＴｌ，ＭＣｘ＿ＳＴＲｌ，ＭＣｘ＿ＣＮＴ２，ＭＣｘ＿ＳＴＲ２，ＭＣｘ＿ＣＮＴ３およびＭＣｘ＿ＳＴＲ３をロードする。
４．デスティネーションポインタレジスタＭＣｘ＿ＰＴＲをロードする。
５．ＭＣｘ＿ＣＮＴレジスタでデータ伝送を開始する。
【００２３】
値がＭＣｘ＿ＰＴＲレジスタに書き込まれるとき、全てのストライドカウンタは、初期状態にリロードされる。さらに、ＭＣｘ＿ＣＮＴレジスタに書き込まれるとき、メモリチャネルがデータ伝送を始めるときにはその準備ができているように、最初のストライドアップデートが予め計算される。この予めの計算は、最初のアドレスが既に使用されているときにアップデートされた信号が受け取られるので、実行される。アップデート信号は、チャネルが最初に伝送されたワードをＲＡＭ１に書き込んだとき、メモリチャネルによって発生される。
【００２４】
アドバンストアドレス発生器１９とストライドレジスタＭＣｘ＿ＳＴＲｌ〜３を伴う複雑なデータ伝送の後、そして、チャネルが準備できているとき、より多くのワードがＭＣｘ＿ＣＮＴに再び書き込まれることによって伝送され得る。この場合、全てのストライドレジスタのための内部状態は、予め使用されて伝送は連続する。もし、ＭＣｘ＿ＣＮＴが書き込まれる前にＭＣｘ＿ＰＴＲが書き込まれるならば、その状態は復元される。
【００２５】
メモリチャネルのワードカウンタＭＣｘ＿ＣＮＴは、ブロックまたはメモリであるソースから受け取ったワードの数をカウントし、伝送されたワードの数はカウントしない。メモリチャネルは、ＦＩＦＯ手段を有し、本実施例では２段のキュー（queue）を備えているので、ＭＣｘ＿ＣＮＴのカウント値は、完了した伝送の信頼できる指標を与えない。従って、メモリチャネル手段２は、６ビットのメモリチャネルステータスレジスタＭＣ＿ＳＴＡＴＵＳを伴って提供され、各ビットは、特定のメモリチャネルと関連付けられ、例えば、ビット０は最初のメモリチャネルＭＣ１と関連付けられる。もし、伝送が完了するか、或いは、開始されないならば、ビットは設定され、また、もし伝送が進行中ならばビットは設定されない。
【００２６】
上述したように、ＲＡＭ１へのアクセスは、メモリチャネル手段２およびそれぞれソースおよびデスティネーションデータストリーム・インターフェースを有する該メモリチャネル手段のメモリチャネル、並びに、該メモリチャネル手段のアドレス発生器の手段によって実行される。
【００２７】
シンプルアドレス発生器は、連続的なアドレスを発生するのに有用である。ブロック３〜１５のうちの１つとチップ上のＲＡＭ１との間のデータ伝送を開始するために、伝送はシンプルアドレス発生器を必要とするだけであり、開始アドレスが発生されてＭＣｘ＿ＰＴＲレジスタに書き込まれ、スタート値がワードカウンタＭＣｘ＿ＣＮＴに書き込まれる。データ伝送は、本実施例におけるワードベースによって、ワードに基づいて進行する。伝送が完了すると、メモリチャネルステータスレジスタＭＣ＿ＳＴＡＴＵＳにおける関連付けられたビットが設定される。
【００２８】
より複雑なアドレススキムにおいて、アドバンストアドレス発生器（１〜３）が提供されたメモリチャネルが使用される。アドバンストアドレス発生器は、各カウンタ手段が記憶されたストライド値と関連付けられたカウンタ手段を備えている。最初のカウンタレジスタＭＣｘ＿ＣＮＴｌを含む最初のカウンタ手段は、それがゼロに達するまで全ての伝送されたワードでデクリメントされ、最初のストライドレジスタＭＣｘ＿ＳＴＲ１に記憶された対応するストライド値が、アドレスレジスタＭＣｘ＿ＰＴＲにおける現在のアドレスに加算される。ストライド状態手段は、カウンタレジスタ用の制御信号を発生する。最初のカウンタレジスタＭＣｘ＿ＣＮＴｌには、予め定められた値がリロードされる。少なくとももう１つのカウンタは、その前のカウンタ手段がゼロに達する度毎にデクリメントされ、該カウンタの関連付けされたストライド値は、アドレスレジスタＭＣｘ＿ＰＴＲにおける現在のアドレスに加算され、連続するカウンタ手段に予め定められた値がリロードされる。上述したように、本発明の好ましい実施例において、２つの付加的なカウンタＭＣｘ＿ＣＮＴ２およびＭＣｘ＿ＣＮＴ３が提供される。そのため、ＭＣｘ＿ＣＮＴ１がゼロのとき、２番目のカウンタＭＣｘ＿ＣＮＴ２がデクリメントされる。２番目のカウンタがゼロになるときには、３番目のカウンタＭＣｘ＿ＣＮＴ３がデクリメントされる。もし、カウンタＭＣｘ＿ＣＮＴｌ，ＭＣｘ＿ＣＮＴ２またはＭＣｘ＿ＣＮＴ３のいずれもがゼロではないとき、別のストライドレジスタＭＣｘ＿ＳＴＲ０に格納されたストライド値がアドレスレジスタＭＣｘ＿ＰＴＲにおける現在のアドレスに追加される。
【００２９】
アドレス発生器は、アドレスが使用される１サイクル後にメモリチャネルからアップデート信号を受け取り、そのため、アドレスは１サイクル進んで発生される。
ストライドレジスタが提供されたアドバンストアドレス発生器の手段によるアドレス発生の幾つかの例が図５における表１に示され、データソースとデスティネーションの間の可能な接続が図６における表２の例により説明される。
【００３０】
各メモリチャネルＭＣ１〜ＭＣ６は、２つの異なるモード、すなわち、ソースおよびデスティネーションで動作する。デスティネーションモードデータで動作するメモリチャネルにおいて、データは、ブロックから受け取られてＲＡＭ１に伝送される。各伝送されたワードのために、アップデート信号がメモリチャネルにおいて発生されてアドレス発生器に送られる。各メモリチャネルの伝送カウンタは、メモリチャネルにおけるＦＩＦＯキューに対して特別なチャネルで接続されたブロックから読み出されたワードの数をカウントする。データがＦＩＦＯに存在している限り、メモリチャネルはメモリサイクルのための要求を行い、アドレス発生器が次のアドレスを発生する。メモリサイクルがメモリチャネルにとって有効なとき、信号は、メモリコントローラから受け取られる。
【００３１】
ソースモードにおいて、伝送カウンタは、ＦＩＦＯに対する現在のメモリチャネルから読み出されたワードの数をカウントする。データがＦＩＦＯに存在している限り、そのデータは、ブロックに対する適切なデータレートで接続されたブロックに伝送される。
【００３２】
本発明は、特定の実施例を通して説明されたが、本発明は、上述した目的および長所を十分に満たすフレキシブルメモリチャネルを提供するものであることは明らかであり、また、代替、変更および変形は、いわゆる当業者にとっては明らかである。
【図面の簡単な説明】
【図１】  本発明に係るフレキシブルメモリチャネル手段を備える特殊用途チップのブロック図である。
【図２】  図１におけるメモリチャネル手段の実施例をより詳細に示すブロック図である。
【図３Ａ】  本発明に係るメモリチャネルの第１実施例のブロック図である。
【図３Ｂ】  本発明に係るメモリチャネルの第２実施例のブロック図である。
【図４Ａ】  本発明に係るアドレス発生器の第１実施例のブロック図である。
【図４Ｂ】  本発明に係るアドレス発生器の第２実施例のブロック図である。
【図５】  本発明に係るアドレス発生器の第２実施例によるアドレス発生の方法を示すテーブルである。
【図６】  図１における特殊用途チップにおけるデータソースとデスティネーションの間の可能な接続を示すテーブルである。
【図１】
0004584457.tif 000002
【図２】
0004584457.tif 000003
【図３Ａ】
0004584457.tif 000004
【図３Ｂ】
0004584457.tif 000005
【図４Ａ】
0004584457.tif 000006
【図４Ｂ】
0004584457.tif 000007
【図５】
0004584457.tif 000008
【図６】
0004584457.tif 000009