JP5900272B2 - Access control circuit and access control method - Google Patents
Access control circuit and access control method Download PDFInfo
- 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
Links
Images
Landscapes
- Memory System (AREA)
Description
本発明は、アクセス制御回路、アクセス制御方法に関する。 The present invention relates to an access control circuit and an access control method.
近年、複数のプロセッサ間でリソース(マクロやメモリ)を共有するマルチプロセッサシステムが多く用いられている。そのようなマルチプロセッサシステムでは、共有のリソースが、複数のプロセッサによってアクセスされる。そこで、あるプロセッサによって共有リソースが使用中である場合には、他のプロセッサからのアクセスをハードウェア的に排他可能にするアクセス制御回路を有するシステムがある。 In recent years, many multiprocessor systems that share resources (macro and memory) among a plurality of processors have been used. In such multiprocessor systems, shared resources are accessed by multiple processors. Therefore, when a shared resource is being used by a certain processor, there is a system having an access control circuit that makes it possible to exclude access from another processor by hardware.
このようなシステムでは、例えば、プロセッサがバスを介して共有リソースにアクセスする場合、プロセッサは、バスのアドレス信号線にプロセッサの識別番号を設定することによって、共有リソースのアクセス権を取得する。このため、アクセス権が解放されるまでの間、別のプロセッサによって同一の共有リソースのアクセス権が要求された場合、その都度、アクセス要求とエラー応答がバスに出力される。 In such a system, for example, when the processor accesses the shared resource via the bus, the processor acquires the access right of the shared resource by setting the processor identification number in the address signal line of the bus. Therefore, when an access right for the same shared resource is requested by another processor until the access right is released, an access request and an error response are output to the bus each time.
または、例えば、システムが共有リソースへのアクセス可否情報を有し、アクセス可否情報に基づいて、各プロセッサから共有リソースへのアクセスを制御する。この場合、例えば、プロセッサからの専用命令に基づいてアクセス可否情報の更新が行われることによって、プロセッサによるアクセス権の取得、解放処理が行われる。 Alternatively, for example, the system has access permission information on the shared resource, and controls access from each processor to the shared resource based on the access permission information. In this case, for example, the access right acquisition / release processing is performed by the processor by updating the access permission information based on a dedicated instruction from the processor.
このようなシステムは、例えば、特許文献1、2に記載される。
Such a system is described in
しかしながら、このようなシステムでは、共有リソースのアクセス権を取得、解放するために、プロセッサによるアクセスが逐一発生する。このため、共有リソースへのアクセスは、共有リソースへのアクセス権の取得、共有リソースに対する処理、アクセス権の解放という一連の流れで行われる。これにより、プログラムのコード量が増加し、プロセッサの性能劣化の要因になると共に、プログラムの複雑化による障害が発生し易くなる。 However, in such a system, access by the processor occurs one by one in order to acquire and release the access right of the shared resource. For this reason, access to the shared resource is performed in a series of flows including acquisition of the access right to the shared resource, processing for the shared resource, and release of the access right. As a result, the code amount of the program increases, which causes a deterioration in the performance of the processor and easily causes a failure due to the complication of the program.
また、あるプロセッサによってアクセス権が取得されている間に、他のプロセッサによる共有リソースへのアクセス要求が発生する場合、アクセス要求が発生する都度、アクセス要求とエラー応答がバスに出力されることによって、バス使用率が増加し、バスの使用効率が悪化する。 In addition, when an access right is acquired by a certain processor and an access request to a shared resource by another processor occurs, an access request and an error response are output to the bus each time an access request occurs. The bus usage rate will increase and the bus usage efficiency will deteriorate.
このように、複数のプロセッサによる共有リソースへのアクセスを制御するアクセス制御回路を有するシステムでは、性能劣化やプログラムの複雑化、バスの使用効率の悪化が課題であった。 As described above, in a system having an access control circuit for controlling access to a shared resource by a plurality of processors, performance degradation, program complexity, and bus use efficiency are problems.
本発明は、共有リソースのアクセス制御を効率化するアクセス制御回路、アクセス制御方法を提供することにある。 An object of the present invention is to provide an access control circuit and an access control method for improving the access control of shared resources.
第1の側面は、複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御回路であって、前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有する。 A first aspect is an access control circuit that is connected to a plurality of processors and a bus, and that controls shared resources that are accessed by the plurality of processors via the common bus. When the access target address from the first processor is a dummy address indicating a non-use area, the dummy address is converted into a shared resource address of the corresponding shared resource, and is output to the bus. Management means for releasing the access right to the shared resource by the first processor and outputting the access target address to the bus without converting the address when the access target address is not the dummy address; Have.
第1の側面によれば、共有リソースのアクセス制御を効率化することができる。 According to the first aspect, access control of shared resources can be made efficient.
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the technical scope of the present invention is not limited to these embodiments, but extends to the matters described in the claims and equivalents thereof.
[マルチプロセッサシステムの構成]
図1は、本実施の形態例におけるアクセス制御回路を有するマルチプロセッサシステム100の一例を示す図である。同図のマルチプロセッサシステム100は、例えば、複数のプロセッサA10、B20、アクセス制御回路30、プロセッサA10、プロセッサB20からアクセス可能な共有リソースA51〜共有リソースC53(以下、共有リソース51〜53)を有する。
[Configuration of multiprocessor system]
FIG. 1 is a diagram illustrating an example of a
本実施の形態例において、アクセス制御回路30、及び、各共有リソース51〜53は、共通の共有バス40を介してお互いに接続される。また、複数のプロセッサであるプロセッサA10、プロセッサB20は、それぞれ、アクセス制御回路30における対応するアドレス制御部A31a、アドレス制御部B31b(以下、アドレス制御部31a、31b)と専用バスを介して接続される。
In the present embodiment, the
[共有リソース]
本実施の形態例において、共有リソース51〜53とは、例えば、複数のプロセッサから共通にアクセスされる共有メモリや、回路マクロのレジスタ等を示す。共有リソース51〜53は、複数のプロセッサから同時にアクセスされる可能性を有する。共有リソース51〜53が複数のプロセッサから同時にアクセスされた場合、例えば、共有メモリに記憶された情報や回路マクロのレジスタが保持する情報の整合性が失われてしまう。これにより、システムが暴走してしまう可能性がある。
[Shared resources]
In this embodiment, the shared
そこで、一般的な共有リソースのアクセス制御では、プロセッサA10によって共有リソースA51のアクセス権が取得されている間、プロセッサB20から同じ共有リソースA51へのアクセス権の取得が要求された場合であっても、プロセッサB20によるアクセス権の取得は許可されない。プロセッサB20によるアクセス権の取得は、プロセッサA10の共有リソースA51へのアクセス権が解放された後に許可される。 Thus, in general shared resource access control, even when the processor A 10 acquires the access right to the shared resource A 51 while the processor A 10 acquires the access right to the shared resource A 51, even when the access right to the same shared resource A 51 is requested. The acquisition of the access right by the processor B20 is not permitted. Acquisition of the access right by the processor B20 is permitted after the access right to the shared resource A51 of the processor A10 is released.
[アクセス制御回路]
また、図1のアクセス制御回路30は、複数のプロセッサA、Bと共有バス40との間に配置され、各プロセッサからの共有リソース51〜53へのアクセスを制御する。アクセス制御回路30は、例えば、それぞれのプロセッサに対応するアドレス制御部31a、31bと、アクセス監視部32とを有する。
[Access control circuit]
The
アドレス制御部31a、31bは、必要に応じて共有リソース51〜53へのアクセスをブロックする機能、プロセッサA10、プロセッサB20にエラー応答を返す機能、アクセス権解放時のアドレス変換機能等を有する。処理の詳細については、後述する。また、アクセス監視部32は、各共有リソース51〜53について、当該共有リソースのアクセス権を取得中のプロセッサのID(以下、CPU−ID)を保持するレジスタを有する。アドレス制御部31a、31b、及び、アクセス監視部32は、共有リソース51〜53に対応するCPU−IDと、アクセス元のプロセッサのIDとを比較することにより、共有リソース51〜53のアクセスを制御する。
The
[第1の実施の形態例]
本実施の形態例におけるアクセス制御回路30は、共有リソース51〜53へのアクセス権の解放のための命令、及び、アクセス権の取得のための命令を不要にする。
[First Embodiment]
The
[アクセス制御回路:アクセス権の解放]
まず、共有リソース51〜53のアクセス権の解放について、本実施の形態例におけるアクセス制御回路30は、プロセッサA10、B20からのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する共有リソース51〜53の共有リソースアドレスにアドレス変換してバス40に出力すると共に、当該プロセッサによる共有リソース51〜53へのアクセス権を解放する。また、アクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合に、アクセス対象アドレスをアドレス変換することなくバス40に出力する。
[Access control circuit: Release access right]
First, regarding the release of the access right of the shared
このようなアクセス制御回路30によると、プロセッサは、共有リソース51〜53のアクセス処理を終了する際に、共有リソース51〜53のアクセス権の解放処理を別途指示する必要がない。
According to such an
[アクセス制御回路:アクセス権の取得]
そして、共有リソース51〜53のアクセス権の取得について、本実施の形態例におけるアクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合であって共有リソースアドレスである場合に、共有リソース51〜53へのアクセス権が当該プロセッサに取得されているときはアクセス対象アドレスをバス40に出力する。また、アクセス制御回路30は、共有リソース51〜53へのアクセス権がいずれのプロセッサによっても取得されていないときはアクセス権を当該プロセッサに取得させると共にアクセス対象アドレスをバス40に出力し、別のプロセッサによって取得されているときはアクセス対象アドレスをバス40に出力しない。
[Access control circuit: Acquisition of access right]
Then, regarding the acquisition of the access right of the shared
このようなアクセス制御回路30によると、プロセッサは、共有リソース51〜53のアクセス処理を開始する際に、共有リソース51〜53のアクセス権の取得処理を別途指示する必要がない。
According to such an
ここで、本実施の形態例のアクセス制御回路30を有するシステムにおけるプログラムの一例を、一般的なプログラムと対比して説明する。
Here, an example of a program in a system having the
[共有リソースへのアクセス処理を指示するプログラム例]
図2は、一般的な共有リソースのアクセス処理を指示するプログラムP1と、本実施の形態例のアクセス制御回路30を有するシステムにおいて、共有リソースへのアクセス処理を指示するプログラムP2の一例を表す図である。同図の左のプログラムP1は、共有リソースへのアクセス処理を記述した一般的なプログラムの具体例であり、右のプログラムP2は、本実施の形態例におけるプロセッサによって処理されるプログラムの具体例である。
[Sample program for instructing access processing to shared resources]
FIG. 2 is a diagram illustrating an example of a program P2 for instructing access processing to a shared resource in a system having a program P1 for instructing access processing for a general shared resource and the
[一般的なプログラム例]
まず、一般的なプログラムP1の具体例について説明する。一般的なプログラムP1例では、共有リソース51〜53へアクセスを行う場合、例えば、共有メモリへの書き込み処理を行うような場合、共有リソースへのアクセス処理c2を示す命令の前後に共有リソースのアクセス権の取得c1、及び、解放処理c3を示す命令が必要となる。このため、共有リソースへのアクセス処理c2が1つ命令で指示可能な些細な処理であったとしても、必ず、その前後に当該共有リソースへのアクセス権の取得命令c1、及び、解放命令c3が必要となる。
[General program example]
First, a specific example of the general program P1 will be described. In the general program P1 example, when accessing the shared
例えば、共有リソースA51のアクセス権がプロセッサB20によって取得されているときに、プロセッサA10によって共有リソースA51へのアクセスが行われる場合の処理の流れについて説明する。このような場合、プロセッサB20によって共有リソースA51のアクセス権の解放処理が行われた後、プロセッサA10による同アクセス権が取得され、共有リソースA51へのアクセス処理が行われる。プロセッサA10によるアクセス処理が終了すると、アクセス権の解放処理が行われ、必要に応じて、再び、プロセッサB20によってアクセス権の取得処理が行われる。 For example, a processing flow when the processor A10 accesses the shared resource A51 when the access right of the shared resource A51 is acquired by the processor B20 will be described. In such a case, after the processor B20 performs the access right release processing of the shared resource A51, the processor A10 acquires the same access right and performs the access processing to the shared resource A51. When the access process by the processor A10 ends, an access right release process is performed, and an access right acquisition process is performed again by the processor B20 as necessary.
このように、共有リソースへのアクセス処理の前後に共有リソースへのアクセス権を制御する多数の命令が処理される。これにより、各プロセッサが処理する命令量が増加し、プロセッサの性能が低下する。また、プログラムP1の記述が複雑化し、障害を誘発する。ここで、発生し易い障害の一例について説明する。 As described above, a large number of instructions for controlling the access right to the shared resource are processed before and after the access processing to the shared resource. As a result, the amount of instructions processed by each processor increases and the performance of the processor decreases. Further, the description of the program P1 becomes complicated, and a failure is induced. Here, an example of a failure that easily occurs will be described.
例えば、プログラムP1において、アクセス権の取得命令の記述c1が漏れた場合、共有リソースの不正アクセスが発生する。この結果、共有リソースの整合性が保証されない。これは、アクセス権を取得中のプロセッサ(例えば、プロセッサB20)による共有リソースのアクセス中に、別のプロセッサ(例えば、プロセッサA10)による同一の共有リソースへのアクセスを許可してしまう場合を示す。これにより、例えば、共有メモリが複数のプロセッサによって同時に更新されるような事態を発生させ、共有メモリの整合性が失われる。 For example, in the program P1, when the description c1 of the access right acquisition command is leaked, the shared resource is illegally accessed. As a result, the consistency of shared resources is not guaranteed. This indicates a case where access to the same shared resource by another processor (for example, processor A10) is permitted while the shared resource is being accessed by the processor (for example, processor B20) that is acquiring the access right. Thereby, for example, a situation occurs in which the shared memory is simultaneously updated by a plurality of processors, and the consistency of the shared memory is lost.
また、例えば、アクセス権の解放命令の記述が漏れた場合、あるプロセッサによって共有リソースのアクセス権が不正に取得されたままとなり、他のプロセッサによるアクセス権の取得が失敗する。これにより、他のプロセッサによって、共有リソースへのアクセスが行えず、プログラムの処理が適切に行われない。 Also, for example, when the description of the access right release instruction is leaked, the access right of the shared resource remains illegally acquired by a certain processor, and acquisition of the access right by another processor fails. As a result, the shared resource cannot be accessed by another processor, and the program processing is not appropriately performed.
[本実施の形態例におけるプログラム例]
一方、本実施の形態例におけるプログラムP2では、共有リソースへのアクセス処理を示す命令c4の前後に共有リソースのアクセス権の取得、及び、解放処理を示す命令が不要である。ただし、共有リソースへの最終のアクセス命令において、アクセス対象のアドレスとして、アクセス対象の共有リソースのアドレスに対応するダミーアドレスが指定される。プログラムP2では、プロセッサが処理する命令量が増加しないことにより、プロセッサの性能が向上する。また、プログラムP2の記述がシンプルであるため、上述したような障害が回避される。
[Program example in this embodiment]
On the other hand, in the program P2 in the present embodiment, instructions for acquiring and releasing the access right of the shared resource are not required before and after the instruction c4 indicating the access process to the shared resource. However, in the final access instruction to the shared resource, a dummy address corresponding to the address of the shared resource to be accessed is designated as the access target address. In the program P2, the processor performance is improved by not increasing the amount of instructions processed by the processor. Further, since the description of the program P2 is simple, the above-described failure is avoided.
続いて、本実施の形態例におけるアクセス制御回路30の構成について具体的に説明する。
Next, the configuration of the
[アクセス制御回路30の詳細な構成]
図3は、本実施の形態例におけるアクセス制御回路30の詳細な構成を表す例図である。本実施の形態例におけるアクセス制御回路30は、プロセッサA10、B20に対応するアドレス制御部A31a、31bと、アクセス監視部32とを有する。同図では、図1に対して、プロセッサB20、及び、プロセッサB20に対応するアドレス制御部B31bが省略されているが、アドレス制御部B31bの構成は、アドレス制御部A31aと同様である。
[Detailed Configuration of Access Control Circuit 30]
FIG. 3 is an example diagram showing a detailed configuration of the
図3のアドレス制御部A31aは、例えば、アクセスマスク/アドレス変換ユニット311、アドレスデコーダ312、エラー応答ユニット310を有する。アドレスデコーダ312は、対応するプロセッサA10によって専用のアドレスバスへの値s2、専用のコントロールバスへの制御値s3に基づいて、共有リソースへのアクセスが発生したか否かを判定する。共有リソースへのアクセスが発生したと判定された場合、アドレスデコーダ312は、プロセッサのIDをアクセス監視部32に出力する(s4)。
The address control unit A31a in FIG. 3 includes, for example, an access mask /
アクセスマスク/アドレス変換ユニット311は、共有リソースへのアクセスを検知した場合、アクセス監視部32から入力される共有リソースに対応するCPU−ID(s5)と、接続されるプロセッサのIDとを比較し、一致する場合、及び、CPU−IDが未登録の場合、共有リソースへのアクセス指示s2、s3を共有バス40に出力する。一方、一致しない場合、アクセスマスク/アドレス変換ユニット311は、共有リソースへのアクセス指示をブロックして共有バス40に出力せず、エラー応答ユニット310にエラー通知トリガを出力する。これにより、エラー応答ユニット310は、対応するプロセッサにアクセスに対するエラー応答s1を出力する。
When detecting access to the shared resource, the access mask /
また、アクセスマスク/アドレス変換ユニット311は、ダミーアドレスへのアクセスを検知した場合は、共有リソースに対応する最終アクセスと判定する。この場合、アクセスマスク/アドレス変換ユニット311は、ダミーアドレスを変換した実際の共有リソースアドレスs2´を共有アドレスバスに、制御値s3を共有コントロールバスに出力し、アクセス監視部32にCPU−IDのクリア指示s6を出力する。
When the access mask /
また、図3のアクセス監視部32は、共有リソース毎に、共有リソースのアクセス権を取得中のプロセッサのIDをCPU−IDとしてレジスタに保持するレジスタユニット321を有する。そして、共有リソースへのアクセスが発生すると、アクセス制御回路30からアクセス監視部32に対して、アクセス元のプロセッサのID(s4)が出力される。
Further, the
アクセス監視部32は、レジスタユニット321の共有リソースに対応するCPU−IDと、入力されたプロセッサのID(s4)とを比較し、異なる場合は、共有リソースに対応するCPU−IDの更新を行わない。これは、共有リソースのアクセス権が、他のプロセッサによって既に取得されている場合を示す。一方、CPU−IDと入力されたプロセッサのIDとが一致する場合、アクセス権がアクセス元のプロセッサによって取得済みであることを示す。このため、アクセス監視部32は、レジスタユニット321のCPU−IDの更新を行わない。または、CPU−IDが未登録の場合、アクセス権がいずれのプロセッサによっても取得されていないことを示すため、アクセス監視部32は、入力されたプロセッサのIDを新たなCPU−IDとして登録する。
The
続いて、アクセス制御回路30の処理の流れについて、フローチャート図に基づいて説明する。
Next, the flow of processing of the
[共有リソースへのアクセス処理]
図4は、本実施の形態例におけるアクセス制御回路30の共有リソースへのアクセス処理の流れについて説明するフローチャート図である。同図のフローチャート図では、例えば、プロセッサA10による共有リソースA51へのアクセス処理について説明する。ただし、プロセッサB20による、別の共有リソースへのアクセス処理についても同様である。
[Access to shared resources]
FIG. 4 is a flowchart for explaining the flow of access processing to the shared resource of the
まず、プロセッサA10から共有リソースA51に対するアクセスs2、s3が発生すると(S11)、アドレス制御部A31aは、アクセス監視部32から入力される、共有リソースA51に対応するCPU−ID(s5)に基づいて、共有リソースA51がアクセス可能な状態であるか否かを判定する(S12)。
First, when accesses s2 and s3 from the processor A10 to the shared resource A51 occur (S11), the address control unit A31a is based on the CPU-ID (s5) corresponding to the shared resource A51 input from the
CPU−IDがいずれのプロセッサも示さない場合、共有リソースA51のアクセス権がいずれのプロセッサによっても取得されておらず、アクセス可能な状態であることを示す(S12のYES)。そこで、アドレス制御部A31aは、プロセッサA10のアクセス指示s2、s3を共有バス40に出力すると共に、アクセス監視部32は、共有リソースA51に対応するCPU−IDをプロセッサA10のIDに更新する(S13)。これにより、共有リソースA51がプロセッサA10によって使用中であることが登録される。つまり、共有リソースA51のアクセス権がプロセッサA10に取得される。
When the CPU-ID does not indicate any processor, it indicates that the access right of the shared resource A51 has not been acquired by any processor and is accessible (YES in S12). Therefore, the address control unit A31a outputs the access instructions s2 and s3 of the processor A10 to the shared
また、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)。
Further, when the CPU-ID is the same as the ID of the processor A10, it indicates that the access right of the shared resource A51 has already been acquired by the processor A10 and is accessible to the shared resource A51 (YES in S12). . Therefore, the address control unit A31a outputs the access instructions s2 and s3 of the processor A10 to the shared
一方、CPU−IDが他のプロセッサ(例えば、プロセッサB20)のIDである場合、共有リソースA51のアクセス権が他のプロセッサ(プロセッサB20)によってアクセス中であることを示す(S12のNO)。この場合、アドレス制御部A31aは、プロセッサA10によるアクセス指示を共有バス40に通知せず(S14)、アクセス指示をブロックする。また、アドレス制御部A31aは、プロセッサA10にエラー応答s1を出力して、共有リソースA51のアクセス権が他のプロセッサによって取得されていることを通知する(S14)。
On the other hand, when the CPU-ID is an ID of another processor (for example, processor B20), it indicates that the access right of the shared resource A51 is being accessed by another processor (processor B20) (NO in S12). In this case, the address control unit A31a does not notify the shared
そして、共有リソースA51への最終アクセスの場合(S16のYES)、プログラムには、予め、認識するアクセス対象のアドレスに対応するダミーアドレスに対するアクセス処理が記述される(S17)。即ち、プログラムには、予め、最終アクセス対象のアドレスに対応するダミーアドレスが記述される。このように、最終アクセス時のみ、アクセス対象の共有リソースA51アドレスに対応するダミーアドレスが、アクセス対象アドレスとしてプログラムに記述される。 In the case of the final access to the shared resource A51 (YES in S16), the program describes in advance an access process for a dummy address corresponding to the address to be accessed to be recognized (S17). That is, a dummy address corresponding to the last access target address is described in advance in the program. Thus, only at the time of final access, a dummy address corresponding to the shared resource A51 address to be accessed is described in the program as an access target address.
アドレス制御部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へのアクセス権が解放可能される。
When the address control unit A31a detects a dummy address, the address control unit A31a recognizes that it is the final access to the shared resource A51 corresponding to the dummy address. Therefore, the address control unit A31a converts the dummy address into the address of the corresponding shared resource A51 and outputs it to the shared bus 40 (S18). That is, the address control unit A31a converts the dummy address into a real address and outputs it to the shared bus 40 (s2 ′, s3). In addition, the address control unit A31a outputs a clear trigger s6 of the CPU-ID (ID of the processor A10) corresponding to the shared resource A51 to the
続いて、アドレス変換処理の詳細について説明する。 Next, details of the address conversion process will be described.
[アドレス変換処理]
本実施の形態例において、共有リソースに対応するダミーアドレスは、予め、アクセス制御回路30のアドレス制御部A31aによって認識されている。このため、ダミーアドレスへのアクセスが発生した場合、アドレス制御部A31aは、共有リソースへの最終アクセスであることを認識し、アドレス変換することができる。本実施の形態例におけるアドレス変換処理では、ダミーアドレスから所定の値が減算されることによって、当該ダミーアドレスに対応する共有リソースのアドレスが取得される。
[Address conversion processing]
In the present embodiment, the dummy address corresponding to the shared resource is recognized in advance by the address control unit A31a of the
ここで、メモリマップにおける共有リソースのアドレスと、ダミーアドレスについて図に基づいて説明する。 Here, the address of the shared resource and the dummy address in the memory map will be described with reference to the drawings.
[アドレスマップの具体例]
図5は、本実施の形態例におけるアドレスマップAM1の具体例を説明する図である。ダミーアドレスは、それぞれの共有リソースのアドレスに対応して、アドレスマップAM1上に任意の領域に確保される。ダミーアドレスはメモリマップAM1上の使用されていないアドレスである。また、ダミーアドレスは、物理アドレスに対応している必要はない。ダミーアドレスの領域範囲のサイズは、対応する共有リソースのアドレスの領域範囲のサイズと同一である。
[Specific example of address map]
FIG. 5 is a diagram for explaining a specific example of the address map AM1 in the present embodiment. The dummy address is secured in an arbitrary area on the address map AM1 corresponding to the address of each shared resource. The dummy address is an unused address on the memory map AM1. The dummy address does not have to correspond to the physical address. The size of the area range of the dummy address is the same as the area range of the address of the corresponding shared resource.
図5のアドレスマップAM1は、例えば、プロセッサA10のアドレスマップAM1である。例えば、プロセッサA10は32bitのプロセッサであるため、4GBのアドレス空間を有する。同図のアドレスマップAM1では、共有リソースA51のアドレス領域raと対応するダミーアドレス領域da、共有リソースB52のアドレス領域rbと対応するダミーアドレス領域dbが表されている。共有リソースC53のアドレス領域、及び、ダミーアドレス領域については、省略されている。 The address map AM1 in FIG. 5 is, for example, the address map AM1 of the processor A10. For example, since the processor A10 is a 32-bit processor, it has a 4 GB address space. In the address map AM1 in the figure, a dummy address area da corresponding to the address area ra of the shared resource A51 and a dummy address area db corresponding to the address area rb of the shared resource B52 are represented. The address area and dummy address area of the shared resource C53 are omitted.
図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が設定される。 In the example of the address map AM1 in FIG. 5, the address area ra of the shared resource A51 is a 4 KB area of 0x0000 — 1000 to 0x0000 — 2000. The dummy address area da corresponding to the address area ra of the shared resource A51 is a 4 KB area of 0x2000 — 2000 to 0x2000 — 3000. In this way, an address having the same size as the address area ra of the shared resource is set as the dummy address area da. Similarly, a 4 KB dummy address area db of 0xA000 — 3000 to 0xA000 — 4000 is set corresponding to the 4 KB address area rb of 0x7000 — 1000 to 0x7000 — 2000 of the shared resource B52.
前述したとおり、本実施の形態例では、最終アクセス時のみ、共有リソースアドレスに対応するダミーアドレスにアクセスするようにプログラムが記述される。例えば、共有リソースA51のアドレス0x0000_1000へのアクセスであって、最終アクセスである場合、アドレス0x2000_2000へのアクセス指示がプログラムに記述される。同様にして、共有リソースB52のアドレス0x7000_1500へのアクセスであって、最終アクセスである場合、アドレス0xA000_3500へのアクセス指示がプログラムに記述される。 As described above, in the present embodiment, the program is described so as to access the dummy address corresponding to the shared resource address only at the time of final access. For example, when the access is to the address 0x0000_1000 of the shared resource A51 and is the final access, an instruction to access the address 0x2000_2000 is described in the program. Similarly, when the access is to the address 0x7000_1500 of the shared resource B52 and is the final access, an access instruction to the address 0xA000_3500 is described in the program.
このように、予め、アドレスマップAM1上で、各共有リソースのアドレスに対応して、最終アクセス用のダミーアドレスが設定される。アドレス制御部A31aは、ダミーアドレスと対応する共有リソースのアドレスとを予め認識していることから、ダミーアドレスに基づいて、対応する共有リソースのアドレスを簡易に取得できる。本実施の形態例では、ダミーアドレスの領域da、dbと対応する共有リソースのアドレス領域ra、rbとが同サイズであることから、ダミーアドレスから所定値の減算処理によって、対応する共有リソースのアドレスが取得可能となる。続いて、本実施の形態例におけるアドレス変換処理の仕様について、図5のアドレスマップAM1に基づいて説明する。 In this way, a dummy address for final access is set in advance on the address map AM1 corresponding to the address of each shared resource. Since the address control unit A31a recognizes in advance the dummy address and the address of the corresponding shared resource, the address of the corresponding shared resource can be easily acquired based on the dummy address. In the present embodiment, the address areas ra and rb of the shared resource corresponding to the dummy address areas da and db are the same size, and therefore the address of the corresponding shared resource is obtained by subtracting a predetermined value from the dummy address. Can be acquired. Next, the specification of the address conversion process in the present embodiment will be described based on the address map AM1 in FIG.
[アドレス変換仕様]
図6は、本実施の形態例におけるアドレス変換のための減算処理の仕様を説明する図である。同図の表H1において、共有リソースA51、共有リソースB52について、共有リソースのアドレス領域ra、rb、及び、対応するダミーアドレスの領域da、db、アドレス変換処理を行う減算処理の演算式が表されている。
[Address conversion specifications]
FIG. 6 is a diagram for explaining the specification of subtraction processing for address conversion in the present embodiment. In the table H1 in FIG. 6, for the shared resource A51 and the shared resource B52, the shared resource address areas ra and rb, the corresponding dummy address areas da and db, and the arithmetic expression of the subtraction process for performing the address conversion process are represented. ing.
図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が算出される。 In the address conversion specification table H1 of FIG. 6, the subtraction formula for the shared resource A51 is “dummy address−0x2000 — 1000”. For example, in the example illustrated in FIG. 5 where the address 0x2000_2000 is accessed as the final access, the corresponding real address 0x0000_1000 is calculated by the arithmetic processing of “0x2000_2000-0x2000_1000”. Similarly, the subtraction formula of the shared resource B52 is “dummy address−0x3000_2000”. For example, in the example in which the address 0xA000_3500 is accessed as the final access illustrated in FIG. 5, the corresponding real address 0x7000_1500 is calculated by the arithmetic processing of “0xA000_3500-0x3000_2000”.
このように、ダミーアドレスと対応する共有リソースのアドレスとが予め認識されていることから、所定の演算式によって、対応する共有リソースのアドレスが簡易に算出される。また、ダミーアドレスの領域と対応する共有リソースのアドレス領域とが同サイズであることから、ダミーアドレスの所定値による簡易な演算によって実アドレスの取得が可能になる。 As described above, since the dummy address and the corresponding shared resource address are recognized in advance, the corresponding shared resource address is easily calculated by a predetermined arithmetic expression. In addition, since the dummy address area and the corresponding shared resource address area have the same size, the real address can be obtained by a simple calculation using a predetermined value of the dummy address.
本実施の形態例では、ダミーアドレス領域が、共有リソースのアドレス領域よりメモリマップAM1(図5)上のアドレス値の大きい領域に設定される。このため、アドレス変換処理は、ダミーアドレスから所定値の減算によって行われる。ただし、ダミーアドレスの領域はアドレスマップAM1上のいずれのアドレスに設定されてもよい。例えば、ダミーアドレス領域が、共有リソースのアドレス領域よりメモリマップ上のアドレス値のより小さい領域に設定された場合、アドレス変換処理は、ダミーアドレスに対する所定値の加算によって行われる。 In this embodiment, the dummy address area is set to an area having a larger address value on the memory map AM1 (FIG. 5) than the address area of the shared resource. For this reason, the address conversion process is performed by subtracting a predetermined value from the dummy address. However, the dummy address area may be set to any address on the address map AM1. For example, when the dummy address area is set to an area having a smaller address value on the memory map than the shared resource address area, the address conversion process is performed by adding a predetermined value to the dummy address.
また、アドレスの変換処理は、減算演算、加算演算に限定されるものではない。ダミーアドレスに対して一意に対応する共有リソースのアドレスが取得可能であれば、いずれの演算式によって変換されてもよい。また、アドレス変換処理は、演算処理ではなく、例えば、ダミーアドレスに対応する共有リソースが対応付けられた変換テーブルが参照されることによって行われてもよい。 Further, the address conversion process is not limited to the subtraction operation and the addition operation. As long as the address of the shared resource that uniquely corresponds to the dummy address can be acquired, it may be converted by any arithmetic expression. Further, the address conversion process may be performed by referring to a conversion table in which a shared resource corresponding to a dummy address is associated, for example, instead of an arithmetic process.
以上のようにして、本実施の形態例におけるアクセス制御回路30は、複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する共有リソースの共有リソースアドレスにアドレス変換してバスに出力すると共に、第1のプロセッサによる共有リソースへのアクセス権を解放する。また、アクセス制御回路30は、アクセス対象アドレスがダミーアドレスではない場合に、アクセス対象アドレスをアドレス変換することなくバスに出力する。
As described above, the
このため、プロセッサは、共有リソースのアクセス処理を終了する際に、共有リソースのアクセス権の解放処理を別途指示する必要がない。これにより、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減される。また、共有リソースへのアクセス処理を指示する命令が単純化されることにより、アクセス権の解放命令の記載漏れ等を起因とするプログラムの障害が回避される。この結果、プログラムに係る検証コスト、製造、移植コスト等が削減される。 Therefore, the processor does not need to separately instruct the shared resource access right release process when the shared resource access process ends. As a result, the processing efficiency of the processor is improved, and the code amount of instructions processed by the processor is reduced. Further, by simplifying the instruction for instructing the access processing to the shared resource, it is possible to avoid the failure of the program due to the omission of the description of the access right release instruction. As a result, the verification cost, manufacturing, porting cost and the like related to the program are reduced.
また、本実施の形態例におけるアクセス制御回路30において、ダミーアドレスの範囲は、共有リソースアドレスの範囲と同一サイズであって、管理手段のアドレス変換は、ダミーアドレスに所定値を加算または減算することにより、共有リソースアドレスに変換する。これにより、ダミーアドレスの所定値による簡易な加算演算や減算演算によって実アドレスの取得が可能になる。
In the
また、本実施の形態例におけるアクセス制御回路30の管理手段は、さらに、アクセス対象アドレスがダミーアドレスではない場合に、共有リソースへのアクセス権が第1のプロセッサに取得されているときはアクセス対象アドレスをバスに出力する。また、管理手段は、共有リソースへのアクセス権が複数のプロセッサのいずれによっても取得されていないときはアクセス権を第1のプロセッサに取得させると共にアクセス対象アドレスをバスに出力し、アクセス権が第1のプロセッサと異なるプロセッサによって取得されているときはアクセス対象アドレスをバスに出力しない。
Further, the management means of the
このため、プロセッサは、共有リソースのアクセス処理を開始する際に、共有リソースのアクセス権の取得処理を別途指示する必要がない。これにより、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減される。また、共有リソースへのアクセス処理を指示する命令が単純化されることにより、アクセス権の取得命令の記載漏れ等を起因とするプログラムの障害が回避される。この結果、プログラムに係る検証コスト、製造、移植コスト等が削減される。 Therefore, the processor does not need to separately instruct the process for acquiring the access right for the shared resource when starting the access process for the shared resource. As a result, the processing efficiency of the processor is improved, and the code amount of instructions processed by the processor is reduced. Further, by simplifying the instruction for instructing the access processing to the shared resource, it is possible to avoid a failure of the program due to omission of description of the access right acquisition instruction. As a result, the verification cost, manufacturing, porting cost and the like related to the program are reduced.
また、本実施の形態例におけるアクセス制御回路30を実装するに当たり、既存のマルチプロセッサシステムにおける各プロセッサ、共有リソース、及び、バスに変更を加える必要がない。また、共有リソースのアクセス権の取得、及び開放処理を指示する専用命令も必要ない。これにより、本実施の形態例におけるアクセス制御回路30は、既存のマルチプロセッサシステムに対して、簡易に実装可能となる。
In implementing the
さらに、本実施の形態例におけるアクセス制御回路30は、複数のプロセッサと共通のバスとの間に設置される。これにより、共有リソースのアクセス権の取得、及び、解除処理に係るアクセスや、アクセス権の取得指示に対応するエラー応答がバスに出力されない。これにより、例えば、アクセス権が他のプロセッサによって取得されている場合、アクセス権が要求される度に、アクセス権の取得指示、及び、エラー応答がバスに出力されることが回避される。したがって、バスの使用率が抑えられ、バスの使用効率が向上する。
Furthermore, the
具体的に、共有リソースA51のアクセス権がプロセッサA10によって取得されているとき、プロセッサB20によって共有リソースA51へのアクセスが発生した場合、プロセッサB20からのアクセス処理が指示される度に、アクセス処理の指示、及び、それに対するエラー応答がバスに出力され続けることが回避される。これにより、共有バスに余分なデータが出力されることが回避され、バスの使用率が抑えられる。 Specifically, when the access right to the shared resource A51 is acquired by the processor A10 and the access to the shared resource A51 occurs by the processor B20, every time the access processing from the processor B20 is instructed, It is avoided that instructions and corresponding error responses continue to be output on the bus. This avoids unnecessary data being output to the shared bus and suppresses the bus usage rate.
なお、プロセッサから複数の共有バスを介して共有リソースにアクセスされるようなマルチプロセッサシステム100において、それぞれの共有バスの性能が異なる場合がある。このような場合、データ転送の速度は、一番性能の低いバスの速度に対応する。例えば、本実施の形態例と異なり、共有リソースのアクセス権の取得指示が、共有バスを介して行われるような場合、プロセッサのアクセス権の取得指示は、共有バスを介して、アクセス権の取得結果が通知されるまでブロックされる。このため、複数の共有バスのうち1つでも性能の低いバスがある場合、プロセッサのブロック時間が長くなり、性能劣化の要因となる。
In the
このため、共有バス40には必要最小限の指示のみが出力されることが望ましい。本実施の形態例では、アクセス制御回路30が複数のプロセッサと共通のバスとの間に設置されることにより、プロセッサによる共有リソースへのアクセス制御は、共有バス40に出力される前にアクセス制御回路30に制御される。これにより、共有バス40への出力が必要最小限に抑えられ、システム全体の性能の劣化が回避される。
For this reason, it is desirable that only the minimum necessary instructions are output to the shared
[第2の実施の形態例]
第1の実施の形態例では、アドレスマップ上で、共有リソースのアドレス領域に対応するダミーアドレスの領域が、共有リソース毎に別々の領域に設定される場合を例示した。これに対し、第2の実施の形態例では、各共有リソースに対応するダミーアドレスの領域が、重複して設定される場合を例示する。即ち、複数の共有リソース間でダミーアドレス領域が重複する。これにより、ダミーアドレス領域の範囲を最小サイズに抑えることができ、アドレスマップが有効活用される。
[Second Embodiment]
In the first embodiment, the case where the dummy address area corresponding to the address area of the shared resource is set to a different area for each shared resource on the address map is illustrated. On the other hand, in the second embodiment, a case where dummy address areas corresponding to each shared resource are set in an overlapping manner is illustrated. That is, the dummy address areas overlap between a plurality of shared resources. Thereby, the range of the dummy address area can be suppressed to the minimum size, and the address map is effectively used.
[アドレスマップの具体例]
図7は、第2の実施の形態例におけるアドレスマップAM2の具体例を説明する図である。同図のアドレスマップは、例えば、プロセッサA10のアドレスマップであり、共有リソースD〜Fのアドレス領域rd〜rfと、それぞれ対応するダミーアドレス領域dd〜dfが表されている。ただし、ダミーアドレス領域dd〜dfは、共有リソース毎に別々の領域に設定されていない。
[Specific example of address map]
FIG. 7 is a diagram illustrating a specific example of the address map AM2 in the second embodiment. The address map in the figure is an address map of the processor A10, for example, and shows address areas rd to rf of the shared resources D to F and corresponding dummy address areas dd to df, respectively. However, the dummy address areas dd to df are not set in separate areas for each shared resource.
図7のアドレスマップAM2の例において、共有リソースDのアドレス領域rdは、0x0000_1000〜0x0010_1000の1MBの領域である。そこで、1MBのダミーアドレスの領域ddが設定される。同図のアドレスマップにおいて、0xF000_0000〜0xF010_0000の領域が、共有リソースDのダミーアドレス領域ddとして設定される。 In the example of the address map AM2 in FIG. 7, the address area rd of the shared resource D is a 1 MB area of 0x0000 — 1000 to 0x0010 — 1000. Therefore, a 1-MB dummy address area dd is set. In the address map shown in the figure, an area of 0xF000 — 0000 to 0xF010 — 0000 is set as a dummy address area dd of the shared resource D.
そして、共有リソース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が設定される。 Since the address area re of the shared resource E is a 4 KB area of 0x7000 — 0000 to 0x7000 — 1000, a 4 KB dummy address area “de” is set. In the second embodiment, among the dummy address areas dd of the shared resource D, 4 KB address areas 0xF000_0000 to 0xF002_0000 are set as the dummy address area de of the shared resource E. Similarly, as the dummy address area df of the shared resource F, the 128 KB address area 0xF000 — 0000 to 0xF000 — 1000 of the dummy address area dd of the shared resource D is set.
このように、第2の実施の形態例では、各共有リソースに対応するダミーアドレスの領域が重複する。即ち、共有のダミーアドレス領域dxが設定され、共有のダミーアドレス領域dxのうち、共有リソースのアドレス領域のサイズに対応する領域がダミーアドレス領域として設定される。このため、共有のダミーアドレス領域dxのサイズは、最大の共有リソースのアドレス領域のサイズと同一のサイズに設定される。 Thus, in the second embodiment, the dummy address areas corresponding to the shared resources overlap. That is, a shared dummy address area dx is set, and among the shared dummy address areas dx, an area corresponding to the size of the address area of the shared resource is set as a dummy address area. For this reason, the size of the shared dummy address area dx is set to the same size as the size of the address area of the largest shared resource.
なお、図7の例において、共有リソースEのダミーアドレス領域deと、共有リソースFのダミーアドレス領域dfとが重複しているが、この例に限定されるものではない。例えば、共有リソースFのダミーアドレス領域dfは、共有ダミーアドレス領域dxのうち、共有リソースEのダミーアドレス領域deと重複しないように設定されてもよい。 In the example of FIG. 7, the dummy address area de of the shared resource E and the dummy address area df of the shared resource F are overlapped, but the present invention is not limited to this example. For example, the dummy address area df of the shared resource F may be set so as not to overlap with the dummy address area de of the shared resource E in the shared dummy address area dx.
[アドレス変換仕様]
図8は、第2の実施の形態例におけるアドレス変換のための減算処理を説明する図である。同図において、共有リソースD〜Fについて、アドレス領域、及び、対応するダミーアドレスの領域、アドレス変換処理を行う減算処理の演算式が表されている。
[Address conversion specifications]
FIG. 8 is a diagram for explaining subtraction processing for address conversion in the second embodiment. In the drawing, for shared resources D to F, an address area, a corresponding dummy address area, and an arithmetic expression for subtraction processing for performing address conversion processing are shown.
図8のアドレス変換仕様表H2において、共有リソースEの減算式は、「ダミーアドレス−0x8000_0000」である。例えば、プロセッサA10によって、共有リソースEへの最終アクセスとしてアドレス0xF000_1000にアクセスされた場合、「0xF000_1000−0x8000_0000」の演算処理によって、対応する実アドレス0x7000_1000が算出される。同様にして、共有リソースFへの最終アクセスとしてアドレス0xF000_1500にアクセスされた場合、「0xF000_1500−0x5000_0000」の演算処理によって、対応する実アドレス0xA000_1500が算出される。 In the address conversion specification table H2 of FIG. 8, the subtraction formula for the shared resource E is “dummy address−0x8000 — 0000”. For example, when the processor A10 accesses the address 0xF000_1000 as the final access to the shared resource E, the corresponding real address 0x7000_1000 is calculated by the arithmetic processing of “0xF000_1000-0x8000_0000”. Similarly, when the address 0xF000_1500 is accessed as the final access to the shared resource F, the corresponding real address 0xA000_1500 is calculated by the arithmetic processing of “0xF000_1500-0x5000_0000”.
このように、ダミーアドレス領域が重複して設定される場合であっても、第1の実施の形態例と同様にして、ダミーアドレスから所定値の減算処理によって、対応する共有リソースのアドレスが簡易に算出される。なお、各共有リソースのダミーアドレス領域が重複しているものの、ダミーアドレス領域と対応する共有リソースのアドレス領域とは同サイズであるため、ダミーアドレスの所定値による簡易な演算によって実アドレスの取得が可能となる。 As described above, even when the dummy address areas are set in an overlapping manner, the address of the corresponding shared resource is simplified by subtracting the predetermined value from the dummy address in the same manner as in the first embodiment. Is calculated. Although the dummy address area of each shared resource overlaps, the dummy address area and the corresponding shared resource address area are the same size, so the real address can be obtained by a simple calculation using a predetermined value of the dummy address. It becomes possible.
このように、複数の共有リソースが存在する場合、各共有リソースに対応するダミーアドレス領域を共有化することによって、メモリマップ上におけるダミーアドレス領域のサイズを最小限に抑えることができる。例えば、4KBの共有リソースを10個分有するマルチプロセッサシステムの場合、第1の実施の形態例では、40KBの総ダミーアドレス領域のサイズを要するのに対し、第2の実施の形態例では、10個のダミーアドレス領域を共有化することにより4KBのダミーアドレス領域を確保すれば足る。このため、メモリマップ上における非使用のアドレス領域が少ないシステムに対して有効である。 In this way, when there are a plurality of shared resources, the size of the dummy address area on the memory map can be minimized by sharing the dummy address area corresponding to each shared resource. For example, in the case of a multiprocessor system having 10 4 KB shared resources, the first embodiment requires a total dummy address area size of 40 KB, whereas the second embodiment has 10 It is sufficient to secure a 4 KB dummy address area by sharing the dummy address areas. Therefore, this is effective for a system with a small number of unused address areas on the memory map.
以上のようにして、第2の実施の形態例におけるアクセス制御回路によると、共有リソースが複数の共有リソースである第1の共有リソースと第2の共有リソースを含む場合、第1の共有リソースの共有リソースアドレスに対応する第1のダミーアドレスの範囲と、第2の共有リソースの共有リソースアドレスに対応する第2のダミーアドレスの範囲とが重複する。これにより、ダミーアドレス領域の範囲を最小サイズに抑えられ、アドレスマップが有効活用される。また、第2の実施の形態例についても、第1の実施の形態例と同様にして、プロセッサの処理効率が向上し、プロセッサが処理する命令のコード量が削減されると共に、プログラムの障害が回避される。また、バスの使用効率が向上すると共に、既存のマルチプロセッサシステムに対して、簡易に実装可能である。 As described above, according to the access control circuit in the second embodiment, when the shared resource includes the first shared resource and the second shared resource, which are a plurality of shared resources, the first shared resource The range of the first dummy address corresponding to the shared resource address and the range of the second dummy address corresponding to the shared resource address of the second shared resource overlap. Thereby, the range of the dummy address area can be suppressed to the minimum size, and the address map is effectively used. Also, in the second embodiment, as in the first embodiment, the processing efficiency of the processor is improved, the amount of code of instructions processed by the processor is reduced, and the trouble of the program is reduced. Avoided. In addition, the bus use efficiency is improved, and the bus can be easily mounted on an existing multiprocessor system.
以上の実施の形態をまとめると、次の付記のとおりである。 The above embodiment is summarized as follows.
(付記1)
複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御回路であって、
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有することを特徴とするアクセス制御回路。
(Appendix 1)
An access control circuit that is connected to a plurality of processors and a bus and controls shared resources accessed by the plurality of processors via the common bus,
When the access target address from the first processor among the plurality of processors is a dummy address indicating an unused area, the dummy address is converted into a shared resource address of the corresponding shared resource, and the address is converted. Output to the bus, release the access right to the shared resource by the first processor, and when the access target address is not the dummy address, the access target address is not converted to the bus An access control circuit comprising management means for outputting.
(付記2)
付記1において、
前記ダミーアドレスの範囲は、前記共有リソースアドレスの範囲と同一サイズであって、
前記管理手段の前記アドレス変換は、前記ダミーアドレスに所定値を加算または減算することにより、前記共有リソースアドレスに変換することを特徴とするアクセス制御回路。
(Appendix 2)
In
The range of the dummy address is the same size as the range of the shared resource address,
The access control circuit according to
(付記3)
付記1乃至2のいずれか1項において、
前記管理手段は、さらに、
前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記共有リソースへのアクセス権が前記第1のプロセッサに取得されているときは前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記複数のプロセッサのいずれによっても取得されていないときは前記アクセス権を前記第1のプロセッサに取得させると共に前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記第1のプロセッサと異なるプロセッサによって取得されているときは前記アクセス対象アドレスを前記バスに出力しないことを特徴とするアクセス制御回路。
(Appendix 3)
In any one of
The management means further includes:
When the access target address is not the dummy address and the access right to the shared resource is acquired by the first processor, the access target address is output to the bus, and the access right is the plurality of access rights. When the access right is not acquired by any of the processors, the first processor is caused to acquire the access right and the access target address is output to the bus, and the access right is acquired by a processor different from the first processor. And the access control circuit does not output the access target address to the bus.
(付記4)
付記1乃至3のいずれか1項において、
前記複数のプロセッサと前記共通のバスとの間に設置されることを特徴とするアクセス制御回路。
(Appendix 4)
In any one of
An access control circuit installed between the plurality of processors and the common bus.
(付記5)
付記1において、
前記共有リソースは第1の共有リソースと第2の共有リソースとを含み、
前記第1の共有リソースの共有リソースアドレスに対応する第1の前記ダミーアドレスの範囲と、前記第2の共有リソースの共有リソースアドレスに対応する第2の前記ダミーアドレスの範囲とが重複することを特徴とするアクセス制御回路。
(Appendix 5)
In
The shared resource includes a first shared resource and a second shared resource,
The first dummy address range corresponding to the shared resource address of the first shared resource overlaps with the second dummy address range corresponding to the shared resource address of the second shared resource. A featured access control circuit.
(付記6)
複数のプロセッサとバスに接続され、前記複数のプロセッサによって共通の前記バスを介してアクセスされる共有リソースへの制御を行うアクセス制御方法であって、
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理工程、を有することを特徴とするアクセス制御方法。
(Appendix 6)
An access control method for controlling shared resources connected to a plurality of processors and a bus and accessed by the plurality of processors via the common bus,
When the access target address from the first processor among the plurality of processors is a dummy address indicating an unused area, the dummy address is converted into a shared resource address of the corresponding shared resource, and the address is converted. Output to the bus, release the access right to the shared resource by the first processor, and when the access target address is not the dummy address, the access target address is not converted to the bus An access control method comprising: an output management step.
100:マルチプロセッサシステム、10:プロセッサA、20:プロセッサB、30:アクセス制御回路、40:共有バス、51:共有リソースA、52:共有リソースB、53:共有リソースC 100: Multiprocessor system, 10: Processor A, 20: Processor B, 30: Access control circuit, 40: Shared bus, 51: Shared resource A, 52: Shared resource B, 53: Shared resource C
Claims (5)
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理手段、を有することを特徴とするアクセス制御回路。 An access control circuit that is connected to a plurality of processors and a bus and controls shared resources accessed by the plurality of processors via the common bus,
When the access target address from the first processor among the plurality of processors is a dummy address indicating an unused area, the dummy address is converted into a shared resource address of the corresponding shared resource, and the address is converted. Output to the bus, release the access right to the shared resource by the first processor, and when the access target address is not the dummy address, the access target address is not converted to the bus An access control circuit comprising management means for outputting.
前記ダミーアドレスの範囲は、前記共有リソースアドレスの範囲と同一サイズであって、
前記管理手段の前記アドレス変換は、前記ダミーアドレスに所定値を加算または減算することにより、前記共有リソースアドレスに変換することを特徴とするアクセス制御回路。 In claim 1,
The range of the dummy address is the same size as the range of the shared resource address,
The access control circuit according to claim 1, wherein the address conversion of the management means converts the address into the shared resource address by adding or subtracting a predetermined value to the dummy address.
前記管理手段は、さらに、
前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記共有リソースへのアクセス権が前記第1のプロセッサに取得されているときは前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記複数のプロセッサのいずれによっても取得されていないときは前記アクセス権を前記第1のプロセッサに取得させると共に前記アクセス対象アドレスを前記バスに出力し、前記アクセス権が前記第1のプロセッサと異なるプロセッサによって取得されているときは前記アクセス対象アドレスを前記バスに出力しないことを特徴とするアクセス制御回路。 In any one of Claims 1 thru | or 2,
The management means further includes:
When the access target address is not the dummy address and the access right to the shared resource is acquired by the first processor, the access target address is output to the bus, and the access right is the plurality of access rights. When the access right is not acquired by any of the processors, the first processor is caused to acquire the access right and the access target address is output to the bus, and the access right is acquired by a processor different from the first processor. And the access control circuit does not output the access target address to the bus.
前記複数のプロセッサと前記共通のバスとの間に設置されることを特徴とするアクセス制御回路。 In any one of Claims 1 thru | or 3,
An access control circuit installed between the plurality of processors and the common bus.
前記複数のプロセッサの内の第1のプロセッサからのアクセス対象アドレスが、非使用の領域を指すダミーアドレスである場合に、当該ダミーアドレスを対応する前記共有リソースの共有リソースアドレスにアドレス変換して前記バスに出力すると共に、前記第1のプロセッサによる前記共有リソースへのアクセス権を解放し、前記アクセス対象アドレスが前記ダミーアドレスではない場合に、前記アクセス対象アドレスを前記アドレス変換することなく前記バスに出力する管理工程、を有することを特徴とするアクセス制御方法。 An access control method for controlling shared resources connected to a plurality of processors and a bus and accessed by the plurality of processors via the common bus,
When the access target address from the first processor among the plurality of processors is a dummy address indicating an unused area, the dummy address is converted into a shared resource address of the corresponding shared resource, and the address is converted. Output to the bus, release the access right to the shared resource by the first processor, and when the access target address is not the dummy address, the access target address is not converted to the bus An access control method comprising: an output management step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012220125A JP5900272B2 (en) | 2012-10-02 | 2012-10-02 | Access control circuit and access control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012220125A JP5900272B2 (en) | 2012-10-02 | 2012-10-02 | Access control circuit and access control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014071855A JP2014071855A (en) | 2014-04-21 |
JP5900272B2 true JP5900272B2 (en) | 2016-04-06 |
Family
ID=50746942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012220125A Expired - Fee Related JP5900272B2 (en) | 2012-10-02 | 2012-10-02 | Access control circuit and access control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5900272B2 (en) |
Families Citing this family (1)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH022449A (en) * | 1988-06-15 | 1990-01-08 | Nec Corp | Information processor |
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 (en) * | 1989-11-13 | 1991-07-02 | Hitachi Ltd | Shared memory control system |
JPH05225117A (en) * | 1992-02-14 | 1993-09-03 | Nec Corp | Exclusive control circuit for main storage device |
JP3385091B2 (en) * | 1994-05-13 | 2003-03-10 | 三菱電機株式会社 | Exclusive control device between computers |
JPH09231124A (en) * | 1996-02-20 | 1997-09-05 | Ricoh Co Ltd | Device and method for locking memory |
-
2012
- 2012-10-02 JP JP2012220125A patent/JP5900272B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014071855A (en) | 2014-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467981B2 (en) | Memory initialization in a protected region | |
TWI567558B (en) | Processing system, system-on-a-chip, and method for securing shared interconnect for virtual machine | |
EP3210123B1 (en) | Memory protection key architecture with independent user and supervisor domains | |
US10572395B2 (en) | Non-enclave access prevention | |
TWI639090B (en) | Common boot sequence for control utility able to be initialized in multiple architectures | |
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 | |
US10671744B2 (en) | Lightweight trusted execution for internet-of-things devices | |
US20150082002A1 (en) | Dynamic heterogeneous hashing functions in ranges of system memory addressing space | |
WO2015047779A1 (en) | Creating secure original equipment manufacturer (oem) identification | |
JP6005392B2 (en) | Method and apparatus for routing | |
US20160103681A1 (en) | Load and store ordering for a strongly ordered simultaneous multithreading core | |
JP2016516228A (en) | Access method and circuit device under control of slave unit in system on chip | |
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 (en) | Alignment control | |
RU2597506C2 (en) | Unlimited transactional memory with assurances of movement during transfer, using hardware global lock | |
JP2015022344A (en) | Electronic device, operating system, and access control method | |
JP5900272B2 (en) | Access control circuit and access control method | |
CN105335227A (en) | Method, apparatus and system for processing data in nodes | |
US20160224252A1 (en) | Hybrid memory architecture | |
JP7569307B2 (en) | Apparatus and method for handling exception cause events - Patents.com | |
JP5676664B2 (en) | Resource management apparatus, resource management method, and program |
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 |