JP7042709B2 - 半導体装置、制御システムおよび半導体装置の制御方法 - Google Patents
半導体装置、制御システムおよび半導体装置の制御方法 Download PDFInfo
- Publication number
- JP7042709B2 JP7042709B2 JP2018123381A JP2018123381A JP7042709B2 JP 7042709 B2 JP7042709 B2 JP 7042709B2 JP 2018123381 A JP2018123381 A JP 2018123381A JP 2018123381 A JP2018123381 A JP 2018123381A JP 7042709 B2 JP7042709 B2 JP 7042709B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- software
- execution result
- snoop
- memory
- 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.)
- Active
Links
- 239000004065 semiconductor Substances 0.000 title claims description 105
- 238000000034 method Methods 0.000 title claims description 35
- 238000012545 processing Methods 0.000 claims description 98
- 230000015654 memory Effects 0.000 claims description 85
- 230000008569 process Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 206010009944 Colon cancer Diseases 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 26
- 238000001514 detection method Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 229940072293 axid Drugs 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- SGXXNSQHWDMGGP-IZZDOVSWSA-N nizatidine Chemical compound [O-][N+](=O)\C=C(/NC)NCCSCC1=CSC(CN(C)C)=N1 SGXXNSQHWDMGGP-IZZDOVSWSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
Description
図1を参照して、ある局面に従ってソフトウェアロックステップ(SWLS)を行なう半導体装置1の構成について説明する。図1は、半導体装置1のハードウェア構成を表わすブロック図である。本実施の形態において、ソフトウェアロックステップとは、複数のコアが同一の結果になるプログラムを実行し、これらのコア以外の比較装置によってその結果が同一であることを確認することで、これらのコアの故障の検知を行なう方法をいう。より具体的には、機能安全レベルが通常である二つのコアが、クロックサイクル単位で同期をとることなく、アプリケーション単位あるいは関数単位でプログラムを実行し、実行結果が比較される。この時、各コアへの入力がクロックサイクル単位で同じであることが求められるデュアルコアロックステップと異なり、本実施の形態に従うソフトウェアロックステップでは、各コアへの入力タイミングは任意でよく、各コアの同期をとる必要はない。
ある局面に従う半導体装置1によれば、CPU10,20間のスヌープを防ぐためには、例えば、MMU12,22がスヌープを保護することが考えられる。しかしながら、MMU12,22自体がロックステップの対象であるため、スヌープを防ぐためにMMU12,22を使用することはできない。あるいは、CPU10,20がスヌープをできないように構成することも考えられる。この場合、スヌープを行なっても問題がない場合でもスヌープができなくなるため、処理の遅延のように半導体装置1の性能が悪化する恐れがある。
図3を参照して、ある局面に従うSPU210,220の構成について説明する。図3は、SPU210,220の構成の詳細を説明するための図である。ある局面において、SPU210,220は、デュアルコア・ロックステップ等の仕組みにより、ASIL Dクラスに対応している。
図4~図6を参照して、半導体装置2の制御構造について説明する。図4~図6は、半導体装置2の動作を表わすフローチャートである。
ステップS510にて、アービタ250は、トランザクションを待機している。
ステップS620にて、SPU210は、トランザクションがCPU10によるスヌープであるか否かを判断する。この判断は、例えば、トランザクションに含まれる信号(例えば、後述するARSNOOP信号)の値に基づいて行なわれる。
図12は、スヌープが誤って他のCPUに対して行なわれた場合の保護を説明する図である。ある局面に従う半導体装置2は、AXI(Advanced eXtensible Interface)規格に従ってバスが拡張されたACE(AXI Coherency Extensions)プロトコルを使用する場合がある。AXI規格に従うインターフェイスを構成する5つのチャネルのうち、リードデータチャネルには、ARDOMAIN信号とARSNOOP信号とが追加される。ARSNOOP信号は、リードチャネルおよびライトチャネルでシェアされるトランザクションのためのスヌープトランザクションのタイプを示す。ARDOMAIN信号は、いずれのマスタがスヌープトランザクションにおいてスヌープされるべきであるか、と、いずれのマスタがバリアートランザクションを命令するために考慮されるべきであるか、とを示す。
図13は、メモリ260内においてアドレスエリアを跨ぐアクセスのプロテクトについて説明する図である。ある局面において、アービタ250は、メモリ260内におけるアドレスエリアを跨ぐようなアクセスを検知すると、そのアクセスを禁止し、当該アクセスにつながるトランザクションを与えたプロセッサに、エラーレスポンスを返す。より具体的には、アービタ250は、トランザクションのアドレスを監視し、そのトランザクションの発行元が、当該アドレスにアクセスしてはいけないことを検知すると、当該アドレスへのアクセスをプロテクトする。発行元は、トランザクションに付加されている識別情報で特定され得る。識別情報は、例えば、AxIDその他の値であり得る。当該アドレスへのアクセスが許可されているか否かは、例えば、CPU230において予め設定されている。
図14は、スヌープを許可する場合の動作を説明する図である。ある局面において、CPU230は、SPU210,220によるスヌープを許可する設定のための信号を、アービタ250およびバス30を介して、SPU210,220に送信する。SPU210,220は、この信号を受信すると、プロテクトON/OFFレジスタ320のプロテクトをオフに設定する(図3)。プロテクトがオフに設定されると、スヌープbit強制無効化ブロック310は、CPU10,20からのリクエストに含まれるスヌープを表わす信号(例えば、ARSNOOP)を検知した場合、そのまま、当該信号をアービタ250に送るので、スヌープが実行される。
以下、第2の実施の形態について説明する。本実施の形態に従う半導体装置は、所謂IPコアの一例であるCPUとして、二種類のCPUを有する場合にソフトウェアロックステップを実行できる点で、一種類のIPコアを有する第1の実施の形態と異なる。
以下、第3の実施の形態について説明する。前述の各実施の形態では、ソフトウェアロックステップのプログラムの実行結果が比較される。これに対して、本実施の形態は、実行結果以外のデータが比較される点で、前述の実施の形態と異なる。以下、実行結果に基づくCRC(Cyclic Redundancy Code)が比較される場合を説明するが、比較対象は、CRCに限られず、例えば、ASIL Dクラスの故障検出率を実現した上でバイト数が削減されるハッシュ等であってもよい。
以下、第4の実施の形態について説明する。第4の実施の形態に従う半導体装置6は、ソフトウェアロックステップの実行結果の比較が、アービタで行なわれる点で、前述の実施の形態と異なる。
ステップS2610にて、CPU10,20は、それぞれ、ソフトウェアロックステップのプログラムを実行し、実行結果を、メモリ260の所定のエリア62,63にそれぞれ書き込む。
(構成1) ある局面に従う半導体装置は、キャッシュを有し、ソフトウェアロックステップと通常動作とを実行するための第1のプロセッサ(例、CPU1)および第2のプロセッサ(CPU20)と、メモリ260と、当該メモリに接続され、アドレスプロテクト機能を有するアービタ250と、当該アービタに接続されたバス30と、当該第1のプロセッサと当該バスとに接続され、当該第1のプロセッサによる当該第2のプロセッサのキャッシュへのスヌープ動作を制御するための第1のスヌープ制御回路(例えば、SPU210)と、当該第2のプロセッサと当該バスとに接続され、当該第2のプロセッサによる当該第1のプロセッサのキャッシュへのスヌープ動作を制御するための第2のスヌープ制御回路(例えば、SPU220)と、当該ソフトウェアロックステップと当該通常動作とを切り替えるための制御装置(例えば、CPU230)とを備える。当該制御装置は、当該通常動作が実行される場合に、当該第1のスヌープ制御回路および当該第2のスヌープ制御回路に対して、各当該スヌープ動作を許可し、当該ソフトウェアロックステップが実行される場合に、当該第1のスヌープ制御回路および当該第2のスヌープ制御回路に対して、各当該スヌープ動作を禁止する。当該第1のプロセッサは、当該ソフトウェアロックステップのための第1のソフトウェアを実行し、当該第1のプロセッサのために当該メモリに確保された第1の領域に、当該第1のソフトウェアの実行結果を書き込む。当該第2のプロセッサは、当該ソフトウェアロックステップのための第2のソフトウェアを実行し、当該第1の領域と異なる第2の領域に、当該第2のソフトウェアの実行結果を書き込む。当該半導体装置は、当該第1の領域に書き込まれた実行結果と、当該第2の領域に書き込まれた実行結果とを比較する比較器をさらに備える。
上記の各実施の形態に従うソフトウェアロックステップによれば、機能安全レベルが通常レベルのCPU10,20は、互いに同期をとることなく、アプリケーションあるいは関数単位で処理を実行し、ASIL DクラスのCPU230が、当該処理結果を比較する。このようにすると、通常の動作モードからデュアルコアロックステップを行なうモードへの切り替えに必要とされるコア同士の同期をとるためのリセット処理等が不要になり、数ミリ秒の処理停止時間が生じなくなる。
Claims (20)
- 半導体装置であって、
キャッシュを有し、ソフトウェアロックステップと通常動作とを実行するための第1および第2のプロセッサと、
メモリと、
前記メモリに接続され、アドレスプロテクト機能を有するアービタと、
前記アービタに接続されたバスと、
前記第1のプロセッサと前記バスとに接続され、前記第1のプロセッサによる前記第2のプロセッサのキャッシュへのスヌープ動作を制御するための第1のスヌープ制御回路と、
前記第2のプロセッサと前記バスとに接続され、前記第2のプロセッサによる前記第1のプロセッサのキャッシュへのスヌープ動作を制御するための第2のスヌープ制御回路と、
前記ソフトウェアロックステップと前記通常動作とを切り替えるための制御装置とを備え、
前記制御装置は、
前記通常動作が実行される場合に、前記第1のスヌープ制御回路および前記第2のスヌープ制御回路に対して、各前記スヌープ動作を許可し、
前記ソフトウェアロックステップが実行される場合に、前記第1のスヌープ制御回路および前記第2のスヌープ制御回路に対して、各前記スヌープ動作を禁止し、
前記第1のプロセッサは、
前記ソフトウェアロックステップのための第1のソフトウェアを実行し、
前記第1のプロセッサのために前記メモリに確保された第1の領域に、前記第1のソフトウェアの実行結果を書き込み、
前記第2のプロセッサは、
前記ソフトウェアロックステップのための第2のソフトウェアを実行し、
前記第1の領域と異なる第2の領域に、前記第2のソフトウェアの実行結果を書き込み、
前記半導体装置は、前記第1の領域に書き込まれた実行結果と、前記第2の領域に書き込まれた実行結果とを比較する比較器をさらに備える、半導体装置。 - 前記第1のスヌープ制御回路または前記第2のスヌープ制御回路は、所定の条件を満たさない異常なスヌープ動作を禁止し、
前記アービタは、前記制御装置によってアクセス可能なメモリ領域に対する前記第1のプロセッサまたは前記第2のプロセッサによるアクセスを禁止する、請求項1に記載の半導体装置。 - 前記アービタに接続された第1の処理部および第2の処理部をさらに備え、
前記第1の処理部は、前記ソフトウェアロックステップのための処理を実行し、
前記第1のソフトウェアを実行することは、前記第1の処理部による処理の結果を用いて前記第1のソフトウェアを実行することを含み、
前記第2の処理部は、前記ソフトウェアロックステップのための処理を実行し、
前記第2のソフトウェアを実行することは、前記第2の処理部による処理の結果を用いて前記第2のソフトウェアを実行することを含む、請求項1に記載の半導体装置。 - 前記第1のプロセッサは、前記第1のソフトウェアの実行結果に基づいてCRC(Cyclic Redundancy Code)を生成するように構成されており、
前記制御装置は、
前記第2のソフトウェアの実行結果に基づいてCRCを生成し、
前記第1のプロセッサによって生成されたCRCと、前記制御装置によって生成されたCRCとを比較するように構成されている、請求項1に記載の半導体装置。 - 前記比較器は、前記アービタに含まれており、前記メモリに格納されているデータの読出要求に基づいて、前記メモリに格納されている各実行結果を比較するように構成されている、請求項1に記載の半導体装置。
- 前記メモリは、データを格納するための複数の領域を含み、
前記第1のプロセッサに割り当てられる領域は、前記第2のプロセッサによる前記実行結果の書き込みから保護されており、
前記第2のプロセッサに割り当てられる領域は、前記第1のプロセッサによる前記実行結果の書き込みから保護されており、
前記制御装置に割り当てられる領域は、前記第1のプロセッサおよび前記第2のプロセッサによる書き込みから保護されている、請求項1に記載の半導体装置。 - 前記制御装置の機能安全レベルは、前記第1のプロセッサおよび前記第2のプロセッサの機能安全レベルよりも高い、請求項1に記載の半導体装置。
- 信号の入力を受ける入力インターフェイスと、
前記信号に基づいて演算を実行する半導体装置と、
前記演算の実行結果を出力するための出力インターフェイスとを備え、
前記半導体装置は、
キャッシュを有し、ソフトウェアロックステップと通常動作とを実行するための第1および第2のプロセッサと、
メモリと、
前記メモリに接続され、アドレスプロテクト機能を有するアービタと、
前記アービタに接続されたバスと、
前記第1のプロセッサと前記バスとに接続され、前記第1のプロセッサによる前記第2のプロセッサのキャッシュへのスヌープ動作を制御するための第1のスヌープ制御回路と、
前記第2のプロセッサと前記バスとに接続され、前記第2のプロセッサによる前記第1のプロセッサのキャッシュへのスヌープ動作を制御するための第2のスヌープ制御回路と、
前記ソフトウェアロックステップと前記通常動作とを切り替えるための制御装置とを備え、
前記制御装置は、
前記通常動作が実行される場合に、前記第1のスヌープ制御回路および前記第2のスヌープ制御回路に対して、各前記スヌープ動作を許可し、
前記ソフトウェアロックステップが実行される場合に、前記第1のスヌープ制御回路および前記第2のスヌープ制御回路に対して、各前記スヌープ動作を禁止し、
前記第1のプロセッサは、
前記ソフトウェアロックステップのための第1のソフトウェアを実行し、
前記第1のプロセッサのために前記メモリに確保された第1の領域に、前記第1のソフトウェアの実行結果を書き込み、
前記第2のプロセッサは、
前記ソフトウェアロックステップのための第2のソフトウェアを実行し、
前記第1の領域と異なる第2の領域に、前記第2のソフトウェアの実行結果を書き込み、
前記半導体装置は、前記第1の領域に書き込まれた実行結果と、前記第2の領域に書き込まれた実行結果とを比較する比較器をさらに備える、制御システム。 - 前記第1のスヌープ制御回路または前記第2のスヌープ制御回路は、所定の条件を満たさない異常なスヌープ動作を禁止し、
前記アービタは、前記制御装置によってアクセス可能なメモリ領域に対する前記第1のプロセッサまたは前記第2のプロセッサによるアクセスを禁止する、請求項8に記載の制御システム。 - 前記アービタに接続された第1の処理部および第2の処理部をさらに備え、
前記第1の処理部は、前記ソフトウェアロックステップのための処理を実行し、
前記第1のソフトウェアを実行することは、前記第1の処理部による処理の結果を用いて前記第1のソフトウェアを実行することを含み、
前記第2の処理部は、前記ソフトウェアロックステップのための処理を実行し、
前記第2のソフトウェアを実行することは、前記第2の処理部による処理の結果を用いて前記第2のソフトウェアを実行することを含む、請求項8に記載の制御システム。 - 前記第1のプロセッサは、前記第1のソフトウェアの実行結果に基づいてCRC(Cyclic Redundancy Code)を生成するように構成されており、
前記制御装置は、
前記第2のソフトウェアの実行結果に基づいてCRCを生成し、
前記第1のプロセッサによって生成されたCRCと、前記制御装置によって生成されたCRCとを比較するように構成されている、請求項8に記載の制御システム。 - 前記比較器は、前記アービタに含まれており、前記メモリに格納されているデータの読出要求に基づいて、前記メモリに格納されている各実行結果を比較するように構成されている、請求項8に記載の制御システム。
- 前記メモリは、データを格納するための複数の領域を含み、
前記第1のプロセッサに割り当てられる領域は、前記第2のプロセッサによる前記実行結果の書き込みから保護されており、
前記第2のプロセッサに割り当てられる領域は、前記第1のプロセッサによる前記実行結果の書き込みから保護されており、
前記制御装置に割り当てられる領域は、前記第1のプロセッサおよび前記第2のプロセッサによる書き込みから保護されている、請求項8に記載の制御システム。 - 前記制御装置の機能安全レベルは、前記第1のプロセッサおよび前記第2のプロセッサの機能安全レベルよりも高い、請求項8に記載の制御システム。
- キャッシュを有し、ソフトウェアロックステップと通常動作とを実行するための第1および第2のプロセッサと、第1および第2のスヌープ制御回路と、制御装置と、メモリとを備える半導体装置の制御方法であって、
前記第1のスヌープ制御回路が、前記第1のプロセッサによる前記第2のプロセッサのキャッシュへのスヌープ動作を制御するステップと、
前記第2のスヌープ制御回路が、前記第2のプロセッサによる前記第1のプロセッサのキャッシュへのスヌープ動作を制御するステップと、
前記通常動作が実行される場合に、制御装置が、各前記スヌープ動作を許可するステップと、
前記ソフトウェアロックステップが実行される場合に、前記制御装置が、各前記スヌープ動作を禁止するステップと、
前記第1のプロセッサが、前記ソフトウェアロックステップのための第1のソフトウェアを実行するステップと、
前記第1のプロセッサが、前記メモリの第1の領域に、前記第1のソフトウェアの実行結果を書き込むステップと、
前記第2のプロセッサが、前記ソフトウェアロックステップのための第2のソフトウェアを実行するステップと、
前記第2のプロセッサが、前記メモリの第2の領域に、前記第2のソフトウェアの実行結果を書き込むステップと、
前記制御装置が、前記第1の領域に書き込まれた実行結果と、前記第2の領域に書き込まれた実行結果とを比較するステップとを含む、半導体装置の制御方法。 - 前記半導体装置は、アービタをさらに備え
前記制御方法は、
前記第2のスヌープ制御回路が、所定の条件を満たさない異常なスヌープ動作を禁止するステップと、
前記アービタが、メモリ領域に対する前記第1のプロセッサまたは前記第2のプロセッサによるアクセスを禁止するステップとをさらに含む、請求項15に記載の制御方法。 - 前記半導体装置は、第1の処理部および第2の処理部をさらに備え、
前記制御方法は、
前記第1の処理部が、前記ソフトウェアロックステップのための処理を実行するステップと、
前記第1のプロセッサが、前記第1の処理部による処理の結果に基づいて前記第1のソフトウェアを実行するステップと、
前記第2の処理部が、前記ソフトウェアロックステップのための処理を実行するステップと、
前記第2のプロセッサが、前記第2の処理部による処理の結果に基づいて前記第2のソフトウェアを実行するステップとをさらに含む、請求項15に記載の制御方法。 - 前記第1のプロセッサが、前記第1のソフトウェアの実行結果に基づいてCRC(Cyclic Redundancy Code)を生成するステップと、
前記制御装置が、前記第2のソフトウェアの実行結果に基づいてCRCを生成するステップとをさらに含み、
前記比較するステップは、各前記生成されたCRCを比較することを含む、請求項15に記載の制御方法。 - 前記メモリに格納されているデータの読出要求に基づいて、前記制御装置が、前記メモリに格納されている各実行結果を比較するステップとをさらに含む、請求項15に記載の制御方法。
- 前記メモリは、データを格納するための複数の領域を含み、
前記第1のプロセッサに割り当てられる領域は、前記第2のプロセッサによる前記実行結果の書き込みから保護されており、
前記第2のプロセッサに割り当てられる領域は、前記第1のプロセッサによる前記実行結果の書き込みから保護されており、
前記制御装置に割り当てられる領域は、前記第1のプロセッサおよび前記第2のプロセッサによる書き込みから保護されている、請求項15に記載の制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018123381A JP7042709B2 (ja) | 2018-06-28 | 2018-06-28 | 半導体装置、制御システムおよび半導体装置の制御方法 |
US16/446,195 US10860486B2 (en) | 2018-06-28 | 2019-06-19 | Semiconductor device, control system, and control method of semiconductor device |
CN202310957401.5A CN116774947A (zh) | 2018-06-28 | 2019-06-24 | 半导体器件、控制系统和半导体器件的控制方法 |
CN201910548857.XA CN110658988B (zh) | 2018-06-28 | 2019-06-24 | 半导体器件、控制系统和半导体器件的控制方法 |
EP19182508.2A EP3588309B1 (en) | 2018-06-28 | 2019-06-26 | Semiconductor device, control system, and control method of semiconductor device |
US17/112,702 US11544192B2 (en) | 2018-06-28 | 2020-12-04 | Semiconductor device, control system, and control method of semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018123381A JP7042709B2 (ja) | 2018-06-28 | 2018-06-28 | 半導体装置、制御システムおよび半導体装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020004108A JP2020004108A (ja) | 2020-01-09 |
JP7042709B2 true JP7042709B2 (ja) | 2022-03-28 |
Family
ID=67070725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018123381A Active JP7042709B2 (ja) | 2018-06-28 | 2018-06-28 | 半導体装置、制御システムおよび半導体装置の制御方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10860486B2 (ja) |
EP (1) | EP3588309B1 (ja) |
JP (1) | JP7042709B2 (ja) |
CN (2) | CN116774947A (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572359B2 (en) * | 2017-09-05 | 2020-02-25 | International Business Machines Corporation | Validation of data written via two different bus interfaces to a dual server based storage controller |
US20200353884A1 (en) * | 2019-05-08 | 2020-11-12 | Mobileye Vision Technologies Ltd. | System on chip |
JP7157709B2 (ja) * | 2019-07-04 | 2022-10-20 | 株式会社日立製作所 | 計算機システム及びプログラム実行方法 |
US10770132B1 (en) * | 2019-07-26 | 2020-09-08 | Qualcomm Incorporated | SRAM with burst mode address comparator |
US11385984B2 (en) * | 2020-02-24 | 2022-07-12 | Western Digital Technologies, Inc. | Variable read scan for solid-state storage device quality of service |
US11455248B2 (en) | 2020-05-06 | 2022-09-27 | Renesas Electronics Corporation | Semiconductor device capable of performing software lock-step |
DE102020213323A1 (de) * | 2020-10-22 | 2022-04-28 | Robert Bosch Gesellschaft mit beschränkter Haftung | Datenverarbeitungsnetzwerk zur Datenverarbeitung |
US11573856B1 (en) | 2021-07-30 | 2023-02-07 | Nvidia Corporation | Transmitting data between regions of varying safety integrity levels in a system on a chip |
DE112022003757T5 (de) * | 2021-07-30 | 2024-05-29 | Nvidia Corporation | Übertragung von daten zwischen regionen mit variierenden sicherheitsintegritätsstufen in einem system auf einem chip |
US11803668B2 (en) | 2021-07-30 | 2023-10-31 | Nvidia Corporation | Isolating a region of a system on a chip for safety critical operations |
DE102021211712A1 (de) * | 2021-10-18 | 2023-04-20 | Robert Bosch Gesellschaft mit beschränkter Haftung | Datenverarbeitungsnetzwerk zur Datenverarbeitung |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009505177A (ja) | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの命令実行ユニットを有するコンピュータシステムにおける記憶装置へのアクセスを制御する方法および装置 |
WO2016169856A1 (en) | 2015-04-20 | 2016-10-27 | Autoliv Development Ab | A vehicle safety electronic control system |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748937A (en) * | 1993-08-26 | 1998-05-05 | Intel Corporation | Computer system that maintains processor ordering consistency by snooping an external bus for conflicts during out of order execution of memory access instructions |
US5652859A (en) * | 1995-08-17 | 1997-07-29 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues |
US7467326B2 (en) * | 2003-02-28 | 2008-12-16 | Maxwell Technologies, Inc. | Self-correcting computer |
US8627030B2 (en) * | 2007-11-07 | 2014-01-07 | Intel Corporation | Late lock acquire mechanism for hardware lock elision (HLE) |
US9058272B1 (en) * | 2008-04-25 | 2015-06-16 | Marvell International Ltd. | Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses |
US9086977B2 (en) * | 2011-04-19 | 2015-07-21 | Freescale Semiconductor, Inc. | Cache memory with dynamic lockstep support |
JP5879527B2 (ja) * | 2011-05-25 | 2016-03-08 | パナソニックIpマネジメント株式会社 | 情報処理装置および情報処理方法 |
JP2013246496A (ja) * | 2012-05-23 | 2013-12-09 | Renesas Electronics Corp | 半導体装置 |
JP5978873B2 (ja) | 2012-09-12 | 2016-08-24 | 株式会社デンソー | 電子制御装置 |
DE102014201682A1 (de) * | 2014-01-30 | 2015-07-30 | Robert Bosch Gmbh | Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem |
JP6438353B2 (ja) * | 2015-05-27 | 2018-12-12 | ルネサスエレクトロニクス株式会社 | 半導体装置及び診断テスト方法 |
US9652385B1 (en) * | 2015-11-27 | 2017-05-16 | Arm Limited | Apparatus and method for handling atomic update operations |
CN105700939B (zh) * | 2016-04-21 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
US20180011768A1 (en) * | 2016-07-05 | 2018-01-11 | International Business Machines Corporation | Control state preservation during transactional execution |
-
2018
- 2018-06-28 JP JP2018123381A patent/JP7042709B2/ja active Active
-
2019
- 2019-06-19 US US16/446,195 patent/US10860486B2/en active Active
- 2019-06-24 CN CN202310957401.5A patent/CN116774947A/zh active Pending
- 2019-06-24 CN CN201910548857.XA patent/CN110658988B/zh active Active
- 2019-06-26 EP EP19182508.2A patent/EP3588309B1/en active Active
-
2020
- 2020-12-04 US US17/112,702 patent/US11544192B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009505177A (ja) | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの命令実行ユニットを有するコンピュータシステムにおける記憶装置へのアクセスを制御する方法および装置 |
WO2016169856A1 (en) | 2015-04-20 | 2016-10-27 | Autoliv Development Ab | A vehicle safety electronic control system |
Also Published As
Publication number | Publication date |
---|---|
CN116774947A (zh) | 2023-09-19 |
JP2020004108A (ja) | 2020-01-09 |
CN110658988A (zh) | 2020-01-07 |
US10860486B2 (en) | 2020-12-08 |
CN110658988B (zh) | 2023-08-11 |
EP3588309B1 (en) | 2021-10-13 |
US20210089453A1 (en) | 2021-03-25 |
EP3588309A2 (en) | 2020-01-01 |
EP3588309A3 (en) | 2020-01-22 |
US20200073806A1 (en) | 2020-03-05 |
US11544192B2 (en) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7042709B2 (ja) | 半導体装置、制御システムおよび半導体装置の制御方法 | |
US6449699B2 (en) | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems | |
KR101403233B1 (ko) | 정보 처리 장치 및 부정 액세스 방지 방법 | |
JP3850829B2 (ja) | メモリ・ポート仲裁方法 | |
JP7354253B2 (ja) | インラインecc保護のための方法及びシステム | |
US20200264976A1 (en) | Data processing system having memory protection and method therefor | |
JP5341928B2 (ja) | 時間的に分離した冗長プロセッサの実行を使用しての周辺機器への読み書き | |
US6141718A (en) | Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data direct memory accesses | |
CN108369557B (zh) | 非对称一致性协议 | |
JP5999216B2 (ja) | データ処理装置 | |
US6738869B1 (en) | Arrangements for out-of-order queue cache coherency and memory write starvation prevention | |
JP2002536718A (ja) | アドレスリマッピング保証装置および方法 | |
JP6668908B2 (ja) | 情報処理システム、送信装置および情報処理システムの制御方法 | |
JPS6250863B2 (ja) | ||
JP6645467B2 (ja) | マイクロコンピュータ | |
JP2932867B2 (ja) | 共通バスシステムにおける排他制御方式 | |
JP6680973B2 (ja) | 情報処理装置、情報処理装置の制御方法及び演算処理装置 | |
JPH05108493A (ja) | メモリ制御方式 | |
JP2010003268A (ja) | スレーブ装置 | |
JPH0217563A (ja) | 共有メモリの初期化方法 | |
JP2013008145A (ja) | プロセッサシステム | |
JPH0437948A (ja) | 排他制御方式 | |
JP2008204207A (ja) | インタフェース制御装置及びその動作制御方法 | |
JPS63251840A (ja) | マルチプロセツサの異常検出制御方法 | |
JPS62184564A (ja) | 電子計算機制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211130 |
|
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: 20220301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220315 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7042709 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |