JP2014203230A - 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 - Google Patents
計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 Download PDFInfo
- Publication number
- JP2014203230A JP2014203230A JP2013078234A JP2013078234A JP2014203230A JP 2014203230 A JP2014203230 A JP 2014203230A JP 2013078234 A JP2013078234 A JP 2013078234A JP 2013078234 A JP2013078234 A JP 2013078234A JP 2014203230 A JP2014203230 A JP 2014203230A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- processing
- real
- time
- computer system
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
前記リアルタイムOSの実行状態を判定するOS状態判定処理手段と、
前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理手段を呼び出し、前記OS状態判定処理手段による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得するリアルタイムOSのシステムコール処理手段と、
CPUによる割込み処理終了後に割込み出口処理を実行する割込み出口処理手段と
を備える。
図2はこの発明の実施の形態1を示す計算機システムのハードウェア構成図である。
図2において、ハードウェア1は計算機システムを動作させるための物理ハードウェアであり、CPU2、メモリ3およびデバイス4を備える。デバイス4はCPU2とPCI(Peripheral Component Interconnect)、Express等のI/Oバス5もしくはメモリバスで接続された入出力装置であり、この実施の形態1ではハードウェア1に内蔵されているが、ハードウェア1の外部に備えられCPU2とPCI、Express等のI/Oバス5もしくはメモリバス接続されている構成でもよい。デバイス4からCPU2への割込み発生通知は、図2に示すように、PCI、ExpressのMessage Signal interrupt(MSI)を用いて割込み要因をメッセージとしてCPU2に通知するものや、図3に示すように、デバイス4と個別の割込み信号線6を用いてCPU2に通知するものがある。
図4において、リアルタイムOS7は計算機システムの基本ソフトウェアであり、優先度に従ってタスクを実行したり、割込み発生時にタスクの実行を中断して割込みハンドラを実行したりする。割込みハンドラ8は各入出力装置からの割込み発生時に実行する処理を記述した処理ルーチン、割込み出口処理9は割込みハンドラ8実行後に中断したタスクを再開したり、別のタスクに切替えたり(遅延ディスパッチ)する処理である。OS状態判定処理10はOS状態(割込みハンドラ実行中か否か、多重割込み実行中か否かを示す)を問合せの都度判定する処理である。なお、割込みハンドラ8はリアルタイムOSに含まれなくても良い。
まずシステムの初期化処理またはリアルタイムOSの初期化処理にて、もしくはシステムのプログラム生成時に、割込みハンドラを登録する(S101)。最近のCPU、特に小規模な組込みシステム向けCPUの中には割込み要因毎に割込みハンドラを直接呼び出す仕組みが実装されている。例えば、ARM Cortex-M3 CPUのNested Vectored Interrupt Controller(NVIC)や、Intel IA-32/Intel64アーキテクチャCPUがそれに該当する。割込み発生時には、これらの仕組みを用いて割込みハンドラを直接呼び出すようにCPUの設定を行っておく。S101では、例えば図6に示すようにCPU2が認識する割込みベクタ領域に対して、割込み要因毎に該当する割込みハンドラへのポインタを格納する。もしくは、リアルタイムOS7上で動作する初期化処理であればリアルタイムOS7が提供するシステムコール(μITRON3.0 仕様リアルタイムOSではdef_intシステムコール)を用いて割込みハンドラ8を登録する。割込みハンドラ8は割込み発生時にリアルタイムOS7を介さず直接呼び出されるため、interruptプリプロセッサ命令などコンパイラの提供機能を利用し、割込みハンドラ8実行時にレジスタの退避を行うようにしておく。
次にシステムの初期化処理またはリアルタイムOSの初期化処理が終わるとシステムのアプリケーションタスクが動作を開始する。そこで割込みが発生するとS101にて登録された割込みハンドラ8が割込み要因に応じて開始される(S103)。
次にシステムコール処理が終了し(S111)、割込みハンドラ8にリターンする。その後、リアルタイムOS7が提供するシステムコール(μITRON3.0仕様リアルタイムOSではret_intシステムコールやret_wupシステムコール)を用いて割込みハンドラを終了する(S112)。割込みハンドラを終了すると、システムコール処理を介して割込み出口処理9が呼び出される。
以上の実施の形態1では、割込みハンドラ実行中はそれ以外の割込みは禁止している場合において、割込み発生時の割込み入口処理を無くすことが可能であったが、割込みハンドラ実行中に優先度の高い別の割込みが発生した場合については考慮していなかった。この問題を解決するため、次に割込みハンドラ実行中により優先度の高い別の割込みハンドラの実行を可能とする実施の形態を示す。
図2、図3において、ハードウェア1、CPU2、メモリ3、デバイス4、I/Oバス5、割込み信号線6は実施の形態1と同様であるため説明を省略する。
図8はこの発明の実施の形態2を示す計算機システムのソフトウェア構成図である。
図8において、リアルタイムOS7、割込みハンドラ8、割込み出口処理9、OS状態判定処理10は概略実施の形態1と同様であるため説明を省略する。但し、OS状態判定処理10は割込みハンドラ8だけではなく、割込み出口処理9とも信号のやり取りをする。なお、実施の形態1同様、割込みハンドラ8はリアルタイムOSに含まれなくても良い。
まず、図9において、S101〜S103は図5に示す実施の形態1と同様であるため説明を省略する。
次に割込みハンドラ実行中の割込みより高い優先度の割込みを許可するため、割込みハンドラ8が割込み許可システムコールを発行する(S121)と、リアルタイムOS7が割込み許可システムコール処理を開始する(S122)。μITRON3.0 仕様リアルタイムOSではunl_cpuシステムコールに相当する。
次にS106〜S110は図5に示す実施の形態1と同様であるため説明を省略する。
次にOS状態判定処理の呼び出し(S106)の結果、割込み実行中であることが判明し、かつ既に割込み許可状態でないか判定を行い(S123)、割込み実行中かつ既に割込み許可状態でない場合には、リアルタイムOSの内部変数として保持している割込みネストカウンタをインクリメント(+1)し(S124)、割込みを許可する(S125)。
次に割込み許可システムコール処理を終了(S126)し、呼び出し元の割込みハンドラ8に処理を戻す。
S125で割込みが許可されたため、別の優先度の高い割込みが発生し、CPU2によって別の割込みハンドラが開始される(S131)。その後、当該処理を実行した後、割込みハンドラを終了したものとする(S132)。
次に割込みハンドラ終了に伴い、割込み出口処理9が実行され、割込みネストカウントが1以上か判定し(S141)、1以上であれば中断していた割込みハンドラを再開する(S142)。割込みネストカウントがゼロであれば、実施の形態1と同様にS113〜S115の処理を実行する。
次にOS状態判定処理の呼び出し(S106)の結果、割込み実行中であることが判明し、かつ既に割込み禁止状態でないか判定を行い(S153)、割込み実行中かつ既に割込み禁止状態でない場合には、リアルタイムOS7の内部変数として保持している割込みネストカウンタをデクリメント(−1)し(S154)、割込みを禁止する(S155)。
次に割込み禁止システムコール処理を終了(S156)し、呼び出し元の割込みハンドラ8に処理を戻す。
次のS112の処理は図5に示す実施の形態1と同様であるため説明を省略する。
また、現在処理中の割込み優先度レベルを示すレジスタをCPUハードウェアが備えている場合は(リアルタイムOSの移植性が下がるが)、割込みネストカウンタの代わりに、そのレジスタの値が初期値と同一かどうかを判定することにより、割込みがネストして実行されているかどうかを判断しても良い。
なお、言うまでもなく、上述の実施の形態1および実施の形態2の処理機能の全てあるいは一部は、計算機システムのソフトウェアとしてプログラム実行されることで達成できるものである。
Claims (5)
- 割込み要因毎に割込みハンドラの直接呼び出し機能を備えたCPUに、リアルタイムオペレーティングシステム(OS:Operating System)が搭載され、割込み処理を実行可能とする計算機システムにおいて、
前記リアルタイムOSの実行状態を判定するOS状態判定処理手段と、
前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理手段を呼び出し、前記OS状態判定処理手段による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得するリアルタイムOSのシステムコール処理手段と、
CPUによる割込み処理終了後に割込み出口処理を実行する割込み出口処理手段と
を備えたことを特徴とする計算機システム。 - 前記システムコール処理手段は、割込み処理中により優先度の高い別な割込み処理が発生したとき、前記リアルタイムOSの内部変数として保持される割込みネストカウンタをインクリメントして別な割込み処理の実行を許可し、
前記割込み出口処理手段は、前記CPUによる優先度の高い別な割込み処理終了後に割込み出口処理を実行し、かつ、前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理手段を呼び出し、前記OS状態判定処理手段による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得することを特徴とする請求項1記載の計算機システム。 - 割込み要因毎に割込みハンドラの直接呼び出し機能を備えたCPU(Central Processing Unit)に、リアルタイムオペレーティングシステム(OS:Operating System)が搭載された計算機システムに割込み処理を実行するための前記計算機システムの割込み処理プログラムにおいて、
前記リアルタイムOSの実行状態を判定するOS状態判定処理手段、
前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理手段を呼び出し、前記OS状態判定処理手段による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得するリアルタイムOSのシステムコール処理手段
としての機能をさらに計算機システムに実行させるための計算機システムの割込み処理プログラム。 - 前記システムコール処理手段は、割込み処理中により優先度の高い別な割込み処理が発生したとき、前記リアルタイムOSの内部変数として保持される割込みネストカウンタをインクリメントして別な割込み処理の実行を許可する機能、
前記割込み出口処理手段は、前記CPUによる優先度の高い別な割込み処理終了後に割込み出口処理を実行し、かつ、前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理手段を呼び出し、前記OS状態判定処理手段による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得する機能を計算機システムに追加実行させることを特徴とする請求項3記載の計算機システムの割込み処理プログラム。 - 割込み要因毎に割込みハンドラの直接呼び出し機能を備えたCPU(Central Processing Unit)に、リアルタイムオペレーティングシステム(OS:Operating System)が搭載された計算機システムにより割込み処理を実行する前記計算機システムの割込み処理方法において、
前記リアルタイムOSの実行状態を判定するOS状態判定処理工程と、
前記リアルタイムOSの実行状態を取得する必要がある場合、前記OS状態判定処理工程による割込みハンドラの割込み処理中か、タスク処理中かの判定結果を取得するリアルタイムOSのシステムコール処理工程
を備えたことを特徴とする計算機システムの割込み処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013078234A JP6066807B2 (ja) | 2013-04-04 | 2013-04-04 | 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013078234A JP6066807B2 (ja) | 2013-04-04 | 2013-04-04 | 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014203230A true JP2014203230A (ja) | 2014-10-27 |
JP6066807B2 JP6066807B2 (ja) | 2017-01-25 |
Family
ID=52353626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013078234A Expired - Fee Related JP6066807B2 (ja) | 2013-04-04 | 2013-04-04 | 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6066807B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017104014A1 (ja) * | 2015-12-16 | 2017-06-22 | 三菱電機株式会社 | 計算機システム、タスク処理方法及びタスク処理プログラム |
WO2021132905A1 (ko) * | 2019-12-23 | 2021-07-01 | 주식회사 텔레칩스 | 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024034A (ja) * | 2000-05-26 | 2002-01-25 | Texas Instr Inc <Ti> | マイクロプロセッサ割込み制御装置 |
JP2005050208A (ja) * | 2003-07-30 | 2005-02-24 | Matsushita Electric Ind Co Ltd | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 |
JP2005196459A (ja) * | 2004-01-07 | 2005-07-21 | Fujitsu Ltd | 割込み制御プログラムおよびその記録媒体ならびに割込み制御方法 |
-
2013
- 2013-04-04 JP JP2013078234A patent/JP6066807B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024034A (ja) * | 2000-05-26 | 2002-01-25 | Texas Instr Inc <Ti> | マイクロプロセッサ割込み制御装置 |
JP2005050208A (ja) * | 2003-07-30 | 2005-02-24 | Matsushita Electric Ind Co Ltd | マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置 |
JP2005196459A (ja) * | 2004-01-07 | 2005-07-21 | Fujitsu Ltd | 割込み制御プログラムおよびその記録媒体ならびに割込み制御方法 |
Non-Patent Citations (2)
Title |
---|
JPN6016034609; 平井幸広: '業界標準Cortex-M3で組み込みプログラミングを体験しよう! ARMコア搭載FM3マイコンではじ' Interface 第38巻 第6号, 20120601, pp.106-114, CQ出版株式会社 * |
JPN6016034610; 岸田昌巳: 'オープンソースのITRON仕様OS TOPPERSで学ぶRTOS技術 第8回' Interface 第30巻 第8号, 20040801, pp.118-125, CQ出版株式会社 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017104014A1 (ja) * | 2015-12-16 | 2017-06-22 | 三菱電機株式会社 | 計算機システム、タスク処理方法及びタスク処理プログラム |
WO2021132905A1 (ko) * | 2019-12-23 | 2021-07-01 | 주식회사 텔레칩스 | 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법 |
JP2023510130A (ja) * | 2019-12-23 | 2023-03-13 | テレチップス・インコーポレイテッド | マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法 |
JP7444993B2 (ja) | 2019-12-23 | 2024-03-06 | テレチップス・インコーポレイテッド | マルチマスターを支援するグラフィック処理装置を共有するシステムオンチップおよびグラフィック処理装置の動作方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6066807B2 (ja) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160019168A1 (en) | On-Demand Shareability Conversion In A Heterogeneous Shared Virtual Memory | |
JP5047542B2 (ja) | マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム) | |
EP3306470B1 (en) | Method and apparatus for executing non-maskable interrupt | |
JP5673672B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP2015079542A (ja) | 割り込み分配スキーム | |
US8364862B2 (en) | Delegating a poll operation to another device | |
KR20120036301A (ko) | 프로그램가능 예외 처리 지연 | |
US10489188B2 (en) | Method for reducing interrupt latency in embedded systems | |
US7366814B2 (en) | Heterogeneous multiprocessor system and OS configuration method thereof | |
JP2017527902A (ja) | 例外からの復帰時のマスク不可割り込みの早期有効化の回避 | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
JP2016095855A (ja) | マルチスレッドプロセッサとの低待ち時間2レベル割込みコントローラインターフェース | |
US7480812B2 (en) | Microprocessor | |
JP6066807B2 (ja) | 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 | |
US11086658B2 (en) | System performance enhancement with SMI on multi-core systems | |
TW202008159A (zh) | 處理中斷優先級的電路系統 | |
JP6354333B2 (ja) | 情報処理装置及びタイマ設定方法 | |
US9778950B2 (en) | Throttling circuitry | |
JP2004127163A (ja) | マルチプロセッサシステム | |
JP2011070290A (ja) | データプロセッサ | |
JP5644197B2 (ja) | コンピュータシステムおよび割込要求処理方法 | |
JP2014157392A (ja) | 半導体装置及びデータ処理システム | |
JP2016091076A (ja) | 情報処理装置 | |
CN117435322A (zh) | 基于操作系统的虚拟中断处理方法、装置及电子设备 | |
CN108681519B (zh) | 用于从多线程发送请求至加速器的机制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151204 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161104 |
|
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: 20161122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6066807 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |