JPH03273342A - タスク・スケジューリング方式 - Google Patents

タスク・スケジューリング方式

Info

Publication number
JPH03273342A
JPH03273342A JP7417690A JP7417690A JPH03273342A JP H03273342 A JPH03273342 A JP H03273342A JP 7417690 A JP7417690 A JP 7417690A JP 7417690 A JP7417690 A JP 7417690A JP H03273342 A JPH03273342 A JP H03273342A
Authority
JP
Japan
Prior art keywords
instruction
execution
scheduling
processing
parallel processing
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.)
Pending
Application number
JP7417690A
Other languages
English (en)
Inventor
Akio Uchiyama
昭夫 内山
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 JP7417690A priority Critical patent/JPH03273342A/ja
Publication of JPH03273342A publication Critical patent/JPH03273342A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、マルチ・プロセッサ・システムにおける並
列処理実行時のタスク・スケジューリング方式に関する
ものである。
〔従来の技術〕
従来、マルチ・プロセッサ・システムにおける並列処理
実行時の優先順位を決めるタスク・スケジューリングの
実現に際しては、タスク中の各命令に費やされる中央処
理装置(CPU)の実行サイクル数を予め予測し、全て
のタスクに関してのこれら実行時間情報を用いてスケジ
ューリングを行っていた。予め予測できないタスクにつ
いては、その実行時間を推定し、スケジュールに用いる
このため、スケジュールに用いた推定実行時間と実際に
実行に要した時間との間に差が生じることが起こり得る
このように、従来のタスク・スケジューリング方式は、
翻訳系(コンパイラ等)が生成したタスクの情報に基づ
いて、各タスクの実行時間を決定した上で、スケジュー
リングを行っていたため、実際の処理に費やされた実行
時間情報が、次回の実行時の際のスケジューリングにフ
ィードバックされることはなかった。
〔発明が解決しようとする課題〕
従来のタスク・スケジューリング方式によると、翻訳系
(コンパイラ等ンの生成したタスクの情報に基づいて、
各タスクの実行時間を決定するため、実際の処理が行わ
れても、次回も前回と同じ情報しか得られないことにな
り、処理の回数を重ねても、スケジューリングの結果と
実際の処理結果とが一致しない。
しかし、一般に計算機システムで行われる処理は、乱数
を使用する場合等を験くと、処理する対象となるデータ
に近似性が見られる。したがって、−度実行されたプロ
セスのスケジューリングを行う場合は、前回実行時のタ
スク実行時間の情報を用いることが並列処理を実行する
際の待ち時間を減少させる上で有効である。
この発明の目的は、並列処理を実行する際の待ち時間を
少なくして処理時間を短縮することができるタスク・ス
ケジューリング方式を提供することである。
〔課題を解決するための手段〕
この発明は、前回のプロセス実行時の処理時間の情報を
フィードバンクして次回のタスク・スケジューリングを
行うことにより、並列処理を実行する際の待ち時間を少
なくしようとするものである。
この発明のタスク・スケジューリング方式では、並列処
理コンパイラによって、複数の中央処理装置を育する計
算機システムで実行すべきプロセスの並列性抽出を行う
、この並列性抽出によって得た並列処理の最小単位であ
る並列処理ブロック毎に、その直前および直後に実行サ
イクル数積夏開始命令および実行サイクル数積夏終了命
令をそれぞれ組み込み、プロセスの最後にプロセス内の
タスク・スケジューリングを行うスケジュール命令を組
み込む。
そして、計算機システムでプロセスを実行する際に、複
数の中央処理装置で並列的に実行される並列処理ブロッ
ク毎に、実行サイクル数積算開始命令の発生時刻から実
行サイクル数積夏終了命令の発生時刻までの処理に要し
た実行サイクル数を各中央処理装置にて測定して保持す
る。さらに、各中央処理装置にて得られた各並列処理ブ
ロック毎の実行サイクル数積算結果を、次回の実行の際
の優先順位の決定のための優先順位情報として、メモリ
上に構成したブロックテーブルに格納する。
さらに、スケジュール命令の発生に応答して、ブロック
テーブルの内容を参照しながら、各中央処理装置による
並列処理ブロックの次回の実行の際の優先順位を決める
タスク・スケジューリングを行う。
C作   用〕 この発明の構成によれば、並列処理実行時の各並列処理
ブロックの実行に要する実行サイクル数積算結果が求め
られ、この実行サイクル数積夏結果がブロンクチ−プル
に次回の実行の際の優先順位の決定のための優先順位情
報としてブロックテーブルに格納され、ブロックテーブ
ルの内容を参照しながら各中央処理装置による前記並列
処理ブロックの次回の実行の際の優先順位を決めるタス
ク・スケジューリングを行うことになる。このタスク・
スケジューリング方式によって、プロセスの実行前の時
点での、命令の処理に必要な時間の一般的な推測による
処理時間の決定ではなく、実際の処理結果に基づく処理
時間の推定が可能となる。
以上のように、このタスク・スケジューリング方式によ
れば、前回実行した際の処理内容と同一の処理をする場
合は、実行結果とスケジューリングの内容が一致するた
め、最適なスケジューリングが可能となり、並列処理の
実行に伴う待ち時間を最小にすることができる。
〔実 施 例〕
第1図に、この発明のタスク・スケジューリング方式を
実施する計算機システム(マルチプロセッサシステム)
における中央処理装置部分のブロック図を示す。
この中央処理装置は、指定された時刻から処理に要した
実行サイクル数を積算するための実行サイクル数積算手
段としてサイクル数積算器108を有し、このサイクル
数積算器108による積電結果を一時記憶するためのレ
ジスタ109を有し、実行サイクル数の積算を開始する
積算開始機能と、実行サイクル数の積算を終了しレジス
タ109に蓄えた実行サイクル数積電結果をメモリ (
図示せず)上に転送する機能とを命令セットとして備え
て≠キいる。
具体的に説明すると、メモリ(図示せず)上のプログラ
ム中にある各命令を命令フェッチ部104が命令データ
バス110より取り込み、コントロール・ロジック部1
05へ渡ス、コントロール・ロジック部105は、命令
の種類に応じた処理を論理演算ユニン) (ALU)l
 06またはシフタ107へ命令する。この命令が実行
サイクル数積算開始命令あるいは実行サイクル数積算終
了命令である場合は、サイクル数積算器10日へ命令を
送る。 ALUI O6,シフタ107およびサイクル
数積算器108は、それぞれ受は取った命令に応じた処
理を行い、結果を指定されたレジスタ109あるいは命
令/データバス110を通してメモリへと転送する。こ
の場合、実行サイク。
ル数積算結果については、メモリ内のプロ7クテーブル
(後述する)に格納される。
これらの処理の終了後、プログラムカウンタ103の内
容を更新して、つぎに処理すべき命令のアドレスをメモ
リ管理部102を介して、アドレスバス101へ送出す
る。
以上のようにして、プログラムされた処理を実行する他
に、任意の時刻に発せられる実行サイクル数積算開始命
令および実行サイクル数積電終了命令間に処理に要した
実行サイクル数を測定することになる。
第2図に、この発明の計算機システムで実行されるプロ
セス上において、前記サイクル数積算器108の実行サ
イクル数積電結果を用いて、そのプロセスの処理内容の
終了後に前記プロセス内の複数の処理ブロックを対象に
スケジューリングを実行することを表す処理の流れを示
す。
まず、プログラム実行開始部201で、プロセスのプロ
グラムの実行が開始され、計真実行部202で上記プロ
グラムがコーディングされた際の命令群が実行される。
このときに、命令群からなる処理ブロックの実行サイク
ル数が積算され、その積電結果がメモリのブロックテー
ブルに格納される。
この後、スケジュール命令に応答してスケジューリング
実行部203において、スケジューリング対象となる命
令群(並列処理ブロック)の必要サイクル数の寞測結果
(ブロックテーブルに格納されている)に基づいてスケ
ジューリングを実行する。
最後に、スケジュール結果記憶部204において、前記
スケジューリング実行部203のスケジューリング結果
を前記プロセスが格納されたメモリに記憶する1以上の
処理の終了後、プログラム実行終了部205で前記プロ
セスの処理の全てを終了する。
多数の中央処理装置から構成される計算機システムにお
いて、並列処理を実行するには、予め並列処理コンパイ
ラによって、処理すべきプロセスを示したプログラム記
述言語による命令群を機械語命令群に翻訳する必要があ
る。この並列処理コンパイラでは、プログラム記述言語
による命令群を、データおよびコントロールの依存関係
の有無と命令数とに基づき機械語命令で書がれて並列実
行の最小単位であるブロックに分割されて記述すること
になり、この翻訳作業時に実行サイクル数積算開始命令
および実行サイクル数積算終了命令ならびにスケジュー
ル命令を組み込むことになる。
この点を第3図を参照して説明する。
第3図+a)、 (blに、計算機システムを構成する
並列処理コンパイラにおいて、並列性抽出を行った後並
列処理の最小単位である並列処理ブロック毎に、前記実
行サイクル数積算開始命令および実行サイクル数積電終
了命令を組み込み、プロセスの最後に実行サイクル数を
使用してプロセスの終了前にプロセス内のタスク・スケ
ジューリングを行うためのコードすなわちスケジュール
命令を組み込む過程を示す。なお、並列処理コンパイラ
には、上記の並列性抽出の機能と、実行サイクル数積算
開始命令および実行サイクル数積算終了命令ならびにス
ケジュール命令を組み込む機能の他゛に、実行サイクル
数積算結果を処理ブロック毎に格納するブロックテーブ
ルをメモリ上に容易する機能を有している。
プログラム記述言語で書かれた第3図fa)に示すよう
な直列配列した命令群、すなわち〔命令1〕301〜〔
命令N)306が、前記の並列処理コンパイラにより、
データおよびコントロールの依存関係の有無と命令数と
に基づき、第3図(b)に示すように、機械語命令で書
かれて並列実行の最小単位であるブロックに分割されて
記述される。第3回出)において、〔命令1−1)30
8.(命令12)309.  (命令1−3)310は
プログラム記述言語による〔命令1)301を分割した
機械語命令であり、〔命令2−1)313.  C命令
2−2)314は同しく 〔命令2)302を分割した
機械語命令で、〔命令3−13315゜〔命令3−2)
316は同じく 〔命令3)303を分割した機械語命
令で、〔命令4−1)319〔命令4−2)320.(
命令4−3)321は同じく 〔命令4)304を分割
した機械語命令であり、〔命令N−11324は同じく
 〔命令N〕306に対応した機械語命令である。なお
、〔命令5)305以陣のプログラム記述言語で書かれ
た各命令については、簡単化のため図示を省略している
この場合、〔命令1−1)308.  C命令12)3
09.(命令1−3〕310が第1の処理ブロックを構
成し、〔命令2−1)313.  C命令2−2)31
4.  C命令3−1)315.  C命令3−2)3
16が第2の処理ブロックを構成し、〔命令4−1)3
19.  (命令4−2)320〔命令4−33321
が第3の処理ブロックを構成し、[命令N−1]324
が第4の処理ブロックを構成している。このなかで、第
2の処理ブロックと第3の処理ブロックとは並列処理ブ
ロックとなる。
この後、各第1ないし第4の処理ブロックの先頭と終端
にそれぞれ〔実行サイクル数積電開始命令)307,3
12,318,323と[実行サイクル数積電終了命令
]311,317,322゜325とを組み込み、最後
の第4の処理ブロックの〔実行サイクル数積電終了命令
〕 325の後に〔スケジュール命令〕326を組み込
む。
一方、実行されるプログラム自体は、先頭に各並列処理
ブロックの処理の優先順位を示す優先順位情報を格納し
たブロックテーブルを備え、並列処理ブロックが複数個
同時に実行可能となった場合は、このブロックテーブル
に格納されているブロックの優先順位情報に基づいて、
どの並列処理ブロックを優先して実行するかを決定する
処理が開始された後、処理ブロック毎にそのブロックの
先頭で、実行サイクル数積算開始命令を実行して、実行
サイクル数積算結果を格納すべきレジスタ109の内容
をクリアする。この後、最初の命令がコントロール・ロ
ジック部105から発せられた時から、命令の実行に要
する実行サイクル数の積算を開始し、コントロール・ロ
ジック部105からの各種命令が終了する毎に、該当レ
ジスタ109に実行サイクル数積算結果を格納する。こ
の一つの処理ブロックの処理が終了すると、最後に実行
サイクル数積算終了命令を実行して、この処理ブロック
の実行に要したサイクル数の積電結果、つまり実行サイ
クル数積電結果を該当するレジスタ109から、スケジ
ュール命令で使用するスケジュール用のブロックテーブ
ル上に転送する。
こうして最終的に、このプロセスの全ての処理ブロック
の実行サイクル数の集計がなされる。
オペレーティング・システム上のスケジューラは、各処
理ブロックの終了と同時にその終了を知らせる信号を受
は取り、前記ブロックテーブル中の当該処理を終了した
処理ブロックに後続する処理ブロック部分から、上記処
理を終了した処理ブロックによる先行制約条件を削除す
る。
これによって、先行制約のなくなった処理ブロックが実
行可能となり、前記スケジューラのスケジュールの対象
となる。スケジューラは、これら実行可能ブロックの中
から、スケジューリング結果に基づくブロックテーブル
中の優先順位に従って実行プロセッサ(中央処理装置)
を優先順位の高い処理ブロックに割り当てる。
上述の、各処理ブロックの実行サイクル数積算結果を使
ってスケジュール命令が、前記プロセスのスケジューリ
ングをし直す(スケジューリング実行部203)、スケ
ジューリングの方法は、クリティカル・パス(Crit
ical Path)法(E、G、Coffman:C
omputer  and  Job−shop  S
cheduling  Theory)に基づくリスト
・スケジューリング結果を用いる。
このリスト・スケジューリング結果を前記ブロックテー
ブルに格納した後(スケジュール結果記憶部204)、
前記プロセスの実行は終了する(プログラム実行終了部
205)。
なお、上述の再スケジューリングは、次回の実行の直前
に行ってもよい。
〔発明の効果〕
この発明のタスク・スケジューリング方式によれば、実
行前に過去の処理実行結果に基づくスケジューリングが
なされており、実際の処理と近いスケジューリング結果
を導くことができる。特に、前回と全く同じ処理をする
場合、最適なスケジューリングが可能である。データの
内容は前回と異なっていても、データの長さが同一であ
ったりすると、処理に要する時間は共通である場合が多
いことが予想されるので、実行結果を次回の実行のため
のスケジューリングに用いることによって、より最適に
近いスケジューリングが可能となり、並列処理の実行に
伴う待ち時間を少なくすることが可能で、処理に必要な
時間を短縮することができる。
【図面の簡単な説明】
第1図はこの発明の一実施例における計算機システム中
の中央処理装置のブロック図、第2図はこの発明の計算
機システム上において実行されるプロセスの処理の流れ
を示す流れ図、第3図はこの発明の計算機システムにお
ける翻訳系の生成する機械語コードがプログラム記述言
語からどのように翻訳されるかを示した命令群の流れ図
である。 101・・・アドレスバス、102・・・メモリ管理部
、103・・・プログラムカウンタ、104・・・命令
フェンチ部、105・・・コントロール・ロジック部、
106・・・論理演算ユニット(ALU>、107・・
・シフタ、108・・・サイクル散積電器、109・・
・レジスタ、110・・・命令/データバス、201・
・・プログラム実行開始部、202・・・計算実行部、
203・・・スケジューリング実行部、204・・・ス
ケジュール記憶部、205・・・プログラム実行終了部
、301〜306・・・プログラム記述言語命令群、3
07〜326・・・機械語命令群、307.312゜3
18.323・・・実行サイクル数積算開始命令、31
1.317,322.325・・・実行サイクル数積算
終了命令 ’i:lZ−二:七1 Lユニ!− 第 1 図 館 図 命令/r−タバス 第 図 (a) プログラム記述言語 [ [ [ [

Claims (1)

  1. 【特許請求の範囲】 並列処理コンパイラによって、複数の中央処理装置を有
    する計算機システムで実行すべきプロセスの並列性抽出
    を行い、前記並列性抽出によって得た並列処理の最小単
    位である並列処理ブロック毎にその直前および直後に実
    行サイクル数積算開始命令および実行サイクル数積算終
    了命令をそれぞれ組み込み、前記プロセスの最後に前記
    プロセス内のタスク・スケジューリングを行うスケジュ
    ール命令を組み込み、 前記計算機システムで前記プロセスを実行する際に、複
    数の中央処理装置で並列的に実行される前記並列処理ブ
    ロック毎に前記実行サイクル数積算開始命令の発生時刻
    から前記実行サイクル数積算終了命令の発生時刻までの
    処理に要した実行サイクル数を前記各中央処理装置にて
    測定して保持し、前記各中央処理装置にて得られた各並
    列処理ブロック毎の実行サイクル数積算結果を次回の実
    行の際の優先順位の決定のための優先順位情報としてメ
    モリ上に構成したブロックテーブルに格納し、前記スケ
    ジュール命令の発生に応答して前記ブロックテーブルの
    内容を参照しながら前記各中央処理装置による前記並列
    処理ブロックの次回の実行の際の優先順位を決めるタス
    ク・スケジューリングを行うことを特徴とするタスク・
    スケジューリング方式。
JP7417690A 1990-03-22 1990-03-22 タスク・スケジューリング方式 Pending JPH03273342A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7417690A JPH03273342A (ja) 1990-03-22 1990-03-22 タスク・スケジューリング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7417690A JPH03273342A (ja) 1990-03-22 1990-03-22 タスク・スケジューリング方式

Publications (1)

Publication Number Publication Date
JPH03273342A true JPH03273342A (ja) 1991-12-04

Family

ID=13539593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7417690A Pending JPH03273342A (ja) 1990-03-22 1990-03-22 タスク・スケジューリング方式

Country Status (1)

Country Link
JP (1) JPH03273342A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068941A (zh) * 2020-09-03 2020-12-11 北京百度网讯科技有限公司 应用调起方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068941A (zh) * 2020-09-03 2020-12-11 北京百度网讯科技有限公司 应用调起方法、装置、电子设备及存储介质
CN112068941B (zh) * 2020-09-03 2023-07-21 北京百度网讯科技有限公司 应用调起方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Lee et al. Analysis of cache-related preemption delay in fixed-priority preemptive scheduling
EP0243892B1 (en) System for guaranteeing the logical integrity of data
US20150154045A1 (en) Contention management for a hardware transactional memory
EP0096575A2 (en) Concurrent processing elements for using dependency free code
US5280615A (en) Out of order job processing method and apparatus
US20060112261A1 (en) Method and apparatus for incremental commitment to architectural state in a microprocessor
WO2009067219A1 (en) Contention management for a hardware transactional memory
JP2012511204A (ja) リソースを最適化するためのタスク再編成方法
CN1092188A (zh) 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统
CN110648124B (zh) 在区块链中并发执行交易的方法和装置
US20230229494A1 (en) Hardware assisted fine-grained data movement
US8140503B2 (en) Information processing apparatus having process units operable in parallel
US5553280A (en) Method for providing critical time reactive management of database transactions for systems process
CN109656868B (zh) 一种cpu与gpu之间的内存数据转移方法
CN111767337B (zh) 区块的验证方法、装置及设备
Fu et al. Run-time compilation for parallel sparse matrix computations
Michael et al. Relative performance of preemption-safe locking and non-blocking synchronization on multiprogrammed shared memory multiprocessors
KR102003721B1 (ko) Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치
WO2017072600A1 (en) Run-time code parallelization using out-of-order renaming with pre-allocation of physical registers
JPH03273342A (ja) タスク・スケジューリング方式
EP0096574B1 (en) System and method of renaming data items for dependency free code
US9858172B2 (en) Apparatus and method for controlling debugging of program instructions including a transaction
Kumura et al. Overhead-Aware Schedulability Analysis on Responsive Multithreaded Processor
US10185569B2 (en) Precise-restartable parallel execution of programs
US5287509A (en) Multitasking system for in-procedure loops