(57)【要約】【課題】ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なって高速な処理を実現すること。【解決手段】各ポートが複数のレーンを有する複数のポートと、複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御部とを備える。入力制御部は、１つのバッファが各レーンに対応している複数のバッファと、複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、各バッファへの書込位置情報を生成する複数の書込位置情報生成部と、複数のポートで共有する同期信号で第１カウンタをカウントして、第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成部と、を有する。【選択図】  図１
2014116709.tif 000002
【特許請求の範囲】
【請求項１】
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。
【請求項２】
前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する請求項１に記載の情報処理装置。
【請求項３】
前記第１カウンタのカウント数と、前記１つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される請求項１または２に記載の情報処理装置。
【請求項４】
前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記調整モードは、当該情報処理装置の製造時、当該情報処理装置の組立時、当該情報処理装置のパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、に設定される請求項７に記載の情報処理装置。
【請求項９】
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
【請求項１０】
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。
【請求項１１】
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期インタフェースにおけるポート間およびレーン間のデスキュー技術に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）製造技術の進歩によりトランジスタの微細化が進みより多くのハードウェアを搭載することが可能となり、従来装置では複数のＬＳＩで構成していたモジュールを１つのＬＳＩで構成することが可能になってきた。しかし、複数のＬＳＩが１つのＬＳＩに収まり切らないケースもあり故障率の観点からもハードウェア量の削減を行なう必要が出てくる。また、クロック周波数が高速になったためインタフェースは同期転送から非同期転送が主流となりデスキュー技術の開発が重要は課題となっていた。そしてコンピュータシステムでは、メモリアクセスレイテンシの短縮が性能改善の重要項目となっている。
【０００３】
上記技術分野において、特許文献１には、ポート間のクロック周波数差補償によるクロックデスキューと、エラスティックバッファを用いたレーン間のデータデスキューとを行なう技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１５１６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、ＬＳＩ間を接続する複数のインタフェースポートを有するコンピュータシステムなどにおいて、それぞれのポート間で同期動作が必要なアーキテクチャを採用する。その場合、非同期インタフェースを複数レーンで構成すると、レーン間デスキューとともにポート間の同期をとるためのポート間デスキューも行なわなければならない。上記文献に記載の技術においては、ポート間のクロックデスキューとレーン間のデータデスキューとを異なる技術で解決しているので、１つの技術に統合することはできなかった。
【０００６】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る情報処理装置は、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
【０００８】
上記目的を達成するため、本発明に係るデータ伝送方法は、
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する。
【０００９】
上記目的を達成するため、本発明に係る分散共有メモリ型システムは、
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する。
【００１０】
上記目的を達成するため、本発明に係るメモリアクセス方法は、
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する。
【発明の効果】
【００１１】
本発明によれば、ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なうので高速な処理を実現できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の第２実施形態に係る情報処理装置を含む情報処理システムの構成を示すブロック図である。
【図３】本発明の第２実施形態に係る情報処理装置のインタフェース出力部の構成を示すブロック図である。
【図４】本発明の第２実施形態に係る情報処理装置のインタフェース入力部の構成を示すブロック図である。
【図５Ａ】本発明の第２実施形態に係るカウンタのカウント数およびバッファのバッファ長を説明する図である。
【図５Ｂ】本発明の第２実施形態に係るデファイナ信号とカウンタとの関係を説明するタイミングチャートである。
【図６Ａ】本発明の第２実施形態に係る調整用データ生成回路の構成および動作を説明する図である。
【図６Ｂ】本発明の第２実施形態に係るライトポインタとカウンタ期待値との関連を説明する図である。
【図７】本発明の第２実施形態に係るポートおよびレーンのデスキューを示すタイミングチャートである。
【図８】本発明の第２実施形態に係る調整モードとデータ伝送モードとを示すシーケンス図である。
【図９】本発明の第３実施形態に係る情報処理装置としてのセルを含む分散共有メモリ型システムの構成を示すブロック図である。
【図１０】本発明の第３実施形態に係る分散共有メモリ型システムのメモリアクセス動作を示すシーケンス図である。
【図１１】本発明の第３実施形態に係る分散共有メモリ型システムのメモリアクセス処理の手順を示すフローチャートである。
【図１２】本発明の第４実施形態に係る情報処理装置のインタフェース入力部の構成を示すブロック図である。
【図１３】本発明の第４実施形態に係るカウンタ期待値の決定を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１４】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、複数ポートの複数レーンでのデスキューを実現する装置である。
【００１５】
図１に示すように、情報処理装置１００は、複数のポート１１０、１３０と、入力制御部１４０と、を備える。複数のポート１１０、１３０は、各ポートが複数のレーン１１１〜１１３、１３１〜１３３を有する。また、入力制御部１４０は、複数のポート１１０、１３０が有する複数のレーン１１１〜１１３、１３１〜１３３から同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する。そして、入力制御部１４０は、複数のバッファ１４１〜１４３、１４７〜１４９と、複数の書込位置情報生成部１５０と、読出位置情報生成部１６０と、を有する。複数のバッファ１４１〜１４３、１４７〜１４９は、１つのバッファが各レーンに対応している。また、複数の書込位置情報生成部１５０は、複数のバッファ１４１〜１４３、１４７〜１４９に含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへ１４１〜１４３、１４７〜１４９の書込位置情報を生成する。また、読出位置情報生成部１６０は、複数のポート１１０、１３０で共有する同期信号で第１カウンタをカウントして、第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、複数のバッファ１４１〜１４３、１４７〜１４９に含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する。
【００１６】
本実施形態によれば、ポート間のデスキューとレーン間のデスキューを、簡単な構成で同時に行なうので高速な処理を実現できる。
【００１７】
［第２実施形態］
次に、本発明の第２実施形態に係る情報処理装置を含む情報処理システムについて説明する。本実施形態の情報処理システムにおいては、レーン間デスキュー用ＦＩＦＯ（First In First Out）バッファとポート間デスキュー用ＦＩＦＯバッファを統合して、同じ回路で実施可能とする。
【００１８】
本実施形態によれば、バッファへの書き込み読み出し処理が１段のバッファ分だけとなるためレイテンシを改善することができる。また、ハード量を削減することで故障率は下げる効果もある。また、レーン間およびポート間デスキュー処理をほぼ全てをハードウェアが行なうためファームウェアによる初期化時間を大幅に短縮することができる。
【００１９】
《情報処理システム》
図２は、本実施形態に係る情報処理装置２１０、２５０を含む情報処理システム２００の構成を示すブロック図である。なお、図２においては、情報処理装置を２つしか図示していないが３つ以上であってもよい。また、出力ポートと入力ポートとが一対しか図示されていないが、複数のポートが接続されているものとする。また、各ポートは４つのレーンで構成したが、数は４つに限定されない。
【００２０】
情報処理装置２１０は、データ処理部２２０と、インタフェース出力部２３０と、インタフェース入力部２４０とを備える。ここで、データ処理部２２０の処理は限定されない。データ処理部２２０は、インタフェース入力部２４０から入力されたデータを処理して、インタフェース出力部２３０から出力する。インタフェース出力部２３０は、出力ポート０（２３１）を有する。出力ポート０（２３１）は、デファイナ信号に同期して動作する出力ポート共通回路２３２と調整用データ生成回路２３３とを有する。そして、出力ポート０（２３１）は、調整モードの時には、調整用データ生成回路２３３で生成された調整用データを４つのレーン０送信制御部２３４、レーン１送信制御部２３５、レーン２送信制御部２３６、レーン３送信制御部２３７から出力する。インタフェース入力部２４０は、入力ポート０（２４１）を有する。入力ポート０（２４１）は、デファイナ信号に同期して動作する入力ポート共通回路２４２を有する。そして、入力ポート０（２４１）は、調整モードの時には、入力ポート共通回路２４２に基づいて、４つのレーン０入力制御部２４４、レーン１入力制御部２４５、レーン２入力制御部２４６、レーン３入力制御部２４７内の各バッファの読出位置情報としてのリードポインタを決定する。
【００２１】
情報処理装置２５０は、データ処理部２６０と、入力制御部としてのインタフェース入力部２７０と、送信制御部としてのインタフェース出力部２８０とを備える。ここで、データ処理部２６０の処理は限定されない。データ処理部２６０は、インタフェース入力部２７０から入力されたデータを処理して、インタフェース出力部２８０から出力する。インタフェース入力部２７０は、入力ポート０（２７１）を有する。入力ポート０（２７１）は、デファイナ信号に同期して動作する入力ポート共通回路２７２を有する。そして、入力ポート０（２７１）は、調整モードの時には、入力ポート共通回路２７２に基づいて、４つのレーン０入力制御部２７４、レーン１入力制御部２７５、レーン２入力制御部２７６、レーン３入力制御部２７７内の各バッファのリードポインタを決定する。インタフェース出力部２８０は、出力ポート０（２８１）を有する。出力ポート０（２８１）は、デファイナ信号に同期して動作する出力ポート共通回路２８２と調整用データ生成回路２８３とを有する。そして、出力ポート０（２８１）は、調整モードの時には、調整用データ生成回路２８３で生成された調整用データを４つのレーン０送信制御部２８４、レーン１送信制御部２８５、レーン２送信制御部２８６、レーン３送信制御部２８７から出力する。
【００２２】
図２においては、インタフェース出力部２３０が有する出力ポート０（２３１）の各レーンが、インタフェース入力部２７０が有する入力ポート０（２７１）の各レーンに接続されている。また、インタフェース出力部２８０が有する出力ポート０（２８１）の各レーンが、インタフェース入力部２４０が有する入力ポート０（２４１）の各レーンに接続されている。なお、ポート間の接続やレーン間の接続は、図２のように平行に対に接続する必要はなく、交差しても構わない。
【００２３】
調整モードの時は、インタフェース出力部２３０と２８０との各レーンから、接続されたインタフェース入力部２７０と２４９との各レーンに、調整用データが出力される。インタフェース入力部２７０と２４９との各レーンでは、調整用データをあらかじめ保持されているデータと比較して、対応していれば自レーンが有するバッファの書込位置情報としてのライトポインタを設定する。また、入力ポート共通回路２４２、２７２に設定されているタイミングで、同期すべき全ポートの全レーンが有するバッファに共通のリードポインタを設定する。
【００２４】
データ伝送モードの時は、調整モードで設定したライトポインタにより各レーンが有するバッファにデータが格納され、調整モードで設定したリードポインタにより同期すべき全ポートの全レーンが有するバッファからデータが同時に読み出される。
【００２５】
このように、調整モードにおける調整によって、各レーンが有する１つのバッファのライトポインタと、同期すべき全ポートの全レーンが有するバッファのリードポインタとにより受信したデータのスキューをデスキューして入力できることになる。
【００２６】
なお、調整モードは、例えば、当該情報処理装置の製造時、当該情報処理装置を含む情報処理システムの組立時、当該情報処理装置あるいは情報処理システムのパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、などに初期化として実行される。
【００２７】
《インタフェース出力部》
図３は、本実施形態に係る情報処理装置２１０、２５０のインタフェース出力部２３０、２８０の構成を示すブロック図である。なお、図３には、インタフェース出力部２３０の１つのポートのみを示すが、インタフェース出力部にはかかるポートが複数搭載されている。
【００２８】
図３において、出力ポート共通回路３０１は、全ての出力ポートに備わっている回路である。そして、出力ポート共通回路３０１は、システムクロックに同期する情報処理装置あるいは情報処理システムの中で完全に同期しているデファイナ信号３０２（図５Ｂ参照）をリセット信号に用いた、リングカウンタ３０３を有している。図３の調整用データ生成回路３０４はカウンタ値より毎クロックで異なる値となるよう調整用データ（図６Ａ参照）を生成する回路である。なお、図３においては、各出力ポートが出力ポート共通回路３０１および調整用データ生成回路３０４を有する場合を示すが、出力ポート共通回路３０１および調整用データ生成回路３０４を同じ調整用データを出力する複数の出力ポートが共有してもよい。
【００２９】
図３の調整Validレジスタ３０５をアサートすると、出力データセレクタ３０６が調整用データを選択して、ポート内の全レーンが調整用データ生成回路３０４で生成した調整用データを出力するようになる。調整Validレジスタ３０５をディアサートすると、通常の出力データバス３０７からのデータを選択して出力する。
【００３０】
《インタフェース入力部》
図４は、本実施形態に係る情報処理装置２１０、２５０のインタフェース入力部２４０、２７０の構成を示すブロック図である。なお、図４には、インタフェース入力部２７０の１つのポートのみを示すが、インタフェース入力部にはかかるポートが複数搭載されている。
【００３１】
図３のインタフェース出力部２３０の調整Validレジスタ３０５をアサートすると、調整用データがインタフェース入力部２７０の各レーンに向けて出力され始める。インタフェース入力部２７０では、その調整用データを受信して、受信データ期待値レジスタ４０１の値と比較を行なう。受信データ期待値レジスタ４０１には、あらかじめ全ポートのレジスタに対して同じ値を設定しておく。受信したデータと受信データ期待値レジスタ４０１の値が一致したときに、ライトポインタ４０２をリセットする。それぞれのレーンごとにフライトタイムは異なるのでリセットタイミングはズレることになる。しかし、ライトポインタ４０２のリセット後、インタフェース出力部２３０から各レーンに同時に出力されたデータは、ポート間およびレーン間デスキューＦＩＦＯバッファ４０９の全て同じエントリに格納されることになる。
【００３２】
入力ポート共通回路４０３は、インタフェース入力部２７０の全ての入力ポートに１つ備わっていて、レーン間で共通に使用する回路である。図３のデファイナ信号３０２と同期しているデファイナ信号４０４をリセット信号に用いて、リングカウンタ４０５を構成している。リングカウンタ４０５も、リングカウンタ３０３と同様にシステムクロックでカウントアップし、デファイナ信号でリセットする回路であり、全てのポート部で同じ値となるようになっている。
【００３３】
カウンタ期待値レジスタ４０６には、想定されるフライトタイムの最大値から計算された値を設定しておき、カウンタの値とカウンタ期待値とが一致した場合に、リードポインタ４０７をリセットする。リングカウンタ４０５は全ポートで同じ値で動作していて、カウンタ期待値レジスタ４０６にも全てのポートで同じ値が設定されているため、リードポインタ４０７のリセットは全ポートの全レーンに対して同時に行われる。なお、図４においては、各入力ポートが入力ポート共通回路４０３を有する場合を示すが、入力ポート共通回路４０３を同じタイミングでデータを入力すべき複数の入力ポートが共有してもよい。
【００３４】
調整Validレジスタ４０８をアサートすると、ライトポインタ４０２およびリードポインタ４０７のリセット回路が有効となる。調整Validレジスタ４０８をディアサートすると、ライトポインタ４０２およびリードポインタ４０７はシステムクロックでインクリメントされる。
【００３５】
ポート間およびレーン間デスキューＦＩＦＯバッファ４０９は、全てのレーンに用意されている。そして、最速フライトタイムのレーンのデータは入力ポートに到着後直ちにＦＩＦＯバッファに格納され、最遅フライトタイムのレーンのデータがＦＩＦＯバッファに格納されるまで待たされる。最遅フライトタイムのレーンのデータが格納された直後に、ＦＩＦＯバッファから読み出されるように調整している。よって、ポート間およびレーン間デスキューＦＩＦＯバッファ４０９の深さ（バッファ長）は、最遅フライトタイムと最速フライトタイムとの差分で決定される。例えば、フライトタイムの最大差分が６クロックサイクルであった場合、ポート間およびレーン間デスキューＦＩＦＯバッファ４０９は８ワード程度を用意する必要がある。
【００３６】
入力ポート共通回路４０３で生成したリードポインタ４０７のリセット信号のタイミングは全ポート同期しているため、リードポインタ４０７は全ポートで同期している。よって、全ポートの全レーンのポート間およびレーン間デスキューＦＩＦＯバッファ４０９から読み出されたデータは、インタフェース出力部２３０から出力されたデータが、全ポートおよび全レーンについてデスキューされた状態で全て揃うことになる。
【００３７】
なお、ポート間およびレーン間デスキューＦＩＦＯバッファ４０９の幅が１ビットであればシーケンスデータ、複数ビットであればパラレルデータとなる。例えば、１バイト伝送であれば８ビットのパラレルデータである。
【００３８】
（カウント数およびバッファ長）
図５Ａは、本実施形態に係るカウンタのカウント数およびバッファのバッファ長を説明する図である。なお、本実施例においては、カウンタのカウント数およびバッファのバッファ長は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
【００３９】
カウント数＝バッファ長５０５は、同期すべき全ポートおよび全レーンについての、最大スキュー５０３と最小スキュー５０２との差であるスキューのばらつきを、システムクロック速度５０１で除算した値に対して＋αをした数である。ここで、＋αは、バッファのライトリード速度に基づく、ライトポインタとリードポインタとの必要な差に相当する。
【００４０】
（デファイナ信号とカウンタ）
図５Ｂは、本実施形態に係るデファイナ信号とカウンタとの関係を説明するタイミングチャートである。
【００４１】
システム中で同期しているデファイナ信号３０２、４０４とは、図５Ｂに示すようにある周期でパルスを発する信号で、パルス幅はレーン間またはポート間の最大フライトタイム差分により決定される。図５Ｂでは、８クロック周期のデファイナ信号を例としてあげている。リングカウンタ３０３、４０５は、システムクロックでカウントアップし、デファイナ信号３０２、４０４でリセットする回路であり、全てのポート部で同じ値となるようになっている。
【００４２】
（調整用データ生成回路）
図６Ａは、本実施形態に係る調整用データ生成回路３０４の構成および動作を説明する図である。
【００４３】
調整用データ生成回路３０４においては、出力ポート共通回路３０１のリングカウンタ３０３のカウンタ値が調整用データに変換されて、調整モード時には、出力データセレクタ１０５を介して各レーンから出力される。
【００４４】
（カウンタ期待値）
図６Ｂは、本実施形態に係るライトポインタとカウンタ期待値との関連を説明する図である。なお、本実施例においては、カウンタ期待値は、製造時にあらかじめ決められたものとして説明しているが、組立時や初期化時に算出して設定し直すことも可能である。このようにすれば、規格化されないより高速のデスキューされたデータ伝送ができる。
【００４５】
本実施形態においては、ポート番号６０１と、レーン番号６０２とに対応付けて決定されたライトポインタタイミング６０３に基づいて、読み出しが確実なリードポインタのためのカウンタ期待値と６０４を決定する。
【００４６】
《デスキューのタイミングチャート》
図７は、本実施形態に係るポートおよびレーンのデスキューを示すタイミングチャートである。なお、ここでは例として、１レーンのシリアルのビット幅は８ビットとしている。
【００４７】
出力ポートは、デファイナ信号でカウンタを制御して、送信する調整用データを生成している。生成した調整用データは、全ポートの全レーンで同じタイミングで同じ値を出力することが可能である。入力ポートは、レーンごとにフライトタイムが異なるためライトポインタのリセットタイミングが異なることを示している。また、リードポインタの制御は、フライトタイムを考慮して、デファイナ信号によりリセットタイミングを全ポートの全レーンで同じタイミングで行なうことで、ＦＩＦＯバッファをリードするタイミングを揃えている様子を示している。
【００４８】
このように、各レーンが有する１つのバッファに対するライトポインタとリードポインタとの設定によって、同期すべき全ポートおよび全レーンに発生するデータスキューはデスキューされる。
【００４９】
《動作シーケンス》
図８は、本実施形態に係る調整モードとデータ伝送モードとを示すシーケンス図である。
【００５０】
ステップＳ８０１において、情報処理装置あるいは情報処理システムが有する全てのインタフェース出力部および全てのインタフェース入力部を調整モードにセットする。すなわち、調整Validをハイとして、インタフェース出力部では調整用データの出力を選択し、インタフェース入力部ではバッファのライトポインタとリードポインタとをリセット可能とする。
【００５１】
ステップＳ８０３において、出力ポートでは調整用データを生成する。一方、入力ポートでは、ステップＳ８０５において、カウンタ期待値を設定し、ステップＳ８０７において、各レーンに受信データ期待値を設定する。そして、ステップＳ８０９において、出力ポートの各レーンに同じ調整用データが渡され、ステップＳ８１１において、接続された入力ポートの各レーンに送信する。
【００５２】
ステップＳ８１３およびＳ８１５においては、各ポートで受信した調整用データが受信データ期待値であるか否かが判定され、受信データ期待値の受信であればライトポインタに設定する。また、入力ポートでは、ステップＳ８１７において、カウンタの値がカウンタ期待値になったか否かを判定し、カウンタの値がカウンタ期待値になったときにリードポインタを決定して、同期すべき全レーンに渡す。ステップＳ８１９において、全レーンの共通のリードポインタを設定する。
【００５３】
ステップＳ８２１において、調整Validをローとして調整モードを終了し、通常のデータ伝送モードとする。データ伝送モードにおいては、インタフェース出力部では出力データバス３０７のデータが各レーンから送信され、インタフェース入力部では、各レーンで受信したデータを調整モードで設定されたライトポインタを使ってバッファに書き込み、リードポインタを使ってバッファから読み出す。このようにして、デスキューされたデータが全ポートの全レーンから入力されたことになる。
【００５４】
本実施形態によれば、バッファへの書き込み読み出し処理が１段のバッファ分だけとなるためレイテンシを改善することができる。また、ハード量を削減することで故障率は下げる効果もある。また、レーン間およびポート間デスキュー処理をほぼ全てをハードウェアが行なうためファームウェアによる初期化時間を大幅に短縮することができる。
【００５５】
［第３実施形態］
次に、本発明の第３実施形態に係る情報処理装置を含む情報処理システムとしての共有メモリが分散配置された分散共有メモリ型システムについて説明する。本実施形態に係る分散共有メモリ型システムである分散共有メモリ型マルチプロセッサシステムは、上記第２実施形態と比べると、具体的に分散共有メモリをプロセッサがアクセスする構成である点で異なる。出力ポートおよび入力ポートの構成および動作は第２実施形態と同様であるため、その詳しい説明を省略する。
【００５６】
ＬＳＩ間を接続するインタフェースでポート間の同期が必要な構成としては、タグ方式の分散共有メモリ型マルチプロセッサシステムが挙げられる。このシステムでは、キャッシュのコヒーレンシ制御を行なうためのタグメモリを持っていて、キャッシュに格納されているデータのステータス情報を格納している。ステータス情報とは、キャッシュに格納されているデータが最新データであってシステム中で唯一のものなのか、複数のキャッシュにシェアされているものなのか、キャッシュではなくメモリが最新データなのかなどを表している。メモリアクセストランザクションでは、メモリにアクセスする際にこのタグメモリの索引を行い、タグメモリに格納されているステータスから最新データの所在を確認する。タグ索引結果をまとめて最新データの所在を判別し、メモリまたはキャッシュへアクセスするためにトランザクションをルーティングすることで、期待するデータを得ることができる。
【００５７】
キャッシュのコヒーレンシ制御を行なう上で、タグメモリの索引・更新は全てのタグメモリを同時に索引・更新しなければならない。また、タグの索引結果を各タグから集める際にも、ポート間で同期していなければならない。これらの処理を同時に行なうにはポート間およびレーン間のデスキュー処理が必要であり、本実施形態の技術が有効となる。
【００５８】
《分散共有メモリ型システム》
図９は、本実施形態に係る情報処理装置としてのセルを含む分散共有メモリ型システム９００の構成を示すブロック図である。
【００５９】
分散共有メモリ型システム９００としての分散共有メモリ型マルチプロセッサシステムは、複数のセルと呼ばれるモジュールで構成されている。なお、図９では例として４セル構成としているが、これに限定されない。セルの構成要素は、プロセッサ、メモリコントローラ、キャッシュコントローラ、メモリ、ＩＯなどである。メモリコントローラは、タグメモリ、タグ制御部、コヒーレンシ制御部を持つ。キャッシュコントローラは、キャッシュ、キャッシュ制御部などを持つ。
【００６０】
図９においては、セル０（９１０）のプロセッサ９１１が、メモリコントローラ９１２によるセル１（９２０）〜セル３（９４０）が分散共有するキャッシュのコヒーレンシ制御によって、データを読み出す場合に必要な構成要素を示している。セル１（９２０）〜セル３（９４０）のプロセッサ（不図示）がデータを読み出す場合には、セル１（９２０）〜セル３（９４０）のプロセッサ（不図示）を中心とした構成要素が使用される。また、図９においては、セル２（９３０）のキャッシュ９３５に所望のデータがヒットする場合を示す。
【００６１】
セル０（９１０）は、自分のメモリ９１３を有している。セル０（９１０）のメモリコントローラ９１２は、セル１（９２０）〜セル３（９４０）の各メモリコントローラ９２１〜９４１が有する本実施形態の入力ポート９２２〜９４２とそれぞれ接続する、本実施形態の出力ポート９１４〜９１６を有する。また、セル０（９１０）のメモリコントローラ９１２は、セル１（９２０）〜セル３（９４０）の各メモリコントローラ９２１〜９４１が有する本実施形態の出力ポート９２３〜９４３とそれぞれ接続する、本実施形態の入力ポート９１７〜９１９を有する。
【００６２】
そして、ヒットするセル２（９３０）には、キャッシュコントローラ９３４を介してキャッシュ９３５が図示されている。なお、セル１（９２０）やセル３（９４０）もキャッシュコントローラおよびキャッシュを有するが図９には図示していない。
【００６３】
《メモリアクセス動作》
以下、かかる図９のタグ方式の分散共有メモリ型システム９００としての分散共有メモリ型マルチプロセッサシステムにおける、メモリアクセストランザクションの簡単な処理例を用いて、ポート間デスキューが必要となる動作を説明する。
【００６４】
図１０は、本実施形態に係る分散共有メモリ型システム９００のメモリアクセス動作を示すシーケンス図である。
【００６５】
ステップＳ１００１において、あるメモリアクセストランザクションがセル０（９１０）のプロセッサ９１１から同セル内のメモリコントローラ９１２に発行される。なお、メモリアクセストランザクションは、セル０（９１０）のＩＯ（不図示）から発行されてもよい。
【００６６】
メモリコントローラ９１２は、そのメモリアクセストランザクションを受信し、ステップＳ１００７において自分のメモリ９１３にアクセスする。また、メモリコントローラ９１２は、キャッシュへのアクセスを行なうため、ステップＳ１００３およびＳ１００５において出力ポート９１４〜９１６を介して各セルのメモリコントローラ９２１〜９４１に対してタグスヌープトランザクション指示を発行する。
【００６７】
本実施形態では、どのセルのキャッシュが最新データを保持しているか確認するために、全セルのタグメモリにスヌープトランザクションを発行してタグ索引を行なう。ステップＳ１００５のスヌープトランザクションは、全セルに同期して発行される。全セルのメモリコントローラ９２１〜９４１では、ステップＳ１００９〜Ｓ１０１３において、同期してタグを索引してキャッシュヒットを判定する。そして、ステップＳ１０１７において、全セルから同時にスヌープトランザクションの発行元セル（本例ではセル０（９１０））にスヌープ結果を戻す動作を行なう。このタグスヌープで使用するインタフェースは、ポート間およびレーン間で同期していなければならない。本例では、ステップＳ１０１５において、セル２（９３０）のキャッシュコントローラ９３４がキャッシュヒットを得たとしている。
【００６８】
ステップＳ１０１７およびＳ１０１９において、タグスヌープ結果を入力ポート９１７〜９１９を介して受信した発行元セルのメモリコントローラ９１２は、ステップＳ１０２１において、スヌープ結果を解析してキャッシュヒットしたか否かを判定する。キャッシュヒットしたと判定した場合、メモリコントローラ９１２は、あらかじめメモリアクセスしておいたメモリ９１３からのメモリリプライデータを廃棄する処理を行なう。
【００６９】
タグにヒットしたセル２（９３０）のキャッシュが最新データを持っているので、そのメモリコントローラ９３１はキャッシュコントローラ９３４にキャッシュアクセストランザクションを発行する。キャッシュアクセストランザクションを受信したキャッシュコントローラ９３４は、キャッシュ９３５に対してアクセスする。ステップＳ１０２３において、キャッシュ９３５から読み出されたデータは、メモリコントローラ９３１に送られ、さらにタグスヌープトランザクションを発行したセルのメモリコントローラ９１２にリプライデータとして戻される。リプライデータを受信したメモリコントローラ９１２は、リプライトランザクションとしてデータとともに発行元のプロセッサ９１１に戻される。
【００７０】
《メモリアクセス処理》
図１１は、本実施形態に係る分散共有メモリ型システム９００のメモリアクセス処理の手順を示すフローチャートである。図１１のフローチャートは、セル０（９１０）のメモリコントローラ９１２において実行される。
【００７１】
ステップＳ１１０１において、メモリコントローラ９１２は、プロセッサ９１１（または、ＩＯ）からのメモリアクセスがあるか否かを判定する。メモリアクセスがあるとステップＳ１１０３において、メモリコントローラ９１２は、出力ポートを介して共有メモリを有するセル１（９２０）〜セル３（９４０）のメモリコントローラ９２１〜９４１にタグスヌープトランザクションを行なう。また、ステップＳ１１０５において、メモリコントローラ９１２は、自セルのメモリ９１３に対してメモリアクセスを行なう。
【００７２】
そして、ステップＳ１１０７において、メモリコントローラ９１２は、メモリコントローラ９２１〜９４１から応答されたタグスヌープ結果に、キャッシュヒットがあるか否かを判定する。キャッシュヒットがあれば、メモリコントローラ９１２は、ステップＳ１１０９において、メモリ９１３からの取得データを破棄して、キャッシュデータを取得する。一方、キャッシュヒットがなければ、メモリコントローラ９１２は、ステップＳ１１１１において、メモリ９１３からのデータを取得する。
【００７３】
ステップＳ１１１３において、メモリコントローラ９１２は、取得したデータをプロセッサ９１１に渡す。
【００７４】
本実施形態によれば、分散共有メモリ型システムにおいて出力ポートおよび入力ポートに第２実施形態の構成を適用することにより、簡単な構成でポート間およびレーン間のデスキューを行なった高速のメモリアクセスができる。
【００７５】
［第４実施形態］
次に、本発明の第４実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第２実施形態と比べると、入力ポートにおいて各レーンが有するバッファのためのリセット直前のライトポインタを保持する点で異なる。保持された各レーンが有するバッファのためのリセット直前のライトポインタは、リードポインタのための好適なカウンタ期待値を決定するため用いられる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００７６】
本実施形態によれば、リードポインタを各レーンのリアルタイムのライトポインタを参照して決定できるので、確実なポート間およびレーン間のデスキューと、確実な受信データの取得とができる。
【００７７】
《インタフェース入力部》
図１２は、本実施形態に係る情報処理装置のインタフェース入力部１２７０の構成を示すブロック図である。図１２は、図４のインタフェース入力部に対して簡単な回路を追加することで、そのコンピュータシステムでの最速レイテンシとなる設定をすることが可能となる。なお、図１２において、第２実施形態の図４と同様の構成要素には同じ参照番号を付して、説明は省略する。
【００７８】
図１２において、全ポートに用意されているWPクリアValidレジスタ１２７１をアサートすることで、全ポート同期のデファイナ信号４０４のタイミングで、全ポートの全レーンのライトポインタが同時にリセットされる。すなわち、第２実施形態においては、調整用データを受信して、受信データ期待値レジスタ４０１と一致した場合にライトポインタをリセットしていた。本実施形態においては、このリセットするタイミングにおけるライトポインタのリセット指示がオンとなったときに、Hold指示レジスタ１２７２をアサートする。このHold指示レジスタ１２７２により、リセット直前のライトポインタの値をHoldライトポインタレジスタ１２７３に格納して保持しておく。この全てのレーンのHoldライトポインタレジスタ１２７３の値をファームウェアなどにより読み出せば、最も大きい値がそのシステムの最大フライトタイムを意味することになる。そこからカウンタ期待値レジスタ４０６の値を決定して設定することで、リードポインタ４０７のリセットタイミングが最適となる。
【００７９】
（カウンタ期待値）
図１３は、本実施形態に係るカウンタ期待値の決定を説明する図である。なお、本実施形態においては、カウンタ期待値の決定を自動的には行なっていないが、図１３のようなテーブルをカウンタ期待値の学習結果として保持することで、自動的なカウンタ期待値の決定および設定が可能である。なお、図１３において、第２実施形態の図６Ｂと同様の構成には同じ参照番号を付して説明は省略する。
【００８０】
ポート番号およびレーン番号に対応付けて、クリア直前のライトポインタの値１３０３を記憶する。そして、クリア直前のライトポインタの値１３０３の最大値１３０４を見付け、そのライトポインタの最大値１３０４に基づいてカウンタ期待値１３０５を決定する。
【００８１】
本実施形態によれば、リードポインタを各レーンのリアルタイムのライトポインタを参照して決定できるので、確実なポート間およびレーン間のデスキューと、確実な受信データの取得とができる。すなわち、フライトタイムは製造誤差やクロックスキューなどによりシステムごとに異なるため、フライトタイムの最適値を算出することでＦＩＦＯバッファに格納してから読み出すまでの時間を最適にすることが可能となる。したがって、そのシステムに対して最適なフライトタイムとなるので、レイテンシが最も短くなり性能改善が見込める。なお、本実施形態では、第２実施形態のデスキュー可能なデータ伝送の技術を分散共有メモリ型システムに適用した例を示したが、同じタイミングでデータ伝送すべきポート間あるいはレーン間におけるスキューをデスキューすることを要求される他のシステムにも適用でき、同様の効果を奏する。
【００８２】
［他の実施形態］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【００８３】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ（World Wide Web）サーバも、本発明の範疇に含まれる。
【００８４】
［実施形態の他の表現］
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。
（付記２）
前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する付記１に記載の情報処理装置。
（付記３）
前記第１カウンタのカウント数と、前記１つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される付記１または２に記載の情報処理装置。
（付記４）
前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される付記１乃至３のいずれか１項に記載の情報処理装置。
（付記５）
前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する付記１乃至４のいずれか１項に記載の情報処理装置。
（付記６）
前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える付記１乃至５のいずれか１項に記載の情報処理装置。
（付記７）
前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する付記１乃至６のいずれか１項に記載の情報処理装置。
（付記８）
前記調整モードは、当該情報処理装置の製造時、当該情報処理装置の組立時、当該情報処理装置のパワーオン時、あらかじめ決められた時間間隔、あるいは、伝送されるデータの誤り率が閾値を超えた場合、に設定される付記７に記載の情報処理装置。
（付記９）
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
（付記１０）
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。
（付記１１）
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
【図１】
2014116709.tif 000003
【図２】
2014116709.tif 000004
【図３】
2014116709.tif 000005
【図４】
2014116709.tif 000006
【図５Ａ】
2014116709.tif 000007
【図５Ｂ】
2014116709.tif 000008
【図６Ａ】
2014116709.tif 000009
【図６Ｂ】
2014116709.tif 000010
【図７】
2014116709.tif 000011
【図８】
2014116709.tif 000012
【図９】
2014116709.tif 000013
【図１０】
2014116709.tif 000014
【図１１】
2014116709.tif 000015
【図１２】
2014116709.tif 000016
【図１３】
2014116709.tif 000017
【手続補正書】
【提出日】平成24年12月7日(2012.12.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファへの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する情報処理装置。
【請求項２】
前記読出位置情報生成手段は、前記複数のポートの各ポートに対応し、前記各ポートが有する複数のレーンのバッファに対して共通の読出位置情報を生成する請求項１に記載の情報処理装置。
【請求項３】
前記第１カウンタのカウント数と、前記１つのバッファのバッファ長とは、同期すべき全ポートの全レーンにおけるスキューばらつきに基づいて設定される請求項１または２に記載の情報処理装置。
【請求項４】
前記あらかじめ設定されるカウント値は、最もレイテンシがあるレーンで受信されたデータの読み出しが可能な値に設定される請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記書込位置情報生成手段は、あらかじめ設定されたデータを受信する直前の書込位置情報を保持する保持手段を有し、
同期すべき全ポートの全レーンが保持した前記直前の書込位置情報の最大値に基づいて、前記あらかじめ設定されるカウント値を決定する請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して、他の情報処理装置に送信する送信制御手段をさらに備える請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記情報処理装置は、各レーンの前記バッファの前記書込位置情報と、同期すべき全ポートおよび全レーンの前記読出位置情報とを調整する調整モードと、前記調整モードにおいて調整された前記書込位置情報と前記読出位置情報とに基づいて、データを伝送するデータ伝送モードとを有する請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
【請求項９】
プロセッサと、
分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、
を備え、
各々のキャッシュに所望のデータが保持されているかの問い合わせを前記プロセッサから受信する前記分散共有メモリの入力ポート、および、前記問い合わせへの応答を前記分散共有メモリから受信する前記プロセッサの入力ポートが、
各ポートが複数のレーンを有する複数のポートと、
前記複数のポートが有する複数のレーンから同じタイミングでデータを入力するように、各レーンのデータ入力タイミングを制御する入力制御手段と、
を備え、
前記入力制御手段は、
１つのバッファが各レーンに対応している複数のバッファと、
前記複数のバッファに含まれる各バッファに対応して設けられ、あらかじめ設定されたデータを受信したタイミングに基づいて、前記各バッファの書込位置情報を生成する複数の書込位置情報生成手段と、
前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されるカウント値となるタイミングに基づいて、前記複数のバッファに含まれる少なくとも２つのバッファに対し共通の読出位置情報を生成する読出位置情報生成手段と、
を有する分散共有メモリ型システム。
【請求項１０】
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報を生成すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファの読出位置情報を生成し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報とに基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
【手続補正書】
【提出日】平成25年7月10日(2013.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項８
【補正方法】変更
【補正の内容】
【請求項８】
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する、
データ伝送方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する、
メモリアクセス方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上記目的を達成するため、本発明に係るデータ伝送方法は、
調整モードにおいて、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの同期すべき各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記同期すべき各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
上記目的を達成するため、本発明に係るメモリアクセス方法は、
プロセッサと、分散して配置され、前記プロセッサによって共有されるキャッシュを有する分散共有メモリと、を備える分散共有メモリ型システムにおけるメモリアクセス方法であって、
調整モードにおいて、前記プロセッサの出力ポートと前記分散共有メモリの入力ポートとの間、および、前記分散共有メモリの出力ポートと前記プロセッサの入力ポートとの間で、
複数の出力ポートの各出力ポートから前記複数のポートで共有する同期信号を第２カウンタでカウントして、前記第２カウンタの値に対応するデータを生成して送信し、
複数の入力ポートが有する複数のレーンの各レーンが有するバッファのために、あらかじめ設定されたデータを受信したタイミングに基づいて、各レーンの前記バッファの書込位置情報の生成を調整すると共に、前記複数の入力ポートの複数のレーンが有する複数のバッファのために、前記複数のポートで共有する同期信号で第１カウンタをカウントして、前記第１カウンタの値があらかじめ設定されたカウント値となるタイミングに基づいて、前記複数のバッファに対して共通の読出位置情報の生成を調整し、
データ伝送モードにおいて、前記各レーンでは、調整された前記書込位置情報と前記読出位置情報との生成に基づいて、前記バッファを介して、伝送されるデータを入力する。