JP2004318755A - メモリインタフェースおよびこれを有する装置 - Google Patents

メモリインタフェースおよびこれを有する装置 Download PDF

Info

Publication number
JP2004318755A
JP2004318755A JP2003115336A JP2003115336A JP2004318755A JP 2004318755 A JP2004318755 A JP 2004318755A JP 2003115336 A JP2003115336 A JP 2003115336A JP 2003115336 A JP2003115336 A JP 2003115336A JP 2004318755 A JP2004318755 A JP 2004318755A
Authority
JP
Japan
Prior art keywords
memory
data
client
transaction
length
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.)
Pending
Application number
JP2003115336A
Other languages
English (en)
Inventor
Samwald Chris
サムワルド クリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003115336A priority Critical patent/JP2004318755A/ja
Publication of JP2004318755A publication Critical patent/JP2004318755A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】SOCなどの電子システムにおいて、複数のクライアントシステムが同一のメモリ装置を共用し、このメモリ装置へのアクセスはメモリバスプロトコールの制限事項に影響され、メモリバスプロトコールが変更されれば、各クライアントシステムに変更を加える必要があり、好ましくない経費が発生する。
【解決手段】メモリアクセスコントローラ5と少なくともひとつのメモリ装置6とを含むメモリ部に接続されたクライアントシステム1を有する電子システム。クライントシステム及びメモリ部はメモリ書込みバス及びメモリ読み込みバス。メモリ装置6と、メモリアクセスプロトコールに依存しないトランザクション長を有するクライアントシステムとの間のデータトランザクションのためにメモリバスが提供され、すなわち、メモリバスインタフェースは、トランザクションを、最大パケット長を超えないトランザクション長を有する複数の副トランザクションに分割するトランザクション長変換部736、746を具備する。
【選択図】 図1

Description

【0001】
【発明が属する技術分野】
本発明は、データ転送チャネルから強いられる制限に依存しないクライアントシステムとメモリとの間のデータトランザクションのプロセスを含む電子装置に関する。より具体的には、本発明は、を利用する方法および電子装置に関し、かかる電子機器は、データトランザクションのトランザクション量または長さが、所定の制限を超える場合には、電子システムでの機能部分とメモリ部との間のデータトランザクションを、所定の量または長さの副トランザクションに分割することが可能なメモリアクセスインタフェースを含む電子デバイスを使用する方法及び電子装置に関する。
【0002】
【従来の技術】
いわゆるシステムオンチップ(SOC)のような電子システムでは、複数の機能部が、メモリ資源を共用している場合がある。このような電子システムは、複数の機能部(以下、クライアントシステムと称する)を有しており、この複数の機能部は、メモリアクセスコントローラと、少なくとも1つのメモリ装置とを有する単一のメモリ副システム(以下、メモリシステムと称する)に接続されている。クライアントシステムおよびメモリ副システムは、データトランザクション、即ちデータの書き込みおよび/または読み込み用のチャネルを構成する配線を共用している。この配線は、メモリバスと称することにするが、物理的に分離された書き込み配線および読み込み配線を有していてもよい。このような配線は、それぞれ、書き込みバスおよび読み込みバスと称してもよい。したがって、書き込み動作とは、クライアントシステムが、書き込みバスを介して、システムのメモリ装置に、データを書き込む動作のことを意味する。この場合、メモリ装置にデータを書き込むときは、このような書き込みバスを介して、データが書き込まれるので、書き込みバスは、クライアントシステムが、読み込みバスを介して、メモリ装置からデータを読み、読み込み動作を構成する読み込みバスとは異なる。一方、各クライアントシステムは、クライアントシステムとメモリバスとの間の通信を仲介するメモリバスインタフェースを有してもよい。
【0003】
メモリバスインタフェースの構成例を、図2および図3に示す。図2は、メモリバスインタフェース書き込みモジュール71を示し、図3は、メモリバスインタフェース読み込みモジュール72を示す。図2のメモリバスインタフェース書き込みモジュール71は、書き込みバッファ710を含み、この書き込みバッファ710は、書き込みFIFO(先入れ先出し)バッファおよびインタフェースタイミングジェネレータ712の観点から説明されるインタフェースタイミング生成の特徴を有していてもよい。一方、図3のメモリバスインタフェース読み込みモジュールは、書き込みバッファ720と読み込みデータバッファ722を有しており、これらは、書き込みFIFO(先入れ先出し)バッファおよびインタフェースタイミングジェネレータ724の観点から説明されるインタフェースタイミング生成の特徴を有してもよい。
【0004】
メモリ部へのデータ書き込みおよび/またはメモリからの読み込み動作は、電子信号対応コマンドの転送および/または上述のメモリバスインタフェースおよびメモリバスを経由するデータの転送を発生させるが、これは、「メモリトランザクション」または単に「トランザクション」と称する。
【0005】
クライアントシステム側のトランザクションは、結果的にメモリバスでのトランザクションとなり、メモリバスでのトランザクションは、メモリバスプロトコールの決定および設定によって行なわれる。このようなプロトコールを得ると、クライアントシステムから、メモリバスを介して、転送されたコマンドおよび/またはデータに対応する電子信号は、電子システムで所定の動作を行うことを意図しているとメモリ部側で解釈される。同様に、メモリバスを介してメモリ部から転送されたデータは、所定のメモリバスプロトコールがある限り、クライアントシステムにデータとして解釈される。
【0006】
メモリバスが1つのトランザクションで運ぶデータ量は、以下、トランザクション長と称する。一方、メモリバスプロトコールの特性として決定される制限パラメータを有しており、データ転送の1単位で運ぶことができるデータの最大量について、上限を定める。説明の簡便にするために、メモリバス中のデータ転送単位は、「パケット」と称し、その制限的パラメータは、「パケット長」と称し、且つ、データ転送の1単位について、メモリバスプロトコールの許容可能な最大容量として決定されたメモリバスを介して運ぶことができるデータの最大量は、「最大パケット長」と称する。また、メモリバスは、「スイッチファブリック」と称してもよいし、メモリバスプロトコールは、「スイッチファブリックプロトコール」と称する場合もある。
【0007】
SOC装置に関連するメモリトランザクションの制御用メモリ管理システムに関する先行技術が、例えば、国際公開WO01/37088 A2に開示されている。このようなメモリ管理システムは、通信コア(クライアントシステム)間のデータストリームを切り替えるために使用されるルーチンコントローラまたは中央処理装置およびシステムバス上に在る主または仮想中央演算処理部上のデジタル信号処理器を有する。
【0008】
【発明が解決しようとする課題】
システムオンチップ(SOC)のような電子装置または電子システムを設計する場合、メモリアクセスの待ち時間とメモリアクセス効率との間には、トレードオフ(trade off)の関係が存在する。典型的に、ひとつのメモリバストランザクションで許容されるデータの量が多いほど、メモリ帯域利用効率は高くなる。一方、個々のメモリバストランザクション時間が長くなるほど、メモリアクセス待ち時間が長くなる。アクセス待ち時間が増大すると、クライアント側でのバッファの必要サイズ、即ち、トランザクションに関するデータを記憶するために必要な一時的記憶領域の量は、一般的に増加する。この結果、チップのサイズが大きくなり、チップのコスト増大につながる。
【0009】
メモリアクセス待ち時間が増大すると、結果的にクライアントシステムの効率が低下することになる。例えば、検討する電子装置の一例として、マイクロプロセッサの場合を考慮すると、データおよび命令キャッシュがあっても、メモリアクセス待ち時間は、プロセッサ効率に大きな影響がある。
【0010】
したがって、システム設計時に、メモリアクセス待ち時間とクライアントシステム効率との間で検討すべきトレードオフがある。メモリアクセス待ち時間とメモリ効率との間の最適バランスは、使用されるメモリタイプおよびメモリバスに付された、あるいは接続されたクライアントシステムの数と性質など、全体として各構成要因の特徴に大きく依存する。
【0011】
システム構成への変更、代表的にはシステムオンチップ(SOC)への変更、例えば、クライアントシステムの追加、取り外、メモリタイプの変更などがあると、結果的に、メモリバスプロトコール、特に許容可能な最大メモリトランザクション長、即ち最大パケット長が変化することがある。例えばSOCその他種類のデジタルシステムなど、電子システムの設計企画では、既存設計の再利用が一般的また必要な実務作業であるので、メモリタイプやシステムアクセスの要求事項での前述の変更事項の発生は、極めて一般的である。
【0012】
さらに、従来のメモリバスアーキテクチャーは、それぞれの新たなSOC設計が、それぞれのクライアントシステムの(上述のメモリバスインタフェースに対応する)メモリアクセス回路には、極めて一般的であるので、特定のクライアントシステムの設計が再利用される度に、ある程度は、再設計しなければならない。一方、このような回路は、各クライアントシステムである形で存在するように複雑である必要はないのではあるが、このような再設計に関するメモリバスインタフェースに必要な仕事量は、SOC内のクライアントシステムの数と直線的に増加する。また、これによって、SOCの生産に必要な設計資源が増大し、機能的問題(いわゆる”バグ”)付の設計を発生させてしまう可能性が増え、ゆえに、全体の設計時間が増大する可能性があり、例えば、投下資本に対する回転が、結果的に低下する。さらには、SOCの規模が大きくなる方向に向かっている現在の設計傾向を考慮すると、このような問題は、継続的に的に増加してきている。
【0013】
さらに、システムの部品、例えば、デジタルシステム内のクライアントシステムによっては、所与の要件事項についてメモリシステムの効率を最適化するためにメモリバスプロトコールの詳細内容を変える必要がある。従来のデジタル電子システムでは、メモリバスプロトコールを変更する場合、クライアントシステムのそれぞれおよび全部のメモリバスインタフェースを見直して最終的には変更する必要があるので、再設計に関連するこのようなメモリバスインタフェースに必要な仕事量は、上述と同様に、SOCのクライアントシステムの数と直線的に増大する。このため、SOCを生産するのに必要な設計資源が増大し、機能的問題(”バグ”)をかかえた設計が流出する可能性が増え、また、全体の製品設計時間が増大する可能性がある。
【0014】
【課題を解決するための手段】
上述の問題点を鑑みてなされた、本発明の好適な実施形態による電子装置は、メモリ部と、複数のクライアントシステムと、メモリバスと、前記複数のクライアントシステムのうち少なくとも1つのクライアントシステムに長さ変換部を備え、前記一つのクライアントシステムを前記メモリバスに接続するメモリアクセスインタフェースとを含む装置を備える電子装置であって、前記複数のクライアントシステムが、前記メモリバスを介して、データストリームを前記メモリ部に転送し、前記データストリームの長さが制限値を超えた場合、前記長さ変換部は、前記データストリームを複数の副ストリームに分割することを特徴とする。
【0015】
このような制限値は、メモリバスを介して転送可能な最大パケット長であることが望ましい。
【0016】
本発明のもう1つの好適な実施形態によれば、電子装置でメモリとクライアントとの間のデータトランザクションを制御する方法は、この電子装置は、複数のクライアントシステム、メモリ部、前記クライアントシステムを前記メモリ部に接続するスイッチファブリック、前記データトランザクションと前記クライアントシステムの少なくとも1つと前記メモリの間に備えたメモリアクセスインタフェース部を制御するメモリアクセスコントローラを備える電子装置に関する方法であって、前記データトランザクションに関連するデータを転送するパケットで転送可能な最大量のデータである最大パケット長を設定し、前記データトランザクションが、前記最大パケット長を超えている長さである場合には、前記データトランザクションを複数の副トランザクションに分割することを特徴とする。
【0017】
また、この方法は、前記副トランザクションのそれぞれに、アクセス開始アドレス、アクセス長およびアドレス増分方向を有するヘッダを加えることを具備することが好ましい。
【0018】
さらに、本発明のもう1つの好適な実施形態によれば、電子システムでメモリとクライアントの間のデータトランザクションリクエストを特定する方法はメモリとクライアントとの間のデータトランザクションリクエストを特定する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムと前記メモリとの間の前記データを転送するメモリバス、メモリアクセスコントローラ、および前記データトランザクションリクエストを制御するために前記クライアントシステムの少なくとも1つに備えたメモリアクセスインタフェース部を備える電子装置に関する方法であって、データ転送の長さが、前記最大データ転送長を超えている場合には、前記データ転送を、前記最大データ転送長に対応する最大長を有する副トランザクションに分割し、前記クライアントに関する情報および前記メモリへのアクセスに関するアドレス情報を含むヘッダを、前記副トランザクションのそれぞれに追加し、前記ヘッダ付きの前記副トランザクションを、前記メモリアクセスコントローラに転送することを特徴とする。
【0019】
さらに、本発明のもう1つの好適な実施形態によるシステムは、メモリ部および複数のクライアントシステムを有する装置に使用するシステムにおいて、前記クライアントシステムと前記メモリ部との間の通信用チャネルと、前記チャネルを介して前記クライアントシステムと前記メモリとの間のトランザクションの最大量を定めるプロトコールと、少なくとも前記クライアントシステムの1つと前記チャネルとの間の1つの接続に備えたインタフェースとを有し、前記トランザクションが、前記最大サイズを超えている長さである場合には、前記クライアントシステムと前記1つのメモリとの間の前記トランザクションを、前記最大サイズを超えない長さを有する複数の副トランザクションに変換することによって、前記インタフェースが、前記クライアントシステムを、前記チャネルから隠すことを特徴とする。
【0020】
【発明実施の形態】
システム構成の詳細およびメモリタイプに依存しないメモリアクセス能力を有する本発明の好適な実施形態による電子システムを以下に説明する。
【0021】
図1にはメモリアクセスコントローラ5と少なくとも1つのメモリ装置6を有する単一のメモリ副システム(以下、メモリ部と称する)に接続された複数の機能部(以下、クライアントシステムと称する)1を含む電子システムを表している。クライアントシステムおよびメモリ部は、データトランザクション用のチャネルまたはネットワークを構成する配線2および3を共用する。データトランザクションには、既述のように、クライアントシステムからメモリ装置への書き込みデータおよび/またはメモリ装置からクライアントシステムへの読み込みデータを含む。また、上述のように、配線は、メモリバスと称する。物理的ネットワークとして見る場合は、メモリバスは、”スイッチファブリック”とも称することができる。図1において、メモリバスは、読み込みバス2および書き込みバス3を含む。ここで、”書き込み”とは、クライアントシステムからのデータが、メモリ装置6に、書き込みバス3を介して、書き込まれる動作を意味する。このような書き込みバス3は、読み込みバスとは異なるバスである。”読み込み”動作とは、読み込みバスを介して、メモリ装置6からのデータをクライアントシステムが読み込む動作を意味する。クライアントシステムは、好ましくは、クライアント1(ここで、iは、図1の例で、1乃至mの範囲内の正の整数である)として、図1で説明されている複数のクライアントシステムのそれぞれが、メモリバスインタフェース7i(i=1...m)を介して、メモリバスに接続されている。
【0022】
本発明による電子システムのクライアントシステムは、メモリバスを介して、メモリ部へのアクセスを有しており、このアクセスは、メモリバスプロトコール即ちスイッチファブリックプロトコールにしたがって行われる。本発明の好適な実施形態の一例は、図1で説明される機能構成を有するシステムオンチップ(以下、SOCと称する)設計に関する。したがって、図1は、デジタルシステムを説明するもので、このデジタルシステムは、ハードウェアによる信号処理中核部および/またはプログラマブル信号処理部を有する複数のクライアントシステム1(ここで、i=1,2,...mであり、mは正の整数である)を有する。
【0023】
図1によるメモリバスは、単向性メモリ読み込みバス2および単向性メモリ書き込みバス3を有する。スイッチファブリックは、メモリ装置6へのアクセスができるようにするメモリアクセスコントローラ5に接続されている。
【0024】
上述のように、最大パケット長は、1つのデータ転送でメモリバスを介して転送可能なデータ量によって決定され、これは、メモリバスの物理的制約によって制限される。例えば、クライアントシステムがデータをメモリ装置に書き込もうとする単一の書き込みトランザクションのトランザクション長が、メモリバスによって転送可能な量を超過している場合は、このトランザクションは、バス能力即ち最大パケット長以内のデータ量を有する小片に分割しなければならない。各小片は、パケットに対応し、最大パケット長を超えないパケット長を有する。
【0025】
一方、複数のクライアントシステムが、同時に書き込みトランザクションを実行しようとすると、図1にしめすように、書き込みバスアービタ4は、トランザクションの仲裁機能を実行、即ち、クライアントシステムとメモリとの間でトランザクションを行うためのシーケンスまたはルールを決め、いわばデータの”交通規制”を行う。同様に、メモリからのデータを読み込む読み込み動作は、同様な方法で行なわれる。
【0026】
メモリ読み込みバス2(以下、MRDバスと称する)は、コマンドおよびメモリアクセスコントローラ5からクライアントシステム 1へのデータ転送に使用される。一方、メモリ書き込みバス3(以下、MWRバスと称する)は、コマンドおよびクライアントシステム1からメモリアクセスコントローラ5へのデータの転送に使用される。MWRバス3へのアクセスは、書き込みバスアービタ4により裁定される。メモリアクセスコントローラ5により、メモリ装置6へのアクセスが可能となる。メモリバスインタフェース部7は、クライアントシステム1へのメモリバスプロトコールを有しており、且つ、それぞれ図2および図3のメモリバスインタフェース書き込みモジュールおよびメモリバスインタフェース読み込みモジュールを参照して、既述したように、メモリバスインタフェース書き込みモジュールおよびメモリアクセスインタフェース読み込みモジュールを備えている。
【0027】
本発明の好適な実施形態によれば、このようなメモリバスインタフェース部7は、メモリアクセスプロトコール即ちメモリバスプロトコールまたはスイッチファブリックプロトコールを備えてもよいが、このメモリアクセスプロトコールは、クライアントシステム1にメモリバスプロトコールが”見える”必要がないように、メモリバスプロトコールと独立させている。これは、例えば、図4および図5を参照して以下に説明するように、メモリバスインタフェース部7の書き込みおよび読み込みモジュールに、トランザクション長変換機構を追加することによって実現される。先行技術では、クライアントシステム1が、そのインタフェース上に、コマンドを転送するためにトランザクション長変換を実行し、且つメモリバスを介してデータを受信する機能または回路(図示せず)を有していなければならない。すなわち、図2のクライアントシステムのクライアント側書き込みインタフェース8は、その中にトランザクション長変換を行うための機能または回路を有し、メモリバスインタフェース書き込みモジュール71およびメモリバスを介して、コマンドおよびデータ並びに受信データをメモリに転送する。同様に、図3のクライアントシステムのクライアント側読み込みインタフェース12は、その中にトランザクション長を行うための機能または回路を有し、メモリバスインタフェース書き込みモジュール71およびメモリバスを介して、コマンドをメモリに転送する。
【0028】
本発明の好適な実施形態は、以下説明するように、開始アドレス、アクセス長およびアドレス増分方向に基づき、図1のメモリバスインタフェース部7によって、クライアントシステム1のそれぞれとメモリ装置6との間のトランザクションを特定する。
【0029】
図4に示すように、本発明の好適な実施形態によるメモリバスインタフェース部7は、書き込みバッファ730、インタフェースタイミングジェネレータ732およびトランザクション長変換部736を有するメモリバスインタフェース書き込みモジュール73を有する。クライアントシステム1は、包括インタフェース側即ち書き込みインタフェース17と調和し、これはトランザクション長変換部を備えていないので、後述するデータ付きコマンドが、メモリバスインタフェース書き込みモジュール73へ転送され、ここで、コマンドおよび/またはデータが、書き込みバッファ730に記憶され、トランザクション長変換部736によって変換されたトランザクション長を有し、且つ、インタフェースタイミングジェネレータ732を用いてメモリバスインタフェースタイミングを生成する。
【0030】
同様に、図5に示すように、本発明の好適な実施形態によるメモリバスインタフェース部7は、書き込みバッファ740、読み込みバッファ724、インタフェースタイミングジェネレータ744およびトランザクション長変換部746を有するメモリバスインタフェース読み込みモジュール74を有する。クライアントシステム1は、包括インタフェース側即ち読み込みインタフェース22と調和し、これはトランザクション長変換部を備えていないので、後述するデータ付きコマンドが、メモリバスインタフェース7へ転送され、ここで、コマンドおよび/またはデータが、バッファに記憶され、トランザクション長変換部746によって変換されたトランザクション長を有し、且つ、インタフェースタイミングジェネレータ744を用いてメモリバスインタフェースタイミングを生成する。
【0031】
メモリバスインタフェース読み込みモジュール74が、メモリ書き込みバスに送ったリクエストの許可後、リクエストされた読み込みデータは、メモリ読み込みバスを介して、メモリバスインタフェース読み込みモジュール74に転送される。本工程のより詳細な説明は、以下のとおりである。
【0032】
メモリバスインタフェース書き込みモジュール
図6Aは、本発明の好適な実施形態によるクライアント側コマンドおよびデータビットマッピングの一例を示し、図6Bは、メモリバス書き込みモジュール用のメモリバスコマンドビットマッピングの一例を示す。クライアント側コマンドおよびデータビットマッピングの詳細な構造は、以下の通りである。図6Aにおいて、フィールド602は、フロー制御機構の一部を形成するFB(Flag Bit:フラグビット)を示しており、アイドルサイクルを示す場合は、’00’に、コマンドワードサイクルを示す場合は、’01’に、データワードサイクルを示す場合は、’10’に、現行トランザクションの最終ワードを示す場合は、’11’に設定される。リバースフラグフィールド604は、アドレス増分の指令例えば正増分の場合は、’0’、負増分の場合は”1”を示すために使用される。ワードカウントフィールド606は、所望データワードの数を示し、ワード開始アドレスフィールド608は、トランザクション開始アドレスを示すために使用される。バイトイネーブルフィールド612は、メモリへの書き込み動作のバイトマスクとして再使用されるビットを有するが、’1’は、書き込みを可能(イネーブル)にし、’0’は、書き込みを不可(ディセーブル)にする。
【0033】
本発明の好適な実施形態によるメモリバスインタフェース書き込みモジュールの動作は、図6Aおよび図6Bのダイヤグラムと共に、図10のフローチャートを参照して、以下のとおりに説明する。図10のステップS10において、システムは、データ付きコマンド(command plus data)を受けるために、待機モードにある。書き込みコマンドおよび関連データを、ステップS11で、クライアントシステム1から受領後、メモリバスインタフェース部7は、メモリバスインタフェース書き込みモジュール73(図4)を介して、クライアントコマンドを、図6Bで示すフォーマットの一連のメモリ書き込みバス(MWRバス)コマンドにマッピングすることにより、トランザクション長およびプロトコール変換を行う。このような変換には、例えば、ステップS12で示されるように、クライアントID(またはターゲットID)620、読み込み/書き込みリクエストインジケータフィールド624、および狭幅ワードカウントフィールド626を挿入することが含まれる。
【0034】
ステップS13で、単一リクエストのワードカウントが、単一のメモリバスリクエスト、即ち上述の最大パケット長の観点から説明された最大MWRバスパケットサイズにマッピングされ得る量を超過する場合、メモリバス(書き込みモジュール)側で、もう1つの書き込みリクエストが、図4のトランザクション長変換部736によって、作り出されるので、結果として、ステップS14で、MWRバス側に、複数の書き込みリクエストを作り出す。1つのクライアントトランザクションを複数のバストランザクションにマッピングする、このようなプロセスの概要は図8で示すダイアグラムで図示されている。
【0035】
図8で示される例で、それぞれが、ワードカウントAおよびワードカウントBを有する2つのクライアント書き込みトランザクションは、メモリバス(スイッチファブリック)プロトコールによって強いられるトランザクション長制限に従う一連のメモリ書き込みトランザクションTa1乃至Ta4およびTb1乃至Tb3に分けられている。
【0036】
パケットベースのプロトコールは、メモリバスおよびクライアント側の双方で使用されるので、各パケットは、対応トランザクションに関するアクセスコマンドを含むヘッダから開始する。クライアント側では、ヘッダは、図8の例で、クライアントヘッダCaおよびCbと称し、且つ、MWRバス側では、ヘッダは、MWRヘッダWa(図8の例で、Wa1乃至Wa4)およびWb(図8の例で、Wb1乃至Wb3)と称する。図4のメモリバスインタフェース書き込みモジュール73は、所与のクライアントトランザクションを完了するために必要なバストランザクションの数を最小にしようとする。その結果、最大MWRバスパケットサイズ、即ちメモリバスにより制限され且つメモリバスプロトコール中で特定される最大パケット長を超過しないクライアントトランザクションは、単一バストランザクションとして、メモリ装置6に書き込まれ(例えば、図1のメモリアクセスコントローラ5を介して)、ステップS15に移り、アクセスコマンド付きのヘッダを書き込みリクエストに挿入し、且つステップS16で、変換されたリクエストを、MWRバスを介して、メモリコントローラに送る。図10を参照のこと。データの最後である場合即ちワードカウントが終了した場合に、工程はステップS10の待機モードに戻る。まだ、書込むべきデータがある場合は、プロセスは、ステップS12に戻る。
【0037】
一方、メモリバスインタフェースが受領したクライアントトランザクションが、最大MWRバスパケットサイズを超過しない場合は、プロセスはステップS16に直進し、ここで変換されたリクエストが、MWRバスを介して、メモリコントローラに送られる。
【0038】
既に上述したように、クライアントトランザクションが、最大MWRバスパケットサイズを超過すると、メモリバスインタフェース書き込みモジュール73は、このようなクライアントトランザクションを一連の書き込みバストランザクションに分割し、ワードカウントAの場合、Ta(Ta1乃至Ta3)に、ワードカウントBの場合は、Tb(図8ではTb1乃至Tb2)になり、最大MWRバスパケットサイズ、即ち、可能な最大長を有しており、これに続くのは、最終バストランザクションTa4(ワードカウントAの)およびTb3(ワードカウントBの)であり、ワードカウントBは、トランザクションデータの残り(図8で示されるクライアントトランザクション中の残りデータ)を有しており、且つ最大バストランザクション長を越えない長さを有している。
【0039】
メモリバスインタフェース読み込みモジュール
本発明の好適な実施形態により、図7Aは、包括クライアント側コマンドビットマッピングを示し、図7Bは、メモリバスインタフェース読み込みモジュール用のメモリバスコマンドビットマッピングの一例を示す。クライアント側コマンドマッピングは、図4のメモリバスインタフェース書き込みモジュール73に類似しているが、FBフィールド802が2つでなく、1つのビットしか有しない。読み込みモジュールクライアント側インタフェース22の場合は、FBフィールド802(フロー制御機構の供給部)は、有効なコマンドワードサイクル(フロー制御)を示す’1’に、およびアイドルサイクルを示す’0’に設定される。
【0040】
メモリバスインタフェース書き込みモジュール73の場合と同様に、図5のメモリバスインタフェース読み込みモジュール74は、リバースフラグ804を有しており、このフラグは、アドレス増分の指令例えば正増分の場合は、’0’、負増分の場合は”1”を示すために使用される。ワードカウントフィールド806は、所望データワードの数を示し、ワード開始アドレスフィールド808は、トランザクション開始アドレスを示すために使用される。
【0041】
本発明の好適な実施形態によるメモリバスインタフェース読み込みモジュールの動作は、図7Aおよび図7Bのダイヤグラムを参照すると共に、図11のフローチャートを参照して、以下のとおりに説明する。
【0042】
図4を参照して上述したメモリバス書き込みモジュール73と同様に、書き込みコマンドおよび関連データを、ステップS21で、クライアントシステム1から受領後、メモリバスインタフェース部7は、メモリバスインタフェース読み込みモジュール74(図5)を介して、クライアントコマンドを、図7Bで示すフォーマットを有する一連のメモリ書き込みバス(MWRバス)読み込みコマンドにマッピングすることにより、トランザクション長およびプロトコール変換を行う。このような変換には、図11のステップS22で示されるように、クライアントID(ターゲットID)820、読み込み/書き込みリクエストインジケータフィールド、および狭幅ワードカウントフィールドを挿入することが含まれる。
【0043】
ステップS23で、単一リクエストのワードカウントが、単一のメモリバスリクエストにマッピングされ得る量を超過する場合、メモリバス側で、もう1つの読み込みリクエストが、図5のトランザクション長変換部746によって、作り出されるので、結果として、ステップS24で示されるように、最大以下のMRDバスパケットサイズに対応するパケットサイズを有するトランザクション長を有するメモリバス側に、読み込みリクエストを作り出す。さらに、MRDヘッダは、ステップS25で、このような複数の読み込みリクエストのそれぞれに対するインサータである。1つのクライアントトランザクションを、複数のバストランザクションにマッピングするこのようなプロセスは、図9で示されるダイアグラムで説明される。
【0044】
図9で示される例で、それぞれが、ワードカウントAおよびワードカウントBを有する2つのクライアント読み込みトランザクションは、メモリバス(スイッチファブリック)プロトコール、即ち図9で示す最大パケット長で強いられるトランザクション長制限に従う一連のメモリ読み込みバストランザクションR1乃至R4およびR5乃至R7に分けられている。
【0045】
また、図5のダイヤグラムで示されるように、且つ図11のステップS26で説明されるように、読み込みリクエストは、先ず、書き込みバスを介して、メモリアクセスコントローラに送られる。データの最後である場合、プロセスは、ステップS20の待機モードに戻る。まだ読込むべきデータが残っている場合は、プロセスは、ステップS22に戻る。
【0046】
次に、図5のダイヤグラムで示すように、読み込みデータは、メモリ読み込みバスを介して、クライアントシステムに戻る。
【0047】
メモリ書き込みバスの場合と同様に、パケットベースのプロトコールは、メモリ読み込みバス上で使用されるので、各パケットは、対応トランザクションに関するアクセスコマンドを含むヘッダから開始する。メモリ読み込みバス側では、ヘッダは、MRDヘッダRa(図9の例で、Ra1乃至Ra4)およびRb(図9の例で、Rb1乃至Rb3)と称し、且つ、MWRバス側では、ヘッダは、MWRヘッダWa(図9の例で、Wa1乃至Wa4)およびWb(図9の例で、Wb1乃至Wb3)と称する。図5のメモリバスインタフェース読み込みモジュール74は、所与のクライアントトランザクションを完了するために必要なバストランザクションの数を最小にしようとする。その結果、最大MWRバスパケットサイズ(最大パケット長)を超過しないクライアントトランザクションは、単一バストランザクションとして、メモリ装置6から読込まれる(例えば、図1のメモリアクセスコントローラ5を介して)。
【0048】
クライアントトランザクションが、最大MRDバスパケットサイズを超過すると、メモリバスインタフェース読み込みモジュール74は、このようなクライアントトランザクションを一連のバストランザクション分割し、ワードカウントAの場合、Ra(Ra1乃至Ra3)に、ワードカウントBの場合は、Rb(Rb1乃至Rb2)になり、(図9で)、最大メモリバスパケットサイズ、即ち可能な最大長を有しており、これに続くのは、最終バストランザクションRa4(ワードカウントAの)およびRb3(ワードカウントBの)であり、トランザクションデータの残り(図9で示されるクライアントトランザクション中の残りデータ)を有しており、且つ最大バストランザクション長を越えない長さを有している。
【0049】
最後に、各パケットに付随するアクセスコマンドを含むヘッダは、リクエストされたデータを対応するクライアントシステム1に送る前に、取り外される。読み込みデータが、メモリから対応するクライアントシステム1に転送されるプロセスは、図12で図説されている。ステップS27で、メモリコントローラ(図1のメモリアクセスコントローラ5)は、MRDバス(図1の読み込みバス2)を介して、図11のステップS26の読み込みリクエストに対応する読み込みデータを送る。次に、各パケットに付随するアクセスコマンドを含むヘッダは、ステップS29で、リクエストされたデータを対応するクライアントシステム1に送る前に、ステップS28で取り外される。
【0050】
本発明は、好適な実施形態に基づく実施例にて本明細書である程度詳細に説明されたが、本発明の範囲から逸脱することなく、他に多くの変形、組み合わせ、部分組み合わせが可能であることは、この技術分野で通常の知識を有するものには明らかであるだろう。
【0051】
例えば、本発明の好適な実施形態によるデジタルシステムには、外部メモリ、および集積内部メモリ装置を有するメモリ部を含むことができる。また、メモリ部は、集積内部メモリ装置および外部装置の双方の組み合わせも含むことも可能である。
【0052】
さらに、本発明は、システムオンチップ構造について、好適な実施形態の観点から説明したが、本発明は、より包括的なデジタルシステムや、広義には、本システムを使用する他の電子システム、装置、装置類および/または本発明の好適な実施形態による装置に適用することができる。
【0053】
また、メモリバスインタフェースは、本発明の実施形態で、書き込みおよび読み込み用の別個のモジュール、即ちメモリバスインタフェース書き込みモジュールおよびメモリバスインタフェース読み込みモジュールをそれぞれ有するとして説明したが、本発明は、この実施形態に制限または限定されるものとして解釈すべきではない。したがって、メモリバスインタフェースは、同様の機能を実現する単一のモジュール、部、機能ブロック等に統合してもよいし、必要により、双方の機能は、複数のブロックまたは部に統合してもよいし、単一のモジュールまたは部に統合してもよい。
【0054】
さらに、本発明は、物理的部またはブロックとして、メモリバス、メモリバスインタフェース部、メモリアクセスコントローラ、およびアービタについて、システムの好適な実施形態により一例に基づいて説明したが、このような機能は、ソフトウェアプログラムやこれに類するものによって実現することができ、おのおのの専用の機能ブロックまたはソフトウェアプログラムに分ける必要はない。
【0055】
また、メモリバスには、既存の標準例えばPCIバス、VMEバス等または他のメモリアクセス手段に基づく、任意のメモリバスの種類を含めることもできる。
【0056】
同様に、本発明は、タイプとは無関係にメモリについて説明したので、任意の種類のメモリ例えばSDRAM、ROM、フラッシュメモリ等が使用可能である。
同様な考え方は、バッファまたはバッファの物理的、機能的な実現、クライアントインタフェース、および他の物理的部品またはシステムの機能ブロック、同じく本発明の好適な実施形態を用いる装置および装置類、同様に機能部品に、個々にまたは組み合わせを使用した場合にも当てはまる。
【0057】
【発明の効果】
本発明によれば、通常のバッファリング、タイミング生成の特徴に加えて、トランザクション長変換が可能なメモリアクセスプロトコールが備わっているので、異なる最大バストランザクション長を有する新たなSOC設計を行う場合でも、各クライアントシステムの再設計部分の必要性がなくなる。本発明の好適な実施形態を通じて、各クライアントシステムに対する設計変更の代わりに、設計変更は、トランザクション長変換、リクエスト、および包括メモリバスインタフェース部のプロトコール生成回路にしか必要としない。この結果、SOCの生産に必要な設計資源を減らすことができるので、機能的問題(”バグ”)を含めた設計を流出させる可能性が減少し、また、全体の製品設計時間および全体の製品設計時間が減少する可能性がある。
【0058】
また、本発明の好適な実施形態によれば、システム構成の詳細およびメモリタイプに依存しないデジタルシステムオンチップ中にメモリアクセスプロトコールが備わっているので、個々の部品の変更例えば設計変更の必要が生じた場合にクライアントシステムの変更に対して、システムの適用範囲が更に広くなる。
【0059】
クライアントシステムをメモリバスプロトコールから見えなくすることによって、開発時間や他の資源を改良即ち減少させることができる。
【0060】
クライアントシステムのリクエストしたトランザクションのトランザクション長を変換した後、本発明の好適な実施形態によるメモリバスインタフェース部では、メモリバスプロトコールの限定を”認識”するクライアントシステムが無くても、トランザクションの実行が可能となる。
【0061】
また、クライアントシステムが、バスプロトコールから隠されまたは隔離されている本発明の好適な実施形態によれば、メモリバスプロトコールの変更に必要性が生じても、クライアントシステム内で、メモリバスインタフェースを見直しかつ変更することは不要となるので、再設計に要する作業量を、劇的に減らすことができる。その結果、SOCの生産に必要な設計資源を減らすことができるので、機能的問題(”バグ”)を含めた設計を流出させる可能性が減少し、また、全体の製品設計時間が減少する可能性がある。
【図面の簡単な説明】
【図1】本発明に関するデジタルシステムオンチップの概略図である。
【図2】従来のメモリバスインタフェース書き込みモジュールの概略図である。
【図3】従来のメモリバスインタフェース読み込みモジュールの概略図である。
【図4】本発明の好適な実施形態によるメモリバスインタフェース書き込みモジュールの概略図である。
【図5】本発明の好適な実施形態によるメモリバスインタフェース読み込みモジュールの概略図である。
【図6】図6(A): 本発明の好適な実施形態による書き込みトランザクション用クライアント側コマンドおよびデータビットマッピングの概略図である。
図6(B): 本発明の好適な実施形態による書き込みトランザクション用メモリ書き込みバス側コマンドおよびデータビットマッピングの概略図である。
【図7】図7(A): 本発明の好適な実施形態による読み込みトランザクション用クライアント側コマンドおよびデータビットマッピングの概略図である。
図7(B): 本発明の好適な実施形態による読み込みトランザクション用メモリ書き込みバス側コマンドおよびデータビットマッピングの概略図である。
【図8】本発明の好適な実施形態による書き込みトランザクション用のトランザクション長変換の概略図である。
【図9】本発明の好適な実施形態による読み込みトランザクション用のトランザクション長変換の概略図である。
【図10】本発明の好適な実施形態による書き込みトランザクション用のメモリバスインタフェースで実行される動作ステップを示すフローチャートである。
【図11】本発明の好適な実施形態による読み込みトランザクション用のメモリバスインタフェースで実行される動作ステップを示すフローチャートである。
【図12】本発明の好適な実施形態により、メモリからのデータが、対応するクライアントシステムに転送される、読み込みトランザクションについて実行される動作ステップを示すフローチャートである。
:クライアントシステム、 2:メモリ読み込みバス、 3:メモリ書き込みバス、 4:書き込みバスアービタ、 5:メモリアクセスコントローラ、 6:メモリ装置、 7i:メモリバスインタフェースi、ここでi=1,...m,であり、mは、システムオンチップ内でのクライアントシステムの数である、 71,73:メモリバスインタフェース書き込みモジュール、 72,74:メモリバスインタフェース読み込みモジュール; 736,746:トランザクション長変換部

Claims (6)

  1. メモリ部と、
    複数のクライアントシステムと、
    メモリバスと、
    前記複数のクライアントシステムのうち少なくとも1つのクライアントシステムに長さ変換部を備え、前記一つのクライアントシステムを前記メモリバスに接続するメモリアクセスインタフェースとを含む装置を備える電子装置であって、
    前記複数のクライアントシステムが、前記メモリバスを介して、データストリームを前記メモリ部に転送し、前記データストリームの長さが制限値を超えた場合、前記長さ変換部は、前記データストリームを複数の副ストリームに分割することを特徴とする電子装置。
  2. 前記制限値は、前記メモリバスを介して転送可能な最大パケット長を含むことを特徴とする請求項2に記載の装置。
  3. メモリとクライアントとの間のデータトランザクションを制御する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムを前記メモリ部に接続するスイッチファブリック、前記データトランザクションと前記クライアントシステムの少なくとも1つと前記メモリの間に備えたメモリアクセスインタフェース部を制御するメモリアクセスコントローラを備える電子装置に関する方法であって、
    前記データトランザクションに関連するデータを転送するパケットで転送可能な最大量のデータである最大パケット長を設定し、
    前記データトランザクションが、前記最大パケット長を超えている長さである場合には、前記データトランザクションを複数の副トランザクションに分割することを特徴とする方法。
  4. 前記副トランザクションのそれぞれに、アクセス開始アドレス、アクセス長およびアドレス増分方向を含むヘッダを加えることを特徴とする請求項3に記載の方法。
  5. メモリとクライアントとの間のデータトランザクションリクエストを特定する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムと前記メモリとの間の前記データを転送するメモリバス、メモリアクセスコントローラ、および前記データトランザクションリクエストを制御するために前記クライアントシステムの少なくとも1つに備えたメモリアクセスインタフェース部を備える電子装置に関する方法であって、
    データ転送の長さが、前記最大データ転送長を超えている場合には、前記データ転送を、前記最大データ転送長に対応する最大長を有する副トランザクションに分割し、
    前記クライアントに関する情報および前記メモリへのアクセスに関するアドレス情報を含むヘッダを、前記副トランザクションのそれぞれに追加し、
    前記ヘッダ付きの前記副トランザクションを、前記メモリアクセスコントローラに転送することを特徴とする方法。
  6. メモリ部および複数のクライアントシステムを有する装置に使用するシステムにおいて、
    前記クライアントシステムと前記メモリ部との間の通信用チャネルと、
    前記チャネルを介して前記クライアントシステムと前記メモリとの間のトランザクションの最大量を定めるプロトコールと、
    少なくとも前記クライアントシステムの1つと前記チャネルとの間の1つの接続に備えたインタフェースとを有し、
    前記トランザクションが、前記最大サイズを超えている長さである場合には、前記クライアントシステムと前記1つのメモリとの間の前記トランザクションを、前記最大サイズを超えない長さを有する複数の副トランザクションに変換することによって、前記インタフェースが、前記クライアントシステムを、前記チャネルから隠すことを特徴とするシステム。
JP2003115336A 2003-04-21 2003-04-21 メモリインタフェースおよびこれを有する装置 Pending JP2004318755A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003115336A JP2004318755A (ja) 2003-04-21 2003-04-21 メモリインタフェースおよびこれを有する装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003115336A JP2004318755A (ja) 2003-04-21 2003-04-21 メモリインタフェースおよびこれを有する装置

Publications (1)

Publication Number Publication Date
JP2004318755A true JP2004318755A (ja) 2004-11-11

Family

ID=33474566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003115336A Pending JP2004318755A (ja) 2003-04-21 2003-04-21 メモリインタフェースおよびこれを有する装置

Country Status (1)

Country Link
JP (1) JP2004318755A (ja)

Similar Documents

Publication Publication Date Title
US8913616B2 (en) System-on-chip-based network protocol in consideration of network efficiency
US6594722B1 (en) Mechanism for managing multiple out-of-order packet streams in a PCI host bridge
US7797467B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US7240141B2 (en) Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
JP2001142842A (ja) Dmaハンドシェークプロトコル
CN1570907B (zh) 多处理器系统
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
WO2008010397A1 (fr) Contrôleur de mémoire
US20020184453A1 (en) Data bus system including posted reads and writes
CN115248796B (zh) 用于芯粒到芯粒互连的总线流水线结构和芯片
JP2003114864A (ja) データ転送制御回路
EP1222551B1 (en) Asynchronous centralized multi-channel dma controller
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
US6954869B2 (en) Methods and apparatus for clock domain conversion in digital processing systems
US7913013B2 (en) Semiconductor integrated circuit
WO2021113778A1 (en) Data transfers between a memory and a distributed compute array
US5517624A (en) Multiplexed communication protocol between central and distributed peripherals in multiprocessor computer systems
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
US20040098530A1 (en) Flexible data transfer to and from external device of system-on-chip
US20070127484A1 (en) Data transfer operations and buffer memories
JP2004318755A (ja) メモリインタフェースおよびこれを有する装置
US6378017B1 (en) Processor interconnection
US20040064662A1 (en) Methods and apparatus for bus control in digital signal processors
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法