JP4122968B2 - Common resource access method, common resource access method, and program - Google Patents

Common resource access method, common resource access method, and program Download PDF

Info

Publication number
JP4122968B2
JP4122968B2 JP2002374065A JP2002374065A JP4122968B2 JP 4122968 B2 JP4122968 B2 JP 4122968B2 JP 2002374065 A JP2002374065 A JP 2002374065A JP 2002374065 A JP2002374065 A JP 2002374065A JP 4122968 B2 JP4122968 B2 JP 4122968B2
Authority
JP
Japan
Prior art keywords
tag number
management information
common resource
dual port
flag
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.)
Expired - Fee Related
Application number
JP2002374065A
Other languages
Japanese (ja)
Other versions
JP2004206369A (en
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 JP2002374065A priority Critical patent/JP4122968B2/en
Publication of JP2004206369A publication Critical patent/JP2004206369A/en
Application granted granted Critical
Publication of JP4122968B2 publication Critical patent/JP4122968B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は複数のプロセッサに共通使用される共通メモリ上の共通資源へのアクセス方式、共通資源へのアクセス方法、及びプログラムに関する。
【0002】
【従来の技術】
マルチプロセッサが共通メモリを有し、共通メモリ内の共通資源にアクセスする場合、複数のプロセッサが同時に同じ共通資源を変更しない様に、一般的には共通資源毎にロックフラグを用いて排他的処理を行う。
【0003】
最初に共通資源にアクセスしたプロセッサ(例えば第一のプロセッサとする)はロックフラグを立てて、他のプロセッサがこの共通資源へアクセスするのを禁止する。ロックフラグを立てた第一のプロセッサは共通資源へのアクセスが終わるとロックフラグをクリアする。
【0004】
他のプロセッサが共通資源にアクセスしたときにロックフラグが立っていたら、共通資源にアクセスができないので、他のプロセッサはロックフラグがクリアされるまで待たなければならない。ロックフラグはいつクリアされるか分からないので、他のプロセッサは常にロックフラグをポーリングしなければならない。
【0005】
この様な複数のプロセッサがバスを介しメモリ上の共有データにアクセスするマルチプロセッサシステムの例として、一方のプロセッサがメモリの共有データをアクセスしている間に、他方のプロセッサからの上記共有データへのメモリアクセス要求の受付を拒絶する一方、他方のプロセッサからの上記共有データのアドレスと異なるアドレスへのメモリアクセス要求を受け付けるメモリアクセス制御回路を備えたマルチプロセッサシステムがある(例えば特許文献1参照。)。
【0006】
【特許文献1】
特開平5−210640号公報(第2頁第2行から第14、段落[0086])
【0007】
【発明が解決しようとする課題】
上記マルチプロセッサの例では、他方のプロセッサが排他制御されたデータアクセスを行うタスクやジョブを一時保留し、排他制御されてないデータにアクセスする様なタスクやジョブに切り替えることでマルチプロセッサシステムのスループット低下を低減するものである。
【0008】
従って、他方のプロセッサがリアルタイム処理を要求するジョブには適用出来ない。即ち、排他制御で待たされるジョブの処理時間は長くなるという問題がある。
【0009】
又、他方のプロセッサが対象の共有データへのアクセス要求の受付が許可されるタイミングを教えるものでなく、上記ポーリングを大幅に低減するものではない。
【0010】
一般的に、共通メモリは共通バスに接続されており、共通バスはバス調停が必要なこと、及び線路長が長いことによってアクセススピードが遅い。従って、複数のプロセッサが共用して使用する共通バスが輻輳し、システム全体の能力を低下させてしまうという問題もある。
【0011】
【課題を解決するための手段】
本発明の第1の共通資源へのアクセス方式は、2台のプロセッサが共通バスを通じ共通メモリ上の共通資源へアクセスする方式であって、各プロセッサがローカルバスを通じアクセス可能なデュアルポートメモリと、共通資源管理記憶とを含み、各プロセッサが使用する複数のユニークなタグ番号を、初期値や複数の所定値を除いて、又プロセッサ識別が出来る様に定義し、前記デュアルポートメモリ上にはこのタグ番号に対応したバッファを有し、前記共通資源管理記憶には、共通資源のロックフラグも兼ねた前記タグ番号、ロックフラグオフを示す前記初期値、或いはロックフラグオン且つリード中であることをプロセッサ別に示す前記複数の所定値を管理情報として共通資源毎に保持し、プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックし、初期値即ちロックフラグオフであれば、管理情報を前記タグ番号に更新後、共通資源への書込を行い、管理情報のタグ番号を初期化、即ちロックフラグオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値、即ちロックフラグオフかリード中であれば、管理情報を自分の所定値に更新し、共通資源からの読出を行い、管理情報が更新されてなければこれを初期化する手段と、前記チェックでタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする。
【0012】
本発明の第2の共通資源へのアクセス方式は、前記第1の共通資源へのアクセス方式に於いて、前記プロセッサが、共通資源への書込に際し、タグ番号を決め書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックし、初期値であれば、管理情報を前記タグ番号に更新し、共通資源への書込を行い、管理情報を確認し別のタグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから管理情報を初期化する手段と、前記チェックで、管理情報にタグ番号か何れかの所定値が設定されていれば即ちロックオンであれば、管理情報を前記書込データのデュアルポートメモリへの格納時のタグ番号に更新する手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値であれば、これを自分の所定値に更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、タグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから、それぞれ管理情報を初期化する手段と、前記チェックで管理情報にタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする。
【0013】
本発明の第3の共通資源へのアクセス方式は、2台のプロセッサが共通バスを通じ共通メモリ上の共通資源へアクセスする方式であって、各プロセッサがローカルバスを通じアクセス可能なデュアルポートメモリと、共通資源管理記憶とを含み、各プロセッサが使用する複数のユニークなタグ番号を定義し、前記デュアルポートメモリ上にはこのタグ番号に対応したバッファを有し、前記共通資源管理記憶には、ロックフラグとリード中フラグとプロセッサ番号とタグ番号を含む管理情報を共通資源毎に保持し、プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報のロックフラグをオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号を自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認しプロセッサ番号が更新されてなければロックフラグやリード中フラグをクリアする手段と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする。
【0014】
本発明の第4の共通資源へのアクセス方式は、前記第3の共通資源へのアクセス方式に於いて、前記プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報を確認しタグ番号が更新されていればデュアルポートメモリの対応バッファより書込データを取り出し共通資源への書込を行なってからロックフラグをオフする手段と、前記チェックでロックフラグがオンであれば管理情報のタグ番号を書込データのデュアルポートメモリへの格納時のタグ番号に更新しリード中フラグをオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号は自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、ロックフラグやリード中フラグをクリアし、リード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファより書込データを取り出し、共通資源に書込んでからロックフラグをオフする手段と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする。
【0015】
本発明の第5の共通資源へのアクセス方式は、前記第1、第2、第3、又は第4の共通資源へのアクセス方式に於いて、プロセッサが、次回用タグ番号を記憶する記憶域と、共通資源への書込発生時前記記憶域より読出したタグ番号をデュアルポートメモリへの格納時タグ番号とする手段と、書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手段を有し、自プロセッサに割り当てられたタグ番号を番号順に循環使用することを特徴とする。
【0016】
本発明の第6の共通資源へのアクセス方式は、前記第2、又は第4の共通資源へのアクセス方式に於いて、前記デュアルポートメモリ上にはタグ番号毎にその番号或いは有効性表示フラグを保持するタグエリアも有し、プロセッサが、次回用タグ番号を記憶する記憶域と、共通資源への書込発生時前記記憶域より読出したタグ番号の空きを前記タグエリアを参照し確認し、空きでなければ空き番号になるまでインクリメントや循環し前記記憶域を更新してからそれぞれ決定タグ番号とする手段と、デュアルポートメモリのタグ番号対応バッファへの書込データ格納を終えるとタグエリアの対応タグ番号を有効化し、デュアルポートメモリのタグ番号対応バッファの書込データを共通資源に格納し終えるとタグエリアの対応タグ番号を無効化する手段と、書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手段を有することを特徴とする。
【0017】
本発明の第7の共通資源へのアクセス方式は、前記第1乃至第6の何れかの共通資源へのアクセス方式に於いて、前記2台のプロセッサをN台のプロセッサとし、前記デュアルポートメモリをNポートメモリとすることを特徴とする。
【0018】
本発明の第1の共通資源へのアクセスプログラムは、2台のプロセッサが共通バスを通じアクセスする共通メモリ上の共通資源への書込に際し、タグ番号を決め、各プロセッサのローカルバスが接続されたデュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の共通資源の管理情報をチェックし、初期値即ちロックフラグオフであれば、管理情報を前記タグ番号に更新後、共通資源への書込を行い、管理情報のタグ番号を初期化即ちロックフラグオフする手順と、前記共通資源への読出に際し、アクセス対象の共通資源の管理情報をチェックし初期値か何れかの所定値、即ちロックフラグオフかリード中であれば、管理情報を自分の所定値に更新し、共通資源からの読出を行い、管理情報が更新されてなければこれを初期化する手順と、前記チェックでタグ番号がセットされていればそれが示す前記デュアルポートメモリのバッファよりデータを読出す手順とを有することを特徴とする。
【0019】
本発明の第2の共通資源へのアクセスプログラムは、前記第1の共通資源へのアクセスプログラムに於いて、前記共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の共通資源の管理情報をチェックし、初期値であれば、管理情報を前記タグ番号に更新し、共通資源への書込を行ない、管理情報を確認し別のタグ番号に更新されていればデュアルポートメモリのそのタグ番号に対応したバッファより書込データを取り出し共通資源への書込を行なってから管理情報を初期化する手順と、前記チェックで、管理情報がタグ番号か何れかの所定値即ちロックオンであれば、管理情報を前記書込データのデュアルポートメモリへの格納時のタグ番号に更新する手順と、前記共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値であれば、これを自分の所定値に更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、タグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから、それぞれ管理情報を初期化する手順と、前記チェックで管理情報にタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手順とを有することを特徴とする。
【0020】
本発明の第3の共通資源へのアクセスプログラムは、2台のプロセッサが共通バスを通じアクセスする共通メモリ上の共通資源への書込に際し、タグ番号を決め、各プロセッサのローカルバスが接続されたデュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報のロックフラグをオフする手順と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号を自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認しプロセッサ番号が更新されてなければロックフラグやリード中フラグをクリアする手順と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手順を有することを特徴とする。
【0021】
本発明の第4の共通資源へのアクセスプログラムは、前記第3の共通資源へのアクセスプログラムに於いて、前記共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報を確認しタグ番号が更新されていればデュアルポートメモリの対応バッファより書込データを取り出し共通資源への書込を行なってからロックフラグをオフする手順と、前記チェックでロックフラグがオンであれば管理情報のタグ番号を書込データのデュアルポートメモリへの格納時のタグ番号に更新しリード中フラグをオフする手順と、前記共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号は自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、ロックフラグやリード中フラグをクリアし、リード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファより書込データを取り出し、共通資源に書込んでからロックフラグをオフする手順と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手順を有することを特徴とする。
【0022】
本発明の第5の共通資源へのアクセスプログラムは、前記第1、第2、第3、又は第4の共通資源へのアクセスプログラムに於いて、前記共通資源への書込に際し、次回用タグ番号記憶域より読出したタグ番号を前記デュアルポートメモリへの格納時タグ番号とする手順と、書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手順を有し、自プロセッサに割り当てられたタグ番号を番号順に循環使用することを特徴とする。
【0023】
本発明の第6の共通資源へのアクセスプログラムは、前記第2、又は第4の共通資源へのアクセスプログラムに於いて、前記共通資源への書込に際し、次回用タグ番号記憶域より読出したタグ番号の空きを、デュアルポートメモリ上のタグ番号管理エリアを参照して確認し、空きでなければ空き番号になるまでインクリメントや循環し前記記憶域の更新をしてからそれぞれ決定タグ番号とする手順と、デュアルポートメモリのタグ番号対応バッファへの書込データ格納を終えると前記タグ番号管理エリアの対応タグ番号を有効化し、デュアルポートメモリのタグ番号対応バッファの書込データを共通資源に格納し終えると前記タグ番号管理エリアの対応タグ番号を無効化する手順と、書込要求の処理終了で次回用タグ番号記憶域の番号をインクリメントないし開始値に循環させ更新する手順を有することを特徴とする。
【0024】
本発明の第7の共通資源へのアクセスプログラムは、前記第1乃至第6の何れかの共通資源へのアクセスプログラムに於いて、前記共通資源をN台のプロセッサが共通バスを通じアクセスする共通メモリ上の共通資源とし、前記デュアルポートメモリをN台のプロセッサのローカルバスに接続されたNポートメモリとすることを特徴とする。
【0025】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。先ず本発明の第1の実施例を説明する。
【0026】
図1は本発明の共通資源へのアクセス方式を含むマルチプロセッサシステムの構成を示した図である。
【0027】
図1を参照し、二つのマルチプロセッサの例で説明する。第一のプロセッサ1は第一のプロセッサ1専用のローカルRAM・ブートROM2がローカルバス3を介して接続されている。
【0028】
同様に第二のプロセッサ4は第二のプロセッサ4専用のローカルRAM・ブートROM5がローカルバス6を介して接続されている。
【0029】
第一のプロセッサ1と第二のプロセッサ4が共通に使用する共通メモリ9が共通バス8を介して接続されている。共通バス8は第一のプロセッサ1と第二のプロセッサ4が共通に使用するため、バスアクセスが重ならない様にバス調停されている。
【0030】
第一のプロセッサ1と第二のプロセッサ4間に高速でデータのやり取りを行うためのデュアルポートRAM7を備えている。第一のプロセッサ1、第二のプロセッサ4はそれぞれローカルバス3、6を通じデュアルポートRAM7にアクセスする。アクセスはそれぞれ独立して並行に行なえる。
【0031】
第一のプロセッサ1或いは第二のプロセッサ4が共通バス8を介して共通メモリ9の共通資源にライトアクセスしているときは相手のプロセッサが同一の共通資源にアクセスしない様に、共通資源にロックフラグを立てて、相手プロセッサがアクセスするのを禁止している。
【0032】
また、相手プロセッサが同一の共通資源にアクセスすることを想定し、各プロセッサはデュアルポートRAM7にも同一の情報を予めライトしておく。デュアルポートRAM7の情報と共通資源の情報との関連付けを行うために、デュアルポートRAM7のデータと、共通メモリ9上の共通資源のデータには共通のタグを付けておく。
【0033】
このとき、相手プロセッサが同じ共通資源にリードアクセスした場合、ロックビットが立っているので、相手プロセッサは共通メモリ9上の共通資源に付随しているタグを確認し、デュアルポートRAM7上で同一タグを検索し、デュアルポートRAM7上のデータを共通メモリ9上の共通資源として読み取る。
【0034】
またこのとき、相手プロセッサが、デュアルポートRAM7上に共通メモリ9に書くべきデータを書いてから、同じ共通資源にライトアクセスした場合、ロックビットが立っているので、相手プロセッサは共通メモリ9上の共通資源に付随しているタグを自分用のタグ番号に変更して変更があったことを示す。
【0035】
最初のプロセッサは共通メモリ9の共通資源へのアクセスが完了したら、共通資源のタグ番号が書き換わっていないかをチェックし、書き換わっていれば、デュアルポートRAM7上の該当タグ番号に付随するデータを共通メモリ9の該当資源にコピーし、共通資源のロックフラグを解除する。
【0036】
尚、上記共通資源へのアクセス制御処理は、第一のプロセッサ1や第二のプロセッサ4のプログラムで実現できる。
【0037】
次に図2を参照し、共通メモリの内容例を説明する。共通メモリ9は共通資源(0)92−0、・・、共通資源(m)92−mを含む共通資源エリア92と、これら各共通資源の共通資源(0)管理・アドレス情報91−0、・・、共通資源(m)管理・アドレス情報91−mを含む資源管理エリア91を持つ。
【0038】
各共通資源の管理・アドレス情報は管理情報と共通資源のポンイタアドレスを含む。管理情報は通常は0にクリアされているがロック状態ではロックフラグを兼ねたタグ番号が設定される。
【0039】
タグ番号は、その共通資源への書き込みを行う前に予めデュアルポートRAM7上に書き込んだ書込データを識別する為の番号であり、ロックフラグを兼ねる様0以外の番号とし、又何れのプロセッサが設定した番号かが分かる様にしておく。
【0040】
更に、共通資源の管理情報には第一のプロセッサ1、第二のプロセッサ4がそれぞれリード中であることを示す所定値99、98(リードタイプの疑似的タグ番号)も設定するので書込データ識別の番号としては除外しておく。
【0041】
タグ番号数は共通メモリの資源に同時にアクセスする可能性がある数によって決まる。例えば同時にアクセスする可能性があるのが6個程度ならマージンを見てタグ番号は10個を用意する。
【0042】
第一のプロセッサと第二のプロセッサで別々にタグ番号は管理されるので、区別するためにユニークな番号としなければならない。例えば、第一のプロセッサのタグ番号は10〜19を使用し、第二のプロセッサは20〜29を使用する。
【0043】
使用方法は第一のプロセッサの例では、最初のタグ番号は10、次は11、12,・・・と使用して行き、19になったら、次は10に戻る。
【0044】
第二のプロセッサも同様にタグ番号は20〜29を用意し、20、21、22・・・・と使用し、29になったら20に戻る。
【0045】
デュアルポートRAM7の確保するバッファはタグ番号分を用意する。つまり第一のプロセッサ用で10個、第二のプロセッサ用で10個分を確保する。
【0046】
図3はデュアルポートRAM7の内容例を示した図である。タグエリア71にはタグ番号が設定される。バッファエリア72には、各タグ番号に対応したバッファ(10)72−10、・・・、バッファ(29)72−29を持つ。
【0047】
タグ番号が一周したら、デュアルポートRAM7上の各バッファで古いデータは上書きされる。また、デュアルポートRAM7でのタグ検索を容易にするため、タグ番号はタグエリア71に纏められている。
【0048】
又、各バッファのデュアルポートRAM7上のアドレスはタグ番号から容易に作成できる様にしておく。
【0049】
尚、タグエリア71へのタグ番号設定はタグ番号を書き込む代わりに番号に対応するエリアの有効性表示ビットを設定するようにしてもよい。
【0050】
次に、本発明の第1の実施例の動作について図面を参照して説明する。図4に第一のプロセッサ1が共通メモリ9の共通資源にライトし、且つ第二のプロセッサ4が共通メモリ9の同じ共通資源をリードする場合のフローチャートを示す。
【0051】
第一のプロセッサはこの共通資源に割り当てるタグ番号を決定し、共通資源に書くべきデータと同じデータをデュアルポートRAM7のタグ番号対応のバッファに書き、タグ番号をタグエリア71に書いておく(ステップW1)。
【0052】
尚、各プロセッサは今回使用したタグ番号を共通資源アクセス終了時にインクリメント或いは循環させローカルRAM等の所定エリア(次回用タグ番号記憶域)に記憶しており、これを読み出し上記タグ番号としてもよい。
【0053】
更に、上記読み出したタグ番号が空きであるかをタグエリア71を参照し、確認し、タグ番号がすでに存在すれば次の番号の空きを確認し、空いてる最初の番号を決定タグ番号としてもよい。この場合決定タグ番号で上記次回用タグ番号記憶域を更新しておく。
【0054】
第一のプロセッサ1は共通メモリの資源管理エリア91にアクセスし、アクセス対象の共通資源の管理情報をチェックする(ステップW2)。
【0055】
ロックフラグオフであれば、オンにし同時にタグ番号も書く(ステップW3)。
【0056】
ロックフラグの読み取り判定及びタグ番号の書き換えは分割不可のアクセス(チェックアンドロック等)で行い、第二のプロセッサのロックフラグアクセスとのすれ違いを防止する。
【0057】
ロックフラグとタグ番号は同時に書く必要があり、タグ番号はロックフラグも兼ねる。即ちタグ番号が0の場合はロックフラグクリア状態、0以外の場合はロックフラグが立っていると定義されている。
【0058】
第二のプロセッサがここで同じ共通資源の管理情報にアクセスし、管理情報をチェックしてロックフラグが立っていた場合(ステップR1’)、そのタグ番号を読み取り、これがライトタイプ(99や98を除いたタグ番号)につき共通資源のデータには直接アクセスできないと判定し、デュアルポートRAM7で、該当タグ番号を検索する。
【0059】
タグ番号が見つかるとそれに付随するデータを共通資源のデータとして読み取り(ステップR8’)、第二のプロセッサの動作は終了する。
【0060】
第一のプロセッサは共通メモリの共通資源にデータを書く(ステップW4)。
【0061】
第一のプロセッサは共通資源のタグ番号が書き換えられていないか管理情報を確認し(ステップW5)、書き換えられていなければ共通メモリの共通資源の管理情報(ロックフラグ)をクリアし、デュアルポートRAM7の使用したタグ番号もクリアし(ステップW7)、一連の動作を終了する。
【0062】
ここで管理情報(ロックフラグ)のクリアはチェックアンドクリアにて行う。即ちチェックにてロックフラグの書き換えが行われていないことを確認し、書き換えがない場合のみクリアを行う。これらの動作は分割不可のアクセスで行う。
【0063】
ステップW5でタグ番号が書き換わっていれば、デュアルポートRAM7の該当タグ番号に付随するデータを共通メモリ9の共通資源にコピーし、デュアルポートRAM7のタグエリア71の該当タグ番号をクリアする(ステップW6)。この後、タグ番号が更に書き換わってないことを確認し(ステップW5)、書き換わってなければステップW7に進む。
【0064】
第一のプロセッサはステップW2でアクセス対象の共通資源のロックフラグがオンであっても、共通資源の管理情報のタグ番号を先のデュアルポートRAM7に設定したタグ番号に書き換え(ステップW8)、動作を終了する。
【0065】
図5に第一のプロセッサが共通メモリの共通資源にライトし、且つ第二のプロセッサが共通メモリの共通資源にライトする場合のフローチャートを示す。
【0066】
第一のプロセッサは前記ステップW1〜W7と同様の処理をする。第二のプロセッサが自分用のタグ番号を付けデュアルポートRAM7に、共通資源に書くべきデータと同じデータを書き(ステップW1’)、共通資源の管理情報(ロックビット)をチェックする(ステップW2’)。
【0067】
第二のプロセッサの処理の方が多少遅れていれば、ロックフラグはオン(タグ番号が設定済み)しているので、共通資源のタグ番号を自分がデュアルポートRAM7に設定したタグ番号に書き換え(ステップW8’)、動作を終了する。
【0068】
第二のプロセッサの処理の方が多少早ければ、ロックフラグはオフであり、前記第一のプロセッサの処理(ステップW3〜W7)と同様に処理し、動作を終了する。
【0069】
図6に第一のプロセッサが共通メモリの共通資源からリードし、且つ第二のプロセッサが共通メモリの共通資源にライトする場合のフローチャートを示す。
【0070】
第一のプロセッサは共通メモリの資源管理エリア91にアクセスし、アクセス対象の共通資源の管理情報(ロックフラグ)をチェックする(ステップR1)。ロックフラグがオフであればこの共通資源に割り当てるタグ番号を決定する。
【0071】
リードアクセスなので、他プロセッサが同時に共通資源を読み取ることが可能になっていることを示すためにタグ番号はリードタイプのタグ番号とする。例えば99とする。
【0072】
第一のプロセッサは共通メモリの共通資源にロックフラグを立て(リードタイプタグ番号を書く(ステップR2)。
【0073】
又、ロックフラグの読み取り判定(ステップR1)とタグ番号の書き換え(ステップR2)とは分割不可のアクセス(チェックアンドロック等)で行い、第二のプロセッサのロックフラグアクセスとのすれ違いを防止する。
【0074】
第二のプロセッサがここで同じ共通資源にライトするデータを自分のタグ番号を付けデュアルポートRAM7に書込み(ステップW1’)、管理情報をチェックしロックフラグオンであれば、共通資源のデータには直接アクセスできないので、共通資源のタグ部分を自分の前記タグ番号に書き換え(ステップW8’)、第二のプロセッサの動作は終了する。
【0075】
第一のプロセッサは共通メモリの共通資源からデータを読み取る(ステップR3)。第一のプロセッサは共通資源のタグ番号が書き換えられていないか確認する(ステップR4)。
【0076】
書き換えられていなければ共通メモリの共通資源の管理情報(タグ番号)をクリアし(ステップR7)、一連の動作を終了する。
【0077】
ここで管理情報のクリアはチェックアンドクリアにて行う。即ちチェックにてロックフラグの書き換えが行われていないことを確認し、書き換えがない場合のみ、クリアを行う。これらの動作は分割不可のアクセスで行う。
【0078】
書き換えられていた場合は、そのタグ番号がライトタイプであれば(ステップR5)、デュアルポートRAM7のデータを共通メモリの共通資源にコピーし、デュアルポートRAM7のコピー元タグ番号をクリアする(ステップR6)。
【0079】
ステップR4に戻り、再度の書き換えがないか確認してから、共通メモリの共通資源の管理情報をクリアして一連の動作を終了する。
【0080】
第一のプロセッサは前記ステップR1でロックフラグがオンであれば、設定されたタグ番号を読み取り、ライトタイプと判定される(第二のプロセッサがライト)ので、デュアルポートRAM7の該当タグ番号に付随するデータを代わりに読み取る(ステップR8)。
【0081】
図7は第一のプロセッサが共通メモリの共通資源からリードし、且つ第二のプロセッサも共通メモリの共通資源からリードする場合のフローチャートである。
【0082】
第一のプロセッサは前記と同様にステップR1でロックフラグオフであれば、ステップR2〜R3の制御処理をする。
【0083】
タグ番号が書き換わっていなければ(ステップR4)、共通資源のロックフラグをクリアする(ステップR7)。
【0084】
タグ番号が書き換わっていればライトタイプか判定するが、同時処理の第二のプロセッサもリードであり、ライトタイプでなく(ステップR5)動作を終了する。
【0085】
第二のプロセッサが同じ共通資源にリードアクセス開始し、管理情報(ロックビット)をチェックする(ステップR1’)。
【0086】
第一のプロセッサのアクセスより多少遅れていれば、ロックフラグがオンしており(タグ番号が設定されており)、第二のプロセッサは設定されたタグ番号を読み取り、リードタイプと判定される(第一のプロセッサがリード)ので、共通資源からデータをリードする(ステップR8’)。尚、上記判定直後にタグ番号を第二のプロセッサ用のリードタイプタグ番号(例えば98)に更新しておく。
【0087】
第一のプロセッサのアクセスより多少早ければ、ロックフラグがオフであり、前記ステップR2以降と同様に処理する。
【0088】
この場合の第一のプロセッサの処理は、ステップR8の処理となるが、設定済みのタグ番号がリードタイプなので共通資源からデータをリードする。
【0089】
次に本発明の第2の実施例を説明する。本実施例では共通資源の管理情報のタグ番号がロックフラグ等を兼ねていない点が前記第1の実施例と相違する。
【0090】
管理情報はロックフラグ、リード中フラグ、プロセッサ番号、タグ番号の各エリアないしビットエリアを持つ。タグ番号エリアには前記ライトタイプタグ番号のみセットする。
【0091】
各プロセッサはライトアクセスではロック状態でなければロックフラグと自プロセッサ番号とタグ番号をそれぞれのエリアにセットする。共通資源にデータを書込み、タグ番号エリアをチェックしタグ番号がセットされていればこれを読出し、デュアルポートRAM7の対応バッファよりデータを取り出し、共通資源に書き込む。タグ番号がセットされていなければロックフラグをオフする。
【0092】
また、既にロック状態であれば、タグ番号のセットとリード中フラグのオフを行う。
【0093】
各プロセッサはリードアクセスではロック状態でなければロックフラグと自プロセッサ番号とリード中フラグを管理情報の対応エリアにセットする。共通資源よりデータを読み出し、管理情報のリード中フラグをチェックしオフであればタグ番号を読出し、デュアルポートRAM7の対応バッファよりデータを取り出し、共通資源に書き込む。
【0094】
リード中フラグがオンのままであれば、プロセッサ番号が書き換わってないことを確認し、ロックフラグとリード中フラグをオフする。
【0095】
また、リードアクセス時既にロック状態であれば、リード中フラグオフであればタグ番号エリアにセットされているタグ番号を読出し、デュアルポートRAM7の対応バッファよりデータを読み出す。
【0096】
リード中フラグオンであればプロセッサ番号を自プロセッサ番号に書き換え共通資源よりデータを読み出す。
【0097】
次に本発明の第3の実施例を説明する。本実施例では各プロセッサは共通資源のライトアクセスで、管理情報のタグ番号が0(ロックフラグオフ)でなければタグ番号の書き換えを行わず待ち合わせる(ステップW8を行わない)。
【0098】
従って、ライトやリードアクセス中に後続のライトは待つので、ステップW5やW6の処理はない。又、ステップR6の処理もない。
【0099】
又デュアルポートRAM7上のタグエリア71も必要としない。各プロセッサは今回使用したタグ番号を共通資源アクセス終了時にインクリメント或いは循環させローカルRAM等の所定エリア(次回用タグ番号記憶域)に記憶している。
【0100】
プロセッサは共通資源への書込アクセスに際し、これを読み出しタグ番号とする。書込データをデュアルポートRAM7のタグ番号対応のアドレスにあるバッファに格納する。又管理情報から読み出したタグ番号でデュアルポートRAM7上のアドレスを作成しそのバッファよりデータを読み出す。
【0101】
以上の説明ではプロセッサを2台としたが、デュアルポートRAM7を4ポートメモリにし、タグ番号を設定したプロセッサが識別出来るように定義、即ち第三のプロセッサ、第四のプロセッサにもそれぞれ30〜39、40〜49のタグ番号を割り当てる。この様にすれば4台のプロセッサ間でマルチプロセッサを構成することもできる。
【0102】
同様にデュアルポートRAM7をN(2以上の整数)台のプロセッサのそれぞれのローカルバスからアクセスできるNポートメモリとし、プロセッサが識別出来るようタグ番号を定義することでN台のマルチプロセッサ構成でも本発明を適用することができる。
【0103】
【発明の効果】
以上説明した様に、本発明によればあるプロセッサがアクセス中の共通資源に他プロセッサがアクセスしロックフラグが立っていた場合、他プロセッサはアクセスが読出であれば、先行アクセス読出にオーバラップし共通資源からの読出を行い、先行アクセスが書込であればデュアルポートメモリ(或いはNポートメモリ)からデータを読出す。
【0104】
又、他プロセッサはアクセスが書込であれば、予めデュアルポートメモリに格納した書込データの識別(タグ番号)を管理情報に格納し、アクセス中のプロセッサが共通資源への書込処理をする。
【0105】
従って、他プロセッサはロックフラグオフをポーリングしなくてよいので、共通バスの輻輳を防止出来る。
【0106】
また、他プロセッサはロックフラグオフまで処理を待たなくてよいので、次の処理に進むことができ処理効率を向上出来る。またこれらによりシステム全体の処理能力を向上出来る。
【図面の簡単な説明】
【図1】本発明の共通資源へのアクセス方式を含むマルチプロセッサシステムの構成を示した図。
【図2】図1の共通メモリ9の内容例を示した図。
【図3】図1のデュアルポートRAM7の内容例を示した図。
【図4】本発明の第1実施例で、第一のプロセッサが共通資源にライトし、第二のプロセッサが同じ共通資源をリードする場合の動作を示したフローチャート。
【図5】本発明の第1実施例で、第一のプロセッサが共通資源にライトし、第二のプロセッサが同じ共通資源をライトする場合の動作を示したフローチャート。
【図6】本発明の第1実施例で、第一のプロセッサが共通資源にリードし、第二のプロセッサが同じ共通資源をライトする場合の動作を示したフローチャート。
【図7】本発明の第1実施例で、第一のプロセッサが共通資源にリードし、第二のプロセッサが同じ共通資源をリードする場合の動作を示したフローチャート。
【符号の説明】
1 第一のプロセッサ
2、5 ローカルRAM・ブートROM
3、6 ローカルバス
4 第二のプロセッサ
7 デュアルポートRAM
71 タグエリア
72 バッファエリア
72−10 バッファ(10)
72−29 バッファ(29)
8 共通バス
9 共通メモリ
91 資源管理エリア
91−0 共通資源(0)管理・アドレス情報
91−m 共通資源(m)管理・アドレス情報
92 共通資源エリア
92−0 共通資源(0)
92−m 共通資源(m)
[0001]
BACKGROUND OF THE INVENTION
The present invention provides a method for accessing a common resource on a common memory commonly used by a plurality of processors. Formulas, access methods to common resources, and And programs.
[0002]
[Prior art]
When a multiprocessor has a common memory and accesses a common resource in the common memory, an exclusive process is generally performed using a lock flag for each common resource so that multiple processors do not change the same common resource at the same time. I do.
[0003]
The processor that accesses the common resource first (for example, the first processor) sets a lock flag to prohibit other processors from accessing the common resource. The first processor that has set the lock flag clears the lock flag when the access to the common resource is completed.
[0004]
If the lock flag is set when another processor accesses the common resource, the common resource cannot be accessed, and the other processor must wait until the lock flag is cleared. Since it is not known when the lock flag is cleared, other processors must always poll the lock flag.
[0005]
As an example of a multiprocessor system in which a plurality of processors access the shared data in the memory via the bus, while one processor is accessing the shared data in the memory, the shared data from the other processor is accessed. There is a multiprocessor system provided with a memory access control circuit that rejects a memory access request to an address different from the address of the shared data from the other processor (see, for example, Patent Document 1). ).
[0006]
[Patent Document 1]
JP-A-5-210640 (2nd page, 2nd line to 14th page, paragraph [0086])
[0007]
[Problems to be solved by the invention]
In the multiprocessor example above, the throughput of the multiprocessor system can be achieved by temporarily suspending the task or job that performs data access that is exclusively controlled by the other processor and switching to a task or job that accesses data that is not exclusively controlled. The reduction is reduced.
[0008]
Therefore, it cannot be applied to a job for which the other processor requests real-time processing. That is, there is a problem that the processing time of a job waiting for exclusive control becomes long.
[0009]
Further, this does not teach the timing when the other processor is permitted to accept the access request to the target shared data, and does not significantly reduce the polling.
[0010]
Generally, the common memory is connected to a common bus, and the access speed of the common bus is slow due to the necessity of bus arbitration and the long line length. Therefore, there is a problem that a common bus shared by a plurality of processors is congested and the capacity of the entire system is reduced.
[0011]
[Means for Solving the Problems]
The first common resource access method of the present invention is a method in which two processors access a common resource on a common memory through a common bus, and each processor can access a dual port memory through a local bus; A plurality of unique tag numbers used by each processor, excluding the initial value and a plurality of predetermined values, and defined so that the processor can be identified. It has a buffer corresponding to the tag number, and the common resource management storage has the tag number that also serves as a lock flag for the common resource, the initial value indicating the lock flag off, or the lock flag on and reading. The plurality of predetermined values shown for each processor are held as management information for each common resource, and the processor writes a tag when writing to the common resource. The write data is pre-stored in the buffer corresponding to the tag number of the dual port memory, the management information to be accessed is checked, and if the initial value, that is, the lock flag is off, the management information is updated to the tag number. After that, write to the common resource, initialize the tag number of the management information, that is, the means for turning off the lock flag, and at the time of reading to the common resource, check the management information of the access target, either initial value If the predetermined value, that is, if the lock flag is off or being read, the management information is updated to its own predetermined value, read from the common resource, and if the management information has not been updated, means for initializing it, If the tag number is set in the check, it has means for reading data from the buffer of the dual port memory indicated by the tag number.
[0012]
According to the second common resource access method of the present invention, in the first common resource access method, the processor determines a tag number and writes the write data to the dual port when writing to the common resource. Store in advance in the buffer corresponding to the tag number of the memory, check the management information to be accessed, and if it is an initial value, update the management information to the tag number, write to the common resource, If it is confirmed and updated to another tag number, the write data is taken out from the buffer corresponding to the tag number of the dual port memory and written to the common resource, and then the management information is initialized. If any predetermined value of the tag number is set in the management information, that is, if the lock is on, the management information is updated to the tag number when the write data is stored in the dual port memory. When reading to the common resource, the management information to be accessed is checked, and if it is an initial value or any predetermined value, it is updated to its own predetermined value, read from the common resource, and managed. Check the information, if it has not been updated, immediately if it has been updated to the tag number, take out the write data from the buffer corresponding to the tag number of the dual port memory and write it to the common resource, then each management information And a means for reading data from the buffer of the dual port memory indicated by the tag number set in the management information in the check.
[0013]
A third common resource access method of the present invention is a method in which two processors access a common resource on a common memory through a common bus, and each processor can access a dual port memory through a local bus; A plurality of unique tag numbers used by each processor, a buffer corresponding to the tag number is provided on the dual port memory, and the common resource management storage includes a lock Management information including a flag, a reading flag, a processor number, and a tag number is held for each common resource. When writing to the common resource, the processor determines a tag number and writes the write data to the tag number of the dual port memory. Store it in the corresponding buffer in advance, check the management information to be accessed, and if the lock flag is off, turn it on and set The management information is updated with the Sessa number as its own number and the tag number area as the tag number, writing to the common resource, turning off the lock flag of the management information, and when reading to the common resource, Check the management information. If the lock flag is off or the reading flag is on, the lock flag and the reading flag are turned on, the management information is updated with the processor number as its own number, read from the common resource, and managed. A means for clearing the lock flag and the reading flag if the processor number has not been updated by checking the information; and a dual indicating the tag number of the management information if the lock flag is on and the reading flag is off in the management information check It has a means for reading data from the buffer of the port memory.
[0014]
According to a fourth common resource access method of the present invention, in the third common resource access method, the processor determines a tag number when writing to the common resource, and sets the write data to dual. If it is stored in the buffer corresponding to the tag number of the port memory in advance and the management information to be accessed is checked and the lock flag is off, this is turned on, the processor number is its own number, and the tag number area is the tag number. , Write to the common resource, check the management information, and if the tag number has been updated, take out the write data from the corresponding buffer of the dual port memory and write to the common resource, then lock flag And the tag number of the management information when the lock flag is on in the above check, the tag number when the write data is stored in the dual port memory To update the read flag and turn off the reading flag, and check the management information to be accessed when reading to the common resource. If the lock flag is off or the reading flag is on, the lock flag and the reading flag are turned on. The processor number is the self-number, the management information is updated, the common resource is read, the management information is checked, and if it is not updated, the lock flag and the reading flag are cleared immediately, and the reading flag is off. If there is means for taking out the write data from the dual port memory buffer indicated by the tag number of the management information, writing it to the common resource, and then turning off the lock flag; If it is off, it has means to read data from the buffer of the dual port memory indicated by the tag number of the management information. And butterflies.
[0015]
According to the fifth common resource access method of the present invention, the processor stores the next tag number in the first, second, third, or fourth common resource access method. And means for setting the tag number read from the storage area when writing to the common resource as a tag number when storing to the dual port memory, and incrementing or starting the tag number of the storage area upon completion of the write request processing. It has a means for circulating and updating values, and tag numbers assigned to its own processor are cyclically used in numerical order.
[0016]
According to the sixth common resource access method of the present invention, in the second or fourth common resource access method, the number or validity indication flag for each tag number is displayed on the dual port memory. The processor also has a tag area for storing the tag number for the next time, and the processor confirms by referring to the tag area the empty tag number read from the storage area when writing to the common resource occurs. If it is not empty, increment or circulate until the empty number is reached, update the storage area and set each as a determined tag number, and when the write data storage in the tag number corresponding buffer of the dual port memory is finished, the tag area The corresponding tag number is enabled, and when the write data of the dual port memory tag number corresponding buffer is stored in the common resource, the corresponding tag number in the tag area is invalidated. And having means, the means for updating is circulated tag number of the storage is incremented to the start value at the end of processing write requests.
[0017]
According to a seventh common resource access method of the present invention, in any of the first to sixth common resource access methods, the two processors are N processors, and the dual port memory is used. Is an N-port memory.
[0018]
In the first common resource access program of the present invention, when writing to the common resource on the common memory accessed by the two processors through the common bus, the tag number is determined and the local bus of each processor is connected. Access the dual port memory, store the write data in the buffer corresponding to the tag number in advance, check the management information of the common resource to be accessed, and if the initial value, that is, the lock flag is off, the management information is the tag number After the update, the common resource is written, the tag number of the management information is initialized, that is, the lock flag is turned off, and when reading to the common resource, the management information of the common resource to be accessed is checked to the initial value. If any one of these values, that is, if the lock flag is off or reading, the management information is updated to its own predetermined value, read from the common resource, and the management information There the procedure for initializing this Without being updated, and having a said dual-port read the file data from the buffer memory associated with it if the tag number is set in the check.
[0019]
According to the second common resource access program of the present invention, when writing to the common resource in the first common resource access program, a tag number is determined and write data is stored in the dual port memory. Pre-store in the tag number-corresponding buffer, check the management information of the common resource to be accessed, and if it is an initial value, update the management information to the tag number, write to the common resource, management information If the tag is updated to another tag number, the write data is taken out from the buffer corresponding to the tag number of the dual port memory and written to the common resource, and then the management information is initialized, and If the management information is a tag number or a predetermined value, that is, lock-on, the management information is updated to the tag number when the write data is stored in the dual port memory. In order, when reading to the common resource, check the management information to be accessed, if it is an initial value or any predetermined value, update this to its own predetermined value, read from the common resource, Check the management information, if it has not been updated, immediately if it has been updated to the tag number, take out the write data from the buffer corresponding to the tag number of the dual port memory, write to the common resource, then manage each A procedure for initializing information and a procedure for reading data from a buffer of a dual port memory indicated by a tag number set in the management information in the check.
[0020]
In the third common resource access program of the present invention, when writing to the common resource on the common memory accessed by the two processors through the common bus, the tag number is determined and the local bus of each processor is connected. Access the dual port memory, store the write data in the buffer corresponding to the tag number in advance, check the management information to be accessed, and if the lock flag is off, turn it on and set the processor number as its own number and tag number The area updates the management information as the tag number, writes to the common resource, turns off the lock flag of the management information, and checks the management information to be accessed at the time of reading to the common resource. Is off or the reading flag is on, the lock flag and reading flag are turned on, and the processor number is assigned as its own number. Updating information, reading from the common resource, checking the management information, and clearing the lock flag and reading flag if the processor number has not been updated, and reading with the lock flag turned on in the management information check If the flag is off, there is a procedure for reading data from the buffer of the dual port memory indicated by the tag number of the management information.
[0021]
According to the fourth common resource access program of the present invention, in the third common resource access program, when writing to the common resource, a tag number is determined, and the write data is stored in the dual port memory. If the management information to be accessed is checked in advance and stored in the buffer corresponding to the tag number and the lock flag is off, this is turned on, the processor number is self-numbered, and the tag number area is updated as the tag number. Write to the common resource, check the management information, and if the tag number has been updated, take out the write data from the corresponding buffer of the dual port memory and write to the common resource, then turn off the lock flag If the lock flag is on in the procedure and check, the tag number of the management information is the tag number when the write data is stored in the dual port memory The procedure for updating and turning off the reading flag, and when reading to the common resource, the management information to be accessed is checked. If the lock flag is off or the reading flag is on, the lock flag and the reading flag are turned on. The processor number is the self-number, the management information is updated, the common resource is read, the management information is checked, and if it is not updated, the lock flag and the reading flag are cleared immediately, and the reading flag is off. If there is, the write data is taken out from the dual port memory buffer indicated by the tag number of the management information, written to the common resource, and then the lock flag is turned off. If it is off, it has a procedure to read data from the buffer of the dual port memory indicated by the tag number of the management information And features.
[0022]
The fifth common resource access program of the present invention is the next tag in the access program for the first, second, third, or fourth common resource, when writing to the common resource. The tag number read from the number storage area is used as a tag number when stored in the dual port memory, and the tag number in the storage area is incremented or updated to the start value at the end of the write request process. The tag numbers assigned to the processor are cyclically used in numerical order.
[0023]
The sixth common resource access program of the present invention was read from the next tag number storage area when writing to the common resource in the second or fourth common resource access program. Check the tag number vacancy by referring to the tag number management area on the dual-port memory. If it is not vacant, increment or circulate until the vacant number is reached, update the storage area, and use each as the determined tag number. After completing the procedure and storing the write data in the tag number correspondence buffer of the dual port memory, the corresponding tag number in the tag number management area is validated and the write data of the dual port memory tag number correspondence buffer is stored in the common resource. When finished, the procedure for invalidating the corresponding tag number in the tag number management area and the number of the tag number storage area for the next time are entered when the write request processing is completed. And having a decrement or procedure for updating is circulated to the starting value.
[0024]
A seventh common resource access program according to the present invention is a common memory in which the N processors access the common resource through a common bus in the first to sixth common resource access programs. The dual port memory is an N port memory connected to local buses of N processors.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings. First, a first embodiment of the present invention will be described.
[0026]
FIG. 1 is a diagram showing a configuration of a multiprocessor system including a common resource access method according to the present invention.
[0027]
An example of two multiprocessors will be described with reference to FIG. In the first processor 1, a local RAM / boot ROM 2 dedicated to the first processor 1 is connected via a local bus 3.
[0028]
Similarly, a local RAM / boot ROM 5 dedicated to the second processor 4 is connected to the second processor 4 via a local bus 6.
[0029]
A common memory 9 commonly used by the first processor 1 and the second processor 4 is connected via a common bus 8. Since the common bus 8 is commonly used by the first processor 1 and the second processor 4, bus arbitration is performed so that bus accesses do not overlap.
[0030]
A dual port RAM 7 for exchanging data at high speed between the first processor 1 and the second processor 4 is provided. The first processor 1 and the second processor 4 access the dual port RAM 7 through the local buses 3 and 6, respectively. Access can be made independently and in parallel.
[0031]
When the first processor 1 or the second processor 4 has write access to the common resource of the common memory 9 via the common bus 8, it is locked to the common resource so that the partner processor does not access the same common resource. A flag is set to prohibit the other processor from accessing.
[0032]
Further, assuming that the other processor accesses the same common resource, each processor writes the same information in the dual port RAM 7 in advance. In order to associate the information of the dual port RAM 7 with the information of the common resource, a common tag is attached to the data of the dual port RAM 7 and the data of the common resource on the common memory 9.
[0033]
At this time, if the partner processor makes a read access to the same common resource, the lock bit is set, so the partner processor confirms the tag attached to the common resource on the common memory 9 and the same tag on the dual port RAM 7 And the data on the dual port RAM 7 is read as a common resource on the common memory 9.
[0034]
At this time, if the partner processor writes data to be written to the common memory 9 on the dual port RAM 7 and then performs a write access to the same common resource, the lock bit is set. The tag attached to the common resource is changed to its own tag number to indicate that there has been a change.
[0035]
When the access to the common resource in the common memory 9 is completed, the first processor checks whether the tag number of the common resource has been rewritten, and if it has been rewritten, the data associated with the corresponding tag number on the dual port RAM 7 Is copied to the corresponding resource of the common memory 9, and the lock flag of the common resource is released.
[0036]
The access control process for the common resource can be realized by a program of the first processor 1 or the second processor 4.
[0037]
Next, an example of the contents of the common memory will be described with reference to FIG. The common memory 9 includes a common resource area 92 including common resources (0) 92-0,..., Common resources (m) 92-m, and common resource (0) management / address information 91-0 for each of these common resources. ... Has a resource management area 91 including common resource (m) management and address information 91-m.
[0038]
The management / address information of each common resource includes management information and a pointer address of the common resource. The management information is normally cleared to 0, but a tag number that also serves as a lock flag is set in the locked state.
[0039]
The tag number is a number for identifying write data previously written on the dual port RAM 7 before writing to the common resource, and is a number other than 0 so that it also serves as a lock flag. Make sure you know the number you set.
[0040]
Further, the common resource management information is also set with predetermined values 99 and 98 (read type pseudo tag numbers) indicating that the first processor 1 and the second processor 4 are reading data. It is excluded as an identification number.
[0041]
The number of tag numbers is determined by the number that may simultaneously access the resources of the common memory. For example, if there are about 6 items that may be accessed simultaneously, 10 tag numbers are prepared by looking at the margin.
[0042]
Since the tag number is managed separately by the first processor and the second processor, it must be a unique number for distinction. For example, the tag number of the first processor uses 10-19, and the second processor uses 20-29.
[0043]
In the example of the first processor, the first tag number is 10, the next is 11, 12,..., And when the number reaches 19, the process returns to 10.
[0044]
Similarly, the second processor prepares tag numbers 20 to 29, uses 20, 21, 22,..., And returns to 20 when 29 is reached.
[0045]
The buffer secured in the dual port RAM 7 is prepared for the tag number. That is, 10 are reserved for the first processor and 10 for the second processor.
[0046]
FIG. 3 is a diagram showing an example of the contents of the dual port RAM 7. A tag number is set in the tag area 71. The buffer area 72 has buffers (10) 72-10,..., Buffers (29) 72-29 corresponding to the respective tag numbers.
[0047]
When the tag number goes around, the old data is overwritten in each buffer on the dual port RAM 7. Further, the tag numbers are collected in the tag area 71 in order to facilitate the tag search in the dual port RAM 7.
[0048]
The addresses on the dual port RAM 7 of each buffer are set so that they can be easily created from the tag number.
[0049]
In setting the tag number in the tag area 71, the validity display bit of the area corresponding to the number may be set instead of writing the tag number.
[0050]
Next, the operation of the first embodiment of the present invention will be described with reference to the drawings. FIG. 4 shows a flowchart when the first processor 1 writes to the common resource in the common memory 9 and the second processor 4 reads the same common resource in the common memory 9.
[0051]
The first processor determines a tag number to be assigned to the common resource, writes the same data as the data to be written to the common resource in the buffer corresponding to the tag number of the dual port RAM 7, and writes the tag number in the tag area 71 (step). W1).
[0052]
Each processor increments or circulates the tag number used this time at the end of the common resource access and stores it in a predetermined area (next tag number storage area) such as a local RAM, which may be read and used as the tag number.
[0053]
Furthermore, the tag area 71 is checked to see if the read tag number is empty, and if the tag number already exists, the next empty number is checked, and the first empty number is used as the decision tag number. Good. In this case, the next tag number storage area is updated with the determined tag number.
[0054]
The first processor 1 accesses the resource management area 91 of the common memory and checks the management information of the common resource to be accessed (step W2).
[0055]
If the lock flag is off, it is turned on and the tag number is written at the same time (step W3).
[0056]
The lock flag reading determination and tag number rewriting are performed by non-dividable access (check and lock, etc.) to prevent the passing with the lock flag access of the second processor.
[0057]
The lock flag and the tag number must be written simultaneously, and the tag number also serves as the lock flag. That is, it is defined that when the tag number is 0, the lock flag is cleared, and when the tag number is other than 0, the lock flag is set.
[0058]
If the second processor accesses the management information of the same common resource here and checks the management information and the lock flag is set (step R1 ′), the tag number is read and this is the write type (99 or 98). It is determined that the common resource data cannot be directly accessed with respect to (excluding the tag number), and the corresponding tag number is searched in the dual port RAM 7.
[0059]
When the tag number is found, the accompanying data is read as common resource data (step R8 '), and the operation of the second processor is terminated.
[0060]
The first processor writes data to the common resource in the common memory (step W4).
[0061]
The first processor checks the management information to see if the tag number of the common resource has been rewritten (step W5), and if not, clears the management information (lock flag) of the common resource in the common memory, and the dual port RAM 7 The tag number used is also cleared (step W7), and the series of operations is terminated.
[0062]
Here, the management information (lock flag) is cleared by check and clear. In other words, the check confirms that the lock flag has not been rewritten, and clears only when there is no rewrite. These operations are performed with non-dividing access.
[0063]
If the tag number has been rewritten in step W5, the data associated with the corresponding tag number of the dual port RAM 7 is copied to the common resource of the common memory 9, and the corresponding tag number of the tag area 71 of the dual port RAM 7 is cleared (step). W6). Thereafter, it is confirmed that the tag number has not been rewritten (step W5), and if it has not been rewritten, the process proceeds to step W7.
[0064]
The first processor rewrites the tag number of the management information of the common resource to the tag number set in the previous dual port RAM 7 even if the lock flag of the common resource to be accessed is ON in step W2 (step W8), and the operation Exit.
[0065]
FIG. 5 shows a flowchart when the first processor writes to the common resource of the common memory and the second processor writes to the common resource of the common memory.
[0066]
The first processor performs the same processing as steps W1 to W7. The second processor assigns its own tag number, writes the same data as the data to be written in the common resource to the dual port RAM 7 (step W1 ′), and checks the management information (lock bit) of the common resource (step W2 ′). ).
[0067]
If the processing of the second processor is somewhat delayed, the lock flag is on (the tag number has already been set), so the common resource tag number is rewritten to the tag number set by itself in the dual port RAM 7 ( Step W8 ′), the operation ends.
[0068]
If the processing of the second processor is somewhat faster, the lock flag is off, processing is performed in the same manner as the processing of the first processor (steps W3 to W7), and the operation is terminated.
[0069]
FIG. 6 shows a flowchart when the first processor reads from the common resource of the common memory and the second processor writes to the common resource of the common memory.
[0070]
The first processor accesses the resource management area 91 of the common memory and checks the management information (lock flag) of the common resource to be accessed (step R1). If the lock flag is off, the tag number assigned to this common resource is determined.
[0071]
Since it is a read access, the tag number is a read type tag number to indicate that other processors can simultaneously read the common resource. For example, 99.
[0072]
The first processor sets a lock flag for the common resource in the common memory (writes the read type tag number (step R2)).
[0073]
Further, the lock flag reading determination (step R1) and the tag number rewriting (step R2) are performed by non-dividable access (check and lock, etc.), thereby preventing a difference from the lock flag access of the second processor.
[0074]
Here, the second processor writes the data to be written to the same common resource with its own tag number and writes it to the dual port RAM 7 (step W1 ′). If the management information is checked and the lock flag is on, the common resource data Since direct access is not possible, the tag portion of the common resource is rewritten with its own tag number (step W8 ′), and the operation of the second processor ends.
[0075]
The first processor reads data from the common resource in the common memory (step R3). The first processor checks whether the tag number of the common resource has been rewritten (step R4).
[0076]
If not rewritten, the common resource management information (tag number) in the common memory is cleared (step R7), and the series of operations is terminated.
[0077]
Here, the management information is cleared by check and clear. That is, the check confirms that the lock flag has not been rewritten, and clearing is performed only when there is no rewrite. These operations are performed with non-dividing access.
[0078]
If it has been rewritten and the tag number is a write type (step R5), the data in the dual port RAM 7 is copied to the common resource in the common memory, and the copy source tag number in the dual port RAM 7 is cleared (step R6). ).
[0079]
Returning to step R4, after confirming whether or not rewriting is performed again, the management information of the common resource in the common memory is cleared, and the series of operations is terminated.
[0080]
If the lock flag is on in step R1, the first processor reads the set tag number and determines that it is a write type (the second processor is write), so it is attached to the corresponding tag number in the dual port RAM 7. The data to be read is read instead (step R8).
[0081]
FIG. 7 is a flowchart when the first processor reads from the common resource of the common memory and the second processor also reads from the common resource of the common memory.
[0082]
If the lock flag is off at step R1 as described above, the first processor performs control processing at steps R2 to R3.
[0083]
If the tag number has not been rewritten (step R4), the common resource lock flag is cleared (step R7).
[0084]
If the tag number has been rewritten, it is determined whether it is a write type, but the second processor of the simultaneous processing is also a read, not the write type (step R5), and the operation is terminated.
[0085]
The second processor starts read access to the same common resource and checks the management information (lock bit) (step R1 ′).
[0086]
If the access is slightly delayed from the access of the first processor, the lock flag is on (the tag number is set), and the second processor reads the set tag number and determines that it is the read type ( Since the first processor reads), data is read from the common resource (step R8 '). Note that the tag number is updated to the read type tag number for the second processor (for example, 98) immediately after the determination.
[0087]
If the access is a little earlier than the access of the first processor, the lock flag is off, and processing is performed in the same manner as in step R2 and subsequent steps.
[0088]
In this case, the processing of the first processor is the processing of step R8. However, since the set tag number is the read type, data is read from the common resource.
[0089]
Next, a second embodiment of the present invention will be described. This embodiment is different from the first embodiment in that the tag number of the common resource management information does not serve as a lock flag or the like.
[0090]
The management information has areas or bit areas of a lock flag, a reading flag, a processor number, and a tag number. Only the light type tag number is set in the tag number area.
[0091]
Each processor sets a lock flag, its own processor number, and a tag number in each area if it is not locked in the write access. Data is written to the common resource, the tag number area is checked, and if the tag number is set, it is read, the data is taken out from the corresponding buffer of the dual port RAM 7, and written to the common resource. If the tag number is not set, the lock flag is turned off.
[0092]
If it is already locked, the tag number is set and the reading flag is turned off.
[0093]
Each processor sets the lock flag, its own processor number, and the reading flag in the corresponding area of the management information if it is not locked in the read access. Data is read from the common resource, the flag being read in the management information is checked, and if it is off, the tag number is read, the data is taken out from the corresponding buffer of the dual port RAM 7 and written into the common resource.
[0094]
If the reading flag remains on, it is confirmed that the processor number has not been rewritten, and the lock flag and the reading flag are turned off.
[0095]
If the read access is already locked, the tag number set in the tag number area is read if the reading flag is off, and the data is read from the corresponding buffer of the dual port RAM 7.
[0096]
If the reading flag is ON, the processor number is rewritten to its own processor number, and data is read from the common resource.
[0097]
Next, a third embodiment of the present invention will be described. In this embodiment, each processor waits without rewriting the tag number unless the tag number of the management information is 0 (lock flag off) in the write access of the common resource (step W8 is not performed).
[0098]
Therefore, since the subsequent write waits during the write or read access, there is no processing in steps W5 and W6. Further, there is no processing of step R6.
[0099]
Further, the tag area 71 on the dual port RAM 7 is not required. Each processor increments or circulates the tag number used this time at the end of common resource access and stores it in a predetermined area (next tag number storage area) such as a local RAM.
[0100]
The processor uses this as a read tag number in the write access to the common resource. Write data is stored in the buffer at the address corresponding to the tag number of the dual port RAM 7. An address on the dual port RAM 7 is created with the tag number read from the management information, and data is read from the buffer.
[0101]
In the above description, the number of processors is two, but the dual-port RAM 7 is defined as a four-port memory so that the processor to which the tag number is set can be identified, that is, the third processor and the fourth processor are 30 to 39 respectively. , 40 to 49 are assigned tag numbers. In this way, a multiprocessor can be configured between four processors.
[0102]
Similarly, the dual-port RAM 7 is an N-port memory that can be accessed from the local bus of each of N (integers greater than or equal to 2) processors, and tag numbers are defined so that the processors can be identified. Can be applied.
[0103]
【The invention's effect】
As described above, according to the present invention, when a processor accesses a common resource being accessed by another processor and the lock flag is set, the other processor overlaps the preceding access read if the access is read. Reading from the common resource is performed. If the preceding access is writing, data is read from the dual port memory (or N port memory).
[0104]
If the access is a write, the other processor stores the identification (tag number) of the write data stored in the dual port memory in the management information in advance, and the accessing processor performs a write process to the common resource. .
[0105]
Therefore, the other processor does not need to poll for the lock flag off, so that congestion of the common bus can be prevented.
[0106]
Further, the other processor does not have to wait for the process until the lock flag is turned off, so that it can proceed to the next process and improve the processing efficiency. Moreover, the processing capability of the whole system can be improved by these.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a multiprocessor system including an access method to a common resource according to the present invention.
FIG. 2 is a diagram showing an example of the contents of a common memory 9 in FIG.
FIG. 3 is a diagram showing an example of contents of the dual port RAM 7 of FIG. 1;
FIG. 4 is a flowchart showing an operation when the first processor writes to the common resource and the second processor reads the same common resource in the first embodiment of the present invention.
FIG. 5 is a flowchart showing an operation when the first processor writes to the common resource and the second processor writes the same common resource in the first embodiment of the present invention.
FIG. 6 is a flowchart showing an operation when the first processor reads the common resource and the second processor writes the same common resource in the first embodiment of the present invention.
FIG. 7 is a flowchart showing an operation when the first processor reads the common resource and the second processor reads the same common resource in the first embodiment of the present invention.
[Explanation of symbols]
1 First processor
2, 5 Local RAM / Boot ROM
3, 6 Local bus
4 Second processor
7 Dual port RAM
71 Tag area
72 Buffer area
72-10 Buffer (10)
72-29 Buffer (29)
8 Common bus
9 Common memory
91 Resource management area
91-0 Common resource (0) management / address information
91-m Common resource (m) management / address information
92 Common Resource Area
92-0 Common resource (0)
92-m common resources (m)

Claims (16)

2台のプロセッサが共通バスを通じ共通メモリ上の共通資源へアクセスする方式であって、各プロセッサがローカルバスを通じアクセス可能なデュアルポートメモリと、共通資源管理記憶とを含み、各プロセッサが使用する複数のユニークなタグ番号を、初期値や複数の所定値を除いて、又プロセッサ識別が出来る様に定義し、前記デュアルポートメモリ上にはこのタグ番号に対応したバッファを有し、前記共通資源管理記憶には、共通資源のロックフラグも兼ねた前記タグ番号、ロックフラグオフを示す前記初期値、或いはロックフラグオン且つリード中であることをプロセッサ別に示す前記複数の所定値を管理情報として共通資源毎に保持し、プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックし、初期値即ちロックフラグオフであれば、管理情報を前記タグ番号に更新後、共通資源への書込を行い、管理情報のタグ番号を初期化、即ちロックフラグオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値、即ちロックフラグオフかリード中であれば、管理情報を自分の所定値に更新し、共通資源からの読出を行い、管理情報が更新されてなければこれを初期化する手段と、前記チェックでタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする共通資源へのアクセス方式。A system in which two processors access a common resource on a common memory through a common bus, each of which includes a dual port memory accessible through a local bus and a common resource management storage, and is used by each processor The unique tag number is defined so that the processor identification can be performed except for the initial value and a plurality of predetermined values, and a buffer corresponding to the tag number is provided on the dual port memory, and the common resource management is performed. For storing, the tag number that also serves as the lock flag of the common resource, the initial value indicating the lock flag off, or the plurality of predetermined values indicating that the lock flag is on and being read are managed information as a common resource. Each time, the processor determines the tag number when writing to the common resource, and writes the write data to the dual port memory. In the buffer corresponding to the tag number, check the management information to be accessed, if the initial value, that is, if the lock flag is off, after updating the management information to the tag number, write to the common resource, When the tag number of the management information is initialized, that is, when the lock flag is turned off, and when reading to the common resource, the management information to be accessed is checked, and one of the initial values, that is, the lock flag is turned off or being read. If there is, the management information is updated to its own predetermined value, read from the common resource, and if the management information has not been updated, it is initialized, and if the tag number is set in the check, A method for accessing a common resource comprising means for reading data from a buffer of a dual port memory indicated by 前記プロセッサが、共通資源への書込に際し、タグ番号を決め書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックし、初期値であれば、管理情報を前記タグ番号に更新し、共通資源への書込を行い、管理情報を確認し別のタグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから管理情報を初期化する手段と、前記チェックで、管理情報にタグ番号か何れかの所定値が設定されていれば即ちロックオンであれば、管理情報を前記書込データのデュアルポートメモリへの格納時のタグ番号に更新する手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値であれば、これを自分の所定値に更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、タグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから、それぞれ管理情報を初期化する手段と、前記チェックで管理情報にタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする請求項1記載の共通資源へのアクセス方式。When writing to the common resource, the processor determines the tag number, stores the write data in the buffer corresponding to the tag number of the dual port memory in advance, checks the management information to be accessed, and if it is an initial value, Update the management information to the tag number, write to the common resource, check the management information, and if it has been updated to another tag number, retrieve the write data from the buffer corresponding to that tag number in the dual port memory Means for initializing management information after writing to the common resource, and if the tag number or any predetermined value is set in the management information in the check, that is, if the lock information is on, the management information is The means for updating the write data to the tag number at the time of storage in the dual-port memory, and when reading to the common resource, the management information to be accessed is checked, and the initial value is either If it is a fixed value, update it to its own specified value, read from the common resource, check the management information, if it has not been updated immediately, if it has been updated to the tag number, the tag of the dual port memory A means for initializing management information after fetching write data from a number-corresponding buffer and writing it to a common resource, and a dual port indicated by the tag number set in the management information in the check 2. The common resource access system according to claim 1, further comprising means for reading data from a memory buffer. 2台のプロセッサが共通バスを通じ共通メモリ上の共通資源へアクセスする方式であって、各プロセッサがローカルバスを通じアクセス可能なデュアルポートメモリと、共通資源管理記憶とを含み、各プロセッサが使用する複数のユニークなタグ番号を定義し、前記デュアルポートメモリ上にはこのタグ番号に対応したバッファを有し、前記共通資源管理記憶には、ロックフラグとリード中フラグとプロセッサ番号とタグ番号を含む管理情報を共通資源毎に保持し、プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報のロックフラグをオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号を自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認しプロセッサ番号が更新されてなければロックフラグやリード中フラグをクリアする手段と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする共通資源へのアクセス方式。A system in which two processors access a common resource on a common memory through a common bus, each of which includes a dual port memory accessible through a local bus and a common resource management storage, and is used by each processor Unique tag number is defined, a buffer corresponding to the tag number is provided on the dual port memory, and the common resource management storage includes a lock flag, a reading flag, a processor number, and a tag number. The information is held for each common resource, the processor determines the tag number when writing to the common resource, stores the write data in the buffer corresponding to the tag number of the dual port memory in advance, and stores the management information to be accessed. If it is checked and the lock flag is off, it is turned on, the processor number is its own number, and the tag number area is The management information is updated as the tag number, written to the common resource, the management information lock flag is turned off, and when reading to the common resource, the management information to be accessed is checked and the lock flag is turned off. If the reading flag is on, update the management information with the lock flag and reading flag turned on and the processor number as its own number, read from the common resource, check the management information, and update the processor number. Means for clearing the lock flag and reading flag, and means for reading data from the buffer of the dual port memory indicated by the tag number of the management information if the lock flag is on and the reading flag is off in the management information check. A common resource access method characterized by comprising: 前記プロセッサが、共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報を確認しタグ番号が更新されていればデュアルポートメモリの対応バッファより書込データを取り出し共通資源への書込を行なってからロックフラグをオフする手段と、前記チェックでロックフラグがオンであれば管理情報のタグ番号を書込データのデュアルポートメモリへの格納時のタグ番号に更新しリード中フラグをオフする手段と、共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号は自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、ロックフラグやリード中フラグをクリアし、リード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファより書込データを取り出し、共通資源に書込んでからロックフラグをオフする手段と、前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手段を有することを特徴とする請求項3記載の共通資源へのアクセス方式。When writing to the common resource, the processor determines the tag number, stores the write data in the buffer corresponding to the tag number in the dual port memory in advance, checks the management information to be accessed, and the lock flag is off. For example, if this is turned on and the processor number is self-numbered, the tag number area updates the management information as the tag number, writes to the common resource, confirms the management information, and if the tag number is updated, the dual port Means for turning off the lock flag after taking out the write data from the corresponding buffer of the memory and writing to the common resource, and if the lock flag is on in the check, the tag number of the management information is dual port of the write data A means for updating the tag number at the time of storage in the memory and turning off the reading flag, and a management information to be accessed when reading to the common resource If the lock flag is off or the reading flag is on, the lock flag and the reading flag are turned on, the management number is updated as the own number, the management information is read out, and the management information is read out. If it has not been updated, the lock flag and the reading flag are cleared immediately. If the reading flag is off, the write data is extracted from the dual port memory buffer indicated by the tag number of the management information, and used as a common resource. Means for turning off the lock flag after writing, and means for reading data from the buffer of the dual port memory indicated by the tag number of the management information if the lock flag is on and the reading flag is off in the management information check The method for accessing a common resource according to claim 3. プロセッサが、次回用タグ番号を記憶する記憶域と、共通資源への書込発生時前記記憶域より読出したタグ番号をデュアルポートメモリへの格納時タグ番号とする手段と、書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手段を有し、自プロセッサに割り当てられたタグ番号を番号順に循環使用することを特徴とする請求項1、2、3、又は4記載の共通資源へのアクセス方式。A storage area in which the processor stores a tag number for the next time, a means for setting a tag number read from the storage area when writing to a common resource to be performed into a dual port memory, and processing of a write request Means for circulating and updating the tag number of the storage area to increment or start value at the end, and cyclically using the tag numbers assigned to the processor in numerical order; Or the access method to the common resource of 4 description. 前記デュアルポートメモリ上にはタグ番号毎にその番号或いは有効性表示フラグを保持するタグエリアも有し、プロセッサが、次回用タグ番号を記憶する記憶域と、共通資源への書込発生時前記記憶域より読出したタグ番号の空きを前記タグエリアを参照し確認し、空きでなければ空き番号になるまでインクリメントや循環し前記記憶域を更新してからそれぞれ決定タグ番号とする手段と、デュアルポートメモリのタグ番号対応バッファへの書込データ格納を終えるとタグエリアの対応タグ番号を有効化し、デュアルポートメモリのタグ番号対応バッファの書込データを共通資源に格納し終えるとタグエリアの対応タグ番号を無効化する手段と、書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手段を有することを特徴とする請求項2、又は4記載の共通資源へのアクセス方式。The dual port memory also has a tag area for holding the number or validity display flag for each tag number, and the processor stores a storage area for storing the next tag number, and when the writing to the common resource occurs A tag number read from the storage area is checked by referring to the tag area, and if it is not empty, incrementing and rotating until the number becomes empty and updating the storage area, respectively, a means for determining each tag number, dual After storing the write data in the port number tag number buffer, the tag area corresponding tag number is validated, and when the dual port memory tag number corresponding buffer write data is stored in the common resource, the tag area correspondence A means for invalidating the tag number, and the tag number in the storage area is incremented or updated to the start value at the end of the processing of the write request and updated. Access method to the common resource according to claim 2 or 4, wherein the having steps. 前記2台のプロセッサをN台のプロセッサとし、前記デュアルポートメモリをNポートメモリとすることを特徴とする請求項1乃至6の何れかに記載の共通資源へのアクセス方式。7. The method for accessing a common resource according to claim 1, wherein the two processors are N processors, and the dual port memory is an N port memory. 2台のプロセッサが共用する共通メモリと前記プロセッサ間でデータをやり取りするデュアルポートメモリを備えるマルチプロセッサシステムにおいて、
前記共通メモリ上の共通資源への書込に際し、タグ番号を決め、前記デュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の共通資源の管理情報をチェックし、初期値即ちロックフラグオフであれば、管理情報を前記タグ番号に更新後、共通資源への書込を行い、管理情報のタグ番号を初期化即ちロックフラグオフする手順と、
前記共通資源への読出に際し、アクセス対象の共通資源の管理情報をチェックし初期値か何れかの所定値、即ちロックフラグオフかリード中であれば、管理情報を自分の所定値に更新し、共通資源からの読出を行い、管理情報が更新されてなければこれを初期化する手順と、
前記チェックでタグ番号がセットされていればそれが示す前記デュアルポートメモリのバッファよりデータを読出す手順とを各々の前記プロセッサに実行させるためのプログラム。
In a multiprocessor system comprising a common memory shared by two processors and a dual port memory for exchanging data between the processors,
Upon writing to a common resource on the Common memory, it determines the tag number, the access to the dual port memory, and stores in advance a write data to the tag number corresponding buffer, the management information of the common resource to be accessed If the initial value, that is, if the lock flag is off, the management information is updated to the tag number, then written to the common resource, the tag number of the management information is initialized, that is, the lock flag is off, and
When reading to the common resource, the management information of the common resource to be accessed is checked, and if the initial value is any predetermined value, that is, if the lock flag is off or being read, the management information is updated to its predetermined value, A procedure for reading from the common resource and initializing it if the management information has not been updated,
A program for causing each processor to execute a procedure of reading data from a buffer of the dual port memory indicated by a tag number set in the check.
前記共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の共通資源の管理情報をチェックし、初期値であれば、管理情報を前記タグ番号に更新し、共通資源への書込を行ない、管理情報を確認し別のタグ番号に更新されていればデュアルポートメモリのそのタグ番号に対応したバッファより書込データを取り出し共通資源への書込を行なってから管理情報を初期化する手順と、
前記チェックで、管理情報がタグ番号か何れかの所定値即ちロックオンであれば、管理情報を前記書込データのデュアルポートメモリへの格納時のタグ番号に更新する手順と、
前記共通資源への読出に際し、アクセス対象の管理情報をチェックし、初期値か何れかの所定値であれば、これを自分の所定値に更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、タグ番号に更新されていればデュアルポートメモリのそのタグ番号対応のバッファより書込データを取り出し共通資源への書込を行なってから、それぞれ管理情報を初期化する手順と、
前記チェックで管理情報にタグ番号がセットされていればそれが示すデュアルポートメモリのバッファよりデータを読出す手順とを各々の前記プロセッサに実行させるための請求項8記載のプログラム。
When writing to the common resource, the tag number is determined, the write data is stored in advance in the buffer corresponding to the tag number of the dual port memory, the management information of the common resource to be accessed is checked, and if it is the initial value If the management information is updated to the tag number and written to the common resource, the management information is confirmed and updated to another tag number, the write data is written from the buffer corresponding to the tag number of the dual port memory. To initialize the management information after taking out and writing to the common resource,
In the check, if the management information is a tag number or a predetermined value, that is, lock-on, the management information is updated to the tag number when the write data is stored in the dual port memory; and
When reading to the common resource, the management information to be accessed is checked, and if it is an initial value or any predetermined value, it is updated to its own predetermined value, read from the common resource, and the management information is If it has not been updated, immediately if it has been updated to the tag number, write data is taken out from the buffer corresponding to the tag number of the dual port memory and written to the common resource, and then the management information is initialized. The steps to
Program of claim 8, wherein for execution if the tag number is set to it and read the file data from the buffer of dual-port memory shown in each said processor of the management information by the check.
2台のプロセッサが共用する共通メモリと前記プロセッサ間でデータをやり取りするデュアルポートメモリを備えるマルチプロセッサシステムにおいて、
前記共通メモリ上の共通資源への書込に際し、タグ番号を決め、前記デュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報のロックフラグをオフする手順と、
共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号を自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認しプロセッサ番号が更新されてなければロックフラグやリード中フラグをクリアする手順と、
前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手順とを各々の前記プロセッサに実行させるためのプログラム。
In a multiprocessor system comprising a common memory shared by two processors and a dual port memory for exchanging data between the processors,
Upon writing to a common resource on the Common memory, determines the tag number, the access to the dual port memory, and stores in advance a write data to the tag number corresponding buffer, checks the management information to be accessed If the lock flag is off, turn it on, update the management information with the processor number as its own number and the tag number area as the tag number, write to the common resource, and turn off the lock flag of the management information When,
When reading to the common resource, the management information to be accessed is checked. If the lock flag is off or the reading flag is on, the management information is updated with the lock flag and reading flag turned on and the processor number as its own number. , Read from the common resource, check the management information, and if the processor number has not been updated, clear the lock flag and reading flag,
Program to be executed by the processor of each of the reading procedure of data from the buffer of dual-port memory shown is a tag number of the management information if the management information read flag lock flag is on the check is off.
前記共通資源への書込に際し、タグ番号を決め、書込データをデュアルポートメモリの前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報を確認しタグ番号が更新されていればデュアルポートメモリの対応バッファより書込データを取り出し共通資源への書込を行なってからロックフラグをオフする手順と、
前記チェックでロックフラグがオンであれば管理情報のタグ番号を書込データのデュアルポートメモリへの格納時のタグ番号に更新しリード中フラグをオフする手順と、
前記共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号は自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認し、更新されてなければ直ぐに、ロックフラグやリード中フラグをクリアし、リード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファより書込データを取り出し、共通資源に書込んでからロックフラグをオフする手順と、
前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手順とを各々の前記プロセッサに実行させるための請求項10記載のプログラム。
When writing to the common resource, the tag number is determined, the write data is stored in advance in the buffer corresponding to the tag number of the dual port memory, the management information to be accessed is checked, and if the lock flag is OFF, ON, the processor number is its own number, and the tag number area updates the management information as the tag number, writes to the common resource, confirms the management information, and if the tag number is updated, the dual port memory is supported A procedure for turning off the lock flag after taking out the write data from the buffer and writing to the common resource,
If the lock flag is on in the check, a procedure for updating the tag number of the management information to the tag number at the time of storing the write data in the dual port memory and turning off the reading flag;
When reading to the common resource, the management information to be accessed is checked, and if the lock flag is off or the reading flag is on, the lock flag and the reading flag are turned on, and the management information is updated with the processor number as its own number. Read from the common resource, check the management information, and if it has not been updated, immediately clear the lock flag and the reading flag, and if the reading flag is off, the dual port indicated by the tag number of the management information A procedure for taking out the write data from the memory buffer, writing it to the common resource, and then turning off the lock flag;
11. The method for causing each of the processors to execute a procedure of reading data from a buffer of a dual port memory indicated by a tag number of management information when a lock flag is turned on and a reading flag is turned off in the management information check. program described.
前記共通資源への書込に際し、次回用タグ番号記憶域より読出したタグ番号を前記デュアルポートメモリへの格納時タグ番号とする手順と、
書込要求の処理終了で前記記憶域のタグ番号をインクリメントないし開始値に循環させ更新する手順を各々の前記プロセッサに実行させるための請求項8、9、10、又は11記載のプログラム。
A procedure for setting the tag number read from the tag number storage area for the next time as the tag number when stored in the dual port memory when writing to the common resource,
Program of claim 8, 9, 10, or 11, wherein for executing the steps of the process completion of the write request to update is circulated tag number of the storage to increment or start value to the processor of each.
前記共通資源への書込に際し、次回用タグ番号記憶域より読出したタグ番号の空きを、デュアルポートメモリ上のタグ番号管理エリアを参照して確認し、空きでなければ空き番号になるまでインクリメントや循環し前記記憶域の更新をしてからそれぞれ決定タグ番号とする手順と、
デュアルポートメモリのタグ番号対応バッファへの書込データ格納を終えると前記タグ番号管理エリアの対応タグ番号を有効化し、デュアルポートメモリのタグ番号対応バッファの書込データを共通資源に格納し終えると前記タグ番号管理エリアの対応タグ番号を無効化する手順と、
書込要求の処理終了で次回用タグ番号記憶域の番号をインクリメントないし開始値に循環させ更新する手順を各々の前記プロセッサに実行させるための請求項9、又は11記載のプログラム。
When writing to the common resource, the empty tag number read from the tag number storage area for the next time is checked by referring to the tag number management area on the dual port memory, and if it is not empty, it is incremented until the empty number is reached. Or a procedure for recurring and updating the storage area and setting each as a decision tag number,
When the write data storage in the tag number corresponding buffer of the dual port memory is completed, the corresponding tag number of the tag number management area is validated, and the write data of the dual port memory tag number corresponding buffer is stored in the common resource A procedure for invalidating the corresponding tag number in the tag number management area;
Program of claim 9, or 11, wherein for executing the procedure for updating circulating the number of tag number storage for the next time increment to the start value at the end of processing write requests to the processor of each.
前記共通資源をN台のプロセッサが共通バスを通じアクセスする共通メモリ上の共通資源とし、前記デュアルポートメモリをN台のプロセッサのローカルバスに接続されたNポートメモリとすることを特徴とする請求項8乃至13の何れかに記載のプログラム。The common resource is a common resource on a common memory that N processors access through a common bus, and the dual port memory is an N port memory connected to a local bus of N processors. program according to any of 8 to 13. 2台のプロセッサが共用する共通メモリと前記プロセッサ間でデータをやり取りするデュアルポートメモリを備えるマルチプロセッサシステムにおける共通資源へのアクセス方法であって、A method for accessing common resources in a multiprocessor system comprising a common memory shared by two processors and a dual port memory for exchanging data between the processors,
各々の前記プロセッサが、Each said processor is
前記共通メモリ上の共通資源への書込に際し、タグ番号を決め、前記デュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の共通資源の管理情報をチェックし、初期値即ちロックフラグオフであれば、管理情報を前記タグ番号に更新後、共通資源への書込を行い、管理情報のタグ番号を初期化即ちロックフラグオフする手順と、When writing to the common resource on the common memory, the tag number is determined, the dual port memory is accessed, the write data is stored in the buffer corresponding to the tag number in advance, and the management information of the common resource to be accessed is stored. Check, if the initial value, i.e., lock flag off, after updating the management information to the tag number, write to the common resource, initialize the tag number of the management information, i.e., lock flag off,
前記共通資源への読出に際し、アクセス対象の共通資源の管理情報をチェックし初期値か何れかの所定値、即ちロックフラグオフかリード中であれば、管理情報を自分の所定値に更新し、共通資源からの読出を行い、管理情報が更新されてなければこれを初期化する手順と、When reading to the common resource, the management information of the common resource to be accessed is checked, and if the initial value is any predetermined value, that is, if the lock flag is off or being read, the management information is updated to its predetermined value, A procedure for reading from the common resource and initializing it if the management information has not been updated,
前記チェックでタグ番号がセットされていればそれが示す前記デュアルポートメモリのバッファよりデータを読出す手順とを有することを特徴とする共通資源へのアクセス方法。And a method of reading data from the buffer of the dual port memory indicated by the tag number set in the check.
2台のプロセッサが共用する共通メモリと前記プロセッサ間でデータをやり取りするデュアルポートメモリを備えるマルチプロセッサシステムにおける共通資源へのアクセス方法であって、
各々の前記プロセッサが、
前記共通メモリ上の共通資源への書込に際し、タグ番号を決め、前記デュアルポートメモリにアクセスし、書込データを前記タグ番号対応のバッファに予め格納し、アクセス対象の管理情報をチェックしロックフラグがオフであれば、これをオンとしプロセッサ番号は自番号としタグ番号エリアは前記タグ番号として管理情報を更新し、共通資源への書込を行い、管理情報のロックフラグをオフする手順と、
共通資源への読出に際し、アクセス対象の管理情報をチェックし、ロックフラグがオフかリード中フラグがオンであれば、ロックフラグとリード中フラグをオンとしプロセッサ番号を自番号として管理情報を更新し、共通資源からの読出を行い、管理情報を確認しプロセッサ番号が更新されてなければロックフラグやリード中フラグをクリアする手順と、
前記管理情報チェックでロックフラグがオンでリード中フラグがオフであれば管理情報のタグ番号が示すデュアルポートメモリのバッファよりデータを読出す手順とを有することを特徴とする共通資源へのアクセス方法
A method for accessing common resources in a multiprocessor system comprising a common memory shared by two processors and a dual port memory for exchanging data between the processors,
Each said processor is
When writing to the common resource on the common memory, the tag number is determined, the dual port memory is accessed, the write data is stored in the buffer corresponding to the tag number in advance, the management information to be accessed is checked and locked If the flag is off, turn it on, the processor number is its own number, the tag number area is the tag number, updates the management information, writes to the common resource, and turns off the lock flag of the management information ,
When reading to the common resource, the management information to be accessed is checked. If the lock flag is off or the reading flag is on, the management information is updated with the lock flag and reading flag turned on and the processor number as its own number. , Read from the common resource, check the management information, and if the processor number has not been updated, clear the lock flag and reading flag,
And a method of reading data from the dual port memory buffer indicated by the tag number of the management information if the lock flag is on and the read flag is off in the management information check. .
JP2002374065A 2002-12-25 2002-12-25 Common resource access method, common resource access method, and program Expired - Fee Related JP4122968B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002374065A JP4122968B2 (en) 2002-12-25 2002-12-25 Common resource access method, common resource access method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002374065A JP4122968B2 (en) 2002-12-25 2002-12-25 Common resource access method, common resource access method, and program

Publications (2)

Publication Number Publication Date
JP2004206369A JP2004206369A (en) 2004-07-22
JP4122968B2 true JP4122968B2 (en) 2008-07-23

Family

ID=32812194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002374065A Expired - Fee Related JP4122968B2 (en) 2002-12-25 2002-12-25 Common resource access method, common resource access method, and program

Country Status (1)

Country Link
JP (1) JP4122968B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7723601B2 (en) * 2007-03-22 2010-05-25 Qualcomm Incorporated Shared buffer management for processing audio files
JP2009258937A (en) 2008-04-16 2009-11-05 Sony Corp Information processor, information processing method and computer program
JP5397546B2 (en) * 2010-07-27 2014-01-22 富士通株式会社 Multi-core processor system, control program, and control method
FR3004825B1 (en) * 2013-04-19 2015-04-24 Krono Safe TIME ALLOCATION METHOD OF TASKS FOR REAL-TIME DETERMINISTIC ERROR RECOVERY
JP5621896B2 (en) * 2013-10-24 2014-11-12 富士通株式会社 Multiprocessor system, control program, and control method
CN106649189B (en) * 2015-10-28 2021-04-09 中兴通讯股份有限公司 Method for managing hardware resources in multi-core system and corresponding multi-core system

Also Published As

Publication number Publication date
JP2004206369A (en) 2004-07-22

Similar Documents

Publication Publication Date Title
EP1960878B1 (en) Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions
US6665783B2 (en) Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes
US6141734A (en) Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
JPH0561770A (en) Coherent means of data processing system
JP3900025B2 (en) Hit determination control method for shared cache memory and hit determination control method for shared cache memory
JP5241384B2 (en) Distributed shared memory multiprocessor and data processing method
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
JP2007048296A (en) Method, apparatus and system for invalidating multiple address cache entries
JPH04184534A (en) Processor
JP4122968B2 (en) Common resource access method, common resource access method, and program
CA1285654C (en) Instruction control mechanism for a computing system
US20100077155A1 (en) Managing shared memory through a kernel driver
JPH01233535A (en) Computer system
JPH06139149A (en) Multiple virtual space control device
JP2000003302A (en) Method for controlling exclusive access of common memory
US20080209085A1 (en) Semiconductor device and dma transfer method
JP3381079B2 (en) Exclusive control system using cache memory
EP0271187A2 (en) Split instruction and operand cache management
US7797491B2 (en) Facilitating load reordering through cacheline marking
JP3381086B2 (en) Exclusive controllable multiprocessor system
JPS6285372A (en) Comparing and swapping system in multi-processor system
JPH06187239A (en) Data coincidence control system for multi-layered cache memory
JPH0773035A (en) Multiprocessor system
JP2814683B2 (en) Instruction processing unit
JP2540959B2 (en) Information processing device

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051017

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

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: 20080408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080421

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140516

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees