JP2009110063A - 記憶装置、情報処理装置、データアクセス方法、プログラム - Google Patents

記憶装置、情報処理装置、データアクセス方法、プログラム Download PDF

Info

Publication number
JP2009110063A
JP2009110063A JP2007278835A JP2007278835A JP2009110063A JP 2009110063 A JP2009110063 A JP 2009110063A JP 2007278835 A JP2007278835 A JP 2007278835A JP 2007278835 A JP2007278835 A JP 2007278835A JP 2009110063 A JP2009110063 A JP 2009110063A
Authority
JP
Japan
Prior art keywords
pointer
block
data
shared memory
blocks
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
JP2007278835A
Other languages
English (en)
Inventor
Takeshi Hoshina
健 保科
Naoki Isokane
直樹 礒兼
Akira Takeo
章 竹尾
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 JP2007278835A priority Critical patent/JP2009110063A/ja
Publication of JP2009110063A publication Critical patent/JP2009110063A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】複数のシステムでデータを共用する共用メモリにおいて、更新処理と参照処理の待機による遅延をさらに低減した記憶装置等を提供すること。
【解決手段】共有メモリ34に記憶されたデータを操作する記憶装置50であって、複数のブロックに分割されブロック毎にデータを記憶する共有メモリ34と、複数のブロックの状態を個別に示すポインタ35と、ポインタ35を排他する排他制御手段40と、排他制御手段40がポインタを排他している間、ポインタ35を操作してブロックの状態を制御するポインタ制御手段42、44と、共有メモリ34を排他することなく、状態に従いブロックに記憶されたデータを更新又は参照するアクセス手段43、45と、を有することを特徴とする。
【選択図】図3

Description

本発明は、共有メモリに記憶されたデータにアクセスする記憶装置、情報処理装置、データアクセス方法及びプログラムに関する。
複数のシステムが並行して独立に実行する情報処理システムでは、一方のシステム(以下、更新システムという)が次々と更新するデータを、他のシステム(以下、参照システムという)が参照する処理が発生することがある。更新システムと参照システムは共通に利用するデータを共有メモリにおいてそれぞれ非同期なタイミングでデータにアクセス(例えば、更新や参照)するため、データの整合性を確保する共有メモリの排他制御が用いられる。
排他制御としてはセマフォやミューテックスが知られているが、これらは共有メモリが使用中であることを示す変数がゼロでなければ、更新システム又は参照システムが共有メモリの使用を許可されるものであり、更新システム又は参照システムいずれかのシステムにのみ共有メモリへのアクセスを許可する。しかしながら、セマフォ等では更新システムがデータを更新している間、参照システムが待機状態になり、参照システムがデータを参照している間、更新システムが待機状態となるため、処理効率が低下し特に所定時間内に処理の完了が要求されるリアルタイムシステムには実装が困難である。
また、排他制御の一形態として共有メモリをブロック単位で読み書き可能にした共有メモリシステムが提案されている(例えば、特許文献1参照。)。
図8は、特許文献1に記載された共有メモリのブロック図を、図9(a)(b)は更新処理と参照処理それぞれの手順を示すフローチャート図である。図8に示すように、更新システム101のページ(共有メモリのデータに相当)は、参照システム102のリモート領域にコピーされてから参照される。
また、図9(a)に示すようにコピーされたページを更新システム101が更新する場合、更新システム101は参照システム102に更新するページの無効化(パージ)を要求し、書き込み権を獲得した後、更新を開始する。これにより参照システム102が更新前の古い情報を参照することを防止する。また、図9(b)に示すように参照システム102がページのコピーを更新システム101に要求する場合、参照システム102は更新システム101から更新するページの更新権を剥奪した後、参照システム102はページを受信し参照処理を開始する。ページが更新されなければ、参照システム102はコピーされた当該ページを排他されることなく参照することができる。
特開平11−39208号公報
しかしながら、特許文献1記載の共有メモリシステムでは、ページの更新頻度が比較的少なければ更新が完了するまで参照システム102が待機しても大きな遅延にならないが、共有メモリのデータが頻繁に更新される場合、その間、参照システム102はデータを参照できず待機しなければならない。また、共有メモリに、相互に関連する複数のデータが記憶されることがあるが、関連する複数のデータの一部だけが更新された状態で、参照システム102がデータを更新すると参照システム102の処理結果が不正となってしまうため、参照システム102は関連のある全てのデータが更新されるまで待機しなければならない。したがって、図9(a)を例にすれば、参照システム102にパージ要求があってから更新システム101が更新処理を完了するまでの待機時間T1が長時間に及び、大幅な処理の遅延をもたらすという問題がある。
また、特許文献1記載の共有メモリシステムでは、関連のある複数のデータが更新された時点で参照システム102にコピーしておくことができるが、更新の頻度が多いとコピーの頻度も増大することとなるため、コピー処理のための処理時間の増加を回避できないという問題がある。
本発明は、上記課題に鑑み、複数のシステムでデータを共用する共用メモリにおいて、更新処理と参照処理の待機による遅延をさらに低減した記憶装置、情報処理装置、データアクセス方法及びプログラムを提供することを目的とする。
上記課題に鑑み、本発明は、共有メモリに記憶されたデータを操作する記憶装置であって、複数のブロックに分割されブロック毎にデータを記憶する共有メモリと、複数のブロックの状態を個別に示すポインタと、ポインタを排他する排他制御手段と、排他制御手段が前記ポインタを排他している間、ポインタを操作してブロックの状態を切り換えるポインタ制御手段と、共有メモリを排他することなく、状態に従いブロックに記憶されたデータを更新又は参照するアクセス手段と、を有することを特徴とする。
本発明によれば、共有メモリのブロックの状態を個別にポインタで切り換えることができるので、データを他にコピーすることなく、更新と参照を繰り返すことができる。また、ポインタのみを排他するので、排他による更新処理と参照処理の待機時間を最小限に抑制できる。
また、本発明の一形態において、アクセス手段は、ブロックに記憶されたデータを更新する更新手段と、ブロックに記憶されたデータを参照する参照手段と、を有し、更新手段が、複数のブロックのいずれかのブロックAに記憶されたデータを更新している間、参照手段は、ブロックAとは異なる、複数のブロックのいずれかのブロックBに記憶されたデータを参照する、ことを特徴とする。
本発明によれば、更新手段がデータを更新している間に、参照手段がデータを参照することができる。
また、本発明の一形態において、ポインタは複数の小ポインタを有し、小ポインタのそれぞれのアドレスは、ブロックの状態に対応づけて予め定められており、ポインタ制御手段は、第1小ポインタに記憶されていた、共有メモリの所定のブロックCのアドレスを、第1小ポインタと異なる第2小ポインタに記憶させ、ブロックCの状態を切り換える、ことを特徴とする。
本発明によれば、アドレスで指定された小ポインタに、ブロックのアドレスを記憶させることで、ブロックの状態を切り換えることができる。
また、本発明の一形態において、複数の小ポインタのいずれか1つは、ブロックが最も最近に更新されたデータを記憶している状態であることを示す最新ポインタであり、複数の小ポインタのいずれか1つは、ブロックが更新中のデータを記憶している状態であることを示す更新中ポインタであり、又は、複数の小ポインタのいずれか1つは、ブロックが参照中のデータを記憶している状態であることを示す参照中ポインタである、ことを特徴とする。
本発明によれば、小ポインタを、最新ポインタ、更新中ポインタ又は参照中ポインタに対応させるので、小ポインタに記憶するブロックのアドレスにより、ブロックの状態を切り換えることができる。
また、本発明の一形態において、いずれかのブロックに記憶されたデータを更新する場合、ポインタ制御手段は、更新中ポインタにブロックのうち空き領域のブロックのアドレスを記憶させ、アクセス手段がブロックのデータを更新した後、ポインタ制御手段は、更新中ポインタに記憶されているブロックのアドレスを、最新ポインタに記憶させる、ことを特徴とする。
本発明によれば、空き領域のブロックのデータを更新し、そのブロックのアドレスを最新ポインタに記憶させるので、参照中のブロックがあってもデータを更新することができる。
また、本発明の一形態において、いずれかの前記ブロックに記憶されたデータを参照する場合、ポインタ制御手段は、最新ポインタに記憶されたブロックのアドレスを、参照中ポインタに記憶させ、アクセス手段が前記ブロックのデータを参照した後、ポインタ制御手段は、参照中ポインタに無効値を記憶させる、ことを特徴とする。
本発明によれば、最新ポインタのアドレスを参照中ポインタに記憶させるので、データをコピーすることなく更新中のブロックがあってもデータを参照することができる。
また、本発明の一形態において、ポインタは複数の参照中ポインタを有し、アクセス手段は、時間的に重複して、複数のブロックに記憶されたデータを参照する、ことを特徴とする。
本発明によれば、参照中ポインタを複数個用意することで、時間的に重複してデータを参照することができる。
複数のシステムでデータを共用する共用メモリにおいて、更新処理と参照処理の待機による遅延をさらに低減した記憶装置、情報処理装置、データアクセス方法及びプログラムを提供することができる。
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。本実施形態の記憶装置50は、更新されるデータを記憶する共用メモリを複数のブロックに分割し、ポインタにより各ブロックの状態を切り換えることで、更新中のブロックと参照中のブロックを別領域に用意することができる。ポインタの更新中は排他が必要だが、ポインタは共用メモリとは別の領域に記憶されているので、共用メモリの更新処理又は参照処理の間は排他が必要なく、待機時間を最小限に抑制できる。
図1は、記憶装置50を有する情報処理装置100の概略構成図の一例を示す。図1では、情報処理装置100がCAN(Controller Area Network)やLIN(Local Interconnect Network)等の車内LAN17を介してディスプレイ22、外部通信ユニット23及びセンサ24と接続され、車載システム200を構成している。
情報処理装置100は、プログラムを実行するマルチコアCPU11、プログラム実行の作業領域となりまた一時的にデータを記憶するRAM12、プログラムやファイルを記憶するハードディスクドライブ13、キーボード、タッチパネル、音声入力等で構成されユーザの操作を入力する入力装置14、ブートプログラムやBIOSを記憶するROM15、及び、車内LAN17を介して表示制御部21、外部通信ユニット23又はセンサ24と通信する通信装置16、がバスにより接続されたコンピュータである。
なお、ディスプレイ22は液晶や有機ELなどの表示部又は電子メータや警告ランプを備えたインストルメントパネルである。また、外部通信ユニット23は、携帯電話や無線ランの基地局に接続して、所定のプロトコルでサーバと通信する。また、センサ24は、車速センサや温度センサ等、制御系や情報系の処理で利用する車両状況や外部環境を検出する。
情報処理装置100は、車載装置を制御する制御系処理とデータを加工する情報系処理の2系統の情報処理を1台で実行する。情報処理装置100は、制御系処理で生成されたデータを情報系処理で利用するなどの処理形態を実現しているため、制御系と情報系でデータを共有している。
例えば、情報系処理がナビゲーションシステムによる自車位置の表示や経路案内の場合、情報処理装置100は制御系処理で生成されたデータに基づき、ディスプレイ22に自車位置及び経路と共に道路地図を表示し、情報系処理が外部のサーバと通信する処理の場合、情報処理装置100は制御系処理で生成されたデータを、外部通信ユニット23に送出し、外部通信ユニット23からサーバに送信する。
ところで、このように制御系処理と情報系処理とは要求される機能が異なることから、それぞれに好適なOS(Operating System)も異なる。このため、情報処理装置100はマルチコアCPU11を備え、複数のOSが独立して実行可能であることが好ましい。なお、単一のOSであってもデータを共有することは少なくないので、本実施形態の記憶装置50はCPUを1つのみ有する情報処理装置100にも好適に適用できる。
本実施形態の情報処理装置100は、制御系OS31と情報系OS32を実行するものとし、ハードディスクドライブ13に制御系OS31及び情報系OS32が記憶されていると共に、制御系処理と情報系処理との間でデータの共有を実現するOS連携プログラム33が記憶されている。
また、情報処理装置100は、制御系処理と情報処理系が共有する共有メモリ34及び後述するポインタメモリ35をRAM12に記憶している。なお、共有メモリ34やポインタメモリ35はマルチコアCPU11のキャッシュやハードディスクドライブ13などいかなる記憶手段に記憶してもよい。
図2は、記憶装置50の機能ブロック図を示す。本実施形態の記憶装置50は、1つのハードウェア(以下、HWという)上で2つの制御系OS31及び情報系OS32が独立かつ並行に動作する。HWは、マルチコアCPU11、RAM12及びハードディスクドライブ13等、制御系OS31や情報系OS32、OS連携プログラム33と協働するハードウェアである。
情報系処理は、データベース処理など処理時間の制約が緩やかであるため、情報系OS32は例えばWindows(登録商標)やUnix(登録商標)、Linux(登録商標)等である。これに対し、制御系処理は遅延が許されない場合が多いので、制御系OS31は例えばリアルタイムOSである。そして、制御系OS31上ではエンジンなどの車載装置を制御する制御系アプリケーション36が実行され、情報系OS32上ではナビゲーションシステムなどの情報系アプリケーション37が実行される。なお、図2では、OSの数は2つであるがこれは3以上でよく、また、情報系アプリケーション37が2以上実行されていてもよい。
制御系アプリケーション36は通信装置16により不定期に受信するデータや制御系処理の結果得られたデータを共用メモリ34に記憶させ、情報系アプリケーション37は自身の処理タイミングで共用メモリ34に記憶されたデータを参照することで、制御系アプリケーション36と情報系アプリケーション37がデータを共有する。以下、更新及び/又は参照を単にアクセスという場合がある。
しかしながら、制御系アプリケーション36が自由に共有メモリ34のデータを更新したり、情報系アプリケーション37が自由に共有メモリ34を参照するとデータの整合性を取ることが困難になるため、共有メモリ34へのアクセスはOS連携プログラム33を介して実現する。
OS連携プログラム33は、情報処理装置100のユーザが存在を意識することのない常駐型のソフトウェアで、制御系OS31と情報系OS32に対しHWを論理的に分割し割り当てる。OS連携プログラム33は、この論理分割を利用して複数の仮想的な計算機の実行環境を作り、それらの実行環境の上で制御系OS31と情報系OS32を動作させる。
OS連携プログラム33は、仮想的な実行環境の制御に必要なHWを制御系OS31及び情報系OS32から隠蔽している。制御系OS31及び情報系OS32は、例えば、システムコールを発行することで各種のサービスをOS連携プログラム33に要求することができる。
OS連携プログラム33は、制御系OS31と情報系OS32とを通信させるため、実行環境間の割り込み(イベント発生)やメッセージ送受信等を提供することができるが、本実施形態では共有メモリ34を介して制御系OS31と情報系OS32とが通信する。
制御系アプリケーション36と情報系アプリケーション37の共有メモリ34へのアクセス要求は、OS連携プログラム33により、共有メモリ34のアドレスを示すポインタに変換され、OS連携プログラム33はポインタで示された共有メモリ34に記憶されたデータにアクセスする。制御系アプリケーション36と情報系アプリケーション37がポインタの示す実際のアドレスを知っている必要はない。
図3は共有メモリ34及びポインタメモリ35のブロック図を示す。共有メモリ34は同一サイズの複数のブロックを有し、この複数のブロックはそれぞれ、最新の更新結果を記憶する最新共有メモリ、更新対象となる更新対象共有メモリ、参照対象となる参照対象共有メモリ1〜n、実用される情報が記憶されていない空き共有メモリの4つの状態を遷移する。共有メモリ34の各ブロックの4つ状態は、次述するようポインタメモリ35のどのポインタにブロックのアドレスが記憶されるかにより遷移する。ポインタメモリ35のいずれにもアドレスが記憶されないブロックは、空き共有メモリになる。
なお、参照対象共有メモリ1〜nの数は、時間的に並行にデータを参照する処理が何個あるかにより決定できるが、データの参照が同時に起こらないのであれば参照対象共有メモリ1〜nは1個あればよい。共有メモリ34は、データを参照する処理(例えば、ナビ、サーバ送信)の数+2(更新対象共有メモリと最新共有メモリ)だけ必要となる。なお、空き共有メモリは、参照対象共有メモリ又は最新共有メモリから遷移した状態であるので数に含まれない。
ポインタメモリ35は、最新ポインタ、更新中ポインタ、参照中ポインタ1〜nの各ポインタであり、アドレスP1〜P3nに設けられている。ポインタメモリ35では、アドレスP1〜P3nとポインタとしての機能が固定である。すなわち、アドレスP1のポインタは最新ポインタであり、アドレスP2のポインタは更新中ポインタであり、アドレスP31〜P3nのポインタは参照中ポインタ1〜nである。
最新ポインタは共有メモリ34のブロックのうち最も最近更新されたデータを記憶するブロックのアドレスを示す。更新中ポインタは共有メモリ34のブロックのうち更新中のブロックのアドレスを示す。参照中ポインタ1〜nは、共有メモリ34のブロックのうち参照中のブロックのアドレスを示す。なお、ポインタメモリ35が共有メモリ34のいずれのブロックのアドレスも示さない場合、無効値(例えば、FFFF)が記憶される。
したがって、ポインタメモリ35の各ポインタが、共有メモリ34のブロックのアドレス又は無効値を記憶することで、共有メモリ34の各ブロックは4つの状態に遷移する。
以上の構成によれば、本実施形態の記憶装置50は、ポインタメモリ35にアクセスする場合にのみポインタメモリ35の排他が必要で、共有メモリ34にアクセスする場合は共有メモリ34の排他が必要ないという特徴を有することができる。すなわち、制御系アプリケーション36が共有メモリ34のデータを更新している間、情報系アプリケーション37は共有メモリ34を参照でき、情報系アプリケーション37が共有メモリ34を参照している間、制御系アプリケーション36が共有メモリ34のデータを更新できるので、互いの待機時間を最小限に留めることができる。
更新処理時の共有メモリ34及びポインタメモリ35の状態の遷移について図4に基づき説明する。簡単のため、参照中ポインタ1〜nは参照中ポインタ1のみを、参照対象共有メモリ1〜nは参照対象共有メモリ1のみを示す。
更新処理は、OS連携プログラム33をマルチコアCPU11が実行して実現される、ポインタ排他手段40、空きメモリ検出手段41、更新処理ポインタ制御手段42及びデータ更新手段43が実行する。なお、空きメモリ検出手段41と更新処理ポインタ制御手段42がポインタメモリ35にアクセスする前に、ポインタ排他手段40がポインタメモリ35のみを排他するが、排他制御については後述する。
(I)の状態でOS連携プログラム33に更新要求があると、空きメモリ検出手段41は、最新共有メモリでもなく、かつ、参照対象共有メモリでもないブロックを、共有メモリ34のブロックから決定する。このブロックは、最新ポインタにも参照中ポインタにも示されていないブロックのアドレスから決定できる。決定されたブロックは空き共有メモリであり、図4ではアドレスS3が空き共有メモリとして検出される。
空き共有メモリが検出されると、更新処理ポインタ制御手段42は更新中ポインタにアドレスS3を記憶する。これにより、更新中ポインタは、共有メモリ34のアドレスS3が更新対象共有メモリであることを示すことになる(II)。
(II)の状態になると、データ更新手段43は更新対象共有メモリのデータを更新することができる。データ更新手段43は、更新中ポインタの示すアドレスのブロックである更新対象共有メモリのデータを更新する。
次いで、更新処理ポインタ制御手段42は更新中ポインタが記憶するアドレスS3を最新ポインタに記憶すると共に、更新中ポインタに無効値を記憶する。これにより、共有メモリ34のアドレスS3に記憶されたデータは最新共有メモリとなる(III)。なお、この結果、(II)の状態まで最新ポインタに記憶されていたアドレスS1はいずれのポインタからも指定されないブロックになるので、アドレスS1の最新共有メモリは空き共有メモリに遷移する。
このように、参照中ポインタがアドレスS2を示していても(情報系アプリケーション37が参照中であることを示す)、アドレスS3のデータを更新することができる。
次に、参照処理時の共有メモリ34及びポインタメモリ35の状態の遷移について図5に基づき説明する。参照処理は、OS連携プログラム33をマルチコアCPU11が実行して実現される、ポインタ排他手段40、参照処理ポインタ制御手段44及びデータ参照手段45が実行する。なお、参照処理ポインタ制御手段44はポインタメモリ35にアクセスする前に、ポインタ排他手段40がポインタメモリ35のみを排他するが、排他制御については後述する。
(IV)の状態でOS連携プログラム33に参照要求があると、参照処理ポインタ制御手段44は、最新ポインタが記憶するアドレスS3を参照中ポインタに記憶する。これにより、アドレスS3の最新共有メモリは参照対象共有メモリに遷移する(V)。
なお、最新ポインタはアドレスS3を示したままであるが、更新処理により最新ポインタに別のブロックのアドレスが記憶されると、次の参照処理は別のブロックを参照対象共有メモリ(参照対象共有メモリが複数の場合)にして、最新のデータを参照することができる。したがって、次々にデータが更新される場合、一つの参照処理によりデータが参照中であっても、次々データを更新でき、別の参照処理は最新のデータを次々に参照できる。
データ参照手段45は、参照中ポインタで示されるアドレスS3の参照対象共有メモリのデータを参照することができる。
データ参照が終了すると、参照処理ポインタ制御手段44は参照中ポインタに無効値を記憶する。これによりアドレスS3はいずれのポインタにも指定されなくなるので、共有メモリ34のアドレスS3は空き共有メモリとなる(VI)。
このように、更新中ポインタがアドレスS1を示していても(制御系アプリケーション36が更新中であることを示す)、アドレスS3のデータを参照することができる。
図6は、OS連携プログラム33が更新処理を実行する手順を示すフローチャート図である。図6のフローチャート図は、制御系アプリケーション36が更新要求するとスタートする。
まず、ポインタ排他手段40はポインタメモリ35を排他する(S10)。この排他は、例えばハードウェア的に実装した割り込み禁止であって、命令数が少なくて済み短時間に終了することができる。
ついで、更新処理ポインタ制御手段42は、最新共有メモリでも参照対象共有メモリでもない共有メモリ34のブロックのアドレスを更新中ポインタに記憶させる(S20)。そして、ポインタ排他手段40はポインタメモリ35の排他を解除する(S30)。
データ更新手段43は、更新中ポインタが示す更新対象共有メモリのデータを更新する(S40)。データの更新処理は、ポインタメモリ35の排他処理よりも時間がかかるが、本実施形態では排他が必要ないので、情報系アプリケーション37の待機時間は最小限となる。
ついで、ポインタ排他手段40はポインタメモリ35を排他し(S50)、更新処理ポインタ制御手段42は、更新中ポインタが記憶するブロックのアドレスを最新ポインタに記憶させ、また、更新中ポインタに無効値を記憶させる(S60)。これにより、最新ポインタが最新のデータが記憶された共有メモリ34のブロックのアドレスを示すことができる。そして、ポインタ排他手段40はポインタメモリ35の排他を解除する(S70)。
図7は、OS連携プログラム33が参照処理を実行する手順を示すフローチャート図である。図7のフローチャート図は、情報系アプリケーション37が参照要求するとスタートする。
ポインタ排他手段40はポインタメモリ35を排他する(S110)。排他方法は更新処理と同様である。ポインタメモリ35が排他されると、参照処理ポインタ制御手段44は最新ポインタが記憶するアドレスを参照中ポインタに記憶させる(S120)。そして、ポインタ排他手段40はポインタメモリ35の排他を解除する(S130)。
データ参照手段45は、参照中ポインタが示す参照対象共有メモリのデータを参照する(S140)。データの参照処理は、ポインタメモリ35の排他処理よりも時間がかかるが排他が必要ないので、制御系アプリケーション36の待機時間は最小限となる。また、参照のためにデータをコピーする必要もないので参照時間が増大することもない。
ついで、ポインタ排他手段40はポインタメモリ35を排他し(S150)、参照処理ポインタ制御手段44は、参照中ポインタに無効値を記憶させる(S160)。これにより、参照中ポインタが示していた共有メモリ34のアドレスを空き領域とすることができる。そして、ポインタ排他手段40はポインタメモリ35の排他を解除する(S170)。
以上説明したように、本実施形態の記憶装置50は、共有メモリ34を複数のブロックに区分し、ポインタメモリ35のポインタにより複数のブロックの状態を更新用や参照用に切り換えるので、更新処理の間に参照処理が待機する必要がなく、参照処理の間に更新処理が待機する必要がない。また、参照時にデータをコピーする必要もないので、コピー処理により処理時間が増大することもない。ポインタメモリ35の更新時にはポインタメモリ35の排他が必要になるが、ポインタメモリ35の排他は共有メモリ(データ)34の更新処理及び参照処理に比べて短時間なので、排他による遅延を回避できる。
記憶装置を有する情報処理装置の概略構成図の一例である。 記憶装置の機能ブロック図の一例である。 共有メモリ及びポインタメモリのブロック図の一例である。 更新処理時の共有メモリ及びポインタメモリの状態遷移図の一例である。 参照処理時の共有メモリ及びポインタメモリの状態遷移図の一例である。 OS連携プログラムが更新処理を実行する手順を示すフローチャート図である。 OS連携プログラムが参照処理を実行する手順を示すフローチャート図である。 従来の共有メモリのブロック図の一例である。 従来の更新処理と参照処理それぞれの手順を示すフローチャート図である。
符号の説明
31 制御系OS
32 情報系OS
33 OS連携プログラム
34 共有メモリ
35 ポインタメモリ
36 制御系アプリケーション
37 情報系アプリケーション
40 ポインタ排他手段
41 空きメモリ検出手段
42 更新処理ポインタ制御手段
43 データ更新手段
44 参照処理ポインタ制御手段
45 データ参照手段
50 記憶装置
100 情報処理装置
200 車載システム




Claims (9)

  1. 共有メモリに記憶されたデータにアクセスする記憶装置であって、
    複数のブロックに分割されブロック毎にデータを記憶する共有メモリと、
    複数の前記ブロックの状態を個別に示すポインタと、
    前記ポインタを排他する排他制御手段と、
    前記排他制御手段が前記ポインタを排他している間、前記ポインタを操作して前記ブロックの前記状態を切り換えるポインタ制御手段と、
    前記共有メモリを排他することなく、前記状態に従い前記ブロックに記憶されたデータを更新又は参照するアクセス手段と、
    を有することを特徴とする記憶装置。
  2. 前記アクセス手段は、前記ブロックに記憶されたデータを更新する更新手段と、前記ブロックに記憶されたデータを参照する参照手段と、を有し、
    前記更新手段が、複数の前記ブロックのいずれかのブロックAに記憶されたデータを更新している間、前記参照手段は、前記ブロックAとは異なる、複数の前記ブロックのいずれかのブロックBに記憶されたデータを参照する、
    ことを特徴とする請求項1記載の記憶装置。
  3. 前記ポインタが有する複数の小ポインタのそれぞれのアドレスは、前記ブロックの前記状態に対応づけて予め定められており、
    前記ポインタ制御手段は、第1小ポインタに記憶されていた、前記共有メモリの所定のブロックCのアドレスを、前記第1小ポインタと異なる第2小ポインタに記憶させ、前記ブロックCの前記状態を切り換える、
    ことを特徴とする請求項1又は2記載の記憶装置。
  4. 複数の前記小ポインタのいずれか1つは、前記ブロックが最も最近に更新されたデータを記憶している前記状態であることを示す最新ポインタであり、
    複数の前記小ポインタのいずれか1つは、前記ブロックが更新中のデータを記憶している前記状態であることを示す更新中ポインタであり、又は、
    複数の前記小ポインタのいずれか1つは、前記ブロックが参照中のデータを記憶している前記状態であることを示す参照中ポインタである、
    ことを特徴とする請求項3記載の記憶装置。
  5. いずれかの前記ブロックに記憶されたデータを更新する場合、
    前記ポインタ制御手段は、前記更新中ポインタに前記ブロックのうち空き領域のブロックのアドレスを記憶させ、
    前記アクセス手段が前記ブロックのデータを更新した後、
    前記ポインタ制御手段は、前記更新中ポインタに記憶されている前記ブロックのアドレスを、前記最新ポインタに記憶させる、
    ことを特徴とする請求項4記載の記憶装置。
  6. いずれかの前記ブロックに記憶されたデータを参照する場合、
    前記ポインタ制御手段は、前記最新ポインタに記憶された前記ブロックのアドレスを、前記参照中ポインタに記憶させ、
    前記アクセス手段が前記ブロックのデータを参照した後、
    前記ポインタ制御手段は、前記参照中ポインタに無効値を記憶させる、
    ことを特徴とする請求項4記載の記憶装置。
  7. 請求項1〜6いずれか1項記載の記憶装置を有する情報処理装置。
  8. 複数のブロックに分割されブロック毎にデータを記憶する共有メモリ、に記憶されたデータを操作するデータアクセス方法であって、
    排他制御手段が、複数の前記ブロックの状態を個別に示すポインタを排他するステップと、
    前記ポインタが排他されている間、ポインタ制御手段が、前記ポインタを操作して前記ブロックの前記状態を切り換えるステップと、
    アクセス手段が、前記共有メモリを排他することなく、前記状態に従い前記ブロックに記憶されたデータを更新又は参照するステップと、
    を有することを特徴とするデータアクセス方法。
  9. 複数のブロックに分割されブロック毎にデータを記憶する共有メモリ、に記憶されたデータを操作するプログラムであって、
    コンピュータを、
    複数の前記ブロックの状態を個別に示すポインタを排他する排他制御手段と、
    前記排他制御手段が前記ポインタを排他している間、前記ポインタを操作して前記ブロックの前記状態を切り換えるポインタ制御手段と、
    前記共有メモリを排他することなく、前記状態に従い前記ブロックに記憶されたデータを更新又は参照するアクセス手段と、
    として機能させることを特徴とするプログラム。






JP2007278835A 2007-10-26 2007-10-26 記憶装置、情報処理装置、データアクセス方法、プログラム Pending JP2009110063A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007278835A JP2009110063A (ja) 2007-10-26 2007-10-26 記憶装置、情報処理装置、データアクセス方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007278835A JP2009110063A (ja) 2007-10-26 2007-10-26 記憶装置、情報処理装置、データアクセス方法、プログラム

Publications (1)

Publication Number Publication Date
JP2009110063A true JP2009110063A (ja) 2009-05-21

Family

ID=40778527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007278835A Pending JP2009110063A (ja) 2007-10-26 2007-10-26 記憶装置、情報処理装置、データアクセス方法、プログラム

Country Status (1)

Country Link
JP (1) JP2009110063A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134293A (ja) * 2009-11-30 2011-07-07 Ntt Docomo Inc データ制御装置及びプログラム
WO2013125294A1 (ja) * 2012-02-23 2013-08-29 日立オートモティブシステムズ株式会社 車両用制御装置
JP2019101951A (ja) * 2017-12-07 2019-06-24 トヨタ自動車株式会社 情報処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113644A (ja) * 1986-10-30 1988-05-18 Fujitsu Ltd デ−タベ−スの排他制御方式
JPH02257250A (ja) * 1989-02-03 1990-10-18 Nec Corp プロセッサ間排他制御方式
WO2001099081A1 (fr) * 2000-06-20 2001-12-27 Hitachi, Ltd. Dispositif de commande de vehicule
JP2006277634A (ja) * 2005-03-30 2006-10-12 Nec Corp 排他制御方法と情報処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63113644A (ja) * 1986-10-30 1988-05-18 Fujitsu Ltd デ−タベ−スの排他制御方式
JPH02257250A (ja) * 1989-02-03 1990-10-18 Nec Corp プロセッサ間排他制御方式
WO2001099081A1 (fr) * 2000-06-20 2001-12-27 Hitachi, Ltd. Dispositif de commande de vehicule
JP2006277634A (ja) * 2005-03-30 2006-10-12 Nec Corp 排他制御方法と情報処理装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011134293A (ja) * 2009-11-30 2011-07-07 Ntt Docomo Inc データ制御装置及びプログラム
WO2013125294A1 (ja) * 2012-02-23 2013-08-29 日立オートモティブシステムズ株式会社 車両用制御装置
JP2013171547A (ja) * 2012-02-23 2013-09-02 Hitachi Automotive Systems Ltd 車両用制御装置
CN104094233A (zh) * 2012-02-23 2014-10-08 日立汽车系统株式会社 车辆用控制装置
US9547492B2 (en) 2012-02-23 2017-01-17 Hitachi Automotive Systems, Ltd. Arithmetic units accessing redundantly stored data in shared memory as part of a control device for a vehicle
CN104094233B (zh) * 2012-02-23 2018-12-07 日立汽车系统株式会社 车辆用控制装置
JP2019101951A (ja) * 2017-12-07 2019-06-24 トヨタ自動車株式会社 情報処理装置
CN110008138A (zh) * 2017-12-07 2019-07-12 丰田自动车株式会社 信息处理装置
US10846132B2 (en) 2017-12-07 2020-11-24 Toyota Jidosha Kabushiki Kaisha Information processing apparatus
CN110008138B (zh) * 2017-12-07 2023-07-21 丰田自动车株式会社 信息处理装置

Similar Documents

Publication Publication Date Title
JP3659062B2 (ja) 計算機システム
US6990560B2 (en) Task synchronization mechanism and method
JP4012517B2 (ja) 仮想計算機環境におけるロックの管理
US6286092B1 (en) Paged based memory address translation table update method and apparatus
TWI480803B (zh) 獨立作業系統間之共享檔案系統管理
JP4769484B2 (ja) 仮想計算機をマイグレーションするための方法およびシステム
JP5335743B2 (ja) タスクのスケジューリングを支援する装置
JP4896376B2 (ja) コプロセッサの性能を強化するシステムおよび方法
US20040064601A1 (en) Atomic memory migration apparatus and method
JP6391878B1 (ja) 仮想マシンシステム
EP1271327A2 (en) System protection map
US20180060103A1 (en) Guest code emulation by virtual machine function
US7500072B2 (en) Migrating data that is subject to access by input/output devices
CN101840390B (zh) 适用于多处理器系统的硬件同步电路结构及其实现方法
KR101693662B1 (ko) 하드웨어 컨텍스트 복구 흐름 동안에 프로그램가능한 소프트웨어 컨텍스트 상태 실행을 지원하기 위한 방법 및 장치
US20040117585A1 (en) Hybrid logical block virtualization system for a storage area network
JP5387776B2 (ja) 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
US11074668B2 (en) GPU based server in a distributed file system
US8458438B2 (en) System, method and computer program product for providing quiesce filtering for shared memory
WO2013101092A1 (en) Data control using last accessor information
KR100988395B1 (ko) 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체
JP2009110063A (ja) 記憶装置、情報処理装置、データアクセス方法、プログラム
US10210099B1 (en) System and method for low latency communication
US20120297149A1 (en) Method and device for multithread to access multiple copies
JP3146276B2 (ja) 共有メモリの更新及び参照管理方式並びに参照タイミング制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121127