(57)【特許請求の範囲】
【請求項１】
垂直のタイル状メモリアクセス、水平のタイル状メモリアクセスおよび非タイル状メモリアクセスを制御する装置であって、
アドレス前スウィズル回路であって、プロセッサにより提供される複数のアドレスビットから調整された調整済みアドレスビットを前記アドレス前スウィズル回路の出力に生成するスウィズル出力状態および非スウィズル出力状態を有し、垂直のメモリアクセスまたは水平のメモリアクセスであることを示すアクセス制御信号に従い前記スウィズル出力状態および前記非スウィズル出力状態のいずれか一方の出力状態が選択される、アドレス前スウィズル回路と、
前記アドレス前スウィズル回路の前記出力に結合され、異なる複数の置換マッピングタイプのうち選択された１つの置換マッピングタイプに従いデータを動的に操作することによって、メモリにおけるＮ個のサブチャネルにデータを結合し、前記複数の置換マッピングタイプのうち前記選択された前記１つの置換マッピングタイプが、前記アクセス制御信号および前記アドレス前スウィズル回路の前記出力からの前記調整済みアドレスビットの関数として選択される、データステアリング回路と、
それぞれ前記アドレス前スウィズル回路の出力に結合され、前記アクセス制御信号および前記サブチャネルを識別するサブチャネル識別情報に従い、使用されるＮ個のアドレスビットを前記調整済みアドレスビットから生成するＮ個のアドレス後スウィズル回路と、
それぞれ前記Ｎ個のアドレス後スウィズル回路および前記データステアリング回路に結合され、前記Ｎ個のサブチャネルに対するサブチャネルデータおよびサブチャネルアドレスビットをそれぞれ生成するＮ個のサブチャネルインターフェース回路と
を備える装置。
【請求項２】
前記アクセス制御信号は、
前記タイル状メモリアクセスを選択するタイル状制御信号と、
前記タイル状制御信号がアサートされた場合、前記垂直のタイル状メモリアクセスを選択する垂直制御信号と
から得られる、
請求項１に記載の装置。
【請求項３】
前記アドレス前スウィズル回路のそれぞれは、最下位共通アドレスビットを選択するデータセレクタを有する、
請求項１または２に記載の装置。
【請求項４】
メモリアクセスタイプが前記垂直のタイル状メモリアクセスの場合、前記Ｎ個のアドレス後スウィズル回路は、前記アドレス前スウィズル回路の前記出力からの前記調整済みアドレスビットおよび前記サブチャネル識別情報の論理関数でＮ群のサブチャネルアドレスビットを生成する、
請求項１から３のいずれか一項に記載の装置。
【請求項５】
メモリアクセスタイプが前記水平のタイル状メモリアクセス、または、非タイル状メモリアクセスの場合、前記Ｎ個のアドレス後スウィズル回路は、前記アドレス前スウィズル回路の前記出力からの前記調整済みアドレスビットからＮ群のサブチャネルアドレスビットを生成する、
請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記異なる複数の置換マッピングタイプは、単一性置換および複数のスウィズル置換を含む、
請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記水平のタイル状メモリアクセスおよび非タイル状メモリアクセスにおいて、前記データステアリング回路によって単一性置換マッピングだけが選択される、
請求項６に記載の装置。
【請求項８】
前記タイル状メモリアクセスにおいて、前記データステアリング回路は、前記調整済みアドレスビットの第１状態に対して、前記単一性置換マッピングを選択し、前記調整済みアドレスビットの異なる状態のそれぞれに対して、前記複数のスウィズル置換のマッピングのうちの異なる１つのマッピングを選択する、
請求項７に記載の装置。
【請求項９】
前記複数のスウィズル置換は、隣接する位置をスウィズルする第１スウィズル置換と、隣接する更に１つの位置を加えた位置をスウィズルする第２スウィズル置換とを含む、
請求項６から８のいずれか一項に記載の装置。
【請求項１０】
メモリアクセスを制御する方法であって、
垂直のアドレッシングが適用されるか非垂直のアドレッシングが適用されるかを示すアクセス制御信号に従い、プロセッサにより提供されるアドレスビットを調整する段階であって、スウィズルしたアドレスビットまたはスウィズルしていないアドレスビットを選択することを含む段階と、
異なる複数の置換マッピングタイプのうちの１つの置換マッピングタイプを、前記アクセス制御信号および前記調整されたアドレスビットである調整済みアドレスビットの関数として選択することでデータを動的に操作することによって、メモリにおけるＮ個のサブチャネルにデータを結合する段階と、
前記調整済みアドレスビットを受信し、前記サブチャネルを識別するサブチャネル識別情報を受信して、前記調整済みアドレスビットおよび前記サブチャネル識別情報に従い、前記受信した前記調整済みアドレスビットから、使用されるＮ個のアドレスビットを生成する段階と、
前記操作されたデータおよび前記使用されるアドレスビットを受信して、前記Ｎ個のサブチャネルのそれぞれに対するサブチャネルデータおよびサブチャネルアドレスビットを生成する段階と
を備える方法。
【請求項１１】
前記アクセス制御信号は、
タイル状メモリアクセスを選択するタイル状制御信号と、
前記タイル状制御信号がアサートされた場合、前記垂直のタイル状メモリアクセスを選択する垂直制御信号と
から得られる、
請求項１０に記載の方法。
【請求項１２】
前記生成されたサブチャネルアドレスビットはＫ個のアドレスビットを有し、Ｋはｌｏｇ２（Ｎ）に等しい、
請求項１０または１１に記載の方法。
【請求項１３】
前記Ｎ個のサブチャネルアドレスビットを生成する段階は、メモリアクセスタイプが前記垂直のタイル状メモリアクセスの場合、前記調整済みアドレスビットおよび前記サブチャネル識別情報に対して論理演算を行う段階を有する、
請求項１０から１２のいずれか一項に記載の方法。
【請求項１４】
前記異なる複数の置換マッピングタイプは、単一性置換および複数のスウィズル置換を含む、
請求項１０から１３のいずれか一項に記載の方法。
【請求項１５】
メモリアクセスを制御するシステムであって、
プロセッサと、
メモリにおけるＮ個のサブチャネル内に形成され、同期型随時書き込み読み出しメモリ（ＳＤＲＡＭ）である複数のメモリデバイスと、
前記プロセッサおよび前記複数のメモリデバイスに結合され、アクセスコントローラを有するメモリコントローラと
を備え、
前記アクセスコントローラは、
垂直のタイル状メモリアクセス、水平のタイル状メモリアクセスおよび非タイル状メモリアクセスを制御する装置であって、
アドレス前スウィズル回路であって、プロセッサにより提供される複数のアドレスビットから調整された調整済みアドレスビットを前記アドレス前スウィズル回路の出力に生成するスウィズル出力状態および非スウィズル出力状態を有し、垂直のメモリアクセスまたは水平のメモリアクセスであることを示すアクセス制御信号に従い前記スウィズル出力状態および前記非スウィズル出力状態のいずれか一方の出力状態が選択される、アドレス前スウィズル回路と、
前記アドレス前スウィズル回路の前記出力に結合され、異なる複数の置換マッピングタイプのうち選択された１つの置換マッピングタイプに従いデータを動的に操作することによって、メモリにおけるＮ個のサブチャネルにデータを結合し、前記複数の置換マッピングタイプのうち前記選択された前記１つの置換マッピングタイプが、前記アクセス制御信号および前記アドレス前スウィズル回路の前記出力からの前記調整済みアドレスビットの関数として選択される、データステアリング回路と、
それぞれ前記アドレス前スウィズル回路の出力に結合され、前記アクセス制御信号および前記サブチャネルを識別するサブチャネル識別情報に従い、使用されるＮ個のアドレスビットを前記調整済みアドレスビットから生成するＮ個のアドレス後スウィズル回路と、
それぞれ前記Ｎ個のアドレス後スウィズル回路および前記データステアリング回路に結合され、前記Ｎ個のサブチャネルに対するサブチャネルデータおよびサブチャネルアドレスビットをそれぞれ生成するＮ個のサブチャネルインターフェース回路と
を有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、マイクロプロセッサの分野に関し、より詳しくは、メモリ構成に関する。
【背景技術】
【０００２】
典型的なプロセッサシステムにおいて、メモリは、通常、線形にアドレス指定された記憶素子アレイとして構成される。この構成は、プログラム内の命令が順次実行されるので、コードまたはプログラム記憶領域に適している。しかし、特定のタイプのデータ記憶、または、特定のメモリ動作にとっては、線形構成は非効率的な場合もある。
【０００３】
特定のアプリケーションに影響されるデータ構造に従いメモリが構成されることは、多くの用途において望ましいかもしれない。例えば、グラフィックおよびイメージングアプリケーションでは、基本データ構造は二次元（２−Ｄ）配列である。二次元配列は、基本データブロックを提供することに加え、多次元配列を構築するために用いられてよい。既存のメモリ構成を用いて２−Ｄ配列にアクセスすると、非効率の原因となる処理オーバーヘッドを招く可能性がある。さらに、通常、スクリーンリフレッシュは、一度に１本のスキャンラインに対して行われるので、メモリ構成が線形になるほどメリットが大きい。
【図面の簡単な説明】
【０００４】
本発明の実施形態は、以下の説明および添付の図面を参照することで最も良く理解できよう。添付の図面は、本発明の実施形態を図示する目的で用いられる。
【図１Ａ】本発明の一実施形態が実施されうるシステムを示す図である。
【図１Ｂ】本発明の一実施形態に係るグラフィックシステムを示す図である。
【図１Ｃ】本発明の一実施形態に係るサーバ／コンピュータシステムを示す図である。
【図２Ａ】本発明の一実施形態に係るタイル状メモリアクセスを示す図である。
【図２Ｂ】本発明の一実施形態に係るメモリサブチャネルを伴うタイル状メモリアクセスを示す図である。
【図３Ａ】本発明の一実施形態に係るアクセスコントローラを示す図である。
【図３Ｂ】本発明の一実施形態に係るアクセスコントローラを用いた垂直のタイル状メモリアクセスを示す図である。
【図３Ｃ】本発明の一実施形態に係るアクセスコントローラを用いた水平のタイル状メモリアクセスを示す図である
【図３Ｄ】本発明の一実施形態に係るアクセスコントローラを用いた非タイル状メモリアクセスを示す図である。
【図４】本発明の一実施形態に係るアドレス前スウィズル（ｓｗｉｚｚｌｅ）回路を示す図である。
【図５】本発明の一実施形態に係るアドレス後スウィズル回路を示す図である。
【図６Ａ】本発明の一実施形態に係るデータステアリング回路の設定を示す図である。
【図６Ｂ】本発明の一実施形態に係るデータステアリング回路を示す図である。
【図７】本発明の一実施形態に係るメモリにアクセスするプロセスを示すフローチャートである。
【図８】本発明の一実施形態に係るデータステアリング回路の設定を選択するプロセスを示すフローチャートである。
【図９】本発明の一実施形態に係るＮ群のサブチャネルアドレスビットを生成するプロセスを示すフローチャートである。
【発明を実施するための形態】
【０００５】
本発明の一実施形態は、メモリアクセスを制御する技術である。データステアリング回路は、メモリにおけるＮ個のサブチャネルに接続し、アクセス制御信号と、Ｎ個のサブチャネルに関連付けられたサブチャネル識別子とに従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプデータを動的に操作する。タイル状メモリアクセスは、水平および垂直のタイル状メモリアクセスである。アドレス前スウィズル回路は、アドレスラインを調整して特定のタイプのアクセスに適合させる。データステアリング回路は、アクセス制御信号と、調整済みアドレスビットとに従い設定される。アドレス後スウィズル回路は、アクセス制御信号と、サブチャネル識別子とに従い、Ｎ個のサブチャネルに対するサブチャネルアドレスビットを生成する。
【０００６】
以下の説明には、数多くの特定の詳細が記載されている。しかしながら、本発明の実施形態は、それらの特定の詳細がなくても実施できることを理解されたい。また、他の例において、本記載の理解をあいまいにしないよう、よく知られた回路、構造および技術は、示されていない。
【０００７】
本発明の一実施形態は、フローチャート、フロー図、構造図またはブロック図として通常表されるプロセスとして説明されてよい。フローチャートは、複数の動作をシーケンシャルプロセスとして記載する場合もあるが、動作の多くは、並行してまたは同時に実行されてよい。フローチャートにおけるループまたは繰り返しは、一回の繰り返しにより示される。ループインデックス（単数または複数）あるいはループカウンタ（単数または複数）は、関連するカウンタまたはポインタをアップデートするよう維持される。さらに、動作の順番は入れ替えてよい。動作が完了するとプロセスは終了する。プロセスは、方法、プログラム、手順などに対応してよい。ブロック図は、構成要素、アイテム、コンポーネント、デバイス、ユニット、サブユニット、構造、方法、プロセス、機能、動作、機能性、または、タスクなどを示すブロックまたはモジュールを含んでよい。機能または動作は、自動または手動で実行されてよい。
【０００８】
図１Ａは、本発明の一実施形態が実施されうるシステム１０を示す図である。システム１０は、１０ギガビットイーサネット（登録商標）を用いたＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アプリケーションを表す。システム１０は、２つのキャンパス２０および４０と、リンク２２とを有する。
【０００９】
キャンパス２０および４０のそれぞれは、ネットワークインターコネクトを用いてパソコン（ＰＣ）、ワークステーション、および、サーバとリンクする企業を表す。それらは、１０ギガビットイーサネットダウンリンクに分割される複数の１０００ＢＡＳＥ−Ｘまたは１０００ＢＡＳＥ−Ｔセグメントの集まりを有してよい。リンク２２は、長距離（４０ｋｍなど）にわたって２つのキャンパス２０および４０を接続する単一モードファイバリンクであってよい。パケットまたはデータの送信は、リード・ソロモン符号のようなエラー訂正符号を用いたエラー訂正方式により実行されてよい。
【００１０】
キャンパス２０および４０のインフラは同様である。各キャンパス内のネットワークは、ビル、データセンター、または、コンピュータ室を網羅してよい。キャンパス２０は、スイッチ／ルータ２４およびスイッチ／ルータ２８のようなスイッチ／ルータと、ＬＡＮ３０とを有してよい。キャンパス４０は、スイッチ／ルータ４２およびスイッチ／ルータ４６のようなスイッチ／ルータと、ＬＡＮ４８とを有してよい。スイッチ／ルータ２４および４２は、一般的に、対応するキャンパスの端に配置される。それらは、リンク２２を介し互いに接続される。スイッチ／ルータ２４および２８は、毎秒１０ギガビット（Ｇｂｐｓ）までの速度で、短距離（３０から８０メートル）にわたりマルチモードファイバリンク２６を介し接続される。スイッチ／ルータ２８は、ＬＡＮ３０に接続される。同様に、スイッチ／ルータ４２および４６は、毎秒１０ギガビット（Ｇｂｐｓ）までの速度で、短距離（３０から８０メートル）にわたりマルチモードファイバリンク４４を介し接続される。スイッチ／ルータ４６は、ＬＡＮ４８に接続される。
【００１１】
ＬＡＮ３０は、サーバ３２、および、パソコン（ＰＣ）／ワークステーション３４のようなサーバ、ＰＣ、または、ワークステーションとの接続性を提供する。同様に、ＬＡＮ４８は、サーバ５０、および、ＰＣ／ワークステーション５２のようなサーバ、ＰＣ、または、ワークステーションとの接続性を提供する。サーバ３２または５０は、コンピューティング環境をサポートする特定の動作を提供する。それらは、さまざまなプリンタに接続されたプリントサーバ、テープドライブ、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙｓ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ）のような大容量記憶装置に接続された記憶装置サーバ、ビデオ、オーディオまたはグラフィックのようなマルチメディアサービスを提供するメディアサーバ、または、特定の機能を有するいかなるサーバであってよい。各サーバは、一般的に、対応するＬＡＮとのネットワーク接続性を有する１つ以上のネットワークインターフェースカード（ＮＩＣ）を有する。
【００１２】
図１Ｂは、本発明の一実施形態が実施されうるグラフィックシステム６０を示す図である。グラフィックシステム６０は、グラフィックコントローラ６５、メモリコントローラ７０、メモリ８０、ピクセルプロセッサ８５、ディスプレイプロセッサ９０、デジタル・アナログコンバータ（ＤＡＣ）９５、および、ディスプレイモニタ９７を有する。
【００１３】
グラフィックコントローラ６５は、高速線描、二次元（２−Ｄ）および三次元（３−Ｄ）グラフィック描画機能、シェーディング、アンチエイリアシング、ポリゴン描画、透明効果、色空間変換、アルファブレンディング、彩度キーイングなどのグラフィック動作を実行するグラフィック能力を有するプロセッサである。メモリコントローラ（ＭＣ）７０は、メモリ制御機能を実行する。ＭＣ７０は、メモリアクセスを制御するアクセスコントローラ７５を有してよい。アクセスコントローラ７５は、タイル状および非タイル状メモリアクセスを含むメモリ８０へのアクセス制御を提供する。メモリ８０は、ＳＲＡＭまたはＤＲＡＭメモリデバイスを含む。メモリデバイスは、Ｎ個のサブチャネル８２０から８２Ｎに編成されてよい。サブチャネル８２０から８２Ｎは、アクセスコントローラ７５と接続してよい。メモリデバイスは、グラフィックコントローラ６５によって処理されるグラフィックデータを格納する。
【００１４】
ピクセルプロセッサ８５は、幾何学的計算、アフィン変換、モデルビュープロジェクション、３−Ｄクリッピングなどの特殊で複雑なグラフィック機能を実行できる特殊グラフィックエンジンである。ピクセルプロセッサ８５は、メモリコントローラ７０を介して、メモリ８０および／またはグラフィックコントローラ６５にアクセスする。ディスプレイプロセッサ９０は、グラフィックデータの表示を処理し、パレットテーブルルックアップ、同期、バックライトコントローラ、ビデオ処理などのディスプレイ関連機能を実行する。ＤＡＣ９５は、デジタルディスプレイデジタルデータをディスプレイモニタ９７へのアナログビデオ信号に変換する。ディスプレイモニタ９７は、表示用スクリーンにグラフィック情報を表示するディスプレイモニタである。ディスプレイモニタは、ブラウン管（ＣＲＴ）モニタ、テレビ（ＴＶ）セット、液晶ディスプレイ（ＬＣＤ）、フラットパネル、または、デジタルＣＲＴであってよい。
【００１５】
図１Ｃは、本発明の一実施形態が実施されうるワークステーション３４／５２を示す図である。ワークステーション３４／５２は、プロセッサユニット１１０、メモリコントローラ（ＭＣ）１２０、メモリ１３０、入力／出力コントローラ（ＩＯＣ）１４０、インターコネクト１４５、大容量記憶インターフェース１５０、入力／出力（Ｉ／Ｏデバイス１４７１から１４７ｋ）、および、ネットワークインターフェースカード（ＮＩＣ）１６０を有してよい。ワークステーション３４／５２は、上記構成要素をほぼ有するとみてよい。
【００１６】
プロセッサ１１０は、ハイパースレッディング、セキュリティ、ネットワーク、デジタルメディアテクノロジー、シングルコアプロセッサ、マルチコアプロセッサ、組込みプロセッサ、モバイルプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ、スーパースカラーコンピュータ、ベクトルプロセッサ、単一命令多重データ（ＳＩＭＤ）コンピュータ、複雑命令セットコンピュータ（ＣＩＳＣ）、縮小命令セットコンピュータ（ＲＩＳＣ）、超長命令語（ＶＬＩＷ）を用いるプロセッサのようないかなるタイプのアーキテクチャ、または、ハイブリッドアーキテクチャのＣＰＵを表す。
【００１７】
ＭＣ１２０は、メモリ１３０およびＩＯＣ１４０のようなメモリおよび入力／出力デバイスの制御および設定を提供する。ＭＣ１２０は、グラフィック、メディア、単独実行モード、ホストと周辺バスとのインターフェース、メモリ制御、パワーマネジメントなどの多数の機能を集積したチップセットに集積されてよい。ＭＣ１２０、または、ＭＣ１２０におけるメモリコントローラの機能は、プロセッサユニット１１０に集積されてよい。いくつかの実施形態では、プロセッサユニット１１０の内部または外部にあるメモリコントローラは、プロセッサユニット１１０におけるすべてのコアまたはプロセッサに対して機能しうる。他の実施形態では、プロセッサユニット１１０における異なるコアまたはプロセッサに対して個別に機能しうる別々の部分を含んでよい。ＭＣ１２０は、メモリ１３０へのアクセスを制御するアクセスコントローラ１２５を有してよい。アクセスコントローラ１２５は、１つのメモリアクセスを、タイル状および非タイル状メモリアクセスへと動的に設定することができる。
【００１８】
メモリ１３０は、システムコードおよびデータを格納する。メモリ１３０は、一般的に、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＲＡＭ（スタティックＲＡＭ）、または、リフレッシュされる必要がないタイプを含めた他のいかなるタイプのメモリであってよい。メインメモリ１３０は、図１Ｂに示されたメモリ８０に用いられるものと同様の、ＤＲＡＭのようなメモリデバイスの複数のチャネルを有してよい。ＤＲＡＭは、毎秒８．５ギガバイト（ＧＢ／ｓ）の帯域幅を有するメモリデバイスを含んでよい。ＤＲＡＭは、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）、ＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ、ＥＤＯ（Ｅｘｔｅｎｄｅｄ  Ｄａｔａ  Ｏｕｔ）ＤＲＡＭ、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ、ＤＤＲ２（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｔｗｏ）ＳＤＲＡＭ、ＲＤＲＡＭ  Ｒ（Ｒａｍｂｕｓ  ＤＲＡＭ）、ＸＤＲ（Ｅｘｔｒｅｍｅ  Ｄａｔａ  Ｒａｔｅ）、または、ＸＤＲＩＩであってよい。ＲＤＲＡＭおよびＸＤＲは、Ｒａｍｂｕｓ社の登録商標である。ＤＤＲは、クロックの立上りおよび立下りエッジの両方でデータを転送することによって転送速度を２倍にし、ＤＩＭＭ（Ｄｕａｌ  Ｉｎ  Ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）にパッケージされてよい。これによって、フロントサイドバス（ＦＳＢ）の周波数を上げずに転送速度を効果的に２倍にする。ＤＤＲ２は、オンダイターミネーションなどのさまざまな技法を用いてデータレートを高めることにより、チップ、プリフェッチバッファ、および、オフチップドライバにおける過剰な信号ノイズを除去する。オフチップドライバは、キャリブレーション技術を用いてデータストローブ間の差を校正してよい。キャリブレーションにより、バッファインピーダンスに対するランプ電圧が最適化され、その結果、立上りおよび立下りエッジにおけるオーバーシュートおよびアンダーシュートを抑制する。ＸＤＲまたはＸＤＲＩＩは、計測可能な高速ポイントツーポイント双方向データ信号に対してはＤＲＳＬ（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｒａｍｂｕｓ  Ｓｉｇｎａｌｉｎｇ  Ｌｅｖｅｌｓ）を用い、複数のデバイスへのソース同期バスアドレスおよびコマンド信号に対してはＲＳＬ（Ｒａｍｂｕｓ  Ｓｉｇｎａｌｉｎｇ  Ｌｅｖｅｌ）を用いる。メモリ１３０で用いられるメモリデバイスは、１００ＭＨｚ、１３３ＭＨｚ、１６６ＭＨｚ、２６６ＭＨｚ、３３３ＭＨｚ、４００ＭＨｚ、１ＧＨｚまたは、８ＧＨｚまでの計測可能ないかなる適切なクロック周波数で動作してよい。これらは、ＢＧＡ（Ｂａｌｌ  Ｇｒｉｄ  Ａｒｒａｙ）、ＤＩＭＭ、スティックまたはモジュールを含むいかなるパッケージング技術でパッケージされてよい。一実施形態では、メモリ１３０は、Ｎ個のサブチャネル１３２０から１３２Ｎを有する。Ｎ個のサブチャネル１３２０から１３２Ｎのそれぞれは、１つ以上のメモリデバイスに対応してよい。Ｎ個のサブチャネル１３２０から１３２Ｎは、アクセスコントローラ１２５と接続してよい。
【００１９】
グラフィックプロセッサ１３５は、グラフィック機能を提供するプロセッサである。グラフィックプロセッサ１３５は、ＭＣ１２０に一体化されることにより、ＧＭＣ（Ｇｒａｐｈｉｃｓ  ａｎｄ  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）を形成してよい。グラフィックプロセッサ１３５は、グラフィックコントローラ用に設定されたＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）またはＰＣＩ  Ｅｘｐｒｅｓｓポートのようなグラフィックポートを介し、ＭＣ１２０と接続するＧＰＡ（Ｇｒａｐｈｉｃｓ  Ｐｅｒｆｏｒｍａｎｃｅ  Ａｃｃｅｌｅｒａｔｏｒ）カードのようなグラフィックカードであってよい。グラフィックプロセッサ１３５は、プログレッシブスキャンモニタ、ＴＶ−Ｏｕｔデバイス、および、ＴＭＤＳ（Ｔｒａｎｓｉｔｉｏｎ  Ｍｉｎｉｍｉｚｅｄ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌｉｎｇ）コントローラなどのディスプレイモニタ１３７へのインターフェースを提供する。ディスプレイモニタ１３７は、ＣＲＴ（ブラウン管）モニタ、テレビセット、液晶ディスプレイ（ＬＣＤ）、フラットパネル、および、デジタルＣＲＴなどのいかなるディスプレイデバイスであってよい。
【００２０】
ＩＯＣ１４０は、Ｉ／Ｏ機能をサポートするよう設計された多数の機能性を有する。ＩＯＣ１４０は、ＭＣ１２０と共にチップセットに集積されるか、または、ＭＣ１２０とは独立してＩ／Ｏ機能を実行してよい。ＩＯＣ１４０は、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バスインターフェース、プロセッサインターフェース、割り込みコントローラ、ＤＭＡ（ダイレクトメモリアクセス）コントローラ、パワーマネジメントロジック、タイマ、ＳＭＢｕｓ（システムマネジメントバス）、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）インターフェース、大容量記憶インターフェース、ＬＰＣ（ローピンカウント）インターフェース、無線インターコネクト、ＤＭＩ（ｄｉｒｅｃｔ  ｍｅｄｉａ  ｉｎｔｅｒｆａｃｅ）などの多数のインターフェースおよびＩ／Ｏ機能を含んでよい。
【００２１】
インターコネクト１４５は、周辺デバイスとのインターフェースを提供する。インターコネクト１４５は、ポイントツーポイントであってよく、または、複数のデバイスに接続されてよい。明確にする目的からすべてのインターコネクトを示してはいない。インターコネクト１４５は、いかなるインターコネクト、または、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＰＣＩ  Ｅｘｐｒｅｓｓ、  ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ、Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、シリアルＳＣＳＩ、および、ＤＭＩ（Ｄｉｒｅｃｔ  Ｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）などのバスを含むこともあると考えられる。
【００２２】
大容量記憶インターフェース１５０は、コード、プログラム、ファイル、データ、および、アプリケーションのようなアーカイブ情報を格納する大容量記憶装置と接続する。大容量記憶インターフェースは、ＳＣＳＩ、シリアルＳＣＳＩ、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）（パラレルおよび／またはシリアル）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、拡張ＩＤＥ、ＡＴＡＰＩ（ＡＴＡ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）などを含んでよい。大容量記憶装置は、ＣＤ−ＲＯＭ１５２、ＤＶＤ１５３、フロッピー（登録商標）ドライブ１５４、ハードドライブ１５５、テープドライブ１５６、および、他のいかなる磁気または光記憶装置を含んでよい。大容量記憶装置は、マシンアクセス可能媒体を読み取るメカニズムを提供する。
【００２３】
Ｉ／Ｏデバイス１４７１から１４７ｋは、Ｉ／Ｏ機能を実行するＩ／Ｏデバイスを含む。Ｉ／Ｏデバイス１４７１から１４７ｋの例は、入力デバイス（例えば、キーボード、マウス、トラックボール、ポインティングデバイスなど）、メディアカード（オーディオ、ビデオ、グラフィックなど）、ネットワークカードのためのコントローラ、および、他のいかなる周辺コントローラを含む。
【００２４】
ＮＩＣ１６０は、ワークステーション３４／５２へのネットワーク接続性を提供する。ＮＩＣ１６０は、通信トランザクション処理の一部としての割り込みを生じさせる可能性がある。一実施形態では、ＮＩＣ１６０は、３２ビットおよび６４ビットのＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バス規格の両方と互換性がある。一般的に、ＮＩＣ１６０は、ＰＣＩローカルバス改訂版２．２、ＰＣＩ−Ｘローカルバス改訂版１．０、または、ＰＣＩ−Ｅｘｐｒｅｓｓ規格と互換性があってよい。処理システム内には複数のＮＩＣ１６０が存在してよい。一般的に、ＮＩＣ１６０は、標準的なイーサネット（登録商標）最小および最大フレームサイズ（６４から１５１８バイト）フレームフォーマット、および、ＩＥＥＥ（米国電気電子学会）８０２．２ＬＬＣ（Ｌｏｃａｌ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）仕様をサポートする。ＮＩＣ１６０は、また、全二重ギガビットイーサネット（登録商標）インターフェース、フレームベースフローコントロール、および、ワイヤードイーサネット（登録商標）の物理層およびデータリンク層を規定する他の規格もサポートしてよい。ＮＩＣ１６０は、ＩＥＥＥ８０２．３ａｂにより規定される銅線ギガビットイーサネット（登録商標）、または、ＩＥＥＥ８０２．３ｚにより規定される光ファイバギガビットイーサネット（登録商標）をサポートしてよい。
【００２５】
ＮＩＣ１６０は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ホストアダプタ、または、ＦＣ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）ホストアダプタのようなホストバスアダプタ（ＨＢＡ）であってもよい。ＳＣＳＩホストアダプタは、ボード上のハードウェアおよびファームウェアを含み、ＳＣＳＩトランザクション、または、アダプタＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）を実行してＳＣＳＩデバイスからブートするか、または、ＳＣＳＩホストアダプタを設定してよい。ＦＣホストアダプタは、ファイバチャネルバスと接続するよう用いられてよい。ＮＩＣ１６０は、１ギガビット／秒のＦＣ−ＳＡＮ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌのストレージエリアネットワーク）との自動高速ネゴシエーションにより高速（２ギガビット／秒）で動作してよい。ＮＩＣ１６０は、適切なファームウェアまたはソフトウェアによってサポートされることにより、ローカルおよびリモートＨＢＡのディスカバリ、レポート、および、管理に対して帯域内ＦＣまたは帯域外インターネットプロトコル（ＩＰ）サポートの両方を提供してよい。ＮＩＣ１６０は、フレームレベル多重化および故障フレーム再構築、ファブリックサポート用オンボードコンテキストキャッシュ、および、ハードウェアパリティおよびＣＲＣ（巡回冗長符号）サポートによるエンドツーエンドのデータ保護を有してよい。
【００２６】
図２Ａは、本発明の一実施形態に係るタイル状メモリアクセス２００Ａを示す図である。タイル状メモリアクセス２００Ａは、メモリの矩形領域２０５を含む。矩形領域２０５は、メモリブロックのメモリアドレス指定の論理表現である。タイル状メモリアクセス２００Ａは、Ｐ列およびＱ行からなる二次元配列として編成される多数のメモリブロックを含む。図示された例では、Ｐが４つ、および、Ｑが４つである。各ブロックは、バイト数を有してよい。この例では、各ブロックは、１６バイトを含む。当業者であれば知っているように、矩形領域２０５は、行と列との数が同じであれば、いかなる数の行および列によるいかなる数のブロックを有してよい。さらに、各ブロックは、いかなるバイト数を有してよい。
【００２７】
メモリのアドレス指定はバイト指向なので、連続したブロックのアドレスは、１６または００００１０Ｈずつずれていく。ただし、Ｈは、１６進表記を示す。以下では、アドレスは、１６進表記である。矩形領域２０５は、４×４の二次元（２−Ｄ）配列で編成された１６の連続するブロックを有する。この４×４の２−Ｄ配列をタイルと称する。第１のブロックのアドレスを０００とすると、以降のブロックのアドレスは、図に示すように０１０、０２０、０３０、０４０などとなる。
【００２８】
領域２０５は、６４バイトのメモリアクセスに対してよい。これは、４つのキャッシュラインに対応する。メモリアクセスには２つのタイプがあり、一方はタイル状メモリアクセス、もう一方は、非タイル状メモリアクセスである。典型的な非タイル状メモリアクセスでは、８つの隣り合ってアドレス指定された８バイトブロックが１つずつ転送される。本発明のタイル状メモリアクセスでは、隣り合ってアドレス指定されたバイトは、連続的にアドレス指定されない。タイル状メモリアクセスは、２つのタイプを有し、一方は、水平のタイル状メモリアクセス、もう一方は、垂直のタイル状メモリアクセスである。本質的には、非タイル状メモリアクセスと、水平のタイル状メモリアクセスとの相違は、サブチャネルにおけるデータの分布の仕方にある。非タイル状メモリアクセスのバイト順と、タイル状メモリアクセスのバイト順とは異なる。タイル状領域にアクセスするアプリケーションは、バイト順がしかるべく並べ替えられる限り、非タイル状アクセスを使用してよい。
【００２９】
メモリ領域２０５では、水平アクセス２１０、および、垂直アクセス２２０という２つのタイプのメモリアクセスが存在する。水平アクセス２１０は、４つの水平アクセス２１２、２１４、２１６、２１８を含む。それぞれの水平アクセスは、１×６４バイトブロックに対応する。水平アクセス２１０は、単一のスキャンラインのピクセル値を示すデータが連続してアクセスされるディスプレイリフレッシュのようなメモリ動作に適するかもしれない。垂直アクセス２２０は、４つの垂直アクセス２２２、２２４、２２６、２２８を含む。各アクセスは、４×１６バイトブロックに対応する。垂直アクセスパターンは、レンダリングなどのグラフィックまたはイメージング動作に適するかもしれない。
【００３０】
図２Ｂは、本発明の一実施形態に係るメモリサブチャネルを有するタイル状メモリアクセス２００Ｂを示す図である。タイル状メモリアクセス２００Ｂは、メモリ２４５の領域と、メモリのサブチャネルとを含んでよい。サブチャネルは、矩形領域２０５のような１ブロックまたはタイル状の複数のブロックに対応するよう割り当てられるメモリデバイスの論理的区分である。説明を簡単にすべく、矩形領域２０５は、Ｎ個のサブチャネル２５０、２５１、２５２、２５４に割り当てられるＮ×Ｎブロックに分割される四角い領域であってよい。各サブチャネルにおける物理的メモリデバイスの数は、メモリデバイスの構成と、矩形領域２０５におけるブロックのサイズとに依存する。例えば、各デバイスが１バイト幅で編成され、各ブロックが２バイトを含み、４×４ブロックが存在する場合、４つのサブチャネルが存在し、各サブチャネルは、２つのメモリデバイスに対応してよい。
【００３１】
メモリ２４５のタイル状領域は、４×４ブロックに分割されてよい。ブロックは、行または列が異なるサブチャネル割り当てを含みうるようにサブチャネルに対して割り当てられてよい。各行は、各サブチャネルに割り当てられたメモリブロックを含んでよく、各列も、各サブチャネルに割り当てられたメモリブロックを含んでよい。この例では、４つのサブチャネル２５０、２５１、２５２、２５３は、図のように、垂直方向および水平方向にブロックに割り当てられる。タイル状メモリアクセス２００Ｂは、水平のタイル状メモリアクセス２６０と、垂直のタイル状メモリアクセス２７０とを含んでよい。水平のタイル状メモリアクセス２６０は、水平のタイル状メモリアクセス２６２、２６４、２６６、２６８を含んでよい。それぞれのメモリアクセスは、メモリブロックを水平方向にアクセスする。同様に、垂直のタイル状メモリアクセス２７０は、垂直のタイル状メモリアクセス２７２、２７４、２７６、２７８を含んでよい。それぞれのメモリアクセスは、メモリブロックを垂直方向にアクセスする。
【００３２】
メモリ２４５のタイル状領域のブロックへのサブチャネルの割り当ては、プロセッサ１１０から生成されたアドレスビットと、個々のサブチャネルにおけるアドレスビットとの間のマッピングに影響を及ぼすことがある。以下では、プロセッサ１１０またはメモリコントローラ１２０によって生成されたアドレスビットは、３２ビットアドレス範囲および１６バイトデータについてビットＡ３１−Ａ４を含むと仮定する。当業者に知られているように、いかなるアドレス範囲およびいかなるデータサイズを用いてもよい。
【００３３】
タイル状ブロック２４５に示されるマッピングは、以下のとおりである。
・サブチャネル０は、ブロック０００−００Ｆ、０９０−０９Ｆ、０６０−０６Ｆ、０Ｆ０−０ＦＦに割り当てられる。
・サブチャネル１は、ブロック０４０−０４Ｆ、０Ｄ０−０ＤＦ、０２０−０２Ｆ、０Ｂ０−０ＢＦに割り当てられる。
・サブチャネル２は、ブロック０８０−０８Ｆ、０１０−０１Ｆ、０Ｅ０−０ＥＦ、０７０−０７Ｆに割り当てられる。
・サブチャネル３は、ブロック０Ｃ０−０ＣＦ、０５０−０５Ｆ、０Ａ０−０ＡＦ、０３０−０３Ｆに割り当てられる。
【００３４】
各行および各列がサブチャネルのそれぞれに割り当てられたブロックを含む限り、他のマッピングまたは割り当てが用いられてよいことに留意されたい。
【００３５】
サブチャネルは、サブチャネル識別子によって識別されてよい。４つのサブチャネルに対し、サブチャネル識別子は、ＳＣ１とＳＣ０との２ビットを含んでよい。各１６バイトブロックがマッピングされるサブチャネルは、１６バイトブロックのベースアドレスの論理関数であってよい。上記マッピングでは、このような関数は、ＸＯＲ（排他的論理和）関数である。この関数を用い、サブチャネル識別子のビットは、以下のようなアドレスビットＡ７−Ａ４の関数として定義されてよい。
ＳＣ１＝Ａ４  ＸＯＲ  Ａ７        （１ａ）
ＳＣ０＝Ａ５  ＸＯＲ  Ａ６        （１ｂ）
【００３６】
これらの方程式は、上記割り当てまたはマッピングに適用できることに留意されたい。他の割り当てまたはマッピングに対しては、異なる方程式が存在しうる。あるいは、アドレスビットがＡ５−Ａ４、および、対応するサブチャネル識別子ビットがＳＣ１およびＳＣ０とすると、アドレスビットＡ７−Ａ６が得られる。上記割り当てまたはマッピングについては、垂直のタイル状メモリアクセスに対してアドレスビットＡ７−Ａ６は以下のように得られる。
Ａ７＝  Ａ４  ＸＯＲ  ＳＣ１      （２ａ）
Ａ６＝  Ａ５、ＸＯＲ  ＳＣ０      （２ｂ）
【００３７】
図３Ａは、本発明の一実施形態に係る、図１Ｂ／１Ｃに示されたアクセスコントローラ７５／１２５を示す図である。アクセスコントローラ７５／１２５は、データステアリング回路３１０、デコーディング回路３２０、アドレス前スウィズル回路３３０、アドレス後スウィズル回路３３５０から３３５３、および、サブチャネルインターフェース３４００から３４０３を有する。この例示的実施形態では、データ転送３５０として示される、サブチャネル間におけるそれぞれ８バイトの８つの転送があると仮定する。それらの転送は、６４バイトの転送３６０に対応する。アドレス前スウィズル回路３３０は、アクセスコントローラ７５／１２５の内部にあってよく、または、アクセスコントローラ７５／１２５の外部にあるタイル状メモリアクセスを要求する構成要素内に配置されてよい。
【００３８】
水平のタイル状メモリアクセス、または、非タイル状メモリアクセスでは、アドレスビットＡ７−Ａ６は、アクセスされるべきタイル内の行を符号化する。垂直のタイル状メモリアクセスでは、アドレスビットＡ５−Ａ４は、アクセスされるべき列を符号化する。アドレス前スウィズル回路３３０は、垂直のアクセスでアクセスされるべき列のスペックの一実施形態を示す。この実施形態では、アドレスビットＡ６およびＡ７は、垂直アクセスの間は、アドレスビットＡ５およびＡ４とそれぞれ置き換え可能である。
【００３９】
タイル状メモリアクセスは、図２Ｂに示すような水平および垂直のタイル状メモリアクセスを含む。アクセス制御信号は、タイル状メモリアクセスを選択するタイル状制御信号（ＴＩＬＥＤ）と、タイル状制御信号がアサートされた場合、垂直のタイル状メモリアクセスを選択する垂直制御信号（ＶＥＲＴ）とを含む。ＴＩＬＥＤが無効にされるかまたはデアサートされると、ＶＥＲＴは、無視される。
【００４０】
デコーディング回路３２０は、アクセス制御信号ＴＩＬＥＤおよびＶＥＲＴを復号化する。ＴＩＬＥＤおよびＶＥＲＴの一方がデアサートされる（例えば論理０になる）と、デコーディング回路３２０の出力ＶＥＲＴ'は、非タイル状または水平のタイル状メモリアクセスモードを有効にする。ＴＩＬＥＤおよびＶＥＲＴがどちらもアサートされる（例えば論理１になる）と、デコーディング回路３２０の出力ＶＥＲＴ'は、垂直のタイル状アクセスモードを有効にする。一実施形態では、デコーディング回路３２０は、ＡＮＤゲートによって実装されてよい。
【００４１】
データステアリング回路３１０は、アクセス制御信号に従い、データステアリングのための設定を選択する。データステアリング回路３１０は、メモリアクセスタイプが非タイル状メモリアクセス、水平のタイル状メモリアクセス、または、コンディショニングアドレスビットの第１組の値を有する垂直のタイル状メモリアクセスである場合には、第１の設定を選択する。コンディショングアドレスビットは、アクセスタイプに従うメモリ構成に影響を与えるべく用いられるアドレスビットである。この例示的実施形態では、コンディショニングアドレスビットは、Ａ７およびＡ６である。データステアリング回路３１０は、メモリアクセスタイプがコンディショニングアドレスビットの他の値の組を有する垂直のタイル状メモリアクセスである場合には、３つの設定のうちの１つを選択する。
【００４２】
アドレス後スウィズル回路３３５０から３３５３は、Ｎ個のサブチャネルインターフェース３４００から３４０３に結合され、アクセス制御信号およびサブチャネル識別子に従い、Ｎ個のサブチャネルへのサブチャネルアドレスビットを生成する。この例示的実施形態では、アドレスラインは、Ａ３１−Ａ６と仮定する。これらのアドレスビットは、プロセッサユニット１１０、グラフィックコントローラ６５、または、ＭＣ７０／１２０によって発行される。アドレスビットＡ３１−Ａ８は、サブチャネルインターフェース３４００から３４０３までを介し、変更されずにメモリサブチャネルまで直接送られる。アドレスビットＡ７−Ａ６は、個別のサブチャネルへの適切なアドレスビットを生成するために用いられる。サブチャネル識別子は、コンフィギュレーションレジスタに格納されてよく、各サブチャネルに対して固有である。一実施形態では、サブチャネル識別子は、Ｐビットを含み、ただし、Ｐ＝ｌｏｇ２（Ｎ）であり、Ｎは、サブチャネルの数である。例えば、図３Ａに示すようにＰ＝４である場合、サブチャネル識別子は、ＳＣ１とＳＣ０との２ビットを含む。したがって、サブチャネルインターフェース３４００から３４０３までは、値００、０１、１０、１１をそれぞれ有するサブチャネル識別子ビットＳＣ１およびＳＣ０に関連付けられる。
【００４３】
サブチャネルインターフェース３４００から３４０３までは、図１Ｂ／１Ｃに示すサブチャネル８２０から８２Ｎ／１３２０から１３２３のようなメモリ８０／１３０の対応するサブチャネルと接続する。上述のごとく、サブチャネル８２０から８２Ｎ／１３２０から１３２３は、メモリのタイル状領域のブロックに割り当てられる、メモリ８０／１３０におけるメモリデバイスの論理的分割である。サブチャネルインターフェース３４００から３４０３までのそれぞれは、１つのサブチャネル識別子に関連付けられる。
【００４４】
図３Ｂは、本発明の一実施形態に係るアクセスコントローラ７５／１２５を用いる垂直のタイル状メモリアクセスを示す図である。垂直のタイル状転送では、ＴＩＬＥＤおよびＶＥＲＴの両方がアサートされる。デコーディング回路３２０の出力ＶＥＲＴ'もアサートされる。アドレス前スウィズル回路３３０は、アクセスされるべき列番号をアドレスラインＡ７−Ａ６に設定する。アドレス後スウィズル回路３３５０から３３５３は、アドレスビットＡ７−Ａ６を復号化し、サブチャネルインターフェース３４００から３４０３までを介して、個別のサブチャネルへのアドレスビットＡ７−Ａ６を生成する。アドレス前スウィズル回路３３０、および、アドレス後スウィズル回路３３５０から３３５３は、図４および図５にそれぞれ示されている。
【００４５】
垂直のタイル状メモリアクセスでは、ＶＥＲＴ'信号およびアドレスビットＡ７−Ａ６は、データステアリング回路３１０についての４つの設定のうちの１つを選択する。４つの設定のうちの１つは、恒等置換マッピングに対応する。他の３つの設定は、非恒等置換マッピングに対応する。水平のタイル状メモリアクセスおよび非タイル状メモリアクセスにおいて用いられるマッピングとは異なるのであれば、他のいかなるマッピングが用いられてよいことに留意されたい。データステアリング回路３１０の４つの設定は図６Ａに示されている。
【００４６】
アドレス前スウィズル回路３３０は、４つの４垂直アドレスに対応する４つのサブチャネル３４００から３４０３に対して２つのアドレスビットＡＤ７−ＡＤ６を生成する。アドレスビットＡ３１−Ａ８はそのまま通過され、各サブチャネルにおけるアドレス後スウィズル回路３３５０から３３５３によって復号化されたＡＤ７−ＡＤ６と組み合わされることにより、４つのサブチャネルに対して完全なアドレスビットが提供される。
【００４７】
データ転送３５０は、８つの転送を含む。各転送は、メモリにおけるタイル状領域の垂直の列に対応する。データ転送は、６４バイト転送３６０に対応するよう、データステアリング回路３１０を介して行われる。ＴＩＬＥＤ信号は、行単位で行われる６４バイト転送のアクセスを選択する。すなわち、６４バイト転送が８×８バイトアレイであり、アレイの第１の行が転送の最初の８バイトであるとみなすと、第２の行は、転送の２番目の８バイト、などと考えられ、このような一対の行が各サブチャネルに送られる。
【００４８】
図３Ｃは、本発明の一実施形態に係る、アクセスコントローラ７５／１２５を用いた水平のタイル状メモリアクセスを示す図である。水平のタイル状転送では、ＶＥＲＴは無効にされるかデアサートされる。デコーディング回路３２０の出力であるＶＥＲＴ'も無効にされるかデアサートされる。アドレス前スウィズル回路３３０は、アクセスされるタイルの行を示すアドレスビットＡ７−Ａ６をそのまま変更せずにしておく。アサートされたＶＥＲＴ信号は、サブチャネルインターフェース３４００から３４０３を介し、アドレスビットＡ７およびＡ６を変更なしで個々のサブチャネルへ送るよう、アドレス後スウィズル回路３３５０から３３５３を調整する。
【００４９】
水平のタイル状メモリアクセスでは、ＶＥＲＴ'信号は、データステアリング回路３１０について第１の設定を選択する。第１の設定は、恒等置換マッピングに対応する。図３Ｃに示された例では、この恒等置換マッピングは、サブチャネル側のポート番号０、１、２、３をプロセッサ側のポート番号０、１、２、３にそれぞれマッピングする。
【００５０】
データ転送３５０は、８つの転送を含む。各転送は、メモリにおけるタイル状領域の水平の行に対応する。データ転送は、６４バイト転送３６０に対応するよう、データステアリング回路３１０を介して行われる。ＴＩＬＥＤ信号は、行単位で行われる６４バイト転送のアクセスを選択する。すなわち、６４バイト転送が８×８バイトアレイであるとみなし、アレイの第１の行は転送の最初の８バイトであるとみなす場合、第２の行は、転送の２番目の８バイトである、などと考えられ、このような一対の行が各サブチャネルに送られる。
【００５１】
図３Ｄは、本発明の一実施形態に係る、アクセスコントローラ７５／１２５を用いた非タイル状メモリアクセスを示す図である。非タイル状転送では、ＴＩＬＥＤは、無効にされるかデアサートされる。デコーディング回路３２０の出力であるＶＥＲＴ'も無効にされるかデアサートされる。アドレス前スウィズル回路３３０は、アクセスされるタイルの行を示すアドレスビットＡ７−Ａ６をそのまま変更せずにしておく。ＶＥＲＴ信号は、サブチャネルインターフェース３４００から３４０３を介し、アドレスビットＡ７−Ａ６を変更なしで個々のサブチャネルへ送るよう、アドレス後スウィズル回路３３５０から３３５３を調整する。
【００５２】
非タイル状メモリアクセスでは、ＶＥＲＴ'信号は、データステアリング回路３１０について第１の設定を選択する。第１の設定は、恒等置換マッピングに対応する。図３Ｄに示された例では、この恒等置換マッピングは、サブチャネル側のポート番号０、１、２、３をプロセッサ側のポート番号０、１、２、３にそれぞれマッピングする。
【００５３】
データ転送３５０は、８つの転送を含む。各転送は、メモリにおけるタイル状領域の水平の行に対応する。データ転送は、６４バイト転送３６０に対応するよう、データステアリング回路３１０を介して行われる。ＴＩＬＥＤ信号は、列単位で行われる６４バイト転送のアクセスを選択する。すなわち、６４バイト転送が８×８バイトアレイであるとみなし、アレイの第１の行は転送の最初の８バイトであるとみなす場合、第２の行は、転送の２番目の８バイトである、などと考えられ、そのアレイからの一対の列が各サブチャネルに送られる。
【００５４】
図４は、本発明の一実施形態に係る、図３Ａに示されるアドレス前スウィズル回路３３０を示す図である。
【００５５】
本質的には、アドレス前スウィズル回路３３０は、アクセス制御信号に基づき、最下位Ｋ共通アドレスビットを復号化してアドレスビット回路Ａ７−Ａ６にそれぞれ対応するアドレスビットＡＤ７−ＡＤ６にするデコーダを有する。図３Ａに示される例では、アドレス前スウィズル回路３３０は、４つのアドレスビットＡ７−Ａ４を含む最下位４アドレスビットＡ３１−Ａ４を復号化し、アドレスビットＡＤ７−ＡＤ６をアドレス後スウィズル回路３３５０から３３５３に供給する。
【００５６】
アドレス前スウィズル回路３３０は、２つの２対１マルチプレクサ４１０および４２０を有する。マルチプレクサ４１０への入力は、アドレスビットＡ７およびＡ４である。マルチプレクサ４２０への入力は、アドレスビットＡ５およびＡ６である。マルチプレクサのどちらもＶＥＲＴ'信号によって選択される。ＶＥＲＴ'信号がＬＯＷの場合は、メモリアクセスが非タイル状メモリアクセスかまたは水平のタイル状アクセスであることを示し、マルチプレクサ４１０および４２０は、Ａ７およびＡ６に対応する０入力をそれぞれ選択する。ＶＥＲＴ'信号がＨＩＧＨの場合は、メモリアクセスが垂直のタイル状メモリアクセスであることを示し、マルチプレクサ４１０および４２０は、Ａ４およびＡ５に対応する１入力をそれぞれ選択する。したがって、アドレス前スウィズル回路３３０は、メモリアクセスが非タイル状または水平のタイル状アクセス、あるいは、垂直のタイル状メモリアクセスかどうかによって、Ａ７−Ａ６またはＡ４−Ａ５というようにアドレスビットＡＤ７およびＡＤ６を提供する。
【００５７】
図５は、本発明の一実施形態に係る、図３Ａに示されたアドレス後スウィズル回路３３５ｉ（ｉ＝０，...３）を示す。本実施形態では、サブチャネルインターフェース３４００から３４０３にサブチャネル識別子が設けられてよい。サブチャネルインターフェース３４００から３４０３は、インターフェース回路においてローカルにサブチャネル識別子（例えばＳＣ１およびＳＣ０ビット）を設けてよい。インターフェース回路は、ＭＣ１２０の内部にあっても外部にあってもよい。他の実施形態では、サブチャネル識別子は、初期化またはブートアップシーケンスの間の設定手順の一部として、コンフィグレーションレジスタに設けられてよい。
【００５８】
アドレス後スウィズル回路３３５ｉは、Ｎ個のサブチャネルデコーダ５２００から５２０Ｎ−１を有してよく、この場合、Ｎは、サブチャネルの数を示す。Ｎ個のサブチャネルデコーダ５２００から５２０Ｎ−１は、本質的に同じである。Ｎ個のサブチャネルデコーダ５２００から５２０Ｎ−１それぞれへの入力は、アドレス前スウィズル回路３３０のＡＤ７−ＡＤ６ビット、および、サブチャネル識別子ビット、すなわち、対応するサブチャネルにおけるＳＣ１およびＳＣ０である。Ｎ個のサブチャネルデコーダ５２００から５２０Ｎ−１の出力は、サブチャネルのメモリデバイスに供給されるべきアドレスビットＡ７−Ａ６である。Ｎ＝４の場合、サブチャネルのメモリデバイスに供給されるべきＡ７−Ａ６ビットは４グループ存在する。
【００５９】
Ｎ個のサブチャネルデコーダのそれぞれは、アクセス制御信号（ＴＩＬＥＤ、ＶＥＲＴなど）、および、対応するサブチャネル識別子（ＳＣ１およびＳＣ０など）に基づき、Ｋ個のサブチャネルアドレスビット（Ａ７−Ａ６ビット）を生成する（Ｎ＝２Ｋ）。説明を簡潔にすべく、すべてのサブチャネルデコーダは示していない。サブチャネルデコーダ５２００は、２つのＸＯＲゲート５３２０および５３４０と、２つの２対１マルチプレクサ５４２０および５４４０とを有する。２つのＸＯＲゲート５３２０および５３４０は、サブチャネル０において、ＡＤ７−ＡＤ６ビットと、サブチャネル識別子ビットＳＣ１０およびＳＣ００とに対してＸＯＲ演算を実行する。マルチプレクサへの入力０は、ＡＤ７−ＡＤ６ビットである。マルチプレクサ５３６への入力１は、ＸＯＲゲート５３２０および５３４０の出力である。サブチャネルデコーダ５２００は、本質的に、方程式（２ａ）および（２ｂ）によって提供される論理関数を実装する。他のサブチャネルデコーダも同様の構成要素を有する。例えば、サブチャネルデコーダ５２０３は、ＸＯＲゲート５３２３および５３４３と、２対１のマルチプレクサ５３４３とを有する。サブチャネルデコーダ５２０３は、アドレスＡ７−Ａ６をサブチャネル３  ３４０３に供給する。
【００６０】
ＶＥＲＴ'信号は、すべてのマルチプレクサ５４２０および５４４０の選択入力に接続される。ＶＥＲＴ'が無効にされるかまたはデアサートされる場合は、メモリアクセスタイプが水平のタイル状メモリアクセスまたは非タイル状メモリアクセスであることを示し、マルチプレクサ５４２０および５４４０は、ＡＤ７−ＡＤ６アドレスビットである０入力を選択し、これらは、元のアドレスビットＡ７−Ａ６と同じである。
【００６１】
ＶＥＲＴ'がアサートされる場合は、メモリアクセスタイプが垂直のタイル状メモリアクセスであることを示し、マルチプレクサ５４２０および５４４０は、ＸＯＲゲート５３２０、５３４０、...５３２３、５３４３の出力に対応する１入力を選択する。ＸＯＲゲート５３２０、...５３４３は、方程式（２ａ）および（２ｂ）により提供されるような、サブチャネル識別子ＳＣ１０、ＳＣ００、...、ＳＣ１３、ＳＣ０３と、元はアドレスビットＡ４−Ａ５であるアドレスビットＡＤ７およびＡＤ６との間でＸＯＲ演算を実行する。したがって、サブチャネル３４００から３４０３に送られる、生成されたＡ７−Ａ６アドレスビットは、垂直のタイル状メモリアクセスについて適切に計算されたアドレスビットと一致する。
【００６２】
図６Ａは、本発明の一実施形態に係るデータステアリング回路３１０の設定６００を示す図である。設定６００は、設定またはマッピング６１０、６２０、６３０および６４０を含む。
【００６３】
データステアリング回路３１０は、ＭＣ１２０のデータバスと接続し、ＭＣ１２０とプロセッサユニット１１０との間でのデータ転送を実行する。データステアリング回路３１０は、メモリにおけるＮ個のサブチャネルに接続し、アクセス制御信号と、Ｎ個のサブチャネルに関連付けられたサブチャネル識別子とに従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプのデータを動的に操作する。データステアリング回路３１０は、プロセッサ側のＮ個のポートとサブチャネル側のＮ個のポートとを接続するスイッチネットワークとして構成されてもよい。図６Ａに示すように、これらのポートは、（０、１、２、３）と番号が付されている。したがって、スイッチの設定は、一方の側におけるポート数を示す一組の数から、他方の側のポート数を示す他の組の数へのマッピングと考えてよい。このマッピングは、置換関数とみなされてよい。
【００６４】
設定６１０は、単一性置換であり、一方の側のポート０、１、２、３が他方の側のポート０、１、２、３にそれぞれマッピングされる。この設定は、非タイル状メモリアクセス、水平のタイル状メモリアクセス、および、アドレスビットＡＤ７およびＡＤ６がそれぞれ０に等しい垂直のタイル状メモリアクセスのそれぞれによって用いられる。
【００６５】
設定６２０は、非単一性置換であり、一方の側のポート０、１、２、３が他方の側のポート１、０、３、２にそれぞれマッピングされる。この設定は、ＡＤ７が１に等しく、ＡＤ６が０に等しいアドレスビットを有する垂直のタイル状メモリアクセスによって用いられる。
【００６６】
設定６３０は、非単一性置換であり、一方の側のポート０、１、２、３は、他方の側のポート２、３、０、１にそれぞれマッピングされる。この設定は、ＡＤ７が０に等しく、ＡＤ６が１に等しいアドレスビットを有する垂直のタイル状メモリアクセスによって用いられる。
【００６７】
設定６４０は、非単一性置換であり、一方の側のポート０、１、２、３は、他方の側のポート３、２、１、０にそれぞれマッピングされる。この設定は、ＡＤ７およびＡＤ６が１にそれぞれ等しいアドレスビットを有する垂直のタイル状メモリアクセスによって用いられる。
【００６８】
図６Ｂは、本発明の一実施形態に係るデータステアリング回路３１０を示す図である。データステアリング回路３１０は、双方向転送のための複数の回路を含む。説明を簡単にすべく、一方向についての回路のみを示す。この回路では、データ転送は、インポート０、１、２、３からアウトポート０、１、２、３へと行われる。これらの回路の２つが双方向転送を提供するよう用いられる場合、アウトポート０、１、２、３およびインポート０、１、２、３において必要に応じてトリステートバッファが用いられてよい。
【００６９】
データステアリング回路３１０は、ＸＯＲゲート６５２０、６５４０、６５２１、６５４１、６５２２、６５４２、６５２３、６５４３と、２対１マルチプレクサ６６２０、６６４０、６６３１、６６４１、６６２２、６６４２、６６２３、６６４３と、４対１マルチプレクサ６７００、６７０１、６７０２、６７０３とを有する。ＸＯＲゲート６５２０、６５４０、６５２１、６５４１、６５２２、６５４２、６５２３、６５４３は、ハードコードされたサブチャネル識別子００、０１、１０、１１を用いてアドレスビットＡＤ７およびＡＤ６に対してそれぞれＸＯＲ演算を実行する。２対１マルチプレクサ６６２０、６６４０、６６３１、６６４１、６６２２、６６４２、６６２３、６６４３の入力を選択するためにＶＥＲＴ'信号が用いられる。図に示すように、４対１マルチプレクサ６７００、６７０１、６７０２、６７０３の入力を選択するために２対１マルチプレクサ６６２０、６６４０、６６３１、６６４１、６６２２、６６４２、６６２３、６６４３の出力を対にして用いる。
【００７０】
ＶＥＲＴ'信号がＬＯＷの場合は、メモリアクセスタイプが非タイル状メモリアクセスまたは水平のタイル状メモリアクセスであることを示し、２対１マルチプレクサ６６２０、６６４０、６６３１、６６４１、６６２２、６６４２、６６２３、６６４３は、サブチャネル識別子００、０１、１０、１１を選択する。４対１マルチプレクサ６７００、６７０１、６７０２、６７０３の入力を選択するためにこれらの出力が用いられる場合、アウトポート０、１、２、３は、単一性置換マッピングに対応してインポート０、１、２、３にそれぞれマッピングされるという結果になる。
【００７１】
ＶＥＲＴ'信号がＨＩＧＨの場合は、メモリアクセスタイプが垂直のタイル状メモリアクセスであることを示し、２対１マルチプレクサ６６２０、６６４０、６６３１、６６４１、６６２２、６６４２、６６２３、６６４３は、ＸＯＲゲートの出力を選択する。したがって、マッピングの結果は、アドレスビットＡＤ７およびＡＤ６の値に基づく。
【００７２】
ＡＤ７およびＡＤ６が００である場合、ＸＯＲゲートの出力は、００、０１、１０、１１となり、ＶＥＲＴ'信号がＬＯＷである場合と同じになる。したがって、ＡＤ７およびＡＤ６が００の場合については、アウトポート０、１、２、３は、図６Ａに示されるような設定６１０で表された単一性置換マッピングに対応してインポート０、１、２、３にそれぞれマッピングされるという結果になる。
【００７３】
ＡＤ７およびＡＤ６が０１の場合は、ＸＯＲゲートの出力は、０１、００、１１および１０になる。したがって、ＡＤ７およびＡＤ６が０１の場合については、アウトポート０、１、２、３は、図６Ａに示されるような設定６２０に対応し、インポート１、０、３、２にそれぞれマッピングされるという結果になる。
【００７４】
ＡＤ７およびＡＤ６が１０の場合、ＸＯＲゲートの出力は、１０、１１、００、０１になる。したがって、ＡＤ７およびＡＤ６が１０の場合については、アウトポート０、１、２、３は、図６Ａに示されるような設定６３０に対応し、インポート２、３、０、１にそれぞれマッピングされるという結果になる。
【００７５】
ＡＤ７およびＡＤ６が１１の場合、ＸＯＲゲートの出力は、１１、１０、０１、００になる。したがって、ＡＤ７およびＡＤ６が１１の場合については、アウトポート０、１、２、３は、図６Ａに示されるような設定６４０に対応し、インポート３、２、１、０にそれぞれマッピングされるという結果になる。
【００７６】
図７は、本発明の一実施形態に係るメモリにアクセスするプロセス７００を示すフローチャートである。プロセス７００は、リードアクセスを示すことに留意されたい。ライトアクセスも同様に得られてよい。
【００７７】
開始後、プロセス７００は、アクセス制御信号に従いアドレスビットの調整を行う（ブロック７１０）。アクセス制御信号は、ＴＩＬＥＤ制御信号がアサートされたとき、タイル状メモリアクセスを選択するタイル状制御信号と、垂直のタイル状メモリアクセスを選択する垂直の制御信号とを含んでよい。次に、プロセス７００は、メモリにおけるＮ個のサブチャネルに接続し、アクセス制御信号および調整済みアドレスビットに従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプのデータを動的に操作する（ブロック７２０）。タイル状メモリアクセスは、水平および垂直のタイル状メモリアクセスを含む。
【００７８】
次に、プロセス７００は、アクセス制御信号およびサブチャネル識別子に従い、Ｎ個のサブチャネルに対するサブチャネルアドレスビットを生成する（ブロック７３０）。
【００７９】
次に、プロセス７００は、メモリアクセスがタイル状かどうかを決定する（ブロック７４０）。そうであれば、プロセス７００は、行単位でメモリにアクセスし（ブロック７５０）、終了する。相でない場合、プロセス７００は、列単位でメモリにアクセスし（ブロック７６０）、その後終了する。
【００８０】
図８は、本発明の一実施形態に係るデータステアリング回路についての設定を選択するプロセス７２０を示す。
【００８１】
開始後、プロセス７２０は、メモリアクセスタイプが垂直のタイル状かどうかを決定する（ブロック８１０）。垂直のタイル状でない場合、プロセス７２０は、データステアリング回路についての第１の設定を選択する（ブロック８２０）し、終了する。垂直のタイル状の場合、プロセス７２０は、調整済みアドレスビットが００であるかどうか決定する（ブロック８３０）。００である場合、プロセス７２０は、ブロック８２０へと進む。００でない場合、プロセス７２０は、データステアリング回路についての調整済みアドレスビットに従い、３つの設定のうちの１つを選択し（ブロック８４０）、その後終了する。一般的に、第１の設定は、一方の側のポートから他方の側のポートへの恒等置換マッピングに対応する。他の３つ（２つ）の設定は、非恒等置換マッピングに対応する。
【００８２】
図９は、Ｎ群のサブチャネルアドレスビットを生成する図７に示されたプロセス７３０を表すフローチャートである。
【００８３】
開始後、プロセス７３０は、メモリアクセスタイプが垂直のタイル状かどうかを決定する（ブロック９２０）。垂直のタイル状である場合、プロセス７３０は、調整済みアドレスビットの論理関数と、対応するサブチャネル識別子とを含むＮ群のサブチャネルアドレスビットを生成し（ブロック９３０）、その後終了する。垂直のタイル状でない場合、プロセス７３０は、調整済みアドレスビットを含むＮ群のサブチャネルアドレスビットを生成し（ブロック９４０）、その後終了する。本質的に、アクセスタイプが水平のタイル状かまたは非タイル状メモリアクセスである場合、サブチャネルに送られる調整済みアドレスビットは、同じビット部分における元のアドレスビットと同じである。
【００８４】
本発明の実施形態の構成要素は、ハードウェア、ファームウェア、ソフトウェア、または、それらのいかなる組合せによって実装されてよい。ハードウェアとは、一般的に、電子、電磁、光、電子光学、機械、エレクトロメカニカルパーツ、コンポーネント、または、デバイスなどの物理的構造を有する構成要素のことを指す。ソフトウェアとは、一般的に、論理構造、方法、手順、プログラム、ルーチン、プロセス、アルゴリズム、公式、関数、式などのことを指す。ファームウェアとは、一般的に、論理構造、方法、手順、プログラム、ルーチン、プロセス、アルゴリズム、公式、関数、式など、ハードウェア構造（フラッシュメモリなど）で実装または実現されるもののことを指す。ファームウェアの例は、マイクロコード、書換え可能型制御記憶、マイクロプログラム構造などを含んでよい。本発明の一実施形態における構成要素は、ソフトウェアまたはファームウェアに実装されると、本質的に、必要なタスクを実行するコードセグメントとなる。ソフトウェア／ファームウェアは、本発明の一実施形態に記載された動作を実行する実際のコードか、または、動作をエミュレートまたはシミュレートするコードを含んでよい。プログラムまたはコードセグメントは、プロセッサまたはマシンアクセス可能媒体に格納されるか、または、搬送波で表されるコンピュータデータ信号か、または、キャリアによって変調される信号により、伝送媒体上を伝送されてよい。「プロセッサ可読またはアクセス可能媒体」、または、「マシン可読またはアクセス可能媒体」は、情報を格納、伝送、または、転送できるいかなる媒体を含んでよい。プロセッサ可読またはマシンアクセス可能媒体の例は、電子回路、半導体メモリデバイス、ＲＯＭ（リードオンリーメモリ）、フラッシュメモリ、ＥＲＯＭ（消去可能ＲＯＭ）、ＥＰＲＯＭ（消去可能プログラマブルＲＯＭ）、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、光ディスク、ハードディスク、光ファイバ媒体、無線周波数（ＲＦ）リンクなどを含む。マシンアクセス可能媒体は、製品に組み込まれてよい。マシンアクセス可能媒体は、マシンによってアクセスされると、上記動作をマシンに実行させるデータを含んでよい。マシンアクセス可能媒体にはプログラムコードが埋め込まれていてよい。プログラムコードは、上記動作を実行するマシン可読コードを含んでよい。
【００８５】
本発明の一部またはすべては、ハードウェア、ソフトウェア、または、ファームウェア、あるいは、それらのいかなる組合せによって実装されてよい。ハードウェア、ソフトウェア、または、ファームウェアの構成要素は、互いに結合されたいくつかのモジュールを有してよい。ハードウェアモジュールは、機械、電気、光、電磁、または、いかなる物理的接続によって他のモジュールに結合されてよい。ソフトウェアモジュールは、関数、手続き、方法、サブプログラムまたはサブルーチンコール、ジャンプ、リンク、パラメータ、変数および引き数引き渡し、ファンクションリターンなどによって他のモジュールに結合されてよい。ソフトウェアモジュールは、他のモジュールに結合されて変数、パラメータ、引き数、指針などを受信し、および／または、結果、アップデートされた変数、指針などを生成するかまたは送ってよい。ファームウェアモジュールは、上記のようなハードウェアとソフトウェアとの結合方法のいかなる組み合わせによって他のモジュールと結合される。ハードウェア、ソフトウェア、または、ファームウェアモジュールは、他のハードウェア、ソフトウェア、または、ファームウェアモジュールのうちのいかなるものと結合されてよい。装置は、ハードウェア、ソフトウェア、および、ファームウェアモジュールのいかなる組合せも含みうる。
【００８６】
これまでいくつかの実施形態に関して本発明を説明してきたが、本発明は記載された実施形態に限定されず、添付の請求項の範囲内での修正および変更を伴い実施できることが当業者には理解できるであろう。したが項目って、記載は、限定ではなく例としてみなされるべきである。
［項目１］
アクセス制御信号に従い、プロセッサにより提供されるアドレスビットを調整するアドレス前スウィズル回路と、
前記アドレス前スウィズル回路に結合され、前記アクセス制御信号、調整済み前記アドレスビット、および、Ｎ個のサブチャネルに関連付けられたサブチャネル識別子に従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプのデータを動的に操作するよう、メモリにおける前記Ｎ個のサブチャネルに接続するデータステアリング回路と、
前記アドレス前スウィズル回路および前記Ｎ個のサブチャネルに結合され、前記調整済みアドレスビットを用い、前記アクセス制御信号および前記サブチャネル識別子に従い、前記Ｎ個のサブチャネルに対するサブチャネルアドレスビットを生成するアドレス後スウィズル回路と、
を備え、
前記タイル状メモリアクセスは、水平のタイル状メモリアクセスおよび垂直のタイル状メモリアクセスを含む、
装置。
［項目２］
前記アクセス制御信号は、
前記タイル状メモリアクセスを選択するタイル状制御信号と、
前記タイル状制御信号がアサートされた場合、前記垂直のタイル状メモリアクセスを選択する垂直制御信号と、
を含む、項目１に記載の装置。
［項目３］
前記アドレス前スウィズル回路は、Ｋ個の最下位共通アドレスビットを選択するデータセレクタを有し、Ｋは、Ｌｏｇ２（Ｎ）に等しい、項目１に記載の装置。
［項目４］
前記メモリアクセスタイプが前記垂直のタイル状メモリアクセスの場合、前記アドレス後スウィズル回路は、前記調整済みアドレスビットの論理関数と、対応するサブチャネル識別子とを有するＮ群のサブチャネルアドレスビットを生成する、項目１に記載の装置。
［項目５］
前記メモリアクセスタイプが前記水平のタイル状メモリアクセス、または、非タイル状メモリアクセスの場合、前記アドレス後スウィズル回路は、前記調整済みアドレスビットを有するＮ群のサブチャネルアドレスビットを生成する、項目１に記載の装置。
［項目６］
前記メモリアクセスタイプが前記非タイル状メモリアクセス、前記水平のタイル状メモリアクセス、および、前記調整済みアドレスビットの第１組の値を有する前記垂直のタイル状メモリアクセスの場合、前記アクセス制御信号および前記調整済みアドレスビットは、前記データステアリング回路についての第１の設定を選択する、項目１に記載の装置。
［項目７］
前記メモリアクセスタイプが前記調整済みアドレスビットの前記第１組の値とは異なる３組の値のうちの１つを有する前記垂直のタイル状メモリアクセスの場合、前記アクセス制御信号および前記調整済みアドレスビットは、３つの設定のうちの１つを選択する、項目６に記載の装置。
［項目８］
前記第１の設定は、恒等置換マッピングに対応し、前記３つの設定のうちの前記１つは、非恒等置換マッピングに対応する、項目７に記載の装置。
［項目９］
前記タイル状メモリアクセスは、前記メモリに行単位でアクセスし、前記非タイル状メモリアクセスは、前記メモリに列単位でアクセスする、項目１に記載の装置。
［項目１０］
アクセス制御信号に従い、プロセッサにより提供されるアドレスビットを調整する段階と、
前記アクセス制御信号、調整済み前記アドレスビット、および、Ｎ個のサブチャネルに関連付けられたサブチャネル識別子に従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプのデータを動的に操作するよう、メモリにおける前記Ｎ個のサブチャネルに接続する段階と、
前記アクセス制御信号、前記調整済みアドレスビット、および、前記サブチャネル識別子に従い、前記Ｎ個のサブチャネルに対するサブチャネルアドレスビットを生成する段階と、
を備え、
前記タイル状メモリアクセスは、水平のタイル状メモリアクセスおよび垂直のタイル状メモリアクセスを含む、
る方法。
［項目１１］
前記アクセス制御信号は、
前記タイル状メモリアクセスを選択するタイル状制御信号と、
前記タイル状制御信号がアサートされた場合、前記垂直のタイル状メモリアクセスを選択する垂直制御信号と、
を含む、項目１０に記載の方法。
［項目１２］
前記サブチャネルアドレスビットを生成する段階は、Ｋ個のアドレスビットを選択する段階を有し、Ｋは、Ｌｏｇ２（Ｎ）に等しい、項目１０に記載の方法。
［項目１３］
前記サブチャネルアドレスビットを生成する段階は、
前記メモリアクセスタイプが前記垂直のタイル状メモリアクセスの場合、最下位２＊Ｋ個の調整済みアドレスビットの論理関数および対応するサブチャネル識別子を有するＮ群のサブチャネルアドレスビットを生成する段階と、
前記メモリアクセスタイプが前記水平のタイル状メモリアクセス、または、非タイル状のメモリアクセスの場合、前記調整済みアドレスビットを有するＮ群のサブチャネルアドレスビットを生成する段階と、
を有する、項目１２に記載の方法。
［項目１４］
前記接続する段階は、
前記メモリアクセスタイプが、前記非タイル状メモリアクセス、前記水平のタイル状メモリアクセス、および、前記調整済みアドレスビットの第１組の値を有する前記垂直のタイル状メモリアクセスの場合、第１の設定を選択する段階と、
前記メモリアクセスタイプが、前記調整済みアドレスビットの前記第１組の値とは異なる３組の値のうちの１つを有する前記垂直のタイル状メモリの場合、３つの設定のうちの１つを選択する段階と、
を有する、項目１０に記載の方法。
［項目１５］
前記第１の設定は、恒等置換マッピングに対応し、前記３つの設定のうちの前記１つは、非恒等置換マッピングに対応する、項目１４に記載の方法。
［項目１６］
前記メモリアクセスタイプが前記タイル状メモリアクセスの場合、前記メモリに行単位でアクセスする段階と、
前記メモリアクセスタイプが前記非タイル状メモリアクセスの場合、前記メモリに列単位でアクセスする段階と、
をさらに備える、項目１０に記載の方法。
［項目１７］
システムであって、
プロセッサと、
メモリにおけるＮ個のサブチャネル内に形成され、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＳＤＲＡＭ（同期型随時書き込み読み出しメモリ）である複数のメモリデバイスと、
前記プロセッサおよび前記複数のメモリデバイスに結合され、アクセスコントローラを有するメモリコントローラと、を備え、
前記アクセスコントローラは、
アクセス制御信号に従い、プロセッサにより提供されるアドレスビットを調整するアドレス前スウィズル回路と、
前記アドレス前スウィズル回路に結合され、前記アクセス制御信号、調整済み前記アドレスビット、および、Ｎ個のサブチャネルに関連付けられたサブチャネル識別子に従い、タイル状および非タイル状メモリアクセスを含むメモリアクセスタイプのデータを動的に操作するよう、前記メモリにおける前記Ｎ個のサブチャネルに接続するデータステアリング回路と、
前記アドレス前スウィズル回路および前記Ｎ個のサブチャネルに結合され、前記調整済みアドレスビットを用い、前記アクセス制御信号および前記サブチャネル識別子に従い、前記Ｎ個のサブチャネルに対するサブチャネルアドレスビットを生成するアドレス後スウィズル回路と、
を有し、
前記タイル状メモリアクセスは、水平のタイル状メモリアクセスおよび垂直のタイル状メモリアクセスを含む、
システム。
［項目１８］
前記アクセス制御信号は、
前記タイル状メモリアクセスを選択するタイル状制御信号と、
前記タイル状制御信号がアサートされた場合、前記垂直のタイル状メモリアクセスを選択する垂直制御信号と、
を含む、項目１７に記載のシステム。
［項目１９］
前記アドレス前スウィズル回路は、最下位２＊ＫのアドレスビットからＫの共通アドレスビットを選択するデータセレクタを有し、Ｋは、Ｌｏｇ２（Ｎ）に等しい、項目１７に記載のシステム。
［項目２０］
前記メモリアクセスタイプが前記垂直のタイル状メモリアクセスの場合、前記アドレス後スウィズル回路は、前記調整済みアドレスビットの論理関数および対応するサブチャネル識別子を有するＮ群のサブチャネルアドレスビットを生成する、項目１９に記載のシステム。
［項目２１］
前記メモリアクセスタイプが前記水平のタイル状メモリアクセス、または、非タイル状メモリアクセスの場合、前記アドレス後スウィズル回路は、前記調整済みアドレスビットを有するＮ群のサブチャネルアドレスビットを生成する、項目１９に記載のシステム。
［項目２２］
前記メモリアクセスタイプが前記非タイル状メモリアクセス、前記水平のタイル状メモリアクセス、および、前記調整済みアドレスビットの第１組の値を有する前記垂直のタイル状メモリの場合、前記アクセス制御信号および前記調整済みアドレスビットは、前記データステアリング回路についての第１の設定を選択する、項目１７に記載のシステム。
［項目２３］
前記メモリアクセスタイプが前記調整済みアドレスビットの前記第１組の値とは異なる３組の値のうちの１つを有する前記垂直のタイル状メモリの場合、前記アクセス制御信号および前記調整済みアドレスビットは、３つの設定のうちの１つを選択する、項目２２に記載のシステム。
［項目２４］
前記第１の設定は、恒等置換マッピングに対応し、前記３つの設定のうちの前記１つは、非恒等置換マッピングに対応する、項目２３に記載のシステム。
［項目２５］
前記タイル状メモリアクセスは、前記メモリに行単位でアクセスし、前記非タイル状メモリアクセスは、前記メモリに列単位でアクセスする、項目１７に記載のシステム。
【図１Ａ】
0005393817.tif 000002
【図１Ｂ】
0005393817.tif 000003
【図１Ｃ】
0005393817.tif 000004
【図２Ａ】
0005393817.tif 000005
【図２Ｂ】
0005393817.tif 000006
【図３Ａ】
0005393817.tif 000007
【図３Ｂ】
0005393817.tif 000008
【図３Ｃ】
0005393817.tif 000009
【図３Ｄ】
0005393817.tif 000010
【図４】
0005393817.tif 000011
【図５】
0005393817.tif 000012
【図６Ａ】
0005393817.tif 000013
【図６Ｂ】
0005393817.tif 000014
【図７】
0005393817.tif 000015
【図８】
0005393817.tif 000016
【図９】
0005393817.tif 000017