JPH08288768A - デジタル音声処理装置及び該装置のための目的コード生成方法 - Google Patents

デジタル音声処理装置及び該装置のための目的コード生成方法

Info

Publication number
JPH08288768A
JPH08288768A JP8070423A JP7042396A JPH08288768A JP H08288768 A JPH08288768 A JP H08288768A JP 8070423 A JP8070423 A JP 8070423A JP 7042396 A JP7042396 A JP 7042396A JP H08288768 A JPH08288768 A JP H08288768A
Authority
JP
Japan
Prior art keywords
instruction
processing
instructions
group
groups
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
JP8070423A
Other languages
English (en)
Inventor
Christopher Michael Mcculloch
マイケル マッカラック クリストファ
Peter Charles Eastty
チャールズ イースティ ピーター
William Edmund Cransto Kentish
エドマンド クランスタン ケンティッシュ ウィリアム
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.)
Sony Europe BV United Kingdom Branch
Original Assignee
Sony United Kingdom 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 Sony United Kingdom Ltd filed Critical Sony United Kingdom Ltd
Publication of JPH08288768A publication Critical patent/JPH08288768A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/02Arrangements for generating broadcast information; Arrangements for generating broadcast-related information with a direct linking to broadcast information or to broadcast space-time; Arrangements for simultaneous generation of broadcast information and broadcast-related information
    • H04H60/04Studio equipment; Interconnection of studios
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Control Of Amplification And Gain Control (AREA)
  • Stereophonic System (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

(57)【要約】 【課題】 複数の並列処理ユニットをもつデジタル音声
処理装置において、異なる処理ユニットに効率よく処理
タスクを配分すること。 【解決手段】 本発明は、多重プロセッサ・システムに
おける目的コードの配分に関するもので、信号処理命令
を並列信号処理ユニットの大きなアレイに効率よく割当
てる種々の技法を開示している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、多重プロセッサ・
システムにおけるオブジェクト(目的)コードの配分に
関するものである。
【0002】
【従来の技術】並列に相互接続されたデータ処理デバイ
ス又は処理ユニットのアレイを用いるデータ処理装置に
おいては、異なる処理ユニットの間に処理タスクを配分
することが必要である。これが(翻訳段の終わりに行わ
れることが多い。)効率的に行われるかどうかによっ
て、該処理アレイの有用性及び動作効率が決定される。
【0003】このような多重並列データ処理装置の例と
して、音声ミキシング操作卓(コンソール)の如きデジ
タル音声(オーディオ)処理装置がある。以前に提案さ
れたミキシング操作卓では、処理すべき幾つかの音声チ
ャンネルの各々に夫々専用の処理ユニットを配分してい
る。しかし、これは、種々の音声チャンネルの所要処理
量が全く異なることがあるため、処理ユニットのアレイ
の使用効率を悪くしている。
【0004】
【発明が解決しようとする課題】したがって、本発明の
主な課題は、複数の並列処理ユニットをもつデジタル音
声処理装置において異なる処理ユニットに効率よく処理
タスクを配分する方法を提供することである。
【0005】
【課題を解決するための手段】本発明は、複数の音声チ
ャンネルに対して処理作用を行う複数の並列処理ユニッ
トを含むデジタル音声処理装置を提供する。その装置
は、該音声チャンネルの少なくともサブセット(小部
分)について、該サブセット内の各チャンネルに対する
所要の処理を1より多い処理ユニットで順次行い、処理
ユニットの少なくとも1つが、1より多い音声チャンネ
ルに対する夫々の処理作用を行うものである。
【0006】各処理ユニットは、夫々所定の一連の繰返
されるデータ処理命令を実行し、その命令の列は、音声
チャンネル内の音声データの各音声サンプル期間内に一
度実行されるのが好ましい。また、各処理ユニットに対
する命令の列は、条件付き分岐命令を含まないのがよ
い。そうすれば、各音声サンプル期間内に各処理ユニッ
トにより実行されるプログラムは、他のどの音声サンプ
ル期間内に実行されるものと同一であるので、これらの
方策により、プロセッサ間の交信にバス調停が必要でな
いようにシステムを組立てることができる。バス転送
は、バス転送が考えられる度毎に水平及び垂直バスの各
々を1対(送信と受信)の処理ユニットに割当てること
で、予め解決できる。特定時にバスを使用する意図のな
い処理ユニットは、その時簡単にバス接続をトライステ
ート(3状態)にすることができる。
【0007】本発明はまた、相互接続された処理ユニッ
トのアレイをもつ多重プロセッサ・データ処理装置のた
めの目的(実行)コード生成方法を提供する。その方法
は、(i)連続するデータ処理命令を含む原プログラム
コードを生成するステップ、(ii)原プログラムコード
を、処理ユニットのアレイ内の処理ユニットの数より多
い数の、複数の命令グループに分割するステップ、(ii
i) 命令グループの対の間の所要データ転送量を検出す
るステップ、(iv)該グループの対を、検出された所要
データ転送量が減少する順に並べるステップ、及び
(v)上記グループの対を並べた順に結合する場合、結
合されたグループのサイズが各処理ユニットによって実
行されうる命令の最大数を越えなければ、上記グループ
の対を並べた順に結合して結合されたグループを作り、
該結合されたグループがグループ全部の合計所要データ
転送量における最大の減少を与えるようにするステップ
を含む。
【0008】上述の方法の結果、結合されたグループの
数が処理ユニットの使用可能な(使える)数より多くな
る場合、上述の方法は更に、(vi)結合されたグループ
の数が、使える処理ユニットの数より多いかどうかを検
知するステップ、(vii)結合されたグループを、結合さ
れた各グループ内の命令の数の順に並べるステップ、及
び(viii)命令の数が最も多いグループを命令の数が最も
少ないグループと結合し、グループの数を、使える処理
ユニットの数と等しいか又はそれより少なくなるように
減らすステップを含む。
【0009】本発明はまた、次の如き目的コード生成方
法を提供する。その方法は、連続するデータ処理命令を
含む原プログラムコードを生成するステップ、原プログ
ラムコード内の、単一の命令で置換えうる論理的に隣接
する命令のグループを検出するステップ、及び検出され
た各命令グループを夫々単一の命令によって置換えるス
テップとを含む。
【0010】1つの好適な実施例では、検出された命令
グループの各命令は2進シフト命令であり、当該命令グ
ループに対する夫々の単一命令は、ビットシフト命令で
ある。他の考えられる実施例では、検出された命令グル
ープは加算命令と論理的に隣接する乗算命令を含み、当
該命令グループに対する夫々の単一命令は乗加算命令を
含む。
【0011】
【発明の実施の形態】以下、図面を参照して本発明を具
体的に説明する。図1は、本発明を使用しうるデジタル
音声ミキシング操作卓を示す模式図である。図1におい
て、ユーザは、制御パネル又はデスク10上の制御器を
操作する。制御器は、スイッチ、フェーダ、可変抵抗器
などである。制御パネル10はまた、例えば信号レベ
ル、信号経路、等化器の動作などの表示も行う。パネル
上の制御器及び表示デバイスとの情報交換は、パネルプ
ロセッサ20によって処理される。
【0012】パネルプロセッサ20はまた制御プロセッ
サ30に接続され、制御プロセッサ30は、パネル上に
ユーザが設定した制御位置を示す情報をパネルプロセッ
サから受け、当該情報を用いて信号プロセッサ40の動
作を制御する。
【0013】信号プロセッサ40は、入力/出力プロセ
ッサ50からデジタル音声データを受け、制御プロセッ
サ30の制御の下に当該音声データを処理し、処理した
デジタル音声データを入力/出力プロセッサ50に供給
して出力させる。信号プロセッサ40は実際には、図
3、4及び5を参照して後述する如き信号処理アレイと
して具現される。
【0014】64〜128チャンネルを処理する如き大
きなミキシング操作卓では、種々の音声チャンネルを混
合し、等化し、組合せを調整するのに大量の信号処理を
必要とする。含まれる種々の原理を簡単に示すため、当
該処理の極めて小部分のみを図2に示す。
【0015】図2に示すように、操作卓の1音声チャン
ネルに対するチャンネル処理小部分には、フェーダ(線
形可変抵抗器)60、当該チャンネルの音声データを処
理するためフェーダの位置を制御量(例えば利得のデシ
ベル)に変換する位置変換器70、係数発生器80及び
乗算器90が含まれる。
【0016】操作の際、ユーザは、フェーダ60を動か
すことにより入力音声信号に適用すべき利得を指定する
ことができる。フェーダの物理的位置は、デジタル化さ
れて位置変換器70に送られる。位置変換器70は、フ
ェーダ60のデジタル化された位置を対応する利得のデ
シベル(dB)値にマップし(割当て)、これを係数発
生器80に送る。該係数発生器は、当該所要利得を乗算
係数に変換する。入力音声データはそれから、乗算器9
0において当該乗算係数又は率により乗算される。
【0017】図1及び2を比べると分かるように、フェ
ーダ60はパネル10の一部をなし、パネルプロセッサ
20はフェーダのデジタル化された位置をサンプルす
る。位置変換器70は制御プロセッサ30に含まれ、係
数発生器80は制御プロセッサ30及び信号プロセッサ
40によって具現される。最後に、実際は信号路の一部
である図2のただ1つの部分、乗算器90は、信号プロ
セッサ40に含まれる。
【0018】前述したとおり、信号プロセッサ40は実
際には、或る数の処理ユニットを含む信号処理アレイと
して具現される。(制御プロセッサ30も同様に、制御
処理ユニットのアレイとして具体化できる。しかし、こ
の具体例では、制御プロセッサ30は単一のマイクロプ
ロセッサ・デバイスによって形成される。)
【0019】図3は、信号プロセッサ40を形成する信
号処理アレイの模式図である。該アレイを構成する個々
の処理ユニットには、p1,p2,p3,‥‥‥,p
(n),‥‥‥,p(m)等々の番号が付けられてい
る。これらは(少なくとも電気的に)、処理ユニットの
正方形又は方形のアレイとして配置される。例えば25
個の処理ユニットのアレイでは、その電気的配置は、夫
々水平及び垂直の方向において5×5の処理ユニットの
正方形アレイとなるであろう。かようなアレイの2つ以
上をバスで一緒に連結できるであろう。
【0020】処理ユニットのアレイは、水平及び垂直方
向の交信バスにより相互に接続される。図3では、処理
ユニットp1,p2,p3,p4,‥‥‥は水平バスに
より、処理ユニットp1,p(n),p(m),‥‥‥
は垂直バスにより相互接続されている。
【0021】水平及び垂直バスは、個々のバスに接続さ
れたデバイスが、当該バスに接続された他のどのデバイ
スとも交信できるように配される。処理ユニットは、反
復プログラムを各音声サンプル期間(44.1kHzの
サンプリングレートの場合、約23ミリ秒)に1回ずつ
繰返しながら実行する。条件付き分岐命令は使用されな
い。即ちプログラムが繰返される度に行われる処理動作
は同一である(勿論、処理作用が施されるデータはサン
プル期間毎に変化する。)。
【0022】各処理ユニットによって各音声サンプル期
間に実行されるプログラムは他のどの音声サンプル期間
に実行されるプログラムとも同一であるから、バス調停
(仲裁)を必要としないようにシステムを組立てること
ができる。バス転送は、バス転送が考えられる度毎に水
平及び垂直バスの各々を1対(送信と受信)の処理ユニ
ットに割当てることで、予め解決できる。特定の時間に
バスを使用する意図のない処理ユニットは、その時簡単
にバス接続をトライステート(3状態)にすることがで
きる。
【0023】各音声サンプル期間に各処理ユニットによ
って実行されるプログラムは、所定数のクロック周期を
占めるが、これは、この具体例では512のクロック周
期であり、44.1kHzのサンプル(サンプリング)
レートの場合約23MHzのプロセッサ・クロック速度
を与える。バス転送は、各クロック周期に行われるよう
にすることができる。
【0024】図4は、図3の処理アレイの動作を示す模
式図である。図4は、図を分かり易くするため、処理ユ
ニットを20個(p1〜p20)しか示していないが、
(前述の如く)実際にはもっと多くのユニットを使用す
ることになる。
【0025】処理ユニットは図3に示したバス回路網で
連係されているので、個々のタスクの所要処理量を複数
の処理ユニットに分配することができる。実際に、どの
音声チャンネルもどの処理動作(等化段の動作など)
も、特定の処理ユニットと結び付いてはいない。
【0026】図4は、特定の音声サンプル期間内の20
個の処理ユニットの動作の例を示す。同図には、11個
の命令100(垂直方向の区分で示す。)が処理ユニッ
トによって当該音声サンプル期間内に実行される様子が
示されている。これらの命令は同時に実行され、例え
ば、処理ユニットp1に示された3番目の命令(命令1
10)は、処理ユニットp2〜p20の各々に示された
3番目の命令(例えば命令120)と同時に実行され
る。
【0027】処理タスクを複数の処理ユニットに配分す
るやり方の例を、図4では当該タスクを実行するのに使
用される命令に陰影を付けて示す。この例では、処理タ
スクに要求される最初の処理は、処理ユニットp1で命
令130によって行われる。処理はそれから、バス回路
網を通って処理ユニットp3,p7,p9,p17,p
14及びp10に順次転送され、処理ユニットp10の
命令140で終わっている。多くの他の所要処理タスタ
も、同様にアレイ内の全処理ユニットの間に差し挟まれ
る。
【0028】図5は、図3の処理アレイの動作の他の例
を示す模式図である。図5は、個々の処理のタスクに必
要な命令を、複数の処理ユニットのみならず複数の音声
サンプル期間に配分する方法を示す。図5は、連続する
音声サンプル期間n,n+1,n+2の間に5個の処理
ユニットp1〜p5が行う動作を示す。
【0029】図5に示す例では、処理は、処理ユニット
p1によって行われる命令150からスタートする。タ
スクは、p2によって続けられ、それから再びp1に戻
り、それから処理ユニットp3に送られ、音声サンプル
期間n+1において実行される。タスクは、p3から処
理ユニットp1内の命令160に送られ、それから処理
ユニットp4内の音声サンプル期間n+1における最後
の命令に送られる。最後に、タスクは、第3の音声サン
プル期間n+2における処理ユニットp3内の命令によ
って続けられ、音声サンプル期間n+2の終わり頃処理
ユニットp5によって行われる命令170で終了する。
【0030】図5に示した命令のチェーン(連鎖)は、
各音声サンプル期間内のどの命令位置も再使用しないこ
とに気付くであろう。実際には、1以上の音声サンプル
期間だけ遅れるか又は進んだ類似の処理チェーンが、図
5に示したチェーンとの間に挿入される。即ち、例え
ば、音声サンプル期間nにおける処理ユニットp1内の
命令180は、音声サンプル期間n+1における同じ処
理ユニット内の命令160と同一であるが、勿論、命令
160により処理されるデータより1サンプル前の音声
データについて行われる。
【0031】換言すれば、処理ユニット間でタスク配分
を行うことにより、少なくとも音声チャンネルのサブセ
ット(小部分)に対し、該サブセット内の各チャンネル
に関連する所要の処理が1より多い処理ユニットによっ
て順次行われ、少なくとも1つの処理ユニットが1より
多い音声チャンネルに関連する反復処理動作を行うとい
う特徴のおかげで、著しく効率がよくなる。
【0032】したがって、処理ユニット用の目的コード
の作成には、命令を複数の処理ユニット、クロック周期
及び音声サンプル期間に分配することが必要になる。ま
た、バス交信やメモリ資源を複数の処理ユニットに割当
てることも必要となる。
【0033】図6は、図1の操作卓内のプログラマブル
処理デバイスのすべて(即ち、パネルプロセッサ20、
制御プロセッサ30、信号プロセッサ40及び入力/出
力プロセッサ50)に対する目的コードの作成を示す模
式フローチャートである。これらの処理段は、汎用もし
くは専用データ処理装置によって行われる。
【0034】適切な目的コードを作成する基本的技法
は、次の文献に記載されている。 1.1986年81回Audio Engineering Society(AES)大会予
稿プリントに所載のW.Kentish 及びC.Bellによる「An a
utomated approach to digital console design」、 2.1986年81回AES大会予稿プリントに所載のP.East
tyによる「Digital audio processing on a grand scal
e 」、 3.1986年81回AES大会予稿プリントに所載のC.McCu
lloch による「Automatic generation of microcode fo
r a digital audio signal processor」。
【0035】上記の文献に記載された技法を要約する
と、図2に示したものと形が類似の模式回路図(ただ
し、一般に大きさ及び複雑さは遙かに大きい。)をコン
ピュータ利用設計(CAD)システムにて作成する。該
CAD模式図からネットリスト(netlist)を作り、これ
をコンパイル(翻訳)して図1の操作卓の種々のプロセ
ッサに実行させるための目的コードを生成する。
【0036】したがって、図6は、図1の操作卓の信号
及び制御処理のCAD模式図200からスタートする。
前述のとおり、CAD模式図の一部分(フェーダ、位置
変換器及び係数発生器など)は、制御プロセッサ30に
よって行われるタスクに関連し、CAD模式図200の
他の部分は、信号処理アレイ40によって行われるタス
クに関連している。
【0037】CAD模式図からネットリスト210を作
成するが、これは、基本的には連係された数学的又はデ
ータ処理の命令にCAD模式図を直接翻訳したものであ
る。ネットリストの小部分の例をあとで述べる。データ
ベース・コンパイラ220は、該ネットリストを処理し
て「データベース」230を生成する。該データベース
は、コード生成目的のために(処理構造を「平坦に」表
示するため)ネットリスト内に存在するどんな階層構造
も無視した(基本的なデータ処理命令の表現で)処理構
造の全体を表すデータファイルである。しかし、その階
層構造は、エラーメッセージを送って手直しをする目的
のために存続される。
【0038】データベース230は信号プロセッサ(S
P)コード発生器240によってアクセスされ、該SP
コード発生器は、信号処理アレイの処理ユニットの処理
特性を定義するデータ250と、処理ユニットの構成を
定義するデータ260とを用いて目的コードを生成し
(個々の処理ユニットの処理能力に適する命令のグルー
プで)、これをそれからSPローダ245により信号プ
ロセッサ40にロード(転送)する。SPコード発生器
240は、異なる処理ユニット、異なるクロック周期、
異なるサンプル期間及び異なるバス転送期間に動作を割
当てる。この部分の動作は、あとでもっと詳細に述べ
る。
【0039】制御コンパイラ270は、ミキシング操作
卓のパネル10の構成を示すフロントパネル定義データ
280と、各処理ユニットへのタスクの割当てを示す、
SPコード発生器240からの割当てデータとを受け、
制御プロセッサ30、パネルプロセッサ20及び入力/
出力プロセッサ50によって実行されるべきコードを発
生する。このコードは、リンカ/ローダ290に送られ
る。該リンカ/ローダは、従来どおりの動作をするもの
で、ライブラリプログラム及びデータファイル300を
受け、図1の操作卓の制御プロセッサ(並びにパネル及
び入力/出力プロセッサ)に供給すべき目的コード31
0を生成する。
【0040】コンパイル(翻訳)された命令の異なる処
理ユニットへの割当て(配分)について、これより図7
を参照して説明する。図7は、SPコード発生器240
によって行われる如き、図3の処理アレイ用の目的コー
ドの作成及び配分を示す一層詳細な模式フローチャート
である。
【0041】図7のステップ350で、初期コードを調
べて余分な命令を除く。この命令のマッピング及び順序
付け技法は、同じ結果を与える単一の複合命令に(簡単
な所定のマッピング表で)翻訳できる、論理的に隣接す
る命令を探索することを含む。この技法は、あとで更に
図8及び9を参照して説明する。この段階でまた、他の
命令によって発生された変数を遅延させたものが必要と
なる命令を探索する。このタイプの命令を処理する仕方
は、あとで図10及び11を参照して説明する。
【0042】ステップ360で、ネットリストを構成す
る命令を、あとで図9を参照して述べる小グループの如
き、小さな任意のグループに分割する。ステップ370
で、結合されたグループが単一の処理ユニットに適正な
最大サイズ(例えば、512の命令)を越えないことを
条件として、単一の処理ユニットに受入れられる命令の
グループを作る目的で、上記グループを一層大きいグル
ープに合体する。
【0043】これを行うため、これらのグループを考え
られるすべての対に組合せてテストし、考えられる各対
の間の所要バス交信量を評価する。それらのグループ対
をそれから、所要バス交信量が減少する順に並べる。こ
の並べたリストの一番上から始めて、第1のグループ対
(即ち、考えられる対の組合せのうち、該対間の所要バ
ス交信量が最も多いもの)を結合する。上記リストの下
の方に移り、各対を結合する。ただし、他のグループが
前に2回以上結合され、それらが既に間接的に結合され
ているか、又は結合の結果グループのサイズが1処理ユ
ニットの処理可能なサイズより大きくなることが検知さ
れたときは、各対の結合は行わない。
【0044】例えば、5つのグループA,B,C,D及
びEをもつ極めて簡単なシステムの例においてそれらの
グループを考えられるすべての対に組合せて検討し、そ
れらの対を所要バス交信量の順に並べる。その結果、次
のような対の順になったとする。 AD(所要バス交信量が最も多い。) DE AE BD AB BE AC BC CD CE(所要バス交信量が最も少ない。)
【0045】このリストを下方に移動し、幾つかのグル
ープの対が結合される。ただし、結合されたグループが
1処理ユニットの処理できるサイズを越えてはならな
い、との条件が常に付いている。最初にこのテストに合
格すれば、まずグループAとDを結合する。それは、こ
の対が、2グループ間で最も多い所要バス交信量をもつ
からである。次いで、グループDとE(第2の対)を結
合する。しかし、第3の対(AとE)を検討すると、
A,D及びEが前の2つの結合ステップで既に結合され
ていることが分かる。したがって、第3の対は、何も操
作する必要がない。
【0046】この処理は、グループ対(実際には、何百
もの多くの対になるであろう。)のリストの下方へと続
けられる。
【0047】結合されたグループは、個々のグループと
類似の形をしているが、それらより大きい。例えば、図
9のグループを他の類似のグループと結合して論理的に
相互連絡された命令の一層大きな、ただし類似のグルー
プを発生することができるであろう。
【0048】所要バス交信量の評価について、次に簡単
に述べる。例えば、第1のグループが例えば3つの入力
変数a,b及びcを要求し、3つの出力変数d,e及び
fを発生したとすると、a〜fのすべてを送信するのに
1以上のバスが必要になるであろう。しかし、当該グル
ープを、変数bを発生し変数eを要求した他のグループ
と組合せ、2つのグループを概念的なグループ対として
一緒に配置できれば、もはや変数b及びeをバス回路網
を介して送信する必要がなくなるので、該対の所要バス
交信量はバスで交信される2つの入力変数と2つの出力
変数になるであろう。
【0049】図7のステップ370の終わりで、、グル
ープの数は劇的に減少するが、それでもなお使用できる
処理ユニットの数より多いことがある。よって、ステッ
プ380で、所要グループ数を作るための最終調整が行
われる。即ち、まずステップ370で出力されるグルー
プをグループサイズの減少順に並べ、それから最小グル
ープを最大グループと任意に結合して、最後に当該グル
ープが1処理ユニットで処理できる命令数に達するよう
にし、それから続けて2番目に最も大きいグループを次
に最も小さい残りのグループと結合する。以下同様であ
る。この結果、使用可能な処理ユニットの数に等しいか
又はその数より少ない幾つかのグループが得られる。
【0050】グループ中最大のものにグループ中最小の
ものを加えて結合したグループが、単一の処理ユニット
で処理できる命令の数を越える場合、最小グループを原
結合(ステップ370で行われる。)の位置で分割し、
分割すべき特定の結合を、他(最大)のグループに加え
る分割されたグループが適正なサイズの部分を与えて、
1処理ユニットの処理能力にできるだけ近づくように選
択する。
【0051】次に、各命令グループを夫々の処理ユニッ
トに割当てることが必要になる。これは、ステップ39
0で行われる。即ち、合計で最大の所要バス交信量をも
つグループ(ステップ380で生成されたもの)を検出
し、当該グループを処理ユニットの仮想無限アレイ上の
任意の位置に割当てる。
【0052】次に最も多い所要バス交信量をもつグルー
プを、第1グループとの交信が必要であると仮定して隣
接する処理ユニットに割当てる。そうでない場合は、別
個の仮想アレイ上に配置する。
【0053】ステップ390を続け、3番目に最も多い
所要バス交信量をもつグループを、処理ユニットの仮想
アレイ上の次の位置においてテストする。 ─最初の2グループは互いに交信し、最初の2グループ
の少なくとも一方は第3のグループと交信すると仮定し
て、最初の2グループを接続するバスと同じバスに沿っ
て、 ─既に割当てられた2グループの第1のグループに接続
された垂直バスに沿って(当該グループは第3グループ
と交信すると仮定して)、 ─既に割当てられた2グループの第2のグループに接続
された垂直バスに沿って(当該グループは第3グループ
と交信すると仮定して)。
【0054】上記第3のグループが最初の2グループの
どちらとも交信しない場合、それを、処理ユニットの3
番目の仮想アレイ上に配置する。幾つかの仮想アレイが
出来上がるに従い、これらを、それら(即ち、2以上の
各仮想アレイ上のグループと交信するグループ)の間に
共通のリンク(連係)が見付かる度に合体することがで
きる。各テスト位置で、合計バス交信量を評価して、バ
ス交信量が最もよく減少する位置を選択する。
【0055】この処理は、残りのグループに対して続け
られる。即ち、各グループを順番に処理ユニットの仮想
アレイ上の使用可能なすべての異なる位置でテストし、
当該グループが交信する必要のある、既に上記アレイ内
にあるグループを検討する。この処理の終わりに、これ
らのグループを、互いに通信し合うグループ集団で、対
応する数の処理ユニット位置に割当てる。これらの集団
を、互いに隣接して配置する。この段階で、グループ
は、コードが実行されるべき物理的ハードウェアと同じ
構成の仮想アレイ上に配置されていない。
【0056】したがって、アレイをそれから、仮想アレ
イ内の最も数の多いグループを対応する現実の処理ユニ
ットに割当てるように調節する。仮想アレイ内の、処理
ユニットの実際のアレイと「離れる」(即ち、仮想アレ
イ上に実際の処理ユニットに対応しない位置をもつ)グ
ループはいずれも、次第に所要バス交信量の順に実際の
処理ユニットのアレイ(前述した処理アレイ例の中の正
方形アレイ)内の使用可能な位置に移し、最後に、すべ
てのグループを実際のアレイ内の夫々の処理ユニットに
割当てることができる。これらの移された各グループの
位置を、どのバスにも最低の最大交信量を与える(考え
られる使用可能な位置内の)位置として(各グループに
対し順番に)選択する。
【0057】ステップ400で、各処理ユニット内の命
令を、当該処理ユニットによって実行されるクロック周
期に割当てる。これは基本的に、それらの命令を他の命
令への依存関係の連鎖の中に入れて結合することにより
行われる。例えば、変数aを2つの他の変数b及びcか
ら導出する場合、変数aを発生する命令は、変数b及び
cを発生する命令の後に実行されねばならない。実際上
パイプライン化されたプロセッサを使用する場合、変数
aを発生する命令は、6命令パイプラインを使用すると
すれば、変数b及びcの遅いものが発生されてから、例
えば6命令後に行われねばならない。
【0058】変数aを発生する命令を実行するための時
間上の他の制約は、変数b及びcの早いものの発生後1
サンプル期間に、当該変数が新しい値によって重ね書き
される可能性があることである(処理命令は前述の如く
サンプル期間毎に1回繰返されるので)。変数b及びc
の前の値を、それが発生されてから1サンプル期間より
長く使うためにメモリ位置に記憶させることは可能であ
るが、これは資源の浪費になるので避ける方がよい。
【0059】最後にステップ410で、メモリ及びメモ
リアドレスを、1サンプル毎に記憶又は転送する必要の
ある変数に割当てる。図8は、CAD模式図200(図
6)から生成されるネットリスト210の小部分を示す
模式図である。
【0060】該ネットリストは、低水準(基本的)デー
タ処理又は数学的命令で連係されたリストであり、図8
に示す例は乗算及び加算命令である。具体的にいえば、
第1の音声信号(音声1)が係数(係数1)によって乗
算され、その積が第2の音声信号(音声2)及び他の係
数(係数2)の積に加算される。これら2つの積の和に
更に他の係数(係数3)が乗ぜられ、その積が最後に一
定値に加算されて音声出力信号が発生されている。
【0061】前述した命令のマッピング及び順序付けス
テップ(図7のステップ350)では、データベース内
の命令数を種々の方法で減少させている。 a)2以上の論理的に隣接する命令が同じタイプの単一
の命令で置換えられる場合は、この置換を行う。例え
ば、2つの論理的に隣接するビットシフト命令は、別々
の命令内で言及した量の和だけシフトする単一のシフト
命令に置換えることができる。
【0062】b)2以上の論理的に隣接する命令が単一
の異なる命令で置換えられる場合も、この置換を行う。
例えば、(本例における如く)処理ユニットが単一クロ
ック周期内に「乗加算」命令を行う能力があれば、論理
的に隣接する乗算及び加算命令は、結合して単一の乗加
算命令とする。ビットシフト命令を更にこれと併合して
複合乗加算シフト命令とすることができる。
【0063】この減少方法を図9に示す。同図は、図8
の部分を命令減少処理したものを示す。第1音声信号
(音声1)に施される連続的乗算及び加算を結合して、
単一の乗加算命令500としている。同様に、係数3に
よる乗算及び一定値の加算を結合して、単一の乗加算命
令510としている。
【0064】図10は、変数を遅延させたものを用いて
処理する方法を示す模式図である。この技法は、特定の
変数を発生して記憶し、それからあとで信号処理連鎖に
おいて当該変数の以前の値に対して操作を加える場合
に、適用する。
【0065】本例では、図7のステップ350で、この
タイプの状態が探索される。この状態が発生すると、前
述の2つの動作(即ち、変数の発生及び変数の遅延値の
あとでの使用)の実行命令を逆にし、遅延された変数を
必要とする動作を実際には、当該変数を発生する前に行
わせる。こうすると、その度毎に、該変数の以前に発生
されたものが使用されることになる。
【0066】この技法を図10に模式的に示す。同図
は、音声サンプル期間n及び次の音声サンプル期間n+
1の一部において処理ユニットp1により行われる処理
を示す。命令520で、所要の変数の前回の値が一時的
メモリ530から読出される。該変数の新しい値は、そ
れから命令540で発生され、メモリ530に記憶さ
れ、あとで音声サンプル期間n+1内の対応する命令5
20′で読出される。
【0067】これに対し、図11は、以前提案された信
号処理装置がこの問題をどのように処理したかを示す模
式図である。図11において、変数は、命令540で発
生され第1のメモリ(A)550に記憶される。該変数
の遅延されたものがそれから、命令560で第2のメモ
リ(B)570から読出される。該変数は、命令555
で第1メモリAから第2メモリBに転送される。
【0068】換言すると、以前提案された信号処理装置
では、変数の発生及び使用を逆の順序で行う本例に比
べ、2倍のメモリを必要とし、また、変数をメモリ間で
転送する余分の命令555をも必要とした。
【0069】
【発明の効果】以上説明したとおり、本発明によれば、
複数の並列処理ユニットをもつデジタル音声処理装置に
おいて異なる処理ユニットに効率よく処理タスクを配分
することができる。
【図面の簡単な説明】
【図1】本発明を用いうるデジタル音声ミキシング操作
卓の模式図である。
【図2】図1の操作卓において1音声チャンネルに加え
られるチャンネル処理の一部を示す模式図である。
【図3】図1の信号プロセッサを形成する信号処理アレ
イの模式図である。
【図4】図3の処理アレイの動作の例1を示す模式図で
ある。
【図5】図3の処理アレイの動作の例2を示す模式図で
ある。
【図6】図1の操作卓用の目的コードの作成を示す模式
フローチャートである。
【図7】図3の処理アレイ用の目的コードの作成及び配
分を示す模式フローチャートである。
【図8】図6のネットリストの一部の例を示すブロック
図である。
【図9】命令減少処理後の図8の部分を示すブロック図
である。
【図10】変数の遅延されたものを用いる信号処理方法
の例を示す模式図である。
【図11】変数の遅延されたものを用いる従来の信号処
理方法を示す模式図である。
【符号の説明】
p1〜p(m+3) 並列処理ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター チャールズ イースティ イギリス国 オックスフォード,フェアエ ーカーズ ロード 18 (72)発明者 ウィリアム エドマンド クランスタン ケンティッシュ イギリス国 オックスフォードシャー,チ ッピング ノートン,リーズ アプローチ 1

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数の音声チャンネルに処理作用を行う
    複数の並列処理ユニットを有するデジタル音声処理装置
    であって、該音声チャンネルの少なくともサブセットに
    ついて、該サブセット内の各チャンネルに対する所要の
    処理を1より多い上記処理ユニットにより順次行い、上
    記処理ユニットの少なくとも1つが1より多い上記音声
    チャンネルに対する夫々の処理作用を行う、上記デジタ
    ル音声処理装置
  2. 【請求項2】 各処理ユニットは夫々所定の一連の繰返
    されるデータ処理命令を実行し、該命令の列は、上記音
    声チャンネル内の音声データの各音声サンプル期間内に
    一度実行される請求項1の装置。
  3. 【請求項3】 各処理ユニットに対する上記命令の列
    は、条件付き分岐命令を含まない請求項2の装置。
  4. 【請求項4】 相互接続された処理ユニットのアレイを
    有する多重プロセッサ・データ処理装置のための目的コ
    ード生成方法であって、 (i)連続するデータ処理命令を含む原プログラムコー
    ドを生成するステップと、 (ii)上記原プログラムコードを、上記処理ユニットの
    アレイ内の処理ユニットの数より多い数の、複数の命令
    グループに分割するステップと、 (iii) 上記命令グループの対の間の所要データ転送量を
    検出するステップと、 (iv)上記グループの対を、検出された所要データ転送
    量が減少する順に並べるステップと、 (v)上記グループの対を上記の並べた順に結合する場
    合、結合されたグループのサイズが各処理ユニットによ
    って実行されうる命令の最大数を越えないとき、上記グ
    ループの対を上記並べた順に結合して結合されたグルー
    プを作り、該結合されたグループがグループ全体の合計
    所要データ転送量における最大の減少を与えるようにす
    るステップとを含む、上記目的コード生成方法。
  5. 【請求項5】 更に (vi)結合されたグループの数が、使える処理ユニット
    の数より多いかどうかを検知するステップと、 (vii)結合されたグループを、結合された各グループ内
    の命令の数の順に並べるステップと、 (viii)命令の数が最も多いグループを命令の数が最も少
    ないグループと結合し、グループの数を、使える処理ユ
    ニットの数と等しいか又はそれより少なくなるように減
    らすステップとを含む請求項4の方法。
  6. 【請求項6】 連続するデータ処理命令を含む原プログ
    ラムコードを生成するステップと、 原プログラムコード内の、単一の命令で置換えうる論理
    的に隣接する命令のグループを検出するステップと、 検出された各命令グループを夫々単一の命令によって置
    換えるステップとを含む目的コード生成方法。
  7. 【請求項7】 検出された命令グループの各命令が2進
    シフト命令であり、 当該命令グループに対する夫々の単一命令がビットシフ
    ト命令である請求項6の方法。
  8. 【請求項8】 検出された命令グループが加算命令と論
    理的に隣接する乗算命令を含み、 当該命令グループに対する夫々の単一命令が乗加算命令
    を含む請求項6又は7の方法。
JP8070423A 1995-03-30 1996-03-26 デジタル音声処理装置及び該装置のための目的コード生成方法 Pending JPH08288768A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9506590:0 1995-03-30
GB9506590A GB2299422B (en) 1995-03-30 1995-03-30 Object code allocation in multiple processor systems

Publications (1)

Publication Number Publication Date
JPH08288768A true JPH08288768A (ja) 1996-11-01

Family

ID=10772200

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8070423A Pending JPH08288768A (ja) 1995-03-30 1996-03-26 デジタル音声処理装置及び該装置のための目的コード生成方法

Country Status (5)

Country Link
US (3) US5944814A (ja)
EP (1) EP0735708B1 (ja)
JP (1) JPH08288768A (ja)
DE (1) DE69637542D1 (ja)
GB (1) GB2299422B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (ja) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド コンピュータ・プロセッサ・アレイ

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2302743B (en) 1995-06-26 2000-02-16 Sony Uk Ltd Processing apparatus
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
GB2351890B (en) * 1999-07-06 2003-11-19 Sony Uk Ltd Method and apparatus for processing signals
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
US7383443B2 (en) * 2002-06-27 2008-06-03 Microsoft Corporation System and method for obfuscating code using instruction replacement scheme
US7617012B2 (en) * 2004-03-04 2009-11-10 Yamaha Corporation Audio signal processing system
US8249071B2 (en) 2004-03-26 2012-08-21 Harman International Industries, Incorporated Audio related system communication protocol
EP1612977A3 (en) * 2004-07-01 2013-08-21 Yamaha Corporation Control device for controlling audio signal processing device
US20060069457A1 (en) * 2004-09-24 2006-03-30 Texas Instruments Incorporated Dynamically adjustable shared audio processing in dual core processor
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US8812453B2 (en) * 2010-01-28 2014-08-19 Hewlett-Packard Development Company, L.P. Database archiving using clusters
WO2013010159A1 (en) * 2011-07-14 2013-01-17 Siemens Corporation Reducing the scan cycle time of control applications through multi-core execution of user programs

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2569071B1 (fr) * 1983-09-30 1988-10-14 Thomson Csf Dispositif de traitement numerique de signal
US4763255A (en) * 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
JPH01108638A (ja) * 1987-10-21 1989-04-25 Hitachi Ltd 並列化コンパイル方式
JP2749039B2 (ja) * 1987-11-06 1998-05-13 株式会社日立製作所 オブジェクト生成方法
JP2738692B2 (ja) * 1988-01-29 1998-04-08 株式会社日立製作所 並列化コンパイル方法
US5218710A (en) * 1989-06-19 1993-06-08 Pioneer Electronic Corporation Audio signal processing system having independent and distinct data buses for concurrently transferring audio signal data to provide acoustic control
US5091951A (en) * 1989-06-26 1992-02-25 Pioneer Electronic Corporation Audio signal data processing system
US5053986A (en) * 1990-02-21 1991-10-01 Stardent Computer, Inc. Circuit for preservation of sign information in operations for comparison of the absolute value of operands
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
GB2251964B (en) * 1991-01-15 1994-09-14 Sony Corp Processor arrays
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JP3088035B2 (ja) * 1991-12-18 2000-09-18 パイオニアビデオ株式会社 ディジタル信号プロセッサ
JP3252436B2 (ja) * 1992-03-25 2002-02-04 ソニー株式会社 デジタル信号処理システムの自己診断方法
US5325526A (en) * 1992-05-12 1994-06-28 Intel Corporation Task scheduling in a multicomputer system
JP3055316B2 (ja) * 1992-08-13 2000-06-26 ヤマハ株式会社 デジタル信号プロセッサ
US5539660A (en) * 1993-09-23 1996-07-23 Philips Electronics North America Corporation Multi-channel common-pool distributed data storage and retrieval system
JPH07110800A (ja) * 1993-10-13 1995-04-25 Matsushita Electric Ind Co Ltd 最適化並列コンパイル装置及び最適化並列コンパイル方法
GB2293468B (en) * 1994-09-21 1999-09-29 Sony Uk Ltd Data processing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008502029A (ja) * 2004-03-16 2008-01-24 テクノロジー プロパティーズ リミテッド コンピュータ・プロセッサ・アレイ
JP4856053B2 (ja) * 2004-03-16 2012-01-18 ブイエヌエス ポートフォリオ エルエルシー コンピュータ・プロセッサ・アレイ

Also Published As

Publication number Publication date
US5944814A (en) 1999-08-31
EP0735708A3 (en) 2000-03-29
GB2299422B (en) 2000-01-12
US6044223A (en) 2000-03-28
GB9506590D0 (en) 1995-05-17
EP0735708A2 (en) 1996-10-02
EP0735708B1 (en) 2008-05-28
GB2299422A (en) 1996-10-02
US5964865A (en) 1999-10-12
DE69637542D1 (de) 2008-07-10

Similar Documents

Publication Publication Date Title
JPH08288768A (ja) デジタル音声処理装置及び該装置のための目的コード生成方法
US6009507A (en) System and method for distributing processing among one or more processors
US4972314A (en) Data flow signal processor method and apparatus
US5842014A (en) System and method for distributing processing among one or more processors
US5715471A (en) Parallel computer
JPH07105021A (ja) 多重処理パイプラインデータ処理エミュレート方法
JPH05259847A (ja) ツリー型マルチプレクサの制御信号上のピーク負荷を軽減する方法および複数のセレクタによりマルチプレクサを構成する方法
CN110941602B (zh) 数据库的配置方法、装置、电子设备及存储介质
Hauck et al. Pin assignment for multi-FPGA systems
KR100474357B1 (ko) 다단계 분할을 이용한 기억소자 할당방법
Shen Self-adjusting mapping: a heuristic mapping algorithm for mapping parallel programs on to transputer networks
Dongarra et al. Matrix product on heterogeneous master-worker platforms
JPH08147234A (ja) ストリーム処理装置及び方法
Michalakes et al. Parallel implementation, validation, and performance of MM5
JP2021108104A (ja) 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法
Chen et al. An approximation approach of the standard clock method for general discrete-event simulation
JPH0954760A (ja) 信号処理装置
US5875116A (en) Logic division apparatus
EP0973090A2 (en) Random-number generating method and apparatus and storage medium therefor
CN114546393A (zh) 多任务程序编译方法及装置、多核芯片
CN112153135A (zh) 一种网络扫描方法、装置、设备及存储介质
Engels et al. Design of a processing board for a programmable multi-VSP system
Su et al. Matrix operations on a multicomputer system with switchable main memory modules and dynamic control
JPH08185384A (ja) ロードモジュール割り当て方法および割り当て装置
JP2728958B2 (ja) 演算処理装置及び方法