JP6249117B1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6249117B1
JP6249117B1 JP2017034809A JP2017034809A JP6249117B1 JP 6249117 B1 JP6249117 B1 JP 6249117B1 JP 2017034809 A JP2017034809 A JP 2017034809A JP 2017034809 A JP2017034809 A JP 2017034809A JP 6249117 B1 JP6249117 B1 JP 6249117B1
Authority
JP
Japan
Prior art keywords
memory space
synchronization
writing
guaranteed
receiving unit
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
JP2017034809A
Other languages
English (en)
Other versions
JP2018142084A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2017034809A priority Critical patent/JP6249117B1/ja
Application granted granted Critical
Publication of JP6249117B1 publication Critical patent/JP6249117B1/ja
Priority to US15/868,018 priority patent/US10621082B2/en
Publication of JP2018142084A publication Critical patent/JP2018142084A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

【課題】複数のアクセス空間を効率よく保障する情報処理装置を提供する。【解決手段】外部からデータを受信する受信部110と、当該受信部からデータが書き込まれる第1メモリ空間130と、同期するためのフラグが書き込まれる第2メモリ空間140と、演算部120と、を備える。演算部は、受信部に対して第1メモリ空間と第2メモリ空間との同期化を指示する同期制御部121を備える。さらに、受信部は、第1メモリ空間と第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部111と、第1メモリ空間からデータの書き込みが保障されたことを表す応答と、第2メモリ空間からフラグの書き込みが保障されたことを表す応答と、を受信して、第1メモリ空間と第2メモリ空間とのそれぞれの書き込みが保障された場合に同期化完了を演算部に対して応答する同期化命令受信部112と、を備える。【選択図】図11

Description

本発明は、情報処理装置にかかり、特に、複数のアクセス空間のコンシステンシを保障する情報処理装置に関する。
メモリ空間とコミュニケーションレジスタ空間といった複数のアクセス空間を有する並列計算機システムやネットワーク機器において、複数のアクセス空間を保障する方法が検討されている。メモリ空間とコミュニケーションレジスタ空間を合わせてコンシステンシを保証する方法のひとつに、同期化時に先行ライトの完了を待ってから書き込む方法がある。
図1では、データ本体をメモリ領域に書き、フラグをコミュニケーションレジスタに書く例を示している。例えば、コミュニケーションレジスタにアクセスするアドレスの特定のビットを同期化用の識別フラグと定義しておき、そのフラグがアサートされたときには、先行のライト完了を待つこととする。この場合、時間0で発行した先行のメモリ領域へのライト完了(NonPostedWriteでリプライを待つ)を待ってから、コミュニケーションレジスタ向けのフラグのライトを時間3にて実施する。
上述した方法は、フラグが最後に書かれるため(フラグのグローバルビジビリティが必ず最後となる)、プロセッサコア側でフラグが見えた時には先行ライトの完了が保証されており、コンシステンシの保証方法としては容易である。なお、反対に、メモリがフラグの場合も特定のアドレスビットをアサートすることで同期化しても良いし、TLB(Translation Lookaside Buffer)のようなアドレス変換機構に、同期化用のフラグを持っても良い。
また、メモリ空間とコミュニケーションレジスタ空間を合わせてコンシステンシを保証する別の方法として、受信側から同期を採る方式がある。例えば、図2では、データ本体をメモリ領域に書き、フラグをコミュニケーションレジスタに書く例を示している。図2では、異なる空間のそれぞれに対して、同期化命令を発行している。すなわち、メモリ空間の同期化には、メモリ用のFENCE命令(MFEN)を発行し、コミュニケーションレジスタ空間の同期化には、コミュニケーションレジスタ用のFENCE命令(CFEN)を発行している。この場合、2つの同期化命令を発行する必要がある。
特開2010−44599号公報
しかしながら、上述した同期化時に先行ライトの完了を待ってから書き込む方法では、実装が簡単であるが、先行ライトの完了を待つため、内部バスに空きがでてしまい効率的ではない、という問題がある。
また、受信側から同期を採る方式では、それぞれの空間毎に同期とっているため、ユーザ見えが悪く、手間がかかる、という問題が生じる。
なお、関連する技術として、特許文献1には、メモリに格納されるデータのグローバルビジビリティを保障する技術が開示されている。しかしながら、上述した複数のアクセス空間を効率的に保障する方法とはなっていない。
このため、本発明の目的は、複数のアクセス空間を効率よく保障することができない、という問題を解決することにある。
本発明の一形態である情報処理装置は、
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
という構成をとる。
また、本発明の一形態であるプロセッサは、
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
という構成をとる。
また、本発明の一形態である同期方法は、
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備えた情報処理装置による同期方法であって、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示し、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行し、
前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する、
という構成をとる。
本発明は、以上のように構成されることにより、複数のアクセス空間を効率よく保障することができる。
本発明に関連する複数のアクセス空間を保障する方法の一例を示す図である。 本発明に関連する複数のアクセス空間を保障する方法の一例を示す図である。 本発明の実施形態1における情報処理装置の構成を示すブロック図である。 図3に開示したプロセッサの構成を示す図である。 図3に開示した情報処理装置の動作を示すフローチャートである。 図3に開示した情報処理装置による複数のアクセス空間を保障する方法の動作例を示す図である。 図3に開示した情報処理装置による複数のアクセス空間を保障する方法の動作例を示す図である。 図3に開示した情報処理装置による複数のアクセス空間を保障する方法の動作例を示す図である。 図3に開示した情報処理装置による複数のアクセス空間を保障する方法の動作例を示す図である。 本発明における情報処理装置のメモリ空間について説明する図である。 本発明の実施形態2における情報処理装置の構成を示すブロック図である。
<実施形態1>
本発明の第1の実施形態を、図3乃至図10を参照して説明する。図3乃至図4は、情報処理装置の構成を説明するための図である。図5乃至図10は、情報処理装置における動作を説明するための図である。
図3に、本実施形態における情報処理装置の全体構成を示す。情報処理装置は、PCI(Peripheral Component Interconnect)バス1と、当該PCIバス1に接続されたPCIカード上に搭載されたプロセッサ2と、当該PCIカード上に搭載されプロセッサ2に接続されたメモリ(MEM)31〜34と、を備えている。PCIバス1は、例えば、標準規格のPCI Expressであり、メモリも標準規格のメモリである。
上記プロセッサ2の中には、PCI受信部21、コミュニケーションレジスタ(CR)221〜224、ラストレベルキャッシュ(LLC)231〜234、プロセッサコア(CORE)241〜244が入るものとする。ここでは、一例として、4つのプロセッサコアからなる4コア構成、インタリーブされた4つのラストレベルキャッシュ構成、また、同じく、インタリーブされた4つのコミュニケーションレジスタ構成を例として記載している。ただし、本発明は、上述した構成であることに限定されない。例えば、プロセッサコア、ラストレベルキャッシュ、コミュニケーションレジスタの数は、1つであってもよく、4つ以外の数であってもよい。
ここで、本実施形態では、後述するように、外部からデータを受信したPCI受信部21が、ラストレベルキャッシュ(LLC)231〜234によるメモリ空間(第1メモリ空間)つまり当該ラストレベルキャッシュ(LLC)231〜234を介してメモリ(MEM)31〜34にデータを書き込み、当該データの書き込みを同期するためのフラグをコミュニケーションレジスタ(CR)221〜224によるコミュニケーションレジスタ空間(第2メモリ空間)に書き込むこととする。
但し、本発明では、図10に示すように、コミュニケーションレジスタ(CR)221〜224(第1メモリ空間)にデータを書き込んでもよく、ラストレベルキャッシュ231〜234(第2メモリ空間)にフラグを書き込んでもよい。また、ラストレベルキャッシュ231〜234(第1メモリ空間及び第2メモリ空間)にデータ及びフラグを書き込んでもよく、コミュニケーションレジスタ(CR)221〜224(第1メモリ空間及び第2メモリ空間)にデータ及びフラグを書き込んでもよい。
図4に、図3に開示したプロセッサ2内部の構成の詳細を示し、以下に詳述する。プロセッサコア(CORE)241〜244は、通常の中央演算処理装置(演算部)である。本実施形態では、プロセッサ2中に4つのコアを内蔵しており、後述するように、メモリに書き込まれたデータに対する処理を行う。
プロセッサコア(CORE)241〜244内には、特殊FENCE制御部2411〜2441(同期制御部)を備える。特殊FENCE制御部2411〜2441は、本発明の動作のきっかけとなる特殊FENCE命令を発行する機能を有する。具体的に、特殊FENCE制御部2411〜2441は、プロセッサコア241〜244は、後述するように、コミュニケーションレジスタ(CR)221〜224に書き込まれるフラグをルックインし、フラグの変化をトリガに、両空間の同期化を指示する特殊FENCE命令をPCI受信部21に発行する。また、特殊FENCE制御部2411〜2441は、特殊FENCE命令のリプライとして、PCI受信部21から同期化完了の応答を受信する機能を有する。特殊FENCE制御部2411〜2441は、特殊FENCE命令を発行するとそのリプライを受信するまでは、後続の命令を実行させないようにする。もしくは、ここに別途命令を止める通常のFENCE命令を置いてもよい。
ラストレベルキャッシュ(LLC)231〜234は、いわゆる一般的なキャッシュ機構であり、当該ラストレベルキャッシュ(LLC)231〜234を介してメモリ(MEM)31〜34にデータを書き込む構成となっている。ここで、ラストレベルキャッシュ(LLC)231〜234は、通信経路も持つものとする。図4の例では、PCI受信部21からみるとラストレベルキャッシュ231〜234は2本のパスを持ち、具体的には、ラストレベルキャッシュ231,232のパスとラストレベルキャッシュ233,234のパスがある。各プロセッサコア(CORE)241〜244からはプロセッサコア間の通信パスを経由して、いずれのラストレベルキャッシュ(LLC)231〜234へのアクセスが可能である。また、ラストレベルキャッシュ(LLC)231〜234は、コミュニケーションレジスタ(CR)221〜224とのパスも有し、プロセッサコア(CORE)241〜244からコミュニケーションレジスタ(CR)221〜224へのアクセスも実現する。
ラストレベルキャッシュ(LLC)231〜234は、特殊FENCE転送部2311〜2341を持ち、プロセッサコア(CORE)241〜244から発行された特殊FENCE命令をPCI受信部21に転送する。また、特殊FENCE転送部2311〜2341は、処理の完了した特殊FENCE命令のリプライを特殊FENCE命令の発行元であるプロセッサコア(CORE)241〜244に転送する機能も有する。
さらに、ラストレベルキャッシュ(LLC)231〜234は、同期成立判定部2312〜2342を有する。同期成立判定部2312〜2342では、後述するようにPCI受信部21から発行される同期化命令を受信すると、各ラストレベルキャッシュ(LLC)231〜234が保有するライトデータのメモリ(MEM)31〜34への書き込み、つまり、グローバルビジビリティが確定した時点で同期化命令リプライを返却する機能を有する。グローバルビジビリティが確定していれば、プロセッサコアから見た場合、先行するライト命令の可視化が保証されたことになる。つまり、各ラストレベルキャッシュ(LLC)231〜234は、ライトデータの書き込みが保障されたことを表す応答をPCI受信部21に送信する。
コミュニケーションレジスタ(CR)221〜224は、上記ラストレベルキャッシュ231〜234つまりメモリ(MEM)31〜34よりも高速にアクセスできる通信用のレジスタ群である。メモリと同様にリード、および、ライトができるが、レジスタであるためメモリ(MEM)31〜34よりも高速にアクセス可能である。ただし、メモリ(MEM)31〜34とは違う空間であるため、メモリ(MEM)31〜34とコミュニケーションレジスタ(CR)221〜224の両方を使って通信制御を成り立たせるには、両空間を合わせてのコンシステンシ制御が必要であり、それを本発明では容易に実現している。なお、コミュニケーションレジスタ(CR)221〜224もPCI受信部21との通信経路をもつ。図4の例では、PCI受信部21からみて、コミュニケーションレジスタ(CR)221,222のパスとコミュニケーションレジスタ(CR)223,224のパスがある。
PCI受信部21は、PCIデバイス外からのリクエスト(リード又はライト)を受け付ける。PCI受信部21は、一般的な受信部の機能に加え、本実施形態では、同期化命令発行部211と同期化命令受信部212を備える。
同期化命令発行部211は、プロセッサコア241〜244から発信される特殊FENCE命令をきっかけに、メモリ空間とコミュニケーション空間のそれぞれに対して、先行命令の完了の確認を行う。この確認のために、同期化命令発行部211は、メモリ空間(ラストレベルキャッシュ(LLC)231〜234)に対して2つのパスのそれぞれに同期化命令を発行する。コミュニケーションレジスタ空間(コミュニケーションレジスタ(CR)221〜224)に対しては、同期化命令として、いずれか一方のパスにリード命令を発行する。このように、同期化命令発行部211は、メモリ空間とコミュニケーションレジスタ空間との構成の違いに応じて、それぞれ内容の異なる同期化命令を行る。
また、同期化命令受信部212は、メモリ空間とコミュニケーションレジスタ空間のそれぞれにおいて、同期化完了の確認が取れると、特殊FENCE命令を発行したプロセッサコアに対して、特殊FENCE命令リプライを返却する。この同期化成立は、次のように判定する。
まず、メモリ空間に対しては、2つの空間に同期化命令を発行するが、各ラストレベルキャッシュ(LLC)231〜234から同期化命令リプライが返却される。図4の例では、ラストレベルキャッシュ(LLC)が4つであるため、メモリ空間から4つの同期化命令リプライが返却される。これが成立すると、ラストレベルキャッシュ(LLC)が保持しているすべてのライト命令も含めてグローバルビジビリティを確保できたことになるため、メモリ空間に対しての順序保障は成立したことになる。
他方、コミュニケーションレジスタ空間に対しては、同期化命令として、単純にダミーのリード命令を発行する。コミュニケーションレジスタ(CR)では、ラストレベルキャッシュ(LLC)のようにライト命令を保持することがないため、後続のダミーリード命令がリプライされれば、先行のライト命令の完了が保証されていることになり、その時点でコミュニケーションレジスタ空間に対する順序保障が成立するからである。ただし、前提として、すべてのコミュニケーションレジスタに対する書き込みタイミングより、ダミーリードのリプライ返却の時間の方がかかることを保証している。つまり、コミュニケーションレジスタの実装位置により書き込みタイミングは異なるが、書き込みは片道で、読み出しは往復であるため、通常は、先行のライトの完了と、構造のリードのリプライ完了では、リードリプライ完了の方が遅くなることが多い、という構造上の特徴を利用している。
そして、同期化命令受信部212は、2つの異種の空間からのリプライを合わせて同期化完了を判定する。具体的には、メモリ空間については、同期化命令リプライの数をカウントして、全てのラストレベルキャッシュ(LLC)からリプライを受信したことによって書き込みが保障され、同期化成立と判定する。コミュニケーションレジスタ空間については、ダミーのリードリプライを監視し、リプライを受信したことによって書き込みが保障され、同期化成立と判定する。そして、同期化命令受信部212は、両空間の同期化が成立したことで、同期化完了と判定して、ラストレベルキャッシュ(LLC)231〜234を介して、特殊FENCE命令のリプライをプロセッサコア(CORE)241〜244に送信する。
[動作]
次に、上述した構成の情報処理装置の処理動作を、図5乃至図10を参照して説明する。図5は、処理動作を示すフローチャートであり、図6は、各構成の状態を示す図である。図7乃至図9は、プロセッサ内の情報の流れを示す図である。図10は、データとフラグの格納例を示す図である。
(ステップS0:同期化要求)
PCI外部からのデータ転送があり、同期化するケースを例に挙げて説明する。図10を参照して上述したように、データ本体とフラグの書き込み先の組み合わせは全ケース可能であるが、ここでは、説明のため、データ本体をメモリ空間に書き込み、その同期のためのフラグをコミュニケーションレジスタ空間に書き込むケースを考慮する。
(ステップS1:PCI外から通信データを書込み)
PCI外からデータ本体が書き込まれる(図6のTime 0、図7の矢印Y1)。ここでは、データ本体の書き込みはメモリ空間を想定しているため、PCI受信部21からラストレベルキャッシュ(LLC)231〜234方向にライト命令が発行される。この時点では、ライトデータはラストレベルキャッシュ(LLC)231〜234にあり、書き込みは確定しておらず、グローバルビジビリティは保証されていない。
(ステップS2:PCI外からフラグを書込み)
PCI外からフラグが書き込まれる(図6のTime 0、図7の矢印Y2)。ここでは、フラグの書き込みはコミュニケーションレジスタ空間を想定しており、PCI受信部21からコミュニケーションレジスタ(CR)方向にライト命令が発行される。いずれのパスで書きこまれるかはアドレス次第であるが、プロセッサコア(CORE)241〜244は当該アドレスをルックインし、フラグの変化を監視する。
(ステップS3:特殊FENCE命令発行)
プロセッサコア(CORE)241〜244は、フラグの書きこまれるアドレスをルックインする(図6のTime 1、図7の矢印Y3,Y4)。本例の場合は、コミュニケーションレジスタをルックインする。ルックインしている領域でフラグが変化されると、PCI外部からフラグの書き込みは完了したといえるが、このときは、まだプロセッサ2内部での書き込みは完了したとはいえないため、プロセッサ内部の同期化のために特殊FENCE命令を発行する。特殊FENCE命令は、いずれかのパスでPCI受信部21に到達すればよいので、最短のパスで通るようラストレベルキャッシュ(LLC)231〜234に送られる。
(ステップS4:特殊FENCE命令転送)
ラストレベルキャッシュ(LLC)231〜234は、特殊FENCE命令を受信すると特殊FENCE転送部2311〜2341によりPCI受信部21方向に当該命令と転送する(図7の矢印Y4)。ラストレベルキャッシュ(LLC)231〜234を複数跨ぐ場合には転送を繰り返す。
(ステップS5:PCI受信部にて受信)
PCI受信部21が特殊FENCE命令を受信すると、同期化命令発行部211に、空間の同期化を指示する。
(ステップS6:異空間に同期命令を発行)
同期化の指示を受けた同期化命令発行部211は、メモリ空間とコミュニケーションレジスタ空間の双方に同期化要求を行う(図6のTime 2)。メモリ空間に対しては、2つのパスのそれぞれに同期化命令を発行する(図8の矢印Y5−1,Y5−2)。つまり、4つの全インタリーブ空間であるラストレベルキャッシュに同期化命令を発行する。一方、コミュニケーションレジスタ空間に対しては、いずれか一方のパスにダミーのリード命令を発行する(図8の矢印Y7)。つまり、コミュニケーションレジスタ空間に対しては、いずれか1つのコミュニケーションレジスタに対してのみ、同期化命令であるリード命令を発効すればよい。
(ステップS7−1:各LLC内同期成立判定部にて同期成立をチェック)
同期化命令を受信した各ラストレベルキャッシュ(LLC)231〜234は、同期成立判定部2312〜2342において、各ラストレベルキャッシュ(LLC)231〜234が保有するライトデータのグローバルビジビリティが確定した時点で同期化命令リプライを返却する(図6のTime 2、図8の矢印Y6−1,Y6−2,Y6−3,Y6−4)。つまり、各ラストレベルキャッシュ(LLC)231〜234からリプライが返却されるため、ラストレベルキャッシュ(LLC)231〜234の数だけ同期化命令リプライがある。本実施形態では、4つのリプライとなる。
(ステップS7−2:CR最長パスにリード命令を発行)
コミュニケーションレジスタ空間に対しては、発行されたダミーのリードリクエストはそのまま通常のアクセスをし、PCI受信部21方向にリプライを返却する(図6のTime 2、図8の矢印Y7)。このリプライが返った時点でコミュニケーションレジスタ空間に対する先行のライト命令が完了したことを保証できる。つまり、コミュニケーションレジスタ空間については、1つのリプライを受信することで、フラグの書き込みが保障される。
(ステップS8:異空間からの同期リプライを受信(待ち合わせ))
PCI受信部21の同期化命令受信部212において、メモリ空間に対して発行した同期化命令に対するすべての同期化リプライと、コミュニケーションレジスタ空間に対して発行したダミーのリードリプライと、の返却を待ち合わせる。具体的には、4つの同期化リプライと一つのダミーリードのリプライを待ち合わせる。4つの同期化リプライと一つのダミーリードのリプライを受信すると、同期化完了と判定し、同期化命令受信部212がリクエスタのプロセッサコアに対して特殊FENCE命令リプライが返却される(図6のTime 3、図9の矢印Y8)。
(ステップS9:特殊FENCEリプライ転送)
ラストレベルキャッシュ(LLC)231〜234は、特殊FENCE命令リプライを受信すると、特殊FENCE転送部2311〜2341によりリクエスタであるプロセッサコア(CORE)241〜244方向に当該命令と転送する。ラストレベルキャッシュ(LLC)231〜234を複数跨ぐ場合には転送を繰り返す(図6のTime 3、図9の矢印Y8)。
(ステップS10:特殊FENCEリプライ受信)
プロセッサコア(CORE)241〜244が特殊FENCEリプライを受信すると、特殊FENCE命令発行以前のPCI方向からのメモリもしくはコミュニケーションレジスタアクセスの順序保障が成立したこととなる(図6のTime 3、図9の矢印Y8)。
(ステップS11:同期成立)
同期成立=リリースコンシステンシ成立となり、以降のデータアクセスはグローバルビジビリティが保証されているため、正しいデータへのアクセスが可能となる(図6のTime 3、図9の矢印Y8)。
以上のように、本発明によると、PCI空間からPCIデバイスにアクセスする空間に2種類の空間がある場合に、これら2種類のグローバルビジビリティを1つのFENCE命令で保証することができる。これにより、ソフトウェア制御が簡易で、性能低下も伴わないリリースコンシステンシシステムを実現できる。
なお、上述したPCI受信部21内やプロセッサコア241〜244内、ラストレベルキャッシュ231〜234内に設けられた各部は、それぞれの内部に搭載された演算装置にプログラムが組み込まれることで構築されてもよく、電子回路にて構成されていてもよい。
<実施形態2>
次に、本発明の第2の実施形態を、図11を参照して説明する。図11は、実施形態2における情報処理装置の構成を示すブロック図である。なお、本実施形態における情報処理装置は、実施形態1で説明した情報処理装置の構成の概略を示している。
図11に示すように、本実施形態おける情報処理装置100は、
外部からデータを受信する受信部110と、当該受信部110からデータが書き込まれる第1メモリ空間130と、データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間140と、データに対する処理を行う演算部120と、を備える。
そして、演算部120は、受信部110に対して第1メモリ空間130と第2メモリ空間140との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部121を備える。
また、受信部110は、
演算部120からの同期化指示に応じて、第1メモリ空間130と第2メモリ空間140とに対して、それぞれ同期化命令を発行する同期化命令発行部111と、
同期化命令に応じて、第1メモリ空間130からデータの書き込みが保障されたことを表す応答と、第2メモリ空間140からフラグの書き込みが保障されたことを表す応答と、を受信して、第1メモリ空間130と第2メモリ空間140とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間130,140の書き込みが保障された場合に同期化完了を演算部120に対して応答する同期化命令受信部112と、を備える。
上記構成の情報処理装置100は、以下のように作動する。まず、外部からデータとフラグを書き込むと、それぞれを書き込む場所によって、グローバルビジビリティのタイミングは異なる。例えば、データを第1メモリ空間130に書き、フラグを第2メモリ空間140に書き込む。その後、演算部120が同期化を指示すると、受信部110は、両メモリ空間130,140に対してそれぞれ同期化命令を発行する。例えば、インタリーブされている第1メモリ空間130に対しては、全インタリーブ空間に同期化命令を発行し、全インタリーブ空間からの同期化リプライを受信する。一方、第2メモリ空間140に対しては、単純にリードリクエストを発行し、リプライを受信する。
そして、受信部110は、第1メモリ空間130からデータの書き込みが保障されたリプライを受信し、第2メモリ空間140からフラグの書き込みが保障されたリプライを受信することにより、それぞれのメモリ空間130,140における同期の成立を確認すると、異空間を合わせての同期成立となり、異空間すべての同期化が完了する。すると、受信部110は、同期化命令に対するリプライを演算部120に返す。演算部120はリプライを受信した時点で、先行命令のグローバルビジビリティは確保されているため、データ領域へのアクセスが可能となる。
このように、本発明によると、外部からアクセスする空間に2種類の空間がある場合に、これら2種類のグローバルビジビリティを1つの同期化命令で保証することができる。これにより、ソフトウェア制御が簡易で、性能低下も伴わないリリースコンシステンシシステムを実現できる。
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置、プロセッサ、同期方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
情報処理装置。
(付記2)
付記1に記載の情報処理装置であって、
前記受信部の前記同期化命令発行部は、前記第1メモリ空間と前記第2メモリ空間とに対して、前記第1メモリ空間と前記第2メモリ空間との構成に応じた内容の前記同期化命令を行う、
情報処理装置。
(付記3)
付記1又は2に記載の情報処理装置であって、
前記第1メモリ空間及び/又は前記第2メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行し、
前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データ又は前記フラグの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間及び/又は前記第2メモリ空間の書き込みが保障されたと判定する、
情報処理装置。
(付記4)
付記1乃至3のいずれかに記載の情報処理装置であって、
前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行し、
前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定する、
情報処理装置。
(付記5)
付記1乃至4のいずれかに記載の情報処理装置であって、
前記第1メモリ空間及び/又は前記第2メモリ空間がレジスタからなるメモリ空間で形成されている場合に、
前記受信部の前記同期化命令発行部は、前記レジスタに対して前記同期化命令としてリード命令を発行し、
前記受信部の前記同期化命令受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第1メモリ空間及び/又は第2メモリ空間の書き込みが保障されたと判定する、
情報処理装置。
(付記6)
付記1乃至5のいずれかに記載の情報処理装置であって、
前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
前記受信部の前記同期化命令発行部は、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
前記受信部の前記同期化命令受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
情報処理装置。
(付記7)
付記1乃至6のいずれかに記載の情報処理装置であって、
前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されており、
前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行すると共に、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定すると共に、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
情報処理装置。
(付記8)
付記1乃至7のいずれかに記載の情報処理装置であって、
前記演算部の前記同期制御部は、前記第2メモリ空間に対する前記フラグの書き込みを検出したときに、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期を指示する、
情報処理装置。
(付記9)
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
プロセッサ。
(付記10)
外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備えた情報処理装置による同期方法であって、
前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示し、
前記受信部は、
前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行し、
前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する、
同期方法。
(付記11)
付記10に記載の同期方法であって、
前記受信部は、前記第1メモリ空間と前記第2メモリ空間とに対して、前記第1メモリ空間と前記第2メモリ空間との構成に応じた内容の前記同期化命令を行う、
同期方法。
(付記12)
付記10又は11に記載の同期方法であって、
前記第1メモリ空間及び/又は前記第2メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
前記受信部は、
全ての前記キャッシュメモリに対して前記同期化命令を発行し、
全ての前記キャッシュメモリから前記データ又は前記フラグの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間及び/又は前記第2メモリ空間の書き込みが保障されたと判定する、
同期方法。
(付記12.1)
付記10乃至12のいずれかに記載の同期方法であって、
前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
前記受信部は、
全ての前記キャッシュメモリに対して前記同期化命令を発行し、
全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定する、
同期方法。
(付記13)
付記10乃至12.1のいずれかに記載の同期方法であって、
前記第1メモリ空間及び/又は前記第2メモリ空間がレジスタからなるメモリ空間で形成されている場合に、
前記受信部は、前記レジスタに対して前記同期化命令としてリード命令を発行し、
前記受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第1メモリ空間及び/又は第2メモリ空間の書き込みが保障されたと判定する、
同期方法。
(付記13.1)
付記10乃至13のいずれかに記載の同期方法であって、
前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
前記受信部は、
複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
前記受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
同期方法。
(付記14)
付記10乃至13.1のいずれかに記載の同期方法であって、
前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されており、
前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
前記受信部は、
全ての前記キャッシュメモリに対して前記同期化命令を発行すると共に、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定すると共に、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
同期方法。
(付記15)
付記10乃至14のいずれかに記載の同期方法であって、
前記演算部は、前記第2メモリ空間に対する前記フラグの書き込みを検出したときに、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期を指示する、
同期方法。
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
1 PCIバス
2 プロセッサ
21 PCI受信部
31,32,33,34 メモリ(MEM)
211 同期化命令発行部
221 同期化命令受信部
221,222,223,224 コミュニケーションレジスタ(CR)
231,232,233,234 ラストレベルキャッシュ(LLC)
241,242,243,244 プロセッサコア(CORE)
2311,2321,2331,2341 特殊FENCE転送部
2312,2322,2332,2342 同期成立判定部
2411,2421,2431,2441 特殊FENCE制御部
100 情報処理装置
110 受信部
111 同期化命令発行部
112 同期化命令受信部
120 演算部
121 同期制御部
130 第1メモリ空間
140 第2メモリ空間

Claims (15)

  1. 外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
    前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
    前記受信部は、
    前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
    前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
    情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記受信部の前記同期化命令発行部は、前記第1メモリ空間と前記第2メモリ空間とに対して、前記第1メモリ空間と前記第2メモリ空間との構成に応じた内容の前記同期化命令を行う、
    情報処理装置。
  3. 請求項1又は2に記載の情報処理装置であって、
    前記第1メモリ空間及び/又は前記第2メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
    前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行し、
    前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データ又は前記フラグの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間及び/又は前記第2メモリ空間の書き込みが保障されたと判定する、
    情報処理装置。
  4. 請求項1乃至3のいずれかに記載の情報処理装置であって、
    前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
    前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行し、
    前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定する、
    情報処理装置。
  5. 請求項1乃至4のいずれかに記載の情報処理装置であって、
    前記第1メモリ空間及び/又は前記第2メモリ空間がレジスタからなるメモリ空間で形成されている場合に、
    前記受信部の前記同期化命令発行部は、前記レジスタに対して前記同期化命令としてリード命令を発行し、
    前記受信部の前記同期化命令受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第1メモリ空間及び/又は第2メモリ空間の書き込みが保障されたと判定する、
    情報処理装置。
  6. 請求項1乃至5のいずれかに記載の情報処理装置であって、
    前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
    前記受信部の前記同期化命令発行部は、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
    前記受信部の前記同期化命令受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
    情報処理装置。
  7. 請求項1乃至6のいずれかに記載の情報処理装置であって、
    前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されており、
    前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
    前記受信部の前記同期化命令発行部は、全ての前記キャッシュメモリに対して前記同期化命令を発行すると共に、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
    前記受信部の前記同期化命令受信部は、全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定すると共に、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
    情報処理装置。
  8. 請求項1乃至7のいずれかに記載の情報処理装置であって、
    前記演算部の前記同期制御部は、前記第2メモリ空間に対する前記フラグの書き込みを検出したときに、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期を指示する、
    情報処理装置。
  9. 外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備え、
    前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示すると共に、当該受信部から同期化完了の応答を受信する同期制御部を備え、
    前記受信部は、
    前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行する同期化命令発行部と、
    前記同期化命令に応じて、前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する同期化命令受信部と、を備えた、
    プロセッサ。
  10. 外部からデータを受信する受信部と、当該受信部からデータが書き込まれる第1メモリ空間と、前記データの書き込みを同期するためのフラグが書き込まれる第2メモリ空間と、前記データに対する処理を行う演算部と、を備えた情報処理装置による同期方法であって、
    前記演算部は、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期化を指示し、
    前記受信部は、
    前記演算部からの同期化指示に応じて、前記第1メモリ空間と前記第2メモリ空間とに対して、それぞれ同期化命令を発行し、
    前記第1メモリ空間から前記データの書き込みが保障されたことを表す応答と、前記第2メモリ空間から前記フラグの書き込みが保障されたことを表す応答と、を受信して、前記第1メモリ空間と前記第2メモリ空間とのそれぞれの書き込みが保障されたことを判定し、両メモリ空間の書き込みが保障された場合に同期化完了を前記演算部に対して応答する、
    同期方法。
  11. 請求項10に記載の同期方法であって、
    前記受信部は、前記第1メモリ空間と前記第2メモリ空間とに対して、前記第1メモリ空間と前記第2メモリ空間との構成に応じた内容の前記同期化命令を行う、
    同期方法。
  12. 請求項10又は11に記載の同期方法であって、
    前記第1メモリ空間及び/又は前記第2メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されている場合に、
    前記受信部は、
    全ての前記キャッシュメモリに対して前記同期化命令を発行し、
    全ての前記キャッシュメモリから前記データ又は前記フラグの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間及び/又は前記第2メモリ空間の書き込みが保障されたと判定する、
    同期方法。
  13. 請求項10乃至12のいずれかに記載の同期方法であって、
    前記第1メモリ空間及び/又は前記第2メモリ空間がレジスタからなるメモリ空間で形成されている場合に、
    前記受信部は、前記レジスタに対して前記同期化命令としてリード命令を発行し、
    前記受信部は、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第1メモリ空間及び/又は第2メモリ空間の書き込みが保障されたと判定する、
    同期方法。
  14. 請求項10乃至13のいずれかに記載の同期方法であって、
    前記第1メモリ空間が複数のキャッシュメモリからなるメモリ空間で形成されており、
    前記第2メモリ空間が複数のレジスタからなるメモリ空間で形成されている場合に、
    前記受信部は、
    全ての前記キャッシュメモリに対して前記同期化命令を発行すると共に、複数の前記レジスタのうちいずれか1つの前記レジスタに対して前記同期化命令としてリード命令を発行し、
    全ての前記キャッシュメモリから前記データの書き込みが保障されたことを表す応答を受信した場合に、前記第1メモリ空間の書き込みが保障されたと判定すると共に、前記レジスタから前記リード命令に対する応答を受信した場合に、前記第2メモリ空間の書き込みが保障されたと判定する、
    同期方法。
  15. 請求項10乃至14のいずれかに記載の同期方法であって、
    前記演算部は、前記第2メモリ空間に対する前記フラグの書き込みを検出したときに、前記受信部に対して前記第1メモリ空間と前記第2メモリ空間との同期を指示する、
    同期方法。
JP2017034809A 2017-02-27 2017-02-27 情報処理装置 Active JP6249117B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017034809A JP6249117B1 (ja) 2017-02-27 2017-02-27 情報処理装置
US15/868,018 US10621082B2 (en) 2017-02-27 2018-01-11 Information processing device that guarantees consistency in access spaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017034809A JP6249117B1 (ja) 2017-02-27 2017-02-27 情報処理装置

Publications (2)

Publication Number Publication Date
JP6249117B1 true JP6249117B1 (ja) 2017-12-20
JP2018142084A JP2018142084A (ja) 2018-09-13

Family

ID=60685593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017034809A Active JP6249117B1 (ja) 2017-02-27 2017-02-27 情報処理装置

Country Status (2)

Country Link
US (1) US10621082B2 (ja)
JP (1) JP6249117B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132145B2 (en) * 2018-03-14 2021-09-28 Apple Inc. Techniques for reducing write amplification on solid state storage devices (SSDs)
CN109766361B (zh) * 2018-12-19 2023-08-04 中国平安人寿保险股份有限公司 缓存数据读取方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198644A (ja) * 1997-01-13 1998-07-31 Hitachi Ltd 同期制御方法およびマルチプロセッサシステム
JP2010044599A (ja) * 2008-08-13 2010-02-25 Nec Corp 情報処理装置及び順序保証方式

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US8082401B2 (en) * 2009-03-25 2011-12-20 Qualcomm Incorporated Self-timing for a multi-ported memory system
JP6432450B2 (ja) * 2015-06-04 2018-12-05 富士通株式会社 並列計算装置、コンパイル装置、並列処理方法、コンパイル方法、並列処理プログラムおよびコンパイルプログラム
US10241945B2 (en) * 2015-11-05 2019-03-26 International Business Machines Corporation Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198644A (ja) * 1997-01-13 1998-07-31 Hitachi Ltd 同期制御方法およびマルチプロセッサシステム
JP2010044599A (ja) * 2008-08-13 2010-02-25 Nec Corp 情報処理装置及び順序保証方式

Also Published As

Publication number Publication date
US20180246808A1 (en) 2018-08-30
JP2018142084A (ja) 2018-09-13
US10621082B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
US10515030B2 (en) Method and device for improved advanced microcontroller bus architecture (AMBA) and advanced extensible interface (AXI) operations
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
US9672143B2 (en) Remote memory ring buffers in a cluster of data processing nodes
JP6005392B2 (ja) ルーティングのための方法及び装置
KR20160081797A (ko) 버퍼를 갖는 컴퓨팅 시스템 및 그것의 동작 방법
US20070050527A1 (en) Synchronization method for a multi-processor system and the apparatus thereof
JP2017016660A (ja) マスタサイドフィルタを含むキャッシュコヒーレントシステムとそれを含むデータ処理システム
CN115374046B (zh) 一种多处理器数据交互方法、装置、设备及存储介质
KR101702374B1 (ko) 멀티 프로세서 장치 및 그것의 인터 프로세스 통신 방법
JP6249117B1 (ja) 情報処理装置
US6415361B1 (en) Apparatus for controlling cache by using dual-port transaction buffers
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
JP2008547139A (ja) 一方向全二重インタフェースを有するメモリのポスト書き込みバッファのための方法、装置及びシステム
CN109285580B (zh) 数据预处理装置、方法及异步双端随机存取存储器系统
KR101110550B1 (ko) 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
CN116483259A (zh) 一种数据处理方法以及相关装置
JP2002366427A (ja) プロセッサ間通信システム及びそれに用いるプロセッサ間通信方法
CN114327248A (zh) 存储节点、存储设备及网络芯片
US20140136796A1 (en) Arithmetic processing device and method for controlling the same
KR20090128605A (ko) 버스트 전송이 가능한 프로세서간 통신 장치, 프로세서간통신 장치를 포함하는 시스템 및 프로세서간 통신 장치를구동하기 위한 디바이스 드라이버
US20090089468A1 (en) Coherent input output device
KR100652690B1 (ko) 이동 통신 단말기의 멀티 프로세서 장치
US11487695B1 (en) Scalable peer to peer data routing for servers
US20240070078A1 (en) Recall pending cache line eviction
US11914516B1 (en) Memory side cache request handling

Legal Events

Date Code Title Description
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: 20171024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171106

R150 Certificate of patent or registration of utility model

Ref document number: 6249117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150