JP2020154805A - マルチプロセッサシステム及び共有メモリの制御方法 - Google Patents

マルチプロセッサシステム及び共有メモリの制御方法 Download PDF

Info

Publication number
JP2020154805A
JP2020154805A JP2019053337A JP2019053337A JP2020154805A JP 2020154805 A JP2020154805 A JP 2020154805A JP 2019053337 A JP2019053337 A JP 2019053337A JP 2019053337 A JP2019053337 A JP 2019053337A JP 2020154805 A JP2020154805 A JP 2020154805A
Authority
JP
Japan
Prior art keywords
processor
message
pointer
queue
memory
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.)
Pending
Application number
JP2019053337A
Other languages
English (en)
Inventor
三徳 田所
Mitsunori Tadokoro
三徳 田所
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2019053337A priority Critical patent/JP2020154805A/ja
Priority to US16/550,365 priority patent/US11422937B2/en
Publication of JP2020154805A publication Critical patent/JP2020154805A/ja
Pending legal-status Critical Current

Links

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/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/1041Resource optimization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

【課題】小さい回路規模でマルチプロセッサシステムにおけるメッセージキューの空き状況の判断を可能にすること。【解決手段】第1プロセッサ3と第2プロセッサ6とを有する共有メモリ型のマルチプロセッサシステムにおいて、第1プロセッサは、共有メモリ2へメッセージを送信するときに、メッセージキュー21の空き位置の先頭を示す第1ヘッドポインタをインクリメントするとともに、第1ヘッドポインタと同じ値をメッセージの末尾位置を示す第2テールポインタにコピーする。【選択図】図1

Description

本発明の実施形態は、マルチプロセッサシステム及び共有メモリの制御方法に関する。
2つ以上のプロセッサによって1つのメモリを共用することで個々のプロセッサによる並列処理等を可能にするマルチプロセッサシステムが知られている。この種のマルチプロセッサシステムでは、メッセージキューの空き状況によってそれぞれのプロセッサにおけるメッセージの送受信の可否が判断される。
米国特許出願公開第2018/0081574号明細書
実施形態は、小さい回路規模でマルチプロセッサシステムにおけるメッセージキューの空き状況を判断することができる、マルチプロセッサシステム及び共有メモリの制御方法を提供する。
実施形態のマルチプロセッサシステムは、共有メモリと、第1プロセッサと、第2プロセッサと、第1メモリと、第2メモリとを有する。共有メモリは、メッセージを格納可能なキューを有する。第1プロセッサは、共有メモリにメッセージを送信する。第2プロセッサは、共有メモリからメッセージを受信する。第1メモリは、キューの空き位置の先頭を示す第1ヘッドポインタと、キューの空き位置の末尾を示す第1テールポインタとを含む第1ポインタを保持する。第2メモリは、キューに格納されているメッセージの先頭の位置を第2ヘッドポインタと、キューに格納されているメッセージの末尾の位置を示す第2ヘッドポインタとを含む第2ポインタを保持する。第1プロセッサは、メッセージを送信するときに、第1ヘッドポインタをインクリメントするとともに、第1ヘッドポインタと同じ値を前記第2テールポインタにコピーする。
図1は、実施形態に係るマルチプロセッサシステムの全体の構成例を示す図である。 図2は、実施形態のマルチプロセッサシステムにおけるメッセージの送信側のプロセッサによるメッセージ送信の動作を示すフローチャートである。 図3Aは、メッセージキューがフルでないときの、第1ヘッドポインタと、第1テールポインタと、第2ヘッドポインタと、第2テールポインタとの関係を示すである。 図3Bは、メッセージキューがフルであるときの、第1ヘッドポインタと、第1テールポインタと、第2ヘッドポインタと、第2テールポインタとの関係を示すである。 図4は、実施形態のマルチプロセッサシステムにおけるメッセージの受信側のプロセッサのメッセージ受信の動作を示すフローチャートである。 図5Aは、メッセージキューが空でないときの、第1ヘッドポインタと、第1テールポインタと、第2ヘッドポインタと、第2テールポインタとの関係を示すである。 図5Bは、メッセージキューが空であるときの、第1ヘッドポインタと、第1テールポインタと、第2ヘッドポインタと、第2テールポインタとの関係を示すである。
以下、本発明の実施形態について図面を参照して説明する。
[1]マルチプロセッサシステムの構成
図1は、実施形態に係るマルチプロセッサシステムの全体の構成例を示す図である。マルチプロセッサシステム1は、共有メモリ2と、第1プロセッサ3と、第1メモリ4と、第1アービタ5と、第2プロセッサ6と、第2メモリ7と、第2アービタ8とを有している。
共有メモリ2は、第1プロセッサ3及び第2プロセッサ6で共用されるメモリである。共有メモリ2は、第1プロセッサ3及び第2プロセッサ6の双方に対してグローバルな場所に設けられたグローバルメモリである。例えば、共有メモリ2は、マスターバス9等を介して第1プロセッサ3及び第2プロセッサ6からアクセスされるように設けられている。共有メモリ2は、例えばRAM(Random Access Memory)である。共有メモリ2は、例えば第1プロセッサ3と第2プロセッサ6の並列処理のための作業メモリとして用いられる。共有メモリ2は、RAMに限るものではない。共有メモリ2は、メッセージキュー21を有する。メッセージキュー21は、FIFO(First-In First-Out)方式のリングバッファである。メッセージキュー21は、メッセージを格納する。メッセージキュー21に格納されたメッセージは、受信側のプロセッサによって取り出されるまで格納される。メッセージは、制御又はデータといった、第1プロセッサ3と第2プロセッサ6との間でやり取りされ得る各種の情報を含む。
第1プロセッサ3は、例えばCPU(Central Processing Unit)である。第1プロセッサ3は、共有メモリ2を使用して各種のデータ処理を実行する。また、第1プロセッサ3は、必要に応じてメッセージをメッセージキュー21に格納する。
第1メモリ4は、第1プロセッサ3に対してローカルな場所に設けられているローカルメモリである。例えば、第1メモリ4は、マスターバス9等を介さずに第1プロセッサ3からアクセスされるように設けられている。第1メモリ4は、共有メモリ2に比べて高速なアクセスが可能な小容量のメモリである。第1メモリ4は、RAM41及びROM42を含んでよい。
RAM41は、任意に書き込みできる半導体記憶装置である。RAM41には、第1ポインタ41aが記憶されてよい。第1ポインタ41aは、メッセージ送信のためのポインタである。第1ポインタ41aは、第1ヘッドポインタと、第1テールポインタとを含む。第1ヘッドポインタは、メッセージキュー21における空き位置の先頭を示すポインタである。第1テールポインタは、メッセージキュー21における空き位置の末尾を示すポインタである。
ROM42は、読み出し専用の半導体記憶装置である。ROM42には、第1プロセッサ3の動作のためのファームウェア等を含むプログラムが記憶されてよい。第1プロセッサ3が電源供給を受けた際、ROM42に格納されているファームウェアがRAM41上に読み出される。第1プロセッサ3は、ファームウェアに従って所定の処理を実行する。また、第1プロセッサ3は、ROM42に記憶される各種のプログラムに従って種々の機能を実現する。この各種のプログラムは、種々のアプリケーションソフトウェア、オペレーティングシステム、ファイルシステム等を含む。
第1アービタ5は、第1プロセッサ3と第1メモリ4との間に設けられている回路である。第1アービタ5は、マスターバス9を介して第2アービタ8にも接続されている。第1アービタ5は、第1メモリ4へのアクセスを調停する。例えば、第1プロセッサ3と第2プロセッサ6とによる第1メモリ4へのアクセスが競合したときに、第1アービタ5は、予め定められた順序に従って、第1プロセッサ3と第2プロセッサ6とのそれぞれに第1メモリ4にアクセスするためのバスの使用権を与える。
第2プロセッサ6は、例えばCPUである。第2プロセッサ6は、共有メモリ2を使用して各種のデータ処理を実行する。第2プロセッサ6は、第1プロセッサ3と同様の構成のプロセッサであってもよいし、同様の構成のプロセッサでなくてもよい。第2プロセッサ6は、共有メモリ2を使用して各種のデータ処理を実行する。また、第2プロセッサ6は、メッセージキュー21に格納されているメッセージを取り出す。そして、第2プロセッサ6は、取り出したメッセージキューに応じた処理を実行する。
第2メモリ7は、第2プロセッサ6に対してローカルな場所に設けられているローカルメモリである。例えば、第2メモリ7は、マスターバス9等を介さずに第2プロセッサ6からアクセスされるように設けられている。第2メモリ7は、共有メモリ2に比べて高速なアクセスが可能な小容量のメモリである。第2メモリ7は、第1メモリ4と同様にRAM71及びROM72を含んでよい。
RAM71は、任意に書き込みできる半導体記憶装置である。RAM71には、第2ポインタ71aが記憶されてよい。第2ポインタ71aは、メッセージの受信のためのポインタである。第2ポインタ71aは、第2ヘッドポインタと、第2テールポインタとを含む。第2ヘッドポインタは、メッセージキュー21に格納されているメッセージの先頭の位置を示すポインタである。第2テールポインタは、メッセージキュー21に格納されているメッセージの末尾の位置を示すポインタである。
ROM72は、読み出し専用の半導体記憶装置である。ROM72には、第2プロセッサ6の動作のためのファームウェア等を含むプログラムが記憶されてよい。第2プロセッサ6が電源供給を受けた際、ROM72に格納されているファームウェアがRAM71上に読み出される。第2プロセッサ6は、ファームウェアに従って所定の処理を実行する。また、第2プロセッサ6は、ROM72に記憶される各種のプログラムに従って種々の機能を実現する。この各種のプログラムは、種々のアプリケーションソフトウェア、オペレーティングシステム、ファイルシステム等を含む。
第2アービタ8は、第2プロセッサ6と第2メモリ7との間に設けられている回路である。第2アービタ8は、マスターバス9を介して第1アービタ5にも接続されている。第2アービタ8は、第2メモリ7へのアクセスを調停する。例えば、第1プロセッサ3と第2プロセッサ6とによる第2メモリ7へのアクセスが競合したときに、第2アービタ8は、予め定められた順序に従って、第1プロセッサ3と第2プロセッサ6とのそれぞれに第2メモリ7にアクセスするためのバスの使用権を与える。
[2] マルチプロセッサシステムの動作
まず、送信側のプロセッサの動作について説明する。図2は、実施形態のマルチプロセッサシステムにおけるメッセージの送信側のプロセッサによるメッセージ送信の動作を示すフローチャートである。ここで、図1の例では、送信側のプロセッサは、第1プロセッサ3である。
メッセージを送信するに当たり、ステップS1において、第1プロセッサ3は、メッセージを送信することができるか否かを判定する。ステップS1の判定は、メッセージキュー21がフルであるか否かに応じて判定される。メッセージキュー21がフルであるときには、メッセージを送信することができないと判定される。ステップS1において、メッセージを送信できないと判定されたときには(S1 NO)、ステップS1の判定が継続される。つまり、メッセージを送信できると判定されるまで、処理は待機される。ステップS1の判定と併せて他の処理が行われてもよい。また、一定時間の経過後にメッセージを送信できると判定されていないとには、図2の処理は終了されてもよい。ステップS1において、メッセージを送信できると判定されたときには(S1 YES)、第1プロセッサ3は、ステップS2の処理を実行する。
ここで、メッセージキュー21がフルであるか否かは、第1ポインタ41aを用いて判定される。図3Aは、メッセージキュー21がフルでないときの、第1ヘッドポインタH1と、第1テールポインタT1と、第2ヘッドポインタH2と、第2テールポインタT2との関係を示すである。また、図3Bは、メッセージキュー21がフルであるときの、第1ヘッドポインタH1と、第1テールポインタT1と、第2ヘッドポインタH2と、第2テールポインタT2との関係を示すである。ここで、図3A及び図3Bのハッチングで示した位置にメッセージが格納されているとする。また、図3A及び図3Bの例では、メッセージキュー21のキュー深さは9である。すなわち、メッセージキュー21は、9段のFIFOである。
前述したように、第1ヘッドポインタH1は空き位置の先頭を示す。また、第1テールポインタT1は空き位置の末尾を示す。つまり、第1ヘッドポインタH1と第1テールポインタT1との差がメッセージキュー21の空きを示すことになる。したがって、図3Aに示すように、メッセージキュー21に空きがあるときには、第1ヘッドポインタH1と第1テールポインタT1とは一致しない。一方、図3Bに示すように、メッセージキュー21がフルであるときには、第1ヘッドポインタH1と第1テールポインタT1とは一致する。
つまり、ステップS1では、第1プロセッサ3は、第1ヘッドポインタH1と第1テールポインタT1とが一致しているか否かを判定することによって、メッセージを送信することができるか否かを判定する。
ここで、図2の説明に戻る。ステップS2において、第1プロセッサ3は、共有メモリ2にメッセージを送信する。このメッセージは、共有メモリ2のメッセージキュー21に格納される。前述したように、メッセージキュー21は、FIFO方式である。したがって、メッセージは、最後に送信されたメッセージに続けてメッセージキュー21に格納される。例えば、図3Aの例では、送信されたメッセージは、メッセージキュー21の“1”の位置に格納される。
ステップS3において、第1プロセッサ3は、第1メモリ4に記憶されている第1ヘッドポインタH1をインクリメントする。メッセージキュー21に送信されたメッセージは、それまで第1ヘッドポインタH1が示していた位置に格納される。この位置は空き位置ではなくなるので、第1プロセッサ3は、第1ヘッドポインタH1をインクリメントする。
ステップS4において、第1プロセッサ3は、更新された第1ヘッドポインタの値を、第2メモリ7に記憶されている第2のテールポインタにコピーする。その後、図2の処理は終了する。メッセージが新たに格納されることで、メッセージの末尾位置が更新された第1ヘッドポインタH1の位置に変わる。したがって、第1プロセッサ3は、第1ヘッドポインタH1の値を第2テールポインタT2にコピーする。
次に、受信側のプロセッサの動作について説明する。図4は、実施形態のマルチプロセッサシステムにおけるメッセージの受信側のプロセッサのメッセージ受信の動作を示すフローチャートである。図1の例では、受信側のプロセッサは、第2プロセッサ6である。
メッセージを受信するに当たり、ステップS11において、第2プロセッサ6は、メッセージを受信することができるか否かを判定する。ステップS11の判定は、メッセージキュー21が空であるか否かに応じて判定される。メッセージキュー21が空であるときには、メッセージを受信することができないと判定される。ステップS11において、メッセージを受信できないと判定されたときには(S11 NO)、ステップS11の判定が継続される。つまり、メッセージを受信できると判定されるまで、処理は待機される。ステップS11の判定と併せて他の処理が行われてもよい。ステップS11において、メッセージを受信できると判定されたときには(S11 YES)、処理はステップS12に移行する。
ここで、メッセージキュー21が空であるか否かは、第2ポインタ71aを用いて判定される。図5Aは、メッセージキュー21が空でないときの、第1ヘッドポインタH1と、第1テールポインタT1と、第2ヘッドポインタH2と、第2テールポインタT2との関係を示すである。また、図5Bは、メッセージキュー21が空であるときの、第1ヘッドポインタH1と、第1テールポインタT1と、第2ヘッドポインタH2と、第2テールポインタT2との関係を示すである。ここで、図5A及び図5Bのハッチングで示した位置にメッセージが格納されているとする。
前述したように、第2ヘッドポインタH2はメッセージの先頭位置を示す。また、第2テールポインタT2はメッセージの末尾位置を示す。つまり、第2ヘッドポインタH2と第2テールポインタT2との差がメッセージの幅を示すことになる。したがって、図5Aに示すように、メッセージキュー21にメッセージが格納されているときには、第2ヘッドポインタH2と第2テールポインタT2とは一致しない。一方、図5Bに示すように、メッセージキュー21が空であるときには、第2ヘッドポインタH2と第2テールポインタT2とは一致する。
つまり、ステップS11では、第2プロセッサ6は、第2ヘッドポインタH2と第2テールポインタT2とが一致しているか否かを判定することによって、メッセージを受信することができるか否かを判定する。
ステップS12において、第2プロセッサ6は、共有メモリ2のメッセージキュー21からメッセージを受信する。前述したように、メッセージキュー21は、FIFO方式である。したがって、メッセージは、格納された順序が古い順に受信される。例えば、図5Aの例では、メッセージは、メッセージキュー21の“0”の位置から第2プロセッサ6に送信される。
ステップS13において、第2プロセッサ6は、第2メモリ41に記憶されている第2ヘッドポインタH2をインクリメントする。メッセージキュー21からメッセージが受信されることで、それまでメッセージが格納されていた位置が空き位置になる。この位置はメッセージの位置ではなくなるので、第2プロセッサ6は、第2ヘッドポインタH2をインクリメントする。
ステップS14において、第2プロセッサ6は、更新された第2ヘッドポインタの値を、第1メモリ31に記憶されている第1テールポインタにコピーする。その後、図4の処理は終了する。メッセージが無くなることで、空き位置の末尾位置が更新された第2ヘッドポインタH2の位置に変わる。したがって、第2プロセッサ6は、第2ヘッドポインタH2の値を第1テールポインタT1にコピーする。
以上説明したように実施形態では、メッセージキューの空き状況を管理するためのポインタがメッセージ送信のためのポインタと、メッセージ受信のためのポインタとに分けられている。これにより、メッセージの送信の可否判定とメッセージの受信の可否判定との双方で、ヘッドポインタとテールポインタの一致検出が用いられ得る。つまり、実施形態では、メッセージの送信の可否判定とメッセージの受信の可否判定の何れにおいてもポインタの大小比較は不要である。また、メッセージキューにリングバッファが用いられている場合、メッセージの末尾位置によってはラップアラウンド処理をしてからでないと、ポインタの大小比較をできないこともある。実施形態では、メッセージの送信の可否判定とメッセージの受信の可否判定の何れにおいてもラップアラウンド処理は不要である。このようにして、メッセージの送受信の可否判定のための構成を簡易化することができる。したがって、マルチプロセッサシステムとしての回路規模の削減が図られる。
また、実施形態では、ポインタの読み出しは、一致判定のためにローカルメモリからポインタを読み出すときに行われる。つまり、実施形態では、一致判定のためにローカルでないメモリからポインタが読み出される必要はない。これにより、読み出しのためのレイテンシを抑えることができる。
ここで、実施形態では、メッセージの送信の可否判定とメッセージの受信の可否判定は、何れもプロセッサによる処理で行われるとしている。しかしながらこれに限らない。実施形態では、メッセージの送信の可否判定とメッセージの受信の可否判定は、何れもポインタの一致検出である。このような一致検出は、例えばコンパレータといった回路を用いても行われ得る。
また、実施形態では、第1プロセッサ3が送信側のプロセッサとされ、第2プロセッサ6が受信側のプロセッサとされている。しかしながらこれに限らない。第2プロセッサ6が送信側のプロセッサとされ、第1プロセッサ3が受信側のプロセッサとされてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 マルチプロセッサシステム
2 共有メモリ
3 第1プロセッサ
4 第1メモリ
5 第1アービタ
6 第2プロセッサ
7 第2メモリ
8 第2アービタ
9 マスターバス

Claims (6)

  1. メッセージを格納可能なキューを有する共有メモリと、
    前記共有メモリに前記メッセージを送信する第1プロセッサと、
    前記共有メモリに格納された前記メッセージを受信する第2プロセッサと、
    前記キューの空き位置の先頭を示す第1ヘッドポインタと、前記キューの空き位置の末尾を示す第1テールポインタとを含む第1ポインタを保持する第1メモリと、
    前記キューに格納されている前記メッセージの先頭の位置を示す第2ヘッドポインタと、前記キューに格納されている前記メッセージの末尾の位置を示す第2テールポインタとを含む第2ポインタを保持する第2メモリと、
    を有し、
    前記第1プロセッサは、前記メッセージを送信するときに、前記第1ヘッドポインタをインクリメントするとともに、前記第1ヘッドポインタと同じ値を前記第2テールポインタにコピーする、
    マルチプロセッサシステム。
  2. 前記第2プロセッサは、前記メッセージを受信するときに、前記第2ヘッドポインタをインクリメントするとともに、前記第2ヘッドポインタと同じ値を前記第1テールポインタにコピーする、
    請求項1に記載のマルチプロセッサシステム。
  3. 前記第1プロセッサは、前記第1ヘッドポインタと前記第1テールポインタの値が等しいときに前記キューがフルであると判定する、
    請求項1に記載のマルチプロセッサシステム。
  4. 前記第2プロセッサは、前記第2ヘッドポインタと前記第2テールポインタの値が等しいときに前記キューが空であると判定する、
    請求項1に記載のマルチプロセッサシステム。
  5. 前記共有メモリは、前記第1プロセッサ及び前記第2プロセッサに対するグローバルメモリであり、
    前記第1メモリは、前記第1プロセッサに対するローカルメモリであり、
    前記第2メモリは、前記第2プロセッサに対するローカルメモリである、
    請求項1に記載のマルチプロセッサシステム。
  6. メッセージを格納可能なキューを有する共有メモリと、前記共有メモリに前記メッセージを送信する第1プロセッサと、前記共有メモリに格納された前記メッセージを受信する第2プロセッサとを有するマルチプロセッサシステムにおける共有メモリの制御方法であって、
    前記第1プロセッサは、前記メッセージを送信するときに、前記キューの空き位置の先頭を示す第1ヘッドポインタをインクリメントするとともに、前記第1ヘッドポインタと同じ値をキューに格納されている前記メッセージの末尾の位置を示す第2ヘッドポインタにコピーし、
    前記第2プロセッサは、前記メッセージを受信するときに、前記キューに格納されている前記メッセージの先頭の位置を示す第2ヘッドポインタをインクリメントするとともに、前記第2ヘッドポインタと同じ値を前記キューの空き位置の末尾を示す第1テールポインタにコピーする、
    共有メモリの制御方法。
JP2019053337A 2019-03-20 2019-03-20 マルチプロセッサシステム及び共有メモリの制御方法 Pending JP2020154805A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019053337A JP2020154805A (ja) 2019-03-20 2019-03-20 マルチプロセッサシステム及び共有メモリの制御方法
US16/550,365 US11422937B2 (en) 2019-03-20 2019-08-26 Multiprocessor system and method for controlling shared memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019053337A JP2020154805A (ja) 2019-03-20 2019-03-20 マルチプロセッサシステム及び共有メモリの制御方法

Publications (1)

Publication Number Publication Date
JP2020154805A true JP2020154805A (ja) 2020-09-24

Family

ID=72514370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019053337A Pending JP2020154805A (ja) 2019-03-20 2019-03-20 マルチプロセッサシステム及び共有メモリの制御方法

Country Status (2)

Country Link
US (1) US11422937B2 (ja)
JP (1) JP2020154805A (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149703A (ja) 1992-11-09 1994-05-31 Mitsubishi Electric Corp メッセージ転送制御装置
US6170003B1 (en) * 1993-08-10 2001-01-02 International Computers Limited Apparatus and method for communicating messages between data processing nodes using remote reading of message queues
US5581705A (en) * 1993-12-13 1996-12-03 Cray Research, Inc. Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
US6988186B2 (en) * 2001-06-28 2006-01-17 International Business Machines Corporation Shared resource queue for simultaneous multithreading processing wherein entries allocated to different threads are capable of being interspersed among each other and a head pointer for one thread is capable of wrapping around its own tail in order to access a free entry
US20060236011A1 (en) * 2005-04-15 2006-10-19 Charles Narad Ring management
JP3926374B2 (ja) * 2005-08-15 2007-06-06 株式会社ソニー・コンピュータエンタテインメント バッファ管理方法およびバッファ管理装置
US9558048B2 (en) 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
KR102029806B1 (ko) * 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
US9146886B2 (en) * 2014-01-06 2015-09-29 International Business Machines Corporation Deterministic message processing in a direct memory access adapter
US10268399B2 (en) 2016-09-16 2019-04-23 Toshiba Memory Corporation Memory system using message monitoring and first and second namespaces
US11226852B2 (en) * 2016-11-25 2022-01-18 Genetec Inc. System for inter-process communication

Also Published As

Publication number Publication date
US11422937B2 (en) 2022-08-23
US20200301834A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
US6862608B2 (en) System and method for a distributed shared memory
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
JP6087532B2 (ja) 同時保留中データアクセスリクエストのためのデータハザード処理
US9678806B2 (en) Method and apparatus for distributing processing core workloads among processing cores
JP2009265963A (ja) 情報処理システム及びタスクの実行制御方法
US8966484B2 (en) Information processing apparatus, information processing method, and storage medium
US8745291B2 (en) Inter-processor communication apparatus and method
US10140020B2 (en) Data queue having an unlimited depth
US10303627B2 (en) Hardware queue manager with water marking
JP2006301894A (ja) マルチプロセッサシステム、及びマルチプロセッサシステムのメッセージ伝達方法
WO2016189294A1 (en) Single-chip multi-processor communication
JP2006309512A (ja) マルチプロセッサシステム、及びマルチプロセッサシステムのメッセージ伝達方法
CN114244790B (zh) PCIe设备与主机设备的通信方法、系统及设备
JP2011170848A (ja) トレースデータの優先度の選択
US20210311782A1 (en) Thread scheduling for multithreaded data processing environments
WO2016047104A1 (ja) データ転送制御システム、データ転送制御方法、及び、プログラム記憶媒体
CN111290983A (zh) Usb传输设备及传输方法
CN111225063B (zh) 用于静态分布式计算架构的数据交换系统及其方法
JP2020154805A (ja) マルチプロセッサシステム及び共有メモリの制御方法
US8504749B2 (en) Synchronization of multiple processor cores
US6832300B2 (en) Methods and apparatus for control of asynchronous cache
JP6531750B2 (ja) 送信装置
EP2503746A1 (en) Data transfer apparatus, data transfer method, and information processing apparatus
US11443783B2 (en) Semiconductor device
KR20140046625A (ko) 데이터 구조 및 이를 이용한 데이터 처리 방법