JPH0385643A - 通信システムのためのプログラム・スケジューリング装置 - Google Patents

通信システムのためのプログラム・スケジューリング装置

Info

Publication number
JPH0385643A
JPH0385643A JP2215118A JP21511890A JPH0385643A JP H0385643 A JPH0385643 A JP H0385643A JP 2215118 A JP2215118 A JP 2215118A JP 21511890 A JP21511890 A JP 21511890A JP H0385643 A JPH0385643 A JP H0385643A
Authority
JP
Japan
Prior art keywords
program
request
data
task
receive
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
JP2215118A
Other languages
English (en)
Other versions
JPH0625972B2 (ja
Inventor
Firmin Bigo
フアルマン・ビーゴ
Victor Spagnol
ヴイクター・スパニユール
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0385643A publication Critical patent/JPH0385643A/ja
Publication of JPH0625972B2 publication Critical patent/JPH0625972B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、プログラム・スケジューリング機構及び上記
機構を実施するためのスケジューラに関する。本発明は
、異なる様々な優先度をもつプログラムから構成される
マイクロコードを含む通信システムで使用される。本発
明は、様々な通信システムに適用できるが、その有利な
適用例であるモデムに関して具体的に説明することにす
る。本発明によるスケジューラは、モデムに適用すると
き、タスク指名を行ない、優先順位の高い割込みプログ
ラムと優先順位の低い主プログラムの間で全体的同期を
保持しなければならない。
B、従来の技術 第10図に概略的に示す周知のモデム・マイクロコード
の全体的構造は、プロセッサの可用性に従ってタスクを
指名するスケジューラ、送信機構及び受信機構モジュー
ル、監視モジュール、制御ネットワーク管理(CNM)
モジュールなど様々なモジュールを含む主プログラムと
、フェーズ・ロック式発振器(PLO)で発生される通
信システムまたはモデムから、データ端末装置(DTE
)、ホスト、通信制御装置などネットワークの残りの部
分に接続された回線から入ってくる情報またはそれらの
回線へ出ていく情報を含む故に優先順位が最高の割込み
を受けたときに実行されるモジュールを含む割込みプロ
グラムとからなる。
モデムが活動状態のとき、主プログラム、特に送信機構
プログラム及び受信機構プログラムのモジュールは要求
で駆動される。すなわち、特定の要求ビットがオンのと
き、スケジューラがそれらのモジュールに制御権を与え
る。スケジューラとは、モデム・プロセッサが直列プロ
セッサであるために順次実行しなければならない、主プ
ログラムのすべてのプログラム部分の間での時分割を担
当するプログラムである。要求ビットとは、当該の要求
の後で実行される主プログラムのモジュールに、ある事
象を知らせるために、割込みプログラムのモジュールが
セットするビットである。
割込みプログラムは、PLOから取り出した周波数で定
期的に、主として同期入出カサ−ビスからなる短い処理
を実行し、そのあと主プログラムに制御権を戻し、主プ
ログラムは、以前に入出カ− サービスから供給または要求されたデータに作用する。
CNM1操作盤サポート、回線交換、オンライン・テス
トなど「非同期」プログラムと呼ばれる主プログラムの
他の部分は、割込みプログラム、送信機構プログラム、
受信機構プログラムが使用しない残りの計算能力を共用
する。非同期タスクは、専用プログラム・スケジューラ
でスケジューリングされる。この専用プログラム・スケ
ジューラはそれ自体既知であり、スケジューリングの他
に、非同期タスクを短いモジュールに分割して、同期主
プログラムのモジュールの後に実行されるようにし、そ
の分割点及び戻り点を管理する。
中程度の回線速度(9600または14400bl:+
s)で動作する通常のモデムでは、主プログラムのモジ
ュールによって実行される計算(アナログ/ディジタル
またはディジタル/アナログ変換、信号サンプルの計算
など)は、常に回線から供給されるデータまたは送信機
構/受信機構割込みプログラムを使って回線に供給され
るデータと0 同期される。しかし、2つの割込みの間の遅延よりも長
いタスクが発生すると、主プログラムの実行は割込みプ
ログラムよりも後になり、オーバラン状況が発生する。
回線速度が19200bpsに増加したときは、9t3
00bpsまたは14400bpsで動作するモデムで
使用するものに比べて計算アルゴリズムがずっと複雑に
なるので、所与の時間により多くの情報ビットを扱わな
ければならないため、この問題がさらに大きくなる。す
なわち、技術上または経済上の理由からプロセッサの性
能を高めることができない場合、及びモデムにおいて、
走行時間を制限するために回線から入るデータまたは回
線へ出るデータの緩衝空間を依然として制限しなければ
ならない場合、ボトルネックに達して、プロセッサが急
速に同期割込みプログラムで処理されるデータの量に圧
倒されてしまうことになる。
したがって、長時間にわたって主プログラムの実行のた
めに残される時間が不足し、やはりオーバラン状況、す
なわち割込みプログラムによるタスク実行要求の設定か
ら主プログラムによる関連タスクの実行までの遅延が長
くなりすぎる状況が発生する。モデムにおいては、これ
は、そのうちにモデムから供給されるすべてのデータが
意味を失ってしまう状況になるので、破局的なエラーで
ある。
C0発明が解決しようとする課題 本発明の一目的は、上記に説明したような従来技術に関
連する問題を解決するスケジューリング機構、すなわち
マイクロコード・タスクの適正なスケジューリングを行
ない、それによってプロセッサの計算負荷に余り影響を
与えずに、−時的な計算上の過負荷を時間的により平均
化された計算負荷に変える機構、及び上記の機構を実施
するスケジューラを提供することにある。
本発明の他の目的は、上記モジュールまたは主プログラ
ムの諸タスクの実行を求める際に割込みプログラムが生
成する要求に対して、限られた一時的遅延時間内で、主
プログラムの諸モジュール、とくにサンプルの計算を擬
似同期的に実行できるようにすることである。要求に対
して、タスクを遅れて実行しても、そのタスクが上記限
られた遅延時間内に実行される限り、オーバーラン状態
にはならないことが前提である。
本発明の他の目的は、それでもオーバランが発生した場
合、そのオーバランを検出できるようにすることである
00課題を解決するための手段 本発明の基本原理は、回線速度と同期して動作する第1
の優先順位の高いプログラム(割込みプログラムという
)と、上記第1のプログラムから供給される情報で動作
する優先順位のより低い第2のプログラム(主プログラ
ムという)の間で、同期の制御された一時的喪失すなわ
ち擬似同期を受け入れることである。これは、上記第1
のプログラムと第2のプログラムの間で許される最大−
時遅延が、通信システム処理装置の平均処理負荷、及び
通信システムを介して伝送される情報に対して合理的に
受け入れることのできる一時遅延の関数として決定され
る。
外部からの、たとえばデータ端末装置(DTE)3− からのデータを同期割込み(すなわち高優先順位)プロ
グラムが受け取って、それを後で(優先順位が相対的に
低い)擬似同期の主プログラムが処理できるようにデー
タ・バッファに記憶するという通信システムに適用する
場合、本発明は、下記のステップを含むスケジューリン
グ機構と上記機構を実施するためのスケジューラを特徴
とする。
・限られた1組の受信データを上記の高優先順位プログ
ラムと同期した速度でバッファ手段に緩衝記憶するステ
ップ。
・当該の各組の緩衝データに対して実行すべきタスクに
対応する、処理要求を順次生成するステップ。
・要求されたタスクが対応する処理要求に対して制御さ
れた遅延でもって実行され、それによって他の一時タス
クを実行するための空いた処理ウィンドウが生成される
ように、タスクの順次擬似同期実行をスケジューリング
するステップ。
E、実施例 本発明は、優先順位の異なる2つ以上のプログ4 ラムが通信回線速度から誘導された速度で同期して動作
するどんな通信システムにも適用できるが、モデムへの
その適用例について具体的に説明することにする。もち
ろん、そのために本発明の一般性が損なわれるものでは
ない。
先に説明したように、第10図は、モデムで一般に見ら
れるマイクロコードの全体構造を示すものである。ここ
で、「割込み型」プログラムと主プログラムが分離して
いることが重要である。割込みプログラムは、人出カサ
−ビスに関係する高優先順位のプログラムである。この
種のプログラムは、DTEから受け取った情報を考慮に
入れ、処理して、モデムのスループットが十分大きくな
るように速やかにネットワークの回線に送出しなければ
ならないので、モデム・マイクロコード内での優先順位
が最高である。同様に、モデムがたとえば19200b
psの回線速度で受け取った情報も、アナログ/ディジ
タル変換とその後の信号処理をできるだけ速く開始する
ために、直ちに考慮に入れなければならない。
したがって、割込みプログラムは、割込み信号を生成し
て、前にモデムが受け取った情報に対して動作中の主プ
ログラムの実行を停止させ、(後で説明する)高優先順
位プログラム・セグメントに制御権を与える。割込みプ
ログラムによって開始されたセグメントが終わると、主
プログラムは中断点から実行を再開する。主プログラム
は、回線の同期に対して擬似同期的に実行される受信モ
ジュールと送信モジュールを含んでいる。というのは、
これらのモジュールの動作の対象となる情報を最初に回
線から、またはDTEインタフェースを介して割込みプ
ログラムの同期モジュールまたはセグメントから受信し
ていなければならないからである。主プログラムは、さ
らに、監視モジュール、CNMモジュールなど、回線速
度に対して全体的に非同期的に動作するモジュールを含
んでいる。連続する2つの主プログラムの間に処理時間
が余っている場合、そうした空いた処理ウィンドウをス
ケジューラ・プログラムが使って、低優先順位の非同期
タスクを扱う時間を延ばす。
従来技術で見られ本発明によって解決される問題をより
はっきり理解できるように、次に第11図、第12図、
及び第13図に関して、データ端末装置DTE7からV
24インタフェース及びモデムを介して電話線6へ至る
、マイクロコード式送信機能、及び送信処理サイクルに
ついて詳しく説明する。回線からモデムを介してDTE
7への受信機能も同様に説明できるが、第11図から明
らかなように受信は送信と対称的なので、本明細書では
詳しくは説明しない。送信機能の説明で送信データ、デ
ィジタル/アナログ・コンバータ、送信信号サンプルと
いう所が、受信機能ではそれぞれ受信データ、アナログ
/ディジタル・コンバータ、受信信号サンプルとなるこ
とを指摘するに留めておく。
第11図に概略的に示すように、マイクロコード化送信
機能は、次のステップから構成される。
(1)DTE7のV24インタフェース上に供給される
送信データ(TD)ビットを非直列化レジスタ1で読み
取り、それを送信データ・バッファ7− 4に記憶するステップ。これは割込み型プログラム・セ
グメントに対応する。
(2)バッファ4から1バイトのデータを読み取り、こ
の送信データ・バイトから1組の送信信号サンプルを計
算して、それを送信サンプル・バッファ手段5に記憶す
るステップ。これはより低い優先順位レベルで行なわれ
る。
(3)1組の送信信号サンプルをディジタル/アナログ
D/A+アナログ/ディジタルA/Dコンバータ3に書
き込み、送信の場合はそれによってサンプルをアナログ
信号に変換して、電話線6上に送出するステップ。送信
機能のこの最後の部分も、割込みプログラムの1セグメ
ントによって生成される割込み信号によって開始される
高優先順位のタスクである。
同様に、マイクロコード化受信機能は、次のステップか
ら構成される。
(1)電話線6から信号を受信した後、アナログ/ディ
ジタル・コンバータ3から供給されるディジタル・サン
プルを読み取り、そのサンプルを受8 信サンプル・バッファ手段5に記憶するステップ。
これは割込み型プログラム・セグメントに対応する。
(2)1組のディジタル受信サンプルから1組の受信デ
ータ・ビットを計算し、それを受信データ・バッファ手
段4に記憶するステップ。これはより低い優先順位レベ
ルで行なわれる。
(3)1バイトの受信データ・ビットを受信データ直列
化レジスタ1に書き込むステップ。受信機能のこの最後
の部分も、割込みプログラムによって生成される割込み
信号によって開始される高優先順位のタスクである。
次に、送信機能の場合に話を戻す。
この機構の説明は、最も複雑な19200bI)Sの速
度の場合について行なう。14400bps19t30
0bl)sなど他のビット速度の場合も同じ原理に従う
が、データ及び信号サンプルの緩衝記憶及び処理のセグ
メント化に関する制約がより少なくなる。
割込みプログラムは、逐次データ伝送速度から誘導した
一定の周波数F1で周期的に、■24インタフェースの
非直列化レジスタ1を読み取って、−時に8ビツトの送
信データ(TD)を非直列化し、次いでそれらのデータ
をTXDATと呼ばれるバッファ4(第11図のT)に
記憶する。
主送信プログラムは、(後で詳しく説明するように)割
込みプログラムによって周波数F2で生成される要求に
よって要求されたとき、TXDATバッファ内にある最
も古い1個7ビツトの送信データから1組の送信信号サ
ンプルを計算する。
次いでこれらのサンプルはXSAMPLバッファ5(第
11図のX)に記憶される。
割込みプログラムは、一定の周波数F3で周期的にXS
AMPLバッファ5からの1個の送信信号サンプルをD
/Aコンバータ入出力レジスタ3に書き込み、それを電
話線6に送出する。
割込みを生成する割込みプログラムは、送信部分と受信
部分の2つの部分に分かれていることに留意されたい。
どちらの部分が使用されるかは、モデム内のデータ流れ
の方向、すなわちDTE7から電話線6へ(送信動作)
か、それとも電話線6からDTE7へ(受信動作)かに
応じて選択される。データ流れの方向に応じて、2つの
独立したPLOを使って割込みを生成することが好まし
い。上記のように対称性があるので、以下では送信方向
に関係する割込みプログラムについて述べる。
割込み送信プログラムの活動化及び処理割込み送信プロ
グラムは、毎秒14400割込みの周波数でPLOによ
って生成される送信割込みIO〜I41 (第13図)
によって駆動される。
次に第12図、第13図、第14図に関して、割込み送
信プログラムと主送信プログラムの活動化及び処理につ
いてより詳しく説明する。(これに関連するハードウェ
ア及びデータ流れは、本発明の実施例として後で詳細に
説明する第1図及び第3図を参照するとよくわかる。) 6回に1回の割込みIO,IO,112,、。
どどに、すなわち(8X1/14400=1/2400
)416.6マイクロ秒ごとに、割込みプ1 0グラムによって読取り信号(RO,、、、Re)が生
成されて、v24インタフェース非直列化レジスタ1を
読み取る。入りデータ速度が1920obp sの場合
、各読取り信号ごとに8ビツトの送信データが並列に読
み取られ(したがって、定周波数F1=毎秒8ビットの
読取り動作2400回となる) 、TXDAT循環バッ
ファ4に記憶される。バッファ4は7x8=56tビツ
トを格納することができる(第1図)。それぞれ8ビツ
トのRAM位置7個が1つのXDINポインタ8によっ
て制御される。
8ビツトの送信データのストリングが記憶されるごとに
、XDINポインタは7を法とする1ずつ増分される。
したがって、TXDATバッファ4を完全に充填するに
は7回の読取り/記憶動作が必要である。
第1図にXDINポインタ8とXDOUTポインタ10
の間のlN10UT間隔で概略的に示したある遅延11
で、TXDAT循環バッファ4に記憶されたデータが7
ビツトのグループとして送2 信サンプル計算機構2に送られる。この送信は、周波数
F2で行なわれる。遅延11が可変なので周波数F2も
変動するが、長時間で見ると、F2は19200bI)
sのデータ流れ、すなわち毎秒7ビツトの送信動作27
43回に相当する。
7ビツトの各グループごとに、主プログラムの低優先順
位タスクに従って計算機構2の内部で、1組の送信サン
プルが計算される。上記のサンプルはそれぞれ16ビツ
トでコード化されており、5個または6個まとめて、X
SAMPL循環バッファ5の、X5INポインタ12で
指示されるRAM位置にロードされる。高優先順位の割
込みプログラムによってPLO速度(毎秒14400割
込み)で送信割込みが生成されると、ポインタX5OU
T14の位置に応じてサンプルが1個ずつXSAMPL
バッファ5から読み出されて、D/Aコンバータ入出力
レジスタ3に書き込まれ、そこでデータが変換されて電
話線に送出される。
X S AMP L循環バッファは長さ42RAM位置
であり、X5OUTポインタによって制御される。この
X5OUTポインタは各サンプル処理ごとに42を法と
する1ずつ増分される。バッファから1組のサンプル(
下記の理由から、1組は5個または6個のサンプルから
構成される)が読み取られるごとに、要求Rn (n=
0〜7)、送信の場合は送信要求Xnが記入されて、X
SAMPLバッファを新しい1組のサンプルで充填すヘ
キ時間がきたことを主送信プログラムに知らせる。
したがって、主送信プログラムは要求主導型である。第
13図の下部に示すように、スケジューラが記入された
Xn要求を見つけるたびに、そのタスクが指名される。
送信要求は、先に見たように割込み送信プログラムによ
って記入される。
TXDATバッファを完全に空にするには8個の送信要
求X0−X7が必要である。各送信要求によって、主送
信プログラムが送信処理サイクルの対応するタスクTn
(またはステップn)に入る。
送信処理サイクル 先に第12図に関して説明したように、送信処理は42
割込み間隔に対応する時間(これは8ボー・タイムに相
当する)続くサイクルに従って動く。このサイクルの間
に、56ビツト(7×8ビツト)の送信データがV24
インタフェースのレジスタ1から読み取られ、42個の
送信サンプルがD/Aコンバータ入出力レジスタ3に書
き込まれる。
上記のサンプル数(42)は、モデムの計算機構2で使
用する数字アルゴリズムによって決まるもので、別のサ
ンプル数や、送信サイクルの諸ステップに入れるサンプ
ルの別のグループ分けを使用しても、本発明に影響はな
い。42は8の倍数でないので、処理サイクルを、6個
のサンプルに関する2つのステップ(So、81)と、
5個のサンプルに関する6つのステップ(82〜S7)
に分けるためにこの数を選んだ。
各ステップの実行時にXn要求が記入される。
ただし、nはステップ番号に対応する(XO−X7)。
これらの要求は主送信プログラムのタスク・スケジュー
リングに使われる。各要求に主送信プ25 0グラムのあるタスクが対応し、割込みプログラムの各
側込み(IO−I41)に上記割込みプログラムのある
セグメントが対応する。
したがって、この割込みプログラムは42個の基本セグ
メントを含む。−例を挙げると、第13図から理解でき
るように、セグメントOは割込みIOによって開始され
、下記の一連のタスクによって定義される。
・非直列化レジスタ1から8ビツトを読み取らせる読取
り信号ROを生成するタスク。
・サンプル・バッファ5からサンプルWOを読み取り、
それを電話線上で送信するためD/Aコンバータ入出力
レジスタ3に書き込むタスク。
・O送信タスクOを実行すべく主プログラムを呼び出す
ために、送信要求XOを記入するタスク。
・次の割込みプログラム・セグメント項目(すなわちセ
グメント1)を準備するタスク。
したがって、次の割込み11に続いて、割込みプログラ
ムは直接にセグメント1に進む。セグメント1は、サン
プル・バッファ5からサンプルW26 01を読み取って、D/Aコンバータ入出力のレジスタ
3に書き込むタスクのみを含んでいる。割込み送信プロ
グラムの残りすべてのセグメントは、前述のいずれかの
タイプである。
もちろん、ある処理サイクルのすべての割込み1O−I
41及びそれに対応するセグメントが実行を終えると、
新しいサイクルが始まる。すなわち、I41に対応する
セグメントは、■0に対応するセグメントに入る準備を
する。
要約すると、完全な送信処理サイクルは、次の動作から
構成される。
(1)前に計算した送信サンプルをD/Aコンバータに
42回書き込む。
(2)8つの送信要求(XO〜X7)を順に8回記入し
て、1タスクごとに5個または6個1組の送信サンプル
を順に8回計算するタスクを実行させる。各タスクごと
に入力として7データ・ビットのストリングが必要とな
る。上記のビットは、V24非直列化レジスタ1によっ
て供給されるTXDATバッファ4のデータ・バイトか
ら読み出される。
(3)V24非直列化レジスタ1によって供給される新
しいデータ・バイトを順に7回読み取る(RO−R6)
上記の主送信プログラムの計算タスクは、次の動作から
なる。
(1)送信データ循環バッファTXDAT4から7ビツ
ト1組のデータを獲得する。上記1組のデータは、XD
OUTポインタ10で指示される位置から取り出される
(第1図)。
(2)上記7ビツト1組のデータを使って、(上記に説
明したようにタスク番号に応じて)5個または6個1組
の送信信号サンプルを計算する。
(3)上記の5個または6個1組の信号サンプルを送信
サンプル・バッファ手段、すなわち循環バッファXSA
MPLE5の、X5OUTポインタ14で指示される位
置に記憶する。
第13図の下部に、「最良の場合」すなわち従来技術の
モデムで見られる通常の場合に、主送信プログラムによ
って実行されるタスクのタイミングを示す。この場合、
上記の各送信プログラム・タスク(空白領域16)は対
応する送信要求Xnによってトリガされ、直ちに実行さ
れ、次の送信要求Xn+1が発生する前に終了する。タ
スクOの間に計算されるサンプルW6〜W10は、タス
ク1の間にD/Aコンバータに送られ、以下同様である
しかし、本明細書の前文で説明したように、2つの同期
送信タスクの間でスケジュールを調整する必要のある、
非同期機能(CNM1監視など)を提供する高速で精巧
なモデムでは、この制約は許容できない。モデムにおい
ては、(本明細書で記述する)送信タスク処理及び受信
タスク処理は、ボー・タイムに基づいて行なわれる。簡
単なスケジューリング機構を用いる通常の場合は、どの
タスク処理も次のボー・タイムが始まる前に終了しなけ
ればならない。その場合、要求Xn+1が記入されたと
きタスクTnがまだ実行中である場合、そのたびごとに
ボー・タイム・オーバランを検出しなければならない。
この状況は一般にタスク計9− 算の過負荷のために起こるものであり、この過負荷は、
非同期処理の実行、あるいは回線上の伝送状況が困難で
より多くの計算が必要となるための長すぎる同期処理の
実行によるものである。このような非同期機能のタイミ
ングを、第13図に斜線部分18で示す。
図からすぐにわかるように、非同期タスク18が、次の
送信タスクの同期実行の前の利用可能な時間16を超え
るとすぐ、オーバラン状態が発生し、モデムから渡され
るデータは全く意味がなくなる。
この問題に対する2つの論理的解決法は、次のようなも
のであろう。
(1)主送信プログラムの処理装置の性能を高めて、同
期機能と非同期機能の実行時間を共に短縮する。ただし
、この方策はコストが高くつく。
(2)送信データ・バッファTXDAT4のレベルでの
入りデータ・ビットと出データ・ビットの間、及び送信
サンプル・バッファXSAMPL5のレベルでの記憶サ
ンプルと送信サンプルの間の0− 緩衝空間を増大させる。しかし、そうするとモデム入出
力間の情報の全移行時間が増加するので、高性能モデム
では許容できない。
本発明によれば、非同期タスクが使用すべき空いた処理
ウィンドウを作成することにより、データの入力と出力
の間の全移行時間に影響を与えずに、同期タスク及び非
同期タスクの実行のフレキシビリティを増大させる、第
3の方法が提供される。
下記に述べる改良された機構のおかげで、−時的なタス
ク計算の過負荷が一定の限界のもとで許容されるように
なる。こうした−時的過負荷は通常見られるものであり
(長い初期設定、受信機構の同期時間で実行される特殊
なアルゴリズム、データ伝送速度変更の指示を含むトレ
ーニング・シーケンスを受信した際のオンザフライ・ポ
ート構成変更など)、当然考慮に入れるべきものである
本発明によれば、累積タスク過負荷が、所与の数を超え
るサービス待ち要求などの大域的遅延を生じるときだけ
、オーバランが検出される。非同期タスクは、通常の条
件ではこの種のオーバランが決して起こらないように定
義されスケジューリングされる(限られた長さの非同期
タスクの区分)。
いずれにせよ、平均すると「ボー・タイム当り1同期タ
スク処理」という規則が、ここに提案する機構を用いる
場合でも依然として成立する。タスク過負荷を受け入れ
るのに必要な計算サイクルは、非同期プログラムから盗
用されるが、これはそれらの非同期プログラムにとって
有害ではない。
主送信プログラムの処理の順次遅延実行という原理は、
第2図を見ると最もわかりやすい。
主プログラム(送信機構プログラム、受信機構プログラ
ム、監視など)の諸モジュールの処理はマイクロプロセ
ッサによって順次実行されるので、主送信プログラムの
実行が、送信要求が記入された時間に比べて遅れること
があり得る。所与の割込み要求信号(X n N X 
n + 1133.)は、対応する主プログラムのタス
ク(T n 1T n +11.、、)の実行が始まる
まで、高レベル状態に留まる。−例を挙げると、主プロ
グラムのタスクTnは送信要求Xnの直後に実行される
が、タスクTn+1は要求Xn+1に対して遅延20で
もって実行される。遅延′20は1ボー・タイム、すな
わち連続する2つの要求の間隔より長いので、タスクT
n+1は要求Xn+2よりも後で実行される。この状況
は、従来技術によるモデムではオーバランに相当するも
のになるが、本発明によれば、主プログラムの連続する
2つのタスクの実行の間の許容可能な遅延または弾力性
に相当する。この遅延によって空いた処理ウィンドウが
生成され、その間に非同期タスクまたは一時同期タスク
をスケジューリングし実行することができる。
その結果、本発明によれば、主プログラムの諸タスクの
実行は、第13図で説明したような、割込みプログラム
と同期して発生される要求Xnに対して擬似同期的なも
のになる。
タスクTn+1を要求Xn+1に対して遅延してスケジ
ューリング(第2図)できるのは、少くとも情報の移行
時間が極めて重要であるモデムで33 は、妥当な遅延値の範囲内だけであることに留意された
い。
後で説明するスケジューリング機構の実施態様において
は、要求とそれに対応するタスク実行との間の最大遅延
20は、3ボー・タイムであると仮定する。ボー・タイ
ムとは連続する要求間の間隔である。それよりも大きな
遅延が現れると、許容される弾力性を越えてしまい、認
識する必要があるオーバラン状況が発生する。
すなわち、スケジューラが未処理の要求を4個見つける
とオーバラン条件に達し、モデムがリセットされて、デ
ータ伝送が中断され、回復不能なデータ・エラーの発生
が避けられる。
さらに、連続するタスクの実行間の間隔を弾力的にする
ことのできるこのスケジューリング機構の利点の1つは
、必要なときだけ、すなわち比較的長い非同期処理の実
行18または一時同期タスクをスケジューリングしなけ
ればならないときだけ、実行遅延を用いることである。
後続の一定数の擬似同期タスク実行の後、第13図の下
部に示4 す正常状況が回復される。
最後に、本発明によるスケジューリング機構は、処理能
力のオーバランが最小で、処理時間を最適に利用するこ
とができる。
本発明によるスケジューリング機構のモデム・データ流
れに対する作用は、第1図を見ると最もわかりやすい。
第1図は、ポインタ(XD I N)8、!= (XD
OUT)10のそれぞれの位置を示したものである。X
DINポインタ8は、割込みプログラムによってTXD
AT循環バ・ソファ4に記憶されるデータ・バイトの位
置を示す。これはfl”19200bps1すなわち毎
秒2400x8ビツトの一定周波数で行なわれる。XD
OUTポインタ10は、モデムの送信サンプル計算機構
2が一時に必要とするデータの7ビツトの位置を示す。
必要なビットが7ビツトであるかどうかは、モデムで使
用している計算アルゴリズムに応じて決まる。−時に別
のビット数が必要とされる場合でも、’XDOUTX5
INポインタ12数が影響を受けるだけで、割込みプロ
グラムの要求と主プログラムのタスク実行の間に遅延を
置くという原理そのものは影響を受けない。第1図では
、この遅延はlN10UT間隔11及び13で示される
。その意味は、割込みプログラムと主送信プログラムが
、TXDATバッファ4またはXSAMPLバッファ5
の同じ区域内では動作しないということである。各プロ
グラムは、それ自体のlN10UTポインタを使ってこ
れらの共通バッファを操作する。これらのポインタは、
それらの値の「間隔」が正常条件でのデータ・オーバラ
ンを阻止するように初期設定される。
割込みプログラムによって使用されるXDINポインタ
8及びX5OUTポインタ14の進行速度は一定である
XDINでは、この速度は毎秒8ビツトが2400回変
位する速度に等しく、19200bI)sのデータ伝送
速度に相当する。X5OUTでは、この速度は毎秒14
400個のディジタル・サンプルがD/Aコンバータ3
に送られる速度に相当する。
スケジューリング機構によって「弾力性」がもたらされ
るため、主送信プログラムが使用するXDOUTポイン
タ10及びX5INポインタ12の進行速度は一定では
ない。とはいえ、平均すると、これらのポインタの進行
速度は、割込みプログラムが使用するポインタの進行速
度に等しくなる。ポインタ値の間でオーバライドのない
弾力性が得られるのは、後で説明する同期タスク・スケ
ジューラ30によってスケジューリング機構の動作が可
能となるためである。
第3図は、本発明のスケジューリング機構を使用したモ
デム、より一般には通信システムの構成図である。通信
システムは、最も一般的な構成では、同期入出力装置2
2を含む。モデムの場合には、入出力装置22は、第1
図に示すV24人出力直列化/非直列化レジスタ1及び
D/Aコンバータ入出力レジスタ3からなる。
入出力動作(すなわち、モデムの場合ではデータまたは
サンプルの送受信)は、割込み、ならびに同期プログラ
ム24によって供給されるタイミ7 ングによって実行される。モデムの場合はこの同期プロ
グラムを割込みプログラムと呼ぶ。
データはデータ・バッファ26に両方向から緩衝記憶さ
れる。モデムの場合は、このデータ・バ・ソファは、第
1図に示したTXDATバッファ4及びXSAMPLバ
ッファ5に再グループ化される。
TDとXSはそれぞれ送信データ及び送信サンプルを表
す。破線の矢印は、受信流れを示す。
擬似同期プログラム28(モデムの場合は、主送信/受
信機構プログラム)は、スケジューラ30によって行な
われるタスク・スケジューリングに従って、バッファ記
憶データを使ってタスクを実行する。したがって、上記
のスケジューラ30は、同期プログラム24から供給さ
れるタスク要求を走査する。通常は同期的な各タスクが
、対応する要求に対して制御された遅延でもってスケジ
ューリングされる。
次に、第3図に示した本発明によるスケジューラの2つ
の実施態様について説明する。ここでは、通信システム
がモデムであると仮定して説明を行38 なうが、本発明の一般性はそれによって損なわれるもの
ではない。
第4A図及び第4B図に関して、タスク・スケジューラ
の実施態様の原理を説明する。第4A図及び第4B図に
示した原理にもとづくスケジューラの第1のハードウェ
アによる実施態様を第5図ないし第8図に関して説明す
る。マイクロコード式決定テーブルを用いたより好まし
い実施態様は、第9図に示されている。
第4A図に示すように、スケジューラ30は、次のもの
から構成される。
・1個の循環式要求バッファ34゜8ビツト長で、各要
求ピッ)XO−Xlはそれぞれ主送信プログラム処理の
所与のタスクに関係する。
・1個の大域ウィンドウWG36゜8ビツト長で、これ
は、隣接する2個のウィンドウ、すなわち選択ウィンド
ウWS38とオーバラン・ウィンドウWO40から構成
される。
WSウィンドウ38は、3ビット長で、要求選択用であ
る。3ビット長なのは、同じバッファのlN10UTポ
インタの値の間の最大遅延に対して最大で3個の未処理
要求しか許されないためである。
WOウィンドウ40は、5ビツト長で、オーバラン検査
用である。
・スキャナ42゜WSウィンドウ38及びWOウィンド
ウ40を介して要求バッファ34の内容を頻繁に走査す
る。このスキャナは、主プログラム・タスクの実行後ご
とに活動化される。
第4A図は、初期設定時ならびに送信処理サイクルの各
開始時のウィンドウの位置を示している。
第4A図及び第4B図に示したスケジューラの動作は次
の通りである。
初期設定時 WSウィンドウ38がビットXOに位置合せされる。W
OウィンドウがビットX3に位置合せされる。WSウィ
ンドウとWOウィンドウは、WGウィンドウ36の隣接
するサブセットである。要求バッファ34のすべてのビ
ットが、この2つのウィンドウでカバーされる。
WSはX2−Xl−XO要求ビットをカバーする。
XOはXl−XO−X5−X4−X3要求ビツトをカバ
ーする。
最初にXO要求を記入するために並列に、割込みプログ
ラムが準備される(次いでXl、X2、X3、X4、X
5、XO、Xl、X01X1が順次記入される)。
送信処理実行中 スキャナ42に制御権が与えられるたびに、スキャナ4
2はまずWOウィンドウ40を通して要求バッファを見
る。これはオーバランの検出に相当する。すべてのビッ
トがOにセットされているはずである。’ ooooo
 ’以外の値は、オーバラン要求または不良要求が待機
していることを意味し、MODEM  RESET信号
が生成される(未処理の要求が4個以上ある)。
次いで、スキャナは、有効なビットの組合せがあるかど
うか、WSウィンドウ38を通して要求バッファを見る
。不連続ビットがオンである組合1 − せは無効と宣言され、MODEM  RESET信号が
生成される。
有効な組合せをその意味と共に以下に示す。
・“000“活動状態の要求なし。待機。
・”001”活動状態の要求1個。関連処理をスケジュ
ーリングする。
・°011“要求2個。(一番右のXn要求に優先権が
与えられる)。
・“111“要求3個。(一番右のXn要求に優先権が
与えられる)。
無効な組合せをその意味と共に以下に示す。
・’010“不良要求が待機中、一番右のビットがオフ
・“100“不良要求が待機中、一番右のビットがオフ
・′101“不良要求が待機中、不連続ビットがオン。
“110“不良要求が待機中、一番右のビットがオフ。
組合せが’ ooo ”のときは、何も行なわれな2 い。WSウィンドウ及びWOウィンドウを通して有効な
組合せが見えたとき、 ・一番右の、すなわちWSのもとて最も古いオンの要求
ビットに対応する主送信プログラムのタスクが選択され
る。
・選択された対応する要求ビットがOにセットして、要
求バッファに入れられる。
・大域ウィンドウWG3Bが左に1位置だけシフトされ
て回転される。
その後、要求バッファ34内に活動状態の要求がある限
り、同様にして処理が続行する。
たとえば、第4A図において、XO要求が選択され、要
求バッファがシフトされた後の新しい位置設定は第4B
図に示すようになる。
WSウィンドウ38はバッファ34のX3−X2−X1
要求ビツトをカバーする。
WOウィンドウ40はバッファ34のXo−X7−X5
−X5−X4要求ビツトをカバーする。
ウィンドウ及び要求バッファのサイズは、適用業務によ
って決まることに留意されたい。必要とされる「弾力性
」またはタスク数に応じて、これらのサイズは容易に変
更できる。たとえば、14400bpsのモデムでは、
要求バッファと大域ウィンドウWGは4ビツト長、選択
ウィンドウWGは2ビツト長、オーバラン検査ウィンド
ウWOは2ビツト長となる。
第5図は、スケジューラ30の第1の実施態様のハード
ウェア構成図である。次のようなブロックが含まれる。
・割込みプログラム論理ブロック(INTERRUPT
)44 ・要求設定論理ブロック(REQUESTS)4・ウィ
ンドウ選択論理ブロック(WINDOWS)8 ・シフト/回転論理ブロック(SHIFT)50・オー
バラン検出論理ブロック(OVERRUN)2 ・要求選択論理ブロック(SELECTION)4 ・要求妥当性検査論理ブロック(VALIDATION
)56 要求は、割込み論理ブロック44によって要求バッファ
内の専用の場所でセットされる。次に、ウィンドウ選択
論理ブロック48で、それらの要求が分析され、オーバ
ランの検出及び要求の選択と妥当性検査が行なわれる。
要求の妥当性が確認されると、シフト/回転論理ブロッ
ク50が活動化され、当該タスクのスケジューリングが
行なわれる。
シフト/回転論理回路50が活動状態になると、ウィン
ドウ・バッファ36を1ビツト位置シフトし回転させる
。5HIFT信号の活動化は、要求妥当性検査論理ブロ
ック56の出力によって行なわれる。
また、タスクnのスケジューリングが完了すると、線5
8を介して要求設定論理回路46に対応する要求をリセ
ットするための情報が供給される。
第6図は、要求設定論理ブロック46の詳細を示す。
=45 ・入カニ要求をオンにセットするための割込み論理ブロ
ック44からのXo−8ETないしX7−8ET、要求
をオフにセットするための要求妥当性検査論理ブロック
56からのXo−VALないしX7−VAL (C)。
初期設定時に活動状態となる、すべての要求ビットをオ
フにセットするためのX−INIT信号。
・出カニ要求選択論理ブロック54及びオーバラン検出
論理ブロック52に送られる要求ビットXOないしX7
゜ 第7図は、ウィンドウ選択論理ブロック48の詳細を示
す。
・入カニシフト/回転論理ブロック50からのシフト/
回転信号。W−8HIFTシフト信号がオンになるたび
に、ウィンドウ・バッファ36(8ビツト)が1ビツト
位置ずつシフトされ回転される。もう1つの入力である
ーW−I N I T−は初期設定時に活動状態となり
、WO〜W2ビットを1″にセットし、W3〜W7ビツ
トを0″にセットする。
46一 ・出カニ要求選択論理ブロック52及びオーバラン検出
論理ブロック54に送られるWO−W7ビツト。Wnビ
ットのもとで最も古い、値が”1″の要求ビットを選択
するためのWO−8ELないしW7−8EL、WO−8
ELないしW7−8ELビツトのうちで一時に1個のW
 n −S E Lビットがオンになる。
第8図は、オーバラン検出論理ブロック52、要求選択
論理ブロック54、要求妥当性検査論理ブロック56を
示す。
・入カニ要求設定論理ブロック46からのXO〜X7ビ
ツト。ウィンドウ選択論理ブロック48からのWO−W
7ビツト。ウィンドウ選択論理ブロック48からのWO
−8ELないしW7−8ELビツト。
・出カニタスクTo−T7のスケジューリング用及び要
求設定論理ブロック46用のXo−VALないしX7−
VALビット。
モデム・リセット用のX−0VER信号、シフト/回転
論理ブロック50用のW−8HIFT信号。
このように、スケジューラ30のこのハードウェアによ
る実施態様では、モデムの送信処理サイクルのタスクT
o−T7のスケジューリングが可能となる。受信処理サ
イクル用にも同様のスケジューラが使用できるが、両サ
イクルは対称形なのでここでは説明しない。
次に、第9図に関して、マイクロコード式テーブル・ル
ックアップ方式に基づくさらに簡単なスケジューラ30
について説明する。
このマイクロコード式スケジューラの実施態様で使用さ
れる原理は、要求バイトの値(X7、X61.、、 、
XO)を用いて、特定の各要求サイクルごとにマイクロ
コード式命令を含む決定テーブル60を指すというもの
である。この命令は、次に実行すべきタスク番号(0〜
7)を供給し、最後に処理された送信(または受信)要
求に対応するビットがOにセットされている要求バイト
の新しい値を供給する。
上記のマイクロコード式決定テーブル60の実施態様及
びそれを使ってタスクのスケジューリングを行なう方法
を、第9図に示す。
割込みプログラムから(第3図参照)送信タスク・スケ
ジューラ・エントリ70に供給される要求バイト68は
、モデムのプロセッサ(図示せず)がBRANCHTA
BLE命令のオペランドとして使用する。すなわち、要
求バイト68は決定テーブル60へのインデックスとし
て使用される。
テーブル60は、256個(すなわち要求バイトの可能
な値の数)の位置62を含むRO8(読取り専用記憶装
置)によって実施できる。
テーブル60の各位置62はそれぞれ実行可能なマイク
ロコード式命令を含み、その命令が実行されると、ハー
ドウェア・スケジューラに関して記述したウィンドウW
S38とWO40の役割を統合し、図に示す2つの戻り
パラメータを供給する。より正確に言うと、 ・要求バイト68の無効な各値には、それぞれ「モデム
・リセット」プログラムへの分岐を含むテーブル命令が
対応する。
・要求バイト68の有効な各値には、それぞれ149− 1ビツト値のモデム・プロセッサ(図示せず)の内部レ
ジスタのロードを含むテーブル命令が対応する。
この11ビツトの値は、2つのパラメータ(64,66
)を含んでいる。
・3ビツトでコード化された送信タスク番号(n)。こ
れは、スケジューリングされる次の送信タスクの要求番
号Xnに対応する。
・8ビツト値。これは、新しい要求バイト値、すなわち
最後に実行されたタスクに対応する要求ビットが0にリ
セットされている要求バイト値に対応する。
第9図に示すように、テーブル60から供給される新し
い要求バイト値は、先に説明した通り、割込みプログラ
ムによって次のスケジューリング動作が求められるまで
、モデム・プロセッサによって記憶される。
その他に、テーブル60から供給される送信タスク値は
、主送信プログラムの対応するタスク(タスク01++
+、タスク7)を活動化するの0 にも使用される。
次に、決定テーブル60のルックアップを用いるタスク
・スケジューラの動作について、例を引きながらより詳
しく説明する。
テーブル・ルックアップによる要求選択の側辺下の例で
は、要求バッファの要求ビットには次のように左から右
へと順番に番号を振る。XOは、要求バッファが受け取
った最も古い要求を表す。
lX71X61X51X41X31X21X11XOI
(1)要求バイトがBv000001107(X”06
)を含む例 これは、X1ビツトとX2ビツトが割込みプログラムに
よって記入されたことを意味する。組合せX2XIXO
=110は有効である。その値は16進法でx’oe’
である。スケジューラは対応するテーブル命令をアドレ
スする。このテーブル命令は、2進値“0010000
0100“をプロセッサの内部レジスタにロードさせる
スケジューラは上記レジスタの内容を取り戻す。
戻された2進値において、 ・右側8ビツト’00000100’は、要求バイトを
更新するはずの値を表す。要求X2ビツトだけが存在す
る。選択された要求X1ビツトは、更新された要求バイ
ト中でOにセットされた。
・左側3ビツト“OOl“は、要求X1に対応する送信
タスク番号“1′を表す。スケジューリングされると、
送信タスク1は、以前に実行されたタスクの番号が“0
“であったかどうか検査する。
そうでない場合は、「モデム・リセット」プログラムに
分岐する。
(2)要求バイトがB’00001111’ (X’O
F”)を含む例 これは、4個の要求XO〜X3が活動状態にあることを
意味する。主送信プログラムは割込みプログラムに対し
て遅れている。これはオーバラン状態である。
インデックス値X’OF“に対応するテーブル命令は、
「モデム・リセット」プログラムへの分岐を含んでいる
(3)要求バイトがB’1lO01000“ (X“C
8“)を含む例 これは、3個の要求が活動状態にあるが、不連続の要求
ビットがオンなので、どこかでエラーが発生したことを
意味する。
インデックス値X’C8’に対応するテーブル命令は「
モデム・リセット」プログラムへの分岐を含んでいる。
(4)要求バイトがB” 11000001 ’  (
X’01′)を含む例 これは、3個の要求が活動状態にあることを意味する。
このバッファは循環式なので、オン・ビットは連続して
いる。この組合せは有効である要求は(古いものから順
に)XO、X7、XOである。
インデックス値x’ci’に対応するテーブル命令は、
2進値“11010000001“をロードすることを
含んでいる。
この2進値において、 ・右側8ビツトは、要求バイトを更新するはずの値を表
す。要求ビットX7とXOだけが存在する。
53 選択されたXO要求ビットはOにセットされた。
・左側3ビツトは、要求X6に対応するタスク番号“6
“を表す。スケジューリングされると、送信タスク6は
、以前に実行されたタスク番号が151だったかどうか
検査する。そうでない場合は、「モデム・リセット」プ
ログラムに分岐する。
適切なマイクロ命令でテーブル60をセットアツプする
ため、以下の規則を使用するアルゴリズムが使用できる
(1)テーブル命令アドレス’oo’は、空の要求バッ
ファに対応する。送信タスクは実行されない。出口への
分岐をとり、スケジューラは活動状態の要求を待つ。
(2)そのアドレスが、不連続ビットがオンの要求バッ
ファ値に対応する各テーブル命令は、「モデム・リセッ
ト」プログラムへの分岐を含んでいる。
(3)そのアドレスが、4個以上の連続ビットがオンの
要求バッファ値に対応する各テーブル命令は、「モデム
・リセット」プログラムへの分岐を4 含んでいる(他の実施態様では、これはウィンドウWO
40の役割であった)。
(4)そのアドレスが、4個未満の連続ビットがオンの
要求バッファ値に対応する各テーブル命令は、11ビツ
ト値をロードすることを含んでいる。
そのうち左側3ビツトはスケジューリングされるタスク
の番号を表し、右側8ビツトは、選択された要求ビット
をクリアするために循環式要求バッファに記憶される新
しい値を表す。
選択された要求は、オンの連続ビットのグループ中の一
番右側のビットに対応する(ウィンドウWS38の役割
)。
送信タスクの順序保全性は、最後に実行されたタスクの
番号を新しく提案されたものと比較することによって制
御される。有効な順序は、011.2.3.4.5.6
.7.0.1.2100.である。
順序外れが検出されると、「モデム・リセット」プログ
ラムに分岐する。
最後に、決定テーブル60の1つの命令が、スケジュー
ラのすべての機能、すなわちオーバラン検出、タスク要
求の選択と妥当性検査を実行する。
さらに、送信要求の選択と受信要求の選択に同じ決定テ
ーブルが使用できる。
これら諸機能の実施は非常に簡単である。この機構のチ
ューニング(弾力性)は、決定テーブルの内容(ウィン
ドウのサイズ)を変更することによって容易に行なえる
このモデム・プログラムはマイクロプロセッサにおける
計算負荷の影響を非常に受けやすいと先に述べた。送信
処理と受信処理の異なるタスクのスケジューリングは頻
繁に実行されるので、このスケジューリング機構が必要
とする計算負荷を最小限に減らさなければならない。
この目的は、本発明による高速で簡単な適応的スケジュ
ーリング機構及びスケジューラによって達成される。
さらに、本発明によるスケジューリング機構及びスケジ
ューラは、以下のことを行なうことができる。
・オーバランの検出 ・不良要求待機の検出 ・要求番号の選択 ・要求バッファの更新(待ち行列解除)・送信タスクの
指名 10発明の効果 本発明によれば、割込みプログラムによって要求が生成
されると直ちにタスクのスケジューリングを行なう代り
に、タスクがそれに対応する要求に対して制御された遅
延でもってスケジューリングされる。したがって、非同
期タスクまたは同期−時タスクを実行するための空いた
処理ウィンドウが作成される。全体として、処理能力を
増加させずに、より多くの同期タスク及び非同期タスク
が実行できる。
【図面の簡単な説明】
第1図は、本発明におけるモデムを通るデータ流れ及び
データ・サンプルの緩衝記憶と送信の原理を表す図であ
る。 第2図は、本発明に従って割込みプログラムと7− 主プログラムが一時的同期喪失でもって動作する流れ図
である。 第3図は、本発明による原理を実施するために通信シス
テム中で必要とされる全体構造を表す図である。 第4A図は、要求バッファが第1の位置にある、第3図
に示したスケジューラの基本構造を示す図である。 第4B図は、要求バッファが第2の位置にある、第3図
に示したスケジューラの図である。 第5図は、スケジューラ論理の概略図である。 第6図は、第5図に示した要求設定論理ブロックの詳細
図である。 第7図は、第5図に示したウィンドウ選択論理ブロック
の詳細図である。 第8図は、第5図に示したオーバラン検出、要求選択、
要求妥当性検査の各論理ブロックの詳細図である。 第9図は、スケジューラ及びオーバラン検出の別の実施
態様の動作を説明する概略図である。 8− 第10図は、既知のモデム・マイクロコードの全体構造
を表す図である。 第11図は、モデムのマイクロコード式送信及び受信機
能の動作原理を示す図である。 第12図は、モデムの送信または受信処理サイクルに関
わるクロック信号、常にデータ・ストリームと同期して
いる割込みプログラムを表す図である。 第13図は、送信タスクの同期実行を含む、第12図に
示した処理サイクルの一部分の詳細を示す図である。 30・・・・スケジューラ、34・・・・要求バッファ
、36・・・・大域ウィンドウ(WG)、38・・・・
選択ウィンドウ(WS)、40・・・・オーバラン・ウ
ィンドウ(WO)、42・・・・スキャナ、44・・・
・割込みプログラム論理ブロック、46・・・・要求設
定論理ブロック、48・・・・ウィンドウ選択論理ブロ
ック、50・・・・シフト/回転論理ブロック、52・
・・・オーバラン検出論理ブロック、54・・・・要求
選択論理ブロック、56・・・・要求妥当性検査論理ブ
ロック。

Claims (10)

    【特許請求の範囲】
  1. (1)低優先順位の主プログラムの諸タスクによって処
    理されるデータを、高優先順位のプログラムによって決
    定される速度で同期して受け取り、処理されたデータを
    同期的に出力するシステムにおいて、 限られた1組の受信データを上記高優先順位プログラム
    と同期した速度でバッファ手段に緩衝記憶する手段と、 上記緩衝記憶されたそれぞれの組のデータに関して実行
    されるべきタスクに対応した処理要求を順次生成する手
    段と、 上記処理要求に対して、対応する特定のタスクが制御さ
    れた遅延で実行され、それにより他の一時的なタスクを
    実行するための空いた処理ウィンドウが作成されるよう
    に、要求されたタスクの擬似同期実行を順次スケジュー
    ルする手段と を含む、上記主プログラムの諸タスクをスケジューリン
    グするためのプログラム・スケジューリング機構。
  2. (2)上記システムが通信システムであり、送信データ
    非直列化レジスタと、送信データ・サンプル計算機構と
    、上記サンプルをアナログ信号に変換して電話線上を送
    信させるディジタル/アナログ・コンバータとを含むモ
    デムであり、送信処理に関わる高優先順位プログラム及
    び低優先順位プログラムがそれぞれ、 送信ディジタル・データ・クロックと同期し、送信要求
    (X0、...、Xn)を生成し、送信データの組を送
    信データ・バッファ手段に記憶する割込みプログラム、
    及び 上記割込みプログラムによって上記送信要求が設定され
    たとき、上記送信データ・バッファ手段からディジタル
    送信データを読み取り、上記送信データを計算して送信
    信号サンプルを生成し、上記サンプルをサンプル送信バ
    ッファ手段に記憶する送信主プログラム から構成される、請求項1に記載のプログラム・スケジ
    ューリング機構。
  3. (3)上記システムが通信システムであり、電話線から
    アナログ信号を受け取るアナログ/ディジタル・コンバ
    ータと、受信データ・サンプル計算機構と、DTEイン
    タフェースの受信ポートに接続された直列化レジスタと
    を含むモデムであり、受信処理に関わる高優先順位プロ
    グラム及び低優先順位プログラムがそれぞれ、 受信され変換されたディジタル・データ・クロックと同
    期し、ディジタル/アナログ・コンバータから供給され
    るディジタル・サンプルを受信サンプル・バッファ手段
    に記憶する割込みプログラム、及び 上記割込みプログラムによって要求が記入されたとき、
    上記受信サンプル・バッファ手段に記憶されたディジタ
    ル・サンプルを読み取り、ディジタル受信データ・サン
    プルを計算し、上記サンプルを受信データ・バッファ手
    段に記憶する、要求主導型の主受信プログラム から構成される、請求項1に記載のプログラム・スケジ
    ューリング機構。
  4. (4)割込みプログラムと主送信プログラムの両方によ
    って実行される送信処理が、 前のタスク実行中に計算されたディジタル・サンプルを
    ディジタル/アナログ・コンバータに送るステップと、 送信データ・バッファ手段から1組の送信データ・ビッ
    トを得るステップと、 上記1組の送信データ・ビットを使って、1組の新しい
    送信信号サンプルを計算するステップと、上記1組の送
    信信号サンプルを、後で割込みプログラムの速度でディ
    ジタル/アナログ・コンバータ及び電話線に送信するた
    めに、送信サンプル・バッファ手段に記憶するステップ
    と を含む、請求項2に記載のプログラム・スケジューリン
    グ方法。
  5. (5)割込みプログラムと主受信プログラムの両方によ
    って実行される受信処理が、 前のタスク実行中に計算されたディジタル受信データを
    データ端末装置の直列化レジスタに送るステップと、 受信サンプル・バッファ手段から1組のディジタル受信
    サンプルを得るステップと、 上記1組のディジタル受信サンプルを使って、1組の新
    しい受信データ・ビットを計算するステップと、 上記1組の受信データ・ビットを、後で割込みプログラ
    ムの速度で上記データ端末装置の受信ポートに送るため
    に受信データ・バッファに記憶するステップと を含む、請求項3に記載のプログラム・スケジューリン
    グ方法。
  6. (6)走査ウィンドウを通して走査するためのスキャナ
    論理と、同期的割込みプログラムによって循環式要求バ
    ッファに順次ロードされる送受信要求(X0、...、
    X7)(R0、...、R7)と、上記走査時にオーバ
    ラン条件を満たすかどうか判定し、満たさない場合は次
    にサービスすべきタスク要求を決定するスケジューラを
    含む、請求項1に記載のプログラム・スケジューリング
    機構。
  7. (7)上記スケジューラの走査ウィンドウが、主プログ
    ラムの事象が同期的割込みプログラムに対して遅すぎ、
    オーバラン条件に相当することを検出するため、オーバ
    ラン検出論理によって監視される第1のウィンドウWO
    と、スケジューリングすべき次のタスクに対応する処理
    要求を選択しその妥当性検査を行なうため、それぞれ要
    求選択論理及び要求妥当性検査論理によって監視される
    第2のウィンドウWSとを含む、 請求項6に記載のプログラム・スケジューリング機構。
  8. (8)上記スケジューラが、スケジューリングすべき次
    のタスクを決定し、通信システムをリセットさせるオー
    バラン条件を検出するためのマイクロコード式決定テー
    ブルを含む、 請求項7に記載のプログラム・スケジューリング機構。
  9. (9)上記マイクロコード式決定テーブルが、すべての
    要求(X0、...、X7)を含む要求バッファの可能
    な各値ごとに、上記要求バッファをテーブルへのインデ
    ックスとして使ってアクセスされる位置を含み、実行時
    、及び要求バッファの値が、スケジューリングされる次
    のタスクの番号と最後に実行されたタスクに対応する要
    求ビットが0にリセットされた、要求バッファに対する
    更新値との有効な組合せに相当する場合に、各位置に実
    行可能なマイクロコード式命令がロードされる、請求項
    8に記載のプログラム・スケジューリング機構。
  10. (10)要求バッファの値が無効な組合せに相当する場
    合に、上記マイクロコード式命令を実行すると、モデム
    ・リセット命令への分岐が起こる、 請求項9に記載のプログラム・スケジューリング機構。
JP2215118A 1989-08-24 1990-08-16 通信システムのためのプログラム・スケジューリング装置 Expired - Lifetime JPH0625972B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP89480129.9 1989-08-24
EP19890480129 EP0413873B1 (en) 1989-08-24 1989-08-24 Fast scheduler allowing transient computing overloads

Publications (2)

Publication Number Publication Date
JPH0385643A true JPH0385643A (ja) 1991-04-10
JPH0625972B2 JPH0625972B2 (ja) 1994-04-06

Family

ID=8203070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2215118A Expired - Lifetime JPH0625972B2 (ja) 1989-08-24 1990-08-16 通信システムのためのプログラム・スケジューリング装置

Country Status (3)

Country Link
EP (1) EP0413873B1 (ja)
JP (1) JPH0625972B2 (ja)
DE (1) DE68926857D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690576B2 (ja) * 2001-04-26 2011-06-01 パナソニックシステムネットワークス株式会社 ソフトウェアモデム及びそれを備えた通信端末装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69615431T2 (de) * 1995-03-15 2002-05-23 Koninkl Philips Electronics Nv Datenverarbeitungssystem zur Ausführung von Aufgaben verschiedener Prioritäten und dieses System enthaltendes Modem
CN101604270B (zh) * 2009-07-10 2011-04-06 西安电子科技大学 基于vxworks操作***的ARINC429通信冗余方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4690576B2 (ja) * 2001-04-26 2011-06-01 パナソニックシステムネットワークス株式会社 ソフトウェアモデム及びそれを備えた通信端末装置

Also Published As

Publication number Publication date
EP0413873A1 (en) 1991-02-27
DE68926857D1 (de) 1996-08-22
JPH0625972B2 (ja) 1994-04-06
EP0413873B1 (en) 1996-07-17

Similar Documents

Publication Publication Date Title
US5261099A (en) Synchronous communications scheduler allowing transient computing overloads using a request buffer
US5093910A (en) Serial data transmission between redundant channels
US5247671A (en) Scalable schedules for serial communications controller in data processing systems
US5781775A (en) Parallel process scheduling method in a parallel computer and a processing apparatus for a parallel computer
US6401155B1 (en) Interrupt/software-controlled thread processing
US5940612A (en) System and method for queuing of tasks in a multiprocessing system
US5542076A (en) Method and apparatus for adaptive interrupt servicing in data processing system
US5619647A (en) System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait
US5625846A (en) Transfer request queue control system using flags to indicate transfer request queue validity and whether to use round-robin system for dequeuing the corresponding queues
GB2133188A (en) Multiprocessor multisystem communications network
JPH06261052A (ja) 共用バスのフロー制御装置
US20060026596A1 (en) Context scheduling
US4959782A (en) Access arbitration for an input-output controller
US4602341A (en) Shared data logger controller and method
US5682480A (en) Parallel computer system for performing barrier synchronization by transferring the synchronization packet through a path which bypasses the packet buffer in response to an interrupt
US3587058A (en) Data processing system input-output arrangement
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US6256677B1 (en) Message buffering for a computer-based network
US7308686B1 (en) Software input/output using hard real time threads
JPH0385643A (ja) 通信システムのためのプログラム・スケジューリング装置
WO2011052282A1 (ja) 車載ネットワーク装置
JP3115801B2 (ja) 並列計算機システム
JP2585905B2 (ja) マルチタスク実行装置
JPH0789323B2 (ja) 多重割込制御方式
Pickering et al. Multicomputer programming for a large scale real-time data processing system