JP5024899B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP5024899B2
JP5024899B2 JP2008507296A JP2008507296A JP5024899B2 JP 5024899 B2 JP5024899 B2 JP 5024899B2 JP 2008507296 A JP2008507296 A JP 2008507296A JP 2008507296 A JP2008507296 A JP 2008507296A JP 5024899 B2 JP5024899 B2 JP 5024899B2
Authority
JP
Japan
Prior art keywords
entry
data
task
entries
array
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.)
Expired - Fee Related
Application number
JP2008507296A
Other languages
English (en)
Other versions
JPWO2007110906A1 (ja
Inventor
賢伸 津野田
博志 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2007110906A1 publication Critical patent/JPWO2007110906A1/ja
Application granted granted Critical
Publication of JP5024899B2 publication Critical patent/JP5024899B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers

Landscapes

  • Multi Processors (AREA)

Description

本発明はデータ処理装置に関し、特に複数のタスクを同時に実行可能なマルチタスク型データ処理装置における、タスク状態の管理方式、および実行開始可能なタスクの高速検索回路の実現に関する。
近年、画像・音声などのマルチメディア処理機能や、有線および無線通信機能を内蔵したディジタル多用途ディスク(DVD)レコーダ等のデータ処理装置が広く一般的に利用されるようになってきている。これらの機器においては、コーデック処理、無線プロトコル処理、ユーザインタフェース処理などの複数のタスクを同時かつリアルタイムに高速処理可能であることがその機器のユーザビリティや価値そのものに直結する。
このような機器におけるマルチタスク制御は、一般に機器を制御する組み込みプロセッサに代表されるデータ処理装置上で所定のソフトウェアを実行することにより実現される。通常このソフトウェア(以下、タスク管理プログラム)はオペレーティングシステムの一部であり、実行タスクの切り替えタイミングを示す割り込みなどの所定の切り替え要因に呼応し、あらかじめ定義されたスケジューリングポリシーにしたがい、次に実行すべきタスクを選択する機能を備える。本来のデータ処理との対比においては処理オーバヘッドとなるマルチタスク制御には、とりわけ組み込みプロセッサのようにリアルタイム性、すなわち特定のタスクを起動する要因となるイベント入力に対するタスク実行開始までの応答時間の保証が必要となる。このため、データ処理装置の単純な高性能化だけではなく、タスク管理プログラムを効率的に実行する新たなマルチタスク制御の実装方式が求められている。
マルチタスク制御を実現するタスク管理プログラムの処理について記載された文献の例として特許文献1、2がある。特許文献1には、アウトオブオーダ実行をサポートするマルチスレッドプロセッサのリザベーションステーション(命令バッファ)において、命令毎に付加されたスレッド番号と優先度を利用して命令実行の追い越を可能にする技術が記載される。特許文献2には、マルチストリームを処理するプロセッサにおいて、ストリーム毎のプライオリティに応じて計算リソースへのアクセスを制御することが記載され、プライオリティはオフチップ入力、ソフトウェア、又はハードウェアにより動的に変更可能とする技術が記載される。
特開2004−295195号公報 特表2002−532801号公報
本願発明者は、マルチタスク制御を実現するタスク管理プログラムの処理内容を検討し、実行効率向上の観点から以下の解決すべき課題を見出した。
前記の通り、タスク管理プログラムの備える機能の核となるのは、次に実行すべきタスクを実行開始可能な状態にあるタスク群から一つ選択する処理である。この選択処理は、スケジューリングポリシーに基づいた全てのタスクに対する一連の条件比較・判定処理を含む検索動作であり、本質的には並列実行可能である。これに対し、本処理を一般的なマイクロプロセッサ上で実行する実装方式では、タスク群に対し検索動作を逐次実行する必要があるため、タスク数の増加により処理速度が低下するだけでなく、タスク管理プログラムの処理時間の最悪値に基づくリアルタイム性を保証することが困難になる。本発明者は、生成されてプールされたタスクを実行するときの優先制御において、実行条件が整ったタスクに対してリアルタイム性を考慮するときタスク生成の時間順序を保証することの重要性を見出した。
本発明の一つの目的は、データを選択するための条件比較判定処理の高速化と選択されるデータの時間順序を保証することができるデータ処理装置を提供することにある。
本発明の別の目的は、高効率でリアルタイム性の高いマルチタスク制御を実現可能なデータ処理装置を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係るデータ処理装置(100)は、データシフト機能及びデータ比較機能を備える複数ビットの記憶素子(800−0〜800−m)を1エントリとし、隣接エントリの対応するビット位置間でデータシフトが可能となるよう複数エントリ(333−0〜333−255)を有する記憶素子アレイ(330)を有する。更に、前記複数エントリに共通に入力されるデータと該エントリを構成する記憶素子に保持される内容との比較結果に基づき、所定の優先度により複数エントリのうちの1エントリを識別する優先度判定回路(340)を有する。
上記手段によれば、各エントリは記憶素子単位でデータシフト機能及びデータ比較機能を備えるから、CAM(Content Addressable Memory)としての連想記憶機能により並列比較が可能である。さらに、途中のエントリの保持データが無効になったときエントリ間でのデータシフトによって無効データのエントリが途中に存在しないようにでき、有効なデータを詰めて順次エントリに保持させることが可能になる。従って、新たに追加されるデータをシフト方向最後尾の空きエントリに保持させることにより、エントリの並びに従ってその保持データが追加された時間順序を一意に保証することを容易に実現することができる。エントリの時間順序を一意に保証することが容易であるから、CAMによる検索結果に対して時間順序に従った優先度も加味して所要のデータを識別することができる。
本発明の一つの具体的な形態として、前記所定の優先度は、有意のデータを保持するエントリ中においてデータ保持が行なわれた順番の早遅に関する順位とされる。これにより、エントリを識別するために時間順序を考慮した優先制御を容易に実現することができる。
〔2〕本発明に係るデータ処理装置(100)は、データシフト機能及びデータ比較機能を備える複数ビットの記憶素子(800−0〜800−m)を1エントリとし、隣接エントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数エントリ(333−0〜333−255)を有する記憶素子アレイ(300)を有する。更に、前記エントリに新たなデータを保持させる操作指令に応答するとき、前記エントリに対する新たなデータ保持の時間的順序をエントリのデータシフト方向の配列とは逆方向に制御すると共に、エントリの保持データを無効化する操作指令に応答するとき、無効化されたエントリよりも時間的順序の上流側エントリのデータを無効化エントリ数分だけ下流側にデータシフトさせる制御回路(310、320、350)を有する。更に、前記複数エントリに共通に入力される検索データと該エントリを構成する記憶素子に保持される被検索データとの比較結果に基づき、所定の優先度により複数エントリのうちの1エントリを識別する優先度判定回路(340)を備える。このとき、前記所定の優先度を、前記時間的順序における所定順位とする。
上記手段によれば、各エントリは記憶素子単位でデータシフト機能及びデータ比較機能を備えるから、その連想記憶機能により並列比較が可能である。そして、途中のエントリの保持データが無効になったときエントリ間でのデータシフトによって無効データのエントリが途中に存在しないようにでき、有効なデータを詰めて順次エントリに保持させることが可能になるから、新たに追加されるデータをシフト方向最後尾の空きエントリに保持させることにより、エントリの並びに従ってその保持データが追加された時間順序を一意に保証することができる。エントリの時間順序を一意に保証することが容易であるから、CAMによる検索結果に対して時間順序に従った優先度も加味して所要のデータを識別することができる。それらにより、エントリを識別するために時間順序を考慮した優先制御を高速に且つ容易に行うことができる。
本発明の別の具体的な形態として、新たなデータ保持を可能とするエントリの位置を示す空きエントリ位置ポインタ(318−8)を有する。データを保持させるエントリの追加とエントリが保持するデータのシフト動作に応じて当該ポインタに対するインクリメントとデクリメントを行なえばよい。
本発明の更に別の具体的な形態として、データシフト機能を備える複数ビットの記憶素子を1テーブルエントリとし、隣接テーブルエントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数テーブルエントリを備えていて、前記テーブルエントリが前記記憶素子アレイのエントリに一対一対応されているデータテーブル(360)を有する。前記データテーブルエントリは前記記憶素子アレイのエントリに対するデータシフト動作に同期したデータシフト動作される。前記データテーブルは前記優先度判定回路で識別された1エントリに対応するテーブルエントリが保有するデータを出力する。出力されたデータが連想検索によって得られた結果となる。
本発明の更に別の具体的な形態として、前記記憶素子アレイにおける被検索データとの比較結果を出力可能な拡張出力インタフェース(380)と、前記記憶素子アレイにおける比較結果と論理積が採られる上位側比較結果を入力可能な拡張入力インタフェース(370)とを有する。記憶素子アレイを並列させて連想記憶の規模を大きくする拡張が可能になる。
〔3〕本発明に係るデータ処理装置(100)は、マルチタスク制御プログラムを実行可能なプロセッサユニット(200)と、マルチタスク制御プログラムにより実行すべきタスクが割り当てられる複数の演算ユニット(400−1〜400−n)と、演算ユニットが実行すべきタスクの選択処理を行なうタスク管理ユニット(300)とを有する。前記タスク管理ユニットは、記憶素子アレイ(330)と、制御回路(310,320,350)と、優先度判定回路(340)とを有する。前記記憶素子アレイは、データシフト機能及びデータ比較機能を備える複数ビットの記憶素子を1エントリとし、隣接エントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数エントリを有する。前記制御回路は、前記エントリに新たなタスク管理情報を保持させる前記プロセッサユニットからの操作指令に応答するとき、前記エントリに対する新たなタスク管理情報保持の時間的順序をエントリのデータシフト方向の配列とは逆方向に制御すると共に、エントリの保持データを無効化する前記プロセッサユニットからの操作指令に応答するとき、無効化されたエントリよりも時間的順序の上流側エントリのデータを無効化エントリ数分だけ下流側にデータシフトさせる。前記優先度判定回路は、前記複数エントリに共通に入力される検索データと該エントリを構成する記憶素子に保持される被検索データとの比較結果に基づき、所定の優先度により複数エントリのうちの1エントリを識別する。前記所定の優先度を、前記時間的順序における所定順位とする。データ処理装置は例えば1個の半導体基板に形成される。
上記手段によれば、各エントリは記憶素子単位でデータシフト機能及びデータ比較機能を備えるから、その連想記憶機能によりタスク管理情報に対する並列比較が可能である。そして、途中のエントリのタスク管理情報が無効になったとき(対応タスクが実行完了されたとき)エントリ間でのデータシフトによって無効なタスク管理情報のエントリが途中に存在しないようにでき、有効なタスク管理情報を詰めて順次エントリに保持させることが可能になるから、新たに追加されるタスク管理情報をシフト方向最後尾の空きエントリに保持させることにより、エントリの並びに従ってタスク管理情報が追加された時間順序を一意に保証することができる。エントリの時間順序を一意に保証することが容易であるから、CAMによる検索結果に対して時間順序に従った優先度も加味して所要のデータを識別することができる。それらにより、時間順序を考慮したタスク選択の優先制御を高速に且つ容易に行うことができる。
本発明の一つの具体的な形態として、前記タスク管理ユニットは、優先度判定回路で識別されたエントリが保持するタスク管理情報に含まれるタスクIDを前記プロセッサユニットに出力する。プロセッサユニットはそのタスクIDで特定されるタスクを空いている演算ユニットに処理させる。
本発明の更に具体的な形態として、前記タスク管理ユニットは、データシフト機能を備える複数ビットの記憶素子を1テーブルエントリとし、隣接テーブルエントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数テーブルエントリを備えていて、前記テーブルエントリが前記記憶素子アレイのエントリに一対一対応されているデータテーブルを有する。前記データテーブルエントリは前記記憶素子アレイのエントリに対するデータシフト動作に同期したデータシフト動作される。前記データテーブルは前記優先度判定回路で識別された1エントリに対応するテーブルエントリから前記タスクIDを出力する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、本発明に係るデータ処理装置によれば、データを選択するための条件比較判定処理の高速化と選択されるデータの時間順序を保証することができ、例えば、高効率でリアルタイム性の高いマルチタスク制御を実現可能である。
本発明によるデータ処理装置の一例を全体的に示すブロック図である。 マルチタスク制御用タスクプールの一例を示すフォーマット図である。 タスク管理プロセッサの一例を示すブロック図である。 主プロセッサインタフェースの一例を示すブロック図である。 タスク状態管理アレイの一例を示すブロック図である。 タスク状態管理エントリの一例を示すブロック図である。 タスク状態管理セルの第1の例を示すブロック図である。 タスク状態管理セルの第2の例を示すブロック図である。 図8の端子φSE1、φSE2の波形図である。 主プロセッサにおけるタスク制御フローの前半を示すフローチャートである。 主プロセッサにおけるタスク制御フローの後半を示すフローチャートである。 図11に示されるエントリ間シフトによるアレイ整列処理の具体例を示すフローチャートである。 図11に示される次タスク検索処理の具体例を示すフローチャートである。 タスク管理プロセッサにおけるアレイ整列制御フローを示すフローチャートである。 図14に示されるアレイ更新処理の具体例を示すフローチャートである。
符号の説明
100 データ処理装置
200 主プロセッサ(プロセッサユニット)
300 タスク管理プロセッサ(タスク管理ユニット)
400−1〜400−n 演算ユニット
500 内部バス
510 演算ユニット制御バス
600 周辺モジュール
700 主メモリインタフェース
710 主メモリ
TID−0〜TID−k タスクID
ST−0〜ST−k タスク状態
PRI−0〜PRI−k 実行優先度
FLG−0〜FLG−k 実行フラグ
310 主プロセッサインタフェース
320 アレイアクセス調停ユニット
330 タスク状態管理アレイ
340 優先度判定ユニット(優先度判定回路)
350 アレイ更新制御ユニット
360 タスクIDテーブル(データテーブル)
370,380 タスク管理プロセッサ拡張インタフェース
318 制御レジスタ
318−8 空きエントリポインタフィールド
330 タスク状態管理アレイ
332 エントリアクセス制御ユニット
333−0〜333−255 タスク状態管理エントリ
800−0〜800−m タスク状態管理セル
以下、本発明に係るデータ処理装置の好適な一実施の形態について、添付図面を参照しながら説明する。特に制限されないが、以下に説明するデータ処理装置を構成する回路素子は、公知のCMOSトランジスタやバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。
図1に、本発明によるデータ処理装置の一例が示す。データ処理装置100は、主プロセッサ(プロセッサユニット)200、タスク管理プロセッサ(タスク管理ユニット)300、n個の演算ユニット400−1〜400−n、n個のローカルメモリ410−1〜410−n、n本のローカルメモリバス420−1〜420−n、内部バス500、演算ユニット制御バス510、周辺モジュール600、主メモリインタフェース700、主メモリ710、主メモリバス720により構成される。
主プロセッサ200は、一般的なマイクロプロセッサと同様の固有の命令セットを備え、主メモリ710に格納されたマルチタスク制御プログラムを含む各種制御プログラム(図示せず)に従いデータ処理装置の動作を制御する。
タスク管理プロセッサ300は、主プロセッサ200上で動作するマルチタスク制御プログラムと協調し、各タスクの状態を保持するとともに、タスク切り替え時に次に実行すべきタスクの選択処理を高速かつ一定時間で実行することにより、マルチタスク制御を効率化する。
演算ユニット400−1〜400−nは、演算ユニット制御バス510を介して、主プロセッサ200上で動作するマルチタスク制御プログラムが当該演算ユニットに対し実行タスクを割り当てたことを示す所定のタスク実行開始要求信号を受信すると、ローカルメモリ410−1〜410−nに格納された演算データをローカルメモリバス420−1〜420−nを経由して読み込み、所定の処理を実行し、演算結果を再びローカルメモリ410−1〜410−nに格納する一連の動作により、割り当てられたタスクを実行する。タスクの実行が完了すると、演算ユニット制御バス510を経由し、主プロセッサ200に対する所定のタスク実行完了通知を送信する。
内部バス500は、主プロセッサ200、タスク管理プロセッサ300、演算ユニット400−1〜400−n、ローカルメモリ410−1〜410−n、周辺モジュール600、主メモリインタフェース700を相互に接続し、データ転送を制御する。
周辺モジュール600は、主メモリ710とローカルメモリ410−1〜410−nとの間のデータ転送を行うDMA転送機能や、タスク切り替えの基準時間とするタイマ機能、図示しない入出力装置の制御等の各種機能を備える。
主メモリインタフェース700は、主メモリインタフェース720を介して主メモリ710へのアクセスを制御する。なお、主メモリ710はデータ処理装置100と同一チップであっても別々のチップであっても構わない。
以下、データ処理装置100におけるマルチタスク制御の概要について述べる。図2に、各タスクの状態を管理するマルチタスク制御用タスクプールの一例を示す。各タスクTASK0〜TASKkの状態はタスク管理情報によって表される。図2においてタスク管理情報は、例えば、タスクID(TID−0〜TID−k)、タスク状態(ST−0〜ST−k)、実行優先度(PRI−0〜PRI−k)、および実行フラグ(FLG−0〜FLG−k)を含む。データ処理装置100におけるタスク管理情報はタスク管理プロセッサ300の内部に格納される。
タスクIDは、各タスクを識別するため一意に割り当てられた符号である。タスク状態は、当該タスクが、(1)実行可能となる条件がすべて成立するのを待っている状態(Waiting)、(2)実行可能となる条件がすべて成立し実行開始許可を待っている状態(Ready)、または(3)タスクを実行中であり実行完了を待っている状態(Running)のいずれであるかを示す状態符号である。実行優先度は、当該タスク実行の緊急性を示す符号である。実行フラグは、特定IDをもつタスクの実行完了や初期データの準備完了など、当該タスクの実行開始に必要な条件群の成立状態を示す。
マルチタスク制御を実現するタスク管理プログラムは以下のように動作する。
(1)新たにタスクを開始する場合、タスクIDおよび実行優先度を割り当てタスクプールに追加するとともに、当該タスクに対するタスク状態を“Waiting”に初期化し、すべての実行フラグをクリアする。
(2)実行中のタスクが完了した、あるいは実行中のタスクの実行時間が所定の時間を超過したなど、タスク切り替えの必要なイベントが発生した場合、当該タスクを停止させタスクプールから削除する、またはタスク状態を“Running”から“Ready”に更新する。さらに、当該タスクの完了が他タスクの実行開始条件に指定されている場合には、実行フラグを適切に更新するとともに、実行フラグが全て成立したタスクのタスク状態を“Waiting”から“Ready”に更新する。
(3)タスク切り替え時、タスク状態が“Ready”であるタスク群から、例えば最も実行優先度が高くかつ最も古くタスクプールに追加されたものなど所定のスケジューリングポリシーに基づき、次に実行すべきタスクを1つ選択する。さらに、選択したタスクに対し実行開始許可を通知するとともに、タスク状態を“Ready”から“Running”に更新する。
これらの動作のうち、本発明が主眼とするリアルタイム性が求められるデータ処理装置においては、(3)のタスク切り替え時間が十分小さく、かつその最悪値が保証されていることが最も重要である。タスクプールをオフチップのメモリ71又は周辺回路600に含まれる図示を省略するオンチップメモリに格納し、タスク管理制御の全てを主プロセッサ200のソフトウェアによって実装する場合には、タスク選択に必要なタスクプール内の検索に際しアクセス時間の大きい主メモリ等へのアクセス発生すること、タスクプールに保持されたタスク数に応じて検索時間が増大することにより、リアルタイム性を確保することが困難になる。これに対し、タスク管理プロセッサ300は、タスク数によらない並列検索動作に加え、時間順序を保証とすることにより効率的なマルチタスク制御を可能とする回路であり、以下それによるタスク管理制御の詳細について説明する。
図3に、タスク管理プロセッサ300の一例を示す。タスク管理プロセッサ300は、主プロセッサインタフェース310、アレイアクセス調停ユニット320、タスク状態管理アレイ330、優先度判定ユニット(優先度判定回路)340、アレイ更新制御ユニット350、タスクIDテーブル(データテーブル)360、及びタスク管理プロセッサ拡張インタフェース370、380を備える。主プロセッサインタフェース310、アレイアクセス調停ユニット320、及びアレイ更新制御ユニット350は主プロセッサ200からの動作指令に応答して前記記憶素子アレイを用いたタスク管理制御を行う制御回路を構成する。311はアレイアクセス調停ユニット制御バス、312はタスク状態管理アレイ制御バス、313はタスク状態管理アレイ検索信号である。314、315はアレイ更新制御ユニット制御信号、316はタスクIDテーブル制御バスである。321−0〜321−255はタスク状態管理エントリ制御信号、331−0〜331−255はタスク状態管理エントリ比較信号である。341−0〜341−255、371−0〜371−255、391−0〜391−255、393−0〜393−255はタスク状態管理エントリ状態信号、342は優先度判定信号である、351、381、392、394は外部アレイ更新制御信号、352はアレイ更新制御信号352である。
主プロセッサインタフェース310は、タスク管理プロセッサ300の動作を定義する制御レジスタ群を内包し、内部バス500およびタスク管理プロセッサ内ユニットとの間の制御レジスタアクセスを制御する。
タスク状態管理アレイ330は、256個のタスク状態管理エントリを有し、ハードウェアにより構成されるタスクプールとして、タスク状態管理アレイ制御バス312を介して少なくとも各タスクのタスク状態および実行優先度を格納するとともに、タスク状態管理アレイ検索信号313の内容に応じてタスク状態管理エントリ比較信号331−0〜331−255を出力する。各タスク状態管理エントリはデータシフト機能とデータ比較機能とを備える複数ビットの記憶素子から成り、CAMとしての機能を備える。詳細は後述するが、各タスク状態管理エントリは更に、隣接するタスク状態管理エントリの対応するビット位置間でデータシフトが可能とされる。
アレイアクセス調停ユニット320は、主プロセッサインタフェース310からのアレイアクセス調停ユニット制御バス311、およびアレイ更新制御ユニット350からのアレイ更新制御信号352を調停したアクセス制御信号に、上流側(図の左側)に隣接するタスク管理プロセッサ(図示せず)により出力されるタスク状態管理エントリ状態信号391−0〜391−255に基づいてタスク管理プロセッサ拡張インタフェース370により生成されるタスク状態管理エントリ状態信号371−0〜371−255を付加することで、タスク状態管理エントリ制御信号321−0〜321−255を出力する。要するに、アレイアクセス調停ユニット320は、タスク状態管理アレイ330の各タスク状態管理エントリに対するリード・ライトアクセスの制御を行う。その指示は主プロセッサインタフェース310、タスク管理プロセッサ拡張インタフェース370、アレイ更新制御ユニット350から与えられる。特に、アレイアクセス調停ユニット320はアレイ更新制御ユニット350からのエントリ更新指示に応答するときはタスク状態管理エントリ間のシフト動作のためのリード・ライト動作を制御する。
優先度判定ユニット340は、前記のタスク状態管理エントリ比較信号331−0〜331−255のうち一致状態を示す比較信号から、例えばエントリ0(333−0)を最高優先度、エントリ255(333−255)を最低優先度とするなど、指定された所定の優先度に従い1つのエントリを選択し、選択されたエントリを識別する優先度判定信号342を出力する。さらに、優先度判定ユニット340は、タスク管理プロセッサ拡張インタフェース380が生成し、下流側(図の右側)に隣接するタスク管理プロセッサ(図示せず)に対して出力されるタスク状態管理エントリ状態信号393−0〜393−255の元となるタスク状態管理エントリ状態信号341−0〜341−255を出力する。タスク管理プロセッサ拡張インタフェース380は、下流側(図の右側)に隣接するタスク管理プロセッサ(図示せず)に対して、優先度判定ユニット340による判定結果を出力することができる。
アレイ更新制御ユニット350は、外部アレイ更新制御信号394からタスク管理プロセッサ拡張インタフェース380により生成される外部アレイ更新制御信号381にアレイ更新要求がある場合、もしくは主プロセッサインタフェース310内の制御レジスタの設定を反映するアレイ更新制御ユニット制御信号314にアレイ更新要求がある場合、アレイ更新制御信号352を経由し、アレイアクセス調停ユニット320およびタスクIDテーブル360に対し、前記アレイ更新要求内容に基づくタスク状態管理エントリおよび対応するタスクIDのシフト処理を要求する。さらに、要求したシフト処理内容を反映する外部アレイ更新制御信号351をタスク管理プロセッサ拡張インタフェース370を介して外部アレイ更新制御信号392として出力するほか、アレイ更新制御ユニット制御信号315によりシフト処理実行の有無を主プロセッサインタフェース310に通知する。
タスクIDテーブル360は、ハードウェアにより構成されるタスクプールとして、タスクIDテーブル制御バス316に従い、タスク状態管理アレイ330に格納された各タスクに対応するタスクIDを格納するとともに、優先度判定ユニット340が出力する優先度判定信号342に対応するタスクIDをタスクIDテーブル制御バス316に対し出力する。また、タスクIDテーブル360は、アレイ更新制御信号352によりエントリ間シフト処理が要求された場合、対応するタスクIDのシフト処理が行なわれる。即ち、図示は省略するが、タスクIDテーブル360は、データシフト機能を備える複数ビットの記憶素子を1テーブルエントリとし、隣接テーブルエントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数テーブルエントリを備えている。タスク状態管理アレイ330のエントリとはビット数と比較機能を備えていない点が相違される。CAM機能を備えていてもよく、その場合にはCAM機能を用いなければ良い。タスクIDテーブル360は、前記テーブルエントリが前記記憶素子アレイのエントリに一対一対応されている。前記タスクIDテーブル360のエントリ(データテーブルエントリ)は前記記憶素子アレイのエントリに対するデータシフト動作に同期したデータシフト動作される。前記タスクIDテーブル360は前記優先度判定ユニット340で識別された1エントリに対応するテーブルエントリが保有するタスクIDを出力する。
タスク管理プロセッサ拡張インタフェース370、380は、タスク状態管理アレイの各タスク状態管理エントリから出力される比較信号331−0〜331−255に基づくタスク状態間リエントリ状態信号341−0〜341−255を隣接するタスク管理プロセッサの同一タスク状態管理エントリへと伝達するよう、もしくは必要により伝達しないよう制御する。さらに、タスク状態管理エントリのシフト動作を制御する外部アレイ更新制御信号394、392についても隣接するタスク管理プロセッサ間で伝達し、アレイ更新制御ユニット350によりタスク状態管理エントリの内容が隣接するタスク管理プロセッサ間で矛盾しないよう制御する。これにより、タスク管理プロセッサ300を複数連結した場合に、各タスク状態管理アレイの同一タスク状態管理エントリを論理的に結合し、単一のエントリとして動作させることができるため、エントリのサイズをスケーラブルに変更することが可能となる。言うまでもなく、タスク管理プロセッサの連結機能が不要の場合には、タスク管理プロセッサ拡張インタフェース370、380、タスク状態管理エントリ状態信号341−0〜341−255、371−0〜371−255、391−0〜391−255、393−0〜393−255、外部アレイ更新制御信号351、381、392、394の一部または全部を削除することによりタスク管理プロセッサ300のハードウェア規模を削減できる。前段からの前記タスク状態管理エントリ状態信号391−0〜391−255が前段における比較結果不一致を示すときは、タスク状態管理アレイ330における対応エントリによる比較結果の有効性を制限する信号として位置付けられる。
図4に、主プロセッサインタフェース310の具体例を示す。主プロセッサインタフェース310は、制御レジスタアクセス制御ユニット317、制御レジスタ318、制御レジスタアクセスバス319により構成される。
制御レジスタアクセス制御ユニット317は、内部バス500からのアクセス要求に応答し、制御レジスタアクセスバス319を経由した制御レジスタ318、アレイアクセス調停ユニット制御バス311およびタスク状態管理アレイ制御バス312を経由したタスク状態管理アレイ330、タスクIDテーブル制御バス316を経由したタスクIDテーブル360に対するアクセスをそれぞれ制御する。さらに、制御レジスタ318の内容に応じ、タスク状態管理アレイ検索信号313、アレイ更新制御ユニット制御信号314を出力するとともに、アレイ更新制御ユニット制御信号315、優先度判定信号342の内容に応じ、制御レジスタ318の内容を更新する。
制御レジスタ318は、タスク状態管理アレイ330に対する検索要求の有無を示す検索要求フィールド318−1、タスク状態管理アレイ330に対する検索キーとなる所定のタスク状態および実行優先度を含む符号列、もしくはタスク状態管理アレイ330内の空きエントリ位置を検索する所定の符号を格納する検索キーフィールド318−2、検索結果の有効性を示す検索結果有効フィールド318−3、検索結果が有効の場合に対応するタスクID、およびタスク状態管理アレイ330内のエントリ位置をそれぞれ格納するタスクIDフィールド318−4、エントリ位置フィールド318−5、アレイ更新制御ユニット350によるタスク状態管理エントリのシフト処理要求の有無を示すタスク状態管理アレイ更新要求フィールド318−6、前記シフト処理の内容、例えば“ONESHOT”(1回の要求に対し1回のシフトを実行する)または“FULL”(1回の要求に対し最大(エントリ数−1)回のシフトを実行する)のいずれかを指定するタスク状態管理アレイ更新モードフィールド318−7、新規タスクを追加するタスク状態管理アレイ内のエントリ位置を示す空きエントリポインタフィールド(空きエントリ位置ポインタ)318−8、タスク管理プロセッサ300の動作状態、例えば“ビジー”または“非ビジー”を示す動作状態フィールド318−9からなる。
図5に、タスク状態管理アレイの具体例を示す。タスク状態管理アレイ330は、エントリアクセス制御ユニット332、256個のタスク状態管理エントリ333−0〜333−255、エントリ間シフトデータバス334−1〜334−255、エントリアクセスバス335から構成される。さらに、各タスク状態管理エントリは、当該エントリの内容が有効であるかどうかを示すイネーブルフィールド333−0−1〜333−255−1、当該エントリに格納されているタスク情報のうちタスク状態を示すタスク状態フィールド333−0−2〜333−255−2、および当該エントリに格納されているタスク情報のうち実行優先度を示す実行優先度フィールド333−0−3〜333−255−3を含む。
エントリアクセス制御ユニット332は、タスク状態管理アレイ制御バス312から各タスク状態管理エントリ333−0〜333−255へのアクセスを中継する。それぞれエントリ番号0〜255をもつタスク状態管理エントリ333−0〜333−255は、タスク状態管理エントリ制御信号321−0〜321−255で指定される読み出し、書き込み、シフト動作などの要求に応じて当該エントリの内容をエントリアクセスバス335に出力する、もしくはエントリアクセスバス335上の所定のデータ、あるいはよりエントリ番号の大きい側の隣接エントリの内容を当該エントリに書き込むなどの動作(下流への1段シフト)を行う。また、タスク状態管理アレイ検索信号313上の検索要求および検索キーに従い、当該エントリの内容と検索キーの一致性を検査し、その結果をタスク状態管理エントリ比較信号331−0〜331−255に出力する。
図6にタスク状態管理エントリの一例を示す。タスク状態管理エントリ333−1は、(m+1)個のタスク状態管理セル800−0〜800−m、タスク状態管理セル比較信号810−0〜810−m、タスク状態管理セル比較バス811、タスク状態管理エントリ比較ユニット820から構成される。ただし、図5に示すイネーブルフィールド333−1−1、タスク状態フィールド333−1−2、実行優先度フィールド333−1−3のビット幅の和はm+1であるとする。また、特に制限されないが、タスク状態管理エントリ制御信号321−1は、エントリシフトイネーブル321−1−1、エントリアクセスイネーブル321−1−2、タスク状態管理エントリ状態信号371−1(図3参照)から生成される隣接アレイエントリマッチ信号321−1−3からなる。
タスク状態管理セル800−0〜800−mは、それぞれ1ビットのシフトおよび比較機能つき記憶回路として動作し、以下の入出力端子を備える。
(1)SE:正論理で表現されるセルへのシフトイネーブル入力であり、エントリシフトイネーブル321−1−1を接続する。
(2)EN:正論理で表現されるタスク状態管理アレイ制御バス312を経由したセルへのアクセスイネーブル入力であり、エントリアクセスイネーブル321−1−2を接続する。
(3)SI:下位エントリからセルへのシフトデータ入力であり、エントリ間シフトデータバス334−2内の当該ビットに対応する信号を接続する。
(4)SO:上位エントリへのセルからのシフトデータ出力、すなわちセル内に保持されている1ビットデータそのものであり、エントリ間シフトデータバス334−1内の当該ビットに対応する信号へ接続する。
(5)LS、/LS:それぞれ正論理および負論理で表現されるタスク状態管理アレイ制御バス312を経由したセルへの書き込みデータ(書き込み動作時)またはセルからの読み出しデータ(読み出し動作時)であり、エントリアクセスバス335に含まれるロードストアデータフィールド内の当該ビットおよびその反転に対応する信号を接続する。
(6)SK、/SK:それぞれ正論理および負論理で表現されるセルへの検索キー入力であり、タスク状態管理アレイ検索信号313に含まれる検索キーフィールド内の当該ビットおよびその反転に対応する信号を接続する。また、特に制限されないが、セル内に保持されている1ビットデータの内容に関わらず検索キーとの比較結果が常に一致するよう、SK=1かつ/SK=1のような特殊な表現(比較マスク)を利用してもよい。
(7)CB:負論理で表現され、端子SKへの入力とセル内に保持されている1ビットデータの比較結果を示すセルからの比較出力であり、タスク状態管理セル比較信号810−0〜810−mのうち当該ビットに対応する信号へ接続する。
タスク状態管理セル比較バス811は、(m+1)個のタスク状態管理セル800−0〜800−mから出力されるタスク状態管理セル比較信号810−0〜810−mに対し、ワイヤードオアによる負論理表現での論理積演算を実行可能なように構成されたバスである。タスク状態管理エントリ比較ユニット820は、タスク状態管理セル比較バス811および隣接アレイエントリマッチ信号321−1−3がいずれも一致状態を示す場合にエントリ一致状態をタスク状態管理エントリ比較信号331−1に出力する。タスク状態管理エントリ比較ユニット820は、論理積回路として位置付けることができる。
なお、タスク状態管理エントリ333−2〜333−254についても図6の符号を適切に対応付けることにより、その構成を適用することが可能である。また、タスク状態管理エントリ333−0、333−255は、それぞれシフトデータ出力SOが未接続であること、シフトデータ入力SIに適切な固定値(図示せず)が入力されている点を除き、図6の構成を適用可能である。
以下、タスク状態管理セルの内部回路構成を説明する。図7にはタスク状態管理セルの第1の例を示し、図8にはタスク状態管理セルの第2の例を示す。ここで、各入出力端子の機能は図6内の対応する入出力端子のそれと一致する。ただし、図7における端子φは図1から図6には図示されていないデータ処理装置の動作クロック信号であり、図8の端子φSE1、φSE2は、図9に例示されるように、SE=1かつ動作クロック信号φの立ち上がりエッジ、立ち下がりエッジであることを示す信号である。図7の第1の例においては、検索キー入力として(SK=1かつ/SK=0)または(SK=0かつ/SK=1)を設定可能であり、単純な一致比較のみ実行可能である。これに対して図8の第2の例では、上記に加え(SK=1かつ/SK=1)を設定可能であり、セル内に保持されている1ビットデータの内容に関わらず比較結果が常に一致する、比較マスク動作を実行可能である。
ここで、データ処理装置100においてマルチタスク制御を実行するにあたり、主プロセッサ200上で動作するマルチタスク制御プログラムから、図3乃至図9で詳述したタスク管理プロセッサ300を利用する際の要点を以下にまとめる。
(1)タスク管理プロセッサ300内には、タスクプールのうち少なくともタスクID、タスク状態、実行優先度が格納され、その内容は主プロセッサ200により設定される。特に制限されないが、タスク状態は“Waiting”、“Ready”、“Running”のいずれか、実行優先度は0(最高)〜255(最低)のいずれかにより指定される。実行優先度は複数タスクに同一実行優先度が設定されて良いものとする。
(2)タスク状態管理アレイ330を構成し、シフト機能を有する256個のタスク状態管理エントリ333−0〜333−255は、各エントリにその情報を保持されたタスク間の時間順序を保証するFirst−In−First−Out(FIFO)として動作するよう、エントリの利用順序が規定される。即ち、途中のタスク状態管理エントリ333−0〜333−255のタスク管理情報が無効になったときタスク状態管理エントリ間での下流への1段データシフトによって無効なタスク管理情報のタスク状態管理エントリが途中に存在しないようにでき、有効なタスク管理情報を詰めて順次タスク状態管理エントリに保持させることが可能になるから、新たに追加されるタスク管理情報をシフト方向最後尾の空きエントリに保持させることにより、タスク状態管理エントリの並びに従ってタスク管理情報が追加された時間順序を一意に保証することができる。
(3)タスク状態管理エントリ333−0〜333−255の優先度(エントリ優先度)は、FIFOの出口に相当し時間順序の最も古い333−0が最も高く、333−255が最も低い。エントリ優先度はエントリ毎に相違され、実行優先度とは相違され、複数エントリについてその優先度が重複されることはない。
(4)特に制限されないが、タスク切り替え要因は以下の2つである。(4−a)タスクの完了:該当タスクのタスクID、タスク状態、実行優先度が格納されていたタスク状態管理エントリは無効化される。(4−b)割り込みなどの所定の切り替え要因によるタスクの中断:該当タスクのタスク状態は“Running”から“Ready”に更新される。
図10及び図11に、主プロセッサ200上で動作するタスク管理プログラムによるタスク制御フローを示す。まず、ステップF110においてタスク管理プロセッサ300の初期化として、全てのタスク状態管理エントリの無効化、および制御レジスタへの初期値の書き込みを行う。ただし、空きエントリポインタフィールド318−8にはエントリ0(333−0)を示す値0を書き込む。
初期化が完了すると、タスク管理プログラムはタスク管理プロセッサ300の状態を監視し(ステップF120)、タスク管理プロセッサ300の状態が非ビジー状態になるまで待機する。タスク管理プロセッサ300が非ビジー状態になると、タスクの追加および切り替え要求の有無により、それぞれ必要な処理を行う。タスクの追加要求を受理すると(ステップF130)、当該タスクに対しタスクIDおよび実行優先度を割り当て、空きエントリポインタフィールド318−8が示すタスク状態管理エントリおよび対応するタスクIDテーブル内のエントリの内容を更新する(ステップF131)とともに、空きエントリポインタフィールド318−8の内容をインクリメントする(ステップF132)。
タスクの切り替え要求を受理した場合には(ステップF140)、その要因により処理内容が異なる(ステップF150)。まず、当該要求がタスク完了によるものである場合、完了したタスク情報の格納されているタスク状態管理エントリのイネーブルフィールドを無効化(ステップF151)、空きエントリポインタフィールド318−8をデクリメント(ステップF152)、前記無効化により生じたFIFO内部の不整列状態を解消するアレイ整列処理(ステップF153)を順次実行する。また、当該要求がタスク完了でない所定のタスク中断要求である場合、実行中のタスクに対応するタスク情報のうちタスク状態を“Running”から“Ready”に更新する(ステップF154)。なお、エントリ更新処理(ステップF154)には、タスク状態管理アレイ更新要求フィールド318−6、およびタスク状態管理アレイ更新モードフィールド318−7に対する制御レジスタ書き込みによるアレイ整列要求(ステップF210)、およびアレイ整列処理完了までの待機(ステップF220)を含む。アレイ整列要求に対するタスク管理プロセッサの動作については、図14及び図15を用いて後述する。
タスクの完了または中断処理が完了すると、次に実行すべきタスクを検索し(ステップF155)、実行可能なタスクが1つ選択された場合には(ステップF160)、当該タスクのタスク状態を“Ready”から“Running”に更新し(ステップF161)、タスクに対し実行許可を通知する。
このうち、次タスク検索(ステップF155)の詳細は図13に例示されるとおりである。まず、検索キーフィールド318−2に、次に実行対象となるタスクの候補を示す検索キー、例えばイネーブルフィールドが“有効”、かつタスク状態フィールドが“Ready”、かつ実行優先度フィールドが“0(最高優先度)”を設定し(ステップF310)、検索要求フィールド318−1への書き込みによりタスク状態管理アレイ330内の検索を要求する(ステップF320)。検索結果有効フィールド318−3の内容が検索結果有効を示し、検索キーに適合する有効な次タスク情報が発見された場合(ステップF330)、タスクIDフィールド318−4およびエントリ位置フィールド318−5の内容を次に実行すべきタスクに対応するタスクID、エントリ番号として受理する(ステップF331)。有効な次タスクが発見されなかった場合は、検索キー内の実行優先度を255(最低優先度)まで順次インクリメントし、検索要求を繰り返す(ステップF340、F341)。
ここで、タスク状態管理アレイ330内の検索要求(ステップF320)に応答するタスク管理プロセッサ300は検索キーに従って検索を行ない、比較結果を受け取る340はその比較結果に対し、エントリ優先度の最も高いエントリを識別し、これをタスクIDテーブル360に与えることになる。要するに、タスク管理プロセッサ300側では、エントリの時間順序を一意に保証することが容易であるから、CAMによる検索結果に対して時間順序に従った優先度も加味して所要のタスクIDを識別することができる。これにより、時間順序を考慮したタスク選択の優先制御を高速に且つ容易に行うことができる。
なお、実行優先度のインクリメントおよび再検索要求については、前述のように主プロセッサがすべての実行優先度にわたり処理する方式のほか、所定の範囲の実行優先度のみ検索対象とする、あるいは主プロセッサ200によらずタスク管理プロセッサ300内で自動的に再検索を実行する方式を採用することにより、検索に要する時間および主プロセッサ200の処理負荷を削減し、柔軟かつリアルタイム性の高いマルチタスク制御を実現することも可能である。
続いて、図14及び図15を用いてタスク管理プロセッサにおけるアレイ整列制御フローについて説明する。アレイの整列とは、実行中のタスクが完了し、当該タスク情報がFIFOを構成するタスク状態管理アレイ内のタスク状態管理エントリから削除される場合に、隣接エントリをシフトすることにより有効エントリの不連続性を解消する処理である。これにより、タスク状態管理アレイ内での時間順序の保証が容易になる、有効なエントリが連続するため次にタスクを追加すべきエントリが一意に決定することなどにより、マルチタスク制御が単純化されるとともに、タスク切り替えに係る処理時間を削減できる。
タスク管理プロセッサ300が起動すると、通常は検索キーフィールド318−2の内容を含む検索キーをタスク状態管理アレイ検索信号313として出力し(ステップF410)、タスク管理プロセッサの動作状態を“非ビジー”状態に設定する(ステップF411)。その後、検索要求フィールド318−1を通して主プロセッサからの検索要求を受理した場合には、検索処理を実行しその結果に応じて検索結果有効フィールド318−3、タスクIDフィールド318−4、エントリ位置フィールド318−5の内容を更新する(ステップF340)。
隣接するタスク管理プロセッサから外部アレイ更新制御信号381を受理すると(ステップF420)、アレイ更新制御ユニット350はプロセッサ動作状態を“ビジー”状態に更新し(ステップF421)、更新制御信号の内容に応じた信号をアレイ更新制御信号352に出力する。この信号を受けたアレイアクセス調停ユニット320は、シフト対象となるタスク状態管理エントリに対しエントリシフトイネーブルを経由してタスク状態管理アレイ330に対するシフト動作を要求し、シフト処理が実行される(ステップF422)。また、タスクIDテーブル360の内容についても、アレイ更新制御信号352に呼応しタスク状態管理アレイ330の内容と矛盾なく更新される。上記のシフト動作内容は、外部アレイ更新制御信号351により隣接プロセッサに対して通知する(ステップF423)ことにより、連結されている全てのタスク管理プロセッサ間で矛盾なくシフト動作が実行される。シフト動作が完了すると、プロセッサ動作状態を“非ビジー”状態に更新し後続の処理要求が入力されるのを監視する。
CPUタスク管理プログラムのバグやノイズ等による誤動作によってエントリの時間順序が保証できなくなったとき、主プロセッサはアレイ整列要求を発行する。タスク状態管理アレイ更新要求フィールド318−6を介して主プロセッサからのアレイ整列要求を受理すると(ステップF430)、以下に詳述するアレイ更新処理(ステップF431)を実行する。図15に例示されるように、まず、空きエントリを検索するため、イネーブルフィールドが“無効”、かつタスク状態フィールドおよび実行優先度フィールドがいずれも“比較マスク”である特殊な検索キーをタスク状態管理アレイ検索信号313として出力し(ステップF510)、タスク管理プロセッサ300の動作状態を“ビジー”状態に更新する。続いて、アレイ更新制御ユニット350内のシフト回数カウンタCNTの内容を0に初期化し(ステップF512)、空きエントリのうち最も優先度の高い、すなわちエントリ番号の小さい空きエントリを検索する(ステップF513)。空きエントリが存在する場合(ステップF520)、当該エントリ以上のエントリ番号をもつ全てのタスク状態管理エントリをシフトし(ステップF521)、そのシフト動作内容を隣接プロセッサに対して通知する(ステップF522)。タスク状態管理アレイ更新モードフィールド318−7に“FULL”が指定されている場合(ステップF530)、シフト回数カウンタCNTをインクリメントし(ステップF531)、シフト回数カウンタCNTの内容が254、すなわち(タスク状態管理エントリのエントリ数−1)となるまで空きエントリの検索以降を繰り返す(ステップF540)。空きエントリが存在しない、または“FULL”モードで254回シフト動作を実行すると、タスク管理プロセッサ300の動作状態を“非ビジー”状態に更新し(ステップF541)、タスク状態管理アレイ検索信号313に含まれる検索キーを本来の検索キーとして再設定する(ステップF542)ことにより、後続の処理要求を受理可能となるようにする。
ところで、タスク管理プログラムが一度に完了もしくは中断させるタスクはたかだか1タスクであり、タスク状態管理エントリの利用順序に関する規定を遵守する限りにおいては、1回のエントリ間シフト動作によりタスク状態管理アレイの不整列状態は解消する。タスク管理プログラムの内包する可能性のある不具合を回避し、データ処理装置の信頼性を向上させるため、定期的に“FULL”シフトを実行するとよい。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、主プロセッサ200とタスク管理プロセッサ330は必ずしも同一チップに搭載される場合に限定されない。アレイ330とテーブル360は同一アレイ又は別アレイの何れで構成してもよい。
本発明はタスク制御に適用される場合に限定されず、リアルタイム性を考慮して管理しなければならないその他のデータ管理に広く適用することができる。

Claims (10)

  1. データシフト機能及びデータ比較機能を備える複数ビットの記憶素子を1エントリとし、隣接エントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数エントリを有する記憶素子アレイと、
    前記エントリに新たなデータを保持させる操作指令に応答するとき、前記エントリに対する新たなデータ保持の時間的順序をエントリのデータシフト方向の配列とは逆方向に制御すると共に、エントリの保持データを無効化する操作指令に応答するとき、無効化されたエントリよりも時間的順序の上流側エントリのデータを無効化エントリ数分だけ下流側にデータシフトさせる制御回路と、
    前記複数エントリに共通に入力される検索データと該エントリを構成する記憶素子に保持される被検索データとの比較結果に基づき、所定の優先度により複数エントリのうちの1エントリを識別する優先度判定回路と、を有し、
    前記所定の優先度を、前記時間的順序における所定順位とするデータ処理装置。
  2. 新たなデータ保持を可能とするエントリの位置を示す空きエントリ位置ポインタを有する請求項1記載のデータ処理装置。
  3. データシフト機能を備える複数ビットの記憶素子を1テーブルエントリとし、隣接テーブルエントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数テーブルエントリを備えていて、前記テーブルエントリは前記記憶素子アレイのエントリに一対一対応されるデータテーブルを有し、
    前記データテーブルは前記記憶素子アレイのエントリに対するデータシフト動作に同期したデータシフト動作され、
    前記データテーブルは前記優先度判定回路で識別された1エントリに対応するテーブルエントリが保有するデータを出力する請求項2記載のデータ処理装置。
  4. 前記記憶素子アレイにおける被検索データとの比較結果を出力可能な拡張出力インタフェースと、前記記憶素子アレイにおける比較結果と論理積が採られる上位側比較結果を入力可能な拡張入力インタフェースとを有する請求項3記載のデータ処理装置。
  5. マルチタスク制御プログラムを実行可能なプロセッサユニットと、マルチタスク制御プログラムにより実行すべきタスクが割り当てられる複数の演算ユニットと、演算ユニットが実行すべきタスクの選択処理を行なうタスク管理ユニットとを有するデータ処理装置であって、
    前記タスク管理ユニットは、データシフト機能及びデータ比較機能を備える複数ビットの記憶素子を1エントリとし、隣接エントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数エントリを有する記憶素子アレイと、
    前記エントリに新たなタスク管理情報を保持させる前記プロセッサユニットからの操作指令に応答するとき、前記エントリに対する新たなタスク管理情報保持の時間的順序をエントリのデータシフト方向の配列とは逆方向に制御すると共に、エントリの保持データを無効化する前記プロセッサユニットからの操作指令に応答するとき、無効化されたエントリよりも時間的順序の上流側エントリのデータを無効化エントリ数分だけ下流側にデータシフトさせる制御回路と、
    前記複数エントリに共通に入力される検索データと該エントリを構成する記憶素子に保持される被検索データとの比較結果に基づき、所定の優先度により複数エントリのうちの1エントリを識別する優先度判定回路と、を有し、
    前記所定の優先度を、前記時間的順序における所定順位とするデータ処理装置。
  6. 前記タスク管理ユニットは、優先度判定回路で識別されたエントリが保持するタスク管理情報に含まれるタスクIDを前記プロセッサユニットに出力する請求項5記載のデータ処理装置。
  7. 前記タスク管理ユニットは、データシフト機能を備える複数ビットの記憶素子を1テーブルエントリとし、隣接テーブルエントリの対応するビット位置間で一方向にデータシフトが可能となるよう複数テーブルエントリを備えていて、前記テーブルエントリは前記記憶素子アレイのエントリに一対一対応されるデータテーブルを有し、
    前記データテーブルは前記記憶素子アレイのエントリに対するデータシフト動作に同期したデータシフト動作され、
    前記データテーブルは前記優先度判定回路で識別された1エントリに対応するテーブルエントリから前記タスクIDを出力する請求項6記載のデータ処理装置。
  8. 前記タスク管理ユニットは、新たなデータ保持を可能とするエントリの位置を示す空きエントリ位置ポインタを有する請求項7記載のデータ処理装置。
  9. 前記記憶素子アレイにおける被検索データとの比較結果を出力可能な拡張出力インタフェースと、前記記憶素子アレイにおける比較結果と論理積が採られる上位側比較結果を入力可能な拡張入力インタフェースとを有する請求項8記載のデータ処理装置。
  10. 1個の半導体基板に形成されて成る請求項1又は5記載のデータ処理装置。
JP2008507296A 2006-03-27 2006-03-27 データ処理装置 Expired - Fee Related JP5024899B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/306089 WO2007110906A1 (ja) 2006-03-27 2006-03-27 データ処理装置

Publications (2)

Publication Number Publication Date
JPWO2007110906A1 JPWO2007110906A1 (ja) 2009-08-06
JP5024899B2 true JP5024899B2 (ja) 2012-09-12

Family

ID=38540846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008507296A Expired - Fee Related JP5024899B2 (ja) 2006-03-27 2006-03-27 データ処理装置

Country Status (3)

Country Link
US (1) US20090320034A1 (ja)
JP (1) JP5024899B2 (ja)
WO (1) WO2007110906A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201177B2 (en) * 2007-11-19 2012-06-12 International Business Machines Corporation Scheduling a workload based on workload-related variables and triggering values
US8255908B2 (en) * 2007-12-19 2012-08-28 Nokia Corporation Managing tasks in a distributed system
JP5176230B2 (ja) * 2008-03-10 2013-04-03 株式会社日立製作所 計算機システム、計算機制御方法及び計算機制御プログラム
EP3255543B1 (en) * 2015-04-14 2019-06-05 Huawei Technologies Co., Ltd. Process management method, apparatus and device
US20180024859A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification
US20180025289A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204674A (ja) * 1991-10-15 1993-08-13 Hewlett Packard Co <Hp> マルチタスキングデータ処理システム
JP2001075820A (ja) * 1999-09-07 2001-03-23 Oki Electric Ind Co Ltd リアルタイムos装置
JP2004326767A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサにおいて命令スレッドのインタリービングをランダム化するための方法および装置
JP2005078450A (ja) * 2003-09-01 2005-03-24 Oki Electric Ind Co Ltd タスク制御方法とタスク切替装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710933A (en) * 1985-10-23 1987-12-01 Texas Instruments Incorporated Parallel/serial scan system for testing logic circuits
US4872169A (en) * 1987-03-06 1989-10-03 Texas Instruments Incorporated Hierarchical scan selection
US6055649A (en) * 1997-11-19 2000-04-25 Texas Instruments Incorporated Processor test port with scan chains and data streaming
JP2006040149A (ja) * 2004-07-29 2006-02-09 Toshiba Corp 半導体集積回路装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204674A (ja) * 1991-10-15 1993-08-13 Hewlett Packard Co <Hp> マルチタスキングデータ処理システム
JP2001075820A (ja) * 1999-09-07 2001-03-23 Oki Electric Ind Co Ltd リアルタイムos装置
JP2004326767A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> マルチスレッド・プロセッサにおいて命令スレッドのインタリービングをランダム化するための方法および装置
JP2005078450A (ja) * 2003-09-01 2005-03-24 Oki Electric Ind Co Ltd タスク制御方法とタスク切替装置

Also Published As

Publication number Publication date
WO2007110906A1 (ja) 2007-10-04
US20090320034A1 (en) 2009-12-24
JPWO2007110906A1 (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
JP4119945B2 (ja) タスク処理装置
US8683093B2 (en) Memory system having high data transfer efficiency and host controller
JP5024899B2 (ja) データ処理装置
JP4996519B2 (ja) 仮想マルチプロセッサ、システムlsi、携帯電話機器、及び仮想マルチプロセッサの制御方法
CN101840390B (zh) 适用于多处理器系统的硬件同步电路结构及其实现方法
JP4127848B2 (ja) タスク処理装置
JPWO2009022371A1 (ja) タスク処理装置
JP5578713B2 (ja) 情報処理装置
WO2011148920A1 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
JP2007133456A (ja) 半導体装置
JP4388005B2 (ja) コンテキスト切替え装置
US20070156937A1 (en) Data transfer in multiprocessor system
JP2006092042A (ja) 情報処理装置及びコンテキスト切り替え方法
JPWO2009090684A1 (ja) タスク処理装置
JP4168281B2 (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
JP2018180768A (ja) 半導体装置
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
US10853123B2 (en) Memory module
JP4451010B2 (ja) プログラマブルコントローラ
WO2018138975A1 (ja) 演算処理装置および情報処理システム
US20140059326A1 (en) Calculation processing device and calculation processing device controlling method
JP2006285724A (ja) 情報処理装置および情報処理方法
JP2002108703A (ja) キャッシュ制御装置及びプロセッサ
JP2008269597A (ja) タスク処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120516

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

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

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees