(57)【要約】  メモリに格納されるデータを一時的に格納するバッファメモリを備え、メモリに対する命令を受信し、受信した命令に基づいて、命令によって必要なバッファメモリの容量をバッファメモリに確保するためのバッファメモリ確保専用パケットを送信し、送信されたバッファメモリ確保専用パケットに対応するバッファメモリ確認信号を受信し、受信したバッファメモリ確認信号に基づいて、受信した命令を実行することにより、大規模システムＬＳＩにおいてバッファメモリを効率的に利用することが可能なメモリ制御装置およびメモリ制御方法を提供する。
2007097007.tif 000002
【特許請求の範囲】
【請求項１】
メモリへのアクセスを制御するメモリ制御装置であって、
前記メモリに格納されるデータを一時的に格納するバッファメモリと、
前記メモリに対する命令を受信する命令受信手段と、
前記命令受信手段によって受信した命令に基づいて、前記命令によって必要な前記バッファメモリの容量を前記バッファメモリに確保するためのバッファメモリ確保専用パケットを送信するバッファメモリ確保専用パケット送信手段と、
前記バッファメモリ確保専用パケット送信手段によって送信されたバッファメモリ確保専用パケットに対応するバッファメモリ確認信号を受信するバッファメモリ確認信号受信手段と、
前記バッファメモリ確認信号受信手段によって受信したバッファメモリ確認信号に基づいて、前記命令受信手段によって受信した命令を実行する命令実行手段と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記命令は、ＣＰＵから発生され、
前記メモリ制御装置は、システムコントローラである、
ことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記メモリ制御装置は、前記メモリ制御装置を複数個備える大規模システムＬＳＩのためのＬＳＩであることを特徴とする請求項１に記載のメモリ制御装置。
【請求項４】
メモリに格納されるデータを一時的に格納するバッファメモリを備えたメモリ制御装置において実行される、前記メモリへのアクセスを制御するメモリ制御方法であって、
前記メモリに対する命令を受信し、
前記受信した命令に基づいて、前記命令によって必要な前記バッファメモリの容量を前記バッファメモリに確保するためのバッファメモリ確保専用パケットを送信し、
前記送信されたバッファメモリ確保専用パケットに対応するバッファメモリ確認信号を受信し、
前記受信したバッファメモリ確認信号に基づいて、前記受信した命令を実行する、
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つまたは複数の機能を実現する処理ユニット間のデータ転送技術に関し、特に、多数の処理ユニットを有する大規模システムにＬＳＩおいて、バッファメモリを効率的に利用するメモリ制御装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
従来、システムＬＳＩは、１つまたは複数の機能を実現するように構成された機能ブロックが複数個、１つのチップ上に搭載される構成になっている。これらの機能ブロックは、例えば、ＣＰＵ、メモリ、専用回路などの１つの処理ユニットとして捉えることが可能であり、これらの処理ユニット間で信号あるいはデータを交換することによりシステムＬＳＩにおける処理が進行する。【０００３】
このようなシステムＬＳＩが大規模化してくると、機能ブロック間、すなわち、処理ユニット間での信号のやり取りで問題が出てくる。
図１は、大規模システムＬＳＩの構成を示す図である。【０００４】
図１において、データ処理を行う大規模システムＬＳＩ１は、複数のシステムボード１０（ＳＢ＃０）、２０（ＳＢ＃１）および３０（ＳＢ＃２）がクロスバスイッチ４０（ＸＢ＃０）を介して接続されている。システムボード３０（ＳＢ＃２）は、複数のシステムコントローラ３１（ＳＣ＃０）および３２（ＳＣ＃１）等を備えている。同様に、システムボード１０（ＳＢ＃０）は、複数のシステムコントローラ１１（ＳＣ＃０）等を備え、システムボード２０（ＳＢ＃１）は、複数のシステムコントローラ２１（ＳＣ＃０）等を備えている。【０００５】
システムコントローラ３１（ＳＣ＃０）は、複数のＣＰＵ５１（ＣＰＵ＃０）、５２（ＣＰＵ＃１）等、あるいはシステムコントローラ３２（ＳＣ＃１）、１１（ＳＣ＃０）および２１（ＳＣ＃０）等の何れかと接続された不図示のＣＰＵからの命令に従い、ＭＡＣ７１（ＭＡＣ＃０）、７２（ＭＡＣ＃１）、７３（ＭＡＣ＃３）または７４（ＭＡＣ＃４）を介してメモリ（ＤＩＭＭ）８１、８２、８３または８４への読み書きをコントロールする。そして、システムコントローラ３１（ＳＣ＃０）がコントロールするメモリ（ＤＩＭＭ）８１、８２、８３または８４への読み書きの際には、メモリ（ＤＩＭＭ）８１、８２、８３または８４のそれぞれに対応して一時的にデータを格納するバッファメモリ６１（Ｍ０）、６２（Ｍ１）、６２（Ｍ３）または６４（Ｍ４）を利用する。【０００６】
ところが、大規模システムＬＳＩ１が巨大化していくにつれ、多数の命令やデータ（データパケット）が同一のバッファメモリ６１（Ｍ０）、６２（Ｍ１）、６２（Ｍ３）または６４（Ｍ４）に集中してしまうことがあった。【０００７】
図２は、多くの命令が同一のバッファメモリに集中してしまう現象を説明するための図である。
図２に示したように、何れかのＣＰＵからの複数の命令（リクエスト）がメモリ（ＤＩＭＭ）８１に格納されたデータを必要としている場合には、多くの命令がバッファメモリ６１（Ｍ０）に集中してしまい、バッファメモリ６１（Ｍ０）が溢れてしまう。【０００８】
このような事態を打破するためには、バッファメモリ６１（Ｍ０）だけでなく全てのバッファメモリ６２（Ｍ１）、６２（Ｍ３）および６４（Ｍ４）を大容量のものとする必要があるが、それはコスト的にも現実的ではないので、現状のバッファメモリ６１（Ｍ０）等を効率的に利用することが要求される。【０００９】
そこで、バッファメモリ６１（Ｍ０）等に命令やデータを受信する余裕がなくなると、すなわち、バッファメモリ６１（Ｍ０）等がフルあるいはフルに近い状態になると、バッファメモリ６１（Ｍ０）等から命令等の送信を禁止するＢＵＳＹ信号を発信する技術（ＢＵＳＹ制御技術）がある。このＢＵＳＹ制御技術によれば、バッファメモリ６１（Ｍ０）が命令等で溢れてしまう事態を減少することができる。【００１０】
また、１つのシステムコントローラ３１（ＳＣ＃０）に命令を渡す全てのＣＰＵ５１（ＣＰＵ＃０）、５２（ＣＰＵ＃１）等のそれぞれに対応する複数のバッファメモリを用意すれば、バッファメモリ６１（Ｍ０）が命令等で溢れてしまう事態を減少することができる。
【発明の開示】
【００１１】
しかしながら、上記ＢＵＳＹ制御技術は、大規模システムＬＳＩ１が比較的小さな場合にはそれほど問題は発生しないが、大規模システムＬＳＩ１が大きくなればなるほど、システムボード１０（ＳＢ＃０）とシステムボード３０（ＳＢ＃２）との間、あるいはシステムコントローラ１１（ＳＣ＃０）とシステムコントローラ３２（ＳＣ＃１）との間等、様々なＬＳＩ間の距離が長くなり、これらの間での伝送時間が長くなってしまう。その結果、命令とＢＵＳＹ信号との間に「すべり」が生じてしまい、実際には命令を受信できないバッファメモリ６１（Ｍ０）等に対して命令が発せられてしまうという問題点があった。
【００１２】
図３は、命令とＢＵＳＹ信号との間に生じる「すべり」という現象を説明するための図である。
図３において、まず、（１）システムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から発せられた第１の命令は、（２）システムコントローラ１１（ＳＣ＃０）の制御の基、（３）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）に渡される。すると、システムコントローラ３１（ＳＣ＃０）は、（４）ＭＡＣ７１（ＭＡＣ＃０）を介してメモリ（ＤＩＭＭ）８１にアクセスする。
【００１３】
この時点でバッファメモリ６１（Ｍ０）がフルになった場合には、（５）バッファメモリ６１（Ｍ０）から命令等の送信を禁止するＢＵＳＹ信号の１つが、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）の制御の基、（６）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード１０（ＳＢ＃０）のシステムコントローラ１１（ＳＣ＃０）に渡される。そして、（７）システムコントローラ１１（ＳＣ＃０）の制御の基、ＢＵＳＹ信号は第１の命令が発せられたシステムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）へ返される。
【００１４】
ところが、上記（１）第１の命令の発信から上記（７）のＢＵＳＹ信号の受信の間に、（８）システムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から第２の命令が発生され、その第２の命令が、（９）システムコントローラ１１（ＳＣ＃０）の制御の基、（１０）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）に渡された際には、バッファメモリ６１（Ｍ０）はすでにフルの状態であり、システムコントローラ３１（ＳＣ＃０）は第２の命令を受信できない状態となっている。この状態が「すべり」である。
【００１５】
なお、このような「すべり」が発生していても、（１１）システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）は、ＭＡＣ７１（ＭＡＣ＃０）を介してメモリ（ＤＩＭＭ）８１から第１の命令に対する応答を返し、（１２）システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）の制御の基、（１３）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード１０（ＳＢ＃０）のシステムコントローラ１１（ＳＣ＃０）に渡される。そして、（１４）システムコントローラ１１（ＳＣ＃０）の制御の基、第１の命令に対する応答は第１の命令が発せられたシステムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）へ返される。
【００１６】
また、このような「すべり」が発生しないように余裕を持ってＢＵＳＹ信号を発生するようにすると、すなわち、バッファメモリ６１（Ｍ０）等が完全にフルにはならずフルに近い状態になった時点で、バッファメモリ６１（Ｍ０）等から命令等の送信を禁止するＢＵＳＹ信号を発信するようにすると、バッファメモリ６１（Ｍ０）等の容量に無駄が生じてしまうという問題点があった。
【００１７】
また、全てのＣＰＵのそれぞれに対応するバッファメモリを用意した場合にも、大規模システムＬＳＩ１が大きくなればなるほど多くのバッファメモリを用意しなくてはならずコストアップになってしなうという問題点があった。
【００１８】
図４は、全てのＣＰＵに対応するバッファメモリを備えた場合の問題点を説明するための図である。
例えば、１つのシステムボードが４つのシステムコントローラを備えており、各システムコントローラがそれぞれ４つずつのＣＰＵを備えているような場合、各システムコントローラが備えるバッファメモリは、従来のＣＰＵの数に対応する４つから、図４に示すように、０番から１５番までの１６個のＣＰＵに対応する１６個になる。すなわち、４から１６へと４倍のバッファメモリが必要となってしまう。
【００１９】
本発明は、上記事情に鑑みてなされたもので、大規模システムＬＳＩにおいてバッファメモリを効率的に利用することが可能なメモリ制御装置およびメモリ制御方法を提供することを目的とする。
【００２０】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のメモリ制御装置は、メモリへのアクセスを制御するメモリ制御装置であって、前記メモリに格納されるデータを一時的に格納するバッファメモリと、前記メモリに対する命令を受信する命令受信手段と、前記命令受信手段によって受信した命令に基づいて、前記命令によって必要な前記バッファメモリの容量を前記バッファメモリに確保するためのバッファメモリ確保専用パケットを送信するバッファメモリ確保専用パケット送信手段と、前記バッファメモリ確保専用パケット送信手段によって送信されたバッファメモリ確保専用パケットに対応するバッファメモリ確認信号を受信するバッファメモリ確認信号受信手段と、前記バッファメモリ確認信号受信手段によって受信したバッファメモリ確認信号に基づいて、前記命令受信手段によって受信した命令を実行する命令実行手段とを備えることを特徴とする。
【００２１】
また、本発明のメモリ制御装置は、前記命令がＣＰＵから発生され、前記メモリ制御装置がシステムコントローラであることが望ましい。
また、本発明のメモリ制御装置は、前記メモリ制御装置が、前記メモリ制御装置を複数個備える大規模システムＬＳＩのためのＬＳＩであることが望ましい。
【００２２】
また、本発明の一態様によれば、本発明のメモリ制御方法は、メモリに格納されるデータを一時的に格納するバッファメモリを備えたメモリ制御装置において実行される、前記メモリへのアクセスを制御するメモリ制御方法であって、前記メモリに対する命令を受信し、前記受信した命令に基づいて、前記命令によって必要な前記バッファメモリの容量を前記バッファメモリに確保するためのバッファメモリ確保専用パケットを送信し、前記送信されたバッファメモリ確保専用パケットに対応するバッファメモリ確認信号を受信し、前記受信したバッファメモリ確認信号に基づいて、前記受信した命令を実行することを特徴とする。
【図面の簡単な説明】
【００２３】
【図１】大規模システムＬＳＩの構成を示す図である。
【図２】多くの命令が同一のバッファメモリに集中してしまう現象を説明するための図である。
【図３】命令とＢＵＳＹ信号との間に生じる「すべり」という現象を説明するための図である。
【図４】全てのＣＰＵに対応するバッファメモリを備えた場合の問題点を説明するための図である。
【図５】本発明を適用したメモリ制御の流れを説明するための図である。
【図６】バッファメモリ確保専用パケットの例を示す図である。
【発明を実施するための最良の形態】
【００２４】
以下、図面に基づいて本発明を適用した実施の形態を説明する。
まず、本発明の概略を説明する。
すなわち、本発明は、システムコントローラがメモリ（ＤＩＭＭ）へのアクセスを行う際に、バッファメモリ確保専用のパケットを事前に送信しておき、あらかじめバッファメモリの格納領域を確保した後に、実際のアクセスを行うというものである。【００２５】
これにより、バッファメモリの量を増やさずに「すべり」の発生を激減させたメモリ制御が行えるのである。
図５は、本発明を適用したメモリ制御の流れを説明するための図である。【００２６】
図５において、まず、（１）システムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から第１の命令に対応する第１のバッファメモリ確保専用パケットを発する。
図６は、バッファメモリ確保専用パケットの例を示す図である。【００２７】
図６において、バッファメモリ確保専用パケットは３２ビット（０〜３１）であり、０から１１ビット目のフィールドにはリザーブＩＤ（ＲＳＶＩＤ）、１２から１５ビット目のフィールドにはターゲットである宛先のシステムボードの番号（ＴＡＲＧＥＴ）、１６から１８ビット目のうち１６ビット目にはＢＡＮＫ−ＩＤ、１７から１８ビット目にはＭＡＣ−ＩＤ、２４から３０ビット目にはオペコード（ＯＰＣ）が格納される。【００２８】
図５の説明に戻り、このシステムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から発せられた第１のバッファメモリ確保専用パケットは、（２）システムコントローラ１１（ＳＣ＃０）の制御の基、（３）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）に渡される。【００２９】
すると、この第１のバッファメモリ確保専用パケットを受け取ったシステムコントローラ３１（ＳＣ＃０）は、第１の命令により必要なバッファメモリ６１（Ｍ０）上の容量を確保するとともにカウンタをインクリメントする。そして、第１のバッファメモリ確保専用パケットに格納された情報に基づいて、バッファメモリ６１（Ｍ０）がフルになることが確認できた場合には、（４）第１のバッファメモリ確保専用パケットを受信したＡＣＫとして、バッファメモリ６１（Ｍ０）がフルになる予定であることを示すバッファメモリ確保信号の１つが、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）の制御の基、（５）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード１０（ＳＢ＃０）のシステムコントローラ１１（ＳＣ＃０）に渡される。そして、（６）システムコントローラ１１（ＳＣ＃０）の制御の基、バッファメモリ確保信号は第１のバッファメモリ確保専用パケットが発せられたシステムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）へ返される。【００３０】
その後、（７）システムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から第１の命令が発生され、（８）システムコントローラ１１（ＳＣ＃０）の制御の基、（９）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）に渡される。すると、システムコントローラ３１（ＳＣ＃０）は、（１０）この第１の命令が第１のバッファメモリ確保専用パケットに対応した命令であることを確認し、ＭＡＣ７１（ＭＡＣ＃０）を介してメモリ（ＤＩＭＭ）８１にアクセスする。【００３１】
そして、（１１）システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）は、ＭＡＣ７１（ＭＡＣ＃０）を介してメモリ（ＤＩＭＭ）８１から第１の命令に対する応答を返すとともに上記カウンタをデクリメントし、（１２）システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）の制御の基、（１３）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード１０（ＳＢ＃０）のシステムコントローラ１１（ＳＣ＃０）に渡され、（１４）システムコントローラ１１（ＳＣ＃０）の制御の基、第１の命令に対する応答は第１の命令が発せられたシステムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）へ返される。【００３２】
他方、上記（１）第１のバッファメモリ確保専用パケットの発信の後、（１５）システムボード１０（ＳＢ＃０）のＣＰＵ（ＣＰＵ＃０）から第２の命令に対応する第２のバッファメモリ確保専用パケットが発生され、その第２のバッファメモリ確保専用パケットが、（１６）システムコントローラ１１（ＳＣ＃０）の制御の基、（１７）クロスバスイッチ４０（ＸＢ＃０）を介して、システムボード３０（ＳＢ＃２）のシステムコントローラ３１（ＳＣ＃０）に渡された際には、バッファメモリ６１（Ｍ０）がフルになっていなくとも、前記第１のバッファメモリ確保専用パケットによりバッファメモリ６１（Ｍ０）の容量がフルになる予定であることが確認できる。【００３３】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、メモリ制御装置の一機能としてハードウェアまたはＤＳＰボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。【００３４】
また、本発明が適用されるメモリ制御理装置は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。【００３５】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムコードを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、メモリ制御装置に供給し、そのメモリ制御装置のコンピュータがプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。【００３６】
この場合、可搬記録媒体等から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は本発明を構成することになる。【００３７】
プログラムコードを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。【００３８】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。【００３９】
さらに、可搬型記録媒体から読み出されたプログラムコードやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。【００４０】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図２】
2007097007.tif 000003
【図３】
2007097007.tif 000004
【図５】
2007097007.tif 000005
【図６】
2007097007.tif 000006
【図１】
2007097007.tif 000007
【図４】
2007097007.tif 000008
【国際調査報告】
2007097007.tif 000009
2007097007.tif 000010