JP4459903B2 - スケーラブル・マルチチャネル・メモリアクセスのための方法、及びメモリコントローラ - Google Patents

スケーラブル・マルチチャネル・メモリアクセスのための方法、及びメモリコントローラ Download PDF

Info

Publication number
JP4459903B2
JP4459903B2 JP2005509663A JP2005509663A JP4459903B2 JP 4459903 B2 JP4459903 B2 JP 4459903B2 JP 2005509663 A JP2005509663 A JP 2005509663A JP 2005509663 A JP2005509663 A JP 2005509663A JP 4459903 B2 JP4459903 B2 JP 4459903B2
Authority
JP
Japan
Prior art keywords
memory
access
access channel
circuit
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005509663A
Other languages
English (en)
Other versions
JP2006501586A (ja
Inventor
アッティラ ベレンイ,
フレドリク ダルグレン,
アンデルス ウェッスレン,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP20020388067 external-priority patent/EP1403772A1/en
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2006501586A publication Critical patent/JP2006501586A/ja
Application granted granted Critical
Publication of JP4459903B2 publication Critical patent/JP4459903B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)

Description

本発明は効率的で柔軟性のあるメモリアクセス制御を行う電子機器に関する。
また、本発明は効率的で柔軟性のあるメモリアクセス制御の方法に関する。
加えて、本発明はコンピュータに本発明の方法を実行させるプログラムを有したコンピュータ可読媒体に関する。
ASIC(アプリケーション専用集積回路)による解決策と、特に、例えば、移動体電話におけるベースバンドとアプリケーション処理のための他の種類の集積回路において、通常、メモリにアクセスするいくつかのユニットがあり、それは、例えば、1つ以上のCPU、1つ以上のDSP、1つ以上の通信リンク(無線、UART、USBなど)、また潜在的には特定のアプリケーション、ルーティン、手順などのためのハードウェアアクセラレータなどの内の少なくともいずれかである。更にその上、そのシステムはいくつかのインスタンスと複数種類のメモリとの内、少なくともいずれかを含んでいる。それらメモリの種類には、オフチップ揮発性、オフチップ不揮発性、異種オンチップメモリなどを含んでいるかもしれない。これらのメモリは、メモリアクセスを行う種々のユニットによって完全に、或いは部分的に共有される傾向がある。従って、そのメモリユニットからメモリアクセスを行うユニットへ、そして、そのメモリアクセスを行うユニットからメモリユニットへのメモリアクセスをできる限り効率的にルーティングするメモリコントローラの必要性がある。
たいていの組み込み型システムにおいて、メモリコントローラは一度に1つだけのユニットが共用されるメモリのいずれかにアクセスが可能なようにしており、即ち、これらのメモリへのアクセスは完全に順次化している。これは複雑さの少ない解決策であり、アクセスユニットは単一のメモリバスを共用し、それらのメモリは全てこの共用バスに接続される。これに対して、そのような処理システムの性能はたいしたものではなく、リアルタイム性が大切なソフトウェアを有するときの衝撃は破壊的である。つまり、リアルタイム性が重要なタスクが定常的にメモリアクセスの高い優先度をもち、他のタスクは“飢餓状態”となる結果となるか、システムがリアルタイム性に乏しい特性を示すかの内、少なくともいずれかになる。
他の解決策では、データリンク或いはバスのネットワークは、ユニットのメモリ要求が独立に対象メモリへとルーティングされるようにサポートされており、1つ以上のユニットが同じ物理的なメモリモジュール或いは別々にアクセス可能なメモリバンクをアクセスするときにのみメモリ競合が現れる。そのような解決策はかなりより良い性能を提供することになるが、一方で、その解決策は、実際のシリコン領域(それは重要度が少なくなっているが)からのみならず電力消費や開発労力の点からも、かなり複雑なものになると従来は考えられてきた。後者においては、そのような解決策のたいていのものは特定のシステムや実装のためにユニークに設計されたものであり、スケーラブルであるように設計されたものではないことが理由となっている。この文脈において、スケーラブルとは、同じ基本設計とアーキテクチュアとが、ローエンド、むしろ低い機能性と小さな領域での実装と、ハイエンド、機能性に富みかつ性能が要求される実装との両方に用いることができることを意味している。
DMA(ダイレクトメモリアクセス)のようなデータ転送のサポートは、複雑性と機能性とにおいてバラエティに富んでいる。多くの現在の組み込み型システムでは単純なDMAユニットを有し、CPUによるセットアップの後、プログラム可能なメモリ領域から別のプログラム可能なメモリ領域へプログラム可能な量のデータを転送する。その転送は、(プログラミング/セットアップ段階を除いて)プロセッサによる介在なしに実行される。そのデータ転送が他のアクセスユニットとは別のメモリを占有するなら、そして、そのメモリコントローラ/ネットワークがそのような並列的なアクセスをサポートするなら、そのデータ転送は何のオーバヘッドを生じさせることはない。もし、アクセスユニットがDMAデータ転送と同じメモリ或いはメモリバンクを対象にするなら、通常は2つの異なる方式がある。トランスペアレントDMAは、メモリが一時的にアイドル状態にあるときにのみ、細かな個々のアクセスについてDMAアクセスが実行されることを可能にしているが、ノン−トランスペアレントDMAではより大きな塊のデータが転送され、これは他のユニットが関与するメモリから長引いた時間の間、ロックアウトされる結果を導くものとなる。
いくつかのDMAコントローラはより精巧なものであり、ある内部接続能力によって定義された各物理チャネルがプログラムされ数多くの異なる進行中のデータチャネルを扱うことができるように、別の多くの物理チャネル上にマップされたある数の仮想チャネルをサポートする。これらデータチャネル各々は、与えられた領域のデータをあるメモリから別のメモリへと転送するためにセットアップされるか、或いは、UART或いはUSBインタフェースバッファから他のバッファへと到来データを、UART或いはUSBからのシグナリングに依存して移動させるためにセットアップされる。ここで、そのバッファアドレスは前もって定義されたパターン(例えば、夫々は次々にデータで埋められる二重、三重バッファリング)などに従って動的に変更される。そのようなDMAコントローラはしばしば、メモリコントローラからは分離されている。しかし、そのようなDMAコントローラはメモリコントローラへの1つ或いはいくつかのデータチャネルをもっている。さらにその上、そのようなDMAコントローラはしばしば、設計の一部として挿入されるように設計されたむしろ複雑な回路であり、スケーラブルではない。
データ転送をサポートするメモリコントローラの多くの以前の実装と機構とが存在する。しかしながら、効率性と、相対的に小さな複雑性と、スケーラブルな解決策との内、少なくともいずれかの必要性がある将来の世代のアーキテクチュアに重要である、ある特徴が共通に見出されてはいない。
第1に、その解決策はスケーラブルでなければならないため、拡がりをもつ設計をサポートしなければならず、これにより、過度に複雑であってもならない。同時に、性能とリアルタイムの問題についての1つの要求とは、異なるユニットが競合なく独立に異なるメモリ或いはメモリバンクにアクセスできなければならない点である。加えて、自動データ転送についての適切なサポートが必須であり、そして、異なる特徴をもった種々のソフトウェアのために、動的にセットアップされて動作することが可能であるべきである。独立したアクセスの並列的な処理、自動データ転送についての動的なサポート、スケーラビリティ、及び、むしろ小さい複雑性の組み合わされた要求は、一般に知られた解決策を不適切なものにしている。ローエンドの実装はメモリにアクセスする2,3のユニットしかもたず、性能要求もむしろ小さいものであるが、それらの複雑さはむしろ小さなものに維持されねばならず、シリコン領域も小さなものに保たれねばならない。これとは反対に、ハイエンドの実装は、高性能要求があり、より多くのメモリやメモリバンクにアクセスするより多くのユニットがある。伝統的に、これはASIC設計と、ソフトウェア設計と、試験と検証の複雑さを増し加える完全に異なる設計につながってしまう。
特許文献1は、メモリアクセスを改善するために設計された複数の並列的な仮想アクセスチャネルに結合された主メモリを有するメモリシステムを開示している。
米国特許第6,327,642号明細書
しかしながら、アクセスチャネルに関係したキャッシュの使用は設計の複雑さを増し加えることになる。加えて、メモリの部分間でのDMA/データ転送のサポートはない。またさらに、柔軟性を与えるプリフェッチ、チェイン、動的制御のサポートについても開示されていない。
本発明の目的は、効率的で柔軟性が高くスケーラブルな実装が可能なメモリアクセス制御を行う電子機器を提供することである。
さらなる目的は、メモリアクセス機器間のメモリアクセスに関する競合の危険性を少なくすることが可能なメモリアクセス制御を行う電子機器を提供することである。
(中でも)これらの目的は、メモリアクセスの効率的で柔軟な制御を行う電子機器によって達成され、前記機器は、
・少なくとも1つのメモリアクセスユニットに接続され、
・少なくとも1つの物理的なメモリモジュールを有するメモリに接続されており、
前記機器は、少なくとも2つのアクセスチャネル回路を有し、少なくとも1つのアクセスチャネル回路は、少なくとも1つのシステムバスを介して前記少なくとも1つのメモリアクセスユニットと、前記少なくとも1つの物理的なメモリモジュールとに接続され、前記少なくとも1つのアクセスチャネル回路は、前記メモリの少なくとも一部への前記少なくとも1つのメモリアクセスユニットによるメモリアクセスを提供する。
これによって、全てのメモリアクセスユニットは、それらがメモリの同じ部分にアクセスしない限り、それらによって必要とされるメモリへアクセスすることができる。さらに、不必要な競合を避けることができる。即ち、もし、2つのユニットがメモリの異なる部分、異なるメモリ、異なるメモリモジュール、或いは異なるメモリバンクにアクセスするなら、それら2つのユニットが独立である限り、互いを遅延させることなく、それらはそのようにすることができる。
そのメモリは、複数のメモリアクセスユニットにより、完全に或いは部分的に共用されていても良い。即ち、いくつかのメモリアクセスユニットはそのメモリの同じ部分にアクセスしても良い。
好適な実施例においては、前記少なくとも2つのアクセスチャネル回路夫々は、そのメモリの少なくとも一部への少なくとも1つのメモリアクセスユニットによるメモリアクセスを提供し、これにより、異なるアクセスチャネル回路に接続されたメモリアクセスユニットが、そのメモリの異なる部分に対して、独立に、そして同時/並列的なアクセスを可能にしている。
これによって、異なるメモリアクセスユニットの並列的なメモリアクセスを、結果として得られるメモリ機器を相対的にはあまり複雑にすることなく達成する。個々のデータ転送を担当するアクセスチャネル回路は動的に制御されセットアップされ、独立に動作しても良いので、制御構成回路の柔軟な動的制御を可能にしている。
加えて、そのメモリコントローラは、単一の或いは多数のアクセスチャネルを必要とするシステムに実装して構成するのが簡単である。
このようにして、メモリアクセスとメモリコントローラとを制御するスケーラブルな機器が達成される。なぜなら、(実装時)スケーラビリティは、より多くの接続性とより高度のアクセス並列処理とが、実装時のアクセスチャネル各々の複雑さを増し加えるのではなくむしろ、単により多くのアクセスチャネルを追加するだけで成し遂げられるようにアクセスチャネルの設計を行うことによって達成されるからである。付加的なアクセスチャネル回路を実装するのに必要な求められる付加的な配線、接続などは、その付加的なアクセスチャネル回路と制御構成回路との間の単に1つの接続に過ぎない。
このようにして、メモリに対する並列的で独立なアクセスチャネルの数は、与えられるシステム要求、必要性などに最も合致するように調整される。
1つの実施例では、その機器は、前記少なくとも2つのアクセスチャネル回路を動的に制御する制御構成回路を有し、前記制御構成回路はさらなるアクセスチャネル回路の簡単な追加実装を可能にしている。
1つの実施例に従えば、前記機器は、少なくとも2つのアクセスチャネル回路を有し、それらの回路各々は単一のシステムバスを介して単一のメモリアクセスユニットに接続され、それらの回路各々は前記メモリの少なくとも一部からの情報/データを受信するために接続されている。
これによって、両方のシステムバスを介してデータ/情報が取り出され送信されるので、並列的で独立なデータ/情報転送速度の増加が得られる。これは、メモリアクセスユニットが2つの接続されたシステムバスにおいて到来するデータ/情報を取り扱うことができることを要求する。また、速度の増加により、アクセスチャネル回路が占有される時間が短くなり、これによって、メモリアクセス競合の危険性も小さくなる。2つの異なるアクセスチャネル回路は同時に同じメモリの異なる部分(即ち、物理的に異なるメモリモジュール)をアクセスしても良い。もし、それらがそのメモリの同じ部分をアクセスするなら、そのメモリはある方式に従ってそのアクセスを順次的にし、1つのアクセスチャネル回路は他の回路のために待機しなければならないだろう。メモリアクセスユニットとアクセスチャネル回路との間のシステムバスは分離した異なるシステムバスである。
1つの実施例では、前記機器は、単一のシステムバスを介して少なくとも2つのメモリアクセスユニットに接続された1つのアクセスチャネル回路を有し、前記1つのアクセスチャネル回路は、前記メモリの少なくとも一部からのデータ/情報を受信することと、前記メモリの少なくとも一部に対してデータ/情報を送信することとの内少なくともいずれかのために接続されている。
これはメモリコントローラの全体的な複雑さをさらに少なくするものであるが、競合の危険性は増大するかもしれない。しかしながら、もし2つ以上のメモリアクセス機器が同時に物理的に同じメモリモジュールにアクセスする必要が決してないか、或いはほとんどないなら、その危険性は最小にされるか、或いは完全に回避される。即ち、2つ以上のメモリアクセス機器は、本発明に従うメモリコントローラの効率性と妥協することなく同じシステムバスに接続されることになる良い候補である。
1つの実施例では、アクセスチャネル回路はさらに、メモリアクセスユニットが前記データ/情報を取り出すのに先立ち、そのメモリの第1の部分/第1の物理的メモリモジュールからそのメモリの第2の部分/第2の物理的メモリモジュールへデータ/情報を転送する自動データ転送エンジンを有している。その自動データ転送は、制御構成回路からの特定のコマンド、アドレス範囲などにより、(特定のアクセスチャネルに対して)入力側のシステムバスにおけるパターンマッチングなどにより起動されても良い。
このようにして、ダイレクトメモリアクセス(DMA)のサポートや、1つのメモリからデータを読出し可能であり、それを別のメモリに(セットアップのため以外には)CPUの介在なしに格納する制御ユニットが単純な方法で得られる。これにより、例えば、大容量のデータ、コード、情報などを、アクセスユニット(例えば、CPU)によるデータの利用に先立って、メモリ間で(例えば、低速メモリから高速メモリに)転送することが可能であり、これにより、低速メモリのアクセス待ち時間を隠し、情報取り出し処理を高速化することができる。
1つの実施例では、複数のアクセスチャネル回路の自動データ転送エンジンは、自動データ転送エンジンのチェインを形成するように接続されており、各データ転送エンジンは前記データ/情報の異なる部分の転送を担当する。
このようにして、メモリアクセスシーケンスの最適化と個々のリンク或いは制御ユニットの平均占有時間の削減が可能になる。
1つの実施例では、前記少なくとも1つのアクセスチャネル回路は、少なくとも1つの特別な目的のレジスタを有しており、前記制御構成回路に接続されており、前記制御構成回路は、前記少なくとも1つの特別な目的のレジスタの内容を変更するために適合されており、これにより、動作中に他のアクセスチャネルに影響を与えることなく、個々のアクセスチャネル回路の再構成を可能にしている。
これにより、与えられたアクセスチャネル回路の動作モードの簡単な動的構成が可能になる。
1つの実施例では、前記再構成は、前記メモリの機能モードと少なくとも1つのアクセス領域との内の少なくともいずれかを構成することを含む。
1つの実施例では、前記機器は、接続されたメモリアクセスユニット各々ための1つのアクセスチャネル回路を有し、各アクセスチャネル回路は前記メモリの各メモリモジュールに接続される。
このようにして、複数のアクセスユニットが同時に同じメモリモジュールにアクセスするときにのみ、唯一の競合が発生する可能性がある。このことは、種々のメモリアクセスユニットによりメモリアクセス競合の危険性を非常に少なくし、メモリコントローラの性能を著しく改善する。このことは特に、リアルタイム或いは実質的にリアルタイムのアプリケーション、運用などに対して重要である。
1つの実施例では、アクセスチャネル回路は、
・メモリアクセス機器に接続された入力側のシステムバスとメモリアクセス機器に接続された出力側のシステムバスとを、接続されることになる与えられたメモリバスを表現する(例えば、メモリバスのアドレスを表現する)第1の識別子のために監視するために適合され、前記第1の識別子に基づいて、前記与えられたメモリバスと前記与えられたメモリバスがどこに接続されるのかを表現する第1の制御信号/コードを提供するメモリアクセスコントローラと、
・前記メモリのメモリモジュールに接続されたメモリバスへ、前記入力側システムバス或いは前記メモリアクセスコントローラからのアクセスを、前記メモリアクセスコントローラから受信した前記第1の制御信号/コードに依存して可能にするソース及び宛先セレクタと、
・第2のユニークな識別子に依存して、特定のメモリモジュールの与えられた読出しアクセスの間に、どのメモリモジュールが前記メモリアクセス機器に接続された出力側システムバスに接続されることになるのかを選択するメモリモジュールセレクタとを有する。
本発明はまた、本発明に従う前記機器(及びその実施例)と同じ目的と利点とをもつメモリアクセスを制御する方法(及びその実施例)に関する。
このことは、少なくとも1つのメモリアクセスユニットと少なくとも1つの物理的なメモリモジュールを有するメモリとの間のメモリアクセスの効率的で柔軟な制御の方法によって達成され、その方法は、
・少なくとも2つのアクセスチャネル回路の少なくとも1つにより、前記メモリの少なくとも一部への前記少なくとも1つのメモリアクセスユニットによるメモリアクセスを提供する工程を有し、前記少なくとも1つのアクセスチャネル回路は、少なくとも1つのシステムバスを介して前記少なくとも1つのメモリアクセスユニットと、前記少なくとも1つの物理的なメモリモジュールとに接続される。
1つの実施例では、その方法は、前記少なくとも2つのアクセスチャネル回路を介して、そのメモリの少なくとも一部への前記少なくとも2つのメモリアクセスユニットによる同時的なメモリアクセスを提供する工程を有し、各アクセスチャネルが、そのメモリの異なる部分に対する独立のアクセスを提供し、これにより、異なるアクセスチャネル回路に接続されたメモリアクセスユニットが、そのメモリの異なった部分への並行的なアクセスを可能にしている。
1つの実施例では、その方法はさらに、
・制御構成回路により前記少なくとも2つのアクセスチャネル回路を動的に制御する工程を有し、前記制御構成回路はさらなるアクセスチャネル回路の簡単な追加実装を可能にする。
1つの実施例では、その方法はさらに、
・少なくとも2つのアクセスチャネル回路による前記メモリの少なくとも一部から単一のメモリアクセスユニットに対するメモリアクセスを提供する工程を有し、前記少なくとも2つのアクセスチャネル回路各々は単一のシステムバスを介してその単一のメモリアクセスユニットに接続され、前記メモリの少なくとも一部からの情報/データを受信するために接続されている。
1つの実施例では、その方法はさらに、
・単一のシステムバスを介して少なくとも2つのメモリアクセスユニットに接続された単一のアクセスチャネル回路により、前記メモリの少なくとも一部から前記少なくとも2つのメモリアクセスユニットへのメモリアクセスを提供する工程を有し、前記単一のアクセスチャネル回路は、前記メモリの少なくとも一部からデータ/情報を受信することと、前記メモリの少なくとも一部に対してデータ/情報を送信することとの内少なくともいずれかのために接続されている。
1つの実施例では、その方法はさらに、
・メモリアクセス機器が前記データ/情報を取り出すのに先立ち、そのメモリの第1の物理的メモリモジュールからそのメモリの第2の物理的メモリモジュールへデータ/情報を転送する自動データ転送エンジンを有するアクセスチャネル回路によりデータ/情報の自動データ転送を提供する工程を有する。
1つの実施例では、その方法はさらに、
・データ/情報の自動データ転送を提供する工程をさらに有し、複数のアクセスチャネル回路の複数の自動データ転送エンジンは、自動データ転送エンジンのチェインを形成するように接続されており、
・各データ転送エンジンは前記データ/情報の異なる部分の転送を担当する。
1つの実施例では、その方法はさらに、
・前記制御構成回路により、前記制御構成回路に接続された少なくとも1つのアクセスチャネル回路に含まれた少なくとも1つの特別な目的のレジスタの内容を変更し、これにより、動作中に他のアクセスチャネルに影響を与えることなく、個々のアクセスチャネル回路の再構成を可能にしている。
1つの実施例では、その再構成は、前記メモリの機能モードと少なくとも1つのアクセス領域との内の少なくともいずれかを構成することを含む。
1つの実施例では、そのメモリアクセスは、接続されたメモリアクセスユニット各々ための1つのアクセスチャネル回路により備えられ、各アクセスチャネル回路は前記メモリの各メモリモジュールに接続されている。
1つの実施例では、その方法はさらに、
・アクセスチャネル回路に含まれるメモリアクセスコントローラにより、メモリアクセス機器に接続された入力側のシステムバスと、メモリアクセス機器に接続された出力側のシステムバスとを、接続されることになる与えられたメモリバスを表現する第1の識別子のために監視する工程と、
・前記メモリアクセスコントローラにより、前記第1の識別子に基づいて、前記与えられたメモリバスと前記与えられたメモリバスがどこに接続されるのかを表現する第1の制御信号/コードを提供する工程と、
・ソース及び宛先セレクタによる、前記メモリのメモリモジュールに接続されたメモリバスへ、前記入力側システムバス或いは前記メモリアクセスコントローラからのアクセスを、前記メモリアクセスコントローラから受信した前記第1の制御信号/コードに依存して可能にする工程と、
・メモリモジュールセレクタにより、第2のユニークな識別子に依存して、特定のメモリモジュールの与えられた読出しアクセスの間に、どのメモリモジュールが前記メモリアクセス機器に接続された出力側システムバスに接続されることになるのかを選択する工程とを有する。
本発明はまた、移動体通信端末において用いられる本発明に従う電子機器と方法との内少なくともいずれかの使用に関する。
さらに本発明は、上述の方法を処理装置或いはコンピュータシステムに実行させる命令が格納されたコンピュータ可読媒体に関する。コンピュータ可読媒体は、例えば、CD−ROM、CD−R、DVD−RAM/ROM、フロッピィディスク、ハードディスク、スマートカード、ネットワーク接続を介してアクセス可能なネットワーク、ROM、RAM、フラッシュメモリなどの内の少なくともいずれかで良く、或いは、一般にはコンピュータシステムにどのように指示/命令が実行されるべきであるのかに関する情報を提供する何か別の種類の媒体でも良い。
これにより、コンピュータは上述したようなコンピュータ可読媒体の内容のシーケンスとしての電子情報を取りだすようにされ、本発明に従う対応する方法に関連して述べた利点を得ることができる。
添付図面を参照して、本発明を以下より詳細に説明する。
図1は本発明の図形的に示したものである。示されているのは、メモリへのアクセス(読出しと書込みとの内、少なくともいずれか)が必要なCPU(中央処理装置)、専用或いは汎用処理ユニット、DSP(デジタル信号プロセッサ)、或いは他のタイプのプロセッサ/ユニットのような数多く(1つ以上であれば良い)のメモリアクセスユニット(202)である。1つ以上のメモリアクセスユニット(202)はまた、次のように指定されたマスタ機器でもある。
また、少なくとも1つの物理的なメモリモジュール、回路、バンクなど(203)を有するメモリ(100)も示されている。そこには、データや情報の内少なくともいずれかが、格納され、読み出され、取り出され、移動されたりなどされるか、或いはされても良いが、少なくともいずれかであれば良い。メモリ(100)はオフチップ揮発性メモリ、オフチップ不揮発性メモリ、異なる種類のオンチップメモリの内、少なくともいずれかを有している。そのメモリは種々のメモリアクセスユニット(202)によって完全に或いは部分的に共有される。即ち、いくつかのメモリアクセスユニット(202)が同じメモリモジュール、その一部、同じメモリ(アドレス)範囲などの内少なくともいずれかにアクセスしても良いのである。メモリ(100)は好適には数多くの物理的メモリモジュール(203)を有しており、そこではメモリモジュール(203)は、多くの異なった公知の方法で構成された1つ或いはいくつかの物理的メモリを含むことができる。
加えて、本発明に従うメモリコントローラ/メモリアクセス制御を行う機器(200)が図示されている。メモリコントローラ(200)は、制御構成回路(例えば、図2を参照)と数多く(1つ以上であれば良い)のロジック“アクセスチャネル”(102)とを有しており、1つ以上のアクセスチャネル(102)が(同じ或いは異なる)メモリアクセスユニット(202)に接続され、メモリコントローラ(200)の制御下でメモリ(100)の少なくとも一部に対する読出しと書込みとの内少なくともいずれかのアクセスを可能とすることを担当している。各アクセスチャネル(102)は、少なくとも1つの物理的メモリモジュール(203)に接続されている。そのモジュールは単一或いは多数のメモリバンクに編成されていても良いし、そうでなくても良い。アクセスチャネル(102)は、例えば、図3に関連して示されたものの(300)ようなメモリアクセス回路によって実装されている。図3では、そのような回路の1実施例が示されている。加えて、メモリコントローラ(200)は、次に説明するような物理的なメモリモジュール(203)間の自動データ転送を提供する少なくとも1つのアクセスチャネル(102)を有していても良い。自動データ転送のために用いられるアクセスチャネル(102)はメモリアクセスユニット(202)に(そうであっても良いが)接続されなければならない必要はない。加えて、そのようなアクセスチャネル(102)は、以下に説明することでもあるが、共にリンクされていても良い。
本発明により、異なるアクセスチャネル(102)に接続されたメモリアクセスユニット(202)と異なる物理的なメモリモジュール(203)とが競合の危険性がないか或いはほとんどなく動作することが可能になる。各アクセスユニット(202)が分離したアクセスチャネル(102)に接続され、各アクセスチャネルが全てのメモリモジュール(202)、即ち、完全なメモリ(100)に接続されるという1つの代表的な実施例では、複数のアクセスユニット(202)が同時に同じメモリモジュール(203)にアクセスするときにのみ、メモリアクセス競合が発生する可能性がある。このことは、種々のメモリアクセスユニット(202)によりメモリアクセスの競合の危険性を著しく低下させ、メモリコントローラの性能をいちじるしく改善する。このことは特に、リアルタイム、或いは実質的にリアルタイムのアプリケーションや動作などで重要である。
代替の実施例では、
同じアクセスチャネル(102)に接続したいくつかのメモリアクセス機器(202)(これはメモリコントローラの全体的な複雑さを少なくするが、競合の危険性は高まるかもしれない。しかしながら、もし、いくつかの(即ち、2以上)のメモリアクセス機器(202)が同時にメモリにアクセスする必要とメモリ(100)の同じ物理的な部分にアクセスする必要との内、少なくともいずれかが決してないか或いはほとんどないかなら、その危険性は最小にされるか或いは完全に回避される)と、
同じメモリアクセス機器(202)に接続したいくつかのアクセスチャネル(102)と、
メモリ(100)の一部或いはメモリモジュール(203)に排他的に接続された1つのアクセスチャネル(102)(即ち、メモリの排他的部分は特定のアクセスチャネルを介してのみアクセス可能である)と、
各メモリモジュール(203)に接続された複数のアクセスチャネル(102)の内のいくつかだけ(これはメモリコントローラの全体的な複雑さを小さくするが、特定のアクセス機器(202)とその目的とに大きく依存して競合の危険性がわずかに大きくなるかもしれない)と、
1つ以上のメモリアクセス機器(202)に接続された1つのアクセスチャネル(102)と、
これらの組み合わせの内の少なくともいずれかとを含む。
本発明に従う設計のスケーラビリティの原理は、メモリコントローラ(200)の設計段階でアクセスチャネル各々の複雑さを増し加えるというよりはむしろ、単により多くのアクセスチャネル(102)を追加することにより、より多くの接続性とより多くのアクセス並列的処理が達成されるようにアクセスチャネル(102)の設計を行うことにより到達するものである。これはスケーラビリティを獲得する上で非常に単純で複雑ではない方法を与えるものである。一旦、特定の設計に従って特定のコントローラが実装されるか、或いは、与えられたタスクや情況などに合致するための少なくともいずれで、アクセスチャネル(102)の数は固定される。
加えて、与えられたメモリコントローラのアクセスチャネル回路は、与えられた実施形に依存して、完全に同一である必要はない。
メモリコントローラ(200)の制御構成回路(例えば、図2を参照)は、メモリコントローラ(200)における論理アクセスチャネル(102)のアクセスチャネル回路(図2では300であり、それに関連して説明する)を制御し構成するのに用いられる。制御構成回路とメモリコントローラ(200)における付加的なアクセスチャネルの設計の残りに対する影響は、その制御構成回路が単に既存のバスに接続されるより多くのアクセスチャネルを収容することが単に必要なだけであるので、最小に抑えられる。
好適には全てのアクセスチャネル(102)は同じであるが、独立に構成され、制御構成回路の制御下で異なるモードの機能性やメモリ(100)の複数のアクセス領域をもつようにしても良い。各アクセスチャネル(102)は好適には、自動データ転送エンジンを有している。そのエンジンは、例えば、制御構成回路によって発行された特定のコマンドについて、(アクセスチャネルに対して)入力側の関連バスなどにおけるパターンマッチングによりトリガが与えられる。好適には、アクセスチャネル(102)の構成は、次に説明するように、通常の動作モードにおいて他のアクセスチャネルを妨害することなくなされると良い。
自動データ転送エンジンは、データ、情報、コードなどを、異なる物理的なメモリ(203)間やメモリ(100)の異なる部分間の少なくともいずれかで転送することを担当する。加えて、自動データ転送セションをセットアップすることにより、即ち、自動データ転送エンジンを用いることにより、(例えば、CPUのような)アクセスユニットによってデータを利用する前に、物理的なメモリ間で(例えば、低速メモリから高速メモリへと)、例えば、大量のデータ或いはコードを転送することが可能であり、これにより、より低速メモリのアクセス待ち時間を隠し、情報取り出し処理を高速化する。好適には、自動データ転送エンジンは図3に関連して説明するようにメモリアクセスコントローラによって実現される。
専用アクセスチャネル(102)をもつ各メモリアクセスユニット(202)は、他のアクセスチャネル(102)からは独立であるその専用チャネル(102)を介してメモリ(100)に並列的にアクセスできる。即ち、例えば、各々が自分自身の専用チャネル(102)をもつ2つのアクセスユニット(202)は並列的に/同時にメモリ(100)にアクセスすることができる(それらが、同時に同じメモリ部分/アドレス/範囲或いはメモリモジュール(203)にアクセスしない限り)。これにより、メモリコントローラが存在するアクセスチャネルと同数の並列的メモリアクセスセションをサポートすることが可能になる(メモリパーティショニング、即ち、アクセスチャネル(102)がメモリ(100)のどの部分に接続されるのかに依存して)。
さらに、簡単な方法で、(アクセスチャネル(102)の数に依存して)異なるアクセスチャネル(102)におけるデータ転送エンジンを共に1つ或いはいくつかの転送チェインへとリンクすることが可能である。そのチェインは、例えば、特定のメモリアクセスシーケンスのために用いられるかもしれない。データ転送チェインを用いることにより、特定のアクセスチャネルにマップされる大きなメモリトランザクションは多数の、しかし、より小さなトランザクションへと分割される。これにより、特定のアクセスチャネルがブロックされる時間が削減され、これにより、ジョブがより迅速に実行されるので、潜在的な資源競合も削減され、メモリの利用性/アクセスも増大する。
メモリアクセス(200)を制御するメモリコントローラ/機器を図2に関連してより詳細に説明する。
図2は本発明に従う実施例をより詳細に図式的に示したものである。示されているのは、本発明に従うメモリコントローラ200に含まれる(第1のマスタ機器が“0”に指定されている場合に用いられる表記では)(L+1)個のアクセスチャネル回路(300)に接続された(L+1)個のマスタ機器/メモリアクセスユニット(202)である。この特定の実施例では、メモリコントローラ(200)に接続された各マスタ機器(202)は専用アクセスチャネル(300)を有しており、そのアクセスチャネルを通して、マスタ機器(202)が直接に、(この実施例のように完全に、或いは部分的に)中央集中型の共用メモリの少なくとも1つの物理的なメモリモジュール(203)と通信できる。そのメモリでは、メモリモジュール(203)/メモリが、例えば、異なる種類の(揮発性か非揮発性、異なる速度、サイズ、レイアウトなど)のオンチップ或いはオフチップの少なくともいずれかで配置されていても良い。Lの値は、特定の実施例/実施形に依存して0以上の値である。この特定の実施例では、次に説明するように他の実施形に対しては他のレイアウトが適用可能であるかもしれないが、マスタ機器(202)は各々、システムバス(304、308)を介して単一の異なるアクセスチャネル回路(300)に接続されている。また、各マスタ機器(202)は、そのマスタ機器(202)が接続されている各アクセスチャネル回路(300)からの割込み信号を接続(305)を介して受信するために接続されていても良い。その割込み信号は、例えば、接続されたマスタ機器(202)に対してアクセスチャネル回路(300)がタスクの実行を終了したことを信号で伝えるために用いられるかもしれない。或いは、ポーリングが用いられても良く、これにより、割込み接続(305)は冗長であり、1つ以上のマスタ機器(202)/アクセスチャネル回路(300)については省略されても良い。マスタ機器(202)の数は、多数のマスタ機器(202)が同じシステムバス(304、308)そしてこれにより同じアクセスチャネル回路(300)に接続されても良いので、アクセスチャネル(300)の数と同じである必要はない。加えて、各マスタ機器(202)は、どこか他で説明したように、1つ以上のアクセスチャネル回路(300)に接続されても良い。
各アクセスチャネル回路(300)は、1つ以上のメモリバス(209)を介して1つ以上の物理的メモリモジュール(203)に対して情報/データを通信し、そして、接続(210)を介して1つ以上のメモリモジュールから情報を受信するために接続されている。この特定の実施例では、各アクセスチャネル回路(300)は(N+1)個のメモリモジュール(203)に接続され、(N+1)個の接続(210)を介して情報/データを受信し、そして、(M+1)個のメモリバス(209)を介して情報/データを送信、アドレッシングなどを行う。NとMとは両方とも、0以上の値であり、互いに等しくても良いし、或いは異なっていても良い。
この特定の実施例では、1つだけの物理的なメモリモジュール(203)が各メモリバス(209)に接続され、即ち、MとNとは等しいが、いくつかのメモリモジュール(203)は単一のメモリバス(209)を共用し、メモリデコーディングロジック(不図示、図3を参照(302))はどのメモリモジュール(203)がアクセスされるのかを決定する。或いは、MはNより大きくても良く、その逆でも良い。
加えて、メモリコントローラ(200)は、物理的なメモリモジュール(203)間での自動データ転送のためだけに用いられるアクセスチャネル(300)を有していても良く、そのモジュールでは、これらの種類のアクセスチャネルがシステムバス(304、308)に接続されている必要はないか、或いは割込み接続(305)をもっている。これは、情報/データのマスタ機器(202)への転送に先立って、例えば、低速の物理的なメモリからより高速の物理的なメモリへとデータを移動させるのに用いられる。
この図式的な表現では、物理的なメモリモジュール(203)は、物理的なメモリとメモリインタフェースとの両方を表している。
メモリコントローラ(200)は、システムバス#0(304、308)に接続された専用の“構成制御回路(201)”によって構成され制御されても良い。構成制御回路(201)とアクセスチャネル回路(300)とにおける特殊用途のレジスタは好適には、システムバス#0(308)上へと、全てのアドレスがマップされている。アクセスチャネル回路専用のレジスタへのアクセス中、接続(205)を介してシステムバス#0(304)において構成制御回路(201)により受信されたアドレスは内部メモリコントローラのアドレスへと変換される。内部メモリコントローラアドレスはその時、内部メモリコントローラバス(307)を介して適切なアクセスチャネル回路(300)における特定のレジスタをアクセスするのに用いられる。接続(205)は好適には、アクセスチャネル回路(300)の目的とする機能の状態と変更との内の少なくともいずれかのためにだけ用いられると良い。内部バス(306)はまた、アクセスチャネル回路(300)から接続構成回路(201)へデータ/情報を送信するのに用いられても良い。このデータ/情報は、例えば、ステータス情報とメモリモジュール(203)から取り出されたデータとの内、少なくともいずれかで良い。システムバス#0(308)上のマルチプレクサ(204)が、データが構成制御回路(201)から読み出されることになるのか、或いはアクセスチャネル#0(300)に接続されたメモリモジュール(203)から読み出されることになるのかを選択するために用いられる。構成制御回路(201)が読出し目的のためにシステムバス#0(304)を介してアドレスされるとき、マルチプレクサ(204)は構成制御回路(201)からの出力信号(206)を、これもまた構成制御回路(201)から制御信号(207)に基づいて選択する。他の全ての目的のために、システムバス(208(=308、図3ではアクセスチャネル#0に関して))は好適には、マルチプレクサ(204)により出力側のシステムバス#0(308)に接続される。即ち、マルチプレクサ(204)はマスタ機器#0が構成制御回路(201)からのデータ/情報を読み出すか、或いは構成制御回路(201)からの制御信号(206)に基づいてアクセスチャネル回路#0(300)から読み出すのかを決定する。示された例では、MD#0だけが制御及び構成コマンドを発行/開始することができる。しかしながら、他のMDに、例えば、接続(205)を他の入力側システムバス(304)に伸長することにより、設計と実装におけるわずかな変形だけでこれを行うようにさせることが可能である。
アクセスチャネル回路(300)の実施例を図3に関連してさらに詳細に説明する。
読出し過程は例えば次のようにして生じる。
マスタ機器#0(202)は、指示、コマンド、特定のパターンなどを発行して、例えば、読出し過程の表示/識別子とともに、単に、バス(304)上にメモリ範囲/アドレスを置くことにより、入力側システムバス#0(304)で与えられたメモリ範囲/アドレスの内容の取りだし/読出しを行う。これはアクセスチャネル回路#0(300)により受信され、その回路では、もし、アクセスチャネル回路#0がその情報を有する物理的なメモリモジュール(203)に接続されているなら、要求されたメモリ範囲/アドレスとメモリモジュール(203)に関連したメモリバス(209)に対応する/を有する物理的なメモリモジュール(203)を決定する。その時、指示が選択されたメモリバス(209)(例えば、メモリバス#2)を介して適切なメモリモジュール(203)(例えば、メモリモジュール#2)に送信される。そのメモリモジュールは要求されたメモリ範囲に格納されたデータ/情報をメモリモジュールの接続(210)(例えば、接続#2)を介してアクセスチャネル回路#0(300)に返す。その時、アクセスチャネルは取り出された情報/データを出力側のシステムバス(208)と(308)に、要求を行ったマスタ機器#0(202)へのマルチプレクサ(204)を介して提供しても良い。もし、アクセスチャネル回路#0が要求した情報/データを有するメモリモジュール(203)に接続されていないなら、内部バス(306)と(307)と制御構成回路(201)は、適用可能なメモリモジュール(203)に接続されたアクセスチャネルにその要求を転送するために用いられる。情報/データは同じようにしてアクセスチャネル回路(300)#0に送信される。しかしながら、各アクセスチャネル回路(300)は好適には、各物理的なメモリモジュール(203)に接続される。この読出し過程は、複数のマスタ機器が同時に同じ特定の物理的なメモリモジュールにアクセスしない限り、そのメモリにアクセスしている他のマスタ機器と並列的に実行されても良い。
プリフェッチ/自動データ転送動作は、例えば、次のようにして生じる。
マスタ機器#0(202)は、相対的に低速の物理的なメモリに置かれた与えられたメモリ範囲/アドレスのデータ/情報内容のために入力側システムバス#0(304)でのプリフェッチ/自動データ転送指示を発行する。この指示は、第1の接続されたアクセスチャネル回路#0(300)により受信され、その回路では、その時、もし、それがアクセスされている関連する物理的なメモリモジュールに接続されているか、或いは、その情報を取りだすために、内部バス(306)と(307)と接続構成回路(201)とを介して別のアクセスチャネル回路(300)(例えば、#1)に信号を送信するなら、取り出し過程それ自身を開始する。第1の、或いは別のアクセスチャネル回路(300)(例えば、#1)は、適切なメモリバス(209)を相対的に低速のメモリに対して選択することにより情報の取り出しを開始し、その相対的に低速のメモリに接続されているメモリモジュール接続(210)を介してその情報を受信する。その情報が第1或いは他のアクセスチャネル回路(300)により受信された後、それは適切なメモリバス(209)を介して相対的に高速の物理的なメモリモジュール(203)に格納される。その情報は、もし第1或いは他のアクセスチャネルがメモリバス(210)を介して直接に相対的に高速のメモリに接続されているなら、直接にそれらのチャネルにより格納されても良い。さもなければ、内部バス(306)と(307)と制御構成回路(201)とは相対的に高速のメモリに接続されたアクセスチャネルにその情報を転送するのに用いられる。
その情報/データが相対的に高速のメモリに移動された後、割込みが割込み接続(305)を介してマスタ機器に対して発行されるかもしれない。そのマスタ機器は、その時、相対的に高速のメモリから情報/データの転送を開始する。相対的に低速のメモリから相対的に高速のメモリへの移動は、マスタ機器への実際の転送を高速化し、低速メモリのアクセス待ち時間を隠してしまう。
さらに、付加的なアクセスチャネル(1つ以上)が、自動データ転送/プリフェッチを実行するときに、リンク/チェインされても良い。このようにして、各アクセスチャネルは完全な内容の一部を取り出したり格納したりすることを担当する。これにより、特定のアクセスチャネル上にマップされた相対的に大きなメモリトランザクションが、多数の、しかしより小さなトランザクションへと分割され、これによりアクセスチャネルが占有される時間を短縮すると良い。
自動データ転送の一部として用いられる付加的なアクセスチャネルはマスタ機器に接続されることを要求されていない。しかしながら、これでは、余分のアクセスチャネルが自動データ転送以外の何にも用いることができないことになるので、多数のマスタをもつシステムに良い解決策とは言えないかもしれない。単一のマスタシステムでは、このことは、最終的なメモリアーキテクチュアに依存する良い解決策である。
また、自動データ転送は、相対的に低速のメモリから相対的に高速の物理的なメモリへデータ/情報を転送する以外のタスクを実行するために用いられても良い。1つの例として、異なるメモリモジュールに常駐するデータ/情報が、マスタ機器への連続的なデータ転送を許している単一のメモリモジュールに移動/コピーされても良い。
書込み動作は、例えば、次のようにして生じる。
マスタ機器#0(202)は、書込み指示、書込まれ/格納されるデータ/情報、そして、そのデータ/情報が入力側システムバス#0(304)で書込まれることになるメモリアドレス範囲或いは開始アドレスを発行する。これは、適切な物理的なメモリモジュール(203)(例えば、#N)と対応するメモリバス(209)(例えば、#1)とを決定する接続されたアドレスチャネル回路#0(300)で受信される。書込まれる情報/データは、その時、選択されたメモリバス(209)を介して送信され、物理的なメモリモジュール(203)に書込み/格納される。確認応答が、ポーリングなどにより、例えば、割込み接続(305)を介してマスタ機器#0に信号を発信するアクセスチャネル回路(300)に対して送信されても良い。この書込み過程は、同時に同じ特定の物理的なメモリモジュールにアクセスすることがない限り、他のメモリアクセスと並列的に実行されても良い。もし、そのマスタ機器に接続されたアクセスチャネル回路が、データが格納されることになるメモリモジュールに直接に接続されていないなら、内部バス(306)と(307)と制御構成回路(201)とが、適用可能なメモリモジュール(203)に接続されたアクセスチャネルに要求と情報/データを転送するのに用いられても良い。
単一のアクセスチャネル回路をもつ実施形は、例えば、単一の接続されたメモリアクセス機器/マスタにメモリアクセスを提供し、そのマスタ機器がそのメモリにアクセスしていないときに自動データ転送ユニットとして用いられても良い。
図3は本発明の実施例に従うメモリコントローラにおける単一アクセスチャネル回路の実施例を図式的に示したものである。示されているのは、“ソース宛先セレクタ(303)”、“メモリアクセスコントローラ(301)”、及び“メモリモジュールセレクタ(302)”を有するアクセスチャネル回路(300)の実施例である。特定のアクセスチャネル回路(300)は、特定の論理アクセスチャネルを表現する。この特定の例では、アクセスチャネル回路(300)は番号kであり、システムバス#k(304、308)を介して単一のマスタ機器#k(例えば、図2の(202)を参照)に接続されている。システムバス#k(304、308)は、(アクセスチャネル回路(300)に対して)入力側システムバス(304)と出力側システムバス(308)とを有する。あるいは、いくつかの(1個以上)マスタ機器が、具体的な実装と必要性との内少なくともいずれかに依存して、システムバス#k(304、308)を介し、アクセスチャネル回路(300)に接続されても良い。
ソース宛先セレクタ(303)は入力側システムバス#k(304)を介して接続されたマスタ機器からと、接続(311)を介してメモリアクセスコントローラ(301)からの内、少なくともいずれかからのデータ/情報を受信する。接続(312)を介したメモリアクセスコントローラ(301)からソース宛先セレクタ(303)への制御信号は、ソース宛先セレクタ(303)におけるデータ/情報の経路、即ち、システムバス#k(304)或いはメモリアクセスコントローラ(301)のいずれから提供された情報がメモリバス(209)へと転送されることになるのかを決定する。ソース宛先セレクタ(303)は受信データ/情報或いはその一部を(第1のメモリバスを“0”と指定する場合に用いられる表記では)(M+1)個の接続された物理的なメモリモジュール(例えば、図2の(203)を参照)に(M+1)個のメモリバス(209)を介して送信する。Mの値は、具体的な実施例や実施形に依存して、即ち、何個のメモリバス(209)が特定のアクセスチャネル回路に接続されるのかに依存して、“0”以上であれば良い。単一のメモリバス(209)は好適には、この特定の実施例において、アクセスチャネル回路(300)がアクセスすることが必要な物理的なメモリモジュール各々に対して用いられる。ソース宛先セレクタ(209)はまた、与えられたデータセグメントに対してどの具体的なメモリバス(209)やどの複数のメモリバス(209)がアドレスされるのかを決定する。
メモリアクセスコントローラ(301)はまた、入力側システムバス#k(304)を介して接続されたマスタ機器からのデータ/情報も受信する。加えて、もし適切であるなら、制御及びセットアップ#k接続(307)を介して“制御構成回路(例えば、図2(201)を参照)”からの制御/セットアップ、データ/情報を受信しても良い。メモリアクセスコントローラ(301)はまた、メモリモジュールセレクタ(302)からのデータ/情報の受信のために出力側システムバス#k接続(308)に接続される。このようにして、例えば、メモリアクセスコントローラ(301)は、出力側システムバス#k(308)におけるデータ/情報をバス/接続(311)を介してソース宛先セレクタ(303)に、新しいメモリアドレス、範囲、部分などで書込まれるようにルーティング/送信することができる。このことは、例えば、低速メモリ部から高速メモリ部へのデータ/情報を移動させるのに用いられても良い。例えば、マスタモジュールが相対的に低速の物理的なメモリモジュールから取りだす必要があるときにはむしろ、プリフェッチ動作の一部が所望のデータ/情報を高速の物理的なメモリモジュールにあるようにさせ、これにより、データ転送を高速化し、アドレスチャネル回路(300)の占有時間を削減する。そのプリフェッチ動作は、例えば、接続されたマスタ機器から入力側システムバス#k(304)を介して受信された情報/データについてのパターンマッチングを実行することに基づくか、或いは、制御及びセットアップ#k接続(307)を介して受信した制御構成コマンドなどに基づくかの内、少なくともいずれかに基づいて開始されても良い。メモリアクセスコントローラ(301)はまた、システムバス#kに接続されたマスタ機器にも、接続されたマスタ機器に対して割込みを発行する、例えば、与えられたタスク、処理など(例えば、プリフェッチ動作)がなされたことをシグナリングするために用いられる割込み接続(305)を介して接続される。もし、いくつかのマスタ機器がシステムバス#kに接続されるなら、ただ1つの割込み接続がマスタ機器全てに対して利用可能であることが好適であり、その割込み接続が1つ以上のマスタ機器に接続されていても良い。即ち、その割込み接続は同じシステムバスに接続された各マスタ機器に接続される必要はない。さらに、メモリアクセスコントローラ(301)は、データ/情報と制御信号とを夫々送信するために用いられる接続(311)と接続(312)を介してソース宛先セレクタ(303)に接続される。制御信号(312)は、システムバス#k(304)或いはメモリアクセスコントローラ(301)の内、どちらから選択されるデータ/情報がメモリバス(209)に転送されることになるのかを指定する。即ち、もし、データ/情報がメモリアクセスコントローラ(301)から受信されることになるなら、それは、このことを接続(312)を介してシグナリングする。メモリアクセスコントローラ(301)はまた、制御及びセットアップ#k接続(307)と(306)とを夫々介して、レジスタ、コマンド、構成などのデータ/情報を“(図2の(201)に示されている)制御構成回路”から受信したり、これらを“制御構成回路”に送信しても良い。このようにして、アクセスチャネル回路(300)に関連した特殊用途のレジスタが、(図2(201)に示された)“制御構成回路”により書込み/更新されたり、或いは読み出されたりしても良い。
メモリモジュールセレクタ(302)は、(第1のメモリバスを“0”と指定する場合に用いられる表記では)(N+1)個の接続された物理的なメモリモジュールからメモリモジュール入力接続(210)を介してデータ/情報を受信する。Nの値は、具体的な実施例や実施形に依存して、即ち、何個の物理的なメモリモジュールが特定のアクセスチャネル回路(300)に接続されるのかに依存して、“0”以上であれば良い。メモリモジュールセレクタ(302)はまた、適用可能であるときには、出力側システムバス#k(308)を介して接続されたマスタ機器に対するか、或いは、システムバス(308)を介してメモリアクセスコントローラ(301)に対するか、少なくともいずれかに対して、データ/情報を提供する。
メモリモジュールセレクタ(302)は、特定のメモリモジュールの読出しアクセスの間、どの具体的な物理的なメモリモジュール入力(210)が出力側のシステムバス#k(308)に対して接続されることになるのかを選択することを担当して、メモリアクセスを要求するマスタ機器が適切なメモリモジュールに接続されるようにする。アクセスチャネル回路/チャネル(300)によってアクセスされているメモリモジュールのメモリインタフェースは好適には、その特定のアクセスチャネル回路(300)に、識別コードやアドレスなどのようなユニークな識別子でタグを付けたり、関係させたりなどする。各ユニークな識別子は特定のアクセスチャネル回路(300)を識別する。或いは、他の方式が用いられても良い。その識別コード/アドレスは、その時、物理的なメモリモジュール(203)のメモリインタフェースから、メモリモジュールバス(210)を介して同じメモリモジュール(203)に接続された全てのアドレスチャネルに対して送信される。idコード/アドレスに依存して、正しいアクセスチャネル回路(300)のメモリモジュールセレクタ(303)は適切なメモリモジュールバス(209)を、正しいアクセスチャネル回路(300)における入力側システムバス(304)へと接続する。
ソース宛先セレクタ(303)は、特定のアクセスチャネル回路(300)に接続されたシステムバス(304)か或いはメモリアクセスコントローラ(301)に接続されたバス/接続(311)からいずれかのメモリバス(209)へのアクセスを可能にすることを担当している。ソース宛先セレクタ(303)を通したデータ経路はメモリアクセスコントローラ(301)からの制御信号により決定される。
メモリアクセスコントローラ(301)はシステムバス(304、308、307)を監視する。例えば、与えられたメモリアドレスの形式で、これらのバス(304、308、307)上の情報/データに依存して、対応するメモリバス(209)が、メモリアクセスコントローラ(301)からソース宛先セレクタ(303)への制御信号(312)による出力として選択される。好適には、特定のメモリバス(209)へのバスアドレスのマッピングは、各メモリバス(209)に対する1対のレジスタ(不図示)を通してプログラム可能である。これらのレジスタは、与えられたメモリバス(209)上にマップされることになる特定のアドレス範囲に対する下位アドレスと上位アドレスとを指定する。これにより、与えられたアクセスチャネル回路(300)のメモリアクセスは動作中に動的に変更可能とされるので、メモリコントローラ(200)の柔軟性を高度なものにすることができる。
メモリアクセスコントローラ(301)は、異なる“トリガ”、コード、コマンドなどに基づいて、物理的なメモリ間の自動データ転送/自動プリフェッチ動作を開始させることができる。そのトリガは、接続(307)を介した制御構成回路(図2の201を参照)から受信した直接の命令か、或いは、入力側システムバス(304)(ソース宛先セレクタ回路(303)とメモリアクセスコントローラ(301)とに対する入力バス)上の前もって定義されたアドレスの検出によっても良い。メモリアクセスコントローラ(301)は好適には多数のレジスタを有しており、これらのレジスタを介して、前述のように、1つ以上のアドレスの多数のアドレス領域を構成することが可能になる。例えば、システムバス(304)上の現在のアドレスはこれらのアドレス領域の1つへとマップするなら、メモリアクセスコントローラ(301)は自動メモリアクセスシーケンスを、構成可能な数のサイクル後に開始する。そのサイクル数は、例えば、特殊用途のレジスタにおいて構成されても良い。自動データ転送を発行するマスタ機器は、2つの方法、即ち、前述のように、ポーリングと割込みにより完了が通知される。制御構成回路(図2の201を参照)は、好適には、自動転送が完了し、それからマスタ機器(図2の201)がそのレジスタを読出し、そして、その情報を抽出できるときに、各アクセスチャネルから特殊用途レジスタを介して通知される。そのメモリアクセスコントローラはまた、好適には、例えば、図2と図3において接続305によって示されているように、割込み信号が特定のマスタ機器(図2の202)に直接に接続される自動データ転送の完了時に割り込みを生成するようにセットアップされる。
加えて、アクセスチャネル回路(300)を、例えば、メモリからの大量のデータ/情報の取り出しに対して(2つ以上のチャネル(300)の)チェインで動作可能にさせるすることもでき、各チャネル(300)がそれら自身のシステムバスを介して並列的に情報の一部を取りだすことを担当するようになる。これは、特定のチャネル(300)が同じシステムバスを介して大量の情報を要求している同じマスタ機器に接続されていることを必要とする。これは、各アクセスチャネルの負荷を“分散”し、情報取り出しによって用いられる時間を削減する。これはまた、より少量のデータに対する場合でもある。
もしアクセスチャネル回路(300)が自動データ転送だけのために用いられるなら、内部バス(306)が取り出された情報/データを他のアクセスチャネル回路(300)と制御構成回路との内少なくともいずれかに対して提供するために用いられても良いので、システムバス(304、308)に対して接続される必要はない(しかし、接続されても良い)。他のアクセスチャネル回路(300)はその時、内部バス(307)を介して情報を受信することができる。
次に、アクセスチャネル回路(300)における情報/データの流れの2、3の例が与えられて、この特定の実施例において、その回路がどのように作用するのかについてもっと良く説明する。
メモリ範囲は個々のアクセスチャネルと制御構成ブロックのセットアップ及び構成期間の間に(ソフトウェアを介して)マップされる。そのマッピングは、各アクセスチャネルが、異なる実施形に対しては変化することもある物理的なメモリモジュールに対してどのように接続されるのかに依存している。最も柔軟性のある実施形は全てのアクセスチャネルを全ての物理的なメモリモジュールに接続することである。
読出し過程は、例えば、次のようにして生じる。
与えられたメモリ範囲/アドレスと、例えば、メモリ範囲或いは開始アドレスとオフセットの内容の取り出し/読出しのための指示、コマンド、特定のパターンなどが入力側システムバス#k(304)で受信され、これにより、メモリアクセスコントローラ(301)とソース宛先セレクタ(303)により受信される。メモリアクセスコントローラ(301)ではその指示とメモリ範囲との内少なくともいずれかを解釈して、メモリアクセスのタイプと、アクセスチャネル回路(300)がそれ自身による要求を処理することができるかどうか、即ち、アクセスチャネル回路(300)がその情報を有する特定の物理的なメモリモジュール(203)に接続されているかどうかを決定する。もし、アクセスチャネル回路(300)が、その要求を扱うことができるなら、制御信号(312)が、(メモリアクセスコントローラ(301)ではなく)システムバス#k(304)から提供された情報がメモリバス(209)に転送されることを決定するソース宛先セレクタ(303)に発行される。それから、ソース宛先セレクタ(303)は、特定のメモリモジュール(203)に関係する要求されたメモリ範囲/アドレスとメモリバス(209)に対応する/を有する物理的なメモリモジュール(203)を決定し、選択されたメモリバス(209)(例えば、メモリバス#2)を介して適切なメモリモジュール(203)(例えば、メモリモジュール#2)に指示を送信する。そのメモリモジュールは要求されたメモリ範囲に格納されたデータ/情報をメモリモジュールセレクタ(302)へのメモリモジュール接続(210)(例えば、接続#2)を介してアクセスチャネル回路#0(300)に返す。メモリモジュールセレクタ(302)は、どのメモリモジュール入力が出力側のシステムバス#k(308)に接続されることになるのかを選択する。好ましくは、アクセスチャネル回路(300)によりアクセスされるメモリモジュールのメモリインタフェースはその特定のアクセスチャネル回路(300)に、同じメモリモジュールバス(210)に接続される全てのアクセスチャネル回路(300)に送信されるユニークな識別子(例えば、コード、アドレスなど)でタグを付ける。このユニークな識別子に基づいて、メモリモジュールセレクタ(302)は正しいアクセスチャネル回路(302)における正しいメモリモジュールバス(210)をその出力側システムバス#k(308)に接続して、取出される/読出される情報が接続されたマスタ機器に対して利用可能となる。
もし、アクセスチャネル回路#k(300)が要求された情報/データを有するメモリモジュール(203)に接続されないなら、内部バス(306)と(307)と制御構成回路(201)とは適用可能なメモリモジュール(203)に接続されたアクセスチャネル回路(300)への要求を転送するために用いられる。情報/データは同じようにしてアクセスチャネル回路(300)#kに送信される。しかしながら、各アクセスチャネル回路(300)は好適には物理的なメモリモジュール各々(203)に接続される。この読出し過程は、複数のマスタ機器が同時に同じ特定の物理的なメモリモジュールにアクセスしない限り、そのメモリをアクセスする他のマスタ機器と並列的になされても良い。
書込み動作は、例えば、次のようにして生じる。
書込み指示、コマンド、特定のパターンなどと、与えられたメモリ範囲/アドレスに書込まれることになるデータ/情報が、メモリアクセスコントローラ(301)とソース宛先セレクタ(303)により入力側システムバス#k(304)で受信される。メモリアクセスコントローラ(301)は、その指示とメモリ範囲との内少なくともいずれかを解釈して、メモリアクセスのタイプと、アクセスチャネル回路(300)がそれ自身による要求を処理することができるかどうか、即ち、アクセスチャネル回路(300)が書込まれる特定の物理的なメモリモジュール(203)に接続されているかどうかを決定する。もし、アクセスチャネル回路(300)が、その要求を扱うことができるなら、制御信号(312)が、(メモリアクセスコントローラ(301)ではなく)システムバス#k(304)から提供された情報がメモリバス(209)に転送されることを決定するソース宛先セレクタ(303)に発行される。それから、ソース宛先セレクタ(303)は、特定のメモリモジュール(203)に関係する要求されたメモリ範囲/アドレスとメモリバス(209)に対応する/を有する物理的なメモリモジュール(203)を決定し、選択されたメモリバス(209)(例えば、メモリバス#2)を介して適切なメモリモジュール(203)(例えば、メモリモジュール#2)に対して書込み指示と書込まれる内容とを送信する。
その情報がメモリモジュール(203)に格納された後、確認応答が、ポーリングなどにより、例えば、割込み接続(305)を介してマスタ機器#0に信号を発信するアクセスチャネル回路(300)に対して送信されても良い。この書込み過程は、同時に同じ特定の物理的なメモリモジュールにアクセスすることがない限り、他のメモリアクセスと並列的に実行されても良い。もし、そのマスタ機器に接続されたアクセスチャネル回路が、データが格納されることになるメモリモジュールに直接に接続されていないなら、内部バス(306)と(307)と制御構成回路(201)とが、適用可能なメモリモジュール(203)に接続されたアクセスチャネルに要求と情報/データを転送するのに用いられても良い。
プリフェッチ/自動データ転送過程は、例えば、次のようにして生じる。
与えられたソース側のメモリ範囲/アドレスから与えられた対象側のメモリ範囲/アドレスに移動される内容の取り出し/読出しのためのプリフェッチ/自動データ転送指示、コマンド、特定のパターンなどが入力側システムバス#k(304)で受信され、これにより、メモリアクセスコントローラ(301)とソース宛先セレクタ(303)により受信される。メモリアクセスコントローラ(301)ではその指示とメモリ範囲との内少なくともいずれかを解釈して、メモリアクセスのタイプと、アクセスチャネル回路(300)がそれ自身による要求を処理することができるかどうか、即ち、アクセスチャネル回路(300)がコピー/移動されることになる情報を有する特定の物理的なメモリモジュール(203)に接続されているかどうかを決定する。もし、アクセスチャネル回路(300)が、その要求を扱うことができるなら、その情報/データは読出し過程に関連して上述した方法で取り出される。
コピー/移動されることになるデータ/情報がメモリモジュール接続(210)を介して出力側システムバス#k(308)で提供されるとき、メモリアクセスコントローラ(301)はこのデータ/情報を直接に出力側システムバス#k(308)への接続を介して直接に取り出し、これを接続(311)上の情報/データが特定の対象アドレス/メモリ範囲に書込まれることを指定する制御信号(312)とともに、接続(311)を介して、ソース宛先セレクタ(303)に提供する。情報/データの書込みは、書込み過程に関連して上述したように実行される。
その情報/データが対象となるメモリに移動/コピーされた後、割込みがメモリアクセスコントローラ(301)により、割込み接続(305)を介してマスタ機器に対して発行されても良い。そのマスタ機器は、その時、相対的に高速のメモリから情報/データの転送を開始する。
もし、アクセスチャネル回路#k(300)が、ソースと対象となるメモリモジュール(203)との内少なくともいずれかに接続されていないなら、内部バス(306)と(307)と制御構成回路(201)とが、適用可能なメモリモジュール(203)に接続されたアクセスチャネル回路(300)への要求を転送するのに用いられても良い。その情報/データは同じ方法でアクセスチャネル回路(300)#kに送信される。しかしながら、各アクセスチャネル回路(300)は好適には各物理的なメモリモジュール(203)に接続される。
さらに、付加的なアクセスチャネル(1つ以上)が、自動データ転送/プリフェッチを実行するときに、リンク/チェインされても良い。このようにして、各アクセスチャネルは完全な内容の一部を取り出したり格納したりすることを担当する。これにより、特定のアクセスチャネル上にマップされた相対的に大きなメモリトランザクションが、多数の、しかしより小さなトランザクションへと分割され、これによりアクセスチャネルが占有される時間を短縮すると良い。
なお、自動データ転送の一部として用いられる他のアクセスチャネルは、マスタ機器に接続されないか(さもなければ、図面上に示されているように)、或いは、自動データ転送の間、アイドル上にあることを要求している。
図4a〜4cはアクセスチャネル回路の構成の異なる実施例を図示したものである。これらの例においては、ただ2つのメモリモジュール(203)と2つのアクセスチャネル回路(300)だけが示されている。2つのアクセスチャネル回路(300)が、2つのメモリモジュール接続#0と#1(210)を介して2つのメモリモジュール(203)に接続されている。
図4aは、各メモリモジュール(203)が同じメモリバス(209)(メモリバス#0)に接続される以外は図2に示した構成に対応している。これにより、設計の複雑さが少なくなる、しかしながら、メモリアクセス時におけるマスタ機器#kと#n(202)との間の競合の危険性は、マスタ機器(202)が非常に頻繁に或いは必ず同時にアクセスする必要があったりするなら大きくなる。マスタ機器(202)がそのメモリに同時に決して或いはほとんどアクセスしないなら、競合の危険性を著しく増し加えることなく複雑度をさらに少なくすることは、例えば、第2のアクセスチャネル回路#n(300)をもたないこと(即ち、メモリバス#0のみを用いること)であるかもしれない。しかしながら、第2のアクセスチャネル回路#n(300)は自動データ転送などに用いられる。
図4bには、複数のアクセスチャネル回路(300)の1つだけが自動データ転送エンジン(アクセスチャネル#n)として機能する構成が示されている。この例は、複数の転送エンジンが共にチェインとなった例を示している。即ち、アクセスチャネル回路#kと#n(300)が同じシステムバス#1(304;308)に接続されている。アクセスチャネル回路#n(300)はまたシステムバス#1(304;308)にも接続されているので、データ転送が直接にマスタ機器#k(202)に対して可能である。さもなければ、それはただ内部メモリコピー(例えば、低速メモリから高速メモリへ)に対してのみ用いられる。
図4cには、2つのマスタ機器(202)が同じシステムバス(308)(システムバス#1)を介して接続され、1つのアクセスチャネル回路#k(300)が単一のメモリバス#0(209)を介して接続される一方、他方のアクセスチャネル回路#n(300)が2つのメモリバス#0と#1(209)各々により特定のメモリモジュール#0或いは#1(203)に夫々接続されている構成が示されている。このようにして、1つのメモリバス(#0)(209)が、複数のアクセスチャネル回路(300)間で共用される。加えて、接続されたマスタ機器#kと#n(202)が同じシステムバス#1(304;308)にも接続されて/共用している。
図5は本発明の好適な実施例を図示したものであり、メモリコントローラを含むか、本発明に従う方法を使用するかの内、少なくともいずれかであれば良い。示されているものは、ディスプレイ(504)、キーパッド、タッチパッド、タッチ型スクリーンなどような入力手段(505)、無線通信トランシーバ(502)、マイクロフォンなどのような音声捕捉ユニット(506)、スピーカなどのような音声生成ユニット(503)などを有する移動体電話、スマート電話、PDAなどのような移動体通信端末(501)である。前記メモリコントローラと前記方法との内、少なくともいずれかを含むことにより、効率的で非常に柔軟なメモリアクセスが提供される。加えて、本発明で備えられたスケーラビリティにより、メモリアクセスのメモリコントローラ/方法の特定の実施例が適切なニーズ(速度、柔軟性など)に対して調整可能となる。さらに、メモリアクセス機器間の競合の危険性を少なくしたりその危険性をなくしたりすることが可能になる。しかしながら、一般には、本発明はメモリアクセスが用いられるASIC、FPGA、PLD、その他のデジタル回路に関連して利用可能であり、これらのメモリアクセスを改善/最適化する。
本発明を図式的に表現した図である。 本発明に従う実施例をより詳細に図式的に表現した図である。 本発明の実施例に従うメモリコントローラの単一のアクセスチャネル回路の実施例を図式的に示す図である。 アクセスチャネル回路の構成の異なる実施例を示した図である。 本発明に従うメモリコントローラを含むか、本発明に従う方法を用いるかの内少なくともいずれかである、本発明の好適な実施例を示す図である。

Claims (23)

  1. メモリアクセスの効率的で柔軟な制御のための電子機器(200)であって、
    前記機器(200)は、
    少なくとも1つのメモリアクセスユニット(202)に接続され、
    少なくとも1つの物理的なメモリモジュール(203)を有するメモリ(100)に接続されており、
    前記機器(200)は、
    少なくとも2つのアクセスチャネル回路(300)と、
    前記少なくとも2つのアクセスチャネル回路(300)を動的に制御する制御構成回路(201)とを有し、
    前記制御構成回路(201)はさらなるアクセスチャネル回路(300)の簡単な追加実装を可能にし、
    少なくとも1つのアクセスチャネル回路(300)は、少なくとも1つのシステムバス(304;308)を介して前記少なくとも1つのメモリアクセスユニット(202)と、前記少なくとも1つの物理的なメモリモジュール(203)とに接続され、
    前記少なくとも1つのアクセスチャネル回路(300)は、前記メモリ(100)の少なくとも一部への前記少なくとも1つのメモリアクセスユニット(202)によるメモリアクセスを提供することを特徴とする電子機器。
  2. 前記少なくとも2つのアクセスチャネル回路(300)夫々は、前記メモリ(100)の少なくとも一部への少なくとも1つのメモリアクセスユニット(202)によるメモリアクセスを提供し、これにより、異なるアクセスチャネル回路(300)に接続されたメモリアクセスユニット(202)が、前記メモリ(100)の異なる部分に対して、独立に、そして同時/並列的なアクセスを可能にすることを特徴とする請求項1に記載の電子機器。
  3. 前記機器は、少なくとも2つのアクセスチャネル回路(300)を有し、該回路各々は単一のシステムバス(304、308)を介して単一のメモリアクセスユニット(202)に接続され、該回路各々は前記メモリ(100)の少なくとも一部からの情報/データを受信するために接続されている(210)ことを特徴とする請求項1又は2に記載の電子機器。
  4. 前記機器(200)は、単一のシステムバス(304、308)を介して少なくとも2つのメモリアクセスユニット(202)に接続された1つのアクセスチャネル回路(300)を有し、
    前記1つのアクセスチャネル回路(300)は、前記メモリ(100)の少なくとも一部からデータ/情報を受信することと、前記メモリ(100)の少なくとも一部に対してデータ/情報を送信することとの少なくともいずれかのために接続されている(210)ことを特徴とする請求項1乃至3のいずれか1項に記載の電子機器。
  5. アクセスチャネル回路(300)はさらに、メモリアクセスユニット(202)が前記データ/情報を取り出すのに先立ち、前記メモリ(100)の第1の物理的メモリモジュール(203)から前記メモリ(100)の第2の物理的メモリモジュール(203)へデータ/情報を転送する自動データ転送エンジン(301)を有することを特徴とする請求項1乃至4のいずれか1項に記載の電子機器。
  6. 複数のアクセスチャネル回路(300)の自動データ転送エンジンは、自動データ転送エンジンのチェインを形成するように接続されており、
    各データ転送エンジン(301)は前記データ/情報の異なる部分の転送を担当することを特徴とする請求項に記載の電子機器。
  7. 前記少なくとも1つのアクセスチャネル回路(300)は、少なくとも1つの特別な目的のレジスタを有し、前記制御構成回路(201)に接続されており(307)、
    前記制御構成回路(201)は前記少なくとも1つの特別な目的のレジスタの内容を変更するために適合されており、これにより、動作中に他のアクセスチャネル(300)に影響を与えることなく、個々のアクセスチャネル回路(300)の再構成を可能にしていることを特徴とする請求項1乃至6のいずれか1項に記載の電子機器。
  8. 前記再構成は、前記メモリ(100)の機能モードと少なくとも1つのアクセス領域との内の少なくともいずれかを構成することを含むことを特徴とする請求項に記載の電子機器。
  9. 前記機器(200)は接続されたメモリアクセスユニット(202)各々ための1つのアクセスチャネル回路(300)を有し、
    各アクセスチャネル回路(300)は前記メモリ(100)の各メモリモジュール(203)に接続されていることを特徴とする請求項1乃至8のいずれか1項に記載の電子機器。
  10. アクセスチャネル回路(300)は、
    メモリアクセスユニット(202)に接続された入力側のシステムバス(304)とメモリアクセスユニットに接続された出力側のシステムバス(308)とを、接続されることになる与えられたメモリバス(209)を表現する第1の識別子のために監視するために適合され、前記第1の識別子に基づいて、前記与えられたメモリバス(209)と前記与えられたメモリバス(209)がどこに接続されるのかを表現する第1の制御信号/コードを提供するメモリアクセスコントローラ(301)と、
    前記メモリ(100)のメモリモジュール(203)に接続されたメモリバス(209)へ、前記入力側システムバス(304)或いは前記メモリアクセスコントローラ(301)からのアクセスを、前記メモリアクセスコントローラ(301)から受信した前記第1の制御信号/コードに依存して可能にするソース及び宛先セレクタ(303)と、
    第2のユニークな識別子に依存して、特定のメモリモジュール(203)の与えられた読出しアクセスの間に、どのメモリモジュール(203)が前記メモリアクセスユニット(202)に接続された出力側システムバス(308)に接続されることになるのかを選択するメモリモジュールセレクタ(302)とを有することを特徴とする請求項1乃至9のいずれか1項に記載の電子機器。
  11. 少なくとも1つのメモリアクセスユニット(202)と少なくとも1つの物理的なメモリモジュール(203)を有するメモリ(100)との間のメモリアクセスの効率的で柔軟な制御のための方法であって、
    前記方法は、
    少なくとも2つのアクセスチャネル回路(300)の少なくとも1つにより、前記メモリ(100)の少なくとも一部への前記少なくとも1つのメモリアクセスユニット(202)によるメモリアクセスを提供する工程と、
    制御構成回路(201)により前記少なくとも2つのアクセスチャネル回路(300)を動的に制御する工程とを有し、
    前記制御構成回路(201)はさらなるアクセスチャネル回路(300)の簡単な追加実装を可能にし、
    前記少なくとも1つのアクセスチャネル回路(300)は、少なくとも1つのシステムバス(304;308)を介して前記少なくとも1つのメモリアクセスユニット(202)と、前記少なくとも1つの物理的なメモリモジュール(203)とに接続されることを特徴とする方法。
  12. 前記少なくとも2つのアクセスチャネル回路(300)を介して、前記メモリ(100)の少なくとも一部への少なくとも2つのメモリアクセスユニット(202)による同時的なメモリアクセスを提供する工程をさらに有し、
    各アクセスチャネルが、前記メモリ(100)の異なる部分に対する独立のアクセスを提供し、
    これにより、異なるアクセスチャネル回路(300)に接続されたメモリアクセスユニット(202)が、前記メモリ(100)の異なった部分への並列的なアクセスを可能にすることを特徴とする請求項11に記載の方法。
  13. 少なくとも2つのアクセスチャネル回路(300)による前記メモリ(100)の少なくとも一部からのメモリアクセスを提供する工程をさらに有し、
    前記少なくとも2つのアクセスチャネル回路各々は単一のシステムバス(304、308)を介して単一のメモリアクセスユニット(202)に接続され、前記メモリ(100)の少なくとも一部からの情報/データを受信するために接続されている(210)ことを特徴とする請求項11又は12に記載の方法。
  14. 単一のシステムバス(304、308)を介して少なくとも2つのメモリアクセスユニット(202)に接続された単一のアクセスチャネル回路(300)により、前記メモリ(100)の少なくとも一部から前記少なくとも2つのメモリアクセスユニット(202)へのメモリアクセスを提供する工程をさらに有し、
    前記単一のアクセスチャネル回路(300)は、前記メモリ(100)の少なくとも一部からデータ/情報を受信することと、前記メモリ(100)の少なくとも一部に対してデータ/情報を送信することとの内少なくともいずれかのために接続されている(210)ことを特徴とする請求項11乃至13のいずれか1項に記載の方法。
  15. メモリアクセスユニット(202)が前記データ/情報を取り出すのに先立ち、前記メモリ(100)の第1の物理的メモリモジュール(203)から前記メモリ(100)の第2の物理的メモリモジュール(203)へデータ/情報を転送する自動データ転送エンジン(301)を有するアクセスチャネル回路(300)によりデータ/情報の自動データ転送を提供する工程をさらに有することを特徴とする請求項11乃至14のいずれか1項に記載の方法。
  16. データ/情報の自動データ転送を提供する工程をさらに有し、
    複数のアクセスチャネル回路(300)の複数の自動データ転送エンジン(301)は、自動データ転送エンジンのチェインを形成するように接続されており、
    各データ転送エンジン(301)は前記データ/情報の異なる部分の転送を担当することを特徴とする請求項15に記載の方法。
  17. 前記制御構成回路(201)により、前記制御構成回路(201)に接続された(307)少なくとも1つのアクセスチャネル回路(300)に含まれた少なくとも1つの特別な目的のレジスタの内容を変更し、これにより、動作中に他のアクセスチャネル(300)に影響を与えることなく、個々のアクセスチャネル回路(300)の再構成を可能にしていることを特徴とする請求項11乃至16のいずれか1項に記載の方法。
  18. 前記再構成は、前記メモリ(100)の機能モードと少なくとも1つのアクセス領域との内の少なくともいずれかを構成することを含むことを特徴とする請求項17に記載の方法。
  19. メモリアクセスは、接続されたメモリアクセスユニット(202)各々ための1つのアクセスチャネル回路(300)により備えられ、
    各アクセスチャネル回路(300)は前記メモリ(100)の各メモリモジュール(203)に接続されていることを特徴とする請求項11乃至18のいずれか1項に記載の方法。
  20. アクセスチャネル回路(300)に含まれるメモリアクセスコントローラ(301)により、メモリアクセスユニット(202)に接続された入力側のシステムバス(304)とメモリアクセスユニットに接続された出力側のシステムバス(308)とを、接続されることになる与えられたメモリバス(209)を表現する第1の識別子のために監視する工程と、
    前記メモリアクセスコントローラ(301)により、前記第1の識別子に基づいて、前記与えられたメモリバス(209)と前記与えられたメモリバス(209)がどこに接続されるのかを表現する第1の制御信号/コードを提供する工程と、
    ソース及び宛先セレクタ(303)による、前記メモリ(100)のメモリモジュール(203)に接続されたメモリバス(209)へ、前記入力側システムバス(304)或いは前記メモリアクセスコントローラ(301)からのアクセスを、前記メモリアクセスコントローラ(301)から受信した前記第1の制御信号/コードに依存して可能にする工程と、
    メモリモジュールセレクタ(302)により、第2のユニークな識別子に依存して、特定のメモリモジュール(203)の与えられた読出しアクセスの間に、どのメモリモジュール(203)が前記メモリアクセスユニット(202)に接続された出力側システムバス(308)に接続されることになるのかを選択する工程とをさらに有することを特徴とする請求項11乃至19のいずれか1項に記載の方法。
  21. 請求項1乃至10のいずれか1項に記載の電子機器(200)を用いたことを特徴とする移動体通信端末(501)。
  22. 請求項11乃至20のいずれか1項に記載の方法を用いたことを特徴とする移動体通信端末(501)。
  23. 請求項11乃至20のいずれか1項に記載の方法を処理装置に実行させる命令が格納されたコンピュータ可読媒体。
JP2005509663A 2002-09-30 2003-09-19 スケーラブル・マルチチャネル・メモリアクセスのための方法、及びメモリコントローラ Expired - Fee Related JP4459903B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20020388067 EP1403772A1 (en) 2002-09-30 2002-09-30 Method and memory controller for scalable multi-channel memory access
US41598002P 2002-10-03 2002-10-03
PCT/EP2003/010509 WO2004029816A2 (en) 2002-09-30 2003-09-19 Method and memory controller for scalable multi-channel memory access

Publications (2)

Publication Number Publication Date
JP2006501586A JP2006501586A (ja) 2006-01-12
JP4459903B2 true JP4459903B2 (ja) 2010-04-28

Family

ID=32044350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005509663A Expired - Fee Related JP4459903B2 (ja) 2002-09-30 2003-09-19 スケーラブル・マルチチャネル・メモリアクセスのための方法、及びメモリコントローラ

Country Status (5)

Country Link
US (1) US7231484B2 (ja)
JP (1) JP4459903B2 (ja)
KR (1) KR101051506B1 (ja)
AU (1) AU2003271629A1 (ja)
WO (1) WO2004029816A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606236B2 (en) * 2004-05-21 2009-10-20 Intel Corporation Forwarding information base lookup method
WO2006132006A1 (ja) * 2005-06-09 2006-12-14 Matsushita Electric Industrial Co., Ltd. メモリ制御装置及びメモリ制御方法
US7912994B2 (en) * 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US8185711B2 (en) * 2006-05-16 2012-05-22 Samsung Electronics Co., Ltd. Memory module, a memory system including a memory controller and a memory module and methods thereof
KR100834570B1 (ko) * 2006-06-23 2008-06-02 한국전자통신연구원 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치
US7606961B2 (en) * 2006-06-28 2009-10-20 Kabushiki Kaisha Toshiba Computer system and data pre-fetching method
US20080123305A1 (en) * 2006-11-28 2008-05-29 Smart Modular Technologies, Inc. Multi-channel memory modules for computing devices
US8706987B1 (en) * 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8289966B1 (en) 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US8145869B2 (en) * 2007-01-12 2012-03-27 Broadbus Technologies, Inc. Data access and multi-chip controller
KR100842403B1 (ko) * 2007-03-08 2008-07-01 삼성전자주식회사 메모리 모듈 및 메모리 모듈 시스템
US9032113B2 (en) * 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US20100058016A1 (en) * 2008-08-26 2010-03-04 Jari Nikara Method, apparatus and software product for multi-channel memory sandbox
US20100058025A1 (en) * 2008-08-26 2010-03-04 Kimmo Kuusilinna Method, apparatus and software product for distributed address-channel calculator for multi-channel memory
US8914589B2 (en) * 2008-09-22 2014-12-16 Infineon Technologies Ag Multi-port DRAM architecture for accessing different memory partitions
KR101035732B1 (ko) * 2008-10-07 2011-05-19 주식회사 칩스앤미디어 메모리 액세스 인터페이스의 변환 방법 및 장치
US8254199B1 (en) 2009-12-29 2012-08-28 Micron Technology, Inc. Multi-channel memory and power supply-driven channel selection
US8943224B2 (en) * 2010-03-15 2015-01-27 Rambus Inc. Chip selection in a symmetric interconnection topology
WO2011132310A1 (ja) * 2010-04-23 2011-10-27 株式会社日立製作所 情報処理装置、及び、半導体記憶装置
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US10838886B2 (en) 2011-04-19 2020-11-17 Micron Technology, Inc. Channel depth adjustment in memory systems
CN102567245B (zh) * 2011-12-27 2014-10-01 深圳国微技术有限公司 用于soc芯片系统的存储控制器及其实现方法
RU2517411C1 (ru) * 2012-10-24 2014-05-27 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ управления соединениями в межсетевом экране
US10067905B2 (en) * 2015-05-26 2018-09-04 Plasmability, Llc Digital interface for manufacturing equipment
US10168923B2 (en) 2016-04-26 2019-01-01 International Business Machines Corporation Coherency management for volatile and non-volatile memory in a through-silicon via (TSV) module
CN115794692A (zh) * 2021-09-09 2023-03-14 瑞昱半导体股份有限公司 存取内存的电子装置及数据写入方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59142655A (ja) 1983-02-03 1984-08-15 Nec Corp 同時アクセス可能なメモリ制御方式
US5202973A (en) * 1990-06-29 1993-04-13 Digital Equipment Corporation Method of controlling a shared memory bus in a multiprocessor system for preventing bus collisions and for ensuring a full bus
US5761455A (en) 1995-02-06 1998-06-02 Cpu Technology, Inc. Dynamic bus reconfiguration logic
US5878240A (en) * 1995-05-11 1999-03-02 Lucent Technologies, Inc. System and method for providing high speed memory access in a multiprocessor, multimemory environment
US6167486A (en) 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
US6038630A (en) * 1998-03-24 2000-03-14 International Business Machines Corporation Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses
US6378049B1 (en) * 1998-11-16 2002-04-23 Infineon Technologies A.G. Universal memory controller
JP4417377B2 (ja) * 2004-02-24 2010-02-17 信越ポリマー株式会社 電磁波ノイズ抑制体、電磁波ノイズ抑制機能付構造体、およびそれらの製造方法

Also Published As

Publication number Publication date
US7231484B2 (en) 2007-06-12
KR101051506B1 (ko) 2011-07-22
AU2003271629A1 (en) 2004-04-19
US20060129767A1 (en) 2006-06-15
WO2004029816A3 (en) 2004-08-12
WO2004029816A2 (en) 2004-04-08
KR20050051672A (ko) 2005-06-01
JP2006501586A (ja) 2006-01-12

Similar Documents

Publication Publication Date Title
JP4459903B2 (ja) スケーラブル・マルチチャネル・メモリアクセスのための方法、及びメモリコントローラ
US10203878B2 (en) Near memory accelerator
JP7074831B2 (ja) ネットワークオンチップによるデータ処理方法及び装置
JPH10187533A (ja) キャッシュシステム、プロセッサ及びプロセッサを動作させる方法
WO2003007155A1 (fr) Dispositif a circuit integre
CN1399743A (zh) 高速缓存系统和数字信号处理器结构
JP4368795B2 (ja) プロセッサ間で通信を行うための改良プロセッサ間通信システム
KR20110122516A (ko) 인터커넥트, 그것을 포함하는 버스 시스템 그리고 버스 시스템의 동작 방법
US6694385B1 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
JP5158091B2 (ja) 自律または共通制御されるpeアレイを有するシステムのためのデータ転送ネットワークおよび制御装置
KR20010014592A (ko) 파이프라인 메모리 시스템의 다중 목적에 대한 다중 요구지원
US7774529B2 (en) Bus communication apparatus that uses shared memory
WO2014206229A1 (zh) 一种加速器以及数据处理方法
JP2010152585A (ja) 複数バスを有するシステムlsi
TWI324755B (en) Processing modules with multilevel cache architecture
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
US7200703B2 (en) Configurable components for embedded system design
EP1403772A1 (en) Method and memory controller for scalable multi-channel memory access
JP2006202271A (ja) ストリームプロセッサ及び情報処理装置
JP2002140284A (ja) マイクロコントローラ
JP2007004338A (ja) データ処理装置
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JPWO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
JP4684577B2 (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
WO2001088725A2 (en) Shared bus interface for digital signal processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees