JP3616588B2 - マイクロプログラムチェックシステム - Google Patents
マイクロプログラムチェックシステム Download PDFInfo
- Publication number
- JP3616588B2 JP3616588B2 JP2001226101A JP2001226101A JP3616588B2 JP 3616588 B2 JP3616588 B2 JP 3616588B2 JP 2001226101 A JP2001226101 A JP 2001226101A JP 2001226101 A JP2001226101 A JP 2001226101A JP 3616588 B2 JP3616588 B2 JP 3616588B2
- Authority
- JP
- Japan
- Prior art keywords
- microprogram
- memory
- check data
- address
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、マイクロプログラムチェックシステムに関し、特に、マイクロプログラムの一部をチェックするマイクロプログラムチェックシステムに関する。
【0002】
【従来の技術】
マイクロプログラム(ファームウェア)はプロセッサを動作させるために重要な役割をになっている。従来、マイクロプログラムの正当性はコントロールストアにパリティーなどを付加し、チェックすることにより保証されてきた。しかし、パリティーだけではコントロールストアに元々不正なマイクロプログラムがロードされている場合が検出できない。
【0003】
この場合、マイクロプログラム自身が不正であると、何が起こっているのか原因を究明するのに時間がかかってしまい、システム自体の停止時間が長くなってしまう。システムの信頼性に大きな問題を引き起こす。
【0004】
この問題を解決するため、たとえば、「特開平06−195226号公報」記載の発明では、マイクロプログラムの内部に比較するためのアドレス情報を埋め込み、ロードしてきたマイクロプログラムに含まれている比較するためのアドレス情報と転送元メモリに対する対象アドレスとが一致するかチェックを行い、ロードされたマイクロプログラムそのものの正当性をチェックしている。
【0005】
【発明が解決しようとする課題】
上述の「特開平06−195226号公報」記載の発明の第1の問題点は、マイクロプログラムの容量が増加してしまうことである。
【0006】
その理由は、マイクロプログラムにチェックのためのアドレス情報を埋め込む構成をとるからである。
【0007】
第2の問題点は、チェックのためのハードウェア量が大であることである。
【0008】
その理由は、チェックポイントメモリ内の比較するためのアドレス情報を同時に読み出す構成をとるからである。
【0009】
第3の問題点は、制御が複雑なことである。
【0010】
その理由は、転送先メモリにNOP命令を書き込む回路を設ける構成をとるからである。
【0011】
本発明の目的は、マイクロプログラムの容量を増加させず、ハードウェア量の増大を防ぎ、制御が簡単なマイクロプログラムのチェックを実現することである。
【0012】
【課題を解決するための手段】
本発明の第1のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(e)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0013】
本発明の第2のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(f)前記マイクロプログラムメモリに前記主記憶装置からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0014】
本発明の第3のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路とを含む1以上のプロセッサと、前記プロセッサの前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0015】
本発明の第4のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0016】
本発明の第5のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(f)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0017】
本発明の第6のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0018】
本発明の第7のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0019】
本発明の第8のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
(f)前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0020】
本発明の第9のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0021】
【発明の実施の形態】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0022】
まず、マイクロプログラムに関して説明する。マイクロプログラムは、各機械語命令(ロード、ストア、演算等)をそれぞれ複数ステップのマイクロ命令で実現するものであり、このマイクロプログラムは、アドレスが付与されたコントロールストアに格納される。
【0023】
図1は、本発明の第1の実施の形態を示すブロック図である。
【0024】
図2は、本発明の第1の実施の形態が適用される情報処理システムを示すブロック図である。
【0025】
図3は、主記憶装置12に格納される内容を示す説明図である。
【0026】
図2を参照すると、本発明の第1の実施の形態が適用される情報処理システムは、診断プロセッサ10と、1以上のプロセッサ11と、主記憶装置12と、診断プロセッサ10、1以上のプロセッサ11、および、主記憶装置12を接続するシステムバス100とから構成される。
【0027】
また、図1を参照すると、プロセッサ11は、マイクロプログラムのマイクロ命令の一部、または全部(たとえば、1つのマイクロ命令が32ビットであれば、16ビット、あるいは、32ビット等)であるチェックデータを格納するチェックデータメモリ13と、マイクロプログラムを格納するコントロールストアであるマイクロプログラムメモリ14と、マイクロプログラムメモリ14に対するマイクロアドレスを保持するマイクロアドレスレジスタ15(電源投入により初期化され、マイクロプログラムメモリ14の先頭アドレスが設定される)と、チェックデータメモリ13の出力と主記憶装置12からのマイクロプログラムとを比較する比較回路17と、マイクロプロセッサ11の内部の制御を行う制御回路18(主記憶装置12に出力するアドレスを生成する回路を含む)と、チェックデータメモリ13の書き込みアドレスを格納するチェックデータアドレスレジスタ19と、パリティーチェック回路20とを含む。
【0028】
また、チェックデータは、マイクロアドレスレジスタ15内のマイクロアドレスの前述した一部(下位4ビット)が前述した特定の値(“0000”)であるマイクロ命令の一部、または全部である。上記かっこ内の値である場合、マイクロプログラムメモリ14には、マイクロアドレスレジスタ15内のマイクロアドレス全10ビットが与えられ、チェックデータメモリ13には、マイクロアドレスレジスタ15内のマイクロアドレス上位6ビットが与えられる。
【0029】
図3を参照すると、主記憶装置12は、ハードウェアが使用するハードウェア領域と、ソフトウェアが使用するソフトウェア領域とに分けられ、ハードウェア領域には、チェックデータ格納エリアと、マイクロプログラム格納エリアとが含まれる。チェックデータ格納エリアには、マイクロプログラムの各機械語命令のマイクロプログラムの最初のステップのマイクロ命令の一部、または全部であるチェックデータが格納される。また、マイクロプログラム格納エリアには、マイクロプログラムが格納される。
【0030】
以下、特に記述しないが、主記憶装置12への指示、アドレスの出力等の制御は、制御回路18により実施されるものとする。
【0031】
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。
【0032】
図4は、本発明の第1の実施の形態の動作を示すフロチャートである。
【0033】
図4を参照すると、まず、診断プロセッサ10が、ハードディスク等(図示せず)から、それぞれ、主記憶装置12のチェックデータ格納エリアにチェックデータを、マイクロプログラム格納エリアにマイクロプログラムを格納する(図4ステップS1)。
【0034】
次に、診断プロセッサ10は、各プロセッサ11に対してマイクロプログラムロード開始指示を発行する(図4ステップS2)。マイクロプログラムロード開始指示を受け取ったプロセッサ11は、主記憶装置12のチェックデータ格納エリアのアドレスを伴うチェックデータ転送指示を発行する(図4ステップS3)。主記憶装置12はチェックデータ転送指示、および、チェックデータ格納エリアのアドレスを受け取り、受け取ったアドレスから一定サイズのチェックデータをプロセッサ11に対して転送する(図4ステップS4)。
【0035】
プロセッサ11は、転送されてきたチェックデータをチェックデータアドレスレジスタ19を更新しつつチェックデータメモリ13へ格納し(図4ステップS5)、チェックデータ格納エリアのアドレスが最終アドレスかどうか判断し(図4ステップS6)、最終アドレスでなければ(図4ステップS6/NO)、チェックデータ格納エリアのアドレスをチェックデータの転送される一定サイズ分加算し(チェックデータアドレスレジスタ19を更新)、ステップS3に戻る(図4ステップS7)。ここでは、説明を簡単にするために1チェックデータが、一定サイズ分として転送されるものとする。
【0036】
最終アドレスであれば(図4ステップS6/YES)、チェックデータを全てチェックデータメモリ13へ格納したとし、主記憶装置12のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する(図4ステップS8)。主記憶装置12は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ11に対して転送する(図4ステップS9)。
【0037】
プロセッサ11は、転送されてきたマイクロプログラムをマイクロプログラムメモリ14のマイクロアドレスレジスタ15内のマイクロアドレスにより指定される位置に格納する(図4ステップS10)。ここでは、説明を簡単にするために1マイクロ命令が、一定サイズ分として転送されるものとする。
【0038】
また、平行して、チェックデータメモリ13のマイクロアドレスレジスタ15内のマイクロアドレス(10ビット)の一部(たとえば、上位6ビット)により指定される位置からチェックデータを読み出し、比較回路17に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分(たとえば、16ビット)を比較回路17に入力する。また、同時に、検出回路16にマイクロアドレスレジスタ15からのマイクロアドレスの一部(下位4ビット)が入力され、特定の値(たとえば、“0000”)であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“1”を出力し、特定の値でなければ“0”を出力する(図4ステップS11)。
【0039】
次に、比較回路17は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路16からのアドレス検出信号が特定の値であること(“1”)を示していれば(図4ステップS12/YES)、マイクロプログラム不正信号を出力する(図4ステップS13)。
【0040】
比較回路17は、比較の結果、一致しているか、あるいは、検出回路16からのアドレス検出信号が特定の値でないことを示していれば(図4ステップS12/NO)、マイクロプログラム格納エリアに対するアドレスがマイクロプログラム格納エリアの最終アドレスかどうか判断し(図4ステップS14)、最終アドレスでなければ(図4ステップS14/NO)、次のマイクロプログラム格納エリアに対するマイクロプログラムロードアドレスを更新し、ステップS8の処理に戻る(図4ステップS15)。最終アドレスであれば(図4ステップS14/YES)、マイクロプログラムメモリ14へのマイクロプログラムの格納を終了する(図4ステップS16)。
【0041】
このようにして、マイクロプログラムの一部の正当性をチェックすることができる。
【0042】
次に、プロセッサ11がマイクロプログラムによる処理を実施している場合の動作について説明する。
【0043】
図5は、本発明の第1の実施の形態の動作を示すフロチャートである。
【0044】
プロセッサ11では、通常の処理において、常にマイクロプログラムが動作している。マイクロプログラム(マイクロ命令)はマイクロプログラムメモリ14から読み出されて実行される。マイクロプログラムメモリ14の各アドレスごとに、エラー検出用の、たとえば、パリティービットが付加されており、マイクロ命令と同時にパリティービットが読み出され、パリティーチェック回路20でチェックされる。
【0045】
図5を参照すると、チェックした結果、パリティーエラーが検出されると(図5ステップT1/YES)、通常の処理を中断し(図5ステップT2)、マイクロアドレスレジスタ15内のエラーが検出されたマイクロ命令のマイクロアドレスに対応する主記憶装置12のマイクロプログラム格納エリアのマイクロプログラムロードアドレスを生成し(図5ステップT3)、主記憶装置12のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する(図5ステップT4)。主記憶装置12は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ11に対して転送する(図5ステップT5)。
【0046】
プロセッサ11は、転送されてきたマイクロプログラムをマイクロプログラムメモリ14のマイクロアドレスレジスタ15内のマイクロアドレス(エラーの検出された)により指定される位置に格納する(図5ステップT6)。
【0047】
また、平行して、チェックデータメモリ13のマイクロアドレスレジスタ15内のマイクロアドレス(10ビット)の一部(たとえば、上位6ビット)により指定される位置からチェックデータを読み出し、比較回路17に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分(たとえば、16ビット)を比較回路17に入力する。また、同時に、検出回路16にマイクロアドレスレジスタ15からのマイクロアドレスの一部が入力され、特定の値であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“1”を、特定の値でなければ、“0”を出力する(図5ステップT7)。
【0048】
次に、比較回路17は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路16からのアドレス検出信号が特定の値であること(“1”)を示していれば(図5ステップT8/YES)、マイクロプログラム不正信号を出力する(図5ステップT9)。
【0049】
比較回路17は、比較の結果、一致しているか、あるいは、検出回路16からのアドレス検出信号が特定の値でないことを示していれば(図5ステップT8/NO)、中断していた処理を再開する(図5ステップT10)。
【0050】
以上において、マイクロプログラム不正信号が検出されると、割り込みが発生し、エラー処理が実施される。
【0051】
また、マイクロプログラム不正信号が発生する場合には、マイクロプログラムメモリ14に不正の原因となるマイクロ命令を書き込むのを抑止する回路を設けることも可能である。
【0052】
また、チェックデータアドレスレジスタ19を設けずに、チェックデータをチェックデータメモリ13に格納する場合に、マイクロアドレスレジスタ15を代用する構成も可能である。
【0053】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
【0054】
本発明の第2の実施の形態は、マイクロプログラムメモリ14を、使用される頻度の高いマイクロ命令群を格納する第1のマイクロプログラムメモリ14と、使用される頻度の低いマイクロ命令群を格納する第2のマイクロプログラムメモリ14とに分割し、第2のマイクロプログラムメモリ14をキャッシュで実現する構成をとるものである。
【0055】
ここで、通常の処理において、第2のマイクロプログラムメモリ14に、実行しようとするマイクロ命令が存在するかどうかを検出する回路を設け、存在しなかった場合に、パリティーチェック回路20でのパリティーエラーが検出された場合(図5ステップT1)と同様の処理(図5ステップT2以降)を実行する。
【0056】
これにより、信頼性が向上する。
【0057】
【発明の効果】
本発明の第1の効果は、主記憶装置内のマイクロプログラムが何らかの原因で、不正に書き換えられた場合に、検出できることである。
【0058】
その理由は、マイクロプログラムのマイクロ命令の一部、または全部であるチェックデータをプロセッサ内に保持し、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【0059】
第2の効果は、チェックのためにプロセッサの性能が低下しないことである。
【0060】
その理由は、マイクロ命令をマイクロプログラムメモリに格納する時に、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【0061】
第3の効果は、チェックのためのハードウェア量の増加が少ないことである。
【0062】
その理由は、マイクロアドレスの一部が特定の値かどうかを検出する検出回路を用い、比較のための回路を少量にする構成をとるからである。
【0063】
第4の効果は、制御が簡単なことである。
【0064】
その理由は、従来技術で用いるNOP命令を書き込む回路を設けないからである。
【0065】
第5の効果は、マイクロプログラムの容量が増加しないことである。
【0066】
その理由は、チェックデータをマイクロ命令とは別に用意するからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すブロック図である。
【図2】本発明の第1の実施の形態が適用される情報処理システムを示すブロック図である。
【図3】主記憶装置に格納される内容を示す説明図である。
【図4】本発明の第1の実施の形態の動作を示すフロチャートである。
【図5】本発明の第1の実施の形態の動作を示すフロチャートである。
【符号の説明】
10 診断プロセッサ
11 プロセッサ
12 主記憶装置
13 チェックデータメモリ
14 マイクロプログラムメモリ
15 マイクロアドレスレジスタ
16 検出回路
17 比較回路
18 制御回路
19 チェックデータアドレスレジスタ
100 システムバス
【発明の属する技術分野】
本発明は、マイクロプログラムチェックシステムに関し、特に、マイクロプログラムの一部をチェックするマイクロプログラムチェックシステムに関する。
【0002】
【従来の技術】
マイクロプログラム(ファームウェア)はプロセッサを動作させるために重要な役割をになっている。従来、マイクロプログラムの正当性はコントロールストアにパリティーなどを付加し、チェックすることにより保証されてきた。しかし、パリティーだけではコントロールストアに元々不正なマイクロプログラムがロードされている場合が検出できない。
【0003】
この場合、マイクロプログラム自身が不正であると、何が起こっているのか原因を究明するのに時間がかかってしまい、システム自体の停止時間が長くなってしまう。システムの信頼性に大きな問題を引き起こす。
【0004】
この問題を解決するため、たとえば、「特開平06−195226号公報」記載の発明では、マイクロプログラムの内部に比較するためのアドレス情報を埋め込み、ロードしてきたマイクロプログラムに含まれている比較するためのアドレス情報と転送元メモリに対する対象アドレスとが一致するかチェックを行い、ロードされたマイクロプログラムそのものの正当性をチェックしている。
【0005】
【発明が解決しようとする課題】
上述の「特開平06−195226号公報」記載の発明の第1の問題点は、マイクロプログラムの容量が増加してしまうことである。
【0006】
その理由は、マイクロプログラムにチェックのためのアドレス情報を埋め込む構成をとるからである。
【0007】
第2の問題点は、チェックのためのハードウェア量が大であることである。
【0008】
その理由は、チェックポイントメモリ内の比較するためのアドレス情報を同時に読み出す構成をとるからである。
【0009】
第3の問題点は、制御が複雑なことである。
【0010】
その理由は、転送先メモリにNOP命令を書き込む回路を設ける構成をとるからである。
【0011】
本発明の目的は、マイクロプログラムの容量を増加させず、ハードウェア量の増大を防ぎ、制御が簡単なマイクロプログラムのチェックを実現することである。
【0012】
【課題を解決するための手段】
本発明の第1のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(e)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0013】
本発明の第2のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(f)前記マイクロプログラムメモリに前記主記憶装置からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0014】
本発明の第3のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路とを含む1以上のプロセッサと、前記プロセッサの前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0015】
本発明の第4のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0016】
本発明の第5のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(f)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0017】
本発明の第6のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0018】
本発明の第7のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0019】
本発明の第8のマイクロプログラムチェックシステムは、
(a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
(f)前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とする。
【0020】
本発明の第9のマイクロプログラムチェックシステムは、複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、を有することを特徴とする。
【0021】
【発明の実施の形態】
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
【0022】
まず、マイクロプログラムに関して説明する。マイクロプログラムは、各機械語命令(ロード、ストア、演算等)をそれぞれ複数ステップのマイクロ命令で実現するものであり、このマイクロプログラムは、アドレスが付与されたコントロールストアに格納される。
【0023】
図1は、本発明の第1の実施の形態を示すブロック図である。
【0024】
図2は、本発明の第1の実施の形態が適用される情報処理システムを示すブロック図である。
【0025】
図3は、主記憶装置12に格納される内容を示す説明図である。
【0026】
図2を参照すると、本発明の第1の実施の形態が適用される情報処理システムは、診断プロセッサ10と、1以上のプロセッサ11と、主記憶装置12と、診断プロセッサ10、1以上のプロセッサ11、および、主記憶装置12を接続するシステムバス100とから構成される。
【0027】
また、図1を参照すると、プロセッサ11は、マイクロプログラムのマイクロ命令の一部、または全部(たとえば、1つのマイクロ命令が32ビットであれば、16ビット、あるいは、32ビット等)であるチェックデータを格納するチェックデータメモリ13と、マイクロプログラムを格納するコントロールストアであるマイクロプログラムメモリ14と、マイクロプログラムメモリ14に対するマイクロアドレスを保持するマイクロアドレスレジスタ15(電源投入により初期化され、マイクロプログラムメモリ14の先頭アドレスが設定される)と、チェックデータメモリ13の出力と主記憶装置12からのマイクロプログラムとを比較する比較回路17と、マイクロプロセッサ11の内部の制御を行う制御回路18(主記憶装置12に出力するアドレスを生成する回路を含む)と、チェックデータメモリ13の書き込みアドレスを格納するチェックデータアドレスレジスタ19と、パリティーチェック回路20とを含む。
【0028】
また、チェックデータは、マイクロアドレスレジスタ15内のマイクロアドレスの前述した一部(下位4ビット)が前述した特定の値(“0000”)であるマイクロ命令の一部、または全部である。上記かっこ内の値である場合、マイクロプログラムメモリ14には、マイクロアドレスレジスタ15内のマイクロアドレス全10ビットが与えられ、チェックデータメモリ13には、マイクロアドレスレジスタ15内のマイクロアドレス上位6ビットが与えられる。
【0029】
図3を参照すると、主記憶装置12は、ハードウェアが使用するハードウェア領域と、ソフトウェアが使用するソフトウェア領域とに分けられ、ハードウェア領域には、チェックデータ格納エリアと、マイクロプログラム格納エリアとが含まれる。チェックデータ格納エリアには、マイクロプログラムの各機械語命令のマイクロプログラムの最初のステップのマイクロ命令の一部、または全部であるチェックデータが格納される。また、マイクロプログラム格納エリアには、マイクロプログラムが格納される。
【0030】
以下、特に記述しないが、主記憶装置12への指示、アドレスの出力等の制御は、制御回路18により実施されるものとする。
【0031】
次に、本発明の第1の実施の形態の動作について図面を参照して説明する。
【0032】
図4は、本発明の第1の実施の形態の動作を示すフロチャートである。
【0033】
図4を参照すると、まず、診断プロセッサ10が、ハードディスク等(図示せず)から、それぞれ、主記憶装置12のチェックデータ格納エリアにチェックデータを、マイクロプログラム格納エリアにマイクロプログラムを格納する(図4ステップS1)。
【0034】
次に、診断プロセッサ10は、各プロセッサ11に対してマイクロプログラムロード開始指示を発行する(図4ステップS2)。マイクロプログラムロード開始指示を受け取ったプロセッサ11は、主記憶装置12のチェックデータ格納エリアのアドレスを伴うチェックデータ転送指示を発行する(図4ステップS3)。主記憶装置12はチェックデータ転送指示、および、チェックデータ格納エリアのアドレスを受け取り、受け取ったアドレスから一定サイズのチェックデータをプロセッサ11に対して転送する(図4ステップS4)。
【0035】
プロセッサ11は、転送されてきたチェックデータをチェックデータアドレスレジスタ19を更新しつつチェックデータメモリ13へ格納し(図4ステップS5)、チェックデータ格納エリアのアドレスが最終アドレスかどうか判断し(図4ステップS6)、最終アドレスでなければ(図4ステップS6/NO)、チェックデータ格納エリアのアドレスをチェックデータの転送される一定サイズ分加算し(チェックデータアドレスレジスタ19を更新)、ステップS3に戻る(図4ステップS7)。ここでは、説明を簡単にするために1チェックデータが、一定サイズ分として転送されるものとする。
【0036】
最終アドレスであれば(図4ステップS6/YES)、チェックデータを全てチェックデータメモリ13へ格納したとし、主記憶装置12のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する(図4ステップS8)。主記憶装置12は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ11に対して転送する(図4ステップS9)。
【0037】
プロセッサ11は、転送されてきたマイクロプログラムをマイクロプログラムメモリ14のマイクロアドレスレジスタ15内のマイクロアドレスにより指定される位置に格納する(図4ステップS10)。ここでは、説明を簡単にするために1マイクロ命令が、一定サイズ分として転送されるものとする。
【0038】
また、平行して、チェックデータメモリ13のマイクロアドレスレジスタ15内のマイクロアドレス(10ビット)の一部(たとえば、上位6ビット)により指定される位置からチェックデータを読み出し、比較回路17に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分(たとえば、16ビット)を比較回路17に入力する。また、同時に、検出回路16にマイクロアドレスレジスタ15からのマイクロアドレスの一部(下位4ビット)が入力され、特定の値(たとえば、“0000”)であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“1”を出力し、特定の値でなければ“0”を出力する(図4ステップS11)。
【0039】
次に、比較回路17は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路16からのアドレス検出信号が特定の値であること(“1”)を示していれば(図4ステップS12/YES)、マイクロプログラム不正信号を出力する(図4ステップS13)。
【0040】
比較回路17は、比較の結果、一致しているか、あるいは、検出回路16からのアドレス検出信号が特定の値でないことを示していれば(図4ステップS12/NO)、マイクロプログラム格納エリアに対するアドレスがマイクロプログラム格納エリアの最終アドレスかどうか判断し(図4ステップS14)、最終アドレスでなければ(図4ステップS14/NO)、次のマイクロプログラム格納エリアに対するマイクロプログラムロードアドレスを更新し、ステップS8の処理に戻る(図4ステップS15)。最終アドレスであれば(図4ステップS14/YES)、マイクロプログラムメモリ14へのマイクロプログラムの格納を終了する(図4ステップS16)。
【0041】
このようにして、マイクロプログラムの一部の正当性をチェックすることができる。
【0042】
次に、プロセッサ11がマイクロプログラムによる処理を実施している場合の動作について説明する。
【0043】
図5は、本発明の第1の実施の形態の動作を示すフロチャートである。
【0044】
プロセッサ11では、通常の処理において、常にマイクロプログラムが動作している。マイクロプログラム(マイクロ命令)はマイクロプログラムメモリ14から読み出されて実行される。マイクロプログラムメモリ14の各アドレスごとに、エラー検出用の、たとえば、パリティービットが付加されており、マイクロ命令と同時にパリティービットが読み出され、パリティーチェック回路20でチェックされる。
【0045】
図5を参照すると、チェックした結果、パリティーエラーが検出されると(図5ステップT1/YES)、通常の処理を中断し(図5ステップT2)、マイクロアドレスレジスタ15内のエラーが検出されたマイクロ命令のマイクロアドレスに対応する主記憶装置12のマイクロプログラム格納エリアのマイクロプログラムロードアドレスを生成し(図5ステップT3)、主記憶装置12のマイクロプログラム格納エリアに対してマイクロプログラムロードアドレス、および、マイクロプログラム転送指示を発行する(図5ステップT4)。主記憶装置12は、マイクロプログラム転送指示、および、マイクロプログラム格納エリアのマイクロプログラムロードアドレスを受け取り、受け取ったマイクロプログラムロードアドレスから一定サイズのマイクロプログラムをプロセッサ11に対して転送する(図5ステップT5)。
【0046】
プロセッサ11は、転送されてきたマイクロプログラムをマイクロプログラムメモリ14のマイクロアドレスレジスタ15内のマイクロアドレス(エラーの検出された)により指定される位置に格納する(図5ステップT6)。
【0047】
また、平行して、チェックデータメモリ13のマイクロアドレスレジスタ15内のマイクロアドレス(10ビット)の一部(たとえば、上位6ビット)により指定される位置からチェックデータを読み出し、比較回路17に入力する。同時に、転送されてきたマイクロ命令のチェックデータに対応する部分(たとえば、16ビット)を比較回路17に入力する。また、同時に、検出回路16にマイクロアドレスレジスタ15からのマイクロアドレスの一部が入力され、特定の値であるかどうかを検出し、特定の値であれば、アドレス検出信号として、たとえば、“1”を、特定の値でなければ、“0”を出力する(図5ステップT7)。
【0048】
次に、比較回路17は、入力したチェックデータと、マイクロ命令のチェックデータに対応する部分とを比較し、不一致で、かつ、検出回路16からのアドレス検出信号が特定の値であること(“1”)を示していれば(図5ステップT8/YES)、マイクロプログラム不正信号を出力する(図5ステップT9)。
【0049】
比較回路17は、比較の結果、一致しているか、あるいは、検出回路16からのアドレス検出信号が特定の値でないことを示していれば(図5ステップT8/NO)、中断していた処理を再開する(図5ステップT10)。
【0050】
以上において、マイクロプログラム不正信号が検出されると、割り込みが発生し、エラー処理が実施される。
【0051】
また、マイクロプログラム不正信号が発生する場合には、マイクロプログラムメモリ14に不正の原因となるマイクロ命令を書き込むのを抑止する回路を設けることも可能である。
【0052】
また、チェックデータアドレスレジスタ19を設けずに、チェックデータをチェックデータメモリ13に格納する場合に、マイクロアドレスレジスタ15を代用する構成も可能である。
【0053】
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
【0054】
本発明の第2の実施の形態は、マイクロプログラムメモリ14を、使用される頻度の高いマイクロ命令群を格納する第1のマイクロプログラムメモリ14と、使用される頻度の低いマイクロ命令群を格納する第2のマイクロプログラムメモリ14とに分割し、第2のマイクロプログラムメモリ14をキャッシュで実現する構成をとるものである。
【0055】
ここで、通常の処理において、第2のマイクロプログラムメモリ14に、実行しようとするマイクロ命令が存在するかどうかを検出する回路を設け、存在しなかった場合に、パリティーチェック回路20でのパリティーエラーが検出された場合(図5ステップT1)と同様の処理(図5ステップT2以降)を実行する。
【0056】
これにより、信頼性が向上する。
【0057】
【発明の効果】
本発明の第1の効果は、主記憶装置内のマイクロプログラムが何らかの原因で、不正に書き換えられた場合に、検出できることである。
【0058】
その理由は、マイクロプログラムのマイクロ命令の一部、または全部であるチェックデータをプロセッサ内に保持し、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【0059】
第2の効果は、チェックのためにプロセッサの性能が低下しないことである。
【0060】
その理由は、マイクロ命令をマイクロプログラムメモリに格納する時に、チェックデータとマイクロ命令の一部、または全部とを比較するからである。
【0061】
第3の効果は、チェックのためのハードウェア量の増加が少ないことである。
【0062】
その理由は、マイクロアドレスの一部が特定の値かどうかを検出する検出回路を用い、比較のための回路を少量にする構成をとるからである。
【0063】
第4の効果は、制御が簡単なことである。
【0064】
その理由は、従来技術で用いるNOP命令を書き込む回路を設けないからである。
【0065】
第5の効果は、マイクロプログラムの容量が増加しないことである。
【0066】
その理由は、チェックデータをマイクロ命令とは別に用意するからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すブロック図である。
【図2】本発明の第1の実施の形態が適用される情報処理システムを示すブロック図である。
【図3】主記憶装置に格納される内容を示す説明図である。
【図4】本発明の第1の実施の形態の動作を示すフロチャートである。
【図5】本発明の第1の実施の形態の動作を示すフロチャートである。
【符号の説明】
10 診断プロセッサ
11 プロセッサ
12 主記憶装置
13 チェックデータメモリ
14 マイクロプログラムメモリ
15 マイクロアドレスレジスタ
16 検出回路
17 比較回路
18 制御回路
19 チェックデータアドレスレジスタ
100 システムバス
Claims (9)
- (a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(e)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - (a)複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(f)前記マイクロプログラムメモリに前記主記憶装置からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - 複数のマイクロ命令からなるマイクロプログラムを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路とを含む1以上のプロセッサと、
前記プロセッサの前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。 - (a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - (a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(f)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - 複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、
前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。 - (a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(d)マイクロ命令における処理実行時に、前記マイクロプログラムメモリからの出力のパリティーをチェックするパリティーチェック回路と、
(e)前記パリティーチェック回路でパリティーエラーが検出されると、エラーが発生したマイクロプログラムのマイクロ命令を前記マイクロプログラムメモリに格納する制御回路と、
(f)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(g)前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - (a)複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するキャッシュ構成のマイクロプログラムメモリと、
(b)マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
(c)前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
(d)前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
(e)マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
(f)前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を前記主記憶装置から取り出し前記マイクロプログラムメモリに格納する制御回路と、
(g)前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
(h)前記マイクロプログラムメモリに前記主記憶からマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路と、
を有することを特徴とするマイクロプログラムチェックシステム。 - 複数のマイクロ命令からなるマイクロプログラム、およびパリティーを格納するマイクロプログラムメモリと、
マイクロプログラムのうち前記マイクロプログラムメモリの1以上の特定アドレスに格納される各マイクロ命令の一部または全部であるチェック部分をチェックデータとして格納するチェックデータメモリと、
前記マイクロプログラムメモリ、前記チェックデータメモリに対するアドレスを格納するマイクロアドレスレジスタと、
マイクロ命令における処理実行時に、前記マイクロプログラムメモリに実行すべきマイクロ命令が存在するかどうかを検出する判定回路と、
前記判定回路で実行すべきマイクロ命令が存在しないことが検出されると、実行すべきマイクロプログラムのマイクロ命令を取り出し前記マイクロプログラムメモリに格納する制御回路と、
前記マイクロアドレスレジスタ内のアドレスが前記特定アドレスであるかどうかを検出し、検出結果をアドレス検出信号として出力する検出回路と、
前記マイクロプログラムメモリにマイクロプログラムを格納する時点で、格納しようとするマイクロ命令のチェック部分と、前記チェックデータメモリから出力されるチェックデータとを比較し、比較結果が一致であり、かつ、前記検出回路からのアドレス検出信号が前記特定アドレスであることを示していれば、マイクロプログラム不正信号を出力する比較回路を含む1以上のプロセッサと、
前記マイクロプログラムメモリに格納されるマイクロプログラムを保持するマイクロプログラム格納エリア、および、前記チェックデータメモリに格納されるチェックデータを保持するチェックデータ格納エリアを含む主記憶装置と、
を有することを特徴とするマイクロプログラムチェックシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001226101A JP3616588B2 (ja) | 2001-07-26 | 2001-07-26 | マイクロプログラムチェックシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001226101A JP3616588B2 (ja) | 2001-07-26 | 2001-07-26 | マイクロプログラムチェックシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003044270A JP2003044270A (ja) | 2003-02-14 |
JP3616588B2 true JP3616588B2 (ja) | 2005-02-02 |
Family
ID=19058981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001226101A Expired - Fee Related JP3616588B2 (ja) | 2001-07-26 | 2001-07-26 | マイクロプログラムチェックシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3616588B2 (ja) |
-
2001
- 2001-07-26 JP JP2001226101A patent/JP3616588B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003044270A (ja) | 2003-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327100B2 (en) | Execute only access rights on a Von Neuman architectures | |
US8407476B2 (en) | Method and apparatus for loading a trustable operating system | |
US7451298B2 (en) | Processing exceptions from 64-bit application program executing in 64-bit processor with 32-bit OS kernel by switching to 32-bit processor mode | |
US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
TWI808869B (zh) | 硬體處理器及處理器 | |
JPS6324428A (ja) | キヤツシユメモリ | |
US6189093B1 (en) | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register | |
US6895527B1 (en) | Error recovery for speculative memory accesses | |
CN114902178A (zh) | 域转换禁用配置参数 | |
JP2005316599A (ja) | 割込制御装置 | |
JPH0877075A (ja) | 情報処理装置 | |
JP3616588B2 (ja) | マイクロプログラムチェックシステム | |
US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
JP2015158936A (ja) | データ処理装置 | |
US5829049A (en) | Simultaneous execution of two memory reference instructions with only one address calculation | |
JP2894438B2 (ja) | パイプライン処理装置 | |
JPH05257815A (ja) | 中央処理装置 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP3476314B2 (ja) | マイクロプロセッサ | |
JP2015115052A (ja) | マイクロプロセッサ、コンピュータ、異常対応方法、及び異常対策プログラム | |
JPH07152594A (ja) | 制御プロセッサのリトライ制御方式 | |
JPH0258648B2 (ja) | ||
JPH05101203A (ja) | マイクロ・プロセツサ | |
JPH06139084A (ja) | 情報処理装置 | |
JPH0535499A (ja) | データ処理装置及びデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041105 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |