(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、メモリと、表示デバイスと、前記ＣＰＵに対して前記表示デバイスの画面を更新する割り込み処理を実行させるための割り込み信号を一定周期で通知し、該割り込み信号に応じて前記ＣＰＵから通知された転送要求に基づき前記メモリに格納された画面データを前記表示デバイスに転送する表示制御部とを有してなる情報処理装置において、
前記ＣＰＵは、
マスク不可の割り込み信号であるＮＭＩ信号が入力されるＮＭＩ端子と、
マスク可の割り込み信号であるＩＮＴ信号が入力されるＩＮＴ端子とを有し、
前記表示制御部は、
前記ＣＰＵへの割り込み信号の出力先を前記ＮＭＩ端子または前記ＩＮＴ端子のいずれかに設定するための設定情報が前記ＣＰＵにより書き込まれるレジスタと、
一定周期で、前記レジスタに書き込まれた設定情報に応じて前記ＣＰＵの前記ＮＭＩ端子または前記ＩＮＴ端子のいずれかに割り込み信号を出力するスイッチと、
前記ＣＰＵから通知された転送要求に基づき前記メモリに格納された画面データを前記表示デバイスに転送する転送部とを有し、
前記ＣＰＵは、当該ＣＰＵをリセットするソフトウェアリセットを実行する場合、前記表示制御部から出力される割り込み信号の出力先を前記ＣＰＵの前記ＮＭＩ端子に設定するための設定情報を前記レジスタに書き込み、その後に、前記ソフトウェアリセットを実行することを特徴とする情報処理装置。
【請求項２】
前記ＣＰＵは、前記ソフトウェアリセットを実行した後に、前記表示制御部から出力される割り込み信号の出力先を前記ＣＰＵの前記ＩＮＴ端子に設定するための設定情報を前記レジスタに書き込む、請求項１に記載の情報処理装置。
【請求項３】
前記ＣＰＵは、所定のタイミングで、前記ソフトウェアリセットを自動的に実行する、請求項１または２に記載の情報処理装置。
【請求項４】
前記メモリにおいて、前記ＣＰＵが前記ＮＭＩ信号の割り込みを受けて実行する割り込み処理時に使用するワーク領域が、ＫＥＲＮＥＬまたはオペレーティングシステムにより管理される領域の範囲外に設けられている、請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
ＣＰＵと、メモリと、表示デバイスと、前記ＣＰＵに対して前記表示デバイスの画面を更新する割り込み処理を実行させるための割り込み信号を一定周期で出力し、該割り込み信号に応じて前記ＣＰＵから通知された転送要求に基づき前記メモリに格納された画面データを前記表示デバイスに転送する表示制御部とを有する情報処理装置における画面表示方法であって、
前記ＣＰＵに、マスク不可の割り込み信号であるＮＭＩ信号が入力されるＮＭＩ端子と、マスク可の割り込み信号であるＩＮＴ信号が入力されるＩＮＴ端子とを設け、
前記ＣＰＵは、当該ＣＰＵをリセットするソフトウェアリセットを実行する場合、前記表示制御部から出力される割り込み信号の出力先を前記ＣＰＵの前記ＮＭＩ端子に設定し、その後に、前記ソフトウェアリセットを実行することを特徴とする画面表示方法。
【請求項６】
前記ＣＰＵは、前記ソフトウェアリセットを実行した後に、前記表示制御部から出力される前記割り込み信号の出力先を前記ＣＰＵの前記ＩＮＴ端子に設定する、請求項５に記載の画面表示方法。
【請求項７】
前記ＣＰＵは、所定のタイミングで、前記ソフトウェアリセットを自動的に実行する、請求項５または６に記載の画面表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置における画面表示方法に関する。
【背景技術】
【０００２】
従来、表示デバイスに画面を表示する一般消費者向けの情報処理装置としては、携帯電話、ハードディスクレコーダ、カーナビゲーションシステムなどがある。
【０００３】
情報処理装置は、ネットワーク機能、マルチメディア機能などの多数の機能が搭載されているため、ソフトウェアが非常に複雑化している。
【０００４】
また、情報処理装置では、上記のような多数の機能間で、内部のメモリ（ＲＡＭ：Random Access Memory）を効率的に使用するため、メモリの動的管理機能や仮想メモリ機能といったメモリ管理機能も搭載されている。
【０００５】
しかし、情報処理装置を長時間（数日〜数ヶ月）稼動させたままにしていると、動的に管理されているメモリが細かく分断化されたり、ソフトウェアのバグにより使用不可能なメモリ領域が発生（メモリーリーク）したりする状況になることがある。このような状況になった場合、情報処理装置の処理速度の低下や動作異常が発生するおそれがある。
【０００６】
この対策としては、例えば、情報処理装置の使用者は、ＣＰＵ（Central Processing Unit）上で動作するソフトウェアを再起動して初期化するために、情報処理装置が無操作状態になってから一定時間経過したタイミングや深夜の決められた時間になったタイミングで、ＣＰＵのリセットすなわちソフトウェアリセットを実施することが考えられる。そうすれば、処理速度の低下の発生などを抑制することができるため、情報処理装置を快適に利用することができる。
【０００７】
しかし、ソフトウェアリセットを実施すると、ソフトウェアの初期化が完了するまでの間、ＬＣＤ（Liquid Crystal Display）などの表示デバイスの画面表示が消えてしまったり、表示デバイスの表示画面が乱れたりするなどの動作が発生しやすい。このような動作が使用者の目に触れると、異常動作と受け止められるため、ソフトウェアリセット時も画面表示が消えることなく表示画面を維持することが要求されている。
【０００８】
このような要求に対する解決策としては、表示デバイスとして、ビデオメモリなどの表示専用メモリを実装したデバイスを使用し、ソフトウェアリセットの実行中は表示デバイス側で画面表示を維持する方法がある。しかし、表示専用メモリを実装した表示デバイスは、部品単価が高いため、情報処理装置を安価に構成することができない。
【０００９】
一方で、このような表示専用メモリを実装していない表示デバイスを使用する場合、ＣＰＵは、表示デバイスの表示を更新するため、一定の間隔（１秒間で３０〜６０回程度）で最新の画面データを表示デバイスに転送する必要がある。しかし、ソフトウェアリセットには、上記の間隔よりも長い時間かかってしまうこと、また、通常、ソフトウェアリセット直後のＣＰＵは、表示更新タイミングを受け取るための割り込み信号をハードウェアが自動でマスクしてしまい、表示更新のための割り込み処理が中断されることから、画面データに抜けが生じてしまい、画面表示上、情報処理装置の使用者になんらかの不具合を感知させてしまっていた。
【００１０】
そこで、最近、例えば、特許文献１には、オペレーションシステムの再起動時に、無停止モジュールが特定の割り込みを横取りし、その割り込みに対する割り込み処理を実行することにより、特定の割り込み処理を継続して実行する技術が開示されている。
【特許文献１】特許第３５９３２４１号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、特許文献１に開示された技術は、オペレーションシステムの再起動時に、無停止モジュールに特定の割り込み処理を実行させるものであるため、無停止モジュールが存在すれば、ＣＰＵをリセットするソフトウェアリセットは実行されない。従って、オペレーションシステム以外のソフトウェア、例えば割り込みハンドラ等は初期化しないため、再起動後の動作が安定しないと考えられる。
【００１２】
そこで、本発明の目的は、ソフトウェアリセットを実行する場合に、表示専用メモリを実装せずに画面表示を維持することができる情報処理装置、情報処理装置における画面表示方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明は、
ＣＰＵと、メモリと、表示デバイスと、前記ＣＰＵに対して前記表示デバイスの画面を更新する割り込み処理を実行させるための割り込み信号を一定周期で通知し、該割り込み信号に応じて前記ＣＰＵから通知された転送要求に基づき前記メモリに格納された画面データを前記表示デバイスに転送する表示制御部とを有してなる情報処理装置において、
前記ＣＰＵは、
マスク不可の割り込み信号であるＮＭＩ信号が入力されるＮＭＩ端子と、
マスク可の割り込み信号であるＩＮＴ信号が入力されるＩＮＴ端子とを有し、
前記表示制御部は、
前記ＣＰＵへの割り込み信号の出力先を前記ＮＭＩ端子または前記ＩＮＴ端子のいずれかに設定するための設定情報が前記ＣＰＵにより書き込まれるレジスタと、
一定周期で、前記レジスタに書き込まれた設定情報に応じて前記ＣＰＵの前記ＮＭＩ端子または前記ＩＮＴ端子のいずれかに割り込み信号を出力するスイッチと、
前記ＣＰＵから通知された転送要求に基づき前記メモリに格納された画面データを前記表示デバイスに転送する転送部とを有し、
前記ＣＰＵは、当該ＣＰＵをリセットするソフトウェアリセットを実行する場合、前記表示制御部から出力される割り込み信号の出力先を前記ＣＰＵの前記ＮＭＩ端子に設定するための設定情報を前記レジスタに書き込み、その後に、前記ソフトウェアリセットを実行することを特徴とする。
【００１４】
なお、前記ＣＰＵは、前記ソフトウェアリセットを実行した後に、前記表示制御部から出力される割り込み信号の出力先を前記ＣＰＵの前記ＩＮＴ端子に設定するための設定情報を前記レジスタに書き込むこととしても良い。
【００１５】
また、前記ＣＰＵは、所定のタイミングで、前記ソフトウェアリセットを自動的に実行することとしても良い。
【００１６】
また、前記メモリにおいて、前記ＣＰＵが前記ＮＭＩ信号の割り込みを受けて実行する割り込み処理時に使用するワーク領域が、ＫＥＲＮＥＬまたはオペレーティングシステムにより管理される領域の範囲外に設けられていても良い。
【発明の効果】
【００１７】
本発明によれば、ＣＰＵは、ＣＰＵをリセットするソフトウェアリセットを実行する場合、表示制御部の割り込み信号の出力先をＣＰＵのＮＭＩ端子側に切り替え、その後にソフトウェアリセットを実行している。
【００１８】
よって、ソフトウェアリセットの実行中、表示制御部の割り込み信号は、マスクが不可能なＮＭＩ信号としてＣＰＵに出力されるため、ＣＰＵのハードウェアが割り込み信号をマスクしてしまうことが防止される。そのため、ＣＰＵは、ソフトウェアリセットの実行中に表示デバイスの画面更新のための割り込み処理、すなわち、表示制御部に対し、表示デバイスへの画面データの転送要求を継続して行うことができる。
【００１９】
従って、ソフトウェアリセットの実行中も、表示デバイスに表示する画面データに抜けが生じることがないため、表示デバイスの画面表示を維持することができる。また、ソフトウェアリセットの実行中に、表示制御部に対して画面データの転送要求を継続して行うことができるため、表示専用メモリを実装する必要もない。
【００２０】
また、ＣＰＵをリセットするソフトウェアリセットを実行し、ＫＥＲＮＥＬまたはオペレーティングシステムだけでなく、割り込みハンドラやアプリケーションソフトウェアなどを含めて初期化するため、情報処理装置を安定して稼動させることができる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００２２】
図１は、本発明の一実施形態の情報処理装置のハードウェア構成およびソフトウェア構成を示す図である。
【００２３】
本実施形態の情報処理装置を構成するハードウェアは、ＣＰＵ１、メモリ２、表示制御部であるＬＣＤコントローラ３、表示デバイスであるＬＣＤ４、およびメモリＩ／Ｏバス５からなる。
【００２４】
ＣＰＵ１は、マスク不可能な割り込み信号であるＮＭＩ（Non Maskable Interrupt）信号が入力されるＮＭＩ端子１−１と、通常のマスク可能な割り込み信号であるＩＮＴ（Interrupt）信号が入力されるＩＮＴ端子１−２とを有している。ＣＰＵ１は、ＬＣＤコントローラ３からＮＭＩ信号またはＬＣＤ４用のＩＮＴ信号が入力されると、ＬＣＤ４の画面を更新するための割り込み処理を実行し、ＬＣＤコントローラ３に対し、メモリ２のアドレスを指定して該アドレスに格納された画面データのＬＣＤ４への転送要求を行う。
【００２５】
ＬＣＤコントローラ３は、ＬＣＤ４の画面を更新するための表示更新タイミングを一定周期で発生するオシレータ３−１と、ＣＰＵ１への割り込み信号の出力先をＮＭＩ端子１−１またはＩＮＴ端子１−２のいずれかに設定するための設定情報がＣＰＵ１により書き込まれる割り込み切替レジスタ３−２と、オシレータ３−１で表示更新タイミングが発生したタイミングで、割り込み切替レジスタ３−２に書き込まれた設定情報に応じて割り込み信号をＣＰＵ１のＮＭＩ端子１−１またはＩＮＴ端子１−２のいずれかに出力するスイッチ３−３と、ＣＰＵ１からの転送要求に基づき、メモリ２の指定されたアドレスに格納された画面データをＬＣＤ４へ転送する転送部３−４とを有している。
【００２６】
ＬＣＤ４は、ＬＣＤコントローラ３と接続され、ＬＣＤコントローラ３から転送されてきた画面データを表示する表示デバイスである。
【００２７】
メモリＩ／Ｏバス５は、ＣＰＵ１、メモリ２、およびＬＣＤコントローラ３を相互に接続するバスである。
【００２８】
本実施形態の情報処理装置のＣＰＵ１上で動作するソフトウェアは、ＫＥＲＮＥＬ（またはオペレーティングシステム）６、ＬＣＤドライバ７、ＬＣＤ用ＩＮＴハンドラ（以下、単に“ＩＮＴハンドラ”と称す）８、ＮＭＩハンドラ９、およびアプリケーションソフトウェア１０からなる。
【００２９】
図２は、図１に示したメモリ２の記憶領域がソフトウェアにより分割された状態を示す図である。
【００３０】
メモリ２は、読み出し専用の実行コードを格納するＲＯＭ（Read Only Memory）と、実行中のワーク領域を格納するＲＡＭから構成されている。
【００３１】
ＲＯＭの記憶領域は、ＫＥＲＮＥＬ６、ＬＣＤドライバ７、およびアプリケーションソフトウェア１０の実行コードを含む領域Ｍ−１と、ＩＮＴ信号の割り込みにより割り込み処理を行うＩＮＴハンドラ８の実行コード（ＩＮＴベクタ）を格納する領域Ｍ−２と、ＮＭＩ信号の割り込みにより割り込み処理を行うＮＭＩハンドラ９の実行コード（ＮＭＩベクタ）を格納する領域Ｍ−３とに分割されている。
【００３２】
ＩＮＴベクタおよびＮＭＩベクタを、他の実行コードが格納されている領域Ｍ−１とは別領域に格納しているのは、通常、ＣＰＵ１をリセットするソフトウェアリセット直後に割り込みが発生した時の実行アドレスは予め決められているため、そのような実行アドレスを格納するために予め特定の領域を割り当てる必要があるからである。
【００３３】
ＲＡＭの記憶領域は、ＮＭＩ信号の割り込みによる割り込み処理時にＮＭＩハンドラ９が動作するためにスタックやワークとして確保されているＮＭＩベクタワーク領域Ｍ−４と、ＫＥＲＮＥＬ６起動後にＫＥＲＮＥＬ６が管理し、ＬＣＤドライバ７やアプリケーションソフトウェア１０に対して動的にメモリの割り当てを行うためのＫＥＲＮＥＬ管理領域Ｍ−５と、ソフトウェアリセット直後にＬＣＤ４がリセット前から継続動作中であるか否かを判定するために参照するＬＣＤ動作中フラグを格納する領域Ｍ−６と、ＬＣＤ４の表示内容を保持するビデオメモリ領域Ｍ−７とに分割されている。なお、領域Ｍ−６は、領域サイズが８バイト程度の小領域である。また、領域Ｍ−７は、ＬＣＤ４の表示画素数と色深度に応じて領域サイズが決定される。例えば、ＬＣＤ４の表示画素数が２４０×３２０［ｐｉｘｅｌ］で、色深度が１６［ｂｐｐ］（約６万５千色）であれば、領域Ｍ−７の領域サイズは、最低２４０×３２０×２＝１５３６００バイトが必要となる。
【００３４】
なお、ＮＭＩベクタワーク領域Ｍ−４には、ソフトウェアリセット動作の制御を行うためのリセット完了フラグを格納する領域Ｍ−４−１が設けられている。
【００３５】
以下、図１に示した情報処理装置の動作について説明する。
【００３６】
まず、ハードウェアリセット時の処理シーケンスについて、図３のシーケンスチャートを用いて説明する。なお、ハードウェアリセットは、情報処理装置に初めて電源を投入した時などに行われる。
【００３７】
図３を参照すると、ハードウェアリセットが発生した場合、ＣＰＵ１上では、まず、ＫＥＲＮＥＬ６が動作を開始する。通常、ＣＰＵ１のリセットベクタのアドレス上には、ＫＥＲＮＥＬ６またはＫＥＲＮＥＬ６を起動するための初期化コードが格納されているため、そのいずれかをＣＰＵ１が読み出すことでＫＥＲＮＥＬ６の動作が開始される。ＫＥＲＮＥＬ６は、メモリ２のＲＡＭ上のＫＥＲＮＥＬ管理領域Ｍ−５の初期化などの初期化処理を実行する（ステップ３０１）。
【００３８】
ＫＥＲＮＥＬ６は、初期化処理が完了すると、今度は、ＬＣＤドライバ７に初期化処理を実行させるために、ＬＣＤドライバ７に対して初期化要求を発行する（ステップ３０２）。
【００３９】
ＬＣＤドライバ７は、初期化処理において、まず、メモリ２のＲＡＭ上の領域Ｍ−６に格納されているＬＣＤ動作中フラグを参照して、ＬＣＤ４がリセット前から継続動作中であったか否かを判定する（ステップ３０３）。
【００４０】
例えば、領域Ｍ−６に、ＬＣＤ動作中フラグとして、“ＬＣＤ  ｉｓ  ＯＮ”という文字列が格納されていれば、ＬＣＤドライバ７は、ＬＣＤ４が継続動作中であったとして“ＹＥＳ”と判定し、それ以外であれば“ＮＯ”と判定する。ただし、ハードウェアリセット直後は、メモリ２の値は予測不可能なランダムな値となっているため、ＬＣＤドライバ７は、ステップ３０３では、“ＮＯ”と判定する。なお、ＬＣＤ４が継続動作中であったとして“ＹＥＳ”と判定されるケースについては、後述の図４にて説明する。
【００４１】
ＬＣＤドライバ７は、ステップ３０３でＬＣＤ４が動作中ではなかったとして“ＮＯ”と判定した場合は、以下のように、初期化処理を継続して行う。
【００４２】
まず、ＬＣＤドライバ７は、メモリ２のＲＡＭ上のビデオメモリ領域Ｍ−７を予め決められた値で初期化する（ステップ３０４）。初期化する値は、ビデオメモリ領域Ｍ−７の画像格納フォーマットに応じて異なるが、例えば、画像格納フォーマットが広く普及しているＲＧＢのパックトピクセル方式であれば、“０”で初期化することにより全面黒色の画面を構成することができる。
【００４３】
次に、ＬＣＤドライバ７は、ＬＣＤコントローラ３の割り込み信号をＣＰＵ１のＩＮＴ端子１−２側に出力させるための設定情報を、ＬＣＤコントローラ３の割り込み切替レジスタ３−２に書き込む（ステップ３０５）。
【００４４】
次に、ＬＣＤドライバ７は、ＬＣＤコントローラ３のオシレータ３−１の動作を開始させるように制御する（ステップ３０６）。
【００４５】
ステップ３０５，３０６の処理により、ＬＣＤコントローラ３ではＬＣＤ４の画面更新に必要な一定周期（本実施形態では、６０回／秒）で割り込み信号が発生し、発生した割り込み信号がＩＮＴ信号としてＣＰＵ１のＩＮＴ端子１−２側に出力される。
【００４６】
次に、ＬＣＤドライバ７は、ＬＣＤコントローラ３から出力されるＬＣＤ４用のＩＮＴ信号の割り込みマスクを解除する（ステップ３０７）。
【００４７】
通常、ＣＰＵ１のリセット直後には、ＩＮＴ信号は全てマスクされており、ＩＮＴ信号の割り込みが発生しても、ＩＮＴ信号の割り込みによる割り込み処理の命令アドレス（領域Ｍ−２に格納されたＩＮＴベクタ）に分岐することはない。そのため、ステップ３０７でＩＮＴ信号の割り込みマスクを解除することで、ＩＮＴハンドラ８は、ＬＣＤコントローラ３にて周期的に発生するＩＮＴ信号の割り込みに対して、領域Ｍ−２上のＩＮＴベクタの実行コードに基づく動作を行うことが可能となる。
【００４８】
以上でＬＣＤドライバ７の初期化処理が完了する。
【００４９】
ＬＣＤドライバ７は、初期化処理が完了すると、ＫＥＲＮＥＬ６に対して初期化完了通知を行う（ステップ３０８）。
【００５０】
ＫＥＲＮＥＬ６は、ＬＣＤドライバ７から初期化完了通知を受けると、予め決められたアプリケーションソフトウェア１０を起動する（ステップ３０９）。アプリケーションソフトウェア１０は、メモリ２のＲＡＭ上のビデオメモリ領域Ｍ−７に、アプリケーション画面に表示する画面データの書き込みを開始する（ステップ３１０）。
【００５１】
ＫＥＲＮＥＬ６およびアプリケーションソフトウェア１０の動作と並行して、ＬＣＤコントローラ３は、一定周期（本実施形態では、６０回／秒）で、ＩＮＴ信号をＣＰＵ１のＩＮＴ端子１−２側に出力する（ステップ３１１）。
【００５２】
ＩＮＴハンドラ８は、ＬＣＤコントローラ３からのＩＮＴ信号がＩＮＴ端子１−２に入力されると、ＬＣＤ４の画面更新のための割り込み処理を行う。すなわち、ＩＮＴハンドラ８は、ＬＣＤコントローラ３に対し、メモリ２のＲＡＭ上のビデオメモリ領域Ｍ−７のアドレスを指定して、そのアドレスに格納されている画面データをＬＣＤ４に転送させるための転送要求を発行する（ステップ３１２）。
【００５３】
ＬＣＤコントローラ３の転送部３−４は、ＩＮＴハンドラ８からの転送要求を受けると、ＩＮＴハンドラ８に指定されたビデオメモリ領域Ｍ−７のアドレスから画面データを読み出し、ＬＣＤ４に転送する（ステップ３１３）。
【００５４】
ステップ３１１〜３１３の処理は、一定周期（本実施形態では、６０回／秒）で繰り返し行われ、それによりＬＣＤ４では画面表示が継続される。
【００５５】
次に、ソフトウェアリセット時の処理シーケンスについて、図４のシーケンスチャートを用いて説明する。なお、図４は、図３のシーケンスにより情報処理装置が立ち上がった後、ＫＥＲＮＥＬ管理領域Ｍ−５の初期化のためにＬＣＤ４の画面表示を維持したまま、ソフトウェアリセットを実行する場合の処理シーケンスを示している。
【００５６】
図４を参照すると、アプリケーションソフトウェア１０は、予め決められたタイミング（無操作状態になってから一定時間経過したタイミングや深夜の決められた時間になったタイミングなど）で、ソフトウェアリセットの実行中にＬＣＤ４に表示しておく画面データ（携帯電話の待ち受け画面など）をビデオメモリ領域Ｍ−７に書き込む（ステップ４０１）。
【００５７】
また、アプリケーションソフトウェア１０は、上記のタイミングで、ＫＥＲＮＥＬ６に対してサイレントリセット要求を発行し（ステップ４０２）、さらに、ＫＥＲＮＥＬ６は、ＬＣＤドライバ７に対してサイレントリセット要求を発行する（ステップ４０３）。
【００５８】
この時、ＩＮＴハンドラ８およびＬＣＤコントローラ３は、一定周期（本実施形態では、６０回／秒）で、ステップ３１１〜３１３の処理を繰り返している。なお、ステップ３１１〜３１３の処理は、後述のステップ４０６でＬＣＤコントローラ３の割り込み切替制御レジスタ３−２の設定情報が書き換えられるまで繰り返し行われる。
【００５９】
ＬＣＤドライバ７は、ＫＥＲＮＥＬ６からサイレントリセット要求を受けると、以下のような処理を行う。
【００６０】
まず、ＬＣＤドライバ７は、メモリ２のＲＡＭ上の領域Ｍ−６に、ＬＣＤ動作中フラグとして文字列“ＬＣＤ  ｉｓ  ＯＮ”を書き込む（ステップ４０４）。
【００６１】
次に、ＬＣＤドライバ７は、メモリ２のＲＡＭ上の領域Ｍ−４−１に、リセット完了フラグとして“０”を書き込んでクリアする（ステップ４０５）。
【００６２】
次に、ＬＣＤドライバ７は、ＬＣＤコントローラ３の割り込み切替制御レジスタ３−２に、割り込み信号の出力先をＮＭＩ端子１−２側に切り替えるための制御情報を書き込む（ステップ４０６）。
【００６３】
ステップ４０６の処理により、以降、ＬＣＤコントローラ３で周期的に発生する割り込み信号は、ＩＮＴ端子１−２ではなく、ＮＭＩ信号としてＮＭＩ端子１−１側へ出力されることになる（ステップ４０７）。
【００６４】
ＮＭＩハンドラ９は、ＬＣＤコントローラ３からのＮＭＩ信号がＮＭＩ端子１−１に入力されると、以下のように、ＬＣＤ４の画面更新のための割り込み処理を行う。
【００６５】
まず、ＮＭＩハンドラ９は、ＬＣＤコントローラ３に対し、メモリ２のＲＡＭ上のビデオメモリ領域Ｍ−７のアドレスを指定して、そのアドレスに書き込まれている画面データをＬＣＤ４に転送させるための転送要求を発行する（ステップ４０８）。ＬＣＤコントローラ３は、ＮＭＩハンドラ９からの転送要求を受けると、ＮＭＩハンドラ９に指定されたビデオメモリ領域Ｍ−７のアドレスから画面データを読み出し、ＬＣＤ４に転送する（ステップ４０９）。このステップ４０８，４０９の処理は、ＩＮＴハンドラ８とＬＣＤコントローラ３とにより行われるステップ３１２，３１３の処理と同じである。
【００６６】
次に、ＮＭＩハンドラ９は、メモリ２のＲＡＭ上の領域Ｍ−４−１に格納されているリセット完了フラグが“１”にセット済みか否かを判定する（ステップ４１０）。ＮＭＩ信号による割り込みが、ステップ４０１以降の１回目の割り込みである場合は、ＬＣＤドライバ７がステップ４０５にてリセット完了フラグを“０”にクリアしているため、ステップ４１０の判定結果は“ＮＯ”となる。
【００６７】
ステップ４１０の判定結果が“ＮＯ”である場合、ＮＭＩハンドラ９は、リセット完了フラグを“１”にセットし（ステップ４１１）、ＣＰＵ１に対してソフトウェアリセット命令を発行する（ステップ４１２）。
【００６８】
この処理により、ＬＣＤコントローラ３からのＮＭＩ信号による割り込みがＮＭＩハンドラ９へ１回目に入力された直後に、ＣＰＵ１はリセットされることになる。
【００６９】
ＬＣＤコントローラ３からのＮＭＩ信号の入力タイミングに合わせてＣＰＵ１をリセットする理由は、ＮＭＩ信号の入力タイミングとは無関係にＫＥＲＮＥＬ６またはＬＣＤドライバ７によってＣＰＵ１をリセットすると、短時間ながらＣＰＵ１がハードウェアリセット動作をしている瞬間に割り込みを受ける場合があり、その場合、ＮＭＩ信号の割り込みであっても割り込みを拾えないおそれがあるからである。
【００７０】
ステップ４０７〜４１２の処理は、後述のステップ４１６でＬＣＤコントローラ３の割り込み切替制御レジスタ３−２の設定情報が書き換えられるまで繰り返し行われる。ただし、ＬＣＤドライバ７がステップ４１１にてリセット完了フラグを“１”にセットしているため、以降は、ステップ４１０の判定結果が“ＹＥＳ”となり、ソフトウェアリセット命令は発行されない。言い換えれば、ステップ４０１以降は、ソフトウェアリセット命令は１回だけ発行され、次に発行されるのは、上述のタイミングでステップ４０１以降の処理が再度開始された後になる。
【００７１】
ステップ４１２で発行されたソフトウェアリセット命令を受けて、ＣＰＵ１をリセットするソフトウェアリセット処理が発生すると、図３に示したハードウェアリセット時の処理シーケンスと同様に、ＫＥＲＮＥＬ６は、ＫＥＲＮＥＬ管理領域Ｍ−５の初期化処理を実行し（ステップ４１３）、ＬＣＤドライバ７に初期化要求を発行する（ステップ４１４）。また、ＬＣＤドライバ７は、初期化処理において、まず、ＬＣＤ４がリセット前から継続動作中であったか否かを判定する（ステップ４１５）。
【００７２】
しかし、ソフトウェアリセットを実行する前にステップ４０４でＬＣＤ動作中フラグとして“ＬＣＤ  ｉｓ  ＯＮ”を書き込んでいるため、ＬＣＤドライバ７は、図３に示したハードウェアリセット時とは異なり、ステップ４１５では、ＬＣＤ４が継続動作中であったとして“ＹＥＳ”と判定する。
【００７３】
ＬＣＤドライバ７は、ステップ４１５でＬＣＤ４が継続動作中であったとして“ＹＥＳ”と判定した場合は、以下のように、初期化処理を継続して行う。
【００７４】
まず、ＬＣＤドライバ７は、ＬＣＤコントローラ３で発生した割り込み信号をＣＰＵ１のＩＮＴ端子１−２側に出力するための設定情報を、ＬＣＤコントローラ３の割り込み切替レジスタ３−２に書き込む（ステップ４１６）。
【００７５】
次に、ＬＣＤドライバ７は、ＬＣＤコントローラ３から出力されるＬＣＤ４用のＩＮＴ信号の割り込みマスクを解除する（ステップ４１７）。
【００７６】
以上でＬＣＤドライバ７の初期化処理が完了する。なお、ソフトウェアリセット時のＬＣＤドライバ７の初期化処理が、図３に示したハードウェアリセット時の処理シーケンスと異なる点は、ステップ３０３のビデオメモリ領域Ｍ−７を初期化する処理とステップ３０６のオシレータ３−１の動作を開始させる処理とがない点にある。これは、ソフトウェアリセットを実行する前から、ＬＣＤコントローラ３によるＬＣＤ４への画面データの転送処理が行われているためである。
【００７７】
ＬＣＤドライバ７は、初期化処理が完了すると、ＫＥＲＮＥＬ６に対して初期化完了通知を行う（ステップ４１８）。
【００７８】
ステップ４１７，４１８の処理が完了すると、ソフトウェアリセットが実行された直後は、ＬＣＤコントローラ３からの周期的な割り込み信号がＮＭＩ信号として入力されてＮＭＩハンドラ９で割り込み処理を行っていたのに対し、再びＩＮＴ信号として入力されてＩＮＴハンドラ８で割り込み処理を開始するため、ソフトウェアリセット実行前の状態に戻る。すなわち、ステップ４１７，４１８の処理が完了した後は、図３のステップ３０９〜３１３と同様の処理となるステップ４１９〜４２３の処理が行われる。このうち、ステップ４１９〜４２３の処理は、上述したタイミングでステップ４０１以降の処理が再度開始され、ステップ４０６でＬＣＤコントローラ３の割り込み切替制御レジスタ３−２の設定情報が再度書き換えられるまでは、一定周期（本実施形態では、６０回／秒）で繰り返し行われることになる。
【００７９】
上述したように本実施形態においては、ＣＰＵ１は、ソフトウェアリセットを実行する場合、ＬＣＤコントローラ３の割り込み信号の出力先をＣＰＵ１のＮＭＩ端子１−１側に切り替え、その後にソフトウェアリセットを実行している。
【００８０】
よって、ソフトウェアリセットの実行中は、ＬＣＤコントローラ３の割り込み信号は、マスクが不可能なＮＭＩ信号としてＣＰＵ１に出力されるため、ＣＰＵ１のハードウェアが割り込み信号をマスクしてしまうことが防止される。そのため、ＣＰＵ１は、ソフトウェアリセットの実行中にＬＣＤ４の画面更新のための割り込み処理、すなわち、ＬＣＤコントローラ３に対し、ＬＣＤ４への画面データの転送要求を継続して行うことができる。
【００８１】
従って、ソフトウェアリセットの実行中も、ＬＣＤ４に表示する画面データに抜けが生じることがないため、ＬＣＤ４の画面表示を維持することができる。また、ソフトウェアリセットの実行中に、ＬＣＤコントローラ３に対して画面データの転送要求を継続して行うことができるため、表示専用メモリを実装する必要もない。
【００８２】
また、本実施形態においては、ＣＰＵ１をリセットするソフトウェアリセットを実行し、ＫＥＲＮＥＬ（またはオペレーティングシステム）６だけでなく、ＬＣＤドライバ７、ＩＮＴハンドラ８、ＮＭＩハンドラ９、およびアプリケーションソフトウェア１０を含めて初期化するため、情報処理装置の長時間稼動に起因するメモリ２の分断化などの発生を抑止し、情報処理装置を安定して稼動させることができる。
【００８３】
また、本実施形態においては、ＣＰＵ１は、ＬＣＤ４の画面表示を維持したまま、予め決められたタイミング（無操作状態になってから一定時間経過したタイミングなど）で自動的にソフトウェアリセットを実行するため、情報処理装置の使用者にソフトウェアリセットが実行されたことを認識させることがない。
【００８４】
また、本実施形態においては、ＬＣＤコントローラ３からの割り込み信号を、ソフトウェアリセットの実行中とそれ以外とで、ＣＰＵ１の異なる割り込み先に切り替えているため、ＣＰＵ１を２以上設けたマルチＣＰＵ構成とする必要がなく、ＣＰＵ１は１つだけ設ければよい。また、メモリ２も、表示専用メモリとする必要がなく、情報処理装置の内部で共有されるＲＡＭを用いればよく、また、ＬＣＤ４も一般的なＬＣＤを用いればよい。従って、上記制御を、１ＣＰＵ＋ＲＡＭ＋ＬＣＤといった多重化を行わない簡易な構成で実現することができるため、情報処理装置を安価に実現することができる。ただし、ＣＰＵ１は、マスク不可能なＮＭＩ信号が入力されるＮＭＩ端子１−１を実装する必要があるが、最近、ハードウェアの異常検出を目的としてＮＭＩ端子を実装しているＣＰＵが広く普及しているため、このようなＣＰＵは容易に調達することができる。
【００８５】
また、本実施形態においては、ＣＰＵ１は、ソフトウェアリセットを実行した直後に、ＬＣＤコントローラ３の割り込み信号の出力先をＣＰＵ１のＩＮＴ端子１−２側に戻している。通常、ＮＭＩ信号は、ＩＮＴ信号よりも優先度が高く設定されており、本来はハードウェア異常などを原因とする緊急性の非常に高い割り込みに対して適用されるものであるため、ＬＣＤ４の画面更新よりも優先して処理すべき他の割り込みが発生する場合も多いと考えられる。そこで、本実施形態では、ＬＣＤコントローラ３の割り込み信号を、常時、ＮＭＩ信号として利用することはせず、ソフトウェアリセット実行中の最小限の区間のみＬＣＤ４の画面更新のためにＮＭＩ信号として利用することとしている。
【００８６】
また、本実施形態においては、表示デバイスがＬＣＤ４であるものとして説明したが、本発明はこれに限定されず、その他の種類の表示デバイスを実装した情報処理装置にも当然に適用可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明の一実施形態の情報処理装置の構成を示す図である。
【図２】図１に示したメモリの記憶領域がソフトウェアにより分割された状態を示す図である。
【図３】図１に示した情報処理装置におけるハードウェアリセット発生時の処理シーケンスを説明するシーケンスチャートである。
【図４】図１に示した情報処理装置におけるソフトウェアリセット発生時の処理シーケンスを説明するシーケンスチャートである。
【符号の説明】
【００８８】
１    ＣＰＵ
２    メモリ
３    ＬＣＤコントローラ
４    ＬＣＤ
５    メモリＩ／Ｏバス
６    ＫＥＲＮＥＬ
７    ＬＣＤドライバ
８    ＬＣＤ用ＩＮＴハンドラ
９    ＮＭＩハンドラ
１０    アプリケーションソフトウェア
【図１】
0004692747.tif 000002
【図２】
0004692747.tif 000003
【図３】
0004692747.tif 000004
【図４】
0004692747.tif 000005