説明

アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法、メモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法

【課題】メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるアクセス制御装置を提供する。
【解決手段】メモリへの前記元データの書き込みを要求する書込元がメモリにアクセスする際に利用する書込元アクセスIDに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームをとして生成する書込元シンドローム生成手段と、書込元シンドロームと、書込元アクセスIDと、書込メモリアドレスとに基づいて、書込元マスクデータを生成する書込元マスクデータ生成手段と112、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出する第1排他的論理和算出手段102と、第1排他的論理和算出手段により算出された第1演算後データを前記メモリに書き込む書込手段102とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリへのアクセスを制御することのできるアクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法、メモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法に関するものである。
【背景技術】
【0002】
現代のコンピュータシステムにおいては、複数のプロセス(プログラム、タスクまたはジョブ)を切り換えて処理するマルチプログラミング方式を用いることで、例えばメモリやCPUなどコンピュータシステム内のさまざまな資源を有効に活用している。
【0003】
このため、あるプロセスが処理に用いるメモリ上のデータを他のプロセスが盗み見たり、上書きして破壊したりする問題が発生する。
【0004】
そこで従来は、非特許文献1に開示されているように、メモリの一定のサイズ(例えば4KB)毎にストレージキーと呼ぶ情報を記憶しておき、プロセスがメモリをアクセスする場合には、プロセスの持つキーとアクセスするメモリのストレージキーを照らし合わせてアクセスの可否を判断する方式が広く用いられている。
【0005】
【非特許文献1】z/Architecture Principles of Operation (IBM; SA22-7832-00; December 2000)3-9 〜 3-12ページ
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上述のようにストレージキーを用いたメモリ保護方式においては、データを記憶するメモリに加えてストレージキーを記憶するためのメモリが必要になる。このため、ハードウェア量が増加する。
【0007】
また、保護の単位が例えば4KBのページ単位であり、サイズの小さなデータを保護しようと思うと使用しない無駄なメモリ領域が発生する。この問題は、より小さなメモリ領域単位でストレージキーを対応させることで解決することもできるが、その場合はストレージキーを記憶するためにさらに多くのメモリが必要になる。
【0008】
さらに、メモリに障害が発生した場合には、メモリへのアクセスが可能となり不正にデータが読み出される場合がある。
【0009】
本発明は、上記に鑑みてなされたものであって、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるアクセス制御装置、アクセス制御システム、プロセッサおよびアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明は、アクセス制御装置であって、メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するするパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、前記第1演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第1演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段とを備えたことを特徴とする。
【0011】
また、本発明の他の形態は、プロセッサと、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、前記メモリアクセス制御装置は、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、前記第1演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第1演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段とを有することを特徴とする。
【0012】
また、本発明の他の形態は、プロセッサと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、前記メモリアクセス制御装置は、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、前記第1演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第1演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段とを有することを特徴とする。
【0013】
また、本発明の他の形態は、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたプロセッサであって、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、前記第1演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第1演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段とを備えたことを特徴とする。
【0014】
また、本発明の他の形態は、アクセス制御方法であって、メモリに書き込むべき元データのパリティを生成するパリティ生成ステップと、前記パリティ生成ステップにおいて生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与ステップと、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成ステップと、前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成ステップと、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出ステップと、前記第1演算後データを前記メモリに書き込む書込ステップと、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成ステップと、前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成ステップと、前記メモリから前記第1演算後データを読み出す読出ステップと、前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出ステップと、前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出ステップと、前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断ステップとを有することを特徴とする。
【0015】
また、本発明の他の形態は、メモリアクセス制御装置であって、メモリから読み出すべきデータのメモリアドレスを、前記メモリからのデータの読み出しを要求する読出元から取得する読出要求取得手段と、前記メモリへのデータの書き込みを要求する書込元から前記メモリへの書き込みを要求されたデータまたは前記読出元から前記メモリへの読み出しを要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに前記読出要求取得手段が取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視手段と、前記キャッシュメモリ監視手段が前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較手段と、前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力手段とを備えたことを特徴とする。
【0016】
また、本発明の他の形態は、プロセッサと、キャッシュメモリと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、前記キャッシュメモリは、前記メモリへのデータの書き込みを要求する書込元または前記メモリからのデータの読み出しを要求する読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納し、前記メモリアクセス制御装置は、前記メモリから読み出すべきデータと、前記データの前記メモリアドレスとを前記読出元から取得する読出要求取得手段と、前記キャッシュメモリに前記読出要求取得手段が取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視手段と、前記キャッシュメモリ監視手段が前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較手段と、前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力手段とを有することを特徴とする。
【0017】
また、本発明の他の形態は、アクセス制御方法であって、メモリから読み出すべきデータと、前記データのメモリアドレスとを、前記メモリからのデータの読み出しを要求する読出元から取得する読出要求取得ステップと、前記メモリへのデータの書き込みを要求する書込元または前記読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに前記読出要求取得ステップにおいて取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視ステップと、前記キャッシュメモリ監視ステップにおいて前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較ステップと、前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力ステップとを有することを特徴とする。
【発明の効果】
【0018】
本発明にかかるアクセス制御装置によれば、パリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスIDと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第1排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第1演算後データを得て、書込手段が、第1演算後データをメモリに書き込み、読出元シンドローム生成手段が、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスIDと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第1演算後データを読み出し、第2排他的論理和算出手段が、読出元マスクデータと、第1演算後データとの排他的論理和を算出して、第2演算後データを得て、データシンドローム算出手段が、第2演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第2演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0019】
また、本発明の他の形態にかかるアクセス制御システムによれば、アクセス制御装置のパリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスIDと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第1排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第1演算後データを得て、書込手段が、第1演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスIDと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第1演算後データを読み出し、第2排他的論理和算出手段が、読出元マスクデータと、第1演算後データとの排他的論理和を算出して、第2演算後データを得て、データシンドローム算出手段が、第2演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第2演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0020】
また、本発明の他の形態にかかるプロセッサによれば、アクセス制御装置のパリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスIDと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第1排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第1演算後データを得て、書込手段が、第1演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスIDと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第1演算後データを読み出し、第2排他的論理和算出手段が、読出元マスクデータと、第1演算後データとの排他的論理和を算出して、第2演算後データを得て、データシンドローム算出手段が、第2演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第2演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0021】
また、本発明の他の形態にかかるアクセス制御方法によれば、パリティ生成ステップにおいて、メモリに書き込むべき元データのパリティを生成し、パリティ付与ステップにおいて、パリティ生成ステップにおいて生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成ステップにおいて、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成ステップにおいて、書込元シンドロームと、書込元アクセスIDと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第1排他的論理和算出ステップにおいて、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第1演算後データを得て、書込ステップにおいて、第1演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成ステップにおいて、読出元シンドロームと、読出元アクセスIDと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出ステップにおいて、メモリから第1演算後データを読み出し、第2排他的論理和算出ステップにおいて、読出元マスクデータと、第1演算後データとの排他的論理和を算出して、第2演算後データを得て、データシンドローム算出ステップにおいて、第2演算後データから実際のデータシンドロームを算出し、出力判断ステップにおいて、データシンドロームに基づいて、第2演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0022】
また、本発明の他の形態にかかるメモリアクセス制御装置によれば、読出要求取得手段が、メモリから読み出すべきデータのメモリアドレスを、メモリからのデータの読み出しを要求する読出元から取得し、キャッシュメモリ監視手段が、メモリへのデータの書き込みを要求する書込元からメモリへの書き込みを要求されたデータまたは読出元からメモリへのよみ出しを要求されたデータと当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元がメモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに読出要求取得手段が取得したメモリアドレスが格納されているか否かを判断し、アクセスID比較手段が、キャッシュメモリ監視手段がキャッシュメモリにメモリアドレスが格納されていると判断した場合に、キャッシュメモリにおいてメモリアドレスに対応付けられている要求元アクセスIDと、読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDとを比較し、出力手段が、要求元アクセスIDと読出元アクセスIDとが一致する場合に、キャッシュメモリにおいてメモリアドレスに対応付けられているデータを読出元に出力するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0023】
また、本発明の他の形態にかかるアクセス制御システムによれば、キャッシュメモリが、メモリへのデータの書き込みを要求する書込元またはメモリからのデータの読み出しを要求する読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元がメモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納し、メモリアクセス制御装置の読出要求取得手段が、メモリから読み出すべきデータと、データのメモリアドレスとを読出元から取得し、キャッシュメモリ監視手段が、キャッシュメモリに読出要求取得手段が取得したメモリアドレスが格納されているか否かを判断し、アクセスID比較手段が、キャッシュメモリ監視手段がキャッシュメモリにメモリアドレスが格納されていると判断した場合に、キャッシュメモリにおいてメモリアドレスに対応付けられている要求元アクセスIDと、読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDとを比較し、出力手段が、要求元アクセスIDと読出元アクセスIDとが一致する場合に、キャッシュメモリにおいてメモリアドレスに対応付けられているデータを読出元に出力するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【0024】
また、本発明の他の形態にかかるメモリアクセス制御方法よれば、読出要求取得ステップにおいて、メモリから読み出すべきデータと、データのメモリアドレスとを、メモリからのデータの読み出しを要求する読出元から取得する、キャッシュメモリ監視ステップにおいて、メモリへのデータの書き込みを要求する書込元または読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元がメモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに読出要求取得ステップにおいて取得したメモリアドレスが格納されているか否かを判断し、アクセスID比較ステップにおいて、キャッシュメモリ監視ステップにおいてキャッシュメモリにメモリアドレスが格納されていると判断した場合に、キャッシュメモリにおいてメモリアドレスに対応付けられている要求元アクセスIDと、読出元がメモリにアクセスする際に利用する情報である読出元アクセスIDとを比較し、出力ステップにおいて、要求元アクセスIDと読出元アクセスIDとが一致する場合に、キャッシュメモリにおいてメモリアドレスに対応付けられているデータを読出元に出力するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【発明を実施するための最良の形態】
【0025】
以下に、本発明にかかるアクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法、メモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0026】
(実施の形態1)
図1は、実施の形態1にかかるアクセス制御システム1の全体構成を示す図である。アクセス制御システム1は、アクセス制御装置10と、プロセッサ20と、メモリコントローラ30と、メモリ40とを備えている。
【0027】
プロセッサ20とメモリ40は、メモリコントローラ30とアクセス制御装置10により接続されている。メモリコントローラ30は、プロセッサバス22(プロセッサから直接出ている信号線)のプロトコルとメモリバス42のプロトコルの間の違いを吸収する役割をもつ。すなわち、プロセッサ20がプロセッサバス22に出すデータの読み書きの信号と、メモリ40に読み書きする信号の違いを吸収する。
【0028】
例えば、メモリ40がDRAMである場合には、プロセッサ20がアドレスを指定して読み出し要求を出した場合には、アドレスを上位と下位に分けてメモリ40に渡す必要がある。メモリコントローラ30は、この間の手順の違いを変換する。
【0029】
アクセス制御装置10は、メモリコントローラ30とメモリ40の間に接続されている。メモリ40からのデータの読み出し時に、このデータの読出元にアクセス権限があるかどうかを判断する。なお、アクセス権限に関する情報は、プロセッサ20がメモリコントローラ30を介してアクセス制御装置10に設定する。具体的には、後述のアクセスIDなどの情報を設定する。
【0030】
また、アクセス制御装置10は、ECC(Error Correcting CodeまたはError Control Code)の機能を有している。具体的には、プロセッサ20が書き込むデータにECCをつけてメモリ40に書き込む。また、メモリ40から読み出したECC付のデータのECCチェックを行う。ECCを利用するので、メモリ40のアクセス制御すなわち保護の単位はECCの単位と同じ32ビットや64ビットといったサイズになる。すなわち、細かな単位でメモリ40を保護することができる。
【0031】
なお、アクセス制御装置10がアクセス権限を管理するメモリデータアクセスの要求元、すなわちデータの読出元および書込元は、プロセッサ20内において管理されるプロセスである。
【0032】
ここで、ECCについて説明する。図2および図3は、ECCについて説明するための図である。図2は、データをメモリ40に書き込む際の処理を説明するための図である。一般に、図2に示すように、一度にメモリ40に読み書きするnビットの大きさのデータDに対して、そのデータの値から計算したmビットのパリティを付加する。そして、n+mビットのデータD’をメモリ40に書き込む。
【0033】
例えば、一度にメモリ40に読み書きする64(=n)ビットの大きさのデータに対して、そのデータの値から計算した8(=m)ビットのパリティを付加し72ビットのパリティ付データをメモリ40に書き込む。
【0034】
図3は、データD’を読み出す際の処理を説明するための図である。メモリ40からデータD’を読み出す際には、データD’と検査行列「H」の転置行列の積によってmビットの値を計算する。このmビットの値をシンドロームと呼ぶ。シンドロームが0であるということはnビットのデータの値に誤りがないことを示している。
【0035】
シンドロームが0でないということは誤りが存在することを示している。誤りが訂正可能な場合は誤りを訂正する。誤りがあるが訂正できない場合には、メモリデータアクセスの要求元であるプロセッサ20に割り込み等の手段により誤りが発生したことを通知する。
【0036】
ECCには様々な方式があり、それぞれの方式によってパリティのビット数やその計算方法、シンドロームを計算する検査行列、シンドロームから誤りを訂正するビット位置の求め方等が異なる。
【0037】
コンピュータシステムのメモリで広く用いられているのは、SEC−DED符号(1誤り訂正2誤り検出符号)である。SEC−DED符号は、データあるいはそのパリティの中に1ビットの誤り(1誤りとも呼ぶ)がある場合は誤っている位置を特定することができる。2ビットの誤り(2誤りとも呼ぶ)がある場合は、位置は特定できないが誤りがあることは検出できる。通常、32ビットのデータであれば7ビットのパリティを、64ビットのデータであれば8ビットのパリティを、128ビットのデータであれば9ビットのパリティを、ECCとして付加する。
【0038】
SEC−DED符号にも、そのパリティの計算方法および検査行列の作り方の違いによって、様々な方式が存在する。その中でも広く用いられるのは、拡大ハミング符号と、Hsiaoの符号である。特にHsiaoのSEC−DED符号は回路の実装にとって良い性質を持っており、広く使われている。拡大ハミング符号については、Algebraic Code for Data Transmission;Richard E. Blahut,2003,Cambridge University Press 63ページに記載されている。Hsiaoの符号については、A Class of Optimal MinimumOdd−weight−column SEC−DED Codes;M. Y. Hsiao, IBM Journal of Research and Development, July 1970 395〜401ページに記載されている。これら2つのSEC−DED符号においては、シンドロームの値の解釈の方法が異なるが、誤り訂正/検出の能力は同等である。
【0039】
なお、実施の形態1にかかるアクセス制御システム1においては、64ビットのデータに8ビットのパリティを付加するHsiaoの符号を用いることとするが、データ長はこれに限定されるものではない。64ビット以外の例えば32ビットや16ビットまたは128ビットなど様々な長さのデータに対しても同様にアクセス制御を行うことができる。さらに、Hsiaoの符号以外、例えば拡大ハミング符号などのSEC−DED符号やその他の誤り訂正符号を用いる場合でも同様に実施できる。
【0040】
図4は、データ長が64ビットの場合のHsiaoのSEC−DED符号の検査行列「H」の一例を示す図である。この検査行列「H」は8行72列であり、左から64個の列は、64ビットのメモリのデータの各ビット位置に対応し、残りの右の8列は、パリティの各ビットに対応する。パリティに対応する右の8列の部分は、8×8の単位行列になっている。
【0041】
図5は、図4に示す検査行列Hに対応する生成行列「G」を示す図である。生成行列「G」は、パリティが付与されていない元のデータに対してパリティを計算するために用いるものである。この生成行列「G」は64行72列であり、左の64列は64×64の単位行列になっており、残りの右の8列は、生成行列「G」の左の64列の転置行列である。
【0042】
図6は、アクセス制御装置10の詳細な機能構成を示すブロック図である。アクセス制御装置10は、パリティ生成回路100と、第1排他的論理和回路102と、アクセスIDレジスタ110と、マスク値生成回路112と、第2排他的論理和回路114と、シンドローム計算回路120と、誤り訂正回路122とを有している。
【0043】
アクセス制御装置10は、従来のECC回路に加えて、アクセス権限チェックのためのマスク値を作成し、データにパリティを重ねてメモリ40に記録し、メモリ40から読み出したデータに対してマスク値を使ってアクセス権限のチェックを行う回路を有している。第1排他的論理和回路102、アクセスIDレジスタ110、マスク値生成回路112および第2排他的論理和回路114以外は、従来のECC回路と同等である。
【0044】
なお、アクセス制御装置10を接続するメモリコントローラ30がECC回路を備えている場合には、アクセス制御装置10がECC回路の機能を備えるのにかえて、メモリコントローラ30のECC回路を利用することとしてもよい。
【0045】
パリティ生成回路100は、メモリコントローラ30を介してプロセッサ20から取得したデータに対するパリティを生成する。そして、プロセッサ20から取得したデータに対しパリティを付加する。
【0046】
具体的には、プロセッサ20からメモリコントローラ30を介して64ビットのデータを取得する。取得したデータから8ビットのパリティを計算して第1排他的論理和回路102へ出力する。この計算は図5を参照しつつ説明した生成行列「G」を利用して行う。
【0047】
64ビットの入力データ「d」を(式1)に示すような64要素のベクトルとして表現すし、データ「d」に対応する8ビットのパリティが付与された符号語「x」を(式2)に示すような72要素のベクトルとして表現するとする。

d=(d1,d2,d3,… d64) …(式1)
x=(d1,d2,d3,…d64,p1,p2,…p8) …(式2)
【0048】
この場合、符号語(パリティ付のデータ)「x」と生成行列「G」とデータ「d」の間には、(式3)の関係がある。

x=dG …(式3)

つまり、64ビットのデータに対して生成行列「G」を掛け合わせると、符号語「x」を計算することができる。こうして計算された符号語「x」の最後の8要素を8ビットのパリティとして出力する。
【0049】
なお、パリティ生成回路100をここで説明したベクトルと行列の積によるパリティの計算を行う組み合わせ回路として実現できることは、広く知られていることである。
【0050】
アクセスIDレジスタ110は、メモリコントローラ30を介してプロセッサ20からアクセスIDを取得する。ここで、アクセスIDは、メモリ40へのデータアクセスの要求元であるプロセスがメモリ40にアクセスする際に利用する情報である。本実施の形態においては、64ビットのデータに8ビットのパリティをつけるので、128種類のアクセスIDを管理することができる。例えば、7ビットで0から127までの番号がアクセスIDになる。
【0051】
プロセッサ20上で起動しているプロセスがメモリ40にアクセスする場合には、まずアクセス制御装置10のアクセスIDレジスタ110にアクセスIDを設定する。
【0052】
図7は、プロセッサ20から見たアドレス空間を示す図である。このように、アクセス制御装置10のアクセスIDレジスタ110を、プロセッサ20から見えるアドレス空間中の入出力空間にマッピングしておく。プロセッサ20が入出力空間内のアクセスIDレジスタ110がマッピングされた番地にアクセスIDを書き込むと、書き込まれたアクセスIDはアクセスIDレジスタ110に書き込まれる。なお、アクセスIDレジスタ110にアクセスIDを設定する手段はこれに限定されるものではない。
【0053】
プロセッサ20上で実行される任意のプログラムが任意のアクセスIDを設定できるようにした場合、アクセス権限の保護ができなくなってしまう。そこで、プロセッサ20上で動作するOSやハードウェア的な認証等の手段によりアクセスIDの設定を行うこととするのが望ましい。これにより、実行中のプログラムがアクセス権限を有している場合にのみ、このプログラムのアクセスIDをアクセスIDレジスタ110に設定することができる。ここで、アクセスIDレジスタ110は、書込元アクセスID取得手段と読出元アクセスID取得手段として機能する。
【0054】
再び説明を図6に戻す。マスク値生成回路112は、アクセスIDレジスタ110が保持するアクセスIDとプロセッサ20がアクセスすべきメモリ40のアドレス値とに基づいて、マスク値を生成する。マスク値は、メモリ40に書き込むデータまたはメモリ40から読み出すデータに対してマスクするためのデータであり、アクセスIDとアクセスしたいメモリ40のアドレスから一意に決まる値である。なお、本実施の形態にかかるマスク値生成回路112は、書込元マスクデータ生成手段および読出元マスクデータ生成手段として機能する。
【0055】
第1排他的論理和回路102は、メモリ40へのデータ書き込み時には、メモリ40に書き込むべきデータおよびこのデータから生成されたパリティとマスク値との排他的論理和を計算する。そして、この結果を組にしてメモリ40に書き込む。すなわち、マスク値生成回路112により生成されたマスク値をデータおよびパリティに重ねて書き込む。この値を第1演算後データと称する。
【0056】
第2排他的論理和回路114は、メモリ40からのデータの読出しの際に、メモリ40から読出したデータとマスク値との排他的論理和を計算することによりマスク値をキャンセルする。
【0057】
シンドローム計算回路120は、第2排他的論理和回路114の計算結果に基づいて、シンドロームを計算する。誤り訂正回路122は、シンドローム計算回路120により計算されたシンドロームの値に応じて、適宜誤り訂正を行う。
【0058】
ここで、シンドローム計算回路120および誤り訂正回路122の処理について詳述する。メモリ40から読み出したパリティ付のデータから、誤りの検出や訂正をするため、まずシンドロームを計算する。具体的には、シンドローム計算回路120は、メモリ40から読み出された64ビットのデータと、それに付随している8ビットのパリティを取得する。そして、検査行列「H」を利用して、64ビットのデータおよび8ビットのパリティから8ビットのシンドロームを計算する。シンドロームは誤り訂正回路122に出力される。
【0059】
8ビットのシンドローム「s」を(式4)のように表現し、さらに、入力となる64ビットのデータと8ビットのパリティからなるベクトル「x」を(式5)のように表現するとする。
s=(s1,s2, ・・・ s8) ・・・(式4)
x=(d1,d2,d3, ・・・d64,p1,p2, ・・・ p8) ・・・(式5)
【0060】
この場合、シンドローム「s」はベクトル「x」と検査行列「H」から(式6)のように計算することができる。
s=xHT ・・・(式6)

ここでHTは検査行列「H」の転置行列を表す。シンドローム計算回路120は、このようにして8ビットのシンドロームを計算し出力する。
【0061】
SEC−DED符号では誤りがない時にはシンドロームの値が「0」になる。誤りが1つある場合には、シンドロームは、誤っているビット位置に対応する検査行列「H」の列の要素と同じ値になる。シンドロームが「0」でない場合、検査行列「H」に含まれる列で、その列ベクトルがシンドロームと同じ値を持つものが存在すれば、その列に対応するビット位置が誤っている。この場合、そのビット位置に対応するデータあるいはパリティ中の1ビットを反転することで、誤りを訂正することができる。
【0062】
シンドロームが「0」以外で、かつそのシンドロームと同じ検査行列「H」の列ベクトルが存在しない場合は、訂正不可能な誤りが発生している。すなわち、2ビット以上の誤りが発生している。
【0063】
Hsiaoの符号は、その検査行列の各列において、値が「1」である要素の数が必ず奇数個になっている。この性質により、奇数ビットの誤りが発生した場合のシンドローム中の「1」の数は必ず奇数個になり、偶数ビットの誤りが発生した場合のシンドロームの中の「1」の数は必ず偶数個になるという性質を持っている。
【0064】
2ビットの誤りが発生した場合、Hsiaoの符号ではそのシンドロームの中の1の数は必ず0ではない偶数個になるので、2誤りは必ず検出できる。3ビット以上の奇数ビットの誤りが発生した場合、そのシンドロームの中の1の数は必ず奇数個になるが、この場合、1誤りの場合のシンドロームと区別がつかない場合がある。その結果、1ビット誤りのシンドロームと同じシンドロームであれば、1ビット誤りと解釈して正しくない誤り訂正が働き、そうでない場合は訂正不可能な誤りとして検出される。
【0065】
4ビット以上の偶数ビット誤りが発生した場合、そのシンドロームの中の「1」の数は必ず偶数個になる。ただし「1」の数が0個の場合も含むので、この場合は誤りがないものとして扱われるが、そうでない場合は訂正不可能な誤りとして検出される。なお、通常SEC−DED符号を使う場合は、2誤りまでしか発生しないという前提で用いる。
【0066】
なお、一般にSEC−DED符号ではパリティ部分に誤りが発生した場合にも、訂正可能であるが、本実施の形態においては、パリティ部分を訂正した後の値は利用しないので、パリティ部分に対する誤り訂正は行わない。なお、他の例としては、パリティ部分の訂正を行うこととしてもよい。
【0067】
図8は、マスク値生成回路112の詳細な機能構成を示すブロック図である。マスク値生成回路112は、取得したアクセスIDから生成されるマスクに対するシンドロームが所定の値となるようなマスク値を生成する。
【0068】
マスク値生成回路112は、データマスク生成回路130と、アクセスIDシンドローム生成回路132と、パリティ生成回路134と、排他的論理和回路136とを有している。
【0069】
図9は、データマスク生成回路130の具体的構成を示す図である。データマスク生成回路130は、アクセスしたいメモリ40のアドレスとアクセスIDを入力として、その2つの値に対応する64ビットのデータ用のマスク、すなわちデータマスクを出力する。データマスク生成回路130は、具体的には、図9に示すように乱数メモリである。乱数メモリは通常のメモリ素子で構成される。
【0070】
乱数メモリには、ランダムな値が書き込まれている。アクセスIDとアドレスとが乱数メモリのアドレス端子に繋がっており、これにより、アクセスIDとアドレスに対応したランダムな値がデータマスク値として乱数メモリのデータ端子から出力される。
【0071】
なお、データマスク生成回路130は、アドレスとアクセスIDから一意に定まる値を出力できればよく、そのための構成は実施の形態に限定されるものではない。データマスク生成回路130は、書込元データマスク生成手段と読出元データマスク生成手段として機能する。
【0072】
図10−1は、アクセスIDシンドローム生成回路132を示す図である。アクセスIDシンドローム生成回路132は、取得したアクセスIDにより生成されるべきパリティのシンドロームを決定する。具体的には、前述のようにシンドローム中の「1」の数がすべて奇数になるように統一すべく、図10−1に示すように構成される。
【0073】
なお、シンドローム中の「1」の数がすべて偶数になるように統一する場合には、図10−2に示すように構成される。なお、アクセスIDシンドローム生成回路132により生成されるシンドローム中の「1」の数については後述する。
【0074】
アクセスIDシンドローム生成回路132は、書込元マスクデータの書込元シンドロームを生成する書込元シンドローム生成手段および読出元マスクデータの読出元シンドロームを生成する読出元シンドローム生成手段として機能する。
【0075】
パリティ生成回路134は、データマスク生成回路130が生成したデータマスクのパリティを求める。排他的論理和回路136は、パリティ生成回路134により生成されたパリティとアクセスIDシンドローム生成回路132が生成したアクセスIDシンドロームの排他的論理和をとったものをパリティ用のマスク、すなわちパリティマスクとして出力する。排他的論理和136は、書込元パリティマスク生成手段および読出元パリティマスク生成手段として機能する。
【0076】
通常、任意のデータと、このデータから計算したパリティのシンドロームは0になる。しかし、そのパリティと任意の値「x」との排他的論理和をとった値を新しいパリティとしてシンドロームを計算すると、その値は「x」になる。
【0077】
これは検査行列「H」のパリティに対応する部分が単位行列になっていることから導かれる。この性質を利用して、データマスク生成回路130が生成したデータマスクに対して、アクセスIDシンドローム生成回路132が生成したアクセスIDシンドロームが算出されるようなパリティマスクが生成される。
【0078】
図11は、アクセス制御システム1におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。まず、アクセスIDレジスタ110からアクセスIDを取得する(ステップS102)。次に、パリティ生成回路100は、パリティを生成し、メモリ40に書き込むべきデータに付与する(ステップS104)。次に、マスク値生成回路112は、マスク値を生成する(ステップS106)。具体的には、マスク値生成回路112は、データマスクとパリティマスクとを生成する。
【0079】
次に、第1排他的論理和回路102は、データおよびパリティと、マスク値生成回路112により生成されたマスクとの排他的論理和を計算する(ステップS108)。具体的には、プロセッサ20から取得したデータとマスク値生成回路112により生成されたデータマスクとの排他的論理和を計算する。さらに、パリティ生成回路100により生成されたパリティマスクとマスク値生成回路112により生成されたパリティとの排他的論理和を計算する。次に、第1排他的論理和回路102により得られた第1演算後データをメモリ40に書き込む(ステップS110)。以上で書き込み処理が完了する。
【0080】
図12は、書き込み処理におけるデータの流れを示す図である。起動しているプロセスがメモリ40にデータDを書き込む際には、ECCによりパリティが付加され、パリティ付加データD’が得られる。
【0081】
次に、パリティ付加データD’と、このマスク値生成回路112により生成されたマスク値「Ka」との排他的論理和
【数1】

をとった値
【数2】

すなわち、第1演算後データD’’がメモリ40に書き込まれる。
【0082】
ここで、アクセスIDに関する情報をアクセス制御装置10に設定するアクセスID設定処理における詳細な処理を説明する。図13は、アクセスID設定処理において利用されるプロセス管理テーブルを示す図である。アクセス管理テーブルは、オペレーティングシステム(OS)が有している。プロセッサ20上で複数のプロセスを実行する場合、通常、OSがそれらのプロセスの管理を行う。このとき図13に示すプロセス管理テーブルを利用する。
【0083】
プロセス管理テーブルは、プロセスIDに対応付けて、優先度情報、アクセス権情報、プログラムカウンタ、レジスタの退避領域、ページテーブルへのポインタを記録している。さらに、アクセスID情報をプロセスIDに対応付けて記録している。プロセス管理テーブルに管理される情報は、OSによって異なり実施の形態に限定されるものではない。
【0084】
図14は、アクセスID設定処理における詳細な処理を示すフローチャートである。すなわちOSがプロセス切り替えを行う際のプロセッサ20の処理である。実行中のプロセスが停止すると(ステップS120)、今まで実行していたプロセスのコンテクスト、すなわちレジスタ、プログラムカウンタの値などの実行状態をプロセス管理テーブルに退避する(ステップS122)。そして、プロセス管理テーブルを参照し、次に実行するプロセスのコンテクスト、すなわちレジスタ、プログラムカウンタの値、ページテーブルなどをプロセッサ20に設定する(ステップS124)。
【0085】
さらに、次に実行するプロセスのアクセスID情報をアクセス制御装置10に設定する(ステップS126)。このアクセスID情報には、そのプロセスがアクセスするときに用いるアクセスIDが入っている。
【0086】
その後、キャッシュをフラッシュする(ステップS128)。ここでキャッシュをフラッシュするのは、前のプロセスの使っていたデータがキャッシュに残っていると、アクセス権限が無くてもアクセスできてしまうのを防ぐためである。そして、次に実行するプロセスに制御を移す(ステップS130)。以上で、アクセスID設定処理が完了する。
【0087】
なお、本実施の形態においては、キャッシュのフラッシュは、OSが実行することとしたが、これに限定されるものではない。また、キャッシュのフラッシュ(ステップS128)は、次に実行するプロセスの開始(ステップS130)より前で、かつ実行していたプロセスのコンテクストの退避(ステップS122)以降であれば、どのタイミングでもよい。他の例としては、アクセスIDレジスタ110の設定が変更された時点で、アクセス制御装置10がプロセッサ20に割り込みをかけ、その割り込み処理ルーチン内でキャッシュをフラッシュすることとしてもよい。
【0088】
図15は、マスク値生成処理(ステップS106)におけるマスク値生成回路112の詳細な処理を説明するフローチャートである。まず、データマスク生成回路130は、アクセスIDとアクセスすべきアドレスに基づいて、データマスクを生成する(ステップS140)。次にアクセスIDシンドローム生成回路132は、アクセスIDに基づいて、アクセスIDシンドロームを生成する(ステップS142)。
【0089】
次に、パリティ生成回路134は、データマスク生成回路130が生成したデータマスクのパリティを生成する(ステップS144)。次に、排他的論理和回路136は、パリティ生成回路134が生成したパリティとアクセスIDシンドローム生成回路132が生成したシンドロームの排他的論理和を計算する。すなわち、パリティマスクを生成する(ステップS146)。以上でマスク値生成処理(ステップS106)が完了する。なお、データマスク生成のタイミングはパリティ生成のタイミングより前であればよく、アクセスIDシンドローム生成の前でなくともよい。
【0090】
図16は、アクセス制御処理に含まれるメモリ40からデータを読み出す処理を示すフローチャートである。まず、アクセスIDレジスタ110からアクセスIDを取得する(ステップS102)。次に、マスク値生成回路112は、マスク値を生成する(ステップS106)。なお、マスク値生成処理(ステップS106)は、それぞれ図14および図15を参照しつつ説明したマスク値生成処理(ステップS106)と同様である。
【0091】
次に、第2排他的論理和回路114は、メモリ40に書き込まれている第1演算後データD’’を読み出す(ステップS204)。次に、読み出した第1演算後データD’’とマスク値生成回路112により生成されたマスク値との排他的論理和を計算する(ステップS206)。
【0092】
さらに、シンドローム計算回路120は、ECCによりシンドロームを計算する(ステップS208)。シンドロームが「0」である場合、すなわち誤りが検出されない場合には(ステップS210,Yes)、データDを読み出す(ステップS212)。
【0093】
また、シンドロームが「0」以外であって、シンドロームの中の「1」のビットが奇数個である場合(ステップS210,No、ステップS214,Yes)、すなわち誤りが1つ検出された場合には、誤り訂正回路122は、誤り訂正を行い(ステップS216)、訂正後のデータDを読み出す(ステップS212)。シンドロームが「0」以外であって、1誤りのシンドロームではない場合(ステップS210,No、ステップS214,No)、すなわち誤りが訂正不可能な場合には、データDにかえて「0」データを出力する(ステップS218)。以上でデータ読み出し処理が完了する。
【0094】
なお、本実施の形態においては、ステップS218においては、「0」データを出力することとしたが、他の例としては、これにかえて、データを出力しないこととしてもよい。また、他の例としては、メモリ40から読み出したデータをそのまま出力してもよい。
【0095】
また他の例としては、訂正できない誤りが発生した場合には、誤り訂正回路122は誤りが検出されたことを示す誤り検出信号を出力し、この信号に基づいて、割り込み等の手段でプロセッサ20に通知してもよい。
【0096】
図17は、メモリ40に書き込まれたデータを読み出す際の処理を説明するための図である。起動しているプロセスが、メモリ40からデータを読み出す際には、メモリから読出した第1演算後データD’’すなわち、
【数3】

と、このプロセスによりアクセスIDレジスタ110に設定されたアクセスIDに基づいて生成されたマスク「Kb」との排他的論理和
【数4】

をとった値
【数5】

が計算される。なお、この値は、第2演算後データに相当する。その後、シンドローム計算回路120による計算結果に基づいて、ECCによる誤り検査と訂正を行った値を読み出す。
【0097】
書き込み時と読み出し時のマスクが同じ場合、すなわち、Ka=Kbの場合には、正しいデータDを読み出すことができる。書き込み時と読み出し時のマスクが異なる場合、すなわちka≠Kbの場合は、メモリ40から読み出した第1演算後データD’’に対して、
【数6】

の値の1のビットの数だけ誤りが発生している状態である。したがって、この場合には、誤り訂正回路122は、「0」データを出力する。
【0098】
なお、他の例としては、書き込み時と読み出し時のマスクが異なる場合には、誤り訂正回路122は、「0」データを出力するのにかえて、データを出力しないこととしてもよい。
【0099】
以上のように、本実施の形態にかかるアクセス制御システム1においては、メモリ40にデータを書き込むときには、データとそのパリティに対して、要求元固有のマスク値との排他的論理和をとったデータとパリティをメモリ40に書き込む。また、要求元がメモリ40からデータを読み出すときには、メモリ40から読み出したデータとパリティに対して、要求元固有のマスク値との排他的論理和をとったデータとパリティを作成し、それに対して誤り訂正処理を行ったデータを要求元に返す。
【0100】
メモリ40への書き込みと読み出しが同じ要求元であれば、アクセスIDが等しくマスク値が等しくなる。このため、書き込み時に排他的論理和をとったマスク値と、読み出し時に排他的論理和をとるマスク値は同じ値となる。したがって、マスクの効果が打ち消されて、正しくデータを読み出すことができる。
【0101】
一方、本実施の形態においては、メモリ40への書き込みと読み出しの要求元が異なる場合には、誤り訂正回路122で誤りと判断されるようにマスク値を設定しておく。このため、書き込み時に排他的論理和をとったマスク値と、読み出し時に排他的論理和をとるマスク値が異なる。したがって、異なる要求元によるデータの読み出しを防ぐことができる。
【0102】
このような異なる要求元からの不正アクセスを防止すべく、書き込み時と読み出し時のマスク値が異なる場合には、必ず誤り訂正不可能であることを表すシンドロームを生成するようにマスク値を選ぶこととする。具体的には、書き込み時のマスク値から計算したシンドロームの値と、読み出し時のマスク値から計算したシンドロームの値の排他的論理和をとった値が「0」ではなく、かつ、その値の「1」の数が偶数個であればよい。
【0103】
そのためには、各マスク値から計算したシンドロームの値の中の「1」の数がどのマスクも必ず奇数個あるいは偶数個のどちらかになるように統一しておけばよい。この値をいずれにするかにより図10−1および図10−2に示したアクセスIDシンドローム生成回路132を選べばよい。
【0104】
このようにマスク値を選ぶ場合、管理可能な要求元の数は、この条件を満たすシンドロームの数に等しくなる。すなわち、64ビットのデータに8ビットのパリティをつける構成では、シンドロームの中の「1」の数が奇数個になるように統一する場合には128個、偶数個(0個も含む)になるように統一する場合も128個の要求元を識別することができる。
【0105】
マスクは、プロセスごとに固有の値を持つように設定されている。したがって、所定のプロセスが書き込んだデータを、他のプロセスが読み出そうとした場合には、本実施の形態にかかるアクセス制御システム1においては、読み出すことができない。すなわち、他のプロセスからデータを保護することができる。
【0106】
アクセス制御システム1は、以上のように不正なプロセスがデータを読むことを防止する一方で、データの書き込みにおいても、本来データを書くことが許されているプロセスだけが書けるように保護する。具体的には、メモリ40にデータを書き込む際には、書き込む前に、一度メモリ40に書き込まれているデータを読み出す。そして、マスクの不一致で読み出しのアクセスができないアドレスにはデータを書き込めないように制御する。これにより、細かな単位の書き込みアクセスの保護を実現することができる。
【0107】
さらに、アクセス制御システム1において利用されるマスク値は、アクセス要求元であるプロセスを識別するアクセスIDとアクセスすべきメモリ領域のアドレスとに基づいて生成されるので、要求元毎に、さらにはアクセスすべきメモリ領域毎にアクセス制御を行うことができる。
【0108】
(実施の形態2)
図18は、実施の形態2にかかるアクセス制御装置10の機能構成を示すブロック図である。実施の形態2にかかるアクセス制御装置10は、実施の形態1にかかるアクセス制御装置10のアクセスIDレジスタ110にかえて、アクセスID管理装置140を備えている。この点で実施の形態1にかかるアクセス制御システム1と異なっている。
【0109】
図19は、アクセスID管理装置140の詳細な機能構成を示すブロック図である。アクセスID管理装置140は、アクセスIDテーブル142とアクセスID選択回路144とを有している。
【0110】
図20は、アクセスIDテーブル142のデータ構成を模式的に示す図である。アクセスIDテーブル142は、アクセスIDと、このアクセスIDで識別される要求元がアクセス可能なメモリ領域の開始アドレスおよび終了アドレスとを対応付けて記録している。本実施の形態にかかるアクセスIDテーブル142は、書込元アクセスID保持手段および読出元アクセスID保持手段として機能する。また、本実施の形態にかかるアクセスID管理装置140は、書込メモリアドレス取得手段および読出メモリアドレス取得手段として機能する。
【0111】
プロセッサ20上で実行されるプロセスを切り替える時点で、プロセッサ20は、切り替え後のプロセスの持つアクセスIDとそれに対応するメモリ領域の開始アドレスと終了アドレスを必要な組数だけアクセスIDテーブル142に書き込む。すなわち、アクセスIDテーブル142には、プロセスが切り替えられる毎に、切り替え後のプロセスに対応するデータが記録される。
【0112】
各プロセスに対応するアクセスIDテーブル142に記録するデータは、図13に示したプロセス管理テーブルのアクセスID情報の中に記録しておく。そして、プロセスを切り替える際に、すなわち実施の形態1において図14を参照しつつ説明したステップS126において、アクセスID情報に記録されているデータをアクセスIDテーブル142に設定する。
【0113】
アクセスIDテーブル142は、プロセッサ20からみることのできるアドレス空間の入出力空間にマッピングしておく。これにより、プロセッサ20は直接アクセスIDテーブル142に書き込むことができる。
【0114】
アクセスID選択回路144は、プロセッサ20からメモリ40へのアクセス要求を取得する。このアクセス要求にはアクセスすべきメモリ領域のアドレスが含まれている。そして、アクセスIDテーブル142を参照し、メモリ領域に対応するアクセスIDを出力する。本実施の形態にかかるアクセスID選択回路144は、書込元アクセスID特定手段および読出元アクセスID特定手段として機能する。
【0115】
図21は、アクセスID管理装置140の具体的な構成を示す図である。このように、開始アドレス、終了アドレスおよびアクセスIDを記録しておき、これらのデータに対する演算を行うことによりアクセスIDテーブル142およびアクセスID選択回路144が実現される。
【0116】
図22は、実施の形態2にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。
【0117】
前述のように、まずプロセッサ20からアドレスAを取得する(ステップS150)。次に、アクセスID選択回路144は、アクセスIDテーブル142を参照し、アドレスAが開始アドレス以上であって、かつ終了アドレス以下となるような開始アドレスと終了アドレスに対応付けられているアクセスIDを選択する(ステップS152)。次に、選択したアクセスIDをマスク値生成回路112に出力する(ステップS154)。以上で、アクセスID取得処理(ステップS102)が完了する。
【0118】
このように、実施の形態2にかかるアクセス制御システム1においては、アクセス要求元のアクセスIDがメモリ領域ごとに異なっているので、メモリ領域毎のアクセス制御を行うことができる。
【0119】
プロセッサ20で実行する複数のプロセス間で、メモリ領域を共有する場合には、メモリ領域ごとにアクセスできるプロセスを設定しておき、アクセス権限のチェックを行いたい場合も多い。実施の形態2にかかるアクセス制御システム1のアクセス制御装置10は、このようなメモリ領域に対応したアクセス権限のチェックを行うことができる。
【0120】
また、本実施の形態においては、キャッシュのフラッシュは、アクセスIDテーブル142が変更された時点で、アクセス制御装置10がプロセッサ20に割り込みをかけ、その割り込み処理ルーチン内で行うこととする。
【0121】
なお、実施の形態2にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態1にかかるアクセス制御システム1の構成および処理と同様である。
【0122】
(実施の形態3)
次に、実施の形態3にかかるアクセス制御システム1について説明する。実施の形態3にかかるアクセス制御システム1は、実施の形態2にかかるアクセス制御システム1と同様に、アクセスID管理装置140を備えている。ただし、アクセスID管理装置140における処理が異なる。本実施の形態にかかるアクセスID管理装置140は、書込元ID取得手段および読出元ID取得手段として機能する。実施の形態3にかかるアクセスID選択回路144は、要求元を識別する要求元IDを取得し、この要求元IDに基づいてアクセスIDを選択する。
【0123】
図23は、実施の形態3にかかるアクセス制御システム1におけるアクセスID管理装置140に含まれるアクセスIDテーブル142のデータ構成を模式的に示す図である。このように、アクセスIDテーブル142は、要求元IDとアクセスIDとを対応付けて保持している。なお、本実施の形態にかかるアクセスIDテーブル142は、書込元アクセスID保持手段および読出元アクセスID保持手段として機能する。
【0124】
アクセスID選択回路144は、アドレスにかえて、アクセス要求の要求元を識別する要求元IDを取得する。複数のプロセッサ20を接続できるプロセッサバス22には、通常、いずれの装置がリクエストを出しているかを示す信号が出ている。そこで、アクセスID選択回路144はその信号から要求元IDを特定する。そして、アクセスIDテーブル142を参照し、取得した要求元IDに対応付けられているアクセスIDを選択する。本実施の形態にかかるアクセスID選択回路144は、書込元アクセスID特定手段および読出元アクセスID特定手段として機能する。
【0125】
図24は、アクセスID管理装置140の具体的な構成を示す図である。このように、要求元IDとアクセスIDを記録しておき、これらのデータに対する演算を行うことによりアクセスIDテーブル142およびアクセスID選択回路144が実現される。
【0126】
図25は、実施の形態3にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。
【0127】
まずプロセッサバス22から要求元IDを取得する(ステップS160)。次に、アクセスID選択回路144は、アクセスIDテーブル142を参照し、要求元IDに対応するアクセスIDを選択する(ステップS162)。次に、選択したアクセスIDをマスク値生成回路112に出力する(ステップS164)。以上で、アクセスID取得処理(ステップS102)が完了する。
【0128】
このように、要求元から直接アクセスIDを取得するのにかえて、要求元IDを取得することにより、セキュリティのさらなる向上を図ることができる。例えば、プロセッサバス22にプロセッサ20や入出力装置が複数接続されている場合であっても、接続されているこれらの装置のアクセス権限のチェックを行うことができる。
【0129】
なお、実施の形態3にかかるアクセス制御システム1のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム1の構成および処理と同様である。
【0130】
(実施の形態4)
次に、実施の形態4にかかるアクセス制御システム1について説明する。実施の形態4にかかるアクセス制御システム1は、実施の形態2にかかるアクセスID管理装置140と実施の形態3にかかるアクセスID管理装置140両方の機能を備えている。すなわち、アクセス先のメモリ領域とアクセス要求の要求元の要求元IDの両方の情報に基づいて、アクセスIDを決定する。
【0131】
図26は、実施の形態4にかかるアクセスIDテーブル142のデータ構成を模式的に示す図である。アクセスIDテーブル142は、要求元IDと、開始アドレスおよび終了アドレスと、アクセスIDとを対応付けて保持している。アクセスID選択回路144は、プロセッサ20から取得したアクセス要求に含まれるアドレス領域を特定し、さらにプロセッサバス22から要求元IDを取得する。
【0132】
図27は、アクセスID管理装置140の具体的な構成を示す図である。このように、開始アドレス、終了アドレス、要求元IDおよびアクセスIDを記録しておき、これらのデータに対する演算を行うことによりアクセスIDテーブル142およびアクセスID選択回路144を実現する。
【0133】
図28は、実施の形態4にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。アクセスID選択回路144は、プロセッサ20からアドレスAを取得する(ステップS170)。さらに、プロセッサバス22から要求元IDを取得する(ステップS172)。次に、アクセスID選択回路144は、アクセスIDテーブル142を参照し、要求元IDおよびアドレスAに対応するアクセスIDを選択する(ステップS174)。次に、選択したアクセスIDをマスク値生成回路112に出力する(ステップS176)。以上で、アクセスID取得処理(ステップS102)が完了する。
【0134】
なお、実施の形態4にかかるアクセス制御システム1のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム1の構成および処理と同様である。
【0135】
(実施の形態5)
次に、実施の形態5にかかるアクセス制御システム1について説明する。実施の形態5にかかるアクセス制御装置10におけるランダムマスク生成処理が他の実施の形態にかかるアクセス制御装置10における処理と異なっている。
【0136】
図29は、実施の形態5にかかるデータマスク生成回路130の機能構成を示すブロック図である。データマスク生成回路130は、データマスク生成情報特定回路1301と、データマスク生成情報テーブル1302と、LFSR(リニア・フィードバック・シフト・レジスタ)遅延計算回路1303a,1303b,1303cとを有している。
【0137】
図30は、データマスク生成情報テーブル1302のデータ構成を模式的に示す図である。データマスク生成情報テーブル1302は、アクセスIDに対応付けて、このアクセスIDからデータマスク値を生成する際に利用するデータマスク生成情報、すなわち各種パラメータを記録している。パラメータとしては、各LFSR遅延計算回路1303a,1303b,1303cに入力するパラメータである特性多項式の係数、遅延係数、初期マスクなどがある。なお、実施の形態5にかかる各LFSR遅延計算回路1303a,1303b,1303cは、初期マスクは利用しないので、このデータは記録していなくてもよい。
【0138】
再び説明を図29に戻す。データマスク生成情報特定回路1301は、アクセスIDレジスタ110またはアクセスID管理回路140からアクセスIDを取得すると、データマスク生成情報テーブル1302を参照し、取得したアクセスIDに対応付けられているデータマスク生成情報、すなわち各種パラメータを特定する。
【0139】
各LFSR遅延計算回路1303a,1303b,1303cには、データマスク生成情報特定回路1301により特定されたそれぞれのパラメータが入力される。さらに、各LFSR遅延計算回路1303a,1303b,1303cには、アクセスすべきメモリ40のアドレスが入力される。各LFSR遅延計算回路1303a,1303b,1303cは、取得した各データに基づいて、データマスクを計算する。
【0140】
一般に、原始多項式を特性多項式とするLFSRが生成する系列はM系列と呼ばれ、擬似乱数として良い性質を備えていることが広く知られている。そこで、本実施の形態においては、ある特性多項式に対応するLFSRで、その初期状態としてアクセスしたいメモリ40のアドレスを設定し、その状態から、アクセスIDに対応する決まったステップだけシフトを進めた時の内部状態を、データマスクとして利用する。
【0141】
本実施の形態においては、アドレスは24ビットと仮定し、3つの24次の原始多項式を特性多項式とする24段のLFSRを3つ有している。24段のLFSRの内部状態は24ビットある。したがって、3つのLFSR遅延計算回路1303a,1303b,1303cからは最大72ビットのマスクを取り出すことができる。ただし、本実施の形態において必要なのは64ビットなので、LFSR遅延計算回路1303aからは22ビット、残りのLFSR遅延計算回路1303b,1303cからは21ビットずつ取り出す。
【0142】
そして、各LFSR遅延計算回路1303a,1303b,1303cの初期状態にアドレスを設定し、アクセスIDから決まる遅延係数に対応したステップだけLFSRを進めた時の内部状態「Mx」を取り出す。そして、これらの値をあわせてデータマスクとして出力する。なお、3つのLFSR遅延計算回路1303a,1303b,1303cから取り出した値をデータマスクとする際の信号線の並べ方は特に制限されるものではない。
【0143】
LFSR遅延計算回路1303aの処理についてさらに詳述する。なお、他のLFSR遅延計算回路1303b,1303cについても同様である。LFSRの特性多項式を(式7)で表す。

f(x)=A00+A1x1+A2x2+・・・+A2424 ・・・(式7)

この場合、このLFSRでdステップ後に出力される値を計算するためには、まずxdをf(x)で割った時の余りg(x)を求める。g(x)は、(式8)で表される。

g(x)=B00+B11+B22+・・・+B2323 ・・・(式8)

このg(x)の係数である(B0,B1, ・・・ B23)と、LFSRの内部状態(シフトレジスタの各段の値のベクトル)との積和を計算することにより、その内部状態からdステップ後に出てくる1ビットの値が得られる。このB0,B1, ・・・ B23を遅延係数と呼ぶ。
【0144】
データマスク生成情報テーブル1302には、特性多項式の係数A0,A1,・・・ An-1と、遅延係数B0,B1, ・・・ Bn-1と、初期値となる内部状態S0,S1, ・・・ Sn-1とが保持されている。なお、特性多項式の係数の最上位のAnは必ず1であることが自明なので予め保持しておく必要はない。
【0145】
LFSR遅延計算回路1303a,1303b,1303cは、これらの初期値から遅延係数B0,B1, ・・・ Bn-1で決まるステップ後の値M0,M1, ・・・ Mm-1を出力する。本実施の形態においてはnは24である。また、mの値は、LFSR遅延計算回路1303a,1303b,1303cごとに異なる。すなわち、LFSR遅延計算回路1303b,1303cは、21ビット取り出す回路なのでmは21である。LFSR遅延計算回路1303aは、22ビット取り出す回路なのでmは22である。
【0146】
図31は、LFSR遅延計算回路1303aのより具体的な構成を示す図である。なお、他のLFSR遅延計算回路1303b,1303cの構成はLFSR遅延計算回路1303aと同様である。図32は、LFSR遅延計算回路1303aに含まれる回路200の詳細図である。また、図33は、LFSR遅延計算回路1303aに含まれる回路202の詳細図である。
【0147】
図32に示す回路200からなるLFSR遅延計算回路1303aの1段目の回路は、遅延係数Bで決まる遅延後のビットMを計算する。より具体的には、遅延係数B0,B1, ・・・ Bn-1と初期値S0,S1, ・・・ Sn-1の積和を計算してM0として出力する。
【0148】
図33に示す回路202からなるLFSR遅延計算回路1303aの2段目以降の回路は、さらに1ステップ先の遅延後のビットを計算する。より具体的には、上段の遅延係数と特性多項式から、この段の遅延係数を計算するとともに、その遅延係数と初期値の積和を計算して出力する。
【0149】
上段の遅延係数からこの段の遅延係数を求める計算は次のように行う。すなわち、g(x)がdステップの遅延係数を表すとき、g(x)・xをf(x)で割ったあまりg’(x)がd+1ステップの遅延係数を表す。この関係を利用して、上段の遅延係数を1ビットシフトして、その最高次の係数が1であればf(x)よりも大きいことを示しているのでf(x)で割ると、その段の遅延係数が求められる。なお、f(x)で割る際には、f(x)の係数との排他的論理和をとればよい。
【0150】
なお、データマスク生成情報テーブル1302が各アクセスIDに対応付けて記憶する遅延係数は、アクセスID毎に異なる値であるのが望ましい。また、各々のアクセスIDに対応する複数の遅延係数同士も異なる値であるのが望ましい。
【0151】
各アクセスIDに対応付けられている遅延係数は、アクセスID作成時に乱数等を用いて決定するのが望ましい。このとき、乱数等によって遅延ステップ数dを求め、それに対応する遅延係数を計算するのが望ましい。また他の例としては、乱数の値をそのまま遅延係数として用いるようにしてもよい。
【0152】
なお、実施の形態5にかかるアクセス制御システム1のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム1の構成および処理と同様である。
【0153】
実施の形態5にかかるアクセス制御システム1の変更例について説明する。本実施の形態においては、特性多項式はアクセスIDに基づいて決定されるが、これにかえて使用する特性多項式を予め設定してもよい。すなわち、特性多項式を固定としてもよい。各LFSR遅延計算回路1303a,1303b,1303cが利用する特性多項式は、同じものであってもよく、異なるものであってもよい。
【0154】
その場合、データマスク生成情報テーブル1302は、特性多項式の係数を記録しなくてよい。さらに、図31等を参照しつつ説明したLFSR遅延計算回路1303aもより簡単な回路として実現することができる。
【0155】
(実施の形態6)
次に、実施の形態6にかかるアクセス制御システム1について説明する。実施の形態6にかかるアクセス制御システム1は、実施の形態5にかかるアクセス制御システム1とほぼ同様であるが、データマスク生成回路130における処理が異なっている。
【0156】
図34は、実施の形態6にかかるデータマスク生成回路130の機能構成を示すブロック図である。実施の形態6にかかるデータマスク生成回路130は、データマスク生成情報特定回路1301と、データマスク生成情報テーブル1302と、LFSR遅延計算回路1303a,1303b,1303c,1303d,1303e,1303fと、排他的論理和回路1304a,1304b,1304cとを有している。
【0157】
実施の形態6にかかるデータマスク生成回路130は、2つのLFSR遅延計算回路1303を組にし、それぞれのLFSR遅延計算回路1303から出力された値の排他的論理和をデータマスクとして利用する。
【0158】
例えば、LFSR遅延計算回路1303aとLFSR遅延計算回路1303bを組にする。そして、排他的論理和回路1304aは、LFSR遅延計算回路1303aから出力される値Mと、LFSR遅延計算回路1303bから出力される値Mとの排他的論理和を計算する。LFSR遅延計算回路1303cとLFSR遅延計算回路1303dの組と、排他的論理和回路1304bについても同様である。また、LFSR遅延計算回路1303eとLFSR遅延計算回路1303fの組と、排他的論理和回路1304cについても同様である。
【0159】
このように、実施の形態6にかかるデータマスク生成回路130は、LFSR遅延計算回路を単独で使うのではなく、2つのLFSR遅延計算回路を組にし、それぞれの出力の排他的論理和を求める。これにより、データマスク生成回路130から出力されるデータマスクのランダム性をより高めることができる。
【0160】
なお、実施の形態6にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態5にかかるアクセス制御システム1の構成および処理と同様である。
【0161】
実施の形態6の変更例としては、本実施の形態においては、2つのLFSR遅延計算回路の出力値の排他的論理和を算出することとしたが、3つ以上のLFSR遅延計算回路を組にし、これらの出力値の排他的論理和をデータマスクとしてもよい。さらに、LFSR遅延計算回路の2つの組とLFSR遅延計算回路の3つの組とを並存させてもよい。
【0162】
(実施の形態7)
次に、実施の形態7にかかるアクセス制御システム1について説明する。実施の形態7にかかるアクセス制御システム1は、実施の形態5にかかるアクセス制御システム1とほぼ同様であるが、データマスク生成回路130における処理が異なっている。
【0163】
図35は、実施の形態7にかかるデータマスク生成回路130の機能構成を示すブロック図である。実施の形態7にかかるデータマスク生成回路130は、さらにゼロシフト回路1305a,1305b,1305cとアドレス拡散回路1306a,1306b,1306cとを有している。
【0164】
実施の形態7にかかるLFSR遅延計算回路1303a,1303b,1303cは、アドレス自体を直接の入力とするのではなく、それぞれゼロシフト回路1305a,1305b,1305cおよびアドレス拡散回路1306a,1306b,1306cを介してゼロシフトおよびアドレス拡散されたアドレスを入力とする。
【0165】
ゼロシフト回路1305a,1305b,1305cの処理は同様であり、また、アドレス拡散回路1306a,1306b,1306cの処理は同様であるので、以下、ゼロシフト回路1305aおよびアドレス拡散回路1306aについて説明する。
【0166】
ゼロシフト回路1305aは、ゼロのアドレスをゼロ以外に変換する。LFSR遅延計算回路1303aは、アドレスがゼロの場合には、常にゼロを出力する。したがって、アドレスがゼロの場合には、LFSR遅延計算回路1303aの処理を施してもアドレス自体が出力されてしまい好ましくない。そこで、ゼロシフト回路1305aは、ゼロをゼロ以外の値に変換する。
【0167】
具体的には、例えば入力されたアドレスに対して初期マスクを加算したものを出力する。初期マスクは、データマスク生成情報テーブル1302に記録されており、データマスク生成情報特定回路1301が読み出し、各ゼロシフト回路1305a,1305b,1305cに送る。
【0168】
また、他の例としては、入力されたアドレスに対して初期マスクとの排他的論理和をとったものを出力してもよい。
【0169】
アドレス拡散回路1306aは、値の近いアドレス同士がより離れたアドレスになるようアドレスを変換する。入力されるアドレスが連続する場合に、連続する2つのアドレスを比べたときに異なる値のビット位置が1つである確率が高い。このため、隣り合うアドレスのマスク値に相関関係が生じる可能性があり、好ましくない。そこで、このような相関関係が生じるのを防ぐために、隣り合うアドレスをより離れたアドレスに変換する。
【0170】
図36は、アドレス拡散回路1306aの具体的な構成例を示す図である。アドレス拡散回路1306aは、拡散マスクメモリ1307aを有している。拡散マスクメモリ1307aには、予めアドレスの拡散パターンが記録されている。そして、アドレス拡散回路1306aにアドレスが入力されると、そのアドレスの下位のビットを使って拡散マスクメモリ1307aを引き、その値とアドレスの上位の排他的論理和を計算する。これにより、連続するアドレスが入力されても、離れたアドレスに変換されて出力される。
【0171】
なお、実施の形態7にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態5にかかるアクセス制御システム1の構成および処理と同様である。
【0172】
実施の形態7にかかるデータマスク生成回路130の第1の変更例について説明する。図37は、第1の変更例にかかるアドレス拡散回路1306aの具体的な構成を示す図である。第1の変更例にかかるアドレス拡散回路1306aは、デコーダ1308aを有している。デコーダ1308aは、アドレスの下位ビットから上位のアドレスをひとつ選択して、その選択したアドレスの値を排他的論理和で反転させるものである。この場合にも、実施の形態7にかかるアドレス拡散回路1306aと同様に、隣接するアドレスをより離れたアドレスに変換することができる。
【0173】
第2の変更例としては、実施の形態7にかかるアクセス制御システム1におけるデータマスク生成回路130は、ゼロシフト回路1305a,1305b,1305cとアドレス拡散回路1306a,1306b,1306cの両方を有していたが、これらのうちいずれか一方のみを有することとしてもよい。
【0174】
図38は、ゼロシフト回路1305a,1305b,1305cのみを有するデータマスク生成回路130のブロック図である。また、図39は、アドレス拡散回路1306a,1306b,1306cのみを有するデータマスク生成回路130のブロック図である。
【0175】
図40は、第3の変更例にかかるデータマスク生成回路130を示すブロック図である。本例にかかるデータマスク生成回路130は、実施の形態7にかかるデータマスク生成回路130を実施の形態6にかかるデータマスク生成回路130に適用したものである。このように2つ1組として利用するLFSR遅延計算回路1303それぞれに対しゼロシフト回路1305およびアドレス拡散回路1306を設けてもよい。
【0176】
また、この場合も上述のようにゼロシフト回路1305のみを有することとしてもよい。また、他の例としては、アドレス拡散回路1306のみを有することとしてもよい。
【0177】
図41は、第4の変更例にかかるデータマスク生成回路130のブロック図である。図41に示すデータマスク生成回路130は、図40に示すデータマスク生成回路130の構成と同様に2つのLFSR遅延計算回路1303を1組として利用するものである。そして、さらに、組となっている2つのLFSR遅延計算回路1303のうち一方側にゼロシフト回路1305を設け、他方側にアドレス拡散回路1306を設けている。このように、LFSR遅延計算回路1303毎にゼロシフト回路1305およびアドレス拡散回路1306の有無を異ならせてもよい。
【0178】
図42は、第5の変更例にかかるデータマスク生成回路130のブロック図である。図42に示すデータマスク生成回路130は、図40に示すデータマスク生成回路130の構成と同様に2つのLFSR遅延計算回路1303を1組として利用するものである。そして、さらに組となっている2つのLFSR遅延計算回路1303のうち一方側にゼロシフト回路1305とアドレス拡散回路1306を設け、他方側にアドレス拡散回路1306のみを設けている。なお、ゼロシフト回路とアドレス拡散回路の組み合わせ方はこれらに限定されるものではなく、様々に組み合わせることができる。
【0179】
(実施の形態8)
次に実施の形態8にかかるアクセス制御システム1について説明する。図43は、実施の形態8にかかるアクセス制御装置10の機能構成を示すブロック図である。実施の形態8にかかるアクセス制御装置10は、アドレス変換装置150をさらに備えている。この点で他の実施の形態にかかるアクセス制御装置10と異なっている。
【0180】
アドレス変換装置150は、プロセッサ20から取得したアドレスを変換する。マスク値生成回路112は、アドレス変換装置150により変換された後のアドレスを取得する。そして、このアドレスに基づいて、マスク値を生成する。
【0181】
このように、実施の形態8にかかるアクセス制御装置10においては、マスク値生成回路112は、アドレス変換後のアドレスに基づいてマスク値を生成するので、プロセッサ20から取得したアドレスに基づいてマスク値を生成した場合に比べて、プロセッサ20から取得したアドレスとの相関の小さいマスク値を生成することができる。
【0182】
図44は、アドレス変換装置150の具体的な構成を示す図である。アドレス変換装置150は、アドレス変換メモリ151を有している。アドレス変換メモリ151の中にはどのアドレスをどのアドレスに変換するかの対応表が記録されている。そして、入力されたアドレスの下位のビットを変換して出力する。
【0183】
アドレス変換メモリ151に記録されている対応表はアクセスID毎に違えるのが望ましい。アクセスID毎の対応表は、マスク値生成回路112に保持させておく。より詳しくは、データマスク生成情報テーブル1302に保持させておく。そして、アクセスIDの切り替え時にアドレス変換メモリ151に書き込むこととする。
【0184】
なお、実施の形態8にかかるアクセス制御システム1のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム1の構成および処理と同様である。
【0185】
図45は、実施の形態8の第1の変更例にかかるアドレス変換装置150の構成を示す図である。第1の変更例にかかるアドレス変換装置150は、アドレスの中程のビットとアドレスの下位のビットの排他的論理和を計算する。本例にかかるアドレス変換装置150は、こうしてアドレス変換された後のアドレスを出力する。これにより、アドレス変換メモリによる下位ビットの変換のパターンを増やすことができる。
【0186】
図46は、実施の形態8の第2の変更例にかかるアドレス変換装置150の構成を示す図である。このように、図45に示す場合に比べて、アドレスのより上位のビットと下位のビットとの排他的論理和を計算してもよい。
【0187】
図47は、実施の形態8の第3の変更例にかかるアドレス変換装置150の構成を示す図である。このように、アドレスの中程のビットとアドレスの下位のビットと排他的論理和を計算し、この計算結果とアドレスの上位のビットとの排他的論理和を計算してもよい。
【0188】
以上、実施の形態1から実施の形態8におけるアクセス制御システム1について説明したが、実施の形態に特徴的なアクセス制御装置10は、以下に示すような他のシステムに適用されてもよい。
【0189】
図48は、第1の変更例にかかるアクセス制御システム1の全体構成を示す図である。第1の変更例にかかるアクセス制御システム1は、実施の形態にかかるアクセス制御システム1と同様に、アクセス制御装置10を備えている。
【0190】
第1の変更例にかかるアクセス制御システム1においては、アクセス権限に関する情報をプロセッサ20がアクセス制御装置10に対して設定する。アクセス制御システム1は、このための専用線24をさらに備えている。
【0191】
このようにアクセス権限に関する情報は、専用線を介して入出力することにより、不正アクセスを防止することができる。
【0192】
図49は、第2の変更例にかかるアクセス制御システム1の全体構成を示す図である。第2の変更例にかかるアクセス制御システム1は、複数のプロセッサ20a,20bを備えている。この場合、各プロセッサ20a,20bがメモリ40へのアクセスの要求元となってもよい。そして、アクセス制御装置10は、各プロセッサ単位でメモリ40へのアクセスを制御してもよい。すなわち、アクセスIDは、各プロセッサ毎に割り当てられる。さらに、各プロセッサのアクセスすべきメモリ領域単位に割り当てられる。
【0193】
図50は、第3の変更例にかかるアクセス制御システム1の全体構成を示す図である。第3の変更例にかかるアクセス制御システム1は、プロセッサ20がメモリコントローラ30を内蔵している。そして、プロセッサ20は、アクセス制御装置10を介してメモリ40と接続している。
【0194】
図51は、第4の変更例にかかるアクセス制御システム1の全体構成を示す図である。第4の変更例にかかるアクセス制御システム1は、プロセッサ20がメモリコントローラ30とアクセス制御装置10とを内蔵している。そして、プロセッサ20とメモリ40とが直接接続している。
【0195】
図52は、第5の変更例にかかるアクセス制御システム1の全体構成を示す図である。第5の変更例にかかるアクセス制御システム1は、プロセッサ20と、メモリ40と、ブリッジ32と周辺機器60a,60b,60cとを備えている。
【0196】
ブリッジ32は、プロセッサバス22に接続されており、メモリコントローラ30およびアクセス制御装置10を有している。例えば、ブリッジ32がペリフェラルバス34に接続されている周辺機器のコントローラを内蔵しているような場合には、このように、ブリッジ32にアクセス制御装置10を組み込むことができる。さらに、他の例としては、アクセス制御装置10は、ブリッジ32とメモリ40の間に設けられてもよい。
【0197】
図53は、第6の変更例にかかるアクセス制御システム1の全体構成を示す図である。第6の変更例にかかるアクセス制御システム1は、システムLSI(Large Scale Integration)として形成されている。アクセス制御装置10は、図53に示すように、プロセッサ20と高速内部バス76で接続されているメモリコントローラ30とともに、システムLSI内に実装されている。
【0198】
図54は、第7の変更例にかかるアクセス制御システム1の全体構成を示す図である。第7の変更例にかかるアクセス制御システム1は、第6の変更例にかかるアクセス制御システム1と同様システムLSIとして形成されている。さらに、第7の変更例にかかるアクセス制御システム1においては、プロセッサ20からアクセス制御装置10にアクセス権限に関する情報を設定するための専用線78が設けられている。これにより、プロセッサ20は、高速内部バス76からアクセス制御装置10に直接アクセスすることができる。
【0199】
また、他の例としては、メモリコントローラとアクセス制御回路を一体の回路として実装してもよい。
【0200】
(実施の形態9)
次に、実施の形態9にかかるアクセス制御システム1について説明する。実施の形態9にかかるアクセス制御システム1は、キャッシュメモリへのアクセス制御を行う。図55は、実施の形態9にかかるアクセス制御システム1の全体構成を示す図である。アクセス制御システム1は、複数のプロセッサ20a〜20cと、ビデオコントローラ21と、メモリ40と、キャッシュメモリを有するアクセス制御装置50とを備えている。
【0201】
アクセス制御装置50は、プロセッサバス22およびメモリバス42に接続しており、プロセッサバス22を介して接続された複数のプロセッサ20a〜20cおよびビデオコントローラ21からキャッシュメモリへのアクセスを制御する。さらに、必要に応じてメモリ40へのデータの書き込みおよびメモリ40からのデータの読み出しをプロセッサ20a等に変わって行う。すなわち、他の実施の形態にかかるメモリコントローラ30の機能も有している。
【0202】
実施の形態9にかかるアクセス制御システム1のように複数のプロセッサや、ビデオコントローラ21のような入出力装置を備えている場合には、これらが共有するキャッシュメモリを利用することにより、メモリアクセスの高速化を図ることができる。
【0203】
図56は、アクセス制御装置50の詳細な機能構成を示すブロック図である。アクセス制御装置50は、プロセッサ側キャッシュ制御回路52と、キャッシュメモリ54と、メモリ側キャッシュ制御回路56とを有している。プロセッサ側キャッシュ制御回路52は、プロセッサからの指示に基づいて、キャッシュメモリ54へのデータの書き込みおよびキャッシュメモリ54からのデータの読み出しを行う。キャッシュメモリ54は、データとメモリアドレス等を対応付けて一時的に保持する。
【0204】
メモリ側キャッシュ制御回路56は、プロセッサ側キャッシュ制御回路52からの指示に基づいて、メモリ40へのデータの書き込みおよびメモリ40からのデータの読み出しを行う。
【0205】
図57は、プロセッサ側キャッシュ制御回路52の詳細な機能構成を示すブロック図である。プロセッサ側キャッシュ制御回路52は、アクセスID管理回路140と、アクセスIDチェック回路522と、シーケンスコントローラ524とを有している。
【0206】
アクセスID管理回路140の機能構成は、実施の形態2において図19を参照しつつ説明したアクセスID管理回路140の機能構成と同様であり、アドレスに基づいて、アクセスIDを特定する。アクセスIDチェック回路522は、アクセスID管理回路140により特定されたアクセスIDと、キャッシュメモリ54に格納されているアクセスIDとが一致するか否かを比較する。シーケンスコントローラ524は、プロセッサ側キャッシュ制御回路52全体の動きを制御する。
【0207】
図58は、キャッシュメモリ54の詳細な機能構成を示すブロック図である。キャッシュメモリ54は、過去にアクセスしたデータを格納するデータ領域544と、メモリ40におけるデータのアドレスを格納するタグ格納領域542と、データにアクセス可能なアクセスIDを格納するアクセスID格納領域546とを有する。各領域において、アドレス、データおよびアクセスIDが対応付けて格納されている。
【0208】
キャッシュメモリ54にデータが格納されている場合には、次に同じアドレスへのアクセスが要求された場合には、このアドレスに対応付けてデータ領域544に格納されているデータを返すことにより、メモリ40へのアクセスによる遅延を低減することができる。なお、キャッシュメモリ54には、ダイレクトマッピングやセットアソシアティブなどさまざまな方式があるが、方式は特に限定されるものではなく、いずれの方式を適用してもよい。
【0209】
図59は、メモリ側キャッシュ制御回路56の詳細な機能構成を示すブロック図である。メモリ側キャッシュ制御回路56は、パリティ生成回路100と、第1排他的論理和回路102と、マスク値生成回路112と、第2排他的論理和回路114と、シンドローム計算回路120と、誤り訂正回路122と、シーケンスコントローラ562とを有している。
【0210】
シーケンスコントローラ562は、メモリ側キャッシュ制御回路56全体の動きを制御する。なお、パリティ生成回路100、第1排他的論理和回路102、マスク値生成回路112、第2排他的論理和回路114、シンドローム計算回路120および誤り訂正回路122の機能構成は、それぞれ実施の形態1にかかるパリティ生成回路100、第1排他的論理和回路102、マスク値生成回路112、第2排他的論理和回路114、シンドローム計算回路120および誤り訂正回路122の機能構成と同様である。
【0211】
ただし、実施の形態9にかかるメモリ側キャッシュ制御回路56においては、メモリ40から読み出されたデータは、対応するアクセスIDとともにキャッシュメモリ54に格納される。また、メモリ40にデータを書き込む場合には、キャッシュメモリ54からデータを取得する。
【0212】
図60は、実施の形態9にかかるアクセス制御システム1におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。まず、プロセッサ側キャッシュ制御回路52のアクセスID管理回路140は、プロセッサ20に書き込む権限があるか否かをチェックする(ステップS300)。具体的には、プロセッサ20からアクセスIDと書き込み先のアドレスとを取得する。そして、取得したアクセスIDとアドレスとがアクセスIDテーブル142において、対応付けられているか否かを判断する。
【0213】
対応付けられている場合には書き込み権限があると判断する。書き込み権限がない場合には(ステップS300,No)、プロセッサ20に対してエラーを通知し(ステップS304)、処理が完了する。
【0214】
一方、書き込み権限がある場合には(ステップS300,Yes)、キャッシュメモリ54にプロセッサ20から取得したデータと、アクセスIDとを対応付けて書き込む(ステップS302)。
【0215】
次に、シーケンスコントローラ524は、メモリ側キャッシュ制御回路56に対してデータの書き込み指示を出す(ステップS310)。具体的には、制御信号により指示を出す。メモリ側キャッシュ制御回路56のシーケンスコントローラ562は、書き込み指示を受け取ると、キャッシュメモリ54に対し、データとアクセスIDの読み出しを指示し、キャッシュメモリ54からデータとアクセスIDとを取得する(ステップS320)。
【0216】
次に、マスク値生成回路112に対し、格納先のアドレスとアクセスIDを渡しマスク値生成を指示する(ステップS322)。マスク値生成回路112は、この指示にしたがいアドレスとアクセスIDに基づいて、マスク値を生成する。次に、シーケンスコントローラ562は、メモリ40にデータの書き込みを指示する(ステップS324)。この指示にしたがい、排他的論理和回路102および排他的論理和回路114などの処理により、パリティが付加され、マスク値との排他的論理和をとることにより得られた第1演算後データがプロセッサ20により指定されたアドレスに書き込まれる。
【0217】
メモリ40へのデータの書き込みが完了すると、シーケンスコントローラ562は、プロセッサ側キャッシュ制御回路52に対して、データの書き込みが完了した旨を通知する(ステップS326)。以上で、書き込み処理が完了する。
【0218】
なお、ライトスルー方式を用いる場合にはキャッシュ54からメモリ40への書き込みが完了してからプロセッサ20に制御を渡すのが望ましい。ライトバック方式を用いる場合には、キャッシュ54からメモリ40への書き込みの完了を待たずにプロセッサ20に制御を渡すのが望ましい。
【0219】
なお、他の例としては、アクセスIDテーブル142において書き込みが許可されるアクセスIDと読み出しが許可されるアクセスIDのそれぞれを、アドレスに対応付けてもよい。これにより、読み出しと書き込みで制限が異なる場合にも対応することができる。
【0220】
図61は、実施の形態9にかかるアクセス制御システム1におけるアクセス制御処理に含まれる読み出し処理を示すフローチャートである。プロセッサ側キャッシュ制御回路52のシーケンスコントローラ524は、プロセッサ20からデータの読み出し要求を取得すると、まずキャッシュメモリ54に該当するデータが格納されているか否かを確認する(ステップS400)。キャッシュメモリ54にデータが格納されている場合には(ステップS400,Yes)、アクセスIDチェック回路522は、プロセッサ20から取得したアクセスIDが正しいか否か、すなわちアクセス権限があるか否かをさらに確認する(ステップS402)。
【0221】
そして、アクセスIDが正しい場合には(ステップS402,Yes)、キャッシュメモリ54から該当するデータを読み出し、プロセッサ20に渡す(ステップS404)。一方、アクセスIDが正しくない場合には(ステップS402,No)、プロセッサ20に対し、エラーを通知する(ステップS406)。
【0222】
なお、アクセスIDが正しいか否かは、キャッシュメモリ54において該当するデータに対応付けられているアクセスIDと、プロセッサ20から取得したアクセスIDとを比較することにより判断する。アクセスIDが一致する場合にはアクセスIDが正しいと判断する。
【0223】
一方、プロセッサ側キャッシュ制御回路52にデータが格納されていない場合には(ステップS400,No)、メモリ側キャッシュ制御回路56に対し、データの読み出しを指示する(ステップS410)。メモリ側キャッシュ制御回路56のシーケンスコントローラ562は、データの読み出し指示を受け取ると、マスク値生成回路112に対して、アドレスとアクセスIDを渡し、マスク値生成を指示する(ステップS420)。この指示にしたがい、マスク値生成回路112は、マスク値を生成する。
【0224】
次に、メモリ40に対し、データの読み出しを指示する(ステップS422)。この指示にしたがい、メモリ40からデータが読み出される。ここで読み出された第1演算後データは、排他的論理和回路102および排他的論理和回路114などの処理により元のデータに戻される。
【0225】
次に、キャッシュメモリ54に対し、得られたデータと、アクセスIDと、アドレスの書き込みを指示し、キャッシュメモリ54にデータとアクセスIDとアドレスとが格納される(ステップS424)。すなわち、キャッシュメモリ54には元のデータが格納される。キャッシュメモリ54へのデータ等の格納が完了すると、シーケンスコントローラ562は、プロセッサ側キャッシュ制御回路52に対し、データの読み出しが完了した旨を通知する(ステップS426)。プロセッサ側キャッシュ制御回路52においては、データの読み出しが完了した旨の通知を受け取ると、ステップS402へ進む。
【0226】
以上のように、実施の形態9にかかるアクセス制御システム1によれば、一旦アクセスされたデータは、キャッシュメモリ54に格納されるので、以降このデータを読み出す場合には、キャッシュメモリ54からデータを読み出せばよく処理速度を向上させることができる。さらに、キャッシュメモリ54からデータを読み出す際には、アクセスIDが一致するか否かをチェックするだけなので、メモリ40からデータを読み出す際の処理に比べて処理速度を向上させることができる。
【0227】
なお、実施の形態9にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態1にかかるアクセス制御システム1の構成および処理と同様である。また、実施の形態9にかかるアクセス制御システム1に特徴的なキャッシュメモリを介したデータの読み書きに関する処理を他の実施の形態に適用することもできる。
【0228】
(実施の形態10)
図62は、実施の形態10にかかるアクセス制御装置10の機能構成を示すブロック図である。実施の形態10にかかるメモリアクセス制御部10は、実施の形態2にかかるメモリアクセス制御部10の機能構成に加えてアドレス変換装置160を備えており、プロセッサ20から取得したアドレスを変換し、変換後のアドレスに対してデータアクセスを行う。アドレス変換装置160は、マスク値生成回路112が保持するアドレス変換情報に基づいて、アドレス変換を行う。
【0229】
図63は、実施の形態10にかかるマスク値生成回路112の詳細な機能構成を示すブロック図である。マスク値生成回路112は、データマスク生成回路130と、シンドローム生成回路132と、パリティ生成回路134に加えて、アドレス情報テーブル138と、アドレス情報特定部139とを有している。アドレス情報特定部139は、アドレス情報テーブル138を参照しアクセスIDに基づいてアドレス変換情報を特定する。
【0230】
図64は、アドレス情報テーブル138のデータ構成を模式的に示す図である。アドレス情報テーブル138は、アクセスIDと、アドレス変換情報とを対応付けている。このように、アクセスIDごとにアドレス変換情報を異ならせるのが望ましい。
【0231】
アドレス情報特定部139は、アクセスIDが切り替るごとに、アドレス情報テーブル138において切り替え後のアクセスIDに対応付けられているアドレス変換情報をアドレス変換装置160に渡す。
【0232】
なお、アドレス変換装置160によるアドレス変換においては、所定のアドレスが常に同じアドレスに変換されることおよび複数のアドレスが同じアドレスに変換されることがないことが必要であり、この条件を満たすような変換であればよく、変換方法は、実施の形態に限定されるものではない。
【0233】
図65は、メモリアドレスを説明するための図である。一般的に、メモリアドレスは、
キャッシュラインのサイズに対応する範囲(s)と、メモリ素子の持つページサイズに対応する範囲(r+s)と、ページテーブルの管理するページサイズに対応する範囲(q+r+s)のそれぞれの範囲をアクセスするのに必要なビット数が定まっている。
【0234】
例えば、キャッシュラインのサイズに対応する範囲(s)は、メモリが1ワード64ビットでキャッシュラインが256ビットならば2ビットとなる。また、メモリ素子の持つページサイズに対応する範囲(r+s)、すなわちバースト転送が可能な範囲は、例えば128ワードであれば7ビットとなる。そこで、アドレスの変換をする際には、この関係に基づいた変換を行うことにより、メモリアクセスの速度低下を防ぐことができる。
【0235】
例えば、同じキャッシュラインに属するメモリのワードはバースト転送で高速に読み書きできるように、連続したアドレスに変換することが望ましい。このとき、連続していれば、その中での入れ替えを行ってもよい。
【0236】
また、メモリ素子の持つページ内のワードは、バースト転送で高速に読み書きできるように、同じページ範囲内の連続したアドレスに変換することが望ましい。このときも、連続していれば、その中での入れ替えを行ってもよい。
【0237】
アドレス変換装置160は、以上の条件を満たすようなアドレス変換を行う。図66−1および図66−2は、アドレス変換装置160によるアドレス変換処理を説明するための図である。図66−1および図66−2には、メモリアドレスの下位7ビットを示している。アドレス変換装置160は、下位7ビットのみを変換する。なお、ここでは4ワードが1キャッシュラインと仮定する。
【0238】
図に示すように、4ワードを組として、その組の中はランダムに変換されているが、組としては連続したメモリのアドレスに変換されている。このため、1キャッシュライン中ではランダムなアドレスではあるが、他のキャッシュラインに跨るようなアドレスに変換されることはない。したがって、転送効率が低下するのを避けることができる。
【0239】
図67は、アドレス変換装置160の具体的な構成を示す図である。アドレス変換情報がメモリにより構成されるアドレス変換表162に格納されている。図68は、図66−1および図66−2に示すアドレス変換を実現するアドレス変換表を示す図である。
【0240】
アドレスの下位7ビットの中の上位5ビットでアドレス変換表162を引き、出てきた13ビットの情報のうち、上位の5ビットをアドレスの下位7ビットの中の上位5ビットとする。さらに、残りの8ビットからアドレスの下位2ビットに従って選択した2ビットを、アドレスの下位2ビットにするように変換する。
【0241】
図69は、実施の形態10にかかるアクセス制御システム1による書き込み処理を示すフローチャートである。実施の形態10にかかるアクセス制御システム1においては、排他的論理和を計算した後(ステップS108)、上述のアドレス変換処理を行う(ステップS109)。そして、変換後のメモリアドレスに対してデータを書き込む(ステップS110)。
【0242】
図70は、実施の形態10にかかるアクセス制御システム1による読み出し処理を示すフローチャートである。マスク値を生成した後(ステップS106)、アドレス変換処理を行う(ステップS203)。次に、アドレス変換後のメモリアドレスから第1演算後データを読み出す(ステップS204)。
【0243】
なお、実施の形態10にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態1にかかるアクセス制御システム1の構成および処理と同様である。
【0244】
図71は、実施の形態10の第1の変更例にかかるアドレス変換装置160の具体的な構成を示す図である。本例においては、アドレス変換表162を引くのに使う下位のアドレスに対して、上位のアドレスを排他的論理和で重ねることによって、変換のバリエーションを増やしている。これにより、アドレス変換のパターンを推測しにくくすることができる。
【0245】
また、実施の形態10の第2の変更例としては、実施の形態10においては、アドレス変換情報は、データマスク生成回路130に格納されていたが、アドレス変換情報の格納先はこれに限定されるものではない。例えば、実施の形態10にかかるアドレス変換処理を実施の形態5にかかるアクセス制御システム1に適用する場合には、データマスク生成情報テーブル1302にアドレス変換情報を記録してもよい。
【0246】
図72は、第2の変更例にかかるデータマスク生成情報テーブル1302のデータ構成を模式的に示す図である。このように、データマスク生成情報テーブル1302においてアクセスIDに対応付けてアドレス変換情報を記録している。この場合には、データマスク生成情報テーブル1302を参照することにより、アクセスIDからアドレス変換情報を特定することができる。
【0247】
(実施の形態11)
図73は、実施の形態11にかかるメモリアクセス制御部10の機能構成を示すブロック図である。実施の形態11にかかるメモリアクセス制御部10は、実施の形態10にかかるメモリアクセス制御部10の機能構成に加えてバースト転送コントローラ164と、並べ替えバッファ166とを備えている。
【0248】
バースト転送コントローラ164は、メモリ40上のアドレス順にバースト転送する際の処理を管理する。並べ替えバッファ166は、このとき利用されるバッファである。アドレス変換装置160によってキャッシュライン内のワードの順が入れ替えられている場合には、入れ替えられた順にアクセスするとメモリ素子のバースト転送機能を使うことができない。このため転送効率を向上させることができなくなってしまう。そこで、バースト転送コントローラ164は、メモリ40上のアドレス順にバースト転送によってアクセスし、メモリ40上のアドレス順とアドレス変換装置160による変換後の順との並べ替えを、並べ替えバッファ166を用いて行う。
【0249】
図74は、並べ替えバッファ166の具体的な構成を示す図である。ここでは、1キャッシュラインは256ビット、メモリの1ワードは64ビットで、4ワードで1キャッシュラインを構成する場合の例を示している。
【0250】
図74に示すように、並べ替えバッファ166は、1キャッシュライン分の4ワードのレジスタ1〜レジスタ4を備えている。バースト転送コントローラ164からの指示により、4つのレジスタうちの指定されたレジスタにプロセッサ20またはメモリ40からのデータを書き込む。さらに、4つのレジスタうち指定されたレジスタのデータを読み出して、プロセッサ20またはメモリ40に送る。
【0251】
図75は、バースト転送コントローラ164がメモリ40にデータを書き込む処理を示すフローチャートである。バースト転送の指示でない場合には(ステップS500,No)、通常の書き込み処理を行う(ステップS510)。ここで、通常の書き込み処理とは、実施の形態10において説明した書き込み処理であり、アドレス変換装置160により得られたメモリアドレスにデータを書き込む。
【0252】
一方、バースト転送の指示がある場合には(ステップS500,Yes)、まずプロセッサ20から送られてくるデータ、すなわちメモリ40に書き込むべきデータを並べ替えバッファ166に一時的に書き込む(ステップS502)。次に、マスク値生成回路112内のアドレス情報テーブル138からアドレス変換情報を得る(ステップS504)。次に、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがいバースト転送によりデータをメモリ40に書き込む(ステップS506)。以上で処理が完了する。
【0253】
図76は、図75を参照しつつ説明した書き込み処理をより具体的に説明するための図である。プロセッサ20がアドレスの下位7ビットが「1010000」であるワードから4ワードに、それぞれデータA,B,C,Dを書き込む場合を示している。
【0254】
このとき、アドレス「1010000」は、図67に示すアドレス変換装置160によりアドレス「0110011」に変換される。同様に、アドレス「1010001」は「0110010」に、「1010010」は「0110000」に、「1010011」は「0110001」に変換される。
【0255】
この変換後のメモリアドレス順にデータを書き込む場合には、バースト転送を使うことができない。そこで、バースト転送コントローラ164は一時的に並べ替えバッファ166にデータを記憶する。そして、アドレス変換情報に基づいて、連続アドレスとなるようにデータを並べ替える。図76に示す例においては、アドレス「0110000」にはCを、「0110001」にはDを、「0110010」にはBを、「0110011」にはAを書き込む。そして、アドレス「0110000」からC,D,B,Aの順でバースト転送によって書き込みを行う。
【0256】
図77は、バースト転送コントローラ164がメモリ40からデータを読み出す処理を示すフローチャートである。バースト転送の指示でない場合には(ステップS520,No)、通常の読み出し処理を行う(ステップS530)。ここで、通常の読み出し処理とは、実施の形態10において説明した読み出し処理であり、アドレス変換装置160により得られたメモリアドレスのデータを順に読み出す。
【0257】
一方、バースト転送の指示がある場合には(ステップS520,Yes)、まず、マスク値生成回路112内のアドレス情報テーブル138からアドレス変換情報を得る(ステップS522)。次に、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがい先頭アドレスから4ワードをメモリ40から読み出し、並べ替えバッファ166に一時的に書き込む(ステップS524)。次に、並べ替えバッファ166内のデータを、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがいバースト転送でプロセッサ20に送り返す(ステップS526)。以上で処理が完了する。
【0258】
図78は、図77を参照しつつ説明した読み出し処理をより具体的に説明するための図である。プロセッサがアドレスの下位7ビットが「1010000」であるワードから4ワードを読み出す場合を示している。
【0259】
このとき、アドレス「1010000」は、図67に示すアドレス変換装置160によりアドレス「0110011」に変換される。同様に、「1010001」は「0110010」に、「1010010」は「0110000」に、「1010011」は「0110001」に変換される。
【0260】
バースト転送コントローラ164はまず、変換後のアドレスの中で先頭を表す「0110000」から4ワードをバースト転送で読み出し、一時的に並べ替えバッファ166にデータを記憶する。このときに読み出されたデータを順にA,B,C,Dとする。
【0261】
次にバースト転送コントローラ164は、アドレス変換情報に基づいて、元のアドレス順にデータを並べ替える。図78に示す例においては、アドレス「0110000」にはDを、「0110001」にはCを、「0110010」にはAを、「0110011」にはBを読み出す。そして、アドレス「0110000」からD,C,A,Bの順でバースト転送によってプロセッサに返す。
【0262】
以上のように、実施の形態11にかかるアクセス制御システム1によれば、メモリの実アドレスに変換をかけ、実アドレスとマスク値との間の相関関係をなくすことにより、マスク値が推測される確率を低くすることができる。すなわち、安全性を高めることができる。
【0263】
なお、実施の形態11にかかるアクセス制御システム1のこれ以外の構成および処理は、実施の形態10にかかるアクセス制御システム1の構成および処理と同様である。
【0264】
次に、実施の形態11にかかるアドレス変換処理の変更例について説明する。本例においては、実施の形態11にかかるアドレス変換処理を実施の形態9にかかるアクセス制御システム1に適用する。図79は、本例にかかるメモリ側キャッシュ制御回路56の機能構成を示すブロック図である。本例にかかるメモリ側キャッシュ制御回路56は、実施の形態11にかかるメモリアクセス制御部10の機能構成に加えて、アドレス変換装置160をさらに備えている。
【0265】
シーケンスコントローラ562は、バースト転送コントローラ164と同じ処理をさらに行う。これにより実施の形態9にかかるアクセス制御システム1においても実施の形態11と同様の処理を行うことができ、同様の効果を得ることができる。
【0266】
なお、本例にかかるメモリ側キャッシュ制御回路56は、並べ替えバッファを有さない。この構成では、バースト転送時のデータを並べ替えバッファ上で並べ替えるのではなく、キャッシュメモリ54をワード単位でアクセスできるように構成しておく。そして、キャッシュメモリ54を並べ替えバッファとして用いる。
【0267】
(実施の形態12)
図80は、実施の形態12にかかるアクセス制御システム1の全体構成を示す図である。実施の形態12にかかるアクセス制御システム1においては、メモリアクセス制御部10およびメモリ40は同一のバス暗号化装置170,410を備えている。各バス暗号化装置170,410は、秘密の鍵を共有する。そして、この秘密の鍵に基づいて生成される乱数によりメモリバス42上の信号を暗号化する。
【0268】
図81は、メモリアクセス制御部10の機能構成を示す図である。実施の形態12にかかるメモリアクセス制御部10は、実施の形態1にかかるメモリアクセス制御部10の機能構成に加え、バス暗号化装置170を備えている。バス暗号化装置170は、制御信号を暗号化する制御信号マスク、メモリアドレスを暗号化するアドレスマスク、データを暗号化するデータマスク、パリティを暗号化するパリティマスクを生成する。そして、それぞれの信号は、マスクされてメモリバス42に送出される。
【0269】
図82は、バス暗号化装置170の詳細な機能構成を示すブロック図である。鍵共有処理回路171と、共有鍵記憶部172と、初期値計算回路173と、乱数発生回路174とを有している。
【0270】
鍵共有処理回路171は、バス暗号化装置170,410間で秘密の鍵を共有する処理を行う。秘密の鍵を共有する手段はさまざまに実現できる。例えば、アクセス制御システム1の初期化時に最初の鍵を双方に書き込んでおき、以降は定期的にバス暗号化装置170,410間で新しい鍵を生成して交換するように実施することができる。
【0271】
共有鍵記憶部172は、秘密の鍵を記憶する。初期値計算回路173は、秘密の鍵に基づいて、乱数発生回路174の初期値を生成する。秘密の鍵が推測できないように一方向関数などを使うのが望ましい。例えば、秘密の鍵から、ハッシュ関数を使って生成した値を初期値として用いることができる。乱数発生回路174は、初期値計算回路173により計算された値を初期値として乱数系列を発生する。
【0272】
なお、メモリ40のバス暗号化装置410の機能構成は、バス暗号化装置170の機能構成と同様である。両者の鍵共有処理回路は、秘密の鍵を共有する。そして、両者の乱数発生回路は、この秘密の鍵に基づいて、同じタイミングで同じ乱数を生成する。こうして生成された乱数を暗号化マスクとし、メモリバス42上の各信号の送り側と受け側でそれぞれ排他的論理和をとることにより、メモリバス42上の各信号は乱数によって拡散される。
【0273】
このように、アクセス制御装置がアクセス権限のチェックのためにアドレスに対応して生成したマスク値と、バス暗号化装置がアドレスとは無関係に生成したマスク値の両方が排他的論理和で元データに対して重ねられるので、データや2種類のマスク値を推測するのをより困難にすることができ、安全性を高めることができる。
【0274】
図83および図84は、実施の形態12にかかるメモリバス42を流れる信号を説明するための図である。図83は、バス暗号化装置170,410によるマスクが施されていない場合の信号例を示す図である。アドレスA34からの読み出し、アドレスA35への書き込み、アドレスA36からの読み出しが順次起こっている。この場合には、対応するメモリアドレス、データおよびパリティがメモリバス42上を流れる。
【0275】
図84は、バス暗号化装置170,410によるマスクが施される場合の信号例を示す図である。各バス暗号化装置170,410は、図に示すように、クロックごとにマスク用の乱数を発生している。メモリバス42の各信号には、マスク用の乱数の値が排他的論理和で重ねられている。
【0276】
実施の形態12の第1の変更例としては、バス暗号化装置170は、初期値計算回路173を有さず、秘密の鍵を直接乱数発生回路の初期値として与えてもよい。安全性の観点からは、秘密の鍵が推測できないようにすべく、初期値計算回路173において変換された初期値を用いるのが望ましい。
【0277】
また、第2の変更例としては、乱数発生回路174としてLFSRを利用してもよい。図85は、第2の変更例にかかるバス暗号化装置170の詳細な機能構成を示すブロック図である。乱数発生回路174は、乱数レジスタ175と、LFSR遅延計算回路176とを有している。
【0278】
乱数レジスタ175には、現在の状態が記録され、その状態からある決まったステップだけ遅延した状態がLFSR遅延計算回路176によって計算される。これを次の状態にするとともに、その値を暗号化マスクとして出力する。
【0279】
図86は、第3の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。第3の変更例にかかるメモリアクセス制御部10は、実施の形態8にかかるメモリアクセス制御部10の機能構成に加えてバス暗号装置170を備えている。
【0280】
図87は、第4の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。第4の変更例にかかるメモリアクセス制御部10は、実施の形態10にかかるメモリアクセス制御部10の機能構成に加えてバス暗号化装置170を備えている。
【0281】
図88は、第5の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。第5の変更例にかかるメモリアクセス制御部10は、実施の形態9にかかるメモリ側キャッシュ制御回路56の機能構成に加えてバス暗号化装置170を備えている。
【0282】
以上のように、実施の形態12にかかるバス暗号化装置170を他の形態にかかるアクセス制御システム1に適用してもよい。これにより、他の形態にかかるアクセス制御システム1においても、アクセス制御装置がアクセス権限のチェックのためにアドレスに対応して生成したマスク値と、バス暗号化装置がアドレスとは無関係に生成したマスク値の両方が排他的論理和で元データに対して重ねられるので、データや2種類のマスク値を推測するのをより困難にすることができ、安全性を高めることができる。
【0283】
なお、実施の形態9から実施の形態12にかかるアクセス制御システム1についても、他の実施の形態と同様、実施の形態に特徴的なアクセス制御装置10は図48から図54を参照しつつ説明した他のシステムに適用されてもよい。
【図面の簡単な説明】
【0284】
【図1】実施の形態1にかかるアクセス制御システム1の全体構成を示す図である。
【図2】データをメモリ40に書き込む際の処理を説明するための図である。
【図3】データD’を読み出す際の処理を説明するための図である。
【図4】データ長が64ビットの場合のHsiaoのSEC−DED符号の検査行列「H」の一例を示す図である。
【図5】図4に示す検査行列Hに対応する生成行列「G」を示す図である。
【図6】アクセス制御装置10の詳細な機能構成を示すブロック図である。
【図7】プロセッサ20から見たアドレス空間を示す図である。
【図8】マスク値生成回路112の詳細な機能構成を示すブロック図である。
【図9】データマスク生成回路130の具体的構成を示す図である。
【図10−1】アクセスIDシンドローム生成回路132を示す図である。
【図10−2】アクセスIDシンドローム生成回路132を示す図である。
【図11】アクセス制御システム1におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。
【図12】書き込み処理におけるデータの流れを示す図である。
【図13】アクセスID設定処理において利用されるプロセス管理テーブルを示す図である。
【図14】アクセスID設定処理における詳細な処理を示すフローチャートである。
【図15】マスク値生成処理(ステップS106)におけるマスク値生成回路112の詳細な処理を説明するフローチャートである。
【図16】アクセス制御処理に含まれるメモリ40からデータを読み出す処理を示すフローチャートである。
【図17】メモリ40に書き込まれたデータを読み出す際の処理を説明するための図である。
【図18】実施の形態2にかかるアクセス制御装置10の機能構成を示すブロック図である。
【図19】アクセスID管理装置140の詳細な機能構成を示すブロック図である。
【図20】アクセスIDテーブル142のデータ構成を模式的に示す図である。
【図21】アクセスID管理装置140の具体的な構成を示す図である。
【図22】実施の形態2にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。
【図23】実施の形態3にかかるアクセス制御システム1におけるアクセスID管理装置140に含まれるアクセスIDテーブル142のデータ構成を模式的に示す図である。
【図24】アクセスID管理装置140の具体的な構成を示す図である。
【図25】実施の形態3にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。
【図26】実施の形態4にかかるアクセスIDテーブル142のデータ構成を模式的に示す図である。
【図27】アクセスID管理装置140の具体的な構成を示す図である。
【図28】実施の形態4にかかるアクセス制御システム1におけるアクセスID取得処理(ステップS102)における詳細な処理を示すフローチャートである。
【図29】実施の形態5にかかるデータマスク生成回路130の機能構成を示すブロック図である。
【図30】データマスク生成情報テーブル1302のデータ構成を模式的に示す図である。
【図31】LFSR遅延計算回路1303aのより具体的な構成を示す図である。
【図32】LFSR遅延計算回路1303aに含まれる回路200の詳細図である。
【図33】LFSR遅延計算回路1303aに含まれる回路202の詳細図である。
【図34】実施の形態6にかかるデータマスク生成回路130の機能構成を示すブロック図である。
【図35】実施の形態7にかかるデータマスク生成回路130の機能構成を示すブロック図である。
【図36】アドレス拡散回路1306aの具体的な構成例を示す図である。
【図37】実施の形態7の第1の変更例にかかるアドレス拡散回路1306aの具体的な構成を示す図である。
【図38】ゼロシフト回路1305a,1305b,1305cのみを有するデータマスク生成回路130のブロック図である。
【図39】アドレス拡散回路1306a,1306b,1306cのみを有するデータマスク生成回路130のブロック図である。
【図40】実施の形態7の第3の変更例にかかるデータマスク生成回路130を示すブロック図である。
【図41】実施の形態7の第4の変更例にかかるデータマスク生成回路130のブロック図である。
【図42】実施の形態7の第5の変更例にかかるデータマスク生成回路130のブロック図である。
【図43】実施の形態8にかかるアクセス制御装置10の機能構成を示すブロック図である。
【図44】アドレス変換装置150の具体的な構成を示す図である。
【図45】実施の形態8の第1の変更例にかかるアドレス変換装置150の構成を示す図である。
【図46】実施の形態8の第2の変更例にかかるアドレス変換装置150の構成を示す図である。
【図47】実施の形態8の第3の変更例にかかるアドレス変換装置150の構成を示す図である。
【図48】第1の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図49】第2の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図50】第3の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図51】第4の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図52】第5の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図53】第6の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図54】第7の変更例にかかるアクセス制御システム1の全体構成を示す図である。
【図55】実施の形態9にかかるアクセス制御システム1の全体構成を示す図である。
【図56】アクセス制御装置50の詳細な機能構成を示すブロック図である。
【図57】プロセッサ側キャッシュ制御回路52の詳細な機能構成を示すブロック図である。
【図58】キャッシュメモリ54の詳細な機能構成を示すブロック図である。
【図59】メモリ側キャッシュ制御回路56の詳細な機能構成を示すブロック図である。
【図60】実施の形態9にかかるアクセス制御システム1におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。
【図61】実施の形態9にかかるアクセス制御システム1におけるアクセス制御処理に含まれる読み出し処理を示すフローチャートである。
【図62】実施の形態10にかかるアクセス制御装置10の機能構成を示すブロック図である。
【図63】実施の形態10にかかるマスク値生成回路112の詳細な機能構成を示すブロック図である。
【図64】アドレス情報テーブル138のデータ構成を模式的に示す図である。
【図65】メモリアドレスを説明するための図である。
【図66−1】アドレス変換装置160によるアドレス変換処理を説明するための図である。
【図66−2】アドレス変換装置160によるアドレス変換処理を説明するための図である。
【図67】アドレス変換装置160の具体的な構成を示す図である。
【図68】図66−1および図66−2に示すアドレス変換を実現するアドレス返還表を示す図である。
【図69】実施の形態10にかかるアクセス制御システム1による書き込み処理を示すフローチャートである。
【図70】実施の形態10にかかるアクセス制御システム1による読み出し処理を示すフローチャートである。
【図71】実施の形態10の第1の変更例にかかるアドレス変換装置160の具体的な構成を示す図である。
【図72】実施の形態10の第2の変更例にかかるデータマスク生成情報テーブル1302のデータ構成を模式的に示す図である。
【図73】実施の形態11にかかるメモリアクセス制御部10の機能構成を示すブロック図である。
【図74】並べ替えバッファ166の具体的な構成を示す図である。
【図75】バースト転送コントローラ164がメモリ40にデータを書き込む処理を示すフローチャートである。
【図76】図75を参照しつつ説明した書き込み処理をより具体的に説明するための図である。
【図77】バースト転送コントローラ164がメモリ40からデータを読み出す処理を示すフローチャートである。
【図78】図77を参照しつつ説明した読み出し処理をより具体的に説明するための図である。
【図79】実施の形態11の変更例にかかるメモリ側キャッシュ制御回路56の機能構成を示すブロック図である
【図80】実施の形態12にかかるアクセス制御システム1の全体構成を示す図である。
【図81】メモリアクセス制御部10の機能構成を示す図である。
【図82】バス暗号化装置170の詳細な機能構成を示すブロック図である。
【図83】バス暗号化装置170,410によるマスクが施されていない場合の信号例を示す図である。
【図84】バス暗号化装置170,410によるマスクが施される場合の信号例を示す図である。
【図85】実施の形態12の第2の変更例にかかるバス暗号化装置170の詳細な機能構成を示すブロック図である。
【図86】実施の形態12の第3の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。
【図87】実施の形態12の第4の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。
【図88】実施の形態12の第5の変更例にかかるメモリアクセス制御部10の機能構成を示すブロック図である。
【符号の説明】
【0285】
1 アクセス制御システム
10,50 アクセス制御装置
20 プロセッサ
21 ビデオコントローラ
22 プロセッサバス
24 専用線
30 メモリコントローラ
40 メモリ
42 メモリバス
32 ブリッジ
34 ペリフェラルバス
52 プロセッサ側キャッシュ制御回路
54 キャッシュメモリ
56 メモリ側キャッシュ制御回路
60a,60b,60c 周辺機器
76 高速内部バス
78 専用線
100 パリティ生成回路
102 排他的論理和回路
110 アクセスIDレジスタ
112 マスク値生成回路
114 排他的論理和回路
120 シンドローム計算回路
122 誤り訂正回路
130 データマスク生成回路
132 シンドローム生成回路
134 パリティ生成回路
136 排他的論理和回路
138 アドレス情報テーブル
139 アドレス情報特定部
140 アクセスID管理回路
142 アクセスIDテーブル
144 アクセスID選択回路
150 アドレス変換装置
151 アドレス変換メモリ
160 アドレス変換装置
162 アドレス変換表
164 バースト転送コントローラ
171 鍵共有処理回路
170,410 バス暗号化装置
172 共有鍵記憶部
173 初期値計算回路
174 乱数発生回路
175 乱数レジスタ
176 LFSR遅延計算回路
200 回路
202 回路
522 アクセスIDチェック回路
524,562 シーケンスコントローラ
542 タグ格納領域
544 データ格納領域
546 アクセスID格納領域
1301 データマスク生成情報特定回路
1302 データマスク生成情報テーブル
1303a,1303b,1303c,1303d,1303e,1303f LFSR遅延計算回路
1304a,1304b,1304c 排他的論理和回路
1305a,1305b,1305c ゼロシフト回路
1306a,1306b,1306c アドレス拡散回路
1307a 拡散マスクメモリ
1308a デコーダ

【特許請求の範囲】
【請求項1】
メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、
前記第1演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第1演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、
前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を備えたことを特徴とするアクセス制御装置。
【請求項2】
前記書込元から前記書込元アクセスIDを取得する書込元アクセスID取得手段と、
前記読出元から前記読出元アクセスIDを取得する読出元アクセスID取得手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスID取得手段が取得した前記書込元アクセスIDに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスID取得手段が取得した前記読出元アクセスIDに基づいて、前記読出元シンドロームを生成することを特徴とする請求項1に記載のアクセス制御装置。
【請求項3】
前記書込元アクセスID取得手段は、前記書込元に接続されている書込元専用線を介して前記書込元アクセスIDを取得し、
前記読出元アクセスID取得手段は、前記読出元に接続されている読出元専用線を介して前記読出元アクセスIDを取得することを特徴とする請求項2に記載のアクセス制御装置。
【請求項4】
前記書込元を識別する書込元IDを取得する書込元ID取得手段と、
前記書込元ID取得手段が取得した前記書込元IDに基づいて、前記書込元アクセスIDを特定する書込元アクセスID特定手段と、
前記読出元を識別する読出元IDを取得する読出元ID取得手段と、
前記読出元ID取得手段が取得した前記読出元IDに基づいて、前記読出元アクセスIDを特定する読出元アクセスID特定手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスID特定手段が特定した前記書込元アクセスIDに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスID特定手段が特定した前記読出元アクセスIDに基づいて、前記読出元シンドロームを生成することを特徴とする請求項1に記載のアクセス制御装置。
【請求項5】
前記書込元IDと前記書込元アクセスIDとを対応付けて保持する書込元アクセスID保持手段と、
前記読出元IDと前記読出元アクセスIDとを対応付けて保持する読出元アクセスID保持手段と
をさらに備え、
前記書込元アクセスID特定手段は、前記書込元アクセスID保持手段において、前記書込元ID取得手段が取得した前記書込元IDに対応付けられている前記書込元アクセスIDを特定し、
前記読出元アクセスID特定手段は、前記読出元アクセスID保持手段において、前記読出元ID取得手段が取得した前記読出元IDに対応付けられている前記読出元アクセスIDを特定することを特徴とする請求項4に記載のアクセス制御装置。
【請求項6】
前記書込元から前記書込メモリアドレスを取得する書込メモリアドレス取得手段と、
前記読出元から前記読出メモリアドレスを取得する読出メモリアドレス取得手段と
をさらに備え、
前記書込元アクセスID保持手段は、前記書込メモリアドレスと前記書込元アクセスIDとをさらに対応付けて保持し、
前記書込元アクセスID特定手段は、前記書込元アクセスID保持手段において、前記書込メモリアドレス取得手段が取得した前記書込メモリアドレスに対応付けられている前記書込元アクセスIDを特定し、
前記読出元アクセスID保持手段は、前記読出メモリアドレスと前記読出元アクセスIDとをさらに対応付けて保持し、
前記読出元アクセスID特定手段は、前記読出元アクセスID保持手段において、前記読出メモリアドレス取得手段が取得した前記読出メモリアドレスに対応付けられている前記読出元アクセスIDを特定することを特徴とする請求項5に記載のアクセス制御装置。
【請求項7】
前記書込元から前記書込メモリアドレスを取得する書込メモリアドレス取得手段と、
前記書込メモリアドレスと前記書込元アクセスIDとを対応付けて保持する書込元アクセスID保持手段と、
前記書込元アクセスID保持手段において、前記書込メモリアドレス取得手段が取得した前記書込メモリアドレスに対応付けられている前記書込元アクセスIDを特定する書込元アクセスID特定手段と、
前記読出元から前記読出メモリアドレスを取得する読出メモリアドレス取得手段と、
前記書込メモリアドレスと前記読出元アクセスIDとを対応付けて保持する読出元アクセスID保持手段と、
前記読出元アクセスID保持手段において、前記読出メモリアドレス取得手段が取得した前記読出メモリアドレスに対応付けられている前記読出元アクセスIDを特定する読出元アクセスID特定手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスID特定手段が特定した前記書込元アクセスIDに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスID特定手段が特定した前記読出元アクセスIDに基づいて、前記読出元シンドロームを生成することを特徴とする請求項1に記載のアクセス制御装置。
【請求項8】
前記書込元マスクデータ生成手段は、
前記書込元アクセスIDおよび前記書込メモリアドレスに基づいて、前記元データをマスクすべきデータマスクを生成する書込元データマスク生成手段と、
前記データマスク生成手段により生成された前記データマスクのシンドロームと、前記書込元シンドローム生成手段により生成された前記書込元シンドロームとの排他的論理和を、前記パリティ生成手段により生成された前記パリティをマスクすべきパリティマスクとして生成する書込元パリティマスク生成手段と
を有し、
前記読出元マスクデータ生成手段は、
前記読出元アクセスIDおよび前記読出メモリアドレスに基づいて、前記第1演算後データのうち前記元データに対応する部分をマスクすべきデータマスクを生成する読出元データマスク生成手段と、
前記データマスク生成手段により生成された前記データマスクのシンドロームと、前記読出元シンドローム生成手段により生成された前記読出元シンドロームとの排他的論理和を、前記第1演算後データのうち前記パリティに対応する部分をマスクすべきパリティマスクとして生成する読出元パリティマスク生成手段と
を有し、
前記第1排他的論理和算出手段は、前記元データと前記書込元データマスク生成手段により生成されたデータマスクとの排他的論理和を算出し、かつ前記パリティと前記書込元パリティマスク生成手段により生成された前記パリティマスクとの排他的論理和を算出し、
前記第2排他的論理和算出手段は、前記第1演算後データのデータ部分と前記読出元データマスク生成手段により生成されたデータマスクとの排他的論理和を算出し、かつ前記第1演算後データのパリティ部分と前記読出元パリティマスク生成手段により生成された前記パリティマスクとの排他的論理和を算出することを特徴とする請求項1から7のいずれか一項に記載のアクセス制御装置。
【請求項9】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれLFSR(Linear Feedback Shift Registers)遅延計算手段を有することを特徴とする請求項8に記載のアクセス制御装置。
【請求項10】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれ
複数のLFSR遅延計算手段と、
前記複数のLFSR遅延計算手段の出力値のうち少なくとも2つのLFSR遅延計算手段からの出力値の排他的論理和を計算する排他的論理和計算手段と
を有することを特徴とする請求項8に記載のアクセス制御装置。
【請求項11】
前記LFSR遅延計算手段は、前記書込元アクセスIDまたは前記読出元アクセスIDごとに異なるパラメータを利用して処理を行うことを特徴とする請求項9または10に記載のアクセス制御装置。
【請求項12】
前記書込元アクセスIDおよび前記読出元アクセスIDに対応付けて、前記LFSR遅延計算手段のパラメータを保持するデータマスク生成情報保持手段をさらに備え、
前記LFSR遅延計算手段は、前記書込元アクセスIDまたは前記読出元アクセスIDに対応付けて前記データマスク生成情報保持手段が保持する前記パラメータを利用して処理を行うことを特徴とする請求項11に記載のアクセス制御装置。
【請求項13】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれ
メモリアドレスをシフトさせるゼロシフト手段を有することを特徴とする請求項8から12のいずれか一項に記載のアクセス制御装置。
【請求項14】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれメモリアドレスの値をより離れた値に変換するアドレス拡散手段を有することを特徴とする請求項8から13のいずれか一項に記載のアクセス制御装置。
【請求項15】
前記書込メモリアドレスを他の値に変換する書込アドレス変換手段と、
前記読出メモリアドレスを他の値に変換する読出アドレス変換手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込アドレス変換手段により変換された後の前記書込メモリアドレスに基づいて、前記書込元シンドロームを生成し、
前記書込元マスクデータ生成手段は、前記書込アドレス変換手段により変換された後の前記書込メモリアドレスに基づいて、前記書込元マスクデータを生成し、
前記読出元シンドローム生成手段は、前記読出アドレス変換手段により変換された後の前記読出メモリアドレスに基づいて、前記読出元シンドロームを生成し、
前記読出元マスクデータ生成手段は、前記読出アドレス変換手段により変換された後の前記読出メモリアドレスに基づいて、前記読出元マスクデータを生成することを特徴とする請求項1から14のいずれか一項に記載のアクセス制御装置。
【請求項16】
前記書込元および前記読出元は、プロセッサまたはプロセスであることを特徴とする請求項1から15のいずれか一項に記載のアクセス制御装置。
【請求項17】
前記メモリにおいて発生される乱数と同一の乱数を発生する乱数発生器と、
前記乱数発生器が発生した乱数と、前記メモリにおけるアクセスすべき領域のメモリアドレスとの排他的論理和演算を行う排他的論理和演算手段と、
前記排他的論理和演算手段による演算結果である演算後アドレスを送出する演算後アドレス送出手段と
をさらに備えたことを特徴とする請求項1に記載のアクセス制御装置。
【請求項18】
プロセッサと、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、
前記メモリアクセス制御装置は、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、
前記第1演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第1演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、
前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を有することを特徴とするアクセス制御システム。
【請求項19】
プロセッサと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、
前記メモリアクセス制御装置は、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、
前記第1演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第1演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、
前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を有することを特徴とするアクセス制御システム。
【請求項20】
メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたプロセッサであって、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、
前記第1演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第1演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出手段と、
前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を備えたことを特徴とするプロセッサ。
【請求項21】
メモリに書き込むべき元データのパリティを生成するパリティ生成ステップと、
前記パリティ生成ステップにおいて生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与ステップと、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成ステップと、
前記書込元シンドロームと、前記書込元アクセスIDと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成ステップと、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出ステップと、
前記第1演算後データを前記メモリに書き込む書込ステップと、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDに予め対応付けられている値を、前記第1演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成ステップと、
前記読出元シンドロームと、前記読出元アクセスIDと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成ステップと、
前記メモリから前記第1演算後データを読み出す読出ステップと、
前記読出元マスクデータと、前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第2排他的論理和算出ステップと、
前記第2演算後データから実際のデータシンドロームを算出するデータシンドローム算出ステップと、
前記データシンドロームに基づいて、前記第2演算後データを前記元データとして出力するか否かを判断する出力判断ステップと
を有することを特徴とするアクセス制御方法。
【請求項22】
メモリから読み出すべきデータのメモリアドレスを、前記メモリからのデータの読み出しを要求する読出元から取得する読出要求取得手段と、
前記メモリへのデータの書き込みを要求する書込元から前記メモリへの書き込みを要求されたデータまたは前記読出元から前記メモリへの読み出しを要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに前記読出要求取得手段が取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視手段と、
前記キャッシュメモリ監視手段が前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較手段と、
前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力手段と
を備えたことを特徴とするメモリアクセス制御装置。
【請求項23】
前記メモリは、前記読出要求取得手段が取得した前記データに対する所定の演算が施された第1演算後データを前記データとして格納し、
前記キャッシュメモリ監視手段が、前記読出要求取得手段が取得した前記データの前記メモリアドレスが前記キャッシュメモリに格納されていないと判断した場合に、前記読出元アクセスIDに予め対応付けられている値を、前記メモリに格納されている前記データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスIDと、前記メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第1演算後データを読み出す読出手段と、
前記読出元マスクデータと前記読出手段により読み出された前記第1演算後データとの排他的論理和を算出して、第2演算後データを得る第1排他的論理和算出手段と、
前記演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第2演算後データを前記読出元から要求された前記データとして前記読出元に出力するか否かを判断する出力判断手段と
をさらに備えたことを特徴とする請求項22に記載のメモリアクセス制御装置。
【請求項24】
前記メモリに書き込むべきデータと、前記データを書き込むべきメモリアドレスとを、前記メモリへのデータの書き込みを要求する書込元から取得する書込要求取得手段と、
前記メモリアドレスと、当該メモリアドレスへのデータの書き込みが許可された書込元が前記メモリアドレスにアクセスする際に利用する情報である書込元アクセスIDとを対応付けて保持するアクセスID保持手段と、
前記アクセスID保持手段において前記書込要求取得手段が取得した前記メモリアドレスと前記書込元の書込元アクセスIDとが対応付けられている場合に、前記書込要求取得手段が取得した前記データおよび前記メモリアドレスと、前記書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスIDとを対応付けて前記キャッシュメモリに格納するデータ格納手段と
をさらに備えたことを特徴とする請求項22または23に記載のメモリアクセス制御装置。
【請求項25】
前記データ格納手段が格納する前記データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記書込元が前記メモリに前記データを書き込む際に利用する情報である書込元アクセスIDに予め対応付けられている値を、前記パリティが付与されたパリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスIDと、前記メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第1演算後データを得る第1排他的論理和算出手段と、
前記第1演算後データを前記データとして前記メモリに書き込む書込手段と
をさらに備えたことを特徴とする請求項24に記載のメモリアクセス制御装置。
【請求項26】
プロセッサと、キャッシュメモリと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、
前記キャッシュメモリは、前記メモリへのデータの書き込みを要求する書込元または前記メモリからのデータの読み出しを要求する読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納し、
前記メモリアクセス制御装置は、
前記メモリから読み出すべきデータと、前記データの前記メモリアドレスとを前記読出元から取得する読出要求取得手段と、
前記キャッシュメモリに前記読出要求取得手段が取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視手段と、
前記キャッシュメモリ監視手段が前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較手段と、
前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力手段と
を有することを特徴とするアクセス制御システム。
【請求項27】
メモリから読み出すべきデータと、前記データのメモリアドレスとを、前記メモリからのデータの読み出しを要求する読出元から取得する読出要求取得ステップと、
前記メモリへのデータの書き込みを要求する書込元または前記読出元から要求されたデータと、当該データのメモリアドレスと、当該データにアクセス可能な書込元または読出元が前記メモリにアクセスする際に利用する情報である要求元アクセスIDとを対応付けて格納するキャッシュメモリに前記読出要求取得ステップにおいて取得した前記メモリアドレスが格納されているか否かを判断するキャッシュメモリ監視ステップと、
前記キャッシュメモリ監視ステップにおいて前記キャッシュメモリに前記メモリアドレスが格納されていると判断した場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記要求元アクセスIDと、前記読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスIDとを比較するアクセスID比較ステップと、
前記要求元アクセスIDと前記読出元アクセスIDとが一致する場合に、前記キャッシュメモリにおいて前記メモリアドレスに対応付けられている前記データを前記読出元に出力する出力ステップと
を有することを特徴とするメモリアクセス制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10−1】
image rotate

【図10−2】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate

【図57】
image rotate

【図58】
image rotate

【図59】
image rotate

【図60】
image rotate

【図61】
image rotate

【図62】
image rotate

【図63】
image rotate

【図64】
image rotate

【図65】
image rotate

【図66−1】
image rotate

【図66−2】
image rotate

【図67】
image rotate

【図68】
image rotate

【図69】
image rotate

【図70】
image rotate

【図71】
image rotate

【図72】
image rotate

【図73】
image rotate

【図74】
image rotate

【図75】
image rotate

【図76】
image rotate

【図77】
image rotate

【図78】
image rotate

【図79】
image rotate

【図80】
image rotate

【図81】
image rotate

【図82】
image rotate

【図83】
image rotate

【図84】
image rotate

【図85】
image rotate

【図86】
image rotate

【図87】
image rotate

【図88】
image rotate


【公開番号】特開2007−179518(P2007−179518A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2006−79691(P2006−79691)
【出願日】平成18年3月22日(2006.3.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】