(57)【特許請求の範囲】
【請求項１】
メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、
前記第１演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第１演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、
前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を備えたことを特徴とするアクセス制御装置。
【請求項２】
前記書込元から前記書込元アクセスＩＤを取得する書込元アクセスＩＤ取得手段と、
前記読出元から前記読出元アクセスＩＤを取得する読出元アクセスＩＤ取得手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスＩＤ取得手段が取得した前記書込元アクセスＩＤに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスＩＤ取得手段が取得した前記読出元アクセスＩＤに基づいて、前記読出元シンドロームを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記書込元アクセスＩＤ取得手段は、前記書込元に接続されている書込元専用線を介して前記書込元アクセスＩＤを取得し、
前記読出元アクセスＩＤ取得手段は、前記読出元に接続されている読出元専用線を介して前記読出元アクセスＩＤを取得することを特徴とする請求項２に記載のアクセス制御装置。
【請求項４】
前記書込元を識別する書込元ＩＤを取得する書込元ＩＤ取得手段と、
前記書込元ＩＤ取得手段が取得した前記書込元ＩＤに基づいて、前記書込元アクセスＩＤを特定する書込元アクセスＩＤ特定手段と、
前記読出元を識別する読出元ＩＤを取得する読出元ＩＤ取得手段と、
前記読出元ＩＤ取得手段が取得した前記読出元ＩＤに基づいて、前記読出元アクセスＩＤを特定する読出元アクセスＩＤ特定手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスＩＤ特定手段が特定した前記書込元アクセスＩＤに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスＩＤ特定手段が特定した前記読出元アクセスＩＤに基づいて、前記読出元シンドロームを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項５】
前記書込元ＩＤと前記書込元アクセスＩＤとを対応付けて保持する書込元アクセスＩＤ保持手段と、
前記読出元ＩＤと前記読出元アクセスＩＤとを対応付けて保持する読出元アクセスＩＤ保持手段と
をさらに備え、
前記書込元アクセスＩＤ特定手段は、前記書込元アクセスＩＤ保持手段において、前記書込元ＩＤ取得手段が取得した前記書込元ＩＤに対応付けられている前記書込元アクセスＩＤを特定し、
前記読出元アクセスＩＤ特定手段は、前記読出元アクセスＩＤ保持手段において、前記読出元ＩＤ取得手段が取得した前記読出元ＩＤに対応付けられている前記読出元アクセスＩＤを特定することを特徴とする請求項４に記載のアクセス制御装置。
【請求項６】
前記書込元から前記書込メモリアドレスを取得する書込メモリアドレス取得手段と、
前記読出元から前記読出メモリアドレスを取得する読出メモリアドレス取得手段と
をさらに備え、
前記書込元アクセスＩＤ保持手段は、前記書込メモリアドレスと前記書込元アクセスＩＤとをさらに対応付けて保持し、
前記書込元アクセスＩＤ特定手段は、前記書込元アクセスＩＤ保持手段において、前記書込メモリアドレス取得手段が取得した前記書込メモリアドレスに対応付けられている前記書込元アクセスＩＤを特定し、
前記読出元アクセスＩＤ保持手段は、前記読出メモリアドレスと前記読出元アクセスＩＤとをさらに対応付けて保持し、
前記読出元アクセスＩＤ特定手段は、前記読出元アクセスＩＤ保持手段において、前記読出メモリアドレス取得手段が取得した前記読出メモリアドレスに対応付けられている前記読出元アクセスＩＤを特定することを特徴とする請求項５に記載のアクセス制御装置。
【請求項７】
前記書込元から前記書込メモリアドレスを取得する書込メモリアドレス取得手段と、
前記書込メモリアドレスと前記書込元アクセスＩＤとを対応付けて保持する書込元アクセスＩＤ保持手段と、
前記書込元アクセスＩＤ保持手段において、前記書込メモリアドレス取得手段が取得した前記書込メモリアドレスに対応付けられている前記書込元アクセスＩＤを特定する書込元アクセスＩＤ特定手段と、
前記読出元から前記読出メモリアドレスを取得する読出メモリアドレス取得手段と、
前記書込メモリアドレスと前記読出元アクセスＩＤとを対応付けて保持する読出元アクセスＩＤ保持手段と、
前記読出元アクセスＩＤ保持手段において、前記読出メモリアドレス取得手段が取得した前記読出メモリアドレスに対応付けられている前記読出元アクセスＩＤを特定する読出元アクセスＩＤ特定手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込元アクセスＩＤ特定手段が特定した前記書込元アクセスＩＤに基づいて、前記書込元シンドロームを生成し、
前記読出元シンドローム生成手段は、前記読出元アクセスＩＤ特定手段が特定した前記読出元アクセスＩＤに基づいて、前記読出元シンドロームを生成することを特徴とする請求項１に記載のアクセス制御装置。
【請求項８】
前記書込元マスクデータ生成手段は、
前記書込元アクセスＩＤおよび前記書込メモリアドレスに基づいて、前記元データをマスクすべきデータマスクを生成する書込元データマスク生成手段と、
前記データマスク生成手段により生成された前記データマスクのシンドロームと、前記書込元シンドローム生成手段により生成された前記書込元シンドロームとの排他的論理和を、前記パリティ生成手段により生成された前記パリティをマスクすべきパリティマスクとして生成する書込元パリティマスク生成手段と
を有し、
前記読出元マスクデータ生成手段は、
前記読出元アクセスＩＤおよび前記読出メモリアドレスに基づいて、前記第１演算後データのうち前記元データに対応する部分をマスクすべきデータマスクを生成する読出元データマスク生成手段と、
前記データマスク生成手段により生成された前記データマスクのシンドロームと、前記読出元シンドローム生成手段により生成された前記読出元シンドロームとの排他的論理和を、前記第１演算後データのうち前記パリティに対応する部分をマスクすべきパリティマスクとして生成する読出元パリティマスク生成手段と
を有し、
前記第１排他的論理和算出手段は、前記元データと前記書込元データマスク生成手段により生成されたデータマスクとの排他的論理和を算出し、かつ前記パリティと前記書込元パリティマスク生成手段により生成された前記パリティマスクとの排他的論理和を算出し、
前記第２排他的論理和算出手段は、前記第１演算後データのデータ部分と前記読出元データマスク生成手段により生成されたデータマスクとの排他的論理和を算出し、かつ前記第１演算後データのパリティ部分と前記読出元パリティマスク生成手段により生成された前記パリティマスクとの排他的論理和を算出することを特徴とする請求項１から７のいずれか一項に記載のアクセス制御装置。
【請求項９】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれＬＦＳＲ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒｓ）遅延計算手段を有することを特徴とする請求項８に記載のアクセス制御装置。
【請求項１０】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれ
複数のＬＦＳＲ遅延計算手段と、
前記複数のＬＦＳＲ遅延計算手段の出力値のうち少なくとも２つのＬＦＳＲ遅延計算手段からの出力値の排他的論理和を計算する排他的論理和計算手段と
を有することを特徴とする請求項８に記載のアクセス制御装置。
【請求項１１】
前記ＬＦＳＲ遅延計算手段は、前記書込元アクセスＩＤまたは前記読出元アクセスＩＤごとに異なるパラメータを利用して処理を行うことを特徴とする請求項９または１０に記載のアクセス制御装置。
【請求項１２】
前記書込元アクセスＩＤおよび前記読出元アクセスＩＤに対応付けて、前記ＬＦＳＲ遅延計算手段のパラメータを保持するデータマスク生成情報保持手段をさらに備え、
前記ＬＦＳＲ遅延計算手段は、前記書込元アクセスＩＤまたは前記読出元アクセスＩＤに対応付けて前記データマスク生成情報保持手段が保持する前記パラメータを利用して処理を行うことを特徴とする請求項１１に記載のアクセス制御装置。
【請求項１３】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれ
メモリアドレスをシフトさせるゼロシフト手段を有することを特徴とする請求項８から１２のいずれか一項に記載のアクセス制御装置。
【請求項１４】
前記書込元データマスク生成手段および前記読出元データマスク生成手段は、それぞれメモリアドレスの値をより離れた値に変換するアドレス拡散手段を有することを特徴とする請求項８から１３のいずれか一項に記載のアクセス制御装置。
【請求項１５】
前記書込メモリアドレスを他の値に変換する書込アドレス変換手段と、
前記読出メモリアドレスを他の値に変換する読出アドレス変換手段と
をさらに備え、
前記書込元シンドローム生成手段は、前記書込アドレス変換手段により変換された後の前記書込メモリアドレスに基づいて、前記書込元シンドロームを生成し、
前記書込元マスクデータ生成手段は、前記書込アドレス変換手段により変換された後の前記書込メモリアドレスに基づいて、前記書込元マスクデータを生成し、
前記読出元シンドローム生成手段は、前記読出アドレス変換手段により変換された後の前記読出メモリアドレスに基づいて、前記読出元シンドロームを生成し、
前記読出元マスクデータ生成手段は、前記読出アドレス変換手段により変換された後の前記読出メモリアドレスに基づいて、前記読出元マスクデータを生成することを特徴とする請求項１から１４のいずれか一項に記載のアクセス制御装置。
【請求項１６】
前記書込元および前記読出元は、プロセッサまたはプロセスであることを特徴とする請求項１から１５のいずれか一項に記載のアクセス制御装置。
【請求項１７】
前記メモリにおいて発生される乱数と同一の乱数を発生する乱数発生器と、
前記乱数発生器が発生した乱数と、前記メモリにおけるアクセスすべき領域のメモリアドレスとの排他的論理和演算を行う排他的論理和演算手段と、
前記排他的論理和演算手段による演算結果である演算後アドレスを送出する演算後アドレス送出手段と
をさらに備えたことを特徴とする請求項１に記載のアクセス制御装置。
【請求項１８】
プロセッサと、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、
前記メモリアクセス制御装置は、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、
前記第１演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第１演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、
前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を有することを特徴とするアクセス制御システム。
【請求項１９】
プロセッサと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、
前記メモリアクセス制御装置は、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、
前記第１演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第１演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、
前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を有することを特徴とするアクセス制御システム。
【請求項２０】
メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたプロセッサであって、
前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、
前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、
前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、
前記第１演算後データを前記メモリに書き込む書込手段と、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、
前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、
前記メモリから前記第１演算後データを読み出す読出手段と、
前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、
前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、
前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段と
を備えたことを特徴とするプロセッサ。
【請求項２１】
メモリに書き込むべき元データのパリティを生成するパリティ生成ステップと、
前記パリティ生成ステップにおいて生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与ステップと、
前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成ステップと、
前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成ステップと、
前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出ステップと、
前記第１演算後データを前記メモリに書き込む書込ステップと、
前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成ステップと、
前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成ステップと、
前記メモリから前記第１演算後データを読み出す読出ステップと、
前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出ステップと、
前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出ステップと、
前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断ステップと
を有することを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのアクセスを制御することのできるアクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法に関するものである。
【背景技術】
【０００２】
現代のコンピュータシステムにおいては、複数のプロセス（プログラム、タスクまたはジョブ）を切り換えて処理するマルチプログラミング方式を用いることで、例えばメモリやＣＰＵなどコンピュータシステム内のさまざまな資源を有効に活用している。
【０００３】
このため、あるプロセスが処理に用いるメモリ上のデータを他のプロセスが盗み見たり、上書きして破壊したりする問題が発生する。
【０００４】
そこで従来は、非特許文献１に開示されているように、メモリの一定のサイズ（例えば4ＫＢ）毎にストレージキーと呼ぶ情報を記憶しておき、プロセスがメモリをアクセスする場合には、プロセスの持つキーとアクセスするメモリのストレージキーを照らし合わせてアクセスの可否を判断する方式が広く用いられている。
【０００５】
【非特許文献１】z/Architecture Principles of Operation (IBM; SA22-7832-00; December 2000)3-9 〜 3-12ページ
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のようにストレージキーを用いたメモリ保護方式においては、データを記憶するメモリに加えてストレージキーを記憶するためのメモリが必要になる。このため、ハードウェア量が増加する。
【０００７】
また、保護の単位が例えば４ＫＢのページ単位であり、サイズの小さなデータを保護しようと思うと使用しない無駄なメモリ領域が発生する。この問題は、より小さなメモリ領域単位でストレージキーを対応させることで解決することもできるが、その場合はストレージキーを記憶するためにさらに多くのメモリが必要になる。
【０００８】
さらに、メモリに障害が発生した場合には、メモリへのアクセスが可能となり不正にデータが読み出される場合がある。
【０００９】
本発明は、上記に鑑みてなされたものであって、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるアクセス制御装置、アクセス制御システム、プロセッサおよびアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、アクセス制御装置であって、メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するするパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、前記第１演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第１演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段とを備えたことを特徴とする。
【００１１】
また、本発明の他の形態は、プロセッサと、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、前記メモリアクセス制御装置は、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、前記第１演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第１演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段とを有することを特徴とする。
【００１２】
また、本発明の他の形態は、プロセッサと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたアクセス制御システムであって、前記メモリアクセス制御装置は、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、前記第１演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第１演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段とを有することを特徴とする。
【００１３】
また、本発明の他の形態は、メモリコントローラと、メモリへのアクセスを制御するメモリアクセス制御装置とを備えたプロセッサであって、前記メモリに書き込むべき元データのパリティを生成するパリティ生成手段と、前記パリティ生成手段が生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与手段と、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成手段と、前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成手段と、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出手段と、前記第１演算後データを前記メモリに書き込む書込手段と、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成手段と、前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成手段と、前記メモリから前記第１演算後データを読み出す読出手段と、前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出手段と、前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出手段と、前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断手段とを備えたことを特徴とする。
【００１４】
また、本発明の他の形態は、アクセス制御方法であって、メモリに書き込むべき元データのパリティを生成するパリティ生成ステップと、前記パリティ生成ステップにおいて生成した前記パリティを前記元データに付与してパリティ付与後データを生成するパリティ付与ステップと、前記メモリへの前記元データの書き込みを要求する書込元が前記メモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、前記パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成する書込元シンドローム生成ステップと、前記書込元シンドロームと、前記書込元アクセスＩＤと、前記元データを書き込むべき書込メモリアドレスとに基づいて、前記書込元マスクデータを生成する書込元マスクデータ生成ステップと、前記パリティ付与後データと、前記書込元マスクデータとの排他的論理和を算出して、第１演算後データを得る第１排他的論理和算出ステップと、前記第１演算後データを前記メモリに書き込む書込ステップと、前記メモリからのデータの読み出しを要求する読出元が前記メモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、前記第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成する読出元シンドローム生成ステップと、前記読出元シンドロームと、前記読出元アクセスＩＤと、前記読出元データを読み出す読出メモリアドレスとに基づいて、前記読出元マスクデータを生成する読出元マスクデータ生成ステップと、前記メモリから前記第１演算後データを読み出す読出ステップと、前記読出元マスクデータと、前記第１演算後データとの排他的論理和を算出して、第２演算後データを得る第２排他的論理和算出ステップと、前記第２演算後データから実際のデータシンドロームを算出するデータシンドローム算出ステップと、前記データシンドロームに基づいて、前記第２演算後データを前記元データとして出力するか否かを判断する出力判断ステップとを有することを特徴とする。
【発明の効果】
【００１８】
本発明にかかるアクセス制御装置によれば、パリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスＩＤと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第１排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第１演算後データを得て、書込手段が、第１演算後データをメモリに書き込み、読出元シンドローム生成手段が、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスＩＤと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第１演算後データを読み出し、第２排他的論理和算出手段が、読出元マスクデータと、第１演算後データとの排他的論理和を算出して、第２演算後データを得て、データシンドローム算出手段が、第２演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第２演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【００１９】
また、本発明の他の形態にかかるアクセス制御システムによれば、アクセス制御装置のパリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスＩＤと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第１排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第１演算後データを得て、書込手段が、第１演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスＩＤと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第１演算後データを読み出し、第２排他的論理和算出手段が、読出元マスクデータと、第１演算後データとの排他的論理和を算出して、第２演算後データを得て、データシンドローム算出手段が、第２演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第２演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【００２０】
また、本発明の他の形態にかかるプロセッサによれば、アクセス制御装置のパリティ生成手段が、メモリに書き込むべき元データのパリティを生成し、パリティ付与手段が、パリティ生成手段が生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成手段が、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成手段が、書込元シンドロームと、書込元アクセスＩＤと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第１排他的論理和算出手段が、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第１演算後データを得て、書込手段が、第１演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成手段が、読出元シンドロームと、読出元アクセスＩＤと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出手段が、メモリから第１演算後データを読み出し、第２排他的論理和算出手段が、読出元マスクデータと、第１演算後データとの排他的論理和を算出して、第２演算後データを得て、データシンドローム算出手段が、第２演算後データから実際のデータシンドロームを算出し、出力判断手段が、データシンドロームに基づいて、第２演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【００２１】
また、本発明の他の形態にかかるアクセス制御方法によれば、パリティ生成ステップにおいて、メモリに書き込むべき元データのパリティを生成し、パリティ付与ステップにおいて、パリティ生成ステップにおいて生成したパリティを元データに付与してパリティ付与後データを生成し、書込元シンドローム生成ステップにおいて、メモリへの元データの書き込みを要求する書込元がメモリにアクセスする際に利用する情報である書込元アクセスＩＤに予め対応付けられている値を、パリティ付与後データに対してマスクすべき書込元マスクデータの書込元シンドロームとして生成し、書込元マスクデータ生成ステップにおいて、書込元シンドロームと、書込元アクセスＩＤと、元データを書き込むべき書込メモリアドレスとに基づいて、書込元マスクデータを生成し、第１排他的論理和算出ステップにおいて、パリティ付与後データと、書込元マスクデータとの排他的論理和を算出して、第１演算後データを得て、書込ステップにおいて、第１演算後データをメモリに書き込み、メモリからのデータの読み出しを要求する読出元がメモリにアクセスする際に利用する情報である読出元アクセスＩＤに予め対応付けられている値を、第１演算後データに対してマスクすべき読出元マスクデータの読出元シンドロームとして生成し、読出元マスクデータ生成ステップにおいて、読出元シンドロームと、読出元アクセスＩＤと、読出元データを読み出す読出メモリアドレスとに基づいて、読出元マスクデータを生成し、読出ステップにおいて、メモリから第１演算後データを読み出し、第２排他的論理和算出ステップにおいて、読出元マスクデータと、第１演算後データとの排他的論理和を算出して、第２演算後データを得て、データシンドローム算出ステップにおいて、第２演算後データから実際のデータシンドロームを算出し、出力判断ステップにおいて、データシンドロームに基づいて、第２演算後データを元データとして出力するか否かを判断するので、メモリに障害が発生した場合であっても、メモリへのアクセスを制御することのできるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に、本発明にかかるアクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００２６】
（実施の形態１）
図１は、実施の形態１にかかるアクセス制御システム１の全体構成を示す図である。アクセス制御システム１は、アクセス制御装置１０と、プロセッサ２０と、メモリコントローラ３０と、メモリ４０とを備えている。
【００２７】
プロセッサ２０とメモリ４０は、メモリコントローラ３０とアクセス制御装置１０により接続されている。メモリコントローラ３０は、プロセッサバス２２（プロセッサから直接出ている信号線）のプロトコルとメモリバス４２のプロトコルの間の違いを吸収する役割をもつ。すなわち、プロセッサ２０がプロセッサバス２２に出すデータの読み書きの信号と、メモリ４０に読み書きする信号の違いを吸収する。
【００２８】
例えば、メモリ４０がＤＲＡＭである場合には、プロセッサ２０がアドレスを指定して読み出し要求を出した場合には、アドレスを上位と下位に分けてメモリ４０に渡す必要がある。メモリコントローラ３０は、この間の手順の違いを変換する。
【００２９】
アクセス制御装置１０は、メモリコントローラ３０とメモリ４０の間に接続されている。メモリ４０からのデータの読み出し時に、このデータの読出元にアクセス権限があるかどうかを判断する。なお、アクセス権限に関する情報は、プロセッサ２０がメモリコントローラ３０を介してアクセス制御装置１０に設定する。具体的には、後述のアクセスＩＤなどの情報を設定する。
【００３０】
また、アクセス制御装置１０は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  ＣｏｄｅまたはＥｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｅ）の機能を有している。具体的には、プロセッサ２０が書き込むデータにＥＣＣをつけてメモリ４０に書き込む。また、メモリ４０から読み出したＥＣＣ付のデータのＥＣＣチェックを行う。ＥＣＣを利用するので、メモリ４０のアクセス制御すなわち保護の単位はＥＣＣの単位と同じ３２ビットや６４ビットといったサイズになる。すなわち、細かな単位でメモリ４０を保護することができる。
【００３１】
なお、アクセス制御装置１０がアクセス権限を管理するメモリデータアクセスの要求元、すなわちデータの読出元および書込元は、プロセッサ２０内において管理されるプロセスである。
【００３２】
ここで、ＥＣＣについて説明する。図２および図３は、ＥＣＣについて説明するための図である。図２は、データをメモリ４０に書き込む際の処理を説明するための図である。一般に、図２に示すように、一度にメモリ４０に読み書きするｎビットの大きさのデータＤに対して、そのデータの値から計算したｍビットのパリティを付加する。そして、ｎ＋ｍビットのデータＤ’をメモリ４０に書き込む。
【００３３】
例えば、一度にメモリ４０に読み書きする６４（＝ｎ）ビットの大きさのデータに対して、そのデータの値から計算した８（＝ｍ）ビットのパリティを付加し７２ビットのパリティ付データをメモリ４０に書き込む。
【００３４】
図３は、データＤ’を読み出す際の処理を説明するための図である。メモリ４０からデータＤ’を読み出す際には、データＤ’と検査行列「Ｈ」の転置行列の積によってｍビットの値を計算する。このｍビットの値をシンドロームと呼ぶ。シンドロームが０であるということはｎビットのデータの値に誤りがないことを示している。
【００３５】
シンドロームが０でないということは誤りが存在することを示している。誤りが訂正可能な場合は誤りを訂正する。誤りがあるが訂正できない場合には、メモリデータアクセスの要求元であるプロセッサ２０に割り込み等の手段により誤りが発生したことを通知する。
【００３６】
ＥＣＣには様々な方式があり、それぞれの方式によってパリティのビット数やその計算方法、シンドロームを計算する検査行列、シンドロームから誤りを訂正するビット位置の求め方等が異なる。
【００３７】
コンピュータシステムのメモリで広く用いられているのは、ＳＥＣ−ＤＥＤ符号（１誤り訂正２誤り検出符号）である。ＳＥＣ−ＤＥＤ符号は、データあるいはそのパリティの中に１ビットの誤り（１誤りとも呼ぶ）がある場合は誤っている位置を特定することができる。２ビットの誤り（２誤りとも呼ぶ）がある場合は、位置は特定できないが誤りがあることは検出できる。通常、３２ビットのデータであれば７ビットのパリティを、６４ビットのデータであれば８ビットのパリティを、１２８ビットのデータであれば９ビットのパリティを、ＥＣＣとして付加する。
【００３８】
ＳＥＣ−ＤＥＤ符号にも、そのパリティの計算方法および検査行列の作り方の違いによって、様々な方式が存在する。その中でも広く用いられるのは、拡大ハミング符号と、Ｈｓｉａｏの符号である。特にＨｓｉａｏのＳＥＣ−ＤＥＤ符号は回路の実装にとって良い性質を持っており、広く使われている。拡大ハミング符号については、Ａｌｇｅｂｒａｉｃ  Ｃｏｄｅ  ｆｏｒ  Ｄａｔａ  Ｔｒａｎｓｍｉｓｓｉｏｎ；Ｒｉｃｈａｒｄ  Ｅ．  Ｂｌａｈｕｔ，２００３，Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ  ６３ページに記載されている。Ｈｓｉａｏの符号については、Ａ  Ｃｌａｓｓ  ｏｆ  Ｏｐｔｉｍａｌ  ＭｉｎｉｍｕｍＯｄｄ−ｗｅｉｇｈｔ−ｃｏｌｕｍｎ  ＳＥＣ−ＤＥＤ  Ｃｏｄｅｓ；Ｍ．  Ｙ．  Ｈｓｉａｏ，  ＩＢＭ  Ｊｏｕｒｎａｌ  ｏｆ  Ｒｅｓｅａｒｃｈ  ａｎｄ  Ｄｅｖｅｌｏｐｍｅｎｔ，  Ｊｕｌｙ  １９７０  ３９５〜４０１ページに記載されている。これら２つのＳＥＣ−ＤＥＤ符号においては、シンドロームの値の解釈の方法が異なるが、誤り訂正／検出の能力は同等である。
【００３９】
なお、実施の形態１にかかるアクセス制御システム１においては、６４ビットのデータに８ビットのパリティを付加するＨｓｉａｏの符号を用いることとするが、データ長はこれに限定されるものではない。６４ビット以外の例えば３２ビットや１６ビットまたは１２８ビットなど様々な長さのデータに対しても同様にアクセス制御を行うことができる。さらに、Ｈｓｉａｏの符号以外、例えば拡大ハミング符号などのＳＥＣ−ＤＥＤ符号やその他の誤り訂正符号を用いる場合でも同様に実施できる。
【００４０】
図４は、データ長が６４ビットの場合のＨｓｉａｏのＳＥＣ−ＤＥＤ符号の検査行列「Ｈ」の一例を示す図である。この検査行列「Ｈ」は８行７２列であり、左から６４個の列は、６４ビットのメモリのデータの各ビット位置に対応し、残りの右の８列は、パリティの各ビットに対応する。パリティに対応する右の８列の部分は、８×８の単位行列になっている。
【００４１】
図５は、図４に示す検査行列Ｈに対応する生成行列「Ｇ」を示す図である。生成行列「Ｇ」は、パリティが付与されていない元のデータに対してパリティを計算するために用いるものである。この生成行列「Ｇ」は６４行７２列であり、左の６４列は６４×６４の単位行列になっており、残りの右の８列は、生成行列「Ｇ」の左の６４列の転置行列である。
【００４２】
図６は、アクセス制御装置１０の詳細な機能構成を示すブロック図である。アクセス制御装置１０は、パリティ生成回路１００と、第１排他的論理和回路１０２と、アクセスＩＤレジスタ１１０と、マスク値生成回路１１２と、第２排他的論理和回路１１４と、シンドローム計算回路１２０と、誤り訂正回路１２２とを有している。
【００４３】
アクセス制御装置１０は、従来のＥＣＣ回路に加えて、アクセス権限チェックのためのマスク値を作成し、データにパリティを重ねてメモリ４０に記録し、メモリ４０から読み出したデータに対してマスク値を使ってアクセス権限のチェックを行う回路を有している。第１排他的論理和回路１０２、アクセスＩＤレジスタ１１０、マスク値生成回路１１２および第２排他的論理和回路１１４以外は、従来のＥＣＣ回路と同等である。
【００４４】
なお、アクセス制御装置１０を接続するメモリコントローラ３０がＥＣＣ回路を備えている場合には、アクセス制御装置１０がＥＣＣ回路の機能を備えるのにかえて、メモリコントローラ３０のＥＣＣ回路を利用することとしてもよい。
【００４５】
パリティ生成回路１００は、メモリコントローラ３０を介してプロセッサ２０から取得したデータに対するパリティを生成する。そして、プロセッサ２０から取得したデータに対しパリティを付加する。
【００４６】
具体的には、プロセッサ２０からメモリコントローラ３０を介して６４ビットのデータを取得する。取得したデータから８ビットのパリティを計算して第１排他的論理和回路１０２へ出力する。この計算は図５を参照しつつ説明した生成行列「Ｇ」を利用して行う。
【００４７】
６４ビットの入力データ「ｄ」を(式１)に示すような６４要素のベクトルとして表現すし、データ「ｄ」に対応する８ビットのパリティが付与された符号語「ｘ」を（式２）に示すような７２要素のベクトルとして表現するとする。
ｄ＝（ｄ１,ｄ２,ｄ３,…  ｄ６４）      …（式１）
ｘ＝（ｄ１,ｄ２,ｄ３,…ｄ６４,ｐ１,ｐ２,…ｐ８）      …（式２）
【００４８】
この場合、符号語（パリティ付のデータ）「ｘ」と生成行列「Ｇ」とデータ「ｄ」の間には、（式３）の関係がある。
ｘ＝ｄＧ      …（式３）
つまり、６４ビットのデータに対して生成行列「Ｇ」を掛け合わせると、符号語「ｘ」を計算することができる。こうして計算された符号語「ｘ」の最後の８要素を８ビットのパリティとして出力する。
【００４９】
なお、パリティ生成回路１００をここで説明したベクトルと行列の積によるパリティの計算を行う組み合わせ回路として実現できることは、広く知られていることである。
【００５０】
アクセスＩＤレジスタ１１０は、メモリコントローラ３０を介してプロセッサ２０からアクセスＩＤを取得する。ここで、アクセスＩＤは、メモリ４０へのデータアクセスの要求元であるプロセスがメモリ４０にアクセスする際に利用する情報である。本実施の形態においては、６４ビットのデータに８ビットのパリティをつけるので、１２８種類のアクセスＩＤを管理することができる。例えば、７ビットで０から１２７までの番号がアクセスＩＤになる。
【００５１】
プロセッサ２０上で起動しているプロセスがメモリ４０にアクセスする場合には、まずアクセス制御装置１０のアクセスＩＤレジスタ１１０にアクセスＩＤを設定する。
【００５２】
図７は、プロセッサ２０から見たアドレス空間を示す図である。このように、アクセス制御装置１０のアクセスＩＤレジスタ１１０を、プロセッサ２０から見えるアドレス空間中の入出力空間にマッピングしておく。プロセッサ２０が入出力空間内のアクセスＩＤレジスタ１１０がマッピングされた番地にアクセスIＤを書き込むと、書き込まれたアクセスＩＤはアクセスIＤレジスタ１１０に書き込まれる。なお、アクセスＩＤレジスタ１１０にアクセスＩＤを設定する手段はこれに限定されるものではない。
【００５３】
プロセッサ２０上で実行される任意のプログラムが任意のアクセスＩＤを設定できるようにした場合、アクセス権限の保護ができなくなってしまう。そこで、プロセッサ２０上で動作するＯＳやハードウェア的な認証等の手段によりアクセスＩＤの設定を行うこととするのが望ましい。これにより、実行中のプログラムがアクセス権限を有している場合にのみ、このプログラムのアクセスＩＤをアクセスＩＤレジスタ１１０に設定することができる。ここで、アクセスＩＤレジスタ１１０は、書込元アクセスＩＤ取得手段と読出元アクセスＩＤ取得手段として機能する。
【００５４】
再び説明を図６に戻す。マスク値生成回路１１２は、アクセスＩＤレジスタ１１０が保持するアクセスＩＤとプロセッサ２０がアクセスすべきメモリ４０のアドレス値とに基づいて、マスク値を生成する。マスク値は、メモリ４０に書き込むデータまたはメモリ４０から読み出すデータに対してマスクするためのデータであり、アクセスIＤとアクセスしたいメモリ４０のアドレスから一意に決まる値である。なお、本実施の形態にかかるマスク値生成回路１１２は、書込元マスクデータ生成手段および読出元マスクデータ生成手段として機能する。
【００５５】
第１排他的論理和回路１０２は、メモリ４０へのデータ書き込み時には、メモリ４０に書き込むべきデータおよびこのデータから生成されたパリティとマスク値との排他的論理和を計算する。そして、この結果を組にしてメモリ４０に書き込む。すなわち、マスク値生成回路１１２により生成されたマスク値をデータおよびパリティに重ねて書き込む。この値を第１演算後データと称する。
【００５６】
第２排他的論理和回路１１４は、メモリ４０からのデータの読出しの際に、メモリ４０から読出したデータとマスク値との排他的論理和を計算することによりマスク値をキャンセルする。
【００５７】
シンドローム計算回路１２０は、第２排他的論理和回路１１４の計算結果に基づいて、シンドロームを計算する。誤り訂正回路１２２は、シンドローム計算回路１２０により計算されたシンドロームの値に応じて、適宜誤り訂正を行う。
【００５８】
ここで、シンドローム計算回路１２０および誤り訂正回路１２２の処理について詳述する。メモリ４０から読み出したパリティ付のデータから、誤りの検出や訂正をするため、まずシンドロームを計算する。具体的には、シンドローム計算回路１２０は、メモリ４０から読み出された６４ビットのデータと、それに付随している８ビットのパリティを取得する。そして、検査行列「Ｈ」を利用して、６４ビットのデータおよび８ビットのパリティから８ビットのシンドロームを計算する。シンドロームは誤り訂正回路１２２に出力される。
【００５９】
８ビットのシンドローム「ｓ」を（式４）のように表現し、さらに、入力となる６４ビットのデータと８ビットのパリティからなるベクトル「ｘ」を（式５）のように表現するとする。
ｓ＝（ｓ１，ｓ２，  ・・・  ｓ８）      ・・・（式４）
ｘ＝（ｄ１，ｄ２，ｄ３，  ・・・ｄ６４，ｐ１，ｐ２，  ・・・  ｐ８）      ・・・（式５）
【００６０】
この場合、シンドローム「ｓ」はベクトル「ｘ」と検査行列「Ｈ」から（式６）のように計算することができる。
ｓ＝ｘＨT      ・・・（式６）
ここでＨTは検査行列「Ｈ」の転置行列を表す。シンドローム計算回路１２０は、このようにして８ビットのシンドロームを計算し出力する。
【００６１】
ＳＥＣ−ＤＥＤ符号では誤りがない時にはシンドロームの値が「０」になる。誤りが１つある場合には、シンドロームは、誤っているビット位置に対応する検査行列「Ｈ」の列の要素と同じ値になる。シンドロームが「０」でない場合、検査行列「Ｈ」に含まれる列で、その列ベクトルがシンドロームと同じ値を持つものが存在すれば、その列に対応するビット位置が誤っている。この場合、そのビット位置に対応するデータあるいはパリティ中の１ビットを反転することで、誤りを訂正することができる。
【００６２】
シンドロームが「０」以外で、かつそのシンドロームと同じ検査行列「Ｈ」の列ベクトルが存在しない場合は、訂正不可能な誤りが発生している。すなわち、２ビット以上の誤りが発生している。
【００６３】
Ｈｓｉａｏの符号は、その検査行列の各列において、値が「１」である要素の数が必ず奇数個になっている。この性質により、奇数ビットの誤りが発生した場合のシンドローム中の「１」の数は必ず奇数個になり、偶数ビットの誤りが発生した場合のシンドロームの中の「１」の数は必ず偶数個になるという性質を持っている。
【００６４】
２ビットの誤りが発生した場合、Ｈｓｉａｏの符号ではそのシンドロームの中の１の数は必ず０ではない偶数個になるので、２誤りは必ず検出できる。３ビット以上の奇数ビットの誤りが発生した場合、そのシンドロームの中の１の数は必ず奇数個になるが、この場合、１誤りの場合のシンドロームと区別がつかない場合がある。その結果、１ビット誤りのシンドロームと同じシンドロームであれば、１ビット誤りと解釈して正しくない誤り訂正が働き、そうでない場合は訂正不可能な誤りとして検出される。
【００６５】
４ビット以上の偶数ビット誤りが発生した場合、そのシンドロームの中の「１」の数は必ず偶数個になる。ただし「１」の数が０個の場合も含むので、この場合は誤りがないものとして扱われるが、そうでない場合は訂正不可能な誤りとして検出される。なお、通常ＳＥＣ−ＤＥＤ符号を使う場合は、２誤りまでしか発生しないという前提で用いる。
【００６６】
なお、一般にＳＥＣ−ＤＥＤ符号ではパリティ部分に誤りが発生した場合にも、訂正可能であるが、本実施の形態においては、パリティ部分を訂正した後の値は利用しないので、パリティ部分に対する誤り訂正は行わない。なお、他の例としては、パリティ部分の訂正を行うこととしてもよい。
【００６７】
図８は、マスク値生成回路１１２の詳細な機能構成を示すブロック図である。マスク値生成回路１１２は、取得したアクセスＩＤから生成されるマスクに対するシンドロームが所定の値となるようなマスク値を生成する。
【００６８】
マスク値生成回路１１２は、データマスク生成回路１３０と、アクセスＩＤシンドローム生成回路１３２と、パリティ生成回路１３４と、排他的論理和回路１３６とを有している。
【００６９】
図９は、データマスク生成回路１３０の具体的構成を示す図である。データマスク生成回路１３０は、アクセスしたいメモリ４０のアドレスとアクセスIＤを入力として、その２つの値に対応する６４ビットのデータ用のマスク、すなわちデータマスクを出力する。データマスク生成回路１３０は、具体的には、図９に示すように乱数メモリである。乱数メモリは通常のメモリ素子で構成される。
【００７０】
乱数メモリには、ランダムな値が書き込まれている。アクセスIＤとアドレスとが乱数メモリのアドレス端子に繋がっており、これにより、アクセスIＤとアドレスに対応したランダムな値がデータマスク値として乱数メモリのデータ端子から出力される。
【００７１】
なお、データマスク生成回路１３０は、アドレスとアクセスIＤから一意に定まる値を出力できればよく、そのための構成は実施の形態に限定されるものではない。データマスク生成回路１３０は、書込元データマスク生成手段と読出元データマスク生成手段として機能する。
【００７２】
図１０−１は、アクセスＩＤシンドローム生成回路１３２を示す図である。アクセスＩＤシンドローム生成回路１３２は、取得したアクセスＩＤにより生成されるべきパリティのシンドロームを決定する。具体的には、前述のようにシンドローム中の「１」の数がすべて奇数になるように統一すべく、図１０−１に示すように構成される。
【００７３】
なお、シンドローム中の「１」の数がすべて偶数になるように統一する場合には、図１０−２に示すように構成される。なお、アクセスＩＤシンドローム生成回路１３２により生成されるシンドローム中の「１」の数については後述する。
【００７４】
アクセスＩＤシンドローム生成回路１３２は、書込元マスクデータの書込元シンドロームを生成する書込元シンドローム生成手段および読出元マスクデータの読出元シンドロームを生成する読出元シンドローム生成手段として機能する。
【００７５】
パリティ生成回路１３４は、データマスク生成回路１３０が生成したデータマスクのパリティを求める。排他的論理和回路１３６は、パリティ生成回路１３４により生成されたパリティとアクセスＩＤシンドローム生成回路１３２が生成したアクセスIＤシンドロームの排他的論理和をとったものをパリティ用のマスク、すなわちパリティマスクとして出力する。排他的論理和１３６は、書込元パリティマスク生成手段および読出元パリティマスク生成手段として機能する。
【００７６】
通常、任意のデータと、このデータから計算したパリティのシンドロームは０になる。しかし、そのパリティと任意の値「ｘ」との排他的論理和をとった値を新しいパリティとしてシンドロームを計算すると、その値は「ｘ」になる。
【００７７】
これは検査行列「Ｈ」のパリティに対応する部分が単位行列になっていることから導かれる。この性質を利用して、データマスク生成回路１３０が生成したデータマスクに対して、アクセスＩＤシンドローム生成回路１３２が生成したアクセスIＤシンドロームが算出されるようなパリティマスクが生成される。
【００７８】
図１１は、アクセス制御システム１におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。まず、アクセスＩＤレジスタ１１０からアクセスＩＤを取得する（ステップＳ１０２）。次に、パリティ生成回路１００は、パリティを生成し、メモリ４０に書き込むべきデータに付与する（ステップＳ１０４）。次に、マスク値生成回路１１２は、マスク値を生成する（ステップＳ１０６）。具体的には、マスク値生成回路１１２は、データマスクとパリティマスクとを生成する。
【００７９】
次に、第１排他的論理和回路１０２は、データおよびパリティと、マスク値生成回路１１２により生成されたマスクとの排他的論理和を計算する（ステップＳ１０８）。具体的には、プロセッサ２０から取得したデータとマスク値生成回路１１２により生成されたデータマスクとの排他的論理和を計算する。さらに、パリティ生成回路１００により生成されたパリティマスクとマスク値生成回路１１２により生成されたパリティとの排他的論理和を計算する。次に、第１排他的論理和回路１０２により得られた第１演算後データをメモリ４０に書き込む（ステップＳ１１０）。以上で書き込み処理が完了する。
【００８０】
図１２は、書き込み処理におけるデータの流れを示す図である。起動しているプロセスがメモリ４０にデータＤを書き込む際には、ＥＣＣによりパリティが付加され、パリティ付加データＤ’が得られる。
【００８１】
次に、パリティ付加データＤ’と、このマスク値生成回路１１２により生成されたマスク値「Ｋａ」との排他的論理和
【数１】
0004498295.tif 000002
をとった値
【数２】
0004498295.tif 000003
すなわち、第１演算後データＤ’’がメモリ４０に書き込まれる。
【００８２】
ここで、アクセスＩＤに関する情報をアクセス制御装置１０に設定するアクセスＩＤ設定処理における詳細な処理を説明する。図１３は、アクセスＩＤ設定処理において利用されるプロセス管理テーブルを示す図である。アクセス管理テーブルは、オペレーティングシステム（ＯＳ）が有している。プロセッサ２０上で複数のプロセスを実行する場合、通常、ＯＳがそれらのプロセスの管理を行う。このとき図１３に示すプロセス管理テーブルを利用する。
【００８３】
プロセス管理テーブルは、プロセスＩＤに対応付けて、優先度情報、アクセス権情報、プログラムカウンタ、レジスタの退避領域、ページテーブルへのポインタを記録している。さらに、アクセスＩＤ情報をプロセスＩＤに対応付けて記録している。プロセス管理テーブルに管理される情報は、ＯＳによって異なり実施の形態に限定されるものではない。
【００８４】
図１４は、アクセスＩＤ設定処理における詳細な処理を示すフローチャートである。すなわちＯＳがプロセス切り替えを行う際のプロセッサ２０の処理である。実行中のプロセスが停止すると（ステップＳ１２０）、今まで実行していたプロセスのコンテクスト、すなわちレジスタ、プログラムカウンタの値などの実行状態をプロセス管理テーブルに退避する（ステップＳ１２２）。そして、プロセス管理テーブルを参照し、次に実行するプロセスのコンテクスト、すなわちレジスタ、プログラムカウンタの値、ページテーブルなどをプロセッサ２０に設定する（ステップＳ１２４）。
【００８５】
さらに、次に実行するプロセスのアクセスＩＤ情報をアクセス制御装置１０に設定する（ステップＳ１２６）。このアクセスＩＤ情報には、そのプロセスがアクセスするときに用いるアクセスＩＤが入っている。
【００８６】
その後、キャッシュをフラッシュする（ステップＳ１２８）。ここでキャッシュをフラッシュするのは、前のプロセスの使っていたデータがキャッシュに残っていると、アクセス権限が無くてもアクセスできてしまうのを防ぐためである。そして、次に実行するプロセスに制御を移す（ステップＳ１３０）。以上で、アクセスＩＤ設定処理が完了する。
【００８７】
なお、本実施の形態においては、キャッシュのフラッシュは、ＯＳが実行することとしたが、これに限定されるものではない。また、キャッシュのフラッシュ（ステップＳ１２８）は、次に実行するプロセスの開始（ステップＳ１３０）より前で、かつ実行していたプロセスのコンテクストの退避（ステップＳ１２２）以降であれば、どのタイミングでもよい。他の例としては、アクセスＩＤレジスタ１１０の設定が変更された時点で、アクセス制御装置１０がプロセッサ２０に割り込みをかけ、その割り込み処理ルーチン内でキャッシュをフラッシュすることとしてもよい。
【００８８】
図１５は、マスク値生成処理（ステップＳ１０６）におけるマスク値生成回路１１２の詳細な処理を説明するフローチャートである。まず、データマスク生成回路１３０は、アクセスＩＤとアクセスすべきアドレスに基づいて、データマスクを生成する（ステップＳ１４０）。次にアクセスＩＤシンドローム生成回路１３２は、アクセスＩＤに基づいて、アクセスＩＤシンドロームを生成する（ステップＳ１４２）。
【００８９】
次に、パリティ生成回路１３４は、データマスク生成回路１３０が生成したデータマスクのパリティを生成する（ステップＳ１４４）。次に、排他的論理和回路１３６は、パリティ生成回路１３４が生成したパリティとアクセスＩＤシンドローム生成回路１３２が生成したシンドロームの排他的論理和を計算する。すなわち、パリティマスクを生成する（ステップＳ１４６）。以上でマスク値生成処理（ステップＳ１０６）が完了する。なお、データマスク生成のタイミングはパリティ生成のタイミングより前であればよく、アクセスＩＤシンドローム生成の前でなくともよい。
【００９０】
図１６は、アクセス制御処理に含まれるメモリ４０からデータを読み出す処理を示すフローチャートである。まず、アクセスＩＤレジスタ１１０からアクセスＩＤを取得する（ステップＳ１０２）。次に、マスク値生成回路１１２は、マスク値を生成する（ステップＳ１０６）。なお、マスク値生成処理（ステップＳ１０６）は、それぞれ図１４および図１５を参照しつつ説明したマスク値生成処理（ステップＳ１０６）と同様である。
【００９１】
次に、第２排他的論理和回路１１４は、メモリ４０に書き込まれている第１演算後データＤ’’を読み出す（ステップＳ２０４）。次に、読み出した第１演算後データＤ’’とマスク値生成回路１１２により生成されたマスク値との排他的論理和を計算する（ステップＳ２０６）。
【００９２】
さらに、シンドローム計算回路１２０は、ＥＣＣによりシンドロームを計算する（ステップＳ２０８）。シンドロームが「０」である場合、すなわち誤りが検出されない場合には（ステップＳ２１０，Ｙｅｓ）、データＤを読み出す（ステップＳ２１２）。
【００９３】
また、シンドロームが「０」以外であって、シンドロームの中の「１」のビットが奇数個である場合（ステップＳ２１０，Ｎｏ、ステップＳ２１４，Ｙｅｓ）、すなわち誤りが１つ検出された場合には、誤り訂正回路１２２は、誤り訂正を行い（ステップＳ２１６）、訂正後のデータＤを読み出す（ステップＳ２１２）。シンドロームが「０」以外であって、１誤りのシンドロームではない場合（ステップＳ２１０，Ｎｏ、ステップＳ２１４，Ｎｏ）、すなわち誤りが訂正不可能な場合には、データＤにかえて「０」データを出力する（ステップＳ２１８）。以上でデータ読み出し処理が完了する。
【００９４】
なお、本実施の形態においては、ステップＳ２１８においては、「０」データを出力することとしたが、他の例としては、これにかえて、データを出力しないこととしてもよい。また、他の例としては、メモリ４０から読み出したデータをそのまま出力してもよい。      
【００９５】
また他の例としては、訂正できない誤りが発生した場合には、誤り訂正回路１２２は誤りが検出されたことを示す誤り検出信号を出力し、この信号に基づいて、割り込み等の手段でプロセッサ２０に通知してもよい。
【００９６】
図１７は、メモリ４０に書き込まれたデータを読み出す際の処理を説明するための図である。起動しているプロセスが、メモリ４０からデータを読み出す際には、メモリから読出した第１演算後データＤ’’すなわち、
【数３】
0004498295.tif 000004
と、このプロセスによりアクセスＩＤレジスタ１１０に設定されたアクセスＩＤに基づいて生成されたマスク「Ｋｂ」との排他的論理和
【数４】
0004498295.tif 000005
をとった値
【数５】
0004498295.tif 000006
が計算される。なお、この値は、第２演算後データに相当する。その後、シンドローム計算回路１２０による計算結果に基づいて、ＥＣＣによる誤り検査と訂正を行った値を読み出す。
【００９７】
書き込み時と読み出し時のマスクが同じ場合、すなわち、Ｋａ＝Ｋｂの場合には、正しいデータＤを読み出すことができる。書き込み時と読み出し時のマスクが異なる場合、すなわちｋａ≠Ｋｂの場合は、メモリ４０から読み出した第１演算後データＤ’’に対して、
【数６】
0004498295.tif 000007
の値の１のビットの数だけ誤りが発生している状態である。したがって、この場合には、誤り訂正回路１２２は、「０」データを出力する。
【００９８】
なお、他の例としては、書き込み時と読み出し時のマスクが異なる場合には、誤り訂正回路１２２は、「０」データを出力するのにかえて、データを出力しないこととしてもよい。
【００９９】
以上のように、本実施の形態にかかるアクセス制御システム１においては、メモリ４０にデータを書き込むときには、データとそのパリティに対して、要求元固有のマスク値との排他的論理和をとったデータとパリティをメモリ４０に書き込む。また、要求元がメモリ４０からデータを読み出すときには、メモリ４０から読み出したデータとパリティに対して、要求元固有のマスク値との排他的論理和をとったデータとパリティを作成し、それに対して誤り訂正処理を行ったデータを要求元に返す。
【０１００】
メモリ４０への書き込みと読み出しが同じ要求元であれば、アクセスＩＤが等しくマスク値が等しくなる。このため、書き込み時に排他的論理和をとったマスク値と、読み出し時に排他的論理和をとるマスク値は同じ値となる。したがって、マスクの効果が打ち消されて、正しくデータを読み出すことができる。
【０１０１】
一方、本実施の形態においては、メモリ４０への書き込みと読み出しの要求元が異なる場合には、誤り訂正回路１２２で誤りと判断されるようにマスク値を設定しておく。このため、書き込み時に排他的論理和をとったマスク値と、読み出し時に排他的論理和をとるマスク値が異なる。したがって、異なる要求元によるデータの読み出しを防ぐことができる。
【０１０２】
このような異なる要求元からの不正アクセスを防止すべく、書き込み時と読み出し時のマスク値が異なる場合には、必ず誤り訂正不可能であることを表すシンドロームを生成するようにマスク値を選ぶこととする。具体的には、書き込み時のマスク値から計算したシンドロームの値と、読み出し時のマスク値から計算したシンドロームの値の排他的論理和をとった値が「０」ではなく、かつ、その値の「１」の数が偶数個であればよい。
【０１０３】
そのためには、各マスク値から計算したシンドロームの値の中の「１」の数がどのマスクも必ず奇数個あるいは偶数個のどちらかになるように統一しておけばよい。この値をいずれにするかにより図１０−１および図１０−２に示したアクセスＩＤシンドローム生成回路１３２を選べばよい。
【０１０４】
このようにマスク値を選ぶ場合、管理可能な要求元の数は、この条件を満たすシンドロームの数に等しくなる。すなわち、６４ビットのデータに８ビットのパリティをつける構成では、シンドロームの中の「１」の数が奇数個になるように統一する場合には１２８個、偶数個（０個も含む）になるように統一する場合も１２８個の要求元を識別することができる。
【０１０５】
マスクは、プロセスごとに固有の値を持つように設定されている。したがって、所定のプロセスが書き込んだデータを、他のプロセスが読み出そうとした場合には、本実施の形態にかかるアクセス制御システム１においては、読み出すことができない。すなわち、他のプロセスからデータを保護することができる。
【０１０６】
アクセス制御システム１は、以上のように不正なプロセスがデータを読むことを防止する一方で、データの書き込みにおいても、本来データを書くことが許されているプロセスだけが書けるように保護する。具体的には、メモリ４０にデータを書き込む際には、書き込む前に、一度メモリ４０に書き込まれているデータを読み出す。そして、マスクの不一致で読み出しのアクセスができないアドレスにはデータを書き込めないように制御する。これにより、細かな単位の書き込みアクセスの保護を実現することができる。
【０１０７】
さらに、アクセス制御システム１において利用されるマスク値は、アクセス要求元であるプロセスを識別するアクセスＩＤとアクセスすべきメモリ領域のアドレスとに基づいて生成されるので、要求元毎に、さらにはアクセスすべきメモリ領域毎にアクセス制御を行うことができる。
【０１０８】
（実施の形態２）
図１８は、実施の形態２にかかるアクセス制御装置１０の機能構成を示すブロック図である。実施の形態２にかかるアクセス制御装置１０は、実施の形態１にかかるアクセス制御装置１０のアクセスＩＤレジスタ１１０にかえて、アクセスＩＤ管理装置１４０を備えている。この点で実施の形態１にかかるアクセス制御システム１と異なっている。
【０１０９】
図１９は、アクセスＩＤ管理装置１４０の詳細な機能構成を示すブロック図である。アクセスＩＤ管理装置１４０は、アクセスＩＤテーブル１４２とアクセスＩＤ選択回路１４４とを有している。
【０１１０】
図２０は、アクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。アクセスＩＤテーブル１４２は、アクセスIＤと、このアクセスIＤで識別される要求元がアクセス可能なメモリ領域の開始アドレスおよび終了アドレスとを対応付けて記録している。本実施の形態にかかるアクセスＩＤテーブル１４２は、書込元アクセスＩＤ保持手段および読出元アクセスＩＤ保持手段として機能する。また、本実施の形態にかかるアクセスＩＤ管理装置１４０は、書込メモリアドレス取得手段および読出メモリアドレス取得手段として機能する。
【０１１１】
プロセッサ２０上で実行されるプロセスを切り替える時点で、プロセッサ２０は、切り替え後のプロセスの持つアクセスIＤとそれに対応するメモリ領域の開始アドレスと終了アドレスを必要な組数だけアクセスＩＤテーブル１４２に書き込む。すなわち、アクセスＩＤテーブル１４２には、プロセスが切り替えられる毎に、切り替え後のプロセスに対応するデータが記録される。
【０１１２】
各プロセスに対応するアクセスＩＤテーブル１４２に記録するデータは、図１３に示したプロセス管理テーブルのアクセスＩＤ情報の中に記録しておく。そして、プロセスを切り替える際に、すなわち実施の形態１において図１４を参照しつつ説明したステップＳ１２６において、アクセスＩＤ情報に記録されているデータをアクセスＩＤテーブル１４２に設定する。
【０１１３】
アクセスＩＤテーブル１４２は、プロセッサ２０からみることのできるアドレス空間の入出力空間にマッピングしておく。これにより、プロセッサ２０は直接アクセスＩＤテーブル１４２に書き込むことができる。
【０１１４】
アクセスＩＤ選択回路１４４は、プロセッサ２０からメモリ４０へのアクセス要求を取得する。このアクセス要求にはアクセスすべきメモリ領域のアドレスが含まれている。そして、アクセスＩＤテーブル１４２を参照し、メモリ領域に対応するアクセスＩＤを出力する。本実施の形態にかかるアクセスＩＤ選択回路１４４は、書込元アクセスＩＤ特定手段および読出元アクセスＩＤ特定手段として機能する。
【０１１５】
図２１は、アクセスＩＤ管理装置１４０の具体的な構成を示す図である。このように、開始アドレス、終了アドレスおよびアクセスＩＤを記録しておき、これらのデータに対する演算を行うことによりアクセスＩＤテーブル１４２およびアクセスＩＤ選択回路１４４が実現される。
【０１１６】
図２２は、実施の形態２にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。
【０１１７】
前述のように、まずプロセッサ２０からアドレスＡを取得する（ステップＳ１５０）。次に、アクセスＩＤ選択回路１４４は、アクセスＩＤテーブル１４２を参照し、アドレスＡが開始アドレス以上であって、かつ終了アドレス以下となるような開始アドレスと終了アドレスに対応付けられているアクセスＩＤを選択する（ステップＳ１５２）。次に、選択したアクセスＩＤをマスク値生成回路１１２に出力する（ステップＳ１５４）。以上で、アクセスＩＤ取得処理（ステップＳ１０２）が完了する。
【０１１８】
このように、実施の形態２にかかるアクセス制御システム１においては、アクセス要求元のアクセスＩＤがメモリ領域ごとに異なっているので、メモリ領域毎のアクセス制御を行うことができる。
【０１１９】
プロセッサ２０で実行する複数のプロセス間で、メモリ領域を共有する場合には、メモリ領域ごとにアクセスできるプロセスを設定しておき、アクセス権限のチェックを行いたい場合も多い。実施の形態２にかかるアクセス制御システム１のアクセス制御装置１０は、このようなメモリ領域に対応したアクセス権限のチェックを行うことができる。
【０１２０】
また、本実施の形態においては、キャッシュのフラッシュは、アクセスIＤテーブル１４２が変更された時点で、アクセス制御装置１０がプロセッサ２０に割り込みをかけ、その割り込み処理ルーチン内で行うこととする。
【０１２１】
なお、実施の形態２にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態１にかかるアクセス制御システム１の構成および処理と同様である。
【０１２２】
（実施の形態３）
次に、実施の形態３にかかるアクセス制御システム１について説明する。実施の形態３にかかるアクセス制御システム１は、実施の形態２にかかるアクセス制御システム１と同様に、アクセスＩＤ管理装置１４０を備えている。ただし、アクセスＩＤ管理装置１４０における処理が異なる。本実施の形態にかかるアクセスＩＤ管理装置１４０は、書込元ＩＤ取得手段および読出元ＩＤ取得手段として機能する。実施の形態３にかかるアクセスＩＤ選択回路１４４は、要求元を識別する要求元ＩＤを取得し、この要求元ＩＤに基づいてアクセスＩＤを選択する。
【０１２３】
図２３は、実施の形態３にかかるアクセス制御システム１におけるアクセスＩＤ管理装置１４０に含まれるアクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。このように、アクセスＩＤテーブル１４２は、要求元ＩＤとアクセスＩＤとを対応付けて保持している。なお、本実施の形態にかかるアクセスＩＤテーブル１４２は、書込元アクセスＩＤ保持手段および読出元アクセスＩＤ保持手段として機能する。
【０１２４】
アクセスＩＤ選択回路１４４は、アドレスにかえて、アクセス要求の要求元を識別する要求元ＩＤを取得する。複数のプロセッサ２０を接続できるプロセッサバス２２には、通常、いずれの装置がリクエストを出しているかを示す信号が出ている。そこで、アクセスＩＤ選択回路１４４はその信号から要求元ＩＤを特定する。そして、アクセスＩＤテーブル１４２を参照し、取得した要求元ＩＤに対応付けられているアクセスＩＤを選択する。本実施の形態にかかるアクセスＩＤ選択回路１４４は、書込元アクセスＩＤ特定手段および読出元アクセスＩＤ特定手段として機能する。
【０１２５】
図２４は、アクセスＩＤ管理装置１４０の具体的な構成を示す図である。このように、要求元ＩＤとアクセスＩＤを記録しておき、これらのデータに対する演算を行うことによりアクセスＩＤテーブル１４２およびアクセスＩＤ選択回路１４４が実現される。
【０１２６】
図２５は、実施の形態３にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。
【０１２７】
まずプロセッサバス２２から要求元ＩＤを取得する（ステップＳ１６０）。次に、アクセスＩＤ選択回路１４４は、アクセスＩＤテーブル１４２を参照し、要求元ＩＤに対応するアクセスＩＤを選択する（ステップＳ１６２）。次に、選択したアクセスＩＤをマスク値生成回路１１２に出力する（ステップＳ１６４）。以上で、アクセスＩＤ取得処理（ステップＳ１０２）が完了する。
【０１２８】
このように、要求元から直接アクセスＩＤを取得するのにかえて、要求元ＩＤを取得することにより、セキュリティのさらなる向上を図ることができる。例えば、プロセッサバス２２にプロセッサ２０や入出力装置が複数接続されている場合であっても、接続されているこれらの装置のアクセス権限のチェックを行うことができる。
【０１２９】
なお、実施の形態３にかかるアクセス制御システム１のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム１の構成および処理と同様である。
【０１３０】
（実施の形態４）
次に、実施の形態４にかかるアクセス制御システム１について説明する。実施の形態４にかかるアクセス制御システム１は、実施の形態２にかかるアクセスＩＤ管理装置１４０と実施の形態３にかかるアクセスＩＤ管理装置１４０両方の機能を備えている。すなわち、アクセス先のメモリ領域とアクセス要求の要求元の要求元ＩＤの両方の情報に基づいて、アクセスＩＤを決定する。
【０１３１】
図２６は、実施の形態４にかかるアクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。アクセスＩＤテーブル１４２は、要求元ＩＤと、開始アドレスおよび終了アドレスと、アクセスＩＤとを対応付けて保持している。アクセスＩＤ選択回路１４４は、プロセッサ２０から取得したアクセス要求に含まれるアドレス領域を特定し、さらにプロセッサバス２２から要求元ＩＤを取得する。
【０１３２】
図２７は、アクセスＩＤ管理装置１４０の具体的な構成を示す図である。このように、開始アドレス、終了アドレス、要求元ＩＤおよびアクセスＩＤを記録しておき、これらのデータに対する演算を行うことによりアクセスＩＤテーブル１４２およびアクセスＩＤ選択回路１４４を実現する。
【０１３３】
図２８は、実施の形態４にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。アクセスＩＤ選択回路１４４は、プロセッサ２０からアドレスＡを取得する（ステップＳ１７０）。さらに、プロセッサバス２２から要求元ＩＤを取得する（ステップＳ１７２）。次に、アクセスＩＤ選択回路１４４は、アクセスＩＤテーブル１４２を参照し、要求元ＩＤおよびアドレスＡに対応するアクセスＩＤを選択する（ステップＳ１７４）。次に、選択したアクセスＩＤをマスク値生成回路１１２に出力する（ステップＳ１７６）。以上で、アクセスＩＤ取得処理（ステップＳ１０２）が完了する。
【０１３４】
なお、実施の形態４にかかるアクセス制御システム１のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム１の構成および処理と同様である。
【０１３５】
（実施の形態５）
次に、実施の形態５にかかるアクセス制御システム１について説明する。実施の形態５にかかるアクセス制御装置１０におけるランダムマスク生成処理が他の実施の形態にかかるアクセス制御装置１０における処理と異なっている。
【０１３６】
図２９は、実施の形態５にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。データマスク生成回路１３０は、データマスク生成情報特定回路１３０１と、データマスク生成情報テーブル１３０２と、ＬＦＳＲ（リニア・フィードバック・シフト・レジスタ）遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃとを有している。
【０１３７】
図３０は、データマスク生成情報テーブル１３０２のデータ構成を模式的に示す図である。データマスク生成情報テーブル１３０２は、アクセスＩＤに対応付けて、このアクセスＩＤからデータマスク値を生成する際に利用するデータマスク生成情報、すなわち各種パラメータを記録している。パラメータとしては、各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃに入力するパラメータである特性多項式の係数、遅延係数、初期マスクなどがある。なお、実施の形態５にかかる各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃは、初期マスクは利用しないので、このデータは記録していなくてもよい。
【０１３８】
再び説明を図２９に戻す。データマスク生成情報特定回路１３０１は、アクセスＩＤレジスタ１１０またはアクセスＩＤ管理回路１４０からアクセスＩＤを取得すると、データマスク生成情報テーブル１３０２を参照し、取得したアクセスＩＤに対応付けられているデータマスク生成情報、すなわち各種パラメータを特定する。
【０１３９】
各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃには、データマスク生成情報特定回路１３０１により特定されたそれぞれのパラメータが入力される。さらに、各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃには、アクセスすべきメモリ４０のアドレスが入力される。各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃは、取得した各データに基づいて、データマスクを計算する。
【０１４０】
一般に、原始多項式を特性多項式とするＬＦＳＲが生成する系列はＭ系列と呼ばれ、擬似乱数として良い性質を備えていることが広く知られている。そこで、本実施の形態においては、ある特性多項式に対応するＬＦＳＲで、その初期状態としてアクセスしたいメモリ４０のアドレスを設定し、その状態から、アクセスIＤに対応する決まったステップだけシフトを進めた時の内部状態を、データマスクとして利用する。
【０１４１】
本実施の形態においては、アドレスは２４ビットと仮定し、３つの２４次の原始多項式を特性多項式とする２４段のＬＦＳＲを３つ有している。２４段のＬＦＳＲの内部状態は２４ビットある。したがって、３つのＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃからは最大７２ビットのマスクを取り出すことができる。ただし、本実施の形態において必要なのは６４ビットなので、ＬＦＳＲ遅延計算回路１３０３ａからは２２ビット、残りのＬＦＳＲ遅延計算回路１３０３ｂ，１３０３ｃからは２１ビットずつ取り出す。
【０１４２】
そして、各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃの初期状態にアドレスを設定し、アクセスIＤから決まる遅延係数に対応したステップだけＬＦＳＲを進めた時の内部状態「Ｍｘ」を取り出す。そして、これらの値をあわせてデータマスクとして出力する。なお、３つのＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃから取り出した値をデータマスクとする際の信号線の並べ方は特に制限されるものではない。
【０１４３】
ＬＦＳＲ遅延計算回路１３０３ａの処理についてさらに詳述する。なお、他のＬＦＳＲ遅延計算回路１３０３ｂ，１３０３ｃについても同様である。ＬＦＳＲの特性多項式を（式７）で表す。
ｆ（ｘ）＝Ａ0ｘ0＋Ａ1x1＋Ａ2x2+・・・＋Ａ24ｘ24      ・・・（式７）
この場合、このＬＦＳＲでｄステップ後に出力される値を計算するためには、まずｘdをｆ（ｘ）で割った時の余りｇ（ｘ）を求める。ｇ（ｘ）は、（式８）で表される。
ｇ（ｘ）＝Ｂ0ｘ0＋Ｂ1ｘ1+Ｂ2ｘ2+・・・+Ｂ23ｘ23      ・・・（式８）
このｇ（ｘ）の係数である（Ｂ0，Ｂ1，  ・・・  Ｂ23）と、ＬＦＳＲの内部状態（シフトレジスタの各段の値のベクトル）との積和を計算することにより、その内部状態からｄステップ後に出てくる１ビットの値が得られる。このＢ0，Ｂ1，  ・・・  Ｂ23を遅延係数と呼ぶ。
【０１４４】
データマスク生成情報テーブル１３０２には、特性多項式の係数Ａ0，Ａ1,・・・  Ａn-1と、遅延係数Ｂ0，Ｂ1，  ・・・  Ｂn-1と、初期値となる内部状態Ｓ0，Ｓ1，  ・・・  Ｓn-1とが保持されている。なお、特性多項式の係数の最上位のＡnは必ず１であることが自明なので予め保持しておく必要はない。
【０１４５】
ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃは、これらの初期値から遅延係数Ｂ0，Ｂ1，  ・・・  Ｂn-1で決まるステップ後の値Ｍ0，Ｍ1，  ・・・  Ｍm-1を出力する。本実施の形態においてはｎは２４である。また、ｍの値は、ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃごとに異なる。すなわち、ＬＦＳＲ遅延計算回路１３０３ｂ，１３０３ｃは、２１ビット取り出す回路なのでｍは２１である。ＬＦＳＲ遅延計算回路１３０３ａは、２２ビット取り出す回路なのでｍは２２である。
【０１４６】
図３１は、ＬＦＳＲ遅延計算回路１３０３ａのより具体的な構成を示す図である。なお、他のＬＦＳＲ遅延計算回路１３０３ｂ，１３０３ｃの構成はＬＦＳＲ遅延計算回路１３０３ａと同様である。図３２は、ＬＦＳＲ遅延計算回路１３０３ａに含まれる回路２００の詳細図である。また、図３３は、ＬＦＳＲ遅延計算回路１３０３ａに含まれる回路２０２の詳細図である。
【０１４７】
図３２に示す回路２００からなるＬＦＳＲ遅延計算回路１３０３ａの１段目の回路は、遅延係数Ｂで決まる遅延後のビットＭを計算する。より具体的には、遅延係数Ｂ0，Ｂ1，  ・・・  Ｂn-1と初期値Ｓ0，Ｓ1，  ・・・  Ｓn-1の積和を計算してＭ0として出力する。
【０１４８】
図３３に示す回路２０２からなるＬＦＳＲ遅延計算回路１３０３ａの２段目以降の回路は、さらに１ステップ先の遅延後のビットを計算する。より具体的には、上段の遅延係数と特性多項式から、この段の遅延係数を計算するとともに、その遅延係数と初期値の積和を計算して出力する。
【０１４９】
上段の遅延係数からこの段の遅延係数を求める計算は次のように行う。すなわち、ｇ（ｘ）がｄステップの遅延係数を表すとき、ｇ（ｘ）・ｘをｆ（ｘ）で割ったあまりｇ’（ｘ）がｄ＋１ステップの遅延係数を表す。この関係を利用して、上段の遅延係数を1ビットシフトして、その最高次の係数が１であればｆ（ｘ）よりも大きいことを示しているのでｆ（ｘ）で割ると、その段の遅延係数が求められる。なお、ｆ（ｘ）で割る際には、ｆ（ｘ）の係数との排他的論理和をとればよい。
【０１５０】
なお、データマスク生成情報テーブル１３０２が各アクセスIＤに対応付けて記憶する遅延係数は、アクセスIＤ毎に異なる値であるのが望ましい。また、各々のアクセスIＤに対応する複数の遅延係数同士も異なる値であるのが望ましい。
【０１５１】
各アクセスIＤに対応付けられている遅延係数は、アクセスIＤ作成時に乱数等を用いて決定するのが望ましい。このとき、乱数等によって遅延ステップ数ｄを求め、それに対応する遅延係数を計算するのが望ましい。また他の例としては、乱数の値をそのまま遅延係数として用いるようにしてもよい。
【０１５２】
なお、実施の形態５にかかるアクセス制御システム１のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム１の構成および処理と同様である。
【０１５３】
実施の形態５にかかるアクセス制御システム１の変更例について説明する。本実施の形態においては、特性多項式はアクセスＩＤに基づいて決定されるが、これにかえて使用する特性多項式を予め設定してもよい。すなわち、特性多項式を固定としてもよい。各ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃが利用する特性多項式は、同じものであってもよく、異なるものであってもよい。
【０１５４】
その場合、データマスク生成情報テーブル１３０２は、特性多項式の係数を記録しなくてよい。さらに、図３１等を参照しつつ説明したＬＦＳＲ遅延計算回路１３０３ａもより簡単な回路として実現することができる。
【０１５５】
（実施の形態６）
次に、実施の形態６にかかるアクセス制御システム１について説明する。実施の形態６にかかるアクセス制御システム１は、実施の形態５にかかるアクセス制御システム１とほぼ同様であるが、データマスク生成回路１３０における処理が異なっている。
【０１５６】
図３４は、実施の形態６にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。実施の形態６にかかるデータマスク生成回路１３０は、データマスク生成情報特定回路１３０１と、データマスク生成情報テーブル１３０２と、ＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃ，１３０３ｄ，１３０３ｅ，１３０３ｆと、排他的論理和回路１３０４ａ，１３０４ｂ，１３０４ｃとを有している。
【０１５７】
実施の形態６にかかるデータマスク生成回路１３０は、２つのＬＦＳＲ遅延計算回路１３０３を組にし、それぞれのＬＦＳＲ遅延計算回路１３０３から出力された値の排他的論理和をデータマスクとして利用する。
【０１５８】
例えば、ＬＦＳＲ遅延計算回路１３０３ａとＬＦＳＲ遅延計算回路１３０３ｂを組にする。そして、排他的論理和回路１３０４ａは、ＬＦＳＲ遅延計算回路１３０３ａから出力される値Ｍと、ＬＦＳＲ遅延計算回路１３０３ｂから出力される値Ｍとの排他的論理和を計算する。ＬＦＳＲ遅延計算回路１３０３ｃとＬＦＳＲ遅延計算回路１３０３ｄの組と、排他的論理和回路１３０４ｂについても同様である。また、ＬＦＳＲ遅延計算回路１３０３ｅとＬＦＳＲ遅延計算回路１３０３ｆの組と、排他的論理和回路１３０４ｃについても同様である。
【０１５９】
このように、実施の形態６にかかるデータマスク生成回路１３０は、ＬＦＳＲ遅延計算回路を単独で使うのではなく、２つのＬＦＳＲ遅延計算回路を組にし、それぞれの出力の排他的論理和を求める。これにより、データマスク生成回路１３０から出力されるデータマスクのランダム性をより高めることができる。
【０１６０】
なお、実施の形態６にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態５にかかるアクセス制御システム１の構成および処理と同様である。
【０１６１】
実施の形態６の変更例としては、本実施の形態においては、２つのＬＦＳＲ遅延計算回路の出力値の排他的論理和を算出することとしたが、３つ以上のＬＦＳＲ遅延計算回路を組にし、これらの出力値の排他的論理和をデータマスクとしてもよい。さらに、ＬＦＳＲ遅延計算回路の２つの組とＬＦＳＲ遅延計算回路の３つの組とを並存させてもよい。
【０１６２】
（実施の形態７）
次に、実施の形態７にかかるアクセス制御システム１について説明する。実施の形態７にかかるアクセス制御システム１は、実施の形態５にかかるアクセス制御システム１とほぼ同様であるが、データマスク生成回路１３０における処理が異なっている。
【０１６３】
図３５は、実施の形態７にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。実施の形態７にかかるデータマスク生成回路１３０は、さらにゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃとアドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃとを有している。
【０１６４】
実施の形態７にかかるＬＦＳＲ遅延計算回路１３０３ａ，１３０３ｂ，１３０３ｃは、アドレス自体を直接の入力とするのではなく、それぞれゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃおよびアドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃを介してゼロシフトおよびアドレス拡散されたアドレスを入力とする。
【０１６５】
ゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃの処理は同様であり、また、アドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃの処理は同様であるので、以下、ゼロシフト回路１３０５ａおよびアドレス拡散回路１３０６ａについて説明する。
【０１６６】
ゼロシフト回路１３０５ａは、ゼロのアドレスをゼロ以外に変換する。ＬＦＳＲ遅延計算回路１３０３ａは、アドレスがゼロの場合には、常にゼロを出力する。したがって、アドレスがゼロの場合には、ＬＦＳＲ遅延計算回路１３０３ａの処理を施してもアドレス自体が出力されてしまい好ましくない。そこで、ゼロシフト回路１３０５ａは、ゼロをゼロ以外の値に変換する。
【０１６７】
具体的には、例えば入力されたアドレスに対して初期マスクを加算したものを出力する。初期マスクは、データマスク生成情報テーブル１３０２に記録されており、データマスク生成情報特定回路１３０１が読み出し、各ゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃに送る。
【０１６８】
また、他の例としては、入力されたアドレスに対して初期マスクとの排他的論理和をとったものを出力してもよい。
【０１６９】
アドレス拡散回路１３０６ａは、値の近いアドレス同士がより離れたアドレスになるようアドレスを変換する。入力されるアドレスが連続する場合に、連続する２つのアドレスを比べたときに異なる値のビット位置が１つである確率が高い。このため、隣り合うアドレスのマスク値に相関関係が生じる可能性があり、好ましくない。そこで、このような相関関係が生じるのを防ぐために、隣り合うアドレスをより離れたアドレスに変換する。
【０１７０】
図３６は、アドレス拡散回路１３０６ａの具体的な構成例を示す図である。アドレス拡散回路１３０６ａは、拡散マスクメモリ１３０７ａを有している。拡散マスクメモリ１３０７ａには、予めアドレスの拡散パターンが記録されている。そして、アドレス拡散回路１３０６ａにアドレスが入力されると、そのアドレスの下位のビットを使って拡散マスクメモリ１３０７ａを引き、その値とアドレスの上位の排他的論理和を計算する。これにより、連続するアドレスが入力されても、離れたアドレスに変換されて出力される。
【０１７１】
なお、実施の形態７にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態５にかかるアクセス制御システム１の構成および処理と同様である。
【０１７２】
実施の形態７にかかるデータマスク生成回路１３０の第１の変更例について説明する。図３７は、第１の変更例にかかるアドレス拡散回路１３０６ａの具体的な構成を示す図である。第１の変更例にかかるアドレス拡散回路１３０６ａは、デコーダ１３０８ａを有している。デコーダ１３０８ａは、アドレスの下位ビットから上位のアドレスをひとつ選択して、その選択したアドレスの値を排他的論理和で反転させるものである。この場合にも、実施の形態７にかかるアドレス拡散回路１３０６ａと同様に、隣接するアドレスをより離れたアドレスに変換することができる。
【０１７３】
第２の変更例としては、実施の形態７にかかるアクセス制御システム１におけるデータマスク生成回路１３０は、ゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃとアドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃの両方を有していたが、これらのうちいずれか一方のみを有することとしてもよい。
【０１７４】
図３８は、ゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃのみを有するデータマスク生成回路１３０のブロック図である。また、図３９は、アドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃのみを有するデータマスク生成回路１３０のブロック図である。
【０１７５】
図４０は、第３の変更例にかかるデータマスク生成回路１３０を示すブロック図である。本例にかかるデータマスク生成回路１３０は、実施の形態７にかかるデータマスク生成回路１３０を実施の形態６にかかるデータマスク生成回路１３０に適用したものである。このように２つ１組として利用するＬＦＳＲ遅延計算回路１３０３それぞれに対しゼロシフト回路１３０５およびアドレス拡散回路１３０６を設けてもよい。
【０１７６】
また、この場合も上述のようにゼロシフト回路１３０５のみを有することとしてもよい。また、他の例としては、アドレス拡散回路１３０６のみを有することとしてもよい。
【０１７７】
図４１は、第４の変更例にかかるデータマスク生成回路１３０のブロック図である。図４１に示すデータマスク生成回路１３０は、図４０に示すデータマスク生成回路１３０の構成と同様に２つのＬＦＳＲ遅延計算回路１３０３を１組として利用するものである。そして、さらに、組となっている２つのＬＦＳＲ遅延計算回路１３０３のうち一方側にゼロシフト回路１３０５を設け、他方側にアドレス拡散回路１３０６を設けている。このように、ＬＦＳＲ遅延計算回路１３０３毎にゼロシフト回路１３０５およびアドレス拡散回路１３０６の有無を異ならせてもよい。
【０１７８】
図４２は、第５の変更例にかかるデータマスク生成回路１３０のブロック図である。図４２に示すデータマスク生成回路１３０は、図４０に示すデータマスク生成回路１３０の構成と同様に２つのＬＦＳＲ遅延計算回路１３０３を１組として利用するものである。そして、さらに組となっている２つのＬＦＳＲ遅延計算回路１３０３のうち一方側にゼロシフト回路１３０５とアドレス拡散回路１３０６を設け、他方側にアドレス拡散回路１３０６のみを設けている。なお、ゼロシフト回路とアドレス拡散回路の組み合わせ方はこれらに限定されるものではなく、様々に組み合わせることができる。
【０１７９】
（実施の形態８）
次に実施の形態８にかかるアクセス制御システム１について説明する。図４３は、実施の形態８にかかるアクセス制御装置１０の機能構成を示すブロック図である。実施の形態８にかかるアクセス制御装置１０は、アドレス変換装置１５０をさらに備えている。この点で他の実施の形態にかかるアクセス制御装置１０と異なっている。
【０１８０】
アドレス変換装置１５０は、プロセッサ２０から取得したアドレスを変換する。マスク値生成回路１１２は、アドレス変換装置１５０により変換された後のアドレスを取得する。そして、このアドレスに基づいて、マスク値を生成する。
【０１８１】
このように、実施の形態８にかかるアクセス制御装置１０においては、マスク値生成回路１１２は、アドレス変換後のアドレスに基づいてマスク値を生成するので、プロセッサ２０から取得したアドレスに基づいてマスク値を生成した場合に比べて、プロセッサ２０から取得したアドレスとの相関の小さいマスク値を生成することができる。
【０１８２】
図４４は、アドレス変換装置１５０の具体的な構成を示す図である。アドレス変換装置１５０は、アドレス変換メモリ１５１を有している。アドレス変換メモリ１５１の中にはどのアドレスをどのアドレスに変換するかの対応表が記録されている。そして、入力されたアドレスの下位のビットを変換して出力する。
【０１８３】
アドレス変換メモリ１５１に記録されている対応表はアクセスIＤ毎に違えるのが望ましい。アクセスＩＤ毎の対応表は、マスク値生成回路１１２に保持させておく。より詳しくは、データマスク生成情報テーブル１３０２に保持させておく。そして、アクセスＩＤの切り替え時にアドレス変換メモリ１５１に書き込むこととする。
【０１８４】
なお、実施の形態８にかかるアクセス制御システム１のこれ以外の構成および処理は、他の実施の形態にかかるアクセス制御システム１の構成および処理と同様である。
【０１８５】
図４５は、実施の形態８の第１の変更例にかかるアドレス変換装置１５０の構成を示す図である。第１の変更例にかかるアドレス変換装置１５０は、アドレスの中程のビットとアドレスの下位のビットの排他的論理和を計算する。本例にかかるアドレス変換装置１５０は、こうしてアドレス変換された後のアドレスを出力する。これにより、アドレス変換メモリによる下位ビットの変換のパターンを増やすことができる。
【０１８６】
図４６は、実施の形態８の第２の変更例にかかるアドレス変換装置１５０の構成を示す図である。このように、図４５に示す場合に比べて、アドレスのより上位のビットと下位のビットとの排他的論理和を計算してもよい。
【０１８７】
図４７は、実施の形態８の第３の変更例にかかるアドレス変換装置１５０の構成を示す図である。このように、アドレスの中程のビットとアドレスの下位のビットと排他的論理和を計算し、この計算結果とアドレスの上位のビットとの排他的論理和を計算してもよい。
【０１８８】
以上、実施の形態１から実施の形態８におけるアクセス制御システム１について説明したが、実施の形態に特徴的なアクセス制御装置１０は、以下に示すような他のシステムに適用されてもよい。
【０１８９】
図４８は、第１の変更例にかかるアクセス制御システム１の全体構成を示す図である。第１の変更例にかかるアクセス制御システム１は、実施の形態にかかるアクセス制御システム１と同様に、アクセス制御装置１０を備えている。
【０１９０】
第１の変更例にかかるアクセス制御システム１においては、アクセス権限に関する情報をプロセッサ２０がアクセス制御装置１０に対して設定する。アクセス制御システム１は、このための専用線２４をさらに備えている。
【０１９１】
このようにアクセス権限に関する情報は、専用線を介して入出力することにより、不正アクセスを防止することができる。
【０１９２】
図４９は、第２の変更例にかかるアクセス制御システム１の全体構成を示す図である。第２の変更例にかかるアクセス制御システム１は、複数のプロセッサ２０ａ，２０ｂを備えている。この場合、各プロセッサ２０ａ，２０ｂがメモリ４０へのアクセスの要求元となってもよい。そして、アクセス制御装置１０は、各プロセッサ単位でメモリ４０へのアクセスを制御してもよい。すなわち、アクセスＩＤは、各プロセッサ毎に割り当てられる。さらに、各プロセッサのアクセスすべきメモリ領域単位に割り当てられる。
【０１９３】
図５０は、第３の変更例にかかるアクセス制御システム１の全体構成を示す図である。第３の変更例にかかるアクセス制御システム１は、プロセッサ２０がメモリコントローラ３０を内蔵している。そして、プロセッサ２０は、アクセス制御装置１０を介してメモリ４０と接続している。
【０１９４】
図５１は、第４の変更例にかかるアクセス制御システム１の全体構成を示す図である。第４の変更例にかかるアクセス制御システム１は、プロセッサ２０がメモリコントローラ３０とアクセス制御装置１０とを内蔵している。そして、プロセッサ２０とメモリ４０とが直接接続している。
【０１９５】
図５２は、第５の変更例にかかるアクセス制御システム１の全体構成を示す図である。第５の変更例にかかるアクセス制御システム１は、プロセッサ２０と、メモリ４０と、ブリッジ３２と周辺機器６０ａ，６０ｂ，６０ｃとを備えている。
【０１９６】
ブリッジ３２は、プロセッサバス２２に接続されており、メモリコントローラ３０およびアクセス制御装置１０を有している。例えば、ブリッジ３２がペリフェラルバス３４に接続されている周辺機器のコントローラを内蔵しているような場合には、このように、ブリッジ３２にアクセス制御装置１０を組み込むことができる。さらに、他の例としては、アクセス制御装置１０は、ブリッジ３２とメモリ４０の間に設けられてもよい。
【０１９７】
図５３は、第６の変更例にかかるアクセス制御システム１の全体構成を示す図である。第６の変更例にかかるアクセス制御システム１は、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）として形成されている。アクセス制御装置１０は、図５３に示すように、プロセッサ２０と高速内部バス７６で接続されているメモリコントローラ３０とともに、システムＬＳＩ内に実装されている。
【０１９８】
図５４は、第７の変更例にかかるアクセス制御システム１の全体構成を示す図である。第７の変更例にかかるアクセス制御システム１は、第６の変更例にかかるアクセス制御システム１と同様システムＬＳＩとして形成されている。さらに、第７の変更例にかかるアクセス制御システム１においては、プロセッサ２０からアクセス制御装置１０にアクセス権限に関する情報を設定するための専用線７８が設けられている。これにより、プロセッサ２０は、高速内部バス７６からアクセス制御装置１０に直接アクセスすることができる。
【０１９９】
また、他の例としては、メモリコントローラとアクセス制御回路を一体の回路として実装してもよい。
【０２００】
（実施の形態９）
次に、実施の形態９にかかるアクセス制御システム１について説明する。実施の形態９にかかるアクセス制御システム１は、キャッシュメモリへのアクセス制御を行う。図５５は、実施の形態９にかかるアクセス制御システム１の全体構成を示す図である。アクセス制御システム１は、複数のプロセッサ２０ａ〜２０ｃと、ビデオコントローラ２１と、メモリ４０と、キャッシュメモリを有するアクセス制御装置５０とを備えている。
【０２０１】
アクセス制御装置５０は、プロセッサバス２２およびメモリバス４２に接続しており、プロセッサバス２２を介して接続された複数のプロセッサ２０ａ〜２０ｃおよびビデオコントローラ２１からキャッシュメモリへのアクセスを制御する。さらに、必要に応じてメモリ４０へのデータの書き込みおよびメモリ４０からのデータの読み出しをプロセッサ２０ａ等に変わって行う。すなわち、他の実施の形態にかかるメモリコントローラ３０の機能も有している。
【０２０２】
実施の形態９にかかるアクセス制御システム１のように複数のプロセッサや、ビデオコントローラ２１のような入出力装置を備えている場合には、これらが共有するキャッシュメモリを利用することにより、メモリアクセスの高速化を図ることができる。
【０２０３】
図５６は、アクセス制御装置５０の詳細な機能構成を示すブロック図である。アクセス制御装置５０は、プロセッサ側キャッシュ制御回路５２と、キャッシュメモリ５４と、メモリ側キャッシュ制御回路５６とを有している。プロセッサ側キャッシュ制御回路５２は、プロセッサからの指示に基づいて、キャッシュメモリ５４へのデータの書き込みおよびキャッシュメモリ５４からのデータの読み出しを行う。キャッシュメモリ５４は、データとメモリアドレス等を対応付けて一時的に保持する。
【０２０４】
メモリ側キャッシュ制御回路５６は、プロセッサ側キャッシュ制御回路５２からの指示に基づいて、メモリ４０へのデータの書き込みおよびメモリ４０からのデータの読み出しを行う。
【０２０５】
図５７は、プロセッサ側キャッシュ制御回路５２の詳細な機能構成を示すブロック図である。プロセッサ側キャッシュ制御回路５２は、アクセスＩＤ管理回路１４０と、アクセスＩＤチェック回路５２２と、シーケンスコントローラ５２４とを有している。
【０２０６】
アクセスＩＤ管理回路１４０の機能構成は、実施の形態２において図１９を参照しつつ説明したアクセスＩＤ管理回路１４０の機能構成と同様であり、アドレスに基づいて、アクセスＩＤを特定する。アクセスＩＤチェック回路５２２は、アクセスＩＤ管理回路１４０により特定されたアクセスＩＤと、キャッシュメモリ５４に格納されているアクセスＩＤとが一致するか否かを比較する。シーケンスコントローラ５２４は、プロセッサ側キャッシュ制御回路５２全体の動きを制御する。
【０２０７】
図５８は、キャッシュメモリ５４の詳細な機能構成を示すブロック図である。キャッシュメモリ５４は、過去にアクセスしたデータを格納するデータ領域５４４と、メモリ４０におけるデータのアドレスを格納するタグ格納領域５４２と、データにアクセス可能なアクセスＩＤを格納するアクセスＩＤ格納領域５４６とを有する。各領域において、アドレス、データおよびアクセスＩＤが対応付けて格納されている。
【０２０８】
キャッシュメモリ５４にデータが格納されている場合には、次に同じアドレスへのアクセスが要求された場合には、このアドレスに対応付けてデータ領域５４４に格納されているデータを返すことにより、メモリ４０へのアクセスによる遅延を低減することができる。なお、キャッシュメモリ５４には、ダイレクトマッピングやセットアソシアティブなどさまざまな方式があるが、方式は特に限定されるものではなく、いずれの方式を適用してもよい。
【０２０９】
図５９は、メモリ側キャッシュ制御回路５６の詳細な機能構成を示すブロック図である。メモリ側キャッシュ制御回路５６は、パリティ生成回路１００と、第１排他的論理和回路１０２と、マスク値生成回路１１２と、第２排他的論理和回路１１４と、シンドローム計算回路１２０と、誤り訂正回路１２２と、シーケンスコントローラ５６２とを有している。
【０２１０】
シーケンスコントローラ５６２は、メモリ側キャッシュ制御回路５６全体の動きを制御する。なお、パリティ生成回路１００、第１排他的論理和回路１０２、マスク値生成回路１１２、第２排他的論理和回路１１４、シンドローム計算回路１２０および誤り訂正回路１２２の機能構成は、それぞれ実施の形態１にかかるパリティ生成回路１００、第１排他的論理和回路１０２、マスク値生成回路１１２、第２排他的論理和回路１１４、シンドローム計算回路１２０および誤り訂正回路１２２の機能構成と同様である。
【０２１１】
ただし、実施の形態９にかかるメモリ側キャッシュ制御回路５６においては、メモリ４０から読み出されたデータは、対応するアクセスＩＤとともにキャッシュメモリ５４に格納される。また、メモリ４０にデータを書き込む場合には、キャッシュメモリ５４からデータを取得する。
【０２１２】
図６０は、実施の形態９にかかるアクセス制御システム１におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。まず、プロセッサ側キャッシュ制御回路５２のアクセスＩＤ管理回路１４０は、プロセッサ２０に書き込む権限があるか否かをチェックする（ステップＳ３００）。具体的には、プロセッサ２０からアクセスＩＤと書き込み先のアドレスとを取得する。そして、取得したアクセスＩＤとアドレスとがアクセスＩＤテーブル１４２において、対応付けられているか否かを判断する。
【０２１３】
対応付けられている場合には書き込み権限があると判断する。書き込み権限がない場合には（ステップＳ３００，Ｎｏ）、プロセッサ２０に対してエラーを通知し（ステップＳ３０４）、処理が完了する。
【０２１４】
一方、書き込み権限がある場合には（ステップＳ３００，Ｙｅｓ）、キャッシュメモリ５４にプロセッサ２０から取得したデータと、アクセスＩＤとを対応付けて書き込む（ステップＳ３０２）。
【０２１５】
次に、シーケンスコントローラ５２４は、メモリ側キャッシュ制御回路５６に対してデータの書き込み指示を出す（ステップＳ３１０）。具体的には、制御信号により指示を出す。メモリ側キャッシュ制御回路５６のシーケンスコントローラ５６２は、書き込み指示を受け取ると、キャッシュメモリ５４に対し、データとアクセスＩＤの読み出しを指示し、キャッシュメモリ５４からデータとアクセスＩＤとを取得する（ステップＳ３２０）。
【０２１６】
次に、マスク値生成回路１１２に対し、格納先のアドレスとアクセスＩＤを渡しマスク値生成を指示する（ステップＳ３２２）。マスク値生成回路１１２は、この指示にしたがいアドレスとアクセスＩＤに基づいて、マスク値を生成する。次に、シーケンスコントローラ５６２は、メモリ４０にデータの書き込みを指示する（ステップＳ３２４）。この指示にしたがい、排他的論理和回路１０２および排他的論理和回路１１４などの処理により、パリティが付加され、マスク値との排他的論理和をとることにより得られた第１演算後データがプロセッサ２０により指定されたアドレスに書き込まれる。
【０２１７】
メモリ４０へのデータの書き込みが完了すると、シーケンスコントローラ５６２は、プロセッサ側キャッシュ制御回路５２に対して、データの書き込みが完了した旨を通知する（ステップＳ３２６）。以上で、書き込み処理が完了する。
【０２１８】
なお、ライトスルー方式を用いる場合にはキャッシュ５４からメモリ４０への書き込みが完了してからプロセッサ２０に制御を渡すのが望ましい。ライトバック方式を用いる場合には、キャッシュ５４からメモリ４０への書き込みの完了を待たずにプロセッサ２０に制御を渡すのが望ましい。
【０２１９】
なお、他の例としては、アクセスＩＤテーブル１４２において書き込みが許可されるアクセスＩＤと読み出しが許可されるアクセスＩＤのそれぞれを、アドレスに対応付けてもよい。これにより、読み出しと書き込みで制限が異なる場合にも対応することができる。
【０２２０】
図６１は、実施の形態９にかかるアクセス制御システム１におけるアクセス制御処理に含まれる読み出し処理を示すフローチャートである。プロセッサ側キャッシュ制御回路５２のシーケンスコントローラ５２４は、プロセッサ２０からデータの読み出し要求を取得すると、まずキャッシュメモリ５４に該当するデータが格納されているか否かを確認する（ステップＳ４００）。キャッシュメモリ５４にデータが格納されている場合には（ステップＳ４００，Ｙｅｓ）、アクセスＩＤチェック回路５２２は、プロセッサ２０から取得したアクセスＩＤが正しいか否か、すなわちアクセス権限があるか否かをさらに確認する（ステップＳ４０２）。
【０２２１】
そして、アクセスＩＤが正しい場合には（ステップＳ４０２，Ｙｅｓ）、キャッシュメモリ５４から該当するデータを読み出し、プロセッサ２０に渡す（ステップＳ４０４）。一方、アクセスＩＤが正しくない場合には（ステップＳ４０２，Ｎｏ）、プロセッサ２０に対し、エラーを通知する（ステップＳ４０６）。
【０２２２】
なお、アクセスＩＤが正しいか否かは、キャッシュメモリ５４において該当するデータに対応付けられているアクセスＩＤと、プロセッサ２０から取得したアクセスＩＤとを比較することにより判断する。アクセスＩＤが一致する場合にはアクセスＩＤが正しいと判断する。
【０２２３】
一方、プロセッサ側キャッシュ制御回路５２にデータが格納されていない場合には（ステップＳ４００，Ｎｏ）、メモリ側キャッシュ制御回路５６に対し、データの読み出しを指示する（ステップＳ４１０）。メモリ側キャッシュ制御回路５６のシーケンスコントローラ５６２は、データの読み出し指示を受け取ると、マスク値生成回路１１２に対して、アドレスとアクセスＩＤを渡し、マスク値生成を指示する（ステップＳ４２０）。この指示にしたがい、マスク値生成回路１１２は、マスク値を生成する。
【０２２４】
次に、メモリ４０に対し、データの読み出しを指示する（ステップＳ４２２）。この指示にしたがい、メモリ４０からデータが読み出される。ここで読み出された第１演算後データは、排他的論理和回路１０２および排他的論理和回路１１４などの処理により元のデータに戻される。
【０２２５】
次に、キャッシュメモリ５４に対し、得られたデータと、アクセスＩＤと、アドレスの書き込みを指示し、キャッシュメモリ５４にデータとアクセスＩＤとアドレスとが格納される（ステップＳ４２４）。すなわち、キャッシュメモリ５４には元のデータが格納される。キャッシュメモリ５４へのデータ等の格納が完了すると、シーケンスコントローラ５６２は、プロセッサ側キャッシュ制御回路５２に対し、データの読み出しが完了した旨を通知する（ステップＳ４２６）。プロセッサ側キャッシュ制御回路５２においては、データの読み出しが完了した旨の通知を受け取ると、ステップＳ４０２へ進む。
【０２２６】
以上のように、実施の形態９にかかるアクセス制御システム１によれば、一旦アクセスされたデータは、キャッシュメモリ５４に格納されるので、以降このデータを読み出す場合には、キャッシュメモリ５４からデータを読み出せばよく処理速度を向上させることができる。さらに、キャッシュメモリ５４からデータを読み出す際には、アクセスＩＤが一致するか否かをチェックするだけなので、メモリ４０からデータを読み出す際の処理に比べて処理速度を向上させることができる。
【０２２７】
なお、実施の形態９にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態１にかかるアクセス制御システム１の構成および処理と同様である。また、実施の形態９にかかるアクセス制御システム１に特徴的なキャッシュメモリを介したデータの読み書きに関する処理を他の実施の形態に適用することもできる。
【０２２８】
（実施の形態１０）
図６２は、実施の形態１０にかかるアクセス制御装置１０の機能構成を示すブロック図である。実施の形態１０にかかるメモリアクセス制御部１０は、実施の形態２にかかるメモリアクセス制御部１０の機能構成に加えてアドレス変換装置１６０を備えており、プロセッサ２０から取得したアドレスを変換し、変換後のアドレスに対してデータアクセスを行う。アドレス変換装置１６０は、マスク値生成回路１１２が保持するアドレス変換情報に基づいて、アドレス変換を行う。
【０２２９】
図６３は、実施の形態１０にかかるマスク値生成回路１１２の詳細な機能構成を示すブロック図である。マスク値生成回路１１２は、データマスク生成回路１３０と、シンドローム生成回路１３２と、パリティ生成回路１３４に加えて、アドレス情報テーブル１３８と、アドレス情報特定部１３９とを有している。アドレス情報特定部１３９は、アドレス情報テーブル１３８を参照しアクセスＩＤに基づいてアドレス変換情報を特定する。
【０２３０】
図６４は、アドレス情報テーブル１３８のデータ構成を模式的に示す図である。アドレス情報テーブル１３８は、アクセスＩＤと、アドレス変換情報とを対応付けている。このように、アクセスＩＤごとにアドレス変換情報を異ならせるのが望ましい。
【０２３１】
アドレス情報特定部１３９は、アクセスＩＤが切り替るごとに、アドレス情報テーブル１３８において切り替え後のアクセスＩＤに対応付けられているアドレス変換情報をアドレス変換装置１６０に渡す。
【０２３２】
なお、アドレス変換装置１６０によるアドレス変換においては、所定のアドレスが常に同じアドレスに変換されることおよび複数のアドレスが同じアドレスに変換されることがないことが必要であり、この条件を満たすような変換であればよく、変換方法は、実施の形態に限定されるものではない。
【０２３３】
図６５は、メモリアドレスを説明するための図である。一般的に、メモリアドレスは、
キャッシュラインのサイズに対応する範囲（ｓ）と、メモリ素子の持つページサイズに対応する範囲（ｒ＋ｓ）と、ページテーブルの管理するページサイズに対応する範囲（ｑ＋ｒ＋ｓ）のそれぞれの範囲をアクセスするのに必要なビット数が定まっている。
【０２３４】
例えば、キャッシュラインのサイズに対応する範囲（ｓ）は、メモリが１ワード６４ビットでキャッシュラインが２５６ビットならば２ビットとなる。また、メモリ素子の持つページサイズに対応する範囲（ｒ＋ｓ）、すなわちバースト転送が可能な範囲は、例えば１２８ワードであれば７ビットとなる。そこで、アドレスの変換をする際には、この関係に基づいた変換を行うことにより、メモリアクセスの速度低下を防ぐことができる。
【０２３５】
例えば、同じキャッシュラインに属するメモリのワードはバースト転送で高速に読み書きできるように、連続したアドレスに変換することが望ましい。このとき、連続していれば、その中での入れ替えを行ってもよい。
【０２３６】
また、メモリ素子の持つページ内のワードは、バースト転送で高速に読み書きできるように、同じページ範囲内の連続したアドレスに変換することが望ましい。このときも、連続していれば、その中での入れ替えを行ってもよい。
【０２３７】
アドレス変換装置１６０は、以上の条件を満たすようなアドレス変換を行う。図６６−１および図６６−２は、アドレス変換装置１６０によるアドレス変換処理を説明するための図である。図６６−１および図６６−２には、メモリアドレスの下位７ビットを示している。アドレス変換装置１６０は、下位７ビットのみを変換する。なお、ここでは４ワードが１キャッシュラインと仮定する。
【０２３８】
図に示すように、４ワードを組として、その組の中はランダムに変換されているが、組としては連続したメモリのアドレスに変換されている。このため、１キャッシュライン中ではランダムなアドレスではあるが、他のキャッシュラインに跨るようなアドレスに変換されることはない。したがって、転送効率が低下するのを避けることができる。
【０２３９】
図６７は、アドレス変換装置１６０の具体的な構成を示す図である。アドレス変換情報がメモリにより構成されるアドレス変換表１６２に格納されている。図６８は、図６６−１および図６６−２に示すアドレス変換を実現するアドレス変換表を示す図である。
【０２４０】
アドレスの下位７ビットの中の上位５ビットでアドレス変換表１６２を引き、出てきた１３ビットの情報のうち、上位の５ビットをアドレスの下位７ビットの中の上位５ビットとする。さらに、残りの８ビットからアドレスの下位２ビットに従って選択した２ビットを、アドレスの下位２ビットにするように変換する。
【０２４１】
図６９は、実施の形態１０にかかるアクセス制御システム１による書き込み処理を示すフローチャートである。実施の形態１０にかかるアクセス制御システム１においては、排他的論理和を計算した後（ステップＳ１０８）、上述のアドレス変換処理を行う（ステップＳ１０９）。そして、変換後のメモリアドレスに対してデータを書き込む（ステップＳ１１０）。
【０２４２】
図７０は、実施の形態１０にかかるアクセス制御システム１による読み出し処理を示すフローチャートである。マスク値を生成した後（ステップＳ１０６）、アドレス変換処理を行う（ステップＳ２０３）。次に、アドレス変換後のメモリアドレスから第１演算後データを読み出す（ステップＳ２０４）。
【０２４３】
なお、実施の形態１０にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態１にかかるアクセス制御システム１の構成および処理と同様である。
【０２４４】
図７１は、実施の形態１０の第１の変更例にかかるアドレス変換装置１６０の具体的な構成を示す図である。本例においては、アドレス変換表１６２を引くのに使う下位のアドレスに対して、上位のアドレスを排他的論理和で重ねることによって、変換のバリエーションを増やしている。これにより、アドレス変換のパターンを推測しにくくすることができる。
【０２４５】
また、実施の形態１０の第２の変更例としては、実施の形態１０においては、アドレス変換情報は、データマスク生成回路１３０に格納されていたが、アドレス変換情報の格納先はこれに限定されるものではない。例えば、実施の形態１０にかかるアドレス変換処理を実施の形態５にかかるアクセス制御システム１に適用する場合には、データマスク生成情報テーブル１３０２にアドレス変換情報を記録してもよい。
【０２４６】
図７２は、第２の変更例にかかるデータマスク生成情報テーブル１３０２のデータ構成を模式的に示す図である。このように、データマスク生成情報テーブル１３０２においてアクセスＩＤに対応付けてアドレス変換情報を記録している。この場合には、データマスク生成情報テーブル１３０２を参照することにより、アクセスＩＤからアドレス変換情報を特定することができる。
【０２４７】
（実施の形態１１）
図７３は、実施の形態１１にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。実施の形態１１にかかるメモリアクセス制御部１０は、実施の形態１０にかかるメモリアクセス制御部１０の機能構成に加えてバースト転送コントローラ１６４と、並べ替えバッファ１６６とを備えている。
【０２４８】
バースト転送コントローラ１６４は、メモリ４０上のアドレス順にバースト転送する際の処理を管理する。並べ替えバッファ１６６は、このとき利用されるバッファである。アドレス変換装置１６０によってキャッシュライン内のワードの順が入れ替えられている場合には、入れ替えられた順にアクセスするとメモリ素子のバースト転送機能を使うことができない。このため転送効率を向上させることができなくなってしまう。そこで、バースト転送コントローラ１６４は、メモリ４０上のアドレス順にバースト転送によってアクセスし、メモリ４０上のアドレス順とアドレス変換装置１６０による変換後の順との並べ替えを、並べ替えバッファ１６６を用いて行う。
【０２４９】
図７４は、並べ替えバッファ１６６の具体的な構成を示す図である。ここでは、１キャッシュラインは２５６ビット、メモリの１ワードは６４ビットで、４ワードで１キャッシュラインを構成する場合の例を示している。
【０２５０】
図７４に示すように、並べ替えバッファ１６６は、１キャッシュライン分の４ワードのレジスタ１〜レジスタ４を備えている。バースト転送コントローラ１６４からの指示により、４つのレジスタうちの指定されたレジスタにプロセッサ２０またはメモリ４０からのデータを書き込む。さらに、４つのレジスタうち指定されたレジスタのデータを読み出して、プロセッサ２０またはメモリ４０に送る。
【０２５１】
図７５は、バースト転送コントローラ１６４がメモリ４０にデータを書き込む処理を示すフローチャートである。バースト転送の指示でない場合には（ステップＳ５００，Ｎｏ）、通常の書き込み処理を行う（ステップＳ５１０）。ここで、通常の書き込み処理とは、実施の形態１０において説明した書き込み処理であり、アドレス変換装置１６０により得られたメモリアドレスにデータを書き込む。
【０２５２】
一方、バースト転送の指示がある場合には（ステップＳ５００，Ｙｅｓ）、まずプロセッサ２０から送られてくるデータ、すなわちメモリ４０に書き込むべきデータを並べ替えバッファ１６６に一時的に書き込む（ステップＳ５０２）。次に、マスク値生成回路１１２内のアドレス情報テーブル１３８からアドレス変換情報を得る（ステップＳ５０４）。次に、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがいバースト転送によりデータをメモリ４０に書き込む（ステップＳ５０６）。以上で処理が完了する。
【０２５３】
図７６は、図７５を参照しつつ説明した書き込み処理をより具体的に説明するための図である。プロセッサ２０がアドレスの下位７ビットが「１０１００００」であるワードから４ワードに、それぞれデータＡ，Ｂ，Ｃ，Ｄを書き込む場合を示している。
【０２５４】
このとき、アドレス「１０１００００」は、図６７に示すアドレス変換装置１６０によりアドレス「０１１００１１」に変換される。同様に、アドレス「１０１０００１」は「０１１００１０」に、「１０１００１０」は「０１１００００」に、「１０１００１１」は「０１１０００１」に変換される。
【０２５５】
この変換後のメモリアドレス順にデータを書き込む場合には、バースト転送を使うことができない。そこで、バースト転送コントローラ１６４は一時的に並べ替えバッファ１６６にデータを記憶する。そして、アドレス変換情報に基づいて、連続アドレスとなるようにデータを並べ替える。図７６に示す例においては、アドレス「０１１００００」にはＣを、「０１１０００１」にはＤを、「０１１００１０」にはＢを、「０１１００１１」にはＡを書き込む。そして、アドレス「０１１００００」からＣ，Ｄ，Ｂ，Ａの順でバースト転送によって書き込みを行う。
【０２５６】
図７７は、バースト転送コントローラ１６４がメモリ４０からデータを読み出す処理を示すフローチャートである。バースト転送の指示でない場合には（ステップＳ５２０，Ｎｏ）、通常の読み出し処理を行う（ステップＳ５３０）。ここで、通常の読み出し処理とは、実施の形態１０において説明した読み出し処理であり、アドレス変換装置１６０により得られたメモリアドレスのデータを順に読み出す。
【０２５７】
一方、バースト転送の指示がある場合には（ステップＳ５２０，Ｙｅｓ）、まず、マスク値生成回路１１２内のアドレス情報テーブル１３８からアドレス変換情報を得る（ステップＳ５２２）。次に、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがい先頭アドレスから４ワードをメモリ４０から読み出し、並べ替えバッファ１６６に一時的に書き込む（ステップＳ５２４）。次に、並べ替えバッファ１６６内のデータを、アドレス変換情報に基づいて変換されたメモリアドレスの順番にしたがいバースト転送でプロセッサ２０に送り返す（ステップＳ５２６）。以上で処理が完了する。
【０２５８】
図７８は、図７７を参照しつつ説明した読み出し処理をより具体的に説明するための図である。プロセッサがアドレスの下位７ビットが「１０１００００」であるワードから４ワードを読み出す場合を示している。
【０２５９】
このとき、アドレス「１０１００００」は、図６７に示すアドレス変換装置１６０によりアドレス「０１１００１１」に変換される。同様に、「１０１０００１」は「０１１００１０」に、「１０１００１０」は「０１１００００」に、「１０１００１１」は「０１１０００１」に変換される。
【０２６０】
バースト転送コントローラ１６４はまず、変換後のアドレスの中で先頭を表す「０１１００００」から４ワードをバースト転送で読み出し、一時的に並べ替えバッファ１６６にデータを記憶する。このときに読み出されたデータを順にＡ，Ｂ，Ｃ，Ｄとする。
【０２６１】
次にバースト転送コントローラ１６４は、アドレス変換情報に基づいて、元のアドレス順にデータを並べ替える。図７８に示す例においては、アドレス「０１１００００」にはＤを、「０１１０００１」にはＣを、「０１１００１０」にはＡを、「０１１００１１」にはＢを読み出す。そして、アドレス「０１１００００」からＤ，Ｃ，Ａ，Ｂの順でバースト転送によってプロセッサに返す。
【０２６２】
以上のように、実施の形態１１にかかるアクセス制御システム１によれば、メモリの実アドレスに変換をかけ、実アドレスとマスク値との間の相関関係をなくすことにより、マスク値が推測される確率を低くすることができる。すなわち、安全性を高めることができる。
【０２６３】
なお、実施の形態１１にかかるアクセス制御システム１のこれ以外の構成および処理は、実施の形態１０にかかるアクセス制御システム１の構成および処理と同様である。
【０２６４】
次に、実施の形態１１にかかるアドレス変換処理の変更例について説明する。本例においては、実施の形態１１にかかるアドレス変換処理を実施の形態９にかかるアクセス制御システム１に適用する。図７９は、本例にかかるメモリ側キャッシュ制御回路５６の機能構成を示すブロック図である。本例にかかるメモリ側キャッシュ制御回路５６は、実施の形態１１にかかるメモリアクセス制御部１０の機能構成に加えて、アドレス変換装置１６０をさらに備えている。
【０２６５】
シーケンスコントローラ５６２は、バースト転送コントローラ１６４と同じ処理をさらに行う。これにより実施の形態９にかかるアクセス制御システム１においても実施の形態１１と同様の処理を行うことができ、同様の効果を得ることができる。
【０２６６】
なお、本例にかかるメモリ側キャッシュ制御回路５６は、並べ替えバッファを有さない。この構成では、バースト転送時のデータを並べ替えバッファ上で並べ替えるのではなく、キャッシュメモリ５４をワード単位でアクセスできるように構成しておく。そして、キャッシュメモリ５４を並べ替えバッファとして用いる。
【０２６７】
（実施の形態１２）
図８０は、実施の形態１２にかかるアクセス制御システム１の全体構成を示す図である。実施の形態１２にかかるアクセス制御システム１においては、メモリアクセス制御部１０およびメモリ４０は同一のバス暗号化装置１７０，４１０を備えている。各バス暗号化装置１７０，４１０は、秘密の鍵を共有する。そして、この秘密の鍵に基づいて生成される乱数によりメモリバス４２上の信号を暗号化する。
【０２６８】
図８１は、メモリアクセス制御部１０の機能構成を示す図である。実施の形態１２にかかるメモリアクセス制御部１０は、実施の形態１にかかるメモリアクセス制御部１０の機能構成に加え、バス暗号化装置１７０を備えている。バス暗号化装置１７０は、制御信号を暗号化する制御信号マスク、メモリアドレスを暗号化するアドレスマスク、データを暗号化するデータマスク、パリティを暗号化するパリティマスクを生成する。そして、それぞれの信号は、マスクされてメモリバス４２に送出される。
【０２６９】
図８２は、バス暗号化装置１７０の詳細な機能構成を示すブロック図である。鍵共有処理回路１７１と、共有鍵記憶部１７２と、初期値計算回路１７３と、乱数発生回路１７４とを有している。
【０２７０】
鍵共有処理回路１７１は、バス暗号化装置１７０，４１０間で秘密の鍵を共有する処理を行う。秘密の鍵を共有する手段はさまざまに実現できる。例えば、アクセス制御システム１の初期化時に最初の鍵を双方に書き込んでおき、以降は定期的にバス暗号化装置１７０，４１０間で新しい鍵を生成して交換するように実施することができる。
【０２７１】
共有鍵記憶部１７２は、秘密の鍵を記憶する。初期値計算回路１７３は、秘密の鍵に基づいて、乱数発生回路１７４の初期値を生成する。秘密の鍵が推測できないように一方向関数などを使うのが望ましい。例えば、秘密の鍵から、ハッシュ関数を使って生成した値を初期値として用いることができる。乱数発生回路１７４は、初期値計算回路１７３により計算された値を初期値として乱数系列を発生する。
【０２７２】
なお、メモリ４０のバス暗号化装置４１０の機能構成は、バス暗号化装置１７０の機能構成と同様である。両者の鍵共有処理回路は、秘密の鍵を共有する。そして、両者の乱数発生回路は、この秘密の鍵に基づいて、同じタイミングで同じ乱数を生成する。こうして生成された乱数を暗号化マスクとし、メモリバス４２上の各信号の送り側と受け側でそれぞれ排他的論理和をとることにより、メモリバス４２上の各信号は乱数によって拡散される。
【０２７３】
このように、アクセス制御装置がアクセス権限のチェックのためにアドレスに対応して生成したマスク値と、バス暗号化装置がアドレスとは無関係に生成したマスク値の両方が排他的論理和で元データに対して重ねられるので、データや２種類のマスク値を推測するのをより困難にすることができ、安全性を高めることができる。
【０２７４】
図８３および図８４は、実施の形態１２にかかるメモリバス４２を流れる信号を説明するための図である。図８３は、バス暗号化装置１７０，４１０によるマスクが施されていない場合の信号例を示す図である。アドレスＡ３４からの読み出し、アドレスＡ３５への書き込み、アドレスＡ３６からの読み出しが順次起こっている。この場合には、対応するメモリアドレス、データおよびパリティがメモリバス４２上を流れる。
【０２７５】
図８４は、バス暗号化装置１７０，４１０によるマスクが施される場合の信号例を示す図である。各バス暗号化装置１７０，４１０は、図に示すように、クロックごとにマスク用の乱数を発生している。メモリバス４２の各信号には、マスク用の乱数の値が排他的論理和で重ねられている。
【０２７６】
実施の形態１２の第１の変更例としては、バス暗号化装置１７０は、初期値計算回路１７３を有さず、秘密の鍵を直接乱数発生回路の初期値として与えてもよい。安全性の観点からは、秘密の鍵が推測できないようにすべく、初期値計算回路１７３において変換された初期値を用いるのが望ましい。
【０２７７】
また、第２の変更例としては、乱数発生回路１７４としてＬＦＳＲを利用してもよい。図８５は、第２の変更例にかかるバス暗号化装置１７０の詳細な機能構成を示すブロック図である。乱数発生回路１７４は、乱数レジスタ１７５と、ＬＦＳＲ遅延計算回路１７６とを有している。
【０２７８】
乱数レジスタ１７５には、現在の状態が記録され、その状態からある決まったステップだけ遅延した状態がＬＦＳＲ遅延計算回路１７６によって計算される。これを次の状態にするとともに、その値を暗号化マスクとして出力する。
【０２７９】
図８６は、第３の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。第３の変更例にかかるメモリアクセス制御部１０は、実施の形態８にかかるメモリアクセス制御部１０の機能構成に加えてバス暗号装置１７０を備えている。
【０２８０】
図８７は、第４の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。第４の変更例にかかるメモリアクセス制御部１０は、実施の形態１０にかかるメモリアクセス制御部１０の機能構成に加えてバス暗号化装置１７０を備えている。
【０２８１】
図８８は、第５の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。第５の変更例にかかるメモリアクセス制御部１０は、実施の形態９にかかるメモリ側キャッシュ制御回路５６の機能構成に加えてバス暗号化装置１７０を備えている。
【０２８２】
以上のように、実施の形態１２にかかるバス暗号化装置１７０を他の形態にかかるアクセス制御システム１に適用してもよい。これにより、他の形態にかかるアクセス制御システム１においても、アクセス制御装置がアクセス権限のチェックのためにアドレスに対応して生成したマスク値と、バス暗号化装置がアドレスとは無関係に生成したマスク値の両方が排他的論理和で元データに対して重ねられるので、データや２種類のマスク値を推測するのをより困難にすることができ、安全性を高めることができる。
【０２８３】
なお、実施の形態９から実施の形態１２にかかるアクセス制御システム１についても、他の実施の形態と同様、実施の形態に特徴的なアクセス制御装置１０は図４８から図５４を参照しつつ説明した他のシステムに適用されてもよい。
【図面の簡単な説明】
【０２８４】
【図１】実施の形態１にかかるアクセス制御システム１の全体構成を示す図である。
【図２】データをメモリ４０に書き込む際の処理を説明するための図である。
【図３】データＤ’を読み出す際の処理を説明するための図である。
【図４】データ長が６４ビットの場合のＨｓｉａｏのＳＥＣ−ＤＥＤ符号の検査行列「Ｈ」の一例を示す図である。
【図５】図４に示す検査行列Ｈに対応する生成行列「Ｇ」を示す図である。
【図６】アクセス制御装置１０の詳細な機能構成を示すブロック図である。
【図７】プロセッサ２０から見たアドレス空間を示す図である。
【図８】マスク値生成回路１１２の詳細な機能構成を示すブロック図である。
【図９】データマスク生成回路１３０の具体的構成を示す図である。
【図１０−１】アクセスＩＤシンドローム生成回路１３２を示す図である。
【図１０−２】アクセスＩＤシンドローム生成回路１３２を示す図である。
【図１１】アクセス制御システム１におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。
【図１２】書き込み処理におけるデータの流れを示す図である。
【図１３】アクセスＩＤ設定処理において利用されるプロセス管理テーブルを示す図である。
【図１４】アクセスＩＤ設定処理における詳細な処理を示すフローチャートである。
【図１５】マスク値生成処理（ステップＳ１０６）におけるマスク値生成回路１１２の詳細な処理を説明するフローチャートである。
【図１６】アクセス制御処理に含まれるメモリ４０からデータを読み出す処理を示すフローチャートである。
【図１７】メモリ４０に書き込まれたデータを読み出す際の処理を説明するための図である。
【図１８】実施の形態２にかかるアクセス制御装置１０の機能構成を示すブロック図である。
【図１９】アクセスＩＤ管理装置１４０の詳細な機能構成を示すブロック図である。
【図２０】アクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。
【図２１】アクセスＩＤ管理装置１４０の具体的な構成を示す図である。
【図２２】実施の形態２にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。
【図２３】実施の形態３にかかるアクセス制御システム１におけるアクセスＩＤ管理装置１４０に含まれるアクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。
【図２４】アクセスＩＤ管理装置１４０の具体的な構成を示す図である。
【図２５】実施の形態３にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。
【図２６】実施の形態４にかかるアクセスＩＤテーブル１４２のデータ構成を模式的に示す図である。
【図２７】アクセスＩＤ管理装置１４０の具体的な構成を示す図である。
【図２８】実施の形態４にかかるアクセス制御システム１におけるアクセスＩＤ取得処理（ステップＳ１０２）における詳細な処理を示すフローチャートである。
【図２９】実施の形態５にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。
【図３０】データマスク生成情報テーブル１３０２のデータ構成を模式的に示す図である。
【図３１】ＬＦＳＲ遅延計算回路１３０３ａのより具体的な構成を示す図である。
【図３２】ＬＦＳＲ遅延計算回路１３０３ａに含まれる回路２００の詳細図である。
【図３３】ＬＦＳＲ遅延計算回路１３０３ａに含まれる回路２０２の詳細図である。
【図３４】実施の形態６にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。
【図３５】実施の形態７にかかるデータマスク生成回路１３０の機能構成を示すブロック図である。
【図３６】アドレス拡散回路１３０６ａの具体的な構成例を示す図である。
【図３７】実施の形態７の第１の変更例にかかるアドレス拡散回路１３０６ａの具体的な構成を示す図である。
【図３８】ゼロシフト回路１３０５ａ，１３０５ｂ，１３０５ｃのみを有するデータマスク生成回路１３０のブロック図である。
【図３９】アドレス拡散回路１３０６ａ，１３０６ｂ，１３０６ｃのみを有するデータマスク生成回路１３０のブロック図である。
【図４０】実施の形態７の第３の変更例にかかるデータマスク生成回路１３０を示すブロック図である。
【図４１】実施の形態７の第４の変更例にかかるデータマスク生成回路１３０のブロック図である。
【図４２】実施の形態７の第５の変更例にかかるデータマスク生成回路１３０のブロック図である。
【図４３】実施の形態８にかかるアクセス制御装置１０の機能構成を示すブロック図である。
【図４４】アドレス変換装置１５０の具体的な構成を示す図である。
【図４５】実施の形態８の第１の変更例にかかるアドレス変換装置１５０の構成を示す図である。
【図４６】実施の形態８の第２の変更例にかかるアドレス変換装置１５０の構成を示す図である。
【図４７】実施の形態８の第３の変更例にかかるアドレス変換装置１５０の構成を示す図である。
【図４８】第１の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図４９】第２の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５０】第３の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５１】第４の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５２】第５の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５３】第６の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５４】第７の変更例にかかるアクセス制御システム１の全体構成を示す図である。
【図５５】実施の形態９にかかるアクセス制御システム１の全体構成を示す図である。
【図５６】アクセス制御装置５０の詳細な機能構成を示すブロック図である。
【図５７】プロセッサ側キャッシュ制御回路５２の詳細な機能構成を示すブロック図である。
【図５８】キャッシュメモリ５４の詳細な機能構成を示すブロック図である。
【図５９】メモリ側キャッシュ制御回路５６の詳細な機能構成を示すブロック図である。
【図６０】実施の形態９にかかるアクセス制御システム１におけるアクセス制御処理に含まれる書き込み処理を示すフローチャートである。
【図６１】実施の形態９にかかるアクセス制御システム１におけるアクセス制御処理に含まれる読み出し処理を示すフローチャートである。
【図６２】実施の形態１０にかかるアクセス制御装置１０の機能構成を示すブロック図である。
【図６３】実施の形態１０にかかるマスク値生成回路１１２の詳細な機能構成を示すブロック図である。
【図６４】アドレス情報テーブル１３８のデータ構成を模式的に示す図である。
【図６５】メモリアドレスを説明するための図である。
【図６６−１】アドレス変換装置１６０によるアドレス変換処理を説明するための図である。
【図６６−２】アドレス変換装置１６０によるアドレス変換処理を説明するための図である。
【図６７】アドレス変換装置１６０の具体的な構成を示す図である。
【図６８】図６６−１および図６６−２に示すアドレス変換を実現するアドレス返還表を示す図である。
【図６９】実施の形態１０にかかるアクセス制御システム１による書き込み処理を示すフローチャートである。
【図７０】実施の形態１０にかかるアクセス制御システム１による読み出し処理を示すフローチャートである。
【図７１】実施の形態１０の第１の変更例にかかるアドレス変換装置１６０の具体的な構成を示す図である。
【図７２】実施の形態１０の第２の変更例にかかるデータマスク生成情報テーブル１３０２のデータ構成を模式的に示す図である。
【図７３】実施の形態１１にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。
【図７４】並べ替えバッファ１６６の具体的な構成を示す図である。
【図７５】バースト転送コントローラ１６４がメモリ４０にデータを書き込む処理を示すフローチャートである。
【図７６】図７５を参照しつつ説明した書き込み処理をより具体的に説明するための図である。
【図７７】バースト転送コントローラ１６４がメモリ４０からデータを読み出す処理を示すフローチャートである。
【図７８】図７７を参照しつつ説明した読み出し処理をより具体的に説明するための図である。
【図７９】実施の形態１１の変更例にかかるメモリ側キャッシュ制御回路５６の機能構成を示すブロック図である
【図８０】実施の形態１２にかかるアクセス制御システム１の全体構成を示す図である。
【図８１】メモリアクセス制御部１０の機能構成を示す図である。
【図８２】バス暗号化装置１７０の詳細な機能構成を示すブロック図である。
【図８３】バス暗号化装置１７０，４１０によるマスクが施されていない場合の信号例を示す図である。
【図８４】バス暗号化装置１７０，４１０によるマスクが施される場合の信号例を示す図である。
【図８５】実施の形態１２の第２の変更例にかかるバス暗号化装置１７０の詳細な機能構成を示すブロック図である。
【図８６】実施の形態１２の第３の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。
【図８７】実施の形態１２の第４の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。
【図８８】実施の形態１２の第５の変更例にかかるメモリアクセス制御部１０の機能構成を示すブロック図である。
【符号の説明】
【０２８５】
１  アクセス制御システム
１０，５０  アクセス制御装置
２０  プロセッサ
２１  ビデオコントローラ
２２  プロセッサバス
２４  専用線
３０  メモリコントローラ
４０  メモリ
４２  メモリバス
３２  ブリッジ
３４  ペリフェラルバス
５２  プロセッサ側キャッシュ制御回路
５４  キャッシュメモリ
５６  メモリ側キャッシュ制御回路
６０ａ，６０ｂ，６０ｃ  周辺機器
７６  高速内部バス
７８  専用線
１００  パリティ生成回路
１０２  排他的論理和回路
１１０  アクセスＩＤレジスタ
１１２  マスク値生成回路
１１４  排他的論理和回路
１２０  シンドローム計算回路
１２２  誤り訂正回路
１３０  データマスク生成回路
１３２  シンドローム生成回路
１３４  パリティ生成回路
１３６  排他的論理和回路
１３８  アドレス情報テーブル
１３９  アドレス情報特定部
１４０  アクセスＩＤ管理回路
１４２  アクセスＩＤテーブル
１４４  アクセスＩＤ選択回路
１５０  アドレス変換装置
１５１  アドレス変換メモリ
１６０  アドレス変換装置
１６２  アドレス変換表
１６４  バースト転送コントローラ
１７１  鍵共有処理回路
１７０，４１０  バス暗号化装置
１７２  共有鍵記憶部
１７３  初期値計算回路
１７４  乱数発生回路
１７５  乱数レジスタ
１７６  ＬＦＳＲ遅延計算回路
２００  回路
２０２  回路
５２２  アクセスＩＤチェック回路
５２４，５６２  シーケンスコントローラ
５４２  タグ格納領域
５４４  データ格納領域
５４６  アクセスＩＤ格納領域
１３０１  データマスク生成情報特定回路
１３０２  データマスク生成情報テーブル
１３０３ａ，１３０３ｂ，１３０３ｃ，１３０３ｄ，１３０３ｅ，１３０３ｆ  ＬＦＳＲ遅延計算回路
１３０４ａ，１３０４ｂ，１３０４ｃ  排他的論理和回路
１３０５ａ，１３０５ｂ，１３０５ｃ  ゼロシフト回路
１３０６ａ，１３０６ｂ，１３０６ｃ  アドレス拡散回路
１３０７ａ  拡散マスクメモリ
１３０８ａ  デコーダ
【図１】
0004498295.tif 000008
【図２】
0004498295.tif 000009
【図３】
0004498295.tif 000010
【図４】
0004498295.tif 000011
【図５】
0004498295.tif 000012
【図６】
0004498295.tif 000013
【図７】
0004498295.tif 000014
【図８】
0004498295.tif 000015
【図９】
0004498295.tif 000016
【図１０−１】
0004498295.tif 000017
【図１０−２】
0004498295.tif 000018
【図１１】
0004498295.tif 000019
【図１２】
0004498295.tif 000020
【図１３】
0004498295.tif 000021
【図１４】
0004498295.tif 000022
【図１５】
0004498295.tif 000023
【図１６】
0004498295.tif 000024
【図１７】
0004498295.tif 000025
【図１８】
0004498295.tif 000026
【図１９】
0004498295.tif 000027
【図２０】
0004498295.tif 000028
【図２１】
0004498295.tif 000029
【図２２】
0004498295.tif 000030
【図２３】
0004498295.tif 000031
【図２４】
0004498295.tif 000032
【図２５】
0004498295.tif 000033
【図２６】
0004498295.tif 000034
【図２７】
0004498295.tif 000035
【図２８】
0004498295.tif 000036
【図２９】
0004498295.tif 000037
【図３０】
0004498295.tif 000038
【図３１】
0004498295.tif 000039
【図３２】
0004498295.tif 000040
【図３３】
0004498295.tif 000041
【図３４】
0004498295.tif 000042
【図３５】
0004498295.tif 000043
【図３６】
0004498295.tif 000044
【図３７】
0004498295.tif 000045
【図３８】
0004498295.tif 000046
【図３９】
0004498295.tif 000047
【図４０】
0004498295.tif 000048
【図４１】
0004498295.tif 000049
【図４２】
0004498295.tif 000050
【図４３】
0004498295.tif 000051
【図４４】
0004498295.tif 000052
【図４５】
0004498295.tif 000053
【図４６】
0004498295.tif 000054
【図４７】
0004498295.tif 000055
【図４８】
0004498295.tif 000056
【図４９】
0004498295.tif 000057
【図５０】
0004498295.tif 000058
【図５１】
0004498295.tif 000059
【図５２】
0004498295.tif 000060
【図５３】
0004498295.tif 000061
【図５４】
0004498295.tif 000062
【図５５】
0004498295.tif 000063
【図５６】
0004498295.tif 000064
【図５７】
0004498295.tif 000065
【図５８】
0004498295.tif 000066
【図５９】
0004498295.tif 000067
【図６０】
0004498295.tif 000068
【図６１】
0004498295.tif 000069
【図６２】
0004498295.tif 000070
【図６３】
0004498295.tif 000071
【図６４】
0004498295.tif 000072
【図６５】
0004498295.tif 000073
【図６６−１】
0004498295.tif 000074
【図６６−２】
0004498295.tif 000075
【図６７】
0004498295.tif 000076
【図６８】
0004498295.tif 000077
【図６９】
0004498295.tif 000078
【図７０】
0004498295.tif 000079
【図７１】
0004498295.tif 000080
【図７２】
0004498295.tif 000081
【図７３】
0004498295.tif 000082
【図７４】
0004498295.tif 000083
【図７５】
0004498295.tif 000084
【図７６】
0004498295.tif 000085
【図７７】
0004498295.tif 000086
【図７８】
0004498295.tif 000087
【図７９】
0004498295.tif 000088
【図８０】
0004498295.tif 000089
【図８１】
0004498295.tif 000090
【図８２】
0004498295.tif 000091
【図８３】
0004498295.tif 000092
【図８４】
0004498295.tif 000093
【図８５】
0004498295.tif 000094
【図８６】
0004498295.tif 000095
【図８７】
0004498295.tif 000096
【図８８】
0004498295.tif 000097