JP2016081334A - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP2016081334A JP2016081334A JP2014212639A JP2014212639A JP2016081334A JP 2016081334 A JP2016081334 A JP 2016081334A JP 2014212639 A JP2014212639 A JP 2014212639A JP 2014212639 A JP2014212639 A JP 2014212639A JP 2016081334 A JP2016081334 A JP 2016081334A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cpu
- diagnosis
- comparator
- calculation
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】周辺回路が有する演算機能の診断を、回路規模の増大を極力抑制して実行できるマイクロコンピュータを提供する。【解決手段】ハードウェアロジックで構成される演算器3は、CPU2により実行される演算のうち加算が実行可能であり、CPU側データレジスタ5は、CPU2が、診断用に演算した演算結果データの上位8ビットを格納する。比較器6には、CPU側データレジスタ5に格納されたデータが入力されると共に、演算器3の演算結果データが、演算器側データレジスタ4を介して上位8ビットだけ入力される。CPU2は、診断用の演算対象データ(A,B)について演算した演算結果データ(A+B)をCPU側データレジスタ5に書き込むと共に、演算器3にも自身が実行するものと同一の演算(A+B)を実行させて比較器6の比較結果を参照する診断処理を行い、その比較結果が不一致であれば異常検出処理を行う。【選択図】図1
Description
本発明は、CPUと、そのCPUにより実行される演算のうち、少なくとも1つの演算が実行可能である周辺回路とを備えてなるマイクロコンピュータに関する。
一般にマイクロコンピュータは、CPUと1つ以上の周辺回路とで構成される。周辺回路の1つが、ハードウェアロジックで演算を実行可能に構成されている場合に、その演算機能が正常であるか否かを確認したいというユーザによる要請がある。例えば、特許文献1には、自己診断機能を備えたプロセッサとして、診断対象となる加減算器12を備えた演算回路10−1と、自己診断用データを格納するデータ格納部14と、自己診断用データを入力して演算回路による演算結果の全ビットがオール0又は1となるように診断処理を実行させる自己診断処理部10−2とを備えたものが開示されている。
しかしながら、特許文献1の構成では、自己診断機能を実現するため、データ格納部14や自己診断処理部10−2等を別途実装する必要があり、回路規模が増大するという問題がある。
本発明は上記事情に鑑みてなされたものであり、その目的は、周辺回路が有する演算機能の診断を、回路規模の増大を極力抑制して実行できるマイクロコンピュータを提供することにある。
本発明は上記事情に鑑みてなされたものであり、その目的は、周辺回路が有する演算機能の診断を、回路規模の増大を極力抑制して実行できるマイクロコンピュータを提供することにある。
請求項1記載のマイクロコンピュータによれば、周辺回路は、ハードウェアロジックにより構成され、CPUにより実行される演算のうち、少なくとも1つの演算が実行可能である。診断用データレジスタは、データバス幅を2nビットすると、CPUが、診断用に演算した演算結果データを、MSB側からnビット以下の範囲で格納する。比較器には、診断用データレジスタに格納されたデータが入力されると共に、周辺回路の演算結果データが、MSB側から診断用データレジスタと同じビット数だけ入力される。
そして、CPUは、診断用の演算対象データについて演算した演算結果データを診断用データレジスタに書き込むと共に、周辺回路に診断用の演算対象データについて自身が実行するものと同一の演算を実行させて、比較器の比較結果を参照する診断処理を行い、その比較結果が不一致であれば、異常検出処理を行う。
このように構成すれば、周辺回路の演算機能が正常か否かを監視するために必要とする構成が、診断用データレジスタ及び比較器のみになる。そして、診断用データレジスタ及び比較器は、データとしての重要性がより高いMSB側からnビット以下の範囲でデータを格納・比較する(すなわち、演算結果の上位ビットに誤りが発生すると、マイクロコンピュータを含むシステムに与える影響が大きくなるからである)。したがって、追加する構成のサイズも必要最小限にできる。
(第1実施形態)
図1に示すように、マイクロコンピュータ(マイコン)1は、CPU2、演算器3(周辺回路)、演算器側データレジスタ4、CPU側データレジスタ5(診断用データレジスタ)及び比較器6を備えている。尚、マイコン1のデータバス幅は、例えば16ビット(n=2)である。CPU2は、論理演算や加減算を行うALU(Arithmetic Logical Unit)7及びメモリアクセスやALU7による演算の実行等を制御する制御部8を内蔵している。
図1に示すように、マイクロコンピュータ(マイコン)1は、CPU2、演算器3(周辺回路)、演算器側データレジスタ4、CPU側データレジスタ5(診断用データレジスタ)及び比較器6を備えている。尚、マイコン1のデータバス幅は、例えば16ビット(n=2)である。CPU2は、論理演算や加減算を行うALU(Arithmetic Logical Unit)7及びメモリアクセスやALU7による演算の実行等を制御する制御部8を内蔵している。
演算器3は、ハードウェアロジックで構成されており、ALU8が実行する演算のうち、少なくとも1つの演算(例えば、加算)を実行可能に構成されている。演算器3は、加算器でも良いし、ゲートアレイやPLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等で構成されていても良い。演算器3に2つの演算対象データを入力するため、2つの入力用データレジスタが用意されている。これらの入力用データレジスタは、演算器3の内部又は外部の何れに設けられていても良い。演算器3が演算したデータは、演算器側データレジスタ4に書き込まれるが、この演算器側データレジスタ4は、演算器3が通常の演算処理結果を書き込む16ビットレジスタである。そして、演算器側データレジスタ4に格納されたデータのうち、MSB側から例えば上位8ビットのデータのみが比較器6に入力される。
一方、CPU2のALU8が演算したデータは、CPU側データレジスタ5に書き込まれて、上述と同様にMSB側から上位8ビットのデータのみが比較器6に入力される。CPU側データレジスタ5は、汎用の16ビットレジスタを用いても良いが、診断専用の8ビットレジスタでも良い。
比較器6は、演算器側データレジスタ4、CPU側データレジスタ5を介してそれぞれ入力される上位8ビットのデータを比較し、比較結果(一致又は不一致)をCPU2に出力する。CPU2は、比較器6の比較結果を例えばポーリング等により確認するが、前記比較結果(不一致)の出力でCPU2に割り込みを発生させても良い。
次に、本実施形態の作用について説明する。先ず、CPU2は、演算対象データである2つのデータA,Bを演算器3に入力して演算(A+B)を実行させ、演算結果データを演算器側データレジスタ4に格納させる。次に、CPU2は、ALU7により同じ演算(A+B)を実行し、演算結果データをCPU側データレジスタ5に格納する。それから、比較器6(又は比較結果が格納されるレジスタ)にアクセスして、上位8ビットデータの比較結果を参照する。
比較結果が「一致」であれば、演算器3の機能は正常であるから、特段の処理は実行しない。一方、比較結果が「不一致」であれば、演算器3の機能に異常がある可能性が高いので、例えばマイコン1をリセットしたり、上位の制御装置に異常発生を報知する等の異常検出処理を行う。尚、CPU2と演算器3との演算の実行順は逆であっても良い。
以上のように本実施形態によれば、ハードウェアロジックにより構成される演算器3は、CPU2により実行される演算のうち加算が実行可能であり、CPU側データレジスタ5は、CPU2が、診断用に演算した演算結果データの上位8ビットを格納する。比較器6には、CPU側データレジスタ5に格納されたデータが入力されると共に、演算器3の演算結果データが、演算器側データレジスタ4を介して上位8ビットだけ入力される。
そして、CPU2は、診断用の演算対象データ(A,B)について演算した演算結果データ(A+B)をCPU側データレジスタ5に書き込むと共に、演算器3にも自身が実行するものと同一の演算(A+B)を実行させて、比較器6の比較結果を参照する診断処理を行い、その比較結果が不一致であれば異常検出処理を行う。
このように構成すれば、演算器3の演算機能が正常か否かを監視するために必要とする構成が、少なくともCPU側データレジスタ5及び比較器6のみになる。そして、CPU側データレジスタ5及び比較器6は、16ビットデータについて、演算結果に誤りが発生するとマイコン1を含むシステムに与える影響がより高い、つまりデータとしての重要性がより高いMSB側から8ビットのデータを格納・比較する。したがって、追加する構成のサイズも必要最小限にできる。
(第2実施形態)
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図2に示すように、第2実施形態のマイコン11は、2つの演算器3A及び3Bと、夫々に対応する演算器側データレジスタ4A及び4Bを備えている。CPU2は、これらの演算器3A及び3Bに同じ演算、例えば第1実施形態と同様に加算(A+B))を実行させる。また、比較器6に替わる比較器12は、演算器側データレジスタ4A及び4B、CPU側データレジスタ5が夫々出力する上位8ビットのデータを比較して、比較結果を出力する。
以下、第1実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。図2に示すように、第2実施形態のマイコン11は、2つの演算器3A及び3Bと、夫々に対応する演算器側データレジスタ4A及び4Bを備えている。CPU2は、これらの演算器3A及び3Bに同じ演算、例えば第1実施形態と同様に加算(A+B))を実行させる。また、比較器6に替わる比較器12は、演算器側データレジスタ4A及び4B、CPU側データレジスタ5が夫々出力する上位8ビットのデータを比較して、比較結果を出力する。
この場合、比較器12が出力する比較結果は、3つの演算結果データが全て一致するか、全てが一致しないか(不一致)を2値データで示しても良いが、2ビット又は3ビットのデータにより、3つの演算結果データのうち不一致となった1つを特定する情報を出力しても良い。例えば、2ビットデータであれば、
データ値 00 01 10 11
不一致 無し 3A 3B CPU2
というように、不一致となったものを指定する。
また、3ビットデータの場合は上記に加えて「全て不一致」を示したり、何れの1ビットを立てるかによって、演算器3A,3B,CPU2の不一致を個別に示したり、それらの組み合わせを2ビットで示しても良い。
データ値 00 01 10 11
不一致 無し 3A 3B CPU2
というように、不一致となったものを指定する。
また、3ビットデータの場合は上記に加えて「全て不一致」を示したり、何れの1ビットを立てるかによって、演算器3A,3B,CPU2の不一致を個別に示したり、それらの組み合わせを2ビットで示しても良い。
以上のように第2実施形態によれば、2つの演算器3A,3Bを備え、比較器12には、各演算結果データをそれぞれ、上位8ビットだけ入力する。そして、CPU2は、演算器3A,3Bのそれぞれに同じ演算(A+B)を実行させ、自身も同じ演算(A+B)を実行して診断処理を行うようにした。したがって、3者のうち演算結果が不一致となった1つを特定することが可能になる。
本発明は上記した、又は図面に記載した実施形態にのみ限定されるものではなく、以下のような変形又は拡張が可能である。
演算器が実行する演算は、加算に限らず、減算や乗算、乗算又は論理演算で合っても良い。或いは、デジタルフィルタ演算等のより複雑な演算でも良い。
また、常時演算を実行するような演算器に限ることなく、少なくともCPUが診断を実行する際に、CPUと同じ演算が実行可能に構成されている周辺回路であれば良い。
比較器の比較対象は、上位8ビットに限らず、7ビット以下のより少ないビット数でも良い。
データバス幅は16ビットに限らず、8ビットや32ビット、64ビット以上でも良い。
第2実施形態において、演算器は3つ以上あっても良い。
演算器が実行する演算は、加算に限らず、減算や乗算、乗算又は論理演算で合っても良い。或いは、デジタルフィルタ演算等のより複雑な演算でも良い。
また、常時演算を実行するような演算器に限ることなく、少なくともCPUが診断を実行する際に、CPUと同じ演算が実行可能に構成されている周辺回路であれば良い。
比較器の比較対象は、上位8ビットに限らず、7ビット以下のより少ないビット数でも良い。
データバス幅は16ビットに限らず、8ビットや32ビット、64ビット以上でも良い。
第2実施形態において、演算器は3つ以上あっても良い。
図面中、1はマイクロコンピュータ、2はCPU、3は演算器、5はCPU側データレジスタ(診断用データレジスタ)、6は比較器を示す。
Claims (2)
- CPU(2)と、
ハードウェアロジックにより構成され、前記CPUにより実行される演算のうち、少なくとも1つの演算が実行可能である周辺回路(3)と、
データバス幅を2n(nは自然数)ビットすると、前記CPUが、診断用に演算した演算結果データを、MSB(Most Significant Bit)側からnビット以下の範囲で格納する診断用データレジスタ(5)と、
この診断用データレジスタに格納されたデータが入力されると共に、前記周辺回路の演算結果データが、MSB側から前記診断用データレジスタと同じビット数だけ入力される比較器(6,12)とを備え、
前記CPUは、前記診断用の演算対象データについて演算した演算結果データを前記診断用データレジスタに書き込むと共に、前記周辺回路に前記診断用の演算対象データについて自身が実行するものと同一の演算を実行させて、前記比較器の比較結果を参照する診断処理を行い、
前記比較結果が不一致であれば、異常検出処理を行うことを特徴とするマイクロコンピュータ。 - 前記周辺回路を複数(3A,3B)備え、
前記比較器(12)には、前記複数の演算結果データがそれぞれ、前記診断用データレジスタと同じビット数だけ入力され、
前記CPUは、前記複数の周辺回路のそれぞれに同じ演算対象データを入力して、それぞれに同じ演算を実行させ、前記演算対象データと同一のデータについて同一の演算を実行して前記診断処理を行うことを特徴とする請求項1記載のマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014212639A JP2016081334A (ja) | 2014-10-17 | 2014-10-17 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014212639A JP2016081334A (ja) | 2014-10-17 | 2014-10-17 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016081334A true JP2016081334A (ja) | 2016-05-16 |
Family
ID=55958663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014212639A Pending JP2016081334A (ja) | 2014-10-17 | 2014-10-17 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016081334A (ja) |
-
2014
- 2014-10-17 JP JP2014212639A patent/JP2016081334A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608715B (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
JP6212396B2 (ja) | データ処理装置 | |
EP2202635B1 (en) | System and method for a multi-schema branch predictor | |
TWI470545B (zh) | 用以執行範圍檢測之設備,處理器,系統,方法,指令,及邏輯 | |
US9563401B2 (en) | Extensible iterative multiplier | |
US9940102B2 (en) | Partial stochastic rounding that includes sticky and guard bits | |
US9880787B2 (en) | System and method for memory patching circuits | |
US20140344643A1 (en) | Hybrid memory protection method and apparatus | |
US8554822B2 (en) | Decimal adder with end around carry | |
US20160328233A1 (en) | Packed finite impulse response (fir) filter processors, methods, systems, and instructions | |
CN111381808B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
US9384076B2 (en) | Allocating machine check architecture banks | |
US20100191980A1 (en) | Microprocessor in a security-sensitive system | |
CN113342671A (zh) | 对运算模块进行验证的方法、装置、电子设备和介质 | |
CN113805974A (zh) | 基于应用程序的数据类型选择 | |
JP2016081334A (ja) | マイクロコンピュータ | |
US10929213B2 (en) | Residue prediction of packed data | |
CN109977701B (zh) | 一种定浮点运算装置 | |
JP2014229130A (ja) | 高信頼プロセッサおよびそれを用いた高信頼制御装置 | |
KR20080083321A (ko) | 패리티 생성 회로, 계수 회로 및 계수 방법 | |
US9128759B2 (en) | Decimal multi-precision overflow and tininess detection | |
US20200125324A1 (en) | Method and Apparatus for Processing Data | |
US20180046459A1 (en) | Data processing | |
US10671388B1 (en) | Vectorization of wide integer data paths for parallel operations with side-band logic monitoring the numeric overflow between vector lanes | |
JP5316096B2 (ja) | エラー検出機能付き演算回路、および演算回路のエラー検出方法 |