JP4033915B2 - データストリーム制御方法及び装置 - Google Patents
データストリーム制御方法及び装置 Download PDFInfo
- Publication number
- JP4033915B2 JP4033915B2 JP54384298A JP54384298A JP4033915B2 JP 4033915 B2 JP4033915 B2 JP 4033915B2 JP 54384298 A JP54384298 A JP 54384298A JP 54384298 A JP54384298 A JP 54384298A JP 4033915 B2 JP4033915 B2 JP 4033915B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data stream
- isochronous
- bus
- register
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40058—Isochronous transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40065—Bandwidth and channel allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Description
本発明は、バスとアプリケーションとの間で行われるアイソクロノスデータ転送動作を制御するデータストリーム制御方法及び装置に関する。詳しくは、本発明は、アプリケーションとバス上のノードとの間で行われるデータ転送動作を完了するために、アイソクロノスデータの高速ストリームを管理及び処理する方法に関する。
背景技術
1995年6月16日に発表されたIEEE1394仕様書「高性能シリアルバスのためのP1394仕様8.01vlドラフト」は、非同期フォーマット及びアイソクロノスフォーマットのデータ転送をサポートする安価な高速シリアルバスアーキテクチャを実現した国際規格である。アイソクロノスデータ転送は、重要なインスタンスを転送するための時間間隔が送信側と受信側のアプリケーションで同じになるように実行されるリアルタイム転送である。アイソクロノスフォーマットで転送されるデータの各パケットは、各パケット自身が定義する期間において転送される。アイソクロノスフォーマツトによるデータ転送の応用例としては、例えば、ビデオレコーダ、テレビジョン受信機等がある。ビデオ記録装置は、映像及び音声を示すデータを離散的なチャンク又はパケットとして記録する。ビデオ記録装置は、記録した映像及び音声を示すパケットに基づく信号を所定期間テレビジョン受信機に供給し、これによりテレビジョン受信機から映像及び音声が再生される。IEEE1394仕様のバスアーキテクチャは、アプリケーション間のアイソクロノスデータ転送のために多チャンネルを提供する。ここで、適切なアプリケーションにデータを受信させるために、データは、6ビットのチャンネル番号とともに転送される。これにより、複数のアプリケーションがバスを介して同時にアイソクロノスデータを送受信することができる。非同期データ転送は、転送速度を重視する場合に行われる転送方式であり、大量のデータを転送する最も一般的なデータ転送動作である。
IEEE1394仕様は、デジタル装置を相互に接続するための高速シリアルバスを提供し、これによりI/O接続が標準化されている。IEEE1394仕様においては、デジタルインタフェースの仕様が規定されている。したがって、アプリケーションは、バスにデータを送信する前にデジタルデータをアナログデータに変換する必要がない。同様に、受信側アプリケーションはバスから直接デジタルデータを受信することができ、したがって、受信時にアナログデータをデジタルデータに変換する処理は必要ではない。IEEE1394仕様において必要とされるケーブルは、装置間の接続に用いられる他の一般的なケーブルと比較して、非常に細い。バスがアクティブな間、種々の装置をIEEE1394バスに追加したり、削除したりすることができる。装置が追加されるか、削除されると、バスはバス自身の環境を設定し直し、これにより全てのノードの間でデータを送受信することが可能となる。ノードは、バス上で固有のアドレスを有する論理構成体とみなされる。各ノードは、識別ROMと、標準化された制御レジスタの組と、そのアドレス空間を備えている。
IEEE1394仕様では、図1に示すようなプロトコルが定義されている。このプロトコルは、シリアルバス管理ブロック10と、シリアルバス管理ブロック10に接続されたトランザクション層12、リンク層14及び物理層16等から構成される。物理層16は、装置又はアプリケーションをIEEE1394ケーブルに電気的かつ機械的に接続する機能を司る。また、物理層16は、実際のデータ送信及び受信だけでなく、IEEE1394バスに接続する全ての装置のバスへのアクセスを調停するアービトレーション機能を提供する。リンク層14は、非同期データ転送及びアイソクロノスデータ転送のためのデータパケット配信サービスを提供する。リンク層14は、肯定応答プロトコルを使って、非同期データトランスポート及びアイソクロノスデータ転送をサポートし、さらに、ジャストインタイムのデータ配信のためにリアルタイム帯域保証プロトコルを提供する。トランザクション層12は、読出トランザクション、書込トランザクション及びロックトランザクションを含む非同期データ転送を完了するために必要なコマンドをサポートする。シリアルバス管理ブロック10は、アイソクロノスデータ転送動作を管理するアイソクロノスリソースマネージャを備える。また、シリアルバス管理ブロック10は、アービトレーションタイミングの最適化、バスに接続された全ての装置のための適切な電力の保証、サイクルマスタの割当て、アイソクロノスチャンネル及び帯域幅リソースの割当て、及びエラーの基本通知の実行等により、シリアルバス全体の環境を管理する。
アイソクロノスデータ転送動作を初期化する場合、アプリケーションの環境設定を行い、データ転送動作に用いられるチャンネル番号を特定するために、幾つかの非同期データ転送動作を行う必要がある場合がある。一旦、チャンネル番号が定義されると、送信側アプリケーションは、データをバッファメモリにバッファリングした後にデータを送信し、受信側のアプリケーションは、データをバッファリングメモリにバッファリングした後にデータを処理する。汎用ホストコンピュータ又は周辺機器において、送信データのフォーマットとアプリケーションが処理できるフォーマットとは異なることが多い。したがって、殆どの場合、メインプロセッサは、アプリケーションにデータストリームを送信する前にデータストリームを前処理しなければならない。前処理タスクは、メインプロセッサの演算処理にとってかなりの負担となり、これによりリアルタイムデータストリームの処理が困難になることがある。
そこで、本発明は、アプリケーションがバスとの間で送受する高速データストリームを管理及び処理するためのアイソクロノスデータパイプを提供することを目的とする。さらに、アプリケーションがアプリケーション自身のフォーマットによりデータを送受信し、これによりアプリケーションが連続したデータストリームを処理する際の効率を向上させるアイソクロノスデータパイプを提供することを目的とする。
発明の開示
アイソクロノスデータパイプは、アプリケーションとバスとの間で送受信されるデータのために双方向パスを提供する。アイソクロノスデータパイプは、複数のアイソクロノスチャンネル上のデータを含むあらゆるアイソクロノスデータストリームを送信し、受信し、あるいは所定の処理を実行する。アイソクロノスデータパイプは、アイソクロノスデータパイプを通過するアイソクロノスデータストリームに対する処理を行うプログラム可能なシーケンサーである。アイソクロノスデータパイプは、アプリケーションによってプログラミングされ、バスを介してデータを送信するか、あるいはアプリケーションにデータを送信する前に、データストリームに対して特定の処理を施す。これにより、データは、前処理が施された後に転送先に配信される。これらの処理は、データパケットのパケットヘッダとデータフィールドの両方に対して実行される。アイソクロノスデータパイプは、特定のイベントの発生により開始又は停止される。本発明の変形実施例において、アイソクロノスデータパイプは、アイソクロノスデータと非同期データの両方を送受信するようプログラミングされる。この処理には、要求及び適切なパケットヘッダの生成が含まれる。
【図面の簡単な説明】
図1は、IEEE1394仕様によって定義されるプロトコルを説明する図である。
図2は、本発明を適用したアイソクロノスデータパイプと非同期データパイプとを備えるリンク回路のブロック図である。
図3は、アイソクロノスデータパイプ内のレジスタファイルを示す図である。
図4は、アイソクロノスデータパイプシーケンサ内のレジスタファイルを示す図である。
図5は、アイソクロノス記録フォーマットを有するアイソクロノスデータストリームの具体例を示す図である。
発明を実施するための最良の形態
アイソクロノスデータパイプは、バスからのデータをアプリケーションに出力し、また、アプリケーションからのデータをバスに出力する。好ましくは、バスは、例えばIEEE1394仕様のバスである。アイソクロノスデータパイプは、プログラム可能であり、データストリームに対して一連の命令を実行し、これによりアプリケーションによって要求された処理を行う。本発明では、アイソクロノスデータを送受信するためのアイソクロノスデータパイプと、非同期データを送受信するための非同期データパイプとをリンク回路に設ける。アイソクロノスデータパイプ及び非同期データパイプからのデータは、多重化されてバスに出力される。バスを介して受信されるデータは、分離(demultiplex)されてアイソクロノスデータパイプ又は非同期データパイプに供給される。あるいは、これに代えて、アイソクロノスデータパイプがアイソクロノスデータと非同期データの両方を送受するようにプログラミングすることもできる。
本発明を適用したアイソクロノスデータパイプ(IDP)と、非同期データパイプ(ADP)とを備えるリンク回路を図2に示す。リンク回路100は、アプリケーション11、13とバス58とをリンクさせる機能を有する。アプリケーション11、13は、いずれもシステムバス15に接続されている。システムバス15は、アイソクロノスデータパイプ20と非同期データパイプ26の両方に接続されている。アプリケーション11、13は、また、いずれもアプリケーションインタフェース回路18に接続されている。アプリケーションインタフェース回路18は、1組の制御レジスタ38、アイソクロノスデータパイプ20、非同期データパイプ26と、リンクコア44とに接続されている。アイソクロノスデータパイプ20及び非同期データパイプ26は、それぞれレジスタファイル24、28を備える。送信用FIFO30は、アイソクロノスデータパイプ20に対応しており、アイソクロノスデータパイプ20とマルチプレクサ40との間に接続されている。一方、送信用FIFO32は、非同期データパイプ26に対応しており、非同期データパイプ26とマルチプレクサ40との間に接続されている。制御レジスタ38は、アイソクロノスデータパイプ20と、非同期データパイプ26とに接続されている。受信用FIFO34は、デマルチプレクサ42に接続されている。デマルチプレクサ42は、アイソクロノスデータパイプ20及び非同期データパイプ26に接続されている。
リンクコア44は、トランスミッタ46と、レシーバ48と、サイクルタイマ50と、サイクルモニタ52と、CRCエラーチェック回路54と、バス58に対する物理的なインタフェースとして機能する物理インタフェース回路56とを備える。トランスミッタ46は、マルチプレクサ40と、サイクルタイマ50と、CRCエラーチェック回路54と、物理インタフェース回路56とに接続されている。レシーバ48は、受信用FIFO34と、サイクルモニタ52と、CRCエラーチェック回路54と、物理インタフェース回路56とに接続されている。サイクルタイマ50は、サイクルモニタ52に接続されている。物理インタフェース回路56は、バス58に接続されている。
図2に示すリンク回路100は、アイソクロノスデータと非同期データの両方を含む全ての受信データに用いる1つの受信用FIFO34と、アイソクロノスデータパイプ20専用の送信用FIFO30と、非同期データパイプ26専用の送信用FIFO32とを備えている。送信用FIFO30、32から出力される送信データは、マルチプレクサ40により多重化された後、リンクコア44を介してバス58に出力される。後述するように、受信用FIFO34に入力された受信データは、デマルチプレクサ42によって分離された後、アイソクロノスデータパイプ20又は非同期データパイプ26のうちの適切な一方にルーチングされる。
受信用FIFO34は33ビット長であり、送信用FIFO30は34ビット長であり、送信用FIFO32は33ビット長である。FIFO30、32、34の各々において、ビット0〜ビット31はデータに使用され、ビット32は、パケットの境界を示すマーカとして用いられる。送信パケットに対し、アイソクロノスデータパイプ20及び非同期データパイプ26は、各パケットの最初のクワドレットのビット32を論理的高レベルに設定する。受信パケットに対しては、リンクコア44が各パケットの最初のクワドレットのビット32を論理的高レベルに設定する。
アイソクロノスデータパイプ20に対応する送信用FIFO30において、ビット33はアイソクロノスサイクルの境界を示すために使用される。アイソクロノスデータパイプ20は、各アイソクロノスサイクルにおけるアイソクロノスパケットの最初のクワドレットにおいてビット33を論理的高レベルに設定する。リンクコア44は、論理的高レベルに設定されたビット33を有するクワドレットデータを受信すると、次のサイクルスタートまで待機し、次に論理的高レベルに設定されたビット33を有するクワドレットデータを検出するまで、送信用FIFO30に格納された全てのアイソクロノスパケットを送信する。
アプリケーション11、13のうちの1つからバス58にアプリケーションデータを送信するために、アイソクロノスデータパイプ20及び非同期データパイプ26は、適切なヘッダ情報を生成して、適切なアプリケーションデータに付け、バス58によって要求されるフォーマットのパケットを生成する。これらのパケットは、送信用FIFO30又は送信用FIFO32のいずれか適切な一方に格納された後、バス58に送出される。
非同期データパイプ26の実現については、同日に出願された米国特許出願番号08/612,321、「Asynchronous Data Pipe For Automatically Managing Asynchronous Data Transfers Between An Application And A Bus Structure」に記載されている。この出願は、1997年9月12日に公開された国際出願公開番号WO97/33230に対応する。非同期データパイプ26は、バス58とアプリケーション11、13との間の非同期データ転送動作を完了するために必要なトランザクションを自動的に生成する。非同期データパイプ26は、アプリケーション11、13によってプログラミングされるレジスタファイル28を備える。レジスタファイル28により、アプリケーション11、13は、データ転送動作の要求及び特性をプログラミングすることができる。レジスタファイル28は、バス速度、トランザクションラベル、トランザクションコード、転送先ノード識別子、転送先オフセットアドレスフィールド、各データパケットのパケット長、パケットカウンタ、パケットカウンタパケットバンプフィールド、制御フィールド及び状態フィールドを有する。
アプリケーション11、13によりレジスタファイル28がプログラミングされ、起動された後、非同期データパイプ26は、適切な範囲内のアドレスに対するデータ転送動作を完了するための読出又は書込トランザクションを自動的に生成する。このとき、非同期データパイプ26は、レジスタファイル28内の情報をテンプレートとして用い、トランザクション及びヘッダを生成する。非同期データパイプ26は、インクリメント機能が停止されない限り、各トランザクションに関して、各データパケットの長さに応じて転送先オフセットアドレスフィールドの値をインクリメントする。インクリメント機能が停止される場合とは、トランザクションが単一アドレスに対して実行される場合である。パケットカウンの値は、生成する残りのトランザクションの数を示す。パレットカウンタの値は、各データパケットが転送される毎にデクリメントされる。アプリケーション11、13は、パケットバンプフィールドに書込を行い、パケットカウンタの値をインクリメントする。
複数の非同期データ転送動作を管理するために、リンク回路100に複数の非同期データパイプ26を設けてもよい。この場合、各非同期データパイプ26は、それぞれ固有のトランザクションラベルの値又は一定範囲の値を有する。マルチプレクサ40は、非同期データパイプ26及びアイソクロノスデータパイプ20からバス58に送出されるトランザクション及びデータパケットを多重化する。デマルチプレクサ42は、バス58から信号及びデータパケットを受信し、トランザクションコード及びトランザクションラベルの値を用いてこれらを適切な非同期データパイプ26に出力する。
リンク回路100には、単一のアイソクロノスデータパイプ20が設けられている。このアイソクロノスデータパイプ20は、複数のアイソクロノスチャンネルを処理することができる。このアイソクロノスデータパイプ20は、データインタフェースにおいて複数のアプリケーション11、13とインタラクトすることができる。これにより、アイソクロノスデータパイプ20は、複数のアイソクロノスデータストリームをサポートすることができる。各アイソクロノスデータストリームは、複数のチャンネルを含んでいてもよい。また、他の実施の形態においては、後述するように、アイソクロノスデータパイプ20に非同期データを送受信させてもよい。すなわち、この場合、アイソクロノスデータパイプ20は、非同期データパイプ26の機能を代理する。
リンクコア44は、送信用FIFO30、32からデータパケットが供給され、バス58によって要求されるフォーマットに対応したパケットを生成し、生成したパケットを物理インタフェース回路56を介してバス58に送信する。リンクコア44は、アイソクロノスの送信用FIFO30から供給される1アイソクロノスサイクル分のデータを各アイソクロノスサイクル毎に送出する。アイソクロノスデータを送信しない場合、リンクコア44は、非同期の送信用FIFO32から供給される非同期パケットを送出する。
リンクコア44は、受信したパケットの全てを受信用FIFO34に供給する。リンクコア44がスヌープモードで動作していない場合、リンクコア44は、適切なノード識別子によってアドレス指定される非同期データパケット及び適切なチャンネル番号を有するアイソクロノスパケットのみを受信する。スヌープモードにおいては、リンクコア44は、転送先のノード認識子又はアイソクロノスチャンネル番号に関係なく全てのパケットを受信する。
アイソクロノスデータパイプ20は、バス58を介して伝送されるアプリケーションデータに対して双方向のデータパスを提供する。アイソクロノスデータストリームは、1つ以上のアイソクロノスチャンネル上のデータからなる。アイソクロノスデータパイプ20は、いかなる数のアイソクロノスチャンネル上のデータを含む、アイソクロノスデータのいかなる任意のストリームに対しても動作することができる。アイソクロノスデータパイプ20は、システムバス15からアイソクロノスの送信用FIFO30への、又は受信用FIFO34からシステムバス15へのアイソクロノスデータストリームを処理するプログラム可能なシーケンサである。
アイソクロノスデータパイプ20は、必要に応じて、転送されるデータの各クワドレットに対して、所定回数の命令を実行してデータを処理する。これらの命令は、アイソクロノスデータブロックパケットに対して実行される。バス58に出力するデータを送信する場合、アイソクロノスデータパイプ20から出力されるデータストリームのフォーマットは、アイソクロノスデータパイプ20に入力されたデータストリームのフォーマットと、アイソクロノスデータパイプ20においてデータに対し実行される処理との両方に依存している。同様に、バス58からデータを受信する場合、アイソクロノスデータパイプ20からシステムバス15に出力されるデータストリームのフォーマットは、アイソクロノスデータパイプ20に入力されたデータのフォーマットと、アイソクロノスデータパイプ20においてデータに対し実行される処理とに依存している。
アイソクロノスデータパイプ20は、アイソクロノスデータパイプの現在の動作モードに基づいて、アイソクロノスデータの転送を開始及び停止するための幾つかのスケジューリング機能をサポートする。適切なプログラミングにより、アイソクロノスデータパイプ20は、SCSI−3シリアルバスプロトコル規格に準拠し、アイソクロノス記録データフォーマットをサポートする。このプロトコルは、記録時にアイソクロノスデータにラベルを付ける方法を定義しており、これにより、アイソクロノスデータは正確に再生することができる。アイソクロノスデータパイプ20は、アイソクロノスデータパスにおけるプログラム可能なデータ処理エンジンである。適切なプログラミングにより、このデータ処理エンジン、すなわちアイソクロノスデータパイプ20は、アイソクロノス記録フォーマットを実現し、クワドレットを削除することによりデータをフィルタリングし、さらにバス58へ又はから転送される各クワドレットに対して特定の処理を行う。
アイソクロノスデータパイプ20及び非同期データパイプ26のFIFOインタフェースは、それぞれ直接送信用FIFO30、32に接続されている。送信用FIFO30は、アイソクロノスデータパイプ20によって制御されるデータパスに専用に用いられる。送信用FIFO32は、非同期データパイプ26によって制御されるデータパスに専用に用いられる。アイソクロノスデータパイプ20及び非同期データパイプ26のリンクインタフェースは、いずれもマルチプレクサ40及びデマルチプレクサ42を介してリンクコア44に接続している。アイソクロノスデータパイプ20及び非同期データパイプ26からリンクコア44に至るデータは、リンクコア44の機能に必要とされるフォーマットを有している。アイソクロノスデータパイプ20及び非同期データパイプ26は、リンクコア44から供給されるデータがリンクコア44の仕様に基づくフォーマットを有するものとして処理を行う。リンク回路100内に論理ブロックを追加する場合、各論理ブロックは、マルチプレクサ40及びデマルチプレクサ42を介してリンクコア44に接続される。例えば、複数の非同期データパイプ26をリンク回路100内に設けてもよい。複数の非同期データパイプ26を有するリンク回路100においては、複数の非同期データパイプ26は、それぞれ送信用FIFO32介してマルチプレクサ40に接続される。このようなリンク回路100において、非同期データパイプ26と送信用FIFO32との間にマルチプレクサを追加し、このマルチプレクサにより送信用FIFO32に供給するデータパケットを多重化する。
アイソクロノスデータパイプ20からのデータを処理する場合、マルチプレクサ40は、アイソクロノスデータパイプ20からデータが供給されたことを認識し、アイソクロノスサイクルに対応して、チャンネル毎に1パケット分のデータを出力する。リンクコア44からアイソクロノスデータパイプ20及び非同期データパイプ26に供給されるデータは、受信用FIFO34及びデマルチプレクサ42介して転送される。デマルチプレクサ42がリンクコア44からアイソクロノスデータパイプ20と非同期データパイプ26のうちの適切な一方にデータパケットをルーチングする場合、デマルチプレクサ42は、データの変更を一切行わない。リンクコア44によって生成される全ての情報は、転送先の論理ブロックに送られる。アイソクロノスデータパイプ20及び非同期データパイプ26は、リンクコア44から供給されたデータに対して、全ての必要な処理を施した後に、処理したデータをアプリケーション11、13のいずれかに供給する。この処理は、例えばバス58のプロトコルによる要求に応じて、ヘッダ情報を外す処理を含む。送信データについては、アイソクロノスデータパイプ20及び非同期データパイプ26は、いずれもアプリケーション11、13から供給されたデータをリンクコア44が要求するフォーマットに変換する。アイソクロノスデータパイプ20及び非同期データパイプ26は、適切なヘッダ情報を生成し、マルチプレクサ40介してデータをリンクコア44に供給する前に、アプリケーション11、13からのデータにこのヘッダを付ける。
アイソクロノスデータパイプ20と非同期データパイプ26の両方のリンクインタフェースは、リンクコア44における処理に要求されるフォーマットと互換性を有するフォーマットで、データを生成し、使用する。データ送信処理において、アイソクロノスデータパイプ20は、リンクコア44からの要求により、バス58に応じた特定のヘッダ情報を生成し、アプリケーション11、13からのデータにそのヘッダ情報を付ける。データ受信処理において、アイソクロノスデータパイプ20及び非同期データパイプ26は、リンクコア44から供給されるデータを、リンクコア44から出力されたフォーマットのまま受け取る。このように、リンクコア44からアイソクロノスデータパイプ20又は非同期データパイプ26にデータを転送する際は、データに変換処理を施す必要がない。
リンク回路100内に論理ブロックを1つだけ設ける場合、この論理ブロックは、リンクコア44に直接接続することができる。リンク回路100内に複数の論理ブロックを設ける場合、複数の論理ブロックとリンクコア44との間に適切なマルチプレクサ40及びデマルチプレクサ42を設ける。マルチプレクサ40は、複数の論理ブロックのリンクインタフェースからデータが供給され、これらのデータを多重化して、多重化したデータをリンクコア44を介してバス58にパケット毎に送信する。この情報は、アプリケーション固有の情報であり、転送動作によって設定される優先度でバス58にルーチングされる。各アイソクロノスデータパケットは、それぞれの適切な期間に、マルチプレクサ40から送信される。デマルチプレクサ42は、バス58から受信される各パケットのトランザクションコード及びチャンネル番号フィールドの値を用いて、パケットを適切な論理ブロック、すなわちアイソクロノスデータパイプ20又は非同期データパイプ26にルーチングする。アイソクロノスデータパイプ20及び非同期データパイプ26がそれぞれ1つである場合、トランザクションコードのみに基づいてパケットを適切にルーチングすることができる。デマルチプレクサ42は、まず、トランザクションコードを読み出し、パケットが非同期データであり、非同期データパイプ26にルーチングするものであるか否かを判定する。リンク回路100内に、複数の非同期データパイプ26が設けられている場合、デマルチプレクサ42は、非同期応答パケットのヘッダのトランザクションラベルを読み出し、これに基づいて適切な非同期データパイプ26にパケットをルーチングする。
本発明を適用したアイソクロノスデータパイプ20は、対応するFIFO30、34とリンクコア44と間の双方向データパスとして機能する。適切にプログラミングすることによって、アイソクロノスデータパイプ20は、SCSI−3シリアルバスプロトコル(SBP)規格に準拠したアイソクロノスデータ記録フォーマットをサポートし、これによりアイソクロノスデータストリーム内のデータの処理をプログラミングすることができる。
リンクコア44に対応する送信用FIFO30を介してデータを転送する場合、あるいは、デマルチプレクサ42からデータを受信する場合、アイソクロノスデータパイプ20は、各データクワドレットに対して独立に動作する。アイソクロノスデータパイプ20は、データを処理するために、各クワドレットに対してプログラム可能な数の命令を、必要に応じて、実行する。アイソクロノスデータパイプ20によって実行可能な命令は、命令セットに含まれており、これらの命令については後に詳細に説明する。アイソクロノスデータパイプ20は、後述する独立した専用のレジスタファイル24を備える。
アイソクロノスデータパイプ20からデータを転送中にバスリセットが発生した場合、アイソクロノスデータパイプ20の処理は、次のサイクルスタートパケットがバス58に現れた時点から再開される。なお、アイソクロノスデータの処理は、直ちに再開されるが、IEEE1394仕様及び民生機器のためのIEC規格に定義されるように、アプリケーション11、13は、バスリセットの前にチャンネル番号、帯域幅及び使用する接続を割り当てる。
アイソクロノスデータパイプ20は、図3に示すような、独立した専用のレジスタファイル80(図2では24)によって制御される。このレジスタファイル80は、処理を開始するアプリケーション11、13によってプログラミングされ、バス58を介したアイソクロノスデータ転送動作を完了するために必要なヘッダ、命令及びトランザクションを生成する。レジスタファイル80は、00h〜77h(16進法)で番号付けされた120バイトのデータを有する。図3は、レジスタファイル80をテーブル形式で示すものであり、この図3には、それぞれが4バイトのデータに相当する30本の列が示されている。図3に示すオフセット欄82は、レジスタファイル80における各行の開始バイトのオフセットを示す。読出/書込欄84は、各行に対応するフィールドが読出/書込可能であるか、あるいは、読出専用であるかを示している。
サイクルタイムフィールドcycle_timeは、レジスタファイル80のバイト0〜バイト2内に設けられた20ビットのフィールドである。サイクルタイムフィールドcycle timeは、読出/書込可能なフィールドである。後述する制御フィールドのイベントフィールドがサイクル番号の値を含む場合、サイクルタイムフィールドcycle timeは、アイソクロノスデータパイプ20がアイソクロノスデータの転送を開始又は停止するサイクルタイムに関する情報を格納する。
制御フィールドは、レジスタファイル80のバイト4〜バイト7内に設けられた32ビットのフィールドである。制御フィールドは、読出/書込可能なフィールドである。制御フィールドは、イベントフィールドと、出力イネーブルフィールドと、ストップオンエラーフィールド(stop on error field)と、送信イネーブルフィールドと、ゴーフィールドとを含む。イベントフィールドは、レジスタファイル80のビット28〜ビット31内に設けられた4ビットのフィールドである。イベントフィールドの値は、アイソクロノスデータパイプ20のバスイベントを定義しており、トリガとして用いられる。すなわち、このバスイベントが発生すると、アイソクロノスデータパイプ20は、保留中のチャンネルマスクレジスタpending_ch_maskに格納されている値を現在のチャンネルマスクレジスタch_maskに転送する。
イベントフィールドは、表1に示すようなバスイベントを示している。
したがって、イベントフィールドの値が0である場合、アイソクロノスデータパイプ20は、直ちに開始又は停止される。イベントフィールドの値が1である場合、アイソクロノスデータパイプ20は、上述のように、サイクルタイムフィールドcycle timeの値により指定されるタイミングで開始又は停止される。
出力イネーブルフィールドは、制御フィールドのビット4〜ビット7内に設けられた4ビットのフィールドである。出力イネーブルフィールドにおけるビットのいずれかが論理的高レベルに設定されている場合、対応するダイレクトメモリアクセス(Direct Memory Access:以下、DMAという。)チャンネルは、対応するFIFOが一杯の状態であることを保証し、そして、アイソクロノスデータパイプ20は、送信用FIFO30に空のクワドレットが存在する場合は、常に制御ストア出力命令を出力する。
ストップオンエラーフィールド(stop on error field)は、制御フィールドのビット3内に設けられた1ビットのフィールドである。ストップオンエラーフィールドが論理的高レベルに設定された場合、アイソクロノスデータパイプ20は、現在のチャンネルマスクレジスタch maskの値を論理的低レベルに設定することによって、検出された最初のエラーに対して現在の処理を停止する。データ送信時に発生する可能性のあるエラーは、例えばFIFO30、32のアンダーラン、サイクルスタートパケットの検出の失敗等である。データ受信時に発生する可能性のあるエラーは、FIFO34のオーバーラン、サイクルスタートパケットの検出の失敗、CRCデータエラー、パケットフォーマットエラー、チャンネル検出の失敗等である。
送信イネーブルフィールドは、制御フィールドのビット1内に設けられた1ビットのフィールドである。送信イネーブルフィールドが論理的高レベルに設定された場合、アイソクロノスデータパイプ20は、出力制御ストアプログラムを実行する。ゴービットが論理的低レベルに設定された場合、又は、出力制御ストアプログラムがリターン命令を実行した場合、送信イネーブルビットはクリアされる。
ゴーフィールド(go field)は、制御フィールドのビット0内に設けられた1ビットのフィールドである。アプリケーション11、13は、アイソクロノスデータパイプ20にイベントを監視させるために、ゴービットを論理的高レベルに設定する。特定のイベント条件が満たされた場合、アイソクロノスデータパイプ20は、保留中のチャンネルマスクレジスタpending ch maskの内容を現在のチャンネルマスクレジスタch maskに転送する。
状態フィールドは、レジスタファイル80のバイト8〜バイトB内に設けられた32のビットのフィールドである。状態フィールドは、読出/書込可能なフィールドである。状態フィールドには、アイソクロノスデータパイプ20の現在の状態を報告する状態情報が含まれている。状態フィールドのビット0〜ビット7は、制御フィールドのビット0〜ビット7に対応し、制御ストア出力フィールドと、ストップオンエラーフィールドと、送信イネーブルフィールドと、アクティブフィールドとを含んでいる。状態レジスタにおけるこれらのフィールドの値は、アイソクロノスデータパイプ20の現在の動作状態を示す。状態フィールドのビット8〜ビット27は、予備のフィールドである。状態フィールドのビット0には、1ビットのアクティブフィールドが設けられており、このアクティブフィールドは、アイソクロノスデータパイプ20がアクティブであるか否かを示す。アクティブビットが論理的高レベルに設定されている場合、アイソクロノスデータパイプ20は、現在アクティブであり、データ転送中である。アクティブビットが論理的低レベルに設定されている場合、アイソクロノスデータパイプ20は現在アクティブでない。ストップオンエラーフィールドは、状態フィールドのビット28〜ビット31内に設けられた4ビットのフィールドである。アイソクロノスデータパイプ20がエラーのために処理を停止している場合、ストップオンエラーフィールドは、エラー状態を示す値を格納する。ストップオンエラーフィールドは、アクティブビットが論理的低レベルに設定されている場合のみ有効である。ストップオンエラーフィールドが取り得る値及びその値に対応するエラーを表2に示す。
保留中のチャンネルマスクハイフィールドpending_ch_mask_hiは、レジスタファイル80のバイト20〜バイト23内に設けられた4バイトのフィールドである。保留中のチャンネルマスクローフィールドpending_ch_mask_loは、レジスタファイル80のバイト24〜バイト27内に設けられた4バイトのフィールドである。2つの保留中のチャンネルマスクハイフィールドpending_ch_mask_hi及び保留中のチャンネルマスクローフィールドpending_ch_mask_loは、8バイトから構成され、アイソクロノスデータパイプ20がデータを受信するためのアイソクロノスチャンネル番号のマスクを含んでいる。プログラムされたトリガイベントが発生すると、アイソクロノスデータパイプ20は、これらのフィールドの内容を現在のチャンネルマスクレジスタch maskに転送する。保留中のチャンネルマスクレジスタpending ch maskのビット割当ては、IEEE1394仕様の第8章に定義される利用可能なレジスタのビット割当てと同様な方法で行われる。
現在のチャンネルマスクハイフィールドch_mask_hiは、レジスタファイル80のバイト28〜バイト2B内に設けられた4バイトのフィールドである。現在のチャンネルマスクローフィールドch_mask_loは、レジスタファイル80のバイト2C〜バイト2F内に設けられた4バイトのフィールドである。現在のチャンネルマスクハイフィールドch_mask_hi及び現在のチャンネルマスクローフィールドch_mask_loは、8バイトから構成され、現在動作中のチャンネルマスクを格納する。現在のチャンネルマスクレジスタch maskのフィールドの各ビットは、それぞれアイソクロノスチャンネルを示す。トリガイベントが発生した場合、現在のチャンネルマスクレジスタch maskのフィールドの値は保留中のチャンネルマスクレジスタpending ch maskのフィールドからロードされる。アイソクロノスデータパイプ20は、現在のチャンネルマスクレジスタch maskのフィールドにおける対応するビットが論理的高レベルに設定された受信アイソクロノスチャンネル番号を無視する。
制御ストア出力フィールドCS_outputは、レジスタファイル80のバイト34内に設けられた1バイトのフィールドである。制御ストア出力フィールドCS_outputは、レジスタファイル(以下、制御ストアメモリともいう)24における制御ストアアドレスを示す値を格納する。送信用FIFO30に空のクワドレットが存在し、アイソクロノスデータパイプ20がアイソクロノスパケットデータを現在受信していない場合、アイソクロノスデータパイプ20は、この制御ストアアドレスにデータを転送する。制御ストアメモリ24は、アイソクロノスデータパイプ20がデータストリームに対する処理を実行する際に用いる命令を格納する。
制御ストアサイクルスタートアドレスフィールドCS_addr_CSは、レジスタファイル80のバイト37内に設けられた1バイトのフィールドである。制御ストアサイクルスタートアドレスフィールドCS_addr_CSは、サイクルスタートパケットが受信されたとき、アイソクロノスデータパイプ20が分岐する制御ストアアドレスを格納する。出力制御ストアプログラムが最初に利用できるクワドレットは、サイクルスタートパケットの最初のクワドレットである。制御ストアアドレスフィールドCS_addr_0〜CS_addr_63は、レジスタファイル80のバイト38〜バイト77内に設けられた各1バイトのフィールドである。これらのフィールドは、制御ストアアドレスを含む。アイソクロノスデータパイプ20が制御ストアアドレスフィールドCS_addr_0〜CS_addr_63のバイト番号に一致するアイソクロノスチャンネルからデータを受信した場合に、アイソクロノスデータパイプ20は分岐する。例えば、制御ストアメモリ24に制御ストアアドレスフィールドCS_addr_10が含まれている場合、アイソクロノスデータパイプ20は、アイソクロノスチャンネル番号10上の受信データに分岐する。アイソクロノスデータパイプ20は、制御ストアアドレスフィールドCS_addr_0〜CS_addr_63の値がFFhである全てのアイソクロノスチャンネルを無視する。なお、制御ストアアドレスフィールドCS_addr_0〜CS_addr_63は、アイソクロノスデータ送信時も受信時も同様に機能する。
存在する可能性があるアイソクロノスチャンネルは、アイソクロノスチャンネル0〜63の64個のアイソクロノスチャンネルである。制御ストアアドレスフィールドCS_addr_0〜CS_addr_63は、それぞれ1つのアイソクロノスチャンネルに対応しており、そのアイソクロノスチャンネルに対する命令が開始される制御ストアメモリ24内のアドレスを格納している。これに応じて、アイソクロノスデータパイプ20が特定のアイソクロノスチャンネルに関するデータを受信すると、アイソクロノスデータパイプ20は、対応する制御ストアアドレスフィールドCS_addr_0〜CS_addr_63に含まれるアドレスに分岐し、そのチャンネルにおけるデータに対する処理を実行するための命令を得る。アイソクロノスデータパイプ20は、対応する制御ストアアドレスフィールドCS_addr_0〜CS_addr_63の値がFFhであるアイソクロノスチャンネルを無視する。
アイソクロノスデータストリームは、1つ以上のチャンネルから構成されている。アイソクロノスデータパイプ20は、現在のチャンネルマスクレジスタch maskのフィールドにおける対応するビットが論理的高レベルに設定されているアイソクロノスチャンネルを受信する。アイソクロノスデータパイプ20は、制御ストア出力フィールドCS_outputの値により示された制御ストアアドレスフィールドから始まる出力制御ストアプログラムに従ってアイソクロノスデータを送信する。例えば、アイソクロノスチャンネル3、4、5がバス58に存在し、アプリケーション11、13がアイソクロノスデータパイプ20に対して、データに変更を加えることなくアイソクロノスチャンネル3とアイソクロノスチャンネル5を併合するよう指示する場合、アプリケーション11、13は、制御ストアアドレスフィールドCS_addr_3、CS_addr_5に例えば「10h」の値をプログラミングする。制御ストアアドレスフィールドCS_addr_3、CS_addr_5の「10h」により、アプリケーション11、13は、表3に示すような命令シーケンスをロードする。
そして、アプリケーション11、13は、保留中のチャンネルマスクレジスタpending ch maskのフィールドに値28hをプログラミングし、制御フィールドに値1を書き込む。制御フィールドの値1は、出力のためにプログラミングされたDMAチャンネルを有さない即時イベントを示す。この結果、アイソクロノスデータパイプ20は、保留中のチャンネルマスクレジスタpending ch maskのフィールドの値を現在のチャンネルマスクレジスタch maskのフィールドに直ちにシフトする。ここで、現在のチャンネルマスクレジスタch maskのフィールドにおいて第3ビット及び第5ビットが論理的高レベルに設定されるので、アイソクロノスデータパイプ20は、アドレス10hから始まる出力制御ストアプログラムに従ってアイソクロノスチャンネル3及びアイソクロノスチャンネル5に対する処理を開始する。なお、この具体例では、制御ストアアドレスフィールドCS_addr_3、CS_addr_5が値10hを有し、これにより、アイソクロノスチャンネル3、5のデータは、いずれもアドレス10hから始まるサンプル制御ストア命令シーケンスに従って処理される。
表3に示す出力制御ストアプログラムは、受信用FIFO34からシステムバス15のDMAチャンネル0にデータを移動させるプログラムである。現在のチャンネルマスクレジスタch maskのフィールドにおける第4ビットが論理的高レベルに設定されないので、アイソクロノスデータパイプ20は、アイソクロノスチャンネル4の上で受信される全てのデータを無視する。
表3に示す制御ストアプログラムの最終行には、リターン命令が含まれている。あらゆる場合において、リターン命令は、アイソクロノスデータパイプ20に同じタスクを実行させる。すなわち、アイソクロノスデータパイプ20は、スタックポインタの値をデクリメントし、スタックポインタが現在示しているスタック内の命令にディスパッチする。スタックポインタの値がゼロである場合において、リターン命令が実行されると、アイソクロノスデータパイプ20は、次の割込み可能なアイソクロノスチャンネルを受信するか、あるいは、サイクルスタートパケットを受信するまで処理を中断する。アイソクロノスデータパイプ20が出力制御ストアプログラムを実行している場合、リターン命令により、アイソクロノスデータパイプ20は、アイソクロノスパケットの受信により中断された出力制御プログラムの命令の位置から再開する。
アイソクロノスデータパイプ20は、アイソクロノスデータの受信ストリームに対する処理を実行するためにプログラムされるプログラマブルシーケンサである。アイソクロノスデータパイプ20は、図4に示すようなレジスタファイル90を有する。レジスタファイル90内に設けられた即時値レジスタIMM(immediate value register)は、レジスタコード0を有する34ビットのレジスタである。これは、転送元レジスタとしてのみ機能する。即時値レジスタIMMは、命令の34ビットの即時フィールドに与えられた処理のためのソースデータが格納されることを示す。
バス入力レジスタBUS_INは、レジスタコード1を有する32ビットのレジスタである。これは、転送元レジスタとしてのみ機能する。処理の転送元としてバス入力レジスタBUS_INにアクセスすることにより、受信用FIFO34を介してアイソクロノスデータパイプ20に送られる1つのクワドレットデータが計時される。さらに続いてバス入力レジスタBUS_INにアクセスすると、受信データストリーム中の次のクワドレットデータがアクセスされる。
バス出力レジスタBUS_OUTは、レジスタコード2を有する34ビットのレジスタである。これは、転送先レジスタとしてのみ機能する。処理の転送先としてバス出力レジスタBUS_OUTにアクセスすることにより、アイソクロノスデータパイプ20を介して送信用FIFO30に送られる1つのクワドレットデータ計時される。さらに続いてバス出力レジスタBUS_0UTにアクセスすると、送信データストリーム中の次のクワドレットデータがアクセスされる。
データレジスタD0〜D7は、それぞれレジスタコード4、5、6、7、8、9、A、Bを有する34ビットのレジスタである。これらは、転送元レジスタにも転送先レジスタにもなる。データレジスタD0〜D7は、あらゆる処理において、転送元レジスタ又は転送先レジスタとして使用できる。
データインタフェースレジスタDATA_0〜DATA_3は、それぞれレジスタコード10、11、12、13を有する32ビットのレジスタである。これらは、転送元レジスタにも、転送先レジスタにもなる。
データインタフェースレジスタDATA_0〜DATA_3は、それぞれ異なるDMAチャンネルにアクセスする。これらのレジスタを使用する場合、出力イネーブルフィールドDMA_out_enをプログラミングにより一致させる必要がある。
アイソクロノスデータパイプ20は、8つの1バイトのレジスタの線形リストから構成されるスタックを備えている。スタック構造のレジスタは、サブルーチン命令及びリターン命令への分岐の際にのみアクセスされる。本発明の好ましい実施の形態において、スタックレジスタS0〜S7は、それぞれレジスタアドレス0〜7を有する。スタックレジスタの実際の数は、特定の具体例に応じて変化する。出力制御ストアプログラムがロードされると、スタックポインタの値は、自動的に初期化されて0となる。この値は、対応するスタックレジスタS0を指示する。
アイソクロノスデータパイプ20がサブルーチンに分岐すると、アイソクロノスデータパイプ20は、スタックポインタをデクリメントし、現在のスタックレジスタに次の制御ストア命令のアドレスを格納し、スタックポインタの値をインクリメントし、転送元フィールドの下位バイトによって示される制御ストア命令に分岐する。アイソクロノスデータパイプ20がリターン命令を実行すると、アイソクロノスデータパイプ20は、スタックポインタをデクリメントし、さらにアイソクロノスデータパイプ20は、現在のスタックレジスタに含まれる制御ストア命令に分岐する。スタックポインタの値が0である場合に、さらにスタックポインタがデクリメントされると、その値は0から変化せず、このときアイソクロノスデータパイプ20は、アイソクロノスデータパケット又はサイクルスタートパケットを受信するまで、処理を中断する。アイソクロノスデータパイプ20が出力制御ストアプログラムを実行中にサイクルスタートパケット又はイネーブルされたアイソクロノスチャンネルのデータを受信した場合、アイソクロノスデータパイプ20は、出力制御ストアプログラムの実行を中断し、実行中の命令のスタックにおけるアドレスを記憶し、スタックポインタをデクリメントした後、適切な位置にディスパッチして受信パケットを処理する。
各アイソクロノス制御ストア命令は、オペコードフィールドと、転送元フィールドと、転送先フィールドと、即時値フィールドと、即時フィールドと、予備フィールドとを含んでいる。オペコードフィールドは、図5を参照して後に説明するように、実行される処理を記述する6ビットのフィールドである。転送元フィールドsrcは、レジスタ値又は即時値を特定する4ビットのフィールドであり、これは特定された処理のための転送元を示す値を格納している。転送先フィールドdestは、特定された処理のために転送先レジスタを特定する4ビットのフィールドである。即時値フィールドimm.valは、1ビットのフィールドであり、論理的高レベルに設定されると、即時フィールドにオペランドの1つが含まれることを示すする。即時フィールドimmは、34ビットのフィールドであり、即時値フィールドimm_valが論理的高レベルに設定された場合、処理に用いるための即時値を特定する。本発明の好ましい実施の形態において、予備フィールドは、13ビットから構成され、アイソクロノスデータパイプ20の他の実施の形態のために確保されている。
データストリーム処理の間にアイソクロノスデータパイプ20によって実現され、オペコードフィールドに含まれる可能性がある操作コードを下記表4に示す。アイソクロノスデータパイプ20は、これらの処理の結果を転送先となりうるどのレジスタにも格納することができる。転送先となりうるレジスタには、表4に示すように、データレジスタD0〜D7、アイソクロノスの送信用FIFO30及び転送先として環境設定されたDMAチャンネル等が含まれる。
表4にリストされる大部分の処理には、2つの簡略命令が設けられている。「I」を含む簡略命令は、即時値を用いた処理を実行させる。「I」を含まない簡略命令は、転送元レジスタの値と転送先レジスタの値の値を用いた処理を実行させる。
MOVE処理が実行されると、転送元フィールドsrcで特定されるレジスタの値は、転送先フィールドdestで特定されるレジスタに移動する。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。
MOVE Multiple処理が実行されると、カウント値によって特定される一定数のクワドレットデータは、転送元フィールドsrcで特定されるレジスタから転送先フィールドdestで特定されるレジスタに移動する。カウント値は、命令の即時フィールドによって指定されるレジスタに格納される。好ましくは、MOVE Multiple処理において、転送元フィールドsecで特定されるレジスタは、データインタフェースレジスタDATA_0〜DATA_3のうちの1つであり、このレジスタは、DMAチャンネル又はバス入力レジスタBUS_INにアクセスする。好ましくは、この処理において、転送先フィールドdestで特定されるレジスタは、データインタフェースレジスタDATA_0〜DATA_3のうちの1つであり、このレジスタは、DMAチャンネル又はバス出力レジスタBUS_0UTにアクセスする。
AND処理の間、転送元フィールドsrc及び転送先フィールドdestの値に対する論理的論理積演算が実行され、この演算の結果は、転送先フィールドdestで特定されるレジスタに格納される。ANDI処理では、転送先フィールドdestの値に代えて即時フィールドの値をオペランドのうちの1つとして使用し、演算結果を転送先フィールドdestで特定されるレジスタに格納する。転送元フィールドsecで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsecで特定されるレジスタ及び転送先フィールドdesで特定されるレジスタがいずれも34ビットのレジスタである場合、論理積演算は34のビットの全てに対して実行される。
OR処理においては、転送元フィールドsrc及び転送先フィールドdestで特定されるレジスタの値に対して論理和演算が実行される。この演算結果は、転送先フィールドdestで特定されるレジスタに格納される。ORI形式の命令に基づく処理では、転送先フィールドdestの値に代えて、即時フィールドの値をオペランドの1つとして使用する。演算の結果は、転送先フィールドdestで特定されるレジスタに格納される。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsrcで特定されるレジスタ及び転送先フィールドdestで特定されるレジスタがいずれも34ビットのレジスタである場合、論理和演算は34ビットの全てに対して実行される。
SHIFT処理が実行されると、転送先レジスタdestの値は、転送元レジスタsrcの値によって特定されるビット数分シフトされ、演算結果は転送先フィールドdestで特定されるレジスタに格納される。正のシフト値は、転送先レジスタの値を下位ビットの方向である右方向にシフトする、そして、左側の最上位ビットには0が充填される。負のシフト値は、転送先レジスタの中で値を上位ビットの方向である左方向にシフトする、そして、右側の最下位ビットには0が充填される。命令がSHIFTI形式で実行された場合、即時フィールドにおいて特定されるビット数によって転送元レジスタの値がシフトされ、その結果が転送先フィールドdestで特定されるレジスタに格納される。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsecで特定されるレジスタ及び転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、シフト演算は下位32ビットに対してのみ実行される。
CMP処理が実行されると、転送元レジスタsrcの値は転送先レジスタdestの値から減算される。CMP処理の結果が正の値である場合、Zビットは論理的高レベルに設定される。CMP処理の結果が負又は0である場合、Zビットは論理的低レベルに設定される。CMP処理の結果は、どこにも記憶されない。この命令がCMPI形式で実行された場合、即時値が転送元レジスタsecの値から減算され、その結果に応じて、上述と同様にしてZビットが設定される。この命令も、処理の結果を記憶しない。
ADD処理が実行されると、転送元レジスタsrcの値は転送先レジスタdestの値に加算され、この演算結果は、転送先レジスタdestに格納される。この命令がADDI形式で実行された場合、即時値が転送元レジスタsrcの値に加算され、演算結果は、転送先レジスタdestに格納される。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsrcで特定されるレジスタ及び転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、ADD処理は、下位32ビットに対してのみ実行される。
SUB処理が実行されると、転送先レジスタdestの値が転送元レジスタsrcの値から減算され、この演算結果は、転送先レジスタdestに格納される。この命令がSUBI形式で実行された場合、転送元レジスタの値から即時値が減算され、演算結果は、転送先レジスタdestに格納される。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、そして、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは、消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsrcで特定されるレジスタ及び転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、SUB処理は下位32ビットに対してのみ実行される。
MULT処理が実行されると、転送元レジスタsrcの値は、転送先レジスタdestの値によって乗算され、演算結果は、転送先レジスタdestに格納される。この命令がMULTI形式で実行された場合、転送元レジスタsrcには、即時値が乗算され、演算結果は、転送先レジスタdestに格納される。転送元フィールドsrcで特定されるレジスタが34ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが32ビットのレジスタである場合、上位2ビットは消失する。転送元フィールドsrcで特定されるレジスタが32ビットのレジスタであり、転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、上位2ビットは、いずれも論理的低レベルに設定される。転送元フィールドsrcで特定されるレジスタ及び転送先フィールドdestで特定されるレジスタが34ビットのレジスタである場合、MULT処理は、下位32ビットに対してのみ実行される。
BRANCH処理が実行されると、アイソクロノスデータパイプ20は、転送元フィールドsecの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsecは、レジスタ又は即時値を特定することができる。
BRANCH ON ZERO処理が実行されると、直前の演算又は移動制御ストア命令の結果が0である場合、アイソクロノスデータパイプ20は、転送元フィールドsecの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsecは、レジスタ又は即時値を特定することができる。
BRANCH ON NOT ZERO処理が実行されると、直前の演算又は移動制御ストア命令の結果が0ではない場合、アイソクロノスデータパイプ20は、転送元フィールドsrcの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsecは、レジスタ又は即時値を特定することができる。
BSR処理が実行されると、次の制御ストア命令のアドレスがスタックの上へ押し上げられ、アイソクロノスデータパイプ20は、転送元フィールドsecの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsecは、レジスタ又は即時値を特定することができる。
BSR ON ZERO処理が実行されると、直前の演算又は移動制御ストア命令の結果が0である場合、次の制御ストア命令のアドレスはスタックの上へ押し上げられ、アイソクロノスデータパイプ20は、転送元フィールドsecの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsrcは、レジスタ又は即時値を特定することができる。
BSR ON NOT ZERO処理が実行されると、直前の演算又は移動制御ストア命令の結果が0ではない場合、次の制御ストア命令のアドレスはスタックの上へ押し上げられ、アイソクロノスデータパイプ20は、転送元フィールドsrcの下位バイトに含まれる制御ストアアドレスに分岐する。転送元フィールドsrcは、レジスタ又は即時値を特定することができる。
RETURN処理が実行されると、直前の制御ストアアドレスはスタックからポップオフされ、アイソクロノスデータパイプ20は、そのアドレスに分岐する。
シリアルバスプロトコルにおいて定義されるアイソクロノス記録フォーマットは、バス58を介して送信されるアイソクロノスデータストリームを記録するためのフォーマットである。本発明を適用したアイソクロノスデータパイプ20は、シリアルバスプロトコルに基づいて、アイソクロノスデータの受信ストリームをアイソクロノス記録フォーマットに変換するようプログラミングされている。また、これに対応して、アイソクロノスデータパイプ20は、アイソクロノス記録フォーマットのデータからアイソクロノスデータストリームを生成するようにプログラミングされている。アイソクロノス記録フォーマットのデータストリームを図5に示す。なお、図5に示すデータストリームは、アイソクロノスサイクル境界から開始されている。
図5において、データストリーム94は、チャンネルA、Bの両方の各アイソクロノスサイクルに含まれるデータパケットを含む。図5におけるオフセット欄92は、各水平行が開始されるオフセット値を示す。ヘッダ水平行は、それぞれ4バイトから構成される。データセクションは、データパケットを転送するために必要とされるバイト数から構成される。各パケットのヘッダは、1秒フィールド、サイクルナンバフィールド及びサイクルフィールドを含む。各パケット内に設けられた各チャンネルのためのサブヘッダは、それぞれデータ長フィールド、タグフィールドtg、チャンネルフィールド、データフィールド及び同期フィールドsyを含む。各パケットにおいて、サブヘッダの後には、データセクションが設けられている。
実例:アイソクロノスデータからアイソクロノス記録フォーマットへの変換
表5に示す出力制御ストアプログラムは、アイソクロノスデータパイプ20がアイソクロノスチャンネル3及びアイソクロノスチャンネル5からなるアイソクロノスデータストリームを捕捉して、アイソクロノスチャンネル3をアイソクロノスチャンネル7に、及びアイソクロノスチャンネル5をアイソクロノスチャンネル9にマッピングし、得られたデータストリームをアイソクロノス記録フォーマットでDMAチャンネル0に送信するように、アプリケーション11、13がアイソクロノスデータパイプ20に対して行うプログラミングの実例を示すものである。
実例:アイソクロノス記録フォーマットからの変換処理
表6に示す出力制御ストアプログラムは、アイソクロノスデータパイプ20がアイソクロノス記録フォーマットを有するDMAチャンネル3内のデータストリームをバス58を介して転送できるアイソクロノスデータストリームに変換するよう、アプリケーション11、13がアイソクロノスデータパイプ20に対して行うプログラミングの実例を示す図である。データの転送元ストリームは、アイソクロノスチャンネル7、9を含む。この出力制御ストアプログラムは、アイソクロノスチャンネル7をアイソクロノスチャンネル1に、アイソクロノスチャンネル9をアイソクロノスチャンネル2にマッピングする。なお、表6に示すプログラムにおいては、DMAチャンネルに最初に出現するクワドレットデータは、サイクルスタートクワドレットである。
IEEE1394フォーマットバスを介して、アイソクロノスチャンネルを用いて転送される商業用デジタルオーディオデータ及びデジタルビデオデータには絶対時スタンプ(absolute time stamp)が含まれる。この絶対時スタンプは、送信側によって挿入され、受信側でデータのストリームをデコードするために必要なタイミング情報を再生するために使用される。同様に、例えばハードディスク装置等の非商業用オーディオデータビデオデータ記録装置は、後にデータが再生される場合でもデータを受信する側の機器が正常に動作するように、この挿入された絶対時スタンプを修正することができる。
アイソクロノスデータパイプ20をアプリケーション11、13によって初期化することによりアイソクロノスデータの転送が可能となる。アプリケーション11、13は、アイソクロノスデータパイプ20を初期化した後、アイソクロノスデータパイプ20の操作可能状態を変更するために制御レジスタ38を使う。現在の動作状態は、現在のチャンネルマスクレジスタch maskの値及び状態レジスタの下位バイトに含まれる情報によって定義される。
アイソクロノスデータパイプ20の状態を変更するために、アプリケーション11、13は、新しいチャンネルマスク値を保留中のチャンネルマスクレジスタpending ch maskに、及び新たな動作状態を制御レジスタ38にプログラミングする。制御レジスタ38への同じアクセスにおいて、アプリケーション11、13は、さらにイベントフィールドにゴービットをセットし、イベントをプログラミングする。プログラミングされたイベントが発生すると、アイソクロノスデータパイプ20は、保留中のチャンネルマスクレジスタpending ch maskの値を現在のチャンネルマスクレジスタch maskに転送する。アイソクロノスデータパイプ20は、さらに、制御レジスタ38の下位バイトが示す情報を状態レジスタの下位バイトに転送する。
アイソクロノスデータパイプ20の処理を止める場合、アプリケーション11、13は、保留中のチャンネルマスクレジスタpending ch maskに値1をプログラミングし、制御レジスタ38の送信イネーブルビットを論理的低レベルに設定する。動作状態が変更されると、アプリケーション11、13は、制御レジスタ38のイベントフィールドにゴービットを設定し、イベントをプログラミングする。イベントが発生すると、現在のチャンネルマスクレジスタch maskの値は0になり、状態レジスタにおける送信イネーブルビットは論理的低レベルに設定され、これによりアイソクロノスデータパイプ20の処理が停止される。アイソクロノスデータパイプ20の処理が停止されると、状態レジスタのアクティブビットは、論理的低レベルに設定される。
アイソクロノスデータパイプ20を起動させるために、アプリケーション11、13は、最初に出力制御ストアプログラムをロードし、制御ストアアドレスレジスタファイルに適切な制御ストアオフセットをプログラミングする。保留中のチャンネルマスクレジスタpending ch maskは、アイソクロノスデータパイプ20が受信するべきチャンネルのビットマスクを用いてプログラミングされる。アイソクロノスデータパイプ20がデータを受信していない場合、保留中のチャンネルマスクレジスタpending ch maskにおける値は0にプログラミングされる。制御レジスタ38におけるゴービットは、状態の変更を示すために論理的高レベルに設定される。アイソクロノスデータパイプ20がアイソクロノスデータを送信している場合、制御レジスタ38における送信イネーブルビットは論理的高レベルに設定される。アイソクロノスデータパイプ20がエラーにより処理を停止する場合、制御レジスタ38におけるストップオンエラービットは論理的高レベルに設定される。アイソクロノスデータパイプ20がアイソクロノスデータを送信している場合、送信アイソクロノスデータに含まれるDMAチャンネルに対応する制御レジスタ38内の出力イネーブルビットは、論理的高レベルに設定される。制御レジスタ38におけるイベントフィールドには、アイソクロノスデータパイプ20の状態を変更すイベントがプログラミングされる。
上述の通り、非同期データパイプ26は、アプリケーション11、13からバス58を介して実行される非同期データ転送動作を完了するために必要なトランザクションを自動的に生成する。本発明のアイソクロノスデータパイプ20の変形実施例において、アイソクロノスデータパイプ20がアイソクロノスデータと非同期データの両方を送受信するようなプログラミングを行ってもよい。この場合、非同期データパイプ26及びこれに対応する送信用FIFO32を設ける必要はない。さらに、この場合、アイソクロノスデータパイプ20がリンク回路100における唯一の論理ブロックとなるため、マルチプレクサ40及びデマルチプレクサ42を設ける必要はない。
先に述べたように、本発明の最良の実施の形態において、アイソクロノスデータパイプ20は、出力制御ストアプログラムを実行するアイソクロノスデータストリーム上で一連の処理を実行するようプログラミングされる。変形実施例において、アイソクロノスデータパイプ20は、非同期データも送受信するようにプログラミングされる。この変形実施例では、アイソクロノスデータパイプ20は、仮想非同期データパイプ26として機能し、データ送信時に適切なヘッダを生成し、受信データからはヘッダを除去するとともに、非同期データ転送動作に必要なトランザクションを生成する。これらの処理の詳細については、本出願と同日に提出された米国特許出願番号08/612,321号、「アプリケーションのバスの間の非同期データ転送を自動的に管理する非同期データパイプ(Asynchronous Data Pipe For Automatically Managing Asynchronous Data Transfers Between An Application And A Bus Structure)」に記載されている。この出願は、1997年9月12日に公開された国際出願公開番号WO97/33230に対応している。
この変形実施例において、アイソクロノスデータパイプ20は、アイソクロノスデータと非同期データの両方を送受信する。アイソクロノスデータパイプ20は、アプリケーション11、13によりプログラミングされ、必要に応じて、アイソクロノスデータストリームか非同期ストリームを処理するために適切なプログラムを実行する。非同期データを送受信する場合、アイソクロノスデータパイプ20は、適切な範囲内のアドレスに対するデータ転送動作を完了するために必要な読出トランザクション又は書込トランザクションを自動的に生成するようプログラミングされる。アイソクロノスデータパイプ20は、インクリメント機能がディスエーブルにされない限り、各データパケットのパケット長に応じて、各トランザクションのために転送先オフセットアドレスフィールドの値を自動的にインクリメントする。インクリメント機能がディスエーブルにされている場合とは、トランザクションが単一のアドレスにおいて実行される場合である。
本発明の原理に従った構造及び処理を特定の具体例に基づいて詳細に説明した。上述の説明で参照した具体例及びその細部は、本明細書に添付した請求の範囲を限定するものではない。
Claims (27)
- アプリケーション(11、13)とバス(58)との間で送受されるデータストリームを制御するデータストリーム制御方法において、
a.上記アプリケーション(11、13)及びバス(58)より選択されたデータソースからデータストリームを受信して、受信データストリームを生成するステップと、
b.上記受信データストリームを送信データストリームに変換するための一連のオペコードを入手するステップと、
c.上記一連のオペコードを実行して上記受信データストリームを上記送信データストリームに変換するステップとを有するデータストリーム制御方法。 - 上記受信データストリームは、アイソクロノスデータストリームであることを特徴とする請求の範囲第1項に記載のデータストリーム制御方法。
- 上記受信データストリームのチャンネル番号を判定するステップを更に有し、
上記一連のオペコードは、上記受信データストリームのチャンネル番号に対応しているメモリアドレスから得られることを特徴とする請求の範囲第2項に記載のデータストリーム制御方法。 - 上記バス(58)は、IEEE1394仕様のバスであることを特徴とする請求の範囲第3項に記載のデータストリーム制御方法。
- 上記受信データストリームは、非同期データストリーム及びアイソクロノスデータストリームのいずれかであることを特徴とする請求の範囲第1項に記載のデータストリーム制御方法。
- 上記受信データストリームが非同期データストリームであるか、アイソクロノスデータストリームであるかを判定するステップを有することを特徴とする請求の範囲第5項に記載のデータストリーム制御方法。
- 上記受信データストリームがアイソクロノスデータストリームであるとき、上記一連のオペコードは、上記チャンネル番号に対応するメモリアドレスから得られ、該受信データストリームが非同期データストリームであるとき、上記一連のオペコードは、非同期データストリームに対応するメモリアドレスから得られることを特徴とする請求の範囲第6項に記載のデータストリーム制御方法。
- 上記バス(58)は、IEEE1394仕様のバスであることを特徴とする請求の範囲第7項に記載のデータストリーム制御方法。
- アプリケーション(11、13)とバス(58)と間の双方向データストリームを制御するデータストリーム制御装置において、
a.上記アプリケーション(11、13)及びバス(58)より選択されたデータソースからデータストリームを受信して、受信データストリームを生成する受信データストリーム生成手段と、
b.受信データストリームを送信データストリームに変換するための一連のオペコードを入手する入手手段と、
c.上記入手手段に接続され、上記一連のオペコードを実行して、上記受信データストリームを送信データストリームに変換する送信データストリーム生成手段とを備えるデータストリーム制御装置。 - 上記データストリームがアプリケーション(11、13)から受信されたデータストリームであるときは、上記送信データストリームは、上記バス(58)に出力され、該データストリームが該バス(58)から受信されたデータストリームであるときは、該送信データストリームは、該アプリケーションに出力されることを特徴とする請求の範囲第9項に記載のデータストリーム制御装置。
- 上記入手手段に接続されるとともに、上記アプリケーションに接続され、上記一連のオペコードを記憶する記憶手段(24)を備えることを特徴とする請求の範囲第9項に記載のデータストリーム制御装置。
- 上記受信データストリームは、アイソクロノスデータストリームであることを特徴とする請求の範囲第11項に記載のデータストリーム制御装置。
- 上記一連のオペコードは、上記受信データストリームの転送に用いられたチャンネル番号に対応するメモリアドレスに格納されていることを特徴とする請求の範囲第12項に記載のデータストリーム制御装置。
- 上記バスは、IEEE1394仕様のバスであることを特徴とする請求の範囲第13項に記載のデータストリーム制御装置。
- 上記受信データストリーム生成手段に接続され、上記受信されたデータストリームがアイソクロノスデータストリームであるか、非同期データストリームであるかを判定する判定手段を更に備えることを特徴とする請求の範囲第11項に記載のデータストリーム制御装置。
- 上記受信されたデータストリームがアイソクロノスデータストリームであるとき、上記一連のオペコードは、該データストリームの転送に用いられたチャンネル番号に対応するメモリアドレスに格納され、該受信されたデータストリームが非同期データストリームであるときは、該一連のオペコードは、該非同期データに対応するメモリアドレスに格納されることを特徴とする請求の範囲第15項に記載のデータストリーム制御装置。
- 上記バス(58)は、IEEE1394仕様のバスであることを特徴とする請求の範囲第16項に記載のデータストリーム制御装置。
- 1つ以上のアプリケーション(11、13)とバス(58)との間のデータ転送動作を制御及び管理するデータ転送動作制御装置において、
a.上記1つ以上のアプリケーションとバスとの間に接続されたアイソクロノスデータ処理装置(20)と、
b.上記バス(58)に接続され、該バス(58)にデータを送信し、及び該バス(58)からデータを受信する物理インタフェース(56)とを備え、
上記アイソクロノスデータ処理装置は、
i.上記アプリケーション(11、13)及びバス(58)より選択されたデータソースからデータストリームを受信して、受信データストームを生成するデータストリム生成手段と、
ii.上記受信データストリームを送信データストリームに変換するための一連のオペコードを入手する入手手段と、
iii.上記入手手段に接続され、上記一連のオペコードを実行して上記受信データストリームを出力データストリームに変換する出力データストリーム生成手段とを備えることを特徴とするデータ転送動作制御装置。 - 上記入手手段に接続されるとともに、上記アプリケーション(11、13)に接続され、上記一連のオペコードを格納するメモリ(24)を更に備える請求の範囲第18項記載のデータ転送動作制御装置。
- 上記アプリケーション(11、13)とバス(58)との間の非同期データ転送動作を制御する非同期データパイプ(26)を更に備え、
上記非同期データパイプ(26)は、
a.上記アプリケーション(11、13)に接続され、上記非同期データ転送動作に関する命令を受信する命令受信手段と、
b.上記アプリケーション(11、13)と、上記バス(58)上のノードとの間の非同期データ転送動作を完了するために必要なトランザクションを生成するトランザクション生成手段とを備えることを特徴とする請求の範囲第19項に記載のデータ転送動作制御装置。 - 上記アイソクロノスデータ処理装置(20)と、上記非同期データパイプ(26)と、上記物理インタフェース(56)とに接続され、上記アイソクロノスデータ処理装置(20)及び非同期データパイプ(26)からのデータパケットを多重化して上記バス(58)に送信する多重化手段(40)を更に備えることを特徴とする請求の範囲第20項に記載のデータ転送動作制御装置。
- 上記アイソクロノスデータ処理装置(20)と、上記非同期データパイプ(26)と、上記物理インタフェース(56)とに接続され、上記バス(58)から受信したデータパケットを上記アイソクロノスデータ処理装置(20)又は上記非同期データパイプ(26)のうちの適切な一方にルーチングする分離手段(42)を更に備える請求の範囲第21項に記載のデータ転送動作制御装置。
- 上記バス(58)は、IEEE1394仕様のバスであることを特徴とする請求の範囲第22項に記載のデータ転送動作制御装置。
- 上記アイソクロノスデータ処理装置(20)は、上記アイソクロノスデータと上記非同期データの両方に関する一連のオペコードを実行することを特徴とする請求の範囲第19項に記載のデータ転送動作制御装置。
- 上記受信されたデータストリームがアイソクロノスデータストリームであるとき、上記一連のオペコードは、該データストリームの転送に用いられたチャンネル番号に対応するメモリアドレスに格納され、該受信されたデータストリームが非同期データストリームであるときは、該一連のオペコードは、該非同期データに対応するメモリアドレスに格納されることを特徴とする請求の範囲第24項に記載のデータ転送動作制御装置。
- 上記バス(58)は、IEEE1394仕様のバスであることを特徴とする請求の範囲第25項に記載のデータ転送動作制御装置。
- アプリケーション(11、13)とIEEE1394仕様のバス(58)との間に接続され、該アプリケーション(11、13)と該IEEE1394仕様のバス(58)との間のアイソクロノスデータ転送を管理するアイソクロノスデータ処理装置(20)において、
a.アイソクロノスデータストリームを処理するための一連のオペコードを上記アプリケーション(11、13)が格納する制御ストアメモリ(24)と、
b.上記アプリケーション(11、13)及びバス(58)より選択されたデータソースからデータストリームを受信して、受信データストリームを生成する受信データストリーム生成手段(44)と、
c.上記制御ストアメモリ及び受信データストリーム生成手段に接続され、上記制御ストアメモリに格納された一連のオペコードに基づいて上記受信データストリムを送信データストリームに変換する変換手段とを備えるアイソクロノスデータ処理装置(20)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1997/006240 WO1998047271A1 (en) | 1997-04-15 | 1997-04-15 | Protocol processor for manipulating a stream of data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001520823A JP2001520823A (ja) | 2001-10-30 |
JP4033915B2 true JP4033915B2 (ja) | 2008-01-16 |
Family
ID=22260718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54384298A Expired - Lifetime JP4033915B2 (ja) | 1997-04-15 | 1997-04-15 | データストリーム制御方法及び装置 |
Country Status (8)
Country | Link |
---|---|
EP (1) | EP0976228B1 (ja) |
JP (1) | JP4033915B2 (ja) |
KR (1) | KR100497166B1 (ja) |
AT (1) | ATE298485T1 (ja) |
AU (1) | AU2669797A (ja) |
CA (1) | CA2286163C (ja) |
DE (1) | DE69733617T2 (ja) |
WO (1) | WO1998047271A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292844B1 (en) * | 1998-02-12 | 2001-09-18 | Sony Corporation | Media storage device with embedded data filter for dynamically processing data during read and write operations |
KR100316650B1 (ko) * | 1998-08-29 | 2002-01-12 | 윤종용 | 상위 계층 데이터 전송을 위한 상위 프로토콜과 ieee 1394버스 정합 방법 |
DE19913585A1 (de) * | 1999-03-25 | 2000-09-28 | Thomson Brandt Gmbh | Verfahren zum Verwalten von über einen Datenbus empfangenen Daten sowie Vorrichtung zur Durchführung des Verfahrens |
US6519265B1 (en) * | 1999-05-28 | 2003-02-11 | Sony Corporation | System and method for context switching in an electronic network |
US6535940B1 (en) * | 1999-07-28 | 2003-03-18 | Sony Corporation | System and method for fast data transfers in an electronic network |
US6721859B1 (en) * | 1999-10-21 | 2004-04-13 | Sony Corporation | Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data |
EP1178395A3 (en) | 2000-07-31 | 2009-05-20 | Texas Instruments Incorporated | Apparatus and method for communicating a multiword digital message with an isochronous-signal processor |
FR2813408B1 (fr) * | 2000-08-29 | 2006-08-04 | Canon Kk | Procedes de transfert de types multiples de donnees au sein d'un noeud de communication, et reseaux comportant un tel noeud |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3458469B2 (ja) * | 1994-07-15 | 2003-10-20 | ソニー株式会社 | 信号受信装置及び通信方法 |
-
1997
- 1997-04-15 KR KR10-1999-7009381A patent/KR100497166B1/ko active IP Right Grant
- 1997-04-15 CA CA002286163A patent/CA2286163C/en not_active Expired - Lifetime
- 1997-04-15 DE DE69733617T patent/DE69733617T2/de not_active Expired - Lifetime
- 1997-04-15 WO PCT/US1997/006240 patent/WO1998047271A1/en active IP Right Grant
- 1997-04-15 JP JP54384298A patent/JP4033915B2/ja not_active Expired - Lifetime
- 1997-04-15 AU AU26697/97A patent/AU2669797A/en not_active Abandoned
- 1997-04-15 AT AT97918637T patent/ATE298485T1/de not_active IP Right Cessation
- 1997-04-15 EP EP97918637A patent/EP0976228B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU2669797A (en) | 1998-11-11 |
DE69733617T2 (de) | 2006-05-11 |
CA2286163C (en) | 2009-10-13 |
ATE298485T1 (de) | 2005-07-15 |
EP0976228A1 (en) | 2000-02-02 |
WO1998047271A1 (en) | 1998-10-22 |
KR100497166B1 (ko) | 2005-06-23 |
KR20010006297A (ko) | 2001-01-26 |
EP0976228B1 (en) | 2005-06-22 |
JP2001520823A (ja) | 2001-10-30 |
DE69733617D1 (de) | 2005-07-28 |
CA2286163A1 (en) | 1998-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6233637B1 (en) | Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure | |
CA2247341C (en) | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure | |
US5983301A (en) | Method and system for assigning a direct memory access priority in a packetized data communications interface device | |
US6947442B1 (en) | Data transfer control device and electronic equipment | |
US6006286A (en) | System for controlling data packet transfers by associating plurality of data packet transfer control instructions in packet control list including plurality of related logical functions | |
EP1055236B1 (en) | Media storage device with embedded data filter for dynamically processing data during read and write operations | |
EP0803819A2 (en) | Method of assigning a data packet to a channel in a IEEE 1394 communications system | |
EP0804033A2 (en) | Improvements in or relating to electronic devices | |
WO2000023906A1 (en) | System for dynamically binding subobjects into objects to represent devices within ieee 1394 serial bus network | |
US6857028B1 (en) | Data transfer control device and electronic equipment | |
EP1093269B1 (en) | Data transfer control device and electronic equipment | |
JP4033915B2 (ja) | データストリーム制御方法及び装置 | |
EP0803803B1 (en) | Method of configuring a data packet transfer device | |
EP0803821A2 (en) | DMA channel assignment in a data packet transfer device | |
JP3785747B2 (ja) | シリアルインタフェース回路およびその信号処理方法 | |
EP0804008A2 (en) | Data packet transfer control method | |
JP3967792B2 (ja) | パケット化されたデータ通信インタフェース機器のpciシリアルバスインタフェース機器回路を自律的に動作させるための方法ならびに自律ブート回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040415 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070123 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070330 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070723 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071024 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 3 |
|
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: 20111102 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131102 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |