JPH1093961A - ビデオデータ処理方法及び装置 - Google Patents

ビデオデータ処理方法及び装置

Info

Publication number
JPH1093961A
JPH1093961A JP9235398A JP23539897A JPH1093961A JP H1093961 A JPH1093961 A JP H1093961A JP 9235398 A JP9235398 A JP 9235398A JP 23539897 A JP23539897 A JP 23539897A JP H1093961 A JPH1093961 A JP H1093961A
Authority
JP
Japan
Prior art keywords
data
bit
address
register
processor
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.)
Granted
Application number
JP9235398A
Other languages
English (en)
Other versions
JP4290775B2 (ja
Inventor
Cliff Reader
クリフ・リーダー
Jae Cheol Son
ジャエ・チォル・ソン
Amjad Qureshi
アムジャド・クレシ
Le Nguyen
ル・ングイェン
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Priority claimed from US08/699,382 external-priority patent/US6192073B1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JPH1093961A publication Critical patent/JPH1093961A/ja
Application granted granted Critical
Publication of JP4290775B2 publication Critical patent/JP4290775B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation

Abstract

(57)【要約】 【課題】 ビデオデータの高速処理動作ができる方法及
び回路を提供する。 【解決手段】 同時に動作可能な3個の処理器、スカラ
ー処理器210、ベクトル処理器220及びビットスト
リーム処理器245とを含む。ビデオデータをエンコー
ディングまたはデコーディングすることにおいて、ベク
トル処理器220は、単一命令多重データ処理器により
効率的に遂行され得る動作を遂行する。ビットストリー
ム処理器245は、ハフマン及びRLCエンコーディン
グまたはデコーディングを遂行する。ビットストリーム
処理器245は、コンピュータシステムが多数個のデー
タストリームを同時に処理する。スカラー処理器210
及びベクトル処理器220は、単一算術またはブール命
令を実行するようにプログラムされ得る。ビットストリ
ーム処理器245は、全体的なビデオデータ処理動作を
遂行するためにプログラムされ得る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータによ
るデータ処理に関し、特にコンピュータによるビデオデ
ータ処理に関する。
【0002】
【従来の技術】通常、コンピュータはシステムデータを
圧縮したり復元するために使用されて来た。システムデ
ータには、停止及び/または動画像のイメージを含むビ
デオデータが含まれる。また、システムデータには、オ
ーディオデータ、例えば動画像のサウンドトラックが含
まれる。ビデオデータの高速処理が可能な方法及び回路
を提供することが好ましい。
【0003】
【発明が解決しようとする課題】従って、本発明の目的
は、ビデオデータの高速処理ができる方法及び回路を提
供することにある。
【0004】
【課題を解決するための手段】いくつかの実施例におい
て、本発明によるコンピュータシステムは、同時に動作
可能な3個の処理器、すなわちスカラー処理器、ベクト
ル処理器及びビットストリーム処理器を含む。ビデオデ
ータをエンコーディングまたはデコーディングすること
において、ベクトル処理器は、単一命令多重データ(Sin
gle Instruction Multiple Data:SIMD)処理器により
効率的に行われる動作を遂行する。このような動作とし
ては、1)離散余弦変換(Discrete Cosine Transform:
DCT)のような線形データ変換、2)モーション補償な
どがある。ビットストリーム処理器は、ワードまたは半
ワード(half-words)より特定のビット上における動作を
含む動作を遂行する。このような動作としては、例え
ば、MPEG−1、MPEG−2、H.261、H.2
63に使われるハフマン(huffman)及びRLCエンコー
ディングとデコーディングなどがある。スカラー処理器
は、ハイレベルビデオ処理(例えば、ピクチャーレベル
処理)を遂行し、ベクトル及びビットストリーム処理器
の動作を同期化させ、外部装置のインターフェースを制
御する。いつくかの実施例において、コンピュータシス
テムは、多数のデータストリームを同時に処理すること
ができる。その結果、コンピュータシステムの使用者
は、2個以上の会合や画像会議も可能である。ビットス
トリーム処理器では、多様なビットストリームが実時間
的に同時にエンコーディングまたはデコーディングされ
るように文脈(contexts)を切換することができるので、
多重データストリームの同時処理が可能になる。
【0005】いくつかの実施例において、スカラー及び
ベクトル処理器は、各処理器が単一算術命令またはブー
ル(boolean)命令を遂行するようにプログラムされ得る
点から見るとプログラム可能である。ビットストリーム
処理器は単一算術命令またはブール(boolean)命令を遂
行するようにプログラムされ得ない点から見ると、プロ
グラム不能である。むしろ、ビットストリーム処理器
は、1セットのビデオデータに対し、全体的なビデオデ
ータ処理動作を遂行するようにプログラムされ得る。ビ
ットストリーム処理器が、単一算術命令またはブール命
令を遂行するためにプログラムされないようにすること
で、ビットストリーム処理器が高速で動作することがで
きる。スカラー及びベクトル処理器がプログラム可能に
することにより、ビデオデータエンコーディング及びデ
コーディングの標準から変更されたシステムを採択する
ことが容易である。
【0006】
【発明の実施の形態】図1は、マルチメディア処理器1
10を含むメディアカード100を示している。この実
施の形態において、マルチメディア処理器110は、そ
の仕様がカリフォルニアサンホセに常住する三星半導体
株式会社で製作されるタイプMSP−1EX(商標名)
処理器である。処理器MSP−1EXは下記の付録Aに
記述されている。処理器110は、ローカルバス105
を通してホストコンピュータシステム(図示せず)と通
信する。いくつかの実施例において、バス105は、3
2ビット、33MHz PCIバスである。処理器11
0から出力されるデジタルビデオデータは、D/A(デ
ジタル/アナログ)変換器112に結合される。ビデオ
部分だけでなく、デジタルビデオデータは、オーディオ
部分、例えば映画のサウンドトラックを含むことができ
る。変換器112の出力は、アナログデータを処理する
TVセット(図示せず)または他のシステムに結合され
得る。いくつかの実施例において、処理器110はA/
D(アナログ/デジタル)変換器(図4から図6参照)
から出力されるデジタルビデオデータを受信するための
入力ポートを含む。
【0007】処理器110は、コーデック(CODE
C)114に連結される。CODEC114は、デープ
レコーダ(図示されていない)または他の装置からアナ
ログオーディオデータを受信する。CODEC114
は、電話線(図示されていない)からアナログ電話デー
タを受信する。CODEC114は、アナログデータを
デジタル化してから、これを処理器110へ伝送する。
CODEC114は、処理器110からデジタルデータ
を受信し、このデータをアナログ形態に変換し、必要に
よってこのアナログデータを伝送する。処理器110は
バス122によりメモリ120に連結される。図1にお
いて、メモリ120はSDRAM(synchronous DRAM)
であり、バス122は64ビット、80MHzバスであ
る。他の実施例では、他のメモリ、バス幅、及びバス速
度が使用される。非同期メモリ及びバスがいくつかの実
施例に使用される。カード100のいくつかの実施例
は、Le.Nguyenを出願人とし、本出願と同日付
で出願された“Multiprocessor Operation in a Multim
edia SignalProcessor”という発明の名称を有する、米
合衆国特許出願明細書(弁理士参照番号:M−4364
US)に記載されており、その全体的な内容は、本発明
で参照として引用される。
【0008】図2は、処理器110の一実施例によるブ
ロック図である。処理器110は、スカラー処理器21
0、ベクトル処理器(VP)220及びビットストリーム処
理器(BP)245を含む。いくつかの実施例において、処
理器210は40MHzで動作し、公知の標準ARM7
命令語セットを支援する32ビットRISC処理器であ
る。ベクトル処理器220は80MHzで動作し、28
8ビットベクトルレジスタを備えた単一命令多重データ
(SIMD)処理器である。VP220の一実施例は、
Songらを出願人とし、本出願と同日付で出願された
“Efficient Context Saving and Restoring in a Mult
itasking Computing System Environment”という発明
の名称を有する、米合衆国特許出願明細書(弁理士参照
番号:M−4365US)に記載されており、その全体
的な内容は、本発明で参照として引用される。処理器2
10、220は、単一算術命令またはブール命令また
は、これらの命令のシーケンスを遂行するようにプログ
ラムできる。
【0009】いくつかの実施例において、ビデオデータ
処理を高速で行うためにビットストリーム処理器245
は、単一算術命令またはブール命令を遂行するためにプ
ログラムされないように設計される。特に、BP245
はADD、OR、“ADDAND ACCUMULAT
E”等のような単一命令を遂行するようにプログラムさ
れ得ない。かえって、BP245は付録Aの10章に記
述されているビデオデータ処理動作を遂行するようにプ
ログラムされる。これと同時に、スカラー処理器210
とベクトル処理器220は、単一算術またはブール命令
を遂行するようにプログラムされ得る。従って、処理器
110は、ビデオ標準から変形を図ることができる。
【0010】図2の図示のとおり、スカラー処理器21
0とベクトル処理器220は、キャッシュサブシステム
230に連結される。キャッシュサブシステム230
は、バス(IOBUS;240)とバス(FBUS;250)に連結され
る。いくつかの実施例において、IOBUS240は3
2ビット、40MHzバスであり、FBUS250は6
4ビット、80MHzである。IOBUS240は、ビ
ットストリーム処理器245、インタラプトコントロー
ラー248、全二重通信(full-duplex)UARTユニッ
ト243と、4個のタイマー242に連結される。FB
US250は、メモリバス122(図1参照)に連結さ
れたメモリコントローラー258に連結される。FBU
S250は、PCIバス105に連結されたPCIバス
インターフェース回路255に連結される。また、FB
US250は、ビデオD/A112(図1参照)、CO
DEC114と場合によってビデオA/D変換器(図4
から図6の図示と同様である)をインターフェイスする
回路を含む、装置インターフェース回路252(“Cust
omer ASIC”とも呼ばれる)に連結される。また、処理
器110はメモリデータ移動器290を含む。
【0011】処理器110は、多数個のデータストリー
ムが同時に処理可能である。例えば、処理器110の使
用者が2個以上の会合と画像会議をする場合、処理器1
10は使用者が多数個の会合が視聴できるように、ビデ
オ及びオーディオ処理を遂行する。多重ビデオデータス
トリームを処理するために、処理器110は文脈切換を
支援する。これはBP245が多重データストリームの
間を切換することを意味する。画像会議において、各デ
ータストリームは、遠く離れている別個の会合から送ら
れることもできる。その代案として、使用者が映像会議
に参加し、同時に画像会議または映画上映を視聴するこ
とができるように、付加的なデータストリームが映画チ
ャンネルから送られることができる。文脈切換は、実施
例の10.12節に記述されている。文脈が切り換えら
れると、スカラー処理器210は現在の文脈を貯蔵し、
他の文脈を処理するためにBP245を初期化させる。
【0012】BP245は、下記のようなビデオデータ
フォーマットすなわち、 1.ISO/IEC標準11172(1992年)に記
述されているMPEG−1; 2.文書ISO/IEC JTC 1/SC 29 N 0
981 Rev(1995年3月31日)に記述される
いるMPEG−2; 3.“ITU−T勧告H.261”(1993年3月)
に記述されているH.261;及び 4.“ドラフトITU−T勧告H.263”(1996
年5月2日)に記述されているH.263 を処理することができる。
【0013】ビデオデータは、スカラー処理器210、
ベクトル処理器220及びビットストリーム処理器24
5に分けられて処理されることによって、高速処理が実
現される。さらに詳しくには、ベクトル処理器220
は、線形変換(DCTまたは逆DCT)とモーション補
償を遂行する。このような動作は、ベクトル処理器に適
する。なぜなら、これらの動作は、時々にデータのいろ
んな部分に対して遂行される同一の命令を必要とするか
らである。ビットストリーム処理器245は、ハフマン
デコーディング及びエンコーディングとジグザグビット
ストリーム処理を遂行する。スカラー処理器210は、
ビデオ及びオーディオ逆多重化と同期化及びI/Oイン
ターフェーシング作業を遂行する。エンコーディング及
びデコーディング動作の例は、実施例1の10.6.1
及び10.6.2節に現れている。エンコーディング動
作において、圧縮されないデジタルデータが、バス10
5を通してフレームメモリ120またはホストシステム
(図示せず)から到着する。いくつかの実施例におい
て、装置インターフェース回路252は、ビデオA/D
変換器を含み、圧縮されていないデータが変換器から到
着する。ベクトル処理器220は、量子化、DCT及び
モーション補償を遂行する。ビットストリーム処理器2
45は、VP220の出力を受信し、GOB(Group of
Blocks)及びスライスを生成する。特に、BP245は
ハフマン及びRLCエンコーディングとジグザグビット
ストリーム処理を遂行する。スカラー処理器210は、
BP245の出力を受信し、ピクチャー階層符号化(pic
ture layer coding)、GOP(group of pictures)符号
化及び、シーケンス階層符号化を遂行する。その後、ス
カラー処理器210は、オーディオ及びビデオデータを
多重化し、符号化されたデータをバス(105または1
22)を通して、貯蔵装置またはネットワークに伝送す
る。ネットワークへの伝送は、いくつかの実施例のネッ
トワークに連結された装置インターフェース回路252
への伝送を含む。
【0014】デコーディングにおいて、処理は逆に遂行
される。スカラー処理器210は、システムデータをビ
デオ及びオーディオ成分に逆多重化し、ビデオデータの
シーケンス階層、GOP及びピクチャー階層デコーディ
ングを遂行する。その結果、生成されたGOBまたはス
ライスは、ビットストリーム処理器245に供給され
る。処理器245はジグザグ処理とハフマン及びRLC
デコーディングを遂行する。VP220は、BP245
の出力を受信し逆量子化、IDCT及びモーション補償
を遂行する。VP220は、必要なら(例えば、ピクチ
ャーイメージのエッジを平坦化させる場合)、任意の前
処理を遂行し、復元されたデジタルピクチャーを装置イ
ンターフェース回路252または貯蔵装置に供給する。
スカラー処理器210、ベクトル処理器220とビット
ストリーム処理器245は、多くのブロックのデータに
対して並列に動作することができる。スカラー処理器2
10がピクチャー層及び上位層を処理することにより、
処理器内部の通信を減少させる。これは、ピクチャー層
及び上位層が、制御及びI/O機能のためにスカラー処
理器210では使用されるが、ベクトル処理器220及
びビットストリーム処理器245では使用されない情報
を含んでいるからである。このような情報の例として
は、フレームを装置インターフェース回路252に伝送
するために、スカラー処理器210で使用されるフレー
ムレートが挙げられる。
【0015】図3は、ビットストリーム処理器245の
一実施例によるブロック図である。図3に示された信号
は、実施例1の10.5節に記述されている。この信号
は、ビットストリーム処理器245とIOBUS240
(図2参照)との間のインターフェースを提供する。B
P245において、これらの信号は、SRAM320を
含むIOBUSインターフェースユニット310により
処理される。また、BP245は、VLC FIFOユ
ニット330、VLC LUT ROM340、制御ス
テートマシン350と、レジスタファイルとSRAMを
含むBPコアユニット360を含む。図3のブロック
は、実施例1の10.4節に記述されている。 ROM
340は、4個の標準、すなわちMPEG−1、MPE
G−2、H.261及びH.263に対しハフマンエン
コーディング及びデコーディング時に使用されるルック
アップテーブルを含む。テーブルに貯蔵される情報量が
膨大であるにも拘わらず、ROM340は768*12
ビットの小さいサイズを有する。小さいサイズはテーブ
ルを共有し、実施例1の4節に記述されているような他
の技術により実現される。
【0016】本発明を特定の好ましい実施例に関連し図
示し説明したが、本発明はそれに限定されず、特許請求
の範囲により備えられる精神や分野から離脱しない限度
内で、本発明が多様に改造及び変化され得ることが、当
業界で通常の知識を有する者なら容易に分かる。特に、
本発明は任意の回路、クロックレートまたはこれらの実
施例のタイミングにより限定されるものでない。
【0017】
【実施例1】 MSP−1EXシステム仕様 第 1 章 技術的な概要 本章は、ハードウェア及びソフトウェア設計者が見せあ
げるマルチメディア信号処理器(“MSP−x”)の技
術的な概要を説明する。 1.1 機能 マルチメディア信号処理器(MSP−x)は、パーソナ
ルコンピュータ及び注文者製品応用のための広範囲な集
積機能を提供するために、一群の単一チップVLSI装
置を形成する。MSP群は、最適の費用/性能ために、
計算に対する単一命令多重データ(SIMD)モデルを
適用する強力なベクトル処理器の構造に基づいたもので
ある。その特性は下記のとおりである。 *完全なプログラム可能性 *ARM命令語セット構造に基づく。 *集積された40MHz ARM7 RISC CPUコ
ア *高性能デジタル信号処理のための80MHzベクトル
処理器 *9ビット整数ALU動作のための2.56Gops *16ビット整数掛け算−累積動作のための2.56G
ops *32ビットIEEE浮動小数点加算のための640M
folps *32ビットIEEE浮動小数点掛け算&加算のための
1280Mflop *選択的な注文型化またはグラフィックス機能のための
未使用の10Kgates *0.65μm 3.3v/5v CMOS技術に基づ
く。 *128ピン−128ピンパッケージ MSPは初期に4個の主要機能を支援する。 *ビデオ *オーディオ/サウンド *遠距離通信 *2D/3Dグラフィックス(選択) 1.1.1 ビデオ *全機能がファームウェアでプログラム可能である。 *実時間MPEG−1デコーディング及びエンコーディ
ング *実時間MPEG−2デコーディング *ほぼ実時間的なMPEG−2エンコーディング *実時間H.324デコーディング及びエンコーディン
グ *任意のスクリーンサイズまたは解像度に対するイメー
ジスケーリング *RGBとYUV間の色空間変換 *ピクチャー輪郭強調及び雑音減少のためのイメージフ
ィルタリング *4/3フールダウン変換 1.1.2 オーディオ/サウンド *全機能がファームウェアでプログラム可能である。 *実時間MPEG−1オーディオデコーディング及びエ
ンコーディング *実時間MPEG−2オーディオデコーディング及びエ
ンコーディング *実時間H.320及びH.324オーディオデコーデ
ィング及びエンコーディング *実時間G.728及びG.723音声コーディング *実時間サウンドブラスターエミュレーション *ウェーブテーブル合成 *FM合成 1.1.3 遠距離通信 1.1.3.1 モデム *標準非同期COMポートインターフェース(NS 1
6550A UART互換可能) *28.8Kから2.4KbpsまでのV.34 *4800、9600無符号化及び9600bpsトレ
リス符号化に対するデータレートを有するCCITT−
V.32bis *Hayes AT命令語セットの互換性 *呼出進行モニタ *V.25bisオートダイアル *DTMF及びパルスダイアリング *非同期エラー復旧プロトコル *V.42エラー訂正 1.1.3.2 ファクシミリ *9600bpsまたは7200bpsのV.29 *4800bpsまたは2400bpsのV.27 *呼出進行モニタ *DTMF及びパルスダイアリング *G3トランスファーら *T.4/T.30動作 1.1.3.3 電話応答 *電話機セットまたはマイクロフォンを通して挨拶の言
葉録音 *受信された電話に対し自動応答し、予め録音されたメ
ッセージに応信 *電話をかけた相手からのメッセージ録音 *電話をかけた相手が残したメッセージ再生 1.1.4. 2D/3Dグラフィックス (選択) *BITBLT *2Dライン&多角形ドローイング及びシェージング *3Dポイント、ライン及び三角形に対する幾何学及び
採光計算 *テクスチャーマッピングで3Dカラー計算 *ブレンディング
【0018】1.2 ハードウェアの構造 1.2.1 概要 MSP−1マルチメディアコプロセッサ群は、集積度レ
ベル、費用及び性能を含む多様な要求事項を満足させる
ように設計する。MSP−1処理器を含むブロック図は
図4の図示のとおりである。MSP−1群は、下記のよ
うなピン−アウトオプションを行う。 *MSP−1は、外部SDRAMを使用せず、エントリ
−レベルとして使用され るように設計される。 *MSP−1EXは、外部SDRAMとインターフェー
シングのための32ビットメモリを含む。 *MSP−1Fは、外部SDRAMとインターフェーシ
ングのための64ビットメモリを含む。 *MSP−1Gは、集積されたSVGAコントローラ
ー、高速化した3Dグラフィックス加速が加えられたR
AMDACを含む。図5は、MSP−1E処理器を含む
システムのブロック図である。 1.2.2 外部コーデック 図6は、外部コーデックと共にMSP−1処理器を含む
システムのブロック図である。
【0019】1.2.2.1 MSP−1EXの材料目
次は、MSP−1EXに対して提示された材料目録であ
る。 *MSP−1EX *512K×32ビット同期DRAM *NTSC/PALエンコーダー(三星のKS011
9) *オーディオ&遠距離通信CODEC(アナログデバイ
ス社のAD1843) *その他(キャパシタ、抵抗、増幅器、コネクタ等) *プリントされた回路基板
【0020】1.3 マイクロ構造 1.3.1 概要 基本的にMSPマイクロ構造は、非常に強力なDSPコ
アと、注文者社により規定されたメモリ&I/Oサブシ
ステムとから構成される(図2参照)。DSPコアは、
下記のことを含む。 *40MHzで動作し、一般的な処理のために使用され
る32ビットARM7 RISC CPU *80MHzで動作し、信号処理のために使用されるベ
クトル処理器 *80MHzで動作し、2KB命令キャッシュ、5KB
データキャッシュ及び16KB ROMキャッシュを有
する共有されたキャッシュサブシステム。データキャッ
シュは、ハードウェアまたはソフトウェアにより制御さ
れ得る。 *80MHzで動作し、内部の多くのFBUS周辺機器
とインターフェースする高速64ビットバス(FBU
S) *40MHzで動作し、内部の多くのIOBUS周辺機
器とインターフェースする低速32ビットバス(IOB
US) 内部のFBUS周辺機器は下記のものを含む。 *32ビット33MHz PCIバスインターフェース *64ビットSDRAMメモリコントローラー *8チャンネルDMAコントローラー *注文者ASICロジックブロック。注文者ASICロ
ジックブロックは、多様なアナログコーデックに対する
インターフェースと、注文者の規定したI/O装置を含
む合計10Kgatesを提供する。インターフェース
ロジックは、三星のKS0119NTSCエンコーダー
及び、アナログデバイス社のAD1843コーデックを
支援する。
【0021】*ホスト(Pentlure)メモリからMSPロー
カルSDRAMメモリまでのデータをDMAすることに
使用されるメモリデータ移動器 *ビデオビットストリームを処理するビットストリーム
処理器 *16450UARTシリアルライン *8254−互換可能なタイマー *8259−互換可能なインタラプトコントローラー また、MSPはソフトウェアで制御される初期化及び、
インタラプトのために使用される特殊なレジスタ(MS
P制御レジスタ)を含む。
【0022】 1.4 MSP−1EXピン説明 1.4.1 合計:256ピン 1.4.2 PCIバスインターフェース(53ピン) CLK クロック入力ピン RSTL 入力ピンリセット、アクチブロー AD[31:0] アドレス及びデータバスピン C_BE0L コントロール&バイト0イネーブルピン、アクチブロー C_BE1L コントロール&バイト1イネーブルピン、アクチブロー C_BE2L コントロール&バイト2イネーブルピン、アクチブロー C_BE3L コントロール&バイト3イネーブルピン、アクチブロー PAR パリティピン FRAMEL サイクルフレームピン、アクチブロー IRDYL 開始者準備ピン、アクチブロー TRDYL ターゲット準備ピン、アクチブロー STOPL 停止トランザクションピン、アクチブロー LOCKL ロックトランザクションピン、アクチブロー IDSEL 初期化装置選択入力ピン DEVSEL 装置選択ピン、アクチブロー REQL バス要請ピン、アクチブロー GNTL バス承認ピン、アクチブロー PERRL パリティエラーピン、アクチブロー SERRL システムエラーピン、アクチブロー INTAL インタラプトピン、アクチブロー 1.4.3 その他(6ピン) TCK JTAGテストクロック入力ピン TDI JTAGテストデータ入力ピン TDO JTAGテストデータ出力ピン TMS JTAGテストモード選択入力ピン TRSTL JTAGテストリセット入力ピン CLK クロック入力。これは40MHzクロック入力ピンであ る。 1.4.4 KS0119 NTSC/PALエンコーダーインターフェース (24ピン) SFRS 3ワイヤーホストインターフェースのためにKS011 9に出力されるフレーム同期 SCLK KS0119に出力されるシリアルクロック SDAT シリアルデータI/O BGHS MSPに入力される水平同期信号 BGVS MSPに入力される垂直同期信号 MSSEL マスタ選択 PD[15:0] KS0119に出力されるピクセルデータ BGCLK KS0119に出力されるピクセルクロック PROMCSL BIOS PROMチップ選択
【0023】1.4.5 AD1843オーディオ&遠
距離通信コーデックインターフェース(6ピン) A43SCLK シリアルクロック入/出力。SCL
Kはバスマスタ(BM)ピンがHIに駆動される場合、
クロックをシリアルバスに対する出力として供給し、B
MインがLOに駆動される場合、クロックを入力として
受け入れる両方向信号である。 A43SDFS シリアルデータフレーム同期入/出
力。SDFSはバスマスタ(BM)ピンがHIに駆動さ
れる場合、フレーム同期信号をシリアルバスに対する出
力として供給し、BMピンがLOに駆動される場合、フ
レーム同期信号を入力として受け入れる両方向信号であ
る。 A43SDI MSPから出力されるAD1843
に対するシリアルデータ入力。全制御及び再生トランス
ファーは、16ビット長さのMSBである。 A43SDO AD1843から出力されMSPに
入力されるシリアルデータ出力。全ステータス&制御レ
ジスタ読出及び再生トランスファーは、16ビット長さ
のMSBである。
【0024】1.4.6 メモリバスインターフェース
(87ピン) RAS1L 出力ピン(アクチブロー)。これは
MA[11:0]からのローアドレスを、選択されたSDRA
Mバンクの内部ローアドレスバッファにラッチするロー
アドレスストローブである。 CAS 1L 出力ピン(アクチブロー)。これは
MA[11:0]からのコラムアドレスを、選択されたSDR
AMバンクの内部コラムアドレスバッファにラッチする
コラムアドレスストローブである。 MWEL 出力ピン(アクチブロー)。これは
SDRAMに対する記入イネーブルである。 MAI[11:0] 出力ピン。SDRAMに対し多重化
されたロー及びコラムアドレス信号。 MD[63:0] 入/出力SDRAMデータピン MA23 出力ピン。メモリアドレスビット<
23> MA24 出力ピン。メモリアドレスビット<
24> DQM 出力ピン。クロック以降、SDRA
Mデータをハイインピーダンスにし、出力をマスクさせ
る。(このピンは、同期DRAMインターフェースため
にのみ使用される。) MCKE 出力ピン。次のクロックサイクルか
ら動作を中止させるために、SDRAMシステムクロッ
クをマスクさせる。 MCS0L 出力ピン(アクチブロー)。下位3
2ビットに対するSDRAMチップ選択 MCS1L 出力ピン(アクチブロー)。上位3
2ビットに対するSDRAMチップ選択 MR.DYH 出力ピン。SDRAM準備信号 MEMCLK 出力ピン。これはSDRAMに対す
るクロック出力ピンである。 1.4.7 電源 VDD 3.3ボルト電源ピン VCC 5ボルト電源ピン VSS 接地ピン MSP−1EXピン指定
【0025】
【表1】
【表2】
【表3】
【表4】
【表5】
【表6】
【表7】
【表8】
【0026】1.5 ファームウェア構造 1.5.1 概要 MSPは、ベクトル化されたDSPファームウェアライ
ブラリー(ベクトル処理器により実行される)の非常に
最適化された結合及びシステム管理機能(ARM7によ
り実行される)を通して強力で且つ開放的な応用環境を
多く提供する。MSPは信号処理開発とホスト応用開発
とを分離することによって、スケール可能な性能、費用
効果的なマルチメディア&通信、便利な使用及び容易な
取扱い等を提供する。また、応用開発と維持費用を減少
させる。 1.5.2 ファームウェア構造 MSPファームウェアシステム構造は、図7の図示のと
おりである。陰影領域はMSPシステム要素を表し、残
りの余白は内在するPC応用及び動作システムを表す。 1.5.2.1 MOSA(マルチメディア動作システ
ムの構造) MSPの実時間動作システムカーネルは“MOSA”と
いい、これはマイクロソフトの実時間カーネルMMOS
Aのサブセットである。MOSAは実時間的で、丈夫で
あり、マルチタスキングが可能であり、先買権のある動
作システムであって、MSP上で具現されたマルチメデ
ィア応用のために活用される。これは下記のような主要
機能を遂行する。 *ホストウインド95とウインドズNTとのインターフ
ェーシング *ホストから選択された応用ファームウェアのダウンロ
ーディング *ARM7及びベクトル処理器で遂行するためMSPタ
スクのスケジューリング *メモリ&I/O装置を含むすべてのMSPシステム資
源の管理 *MSPタスク間の通信の同期化 *MSP関連のインタラプト、例外及びステータス条件
のリポーティングMOSAはARM7上で排他的に動作
する。より詳細なものは、MMOSA実時間カーネル仕
様を参照する。 1.5.2.2 マルチメディアライブラリモジュール マルチメディアライブラリーモジュールは、データ圧
縮、MPEGビデオ&オーディオ、音声コーディング及
び合成、サウンドブラスター互換可能なオーディオ等の
ような機能を遂行するボード範囲のモジュールを提供す
る。各モジュールは、MSP環境で最適化され、マルチ
タスキング環境で遂行するように設計される。
【0027】1.5.3 テレコムライブラリー 1.5.3.1 概要 適切なDSPファームウェアと共に、MSPはインタセ
プトされる音声応用を支援し、かかってくる電話呼出に
応答し、ハードディスク上にメッセージを貯蔵するよう
に使用され得る。また、システムスピーカーは、半二重
(half-duplex)スピーカーフォンをサービスするために
マイクロフォンを使用することができる。かかってくる
電話及びかける電話の進行が感知され、システムで使用
される。また、電話進行トーンは、プログラム制御の下
で、選択された電話機の送受話器、システムスピーカ
ー、ステレオヘッドフォンまたは、オーディオ出力チャ
ンネルを通して聞ける。
【0028】1.6 プログラミングモデル 1.6.1 概要 ハードウェアの観点から見る時、MSPは2個のCPU
と、多数の集積された周辺装置を含む単一チップの解決
案である。ソフトウェアの観点から見る時MSPはPC
Iバス上に存在する高性能デジタル信号処理(DSP)
装置である。ホストCPUによるMSPの制御は、下記
のいずれか1つによって実現され得る。 *PCIバスを通してMSP制御&ステータスレジスタ
の読み取り/書込または *ホストシステムメモリに存在する共有データ構造 *MSPローカルメモリに存在する共有データ構造 MSPプログラムの遂行は常にARM7 CPUから始
まり、これは順次的にベクトル処理器にある第1従属的
な実行ストリームを初期化させ得る。ARM7CPUと
ベクトル処理器との間の制御同期化は、ARM7の任意
のコプロセッサ命令(STARTVP、INTVP、TESTVP)と、ベ
クトル処理器における特殊な命令(VJOIN、VINT)によっ
て遂行される。ARM7 CPUとベクトル処理器との
間のデータ伝送はARM7で実行されるデータ移動命令
によって遂行され得る。ARM7 CPUは一般的に、
大部分のインタラプト&例外処理だけでなく、ホストイ
ンターフェース、資源管理、I/O装置処理を担当す
る。ベクトル処理器はすべてのデジタル信号処理及び、
コプロセッサインタラプト(ARM7でベクトル処理器
により発生される)とハードウェアスタックオーバーフ
ロー(ベクトル処理器で)のような任意の特殊なインタ
ラプトを担当する。また、MSPは多様なI/O装置に
対してインターフェーシングするために集積された周辺
機器を多く含む。すべての周辺装置のアドレスはメモリ
マッピングされ、よって標準メモリロード&貯蔵命令
(ARM7 CPUまたはベクトル処理器の中のいずれ
か1つにより)でアクセスされ得る。
【0029】1.6.2 電源印加、リセット&初期化 電源が印加された後、MSPは機能を正確に確認するた
めに、自動にセルフ−テストシーケンスに入る。セルフ
−テストシーケンスは下記のことを含む。 *すべての内部MSPレジスタの初期化 *MSPのすべての要素を確認するために、半導体チッ
プのセルフ−テスト診断遂行 そして、セルフ−テストシーケンスは、<tds>秒近
くまで持続されると予想される。セルフ−テストシーケ
ンスの最後で、MSPは下記のものを含むMSPファー
ムウェアを遂行する準備をする。 *MSPの初期化ソフトウェアのローディング及び実行 *MSPの実時間動作システム過0カーネルMMOSA
のローディング及び実行 MSPは下記の3種類のリセットを支援する。 *PCIバスによるハードウェア制御システムリセット *MSP制御レジスタにあるPCIシステムリセットビ
ットによるソフトウェア制御システムリセット *MSP制御レジスタにあるベクトル再開始、ビットに
よるソフトウェア制御再開始(restart)
【0030】1.6.3 PCI配列レジスタ PCIバスに対するI/O装置であって、MSPはPC
I Rev2.1に定義され、表9に示されているよう
な一セットの構成レジスタを含む。
【0031】PCI配列レジスタ
【表9】
【0032】1.6.3.1 装置&ベンダー識別子レ
ジスタ より詳細なものはPCIバス仕様Rev2.1参照。 1.6.3.2 ステータス&コマンドレジスタ より詳細なものはPCIバス仕様Rev2.1参照。 1.6.3.3 クラスコード&校正識別子レジスタ より詳細なものはPCIバス仕様Rev2.1参照。 MSP−1EXに関してクラスコードは03に定義さ
れ、サブクラスは0である。 1.6.3.4 その他のレジスタ より詳細なものはPCIバス仕様Rev2.1参照。 1.6.3.5 MSPベースアドレスレジスタ(MS
P BASE) このレジスタはMSP装置のためのベースアドレスを貯
蔵する。このアドレスはホストシステムソフトウェア(W
indows 95/NT)により記入され、MSPハードウェアで
使用されメモリをアドレッシングする。 1.6.3.6 VFBベースアドレスレジスタ このレジスタはVGA仮想フレームバッファのためのベ
ースアドレスを貯蔵する。このアドレスはホストシステ
ムソフトウェア(Windows 95/NT)により記入され、MS
Pハードウェアで使用されVGAフレームバッファをエ
ミュレーションする。
【0033】1.6.3.7 拡張ROMベースアドレ
より詳細なものはPCIバス仕様Rev2.1参照。 1.6.3.8 インタラプトラインレジスタ より詳細なものはPCIバス仕様Rev2.1参照。 1.6.4 ARM7 CPU ARM7 RISC CPUはMSPのマスタ処理器であ
って、32ビットデータ経路を含んでおり、標準ARM
7命令セット構造からなる。またARM7はベクトル処
理器とインターフェースするために、特殊なコプロセッ
サ命令を含む。 1.6.5 ベクトル処理器 ベクトル処理器は、MSPのDSPエンジンであり、2
88ビットデータ経路を含んでおり、ARM7に対しコ
プロセッサとして動作する。このような機能はベクトル
処理器構造文書に記述されている。ベクトル処理器22
0は80MHzで動作し、6ステージのパイプラインす
なわち、フェッチ(fetch)、デコード(decode)、流出人
(issuer)、レジスタアクセス(register access)、実行
(execute)及び記入(write)を含む。これはDSP関連処
理のために最適化される。
【0034】1.6.6 仮想メモリ管理 MSP−1EXは仮想メモリ管理を支援しない。 1.6.7 インタラプト&実行処理 MSPでインタラプト&実行処理は大抵ARM7により
行われる。内部のすべての入/出力装置インタラプト
は、内部の8254インタラプトコントローラーに入っ
て、これら間の優先順位を決め、最も高い優先順位のイ
ンタラプトを次の処理のためにARM7に送る。 1.6.8 物理的なメモリアドレスマップ ARM7及びベクトル処理器プログラムは、図8に示し
たような物理的なメモリによってメモリマッピングされ
たすべてのMSP入/出力装置を示す。ARM7(また
はベクトル処理器)により示されるMSPアドレスマッ
プは、0から始まって4GBまで拡張される。2GBか
ら4GBまでの領域のアドレスは、次の関係式に従っ
て、0から2GBまでのホスト(Pentium)PC
Iアドレスにマッピングされる。ホストPCIアドレ
ス:=ARM7アドレス−8000 0000(in hex)
このようなマッピングによりARM7(またはベクトル
処理器)は、0から2GBまでのホストPCIメモリア
ドレスをアクセスするために、2GBから4GBまでの
アドレスを使用することができる。ARM7は2GB以
上のホストPCIメモリアドレスに対しては、アクセス
できない。また、ホスト(Pentium)プログラム
は、図9に示したような多少制限された物理的なメモリ
に従ってメモリマッピングされたすべての入/出力装置
を示す。ホスト(Pentium)から見る時、 *MSP_BASEはMSPアドレスマップの始まりで
ある。 *MSP_BASE+7DFFFFFはMSPアドレス
マップの最後である。 *MSPアドレスマップは、128MBの範囲のみで定
義される。
【0035】MSP I/O装置アドレスマップ
【表10】
【0036】1.6.9 MSPホスト制御レジスタ MSP−1EXは、ホスト(Pentium プロセッ
サ)による初期化及び、インタラプトのために使用され
る特殊なレジスタを含む。
【0037】
【表11】
【0038】bit<0> PCIシステムリセ
ット。このビットはMSP関連のすべての内部/外部入
出力装置を含む全体MSPシステムハードウェアを完全
にリセットさせるために、ホスト(PENTIUM)で
使用される。PCIシステムをリセットさせた後、MS
PはARM7、ベクトル処理器及びI/O措置に対する
チップ上のすべてのセルフ−テスト診断実行を含む、標
準リセットシーケンスを処理する。このようなリセット
は、ハードウェアシステムリセットと同一な影響を及ぼ
す。 bit<1> ARM7&ベクトル処理器の再開
始。このビットはARM7とベクトル処理器を再開始さ
せるために、ホスト(PENTIUM)で使用される。
この再開始はMSPが正常的なリセットシーケンスを全
然処理せず、チップ上のセルフ−テスト診断を全く実行
しないとの意味で、完全なPCIシステムリセットと区
別される。このビットが設定されると、ARM7はアド
レス0から実行を開始し、ベクトル処理器はアイドルモ
ード(idle mode)に入る。この時、どのような内部また
は外部I/O装置も影響を受けない。 bit<2> ホト(PENTIUM)からのM
SPインタラプト要請。このビットはまSPを直接イン
タラプトするためにホスト(PENTIUM)で使用さ
れ、ARM7をインタラプトするために使用される内部
8259プログラム可能なインタラプトコントローラー
(PIC)の入力の中のいずれか1つに連結される。こ
のビットは、ホスト(PENTIUM)により設定さ
れ、ARM7によりクリアーされる。 bit<3> PCIホストインタラプト認知。
このビットはMSPが発生したPCIホストインタラプ
ト要請を認知するために、ホスト(PENTIUM)で
使用される。このビットはホスト(PENTIUM)に
より設定され、ARM7によりクリアーされる。 bit<31:4> 予約
【0039】1.6.10 MSP ARM7制御レジス
MSP−1EXは、ARM7プロセッサによりホストを
インタラプトすることに使用される特殊なレジスタを有
する。
【0040】
【0041】bit<0> MSPからのPCI
ホストインタラプト。このビットは、PCIバス上のP
CI INTA#ピンのアクチブ確認を通しホストをイ
ンタラプトするためにMSPで使用される。このビット
はARM7により設定され、PCIバスを通しホスト
(PENTIUM)によりクリアーされる。 bit<31:1> 予約 1.6.11 MSP内部μROM 内部ROMは全体16KByteからなり、次のことを
含む。 *μROM初期化ソフトウェア *セルフ−テスト診断ソフトウェア *多様なシステム管理ソフトウェア *多様なライブラリーサブルーチン *命令及びデータ常数のためのキャッシュ アドレスマップは、次の表に示したとおりである。
【0042】内部μROMアドレスマップ
【表12】
【0043】
【表13】
【0044】1.6.12 MSP内部SRAM 内部のSRAMはMSPのベクトル&制御&ステータス
レジスタ(VCSR)により決まれる選択事項によっ
て、キャッシュまたはローカルメモリの機能を遂行す
る。 ローカルメモリモードにおいて、アドレス空間は位置<
MCP_BASE>:040 0000から始まって、
内部SRAM部にマッピングされる。 1.6.13 MSP内部の周辺装置 また、MSPは2個の内部バス、すなわち64ビット、
80MHzで動作するFbusと、32ビット、40M
Hzで動作するIObus上に存在する多い周辺装置を
有する。Fbus上の装置は次のことを含む。 *外部の同期DRAMのためのメモリコントローラー *仮想フレームバッファインターフェース *外部PCIバスのためのPCIバスコントローラー *カストマーASICインターフェース *8チャンネルDMAコントローラー *メモリデータ移動器(ホストメモリとSDRAM間の
データ伝達のため) *KS0122CODECシリアルライン *KS0119CODECシリアルライン *AD1843CODECシリアルライン 一方、IObus上の装置は下記のことを含む。 *8254−互換可能なプログラマブルインターバルタ
イマー *8259−互換可能なプログラマブルインタラプトコ
ントローラー(8レベル) *16450−互換可能なUARTシリアルライン *MPEGビットストリームデコーディング&エンコー
ディングのためのビットストリーム処理器 このような周辺装置等のレジスタアドレスマップは、表
に示したとおりである。
【0045】
【表14】
【表15】
【表16】
【表17】
【0046】内部周辺装置レジスタアドレスマップ 1.6.14 IOBUS周辺装置 1.6.14.1 8254−互換可能なプログラマブ
ルインターバルタイマ MSPは、下記のような機能を有するソフトウェアとし
て使用するために、標準8254−互換可能なプログラ
マブルインターバルタイマーを含む。 *3個の独立的な16ビットカウンタを有する。 *6個のプログラマブルカウンタモードを支援する。 すべてのカウンターは、制御ワードレジスタに記入する
ものと初期カウントによりプログラムされる。 *制御ワードレジスタ このレジスタは、タイマーに対する多様な制御情報を有
する。このレジスタのビット定義は、表に示したとおり
である。
【0047】
【表18】
【0048】*ステータスレジスタ このレジスタは、タイマーに対するステータス情報を有
する。 *カウンター0、1、2 この3個のレジスタは、主にタイマーによりカウンティ
ングする素子である。各カウンタは16ビット幅を有
し、プリセットが可能で、BCDモードの各2進数でカ
ウントダウンする。このレジスタの入力、ゲート及び出
力は、制御ワードレジスタに貯蔵されたMODESの選
択により構成される。この3個のカウンタは完全に独立
的である。
【0049】1.6.14.2 8259−互換可能な
プログラマブルインタラプトコント
ローラー(PIC) MSPプログラマブルインタラプトコントローラーは、
すべてのx86−基盤パーソナルコンピュータにおいて
非常に一般的な標準8259であり、その機能は次のこ
とを含む。 *8個レベルの優先順位を支援する。 *プログラマブルインタラプトモード *個別的な要請マスク能力 MSP−1EXにおいて、8個レベルのインタラプト入
力は、多様なI/O装置に対し下記のとおり割当てられ
る。 *レベル0(最も高い)は8254タイマーに割当てら
れる。 *レベル1は、仮想フレームバッファ(VFB)に割当
てられる。 *レベル2は、DMAコントローラーを含むカストマA
SICロジックブロックに割当てられる。 *レベル3は、ビットストリーム処理器に割当てられ
る。 *レベル4は、PCIバスインターフェースに割当てら
れる。 *レベル5は<tbd>に割当てられる。 *レベル6は<tbd>に割当てられる。 *レベル7は、16550 UARTに割当てられる。 インタラプトコントローラーの出力は、ARAM7 R
ISC CPUのインタラプト要請ライン(nFIQ)
に結合される。 *レジスタ説明 ここには、下記のようなPICの動作を初期化すること
に使用される3個の8ビットレジスタがある。 *初期化コマンドワード1(ICW1) *初期化コマンドワード2(ICW2):MSP−1E
Xには使用しない。 *初期化コマンドワード3(ICW3):MSP−1E
Xには使用しない。 *初期化コマンドワード4(ICW4) また、下記のようなPIC動作を制御することに使用さ
れる3個の8ビットレジスタがある。 *動作制御ワード1(OCW1) *動作制御ワード2(OCW2) *動作制御ワード3(OCW3) これらのすべてのレジスタは、アドレス部分(bit<
0>)とデータの部分の両方に特殊にエンコーディング
される。より詳細なことは、標準8259仕様を参照す
る。
【0050】8259レジスタ説明
【表19】
【0051】1.6.14.3 16450−互換可能
なUARTシリアルライン MSPは、外部シリアルI/O装置とのインターフェー
スとして使用される16450−互換可能なUARTシ
リアルラインを含む。より詳細なことは、標準1645
0仕様を参照する。 1.6.14.4 ビットストリーム処理器 ビットストリーム処理器は、ビデオビットストリームデ
ータを処理する特殊化されたロジックブロックであり、
この機能は下記のことを含む。 *可変長さハフマンデコーディング及びエンコーディン
グ *ジグザグ貯蔵フォーマットのビデオデータのアンパッ
キング及びパッキング *多様なビット−レベル処理 ビットストリーム処理器は、同時的な処理ユニットとし
て動作し、ベクトル処理器またはARM7によりソフト
ウェアで制御される。より詳細なことは、ビットストリ
ーム処理器部分を参照する。 1.6.15 FBUS周辺装置 FBUS周辺装置は下記のとおりである。 *カストマASICロジックインターフェース *8個チャンネルDMAコントローラー *三星のKS0119に対するビデオエンコーダーシリ
アルラインインターフェース *アナログデバイス社のAD1843に対するオーディ
オ&テレコムシリアルラインインターフェース 1.6.15.1 ASICインターフェースロジック
インターフェース この節は、外部のすべてのCODECと、カストマが規
定したASICロジックブロックに対するインターフェ
ースロジックを含む。このブロックのすべてはハードウ
ェアで具現され、プログラム−可視(program-visible)
レジスタは備えない。より詳細なことはASICインタ
ーフェース部分を参照する。 1.6.15.2 DMAコントローラー MSP−1EXは、下記のような機能を有するチップ上
のDMAコントローラーを備える。 *8個の独立的なDMAチャンネル *個別的なDMAチャンネルに対するイネーブル/ディ
スエーブル制御 *メモリトランスファーまたは逆トランスファーに対す
るIO装置 *アドレス増加及び減少 より詳細なことをは、ASICインターフェース部分を
参照する。
【0052】1.6.15.3 メモリデータ移動器 また、MSP−1EXは、特殊なメモリデータ移動器を
備える。このメモリデータ移動器は、ホスト(PENT
IUM)メモリと、MSPローカルSDRAMメモリ間
でデータを移動させるために使用される。メモリデータ
移動器は、基本的に下記のようなレジスタを含む特殊な
DMAコントローラーである。 *MSP現在アドレスレジスタ:この32ビットレジス
タは、メモリデータトランスファーの初期にSDRAM
メモリアドレスを定義する。このレジスタはARM7に
より記入または読出でき、初期値はARM7によりロー
ドされなければならない。アドレスはデータトランスフ
ァーサイズに基づいて増加される。 *ホスト現在アドレスレジスタ:この32ビットレジス
タは、メモリデータトランスファーの初期にホストメモ
リアドレスを定義する。このレジスタはARM7により
記入または読出でき、初期値はARM7によりロードさ
れなければならない。アドレスはデータトランスファー
サイズに基づいて増加される。 *MSP停止アドレスレジスタ:この32ビットレジス
タは、メモリデータトランスファーの最後にSDRAM
メモリアドレスを定義する。このレジスタはARM7に
より記入または読出でき、MSP現在アドレスレジスタ
と比較し使用される。もし、これらがマッチングする
と、メモリデータ移動器はMSPのEnd−Of−Pr
ocess信号を発生する。 *ホスト停止アドレスレジスタ:この32ビットレジス
タは、メモリデータトランスファーの最後に、ホストメ
モリアドレスを定義する。このレジスタはARM7によ
り記入または読出でき、ホスト現在アドレスレジスタと
比較し使用される。もし、これらがマッチングすると、
メモリデータ移動器はホストのEnd−Of−Proc
ess信号を発生する。 *ステータスレジスタ:このレジスタは、メモリデータ
移動器と関連したステータス情報を含む。ビットエンコ
ーディングは下記のとおりである。 <0>:MSP EOP。このビットは、メモリデータ
移動器がMSPの停止アドレスに到達したか否かを決定
する。もし、ARM7がソース現在アドレスレジスタを
初期化すると、ARM7は0080 0000(hex)にリ
セットされる。このビットはARM7により読出のみが
遂行され、記入は遂行されてはいけない。 <1>:HOST EOP。このビットは、メモリデー
タ移動器がホストの停止アドレスに到達したか否かを決
定する。もし、ARM7がホスト現在アドレスレジスタ
を初期化すると、ARM7は8000 000(hex)にリ
セットされる。このビットはARM7により読出のみが
遂行され、記入は遂行されてはいけない。 *制御レジスタ:このレジスタは、メモリデータ移動器
と関連した情報を含む。このビットエンコーディングは
下記のとおりである。 <0>:方向。このビットはデータトランスファーの方
向を決定する。このビットが“0”(ディフォールト)
の場合、データトランスファーの方向はホスト(PEN
TIUM)メモリからMSP SDRAMメモリであ
り、このビット“1”の場合、データトランスファーの
方向は、SDRAMからホストメモリである。このビッ
トはARM7により記入されなければならない。 <1>:インタラプトイネーブル。このビットはメモリ
データ移動器が、データトランスファーの最後にARM
7をインタラプトするか否かを決定する。このビットは
ARM7により記入されなければならない。 <2>:DMAイネーブル。このビットはメモリデータ
移動器が動作するようにイネーブルさせる。このビット
はARM7により記入されなければならない。 <3
>:データトランスファーサイズ。このビットが“0”
(省略時)の場合、各メモリのデータトランスファーサ
イズは32バイトであり、“1”の場合は64バイトで
ある。このビットはARM7により記入されなければな
らない。
【0053】1.6.15.4 KS0119ビデオエ
ンコーダーシリアルラインインターフェース KS0119ビデオエンコーダーシリアルラインインタ
ーフェースは、下記のことを含む。 *コーデックからの読出データを含むダブル−バッファ
受信データバッファレジスタ *コーデックへの記入データを含むダブル−バッファ伝
送データバッファレジスタ *シリアルラインに対する多様な制御&ステータス情報
を含む制御&ステータスレジスタ
【0054】
【表20】
【0055】制御&ステータスレジスタのビットエンコ
ーディングは下記のとおりである。 bit<0>:受信データのフール状態である。このビ
ットはシリアルラインが、KS0119CODECから
8ビットのデータを受信した場合に設定される。もしイ
ンタラプトイネーブル(bit<7>)が設定される
と、インタラプト要請もARM7に発生される。 bit<1>:伝送データバッファが空いている状態で
ある。このビットはシリアルラインがKS0119にデ
ータを送るように準備されている場合に設定される。も
しインタラプトイネーブル(bit<7>)が設定され
ると、インタラプト要請もARM7に発生される。 bit<7>:インタラプトイネーブル。このビットは
ARM7にインタラプト要請をイネーブルさせるために
使用される。 1.6.15.5 AD1843オーディオ&テレコム
シリアルラインインターフェース AD1843シリアルラインインターフェースは下記の
ことを含む。 *コーデックから読出されたデータを含む一セットのダ
ブル−バッファリングされたレジスタ *コーデックに記入しようとするデータを含む一セット
のダブル−バッファリングされたレジスタ *シリアルラインに対する多様な制御&ステータス情報
を含む制御&ステータスレジスタ より詳細なことは、AD1843コーデックインターフ
ェース部分を参照する。 1.6.16 命令性能 表21は、毎サイクルが12.5nsであるベクトル処
理器サイクルカウントにおける命令性能を示す。外部メ
モリバス幅は64ビットで、40MHzのページモード
クロックを有すると仮定する。すべての命令性能は、3
2バイトベクトルモードに与えられる。規則は下記のと
おりである。 *ラス(ras):外部メモリが第1アクセスをするこ
とに要求されるサイクル数。一般に75nsまたは6個
のサイクルを必要とする。 *待ち時間(latency):第1命令を実行するた
めのサンプル数。 *レート(rate):類似した連続的な命令実行の間
に存在するサイクル数。 待ち時間がレートと同一な場合、1つの数字のみが使用
される。
【0056】命令実行性能
【表21】
【表22】
【表23】
【0057】第 2 章 DSPコア 本章は、ハードウェア及びソフトウェアデザイナーが示
しているDSPコアの仕様に関して記述している。 2.1 概要 DSPコアは、MSPにおいて基礎的な要素であり、す
べての演算に対して単独に責任を担う。このDSPコア
は次のように構成される。 *40MHzで動作し、実時間OS、インタラプト及び
例外処理、入出力装置管理等のような、汎用データ処理
用として使用する32ビットARM7 RISC CP
U。 *80MHzで動作し、離散余弦変換、FIRフィルタ
リング、くりこみ、ビデオのモーション推定等のような
デジタル信号処理用として使用されるベクトル処理器。
このベクトル処理器はARM7により初期化され、AR
M7と同時的に動作可能で、特殊な制御命令によりAR
M7と同期される。 *80MHzで動作し、ARM7のための1KBの命令
キャッシュと1KBのデータキャッシュ、ベクトル処理
器のための1KBの命令キャッシュと4KBのデータキ
ャッシュ、ARM7及びベクトル処理器のための共有の
16KBの集積された命令&データキャッシュROMか
ら構成されるキャッシュサブシステム。ベクトル処理器
用のデータキャッシュは、ハードウェアまたはソフトウ
ェアによって制御され得る。キャッシュサブシステム
は、32ビットデータバスを通してARM7とインター
フェースし、128ビットデータバスを通してベクトル
処理器とインターフェースする。 *ビットストリーム処理器、インタラプトコントローラ
ー、タイマー及びUARTのような多様な内部周辺機器
等とインターフェースする32ビット、40MHzの入
力&出力バス(IOBUS)。 *PCIバスコントローラー、メモリコントローラー、
DMAコントローラー及びカストマASICロジックブ
ロックとインターフェースする64ビット、80MHz
の高速入/出力バス(FBUS)。DSPコアのブロッ
ク図は、図10の図示のとおりである。
【0058】2.2 ARM7 RISC CPU 2.2.1 概要 ARM7 RISC CPUは、汎用の32ビットRIS
Cプロセッサコアである。このARM7 RISC CP
Uは、標準コプロセッサインターフェースを通しベクト
ル処理器とインターフェースし、実時間OS、IO装置
インタラプト処理及びホストCPUとの通信のように、
大部の非演算的な集中機能を処理することに使用され
る。ARM7 CPUは下記のような特性を有する。 *電力敏感性応用に理想的な極めて静的な動作。 *低電力消費:0.6mA/MHz @3V製作。 *高性能:25MIPs@40MHz(40MIPsピ
ーク)@3V。 *大小サイズのEndian動作モード *実時間応用のための高速インタラプト応答(40MH
zで22クロックサイクル) *簡単かつ強力な命令セット。 *約6mm2の非常にコンパクトなレイアウト。 2.2.2 レジスタ ARM7は31個の汎用レジスタと6個のステータスレ
ジスタ、すなわち合計37個のレジスタを有する。プロ
グラマーには、常に16個の汎用レジスタと1つ或いは
2つのステータスレジスタが提供される。ユーザー、ス
ーパーバイザー、IRQ、FIQ、Abort及びUn
definedのようなすべてのプロセッサモードで、
R0とR15は直接にアクセス可能である。R15を除
いたすべてのレジスタは汎用に使用され、データまたは
アドレス値を維持させることに使用される。R15はプ
ログラムカウンター(PC)を維持する。ステータスは
レジスタのCPSR−現在プログラムステータスレジス
タは、ALUフラグと現在モードビットを有している。
R14はサブルーチンリンクレジスタとして使用され、
ブランチ及びリンク命令が遂行された時、1セットのR
15データを受信する。他の場合は、R14は汎用レジ
スタとしても使用され得る。
【0059】汎用レジスタ及びプログラムカウンター
【表24】
【0060】
【表25】
【0061】2.2.3 例外 例外は、命令処理途中で発生する非正常的な条件をい
い、これは制御流れの変更を招来する。ARM7例外動
作の7タイプに関し、上位優先順位から下位優先順位に
列挙すると下記のとおりである。 *リセット(reset)(最上位優先順位) *取消し(abort)(データ) *FIQ *IRQ *取消し(abort)(プリフェッチ) *定義されていない命令トラップ、ソフトウェアインタ
ラプト(最下位優先順位)
【0062】
【表26】
【0063】2.2.4 命令セット すべてのARM7命令は条件的に実行されるが、これは
ARM7命令がCPSRレジスタにあるN、Z、C、V
フラグ値によって実行されるかもしくは実行されないこ
とを意味する。ARM7命令は、下記のような多様なカ
テゴリーに分けられる。 *ブランチ及びリンクされたブランチ(B、BL) *データプロセッシング(AND、EOR、SUB、R
SB、ADD、ADC、SBC、RSC、TST、TE
Q、CMP、CMN、ORR、MOV、BIC、MV
N) *PSRトランスファー(MRS、MSR) *掛け算及び掛け算−累算(MUL、MLA) *シングルデータトランスファー(LDR、STR) *ブロックデータトランスファー(LDM、STM) *シングルデータスワップ(SWP) *ソフトウェアインタラプト(SWI) *コプロセッサデータ動作(CDP)(これは一グルー
プの命令である。) *コプロセッサデータトランスファー(LDC、ST
C) *コプロセッサレジスタトランスファー(MRC、MC
R) 2.3 ベクトル処理器 2.3.1 概要 ベクトル処理器は、最大性能のために、単位命令多重デ
ータ(SIMD)構造を利用する強力なデジタル信号処
理器であって、非常に優れた性能を実現させるために、
多重データ要素上で並列に動作するパイプラインされた
RISCエンジンから構成される。多重データ要素は、
576ビットベクトルでパッキングされ、これは下記の
ようなレートで計算され得る。 *12.5ns−サイクル毎に32個の8/9ビット固
定小数点算術演算または *12.5ns−サイクル毎に16個の16ビット固定
小数点算術演算または *12.5ns−サイクル毎に8個の32ビット固定小
数点または浮動小数点算術演算 2.3.2 実行パイプライン ベクトル処理器は、命令を実行させるために図11の図
示のとおり、6段階のパイプラインを利用する。大部の
32ビットスカラー演算が、サイクル当り1つの命令比
率でパイプラインされる一方、大部の576ビットベク
トル演算は、2個のサイクル毎に1つの命令比率でパイ
プラインされる。すべてのロード&貯蔵(Loads&Store
s)は算術演算と重なり、別途でロード&貯蔵ハードウェ
アにより独立的に実行される。設計の複雑度と性能を調
和させるために、ベクトル処理器は資源及びデータ従属
性をチェックするためのハードウェアインターロックを
順序とは関係なく使用し、命令等を発生するか実行する
ことができる。この特徴は、ロード及び貯蔵によって、
データキャッシュが紛失される期間の性能を、特に大幅
改善する。
【0064】2.3.3 ハードウェアマイクロ構造 ベクトル処理器は、図12の説明のとおり、4個の主機
能ブロックから構成される。 *命令語取出ユニット(IFU) *命令語デコーダー&発行器 *命令語実行データ経路 *ロード&貯蔵ユニット(LSU) 命令語取出ユニットは、命令語の先取り(prefet
ch)及び、ブランチとジャンプのような命令語のサブ
ルーチンに対する流れを制御するプロセッシングを担当
する。IFUは現在実行ストリームに対してプリフェッ
チされた命令語からなる16個のエントリキューと、ブ
ランチターゲットストリーム対してプリフェッチされた
命令語からなる8個のエントリーキューを有する。IF
Uはサイクルごとに命令語キャッシュから8個の命令語
が受信できる。命令語デコーダー&発行器は、すべての
命令語に対するデコーディング及びスケージュリングを
担当する。たとえ発行器は、実行資源とオペランドデー
タ有効性によって、非順次的な大部の命令語のスケジュ
ールが可能であるが、デコーダーはサイクル当り1つの
命令語を処理することができ、常にIFUから順次的に
到着する命令語を処理することができる。ベクトル処理
器は12.5ns/cycleで動作する多数個の28
8ビットデータ経路(図13参照)を通してその性能の
大部分を実現し、この場合次のことを含む。 *サイクル当り2個の読出及び2個の記入を支援するこ
とができる4個ポートを有するレジスタファイル *8回の32ビット掛け算(整数また浮動小数点フォー
マット)、16回の16ビット掛け算及び32回の8ビ
ット掛け算の中のいずれか1つの演算時ごとに、12.
5nsを生成する8個の32×32並列掛け算器 *8回の36ビットALU演算(整数または浮動小数点
フォーマット)、16回の16ビットALU演算または
32回の8ビットALU演算の中のいずれか1つの演算
時ごとに、12.5nsを生成する8個の36ビットA
LU ロード&貯蔵ユニットは、それぞれ図14の説明のよう
に、288ビット幅を有する別個の読出&記入データバ
スを通して、データキャッシュとインターフェースする
ために設計されたものである。
【0065】2.3.4 インタラプト&例外 ベクトル処理器は、次の2つの特殊条件のみを認識す
る。 *ARM7プログラムによって実行されるCPINT
(コプロセッサインタラプト)命令語 *ベクトル処理器プログラムによって実行される、サブ
ルーチン命令語へのネストされたジャンプ(nested jum
p)&掛け算の結果のハードウェアスタックオーバーフロ
ー ベクトル処理器がこれらの2個の特殊条件を処理す
る、より詳細な方法に対 しては、ベクトル処理器構造
文書を参照すること。MCPから発生されるその他のイ
ンタラプト及び例外条件は、ARM7のみによって処理
される。
【0066】2.4 キャッシュサブシステム 2.4.1 概要 キャッシュ制御ユニット(CCU)はARM7コア、ベ
クトル実行ユニット(LSU、IFU)、メモリ(MC
U、PCI、DMA、CODEC)及びIOデバイス
(BP、UART、タイマー、インタラプトコントロー
ラー)とインターフェースする。CCUは高速(80M
Hz)のFBUSと、低速(20MHz)のIOBUS
とインターフェースする。CCUは事実上、すべての内
部CPUコアユニットと周辺IOデバイスと間の中央デ
ータ伝送ユニットである。MSPチップにおいてCCU
の詳細な説明に関しては、MSP−1Eシステムスぺッ
クのブロック図(pp.1−10)を参照すること。非
常に高性能のキャッシュサブシステムを支援するため
に、CCUの設計はすべての読出及び記入動作を支援す
るプロトコルに基づいたトランザクション(transactio
n)を使用する。メモリをアクセスする必要がある任意の
ユニットは、CCU制御ユニットでリクエスト(reques
t)を発生させ得る。制御ユニットにあるアービタ(arbit
er)は、固定された優先順位に基づいてリクエストを承
認し、リクエスター(requestor)で‘transaction_id’
を回信する。リクエスターはこの‘transaction_id’を
貯蔵し、データが実際に到着した場合に、回信されたデ
ータが認識できるようにする。CCU制御が1つのユニ
ット(キャッシュミス(cache miss)が発生した場合、
多いサイクルを必要とする場合もある)からのリクエス
トを処理する間、他のユニットから新しいリクエスト
が、他の‘transaction_id’と共に次のサイクルで承認
される場合もある。リクエストをペンディング(pendin
g)させるこのような方法では、他のユニットからの連続
的なリクエストを遮断させることが発生されないので、
高性能の実験が可能になる。現在、CCUは1つのサイ
クルで1つの読出リクエストと、1つの記入リクエスト
を同時にアクセプトし承認することができる。
【0067】メモリに対するインターフェースユニット
(FBUS)は、4個エントリーのアドレスキューと、
1個エントリーのライト−バック(write-back)ラッチか
らなる。最善の状態で、FBUSはARM命令語キャッ
シュからの1つのペンディングリフィール(読出)リク
エスト、VEC命令語キャッシュからの1つのペンディ
ングリフィール(読出)リクエスト、VECデータキャ
ッシュからの1つの記入リクエストと、ダーティ(dirt
y)キャッシュラインにより、VECデータキャッシュか
らの1つのライト−バックリクエストを支援することが
できる。また、キャッシュメモリ自体は、高性能のため
に最適化される。MSPキャッシュシステムは、チップ
上(on-chip)のキャッシュSRAMとキャッシュROM
とを有する。キャッシュSRAMは、ARM CPUと
ベクトルコアまたは命令語とデータ間のスラッシング(t
hrashing)を防止するため、4個の相互に異なるバンク
からなる。キャッシュROMは、ARM7とベクトルコ
アのために高速及び高密度のデータ貯蔵領域を提供す
る。例え、タグ(tag)がキャッシュROMに対して変更
されることはないが、有効ビットの使用が不可能にな
り、データが外部メモリから返還される。要すれば、チ
ップ上のキャッシュメモリは、次のようなブロックを含
む。 *1KBの直接マッピングされた命令語キャッシュと、
1KBの直接マッピングされつつARM7に対する32
ビットデータバスインターフェースを有するライト−バ
ックデータキャッシュ *1KBの直接マッピングされ、ベクトル命令語フェッ
チユニットに対する256ビットバスインターフェース
を有する命令語キャッシュ *4KBの直接マッピングされ、ベクトル実行ユニット
に対する256ビットバスインターフェースを有するラ
イト−バックデータキャッシュ。データキャッシュはデ
ュアルポートからなり、80MHzのサイクルごとに2
56ビットの読出データを提供し、256ビットの記入
データを支援することができる。 *4KB VECデータキャッシュは、ソフトウェアの
制御下で、スクラッチ−パッド(scratch-pad)演算によ
り形成できる。 *ARM7及びベクトル処理器で使用するために共有ま
たは集積された命令語&データROMキャッシュ。AR
M7に対するインターフェースは、その命令語キャッシ
ュと同一な32ビットバスを通して、ベクトル処理器に
対するインターフェースは、その命令語キャッシュと同
一な256ビットを通してなる。 *5個のポート: −ARM7のための読出/記入ポート −ベクトル処理器の命令語取出ユニットのための読出ポ
ート −ベクトル処理器のロード/貯蔵ユニットのための読出
/記入ポート −ベクトル処理器のIOBUSのための読出/記入ポー
ト −FBUSのための読出/記入ポート *ARM7 CPU命令語キャッシュのための32×2
56ビットSRAM(〜1KB) *ARM7 CPUデータキャッシュのための32×2
56ビットSRAM(〜1KB) *ベクトル処理器データキャッシュのための128×5
6ビットSRAM(〜4KB) *ベクトル処理器命令語キャッシュのための32×25
6ビットSRAM(〜1KB) *データ&命令語キャッシュのための512×256ビ
ットSRAM(〜16KB) ベクトルデータキャッシュの制御は、ハードウェア制御
またはソフトウェア制御によって遂行される。
【0068】2.4.2 キャッシュサブシステム構造 図15は、MSPキャッシュシステムのブロック図であ
り、次のブロックIDC(Instruction Data Cache)、
キャッシュROM、CCU_DATA_DP、CCU_
ADR_DP、CCU_CTL及びCCU_SMとから
構成される。それぞれのサブブロックは、さらに詳細な
ことは後述する。 2.4.2.2 IDC 命令語及びデータキャッシュ(IDC;図16参照)
は、チップ上のSRAMメモリであり、命令語及びデー
タキャッシュアクセスを提供するために使用される。こ
のキャッシュは、1つのアレーに対し4個のバンク:A
RM_IC(1KB)、ARM_DC(1KB)、VE
C_IC(1KB)及びVEC_DC(4KB)から構
成される。任意のサイクルで、このキャッシュは1つの
読出リクエストと1つの記入リクエストをアクセプトす
る。タグRAMは、2個の読出ポートを有する。読出ポ
ートアドレスと記入ポートアドレスとは、ヒットまたは
ミス条件に対し、内部キャッシュタグと比較される。デ
ータRAMは、読出ポートアドレスによりアクセスされ
る1つの読出ポートのみを有する。また、タグRAMと
データRAMとは、相互に異なるセットの記入アドレス
を使用し記入される。従って、キャッシュアレーををア
クセスするためには、4セットのキャッシュバンク選択
信号と、3セットのラインインデックスを必要とする。
IDCは下記のような特性を有する。 *ライト−バック規則に直接マッピングされる。 *キャッシュラインサイズは64Bであるが、データ幅
は32Bであり、これはMSPチップのベクトルデータ
幅のサイズに該当する。 *各ラインは2個の有効ビットを有するが、1つはハイ
ベクトルのためのものであり、他の1つはローベクトル
のためのものである。また、データキャッシュはそれぞ
れのデータに対して1個づつすなわち、2個のダーティ
ビットを有する。 *ARM_IC、ARM_DC及びVEC_ICのため
のタグサイズは22ビット(アドレスビット10〜ビッ
ト31)であり、VEC_DCのためのタグサイズは2
0ビット(アドレスビット12〜ビット31)である。 *ARM_IC、ARM_DC及びVEC_ICのため
のラインインデックスビットは5ビット(アドレスビッ
ト5〜ビット9)であり、VEC_DCのためのライン
インデックスビットは、7ビット(アドレスビット5〜
ビット11)である。 *VEC_DC(4KB)は、ソフトウェアの制御下で
スクラッチ−パッドに再形成され得る。 *V_CLEAR信号は、キャッシュライン有効ビット
のすべてを、一回に全体的にリセットさせることに使用
する。後でV_CLEARは個別的なバンクのみを選択
的にリセットさせ得る。
【0069】2.4.2.3 データ経路パイプライン 図17参照。 2.4.2.4 アドレス経路パイプライン アドレス処理パイプラインに対するデータ経路は、図1
8の図示のとおりである。 CCU ADDRESS DP 2.4.3 インターフェース 2.4.3.1 データタイプ CCUはテーブル15に説明されている多数個のリクエ
スティングユニットからの相異なるデータタイプを処理
する。
【0070】相異なるデータタイプを処理する場合のC
CU動作
【表27】
【0071】2.4.3.2 ARMインターフェース ARM7 CPUコアが、MSPチップの周波数の1/
2(40MHz)で動作する反面、CCUはMSPチッ
プの周波数(80MHz)で動作する。この2個クロッ
ク間の同期化は設計時に重要である。一般的に、クロッ
ク発生器ユニットは、CLK1の上昇エッジでMCLK
を切換する。また、ARM7に連結された全体的なリセ
ット信号は、CLK1とMCLKがローの場合に解除(d
e-assert)される。このような方法によって、2個のユ
ニットは適切に同期化される。ARM7は命令語とデー
タ用として1つの入力バス(ARM_DATA<31:
0>のみを有するが、MSPチップは専用の命令語キャ
ッシュ(ARM_IC、1KB)とデータキャッシュ
(ARM_DC、1KB)とを備える。CCUは、AR
M_NOPCを使用し、この二種類のリクエストを区別
することができる。性能を更に向上させるために、CC
UはメインキャッシュとARM7コアとの間に位置する
マイクロ命令語キャッシュ(UI_CACHE、32
B)とマイクロデータキャッシュ(UD_CACHE、
32B)を付加する。このキャッシュは、それぞれ連続
的なコードとデータとからなっている8ワードを有す
る。これらのマイクロキャッシュは、その自体のタグ
(27ビット)、タグ比較器と有効ビットを有する。有
効ビットはシステムリセット期間の間すべてがクリアさ
れる。ARM7マイクロキャッシュは、実際のキャッシ
ュよりはかえってプリフェッチバッファの役割を遂行す
る。ARM7読出の期間の間、アドレス(ARM_A、
31:0>)は常にタグに比較される。ヒットはARM
_DATA<31:0>を通して命令語またはデータを
リードバック(read back)する。その後1つのマイクロ
キャッシュはアドレス、データタイプ及び他の制御情報
と共にリクエストをCCUに送る。CCUのアービタロ
ジックは、すべてのユニットからのリクエストが読出リ
クエストを作ることを承認する。現在、承認を得ること
において、ARM7は他のブロックに対して最上位の優
先順位を有する。その理由は、ARM7のマイクロキャ
ッシュがミスを持たない限り、ARM7がリクエストを
作る場合が殆どないからである。しかし、CCUは多数
個のサイクルリクエストまたはアドレスキュー充足条件
を提供するために、内部のホールドサイクルを有するこ
とができる。この期間の間、外部のリクエストは全然承
認されない。ARM7からの記入は、アドレスがUD_
TAGをヒットする場合、常にUD_CACHEを無効
化させる。ライト−スルー(write-through)またはライ
ト−バック(write-back)キャッシュとしてUD_CAC
HEを設計することにおいて、何等の試みも行っていな
い。UD_CACHE記入ヒット時に無効化させること
により、ARM_DCとUD_CACHE間のデータを
一致させることができる。CCUはARM_ICまたは
ARM_DCに読出または記入リクエストを送る間にa
rm_nwaitを制御する。一般的に、CCUは記入
期間の間には、arm_nwaitをホールドさせな
い。一応、記入リクエストがccu_write_ho
ld2を見ないで承認されると、ARM7はただ次のサ
イクルからARM_DATA<31:0>にあるデータ
を持ってくる。CCUはデータを貯蔵するために、内部
の記入バッファを有する。ARM7は命令語を実行し続
けることができる。しかし、CCUはたとえデータがメ
インキャッシュにあるとしても、常に1つのサイクルに
対してarm_nwaitをホールドさせる。もし、読
出リクエストがメインキャッシュをミスした場合、デー
タが外部のメインメモリから返還されるまで、更に多い
サイクルがホールドされる。図19に図示したARM_
CCUインターフェース状態のマシンは、CCUがar
m_nwaitを制御する条件を説明する。
【0072】図19において: START:リクエストがなく、または読出データが返
還されるか、ホールドせず記入リクエストが発生された
場合の状態マシンのためのスタート状態。 HOLD:CCUは読出または記入のためのARM7リ
クエストを承認し、ホールド信号で承認を取り消す。 TAG:CCUは読出アドレスでタグをチェッキングす
る。 MISS:読出アドレスは1つのミスを有し、ccuは
リフィールリクエストを外部のdramに送る。 DATA:読出データが返還され、CCUは返還された
データをマイクロデータキャッシュへ送る。 2.4.3.3 FBUSインターフェース CCU_FBUSインターフェース状態マシン(F_S
M)は、図20の図示のとおりである。図20におい
て: IDLE: アイドル状態 REQ: 読出または記入リクエストをFBUSアービ
タに送る。 GRT1: 承認サイズが8Bより大きい。 GRT2: 承認サイズが16Bより大きい。 GRT3: 承認サイズが24Bより大きい。 GRT4: 最後のサイクルに対する駆動データ データ受信状態マシン(D_SM)は、図21の図示の
通りである。図21において、 IDLE:アイドル状態 ONE: Fdata<63:0>から第1の8Bデー
タを受信する。 TWO: Fdata<63:0>から第2の8Bデー
タを受信する。 THREE: Fdata<63:0>から第3の8B
データを受信する。 FOUR: Fdata<63:0>から第4の8Bデ
ータを受信する。 REFILL: データをリクエストに返還する前、I
DCをリフィールする。 RDY: データをリクエスターに返還する準備をす
る。
【0073】2.4.4 読出及び記入動作 読出及び記入状態マシンは、図22の図示のとおりであ
る。 2.4.4.1 読出動作 MSPでIDC(Instruction and Data Cache)は3段の
パイプラインサイクル:リクエストサイクル、タグサイ
クル及びデータサイクルで動作する。キャッシュヒット
状況で、IDCは毎サイクルで命令語またはデータの返
還が可能である。キャッシュコントローラーユニット
(CCU)は、キャッシュSRAMアクセスのためにA
RM7、ベクトル処理器ユニット、FBUSとIOBU
S間の仲裁を担当する。CCUはこの4個のマスタから
のバスリクエストを監視し、特定のID番号を有する勝
者にバスを承認する。CCUはまたキャッシュをアクセ
スしタグを比較するために、キャッシュアドレスバスと
読出/記入制御信号を発生する。キャッシュヒットがあ
る場合、仲裁から勝ったバスマスタは、読出/記入動作
のためにキャッシュをアクセスすることができる。キャ
ッシュミスがある場合、CCUはメインメモリから返還
される紛失データを待たずリクエストを発生させてか
ら、バスマスタを助けてやる。それで、キャッシュミス
を有するバスマスタは、ID番号を維持すべきである。
以降、リクエストされたデータがキャッシュにあると、
CCUはGRANT信号を同一なID番号を有するデー
タを紛失したバスマスタに送る。このバスマスタはデー
タをアクセプトするかまたは無視する。キャッシュミス
が発生した場合、メインメモリからデータを受けるため
に、ラインフェッチが遂行される。ラインサイズは64
バイトに定義され、従ってCCUはメインメモリからキ
ャッシュにデータを供給するために、8回の連続的なメ
モリアクセス(毎回64ビット)を実行する。 *リクエストサイクル:CCUはCLK1で多数個のユ
ニット(ARM、IFU、LSU、IO)から読出リク
エストをアクセプトする。リクエスターは、CLK1の
初期に、リクエスト信号(1su_req)と読出/記入信号(1s
u_rw)を表示する。CLK1の終わりでCCUはccu
_grant_id[9:0]を駆動することによっ
て、この読出リクエスト中の1つを承認する。ccu_
grant_id[9:6]がリクエスターのunit
_idと整合されると、リクエストが承認される。リク
エスターはccu_grant_id[5:0]が、リ
クエストと関連したtransaction_idであ
るので、ccu_grant_id[5:0]をラッチ
しなければならない。リクエストが承認されると、リク
エスターはアドレス(1su_adr[31:0])とCLK2でキャ
ッシュオフ動作(1sh_ccu_off)及びデータタイプ(1su_ve
c_type[1:0]、1su_data_type[2:0])のような他の制御
情報をCCUに送る。CLK2の終わりでccu_rd_hold_
2が表示されなければ、リクエストは完全にCCUに送
られ、リクエストされたデータはしばらく後で返還され
る。しかし、ccu_rd_hold_2が表示されると、CLK1
で承認されたリクエストは取り消しつつ、リクエスター
は続いてアドレスと制御情報を送る。以前のすべてのgr
ant_id情報がまだ有効であるので、次のサイクルでは同
一な読出リクエストを更に発生させる必要がない。ccu_
rd_hold_2はCLK2でCCUによって解除されるま
で、CLK1で一定に維持される。ccu_rd_hold_2はタ
イミング臨界信号であって、リクエスターでCCUが現
在サイクルで他のことを処理することに忙しくて、承認
されたリクエストはまだ処理されていないことを知らせ
ることに使用される。 *タグサイクル リクエストが承認され、後でリクエストサイクルで取り
消されなかった場合、リクエストはキャッシュアクセス
のタグ比較段階に入る。CCUはタグ読出のためのライ
ンを選択するために、アドレス(1su_adr[11:5])とバン
ク選択信号(リクエスター)を使用する。タグヒット信
号(ccu_1su_hit_2)は、CLK2の終端で知られる。デ
ータはヒット状況のために次のサイクルで復帰される。
読出ポートタグが出力され、CLKによりラッチされ
る。また、アドレスキューステータスは、このサイクル
で評価される。タグミスと‘almost_full_address_queu
e’は、‘ccu_rd_hold_2'信号を表示する。CCU状態
マシンは、或る新しい読出リクエストも処理しないが、
中止されたタグ比較を更に試みる。それぞれのキャッシ
ュライン(64B)は2つのベクトルを含むので、タグ
ヒットを得るためにアクセスされたベクトルの有効ビッ
トが有効でなければならない。2倍のベクトル(64
B)データの読出のためには、タグヒットを得るため
に、2つの有効ビットが有効でなければならない。cc_o
ff動作は常にタグミスを誘発させ、リクエストはアドレ
スキューに掲示される。 *データサイクル これはCCUがデータをリクエスターに復帰するサイク
ルである。データはCLK1で駆動される下位16B
と、CLK2で駆動される上位16Bと共に、ccu_dout
[127:0]上に乗せられる。64Bデータリクエストの場
合、伝送を終結させるために、1つの付加的なサイクル
が使用される。CCUはデータが次のCLK1で復帰さ
れることをリクエスターに知らせるために、常にccu_da
ta_id[9:0]をCLK2の初期の1/2サイクルで駆動す
る。リクエスターは適切な戻りデータのために、常にcc
u_data_id[9:0]を比較する。また、戻りデータの指示子
としてタグヒットが使用される。もし、タグサイクルで
タグミスがあり、アドレスキューが充満でなければ、C
CUはCLK1で紛失されたアドレス、id情報及び他
の制御情報を、4個エントリーアドレスキューに掲示し
つつ、キャッシュラインフェッチを始める。現在、それ
ぞれのアドレスキューは、大略69ビットの情報を含
む。CLK2でメモリアドレスラッチがロードされ、F
BUSリクエストが次のCLK1で発生される。
【0074】2.4.4.2 記入動作 IDCで記入動作は、3段のパイプラインサイクル:リ
クエストサイクル、タグサイクル及びデータ記入サイク
ルで動作する。記入アドレスヒット状況で、IDCは毎
サイクルでキャッシュデータアレーにデータを記入する
ことができる。 *リクエストサイクル:CCUはCLK1で多数個のユ
ニット(ARM、LSU、IO)から記入リクエストを
アクセプトする。リクエスタはCLK1の初期にリクエ
スト信号(1su_req)、読出/記入信号(1su_rw)とベクト
ルタイプ(1su_vec_type[1:0])を表示する。CLK1の
終わりでCCUは、この記入リクエストの中のいずれか
1つを承認する。相互に異なるユニットに対する記入承
認は、承認信号(ccu_1su_wr_grant)を直接リクエトユニ
ットに表示することにより実現される。返還されるデー
タが全然ないので、リクエストユニットがCCUからtr
ansaction_idを受信する必要はない。CLK2で、リク
エスタはアドレス(1su_adr[31:0])、cc_off信号(1su_cc
u_off)及びデータタイプ(1su_data_type[2:0])を供給し
なければならない。読出の場合も同様に、たとえ、リク
エストは承認されたが、現在サイクルで処理されなかっ
たことをリクエスタに知らせるために、CCUはCLK
2の終端の近くでccu_wr_hold_2を表示する。リクエス
タはccu_wr_hold_2が解除されるまでアドレス、cc_off
信号とデータタイプ情報を駆動し続ける。以降、次のサ
イクルでリクエスタは記入データをccu_dout[127:0]に
供給する。 *タグサイクル リクエストが承認され、後でリクエストサイクルで取り
消されなかった場合、リクエストはキャッシュアクセス
のタグ比較段階に入る。このサイクルは記入ポートアド
レスタグを比較する。CCUはキャッシュ用ラインを選
択するために、アドレス(1su_adr[11:5])とバンク選択
信号(リクエスター)を使用する。タグヒット信号(ccu
_1su_hit_2)は、CLK2の終わりへ知られる。cc_off
記入は、常にタグミスを誘発させ、記入データは外部の
記入のためにFBUS上に乗せられる。リクエスタはC
LK1の下位16BとCLK2の上位16Bにより、cc
u_din[143:0]にデータを駆動し始める。64Bデータ転
送の場合、データを駆動するためにリクエスタは、1つ
の付加的なサイクルを取る。CCUはこのデータをホー
ルドするために、内部の記入データラッチを有する。こ
の記入がキャッシュをヒットさせるか(実際にデータを
キャッシュに記入するために、1つまたは2つのサイク
ルが使用される)、キャッシュをミスさせる場合(デー
タを記入するために、最も少ないサイクルが使用され
る)、リクエスタは記入が完了されたことと見なす。 *データ記入サイクル このサイクルは、キャッシュヒット状況のために、CC
Uが実際のデータをキャッシュに記入するサイクルであ
る。タグサイクルでタグミスがある場合、CCIはこれ
をデータタイプによって相異するように処理する。デー
タタイプが32Bで、ラインがクリーン(clean)の場合
(2つのベクトルもクリーン)、CCUはただ現在のラ
インを、新しいタグと新しいデータをオーバーライトす
る。また、アクセス中のベクトルを有効及びダーティな
ものと表示する反面、同一なラインの他のベクトルは無
効なものに置いておく。データタイプが32Bより少な
い場合、このサイクルは部分的にデータ記入が行われ
る。この部分データは、一時的なレジスタに貯蔵され
る。CCUは紛失された半ライン(32B)をメモリか
らフェッチしてからロードし、キャッシュに戻す。その
後、部分データは適切なバイトイネーブル信号と共にキ
ャッシュラインに記入される。ダーティキャッシュライ
ンを有するすべての記入ミスに対して、CCUはまずダ
ーティラインをコピーする。ダーティデータがまだ使用
されていないので、CCUは承認ロジックにホールドを
表示し、新しい読出または記入リクエストが承認されな
いようにする。その後、ダーディキャッシュラインデー
タをフェッチするために、ダーティラインを使用し内部
の読出が始まる。結局、ライトバックアドレス及びデー
タはメモリに供給される。
【0075】2.4.5 プログラミングモデル キャッシュサブシステムのすべては、ロード&貯蔵命令
語を使用したハードウェアで制御されるので、ソフトウ
ェア−可視(software-visible)レジスタを必要としな
い。 2.4.6 IDC及びROMアドレスフォーマット
図23の図示のとおりである。
【0076】第 3 章 IOBUS説明 本章は、ハードウェアデザイナーが示すIOBUSの仕
様に関して記述したものである。 3.1 概要 IOBUSは、システムで使用される低速の標準的な周
辺装置のために設計されたものである。このバスは、M
SPキャッシュ制御ユニット(CCU)、ビットストリ
ーム処理器(BSP)とタイマー/インタラプトコント
ローラーと、UARTのようなすべての他のIO周辺装
置等間のメインインターフェースの役割を果たす。バス
のフォーマットは、インテル社のIOバスと非常に類似
している。バスアービタ制御ロジックは、リクエストに
対しバスを常に監視し、ラウンド−ロビン(round-robi
n)システムを用い、適切なリクエスト−承認を発生させ
る。潜在的なバスマスタは、常にバス−リクエストを表
示し、バスを占有する前にバス−承認が表示されること
を待つ。バスマスタは、常にプロトコルによる期間の
間、アドレスと制御ラインとを駆動する。
【0077】IOBUSは全体的に40MHzで動作す
る同期バスである。MSP IOBUS上でのすべての
承認は、リクエストがアクチブにサンプリングされてか
ら第1番目のサイクルで発生する。このバスは4個のサ
イクル(4個のバースト)に対し、16バイト伝送まで
処理可能である。これはバスマスタによりリクエストさ
れた伝送サイズをバスアービタに知らせる2個のサイズ
ビットを使用することによって実現される。IOBUS
は32ビットアドレスとデータマルチプレクサーを有す
る。アドレスは常にデータの以前に現れる。IOB_A
LE(アドレスラッチイネーブル)信号はアドレスをラ
ッチするために、受信装置により使用される。たとえ、
8ビットデバイスがバスに連結されても、すべてのバス
アクセシングは32ビット伝送を仮定する。正常的な規
則によると、8ビットデバイスは、バスの下位8ビット
[7:0]を使用し、16ビットデバイスはバスの下位
16ビット[15:0]を使用する。もし16ビットデ
バイスが8ビットデバイスとの通信を願うと、8ビット
デバイスがデータを探してラッチできるように、バスの
下位8ビットに正確なデータを載置すべきである。同一
期間に多数個のリクエストがある場合、承認されないリ
クエスタは、IOBUSアービタが承認するまで、常に
そのリクエストをホールドさせなければならない。この
ようなシステムにおいて許容されたリクエストに対し多
い“バス−アクセシングサイクル”すなわち、4*32
ビット伝送(最大16バイト)がある。ブロック伝送
は、常にそれぞれ多数個の32ビット伝送に分けられ
る。すべてのバス承認は、IOBUSアービタにより発
生される。しかし、常にアドレス(有効時)を監視し、
目的地に適切なチップ選択(次のクロックサイクルに対
して)を発生させる並列デコーディングロジックがあ
る。チップ選択は、常にただ1つサイクルに対して有効
であり、以降アドレスがすべての読出及び記入リクエス
トのために表示される。それぞれのIOBUSノードは
入力として専用のチップ選択を有する。ピン説明及びタ
イミング図を参照すること。2ビットサイズ情報は、バ
スアービタから承認されてからマスタによって発生さ
れ、以降2個のバスサイクルに対して有効である。CS
がバス伝送サイクルを決定するために表示されると、選
択されたスレーブはサイズ情報を獲得しなければならな
い。また、読出または記入時、IOBUSアービタは新
しいリクエストを探し始める前、バスサイクルが終了さ
れることを判断するための伝送サイズのトラックを維持
する。バースト−バス伝送時(読出または記入時)デー
タ間には差異が全然ない。データ読出伝送において、デ
ータが有効な時点をリクエスタに知らせ、このデータラ
ッチを始めるためにREADY信号が使用される。この
READY信号は、バスマスタとスレーブにより発生さ
れる。このプロトコルを満足させるためには、すべての
IOBUSノードは、リクエストを処理する前、IOB
USインターフェースを設計する必要がある。このイン
ターフェースは次のスぺックを満足させなければならな
い。
【0078】
【0079】3.2 ピン説明 以下、バスマスタ側から見たシステムIOBUSのため
のアドレス、データ及び制御信号の定義を説明する。I
OBUS構造定義を示している図24を参照すること。
上述のごとく、IOBUSは多重化されたアドレス/デ
ータバスである。“xxx”はリクエスタ名称(cc
u、bsp、urt、tmr、int)を示す3個の文
字コードである。 *システムIOBUS信号定義
【0080】
【表28】
【0081】3.3 ロジック定義 IOBUS仲裁制御ユニットは、図25の図示のとおり
である。 3.4 IOBUSタイミング IOBUS読出タイミング(伝送サイズ=1 ワード
(4バイト))は、図26の図示のとおりであり、IO
BUS記入タイミング(伝送サイズ=1 ワード(4バ
イト))は、図27の図示のとおりであり、IOBUS
読出タイミング(伝送サイズ=4 ワード(16バイ
ト))は、図28の図示のとおりであり、IOBUS記
入タイミング(伝送サイズ=4 ワード(16バイ
ト))は、図29の図示のとおりである。
【0082】第 4 章 FBUS説明 本章は、ハードウェアデザイナー側面で、FBUSのス
ぺックを記述したことである。 4.1 概要 メモリコントローラー、PCI、カストマ注文型半導体
及びキャッシュサブシステムは、非多重化されたアドレ
ス及びデータバスラインを通し、システムバス“FBU
S”とイオンターフェースする。1つの中央FBUS仲
裁制御ロジックはリクエストを監視し、優先順位体系を
使用して承認を発生する。バスマスタ(アドレス及びデ
ータソース)は、常にバスリクエストを表示し、承認を
待つ。正常状態において、承認はバスをペンディングす
るリクエストがさらに他のマスタ/スレーブにより使用
されない同一なサイクルで発生する(すべての承認は結
合的に発生される)。一応マスタがバス承認を受信する
と、アドレス/データ/制御ラインは、次のサイクルに
送られる。“データ準備”信号は、常に次のサイクルラ
ッチを始めたことを受信器に知らせるために、実質的な
データを処理する。バス帯域幅を最大に使用するため
に、4個の連続的なリクエストはパイプライン 折り返
し(back to back)方式で受信/伝送され、4個のリクエ
ストを提供するために“リクエストFIFO”を必要と
する。メモリコントローラーは、4個のディープ(deep)
リクエストFIFOと、2個のディープデータFIFO
を有する。このようなプロトコル特性によって、“AF
_FULL”と“DF_FULL”信号を必要とする。
これらはそれぞれアドレスFIFOフールとデータFI
FOフールを示す。FBUSは承認カウント及びリクエ
ストサイズバスを使用し、8、16及び32バイトのデ
ータ伝送を支援する。
【0083】それぞれのFBUSユニットは、バスをリ
クエストするための制御ロジックを有する。このロジッ
クは応用(メモリ/PCI/キャッシュ等)によって、
ユニット毎に異なる。しかし、実際のバス仲裁ユニット
は各ユニットに対し同一であり、すべてのサブモジュー
ルで重複される。このユニットは、外部バスマスタ/ス
レーブと内部ユニットロジック間の媒体として作用す
る。例えば、メモリコントローラーの場合、一応CAS
が活性化されると、メモリコントローラーは、FBUS
を使用する必要があることを表わす内部信号を通して、
内部リクエストをFBUS仲裁ロジックに表示する。こ
のリクエストに応信し、FBUSコントローラーは、メ
モリコントローラーに対して外部のシステムにリクエス
トを表示し、承認を待つ。一応承認が受信されると、ア
ドレス/データ制御は、応信の第1番目のエントリーと
メモリコントローラーのデータFIFOから伝送され
る。
【0084】メモリコントローラーに対するシステムリ
クエストサイズは、1バイトから最大32ビットサイズ
までできる。32バイト以上のリクエストサイズの場
合、ソース/リクエスタはFBUSサイズビットを使用
し、多数個のリクエストを初期化する。これはSDRA
Mメモリバス(1または2個の(三星 SDRAM 1M*16)の
限界に因ることである。SDRAMは残りのシステムに
より要求される完全な32バイトを実現するために、8
個のラップ(wrap)の長さに対してプログラムされる。3
2バイト以下のリクエストの場合、32バイトのすべて
がSDRAMからフェッチされるが、所望の数のバイト
のみが目的地に伝送される。また、10個のビットリク
エスタIDバスは、“チップ選択”信号(アドレス/デ
ータと同一なサイクル)で有効化される。すべてのFB
USノードは、3ビットの“目的地ID”をFBUSア
ービタに発生する。この3ビットはリクエストと共に有
効化され、リクエストの目的地を表わす。目的地IDビ
ット[1:0]は、下記のように入力されるリクエスタ
IDからデコーディングされる。
【0085】 リクエスタID[9:6] ソース 目的地ID[1:0] 0000 予約 N/A 0001 ARM7 N/A 0010 FU N/A 0011 LSU N/A 0100 CCU 00 0101 ASIC 11 0110 MEM 01 0111 PCI 10 1xxx 予約 目的地IDビット[2]は、読出/記入リクエストステ
ータスを表わすことに使用される。これはFBUSがア
ドレスリクエスト(読出)と、アドレス/データリクエ
スト(記入)間を区別することを助けてやる。正常状態
で、承認カウントビット“grCNT[1:0]”は、
リクエスターがバスを必要とするFBUSサイクル数を
示す。折り返しリクエストに対し、リクエストはバスマ
スタにリクエストの長さを知らせる。FBUSマスタコ
ントローラーは2個の承認カウントビットによって承認
を表示する。FBUSはポストされた読出を支援するス
プリットトランザクションバスである。これはリクエス
タがバスをリクエストし、一応承認されると、このFB
USはアドレスを駆動しトランザクションを終了する。
しばらく後で、スレーブ/データソースは目的地IDを
使用し、かつ同一なリクエスト112をリクエスタに戻
すことによってデータを戻す。このような特性は、バス
帯域幅を大幅向上させ、他のマスタがFBUSのさらに
迅速な使用を許容する。より詳細なことはタイミング図
を参照すること。 4.2 ピン説明 以下、システムFBUSのアドレス、データ及び制御信
号を説明する。上述のごとく、FBUSは非多重化され
たアドレス/データバスである。“xxx”はリクエス
タ名称(mem、pci、asc、ccu)を表わす3
個の文字コードである。
【0086】システムFBUS信号定義
【表29】
【表30】
【0087】図30は、メモリ読出リクエストFBUS
フローを示したものであり、図31はメモリ記入リクエ
ストFBUSフローを示しているし、図32はマスタ/
スレーブ“非メモリ”リクエストFBUSフローを示し
たものであり、図33は中央のFBUS仲裁制御ユニッ
トを示したものである。図34〜図36はFBUSタイ
ミング図であり、図34はメモリリクエストFBUSタ
イミングを示す(8バイトデータ伝送を示しており、1
6/32/64/128バイトの複数個のデータサイク
ルが使用される)。図35はメモリ読出リクエストFB
USタイミングを示し(伝送サイズ=8バイト)、図3
6はメモリ折り返し記入リクエスト(伝送サイズ=32
バイト)を示したものである。
【0088】第 5 章 PCIバス 本章は、PCIコアと、内部FBUSとインターフェー
スするPCIグルー(glue)ロジックスぺックを説明した
ものである。 5.1 概要 MSP_1E PCIコントローラーは、PCIバスス
ぺック改正版2.1を満足させるために設計されたもの
である。より詳細なことはこの標準スぺックを参照する
こと。PCIユニットは、2個のメインセクション:P
CIコアとFBUS‘グルー’ロジックを含む。PCI
コアは、主に33MHzのPCIバス速度で動作する外
部のPCIデバイスとインターフェースする。FBUS
‘グルー’ロジックは、80MHzで動作する三星FB
USとインターフェースする。この‘グルー’ロジック
は、PCIコアとFBUS間をインターフェースする。
速度同期化は、サブブロックの2個のエンドでFIFO
を利用して実現できる。三星のPCIコアは、また仮想
的なフレームバッファロジックと、FBUSを通してA
RM7とインターフェースすることに必要なすべてのV
FBレジスタを含む。このPCIユニットに対し唯一な
特徴は、ホストCPU MSPチップと、MSPチップ
からホストCPUへのインタラプト処理である。これに
対してより詳細に説明する。
【0089】5.1.1 三星PCIコアブロック図は
図37の図示のとおりである。 5.2 PCI FBUSインターフェースロジック(図
38参照) PCIコアのサブブロックは、MSP内部FBUSとS
ANDマイクロのPCIコアとインターフェースする。
アドレスとデータは、2個のエンドでFIFOに貯蔵さ
れる。このサブブロックはまた、PCI信号とFBUS
クロックを同期化させる役割をする。PCIコアロジッ
クは、FBUSマスタ及びスレーブデバイスであること
もある。大部のアクセスは、64ビットFBUSを通し
てローカルSDRAMメモリに向かう。FBUSプロト
コルの説明のためには、FBUS章を参照すること。P
CI FBUS制御ロジックは、また仮想フレームバッ
ファレジスタと制御とを含む。このレジスタはFBUS
を通してARM7によりプログラムされる。ブロック図
を参照すること。 5.3 PCI VFBロジック 図39はVFBブロック図であり、図40はVFBレジ
スタである。 5.4 PCIコアロジック MSP PCIコアは、PCI2.1スぺックを完全に
満足する。追加事項はインタラプトとソフトウェアMS
Pリセットの為に付加されたレジスタ数である。 A
RM7にあるソフトウェア、MSP制御レジスタのMS
P(bit<3>)からPCIホストインタラプトリク
エストをセットすることによって、ホストCPUをイン
タラプトすることができる。これはPCIバス(INT
A#)にあるインタラプトピンをセットすることによっ
て、PCIコアロジックがホストCPUをインタラプト
するようにする。以降、ホストCPUは、MSP制御レ
ジスタのPCIホストインタラプト認知(bit<4
>)を通してインタラプトを認知する。これはインタラ
プトラインがイ非活性状態となるようにする。MSP
PCIコアはまた基本的に、ARM7に対するインタラ
プトであるホストCPUからのインタラプトを受け取る
ことができる。PCIスぺックが任意のインタラプト入
力ピンを支援しないので、MSP制御レジスタにある、
ホストからのMSPインタラプトリクエスト(bit<
2>)がこの機能を提供することに使用される。ホスト
CPUは、ARM7に対するインタラプトを表わすため
にこのビットを設定することができる。次に、一応ホス
トインタラプトを認知すると、ARM7はこのレジスタ
をクリアーさせる。図41のブロック図を参照するこ
と。図41に対して、PCI空間でないMSP領域にマ
ッピングされた3個のレジスタが必要である。実質的な
PCIコアに対する細部的な情報のためには、PCI
2.1スぺックを参照すること。
【0090】第 6 章 メモリコントローラー 6.1 本章は、ハードウェアとソフトウェアデザイナ
ー側面で、メモリコントローラーの仕様を説明したもの
である。 6.2 概要 MSPメモリコントローラーはいく特徴を有し、費用と
性能に対するトレードオフのためのプログラム可能性レ
ベルを有する。メモリコントローラーは80MHzで動
作するメインシステムバス“FBUS”とDRAMチッ
プとインターフェースする。80MHzクロック周波数
を実現するために、初期の設計段階で同期DRAMが使
用される。結局、メモリサブシステムは、標準高速ペー
ジDRAM、拡張されたデータ出力(EDO)DRAM
と同期DRAMとを支援する。メモリバンクサイズは、
インターリーブ可能な2個の外部バンクに制限される。
初期の同期DRAMメモリコントローラーは、DRAM
を動作させることに必要な最小限の特徴を有する。次は
基本的な第1パスメモリコントローラーの特徴を示して
いる。 *三星の同期DRAM支援 *2個のSDRAMチップを使用した1つのメモリバン
ク(1M×16) *Cas−Before−Ras(CBR)リフレッシ
ュ支援 *読出ー修正ー記入(Read−Modify−Wri
te)動作を初期化する部分的な記入支援 *内部のバンクインターリーブ支援(MA[11]を通
したピンポン) *80MHzメモリとプロセッサバス(1:1)周波数
マッチ *プログラマブルリフレッシュ率 *システムバスを効率的に使用するためのアドレスとデ
ータキューイング *マニュアル“2個バンクプリチャージ”支援 MSPメモリコントローラーは、2個のメインサブ構成
要素:データコントローラーとアドレスコントローラー
とを有する。データコントローラーは、DRAMから読
み出されたデータを貯蔵し、プロセッサバスからデータ
を記入するための読出及び記入データキューを有する。
データコントローラーはまた、バイト記入のためのRM
Wロジックを含む。データコントローラーに対するすべ
ての制御は、アドレスコントローラーから発生する。ア
ドレスコントローラーは、リクエストキュー、応信ID
キュー、メモリアクセスデコーディングロジック、ペー
ジ比較器ロジック、RAS/CAS状態マシン、リフレ
ッシュ状態マシンと、データコントローラーにより使用
される必要なすべての制御信号を有する。SDRAMメ
モリクロックは、システムクロックと同一である。SD
RAMは前記1セットの各制御信号を受信する。
【0091】6.2.1 メモリコントローラーブロッ
ク図は図42の図示のとおりである。 6.2.2 メモリコントローラーフローは、図43の
図示のとおりである。 6.3 アドレスコントローラー(AC) メモリコントローラーでアドレスコントローラーセクシ
ョンは、データコントローラーを管理することだけでな
く、すべてのDRAM制御を発生させる役割をする。M
SPメモリコントローラーのこのセクションは、またF
BUSインターフェースのアドレスと制御経路を担当す
る。次のブロック図は、アドレスコントローラーユニッ
トの多数個のサブ−セクションを示す。 6.3.1 アドレスコントローラーブロック図は図4
4の図示のとおりである。 6.3.2 メモリコントローラーリクエストFIFO MSPメモリコントローラーは、実質的なメモリコント
ローラー状態マシンへのディスパッチ(dispatch)のため
の、FBUSアドレスと制御情報とを貯蔵する4個のデ
ィープリクエストFIFOを有する。リクエストFIF
Oのそれぞれのエントリーは、特定エントリーが有効で
あることを表わす“有効”ビットを有する。メモリコン
トローラー状態マシンは、常にENTRY_0のFIF
Oにある最下位エントリーを支援する。一応リクエスト
が提供され、列アドレスストローブ(CAS)が活性化
されると、メモリコントローラーはこのエントリーをク
リアーさせるために、クリアー信号を表示する。FIF
O FULL/EMPTYステータスによって、バレル
シフトが有効な内容をエントリー0にシフトさせるため
に初期化される。MSPメモリコントローラーリクエス
トFIFOフォーマットは、図45の図示のとおりであ
る。
【0092】6.3.3 メモリコントローラーアドレ
スデコード/マップ アドレスデコーディングロジックは、主に11ビットの
SDRAM行アドレスMA[10:0]と8ビットの列
アドレスMA[7:0]とを発生させる役割をする。こ
のアドレスラインは、SDRAMアドレス入力[11:
0]へ直接駆動される。メモリアドレスビット[11]
は、性能のために内部SDRAMバンクと、改善された
メモリバス使用の間をトグルすることに使用される。こ
のメモリアドレスは、次のことを表わすレジスタを通し
て与えられるプログラマブルマルチプレクサーを使用し
て発生される。 −現在システムキャッシュラインサイズ −内部バンクの数 −内部バンクインターリービング システムキャッシュラインオフセットは、32バイトキ
ャッシュラインに対して5ビットである。図46は、1
6MB DRAMのためのFBUSシステムアドレスか
ら発生される提案されたメモリアドレスフォーマットを
示している。この多重化されたメモリアドレスは、メモ
リコントローラー状態マシンによって指示されるRAS
とCASストローブとを有する、1つのサイクルに対し
て有効である。MCUは読出−修正−記入動作を指示せ
ず、8バイト記入を遂行することができる。しかし、F
BUSアドレスのbit[2]は常にアドレスのみをス
タートするために、ゼロである。このビットは下記のよ
うにスターティングアドレスを表わす3個ビットの中の
1つである、SDRAMアドレスのbit[0]にマッ
ピングされる。 Faddr[4:2] 記入シーケンス(WRAP=8) 000 0−1−2−3−4−5−6−7 010 2−3−4−5−6−7−0−1 100 4−5−6−7−0−1−2−3 110 6−7−0−1−2−3−4−5 これらは全部偶数のスターティングアドレスであり、M
CUによって支援されるシーケンスである。すべての読
出動作は32バイトを仮定し、スタートアドレスは(0
00)=rna[2:0]=Faddr[4:2]であ
る。
【0093】6.3.4 メモリコントローラー状態マ
シン MSPメモリコントローラーは、1つのマスタコントロ
ーラー状態マシンを有する。この状態マシンは、SDR
AM制御信号のためのすべてのタイミング(RAS/C
AS/WE/CS/DQM)を発生させる役割を担う。
状態マシンは、常にエントリー0にある有効エントリー
のために、リクエストFIFOをモニタする。一応、有
効ビットが検出されると、状態マシンはSDRAMシー
ケンス開始をキックオフする。また、RASプリチャー
ジが必要であるか否かを判断するために、ページ比較器
からPage_hit信号をモニタする。RASプロチ
ャージは、現在のアクチブ/開放バンク上で遂行され
る。マニュアルプリチャージシーケンスは、ゼロの状態
を活性化させるために、CS、RAS、WEとMA[1
1]を表示することを含む。内部バンク選択ビットMA
[11]は、プリチャージするためのバンクを選択する
ことに使用される。読出の場合:プリチャージコマンド
は、データ衝突を避けるために、データがSDRAMか
ら受信されてから表示される。記入の場合、プリチャー
ジは最後のビットのデータがメモリに記入されてから発
行される。一応プリチャージコマンドが完了されると、
特定バンクは次のメモリ動作のためにアイドル(idle)状
態となる。SDRAMスぺックによると、プリチャージ
コマンドは、tRAS(min)(ここでは60ns)が満
足されてから何時でも発生できる。しかし、現在4のラ
ップ(wrap)の長さによって、メモリコントローラー状態
マシンは、データがメモリに読出/記入されてからプリ
チャージコマンドを発生させる。次は、MSPメモリコ
ントローラーと共に使用されるSDRAMパラメータを
示す。
【0094】
【表31】
【0095】*tRASは、同期DRAMの60ns列
アクセスタイムを実現させるために、5サイクルで使用
され得る。メモリコントローラータイミング図を参照す
ること。 6.3.4.1 状態マシンダイアグラム 図47はSDRAMメモリコントローラーRAS/CA
S状態マシンダイアグラムを示す。 6.4 メモリコントローラーリフレッシュ 同期DRAMは、それぞれの貯蔵セルにあるデータを維
持するために毎32 ms(15.6us)毎にリフレッシュされる必要があ
る。同期DRAMはまた、2個モードのリフレッシュ:
自動リフレッシュとセルフリフレッシュとを支援する。
【0096】6.4.1 SDRAM自動リフレッシュ 標準の自動リフレッシュを使用し、2個の内部バンクが
内部カウンタにより交番的にリフレッシュされる。行(r
ow)の数が4096であるので、自動リフレッシュはD
RAM全体をリフレッシュするために、2048自動リ
フレッシュサイクルを必要とする。自動リフレッシュコ
マンドは、CKEとWEがハイで、CS、RAS&CA
Sがローであることを表示することにより発生される。
このコマンドは、2個のバンクがアイドル状態にある場
合のみに表示される。自動リフレッシュを終了すること
に必要な時間は、 tRC(min)/サイクル時間=100ns(spec)/12.5ns=
8サイクル(80MHz) 6.4.2 SDRAMセルフリフレッシュ セルフリフレッシュは、三星のSDRAMに使用される
さらに別のモードである。これは一般的にデータ維持及
び低電力動作のために好ましいリフレッシュモードであ
る。ここでSDRAMは、内部クロックとCKEを除い
たすべての入力バッファをディスエーブルさせる。C
S、RAS、CASとCKEがローでWEがハイの場
合、セルフリフレッシュモードに入る。セルフリフレッ
シュモードは、SDRAMクロックのシュッティングと
CKE信号を用いた再試みを要求するので、MSPメモ
リコントローラーは、このリフレッシュモードを使用し
ない。 6.4.3 マニュアルリフレッシュ このリフレッシュモードは、状態マシン/カウンタ設計
を要求する。カウンタは15.6us毎にタイムアウト
され、メモリコントローラーロジックでリフレッシュス
トローブを表示する。次に、メモリコントローラーは、
現在のリフレッシュを終了し、すぐSDRAMリフレッ
シュサイクルを初期化させる。このサイクルは、アイド
ル状態における制限を持たず、全く自動リフレッシュサ
イクルと類似している。
【0097】6.5 データコントローラー(DC) メモリコントローラーでデータコントローラーセクショ
ンは、主にプロセッサからデータを記入するか、または
SDRAMからデータを読み出すためのデータキューと
して提供される。このコントローラーはまた、すべての
部分的な記入時(バイト記入)のための記入併合ロジッ
クを有する。部分的な記入はまず、DRAM読出をキッ
クオフした後データを併合し、最後に完全に修正された
ワードをメモリに更に記入する。従って、部分的な記入
シーケンス次の任意のリクエストは性能ヒットを取らな
ければならない。 6.5.1 データコントローラーブロック図は図48
の図示のとおりである。
【0098】6.6 ピン説明 このコントローラーは、次のパッケージピンを提供す
る。 *RAS_I:出力ピン(アクチブロー)。これはMA
[11:0]からの行アドレスを、選択されたDRAM
バンクの内部行アドレスバッファにラッチするための行
アドレスストローブである。 *CAS_I:出力ピン(アクチブロー)。これはMA
[11:0]からの列アドレスを、選択されたDRAM
バンクの内部列アドレスバッファにラッチするための、
列アドレスストローブである。 *WE_I:出力ピン(記入時アクチブロー)。DRA
Mの記入イネーブル入力ピンを駆動するためのものであ
る。 *MA[11:0]:出力ピン。DRAMに対する多重
化された行及び列アドレス信号。 *DQM:出力ピン。クロック及び出力をマスクした
後、SDRAMデータ出力をハイインピーダンスにす
る。(このピンは同期DRAMインターフェースに対し
てのみ使用する。) *CS_I:出力ピン(アクチブロー)。選択されたS
DRAM動作のためにディスエーブルまたはイネーブル
される。(このピンは同期DRAMインターフェースに
対してのみ使用する。) *CLK:出力ピン。これは同期DRAMに対するクロ
ック出力ピンであって、SDRAMのみで使用され、M
SPのシステムクロックと同じ位相を有する。
【0099】6.7 メモリコントローラータイミング
は、図49から図51の図示のとおりである。図49
に関連した事項は下記のとおりである。 −三星のSDRAMに仮定 −80MHzで動作するメモリとシステム。 −1個または2個の外部SDRAM(1M×16)。 −メモリからラインをフェッチするための4/8プログ
ラマブルラップの長さ。 −tRCD=3。 −tCAS=3。 −内部遅延=2クロック。 −メモリ待ち時間=8サイクル(8×12.5=100
ns). −メモリからのシステムデータは、仲裁(読出データ)
のために2個サイクルほど遅延する。
【0100】6.8 プログラマブルモデル プログラマー側面で、メモリコントローラーに関連した
制御レジスタは、下記のとおりである。 6.8.1 SDRAMリセットレジスタ(R/W) このレジスタは、それぞれのシステムリセット後でリセ
ットされる。これはSDRAMパワーオンシーケンスを
始めるreset_sdram信号を伝達する1ビット
レジスタである。システムリセット時にこのレジスタは
1に設定される。SDRAMを動作させるために、ソフ
トウェアによりこのレジスタをクリアーさせなければな
らない。bit0はシステムリセットで設定され、SD
RAMを動作させるためにクリアーされる。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b1011 6.8.2 SDRAMバーストタイプレジスタ(R/
W) このレジスタは、SDRAMバーストタイプをプログラ
ムする。これは順次的なバーストタイプに対しゼロにプ
ログラムされる1ビットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b1010 bit0はシステムリセットとともにリセットされ、S
DRAMを動作させるためにクリアーされる。 6.8.3 SDRAMリフレッシュレジスタ(R/
W) このレジスタは、SDRAMリフレッシュ値をプログラ
ムする。これはFBUSを通してプログラムされる12
ビットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b1001 bit11−0はシステムリセットとともにリセットさ
れ、4E0のリフレッシュ値にプログラムされる。 6.8.4 SDRAM RASプリチャージ(tRP)
レジスタ(R/W) このレジスタはSDRAM RASプリチャージ値をプ
ログラムする。これはFBUSを通してプログラムされ
る3ビットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b1000 bit2−0はシステムリセットとともにリセットさ
れ、1または2または3にプログラムされる。 6.8.5 SDRAM CAS待ち時間(tCAC)レ
ジスタ(R/W) このレジスタはSDRAM CAS待ち時間をプログラ
ムする。これはFBUSを通してプログラムされる3ビ
ットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b0011 bit2−0は、システムリセットとともにリセットさ
れ、1または2または3にプログラムされる。 6.8.6 SDRAM RAS CAS待ち時間(tR
CD)レジスタ(R/W) このレジスタはSDRAM RCD待ち時間をプログラ
ムする。これはFBUSを通してプログラムされる3ビ
ットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b0010 bit2−0は、システムリセットとともにリセットさ
れ、1または2または3にプログラムされる。 6.8.7 SDRAM WRAP LENGTHレジス
タ(R/W) このレジスタはデータに対するSDRAMのラップ長さ
をプログラムする。これはFBUSを通してプログラム
される3ビットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b0001 bit2−0は、システムリセットとともにリセットさ
れ、1、2、4、または8の中にいずれかにプログラム
される。 6.8.8 SDRAM NOP TIMEレジスタ(R
/W) このレジスタはパワーオンシーケンスのためのSDRA
MのNOP時間をプログラムする。これはFBUSを通
してプログラムされる16ビットレジスタである。 プログラミングアドレス: Faddr[31:20]=12’h010 Faddr[3:0]=4’b0000 bit15−0はシステムリセットとともにリセットさ
れ、クロック周波数によって200usにプログラムさ
れる。
【0101】第 7 章 ASICインターフェース 本章ではASICインターフェースユニットの仕様を説
明した。 7.1 概要 ASICインターフェースユニット(図52参照)は、
1つのプログラマブル32ビットDMA、多数個のFI
FOと制御ブロックを有する。ASICインターフェー
スブロックは、80MHzで動作するメインシステムバ
ス(FBUS)と、MSP、AD1843(オーディ
オ、電話)、KS0122(ビデオキャプチャ)、KS
0119とVGAをインターフェースするCODECイ
ンターフェースブロックをインターフェースする。現在
の仮定は、任意の同期化問題を避けるために、すべての
CODECインターフェースとDMAコントローラーを
完全なFBUS速度で動作させることである。カストマ
ASICブロックは、3個の主要セクション:FBUS
マスタ/スレーブインターフェース、MSP8−チャン
ネルDMAコントローラーと実際のCODECとを有す
る。データはFBUSからCODECに伝達されるか、
またはCODECからFBUSに伝達される。しかし、
アドレスはただDMAコントローラーのみから発生され
る。そうすると、このアドレスはFBUSインターフェ
ースロジックでマッピングされたFBUSである可能性
もある。他のFBUSノードからのすべての記入は、た
だCODECセクションにあるレジスタのみをプログラ
ムする。他のすべてのトラヒックでは、サイズ及びID
情報を有する応信を読み出さなければならない。FBU
S仕様を参照すること。次は、ASICインターフェー
スユニットに対する特徴である。 *32ビット基本DMA機能を支援(各コーデックに対
し、8個のチャンネル−−1個のチャンネル)。 *2個の4ディープ×64ビットデータFIFO。 *1個の1ディープ×52ビットリクエストFIFO。 *1個の2ディープ×52ビット応信FIFO。 *FBUSとCODECインターフェースブロックのた
めのマスタ/スレーブを支援。 *動作周波数:80MHzまで。 *メモリに対するIO、IOに対するメモリ間のアクセ
ス支援。 *KS0119用に使用されるチャンネル0のための最
上位優先順位支援。 *KS0119に対して高性能を実現するために特殊ア
ドレスバス支援。 このカストマインターフェースロジックは、3個の相互
に異なるCODECを支援する。 *オーディオ及び電話CODEC(AD1843)。こ
のCODECはDMAコントローラーと通信する両方向
64ビットデータバスを有する。(チャンネル4→DA
C1、チャンネル5→DAC2、チャンネル6→ADC
左側、チャンネル7→ADC右側) *ビデオキャプチャCODEC(KS0122)。この
CODECは両方向64ビットデータバスを有し、DM
A(チャンネル2)に対してM→IO、IO→Mリクエ
ストを初期化することができる。 *ビデオ バックエンド(backend)CODEC(KS01
19)。このCODECはメモリコントローラーからデ
ータを直接に受信する(チャンネル0)。
【0102】ASICインターフェースブロック 7.2 直接メモリアクセス(DMA)コントローラー DMAコントローラーは、アドレス発生及び解釈のため
に使用されるレジスタを有する。このDMAコントロー
ラーは、8個の独立的なチャンネルを有する。各チャン
ネルは、現在のアドレスレジスタと停止アドレスレジス
タとを有する。開始及び停止アドレスレジスタは、構成
ブロックを通して先にプログラムされる。現在のアドレ
スレジスタは、8個のCODECの中のいずれか1つか
らDMAリクエストが発生する時ごとにロードされる。
一応、FBUSがアクセスを承認すると、このDMAア
ドレスは、現在アドレスが停止アドレスレジスタとマッ
チされるまで、サイクルごとに増加する。その時点で、
DMAコントローラーが信号“EOP(End Of Proces
s)”を発生する。この信号はプロセスでインタラプトを
誘発する。8個のすべてのDMAチャンネルは、マルチ
プレクサーとアドレス比較ブロックを制御する共通の仲
裁ユニットを有する。このDMAコントローラーは、I
Oメモリ、メモリとIO、メモリとメモリ間のアクセス
を支援する。CODECがDMAと通信しようとする時
ごとに、CODECはDMA_REQ信号を表示し、D
MAからDMA認知信号の“DACK”を待つ。一応、
認知されるとCODECはM−IO信号とデータとを駆
動する。DMAコントローラーは承認されたDACKに
よって、適切なチャンネルを選択する。ブロック図を参
照すること。
【0103】7.3 DMAレジスタ説明 7.3.1 現在アドレスレジスタ 各チャンネルは、すべてのアドレスが8バイトに配列さ
れることを要求する、29ビット現在アドレスレジスタ
(bits<31:3>)を有する。事実上、このレジ
スタは29ビットカウンタである。このレジスタはAR
M7によって読み出され、初期値はFBUSを通してA
RM7からロードされる。このアドレスはデータ伝送サ
イズに基づいて増加される。現在アドレスレジスタにあ
るアドレスは、マルチプレクサーを通してFBUS上の
アドレスをロードするために、アドレス発生ブロックに
伝送される。現在アドレスレジスタは、アイドル状態で
はアドレス値をホールドさせる。 7.3.2 停止アドレスレジスタ 各チャンネルは、すべてのアドレスは8バイトに配列さ
れることを要求する、29ビット停止アドレスレジスタ
(bits<31:3>)を有する。このレジスタに
は、FBUSを通してARM7により記入される。この
値は、比較ブロックで現在アドレスと比較されることに
使用される。もし現在アドレスが停止アドレスと一致す
ると、DMAコントローラーは、各チャンネルに対して
“EOP”信号を発生させる。 7.3.3 ステータスレジスタ このレジスタは、各チャンネルが停止アドレスに到達し
か否かを表わす情報を貯蔵する。Bits<7:0>
は、どのチャンネルが停止アドレスに到達したかを規定
し、ARM7がCCUを通して現在アドレスレジスタを
初期化した時にリセットされる。このレジスタはARM
7により読み出され、ARM7はこのレジスタを記入す
ることができない。 7.3.4 制御レジスタ このレジスタは、DMAコントローラーの動作に対する
情報を貯蔵する。Bits<7:0>は、どのDMAチ
ャンネルが動作のためにイネーブルされたかを規定す
る。このビットは当該チャンネルが停止アドレスに到達
する時ごとにリセットされ、ARM7は動作を再開始す
るためにこのビットを設定する。任意のチャンネルイネ
ーブルビットが“0”の場合、DMAは例えCODEC
がDMAにDMA_REQを送るとしても、当該COD
ECにDMA_ACKを送らない。Bits<19:1
6>は、DMAチャンネルの中のいずれか1対が、ダブ
ル−バッファとして動作するために共に連結されている
かを規定する。例えば、チャンネル0とチャンネル1が
ダブル−バッファとして連結されている場合、チャンネ
ル0の現在アドレスが停止アドレスに到達した場合、D
MAコントローラーは自動的にチャンネル1を切り換
え、チャンネル1の現在アドレスが停止アドレスに到達
した場合、DMAコントローラーは自動的にチャンネル
0を切り換える。Bit<28:21>は、各チャンネ
ルの読出/記入モードに関連した情報を貯蔵する。もし
このビットの中の任意のビットがARM7によって
“1”に設定されると、該当チャンネルは読出動作のた
めに使用され、残りのチャンネルは記入動作のために使
用される。Bit<31>は、DMAがEOP信号をイ
ンタラプトコントローラーに送ったか否かを規定する。
もしこのビットが“0”であれば、DMAは任意のチャ
ンネルが停止アドレスに到達しても、EOPを送らな
い。
【0104】7.3.5 マスクレジスタ 制御レジスタにある各ビットは、マスクレジスタにある
マスクビットと連結されている。マスクビットが“0”
であれば、制御レジスタにある該当ビットがアップデー
トされることを防止する。初期には、このレジスタ<3
1:0>は、FFFFFFFF(hex)に設定される。 7.3.6 プログラミング 開始及び停止アドレスは、FBUSを通してARM7に
よりプログラムされる。FBUSマッピング値は下記の
とおりである。 CCU→0040_0000−007F_FFFF、 MCU→0080_0000−047F_FFFF、 PCI→0800_0000−FFFF_FFFF。 アドレスプログラミングにおいて、Address[2
6:0]は表に基づいて設定される。
【0105】DMAレジスタアドレスマップ
【表32】
【0106】
【表33】
【0107】制御レジスタのエンコーディング
【表34】
【0108】7.4 CODEC初期化 カストマASICユニットは、各CODECの初期化を
支援する。実質的には、ARM7がカストマASICユ
ニットを通してCODEC初期化を担当する。 カス
トマASICユニットは、各CODECに対するリクエ
スト信号を発生させるためのアドレスデコーダーを有し
ている。カストマASICユニットは、任意のCODE
Cと通信しようとする時ごとに、CODECにリクエス
ト信号を送り、CODECからの認知信号を待つ。認知
信号を受信してから、カストマASICユニットは、デ
ータとアドレスとをCODECに送る。ARM7がCC
Uを通して、任意のCODECにある構成データを読も
うとする場合、カストマASICユニットは、アドレス
をCODECに送る。カストマASICユニットは、C
ODECからのデータを受信すると、トランザクション
IXをCCUに返還する。この時点で、構成データが
CCUを通してARM7に伝送される。
【0109】
【表35】
【0110】図53は、カストマASIC回路網を示し
たものである。 4.I/Oピン定義
【0111】カストマASICユニットに対するI/O
ピン定義
【表36】
【0112】第 8 章 AD1843 CODECインタ
ーフェース 8.1 本章はAD1843 CODECインターフェースに関
する説明である。 8.2 概要 AD1843 CODECインターフェースブロック
は、AD1843シリアルバーストMSP DMAモジ
ュール間のインターフェースのためのものである。AD
1843はシリアルポートを通してデータ及び制御/ス
テータス情報を送信及び受信する。AD1843は、シ
リアルインターフェースを担当する4個のピン:SD
I、SDO、SCLK、SDFSを有する。SDIピン
は、AD1843に対するシリアルデータ入力のための
ものであり、SDOピンはAD1843からのシリアル
データ出力のためのものである。SCLKピンはシリア
ルインターフェースクロックのためのものである。AD
1843内部と外部の通信において、データビットはS
CLKの上昇エッジ以降に伝送され、SCLKの下降エ
ッジでサンプリングされることを要求する。SDFSピ
ンはシリアルインターフェースフレーム同期のためのも
のである。AD1843 CODECインターフェース
は、マスタモードに基づいたものであって、これはSC
LKとSDFS信号がAD1843によって発生される
ことを意味する。省略時(default)SCLK周波数は、
12.288MHzであり、1つのフレームサイクルは
48KHzである。CODECインターフェースの基本
構造は、DMAに基づいたものである。AD1843イ
ンターフェースは、4個の相互に異なるDMAチャンネ
ル:DAC1も対するチャンネル4、DAC2に対する
チャンネル5、ADC左側に対するチャンネル6、AD
C右側に対するチャンネル7を指定する。DMAからま
たはDMAへのチャンネル伝送サイズは、 1回当たり
64ビットである。従って、DMAチャンネル4とチャ
ンネル5は、2個の相互に異なる32ビットデータ(左
側のための16ビットと右側のための16ビット)を伝
送する。一方、DMAチャンネル6とチャンネル7は、
1回に4個の相互に異なる16ビットデータをCODE
CインターフェースからSDRAMに送る。DAC1と
DAC2インターフェースは、各チャンネルのフラグビ
ットが設定された時、データが有効であることを認識す
る。DAC1とDAC2インターフェースは、フラグビ
ットをチェッキングしてからDMAを要請する。フラグ
ビットがリセットされると、DAC1とDAC2インタ
ーフェースは、DMAリクエストを発生させない。フラ
グビットの実際の動作は、DMAクロックによって制御
される。DMAブロックはフラグビットがリセットされ
ると、DMA認知信号を発生させない。ADC左側及び
右側のFIFOが満ちていなければ、DMAリクエスト
は発生されない。ソフトウェアはADCフラグレジスタ
をチェックし、データバスを通して残っているデータを
読み出さなければならない。データバスを通してこれら
のデータを読出してから、FIFOは空くようになり、
FIFOが満ちるとDMAリクエストを発生させる。A
D1843制御レジスタは、制御ワード入力の制御レジ
スタアドレスと共に読出/記入リクエストを伝送するこ
とによって、読出及び記入される。読出が要請される
と、アドレシングされた制御レジスタの内容は、次のフ
レームの間に伝送され、記入が要請されると、記入され
るデータはAD1843スロット1に伝送されなければ
ならない。MSPの性能を向上させるために、プログラ
マーはCODECの制御レジスタを読出または記入する
前に、制御フラグレジスタをチェックしなければならな
い。制御フラグレジスタのフラグビットが設定される
と、CODECレジスタの読出及び記入動作が可能であ
る。
【0113】8.3 DMAチャンネル指定 DMAチャンネル4DAC1左側、右側 DMAチャンネル5DAC2左側、右側 DMAチャンネル6ADC左側 DMAチャンネル7ADC右側 8.4 DMAに対するデータフォーマット データサイズは64ビットであり、下記のように構成さ
れる。
【0114】
【0115】8.5 基本アドレス 04C0_4000 DAC1 BASE 04C0_5000 DAC2 BASE 04C0_6000 ADCL BASE(左側チャンネ
ル) 04C0_7000 ADCR BASE(右側チャンネ
ル) 8.6 レジスタマップ
【0116】
【表37】
【0117】 8.7 レジスタ定義 8.7.1 制御レジスタ記入データ入力 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 最上位ビット(MSB)は、伝送された最初のデータ入力ビットである。 8.7.2 制御ワード入力 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 r/w ia4 ia3 ia2 ia1 ia0 r/w 読出/記入リクエスト。制御レジスタからの読出または制御レ ジスタへの記入がフレームごとに発生される。“1”に設定したことは、制御レ ジスタ読出を示す反面、このビットを“0”にリセットさせることは、制御レジ スタ記入を示す。 ia4:0 読出または記入のための制御アドレスレジスタ 8.7.3 制御レジスタデータ出力 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d3 d3 d2 d1 d0 以前フレームでアドッレシングされた制御レジスタの内容 8.7.4 ADCフラグレジスタ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 r4v r3v r2v r1v 14v 13v 12v 11v r4v−r1v 有効ADC右側データがバッファにある。バッファにあ るどのデータが有効であるかを指示する。 14v−11v 有効ADC左側データがバッファにある。バッファにあ るどのデータが有効であるかを指示する。 8.7.5 ADC左側の第1番目のデータ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d3 d3 d2 d1 d0 バッファにあるADC左側の第1番目のデータ 8.7.6 ADC左側の第2番目のデータ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d3 d3 d2 d1 d0 バッファにあるADC左側の第2番目のデータ 8.7.7 ADC左側の第3番目のデータ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d3 d3 d2 d1 d0 バッファにあるADC左側の第3番目のデータ 8.7.8 ADC左側の第4番目のデータ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d3 d3 d2 d1 d0 バッファにあるADC左側の第4番目のデータ 8.7.9 制御フラグレジスタ 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 wf1 rf1 wf1 制御レジスタ記入フラグ。設定されるとCODECは制御レジス タデータを受信する準備をする。 rf1 制御レジスタ読出フラグ。設定されるとCODECは制御レジス タデータを伝送する準備をする。
【0118】第 9 章 ビデオコーデック 9.1 概要 ビデオコーデックロジックは、評価(evaluation)ボード
上のKS0119とKS0122チップに対しインター
フェースし、MSPチップにあるDMAモジュールに対
してインターフェースする。KS0119CODECは
またスクリーンリフレッシュ動作を提供する。この動作
のために、MCUモジュールに対する直接的なデータ経
路は、図54のように具現される。 9.2 上位モジュール定義 上位のモジュールは、図55でのような3個のサブモジ
ュールを有する。 −KS0119スクリーンリフレッシュモジュール −KS0122ビデオデータキャプチャモジュール −KS0119及びKS0122チップ構成レジスタを
アクセスする、3−ワイヤーシリアルホストインターフ
ェースとモジュール。 9.3 DMAチャンネル指定 DMA CH0 KS0119CODEC DMA CH1 予約 DMA CH2 KS0122CODEC DMA CH3 予約 DMA CH4 AD1843オーディオCODEC DMA CH5 AD1843オーディオCODEC DMA CH6 AD1843オーディオCODEC DMA CH7 AD1843オーディオCODEC DMA CH8 予約 DMA CH9 予約 9.4. 3−ワイヤーホストインターフェースモジュ
ール このモジュールは、チップ内部のすべてのレジスタが、
シリアルインターフェースを通してアクセスされるKS
0119とKS0122チップに対してインターフェー
スする。3ワイヤーシリアルインターフェースモジュー
ルは、これらのチップに通信プロトコルの機能を支援
し、KS0119とKS0122インターフェースロジ
ックのためのレジスタを含む。図3を参照すること。 9.5 EPROMインターフェース KS0119 IOピンは、システムがリセットされた
後、直ちにプログラムデータをロードすることに使用さ
れ、MSP−1EXブート初期化の一部の、外部EPR
OMに対するインターフェースとして使用される。より
詳細なことはピン指定を参照すること。EPROMはC
0 000HからDF FFFHまでのアドレスでマッピ
ングされたメモリである。 9.6 KS0119レジスタ説明 KS0119は04B0 0000と同一な基本アドレ
スCODEC_REQ0を有し、これは04BF FF
FFまで拡張される。 9.6.1 KS0119レジスタアドレスマップ KS0119レジスタアドレスマップ
【0119】
【表38】
【0120】9.6.2 フレームサイズレジスタ このレジスタは、図57の図示のとおり、CODECチ
ップに伝送されるフレームサイズを制御し、最小フレー
ムの長さは、3バイトである。 9.6.3 チップIDレジスタ このレジスタはCODECチップID値を貯蔵するが、
KS0119記入に対しては03H、KS0119読出
のためには83Hを貯蔵する。 9.6.4 制御/データレジスタ このレジスタは、次に伝送されるバイトが、レジスタイ
ンデックスまたはデータバイトであるという事実を、C
ODECチップKS0119に伝える。KS0119に
対し、08Hは次のバイトがインデックスであること
を、09Hは次のバイトがデータであることを表わす。 9.6.5 インデックス/データ0レジスタ このレジスタは、その以前のバイトに伝送された値によ
って、CODECチップ構成レジスタに対するインデッ
クス値または、データ0バイトを貯蔵する。プログラミ
ング参照部の通信プロトコルを参照すること。 9.6.6 データ1レジスタこのレジスタは、COD
ECレジスタIndex+1に記入されるデータを 貯蔵する。 9.6.7 データ2レジスタ このレジスタは、CODECレジスタIndex+2に
記入されるデータを貯蔵する。 9.6.8 データ3レジスタ このレジスタは、CODECレジスタIndex+3に
記入されるデータを貯蔵する。 9.6.9 KS0119ロジック制御レジスタ KS0119制御レジスタに対するビット指定は、図5
8の図示のとおりである。 9.6.10 HS及びVS極性 このレジスタは、水平同期と垂直同期信号の極性を定義
する。0値はアクチブローに定義される一方、1値はア
クチブハイに定義される。ビット指定は下記のとおりで
ある。 Bit<0>:VS極性 Bit<1>:HS極性 9.6.11 HSオフセット アクチブ信号は、このオフセット値以降に発生され、こ
のオフセット値は00Hに定義される。 9.6.12 VSオフセット アクチブ信号は、このオフセット値以降に発生され、こ
のオフセット値は00Hに定義される。 9.6.13 ステータスレジスタは図59の図示のと
おりである。 9.6.14 読出データシリアルインターフェースレ
ジスタ このレジスタは、読出フラグがビジー(busy)状態から準
備(ready)状態への遷移を表してから、シリアルポート
からの有効データを貯蔵する。 9.6.15 読出PROMデータレジスタ このレジスタはPROMフラグが準備状態の場合、有効
データを貯蔵する。 9.6.16 プログラミングレ参照 9.6.16.1 構成及び初期化 ビデオディスプレーハードウェアは、2種類のモードす
なわち、VGAオーバーレーモードとVGAエミュレー
ションモードに動作するように製作される。このモード
動作は、ロジック制御レジスタにあるビットを設定する
ことにより制御される。 MSSEL:VGAオーバーレーモードの場合0、VG
Aエミュレーションモードの場合1。 VGAオーバーレーモードでは、PCシステム上にVG
Aカードの存在が要求される。 −モニタケーブルは、MSPカードに連結される。 −支援されるVGA解像度は800×600までであ
る。 ディスプレーバッファは、VGAセッティングと同じサ
イズであることが要求される。
【0121】ソフトウェアによりVGAフレームバッフ
ァで、カラーキー四角領域が満たされるビデオウインド
ーを設定するために、ビデオデータはMSP SDRA
MでVGAフレームバッファにある四角領域と同一サイ
ズと位置の四角領域に記入されなければならない。図6
0を参照すること。KS0119チップはカラーキーを
認識し、VGA入力ポートをビデオ入力ポートに切り換
える。ソフトウェアによりDMAチャンネル0スタート
アドレスを、SDRAMビデオ出力バッファ上位の左側
に設定し、DMAレコードの長さは、VGAカードに設
定された解像度とビデオデータで使用された画素当りの
ビット(4:2:2=画素当り16ビット)によって設
定される。 9.6.16.2 KS0119に対するシリアルプロ
トコル3−ワイヤーイ ンターフ
ェース KS0119チップにある構成レジスタを設定する場
合、プロトコルは下記のとおりである。 −周辺チップに伝送されるためには、最少に2個のフレ
ームが必要である。 −第1番目のフレームは、構成レジスタのインデックス
を設定するためのものである。 −第2番目のフレームは、データ(レジスタの内容)の
読出または記入のためのものである。 ソフトウェアによりフレームサイズレジスタを適切な長
さで設定し、シリアルアクセスビットを1に設定する。
そうすると、フレームサイズレジスタを変更する前、フ
レームに必要なすべてのバイトをソフトウェアによりロ
ードし、CODECインターフェースロジックは、フレ
ームシリアル化が開始される前、すべてのバイトがロー
ドされる時まで待つ。第1番目に伝送されるフレーム
は、インデックスを設定するためのもので、フレームサ
イズは3である。図61を参照すること。
【0122】第2番目のフレームは、レジスタを設定す
るためのもので、フレームサイズは3である。各データ
バイトの以降、チップはインデックスを1ずつ自動に増
加させ、これは複数バイトのデータを4個データバイト
まで支援するCODECインターフェースロジックに伝
送することによって、連続的なレジスタを設定すること
を可能にする。読出または記入動作が遂行された場合、
ソフトウェアにより読出動作時に、有効データのための
ステータスレジスタの読出及び記入フラグをチェックす
るか、次のフレームを伝送する前、記入フラグ=準備(r
eady)であるかをチェックする。次の例は、KS011
9データシートを設定する段階を示している。2個のレ
ジスタが連続的なインデックスを有するので、この二バ
イトは単一フレームにロードされ得る。まず、インデッ
クスは下記のとおり設定されなければならない。 −83H値(フレームサイズ=3、シリアルアクセスビ
ット設定)を有するロードフレームサイズレジスタ(Ad
dress=04B0_0000H) −03値を有するロードIDレジスタ(Address=04B0_0
001H) −ロードデータ/制御バイト:KS0119に、次のバ
イトがインデックスであることを知らせる08H値(Ad
dress=04B0_0002H) −6H値を有するロードインデックスレジスタ(Addres
s=04B0_0003H) シリアルインターフェースは、フレームサイズレジスタ
にある内容の一致可否を検出しフレーム伝送を開始し、
ステータスレジスタにある記入フラグは、ビジー(busy)
状態に設定される。次のフレームを伝送する前、ソフト
ウェアによりステータスレジスタにあるフラグをチェッ
クする。フラグが準備状態であれば、ソフトウェアによ
り次のフレームのための値をロードすることができる。 9.7 KS0122レジスタ説明 KS0122は04C0 2000に該当する基本アド
レスを有し、これは0420 2FFFまで拡張され
る。 9.7.1 KS0122レジスタアドレスマップ
【0123】
【表39】
【0124】9.7.2 フレームサイズレジスタ このレジスタは、図62に定義されたように、CODE
Cチップに伝送されるフレームサイズを制御し、最小フ
レームの長さは3バイトである。 9.7.3 チップIDレジスタ このレジスタはCODECチップID値を貯蔵するが、
KS0122記入に対しては04H、KS0122読出
のためには84Hを貯蔵する。 9.7.4 制御/データレジスタ このレジスタは、次に伝送されるバイトが、レジスタイ
ンデックスまたはデータバイトであるとの事実をCOD
ECチップKS0122に伝える。KS0122に対
し、00Hは次のバイトがインデックスであることを、
01Hは次のバイトがデータであることを表わす。 9.7.5 インデックス/データ0レジスタ このレジスタは、その以前のバイトに伝送された値によ
って、CODECチップ構成レジスタに対するインデッ
クス値或いはデータ0バイトを貯蔵する。プログラミン
グ参照部の通信プロトコルを参照すること。 9.7.6 データ1レジスタ このレジスタは、CODECレジスタIndex+1に
記入されるデータを貯蔵する。 9.7.7 データ2レジスタ このレジスタは、CODECレジスタIndex+2に
記入されるデータを貯蔵する。 9.7.8 データ3レジスタ このレジスタは、CODECレジスタIndex+3に
記入されるデータを貯蔵する。
【0125】9.7.9 KS0122ロジック制御レ
ジスタ KS0122制御レジスタに対するビット指定は、下記
のとおりである。 bits<1:0> 00 4:2:2フォーマット 01 4:1:1フォーマット 10 CCIR656フォーマット 9.7.10 ステータスレジスタ ビット<0>:フィールドステータース 0:偶数フィールド 1:奇数フィールド ビット<1>:VSステータス 0:1から0までのVS 1:0から1までのVS 9.7.11 読出データシリアルインターフェースレ
ジスタ このレジスタは、読出フラグがビジー(busy)状態から準
備(ready)状態への遷移を表してから、シリアルポート
からの有効データを貯蔵する。 9.7.12 KS0122に対するシリアルプロトコ
ル3−ワイヤーインターフェース KS0122チップにある構成レジスタを設定する場
合、プロトコルは下記のとおりである。 −周辺チップに伝送されるためには、最少2個のフレー
ムが必要である。 −第1番目のフレームは、構成レジスタのインデックス
を設定するためのものである。 −第2番目のフレームは、データ(レジスタの内容)の
読出または記入のためのものである。
【0126】ソフトウェアによりフレームサイズレジス
タを適切な長さに設定し、シリアルアクセスビットを1
に設定する。そうすると、フレームサイズレジスタを変
更する前、フレームに必要なすべてのバイトをソフトウ
ェアによりロードし、CODECインターフェースロジ
ックは、フレームシリアル化が開始される前、すべての
バイトがロードされる時まで待つ。第1番目に伝送され
るフレームはインデックスを設定するためのもので、フ
レームサイズは3である。図63を参照すること。第2
番目のフレームはレジスタを設定するためのもので、フ
レームサイズは3である。各データバイトの後、チップ
はインデックスを1ずつ自動に増加させ、これは複数バ
イトのデータを4個データバイトまで支援するCODE
Cインターフェースロジックに伝送することによって、
連続的なレジスタを設定することが可能にする。読出ま
たは記入動作が遂行された場合、ソフトウェアにより読
出動作時に、有効データのためのステータスレジスタの
読出及び記入フラグをチェックするか、次のフレームを
伝送する前、記入フラグ=準備(ready)であるかをチェ
ックする。次の例は、KS0122データシートを設定
する段階を示している。クロマキーバイト0とバイト1
に対する値を設定するために、このレジスタのためのイ
ンデックスは、バイト0に対し6AH、バイト1に対し
6BHである。KS0122データシートを参照するこ
と。2個のレジスタが連続的なインデックスを有するの
で、この二バイトは単一フレームにロードされ得る。ま
ず、インデックスは下記のとおり設定されなければなら
ない。
【0127】−83H値(フレームサイズ=3、シリア
ルアクセスビット設定)を有するロードフレームサイズ
レジスタ(Address=04B0_0000H) −03値を有するロードIDレジスタ(Address=04B0_0
001H) −ロードデータ/制御バイト:KS0122に、次のバ
イトがインデックスであることを知らせる08H値(Ad
dress=04B0_0002H) −6H値を有するロードインデックスレジスタ(Addres
s=04B0_0003H) シリアルインターフェースは、フレームサイズレジスタ
にある内容の一致可否を検出してフレーム伝送を開始
し、ステータスレジスタにある記入フラグはビジー(bus
y)状態に設定される。次のフレームを伝送する前、ソフ
トウェアによりステータスレジスタにあるフラグをチェ
ックする。フラグが準備状態であれば、ソフトウェアに
より次のフレームのための値をロードすることができ
る。
【0128】第 10 章 ビットストリーム処理器 10.1 本章は、ビデオデータ圧縮及び伸長応用のための主要M
SP処理エンジン中の1つのビットストリーム処理器
(BP)を設計するための、機能的な要求条件を説明す
る。 10.2 略語 A/V オーディオ及びビデオ BP ビットストリーム処理器(MSPブロック) CCU キャッシュ制御ユニット(MSPブロック) CIF 29.97Hzで352×288の輝度サンプル解像度を有す る、共通中間フォーマット DCT 離散余弦変換 DMA 直接メモリアクセス DSM デジタル貯蔵メディア FBUS 速いバス(MSP内部データバス) GOB ブロックグループ GSTN 一般スイッチテレフォンネットワーク(既に公知されたPST N) HDD ハードディスクドライバー I/F インターフェース IOBUS 入出力バス(MSP内部周辺バス) ITU−T−601 29.97Hzで720×480
と、25Hzで720×576のそれぞれのサンプル解
像度を有する、カラーテレビジョン信号のデジタルコー
ディング用のテーブル基準(以前はCCIR601とも
呼ばれる)。しかし、ディスプレー解像度は、720×
480または704×480である場合もある。 LSB 最少ビット LUT ルックアップテーブル MPEG モーション映像専門家(expert)グループ MSB 最大有意ビット MSP 三星マルチメディア信号処理器 QCIF 29.97Hzで176×144の輝度を
有するQuarter_CIF RLC RUN_長さ及びレベルコード SDRAM 同期ダイナミックランダムアクセスメモリ SIF NTSC用29.97Hzで352×24
0及び、PAL用の25Hzで352×288の輝度解
像度を有する、MPEGー1ビデオテーブル基準用の情
報入力及びフォーマット TSD 定義される VLC 可変長さコード VP ベクトルプロセッサ(MSPブロック) 10.3 主要特徴 MPEG−1、MPEG−2、H.261及びH.26
3のエンコーディング及びデコーティング応用とスライ
ス(またはGOB)層をなして解釈する構文を支援す
る。 *実時間でRLC処理を遂行 *MPEG−1、MPEG−2、H.261及びH.2
63ビデオ標準にあるすべてのハフマンテーブルを用い
て実時間でハフマンコード処理を遂行。 *2個の順方向/逆方向ジグザグスキャン変換方式を支
援。 *731.4Mbits/sec(32-bit@40MHz)の最
大伝送レートでインターフェースするIOBUS *最大動作クロック周波数は40MHz *ハフマンコーデックルック−アップテーブルのための
9.2Kbit ROMを含む。 *320byte内部SDRAMを含む。 *先占(pre-emptive)及び協力文脈スイッチングモード
を支援 *制御経路のための目的ゲート計算は、6Kgates
+RAM及びROM
【0129】10.4 概要 ビットストリーム処理器(BP)は、4個のMSP内部
周辺装置の中の1つである。これは、ビデオ圧縮及び復
元状態の数ビットストリームを支援するために、ハード
ウェア組織ブロックである。このような装置は特に、M
SP内部のVP及びARM7がこのようなビットの操作
に効率的なアーキテクチャーを有していないので、ビッ
ト_レベル処理のために設計された。このようなBP
は、731.4Mbits/secの最大伝送速度を有
するIOBUSと呼ばれる32ビットバスを通してデー
タを送受信する。そしてBPは、独立的な処理装置とし
て動作し、ARM7またはVPのソフトウェアにより制
御される。その上、特にBPはスライスまたはGOB及
び、その以下に含まれているすべての情報をエンコーデ
ィング及びデコーディングし、そしてCCUから/にデ
ータを送受信する。前記のBPはまた、順方向及び逆方
向ジグザグ変換を遂行し、差動DC係数をエンコーディ
ング及びデコーディングする。さらに、このようなBP
はデコーディングで差動モーションベクトルを使用して
モーションベクトルを復元し、2個の特殊なモードすな
わち、MPEG−2エンコーディングでデュアル_プラ
イムモードと、H.263エンコーディング及びデコー
ディングで予測モードを除いて、エンコーディングでは
その反対の動作を遂行する。もし、BPが単純なモード
で動作すると仮定すると、BPは一応スライスまたはG
OBを処理しつつ始め、BPはスライスまたはGOB処
理が完了されてからインタラプトされる。このような動
作は、全二重モードがスライスまたはGOBをインタリ
ーブによりエンコーディング及びデコーディングするこ
とにより遂行される。もし、ARM7がBPを他の作業
に瞬間的にスイッチングさせることを願うと、BPは現
在のスライスまたはGOBが完了される前、BP過程を
完了する先占文脈切換モードを支持するようになる。
【0130】図3はBPのブロックダイアグラムを示し
たものである。図3の図示のとおり、BPは5個のブロ
ックIOBUSインターフェース装置、VLC FIF
O装置、VLC LUT ROM、制御状態マシン及びB
Pコア装置とを含む。入出力データは、16×32ビッ
トラムを含む、IOBUSインターフェース装置により
動作される。これはすべてのデータ移動及びインタラプ
ト要求を支援する。VLC FIFO装置は、データ復
号化動作のために、次のデータワードを準備し、そして
データ符号化動作のために、出力データパッキングを遂
行する。VLCルックアップテーブルロムは、すべての
ハフマンコードの処理のために、すべての必要な情報を
貯蔵する768×12bitのサイズを有する。制御状
態マシンを設計する時、すべてのエンコーディング及び
デコーディングを制御する。BPコア装置は加算器、比
較器、バレルシフター、レジスタファイル及び、128
×16ビットのRAMを含む小さいプロセッサである。
ビット操作は、前記のコアに有用である。
【0131】10.5 信号定義 BP外部インターフェースに要求される信号は、表45
に示している 。文字“1”の最後にある信号は、ア
クチブ_ローを示す。テーブル1の“方向”コラムで
“B”、“I”“O”は両方向信号であって、入力信号
及び出力信号とをそれぞれ意味する。
【0132】BP信号定義
【表40】
【0133】10.6 エンコーディング/出コーティ
ング用のデータ流れ図 ここで例えば、代表的なビデオエンコーディング及びデ
コーディング応用のデータ流れを含む。ここでは、オー
ディオデータの流れについては詳細に記述しない。 10.6.1 エンコーディングの場合 段階E1:ロー(RAWA/Vデータ入力) 普通の入力ビデオ及びオーディオ信号がサンプリングさ
れ、外部コーデックによりデジタル化され、そして使用
者ASICに供給される。しかし、マルチメディアPC
環境で、あるVGA制御ボードはまたフレーム捕獲子(g
rabber)とサウンドキャップチャを含む。従って、ロー
(RAW)A/Vデータは、使用者ASICまたはPCIバ
スインターフェースの中のいずれか1つから伝達され
る。カストマASICまたはPCIバスは、32BYT
ESの小さいバッファを含む。このバッファにあるデー
タはDAM操作を利用したFBUSを通して、外部SD
RAMに伝達される。このようなデータ移動は、電源が
リセットされてからARM7により初期化される。 段階E2: VPによるプリフィルタリング まず、VPはVPデータ開始(一般的にスクラッチパッ
ド領域)のSDRAMに貯蔵されたイメージデータをフ
ェッチする。そして、VPはこのような画素を一時的に
フィルタリングしてから空間をスケーリングする。プリ
フィルタリングしてから、映像の解像度は正常的にIT
U_T_601サイズからCIFまたはQCIFサイズ
に変換される。このVPは、外部SDRAMに対するプ
リフィルターされた結果を記録する。
【0134】段階E3: VPによるデータ圧縮 VPは、これに対応する標準に提示された法則によって
圧縮が遂行されるように、さらにVPデータキャッシュ
の中にSDRAMのプリフィルターされたデータをフェ
ッチする。正常的にVPは、順方向DCT/順方向適応
量子化、モーション予測、マクロブロックタイプ決定な
どを遂行する。このような過程を遂行してから、VPは
更にVPデータキャッシュへ適当なヘッド情報を有する
結果を記録しなければならない。実際的に、このVPデ
ータキャッシュ領域は、BP入力バッファとして利用さ
れる。バッファの状態を検査するために、フラグ信号が
利用される。 段階E4: ARM7によるBP初期化 実際的にBPが動作される前、ARM7はBPの初期レ
ジスタを初期化しなければならない。このような初期化
は、パワーオンリセット信号が印加されてから、128
サイクルの間には遂行されない。特にARM7は、入出
力バッファアドレス及びBP命令レジスタを初期化させ
なければならないし、スライスまたはGOB内で符号化
されたマクロブロック数を指定しなければならない。こ
のようなレジスタを初期化してから、ARM7はBP過
程を遂行するようにBPイネーブルフラグをセットしな
ければならない。 段階E5:BPによりビットストリーム過程 もし、入力2個のバッファの中のいずれか1個がフール
(full)の場合、BPはIOE JSを通してデータを読
み込み始める。すなわちBPは、バッファがフールの場
合のみデータが読み込める。そして、BPはジグザグフ
ォーマットで8×8ブロックデータを変換させる。そし
て、その結果は直接にRLC及びハフマン符号化され
る。このようなハフマン符号化された結果は、ARM7
データキャッシュまたはSDRAM中の中のいずれか1
つに伝送され得る。BPは、前記のバッファがオーバー
フローされないように空いている場合のみ、出力バッフ
ァに書き込むべきである。この過程の最後の例を挙げれ
ば、処理されたマクロブロック数がARM7により指定
されたマクロブロック数と同一な場合、BPは最後のデ
ータのバイト及び位置でARM7とインタラプトするよ
うになり、現在スライスまたはGOB過程を終了する。
【0135】段階E6: ARM7によりビットストリ
ーム形成とA/Vマルチプレキシング ARM7はハフマン符号化されたデータ及び構文パラメ
ータを結合し、最後のビットストリームを作り、その過
程を反復する。そしてARM7はまた、スライスまたは
GOBマルチプレクスオーディオ及びビデオビットスト
リームの上部層と操作することができる。この結果は、
ARM7によりSDRAMに書かれる。 段階E7: VPによるネットワークインターフェース
(ビデオ会議用選択) ビデオ電話またはビデオ画像
会議の応用のために、前記の段階6まではVPがH.3
24GSTNビデオ電話用のV.34モデムまたは、
H.320ISDNビデオ会議端末用の1400系列の
インターフェースのようなネットワークインターフェー
スがその機能を遂行してきた。 段階E8: 最後のビットストリーム出力 SDRAMに貯蔵された最後のビットストリームは、カ
ストマASICまたはPCIの中のいずれか一つに伝送
される。正常的に使用者ASICブロックはネットワー
クインターフェースに使用され、そしてPCIバスイン
ターフェースは、記録装置(例えば、HDD)データ貯
蔵のために利用される。このデータが移動する時には、
ARM7により初期化されたDMAデータ伝送を利用す
る。
【0136】10.6.2 デコーディングの場合 段階D1: ビットストリームフェッチ マルチメディア環境で圧縮されたビットストリームは、
CD−ROMドライバー、HDD及びネットワークイン
ターフェースの中のいずれか一つから供給される。従っ
て、このビットストリームは、カストマASICまたは
PCIバスの中のいずれか1つとなる。カストマASI
CまたはPCIバスの32byteに貯蔵されたデータ
は、DMAを利用したSDRAMに伝送される。 段階D2:VPによるネットワークインターフェース
(ビデオ会議用選択) ビデオ会議において、データはまず、VPによりV.3
4または1400系列のネットワークインターフェース
ルーチンが遂行される。VPはSDRAMに対する結果
を書き込む。 段階D3: ARM7によりA/Vディマルチプレキシ
ング及びヘッダ分析 ARM7はSDRAM内のデータをARM7データキャ
ッシュに移動させ、A/Vビットストリームディマルチ
プレキシングを遂行する。ビデオビットストリームのた
めにARM7はまた、すべてのスタートコードを検索
し、そしてスライスGOBが検出するまでヘッダを分析
する。ARM7は復号化されたビットストリーム構文パ
ラメータを、ARM7によりSDRMの特別領域に貯蔵
させる。ディマルチプレキシングされたオーディオ及び
ビデオビットストリームは、SDRAMにあるレートバ
ッファにそれぞれ伝送される。各動作のために、レート
バッファのサイズを異にしてもよい。例えば、ビデオ速
度バッファサイズのために、MPEG−1は370Kb
itsに、MPEG−2は1.835Mbitsに勧告
する。
【0137】段階D4: ARM7によるBP初期化 この段階の遂行は、ただ符号化されたマクロブロック数
に対してレジスタの初期化を要求しないことを除いて
は、以前のサブセクションの段階E4と同様である。す
なわち、初期化はパワーオンリセット信号が印加されて
から、128サイクルの間に遂行されてはいけない。 段階D5: BPによるビットストリーム過程 特別なスライスまたはGOBのためにBPを初期化させ
てから、復元されたデータは2個のバッファに伝送す
る。BPはフールフラグの状態を検査するIOBUSを
通してデータを読み込む。BPはもし、入力データがヘ
ッドワードを含んでいると、構文パラメータを分析す
る。もし、BPが続く次のビットをハフマンコードで認
識すると、各ハフマンコード用の最上4サイクル以内に
ハフマンデコーディングを遂行する。もし、ハフマンデ
コードがDCT AC係数であれば、ハフマンデコード
された結果が、64画素成分を表わすデコードされたR
LCとなる。再現画素はこれとは反対に、ジグザグに変
換され、そして最後にVPが順方向量子化を遂行するよ
うに、2個の出力バッファに伝送される。BPはスライ
スまたはGOBでない初期コードを検出してから、この
ような過程を遂行し続ける。もし、これが検出されなけ
れば、BPは最後に使用されたデータに対して、バイト
及びビットの位置情報を有するARM7とインタラプト
させる。そうすると、ARM7は次のスライスまたはG
OBスタートコードを検索し、このような過程を繰り返
す。
【0138】段階D6: VPのデータ復元 段階D5の結果を使用し、VPは逆量子化、逆DCT及
びモーションベクトルを利用した映像再現を遂行する。
符号化過程を完了してから、VPはSDRAMの中にそ
の結果を貯蔵する。 段階D7: VPの以降の過程 ビデオ及びオーディオデータが、デジタル/アナログ変
換器に伝送される前、画素はVPが好ましい出力解像度
及びイメージを得るように、前記の過程を遂行する。こ
のような結果はまた、SDRAMに貯蔵される。 段階D8: ロー(RAW)A/Vデータ出力 最後に、SDRAM内部の再現オーディオ及びビデオデ
ータは、DMAを利用して出力される。さらに、このよ
うなデータ移動はARM7により初期化される。現在の
ビデオオーバーレー技術は、PCIバスがビデオソース
にデータを伝送できるようにし、最後にデータはカスト
マASICまたはPCIバスの中のいずれか1つに伝送
される。
【0139】10.7 プログラミングモデル 10.7.1 BPベース装置アドレス BPは次の32ビット基本装置アドレスを有している。 <MSP_BASE><BP_BASE><Address_Offset>ここで、<MSP_BA
SE>はMSPベースPCI装置アドレスにより規定され
た5ビットであり、<BP_BASE>は7'b 1111100に等しい7
ビットであり、<Address_Offset>はBP内部レジスタに
割当てられた20ビットである。従って、全体MSP
I/O装置アドレスマップで、BPに割当てられたアド
レス範囲は、27'h 7C0_0000から27'h 7CF_FFFFまでであ
る。 10.7.2 内部レジスタ説明 内部レジスタセットは、表に示しており、表のすべての
レジスタは、ARM7またはVPにより書かれるか読ま
れることができる。
【0140】BP内部レジスタ
【表41】
【0141】*BP−MODE[31:0](読出専
用、省略時の値なし)−このレジスタはビデオ標準タイ
プと多様な画像レベル情報を定義し、詳細なことはサブ
セクション10.8.1で示している。 *BP_CONTROL[31:0](読み取り書き込
み、省略時の値は“32 'h 0000_0000”)−このレジス
タは、BP動作のために多様な制御パラメータを含む。
ARM7またはVPは、このレジスタにある各フラグを
セットし、あるフラグはBPによりセットされる。ビッ
ト仕様はサブセクション10.8.2で示している。 *IBUF0_START[31:0](読み取り書き
込み、省略時の値なし)−このレジスタは、BP入力両
方向バッファの入力バッファ0となるように、初期アド
レスをARM7により定義し初期化する。IBUF0_
START用の初期化値は常にIBUF0_ENDより
小さく、IBUF0_START[3:0]は4'b0000
と同一である。 *IBUF0_END[31:0](読出専用、省略時
の値なし)−このレジスタはBP入力両方向バッファの
入力バッファ0で最後のアドレスを定義しており、この
内容はセクション10.11に記述されている。 *IBUF1_START[31:0](読み取り書き
込み、省略時の値なし)−このレジスタはBP入力ダブ
ルバッファの入力バッファが1となるように、ARM7
のスタートアドレスを初期化させる。IBUF1_ST
ARTの初期化値は常にIBUF1_ENDより小さ
く、IBUF1_START[3:0]は4'b0000と同
一になる。この内容はセクション10.11に記述され
ている。 *IBUF1_END[31:0](読出専用、省略時
の値なし)−このレジスタはBP入力ダブルバッファの
入力バッファ1が1となるように、最後のアドレスを定
義する。この内容はセクション10.11に記述されて
いる。 *OBUF0_START[31:0](読み取り書き
込み、省略時の値なし)−このレジスタはBP出力ダブ
ルバッファの出力バッファが0となるように、ARM7
のスタートアドレスを初期化させる。OBUF0_ST
ARTの初期化値は、OBUF0_ENDより常に小さ
く、OBUF0_START[3:0]は4'b0000と同
一である。この内容はセクション10.11に記述され
ている。 *OBUF0_END[31:0](読出
専用、省略時の値なし)−このレジスタはBP出力ダブ
ルバッファの出力バッファが0となるように、最後のア
ドレスを定義する。この内容なセクション10.11に
記述されている。 *OBUF1_START[31:0](読み取り書き
込み、省略時の値なし)−このレジスタはARM7によ
りBP出力ダブルバッファの出力バッファが1となるよ
うに、ARM7のスタートアドレスを初期化する。OB
UF1_STARTの初期化値は、OBUF1_END
より常に小さく、OBUF1_START[3:0]は
4'b0000と同一である。この内容はセクション10.1
1に記述されている。 *OBUF1_END[31:0](読出専用、省略時
の値なし)−このレジスタはBP出力ダブルバッファの
出力バッファが1となるように、最後のアドレスを定義
する。この内容はセクション10.11に記述されてい
る。 *SAVE_ADR[31:0](読出専用、省略時の
値なし)−このレジスタは先占文脈切換モードが要求さ
れる場合、BP内部文脈を貯蔵するように、SDRAM
の初期アドレスに定義する。関連資料はサブセクション
10.12.1を参照する。
【0142】*VALID_BYTE_ADR[31:
0](読み取り書き込み、省略時の値なし)−このレジ
スタはデコーディングで入力ダブルバッファまたは、エ
ンコーディングで出力ダブルバッファの最後の有効デー
タバイト位置を表わす。このレジスタの目的は、ARM
7及びBPの間でハンドシェーキングするためのもので
ある。一般に、有効バイトデータの有効ビット位置のた
めに追加的な情報が要求されるが、これはBP_CON
TROL[31:0]レジスタ内に含まれている。詳細
な内容はセクション10.13にある。 *BP_STATUS[31:0](読み取り書き込
み、省略時の値は“32'h 0000_0000”)−このレジスタ
は、BPの多様な内部状態を表わす。最下2バイト(例
えば、BP_STATUS[15:0])のすべてのビ
ット位置は、ARM7_IRQを“1”にセットするこ
とができるインタラプト条件である。このレジスタは2
つの方法で接近することができる。ARM7またはVP
アドレス27'h7C0_0050を使用する全32−ビットレジス
タを読取または書込可能である。しかし、一般的にAR
M7及びVPは、ビット単位でBP_STATUSレジ
スタの内容を書込(またはリセット)することが好まし
い。BPはまた、BP_STATUSの各ビット当り2
7'h7C0_0030から27'h7C0_004Fまでの範囲のアドレスを
割当てることによって、この特徴的な内容を支援する。
このようなビット内容は、サブセクション10.8.3
に記述されている。 *BP_INT_MASK[15:0](読出専用、省
略時の値は“16hFFFF”)−このレジスタの各ビット
は、前記のBP_STATUS[15:0]によるイン
タラプト条件に対応し、BP_STATUS[15:
0]の内部でコーディングされる前の条件を有する論理
的な値(and-ed)である。もし1つのマスクビットが
“0”にセットされると、対応インタラプト条件は、無
条件的に“0”(例えば、ディスエーブルされる)にセ
ットする。このようなインタラプトに対する詳細な内容
は、セクション10.9に記述されている。 *V_MB_SIZE[7:0](読出専用、省略時の
値なし)−このレジスタは符号化または復号化される画
像の垂直サイズを表わす。ここで、この値はマクロブロ
ック数を意味する。例えば、もし垂直サイズが288画
素であれば、V_MB_SIZE[7:0]=288/
16=18となる。ARM7はBPエンコーディング及
びデコーディング動作をスタートする前に常に設定しな
ければならない。
【0143】*H_MB_SIZE[7:0](読出専
用、省略時の値なし)−このレジスタは符号化または復
号化される画像の水平サイズを表わす。ここで、この値
はマクロブロック数を意味する。例えば、もし垂直サイ
ズが352画素であれば、H_MB_SIZE[7:
0]=352/16=22となる。ARM7はBPエン
コーディング及びデコーディング動作をスタートする前
に常に設定しなければならない。 *ARM7_IRQ[0](読出専用、省略時の値は
“0”)−このレジスタは、ARM7にインタラプトを
要求するための1ビットフラグであり、ARM7_IR
Q出力ポートに直接連結されている。もしBP_STA
TUS[15:0]の任意ビットが“1”にセットされ
ると、このフラグはセットされる。そしてARM7はこ
のフラグをリセットさせる。 10.8 BP I/Oデータワードフォーマット このセクションでは、BP入出力用命令語データ及びマ
クロブロックデータワードフォーマットを含む。 10.8.1 BP_MODEレジスタフォーマット 27'h7C0_0000アドレスの32ビットBP_MODEレジ
スタは、テーブル25に与えられた下記のフォーマット
を有している。すなわち、BP_MODE[31]=P
ARAM_SET2[7]とBP_MODE[0]=S
F[0]とを表わす。
【0144】
【表42】
【0145】*standard_format[S
F]−使用されるビデオ標準は、テーブル26に定義さ
れている。前記のSFは、常にBPがすべてのビデオエ
ンコーディング及びデコーディング応用にイネーブルさ
れる前に、ARM7により定義されなければならない。
【0146】
【表43】
【0147】*picture_type(PT)−映
像コーディングタイプは、テーブル27に定義されてい
る。PT用値00は、MPEG−1、MPEG−2及び
H.263応用のための特殊な場合である。特にD_映
像は、たとえMPEG−2に使用されなくても、MPE
G−2用の映像タイプに割当てられる。その理由は、M
PEG−1ビットストリームがMPEG−2ビットスト
リームのサブセットからである。
【0148】
【表44】
【0149】*picture_structure
(PS)−映像構造情報は、表43に定義されている。
更に、PS用値00は非論理的であるのでエラーを招来
する。
【0150】
【表45】
【0151】*parameter_set0、1及び
2(PARAM_SET0、PARAM_SET1、PARAM_SET2)−このよう
な3バイトは、MPEG−1、MPEG−2及びH.2
63に使用される多様なパラメータで定義される。各パ
ラメータセット用定義は、表に記述されている。
【0152】
【表46】
【0153】*intra_dc_precision
(IDP)-MPEG−2に定義された2ビットイント
ラーdc 精度パラメータは、MPEG−1応用で00
にセットされなければならない。 *top_field_first(TFF)−モーシ
ョンベクトルエンコーディング及びデコーディングに使
用されるMPEG−2用フラグである。 *frame_pred_frame_dct(FPF
D)−MPEG−2用フラグは、フレーム_DCT及び
フレーム予測が使用されることを表わす。 *cancealment_motion_vecto
rs(CMV)またはadvanced_predic
tion_mode(AP)−MPEG−2で、このフ
ラグはモーションベクトルが映像間のマクロブロックで
使用されることを表わす。H.263で、このフラグは
もし、改良予測モードがONであれば、1にセットされ
る。そうでない場合は0にセットされる。次の標準のた
めにこのフラグは0にセットされなければならない。 *intra_vlc_format(IVF)−MP
EG−2用フラグは、映像間のマクロブロックのための
VLCテーブル形態を決定する。 *alternate−scan(AS)−MPEG−
2用フラグは、符号化及び復号化される係数の順序を決
定する。 *vertical_size_flag(VSF)ま
たはcontinuous_presence_mul
tipoint(CPM)−MPEG−1及びMPEG
−2で、このフラグの映像の垂直サイズが、2800ラ
インを超過する場合は1にセットされ、そうでなければ
0にセットされなければならない。H.263で、この
フラグは、連続的に現在のマルチポイントモードが使用
されると1にセットされ、そうでなければ0にセットさ
れる。
【0154】
【表47】
【0155】10.8.2 BP_CONTROLレジ
スタフォーマット BP_CONTROL[31:0]レジスタ(アドレス
27'h7C0_0004)のためのビット仕様は、表47で示して
いる。
【0156】BP_CONTROLレジスタフォーマッ
【表48】
【0157】*BP_enable(BP_EN)−こ
のフラグがARM7またはVPにより1にセットされる
場合、BPはプロセッシングを遂行する。従って、すべ
ての他のレジスタ構造は、このフラグがセットされる前
に完了される。もしBPがプロセッシングを終えると、
このフラグはBPによりクリアーされる。 *software_reset(SOFT_RESE
T)−フラグがARM7またはVPによりセットされる
時、BPは現在の処理を中断し、省略時の状態ですべて
の初期レジスタにリターンし、アイドル状態となる。A
RAM7はBP_ENフラグをセッティングし、BP過
程をさらに始め得る。BPハードウェアリセット信号は
アクチブローである。 *pause(PAUSE)−フラグがARM7または
VPにより1にセットされる時、BPは現在の処理動作
を中止する。使用者はBP_ENフラグを設定すること
によって、中止動作が実行される。 *detect_start_code(DETECT
_START_CODE)−フラグがARM7またはV
Pにより1にセットされる時、BPはIBUF0にある
データの中から次のスタートコードを探す。従って、使
用者がIBUF0_START及びIBUF0_END
のための好ましいアドレスをセットしなければならな
い。このような命令語は、もしBPがアイドル状態であ
れば、適切に動作する。従って、ARM7はもしBPが
アイドルでない場合、この命令を外部に送る前、ソフト
ウェアリセット命令を優先的にBPに送るべきである。 *step(STEP)−このフラグがARM7または
VPにより1にセットされると、BPは現在動作過程の
一状態を遂行する。これはデバッギングすることに非常
に必要な特徴である。ARM7はこの段階動作がイネー
ブルするように中止命令を優先的に送るべきである。 *context_switching_mode(C
TX_MODE)−フラグが“1”にCTX_SWIT
CHをセッティングし、ARM7またはVPにより
“1”にセットされる時、BPは先占スイッチングモー
ドを遂行する。もし、これはCTX_SWITCHが
“1”にセッティングされることによって“0”にセッ
トされると、BPは協力文脈スイッチングモードを遂行
する。“1”にCTX_SWITCHをセッティングせ
ず、CTX_MODEをセッティングすることはBP処
理に影響を及ぼさない。文脈切換の詳細な内容はセクシ
ョン10.12を参照する。 *context_reload_request(C
TX_RELOAD)−フラグがARM7またはVPに
より“1”にセットする時、BPは既にSDRAMに貯
蔵された文脈を更にロードする。そうすると、BPはア
ドレスSAVE_ADR[31:0]から貯蔵された文
脈を読み込む。文脈切換に対する詳細な内容はセクショ
ン10.12を参照。 *error_handle_mode(ERR_HA
NDLE_MODE)−このフラグは、伝送された圧縮
ビットストリームでエラーが発生した時、BPのエラー
復旧過程を遂行することに利用される。入力ビットスト
リームが無効データである場合、BPはARM7をイン
タラプトさせ、このフラグの内容をチェックする。この
フラグが“1”にセットされる時、BPは自動的に次の
スタートコードを探す。もし、スタートコードがスライ
スまたはGOBであれば、BPはこの過程を更に遂行す
る。このフラグは“0”にセットされる時、BPは次の
スタートコードを探せず、アイドル状態で動作する。B
PとARM7と間のハンドシェーキングはセクション1
0.13に記述されている。 *number_of_macroblocks_to
_be_encoded(NO_MBS[15:0])
−このレジスタは、スライスまたはGOBで符号化され
たマクロブロックの数を表わす16ビットを含む。この
ような65535までのビット分解能を使用し、マクロ
ブロックはスラスまたはGOBでエンコーディングされ
る。ここにおいて、“0”値はマクロブロック数として
許容されない。 10.8.3 BP_STATUSレジスタフォーマッ
BP_STATUS[31:0](アドレス27'h 7C0_0
050)は表54に示されている。
【0158】BP_STATUSレジスタフォーマット
【表49】
【0159】*input_buffer_0_don
e(IBUF0_DONE)−このフラグは入力バッフ
ァ0にあるデータが、前記のBPにより全部使用され
る。このフラグはBPによりセットされ、ARM7また
はVPによりクリアーされる。このようなフラグはイン
タラプト状態を表わす。 *input_buffer_1_done(IBUF
1_DONE)−このフラグは入力バッファ1にあるデ
ータが、前記のBPにより全部使用されたことを表わ
す。このフラグはBPによりセットされ、ARM7また
はVPによりクリアーされる。このようなフラグはイン
タラプト状態を表わす。 *output_buffer_0_full(OBU
F0_FULL)−このフラグはBPにより出力バッフ
ァ0が満たされることを表わす。前記のフラグはBPに
よりセットされ、そしてARM7またはVPによりクリ
アーされる。このようなフラグはインタラプト状態を表
わす。 *output_buffer_1_full(OBU
F1_FULL)−このフラグは、BPにより出力バッ
ファ1が満たされることを表わす。前記のフラグはBP
によりセットされ、そしてARM7またはVPによりク
リアーされる。このようなフラグはインタラプト状態を
表わす。 *BP_processing_done(BP_DO
NE)−このフラグは、前記のBPがスライスまたはG
OBをエンコーディングするかまたはデコーディングす
る時、スライスまたはGOBでないスタートモードを検
出したことを表わす。このフラグはBPによりセットさ
れ、そしてARM7またはVPによりクリアーされる。
このようなフラグはインタラプト状態を表わす。 *context_switching_done(C
TX_SW_DONE)−このフラグは、BPが文脈ス
イッチングモードから他の作業に転換されるように準備
されていることを表わす。このフラグはBPによりセッ
トされ、そしてARM7またはVPによりクリアーされ
る。このようなフラグはインタラプト状態を表わす。 *context_reload_done(CTX_
RELOAD_DONE)−このフラグは、BPがアド
レスSAVE_ADR[31:0]から貯蔵された文脈
のために再ロード動作が完了されたことを表わす。この
フラグはBPによりセットされ、そしてARM7または
VPによりクリアーされる。このようなフラグはインタ
ラプト状態を表わす。
【0160】*BP_error_flg(BP_ER
R)−このフラグは、エラーがデータを処理する間にB
Pで発生されることを表わす。このフラグはBP_ER
R_CODE[7:0](BP_STATUS[31:
24]がゼロでない場合にセットされる。詳細な内容は
サブセット10.9.2に記述されている。 *input_buffer_0_full(IBUF
0_FULL)−このフラグは、入力バッファ0にある
データが、ARM7またはVPにより満たされることを
表わす。このフラグはARM7またはVPによりセット
され、BPによりクリアーされる。 *input_buffer_1_full(IBUF
1_FULL)−このフラグは、入力バッファ1にある
データが、ARM7またはVPにより満たされることを
表わす。このフラグはARM7またはVPによりセット
され、BPによりクリアーされる。 *output_buffer_0_done(OBU
F0_DONE)−このフラグは、入力バッファ0にあ
るデータが、ARM7またはVPにより全部使用された
ことを表わす。このフラグはARM7またはVPにより
セットされ、BPによりクリアーされる。 *output_buffer_1_done(OBU
F1_DONE)−このフラグは、入力バッファ1にあ
るデータが、ARM7またはVPにより全部使用された
ことを表わす。このフラグはARM7またはVPにより
セットされ、BPによりクリアーされる。 *valid_bit_position(VALID
_BIT_POS[2:0])−次の過程のために、V
ALID_BYTE_ADR[31:0]に貯蔵されて
いる3ビット情報は、データバイトの中の有効なビット
位置を表わす。ビデオエンコーディングで、BPは値を
設定すべきであり、ARM7はこのビット位置から次の
過程を遂行しなければならない。ビデオデコーディング
で、ARM7は値を設定すべきであり、BPはこのよう
なビット位置からプロセッシングを遂行しなければなら
ない。 *BP_error_code(BP_ERR_COD
E[7:0])−8ビット情報は、BPからどのような
エラーが発生したかを表わす。ゼロ値は、何等のエラー
も発生しなかったことを表わす。詳細な内容はサブセク
ション10.9.2で記述している。
【0161】10.8.4 デコーディングするための
入力データフォーマットとエンコーディングするための
出力データフォーマット このような場合、データは実質的に圧縮されたビットス
トリームからなっている。このようなデータは初期コー
ド、ヘッダーパラメータ及び、これに対応される標準に
よって圧縮されたデータを含まなければならない。この
ようなビットストリームはバイト単位別にパケットされ
るが、しかし、或る動作ではバイトを割当てる必要がな
い。このようなビットストリームは多様なスライスまた
はGOBのためのデータを含む。 10.8.5 エンコーディングするための入力データ
フォーマットとデコーディングのための出力データフォ
ーマット このような場合、データは実質的にマクロブロックヘッ
ダ情報、モーションデータ及び画素係数データからなっ
ている。このような種類のデータ用フォーマットは、次
のように定義される。 10.8.5.1 マクロブロックヘッダワード マクロブロックヘッダは常に6バイトからなっており、
テーブル33に与えられた下記のデータフォーマットを
有している。
【0162】マクロブロックヘッドワードフォーマット
【表50】
【0163】ここにおいて、前記のテーブルに示したパ
ラメータは下記に定義される。 *vertical_macroblock_addr
ess(VMA)またはgroup_number(G
RNO)−このようなバイトは、1から255までの値
を有する垂直マクロブロックの位置を表わす。第1垂直
位置は、0でなく1に記載されている。例外的な場合、
H.261エンコーディング時、このようなフィールド
はブロックグループの位置を表わすgroup_num
ber情報を表わす。 *horizontal_macroblock_ad
dress(HMA)またはmacroblock_p
osition(MBPS)−このようなフィールド
は、1から255までの値を有する水平マクロブロック
の位置を表わす。第1水平位置は、0でない1に記載さ
れている。例外的な場合、H.261エンコーディング
時、このようなフィールドはGOBの中でマクロブロッ
クの33可能性のある位置の中のいずれか1つを表わ
す。 *macroblock_intra(I)−もし、現
在のマクロブロックが映像間符号化されると1にセット
され、そうでない場合は0にセットされる。 *macroblock_pattern(P)−も
し、現在のマクロブロックが符号化されたブロックを含
むと1にセットされ、そうでない場合は0にセットされ
る。 *macroblock_quant(Q)−もし、現
在のマクロブロックが新しい量子尺度パラメータを有し
ていると1にセットされ、そうでない場合は0にセット
される。 *macroblock_motion_forwar
d(MF)−もし、現在のマクロブロックが順方向予測
であれば1にセットされ、そうでない場合は0にセット
される。 *macroblock_motion_backwa
rd(MB)−もし、現在のマクロブロックが逆方向予
測またはH.263でB−blocksを含むと1にセ
ットされ、そうでない場合は0にセットされる。 *dct_type(DT)、loop_filter
(LF)またはadvanced_predictio
n(M4)−バイト2のビット[5]は、それぞれの動
作で異なる意味を有する。MPEG−1ではこれは使用
されない。MPEG−2ではdct_typeを意味す
る。もし、マクロブロックがフィールドDCTコーディ
ングされた場合は、このフラグは1にセットされる。も
し、フレームDCTコーディングされた場合は、0にセ
ットされなければならない。H.261でこのフラグは
もし、ループフィルターが現在のマクロブロックで使用
された場合はセットされる。そうでなければ0にセット
される。H.263で、もし現在のマクロブロックが改
良予測モードを使用した場合は1にセットされ、そうで
ない場合は0にセットされる。 *motion_type(MT)−2ビットフィール
ドは、表56及び表57で意味する、MPEG−2で使
用されたframe_motion_typeまたはf
ield_motion_typeを表わす。
【0164】
【表51】
【0165】
【表52】
【0166】*quantizer_scale(Q_
SCALE)−DCT係数レベルの再現レベルをスケー
リングするために、範囲1から31まで表示されない整
数である。すべてのマクロブロックヘッダは、たとえそ
の値がその以前のマクロブロック(すなわち、macr
oblocks_quantはゼロである。)値と同一
であるとしても、このようなパラメータに適当な値を含
まなければならない。エンコーディングで、使用者はこ
のようなフィールドに適当な値をライトさせる責任があ
る。デコーディング時、BPはこのフィールドにハフマ
ンデコードされたquantizer scale値を
書き込まなければならない。もし、現在のマクロブロッ
クがこのフィールドにハフマンコードを含まなければ、
BPはその以前のマクロブロックのスケール値を書かな
ければならない。 *coded_block_pattern_0(CB
P_0)−6ビットコードは、現在のマクロブロックで
符号化されたブロックを表わす。ここにおいて、 CBP_0[5]==>輝度(Y)0ブロック CBP_0[4]==>輝度(Y)1ブロック CBP_0[3]==>輝度(Y)2ブロック CBP_0[2]==>輝度(Y)3ブロック CBP_0[1]==>色相ブルー(Cb)ブロック CBP_0[0]==>色相レッド(Cr)ブロック *coded_block_pattern_1(CB
P_1)−H.263でPBフレームのB−block
sのための追加的なcoded_blocks_pat
ternである。ここで、 CBP_1[5]==>輝度(Y)0ブロック CBP_1[4]==>輝度(Y)1ブロック CBP_1[3]==>輝度(Y)2ブロック CBP_1[2]==>輝度(Y)3ブロック CBP_1[1]==>色相ブルー(Cb)ブロック CBP_1[0]==>色相レッド(Cr)ブロック *logical_channel_indicato
r(LCI)−GOB論理的なチャンネルのための2ビ
ット情報は、ただH.263で連続的なマルチポイント
のみで使用される。 *frame_id(FID)−H.263用のGOB
フレームIDの2ビット情報 *macroblock_address_indic
ator(MBA_INC)−現在のマクロブロックア
ドレスが増加する値を表わすために2バイト情報を表わ
す。この情報は、常に追加的な情報としてBPにより提
供され、使用者は入力フォーマットに設定する必要がな
い。そして、入力マクロブロックヘッダーワードで規定
したいずれの値は、BPにより無視される。 *previous_dc_luminance(PR
E_DC_Y)−以前のマクロブロックで輝度ブロック
のdc値のための2バイト情報である。もし、マクロブ
ロックがスキップされると、リセット値が伝送される。
この情報は、常に追加的な情報としてBPにより提供さ
れ、使用者は入力フォーマットに設定する必要がない。
そして、入力マクロブロックヘッダワードで規定したい
ずれの値は、BPにより無視される。 *previous_dc_chrominance_
blue(PRE_DC_Cb)−以前のマクロブロッ
クでブルー色彩ブロックのdc値のための2バイト情報
である。もし、マクロブロックがスキップされると、リ
セット値が伝送される。この情報は、常に追加的な情報
としてBPにより提供され、使用者は入力フォーマット
を設定する必要がない。そして、入力マクロブロックヘ
ッダワードで規定したいずれの値は、BPにより無視さ
れる。 *previous_dc_chrominance_
red(PRE_DC_Cr)−以前のマクロブロック
でレッド色彩ブロックのdc値のための2バイト情報で
ある。もし、マクロブロックがスキップされると、リセ
ット値が伝送される。この情報は、常に追加的な情報と
してBPにより提供され、使用者は入力フォーマットに
設定する必要がない。そして、入力マクロブロックヘッ
ダワードで規定したいずれの値は、BPにより無視され
る。
【0167】10.8.5.2 モーションデータワー
各マクロブロックヘッダはもし、マクロブロックがモー
ションベクトルを含むと、追加的なヘッダワードを持た
なければならず、まずMPEG−1及びMPEG−2の
場合を考える。このような標準は、下記の過程の中のい
ずれか1つが発生する時、モーションベクトルのための
表59に図示された、追加的なヘッダワードフォーマッ
トを持つようになる。 条件1)MF=1または(I=1及びCMV=1)の
時、 条件2)MB=1の時、
【0168】MPEG−1及びMPEG−2のための一
般的なモーションベクトルデータフォーマット
【表53】
【0169】表53で、すべての要素値は、半画素精密
度となる。前記のFS0、FS1、FS2及びFS3
は、各モーションベクトルでフィールド選択を確認する
ための1ビットフラグである。もし、いずれのフィール
ドも選択されなければ、前記のフラグは0にセットされ
なければならない。その理由は、MPEG−1はフィー
ルド選択情報を使用しないので、このようなフラグは0
にセットされる。1つの例外的な場合は、デュアルプラ
イムモーションベクトルのMPEG−2エンコーディグ
で発生する。このような場合、順方向モーションベクト
ルは、16バイト(実質的に8バイトが使用される)か
ら構成され、フォーマットはテーブル37のようにな
る。正常的に、BPはビデオエンコーディング応用で、
モーションベクトル値を差動値に変換する。しかし、テ
ーブル37のモーションベクトル成分は、ハフマンエン
コーダーですぐその入力となる差動値である。デュアル
プライムモーションベクトルは、MPEG−2デコーデ
ィング応用の場合、BPにより動作される。
【0170】
【表54】
【0171】前記のH.261及びH.263は、多少
異なるモーションベクトルデータフォーマットを有す
る。大部の場合に、一バイトで或るモーションベクトル
成分値を充分に表わすことができる。MF及びM4フラ
グの内容によって、対応されるモーション補償マクロブ
ロックは、少なくとも2個であり、そして、多い場合1
0個のモーションベクトル成分を有する。前記のモーシ
ョンベクトルデータのデータフォーマットは、表60に
示されている。
【0172】H.261及びH.263のためのモーシ
ョンベクトルデータフォーマット
【表55】
【0173】10.8.5.3 ピクセル係数データワ
ード 4個のビデオ圧縮標準は、量子化レベルのために、相異
なる最大ピクセルビットの長さを有する。このような比
較は下記の表に示されている。
【0174】
【表56】
【0175】従って、MPEG及びビデオ画像会議標準
用のピクセルデータフォーマットは、表56のとおりそ
の差異がある。
【0176】ピクセル係数データフォーマット
【表57】
【0177】10.9 インタラプト条件 BPはもし、このセクションで記述されたインタラプト
条件に適合すると、ARM7_IRQフラグを確認しA
RM7をインタラプトする。前記のBPは、2個のイン
タラプト条件のセットすなわち、省略時及びエラー条件
を有している。このような条件は、BP_STATUS
[15:0]に貯蔵されている。もし、いずれか1つの
ビットがBPによりセットされると、ARM7_IRQ
信号を活性化させる。このような条件は、BP_INT
_MASK[15:0]レジスタの対応するビットをセ
ッティングさせることによって、そのすべてをマスクす
ることができる。
【0178】10.9.1 省略時インタラプト条件 *Default condition 0(BP_S
TATUS[0])−入力バッファ0の処理を終了した
時、前記のBPがIBUF0_DONEフラグもセッテ
ィングさせるARM7_IRQを確認しなければならな
い。 *Default condition 1(BP_S
TATUS[1])−入力バッファ1の処理を終了した
時、前記のBPがIBUF1_DONEフラグもセッテ
ィングさせるARM7_IRQを確認しなければならな
い。 *Default condition 2(BP_S
TATUS[2])−入力バッファ0の処理を終了した
時、前記のBPがOBUF0_DONEフラグもセッテ
ィングさせるARM7_IRQを確認しなければならな
い。 *Default condition 3(BP_S
TATUS[3])−入力バッファ1の処理を終了した
時、前記のBPがOBUF1_DONEフラグをセッテ
ィングさせるARM7_IRQを確認しなければならな
い。 *Default condition 4(BP_S
TATUS[4])−ビデオエンコーディングの場合、
ARM7により設計されたスライスまたはGOBを終え
る時、またはビデオデコーディングの場合、スライスま
たはGOBでなく初期コードに到着した時、また前記の
BPはBP_DONEフラグをセッティングするARM
7_IRQを確認しなければならない。 *Default condition 5(BP_S
TATUS[5])−先占文脈スイッチングモードで文
脈貯蔵動作を終了した時、または協力文脈スイッチング
モードで、現在のスライスまたはGOBを終了した時、
前記のBPはCTX_SW_DONEフラグをセッティ
ングするARM7_IRQを確認しなければならない。 *Default condition 6(BP_S
TATUS[6])−文脈再ロードが終わった時、前記
のBPは、CTX_RELOAD_DONEフラグをセ
ッティングするARM7_IRQを確認しなければなら
ない。 *Default condition 7(BP_S
TATUS[7])−現在、BP_STATUS[7]
が維持される。従って、このようなビットは“0”にセ
ットされるべきである。正常的に、このような省略時イ
ンタラプト条件は、BP_INT_MASK[7:0]
を使用しマスクされるように勧告はしない。しかし、或
る動作では、使用者がDefault conditi
on1をマスクすることを願う場合もある。
【0179】10.9.2 エラーインタラプト条件 もしエラーがBPで発生すると、前記のBPはARM7
インタラプトが要求されるように、BP_ERRフラグ
をセットする。同時に、前記のBPは、前記のBP_S
TATUSレジスタのBP_ERR_CODEフィール
ドでゼロでない値の中から適当なデータをセットする。
このような8ビットBP_ERR_CODEは下記のよ
うな意味を有している。 *BP_CODE=8'b0000_0000:何等のエラーも発生
しない *BP_ERR_CODE=8'b0000_0001:BP_MO
DEレジスタに不適当にセッティングされる *BP_ERR_CODE=8'b0000_0010:不適当に水
平マクロブロック位置がセットされる *BP_ERR_CODE=8'b0000_0011:不適当に垂
直マクロブロック位置がセットされる *BP_ERR_CODE=8'b0000_0100:マクロブロ
ックアドレス増加に対する不適当したVLC *BP_ERR_CODE=8'b0000_0101:マクロブロ
ックタイプに対する不適当したVLC *BP_ERR_CODE=8'b0000_0110:マクロブロ
ックモーションコードに対する不適当したVLC *BP_ERR_CODE=8'b0000_0111:不適当した
取消しモーションベクトルマーカービット *BP_ERR_CODE=8'b0000_1000:符号化され
たブロックパターンに対する不適当したVLC *BP_ERR_CODE=8'b0000_1001:ブロックD
CT dcサイズに対する不適当したVLC *BP_ERR_CODE=8'b0000_1010:不適当した
DCT dc値 *BP_ERR_CODE=8'b0000_1011:ブロックD
CT ac係数に対する不適当したVLC *BP_ERR_CODE=8'b0000_1100:1つのマク
ロブロックでブロックの#が64を超過する *BP_ERR_CODE=8'b0000_1101:不適当した
f_CODE値(例えば、値が0) *BP_ERR_CODE=8'b0000_1110:ブロックD
CT ac係数に対する不適当したVLC *BP_ERR_CODE=8'b0000_1111:不適当した
IBUF及びOBUFアドレス設定 *BP_ERR_CODE=8'b0001_0000:BP入出力
バッファ用スタートアドレスの最下位4ビットはゼロで
ない 他のBP_ERR_CODE値は貯蔵される。
【0180】10.10 詳細な機能性要求 10.10.1 IOBUSインターフェース BPとCCUとの間のすべてのデータ移動は、IOBU
Sを通して遂行される。前記のIOBUSは、多重化さ
れたアドレス及びデータを含む32ビット@40MHz
同期バスである。少なくとも7サイクルは、前記のIO
BUSを通して16バイトデータを伝達するように要求
されるので、前記IOBUSの最大伝達速度は、91.
4Mbytes/sec(731.4Mbits/sec)である。前記のB
Pは、すべてのIOBUS読出及び書込伝送のためにマ
スタまたはスレーブとなり得る。前記のBPがマスタと
して動作する時、IOBUSアービタにリクエスタ信号
を送らなければならない。もし、前記のIOBUSがな
ければ、前記のアービタは前記のBPに与え、そしてデ
バイスセレクト信号を送る。前記のIOBUSを通した
データの競争は、下記の3個のカテゴリーの中のいずれ
か1つである。すなわち、2または4このピクセル要素
を含んでいる32ビットピクセルデータと、32ビット
圧縮ビットストリームワードと、エンコーディング及び
デコーディング動作のための構文/制御パラメータの中
の1つである。IOBUSインターフェースに関するタ
イミング図のような情報に追加し、使用者は前記のMS
P IOBUS仕様を検討するよう勧告される。 10.10.2 ブロック層プロセッシング 10.10.2.1 ジグザグスキャン規定 前記のBPは、MPEGビデオ標準で提示された2個の
ジグザグスキャン変換マトリクスを支援する。VP及び
BPの間で伝送されるこのような8×8ブロックデータ
は、すべて64個の成分を含んでいる。 10.10.2.2 RLCコード RLCデコーディングのために、前記のBPはDCT
ac係数のハフマンデコード結果によって、ゼロ及びレ
ベルデータを発生する。もし、データが1つの8×8ブ
ロックに生成される前、64個のピクセルend_of
_block信号が検出されると、前記のRLCデコー
ダーは、残りのゼロデータを作るようになる。RLCエ
ンコーディングのために、前記のBPは隣接したゼロデ
ータをカウントし、次のNON−ゼロデータと結合する
ことによって、ラン−長さ及びレベルコードを発生させ
る。もし、残こっているデータのすべてがゼロに等しい
場合、残っているデータのためにRLCを発生するより
は、end_of_blockを発生させるとよい。R
LCコードのための動作サイクルは、このように発生さ
れたゼロの数ほど進行される。
【0181】10.10.2.3 ハフマンコード 前記のBPハフマンコードは、MPEG−1、MPEG
−2、H.261及びH.263ビデオテーブル基準で
勧告されたすべてのハフマンテーブルを支援する。全て
のロムワードが12ビットの場合、すべてのテーブルは
ルックアップテーブルで実行され得る。しかし、単純で
あるかまたは非常に複雑なものを有する或るハフマンテ
ーブルは、ハードワイヤード(hardwired)ロジックを使
用して具現され得る。前記のルックアップテーブルロム
を使用して具現する前記のデコーダーテーブルは、表に
要約されている。
【0182】
【表58】
【0183】前記のエンコーダーテーブルは、前記のデ
コーダーテーブルより更に大きいロムサイズを要求する
内容が、表に要約されている。
【0184】
【表59】
【0185】表から、ハフマンエンコーダ及びデコーダ
のために全体的に要求されるロムのサイズは、768×
12ビットである。前記のテーブルは、スタッフコー
ド、escape_code、DCT係数のサインビッ
ト及び、ステートマシンにより操作されるend_of
_blockコードを含んでいない。 前記それぞれ
のハフマンコードのための動作サイクルは、表に記述さ
れている。
【0186】
【表60】
【0187】最後に、JPEGデコードテーブルは、前
記のような接近過程を用いると、具現され得ないことを
表わす。しかし、dc_coeff_next_0テー
ブルでは、JPEGエンコーディング応用が使用され得
る。 10.10.2.4 差動dc値 イントラーブロックの場合、前記のBPはまた、8×8
ブロックデータの第1番目要素の差動dc係数を計算
し、そして既に伝送された差動dc係数でdc値を再現
する。 10.10.2.5 非コード化されたブロック 前記のBPは、コード化されないブロックを支援しな
い。前記のVP及びARM7は、非符号化されたブロッ
クを遂行する。前記のVP及びARM7がこのようなブ
ロックを処理するように、前記のBPはマクロブロック
ヘッダのワードに表れているcoded_block_
patternで、非コード化されたブロックを表わ
す。 10.10.2.6 ブロック伝送順序 エンコーディング及びデコーティングのために伝送され
た1つのマクロブロックで、ブロックの順序は下記のと
おりである:輝度(Y)ブロック0、1、2及び3、色
相ブルー(Cb)及び色相レッド(Cr)ブロックである。 10.10.3 マクロブロック層処理 10.10.3.1 差動モーションベクトル 前記のBPは、前記のモーション推定結果から差動モー
ションベクトルを計算し、次の場合を除いては伝送され
た差動モーションベクトルを有してモーションベクトル
を再現する。 *第1場合は、MPEG−2ビデオエンコーディングの
場合のデュアルプライムモードである。この場合で、前
記のBPに伝送されたモーションベクトルは、ベクトル
‘[0][0][1:0]’であり、ベクトル‘[r]
[0][1:0]ではない(MPEG−2ビデオ標準の
7.6.3.6節参照)。 *第2の場合は、H.263の改良予測モードである。
この場合、4個のモーションベクトル及び、このような
値が差動値として前記のBPから/に伝送されなければ
ならない。 10.10.3.2 スキップされたマクロブロック 前記のBPは、スキップされたマクロブロックを支援し
ない。前記のVP及びARM7は、このようにスキップ
されたマクロブロックを処理する。前記のようにスキッ
プされたマクロブロックを処理するための前記のVP及
びARM7で、前記のBPは、前記マクロブロックのヘ
ッダワードに水平及び垂直マクロブロックアドレスを書
き込む。 10.10.3.3 マクロブロックスタッフコード MPEG−1で、一サイクルでマクロブロックスタッフ
コードがもし生ずると、前記のBPはこれを捨てなけれ
ばならない。しかし、MEPG−1エンコーディング
で、BPは使用者がマクロブロック層ヘッダ内のマクロ
ブロックスタッフコードを含まないようにする。一般的
に、このようなスターピングコードは、出力ビデオレー
トバッファを制御することに使用される。従って、マク
ロブロックスタッフコードを挿入する代わりに、スター
トコードの間にゼロスタッフビットを挿入するように勧
告する。MPEG−1及びMPEG−2の応用のため
に、ビットストリーム出力はスライス層までバイト−ア
ラインメントされなければならない。たとえビットスト
リーム出力が画像層までバイト−アラインメントされて
もH.263応用のためには、GOB層までバイト−ア
ラインメントさせる。しかし、H.261エンコーダー
の出力はバイト−アラインメントされない。従って、A
RM7でルーチンを形成するビットストリームは、この
ような差異を考えてプログラムされる。IOBUSを通
した最後のデータ伝送のためのデータ量が、エンコーデ
ィングの場合16ビット以下の場合、BPはスライスの
エンドにゼロを満たす動作(zero-fill)を自動的に遂行
する。
【0188】10.10.4.2 エキストラスライス
情報 デコーディングにおいて、BPはMPEG−1またはM
PEG−2ビットストリームのスライスヘッダに含まれ
る、任意のエキストラスライス情報を捨てる。エンコー
ディングにおいて、BPは使用者により要請された任意
のエキストラスライス情報を挿入させない。もし、使用
者がまだMPEG−1またはMPEG−2ビットストリ
ームにこの情報を含ませようとする場合は、BPにより
予めエンコーディングされたビットストリームにこの情
報を挿入すればよい。 10.10.4.3 イントラースライスMPEG−2
スライス層ビットストリームにおいて、intra_sliceと
いうパ ラメータは、現在スライスがイントラーマクロブロック
のみで構成されたことを表わすことに使用される。この
情報は、デコーディング過程では使用されず、高速前進
または高速後進機能を遂行する場合、DSM応用を助け
るためのものである。従って、BPはデコーディング応
用の場合この情報を捨て、エンコーディング応用の場
合、スライス層ヘッダにあるintra_sliceに
0を挿入する。 10.10.4.4 スライスまた
はGOBスタートコード MPEG−1、MPEG−2、H.261において、す
べてのピクチャーは少なくとも1つのスライスまたはG
OBスタートコードを有する。しかし、H.263ピク
チャーは、GOBスタートコードとヘッダ情報を有しな
い。特に、任意のH.263ピクチャーで第1番目のG
OBは、スタートコードとヘッダ情報を有しない。従っ
て、入力されるビットストリームがH.263のための
ものである場合、BP状態マシンは、マクロブロック層
を直ちに処理しなければならない。それだけでなく、ビ
ットストリームがデコーディングされる間、GOBスタ
ートコードが発見されると、BPはスタートコードをデ
コーディングし、ARM7をインタラプトせず処理過程
を続いて遂行する。
【0189】10.11 入力/出力ダブルバッファイ
ンターフェース 10.11.1 一般的な説明 入力及び出力バッファは、ダブルバッファにより具現さ
れる。従って図64と図65の図示のとおり、IBUF
0、IBUF1、OBUF0、OBUF1の4個のメモ
リバッファを使用するようになる。図64よ図65での
ように、それぞれのバッファはスタート及び終了アドレ
スと充満及び完了フラグを有する。各バッファサイズを
決定するために、使用者は各バッファに対するスタート
及び終了アドレスに適切な値を記入しなければならな
い。一応、バッファ用ソースプロセッサは、バッファに
対する記入を完了すると、充満フラグを設定し、他のバ
ンクに対する記入を開始する。バンク用シンクプロセッ
サはアクセスされるバンクが全部満たされていることが
分かると、データを読み出す。バンクが空いていると、
シンクは完了フラグを設定し、他のバンクの充満フラグ
をチェックする。4個のスタートアドレスは、小節1
0.7.2の説明のとおり、BPによりアップデートさ
れる。スタートアドレスのためのそれぞれのレジスタ
は、BPが入力または出力バッファをアクセスする都度
に、BPによりアクセスされる最後のバイトアドレスを
貯蔵する。従って、ARM7はIBUF0_DONE、
IBUF1_DONE、OBUF0_FULL、OBU
F1_FULLのフラグの中のいずれか1つが設定され
ると、該当スタートアドレスを設定する。また、スター
トアドレスの最後の4ビットは常にARM7によりゼロ
に設定される。その理由はFBUS、CCUとIOBU
Sとの間の内部データ割り当て構造のためである。ま
た、各バッファサイズの全体バイト数が16の倍数とな
るように、それぞれの最後アドレスを設定しなければな
らない。それだけでなく、最小バッファサイズは、MP
EG−1とMPEG−2に対して64バイト、H.26
1とH.263に対して128バイトであることが勧告
される。これはARM7に対するBPの頻繁なインタラ
プトによる、性能の劣化を防止するためのことである。
【0190】10.11.2 非正常的なバッファステ
ータスの処理 2個の出力バッファが満たされると、BPは処理を中止
させ、入力ダブルバッファステータスに関係なく、アイ
ドル状態に落ちる。OBUF0_DONEまたはOBU
F1_DONEフラグが設定されると、BPは自動的に
このアイドル状態から抜け出る。2個の入力バッファが
空くと、BPは処理を中止する必要がなく、内部に残っ
ているデータの処理が完了されるまで処理し続ける。し
かし、2個の入力バッファが空くと、BPはすぐARM
7をインタラプトする。残っているデータ処理の終了以
降、入力バッファがまだ空いていると、BPはアイドル
状態に落ちる。IBUF0_FULLまたはIBUF1
_FULLフラグが設定されると、更にBPは自動的に
この状態から抜け出る。この小節で記述するアイドル状
態は、この仕様書で記述した他のアイドル状態とは異な
る。その理由は、他のアイドル状態から抜け出るために
は、通常ARM7の制御コマンドを必要とするからであ
る。
【0191】10.11.3 I/Oバッファの物理的
な具現:例 大抵、BP入力及び出力バッファの位置とサイズを決定
することは、使用者の分である。使用者はVPデータキ
ャッシュ、ARM7データキャッシュまたはSDRAM
のスクラッチパッド領域でバッファを具現する。BP入
力及び出力ダブルバッファの具現が多少制限的であって
も、前記のバッファを具現するための効率的な方法があ
る。ここにおいて、ビデオデコーディング応用におい
て、レートバッファの具現に対する特殊な例を挙げる。
この場合、使用者はBP入力バッファを循環バッファで
具現しようとする。ここで、SDRAMを使用し、完全
なレートバッファは図66の図示のとおり、4個のブロ
ックに分割されるものと仮定する。初期に、使用者はR
ate_Buffer_Block_0とRate_B
uffer_Block_1とをそれぞれIBUF0と
IBUF1に設定することができる。これは下記のよう
に設定することによって可能になる。 IBUF0_START=Rate_Buffer_A
ddress_0; IBUF0_END=Rate_Buffer_Add
ress_1; IBUF1_START=Rate_Buffer_A
ddress_2; IBUF1_END=Rate_Buffer_Add
ress_3。 IBUF0にあるデータ(すなわち、Rate_Buf
fer_Block_0にあるデータ)のすべてがBP
により使用されると、BPはARM7をインタラプトす
る。そうすると、ARM7は下記のように設定すること
によって、Rate_Buffer_Block_2を
IBUF0に設定する。 IBUF0_START=Rate_Buffer_A
ddress_4; IBUF0_END = Rate_Buffer_A
ddress_5。 IBUF1にあるデータのすべてがBPにより使用され
ると、BPはARM7をインタラプトする。そうする
と、ARM7は下記のように設定することによって、R
ate_Buffer_Block_3をIBUF1に
設定する。 IBUF1_START=Rate_Buffer_A
ddress_6; IBUF1_END=Rate_Buffer_Add
ress_7。 Rate_Buffer_Block_2にあるデータ
のすべてがBPにより使用されると、ARM7は第1番
目の段階でのようにアドレスを設定することをによっ
て、Rate_Buffer_Block_0をIBU
F0に更に設定する。従って、循環バッファは単にこの
ような完全な過程を繰り返すことによって具現され得
る。この例は、BPダブルバッファの使用が、使用者の
意図によって非常に柔軟であることを表している。
【0192】10.12 文脈スイッチング 1つ以上の応用がMSPを駆動させる場合、ARM7動
作システムは、BPが現在作業を終結させ、他の作業に
切り換えられるように命令する。この過程は、通常に
“文脈スイッチング”という。BPは下記の2種類の文
脈スイッチングモードを支援する。 10.12.1 先占(preemptive)文脈スイッチング 先占文脈スイッチングは、BPが現在8×8画素ブロッ
ク処理を遂行してから正常的な処理が終了したことを意
味する。ARM7はBP_CONTROL[6:5]レ
ジスタにあるCTX_SWITCHとCTX_MODE
フラグを“11”に設定することによって、先占文脈ス
イッチングモードを命令する。現在ブロック処理が完了
されると、BPは後の処理のために、内部文脈を外部S
DRAMに送る。BPは文脈貯蔵を完了すると、BP_
STATUS[5]に位置したCTX_SW_DONE
フラグを設定することによって、ARM7をインタラプ
トする。そうすると、ARM7はBPの入出力バッファ
のすべての内容を貯蔵し、他の作業のためにBPを初期
化させる。このモードは、BPがARM7の文脈スイッ
チングリクエストをできるだけ速く応答するようにす
る。最悪の場合、BPは現在ブロック処理を完了するた
めに、約150サイクル(=3.75μsec)を必要とする。
しかし、正常的な場合、ブロック処理を完了するために
数十のサイクルを必要とすると見なすことが好ましい。
【0193】10.12.2 協調型(cooperative)文脈
スイッチング 協調型文脈スイッチングによると、BPで文脈貯蔵過程
を除去することができる。これはすべてのスライスまた
はGOB層処理時に、BP内部の状態のすべてを初期化
させなければならないという事実に起因したものであ
る。このモードで、BPは現在スライスまたはGOBを
続いて正常的に処理してから処理を完結させる。ARM
7はBP_CONTROL[6:5]レジスタにあるC
TX_SWITCHとCTX_MODEフラグを“1
0”に設定することによって、協調型文脈スイッチング
モードを命令する。現在スライスまたはGOB処理が完
了されると、BPはBP_STATUS[5]に位置し
たCTX_SW_DONEフラグを設定することによっ
てARM7をインタラプトする。そうすると、ARM7
はBPの入出力バッファのすべての内容を貯蔵し、他の
作業のためにBPを初期化させる。
【0194】10.12.3 文脈再ロード その以前の作業を切換するために、BPはアドレスSA
VE_ADR[31:0]からSDRAMに貯蔵される
文脈を再ロードする。この文脈再ロードを要請するため
に、BPがアイドル状態にある必要がある。このリクエ
ストのための可能な状況は、BP_DONEが設定され
た場合、CTX_DONEまたはARM7がソフトウェ
アでBPをリセットさせた場合である。それで、ARM
7がBP_CONTROL[7]にあるCTX_REL
OADフラグを設定すると、BPはアイドル状態から抜
け出て、貯蔵された文脈を読み出し始める。BPは文脈
再ロード動作を完了してから、CTX_RELOAD_
DONEフラグを設定してARM7をインタラプトす
る。そうすると、ARM7はBPの内部レジスタを初期
化させ、以前の作業処理のためにBPをイネーブルさせ
る。 10.13 作業ハンドシェーキング この節は、BPが処理を終えた場合、作業ハンドシェー
クのための細部的な過程を取扱う。ここにおいて、“最
後のデータのためのポインターのアップデート”とは、
BPがVALID_BYTE_ADR[31:0]とV
ALID_BIT_POS[2:0]にそれぞれ適切な
値を記入したことを意味する。
【0195】10.13.1 エンコーディングの場合 正常状態で、エンコーディングのための入力データは、
VPから供給される。入力ダブルバッファの中の1つが
VPにより満たされると、BPはIOBUSを通してデ
ータの読出を開始する。処理が終了される時点(すなわ
ち、処理されたマクロブロック数が、ARM7により指
定されたマクロブロック数と同一な場合)で、BPはB
P_DONEフラグを設定してARM7をインタラプト
し、アイドル状態に落ちる。有効データのためのポイン
ターは、スライスまたはGOBに対する“圧縮されたビ
ットストリームの最後”を表わす。また、VALID_
BYTE_ADR[31:0]は、出力ダブルバッファ
の中のいずれか1つの位置を表わす。ARM7はこの圧
縮されたビットストリームと、上位層ヘッダを結合させ
て最終のビットストリームを形成し、処理過程を繰り返
す。出力ダブルバッファにあるデータを完全に焼尽させ
る前、ARM7がBPを再開始しようとする場合は、少
なくとも1つの出力ダブルバッファを焼尽させ、BPが
再開始された時、ポインタはBPによりアップデートさ
れるので、最後のデータのためのポインタはそのまま置
いておくことによって可能である。
【0196】10.13.2 デコーディングの場合 まず、ARM7はスライスまたはGOBスタートコード
(存在時)を探索する。スタートコードが発見される
と、ARM7はBPを初期化しイネーブルさせる。BP
でハフマンデコーディング、RLCデコーディング及び
逆ジグザグスキャン変換を遂行してから、データはVP
処理のために出力バッファに伝送される。BPはこの処
理ルーチンを非スライスまたは非GOBスタートコード
が検出されるまで続く。これらが検出されると、BPは
“非スライスまたは非GOBスタートコードのエンド”
に使用される最後のデータのためにポインタを設定し、
ARM7をインタラプトする。次に、ARM7はスター
トコードをデコーディングして、次回のスライスまたは
GOBコードが発見されるまで、ヘッダ解釈(parsing)
を遂行する。 10.13.3 圧縮されたビットストリームで発見さ
れたエラー 実際のデータが、電話線及び公衆スイッチ網を通して伝
送される画像電話応用において、いくつかの無効データ
が入力されるビットストリームに含まれる可能性が非常
に高い。この場合、BPはARM7をインタラプトし、
ERR_HANDLE_MODEフラグをチェックしな
ければならない。もしBPが特定の応用のためにイネー
ブルされる前、使用者がエラー処理モードを決定する場
合は、安全である。ERR_HANDLE_MODEフラグが“1”に
設定されると、BPは自動的に次のスタートコードを探
し出す。スタートコードがスライスまたはGOBのため
のものである場合、BPは正常的な処理を続く。このモ
ードが非常に効率的であるが、その理由はBPがARM
7より更に迅速にスタートコードを探し出すことがで
き、BPが次のスタートコードを探す間、ARM7が他
の処理ルーチンを遂行し得るからである。しかし、スラ
イスまたはGOB層とは異なるスタートコードが発見さ
れると、BPはBP_DONEフラグを設定してARM
7を更にインタラプトし、アイドル状態に落ちる。この
ような場合、最後のデータのために使用されたポインタ
は、次回のスタートコードのエンドを指示しなければな
らない。ERR_HANDEL_MODEフラグが
“0”に設定されると、BPは次回のスタートコードを
探せず、アイドル状態に落ちる。このような場合、最後
のデータのために使用されるポインタは、エラーは発見
された位置を指示しなければならない。このモードは使
用者がARM7命令語を利用して、汚染されたビットス
トリームをデバッギングする場合に有用である。
【0197】
【実施例2】付 録 B MPCビットストリーム処理器 ビットストリーム処理器(BP)は、ビデオデータエン
コーディング及びデコーディング応用に重要なMSP処
理コアの中の1つである。BPはMPEGスライス層エ
ンコーディング及びデコーディング、そしてH.261
/H.263グループブロック(GOB)層エンコーデ
ィング及びデコーディングを処理する。デコーディング
応用において、BPは各マクロブロックに含まれた全体
情報を、ベクトル処理器及びARM7コアに提供する。
ビットストリーム処理器ハードウェアは、4個の機能ブ
ロックに分けられる。 *I/O制御及びデコーディングユニットを含むIOB
USポートインターフェース *BP制御ステートマシン *BPレジスタマルチプレクサー、レジスタ、算術論理
ユニット(ALU)及びマルチプレクサー、FIFO制御ユ
ニットを含むコーデックコア *VLC FIFOユニット *コーデックアドレス発生器と共にルックアップを含む
VLCコーデック VLC LUT ROM(340、図3参照)についての
説明は下記のとおりである。 1.0 方法論 ルックアップユニットは、ハフマンエンコーディング及
びデコーディングの核心である。このユニットは、MP
EG−1、MPEG−2、H.261及びH.263仕
様に含まれたVLCテーブルを支援し、三星MSPによ
り支援される。このテーブルの大部分は、12ビット幅
を有するROMで具現される。しかし、ルックアップ処
理があまり単純で、ROMテーブルのサイズに当たらな
い場合、特殊なエンコーディング及びデコーディングが
適用される。このようなレイヤーの4つの仕様のすべて
は、多い可変長さコードを17ビットまで含む。エンコ
ーディング値またデコーディング以外に、コードサイズ
及び有効コード指示者が、エンコーディング及びデコー
ディングのために提供され、正確に処理されるようにす
る。VLCテーブルをエンコーディングまたはデコーデ
ィングするために従来の方法を使用する場合、ROMテ
ーブル及びアドレス発生器が更に大きくなる。
【0198】1.1 具現方法は下記のとおりである: *もしアドレス発生器の設計が難しくなければ、ROM
テーブルをできるだけ多く共有する。 *エンコーディングまたはデコーディングに基づいて、
VLCテーブルを再配列する。 *ハフマンコードに基づいて‘0’カウントと‘1’カ
ウントをまずデコーディングする。 *符号または偶数/奇数のような1ビットフラグを使用
しテーブルサイズを減らす。 *可能であれば、1つのROM位置を‘上位’と‘下
位’に分離する。 *ROMテーブルアドレスを発生させるために、VLC
の最下位ビット(LSB)を使用しアドレス発生器を簡素化
する。 この方法は非常に効率的である。最終のROMテーブル
サイズは、768*12ビットで、問題を伴うにはずっ
と小さい。ルックアップは、ROMテーブルアドレス発
生器と、ROMテーブルルックアップ処理により遂行さ
れる。アドレス発生器はテーブル種類、モード及びVL
C値のような入力信号をデコーディングし、ROMテー
ブルのアドレスを発生させる。以降、ROMテーブル値
及び他の情報からエンコーディングまたはデコーディン
グデータが得られる。デコーディングテーブルは2つの
フォーマットを有するが、一つはVLCコード当りのR
OM位置を有するDCT係数に適用され、もう一つはそ
れぞれのROM位置が上位6ビットと下位6ビットに分
割されている他のテーブルに適用される。従って、各位
置は2つのVLCコードを有する。エンコーディングテ
ーブルは、2つのフォーマットを有するが、一つはH.
263のTCOEFに関するもので、もう一つは他のテ
ーブルに対するものである。各ROM位置はエンコーデ
ィング応用のために一つのハフマンコードを含む。RO
Mテーブルのサイズは768×12ビットである。テー
ブルは下記のように示すことができる。
【0199】VLCデコーディングROMテーブルマッ
【表61】
【0200】VLCエンコーディングROMテーブルマ
ップ
【表62】
【0201】1.2 デコーディング デコーディングに対するすべてのテーブルは、‘0’ま
たは‘1’カウントに基づいて再配列される。VLCコ
ードのMSBが‘0’の場合は‘0’カウントが印加さ
れ、‘0’でない場合は‘1’カウントが使用される。
例えば、コード'00001xxx’の場合4個の‘0’を有
し、コード'1110xxx’の場合3個の‘1’カウントを有
する。デコーティング過程はまず‘0’/‘1’カウン
トをデコーディングし、VLCコードの‘0’/‘1’
カウントをROMテーブルアドレス発生器へ出力する。
以降、アドレス発生器は残りのコードをデコーディング
してアドレスを発生させる。アドレスは2個部分けられ
るが、一つはオフセットで、もう一つはいわゆるマスク
されたアドレスであって、VLCテーブルから得られ
る。アドレスは2個部分に対する論理和(OR)から得
られる。アドレス発生器により提供される他の情報は、
下記の通り示すことができる。 *VLC code size *Special Flag:2ビットフラグは、H.
261で‘ESCAPE’、‘END OF BLOC
K’、‘STUFFING’、または‘START C
ODE’に対するデコーディングステートマシンを表わ
す。 *High data extract enabl
e:有効データは上位6ビットである。 *Sign/even enable:このフラグは、
デコーディングがVLCのLSBを、テーブルに基づい
た符号または偶数ビットで抽出するべきであることを指
示する。 *Valid VLC *Mask shift bits 及びmask:こ
の両信号は、マスクされたアドレスを発生させるために
印加される。 ROMテーブルに対して、MPEG−2のテーブル1
4、15とH.263のテーブル12を除外しては、そ
れぞれの位置に上位と下位ビットフォーマットから形成
されたデータが貯蔵される。
【0202】1.2.1 テーブル12/MPEG−2 このテーブルはテーブル2−B.5c/MPEG−1及
びテーブル5/H.261と同一である。 ROMテーブルフォーマット:ビット10〜6:ラン;
ビット5〜0:レベル 1.2.2 テーブル15/MPEG−2 テーブル14/MPEG−2と同一なラン、レベル及び
VLCコードを有するので、このテーブルの大部分は、
テーブル14/MPEG−2と共有する。 ROMテーブルフォーマット:ビット10〜6:ラン;
ビット5〜0:レベル 1.2.3 テーブル12/H.263 このテーブルは、MPEG−2のテーブル14、15と
比較する時、1個以上の出力値‘LAST’を有する。 ROMテーブルフォーマット:ビット11:LAST;
ビット10〜4:ラン;ビット3〜0;レベル 1.2.4 モーションコード/マクロブロック増加分 この節は、テーブル1/MPEG−2、テーブル10/
MPEG−2、テーブル2−B.1/MPEG−1、テ
ーブル2−B.4/MPEG−1、テーブル1/H.2
61及びテーブル3/H.261及びテーブル10/
h.263を取扱う。
【0203】モーションコードに対して、VLC=1の
場合を除いてはLSBが符号ビットである。マクロブロ
ック増加分に対して、LSBはVLC=1の場合を除い
ては、偶数値フラグである。従って、テーブルの半分の
みをデコーディングする。タイル(tile)符号/偶数ビッ
トを無視する場合、テーブル10/H.263の上位部
分を除いては、2種類のテーブルは、同一なVLC値と
デコーディング値を有する。デコーティングされた値
は、6ビットまで発生し、これは2個のテーブル値を1
つの位置に置くことができることを意味する。例え、テ
ーブル10/H.263の下位部分のデコーディング値
が他のものと異なっても、タイル2進値は固定小数点の
ために同一である。すなわち、このすべてのテーブルを
取扱うために、固定小数点として16 半分の位置を使
用する。ROMアドレスを発生させるために、1つの簡
単なFSMを使用する。応用において、モーションコー
ドがデコーディングされる場合、ROMテーブルは絶対
値を提供する。一方、アドレス発生器が符号ビットをイ
ネーブルさせると、デコーダーはLSBを抽出するが、
‘1の場合’は負(−)、‘0’は正(+)を意味す
る。このアルゴリズムは下記のように示すことができ
る。 if(sign_enable==1) increment_value=sign*ROM_table_v alue; else increment_value=ROM_table_value; もし、マクロブロックアドレス増加テーブルがデコーデ
ィングされると、その結果はROMテーブル値と偶数フ
ラグから得られる。例えば、ROMテーブルは‘5’の
値を提供する。偶数フラグが‘ハイ’であれば‘10’
の結果が得られ、偶数フラグが‘ロー’であれば‘1
1’の値が得られる。このアルゴリズムは下記のように
示すことができる。 if(even_enable==1) increment_value=(ROM−table_valu e<<1) | (〜even_bit); else increment_value=ROM_table_value ; ROMテーブルフォーマット:ビット11〜6:上位データ;ビット5〜 0:下位データ 1.2.5 マクロブロックパターン この節はテーブル9/MPEG−2、テーブル2−B.
3/MPEG−1、テーブル4/H.261(CBP)
を取扱う。デコーティングされた値は6ビットまで発生
するが、これは1個の位置に2個のデータを置くことが
できることを意味する。すなわち、このテーブルのすべ
てを取扱うためには、32個の位置が使用される。 ROMテーブルフォーマット:ビット11〜6:上位デ
ータ;ビット5〜0:下位データ
【0204】1.2.6 マクロブロックタイプ この節は、テーブル2、3、4/MPEG−2、テーブ
ル2−B.2/MPEG−1、テーブル2/H.261
(MTYPE)及びテーブル3、4/H.263(MC
BPC)を取扱う。デコーティングされた値は5ビット
まで発生する。ここでも上位/下位データ概念を使用す
る。ROMアドレスを発生させるために、1個の簡単な
FSMが使用される。 ROMテーブルフォーマット:ビット11〜6:上位デ
ータ;ビット5〜0:下位データ たとえ、いくつかのビットが各仕様によって相異なる意
味を有するが、マクロブロックタイプのフォーマット
は、MPEGに基づいて各仕様に対して普遍的に定義さ
れている。H.263は情報要求に基づいて2段階のデ
コーディングを必要とするが、これは下記のとおりであ
る。 *3ビットマクロブロックタイプを有するデコーディン
グMCBPC *マクロブロックタイプ、BPフラグ及びピクチャータ
イプに基づいたマクロブロックタイプルックアップ VLCテーブルでマクロブロックタイプのフォーマット
は下記のとおりである。
【0205】
【表63】
【0206】
【表64】
【0207】
【表65】 表から、3ビットマクロブロックタイプだけでなく、2
ビットクロマパターンを得る。ここにおいて、マクロブ
ロックタイプは、0〜4までの範囲を有する3ビット値
である。上述のごとく、細部的なマクロブロックタイプ
の種類は、第2段階でデコーディングされる。デコーデ
ィングルックアップテーブルは下記のとおりである。
【0208】
【表66】
【0209】1.2.7 DCT DC サイズ この節は、テーブル12、13/MPEG−2、テーブ
ル2−B.5/MPEG−1を取扱う。VLC構造によ
って‘1’カウントはここで‘0’カウントの代わりに
使用される ROMテーブルフォーマット:ビット10〜6:上位デ
ータ:クロマ;ビット5〜0:下位データ:輝度。ビッ
ト11とビット5は予約されている。 1.2.8 CBPY この節は、テーブル9/H.263を取扱う。このテー
ブルは二セットのデータを含むが、一つはインターピク
チャーに関するもので、もう一つはイントラーピクチャ
ーに関する。一セットの値は、他セットの値を反転させ
たものであって、ROMに一セットのデータが貯蔵でき
るようにする。ここにおいて、インタラーデータがRO
Mに位置する。1つの4ビット値がCBPY値を表わす
ことに使用される。 ROMテーブルフォーマット:ビット9〜6:上位デー
タ;ビット3〜0:下位データ。ビット11〜10とビ
ット5〜4とは予約されている。 1.2.9 デュアルプライム(dual prim
e)及びモード この節はテーブル11/MPEG−2及びテーブル7/
H.263を取扱う。この2個のテーブルは、非常に簡
単で小さくて、直接デコーディングされ得る。 1.3 エンコーディング デコーディング節と同様に、エンコーディング過程は
‘0’/‘1’カウント概念を使用する。ROMテーブ
ルは、‘0’/‘1’カウント、‘0’または‘1’カ
ウントに対して最初1に後続くコードのサイズ及び、最
初/最後‘1’に後続くVLCコードに対する情報を含
む。このフォーマットによると、ROMテーブルのサイ
ズは、テーブル12/H.263において特殊エンコー
ディングで解決される4つを除いては、12ビットに制
限され得る。フォーマットは下記のとおりである。
【0210】
【表67】
【0211】
【表68】
【0212】前記のテーブルで、VLCコードサイズは
最初/最後‘1’を後続くVLCコードのサイズであ
る。VLCコードは、最初/最後‘1’を後続くVLC
コードである。‘0’カウントの場合、最初の‘1’を
後続くVLCコードが抽出され、そうでない場合VLC
コードは最後の‘1’を後続くビットから抽出されなけ
ればならない。エンコーディングで‘1’カウントの適
用は、デコーディングでのそれとは異なる。‘1’カウ
ントは‘1’カウントフラグがアドレス発生器によりイ
ネーブルされる場合のみに適用される。従って、VLC
のMSBが1であるが‘1’カウントフラグがローの場
合、ROMテーブルの‘0’/‘1’カウント部分は0
となり、これは‘0’カウントが適用されることを意味
する。次の例は、エンコーディングに対するすべての可
能な場合を取扱う。 例1:VLC=0000011001、one_count_enable=0 一般的な場合に対する結果:0101 100 01001 テーブル12/H.263に対する結果:101 100 0010
01 例2:VLC=11001、one_count_enable=0 一般的な場合に対する結果:0000 100 0101 テーブル12/H.263に対する結果:000 100 0010
01 例3:VLC=11001、one_count_enable=1 一般的な場合に対する結果:0010 011 00001 テーブル12/H.263に対する結果 一般的なアドレスは、オフセットと入力値の加算によっ
て発生される。
【0213】1.3.1 テーブル14/MPEG−2 このテーブルはテーブル2−B.5c/MPEG−1及
びテーブル5/H.261と同一である。このエンコー
ディングは‘RUN’、‘FIRST DC’、‘ES
CAPE’、‘END OF BLOCK’入力を処理
する。エンコーディング結果:アドレスを発生するため
にレベルまたはランと共に加算されるように印加される
オフセットアドレス 1.3.2 テーブル15/MPEG−2 二テーブルが同一なラン、レベル及びVLCコードを有
するので、このテーブルの大部分はテーブル14/MP
EG−2を共有する。いくつかの特殊な場合において、
‘1’カウントが適用される。このエンコーディングは
‘RUN’、‘LEVEL’、‘FIRST DC’、
‘ESCAPE’、‘END OFBLOCK’入力を
処理する。 エンコーディング結果:オフセットアドレス及び‘1’
カウント指示者 1.3.3 テーブル12/H.263 上述のごとく、このテーブルは非常に特殊である。これ
を取扱うために他のフォーマットを使用する。不幸に
も、VLCコードを示すことに12ビットが使用できな
い幾つかの例外がある。その例外はテーブル9に示した
とおりである。この例外はROMテーブルを使用せず、
特殊にエンコーディングされ得る。
【0214】
【表69】
【0215】エンコードは‘RUN’及び‘ESCAP
E’入力を処理する。 エンコード結果:アドレスを発生するために、レベルま
たはランと共に加算されるように印加されるオフセット
アドレス 1.3.4 モーションコード/マクロブロック増加分 この節は、テーブル1/MPEG−2、テーブル10/
MPEG−2、テーブル2−B.1/MPEG−1、テ
ーブル2−B.4/MPEG−1、テーブル1/H.2
61、テーブル3/H.261及びテーブル10/H.
263を取扱う。デコーディング部分で説明したとお
り、このすべてのテーブルに対して、1つのROMテー
ブルと1つのFSMととを共有することができる。RO
Mテーブルから得られるVLCコードは、完全なVLC
コードを作るために符号/偶数ビットと結合しなければ
ならない。従って、このエンコーディングFSMで処理
する入力値は、そのLSBがフラクションビット(fract
ion bit)であるモーションコードに対する絶対値と、1
ビットの右側にシフトされたマクロブロックアドレス増
加分である。
【0216】エンコーディングは‘STUFFING’
及び‘ESCAPE’を処理する。 1.3.5 マクロブロックパターン この節はテーブル9/MPEG−2、テーブル2−B.
3/MPEG−1を取扱う。アドレスはオフセットとパ
ターン値を加算した値である。 1.3.6 マクロブロックタイプ この節は、テーブル2、3、4/MPEG−2、テーブ
ル2−B.2/MPEG−1を取扱う。 1.3.7 テーブル3、4/H.263(MCBP
C) ピクチャータイプ、マクロブロックタイプ及びスタッフ
ィング(stuffing)フラグに対する情報が、ROMテーブ
ルアドレスオフセットを発生させるために提供される。
アドレスはオフセットアドレスとCBPCの和である。 1.3.8 テーブル2/H.261(MTYPE) アドレス発生器が非常に複雑で、具現に対して考慮する
価値がない。 1.3.9 CBPY デコーディング部分に述べたように、イントラーピクチ
ャーデータのみをエンコーディングする。ピクチャータ
イプがインターピクチャーである場合、データはまず反
転されなけらばならない。アドレスはオフセットとCB
PY値を加算した値である。 1.3.10 DCT DCサイズ この節は、テーブル12、13/MPEG−2、テーブ
ル2−B.5/MPEG−1を取扱う。輝度及びクロマ
に対する数個のVLCコードが同一であるので、これに
対して数個のROMテーブルを共有する。オフセットア
ドレスを発生させるために、クロマフラグ及び数個のビ
ット値が使用される。オフセットと実際値を加算するこ
とによってROMアドレスを得ることができる。
【0217】1.3.11 デュアルプライム(dual pr
ime)及びモード この節は、テーブル11/MPEG−2及びテーブル7
/H.263を取扱う。この2個のテーブルは非常に簡
単で小さくて、直接エンコーディングされ得る。 2.0 ハードウェア説明 VLCエンコーディング/デコーディングに対するハー
ドウェアは、‘VLC’ブロックに含まれる。このブロ
ックは3個のサブブロックを含む。このブロックはRO
Mテーブルアドレスまたはデコーディング/エンコーデ
ィングデータを発生させるために適用される。‘VLC
−DEC’はVLCをデコーディングし、ROMテーブ
ルアドレスを発生させるために使用される。‘VLC_
ENC’はVLCをエンコーディングするためのブロッ
クであり、ROMテーブルアドレスまたはH.263の
TCOEFテーブルのための特殊エンコーディングを発
生させる。‘LOOKUP’はROMテーブル値または
特殊エンコーディング値に基づいてVLCデータを出力
する。 2.1 VLCデコーディングアドレス発生器 VLC_DECの核心は、デコーディングFSMであ
る。このFSMは入力情報をデコーディングしアドレス
発生を制御する。FSMの入力及び定義は下記のとおり
である。 *ZERO_ONE Count(15ビット):0/
1カウント値を提供する。 *ZERO_ONE Count(4ビット):0/1
カウント値を提供する。2個の相互に異なるビットカウ
ント信号を使用する目的は、入力データ共有により、ゲ
ート注文者(gate customer)を減少させるためである。
大部の場合、15ビットが使用される。 *ONE Count enable(1ビット):
‘1’カウント指示者 *テーブルタイプ(6ビット):テーブルタイプ
【0218】
【表70】
【0219】 VLC_DEC FSMモードフォーマット ヒ゛ット8 ヒ゛ット7 ヒ゛ット6 ヒ゛ット5 ヒ゛ット4 ヒ゛ット3 ヒ゛ット2 ヒ゛ット1 ヒ゛ット0 H.263 仕様 ヒ゜クチャータイフ゜ クロマ 第1 DC テーフ゛ル15 MB INC 仕様及びピクチャータイプに対する定義は、ピン定義で
説明する。ハードウェアを簡素化し、ROMアクセス時
間を確保するために、特殊なアルゴリズムがこのデコー
ドROMテーブルアドレスを発生させるために使用され
る。この過程は下記のとおりである。
【0220】段階1:オフセットアドレス(OFFSET)を発
生させる。 段階2:4ビットシフト量(MASK_SHFT)を発生させ、こ
の量と共に右側シフト16ビットFIFO_DATAを
発生させる。以降、4個の最下位ビット(FOL_DATA)を抽
出する。 段階3:段階2から得られる4個ビットを反転させる。 段階4:段階3から得られるデータをマスク(MASK)する
ために、4ビットマスク信号を発生させる。 段階5:段階4の結果をオフセットアドレスと論理和さ
せる。その結果はROMテーブルアドレスである。この
段階を結合させると下記のとおりである。 Address=OFFSET | (BITREVERSE(Bit(3〜0)of(FIFO_DATA>>MASK_SHFT)) & MASK) FSMの出力は下記のとおりである。 *MASK(4ビット):マスタデータ *OFFSET(9ビット):ROMテーブルオフセッ
トアドレス *MASK_SHFT(4ビット):シフト量 *SIZE(5ビット):VLCサイズ *SPECIAL_FLAG(3ビット):デコーディ
ングのための余分の情報
【0221】
【表71】
【0222】*VALID_VLC(1ビット):有効
VLCコードフラグ *HIGH_DATA_INDICATOR(1ビッ
ト):ROMデータの中の上位6ビットを抽出する。 入力ピン: *FOL_DATA(4ビット):シフトされたFIF
O_DATA(上述した段階2参照) *CNT(4ビット):0/1カウント *ONE_CNT_EN(1ビット):‘1’カウント
指示者 *MODE(14ビット):テーブルタイプ及び他の情
報 定義は下記のとおりである。
【0223】
【表72】
【0224】仕様:00=MPEG−1;01=MPE
G−2;10=H.261;11=H.263; ピクチャータイプ:00=予約;01=イントラー;1
0=予測;11=両方向; *FIFO_DATA(16ビット):データはVLC
を含む。 出力ピン: *ROM_ADR(10ビット):ROMテーブルアド
レス *MASK_SHFT(4ビット):FIFO_DAT
Aに対するシフト量(上述した段階2参照) *SIZE(5ビット):VLCサイズ *SPECIAL−0(3ビット):特殊フラグ(FS
M出力参照) *VALID_VLC(1ビット):有効VLCフラグ *HIGH_DATA(1ビット):偶数フラグの符号
として、VLCのLSBの抽出指示者 *FULL_DATA(1ビット):DCT係数デコー
ディング時に、ハイの完全な12ビットデータ構造 *TABLE(6ビット):FSM入力に定義される。 *T_MODE(9ビット):FSM入力にMODEに
定義される。 2.2 VLC_ENC VLCエンコーディングコア部分でのように、VLC_
ENCは可変長さコードをエンコーディングする。この
部分の出力は、ROMテーブルアドレスまたはVLCの
特殊エンコーディングである。1.0節の説明のとお
り、エンコーディングデータ構造は、H.263でTC
OEFのいくつかの特殊な場合を除いては、12ビット
データフォーマットに従う。たとえ、10ビット加算器
がROMテーブルアドレスを発生させるために使用され
るが、ハードウェア観点から見ると、VLC_DEC部
分より更に簡単である。VLC_DECと同様に、この
部分の核心はVLC_ENCというFSMである。他の
FSM、ENC_SPは、特殊エンコーディングのため
に使用される。FSM VLC_ENCの入力信号は、
この部分の入力ピンと同一である。 *LAST(1ビット):H.263のTCOEFに対
するLAST値 *RUN/VALUE(6ビット):DCT係数テーブ
ルがエンコーディングの途中であれば、この入力はRU
Nを意味し、そうでない場合一般的な値、すなわちパタ
ーンを意味する。 *LEVEL(6ビット):DCT係数レベル *SPECIAL_FLAG(2ビット):VLC_D
EC部分で定義された特殊フラグ *TABLE(6ビット):VLC_DECと同一 *MODE(9ビット):VLC_DECと同一 ROMアドレス発生は非常に簡単である。FSMはアド
レスを発生させるために値(ラン)またはレベルまたは
0に加えられるオフセットアドレスを提供する。このV
LCが同一サイズと‘0’カウントを有するので、特殊
エンコーディングのためには、出力はコードで復元され
る2個の最下位ビットである。
【0225】出力ピンは下記のとおりである。 *ONE_CNT_FLG(1ビット):VLC構造が
‘1’カウントを使用することを知らせる。 *SIGN_EN_BIT:VLC構造が符号/偶数ビ
ットをVLC LSBに置くことを知らせる。 *SPECIAL_ENCODE(1ビット):特殊エ
ンコーディングフラグ *VLC(2ビット)特殊エンコーディングされたVL
CコードLSB *ADR_A(16ビット):オフセットアドレス。上
位6ビットは0である。 *ADR_B(16ビット):アドレスのまた他の部
分。上位10ビットは常に0である。 2.3 ルックアップ この節は、VLCデータのエンコーディング/デコーデ
ィングを提供する。このブロックは下記のような状況を
処理する。 *規則的な12ビットエンコーディング/デコーディン
グROMテーブル値出力 *ビット上位/下位デコーディングデータ出力 *特殊エンコーディングデータの復元 要求した通り、出力データ0で満たされる。 入力ピン: *D_ADR(10ビット):ROMアドレスをデコー
ディングする。 *E_ADR(10ビット):ROMアドレスをエンコ
ーディングする。 *ENCODE(1ビット):1:エンコーディング;
0:デコーディング *HIGH(1ビット):上位6ビットフラグを抽出す
る。 *ENABLE(1ビット):完全な12ビットデータ
フラグ *VLC(2ビット):特殊エンコーディングコード *SPECIAL_ENCODE(1ビット):特殊エ
ンコーディングコード 出力ピン: LOOKUP(16ビット):VLCコード
【0226】
【発明の効果】以上述べたように、本発明はビットスト
リーム処理器では、多様なビットストリームが実時間的
に同時にエンコーディングまたはデコーディングされる
ように文脈を貯蔵することができるので、多重データス
トリームを同時に処理することができる。また、ビット
ストリーム処理器が単一算術命令またはブール命令を遂
行するためにプログラムされないようにすることによ
り、ビットストリーム処理器が高速で動作できる。
【図面の簡単な説明】
【図1】 本発明によるメディアカードのブロック図で
ある。
【図2】 本発明によるマルチメディア処理器のブロッ
ク図である。
【図3】 図2に示された処理器の一部のビットストリ
ーム処理器のブロック図である。
【図4】 本発明によるコンピュータシステムのブロッ
ク図である。
【図5】 本発明によるコンピュータシステムのブロッ
ク図である。
【図6】 本発明によるコンピュータシステムのブロッ
ク図である。
【図7】 図2に示された処理器のファームウェア構造
を示す図である。
【図8】 図1のシステムのためのアドレスマップを示
す図である。
【図9】 図1のシステムのためのアドレスマップを示
す図である。
【図10】 図2に示された処理器のDSPコアを示す
ブロック図である。
【図11】 図2に示された処理器の一部のベクトル処
理器に適用されたパイプラインを示す図である。
【図12】 図11のベクトル処理器の機能的なブロッ
ク図である。
【図13】 図11のベクトル処理器において実行デー
タ経路を示す図である。
【図14】 図11のベクトル処理器においてロード及
び貯蔵データ経路を示す図である。
【図15】 図2の処理器のキャッシュシステムのブロ
ック図である。
【図16】 図15のキャッシュシステムにおいて命令
データキャッシュを示す図である。
【図17】 図2の処理器においてキャッシュ制御ユニ
ットのデータ経路パイプラインを示す図である。
【図18】 図2に図示したシステムにおいてキャッシ
ュ制御ユニットのアドレス処理パイプラインのためのデ
ータ経路を示す図である。
【図19】 図2の処理器においてステートマシンを示
す図である。
【図20】 図2の処理器においてステートマシンを示
す図である。
【図21】 図2の処理器においてステートマシンを示
す図である。
【図22】 図2の処理器においてステートマシンを示
す図である。
【図23】 図15のキャッシュシステムで使用された
アドレスフォーマットを示す図である。
【図24】 図2の処理器においてバスを示す図であ
る。
【図25】 図2の処理器において仲裁制御ユニットを
示す図である。
【図26】 図2の処理器に対するタイミング図であ
る。
【図27】 図2の処理器に対するタイミング図であ
る。
【図28】 図2の処理器に対するタイミング図であ
る。
【図29】 図2の処理器に対するタイミング図であ
る。
【図30】 図2の処理器においてメモリリクエスト信
号を示す図である。
【図31】 図2の処理器においてメモリリクエスト信
号を示す図である。
【図32】 図2の処理器においてメモリリクエスト信
号を示す図である。
【図33】 図2の処理器においてバス仲裁制御ユニッ
トを示す図である。
【図34】 図2の処理器に対するタイミング図であ
る。
【図35】 図2の処理器に対するタイミング図であ
る。
【図36】 図2の処理器に対するタイミング図であ
る。
【図37】 図2の処理器においてバスインターフェー
ス回路を示す図である。
【図38】 図2の処理器においてバスインターフェー
ス回路を示す図である。
【図39】 図1のシステムに対する仮想フレームバッ
ファ(VFB)を示す図である。
【図40】 図1のシステムに対する仮想フレームバッ
ファ(VFB)を示す図である。
【図41】 図1のシステムに対するバスインターフェ
ースを示す図である。
【図42】 図2のシステムに対するメモリコントロー
ラーを示す図である。
【図43】 図2のシステムに対するメモリコントロー
ラーを示す図である。
【図44】 図2のシステムに対するアドレスコントロ
ーラーを示す図である。
【図45】 図1のシステムで使用するフォーマットを
示す図である
【図46】 図1のシステムで使用するフォーマットを
示す図である
【図47】 図1のシステムにおいてステートマシンを
示す図である
【図48】 図1のシステムに対するデータコントロー
ラーのブロック図である。
【図49】 図1のシステムに対するタイミング図であ
る。
【図50】 図1のシステムに対するタイミング図であ
る。
【図51】 図1のシステムに対するタイミング図であ
る。
【図52】 図2の処理器において装置インターフェー
ス回路を示す図である。
【図53】 図2の処理器において装置インターフェー
ス回路を示す図である。
【図54】 図1のシステムの各部に対するブロック図
である。
【図55】 図1のシステムの各部に対するブロック図
である。
【図56】 図1のシステムの各部に対するブロック図
である。
【図57】 図1のシステムにおいてレジスタを示す図
である。
【図58】 図1のシステムにおいてレジスタを示す図
である。
【図59】 図1のシステムにおいてレジスタを示す図
である。
【図60】 図1のシステムにおいてフレームバッファ
及びビデオウインドを示す図である。
【図61】 図1のシステムに対するタイミング図であ
る。
【図62】 図1のシステムにおいてレジスタを示す図
である。
【図63】 図1のシステムに対するタイミング図であ
る。
【図64】 図1のシステムで使用するバッファを示す
図である。
【図65】 図1のシステムで使用するバッファを示す
図である。
【図66】 図1のシステムで使用するバッファを示す
図である。
【符号の説明】
100: メディアカード 105、122: バス 110: マルチメディア処理器 112: D/A変換器 114: CODEC 120: メモリバス 210: スカラー処理器 220: ベクトル処理器 230: キャッシュサブシステム 240: IOBUS 242: タイマー 243: UARTユニット 245: ビットストリーム処理器 250: FBUS 252、255: インターフェース回路 258: コントローラー 290: データ移動器 310: インターフェースユニット 320: SRAM 330: VLC FIFOユニット 340: VLC LUT ROM 350: 制御ステートマシン 360: BPコアユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アムジャド・クレシ アメリカ合衆国・カリフォルニア・ 95134・サン・ホセ・イラン・ヴィレッ ジ・レーン・#307・350 (72)発明者 ル・ングイェン アメリカ合衆国・カリフォルニア・ 95030・モンテ・セレノ・ダニエル・プレ イス・15095

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ビデオデータをエンコーディングまたは
    デコーディングするためのシステムにおいて、 ビデオデータに対して線形変換を遂行するベクトル処理
    器、 前記ベクトル処理器の出力を圧縮したり、前記のベクト
    ル処理器に入力するためにビデオデータを復元するビッ
    トストリーム処理器、及び、 前記のベクトル処理器と前記ビットストリーム処理器の
    動作を同期化させる制御回路を含んでおり;前記のビッ
    トストリーム処理器は、1つのビデオデータストリーム
    に対する処理を中止し、他のビデオデータストリームに
    対する処理を開始するように、前記の制御回路によりイ
    ンタラプトされ、前記のシステムが2個のビデオデータ
    ストリームを実時間的にエンコーディングまたはデコー
    ディングできるように、前記のビットストリーム処理器
    が2個のビデオデータストリームをほぼ同時に処理する
    ことができることを特徴とするビデオデータのエンコー
    ディングまたはデコーディングシステム。
  2. 【請求項2】 前記の各ビデオデータストリームは、動
    画像を表わすことを特徴とする請求項1記載のビデオデ
    ータのエンコーディングまたはデコーディングシステ
    ム。
  3. 【請求項3】 ビデオデータをエンコーディングまたは
    デコーディングするためのシステムにおいて、 ビデオデータに対して線形変換を遂行するベクトル処理
    器、及び前記ベクトル処理器の出力を圧縮したり、前記
    のベクトル処理器に入力するためにビデオデータを復元
    するビットストリーム処理器を含んでおり;前記のベク
    トル処理器は、単一算術またはブール命令を実行できる
    ようにプログラムされ得、前記のビットストリーム処理
    器は、単一算術またはブール命令を実行できるようにプ
    ログラムされ得ないことを特徴とするビデオデータのエ
    ンコーディングまたはデコーディングシステム。
  4. 【請求項4】 ビデオデータをエンコーディングまたは
    デコーディングするための方法において、 ビデオデータに対し線形変換を遂行するベクトル処理
    器、及び前記ベクトル処理器の出力を圧縮したり、前記
    のベクトル処理器に入力するためにビデオデータを復元
    するビットストリーム処理器を含んでおり;前記のベク
    トル処理器は、単一算術またはブール命令を実行できる
    ようにプログラムされ得、前記のビットストリーム処理
    器は、単一算術またはブール命令を実行できるようにプ
    ログラムされ得ないことを特徴とするビデオデータのエ
    ンコーディングまたはデコーディング方法。
  5. 【請求項5】 前記の各ビデオデータストリームは、動
    画像を表わすことを特徴とする請求項4記載のビデオデ
    ータのエンコーディングまたはデコーディング方法。
  6. 【請求項6】 ビデオデータをエンコーディングまたは
    デコーディングするための方法において、 ビデオデータに対し線形変換を遂行するベクトル処理
    器、及び前記ベクトル処理器の出力を圧縮したり、前記
    のベクトル処理器に入力するためにビデオデータを復元
    するビットストリーム処理器を含んでおり;前記のベク
    トル処理器は、単一算術またはブール命令を実行できる
    ようにプログラムされ得、前記のビットストリーム処理
    器は、単一算術またはブール命令を実行できるようにプ
    ログラムされ得ないことを特徴とするビデオデータのエ
    ンコーディングまたはデコーディング方法。
JP23539897A 1996-08-19 1997-08-15 ビデオデータ処理方法及び装置 Expired - Fee Related JP4290775B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US69930396A 1996-08-19 1996-08-19
US699,303 1996-08-19
US699,382 1996-08-19
US08/699,382 US6192073B1 (en) 1996-08-19 1996-08-19 Methods and apparatus for processing video data

Publications (2)

Publication Number Publication Date
JPH1093961A true JPH1093961A (ja) 1998-04-10
JP4290775B2 JP4290775B2 (ja) 2009-07-08

Family

ID=27106388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23539897A Expired - Fee Related JP4290775B2 (ja) 1996-08-19 1997-08-15 ビデオデータ処理方法及び装置

Country Status (5)

Country Link
JP (1) JP4290775B2 (ja)
KR (1) KR100262453B1 (ja)
CN (2) CN1523895A (ja)
DE (1) DE19735880A1 (ja)
TW (1) TW436710B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005198289A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd データ処理システムおよびデータ処理方法
US8111753B2 (en) 2003-02-06 2012-02-07 Samsung Electronics Co., Ltd. Video encoding method and video encoder for improving performance
JP2015029309A (ja) * 2008-12-09 2015-02-12 マイクロソフト コーポレーション 単一命令複数ティスパッチ命令を使用するリモートデスクトッププロトコル圧縮アクセラレーション
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards
CN115834975A (zh) * 2022-11-17 2023-03-21 中国联合网络通信集团有限公司 一种视频传输方法、装置、设备及介质
CN115834975B (zh) * 2022-11-17 2024-05-17 中国联合网络通信集团有限公司 一种视频传输方法、装置、设备及介质

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100440408B1 (ko) * 1997-07-29 2005-09-28 삼성전자주식회사 비디오 데이터의 변환방법 및 변환회로
KR19990060505A (ko) * 1997-12-31 1999-07-26 구자홍 멀티프로세싱이 가능한 티브이 시스템
US6459737B1 (en) * 1999-05-07 2002-10-01 Intel Corporation Method and apparatus for avoiding redundant data retrieval during video decoding
KR20030030403A (ko) * 2001-10-11 2003-04-18 (주)씨앤에스 테크놀로지 영상복호기의 매크로블럭 레벨 제어회로
MY134659A (en) * 2002-11-06 2007-12-31 Nokia Corp Picture buffering for prediction references and display
US20040252761A1 (en) * 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
KR100858244B1 (ko) * 2005-01-14 2008-09-12 주식회사 휴맥스 동영상 인코딩/디코딩 장치 및 방법
US8424012B1 (en) 2004-11-15 2013-04-16 Nvidia Corporation Context switching on a video processor having a scalar execution unit and a vector execution unit
JP4906734B2 (ja) * 2004-11-15 2012-03-28 エヌヴィディア コーポレイション ビデオ処理
KR100688092B1 (ko) * 2005-04-13 2007-03-02 한국전자통신연구원 에프에스엠기법에 의한 에이치.264/에이브이씨 동영상 압축 표준의 씨에이브이엘씨 디코더에서의 런비포 복원 방법과 장치 및 그를 기록한 기록매체
KR100720684B1 (ko) * 2005-05-09 2007-05-21 이화여자대학교 산학협력단 균형 이진 검색 트리를 이용한 허프만 디코딩 방법 및디코딩 장치
US20060256854A1 (en) * 2005-05-16 2006-11-16 Hong Jiang Parallel execution of media encoding using multi-threaded single instruction multiple data processing
KR101270925B1 (ko) 2005-05-20 2013-06-07 소니 주식회사 신호 처리 장치
KR100765267B1 (ko) * 2005-06-29 2007-10-09 삼성전자주식회사 전자장치와 그 제어방법 및 이를 포함하는 전자제어시스템
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
KR100732418B1 (ko) * 2006-02-16 2007-06-27 삼성전자주식회사 멀티미디어 기록 재생 장치 및 재생 방법
JP4404065B2 (ja) * 2006-04-12 2010-01-27 ヤマハ株式会社 デジタル信号処理装置
US8155454B2 (en) 2006-07-20 2012-04-10 Qualcomm Incorporated Method and apparatus for encoder assisted post-processing
US8253752B2 (en) 2006-07-20 2012-08-28 Qualcomm Incorporated Method and apparatus for encoder assisted pre-processing
CN101090504B (zh) * 2007-07-20 2010-06-23 清华大学 一种面向视频标准应用的编解码器
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
CN101093474B (zh) * 2007-08-13 2010-04-07 北京天碁科技有限公司 利用矢量处理器实现矩阵转置的方法和处理系统
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8665996B2 (en) 2008-04-01 2014-03-04 Qualcomm Incorporated Efficient parallel sub-packet decoding using multiple decoders
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
KR101641683B1 (ko) * 2008-05-14 2016-07-21 삼성전자주식회사 시분할 방식을 통한 데이터 전송 방법 및 장치, 그리고 시분할 방식에 의한 데이터 수신 방법 및 장치
JP5332369B2 (ja) * 2008-07-18 2013-11-06 ソニー株式会社 画像処理装置及び画像処理方法、並びにコンピュータ・プログラム
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN103914426B (zh) * 2013-01-06 2016-12-28 中兴通讯股份有限公司 一种多线程处理基带信号的方法及装置
CN103957437A (zh) * 2014-04-26 2014-07-30 吉安英佳电子科技有限公司 无线伺服便携式高集成数字多媒体一体机
CN105786224A (zh) * 2016-03-29 2016-07-20 电子科技大学 普适性激光指点仪及操作电脑的方法
CN106940875B (zh) * 2017-02-10 2020-07-24 杭州朔天科技有限公司 灰度图像背景处理建表方法
KR102549503B1 (ko) 2017-12-20 2023-06-30 삼성전자주식회사 저전력 상태에서 이미지들의 출력 타이밍을 동기화하기 위한 디스플레이 구동 회로
KR20210025154A (ko) 2019-08-26 2021-03-09 삼성디스플레이 주식회사 주사 구동부 및 이를 포함하는 표시장치
CN111159076B (zh) * 2019-11-29 2021-04-13 北京空间机电研究所 一种星载can总线主备切换和应答控制方法
WO2021112639A1 (en) 2019-12-05 2021-06-10 Samsung Electronics Co., Ltd. Electronic device performing operation based on user speech in multi device environment and operating method thereof
KR20220030440A (ko) 2020-08-31 2022-03-11 삼성전자주식회사 전자 장치, 시스템-온-칩, 및 그것의 동작 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards
US8111753B2 (en) 2003-02-06 2012-02-07 Samsung Electronics Co., Ltd. Video encoding method and video encoder for improving performance
JP2005198289A (ja) * 2003-12-30 2005-07-21 Samsung Electronics Co Ltd データ処理システムおよびデータ処理方法
JP2015029309A (ja) * 2008-12-09 2015-02-12 マイクロソフト コーポレーション 単一命令複数ティスパッチ命令を使用するリモートデスクトッププロトコル圧縮アクセラレーション
CN115834975A (zh) * 2022-11-17 2023-03-21 中国联合网络通信集团有限公司 一种视频传输方法、装置、设备及介质
CN115834975B (zh) * 2022-11-17 2024-05-17 中国联合网络通信集团有限公司 一种视频传输方法、装置、设备及介质

Also Published As

Publication number Publication date
TW436710B (en) 2001-05-28
KR19980018215A (ko) 1998-06-05
KR100262453B1 (ko) 2000-08-01
CN1523895A (zh) 2004-08-25
JP4290775B2 (ja) 2009-07-08
CN1145362C (zh) 2004-04-07
CN1189058A (zh) 1998-07-29
DE19735880A1 (de) 1998-05-14

Similar Documents

Publication Publication Date Title
JP4290775B2 (ja) ビデオデータ処理方法及び装置
US5510857A (en) Motion estimation coprocessor
US8314808B2 (en) Electronic system and method for selectively allowing access to a shared memory
Lee et al. MediaStation 5000: Integrating video and audio
US5812789A (en) Video and/or audio decompression and/or compression device that shares a memory interface
JPH11508066A (ja) データ・フロー制御および複数の処理装置を有する画像圧縮コプロセッサ
JP2002506251A (ja) 共有メモリを有するマルチプロセッサ装置
JP3302540B2 (ja) ビデオデータをデコードするシステム
Kim et al. A real-time MPEG encoder using a programmable processor
JP4270169B2 (ja) ラインバッファを使わずに画像を次元変換するための方法並びに装置
Lee et al. Real-time MPEG video codec on a single-chip multiprocessor
Lee Architectures and algorithms for MPEG video coding
Kim et al. PC sound and video compression boards for information infrastructure
FR2753031A1 (fr) Procedes et dispositifs pour le traitement de donnees video
CA2323508A1 (en) Apparatus and method for efficient memory utilization in a video decoder
Parsons et al. A Multimedia Workstation for Regional Telemedicine
Lee et al. UWGSP5: a multimedia workstation for medical applications
JPH10303308A (ja) 複数のコアおよびシェルを有する集積回路および対応する階層ファームウェア

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081029

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090402

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120410

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130410

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees