JP2003502753A - レジスタスタックを備えるデータプロセッサ - Google Patents

レジスタスタックを備えるデータプロセッサ

Info

Publication number
JP2003502753A
JP2003502753A JP2001503615A JP2001503615A JP2003502753A JP 2003502753 A JP2003502753 A JP 2003502753A JP 2001503615 A JP2001503615 A JP 2001503615A JP 2001503615 A JP2001503615 A JP 2001503615A JP 2003502753 A JP2003502753 A JP 2003502753A
Authority
JP
Japan
Prior art keywords
data
stack
instruction
logical operation
operation unit
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.)
Withdrawn
Application number
JP2001503615A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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
Priority claimed from US09/333,633 external-priority patent/US6405301B1/en
Application filed by Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2003502753A publication Critical patent/JP2003502753A/ja
Withdrawn 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 データプロセッサは、第1および第2の入力データ(OP1、OP2)に基づいて算術演算または論理演算を実行する論理演算ユニット(ALU)を備える。さらに、データプロセッサは、データを格納し、かつスタック内に特定の位置(P(1))を有するデータを第1の入力データ(OP1)として論理演算ユニット(ALU)に加えるスタック(STCK)を備える。データプロセッサは、複数の記憶場所(REG)の中の1つの記憶場所(REG(i))を指示するアドレス(ADDR)を含む命令(INSTR)を実行することができる。アドレス(ADDR)によって、アドレスが指示する記憶場所(REG(i))に含まれているデータが第2の入力データ(OP2)として論理演算ユニット(ALU)に加えられるようになる。

Description

【発明の詳細な説明】
【0001】 本発明は、スタックと協調する論理演算ユニットを用いたデータ処理に関する
。本発明は、例えば、様々な機能ユニットに制御データを供給するための、プロ
セッサの形をしたコントローラを備えるマルチメディア製品に適用することがで
きる。
【0002】 論理演算ユニット(ALU)は、一般的に、オペランドとも呼ばれる2つの入
力データに基づいて演算を実行して出力データを得る。ALUが実行する演算は
、一般に、ビットストリングの形をしたマイクロコードとも呼ばれる命令で定義
される。命令によって、ALUは、例えば加算Z=X+Yを実行することができ
る。ここでXとYは入力データを表し、Zは出力データを表す。また、命令によ
って、ALUは、AND、OR、NANDまたはNOR演算などの論理演算を行
うことができる。
【0003】 ALUは、スタックと協調することができる。スタックは記憶要素の集合体で
あり、各記憶要素はデータを含むことができる。ALUで直ぐに処理すべき入力
データは、一時的にスタックに格納される。ALUからの出力データも一時的に
スタックに格納することができる。スタックポインタは、一般に、スタック最上
部を構成する記憶要素を指示する。スタックに入れられるデータは、一般に、ス
タック最上部に書き込まれ、スタックから取り出されるデータも、一般に、スタ
ック最上部から読み出される。データのスタックへの書込みおよびスタックから
の読み出しは、以下でプッシングおよびポッピングと呼ぶ。一般に、ALUへの
入力データは、スタックからデータをポッピングすることで得られ、出力データ
は、スタックにデータをプッシングすることで格納される。このように動作する
プロセッサは、番号WO95/30954で公表された国際出願では、スタック
ベースのプロセッサと呼ばれている。
【0004】 本発明の目的は、コストの低減を可能にすることである。
【0005】 本発明によれば、データプロセッサは、第1および第2の入力データに基づい
て算術演算または論理演算を実行する論理演算ユニットを備える。データプロセ
ッサは、さらに、データを格納するスタックを備える。スタック内の特定の位置
を有するデータが、第1の入力データとして論理演算ユニットに加えられる。デ
ータプロセッサは、複数の記憶場所の中の1つの記憶場所を指示するアドレスを
含む命令を実行することができる。アドレスによって、アドレスが指示する記憶
場所に含まれているデータが、第2の入力データとして、論理演算ユニットに加
えられるようになる。
【0006】 本発明は、下記の態様を考慮する。スタックベースのプロセッサが算術演算ま
たは論理演算を実行するのに、一般に、特定の数のステップを必要とする。AL
Uによって実行される算術演算または論理演算それ自体が1つのステップを構成
する。所望の入力データがALUに加えられるようにするために、1つまたは複
数の追加のステップが必要になる可能性がある。そのような追加のステップには
、一般に、例えば、1つまたは複数のプッシュ動作またポップ動作、またはその
両動作の組合せのようなスタック操作が含まれる。基本的に、各ステップは少な
くとも1クロックサイクルを必要とする。したがって、スタックベースのプロセ
ッサが算術演算または論理演算を実行するには、一般に数クロックサイクルかか
る。すなわち、データ処理は遅くなる。したがって、比較的短い時間間隔内に一
連の算術演算または論理演算を実行する必要のあるスタックベースのプロセッサ
は、比較的高速な要素を使用して実現しなければならない。そのような実現は、
比較的高価になる。
【0007】 上記の速度の問題に対する解決策は、スタックベースのプロセッサの代わりに
、算術演算および論理演算を実行するレジスタベースのプロセッサを使用するこ
とである。レジスタベースのプロセッサでは、ALUの入力データは、スタック
の配列ではなくて、1組のレジスタに格納される。ALUの所望の入力データは
、2個のレジスタをアドレス指定することでその1組のレジスタから検索され、
その2個のレジスタの各々がALUに入力データを加える。それに応じて、レジ
スタベースのプロセッサの命令は、2つのアドレスフィールドで構成される。各
アドレスフィールドは、1組のレジスタの中の特定のレジスタを指示する値を含
んでいる。その結果、レジスタベースのプロセッサが所望の入力データをALU
に加えるのに、一般に、必要なクロックサイクルがスタックベースのプロセッサ
よりも少なくなる。したがって、レジスタベースのプロセッサは、スタックベー
スのプロセッサに比べて比較的遅い要素を使用して実現することができる。この
点で、レジスタベースのプロセッサはよりコスト効率の高い実現を可能にする筈
である。
【0008】 しかし、一連の算術演算および論理演算を定義するソフトウェアプログラムを
格納するために必要なメモリの量もまた、コストの点から、重要な役割を演ずる
。ソフトウェアプログラムが格納されるメモリが、主にはメモリ回路でない集積
回路の一部を形成するときに、特に、このことが当てはまる。そのような用途の
一例が、いわゆる組込みソフトウェアを格納するメモリを備える集積回路の形態
のディジタル信号プロセッサである。この種のメモリは比較的高価である。
【0009】 スタックベースかプロセッサベースか、どちらの型のプロセッサがメモリコス
トの点でより有利であるかは、必ずしも直ちには明らかでない。一方で、スタッ
クベースのプロセッサが算術演算または論理演算を実行するには、一般に、レジ
スタベースのプロセッサで同じことを行わせるよりも多くの命令が必要になる。
このようにして、レジスタベースのプロセッサは、命令の数の点でスタックベー
スのプロセッサよりも効率的である。他方で、レジスタベースのプロセッサの命
令は、スタックベースのプロセッサの命令よりも長い。この理由は、レジスタベ
ースのプロセッサは、上で説明したように2つのアドレスフィールドを含み、一
方で、スタックベースのプロセッサはアドレスフィールドを全く含まないことで
ある。したがって、命令の長さの点で、スタックベースのプロセッサがレジスタ
ベースのプロセッサよりも効率的である。スタックベースかレジスタベースかど
ちらの型のプロセッサが、特定の機能性に関して最もコンパクトなソフトウェア
プログラムを可能にするかは、とりわけ、機能性それ自体に依存している。
【0010】 本発明によれば、プロセッサは、スタックおよび機能的にレジスタと同等であ
る複数の記憶場所を備える。プロセッサは、次のように動作することができる。
スタック内の特定の位置を有するデータが、第1の入力データとしてALUに加
えられる。記憶場所(レジスタ)からのデータが、第2の入力データとしてAL
Uに加えられる。第2の入力データを供給する記憶場所は、命令中のアドレスを
用いてアドレス指定される。
【0011】 したがって、第2の入力データはスタック上にある必要がない。また、第2の
入力データはスタック上に特定の位置を持たなくてもよい。その結果、本発明に
よるプロセッサは、スタックベースのプロセッサよりも必要なスタック操作が少
ない。したがって、本発明によるプロセッサは、スタックベースのプロセッサよ
りも必要な命令が少なくなり、このことはメモリコストの点で有利である。さら
に、本発明によるプロセッサが算術演算または論理演算を実行するために必要な
クロックサイクルは、スタックベースのプロセッサよりも少ない。このことはコ
スト効率にさらに寄与する。
【0012】 さらに、本発明によるプロセッサは、1つのアドレスだけで構成される命令を
可能にする。したがって、本発明によるプロセッサは、レジスタベースのプロセ
ッサの命令よりも短い命令を可能にする。そのようにして、このことはメモリコ
ストの低減に寄与する。さらに、本発明によるプロセッサのソフトウェアプログ
ラムが必要とする命令は、一般に、レジスタベースのプロセッサの同様なソフト
ウェアプログラムよりもほとんど多くない。この理由は、算術演算または論理演
算の結果が、一般に、ALUに入力データを供給するスタックの位置に入れられ
こと、およびその算術演算および論理演算の結果が次の演算の入力を形成するこ
とが実際に多いということである。その結果、必要なスタック操作は比較的少な
くなる。
【0013】 以上のことをまとめると、本発明によるプロセッサは、命令の数の点で効率が
良く、また、命令の長さの点でも効率がよい。したがって、本発明は、比較的小
さなメモリに格納することができるコンパクトなソフトウェアプログラムを可能
にする。したがって、コスト効率性を可能にする。
【0014】 本発明のこれらの態様および他の態様は、図面を参照した以下の説明から明ら
かとなり、以下に説明される。
【0015】 次の説明は参照符号に関する。同様なエンティティは、全ての図で同様な参照
文字で示す。いくつかの類似のエンティティが、単一の図で現れる可能性がある
。その場合に、同様なエンティティを区別するために、数字または接尾辞を参照
文字に付加する。数字または接尾辞は、便宜上省略される可能性があり、または
、その価値が重要でない場合(価値に配慮する必要はない)、星印で置き換える
可能性がある。これは、説明並びに特許請求の範囲に当てはまる。
【0016】 図1は、本発明の基本的な特徴を実線で示す。データプロセッサは、第1およ
び第2の入力データ[OP1、OP2]に基づいて算術演算および論理演算を実行
する論理演算ユニット[ALU]を備える。データプロセッサはさらに、データを
格納するスタック[STCK]を備える。スタック内の特定の位置[P(1)]を有
するデータは、第1の入力データ[OP1]として論理演算ユニット[ALU]に加
えられる。データプロセッサは、複数の記憶場所[REG]の中の1つの記憶場所
[REG(i)]を指示するアドレス[ADDR]を含む命令[INSTR]を実行す
ることができる。アドレス[ADDR]によって、そのアドレスが指示する記憶場
所[REG(i)]に含まれているデータは、第2の入力データ[OP2]として論
理演算ユニット[ALU]に加えられるようになる。
【0017】 図1はさらに破断線で他の特徴を示す。様々なスタック位置[P]は複数の記憶
場所の一部を形成し、その複数の記憶場所はどれでも命令[INSTR]の中のア
ドレス[ADDR]で指示することができる。すなわち、スタック[STCK]はレ
ジスタメモリ空間に含めることができ、そのレジスタメモリ空間は命令[INS
TR]の中のアドレス[ADDR]を用いてアドレス指定することができる。した
がって、単一の命令を用いて、スタック最上部のデータおよびスタック内の任意
の他のデータに対する算術演算または論理演算を定義することができる。
【0018】 図1に示す特徴は、例えばマルチメディア装置のようなマルチプロセッサ装置
の一部を形成する制御プロセッサで、例えば、応用することができる。制御プロ
セッサは1組の命令を実行し、その1組の命令によって、制御プロセッサがマル
チプロセッサ装置に含まれた様々なプロセッサに制御データを加えるようになる
。その1組の命令は、全体的に、または部分的に、内部プログラムメモリに含ま
れる可能性がある。
【0019】 図2は上述した図1に示す特徴を合体するマルチメディア装置の例を示す。マ
ルチメディア装置は、コード化されたビデオデータを含む入力データINを処理
して、とりわけ、表示装置で表示するために適合されたビデオデータストリーム
VDSを供給する。マルチメディア装置は、主インタフェースMIF、主バスH
WY、中央処理ユニットCPU、主命令レジスタREGおよび様々な主プロセッ
サを備える。2つの主プロセッサ、すなわち、ビデオ復号器VDECおよびビデ
オ出力ユニットHDVOを示す。ビデオ出力ユニットHDVOは、マスタ制御プ
ロセッサMCPおよび次のデータ処理要素を備える。すなわち、インタフェース
IF、読み出しクロスバーXB/W、書込みクロスバーXB/R、メモリブロッ
クMB、プロセッサP、およびストリーミング方式出力回路SOを備える。スト
リーミング方式出力回路SOは、バッファBUF、マルチプレクサMUXおよび
コントローラCONを含む。各データ処理要素は、制御レジスタを有する。制御
レジスタは、図2には示さないが、図3に示すような構造を有する。すなわち、
制御レジスタは、前部レジスタおよび陰のレジスタを備える。
【0020】 マルチメディア装置は、基本的には、次のように動作する。中央処理ユニット
CPUは、主命令語を用いてマルチメディア装置の様々な要素を制御する。主イ
ンタフェースMIFは、例えば外部主メモリから入力データを取り出す。このメ
モリは図2に示されていない。ビデオ復号器VDECは、入力データINに含ま
れたコード化されたビデオデータを復号する。それに応じて、復号されたビデオ
データが得られ、その復号されたビデオデータは一時的に外部主メモリに格納さ
れる可能性がある。ビデオ出力ユニットHDVOは、復号されたビデオデータを
特定の表示装置で表示するために適合させる。さらに、ビデオ出力ユニットHD
VOは、復号されたビデオデータを他のビデオデータと組み合わせてピクチャイ
ンピクチャまたは混合のような特徴を付与する可能性がある。
【0021】 次に、ビデオ出力装置HDVOの動作をより詳細に説明する。ビデオ出力装置
HDVOは、設定ステップと処理ステップを交互に実行する。設定ステップでは
、マスタ制御プロセッサMCPは、データ処理要素の制御レジスタにロード指令
を供給する。各制御レジスタは、図3に示すように、前部レジスタと陰のレジス
タを備えることは上で述べた。このようにして、陰のレジスタは、ロード指令に
応答して前部レジスタに含まれた命令語をロードする。それに応じて、命令語に
よって、設定ステップの後に続く処理ステップ中で、関連するデータ処理要素の
動作が決定される。例えば、クロスバXB/WおよびXB/Rの陰のレジスタに
ロードされた命令語によって、一方で、メモリブロックMB間の接続、および、
他方で、インタフェースIF、ストリーミング方式出力回路SOとプロセッサP
の間の接続が決定される。制御レジスタの陰のレジスタが命令語をロードした時
に、制御レジスタは設定完了信号をマスタ制御プロセッサMCPに供給する。マ
スタ制御プロセッサMCPが全てのデータ処理要素の制御レジスタから設定完了
信号を受け取った時に、マスタ制御プロセッサMCPは処理開始信号をプロセッ
サPに供給する。処理開始信号は処理ステップの開始を示す。
【0022】 処理ステップで、各プロセッサPは、プロセッサPが接続されているメモリブ
ロックMBに格納された特定の数のピクセルを処理する。プロセッサPが処理ス
テップで処理するピクセルの数は、256より多くならない。処理すべきピクセ
ルの数は、例えば、命令語で定義される可能性がある。プロセッサPがピクセル
を処理している間に、マスタ制御プロセッサMCPは、データ処理要素の前部レ
ジスタに新しい命令語を書き込んで、新しいVLIWを構成することができる。
プロセッサPは処理すべき数のピクセルを処理すると、プロセッサPは処理を止
め、動作終了信号をマスタ制御プロセッサMCPに供給する。全てのプロセッサ
Pが動作終了信号をマスタ制御プロセッサMCPに供給した時に、処理ステップ
は終了する。対応して、マスタ制御プロセッサMCPは、新しい設定ステップを
実行する。
【0023】 それに応じて、ビデオ出力装置HDVOは、復号されたビデオデータをブロッ
ク的な方法で処理する。例えば、第1の処理ステップで、インタフェースIFは
、書込みクロスバXB/Wを介してメモリブロックMB1に256ピクセルのブ
ロックを書き込む。第2の処理ステップで、プロセッサP1は、メモリブロック
MB1から256ピクセルのブロックを読み出し、それを処理する。プロセッサ
P1は、例えば、水平ビデオフィルタである可能性がある。ここで水平ビデオフ
ィルタは、同じラインに属するいくつかのピクセルの重み付けされた組合せを作
る。それに応じて、プロセッサP1は、水平方向でフィルタ処理されたピクセル
のブロックを供給し、このブロックをメモリブロックMB2に書き込む。第3の
処理ステップで、プロセッサP2は、メモリブロックMB2から処理済の水平方
向でフィルタ処理されたピクセルのブロックを読み出し、それを処理する。プロ
セッサP2は、例えば、垂直ビデオフィルタである可能性がある。ここで垂直ビ
デオフィルタは、隣接するラインに属する対応するピクセルの重み付けされた組
合せを作る。水平方向でフィルタ処理されたピクセルのブロックが1つのライン
に属する場合、プロセッサ2は、隣接するラインに属する水平方向でフィルタ処
理されたピクセルの他のブロックを読み出す。それに応じて、プロセッサP2は
、水平および垂直方向でフィルタ処理されたピクセルのブロックを供給し、この
ブロックをメモリブロックMB3に書き込む。プロセッサP3またはP4、また
はその両方のプロセッサが、メモリブロックMB3に含まれた水平および垂直方
向でフィルタ処理されたピクセルのブロックをさらに処理する他の処理ステップ
がある可能性がある。例として、水平および垂直方向でフィルタ処理されたピク
セルのブロックは、ビデオデータストリームVDSの一部を形成するように準備
が完了していると仮定する。それに応じて、第4の処理ステップで、該当するブ
ロックがメモリブロックMB3からストリーミング方式出力回路SOのバッファ
BUFに転送される。
【0024】 ストリーミング方式出力回路SOは、一般に、処理ステップごとに処理された
ピクセルのブロックを受け取り、それをストリーミング方式出力回路SOのバッ
ファBUFに格納する。ストリーミング方式出力回路SOは、それのバッファB
UFから処理されたピクセルを読み出して、ビデオデータストリームVDSを供
給する。コントローラCONには、例えばライン周波数、フィールド周波数、ラ
イン当たりのピクセル数、およびフィールド当たりのライン数に関して、ビデオ
データストリームVDSの所望のフォーマットがわかっている。コントローラC
ONによって処理されたピクセルは正しい瞬間に、したがって所望のレートでバ
ッファBUFから読み出されるようになる。コントローラCONはさらにマルチ
プレクサMUXを制御する。ここでマルチプレクサMUXは、ピクセルおよびい
くつかの制御信号、例えば水平および垂直同期信号HS、VS受け取る。それに
応じて、適切な制御信号が正しい瞬間にピクセルの間に挿入される。
【0025】 実際上は、ビデオ出力ユニットHDVOは、データ処理要素、すなわちインタ
フェースIF、読み出しクロスバXB/W、書込みクロスバXB/R、メモリブ
ロックMB、プロセッサPおよびストリーミング方式出力回路SOで構成された
データ処理チェインである。マスタ制御プロセッサMCPは、データ処理チェイ
ンの構成を決定する。また、マスタ制御プロセッサMCPは、チェイン内の各要
素のデータ処理特性も決定する。マスタ制御プロセッサMCPは、適切な命令語
をデータ処理要素の制御レジスタに書き込むことで行う。言ってみれば、マスタ
制御プロセッサMCPは、様々な機械を備えた生産工場の職長と見なすことがで
きる。生産工場はビデオ出力ユニットHDVOに対応し、機械はビデオ処理ユニ
ットHDVO内のデータ処理要素に対応する。職長は、生産ラインを構成し、そ
こにある機械に為すべきことを命令する。生産ラインは、データ処理チェインに
対応する。
【0026】 ビデオ出力ユニットHDVOは、フレーム当たりのライン数およびライン当た
りのピクセル数に関して、単一のビデオ信号を1つのフォーマットから別のフォ
ーマットに変換しなければならないと仮定しよう。適切な水平方向および垂直方
向のフィルタ処理を備えるデータ処理チェインで、これを達成することができる
。フォーマット変換の始めに、データ処理チェインが完全に動作するようになる
前に、最初にデータ処理チェインをピクセルで満たさなければならない。フォー
マット変換の終りに、データ処理チェインを停止するか壊す前に、データ処理チ
ェインを空にしなければならない。
【0027】 例えば、変換すべきビデオ信号の第1のピクセルのブロックがビデオ出力ユニ
ットHDVOに供給された時に、データ処理チェインの始めにあるデータ処理要
素だけが活動状態でなければならない。その時に、メモリブロックMBは未だそ
のフレームのピクセルで満たされていない。各処理ステップとともに、ますます
多くのメモリブロックがピクセルで満たされ、ますます多くのデータ処理要素が
活動状態になる。これは、データ処理チェイン内の各メモリブロックMBがピク
セルで満たされるまで続く。それで、データ処理チェインは完全に動作する状態
になり、ストリーミング方式出力回路SOはピクセルを供給し始めることができ
る。
【0028】 図3は、ビデオ出力ユニットHDVOのプログラミング方法を示す。図3は、
マトリックスである。このマトリックスの縦の列はデータ処理要素を表す。もっ
と具体的に言えば、縦の列は、関係したデータ処理要素の陰のレジスタを表す。
マトリックスの行は、処理ステップPSを表す。マトリックスのセルは、命令語
を表す。VLIWはマトリックスの特定の行に属するセルの構成である。すなわ
ち、VLIWは、特定の処理ステップPSに対する命令語の構成である。VLI
Wは、関係したデータ処理要素が並列に実行すべき動作を定義する。
【0029】 マスタ制御プロセッサMCPは、様々な方法でVLIWを構成する可能性があ
る。例えば、マスタ制御プロセッサMCPは、各制御レジスタに命令語を書き込
んで、特定の処理ステップのためのVLIWを構成する可能性がある。しかし、
マスタ制御プロセッサMCPは、1つまたは複数の特定の制御レジスタに命令語
を書き込んで、VLIWを構成する可能性があるが、一方で、その他の制御レジ
スタに命令語を書き込まない。その他の制御レジスタは、それが前の処理ステッ
プで含んでいた命令語を保持している。
【0030】 図3に示すマトリックスは、例えばフレームの表示に対応する可能性がある。
処理ステップPS[1]は、フレームを表示するために実行される最初の処理ステ
ップであり、処理ステップPS[N]は最後の処理ステップである。例えば、フレ
ームは700ラインであり、ライン当たり1024ピクセルであると仮定しよう
。さらに、処理ステップで、一般に、256の出力ピクセルがストリーミング方
式出力回路に供給されると仮定しよう。このことは、一般に、ビデオ信号にライ
ン当たり4つの処理ステップPSがあることを意味し、その結果、フレーム当た
りに、700の処理ステップPSの4倍となる。これは、フレーム当たり280
0処理ステップ、すなわち、N=2800である。
【0031】 最初のいくつかの処理ステップPSは、フレームを表示するための初期設定段
階を構成し、最後のいくつかの処理ステップPSは、終了段階を構成する。上で
説明したように、処理チェインは、ステップごとに一杯に満たし、空にしなけれ
ばならない。このことは、初期設定段階および終了段階に、少なくとも1つのデ
ータ処理要素があり、そのデータ処理要素に対する1つの処理ステップの命令語
が次の処理ステップで異なる命令語に置き換えられることを意味している。この
ことはさらに、初期設定段階および終了段階に、処理ステップごとに異なるVL
IWがあることを意味している。初期設定段階と終了段階の間の処理ステップは
、また、様々な異なるVLIWを必要とする可能性がある。同じ処理チェインが
フレーム全体にわたって使用される場合、初期設定段階と終了段階の間の処理ス
テップ全体を通じて、単一のVLIWを使用することができる。例えば、ビデオ
出力ユニットHDVOが単一のビデオ信号を1つのフォーマットから別のフォー
マットに変換しさえすればよい場合が、これに相当する。
【0032】 図4は、ビデオ出力ユニットHDVOが表示装置に供給しなければならないフ
レームを示す。フレームは、主ピクチャMPICで構成され、その主ピクチャM
PICにサブピクチャSPICが挿入される。図4は、さらに、フレーム内の異
なるゾーンFZ1〜FZ6を示す。各フレームゾーンFZは、図2に示したマス
タ制御プロセッサMCPが実行する制御動作に関する特定の段階に関係している
【0033】 フレームゾーンFZ1で、マスタ制御プロセッサMCPは、主ピクチャを表示
するための処理チェインを構築する。フレームゾーンFZ2で、マスタ制御プロ
セッサMCPは、その処理チェインを維持する。フレームゾーンFZ2はXライ
ンで構成される。ここでXは整数である。フレームゾーンFZ3で、マスタ制御
プロセッサMCPは、主ピクチャMPICを表示するための処理チェインを壊し
、主ピクチャMPICとそこに挿入されるサブピクチャSPICを表示するため
の処理チェインを構築する。フレームゾーンFZ4で、マスタ制御プロセッサM
CPは、その主ピクチャMPICとそこに挿入されるサブピクチャSPICを表
示するための処理チェインを維持する。フレームゾーンFZ4はYラインで構成
される。ここでYは整数である。フレームゾーンFZ5で、マスタ制御プロセッ
サMCPは、主ピクチャMPICおよびそこに挿入されるサブピクチャSPIC
を表示するための処理チェインを壊し、再び主ピクチャMPICを表示するため
の処理チェインを構築する。フレームゾーンFZ6で、マスタ制御プロセッサM
CPは、その主ピクチャMPICを表示するための処理チェインを維持する。フ
レームゾーンFZ6はZラインで構成される。ここでZは整数である。
【0034】 図5は、マスタ制御プロセッサMCPが上で述べた制御動作を実行するために
、マスタ制御プロセッサMCPに供給される一連の主命令MI1〜MI8を示す
。主命令MI1によって、マスタ制御プロセッサMCPが内部メモリに格納され
ているサブルーチンSTRT_MAINを実行するようになる。主命令MI1は
、例えば、サブルーチンSTRT_MAINの開始アドレスである可能性がある
。サブルーチンSTRT_MAINの実行により、フレームゾーンFZ1に含ま
れる処理ステップのための一連のVLIWが生成される。処理ステップごとに、
異なるVLIWが生成され、ビデオ出力ユニットHDVOのデータ処理要素に供
給される。その一連のVLIWによって、主ピクチャを表示するための処理チェ
インが処理ステップごとに構築されるようになる。
【0035】 主命令MI2によって、マスタ制御プロセッサMCPが連続してサブルーチン
MAINをX回実行するようになる。すなわち、X×MAIN。サブルーチンM
AINの実行によって、VLIWが生成され、そのVLIWはラインに含まれる
処理ステップに適用される。それに応じて、このVLIWは、フレームゾーンF
Z2全体にわたって適用される。それによって、データ処理要素が主ピクチャM
PICを表示するために必要な処理を実行するようになる。
【0036】 主命令MI3によって、マスタ制御プロセッサMCPがサブルーチンEND_
MAINを実行するようになる。サブルーチンEND_MAINの実行によって
、フレームゾーンFZ3の上の部分に含まれる処理ステップのための一連のVL
IWが生成される。処理ステップごとに、異なるVLIWが生成され、ビデオ出
力ユニットHDVOのデータ処理要素に供給される。その一連のVLIWによっ
て、主ピクチャを表示するための処理チェインが処理ステップごとに壊されるよ
うになる。
【0037】 主命令MI4によって、マスタ制御プロセッサMCPが、サブルーチンSTR
T_PIPを実行するようになる。サブルーチンSTRT_PIPの実行によっ
て、フレームゾーンFZ3の下の部分に含まれる処理ステップのための一連のV
LIWが生成される。処理ステップごとに、異なるVLIWが生成され、ビデオ
出力ユニットHDVOのデータ処理要素に供給される。その一連のVLIWによ
って、サブピクチャSPICが挿入されている主ピクチャMPICを表示するた
めの処理チェインが処理ステップごとに構築されるようになる。
【0038】 主命令MI5によって、マスタ制御プロセッサMCPが、サブルーチンPIP
を続けてY回実行するようになる。すなわち、Y×PIP。サブルーチンPIP
の実行によって、VLIWが生成され、そのVLIWはラインに含まれる処理ス
テップに適用される。それに応じて、このVLIWがフレームゾーンFZ4全体
にわたって適用される。それによって、データ処理要素が、サブピクチャSPI
Cが挿入されている主ピクチャMPICを表示するために必要な処理を行うよう
になる。
【0039】 主命令MI6によって、マスタ制御プロセッサMCPが、サブルーチンEND
_PIPを実行するようになる。サブルーチンEND_PIPの実行によって、
フレームゾーンFZ5の上の部分に含まれる処理ステップのための一連のVLI
Wが生成される。処理ステップごとに、異なるVLIWが生成され、ビデオ出力
ユニットHDVOのデータ処理要素に供給される。その一連のVLIWによって
、サブピクチャSPICが挿入されている主ピクチャMPICを表示するための
処理チェインが処理ステップごとに壊されるようになる。
【0040】 主命令MI7によって、マスタ制御プロセッサMCPが、再び、上で述べたサ
ブルーチンSTRT_MAINを実行するようになる。主命令MI8によって、
マスタ制御プロセッサMCPが、サブルーチンMAINを連続してZ回実行する
ようになる。すなわち、Z×MAIN。サブルーチンMAINは、上で説明した
【0041】 既に述べたことであるが、言ってみれば、マスタ制御プロセッサMCPは、様
々な機械を備えた生産工場の職長と見なすことができる。生産工場はビデオ出力
ユニットHDVOに対応し、機械はビデオ出力ユニットHDVO内のデータ処理
要素に対応する。言わば、主命令MIは、職長が管理者から受け取る生産命令と
見なすことができる。職長は、生産命令を機械に対する命令に翻訳する。同時に
、したがって並列に伝えるべき命令を集めたものが、VLIWに対応する。
【0042】 主命令MI1は、製品Aの生産ラインを立ち上げる命令と見なすことができる
。主命令MI2は、この生産ラインで製品AのX個のサンプルを製造する命令と
見なすことができる。主命令MI3およびMI4は、製品Aの生産ラインを壊し
て、製品Bの生産ラインを立ち上げる命令と見なすことができる。主命令MI5
は、この生産ラインで製品BのY個のサンプルを製造する命令と見なすことがで
きる等である。
【0043】 図6は、図2に示したマスタ制御プロセッサMCPの実施を示す。マスタ制御
プロセッサMCPは、図2にも示した主バスHWYを介してビデオ出力ユニット
HDVOの外部の要素と通信する。例えば、マスタ制御プロセッサMCPは、主
バスHWYを介して主命令を受け取る可能性がある。マスタ制御プロセッサMC
Pは、制御バスCBUSを介してビデオ出力ユニットHDVO内のデータ処理要
素と通信する。例えば、マスタ制御プロセッサMCPは、制御バスCBUSを介
してデータ処理要素に命令語を送る可能性がある。マスタ制御プロセッサMCP
はさらに、接続XCを介してビデオ出力ユニットHDVO内のメモリブロックか
らデータを受け取り、またそれにデータを送ることができる。
【0044】 マスタ制御プロセッサMCPは、主バスインタフェースHWYINT、制御バ
スインタフェースCBUSINT、論理演算ユニットALU、プログラムカウン
タPCを含んだレジスタREGの集合、割込みユニットIUの集合、計算スタッ
クCSTCK,戻りスタックRSTCK、プログラムメモリPMEM、データメ
モリDMEM、および直接メモリアクセス回路DMACを備える。計算スタック
CSTCKおよび戻りスタックRSTCK各々はスタックポインタを有する。ス
タックポインタは、関係したスタック内のそれぞれの記憶要素の位置を定義する
。計算スタックCSTCK内のスタック最上部位置およびスタック第2位置は、
以下で、それぞれTOSおよびSOSと呼ぶ。戻りスタックRSTCKのスタッ
ク最上部位置およびスタック第2位置は、以下で、それぞれTORおよびSOR
と呼ぶ。
【0045】 マスタ制御プロセッサMCPは、基本的には、次のように動作する。プログラ
ムカウンタPCは、一般にクロックサイクルごとにインクリメントされるプログ
ラムカウント値を含む。プログラムカウント値は、プログラムカウンタPCに新
しいプログラムカウント値を書き込んで変更することができる。プログラムカウ
ント値は、マスタ制御プロセッサMCPに対する命令が格納されているプログラ
ムメモリPMEMのアドレスを構成する。これらの命令は、以下で、MCP命令
と呼ぶ。MCP命令は、論理演算ユニットALUが実行する演算を定義する。さ
らに、MCP命令は、下でより詳細に説明するように、戻りスタックおよび計算
スタックを制御する動作を定義する。上で説明したような、VLIWを生成する
サブルーチンは、1組のMCP命令で形成される。
【0046】 1組の命令は、次のようにしてプログラムメモリPMEMに格納することがで
きる。その1組の命令は、最初にマルチメディア装置の外の供給源から主バスH
WYを介してメモリブロックMBにロードされる。それから、その1組の命令、
またはそれの一部分は、接続XCを介してメモリブロックMBからプログラムメ
モリPMEMに複写される。プログラムメモリPMEMは、いくつかのバンクを
含む可能性がある。その場合、マスタ制御プロセッサMCPが他のバンクに含ま
れる命令を実行している間に、メモリブロックMBからバンクに命令を複写する
ことができる。
【0047】 命令は、次のようにしてメモリブロックMBに格納することができる。第1の
メモリブロックMB1が命令の最上位部分を含み、第2のメモリブロックMB2
が中間位部分を含み、第3のメモリブロックMB3が最下位部分を含み、各部分
が、例えば8ビットで構成される。これらの部分がプログラムメモリPMEMに
転送される時に、それらの部分はいわば互いに結合されて、24ビットで構成さ
れる命令を形成する。留意すべきことであるが、命令が格納されているメモリブ
ロックMBは、処理すべきデータが格納されているメモリブロックMBに追加さ
れている可能性がある。すなわち、マルチメディア装置は、メモリブロックの組
をいくつか含む可能性がある。例えば、データ用の組と制御用の別の組であり、
メモリブロックの各組がそれ自身のクロスバを有している。
【0048】 下記のものはMCP命令用の構文の例である。MCP命令は、24ビットb2
3〜b0で構成される。ビットb23は、MCP命令が無条件のものか条件付き
のものかを定義する。MCP命令のビットb23が値0(ゼロ)である場合、M
CP命令は無条件である。無条件のMCP命令は常に実行される。MCP命令の
ビットb23が値1である場合、MCP命令は条件付きである。条件付きMCP
命令は、特定のレジスタの最下位ビットが値0(ゼロ)である場合にだけ実行さ
れる。ビットb22、b21およびb12は、異なる型のMCP命令の相違を識
別するために使用される。どのような型のMCP命令も、無条件か条件付きかで
ある可能性がある。MCP命令のビットb22が値1である場合、MCP命令は
型0の命令である。型0の命令は、例えばレジスタである可能性がある内部記憶
場所に、データを書き込む役目をする。型0の命令のビットb21〜b12は、
書き込むべきデータを構成する。ビットb11〜b0は、データを書き込むべき
記憶場所のアドレスを定義する。記憶場所が10ビットよりも大きなサイズであ
る場合、データは符号拡張される。
【0049】 ビットb22およびb21が両方ともゼロ(0)である場合、MCP命令は、
型1の命令か型1Aの命令かいずれかである。型1および型1Aの命令は、デー
タを処理する役目をする。さらにビットb12が値ゼロ(0)である場合、MC
P命令は型1の命令である。型1の命令のビットb11〜b0は、アドレスを定
義する。このアドレスに格納されたデータは、論理演算ユニットALUの入力デ
ータを形成する。ビット12が値1である場合、MCP命令は型1Aの命令であ
る。型1Aの命令のビットb11〜b0はデータを表す。このデータは、論理演
算ユニットALUの入力データを形成する。データが論理演算ユニットに供給さ
れる前に、データは、16ビット2進語を形成するように符号拡張される可能性
がある。
【0050】 型1または型1Aの命令は、ビットb20〜b17で形成される演算コード部
分を含む。論理演算ユニットALUが入力データに基づいてどの処理演算を実行
し、この処理演算の結果をどこに格納するかに関して、演算コード部分が演算を
決定する。結果は、TOSに書き込まれるかプログラムカウンタPCに書き込ま
れるかいずれかである。型1の命令に関して16の異なる演算があり、また型1
Aの命令に関しても16の異なる演算がある。例えば、演算は入力データとTO
Sの内容とのANDの組合せを作り、このAND組合せの結果をTOSに書き込
んでいる。他の演算は、NOR、XOR、NAND、OR、XNORの組合せを
作ることができる。
【0051】 ビットb22が値ゼロ(0)であり、ビットb21が値1である場合、MCP
命令は型2の命令である。型2の命令は、データを転送する役目をする。型2の
命令は、ビットb20〜b17で形成される転送制御部分を含む。転送制御部分
は、転送すべきデータの供給源および宛先を定義する。より具体的には、ビット
b18〜b17は供給源を定義し、ビットb20〜b19はデータの宛先のアド
レスを定義する。データの供給源は4つある。すなわち、TOS、SOS、TO
R、またはプログラムカウンタPCである。宛先のアドレスは4つある。すなわ
ち、TOSの内容、SOSの内容、索引値が付加された、または索引値が付加さ
れていないMCP命令自体のb11〜b0である。
【0052】 型0、型1および型1Aの命令は、主に、図2に示したビデオ出力ユニットH
DVO内のデータ処理要素に対する命令語を生成する役目をする。型2のデータ
命令は、主に、このようにして生成された命令語をデータ処理要素の制御レジス
タに転送する役目をする。型1AのMCP命令は、いわば、エクスポートMCP
命令である。
【0053】 型1、1Aおよび2のMCP命令は、ビットb16〜b13で形成されたスタ
ック制御部分を含む。計算スタックCSTCKは、ビットb16〜b15に依存
して制御され、戻りスタックRSTCKはビットb14〜b13に依存して制御
される。計算スタックCSTCKには4つの制御動作があり、戻りスタックRS
TCKには4つの制御動作がある。ビットb16〜b15およびビットb14〜
b13の値が、それぞれの4つの制御動作のうちのどれを実行するかを決定する
【0054】 図7は、上で述べた様々な型のMCP命令とこれらの命令に含まれたビットb
23〜b21およびb12との間の関係を示す。図7において、参照文字は様々
な型のMCPを指定するために使用する。すなわち、UNCONDは無条件命令
を指定し、CONDは条件付き命令を指定し、TP0、TP1、TP1Aおよび
TP2はそれぞれ型0、型1、型1A、および型2の命令を指定する。図7はさ
らに、型0、型1、型1A、および型2の4つのMCP命令の性質を示す参照文
字を含む。型0の命令は、データを書き込む役目WRTをする。型1の命令は、
内部メモリからデータを読み出し、このデータを処理する役目RD&PROCを
する。型1Aの命令は、命令に含まれたデータを処理する役目をする。すなわち
、データを直ちに処理する役目IPROCをする。型2の命令は、データを転送
する役目TRNSFRをする。図7はさらに、演算コード部分OPC、転送制御
部分WOPC、およびスタック制御部分STCを示す参照文字を含む。
【0055】 上に述べたように、ビットb16、b15は計算スタックCSTCKに対する
4つの制御動作を定義する。Nop、Cpy、PshおよびPopの制御動作が
る。Nop制御動作は、計算スタックRSTCKを変えない。Cpy制御動作は
、TOSの内容をSOSに複写する。この複写は、論理演算ユニットALUが命
令を実行する前に行われる。Psh制御動作は、スタックポインタをインクリメ
ントする。その結果、命令前にTOSである記憶要素は、命令後にSOSになる
。命令前にTOSである記憶要素の内容は、命令後にTOSである記憶要素にデ
フォルトで複写される。このようにして、命令前の内容TOSは命令後のTOS
の内容である。しかし、命令によって、論理演算ユニットALUがTOSにデー
タを書き込む場合、命令後のTOSの内容はそのデータとなる。Pop制御動作
は、スタックポインタをディクリメントする。その結果、命令前にSOSである
記憶要素は、命令後にTOSになる。
【0056】 上で述べたように、ビットb14、b13は、戻りスタックRSTCKに対す
る4つの制御動作を定義する。Rnop、Rpc、RpshおよびRpopの制
御動作がある。Rnop動作は、戻りスタックRSTCKを変えない。制御動作
Rpcは、スタックポインタをインクリメントする。定数値がプログラムカウン
ト値に加えられ、この加算の結果がTORに複写される。定数値は実施に依存し
ている。Rpsh動作は、スタックポインタをインクリメントする。その結果、
命令前にTORである記憶要素が、命令後にSORになる。命令前にTOSであ
る記憶要素に含まれたデータは、戻りスタックRSTCKにデフォルトでプッシ
ュされる。すなわち、命令後のTORの内容は、命令前のTOSの内容である。
しかし、命令によって、論理演算ユニットALUがTORにデータを書き込む場
合、命令後のTORの内容はそのデータとなる。Rpop制御動作はスタックポ
インタをディクリメントする。その結果、命令前にSORであるスタック内の記
憶要素は命令後にTORになる。すなわち、命令後のTORの内容は、命令前の
SORの内容である。
【0057】 基本的に、上で述べたスタックに関係したどのような制御動作も、型1および
1Aの命令の演算コード部分に定義された演算と無関係に実行される。また、ど
のようなスタックに関係した制御動作も、型2の命令の転送制御部分に定義され
たデータ転送と無関係に実行される。このようにして、非常に多くの組合せが可
能になる。
【0058】 計算スタックCSTCKおよび戻りスタックRSTCKは、両方とも次の規則
に従って制御される。スタックポインタは、論理演算ユニットALUが関係した
命令を実行する前にインクリメントされるが、一方でスタックポインタは、論理
演算ユニットALUが命令を実行した後でディクリメントされる。このようにし
て、ポップ型命令が直ぐ後に続くプッシュ型命令では、スタックポインタはもと
のままになっている。スタック制御は、1つのスタック位置から別のスタック位
置にデータを複写することを含む場合、複写されたデータは、常に、命令前にそ
のスタック位置に含まれていたデータである。
【0059】 マスタ制御プロセッサMCPが命令を実行する時に、論理演算ユニットALU
があるスタック位置に書き込もうとするが、一方で命令のスタック制御部分が同
じスタック位置に書き込もうとするということが起こる可能性がある。その場合
には、競合がある。論理演算ユニットALUが優先権を持つことで、競合は解決
される。論理演算ユニットALUの出力データは、関係したスタック位置に書き
込まれる。どのような場合も、競合の場合でも、スタックポインタは、命令のス
タック制御部分に従って修正される。
【0060】 計算スタックCSTCKおよび戻りスタックRSTCKが、それぞれMCP命
令のビットb16、b15およびb14、b13に応答して、上に述べたように
動作することは、様々な方法で達成することができる。例えば、先入れ後出し(
FILO)メモリとして構成された記憶要素で、各スタックが形成される可能性
がある。そのようなメモリは、一般に、クロックの正または負のエッジに応答し
て、それが含むデータを1位置だけシフトする。データがシフトされる方向は、
一般に、FILOメモリの制御入力に加えられた制御データで定義される。命令
内の関係したビットから適切な制御データを引き出すためには、一般に、比較的
簡単な論理回路で十分である。
【0061】 図8は、マスタ制御プロセッサMCPが命令を実行する方法を示す。図8は、
水平方向の次元が時間を表し、垂直方向の次元が命令INSTRを表す図である
。命令INSTRは、8つの異なるステップS1〜S8で実行される。各ステッ
プは、クロックサイクルCCに対応する。したがって、命令を完全に実行するの
に8クロックサイクルかかる。マスタ制御プロセッサMCPは、クロックサイク
ルごとに新しい命令を実行し始める。このようにして、任意のクロックサイクル
で、マスタ制御プロセッサMCPは異なるステップを並列に実行する。ここで各
ステップは異なる命令に属している。
【0062】 ステップS1で、マスタ制御プロセッサMCPは命令を取り出す。プログラム
が読み出されるのは、このステップである。ステップS2で、命令が復号される
。ステップS3で、論理演算ユニットALUの入力データが、内部記憶要素から
読み出される。ステップS4は、内部データの遅延である。ステップS5で、算
術演算または論理演算が、命令に定義されるように実行される。ステップS6で
、算術演算または論理演算の結果が内部記憶要素に書き込まれる。TOSが効率
的に書き戻しされるのは、このステップである。さらに、プログラムカウンタが
更新される。ステップS7は遅延である。ステップS8で、どのようなデータも
制御バスCBUSに効率的に加えることができる。その制御バスCBUSは、マ
スタ制御プロセッサMCPを、マルチメディア装置に含まれた様々なデータプロ
セッサに結合する。
【0063】 マスタ制御プロセッサMCPは、スタック書込みのための必要なパイプライン
段およびバイパスを備えて、余分な待ちサイクルを追加することなくスタック命
令が次から次へと実行されるようにする。例えば、算術演算または論理演算の結
果を、次の算術演算または論理演算にTOSデータとして使用することができる
ように、マスタ制御プロセッサMCPは、論理演算ユニットALUの出力と入力の
間にデータ転送経路を備える。同様なデータ経路は戻りスタックに使用される。
【0064】 MCP命令によって、図6に示した直接メモリアクセス回路DMACが直接メ
モリアクセスセッションを実行するようになる可能性がある。直接メモリアクセ
スセッションで、直接メモリアクセス回路DMACは、メモリに含まれた命令語
のブロックを、図4に示したビデオ出力ユニットHDVO内の様々なデータ処理
要素の制御レジスタに自動的に転送する。MCP命令は、直接メモリアクセスセ
ッションの開始アドレスおよびモードを定義する。3つの異なる直接メモリアク
セスモードがある。
【0065】 第1の直接メモリアクセスモードで、直接メモリアクセス回路DMACは、連
続したアドレスを有する一並びの制御レジスタに命令語を書き込む。そのブロッ
クの第1の命令語は、開始アドレスがアドレスである制御レジスタに書き込まれ
、第2の命令語は、開始アドレスに1を足したものがアドレスである制御レジス
タに書き込まれるなどである。
【0066】 第2の直接メモリアクセスモードで、直接メモリアクセス回路DMACは最初
にテンプレートを読み出す。テンプレートは2進語であり、その2進語の各ビッ
トは、連続したアドレスを有する一並びの制御レジスタの異なる制御レジスタに
対応する。並びは開始アドレスから始まる。実際には、直接メモリアクセス回路
DMACはテンプレートをビットごとに読み出し、そのブロックの第1の命令語
を、値が1である第1の読み出しビットに対応する制御レジスタに書き込み、第
2の命令語を、値が1である第2の読み出しビットに対応する制御レジスタに書
き込むなどである。
【0067】 第3の直接メモリアクセスモードで、直接メモリアクセス回路DMACは、命
令語を制御レジスタに書き込む前に、オフセット値を読み出す。命令語は、前に
書き込まれた制御レジスタのアドレスにオフセット値を足したものがアドレスで
ある制御レジスタに書き込まれる。ブロックの第1の命令語は、開始アドレスに
最初の読み出しオフセット値を足したものがアドレスである制御レジスタに書き
込まれる。
【0068】 マスタ制御プロセッサMCPは、好ましくは、直接メモリアクセス回路DMA
Cを使用して、前のVLIWと大きく異なるVLIWを構成するか、または、前
のVLIWが無い場合、例えば直接メモリアクセスセッションを使用してビデオ
出力ユニットHDVOを初期設定することができる。直接メモリアクセスセッシ
ョンによって、マスタ制御プロセッサMCPそれ自体が比較的多くの命令語を制
御レジスタに書き込む必要がなくなる。マスタ制御プロセッサMCPは、いわば
、このタスクを直接メモリアクセス回路DMACに委託する。そのとき、直接メ
モリアクセス回路DMACは、制御バスCBUSを使用して命令語を制御レジス
タに書き込む。このようにして、直接メモリアクセスセッションの間に、マスタ
制御プロセッサMCP内のその他の要素は、制御バスCBUSをアクセスするこ
とができない。
【0069】 マスタ制御プロセッサMCPは、直接メモリアクセス回路DMACを使用して
、前のVLIWに似ているVLIWを構成する必要はない。そのような非常に良
く似ているVLIWは、比較的少ない制御レジスタの内容を修正することで構成
することができる。そのとき、マスタ制御プロセッサMCPは、新しい命令語を
適切な制御レジスタに直接書き込むことができる。
【0070】 このようにして、プログラミングの観点から、VLIWを構成する2つの方法
がある。第1の方法では、1つまたは複数のMCP命令を使用して、マスタ制御
プロセッサMCPが新しい命令語を特定の制御レジスタに書き込むようにする。
この方法は、非常に良く似たVLIWを構成するために適用するのが好ましい。
第2の方法では、MCP命令を使用して、マスタ制御プロセッサMCPが直接メ
モリアクセスセッションを開始するようにする。この方法は、前のVLIWと相
当に異なるVLIWを構成するために、またはビデオ出力回路ユニットHDVO
を初期設定するために使用するのが好ましい。
【0071】 図6に示したマスタ制御プロセッサMCPは、様々な方法で実現することがで
きる。マスタ制御プロセッサMCPは、一般に、命令復号器を備える。さらに、
マスタ制御プロセッサMCPは、様々なデータ経路に配列されたマルチプレクサ
を備えて、入力データを論理演算ユニットALUに加え、さらに、論理演算ユニ
ットALUから出力データを、例えばスタック最上部のような記憶要素に転送す
ることができる。例えば、論理演算ユニットALUの各入力にマルチプレクサが
あり、さらにその出力にマルチプレクサがある可能性がある。入力データの様々
な可能な供給源、すなわち、スタックの最上部、スタックの第2番目、および複
数のレジスタの各々が、論理演算ユニットの入力のマルチプレクサに結合される
。マルチプレクサは命令復号器で制御されるので、命令の型および命令に含まれ
たデータに依存して、供給源の1つが論理演算ユニットの入力に結合される。こ
のようにして、このマルチプレクサを制御する信号は、論理演算ユニットALU
に加えられる命令に基づいて生成される。前記の信号は、例えば、選択信号とし
て命令の演算コードビットb3〜b0およびb12を受け取り、かつ選択すべき
信号の1つとしてビットb11〜b0を受け取る別のマルチプレクサで生成され
る可能性がある。選択すべき別の信号は、ビットb11〜b0に索引を付けるこ
とで形成される可能性がある。
【0072】 図面および上の説明は本発明を限定するものではなく、例証するものである。
添付の特許請求の範囲に含まれる多数の代替え物があることは明らかである。こ
の点に関して、次の末尾の説明を行う。
【0073】 図1に示した命令語構成ソフトウェアIWCSは、例えば、メモリに含まれる
可能性がある。それは、工場でメモリに書き込まれている可能性がある。しかし
、使用者が命令語構成ソフトウェアIWCSを情報担体からメモリに複写するこ
とも可能である。したがって、使用者は、図1に示したデータ処理構成DPAに
特定の機能を実行させることができる。命令語構成ソフトウェアIWCSを含む
情報担体は、例えば、ディスクである可能性がある。また、命令語構成ソフトウ
ェアは、例えばインターネットのような通信ネットワークを介して入手すること
ができる。
【0074】 様々なユニットにわたる物理的拡張機能または機能要素の方法は数多くある。
この点で、図面は非常に模式的であり、各々の図面は本発明の1つの可能な実施
形態を表すにすぎない。したがって、図面は異なる機能要素を異なるブロックと
して示すが、このことは、いくつかの機能要素または全ての機能要素を単一の物
理ユニットとして実現することを決して除外するものではない。
【0075】 特許請求項のどのような参照符号もその請求項を限定するものとして解釈すべ
きではない。
【図面の簡単な説明】
【図1】 請求項1で請求されるような本発明の基本的な特徴並びに請求項2で請求され
るようなその他の特徴を説明する概念図である。
【図2】 本発明によるマルチメディア装置の例を説明するブロック図である。
【図3】 図2に示したマルチメディア装置のビデオ出力ユニットのプログラミング方法
を説明するマトリックスである。
【図4】 ビデオ出力ユニットが表示装置に供給しなければならないフレームを説明する
概念図である。
【図5】 ビデオ出力ユニットのマスタ制御プロセッサに供給される一連の主命令を説明
する流れ図である。
【図6】 マスタ制御プロセッサの実施を説明するブロック図である。
【図7】 マスタ制御プロセッサのための様々な型の命令と、これらの命令に含まれたビ
ットとの関係を説明する図である。
【図8】 マスタ制御プロセッサが命令を実行する方法を説明する図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),CN,JP,K R Fターム(参考) 5B022 AA00 BA10 CA01 CA03 FA01 FA12 5B033 BE00 DE00 DE01

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1および第2の入力データに基づいて算術演算または論理演算を実行する論
    理演算ユニットと、データを格納し、かつスタック内の特定の位置を有するデー
    タを前記第1の入力データとして前記論理演算ユニットに加える前記スタックと
    を備えるデータプロセッサであって、 前記データプロセッサが、複数の記憶場所の中の1つの記憶場所を指示するア
    ドレスを含む命令を実行するように構成され、前記アドレスによって、前記記憶
    場所に含まれたデータが、前記第2の入力データとして前記論理演算ユニットに
    加えられることを特徴とするデータプロセッサ。
  2. 【請求項2】 様々なスタック位置が、前記複数の記憶場所の一部を形成し、その前記複数の
    記憶場所のどれでも前記命令内の前記アドレスで指示することができることを特
    徴とする、請求項1に記載のデータプロセッサ。
  3. 【請求項3】 第1および第2の入力データに基づいて算術演算または論理演算を実行する論
    理演算ユニットと、 データを格納し、かつスタック内の特定の位置を有するデータを前記第1の入
    力データとして前記論理演算ユニットに加える前記スタックとを備えるデータプ
    ロセッサによるデータ処理の方法であって、 複数の記憶場所の中の1つの記憶場所を指示するアドレスを含む命令を実行す
    るステップを含み、前記アドレスによって、前記記憶場所に含まれたデータが、
    前記第2の入力データとして前記論理演算ユニットに加えられる方法。
  4. 【請求項4】 第1および第2の入力データに基づいて算術演算または論理演算を実行する論
    理演算ユニットと、 データを格納し、かつスタック内の特定の位置を有するデータを前記第1の入
    力データとして前記論理演算ユニットに加える前記スタックとを備えるデータプ
    ロセッサのためのコンピュータプログラム製品であって、 前記コンピュータプログラム製品が、複数の記憶場所の中の1つの記憶場所を
    指示するアドレスを含む命令を含み、前記命令が実行される時に、前記命令によ
    って、データプロセッサが、前記記憶場所に含まれたデータを前記第2の入力デ
    ータとして前記論理演算ユニットに加えるコンピュータプログラム製品。
  5. 【請求項5】 制御データを様々な機能ユニットに供給するコントローラを備えるマルチメデ
    ィア装置であって、前記コントローラが、 第1および第2の入力データに基づいて算術演算または論理演算を実行する論
    理演算ユニットと、 データを格納し、かつスタック内の特定の位置を有するデータを前記第1の入
    力データとして前記論理演算ユニットに加える前記スタックとを備え、前記コン
    トローラが、複数の記憶場所の中の1つの記憶場所を指示するアドレスを含む命
    令を実行するように配列され、前記アドレスによって、前記記憶場所に含まれた
    データが前記第2の入力データとして前記論理演算ユニットに加えられることを
    特徴とするマルチメディア装置。
JP2001503615A 1999-06-15 2000-06-13 レジスタスタックを備えるデータプロセッサ Withdrawn JP2003502753A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/333,633 1999-06-15
US09/333,633 US6405301B1 (en) 1999-06-15 1999-06-15 Parallel data processing
US09/584,812 US6564312B1 (en) 1999-06-15 2000-05-31 Data processor comprising an arithmetic logic unit
US09/584,812 2000-05-31
PCT/EP2000/005461 WO2000077622A1 (en) 1999-06-15 2000-06-13 Data processor comprising a register stack

Publications (1)

Publication Number Publication Date
JP2003502753A true JP2003502753A (ja) 2003-01-21

Family

ID=26988828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001503615A Withdrawn JP2003502753A (ja) 1999-06-15 2000-06-13 レジスタスタックを備えるデータプロセッサ

Country Status (7)

Country Link
US (1) US6564312B1 (ja)
EP (1) EP1104558A1 (ja)
JP (1) JP2003502753A (ja)
KR (1) KR20010072490A (ja)
CN (1) CN1151432C (ja)
TW (1) TW476887B (ja)
WO (1) WO2000077622A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327078A (ja) * 2004-05-14 2005-11-24 Matsushita Electric Ind Co Ltd レジスタ設定方法及びレジスタ設定装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2420785C (en) * 2000-08-31 2012-07-17 Hajime Seki Computer system for processing instructions each containing a group of operations to be executed out of order
KR100602374B1 (ko) * 2000-08-31 2006-07-14 어보브반도체 주식회사 스택 구조를 사용하여 코드 집적도를 높인 리스크 프로세서
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
US7844804B2 (en) * 2005-11-10 2010-11-30 Qualcomm Incorporated Expansion of a stacked register file using shadow registers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522051A (en) 1992-07-29 1996-05-28 Intel Corporation Method and apparatus for stack manipulation in a pipelined processor
WO1998021655A1 (en) 1996-11-13 1998-05-22 Paran, Arik Real time program language accelerator
DE69734093D1 (de) * 1996-12-31 2005-10-06 Metaflow Technologies Inc System zur Ausführung von Gleitkommaoperationen
US5859998A (en) 1997-03-19 1999-01-12 Advanced Micro Devices, Inc. Hierarchical microcode implementation of floating point instructions for a microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327078A (ja) * 2004-05-14 2005-11-24 Matsushita Electric Ind Co Ltd レジスタ設定方法及びレジスタ設定装置

Also Published As

Publication number Publication date
CN1151432C (zh) 2004-05-26
KR20010072490A (ko) 2001-07-31
US6564312B1 (en) 2003-05-13
EP1104558A1 (en) 2001-06-06
TW476887B (en) 2002-02-21
WO2000077622A1 (en) 2000-12-21
CN1320235A (zh) 2001-10-31

Similar Documents

Publication Publication Date Title
US6662292B1 (en) Memory access system
US9032185B2 (en) Active memory command engine and method
US6816961B2 (en) Processing architecture having field swapping capability
JP3592230B2 (ja) データ処理装置
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US20020188830A1 (en) Bit replacement and extraction instructions
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US7383419B2 (en) Address generation unit for a processor
US6175910B1 (en) Speculative instructions exection in VLIW processors
US6542989B2 (en) Single instruction having op code and stack control field
US5307300A (en) High speed processing unit
EP0521486B1 (en) Hierarchical structure processor
JP2003502753A (ja) レジスタスタックを備えるデータプロセッサ
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
EP1088266B1 (en) Parallel data processing
US7024540B2 (en) Methods and apparatus for establishing port priority functions in a VLIW processor
JPH1165840A (ja) 演算処理装置およびその方法
US6405301B1 (en) Parallel data processing
US7107478B2 (en) Data processing system having a Cartesian Controller
JPH1165841A (ja) 演算処理装置およびその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070611

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080529

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090902