(57)【要約】【課題】シングルプロセッサ用のソフトウェアを使用可能なアドレス変換装置及びプロセッサシステムを提供すること。【解決手段】第１アドレスＡ１を保持する第１アドレス保持部１１と、前記第１アドレスＡ１と異なる第２アドレスＡ２を保持する第２アドレス保持部１２と、前記第１アドレスＡ１のうち、変換対象となるビットの情報Ｂを保持する第１対象保持部１３と、第３アドレスＡ３と前記第１アドレスＡ１とを比較する比較部１５と、前記比較部において前記第３アドレスＡ３が前記第１アドレスＡ１に一致する場合に、前記第３アドレスＡ３において、前記第１対象保持部１３に保持される前記情報に相当するビットを、前記第２アドレスＡ２に一致するように変換して第４アドレスＡ４を得る変換部１６とを具備する。【選択図】図１
2008269352.tif 000002
【特許請求の範囲】
【請求項１】
多ビットの第１アドレスを保持する第１アドレス保持部と、
前記第１アドレスと異なる、多ビットの第２アドレスを保持する第２アドレス保持部と、
前記第１アドレスのうち、変換対象となるビットの情報を保持する変換対象保持部と、
外部から入力された第３アドレスと、前記第１アドレス保持部に保持される前記第１アドレスとを比較する比較部と、
前記比較部において前記第３アドレスが前記第１アドレスに一致する場合に、前記第３アドレスにおいて、前記変換対象保持部に保持される前記情報に相当するビットを、前記第２アドレス保持部に保持される前記第２アドレスに一致するように変換して第４アドレスを得る変換部と
を具備することを特徴とするアドレス変換装置。
【請求項２】
前記第１アドレス保持部は、前記第１アドレスと異なる多ビットの第５アドレスを更に保持し、
前記第２アドレス保持部は、前記第５アドレスと異なる多ビットの第６アドレスを更に保持し、
前記変換対象保持部は、前記第５アドレスのうち、変換対象となるビットの情報を保持し、
前記比較部は、前記第３アドレスと、前記第１アドレス保持部に保持される前記第５アドレスとを更に比較し、
前記変換部は、前記比較部において前記第３アドレスが前記第５アドレスに一致する場合に、前記第３アドレスにおいて、前記変換対象保持部に保持される前記情報に相当するビットを、前記第２アドレス保持部に保持される前記第６アドレスに一致するように変換して第７アドレスを得る
ことを特徴とする請求項１記載のアドレス変換装置。
【請求項３】
前記第３アドレスは複数のプロセッサから与えられ、
前記変換部において前記第３アドレスの変換を行うか否かを、前記第３アドレスの送信元である前記プロセッサに応じて判定する判定部を更に備える
ことを特徴とする請求項１記載のアドレス変換装置。
【請求項４】
データ保持可能なメモリ装置と、
前記メモリ装置へアクセスする際に前記第３アドレスを発生する第１プロセッサ及び第２プロセッサと、
前記メモリ装置と前記第１、第２プロセッサとの間を接続するデータバスと、
前記データバスの内部に設けられ、または前記データバスに接続された請求項１記載のアドレス変換装置と
を具備し、前記アドレス変換装置は、前記第３アドレスが前記第２プロセッサから与えられた場合には前記変換部に対して前記第３アドレスの変換を行わせ、第１プロセッサから与えられた場合には前記変換部に対して前記第３アドレスの変換を行わせないことを判定する判定部を更に備え、
前記メモリ装置は、前記第３アドレスに相当する領域において前記第１プロセッサが実行すべきプログラムを保持し、前記第４アドレスに相当する領域において前記第２プロセッサが実行すべきプログラムを保持する
ことを特徴とするプロセッサシステム。
【請求項５】
データ保持可能なメモリ装置と、
前記メモリ装置へアクセスする際にアドレスを発生する複数のプロセッサと、
前記メモリ装置と前記プロセッサとを接続するデータバスと、
前記データバスの内部に設けられ、または前記データバスに接続され、前記プロセッサによって発生された前記アドレスを変換するアドレス変換装置と、
前記プロセッサの故障または負荷を計測する計測装置と
を具備し、前記メモリ装置は、内部の領域毎に、前記プロセッサの各々が実行すべきプログラムを保持し、
前記アドレス変換装置は、前記プロセッサによって発生された前記アドレスを、前記計測装置で計測された前記故障または前記負荷に応じて、いずれかの前記領域に相当するアドレスに変換する
ことを特徴とするプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドレス変換装置及びプロセッサシステムに関する。例えば、マルチプロセッサシステムにおけるアドレス変換方法に関する。
【背景技術】
【０００２】
従来、複数のプロセッサを備えたマルチプロセッサシステムが知られている。マルチプロセッサシステムでは、例えば起動直後等において、複数のプロセッサがメモリの同一アドレスを参照する。従って、複数のプロセッサに異なる処理を行わせる為には、アドレスを変換することによりプロセッサ毎にメモリの異なる領域にアクセスさせる方法が知られている（例えば特許文献１参照）。
【０００３】
しかしながら、上記従来の方法であると、アドレス変換の為の構成が複雑であり、且つ処理が煩雑となるという問題があった。従って、マルチプロセッサシステムではシングルプロセッサ用のブートコードを使用することが困難であり、またブートコードが複雑化するという問題があった。
【特許文献１】特開昭６０−０３３６５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明は、シングルプロセッサ用のソフトウェアを使用可能なアドレス変換装置及びプロセッサシステムを提供する。
【課題を解決するための手段】
【０００５】
この発明の一態様に係るアドレス変換装置は、多ビットの第１アドレスを保持する第１アドレス保持部と、前記第１アドレスと異なる、多ビットの第２アドレスを保持する第２アドレス保持部と、前記第１アドレスのうち、変換対象となるビットの情報を保持する変換対象保持部と、外部から入力された第３アドレスと、前記第１アドレス保持部に保持される前記第１アドレスとを比較する比較部と、前記比較部において前記第３アドレスが前記第１アドレスに一致する場合に、前記第３アドレスにおいて、前記変換対象保持部に保持される前記情報に相当するビットを、前記第２アドレス保持部に保持される前記第２アドレスに一致するように変換して第４アドレスを得る変換部とを具備する。
【０００６】
また、この発明の一態様に係るプロセッサシステムは、データ保持可能なメモリ装置と、前記メモリ装置へアクセスする際に前記第３アドレスを発生する第１プロセッサ及び第２プロセッサと、前記メモリ装置と前記第１、第２プロセッサとの間を接続するデータバスと、前記データバスの内部に設けられ、または前記データバスに接続された上記アドレス変換装置とを具備し、前記アドレス変換装置は、前記第３アドレスが前記第２プロセッサから与えられた場合には前記変換部に対して前記第３アドレスの変換を行わせ、第１プロセッサから与えられた場合には前記変換部に対して前記第３アドレスの変換を行わせないことを判定する判定部を更に備え、前記メモリ装置は、前記第３アドレスに相当する領域において前記第１プロセッサが実行すべきプログラムを保持し、前記第４アドレスに相当する領域において前記第２プロセッサが実行すべきプログラムを保持する。
【発明の効果】
【０００７】
この発明によれば、シングルプロセッサ用のソフトウェアを使用可能なアドレス変換装置及びプロセッサシステムを提供出来る。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
［第１の実施形態］  
この発明の第１の実施形態に係るアドレス変換装置について、図１を用いて説明する。図１は、本実施形態に係るアドレス変換装置のブロック図である。
【００１０】
図示するようにアドレス変換装置１０は、第１〜第４レジスタ１１〜１４、比較部１５、及び変換部１６を備えている。  
第１レジスタ１１は、第１アドレスＡ１を保持する。第１アドレスＡ１は、１６進数８桁のアドレス情報であり、変換されるべきアドレス情報である。つまり第１アドレスＡ１は、２進数３２桁のアドレス情報である。なお、以下の説明において、アドレスの先頭に付記する“０ｘ”は、当該アドレスが１６進数であることを示す。一例として、第１アドレスＡ１は“０ｘ００００＿００００”である。
【００１１】
第２レジスタ１２は、第２アドレスＡ２を保持する。第２アドレスＡ２は、１６進数８桁のアドレス情報であり、変換後のアドレス情報である。つまり第２アドレスＡ２は、２進数３２桁のアドレス情報である。そして、変換されるべきアドレスは、第２アドレスＡ２に従って変換される。一例として、第２アドレスＡ２は“０ｘ００１０＿００００”である。
【００１２】
第３レジスタ１３は、変換対象となるビットを示す対象ビット情報Ｂを保持する。対象ビット情報Ｂは、１６進数８桁のデータである。つまり対象ビット情報Ｂは、２進数３２桁のアドレス情報である。そして、１６進数８桁すなわち２進数３２桁のデータのうち、“１”で示されるビットが、変換対象となるビットである。一例として、対象ビット情報Ｂは“０ｘｆｆｆ０＿００００”である。従って本例の場合であると、２進数で表した場合に上位１２ビットが変換対象となる。また、例えばＢ＝“０ｘｆｆｅ０＿００００”であったとすれば、２進数で表した場合の上位１１ビットが変換対象である。
【００１３】
第４レジスタ１４は、アドレス変換が有効であるか否かを示すフラグＶＡＬＩＤを保持する。フラグＶＡＬＩＤが“１”である場合、アドレス変換は有効とされ、アドレス変換が行われる。逆にフラグＶＡＬＩＤが“０”である場合には、アドレス変換は無効とされ、アドレス変換は行われない。
【００１４】
比較部１５は、外部から入力された入力アドレスＡ３と、第１レジスタに保持される第１アドレスＡ１とを比較し、比較結果を変換部１６へ出力する。この際、比較部１５は第３レジスタ１３から対象ビット情報Ｂを読み出し、対象ビット情報Ｂによって指定された変換対象となるビットについてのみ、入力アドレスＡ３と第１アドレスＡ１とを比較する。図１の例であると、対象ビット情報Ｂによって、変換対象となるビットは２進数で表現した場合の上位１２ビット（１６進数表記の場合の上位３桁）であることが分かる。従って比較部１５は、入力アドレスＡ３の上位１２ビットと、第１アドレスＡ１の上位１２ビットとを比較する。
【００１５】
変換部１６は、比較部１５における比較結果が一致し、且つ第４レジスタ１４におけるフラグＶＡＬＩＤが“１”である場合に、入力アドレスＡ３を第２レジスタ１２に保持される第２アドレスＡ２に従って変換し、アドレスＡ４を得る。アドレス変換は、入力アドレスＡ３において対象ビット情報Ｂによって指定されるビットを、第２アドレスＡ２に置き換えることにより行われる。従って図１の例であると、入力アドレスＡ３の上位１２ビットが、第２アドレスＡ２の上位１２ビット（“０ｘ００１”＝“０ｂ０００００００００００１”）に置き換えられる。なお、アドレスの先頭に付記する“０ｂ”は、当該アドレスが２進数表記であることを示す。
【００１６】
次に、上記構成のアドレス変換装置１０の動作について、図２を用いて説明する。図２は、アドレス変換装置１０の動作の流れを示すフローチャートである。以下、入力アドレスＡ３が“０ｘ００００＿００００”である場合を例に挙げて説明する。
【００１７】
アドレスＡ３が入力されると、まず変換部１６は第４レジスタ１４内のフラグＶＡＬＩＤを確認する。そしてＶＡＬＩＤ＝“０”であった場合（ステップＳ１０、ＮＯ）、変換部１６はアドレスＡ３を変換することなく素通しし（ステップＳ１１）、そのままアドレスＡ４として出力する（ステップＳ１２）。
【００１８】
ＶＡＬＩＤ＝“１”であった場合（ステップＳ１０、ＹＥＳ）、比較部１５は第３レジスタ１３に保持される対象ビット情報Ｂによって指定されるビットにつき、入力アドレスＡ３と第１アドレスＡ１とを比較する（ステップＳ１３）。対象ビット情報Ｂによって指定されるビットは上位１２ビットである。従って比較部１５は、入力アドレスＡ３の上位１２ビット“０ｘ０００”と、第１アドレスＡ１の上位１２ビット“０ｘ０００”とを比較する。両者の、対象ビット情報Ｂによって指定される全ビットが等しいか否かを判定する処理は、例えば次の式で示される処理を行えば良い。  
（（入力アドレスＡ３）xor（第１アドレスＡ１））and（対象ビット情報Ｂ）  
上式において、“xor”はビットごとの排他的論理和演算を示し、“and”はビットごとの論理積演算を示す。そして上式が“０”となれば、両者の全ビットが等しいことになる。
【００１９】
両者が一致しない場合（ステップＳ１４、ＮＯ）には、処理はステップＳ１１に進む。すなわち、変換部１６はアドレス変換を行わず、入力アドレスＡ３をそのままアドレスＡ４として出力する（ステップＳ１２）。
【００２０】
両者が一致した場合（ステップＳ１４、ＹＥＳ）には、ステップＳ１５の処理に進む。本例の場合、入力アドレスＡ３の上位１２ビットは“”０ｘ０００”であり、第１アドレスＡ１の上位１２ビットも“０ｘ０００”であるので、ステップＳ１５に進む。
【００２１】
ステップＳ１５において変換部１６は、入力アドレスＡ３の変換対象ビットを第２アドレスＡ２に変換して、アドレスＡ４を得る。本例の場合であると、変換部１６は第３レジスタ１３に保持される対象ビット情報Ｂから、変換すべきビットは上位１２ビットであることを把握する。そこで変換部１６は、入力アドレスＡ３の上位１２ビット“０ｘ０００”を、第２アドレスＡ２の上位１２ビット“０ｘ００１”に置き換える。その結果、入力アドレスＡ３＝“０ｘ００００＿００００”は、アドレスＡ４＝“０ｘ００１０＿００００”に変換される。つまり、一般化して説明すると、入力アドレスＡ３＝“０ｘ０００Ｘ＿ＸＸＸＸ”（“Ｘ”は任意の１６進数）は、アドレスＡ４＝“０ｘ００１Ｘ＿ＸＸＸＸ”に変換される。そして、変換して得られたアドレスＡ４が変換部１６から出力される（ステップＳ１２）。
【００２２】
上記構成のアドレス変換装置であると、下記（１）の効果が得られる。  
（１）簡便な手法によりアドレスを変換出来る。  
本実施形態に係る構成であると、変換すべきアドレスの情報（第１アドレスＡ１）と、変換後のアドレスの情報（第２アドレスＡ２）と、変換すべきビットを示す情報（対象ビット情報Ｂ）とをレジスタに格納している。そして、第１アドレスＡ１と入力アドレスＡ３とが一致した際に、入力アドレスＡ３における対象ビット情報Ｂに対応するビットを、第２アドレスＡ２に変換する。従って、簡便な手法によりアドレス変換が可能となり、アドレス変換装置１０の構成も簡略化出来る。
【００２３】
なお、本実施形態においては第１アドレスＡ１、第２アドレスＡ２、対象ビット情報Ｂ、及びフラグＶＡＬＩＤを保持するために個々のレジスタ１１〜１４がそれぞれ設けられている。しかし、１つのレジスタにこれらの情報Ａ１、Ａ２、Ｂ、ＶＡＬＩＤが保持されていても良い。
【００２４】
また、これらの情報Ａ１、Ａ２、Ｂ、ＶＡＬＩＤは、静的に固定された値であっても良いし、制御レジスタ等を用いて動的に変更出来る値であっても良い。また、情報の一部を省略しても構わない。例えば、アドレスの下位の数ビットにつき変換の必要が無い場合には、第１アドレスＡ１、第２アドレスＡ２、及び対象ビット情報Ｂにおける当該ビットを省略しても良い。より具体的には、図１に示す構成において、入力アドレスＡ３の下位１６ビットを変換しない構成の場合には、第１アドレスＡ１＝“０ｘ００００”、第２アドレスＡ２＝“０ｘ００１０”、対象ビット情報Ｂ＝“０ｘｆｆｆ０”としても良い。更に、アドレス変換を常時有効とする場合には、フラグＶＡＬＩＤは不要である。
【００２５】
［第２の実施形態］  
次に、この発明の第２の実施形態に係るアドレス変換装置について説明する。本実施形態は、上記第１の実施形態で説明した構成において、第１アドレスＡ１、第２アドレスＡ２、対象ビット情報Ｂ、及びフラグＶＡＬＩＤが複数設けられたものである。図３は、本実施形態に係るアドレス変換装置のブロック図である。
【００２６】
図示するように、本実施形態に係るアドレス変換装置１０は、上記第１の実施形態で説明した構成において、第１レジスタ１１が３つの第１アドレスＡ１−０、Ａ１−１、Ａ１−２を保持する。また、第２レジスタ１２が３つの第２アドレスＡ２−０、Ａ２−１、Ａ２−２を保持する。更に、第３レジスタ１３が３つの対象ビット情報Ｂ０、Ｂ１、Ｂ２を保持する。そして、第４レジスタ１４が３つのフラグＶＡＬＩＤ０、ＶＡＬＩＤ１、ＶＡＬＩＤ２を保持する。
【００２７】
一例として、第１アドレスＡ１−０＝“０ｘ００００＿００００”、Ａ１−１＝“０ｘ００１０＿００００”、Ａ１−１＝“０ｘ２０００＿００００”である。また、第２アドレスＡ２−０＝“０ｘ００１０＿００００”、Ａ２−１＝“０ｘ００００＿００００”、Ａ２−２＝“０ｘ３０００＿００００”である。更に、対象ビット情報Ｂ０＝“０ｘｆｆｆ０＿００００”、Ｂ１＝“０ｘｆｆｆ０＿００００”、Ｂ２＝“０ｘｆ０００＿００００”である。更に、フラグＶＡＬＩＤ０＝“１”、ＶＡＬＩＤ１＝“１”、ＶＡＬＩＤ２＝“０”である。  
その他の構成は、第１の実施形態で説明した通りである。なお、アドレスＡ１−０〜Ａ１−２、Ａ２−０〜Ａ２−２、Ｂ０〜Ｂ２、及びＶＡＬＩＤ０〜ＶＡＬＩＤ２の１２個の情報のそれぞれにつき、異なるレジスタを設けても良い。
【００２８】
次に、上記構成のアドレス変換装置１０の動作について、図４を用いて説明する。図４は、アドレス変換装置１０の動作の流れを示すフローチャートである。
【００２９】
アドレスＡ３が入力されると、まず変換部１６は第４レジスタ１４内のフラグＶＡＬＩＤ０を確認する。そしてＶＡＬＩＤ０＝“１”であった場合（ステップＳ２０、ＹＥＳ）、比較部１５は第３レジスタ１３に保持される対象ビット情報Ｂ０によって指定されるビットにつき、入力アドレスＡ３と第１アドレスＡ１−０とを比較する（ステップＳ２１）。対象ビット情報Ｂ０によって指定されるビットは上位１２ビットである。従って比較部１５は、入力アドレスＡ３の上位１２ビットと、第１アドレスＡ１−０の上位ビット“０ｘ０００”とを比較する。このステップＳ２１の処理は、上記第１の実施形態で説明したステップＳ１３と同様である。従って、両者の全ビットが等しいか否かは、例えば次の式で示される処理を行って知ることが出来る。  
（（入力アドレスＡ３）xor（第１アドレスＡ１−０））and（対象ビット情報Ｂ０）  
両者が一致した場合（ステップＳ２２、ＹＥＳ）には、ステップＳ２３の処理に進む。
【００３０】
ステップＳ２３の処理は、第１の実施形態で説明したステップＳ１５の処理と同様である。すなわち変換部１６が、入力アドレスＡ３の変換対象ビットを、第２アドレスＡ２−０に変換して、アドレスＡ４を得る。より具体的には、変換部１６は第３レジスタ１３に保持される対象ビット情報Ｂ０から、変換すべきビットは上位１２ビットであることを把握する。そこで変換部１６は、入力アドレスＡ３の上位１２ビットを、第２アドレスＡ２−０の上位１２ビット“０ｘ００１”に置き換える。その結果、入力アドレスＡ３＝“０ｘ０００Ｘ＿ＸＸＸＸ”（“Ｘ”は任意の１６進数）は、アドレスＡ４＝“０ｘ００１Ｘ＿ＸＸＸＸ”に変換される（ステップＳ２３）。そして、変換して得られたアドレスＡ４が変換部１６から出力される（ステップＳ１２）。
【００３１】
ステップＳ２０においてＶＡＬＩＤ０＝“０”であるか（ステップＳ２０、ＮＯ）、またはステップＳ２１において入力アドレスＡ３が第１アドレスＡ１−０と等しくない場合（ステップＳ２２、ＮＯ）には、ステップＳ２４の処理に進む。
【００３２】
ステップＳ２４において変換部１６は第４レジスタ１４内のフラグＶＡＬＩＤ１を確認する。そしてＶＡＬＩＤ１＝“１”であった場合（ステップＳ２４、ＹＥＳ）、比較部１５は第３レジスタ１３に保持される対象ビット情報Ｂ１によって指定されるビットにつき、入力アドレスＡ３と第１アドレスＡ１−１とを比較する（ステップＳ２５）。対象ビット情報Ｂ１によって指定されるビットは上位１２ビットである。従って比較部１５は、入力アドレスＡ３の上位３ビットと、第１アドレスＡ１−１の上位３ビット“０ｘ００１”とを比較する。このステップＳ２１の処理も、上記第１の実施形態で説明したステップＳ１３と同様である。従って、両者の全ビットが等しいか否かは、例えば次の式で示される処理を行って知ることが出来る。  
（（入力アドレスＡ３）xor（第１アドレスＡ１−１））and（対象ビット情報Ｂ１）  
両者が一致した場合（ステップＳ２６、ＹＥＳ）には、ステップＳ２７の処理に進む。
【００３３】
ステップＳ２７の処理は、第１の実施形態で説明したステップＳ１５の処理と同様である。すなわち変換部１６が、入力アドレスＡ３の変換対象ビットを、第２アドレスＡ２−１に変換して、アドレスＡ４を得る。より具体的には、変換部１６は第３レジスタ１３に保持される対象ビット情報Ｂ１から、変換すべきビットは上位３ビットであることを把握する。そこで変換部１６は、入力アドレスＡ３の上位３ビットを、第２アドレスＡ２−１の上位３ビット“０ｘ０００”に置き換える。その結果、入力アドレスＡ３＝“０ｘ００１Ｘ＿ＸＸＸＸ”（“Ｘ”は任意の１６進数）は、アドレスＡ４＝“０ｘ０００Ｘ＿ＸＸＸＸ”に変換される（ステップＳ２７）。そして、変換して得られたアドレスＡ４が変換部１６から出力される（ステップＳ１２）。
【００３４】
ステップＳ２４においてＶＡＬＩＤ１＝“０”であるか（ステップＳ２４、ＮＯ）、またはステップＳ２５において入力アドレスＡ３が第１アドレスＡ１−１と等しくない場合（ステップＳ２６、ＮＯ）には、ステップＳ２８の処理に進む。
【００３５】
ステップＳ２８において変換部１６は、第４レジスタ１４内のフラグＶＡＬＩＤ２を確認する。そしてＶＡＬＩＤ２＝“１”であった場合（ステップＳ２８、ＹＥＳ）、比較部１５は第３レジスタ１３に保持される対象ビット情報Ｂ２によって指定されるビットにつき、入力アドレスＡ３と第１アドレスＡ１−２とを比較する（ステップＳ２９）。対象ビット情報Ｂ２によって指定されるビットは上位４ビットである。従って比較部１５は、入力アドレスＡ３の上位４ビットと、第１アドレスＡ１−２の上位４ビット“０ｘ２”（＝“０ｂ００１０”）とを比較する。このステップＳ２９の処理も、上記第１の実施形態で説明したステップＳ１３と同様である。従って、両者の全ビットが等しいか否かは、例えば次の式で示される処理を行って知ることが出来る。  
（（入力アドレスＡ３）xor（第１アドレスＡ１−２））and（対象ビット情報Ｂ２）  
両者が一致した場合（ステップＳ３０、ＹＥＳ）には、ステップＳ３１の処理に進む。
【００３６】
ステップＳ３１の処理は、第１の実施形態で説明したステップＳ１５の処理と同様である。すなわち変換部１６が、入力アドレスＡ３の変換対象ビットを、第２アドレスＡ２−２に変換して、アドレスＡ４を得る。より具体的には、変換部１６は第３レジスタ１３に保持される対象ビット情報Ｂ２から、変換すべきビットは上位４ビットであることを把握する。そこで変換部１６は、入力アドレスＡ３の上位４ビットを、第２アドレスＡ２−２の上位１ビット“０ｘ３”に置き換える。その結果、入力アドレスＡ３＝“０ｘ２ＸＸＸ＿ＸＸＸＸ”（“Ｘ”は任意の１６進数）は、アドレスＡ４＝“０ｘ３ＸＸＸ＿ＸＸＸＸ”に変換される（ステップＳ３１）。そして、変換して得られたアドレスＡ４が変換部１６から出力される（ステップＳ１２）。
【００３７】
上記構成のアドレス変換装置であると、上記第１の実施形態で説明した（１）の効果に加えて、下記（２）の効果が得られる。  
（２）複数のメモリ空間について、アドレス変換が可能となる。  
本実施形態に係る構成であると、アドレス変換装置１０は第１アドレスＡ１、第２アドレスＡ２、対象ビット情報Ｂ、及びフラグＶＡＬＩＤを複数保持している。そして、フラグＶＡＬＩＤの比較処理、入力アドレスＡ３と第１アドレスＡ１との比較処理、及び比較結果に応じた入力アドレスＡ３の変換処理を、複数のＡ１、Ａ２、Ｂ、ＶＡＬＩＤにつき順次行っている。従って、複数のメモリ空間のアドレスを、互いに異なる変換ルールにより変換することが出来、メモリの使用についての自由度を向上出来る。
【００３８】
一例として、特定のメモリ空間を入れ替える場合について、図５を用いて説明する。図５はメモリ空間の概念図である。図３に示す構成の場合、第１アドレスＡ１−０、第２アドレスＢ１−０、対象ビット情報Ｂ０から、入力アドレスＡ３＝“０ｘ０００Ｘ＿ＸＸＸＸ”は、アドレスＡ４＝“０ｘ００１Ｘ＿ＸＸＸＸ”に変換される。また、第１アドレスＡ１−１、第２アドレスＢ１−１、対象ビット情報Ｂ１から、入力アドレスＡ３＝“０ｘ００１Ｘ＿ＸＸＸＸ”は、アドレスＡ４＝“０ｘ０００Ｘ＿ＸＸＸＸ”に変換される。
【００３９】
従って、図５に示すように入力アドレスＡ３＝“０ｘ００００＿００００”〜“０ｘ０００Ｆ＿ＦＦＦＦ”が与えられた場合、実際にアクセスされるメモリ空間は、そのアドレスが“０ｘ００１０＿００００”〜“０ｘ００１Ｆ＿ＦＦＦＦ”である領域２１である。逆に、入力アドレスＡ３＝“０ｘ００１０＿００００”〜“０ｘ００１Ｆ＿ＦＦＦＦ”が与えられた場合、実際にアクセスされるメモリ空間は、そのアドレスが“０ｘ００００＿００００”〜“０ｘ０００Ｆ＿ＦＦＦＦ”である領域２０である。このように、本実施形態に係るアドレス変換装置を用いることで、メモリ空間における領域２０と領域２１とを入れ替えることが出来る。
【００４０】
なお、本実施形態のようにアドレス変換ルールを複数備えている場合、ある変換ルールに基づくアドレス変換により得られたアドレスが、別の変換ルールに合致する場合があり得る。この場合には、アドレス変換が複数回繰り返されることを防止するために、合致した別の変換ルールに基づく再度のアドレス変換は行わないようにしても良い。勿論、合致した変換ルールに基づいて再びアドレス変換を行っても構わない。
【００４１】
［第３の実施形態］  
次に、この発明の第３の実施形態に係るプロセッサシステムについて説明する。本実施形態は、上記第１、第２の実施形態で説明したアドレス変換装置１０と、複数のプロセッサを備えたプロセッサシステムに関するものである。図６は、本実施形態に係るプロセッサシステムのブロック図である。
【００４２】
図示するようにプロセッサシステム３０は、第１プロセッサ３１、第２プロセッサ３２、ハードウェアモジュール３３、メモリコントローラ３４、メモリ３５、バス３６、及び上記第１または第２の実施形態で説明したアドレス変換装置１０を備えている。
【００４３】
第１プロセッサ３１及び第２プロセッサ３２は、メモリ３５に保持されるソフトウェアを用いて処理を並列的に実行する。そして第１プロセッサ３１及び第２プロセッサ３２は、メモリ３５にアクセスするためにアドレスＡ３を発生する。
【００４４】
アドレス変換装置１０は、バス３６に接続され、第２プロセッサ３２に対応づけて設けられている。そしてアドレス変換装置１０は、第２プロセッサ３２が発生したアドレスＡ３を、第１、第２の実施形態で説明した方法によって、アドレスＡ４に変換する。
【００４５】
メモリコントローラ３４は、第１プロセッサ３１から与えられたアドレスＡ３に基づいて、メモリ３５へのアクセスを行う。またメモリコントローラ３４は、アドレス変換装置１０から与えられたアドレスＡ４に基づいて、メモリ３５へのアクセスを行う。
【００４６】
ハードウェアモジュール３３は、第１プロセッサ３１または第２プロセッサ３２によって制御される。
【００４７】
バス３６は、第１プロセッサ３１、アドレス変換装置１０、ハードウェハモジュール３３、及びメモリコントローラ３４間を接続する。バス３６は、これらの回路ブロックを互いに通信可能に接続しても良いし、そのうちの一部の回路ブロックについては通信を禁止しても良いし、またはいずれかの回路ブロック間では一方方向にのみ通信可能としても良い。
【００４８】
メモリ３５は、例えばＤＲＡＭ（ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ、ＲＤＲＡＭ（登録商標））、ＳＲＡＭ、またはフラッシュメモリ等の半導体メモリや、ハードディスク等であり、第１プロセッサ３１及び第２プロセッサ３２が動作するためのソフトウェアを保持する。図７は、メモリ３５のメモリ空間の一部を示す概念図である。
【００４９】
図示するように、メモリ空間においてアドレスが“０ｘ００００＿００００”〜“０ｘ０００Ｆ＿ＦＦＦＦ”までの領域を領域４０と呼び、アドレスが“０ｘ００１０＿０００”〜“０ｘ００１Ｆ＿ＦＦＦＦ”までの領域を領域４１と呼ぶことにする。そして、領域４０内に第１プロセッサ用のソフトウェア４２が保持され、領域４１内に第２プロセッサ用のソフトウェア４３が保持されている。
【００５０】
第１プロセッサ３１がＡ３＝“０ｘ００００＿００００”を発生してメモリ３５へアクセスした際には、メモリコントローラ３４はメモリ３５のアドレス“０ｘ００００＿００００”から第１プロセッサ用ソフトウェア４２を読み出す。これにより、第１プロセッサ３１は第１プロセッサ用ソフトウェア４２を実行する。
【００５１】
これに対して第２プロセッサ３２がＡ３＝“０ｘ００００＿００００”を発生した際には、アドレス変換装置１０によってアドレスＡ３はアドレスＡ４＝“０ｘ００１０＿００００”に変換される。従って、メモリコントローラ３４はメモリ空間の領域４１から第２プロセッサ用ソフトウェア４３を読み出す。これにより、第２プロセッサ３２は第２プロセッサ用ソフトウェア４３を実行する。アドレス変換装置１０によるアドレス変換の方法は、第１または第２の実施形態で説明した通りである。
【００５２】
本実施形態に係るプロセッサシステムによれば、上記第１、第２の実施形態で説明した（１）、（２）の効果に加えて、下記（３）の効果が得られる。  
（３）マルチプロセッサシステムにおいて、シングルプロセッサ用のソフトウェアを使用可能となる。  
本実施形態に係る構成によれば、第１または第２の実施形態で説明したアドレス変換装置１０を、マルチプロセッサシステムにおける１つのプロセッサ（第２プロセッサ３２）に適用している。従って、複数のプロセッサが同一のアドレスを生成してメモリにアクセスしようとした場合であっても、互いに異なるメモリ領域にアクセスさせることが出来る。
【００５３】
通常、例えばブートプログラム等を実行した場合、複数のプロセッサは、メモリにおいて同一のアドレスにアクセスする。例えば図７の例であると、第１、第２プロセッサ３１、３２は、メモリ３５の共に“０ｘ００００＿００００”にアクセスする。この際、第１、第２プロセッサ３１、３２に異なる処理をさせようとした場合、メモリ３５の“０ｘ００００＿００００”に格納されるプログラムには、プロセッサ毎に異なる処理をさせるための分岐命令が必要となる。つまり、プロセッサＩＤ等によって処理が分岐するようなプログラムを用いたソフトウェアを作成する必要があり、プロセッサ数が１つだけのシングルプロセッサシステムを想定したシングルプロセッサ用ソフトウェアを使用することが困難となる。従って、複雑なプログラムが新たに必要となる。
【００５４】
しかし本実施形態に係る構成であると、第１、第２プロセッサ３１、３２が同一のアドレスＡ３を発生したとしても、第２プロセッサ３２のアドレスＡ３はアドレス変換装置１０によりアドレスＡ４に変換される。そして、メモリ３５において、変換して得られたアドレスＡ４に相当する領域に第２プロセッサ用ソフトウェア４３を配置している。従って、プログラムには分岐命令等は必要無く、従来のシングルプロセッサ用のソフトウェアを領域４０、４１に配置することで、第１、第２プロセッサ３１、３２に異なる処理を実行させることが出来る。
【００５５】
なお、図７の例では領域４０に第１プロセッサ用ソフトウェア４２が配置され、領域４１に第２プロセッサ用プログラム４３が配置される場合について説明した。しかし、いずれかの領域に、第１、第２プロセッサ３１、３２に共用されるソフトウェア等が配置されていても構わない。このような例について、図８を用いて説明する。図８はメモリ空間の概念図である。
【００５６】
図示するように、メモリ３５の領域４０内には、第１プロセッサ用ソフトウェア４２だけでなく、第１、第２プロセッサ３１、３２の両方に使用される共用ソフトウェア４４と、更に第２プロセッサ用ソフトウェア４５が配置されている。このような場合であっても、第２プロセッサ３２はアドレス変換装置１０によって得られたアドレスＡ４によって、領域４０内のソフトウェア４４、４５にアクセスすることが出来る。勿論、このような場合であっても、各ソフトウェアにおいて、プロセッサＩＤ等を識別して処理を分岐させる等の必要はない。この場合の第２プロセッサ３２から見たメモリ３５のメモリ空間の様子を図９に示す。図示するように、第２プロセッサ３２にとっては、アドレスが“０ｘ００００＿００００”〜“０ｘ０００Ｆ＿ＦＦＦＦ”である領域内にソフトウェア４３が保持され、“０ｘ００１０＿００００”〜“０ｘ００１Ｆ＿ＦＦＦＦ”の領域内にソフトウェア４２、４４、４５が保持されているように見える。
【００５７】
［第４の実施形態］  
次に、この発明の第４の実施形態に係るプロセッサシステムについて説明する。本実施形態は、上記第３の実施形態においてアドレス変換装置１０をバス３６内部に設けたものである。図１０は、本実施形態に係るプロセッサシステムのブロック図である。
【００５８】
図示するようにプロセッサシステム３０は、上記第３の実施形態で説明した図６の構成において、第２プロセッサ３２がバス３６に接続されている。更に、アドレス変換装置１０はバス３６内に設けられる。そしてアドレス変換装置１０は、第１プロセッサが発生するアドレスＡ３と、第２プロセッサ３２が発生するアドレスＡ３とについてアドレス変換を行う。またメモリコントローラ３４は、アドレス変換装置１０で得られたアドレスＡ４に基づいて、メモリ３５へアクセスを行う。
【００５９】
図１１は、アドレス変換装置１０のブロック図である。図示するように、本実施形態に係るアドレス変換装置１０は、上記第１の実施形態で説明した図１の構成において、更に判定部１７を備えている。判定部１７は判定用テーブル１８を保持する。判定用テーブル１８とは、第１、第２プロセッサ３１、３２毎に、アドレス変換を行うか否かを示す情報を保持するテーブルである。そして判定部１７は、判定用テーブル１８に従って、入力されたアドレスＡ３を変換すべきか否かを判定する。変換部１６は、判定部１７により変換すべきと判定された場合に、フラグＶＡＬＩＤに応じてアドレス変換を行う。
【００６０】
次に、本実施形態に係るプロセッサシステム３０の動作について、図１２を用いて説明する。図１２は、本実施形態に係るプロセッサシステムの動作の流れを示すフローチャートである。
【００６１】
図示するように、アドレス変換装置１０に対して第１、第２プロセッサ３１、３２のいずれかからアドレスＡ３が入力されると、まず判定部１７が判定用テーブル１８を参照する。そして、当該アドレスＡ３を発生したプロセッサが、アドレス変換の対象であるか否かを判定する（ステップＳ４０）。変換対象で無いと判定された場合（ステップＳ４１、ＮＯ）には、変換部１６はアドレス変換を行わず、入力アドレスＡ３をそのままアドレスＡ４として（ステップＳ１１）、メモリコントローラ３４へ出力する（ステップＳ１２）。ステップＳ４０において変換対象であると判定された場合（ステップＳ４１、ＹＥＳ）には、変換部１６はフラグＶＡＬＩＤを確認し（ステップＳ４２）、第１の実施形態と同様にステップＳ１０に進む。
【００６２】
本実施形態に係る構成であると、上記第１乃至第３の実施形態で説明した（１）乃至（３）の効果に加えて、下記（４）の効果が得られる。  
（４）多数のプロセッサを備えたプロセッサシステムにおいても、チップ面積の増加を抑制しつつ、上記（３）の効果が得られる。  
本実施形態に係る構成であると、アドレス変換装置１０はバス３６内に設けられている。そして、このアドレス変換装置１０が、複数のプロセッサについてアドレス変換を行う。従って、アドレス変換を行うべきプロセッサ数が多数存在する場合であっても、個々のプロセッサ毎にアドレス変換装置１０を設ける必要が無い。従って、チップ面積の増加を招くことなく、効果的にアドレス変換が可能となる。
【００６３】
なお、本実施形態では第１の実施形態で説明したアドレス変換装置１０に判定部１７を設けた構成について説明した。しかし、第２の実施形態で説明した図３の構成において判定部１７を設けても良いことは言うまでも無い。この場合の動作は、図４のフローチャートにおいて、ステップＳ２０の前に図１２で説明したステップＳ４０〜Ｓ４２の処理を行えば良い。そして、ステップＳ４２の後にステップＳ２０に進めば良い。
【００６４】
また、本実施形態ではアドレス変換装置１０がバス３６内部に設けられている場合について説明した。しかし、アドレス変換装置１０はバス３６外部に設けられていても良い。このような場合について図１３を用いて説明する。図１３はプロセッサシステムのブロック図である。図示するように、アドレス変換装置１０はバス３６に接続され、且つメモリコントローラ３４に対応づけて設けられている。そしてメモリコントローラ３４は、アドレス変換装置１０から出力されるアドレスＡ４を受けて、メモリ３５へアクセスする。
【００６５】
［第５の実施形態］  
次に、この発明の第５の実施形態に係るプロセッサシステムについて説明する。本実施形態は、プロセッサの故障を検出し、故障の検出の有無に応じてアドレス変換装置の変換ルールを変更するものである。図１４は、本実施形態に係るプロセッサシステムのブロック図である。
【００６６】
図示するようにプロセッサシステム３０は、ｎ個（ｎは２以上の自然数）の第１〜第ｎプロセッサ３７−１〜３７−ｎ、ｎ個の第１〜第ｎアドレス変換装置１０−１〜１０−ｎ、ハードウェアモジュール３３、メモリコントローラ３４、メモリ３５、バス３６、及び故障検出装置３８を備えている。以下、第１〜第ｎプロセッサ３７−１〜３７−ｎを区別しない場合には単にプロセッサ３７と呼び、第１〜第ｎアドレス変換装置１０−１〜１０−ｎを区別しない場合には単にアドレス変換装置１０と呼ぶことがある。
【００６７】
ｎ個のプロセッサ３７は、メモリ３５に保持されるソフトウェアを用いて、処理を並列的に実行する。そしてプロセッサ３７の各々は、メモリ３５にアクセスするためにアドレスＡ３を発生する。なお、第ｎプロセッサ３７−ｎは予備のプロセッサであり、第１〜（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）のいずれかが故障した場合に、故障したプロセッサの代わりに動作する。
【００６８】
第１〜第ｎアドレス変換装置１０−１〜１０−ｎは、それぞれ第１〜第ｎプロセッサ３７−１〜３７−ｎに対応づけて設けられている。ｎ個のアドレス変換装置１０の各々は、第１の実施形態で説明した図１の構成、または第２の実施形態で説明した図３の構成を有しており、対応するプロセッサ３７の発生したアドレスＡ３を変換して、アドレスＡ４をバス３６へ出力する。
【００６９】
ハードウェアモジュール３３、メモリコントローラ３４、及びバス３６は、第３の実施形態で説明した通りである。
【００７０】
故障検出装置３８は、プロセッサ３７の各々を監視する。そして、第１〜第（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）のいずれかに故障を検出した場合、故障したプロセッサ３７に対応するアドレス変換装置１０の変換ルール（Ａ１、Ａ２、Ｂ、ＶＡＬＩＤ）を、第ｎアドレス変換装置１０−ｎに適用する。故障検出装置３８としては、例えばウォッチドッグ・タイマ（watchdog timer）等を用いることが出来る。
【００７１】
メモリ３５は、例えばフラッシュメモリ等の半導体メモリや、ハードディスク等であり、各プロセッサ３７が使用するソフトウェアを保持する。図１５は、メモリ３５のメモリ空間の一部を示す概念図である。図示するようにメモリ３５は、その領域５０−１〜５０−（ｎ−１）内に、第１〜第（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）が動作するためのソフトウェア５１−１〜５１−（ｎ−１）を保持している。
【００７２】
従って、第１〜第（ｎ−１）プロセッサ３７−１〜３７−ｎがブート時等に同一のアドレスＡ３を発生した場合、第１〜第（ｎ−１）アドレス変換装置１０−１〜１０−ｎは各第１アドレスＡ３を、メモリ３５における領域５０−１〜５０−（ｎ−１）に対応するアドレスＡ４に変換する。これにより、第１〜第（ｎ−１）プロセッサ３７−１〜３７−ｎの各々は、第１〜第（ｎ−１）プロセッサ用ソフトウェア５１−１〜５１−（ｎ−１）を用いて処理を行う。
【００７３】
次に、上記構成のプロセッサシステム３０の動作について、図１６を用いて説明する。図１６は、本実施形態に係るプロセッサシステム３０の動作の流れを示すフローチャートである。
【００７４】
まず、故障検出装置３８が故障の有無を検出する。この検出動作は常時行われても良いし、予め定められた一定時間間隔で行われても良い。そして図示するように、故障検出装置３８において、いずれのプロセッサ３７においても故障が検出されなかった場合（ステップＳ５０、ＮＯ）には、第１〜第（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）の各々は、それぞれ第１〜第（ｎ−１）アドレス変換装置１０−１〜１０−（ｎ−１）の変換ルールに従って、メモリ３５へアクセスする（ステップＳ５１）。すなわち、第１〜第（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）の各々は、第１〜第（ｎ−１）ソフトウェア５１−１〜５１−（ｎ−１）を用いて処理を行う。この際、第ｎプロセッサ３７−ｎは特に処理を行わない。
【００７５】
故障検出装置３８において第ｉ（ｉは１〜（ｎ−１）のいずれか）プロセッサ３７−ｉに故障が検出された場合（ステップＳ５０、ＹＥＳ）には、ステップＳ５２の処理を行う。ステップＳ５２において故障検出装置３８は、故障した第ｉプロセッサ３７−ｉに対応する第ｉアドレス変換装置１０−ｉの変換ルールを、予備の第ｎアドレス変換装置１０−ｎに適用する。そして第ｎプロセッサ３７−ｎが第ｎアドレス変換装置１０−ｎを用いて動作を開始する。すなわち、故障した第ｉプロセッサ３７−ｉを、予備の第ｎプロセッサ３７−ｎにより代用する（ステップＳ５３）。更に故障検出装置３８は、故障した第ｉプロセッサ３７−ｉを、システム３０から切り離す（ステップＳ５４）。これは、故障した第ｉプロセッサ３７−ｉが暴走して、システムに悪影響を与えることを防ぐためである。なお、正常なプロセッサ３７は、各々が対応するアドレス変換装置１０を用いて動作を行う（ステップＳ５５）。
【００７６】
故障が検出された場合の動作の具体例について、以下、簡単に説明する。例えば第１〜第（ｎ−１）プロセッサ３７−１〜３７−（ｎ−１）のうち、第２プロセッサ３７−２が故障したとする。この故障を検出した故障検出装置３８は、第２アドレス変換装置１０−２におけるアドレス変換ルールを、第ｎアドレス変換装置１０−ｎに適用し、第ｎプロセッサ３７−ｎの動作を開始させる。また、第２プロセッサ３７−２をシステム３０から切り離す。例えば第２プロセッサ３７−２の動作を停止させる。具体的には、故障した第２プロセッサ３７−２に対するクロックの供給を停止したり、電源供給を停止したり、または第２プロセッサ３７−２をバス３６から切り離したりする方法がある。これにより第ｎプロセッサ３７−ｎは、メモリ３５から第２プロセッサ用ソフトウェア５１−２を読み出し、第２プロセッサ用ソフトウェア５１−２に従って処理を行う。その他の第１プロセッサ３７−１及び第３〜第（ｎ−１）プロセッサ３７−３〜３７−（ｎ−１）は、第１プロセッサ用ソフトウェア５１−１及び第３〜第（ｎ−１）プロセッサ用ソフトウェア５１−３〜５１−（ｎ−１）を用いて処理を行う。
【００７７】
本実施形態に係るプロセッサシステムであると、上記第１乃至第４の実施形態で説明した（１）乃至（４）の効果に加えて、下記（５）の効果を併せて得られる。  
（５）プロセッサシステムの動作信頼性を向上出来る。  
本実施形態に係る構成であると、予備のプロセッサ３７−ｎ及びアドレス変換装置１０−ｎを設け、いずれかのプロセッサ３７に故障が生じた場合に、当該プロセッサに対応するアドレス変換装置１０の変換ルールを、予備のアドレス変換装置１０に適用している。従って、故障したプロセッサ３７が行うべき処理を、予備のプロセッサ３７−ｎに行わせることが出来る。従って、いずれかのプロセッサ３７に故障が生じたとしても、プロセッサシステム３０としての処理能力を維持でき、プロセッサシステム３０の動作信頼性を向上出来る。
【００７８】
なお、上記実施形態では全てのプロセッサ３７に対してアドレス変換装置１０が設けられている。しかし、アドレス変換装置１０が設けられないプロセッサ３７があっても良い。このようなプロセッサ３７に故障が発生した場合には、予備の第ｎアドレス変換装置１０−ｎは、アドレス変換を行わない。また、複数のアドレス変換装置１０が同じ変換ルールを有していても良い。この場合、複数のプロセッサ３７が同一のソフトウェア５１を使用して処理を行うことになる。本方法は、特にソフトウェア５１の処理の負荷が大きい場合に有効である。更に、上記実施形態では予備のプロセッサ３７−ｎは１つだけ設けられているが、複数設けられても良いことは言うまでもない。
【００７９】
また、本実施形態は第４の実施形態と組み合わせることも可能である。図１７及び図１８は、本実施形態の第１、第２変形例に係るプロセッサシステム３０のブロック図である。図１７に示すように、第４の実施形態で説明した図１０の構成と同様に、アドレス変換装置１０はバス３６内部に設けられても良い。また図１８に示すように、第４の実施形態で説明した図１３の構成と同様に、アドレス変換装置１０がメモリコントローラ３４に対応づけて設けられても良い。
【００８０】
［第６の実施形態］  
次に、この発明の第６の実施形態に係るプロセッサシステムについて説明する。本実施形態は、プロセッサの負荷を計測し、負荷の大小に応じてアドレス変換装置の変換ルールを変更するものである。図１９は、本実施形態に係るプロセッサシステムのブロック図である。
【００８１】
図示するようにプロセッサシステム３０は、上記第５の実施形態で説明した図１４の構成において、故障検出装置３８を廃し、更に負荷計測装置３９を備えた構成を有している。また第ｎプロセッサ３７−ｎ及び第ｎアドレス変換装置１０−ｎは予備では無く、その他のプロセッサ３７及びアドレス変換装置１０と同様に動作を行う。従って、メモリ３５は、第ｎプロセッサ３７−ｎが使用する第ｎプロセッサ用ソフトウェア５１−ｎを更に保持する。
【００８２】
負荷計測装置３９は、第１〜第ｎプロセッサ３７−１〜３７−ｎの負荷を計測する。負荷の計測は、各プロセッサ３７−１〜３７−ｎの消費電力をモニタすること、スリープモードにあるか否かをモニタすること等によって行う。そして、負荷の大きいプロセッサ３７に対応するアドレス変換装置１０の変換ルールを、負荷の小さいプロセッサ３７に対応するアドレス変換装置１０に適用する。その他の構成は図１４の同様であるので説明は省略する。
【００８３】
次に、上記構成のプロセッサシステム３０の動作について、図２０を用いて説明する。図２０は、本実施形態に係るプロセッサシステム３０の動作の流れを示すフローチャートである。
【００８４】
図示するように、負荷計測装置３９は第１〜第ｎプロセッサ３７−１〜３７−ｎの負荷を計測する（ステップＳ６０）。負荷の計測は常時行っていても良いし、予め定められた一定時間間隔で行っても良い。
【００８５】
そして、いずれのプロセッサ３７の負荷も大きくない場合（ステップＳ６２、ＮＯ）には、第１〜第ｎプロセッサ３７−１〜３７−ｎの各々は、それぞれ第１〜第ｎアドレス変換装置１０−１〜１０−ｎの変換ルールに従って、メモリ３５へアクセスする（ステップＳ６１）。すなわち、第１〜第ｎプロセッサ３７−１〜３７−ｎの各々は、第１〜第ｎソフトウェア５１−１〜５１−ｎを用いて処理を行う。なお、負荷の大小は、予め負荷計測装置３９に保持された閾値を基準に判断することが出来る。
【００８６】
負荷を計測した結果、いずれかのプロセッサ３７の負荷が大きい場合（ステップＳ６２、ＹＥＳ）には、負荷計測装置３９はステップＳ６３の処理を行う。すなわち、負荷の大きいプロセッサに対応するアドレス変換装置１０の変換ルールを、負荷の小さいプロセッサに対応するアドレス変換装置１０に適用する。すなわち負荷計測装置３９は、負荷の大きいプロセッサ３７の処理の一部を、負荷の小さいその他のプロセッサ３７に行わせる（ステップＳ６４）。その他のプロセッサ３７は、対応するアドレス変換装置１０を用いて動作する（ステップＳ６５）。
【００８７】
上記処理の具体例について、図２１を用いて説明する。図２１は、負荷計測装置３９の備えるテーブルの概念図である。負荷計測装置３９は、図２１に示すテーブルの他に、２つの閾値Ｌth(low)、Ｌth(high)を保持する。閾値Ｌth(low)は、プロセッサ３７の処理すべき負荷の最小値であり、閾値Ｌth(high)は、プロセッサ３７が処理すべき負荷の最大値である。テーブルは、第１〜第ｎプロセッサ毎に、負荷の量Ｌ１〜Ｌｎと、それらと閾値Ｌth(low)、Ｌth(high)との関係を保持する。
【００８８】
例えば第１プロセッサ３７−１の負荷Ｌ１は、Ｌth(low)＜Ｌ１＜Ｌth(high)であり、第３プロセッサ３７−３の負荷Ｌ３は、Ｌth(low)＜Ｌ３＜Ｌth(high)である。従って、第１、第３プロセッサ３７−１、３７−３の処理は、他のプロセッサ３７には割り当てられず、且つ、他のプロセッサ３７の処理に置き換えられることもない。
【００８９】
他方、第２プロセッサ３７−２の負荷Ｌ２は、Ｌth(high)＜Ｌ２である。すなわち、第２プロセッサ３７−２の負荷は大きいと判断される。また、第ｎプロセッサ３７−ｎの負荷Ｌｎは、Ｌｎ＜Ｌth(low)である。すなわち、第ｎプロセッサ３７−ｎの負荷は小さいと判断される。
【００９０】
従って負荷計測装置３９は、第ｎアドレス変換装置１０−ｎの変換ルールを、第２アドレス変換装置１０−２の変換ルールと同じくする。これにより、第２プロセッサ用ソフトウェア５１−２に基づく処理は、第２プロセッサ３７−２だけでなく第ｎプロセッサ３７−ｎによっても行われる。  
なお、上記手法は一例に過ぎず、負荷の大小の判断は種々の方法を適用出来る。
【００９１】
本実施形態に係るプロセッサシステムであると、上記第１乃至第４の実施形態で説明した（１）乃至（４）の効果に加えて、下記（６）の効果を併せて得られる。  
（６）プロセッサシステムの処理効率を向上出来る。（その１）  
本実施形態に係る構成であると、負荷計測装置３９が各プロセッサ３７の負荷を計測している。そして、負荷の小さいプロセッサ３７に対応するアドレス変換装置１０の変換ルールを、負荷の大きいプロセッサ３７に対応するアドレス変換装置１０の変換ルールと同様に設定している。すなわち、負荷の大きいプロセッサ３７の処理の一部を、負荷の小さいプロセッサ３７に行わせている。従って、プロセッサ３７間で負荷が分散され、プロセッサシステムの処理効率を向上出来る。
【００９２】
なお、本実施形態において、いずれかのアドレス変換手段１０は、対応するプロセッサ３７の負荷にかかわらず一定のアドレス変換をするようにしても良く、また常にアドレス変換を行わない構成としても良い。
【００９３】
また、本実施形態は第４の実施形態と組み合わせることも可能である。図２２及び図２３は、本実施形態の第１、第２変形例に係るプロセッサシステム３０のブロック図である。図２２に示すように、第４の実施形態で説明した図１０の構成と同様に、アドレス変換装置１０はバス３６内部に設けられても良い。また図２３に示すように、第４の実施形態で説明した図１３の構成と同様に、アドレス変換装置１０がメモリコントローラ３４に対応づけて設けられても良い。
【００９４】
更に、本実施形態は第５の実施形態と組み合わせることも可能である。すなわち、図１９の構成において更に故障検出装置３８と、予備のプロセッサ３７及びアドレス変換装置１０を設け、第５の実施形態で説明した方法を適用しても良い。この場合には、第５の実施形態で説明した（５）の効果を併せて得られる。
【００９５】
［第７の実施形態］  
次に、この発明の第７の実施形態に係るプロセッサシステムについて説明する。本実施形態は、上記第６の実施形態と異なる方法により負荷分散を行うものである。
【００９６】
本実施形態に係るプロセッサシステムの構成は、第６の実施形態で説明した図１９、図２２、または図２３と同様であるので説明は省略する。但し、第６の実施形態と異なり、プロセッサ３７は互いにその処理能力が異なる。
【００９７】
図２４は、本実施形態に係るプロセッサシステム３０の動作の流れを示すフローチャートである。  
図示するように、負荷計測装置３９は第１〜第ｎプロセッサ３７−１〜３７−ｎの負荷を計測する（ステップＳ７０）。負荷の計測は常時行っていても良いし、予め定められた一定時間間隔で行っても良い。
【００９８】
負荷を計測した結果、処理能力の高いプロセッサ３７の負荷が小さく、且つ処理能力の低いプロセッサ３７の負荷が大きい場合（ステップＳ７１、ＹＥＳ）には、負荷計測装置３９はステップＳ７３の処理を行う。すなわち、負荷の大きいプロセッサに対応するアドレス変換装置１０の変換ルールを、負荷の小さいプロセッサに対応するアドレス変換装置１０に適用する（ステップＳ７３）。更に負荷計測装置３９は、負荷の小さいプロセッサに対応するアドレス変換装置１０の変換ルールを、負荷の大きいプロセッサに対応するアドレス変換装置１０に適用する（ステップＳ７４）。
【００９９】
すなわち負荷計測装置３９は、処理能力の高いプロセッサの処理と、処理能力の低いプロセッサの処理とを入れ替える（ステップＳ７５）。その他のプロセッサ３７は、対応するアドレス変換装置１０を用いて動作する（ステップＳ７６）。
【０１００】
ステップＳ７１の条件が満たされない場合（ステップＳ７１、ＮＯ）には、第１〜第ｎプロセッサ３７−１〜３７−ｎの各々は、それぞれ第１〜第ｎアドレス変換装置１０−１〜１０−ｎの変換ルールに従って、メモリ３５へアクセスする（ステップＳ７２）。
【０１０１】
すなわち、例えば各プロセッサ３７の負荷と閾値との関係が図２１に示す通りであり、第２プロセッサ３７−２の処理能力が第ｎプロセッサ３７−ｎよりも低い場合には、第２プロセッサ３７−２の処理と第ｎプロセッサ３７−ｎの処理とを入れ替える。なお、負荷の大小の判断は、２つのプロセッサ３７の負荷の比や差が、予め設定された閾値を超えたか否か等によって行っても良い。
【０１０２】
本実施形態に係るプロセッサシステムであると、上記第１乃至第４の実施形態で説明した（１）乃至（４）の効果に加えて、下記（７）の効果を併せて得られる。  
（７）プロセッサシステムの処理効率を向上出来る（その２）  
本実施形態に係る構成であると、負荷計測装置３９が各プロセッサ３７の負荷を計測している。そして、処理能力が高く且つ負荷の小さいプロセッサ３７の処理と、処理能力が低く且つ負荷の大きいプロセッサ３７の処理とを入れ替えている。従って、各プロセッサ３７に割り当てられる処理を、各プロセッサ３７の能力に応じて最適化出来る。従って、プロセッサ３７間で負荷が分散され、プロセッサシステムの処理効率を向上出来る。
【０１０３】
なお、本実施形態においても、いずれかのアドレス変換手段１０は、対応するプロセッサ３７の負荷にかかわらず一定のアドレス変換をするようにしても良く、また常にアドレス変換を行わない構成としても良い。
【０１０４】
更に、本実施形態は第５の実施形態と組み合わせることも可能であるし、また第６の実施形態で説明した方法を同時に適用することも可能である。この場合には、第５の実施形態で説明した（５）の効果及び第６の実施形態で説明した（６）の効果を併せて得られる。また、上記実施形態ではプロセッサ間で処理能力が異なる場合について説明したが、同一の処理能力を有するプロセッサ間で処理を入れ替えても良い。
【０１０５】
以上のように、この発明の第１乃至第７の実施形態に係るアドレス変換装置及びプロセッサシステムによれば、より簡便にアドレスを変換出来る。従って、マルチプロセッサシステムにおいても、各プロセッサが使用するソフトウェアにはシングルプロセッサ用のソフトウェアを使用することが可能となる。
【０１０６】
なお、上記実施形態で説明したプロセッサシステムは、例えばデジタルテレビに適用することも出来る。図２５は、デジタルテレビの内部構成を示すブロック図である。図示するようにデジタルテレビ４０は、無線処理部５０、画像処理部６０、表示部７０、及びアンテナを備えている。
【０１０７】
アンテナ８０は、例えば無線通信によってＭＰＥＧ２（Moving Picture Experts Group-2 Transport Stream）形式にエンコードされた映像データフレームを受信する。無線処理部５０は、アンテナ８０で受信したフレームを処理して画像処理部６０へ出力する。画像処理部６０はＭＰＥＧコーデックを備え、映像データをデコードする。表示部７０は、画像処理部６０でデコードされた映像データを表示する。
【０１０８】
無線処理部５０は、無線ＬＡＮ（Local Area Network）モジュール制御用プロセッサ５１、ＴＣＰ／ＩＰ処理用プロセッサ５２、無線ＬＡＮモジュール５３、入出力バッファ５４、アドレス変換装置１０、メモリコントローラ３４、メモリ３５、及びバス３６を備えている。
【０１０９】
無線ＬＡＮモジュール５３は、アンテナ８０で受信した映像データの受信処理の一切を司る。例えば、アンテナ８０で受信したフレームからＭＡＣヘッダの削除等を行う。プロセッサ５１は、無線ＬＡＮモジュール５３の動作を制御する。プロセッサ５２は、無線ＬＡＮモジュール５３において処理されたパケットにつきＴＣＰ／ＩＰ処理を行って、フレームを画像処理部６０にて処理可能な形式（パケット）に変換する。入出力バッファ５４は、パケットに変換された映像データを画像処理部６０へ出力する。
【０１１０】
また、入出力バッファ５４は、画像処理部６０からパケットを受け取る。そしてプロセッサ５２は入出力バッファ５４で受け取ったパケットに対してＴＣＰ／ＩＰ処理を行う。その後、無線ＬＡＮモジュール５３において処理されることにより、フレームに組み立てられた映像データがアンテナ８０から送信される。
【０１１１】
メモリ３５は、プロセッサ５１が使用する無線ＬＡＮモジュール制御用ソフトウェア、及びプロセッサ５２が使用するＴＣＰ／ＩＰ処理用ソフトウェアを保持する。
【０１１２】
上記構成において、アドレス変換装置１０は、プロセッサ５１、５２の出力するアドレスＡ３の一方、または両方を変換して、プロセッサ５１には無線ＬＡＮモジュール制御用ソフトウェアにアクセスさせ、プロセッサ５２にはＴＣＰ／ＩＰ処理用ソフトウェアにアクセスさせる。
【０１１３】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【０１１４】
【図１】この発明の第１の実施形態に係るアドレス変換装置のブロック図。
【図２】この発明の第１の実施形態に係るアドレス変換装置の処理の流れを示すフローチャート。
【図３】この発明の第２の実施形態に係るアドレス変換装置のブロック図。
【図４】この発明の第２の実施形態に係るアドレス変換装置の処理の流れを示すフローチャート。
【図５】メモリ空間の概念図。
【図６】この発明の第３の実施形態に係るプロセッサシステムのブロック図。
【図７】この発明の第３の実施形態に係るプロセッサシステムの備えるメモリの、メモリ空間の概念図。
【図８】この発明の第３の実施形態に係るプロセッサシステムの備えるメモリの、メモリ空間の概念図。
【図９】この発明の第３の実施形態に係るプロセッサシステムの備えるメモリの、メモリ空間の概念図。
【図１０】この発明の第４の実施形態に係るプロセッサシステムのブロック図。
【図１１】この発明の第４の実施形態に係るプロセッサシステムの備えるメモリの、メモリ空間の概念図。
【図１２】この発明の第４の実施形態に係るプロセッサシステムの処理の流れを示すフローチャート。
【図１３】この発明の第４の実施形態の変形例に係るプロセッサシステムのブロック図。
【図１４】この発明の第５の実施形態に係るプロセッサシステムのブロック図。
【図１５】この発明の第５の実施形態に係るプロセッサシステムの備えるメモリの、メモリ空間の概念図。
【図１６】この発明の第５の実施形態に係るプロセッサシステムの処理の流れを示すフローチャート。
【図１７】この発明の第５の実施形態の第１変形例に係るプロセッサシステムのブロック図。
【図１８】この発明の第５の実施形態の第２変形例に係るプロセッサシステムのブロック図。
【図１９】この発明の第６の実施形態に係るプロセッサシステムのブロック図。
【図２０】この発明の第６の実施形態に係るプロセッサシステムの処理の流れを示すフローチャート。
【図２１】この発明の第６の実施形態に係るプロセッサシステムにおける負荷検出装置が備えるテーブルの概念図。
【図２２】この発明の第６の実施形態の第１変形例に係るプロセッサシステムのブロック図。
【図２３】この発明の第６の実施形態の第２変形例に係るプロセッサシステムのブロック図。
【図２４】この発明の第７の実施形態に係るプロセッサシステムの処理の流れを示すフローチャート。
【図２５】この発明の第１乃至第７の実施形態に係るアドレス変換装置及びプロセッサシステムを備えたデジタルテレビのブロック図。
【符号の説明】
【０１１５】
１０、１０−１〜１０−ｎ…アドレス変換装置、１１〜１４…レジスタ、１５…比較部、１６…変換部、１７…判定部、１８…判定用テーブル、３０…プロセッサシステム、３１、３２、３７−１〜３７−ｎ…プロセッサ、３３…ハードウェアモジュール、３４…メモリコントローラ、３５…メモリ、３６…バス、３８…故障検出装置、３９…負荷計測装置
【図１】
2008269352.tif 000003
【図２】
2008269352.tif 000004
【図３】
2008269352.tif 000005
【図４】
2008269352.tif 000006
【図５】
2008269352.tif 000007
【図６】
2008269352.tif 000008
【図７】
2008269352.tif 000009
【図８】
2008269352.tif 000010
【図９】
2008269352.tif 000011
【図１０】
2008269352.tif 000012
【図１１】
2008269352.tif 000013
【図１２】
2008269352.tif 000014
【図１３】
2008269352.tif 000015
【図１４】
2008269352.tif 000016
【図１５】
2008269352.tif 000017
【図１６】
2008269352.tif 000018
【図１７】
2008269352.tif 000019
【図１８】
2008269352.tif 000020
【図１９】
2008269352.tif 000021
【図２０】
2008269352.tif 000022
【図２１】
2008269352.tif 000023
【図２２】
2008269352.tif 000024
【図２３】
2008269352.tif 000025
【図２４】
2008269352.tif 000026
【図２５】
2008269352.tif 000027