JP2010026729A - プロセス間通信装置、プロセス間通信方法 - Google Patents

プロセス間通信装置、プロセス間通信方法 Download PDF

Info

Publication number
JP2010026729A
JP2010026729A JP2008186457A JP2008186457A JP2010026729A JP 2010026729 A JP2010026729 A JP 2010026729A JP 2008186457 A JP2008186457 A JP 2008186457A JP 2008186457 A JP2008186457 A JP 2008186457A JP 2010026729 A JP2010026729 A JP 2010026729A
Authority
JP
Japan
Prior art keywords
thread
entry
memory
ipc
buffer
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
JP2008186457A
Other languages
English (en)
Inventor
Hideyuki Iwakiri
英之 岩切
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2008186457A priority Critical patent/JP2010026729A/ja
Publication of JP2010026729A publication Critical patent/JP2010026729A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】実行速度の低下や過分なバッファ容量の消費をもたらさずに、また、プロセス間通信のリソース管理に伴う負荷が低減されるプロセス間通信装置等を提供すること。
【解決手段】パーティションメモリ毎にメモリを管理するメモリ管理ユニットを備えたプロセス間通信装置であって、スレッドAが使用したデータを用いて、スレッドBを実行する際、スレッドAがデータを記憶するためのバッファメモリ80のエントリを、スレッドAに対応するパーティションメモリAのテーブルA11に登録して、該エントリの仮想アドレスをスレッドAに通知するページ確保手段21と、テーブルAからバッファメモリのエントリを削除し、スレッドBに対応するパーティションメモリBのテーブルB12に、バッファメモリのエントリを登録するエントリ付け替え手段22と、テーブルBに登録されたエントリの仮想アドレスをスレッドBに通知するアドレス通知手段23と、を有することを特徴とする。
【選択図】図4

Description

本発明は、プログラムから生成された複数のスレッドをCPUコアがそれぞれ実行するプロセス間通信装置等に関し、特に、スレッド間が通信することができるプロセス間通信装置及びプロセス間通信方法に関する。
実行時間の保証が求められるアプリケーションは、予め定められた実行順に従って処理される逐次実行より、複数の処理が並列に実行できるように設計される。この処理の処理単位はスレッド、タスク又はプロセス等(以下、単にスレッドという)と呼ばれ、リアルタイムOS等のOSが実行の同期、共有リソースに対する排他制御、プロセス間通信等を提供することで、複数のタスクが並行に処理されている。
プロセス間通信として、共有メモリ、メッセージキュー及びパイプ等(以下、単にIPC(Inter Process Communication)という)通信が知られている(例えば、特許文献1参照。)。特許文献1には、一方のスレッドの実行結果が保存された実行結果を他方のスレッドを実行するスレッド実行部のバッファに転送することで、スレッド間で実行結果を共用するマルチスレッド実行方法が記載されている。
また、このようなOSが提供するIPC通信を利用せずにIPC通信する技術が提案されている(例えば、特許文献2参照。)。特許文献2には、メモリ上に、スレッドが直接マッピング可能な直接マップ領域を獲得し、そのスレッドが指定する直接マップ領域内の領域を示す物理アドレスによって、該プロセスの仮想メモリ領域から直接マップ領域に直接マップすることができるメモリマップ方法が開示されている。仮想メモリから物理メモリに直接マッピングできるので、スレッド間で直接マップ領域を共有することができる。
ところで、スレッド間で共用したいデータを除けば、スレッド間で制約なしにメモリにアクセスすることは好ましくない。このため、計算機には、スレッドが要求するメモリアクセスを処理するメモリ管理ユニットが搭載されており、メモリ管理ユニットが仮想アドレスから物理アドレスへの変換、メモリ保護等を実現している。
メモリ管理ユニットでは例えばメモリをページ単位に分割しページ単位毎に、更新禁止など属性を設定するなどして、複数のタスクによる同じページへのアクセスを制限している(例えば、特許文献3参照。)。特許文献3には、タスク毎にテキストセグメント、データセグメントのアドレス空間を割り当てることで、メモリ管理ユニットによるアクセス保護を実現するタスク管理装置が開示されている。
特開2003−30050号公報 特開2003−337714号公報 特開平10−289158号公報
しかしながら、特許文献1に記載されたコピー方式のIPCでは、OSのマイクロカーネル(汎用性の高い機能だけを含むOSの中核部分)がコピーを実行するため、カーネル処理時間がスレッドの実行速度に影響を及ぼすという問題がある。また、コピー方式ではコピー元とコピー先に同じ容量のバッファが必要になるため、計算上、通信データ量の2倍のバッファ容量が必要になるという問題がある。
また、特許文献2記載のような共有メモリ方式の場合、プロセス間通信にマイクロカーネルは関与せず、また、バッファ容量は通信データ量と同程度であるが、別途、イベント通知機能などを併用したリソース管理を行わないと、送り元と送り先でデータの不一致が発生するおそれがあるという問題がある。
本発明は、上記課題に鑑み、実行速度の低下や過分なバッファ容量の消費をもたらさずに、また、プロセス間通信のリソース管理に伴う負荷が低減されるプロセス間通信装置及びプロセス間通信方法を提供することを目的とする。
上記課題に鑑み、本発明は、メモリの1ページ単位で物理アドレスと仮想アドレスとを対応づけるエントリを、プログラムから生成された複数のスレッドに対応するパーティションメモリ毎のテーブルに登録して管理する、プロセス間通信装置であって、スレッドAが使用したデータを用いて、スレッドBを実行する際、スレッドAがデータを記憶するためのバッファメモリのエントリを、スレッドAに対応するパーティションメモリAのテーブルAに登録して、該エントリの仮想アドレスをスレッドAに通知するページ確保手段と、テーブルAからバッファメモリのエントリを削除し、スレッドBに対応するパーティションメモリBのテーブルBに、バッファメモリの前記エントリを登録するエントリ付け替え手段と、テーブルBに登録されたエントリの仮想アドレスをスレッドBに通知するアドレス通知手段と、を有することを特徴とする。
エントリを付け替えバッファメモリのデータをコピーすることなくIPC通信するので、実行速度の低下することなくまた消費するバッファ容量も1ページ分に限定できる。また、共用メモリにデータを格納したわけでないので、イベント通知などのリソース管理も不要である。
実行速度の低下や過分なバッファ容量の消費をもたらさずに、また、プロセス間通信のリソース管理に伴う負荷が低減されるプロセス間通信装置及びプロセス間通信方法を提供することができる。
以下、本発明を実行するための最良の形態について図面を参照しながら説明する。
図1は、本実施形態のプロセス間通信装置100によるプロセス間通信方法の概略を説明する図の一例である。プロセス間通信装置100は、メモリ管理ユニット(以下、MMU(Memory Management Unit)という)50により仮想メモリと物理メモリ60のマッピングを行う。MMU50は、各スレッドが出力する仮想メモリ空間のアドレスである仮想アドレスを、TLB(Translation Lookaside Buffer)70を参照して物理メモリ60の物理アドレスに変換する。各スレッドは物理メモリ60の構成を意識することなく、所望のデータにアクセスすることができる。
図のパーティションAはスレッドAに対応して確保されたメモリ領域であり、パーティションBはスレッドBに対応して確保されたメモリ領域である。各パーティションは、各スレッドの起動時にOS20が割り当て、一方のスレッドAが他方のスレッドBのパーティションにアクセスできないよう、MMU50はパーティション毎に物理メモリ60を管理する。
MMU50はスレッド毎(パーティション毎)にメモリ管理するので、スレッドAが物理メモリ60へのアクセスを要求した場合、MMU50はパーティションA用TLB11を参照し、スレッドBが物理メモリ60へのアクセスを要求した場合、パーティションB用TLB12を参照する。
本実施形態では、MMU50のこの特徴を利用し、IPC(Inter Process Communication)通信の際にIPC用バッファ80を確保し、IPC用バッファ80を用いてスレッド間でデータを送受信する。例えばスレッドAがスレッドBにデータを送信する場合、スレッドAがIPC用バッファ80を確保すると、MMU50が仮想メモリと物理メモリ60をマッピングするためのIPC用エントリをパーティションA用TLB11に登録する。
スレッドAが送信用のデータをIPC用バッファ80に格納した後、IPC用エントリをパーティションBのパーティションB用TLB12に付け替えるようMMU50に要求すると、MMU50はIPC用エントリを付け替える。これにより、MMU50がパーティションB用TLB12を参照することで、スレッドBはIPC用バッファ80にアクセスでき、スレッドAからデータを受け取ることができる。
スレッドBがデータを受け取るまでの間、スレッドAが送信用のデータをIPC用バッファ80に格納したのみでデータのコピーは行われていない。また、スレッドAは共用メモリにデータを格納したわけでないので、イベント通知などのリソース管理も不要である。すなわち、通信コストを抑制しながらデータの整合性を確保してIPC通信することができる。また、送信するデータが多い場合には複数のページのIPC用エントリを登録することもできる。
図2は、プロセス間通信装置100の概略構成図の一例を示す。MMU50はCPUコア13と一体に構成されることが多いが、図では別に示した。また、図ではCPUコア13は1つであるが、CPUコア13は単数でもよく複数(マルチコア)でもよい。物理メモリ60は、キャッシュメモリを含んだ主記憶メモリであり、例えばDRAMやSRAM等の高速メモリで構成される。
CPUコア13は、仮想アドレスとスレッドを識別するスレッドIDをMMU50に出力する。仮想アドレスは例えばNビット(例えば36ビット)であり、このうち上位aビット(例えば、24ビット)はMMU50に供給され、下位bビット(例えば12ビット)はページ内オフセットとしてアドレス変換の前後で変化しない。
MMU50は、CPUコア13から出力された上位aビットに基づき、TLB70の仮想アドレスを参照し、比較照合され一致した物理アドレスを出力する。この物理アドレスは、CPUコア13によって供給される上位bビットのオフセットと合成され、物理メモリ60にアクセスするためのアクセスアドレスとなる。
MMU50は、パーティション毎に区分されたTLB70を有し、スレッドIDに応じて参照するTLB70を切り替える。TLB70は、高速なメモリに展開された例えば連想メモリとして実装される。
図3は、TLB70を模式的に説明する図の一例を示す。TLB70は、パーティションA用TLB11,パーティションB用TLB12等、パーティション毎に用意され、パーティション毎に仮想アドレスと物理アドレスを対応づけて記憶している。TLB70はページ単位毎にメモリ管理するので、図3の1エントリが1ページ(例えば、4kバイト)分のメモリのマッピング情報となる。
TLB70は、参照の局所性を利用して参照頻度の高いエントリ(物理メモリ領域)のみMMU50に記憶しており、キャッシュミスが生じると無効ビットを立て、また、所定のロジック(例えば、FIFO、LUR)でエントリを置き換える。
図示するように本実施形態では、いずれかのエントリ(例えば、置き換えのためにその時、退避されたエントリ)に、IPCバッファの仮想アドレス(IPC用バッファ仮想アドレス)と物理アドレス(IPC用物理アドレス)を対応づけるIPC用エントリが登録される。
図4は、プロセス間通信装置100の機能ブロック図の一例を、図5は、パーティションA、BとTLB70の遷移を模式的に示す図の一例である。なお、後述するようにMMU50はOS20(マイクロカーネル)を介して取り扱われるので、図5ではOS20とTLB70を一体に示した。
プロセス間通信装置100は、複数のスレッドA、Bが提供する機能と、OS20がMMU50を制御するために提供する機能と、を有する。図4ではスレッドAとBが提供する機能ブロックをそれぞれ示したが、スレッドA及びスレッドBは共通の機能ブロックを備える。
MMU50を制御するのはOS20のうちでもマイクロカーネルの部分であるので、スレッドA、BがOS20に処理を要求する際にはシステムコールを利用する。図4には、システムコールのいくつかの模擬コードを示したが、かかるシステムコードを除けばOS20がMMU50の制御のために本来備える機能を利用できるので、IPC通信のためにOS20が新たに備える機能にかかるコストを最小限に抑制できる。また、スレッドA、Bが備える機能ブロックは、スレッドA、Bの実体であるオブジェクトコードに含まれる。
まず、スレッドAの機能ブロックについて説明する。IPC用バッファ確保要求部31は、IPC用バッファ80を用いてプロセス間通信する際、OS20にIPCメモリ用バッファを確保するよう要求する。このシステムコール用のAPIは例えば「Ipc_aloc(buf)」である。なお、システムコールの際には、OS20にスレッドAのスレッドIDが通知される。
OS20が物理メモリ60にIPC用バッファ80を確保すると、スレッドAのデータ格納部32はIPC用バッファ仮想アドレスによりIPC用バッファ80を指定して、スレッドBに送信したいデータを格納する。
データを格納するとデータ送信要求部33は、OS20にデータを送信するよう要求する。このシステムコール用のAPIは例えば「Ipc_send(DST、buf)」であり、「DST」に送信先のスレッドBのスレッドIDが格納され、「buf」にプロセス間通信用に確保したIPC用バッファ80のIDが格納される。
続いて、OS20の機能ブロックについて説明する。OS20のページ確保部21は、システムコール「Ipc_aloc(buf)」により呼び出されると割込みを発生させ、MMC50に物理メモリ60の1ページを確保させる。MMU50はパーティションA用TLB11の適当なエントリに、確保した物理メモリ60の物理アドレスと仮想アドレスを登録する。この物理アドレスがIPC用バッファ物理アドレスとなり、仮想アドレスがIPC用仮想アドレスとなる。ページ確保部21はMMU50から、IPC用バッファ仮想アドレスを取得し、IPC用バッファ確保要求部31に返す。
図5(a)に示すように、パーティションA用TLB11にはIPC用バッファ80のIPC用エントリが登録されるので、パーティションAはIPC用バッファ80が装着された状態と同等になり、スレッドAがIPC用バッファ80にアクセスすることができるようになる。なお、物理メモリ60内ではパーティションAとIPC用バッファ80は隣接してない場合が多い。
また、スレッドAは複数のIPC用バッファ80の確保を要求することができる。この場合、「Ipc_aloc(buf)」の「buf」により複数のIPC用バッファ80を識別する。この複数のIPC用バッファ80は、物理メモリ60の1ページごとに独立に取り扱うことができるので、全てのIPC用バッファ80のデータを同一のスレッドBに送信してもよいし、それぞれを異なるスレッドに送信してもよい。
OS20のエントリ付け替え部22は、システムコール「Ipc_send(DST、buf)」に呼び出されると割込みを発生させ、パーティションA用TLB11のIPC用エントリを、スレッドBが使用するパーティションB用TLB12に付け替える。したがって、IPC用バッファ仮想アドレスとIPC用バッファ物理アドレスには変更がない。以降は、アドレス通知部23がパーティションB用TLB12を参照することで、スレッドBはIPC用バッファ80の仮想アドレスを取得することができる。
図5(b)に示すように、パーティションB用TLB12にはIPC用エントリが登録され、パーティションBはIPC用バッファ80が装着された状態と同等になるので、スレッドBがIPC用バッファ80にアクセスすることができるようになる。なお、物理メモリ60内ではパーティションBとIPC用バッファ80は隣接してない場合が多い。
OS20のアドレス通知部23は、スレッドBが使用するパーティションB用TLB12を参照し、IPC用バッファ80の仮想アドレスであるIPC用バッファ仮想アドレスをスレッドBに返す。
OS20のページ開放部24は、次述するシステムコール「Buf=Ipc_recv(SRC)」に呼び出されると割込みを発生させ、パーティションB用TLB12からIPC用エントリを削除する。これにより、IPC用バッファ80が物理メモリ60から解放されるので、IPC通信が終了した後は物理メモリ60を占有することもない。
続いて、スレッドBの機能ブロックについて説明する。スレッドBが、スレッドAが送信したデータを必要とした場合、スレッドBのIPC用バッファアドレス要求部34は、OS20にIPC用バッファ80の仮想アドレスを要求する。このシステムコール用のAPIは例えば「Buf=Ipc_recv(SRC)」であり、「SRC」には送信元であるスレッドAのスレッドIDが、「Buf」にはIPCバッファ80のIPC用バッファ仮想アドレスが格納されている。
これにより、スレッドBのデータ読み込み部35はIPC用バッファ仮想アドレスによりIPC用バッファ80を指定して、スレッドAから受け取りたいデータを物理メモリ60から読み出すことができる。
データを読み出すとスレッドBのIPC用バッファ開放要求部36は、OS20にIPC用バッファ80を開放するよう要求する。このシステムコール用のAPIは例えば「Ipc_free(buf)」であり、「buf」がプロセス間通信用に確保したIPC用バッファ80であることを示す。
以上の構成に基づき、プロセス間通信装置100がプロセス間通信する手順を図6のフローチャート図に基づき説明する。まず、IPC用バッファ確保要求部31は、OS20のマイクロカーネルにシステムコール(IPC_aloc(buf))を発行することで、IPC用バッファ80を確保するよう要求する(S10)。
OS20のページ確保部21は、物理メモリ60にIPC用バッファ80を確保し、そのIPC用バッファ仮想アドレスをスレッドAに返し(S20)、スレッドAのIPC用バッファ確保要求部31はそれを取得する(S30)。
スレッドAのデータ格納部32は、IPC用バッファ仮想アドレスで指定されるIPC用バッファ80にスレッドBに送信するためのデータを格納する(S40)。そして、データ送信要求部33は、IPC用バッファ80に格納したデータをスレッドBに送信するようOS20に要求する(S50)。
OS20のエントリ付け替え部22は、パーティションA用TLB11からIPC用バッファ80に相当する物理メモリ60のIPC用エントリを取り出し、パーティションB用TLB12に付け替える(S60)。
そして、スレッドBがスレッドAから送信されたデータを必要とすると、スレッドBのIPC用バッファアドレス要求部34はOS20に、IPC用バッファ80の仮想アドレスを要求するので(S70)、OS20のアドレス通知部23はIPC用バッファ仮想アドレスをスレッドBに返す(S80)。
スレッドBのデータ読み込み部35は、IPC用バッファ仮想アドレスで指定されるIPC用バッファ80からスレッドAが送信したデータを読み出す(S90)。読み出しによりIPC用バッファ80が不要になると、IPC用バッファ開放要求部36はOS20に、IPC用バッファ80を開放するよう要求する(S100)。
OS20のページ開放部24は、パーティションB用TLB12からIPC用エントリを削除する(S110)。
以上説明したように、MMU50のメモリ管理の仕組みを利用して、データをコピーすることなくスレッド間でIPC通信することができる。コピーすることがないので、リソース管理することなく送信元と送信先でデータの整合性をとることができる。
プロセス間通信装置によるプロセス間通信方法の概略を説明する図の一例である。 プロセス間通信装置の概略構成図の一例である。 TLBを模式的に説明する図の一例である。 プロセス間通信装置の機能ブロック図の一例である。 パーティションA、BとTLBの遷移を模式的に示す図の一例である。 プロセス間通信装置がプロセス間通信する手順を示すフローチャート図の一例である。
符号の説明
11 パーティションA用TLB
12 パーティションB用TLB
13 CPUコア
20 OS
50 MMU
60 物理メモリ
70 TLB
100 プロセス間通信装置

Claims (5)

  1. メモリの1ページ単位で物理アドレスと仮想アドレスとを対応づけるエントリを、プログラムから生成された複数のスレッドに対応するパーティションメモリ毎のテーブルに登録して管理する、プロセス間通信装置であって、
    スレッドAが使用したデータを用いて、スレッドBを実行する際、
    スレッドAが前記データを記憶するためのバッファメモリの前記エントリを、スレッドAに対応するパーティションメモリAのテーブルAに登録して、該エントリの仮想アドレスをスレッドAに通知するページ確保手段と、
    テーブルAから前記バッファメモリの前記エントリを削除し、スレッドBに対応するパーティションメモリBのテーブルBに、前記バッファメモリの前記エントリを登録するエントリ付け替え手段と、
    テーブルBに登録された前記エントリの仮想アドレスをスレッドBに通知するアドレス通知手段と、
    を有することを特徴とするプロセス間通信装置。
  2. スレッドAが前記バッファメモリに前記データを格納してから、前記データを用いてスレッドBを実行するまでの間、前記データは前記バッファメモリに記憶された状態を維持する、
    ことを特徴とする請求項1記載のプロセス間通信装置。
  3. スレッドBからの要求に応じて、テーブルBから前記バッファメモリの前記エントリを削除するページ開放手段、を有する、
    ことを特徴とする請求項1又は2記載のプロセス間通信装置。
  4. スレッドA及びスレッドBは、システムコールによりスレッドAが使用したデータをスレッドBに送信する、
    ことを特徴とする請求項1〜3いずれか1項記載のプロセス間通信装置。
  5. メモリの1ページ単位で物理アドレスと仮想アドレスとを対応づけるエントリを、プログラムから生成された複数のスレッドに対応するパーティションメモリ毎のテーブルに登録して管理する、計算機のプロセス間通信方法であって、
    スレッドAが使用したデータを用いて、スレッドBを実行する際、
    ページ確保手段が、スレッドAが前記データを記憶するためのバッファメモリの前記エントリを、スレッドAに対応するパーティションメモリAのテーブルAに登録して、該エントリの仮想アドレスをスレッドAに通知するステップと、
    エントリ付け替え手段が、テーブルAから前記バッファメモリの前記エントリを削除し、スレッドBに対応するパーティションメモリBのテーブルBに、前記バッファメモリの前記エントリを登録するステップと、
    アドレス通知手段が、テーブルBに登録された前記エントリの仮想アドレスをスレッドBに通知するステップと、
    を有することを特徴とするプロセス間通信方法。
JP2008186457A 2008-07-17 2008-07-17 プロセス間通信装置、プロセス間通信方法 Pending JP2010026729A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008186457A JP2010026729A (ja) 2008-07-17 2008-07-17 プロセス間通信装置、プロセス間通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008186457A JP2010026729A (ja) 2008-07-17 2008-07-17 プロセス間通信装置、プロセス間通信方法

Publications (1)

Publication Number Publication Date
JP2010026729A true JP2010026729A (ja) 2010-02-04

Family

ID=41732515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008186457A Pending JP2010026729A (ja) 2008-07-17 2008-07-17 プロセス間通信装置、プロセス間通信方法

Country Status (1)

Country Link
JP (1) JP2010026729A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2363904A2 (en) 2010-03-02 2011-09-07 Ricoh Company, Limited Organic semiconductor element and organic electrode

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2363904A2 (en) 2010-03-02 2011-09-07 Ricoh Company, Limited Organic semiconductor element and organic electrode

Similar Documents

Publication Publication Date Title
TWI397813B (zh) 用於虛擬化交易式記憶體的總體溢位之裝置、方法與系統
JP4896376B2 (ja) コプロセッサの性能を強化するシステムおよび方法
JP4979880B2 (ja) グラフィックス処理ユニットのマルチスレッド式カーネル
CN110892381B (zh) 用于在数据处理系统中进行快速上下文克隆的方法和装置
JP6006230B2 (ja) 組み合わせたcpu/gpuアーキテクチャシステムにおけるデバイスの発見およびトポロジーのレポーティング
US8417915B2 (en) Alias management within a virtually indexed and physically tagged cache memory
US10133677B2 (en) Opportunistic migration of memory pages in a unified virtual memory system
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
US20170075818A1 (en) Memory management method and device
US9098414B2 (en) Multi-core processor system, computer product, and control method
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
JP5485055B2 (ja) 共有メモリシステム及びその制御方法
US20070150665A1 (en) Propagating data using mirrored lock caches
US8949569B2 (en) Enhanced direct memory access
US20130227219A1 (en) Processor, information processing apparatus, and arithmetic method
US20090282198A1 (en) Systems and methods for optimizing buffer sharing between cache-incoherent cores
WO2009122694A1 (ja) キャッシュメモリ装置、キャッシュメモリシステム、プロセッサシステム
US20070016730A1 (en) Cache consistency in a multiprocessor system with shared memory
KR101695845B1 (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
KR20070084441A (ko) 로컬 메모리 데이터의 가간섭성 캐싱
JP2010026729A (ja) プロセス間通信装置、プロセス間通信方法
JP2001134486A (ja) マイクロプロセッサおよび記憶装置
JP2010061220A (ja) データ転送装置、データ転送方法およびプロセッサ
JP2004326175A (ja) プロセッサ、キャッシュシステム及びキャッシュメモリ
US9575898B2 (en) Implementing coherency with reflective memory