(57)【要約】【課題】ＳＯＣなどの電子システムにおいて、複数のクライアントシステムが同一のメモリ装置を共用し、このメモリ装置へのアクセスはメモリバスプロトコールの制限事項に影響され、メモリバスプロトコールが変更されれば、各クライアントシステムに変更を加える必要があり、好ましくない経費が発生する。【解決手段】メモリアクセスコントローラ５と少なくともひとつのメモリ装置６とを含むメモリ部に接続されたクライアントシステム１を有する電子システム。クライントシステム及びメモリ部はメモリ書込みバス及びメモリ読み込みバス。メモリ装置６と、メモリアクセスプロトコールに依存しないトランザクション長を有するクライアントシステムとの間のデータトランザクションのためにメモリバスが提供され、すなわち、メモリバスインタフェースは、トランザクションを、最大パケット長を超えないトランザクション長を有する複数の副トランザクションに分割するトランザクション長変換部７３６、７４６を具備する。【選択図】      図１
2004318755.tif 000002
【特許請求の範囲】
【請求項１】
メモリ部と、
複数のクライアントシステムと、
メモリバスと、
前記複数のクライアントシステムのうち少なくとも１つのクライアントシステムに長さ変換部を備え、前記一つのクライアントシステムを前記メモリバスに接続するメモリアクセスインタフェースとを含む装置を備える電子装置であって、
前記複数のクライアントシステムが、前記メモリバスを介して、データストリームを前記メモリ部に転送し、前記データストリームの長さが制限値を超えた場合、前記長さ変換部は、前記データストリームを複数の副ストリームに分割することを特徴とする電子装置。
【請求項２】
前記制限値は、前記メモリバスを介して転送可能な最大パケット長を含むことを特徴とする請求項２に記載の装置。
【請求項３】
メモリとクライアントとの間のデータトランザクションを制御する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムを前記メモリ部に接続するスイッチファブリック、前記データトランザクションと前記クライアントシステムの少なくとも１つと前記メモリの間に備えたメモリアクセスインタフェース部を制御するメモリアクセスコントローラを備える電子装置に関する方法であって、
前記データトランザクションに関連するデータを転送するパケットで転送可能な最大量のデータである最大パケット長を設定し、
前記データトランザクションが、前記最大パケット長を超えている長さである場合には、前記データトランザクションを複数の副トランザクションに分割することを特徴とする方法。
【請求項４】
前記副トランザクションのそれぞれに、アクセス開始アドレス、アクセス長およびアドレス増分方向を含むヘッダを加えることを特徴とする請求項３に記載の方法。
【請求項５】
メモリとクライアントとの間のデータトランザクションリクエストを特定する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムと前記メモリとの間の前記データを転送するメモリバス、メモリアクセスコントローラ、および前記データトランザクションリクエストを制御するために前記クライアントシステムの少なくとも１つに備えたメモリアクセスインタフェース部を備える電子装置に関する方法であって、
データ転送の長さが、前記最大データ転送長を超えている場合には、前記データ転送を、前記最大データ転送長に対応する最大長を有する副トランザクションに分割し、
前記クライアントに関する情報および前記メモリへのアクセスに関するアドレス情報を含むヘッダを、前記副トランザクションのそれぞれに追加し、
前記ヘッダ付きの前記副トランザクションを、前記メモリアクセスコントローラに転送することを特徴とする方法。
【請求項６】
メモリ部および複数のクライアントシステムを有する装置に使用するシステムにおいて、
前記クライアントシステムと前記メモリ部との間の通信用チャネルと、
前記チャネルを介して前記クライアントシステムと前記メモリとの間のトランザクションの最大量を定めるプロトコールと、
少なくとも前記クライアントシステムの１つと前記チャネルとの間の１つの接続に備えたインタフェースとを有し、
前記トランザクションが、前記最大サイズを超えている長さである場合には、前記クライアントシステムと前記１つのメモリとの間の前記トランザクションを、前記最大サイズを超えない長さを有する複数の副トランザクションに変換することによって、前記インタフェースが、前記クライアントシステムを、前記チャネルから隠すことを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、データ転送チャネルから強いられる制限に依存しないクライアントシステムとメモリとの間のデータトランザクションのプロセスを含む電子装置に関する。より具体的には、本発明は、を利用する方法および電子装置に関し、かかる電子機器は、データトランザクションのトランザクション量または長さが、所定の制限を超える場合には、電子システムでの機能部分とメモリ部との間のデータトランザクションを、所定の量または長さの副トランザクションに分割することが可能なメモリアクセスインタフェースを含む電子デバイスを使用する方法及び電子装置に関する。
【０００２】
【従来の技術】
いわゆるシステムオンチップ（ＳＯＣ）のような電子システムでは、複数の機能部が、メモリ資源を共用している場合がある。このような電子システムは、複数の機能部（以下、クライアントシステムと称する）を有しており、この複数の機能部は、メモリアクセスコントローラと、少なくとも１つのメモリ装置とを有する単一のメモリ副システム（以下、メモリシステムと称する）に接続されている。クライアントシステムおよびメモリ副システムは、データトランザクション、即ちデータの書き込みおよび／または読み込み用のチャネルを構成する配線を共用している。この配線は、メモリバスと称することにするが、物理的に分離された書き込み配線および読み込み配線を有していてもよい。このような配線は、それぞれ、書き込みバスおよび読み込みバスと称してもよい。したがって、書き込み動作とは、クライアントシステムが、書き込みバスを介して、システムのメモリ装置に、データを書き込む動作のことを意味する。この場合、メモリ装置にデータを書き込むときは、このような書き込みバスを介して、データが書き込まれるので、書き込みバスは、クライアントシステムが、読み込みバスを介して、メモリ装置からデータを読み、読み込み動作を構成する読み込みバスとは異なる。一方、各クライアントシステムは、クライアントシステムとメモリバスとの間の通信を仲介するメモリバスインタフェースを有してもよい。
【０００３】
メモリバスインタフェースの構成例を、図２および図３に示す。図２は、メモリバスインタフェース書き込みモジュール７１を示し、図３は、メモリバスインタフェース読み込みモジュール７２を示す。図２のメモリバスインタフェース書き込みモジュール７１は、書き込みバッファ７１０を含み、この書き込みバッファ７１０は、書き込みＦＩＦＯ（先入れ先出し）バッファおよびインタフェースタイミングジェネレータ７１２の観点から説明されるインタフェースタイミング生成の特徴を有していてもよい。一方、図３のメモリバスインタフェース読み込みモジュールは、書き込みバッファ７２０と読み込みデータバッファ７２２を有しており、これらは、書き込みＦＩＦＯ（先入れ先出し）バッファおよびインタフェースタイミングジェネレータ７２４の観点から説明されるインタフェースタイミング生成の特徴を有してもよい。
【０００４】
メモリ部へのデータ書き込みおよび／またはメモリからの読み込み動作は、電子信号対応コマンドの転送および／または上述のメモリバスインタフェースおよびメモリバスを経由するデータの転送を発生させるが、これは、「メモリトランザクション」または単に「トランザクション」と称する。
【０００５】
クライアントシステム側のトランザクションは、結果的にメモリバスでのトランザクションとなり、メモリバスでのトランザクションは、メモリバスプロトコールの決定および設定によって行なわれる。このようなプロトコールを得ると、クライアントシステムから、メモリバスを介して、転送されたコマンドおよび／またはデータに対応する電子信号は、電子システムで所定の動作を行うことを意図しているとメモリ部側で解釈される。同様に、メモリバスを介してメモリ部から転送されたデータは、所定のメモリバスプロトコールがある限り、クライアントシステムにデータとして解釈される。
【０００６】
メモリバスが１つのトランザクションで運ぶデータ量は、以下、トランザクション長と称する。一方、メモリバスプロトコールの特性として決定される制限パラメータを有しており、データ転送の１単位で運ぶことができるデータの最大量について、上限を定める。説明の簡便にするために、メモリバス中のデータ転送単位は、「パケット」と称し、その制限的パラメータは、「パケット長」と称し、且つ、データ転送の１単位について、メモリバスプロトコールの許容可能な最大容量として決定されたメモリバスを介して運ぶことができるデータの最大量は、「最大パケット長」と称する。また、メモリバスは、「スイッチファブリック」と称してもよいし、メモリバスプロトコールは、「スイッチファブリックプロトコール」と称する場合もある。
【０００７】
ＳＯＣ装置に関連するメモリトランザクションの制御用メモリ管理システムに関する先行技術が、例えば、国際公開ＷＯ０１／３７０８８  Ａ２に開示されている。このようなメモリ管理システムは、通信コア（クライアントシステム）間のデータストリームを切り替えるために使用されるルーチンコントローラまたは中央処理装置およびシステムバス上に在る主または仮想中央演算処理部上のデジタル信号処理器を有する。
【０００８】
【発明が解決しようとする課題】
システムオンチップ（ＳＯＣ）のような電子装置または電子システムを設計する場合、メモリアクセスの待ち時間とメモリアクセス効率との間には、トレードオフ（ｔｒａｄｅ  ｏｆｆ）の関係が存在する。典型的に、ひとつのメモリバストランザクションで許容されるデータの量が多いほど、メモリ帯域利用効率は高くなる。一方、個々のメモリバストランザクション時間が長くなるほど、メモリアクセス待ち時間が長くなる。アクセス待ち時間が増大すると、クライアント側でのバッファの必要サイズ、即ち、トランザクションに関するデータを記憶するために必要な一時的記憶領域の量は、一般的に増加する。この結果、チップのサイズが大きくなり、チップのコスト増大につながる。
【０００９】
メモリアクセス待ち時間が増大すると、結果的にクライアントシステムの効率が低下することになる。例えば、検討する電子装置の一例として、マイクロプロセッサの場合を考慮すると、データおよび命令キャッシュがあっても、メモリアクセス待ち時間は、プロセッサ効率に大きな影響がある。
【００１０】
したがって、システム設計時に、メモリアクセス待ち時間とクライアントシステム効率との間で検討すべきトレードオフがある。メモリアクセス待ち時間とメモリ効率との間の最適バランスは、使用されるメモリタイプおよびメモリバスに付された、あるいは接続されたクライアントシステムの数と性質など、全体として各構成要因の特徴に大きく依存する。
【００１１】
システム構成への変更、代表的にはシステムオンチップ（ＳＯＣ）への変更、例えば、クライアントシステムの追加、取り外、メモリタイプの変更などがあると、結果的に、メモリバスプロトコール、特に許容可能な最大メモリトランザクション長、即ち最大パケット長が変化することがある。例えばＳＯＣその他種類のデジタルシステムなど、電子システムの設計企画では、既存設計の再利用が一般的また必要な実務作業であるので、メモリタイプやシステムアクセスの要求事項での前述の変更事項の発生は、極めて一般的である。
【００１２】
さらに、従来のメモリバスアーキテクチャーは、それぞれの新たなＳＯＣ設計が、それぞれのクライアントシステムの（上述のメモリバスインタフェースに対応する）メモリアクセス回路には、極めて一般的であるので、特定のクライアントシステムの設計が再利用される度に、ある程度は、再設計しなければならない。一方、このような回路は、各クライアントシステムである形で存在するように複雑である必要はないのではあるが、このような再設計に関するメモリバスインタフェースに必要な仕事量は、ＳＯＣ内のクライアントシステムの数と直線的に増加する。また、これによって、ＳＯＣの生産に必要な設計資源が増大し、機能的問題（いわゆる”バグ”）付の設計を発生させてしまう可能性が増え、ゆえに、全体の設計時間が増大する可能性があり、例えば、投下資本に対する回転が、結果的に低下する。さらには、ＳＯＣの規模が大きくなる方向に向かっている現在の設計傾向を考慮すると、このような問題は、継続的に的に増加してきている。
【００１３】
さらに、システムの部品、例えば、デジタルシステム内のクライアントシステムによっては、所与の要件事項についてメモリシステムの効率を最適化するためにメモリバスプロトコールの詳細内容を変える必要がある。従来のデジタル電子システムでは、メモリバスプロトコールを変更する場合、クライアントシステムのそれぞれおよび全部のメモリバスインタフェースを見直して最終的には変更する必要があるので、再設計に関連するこのようなメモリバスインタフェースに必要な仕事量は、上述と同様に、ＳＯＣのクライアントシステムの数と直線的に増大する。このため、ＳＯＣを生産するのに必要な設計資源が増大し、機能的問題（”バグ”）をかかえた設計が流出する可能性が増え、また、全体の製品設計時間が増大する可能性がある。
【００１４】
【課題を解決するための手段】
上述の問題点を鑑みてなされた、本発明の好適な実施形態による電子装置は、メモリ部と、複数のクライアントシステムと、メモリバスと、前記複数のクライアントシステムのうち少なくとも１つのクライアントシステムに長さ変換部を備え、前記一つのクライアントシステムを前記メモリバスに接続するメモリアクセスインタフェースとを含む装置を備える電子装置であって、前記複数のクライアントシステムが、前記メモリバスを介して、データストリームを前記メモリ部に転送し、前記データストリームの長さが制限値を超えた場合、前記長さ変換部は、前記データストリームを複数の副ストリームに分割することを特徴とする。
【００１５】
このような制限値は、メモリバスを介して転送可能な最大パケット長であることが望ましい。
【００１６】
本発明のもう１つの好適な実施形態によれば、電子装置でメモリとクライアントとの間のデータトランザクションを制御する方法は、この電子装置は、複数のクライアントシステム、メモリ部、前記クライアントシステムを前記メモリ部に接続するスイッチファブリック、前記データトランザクションと前記クライアントシステムの少なくとも１つと前記メモリの間に備えたメモリアクセスインタフェース部を制御するメモリアクセスコントローラを備える電子装置に関する方法であって、前記データトランザクションに関連するデータを転送するパケットで転送可能な最大量のデータである最大パケット長を設定し、前記データトランザクションが、前記最大パケット長を超えている長さである場合には、前記データトランザクションを複数の副トランザクションに分割することを特徴とする。
【００１７】
また、この方法は、前記副トランザクションのそれぞれに、アクセス開始アドレス、アクセス長およびアドレス増分方向を有するヘッダを加えることを具備することが好ましい。
【００１８】
さらに、本発明のもう１つの好適な実施形態によれば、電子システムでメモリとクライアントの間のデータトランザクションリクエストを特定する方法はメモリとクライアントとの間のデータトランザクションリクエストを特定する方法において、複数のクライアントシステム、メモリ部、前記クライアントシステムと前記メモリとの間の前記データを転送するメモリバス、メモリアクセスコントローラ、および前記データトランザクションリクエストを制御するために前記クライアントシステムの少なくとも１つに備えたメモリアクセスインタフェース部を備える電子装置に関する方法であって、データ転送の長さが、前記最大データ転送長を超えている場合には、前記データ転送を、前記最大データ転送長に対応する最大長を有する副トランザクションに分割し、前記クライアントに関する情報および前記メモリへのアクセスに関するアドレス情報を含むヘッダを、前記副トランザクションのそれぞれに追加し、前記ヘッダ付きの前記副トランザクションを、前記メモリアクセスコントローラに転送することを特徴とする。
【００１９】
さらに、本発明のもう１つの好適な実施形態によるシステムは、メモリ部および複数のクライアントシステムを有する装置に使用するシステムにおいて、前記クライアントシステムと前記メモリ部との間の通信用チャネルと、前記チャネルを介して前記クライアントシステムと前記メモリとの間のトランザクションの最大量を定めるプロトコールと、少なくとも前記クライアントシステムの１つと前記チャネルとの間の１つの接続に備えたインタフェースとを有し、前記トランザクションが、前記最大サイズを超えている長さである場合には、前記クライアントシステムと前記１つのメモリとの間の前記トランザクションを、前記最大サイズを超えない長さを有する複数の副トランザクションに変換することによって、前記インタフェースが、前記クライアントシステムを、前記チャネルから隠すことを特徴とする。
【００２０】
【発明実施の形態】
システム構成の詳細およびメモリタイプに依存しないメモリアクセス能力を有する本発明の好適な実施形態による電子システムを以下に説明する。
【００２１】
図１にはメモリアクセスコントローラ５と少なくとも１つのメモリ装置６を有する単一のメモリ副システム（以下、メモリ部と称する）に接続された複数の機能部（以下、クライアントシステムと称する）１を含む電子システムを表している。クライアントシステムおよびメモリ部は、データトランザクション用のチャネルまたはネットワークを構成する配線２および３を共用する。データトランザクションには、既述のように、クライアントシステムからメモリ装置への書き込みデータおよび／またはメモリ装置からクライアントシステムへの読み込みデータを含む。また、上述のように、配線は、メモリバスと称する。物理的ネットワークとして見る場合は、メモリバスは、”スイッチファブリック”とも称することができる。図１において、メモリバスは、読み込みバス２および書き込みバス３を含む。ここで、”書き込み”とは、クライアントシステムからのデータが、メモリ装置６に、書き込みバス３を介して、書き込まれる動作を意味する。このような書き込みバス３は、読み込みバスとは異なるバスである。”読み込み”動作とは、読み込みバスを介して、メモリ装置６からのデータをクライアントシステムが読み込む動作を意味する。クライアントシステムは、好ましくは、クライアント１ｉ（ここで、ｉは、図１の例で、１乃至ｍの範囲内の正の整数である）として、図１で説明されている複数のクライアントシステムのそれぞれが、メモリバスインタフェース７ｉ（ｉ＝１．．．ｍ）を介して、メモリバスに接続されている。
【００２２】
本発明による電子システムのクライアントシステムは、メモリバスを介して、メモリ部へのアクセスを有しており、このアクセスは、メモリバスプロトコール即ちスイッチファブリックプロトコールにしたがって行われる。本発明の好適な実施形態の一例は、図１で説明される機能構成を有するシステムオンチップ（以下、ＳＯＣと称する）設計に関する。したがって、図１は、デジタルシステムを説明するもので、このデジタルシステムは、ハードウェアによる信号処理中核部および／またはプログラマブル信号処理部を有する複数のクライアントシステム１ｉ（ここで、ｉ＝１，２，．．．ｍであり、ｍは正の整数である）を有する。
【００２３】
図１によるメモリバスは、単向性メモリ読み込みバス２および単向性メモリ書き込みバス３を有する。スイッチファブリックは、メモリ装置６へのアクセスができるようにするメモリアクセスコントローラ５に接続されている。
【００２４】
上述のように、最大パケット長は、１つのデータ転送でメモリバスを介して転送可能なデータ量によって決定され、これは、メモリバスの物理的制約によって制限される。例えば、クライアントシステムがデータをメモリ装置に書き込もうとする単一の書き込みトランザクションのトランザクション長が、メモリバスによって転送可能な量を超過している場合は、このトランザクションは、バス能力即ち最大パケット長以内のデータ量を有する小片に分割しなければならない。各小片は、パケットに対応し、最大パケット長を超えないパケット長を有する。
【００２５】
一方、複数のクライアントシステムが、同時に書き込みトランザクションを実行しようとすると、図１にしめすように、書き込みバスアービタ４は、トランザクションの仲裁機能を実行、即ち、クライアントシステムとメモリとの間でトランザクションを行うためのシーケンスまたはルールを決め、いわばデータの”交通規制”を行う。同様に、メモリからのデータを読み込む読み込み動作は、同様な方法で行なわれる。
【００２６】
メモリ読み込みバス２（以下、ＭＲＤバスと称する）は、コマンドおよびメモリアクセスコントローラ５からクライアントシステム  １ｉへのデータ転送に使用される。一方、メモリ書き込みバス３（以下、ＭＷＲバスと称する）は、コマンドおよびクライアントシステム１ｉからメモリアクセスコントローラ５へのデータの転送に使用される。ＭＷＲバス３へのアクセスは、書き込みバスアービタ４により裁定される。メモリアクセスコントローラ５により、メモリ装置６へのアクセスが可能となる。メモリバスインタフェース部７ｉは、クライアントシステム１ｉへのメモリバスプロトコールを有しており、且つ、それぞれ図２および図３のメモリバスインタフェース書き込みモジュールおよびメモリバスインタフェース読み込みモジュールを参照して、既述したように、メモリバスインタフェース書き込みモジュールおよびメモリアクセスインタフェース読み込みモジュールを備えている。
【００２７】
本発明の好適な実施形態によれば、このようなメモリバスインタフェース部７ｉは、メモリアクセスプロトコール即ちメモリバスプロトコールまたはスイッチファブリックプロトコールを備えてもよいが、このメモリアクセスプロトコールは、クライアントシステム１ｉにメモリバスプロトコールが”見える”必要がないように、メモリバスプロトコールと独立させている。これは、例えば、図４および図５を参照して以下に説明するように、メモリバスインタフェース部７ｉの書き込みおよび読み込みモジュールに、トランザクション長変換機構を追加することによって実現される。先行技術では、クライアントシステム１ｉが、そのインタフェース上に、コマンドを転送するためにトランザクション長変換を実行し、且つメモリバスを介してデータを受信する機能または回路（図示せず）を有していなければならない。すなわち、図２のクライアントシステムのクライアント側書き込みインタフェース８は、その中にトランザクション長変換を行うための機能または回路を有し、メモリバスインタフェース書き込みモジュール７１およびメモリバスを介して、コマンドおよびデータ並びに受信データをメモリに転送する。同様に、図３のクライアントシステムのクライアント側読み込みインタフェース１２は、その中にトランザクション長を行うための機能または回路を有し、メモリバスインタフェース書き込みモジュール７１およびメモリバスを介して、コマンドをメモリに転送する。
【００２８】
本発明の好適な実施形態は、以下説明するように、開始アドレス、アクセス長およびアドレス増分方向に基づき、図１のメモリバスインタフェース部７ｉによって、クライアントシステム１ｉのそれぞれとメモリ装置６との間のトランザクションを特定する。
【００２９】
図４に示すように、本発明の好適な実施形態によるメモリバスインタフェース部７ｉは、書き込みバッファ７３０、インタフェースタイミングジェネレータ７３２およびトランザクション長変換部７３６を有するメモリバスインタフェース書き込みモジュール７３を有する。クライアントシステム１ｉは、包括インタフェース側即ち書き込みインタフェース１７と調和し、これはトランザクション長変換部を備えていないので、後述するデータ付きコマンドが、メモリバスインタフェース書き込みモジュール７３へ転送され、ここで、コマンドおよび／またはデータが、書き込みバッファ７３０に記憶され、トランザクション長変換部７３６によって変換されたトランザクション長を有し、且つ、インタフェースタイミングジェネレータ７３２を用いてメモリバスインタフェースタイミングを生成する。
【００３０】
同様に、図５に示すように、本発明の好適な実施形態によるメモリバスインタフェース部７ｉは、書き込みバッファ７４０、読み込みバッファ７２４、インタフェースタイミングジェネレータ７４４およびトランザクション長変換部７４６を有するメモリバスインタフェース読み込みモジュール７４を有する。クライアントシステム１ｉは、包括インタフェース側即ち読み込みインタフェース２２と調和し、これはトランザクション長変換部を備えていないので、後述するデータ付きコマンドが、メモリバスインタフェース７ｉへ転送され、ここで、コマンドおよび／またはデータが、バッファに記憶され、トランザクション長変換部７４６によって変換されたトランザクション長を有し、且つ、インタフェースタイミングジェネレータ７４４を用いてメモリバスインタフェースタイミングを生成する。
【００３１】
メモリバスインタフェース読み込みモジュール７４が、メモリ書き込みバスに送ったリクエストの許可後、リクエストされた読み込みデータは、メモリ読み込みバスを介して、メモリバスインタフェース読み込みモジュール７４に転送される。本工程のより詳細な説明は、以下のとおりである。
【００３２】
メモリバスインタフェース書き込みモジュール
図６Ａは、本発明の好適な実施形態によるクライアント側コマンドおよびデータビットマッピングの一例を示し、図６Ｂは、メモリバス書き込みモジュール用のメモリバスコマンドビットマッピングの一例を示す。クライアント側コマンドおよびデータビットマッピングの詳細な構造は、以下の通りである。図６Ａにおいて、フィールド６０２は、フロー制御機構の一部を形成するＦＢ（Ｆｌａｇ  Ｂｉｔ：フラグビット）を示しており、アイドルサイクルを示す場合は、’００’に、コマンドワードサイクルを示す場合は、’０１’に、データワードサイクルを示す場合は、’１０’に、現行トランザクションの最終ワードを示す場合は、’１１’に設定される。リバースフラグフィールド６０４は、アドレス増分の指令例えば正増分の場合は、’０’、負増分の場合は”１”を示すために使用される。ワードカウントフィールド６０６は、所望データワードの数を示し、ワード開始アドレスフィールド６０８は、トランザクション開始アドレスを示すために使用される。バイトイネーブルフィールド６１２は、メモリへの書き込み動作のバイトマスクとして再使用されるビットを有するが、’１’は、書き込みを可能（イネーブル）にし、’０’は、書き込みを不可（ディセーブル）にする。
【００３３】
本発明の好適な実施形態によるメモリバスインタフェース書き込みモジュールの動作は、図６Ａおよび図６Ｂのダイヤグラムと共に、図１０のフローチャートを参照して、以下のとおりに説明する。図１０のステップＳ１０において、システムは、データ付きコマンド（ｃｏｍｍａｎｄ  ｐｌｕｓ  ｄａｔａ）を受けるために、待機モードにある。書き込みコマンドおよび関連データを、ステップＳ１１で、クライアントシステム１ｉから受領後、メモリバスインタフェース部７ｉは、メモリバスインタフェース書き込みモジュール７３（図４）を介して、クライアントコマンドを、図６Ｂで示すフォーマットの一連のメモリ書き込みバス（ＭＷＲバス）コマンドにマッピングすることにより、トランザクション長およびプロトコール変換を行う。このような変換には、例えば、ステップＳ１２で示されるように、クライアントＩＤ（またはターゲットＩＤ）６２０、読み込み／書き込みリクエストインジケータフィールド６２４、および狭幅ワードカウントフィールド６２６を挿入することが含まれる。
【００３４】
ステップＳ１３で、単一リクエストのワードカウントが、単一のメモリバスリクエスト、即ち上述の最大パケット長の観点から説明された最大ＭＷＲバスパケットサイズにマッピングされ得る量を超過する場合、メモリバス（書き込みモジュール）側で、もう１つの書き込みリクエストが、図４のトランザクション長変換部７３６によって、作り出されるので、結果として、ステップＳ１４で、ＭＷＲバス側に、複数の書き込みリクエストを作り出す。１つのクライアントトランザクションを複数のバストランザクションにマッピングする、このようなプロセスの概要は図８で示すダイアグラムで図示されている。
【００３５】
図８で示される例で、それぞれが、ワードカウントＡおよびワードカウントＢを有する２つのクライアント書き込みトランザクションは、メモリバス（スイッチファブリック）プロトコールによって強いられるトランザクション長制限に従う一連のメモリ書き込みトランザクションＴａ１乃至Ｔａ４およびＴｂ１乃至Ｔｂ３に分けられている。
【００３６】
パケットベースのプロトコールは、メモリバスおよびクライアント側の双方で使用されるので、各パケットは、対応トランザクションに関するアクセスコマンドを含むヘッダから開始する。クライアント側では、ヘッダは、図８の例で、クライアントヘッダＣａおよびＣｂと称し、且つ、ＭＷＲバス側では、ヘッダは、ＭＷＲヘッダＷａ（図８の例で、Ｗａ１乃至Ｗａ４）およびＷｂ（図８の例で、Ｗｂ１乃至Ｗｂ３）と称する。図４のメモリバスインタフェース書き込みモジュール７３は、所与のクライアントトランザクションを完了するために必要なバストランザクションの数を最小にしようとする。その結果、最大ＭＷＲバスパケットサイズ、即ちメモリバスにより制限され且つメモリバスプロトコール中で特定される最大パケット長を超過しないクライアントトランザクションは、単一バストランザクションとして、メモリ装置６に書き込まれ（例えば、図１のメモリアクセスコントローラ５を介して）、ステップＳ１５に移り、アクセスコマンド付きのヘッダを書き込みリクエストに挿入し、且つステップＳ１６で、変換されたリクエストを、ＭＷＲバスを介して、メモリコントローラに送る。図１０を参照のこと。データの最後である場合即ちワードカウントが終了した場合に、工程はステップＳ１０の待機モードに戻る。まだ、書込むべきデータがある場合は、プロセスは、ステップＳ１２に戻る。
【００３７】
一方、メモリバスインタフェースが受領したクライアントトランザクションが、最大ＭＷＲバスパケットサイズを超過しない場合は、プロセスはステップＳ１６に直進し、ここで変換されたリクエストが、ＭＷＲバスを介して、メモリコントローラに送られる。
【００３８】
既に上述したように、クライアントトランザクションが、最大ＭＷＲバスパケットサイズを超過すると、メモリバスインタフェース書き込みモジュール７３は、このようなクライアントトランザクションを一連の書き込みバストランザクションに分割し、ワードカウントＡの場合、Ｔａ（Ｔａ１乃至Ｔａ３）に、ワードカウントＢの場合は、Ｔｂ（図８ではＴｂ１乃至Ｔｂ２）になり、最大ＭＷＲバスパケットサイズ、即ち、可能な最大長を有しており、これに続くのは、最終バストランザクションＴａ４（ワードカウントＡの）およびＴｂ３（ワードカウントＢの）であり、ワードカウントＢは、トランザクションデータの残り（図８で示されるクライアントトランザクション中の残りデータ）を有しており、且つ最大バストランザクション長を越えない長さを有している。
【００３９】
メモリバスインタフェース読み込みモジュール
本発明の好適な実施形態により、図７Ａは、包括クライアント側コマンドビットマッピングを示し、図７Ｂは、メモリバスインタフェース読み込みモジュール用のメモリバスコマンドビットマッピングの一例を示す。クライアント側コマンドマッピングは、図４のメモリバスインタフェース書き込みモジュール７３に類似しているが、ＦＢフィールド８０２が２つでなく、１つのビットしか有しない。読み込みモジュールクライアント側インタフェース２２の場合は、ＦＢフィールド８０２（フロー制御機構の供給部）は、有効なコマンドワードサイクル（フロー制御）を示す’１’に、およびアイドルサイクルを示す’０’に設定される。
【００４０】
メモリバスインタフェース書き込みモジュール７３の場合と同様に、図５のメモリバスインタフェース読み込みモジュール７４は、リバースフラグ８０４を有しており、このフラグは、アドレス増分の指令例えば正増分の場合は、’０’、負増分の場合は”１”を示すために使用される。ワードカウントフィールド８０６は、所望データワードの数を示し、ワード開始アドレスフィールド８０８は、トランザクション開始アドレスを示すために使用される。
【００４１】
本発明の好適な実施形態によるメモリバスインタフェース読み込みモジュールの動作は、図７Ａおよび図７Ｂのダイヤグラムを参照すると共に、図１１のフローチャートを参照して、以下のとおりに説明する。
【００４２】
図４を参照して上述したメモリバス書き込みモジュール７３と同様に、書き込みコマンドおよび関連データを、ステップＳ２１で、クライアントシステム１ｉから受領後、メモリバスインタフェース部７ｉは、メモリバスインタフェース読み込みモジュール７４（図５）を介して、クライアントコマンドを、図７Ｂで示すフォーマットを有する一連のメモリ書き込みバス（ＭＷＲバス）読み込みコマンドにマッピングすることにより、トランザクション長およびプロトコール変換を行う。このような変換には、図１１のステップＳ２２で示されるように、クライアントＩＤ（ターゲットＩＤ）８２０、読み込み／書き込みリクエストインジケータフィールド、および狭幅ワードカウントフィールドを挿入することが含まれる。
【００４３】
ステップＳ２３で、単一リクエストのワードカウントが、単一のメモリバスリクエストにマッピングされ得る量を超過する場合、メモリバス側で、もう１つの読み込みリクエストが、図５のトランザクション長変換部７４６によって、作り出されるので、結果として、ステップＳ２４で示されるように、最大以下のＭＲＤバスパケットサイズに対応するパケットサイズを有するトランザクション長を有するメモリバス側に、読み込みリクエストを作り出す。さらに、ＭＲＤヘッダは、ステップＳ２５で、このような複数の読み込みリクエストのそれぞれに対するインサータである。１つのクライアントトランザクションを、複数のバストランザクションにマッピングするこのようなプロセスは、図９で示されるダイアグラムで説明される。
【００４４】
図９で示される例で、それぞれが、ワードカウントＡおよびワードカウントＢを有する２つのクライアント読み込みトランザクションは、メモリバス（スイッチファブリック）プロトコール、即ち図９で示す最大パケット長で強いられるトランザクション長制限に従う一連のメモリ読み込みバストランザクションＲ１乃至Ｒ４およびＲ５乃至Ｒ７に分けられている。
【００４５】
また、図５のダイヤグラムで示されるように、且つ図１１のステップＳ２６で説明されるように、読み込みリクエストは、先ず、書き込みバスを介して、メモリアクセスコントローラに送られる。データの最後である場合、プロセスは、ステップＳ２０の待機モードに戻る。まだ読込むべきデータが残っている場合は、プロセスは、ステップＳ２２に戻る。
【００４６】
次に、図５のダイヤグラムで示すように、読み込みデータは、メモリ読み込みバスを介して、クライアントシステムに戻る。
【００４７】
メモリ書き込みバスの場合と同様に、パケットベースのプロトコールは、メモリ読み込みバス上で使用されるので、各パケットは、対応トランザクションに関するアクセスコマンドを含むヘッダから開始する。メモリ読み込みバス側では、ヘッダは、ＭＲＤヘッダＲａ（図９の例で、Ｒａ１乃至Ｒａ４）およびＲｂ（図９の例で、Ｒｂ１乃至Ｒｂ３）と称し、且つ、ＭＷＲバス側では、ヘッダは、ＭＷＲヘッダＷａ（図９の例で、Ｗａ１乃至Ｗａ４）およびＷｂ（図９の例で、Ｗｂ１乃至Ｗｂ３）と称する。図５のメモリバスインタフェース読み込みモジュール７４は、所与のクライアントトランザクションを完了するために必要なバストランザクションの数を最小にしようとする。その結果、最大ＭＷＲバスパケットサイズ（最大パケット長）を超過しないクライアントトランザクションは、単一バストランザクションとして、メモリ装置６から読込まれる（例えば、図１のメモリアクセスコントローラ５を介して）。
【００４８】
クライアントトランザクションが、最大ＭＲＤバスパケットサイズを超過すると、メモリバスインタフェース読み込みモジュール７４は、このようなクライアントトランザクションを一連のバストランザクション分割し、ワードカウントＡの場合、Ｒａ（Ｒａ１乃至Ｒａ３）に、ワードカウントＢの場合は、Ｒｂ（Ｒｂ１乃至Ｒｂ２）になり、（図９で）、最大メモリバスパケットサイズ、即ち可能な最大長を有しており、これに続くのは、最終バストランザクションＲａ４（ワードカウントＡの）およびＲｂ３（ワードカウントＢの）であり、トランザクションデータの残り（図９で示されるクライアントトランザクション中の残りデータ）を有しており、且つ最大バストランザクション長を越えない長さを有している。
【００４９】
最後に、各パケットに付随するアクセスコマンドを含むヘッダは、リクエストされたデータを対応するクライアントシステム１ｉに送る前に、取り外される。読み込みデータが、メモリから対応するクライアントシステム１ｉに転送されるプロセスは、図１２で図説されている。ステップＳ２７で、メモリコントローラ（図１のメモリアクセスコントローラ５）は、ＭＲＤバス（図１の読み込みバス２）を介して、図１１のステップＳ２６の読み込みリクエストに対応する読み込みデータを送る。次に、各パケットに付随するアクセスコマンドを含むヘッダは、ステップＳ２９で、リクエストされたデータを対応するクライアントシステム１ｉに送る前に、ステップＳ２８で取り外される。
【００５０】
本発明は、好適な実施形態に基づく実施例にて本明細書である程度詳細に説明されたが、本発明の範囲から逸脱することなく、他に多くの変形、組み合わせ、部分組み合わせが可能であることは、この技術分野で通常の知識を有するものには明らかであるだろう。
【００５１】
例えば、本発明の好適な実施形態によるデジタルシステムには、外部メモリ、および集積内部メモリ装置を有するメモリ部を含むことができる。また、メモリ部は、集積内部メモリ装置および外部装置の双方の組み合わせも含むことも可能である。
【００５２】
さらに、本発明は、システムオンチップ構造について、好適な実施形態の観点から説明したが、本発明は、より包括的なデジタルシステムや、広義には、本システムを使用する他の電子システム、装置、装置類および／または本発明の好適な実施形態による装置に適用することができる。
【００５３】
また、メモリバスインタフェースは、本発明の実施形態で、書き込みおよび読み込み用の別個のモジュール、即ちメモリバスインタフェース書き込みモジュールおよびメモリバスインタフェース読み込みモジュールをそれぞれ有するとして説明したが、本発明は、この実施形態に制限または限定されるものとして解釈すべきではない。したがって、メモリバスインタフェースは、同様の機能を実現する単一のモジュール、部、機能ブロック等に統合してもよいし、必要により、双方の機能は、複数のブロックまたは部に統合してもよいし、単一のモジュールまたは部に統合してもよい。
【００５４】
さらに、本発明は、物理的部またはブロックとして、メモリバス、メモリバスインタフェース部、メモリアクセスコントローラ、およびアービタについて、システムの好適な実施形態により一例に基づいて説明したが、このような機能は、ソフトウェアプログラムやこれに類するものによって実現することができ、おのおのの専用の機能ブロックまたはソフトウェアプログラムに分ける必要はない。
【００５５】
また、メモリバスには、既存の標準例えばＰＣＩバス、ＶＭＥバス等または他のメモリアクセス手段に基づく、任意のメモリバスの種類を含めることもできる。
【００５６】
同様に、本発明は、タイプとは無関係にメモリについて説明したので、任意の種類のメモリ例えばＳＤＲＡＭ、ＲＯＭ、フラッシュメモリ等が使用可能である。
同様な考え方は、バッファまたはバッファの物理的、機能的な実現、クライアントインタフェース、および他の物理的部品またはシステムの機能ブロック、同じく本発明の好適な実施形態を用いる装置および装置類、同様に機能部品に、個々にまたは組み合わせを使用した場合にも当てはまる。
【００５７】
【発明の効果】
本発明によれば、通常のバッファリング、タイミング生成の特徴に加えて、トランザクション長変換が可能なメモリアクセスプロトコールが備わっているので、異なる最大バストランザクション長を有する新たなＳＯＣ設計を行う場合でも、各クライアントシステムの再設計部分の必要性がなくなる。本発明の好適な実施形態を通じて、各クライアントシステムに対する設計変更の代わりに、設計変更は、トランザクション長変換、リクエスト、および包括メモリバスインタフェース部のプロトコール生成回路にしか必要としない。この結果、ＳＯＣの生産に必要な設計資源を減らすことができるので、機能的問題（”バグ”）を含めた設計を流出させる可能性が減少し、また、全体の製品設計時間および全体の製品設計時間が減少する可能性がある。
【００５８】
また、本発明の好適な実施形態によれば、システム構成の詳細およびメモリタイプに依存しないデジタルシステムオンチップ中にメモリアクセスプロトコールが備わっているので、個々の部品の変更例えば設計変更の必要が生じた場合にクライアントシステムの変更に対して、システムの適用範囲が更に広くなる。
【００５９】
クライアントシステムをメモリバスプロトコールから見えなくすることによって、開発時間や他の資源を改良即ち減少させることができる。
【００６０】
クライアントシステムのリクエストしたトランザクションのトランザクション長を変換した後、本発明の好適な実施形態によるメモリバスインタフェース部では、メモリバスプロトコールの限定を”認識”するクライアントシステムが無くても、トランザクションの実行が可能となる。
【００６１】
また、クライアントシステムが、バスプロトコールから隠されまたは隔離されている本発明の好適な実施形態によれば、メモリバスプロトコールの変更に必要性が生じても、クライアントシステム内で、メモリバスインタフェースを見直しかつ変更することは不要となるので、再設計に要する作業量を、劇的に減らすことができる。その結果、ＳＯＣの生産に必要な設計資源を減らすことができるので、機能的問題（”バグ”）を含めた設計を流出させる可能性が減少し、また、全体の製品設計時間が減少する可能性がある。
【図面の簡単な説明】
【図１】本発明に関するデジタルシステムオンチップの概略図である。
【図２】従来のメモリバスインタフェース書き込みモジュールの概略図である。
【図３】従来のメモリバスインタフェース読み込みモジュールの概略図である。
【図４】本発明の好適な実施形態によるメモリバスインタフェース書き込みモジュールの概略図である。
【図５】本発明の好適な実施形態によるメモリバスインタフェース読み込みモジュールの概略図である。
【図６】図６（Ａ）：  本発明の好適な実施形態による書き込みトランザクション用クライアント側コマンドおよびデータビットマッピングの概略図である。
図６（Ｂ）：  本発明の好適な実施形態による書き込みトランザクション用メモリ書き込みバス側コマンドおよびデータビットマッピングの概略図である。
【図７】図７（Ａ）：  本発明の好適な実施形態による読み込みトランザクション用クライアント側コマンドおよびデータビットマッピングの概略図である。
図７（Ｂ）：  本発明の好適な実施形態による読み込みトランザクション用メモリ書き込みバス側コマンドおよびデータビットマッピングの概略図である。
【図８】本発明の好適な実施形態による書き込みトランザクション用のトランザクション長変換の概略図である。
【図９】本発明の好適な実施形態による読み込みトランザクション用のトランザクション長変換の概略図である。
【図１０】本発明の好適な実施形態による書き込みトランザクション用のメモリバスインタフェースで実行される動作ステップを示すフローチャートである。
【図１１】本発明の好適な実施形態による読み込みトランザクション用のメモリバスインタフェースで実行される動作ステップを示すフローチャートである。
【図１２】本発明の好適な実施形態により、メモリからのデータが、対応するクライアントシステムに転送される、読み込みトランザクションについて実行される動作ステップを示すフローチャートである。
１ｉ：クライアントシステム、    ２：メモリ読み込みバス、    ３：メモリ書き込みバス、    ４：書き込みバスアービタ、    ５：メモリアクセスコントローラ、    ６：メモリ装置、    ７ｉ：メモリバスインタフェースｉ、ここでｉ＝１，．．．ｍ，であり、ｍは、システムオンチップ内でのクライアントシステムの数である、    ７１，７３：メモリバスインタフェース書き込みモジュール、    ７２，７４：メモリバスインタフェース読み込みモジュール；    ７３６，７４６：トランザクション長変換部
【図１】
2004318755.tif 000003
【図２】
2004318755.tif 000004
【図３】
2004318755.tif 000005
【図４】
2004318755.tif 000006
【図５】
2004318755.tif 000007
【図６】
2004318755.tif 000008
【図７】
2004318755.tif 000009
【図８】
2004318755.tif 000010
【図９】
2004318755.tif 000011
【図１０】
2004318755.tif 000012
【図１１】
2004318755.tif 000013
【図１２】
2004318755.tif 000014
【外国語明細書】
2004318755.tif 000015
2004318755.tif 000016
2004318755.tif 000017
2004318755.tif 000018
2004318755.tif 000019
2004318755.tif 000020
2004318755.tif 000021
2004318755.tif 000022
2004318755.tif 000023
2004318755.tif 000024
2004318755.tif 000025
2004318755.tif 000026
2004318755.tif 000027
2004318755.tif 000028
2004318755.tif 000029
2004318755.tif 000030
2004318755.tif 000031
2004318755.tif 000032
2004318755.tif 000033
2004318755.tif 000034
2004318755.tif 000035
2004318755.tif 000036
2004318755.tif 000037
2004318755.tif 000038
2004318755.tif 000039
2004318755.tif 000040
2004318755.tif 000041
2004318755.tif 000042
2004318755.tif 000043
2004318755.tif 000044
2004318755.tif 000045
2004318755.tif 000046
2004318755.tif 000047
2004318755.tif 000048
2004318755.tif 000049
2004318755.tif 000050
2004318755.tif 000051
2004318755.tif 000052
2004318755.tif 000053
2004318755.tif 000054
2004318755.tif 000055
2004318755.tif 000056
2004318755.tif 000057
2004318755.tif 000058
2004318755.tif 000059
2004318755.tif 000060
2004318755.tif 000061
2004318755.tif 000062
2004318755.tif 000063
2004318755.tif 000064
2004318755.tif 000065
2004318755.tif 000066
2004318755.tif 000067
2004318755.tif 000068
2004318755.tif 000069
2004318755.tif 000070
2004318755.tif 000071
2004318755.tif 000072