JP5360940B1 - 分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 - Google Patents
分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 Download PDFInfo
- Publication number
- JP5360940B1 JP5360940B1 JP2012267822A JP2012267822A JP5360940B1 JP 5360940 B1 JP5360940 B1 JP 5360940B1 JP 2012267822 A JP2012267822 A JP 2012267822A JP 2012267822 A JP2012267822 A JP 2012267822A JP 5360940 B1 JP5360940 B1 JP 5360940B1
- Authority
- JP
- Japan
- Prior art keywords
- ports
- data
- position information
- input
- counter
- 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.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
【課題】ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なって高速な処理を実現すること。
【解決手段】各ポートが複数のレーンを有する複数のポートと、複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御部とを備える。入力制御部は、1つのバッファが各レーンに対応している複数のバッファと、複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、各バッファへの書込位置情報を生成する複数の書込位置情報生成部と、複数のポートで共有する同期信号で第1カウンタをカウントして、第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成部と、を有する。
【選択図】 図1
【解決手段】各ポートが複数のレーンを有する複数のポートと、複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御部とを備える。入力制御部は、1つのバッファが各レーンに対応している複数のバッファと、複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、各バッファへの書込位置情報を生成する複数の書込位置情報生成部と、複数のポートで共有する同期信号で第1カウンタをカウントして、第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成部と、を有する。
【選択図】 図1
Description
本発明は、非同期インタフェースにおけるポート間およびレーン間のデスキュー技術に関する。
近年、LSI(Large Scale Integration)製造技術の進歩によりトランジスタの微細化が進みより多くのハードウェアを搭載することが可能となり、従来装置では複数のLSIで構成していたモジュールを1つのLSIで構成することが可能になってきた。しかし、複数のLSIが1つのLSIに収まり切らないケースもあり故障率の観点からもハードウェア量の削減を行なう必要が出てくる。また、クロック周波数が高速になったためインタフェースは同期転送から非同期転送が主流となりデスキュー技術の開発が重要は課題となっていた。そしてコンピュータシステムでは、メモリアクセスレイテンシの短縮が性能改善の重要項目となっている。
上記技術分野において、特許文献1には、ポート間のクロック周波数差補償によるクロックデスキューと、エラスティックバッファを用いたレーン間のデータデスキューとを行なう技術が開示されている。
しかしながら、例えば、LSI間を接続する複数のインタフェースポートを有するコンピュータシステムなどにおいて、それぞれのポート間で同期動作が必要なアーキテクチャを採用する。その場合、非同期インタフェースを複数レーンで構成すると、レーン間デスキューとともにポート間の同期をとるためのポート間デスキューも行なわなければならない。上記文献に記載の技術においては、ポート間のクロックデスキューとレーン間のデータデスキューとを異なる技術で解決しているので、1つの技術に統合することはできなかった。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る情報処理装置は、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
上記目的を達成するため、本発明に係るデータ伝送方法は、
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。
上記目的を達成するため、本発明に係る分散共有メモリ型システムは、
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
上記目的を達成するため、本発明に係るメモリアクセス方法は、
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。
本発明によれば、ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なうので高速な処理を実現できる。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、複数ポートの複数レーンでのデスキューを実現する装置である。
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、複数ポートの複数レーンでのデスキューを実現する装置である。
図1に示すように、情報処理装置100は、複数のポート110、130と、入力制御部140と、を備える。複数のポート110、130は、各ポートが複数のレーン111〜113、131〜133を有する。また、入力制御部140は、複数のポート110、130が有する複数のレーン111〜113、131〜133から同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する。そして、入力制御部140は、複数のバッファ141〜143、147〜149と、複数の書込位置情報生成部150と、読出位置情報生成部160と、を有する。複数のバッファ141〜143、147〜149は、1つのバッファが各レーンに対応している。また、複数の書込位置情報生成部150は、複数のバッファ141〜143、147〜149に含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへ141〜143、147〜149の書込位置情報を生成する。また、読出位置情報生成部160は、複数のポート110、130で共有する同期信号で第1カウンタをカウントして、第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、複数のバッファ141〜143、147〜149に含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する。
本実施形態によれば、ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なうので高速な処理を実現できる。
[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置を含む情報処理システムについて説明する。本実施形態の情報処理システムにおいては、レーン間デスキュー用FIFO(First In First Out)バッファとポート間デスキュー用FIFOバッファを統合して、同じ回路で実施可能とする。
次に、本発明の第2実施形態に係る情報処理装置を含む情報処理システムについて説明する。本実施形態の情報処理システムにおいては、レーン間デスキュー用FIFO(First In First Out)バッファとポート間デスキュー用FIFOバッファを統合して、同じ回路で実施可能とする。
本実施形態によれば、バッファへの書き込み読み出し処理が1段のバッファ分だけとなるためレイテンシを改善することができる。また、ハード量を削減することで故障率は下げる効果もある。また、レーン間およびポート間デスキュー処理をほぼ全てをハードウェアが行なうためファームウェアによる初期化時間を大幅に短縮することができる。
《情報処理システム》
図2は、本実施形態に係る情報処理装置210、250を含む情報処理システム200の構成を示すブロック図である。なお、図2においては、情報処理装置を2つしか図示していないが3つ以上であってもよい。また、出力ポートと入力ポートとが一対しか図示されていないが、複数のポートが接続されているものとする。また、各ポートは4つのレーンで構成したが、数は4つに限定されない。
図2は、本実施形態に係る情報処理装置210、250を含む情報処理システム200の構成を示すブロック図である。なお、図2においては、情報処理装置を2つしか図示していないが3つ以上であってもよい。また、出力ポートと入力ポートとが一対しか図示されていないが、複数のポートが接続されているものとする。また、各ポートは4つのレーンで構成したが、数は4つに限定されない。
情報処理装置210は、データ処理部220と、インタフェース出力部230と、インタフェース入力部240とを備える。ここで、データ処理部220の処理は限定されない。データ処理部220は、インタフェース入力部240から入力されたデータを処理して、インタフェース出力部230から出力する。インタフェース出力部230は、出力ポート0(231)を有する。出力ポート0(231)は、デファイナ信号に同期して動作する出力ポート共通回路232と調整用データ生成回路233とを有する。そして、出力ポート0(231)は、調整モードの時には、調整用データ生成回路233で生成された調整用データを4つのレーン0送信制御部234、レーン1送信制御部235、レーン2送信制御部236、レーン3送信制御部237から出力する。インタフェース入力部240は、入力ポート0(241)を有する。入力ポート0(241)は、デファイナ信号に同期して動作する入力ポート共通回路242を有する。そして、入力ポート0(241)は、調整モードの時には、入力ポート共通回路242に基づいて、4つのレーン0入力制御部244、レーン1入力制御部245、レーン2入力制御部246、レーン3入力制御部247内の各バッファの読出位置情報としてのリードポインタを決定する。
情報処理装置250は、データ処理部260と、入力制御部としてのインタフェース入力部270と、送信制御部としてのインタフェース出力部280とを備える。ここで、データ処理部260の処理は限定されない。データ処理部260は、インタフェース入力部270から入力されたデータを処理して、インタフェース出力部280から出力する。インタフェース入力部270は、入力ポート0(271)を有する。入力ポート0(271)は、デファイナ信号に同期して動作する入力ポート共通回路272を有する。そして、入力ポート0(271)は、調整モードの時には、入力ポート共通回路272に基づいて、4つのレーン0入力制御部274、レーン1入力制御部275、レーン2入力制御部276、レーン3入力制御部277内の各バッファのリードポインタを決定する。インタフェース出力部280は、出力ポート0(281)を有する。出力ポート0(281)は、デファイナ信号に同期して動作する出力ポート共通回路282と調整用データ生成回路283とを有する。そして、出力ポート0(281)は、調整モードの時には、調整用データ生成回路283で生成された調整用データを4つのレーン0送信制御部284、レーン1送信制御部285、レーン2送信制御部286、レーン3送信制御部287から出力する。
図2においては、インタフェース出力部230が有する出力ポート0(231)の各レーンが、インタフェース入力部270が有する入力ポート0(271)の各レーンに接続されている。また、インタフェース出力部280が有する出力ポート0(281)の各レーンが、インタフェース入力部240が有する入力ポート0(241)の各レーンに接続されている。なお、ポート間の接続やレーン間の接続は、図2のように平行に対に接続する必要はなく、交差しても構わない。
調整モードの時は、インタフェース出力部230と280との各レーンから、接続されたインタフェース入力部270と249との各レーンに、調整用データが出力される。インタフェース入力部270と249との各レーンでは、調整用データをあらかじめ保持されているデータと比較して、対応していれば自レーンが有するバッファの書込位置情報としてのライトポインタを設定する。また、入力ポート共通回路242、272に設定されているタイミングで、同期すべき全ポートの全レーンが有するバッファに共通のリードポインタを設定する。
データ伝送モードの時は、調整モードで設定したライトポインタにより各レーンが有するバッファにデータが格納され、調整モードで設定したリードポインタにより同期すべき全ポートの全レーンが有するバッファからデータが同時に読み出される。
このように、調整モードにおける調整によって、各レーンが有する1つのバッファのライトポインタと、同期すべき全ポートの全レーンが有するバッファのリードポインタとにより受信したデータのスキューをデスキューして入力できることになる。
なお、調整モードは、例えば、当該情報処理装置の製造時、当該情報処理装置を含む情報処理システムの組立時、当該情報処理装置あるいは情報処理システムのパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、などに初期化として実行される。
《インタフェース出力部》
図3は、本実施形態に係る情報処理装置210、250のインタフェース出力部230、280の構成を示すブロック図である。なお、図3には、インタフェース出力部230の1つのポートのみを示すが、インタフェース出力部にはかかるポートが複数搭載されている。
図3は、本実施形態に係る情報処理装置210、250のインタフェース出力部230、280の構成を示すブロック図である。なお、図3には、インタフェース出力部230の1つのポートのみを示すが、インタフェース出力部にはかかるポートが複数搭載されている。
図3において、出力ポート共通回路301は、全ての出力ポートに備わっている回路である。そして、出力ポート共通回路301は、システムクロックに同期する情報処理装置あるいは情報処理システムの中で完全に同期しているデファイナ信号302(図5B参照)をリセット信号に用いた、リングカウンタ303を有している。図3の調整用データ生成回路304はカウンタ値より毎クロックで異なる値となるよう調整用データ(図6A参照)を生成する回路である。なお、図3においては、各出力ポートが出力ポート共通回路301および調整用データ生成回路304を有する場合を示すが、出力ポート共通回路301および調整用データ生成回路304を同じ調整用データを出力する複数の出力ポートが共有してもよい。
図3の調整Validレジスタ305をアサートすると、出力データセレクタ306が調整用データを選択して、ポート内の全レーンが調整用データ生成回路304で生成した調整用データを出力するようになる。調整Validレジスタ305をディアサートすると、通常の出力データバス307からのデータを選択して出力する。
《インタフェース入力部》
図4は、本実施形態に係る情報処理装置210、250のインタフェース入力部240、270の構成を示すブロック図である。なお、図4には、インタフェース入力部270の1つのポートのみを示すが、インタフェース入力部にはかかるポートが複数搭載されている。
図4は、本実施形態に係る情報処理装置210、250のインタフェース入力部240、270の構成を示すブロック図である。なお、図4には、インタフェース入力部270の1つのポートのみを示すが、インタフェース入力部にはかかるポートが複数搭載されている。
図3のインタフェース出力部230の調整Validレジスタ305をアサートすると、調整用データがインタフェース入力部270の各レーンに向けて出力され始める。インタフェース入力部270では、その調整用データを受信して、受信データ期待値レジスタ401の値と比較を行なう。受信データ期待値レジスタ401には、あらかじめ全ポートのレジスタに対して同じ値を設定しておく。受信したデータと受信データ期待値レジスタ401の値が一致したときに、ライトポインタ402をリセットする。それぞれのレーンごとにフライトタイムは異なるのでリセットタイミングはズレることになる。しかし、ライトポインタ402のリセット後、インタフェース出力部230から各レーンに同時に出力されたデータは、ポート間およびレーン間デスキューFIFOバッファ409の全て同じエントリに格納されることになる。
入力ポート共通回路403は、インタフェース入力部270の全ての入力ポートに1つ備わっていて、レーン間で共通に使用する回路である。図3のデファイナ信号302と同期しているデファイナ信号404をリセット信号に用いて、リングカウンタ405を構成している。リングカウンタ405も、リングカウンタ303と同様にシステムクロックでカウントアップし、デファイナ信号でリセットする回路であり、全てのポート部で同じ値となるようになっている。
カウンタ期待値レジスタ406には、想定されるフライトタイムの最大値から計算された値を設定しておき、カウンタの値とカウンタ期待値とが一致した場合に、リードポインタ407をリセットする。リングカウンタ405は全ポートで同じ値で動作していて、カウンタ期待値レジスタ406にも全てのポートで同じ値が設定されているため、リードポインタ407のリセットは全ポートの全レーンに対して同時に行われる。なお、図4においては、各入力ポートが入力ポート共通回路403を有する場合を示すが、入力ポート共通回路403を同じタイミングでデータを入力すべき複数の入力ポートが共有してもよい。
調整Validレジスタ408をアサートすると、ライトポインタ402およびリードポインタ407のリセット回路が有効となる。調整Validレジスタ408をディアサートすると、ライトポインタ402およびリードポインタ407はシステムクロックでインクリメントされる。
ポート間およびレーン間デスキューFIFOバッファ409は、全てのレーンに用意されている。そして、最速フライトタイムのレーンのデータは入力ポートに到着後直ちにFIFOバッファに格納され、最遅フライトタイムのレーンのデータがFIFOバッファに格納されるまで待たされる。最遅フライトタイムのレーンのデータが格納された直後に、FIFOバッファから読み出されるように調整している。よって、ポート間およびレーン間デスキューFIFOバッファ409の深さ(バッファ長)は、最遅フライトタイムと最速フライトタイムとの差分で決定される。例えば、フライトタイムの最大差分が6クロックサイクルであった場合、ポート間およびレーン間デスキューFIFOバッファ409は8ワード程度を用意する必要がある。
入力ポート共通回路403で生成したリードポインタ407のリセット信号のタイミングは全ポート同期しているため、リードポインタ407は全ポートで同期している。よって、全ポートの全レーンのポート間およびレーン間デスキューFIFOバッファ409から読み出されたデータは、インタフェース出力部230から出力されたデータが、全ポートおよび全レーンについてデスキューされた状態で全て揃うことになる。
なお、ポート間およびレーン間デスキューFIFOバッファ409の幅が1ビットであればシーケンスデータ、複数ビットであればパラレルデータとなる。例えば、1バイト伝送であれば8ビットのパラレルデータである。
(カウント数およびバッファ長)
図5Aは、本実施形態に係るカウンタのカウント数およびバッファのバッファ長を説明する図である。なお、本実施例においては、カウンタのカウント数およびバッファのバッファ長は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
図5Aは、本実施形態に係るカウンタのカウント数およびバッファのバッファ長を説明する図である。なお、本実施例においては、カウンタのカウント数およびバッファのバッファ長は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
カウント数=バッファ長505は、同期すべき全ポートおよび全レーンについての、最大スキュー503と最小スキュー502との差であるスキューのばらつきを、システムクロック速度501で除算した値に対して+αをした数である。ここで、+αは、バッファのライトリード速度に基づく、ライトポインタとリードポインタとの必要な差に相当する。
(デファイナ信号とカウンタ)
図5Bは、本実施形態に係るデファイナ信号とカウンタとの関係を説明するタイミングチャートである。
図5Bは、本実施形態に係るデファイナ信号とカウンタとの関係を説明するタイミングチャートである。
システム中で同期しているデファイナ信号302、404とは、図5Bに示すようにある周期でパルスを発する信号で、パルス幅はレーン間またはポート間の最大フライトタイム差分により決定される。図5Bでは、8クロック周期のデファイナ信号を例としてあげている。リングカウンタ303、405は、システムクロックでカウントアップし、デファイナ信号302、404でリセットする回路であり、全てのポート部で同じ値となるようになっている。
(調整用データ生成回路)
図6Aは、本実施形態に係る調整用データ生成回路304の構成および動作を説明する図である。
図6Aは、本実施形態に係る調整用データ生成回路304の構成および動作を説明する図である。
調整用データ生成回路304においては、出力ポート共通回路301のリングカウンタ303のカウンタ値が調整用データに変換されて、調整モード時には、出力データセレクタ105を介して各レーンから出力される。
(カウンタ期待値)
図6Bは、本実施形態に係るライトポインタとカウンタ期待値との関連を説明する図である。なお、本実施例においては、カウンタ期待値は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
図6Bは、本実施形態に係るライトポインタとカウンタ期待値との関連を説明する図である。なお、本実施例においては、カウンタ期待値は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
本実施形態においては、ポート番号601と、レーン番号602とに対応付けて決定されたライトポインタタイミング603に基づいて、読み出しが確実なリードポインタのためのカウンタ期待値と604を決定する。
《デスキューのタイミングチャート》
図7は、本実施形態に係るポートおよびレーンのデスキューを示すタイミングチャートである。なお、ここでは例として、1レーンのシリアルのビット幅は8ビットとしている。
図7は、本実施形態に係るポートおよびレーンのデスキューを示すタイミングチャートである。なお、ここでは例として、1レーンのシリアルのビット幅は8ビットとしている。
出力ポートは、デファイナ信号でカウンタを制御して、送信する調整用データを生成している。生成した調整用データは、全ポートの全レーンで同じタイミングで同じ値を出力することが可能である。入力ポートは、レーンごとにフライトタイムが異なるためライトポインタのリセットタイミングが異なることを示している。また、リードポインタの制御は、フライトタイムを考慮して、デファイナ信号によりリセットタイミングを全ポートの全レーンで同じタイミングで行なうことで、FIFOバッファをリードするタイミングを揃えている様子を示している。
このように、各レーンが有する1つのバッファに対するライトポインタとリードポインタとの設定によって、同期すべき全ポートおよび全レーンに発生するデータスキューはデスキューされる。
《動作シーケンス》
図8は、本実施形態に係る調整モードとデータ伝送モードとを示すシーケンス図である。
図8は、本実施形態に係る調整モードとデータ伝送モードとを示すシーケンス図である。
ステップS801において、情報処理装置あるいは情報処理システムが有する全てのインタフェース出力部および全てのインタフェース入力部を調整モードにセットする。すなわち、調整Validをハイとして、インタフェース出力部では調整用データの出力を選択し、インタフェース入力部ではバッファのライトポインタとリードポインタとをリセット可能とする。
ステップS803において、出力ポートでは調整用データを生成する。一方、入力ポートでは、ステップS805において、カウンタ期待値を設定し、ステップS807において、各レーンに受信データ期待値を設定する。そして、ステップS809において、出力ポートの各レーンに同じ調整用データが渡され、ステップS811において、接続された入力ポートの各レーンに送信する。
ステップS813およびS815においては、各ポートで受信した調整用データが受信データ期待値であるか否かが判定され、受信データ期待値の受信であればライトポインタに設定する。また、入力ポートでは、ステップS817において、カウンタの値がカウンタ期待値になったか否かを判定し、カウンタの値がカウンタ期待値になったときにリードポインタを決定して、同期すべき全レーンに渡す。ステップS819において、全レーンの共通のリードポインタを設定する。
ステップS821において、調整Validをローとして調整モードを終了し、通常のデータ伝送モードとする。データ伝送モードにおいては、インタフェース出力部では出力データバス307のデータが各レーンから送信され、インタフェース入力部では、各レーンで受信したデータを調整モードで設定されたライトポインタを使ってバッファに書き込み、リードポインタを使ってバッファから読み出す。このようにして、デスキューされたデータが全ポートの全レーンから入力されたことになる。
本実施形態によれば、バッファへの書き込み読み出し処理が1段のバッファ分だけとなるためレイテンシを改善することができる。また、ハード量を削減することで故障率は下げる効果もある。また、レーン間およびポート間デスキュー処理をほぼ全てをハードウェアが行なうためファームウェアによる初期化時間を大幅に短縮することができる。
[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置を含む情報処理システムとしての共有メモリが分散配置された分散共有メモリ型システムについて説明する。本実施形態に係る分散共有メモリ型システムである分散共有メモリ型マルチプロセッサシステムは、上記第2実施形態と比べると、具体的に分散共有メモリをプロセッサがアクセスする構成である点で異なる。出力ポートおよび入力ポートの構成および動作は第2実施形態と同様であるため、その詳しい説明を省略する。
次に、本発明の第3実施形態に係る情報処理装置を含む情報処理システムとしての共有メモリが分散配置された分散共有メモリ型システムについて説明する。本実施形態に係る分散共有メモリ型システムである分散共有メモリ型マルチプロセッサシステムは、上記第2実施形態と比べると、具体的に分散共有メモリをプロセッサがアクセスする構成である点で異なる。出力ポートおよび入力ポートの構成および動作は第2実施形態と同様であるため、その詳しい説明を省略する。
LSI間を接続するインタフェースでポート間の同期が必要な構成としては、タグ方式の分散共有メモリ型マルチプロセッサシステムが挙げられる。このシステムでは、キャッシュのコヒーレンシ制御を行なうためのタグメモリを持っていて、キャッシュに格納されているデータのステータス情報を格納している。ステータス情報とは、キャッシュに格納されているデータが最新データであってシステム中で唯一のものなのか、複数のキャッシュにシェアされているものなのか、キャッシュではなくメモリが最新データなのかなどを表している。メモリアクセストランザクションでは、メモリにアクセスする際にこのタグメモリの索引を行い、タグメモリに格納されているステータスから最新データの所在を確認する。タグ索引結果をまとめて最新データの所在を判別し、メモリまたはキャッシュへアクセスするためにトランザクションをルーティングすることで、期待するデータを得ることができる。
キャッシュのコヒーレンシ制御を行なう上で、タグメモリの索引・更新は全てのタグメモリを同時に索引・更新しなければならない。また、タグの索引結果を各タグから集める際にも、ポート間で同期していなければならない。これらの処理を同時に行なうにはポート間およびレーン間のデスキュー処理が必要であり、本実施形態の技術が有効となる。
《分散共有メモリ型システム》
図9は、本実施形態に係る情報処理装置としてのセルを含む分散共有メモリ型システム900の構成を示すブロック図である。
図9は、本実施形態に係る情報処理装置としてのセルを含む分散共有メモリ型システム900の構成を示すブロック図である。
分散共有メモリ型システム900としての分散共有メモリ型マルチプロセッサシステムは、複数のセルと呼ばれるモジュールで構成されている。なお、図9では例として4セル構成としているが、これに限定されない。セルの構成要素は、プロセッサ、メモリコントローラ、キャッシュコントローラ、メモリ、IOなどである。メモリコントローラは、タグメモリ、タグ制御部、コヒーレンシ制御部を持つ。キャッシュコントローラは、キャッシュ、キャッシュ制御部などを持つ。
図9においては、セル0(910)のプロセッサ911が、メモリコントローラ912によるセル1(920)〜セル3(940)が分散共有するキャッシュのコヒーレンシ制御によって、データを読み出す場合に必要な構成要素を示している。セル1(920)〜セル3(940)のプロセッサ(不図示)がデータを読み出す場合には、セル1(920)〜セル3(940)のプロセッサ(不図示)を中心とした構成要素が使用される。また、図9においては、セル2(930)のキャッシュ935に所望のデータがヒットする場合を示す。
セル0(910)は、自分のメモリ913を有している。セル0(910)のメモリコントローラ912は、セル1(920)〜セル3(940)の各メモリコントローラ921〜941が有する本実施形態の入力ポート922〜942とそれぞれ接続する、本実施形態の出力ポート914〜916を有する。また、セル0(910)のメモリコントローラ912は、セル1(920)〜セル3(940)の各メモリコントローラ921〜941が有する本実施形態の出力ポート923〜943とそれぞれ接続する、本実施形態の入力ポート917〜919を有する。
そして、ヒットするセル2(930)には、キャッシュコントローラ934を介してキャッシュ935が図示されている。なお、セル1(920)やセル3(940)もキャッシュコントローラおよびキャッシュを有するが図9には図示していない。
《メモリアクセス動作》
以下、かかる図9のタグ方式の分散共有メモリ型システム900としての分散共有メモリ型マルチプロセッサシステムにおける、メモリアクセストランザクションの簡単な処理例を用いて、ポート間デスキューが必要となる動作を説明する。
以下、かかる図9のタグ方式の分散共有メモリ型システム900としての分散共有メモリ型マルチプロセッサシステムにおける、メモリアクセストランザクションの簡単な処理例を用いて、ポート間デスキューが必要となる動作を説明する。
図10は、本実施形態に係る分散共有メモリ型システム900のメモリアクセス動作を示すシーケンス図である。
ステップS1001において、あるメモリアクセストランザクションがセル0(910)のプロセッサ911から同セル内のメモリコントローラ912に発行される。なお、メモリアクセストランザクションは、セル0(910)のIO(不図示)から発行されてもよい。
メモリコントローラ912は、そのメモリアクセストランザクションを受信し、ステップS1007において自分のメモリ913にアクセスする。また、メモリコントローラ912は、キャッシュへのアクセスを行なうため、ステップS1003およびS1005において出力ポート914〜916を介して各セルのメモリコントローラ921〜941に対してタグスヌープトランザクション指示を発行する。
本実施形態では、どのセルのキャッシュが最新データを保持しているか確認するために、全セルのタグメモリにスヌープトランザクションを発行してタグ索引を行なう。ステップS1005のスヌープトランザクションは、全セルに同期して発行される。全セルのメモリコントローラ921〜941では、ステップS1009〜S1013において、同期してタグを索引してキャッシュヒットを判定する。そして、ステップS1017において、全セルから同時にスヌープトランザクションの発行元セル(本例ではセル0(910))にスヌープ結果を戻す動作を行なう。このタグスヌープで使用するインタフェースは、ポート間およびレーン間で同期していなければならない。本例では、ステップS1015において、セル2(930)のキャッシュコントローラ934がキャッシュヒットを得たとしている。
ステップS1017およびS1019において、タグスヌープ結果を入力ポート917〜919を介して受信した発行元セルのメモリコントローラ912は、ステップS1021において、スヌープ結果を解析してキャッシュヒットしたか否かを判定する。キャッシュヒットしたと判定した場合、メモリコントローラ912は、あらかじめメモリアクセスしておいたメモリ913からのメモリリプライデータを廃棄する処理を行なう。
タグにヒットしたセル2(930)のキャッシュが最新データを持っているので、そのメモリコントローラ931はキャッシュコントローラ934にキャッシュアクセストランザクションを発行する。キャッシュアクセストランザクションを受信したキャッシュコントローラ934は、キャッシュ935に対してアクセスする。ステップS1023において、キャッシュ935から読み出されたデータは、メモリコントローラ931に送られ、さらにタグスヌープトランザクションを発行したセルのメモリコントローラ912にリプライデータとして戻される。リプライデータを受信したメモリコントローラ912は、リプライトランザクションとしてデータとともに発行元のプロセッサ911に戻される。
《メモリアクセス処理》
図11は、本実施形態に係る分散共有メモリ型システム900のメモリアクセス処理の手順を示すフローチャートである。図11のフローチャートは、セル0(910)のメモリコントローラ912において実行される。
図11は、本実施形態に係る分散共有メモリ型システム900のメモリアクセス処理の手順を示すフローチャートである。図11のフローチャートは、セル0(910)のメモリコントローラ912において実行される。
ステップS1101において、メモリコントローラ912は、プロセッサ911(または、IO)からのメモリアクセスがあるか否かを判定する。メモリアクセスがあるとステップS1103において、メモリコントローラ912は、出力ポートを介して共有メモリを有するセル1(920)〜セル3(940)のメモリコントローラ921〜941にタグスヌープトランザクションを行なう。また、ステップS1105において、メモリコントローラ912は、自セルのメモリ913に対してメモリアクセスを行なう。
そして、ステップS1107において、メモリコントローラ912は、メモリコントローラ921〜941から応答されたタグスヌープ結果に、キャッシュヒットがあるか否かを判定する。キャッシュヒットがあれば、メモリコントローラ912は、ステップS1109において、メモリ913からの取得データを破棄して、キャッシュデータを取得する。一方、キャッシュヒットがなければ、メモリコントローラ912は、ステップS1111において、メモリ913からのデータを取得する。
ステップS1113において、メモリコントローラ912は、取得したデータをプロセッサ911に渡す。
本実施形態によれば、分散共有メモリ型システムにおいて出力ポートおよび入力ポートに第2実施形態の構成を適用することにより、簡単な構成でポート間およびレーン間のデスキューを行なった高速のメモリアクセスができる。
[第4実施形態]
次に、本発明の第4実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、入力ポートにおいて各レーンが有するバッファのためのリセット直前のライトポインタを保持する点で異なる。保持された各レーンが有するバッファのためのリセット直前のライトポインタは、リードポインタのための好適なカウンタ期待値を決定するため用いられる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
次に、本発明の第4実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、入力ポートにおいて各レーンが有するバッファのためのリセット直前のライトポインタを保持する点で異なる。保持された各レーンが有するバッファのためのリセット直前のライトポインタは、リードポインタのための好適なカウンタ期待値を決定するため用いられる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
本実施形態によれば、リードポインタを各レーンのリアルタイムのライトポインタを参照して決定できるので、確実なポート間およびレーン間のデスキューと、確実な受信データの取得とができる。
《インタフェース入力部》
図12は、本実施形態に係る情報処理装置のインタフェース入力部1270の構成を示すブロック図である。図12は、図4のインタフェース入力部に対して簡単な回路を追加することで、そのコンピュータシステムでの最速レイテンシとなる設定をすることが可能となる。なお、図12において、第2実施形態の図4と同様の構成要素には同じ参照番号を付して、説明は省略する。
図12は、本実施形態に係る情報処理装置のインタフェース入力部1270の構成を示すブロック図である。図12は、図4のインタフェース入力部に対して簡単な回路を追加することで、そのコンピュータシステムでの最速レイテンシとなる設定をすることが可能となる。なお、図12において、第2実施形態の図4と同様の構成要素には同じ参照番号を付して、説明は省略する。
図12において、全ポートに用意されているWPクリアValidレジスタ1271をアサートすることで、全ポート同期のデファイナ信号404のタイミングで、全ポートの全レーンのライトポインタが同時にリセットされる。すなわち、第2実施形態においては、調整用データを受信して、受信データ期待値レジスタ401と一致した場合にライトポインタをリセットしていた。本実施形態においては、このリセットするタイミングにおけるライトポインタのリセット指示がオンとなったときに、Hold指示レジスタ1272をアサートする。このHold指示レジスタ1272により、リセット直前のライトポインタの値をHoldライトポインタレジスタ1273に格納して保持しておく。この全てのレーンのHoldライトポインタレジスタ1273の値をファームウェアなどにより読み出せば、最も大きい値がそのシステムの最大フライトタイムを意味することになる。そこからカウンタ期待値レジスタ406の値を決定して設定することで、リードポインタ407のリセットタイミングが最適となる。
(カウンタ期待値)
図13は、本実施形態に係るカウンタ期待値の決定を説明する図である。なお、本実施形態においては、カウンタ期待値の決定を自動的には行なっていないが、図13のようなテーブルをカウンタ期待値の学習結果として保持することで、自動的なカウンタ期待値の決定および設定が可能である。なお、図13において、第2実施形態の図6Bと同様の構成には同じ参照番号を付して説明は省略する。
図13は、本実施形態に係るカウンタ期待値の決定を説明する図である。なお、本実施形態においては、カウンタ期待値の決定を自動的には行なっていないが、図13のようなテーブルをカウンタ期待値の学習結果として保持することで、自動的なカウンタ期待値の決定および設定が可能である。なお、図13において、第2実施形態の図6Bと同様の構成には同じ参照番号を付して説明は省略する。
ポート番号およびレーン番号に対応付けて、クリア直前のライトポインタの値1303を記憶する。そして、クリア直前のライトポインタの値1303の最大値1304を見付け、そのライトポインタの最大値1304に基づいてカウンタ期待値1305を決定する。
本実施形態によれば、リードポインタを各レーンのリアルタイムのライトポインタを参照して決定できるので、確実なポート間およびレーン間のデスキューと、確実な受信データの取得とができる。すなわち、フライトタイムは製造誤差やクロックスキューなどによりシステムごとに異なるため、フライトタイムの最適値を算出することでFIFOバッファに格納してから読み出すまでの時間を最適にすることが可能となる。したがって、そのシステムに対して最適なフライトタイムとなるので、レイテンシが最も短くなり性能改善が見込める。なお、本実施形態では、第2実施形態のデスキュー可能なデータ伝送の技術を分散共有メモリ型システムに適用した例を示したが、同じタイミングでデータ伝送すべきポート間あるいはレーン間におけるスキューをデスキューすることを要求される他のシステムにも適用でき、同様の効果を奏する。
[他の実施形態]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。
[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。
(付記2)
前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する付記1に記載の情報処理装置。
(付記3)
前記第1カウンタのカウント数と、前記1つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される付記1または2に記載の情報処理装置。
(付記4)
前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える付記1乃至5のいずれか1項に記載の情報処理装置。
(付記7)
前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する付記1乃至6のいずれか1項に記載の情報処理装置。
(付記8)
前記調整モードは、当該情報処理装置の製造時、当該情報処理装置の組立時、当該情報処理装置のパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、に設定される付記7に記載の情報処理装置。
(付記9)
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
(付記10)
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。
(付記11)
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。
(付記2)
前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する付記1に記載の情報処理装置。
(付記3)
前記第1カウンタのカウント数と、前記1つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される付記1または2に記載の情報処理装置。
(付記4)
前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)
前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える付記1乃至5のいずれか1項に記載の情報処理装置。
(付記7)
前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する付記1乃至6のいずれか1項に記載の情報処理装置。
(付記8)
前記調整モードは、当該情報処理装置の製造時、当該情報処理装置の組立時、当該情報処理装置のパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、に設定される付記7に記載の情報処理装置。
(付記9)
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
(付記10)
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。
(付記11)
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
Claims (10)
- 各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。 - 前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する請求項1に記載の情報処理装置。
- 前記第1カウンタのカウント数と、前記1つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される請求項1または2に記載の情報処理装置。
- 前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する請求項1乃至4のいずれか1項に記載の情報処理装置。 - 前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える請求項1乃至5のいずれか1項に記載の情報処理装置。
- 前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する請求項1乃至6のいずれか1項に記載の情報処理装置。
- 調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。 - プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
1つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも2つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。 - プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第2カウンタでカウントして、前記第2カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第1カウンタをカウントして、前記第1カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012267822A JP5360940B1 (ja) | 2012-12-07 | 2012-12-07 | 分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012267822A JP5360940B1 (ja) | 2012-12-07 | 2012-12-07 | 分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5360940B1 true JP5360940B1 (ja) | 2013-12-04 |
JP2014116709A JP2014116709A (ja) | 2014-06-26 |
Family
ID=49850311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012267822A Active JP5360940B1 (ja) | 2012-12-07 | 2012-12-07 | 分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5360940B1 (ja) |
-
2012
- 2012-12-07 JP JP2012267822A patent/JP5360940B1/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014116709A (ja) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117360B (zh) | 基于fpga的接口信号重映射方法 | |
US9652425B2 (en) | Method, apparatus and system for a source-synchronous circuit-switched network on a chip (NOC) | |
US7234017B2 (en) | Computer system architecture for a processor connected to a high speed bus transceiver | |
US8924612B2 (en) | Apparatus and method for providing a bidirectional communications link between a master device and a slave device | |
US8327077B2 (en) | Method and apparatus of parallel computing with simultaneously operating stream prefetching and list prefetching engines | |
KR101661259B1 (ko) | 저전력 부분 폭 고속 링크 상태에서 나갈 때의 고속 디스큐 | |
JP4621604B2 (ja) | バス装置、バスシステムおよび情報転送方法 | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
CN112035389B (zh) | 一种plb-axi总线转换桥及其工作方法 | |
TW200421087A (en) | Memory hub and access method having internal row caching | |
JP2012146201A (ja) | オンチップルータ及びそれを用いたマルチコアシステム | |
JP2014017006A (ja) | PCIExpressでのIDベースストリームを可能にする方法及び装置 | |
TWI602196B (zh) | 記憶體元件的控制方法、記憶體元件以及記憶體系統 | |
US20140006730A1 (en) | Memory controller devices, systems and methods for high reliability memory devices | |
CN115481079B (zh) | 一种数据调度***、可重构处理器及数据调度方法 | |
CN114265872B (zh) | 一种用于总线的互联装置 | |
EP2288084A2 (en) | Network system, information processing apparatus, and control method for network system | |
US10223310B2 (en) | Multi-source flow management using elastic FIFO structures | |
CN1996276A (zh) | 多处理器***中的数据传输 | |
US8631265B2 (en) | Synchronization circuit that facilitates multiple parallel reads and writes | |
KR20010056536A (ko) | 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기 | |
JP5360940B1 (ja) | 分散共有メモリ型システムおよびそのメモリアクセス方法、情報処理装置、およびデータ伝送方法 | |
US9003083B2 (en) | Buffer circuit and semiconductor integrated circuit | |
JPWO2014068789A1 (ja) | メモリ制御装置 | |
US20240264961A1 (en) | System and method for optimizing ahb bus data transmission performance and server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
R150 | Certificate of patent or registration of utility model |
Ref document number: 5360940 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |