(57)【特許請求の範囲】
【請求項１】
（ａ）複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｅ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項２】
（ａ）複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｆ）前記マイクロプログラムメモリに前記主記憶装置からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項３】
複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路とを含む１以上のプロセッサと、
前記プロセッサの前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項４】
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｅ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
（ｆ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｇ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項５】
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｆ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
（ｇ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｈ）前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項６】
複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む１以上のプロセッサと、
前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項７】
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｅ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
（ｆ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｇ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項８】
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
（ｆ）前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
（ｇ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｈ）前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。
【請求項９】
複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む１以上のプロセッサと、
前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプログラムチェックシステムに関し、特に、マイクロプログラムの一部をチェックするマイクロプログラムチェックシステムに関する。
【０００２】
【従来の技術】
マイクロプログラム（ファームウェア）はプロセッサを動作させるために重要な役割をになっている。従来、マイクロプログラムの正当性はコントロールストアにパリティーなどを付加し、チェックすることにより保証されてきた。しかし、パリティーだけではコントロールストアに元々不正なマイクロプログラムがロードされている場合が検出できない。
【０００３】
この場合、マイクロプログラム自身が不正であると、何が起こっているのか原因を究明するのに時間がかかってしまい、システム自体の停止時間が長くなってしまう。システムの信頼性に大きな問題を引き起こす。
【０００４】
この問題を解決するため、たとえば、「特開平０６−１９５２２６号公報」記載の発明では、マイクロプログラムの内部に比較するためのアドレス情報を埋め込み、ロードしてきたマイクロプログラムに含まれている比較するためのアドレス情報と転送元メモリに対する対象アドレスとが一致するかチェックを行い、ロードされたマイクロプログラムそのものの正当性をチェックしている。
【０００５】
【発明が解決しようとする課題】
上述の「特開平０６−１９５２２６号公報」記載の発明の第１の問題点は、マイクロプログラムの容量が増加してしまうことである。
【０００６】
その理由は、マイクロプログラムにチェックのためのアドレス情報を埋め込む構成をとるからである。
【０００７】
第２の問題点は、チェックのためのハードウェア量が大であることである。
【０００８】
その理由は、チェックポイントメモリ内の比較するためのアドレス情報を同時に読み出す構成をとるからである。
【０００９】
第３の問題点は、制御が複雑なことである。
【００１０】
その理由は、転送先メモリにＮＯＰ命令を書き込む回路を設ける構成をとるからである。
【００１１】
本発明の目的は、マイクロプログラムの容量を増加させず、ハードウェア量の増大を防ぎ、制御が簡単なマイクロプログラムのチェックを実現することである。
【００１２】
【課題を解決するための手段】
本発明の第１のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｅ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００１３】
本発明の第２のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｆ）前記マイクロプログラムメモリに前記主記憶装置からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００１４】
本発明の第３のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路とを含む１以上のプロセッサと、前記プロセッサの前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【００１５】
本発明の第４のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｅ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
（ｆ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｇ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００１６】
本発明の第５のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｆ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
（ｇ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｈ）前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００１７】
本発明の第６のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む１以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【００１８】
本発明の第７のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｄ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
（ｅ）前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
（ｆ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｇ）前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００１９】
本発明の第８のマイクロプログラムチェックシステムは、
（ａ）複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
（ｂ）マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
（ｃ）前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
（ｄ）前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
（ｅ）マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
（ｆ）前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
（ｇ）前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
（ｈ）前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【００２０】
本発明の第９のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの１以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む１以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【００２１】
【発明の実施の形態】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２２】
まず、マイクロプログラムに関して説明する。マイクロプログラムは、各機械語命令（ロード、ストア、演算等）をそれぞれ複数ステップのマイクロ命令で実現するものであり、このマイクロプログラムは、アドレスが付与されたコントロールストアに格納される。
【００２３】
図１は、本発明の第１の実施の形態を示すブロック図である。
【００２４】
図２は、本発明の第１の実施の形態が適用される情報処理システムを示すブロック図である。
【００２５】
図３は、主記憶装置１２に格納される内容を示す説明図である。
【００２６】
図２を参照すると、本発明の第１の実施の形態が適用される情報処理システムは、診断プロセッサ１０と、１以上のプロセッサ１１と、主記憶装置１２と、診断プロセッサ１０、１以上のプロセッサ１１、および、主記憶装置１２を接続するシステムバス１００とから構成される。
【００２７】
また、図１を参照すると、プロセッサ１１は、マイクロプログラムのマイクロ命令の一部、または全部（たとえば、１つのマイクロ命令が３２ビットであれば、１６ビット、あるいは、３２ビット等）であるチェックデータを格納するチェックデータメモリ１３と、マイクロプログラムを格納するコントロールストアであるマイクロプログラムメモリ１４と、マイクロプログラムメモリ１４に対するマイクロアドレスを保持するマイクロアドレスレジスタ１５（電源投入により初期化され、マイクロプログラムメモリ１４の先頭アドレスが設定される）と、チェックデータメモリ１３の出力と主記憶装置１２からのマイクロプログラムとを比較する比較回路１７と、マイクロプロセッサ１１の内部の制御を行う制御回路１８（主記憶装置１２に出力するアドレスを生成する回路を含む）と、チェックデータメモリ１３の書き込みアドレスを格納するチェックデータアドレスレジスタ１９と、パリティーチェック回路２０とを含む。
【００２８】
また、チェックデータは、マイクロアドレスレジスタ１５内のマイクロアドレスの前述した一部（下位４ビット）が前述した特定の値（“００００”）であるマイクロ命令の一部、または全部である。上記かっこ内の値である場合、マイクロプログラムメモリ１４には、マイクロアドレスレジスタ１５内のマイクロアドレス全１０ビットが与えられ、チェックデータメモリ１３には、マイクロアドレスレジスタ１５内のマイクロアドレス上位６ビットが与えられる。
【００２９】
図３を参照すると、主記憶装置１２は、ハードウェアが使用するハードウェア領域と、ソフトウェアが使用するソフトウェア領域とに分けられ、ハードウェア領域には、チェックデータ格納エリアと、マイクロプログラム格納エリアとが含まれる。チェックデータ格納エリアには、マイクロプログラムの各機械語命令のマイクロプログラムの最初のステップのマイクロ命令の一部、または全部であるチェックデータが格納される。また、マイクロプログラム格納エリアには、マイクロプログラムが格納される。
【００３０】
以下、特に記述しないが、主記憶装置１２への指示、アドレスの出力等の制御は、制御回路１８により実施されるものとする。
【００３１】
次に、本発明の第１の実施の形態の動作について図面を参照して説明する。
【００３２】
図４は、本発明の第１の実施の形態の動作を示すフロチャートである。
【００３３】
図４を参照すると、まず、診断プロセッサ１０が、ハードディスク等（図示せず）から、それぞれ、主記憶装置１２のチェックデータ格納エリアにチェックデータを、マイクロプログラム格納エリアにマイクロプログラムを格納する（図４ステップＳ１）。
【００３４】
次に、診断プロセッサ１０は、各プロセッサ１１に対してマイクロプログラムロード開始指示を発行する（図４ステップＳ２）。マイクロプログラムロード開始指示を受け取ったプロセッサ１１は、主記憶装置１２のチェックデータ格納エリアのアドレスを伴うチェックデータ転送指示を発行する（図４ステップＳ３）。主記憶装置１２はチェックデータ転送指示、および、チェックデータ格納エリアのアドレスを受け取り、受け取ったアドレスから一定サイズのチェックデータをプロセッサ１１に対して転送する（図４ステップＳ４）。
【００３５】
プロセッサ１１は、転送されてきたチェックデータをチェックデータアドレスレジスタ１９を更新しつつチェックデータメモリ１３へ格納し（図４ステップＳ５）、チェックデータ格納エリアのアドレスが最終アドレスかどうか判断し（図４ステップＳ６）、最終アドレスでなければ（図４ステップＳ６／ＮＯ）、チェックデータ格納エリアのアドレスをチェックデータの転送される一定サイズ分加算し（チェックデータアドレスレジスタ１９を更新）、ステップＳ３に戻る（図４ステップＳ７）。ここでは、説明を簡単にするために１チェックデータが、一定サイズ分として転送されるものとする。
【００３６】
最終アドレスであれば（図４ステップＳ６／ＹＥＳ）、チェックデータを全てチェックデータメモリ１３へ格納したとし、主記憶装置１２のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する（図４ステップＳ８）。主記憶装置１２は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ１１に対して転送する（図４ステップＳ９）。
【００３７】
プロセッサ１１は、転送されてきたマイクロプログラムをマイクロプログラムメモリ１４のマイクロアドレスレジスタ１５内のマイクロアドレスにより指定される位置に格納する（図４ステップＳ１０）。ここでは、説明を簡単にするために１マイクロ命令が、一定サイズ分として転送されるものとする。
【００３８】
また、平行して、チェックデータメモリ１３のマイクロアドレスレジスタ１５内のマイクロアドレス（１０ビット）の一部（たとえば、上位６ビット）により指定される位置からチェックデータを読み出し、比較回路１７に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分（たとえば、１６ビット）を比較回路１７に入力する。また、同時に、検出回路１６にマイクロアドレスレジスタ１５からのマイクロアドレスの一部（下位４ビット）が入力され、特定の値（たとえば、“００００”）であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“１”を出力し、特定の値でなければ“０”を出力する（図４ステップＳ１１）。
【００３９】
次に、比較回路１７は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路１６からのアドレス検出信号が特定の値であること（“１”）を示していれば（図４ステップＳ１２／ＹＥＳ）、マイクロプログラム不正信号を出力する（図４ステップＳ１３）。
【００４０】
比較回路１７は、比較の結果、一致しているか、あるいは、検出回路１６からのアドレス検出信号が特定の値でないことを示していれば（図４ステップＳ１２／ＮＯ）、マイクロプログラム格納エリアに対するアドレスがマイクロプログラム格納エリアの最終アドレスかどうか判断し（図４ステップＳ１４）、最終アドレスでなければ（図４ステップＳ１４／ＮＯ）、次のマイクロプログラム格納エリアに対するマイクロプログラムロードアドレスを更新し、ステップＳ８の処理に戻る（図４ステップＳ１５）。最終アドレスであれば（図４ステップＳ１４／ＹＥＳ）、マイクロプログラムメモリ１４へのマイクロプログラムの格納を終了する（図４ステップＳ１６）。
【００４１】
このようにして、マイクロプログラムの一部の正当性をチェックすることができる。
【００４２】
次に、プロセッサ１１がマイクロプログラムによる処理を実施している場合の動作について説明する。
【００４３】
図５は、本発明の第１の実施の形態の動作を示すフロチャートである。
【００４４】
プロセッサ１１では、通常の処理において、常にマイクロプログラムが動作している。マイクロプログラム（マイクロ命令）はマイクロプログラムメモリ１４から読み出されて実行される。マイクロプログラムメモリ１４の各アドレスごとに、エラー検出用の、たとえば、パリティービットが付加されており、マイクロ命令と同時にパリティービットが読み出され、パリティーチェック回路２０でチェックされる。
【００４５】
図５を参照すると、チェックした結果、パリティーエラーが検出されると（図５ステップＴ１／ＹＥＳ）、通常の処理を中断し（図５ステップＴ２）、マイクロアドレスレジスタ１５内のエラーが検出されたマイクロ命令のマイクロアドレスに対応する主記憶装置１２のマイクロプログラム格納エリアのマイクロプログラムロードアドレスを生成し（図５ステップＴ３）、主記憶装置１２のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する（図５ステップＴ４）。主記憶装置１２は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ１１に対して転送する（図５ステップＴ５）。
【００４６】
プロセッサ１１は、転送されてきたマイクロプログラムをマイクロプログラムメモリ１４のマイクロアドレスレジスタ１５内のマイクロアドレス（エラーの検出された）により指定される位置に格納する（図５ステップＴ６）。
【００４７】
また、平行して、チェックデータメモリ１３のマイクロアドレスレジスタ１５内のマイクロアドレス（１０ビット）の一部（たとえば、上位６ビット）により指定される位置からチェックデータを読み出し、比較回路１７に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分（たとえば、１６ビット）を比較回路１７に入力する。また、同時に、検出回路１６にマイクロアドレスレジスタ１５からのマイクロアドレスの一部が入力され、特定の値であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“１”を、特定の値でなければ、“０”を出力する（図５ステップＴ７）。
【００４８】
次に、比較回路１７は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路１６からのアドレス検出信号が特定の値であること（“１”）を示していれば（図５ステップＴ８／ＹＥＳ）、マイクロプログラム不正信号を出力する（図５ステップＴ９）。
【００４９】
比較回路１７は、比較の結果、一致しているか、あるいは、検出回路１６からのアドレス検出信号が特定の値でないことを示していれば（図５ステップＴ８／ＮＯ）、中断していた処理を再開する（図５ステップＴ１０）。
【００５０】
以上において、マイクロプログラム不正信号が検出されると、割り込みが発生し、エラー処理が実施される。
【００５１】
また、マイクロプログラム不正信号が発生する場合には、マイクロプログラムメモリ１４に不正の原因となるマイクロ命令を書き込むのを抑止する回路を設けることも可能である。
【００５２】
また、チェックデータアドレスレジスタ１９を設けずに、チェックデータをチェックデータメモリ１３に格納する場合に、マイクロアドレスレジスタ１５を代用する構成も可能である。
【００５３】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００５４】
本発明の第２の実施の形態は、マイクロプログラムメモリ１４を、使用される頻度の高いマイクロ命令群を格納する第１のマイクロプログラムメモリ１４と、使用される頻度の低いマイクロ命令群を格納する第２のマイクロプログラムメモリ１４とに分割し、第２のマイクロプログラムメモリ１４をキャッシュで実現する構成をとるものである。
【００５５】
ここで、通常の処理において、第２のマイクロプログラムメモリ１４に、実行しようとするマイクロ命令が存在するかどうかを検出する回路を設け、存在しなかった場合に、パリティーチェック回路２０でのパリティーエラーが検出された場合（図５ステップＴ１）と同様の処理（図５ステップＴ２以降）を実行する。
【００５６】
これにより、信頼性が向上する。
【００５７】
【発明の効果】
本発明の第１の効果は、主記憶装置内のマイクロプログラムが何らかの原因で、不正に書き換えられた場合に、検出できることである。
【００５８】
その理由は、マイクロプログラムのマイクロ命令の一部、または全部であるチェックデータをプロセッサ内に保持し、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【００５９】
第２の効果は、チェックのためにプロセッサの性能が低下しないことである。
【００６０】
その理由は、マイクロ命令をマイクロプログラムメモリに格納する時に、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【００６１】
第３の効果は、チェックのためのハードウェア量の増加が少ないことである。
【００６２】
その理由は、マイクロアドレスの一部が特定の値かどうかを検出する検出回路を用い、比較のための回路を少量にする構成をとるからである。
【００６３】
第４の効果は、制御が簡単なことである。
【００６４】
その理由は、従来技術で用いるＮＯＰ命令を書き込む回路を設けないからである。
【００６５】
第５の効果は、マイクロプログラムの容量が増加しないことである。
【００６６】
その理由は、チェックデータをマイクロ命令とは別に用意するからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態を示すブロック図である。
【図２】本発明の第１の実施の形態が適用される情報処理システムを示すブロック図である。
【図３】主記憶装置に格納される内容を示す説明図である。
【図４】本発明の第１の実施の形態の動作を示すフロチャートである。
【図５】本発明の第１の実施の形態の動作を示すフロチャートである。
【符号の説明】
１０    診断プロセッサ
１１    プロセッサ
１２    主記憶装置
１３    チェックデータメモリ
１４    マイクロプログラムメモリ
１５    マイクロアドレスレジスタ
１６    検出回路
１７    比較回路
１８    制御回路
１９    チェックデータアドレスレジスタ
１００    システムバス
【図１】
0003616588.tif 000002
【図２】
0003616588.tif 000003
【図３】
0003616588.tif 000004
【図４】
0003616588.tif 000005
【図５】
0003616588.tif 000006