(57)【要約】【課題】  データのセキュリティを向上し、改竄等を抑制することのできるレジスタユニットを提供する。【解決手段】  レジスタユニット２０は、複数のレジスタ１０−０〜１０−ｎと、これらに接続されているビット配置回路１１とから構成されている。ビット配置回路１１は、各レジスタ１０−０〜１０−ｎのレジスタビットアドレスと、演算ユニットから読み出し及び書き込みの指示があるアドレスの指示ビットアドレスとの対応テーブルを記憶している。レジスタユニット２０のビット配置回路１１は、演算ユニットから書き込み指令とそのデータを受信すると、そのデータをビット毎に分離して、対応テーブルの関係になるようにデータを並べ替えた記憶用データを生成し、このデータを対応テーブルに示されたレジスタ１０−０〜１０−ｎのレジスタビットアドレスに記憶する。【選択図】      図１
2005338942.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットから構成されるデータを一時的に記憶するレジスタと、
前記レジスタの各ビットにビットアドレスを付与し、このビットアドレスとレジスタに記憶するデータビットとを対応付けた対応関係テーブルを記憶するビット配置回路とを備えたレジスタユニットであって、
前記ビット配置回路は、
レジスタに対するデータの書き込み指示を受けた場合、このデータをデータビット毎に分解し、前記対応関係テーブルに基づいて特定されるビットアドレスにデータビット毎に書き込み、
レジスタからのデータの読み出し指示を受けた場合、前記対応関係テーブルに基づいてビットアドレスを特定し、前記データビット毎に読み出して再構成したデータを出力することを特徴とするレジスタユニット。
【請求項２】
前記ビット配置回路は、複数の対応関係テーブルを記憶しており、
外部から受けた切換信号に応じて、使用する対応関係テーブルを切り替えることを特徴とする請求項１に記載のレジスタユニット。
【請求項３】
前記ビット配置回路は、前記レジスタに記憶するデータを受信したときに、前記対応関係テーブルを新たに作成し、この対応関係テーブルに基づいてデータの読み出しが完了するまで作成した対応関係テーブルを記憶することを特徴とする請求項１に記載のレジスタユニット。
【請求項４】
複数のレジスタのデータを読み出す指示を受けた場合であって、この指示が各レジスタの重複しない部分のデータビットを読み出す指示の場合には、
前記ビット配置回路は、前記対応関係テーブルに基づいて、必要な部分のデータビットを抽出して生成した合成データを生成し、この合成データを出力することを特徴とする請求項１〜３のいずれか１つに記載のレジスタユニット。
【請求項５】
前記対応関係テーブルは、書き込み指示を受けたデータのうち常に同一値となる複数のデータビットを、同一のビットアドレスに対応付けることを特徴とする請求項１〜４のいずれか１つに記載のレジスタユニット。
【請求項６】
前記対応関係テーブルには、極性を反転させて前記書き込みを行ったビットのデータを特定するデータを含んでいることを特徴とする請求項１〜５のいずれか１つに記載のレジスタユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの演算などにおいて用いられるレジスタを備えたレジスタユニットに関する。
【背景技術】
【０００２】
近年、音楽や絵画などの著作権があるデータを、劣化しないデジタル方式により保存して流通することが行われている。ここで、著作権者が不利益を受けないように、他のデジタル方式に複製できないような技術が開発されている（例えば、特許文献１参照。）。
【０００３】
特許文献１においては、オーディオデータが記録されているカード型記録媒体とホストコンピュータとの間に、ボードを介在させる。このボードには、第１及び第２制御部とメモリとが搭載されている。第１制御部は、カード型記憶媒体からのオーディオデータをメモリに供給するとともに、カード型記憶媒体からの著作権フラグを含む冗長データを第２の制御部に供給する。第２の制御部の冗長エリアレジスタは、冗長データに著作権フラグが含まれていた場合には、メモリからのオーディオデータを出力しないようにしている。
【特許文献１】特開２０００−１２３４７８号公報（図５）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、冗長エリアレジスタは、通常、特定の位置のデータの値が所定の値となっているか否かにより、著作権フラグを検出する。このため、著作権フラグを意味するレジスタのデータを記憶する位置が、冗長エリアレジスタを解析することにより把握された場合には、この著作権フラグを無効にすることも可能となる。そして、著作権フラグを無効にすることにより、著作権があるデータを自由に複製することができるようになってしまう。
【０００５】
本発明は、上述した課題に鑑みてなされ、その目的は、データのセキュリティを向上し、改竄等を抑制することのできるレジスタユニットを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、複数ビットから構成されるデータを一時的に記憶するレジスタと、前記レジスタの各ビットにビットアドレスを付与し、このビットアドレスとレジスタに記憶するデータビットとを対応付けた対応関係テーブルを記憶するビット配置回路とを備えたレジスタユニットであって、前記ビット配置回路は、レジスタに対するデータの書き込み指示を受けた場合、このデータをデータビット毎に分解し、前記対応関係テーブルに基づいて特定されるビットアドレスにデータビット毎に書き込み、レジスタからのデータの読み出し指示を受けた場合、前記対応関係テーブルに基づいてビットアドレスを特定し、前記データビット毎に読み出して再構成したデータを出力することを要旨とする。このため、レジスタユニットはビット毎に並べ替えてデータをレジスタに記憶するので、レジスタに記憶されたデータが読み取られても、レジスタに書き込みを指示されたデータを特定して、そのデータを読み取ることが困難である。従って、レジスタに書き込まれるデータのセキュリティを高めることができる。
【０００７】
請求項２に記載の発明は、請求項１に記載のレジスタユニットにおいて、前記ビット配置回路は、複数の対応関係テーブルを記憶しており、外部から受けた切換信号に応じて、使用する対応関係テーブルを切り替えることを要旨とする。このため、レジスタは、切換信号に応じて、複数の対応関係テーブルを使い分けることができ、データの解読が困難になる。従って、データのセキュリティを高めることができる。
【０００８】
請求項３に記載の発明は、請求項１に記載のレジスタユニットにおいて、前記ビット配置回路は、前記レジスタに記憶するデータを受信したときに、前記対応関係テーブルを新たに作成し、この対応関係テーブルに基づいてデータの読み出しが完了するまで作成した対応関係テーブルを記憶することを要旨とする。このため、レジスタは、対応関係テーブルは書き込むときに変更となるため、データの解読が困難になる。従って、データのセキュリティを高めることができる。
【０００９】
請求項４に記載の発明は、請求項１〜３のいずれか１つに記載のレジスタユニットにおいて、複数のレジスタのデータを読み出す指示を受けた場合であって、この指示が各レジスタの重複しない部分のデータビットを読み出す指示の場合には、前記ビット配置回路は、前記対応関係テーブルに基づいて、必要な部分のデータビットを抽出して生成した合成データを生成し、この合成データを出力することを要旨とする。このため、レジスタは、使用するデータを出力することにより、必要なデータをアドレス毎に提供（送信）するときに比べて、データの送信時間を短縮することができる。
【００１０】
請求項５に記載の発明は、請求項１〜４のいずれか１つに記載のレジスタユニットにおいて、前記対応関係テーブルは、書き込み指示を受けたデータのうち常に同一値となる複数のデータビットを、同一のビットアドレスに対応付けることを要旨とする。このため、レジスタは、常に同一値となる複数のデータビットを同一のビットアドレスに対応付けることにより、まとめて管理することができる。
【００１１】
請求項６に記載の発明は、請求項１〜５のいずれか１つに記載のレジスタユニットにおいて、前記対応関係テーブルには、極性を反転させて前記書き込みを行ったビットのデータを特定するデータを含んでいることを要旨とする。このため、ビットの極性を反転させて書き込んだり反転させずに書き込んだりすることにより、レジスタに記憶されたデータが読み取られてもデータとして用いられるときのビットの極性を不明にすることができる。従って、データのセキュリティを高めることができる。
【発明の効果】
【００１２】
本発明によれば、レジスタに書き込まれるデータのセキュリティを向上し、改竄等を抑制することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を具体化した一実施形態について図１〜図８に基づいて説明する。本実施形態では、マイクロプロセッサに内蔵されているレジスタセット（レジスタ群）を管理するレジスタユニットを想定する。
【００１４】
本発明のレジスタユニット２０は、シリアルインターフェイス（シリアルＩ／Ｆ）４０を介して、図示しない演算ユニットに接続されている。レジスタユニット２０は、演算ユニットからの指令信号に基づいて、データを一時的に記憶するためのレジスタの管理を行う。このレジスタユニット２０は、図１に示すように、ビット配置回路１１と、これに接続されている複数のレジスタ１０−０、１０−１、１０−２、・・・、１０−ｎとから構成されている。
【００１５】
ここで、「１０−０」〜「１０−ｎ」は、各レジスタのレジスタ名である。本実施形態では、各１０−０〜１０−ｎは、８ビットの汎用レジスタを用いる。
図２に示すように、本実施形態では、各レジスタ（１０−０〜１０−ｎ）は、ビット毎に管理される。そのため、各ビットには、ビットアドレス（以下、「レジスタビットアドレス」という。）が付されている。そして、本実施形態では、レジスタ１０−０のレジス
タビットアドレスには、最下位ビットから順に「Ａ」〜「Ｈ」のビット名を付与する。また、レジスタ１０−１のレジスタビットアドレスには、最下位ビットから順に「Ｉ」〜「Ｐ」のビット名を付与する。
【００１６】
一方、ビット配置回路１１は、上記各レジスタ１０−０〜１０−ｎにデータを記憶させるための回路である。具体的には、演算ユニットから所定のレジスタに書き込むデータを指示されたビット配置回路１１は、このデータをビット毎に分割する。そして、分割したビットのデータを並べ替えて構成した新たなデータを、各レジスタ１０−０〜１０−ｎの所定のビットアドレスに記憶する。
【００１７】
このビット配置回路１１は、不揮発性メモリ（例えば、ＥＥＰＲＯＭやＦｌａｓｈＲＯＭなど）を内蔵しており、この不揮発性メモリには図３に示す対応テーブルを記憶している。この対応テーブルは、レジスタビットアドレスと、演算ユニットによって指示されたレジスタに書き込むデータを構成する各ビット（以下、指示データビットという。）との対応関係を示したテーブルである。ここで、指示データビット（＄ｎ［ｍ］）は、書き込みや読み出しを指示されたレジスタ名（＄ｎ）と、ビットを最下位から表した［０］、［１］、［２］、［３］、［４］、［５］、［６］、［７］とから構成される。すなわち、レジスタ「＄０１」に書き込むデータは、指示データビット（＄０１［０］〜＄０１［７］）から構成されることになる。
【００１８】
なお、図３に示す対応テーブル３０では、レジスタビットアドレスに対して２つの指示データビットを対応させている。この対応テーブル３０は、第１対応テーブルと第２対応テーブルとから構成されている。ここでは、後述するように、演算ユニットから受信した特定の信号に基づいて、第１対応テーブルと第２対応テーブルとを切り替えて使用する。
【００１９】
本実施形態では、第１対応テーブルでは、図２に示すレジスタビットアドレスに対して、指示データビットが図４に対応するようになっている。なお、図４は、第１対応テーブルを用いたときのレジスタ（「＄００」及び「＄０１」）のデータ３１０、３１１を、レジスタ１０−０〜１０−ｎのレジスタビットアドレス「Ａ」〜「Ｐ」で表示した図である。すなわち、ビット配置回路１１が、例えば、レジスタ「＄ｎ」に記憶するデータを演算ユニットから受けた場合、そのままの順番でレジスタ１０−ｎに書き込む。また、ビット配置回路１１は、レジスタ「＄ｎ」のデータを読み出す指示を演算ユニットから受けると、レジスタ１０−ｎのデータをそのまま読み出し、これを演算ユニットに提供する。
【００２０】
一方、第２対応テーブルでは、図２に示すレジスタビットアドレスに対して、指示データビットが、図５に対応するように組み換えられている。なお、図５は、第２対応テーブルを用いたときのレジスタ（「＄００」及び「＄０１」）のデータ３２０、３２１を、レジスタ１０−０〜１０−ｎのレジスタビットアドレス「Ａ」〜「Ｐ」で表示した図である。例えば、演算ユニットからレジスタ「＄０１」に書き込む指示を受けたデータの最下位ビット「０」（＄０１［０］）は、レジスタ１０−１の最下位の「Ｃ」に対応する。このため、ビット配置回路１１は、レジスタ「＄ｎ」のデータとして書き込むデータを演算ユニットから受けると、第２対応テーブルに基づいてそのデータをビット毎に分解して、各ビットを並べ替えた値をレジスタ１０−ｎに記憶する。また、ビット配置回路１１は、レジスタ「＄ｎ」のデータを読み出す指示を演算ユニットから受けると、図３の第２対応テーブルに基づいて、そのレジスタ「＄ｎ」を構成するビットデータをレジスタ１０−０〜１０−ｎから読み出して再構成し、演算ユニットに提供する。
【００２１】
また、第２対応テーブルにおいては、レジスタビットアドレスの「Ｂ」には、指示データビット「＄０１［６］」と「＄０１［７］」とが対応付けられている。すなわち、指示データビットが常に同じ値となる場合には、以上のようなテーブルを用いることも可能で
ある。
【００２２】
更に、図３の第１対応テーブル及び第２対応テーブルには、レジスタビットアドレスに対応する指示データビット毎に、ビット極性フラグが記録されている。このビット極性フラグデータは、そのデータの極性を反転させて記憶するか否かを示すデータである。第２対応テーブルのレジスタビットアドレス「０×０３」の「Ｄ」のように、ビット極性フラグデータが「１」の場合には、そのビットの値を反転してレジスタ１０−０〜１０−ｎに記録する。また、ビット極性フラグデータが「０」の場合には、極性を反転せずに、そのままデータをレジスタ１０−０〜１０−ｎに記憶する。
【００２３】
次に、このように構成された本実施形態のレジスタユニット２０の処理について、図６及び図７を用いて説明する。まず、通常動作におけるレジスタユニット２０の処理について説明する。
【００２４】
ここで、レジスタユニット２０は、第１対応テーブルを用いる場合を説明し、次に第２対応テーブルを用いる場合を説明する。
（書き込み処理）
レジスタユニット２０のビット配置回路１１が、レジスタ「＄ｎ」に、データを書き込む指示を演算ユニットから受ける（ステップＳ１−１）。この場合、ビット配置回路１１は、図３の第１対応テーブルに基づいて、書き込みを行うレジスタビットアドレスを特定する（ステップＳ１−２）。具体的には、ビット配置回路１１は、レジスタ「＄ｎ」の各指示データビット（＄ｎ［０］〜［７］）を、図３の第１対応テーブルから読み出す。
【００２５】
そして、ビット配置回路１１は、この指示データビットに対応すると特定した各レジスタビットアドレスに、データの書き込みを行う（ステップＳ１−３）。
例えば、レジスタ「＄００」への書き込み指示の場合には、図３の第１対応テーブルに基づいて、その最下位の指示データビット（＄００［０］）のデータは、レジスタビットアドレス「０×００」の「Ａ」に書き込む。更に、２番目の下位の指示データビット（＄００［１］）のデータは、レジスタビットアドレス「０×０１」の「Ｂ」に書き込む。以下、同様にして、指示データビット（＄００［２］〜＄００［７］）は、レジスタビットアドレス「０×０２」の「Ｃ」〜「０×０７」の「Ｈ」に書き込む。
【００２６】
（読み出し処理）
次に、ビット配置回路１１は、レジスタ「＄ｎ」に書き込んだデータを読み出す信号を演算ユニットから受ける（ステップＳ２−１）。この場合、ビット配置回路１１は、図３の第１対応テーブルに基づいて、そのレジスタ「＄ｎ」を構成する指示データビットを特定する（ステップＳ２−２）。そして、ビット配置回路１１は、レジスタ１０−０〜１０−ｎからデータを読み出す（ステップＳ２−３）。読み出したデータに基づいて、ビット配置回路１１は、指示データビットに基づいて、レジスタ「＄ｎ」のデータを生成し（ステップＳ２−４）、演算ユニットに提供する（ステップＳ２−５）。
【００２７】
例えば、レジスタ「＄００」のデータの読み出しを行う場合には、図３の第１対応テーブルに基づいて、「＄００」を構成する各指示データビットをレジスタ１０−０〜１０−ｎから読み出す。本実施形態では、「＄００」の最下位ビット（＄００［０］）はレジスタ１０−０の「Ａ」、２番目の下位ビット（＄００［１］）はレジスタ１０−０の「Ｂ」、３番目の下位ビット（＄００［２］）は「Ｃ」に記録されている。そして、その他のビット（＄００［３］）、（＄００［４］）、（＄００［５］）、（＄００［６］）及び（＄００［７］）は、それぞれ「Ｄ」、「Ｅ」、「Ｆ」及び「Ｇ」に記録されている。従って、ビット配置回路１１は、レジスタ１０−０に記録されている各ビットの値を読み出す。そして、ビット配置回路１１は、読み出したデータをこの順番に並べた８ビットのデー
タをレジスタ「＄００」のデータとして生成し、このデータを演算ユニットに提供する。
【００２８】
次に、第２対応テーブルを用いる処理について説明する。この処理は、例えば、著作権のコピー防止のための特定の信号データを演算ユニットが読み出す特定処理の場合に行われる。具体的には、演算ユニットから対応テーブル切換信号を受信した場合に、ビット配置回路１１は、第１対応テーブルの代わりに第２対応テーブルを用いる。この処理においても、上述と同様な書き込み処理及び読み出し処理が行われる。
【００２９】
（書き込み処理）
レジスタユニット２０は、演算ユニットからの書き込みデータを受信する（ステップＳ１−１）、図３の第２対応テーブルに基づいてビットアドレスを特定し（ステップＳ１−２）、このビットアドレスにデータを書き込む（ステップＳ１−３）。
【００３０】
例えば、レジスタ「＄００」にデータを書き込む場合には、図３の第２対応テーブルに基づいて、「＄００」の最下位ビット（＄００［０］）はレジスタ１０−１の「Ｉ」に書き込み、２番目の下位ビット（＄００［１］）はレジスタ１０−１の「Ｊ」に書き込む。そして、その他のビット（＄００［２］、＄００［３］、＄００［４］、＄００［５］、＄００［６］及び＄００［７］）は、それぞれ「Ｋ」、「Ｌ」、「Ｍ」、「Ｎ」、「Ｏ」、及び「Ｐ」に書き込む。
【００３１】
また、レジスタ「＄０１」にデータを書き込む場合には、図３の第２対応テーブルに基づいて、その最下位ビット（＄０１［０］）のデータは、「Ｈ」に書き込む。同様にして、２番目の下位ビット（＄０１［１］）は「Ｃ」に、３番目の下位ビット（＄０１［２］）は「Ｆ」に、４番目の下位ビット（＄０１［３］）は「Ｅ」に書き込む。
【００３２】
ここで、「Ｅ」のビット極性フラグが「１」となっているため、ビット配置回路１１は、書き込むビットの極性を反転した値を「Ｅ」として書き込む。具体的には、ビット配置回路１１は、４番目の下位ビット（＄０１［３］）が「０」であった場合には極性を反転した「１」を「Ｅ」に書き込み、「１」であった場合には極性を反転した「０」を「Ｅ」に書き込む。
【００３３】
更に、５番目の下位ビット（＄０１［４］）は「Ｇ」に、６番目の下位ビット（＄０１［５］）は「Ｄ」に書き込む。
そして、最上位ビット（＄０１［７］）及び２番目の上位ビット（＄０１［６］）は、常に同じ値であるため、どちらかの値（ここでは、最上位ビット＄０１［７］とする）を取り出して、「Ｂ」に記録する。
【００３４】
（読み出し処理）
次に、第２対応テーブルを用いた読み出し処理について説明する。このとき、ビット配置回路１１は、演算ユニットからの読み出し信号を受信する（ステップＳ２−１）と、図３の第２対応テーブルに基づいて読み出すビットアドレスを特定し（ステップＳ２−２）、データの読み出しを行う（ステップＳ２−３）。
【００３５】
例えば、演算ユニットからレジスタ「＄００」のデータの読み出し信号を受信した場合、レジスタユニット２０は、図３の第２対応テーブルに基づいて、レジスタ「＄００」を構成する各ビットが記録しているデータ（＄００［ｍ］）をレジスタ１０−０〜１０−ｎから読み出す。本実施形態では、図３の対応テーブルに示すように、レジスタ「＄００」のデータは、すべてレジスタ１０−１に記録されているので、ビット配置回路１１は、レジスタ１０−１に記録されている各ビットの値を読み出す。
【００３６】
そして、ビット配置回路１１は、読み出したビットを並べて「＄００」のデータを生成し（ステップＳ２−４）、この生成したデータを演算ユニットに提供する（ステップＳ２−５）。
【００３７】
また、演算ユニットからレジスタ「＄０１」のデータを読み出した信号を受信した場合、レジスタユニット２０は、図３の第２対応テーブルに基づいて、読み出されるレジスタ「＄０１」を構成するビットのデータを記憶しているレジスタ１０−０を読み出す。具体的には、レジスタユニット２０は、レジスタ１０−０の「Ｈ」に記憶されているデータを最下位ビット（＄０１［０］）とし、レジスタ１０−０の「Ｃ」に記憶されているデータを２番目の下位ビット（＄０１［１］）とし、レジスタ１０−０の「Ｆ」に記憶されているデータを３番目の下位ビット（＄０１［２］）として読み出す。
【００３８】
更に、レジスタ１０−０の「Ｅ」に記憶されているデータを４番目の下位ビット（＄０１［３］）として読み出す。ここで、第２対応テーブルの「Ｅ」はビット極性フラグデータが「１」であるため、ビット配置回路１１は、読み出した「Ｅ」のデータの極性を反転する。具体的には、「Ｅ」として「１」のデータが記憶されていた場合には「０」を、「０」のデータが記憶されていた場合には「１」を、４番目の下位ビット（＄０１［３］）として読み出す。
【００３９】
また、レジスタ１０−０の「Ｇ」に記憶されているデータを５番目の下位ビット（＄０１［４］）とし、レジスタ１０−０の「Ｄ」に記録されているデータを６番目の下位ビット（＄０１［５］）として読み出す。
【００４０】
更に、レジスタ１０−０の「Ｂ」に記録されているデータを最上位ビット（＄０１［７］）及び２番目の上位ビット（＄０１［６］）として読み出す。
そして、ビット配置回路１１は、読み出したビットを、順番に並べてレジスタ「＄０１」のデータを生成し（ステップＳ２−４）、この生成したデータを演算ユニットに提供する（ステップＳ２−５）。
【００４１】
その後、演算ユニットは、特定の信号データを読み出す特定処理が完了すると、対応テーブル切換信号をビット配置回路１１に再送信する。これにより、ビット配置回路１１は、第２対応テーブルの代わりに第１対応テーブルを使用して、上述したように、レジスタ１０−０〜１０−ｎのデータの読み書きを行う。
【００４２】
以上、説明したように、本実施形態によれば、以下のような効果を得ることができる。
・本実施形態では、第２対応テーブルを用いる場合には、ビット配置回路１１は、レジスタ「＄０１」のデータをビット毎に分解して、このビット毎に分解した値を並べ替えて、レジスタ１０−０に記憶する。このため、レジスタ１０−０に記憶されたデータからは、レジスタ「＄０１」のデータを特定して読み取ることが困難になる。例えば、レジスタ「＄０１」のいずれかのビットが、著作権の複製防止のための信号データであった場合にも、それがレジスタ１０−０のどのビットであるかを特定することが難しくなる。従って、そのデータの改竄等を抑制することができる。
【００４３】
・本実施形態では、ビット配置回路１１は、通常は、図３の第１対応テーブルを用いてデータをレジスタ１０−０〜１０−ｎに記録する。そして、ビット配置回路１１は、著作権のコピー防止のための特定の信号データを読み出すために演算ユニットから対応テーブル切換信号を受信した場合には、図３の第２対応テーブルを用いてデータを１０−０〜１０−ｎに記録する。このため、解析により、通常のレジスタビットアドレスと指示データビットとの第１対応テーブルによる対応付けが判明していた場合であっても、特定処理においては、それとは異なる別の第２対応テーブルより対応付けが行われる。このため、特
定処理におけるレジスタ１０−０〜１０−ｎに記録する所定のデータを特定することがいっそう困難になるので、データのセキュリティを高めることができる。
【００４４】
・本実施形態では、第１対応テーブル及び第２対応テーブルにおいては、演算ユニットからの指示データを構成するデータは、１つのレジスタ１０−０〜１０−ｎに対応付けされている。このため、ビット配置回路１１は、演算ユニットから受信したデータを分離して再構成すると、１つのレジスタ１０−０〜１０−ｎに書き込む。そして、演算ユニットから読み出し信号を受信したビット配置回路１１は、その対応する１つのレジスタ１０−０〜１０−ｎからデータを取得し、このデータを並べ替えて再構成したデータを演算ユニットに提供する。従って、１つのアドレスのデータの読み出し信号を演算ユニットに提供するために、複数のレジスタ１０−０〜１０−ｎのデータを読み出す必要がない。
【００４５】
・本実施形態では、ビット配置回路１１は、図３の対応テーブル３０において各ビット極性フラグを記録する。そして、ビット極性フラグが「１」となっている第２対応テーブルの「Ｅ」は、指示データビット＄０１［３］の値を反転してレジスタ１０−０に書き込む。また、ビット配置回路１１は、＄０１［３］を読み出す場合には、「Ｅ」のビットの極性を反転させて読み出す。このため、レジスタは、図３の第２対応テーブルを用いることにより、反転させて記憶させたビットを特定することができる。従って、レジスタに記録されているビットの値が、演算ユニットに、そのままの値で提供されるか反転された値で提供されるかを不明にすることができるので、データのセキュリティをいっそう高めることができる。
【００４６】
・本実施形態では、ビット配置回路１１は、対応テーブル切換信号の受信により第２対応テーブルを用いる場合、指示データビット（＄０１［６］、＄０１［７］）は、＄０１［７］のビットアドレスのデータを取り出して、「Ｂ」に記録する。そして、ビット配置回路１１は、演算ユニットから読み出し信号を受信した場合には、レジスタ１０−０の「Ｂ」に記録されているデータを＄０１［６］及び＄０１［７］として読み出す。このため、常に同じ値で変化する２つのビット（＄０１［６］及び＄０１［７］）を、レジスタビットアドレスの「Ｂ」の値で、まとめて管理することができる。
【００４７】
また、上記実施形態は以下のように変更してもよい。
○上記実施形態においては、データのバスのビット数と、１つのレジスタ１０−０〜１０−ｎに記憶されるビット数とを同じであるとして説明した。これに限らず、例えば、レジスタ１０−０〜１０−ｎのビット数が、バスの２倍や３倍の量であってもよい。
【００４８】
○上記実施形態においては、ビット配置回路１１は、テーブル切換信号に基づいて第１対応テーブルと第２対応テーブルの切り替えを行い、第１対応テーブル又は第２対応テーブルを用いた。これに代えて、第１対応テーブルを省略し、第２対応テーブルを使用しない場合には、ビット配置回路１１をバイパスするような構成のレジスタユニット２０としてもよい。
【００４９】
○上記実施形態においては、ビット配置回路１１に内蔵させた対応テーブル３０を用いて、レジスタビットアドレスと指示ビットアドレスを対応付けした。ビット配置回路１１には、予め対応テーブル３０を記憶させないで、適宜、レジスタビットアドレスと指示ビットアドレスとの対応付けを行ってもよい。具体的には、ビット配置回路１１は、演算ユニットからレジスタ１０−０〜１０−ｎに書き込むデータを受信すると、そのデータをビット毎に分離する。そして、ビット配置回路１１は、発生させた乱数などを用いて、分離したビット毎の並び順を決定し、この順番に、各ビットのデータを並べ替えて記憶用のデータを生成してレジスタに記憶する。このとき、ビット配置回路１１は、並べ替えたときのレジスタビットアドレスと指示ビットアドレスの対応付けを、ビット配置回路１１内で
記憶させる。
【００５０】
○上記実施形態においては、アドレス毎のデータを読み出す場合について説明した。これに代えて、例えば、図８に示すように、複数のレジスタのアドレスのうち一部分しか必要でない場合には、ビット配置回路１１は、複数のレジスタデータから必要な部分を抽出して、１つのデータにまとめた合成データ５０を生成して演算ユニットに提供してもよい。具体的には、図８に示すように、レジスタ１０−０の「Ａ」のデータ及び「Ｂ」を使用するが、レジスタ１０−０の他のデータは使用しない場合を想定する。更に、レジスタ１０−１の「Ｎ」のデータ及び「Ｍ」のデータを使用するが、レジスタ１０−１の他のデータは使用しない場合を想定する。この場合、ビット配置回路１１は、レジスタ１０−０及びレジスタ１０−１のデータを同時に取得する信号を演算ユニットから受信した場合には、合成データ５０を生成する。この合成データ５０は、レジスタ１０−０の「Ａ」のデータを最下位ビットに、レジスタ１０−０の「Ｂ」のデータを下位２番目のビットに、レジスタ１０−１の「Ｎ」のデータを上位３番目のビットに、レジスタ１０−１の「Ｍ」のデータを上位４番目のビットに配置したデータである。そして、この合成データ５０を演算ユニットに提供する。これにより、演算ユニットは、レジスタ１０−０、１０−１に記憶されたすべてのデータを受信するよりも少ない量のデータを受信することができるので、必要なデータを短時間で受信することができる。
【００５１】
○上記実施形態においては、ビット配置回路１１は、受信したデータをビット毎に分離し、分離したビットを並べ替えて生成したデータを同じレジスタ１０−０〜１０−ｎに記憶した。これに限らず、複数のレジスタのデータを同時に用いる場合には、複数のレジスタ１０−０〜１０−ｎに跨るように、ビットの並べ替えを行うようにしてもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態のレジスタの構成に関するブロック図。
【図２】実施形態におけるレジスタビットアドレスを説明するための説明図。
【図３】レジスタビットアドレスと指示データビットとの対応テーブル。
【図４】第１対応テーブルにおける指示データビットを説明するための説明図。
【図５】第２対応テーブルにおける指示データビットを説明するための説明図。
【図６】書き込み処理の処理手順を説明する流れ図。
【図７】読み出し処理の処理手順を説明する流れ図。
【図８】合成データを説明する説明図。
【符号の説明】
【００５３】
１０−０、１０−１、１０−ｎ…レジスタ、１１…ビット配置回路、２０…レジスタユニット、５０…合成データ。
【図１】
2005338942.tif 000003
【図２】
2005338942.tif 000004
【図３】
2005338942.tif 000005
【図４】
2005338942.tif 000006
【図５】
2005338942.tif 000007
【図６】
2005338942.tif 000008
【図７】
2005338942.tif 000009
【図８】
2005338942.tif 000010