JP2002032233A - マルチスレッドシステムにおけるデータi/o処理方法 - Google Patents

マルチスレッドシステムにおけるデータi/o処理方法

Info

Publication number
JP2002032233A
JP2002032233A JP2000222383A JP2000222383A JP2002032233A JP 2002032233 A JP2002032233 A JP 2002032233A JP 2000222383 A JP2000222383 A JP 2000222383A JP 2000222383 A JP2000222383 A JP 2000222383A JP 2002032233 A JP2002032233 A JP 2002032233A
Authority
JP
Japan
Prior art keywords
processing
data
input
thread
threads
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
JP2000222383A
Other languages
English (en)
Inventor
Takaaki Yoshida
高明 吉田
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
Priority to JP2000222383A priority Critical patent/JP2002032233A/ja
Publication of JP2002032233A publication Critical patent/JP2002032233A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】リアルタイムに対する重要性が高いビデオ録画
や音声録音するためのデバイスは、一般的にデータ入力
が正しく行われたかを確認することなく、データを「垂
れ流して」取り込むため、データを入力/処理する側の
性能で画質・音質が決定される。このため、できるだけ
データ入力・処理のスループットを向上させる必要があ
る。 【解決手段】リアルタイムデータ処理をデータ入力、加
工、出力の3フェーズに分解し、各々が独立して同時に
実行できる環境を、マルチスレッドシステムを用いて摘
要する。この3フェーズのデータの流れを極力途切れな
いようにするため、フェーズ毎にダブルバッファを設
け、各フェーズに対して独立して動作するスレッドを割
り当て、かつ、各スレッドの管理を行う専用のスレッド
を設け、スレッド管理テーブルを用いてスレッド間の動
作を制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リアルタイムマル
チメディア画像処理等における大量・高速データ処理を
必要とするシステムに対して摘要するものである。例え
ば、複数のIEEE1394チャネルから単一のFib
reチャネルにデータを加工・出力するシステムや、音
声を含む複数の画像データを入力しながらリアルタイム
にDSP処理し、ハードディスクレコーディングを行う
システムに適用可能である。
【0002】
【従来の技術】入力チャネル、出力チャネルがそれぞれ
単一であるデータ入出力の場合は、従来のダブルバッフ
ァ技術を利用することにより入力と出力を同時に実行す
ることができるが、データ入出力が複数ある場合や、何
らかのデータ加工処理を実施して出力する場合には摘要
できない。
【0003】また、複数のリアルタイム入力データを加
工するシステムにおいて、画質や音質を損なわずに加工
処理するためには、入力データを一度外部記憶装置に保
存し、そこから改めて入力データを読みこみ、転送レー
トを落としてから処理する必要があった。
【0004】本発明が実現しようとする環境は、既存の
市販のオペレーティングシステムを利用することで実現
可能であり、専用のハードウェアを開発するよりも、ハ
ードウェア・ソフトウェアの面でシステムコストを抑え
ることが可能である。
【0005】
【発明が解決しようとする課題】リアルタイムに対する
重要性が高いビデオ録画や音声録音するためのデバイス
は、一般的にデータ入力が正しく行われたかを確認する
ことなく、データを「垂れ流して」取り込むため、デー
タを入力/処理する側の性能で画質・音質が決定され
る。このため、できるだけデータ入力・処理のスループ
ットを向上させる必要がある。
【0006】本発明では、上記の一連のデータ入力処理
−加工処理−出力処理のスループットを向上させるとと
もに、データ処理の途切れを減らすことを目的とするも
のである。
【0007】
【課題を解決するための手段】本発明は、上記課題を解
決するために、リアルタイムデータ処理をデータ入力、
加工、出力の3フェーズに分解し、各々が独立して同時
に実行できる環境を、マルチスレッドシステムを用いて
摘要するものである。この3フェーズのデータの流れを
極力途切れないようにするため、フェーズ毎にダブルバ
ッファを設け、各フェーズに対して独立して動作するス
レッドを割り当て、かつ、各スレッドの管理を行う専用
のスレッドを設け、スレッド管理テーブルを用いてスレ
ッド間の動作を制御するものである。
【0008】データ入力処理、中間処理、出力処理それ
ぞれに専用スレッドを割り当てることで、バッファ間の
データコピーを必要とせず、メモリの節約と高速化が期
待できる。
【0009】なお、本発明にて利用する用語の定義を以
下に示す。
【0010】チャネル:あるシステムにおいてデータ入
出力を行う物理的装置または論理的インタフェース。
【0011】プロセス:オペレーティングシステム内に
おいて、1つのプログラムを実行する単位。各プロセス
間のメモリは分離されており、1つのプロセスは別プロ
セスのメモリを直接参照できない。各プロセスはオペレ
ーティングシステムの管理の下、タイムスライスによる
同時実行が可能である。
【0012】スレッド:1つのプロセス内でのプログラ
ムの実行単位。各スレッド間でメモリは共有される。C
PU資源はオペレーティングシステムによりスレッド単
位に割り当てられる。システムに複数のCPUがある場
合は、スレッド単位にCPUが割り当てられ、複数CP
U上でプログラムが同時実行可能である。
【0013】
【発明の実施の形態】以下、本発明の実施形態を詳細に
説明する。
【0014】図1は本発明の処理手順の実施形態を示す
タイミングチャートである。図2、図3は本発明の処理
手順の実施形態を示すフローチャートである。図4、図
5、図6は管理スレッドのみが参照更新できる管理テー
ブルの更新イメージである。図1〜6においては、入力
装置がn個、加工処理ロジックがxセット、出力装置が
m個存在することを想定している。また、データ入力を
行うスレッドを入力スレッド、データ加工処理を行うス
レッドを処理スレッド、データ出力を行うスレッドを出
力スレッドと呼ぶ。これらはそれぞれ単一のスレッドと
して実行される。
【0015】各スレッド用に、A,B2組のバッファを
用意する。ここで、便宜的にバッファの名称を次のよう
に取り決める。すなわち、バッファi1Aとは、in
(入力)スレッドの1番目のA組のバッファとする。同
様に、バッファomBとは、out(出力)スレッドの
m番目のB組のバッファとする。
【0016】まず始めに、入力スレッド1〜nは監視ス
レッドからの通知待ち状態(ステップ200)で待機し
ている。監視スレッドは初期処理として管理テーブルを
クリアし、入力スレッドへ開始通知を実施する(ステッ
プ300)。
【0017】開始通知を受信した入力スレッド1〜nは
それぞれ入力装置1〜nよりバッアァi1A〜バッファ
inAにデータを入力する(ステップ202)。ここ
で、各入力スレッドは同時実行されるので、複数の入力
装置より同時にデータがバッファに入力される(ステッ
プ100)。各入力スレッドはバッファ内にデータを格
納完了後、監視スレッドに対して完了通知を行い(ステ
ップ203)、監視スレッドからの通知待ち状態となる
(ステップ204)。
【0018】監視スレッドは受け取った完了通知を元
に、管理テーブルの中の該当するスレッドの処理ステー
タスを更新し(ステップ302、ステップ400)、全
ての入力スレッドが処理完了したと判断した場合は、通
知待ち状態であった全ての入力スレッドおよび全ての処
理スレッドに処理開始を通知する(ステップ304)。
ステップ304にて監視スレッドより通知を受けた入力
スレッド1〜nは、それぞれ入力装置1〜nよりバッフ
ァi1B〜バッファinBに同時にデータを入力する
(ステップ206)。データ入力が完了した後、各入力
スレッドは監視スレッドに完了通知を行い(ステップ2
07)、監視スレッドからの通知待ち状態となり、入力
スレッドの1サイクルが完了する。
【0019】ステップ304にて監視スレッドから通知
を受けた処理スレッド1〜xは、バッファi1A〜in
Aに格納されたデータに対して何らかの演算処理を行
い、バッファo1A〜omAに格納する(ステップ21
2)。なおステップ212はステップ206と同時に実
行される。
【0020】各処理スレッドはデータの演算、バッファ
へのデータ格納が終了した後、監視スレッドに完了通知
を行い(ステップ213)、監視スレッドからの通知待
ち状態となる(ステップ214)。ここで、各処理スレ
ッドは複数の入力バッファに格納されたデータから複数
の出力バッファへ演算結果を格納できる。つまり、入力
バッファと処理スレッドは1対1ではなく、n対nの関
係でも良い。
【0021】監視スレッドは受け取った完了通知を元
に、管理テーブルの中の該当するスレッドの処理ステー
タスを更新し(ステップ302)、全ての処理スレッド
が処理完了したと判断した場合は、通知待ち状態であっ
た全ての処理スレッドおよび全ての出力スレッドに処理
開始を通知する(ステップ306)。
【0022】ステップ306にて監視スレッドから通知
を受けた処理スレッド1〜xは、バッファi1B〜in
Bに格納されたデータに対して何らかの演算処理を行
い、バッファo1B〜omBに格納する(ステップ21
6)。なおステップ216はステップ202と同時に実
行される。データ格納後、各処理スレッドは監視スレッ
ドに完了通知を行い(ステップ217)、監視スレッド
からの通知待ち状態となり、処理スレッドの1サイクル
が完了する。
【0023】ステップ306にて監視スレッドから通知
を受けた出力スレッド1〜mは、それぞれ処理スレッド
1〜xにより格納されたバッファo1A〜omA内のデ
ータを出力装置に同時に出力し(ステップ222)、監
視スレッドに完了通知を行い(ステップ223)、監視
スレッドからの処理待ち状態となる(ステップ22
4)。
【0024】監視スレッドは受け取った完了通知を元
に、管理テーブルの中の該当するスレッドの処理ステー
タスを更新し(ステップ302)、全ての出力スレッド
が処理完了したと判断した場合は、通知待ち状態であっ
た全ての入力スレッドおよび全ての出力スレッドに処理
開始を通知する(ステップ308)。
【0025】以上のように、入力スレッド、処理スレッ
ド、出力スレッドはそれぞれ出力スレッド、入力スレッ
ド、入力スレッドに関係なく処理が同時実行できる。
【0026】
【発明の効果】以上のように、本発明を使用すること
で、複数の入出力装置を持つシステムにおいて、特別な
ハードウェアを必要とせず、全てのデータスループット
を向上させ、データ処理の途切れを最小限に抑えること
が可能となる。
【図面の簡単な説明】
【図1】本発明の処理手順の実施形態を示すタイムチャ
ート。
【図2】本発明の処理手順の実施形態を示すフローチャ
ート。
【図3】本発明の処理手順の実施形態を示すフローチャ
ート。
【図4】管理スレッドが内部で扱うテーブルの例を示す
図。
【図5】管理スレッドが内部で扱うテーブルの例を示す
図。
【図6】管理スレッドが内部で扱うテーブルの例を示す
図。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 1台以上の入力装置と1台以上の出力装
    置を有し、入力装置より入力したデータに対して中間処
    理を行い、それにより加工されたデータを複数の出力装
    置に出力するマルチスレッドシステムにおいて、データ
    入力、データ出力、中間処理に各々スレッドを割り当
    て、同時に並行してデータの入出力処理・中間処理を行
    う方法。
  2. 【請求項2】 請求項1において、入力処理用、出力処
    理用、中間処理用にそれぞれバッファを複数持たせ、1
    つ目が処理中の際に、同時に他方のバッファに対して入
    出力・中間処理を実行する手法。
  3. 【請求項3】 請求項1において、入力処理、中間処
    理、出力処理の各処理が、それぞれ出力処理、入力処
    理、中間処理と独立して動作する手法。
  4. 【請求項4】 請求項1において、複数のスレッドの処
    理終了等を管理する専用のスレッドと管理テーブルを設
    け、全てのスレッドの処理状況を一元管理することで、
    各スレッド間での処理確認手順を簡素化することを特徴
    とする手法。
JP2000222383A 2000-07-18 2000-07-18 マルチスレッドシステムにおけるデータi/o処理方法 Pending JP2002032233A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000222383A JP2002032233A (ja) 2000-07-18 2000-07-18 マルチスレッドシステムにおけるデータi/o処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000222383A JP2002032233A (ja) 2000-07-18 2000-07-18 マルチスレッドシステムにおけるデータi/o処理方法

Publications (1)

Publication Number Publication Date
JP2002032233A true JP2002032233A (ja) 2002-01-31

Family

ID=18716634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000222383A Pending JP2002032233A (ja) 2000-07-18 2000-07-18 マルチスレッドシステムにおけるデータi/o処理方法

Country Status (1)

Country Link
JP (1) JP2002032233A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221323A (ja) * 2006-02-15 2007-08-30 Sony Computer Entertainment Inc 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP2008026996A (ja) * 2006-07-18 2008-02-07 Nippon Soken Inc 電子装置
JP2016218930A (ja) * 2015-05-26 2016-12-22 株式会社Atl−Sd 並列データ処理方法、及びその方法を利用した並列データ処理回路、その並列データ処理回路を組み込んだオーディオミキサー

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007221323A (ja) * 2006-02-15 2007-08-30 Sony Computer Entertainment Inc 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP2008026996A (ja) * 2006-07-18 2008-02-07 Nippon Soken Inc 電子装置
JP2016218930A (ja) * 2015-05-26 2016-12-22 株式会社Atl−Sd 並列データ処理方法、及びその方法を利用した並列データ処理回路、その並列データ処理回路を組み込んだオーディオミキサー

Similar Documents

Publication Publication Date Title
US20050278451A1 (en) Signal processing apparatus and method thereof
US20080022288A1 (en) Signal Processing Appatatus
JPH06223042A (ja) マルチプロセッサ・システムにおいて割込みを管理するための装置及び方法
CN113885945A (zh) 一种计算加速方法、设备以及介质
JP2003512671A (ja) 並列コンテキスト切換を用いてアイソクロノス処理をサポートする方法
JP2002032233A (ja) マルチスレッドシステムにおけるデータi/o処理方法
WO2020134572A1 (zh) 一种存储器内建自测试电路和对存储器的测试方法
US20100145480A1 (en) Information recording/reproducing apparatus and information recording/reproducing method
EP1111512A2 (en) Parallel transfer size calculation and annulment determination in transfer controller with hub and ports
JP2002532811A (ja) 楽音データ生成装置および方法、並びに該方法を提供する媒体
JP3004102B2 (ja) データベース演算処理装置
WO2015155894A1 (ja) プロセッサーおよび方法
US8060729B1 (en) Software based data flows addressing hardware block based processing requirements
US7515553B2 (en) Group synchronization by subgroups
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
JPH09319863A (ja) 画像処理装置における設定データ変更装置
JPS6057436A (ja) 演算処理装置
JPH0346033A (ja) ジヨブ間データ転送制御方法
JP2000305751A (ja) 並列ソート装置及び該装置のプログラムを記録した記録媒体
JP2000003285A (ja) 割り込み処理方法および割り込み回路
JP2768878B2 (ja) データ処理装置、命令実行の同期方法、例外発生時の命令アドレス待避方法及び例外発生時の命令処理無効化方法
JPS6059464A (ja) バスリクエスト制御方式
JP2013125288A (ja) データ処理装置及びデータ処理方法
JPH04256012A (ja) データリカバリー方式
JPH07219912A (ja) 情報処理装置