JP2009541887A - 複数の実行ユニットを有するシステムを切り替える方法 - Google Patents
複数の実行ユニットを有するシステムを切り替える方法 Download PDFInfo
- Publication number
- JP2009541887A JP2009541887A JP2009517291A JP2009517291A JP2009541887A JP 2009541887 A JP2009541887 A JP 2009541887A JP 2009517291 A JP2009517291 A JP 2009517291A JP 2009517291 A JP2009517291 A JP 2009517291A JP 2009541887 A JP2009541887 A JP 2009541887A
- Authority
- JP
- Japan
- Prior art keywords
- executed
- program
- scheduler
- sch
- execution units
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【選択図】図1
Description
−実行ユニットによってスケジューラを呼び出す工程であって、その際、呼び出されたスケジューラは、次に実行されるべきプログラムを決定する、実行ユニットによってスケジューラを呼び出す工程と、
−次に実行されるべきプログラムが比較駆動モードVMで実行される必要がある場合に、残りの複数の実行ユニットに、スケジューラを同様に呼び出すように促す工程と、
−最初に呼び出されたスケジューラにより決定された、実行されるべきプログラムが、比較駆動モードVMで実行される必要がある場合に、パフォーマンス駆動モードPMから比較駆動モードVMへと複数の実行ユニットを有するシステムを切り替える工程であって、その際、最後に呼び出されたスケジューラにより決定された、実行されるべきプログラムが、最も優先度が高いプログラムとして、全実行ユニットによって、複数の実行ユニットを有するシステムの比較モードVMで実行される工程と、
を含む、複数の実行ユニットを有するシステムを切り替える方法、を創出する。
−次に実行されるべきプログラムを決定するために実行ユニットによって呼び出されるスケジューラであって、その際、最初に呼び出されたスケジューラにより決定されたプログラムが比較駆動モードVMで実行される必要がある場合に、残りの複数の実行ユニットが、スケジューラを同様に呼び出すように促される、スケジューラと、
−最後に呼び出されたスケジューラにより決定された、実行されるべきプログラムが比較駆動モードVMで実行される必要がある場合に、パフォーマンス駆動モードPMから比較駆動モードVMへと複数の実行ユニットを有するシステムを切り替える切り替えユニットであって、その際、決定された、実行されるべきプログラムが、最も優先度が高いプログラムとして、全実行ユニットによって、複数の実行ユニットを有するシステムの切り替え後に比較駆動モードVMで実行される、切り替えユニットと、
を備える、少なくとも2つの実行ユニットを有するシステム、を創出する。
例えば、実行ユニット2Aによって、プログラムまたはタスク、例えばタスクT1が終えられた場合に、スケジューラの呼び出しが行なわれる。工程S1AでのスケジューラSCHの呼び出しの後に、工程S2Aでは、次のプログラムまたは次のタスクTが、比較駆動モードVMまたはパフォーマンスモードPMで実行される必要があるかどうかについて決定される。上記の例の第2実行ユニット2BでタスクT2が駆動し、かつ、スケジューラSCHによって、優先度に対応して、次に実行されるべきタスクとして、比較駆動モードVMで実行されるべき優先度1のタスク3が選択される場合に、流れは、工程S3Aへと分岐する。反対に、次に実行されるべきプログラムがパフォーマンス駆動モードPMで実行される必要がある場合、プログラムは、工程S4Aで直接的に開始可能である。工程S3Aでは、次に実行されるべきタスクT3の優先度と、今正に他方の実行ユニット2Bで駆動中のプログラムの優先度とが比較される。これは、上記の例では優先度Prio2のタスクT2に相当する。他方の実行ユニット、すなわち実行ユニット2Bで駆動しているプログラムの優先度がより高い場合には、中断不可能である。この場合、実行ユニット2Aは、工程S5Aで、アイドル駆動モード(IDLE)に移行する。上記の例においては、タスクT3の優先度(Prio1)よりも駆動中のタスクT2の優先度(Prio2)が高いので、工程S5Aが実行される。反対に、次のタスクの優先度よりも他方の実行ユニット2Bのプログラムの優先度が低い場合には、工程S6Aで、切り替え希望が、割込みを介して実行ユニット2Aから実行ユニット2Bへと信号で知らされる。その際、割込みサービスルーチンISRが起動される。報知の後で、第1実行ユニット2Aは、工程S7Aにおいて、バリア状態に入る。バリアでは、実行ユニット2Aが実行ユニット2Bの信号を待つ。バリアは、ソフトウェア同期化データ構造(Software−Synchronisations−Datenkonstrukt)に相当し、他の実行ユニットが同じプログラム実行時点に達するまで実行ユニットまたはCPUは待機する。割込みサービスルーチンISRの起動後に、第2実行ユニット2Bは自身でオペレーティングシステム・スケジューラSCHを呼び出す。その際、図2Bに示す流れが実行される。実行ユニット2Bもバリア状態に入った場合には、両実行ユニット2A、2Bが同じ演算結果になったか、すなわち、両実行ユニット2A、2Bが、同じプログラムまたは同じタスクを次に実行しようとしているかについて、両実行ユニット2A、2Bによってほぼ並行して検査される。この検査は、比較駆動モードVMによるものではない。実行ユニット2Aがバリア状態になる工程は、図2では工程S7Aとして示されている。場合によっては、工程S8Aで、引き続いて割込みサービスルーチンISRが解除される。両実行ユニット2A、2Bが同じ演算結果になったかどうか、すなわち、同じプログラムまたは同じタスクを実行しようとしているのかについての検査は、工程S9Aで示されている。両実行ユニット2A、2Bによって、スケジューラSCHの各呼び出しの後で、同じプログラムまたは同じタスクTが決定された場合に、工程S10Aで、システム1が比較駆動モードVMに切り替えられ、引き続いて工程S4Aで、プログラムまたはタスクが両実行ユニット2A、2Bで実行または開始される。例えば、第2実行ユニット2Bも、スケジューラの呼び出しの後に、比較駆動モードVMで実行されるべきタスクT3を実行したいという演算結果の比較S9Aが明らかになった場合に、工程S10Aでの比較駆動モードVMへの切り替えの後に、このタスクT3が工程S4Aで開始される。反対に、他方の実行ユニット2Bが異なる演算結果を出すことが確認された場合には、工程S11Aで、実行ユニット2Bにより選択されたプログラム、または選択されたタスクTが、同様に比較駆動モードVMで実行される必要があるかどうかについて検査される。これに該当する〔実行ユニット2Bにより選択されたプログラム、または選択されたタスクTが、同様に比較駆動モードVMで実行される必要がある〕場合には、工程S10Aで、システム1が比較駆動モードVMへと切り替えられ、最後に呼び出されたスケジューラSCHにより決定されるタスク、すなわち、実行ユニット2Bにより決定されたタスクが、工程S4Aで開始される。工程S11Aで、実行ユニット2Bにより決定されたタスクTが、比較駆動モードVMではなく、パフォーマンス駆動モードPMで実行される必要があることが確認される場合には、実行ユニット2Aは、工程S1AでスケジューラSCHを再呼び出しする。
Claims (11)
- 複数の実行ユニットを有するシステム(1)を切り替える方法であって、前記システム(1)は、少なくとも2つの実行ユニット(2)を有しており、前記複数の実行ユニット(2)が異なるプログラムを実行するパフォーマンス駆動モード(PM)から、前記複数の実行ユニット(2)が同じプログラムを実行する比較駆動モード(VM)へとシステムを切り替える方法において、
(a)実行ユニット(2)によってスケジューラを呼び出す工程(S1A)であって、その際、呼び出されたスケジューラ(SCH)は、次に実行されるべきプログラムを決定する工程(S1A)と、
(b)前記次に実行されるべきプログラムが前記比較駆動モード(VM)で実行される必要がある場合に、残りの〔複数の〕実行ユニット(2)に、前記スケジューラ(SCH)を同様に呼び出すように促す工程(S6A)と、
(c)最後に呼び出されたスケジューラ(SCH)により決定された、実行されるべきプログラムが、前記比較駆動モード(VM)で実行される必要がある場合に、前記パフォーマンス駆動モード(PM)から前記比較駆動モード(VM)へと複数の実行ユニットを有する前記システム(1)を切り替える工程(S10A)であって、その際、前記最後に呼び出されたスケジューラ(SCH)により決定された、実行されるべきプログラムが、最も優先度が高いプログラムとして、全実行ユニット(2)によって、前記複数の実行ユニットを有するシステム(1)の前記比較モード(VM)で実行される工程(S10A)と、
を含む、複数の実行ユニットを有するシステム(1)を切り替える方法。 - 次に実行されるべきプログラムを決定するために前記スケジューラ(SCH)を最初に呼び出す実行ユニット(2)は、残りの全実行ユニット(2)も前記スケジューラ(SCH)の呼び出しによって次に実行されるべきプログラムを決定するまで待機し(S7A)、その後初めて、最後に呼び出されたスケジューラ(SCH)により決定された、最も優先度が高いプログラムに相当するプログラムが、前記比較駆動モード(VM)で実行される必要があるかどうかについて検査される(S9A)、請求項1に記載の方法。
- 前記最後に呼び出されたスケジューラ(SCH)により決定されたプログラムが、前記比較駆動モード(VM)で実行される必要がないことが決定される場合に(S11A)、前記スケジューラ(SCH)を最初に呼び出した前記実行ユニット(2)は、前記スケジューラ(SCH)を再呼び出しする(S1A)、請求項2に記載の方法。
- 前記呼び出されたスケジューラ(SCH)が、次に実行されるべきプログラムとして、比較駆動モード(VM)ではなくパフォーマンス駆動モード(PM)で実行される必要があるプログラムを決定する場合に(S2A)、実行されるべきプログラムが、切り替えなしに直接的に実行される(S4A)、請求項3に記載の方法。
- 次に実行されるべきプログラムを決定するために前記スケジューラ(SCH)を呼び出す(S1A)実行ユニット(2)は、決定されたプログラムが比較駆動モード(VM)で実行される必要がある場合に、前記決定されたプログラムの優先度と、他の〔複数の〕実行ユニット(2)で実行されている全プログラムの優先度とを比較する(S3A)、請求項1に記載の方法。
- 他の実行ユニット(2)で実行されているプログラムが、前記最初に呼び出されたスケジューラ(SCH)により決定された、次に実行されるべきプログラムよりも優先度が高い場合に、前記スケジューラ(SCH)を最初に呼び出した前記実行ユニット(2)は、アイドル駆動モード(IDLE)に移行し(S5A)、残りの複数の命令ユニット(2)がそれぞれ自身のプログラムを終了するまで待機する、請求項5に記載の方法。
- 次に実行されるべきプログラムを決定するために前記スケジューラ(SCH)を最初に呼び出す前記実行ユニット(2)は、次に実行されるべきプログラムが比較駆動モード(VM)で実行される必要がある場合には、他の〔複数の〕実行ユニットに要請信号を送信することによって(S6A)、前記他の〔複数の〕実行ユニット(2)に、前記スケジューラを同様に呼び出すように促す、請求項6に記載の方法。
- 前記要請信号は割込み信号によって形成される、請求項7に記載の方法。
- 前記複数の命令ユニット(2)はそれぞれ、プロセッサ、コプロセッサ、浮動小数点演算装置(FPU)、演算論理装置(ALU)、またはデジタル信号プロセッサ(DSP)によって形成される、請求項1に記載の方法。
- 実行ユニット(2)は、実行されたプログラムの終了後に前記スケジューラ(SCH)を呼び出す、請求項1に記載の方法。
- 少なくとも2つの実行ユニット(2)を有するシステム(1)であって、前記システム(1)は、複数の実行ユニット(2)が異なるプログラムを実行するパフォーマンス駆動モード(PM)と、複数の実行ユニット(2)が同じプログラムを実行する比較駆動モード(VM)との間で切り替え可能であり、
次に実行されるべきプログラムを決定するために実行ユニット(2)によって呼び出されるスケジューラ(SCH)であって、その際、最初に呼び出されたスケジューラ(SCH)により決定されたプログラムが前記比較駆動モード(VM)で実行される必要がある場合に、残りの複数の実行ユニット(2)が、前記スケジューラ(SCH)を同様に呼び出すように促される、スケジューラ(SCH)と、
最後に呼び出されたスケジューラ(SCH)により決定された、実行されるべきプログラムが前記比較駆動モード(VM)で実行される必要がある場合に、前記パフォーマンス駆動モード(PM)から前記比較駆動モード(VM)へと前記システム(1)を切り替える切り替えユニット(3)であって、その際、決定された実行されるべきプログラムが、最も優先度が高いプログラムとして、全実行ユニット(2)によって、前記システム(1)の切り替え後に前記比較駆動モード(VM)で実行される、切り替えユニット(3)と、
を備える、少なくとも2つの実行ユニット(2)を有するシステム(1)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006048173A DE102006048173A1 (de) | 2006-10-10 | 2006-10-10 | Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten |
DE102006048173.9 | 2006-10-10 | ||
PCT/EP2007/059900 WO2008043649A1 (de) | 2006-10-10 | 2007-09-19 | Verfahren zum umschalten eines systems mit mehreren ausführungseinheiten |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009541887A true JP2009541887A (ja) | 2009-11-26 |
JP4908587B2 JP4908587B2 (ja) | 2012-04-04 |
Family
ID=38925487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009517291A Expired - Fee Related JP4908587B2 (ja) | 2006-10-10 | 2007-09-19 | 複数の実行ユニットを有するシステムを切り替える方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20100281485A1 (ja) |
EP (1) | EP2084606B1 (ja) |
JP (1) | JP4908587B2 (ja) |
CN (1) | CN101523351A (ja) |
DE (1) | DE102006048173A1 (ja) |
WO (1) | WO2008043649A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101282139B1 (ko) | 2006-09-11 | 2013-07-04 | 삼성전자주식회사 | 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법 |
FR2955949A1 (fr) * | 2010-01-29 | 2011-08-05 | Peugeot Citroen Automobiles Sa | Calculateur electronique de controle embarque dans un vehicule |
CN103052924B (zh) * | 2011-01-31 | 2014-09-24 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
US9286105B1 (en) * | 2015-03-16 | 2016-03-15 | AO Kaspersky Lab | System and method for facilitating joint operation of multiple hypervisors in a computer system |
US9734006B2 (en) * | 2015-09-18 | 2017-08-15 | Nxp Usa, Inc. | System and method for error detection in a critical system |
DE102017206626A1 (de) | 2016-12-19 | 2018-07-05 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Steuern von Prozessen |
CN112416609A (zh) * | 2021-01-22 | 2021-02-26 | 南京芯驰半导体科技有限公司 | 双核模式的模式配置方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54139446A (en) * | 1978-04-21 | 1979-10-29 | Toshiba Corp | Process mode control unit |
JPH0973436A (ja) * | 1995-09-05 | 1997-03-18 | Mitsubishi Electric Corp | 多重化計算機における動作モード切替方式 |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
WO2005003962A2 (de) * | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790397A (en) * | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
JP2004240555A (ja) * | 2003-02-04 | 2004-08-26 | Fujitsu Ltd | バッテリ運用制御装置、バッテリ運用制御方法およびバッテリ運用制御プログラム |
DE10332700A1 (de) | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit |
-
2006
- 2006-10-10 DE DE102006048173A patent/DE102006048173A1/de not_active Withdrawn
-
2007
- 2007-09-19 CN CN200780037777.3A patent/CN101523351A/zh active Pending
- 2007-09-19 US US12/308,476 patent/US20100281485A1/en not_active Abandoned
- 2007-09-19 EP EP07820344A patent/EP2084606B1/de not_active Not-in-force
- 2007-09-19 WO PCT/EP2007/059900 patent/WO2008043649A1/de active Application Filing
- 2007-09-19 JP JP2009517291A patent/JP4908587B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54139446A (en) * | 1978-04-21 | 1979-10-29 | Toshiba Corp | Process mode control unit |
JPH0973436A (ja) * | 1995-09-05 | 1997-03-18 | Mitsubishi Electric Corp | 多重化計算機における動作モード切替方式 |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
WO2005003962A2 (de) * | 2003-06-24 | 2005-01-13 | Robert Bosch Gmbh | Verfahren zur umschaltung zwischen wenigstens zwei betriebsmodi einer prozessoreinheit sowie entsprechende prozessoreinheit |
JP2007507015A (ja) * | 2003-06-24 | 2007-03-22 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | プロセッサユニットの少なくとも2つの動作モードを切替る方法および対応するプロセッサユニット |
Also Published As
Publication number | Publication date |
---|---|
EP2084606B1 (de) | 2012-11-14 |
DE102006048173A1 (de) | 2008-04-17 |
CN101523351A (zh) | 2009-09-02 |
JP4908587B2 (ja) | 2012-04-04 |
US20100281485A1 (en) | 2010-11-04 |
EP2084606A1 (de) | 2009-08-05 |
WO2008043649A1 (de) | 2008-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4908587B2 (ja) | 複数の実行ユニットを有するシステムを切り替える方法 | |
JP5195913B2 (ja) | マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法 | |
WO2009133669A1 (ja) | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム | |
EP2423808B1 (en) | Arithmetic device | |
US7774585B2 (en) | Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation | |
US8756606B2 (en) | Safety controller and safety control method in which time partitions are scheduled according to a scheduling pattern | |
JP4996605B2 (ja) | コンピュータシステムの制御方法および制御装置 | |
US8457766B2 (en) | Safety controller and safety control method | |
US20120198464A1 (en) | Safety controller and safety control method | |
JP2009541636A (ja) | 内燃機関のエンジン制御部の機能を監視するための方法および装置 | |
CN102741818A (zh) | 故障诊断系统、用于车辆的电子控制单元、故障诊断方法 | |
EP2793133B1 (en) | Multi-core processor | |
US20080104602A1 (en) | Task switching control method and computer system | |
CN113986500A (zh) | 多任务系统中的任务确定性调度方法和任务诊断方法 | |
US8423681B2 (en) | Control apparatus for process input-output device | |
JP5906584B2 (ja) | 制御装置及び制御方法 | |
JP2008033577A (ja) | マルチタスクスケジューリング機能搭載装置及びプログラム | |
WO2005013130A1 (ja) | リアルタイム制御システム | |
US20100107169A1 (en) | Periodical task execution apparatus, periodical task execution method, and storage medium | |
JP2008204011A (ja) | マルチスレッドシステム、スレッド動作異常検知方法 | |
JPH02266457A (ja) | 処理の継続実行方法 | |
JP7221125B2 (ja) | 電子演算装置 | |
JP5299681B2 (ja) | プログラム検査方法 | |
JP2005107757A (ja) | プログラムの暴走検出方法およびプログラムの暴走検出装置 | |
JP2008077388A (ja) | マルチプロセッサ制御システム、方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111102 |
|
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: 20111213 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120112 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150120 Year of fee payment: 3 |
|
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 |