(57)【要約】【課題】既存の半導体集積回路に対して機能の追加や修正がある場合でも、当該既存の半導体集積回路で作成したソフトウェアを使用可能、かつ、ＣＰＵの性能を向上可能な半導体集積回路及びレジスタアドレス制御装置を提供すること。【解決手段】半導体集積回路１１０は、モード１からモードＮ（１２０、１３０、１４０）に対応して、アドレスビットの割り当てを組み換えたレジスタマップ１〜レジスタマップＮ（１２１、１３１、１４１）を有する。各レジスタマップは、対応するモードによって選択することができ、モードを切替えることで、いずれかのレジスタマップが使用可能となる。【選択図】図１
2010122787.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがアクセスするレジスタと当該レジスタを指定するアドレスとを対応付けるレジスタマップを備え、
前記レジスタマップは、複数のモードのそれぞれに対応して、アドレスビットの割り当てを組み替えた複数のレジスタマップを含み、
モードに応じて前記複数のレジスタマップから選択される半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
前記複数のレジスタマップは、それぞれ異なるアドレス空間に配置され、前記複数のレジスタマップが同時に使用される半導体集積回路。
【請求項３】
請求項１に記載の半導体集積回路であって、
前記複数のモードのそれぞれにアドレス情報とビット情報の初期値が設定され、
各モードの初期値に基づいてレジスタマップを切り替える半導体集積回路。
【請求項４】
アドレス情報が設定されるレジスタと、
前記レジスタに前記アドレス情報を設定するアドレス情報設定部と、
を備えるレジスタアドレス制御装置。
【請求項５】
請求項４に記載のレジスタアドレス制御装置であって、
前記レジスタに前記アドレス情報の先頭アドレスを設定する先頭アドレス設定部を備えるレジスタアドレス制御装置。
【請求項６】
請求項４に記載のレジスタアドレス制御装置であって、
前記レジスタを複数備え、
前記アドレス情報設定部により設定された第１のレジスタのアドレスが、他のレジスタに設定されたアドレスと重複するか否かの判定を示す第１の状態レジスタを備えるレジスタアドレス制御装置。
【請求項７】
請求項５に記載のレジスタアドレス制御装置であって、
前記先頭アドレス設定部により設定された第１のレジスタの先頭アドレスが、他のレジスタに設定されたアドレスと重複するか否かの判定を示す第２の状態レジスタを備えるレジスタアドレス制御装置。
【請求項８】
アドレス情報及びビット情報が設定されるレジスタと、
前記レジスタに前記アドレス情報及び前記ビット情報を設定するアドレスビット情報設定部と、
を備えるレジスタアドレス制御装置。
【請求項９】
請求項８に記載のレジスタアドレス制御装置であって、
前記アドレスビット情報設定部は、前記ビット情報を一意に設定するレジスタアドレス制御装置。
【請求項１０】
請求項４〜９のいずれか一項に記載のレジスタアドレス制御装置であって、
前記レジスタへの書き込みアクセスを禁止するロック制御部を備えるレジスタアドレス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵがその周辺回路のレジスタにアクセスするための半導体集積回路及びレジスタアドレス制御装置に関する。
【背景技術】
【０００２】
通常、ＣＰＵによって制御される周辺回路には、アドレス信号、データ信号及び制御信号等の信号がバスを介してＣＰＵから送られる。周辺回路は、これらの信号が示す情報を記憶するレジスタを備え、レジスタに記録された情報に基づいて動作する。レジスタにはアドレス信号によって管理されるアドレスが割り当てられており、メモリと同様に管理される。
【０００３】
特許文献１には、ＣＰＵからのアドレス信号に応じてチップセレクト信号を出力し、所定のメモリチップを有効化する半導体集積回路であって、複数のレジスタに記憶されているアドレスとＣＰＵから送られたアドレスとを比較し、比較した結果の有効又は無効の制御を行い、比較結果及び有効又は無効の制御結果に応じてチップセレクト信号を生成することにより、メモリチップが割り当てられるアドレス空間を任意に選択可能な半導体集積回路が開示されている。
【０００４】
半導体集積回路を新たに設計する場合は、全ての回路を新規に設計することなく、既存の半導体集積回路を流用して設計することが多い。その際、周辺回路も同様に流用されるが、機能の追加や修正等があると、周辺回路が備えるレジスタに対して、流用元である既存の半導体集積回路と同じアドレスが割り当てられない場合がある。その結果、既存の半導体集積回路で作成したソフトウェアを新たに設計した半導体集積回路で使用できない。
【０００５】
また、例えば８ビット幅のレジスタの１ビット毎に異なる制御機能が割り当てられた場合、単一のアドレスで指定されるレジスタの各ビットに対しては、変更や更新等の操作が同時に行われる。したがって、任意の１ビットのみを操作するには、レジスタの値を一旦読み出し、その値に対して制御したいビットのみに変更を加えた値をレジスタに書き込むことが必要になる。
【０００６】
しかし、マルチタスクやマルチプロセッサによって制御されるシステムにおいては、１つのタスクにおけるレジスタ値の読み出しと書き込みのアクセスが必ず連続となる保証がない。このため、セマフォ等のソフトウェアによる資源管理の手段を用いてアクセスの排他性を確保しなければならない。その結果、ＣＰＵの処理性能が犠牲になり、ソフトウェア設計が複雑になる。
【０００７】
【特許文献１】特開平６−２８２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、既存の半導体集積回路に対して機能の追加や修正がある場合でも、当該既存の半導体集積回路で作成したソフトウェアを使用可能、かつ、ＣＰＵの性能を向上可能な半導体集積回路及びレジスタアドレス制御装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明は、ＣＰＵがアクセスするレジスタと当該レジスタを指定するアドレスとを対応付けるレジスタマップを備え、前記レジスタマップは、複数のモードのそれぞれに対応して、アドレスビットの割り当てを組み替えた複数のレジスタマップを含み、モードに応じて前記複数のレジスタマップから選択される半導体集積回路を提供する。
【００１０】
上記半導体集積回路では、前記複数のレジスタマップは、それぞれ異なるアドレス空間に配置され、前記複数のレジスタマップが同時に使用される。
【００１１】
上記半導体集積回路では、前記複数のモードのそれぞれにアドレス情報とビット情報の初期値が設定され、各モードの初期値に基づいてレジスタマップを切り替える。
【００１２】
本発明は、アドレス情報が設定されるレジスタと、前記レジスタに前記アドレス情報を設定するアドレス情報設定部と、を備えるレジスタアドレス制御装置を提供する。
【００１３】
上記レジスタアドレス制御装置は、前記レジスタに前記アドレス情報の先頭アドレスを設定する先頭アドレス設定部を備える。
【００１４】
上記レジスタアドレス制御装置は、前記レジスタを複数備え、前記アドレス情報設定部により設定された第１のレジスタのアドレスが、他のレジスタに設定されたアドレスと重複するか否かの判定を示す第１の状態レジスタを備える。
【００１５】
上記レジスタアドレス制御装置は、前記先頭アドレス設定部により設定された第１のレジスタの先頭アドレスが、他のレジスタに設定されたアドレスと重複するか否かの判定を示す第２の状態レジスタを備える。
【００１６】
本発明は、アドレス情報及びビット情報が設定されるレジスタと、前記レジスタに前記アドレス情報及び前記ビット情報を設定するアドレスビット情報設定部と、を備えるレジスタアドレス制御装置を提供する。
【００１７】
上記レジスタアドレス制御装置では、前記アドレスビット情報設定部は、前記ビット情報を一意に設定する。
【００１８】
上記レジスタアドレス制御装置は、前記レジスタへの書き込みアクセスを禁止するロック制御部を備える。
【発明の効果】
【００１９】
本発明によれば、既存の半導体集積回路に対して機能の追加や修正がある場合でも、当該既存の半導体集積回路で作成したソフトウェアを使用可能、かつ、ＣＰＵの性能を向上可能な半導体集積回路及びレジスタアドレス制御装置を提供できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態について、図面を参照して説明する。
【００２１】
（第１の実施形態）
図１は、第１の実施形態の半導体集積回路を示す概略図である。図１に示すように、第１の実施形態の半導体集積回路１１０は、モード１〜Ｎ（１２０、１３０、１４０）に対してレジスタとレジスタを指定するアドレスとの対応を決めるため、アドレスビットの割り当てを組み換えたレジスタマップ１〜Ｎ（１２１、１３１、１４１）を有する。レジスタマップ１〜Ｎ（１２１、１３１、１４１）は、対応するモード（１２０、１３０、１４０）に応じてそれぞれ選択される。
【００２２】
本実施形態の半導体集積回路１１０は、例えば、レジスタマップ１（１２１）が既存の半導体集積回路と同じレジスタマップであり、レジスタマップ２（１３１）が既存の半導体集積回路に機能の追加や修正を行ったレジスタマップである。したがって、モード１（１２０）に設定された場合には、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアをそのまま使用することができる。また、特定の機能を使用するためのレジスタにアクセスできないレジスタマップをレジスタマップＮ（１４１）とした場合、メタルヒューズ等を用いて半導体集積回路１１０のモードをモードＮ（１４０）に固定することで、特定の機能に限定した半導体集積回路を生成することができる。
【００２３】
なお、複数のモードのそれぞれアドレス情報とビット情報の初期値を設定し、複数のレジスタマップを、各モードの初期値に基づいて切り替えても良い。
【００２４】
本実施形態の半導体集積回路１１０によれば、既存の半導体集積回路で作成したソフトウェアがそのまま使用されたレジスタマップ又は機能の追加や修正を行ったレジスタマップを、モードに応じて選択することができる。したがって、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアをそのまま使用することができる。
【００２５】
（第２の実施形態）
図２は、第２の実施形態の半導体集積回路を示す概略図である。図２に示すように、第２の実施形態の半導体集積回路２１０は、それぞれ異なるアドレス空間に配置されたレジスタマップ１〜Ｎ（２２１、２３１、２４１）を有する。レジスタマップ１〜Ｎ（２２１、２３１、２４１）を異なるアドレス空間に配置することにより、複数のレジスタマップを同時に使用することができる。
【００２６】
本実施形態の半導体集積回路２１０は、例えば、レジスタマップ１（２２１）が既存の半導体集積回路と同じレジスタマップであり、レジスタマップ２（２３１）が既存の半導体集積回路に機能の追加や修正を行ったレジスタマップである。したがって、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアをそのまま使用することができる。また、既存の半導体集積回路と同じレジスタマップ１（２２１）及び機能の追加や修正を行ったレジスタマップ２（２３１）を同時に使用することができる。このため、既存の半導体集積回路で作成したソフトウェアに追加又は修正を加えることによって、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００２７】
本実施形態の半導体集積回路２１０によれば、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路にそのまま流用することができる。さらに、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００２８】
（第３の実施形態）
図３は、第３の実施形態のレジスタアドレス制御装置を示す概略図である。図３に示すように、第３の実施形態のレジスタアドレス制御装置は、レジスタ３１０と、レジスタ３１０にアドレス情報を設定するアドレス情報設定部３１２とを有する。図３に示す例では、レジスタ３１０にアドレス３１１が設定されている。
【００２９】
アドレス情報設定部３１２は、レジスタ３１０にアドレス情報を任意に設定する。このため、既存の半導体集積回路と同じレジスタマップに、追加したレジスタのアドレスを自由に設定することができる。したがって、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路にそのまま流用できる。また、既存の半導体集積回路で作成したソフトウェアに追加又は修正を加えることによって、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００３０】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。さらに、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００３１】
（第４の実施形態）
図４は、第４の実施形態のレジスタアドレス制御装置を示す概略図である。図４に示すように、第４の実施形態のレジスタアドレス制御装置は、レジスタ１〜Ｎ（４１１、４２１、４３１）と、レジスタ１（４１０）にアドレス情報を設定する先頭アドレス設定部４１２とを有する。図４に示す例では、レジスタ２（４２０）〜レジスタＮ（４３０）にそれぞれアドレス２（４２１）〜アドレスＮ（４３１）が設定されている。なお、アドレス２〜Ｎ（４２１、４３１）はアドレス１（４１１）に連続している。
【００３２】
先頭アドレス設定部４１２は、複数のレジスタに先頭アドレスを任意に設定できる。このため、既存の半導体集積回路と同じレジスタマップに、追加したレジスタのアドレスを自由に設定することができる。したがって、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路にそのまま流用できる。また、既存の半導体集積回路で作成したソフトウェアに追加又は修正を加えることによって、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００３３】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。さらに、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００３４】
（第５の実施形態）
図５は、第５の実施形態のレジスタアドレス制御装置を示す概略図である。図５に示すように、第５の実施形態のレジスタアドレス制御装置は、レジスタ５１０と、レジスタ５１０にアドレス情報及びビット情報を設定するアドレスビット情報設定部５１３とを有する。図４に示す例では、レジスタ５１０にアドレス５１１が設定されている。
【００３５】
アドレスビット情報設定部５１３は、レジスタ５１１にアドレス情報及びビット情報をそれぞれ任意に設定する。このため、既存の半導体集積回路と同じレジスタマップに、追加したレジスタのアドレスを自由に設定することができる。したがって、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアをそのまま使用することができる。また、既存の半導体集積回路で作成したソフトウェアに追加又は修正を加えることによって、追加機能や修正機能を含むソフトウェアの設計が可能となる。
【００３６】
図６は、半導体集積回路において、レジスタのアドレスとビットの位置をアドレスビット情報設定部に設定する実施例を示す図である。図６に示すように、半導体集積回路６１０は、回路１（６１１）及び回路２（６１２）を有する。
【００３７】
回路１（６１１）を制御するためのレジスタ１（６２１）は、アドレスビット情報設定部１（６２２）によってレジスタ１（６２１）を指定するアドレス情報とビット情報を設定する。また、回路２（６１２）を制御するためのレジスタ２（６２３）は、アドレスビット情報設定部２（６２４）によってレジスタ２（６２３）を指定するアドレス情報とビット情報を設定する。
【００３８】
半導体集積回路６１０で、回路１（６１１）と回路２（６１２）を同時に制御する必要がある場合には、アドレスビット情報設定部１（６２２）にアドレス０（６３１）を設定し、ビット位置０ビット目を設定する。また、アドレスビット情報設定部２（６２４）にアドレス０（６３１）を設定し、ビット位置４ビット目を設定する。
【００３９】
また、半導体集積回路６１０で、回路１（６１１）と回路２（６１２）を別のタスクで制御する必要がある場合には、アドレスビット情報設定部１（６２２）にアドレス１（６４１）を設定し、ビット位置０ビット目を設定する。また、アドレスビット情報設定部２（６２４）にアドレス２（６５１）を設定し、ビット位置０ビット目を設定する。
【００４０】
この実施例によれば、レジスタの１ビット毎にアドレスとビット位置を設定することができる。したがって、異なるタスクで、使用するレジスタを異なるアドレスに設定することにより、レジスタアクセスの排他性を確保することができる。また、タスクの実行に必要なレジスタを選択して１つのアドレスに設定することで、レジスタのアクセス時間を最短にすることができる。その結果、ＣＰＵの性能が向上する。
【００４１】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。また、追加機能や修正機能を含むソフトウェアの設計が可能となる。さらに、レジスタアクセスの排他性を確保することができると共に、レジスタのアクセス時間を最短にすることができる。その結果、ＣＰＵの性能が向上する。
【００４２】
（第６の実施形態）
図７は、第６の実施形態のレジスタアドレス制御装置を示す概略図である。図７に示すように、第６の実施形態のレジスタアドレス制御装置は、レジスタ０〜４（７１０、７２０）と、レジスタ０（７１０）にアドレス情報を設定するアドレス情報設定部７１２と、アドレス情報設定部７１２が設定した値に誤りがあるか否かの判定結果を示す状態レジスタ１（７１３）と、レジスタ１（７２０）にアドレス情報を設定する先頭アドレス設定部７２２と、先頭アドレス情報設定部７２２が設定した値に誤りがあるか否かの判定結果を示す状態レジスタ２（７２３）とを有する。レジスタ２〜４に対応するアドレス２〜４はアドレス１（７１１）に連続している。
【００４３】
状態レジスタ１（７１３）及び状態レジスタ２（７２３）の動作について説明する。例えば、アドレス情報設定部７１２に２番地、先頭アドレス設定部７２２に１番地を設定した場合、アドレス記憶部０（７１１）には２番地、アドレス記憶部２にも２番地が設定されるためエラーとなり、状態レジスタ１（７１３）はエラー状態を示す。このように、アドレス情報設定部７１２による誤った値の設定を防ぐことができる。
【００４４】
状態レジスタ２（７２３）の動作も同様であり、エラー状態を確認することにより、先頭アドレス情報設定部７２２によって設定された値に誤りがあるか否かを判定することができる。このため、先頭アドレス情報設定部７２２による誤った値の設定を防ぐことができる。
【００４５】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。また、追加機能や修正機能を含むソフトウェアの設計が可能となる。さらに、アドレス情報設定部及び先頭アドレス情報設定部による誤った値の設定を防ぐことができる。
【００４６】
（第７の実施形態）
図８は、第７の実施形態のレジスタアドレス制御装置を示す概略図である。図８に示すように、第７の実施形態のレジスタアドレス制御装置は、レジスタ１，２（８２１、８２３）と、レジスタ１（８２１）にアドレス情報及びビット情報を設定するアドレス情報設定部１（８２２）と、レジスタ２（８２３）にアドレス情報及びビット情報を設定するアドレス情報設定部２（８２４）とを有する。
【００４７】
アドレス情報設定部１（８２２）がレジスタ１（８２１）にアドレス０（８１１）を設定し、アドレス情報設定部２（８２４）がレジスタ２（８２３）にアドレス０（８１１）を設定した場合、下位ビットから順に詰める等の条件を持たせることで、ビット情報は一意に設定される。
【００４８】
したがって、第６の実施形態に比べて、ビット情報を設定するための回路規模を縮減できる。また、レジスタの１ビット毎にアドレスを設定することができるため、別のタスクで使用するレジスタを異なるアドレスに設定することにより、レジスタのアクセスに排他性を確保することができる。さらに、タスクの実行に必要なレジスタを選択して１つのアドレスに設定することで、レジスタのアクセス時間を最短にすることができる。その結果、ＣＰＵの性能が向上する。
【００４９】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。また、追加機能や修正機能を含むソフトウェアの設計が可能となる。さらに、レジスタアクセスの排他性を確保することができると共に、レジスタのアクセス時間を最短にすることができる。その結果、ＣＰＵの性能が向上する。
【００５０】
（第８の実施形態）
図９は、第８の実施形態のレジスタアドレス制御装置を示す概略図である。図９に示すように、第８の実施形態のレジスタアドレス制御装置は、追加レジスタ９１１と、追加レジスタ９１１に対する書き込みアクセスの可否を制御するロック制御部９１２とを有する。なお、図９に示す例では、追加レジスタ９１１にアドレス０（９１０）が設定されている。既存の半導体集積回路のレジスタマップに新規機能を追加した場合、ロック制御部９１２は、追加レジスタ９１１への書き込みアクセスをロックすることができる。
【００５１】
本実施形態のレジスタアドレス制御装置によれば、ソフトウェア設計工数をかけることなく、既存の半導体集積回路で作成したソフトウェアを、新たに設計する半導体集積回路でもそのまま使用することができる。
【産業上の利用可能性】
【００５２】
本発明に係る半導体集積回路及びレジスタアドレス制御装置は、半導体集積回路の設計に際し、機能の追加や修正がある場合でも、既存の半導体集積回路で作成したソフトウェアを使用することができると共に、ＣＰＵの性能を向上させることが可能な半導体集積回路の設計等に有用である。
【図面の簡単な説明】
【００５３】
【図１】第１の実施形態の半導体集積回路を示す概略図
【図２】第２の実施形態の半導体集積回路を示す概略図
【図３】第３の実施形態のレジスタアドレス制御装置を示す概略図
【図４】第４の実施形態のレジスタアドレス制御装置を示す概略図
【図５】第５の実施形態のレジスタアドレス制御装置を示す概略図
【図６】第５の実施形態のレジスタアドレス制御装置において、レジスタのアドレスとビット位置をアドレスビット情報設定部に設定する実施例を示す図
【図７】第６の実施形態のレジスタアドレス制御装置を示す概略図
【図８】第７の実施形態のレジスタアドレス制御装置を示す概略図
【図９】第８の実施形態のレジスタアドレス制御装置を示す概略図
【符号の説明】
【００５４】
１２０、１３０、１４０  モード
１２１、１３１、１４１、２２１、２３１、２４１  レジスタマップ
３１０、４１０、４２０、４３０、５１０、６２１、６２３、７１０、７２０、８２１、８２３、９１１  レジスタ
３１１、４１１、４２１、４３１、５１１、６３１、６４１、６５１、７１１、７２１、８１１、９１０  アドレス
３１２、７１２、８２２、８２４  アドレス情報設定部
４１２、７２２  先頭アドレス設定部
５１２  ビット
５１３、６２２、６２４  アドレスビット情報設定部
７１３、７２３  状態レジスタ
９１２  ロック制御部
【図１】
2010122787.tif 000003
【図２】
2010122787.tif 000004
【図３】
2010122787.tif 000005
【図４】
2010122787.tif 000006
【図５】
2010122787.tif 000007
【図６】
2010122787.tif 000008
【図７】
2010122787.tif 000009
【図８】
2010122787.tif 000010
【図９】
2010122787.tif 000011