[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2005092780A - リアルタイムプロセッサシステム及び制御方法 - Google Patents

リアルタイムプロセッサシステム及び制御方法 Download PDF

Info

Publication number
JP2005092780A
JP2005092780A JP2003328768A JP2003328768A JP2005092780A JP 2005092780 A JP2005092780 A JP 2005092780A JP 2003328768 A JP2003328768 A JP 2003328768A JP 2003328768 A JP2003328768 A JP 2003328768A JP 2005092780 A JP2005092780 A JP 2005092780A
Authority
JP
Japan
Prior art keywords
priority
bus
access
interrupt
time
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.)
Withdrawn
Application number
JP2003328768A
Other languages
English (en)
Inventor
Ryuji Fuchigami
竜司 渕上
Yoichi Nishida
要一 西田
Tomonori Yonezawa
友紀 米澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003328768A priority Critical patent/JP2005092780A/ja
Priority to GB0420688A priority patent/GB2406671B/en
Priority to US10/942,893 priority patent/US20050066093A1/en
Priority to CNA2004100786951A priority patent/CN1598797A/zh
Publication of JP2005092780A publication Critical patent/JP2005092780A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

【課題】 複数のバスマスタがバスを調停して利用する環境において、多重割込に対しても、割込処理以外での処理内容に対しても、バス調停優先度を適応的に制御出来る、リアルタイムプロセッサシステム及び制御方法を提供する。
【解決手段】 リアルタイムプロセッサシステムは、バスアービタ100、プロセッサと割込処理部とを有する複数の演算処理ユニット110、120、DMAコントローラ130、複数の優先度レジスタ141〜143、メモリ170、及び、SCI180を備え、バスアービタ100は、優先度比較部150、及び、バス割当決定部160を有する。それぞれの優先度レジスタには、それぞれの演算処理ユニットのI/Oアクセス優先度値が格納されており、それを比較して、I/Oアクセス権が決定される。優先度レジスタの設定を変えることにより、適応的に多重割り込みが処理される。
【選択図】 図1

Description

本発明は、複数のバスマスタがバスを調停して利用する環境における、リアルタイムプロセッサシステム及び制御方法に関する。
従来、バスマスタとなるデバイスとして、1つのプロセッサしかない環境において、ソフトウェアのリアルタイム保証を行う場合、処理単位で優先度を割り当てることと、処理を起動する順序を適切にスケジューリングすることとによって時間保証を行っている。
例えば、非特許文献1は、各処理の優先度を固定する場合は、処理の実行時間が短いものから順に高い優先度を割り当てる方式が、各処理の開始要求から完了までの最大遅れ時間を最小にする点で、最適であることを開示している。(非特許文献1の109−146ページ参照。)
同じく、非特許文献1は、各処理の優先度を動的に変更出来る場合は、新しい処理要求が発生するごとに優先度を再決定し、各処理の完了までに許容されるデッドライン時間の近いものから順に高い優先度を与える方法が、各処理の開始要求から完了までの最大遅れ時間を最小にする点で、最適であることを開示している。(非特許文献1の149−178ページ参照。)
さらに、特許文献1は、マルチプロセッサ構成における割り込み処理のみに適用出来る高速化手法として、割り込みがどのプロセッサに発生したかという情報をバスアービタに伝達し、割り込みが発生したプロセッサのバス調停優先度を一時的に上昇させる手法を開示している。
図14は、従来の割込処理を行うシステムのブロック図である。このシステムは、割込処理回路1401、プロセッサ1402、1403、バスアービタ1404、メモリ1407、及び、SCI(シリアルコミニケーションインターフェース)1408を備え、バスアービタ1404は、固定優先度設定部1405とバス割当決定部1406を有する。
割込処理回路1401は、外部からの割込要求に対して割り込み条件が成立すると、割込要求の要因に応じて、プロセッサ1402か、プロセッサ1403のどちらかに割り込みを発生させる。また、同時に、割込処理回路1401は、バスアービタ1404に対して、割り込みを発生させたプロセッサのI/Oアクセス(入出力装置へのアクセス)優先度を固定優先にするように要求する。
バスアービタ1404は、固定優先度設定部1405により指定されたプロセッサを、固定優先に設定する。すると、バス割当決定部1406は、割り込みの発生したプロセッサに優先的にI/Oアクセス権を割り当てる。このようにして、割込要求に対する処理を優先度を上げて実行する。
上述した非特許文献1が開示しているシングルプロセッサのソフトウェアスケジューリング理論を、複数のプロセッサやデバイスで共用されるI/Oデバイスが存在するハードウェア環境に適用する場合は、I/Oデバイス(入出力装置)などのハードウェアリソースに対するアクセス調停における優先度の決定方法にも当該理論を適用する必要がある。
しかしながら、プログラム自体が共有I/Oデバイスの一つであるメモリに格納されている場合など、プログラムの実行そのものがI/Oアクセスを必要とする場合は、割り込み処理用のプログラム実行にI/Oアクセスを必要とするため、I/Oアクセス優先度を変更するためのプログラム実行に著しい遅延が生じる。
そこで、特許文献1が開示している技術との組み合わせが、容易に類推可能である。図14に示したシステム構成では、バスアービタ1404に伝達される情報は、割り込みがどのプロセッサに発生したかという情報のみで、しかも、情報の伝達は、割り込み発生時のみ実施されていた。そのため、I/Oアクセス優先度を上昇させるといったI/Oアクセス優先度の変更は、1つのバスマスクに対してしか行えない。したがって、先に発生した割り込み処理中に別の割り込みが発生した場合(多重割込の場合)、後から発生した割り込み処理は、先に発生した割り込み処理が完了するまでの間は、低いI/Oアクセス優先度のまま動作してしまい、処理が大幅に遅延する。
また、図14に示したシステム構成では、バスアービタ1404に伝達される情報は、割り込みがどのプロセッサに発生したかというイベントによって通知する必要があるため、割り込み発生状況をシステム内の1箇所で管理する必要がある。したがって、プロセッサ毎に、別々の割り込みコントローラを配置することが出来ない。
さらに、図14に示したシステム構成では、割り込み発生時の一時的なI/Oアクセス優先度の上昇しか行えないため、特許文献1が開示している技術と組み合わせる場合には、リアルタイム処理をソフトウェアの割込処理部分に集約する必要がある。したがって、割込処理以外での処理内容に応じたバス調停優先度の適応的な制御には、プロセッサ間の通信により協調動作を行わせる機構が別途必要となる。
特開2001−125880号公報 Giorgio C. Buttazzo 著、「HARD REAL一TIME COMPUTING SYSTEM Predictable Scheduling Algorithms and Applicatios」 Fourth Printing 2002、Kluwer Academic Publishers pp.109−146、及びpp.149−178 特開平7−6095号公報
そこで本発明は、複数のバスマスタがバスを調停して利用する環境において、バスマスタ毎に別々の割込処理手段を持ち、多重割込に対しても、割込処理以外の処理に対しても、バス調停優先度を適応的に制御出来る、リアルタイムプロセッサシステム及び制御方法を提供することを目的とする。
請求項1記載のリアルタイムプロセッサシステムは、バスアービタと、演算処理ユニットであって、プロセッサと割込処理部とを有し、バスアービタに接続する、少なくとも2つの演算処理ユニットと、プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、バスアービタは、優先度レジスタに格納されている優先度値を比較する優先度比較部と、優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する。
この構成によれば、プロセッサごとに優先度レジスタを設け、バスマスタごとの優先度を比較してアクセス権を決定することが出来るので、あるプロセッサでの割り込み処理中に他のプロセッサに割り込みが発生した場合でも、後から割り込みが発生したプロセッサの優先度の変化を、即座に、バス調停のアクセス権判定に反映させることが出来る。
また、割込処理部をプロセッサ毎に別々に動作させることが可能となり、多重割込処理が簡単となる。
さらに、プロセッサに対応する優先度レジスタの内容を変更するだけで、他のバスマスタとのバス調停のアクセス権判定に変化をもたらすことが出来るので、プロセッサは、他のバスマスタと同期処理を行うことなく、バスマスタごとのI/Oアクセス頻度の比率を調整する事が可能となる。
請求項2記載のリアルタイムプロセッサシステムは、バスアービタと、演算処理ユニットであって、プロセッサと割込処理部とを有し、バスアービタに接続する、少なくとも1つの演算処理ユニットと、プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、バスアービタは、複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する。
この構成によれば、例えば、メモリ装置やSCI(シリアルコミュニケーションインタフェース)などのI/Oデバイスと、バスアービタに接続し、I/Oデバイスへの直接アクセスを実施するDMAコントローラなどのバスアクセス発生ユニットとを共用した、リアルタイムプロセッサシステムを提供出来る。すなわち、I/Oデバイスと、バスアクセス発生ユニットとを共用しても、ソフトウェアによるリアルタイム処理と、ソフトウェアによらない非リアルタイム処理との協調を確保して、時間保証が可能なリアルタイムプロセッサシステムを提供出来る。
請求項3記載のリアルタイムプロセッサシステムは、バスアービタと、演算処理ユニットであって、プロセッサと割込処理部とを有し、バスアービタに接続する、少なくとも1つの演算処理ユニットと、プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を、すでに優先度レジスタに格納されているI/Oアクセス優先度値と比較して、優先度が高い場合にのみ優先度レジスタに格納する、比較格納手段と、バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、バスアービタは、複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する。
この構成によれば、割込処理部が優先度レジスタに優先度を設定する時に、すでに格納されている優先度と比較し、優先度が上昇する場合のみ新しい優先度を格納することが出来る。従って、割り込み以外の処理に対して、割込処理のI/Oアクセス優先度よりも高い優先度値を設定していても、割り込みによってI/Oアクセス優先度が下がることがないため、プロセッサが処理する通常処理を、割込処理よりも高い優先度の下で実行することが可能となる。
請求項4記載のリアルタイムプロセッサシステムは、バスアービタと、演算処理ユニットであって、プロセッサと割込処理部とを有し、バスアービタに接続する、少なくとも1つの演算処理ユニットと、プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、優先度レジスタに格納されているI/Oアクセス優先度値を、時間経過に共に優先度の高い値に変更する、優先度変更手段と、バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、バスアービタは、複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する。
この構成によれば、優先度レジスタに時間経過と共に優先度を上昇させる手段を備えることが出来るので、高優先度の処理が密集して発生する可能性がある環境において、本来優先度の低い処理が、連続して発生する高優先度処理のために、いつまでもI/Oアクセス権を取得できないといった状態を回避することが出来る。
請求項5記載のリアルタイムプロセッサシステムでは、演算処理ユニットは、割り込み要因によって異なるI/Oアクセス優先度値を優先度レジスタに格納する格納手段を有する。
この構成によれば、割込処理部に付随して、割り込み要因に対応する優先度設定を行う手段を設けることが出来るので、割り込み要因別にI/Oアクセス優先度を変えたい場合に、ソフトウェアでの要因判定が不要となり、処理をより高速に実行出来る。
請求項6記載のリアルタイムプロセツサシステムでは、格納手段は、プロセッサのプログラム制御によるI/Oアクセス優先度値と、割込処理部の割り込み要因によって異なるI/Oアクセス優先度値とを、予め格納する優先度設定レジスタ群を有し、新たな割り込みの要求に対して、優先度設定レジスタ群は、上記割り込みの要因に対応する優先度値が、すでに実行中の割込処理の優先度値よりも優先度が高い場合にのみ、上記割り込みの要因に対応する優先度値を優先度レジスタに格納する。
この構成によれば、割り込み要因別にI/Oアクセス優先度を変えたい場合に、レジスタ処理によって、割込処理を高速に実行することが出来る。
請求項7記載の制御方法は、請求項1から6記載のリアルタイムプロセッサシステムにおいて動作する制御方法であって、次に実行するタスクを検索するタスク検索ステップと、タスク検索ステップで検出されたタスクに対応するI/Oアクセス優先度を、実行中のプロセッサに対応する優先度レジスタに格納するステップと、タスク検索ステップで検出されたタスクに実行を切り替えるステップとを含む。
この方式によれば、オペレーティングシステムの実行タスク決定とタスク切り替えの間で優先度レジスタの設定を行うことが出来るので、アプリケーションソフトウェアは、起動時の優先度のみ設定すればよく、ソフトウェア制御をオペレーティングシステムに集約することが出来る。その結果、オペレーティングシステム上で動作する、より移植性の高いアプリケーションソフトウェアのプログラム設計が可能となる。
請求項8記載の制御方法は、請求項4記載のリアルタイムプロセッサシステムにおいて動作する制御方法であって、次に実行するタスクを検索するタスク検索ステップと、タスク検索ステップで検出されたタスクに対応するデッドライン時刻と現在時刻の差分を求める残時間算出ステップと、残時間算出ステップで求めた残時間に対応するI/Oアクセス優先度を、実行中のプロセッサに対応する優先度レジスタに格納するステップと、タスク検索ステップで検出されたタスクに実行を切り替えるステップとを含む。
この方式によれば、オペレーティングシステムの実行タスク決定とタスク切り替えの間で、処理完了までに許容される残時間の算出と、優先度レジスタの設定を行うことが出来るので、アプリケーションソフトウェアは、起動時に処理完了までのデッドライン時刻の設定のみ行えばよく、ソフトウェア制御をオペレーティングシステムに集約することが出来る。その結果、リアルタイムOS上で動作するより移植性の高いアプリケーションソフトウェアのプログラム設計が可能となる。
本発明によれば、複数のバスマスタがバスを調停して利用する環境において、バスマスタ毎に別々の割込処理手段を持ち、多重割込に対しても、割込処理以外での処理内容に対しても、バス調停優先度を適応的に制御出来る、リアルタイムプロセッサシステム及び制御方法を提供することが出来る。
次に、図面を参照しながら、本発明の実施の形態を説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるリアルタイムプロセッサシステムのブロック図である。
本形態のリアルタイムプロセッサシステムは、バスアービタ100、第1演算処理ユニット110、第2演算処理ユニット120、DMAコントローラ130、第1優先度レジスタ141、第2優先度レジスタ142、第3優先度レジスタ143、メモリ170、及び、SCI(シリアルコミュニケーションインターフェース)180を備え、第1演算処理ユニット110は、割込処理部111とプロセッサ112とを有し、第2演算処理ユニット120は、割込処理部121とプロセッサ122とを有し、バスアービタ100は、優先度比較部150とバス割当決定部160とを有する。第1優先度レジスタ141は、第1演算処理ユニット110のI/Oアクセス優先度値を格納し、第2優先度レジスタ142は、第2演算処理ユニット120のI/Oアクセス優先度値を格納する。第3優先度レジスタ143は、DMAコントローラ130のDMA処理優先度値として、固定値を格納する。
DMAコントローラ130は、バスアクセス発生ユニットに相当し、メモリ170とSCI180とは、I/Oデバイスに相当する。
次に、図1を参照して、本形態のリアルタイムプロセッサシステムの動作を説明する。
本形態のリアルタイムプロセッサシステムでは、優先度値が小さいほど、I/Oアクセス優先度は、高いと定義している。
本形態のリアルタイムプロセッサシステムでは、プロセッサ112で実行される通常の処理の優先度を「5」、プロセッサ112で実行される割り込み処理の優先度を「2」、プロセッサ122で実行される通常の処理の優先度を「4」、プロセッサ122で実行される割り込み処理の優先度を「1」とし、第3優先度レジスタ143に固定的に設定されるDMAコントローラ130の処理の優先度を「3」とし、値の小さなものほど優先度が高いものとする。
本形態のリアルタイムプロセッサシステムが稼動開始すると、第1優先度レジスタ141には、プロセッサ112のI/Oアクセスに必要な優先度値として「5」が、プロセッサ112上で動作するプログラムによって書き込まれ、第2優先度レジスタ142には、プロセッサ122のI/Oアクセスに必要な優先度値として「4」が、プロセッサ122上で動作するプログラムによって書き込まれる。第3優先度レジスタ143には、優先度値として「3」が、固定的に設定されている。
バスアービタ100では、バスマスタとなるデバイス(図1に示す本形態では、プロセッサ112、プロセッサ122、及び、DMAコントローラ130)からI/Oアクセスの要求を受けた際に、優先度比較部150は、第1優先度レジスタ141、第2優先度レジスタ142、及び、第3優先度レジスタ143に格納されている優先度値を比較して、もっとも優先度の高い要求を決定する。バス割当決定部160は、その結果に基づいて、優先度の高い要求に、優先的にI/Oアクセス権を与える。従って、稼動開始時には、最も優先度の高い「3」の値を持つDMAコントローラ130が、最優先でI/Oアクセスを行える状態になる。
次に、稼動中、割込処理部111において割込入力113に対して割り込み条件が成立すると、割込処理部111は、プロセッサ112のプログラム実行を割り込み処理先に分岐させ、第1優先度レジスタ141に割り込み処理用のI/Oアクセス優先度値として「2」を書き込む。この段階で、プロセッサ122が、最も優先的にI/Oアクセスを行える状態になり、割り込み処理を高速に実行出来るようになる。
続いて、割込処理部121において割込入力123に対して割り込み条件が成立すると、割込処理部121は、プロセッサ122のプログラム実行を割り込み処理先に分岐させ、第2優先度レジスタ142に割り込み処理用のI/Oアクセス優先度値として「1」を書き込む。この段階では、プロセッサ112は、まだ割り込み処理を完了していない。しかし、プロセッサ122がもっとも優先的にI/Oアクセスを行える状態になるため、プロセッサ112の割り込み処理よりも優先度の高いプロセッサ122の割り込み処理が遅延無く実行可能となる。
プロセッサ122の割り込み処理が完了すると、プロセッサ122の割り込み処理を行うプログラムは、通常のプログラムの優先度値として「4」を第2優先度レジスタ142に書き込んで、割り込みから復帰する。この段階で再び、プロセッサ112がもっとも優先的にI/Oアクセスを行える伏態になり、残りの割り込み処理を高速に実行する。
プロセッサ112の割り込み処理が完了すると、プロセッサ112の割り込み処理を行うプログラムは、通常のプログラムの優先度値として「5」を第1優先度レジスタ141に書き込んで、割り込みから復帰する。
この段階で再び、DMAコントローラ130が、最も優先的にI/Oアクセスを行える状態に戻る。
図7は、本発明の実施の形態1におけるリアルタイムプロセッサシステムのタイムチャートである。以下に、図1と図7とを参照して、上述した割込処理に伴い、バスアービタ100が行うI/Oアクセスのスケジューリングの一例を示す。
図7の横軸は、時間であり、優先度値701、702、703は、それぞれ、第1優先度レジスタ141、第2優先度レジスタ142、第3優先度レジスタ143に格納されている優先度値である。斜線を施した領域は、各時間において、優先度の最も高い処理が、割込処理、又は、DMA処理として、行われていることを表す。
時間t0では、DMA処理710が実行され、時間t1では、第1演算処理ユニット110の割込処理711が実行され、時間t2とt3では、第2演算処理ユニット120の割込処理712が実行され、時間t4では、第1演算処理ユニット110の残りの割込処理713が実行され、時間t5〜t7では、DMA処理714が実行される。
また、割り込みが発生しない場合でも、例えば、プロセッサ122で処理するデータ量が減少した場合は、プロセッサ122は、第2優先度レジスタ142に優先度値「6」を書き込むことで、プロセッサ112に対して、より多くI/Oアクセス権がスケジューリングされるようすることが出来る。データ量が再び増加してきた場合は、プロセッサ122は、第2優先度レジスタ142に優先度値「4」を書き込むことで、I/Oアクセス権のスケジューリングを起動時と同じ状態に戻せる。
このようにして、バスアービタ100は、バスマスタとなるデバイスに対して、I/Oアクセスのスケジューリングを行う。
なお、本形態のリアルタイムプロセッサシステムにおいて、多重割込処理は、プロセッサ112、又は、プロセッサ122上のプログラムによって、実行する。
図8に、第1演算処理ユニット110において、多重割り込みが発生した場合の一例を示す。図8は、本発明の実施の形態1におけるリアルタイムプロセッサシステムにおいて、多重割込処理を行う時のタイムチャートである。
図1と図8を参照して説明する。時間t0では、第1優先度レジスタ141の優先度値801は、「4」であり、通常処理810が実行されている。
時間t1において、割込処理部111は、割込処理Bを実行するための割込入力113を受けると、第1優先度レジスタ141に優先度値「1」を書き込む。プロセッサ112は、割込処理Bに対する割込入力113の要因を判定して、第1優先度レジスタ141に優先度値「3」を書き込む。バスアービタ100の調停の結果、時間t2において、割込処理B811が実行される。
割込処理B811の実行中に、時間t3において、割込処理部111は、新たな割込処理Aを実行する割込入力113を受け、第1優先度レジスタ141に優先度値「1」を書き込む。プロセッサ112は、割込処理Aに対する割込入力113の要因を判定して、第1優先度レジスタ141に優先度値「2」を書き込む。バスアービタ100の調停の結果、時間t4において、割込処理A812が実行される。
割込処理A812が終了すると、プロセッサ112は、中断している割込処理Aの優先度値「3」を第1優先度レジスタ141に書き込む。バスアービタ100の調停の結果、時間t5において、割込処理A813が再開して継続実行される。
割込処理A813が終了すると、プロセッサ112は、中断している通常処理の優先度値「4」を第1優先度レジスタ141に書き込む。バスアービタ100の調停の結果、時間t6〜t8において、通常処理814が継続して実行される。
上述した本形態の説明での優先度値は、一例であって、他の任意の値を設定しても良い。
(実施の形態2)
図2は、本発明の実施の形態2におけるリアルタイムプロセッサシステムのブロック図である。図1と同様の構成要素については、同一の符号を付すことにより、説明を省略する。
図2に示す本形態のリアルタイムプロセッサシステムは、バスアービタ100第1演算処理ユニット210、第2演算処理ユニット220、DMAコントローラ130、第1優先度レジスタ141、第2優先度レジスタ142、第3優先度レジスタ143、メモリ170、及び、SCI180を備える。第1演算処理ユニット210は、割込処理部111とプロセッサ112と優先度設定レジスタ群215とを有する。第2演算処理ユニット220は、割込処理部121とプロセッサ122と優先度設定レジスタ群225とを有する。
DMAコントローラ130は、バスアクセス発生ユニットに相当し、メモリ170とSCI180とは、I/Oデバイスに相当する。
本形態のリアルタイムプロセッサシステムでは、優先度値が小さいほど、I/Oアクセス優先度は、高いと定義している。
優先度設定レジスタ群215と優先度設定レジスタ群225とは、それぞれ複数個のレジスタを有し、割り込み処理時のI/Oアクセス優先度値を、割込要因に対応して、複数個予め設定しておくことが出来る。
プロセッサ112上で実行されるプログラムは、優先度設定レジスタ群215内のレジスタにI/Oアクセス優先度値を書き込むことが出来る。
プロセッサ122上で実行されるプログラムは、優先度設定レジスタ群225内のレジスタにI/Oアクセス優先度値を書き込むことが出来る。
割込処理部111において、割込入力113に対して割り込み条件が成立すると、割込処理部111は、優先度設定レジスタ群215から、割込入力113の要因に対応するI/Oアクセス優先度値を読み出し、第1優先度レジスタ141に書き込む。プロセッサ112が既に割り込み処理中であっても、新たに発生した割り込み要因に対応するl/Oアクセス優先度値が、既に処理中の割り込み要因に対応するI/Oアクセス優先度値より高い優先度の場合は、割込処理部111は、新しい割り込み要因に対応するI/Oアクセス優先度値を、優先度設定レジスタ群215から読み出し、第1優先度レジスタ141に書き込み、プロセッサ112に多重割り込みを発行する。
第2演算処理ユニット220における割込処理、及び、多重割込処理は、第1演算処理ユニット210における場合と同様である。
図9は、本発明の実施の形態2におけるリアルタイムプロセッサシステムのタイムチャートである。同図は、上述した多重割込処理に伴い、バスアービタ100が行うI/Oアクセスのスケジューリングの一例を示している。この場合は、第1演算処理ユニット210のみに着目した例を示している。
図9の横軸は、時間であり、優先度値901は、第1優先度レジスタ141に格納される各時間の優先度値を表している。割込処理Aは、優先度値「2」を有し、割込処理Bは、優先度値「3」を有し、通常処理は、優先度値「4」を有していると仮定する。これらの優先度値は、図2に示す優先度設定レジスタ群215の該当するレジスタに予め格納されている。
以下に、図2と図9とを参照して、本形態のリアルタイムプロセッサシステムの動作の概要を説明する。
時間t0では、通常処理910が行われている。
時間t1において、割込処理部111に対して割込処理Bの割込要求がなされ、割込処理部111は、優先度設定レジスタ群215のレジスタの中、上記割込の要因に該当するレジスタから、優先度値「3」を読み出し、第1優先度レジスタ141に書き込む。同時に、割込処理B911が実行される。
時間t2において、割込処理部111に対して、新たな割込処理Aの割込要求がなされる。割込処理部111は、優先度設定レジスタ群215から、割込処理Aの優先度値「2」を読み出し、実行中の割込処理Bの優先度値「3」と比較して、割込処理Aの優先度が高いことを確認して、割込処理Aの優先度値「2」を第1優先度レジスタ141に書き込む。すると、割込処理B911は中断され、新たな割込処理A912が実行される。
割込処理A912が終了すると、時間t3において、プロセッサ112は、中断中のタスクである割込処理Bと通常処理との優先度値を比較して、優先度の高い割込処理Bの優先度値「3」を第1優先度レジスタ141に書き込む。そして、中断していた割込処理B913が時間t3〜t4で実行される。
割込処理B913が終了すると、時間t5において、プロセッサ112は、中断中のタスクである通常処理の優先度値「4」を第1優先度レジスタ141に書き込む。そして、中断していた通常処理914が、時間t5〜t7で実行される。
このように、本形態のリアルタイムプロセッサシステムは、多重割込処理をハードウェア主体で効率よく実行することが出来る。本発明の実施の形態1のリアルタイムプロセッサシステムと比較して、本形態のリアルタイムプロセッサシステムでは、多重割込処理に対するプロセッサの処理量が軽減し、多重割込処理をより効率よく実行出来る。
(実施の形態3)
図3は、本発明の実施の形態3におけるリアルタイムプロセッサシステムのブロック図である。図1と同様の構成要素については、同一の符号を付すことにより、説明を省略する。
図3に示す本形態のリアルタイムプロセッサシステムは、バスアービタ100、第1演算処理ユニット110、第2演算処理ユニット120、DMAコントローラ130、第1優先度レジスタ341、第1比較器345、第2優先度レジスタ342、第2比較器346、第3優先度レジスタ143、メモリ170、及び、SCI180を備える。
バスアービタ100は、優先度比較部150、及び、バス割当決定部160を有する。
第1比較器345においては、第1優先度レジスタ341に現在格納されている優先度値と、新たな割り込みに伴う割込処理部111からの優先度値とが入力され、それらを比較して、優先度の高い優先度値が選択されて、第1優先度レジスタ341に格納される。すなわち、第1優先度レジスタ341と第1比較器345とを組み合わせることにより、新たな割込処理の優先度が、第1優先度レジスタ341に格納されている優先度よりも高い場合のみ、第1優先度レジスタ341の優先度値が変更される。
第2優先度レジスタ342と第2比較器346との組み合わせにおいても、同様である。
以下に、本形態のリアルタイムプロセッサシステムの動作について、実施の形態1及び実施の形態2と異なる点を中心に、概略を説明する。
本形態のリアルタイムプロセッサシステムでは、優先度値が小さいほど、I/Oアクセス優先度は、高いと定義している。
第1演算処理ユニット110の割込処理部111が、割込入力113を受けて、第1優先度レジスタ341に割込入力113に対応する優先度値を書き込む場合、第1比較器345において、すでに第1優先度レジスタ341に格納されているI/Oアクセス優先度値と、割込入力113に対応する優先度値とが比較され、より優先度の高い優先度値が、第1優先度レジスタ341に書き込まれる。
同様の処理は、第2演算処理ユニット120と第2優先度レジスタ342と第2比較器346とにおいても行われる。
第3優先度レジスタ143は、DMAコントローラ130のための優先度値を固定的に設定するレジスタである。
本形態のリアルタイムプロセッサシステムは、通常処理のI/Oアクセス優先度の比べ、低いI/Oアクセス優先度を持つ割込処理を実行する場合に、顕著な効果を発揮する。
図10(a)は、本発明の実施の形態3におけるリアルタイムプロセッサシステムが、優先度継承割込処理を行う時のタイムチャートである。
以下に、図3と図10(a)を参照して、本形態のリアルタイムプロセッサシステムの動作を、第1演算処理ユニット110にのみ着目して、説明する。第1演算処理ユニット110は、時間t0において、通常処理1010を優先度値「2」で実行している。割込処理部111は、優先度値「4」の割込処理を受け付けると、その優先度値を、第1比較器345において、実行中の処理の優先度値「2」と比較し、優先度のより高い優先度値「2」を、第1優先度レジスタ341に書き込み(この例の場合は、第1優先度レジスタ341の内容は、たまたま変化しない)、プロセッサ112の処理を割込処理に切り替える。バスアービタ100の調停の結果、時間t1において、割込処理1011が、優先度値「2」として処理される。
割込処理1011が終了すると、プロセッサ112は、中断している通常処理の優先度値「2」を第1優先度レジスタ341に書き込む(この場合も、第1優先度レジスタ341の内容は、たまたま変化しない)。バスアービタ100の調停の結果、時間t2〜t7において、通常処理1012が、優先度値「2」として処理される。
この結果、割込処理は、もともと、その処理に割り当てられた優先度が低いにも拘らず、すでに実行中の処理の優先度を継承して、より高い優先度で処理されることになる。このような処理は、優先度継承割込処理と呼ぱれている。
図10(b)は、本発明の実施の形態3におけるリアルタイムプロセッサシステムが、優先度非継承割込処理を行う時のタイムチャートである。これは、リアルタイムプロセッサシステムにおいて、第1比較器345の機能を殺して、割込処理が常に最優先処理されるようにしたものであり、上述した図10(a)と対比するためのものである。
図10(b)においては、割込処理に対して、優先度の継承が行われないため、時間t1において、第1優先度レジスタ341に格納される優先度値は、割込処理の持つ優先度値「4」に変更される。したがって、バスアービタ100の調停の結果、時間t1〜t3において、割込処理1021が実行される。この割込処理1021は、優先度が低い状態で実行されるために、より長い処理時間を必要とする。
割込処理1021が終了すると、プロセッサ112は、中断している通常処理の優先度値「2」を第1優先度レジスタ341に書き込む。バスアービタ100の調停の結果、時間t4〜t7において、通常処理1012が、優先度値「2」として処理される。
図10(a)と(b)を比較して明らかなように、本形態のリアルタイムプロセッサシステムは、通常処理のI/Oアクセス優先度に比べ、低いI/Oアクセス優先度を持つ割込処理を実行する場合に、顕著な効果を発揮する。同時に、通常処理のI/Oアクセス優先度を、割込処理のI/Oアクセス優先度よりも高く設定出来ることを意味しており、ソフトウェア設計において自由度が増大することになる。
なお、本形態のリアルタイムプロセッサシステムは、本発明の実施の形態2と組み合わせて適用することが可能であり、その場合には、それぞれの形態のリアルタイムプロセッサシステムが有する効果を、同時に得ることが出来る。
(実施の形態4)
図4は、本発明の実施の形態4におけるリアルタイムプロセッサシステムのブロック図である。図1と同様の構成要素については、同一の符号を付すことにより、説明を省略する。
図4に示すように、本形態のリアルタイムプロセッサシステムは、バスアービタ100、第1演算処理ユニット110、第2演算処理ユニット120、DMAコントローラ130、
第1優先度レジスタ441、第1減算器447、第2優先度レジスタ442、第2減算器448、第3優先度レジスタ143、メモリ170、及び、SCI180を備え、バスアービタ100は、優先度比較部150とバス割当決定部160を有する。
本形態のリアルタイムプロセッサシステムでは、優先度値が小さいほど、I/Oアクセス優先度は、高いと定義している。
第1減算器447と第2減算器448とは、それぞれ、第1優先度レジスタ441と第2優先度レジスタ442とに格納されている優先度値を、一定の時間間隔で一定値に達するまで減少させる。すなわち、第1減算器447と第2減算器448とは、それぞれ、第1優先度レジスタ441と第2優先度レジスタ442との優先度を時間とともに上昇させる作用をする。
第3優先度レジスタ143は、DMAコントローラ130のための優先度値を固定的に設定するレジスタである。
本形態のリアルタイムプロセッサシステムの動作の一例を、図11を用いて以下に説明する。図11は、本発明の実施の形態4におけるリアルタイムプロセッサシステムのタイムチャートである。
この例では、第1減算器447と第2減算器448は、それぞれ、第1優先度レジスタ441と第2優先度レジスタ442に格納されている優先度値を、格納されている優先度値が減算閥値である「127」(この値は任意に設定出来る)よりも小さい時は、一定時間ごとに「1」ずつ減じるが、格納されている優先度値が「127」よりも大きい時は、何もしないように設定されている。
以下では、図4と図11を参照して、動作の概要を説明する。
時間t0では、第1優先度レジスタ441の優先度値1101は「255」、第2優先度レジスタ442の優先度値1102は「255」、そして、第3優先度レジスタ143の優先度値1103は、固定的に「20」と設定されている。したがって、バスアービタ100の調停の結果、時間t0において、DMA処理1130が実行される。
時間t1において、第1演算処理ユニット110に割込要求が発生し、割込処理部111は、第1優先度レジスタ441の優先度値1101として、「9」を書き込む。この時、割込処理部111は、その割込処理が時間t9までに終了するように、優先度値を決定する。すなわち、その割込処理のデッドラインが時間t9であることから逆算して、第1優先度レジスタ441に書き込むべき優先度値を決定する。
第2優先度レジスタ442の優先度値1102の「255」は、「127」よりも大きいので、減算されない。第3優先度レジスタ143の優先度値1103は、固定的に「20」である。したがって、バスアービタ100の調停の結果、時間t1において、最も優先度値が小さい第1演算処理ユニット110の割込要求に対して、I/Oアクセス権を与える。プロセッサ112は、通常処理111Oを中断して、割込処理1111を実行する。
第1優先度レジスタ441の優先度値1101は、時間t2以降、そのタスクが終了するまで、一定時間ごとに「1」ずつ減算される。
時間t3において、第2演算処理ユニット120に割込要求が発生し、割込処理部121は、第2優先度レジスタ442に、優先度値1102として、「4」を書き込む。これは、その割込処理が、時間t6までに終了するようにする設定である。時間t3における各優先度レジスタに格納されている優先度値を比較して、バスアービタ100は、割込処理1121が実行されるように調停する。この調停の結果、割込処理1111は、中断され、また、通常処理1120も中断されて、割込処理1121が実行される。
その後、第1優先度レジスタ441の優先度値1101と第2優先度レジスタ442の優先度値1102とは、一定時間ごとに「1」ずつ減算される。
時間t6において、割込処理1121が終了し、プロセッサ122は、第2優先度レジスタ442に、通常処理の優先度値として「255」を書き込み、通常処理1123を再開する。この時点において、第1優先度レジスタ441の優先度値がもっと小さく、バスアービタ100は、割込処理1112が実行されるように調停する。この調停の結果、割込処理1112は、継続して実行される。
時間t9において、割込処理1112が終了し、プロセッサ112は、第1優先度レジスタ441に、通常処理の優先度値として「255」を書き込み、通常処理1113を再開する。この時点において、第3優先度レジスタ143の優先度値がもっと小さく、バスアービタ100は、DMA処理1131が実行されるように調停する。
以上説明したように、本形態のリアルタイムプロセッサシステムは、割込処理を含めて、新しいタスクを実行する場合、そのタスクよりも優先度の高いものがI/Oアクセスしていない場合にのみ、そのタスクのI/Oアクセスを許可するというルールで、I/Oアクセスの調停を行うことが出来る。また、タスクの終了時刻を基に、処理の優先度値を設定出来るので、I/Oアクセス権のスケジューリングが容易となる。
なお、本形態のリアルタイムプロセッサシステムは、本発明の実施の形態2、及び/又は、実施の形態3と組み合わせて適用することが可能であり、その場合には、それぞれの形態のリアルタイムプロセッサシステムが有する効果を、同時に得ることが出来る。
また、本形態では、優先度は、優先度値の値が小さいほどが高いとしている。優先度が、優先度値の値が大きいほど高いと設定する場合は、図4の第1減算器447と第2減算器448とを加算器に置換すれば、同様の効果を発揮出来る。
(実施の形態5)
図5は、本発明の実施の形態5における制御方法の処理のフローチャートである。本形態の制御方法は、本発明の実施の形態1〜4のリアルタイムプロセッサシステム上で動作する。
本形態の制御方法の処理のフローチャートは、実行タスク検索ステップS501、優先度レジスタ設定ステップS502、及び、タスク切り替えステップS503を含む。
本形態の制御方法の処理の流れを、図1に示したリアルタイムプロセッサシステムを適用例として、以下に説明する。
図12は、本発明の実施の形態5における制御方法の処理のタイムチャートである。この例では、図1に示した第1演算処理ユニット110において、I/Oアクセス優先度「1」の割込処理と、l/Oアクセス優先度「2」の通常処理Aと、I/Oアクセス優先度「3」の通常処理Bとが、タスクとしてあり、これらをプロセッサ112のOSが管理している。以下に、図1と図12とを参照して、動作の概要を説明する。
時間t0において、通常処理Aは、「WAIT」状態(実行する処理がなく、タスクが待ち状態)であり、通常処理Bは、「RUN」状態(タスク処理中)で、タスク1214を処理している。この時の第1優先度レジスタ141の優先度値は、「3」である。
時間t2において、割り込みが発生すると、割込処理部111は、割り込み発生をプロセッサ112に通知し、同時に、第1優先度レジスタ141に、優先度値「1」を書き込む。プロセッサ112のOSは、割り込みをトラップして、処理中のタスク1214を、「READY」状態(実行待ちの状態)にして、OS処理1221を実行する。バスアービタ100は、バスを調停して、割込処理にl/Oアクセス権を与える。
時間t3において、割込処理のタスク1211が実行される。
時間t4において、通常処理Aの「WAKE−UP」(「WAIT」状態からの解除)のために、システムコールが実行され、プロセッサ112のOSは、OS処理1222を実行し、通常処理Aを「READY」状態にする。
時間t5において、割込処理のタスク1212が実行され、終了する。
時間t6において、タスク1212の終了に伴い、割込処理終了用のシステムコールが実行されて、プロセッサ112は、OS処理1223を実行する。OS処理1223によって、「READY」状態のタスクのうち、最も優先度の高い(優先度値の最も小さい)タスクが検索される。これは、図5に示す、実行タスク検索ステップS501に相当する。
検索の結果、通常処理Aが選択され、通常処理Aの優先度値「2」が、プロセッサ112によって、第1優先度レジスタ141に書き込まれる。これは、図5に示す、優先度レジスタ設定ステップS502に相当する。
バスアービタ100は、バスを調停して、通常処理AにI/Oアクセス権を与える。プロセッサ112は、タスクの切り替えを行い、通常処理Aのタスク1213を「RUN」状態にして実行する。これは、図5に示す、タスクの切り替えステップS503に相当する。
時間t9において、タスク1213が終了し、処理終了用のシステムコールが実行されて、プロセッサ112は、OS処理1224を実行する。OS処理1224によって、通常処理Aは、「WAIT」状態に切り替えられ、再び、「READY」状態のタスクのうち、最も優先度の高い(優先度値の最も小さい)タスクが検索される。これは、図5に示す、実行タスク検索ステップS501に相当する。
検索の結果、通常処理Bが選択され、通常処理Bの優先度値「3」が、プロセッサ112によって、第1優先度レジスタ141に書き込まれる。これは、図5に示す優先度レジスタ設定ステップS502に相当する。
バスアービタ100は、バスを調停して、通常処理BにI/Oアクセス権を与える。プロセッサ112は、タスクの切り替えを行い、通常処理Bのタスク1215を「RUN」状態にして実行する。これは、図5に示す、タスクの切り替えステップS503に相当する。
以上説明したように、本形態の制御方法では、タスクの実行が終了すると、システムコールが実行され、実行可能なタスクの中からもっとも優先度の高いタスクを検索し、そのタスクの優先度値を基に、優先度レジスタの設定を行い、タスク切り替えを行う。
タスク切り替えステップS503をさらに具体的に述べれば、現在実行中のタスクの利用しているレジスタをメモリ上に退避し、検索したタスクが利用するレジスタの内容をメモリから復帰して、タスク切り替えを行う。
本形態の制御方法を利用することにより、タスクや割り込みハンドラと呼ばれるアプリケーションソフトウェアは、ハードウェアの構成に依存しない記述が可能となり、移植性の高いアプリケーションソフトウェアの開発が可能となる。
(実施の形態6)
図6は、本発明の実施の形態6における制御方法の処理のフローチャートである。本形態の制御方法は、本発明の実施の形態4のリアルタイムプロセッサシステム上で動作する。
本形態の制御方法の処理のフローチャートは、実行タスク検索ステップS601、残時間算出ステップS602、優先度レジスタ設定ステップS603、及び、タスク切り替えステップS604を含む。
本形態の処理の流れを、図4に示したリアルタイムプロセッサシステムを適用例として、以下に説明する。
図13は、本発明の実施の形態6における制御方法の処理のタイムチャートである。この例では、本形態の制御方法は、図4に示した本発明の実施の形態4のリアルタイムプロセッサシステム上で動作させるものとして、説明する。従って、以下の説明では、図4と図13を参照する。
図13に示す例では、第1演算処理ユニット110において、2つの割込処理と2つの通常処理が行われる場合を示している。この場合、割込処理の実行許容時間は、3単位時間、通常処理Aの実行許容時間は、10単位時間、通常処理Bの実行許容時間は、7単位時間としている。ここに、1単位時間は、例えば1ミリ秒である。また、同図の横軸は、時間を表しているが、横軸の長さは、必ずしも単位時間とは比例していない。
時間t0において、プロセッサ112のOS処理1341は、「IDLE」状態(アイドリングループに入っている状態)で、第1優先度レジスタ441には、優先度値「255」が、格納されている。この値は、減算閥値である「127」よりも大きいので、第1減算器447によって、減算されることはない。
時間t1において、第1演算処理ユニット110に割込要求が発生し、割込処理部111は、第1優先度レジスタ441の優先度値として、「3」を書き込む。この時、割込処理部111は、その割込処理の実行許容時間が3単位時間であることを勘案して、時間t5までに割込処理が終了するように、第1優先度レジスタ441に書き込むべき優先度値を決定する。プロセッサ112は、割り込みをトラップして、OS処理1342を実行する。バスアービタ100は、バスを調停して、割込処理にI/Oアクセス権を与える。
時間t2〜t3において、割込処理1311が実行される。その間、第1優先度レジスタ441に格納されている優先度値は、一定時間ごとに「1」ずつ減算される。
時間t4において、通常処理Aのタスクを起動するシステムコールがなされ、プロセッサ112は、OS処理1343を実行し、通常処理Aを「READY」1322にする。
時間t5では、割込処理1312が引き続き実行される。
時間t6において、割込処理1312が終了し、OS処理1344が実行され、第1優先度レジスタ441の優先度値として、「8」が書き込まれる。この時、プロセッサ112は、通常処理Aの実行許容時間が10単位時間であることを勘案して、時間t18までに割込処理が終了するように、第1優先度レジスタ441に書き込むべき優先度値を決定する。
図13において、逆三角マーク1321は、通常処理Aの起動時刻であり、逆三角マーク1326は、通常処理Aの処理遅延が許容される臨界時刻(デッドライン)である。この間が、通常処理Aの実行許容時間である10単位時間に相当する。バスアービタ100は、バスを調停して、通常処理AにI/Oアクセス権を与える。
時間t7において、通常処理Aが、「RUN」1323になり、タスクが実行される。
時間t11において、第1演算処理ユニット110に新たな割込要求が発生し、割込処理部111は、第1優先度レジスタ441の優先度値として、「3」を書き込む。この優先度値は、割込処理の実行許容時間が3単位時間であることを勘案して、決定された値である。プロセッサ112は、割り込みをトラップして、OS処理1345を実行し、通常処理Aを「READY」1324にする。バスアービタ100は、バスを調停して、割込処理にI/Oアクセス権を与える。
時間t12において、割込処理1313が実行される。
時間t13において、通常処理Bのタスクを起動するシステムコールがなされ、プロセッサ112は、OS処理1346を実行し、通常処理Bを「READY」1332にする。
時間t14では、割込処理1314が引き続き実行される。
時間t15において、割込処理1314が終了し、OS処理1347が実行され、第1優先度レジスタ441の優先度値として、「2」が書き込まれる。この優先度値は、時間t7において、通常処理Aに対する優先度値として書き込まれた値が、時間とともに減算された値である。バスアービタ100は、バスを調停して、通常処理Aにl/Oアクセス権を与える。
時間t16において、通常処理Aのタスク1325が実行される。
時間t17において、通常処理Aのタスク1325が終了し、OS処理1348が実行され、第1優先度レジスタ441の優先度値として、「4」が書き込まれる。この優先度値は、時間t13において、通常処理Bに対する優先度値として求められた値が、時間とともに減算された値である。
図13において、逆三角マーク1331は、通常処理Bの起動時刻であり、逆三角マーク1334は、通常処理Bの処理遅延が許容される臨界時刻
(デッドライン)である。この間が、通常処理Bの実行許容時間である7単位時間に相当する。バスアービタ100は、バスを調停して、通常処理BにI/Oアクセス権を与える。
時間t18において、通常処理Bは、「RUN」状態となり、タスク1333が実行される。
時間t21において、タスク1333が終了し、OS処理1349が実行され、第1優先度レジスタ441の優先度値として、「255」が書き込まれる。
時間t22において、プロセッサ112は、「IDLE」状態となる。
本形態の制御方法では、一つのタスクが終了すると、次の実行タスクを検索する。図13に示した例では、時間t6とt15とt17とにおいて、次の実行タスクの検索が行われている。
時間t6においては、実行可能なタスクの中から、もっともデッドライン時刻が現在時刻に近いタスクが検索される(図6に示す、実行タスク検索ステップS601に相当する)。次に、現在時刻に対するデッドライン時刻までの残時間が算出される(図6に示す、残時間算出ステップS602に相当する)。算出された残時間に対応するI/Oアクセス優先度値(この場合の優先度値は、「8」)が、第1優先度レジスタ141に書き込まれる(図6に示す、優先度レジスタ設定ステップS603に相当する)。最後に、現在実行中のタスクの利用しているレジスタをメモリ上に退避し、これから実行するタスクが利用するレジスタの内容をメモリから復帰する事でタスク切り替えを行い、時間t7において、タスク1323が実行される(図6に示す、タスク切り替えステップS604に相当する)。
時間t15とt17における処理も、同様である。
以上説明したように、本形態の制御方法では、I/Oアクセス権の付与は、通常処理のタスク又は割込処理のタスクが処理を完了するまでの許容時間に比例した優先度値を基づいて行われる。
本発明の実施の形態5で示したような固定優先度方式は、スケジュール計算が単純であるために、広く利用されているが、本形態に示したように、同一処理速度のプロセッサで実行する場合、処理完了までの許容時間を考慮してスケジューリングした方が、最悪時の処理完了までの時間を短縮出来る。
本形態で説明した動的優先度方式を採用した制御方法は、マルチプロセッサ環境に拡張する事が可能である。
以上説明した本発明の実施の形態2以外の実施の形態における、第1演算処理ユニット110と第2演算処理ユニット120とは、本発明の実施の形態2における、第1演算処理ユニット210と第2演算処理ユニット220と入れ替えても良い。
また、本発明の実施の形態1から6では、演算処理ユニットの個数は、2個であったが、演算処理ユニットの個数は、さらに多くても良い。その場合は、演算処理ユニットの個数に伴って、優先度レジスタの個数も増やせば、本発明の実施の形態1から6で述べたと同様の効果を得ることが出来る。
さらに、本発明の実施の形態1から6での、第3優先度レジスタ143は、固定値を格納しているが、DMAコントローラ130の制御の下で、可変値を格納しても良い。
要するに、本発明の趣旨を逸脱しない範囲において、種々の拡張が可能である。
本発明に係わるリアルタイムプロセッサシステムは、例えば、複数のバスマスタがバスを調停して利用する環境及びその関連技術分野などにおいて利用できる。
本発明の実施の形態1におけるリアルタイムプロセッサシステムのブロック図 本発明の実施の形態2におけるリアルタイムプロセッサシステムのブロック図 本発明の実施の形態3におけるリアルタイムプロセッサシステムのブロック図 本発明の実施の形態4におけるリアルタイムプロセッサシステムのブロック図 本発明の実施の形態5における制御方法の処理のフローチャート 本発明の実施の形態6における制御方法の処理のフローチャート 本発明の実施の形態1におけるリアルタイムプロセッサシステムのタイムチャート 本発明の実施の形態1におけるリアルタイムプロセッサシステムにおいて、多重割込処理を行う時のタイムチャート 本発明の実施の形態2におけるリアルタイムプロセッサシステムのタイムチャート (a)本発明の実施の形態3におけるリアルタイムプロセッサシステムが、優先度継承割込処理を行う時のタイムチャート (b)本発明の実施の形態3におけるリアルタイムプロセッサシステムが、優先度非継承割込処理を行う時のタイムチャート 本発明の実施の形態4におけるリアルタイムプロセッサシステムのタイムチャート 本発明の実施の形態5における制御方法の処理のタイムチャート 本発明の実施の形態6における制御方法の処理のタイムチャート 従来の割込処理を行うシステムのブロック図
符号の説明
100、1404 バスアービタ
110、210 第1演算処理ユニット
111、121 割込処理部
112、122、1402、1403 プロセッサ
113、123 割込入力
120、220 第2演算処理ユニット
130 DMAコントローラ
141、341、441 第1優先度レジスタ
142、342、442 第2優先度レジスタ
143 第3優先度レジスタ
150 優先度比較部
160、1406 バス割当決定部
170、1407 メモリ
180、1408 SCI
215 優先度設定レジスタ群
225 優先度設定レジスタ群
345 第1比較器
346 第2比較器
447 第1減算器
448 第2減算器
1401 割込処理回路
1405 固定優先度設定部

Claims (8)

  1. バスアービタと、
    演算処理ユニットであって、プロセッサと割込処理部とを有し、前記バスアービタに接続する、少なくとも2つの演算処理ユニットと、
    前記プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、前記割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、
    前記バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、
    前記バスアービタは、
    前記優先度レジスタに格納されている優先度値を比較する優先度比較部と、
    前記優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する、リアルタイムプロセッサシステム。
  2. バスアービタと、
    演算処理ユニットであって、プロセッサと割込処理部とを有し、前記バスアービタに接続する、少なくとも1つの演算処理ユニットと、
    前記プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、前記割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、
    前記バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、
    前記バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、
    前記バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、
    前記バスアービタは、
    前記複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、
    前記優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する、リアルタイムプロセッサシステム。
  3. バスアービタと、
    演算処理ユニットであって、プロセッサと割込処理部とを有し、前記バスアービタに接続する、少なくとも1つの演算処理ユニットと、
    前記プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、前記割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、
    前記割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を、すでに前記優先度レジスタに格納されているI/Oアクセス優先度値と比較して、優先度が高い場合にのみ前記優先度レジスタに格納する、比較格納手段と、
    前記バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、
    前記バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、
    前記バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、
    前記バスアービタは、
    前記複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、
    前記優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する、リアルタイムプロセッサシステム。
  4. バスアービタと、
    演算処理ユニットであって、プロセッサと割込処理部とを有し、前記バスアービタに接続する、少なくとも1つの演算処理ユニットと、
    前記プロセッサが行う通常処理のためのI/Oアクセス優先度値、又は、前記割込処理部が行う割り込み処理のためのI/Oアクセス優先度値を格納する優先度レジスタと、
    前記優先度レジスタに格納されているI/Oアクセス優先度値を、時間経過に共に優先度の高い値に変更する、優先度変更手段と、
    前記バスアービタに接続し、能動的にバスアクセスを発生させる少なくとも1つのバスアクセス発生ユニットと、
    前記バスアクセス発生ユニットのバスアクセス優先度値を格納する優先度レジスタと、
    前記バスアービタに接続する少なくとも1つのI/Oデバイスと、を備え、
    前記バスアービタは、
    前記複数の優先度レジスタに格納されている優先度値を比較する優先度比較部と、
    前記優先度比較部の比較結果に基づいて、バスの使用権を決定するバス割当決定部とを有する、リアルタイムプロセッサシステム。
  5. 前記演算処理ユニットは、割り込み要因にしたがって異なるI/Oアクセス優先度値を前記優先度レジスタに格納する格納手段を有する、請求項1から4記載のリアルタイムプロセッサシステム。
  6. 前記格納手段は、
    前記プロセッサのプログラム制御によるI/Oアクセス優先度値と、前記割込処理部の割り込み要因によって異なるI/Oアクセス優先度値とを、予め格納する優先度設定レジスタ群を有し、
    新たな割り込みの要求に対して、前記優先度設定レジスタ群は、上記割り込みの要因に対応する優先度値が、すでに実行中の割込処理の優先度値よりも優先度が高い場合にのみ、上記割り込みの要因に対応する優先度値を前記優先度レジスタに格納する、請求項5記載のリアルタイムプロセッサシステム。
  7. 請求項1から6記載のリアルタイムプロセッサシステムにおいて動作する制御方法であって、
    次に実行するタスクを検索するタスク検索ステップと、
    前記タスク検索ステップで検出されたタスクに対応するI/Oアクセス優先度を、実行中のプロセッサに対応する前記優先度レジスタに格納するステップと、前記タスク検索ステップで検出されたタスクに実行を切り替えるステップと、を含む制御方法。
  8. 請求項6記載のリアルタイムプロセッサシステムにおいて動作する制御方法であって、
    次に実行するタスクを検索するタスク検索ステップと、
    前記タスク検索ステップで検出されたタスクに対応するデッドライン時刻と現在時刻の差分を求める残時間算出ステップと、
    前記残時間算出ステップで求めた残時間に対応するI/Oアクセス優先度を、実行中のプロセッサに対応する前記優先度レジスタに格納するステップと、
    前記タスク検索ステップで検出されたタスクに実行を切り替えるステップと、を含む制御方法。
JP2003328768A 2003-09-19 2003-09-19 リアルタイムプロセッサシステム及び制御方法 Withdrawn JP2005092780A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2003328768A JP2005092780A (ja) 2003-09-19 2003-09-19 リアルタイムプロセッサシステム及び制御方法
GB0420688A GB2406671B (en) 2003-09-19 2004-09-17 Real-time processor system and control method
US10/942,893 US20050066093A1 (en) 2003-09-19 2004-09-17 Real-time processor system and control method
CNA2004100786951A CN1598797A (zh) 2003-09-19 2004-09-17 实时处理器系统及控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003328768A JP2005092780A (ja) 2003-09-19 2003-09-19 リアルタイムプロセッサシステム及び制御方法

Publications (1)

Publication Number Publication Date
JP2005092780A true JP2005092780A (ja) 2005-04-07

Family

ID=33308242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003328768A Withdrawn JP2005092780A (ja) 2003-09-19 2003-09-19 リアルタイムプロセッサシステム及び制御方法

Country Status (4)

Country Link
US (1) US20050066093A1 (ja)
JP (1) JP2005092780A (ja)
CN (1) CN1598797A (ja)
GB (1) GB2406671B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007145219A1 (ja) * 2006-06-15 2007-12-21 Canon Kabushiki Kaisha バス調停装置及び方法
JP2009059022A (ja) * 2007-08-30 2009-03-19 Mitsubishi Electric Corp 蓄積共有システム用の装置
JP2010191911A (ja) * 2009-02-20 2010-09-02 Ntt Electornics Corp データ転送装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904869B (zh) * 2006-08-08 2010-04-14 北京中星微电子有限公司 一种从多个有效中断中查找最高优先级中断的方法和装置
KR100868766B1 (ko) * 2007-01-31 2008-11-17 삼성전자주식회사 복수의 dma 요청 블록들을 가지는 직접 메모리 액세스장치의 우선 순위를 결정하는 방법 및 장치
TWI355588B (en) * 2008-01-25 2012-01-01 Realtek Semiconductor Corp Arbitration device and method thereof
CN101634975B (zh) * 2009-08-20 2011-09-14 广东威创视讯科技股份有限公司 一种实现dma数据传输的方法及装置
EP3015995B1 (de) * 2015-05-11 2017-03-08 dSPACE digital signal processing and control engineering GmbH Verfahren zum konfigurieren einer schnittstelleneinheit eines computersystems
US10303631B2 (en) * 2016-03-17 2019-05-28 International Business Machines Corporation Self-moderating bus arbitration architecture
CN112559403B (zh) * 2019-09-25 2024-05-03 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器
WO2021056277A1 (zh) * 2019-09-25 2021-04-01 西门子股份公司 一种执行程序的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4159518A (en) * 1977-07-05 1979-06-26 International Business Machines Corporation Auto-selection priority circuits for plural channel adapters
US4334288A (en) * 1979-06-18 1982-06-08 Booher Robert K Priority determining network having user arbitration circuits coupled to a multi-line bus
JPS62280948A (ja) * 1986-05-29 1987-12-05 Fanuc Ltd バス調停方式
JPS63132365A (ja) * 1986-11-22 1988-06-04 Nec Corp バス調停制御方式
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5596749A (en) * 1992-09-21 1997-01-21 Texas Instruments Incorporated Arbitration request sequencer
JPH07105175A (ja) * 1993-10-08 1995-04-21 Nec Corp マイクロコンピュータ
CA2145553C (en) * 1994-03-30 1999-12-21 Yuuki Date Multi-processor system including priority arbitrator for arbitrating request issued from processors
US5862355A (en) * 1996-09-12 1999-01-19 Telxon Corporation Method and apparatus for overriding bus prioritization scheme
US5901296A (en) * 1996-12-06 1999-05-04 International Business Machines Corporation Distributed scheduling for the transfer of real time, loss sensitive and non-real time data over a bus
US6092137A (en) * 1997-11-26 2000-07-18 Industrial Technology Research Institute Fair data bus arbitration system which assigns adjustable priority values to competing sources
US6411218B1 (en) * 1999-01-22 2002-06-25 Koninklijke Philips Electronics N.V. Priority-encoding device selection using variable arbitrary rankings
US6718422B1 (en) * 1999-07-29 2004-04-06 International Business Machines Corporation Enhanced bus arbiter utilizing variable priority and fairness
KR100657256B1 (ko) * 2000-07-27 2006-12-14 삼성전자주식회사 중재기 및 그 중재기를 채용한 버스 시스템
EP1182550A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Task based priority arbitration
EP1213650A3 (en) * 2000-08-21 2006-08-30 Texas Instruments France Priority arbitration based on current task and MMU
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
US6848015B2 (en) * 2001-11-30 2005-01-25 Hewlett-Packard Development Company, L.P. Arbitration technique based on processor task priority
US6978329B1 (en) * 2002-10-08 2005-12-20 Advanced Micro Devices, Inc. Programmable array-based bus arbiter
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007145219A1 (ja) * 2006-06-15 2007-12-21 Canon Kabushiki Kaisha バス調停装置及び方法
US7962678B2 (en) 2006-06-15 2011-06-14 Canon Kabushiki Kaisha Bus arbitration apparatus and method
US8140727B2 (en) 2006-06-15 2012-03-20 Canon Kabushiki Kaisha Bus arbitration apparatus and method
JP2009059022A (ja) * 2007-08-30 2009-03-19 Mitsubishi Electric Corp 蓄積共有システム用の装置
JP2010191911A (ja) * 2009-02-20 2010-09-02 Ntt Electornics Corp データ転送装置

Also Published As

Publication number Publication date
US20050066093A1 (en) 2005-03-24
GB2406671A (en) 2005-04-06
GB0420688D0 (en) 2004-10-20
GB2406671B (en) 2007-04-11
CN1598797A (zh) 2005-03-23

Similar Documents

Publication Publication Date Title
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
JP3658420B2 (ja) 分散処理システム
CN111736987B (zh) 一种基于gpu空间资源共享的任务调度方法
CN109997112B (zh) 数据处理
US20220414503A1 (en) Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms
JP2006515690A (ja) 複数のプロセッサを有するデータ処理システムと、複数のプロセッサを有するデータ処理システムのためのタスクスケジューラと、タスクスケジューリングの対応する方法
JP2008506187A (ja) 複数のカーネルの並列実行のための方法およびシステム
JP5347451B2 (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
JP7461947B2 (ja) プロセッサにおける余裕認識(laxity-aware)型動的優先度変更
JP2009528610A (ja) タスクの実行フェーズに基づいてキャッシュパーティションを動的にリサイズする方法及び装置
JP2010079622A (ja) マルチコアプロセッサシステム、および、そのタスク制御方法
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
US20230127112A1 (en) Sub-idle thread priority class
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
JP2005276097A (ja) 割り込み依頼プログラムおよびマイクロコンピュータ
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
JP2007026021A (ja) バス制御システム及びバス制御方法
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
JP2004206692A (ja) マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
JP2005149312A (ja) タスク管理システム
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2014225137A (ja) タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
US20140344822A1 (en) Techniques for assigning priorities to streams of work

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060915

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080911