JP2000207202A - 制御装置およびデ―タ処理装置 - Google Patents

制御装置およびデ―タ処理装置

Info

Publication number
JP2000207202A
JP2000207202A JP11307684A JP30768499A JP2000207202A JP 2000207202 A JP2000207202 A JP 2000207202A JP 11307684 A JP11307684 A JP 11307684A JP 30768499 A JP30768499 A JP 30768499A JP 2000207202 A JP2000207202 A JP 2000207202A
Authority
JP
Japan
Prior art keywords
data processing
instruction
code
dedicated
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.)
Pending
Application number
JP11307684A
Other languages
English (en)
Inventor
Tomomi Sato
友美 佐藤
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.)
Pacific Design Inc
Original Assignee
Pacific Design Inc
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/287,565 external-priority patent/US6301650B1/en
Application filed by Pacific Design Inc filed Critical Pacific Design Inc
Priority to JP11307684A priority Critical patent/JP2000207202A/ja
Publication of JP2000207202A publication Critical patent/JP2000207202A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 リアルタイム性が要求される処理を高速で実
行可能であり、さらに、変更あるいは拡張などにフレキ
シブルに対処できる制御装置を提供する。 【解決手段】 専用回路を用いた処理を実行可能な専用
データ処理ユニット(VU)31と、汎用データ処理ユ
ニット(PU)32と、これらに対し共通のフェッチユ
ニット21を備えたマイクロコード制御方式の制御装置
10を提供する。この制御装置10では、マイクロコー
ドで記述された専用命令および汎用命令により命令コー
ドレベルで専用データ処理ユニット31と汎用データ処
理ユニット32を同期制御することが可能であり、回路
規模を大きくすることなく、それらのユニットにおいて
多重処理を行うことができる。このため、開発費用など
を含めたコストパフォーマンスが高く、リアルタイム性
が要求される処理に適した高速処理用の制御装置および
これを用いたデータ処理装置を提供できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコードに
より制御される制御装置に関し、特に、リアルタイム性
の要求される通信装置や復号装置・符号化装置などのデ
ータ処理装置に適した制御装置、それに適した命令コー
ドおよび制御方法に関するものである。
【0002】
【従来の技術】従来、リアルタイム性を強く要求される
画像データ、たとえば、MPEG1(シーンチェンジの
多いゲーム用途などの場合)あるいはMPEG2などで
規格化されたデータストリームの復号・符号化装置など
の高速処理が要求されるシステムは専用回路(ハードワ
イヤードあるいはワイヤードロジック)で実現されるこ
とが多い。
【0003】これに対し、汎用的なデータ処理装置とし
ては、一般的にマイクロプロセッサー(MPU)やデジ
タル・シグナルプロセッサー(DSP)を用いたものが
多く用いられているが、このような演算機能を内蔵した
規模のプロセッサは、1クロックを問題とするような利
用には適していない。特に高速処理が要求される分野で
はMPUあるいはDSPでも高速動作保証のある高価な
MPUやDSPを採用すると共に、それらを高い周波数
で動作させながら使用することが必要となる。さらに、
システムレベルあるいはアプリケーションレベルでも、
ある程度タイミング・クリティカルパスが発生しないよ
うに時間的許容度を持たせる必要がある。したがって、
MPUあるいはDSPを搭載した高速のデータ処理装置
を実現するには、実装面でコスト的にも技術的にも無理
な点が多い。
【0004】近年、半導体のプロセス技術の進歩によ
り、高速動作可能なMPUやDSPが利用可能になるに
連れてそれらの適用範囲は大きく広がっている。しかし
ながら、上記のように、基本動作周波数が高く1クロッ
クで一つの処理を確実に実行することが要求される復号
・符号化処理のような分野へはそれほど多く適用されて
いない。
【0005】このため、基本動作周波数がある程度限ら
れた高速性の要求されるデータ処理の分野では依然とし
て専用回路によってデータ処理装置を実現することが主
流となっている。しかしながら、一般に専用回路による
実現は、仕様変更や拡張などに対応するのが困難であ
り、仕様変更などに対しては、再設計やアーキテクチャ
変更を行っているというのが実状である。したがって、
専用回路を用いたデータ処理装置は、開発期間を含む開
発コストや製品価格が高くなるという大きな問題を抱え
ている。
【0006】
【発明が解決しようとする課題】演算機能などを内蔵し
たプロセッサーを用いたソルーションに対し、ダウンロ
ーダブルのマイクロコード(マイクロプログラム)を用
いることにより処理速度を向上することができる。ま
た、このシステムでは、プログラムを変更することによ
って仕様変更や拡張などに対応することができる。
【0007】しかしながら、マイクロコードによりリア
ルタイムな処理を実現しようとすると、復号化処理など
で通常必要とされる複数のリアルタイム処理を実行する
ときに、マイクロプログラムを切り替える必要が生ず
る。このときの切替時間を短縮するためには、複数のマ
イクロコードを格納可能なメモリを別に用意しこれをセ
レクタなどで必要に応じて選択する方法を採用すること
が可能である。この方法は、高速処理の観点からは効果
的な方法であるが、リアルタイム処理の種類とその数が
増加するに連れてあまり魅力的な方法では無くなる。即
ち、処理の種類および数量に対応した多数のメモリを用
意する必要があり、また、それらを切り換えるために膨
大なセレクタが必要となる。したがって、そのような膨
大なアーキテクチャを現実に動作させようとすると動作
周波数あるいは回路規模いずれの関点からも問題とな
る。さらに、共通性のある処理が存在しても多重化でき
ないので、結果的に無駄なマイクロコードを多く抱える
システムとなり経済的でもない。
【0008】経済的なシステムとするためには、マイク
ロコードを用いたプログラムで必要な処理要因を判定
し、その処理に必要なマイクロコードをロードし直すと
いう方法がある。しかしながら、この方法は、判定、待
避およびロードなどのプログラムを開始するための処理
に時間を費やし応答性を低下させる。このため、本来の
目的であるリアルタイム応答を犠牲にすることになるの
で、許容できない。
【0009】専用回路で実行される特殊な処理を適当な
単位でマイクロプログラム化して実行するとと共に、そ
の特殊な処理を実行中に、特殊な処理以外、たとえば、
エラー処理あるいはコミュニケーションなどの汎用的な
処理が必要とされるときに割り込み要求を発させ、割り
込みに応答する形でマイクロプログラムを切り換えると
いう方法もある。しかしながら、この方法でも応答性が
問題となる。すなわち、専用回路に相当する特殊な処理
を実行中に、外部からほかの要因で割り込みが発生する
と、現在実行中の命令を中断するか、命令実行が完了す
るまで待つ必要がある。命令を中断するには、その時の
レジスタ状態を保存する必要があるので、リアルタイム
での応答が必要な処理を行っているにも関わらず、レジ
スタへの待避あるいはロードに最低でも数クロックのオ
ーバーヘッドが発生する。また、命令実行が完了まで待
つことは、必要とされる汎用命令を処理するタイミング
が遅れることを意味する。
【0010】これの解決策としては、マイクロプログラ
ムで動作する処理系をマイクロプログラム単位で複数用
意する方法がある。しかしながら、似通った構造を持つ
処理系を複数用意する必要があるために、回路規模が大
きくなる。さらに、複数の処理系で行われている処理の
同期を取るために余分な回路や命令も必要となり、演算
ユニットを内蔵したプロセッサと同等の処理系が複数必
要になったり、それを動かす複数のマイクロプログラム
を並列処理に適したものにする必要がある。したがっ
て、この方法も回路規模、プログラム開発などの点で経
済的ではない。
【0011】マイクロプログラムの処理系を複数設ける
かわりに、マイクロプログラムの処理系とは別にこの処
理系から制御される専用回路を設け、専用回路もマイク
ロコード命令で制御する方法もある。しかしながら、専
用回路がマイクロプログラムによる汎用処理の命令コー
ドの組み合わせによるプログラムのために、割り込みな
どに対しても同時並列的な処理ができず、レジスタのロ
ード・ストアによる制御となり結果的に大きなオーバヘ
ッドとなる。したがって、リアルタイムな高速処理を実
現することが難しい。
【0012】このように、マイクロコードを用いた制御
装置は、比較的高速でフレキシビリティがあるのでリア
ルタイムな処理を行うデータ処理装置としては魅力的な
ものである。にもかかわらず、リアルタイム処理に略完
全に対処できるアーキテクチャはまだ提案されていな
い。
【0013】さらに、本発明の前提として、マイクロコ
ードについてさらに幾つかの問題を指摘しておく必要が
ある。従来のマイクロコードを用いた制御では、制御が
単純になるという理由から固定長命令が良く使用されて
きた。これは処理速度を向上する上で大事なことではあ
るが、コード効率の点ではあまり良い選択肢とは言えな
い。実際、演算機能も備えたマイクロプロセッサー等の
より大きなデータ処理装置では、可変長命令もコード効
率の観点から伝統的に使用されてきた。一方、可変長命
令はコード効率の点では良い選択肢といえるが、プロセ
ッサーのスループットを上げるために複雑なプリフェッ
チ制御を行ったり、命令コードキューを追加する必要が
あるなどの理由から、高速処理を要求されるマイクロプ
ロセッサーでは敬遠されている。
【0014】さらに、マイクロコードの効率を上げるた
めには、分岐命令や条件分岐、サブルーチン・コール、
リターン、割り込み処理要求サービスへの分岐と復帰、
スタック処理などが命令レベルでサポートされているこ
とが望ましいことは良く知られている。しかしながら、
これらの処理は数クロックを費やすので、1クロック毎
の制御を問題とするリアルタイム処理には適用が難し
く、単にオーバーヘッドを増加させる要因とされてき
た。すなわち、マイクロコード制御により高速応答性を
追求することと、マイクロコードのプログラミングの生
産性を上げる分岐命令やコール、リターン命令(サブル
ーチンからの復帰以外の割り込み処理からの復帰命令な
ども含む)を採用することとの両立は困難であった。
【0015】現在の高性能マイクロプロセッサで採用さ
れているスーパーパイプライン技術やスーパースケーラ
技術は、動作周波数を上げたり、データ処理のスループ
ットを上げることにより、復帰処理などに係るオーバー
ヘッドの問題を平均命令実行数という観点ではある程度
緩和している。しかしながら、これらのテクノロジーは
分岐命令、サブルーチンコールあるいは割り込み処理な
どにおけるペナルティを本質的に解決している訳ではな
い。すなわち、現在の高性能マイクロプロセッサーで
も、1クロックを問題とするようなリアルタイム制御に
適用するには問題が多く本質的に向いていない。これ
は、その回路規模が膨大であり、コスト的にも見合わな
いというだけでなく、その制御構造に大きく依存してい
る本質的な問題である。
【0016】そこで、本発明は、従来技術では専用装置
でしかその実現が難しいとされてきた分野へも適応可能
な高速でフレキシブルな制御装置およびデータ処理装置
を実現することを目的としている。特に、本発明は、ア
プリケーション毎に対応する専用の1つまたは複数のマ
イクロプログラムと、汎用データ処理用のマイクロプロ
グラムとを簡易な方法により多重処理あるいは並列処理
を可能とするマイクロアーキテクチャ、それに適したマ
イクロプログラム、さらに、制御方法を提供することを
目的としている。
【0017】さらに、本発明は、そのマイクロアーキテ
クチャをベースに、1クロック処理単位でのリアルタイ
ム応答および制御の要求される分野へ、従来技術では適
用が困難とされてきた多重処理や割り込み処理を可能と
した制御装置およびデータ処理装置を提供することを目
的としている。
【0018】また、本発明においては、マイクロプログ
ラムによる高速制御が可能な制御装置およびデータ処理
装置であって、アプリケーション毎に専用処理が実現可
能であり、さらに、変更や拡張などに対応可能であると
共に、コンパクトおよび低コストで実現可能な制御装
置、マイクロプログラムおよび制御装置、さらにその制
御装置を備えたデータ処理装置を提供することを目的と
している。
【0019】
【課題を解決するための手段】このため、本発明の制御
装置は、特定のデータ処理に適した専用回路に対する専
用命令をデコードおよび実行可能な少なくとも1つの専
用データ処理ユニットと、専用命令以外の処理を行う汎
用命令をデコードおよび実行可能な汎用データ処理ユニ
ットと、マイクロコード化された専用命令および汎用命
令を記憶したコードメモリ(コードROM、コードRA
M)から命令コードをフェッチし、専用データ処理ユニ
ットおよび汎用データ処理ユニットに供給するフェッチ
ユニットとを有している。また、本発明のデータ処理装
置は、このような制御装置(コントロールユニット)
と、この制御装置により制御可能な少なくとも1つの専
用回路とを有している。
【0020】まず、本発明の制御装置においては、特定
のデータ処理に適した専用回路のための1つまたは複数
のマイクロコード制御系と、汎用的なマイクロコード制
御系とを別々に備えている。さらに、本発明の制御装置
は、これらの制御系に対し共通のフェッチユニットを備
えている。したがって、本発明の制御装置を備えたデー
タ処理装置においては、汎用処理、およびこの汎用処理
と処理内容の異なる1つまたは複数の専用回路を用いた
処理が多重処理可能となり、その処理のための同期制御
を命令コードレベルで実行できる。
【0021】すなわち、本発明の制御装置は、専用デー
タ処理ユニットを備えているので、符号化されたデータ
ストリームからスタートコードを検出したり、可変長符
号化されたデータを連続デコードするなどのリアルタイ
ム性が要求され、専用のハードウェアにより実行した方
が高速化し易い処理を、専用命令に基づき、その処理に
適した専用回路により処理させることができる。
【0022】それと共に、汎用データ処理ユニットを備
えているので、汎用命令による処理とは完全に分離して
専用命令を実行できる。したがって、データ処理装置内
部、あるいは外部から応答要求があった場合などに対応
する汎用命令による処理を専用回路を停止させることな
く実行できる。このため、専用回路のリアルタイム性を
犠牲にすることなく汎用命令を実行できる。
【0023】さらに、専用データ処理ユニットおよび汎
用データ処理ユニットに共用あるいは共通のフェッチユ
ニットが用意されている。このため、専用データ処理ユ
ニットおよび汎用データ処理ユニットにおいては、共通
のマイクロプログラムから共通のプログラムカウンタに
基づきフェッチされる命令コードに従って順次処理が行
われる。したがって、命令コードレベルで専用データ処
理ユニットおよび汎用データ処理ユニットの処理を正確
に制御できる。このため、専用回路と汎用データ処理系
の間で同期を取るための通信回路あるいはその処理のた
めに割かれるレジスタのロード・ストア処理などの時間
は不要となる。その結果、多重処理のためのオーバヘッ
ドが発生せず、回路規模を大きくする必要もなくなる。
さらに、専用回路と、汎用データ処理系とを同期制御す
るプログラムをそれぞれ開発する必要もないので経済的
である。
【0024】そして、本発明の制御装置、およびその制
御装置を備えたデータ処理装置においては、専用データ
処理ユニットおよび汎用データ処理ユニットを共通して
制御するマイクロプログラムを変更することにより仕様
変更あるいは拡張などにフレキシブルに対応することが
できる。
【0025】さらに、専用回路部分の処理を専用命令に
て実行し、その専用命令を汎用命令と同じレベルでフェ
ッチするようにしている。このため、マイクロコード処
理系を介して専用回路を動作させるようなアーキテクチ
ャでは回避できない、レジスタに専用回路用の命令コー
ドをロード・ストアするためのオーバーヘッドは存在し
ない。したがって、専用回路と汎用データ処理系との間
で同期制御のためのタイムラグは事実上発生しない。
【0026】このように、本発明の制御装置では、専用
回路を制御するマイクロコード(専用命令)を備えた1
つまたは複数の専用マイクロプログラムと、汎用データ
処理を行うマイクロコード(汎用命令)を備えた汎用デ
ータ処理マイクロプログラムとを1つのフェッチユニッ
トにより扱うことが可能である。このため、本発明の制
御装置は、幾つかの共通モジュールおよび/あるいは専
用モジュールによる多重処理を簡単に実現できるアーキ
テクチャを備えている。したがって、この制御装置を備
えた本発明のデータ処理装置は、1クロック単位でのリ
アルタイム応答性が要求される専用回路の処理を継続し
ながら、多重処理、割り込み処理、さらには、他の専用
回路の専用命令を実行することができる。また、専用命
令を実行させながら汎用命令を並列実行可能である。そ
して、データ処理装置全体をコンパクトに纏め、低コス
トで提供することもできるという特徴を有する。
【0027】フェッチユニットでフェッチされる命令コ
ードは専用命令または汎用命令であり、そのいずれであ
るかを、専用データ処理ユニットおよび汎用データ処理
ユニットのデコーダにより、命令コードに含まれるオペ
レーションコードをデコードすることによって判別する
ことも可能である。しかしながら、そのような判別はデ
コード遅延を招く。それと同時に命令体系(命令コード
体系)も一元化されてしまい拡張性の点からも好ましく
ない。そこで、命令コードに専用命令および汎用命令、
さらに複数の専用データ処理ユニットを有するときはい
ずれかの専用データ処理ユニットの専用命令であるかを
識別可能な識別コードを設けることが望ましい。この識
別コードにより、デコード遅延を最小とし、専用命令の
追加や拡張が容易にできる。さらに、フェッチユニット
に、識別コードをデコードして汎用データ処理ユニット
または1つあるいは複数ある場合はいずれかの専用デー
タ処理ユニットに対しデコードおよび実行を指示する実
行制御部を設けておくことが望ましい。
【0028】識別コードをデコードし、汎用データ処理
ユニットまたは専用データ処理ユニット、さらに複数の
専用データ処理ユニットを有するときはそれらのいずれ
かに対しフェッチした命令コードをデコードおよび実行
するように指示する工程を設けることにより、専用デー
タ処理ユニットおよび汎用データ処理ユニットにおいて
は不要な命令コードをレジスタにロードあるいはストア
する処理を防止できる。さらに、専用データ処理ユニッ
トおよび汎用データ処理ユニットにおいて、不要な命令
コードをデコードすることによる回路上のクリティカル
パスの発生を防止できる。
【0029】さらに、専用データ処理ユニットまたは汎
用データ処理ユニットにおいて命令コードをデコード
し、専用データ処理ユニットおよび汎用データ処理ユニ
ットにおける処理を並列実行可能であるか否かを判断す
る方式を採用することも可能である。しかしながら、こ
の判断処理はハードウェアの増加を招き、また、それは
新たなクリティカルパスを招き、事実上動作周波数にも
影響を与える可能性がある。
【0030】そこで、命令コード中に、後続の命令コー
ドが汎用データ処理ユニットまたは専用データ処理ユニ
ット、さらに複数の専用データ処理ユニットを有すると
きはそれらのいずれかで実行されるべきか、あるいは、
汎用データ処理ユニットにおいて並列処理可能であるか
どうかを明示する並列処理フラグを設けることで、これ
らの問題を回避することができる。並列処理フラグを設
け、命令コードの並列処理フラグに基づき専用データ処
理ユニットのいずれか、または汎用データ処理ユニット
に対し後続の命令コードのデコードおよび実行すること
を指示する工程を設けることにより、命令コードをデコ
ードして並列処理(多重処理)が実行可能であるか否か
を判断する処理を省くことができるので、オーバーヘッ
ドが発生するのを防止できる。
【0031】さらに、制御装置は、汎用データ処理ユニ
ットまたは専用データ処理ユニット、さらに複数の前記
専用データ処理ユニットを有するときはそれらのいずれ
かのための実行レジスタを有し、フェッチユニットは、
実行レジスタに命令コードをストアすると同時に後続の
命令コードをフェッチできるようにするフェッチデータ
(命令コード)出力部を備えていることが望ましい。特
に、少なくとも専用データ処理ユニットのための実行レ
ジスタを備えていることが望ましい。そして、複数の専
用データ処理ユニットを有する場合は、各々の専用デー
タ処理ユニットのための実行レジスタを有することがさ
らに望ましい。また、命令コードの並列処理フラグに基
づき、専用データ処理ユニットのいずれか、または汎用
データ処理ユニットに対し後続の命令コードのデコード
および実行を指示する実行制御部を設けておくことは極
めて有効である。
【0032】実行レジスタに命令コードをストアすると
同時に後続の命令コードをフェッチする工程を設けるこ
とにより、専用データ処理ユニットおよび汎用データ処
理ユニットに常に1クロックで命令コードを供給するこ
とができる。同時とは、同一のクロックサイクルまたは
次のクロックサイクルの立ち上がりまたは立下りのタイ
ミングまで含めた範囲であり、1クロックで処理が進む
程度のタイミングを示している。したがって、本発明の
データ処理装置においては、実行するのに数クロックが
必要となるスタートコードサーチ命令による処理を行っ
ているときでも、1クロックで実行し、1クロックでフ
ェッチするという処理を基本的に続けることができる。
このため、処理を1クロック単位で正確に定義でき、実
行することが可能である。したがって、多重処理あるい
は割り込み処理などを専用命令に対して並列に制御可能
となる。
【0033】マイクロプログラムの命令コードは、コー
ド長(ワード長)が可変であればコード効率は良い。し
かしながら、プリフェッチバッファを用意するなどの対
応を行わないと使用される命令長が変わるので、効率良
く命令コードを取得できない危険性がある。また、バス
幅に相当するワード境界で命令コードが2ラインにまた
がって分割されていると1クロックで命令コードをロー
ドできない。一方、プリフェッチバッファを用いると、
分岐命令が発生したときなどはプリフェッチバッファに
新しい命令がロードされるまで命令の実行が停止してし
まう。
【0034】そこで、命令コードに、該命令コードのワ
ード長を示す命令長コードを設け、フェッチユニット
は、命令コードに続く最大命令長分のマイクロコードを
後続の命令コードとしてフェッチするフェッチデータ出
力部を備えていることが望ましい。さらに、フェッチユ
ニットは、2ライン分の命令フェッチアドレスを出力す
るフェッチアドレス出力部を備えていることが一層望ま
しい。
【0035】命令長コードを設けることにより、その命
令コード全体(オペレーションコード部の全ビット)を
デコードしなくても後続の命令コードの先頭アドレスが
判る。このため、命令コードに続く最大命令長分のマイ
クロコードを後続の命令コードとしてフェッチする工程
を設けておくことにより、プリフェッチバッファを設け
ておかなくても後続の命令コードを確実にフェッチする
ことができる。そして、2ライン分の命令フェッチアド
レスを出力することにより、命令コードがワード境界に
またがっている場合でも1クロックで命令コードをフェ
ッチすることができる。したがって、コード効率の良い
可変長の命令コードを採用し、プリフェッチバッファを
用いずに常に1クロックで所定の命令コードをフェッチ
することができる。このため、この点でも1クロック単
位で処理を正確に定義し実行することができるので、汎
用命令で構成される多重処理プログラムあるいは割り込
み処理プログラムなどを専用命令に対して並列実行制御
しやすくなる。
【0036】先に説明したが、効率の良いマイクロプロ
グラムを作成するには、サブルーチン・コール、リター
ンあるいは割り込み処理機能などが不可欠である。そこ
で、フェッチユニットに、命令フェッチアドレスを出力
するフェッチアドレス出力部と、このフェッチアドレス
出力部に対し1つまたは複数のテンポラルレジスタに格
納された復帰アドレスを供給可能なフェッチ制御部とを
設けることが望ましい。さらに、汎用データ処理ユニッ
トには、分岐または割込み命令を実行するときに復帰ア
ドレスをメモリ(スタック)に記憶すると共にテンポラ
ルレジスタにストアし、復帰処理を実行するときに次の
復帰アドレスをメモリからテンポラルレジスタにロード
するレジスタ管理機能を設けることが望ましい。復帰処
理を実行するときに次の復帰アドレスがテンポラルレジ
スタにロードされていれば、次の復帰命令を処理すると
きにメモリからテンポラルレジスタにロードする処理が
不要となる。このため、1クロックで復帰命令を処理す
ることが可能となり、復帰関連の処理も1クロック単位
で正確に定義し実行できる。したがって、この機構によ
り多重処理あるいは割り込み処理を制御しやすいマイク
ロコードによる制御装置の提供が可能となる。
【0037】さらに、割り込み処理の場合は、復帰アド
レスに加えてコンディションコードも1クロックでレジ
スタにロードできることが望ましい。このため、レジス
タ管理機能は、割込み復帰アドレス用およびコンディシ
ョンコード用のテンポラルレジスタを各々備えており、
割込み命令を実行するときに復帰アドレスおよびコンデ
ィションコードをメモリに記憶すると共に、割込み復帰
アドレス用および前記コンディションコード用のテンポ
ラルレジスタに各々ストアし、復帰処理を実行するとき
に復帰アドレスのメモリアドレスおよびコンディション
コードのメモリアドレスを出力し次の復帰アドレスおよ
びコンディションコードをメモリからテンポラルレジス
タに各々ロードすることが望ましい。これにより、割り
込み処理からの復帰も1クロックで行うことができる。
【0038】このように、本発明の制御装置、上述した
工程を備えた制御方法、さらにはROM、RAMあるい
は他の移動式(ムーバブル)、固定式、あるいはネット
ワークで接続された、コンピュータ、制御装置またはデ
ータ処理装置が読み取り可能なメモリ装置あるいは記録
媒体に記録されて供給されるマイクロコードにおいて
は、1クロック単位での正確な制御が可能である。さら
に、分岐命令やコール命令、リターン命令もすべて1ク
ロックで実行される。このため、正確なパイプライン制
御によるタイミング設計が可能で、分岐の成立不成立に
かかわらず必要なクロックサイクルは最小(1クロッ
ク)であり一定であり、ステートマシンと同様の無駄の
ない制御が可能となる。
【0039】これは、本発明により、多重処理可能な汎
用データ処理命令を備えたマイクロプログラムによる制
御であるにもかかわらず、専用のステートマシンによる
制御と同一品種の処理が可能になったことを意味する。
あるいは、コード効率の極めて優れた汎用的なマイクロ
プログラムによる制御であるにも拘わらず、それぞれ専
用のマイクロプログラムを独立してもったシステムと等
価なトランスペアレントな処理が可能であることを意味
する。しかも、高い性能を提供しながら、制御装置を実
現するための回路として重複する部分がほとんどなく、
極めてコンパクトである。
【0040】したがって、本発明のマイクロコードによ
る制御装置と、この制御装置を備えた本発明に係るデー
タ処理装置により、フレキシビリティのない専用回路だ
けによって実現されるデータ処理装置と同等の性能を備
え、これに代わる効率的で高速なデータ処理装置を提供
できる。
【0041】
【発明の実施の形態】以下に図面を参照して本発明の実
施の形態を説明する。図1にMPEG標準によって規格
化されたビットストリームに含まれる可変長符号(VL
C)を復号(デコード)する機能を備えたデータ処理装
置(可変長符号復号装置、以降においてはVLD)1の
概略構成をブロック図により示してある。
【0042】画像情報は、音声情報あるいは文字情報に
比較し数桁程度も情報量が多く、マルチメディアを実現
するためにはその多量の情報を符号化して処理すること
が重要となっている。MPEG標準はその1つであり、
現在、MPEG−2が様々なアプリケーションに対して
適用可能なものとして多く採用されている。そのビット
ストリーム(MPEGビットストリーム)は、階層構造
になっており、上位層から順にシーケンス層、GOP
(グループオブピクチャ)層、ピクチャ層、スライス
層、マクロブロック層、およびブロック層を備えてい
る。シーケンス層からスライス層まではの各層は、ユニ
ークなスタートコードが用意されており、これを認識す
ることによりデコードすることができる。ピクチャ層以
下の各層においては、膨大な画像情報をコンパクトに符
号化するために可変長符号化またはエントロピー符号化
することにより平均情報量を削減している。したがっ
て、MPEGビットストリームは膨大な量のVLCを高
速にデコードできることが重要であり、このため、高速
なVLDが強く要求されている。
【0043】VLDにおける処理の要求性能は、単位時
間当たりどの程度のビットストリーム処理を行わねばな
らないかに依存しており、これがある意味で内部アーキ
テクヂャを左右する最大要因であり、設計上のトレード
オフの最大ポイントと言える。上述したようにMPEG
ビットストリーム(ビデオ)のシンタックスは、スター
トコードと呼ばれるレイヤ(層)を規定するユニークな
コードと固定フィールド(FLC)及び可変長フィール
ド(VLC)で特徴付けられる。このため、以下のよう
な処理要因がVLDにおける処理性能に大きく影響を与
える。 (1)スタート・コードの検出処理 (2)各制御のパラメータ (3)VLCの復号処理 (4)MPEGシンタックスのエラー検出 (5)アプリケーション・レベルでの柔軟性(ユーザ・
データ対応など) (6)上位レイヤへの対応などの拡張性
【0044】第1にスタート・コードの検出能力は、伝
送品質が極めて安定した条件下でのビデオ再生にウエイ
トを置くアプリケーションではそれほど問題となること
はない。しかしながら、ビデオ編集業務やゲーム等のイ
ンタラクティブな再生が想定されるアプリケーションで
は非常に問題となる。この場合、ある程度大きなビット
・ストリームの中から必要とするレイヤのスタート・コ
ードを検出する必要があり、これが再生時のレスポンス
に大きな影響を与えるからである。特に高品質の映像を
扱う場合、つまり圧縮率をあまり高めるような符号化パ
ラメータを選択できないような状況では、そのために取
り扱うビット・ストリームの容量も大きくなるので、ス
タートコードの検出速度が人間(オペレータ)から見て
VLDの操作性の印象を大きく左右する要因となる。
【0045】第2に各制御パラメータの設定・記憶処理
は、デコードするMPEGビットストリームの量がそれ
ほど多くない場合は比較的問題は少ないが、デコードす
るビットストリームの量が多く、時間的な余裕がそれほ
ど無い場合は問題となる。また、時間的余裕がなく、同
時に外部のホストCPUなどからのパラメータ・アクセ
ス頻度が多い場合は、この処理速度がさらに問題とな
る。MPEG−2の場合、パラメータの種類も多くこれ
らをレジスタ形式で持つことはあまり経済的でないから
である。この処理を専用ハードウエア(専用回路)です
べて処理しようとすると回路規模も大きくなり経済的で
ない。しかし、MPUで処理するには時間がかかるの
で、外部からのアクセスに対応しながらデコード処理を
行うことは時間的に難しい。
【0046】第3にVLCの復号処理は、基本的には1
つのコードのデコードが完了しないと次のVLCのデコ
ードを開始できないという欠点を持つ。特に、デコード
すべきビットストリームの量が多い場合は、デコードの
遅延が致命的な問題となり、回路規模を大きくせずにこ
れを解決するには回路の動作周波数を上げるほかない。
しかし、動作周波数は、システム全体の設計要求をより
厳しいものとし開発期間やチップのイールドに大きく影
響する。回路規模を大きくしてもよければ、VLCテー
ブルを完全に2重に用意したり、スライス・レイヤのレ
ベルで並列デコードするなど解決手段はいくつかある。
しかしながら、このような対策は、ダイサイズに直接影
響しいたずらにチップ単価を上昇させるだけであり好ま
しくない。
【0047】第4に、MPEGビットストリームは、厳
密なレイヤ構成を規定しており伝送品質の問題などでこ
れが保障できなくなると表示画像への影響やデコードし
ているパラメータ矛盾等によりシステム的に破綻する危
険がある。通常は、誤り訂正などの上位レイヤ・レベル
での処理で回避できるが、デコード自体もこのような矛
盾したMPEGビットストリームに対してある程度耐性
をもつ必要がある。もちろん、MPEG−2では、エラ
ー・コンシールメントなどの配慮が行われているが完全
ではない。特に、デコード対象となるビットストリーム
の多い高品質画像が要求されるアプリケーション・ユー
ザにとっては製品イメージに直結する大問題である。し
たがって、MPEGシンタックスのエラー検出機能は必
須の要件であり、また出来ればFLCやVLCレベルで
のエラー・チェック機能も実装されていることが望まし
い。
【0048】第5に、MPEG−2は、アプリケーショ
ン・レベルでの拡張性を配慮したユーザ・データのフィ
ールドなどが用意されている。ユーザは、アプリケーシ
ョン・レベルでこれらのフィールドを利用して、文字や
テキストの多重化やアニメーション・キャラクタの多重
化などの要求仕様を追加することができる。したがっ
て、将来の拡張へも対応できるようなハードウエア構成
が望ましい。
【0049】最後に、半導体の集積度向上に伴い、将来
上位レイヤのデコード機能も含めて集積化することが可
能となる可能性が高く、これに対応できるアーキテクチ
ャ構造が望ましい。そして、エラー訂正や暗号化、オー
ディオとの同期などに対しても基本ユニットや専用ユニ
ットの拡張だけで対応できるようであれば、経済的であ
る。
【0050】本例の可変長符号復号装置(VLD)1
は、上述した様々な要求性能は、経済的な面も考慮して
満足できるようにしたデータ処理装置であって、高速な
可変長符号の復号処理を実現するものである。
【0051】本例のデータ処理装置であるVLD1は、
図1に示すように、ビットストリームを受信する入力F
IFO2と、バレルシフターとしての機能も備えたマイ
クロコード方式の制御ユニット(制御装置)10と、専
用回路の1つであるビットストリームからスタートコー
ドを検出するスタートコード検出回路3、他の専用回路
であるVLCをデコードするためのVLCテーブル4、
ビットパターンをシーケンシャルに比較してビットスト
リーム中の任意のパターンを高速検索する専用回路であ
る比較回路5、ホスト・インターフェース6、IQ/I
DCTインタフェース7、MCPインタフェース8、外
部CPUインタフェース9、および外部CPUとのソフ
ト的なインタフェースを実現するコミュニケーション用
の内部CPU19を備えており、これらがバス11によ
り接続されている。また、制御ユニット10には、マイ
クロコードを記憶したROM12およびワークエリアと
なるワークRAM13が接続されている。
【0052】入力ビットストリームは、外部からの直接
入力しても良いし、一度外部メモリーでバッファリング
したものを再度入力しても良い。外部メモリー・インタ
ーフェースの設計がタイトでなく、ビットストリームの
供給に対しては高いレスポーンスが保証できれば、内部
FIFOの大きさは極めて少なくて良い。この場合、回
路を小さくして十分間に合うことになる。逆に、外部メ
モリーのバンドはバンド幅が十分でなかったり、バス・
アービトレーションによる切換え時間を大きくして、即
ちレイテンシーをある程度大きくして、必要最低限のバ
ンド幅を確保するタイトなアーキテクチャの場合は、内
部FIFO2の大きさを増やして、これに対応すること
が可能である。内部FIFOの大きさは、入力データの
レスポンスやレイテンシーの大きさに依存する。大容量
のFIFO等ライブラリ・レベルで対応できない場合で
あっても、シングル・ポートRAMを利用して大容量F
IFOを実現可能なので、全体処理の破綻が発生しない
範囲であれば、入力ビットストリームの条件はかなり悪
くても良く、ほとんどの場合全く問題ない。
【0053】制御ユニット10は、内部CPUで直接制
御可能なインテリジェント型のバレルシフターを備えた
ものであり、制御ユニットの構成については以下で更に
詳しく説明する。この制御ユニット10は、スタートコ
ード検出や特定のビットパターン検出、VLCとFLC
のデコードといった専用回路を用いた処理と、指定領域
へのデータ格納処理、エラー処理、割り込み処理などの
汎用処理(汎用データ処理)をマイクロコードで記述さ
れたプログラムにより制御できるようになっている。
【0054】スタートコード検出回路3は、64ビット
単位で動作するもので検出に最適なビット・シフト量を
デコードして、これをバレルシフターに通知するもので
ある。MPEGビデオの場合、スタート・コードはユニ
ークであり、これを検出するための最適シフト量を決定
するだけで良い。バレルシフターは32ビット形式であ
り、バレルシフター内部のレジスター側の情報をデコー
ドし最大64ビットの高速シフトを実現している。さら
に、バイト・アラインは前提としなくても良いので原理
的にスタート・コード検出漏れの危険は全く無い構成と
なっている。
【0055】VLCデコーディング・テーブル4は、M
PEG−1とMPEG−2とで使用されるVLCデコー
ディング・テーブルから構成されており、テーブルの選
択情報はバレルシフター機能を備えた制御ユニット10
から得る構成となっている。
【0056】ホスト・インターフェース6は、内部CP
U19の内部メモリへのアクセスを許すもので内部CP
U19の実行プログラムの構成によっては、データ処理
や復号処理の制御も可能となる。例えば、ゲームなどの
ようなアプリケーションで高速にシーンチェンジを繰り
返して、刻々とストーリ展開を図ることも容易に実現可
能である。これらは、高速なスタートコード検出機能と
細かいクロック単位での復号処理の制御が必要である
が、本例のVLDではリアルタイム性の要求されるこの
ような処理も実行可能であり、外部CPUとのコミュニ
ケーションにより実現することができる。
【0057】IQ/IDCTインターフェース7は、逆
量子化器或いは逆離散コサイン変換器とのインターフェ
ースである。内部CPU19がFIPU(2命令/CL
K)のように高速なCPUであれば、逆量子化処理まで
実行して、直接逆離散コサイン変換器へデータを転送す
ることが可能である。
【0058】MCPインターフェース8は、動き補償処
理に必要なマクロブロック・アドレスやタイプ、動きベ
クトル情報などをMCP(動き補償器)へデータ転送す
るものである。マクロブロック・アドレスは、MCP
(動き補償器)の都合により、エスケープ・コードも含
めてインクリメント・アドレスではなく、絶対アドレス
に変換して転送することも可能である。
【0059】内部CPU19は、VLD1としては特に
指定すべき機能はなく、ユーザの集積化の都合いに依存
する。CPU19の処理性能は低くても良く、実際にV
LDで実現する用途に応じて選択の幅が広い。CPU性
能の低いものを選択した場合、逆量子化処理等をソフト
ウエアで対応できないこともある。この場合は、専用ハ
ードウェア・モジュールの追加が必要となる。また、将
来の拡張性を重視する場合は、仕様変更あるいは追加に
対して柔軟に対応できるように、ある程度の性能のCP
Uを内蔵しておくことが望ましいことはもちろんであ
る。
【0060】図2に、VLD1の制御ユニット10の概
略構成をブロック図により示してある。本例の制御ユニ
ット10は、コードROM12に記憶されたマイクロコ
ード(マイクロプログラム)によって動作する制御装置
であって、命令コードをフェッチするフェッチユニット
(FU)21と、命令デコードと実行を行う命令デコー
ド実行ユニット(DXU)22と、バス11を介して外
部の専用回路あるいは他のリソースとインタフェースす
るためのインタフェースユニット(IFU)23の3つ
の大きなブロックを備えている。
【0061】命令デコード実行ユニット22およびイン
タフェースユニット23は、機能的に、スタートコード
検出回路3などの専用回路で処理する専用命令をデコー
ドおよび実行する専用データ処理ユニット(以降におい
てはVU)31と、それ以外の汎用のデータ処理命令
(汎用命令)を実行する汎用データ処理ユニット(以降
においてはPU)32とに別れている。したがって、V
U31で可変長符号復号処理(VLD)にかかる専用命
令を実行しながら、PU32により別の汎用データ処理
を並列実行することが可能な構成となっている。また、
本例の制御ユニット10は、1クロックで1命令の高速
実行を可能とするために、デコードサイクルと実行サイ
クルを同じフェーズで行う形式を採用している。結果と
して、これらのモジュールDXU22およびIFU23
はVU31およびPU32にシェアされた構造となって
いる。
【0062】独立した機能を有するVU31およびPU
32が構成されるために、命令デコード実行ユニット2
2は、サブモジュールとして専用命令をデコードするユ
ニット(VDEX)33と、汎用命令をデコードするユ
ニット(PDEX)34とを備えている。さらに、デコ
ードされた専用命令を実行するユニット(VDR)35
と、デコードされた汎用命令を実行するユニット(PD
R)36を備えている。また、インタフェースユニット
23は、サブモジュールとしてバス11にアクセス可能
なサブユニット37および38を備えている。このよう
に、VU31は、独自のデコードユニット33、実行ユ
ニット35およびインタフェースユニット37を備え、
また、PU32も独自のデコードユニット34、実行ユ
ニット36およびインタフェースユニット38を備えて
いる。したがって、VU31およびPU32は、独立し
て命令をデコードし実行可能である。しかしながら、本
例では、並列処理の指示がプログラムに記述されていな
い限り並列動作には移行しないようになっている。
【0063】VU31とPU32に共通して参照できる
1つまたは複数のレジスタCRが用意されておりレジス
タレベルで相互にデータ転送が可能となっている。この
ため、専用命令と汎用命令を組み合わせることによりい
ろいろなデータ処理に柔軟に対応できる。さらに、図2
では、VU31は1系統であるが、異なった専用回路を
用いて多重処理することができる処理系であれば、VU
を複数系統設けることも可能であり、本明細書で説明す
る構成および処理を同様に適用することができる。
【0064】一方、これらのVU31およびPU32に
対する命令コードをフェッチするフェッチユニット21
は、コードROM12に対し命令フェッチアドレスを出
力するフェッチアドレス出力ユニット(VFAU)41
と、命令コードをコードROM12からフェッチしフェ
ッチレジスタFR0、FR1およびFR2に出力するフ
ェッチデータ出力ユニット(VFRU)42と、フェッ
チ制御や命令のデコード実行制御を行う実行制御ユニッ
ト(VPFDC)43と、割り込み制御や例外処理制
御、リセットからのフェッチ、リターン命令実行後のフ
ェッチ制御を行うフェッチ制御部(VPIRQ)44の
4つのユニットを備えている。フェッチされる命令コー
ドは、動作周波数の上限を上げるために単純化された命
令セットが用いられており、さらに、フェッチユニット
21の内部制御が命令コードの最初の数ビットをデコー
ドするだけで行えるようなフィールド構成となってい
る。
【0065】図3に、本例の制御ユニット10で採用さ
れているマイクロコードの構成を示してある。本例で
は、1ワード16ビットとして最大長が3ワードのマイ
クロコードが命令コード50として採用されている、命
令コード50の先頭は、この命令コード50と共に後続
の命令コードを並列処理可能であるか否かを示す1また
は数ビットの並列処理フラグ51のフィールドである。
これに続いて、命令コード50のワード長を示す1また
は数ビットの命令長コード52のフィールドが設けられ
ており、さらに、命令コードのディスティネイションを
示す1または数ビットの識別コード53のフィールドが
設けられている。これらに続いて、オペランドおよびパ
ラメータなどの処理内容を指示するフィールド54が設
けられている。本例の制御ユニット10では、可変長命
令コードが採用されておりオペランドおよびパラメータ
の長さによって2ワードまたは3ワードの命令コードが
混在している。
【0066】まず、識別コード53は、命令コード50
がPU32でデコードおよび処理される汎用命令か、V
U31でデコードおよび処理される専用命令であるかを
示すデータである。本例では、汎用命令は識別コード5
3が“0”にセットされ、専用命令の識別コード53が
“1”にセットされている。さらに、複数のVU系が用
意されている場合は、特定のVU系を示す識別コードを
セットすることによりデコードおよび処理されるVU系
を区別することができる。
【0067】この識別コード53は、フェッチユニット
21の実行制御ユニット43でデコードされ、VU31
またはPU32のデコードユニット33または34にデ
コード指示が発せられる。これにより、デコードユニッ
ト33または34はフェッチレジスタFR0ないしFR
3にロードされた命令コードをデコードする。したがっ
て、VU31またはPU32は、専用命令または汎用命
令だけをそれぞれデコードし実行する。このため、他の
命令をデコードする処理に時間が費やされることはな
く、それによるデコード遅延を防止できる。また、VU
またはPUにおいては専用命令または汎用命令だけをデ
コードおよび実行するので、各々の処理ユニットにおけ
る処理内容を1クロック単位で制御するように記述で
き、またそのように制御することが可能となる。
【0068】命令長コード52は、個々の命令コード5
0のワード長を示すものであり、本例においては命令コ
ードが2ワードまたは3ワードであることを示すために
用いられる。フェッチユニット21においては、命令長
コード52をフェッチアドレス出力ユニット41でデコ
ードすることにより、後続の命令コードの先頭アドレス
が命令コード全体をデコードしなくても判明する。した
がって、命令コード50がVU31またはPU32でデ
コードされなくても後続の命令コードを常にフェッチす
ることができる。このため、フェッチされた命令コード
を次のクロックのタイミングでフェッチレジスタFR0
ないしFR2にストアすることによりフェッチサイクル
を1クロック単位で行うことが可能となる。さらに、可
変長の命令コードをフェッチするためのプリフェッチ制
御およびプリフェッチバッファは不要となる。
【0069】並列処理フラグ51は、後続の命令コード
が多重処理できることを示すデータである。このコード
51により、多重処理が可能であることが指示されてい
る場合は、フェッチユニット21のフェッチデータ出力
ユニット42は、命令コードがVU31またはPU32
でデコードされるのを待たずに、フェッチしている次の
命令コードをレジスタFR0ないしFR2にストアす
る。そして、実行制御ユニット43により、識別コード
53にしたがってPU32またはVU31にデコードお
よび実行させることができる。したがって、多重処理の
可否を命令コードレベルで明確に指示することが可能で
あり、1クロック単位で多重処理の制御を行うことがで
きる。また、多重処理の可否をVU31またはPU32
のデコードユニット33または34などで相互の処理状
況に基づき判断しなくても良い。したがって、多重処理
を行うためのオーバヘッドおよびその判断を行うための
ハードウェアによる回路規模の拡大、回路上のクリティ
カルパスの発生を防ぐことができる。
【0070】このように命令コード50の先頭に並列処
理フラグ51、命令長コード52および識別コード53
を設けておくことにより、フェッチユニット21におい
ては、命令コードの先頭、たとえば、フェッチレジスタ
FR0の内容をデコードするだけで内部制御を行うこと
ができる。
【0071】本例においては、専用命令に続く汎用命令
が多重処理可能であるか否かが命令コード中に記述され
る。たとえば、フェッチレジスタFR0ないしFR2に
ストアされた命令コードが専用命令であり多重処理が可
能であると、その命令コードはVU31のデコードユニ
ット33でデコードされると共に実行レジスタVR0お
よびVR1にストアされる。本例においては、専用命令
としては2ワードの命令コードが用意されており、2ワ
ード分の実行レジスタVR0およびVR1で専用命令を
ストアできる。また、専用命令がフェッチレジスタFR
0ないしFR2にストアされると共に、命令長コード5
2がフェッチアドレス出力ユニット41でデコードされ
ているので、プログラムカウンタ(インストラクション
カウンタ)IPは後続の命令コードの先頭まで進み、後
続の命令コードがフェッチされている。そして、専用命
令が実行レジスタVR0およびVR1にストアされると
き、実際には次のクロックサイクルの立ち上がりまたは
立ち下がりのタイミングに、後続の命令コードがフェッ
チレジスタFR0ないしFR2にストアされる。そし
て、その命令コード(汎用命令)がPU32のデコード
ユニット34でデコードされ、汎用命令に基づく処理が
専用命令に基づく処理と並列に実行処理される。
【0072】この際、プログラムカウンタIPは、さら
に後続の命令コードの先頭に進み、その命令コードがフ
ェッチされているので、フェッチレジスタFR0ないし
FR2にストアされた命令コードが消費されると同時に
後続の命令コードがフェッチレジスタにストアされる。
このように、本例の制御ユニット10においては、フェ
ッチサイクルが1クロック単位で繰り返される。さら
に、専用データ処理ユニットVU31のために実行レジ
スタVR0およびVR1が用意されているので、専用命
令を専用回路において実行される処理が終了するまで、
そのVU31のレジデントな命令、継続して制御する命
令あるいは繰り返して実行する命令とすることができ
る。
【0073】すなわち、専用回路で行うデータ処理は一
連のデータ群、たとえばビットストリームに対し同じ処
理を繰り返して行うことが多い。したがって、次の命令
がでるまで、命令がクリアされるまで、あるいは終端条
件が整うまでは、いったん実行レジスタにストアされた
命令に基づき処理を進めることが望ましいケースが多
い。本例の制御ユニット10においては、実行レジスタ
を設けることによりそのような専用回路における処理を
行いながら、それとは異なるあるいは関連した、他の専
用回路あるいは汎用処理系における当座あるいは緊急性
を必要とする処理を並列して行うことができ、その制御
も容易となる。複数の専用回路に対し複数のVUが要求
される場合は、それぞれのVUに対応した複数の実行レ
ジスタVRを用意しておくことが望ましい。
【0074】さらに、VU31およびPU32に対し共
通のフェッチユニット21が用意されており、この1つ
のフェッチユニット21でフェッチされた命令コードに
よりVU31およびPU32が制御される。したがっ
て、VU31およびPU32の処理を多重処理も含めて
命令コードレベルで1クロック単位で厳密に制御するこ
とができる。このため、VU31およびPU32の同期
制御はプログラムで行うことができ、VU31およびP
U32により多重処理を行うために通信回路や調停のた
めの処理時間は不要である。そして、VU31およびP
U32が共通のマイクロプログラムで制御されるので、
プログラムを変更することにより、仕様変更あるいは拡
張などにフレキシブルに対応することができる。
【0075】また、VU31を制御する専用命令をマイ
クロコードそのもので用意してあるので、マイクロコー
ドを介して専用回路を制御するために従来避けることの
できなかったレジスタのロード・ストアによる制御のオ
ーバーヘッドをなくすことができる。したがって、この
点でもVU31とPU32を正確な同期の下でタイムラ
グなしに並列に処理を実行することができる。
【0076】上記にて説明したMPEGビットストリー
ムを処理するデータ処理装置であるVLDにおける処理
性能に大きく影響を与える(1)から(6)の要因は、
専用回路を用いて高速性を追求することと、マイクロコ
ードあるいはさらに大きなプログラムで作動するプロセ
ッサを用いて汎用性を追求することのトレードオフとな
る要因である。これに対し、本例の制御ユニット(制御
装置)10およびこれを用いたVLD(データ処理装
置)1では、専用回路と汎用処理系(汎用処理システ
ム)とを極めて簡単な構成で多重化処理できるようにし
ている。このため、上記(1)から(6)の要因を設計
上のトレードオフとしてではなく、専用回路を用いた高
速性と、プロセッサの汎用性を兼ね備えた極めてスマー
トな形でクリアすることができる。そして、回路規模は
大きくならず、さらに、回路設計あるいはプログラム開
発のために費やす時間および費用も削減できる。したが
って、コンパクトで経済的にもメリットの大きな高速V
LDを提供することが可能となる。
【0077】このようなデータ処理装置1において、さ
らに厳密に制御を行いリアルタイム性の高いマイクロコ
ードによる制御装置を実現するためには、1クロックで
ほとんどすべての制御が行えることが重要である。この
ため、本例の制御ユニット10は、さらに、次のような
機能を備えている。
【0078】本例の制御ユニット10においては、マイ
クロコードの効率を上げるために可変長命令形式を採用
している。しかしながら、図4に示すように、可変長命
令形式は、命令実行により消費される命令長が可変であ
るため、コードROM12と制御ユニット10を接続す
るバス幅(16ビット×4、ワード境界)にまたがって
アドレッシングされている(たとえば命令コードIC
(n+1))と、1クロックでフェッチしフェッチレジ
スタFR0ないしFR2にストアすることができない。
このような問題を解決するために従来用いられている手
法はプリフェッチを行いコードキュー(プリフェッチバ
ッファまたはプリフェッチレジスタ)と呼ばれるレジス
タに命令の実行に先立って命令をロードしておくことで
ある。しかし、これは、プリフェッチポインターや命令
分岐発生時にプリフェッチバッファがフラッシュすると
分岐後に実行すべき命令コードがロードされるまで処理
が実質的に停止してしまうという問題を抱えている。こ
れを回避するには、プリデコーダやディレイデド・ブラ
ンチなどの方法が考えられているが、通常のプリフェッ
チ動作とは別の制御が必要となり、少なくともプリフェ
ッチレジスタなどは必要不可欠であり、回路規模はさら
に大きくなる。
【0079】このため、本例の制御ユニット10におい
ては、フェッチユニット21のフェッチアドレス出力ユ
ニット41から常に2ライン分のフェッチアドレスFA
およびNAを出力するようにしている。これにより、ワ
ード境界を跨いで記憶されている命令コードであっても
必ず1クロックでフェッチすることが可能である。さら
に、本例では、個々の命令コードが命令長コード52を
備えているので、後続の命令コードの先頭アドレスを判
断することができる。さらに、最大命令長は3ワードに
なっており、バス幅、すなわちワード境界よりも短い。
したがって、命令コードがワード境界にあるか否かに関
わらず、常に、先頭アドレスから3ワード分のコードを
フェッチし、フェッチレジスタにストアすることができ
る。
【0080】図5に、そのような制御を行う回路例を示
してある。命令コードはワード毎に4つのコードROM
12a、12b、12cおよび12dにメモリインタリ
ーブされており、2ラインのアドレスFAおよびNA
は、各コードROM毎に命令長コード52をデコードし
た結果に基づくフェッチアドレス出力ユニット41から
の信号φaによって選択される。さらに、各コードRO
M12a、12b、12cおよび12dから各々のバス
にフェッチされたデータ出力A、B、CおよびDは、選
択信号φaに基づいて選択され、フェッチレジスタFR
0、FR1およびFR2にストアされる。したがって、
フェッチレジスタFR0ないしFR2には、プログラム
カウンタIPが示す先頭アドレスから3ワード分のデー
タが常にストアされる。このため、命令コードが可変長
であるにも拘わらず、プリフェッチレジスタを必要とせ
ず、ワード境界を跨いで配置されている命令コードであ
っても通常のフェッチ動作により、たとえ分岐時であっ
ても1クロックでフェッチすることが可能である。した
がって、フェッチ動作のペナルティなしで、高速実行を
保証できる。
【0081】このようなフェッチ処理は、命令コードの
最大長が3ワードに限られるものではなく、最大長が4
ワード以上の場合にでも適用できる。ただし、5ワード
以上の場合は、命令コードが整列されるコードROM、
あるいはこれをダウンロードするコードRAMにおいて
最大長と同じまたはそれ以上がワード境界となるように
並べておく必要がある。
【0082】次に本例の制御ユニット10において、リ
アルタイム応答性を高めるために採用されている方法に
ついて説明する。本例の制御ユニットにおいては、全て
の命令を1クロックで完了させることが重要であること
は説明した通りである。このため、コール命令やリター
ン命令、割り込み処理発生時の分岐とそれからの復帰に
伴うスタック操作などを1クロックで実行可能なように
している。従来、コール命令、リターン命令あるいは割
り込み処理の発生後に復帰するときは、スタックに格納
された復帰アドレスが用いられる。その復帰処理におい
ては、復帰アドレスがスタック(メモリ)に格納されて
いるので、復帰アドレスを入手するために1クロック必
要とし、さらに、復帰アドレスを出力するのに1クロッ
クを必要とする。したがって、少なくとも復帰処理に2
クロック必要となってしまう。
【0083】このため、本例の制御ユニット10におい
ては、PU32の実行ユニット36に復帰アドレスを管
理する専用のポインターとテンポラルレジスタTRを別
に設け、これらをレジスタ管理機能39で管理すること
により、この問題を回避している。即ち、復帰アドレス
をスタックに格納する際このテンポラルレジスタTRに
も最新の情報として格納しておく。これにより、テンポ
ラルレジスタTRに格納されたアドレスへ復帰する処理
では、フェッチ制御ユニット44がテンポラルレジスタ
TRのアドレスをフェッチアドレス出力ユニット41に
供給して実行することができ、スタックからアドレスを
ロードする必要がない。したがって、復帰処理を1クロ
ックで行うことができる。さらに、その復帰処理によっ
てテンポラルレジスタTRのアドレスを消費したとき
に、次の復帰アドレス情報をこのテンポラルレジスタに
ロードしておく。これにより、次の復帰処理も1クロッ
クで行うことができる。
【0084】さらに、割り込み処理においては、復帰ア
ドレスIPに加え、フラグ情報(コンディションコー
ド)CCが必要となる。したがって、本例のレジスタ管
理機能39では、これらに専用のテンポラルレジスタT
Rを個々に用意すると共に、2系統のアドレスをスタッ
クに対し出力することにより、同時にこれらの情報IP
およびCCを独立してリードおよびライトが可能な構造
としている。
【0085】図6に、本例のレジスタ管理機能39のう
ち、割り込み復帰に関連した処理を模式的に示してあ
る。ワーク用のRAM13のスタック領域13aおよび
13bには、割り込み復帰アドレスIPおよびフラグ情
報CCが順番にスタックされるようになっている。割り
込み命令が実行されると、その割り込み命令にかかる復
帰アドレスIP(n)およびフラグ情報CC(n)がR
AM13のスタック領域13aおよび13bに記録され
ると共に、それぞれのテンポラルレジスタTR1および
TR2にもストアされる。したがって、この段階で、復
帰処理が行われると、テンポラルレジスタTR1および
TR2にストアされた復帰アドレスIP(n)およびフ
ラグ情報CC(n)がフェッチユニット21により用い
られるので、1クロックで復帰処理を実行できる。
【0086】このとき、スタック13aおよび13bを
アクセスするアドレスUP−AおよびUP−Bとして
は、スタック領域13aおよび13bの次(時間経過と
しては事前の割り込み処理における)の復帰アドレスI
P(n−1)およびフラグ情報CC(n−1)のアドレ
スが出力される。したがって、メモリデータバスには復
帰アドレスIP(n−1)およびフラグ情報CC(n−
1)が出力されている。このため、復帰アドレスIP
(n)に復帰する処理を行うとときに、具体的には次の
クロックの立ち上がりまたは立ち下がりでバスに出力さ
れている次の復帰アドレスIP(n−1)およびフラグ
情報CC(n−1)をテンポラルレジスタTR1および
TR2にロード(ストア)することが可能である。そし
て、次のクロックで復帰アドレスIP(n−1)に復帰
する処理が発生しても、テンポラルレジスタTR1およ
びTR2のデータを用いて1クロックで復帰処理を実行
することができる。割り込み復帰に限らず、他の命令、
たとえば、分岐命令あるいはコール命令におけ復帰処理
においても同様の方法により1クロックで処理すること
ができる。なお、復帰アドレスおよびフラグ情報をダブ
ルワードのデータとしてスタック領域に記憶することに
より割り込み処理の復帰に伴いスタック領域をアクセス
するアドレスを1つにすることも可能である。
【0087】本例の制御ユニット10においては、この
ような制御を行うレジスタ管理機能をPU32に用意し
ておくことにより、1クロックで分岐命令、条件分岐、
サブルーチンコール、割り込み処理要求サービスの復帰
処理を実行できる。したがって、1クロックを問題とす
るリアルタイム処理においても、効率の良いマイクロプ
ログラムを用いることが可能であり、生産性の高いプロ
グラミングによりリアルタイム制御を行うことができ
る。
【0088】このように、本例のデータ処理装置1は、
1クロック単位での正確なリアルタイム制御が可能であ
り、プログラマビリティを保証しながら、従来の専用回
路に代わりこれを並列性の高いマイクロプログラム制御
によりMPEGビットストリームの復号処理を高速で実
現することができる。さらに、1クロック単位での処理
を正確に定義可能で、かつ割り込み処理あるいはエラー
処理などの汎用処理(汎用データ処理)を専用命令と並
行して実行可能である。しかも、同期の問題を命令コー
ドレベルで完全にクリアしており、同期制御のための通
信回路などは不要である。また、重複する回路などを設
ける必要がないので、極めて低コストでコンパクトに実
現することができる。
【0089】もちろん、上記にて説明した本発明にかか
るアーキテクチャを備えた制御ユニットは、VLDに限
定されず、正確なリアルタイム制御が要求され、さら
に、大きなスループットが要求されるデータ処理装置、
ネットワーク制御装置などの他の制御装置においても非
常に有効である。そして、多重処理可能な汎用データ処
理命令を備えたマイクロプログラムによる制御であるに
もかかわらず、専用のステートマシンによる制御と同一
品質の処理を提供することができる。したがって、従来
の専用ステートマシンが適用されている応用分野の全て
に本発明にかかる制御装置の適用を検討することが可能
である。
【0090】
【発明の効果】以上に説明したように、本発明にかかる
マイクロコードによる制御装置は、少なくとも1つの専
用データ処理ユニットと、汎用データ処理ユニットとを
備えており、これらに対し共通のフェッチユニットによ
りマイクロコードで記述された専用命令および汎用命令
を供給できるようにしたものである。したがって、命令
コードレベルで専用データ処理ユニットと汎用データ処
理ユニットを同期制御することが可能であり、回路規模
を大きくすることなく、それらのユニットにおいて多重
処理を行うことができる。このため、開発費用などを含
めたコストパフォーマンスが高く、リアルタイム性が要
求される処理に適した高速処理用の制御装置およびこれ
を用いたデータ処理装置を提供することができる。
【0091】さらに、本発明においては、1クロック単
位での正確なリアルタイム制御を実現する幾つかの構成
を開示しており、大きなスループットとリアルタイム性
が要求される復号装置、符号化装置、通信装置、データ
処理装置、専用命令実行機能およびユーザ定義命令の実
行機能などを備えたマイクロプロセッサーあるいはデジ
タルシグナルプロセッサなど多種多様な分野に適用でき
る。さらに、本発明は、高速処理をソフトウェアにて実
現する目的のFPGA、ゲートアレイ、エンベデッド・
アレイ、スタンダードセル・ベースのLSI、フルカス
タム・ベースのLSIなどにも適用されるものである。
【図面の簡単な説明】
【図1】本発明にかかる制御ユニットを備えた可変長符
号復号用のデータ処理装置(VLD)の概略構成を示す
ブロック図である。
【図2】本発明にかかる制御ユニットの概略構成を示す
ブロック図である。
【図3】図2に示す制御ユニットの命令コードの構成を
示す図である。
【図4】命令コードがコードROMに格納されている様
子を模式的に示す図である。
【図5】コードROMから命令コードをフェッチする構
成の一例を示す図である。
【図6】テンポラルレジスタの制御を模式的に示す図で
ある。
【符号の説明】
1 高速VLD 2 入力FIFO 3 スタートコード検出回路 4 VLCテーブル 5 比較回路 6 ホスト・インターフェース 7 IQ/IDCTインターフェース 8 MCPインターフェース 9 外部CPUインタフェース 10 制御ユニット 11 バス 12 コードROM 13 RAM 19 内部CPU 21 フェッチユニット 22 デコード実行ユニット 23 インタフェースユニット 31 専用データ処理ユニット 32 汎用データ処理ユニット 33、34 デコードユニット 35、36 実行ユニット 37、38 インタフェースサブユニット 39 レジスタ管理機能 41 フェッチデータ出力ユニット 42 フェッチアドレス出力ユニット 43 実行制御ユニット 44 フェッチ制御ユニット 50 命令コード 51 並列処理フラグ 52 命令長コード 53 識別コード 54 オペランド用フィールド FR0、FR1、FR2 フェッチレジスタ VR0、VR1 実行レジスタ TR テンポラルレジスタ

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 特定のデータ処理に適した専用回路に対
    する専用命令をデコードおよび実行可能な少なくとも1
    つの専用データ処理ユニットと、 前記専用命令以外の処理を行う汎用命令をデコードおよ
    び実行可能な汎用データ処理ユニットと、 マイクロコード化された前記専用命令および汎用命令を
    記憶したコードメモリから命令コードをフェッチし、前
    記専用データ処理ユニットおよび汎用データ処理ユニッ
    トに供給するフェッチユニットとを有する制御装置。
  2. 【請求項2】 請求項1において、前記命令コードは、
    前記専用命令および汎用命令、さらに複数の前記専用デ
    ータ処理ユニットを有するときはいずれかの専用データ
    処理ユニットの専用命令であることを識別可能な識別コ
    ードを備えており、 前記フェッチユニットは、前記識別コードをデコードし
    て前記汎用データ処理ユニットまたはいずれかの専用デ
    ータ処理ユニットに対しデコードおよび実行を指示する
    実行制御部を備えていることを特徴とする制御装置。
  3. 【請求項3】 請求項1において、前記命令コードは、
    後続の命令コードが前記汎用データ処理ユニットまたは
    前記専用データ処理ユニット、さらに複数の前記専用デ
    ータ処理ユニットを有するときはそれらのいずれかにお
    いて並列処理可能であることを示す並列処理フラグを備
    えており、さらに、 前記フェッチユニットは、前記命令コードの並列処理フ
    ラグに基づき前記汎用データ処理ユニットまたは前記専
    用データ処理ユニット、さらに複数の前記専用データ処
    理ユニットを有するときはそれらのいずれかに対し前記
    後続の命令コードのデコードおよび実行を指示する実行
    制御部とを備えている制御装置。
  4. 【請求項4】 請求項1において、さらに、少なくとも
    前記汎用データ処理ユニットまたは前記専用データ処理
    ユニット、さらに複数の前記専用データ処理ユニットを
    有するときはそれらのいずれかのための実行レジスタを
    有し、さらに、前記フェッチユニットは、前記実行レジ
    スタに前記命令コードをストアすると同時に後続の命令
    コードをフェッチするフェッチデータ出力部を備えてい
    る制御装置。
  5. 【請求項5】 請求項4において、各々の前記専用デー
    タ処理ユニットのための前記実行レジスタを有する制御
    装置。
  6. 【請求項6】 請求項1において、前記命令コードは、
    後続の命令コードが前記汎用データ処理ユニットまたは
    前記専用データ処理ユニット、さらに複数の前記専用デ
    ータ処理ユニットを有するときはそれらのいずれかにお
    いて並列処理可能であることを示す並列処理フラグを備
    えており、さらに、 前記フェッチユニットは、少なくとも前記汎用データ処
    理ユニットまたは前記専用データ処理ユニット、さらに
    複数の前記専用データ処理ユニットを有するときはそれ
    らのいずれかのための実行レジスタに前記命令コードを
    ストアすると同時に前記後続の命令コードをフェッチす
    るフェッチデータ出力部と、 前記命令コードの並列処理フラグに基づき前記汎用デー
    タ処理ユニットまたは前記専用データ処理ユニット、さ
    らに複数の前記専用データ処理ユニットを有するときは
    それらのいずれかに対し前記後続の命令コードのデコー
    ドおよび実行を指示する実行制御部とを備えている制御
    装置。
  7. 【請求項7】 請求項1において、前記命令コードは、
    該命令コードのワード長を示す命令長コードを備えてお
    り、さらに、 前記フェッチユニットは、前記命令コードに続く最大命
    令長分のマイクロコードを後続の命令コードとしてフェ
    ッチするフェッチデータ出力部を備えている制御装置。
  8. 【請求項8】 請求項7において、前記フェッチユニッ
    トは、さらに、2ライン分の命令フェッチアドレスを出
    力するフェッチアドレス出力部を備えている制御装置。
  9. 【請求項9】 請求項1において、前記フェッチユニッ
    トは、命令フェッチアドレスを出力するフェッチアドレ
    ス出力部と、 このフェッチアドレス出力部に対しテンポラルレジスタ
    に格納された復帰アドレスを供給可能なフェッチ制御部
    とを備えており、さらに、 汎用データ処理ユニットは、分岐または割込み命令を実
    行するときに復帰アドレスをメモリに記憶すると共に前
    記テンポラルレジスタにストアし、復帰処理を実行する
    ときに次の復帰アドレスを前記メモリから前記テンポラ
    ルレジスタにロードするレジスタ管理機能を備えている
    制御装置。
  10. 【請求項10】 請求項9において、前記レジスタ管理
    機能は、割込み復帰アドレス用およびコンディションコ
    ード用の前記テンポラルレジスタを各々備えており、割
    込み命令を実行するときに復帰アドレスおよびコンディ
    ションコードを前記メモリに記憶すると共に、前記割込
    み復帰アドレス用および前記コンディションコード用の
    テンポラルレジスタに各々ストアし、復帰処理を実行す
    るときに復帰アドレスのメモリアドレスおよびコンディ
    ションコードのメモリアドレスを出力し次の復帰アドレ
    スおよびコンディションコードを前記メモリから前記テ
    ンポラルレジスタに各々ロードすることを特徴とする制
    御装置。
  11. 【請求項11】 請求項1ないし10のいずれかに記載
    の制御装置と、この制御装置によって制御可能な少なく
    とも1つの前記専用回路とを有するデータ処理装置。
  12. 【請求項12】 請求項11において、前記専用回路
    は、符号化されたデータストリームからスタートコード
    を検出する回路、または、可変長符号化されたデータを
    連続的に復号する回路であることを特徴とするデータ処
    理装置。
  13. 【請求項13】 請求項1に記載の制御装置の命令コー
    ドであって、前記専用命令および汎用命令、さらに複数
    の前記専用データ処理ユニットを有するときはいずれか
    の専用データ処理ユニットの専用命令であることを識別
    可能な識別コードを備えている前記命令コードが記録さ
    れていることを特徴とする記録媒体。
  14. 【請求項14】 請求項13において、後続の命令コー
    ドが前記専用データ処理ユニットのいずれか、または前
    記汎用データ処理ユニットにおいて並列処理可能である
    ことを示す並列処理フラグをさらに備えた前記命令コー
    ドが記録されていることを特徴とする記録媒体。
  15. 【請求項15】 請求項13または14において、当該
    命令コードのワード長を示す命令長コードを備えた前記
    命令コードが記録されていることを特徴とする記録媒
    体。
  16. 【請求項16】 請求項1に記載の制御装置の制御方法
    であって、前記命令コードは、前記専用命令および汎用
    命令、さらに複数の前記専用データ処理ユニットを有す
    るときはいずれかの専用データ処理ユニットの専用命令
    であることを識別可能な識別コードを備えており、 前記識別コードをデコードして前記汎用データ処理ユニ
    ットまたは前記専用データ処理ユニット、さらに複数の
    前記専用データ処理ユニットを有するときはそれらのい
    ずれかに対しデコードおよび実行を指示する工程を有す
    る制御方法。
  17. 【請求項17】 請求項16において、前記命令コード
    は、後続の命令コードが前記汎用データ処理ユニットま
    たは前記専用データ処理ユニット、さらに複数の前記専
    用データ処理ユニットを有するときはそれらのいずれか
    において並列処理可能であることを示す並列処理フラグ
    を備えており、さらに、 前記命令コードの並列処理フラグに基づき前記汎用デー
    タ処理ユニットまたは前記専用データ処理ユニット、さ
    らに複数の前記専用データ処理ユニットを有するときは
    それらのいずれかに対し前記後続の命令コードのデコー
    ドおよび実行することを指示する工程をさらに有する制
    御方法。
  18. 【請求項18】 請求項17において、さらに、前記制
    御装置は、少なくとも前記汎用データ処理ユニットまた
    は前記専用データ処理ユニット、さらに複数の前記専用
    データ処理ユニットを有するときはそれらのいずれかの
    ための実行レジスタを有しており、 前記実行レジスタに前記命令コードをストアすると同時
    に後続の命令コードをフェッチする工程と、 前記命令コードの並列処理フラグに基づき前記汎用デー
    タ処理ユニットまたは前記専用データ処理ユニット、さ
    らに複数の前記専用データ処理ユニットを有するときは
    それらのいずれかに対し前記後続の命令コードのデコー
    ドおよび実行を指示する工程とをさらに有する制御方
    法。
  19. 【請求項19】 請求項16において、前記命令コード
    は、該命令コードのワード長を示す命令長コードを備え
    ており、さらに、 前記命令コードに続く最大命令長分のマイクロコードを
    後続の命令コードとしてフェッチする工程をさらに有す
    る制御方法。
  20. 【請求項20】 請求項16において、テンポラルレジ
    スタに格納された命令フェッチアドレスを出力する工程
    と、 分岐または割込み命令を実行するときに復帰アドレスを
    メモリに記憶すると共に前記テンポラルレジスタにスト
    アする工程と、 復帰処理を実行するときに次の復帰アドレスを前記メモ
    リから前記テンポラルレジスタにロードする工程とをさ
    らに有する制御方法。
JP11307684A 1998-10-29 1999-10-28 制御装置およびデ―タ処理装置 Pending JP2000207202A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11307684A JP2000207202A (ja) 1998-10-29 1999-10-28 制御装置およびデ―タ処理装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP10-308673 1998-10-29
JP30867398 1998-10-29
JP09/287565 1998-10-29
US09/287,565 US6301650B1 (en) 1998-10-29 1999-04-06 Control unit and data processing system
JP11307684A JP2000207202A (ja) 1998-10-29 1999-10-28 制御装置およびデ―タ処理装置

Publications (1)

Publication Number Publication Date
JP2000207202A true JP2000207202A (ja) 2000-07-28

Family

ID=27338913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11307684A Pending JP2000207202A (ja) 1998-10-29 1999-10-28 制御装置およびデ―タ処理装置

Country Status (1)

Country Link
JP (1) JP2000207202A (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055813A (ja) * 2000-05-29 2002-02-20 Pacific Design Kk データ処理装置
JP2002073331A (ja) * 2000-08-29 2002-03-12 Pacific Design Kk データ処理装置
JP2002073327A (ja) * 2000-08-29 2002-03-12 Pacific Design Kk データ処理ユニット、データ処理装置およびデータ処理ユニットの制御方法
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
JP2002304382A (ja) * 2001-01-31 2002-10-18 Pacific Design Kk データ処理システム、データ処理装置およびその制御方法
JP2003005957A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003005954A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003099252A (ja) * 2001-09-26 2003-04-04 Pacific Design Kk データ処理装置およびその制御方法
US6826674B1 (en) 1999-08-30 2004-11-30 Ip Flex, Inc. Program product and data processor
US6993674B2 (en) 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP2009545079A (ja) * 2006-07-25 2009-12-17 クゥアルコム・インコーポレイテッド 効率的な割込み復帰アドレス保存メカニズム
JP2012018668A (ja) * 2010-07-07 2012-01-26 Arm Ltd 専用機能ハードウェア間の切り替えおよび結果データを生成するソフトウェアルーチンの使用
JP2012059163A (ja) * 2010-09-13 2012-03-22 Sony Corp プロセッサ
JP2014501008A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置
US8719819B2 (en) 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
JP2014215624A (ja) * 2013-04-22 2014-11-17 富士通株式会社 演算処理装置
JP2017059273A (ja) * 2017-01-05 2017-03-23 富士通株式会社 演算処理装置

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904514B1 (en) 1999-08-30 2005-06-07 Ipflex Inc. Data processor
US6826674B1 (en) 1999-08-30 2004-11-30 Ip Flex, Inc. Program product and data processor
JP2002055813A (ja) * 2000-05-29 2002-02-20 Pacific Design Kk データ処理装置
JP4651790B2 (ja) * 2000-08-29 2011-03-16 株式会社ガイア・システム・ソリューション データ処理装置
JP2002073331A (ja) * 2000-08-29 2002-03-12 Pacific Design Kk データ処理装置
JP2002073327A (ja) * 2000-08-29 2002-03-12 Pacific Design Kk データ処理ユニット、データ処理装置およびデータ処理ユニットの制御方法
JP2002149402A (ja) * 2000-11-14 2002-05-24 Pacific Design Kk データ処理装置およびその制御方法
JP2002304382A (ja) * 2001-01-31 2002-10-18 Pacific Design Kk データ処理システム、データ処理装置およびその制御方法
US7165166B2 (en) 2001-01-31 2007-01-16 Pacific Design, Inc. Data processing system, data processing apparatus and control method for a data processing apparatus
JP2003005954A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003005958A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
JP2003005957A (ja) * 2001-06-25 2003-01-10 Pacific Design Kk データ処理装置およびその制御方法
US6948049B2 (en) 2001-06-25 2005-09-20 Pacific Design Inc. Data processing system and control method
JP2003099252A (ja) * 2001-09-26 2003-04-04 Pacific Design Kk データ処理装置およびその制御方法
US6993674B2 (en) 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
US8719819B2 (en) 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
US10452403B2 (en) 2005-06-30 2019-10-22 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
US9990206B2 (en) 2005-06-30 2018-06-05 Intel Corporation Mechanism for instruction set based thread execution of a plurality of instruction sequencers
US9720697B2 (en) 2005-06-30 2017-08-01 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
JP2009545079A (ja) * 2006-07-25 2009-12-17 クゥアルコム・インコーポレイテッド 効率的な割込み復帰アドレス保存メカニズム
JP2014099192A (ja) * 2006-07-25 2014-05-29 Qualcomm Incorporated 効率的な割込み復帰アドレス保存メカニズム
US8922568B2 (en) 2010-07-07 2014-12-30 Arm Limited Switching between dedicated function hardware and use of a software routine to generate result data
US9417877B2 (en) 2010-07-07 2016-08-16 Arm Limited Switching between dedicated function hardware and use of a software routine to generate result data
JP2012018668A (ja) * 2010-07-07 2012-01-26 Arm Ltd 専用機能ハードウェア間の切り替えおよび結果データを生成するソフトウェアルーチンの使用
US9841978B2 (en) 2010-09-13 2017-12-12 Sony Corporation Processor with a program counter increment based on decoding of predecode bits
JP2012059163A (ja) * 2010-09-13 2012-03-22 Sony Corp プロセッサ
US11200059B2 (en) 2010-09-13 2021-12-14 Sony Corporation Processor with a program counter increment based on decoding of predecode bits
JP2014501009A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置
JP2014501008A (ja) * 2010-11-18 2014-01-16 日本テキサス・インスツルメンツ株式会社 データを移動させるための方法及び装置
JP2014215624A (ja) * 2013-04-22 2014-11-17 富士通株式会社 演算処理装置
JP2017059273A (ja) * 2017-01-05 2017-03-23 富士通株式会社 演算処理装置

Similar Documents

Publication Publication Date Title
JP2000207202A (ja) 制御装置およびデ―タ処理装置
US6301650B1 (en) Control unit and data processing system
US6216223B1 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6587058B1 (en) Processing circuit and method for variable-length coding and decoding
KR100502586B1 (ko) 처리효율을높인영상음성처리장치
US5961628A (en) Load and store unit for a vector processor
KR100733943B1 (ko) 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로
JPH09212358A (ja) データ処理装置及びマイクロプロセッサ
KR20030053920A (ko) 멀티미디어 신호처리를 위한 영상복원 프로세서
JP2007133456A (ja) 半導体装置
US7313671B2 (en) Processing apparatus, processing method and compiler
US6597810B1 (en) Image processor
US7761688B1 (en) Multiple thread in-order issue in-order completion DSP and micro-controller
WO2006059444A1 (ja) マルチプロセッサシステムとそのシステムにおけるプログラム実行方法
US6948049B2 (en) Data processing system and control method
US7246220B1 (en) Architecture for hardware-assisted context switching between register groups dedicated to time-critical or non-time critical tasks without saving state
JPH03233630A (ja) 情報処理装置
US20050080784A1 (en) Data processing system
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
WO2000060457A1 (en) Parallel data processing
KR100376639B1 (ko) 프로세서에서 사용하기에 적합한 메모리 데이터 액세스구조 및 방법
JPH04255995A (ja) 命令キャッシュ
JP2002073351A (ja) データ処理ユニット、データ処理装置および制御方法
Yoshikawa et al. An implementation of hardware accelerator using dynamically reconfigurable architecture