(57)【要約】【課題】  プロセッサに特別な機能を持たせることなく、異なるアドレスに格納された別のプログラムを切り替えて、同一のアドレスで実行することのできるプログラム切替回路を得る。【解決手段】  メモリコントローラ３から送出されるチップセレクト信号５およびアドレス信号６ａのアドレスが所定の条件に合致する場合に、アドレス判定／変換部７１によって所与のアドレスにオフセットを加えたアドレスを、アドレス信号６ｂからメモリ４に送出する。【選択図】      図１
2012194819.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに接続されたメモリコントローラとメモリの間に接続され、上記メモリコントローラから入力されるアドレスに所定のコードを加え、アドレス変換して上記メモリに出力し、当該所定コードに応じて上記メモリに格納されたプログラム領域を切替えるプログラム切替回路。
【請求項２】
上記メモリコントローラから入力される同一のアドレスに対して、上記所定のコードを変更して加えることにより、上記メモリ上の異なるプログラム領域にアクセスすることを特徴とした請求項１記載のプログラム切替回路。
【請求項３】
上記メモリコントローラから入力されるアドレスが、所定のアドレス範囲内である場合に、アドレスを変換してメモリに出力することを特徴とする請求項１または請求項２に記載のプログラム切替回路。
【請求項４】
上記メモリコントローラからセレクト信号が入力され、当該セレクト信号に応じてアドレスを変換して上記メモリに出力することを特徴とする請求項１または請求項２に記載のプログラム切替回路。
【請求項５】
上記プロセッサから上記所定コードを変更できるようにしたことを特徴とする請求項１から４の何れか１項記載のプログラム切替回路。
【請求項６】
外部信号によって上記所定コードを変更できるようにしたことを特徴とする請求項１から４の何れか１項記載のプログラム切替回路。
【請求項７】
上記請求項１から請求項６の何れか１項記載のプログラム切替回路と、プロセッサと、メモリコントローラと、メモリとを備えた電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセッサにより実行されるプログラムを切り替えるプログラム切替回路、およびプロセッサとプログラム切替回路を搭載した電子機器に関する。
【背景技術】
【０００２】
近年、計算機に限らず、多くの電子機器にはプロセッサが搭載されている。プロセッサの利用状況に応じて、プロセッサで実行されるプログラムを一時的または恒久的に切り替えたいという要望がある。
【０００３】
従来のプロセッサを搭載した電子機器では、切り替え端子と、リセット後にプロセッサが最初に読み出すブートアドレスを、切り替え端子の状態に基づいて切り替える回路とにより、プロセッサで実行されるプログラムを切り替えていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ９８／４４４０８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のプロセッサを搭載した電子機器では、各プログラムは各々異なるアドレスに格納され、その異なるアドレスでそのまま実行されるため、異なるアドレスを指定することによって切り替えて実行できるようなプログラムを用意する必要があった。
【０００６】
例えば、一方のプログラムを元に他方のプログラムを用意し、一方のプログラムから他方のプログラムに切り替える場合には、アドレスの書き換えが必要となり、プログラムの開発に余計な手間が必要であった。アドレスの修正漏れや修正ミスなどの不具合も発生し易かった。
【０００７】
また、ブートアドレスを切り替える回路をプロセッサ内に用意する必要があり、既存のプロセッサは使用できず、特別な機能を持ったプロセッサを新たに開発する必要があった。特にプロセッサには高度な技術が必要となるため、プロセッサを新たに開発するのは容易ではない。
【０００８】
また、ブートアドレスを切り替えることによりプログラムを切り替えているため、リセット時にしかプログラムを切り替えることができなかった。そのため、プログラムを切り替えるためには、電子機器を停止し、リセットする必要があった。
【０００９】
この発明は、かかる問題点を解決するためになされたものであり、プロセッサに特別な機能を持たせることなく、異なるアドレスに格納された別のプログラムを簡易に切り替えることができるとともに、機器を停止しなくてもプログラムを切り替えることができる、プログラム切り替え回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明によるプログラム切替回路は、プロセッサに接続されたメモリコントローラとメモリの間に接続され、上記メモリコントローラから入力されるアドレスに所定のコードを加え、アドレス変換して上記メモリに出力し、当該所定コードに応じて上記メモリに格納されたプログラム領域を切替えるものである。
また、上記メモリコントローラから入力される同一のアドレスに対して、上記所定のコードを変更して加えることにより、上記メモリ上の異なるプログラム領域にアクセスしても良い。また、上記メモリコントローラから入力されるアドレスが、所定のアドレス範囲内である場合に、アドレスを変換してメモリに出力しても良い。
また、上記メモリコントローラからセレクト信号が入力され、当該セレクト信号に応じてアドレスを変換して上記メモリに出力しても良い。また、上記プロセッサから上記所定コードを変更できるようにしても良い。
また、外部信号によって上記所定コードを変更できるようにしても良い。
【００１１】
さらに、この発明による電子機器は、上記プログラム切替回路と、プロセッサと、メモリコントローラと、メモリとを備えたものである。
【発明の効果】
【００１２】
この発明によれば、メモリ上のプログラム領域へアクセスするための特別な機能をプロセッサに持たせることがなくとも、異なるアドレスに格納された別のプログラムを簡易に切り替えることができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１によるプログラム切替回路および電子機器の構成を示す図である。
【図２】実施の形態１によるプログラム切替回路の動作を説明するフローチャートである。
【図３】実施の形態１によるアドレスマップの一例を示す図である。
【図４】実施の形態２によるプログラム切替回路と電子機器の構成を示す図である。
【図５】実施の形態２によるプログラム切替回路の動作を説明するフローチャートである。
【図６】実施の形態４によるプログラム切替回路の構成を示す図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１は、この発明に係る実施の形態１によるプログラム切替回路および電子機器の構成を示す図である。図１において、実施の形態１の電子機器は、プロセッサ１と、メモリコントローラ３と、メモリ４と、プログラム切替回路７を備えている。プロセッサ１とメモリコントローラ３の間はプロセッサバス２を介して接続されている。メモリコントローラ３とメモリ４の間にはバス１０が接続されている。
バス１０には、プログラム切替回路７が接続されている。バス１０は、コントロールバス５、アドレス／データバス６から構成される。コントロールバス５は、メモリコントローラ３とメモリ４を接続するとともに、プログラム切替回路７に接続されている。アドレス／データバス６はアドレス／データバス６ａ、６ｂからなり、アドレス／データバス６ａはメモリコントローラ３とプログラム切替回路７の間に接続され、アドレス／データバス６ｂはプログラム切替回路７とメモリ４の間に接続される。
プログラム切替回路７は、アドレス判定／変換部７１とオフセット部７２から構成される。オフセット部７２は、所与のアドレスを異なるアドレスに所定量シフトする（ずらす）ためのコード（以下、オフセットコードと称する）が予め格納されている。
【００１５】
プロセッサ１は、メモリ４に格納されたプログラムを実行する。プロセッサ１がプログラムを実行するための命令やデータのアクセス要求は、プロセッサバス２を介してメモリコントローラ３に伝達される。メモリコントローラ３は、メモリ４の入出力をコントロールする。メモリコントローラ３は、プロセッサ１または外部装置によってコントロールされても良い。
メモリコントローラ３は、コントロールバス５を介して、アクセス先のアドレスに応じてアクセス先のデバイスを特定するためのチップセレクト信号５ｓ、およびクロック、書き込みか読み出しか、どのバイトが有効か等の制御信号を送出すると共に、アドレス／データバス６ａを介して、アクセス先のデバイスのアドレスをアドレス信号６ａｓとして送出する。
【００１６】
プログラム切替回路７は、チップセレクト信号５ｓおよびアドレス信号６ａｓから供給されるアドレスを、アドレス判定／変換部７１で判定する。アドレス判定／変換部７１の判定により、アドレス信号６ａｓから供給されるアドレスが所定のアドレス範囲である場合には、オフセット部７２のオフセットコード分だけオフセットを適用した（ずらした）アドレスを、アドレス／データバス６ｂを介してアドレス信号６ｂｓとして送出する。一方、所定のアドレス範囲でない場合には、アドレス信号６ａｓから受け取ったアドレスを、アドレス／データバス６ｂを介してそのままアドレス信号６ｂｓとして送出する。
【００１７】
コントロールバス５を介して伝達されたチップセレクト信号５ｓおよびその他の制御信号と、アドレス／データバス６ｂを介して伝達されたアドレス信号６ｂｓによって、メモリ４へのデータの書き込みまたは読み出しが行われる。データの授受は、アドレス／データバス６ａ、６ｂを介して行われる。
【００１８】
図２は、プログラム切替回路７におけるアドレス判定／変換部７１の動作を示すフローチャートである。
アドレス判定／変換部７１は、チップセレクト信号５ｓがアクセス先のデバイスとしてメモリ４を指定しているかどうかを判断する(ステップＳ１)。
アクセス先としてメモリ４が指定されている場合、アドレス信号６ａｓから受けたアクセス先のアドレス(以下、これを入力アドレスとする)が、オフセット部７２のオフセットコードを適用して変換すべきアドレス範囲であるかどうかを判定する(ステップＳ２)。
この入力アドレスが変換すべきアドレス範囲でない場合には、入力アドレスを出力アドレスとし、この出力アドレスをアドレス信号６ｂｓとして送出する(ステップＳ３)。
また、入力アドレスが変換すべきアドレス範囲内であった場合には、入力アドレスの有効範囲にオフセット部７２のオフセットコードを加算したアドレスを出力アドレスとし、アドレス信号６ｂｓとして送出する(ステップＳ４)。
【００１９】
図３は、プロセッサ１から見たアドレスマップの一例を示す図である。
この例では、プロセッサ１のアドレスXX000000からXXXXXXXXの範囲がメモリ４のアドレス000000からXXXXXXの範囲にアクセスできる領域であり、プロセッサ１のアドレスXXY00000からXXYYYYYYの範囲がプログラム切替回路７によりオフセットコードが適用されメモリ４にアクセスできる領域であるとしている。
【００２０】
この場合において、メモリコントローラ３が、プロセッサ１のアドレスXX000000からXXYYYYYYの範囲がメモリ４のアドレス000000からYYYYYYに対応する領域であると設定した例について説明する。
【００２１】
プロセッサ１がこの範囲にアクセスした際には、アクセス先のデバイスがメモリ４であることを示すチップセレクト信号５ｓが送出されると共に、アドレス信号６ａｓにはアクセス先であるメモリ４のアドレスが送出される。このメモリコントローラ３の設定や動作については、本発明の本質ではないため、説明を省略する。
【００２２】
この例においては、アドレス判定／変換部７１で変換すべきアドレス範囲はY00000からYYYYYYとなり、入力アドレスの有効範囲は000000から0YYYYYとなる。例えば、プロセッサ１がXXY00ZZZにアクセスした場合、アドレス判定／変換部７１における入力アドレスはY00ZZZとなり、変換すべきアドレス範囲内であるため、入力アドレスの有効範囲である000ZZZにオフセット部７２のオフセットコードが加算されたアドレスを出力アドレスとし、アドレス信号６ｂｓとして送出する。
【００２３】
ここで、オフセット部７２のオフセットコードが00A000である場合には、出力アドレスは00AZZZとなり、メモリ４のアドレス00AZZZに格納されているプログラムＡにアクセスすることとなる。オフセット部７２のオフセットコードが00B000である場合には、出力アドレスは00BZZZとなり、メモリ４のアドレス00BZZZに格納されているプログラムＢにアクセスすることとなる。プロセッサ１は同じアドレスXXY00ZZZにアクセスしていながら、オフセット部７２のオフセットコードを変えることで、別のプログラムにアクセスすることとなる。
【００２４】
なお、上記では、プロセッサ１、プロセッサバス２、メモリコントローラ３を分けて説明したが、これらが１チップに一体化されたものであっても良い。
また、メモリ４は、揮発性のメモリ(いわゆるＲＡＭ)であっても、不揮発性のメモリ(いわゆるＲＯＭ)であっても良い。
【００２５】
また、チップセレクト信号５ｓは、メモリコントローラ３からメモリ４に直接接続される構成で説明したが、アドレス信号６ａｓ、６ｂｓと同様に、プログラム切替回路７を介してメモリ４に接続されるように構成しても良い。
【００２６】
また、アドレス／データバス６ａ、６ｂのうち、プログラム切替回路７が変更しているものはアドレスのみである。このため、アドレス／データバス６ａ、６ｂがアドレス信号とデータ信号と分離された構成である場合には、アドレス信号のみをプログラム切替回路７を経由して接続し、データ信号はメモリコントローラ３からメモリ４に直接接続する構成としても良い。
【００２７】
このように構成されたプログラム切替回路においては、オフセット部７２に格納されたオフセットコードを何らかの方法で変えることによって、メモリ４の異なるアドレスに格納された別のプログラムを、プロセッサ１は同一のアドレスで実行することができる。例えば、プロセッサ１からの指令や外部装置からの指令により、オフセット部７２に格納されたオフセットコードを書き換えればよい（具体例については後述する）。或いは、予めオフセット部７２にセットされたオフセットコードを、プロセッサ１からの指令や外部装置からの指令により、切替えればよい（具体例については後述する）。
かくして、プロセッサ１は同一のアドレスで実行動作するプログラムを用意するだけでよく、アドレスの修正などの余計なプログラム開発の手間をなくし、プログラムの開発を効率的に行うことができる。また、プログラムの修正ミスなどの不具合を抑制することができる。
【００２８】
また、プログラム切替回路は、メモリコントローラ３とメモリ４との間に構成され、プログラムの切替を行っているので、プロセッサ１、プロセッサバス２、メモリコントローラ３、メモリ４などに特別な機能を新たに盛り込む必要はなく、既存のものをそのまま活用することができる。
【００２９】
また、プログラム切替回路は、所定のアドレス範囲にアクセスする都度、切替を行っているので、任意にタイミングでプログラムを切り替えることができ、機器を停止することなくプログラムを切り替えることができる。
【００３０】
実施の形態２．
図４はこの発明に係る実施の形態２によるプログラム切替回路および電子機器の構成を示す図である。上記実施の形態１のプログラム切替回路７では、メモリコントローラ３からアドレス信号６ａｓに送出されるアドレスによってプログラムの切替を行っていたが、本実施の形態２のプログラム切替回路７では、メモリコントローラ３から送出されるチップセレクト信号５ａｓ、５ｃｓによって、プログラムの切替を行う点が異なる。
図４において、メモリコントローラ３とプログラム切替回路７の間は、コントロールバス５ａ、５ｃと、アドレス／データバス６ａを介して接続される。また、プログラム切替回路７とメモリ４の間は、コントロールバス５ｂと、アドレス／データバス６ｂを介して接続される。その他の構成については、図１に示した構成と同様である。
【００３１】
実施の形態２のプログラム切替回路７においては、例えば、図３のようなアドレスマップであった場合、メモリコントローラ３には、プロセッサ１のアドレスXX000000からXXXXXXXXの範囲に対して、チップセレクト信号５ａｓと共に、アドレス信号６ａｓにはアドレス000000からXXXXXXの範囲が送出されるように設定する。また、プロセッサ１のアドレスXXY00000からXXYYYYYYの範囲に対しては、チップセレクト信号５ｃｓが送出されると共に、アドレス信号６ａｓにはアドレス000000から0YYYYYの範囲が送出されるように設定する。
【００３２】
図５は、プログラム切替回路７内のアドレス判定／変換部７１の動作を示すフローチャートである。ここで、図５を用いて、アドレス判定／変換部７１の動作を説明する。アドレス判定／変換部７１は、メモリコントローラ３からコントロールバス５ａを介し、チップセレクト信号５ａｓが送出されているかどうかを判断する(ステップＳ５)。
チップセレクト信号５ａｓが送出されていた場合は、入力アドレスを出力アドレスとし、コントロールバス５ｂを介したチップセレクト信号５ｂｓと共に、アドレスバス６ｂを介してアドレス信号６ｂｓに、この出力アドレスを送出する(ステップＳ６)。
チップセレクト信号５ａｓが送出されていない場合は、メモリコントローラ３からコントロールバス５ｃを介したチップセレクト信号５ｃｓが送出されているかどうかを判断する(ステップＳ７)。
チップセレクト信号５ｃｓが送出されていた場合は、入力アドレスにオフセット部７２のオフセットコードを加算したアドレスを出力アドレスとし、コントロールバス５ｂを介したチップセレクト信号５ｂｓと共に、アドレスバス６ｂを介してアドレス信号６ｂｓに、この出力アドレスを送出する(ステップＳ８)。
チップセレクト信号５ａｓまたは５ｂｓは、例えばプロセッサ１からメモリコントローラ３に入力される指令によって選択的に出力されても良い。また、チップセレクト信号５ａｓまたは５ｂｓは、例えば外部装置からメモリコントローラ３に入力される指令によって選択的に出力されても良い。
【００３３】
このように構成されたプログラム切替回路においては、変換範囲や入力アドレスの有効範囲をアドレス判定／変換部７１に保持する必要がないので、変換範囲を容易に変更することができ、より柔軟性の高いプログラム切替回路を実現することができる。
【００３４】
実施の形態３．
この発明に係る実施の形態３のプログラム切替回路７について説明する。実施の形態３では、上記実施の形態１および実施の形態２において、アドレス判定／変換部７１は、プロセッサ１の指令によるメモリコントローラ３からの入力アドレスとして、特定のアドレスが入力された場合、アドレス信号６ｂｓに出力アドレスを送出せず、オフセット部７２にアクセスするように構成しても良い。これにより、プロセッサ１は特定のアドレスにアクセスすることで、オフセット部７２のオフセットコードを参照または更新することができる。かくして、オフセット部７２のオフセットコードの変更により、プロセッサ１自身によってプログラムを切り替えることができる。
【００３５】
実施の形態４．
図６はこの発明に係る実施の形態４のプログラム切替回路を示す図である。実施の形態４のプログラム切替回路７は、複数のオフセット部７２ａ、７２ｂを保持し、これらを外部信号８によって切り替える。例えば、アドレス判定／変換部７１は、外部信号８が０の場合は、オフセット部７２ａのオフセットコードを使用して出力アドレスを生成する。一方、外部信号８が１の場合は、オフセット７２ｂのオフセットコードを使用して出力アドレスを生成し、アドレス信号６ｂｓにこの出力アドレスを送出する。
【００３６】
なお、ここではオフセット部が２つの場合について説明したが、より多くのオフセット部を具備しても良い。
また、外部信号８も複数の信号から構成されていても良い。
また、各々のオフセット部は、上記実施の形態３と同様、プロセッサ１からアクセスして、制御できるようにしても良い。
【００３７】
このように構成された電子機器においては、プロセッサ１によらず、プログラム切替回路７を用いた簡易な構成により、複数の異なるプログラムを切り替えることができる。
【産業上の利用可能性】
【００３８】
ところで上記説明では、この発明をプログラムの切り替えに利用する場合について述べたが、データの切り替えなどにも利用できることはいうまでもない。
【符号の説明】
【００３９】
１  プロセッサ、  ２  プロセッサバス、  ３  メモリコントローラ、  ４  メモリ、  ５ｓ、５ａｓ、５ｂｓ、５ｃｓ  チップセレクト信号、６ａｓ、６ｂｓ  アドレス信号、  ７  プログラム切替回路、  ７１  アドレス判定／変換部、  ７２、７２ａ、７２ｂ  オフセット部、  ８  外部信号。
【図１】
2012194819.tif 000003
【図２】
2012194819.tif 000004
【図３】
2012194819.tif 000005
【図４】
2012194819.tif 000006
【図５】
2012194819.tif 000007
【図６】
2012194819.tif 000008