JP2003196229A - バス・インタフェースにおけるデータ転送方法およびバス・インタフェース - Google Patents

バス・インタフェースにおけるデータ転送方法およびバス・インタフェース

Info

Publication number
JP2003196229A
JP2003196229A JP2001400651A JP2001400651A JP2003196229A JP 2003196229 A JP2003196229 A JP 2003196229A JP 2001400651 A JP2001400651 A JP 2001400651A JP 2001400651 A JP2001400651 A JP 2001400651A JP 2003196229 A JP2003196229 A JP 2003196229A
Authority
JP
Japan
Prior art keywords
data
transfer
bus
command
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001400651A
Other languages
English (en)
Inventor
Makoto Toyoshima
誠 豊島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001400651A priority Critical patent/JP2003196229A/ja
Publication of JP2003196229A publication Critical patent/JP2003196229A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 複数の転送データが存在する場合であって
も、その優先度を考慮した適切なデータ転送を行うこと
ができるようにする。 【解決手段】 バス・マスタ10からの制御コマンドに
従って、その制御コマンドで指示されたアプリケーショ
ン20の間でバス10を介して転送データの送受信を行
う。送信側のアプリケーション20から得たステータス
データに含まれる各転送データの優先度の情報に基づい
て、バス・マスタ10が、各転送データの転送の順番を
決定し、その順番に従ってデータ転送が行われるよう、
送信側のアプリケーション20を制御する。これによ
り、複数の転送データが存在する場合であっても、その
優先度を考慮した適切なデータ転送を行うことができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、映像信号、音声信
号、圧縮信号またはデータ信号など、種々のデータの転
送を行うためのバス・インタフェースおよびバス・イン
タフェースにおけるデータ転送方法に関する。
【0002】
【従来の技術】例えばコンピュータにおいては、CPU
(Central Processing Unit)と入出力制御装置などの
各デバイス同士をバスと呼ばれる共通の伝送路で接続
し、そのバスを介して、各デバイス間でデータの伝送が
行われる。バスの代表的なものとしては、PCI(Peri
pheral Component Interconnect)規格のバス(PCI
バス)が知られている。PCIでのデータ転送は、マス
タとターゲットとの間で行われる。一般には、CPUが
マスタとなり、ターゲットとなるデバイスのアドレスを
指定してデータの転送を行う。また、PCIバス上で
は、基本的にCPU経由でデータの転送を行っている。
【0003】
【発明が解決しようとする課題】ところで、送信側のデ
バイスが複数あり、転送するデータも複数ある場合に
は、どのデバイスのデータをどういう順番で転送すれば
良いかが問題となる。この場合、単純に、送信側のデバ
イスにデータが入力された順に転送を行うという方法が
考えられる。しかしながら、必ずしも各データの転送の
優先度は同じわけではなく、中には他のデータよりも優
先的に処理を行いたいデータが存在する場合もある。従
って、このような状況に適切に対応できるデータ転送方
法の開発が望まれる。
【0004】本発明はかかる問題点に鑑みてなされたも
ので、その目的は、複数の転送データが存在する場合で
あっても、その優先度を考慮した適切なデータ転送を行
うことができるバス・インタフェースにおけるデータ転
送方法およびバス・インタフェースを提供することにあ
る。
【0005】
【課題を解決するための手段】本発明によるバス・イン
タフェースにおけるデータ転送方法は、転送データの送
受信を行う複数の転送用デバイスと、複数の転送用デバ
イスの制御を行う制御用デバイスと、制御用デバイスお
よび各転送用デバイス同士を複数の信号線によって相互
接続するバスとを備え、制御用デバイスからの制御コマ
ンドに従って、制御コマンドで指示された複数の転送用
デバイス間でバスを介して転送データの送受信を行うよ
うになされたバス・インタフェースにおけるデータ転送
方法であって、送信側の転送用デバイスにおいて、転送
データに関して転送の優先度を示す情報を生成し、制御
用デバイスが、転送データが複数ある場合に、各転送デ
ータの優先度の情報に基づいて転送の順番を決定し、そ
の順番に従ってデータ転送が行われるよう、送信側の転
送用デバイスを制御するようにしたものである。
【0006】本発明によるバス・インタフェースは、転
送データの送受信を行う複数の転送用デバイスと、複数
の転送用デバイスの制御を行う制御用デバイスと、制御
用デバイスおよび各転送用デバイス同士を複数の信号線
によって相互接続するバスとを備え、制御用デバイスか
らの制御コマンドに従って、制御コマンドで指示された
複数の転送用デバイス間でバスを介して転送データの送
受信を行うようにし、送信側の転送用デバイスにおい
て、転送データに関して転送の優先度を示す情報を生成
し、制御用デバイスが、転送データが複数ある場合に、
各転送データの優先度の情報に基づいて転送の順番を決
定し、その順番に従ってデータ転送が行われるよう、送
信側の転送用デバイスを制御するように構成したもので
ある。
【0007】本発明によるバス・インタフェースにおけ
るデータ転送方法およびバス・インタフェースでは、送
信側の転送用デバイスによって、転送データに関する転
送の優先度の情報が生成される。そして、転送データが
複数ある場合に、制御用デバイスによって、各転送デー
タの優先度の情報に基づいて転送の順番が決定され、そ
の順番に従ってデータ転送が行われるよう、送信側の転
送用デバイスが制御される。
【0008】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0009】本実施の形態に係るバス・インタフェース
は、特に、画像データや通信データなどの大容量で高速
性が要求されるデータを転送するのに適した汎用性のあ
るインタフェースである。このインタフェースの呼称
は、仮に“SMASH Bus”とする(SMASH
は、Sundry Material Associated Shower & Harvester
の略称)。
【0010】<基本構造>図1は、本インタフェースの
標準の構成例(標準バスモード)を示している。本イン
タフェースは、バス30に、複数のインタフェース・デ
バイスを相互接続した構成となっている。各インタフェ
ース・デバイスは、LSI(Large ScaleIntegration)
などにより構成されるものである。各インタフェース・
デバイスは、初期化時に、バス・マスタ(Bus Master)
10またはアプリケーション(Application)20(20-
1,20-2,…20-N;(N=1以上の整数))として設定さ
れる。バス・マスタ10は、バス全体を制御するもので
ある。複数のインタフェース・デバイスのうち、1つの
デバイスのみがこのバス・マスタ10として設定され
る。アプリケーション20は、データの転送を目的とし
たものであり、複数のインタフェース・デバイスのう
ち、バス・マスタ10以外の複数のデバイスが、アプリ
ケーション20として設定される。アプリケーション2
0には、図示しないデータ転送装置またはデータ記録装
置などが接続され、それらの装置との間でデータの入出
力がなされるようになっている。
【0011】バス・マスタ10およびアプリケーション
20は、図示しない外部CPUとの通信を行うための入
出力インタフェースを有している。バス・マスタ10お
よびアプリケーション20となるデバイスのそれぞれに
は、バス・インタフェースの初期化時に、各デバイス同
士を識別するための固有のMID(Main ID)が設定さ
れるようになっている。アプリケーション20には、図
5を用いて後述するように、複数の論理入出力チャンネ
ルの設定が可能となっている。各論理入出力チャンネル
には、その構成に応じて、固有のSID(Sub ID)が設
定されるようになっている。
【0012】図2は、図1に示した標準バスモードを拡
張した構成(拡張バスモード)を示している。この構成
は、標準バスモードのバス構成に、拡張バス40を追加
したものである。この拡張バスモードでは、バス・イン
タフェースの効率を上げるために、次のデータ転送の順
番(優先度)を決めるためのステータス情報をステータ
スデータSDATAとして拡張バス40(の拡張ステー
タスデータ・バス41)で転送するようになっている。
【0013】ここで、本実施の形態において、バス・マ
スタ10が、本発明における「制御用デバイス」の一具
体例に対応する。また、アプリケーション20が、本発
明における「転送用デバイス」の一具体例に対応する。
【0014】図3は、本インタフェースの信号線の一覧
を示している。図3において、「方向」のM(Master)
の欄の“in”は、その信号線上の信号がバス・マスタ
10側に入力されることを示す。また、「方向」のM
(Master)の欄の“out”は、その信号線上の信号が
バス・マスタ10側から出力されるものであることを示
す。“in/out”は、信号の入出力が双方向である
ことを示す。同様に、「方向」のA(Application)の
欄の“in”は、その信号線上の信号がアプリケーショ
ン20側に入力されることを示し、“out”は、その
信号線上の信号がアプリケーション20側から出力され
るものであることを示す。例えば、基準クロック信号C
LKは、バス・マスタ10側から出力(out)され、
アプリケーション20側に入力(in)される。
【0015】標準バスモードでのバス30には、図1お
よび図3に示したように、7種類の信号線が設けられて
いる。すなわち、後述する制御コマンドCMDおよびデ
ータ(DATA)の共通の信号線であるコマンド/デー
タ・バス31と、各制御用の信号CLK,REF,FR
AMEのための3つの信号線と、各割り込み信号TIN
T,RINT,BERR用の3つの信号線との7種類の
信号線が設けられている。コマンド/データ・バス31
は、標準として、32ビット幅のデータバスである。な
お、コマンド/データ・バス31を、16ビット幅のバ
スとして設定することもできる。
【0016】この標準バスモードでの各信号線に入出力
される信号について簡単に説明すると、まず、基準クロ
ック信号CLKは、バス30の基準となるクロックであ
り、バス・マスタ10からアプリケーション20へと出
力されるものである。データ転送用クロック信号REF
は、データ転送のためのクロックであり、このクロック
に同期してコマンド/データ・バス31上にデータが出
力される。これらのクロック信号CLK,REFのクロ
ック周期は、基本的に同じである。フレーム信号FRA
MEは、コマンド/データ・バス31上のデータの有効
出力時間を示すものであり、コマンド/データ・バス3
1がデータ転送に使用されているか否かを確認するため
の信号として用いられる。3種類の割り込み信号TIN
T,RINT,BERRは、緊急時にバス制御を変更し
たい場合などに用いられるものであり、アプリケーショ
ン20からバス・マスタ10へと出力される。このう
ち、送信側割り込み信号TINTは、送信側のアプリケ
ーション20から出力される割り込み信号である。受信
側割り込み信号RINTは、受信側のアプリケーション
20から出力される割り込み信号である。バス・エラー
割り込み信号BERRは、データ転送のエラーを知らせ
るための割り込み信号であり、受信側のアプリケーショ
ン20から出力される。
【0017】一方、拡張バスモードの拡張バス40に
は、図2および図3に示したように、データ転送の優先
度に関連する制御コマンドおよびステータスデータSD
ATAの共通の信号線である拡張ステータスデータ・バ
ス41と、拡張バス40における各制御用の信号SRE
F,SFRAME,SCMDのための3つの信号線との
4種類の信号線が設けられている。
【0018】この拡張バスモードでの各信号線に入出力
される信号について簡単に説明すると、ステータス転送
クロック信号SREFは、拡張バス40におけるデータ
転送のためのクロックであり、このクロックに同期して
拡張ステータスデータ・バス41上にデータが出力され
る。ステータス・フレーム信号SFRAMEは、拡張ス
テータスデータ・バス41上のデータの有効出力時間を
示すものである。ステータス・コマンドSCMDは、拡
張ステータスデータ・バス41上の信号が、ステータス
データSDATAであるか、コマンド信号CMDである
かの判別に用いられる。 <内部構造>
【0019】バス・マスタ10となるデバイスは、図4
(A)に示したように、IC(Integrated Circuit)化さ
れた制御回路部11を備えている。制御回路部11は、
ステータスセンスデータ・メモリ(Status Sense Data
Memory)81、プライオリティセレクト・レジスタ(Pr
iority Select Register)82およびログ・メモリ(Lo
g Memory)83を有している。制御回路部11はまた、
タイムスタンプ・ジェネレータ(Time Stamp Generato
r)84を有している。
【0020】ステータスセンスデータ・メモリ81は、
すべての転送元(送信側)となるアプリケーション20
のMID,SIDの情報を格納するメモリである。MI
D,SIDの情報は、例えば外部CPUによって初期化
設定時に書き込まれる。プライオリティセレクト・レジ
スタ82は、後述するデータ転送の優先順位の情報を保
持するメモリである。ログ・メモリ83は、各種エラー
情報を記録するためのメモリである。エラー情報は、後
述するStatus SenseコマンドおよびActive IDSetコマン
ドなどに対するステータス応答がなかった場合や、後述
するCRCエラーが検出された場合などに記録される。
タイムスタンプ・ジェネレータ84は、例えば32bi
tのカウンタである。
【0021】アプリケーション20となるデバイスは、
図4(B)に示したように、IC化された制御回路部2
1と、転送データが入出力される入出力ポート22とを
備えている。制御回路部21は、バッファ・メモリ(Bu
ffer Memory)91およびPIDメモリ(PID Memory)92
を有している。制御回路部21はまた、タイムスタンプ
・ジェネレータ(Time Stamp Generator)93と、レシ
ーブドPIDメモリ(Recieved PID Memory)94とを有し
ている。
【0022】バッファ・メモリ91は、送受信するパケ
ットデータを一時的に格納するためのメモリである。PI
Dメモリ92は、バッファ・メモリ91に格納されてい
るパケットデータの情報を格納するためのメモリであ
り、例えば、パケットデータのサイズやTime Stamp値な
どの情報を格納する。レシーブドPIDメモリ94は、受
信すべき送信側のアプリケーション20のMID,SI
Dの情報を格納するためのメモリである。受信すべきM
ID,SIDの情報は、例えば初期化設定時に書き込ま
れる。タイムスタンプ・ジェネレータ93は、バス・マ
スタ10のタイムスタンプ・ジェネレータ84と同様、
例えば32bitのカウンタである。タイムスタンプ・
ジェネレータ93で生成されるTime Stamp値(TM)
は、バス転送に要する時間を算出し、各データ間の相対
時間差を演算する場合に用いられる。TMは、リアルタ
イム性が要求される転送データ、例えばMPEG(Movi
ng Picture Experts Group)規格のデータ、特にMPE
G2−TS(Transport Stream)規格のデータを転送す
るときなどに利用される。
【0023】アプリケーション20となる1つのデバイ
スには、入出力ポート22として、物理入出力ポートが
4つ(ポート1〜4)設けられている。また、これら4
つの物理入出力ポートの組み合わせにより、バス幅の異
なる複数パターンの論理入出力チャンネルの設定が可能
となっている。また、各ポートには、論理入出力チャン
ネルの構成に応じて、その識別子となるSIDが設定さ
れる。
【0024】すなわち、図5(A)〜(D)に示したよ
うに例えば4種類の論理入出力チャンネルの設定が可能
である。まず、各物理入出力ポートごとに設定された8
ビットバス幅の4つの論理入出力チャンネルの構成(図
5(A))。次に、2つの物理入出力ポートによって構
成された1つの16ビットバス幅の論理入出力チャンネ
ルと、他の2つの物理入出力ポートのそれぞれによって
構成された2つの8ビットバス幅の論理入出力チャンネ
ルとの構成(図5(B))。また、それぞれが2つの物
理入出力ポートによって構成された2つの16ビットバ
ス幅の論理入出力チャンネルの構成(図5(C))。ま
た、4つの物理入出力ポートによって構成された1つの
32ビットバス幅の論理入出力チャンネルの構成(図5
(D))。それぞれの構成において、SIDは、図示し
たように各論理入出力チャンネルに対応して設定され
る。
【0025】図20および図21は、それぞれアプリケ
ーション20およびバス・マスタ10におけるクロック
関連の処理回路を示している。これらの図では、最終段
または初段の回路のみを簡略化して示す。
【0026】図20(A)に示したように、アプリケー
ション20の送信側(Transmission)の処理回路20T
は、F/F回路(フリップフロップ回路)51,52,
53,54を有している。F/F回路51,52,5
3,54は、それぞれ、FRAME,DATA,TIN
T,BERRの各信号の処理回路として設けられてい
る。F/F回路51,52,53,54のクロック端子
には、基準クロック信号CLKが入力される。送信側の
処理回路20Tは、また、データ転送用クロック信号R
EFを遅延させるためのディレイ回路を有している。
【0027】図20(B)に示したように、アプリケー
ション20の受信側(Reception)の処理回路20R
は、F/F回路55,56,57,58を有している。
F/F回路55,56は、それぞれFRAME,DAT
Aの各信号の処理回路として設けられている。F/F回
路55,56のクロック端子には、データ転送用クロッ
ク信号REFが入力される。F/F回路57,58は、
それぞれRINT,BERRの各信号の処理回路として
設けられている。F/F回路57,58のクロック端子
には、基準クロック信号CLKが入力される。
【0028】図21に示したように、バス・マスタ10
は、F/F回路61〜67を有している。F/F回路6
1,62は、それぞれ、FRAME,DATAの各信号
の最終段の処理回路として設けられている。F/F回路
63,64は、それぞれ、FRAME,DATAの各信
号の入力段の処理回路として設けられている。F/F回
路65,66,67は、それぞれTINT,RINT,
BERRの各信号の処理回路として設けられている。
【0029】<ドライブ特性>従来、PCIなどの一般
的なバスにおけるドライバとして、C−MOS(Comple
mentary Metal-Oxide Semiconductor)やLVTTL
(Low Voltage TTL)などの特性が使用されているが、
これらは、本インタフェースのように高い動作周波数
(100MHZ以上)のバス構成を考えた場合、ドライ
ブ駆動能力や対ノイズ特性の点で不適切である。本イン
タフェースにおいては、100MHZを超えるような動
作周波数を実現するために、バスドライバとしてLVD
S(Low Voltage Differential Signaling)またはBL
VDS(Bus LVDS)を採用している。
【0030】図6に、LVDS,BLVDSおよびC−
MOSの主要な特性を比較して示す。図6に示したよう
に、LVDS,BLVDSは、C−MOSに比べて低電
力、低ノイズであることなどの利点がある。例えばBL
VDSをドライバとして使用することにより、1チャン
ネル当たり最低でも200Mbpsの転送速度が保持で
きる。また、接続できるドライバ数も20個以上にな
る。
【0031】図7(B)は、BLVDSを用いたバスの
構成例を示している。この例では、バス113に一対の
ドライバ111とレシーバ112とが複数接続された構
成となっている。バス113の両端は抵抗RTにより終
端されている。ドライバ111は、図7(A)に示した
ように、入力信号DIN,DEに応じて信号DO+,DO
−を出力する。レシーバ112は、差動入力回路となっ
ている。レシーバ112は、信号RI+,RI−,RE
の入力に応じて信号ROUTを出力する。ドライバ111
およびレシーバ112の出力は、共にトライステート
(3ステート)となっている。図7(B)に示した構成
により、マルチポイント間での双方向のデータ通信が可
能となる。
【0032】<主な仕様>図8(A),(B)に、本イ
ンタフェースの特性および機能を、PCIバスと比較し
て示す。
【0033】図8(A)に示したように、PCIにおい
ては信号の制御線が標準で17本あるのに対し、本イン
タフェースでは、3本のみであり、制御の簡易化が図ら
れている。これは、制御コマンドとデータとを共にコマ
ンド/データ・バス31上に出力するようにしたことに
よる。また、動作周波数(バスクロック)は100MH
z以上であり、PCIに比べて高い周波数となってい
る。転送レートに関しては、3Gbps以上の転送速度
を有している。従って、本インタフェースは、PCIで
標準的に用いられているバス幅32ビット、クロック周
波数33MHZの3倍以上の転送レートを有している。
このスペックには余力があるため、より高速なデータ転
送が可能である。データの転送方式は、PCIではバー
スト転送(複数バイトのデータのブロックを連続して一
気に転送する方法)となっているが、本インタフェース
では、パケット方式となっている。
【0034】本インタフェースは、主として画像ならび
に通信データなどの転送を最適に行うことができるよう
に、図8(B)に示した機能を有している。以下、各機
能の概略を説明する。
【0035】・複数の受信(Multi Cast) 本インタフェースでは、ある時間において、コマンド/
データ・バス31上に存在するデータは、1つの送信側
のアプリケーション20からのデータのみとなってい
る。しかし、その出力データは、複数の受信側のアプリ
ケーション20で受けることができる。そのため、受信
側のアプリケーション20は、必要なデータだけを受け
取り、不必要なデータに関しては無視する機能を持って
いる。受信側のアプリケーション20は、送られてきた
パケットデータに含まれる送信側のアプリケーション2
0のMID,SIDの情報に応じて、必要であればデー
タを受信する。なお、PCIでは、データの送受信がデ
バイス間で1対1となっており、複数の受信には対応し
ていない。
【0036】・多重化(Multiplex) 本インタフェースでは、複数の送信側のアプリケーショ
ン20から出力されたデータを、バス上で時分割的に多
重化して転送することができる。受信側のアプリケーシ
ョン20は、複数の別々の送信側のデータに対して、指
定したデータのみを選択的に受信することができる。
【0037】・複数のデータ幅(Multi Width) 本インタフェースでは、データ幅は決まっておらず、可
変となっている。従って、コマンド/データ・バス31
が例えば32ビット幅の場合、データ幅を8ビットにす
れば、同時に4つのデータが転送できることになる。同
様に、データ幅を16ビットにすれば2つのデータが転
送できる。なお、PCIでは、例えばバス幅が32ビッ
トで、16ビット幅のデータが複数ある場合、複数のデ
ータを同時にまとめて転送することはできない。この場
合、16ビットのデータに「null」のデータを加えて形
式上32ビットのデータにし、複数回データ転送を行う
必要がある。
【0038】・転送の優先指定(Data Priority) 複数のアプリケーション20で送りたいデータがある場
合、各データに優先度を付けることができる。これによ
り、あまり遅れては困るようなデータに対して高い優先
度を与えておけば、そのデータを優先して転送すること
ができる。優先度の情報は、各アプリケーション20に
おいて生成され、それがステータスデータとしてバス・
マスタ10に送られる。優先度の情報は、図27を用い
て後述するように、バッファメモリ91(図4(B))
内におけるデータの格納状況などに基づいて生成され
る。
【0039】・MPEG2−TS対応 本インタフェースは、MPEG規格、特にMPEG2−
TSのデータ転送にも対応している。MPEG2−TS
のデータ転送には、リアルタイム性が要求され、データ
転送の時刻管理を行う必要がある。この時刻管理のため
に、Time Stampの機能が設けられている。
【0040】・伝送エラー対策 例えば、バス・マスタ10からの各種制御コマンド(後
述するStatus SenseコマンドおよびActive ID Setコマ
ンドなど)に対する応答がない場合、ならびにデータ転
送時にCRCエラーが生じた場合などには、再度コマン
ドまたはデータの伝送を試みる処理(リトライ)を行う
機能がある。また、リトライした状況をログ・メモリ8
3に記録する機能がある。なお、PCIでは、伝送エラ
ーの検出とその通知をする機能はあるものの、リトライ
を行う機能はない。
【0041】<パケット構成>本インタフェースでは、
転送時のデータ構成としてパケット形式を採用してお
り、転送速度が許容されれば任意のデータ長を転送可能
となっている。図9(A),(B)は、そのパケット構
成を示している。パケット構成は、コマンド転送の場合
(図9(A))とデータ転送の場合(図9(B))とで
異なっている。
【0042】コマンド転送の場合は、全体として32ビ
ットまたは64ビット構成のパケットとなる。構成要素
としては、制御コマンドが入るCMDフィールドと、制
御コマンドに付随するパラメータが入るPR1,PR2
フィールドとがある。PR2は、64ビット構成の場合
に設けられるものであり、32ビット構成の場合は設け
られない。
【0043】・CMD 制御コマンドは8ビットで定義される。ただし、使用で
きるアドレス範囲はh00〜hBF(0〜1111)ま
でとなっている。hC0〜hFFまでは、データ転送の
パケットに使用される。上位6ビットでコマンドの種類
を表し、下位2ビットは、コマンドを実行するデバイス
の範囲を示している。下位2ビットの意味は以下のとお
りである。 b00:すべてのデバイスとポートに対して実行する。 b01:PR1の中にあるMIDで指定されたデバイス
のみに実行する。 b02:PR1の中にあるMIDで指定されたデバイス
のSIDで指定されたポートに対して実行する。 b03:未定義 ・PR1,PR2 コマンドに付随するパラメータ。PR1は24ビット、
PR2は32ビットで構成されている。PR1の基本構
成は、上位7ビットがMIDを、5ビットがSIDを、
下位12ビットが実質的なパラメータを示している。た
だし、PR1,PR2は、コマンドの種類によって内容
が変わる。
【0044】データ転送の場合のパケット構成は、大ま
かに分類して、パケットの種類を示すheader部分と、デ
ータが格納されるpayload部分と、パケットが正常に転
送されたか否かを確認するためのCRC部分とに分かれ
ている。
【0045】header部分は、以下で説明するように、6
4ビット構成の場合には、TMフィールドが追加され
る。
【0046】・header CD:Commmand/Data(2bit)……パケットがコマ
ンド転送かデータ転送かを判断するためのコード。デー
タ転送の場合は、b11が割り当てられている。 MD:Header Mode(2bit)……パケットのヘッダ
フォーマットのモードを決めるコード。以下の4つのコ
ードがある。 0:LN+MID+SID(32bit)……最小ヘッ
ダフォーマット。転送に必要な最低限のパラメータが設
定される。 1:LN+MID+SID+TM(64bit)……最
小ヘッダフォーマットにTMが追加された追加ヘッダフ
ォーマット。MPEG2−TSのデータなど、入力と出
力の同期を取りたいときなどに使用する。 2,3:未定義 LN:Length of Payload(13bit)……payload部
分の長さを設定する。単位はバイト単位で0〜8111
1の値まで設定できる。 MID:Main ID(7bit)……このデータを出力し
たバス上に接続されているデバイスのMain IDを設定す
る。これにより、どのデバイスからのデータであるかを
判断する。 SID:Sub ID(5bit)……このデータを出力した
バス上に接続されているデバイスのSub IDを設定する。
Main IDと合わせることにより、どのデバイスのどのポ
ートからのデータであるかを判断する。 TM:Time Stamp(32bit)……基本的には、MP
EG2−TSのデータを転送するときに使用される。Ti
me Stampは、システムにおいて同時刻で同じ値を示すも
ので、データが、バス30に接続されているデバイスに
入力された時間を設定する。MPEG2−TSに用いら
れる場合は、MPEG2−TSのPCR(program cloc
k reference)のbaseの下位23ビットとextensionの9
ビットを設定する。
【0047】・payload 転送するデータを格納するための領域。データの長さは
ヘッダのLNで指定される。8ビットを基本単位として
いるが、例えば図10および図11に示したようにデー
タの構成は任意に設定できる。最後のデータがバス幅に
対して足りない長さである場合には、空いている部分に
‘0’を入れて転送する。
【0048】・CRC 正常にデータ転送が行われたか否かを確認するためのデ
ータである。CRCにより、伝送上のビット・エラーを
検出できる。データの生成方法は、8ビット単位で行
う。コマンド/データ・バス31として32ビット幅の
バスを使用している場合は、4つのCRCのデータが生
成され、それぞれ独立している。そのため、CRCの長
さはバス幅で決まり、8ビット単位での拡張ができるよ
うな構成になっている。
【0049】CRCの計算方法は、以下のように、式
(1)で表される生成多項式G(X)を用いて、[数
1]で示したように行う。payloadで‘0’が入った場
合は、それも含めて計算を行う。
【0050】 G(X)=X8+X6+X5+X3+1 ……(1)
【0051】
【数1】
【0052】図12は、CRCの計算を行うための基本
回路を示している。この基本回路は、マトリクス演算回
路71とシフトレジスタ72とを備えて構成されてい
る。シフトレジスタ72の初期状態は、hFFである。
マトリクス演算回路71から出力されたデータTは、シ
フトレジスタ72を介してOD(current data)として
出力される。ODは、マトリクス演算回路71にも出力
される。マトリクス演算回路71では、ID(input da
ta)とODとに対して[数1]で示したような所定のマ
トリクス演算を施す。
【0053】ところで、本インタフェースにおいて、コ
マンド/データ・バス31のバス幅は、標準で32ビッ
トであるが、16ビット幅に設定することも可能であ
る。データ転送の場合のパケット構成は、コマンド/デ
ータ・バス31のバス幅とpayloadに格納されるデータ
の長さとに応じた構造となる。
【0054】図10(A)〜図10(D)は、バス幅を
32ビットに設定してデータ転送を行う場合のパケット
構造の例である。このうち、図10(A)は、payload
に8ビット幅のデータを16バイト格納して転送する場
合のデータの並びを示している。D1〜D16が、payl
oadに格納されるデータである。C1〜C4は、CRC
のデータを示す。図10(B)は、payloadに8つの1
6ビットデータ(D1〜D8)を格納して転送する場合
のデータの並びを示している。図10(C)は、payloa
dに5つの24ビットデータ(D1〜D5)を格納して
転送する場合のデータの並びを示している。この場合、
最後のデータD5がバス幅に対して足りない長さとなる
ので、空き部分に‘0’が入る。図10(D)は、payl
oadに4つの32ビットデータ(D1〜D4)を格納し
て転送する場合のデータの並びを示している。
【0055】図11(A)〜図11(D)は、バス幅を
16ビットに設定してデータ転送を行う場合のパケット
構造の例である。このうち、図11(A)は、payload
に16個の8ビットデータ(D1〜D16)を格納して
転送する場合のデータの並びを示している。図11
(B)は、payloadに8つの16ビットデータ(D1〜
D8)を格納して転送する場合のデータの並びを示して
いる。図11(C)は、payloadに5つの24ビットデ
ータ(D1〜D5)を格納して転送する場合のデータの
並びを示している。この場合にも、図10(C)の場合
と同様、最後のデータD5の後に‘0’が入る。図11
(D)は、payloadに4つの32ビットデータ(D1〜
D4)を格納して転送する場合のデータの並びを示して
いる。
【0056】図10(A)〜図10(D)および図11
(A)〜図11(D)に示したパケット構造では、1つ
のパケット内に複数のデータが格納された構造となって
いるが、これら複数のデータは、同一種類のデータを分
割したものであっても良いし、それぞれが異なる種類の
データであっても良い。このように、データ幅の設定を
可変にし、1つのパケット内に同一または複数種類のデ
ータを含めることで、同一または複数種類のデータを、
複数個同時にバス上に出力することが可能になる。
【0057】また、図10(A)〜図10(D)および
図11(A)〜図11(D)に示したパケット構造は、
すべてバッファ・メモリ91を利用して構築しても良い
し、論理入出力チャンネルの設定に対応付けて構築する
ようにしても良い。例えば、図5(A)に示したように
論理入出力チャンネルの設定がなされていれば、図10
(A)に示したパケット構造を簡単に実現できる。また
例えば、図5(C)に示したように論理入出力チャンネ
ルの設定がなされていれば、図10(B)に示したパケ
ット構造を簡単に実現できる。このように、論理入出力
チャンネルの設定に応じて1つのパケット内に同一また
は複数種類のデータを含めることができる。
【0058】<コマンドの概要>本インタフェースの制
御は、バス・マスタ10となるデバイスが制御コマンド
を送り、各アプリケーション20がそれを受け取り解釈
・実行することで行われる。基本的な制御コマンドは、
図13に示したとおりである。図13には、基本的な制
御コマンドのみを示しているが、空いているコマンドの
コードには他のものを定義することができる。
【0059】図13に示したコマンドを大まかにグルー
プ分けすると、初期化の場合に使用するコマンドとデー
タ転送のときに使用されていくコマンドとに分かれる。
Initialize&Bus Control,PCR Control,Priority,Int
erruptのコマンドグループは、初期化の場合に使用す
る。また、Data Control,Statusは、データ転送のとき
に頻繁に使用する。
【0060】次に、以上のように構成されたバス・イン
タフェースの動作を説明する。
【0061】<バス全体の基本動作>まず、図1の標準
バスモードの接続例での基本的な動作について説明す
る。バス・マスタ10からは、本インタフェース全体の
基準となる基準クロック信号CLKがそれ用の信号線に
出力されると共に、その基準クロック信号CLKに同期
したバス制御コマンドがコマンド/データ・バス31上
に出力される。アプリケーション20側は、入力された
基準クロック信号CLKを基に、バス・マスタ10から
出力された制御コマンドを取り込み、そのコマンドに応
じた処理を行う。制御コマンドの中には、アプリケーシ
ョン20側からコマンド/データ・バス31上にデータ
を出力することを要求するものがある。その場合は、デ
ータ転送用クロック信号REFに同期して、アプリケー
ション20からコマンド/データ・バス31上にデータ
が出力される。
【0062】バス・マスタ10は、常時バス30の占有
状態などを監視しており、コマンド/データ・バス31
上でのデータ転送が終了しているか否かを確認して、制
御コマンドの出力タイミングを見計らっている。この確
認は、フレーム信号FRAMEを確認することにより行
う。また、緊急時にバス制御を変更したい場合などに
は、アプリケーション20側から割り込み信号TIN
T,RINT,BERRが出力される。この場合、バス
・マスタ10は、割り込み信号TINT,RINT,B
ERRに応じたバス制御を行う。
【0063】図2の拡張バスモードでは、さらに、バス
30の効率を上げるために、次のデータ転送の順番を決
めるためのステータスデータSDATAが拡張ステータ
スデータ・バス41上に出力される。この場合、バス・
マスタ10は、送信側のアプリケーション20のステー
タスを読み込むためのコマンドを自動的に送出する。送
信側のアプリケーション20は、バス・マスタ10から
のコマンドに応答して、ステータスを拡張ステータスデ
ータ・バス41上に送出する。バス・マスタ10は、拡
張ステータスデータ・バス41を介して読み込んだ送信
側のアプリケーション20のステータスから、優先度の
情報を調べる。バス・マスタ10は、最も優先度の高い
送信側のアプリケーション20からデータ転送を開始さ
せるために、そのMID,SIDを指定したActive ID
Setコマンドをバス上に送出する。指定された送信側の
アプリケーション20は、Active ID Setコマンドに応
答して、データをコマンド/データ・バス31上に出力
し始める。
【0064】ここで、本インタフェースの基本的な動作
のアルゴリズムをまとめると、次のようになる。
【0065】動作1:各デバイスのリセット直後は、す
べての信号出力は停止している。 動作2:バス・マスタ10がコマンド信号CMDを出力
する。 動作3:対応したアプリケーション20がデータを出力
する。もし、データがない場合は動作4に進む。 動作4:データの出力が終わったときには、動作2に戻
る。
【0066】この基本動作は、3種類の割り込み信号T
INT,RINT,BERRがアクティブになるか、バ
ス・マスタ10を強制的にとめる以外に変わらない。
【0067】<タイミングチャート>次に、図14〜図
18のタイミングチャートを参照して、バス・マスタ1
0からのコマンド信号CMDとそれに対するデータ(D
ATA,SDATA)の出力タイミングについて説明す
る。本インタフェースでは、データ転送に関し、バスを
高速に使用するタイプ1(図14、図15)と安全性を
考えたタイプ2(図16、図17)との2種類の転送方
式がある。また、拡張バスモードにしたときのステータ
ス転送に関しては、1種類(図18)のみとなる。
【0068】図14の例は、コマンド信号CMDに対し
て出力データが存在する場合である。最初のコマンド信
号CMD1(図14(D))がコマンド/データ・バス
31を介してバス・マスタ10から送られてきた場合、
それに対するデータDATA1(図14(D))は1ク
ロックでアプリケーション20から送られる。DATA
1は、例えば、標準的なバス幅である32ビット幅なら
32ビット以下のデータ長ということになる。この最初
のコマンド信号CMD1からDATA1までは、コマン
ド/データ・バス31に出力するデバイスがバス・マス
タ10からアプリケーション20に切り替わるため、す
なわち、コマンド信号CMD1はバス・マスタ10から
出力され、DATA1はアプリケーション20から出力
されるため、バスの切り替えの時間のために基準クロッ
ク信号CLK(図14(A))で最低1クロックの間隔
を空ける必要がある。同様に、最初のDATA1から次
のコマンド信号CMD2までも最低1クロックの間隔を
空ける必要がある。
【0069】コマンド信号CMD1およびDATA1に
対応して、データ転送用クロック信号REF(図14
(B))は、一度ロー(L)レベルになってからハイ
(H)レベルになる。また、データフレーム信号FRA
ME(図14(C))は、コマンド信号CMD1および
DATA1が出力されている期間ではローレベルにな
る。データ転送用クロック信号REFならびにデータフ
レーム信号FRAMEは、信号を出力したデバイスから
出力される。すなわち、バス・マスタ10は、コマンド
信号CMD1と共に、信号REF,FRAMEを出力す
る。また、アプリケーション20は、DATA1と共
に、信号REF,FRAMEを出力する。従って、各信
号REF,FRAME,DATAを、同時刻に出力して
いるデバイス(アプリケーション20)は一つであると
いうことになる。
【0070】図14において、2番目のコマンド信号C
MD2は、データ転送を1クロックでは送ることができ
なかったときの場合を示している。コマンド信号CMD
2とそれに対する最初のデータDATA2との間には、
バスの切り替わり時間のため1クロック以上の間隔を空
ける必要がある。ただし、この場合には、各データDA
TA2〜DATA7の間には出力デバイスの切り替えは
ないため、アプリケーション20は連続してDATAの
出力が可能となる。データ転送用クロック信号REFな
らびにデータフレーム信号FRAMEに関しては、DA
TAの転送数が変化しても動作は変わらず、1クロック
単位でDATAに対して同じ動作を行う。
【0071】図15の例は、コマンド信号CMDを連続
して送る場合である。コマンド信号CMDはバス・マス
タ10しか出力しないため、連続して送ることができ
る。データ転送用クロック信号REFならびにデータフ
レーム信号FRAMEに関しては、図14の例と同様に
動作する。すなわち、この例では、コマンド信号CMD
が出力されている期間アクティブ(ローレベル)となる
データフレーム信号FRAMEがバス・マスタ10から
出力される。
【0072】図16および図17は、図14および図1
5のタイプ1に比べて若干データ転送のスピードは落ち
るが、バスの転送を確実にするための転送方式である。
図16は、図14の例と同様、コマンド信号CMDに対
してDATAが存在する場合であり、図17は、図15
の例と同様、コマンド信号CMDを連続して送る場合で
ある。この方式では、図14および図15のタイプ1に
比べて、コマンド信号CMDならびにDATAの転送の
最後の部分に、1クロック分のデータフレーム信号FR
AMEがハイレベルになるサイクルがある。このモード
では、データフレーム信号FRAMEがハイレベルで基
準クロック信号CLKが供給されるときは、バス・イン
タフェースの初期化を行うようになっている。これによ
り、ノイズなどでバスの転送が一時的に乱れても、この
パケットのみデータの転送の誤りが止まって、次の正常
な処理を早急に行うことが可能となる。
【0073】図18は、拡張バスモード(図2)でのス
テータス転送時のタイミングを示している。拡張バスモ
ードでは、できるだけ高速な転送を心がけるために標準
バスのタイプ2(図16、図17)のものはない。拡張
バスモードでは、ステータスデータSDATAを非常に
高速に転送するため、一度間違って転送されても再度読
み込むことにより正確なステータスを読むことが可能と
なる。
【0074】拡張バスモードにおいて、バス・マスタ1
0からのコマンド信号CMDとそれに応答するステータ
スデータSDATA(図18(E))は、基準クロック
信号CLK(図18(A))の1クロック単位で送られ
る。コマンド信号CMDからステータスデータSDAT
Aまでの時間は、最低1クロック以上必要となる。ステ
ータス転送クロック信号SREF(図18(B))およ
びステータス・フレーム信号SFRAME(図18
(C))は、DATA転送時におけるデータ転送用クロ
ック信号REFおよびデータフレーム信号FRAME
(図14(B),(C))の場合と同様、コマンド信号
CMDおよびステータスデータSDATAが出力されて
いる期間ではローレベルになる。
【0075】ステータス・コマンドSCMD(図18
(D))は、拡張ステータスデータ・バス41上にコマ
ンド信号CMDが出力されている場合にはハイレベルと
なり、ステータスデータSDATAが出力されている場
合にはローレベルとなる。なお、他の信号の出力タイミ
ングについては、図14および図15に示した標準バス
モードと同様である。
【0076】<クロック関連の動作>次に、クロック関
連の処理について説明する。本インタフェースは、全体
としては基準クロック信号CLKを基に動作している。
このとき、データの転送が低速である場合には、基準ク
ロック信号CLKとコマンド/データ・バス31上に出
力されるデータとの遅延の差は無視できる状態であると
みなされる。しかしながら、高速な転送である場合に
は、この遅延差は無視できなくなり、検討が必要になっ
てくる。
【0077】まず、制御コマンドCMDに関してである
が、これはバス・マスタ10から出力される。また、基
準クロック信号CLKも同じバス・マスタ10から出力
されるため、基準クロック信号CLKの信号線とコマン
ド/データ・バス31とを平行に配線していけば、各ア
プリケーション20に対しては基準クロック信号CLK
とコマンドとが伝わっていく遅延量は、ほぼ等しくなっ
てくる。このため、制御コマンドCMDに関しては、基
準クロック信号CLKを基準にしてアプリケーション2
0に取り込んでも問題が生じないことになる。
【0078】一方、アプリケーション20から出力され
るデータに関しては、どのアプリケーション20がデー
タを出力するかによって、バス・マスタ10ならびに他
のアプリケーション20における、基準クロック信号C
LKとデータとの遅延量が違ってきてしまう。これは、
基準クロック信号CLKがバス・マスタ10から出力さ
れるのに対して、コマンド/データ・バス31上のデー
タが任意のアプリケーション20から出力されてしまう
ためである。このため、バスの物理的長さによっては基
準クロック信号CLKの1周期以上のデータ遅延が生じ
てしまう場合も考えられる。本インタフェースでは、こ
れを解決するために、任意のアプリケーション20から
出力されるデータに同期したデータ転送用のクロック信
号REFを作っている。これにより、コマンド/データ
・バス31上のデータに関してはデータ転送用クロック
信号REFを基準に取り込めば遅延に関する問題はなく
なる。
【0079】以上のコマンド/データ・バス31上に出
力される制御コマンドCMDおよびデータと、それを取
り込むための基準となるクロック信号CLK,REFと
の関係を、図19にまとめて示す。
【0080】次に、図20および図21を参照して、各
クロック信号の作用について説明する。
【0081】図20(A)に示したように、アプリケー
ション20の送信側(Transmission)の回路20Tにお
いては、入力された基準クロック信号CLKを、DAT
Aならびにフレーム信号FRAMEの最終段のF/F回
路51,52のクロック信号とする。データ転送用クロ
ック信号REFは、基準クロック信号CLKにディレイ
回路を通して作られる。このディレイ回路は、DATA
とFRAMEの出力端子までの遅延量とREFの遅延量
とを合わせるためのものである。
【0082】図20(B)に示したように、アプリケー
ション20の受信側(Reception)の回路20Rにおい
ては、入力されたデータ転送用クロック信号REFを、
初段のF/F回路55,56のクロック信号とする。F
/F回路によりセットアップ時間のホールド時間を満足
させる若干の調整が必要になってくるが、この時間は固
定量であるため一定のディレイ回路で調整が可能であ
る。
【0083】図21に示したように、バス・マスタ10
においては、内部で発生した基準クロック信号CLK
を、DATAとフレーム信号FRAMEの最終段のF/
F回路61,62のクロック信号とする。また、バス・
マスタ10のデバイスをアプリケーション20として使
用する場合は、Receptionの回路が追加される。
【0084】割り込み信号TINT,RINT,BER
Rに関しては、基準クロック信号CLKと同期を取らな
くても良いため、図20(A),(B)に示したよう
に、アプリケーション20では単純に、入力された基準
クロック信号CLKを、最終段のF/F回路53,5
4,57,58のクロック信号として出力する。バス・
マスタ10においては、図21に示したように、内部で
発生した基準クロック信号CLKを、初段のF/F回路
65,66,67のクロック信号として入力信号をラッ
チする。
【0085】<各機能によるデータ転送の例>次に、図
22〜図24を参照して、図8(B)に示したMulti Wi
dth(複数のデータ幅)、Multi Cast(複数の受信)、M
ultiplex(多重化)の各機能を用いたデータ転送の例に
ついて説明する。ここでは、バス30に、1つのバス・
マスタ10と、4つのアプリケーション20-1,20-2,20
-3,20-4とが接続された構成の場合を例に説明する。バ
ス・マスタ10となるデバイスのMID(Main ID)は
0とする。アプリケーション20-1,20-2,20-3,20-4と
なるデバイスのMIDはそれぞれ、MID1,MID
2,MID3,MID4とする。各アプリケーション20
-1,20-2,20-3,20-4は、複数の入出力ポートを有して
いる。各アプリケーション20-1,20-2,20-3,20-4の入
出力ポートには、その論理入出力チャンネルの設定(図
5参照)に応じてSIDが付されている。バス30に接
続しているデバイスの指定はMIDによって行うことが
できる。また、ポートの指定はSIDによって行うこと
ができる。
【0086】図22は、Multi Widthの機能を用いたデ
ータ転送の例である。この例では、MID1のアプリケ
ーション20-1のSID0のポートから出力されたデータ
D1が、MID3のアプリケーション20-3のSID0の
ポートへと転送される。また、アプリケーション20-1の
SID1のポートから出力されたデータD2が、MID
4のアプリケーション20-4のSID0のポートへと転送
される。また、MID2のアプリケーション20-2のSI
D0のポートから出力されたデータD3が、MID3の
アプリケーション20-3のSID2のポートへと転送され
る。また、アプリケーション20-2のSID2のポートか
ら出力されたデータD4が、MID4のアプリケーショ
ン20-4のSID3のポートへと転送される。また、MI
D4のアプリケーション20-4のSID2のポートから出
力されたデータD5が、MID1のアプリケーション20
-1のSID3のポートへと転送される。
【0087】図22の例において、アプリケーション20
-1からは、2つのデータD1,D2が出力されている
が、バス30のコマンド/データ・バス31が32ビッ
ト幅であれば、データD1,D2のデータ幅をそれぞれ
例えば16ビットにすることにより、これらの2つのデ
ータD1,D2を1つのパケットデータとして同時にバ
ス上に出力することができる。これにより、バス幅を有
効利用することができる。アプリケーション20-2から出
力されるデータD3,D4についても同様である。
【0088】図23は、Multi Castの機能を用いたデー
タ転送の例である。この例では、MID1のアプリケー
ション20-1のSID1のポートから出力されたデータD
11が、MID3のアプリケーション20-3のSID1の
ポートとMID4のアプリケーション20-4のSID3の
ポートとに転送される。また、MID2のアプリケーシ
ョン20-2のSID0のポートから出力されたデータD1
2が、MID3のアプリケーション20-3のSID2のポ
ートとMID4のアプリケーション20-4のSID0のポ
ートとに転送される。また、アプリケーション20-2のS
ID2のポートから出力されたデータD13が、MID
3のアプリケーション20-3のSID0のポートとMID
4のアプリケーション20-4のSID2のポートとに転送
される。
【0089】このように、Multi Castの機能により、1
つのデバイスから出力されたデータを、複数のデバイス
で受信することができる。この場合、送信側のデバイス
は、転送データに自身のIDの情報を付加したパケット
データを送信する。受信側のデバイスは、送られてきた
パケットデータに含まれる送信側のデバイスのMID,
SIDの情報に応じて、必要であればデータを受信す
る。不必要であればそのデータに関しては無視する。
【0090】図24は、Multiplexの機能を用いたデー
タ転送の例である。この例では、MID3のアプリケー
ション20-3のSID2のポートに、MID1のアプリケ
ーション20-1のSID0のポートから出力されたデータ
D11と、アプリケーション20-1のSID1のポートか
ら出力されたデータD12と、MID2のアプリケーシ
ョン20-2のSID2のポートから出力されたデータD2
2とがバス上多重化されて転送される。また、MID4
のアプリケーション20-4のSID0のポートに、MID
1のアプリケーション20-1のSID2のポートから出力
されたデータD13と、MID2のアプリケーション20
-2のSID0のポートから出力されたデータD21とが
バス上で多重化されて転送される。また、MID4のア
プリケーション20-4のSID3のポートに、MID1の
アプリケーション20-1のSID0のポートから出力され
たデータD11と、アプリケーション20-1のSID1の
ポートから出力されたデータD12と、MID2のアプ
リケーション20-2のSID2のポートから出力されたデ
ータD22と、アプリケーション20-2のSID3のポー
トから出力されたデータD23とが多重化されて転送さ
れる。
【0091】このように、Multiplexの機能により、複
数のデータを、バス上で時分割的に多重化し、1または
複数のデバイスで受信することができる。受信側のデバ
イスは、多重化されたデータの各パケットデータに含ま
れる送信側のデバイスのMID,SIDの情報を見て、
必要であればデータを受信する。不必要であればそのデ
ータに関しては無視する。複数のデータは、バス・マス
タ10の制御により、優先度を示すステータス情報に基
づいて、時分割的に各送信側のデバイスから出力され
る。このとき、各送信側のデバイスは、転送するデータ
と共に、そのデータを出力していることを示すフレーム
信号FRAMEを同時に出力する。バス・マスタ10
は、フレーム信号FRAMEに基づいて、バス30の占
有状態を監視すると共に、バスの占有状態に応じて制御
コマンドを出力し、バス上で転送データが時分割的に多
重化されるよう、各送信側のデバイスの制御を行う。
【0092】<バス初期化の手順>次に、図25の流れ
図に従って、本インタフェースの初期化動作について説
明する。この初期化動作は原則として電源投入直後1回
のみ実施される。
【0093】本インタフェースに電源が投入されると、
まず、パワーオンリセット(ID取得)の処理が行われ
る(ステップS1)。電源投入後、各インタフェース・
デバイスにはリセット信号が入り、各デバイスは初期状
態になる。このとき、各デバイスのID(MID)が設
定される。
【0094】次に、マスタ取得処理が行われる(ステッ
プS2)。すなわち、外部CPUによって、バス30に
接続されているデバイスの一つが、バス・マスタ10と
して設定される。次に、バスの転送方式の設定処理が行
われる(ステップS3)。バス・インタフェースの初期
化のためにバス・マスタ10からResetコマンドが送ら
れる場合がある。また、その次に、Transfer Protocol
Setコマンドを送り、データ転送方式の決定を行う場合
がある。
【0095】さらに、MPEG2−TS使用時には、シ
ステムPCRの設定が行われる(ステップS4)。シス
テム全体のPCRを合わせるために、PCR,Time Stamp
ならびにTime Stamp Offsetを設定する。
【0096】<データ転送の手順>図26は、データ転
送の基本的な手順の一例を示している。最初に、バス・
マスタ10は、送信側のデータの存在を調べるために、
すべての送信側のアプリケーション20のステータスを
読み込み、そのステータスを調べる処理を行う。この処
理を行うため、バス・マスタ10は、まず、送信側のア
プリケーション20のステータスを読み込むためのコマ
ンド(Status Senseコマンド)を自動的にバス上に送出
する(ステップS11)。送信側のアプリケーション2
0は、このバス・マスタ10からのコマンドに応答し
て、ステータスをバス30(のコマンド/データ・バス
31または拡張ステータスデータ・バス41)に送る。
このステータスには、データの優先度を示す情報が入っ
ている。
【0097】バス・マスタ10は、送信側のアプリケー
ション20から読み込んだステータスに含まれる優先度
の情報を調べる(ステップS12)。そして、バス・マ
スタ10は、最も優先度の高い送信側のアプリケーショ
ン20からデータ転送を開始させるために、そのMI
D,SIDを指定したActive ID Setコマンドをバス上
に送出する。指定されたMID,SIDを持った送信側
のアプリケーション20は、データをコマンド/データ
・バス31に出力し始める(ステップS13)。
【0098】受信側のアプリケーション20は、送信側
のアプリケーション20から出力されたデータを内部に
取り込む。このとき、受信側のアプリケーション20
は、パケット最後部のCRCデータをチェックすること
により、データを正常に受信できたか否かをチェックす
る(ステップS14)。CRCデータが正常な場合(ス
テップS14;Y)、1回目のデータ転送の処理は終了
するが、送信側のアプリケーション20は、次のデータ
転送に備え、Active ID Setコマンドを待つ。また、バ
ス・マスタ10は、次のデータ転送を行うために、送信
側のステータスを調べる処理を行う。
【0099】一方、エラーを検出した場合(ステップS
14;N)は、受信側のアプリケーション20は、エラ
ー割り込み信号BERRをアクティブにしてバス・マス
タ10にその旨を通知する。バス・マスタ10は、エラ
ー割り込み信号BERRを検出すると、前もって設定さ
れているエラー復帰動作を開始する(ステップS1
5)。このとき、場合によって再度データの読み込みが
行われる。また、バス・マスタ10は、送信側割り込み
信号TINTを検出した場合、送信側のアプリケーショ
ン20のステータスを読み出し、ステップS12の処理
に進む。
【0100】以上のように、基本的には、バス・マスタ
10が送信側のアプリケーション20のステータスを読
み込んで優先度を調べ、データの転送を行わせる、とい
う処理を繰り返す。これにより、順次データの転送が行
われる。しかしながら、より高速なデータ転送を行う場
合は、ステータスを読み込む時間が惜しまれる場合があ
る。その場合は、ステータスの情報を読み込んだものに
対して、最優先のものだけではなく、2番目のもの、あ
るいは3番目のものについても調べておき、それらを順
番に転送することによりステータスの読み込みの回数を
減らすことができる。この場合、転送に問題が生じるエ
ラーが発生したときには、TINT,RINTならびに
BERRの割り込み信号により制御することになる。
【0101】<優先度に関するステータスデータ>転送
データの優先度を決定するのは、各データのステータス
を基に行う。ステータスは、例えば、以下のようなDevi
ce Status,TINT,Buffer Over,Priority Status
およびData Existを含んで構成されている。
【0102】・Device Status ……デバイスの有無を
確認する。 ・TINT ……転送側の割り込みが発生したかどうか
の状態を示す。 ・Buffer Over(BO) ……バッファにデータが入り
きれなくなったかどうかの状態を示す。 ・Buffer Full(BF) ……バッファが満杯かどうか
の状態を示す。 ・Priority Status ……データの優先度を示す。 ・Data Exist(DE) ……データがバッファにあるか
どうかの状態を示す。
【0103】Device Statusは、送られてきたステータ
スの有効性を示す。優先度としては、TINTが最も優
先度が高く、次にBuffer Over、Buffer Fullの順となっ
ている。Data Existでデータがあった場合、Priority S
tatusの優先度を比較して、優先度の高いものを先に転
送する。
【0104】図27は、送信側のアプリケーション20
において行われる、上述の優先度を示すステータスの生
成方法の例を示している。Data Existは、OR回路10
1にバッファ・メモリ91(図4(B))内のパケット
数を示すビットデータを入力することにより生成され
る。Data Existは、例えば1ビットのデータであり、フ
ラグの状態は、データが存在すれば‘1’、データが存
在しなければ‘0’となる。
【0105】Priorityは、図示しない外部CPUまたは
バス制御コマンドによって前もって設定された例えば8
ビットのPriorityとバッファ・メモリ91内に格納され
たパケット数とを、乗算回路102によって乗算し、そ
の結果得られた例えば下位8ビットのデータとする。
【0106】Buffer Fullは、前もって設定されたValue
of Buffer Fullの値とバッファ・メモリ91内に格納
されたパケット数とを、比較回路CMP2によって比較
することにより得られる。Buffer Fullは、例えば1ビ
ットのデータであり、フラグの状態は、バッファが満杯
とみなされれば‘1’、満杯でなければ‘0’となる。
Buffer Overも、Buffer Fullと同様、例えば1ビットの
データであり、前もって設定されたValue of Buffer Ov
erの値とバッファ・メモリ91内に格納されたパケット
数とを、比較回路CMP1によって比較することにより
得られる。
【0107】TINTは、前もって設定されたTINT
条件(割り込み条件)に基づいて生成される。TINT
は、例えば1ビットのデータであり、フラグの状態は、
割り込みがあれば‘1’、割り込みがなければ‘0’と
なる。
【0108】図27に示したステータス110のような
構成にすることで、バス・マスタ10において、各送信
側のアプリケーション20から得た複数のステータスデ
ータの比較を行う場合、TINT,Buffer Over,Prior
ity StatusおよびData Existのすべてのビットをまとめ
て比較すれば良いことになる。これにより、バス・マス
タ10における比較用の回路の構成が非常に簡単にな
る。なお、あるステータスのすべてのビット値が‘0’
である場合は、データがないと判断できる。
【0109】<個々の動作>次に、バス・マスタ10お
よびアプリケーション20の個々の動作についてより具
体的に説明する。
【0110】[バス・マスタの動作] <Status Senseコマンドの送出>図28は、バス・マス
タ10によるStatus Senseコマンドの送出動作を示して
いる。バス・マスタ10は、送信側(データの転送元)
のすべてのアプリケーション20に対するStatus Sense
コマンドを、コマンド/データ・バス31上に送出する
(ステップS21)。拡張バスモードの場合には、拡張
ステータスデータ・バス41上に送出する。送信側のア
プリケーション20のMID,SIDの情報は、初期化
設定時にバス・マスタ10内の所定のメモリ(ステータ
スセンスデータ・メモリ81)に格納されている。
【0111】バス・マスタ10は、送信側のアプリケー
ション20からステータスの応答が得られれば(ステッ
プS22;Y)、この処理を終了する。一方、ステータ
スの応答が得られなかった場合(ステップS22;N)
には、バス・マスタ10は、あらかじめ設定された回数
だけ、Status Senseコマンドの送出処理を繰り返す処理
を行う。すなわち、設定された回数内であれば(ステッ
プS23;N)、ステップS21の処理に戻る。設定さ
れた回数を超えていれば(ステップS23;Y)、ステ
ータスの読み込みに失敗したとみなし(ステップS2
4)、その旨をエラー情報としてログ・メモリ83(図
4(A))に記録する(ステップS25)。
【0112】Status Senseコマンドの送出によりステー
タスが得られたら、次に、送信側のアプリケーション2
0に対してデータ転送を開始させるために、送信側のア
プリケーション20に対してActive ID Setコマンドを
送出する。このActive ID Setコマンドの送出先を決定
する処理には複数の方法がある。1つ目の方法として
は、得られたステータスに基づいて優先順位を作成し、
それをプライオリティセレクト・レジスタ82に格納す
る。このプライオリティセレクト・レジスタ82に格納
された優先順位に基づいて、Active ID Setコマンドを
送出する。他の方法として、優先順位によらないでする
方法もある。この場合、ステータスセンスデータ・メモ
リ81に格納されている順にStatus Senseコマンドを送
出し、応答してきたステータス情報のDEフラグが1で
あれば、Active ID Setコマンドを送出する。さらに他
の方法として、ステータスセンスデータ・メモリ81に
書き込まれている順にActive ID Setコマンドを送出す
る方法もある。この場合、Status Senseコマンドの送出
は行わない。
【0113】<優先順位シーケンス>ここでは、優先順
位に基づいて、Active ID Setコマンドを送出してデー
タ転送を開始させる方法について説明する。図29に示
したように、バス・マスタ10は、常時、送信側割り込
み信号TINTの監視を行っている。送信側割り込み信
号TINTの検出がなされた場合(ステップS31;
Y)には、後述するステップS41以降の処理を行う。
送信側割り込み信号TINTの検出がなされていない場
合(ステップS31;N)には、ステータスセンスデー
タ・メモリ81から送信側のアプリケーション20のM
ID,SIDの情報を1つ得て(ステップS32)、そ
のMID,SIDのアプリケーション20に対してStat
us Senseコマンドを送出する(ステップS33)。指定
されたMID,SIDを持つアプリケーション20は、
Status Senseコマンドに応答して、ステータスデータを
送出する。
【0114】応答してきたステータスデータのDE(Da
ta Exist)フラグ(図27参照)が0であった場合(ス
テップS34;N)、バス・マスタ10は、ステータス
センスデータ・メモリ81の次のアドレスに格納されて
いるMID,SIDの情報を得て、再びStatus Senseコ
マンドを送出する。より詳しくは、ステータスセンスデ
ータ・メモリ81のアドレスを示すポインタを+1にし
(ステップS38)、次に、そのポインタの示すアドレ
スが最後のアドレスを超えているか否かの判断を行う
(ステップS39)。そのポインタの示すアドレスが最
後のアドレスを超えておらず、有効なアドレス範囲内で
あれば(ステップS39;N)、ステップS32に戻
り、ステータスセンスデータ・メモリ81から、そのポ
インタの指し示すアドレスに格納されたMID,SID
の情報を得て、再びStatus Senseコマンドを送出する。
最後のアドレスを超えていれば(ステップS39;
Y)、ステップS31へ戻る。
【0115】一方、応答してきたステータスデータのD
Eフラグが1であった場合(ステップS34;Y)は、
転送すべきデータが存在しているということなので、バ
ス・マスタ10は、ステータスに含まれる優先度の情報
に応じて、プライオリティセレクト・レジスタ82の内
容を更新する。この場合、バス・マスタ10は、まず、
プライオリティセレクト・レジスタ82に格納されてい
る他のMID,SIDと優先順位を比較する(ステップ
S35)。プライオリティセレクト・レジスタ82は、
優先度の高い4つの転送元の情報を格納しているので、
優先順位の比較結果が4位以内であれば(ステップS3
6;Y)、プライオリティセレクト・レジスタ82の順
位(Order)をあらたなものに変更し(ステップS
37)、ステップS38の処理へ進む。優先順位の比較
結果が4位以内でなければ(ステップS36;N)、プ
ライオリティセレクト・レジスタ82の順位を変更する
ことなく、ステップS38の処理へ進む。
【0116】以上のようにして、バス・マスタ10は、
ステータスセンスデータ・メモリ81のメモリアドレス
の最後に格納されているMID,SIDになるまでStat
us Senseコマンドを送出し、送信側の各アプリケーショ
ン20のステータスを調べる。
【0117】一方、送信側割り込み信号TINTが検出
された場合(ステップS31;Y)、バス・マスタ10
は、TINT処理要求(TINT条件)のコマンドがオ
ンであるか否かを調べる(ステップS41)。TINT
処理要求のコマンドがオンである場合(ステップS4
1;Y)には、ステップS32へ進む。TINT処理要
求のコマンドがオフであれば(ステップS41;N)、
どのアプリケーション20からの割り込み要求であるの
かを調べるための処理を行う。すなわち、まず、ステー
タスセンスデータ・メモリ81のアドレスを示すポイン
タを0にし(ステップS42)、ステータスセンスデー
タ・メモリ81に格納されたMID,SIDの情報を得
て(ステップS43)、Status Senseコマンドを送出す
る(ステップS44)。
【0118】応答してきたステータスデータの中のTI
NTフラグが0であれば(ステップS45;N)、バス
・マスタ10は、次のアドレスに格納されているMI
D,SIDのステータスを調べるために、ステータスセ
ンスデータ・メモリ81のアドレスを示すポインタを+
1にし(ステップS46)、ステップS43に戻る。一
方、応答してきたステータスデータの中のTINTフラ
グが1であれば(ステップS45;Y)、バス・マスタ
10は、そのMID,SIDに関して、TINT処理要
求のコマンドをオンにして(ステップS47)、ステッ
プS31に戻る。
【0119】図30は、図29の処理によって決定さ
れ、プライオリティセレクト・レジスタ82に格納され
た優先度の情報に基づいて、送信側のアプリケーション
20に対してデータ転送を行わせる手順を示している。
バス・マスタ10は、プライオリティセレクト・レジス
タ82の中に、まだデータ転送を開始させていないもの
があるか否かを調べる(ステップS51)。未送出のデ
ータがなければ(ステップS51;N)、この判断を繰
り返す。未送出のデータがあれば(ステップS51;
Y)、プライオリティセレクト・レジスタ82に格納さ
れているもののうち、最も優先度の高いMID,SID
の情報を得て(ステップS52)、その得られたMI
D,SIDのアプリケーション20に対してActive ID
Setコマンドを送出する(ステップS53)。
【0120】Active ID Setコマンドを送出後、所定の
時間内に、指定されたMID,SIDのアプリケーショ
ン20からデータが転送開始されなければ(ステップS
54;N)、バス・マスタ10は、あらかじめ設定され
た回数を超えるまで、ActiveID Setコマンドを再送出す
る処理(リトライ)を繰り返す(ステップS56;
N)。データの転送が開始された場合(ステップS5
4;Y)であっても、データの受信側からエラー割り込
み信号BERRの出力があれば(ステップS55;
Y)、バス・マスタ10は、リトライを行う。リトライ
の回数が設定回数を超えた場合(ステップS56;Y)
には、ステップS51に戻る。エラー割り込み信号BE
RRの出力がなければ(ステップS55;N)、ステッ
プS51に戻る。以上の処理を繰り返すことにより、プ
ライオリティセレクト・レジスタ82に格納されたもの
のうち、優先度の高いMID,SIDを持つアプリケー
ション20から順にデータ転送が行われる。
【0121】<エラー処理>次に、伝送エラー対策とし
てバス・マスタ10が行うエラー処理について説明す
る。ここでは伝送エラーとして、Status Senseコマンド
に対する無応答およびActive ID Setコマンドに対する
無応答、ならびにバス・エラー割り込み信号BERRが
検出された場合のエラー処理について説明する。
【0122】(1)Status Senseコマンドに対する無応
答の場合のエラー処理 バス・マスタ10は、Status Senseコマンドを送出して
も、アプリケーション20からそれに対するステータス
応答がなかった場合、設定された回数までStatus Sense
コマンドの送出処理に関してリトライを行う。そして、
設定されたリトライ回数に達した場合は、以後そのMI
D,SIDにはStatus Senseコマンドを送出しない。た
だし、その後もStatus Senseコマンドを送出できるモー
ドに設定することも可能である。また、リトライした状
況はログ・メモリ83に記憶しておく。ログ・メモリ8
3の内容は、外部CPUから読み出すことが可能であ
る。
【0123】(2)Active ID Setコマンドに対する無
応答の場合のエラー処理 バス・マスタ10は、Active ID Setコマンドを送出し
てもアプリケーション20からそれに対する応答がなか
った場合、設定された回数までActive ID Setコマンド
の送出処理に関してリトライを行う。そして、設定され
たリトライ回数に達した場合は、以後そのMID,SI
DにはStatus SenseコマンドおよびActive ID Setコマ
ンドを送出しない。ただし、その後もそれらのコマンド
を送出できるモードに設定することも可能である。ま
た、リトライした状況はログ・メモリ83に記憶してお
く。ログ・メモリ83の内容は、外部CPUから読み出
すことが可能である。
【0124】(3)バス・エラー割り込み信号BERR
が検出された場合のエラー処理 例えば、送信側のアプリケーション20にActive ID Se
tコマンドを送出した後、受信側のアプリケーション2
0でCRCエラーが検出され、受信側のアプリケーショ
ン20からバス・エラー割り込み信号BERRが送出さ
れたとする。この場合、バス・マスタ10は、設定され
た回数までActive ID Setコマンドの送出処理に関して
リトライを行い、送信側のアプリケーション20に再
度、データ転送を行わせる。設定されたリトライ回数に
達した場合は、以後そのMID,SIDにはStatus Sen
seコマンドおよびActive ID Setコマンドを送出しな
い。ただし、その後もそれらのコマンドを送出できるモ
ードに設定することも可能である。また、リトライした
状況はログ・メモリ83に記憶しておく。ログ・メモリ
83の内容は、外部CPUから読み出すことが可能であ
る。
【0125】[アプリケーションの動作] <コマンド処理>アプリケーション20は、バス・マス
タ10からのコマンドを検出し、その処理を実行する。
Active ID Setコマンドの場合は、コマンド/データ・
バス31上にデータの送信を開始する。Status Senseコ
マンドを受け付けた場合は、要求に応じたステータスデ
ータをコマンド/データ・バス31上に出力する。な
お、拡張ステータスデータ・バス41でStatus Senseコ
マンドを受け付けた場合は拡張ステータスデータ・バス
41へステータスデータを出力する。その他のコマンド
を受け付けた場合は、即座に実行する。デバイス内に設
定のないSIDを指定したコマンドなど無効なコマンド
を受け取った場合は、そのコマンドを無視する。
【0126】<受信パケット制御>レシーブドPIDメモ
リ94(図4(B))に、受信すべき送信側のアプリケ
ーション20のMID,SIDの情報をあらかじめ格納
する。受信すべきMID,SIDの情報は、例えば初期
化設定時にバス・マスタ10からコマンドに従って書き
込まれる。コマンド/データ・バス31上のパケットデ
ータの受信は、このレシーブドPIDメモリ94に格納さ
れたMID,SIDの情報とそのパケットデータに含ま
れるMID,SIDとを比較して一致した場合に実行す
る。
【0127】パケットデータの受信中はパケットデータ
に付加されているCRCデータに基づいてCRC演算を
実施する。データ受信終了直後、CRCエラーがなけれ
ば正常にデータを受信したものとする。CRCエラーが
生じた場合は、バス・エラー割り込み信号BERRをア
クティブにし、そのときのデータは受信しなかったもの
とする。また、正しくパケットデータを受信した場合、
受信パケットデータの存在を示すため、PIDメモリ92
にそのパケットデータの情報を記録する。PIDメモリ9
2に記録する情報としては、データサイズやTime Stamp
値などである。
【0128】[タイムスタンプ・ジェネレータを利用し
た転送時間の計測]本インタフェースは、タイムスタン
プ・ジェネレータ93(図4(B))を利用することに
より、転送データの送受信を行うのに要した時間を計測
する機能を有している。次に、この転送時間の計測の機
能について説明する。タイムスタンプ・ジェネレータ9
3のリセットは、バス・マスタ10からのリセット信号
で行われる。バス・インタフェース全体として、Time S
tampの値は同時刻で同じ値となる。すなわち、バス・マ
スタ10のタイムスタンプ・ジェネレータ84と各アプ
リケーション20のタイムスタンプ・ジェネレータ93
は、互いに同期して動作し、それぞれ、同時刻において
同一のタイムカウント値を出力する。
【0129】以下、図31を参照して、転送時間の計測
の方法を具体的に説明する。ここでは、MPEG2−T
S規格のパケットデータを転送する場合を例に説明す
る。送信側のアプリケーション20Tは、外部からのパ
ケットデータの入力が開始された時点におけるタイムス
タンプ・ジェネレータ93のTime Stampの値を、PIDメ
モリ92に保存する。この値をTMinとする。この時、入
力されたパケットデータのpayloadにはMPEG規格で
の時刻管理情報であるPCRが入っている。このPCR
の値をPCRinとする。送信側のアプリケーション20T
は、これらTMinとPCRinとの値が含まれるパケットデー
タをコマンド/データ・バス31上に出力する。
【0130】受信側のアプリケーション20Rは、受信
したパケットデータを外部に出力するとき、その時点で
の自身のタイムスタンプ・ジェネレータ93の値(TMge
n)とパケットデータに付加されてきたTime Stampの値T
Minとを比較し、その差(TMdiff=TMgen−TMin)を求め
る。この求められた値TMdiffが、本インタフェースにお
いてデータの送受信に要した時間、すなわち、データが
送信側のアプリケーション20Tに入力されてから、受
信側のアプリケーション20Rに転送され、出力される
までの時間ということになる。
【0131】受信側のアプリケーション20Rはまた、
パケットデータに含まれる時刻管理情報であるPCR値
PCRinの補正を行う。すなわち、前述の計測時間TMdiff
を、PCR値PCRinに加算した値PCRoutを求める。 PCRout=PCRin+TMdiff
【0132】最後に、バス全体のディレイ量を調整する
ために、あらかじめ設定されたTimeStamp Offset値(TM
offset)を、値PCRoutに加算する。これにより求められ
た値PCRrealが、実際に出力されるPCRの値となる。 PCRreal=PCRout+TMoffset
【0133】以上説明したように、本実施の形態に係る
バス・インタフェースおよびそのデータ転送方法によれ
ば、コマンド/データ・バス31(および拡張ステータ
スデータ・バス41)上での制御コマンドの出力と転送
データの送受信とをパケット形式で行うようにしたの
で、例えばPCIでのバースト転送と比較して、データ
の効率的な転送を行うことができる。
【0134】また、制御コマンドと転送データとを、共
にコマンド/データ・バス31上で転送するようにした
ので、例えばPCIと比較して制御線の数を減らしたバ
ス構成にすることができる。これにより、各デバイスの
回路構成も含めてバス全体の構成をコンパクト化するこ
とが可能となると共に、バス制御の簡単化を図ることが
できる。
【0135】また、バス・マスタ10による制御コマン
ドの出力と、各アプリケーション20における転送デー
タの送受信とを別々のクロック信号CLK,REFに基
づいて行うようにしたので、PCIのように単一のクロ
ック信号のみに基づいて転送データの送受信を行う場合
に比べて、データ転送の高速化と安定化を図ることがで
きる。また、バスの物理的な延長も容易になる。
【0136】また、1つのアプリケーション20から送
信された転送データを、複数の受信側のアプリケーショ
ン20で受信する機能(Multi Cast機能)を有している
ので、受信側のアプリケーション20が複数ある場合で
あっても適切なデータ転送が可能となる。さらに、複数
の送信側のアプリケーション20から出力されたデータ
を、バス上で時分割的に多重化して転送する機能(Mult
iplex)を有しているので、特に、送信側のアプリケー
ション20が複数ある場合であっても適切なデータ転送
が可能となる。
【0137】また、制御コマンドの出力処理または転送
データの送受信処理にエラーが生じた場合に、伝送エラ
ー対策として、それらの処理の再試行(リトライ)を行
うようにしたので、データ転送のエラーに適切に対処す
ることができる。
【0138】また、送信側のアプリケーション20から
得たステータスデータに含まれる各転送データの優先度
の情報に基づいて、バス・マスタ10が、各転送データ
の転送の順番を決定し、その順番に従ってデータ転送が
行われるよう、送信側のアプリケーション20を制御す
るようにしたので、複数の転送データが存在する場合で
あっても、その優先度を考慮した適切なデータ転送を行
うことができる。さらに、拡張バスモードでは、優先度
を示す情報が含まれるステータスデータの送受信を、専
用の拡張ステータスデータ・バス41によって行うよう
にしたので、優先度の情報を効率的に転送することがで
き、転送データの送受信をより効率的に行うことができ
る。
【0139】また、タイムスタンプ・ジェネレータ93
(図4(B))を利用することにより、転送データの送
受信を行うのに要した時間を計測する機能を有している
ので、リアルタイム性が要求されるデータ転送にも容易
に対応できる。特に、その計測した時間に基づいて、M
PEG2−TS規格のデータに含まれる時刻管理情報P
CRの補正を行う機能をも有しているので、MPEG2
−TS規格のデータに関して適切にデータ転送を行うこ
とができる。
【0140】また、データ幅の設定を可変にし、1つの
パケット内に同一または複数種類のデータを複数含める
ことで、同一または複数種類のデータを、複数個同時に
バス上に出力する機能(Multi Width)を有しているの
で、バス幅を有効利用して、データを効率的に転送する
ことができる。例えば、個々の転送データの幅がバス幅
より小さい場合などには、複数のデータを同時にバス上
に出力することが可能になるので、PCIに比べて効率
的なデータ転送を行うことができる。
【0141】以上のことにより、映像信号、音声信号、
圧縮信号、データ信号など、さまざまなデータを効率良
く高速に転送することができ、また、転送時のエラーに
も適切に対処できるなど、優れた機能を持つ汎用バスイ
ンタフェースを実現できる。
【0142】
【発明の効果】以上説明したように、請求項1ないし5
のいずれか1項に記載のバス・インタフェースにおける
データ転送方法または請求項6もしくは7記載のバス・
インタフェースによれば、転送データが複数ある場合
に、制御用デバイスが、各転送データの優先度の情報に
基づいて転送の順番を決定し、その順番に従ってデータ
転送が行われるよう、送信側の転送用デバイスを制御す
るようにしたので、複数の転送データが存在する場合で
あっても、その優先度を考慮した適切なデータ転送を行
うことができる。
【0143】特に、請求項4記載のバス・インタフェー
スにおけるデータ転送方法または請求項7記載のバス・
インタフェースによれば、優先度を示す情報の送受信
を、転送データを送受信するための信号線とは異なる他
の信号線によって行うようにしたので、優先度の情報を
効率的に転送することができ、転送データの送受信をよ
り効率的に行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るバス・インタフェ
ースの標準的な構成例を示すブロック図である。
【図2】本発明の一実施の形態に係るバス・インタフェ
ースの拡張された構成例を示すブロック図である。
【図3】本発明の一実施の形態に係るバス・インタフェ
ースにおける信号線の一覧を示す説明図である。
【図4】本発明の一実施の形態に係るバス・インタフェ
ースにおけるバス・マスタおよびアプリケーションの内
部構成を示すブロック図である。
【図5】アプリケーションにおける論理入出力チャンネ
ルの設定について示す説明図である。
【図6】各種バスドライバの特性を比較して示す説明図
である。
【図7】BLVDSを用いたバスドライバの構成例を示
す回路図である。
【図8】本発明の一実施の形態に係るバス・インタフェ
ースの特性および機能を、PCIと比較して示す説明図
である。
【図9】本発明の一実施の形態に係るバス・インタフェ
ースにおいて転送されるコマンドおよびデータのパケッ
ト構造を示す説明図である。
【図10】データバスを32ビット幅に設定した場合の
転送データのパケット構成の例を示す説明図である。
【図11】データバスを16ビット幅に設定した場合の
転送データのパケット構成の例を示す説明図である。
【図12】CRCの計算を行うための基本回路を示す回
路図である。
【図13】本発明の一実施の形態に係るバス・インタフ
ェースにおいて使用される制御コマンドの概要を示した
説明図である。
【図14】バスを高速に使用する場合において、コマン
ドに対してデータが存在するときの各信号の出力タイミ
ングを示すタイミングチャートである。
【図15】バスを高速に使用する場合において、コマン
ドのみを連続して送る場合の各信号の出力タイミングを
示すタイミングチャートである。
【図16】データ転送の安全性を重視した場合におい
て、コマンドに対してデータが存在するときの各信号の
出力タイミングを示すタイミングチャートである。
【図17】データ転送の安全性を重視した場合におい
て、コマンドのみを連続して送る場合の各信号の出力タ
イミングを示すタイミングチャートである。
【図18】拡張バスモードでの各信号の出力タイミング
を示すタイミングチャートである。
【図19】コマンド/データ・バス上に出力されるコマ
ンドおよびデータと、それを取り込むための基準となる
クロック信号との関係を示す説明図である。
【図20】アプリケーションの送信側および受信側のク
ロック関連の処理回路の構成例を示す回路図である。
【図21】バス・マスタにおけるクロック関連の処理回
路の構成例を示す回路図である。
【図22】Multi Widthの機能について説明するための
ブロック図である。
【図23】Multi Castの機能について説明するためのブ
ロック図である。
【図24】Multiplexの機能について説明するためのブ
ロック図である。
【図25】本発明の一実施の形態に係るバス・インタフ
ェースにおける初期化の手順を示す流れ図である。
【図26】本発明の一実施の形態に係るバス・インタフ
ェースにおけるデータ転送の基本的な手順を示す流れ図
である。
【図27】優先度を表すステータスの生成方法の例を示
すブロック図である。
【図28】Status Senseコマンドの送出するときのバス
・マスタの動作を示す流れ図である。
【図29】データ転送の優先順位を決定するためのバス
・マスタの動作を示す流れ図である。
【図30】図29の処理によって決定された優先順位に
基づいて各アプリケーションにデータ転送を行わせるた
めのバス・マスタの動作を示す流れ図である。
【図31】タイムスタンプ・ジェネレータを用いた転送
時間の計測の機能について説明するためのブロック図で
ある。
【符号の説明】
10…バス・マスタ、11,21…制御回路部、20
(20-1,…20-N)…アプリケーション、22…入出力ポ
ート、30…バス、31…コマンド/データ・バス、4
0…拡張バス、41…拡張ステータスデータ・バス、8
1…ステータスセンスデータ・メモリ、82…プライオ
リティセレクト・レジスタ、83…ログ・メモリ、8
4,93…タイムスタンプ・ジェネレータ、91…バッ
ファ・メモリ、92…PIDメモリ、94…レシーブドPID
メモリ。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 転送データの送受信を行う複数の転送用
    デバイスと、 前記複数の転送用デバイスの制御を行う制御用デバイス
    と、 前記制御用デバイスおよび前記各転送用デバイス同士を
    複数の信号線によって相互接続するバスとを備え、 前記制御用デバイスからの制御コマンドに従って、前記
    制御コマンドで指示された前記複数の転送用デバイス間
    で前記バスを介して転送データの送受信を行うようにな
    されたバス・インタフェースにおけるデータ転送方法で
    あって、 送信側の転送用デバイスにおいて、前記転送データに関
    して転送の優先度を示す情報を生成し、 前記制御用デバイスが、前記転送データが複数ある場合
    に、各転送データの前記優先度の情報に基づいて転送の
    順番を決定し、その順番に従ってデータ転送が行われる
    よう、前記送信側の転送用デバイスを制御することを特
    徴とするバス・インタフェースにおけるデータ転送方
    法。
  2. 【請求項2】 前記送信側の転送用デバイスが、前記制
    御用デバイスからの要求に応じて、前記転送データの優
    先度を示す情報を前記制御用デバイスに送信し、 前記制御用デバイスは、前記転送データが複数ある場合
    に、それぞれの転送データの優先度を比較し、最も優先
    度の高い転送データから順番にデータ転送が行われるよ
    う、前記送信側の転送用デバイスを制御することを特徴
    とする請求項1記載のバス・インタフェースにおけるデ
    ータ転送方法。
  3. 【請求項3】 前記送信側の転送用デバイスは、前記転
    送データを一時的に格納するバッファメモリを有し、そ
    のバッファメモリ内における転送データの格納状況に基
    づいて前記優先度の情報を生成することを特徴とする請
    求項1記載のバス・インタフェースにおけるデータ転送
    方法。
  4. 【請求項4】 前記転送データの優先度を示す情報の送
    受信を、前記転送データを送受信するための信号線とは
    異なる他の信号線によって行うことを特徴とする請求項
    1記載のバス・インタフェースにおけるデータ転送方
    法。
  5. 【請求項5】 前記制御コマンドの出力と前記転送デー
    タの送受信とをパケット形式で行うことを特徴とする請
    求項1記載のバス・インタフェースにおけるデータ転送
    方法。
  6. 【請求項6】 転送データの送受信を行う複数の転送用
    デバイスと、 前記複数の転送用デバイスの制御を行う制御用デバイス
    と、 前記制御用デバイスおよび前記各転送用デバイス同士を
    複数の信号線によって相互接続するバスとを備え、 前記制御用デバイスからの制御コマンドに従って、前記
    制御コマンドで指示された前記複数の転送用デバイス間
    で前記バスを介して転送データの送受信を行うようにな
    され、 送信側の転送用デバイスにおいて、前記転送データに関
    して転送の優先度を示す情報を生成し、 前記制御用デバイスが、前記転送データが複数ある場合
    に、各転送データの前記優先度の情報に基づいて転送の
    順番を決定し、その順番に従ってデータ転送が行われる
    よう、前記送信側の転送用デバイスを制御するように構
    成されていることを特徴とするバス・インタフェース。
  7. 【請求項7】 前記転送データの優先度を示す情報の送
    受信を行うための専用の信号線を備えたことを特徴とす
    る請求項6記載のバス・インタフェース。
JP2001400651A 2001-12-28 2001-12-28 バス・インタフェースにおけるデータ転送方法およびバス・インタフェース Pending JP2003196229A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001400651A JP2003196229A (ja) 2001-12-28 2001-12-28 バス・インタフェースにおけるデータ転送方法およびバス・インタフェース

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001400651A JP2003196229A (ja) 2001-12-28 2001-12-28 バス・インタフェースにおけるデータ転送方法およびバス・インタフェース

Publications (1)

Publication Number Publication Date
JP2003196229A true JP2003196229A (ja) 2003-07-11

Family

ID=27605106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001400651A Pending JP2003196229A (ja) 2001-12-28 2001-12-28 バス・インタフェースにおけるデータ転送方法およびバス・インタフェース

Country Status (1)

Country Link
JP (1) JP2003196229A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013543169A (ja) * 2010-09-15 2013-11-28 オラクル・インターナショナル・コーポレイション ミドルウェアマシン環境を含むシステム
US9185054B2 (en) 2010-09-15 2015-11-10 Oracle International Corporation System and method for providing zero buffer copying in a middleware machine environment
US9495392B2 (en) 2010-09-15 2016-11-15 Oracle International Corporation System and method for parallel multiplexing between servers in a cluster
JP2016541063A (ja) * 2013-11-25 2016-12-28 クアルコム,インコーポレイテッド マルチポイントインターフェース最短パルス幅優先度解決

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013543169A (ja) * 2010-09-15 2013-11-28 オラクル・インターナショナル・コーポレイション ミドルウェアマシン環境を含むシステム
US9185054B2 (en) 2010-09-15 2015-11-10 Oracle International Corporation System and method for providing zero buffer copying in a middleware machine environment
US9495392B2 (en) 2010-09-15 2016-11-15 Oracle International Corporation System and method for parallel multiplexing between servers in a cluster
US9811541B2 (en) 2010-09-15 2017-11-07 Oracle International Corporation System and method for supporting lazy deserialization of session information in a server cluster
US9864759B2 (en) 2010-09-15 2018-01-09 Oracle International Corporation System and method for providing scatter/gather data processing in a middleware environment
JP2016541063A (ja) * 2013-11-25 2016-12-28 クアルコム,インコーポレイテッド マルチポイントインターフェース最短パルス幅優先度解決

Similar Documents

Publication Publication Date Title
US5845152A (en) Method for transmission of isochronous data with two cycle look ahead
KR100439539B1 (ko) 응용장치와버스구조사이의비동기데이터전달을자동으로관리하기위한비동기데이터파이프
JP3843667B2 (ja) データ転送制御装置及び電子機器
US7430618B2 (en) Data transfer control device and electronic equipment
JP2000134229A (ja) データ転送制御装置及び電子機器
WO2001006711A1 (fr) Controleur de transfert de donnees et dispositif electronique
JP3780776B2 (ja) データ転送制御装置及び電子機器
US20040120333A1 (en) Method and apparatus for controlling information flow through a protocol bridge
JP2003196229A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
KR100511695B1 (ko) 직렬인터페이스회로및그의신호처리방법
JP2003196227A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
JP2003167844A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
US6978327B1 (en) Data transfer control device and electronic equipment for performing data
JP3633507B2 (ja) データ転送処理装置、データ転送方法およびデータ転送プログラム
JP2003196228A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
JP2003162499A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
JP2003198520A (ja) バス・インタフェースにおけるデータ転送方法およびバス・インタフェース
EP3671720B1 (en) Real-time on-chip data transfer system
WO2021161909A1 (ja) 送信装置、受信装置および通信システム
JP4137290B2 (ja) パケット転送方法及びパケット転送制御装置
JPH10285196A (ja) データ送信装置,データ受信装置,データ伝送方法,およびデータ伝送システム
JP2000134232A (ja) データ転送制御装置及び電子機器
JP2541747B2 (ja) 通信用スイッチングシステム
KR100605903B1 (ko) 데이터 전송 제어장치 및 방법
JPH10173723A (ja) データ転送方法及びデータ転送装置