(57)【特許請求の範囲】
【請求項１】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段と、
前記ソフトウェア処理の区切り又はソフトウェア処理の終了を検出するソフトウェア処理検出手段と、
前記演算用制御部による前記メモリのアクセス状態を前記リセット回路に対し出力するメモリアクセス出力手段と、
前記リセット信号検出手段によってリセット信号の出力要求が検出された場合にリセット信号の出力要求が検出されてからの時間をカウントするリセットカウント手段と、
前記リセット信号検出手段によってリセット信号の出力要求が検出されたこと、前記ソフトウェア処理検出手段によってソフトウェア処理の区切り又はソフトウェア処理の終了が検出されたこと、及び、前記メモリアクセス出力手段によってメモリアクセスが行われている旨の出力が為されたことを条件に、前記リセットカウント手段による時間カウントに基づいて前記演算用制御部に対してリセット信号を出力し該演算用制御部を強制的に初期化する強制初期化手段と、
を備えることを特徴とするリセット制御装置。
【請求項２】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段と、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないことを検出する演算処理検出手段と、
前記リセット信号検出手段によってリセット信号の出力要求があった場合に新たにカウントを開始するカウンタ開始手段と、
リセット信号の出力要求があり且つ前記状態検出手段によって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始手段におけるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合には前記リセット信号生成手段により生成されたリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合に前記リセット信号を前記演算用制御部に出力するリセット信号制御手段と、
を備えることを特徴とするリセット制御装置。
【請求項３】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段と、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出手段と、
前記演算用制御部による前記メモリに対する書き込み状態の変化を変化検出信号として検出し、この変化検出信号の変化を検出する度に検出された該変化検出信号を出力する変化検出手段と、
前記変化検出手段から変化検出信号が出力される度に新たにカウントを開始するカウンタ開始手段と、
前記リセット信号検出手段によってリセット信号の出力要求があり且つ前記状態検出手段によって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始手段におけるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合には前記リセット信号生成手段により生成されたリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合に前記リセット信号を前記演算用制御部に出力するリセット信号制御手段と、
を備えることを特徴とするリセット制御装置。
【請求項４】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記ソフトウェア処理の区切り又はソフトウェア処理の終了を検出するソフトウェア処理検出ステップと、
前記演算用制御部による前記メモリのアクセス状態を前記リセット回路に対し出力するメモリアクセス出力ステップと、
前記リセット信号検出ステップによってリセット信号の出力要求が検出された場合にリセット信号の出力要求が検出されてからの時間をカウントするリセットカウントステップと、
前記リセット信号検出ステップによってリセット信号の出力要求が検出されたこと、前記ソフトウェア処理検出ステップによってソフトウェア処理の区切り又はソフトウェア処理の終了が検出されたこと、及び、前記メモリアクセス出力ステップによってメモリアクセスが行われている旨の出力が為されたことを条件に、前記リセットカウントステップによる時間カウントに基づいて前記演算用制御部に対してリセット信号を出力し該演算用制御部を強制的に初期化する強制初期化ステップと、
を含むことを特徴とするリセット制御方法。
【請求項５】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出ステップと、
前記リセット信号検出ステップによってリセット信号の出力要求があった場合に新たにカウントを開始するカウンタ開始ステップと、
リセット信号の出力要求があり且つ前記状態検出ステップにおいて処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始ステップのカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合にはリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合にリセット信号を前記演算用制御部に出力するリセット信号制御ステップと、
を含むことを特徴とするリセット方法。
【請求項６】
プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出ステップと、
前記演算用制御部による前記メモリに対する書き込み状態の変化を変化検出信号として検出し、この変化検出信号の変化を検出する度に検出された該変化検出信号を出力する変化検出ステップと、
前記変化検出ステップによる変化検出信号の出力が為される度に新たにカウントを開始するカウンタステップと、
前記リセット信号検出ステップによってリセット信号の出力要求があり且つ前記状態検出ステップによって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタステップによるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合にはリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合にリセット信号を前記演算用制御部に出力するリセット信号制御ステップと、
を含むことを特徴とするリセット方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、リセット制御装置及びリセット制御方法に係り、例えば、ＣＰＵ（Centra  l Processing Unit）やＭＰＵ（Micro Processing Unit）等のプロセッサに対  するリセット制御装置及びリセット制御方法に関する。
【０００２】
〔発明の背景〕
リセット（reset）とは、例えば、レジスタ、カウンタ等のすべてのフリップフロップのＱ出力を“０”（＝“Ｌ”）にすることであり、ＣＰＵやＭＰＵ等の算術・論理演算プロセッサにおいては、電源投入時等にシステムがある一定の状態になっていることが望ましいので、電源電圧の立ち上がりを信号としてとらえるパワーオンリセットがよく用いられている。
【０００３】
この場合、再度システムを電源投入後と同様の状態とするため、あるいは、一時的に算術・論理演算プロセッサを初期化するためにもリセット信号が利用されている。
【０００４】
このため、前述の算術・論理演算プロセッサ等には、通常、内部回路の初期化のためのリセット端子（あるいは、クリア端子）が設けられており、リセット端子にリセット信号を入力することにより、内部回路（フリップフロップ等）が初期化されるようになっている。
【０００５】
【従来の技術】
従来、例えば、ＣＰＵやＭＰＵ等の算術・論理演算プロセッサ（以下、単に演算プロセッサという）におけるリセット回路としては、
１．演算プロセッサのリセット端子に強制的にリセット信号を入力するものや、
２．演算プロセッサにおけるソフトウェア処理条件等に基づいてソフトウェア処理が途切れた場合、当該プロセッサのリセット端子に割込処理としてリセット信号を入力するもの等が提供されている。
【０００６】
すなわち、１．の場合、外部からのリセット信号要求に伴って、リセット信号（具体的には、リセットパルス）が生成され、生成されたリセット信号が演算プロセッサのリセット端子に出力されることにより、演算プロセッサ内の各部の状態が初期化される。
【０００７】
また、２．の場合、通常、演算プロセッサにおいては、所定のプログラム処理が実行されているが、このプログラム処理の実行の際に正常動作中は所定のステータス情報を外部に出力することにより、何らかの原因でプログラム実行処理が暴走し、このステータス情報が出力されないときは、プログラム実行処理に異常が発生したものとして演算プロセッサのリセット端子に割込信号としてリセット信号を出力し、初期化するものである。
【０００８】
【発明が解決しようとする課題】
しかしながら、１．に示すリセット手法にあっては、演算プロセッサが、例えば、内蔵ＲＡＭ（Random Access Memory）等のメモリに対してアクセスしている最中にリセット信号要求が行われると、演算プロセッサのリセット端子にリセット信号が出力されるようになっていたため、以下に述べるような問題点があった。
【０００９】
すなわち、メモリにアクセスしている状態では、メモリ内に記憶された情報が書き換え等により操作され、その内容が確定された状態ではないため、このような不安定な状態で演算プロセッサがリセットされると、メモリに記憶された内容が破壊されてしまうおそれがある。
【００１０】
これは、例えば、フロッピーディスクドライブ（ＦＤＤ：Floppy Disk Drive ）において、フロッピーディスク（ＦＤ：Floppy Disk ）のアクセス中にイジェクト操作を行わないようにするのと同様な理由であり、メモリ内容が破壊されたまま以降の処理が実行されると、不慮の障害発生の原因となる。
【００１１】
また、２．に示すリセット手法にあっては、何らかの原因でプログラム実行処理が暴走し、このステータス情報が出力されないときは、プログラム実行処理に異常が発生したものとして演算プロセッサのリセット端子に割込信号としてリセット信号が出力されるようになっていたため、以下に述べるような問題点があった。
【００１２】
すなわち、演算プロセッサの暴走等によってウエイト端子やバスホールド端子等までもロックしてしまうと、演算プロセッサが暴走していてもステータス情報が固定されたままの状態となるため、永久にリセットされないという問題点があった。
【００１３】
【目的】
本発明は、周辺回路の内容を保護しつつ、対象となる演算手段を確実にリセットすることを課題とする。
【００１４】
【課題を解決するための手段】
請求項１に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部（図１のＣＰＵ６）と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置（図１のリセット回路１、ＣＰＵ６、メモリ７）において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段（図１のフリップフロップ２）と、
前記ソフトウェア処理の区切り又はソフトウェア処理の終了を検出するソフトウェア処理検出手段（図１のフリップフロップ３）と、
前記演算用制御部による前記メモリのアクセス状態を前記リセット回路に対し出力するメモリアクセス出力手段（図１ＣＰＵ６の「アクセス状態」、[００４２]の「ＰＳ信号」）と、
前記リセット信号検出手段によってリセット信号の出力要求が検出された場合にリセット信号の出力要求が検出されてからの時間をカウントするリセットカウント手段（図２のカウンタ５ａ）と、
前記リセット信号検出手段によってリセット信号の出力要求が検出されたこと、前記ソフトウェア処理検出手段によってソフトウェア処理の区切り又はソフトウェア処理の終了が検出されたこと、及び、前記メモリアクセス出力手段によってメモリアクセスが行われている旨の出力が為されたことを条件に、前記リセットカウント手段による時間カウントに基づいて前記演算用制御部に対してリセット信号を出力し該演算用制御部を強制的に初期化する強制初期化手段（図１、図２の強制リセット回路５）と、
を備えることを特徴としている。
【００１５】
また、請求項２に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部（図１のＣＰＵ６）と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置（図１のリセット回路１、ＣＰＵ６、メモリ７）において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段（図１のフリップフロップ２）と、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないことを検出する演算処理検出手段（図１のフリップフロップ３及びアンドゲート４ａ）と、
前記リセット信号検出手段によってリセット信号の出力要求があった場合に新たにカウントを開始するカウンタ開始手段（図２のカウンタ５ａ）と、
リセット信号の出力要求があり且つ前記状態検出手段によって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始手段におけるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合には前記リセット信号生成手段により生成されたリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合に前記リセット信号を前記演算用制御部に出力するリセット信号制御手段（図１のアンドゲート４ａ、オアゲート４ｂ、強制リセット回路５）と、
を備えることを特徴としている。
【００１６】
また、請求項３に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部（図７のＣＰＵ６）と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置（図７のＣＰＵ６、メモリ７、リセット回路２０）において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出手段（図７のフリップフロップ２）と、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出手段（図７のフリップフロップ３、アンドゲート４ａ）と、
前記演算用制御部による前記メモリに対する書き込み状態の変化を変化検出信号として検出し、この変化検出信号の変化を検出する度に検出された該変化検出信号を出力する変化検出手段（図７の反転検出回路３０１）と、
前記変化検出手段から変化検出信号が出力される度に新たにカウントを開始するカウンタ開始手段（図７のカウンタ３０２）と、
前記リセット信号検出手段によってリセット信号の出力要求があり且つ前記状態検出手段によって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始手段におけるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合には前記リセット信号生成手段により生成されたリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合に前記リセット信号を前記演算用制御部に出力するリセット信号制御手段（図７のアンドゲート４ａ、オアゲート４ｂ、アンドゲート３０３）と、
を備えることを特徴としている。
【００１７】
また、請求項４に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部（図１のＣＰＵ６）と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記ソフトウェア処理の区切り又はソフトウェア処理の終了を検出するソフトウェア処理検出ステップと、
前記演算用制御部による前記メモリのアクセス状態を前記リセット回路に対し出力するメモリアクセス出力ステップと、
前記リセット信号検出ステップによってリセット信号の出力要求が検出された場合にリセット信号の出力要求が検出されてからの時間をカウントするリセットカウントステップと、
前記リセット信号検出ステップによってリセット信号の出力要求が検出されたこと、前記ソフトウェア処理検出ステップによってソフトウェア処理の区切り又はソフトウェア処理の終了が検出されたこと、及び、前記メモリアクセス出力ステップによってメモリアクセスが行われている旨の出力が為されたことを条件に、前記リセットカウントステップによる時間カウントに基づいて前記演算用制御部に対してリセット信号を出力し該演算用制御部を強制的に初期化する強制初期化ステップと、
を含むことを特徴としている。
【００１８】
また、請求項５に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出ステップと、
前記リセット信号検出ステップによってリセット信号の出力要求があった場合に新たにカウントを開始するカウンタ開始ステップと、
リセット信号の出力要求があり且つ前記状態検出ステップにおいて処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタ開始ステップのカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合にはリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合にリセット信号を前記演算用制御部に出力するリセット信号制御ステップと、
を含むことを特徴としている。
【００１９】
更に、請求項６に記載の発明は、プロセッサで構成され所定の算術・論理演算によりメモリへのメモリアクセスを行ってソフトウェア処理を実行する演算用制御部と、この演算用制御部に対してリセット信号を出力し、該演算用制御部の動作を初期化するリセット回路を備えたリセット制御装置におけるリセット制御方法において、
前記演算用制御部に対するリセット信号の出力要求がなされた際に当該出力要求を検出するリセット信号検出ステップと、
前記演算用制御部がデータバスを占有していないこと、及び、前記演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には前記演算用制御部による処理の区切りであると検出し、前記双方の条件を満足しない場合には前記演算用制御部による処理の区切りでないと検出する演算処理検出ステップと、
前記演算用制御部による前記メモリに対する書き込み状態の変化を変化検出信号として検出し、この変化検出信号の変化を検出する度に検出された該変化検出信号を出力する変化検出ステップと、
前記変化検出ステップによる変化検出信号の出力が為される度に新たにカウントを開始するカウンタステップと、
前記リセット信号検出ステップによってリセット信号の出力要求があり且つ前記状態検出ステップによって処理の区切りであることが検出されたこと、及び、リセット信号の出力要求があり且つ前記カウンタステップによるカウント値が予め定められたカウント値と一致したこと、の何れの条件も満足しない場合にはリセット信号を前記演算用制御部に出力せず、何れかの条件を満足する場合にリセット信号を前記演算用制御部に出力するリセット信号制御ステップと、
を含むことを特徴としている。
【００２４】
【作用】
請求項１及び請求項４に記載の発明によれば、リセット信号の出力要求とソフトウェア処理の区切り又はソフトウェア処理の終了とが検出され、更にメモリアクセスが行われている旨の出力が為された場合に、リセットカウント手段による時間カウントに基づいて演算用制御部を強制的に初期化するようにした。
これにより、メモリの記憶内容を破壊することなくメモリ等の周辺回路を保護した状態でリセットを行うことができる。また、ＣＰＵ等のプロセッサの暴走などのトラブルが発生した場合に強制的にリセットをかけることにより、確実にリセットを行うことができる。
【００２５】
請求項２及び請求項５に記載の発明によれば、演算用制御部がデータバスを占有していないこと、及び、演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には演算用制御部による処理の区切りであると検出するとともに、リセット信号に出力要求があり且つ処理の区切りでありことが検出された場合、或いは、リセット信号の出力要求があり且つカウンタ開始手段のカウント値が予め定められたカウント値に一致した場合にリセット信号を演算用制御部に出力するようにした。
これにより、メモリを含む周辺回路の内容を破壊することなく、対象となる演算用制御部を確実にリセットさせることができる。また、演算用制御部のトラブルにより処理の区切りが現れない状態でホールドされていても確実にリセットを行うことができる。
【００２６】
請求項３及び請求項６に記載の発明によれば、演算用制御部がデータバスを占有していないこと、及び、演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には演算用制御部による処理の区切りであると検出するとともに、リセット信号の出力要求があり且つ処理の区切りであることが検出された場合、或いは、リセット信号の出力要求があり且つカウンタ開始手段のカウンタ値が予め定められたカウント値に一致した場合にリセット信号を演算用制御部に出力するようにした。
これにより、メモリを含む周辺回路の内容を破壊することなく、対象となる演算用制御部を確実にリセットさせることができる。また、演算用制御部のトラブルにより処理の区切りが現れない状態でホールドされていても確実にリセットを行うことができる。
【００３４】
【実施例】
以下、図１〜図６を参照して実施例を説明する。
【００３５】
図１〜図６は本発明に係るリセット回路及びリセット方法の一実施例を示す図である。
【００３６】
まず、構成を説明する。
【００３７】
図１は、本実施例のリセット回路１の全体構成を示すブロック図である。
【００３８】
図１において、本実施例のリセット回路１は、リセット信号生成手段であるフリップフロップ２と、状態検出手段であるフリップフロップ３と、出力判定手段４を構成するアンドゲート４ａ及びオアゲート４ｂと、遅延手段である強制リセット回路５とから構成されている。
【００３９】
なお、図１中、６は、演算手段であるＣＰＵ２であり、７は、ＣＰＵ６とバスを介して接続された周辺回路としてのメモリである。
【００４０】
フリップフロップ２は、例えば、リセットボタンの押下等のように、外部からの操作により入力されるリセットパルスをラッチし、ラッチしたリセットパルスをアンドゲート４ａの入力端及び強制リセット回路５に入力するものであり、ＣＰＵ６に対して出力するリセット信号をリセット端子に入力することにより、ＣＰＵ６のリセットと同時にリセットされるものである。
【００４１】
フリップフロップ３は、ＣＰＵ６のソフトウェア実行処理中に出力される条件信号（以下、ソフト条件信号という）をラッチし、ラッチしたソフト条件信号をアンドゲート４ａの入力端に入力するものであり、具体的には、ソフトウェアの実行処理中はソフト条件信号は“Ｌ”となり、ソフト条件信号が変わる毎にその条件信号をラッチするものである。
【００４２】
出力判定手段４は、前述したように、アンドゲート４ａ及びオアゲート４ｂから構成され、アンドゲート４ａの入力端にはフリップフロップ２の出力端、フリップフロップ３の出力端、ＣＰＵ６のアクセス状態（Process State ）を示す信号（以下、ＰＳ信号という）の出力端がそれぞれ接続され、アンドゲート４ａの出力端はオアゲート４ｂの一方入力端に接続されている。
【００４３】
オアゲート４ｂの一方入力端には、アンドゲート４ａの出力端が接続され、他方入力端には、強制リセット回路５の出力端が接続されている。
【００４４】
すなわち、ＣＰＵ６からメモリ７に対するアクセス状態を示すＰＳ信号と、フリップフロップ３からのソフト条件信号とが共に“Ｈ”であり、かつ、フリップフロップ２よりリセットパルスが入力された場合、あるいは、強制リセット回路５からリセットパルスが出力された場合にオアゲート４ｂからＣＰＵ６に対してリセット信号が出力される。
【００４５】
図２は、強制リセット回路５の要部構成を示すブロック図である。
【００４６】
強制リセット回路５は、カウンタ回路をなすカウンタ５ａ、エクスクルーシブオアゲート５ｂ，５ｃ、アンドゲート５ｄ、インバータ１０、レジスタ１１〜１４から構成され、前述したように、所定条件に基づいてオアゲート４ｂを介してＣＰＵ６にリセット信号を出力するものであり、本実施例では、所定条件としてフリップフロップ２からリセットパルスが入力されてから所定時間（本実施例では、５秒に設定されているものとする）経過後にリセット信号が出力されるようになっている。
【００４７】
カウンタ５ａの入力端であるスタート端子にはフリップフロップ２の出力端が接続され、また、リセット端子には、インバータ１０を介してフリップフロップ２の出力端が接続されており、出力となるレジスタ１１，１２の出力端はそれぞれエクスクルーシブオアゲート５ｂ，５ｃの一方入力端に接続されている。
【００４８】
また、エクスクルーシブオアゲート５ｂ，５ｃの他方入力端には、データバスからの信号及びＣＰＵ６からのライト信号（以下、ＷＲ信号という）をラッチするレジスタ１３，１４の出力端がそれぞれ接続されており、エクスクルーシブオアゲート５ｂ，５ｃの各出力端はそれぞれアンドゲート５ｄの入力端に接続され、アンドゲート５ｄの出力端がオアゲート４ｂの入力端に接続されている。
【００４９】
すなわち、フリップフロップ２からリセットパルスが入力されると、カウンタ５ａのスタート端子にはリセットパルスが直接入力されるとともに、リセット端子にはインバータ１０を介してリセットパルスが入力され、これによって、カウンタ５ａによるカウントが開始される。
【００５０】
カウンタ５ａによってカウントが行われると、カウント値はカウンタ５ａ内のレジスタ１１，１２に格納され、レジスタ１１，１２に格納されたカウント値と、予めＣＰＵ６のＷＲ信号によりレジスタ１３，１４内に格納されたリセット条件となる設定値とがエクスクルーシブオアゲート５ｂ，５ｃにより比較され、レジスタ１１とレジスタ１３とに格納された値、レジスタ１２とレジスタ１４とに格納された値がそれぞれ一致していた場合、各エクスクルーシブオアゲート５ｂ，５ｃから“Ｈ”が出力される。
【００５１】
したがって、レジスタ５ａ内部のカウント値を格納するレジスタ１１，１２と、ＣＰＵ６のＷＲ信号により予め設定された設定値を格納するレジスタ１３，１４との値が一致した場合のみ、アンドゲート５ｄから強制リセットパルスが出力される。
【００５２】
図３は、ＣＰＵ６によるメモリ７のアクセス状態を示すＰＳ信号のタイミングチャートである。なお、図３中、▲１▼は命令のフェッチ、▲２▼は命令のデコード、▲３▼は命令の実行、▲４▼はメモリ７へのデータ転送（データ格納）を示す。
【００５３】
本実施例でのＣＰＵ６から出力されるＰＳ信号は、バスアクセスの区切りで出力されるものであり、例えば、ＣＰＵ６は、図３に示すように、ＣＰＵ６の動作が基準クロックに基づいて、例えば、１）命令のフェッチ、２）命令のデコード、３）命令の実行、４）データ格納という一連の処理を行うが、１）命令のフェッチ及び４）データ格納の処理時には、メモリ７に対して読み出し・書き込みのためにバスを使用してアクセスしている状態であるので、ＰＳ信号として"Ｌ"が出力され、また、２）命令のデコード及び３）命令の実行時には、ＣＰＵ６内部の処理であるので、メモリ７へのアクセスはなく、ＰＳ信号として"Ｈ"が出力される。
【００５４】
次に、本実施例の動作を説明する。
【００５５】
まず、図１に示すリセット回路１の各種動作を図４〜図６に基づいて説明する。
【００５６】
通常のリセット時には、アンドゲート４ａに入力されるソフト条件信号及びＰＳ信号が共に“Ｈ”の状態であり、外部操作によりフリップフロップ２にリセットパルスが入力されると、フリップフロップ２からアンドゲート４ａにリセットパルスが出力され、オアゲート４ｂを介してＣＰＵ６のリセット端子にリセット信号が出力される。
【００５７】
図４は、リセット回路１のプロセスステート付加リセット動作を説明するためのタイミングチャートである。
【００５８】
この場合、外部操作によりフリップフロップ２にリセットパルスが入力されると、フリップフロップ２によりリセットパルスがラッチされ、ラッチされたリセットパルスがフリップフロップ２からアンドゲート４ａと強制リセット回路５とに入力される。これによって、強制リセット回路５内部のカウンタ５ａによりカウントが開始される。
【００５９】
一方、アンドゲート４ａには、フリップフロップ３からソフト条件信号と、ＣＰＵ６からＰＳ信号とが入力されており、このとき、ソフト条件信号は"Ｈ"、つまり、ソフト処理の区切りとした場合、このときのＰＳ信号は"Ｌ"であるので、アンドゲート４ａからの出力は"Ｌ"となり、オアゲート４ｂからはリセット信号が出力されず、ＰＳ信号が"Ｈ"となるとオアゲート４ｂからリセット信号が出力される。このとき、強制リセット回路５のカウント値は、設定値である５秒に満たないので、強制リセット信号を出力する前にカウンタ５ａがリセットされる。
【００６０】
図５は、リセット回路１のソフト条件リセット動作を説明するためのタイミングチャートである。
【００６１】
この場合、外部操作によりフリップフロップ２にリセットパルスが入力されると、フリップフロップ２によりリセットパルスがラッチされ、ラッチされたリセットパルスがフリップフロップ２からアンドゲート４ａと強制リセット回路５とに入力される。これによって、前述の例と同様に、強制リセット回路５内部のカウンタ５ａによりカウントが開始される。
【００６２】
一方、アンドゲート４ａには、フリップフロップ３からのソフト条件信号が入力されており、このソフト条件信号は、ＣＰＵ６によってメモリアクセスに関連するソフトウェア処理が実行されているときにセットされ、例えば、ワープロ等の文書作成ソフトウェアにより文字置換処理が実行される前に、ソフト条件がセットされる。
【００６３】
これによって、フリップフロップ３によってラッチされたソフト条件が“Ｌ”となるため、アンドゲート４ａに入力されているＰＳ信号が“Ｈ”となってもオアゲート４ｂからリセット信号が出力されず、上記ソフトウェア処理が終了して、ソフト条件がリセット（すなわち、“Ｈ”）されたときに、ＰＳ信号が“Ｈ”となると、リセット信号が出力される。
【００６４】
図６は、リセット回路１の暴走時における強制リセット動作を説明するためのタイミングチャートである。
【００６５】
この場合、ＣＰＵ６がソフトウェア処理の実行中に暴走し、例えば、ＣＰＵ６がメモリ７をアクセスした状態でロックしてしまった状態を想定すると、ＣＰＵ６によりメモリ７がアクセスされた状態が維持されるため、ＰＳ信号は“Ｌ”のままとなる。したがって、外部操作によりフリップフロップ２にリセットパルスが入力されてフリップフロップ２からリセットパルスが出力されても、ＰＳ信号が“Ｌ”であるため、このままでは、アンドゲート４ａからオアゲート４ｂにリセットパルスが出力されることがない。
【００６６】
しかし、フリップフロップ２からのリセットパルス出力と同時に強制リセット回路５のカウンタ５ａによるカウントが開始されており、所定のカウント値（この場合、５秒）になると、オアゲート４ｂに対して強制リセットパルスが出力されるため、ＣＰＵ６が強制的にリセットされる。
【００６７】
すなわち、ソフト条件信号及びＰＳ信号から得られる情報に基づいて、ＣＰＵ６の処理の区切りでリセットをかけることにより、メモリ７の記憶内容等を破壊することなく、メモリ７等の周辺回路を保護した状態でリセットすることができる。
【００６８】
また、ＣＰＵ６が暴走し、ウエイト等によってＣＰＵ６がロックして、ＣＰＵ６の処理の区切りがいつまでも現れない場合であっても、強制的にリセットをかけることにより、確実にリセットすることができる。
【００６９】
したがって、周辺回路へのアクセスに対して悪影響をおよぼさず、ＣＰＵ６等の演算回路に確実にリセットをかけることができる。
【００７０】
以上説明したように、本実施例では、リセットパルスを、リセットパルスの出力要求と、ソフト条件信号及びＰＳ信号によるＣＰＵ６のデータバス占有状態の検出結果とに基づいて、リセットパルスの出力要求があり、かつ、ＣＰＵ６によるデータバスの占有を検出しない場合に、ＣＰＵ６に対してリセット信号を出力することにより、周辺回路の内容を破壊することなく、対象となる演算手段を確実にリセットすることができる。
【００７１】
なお、上記実施例は、▲２▼命令のデコード、▲３▼命令の実行時においてメモリ７へのアクセスがないため、ＰＳ信号として“Ｈ”が出力される構成となっていたが、これに限らず、例えば、▲１▼命令のフェッチ時には、メモリ７からの命令の読み出しだけが行われるため、▲１▼命令のフェッチ時にもＰＳ信号として“Ｈ”が出力されるように構成してもよい。
【００７２】
また、上記実施例では、演算用制御部としてＣＰＵ６を例に採り説明したが、リセット信号の出力対象となる演算用制御部としては、ＣＰＵ６に限定されるものではない。
【００７３】
同様にして、強制リセット回路５の構成についても上記構成に限定されるものではなく、例えば、図７に示すように、同一の機能を有する他の構成に置換してもよいことはいうまでもない。
【００７４】
図７は、他の実施例のリセット回路２０の全体構成を示すブロック図である。なお、図７において、図１と同一部分には同一符号を付す。
【００７５】
図７において、リセット回路２０内の強制リセット回路３０は、反転検出回路３０１、カウンタ３０２、アンドゲート３０３から構成されている。
【００７６】
反転検出回路３０１は、アクセス状態（ＰＳ信号）が変化すると、カウンタ３０２のリセット端子にリセット信号を出力するものであり、カウンタ３０２は、反転検出回路３０１から出力されるリセット信号によりリセットされ、入力端から入力されるクロックＣＫをカウントし、カウント値が所定値に達すると、アンドゲート３０３の一方入力端に“Ｈ”を出力するものである。
【００７７】
アンドゲート３０３は、前述のように、一方入力端をカウンタ３０２の出力端に接続するとともに、他方入力端をフリップフロップ２の出力端と接続し、出力端をオアゲート４ｂの他方入力端に接続しており、これによって、反転検出回路３０１とカウンタ３０２とによりＣＰＵ６の暴走検出回路を構成することになる。
【００７８】
以上の構成において、ＣＰＵ６から出力されるＰＳ信号は、通常動作中においては、“Ｈ”→“Ｌ”→“Ｈ”→・・・と交互に反転されて出力されるので、所定時間の間、このＰＳ信号が反転しない状態にある場合は、ＣＰＵ６が暴走状態にあることを示している。このため、反転検出回路３０１により、この反転信号を検出してＰＳ信号の状態が変化したときにカウンタ３０２がリセットされるようにすることで、通常、カウンタ３０２は入力されているクロックＣＫを常時カウントしており、所定値（本実施例では、例えば、５秒となる時間までのカウント値）になるとカウントアップ信号がアンドゲート３０３に出力される。
【００７９】
すなわち、通常時では、カウンタ３０２のカウントアップ前に反転検出回路３０１からリセット信号が入力されてリセットされるが、ＣＰＵ６の暴走時には、反転検出回路３０１からのリセット信号が入力されないので、カウントアップ信号がアンドゲート３０３に出力される。このとき、フリップフロップ２からのリセットパルスがアンドゲート３０３に入力されると、アンドゲート３０３からオアゲート４ｂに強制リセット信号が出力され、オアゲート４ｂからＣＰＵ６のリセット端子にリセット信号が出力される。
【００８０】
したがって、上記実施例と同様に、強制リセットが行われる。
【００８１】
【発明の効果】
請求項１及び請求項４に記載の発明によれば、リセット信号の出力要求とソフトウェア処理の区切り又はソフトウェア処理の終了とが検出され、更にメモリアクセスが行われている旨の出力が為された場合に、リセットカウント手段による時間カウントに基づいて演算用制御部を強制的に初期化するようにした。
これにより、メモリの記憶内容を破壊することなくメモリ等の周辺回路を保護した状態でリセットを行うことができる。また、ＣＰＵ等のプロセッサの暴走などのトラブルが発生した場合に強制的にリセットをかけることにより、確実にリセットを行うことができる。
【００８２】
また、請求項２及び請求項５に記載の発明によれば、演算用制御部がデータバスを占有していないこと、及び、演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には演算用制御部による処理の区切りであると検出するとともに、リセット信号に出力要求があり且つ処理の区切りでありことが検出された場合、或いは、リセット信号の出力要求があり且つカウンタ開始手段のカウント値が予め定められたカウント値に一致した場合にリセット信号を演算用制御部に出力するようにした。
これにより、メモリを含む周辺回路の内容を破壊することなく、対象となる演算用制御部を確実にリセットさせることができる。また、演算用制御部のトラブルにより処理の区切りが現れない状態でホールドされていても確実にリセットを行うことができる。
【００８３】
また、請求項３及び請求項６に記載の発明によれば、演算用制御部がデータバスを占有していないこと、及び、演算用制御部がメモリに対して書き込みを行っていないことの双方の条件を満足する場合には演算用制御部による処理の区切りであると検出するとともに、リセット信号の出力要求があり且つ処理の区切りであることが検出された場合、或いは、リセット信号の出力要求があり且つカウンタ開始手段のカウンタ値が予め定められたカウント値に一致した場合にリセット信号を演算用制御部に出力するようにした。
これにより、メモリを含む周辺回路の内容を破壊することなく、対象となる演算用制御部を確実にリセットさせることができる。また、演算用制御部のトラブルにより処理の区切りが現れない状態でホールドされていても確実にリセットを行うことができる。
【図面の簡単な説明】
【図１】本実施例のリセット回路の全体構成を示すブロック図である。
【図２】強制リセット回路の要部構成を示すブロック図である。
【図３】ＣＰＵによるメモリのアクセス状態を示すＰＳ信号のタイミングチャートである。
【図４】リセット回路のプロセスステート付加リセット動作を説明するためのタイミングチャートである。
【図５】リセット回路のソフト条件リセット動作を説明するためのタイミングチャートである。
【図６】リセット回路の暴走時における強制リセット動作を説明するためのタイミングチャートである。
【図７】他の実施例のリセット回路の全体構成を示すブロック図である。
【符号の説明】
１            リセット回路
２            フリップフロップ（リセット信号生成手段）
３            フリップフロップ（状態検出手段）
４            出力判定手段
４ａ            アンドゲート
４ｂ            オアゲート
５            強制リセット回路（遅延手段）
５ａ            カウンタ（カウンタ回路）
５ｂ            エクスクルーシブオアゲート
５ｃ            エクスクルーシブオアゲート
５ｄ            アンドゲート
６            ＣＰＵ（演算手段）
７            メモリ（周辺回路）
１０            インバータ
１１〜１４      レジスタ
２０            リセット回路
３０            強制リセット回路（遅延手段）
３０１          反転検出回路
３０２          カウンタ
３０３          アンドゲート
【図１】
0003684590.tif 000002
【図２】
0003684590.tif 000003
【図３】
0003684590.tif 000004
【図４】
0003684590.tif 000005
【図５】
0003684590.tif 000006
【図６】
0003684590.tif 000007
【図７】
0003684590.tif 000008