(57)【要約】【課題】周辺装置のレジスタのビットサイズに適した書き込みデータを生成することができるアクセス制御装置、アクセス制御方法、アクセス制御システム及び周辺装置を提供すること【解決手段】本発明かかるアクセス制御装置３０は、周辺装置２０へ書込むために中央処理演算装置１０から出力される出力データのビットサイズを第１のビットサイズとして受信する制御信号入出力部３１と、中央処理演算装置１０からのデータが書込まれる周辺装置２０のレジスタのビットサイズを周辺装置２０から第２のビットサイズとして受信する制御信号入出力部３１と、第１のビットサイズと第２のビットサイズとの比較結果に基づいて周辺装置２０へ書込む書込データを生成するデータ生成部３２と、を備えるものである。【選択図】図１
2011043980.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置へ書き込むために中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信する中央処理演算装置情報受信部と、
前記中央処理演算装置からのデータが書き込まれる前記周辺装置のレジスタのビットサイズを当該周辺装置から第２のビットサイズとして受信する周辺装置情報受信部と、
前記第１のビットサイズと前記第２のビットサイズとの比較結果に基づいて前記周辺装置へ書込む書込データを生成するデータ生成部と、を備えるアクセス制御装置。
【請求項２】
前記第１のビットサイズが前記第２のビットサイズよりも小さい場合、前記データ生成部は、不足分のデータを補完し、当該第２のビットサイズの前記書込データを生成することを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
前記周辺装置情報取得部は、前記レジスタが保持する保持データを取得し、
前記データ生成部は、前記保持データを使用し前記補完処理を実施することを特徴とする請求項２記載のアクセス制御装置。
【請求項４】
前記データ生成部は、前記出力データの上位側又は下位側に前記保持データを追加して前記書込データを生成することを特徴とする請求項３記載のアクセス制御装置。
【請求項５】
前記書込データを前記周辺装置に出力するまで、前記出力データの送信を停止させる中央処理演算装置制御部をさらに備えることを特徴とする請求項１〜４のいずれか１項に記載のアクセス制御装置。
【請求項６】
前記第１のビットサイズと前記第２のビットサイズとが同一である場合、前記データ生成部は、前記出力データを前記書込データとすることを特徴とする請求項１記載のアクセス制御装置。
【請求項７】
周辺装置へ書込むために中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信し、
前記中央処理演算装置からのデータが書き込まれる前記周辺装置のレジスタのビットサイズを第２のビットサイズとして受信し、
前記第１のビットサイズと前記第２のビットサイズとの比較結果に基づいて前記周辺装置へ書込む書込データを生成し、
前記第２のビットサイズの前記書込データを前記レジスタに書込む、アクセス制御方法。
【請求項８】
前記第１のビットサイズが前記第２のビットサイズよりも小さい場合、不足分のデータを補完し、当該第２のビットサイズの前記書込データを生成することを特徴とする請求項７記載のアクセス制御方法。
【請求項９】
前記レジスタが保持する保持データを取得し、
前記保持データを使用して前記補完処理を実施することを特徴とする請求項８記載のアクセス制御方法。
【請求項１０】
前記保持データを、前記出力データの上位側又は下位側に追加して前記書込データを生成することを特徴とする請求項９記載のアクセス制御方法。
【請求項１１】
前記第１のビットサイズが前記第２のビットサイズよりも小さい場合、前記出力データの送信を停止させる停止信号を前記中央処理演算装置に送信し、
前記書込データを生成し、当該書込データを当該周辺装置へ送信した後に、前記出力データの送信停止を解除する解除信号を前記中央処理演算装置に送信することを特徴とする請求項７〜１０のいずれか１項に記載のアクセス制御方法。
【請求項１２】
前記第１のビットサイズが前記第２のビットサイズと同一である場合、前記出力データを前記書込データとして前記レジスタに書き込むことを特徴とする請求項７記載のアクセス制御方法。
【請求項１３】
周辺装置と、当該周辺装置にデータを書込む中央処理演算装置と、当該中央処理演算装置の当該周辺装置へのデータ書込みを制御するアクセス制御装置と、を備えるアクセスシステムであって、
前記アクセス制御装置は、
前記周辺装置に書込むために前記中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信し、
前記中央処理演算装置からのデータが書き込まれる前記周辺装置のレジスタのビットサイズを第２のビットサイズとして受信し、
前記第１のビットサイズと前記第２のビットサイズとの比較結果に基づいて、前記周辺装置へ書き込む書込みデータを生成する、アクセス制御システム。
【請求項１４】
前記アクセス制御装置は、前記中央処理演算装置に含まれることを特徴とする請求項１３記載のアクセス制御システム。
【請求項１５】
前記アクセス制御装置は、前記周辺装置に含まれることを特徴とする請求項１３記載のアクセス制御システム。
【請求項１６】
中央処理演算装置からのデータが書込まれるレジスタを有する周辺装置であって、
前記周辺装置に書き込むために前記中央処理演算装置から出力される第１のビットサイズの出力データが、アクセス制御装置によりそのビットサイズが調整され、書込データとして書き込まれるレジスタと、
前記レジスタのビットサイズを、第２のビットサイズとして前記アクセス制御装置に送信する送信部と、を備え、
前記レジスタは、前記出力データが、前記アクセス制御装置により前記第２のビットサイズとされた前記書込データが書き込まれる周辺装置。
【請求項１７】
複数のレジスタと、
前記中央処理演算装置が前記出力データを出力する際に、前記中央処理演算装置から送信されるアクセス信号を受信する受信部と、
前記アクセス信号に基づいて、前記複数のレジスタの中からデータ書込みが行われるレジスタを特定するレジスタ特定部と、をさらに備える請求項１６記載の周辺装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアクセス制御装置、アクセス制御方法、アクセス制御システム及び周辺装置に関し、特に中央処理演算装置（ＣＰＵ）から周辺装置へのアクセスを制御するアクセス制御装置、アクセス制御方法、アクセス制御システム及び周辺装置に関する。
【背景技術】
【０００２】
マイクロコンピュータシステムにおいて、ＣＰＵ（Central Processing Unit）は、周辺装置に相当する記憶装置（メモリ）、レジスタ、入出力ポート、又は表示装置等に対してデータの書込み及びデータの読み出しを実行する。データの読み出し及び書込みは、特定のバス幅を有するデータバスを介して行う。バス幅の値が大きいほど一度に読み出せるデータもしくは一度に書き込めるデータの情報量が大きくなるため、ＣＰＵは、より高速に通信を行うことができる。通常書込みは８ビット（１バイト）単位で行われるため、データバスのバス幅も８ビット、１６ビット、３２ビット等、８ビットの整数倍で示される。データバスに接続される周辺装置は、複数のレジスタを有している。それぞれのレジスタは、特定のビットサイズの情報を保持することができる。ＣＰＵは、レジスタの保持する情報を読み出し、さらに、レジスタに情報を書込むことができる。例えば１６ビットのデータを保持することができるレジスタは、ＣＰＵから１６ビット以下のデータの書込みを許容するか、または１６ビットデータの書込みのみを許容する。ここで、図５を用いて、レジスタの有するビットサイズ以下のデータを書き込む動作について説明する。
【０００３】
図５においては、１６ビットのデータを保持することが可能なレジスタ２００は、８ビットのデータを保持することが可能なレジスタ２１０と２２０で構成してある。レジスタ２００に対してＣＰＵ１００が、８ビットのデータを書き込む場合の動作について説明する。ＣＰＵ１００は、読み出し信号送信部（ＲＤ）１０１と、書込み信号送信部（ＷＲ）１０２と、Ｌｏｗバイトアクセス部１０３と、Ｈｉｇｈバイトアクセス部１０４と、アクセス信号送信部（ＣＳ）１０５を備えている。レジスタの下位８ビットにデータの書込みを行う場合は、Ｌｏｗバイトアクセス部１０３とＷＲから信号がＮＡＮＤ回路１０７に対して同時に出力される。次に、Ｌｏｗバイトアクセス部１０３とＷＲから出力された信号を入力したＮＡＮＤ回路１０７から、レジスタ２１０にＷＲ信号が出力される。ＣＰＵ１００からレジスタ２１０にＷＲ信号が出力されるとともに、データバスを介して８ビットのデータ書込みが行われる。
【０００４】
続いて図６に、周辺装置２０とＣＰＵ１０の接続の構成を示す。周辺装置２０として、たとえば、カウンタを例にとる。コンパレータ２２は、レジスタ２３が保持しているデータと、カウンタ２１がカウントしているデータを比較し、一致した場合に、一致信号２６を出力する。周辺装置２０内には、レジスタ２３が多くある場合もある。この場合にデコーダ２４は、ＣＰＵ１０のアドレス情報出力部１２がアドレスバス４０へ出力したアドレス情報を取得する。デコーダ２４は、取得した情報をデコードし周辺装置２０内のアクセス先のレジスタを判断する。
【０００５】
また、特許文献１には、レジスタの保持するビットサイズよりも少ないビット数のデータを書き込む場合に、レジスタの保持するビットサイズに対して不足する書込みデータのビットにデータを付加して、書込みを行う方法について開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−５５３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、たとえば、周辺装置２０のレジスタ２３が１６ビットで、１６ビット単位で書き換える必要がある場合、以下のような問題が生じる。１６ビットのデータしか書き込めないレジスタ２３に対して８ビットのデータを書き込む場合、残りの８ビットに不定値が書き込まれるため、コンパレータ２２が出力する一致信号２６が間違ったタイミングで出力されることになる。さらに、特許文献１の方法により、ＣＰＵが、レジスタの保持するビットサイズに合わせたデータを生成する場合においても、事前に不足分のデータを認識している必要がある。通常、事前に不足分のデータが判明していないことが多く、レジスタが認識することができる適切なデータを付加してアクセスすることができない。この解決方法として、一般的に図５の方法が用いられてきたが、周辺装置２０内にはレジスタが複数個ある場合が多く、回路構成が複雑になる問題がある。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかるアクセス制御装置は、周辺装置へ書込むために中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信する中央処理演算装置情報受信部と、前記中央処理演算装置からのデータが書込まれる前記周辺装置のレジスタのビットサイズを当該前記周辺装置から第２のビットサイズとして受信する周辺装置情報受信部と、前記第１のビットサイズと前記第２のビットサイズとの比較結果に基づいて前記周辺装置へ書込む書込データを生成するデータ生成部と、を備えるものである。
【０００９】
また、本発明の第２の態様にかかるアクセス制御方法は、周辺装置へ書込むために中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信し、前記中央処理演算装置からのデータが書込まれる前記周辺装置のレジスタのビットサイズを第２のビットサイズとして受信し、前記第１のビットサイズと前記第２のビットサイズを比較した結果に基づいて前記周辺装置に書込データを生成し、前記第２のビットサイズの前記書込データを前記レジスタに書き込む、ことである。
【００１０】
また、本発明の第３の態様にかかるアクセス制御システムは、周辺装置と、当該周辺装置にデータを書込む中央処理演算装置と、当該中央処理演算装置の当該周辺装置へのデータ書込みを制御するアクセス制御装置と、を備えるアクセス制御システムであって、前記アクセス制御装置は、前記周辺装置へ書込むために前記中央処理演算装置から出力される出力データのビットサイズを第１のビットサイズとして受信し、前記中央処理演算装置からのデータが書込まれる是延期周辺装置のレジスタのビットサイズを第２のビットサイズとして受信し、前記第１のビットサイズと前記第２のビットサイズとの比較結果に基づいて、前記周辺装置へ書込む書込みデータを生成するものである。
【００１１】
また、本発明の第４の態様にかかる周辺装置は、中央処理演算装置からのデータが書込まれるレジスタを有する周辺装置であって、前記周辺装置に書込むために前記中央処理演算装置から出力される第１のビットサイズの出力データが、アクセス制御装置によりそのビットサイズが調整され、書込データとして書込まれるレジスタと、前記レジスタのビットサイズを、第２のビットサイズとして前記アクセス制御装置に送信する送信部と、を備え、前記レジスタは、前記出力データが、前記アクセス制御装置により前記第２のビットサイズとされた前記書込データが書込まれるものである。
【００１２】
中央処理演算装置から周辺装置に書込むデータと、周辺装置のレジスタのビットサイズを比較することで、周辺装置のレジスタのビットサイズに適した書込みデータを生成することを可能としている。
【発明の効果】
【００１３】
本発明によれば、周辺装置のレジスタのビットサイズに適した書込みデータを生成することができるアクセス制御装置、アクセス制御方法、アクセス制御システム及び周辺装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかるアクセスシステム全体の構成図である。
【図２】実施の形態１にかかるアクセス制御装置の構成図である。
【図３】実施の形態１にかかるアクセス制御装置の処理フローである。
【図４】実施の形態１にかかる周辺装置の処理フローである。
【図５】従来のアクセスシステムの構成図である。
【図６】従来の周辺装置とのＣＰＵの接続の構成図である。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態１にかかるアクセス制御システムの全体構成を示している。アクセス制御システムは、ＣＰＵ１０と、周辺装置２０と、アクセス制御装置３０を備えている。
【００１６】
はじめに、ＣＰＵ１０の構成例について説明する。ＣＰＵ１０は、制御信号入出力部１１と、アドレス情報出力部１２と、データ入出力部１３とを有している。また、ＣＰＵ１０は、アドレス情報を送受信するアドレスバス４０と、書込みデータもしくは読み出しデータを送受信するデータバス５０とに接続されている。
【００１７】
制御信号入出力部１１は、周辺装置２０及びアクセス制御装置３０に対してアクセス信号（ＣＳ信号）、データ書込み信号（ＷＲ信号）もしくはデータ読み出し信号（ＲＤ信号）を送信する。ＣＳ信号は、主に複数の周辺装置から、一意に周辺装置を識別するために用いられる。ＣＳ信号、ＷＲ信号及びＲＤ信号は、ＣＰＵ１０とアクセス制御装置３０との間に設けられる制御信号線を用いて送受信される。制御信号入出力部１１から周辺装置２０に対して、ＣＳ信号、ＷＲ信号及びＲＤ信号は、アクセス制御装置３０を介して送信されてもよく、ＣＰＵ１０と周辺装置２０との間に制御信号線を設けて、制御信号入出力部１１から周辺装置２０へ直接送信されてもよい。もしくは、ＣＳ信号、ＷＲ信号及びＲＤ信号は、アドレスバス４０もしくはデータバス５０を介してアクセス制御装置３０へ送信されてもよい。
【００１８】
アドレス情報出力部１２は、データ書込み又はデータ読み出しを行う周辺装置２０が有するレジスタ２３のアドレス情報をアドレスバス４０へ出力する。アドレス情報は、アドレスバス４０を介してアクセス制御装置３０及び周辺装置２０へ送信される。
【００１９】
データ入出力部１３は、アクセス制御装置３０に対して、周辺装置２０が有するレジスタ２３へ書き込むためにデータ（以下、出力データ）を出力する。又は、データ入出力部１３は、周辺装置２０から読み出したデータを取得する。データ入出力部１３が出力する出力データのビットサイズは、例えば８ビット、１６ビット、３２ビット等のように８ビットの整数倍で示される。
【００２０】
次に、周辺装置２０の構成例について説明する。周辺装置２０は、カウンタ２１と、コンパレータ２２と、レジスタ２３と、デコーダ２４と、アクセス幅生成部２５と、を有している。周辺装置２０は、例えばコンピュータに搭載されるメモリであり、入出力ポートや表示装置等であってもよい。
【００２１】
図１においては、説明を容易にするためレジスタ２３を一つのみ図示しているが、周辺装置２０は、複数のレジスタを有してもよい。周辺装置２０が複数のレジスタを有する場合、それぞれのレジスタ毎に決まるビットサイズデータをレジスタが持っている。
【００２２】
レジスタ２３は、アクセス制御装置３０の制御により、アクセス制御装置３０からデータが書き込まれ、又はＣＰＵ１０からレジスタ２３の保有する情報を読み出される。また、レジスタ２３は、アクセス制御装置３０の制御信号入出力部３１から、ＣＳ信号、ＷＲ信号もしくはＲＤ信号を取得する。レジスタ２３は、アクセス制御装置３０の制御信号入出力部３１から、ＣＳ信号を取得した後に、ＷＲ信号を取得した場合、データの書込みがなされるものと判断する。データの書込みが行われる場合、レジスタ２３は、アクセス制御装置３０がデータバス５０へ出力したデータ（以下、書込みデータ）を取得する。レジスタ２３は、アクセス制御装置３０の制御信号入出力部３１から、ＣＳ信号を取得した後に、ＲＤ信号を取得した場合、データの読み出しがなされるものと判断する。データの読み出しが行われる場合、レジスタ２３は、保持しているデータをデータバス５０へ出力する。データバス５０へ出力されたデータは、アクセス制御装置３０を経由してＣＰＵ１０のデータ入出力部１３により取得される。
【００２３】
コンパレータ２２は、レジスタ２３が保持しているデータと、カウンタ２１がカウントしているデータを比較し、一致した場合に、一致信号２６を出力する。
【００２４】
デコーダ２４は、ＣＰＵ１０のアドレス情報出力部１２がアドレスバス４０へ出力したアドレス情報を取得する。さらに、デコーダ２４は、アクセス制御装置３０の制御信号入出力部３１から出力されたＣＳ信号を取得する。デコーダ２４は、取得した情報をデコードし周辺装置２０内のアクセス先を判断する。アクセスされたレジスタ２３は、アクセス幅生成部２５へアクセス幅を出力する。
【００２５】
アクセス幅生成部２５は、デコーダが特定したレジスタから入手したアクセス幅を元にビットサイズをアクセス制御装置３０の制御信号入出力部３１へ出力する。ここで、アクセス幅生成部２５は、周辺装置２０の有する複数のレジスタと、それぞれのレジスタのビットサイズを対応付けた情報を保持してもよく、もしくはデコーダ２４から取得したレジスタ情報をカウンタ２１へ出力し、カウンタ２１から該当するレジスタのビットサイズ情報を取得してもよい。
【００２６】
次に、アクセス制御装置３０の構成例について説明する。アクセス制御装置３０は、制御信号入出力部３１と、データ生成部３２と、アドレス情報入力部３３とを備えている。
【００２７】
アドレス情報入力部３３は、ＣＰＵ１０のアドレス情報出力部１２が出力したアクセス先のレジスタ２３のアドレス情報を取得する。アドレス情報入力部３３は、取得したレジスタ２３のアドレスを制御信号入出力部３１へ出力する。
【００２８】
制御信号入出力部３１は、ＣＰＵ１０の制御信号入出力部１１から、ＣＳ信号、ＷＲ信号、ＲＤ信号又はビットサイズ情報を取得する。制御信号入出力部３１は、ＣＰＵ１０の制御信号入出力部１１からＣＳ信号取得後、ＷＲ信号もしくはＲＤ信号を取得した場合、ＣＳ信号及び、ＷＲ信号又はＲＤ信号を周辺装置２０のレジスタ２３へ出力する。
【００２９】
制御信号入出力部３１は、ＣＰＵ１０の制御信号入出力部１１から、出力データのビットサイズを取得した場合、データ生成部３２へビットサイズ情報を出力する。また、制御信号入出力部３１は、周辺装置２０のアクセス幅生成部２５からレジスタ２３のビットサイズ情報を取得した場合も、データ生成部３２へ取得したビットサイズ情報を出力する。
【００３０】
データ生成部３２は、周辺装置２０のアクセス幅生成部２５から取得したレジスタ２３のビットサイズとＣＰＵ１０の制御信号入出力部１１から取得した出力データのビットサイズとを比較する。データ生成部３２は、ビットサイズを比較した結果同一のビットサイズである場合、データ生成部３２がＣＰＵ１０のデータ入出力部１３から取得したデータを、レジスタ２３への書込みデータとして、データバス５０へ出力する。ビットサイズを比較した結果、レジスタ２３のビットサイズが出力データのビットサイズよりも大きい場合、データ生成部３２は、出力データの不足分のデータを補完して、データバス５０へ出力する。
【００３１】
ここで、図２を用いてアクセス制御装置３０の詳細な構成例について説明する。データ生成部３２は、８ビットレジスタ３２１〜３２４と、ビットサイズ比較部３２５と、データ結合部３２６とセレクタ３４１及び３４２とを有している。その他の構成は、図１と同様である。
【００３２】
ビットサイズ比較部３２５は、制御信号入出力部３１から、周辺装置２０のアクセス幅生成部２５が出力したレジスタ２３のビットサイズとＣＰＵ１０の制御信号入出力部１１が出力した出力データのビットサイズとを取得する。さらに、ビットサイズ比較部３２５は、取得したビットサイズを比較し、比較した結果を制御信号入出力部３１へ出力する。比較した結果、ビットサイズが同一である場合、制御信号入出力部３１は、ＣＰＵ１０からデータバス５０へ出力され、データバス５０から取得した出力データを、セレクタ３４１から直接セレクタ３４２へ出力するよう制御を行う。
【００３３】
周辺装置２０のアクセス幅生成部２５が出力したレジスタ２３のビットサイズがＣＰＵ１０の制御信号入出力部１１から出力された出力データのビットサイズよりも大きい場合について説明する。ここで、周辺装置２０のアクセス幅生成部２５が出力したビットサイズは、１６ビットとし、ＣＰＵ１０の制御信号入出力部１１が出力したビットサイズは、８ビットとする。
【００３４】
ＣＰＵ１０は、８ビットの出力データをデータバス５０へ出力する。さらに、ＣＰＵ１０は、制御信号入出力部３１に対して、８ビットの出力データを上位８ビットに設定するか下位８ビットに設定するかを示すＨｉｇｈバイトアクセス信号もしくはＬｏｗバイトアクセス信号を出力する。制御信号入出力部３１は、Ｌｏｗバイトアクセス信号を取得した場合、セレクタ３４１を経由してＣＰＵ１０が出力した８ビットのデータを、８ビットレジスタ３２２が取得するように制御する。具体的には、制御信号入出力部３１は、８ビットレジスタ３２２へＷＲ信号を出力する。また、制御信号入出力部３１は、周辺装置２０のレジスタ２３に対して、ＲＤ信号を出力する。これより、セレクタ３４２経由で、レジスタ２３の保持する１６ビットのデータ（以下、保持データ）の上位８ビットを８ビットレジスタ３２３が、保持データの下位８ビットを８ビットレジスタ３２４が取得するよう制御する。具体的には、制御信号入出力部３１は、８ビットレジスタ３２３及び３２４へＷＲ信号を出力する。
【００３５】
次に、制御信号入出力部３１は、８ビットレジスタ３２３及び３２２に対してＲＤ信号を送信する。これにより、８ビットレジスタ３２３及び３２２は、データをデータ結合部３２６へ出力する。データ結合部３２６は、８ビットレジスタ３２３から取得したデータを上位８ビットに設定し、８ビットレジスタ３２２から取得したデータを下位８ビットに設定する。データ結合部３２６は、設定した１６ビットのデータである書込みデータをセレクタ３４２経由で、データバス５０を介して周辺装置２０へ出力する。このようにして周辺装置２０へ出力された書込みデータの上位８ビットは、レジスタ２３より取得した保持データとされ、下位８ビットは、ＣＰＵ１０より取得した出力データとされる。また、ＣＰＵ１０がＨｉｇｈバイトアクセス信号を出力した場合、ＣＰＵ１０から取得した出力データを書込みデータの上位８ビットに設定し、レジスタ２３から取得した保持データの下位８ビットのデータを書込みデータの下位８ビットに設定する。なお、上述の説明においては、ＣＰＵ１０からＨｉｇｈバイトアクセス信号もしくはＬｏｗバイトアクセス信号を出力することにより、ＣＰＵから出力される出力データの設定場所を決定しているが、制御信号入出力部３１が設定場所を決定してもよく、周辺装置２０が有するレジスタ２３もしくはアクセス幅生成部２５が設定場所を決定してもよい。
【００３６】
ここで、ＣＰＵ１０が、周辺装置２０が有するレジスタ２３からデータ読み出しを行う場合について説明する。制御信号入出力部３１は、ＣＰＵ１０からＣＳ信号及びＲＤ信号を取得した場合、データの読み出しが行われると判断する。この場合、周辺装置２０が有するレジスタ２３よりデータバス５０へ出力されたデータを、セレクタ３４２とセレクタ３４１を経由してＣＰＵに出力するよう制御を行う。
【００３７】
次に、図３を用いて本発明の実施の形態１にかかるデータ書込み時におけるアクセス制御装置の処理の流れにつき説明を行う。
【００３８】
はじめに、制御信号入出力部３１は、ＣＰＵ１０の制御信号入出力部１１から、出力データのビットサイズ情報を取得する（Ｓ１）。次に、制御信号入出力制御部３１は、レジスタ２３のビットサイズを、アクセス幅生成部２５から取得する（Ｓ２）。ここで、ステップＳ１の処理とステップＳ２の処理の順番は、入れ替わってもよい。又は、ステップＳ１の処理とステップＳ２の処理は、同時であってもよい。
【００３９】
次に、データ生成部３２は、出力データのビットサイズとレジスタ２３のビットサイズとの大小を比較する（Ｓ３）。例えば、レジスタ２３のビットサイズが８ビットであり、出力データのビットサイズが８ビットと両方のビットサイズが一致する場合、制御信号入出力部３１は、セレクタ３４１が取得した出力データをセレクタ３４２に直接出力するように制御する（Ｓ４）。出力データを取得したセレクタ３４２は、取得したデータをデータバス５０へ出力する。
【００４０】
次に、出力データのビットサイズとレジスタ２３のビットサイズとの大小を比較した結果、例えばレジスタ２３のビットサイズが１６ビットであり、ＣＰＵ１０の出力データのビットサイズが８ビットのように、レジスタ２３のビットサイズが大きい場合、制御信号入出力部３１は、ＣＰＵ１０に対して、ビジー信号を出力する（Ｓ５）。ＣＰＵ１０は、ビジー信号が入力されている間、出力データをそのまま出力している状態を保持する。そのため、アクセス制御装置３０がデータ生成を行っている間にＣＰＵ１０から出力データが出力されることにより、書込みデータが上書きされることを防ぐことができる。
【００４１】
次に、制御信号入出力部３１は、ＲＤ信号をレジスタ２３へ出力する。ＲＤ信号を取得したレジスタ２３は、保持データをデータバス５０へ出力する。セレクタ３４２は、データバス５０を介してレジスタ２３から出力された保持データを、セレクタ３４２を経由で８ビットレジスタ３２３及び３２４が取得する（Ｓ６）。
【００４２】
次に、データ生成部３２は、セレクタ３４１経由で取得した出力データと、セレクタ３４２経由で取得した保持データとを用いて、レジスタ２３へ出力する書込みデータを生成する（Ｓ７）。具体的には、上述したように、データ結合部３２６は、ＣＰＵから取得した８ビットの出力データを書込みデータの下位８ビットに設定し、レジスタ２３から取得した１６ビットの保持データの上位８ビットを、書込みデータの上位８ビットに設定する。もしくは、ＣＰＵから取得した８ビットの出力データを上位８ビットに設定し、レジスタ２３から取得した１６ビットの保持データの下位８ビットを、書込みデータの下位８ビットに設定してもよい。これより、データ結合部３２６は、レジスタ２３へ書込みを行う１６ビットの書込みデータを生成する。
【００４３】
次に、データ結合部３２６は、生成した１６ビットの書込みデータをデータバス５０へ出力する。（Ｓ８）。データバス５０へ出力された書込みデータは、レジスタ２３によって取得される。
【００４４】
次に、制御信号入出力部３１は、ＣＰＵ１０に対してビジー信号を解除する（Ｓ９）。これより、ＣＰＵ１０は、次の出力データの出力が可能となる。
【００４５】
次に、図４を用いて本発明の実施の形態１にかかる、周辺装置２０からレジスタ２３のビットサイズを出力する処理の流れにつき説明を行う。
【００４６】
はじめに、デコーダ２４は、ＣＰＵ１０の制御信号入出力部１１から出力されるＣＳ信号と、アドレス情報出力部１２からアドレスバス４０へ出力されるアクセス先アドレス情報とを取得する（Ｓ１１）。デコーダ２４は、ＣＳ信号とアドレス情報とをデコードし、ＣＰＵ１０がアクセスするレジスタを決定する（Ｓ１２）。ＣＳ信号は、周辺装置２０の識別子を示し、アドレス情報は、周辺装置２０の有するレジスタのアドレスを示す。ここで、アドレス情報によって、周辺装置２０の有するレジスタのアドレスを一意に識別できる場合、ＣＰＵは、アドレス情報のみを周辺装置２０へ出力してもよい。ＣＳ信号とアドレス情報は、アクセス幅生成部２５とレジスタ２３に出力される。
【００４７】
自装置が有するレジスタではない場合、処理を終了する（Ｓ１３）。自装置が保持するレジスタとそのレジスタに対応するアドレス情報とは、アクセス幅生成部２５によって保持されてもよく、周辺装置２０の有するレジスタの一つにより保持されてもよい。自装置が保持するレジスタとそのレジスタに対応するアドレス情報とが、特定のレジスタにより保持される場合、デコーダ２４は、当該特定のレジスタのアドレス情報のみを保持する。さらに、デコーダ２４は、自装置が保持するレジスタとそのレジスタに対応するアドレス情報とを保持する特定のレジスタにアドレス情報を出力し、出力したアドレス情報の有無により、取得したアドレス情報が、自装置の有するレジスタであるか否かを判定してもよい。
【００４８】
次に、デコーダ２４は、取得したアドレス情報が、自装置の有するレジスタであると判定した場合に、ＣＰＵ１０のアクセス先のレジスタ２３を特定する（Ｓ１４）。
【００４９】
次に、アクセス幅生成部２５は、特定したレジスタ２３のビットサイズデータを特定のレジスタから入手し、それをアクセス制御装置３０の制御信号入出力部３１へ出力する（Ｓ１５）。
【００５０】
以上説明したように、本発明の実施の形態１にかかるアクセスシステムを用いることにより、ＣＰＵ１０が出力する出力データのビットサイズよりも周辺装置の有するレジスタのビットサイズが大きい場合にも、ＣＰＵ１０から周辺装置へ書込むためのデータは、レジスタのビットサイズに合わせたデータに変換される。これより、周辺装置の有するレジスタが、当該レジスタのビットサイズと同一のビットサイズを有するデータの書込みのみを許容する場合においても、誤ったデータが書き込まれることを防ぐことができる。
【００５１】
また、ＣＰＵのソフトウェア処理の誤動作により、周辺装置の有するレジスタに許可されていないビットサイズのデータを書き込もうとした場合においても、誤ったデータが書き込まれることを防ぐことができる。
【００５２】
（その他の実施の形態）
実施の形態１において、アクセス制御装置３０は、ＣＰＵ１０及び周辺装置２０とは異なる装置として説明したが、ＣＰＵ１０又は周辺装置２０の一部であってもよい。
【００５３】
アクセス制御装置３０が、ＣＰＵ１０の一部である場合、ＣＰＵ１０は、周辺装置２０よりレジスタのビットサイズを取得する。さらに、ＣＰＵ１０は、取得したビットサイズに合わせたデータを生成して、周辺装置２０のレジスタへデータの書込みを行う。
【００５４】
アクセス制御装置３０が、周辺装置２０の一部である場合、周辺装置２０は、ＣＰＵ１０から取得したデータのビットサイズとレジスタのビットサイズとを比較し、ＣＰＵ１０から取得したデータのビットサイズが小さい場合、レジスタのビットサイズに合わせたデータを生成して、レジスタにデータの書込みを行う。
【００５５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５６】
１０  ＣＰＵ
１１  制御信号入出力部
１２  アドレス情報出力部
１３  データ入出力部
２０  周辺装置
２１  カウンタ
２２  コンパレータ
２３  レジスタ
２４  デコーダ
２５  アクセス幅生成部
２６  一致信号
３０  制御信号入出力部
３２  データ生成部
３３  アドレス情報入力部
３２１〜３２４  ８ビットレジスタ
３２５  ビットサイズ比較部
３２６  データ結合部
３４１〜３４２  セレクタ
【図１】
2011043980.tif 000003
【図２】
2011043980.tif 000004
【図３】
2011043980.tif 000005
【図４】
2011043980.tif 000006
【図５】
2011043980.tif 000007
【図６】
2011043980.tif 000008