JP6079458B2 - 共有メモリ装置、メモリアクセス方法 - Google Patents

共有メモリ装置、メモリアクセス方法 Download PDF

Info

Publication number
JP6079458B2
JP6079458B2 JP2013122094A JP2013122094A JP6079458B2 JP 6079458 B2 JP6079458 B2 JP 6079458B2 JP 2013122094 A JP2013122094 A JP 2013122094A JP 2013122094 A JP2013122094 A JP 2013122094A JP 6079458 B2 JP6079458 B2 JP 6079458B2
Authority
JP
Japan
Prior art keywords
address
data
packet
unit
srio
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
Application number
JP2013122094A
Other languages
English (en)
Other versions
JP2014238778A (ja
Inventor
清隆 矢後
清隆 矢後
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013122094A priority Critical patent/JP6079458B2/ja
Publication of JP2014238778A publication Critical patent/JP2014238778A/ja
Application granted granted Critical
Publication of JP6079458B2 publication Critical patent/JP6079458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、共有メモリ装置、メモリアクセス方法に関する。
無線基地局(BBU:Base Band Unit)では、例えば、複数の制御処理を行う制御カード(MPU(Micro-Processing Unit)カード)と共有メモリ(メモリカード、アクティ
ブGM(Global Memory)カード等)カードとがネットワーク経由で接続されている。そ
のインタフェースプロトコルとして、例えばPCI Expressが使用されている。
ベースバンド信号処理部を1か所に集中して配置したC−BBU(Centralized-BBU)
装置は、複数(例えば、6枚)のMPUカードを有する。各MPUカードは、無線基地局データ等のユーザデータを共有のメモリカードに保存している。MPUカードの異常等によりMPUカードが交換されたとしても、交換されたMPUカードが使用するユーザデータは共有のメモリカードに存在しているので、交換後の復旧が容易になる。また、この共有のメモリカードは冗長構成により、現用のメモリカード自体が故障した際に、ユーザデータを維持することを可能にしている。
特開2005−166027号公報
C−BBU装置では、ユーザデータの増加にともなって共有のメモリカードの容量も増大している。共有のメモリカードに実装するメモリは、例えば、96GBにもなる。メモリカードの容量の増大により、メモリカードにアクセスするためのアドレスのビット数も増加する。例えば、96GBのアドレッシングには、37ビットのアドレスビットが使用される。即ち、96GBのメモリ内の特定の領域を1バイト単位で指定するのに、37ビットのアドレスビットが使用される。
また、MPUカードから共有のメモリカードに対するアクセスを高速にすることが求められる。そこで、C−BBU装置では、PCI Express等の汎用の高速シリアルの規格(インタフェースプロトコル)を使用することが考えられる。PCI Expressは、アドレス空間として64ビットアドレスオフセットで、最大1TBのアクセス窓を利用できる。よって、PCI Expressでは、96GBのメモリに1バイト単位でアクセス可能となる。
図1は、従来のC−BBU装置における、制御カードと共有メモリカードとの構成例を示す図である。図1の例では、6つの制御カード(制御カード#1乃至制御カード#6)が、PCIe SW(Switch)を介して、アクティブの共有メモリカード及びスタンバイの共有メモリカードに接続される。各制御カードは、PCI Expressインタフェースによって、各共有メモリカードにデータを書き込み、また、各共有メモリカードからデータを読み出す。
しかし、PCI Expressによるパケットのオーバーヘッドは大きいため、小さなパケット(データ)の送受信では、PCI Expressを使用することは、送受信の遅延の要因になりうる。
SRIO(Serial Rapid Input/Output)によるパケットでは、PCI Expres
sによるパケットに比べて、オーバーヘッドが小さい。SRIOでは、34ビット、50ビット、66ビットの3種類のアドレスオフセットが用意されている。しかし、50ビット、66ビットのアドレスオフセットは、オプションであり、既存のデバイスでは、ほとんどサポートされていない。従って、SRIOでは、34ビットのアドレスオフセットが実質的なサポート範囲である。34ビットのアドレスオフセットを使用するSRIOでは、37ビットのアドレスビットで特定される96GBのメモリにアクセスすることは難しい。以後、SRIOは、34ビットのアドレスオフセットを使用するものとする。
1つの側面では、本発明は、メモリのデータへのアクセスをより高速にする共有メモリ装置を提供することを課題とする。
第1の態様は、
データが格納されるメモリ部と、変換部と、メモリアクセス部とを備え、
前記変換部は、読み出し対象データの前記メモリ部におけるアドレス及び前記読み出し対象データの大きさを含む読み出し信号を受信し、前記メモリ部における前記アドレスを所定の第1ビット数の上位ビットのアドレスと所定の第2ビット数の下位ビットのアドレスとに分離し、前記上位ビットのアドレスを含む第1信号と、前記下位ビットのアドレス及び前記読み出し対象データの大きさを含む第2信号とを生成し、前記第1信号及び前記第2信号をメモリアクセス部に送信し、
前記メモリアクセス部は、前記第1信号を前記変換部から受信し、前記第1信号から前記上位ビットのアドレスを抽出し、前記上位ビットのアドレスで示される領域のデータを前記メモリ部から読み出し、前記第2信号を前記変換部から受信し、前記第2信号から前記下位ビットのアドレス及び前記読み出し対象データの大きさを抽出し、前記メモリ部から読み出された前記上位ビットのアドレスで示される領域のデータから前記下位ビットのアドレス及び前記読み出し対象データの大きさで特定されるデータを抽出し、抽出されたデータを含む第3信号を生成し、前記第3信号を前記変換部に送信する、
共有メモリ装置とする。
メモリのデータへのアクセスをより高速にする共有メモリ装置を提供することができる。
図1は、従来のC−BBU装置における、制御カードと共有メモリカードとの構成例を示す図である。 図2は、共有メモリ装置の構成例を示す図である。 図3は、アドレスとデータの例を示す図である。 図4は、SRIO終端部の構成例を示す図である。 図5は、制御カードの構成例を示す図である。 図6は、書き込みにおける情報の流れを示すシーケンスの例を示す図である。 図7は、読み出しにおける情報の流れを示すシーケンスの例を示す図である。 図8は、書き込みのパケットの構成例を示す図である。 図9は、読み出しのパケットの構成例を示す図である。 図10は、応答のパケットの構成例を示す図である。 図11は、SRIO MSGパケットの構成例を示す図である。 図12は、4バイトのデータの書き込みの際に、PCIeパケットでDDRメモリに直接アクセスした場合と、本実施形態の構成でメモリにアクセスした場合の比較例を示す図である。 図13は、4バイトのデータの読み出しの際に、PCIeパケットでDDRメモリに直接アクセスした場合と、本実施形態の構成でメモリにアクセスした場合の比較例を示す図である。
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、開示の構成は、開示の実施形態の具体的構成に限定されない。開示の構成の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。例えば、ここでは、1つのメモリカードに対して、複数の制御カードが接続される構成が記載されているが、開示の行使絵の実施にあたって、1つのメモリカードに対して1つの制御カードが接続される構成が採用されてもよい。
〔実施形態〕
(構成例)
図2は、共有メモリ装置の構成例を示す図である。図2の共有メモリ装置10は、メモリカード100、複数の制御カード200を含む。複数の制御カード200をそれぞれ区別する場合には、制御カード200−1、制御カード200−2、制御カード200−3、制御カード200−4、制御カード200−5、制御カード200−6とする。各制御カード200は、それぞれ、同様の構成を有する。メモリカード100は、GM_FPGA102、複数のDDRメモリ180を含む。GM_FPGA102は、複数のSRIO終端部110、要求多重スイッチ150、複数の要求PHY変換部160、複数のDDR
PHY170を含む。複数のSRIO終端部110をそれぞれ区別する場合には、SRIO終端部110−1、SRIO終端部110−2、SRIO終端部110−3、SRIO終端部110−4、SRIO終端部110−5、SRIO終端部110−6とする。制御カード200及びSRIO終端部110の数は、6個に限定されるものではない。各SRIO終端部110は、それぞれ、同様の構成を有する。メモリカード100は、要求PHY変換部160、DDR PHY170、DDRメモリ180をn個ずつ含む。nは整数である。各要求PHY変換部160、各DDR_PHY170、各DDRメモリ180をそれぞれ区別する場合は、要求PHY変換部160−i、DDR PHY170−i、DDRメモリ180−i(iは1以上n以下の整数)とする。ここでは、DDRメモリ180−1乃至DDRメモリ180−nが、合わせて96GBのメモリ領域を有しているとする。例えば、DDRメモリ180−iの容量が8GBであるとき、nは12となる。当該96GBのメモリ領域は、37ビットのアドレスによって、1バイト単位で特定される。また、当該96GBのメモリ領域は、37ビットのアドレスの上位31ビットによって、64バイト単位で特定される。
96GBのメモリが64バイト単位の領域で区切られるとき、各領域は31ビットのアドレスで特定され得る。64バイトの領域は、6ビットのアドレスにより、1バイト単位で指定される。
図3は、アドレスとデータの例を示す図である。図3の例では、上位31ビットが共通で下位6ビットが異なるアドレスの例を示す。下位6ビットでは、アドレス「000000」からアドレス「111111」までの64バイトのデータが指定される。図3のように、上位31ビットが共通で下位6ビットが異なるアドレスでは、64バイトのデータが特定される。即ち、メモリのアドレスの上位31ビットで、所定の大きさの領域(ここでは、64バイト)のデータが特定される。
ここでは、96GBのメモリ、64バイト単位での読み出し及び書き込みを例として挙げているが、メモリのサイズは96GBに限定されるものではなく、読み出し及び書き込みは64バイト単位に限定されるものではない。また、ここでは、37ビットのアドレスが上位31ビット及び下位6ビットに分けられる例が挙げられているが、アドレスのビット数、上位のビット数、下位のビット数は、メモリの大きさ、読み出し及び書き込みの単位に依存する。例えば、128バイト単位で読み出し及び書き込みがされる場合、下位のビット数は7ビットとなる。また、例えば、192GBのメモリが使用される場合、アドレスのビット数は、38ビットとなる。一般的に記載すると、2n−1バイトより大きく2バイト以下のメモリで、2バイト単位で読み出し及び書き込みがされる場合、nビットのアドレスが使用され、上位(n−m)ビット、下位mビットに分けられる。ここでは、237−1B<96GB<237Bであり、2(=64)バイト単位で読み出し等が行われるので、n=37、m=6としている。
メモリカード100は、各制御カード200から共通にアクセスするメモリを有するカードである。メモリカード100には、複数の制御カード200が接続される。
SRIO終端部110は、制御カード200に対する終端機能部である。SRIO終端部110は、制御カード200からのパケット(SRIOパケット)を終端する。SRIO終端部110については、後に詳述する。
要求多重スイッチ150は、複数の書込要求及び複数の読出要求をスイッチする機能部である。
要求PHY変換部160は、要求多重スイッチ150からの任意のDDR向けへの書込要求と読出要求をPHYアクセスに変換する。
DDR PHY170は、DDRメモリ180へのPHY機能部である。
DDRメモリ180は、メモリデバイスである。DDRメモリ180には、データが格納される。DDRメモリ180の1バイト単位の各領域は、37ビットのアドレスで特定される。DDRメモリ180では、37ビットのアドレスの上位31ビットで、64バイト単位の領域が一意に特定される。DDRメモリ180は、メモリ部の一例である。
図4は、SRIO終端部の構成例を示す図である。SRIO終端部110は、SRIO
PHY112、SRIOパケット判定部114、MSG受信部116、NWrite受信部118、NRead受信部120、変更書込制御部122、書込要求部124を含む。また、SRIO終端部110は、読出要求部126、バッファ128、アドレス多重部130、MSG応答部132、NRead応答部134、パケット多重部136を含む。
SRIO PHY112は、SRIOのインタフェース用のPHY機能部である。
SRIOパケット判定部114は、SRIOの受信パケットから、MSGパケット、NWriteパケット、NReadパケットを判定する。
MSG受信部116は、SRIO MSGパケットから、上位アドレスを抽出する。
NWrite受信部118は、SRIO NWrite受信パケットから、書込データ及び下位アドレスを抽出する。
NRead受信部120は、SRIO NRead受信パケットから、下位アドレスを抽出する。
変更書込制御部122は、予めDDRメモリ180から読み出されて格納されていたバ
ッファ128からのデータを読み出し、変更部分の書き換えを実施し、DDRメモリ180に書込要求を与える。
書込要求部124は、上位アドレス(37ビットのアドレスの上位31ビット)と変更書込制御部122からの書込データとを多重してDDRメモリ180用の64バイト書込要求を生成する。
読出要求部126は、上位アドレスから、DDRメモリ180に対する64バイト読出要求を生成する。
バッファ128は、上位アドレスに基づいてDDRメモリ180から読み出された64バイトのデータを格納する。
アドレス多重部130は、バッファ128に対し、バッファ128に格納されているデータのうちバッファ128から読み出すデータを指定する。
MSG応答部132は、SRIO MSGパケットの応答パケットを生成する。
NRead応答部134は、SRIO NReadに対する応答パケットを生成する。応答パケットには、読み出されたデータが含まれる。
GM(Global Memory)_FPGA102は、FPGA(Field Programmable Gate Array)によって実現され得る。GM_FPGA102は、メモリアクセス部の一例である。
図5は、制御カードの構成例を示す図である。制御カード200は、MPU210、MPU_FPGA220を含む。MPU_FPGA220は、PCIe PHY222、PCIe受信部224、アドレス抜出部226、PCIeパケット判定部228、SRIO
MSG230、SRIO NWrite232、SRIO NRead234を含む。また、MPU_FPGA220は、多重部236、SRIO PHY238、SRIO Resp240、PCIe送信部242を含む。
制御カード200は、メモリカード100にアクセスする側のカードである。制御カード200は、メモリカード100に対して、データの書き込みや、データの読み出しを指示する。制御カード200−1は、メモリカード100のSRIO終端部110−1に接続される。他の制御カード200についても同様である。即ち、各制御カード200は、それぞれ、対応するSRIO終端部110に接続される。
MPU210は、制御カード200を制御する。MPU210は、メモリカード100からのデータの読み出し、メモリカード100へのデータの書き込みを指示する。MPU210は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)で実現されてもよい。
MPU_FPGA220は、MPU210からの指示に基づいて、メモリカード220との間でパケット(SRIOパケット)を交換する。MPU_FPGA220は、例えば、FPGA(Field Programmable Gate Array)によって実現される。MPU_FPGA
220は、変換部の一例である。
PCIe PHY222は、MPU210との間のPCI ExpressパケットのインタフェースPHY機能部である。PCIe PHY222は、MPU210との間で、PCI Expressパケットを送受信する。
PCIe受信部224は、PCI Expressパケットの受信制御を行う。
アドレス抜出部226は、受信したPCI Expressパケットから、アクセスするメモリ領域を指定するアドレスのうち上位アドレスを抜き出す。
PCIeパケット判定部228は、PCI Express受信パケットから、WriteアクセスまたはReadアクセスを判定する。PCIeパケット判定部228は、受信したPCI Expressパケットから、アクセスするメモリ領域を指定するアドレスのうち下位アドレスを抜き出す。
SRIO MSG230は、アドレス抜出部が抜き出した上位アドレスをSRIOのMSGパケットとして送信する。
SRIO NWrite232は、PCI ExpressのWriteメッセージに含まれる、送信データ及び下位アドレスを、SRIO NWriteパケットとして送信する。
SRIO NRead234は、PCI ExpressのReadメッセージに含まれる下位アドレスを、SRIO Readパケットとして送信する。
多重部236は、SRIOメッセージ(SRIOパケット)を多重する。
SRIO PHY238は、SRIOのインタフェース用のPHY機能部である。
SRIO Resp240は、メモリカード100からのSRIO ResponseパケットをPCI ExpressのCompletionに変換する。
PCIe送信部242は、PCI Expressパケットの送信制御を行う。
共有メモリ装置10の各ユニットは、ハードウェアの構成要素、ソフトウェアの構成要素、又は、これらの組み合わせとして、それぞれ実現され得る。
ハードウェアの構成要素は、ハードウェア回路であり、例えば、FPGA(Field Programmable Gate Array)、特定用途向け集積回路(ASIC)、ゲートアレイ、論理ゲー
トの組み合わせ、アナログ回路等がある。
ソフトウェアの構成要素は、ソフトウェアとして所定の処理を実現する部品である。ソフトウェアの構成要素は、ソフトウェアを実現する言語、開発環境等を限定する概念ではない。
(動作例)
〈書き込み〉
ここでは、MPU210からDDRメモリ180の所望の位置に所望のデータを書き込む動作について説明する。
制御カード200のMPU210は、MPU_FPGA220に、PCI Express Writeパケット(PCIeWriteパケット)を送信する。PCIeWriteパケットは、DDRメモリ180に、所定のデータを書き込むことを指示するパケットである。PCIeWriteパケットは、書き込み対象のデータが格納される位置を示すアドレス、書き込み対象のデータ、書き込みを指示するパケットであることを示す情報を含む。ここでは、当該アドレスは、書き込み対象のデータのDDRメモリ180における先頭位置を示すとする。ここでは、当該アドレスは、37ビットで表現される。37ビットのアドレスは、96GBの空間を1バイト単位で特定できる。
MPU_FPGA220のPCIePHY222は、MPU210からPCIeWriteパケットを受信すると、PCIe受信部224に送信する。PCIe受信部224は、PCIePHY222からPCIeWriteパケットを受信する。PCIe受信部224は、受信したPCIeWriteパケットを、アドレス抜出部226及びPCIeパケット判定部228に送信する。PCIeWriteパケットは、書き込み信号の一例である。
アドレス抜出部226は、受信したPCIeWriteパケットから、書き込み対象のデータのアドレスを抜き出す。アドレス抜出部226は、抜き出した37ビットのアドレスから、上位31ビットを抽出する。アドレス抜出部226は、抽出したアドレスの上位31ビットを、SRIO MSG230に送信する。SRIO MSG230は、アドレスの上位31ビットを受信する。SRIO MSG230は、USERDATAにアドレスの上位31ビットを含むSRIO MSGパケットを生成する。SRIO MSG230は、生成したSRIO MSGパケットを多重部236に送信する。SRIO MSGパケットは、第4信号の一例である。
PCIeパケット判定部228は、PCIe受信部224からPCIeWriteパケットを受信する。PCIeパケット判定部228は、PCIeWriteパケットのパケットの種類を判定する。PCIeパケット判定部228は、PCIeWriteパケットに書き込みを指示するパケットであることを示す情報が含まれていることを確認することで、PCIeWriteパケットが書き込みを指示するパケットであることを認識する。PCIeパケット判定部228は、PCIeWriteパケットから、書き込み対象のデータのアドレス(書き込み先のアドレス)を抜き出す。PCIeパケット判定部228は、抜き出した37ビットのアドレスから、下位6ビットを抽出する。PCIeパケット判定部228は、PCIeWriteパケットから、書き込み対象のデータを抽出する。PCIeパケット判定部228は、抽出したアドレスの下位6ビット、抽出した書き込み対象のデータを、SRIO NWrite232に送信する。SRIO NWrite232は、アドレスの下位6ビット及び書き込み対象のデータを含むSRIO NWriteパケットを生成する。SRIO NWriteパケットのアドレスに、アドレスの下位6ビットが含まれ、SRIO NWriteパケットのUSERDATAに書き込み対象のデータが含まれる。SRIO NWrite232は、生成したSRIO NWriteパケットを多重部236に送信する。SRIO NWriteパケットは、第5信号の一例である。
多重部236は、SRIO MSG230が生成したSRIO MSGパケットをSRIO PHY238に送信する。また、多重部236は、SRIO NWrite232が生成したSRIO NWriteパケットをSRIO PHY238に送信する。SRIO PHY238は、多重部236から送信されたパケットをメモリカード100に送信する。SRIO MSGパケットが、SRIO NWriteパケットよりも先に送信される。
メモリカード100のSRIO終端部110のSRIO PHY112は、制御カード200のMPU_FPGA220のSRIO PHY238から送信されたパケットを受信する。SRIO PHY112は、受信したパケットをSRIOパケット判定部114に送信する。
SRIOパケット判定部114は、SRIO PHY112からのパケットを、SRIO MSGパケットであるか、SRIO NWriteパケットであるかを判定する。SRIOパケット判定部114は、SRIO MSGパケットを、MSG受信部116に送
信する。SRIOパケット判定部114は、SRIO NWriteパケットを、NWrite受信部118に送信する。
MSG受信部116は、SRIO MSGパケットを受信する。MSG受信部116は、SRIO MSGパケットのUSERDATAからアドレスの上位31ビットを抽出する。MSG受信部116は、抽出した上位31ビットを、書込要求部124及び読出要求部126に送信する。
NWrite受信部118は、SRIO NWriteパケットを受信する。NWrite受信部118は、SRIO NWriteパケットから、アドレスの下位6ビットと、書き込み対象のデータとを抽出する。NWrite受信部118は、抽出した下位6ビットと、データとを変更書込制御部122に送信する。
読出要求部126は、MSG受信部116から書き込み対象のデータのアドレスの上位31ビットを受信する。読出要求部126は、要求多重スイッチ150に、読み出し要求として、アドレスの上位31ビットを送信する。
要求多重スイッチ150は、読出要求部126からアドレスの上位31ビットを受信する。アドレスの上位31ビットは、DDRメモリ180の特定の64バイトの領域を示す。要求多重スイッチ150は、アドレスで指定される領域がどのDDRメモリ180に存在するかを判断する。ここでは、受信した上位31ビットで示される領域が、DDRメモリ180−iに存在するとする。要求多重スイッチ150は、要求PHY変換部160−iに、当該領域(上位31ビットで示される領域)のデータを読み出すことを要求する。
要求PHY変換部160−iは、要求多重スイッチ150からの要求を、PHYアクセスに変換する。DDR PHY170−iは、要求に含まれる上位31ビットで示される領域(64バイト)のデータをDDRメモリ180−iから読み出す。DDR PHY170−iは、読み出したデータを要求PHY変換部160−iに送信する。要求PHY変換部160−iは、DDRメモリ180−iから読み出されたデータ(64バイトのデータ)を要求多重スイッチ150に送信する。
要求多重スイッチ150は、DDRメモリ180−iから読み出されたデータを、読み出し要求を行ったSRIO終端部110の読出要求部126に送信する。
読み出し要求を行ったSRIO終端部110の読出要求部126は、DDRメモリ180−iから読み出された64バイトのデータを受信する。読出要求部126は、受信した64バイトのデータをバッファ128に格納する。64バイトのデータは、6ビットのアドレスによって、1ビット単位で特定される。
変更書込制御部122は、NWrite受信部118から、抽出した下位6ビット及び書き込み対象のデータを受信する。変更書込制御部122は、アドレス多重部130に対し、バッファ128から、バッファに格納される64バイトのデータを抽出することを指示する。
アドレス多重部130は、変更書込制御部122の指示に従って、バッファ128に格納される64バイトのデータを取り出す。取り出されたデータは、バッファ128から変更書込制御部122に、送信される。
変更書込制御部122は、バッファ128から送信されたデータ内で、下位6ビットで示されるアドレスを先頭として、書き込み対象のデータを書き込む。即ち、バッファ12
8から送信された64ビットのデータ内で、下位6ビットで示されるアドレスを先頭に、書き込み対象のデータのサイズのデータが、書き込み対象のデータによって、書き換えられる。変更書込制御部122は、書き込み対象のデータによって書き換えられた64バイトのデータ(書き込みデータ)を、書込要求部124に送信する。
書込要求部124は、MSG受信部116から書き込み対象のデータのアドレスの上位31ビットを受信する。書込要求部124は、変更書込制御部122から書き込みデータを受信する。書込要求部124は、要求多重スイッチ150に、書き込み要求として、アドレスの上位31ビット及び書き込みデータを送信する。
要求多重スイッチ150は、書込要求部124からアドレスの上位31ビット及び書き込みデータを受信する。アドレスの上位31ビットは、DDRメモリ180の特定の64バイトの領域を示す。要求多重スイッチ150は、アドレスで指定される領域がどのDDRメモリ180に存在するかを判断する。ここでは、受信した上位31ビットで示される領域が、DDRメモリ180−iに存在するとする。要求多重スイッチ150は、要求PHY変換部160−iに、当該領域(上位31ビットで示される領域)に書き込みデータを書き込むことを要求する。
要求PHY変換部160−iは、要求多重スイッチ150からの要求を、PHYアクセスに変換する。DDR PHY170−iは、要求に含まれる上位31ビットで示される領域(64バイト)に、書き込みデータをDDRメモリ180−iに書き込む。
このようにして、MPU210から、DDRメモリ180の所望の位置に、所望のデータが書き込まれる。
図6は、書き込みにおける情報の流れを示すシーケンスの例を示す図である。図6の例では、MPU210、MPU_FPGA220、GM_FPGA102、DDRメモリ180における情報の流れが示される。
MPU210は、DDRメモリ180に書き込むデータと、DDRメモリ180における書き込み先のアドレス(書き込み先の先頭アドレス(37ビット))を含むPCIeWriteパケットを生成し、MPU_FPGA220に送信する(SQ1001)。
MPU_FPGA220は、PCIeWriteパケットから、書き込み用データと、書き込み先のアドレスを抽出する。MPU_FPGA220は、書き込み先アドレスの上位31ビットを含むSRIO MSGパケットを生成し、GM_FPGA102に送信する(SQ1002)。
GM_FPGA102は、SRIO MSGパケットから、書き込み先アドレスの上位31ビットを抽出する。GM_FPGA102は、抽出した上位31ビットのアドレスで示されるDDRメモリ180の領域(64バイト)のデータを読み出すことをDDRメモリ180に要求する(SQ1003)。
DDRメモリ180は、GM_FPGA102に要求された上位31ビットのアドレスで示される64バイトのデータを、GM_FPGA102に送信する(SQ1004)。
MPU_FPGA220は、書き込み先アドレスの下位6ビット及び書き込み用データを含むSRIO NWriteパケットを生成し、GM_FPGA102に送信する(SQ1005)。
GM_FPGA102は、SRIO NWriteパケットから、書き込み先アドレスの下位6ビット及び書き込み用データを抽出する。GM_FPGA102は、DDRメモリ180から読み出されたデータのうち、書き込み先アドレスの下位6ビットを先頭に、書き込み用データのサイズのデータを、書き込み用データで書き換える(SQ1006)。読み出された64ビットのデータの一部が書き換えられた64ビットのデータが生成される。
GM_FPGA102は、書き換えられた64ビットのデータを、DDRメモリ180の読み出した領域に書き込みことを、DDRメモリ180に要求する。DDRメモリは、要求に従って、データを書き換える。
シーケンスSQ1003及びシーケンスSQ1004と、シーケンスSQ1005とは、時間的に重複してもよい。
このようにして、MPU210が指示した書き込み用データが、DDRメモリ180の所定の位置に書き込まれる。
〈読み出し〉
ここでは、MPU210からDDRメモリ180の所望のデータを読み出す動作について説明する。
制御カード200のMPU210は、MPU_FPGA220に、PCI Express Readパケット(PCIeReadパケット)を送信する。PCIeReadパケットは、DDRメモリ180から、所定のデータを読み出すことを指示するパケットである。PCIeReadパケットは、読み出し対象のデータが格納される位置を示すアドレス、読み出し対象のデータのサイズ、読み出しを指示するパケットであることを示す情報を含む。ここでは、当該アドレスは、読み出し対象のデータのDDRメモリ180における先頭位置を示すとする。ここでは、当該アドレスは、37ビットで表現される。37ビットのアドレスは、96GBの空間を1バイト単位で特定できる。
MPU_FPGA220のPCIePHY222は、MPU210からPCIeReadパケットを受信すると、PCIe受信部224に送信する。PCIe受信部224は、PCIePHY222からPCIeReadパケットを受信する。PCIe受信部224は、受信したPCIeReadパケットを、アドレス抜出部226及びPCIeパケット判定部228に送信する。PCIeReadパケットは、読み出し信号の一例である。
アドレス抜出部226は、受信したPCIeReadパケットから、読み出し対象のデータのアドレスを抜き出す。アドレス抜出部226は、抜き出した37ビットのアドレスから、上位31ビットを抽出する。アドレス抜出部226は、抽出したアドレスの上位31ビットを、SRIO MSG230に送信する。SRIO MSG230は、アドレスの上位31ビットを受信する。SRIO MSG230は、USERDATAにアドレスの上位31ビットを含むSRIO MSGパケットを生成する。SRIO MSG230は、生成したSRIO MSGパケットを多重部236に送信する。SRIO MSGパケットは、第1信号の一例である。
PCIeパケット判定部228は、PCIe受信部224からPCIeReadパケットを受信する。PCIeパケット判定部228は、PCIeReadパケットのパケットの種類を判定する。PCIeパケット判定部228は、PCIeReadパケットに読み出しを指示するパケットであることを示す情報が含まれていることを確認することで、PCIeReadパケットが読み出しを指示するパケットであることを認識する。PCIe
パケット判定部228は、PCIeReadパケットから、読み出し対象のデータのアドレス(読み出し先のアドレス)を抜き出す。PCIeパケット判定部228は、抜き出した37ビットのアドレスから、下位6ビットを抽出する。PCIeパケット判定部228は、PCIeReadパケットから、読み出し対象のデータのサイズを抽出する。PCIeパケット判定部228は、抽出したアドレスの下位6ビット、抽出した読み出し対象のデータのサイズを、SRIO NRead234に送信する。SRIO NRead234は、アドレスの下位6ビット及びデータのサイズを含むSRIO NReadパケットを生成する。SRIO NReadパケットのアドレスにアドレスの下位6ビットが含まれ、SRIO NReadパケットのヘッダにデータのサイズが含まれる。SRIO NRead234は、生成したSRIO NReadパケットを多重部236に送信する。
多重部236は、SRIO MSG230が生成したSRIO MSGパケットを、SRIO PHY238に送信する。多重部236は、SRIO NRead234が生成したSRIO NReadパケットを、SRIO PHY238に送信する。SRIO PHY238は、多重部236から送信されたパケットをメモリカード100に送信する。SRIO MSGパケットが、SRIO NReadパケットよりも先に送信される。SRIO NReadパケットは、第2信号の一例である。
メモリカード100のSRIO終端部110のSRIO PHY112は、制御カード200のMPU_FPGA220のSRIO PHY238から送信されたパケットを受信する。SRIO PHY112は、受信したパケットをSRIOパケット判定部114に送信する。
SRIOパケット判定部114は、SRIO PHY112から送信されたパケットが、SRIO MSGパケットであるか、SRIO NReadパケットであるかを判定する。SRIOパケット判定部114は、SRIO MSGパケットを、MSG受信部116に送信する。SRIOパケット判定部114は、SRIO NReadパケット、NRead受信部120に送信する。
MSG受信部116は、SRIO MSGパケットを受信する。MSG受信部116は、SRIO MSGパケットのUSERDATAからアドレスの上位31ビットを抽出する。MSG受信部116は、抽出した上位31ビットを、書込要求部124及び読出要求部126に送信する。
NRead受信部120は、SRIO NReadパケットを受信する。NRead受信部120は、SRIO NReadパケットから、アドレスの下位6ビットと、読み出し対象のデータのサイズとを抽出する。NRead受信部120は、抽出した下位6ビットと、データのサイズとをNRead応答部134に送信する。
読出要求部126は、MSG受信部116から読み出し対象のデータのアドレスの上位31ビットを受信する。読出要求部126は、要求多重スイッチ150に、読み出し要求として、アドレスの上位31ビットを送信する。
要求多重スイッチ150は、読出要求部126からアドレスの上位31ビットを受信する。アドレスの上位31ビットは、DDRメモリ180の特定の64バイトの領域を示す。要求多重スイッチ150は、アドレスで指定される領域がどのDDRメモリ180に存在するかを判断する。ここでは、受信した上位31ビットで示される領域が、DDRメモリ180−iに存在するとする。要求多重スイッチ150は、要求PHY変換部160−iに、当該領域(上位31ビットで示される領域)のデータを読み出すことを要求する。
要求PHY変換部160−iは、要求多重スイッチ150からの要求を、PHYアクセスに変換する。DDR PHY170−iは、要求に含まれる上位31ビットで示される領域(64バイト)のデータをDDRメモリ180−iから読み出す。DDR PHY170−iは、読み出したデータを要求PHY変換部160−iに送信する。要求PHY変換部160−iは、DDRメモリ180−iから読み出されたデータを要求多重スイッチ150に送信する。
要求多重スイッチ150は、DDRメモリ180−iから読み出されたデータを、読み出し要求を行ったSRIO終端部110の読出要求部126に送信する。
読み出し要求を行ったSRIO終端部110の読出要求部126は、DDRメモリ180−iから読み出された64バイトのデータを受信する。読出要求部126は、受信した64バイトのデータをバッファ128に格納する。
NRead応答部134は、NRead受信部120から、抽出した下位6ビット及びデータのサイズを受信する。NRead応答部134は、アドレス多重部130に対し、バッファ128から、受信した下位6ビットで示されるアドレスから、受信したデータのサイズのデータを抽出することを指示する。
アドレス多重部130は、NRead応答部134の指示に従って、バッファ128に格納される(64バイトの)データから、指示された下位6ビットで示されるアドレスから、指示されたデータのサイズのデータを取り出す。取り出されたデータは、バッファ128からNRead応答部134に、送信される。
NRead応答部134は、バッファ128から送信されたデータをUSERDATAに含むSRIO Responseパケットを生成する。SRIO Responseパケットは、SRIO NReadパケットに対する応答パケットである。NRead応答部134は、生成したSRIO Responseパケットをパケット多重部136に送信する。SRIO Responseパケットは、第3信号の一例である。
パケット多重部136は、NRead応答部134からSRIO Responseパケットを受信する。パケット多重部136は、SRIO ResponseパケットをSRIO PHY112に送信する。
SRIO PHY112は、パケット多重部136から、SRIO Responseパケットを受信する。SRIO PHY112は、制御カード200にSRIO Responseパケットを送信する。
制御カード200のMPU_FPGA220のSRIO PHY238は、メモリカード100からSRIO Responseパケットを受信する。SRIO PHY238は、SRIO ResponseパケットをSRIO Resp240に送信する。
SRIO Resp240は、SRIO PHY238からSRIO Responseパケットを受信する。SRIO Resp240は、SRIO Responseパケットから、USERDATA内のデータを抽出する。SRIO Resp240は、当該データをUSERDATAに含むPCI Express Completionパケット(PCIe Completionパケット)を生成する。SRIO Resp240は、生成したPCIe CompletionパケットをPCIe送信部242に送信する。
PCIe送信部242は、SRIO Resp240から、PCIe Completionパケットを受信する。PCIe送信部242は、受信したPCIe CompletionパケットをPCIe PHY222に送信する。
PCIe PHY222は、PCIe送信部242からPCIe Completionパケットを受信する。PCIe PHY222は、PCIe CompletionパケットをMPU210に送信する。
MPU210は、PCIe CompletionパケットのUSERDATAを抽出する。PCIe CompletionパケットのUSERDATAに含まれるデータは、MPU210がPCIeReadパケットで、DDRメモリ180から読み出すことを要求したデータである。
このようにして、MPU210からDDRメモリ180の所望のデータが読み出される。
図7は、読み出しにおける情報の流れを示すシーケンスの例を示す図である。図7の例では、MPU210、MPU_FPGA220、GM_FPGA102、DDRメモリ180における情報の流れが示される。
MPU210は、DDRメモリ180における読み出し先のアドレス(読み出し先の先頭アドレス(37ビット))及び読み出すデータの大きさを含むPCIeReadパケットを生成し、MPU_FPGA220に送信する(SQ2001)。
MPU_FPGA220は、PCIeReadパケットから、読み出し先のアドレス及び読み出すデータの大きさを抽出する。MPU_FPGA220は、読み出し先アドレスの上位31ビットを含むSRIO MSGパケットを生成し、GM_FPGA102に送信する(SQ2002)。
GM_FPGA102は、SRIO MSGパケットから、読み出し先アドレスの上位31ビットを抽出する。GM_FPGA102は、抽出した上位31ビットのアドレスで示されるDDRメモリ180の領域(64バイト)のデータを読み出すことをDDRメモリ180に要求する(SQ2003)。
DDRメモリ180は、GM_FPGA102に要求された上位31ビットのアドレスで示される64バイトのデータを、GM_FPGA102に送信する(SQ2004)。
MPU_FPGA220は、読み出し先アドレスの下位6ビット及び読み出し用データの大きさを含むSRIO NReadパケットを生成し、GM_FPGA102に送信する(SQ2005)。
GM_FPGA102は、SRIO NReadパケットから、書き込み先アドレスの下位6ビット及び書き込み用データを抽出する。GM_FPGA102は、DDRメモリ180から読み出されたデータのから、読み出し先アドレスの下位6ビットを先頭に、読み出し用データの大きさ(サイズ)のデータを、抽出する(SQ2006)。
GM_FPGA102は、抽出されたデータをUSERDATAに含むSRIO Responseパケットを生成し、MPU_FPGA220に送信する(SQ2007)。
MPU_FPGA220は、SRIO Responseパケットから、USERDA
TAに含まれるデータを抽出する。MPU_FPGA220は、抽出データをUSERDATAに含むPCIeCompパケットを生成し、MPU210に送信する。
シーケンスSQ2003及びシーケンスSQ2004と、シーケンスSQ2005とは、時間的に重複してもよい。
このようにして、MPU210からDDRメモリ180の所望のデータが読み出される。
(パケットの構成例)
図8は、書き込みのパケットの構成例を示す図である。図8では、PCIe Writeパケットと、SRIO NWriteパケットの例を示す。PCIe Writeパケットは、Headerで88ビット、Addressで64ビット、Footerで40ビットを使用する。PCIe Writeパケットには、USERDATAが含まれる。USERDATAの大きさは、パケットによって異なる。SRIO NWriteパケットは、Headerで48ビット、Addressで32ビット、Footerで16ビットを使用する。SRIO NWriteパケットには、USERDATAが含まれる。USERDATAの大きさは、パケットによって異なる。USERDATAのサイズが同じである場合、SRIO NWriteパケットは、PCIe Writeパケットより小さい。SRIO NWriteパケットのUSERDATAに書き込み対象のデータが含まれる。SRIO NWriteパケットのAddressに書き込み対象のデータのアドレスの上位31ビットが含まれる。
図9は、読み出しのパケットの構成例を示す図である。図9では、PCIe Readパケットと、SRIO NReadパケットの例を示す。PCIe Readパケットは、Headerで88ビット、Addressで64ビット、Footerで40ビットを使用する。SRIO NReadパケットは、Headerで48ビット、Addressで32ビット、Footerで16ビットを使用する。SRIO NReadパケットは、PCIe Readパケットより小さい。SRIO NReadパケットのHeaderに読み出し対象のデータの大きさが含まれる。SRIO NReadパケットのAddressに読み出し対象のデータのアドレスの下位6ビットが含まれる。
図10は、応答のパケットの構成例を示す図である。図10では、PCIe Completionパケットと、SRIO Responseパケットの例を示す。PCIe Completionパケットは、Headerで88ビット、Footerで40ビットを使用する。PCIeCompletionパケットには、USERDATAが含まれる。USERDATAの大きさは、パケットによって異なる。SRIO Responseパケットは、Headerで48ビット、Footerで16ビットを使用する。SRIO Responseパケットには、USERDATAが含まれる。USERDATAの大きさは、パケットによって異なる。USERDATAのサイズが同じである場合、SRIO NResponseパケットは、PCIe Completionパケットより小さい。
図11は、SRIO MSGパケットの構成例を示す図である。SRIO MSGパケットは、Headerで48ビット、Footerで16ビットを使用する。SRIO MSGパケットには、USERDATAが含まれる。USERDATAの大きさは、パケットによって異なる。本実施形態では、USERDATAにメモリのアドレスの上位31ビットが含まれる。
(実施形態の作用、効果)
共有メモリ装置10の制御カードは、37ビットで示される96GBのメモリのアドレスを、上位31ビットと下位6ビットとに分離する。共有メモリ装置10は、上位31ビットで指定される領域のデータ(64バイトのデータ)をDDRメモリ180から読み出す。共有メモリ装置10は、読み出された64バイトのデータから、下位6ビットのアドレスで示される位置のデータを読み出す。また、共有メモリ装置10は、読み出された64バイトのデータの下位6ビットのアドレスで示される位置にデータを書き込む。共有メモリ装置10は、書き込んだデータで、DDRメモリ180の上位31ビットで指定される領域のデータを書き換える。
共有メモリ装置10は、SRIOを使用して、37ビットで示される96GBのメモリに対し、書き込み、読み出しを行うことができる。通常のDDRメモリの読み出し、書き込みの単位は、64バイトである。DDRメモリにおける64バイトの領域は、37ビットのアドレスのうち上位31ビットで表される。よって、共有メモリ装置10は、37ビットのアドレスのうち上位31ビットがあれば、64バイト単位の読み出しを行うことができる。共有メモリ装置10は、上位31ビットのアドレスを先にメモリカードに送信することで、下位6ビットのアドレスの情報を得ることなく、37ビットのアドレスで示されるデータを含む領域のデータを読み出せる。共有メモリ装置10は、37ビットのアドレスを、上位31ビットのアドレスと下位6ビットのアドレスに分離することで、SRIOのパケットを使用してDDRメモリのデータを読み書きできる。
図12は、4バイトのデータの書き込みの際に、PCIeパケットでDDRメモリに直接アクセスした場合と、本実施形態の構成でDDRメモリにアクセスした場合の比較例を示す図である。ここでは、666MHzで、DDRメモリにアクセスする。
PCIeパケットでは、PCIeWriteパケットの送信で56nsかかる。また、メモリアクセスに読み出しで36ns、書き込みで36nsかかる。従って、PCIeパ
ケットでDDRメモリに直接アクセスした場合、書き込みに128nsかかる。
一方、本実施形態の方法では、アドレスの上位31ビットを含むSRIO MSGパケットの送信で24nsかかる。また、メモリアクセスに読み出しで36ns、書き込みで36nsかかる。本実施形態では、SRIO MSGパケットに含まれるアドレスの上位31ビットの情報で、DDRメモリから64バイトのデータが取り出される。したがって、アドレスの下位6ビットの受信を待つことなく、DDRメモリからデータを取り出すことができる。DDRメモリから取り出されたデータは、バッファに格納される。本実施形態の方法では、共有メモリ装置10は、DDRメモリからデータを読み出している間に、アドレスの下位6ビット及び書き込み対象のデータを含むSRIO NWriteパケットを処理できる。共有メモリ装置10は、アドレスの下位6ビットと書き込み対象のデータとに基づいて、バッファに格納されるDDRメモリから読み出したデータを書き換える。さらに、共有メモリ装置10は、書き換えたデータをDDRメモリに書き込む。本実施形態では、書き込みに96nsかかる。これは、PCIeパケットでDDRメモリに直接
アクセスした場合と比較して、短い。本実施形態では、PCIeパケットでDDRメモリ
に直接アクセスした場合に対して、75%の時間で書き込みができる。
図13は、4バイトのデータの読み出しの際に、PCIeパケットでDDRメモリに直接アクセスした場合と、本実施形態の構成でメモリにアクセスした場合の比較例を示す図である。ここでは、666MHzで、メモリにアクセスする。
PCIeパケットでは、PCIeReadパケットの送信で48nsかかる。また、メモリアクセスに読み出しで36ns、読み出したデータを含むPCIeCompletionパケットの送信で40nsかかる。従って、PCIeパケットでDDRメモリに直接
アクセスした場合、書き込みに124nsかかる。
一方、本実施形態の方法では、アドレスの上位31ビットを含むSRIO MSGパケットの送信で24nsかかる。また、メモリアクセスに読み出しで36ns、読み出したデータを含むSRIO Responseパケットの送信で36nsかかる。本実施形態では、SRIO MSGパケットに含まれるアドレスの上位31ビットの情報で、DDRメモリから64バイトのデータが取り出される。したがって、アドレスの下位6ビットの受信を待つことなく、DDRメモリからデータを取り出すことができる。DDRメモリから取り出されたデータは、バッファに格納される。本実施形態の方法では、共有メモリ装置10は、DDRメモリからデータを読み出している間に、アドレスの下位6ビット及び読み出し対象のデータのサイズを含むSRIO NReadパケットを処理できる。アドレスの下位6ビットとデータのサイズとに基づいて、バッファに格納されるDDRメモリから読みだしたデータ(64バイトのデータ)から所望のデータが得られる。本実施形態では、読み出しに84nsかかる。これは、PCIeパケットでDDRメモリに直接アク
セスした場合と比較して、短い。本実施形態では、PCIeパケットでDDRメモリに直
接アクセスした場合に対して、68%の時間で読み出しができる。
本実施形態で、メモリに対して書き込むデータの大きさ、メモリから読み出すデータの大きさは、4バイトに限定されるものではない。メモリに対して書き込むデータの大きさ、メモリから読み出すデータの大きさは、任意に選択することができる。
SRIOパケットのヘッダ部分はPCIeパケットのヘッダ部分に比べて小さいので、SRIOパケットが使用されることで、より高速に、メモリからのデータの読み出し、書き込みができる。
10 共有メモリ装置
100 メモリカード
102 GM_FPGA
110 SRIO終端部
112 SRIO PHY
114 SRIOパケット判定部
116 MSG受信部
118 NWrite受信部
120 NRead受信部
122 変更書込制御部
124 書込要求部
126 読出要求部
128 バッファ
130 アドレス多重部
132 MSG応答部
134 NRead応答部
136 パケット多重部
150 要求多重スイッチ
160 要求PHY変換部
170 DDR PHY
180 DDRメモリ
200 制御カード
210 MPU
220 MPU_FPGA
222 PCIe PHY
224 PCIe受信部
226 アドレス抜出部
228 PCIeパケット判定部
230 SRIO MSG
232 SRIO NWrite
234 SRIO NRead
236 多重部
238 SRIO PHY
240 SRIO Resp
242 PCIe送信部

Claims (4)

  1. データが格納されるメモリ部と、変換部と、メモリアクセス部とを備え、
    前記変換部は、読み出し対象データの前記メモリ部におけるアドレス及び前記読み出し対象データの大きさを含む読み出し信号を受信し、前記メモリ部における前記アドレスを所定の第1ビット数の上位ビットのアドレスと所定の第2ビット数の下位ビットのアドレスとに分離し、前記上位ビットのアドレスを含む第1信号と、前記下位ビットのアドレス及び前記読み出し対象データの大きさを含む第2信号とを生成し、前記第1信号及び前記第2信号をメモリアクセス部に送信し、
    前記メモリアクセス部は、前記第1信号を前記変換部から受信し、前記第1信号から前記上位ビットのアドレスを抽出し、前記上位ビットのアドレスで示される領域のデータを前記メモリ部から読み出し、前記第2信号を前記変換部から受信し、前記第2信号から前記下位ビットのアドレス及び前記読み出し対象データの大きさを抽出し、前記メモリ部から読み出された前記上位ビットのアドレスで示される領域のデータから前記下位ビットのアドレス及び前記読み出し対象データの大きさで特定されるデータを抽出し、抽出されたデータを含む第3信号を生成し、前記第3信号を前記変換部に送信する、
    共有メモリ装置。
  2. 前記変換部は、書き込み対象データの前記メモリ部におけるアドレス及び前記書き込み対象データを含む書き込み信号を受信し、前記メモリ部における前記アドレスを前記第1ビット数の前記上位ビットのアドレスと前記第2ビット数の前記下位ビットのアドレスとに分離し、前記上位ビットのアドレスを含む第4信号と、前記下位ビットのアドレス及び前記書き込み対象データを含む第5信号とを生成し、前記第4信号及び前記第5信号をメモリアクセス部に送信し、
    前記メモリアクセス部は、前記第4信号を前記変換部から受信し、前記第4信号から前記上位ビットのアドレスを抽出し、前記上位ビットのアドレスで示される領域のデータを前記メモリ部から読み出し、前記第5信号を前記変換部から受信し、前記第5信号から前記下位ビットのアドレス及び前記書き込み対象データを抽出し、前記メモリ部から読み出された前記上位ビットのアドレスで示される領域のデータのうち前記下位ビットのアドレスで特定される位置を前記書き込み対象データで書き換えた書換データを生成し、生成された書換データを前記メモリ部の前記上位ビットのアドレスで示される領域に書き込む、請求項1に記載の共有メモリ装置。
  3. データが格納されるメモリ部と、変換部と、メモリアクセス部とを備える共有メモリ装置において、
    前記変換部が、読み出し対象データの前記メモリ部におけるアドレス及び前記読み出し対象データの大きさを含む読み出し信号を受信し、前記メモリ部における前記アドレスを所定の第1ビット数の上位ビットのアドレスと所定の第2ビット数の下位ビットのアドレスとに分離し、前記上位ビットのアドレスを含む第1信号と、前記下位ビットのアドレス及び前記読み出し対象データの大きさを含む第2信号とを生成し、前記第1信号及び前記第2信号をメモリアクセス部に送信し、
    前記メモリアクセス部が、前記第1信号を前記変換部から受信し、前記第1信号から前記上位ビットのアドレスを抽出し、前記上位ビットのアドレスで示される領域のデータを前記メモリ部から読み出し、前記第2信号を前記変換部から受信し、前記第2信号から前記下位ビットのアドレス及び前記読み出し対象データの大きさを抽出し、前記メモリ部から読み出された前記上位ビットのアドレスで示される領域のデータから前記下位ビットのアドレス及び前記読み出し対象データの大きさで特定されるデータを抽出し、抽出されたデータを含む第3信号を生成し、前記第3信号を前記変換部に送信する、
    メモリアクセス方法。
  4. 前記変換部が、書き込み対象データの前記メモリ部におけるアドレス及び前記書き込み対象データを含む書き込み信号を受信し、前記メモリ部における前記アドレスを前記第1ビット数の前記上位ビットのアドレスと前記第2ビット数の前記下位ビットのアドレスとに分離し、前記上位ビットのアドレスを含む第4信号と、前記下位ビットのアドレス及び前記書き込み対象データを含む第5信号とを生成し、前記第4信号及び前記第5信号をメモリアクセス部に送信し、
    前記メモリアクセス部が、前記第4信号を前記変換部から受信し、前記第4信号から前記上位ビットのアドレスを抽出し、前記上位ビットのアドレスで示される領域のデータを前記メモリ部から読み出し、前記第5信号を前記変換部から受信し、前記第5信号から前記下位ビットのアドレス及び前記書き込み対象データを抽出し、前記メモリ部から読み出された前記上位ビットのアドレスで示される領域のデータのうち前記下位ビットのアドレスで特定される位置を前記書き込み対象データで書き換えた書換データを生成し、生成された書換データを前記メモリ部の前記上位ビットのアドレスで示される領域に書き込む、請求項3に記載のメモリアクセス方法。
JP2013122094A 2013-06-10 2013-06-10 共有メモリ装置、メモリアクセス方法 Active JP6079458B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013122094A JP6079458B2 (ja) 2013-06-10 2013-06-10 共有メモリ装置、メモリアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013122094A JP6079458B2 (ja) 2013-06-10 2013-06-10 共有メモリ装置、メモリアクセス方法

Publications (2)

Publication Number Publication Date
JP2014238778A JP2014238778A (ja) 2014-12-18
JP6079458B2 true JP6079458B2 (ja) 2017-02-15

Family

ID=52135871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013122094A Active JP6079458B2 (ja) 2013-06-10 2013-06-10 共有メモリ装置、メモリアクセス方法

Country Status (1)

Country Link
JP (1) JP6079458B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371867A (en) * 1992-11-10 1994-12-06 International Business Machines Corporation Method of using small addresses to access any guest zone in a large memory
JPH06332791A (ja) * 1993-05-20 1994-12-02 Toshiba Corp 画像メモリおよびその画像メモリを使用した表示制御システム
US7916750B2 (en) * 2005-12-28 2011-03-29 Intel Corporation Transaction layer packet compression

Also Published As

Publication number Publication date
JP2014238778A (ja) 2014-12-18

Similar Documents

Publication Publication Date Title
US9678918B2 (en) Data processing system and data processing method
EP1687997B1 (en) A method and apparatus to provide data streaming over a network connection in a wireless mac processor
CN111352889B (zh) 一种基于mctp协议的设备管理方法、设备、装置和介质
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
JP7074839B2 (ja) パケット処理
CN107783727B (zh) 一种内存设备的访问方法、装置和系统
US20220358075A1 (en) Pcie-based data transmission method and apparatus
WO2016202158A1 (zh) 一种报文传输方法、装置及计算机可读存储介质
WO2021147045A1 (zh) 一种基于PCIe的数据传输方法及装置
CN109857553B (zh) 内存管理方法及装置
WO2020001213A1 (zh) 一种报文传输方法、交换装置、无线通讯设备及存储介质
CN114356219A (zh) 数据处理方法、存储介质和处理器
US9594706B2 (en) Island-based network flow processor with efficient search key processing
KR20100072694A (ko) 프레임 축소 방법 및 장치
JP6079458B2 (ja) 共有メモリ装置、メモリアクセス方法
CN111147175B (zh) 时间触发以太网数据帧捕获、存储装置及方法
JP2002084311A (ja) パケット転送処理装置
US7313146B2 (en) Transparent data format within host device supporting differing transaction types
CN107547684A (zh) 一种IPv6地址分配方法和装置
CN113647058A (zh) 一种基于PCIe的通信方法及装置
JP5282124B2 (ja) パケット転送装置およびパケット転送方法
JP6298534B2 (ja) 経路制御装置及び経路制御方法並びにコンピュータシステム及びプログラム及びプログラムを格納した記憶媒体
US9424227B2 (en) Providing byte enables for peer-to-peer data transfer within a computing environment
TW200422840A (en) Method and related circuit for increasing network transmission efficiency by speeding data updating rate of memory
CN102223285B (zh) 处理数据报文的方法及网络节点

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150