JP2006146937A - データのリアルタイム処理を行うための方法及びシステム - Google Patents

データのリアルタイム処理を行うための方法及びシステム Download PDF

Info

Publication number
JP2006146937A
JP2006146937A JP2005338770A JP2005338770A JP2006146937A JP 2006146937 A JP2006146937 A JP 2006146937A JP 2005338770 A JP2005338770 A JP 2005338770A JP 2005338770 A JP2005338770 A JP 2005338770A JP 2006146937 A JP2006146937 A JP 2006146937A
Authority
JP
Japan
Prior art keywords
real
schedule
time
data
processors
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
Application number
JP2005338770A
Other languages
English (en)
Other versions
JP4786313B2 (ja
Inventor
Yoshiyuki Hamaoka
快之 濱岡
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Publication of JP2006146937A publication Critical patent/JP2006146937A/ja
Application granted granted Critical
Publication of JP4786313B2 publication Critical patent/JP4786313B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C9/00Individual registration on entry or exit
    • G07C9/00174Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
    • G07C9/00571Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated by interacting with a central unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Lock And Its Accessories (AREA)

Abstract

【課題】マルチプロセッサシステムにおけるプロセッサの利用率を増加させるシステム及び方法を提供する。
【解決手段】データのリアルタイム処理を行うための方法は、マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために使用される。この方法は、厳密リアルタイムスケジュールを実行するステップと、疑似リアルタイムスケジュールを実行するステップと、を具備する。この方法は、動作条件の主要なセットを評価し、動作条件の主要なセットの評価に基づいて厳密リアルタイムスケジュールまたは疑似リアルタイムスケジュールを交代的に選択する。
【選択図】図4

Description

本発明は、一般的にコンピュータシステムに関し、特に処理リソースの使用を改良してデータのリアルタイム処理を可能にするための、マルチプロセッサシステム中のタスクの処理をスケジュールするシステム及び方法に関する。
コンピュータ及びコンピュータ関連技術の開発が進むにつれて、これらの技術の応用も同様に急速なペースで進められている。コンピュータ技術の応用は、処理速度とコンピュータ処理パワーの増加を利用し、また更なる増加に対する要求を駆り立てている。速度及びパワーの増加に対する要求は、時には、単に付加的なリソースを設けることによって、及びそうでなければ既存のリソースを更に効率的にすることによって満たされる。
更に多くのコンピュータ処理パワーを提供するために使用される方法の1つは、コンピュータシステム中に多数のプロセッサを設けることである。所定のアプリケーションの種々のタスクを実行するように更に多くのプロセッサを利用可能にし、異なるタスクを実行させる複数のプロセッサを並列に設けることによって、アプリケーションは、そのタスクが同等の処理パワーを有する単一のプロセッサによって直列的に実行されなければならない場合よりも遥かに迅速に実行されることができる。
しかしながら、典型的には、これらのタスクを直列的に処理するのに対して並列的にアプリケーションのタスクを処理することは、より困難である。伝統的に、アプリケーション(コンピュータプログラム)は、直列の態様で構成される。換言すると、アプリケーションは、次々に実行される一連のプログラム命令からなる。多くの場合、1つのタスク(例えば1つのプログラム命令または一連の命令)は、そのタスクの結果が別のタスクで使用されることができるように終了されなければならない。それ故、アプリケーションは、典型的には、本質的に直列である。しかしながら、相互に独立しており、それ故並列に実行されることのできるタスクも存在する。
アプリケーション内の種々のタスクを可能な限り並列に行うことができるように、タスクを多数のプロセッサ間でどのように分配できるかを決定することは、多くの場合、非常に複雑で困難な仕事である。前述したように、煩雑さの1つは、何れのタスクが相互に独立し、それ故に並列に実行できるかを決定することを含むことである。別の煩雑さは、幾つかのタスクは、タスクが並列の態様で処理されると満足されるまたは満足されないであろう処理制約を有する可能性があることである。例えば、幾つかのタスクは、アプリケーションにとって重要であり、そのアプリケーションの全体的な性能は、これらのタスクが遅延されると(例えば、並列して実行するためにタスクをスケジュールする上で)、許容不能となる可能性がある。
アプリケーション内でのタスクの実行について制約がある状態の1例は、アプリケーションがビデオデータのようなデータのリアルタイム処理を行うことを意図する場合である。符号化されたビデオデータ処理では、データを復号してそれを(ビデオディスプレイの形態で)ユーザに示すことをリアルタイムで行うことが重要である。換言すると、固有のリアルタイムの速度を有するビデオイメージを表すビデオフレームのデータは、そのビデオイメージがこのリアルタイム速度で連続的な流れとしてユーザに提供されることができるように十分迅速に処理されなければならない。処理に遅延が存在するならば、ユーザに与えられるビデオデータ流は中断され、表示されるビデオに中断または不自然さ(artifacts)が生成される。このような中断または不自然さは許容できないものであり、従って、符号化されたビデオデータのリアルタイム処理を行うことが重要である。
符号化されたビデオのようなデータをリアルタイムで処理するため、マルチプロセッサコンピュータ処理システムのプロセッサは、必要とされる種々の処理タスクを処理するためにスケジュールされる。これらのタスクのスケジュールは、典型的には、2つの態様の一方、即ち静的または動的に行われる。これらの態様は夫々固有の利点と欠点を有する。
タスクの静的スケジュールは、通常、行われるべき特別なタスクを決定し、その後異なるプロセッサによってこれらのタスクの実行のスケジュールを決定することからなり、それによってスケジュールされたタスクは、最悪の場合のシナリオでさえもリアルタイムで実行されることができる。このスケジュールが決定されると、それは固定され、データの処理が開始されてからは変更されない。静的スケジュール態様の利点は、これらが、実行が比較的容易であり、予測可能であり、調整可能(scalable)であることである。静的スケジュール態様の主な欠点は、これらが、動的態様よりもプロセッサの利用率が低い可能性があることである。
タスクの動的スケジュールは、通常、混雑していないプロセッサを識別し、実行される次のタスクをそのプロセッサに割当てることからなる。換言すると、各プロセッサは、対応するタスクを割当てられ、特定のプロセッサがその割当てられたタスクを終了したときに、新しいタスクが実行されるようにそのプロセッサに割当てられる。動的態様を使用する利点は、プロセッサの利用率が、典型的には、静的スケジュール態様よりも高いことである。動的スケジュール態様の欠点は、それらが、典型的には、静的スケジュール態様よりも実行が難しく、(ディスパッチ時間、再スケジュール時間等に関して)静的態様のように予測が可能でなく、現状では、通常、容易に調整可能でないことである。
上述の課題は、本発明の様々な実施形態によって解消することが可能である。概略的には、本発明は、厳密リアルタイムスケジュール及び疑似リアルタイムスケジュールを規定し、プロセッサでタスクを実行するために厳密リアルタイムスケジュールと疑似リアルタイムスケジュールとの間で動的に切換えを行うことによって、マルチプロセッサシステムにおけるプロセッサの利用率を増加させるシステム及び方法を含む。1実施形態では、出力バッファを占有するエントリ数が監視される。その数が第1のしきい値に合致するかそれを超えるとき、疑似リアルタイムスケジュールが実行される。その数が第2のしきい値以下であるとき、厳密リアルタイムスケジュールが実行される。1実施形態では、漸近評価アルゴリズムを使用して疑似リアルタイムスケジュールが決定され、ここで、多数のプロセッサのスケジュールが組み合わされ、(潜在的には、多数回)負荷平衡化され、それによって厳密リアルタイムスケジュールよりも少ない処理リソースを使用するスケジュールが生成される。
1実施形態は、データのリアルタイム処理を行うためのマルチプロセッサコンピュータ処理システムで行われる方法を含む。この方法は、マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために厳密リアルタイムスケジュール及び疑似リアルタイムスケジュールを実行するステップと、動作条件の主なセットを評価するステップと、動作条件の主なセットの評価に基づいて厳密リアルタイムスケジュールまたは疑似リアルタイムスケジュールを交代的に選択するステップとを含む。システム中のプロセッサは、その後、選択されたスケジュールに従って1組のタスクを実行する。1実施形態では、動作条件は、出力バッファを占有するエントリ数を含む。出力バッファ中の占有エントリの数が第1のしきい値よりも少ないならば、厳密リアルタイムスケジュールが選択される。出力バッファ中の占有エントリの数が第2のしきい値よりも大きいならば、疑似リアルタイムスケジュールが選択される。1実施形態では、疑似リアルタイムスケジュールは、漸近的評価アルゴリズムを使用して動的に選択される。この実施形態では、1以上の連続的な変更が厳密なリアルタイムスケジュールに対して行われることができる。その変更は、2以上のプロセッサにより行われるタスクのスケジュールの合併または負荷平衡化を含むことができる。各変更の後、変更されたスケジュールが、冗長なまたは冗長でないデータにおけるスケジュールされたタスクの実行を評価することによって、容認可能な疑似リアルタイム性能を有するか否かが決定される。性能が容認可能であるならば、変更されたスケジュールは、疑似リアルタイムスケジュールとして使用されることができる。
別の実施形態は、複数のプロセッサと、その複数のプロセッサに結合されたスケジュール管理装置とを含むシステムを具備する。スケジュール管理装置は、プロセッサによって実行されたデータ処理のリアルタイム進行を決定し、処理のリアルタイム進行に基づいて厳密リアルタイムスケジュールまたは疑似リアルタイムスケジュールのいずれかを選択するように構成される。プロセッサは、その後、選択されたスケジュールに従って1組のデータ処理タスクを実行する。
更に別の実施形態は、前述したように、コンピュータに1つの方法を実行させるように構成される1以上の命令を含むコンピュータで読取り可能な記憶媒体を有するソフトウェアプログラムプロダクトを含む。コンピュータで読取り可能な記憶媒体は、任意の数の記憶媒体、例えばRAM、ROM、フラッシュメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能なディスク、CD−ROM、光媒体等を含むことができる。記憶媒体中に含まれている命令は、任意のタイプのデータプロセッサにより実行可能であり、個人用または汎用目的のコンピュータにより実行可能な命令に限定されない。
本発明の種々の実施形態は、保証されたデータのリアルタイム処理のような完全な静的スケジュールの利点に加えて、改良された処理リソースの使用のような完全に動的なスケジュールの利点を提供する。
多数の他の実施形態もまた可能である。本発明のその他の目的及び利点は以下の詳細な説明と、添付図面の参照により明白になるであろう。
本発明は様々な変形及び代替形態を取るが、その特定の実施形態を図面及び付随する詳細な説明によって例示する。しかしながら、図面及び詳細な説明は、本発明を説明した特定の実施形態に限定することを意図するものではないことを理解すべきである。即ち、この説明は、特許請求の範囲により規定される本発明の技術的範囲内に入る全ての変形、等価物、及び他の実施形態をカバーすることを意図する。
本発明の1以上の実施形態を以下に説明する。以下に説明するこれら及び任意の他の実施形態は例示であり、本発明の技術的範囲を限定するものではなく本発明の説明を意図するものであることに注意すべきである。
ここに記載されるように、本発明の種々の実施形態は、厳密リアルタイムスケジュール及び疑似リアルタイムスケジュールを規定し、プロセッサでタスクを実行するために厳密リアルタイムスケジュールと疑似リアルタイムスケジュールとの間で動的に切換えることによって、マルチプロセッサシステムにおけるプロセッサの利用率を増加させるシステム及び方法を含む。1実施形態では、出力バッファを占有するエントリの数が監視される。その数が第1のしきい値に合致するかそれを超えるとき、疑似リアルタイムスケジュールが実行される。その数が第2のしきい値以下であるとき、厳密リアルタイムスケジュールが実行される。1実施形態では、漸近評価アルゴリズムを使用して疑似リアルタイムスケジュールが決定され、ここで、多数のプロセッサに対するスケジュールが合併され、(潜在的には、多数回)負荷平衡化され、それによって厳密リアルタイムスケジュールよりも少ない処理リソースを使用するスケジュールが生成される。
1実施形態は、厳密リアルタイムスケジュール及び疑似リアルタイムスケジュールを規定し、プロセッサでタスクを実行するために厳密リアルタイムスケジュールと疑似リアルタイムスケジュールとの間で動的に切換えることによって、マルチプロセッサシステムにおけるプロセッサの利用率を増加させる方法である。この実施形態では、厳密または疑似リアルタイムスケジュールの選択は、進行ベースである。換言すると、データ処理がリアルタイムよりも高速度で進行するならば、十分なデータが処理され、システムが疑似リアルタイムスケジュールを使用することを可能にする。疑似リアルタイムスケジュールが破断するならば、システムが厳密リアルタイムスケジュールに戻す切換えを行うことを可能にするのに十分な処理されたデータが存在し、それによってデータのリアルタイム処理を行うことが保証される。
1実施形態では、データ処理の進行は、出力バッファを占有するエントリの数を監視することによって決定される。その数が第1のしきい値に合致するかそれを超えるとき、疑似リアルタイムスケジュールが実行される。その数が第2のしきい値以下であるとき、厳密リアルタイムスケジュールが実行される。1実施形態では、漸近評価アルゴリズムを使用して疑似リアルタイムスケジュールが決定され、ここで、多数のプロセッサに対するスケジュールが合併され、(潜在的には、多数回)負荷平衡化され、それによって厳密リアルタイムスケジュールよりも少ない処理リソースを使用するスケジュールが生成される。従って、厳密リアルタイムスケジュールは、静的の状態であるが、疑似リアルタイムスケジュールは、周期的に変更されることができる。
前述したように、マルチプロセッサコンピュータ処理システムにおけるプロセッサでリアルタイムタスクをスケジュールする従来技術の方法は、種々の利点と欠点とを有する。本発明の1以上の実施形態は、静的及び動的の両者のスケジュール態様の利点を提供し、これらの方法の1以上の対応する欠点を除去することを意図する。1実施形態では、利用可能なプロセッサを更に良好に使用する最適化されたスケジュールによって、時々置換されることのできる静的な最悪の場合のスケジュールを使用して、多数のプロセッサにおけるタスクをスケジュールする手段を提供することが望ましい。このスケジュール手段は、自己制御され、比較的容易に実行され、予測可能であり、調整可能であり、プロセッサの利用率に関する改良された効率を有する。
種々の実施形態の詳細を説明する前に、処理タスクと、スケジュールの決定のための基礎として情報が入手可能であることとを説明しておくことが有効である。この説明では、マルチプロセッサシステムにより実行されるリアルタイム処理の1例として、ARIBデジタルテレビジョン復号モデルに従ってビデオデータの処理を使用する(ARIBは、電波産業会であり、日本の標準方式の組織である)。この特定のタイプの処理は、本発明の実施形態を使用して実行されることのできる多数の異なるタイプのリアルタイム処理の単なる1例にすぎないことに注意すべきである。
図1を参照すると、デジタルテレビジョンデータの処理において実行されなければならない異なるタスクを示す例示的なタスクグラフが示される。この図面では、データは、最初にデジタルテレビジョンのチューナから受信される。処理における第1のタスクは、データのデマルチプレクスである(110)。これは、デジタルテレビジョンデータをその異なるコンポーネント部分に分割する。デジタルテレビジョンデータの各コンポーネントは、その後適切に処理されることができる。例えば、符号化されたオーディオデータは、オーディオ復号を受け(120)、符号化されたビデオデータは、ビデオ復号を受ける(130)等である。ビデオデータの復号後、データは、I/Pスケーリングを受ける(140)。最後に、デジタルテレビジョンデータの異なるコンポーネントでアルファブレンディングが行われ、それによってディスプレイを駆動するために適切な出力ビデオデータを生成する。表示されたテレビジョンデータ(イメージ)は、その後、ユーザによって観察されることができる。
タスクグラフは、デジタルテレビジョンデータの処理で実行される必要のある異なるタスク間の制約を説明する。例えば任意のデータが復号されることができる前に、デマルチプレクスされなければならない(110)。ビデオデータに関して、データは、アルファブレンドタスクで他のデータコンピュータと組み合わされることができる(150)前に、復号され(130)、I/P調整されなければならない(140)。
図1のタスクグラフで明確でない別の制約は、リアルタイム制約である。連続的なテレビジョンイメージをビデオディスプレイへ駆動するため、この連続的なテレビジョンイメージ流を維持するのに十分高い速度でデータを処理することが必要である。例えば、デジタルテレビジョンデータが毎秒60フレームの速度で与えられ、毎秒60フレームの速度で表示されることが意図されるならば、タスクは、少なくとも毎秒60フレームで与えられる速度で行われなければならない(出力データがバッファされるので、データが処理される速度は、瞬間速度でなく平均速度である)。
前述したように、デジタルテレビジョンデータの処理に含まれるタスクを実行する1態様は、各連続的なタスクを次に利用可能なプロセッサへ動的にスケジュールすることである。各プロセッサは、先のタスクを終了したときに次のタスクの実行を開始するので、この動的なスケジュール態様は、プロセッサの利用率を非常に高くすることができる。
この開示の目的に対して、「完全な動的スケジュール化」は、プロセッサにより実行されるタスクが、プロセッサが利用可能になる前にスケジュールされるのでなく、特定のプロセッサで「オンザフライ(on-the-fly)」で実行されるようにスケジュールされることを意味する。
動的スケジュール化方法に対する一般的な代替方法は、前述の静的スケジュール化方法である。ここで説明した本発明の実施形態は、一般的な静的スケジュール化方法で使用されるスケジュールに類似する予め定められたスケジュールに基づくので、静的スケジュール化を以下の文節で詳細に説明する。この説明の目的に対して、以下使用される「完全な静的スケジュール化」は、いずれのプロセッサによっていずれのタスクが実行されるかを決定するために使用されるスケジュールが完全に静的であり、即ち変更されないスケジュール化方法を意味する。これらの完全な静的スケジュール化方法と対照的に、本発明の実施形態は、1つのスケジュールが別のスケジュールに切換えられ、または変更されることを可能にし、それによってプロセッサを更に良好に使用する。
図2を参照すると、特定のアプリケーションによりビデオデータの処理において実行される1組のタスクを示す図が示される。図2は、ビデオデータA、B、C、Dを処理するためにアプリケーション内で規定される4つのタスクを示す。アプリケーションにより受信されるデータは、タスクAに従って処理され、次にタスクB、それからタスクCに、最後にタスクDに従って処理される。入力データの所定のピースに対しては、タスクA−Dはこの特定の順序で行われる。入力データはデータのピース流からなり、夫々この方法で処理されると仮定される。以下の説明の目的に対して、入力データのこれらのピースをデータのフレームと呼ぶ。
この技術用語は、入力データを通常「フレーム」でフォーマットされるタイプ(例えばビデオデータ)に限定するとして解釈するものでなく、特定の組の関連するタスクにより処理されるデータのブロックを参照するのに便宜であるためにここで単に使用することに注意すべきである。
図2は、最悪の場合のシナリオで各タスクを終了するのに必要な処理サイクル数を示す。この例では、タスクA−Dは、最悪の場合において夫々0.4、0.7、0.9、0.3サイクルを必要とすることが示される。これらの各タスクは、実際には、入力データの特定のフレームの処理で終了するためにより少数のサイクルしか必要としないが、完全な静的スケジュール化方法では、タスクのスケジュールされた実行を変更することができないので、最悪の場合のサイクル数を決定する必要がある。結果として、スケジュールが、特定のタスクに対して、ある数の処理時間サイクル(例えば0.5)だけに適応するが、タスクが時により多くのサイクル(例えば0.6)を必要とするならば、タスクはもはやリアルタイムでは処理されることができない。スケジュールがデータのリアルタイム処理を保証できないならば、最悪の場合のシナリオでは、これは「破断(broken)」する。
図2に示される最悪の場合の数に基づいて、2.3処理サイクルが4つの全てのタスクを終了するために必要とされる。しかしながら、各タスクは、単一のサイクル内で終了されなければならない。それ故、タスクは、順番に終了されなければならないので、またA及びBも、B及びCも、C及びDも単一のサイクルで結合されることができないので、一見して、4つのサイクルは、これらのタスクを終了するために必要であるように見える。しかしながら、タスクDは、次のデータフレームで実行されるとき、単一のサイクルでタスクAと組み合わされ、従って、3つの処理サイクルだけが必要とされる。従って、一連の直列的なサイクルにおいて、次のようなタスク、即ち、B1;C1;D1+A2;B2;C2;D2+A3;...を行うことができる(ここで添え字は、タスクが行われる入力データのフレームを示す)。
入力情報の1つのフレームの処理は、3サイクルを必要とするが、3サイクル毎に1フレームよりも高いスループットを有することが必要である。高いスループットは、入力データ流を処理するために多数のプロセッサを使用することによって得られる。例えば、単位サイクル毎に1フレームのスループットが所望であるならば、3つのプロセッサが使用されることができる。更に高いスループットが所望であるならば、付加的なプロセッサが入力データ流の処理に割当てられることができる。
多数のプロセッサが入力データ流の処理に使用されるとき、処理タスクは、典型的には、動作並列スケジュール化構造、またはデータ並列スケジュール化構造の2つのうち1つの態様でプロセッサに割当てられる。これらの構造は、図3に示される。図3の上部は、動作並列構造を示し、図3の下部は、データ並列構造を示す。
動作並列構造とデータ並列構造の両者では、(データの第1のフレームに対する)タスクAと(データの第2のフレームに対する)タスクDが単一のフレームで単一のプロセッサにより処理され、一方、タスクBとタスクCは夫々個別的に処理される。動作並列スケジュール化構造の場合には、データの各フレームで行われる異なるタスク(動作)は、並列(異なる)プロセッサにより行われる。従って、データの単一フレームは、多数のプロセッサにより部分的に処理される。データ並列スケジュール化構造では、データの各フレームで実行される異なるタスク(動作)は、同一のプロセッサにより実行される。結果としてデータの単一フレームは、単一のプロセッサにより完全に処理される。同時にデータのこの第1のフレームは、第1のプロセッサにより処理され、1以上の付加的なフレームは、第1のフレームと並列に異なるプロセッサにより処理される。
図3の例を再度参照すると、入力データの各フレームは、タスクA、B、C、Dからなる処理を受ける。図面で各タスクにより処理される特定のフレームは、タスクの添え字により示される。例えば「A1」は、タスクAがフレーム1で行われることを示す。図面の矢印は、所定のデータフレームに関して行われる連続したタスクを示す。換言すると、タスクAnからタスクBnへ、タスクBnからタスクCnへ、タスクCnからタスクDnへの矢印が存在する。
図面の上部の動作並列スケジュール化構造では、入力フレーム1でタスクAがプロセッサ1により実行されることが分かる。タスクBがその後プロセッサ2により実行される。タスクBが終了した後、タスクCがプロセッサ3により実行される。最後にフレーム1のタスクDがプロセッサ1により実行される。各入力フレームでは、同じタスクは同じプロセッサにより行われる。換言すると、タスクA、B、C、Dはプロセッサ1、2、3、1により夫々実行される。それ故、各プロセッサは1つの入力フレーム毎に同じタスクを行い、任意の1つの入力フレームで全てのタスクを行うプロセッサはない。
図3の下部のデータ並列スケジュール化構造では、入力フレーム1のタスクA−Dは、全てプロセッサ1により実行されることが分かる。各タスクは連続的なサイクルで実行され、(第1のフレームの)タスクAは(異なるフレームの)タスクDと同じサイクル中に実行される。従って、各データフレームは単一のプロセッサにより全て処理される。
これらの動作並列及びデータ並列スケジュール化構造は、両者とも厳密リアルタイム構造である。即ち、両構造は、入力データのリアルタイム処理を確実にする。しかし、動作並列またはデータ並列スケジュール化構造のいずれが使用されるかにかかわりなく、入力データフレームの処理で行われなければならないタスクは、利用可能な処理リソースの一部だけを使用することが認められる。先に指摘したように、最悪の場合には、タスクA−Dは、夫々0.4、0.7、0.9、0.3の処理サイクルを使用する。従って、3サイクルがタスクのスケジュールに必要とされ、2.3サイクルだけしか実際にタスクの実行に使用されることができない。これはプロセッサの利用可能な容量の約77%のみの利用率である。より典型的な場合には、この利用率は更に低くなる。例えば、タスクA−Dが典型的な0.4、0.7、0.2、0.3サイクルだけを夫々使用するならば、プロセッサの利用率は約53%に過ぎない(1.6/3.)。
典型的な場合のシナリオが図4に示される。この図面の上部は、(図3の上部の動作並列部分に対応する)厳密リアルタイムスケジュールを使用してスケジュールされたタスクを示す。タスクCは0.9サイクルの代りに0.2サイクルしか必要としないので、プロセッサ3は十分に活用されていない。ここで、2サイクルで4つの全てのこれらのタスクを実行することが可能であることに注意すべきである。例えば、タスクAとDは1サイクルで行われ、他方でタスクBとCは別のサイクルで行われる。この最適化された2サイクル(2プロセッサ)スケジュールは、図4の下部に示される。
「2サイクル」と「3サイクル」は、データの単一の入力フレームを処理するための2及び3プロセッササイクルの使用を夫々指していることに注意すべきである。これらの2または3プロセッササイクルは、単一のプロセッサまたは多数のプロセッサにより実行されることができる。いずれの場合にも、同一量のデータが2サイクルスケジュールを実行する2つのプロセッサと、3サイクルスケジュールを実行する3つのプロセッサによって処理される。
最適化された2サイクルスケジュールは、明白にプロセッサをより良好に利用するが、通常の静的スケジュール化方法では、スケジュールが変更されることを可能にしない。3サイクルスケジュールまたは2サイクルスケジュールのいずれかが排他的に使用される。前述したように、3サイクルスケジュールは、厳密リアルタイムスケジュールであり、プロセッサを非常に効率的に使用しないが、このスケジュールは、入力データのリアルタイム処理を保証する。2サイクルスケジュールは、典型的な場合には(及び恐らくほとんどの場合)十分であるが、最悪の場合では(タスクBとCが共に0.7+0.9=1.6サイクルを必要とするので)破断されよう。2サイクルスケジュールは、それ故、疑似リアルタイムスケジュールと呼ばれる。
それ故、本発明の実施形態は、厳密リアルタイム及び疑似リアルタイムスケジュールの組み合せを使用する。これらのスケジュールは、交代的に使用され、それによって典型的な場合のシナリオに遭遇するときに疑似リアルタイムスケジュールの効率が得られるが、最悪の場合のシナリオに遭遇するときには、厳密リアルタイムスケジュールの保証されたリアルタイム処理が行われる。
厳密リアルタイムスケジュールが使用されるべきか、または疑似リアルタイムスケジュールが使用されるべきかについての決定は、入力データの処理中に行われる進行に基づく。1実施形態では、入力データの処理におけるシステムの進行は、出力バッファ中に記憶される処理されたデータの量によって決定される。出力バッファは、ユーザに与えられるためのデータがディスプレイ装置に転送されるまで、一時的に処理されたデータを記憶する。
データは、ディスプレイ装置が必要とする速度と正確に同じ速度で処理されない可能性があるので、出力バッファは、処理されたデータを記憶するために使用される。ディスプレイ装置が使用する速度よりも高い速度でデータが処理されるとき、データは出力バッファ中に累積される。ディスプレイ装置が使用する速度よりも低い速度でデータが処理されるとき、データは出力バッファから除去される。従って、短期間のデータスループットは、長期のスループットがディスプレイ装置に連続する処理されたデータ流を与えるのに十分高いスループットである限り、変化させることができる。
1実施形態では、出力バッファのデータの量が監視され、1以上のしきい値レベルと比較される。出力バッファのデータの量が第1のしきい値よりも高いならば、処理システムは、疑似リアルタイムスケジュールが使用されることを可能にするのに十分な進行を行っている。換言すると、出力バッファ中には十分なデータが存在するので、疑似リアルタイムスケジュールが破断しても(リアルタイムでデータを処理できなくても)、データはある程度の期間の時間だけ中断せずに出力バッファからディスプレイ装置へ供給され続けることができる。これによって処理システムは、疑似リアルタイムスケジュールを使用してより高い速度でデータを処理するか、または厳密リアルタイムスケジュールに切換えることによって回復することができる。これは、データが少なくともディスプレイ装置に与えられる速度程度の速度でデータを処理することを保証する。
図5を参照すると、例示的な実施形態の出力バッファを示す図が示される。図5は、複数のエントリ520−524を有する出力バッファ510を示す。この特定の実施形態では、n個のエントリが存在する。バッファ510はFIFO(先入れ先出し)バッファであり、データはバッファに記憶された順序と同じ順序でバッファから除去される。図面に示されるバッファエントリは、バッファ中の特定の記憶位置に対応しないで、代りにバッファ中で占有するエントリの数を示すことを意図することに注意すべきである。最下位置のバッファエントリ520は、それ故、バッファのヘッドのエントリに対応すると考えられ、一方で最上位置のバッファエントリは、バッファのテールのエントリに対応すると考えられる。
バッファ510は、それ故、この説明の目的に対しては、下部から上部まで満たされる(即ち、バッファエントリ520で開始し、必要な数だけ連続的なバッファエントリを使用する)。従って、出力データがバッファ510の3つのエントリを満たすならば、占有するエントリは、エントリ520−522である。n−1個のエントリ中にデータが存在するならば、占有するエントリは、エントリ520−523である(エントリ522と523の間には、付加的なエントリが存在してもよい)。
図面で示されるように、第1のしきい値530と第2のしきい値540が存在する。2つのしきい値は、同一レベルに設定されることができるが、この実施形態では、2つのしきい値は、バッファ510中の異なるレベル(エントリ数)に対応する。第1のしきい値530は、図5では「緊急」しきい値として識別される。バッファ中の占有されたエントリ数が緊急しきい値530よりも小さいならば、システムは緊急状態にあると考えられる。これは、単にデータがデータ処理のためのリアルタイム要求を満たすのに十分な速度で処理されることを確実にするためのステップを、システムが取らなければならないことを意味する。換言すると、システムは、バッファからディスプレイ装置へ与えられる出力データ流に中断を生じさせるバッファのアンダーフローが存在しないこと(即ち、バッファ中にデータがないこと)を確実にしなければならない。
第2のしきい値540は、図面では、「グリーン」しきい値として識別される。バッファ中で占有するエントリ数がグリーンしきい値540よりも大きいならば、システムはグリーン状態にあると考えられる。これは、バッファ中に十分なデータが存在するので、システムは、幾つかの後続するサイクルでデータのリアルタイム処理を確実にする必要がないことを意味する。即ち、新しいエントリがリアルタイムでバッファに記憶されなくても、幾つかのサイクルにおいてリアルタイムで出力バッファからディスプレイ装置へデータを提供し続けるために十分なエントリが出力バッファに存在する。
それ故、しきい値530と540は、厳密リアルタイム及び疑似リアルタイム処理スケジュールが使用可能及び/または使用されなければならない状態を規定する。特に、システムが緊急状態である(バッファ510中のエントリ数が緊急しきい値530よりも小さい)ならば、これらのバッファエントリがリアルタイムで置換されない場合、連続的な出力データをディスプレイに提供するのに十分なエントリがバッファに存在しないので、厳密リアルタイムスケジュールを使用しなければならない。他方で、システムがグリーン状態である(バッファ510中のエントリ数がグリーンしきい値540よりも大きい)ならば、バッファエントリがリアルタイムで置換されなくても、十分なエントリが存在するので、データをバッファからディスプレイ装置へリアルタイムで提供することができる。
これは、勿論、無期限に継続できず、バッファ中のエントリ数が緊急しきい値より下に落ちたならば、システムは緊急状態にあり、バッファのアンダーランがないことを確実にするために厳密リアルタイムスケジュールを使用する必要がある。
別の実施形態において、しきい値は異なる必要はないことに注意すべきである。更に、システムの状態は、出力バッファ中の占有されたエントリの数が夫々のしきい値よりも大きいか小さいか、それに等しいときに変化することができる。
図6を参照すると、グリーン状態及び緊急状態と、これらの状態間の転移を示す状態図が示される。1実施形態では、データがまだ処理されておらず出力バッファ中に記憶されていないので、システムは緊急状態(610)で開始する。緊急状態では、システムは、厳密リアルタイムスケジュールに従ってデータを処理する。データが処理されるに従って、エントリがバッファ中に記憶される。データがバッファから除去されてディスプレイ装置に与えられるリアルタイム速度よりも大きい速度でデータが処理されるならば、データがバッファ中に累積され、占有されたエントリの数が増加する。バッファを占有するエントリの数がグリーンしきい値を超えるとき、システムはグリーン状態(620)に転移する。
システムがグリーン状態に入るとき、これは、データを処理するために疑似リアルタイムスケジュールを使用し始める。疑似リアルタイムスケジュールは、大部分のデータがリアルタイムで処理されることができるように構成される。実際にデータがリアルタイムで処理される程度まで、バッファ中を占有するエントリのレベルが維持されるか、増加される。しかしながら前述したように、疑似リアルタイムスケジュールは、ある場合には(例えば、最悪の場合)破断する。これが生じるとき、新しいバッファエントリは、古いエントリがバッファから除去されるようには、迅速に記憶されず、バッファを占有するエントリの数は減少する。占有するバッファエントリ数が緊急しきい値よりも下に落ちたならば、システムは緊急状態に戻り、ここで厳密リアルタイムスケジュールがデータを処理するために使用される。
図7を参照すると、1実施形態に従って、システムが厳密リアルタイムと疑似リアルタイム処理スケジュールとの間で切換えられる例示的なシナリオを示す図が示される。この例では、入力データは前述したのと同じ方法で処理される。即ち、タスクA−Dは、各入力データフレームについて実行され、結果的なデータは、ディスプレイ装置へ転送される前に出力バッファ中に記憶される。
図7から認められるように、入力データは最初にマルチプロセッサシステム中の3つのプロセッサにより処理される。この例では、プロセッサはデータ並列の厳密リアルタイムスケジュールを使用する。それ故、プロセッサ1は、同じサイクル(c0)において入力データの第1のフレームのタスクAを実行し、入力データの先のフレームのタスクDを実行する。次のサイクルc1で、プロセッサ1は、データの第1のフレームのタスクBを実行する。サイクルc2で、プロセッサ1は、データの第1のフレームのタスクCを実行する。最後に、サイクルc3で、プロセッサ1は、データの第1のフレームのタスクD(ならびにデータの後のフレームのタスクA)を実行する。プロセッサ2及び3は、入力データの連続的なフレームの同一のタスクを行う。
サイクルc3中、出力バッファ中の占有されたエントリの数は、グリーンしきい値よりも大きいことが決定される。従って、システムは、サイクルc0−c3中に使用される厳密リアルタイムスケジュールから疑似リアルタイムスケジュールへ切換える。この疑似リアルタイムスケジュールは、タスクA−Dを行うためにプロセッサのうちの2つだけを使用する。特に、各プロセッサは、単一のサイクルでタスクAとBを実行し、単一のサイクルでタスクCとDを実行する。タスクAとBを実行するのに必要な時間が単一のサイクルに組み合わせるのに十分なほど小さいので、この特定の疑似リアルタイムスケジュールがこの例で存在することに注意すべきである。同じことがタスクCとDにも当てはまる。これが当てはまらないならば、異なる疑似リアルタイムスケジュールが実行されよう。
サイクルc4で開始して実行される疑似リアルタイムスケジュールは、最初にリアルタイムで入力データを処理するが、個々のタスクを実行するのに必要な時間量は変化でき、それによってスケジュールは、もはやデータのリアルタイム処理を行わない。例えば図7のサイクルc7の開始で示されるように、タスクCを実行するのに必要な処理時間量は増加され、それによってタスクCとDは、もはや単一のサイクルで実行されることができない。従って、タスクC6はサイクルc7でプロセッサ3により実行され、タスクD5はサイクルc8でプロセッサ3により実行される。これは、データの次のフレームにも当てはまる。疑似リアルタイムスケジュールは、もはやリアルタイムでデータを処理できないので、出力バッファ中の占有されたエントリの数は減少される。
サイクルc10中、出力バッファ中の占有されたエントリの数は、緊急しきい値よりも下に落ち、システムが緊急状態にあることが決定される。結果として、システムは、疑似リアルタイムスケジュールから厳密リアルタイムスケジュールに戻るよう切換えられる。これは、(サイクルc0で)最初にシステムにより使用されたのと同じ厳密リアルタイムスケジュールである。従って、プロセッサ1はタスクAとDを実行し、一方、プロセッサ2はタスクBを実行し、プロセッサ3はタスクCを実行する。厳密リアルタイムスケジュールは、出力バッファが再度グリーンしきい値を超えた占有エントリ数を有するまで使用され続ける。
以上説明したスケジュールは、単なる例示であり、任意の適切な厳密リアルタイムスケジュール及び/または疑似リアルタイムスケジュールが使用されることができることに注意すべきである。図7の特定の例は、厳密リアルタイムスケジュールと疑似リアルタイムスケジュールとの切換えに遅延がないことを示すが、幾つかの実施形態は、スケジュールの切換えで遅延を受ける可能性があることにも注意すべきである。
前述の厳密リアルタイムスケジュールは、リアルタイムタスクの静的スケジュールを行うために通常使用される任意の方法で決定されることができる。1実施形態では、厳密リアルタイムスケジュールは、タスクが行われなければならない順序、処理のリアルタイム要求等、行われるタスクの制約を検査することによって決定される。幾つかの場合には、処理制約を識別するためにタスクグラフの使用が役に立つ。厳密リアルタイムスケジュールは、最悪の場合の処理シナリオに基づいて構成されることができる。
疑似リアルタイムスケジュールは、データのリアルタイム処理のような全ての処理制約が常に満たされることを保証する必要がないので、このスケジュールは、典型的な最悪でない場合のシナリオで利用可能な処理リソースを良好に使用することを選択することができる。特定の疑似リアルタイムスケジュールを選択するために多数の可能なベースと、実際にこのスケジュールを決定するための多数のアルゴリズムが存在する。1実施形態では、漸近的評価方法が疑似リアルタイムスケジュールを決定するために使用される。
この実施形態で使用される漸近的評価方法は、可能な疑似リアルタイムスケジュールの選択と、それらのリアルタイム処理性能に関するスケジュールの評価を含む。特定のスケジュールの性能が十分であると決定されたならば、そのスケジュールは、実際に厳密リアルタイムスケジュールに代わって疑似リアルタイムとして実行されることができる。
1実施形態では、候補の疑似リアルタイムスケジュールは、現在スケジュールされたプロセッサのうち2つのスケジュールを合併させ、結果的に得られたスケジュールを評価し、スケジュールのリアルタイム性能の改良が必要ならばスケジュールを負荷平衡化させることによって選択される。この方法は、図8の例示的なシナリオにおいて示される。
図8を参照すると、容認可能なリアルタイム性能を有する疑似リアルタイムスケジュールを実現するため、厳密リアルタイムスケジュールの変更を示す図が示される。この図面は、3つのスケジュールを示す。図面の上部は、例えば図3に関連して前述した厳密リアルタイムスケジュールである。図8の中間部のスケジュールは、この図の上部の厳密リアルタイムスケジュールに基づいた第1の変更されたスケジュールである。図8の下部のスケジュールは、図面の中間部の第1の変更されたスケジュールに基づいた第2の変更されたスケジュールである。
図8の上部の厳密リアルタイムスケジュールは、3つのプロセッサ(プロセッサ1、プロセッサ2、プロセッサ3)を使用する。典型的な場合のシナリオでは、厳密リアルタイムスケジュールは、(タスクAとDを実行する)プロセッサ1を約50%だけ使用し、(タスクBを実行する)プロセッサ2を約60%使用し、(タスクCを実行する)プロセッサ3を約70%使用する。
疑似リアルタイムスケジュールの初期の候補は、2つのプロセッサのタスクを組み合わせることにより形成される。図8の例では、プロセッサ1と2のスケジュールされたタスクは、プロセッサ4で組み合わされて実行される。プロセッサ3でスケジュールされるタスクは、プロセッサ5によって実行される。図面で示されるように、各サイクルでスケジュールされたタスクは、サイクルc1、c2、c5でスケジュールされるように終了されるが、サイクルc3とc6ではスケジュールされるように終了されない。(これら及び付加的なサイクルに基づいて)候補スケジュールに対する故障率は33%であると決定され、この実施形態では、これを容認することができない。
第1の候補スケジュールは、容認できる性能を与えないので、このスケジュールのタスクは、図面の下部に示されるように、新しい候補スケジュールを生成するために負荷平衡化される。この候補スケジュールでは、プロセッサ4は、タスクAとBを行い、一方、プロセッサ5は、タスクCとDを行う。示されるサイクル(c1−c6)及び付加的なサイクルに基づいて、このスケジュールは、1%のみの時間だけ故障する(スケジュールされたタスクを終了しない)と決定される。この実施形態では、この性能を容認できることが決定される。このスケジュールは、それ故、前述したようにシステムがグリーン状態であるときに実行されることができる。
図8の下部に示される候補スケジュールは、2つのみのステップ(即ち、プロセッサ1と2のスケジュールの合併と、プロセッサ4からプロセッサ5への負荷平衡化)から得られたが、これらのステップに対しては、複数回反復することができる。最適化された候補スケジュールの発生は、また進行中のプロセスであり、それによって主要なデータ及び/または処理状態に適合した疑似リアルタイムスケジュールは、連続的に再評価される。
図8を伴って前述した実施形態では、候補疑似リアルタイムスケジュールは、候補スケジュールを使用して、1対の利用可能なプロセッサで実際にデータを処理することによって評価されることに注意すべきである。データは、冗長(即ちプロセッサ1−3により処理される同じデータ)または非冗長データである。候補スケジュールのリアルタイム性能は、その代わりにタスクA−Dを行うためにプロセッサ1−3により必要とされる処理リソース量(サイクル数)を決定し、その後、そのタスクを実行するために候補スケジュールにより必要とされるサイクル数を計算することによって評価されることができる。
前述の漸近的スケジュール選択方法は、例示であることにも注意すべきである。多くの他の方法が対応するシステムがグリーン状態であるときに使用する適切な疑似リアルタイムスケジュールを選択するために別の実施形態で使用されることができる。同様に、システムがグリーンまたは緊急(或いは、等化状態)に入る時についてのインジケータとしてバッファしきい値を使用するための前述の方法は、システムにより実行されるデータ処理の進行の測定に使用されることのできる種々の方法の単なる例示である。システムの処理の進行を測定する他の方法が別の実施形態で使用されることができる。
図8と関連して前述した疑似リアルタイムスケジュールは、厳密リアルタイムスケジュールよりも少数のプロセッサを使用するが、これは、必ずしも別の実施形態の場合に必要でないことに更に注意すべきである。これらの実施形態では、厳密リアルタイムスケジュールにより使用されるのと同じ数のプロセッサで疑似リアルタイムスケジュールを実行するが、付加的なタスクをプロセッサで実行することが可能である。
前述の進行ベースのタスクスケジュール態様は、種々の多処理システムトポロジで実行されることができる。図9を参照すると、前述の方法が実行されることのできるマルチプロセッサシステムの例示的な実施形態を示す図が示される。この図面では、マルチプロセッサシステム900は、他のマルチプロセッサシステムのように、複数の個々のプロセッサ911−914を含む。各プロセッサ912−914は、構造オブジェクト922−924の対応する1つを使用するために構成される。プロセッサ911もまた対応する構造オブジェクトを使用する可能性あるが、これは、必ずしもそのようでない。構造オブジェクトは、プロセッサが適切なタスク(例えば前述のタスクA−d)を実行することを可能にするプログラミングを行う。
この実施形態では、プロセッサ911は、システム900内で管理機能を行うために使用される主プロセッサである。例えば主プロセッサ911は、この実施形態では、スケジュール管理装置を動作させるように構成される。スケジュール管理装置930は、前述のスケジュール評価、変更(例えば合併及び負荷平衡化)、置換、ならびにデータ処理の進行の監視、状態制御を行う。スケジュール管理装置930は、出力バッファ940から受信された進行情報(例えばバッファレベル)と、プロセッサ911−914からのタスク実行情報(例えばタスクの実行に使用されたサイクル数)と、構造オブジェクト922−924とに基づいて動作する。
スケジュール管理装置930内で、スケジュール評価コンポーネント931は、プロセッサ911−914からのタスク実行情報と構造オブジェクト922−924とを受信する。スケジュール評価コンポーネント931は、スケジュールの性能を示すスケジュール評価情報(例えば、スケジュールが故障するサイクルの割合)をスケジュール選択コンポーネント932へ提供する。スケジュール選択コンポーネント932は、グリーン状態で使用するための疑似リアルタイムスケジュールを生成するためにスケジュール選択プログラミング952を実行する。このスケジュールは、スケジュール置換コンポーネント933に与えられ、これは、プロセッサ911−914と構造オブジェクト922−924により使用されるスケジュールの置換を実際に行う。スケジュールの置換は、進行ベースの制御手段934から受信された入力に基づいており、その進行ベースの制御手段934は、出力バッファ940中の占有されたエントリの数に基づく。
当業者は、ここで開示した実施形態に関して説明した種々の例示的な論理ブロック、モジュール、回路、アルゴリズムステップが、電子ハードウエア、コンピュータソフトウエア、またはその両者の組合せとして実施されてもよいことを認識するであろう。このハードウエアとソフトウエアとの交換能力を明白に示すため、種々の例示的な構成部品、ブロック、モジュール、回路、ステップをそれらの機能に関して一般的に前述した。このような機能がハードウエアまたはソフトウエアのいずれとして構成されるかは特定の応用と、システム全体に課された設計制約に従う。当業者は、各特定の応用に対して、説明した機能を種々の方法で実行できるが、このような実行の決定は本発明の技術的範囲からの逸脱として解釈されるべきではない。
ここで開示した実施形態に関して説明した種々の例示的な論理ブロック、モジュール、回路は、特定用途用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、汎用目的のプロセッサ、デジタル信号プロセッサ(DSP)または他のロジック、ディスクリートなゲートまたはトランジスタロジック、ディスクリートなハードウエア構成部品、或いはここで説明した機能を実行するように設計された任意のその組合せによって構成または実行されることができる。汎用目的のプロセッサは任意の通常のプロセッサ、コントローラ、マイクロコントローラ、状態マシン等であってもよい。プロセッサはまたコンピュータデバイスの組合せ、例えばDSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連結した1以上のマイクロプロセッサ、或いは任意の他のこのような構造として構成されることもできる。
ここで開示した実施形態に関連して説明した方法のステップは、直接的にハードウエア、プロセッサにより実行されるソフトウエア(プログラム命令)、またはその2つの組み合わせで実施されてもよい。ソフトウエアはRAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取出し可能なディスク、CD−ROM、または技術的に知られるその他の形態の記憶媒体中に存在してもよい。例示的な記憶媒体はプロセッサに結合され、このようなプロセッサは情報を記憶媒体から読み出し、そこに情報を書込むことができる。その代りとして、記憶装置はプロセッサに一体化されることもできる。プロセッサ及び記憶媒体は例えばASIC中に存在してもよい。ASICはユーザ端末に存在してもよい。プロセッサ及び記憶媒体は代わりにユーザ端末またはその他のデバイスでディスクリートな構成部品として存在することもできる。
以上、本発明により与えられる効果及び利点が、特定の実施形態に関して説明された。これらの効果及び利点、ならびにこれらを生じさせる或いはより明白にさせるいかなる要件または限定も、特許請求の範囲に記載された任意または全ての特徴の、決定的、必須、或いは本質的な特徴として解釈されるべきではない。ここで使用されるように、用語「具備する」、「具備している」または任意の他のその変更例は排他的ではなく、これらの用語に付随する要件または限定を含むとして解釈されることを意図する。従って、1組の要件を含むシステム、方法、またはその他の実施形態は、これらの要件だけに限定されることを意図するものではなく、記載されていない或いは請求された実施形態に固有ではないその他の要件を含むことができる。
開示される実施形態の以上の説明は、当業者が本発明を実行または使用可能にするために提供される。これらの実施形態に対する種々の変形は当業者にとって容易に明白であり、ここで規定される一般原理は本発明の技術的範囲を逸脱せずに他の実施形態に適用されることができる。従って、本発明はここで示された実施形態に限定されず、ここで説明され且つ特許請求の範囲で列挙される原理及び新規な特徴と一貫して最も広い範囲に従うことを意図する。
例えば、本発明によれば、下記のような方法、システム、及びソフトウェアプログラムプロダクトを提供することができる。
(1)データのリアルタイム処理を行うための方法であって、
マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために厳密リアルタイムスケジュールを実行するステップと、
前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うために疑似リアルタイムスケジュールを実行するステップと、
動作条件の主要なセットを評価するステップと、
前記動作条件の前記主要なセットの評価に基づいて前記厳密リアルタイムスケジュールまたは前記疑似リアルタイムスケジュールを交代的に選択するステップと、
前記選択されたスケジュールに従って前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うステップと、
を具備する。
(2)前記動作条件は、出力バッファを占有するエントリ数を具備する前記(1)に記載の方法。
(3)前記出力バッファ中の前記占有されたエントリの数が第1のしきい値よりも少ないとき、前記厳密リアルタイムスケジュールを選択するステップを更に具備する前記(2)に記載の方法。
(4)前記出力バッファ中の前記占有されたエントリの数が第2のしきい値よりも大きいとき、前記疑似リアルタイムスケジュールを選択するステップを更に具備する前記(2)に記載の方法。
(5)前記疑似リアルタイムスケジュールを動的に選択するステップを更に具備する前記(1)に記載の方法。
(6)前記疑似リアルタイムスケジュールは、漸近的評価アルゴリズムを使用して選択される前記(5)に記載の方法。
(7)前記疑似リアルタイムスケジュールの動的な選択は、前記厳密リアルタイムスケジュールの1以上の連続的な変更を行うステップと、各変更後、前記変更されたスケジュールが許容可能な疑似リアルタイム性能を有するか否かを決定するステップを具備する前記(5)に記載の方法。
(8)前記厳密リアルタイムスケジュールに対する1以上の連続的な変更を行うステップは、2以上のプロセッサにより行われるためタスクのスケジュールを合併させるステップを具備する前記(7)に記載の方法。
(9)厳密リアルタイムスケジュールに対する1以上の連続的な変更を行うステップは、2以上のプロセッサにより行われるタスクのスケジュールを負荷平衡化するステップを更に具備する前記(7)に記載の方法。
(10)各変更の後における前記変更されたスケジュールが許容可能な疑似リアルタイム性能を有するか否かの決定は、冗長データの処理における前記変更されたスケジュールのリアルタイム性能を評価するステップを具備する前記(7)に記載の方法。
(11)各変更の後における前記変更されたスケジュールが許容可能な疑似リアルタイム性能を有するか否かの決定は、非冗長データの処理における前記変更されたスケジュールのリアルタイム性能を評価するステップを具備する前記(7)に記載の方法。
(12)複数のプロセッサと、
前記複数のプロセッサに結合するスケジュール管理装置と、
を具備するシステムであって、
前記スケジュール管理装置は、前記複数のプロセッサによって実行されたデータ処理のリアルタイムの進行を決定し、前記複数のプロセッサによって実行されたデータ処理の前記リアルタイムの進行に基づいて厳密リアルタイムスケジュールまたは疑似リアルタイムスケジュールのいずれかを選択するように構成され、
前記複数のプロセッサは、前記選択されたスケジュールに従って1組のデータ処理タスクを実行するように構成される。
(13)前記複数のプロセッサにより処理されるデータを一時的に記憶し、前記処理されたデータをリアルタイムで出力装置に提供するように構成される出力バッファを更に具備する前記(12)に記載のシステム。
(14)前記スケジュール管理装置は、前記出力バッファ中の占有されたエントリの数を決定することによって前記複数のプロセッサにより行われるデータ処理の前記リアルタイムの進行を決定するように構成される前記(13)に記載のシステム。
(15)前記スケジュール管理装置は、前記出力バッファ中の占有されたエントリの数に基づいて、前記厳密リアルタイムスケジュール及び前記疑似リアルタイムスケジュールのいずれかを選択するように構成される前記(14)に記載のシステム。
(16)前記スケジュール管理装置は、前記出力バッファ中の占有されたエントリの数が第1のしきい値よりも少ないとき、前記厳密リアルタイムスケジュールを選択するように構成される前記(15)に記載のシステム。
(17)前記スケジュール管理装置は、前記出力バッファ中の占有されたエントリの数が第2のしきい値よりも大きいとき、前記疑似リアルタイムスケジュールを選択するように構成される前記(15)に記載のシステム。
(18)前記スケジュール管理装置は、静的な厳密リアルタイムスケジュールを使用し、前記疑似リアルタイムスケジュールを動的に決定するように構成される前記(12)に記載のシステム。
(19)前記スケジュール管理装置は、前記厳密なリアルタイムスケジュールに対して1以上の連続的な変更を行うことによって前記疑似リアルタイムスケジュールを動的に決定し、各変更後、前記変更されたスケジュールが、許容可能な疑似リアルタイム性能を有するか否かを決定するように構成される前記(18)に記載のシステム。
(20)前記厳密リアルタイムスケジュールの前記1以上の連続的な変更は、2以上のプロセッサによって行われるタスクのスケジュールの合併を含む前記(19)に記載のシステム。
(21)前記厳密リアルタイムスケジュールの前記1以上の連続的な変更は、2以上のプロセッサによって行われるべきタスクのスケジュールの負荷平衡化を含む前記(19)に記載のシステム。
(22)前記スケジュール管理装置は、前記変更されたスケジュールが、冗長データの処理によって許容可能な疑似リアルタイム性能を有するか否かを決定するように構成される前記(19)に記載のシステム。
(23)前記スケジュール管理装置は、前記変更されたスケジュールが、非冗長データの処理によって許容可能な疑似リアルタイム性能を有するか否かを決定するように構成される前記(19)に記載のシステム。
(24)コンピュータで読取り可能な記憶媒体を具備するソフトウェアプログラムプロダクトであって、
マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために厳密リアルタイムスケジュールを実行するステップと、
1以上の前記複数のプロセッサで前記1組のタスクを行うために疑似リアルタイムスケジュールを実行するステップと、
動作条件の主要なセットを評価するステップと、
前記動作条件の主要なセットの評価に基づいて前記厳密リアルタイムスケジュールまたは前記疑似リアルタイムスケジュールを交代的に選択するステップと、
前記選択されたスケジュールに従って前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うステップと、
を具備する方法をコンピュータに実行させるように構成される1以上の命令を含む。
デジタルテレビジョンデータの処理において実行されなければならない異なるタスクを示す例示的なタスクグラフ。 1実施形態におけるビデオデータの処理において実行される1組のタスクを示す説明図。 1実施形態に従う動作並列及びデータ並列静的スケジュール構造を示す説明図。 1実施形態における最悪の場合及び典型的な場合のシナリオに対する静的スケジュール構造を示す説明図。 1実施形態に従って、グリーン及び緊急状態を規定する出力バッファ及び対応するしきい値の構造を示す構成図。 1実施形態に従うグリーン状態及び緊急状態と、これらの状態間の転移を示す状態図。 1実施形態に従って、システムが厳密リアルタイムと疑似リアルタイム処理スケジュールとの間で切換える例示的なシナリオを示す説明図。 1実施形態に従って、容認可能なリアルタイム性能を有する疑似リアルタイムスケジュールを実現するため、漸近的アルゴリズムを使用する厳密リアルタイムスケジュールの変更を示す説明図。 1実施形態に従うマルチプロセッサシステムの構造を示す構成図。

Claims (5)

  1. データのリアルタイム処理を行うための方法であって、
    マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために厳密リアルタイムスケジュールを実行するステップと、
    前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うために疑似リアルタイムスケジュールを実行するステップと、
    動作条件の主要なセットを評価するステップと、
    前記動作条件の前記主要なセットの評価に基づいて前記厳密リアルタイムスケジュールまたは前記疑似リアルタイムスケジュールを交代的に選択するステップと、
    前記選択されたスケジュールに従って前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うステップと、
    を具備する。
  2. 前記動作条件は、出力バッファを占有するエントリ数を具備し、前記出力バッファ中の前記占有されたエントリの数が第1のしきい値よりも少ないとき、前記厳密リアルタイムスケジュールを選択するステップを更に具備する請求項1に記載の方法。
  3. 前記動作条件は、出力バッファを占有するエントリ数を具備し、前記出力バッファ中の前記占有されたエントリの数が第2のしきい値よりも大きいとき、前記疑似リアルタイムスケジュールを選択するステップを更に具備する請求項1または2に記載の方法。
  4. 複数のプロセッサと、
    前記複数のプロセッサに結合するスケジュール管理装置と、
    を具備するシステムであって、
    前記スケジュール管理装置は、前記複数のプロセッサによって実行されたデータ処理のリアルタイムの進行を決定し、前記複数のプロセッサによって実行されたデータ処理の前記リアルタイムの進行に基づいて厳密リアルタイムスケジュールまたは疑似リアルタイムスケジュールのいずれかを選択するように構成され、
    前記複数のプロセッサは、前記選択されたスケジュールに従って1組のデータ処理タスクを実行するように構成される。
  5. コンピュータで読取り可能な記憶媒体を具備するソフトウェアプログラムプロダクトであって、
    マルチプロセッサコンピュータ処理システムにおける複数のプロセッサで1組のタスクを行うために厳密リアルタイムスケジュールを実行するステップと、
    1以上の前記複数のプロセッサで前記1組のタスクを行うために疑似リアルタイムスケジュールを実行するステップと、
    動作条件の主要なセットを評価するステップと、
    前記動作条件の主要なセットの評価に基づいて前記厳密リアルタイムスケジュールまたは前記疑似リアルタイムスケジュールを交代的に選択するステップと、
    前記選択されたスケジュールに従って前記複数のプロセッサの1以上のプロセッサで前記1組のタスクを行うステップと、
    を具備する方法をコンピュータに実行させるように構成される1以上の命令を含む。
JP2005338770A 2004-11-24 2005-11-24 データのリアルタイム処理を行うための方法及びシステム Expired - Fee Related JP4786313B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/997,550 US7725897B2 (en) 2004-11-24 2004-11-24 Systems and methods for performing real-time processing using multiple processors
US10/997,550 2004-11-24

Publications (2)

Publication Number Publication Date
JP2006146937A true JP2006146937A (ja) 2006-06-08
JP4786313B2 JP4786313B2 (ja) 2011-10-05

Family

ID=36462334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005338770A Expired - Fee Related JP4786313B2 (ja) 2004-11-24 2005-11-24 データのリアルタイム処理を行うための方法及びシステム

Country Status (2)

Country Link
US (2) US7725897B2 (ja)
JP (1) JP4786313B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011061878A1 (ja) * 2009-11-18 2011-05-26 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法及びプログラムが格納された非一時的な可読媒体
JP2015156165A (ja) * 2014-02-21 2015-08-27 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631093B2 (en) * 1998-03-19 2014-01-14 Crane Merchandising Systems, Inc. Remote data acquisition, transmission and analysis system including handheld wireless equipment
US7778600B2 (en) 2001-06-29 2010-08-17 Crane Merchandising Systems, Inc. Apparatus and method to provide multiple wireless communication paths to and from remotely located equipment
US7164884B2 (en) * 2001-06-29 2007-01-16 Isochron, Llc Method and system for interfacing a machine controller and a wireless network
US20030101262A1 (en) * 2001-11-27 2003-05-29 Isochron Data Corporation Method and system for scheduling the maintenance of remotely monitored devices
US20030204391A1 (en) * 2002-04-30 2003-10-30 Isochron Data Corporation Method and system for interpreting information communicated in disparate dialects
DE102004052576A1 (de) * 2004-10-29 2006-05-04 Advanced Micro Devices, Inc., Sunnyvale Paralleler Verarbeitungsmechanismus für Multiprozessorsysteme
US8468125B2 (en) * 2005-04-12 2013-06-18 International Business Machines Corporation Automatically moving multidimensional data between live datacubes of enterprise software systems
US7877355B2 (en) * 2005-04-12 2011-01-25 International Business Machines Corporation Job scheduling for automatic movement of multidimensional data between live datacubes
US8484068B2 (en) * 2005-12-14 2013-07-09 Crane Merchandising Systems, Inc. Method and system for evaluating consumer demand for multiple products and services at remotely located equipment
US20070195490A1 (en) * 2006-02-13 2007-08-23 Howell Sean V Apparatus And Method For Attaching An Electronic Module To A Lock Assembly
US8225320B2 (en) * 2006-08-31 2012-07-17 Advanced Simulation Technology, Inc. Processing data using continuous processing task and binary routine
US7997484B2 (en) * 2006-09-13 2011-08-16 Crane Merchandising Systems, Inc. Rich content management and display for use in remote field assets
US20080172238A1 (en) * 2007-01-12 2008-07-17 Yosuke Muraki Electronic system with run-time information
US8959028B2 (en) * 2007-07-02 2015-02-17 Crane Merchandising Systems, Inc. Apparatus and method for monitoring and control of remotely located equipment
US8347207B2 (en) * 2007-07-16 2013-01-01 International Business Machines Corporation Automatically moving annotations associated with multidimensional data between live datacubes
US8533315B2 (en) * 2007-10-25 2013-09-10 Crane Merchandising Systems, Inc. Systems and methods for monitoring performance of field assets
US9268837B2 (en) 2007-12-04 2016-02-23 International Business Machines Corporation Data entry commentary and sheet reconstruction for multidimensional enterprise system
US8875147B2 (en) * 2008-11-12 2014-10-28 Siemens Aktiengesellschaft Scalable system and method thereof
WO2011027302A1 (en) * 2009-09-02 2011-03-10 Plurality Ltd. Associative distribution units for a high flow-rate synchronizer/scheduler
JP2013515988A (ja) * 2009-12-23 2013-05-09 インチロン ゲーエムベーハー 複数の制御装置を有する組み込みシステムにおける最適なハードウェア/ソフトウェア分割の生成方法
WO2011078811A1 (en) * 2009-12-24 2011-06-30 Vasan Abe Sun Retail machine and system and method of transaction thereof
US9323438B2 (en) 2010-07-15 2016-04-26 Apple Inc. Media-editing application with live dragging and live editing capabilities
KR101686082B1 (ko) 2010-07-22 2016-12-28 삼성전자주식회사 결정적 프로그레스 인덱스 기반 락 제어 및 스레드 스케줄링 방법 및 장치
US20120130725A1 (en) * 2010-11-22 2012-05-24 Microsoft Corporation Automatic upgrade scheduling
US8775480B2 (en) 2011-01-28 2014-07-08 Apple Inc. Media clip management
US11747972B2 (en) 2011-02-16 2023-09-05 Apple Inc. Media-editing application with novel editing tools
US9997196B2 (en) 2011-02-16 2018-06-12 Apple Inc. Retiming media presentations
RU2011117765A (ru) 2011-05-05 2012-11-10 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности
WO2014134046A1 (en) * 2013-02-27 2014-09-04 Welch Allyn, Inc. Anti-loss for medical devices
US9632823B1 (en) * 2014-09-08 2017-04-25 Amazon Technologies, Inc. Multithreaded application thread schedule selection
RU2595559C2 (ru) * 2014-12-16 2016-08-27 Общество с ограниченной ответственностью "Аби Девелопмент" Система и способ использования данных предыдущего кадра для оптического распознавания символов кадров видеоматериалов
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
JP6540166B2 (ja) * 2015-03-31 2019-07-10 オムロン株式会社 制御装置
CN105469489A (zh) * 2015-11-29 2016-04-06 林海航 一种随机密钥的电子锁系统
CN106097511A (zh) * 2016-06-23 2016-11-09 林海航 一种随机密钥的电子锁无钥匙进入系统
KR102372191B1 (ko) * 2017-03-16 2022-03-08 삼성전자주식회사 전자장치 및 그를 이용한 도어락 제어 방법
CN107492175A (zh) * 2017-08-25 2017-12-19 深圳市光域物联科技有限公司 可见光安全门锁、系统及开锁方法
US10332325B2 (en) * 2017-09-05 2019-06-25 Suprema Inc. Access control system and access control method using the same
CN108171442A (zh) * 2018-01-18 2018-06-15 深圳市伟博思技术有限公司 一种智能动态项目管理方法及相关设备
CN109151181A (zh) * 2018-07-27 2019-01-04 南昌黑鲨科技有限公司 智能手机功能键的控制方法、装置及终端
CN109298919B (zh) * 2018-08-27 2021-09-07 西安工业大学 面向高利用率任务集合的软实时系统的多核调度方法
JP6681501B1 (ja) * 2018-11-13 2020-04-15 市橋 敬男 通信システム、通信方法、およびセンサユニット
CN110109743B (zh) * 2019-05-09 2023-07-21 中国航空工业集团公司西安航空计算技术研究所 一种实时进程调度方法
US11106496B2 (en) * 2019-05-28 2021-08-31 Microsoft Technology Licensing, Llc. Memory-efficient dynamic deferral of scheduled tasks
CN111966472B (zh) * 2020-07-02 2023-09-26 佛山科学技术学院 一种工业实时操作系统的进程调度方法及系统
JP7276289B2 (ja) * 2020-09-01 2023-05-18 横河電機株式会社 装置、システム、方法およびプログラム
CN113518110A (zh) * 2021-04-28 2021-10-19 深圳先进技术研究院 交通调查系统及其资源调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216694A (ja) * 1992-02-06 1993-08-27 Mitsubishi Electric Corp Faコントローラ
JPH09274583A (ja) * 1996-04-05 1997-10-21 Nec Corp 管理情報格納装置
JP2001034320A (ja) * 1999-07-26 2001-02-09 Mitsubishi Electric Corp 数値制御装置
JP2001256063A (ja) * 2000-03-13 2001-09-21 Denso Corp 制御装置及びエンジン制御装置
JP2005018610A (ja) * 2003-06-27 2005-01-20 Toshiba Corp スケジューリング方法および情報処理システム

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4053939A (en) * 1974-11-25 1977-10-11 Kokusai Gijutsu Kaihatsu Kabushiki Kaisha Electric lock system
US4031434A (en) * 1975-12-29 1977-06-21 The Eastern Company Keyhole-less electronic lock
US4369442A (en) * 1977-09-06 1983-01-18 Robert L. Werth Code controlled microcontroller readout from coin operated machine
JPS6019879Y2 (ja) * 1977-09-27 1985-06-14 株式会社糸井製作所 引き出し付収納庫
US4354189A (en) * 1977-11-09 1982-10-12 Lemelson Jerome H Switch and lock activating system and method
US4167104A (en) * 1977-11-21 1979-09-11 Coca-Cola Bottling Works Company Solenoid enabled lock for vending machines and the like
US4391204A (en) * 1980-09-09 1983-07-05 Safekeeper Systems, Inc. Security cabinets for hotel rooms
US4353064A (en) * 1981-01-14 1982-10-05 Honeywell Inc. Battery operated access control card
US4709202A (en) * 1982-06-07 1987-11-24 Norand Corporation Battery powered system
DE3225754A1 (de) * 1982-07-09 1984-01-12 Hülsbeck & Fürst GmbH & Co KG, 5620 Velbert Verfahren zur schliesswirksamen wechselwirkung eines schluesselartigen teils mit einem schlossartigen teil
US4827395A (en) * 1983-04-21 1989-05-02 Intelli-Tech Corporation Manufacturing monitoring and control systems
US4674618A (en) * 1983-12-06 1987-06-23 Mars Incorporated Tokens and token handling devices
US4594637A (en) * 1985-02-21 1986-06-10 Sidney Falk Digital electronic lock system
US4674454A (en) * 1985-08-22 1987-06-23 Donald Phairr Remote control engine starter
US4766746A (en) * 1986-02-21 1988-08-30 Supra Products, Inc. Electronic real estate lockbox system
US6822553B1 (en) * 1985-10-16 2004-11-23 Ge Interlogix, Inc. Secure entry system with radio reprogramming
US5280518A (en) * 1985-10-16 1994-01-18 Supra Products, Inc. Electronic security system
US4779090A (en) * 1986-08-06 1988-10-18 Micznik Isaiah B Electronic security system with two-way communication between lock and key
US5021776A (en) * 1988-07-11 1991-06-04 Yale Security Inc. Electronic combination of lock with changeable entry codes, lock-out and programming code
US4952864A (en) * 1988-10-18 1990-08-28 Ventritex Power supply down-conversion, regulation and low battery detection system
US4918431A (en) * 1988-10-31 1990-04-17 Motorola, Inc. Method and apparatus for automatically adjusting the output power of a transmitter
US5113182B1 (en) * 1990-01-19 1995-11-07 Prince Corp Vehicle door locking system detecting that all doors are closed
IL93239A (en) * 1990-02-01 1993-03-15 Technion Res & Dev Foundation High flow-rate synchronizer/schedular apparatus for multiprocessors
US5745044A (en) * 1990-05-11 1998-04-28 Medeco Security Locks, Inc. Electronic security system
US6005487A (en) * 1990-05-11 1999-12-21 Medeco Security Locks, Inc. Electronic security system with novel electronic T-handle lock
US5090022A (en) * 1990-05-21 1992-02-18 Inductotherm Corp. Cold crucible induction furnace
US5109512A (en) * 1990-05-31 1992-04-28 International Business Machines Corporation Process for dispatching tasks among multiple information processors
AU655424B2 (en) * 1990-06-15 1994-12-22 Inn-Room Systems, Inc. Interactive vending machines
US5109530A (en) * 1990-10-24 1992-04-28 Motorola, Inc. Receiver with battery saver
US5506575A (en) * 1991-09-25 1996-04-09 Ormos; Zoltan S. Key-lock system and method using interchange of system-originated codes
US6483424B1 (en) * 1991-10-21 2002-11-19 James S. Bianco Electronic lock and key apparatus and method
US5184855A (en) * 1991-12-23 1993-02-09 Von Duprin, Inc. Electromagnetic door lock assembly
US5349345A (en) * 1992-06-30 1994-09-20 Vindicator Corporation Electronic lock
US5347419A (en) * 1992-12-22 1994-09-13 Eaton Corporation Current limiting solenoid driver
US5392025A (en) * 1993-09-24 1995-02-21 Intermark Corporation Electronic security system for display cabinets
US5673034A (en) * 1993-10-12 1997-09-30 Saliga; Thomas V. Security system comprising three apparatuses sharing a time-varying code
CA2111929C (en) * 1993-12-16 1999-04-20 Reinhart Karl Pildner Wireless alarm system
JPH07225869A (ja) * 1994-02-10 1995-08-22 Fuji Electric Co Ltd 自動販売機の外扉ロック装置
US5661470A (en) * 1994-03-04 1997-08-26 Karr; Gerald S. Object recognition system
DE4428947C1 (de) * 1994-08-16 1996-04-04 Kiekert Ag Schließvorrichtung für ein Kraftfahrzeug mit einer Fernbetätigungseinrichtung sowie mit einem Transponder
JP3295550B2 (ja) * 1994-09-16 2002-06-24 富士写真フイルム株式会社 飛出し防止用封止具を備えた乾式分析フィルム用カートリッジ
US5841866A (en) * 1994-09-30 1998-11-24 Microchip Technology Incorporated Secure token integrated circuit and method of performing a secure authentication function or transaction
US5636881A (en) * 1994-10-21 1997-06-10 Star Lock Systems, Inc. Automatic latching system with automated unlatching feature
US6900720B2 (en) * 2001-12-27 2005-05-31 Micro Enhanced Technology, Inc. Vending machines with field-programmable locks
US6359547B1 (en) * 1994-11-15 2002-03-19 William D. Denison Electronic access control device
US5617082A (en) * 1994-11-15 1997-04-01 Micro Enhanced Technology, Inc. Electronic access control device utilizing a single microcomputer integrated circuit
US5888644A (en) * 1995-07-17 1999-03-30 Fujicopian Co., Ltd. Thermal transfer recording material
US5742238A (en) * 1995-09-01 1998-04-21 Emtrak, Inc. System for communication between a central controller and items in a factory using infrared light
JPH09237256A (ja) 1996-02-29 1997-09-09 Mitsubishi Electric Corp 並列計算機における動的負荷分散方法
US5774053A (en) * 1996-05-02 1998-06-30 Porter; David Storage device for the delivery and pickup of goods
US6130602A (en) * 1996-05-13 2000-10-10 Micron Technology, Inc. Radio frequency data communications device
US5813257A (en) * 1997-06-25 1998-09-29 Coin Acceptors, Inc. Electrically controllable locking device for vending machines and the like
US6068305A (en) * 1997-07-09 2000-05-30 Fort Lock Corporation Lock assembly for vending machines and method for locking and unlocking same
US6038491A (en) * 1997-11-26 2000-03-14 Mars, Incorporated Monitoring and reporting system using cellular carriers
US6318137B1 (en) * 1998-04-08 2001-11-20 David Chaum Electronic lock that can learn to recognize any ordinary key
US6496101B1 (en) * 1998-08-12 2002-12-17 Star Lock Systems, Inc. Electro-mechanical latch assembly
AU5475999A (en) * 1998-08-12 2000-03-06 Star Lock Systems, Inc. Electro-mechanical latching apparatus
US20020024420A1 (en) * 1998-08-12 2002-02-28 Ayala Raymond F. Key for selectively allowing access to an enclosure
US6867685B1 (en) * 1999-05-10 2005-03-15 Star Lock Systems, Inc. Electro-mechanical lock assembly
US6401059B1 (en) * 1999-05-25 2002-06-04 International Business Machines Corporation Method and system for using a personal digital assistant as a remote control
US7165252B1 (en) * 1999-06-21 2007-01-16 Jia Xu Method of scheduling executions of processes with various types of timing properties and constraints
JP2001022595A (ja) 1999-07-06 2001-01-26 Nec Corp リアルタイム処理タスク制御装置及びそのプログラムを記録したコンピュータ読取り可能な記録媒体
US20020024418A1 (en) * 1999-08-11 2002-02-28 Ayala Raymond F. Method for a key to selectively allow access to an enclosure
US6246720B1 (en) * 1999-10-21 2001-06-12 Sony Corporation Of Japan Flexible software-based decoding system with decoupled decoding timing and output timing
US6985937B1 (en) * 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
CA2427829A1 (en) * 2000-11-02 2002-05-10 Best Access Systems Vending machine lock
US6581986B2 (en) * 2000-11-21 2003-06-24 Tri Teq Lock And Security, L.L.C. Bayonet locking system and method for vending machines and the like
US6575504B2 (en) * 2000-11-21 2003-06-10 Triteq Lock And Security, L.L.C. Bayonet locking system and method for vending machines and the like
US20020099759A1 (en) * 2001-01-24 2002-07-25 Gootherts Paul David Load balancer with starvation avoidance
US6993763B2 (en) * 2001-06-26 2006-01-31 International Business Machines Corporation Technique for scheduling execution of jobs for or by network-connected devices
EP1419660A4 (en) * 2001-08-07 2006-04-12 Mars Inc AUTOMATIC DISTRIBUTION CHECKING SYSTEM
US20030128101A1 (en) * 2001-11-02 2003-07-10 Long Michael Lee Software for a lock
US6886869B2 (en) * 2001-12-14 2005-05-03 Richard A. Martinez Electromechanical locking mechanism
US7028302B2 (en) * 2002-04-24 2006-04-11 Hewlett-Packard Development Company, L.P. System and method for automatically tuning a multiprocessor computer system
JP3938343B2 (ja) 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US7359324B1 (en) * 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216694A (ja) * 1992-02-06 1993-08-27 Mitsubishi Electric Corp Faコントローラ
JPH09274583A (ja) * 1996-04-05 1997-10-21 Nec Corp 管理情報格納装置
JP2001034320A (ja) * 1999-07-26 2001-02-09 Mitsubishi Electric Corp 数値制御装置
JP2001256063A (ja) * 2000-03-13 2001-09-21 Denso Corp 制御装置及びエンジン制御装置
JP2005018610A (ja) * 2003-06-27 2005-01-20 Toshiba Corp スケジューリング方法および情報処理システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011061878A1 (ja) * 2009-11-18 2011-05-26 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法及びプログラムが格納された非一時的な可読媒体
JP5382133B2 (ja) * 2009-11-18 2014-01-08 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法及びプログラム
US8892230B2 (en) 2009-11-18 2014-11-18 Nec Corporation Multicore system, control method of multicore system, and non-transitory readable medium storing program
JP2015156165A (ja) * 2014-02-21 2015-08-27 ルネサスエレクトロニクス株式会社 画像処理装置、及びその制御方法
US9667983B2 (en) 2014-02-21 2017-05-30 Renesas Electronics Corporation Image processing apparatus and control method for the same including estimation and scheduling
US10349072B2 (en) 2014-02-21 2019-07-09 Renesas Electronics Corporation Image processing apparatus and control method for the same

Also Published As

Publication number Publication date
US20070096867A1 (en) 2007-05-03
US7725897B2 (en) 2010-05-25
JP4786313B2 (ja) 2011-10-05
US20060112390A1 (en) 2006-05-25

Similar Documents

Publication Publication Date Title
JP4786313B2 (ja) データのリアルタイム処理を行うための方法及びシステム
JP5173711B2 (ja) マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
US8141088B2 (en) Multithreaded processor
US10467053B2 (en) Multi-thread processor with rescheduling when threads are nondispatchable
US7885472B2 (en) Information processing apparatus enabling an efficient parallel processing
JP5173713B2 (ja) マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法
JP5173714B2 (ja) マルチスレッドプロセッサ及びその割り込み処理方法
JP2004532444A (ja) マルチスレッドプロセッサ上の優先順位及び命令速度の制御
CN101681261A (zh) 指令执行控制装置以及指令执行控制方法
JP5698156B2 (ja) 復号装置、復号方法、および編集装置
JP3802521B2 (ja) 符号化装置、符号化制御方法及び符号化制御プログラム
CN112596898A (zh) 一种任务执行器调度的方法及装置
KR102224844B1 (ko) 선점 방식을 선택하는 방법 및 장치.
CN114651235A (zh) 多线程微处理器中的共享资源分配
JP5236386B2 (ja) 画像復号装置及び画像復号方法
KR20070031307A (ko) 신호 스트림 처리 작업의 조합을 실행하기 위한 방법, 장치및 시스템, 실행 파라미터를 계산하는 방법 및 장치,컴퓨터 프로그램 제품
JP5536862B2 (ja) マルチスレッドプロセッサ
JP5120324B2 (ja) 画像復号装置及び画像復号方法
JP5838237B2 (ja) マルチスレッドプロセッサ
JP5536864B2 (ja) マルチスレッドプロセッサ
JP2011182169A (ja) 符号化装置および方法
JP5770334B2 (ja) マルチスレッドプロセッサ
JP2015187888A (ja) マルチスレッドプロセッサにおけるハードウェアスレッドのスケジュール方法
JP2014149868A (ja) マルチスレッドプロセッサ
Inoue et al. CPU Resource Reservation for Simultaneous Multi-Thread Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

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: 20110621

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: 20110713

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees