JP5900272B2 - アクセス制御回路、アクセス制御方法 - Google Patents

アクセス制御回路、アクセス制御方法 Download PDF

Info

Publication number
JP5900272B2
JP5900272B2 JP2012220125A JP2012220125A JP5900272B2 JP 5900272 B2 JP5900272 B2 JP 5900272B2 JP 2012220125 A JP2012220125 A JP 2012220125A JP 2012220125 A JP2012220125 A JP 2012220125A JP 5900272 B2 JP5900272 B2 JP 5900272B2
Authority
JP
Japan
Prior art keywords
address
access
shared resource
processor
bus
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
JP2012220125A
Other languages
English (en)
Other versions
JP2014071855A (ja
Inventor
謙一 平山
謙一 平山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2012220125A priority Critical patent/JP5900272B2/ja
Publication of JP2014071855A publication Critical patent/JP2014071855A/ja
Application granted granted Critical
Publication of JP5900272B2 publication Critical patent/JP5900272B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明は、アクセス制御回路、アクセス制御方法に関する。
近年、複数のプロセッサ間でリソース(マクロやメモリ)を共有するマルチプロセッサシステムが多く用いられている。そのようなマルチプロセッサシステムでは、共有のリソースが、複数のプロセッサによってアクセスされる。そこで、あるプロセッサによって共有リソースが使用中である場合には、他のプロセッサからのアクセスをハードウェア的に排他可能にするアクセス制御回路を有するシステムがある。
このようなシステムでは、例えば、プロセッサがバスを介して共有リソースにアクセスする場合、プロセッサは、バスのアドレス信号線にプロセッサの識別番号を設定することによって、共有リソースのアクセス権を取得する。このため、アクセス権が解放されるまでの間、別のプロセッサによって同一の共有リソースのアクセス権が要求された場合、その都度、アクセス要求とエラー応答がバスに出力される。
または、例えば、システムが共有リソースへのアクセス可否情報を有し、アクセス可否情報に基づいて、各プロセッサから共有リソースへのアクセスを制御する。この場合、例えば、プロセッサからの専用命令に基づいてアクセス可否情報の更新が行われることによって、プロセッサによるアクセス権の取得、解放処理が行われる。
このようなシステムは、例えば、特許文献1、2に記載される。
特開2003−280980号公報 特開2007−264679号公報
しかしながら、このようなシステムでは、共有リソースのアクセス権を取得、解放するために、プロセッサによるアクセスが逐一発生する。このため、共有リソースへのアクセスは、共有リソースへのアクセス権の取得、共有リソースに対する処理、アクセス権の解放という一連の流れで行われる。これにより、プログラムのコード量が増加し、プロセッサの性能劣化の要因になると共に、プログラムの複雑化による障害が発生し易くなる。
また、あるプロセッサによってアクセス権が取得されている間に、他のプロセッサによる共有リソースへのアクセス要求が発生する場合、アクセス要求が発生する都度、アクセス要求とエラー応答がバスに出力されることによって、バス使用率が増加し、バスの使用効率が悪化する。
このように、複数のプロセッサによる共有リソースへのアクセスを制御するアクセス制御回路を有するシステムでは、性能劣化やプログラムの複雑化、バスの使用効率の悪化が課題であった。
本発明は、共有リソースのアクセス制御を効率化するアクセス制御回路、アクセス制御方法を提供することにある。
第1の側面は、複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御回路であって、前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有する。
第1の側面によれば、共有リソースのアクセス制御を効率化することができる。
本実施の形態例におけるアクセス制御回路を有するマルチプロセッサシステムの一例を示す図である。 一般的なプログラムと、本実施の形態例におけるプログラムの例図である。 本実施の形態例におけるアクセス制御回路の詳細な構成を表す例図である。 本実施の形態例におけるアクセス制御回路のフローチャート図である。 本実施の形態例におけるアドレスマップの具体例を説明する図である。 本実施の形態例におけるアドレス変換のための減算処理を説明する図である。 第2の実施の形態例におけるアドレスマップの具体例を説明する図である。 第2の実施の形態例におけるアドレス変換のための減算処理を説明する図である。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[マルチプロセッサシステムの構成]
図1は、本実施の形態例におけるアクセス制御回路を有するマルチプロセッサシステム100の一例を示す図である。同図のマルチプロセッサシステム100は、例えば、複数のプロセッサA10、B20、アクセス制御回路30、プロセッサA10、プロセッサB20からアクセス可能な共有リソースA51〜共有リソースC53(以下、共有リソース51〜53)を有する。
本実施の形態例において、アクセス制御回路30、及び、各共有リソース51〜53は、共通の共有バス40を介してお互いに接続される。また、複数のプロセッサであるプロセッサA10、プロセッサB20は、それぞれ、アクセス制御回路30における対応するアドレス制御部A31a、アドレス制御部B31b(以下、アドレス制御部31a、31b)と専用バスを介して接続される。
[共有リソース]
本実施の形態例において、共有リソース51〜53とは、例えば、複数のプロセッサから共通にアクセスされる共有メモリや、回路マクロのレジスタ等を示す。共有リソース51〜53は、複数のプロセッサから同時にアクセスされる可能性を有する。共有リソース51〜53が複数のプロセッサから同時にアクセスされた場合、例えば、共有メモリに記憶された情報や回路マクロのレジスタが保持する情報の整合性が失われてしまう。これにより、システムが暴走してしまう可能性がある。
そこで、一般的な共有リソースのアクセス制御では、プロセッサA10によって共有リソースA51のアクセス権が取得されている間、プロセッサB20から同じ共有リソースA51へのアクセス権の取得が要求された場合であっても、プロセッサB20によるアクセス権の取得は許可されない。プロセッサB20によるアクセス権の取得は、プロセッサA10の共有リソースA51へのアクセス権が解放された後に許可される。
[アクセス制御回路]
また、図1のアクセス制御回路30は、複数のプロセッサA、Bと共有バス40との間に配置され、各プロセッサからの共有リソース51〜53へのアクセスを制御する。アクセス制御回路30は、例えば、それぞれのプロセッサに対応するアドレス制御部31a、31bと、アクセス監視部32とを有する。
アドレス制御部31a、31bは、必要に応じて共有リソース51〜53へのアクセスをブロックする機能、プロセッサA10、プロセッサB20にエラー応答を返す機能、アクセス権解放時のアドレス変換機能等を有する。処理の詳細については、後述する。また、アクセス監視部32は、各共有リソース51〜53について、当該共有リソースのアクセス権を取得中のプロセッサのID(以下、CPU−ID)を保持するレジスタを有する。アドレス制御部31a、31b、及び、アクセス監視部32は、共有リソース51〜53に対応するCPU−IDと、アクセス元のプロセッサのIDとを比較することにより、共有リソース51〜53のアクセスを制御する。
[第1の実施の形態例]
本実施の形態例におけるアクセス制御回路30は、共有リソース51〜53へのアクセス権の解放のための命令、及び、アクセス権の取得のための命令を不要にする。
[アクセス制御回路:アクセス権の解放]
まず、共有リソース51〜53のアクセス権の解放について、本実施の形態例におけるアクセス制御回路30は、プロセッサA10、B20からのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する共有リソース51〜53の共有リソースアドレスにアドレス変換してバス40に出力すると共に、当該プロセッサによる共有リソース51〜53へのアクセス権を解放する。また、アクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合に、アクセス対象アドレスをアドレス変換することなくバス40に出力する。
このようなアクセス制御回路30によると、プロセッサは、共有リソース51〜53のアクセス処理を終了する際に、共有リソース51〜53のアクセス権の解放処理を別途指示する必要がない。
[アクセス制御回路:アクセス権の取得]
そして、共有リソース51〜53のアクセス権の取得について、本実施の形態例におけるアクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合であって共有リソースアドレスである場合に、共有リソース51〜53へのアクセス権が当該プロセッサに取得されているときはアクセス対象アドレスをバス40に出力する。また、アクセス制御回路30は、共有リソース51〜53へのアクセス権がいずれのプロセッサによっても取得されていないときはアクセス権を当該プロセッサに取得させると共にアクセス対象アドレスをバス40に出力し、別のプロセッサによって取得されているときはアクセス対象アドレスをバス40に出力しない。
このようなアクセス制御回路30によると、プロセッサは、共有リソース51〜53のアクセス処理を開始する際に、共有リソース51〜53のアクセス権の取得処理を別途指示する必要がない。
ここで、本実施の形態例のアクセス制御回路30を有するシステムにおけるプログラムの一例を、一般的なプログラムと対比して説明する。
[共有リソースへのアクセス処理を指示するプログラム例]
図2は、一般的な共有リソースのアクセス処理を指示するプログラムP1と、本実施の形態例のアクセス制御回路30を有するシステムにおいて、共有リソースへのアクセス処理を指示するプログラムP2の一例を表す図である。同図の左のプログラムP1は、共有リソースへのアクセス処理を記述した一般的なプログラムの具体例であり、右のプログラムP2は、本実施の形態例におけるプロセッサによって処理されるプログラムの具体例である。
[一般的なプログラム例]
まず、一般的なプログラムP1の具体例について説明する。一般的なプログラムP1例では、共有リソース51〜53へアクセスを行う場合、例えば、共有メモリへの書き込み処理を行うような場合、共有リソースへのアクセス処理c2を示す命令の前後に共有リソースのアクセス権の取得c1、及び、解放処理c3を示す命令が必要となる。このため、共有リソースへのアクセス処理c2が1つ命令で指示可能な些細な処理であったとしても、必ず、その前後に当該共有リソースへのアクセス権の取得命令c1、及び、解放命令c3が必要となる。
例えば、共有リソースA51のアクセス権がプロセッサB20によって取得されているときに、プロセッサA10によって共有リソースA51へのアクセスが行われる場合の処理の流れについて説明する。このような場合、プロセッサB20によって共有リソースA51のアクセス権の解放処理が行われた後、プロセッサA10による同アクセス権が取得され、共有リソースA51へのアクセス処理が行われる。プロセッサA10によるアクセス処理が終了すると、アクセス権の解放処理が行われ、必要に応じて、再び、プロセッサB20によってアクセス権の取得処理が行われる。
このように、共有リソースへのアクセス処理の前後に共有リソースへのアクセス権を制御する多数の命令が処理される。これにより、各プロセッサが処理する命令量が増加し、プロセッサの性能が低下する。また、プログラムP1の記述が複雑化し、障害を誘発する。ここで、発生し易い障害の一例について説明する。
例えば、プログラムP1において、アクセス権の取得命令の記述c1が漏れた場合、共有リソースの不正アクセスが発生する。この結果、共有リソースの整合性が保証されない。これは、アクセス権を取得中のプロセッサ(例えば、プロセッサB20)による共有リソースのアクセス中に、別のプロセッサ(例えば、プロセッサA10)による同一の共有リソースへのアクセスを許可してしまう場合を示す。これにより、例えば、共有メモリが複数のプロセッサによって同時に更新されるような事態を発生させ、共有メモリの整合性が失われる。
また、例えば、アクセス権の解放命令の記述が漏れた場合、あるプロセッサによって共有リソースのアクセス権が不正に取得されたままとなり、他のプロセッサによるアクセス権の取得が失敗する。これにより、他のプロセッサによって、共有リソースへのアクセスが行えず、プログラムの処理が適切に行われない。
[本実施の形態例におけるプログラム例]
一方、本実施の形態例におけるプログラムP2では、共有リソースへのアクセス処理を示す命令c4の前後に共有リソースのアクセス権の取得、及び、解放処理を示す命令が不要である。ただし、共有リソースへの最終のアクセス命令において、アクセス対象のアドレスとして、アクセス対象の共有リソースのアドレスに対応するダミーアドレスが指定される。プログラムP2では、プロセッサが処理する命令量が増加しないことにより、プロセッサの性能が向上する。また、プログラムP2の記述がシンプルであるため、上述したような障害が回避される。
続いて、本実施の形態例におけるアクセス制御回路30の構成について具体的に説明する。
[アクセス制御回路30の詳細な構成]
図3は、本実施の形態例におけるアクセス制御回路30の詳細な構成を表す例図である。本実施の形態例におけるアクセス制御回路30は、プロセッサA10、B20に対応するアドレス制御部A31a、31bと、アクセス監視部32とを有する。同図では、図1に対して、プロセッサB20、及び、プロセッサB20に対応するアドレス制御部B31bが省略されているが、アドレス制御部B31bの構成は、アドレス制御部A31aと同様である。
図3のアドレス制御部A31aは、例えば、アクセスマスク/アドレス変換ユニット311、アドレスデコーダ312、エラー応答ユニット310を有する。アドレスデコーダ312は、対応するプロセッサA10によって専用のアドレスバスへの値s2、専用のコントロールバスへの制御値s3に基づいて、共有リソースへのアクセスが発生したか否かを判定する。共有リソースへのアクセスが発生したと判定された場合、アドレスデコーダ312は、プロセッサのIDをアクセス監視部32に出力する(s4)。
アクセスマスク/アドレス変換ユニット311は、共有リソースへのアクセスを検知した場合、アクセス監視部32から入力される共有リソースに対応するCPU−ID(s5)と、接続されるプロセッサのIDとを比較し、一致する場合、及び、CPU−IDが未登録の場合、共有リソースへのアクセス指示s2、s3を共有バス40に出力する。一方、一致しない場合、アクセスマスク/アドレス変換ユニット311は、共有リソースへのアクセス指示をブロックして共有バス40に出力せず、エラー応答ユニット310にエラー通知トリガを出力する。これにより、エラー応答ユニット310は、対応するプロセッサにアクセスに対するエラー応答s1を出力する。
また、アクセスマスク/アドレス変換ユニット311は、ダミーアドレスへのアクセスを検知した場合は、共有リソースに対応する最終アクセスと判定する。この場合、アクセスマスク/アドレス変換ユニット311は、ダミーアドレスを変換した実際の共有リソースアドレスs2´を共有アドレスバスに、制御値s3を共有コントロールバスに出力し、アクセス監視部32にCPU−IDのクリア指示s6を出力する。
また、図3のアクセス監視部32は、共有リソース毎に、共有リソースのアクセス権を取得中のプロセッサのIDをCPU−IDとしてレジスタに保持するレジスタユニット321を有する。そして、共有リソースへのアクセスが発生すると、アクセス制御回路30からアクセス監視部32に対して、アクセス元のプロセッサのID(s4)が出力される。
アクセス監視部32は、レジスタユニット321の共有リソースに対応するCPU−IDと、入力されたプロセッサのID(s4)とを比較し、異なる場合は、共有リソースに対応するCPU−IDの更新を行わない。これは、共有リソースのアクセス権が、他のプロセッサによって既に取得されている場合を示す。一方、CPU−IDと入力されたプロセッサのIDとが一致する場合、アクセス権がアクセス元のプロセッサによって取得済みであることを示す。このため、アクセス監視部32は、レジスタユニット321のCPU−IDの更新を行わない。または、CPU−IDが未登録の場合、アクセス権がいずれのプロセッサによっても取得されていないことを示すため、アクセス監視部32は、入力されたプロセッサのIDを新たなCPU−IDとして登録する。
続いて、アクセス制御回路30の処理の流れについて、フローチャート図に基づいて説明する。
[共有リソースへのアクセス処理]
図4は、本実施の形態例におけるアクセス制御回路30の共有リソースへのアクセス処理の流れについて説明するフローチャート図である。同図のフローチャート図では、例えば、プロセッサA10による共有リソースA51へのアクセス処理について説明する。ただし、プロセッサB20による、別の共有リソースへのアクセス処理についても同様である。
まず、プロセッサA10から共有リソースA51に対するアクセスs2、s3が発生すると(S11)、アドレス制御部A31aは、アクセス監視部32から入力される、共有リソースA51に対応するCPU−ID(s5)に基づいて、共有リソースA51がアクセス可能な状態であるか否かを判定する(S12)。
CPU−IDがいずれのプロセッサも示さない場合、共有リソースA51のアクセス権がいずれのプロセッサによっても取得されておらず、アクセス可能な状態であることを示す(S12のYES)。そこで、アドレス制御部A31aは、プロセッサA10のアクセス指示s2、s3を共有バス40に出力すると共に、アクセス監視部32は、共有リソースA51に対応するCPU−IDをプロセッサA10のIDに更新する(S13)。これにより、共有リソースA51がプロセッサA10によって使用中であることが登録される。つまり、共有リソースA51のアクセス権がプロセッサA10に取得される。
また、CPU−IDがプロセッサA10のIDと同一である場合、共有リソースA51のアクセス権が既にプロセッサA10によって取得済みであり、共有リソースA51へアクセス可能な状態であることを示す(S12のYES)。そこで、アドレス制御部A31aは、プロセッサA10のアクセス指示s2、s3を共有バス40に出力する。このとき、アクセス監視部32は、共有リソースA51に対応するCPU−IDをプロセッサA10のIDに維持する(S13)。そして、プロセッサA10から共有リソースA51へのアクセス処理の指示が共有バス40に出力される(S15)。
一方、CPU−IDが他のプロセッサ(例えば、プロセッサB20)のIDである場合、共有リソースA51のアクセス権が他のプロセッサ(プロセッサB20)によってアクセス中であることを示す(S12のNO)。この場合、アドレス制御部A31aは、プロセッサA10によるアクセス指示を共有バス40に通知せず(S14)、アクセス指示をブロックする。また、アドレス制御部A31aは、プロセッサA10にエラー応答s1を出力して、共有リソースA51のアクセス権が他のプロセッサによって取得されていることを通知する(S14)。
そして、共有リソースA51への最終アクセスの場合(S16のYES)、プログラムには、予め、認識するアクセス対象のアドレスに対応するダミーアドレスに対するアクセス処理が記述される(S17)。即ち、プログラムには、予め、最終アクセス対象のアドレスに対応するダミーアドレスが記述される。このように、最終アクセス時のみ、アクセス対象の共有リソースA51アドレスに対応するダミーアドレスが、アクセス対象アドレスとしてプログラムに記述される。
アドレス制御部A31aは、ダミーアドレスであることを検知すると、ダミーアドレスに対応する共有リソースA51への最終アクセスであることを認識する。そこで、アドレス制御部A31aは、ダミーアドレスを対応する共有リソースA51のアドレスに変換し、共有バス40に出力する(S18)。即ち、アドレス制御部A31aは、ダミーアドレスを実アドレスに変換した上で共有バス40に出力する(s2´、s3)。また、アドレス制御部A31aは、共有リソースA51に対応するCPU−ID(プロセッサA10のID)のクリアトリガs6をアクセス監視部32に出力し、アクセス監視部32は、共有リソースA51に対応するCPU−IDをクリアする(S18)。これにより、共有リソースA51のアクセス権が解放され、非使用状態となる。このように、アクセス権解放用の命令を別途必要とすることなく、最終アクセス時に合わせて、プロセッサA10の共有リソースA51へのアクセス権が解放可能される。
続いて、アドレス変換処理の詳細について説明する。
[アドレス変換処理]
本実施の形態例において、共有リソースに対応するダミーアドレスは、予め、アクセス制御回路30のアドレス制御部A31aによって認識されている。このため、ダミーアドレスへのアクセスが発生した場合、アドレス制御部A31aは、共有リソースへの最終アクセスであることを認識し、アドレス変換することができる。本実施の形態例におけるアドレス変換処理では、ダミーアドレスから所定の値が減算されることによって、当該ダミーアドレスに対応する共有リソースのアドレスが取得される。
ここで、メモリマップにおける共有リソースのアドレスと、ダミーアドレスについて図に基づいて説明する。
[アドレスマップの具体例]
図5は、本実施の形態例におけるアドレスマップAM1の具体例を説明する図である。ダミーアドレスは、それぞれの共有リソースのアドレスに対応して、アドレスマップAM1上に任意の領域に確保される。ダミーアドレスはメモリマップAM1上の使用されていないアドレスである。また、ダミーアドレスは、物理アドレスに対応している必要はない。ダミーアドレスの領域範囲のサイズは、対応する共有リソースのアドレスの領域範囲のサイズと同一である。
図5のアドレスマップAM1は、例えば、プロセッサA10のアドレスマップAM1である。例えば、プロセッサA10は32bitのプロセッサであるため、4GBのアドレス空間を有する。同図のアドレスマップAM1では、共有リソースA51のアドレス領域raと対応するダミーアドレス領域da、共有リソースB52のアドレス領域rbと対応するダミーアドレス領域dbが表されている。共有リソースC53のアドレス領域、及び、ダミーアドレス領域については、省略されている。
図5のアドレスマップAM1の例において、共有リソースA51のアドレス領域raは、0x0000_1000〜0x0000_2000の4KBの領域である。また、共有リソースA51のアドレス領域raに対応するダミーアドレスの領域daは、0x2000_2000〜0x2000_3000の4KBの領域である。このように、ダミーアドレスの領域daとして、共有リソースのアドレス領域raと同じサイズのアドレスが設定される。同様にして、共有リソースB52の0x7000_1000〜0x7000_2000の4KBのアドレス領域rbに対応して、0xA000_3000〜0xA000_4000の4KBのダミーアドレス領域dbが設定される。
前述したとおり、本実施の形態例では、最終アクセス時のみ、共有リソースアドレスに対応するダミーアドレスにアクセスするようにプログラムが記述される。例えば、共有リソースA51のアドレス0x0000_1000へのアクセスであって、最終アクセスである場合、アドレス0x2000_2000へのアクセス指示がプログラムに記述される。同様にして、共有リソースB52のアドレス0x7000_1500へのアクセスであって、最終アクセスである場合、アドレス0xA000_3500へのアクセス指示がプログラムに記述される。
このように、予め、アドレスマップAM1上で、各共有リソースのアドレスに対応して、最終アクセス用のダミーアドレスが設定される。アドレス制御部A31aは、ダミーアドレスと対応する共有リソースのアドレスとを予め認識していることから、ダミーアドレスに基づいて、対応する共有リソースのアドレスを簡易に取得できる。本実施の形態例では、ダミーアドレスの領域da、dbと対応する共有リソースのアドレス領域ra、rbとが同サイズであることから、ダミーアドレスから所定値の減算処理によって、対応する共有リソースのアドレスが取得可能となる。続いて、本実施の形態例におけるアドレス変換処理の仕様について、図5のアドレスマップAM1に基づいて説明する。
[アドレス変換仕様]
図6は、本実施の形態例におけるアドレス変換のための減算処理の仕様を説明する図である。同図の表H1において、共有リソースA51、共有リソースB52について、共有リソースのアドレス領域ra、rb、及び、対応するダミーアドレスの領域da、db、アドレス変換処理を行う減算処理の演算式が表されている。
図6のアドレス変換仕様表H1において、共有リソースA51の減算式は、「ダミーアドレス−0x2000_1000」である。例えば、図5において例示した、最終アクセスとしてアドレス0x2000_2000にアクセスされる例において、「0x2000_2000−0x2000_1000」の演算処理によって、対応する実アドレス0x0000_1000が算出される。同様にして、共有リソースB52の減算式は、「ダミーアドレス−0x3000_2000」である。例えば、図5においても例示した、最終アクセスとしてアドレス0xA000_3500にアクセスされる例において、「0xA000_3500−0x3000_2000」の演算処理によって、対応する実アドレス0x7000_1500が算出される。
このように、ダミーアドレスと対応する共有リソースのアドレスとが予め認識されていることから、所定の演算式によって、対応する共有リソースのアドレスが簡易に算出される。また、ダミーアドレスの領域と対応する共有リソースのアドレス領域とが同サイズであることから、ダミーアドレスの所定値による簡易な演算によって実アドレスの取得が可能になる。
本実施の形態例では、ダミーアドレス領域が、共有リソースのアドレス領域よりメモリマップAM1(図5)上のアドレス値の大きい領域に設定される。このため、アドレス変換処理は、ダミーアドレスから所定値の減算によって行われる。ただし、ダミーアドレスの領域はアドレスマップAM1上のいずれのアドレスに設定されてもよい。例えば、ダミーアドレス領域が、共有リソースのアドレス領域よりメモリマップ上のアドレス値のより小さい領域に設定された場合、アドレス変換処理は、ダミーアドレスに対する所定値の加算によって行われる。
また、アドレスの変換処理は、減算演算、加算演算に限定されるものではない。ダミーアドレスに対して一意に対応する共有リソースのアドレスが取得可能であれば、いずれの演算式によって変換されてもよい。また、アドレス変換処理は、演算処理ではなく、例えば、ダミーアドレスに対応する共有リソースが対応付けられた変換テーブルが参照されることによって行われてもよい。
以上のようにして、本実施の形態例におけるアクセス制御回路30は、複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する共有リソースの共有リソースアドレスにアドレス変換してバスに出力すると共に、第1のプロセッサによる共有リソースへのアクセス権を解放する。また、アクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合に、アクセス対象アドレスをアドレス変換することなくバスに出力する。
このため、プロセッサは、共有リソースのアクセス処理を終了する際に、共有リソースのアクセス権の解放処理を別途指示する必要がない。これにより、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減される。また、共有リソースへのアクセス処理を指示する命令が単純化されることにより、アクセス権の解放命令の記載漏れ等を起因とするプログラムの障害が回避される。この結果、プログラムに係る検証コスト、製造、移植コスト等が削減される。
また、本実施の形態例におけるアクセス制御回路30において、ダミーアドレスの範囲は、共有リソースアドレスの範囲と同一サイズであって、管理手段のアドレス変換は、ダミーアドレスに所定値を加算または減算することにより、共有リソースアドレスに変換する。これにより、ダミーアドレスの所定値による簡易な加算演算や減算演算によって実アドレスの取得が可能になる。
また、本実施の形態例におけるアクセス制御回路30の管理手段は、さらに、アクセス対象アドレスがダミーアドレスではない場合に、共有リソースへのアクセス権が第1のプロセッサに取得されているときはアクセス対象アドレスをバスに出力する。また、管理手段は、共有リソースへのアクセス権が複数のプロセッサのいずれによっても取得されていないときはアクセス権を第1のプロセッサに取得させると共にアクセス対象アドレスをバスに出力し、アクセス権が第1のプロセッサと異なるプロセッサによって取得されているときはアクセス対象アドレスをバスに出力しない。
このため、プロセッサは、共有リソースのアクセス処理を開始する際に、共有リソースのアクセス権の取得処理を別途指示する必要がない。これにより、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減される。また、共有リソースへのアクセス処理を指示する命令が単純化されることにより、アクセス権の取得命令の記載漏れ等を起因とするプログラムの障害が回避される。この結果、プログラムに係る検証コスト、製造、移植コスト等が削減される。
また、本実施の形態例におけるアクセス制御回路30を実装するに当たり、既存のマルチプロセッサシステムにおける各プロセッサ、共有リソース、及び、バスに変更を加える必要がない。また、共有リソースのアクセス権の取得、及び開放処理を指示する専用命令も必要ない。これにより、本実施の形態例におけるアクセス制御回路30は、既存のマルチプロセッサシステムに対して、簡易に実装可能となる。
さらに、本実施の形態例におけるアクセス制御回路30は、複数のプロセッサと共通のバスとの間に設置される。これにより、共有リソースのアクセス権の取得、及び、解除処理に係るアクセスや、アクセス権の取得指示に対応するエラー応答がバスに出力されない。これにより、例えば、アクセス権が他のプロセッサによって取得されている場合、アクセス権が要求される度に、アクセス権の取得指示、及び、エラー応答がバスに出力されることが回避される。したがって、バスの使用率が抑えられ、バスの使用効率が向上する。
具体的に、共有リソースA51のアクセス権がプロセッサA10によって取得されているとき、プロセッサB20によって共有リソースA51へのアクセスが発生した場合、プロセッサB20からのアクセス処理が指示される度に、アクセス処理の指示、及び、それに対するエラー応答がバスに出力され続けることが回避される。これにより、共有バスに余分なデータが出力されることが回避され、バスの使用率が抑えられる。
なお、プロセッサから複数の共有バスを介して共有リソースにアクセスされるようなマルチプロセッサシステム100において、それぞれの共有バスの性能が異なる場合がある。このような場合、データ転送の速度は、一番性能の低いバスの速度に対応する。例えば、本実施の形態例と異なり、共有リソースのアクセス権の取得指示が、共有バスを介して行われるような場合、プロセッサのアクセス権の取得指示は、共有バスを介して、アクセス権の取得結果が通知されるまでブロックされる。このため、複数の共有バスのうち1つでも性能の低いバスがある場合、プロセッサのブロック時間が長くなり、性能劣化の要因となる。
このため、共有バス40には必要最小限の指示のみが出力されることが望ましい。本実施の形態例では、アクセス制御回路30が複数のプロセッサと共通のバスとの間に設置されることにより、プロセッサによる共有リソースへのアクセス制御は、共有バス40に出力される前にアクセス制御回路30に制御される。これにより、共有バス40への出力が必要最小限に抑えられ、システム全体の性能の劣化が回避される。
[第2の実施の形態例]
第1の実施の形態例では、アドレスマップ上で、共有リソースのアドレス領域に対応するダミーアドレスの領域が、共有リソース毎に別々の領域に設定される場合を例示した。これに対し、第2の実施の形態例では、各共有リソースに対応するダミーアドレスの領域が、重複して設定される場合を例示する。即ち、複数の共有リソース間でダミーアドレス領域が重複する。これにより、ダミーアドレス領域の範囲を最小サイズに抑えることができ、アドレスマップが有効活用される。
[アドレスマップの具体例]
図7は、第2の実施の形態例におけるアドレスマップAM2の具体例を説明する図である。同図のアドレスマップは、例えば、プロセッサA10のアドレスマップであり、共有リソースD〜Fのアドレス領域rd〜rfと、それぞれ対応するダミーアドレス領域dd〜dfが表されている。ただし、ダミーアドレス領域dd〜dfは、共有リソース毎に別々の領域に設定されていない。
図7のアドレスマップAM2の例において、共有リソースDのアドレス領域rdは、0x0000_1000〜0x0010_1000の1MBの領域である。そこで、1MBのダミーアドレスの領域ddが設定される。同図のアドレスマップにおいて、0xF000_0000〜0xF010_0000の領域が、共有リソースDのダミーアドレス領域ddとして設定される。
そして、共有リソースEのアドレス領域reは、0x7000_0000〜0x7000_1000の4KBの領域であるため、4KBのダミーアドレスの領域deが設定される。第2の実施の形態例では、共有リソースDのダミーアドレス領域ddのうち、4KBのアドレス領域0xF000_0000〜0xF002_0000が共有リソースEのダミーアドレス領域deとして設定される。同様にして、共有リソースFのダミーアドレス領域dfとして、共有リソースDのダミーアドレス領域ddのうち、128KBのアドレス領域0xF000_0000〜0xF000_1000が設定される。
このように、第2の実施の形態例では、各共有リソースに対応するダミーアドレスの領域が重複する。即ち、共有のダミーアドレス領域dxが設定され、共有のダミーアドレス領域dxのうち、共有リソースのアドレス領域のサイズに対応する領域がダミーアドレス領域として設定される。このため、共有のダミーアドレス領域dxのサイズは、最大の共有リソースのアドレス領域のサイズと同一のサイズに設定される。
なお、図7の例において、共有リソースEのダミーアドレス領域deと、共有リソースFのダミーアドレス領域dfとが重複しているが、この例に限定されるものではない。例えば、共有リソースFのダミーアドレス領域dfは、共有ダミーアドレス領域dxのうち、共有リソースEのダミーアドレス領域deと重複しないように設定されてもよい。
[アドレス変換仕様]
図8は、第2の実施の形態例におけるアドレス変換のための減算処理を説明する図である。同図において、共有リソースD〜Fについて、アドレス領域、及び、対応するダミーアドレスの領域、アドレス変換処理を行う減算処理の演算式が表されている。
図8のアドレス変換仕様表H2において、共有リソースEの減算式は、「ダミーアドレス−0x8000_0000」である。例えば、プロセッサA10によって、共有リソースEへの最終アクセスとしてアドレス0xF000_1000にアクセスされた場合、「0xF000_1000−0x8000_0000」の演算処理によって、対応する実アドレス0x7000_1000が算出される。同様にして、共有リソースFへの最終アクセスとしてアドレス0xF000_1500にアクセスされた場合、「0xF000_1500−0x5000_0000」の演算処理によって、対応する実アドレス0xA000_1500が算出される。
このように、ダミーアドレス領域が重複して設定される場合であっても、第1の実施の形態例と同様にして、ダミーアドレスから所定値の減算処理によって、対応する共有リソースのアドレスが簡易に算出される。なお、各共有リソースのダミーアドレス領域が重複しているものの、ダミーアドレス領域と対応する共有リソースのアドレス領域とは同サイズであるため、ダミーアドレスの所定値による簡易な演算によって実アドレスの取得が可能となる。
このように、複数の共有リソースが存在する場合、各共有リソースに対応するダミーアドレス領域を共有化することによって、メモリマップ上におけるダミーアドレス領域のサイズを最小限に抑えることができる。例えば、4KBの共有リソースを10個分有するマルチプロセッサシステムの場合、第1の実施の形態例では、40KBの総ダミーアドレス領域のサイズを要するのに対し、第2の実施の形態例では、10個のダミーアドレス領域を共有化することにより4KBのダミーアドレス領域を確保すれば足る。このため、メモリマップ上における非使用のアドレス領域が少ないシステムに対して有効である。
以上のようにして、第2の実施の形態例におけるアクセス制御回路によると、共有リソースが複数の共有リソースである第1の共有リソースと第2の共有リソースを含む場合、第1の共有リソースの共有リソースアドレスに対応する第1のダミーアドレスの範囲と、第2の共有リソースの共有リソースアドレスに対応する第2のダミーアドレスの範囲とが重複する。これにより、ダミーアドレス領域の範囲を最小サイズに抑えられ、アドレスマップが有効活用される。また、第2の実施の形態例についても、第1の実施の形態例と同様にして、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減されると共に、プログラムの障害が回避される。また、バスの使用効率が向上すると共に、既存のマルチプロセッサシステムに対して、簡易に実装可能である。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御回路であって、
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有することを特徴とするアクセス制御回路。
(付記2)
付記1において、
前記ダミーアドレスの範囲は、前記共有リソースアドレスの範囲と同一サイズであって、
前記管理手段の前記アドレス変換は、前記ダミーアドレスに所定値を加算または減算することにより、前記共有リソースアドレスに変換することを特徴とするアクセス制御回路。
(付記3)
付記1乃至2のいずれか1項において、
前記管理手段は、さらに、
前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記共有リソースへのアクセス権が前記第1のプロセッサに取得されているときは前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記複数のプロセッサのいずれによっても取得されていないときは前記アクセス権を前記第1のプロセッサに取得させると共に前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記第1のプロセッサと異なるプロセッサによって取得されているときは前記アクセス対象アドレスを前記バスに出力しないことを特徴とするアクセス制御回路。
(付記4)
付記1乃至3のいずれか1項において、
前記複数のプロセッサと前記共通のバスとの間に設置されることを特徴とするアクセス制御回路。
(付記5)
付記1において、
前記共有リソースは第1の共有リソースと第2の共有リソースとを含み、
前記第1の共有リソースの共有リソースアドレスに対応する第1の前記ダミーアドレスの範囲と、前記第2の共有リソースの共有リソースアドレスに対応する第2の前記ダミーアドレスの範囲とが重複することを特徴とするアクセス制御回路。
(付記6)
複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御方法であって、
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理工程、を有することを特徴とするアクセス制御方法。
100:マルチプロセッサシステム、10:プロセッサA、20:プロセッサB、30:アクセス制御回路、40:共有バス、51:共有リソースA、52:共有リソースB、53:共有リソースC

Claims (5)

  1. 複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御回路であって、
    前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有することを特徴とするアクセス制御回路。
  2. 請求項1において、
    前記ダミーアドレスの範囲は、前記共有リソースアドレスの範囲と同一サイズであって、
    前記管理手段の前記アドレス変換は、前記ダミーアドレスに所定値を加算または減算することにより、前記共有リソースアドレスに変換することを特徴とするアクセス制御回路。
  3. 請求項1乃至2のいずれか1項において、
    前記管理手段は、さらに、
    前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記共有リソースへのアクセス権が前記第1のプロセッサに取得されているときは前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記複数のプロセッサのいずれによっても取得されていないときは前記アクセス権を前記第1のプロセッサに取得させると共に前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記第1のプロセッサと異なるプロセッサによって取得されているときは前記アクセス対象アドレスを前記バスに出力しないことを特徴とするアクセス制御回路。
  4. 請求項1乃至3のいずれか1項において、
    前記複数のプロセッサと前記共通のバスとの間に設置されることを特徴とするアクセス制御回路。
  5. 複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御方法であって、
    前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理工程、を有することを特徴とするアクセス制御方法。
JP2012220125A 2012-10-02 2012-10-02 アクセス制御回路、アクセス制御方法 Expired - Fee Related JP5900272B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012220125A JP5900272B2 (ja) 2012-10-02 2012-10-02 アクセス制御回路、アクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012220125A JP5900272B2 (ja) 2012-10-02 2012-10-02 アクセス制御回路、アクセス制御方法

Publications (2)

Publication Number Publication Date
JP2014071855A JP2014071855A (ja) 2014-04-21
JP5900272B2 true JP5900272B2 (ja) 2016-04-06

Family

ID=50746942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012220125A Expired - Fee Related JP5900272B2 (ja) 2012-10-02 2012-10-02 アクセス制御回路、アクセス制御方法

Country Status (1)

Country Link
JP (1) JP5900272B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10862854B2 (en) * 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH022449A (ja) * 1988-06-15 1990-01-08 Nec Corp 情報処理装置
US5142676A (en) * 1988-12-28 1992-08-25 Gte Laboratories Incorporated Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory
JPH03154945A (ja) * 1989-11-13 1991-07-02 Hitachi Ltd 共有メモリ管理方式
JPH05225117A (ja) * 1992-02-14 1993-09-03 Nec Corp 主記憶装置の排他制御回路
JP3385091B2 (ja) * 1994-05-13 2003-03-10 三菱電機株式会社 計算機間の排他制御装置
JPH09231124A (ja) * 1996-02-20 1997-09-05 Ricoh Co Ltd メモリロック装置及びメモリロック方法

Also Published As

Publication number Publication date
JP2014071855A (ja) 2014-04-21

Similar Documents

Publication Publication Date Title
US11467981B2 (en) Memory initialization in a protected region
TWI567558B (zh) 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法
EP3210123B1 (en) Memory protection key architecture with independent user and supervisor domains
US10572395B2 (en) Non-enclave access prevention
TWI639090B (zh) 用於可在多種架構中初始化之控制公用程式之共同開機順序
US9703720B2 (en) Method and apparatus to allow secure guest access to extended page tables
EP3504629B1 (en) Enhance memory access permission based on per-page current privilege level
EP3528130B1 (en) Mechanism to prevent software side channels
US20150082002A1 (en) Dynamic heterogeneous hashing functions in ranges of system memory addressing space
JP6005392B2 (ja) ルーティングのための方法及び装置
US10671744B2 (en) Lightweight trusted execution for internet-of-things devices
JP2016516228A (ja) システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置
US20170187805A1 (en) Systems, Methods, and Apparatuses for Range Protection
US20180088976A1 (en) Processor extensions to identify and avoid tracking conflicts between virtual machine monitor and guest virtual machine
US10223312B2 (en) Quality of service ordinal modification
JP2013536504A (ja) アラインメント制御
JP5920595B2 (ja) 電子機器、オペレーティングシステム、アクセス管理方法
RU2597506C2 (ru) Неограниченная транзакционная память с гарантиями продвижения при пересылке, используя аппаратную глобальную блокировку
JP5900272B2 (ja) アクセス制御回路、アクセス制御方法
CN105335227A (zh) 一种节点内的数据处理方法、装置和***
US20160224252A1 (en) Hybrid memory architecture
JP5676664B2 (ja) リソース管理装置、リソースの管理方法、及びプログラム
JP5365840B2 (ja) マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法
JP2008250386A (ja) アクセス制御装置及びコンピュータシステム
KR102277110B1 (ko) 사용자 단말의 정보 수신 방법 및 장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150610

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900272

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees