JP2002366508A - データ転送方法 - Google Patents
データ転送方法Info
- Publication number
- JP2002366508A JP2002366508A JP2001172374A JP2001172374A JP2002366508A JP 2002366508 A JP2002366508 A JP 2002366508A JP 2001172374 A JP2001172374 A JP 2001172374A JP 2001172374 A JP2001172374 A JP 2001172374A JP 2002366508 A JP2002366508 A JP 2002366508A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data
- dma
- transferred
- transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
(57)【要約】
【課題】 アシンクロナスパケットをより好適に転送で
きるようにする。 【解決手段】 アシンクロナス送信DMA31は、ホスト
バス2に接続されているRAM(Random Access Memory)に
格納されているデータをパケット単位でアシンクロナス
送信FIFO32にDMA(Direct Memory Access)転送する。
そして、アシンクロナス送信DMA31は、DMA転送するこ
とが指示されたパケットが、RAMの離れたメモリ領域に
格納されている場合、そのパケットを構成するデータの
それぞれに対してDMAを起動し、それぞれのデータ毎に
アシンクロナス送信FIFO32に書き込む。
きるようにする。 【解決手段】 アシンクロナス送信DMA31は、ホスト
バス2に接続されているRAM(Random Access Memory)に
格納されているデータをパケット単位でアシンクロナス
送信FIFO32にDMA(Direct Memory Access)転送する。
そして、アシンクロナス送信DMA31は、DMA転送するこ
とが指示されたパケットが、RAMの離れたメモリ領域に
格納されている場合、そのパケットを構成するデータの
それぞれに対してDMAを起動し、それぞれのデータ毎に
アシンクロナス送信FIFO32に書き込む。
Description
【0001】
【発明の属する技術分野】本発明は、データ転送方法に
関し、特に、アシンクロナスパケットをDMA(Direct Mem
ory Access)転送する場合において、より好適なデータ
転送方法に関する。
関し、特に、アシンクロナスパケットをDMA(Direct Mem
ory Access)転送する場合において、より好適なデータ
転送方法に関する。
【0002】
【従来の技術】近年、各社で開発、または販売されてい
るIEEE(Institute of Electrical andElectronics Engi
neers)1394対応製品は、100Mbps,200Mbps,40
0Mbpsという高い転送レートでリアルタイムにデータ転
送を行うことができることから、コンピュータと各種の
周辺機器を接続するシリアルインタフェースとして普及
が期待されている。
るIEEE(Institute of Electrical andElectronics Engi
neers)1394対応製品は、100Mbps,200Mbps,40
0Mbpsという高い転送レートでリアルタイムにデータ転
送を行うことができることから、コンピュータと各種の
周辺機器を接続するシリアルインタフェースとして普及
が期待されている。
【0003】ところで、このような特徴を有するIEEE13
94製品は、IEEE1394で規定されているリンク層(Link La
yer)のチップと、物理層(Physical Layer)のチップ、ま
たはこれらのチップを1つのチップに統合したチップに
より構成されており、例えば、CPU(Central Processin
g Unit)、ROM(Read Only Memory)、およびRAM(Rand
om Access Memory)から構成されるホストシステムと、
IEEE1394シリアルバスとの間のインタフェースとしての
機能を有する。
94製品は、IEEE1394で規定されているリンク層(Link La
yer)のチップと、物理層(Physical Layer)のチップ、ま
たはこれらのチップを1つのチップに統合したチップに
より構成されており、例えば、CPU(Central Processin
g Unit)、ROM(Read Only Memory)、およびRAM(Rand
om Access Memory)から構成されるホストシステムと、
IEEE1394シリアルバスとの間のインタフェースとしての
機能を有する。
【0004】また、このようなIEEE1394製品では、CPU
の制御を介することなくデータを転送するDMA転送がサ
ポートされているものもあり、例えば、ホストシステム
内のRAMから所定のデバイスに、またはその逆にデバイ
スからホストシステム内のRAMに、上述した伝送方式に
準ずるパケット形式で各種のデータを転送することが可
能である。
の制御を介することなくデータを転送するDMA転送がサ
ポートされているものもあり、例えば、ホストシステム
内のRAMから所定のデバイスに、またはその逆にデバイ
スからホストシステム内のRAMに、上述した伝送方式に
準ずるパケット形式で各種のデータを転送することが可
能である。
【0005】
【発明が解決しようとする課題】しかしながら、RAMに
展開されているデータを、あるデバイス(バッファメモ
リ)にDMA転送する場合において、1回のDMA転送で転送
することができるのは、RAM内の連続したメモリ領域に
存在するパケットのみであり、例えば、そのパケットを
構成するヘッダ部とデータ部が、それぞれ離れた領域に
ある場合、その編成を行い、連続した領域に移し替える
必要があるという課題があった。
展開されているデータを、あるデバイス(バッファメモ
リ)にDMA転送する場合において、1回のDMA転送で転送
することができるのは、RAM内の連続したメモリ領域に
存在するパケットのみであり、例えば、そのパケットを
構成するヘッダ部とデータ部が、それぞれ離れた領域に
ある場合、その編成を行い、連続した領域に移し替える
必要があるという課題があった。
【0006】図1は、パケット編成の概念を説明する図
である。
である。
【0007】例えば、あるパケットをDMA転送する場合
において、図の左側(メモリ領域1)に示すように、そ
のパケットを構成するヘッダ部が#N乃至#N+1の領
域に記述されており、そのデータ部が#N+3乃至#N
+5の領域に記述されている場合、1回のDMA転送で
は、例えば、#N乃至#N+1の領域に記述されている
ヘッダ部だけ、または、#N+3乃至#N+5の領域に
記述されているデータ部だけといった部分的な転送しか
行うことができない。
において、図の左側(メモリ領域1)に示すように、そ
のパケットを構成するヘッダ部が#N乃至#N+1の領
域に記述されており、そのデータ部が#N+3乃至#N
+5の領域に記述されている場合、1回のDMA転送で
は、例えば、#N乃至#N+1の領域に記述されている
ヘッダ部だけ、または、#N+3乃至#N+5の領域に
記述されているデータ部だけといった部分的な転送しか
行うことができない。
【0008】従って、図の右側(メモリ領域2)に示す
ように、ヘッダ部を#M乃至#M+1のメモリ領域に移
動させ、データ部を#M+1乃至#M+3のメモリ領域
に移動させて、それぞれを連続した領域に移し替えると
いった、パケットの編成を行わなければならず、余計な
処理が増えるという課題があった。
ように、ヘッダ部を#M乃至#M+1のメモリ領域に移
動させ、データ部を#M+1乃至#M+3のメモリ領域
に移動させて、それぞれを連続した領域に移し替えると
いった、パケットの編成を行わなければならず、余計な
処理が増えるという課題があった。
【0009】本発明はこのような状況に鑑みてなされた
ものであり、1つのパケットを構成するデータが、複数
の領域に離れて存在する場合であっても、パケットの編
成を行うことなく、データを好適に転送できるようにし
たものである。
ものであり、1つのパケットを構成するデータが、複数
の領域に離れて存在する場合であっても、パケットの編
成を行うことなく、データを好適に転送できるようにし
たものである。
【0010】
【課題を解決するための手段】本発明のデータ転送方法
は、中央演算装置の処理対象として所定のメモリに格納
されているパケットを中央演算装置の制御によらずにバ
ッファメモリに転送する転送ステップと、転送ステップ
の処理により、バッファメモリに転送されたパケットの
数が所定の数となったとき、所定の数のパケットをひと
まとまりとしてIEEE1394シリアルバスに送出する送出ス
テップとを含み、パケットを構成するデータが、メモリ
の不連続な領域に分散して格納されている場合、パケッ
トを構成するデータのそれぞれが、転送ステップの処理
によりバッファメモリに転送されることを特徴とする。
は、中央演算装置の処理対象として所定のメモリに格納
されているパケットを中央演算装置の制御によらずにバ
ッファメモリに転送する転送ステップと、転送ステップ
の処理により、バッファメモリに転送されたパケットの
数が所定の数となったとき、所定の数のパケットをひと
まとまりとしてIEEE1394シリアルバスに送出する送出ス
テップとを含み、パケットを構成するデータが、メモリ
の不連続な領域に分散して格納されている場合、パケッ
トを構成するデータのそれぞれが、転送ステップの処理
によりバッファメモリに転送されることを特徴とする。
【0011】パケットは、アシンクロナスパケットであ
るようにすることができる。
るようにすることができる。
【0012】転送ステップの処理によりパケット、また
はデータがバッファメモリに転送される毎に、所定の信
号を出力する出力ステップと、出力ステップの処理によ
り出力された信号の出力回数を計数する計数ステップと
をさらに含み、計数ステップの処理による計数結果に基
づいて、送出ステップの処理により、所定の数のパケッ
トがIEEE1394シリアルバスに送出されるようにすること
ができる。
はデータがバッファメモリに転送される毎に、所定の信
号を出力する出力ステップと、出力ステップの処理によ
り出力された信号の出力回数を計数する計数ステップと
をさらに含み、計数ステップの処理による計数結果に基
づいて、送出ステップの処理により、所定の数のパケッ
トがIEEE1394シリアルバスに送出されるようにすること
ができる。
【0013】本発明のデータ転送方法においては、中央
演算装置の処理対象として所定のメモリに格納されてい
るパケットが中央演算装置の制御によらずにバッファメ
モリに転送され、バッファメモリに転送されたパケット
の数が所定の数となったとき、所定の数のパケットがひ
とまとまりとしてIEEE1394シリアルバスに送出される。
また、パケットを構成するデータが、メモリの不連続な
領域に分散して格納されている場合、パケットを構成す
るデータのそれぞれが、バッファメモリに転送される。
演算装置の処理対象として所定のメモリに格納されてい
るパケットが中央演算装置の制御によらずにバッファメ
モリに転送され、バッファメモリに転送されたパケット
の数が所定の数となったとき、所定の数のパケットがひ
とまとまりとしてIEEE1394シリアルバスに送出される。
また、パケットを構成するデータが、メモリの不連続な
領域に分散して格納されている場合、パケットを構成す
るデータのそれぞれが、バッファメモリに転送される。
【0014】
【発明の実施の形態】図2は、本発明を適用したIEEE13
94モジュール(IC(Integrated Circuit))1の構成例を
示す図である。
94モジュール(IC(Integrated Circuit))1の構成例を
示す図である。
【0015】IEEE1394モジュール1は、ホストバス2と
IEEE1394シリアルバス3−1乃至3−3とのインタフェ
ースとしての機能を有している。そして、基本的に、ホ
ストバス2とのインタフェースであるホストバスインタ
フェース11、処理対象としてRAM23に展開されてい
るデータをDMA転送するDMAコントローラ12、後述する
IEEE1394のレイヤ構造として規定されているリンク層の
デバイスであるリンク層デバイス13、物理層のデバイ
スである物理層デバイス14、およびIEEE1394シリアル
バス3−1乃至3−3のそれぞれのポートであるポート
15−1乃至15−3から構成されている。
IEEE1394シリアルバス3−1乃至3−3とのインタフェ
ースとしての機能を有している。そして、基本的に、ホ
ストバス2とのインタフェースであるホストバスインタ
フェース11、処理対象としてRAM23に展開されてい
るデータをDMA転送するDMAコントローラ12、後述する
IEEE1394のレイヤ構造として規定されているリンク層の
デバイスであるリンク層デバイス13、物理層のデバイ
スである物理層デバイス14、およびIEEE1394シリアル
バス3−1乃至3−3のそれぞれのポートであるポート
15−1乃至15−3から構成されている。
【0016】ここで、図3を参照して、IEEE1394シリア
ルバスのレイヤ構造について説明する。
ルバスのレイヤ構造について説明する。
【0017】IEEE1394プロトコルは、トランザクション
層(Transaction Layer)、リンク層(Link Layer)、およ
び物理層(Physical Layer)の3層の階層構造を有する。
各階層は、相互に通信し、また、それぞれの階層は、シ
リアルバス管理(Serial BusManagement)と通信を行う。
さらに、トランザクション層およびリンク層は、上位の
アプリケーションとの通信も行う。この通信に用いられ
る送受信メッセージは、要求(Request)、指示(表示)
(Indication)、応答(Response)、確認(Confirmation)の
4種類があり、図3における矢印は、この通信を示して
いる。
層(Transaction Layer)、リンク層(Link Layer)、およ
び物理層(Physical Layer)の3層の階層構造を有する。
各階層は、相互に通信し、また、それぞれの階層は、シ
リアルバス管理(Serial BusManagement)と通信を行う。
さらに、トランザクション層およびリンク層は、上位の
アプリケーションとの通信も行う。この通信に用いられ
る送受信メッセージは、要求(Request)、指示(表示)
(Indication)、応答(Response)、確認(Confirmation)の
4種類があり、図3における矢印は、この通信を示して
いる。
【0018】なお、矢印の名称の最後に".req"がついた
通信は要求を表し、".ind"は指示を表す。また、".res
p"は応答を、".conf"は確認をそれぞれ表す。例えば、T
R_CONT.reqは、シリアルバス管理から、トランザクショ
ン層に送られる、要求の通信である。
通信は要求を表し、".ind"は指示を表す。また、".res
p"は応答を、".conf"は確認をそれぞれ表す。例えば、T
R_CONT.reqは、シリアルバス管理から、トランザクショ
ン層に送られる、要求の通信である。
【0019】トランザクション層は、アプリケーション
からの要求により、他のIEEE1394機器(IEEE1394インタ
フェースを有する機器)とデータ通信を行う為のアシン
クロナス(asynchronous)伝送サービスを提供し、ISO/IE
C13213で必要とされるリクエストレスポンスプロトコル
(Request Response Protocol)を実現する。
からの要求により、他のIEEE1394機器(IEEE1394インタ
フェースを有する機器)とデータ通信を行う為のアシン
クロナス(asynchronous)伝送サービスを提供し、ISO/IE
C13213で必要とされるリクエストレスポンスプロトコル
(Request Response Protocol)を実現する。
【0020】すなわち、IEEE1394規格によるデータ転送
方式としては、アイソクロナス伝送の他に、アシンクロ
ナス伝送があり、トランザクション層は、アシンクロナ
ス伝送の処理を行う。アシンクロナス伝送で伝送される
データは、トランザクション層のプロトコルに要求する
処理の単位であるリードトランザクション(read Transa
ction)、ライトトランザクション(write Transactio
n)、ロックトランザクション(lock Transaction)の3種
類のトランザクションによって、IEEE1394機器間で伝送
される。アシンクロナス伝送によって伝送されるパケッ
トについては、後に詳述する。
方式としては、アイソクロナス伝送の他に、アシンクロ
ナス伝送があり、トランザクション層は、アシンクロナ
ス伝送の処理を行う。アシンクロナス伝送で伝送される
データは、トランザクション層のプロトコルに要求する
処理の単位であるリードトランザクション(read Transa
ction)、ライトトランザクション(write Transactio
n)、ロックトランザクション(lock Transaction)の3種
類のトランザクションによって、IEEE1394機器間で伝送
される。アシンクロナス伝送によって伝送されるパケッ
トについては、後に詳述する。
【0021】リンク層は、アクノリッジ(Acknowledge)
を用いたデータ伝送サービス、アドレス処理、データエ
ラー確認、データのフレーミング等の処理を行う。リン
ク層が行う1つのパケット伝送はサブアクションと呼ば
れ、サブアクションには、アシンクロナスサブアクショ
ン(Asynchronous Subaction)およびアイソクロナスサブ
アクション(Isochronous Subaction)の2種類がある。
を用いたデータ伝送サービス、アドレス処理、データエ
ラー確認、データのフレーミング等の処理を行う。リン
ク層が行う1つのパケット伝送はサブアクションと呼ば
れ、サブアクションには、アシンクロナスサブアクショ
ン(Asynchronous Subaction)およびアイソクロナスサブ
アクション(Isochronous Subaction)の2種類がある。
【0022】アシンクロナスサブアクションは、ノード
(IEEE1394においてアクセスできる単位)を特定する物
理ID(Physical Identification)、およびノード内のア
ドレスを指定して行われ、データを受信したノードは、
アクノリッジを返送する。但し、IEEE1394シリアルバス
内の全てのノードにデータを送るアシンクロナスブロー
ドキャストサブアクションでは、データを受信したノー
ドは、アクノリッジを返送しない。
(IEEE1394においてアクセスできる単位)を特定する物
理ID(Physical Identification)、およびノード内のア
ドレスを指定して行われ、データを受信したノードは、
アクノリッジを返送する。但し、IEEE1394シリアルバス
内の全てのノードにデータを送るアシンクロナスブロー
ドキャストサブアクションでは、データを受信したノー
ドは、アクノリッジを返送しない。
【0023】一方、アイソクロナスサブアクションで
は、データが、一定周期(前述したように、125μ
s)で、チャンネル番号を指定して伝送される。なお、
アイソクロナスサブアクションでは、アクノリッジは返
送されない。
は、データが、一定周期(前述したように、125μ
s)で、チャンネル番号を指定して伝送される。なお、
アイソクロナスサブアクションでは、アクノリッジは返
送されない。
【0024】物理層は、リンク層で用いる論理シンボル
を電気信号に変換する。さらに、物理層は、リンク層か
らのアービトレーション(IEEE1394シリアルバスを使用
するノードが競合したときの調停)の要求に対する処理
を行ったり、バスリセットに伴うIEEE1394シリアルバス
の再コンフィグレーションを実行し、物理IDの自動割り
当てを行ったりする。
を電気信号に変換する。さらに、物理層は、リンク層か
らのアービトレーション(IEEE1394シリアルバスを使用
するノードが競合したときの調停)の要求に対する処理
を行ったり、バスリセットに伴うIEEE1394シリアルバス
の再コンフィグレーションを実行し、物理IDの自動割り
当てを行ったりする。
【0025】シリアスバス管理では、基本的なバス制御
機能の実現とISO/IEC13212のCSR(Control&Status Regis
ter Architecture)が提供される。シリアスバス管理
は、ノードコントローラ(Node Controllor)、アイソク
ロナスリソースマネージャ(Isochronous Resource Mana
ger)、およびバスマネージャ(Bus Manager)の機能を有
する。ノードコントローラは、ノードの状態、物理ID等
を制御し、トランザクション層、リンク層、および物理
層を制御する。アイソクロナスリソースマネージャは、
アイソクロナス通信に用いられるリソースの利用状況を
提供するもので、アイソクロナス通信を行うためには、
IEEE1394シリアルバスに接続された機器の中に少なくと
も1つ、アイソクロナスリソースマネージャの機能を有
するIEEE1394機器が必要である。バスマネージャは、各
機能の中では、最も高機能であり、IEEE1394シリアルバ
スの最適利用を図ることを目的とする。なお、アイソク
ロナスリソースマネージャとバスマネージャの存在は、
任意である。
機能の実現とISO/IEC13212のCSR(Control&Status Regis
ter Architecture)が提供される。シリアスバス管理
は、ノードコントローラ(Node Controllor)、アイソク
ロナスリソースマネージャ(Isochronous Resource Mana
ger)、およびバスマネージャ(Bus Manager)の機能を有
する。ノードコントローラは、ノードの状態、物理ID等
を制御し、トランザクション層、リンク層、および物理
層を制御する。アイソクロナスリソースマネージャは、
アイソクロナス通信に用いられるリソースの利用状況を
提供するもので、アイソクロナス通信を行うためには、
IEEE1394シリアルバスに接続された機器の中に少なくと
も1つ、アイソクロナスリソースマネージャの機能を有
するIEEE1394機器が必要である。バスマネージャは、各
機能の中では、最も高機能であり、IEEE1394シリアルバ
スの最適利用を図ることを目的とする。なお、アイソク
ロナスリソースマネージャとバスマネージャの存在は、
任意である。
【0026】このようなレイヤ構造に基づいてIEEE1394
モジュール1のリンク層デバイス13、および物理層デ
バイス14が機能し、CPU(中央演算装置)21、ROM2
2、およびRAM23から構成されるホストシステムによ
り処理されたデータ(処理対象のデータ)が、適宜、IE
EE1394シリアルバス3−1乃至3−3にデータを送出す
るためのバッファメモリにDMA転送される。以下におい
て、IEEE1394シリアルバス3−1乃至3−3のそれぞれ
を個々に区別する必要がない場合、まとめてIEEE1394シ
リアルバス3と称する。
モジュール1のリンク層デバイス13、および物理層デ
バイス14が機能し、CPU(中央演算装置)21、ROM2
2、およびRAM23から構成されるホストシステムによ
り処理されたデータ(処理対象のデータ)が、適宜、IE
EE1394シリアルバス3−1乃至3−3にデータを送出す
るためのバッファメモリにDMA転送される。以下におい
て、IEEE1394シリアルバス3−1乃至3−3のそれぞれ
を個々に区別する必要がない場合、まとめてIEEE1394シ
リアルバス3と称する。
【0027】図4は、図2のIEEE1394モジュール1によ
り構築されるDMA転送の機能構成例を示すブロック図で
ある。
り構築されるDMA転送の機能構成例を示すブロック図で
ある。
【0028】ホストバスインタフェース11は、ホスト
バス2から取り込んだデータ(パケット)をアシンクロ
ナス送信DMA31に転送し、また、アシンクロナス受信F
IFO(First In First Out)36から転送されてきたデー
タをホストバス2に出力する。また、ホストバスインタ
フェース11は、CPU21から転送されてきた制御信号
を取り込み、それをレジスタ34に出力し、CPU21が
レジスタ34に対して各種の設定を行うことができるよ
うにする。
バス2から取り込んだデータ(パケット)をアシンクロ
ナス送信DMA31に転送し、また、アシンクロナス受信F
IFO(First In First Out)36から転送されてきたデー
タをホストバス2に出力する。また、ホストバスインタ
フェース11は、CPU21から転送されてきた制御信号
を取り込み、それをレジスタ34に出力し、CPU21が
レジスタ34に対して各種の設定を行うことができるよ
うにする。
【0029】なお、ホストバスインタフェース11は、
出力端子(XINT端子)を有しており、レジスタ34の設
定をホストシステムに提示する。例えば、出力端子に
は、DMA転送が終了したことを通知する出力などがなさ
れる。
出力端子(XINT端子)を有しており、レジスタ34の設
定をホストシステムに提示する。例えば、出力端子に
は、DMA転送が終了したことを通知する出力などがなさ
れる。
【0030】アシンクロナス送信DMA31は、レジスタ
34の設定に基づいてDMAを起動し、CPU21の処理対象
としてRAM23に展開されているデータをパケット単位
で取得し、それを後段のアシンクロナス送信FIFO32に
転送する(書き込ませる)。なお、図4においては、ホ
ストシステム(RAM23)からIEEE1394シリアルバス3
に対する転送をデータの送信とし、IEEE1394シリアルバ
ス3からホストシステム(RAM23)に対する転送をデ
ータの受信としている。
34の設定に基づいてDMAを起動し、CPU21の処理対象
としてRAM23に展開されているデータをパケット単位
で取得し、それを後段のアシンクロナス送信FIFO32に
転送する(書き込ませる)。なお、図4においては、ホ
ストシステム(RAM23)からIEEE1394シリアルバス3
に対する転送をデータの送信とし、IEEE1394シリアルバ
ス3からホストシステム(RAM23)に対する転送をデ
ータの受信としている。
【0031】アシンクロナス送信DMA31は、後に詳述
するように、CPU21により指定されたパケットをRAM2
3から取得し、アシンクロナス送信FIFO32に転送する
が、そのパケットを構成するデータがRAM23の離れた
メモリ領域に分散して存在する場合、それぞれのデータ
に対してDMAを起動して転送する。例えば、あるパケッ
トのヘッダ部とデータ部がそれぞれ離れたメモリ領域に
分散して存在する場合、1回目のDMAでそのヘッダ部を
転送し、2回目のDMAでそのデータ部を転送する。
するように、CPU21により指定されたパケットをRAM2
3から取得し、アシンクロナス送信FIFO32に転送する
が、そのパケットを構成するデータがRAM23の離れた
メモリ領域に分散して存在する場合、それぞれのデータ
に対してDMAを起動して転送する。例えば、あるパケッ
トのヘッダ部とデータ部がそれぞれ離れたメモリ領域に
分散して存在する場合、1回目のDMAでそのヘッダ部を
転送し、2回目のDMAでそのデータ部を転送する。
【0032】従って、転送するパケットを構成するデー
タが、複数のメモリ領域に離れて存在する場合であって
も、パケットの編成を行うことなく、DMA転送を行うこ
とができる。当然、転送するパケットが連続したメモリ
領域に存在する場合、そのパケットは、1回のDMAでア
シンクロナス送信FIFO32に書き込まれる。
タが、複数のメモリ領域に離れて存在する場合であって
も、パケットの編成を行うことなく、DMA転送を行うこ
とができる。当然、転送するパケットが連続したメモリ
領域に存在する場合、そのパケットは、1回のDMAでア
シンクロナス送信FIFO32に書き込まれる。
【0033】また、アシンクロナス送信DMA31は、RAM
23から取得したパケットを正しくフォーマットし、例
えば、アシンクロナスパケットとしてIEEE1394シリアル
バス3にデータを送出できるようにする。
23から取得したパケットを正しくフォーマットし、例
えば、アシンクロナスパケットとしてIEEE1394シリアル
バス3にデータを送出できるようにする。
【0034】アシンクロナス送信FIFO32は、アシンク
ロナス送信DMA31から供給されてきたパケットを蓄積
するバッファとしての機能を有しており、レジスタ34
に設定されているパケット数に達したとき(設定されて
いるパケット数のデータが書き込まれたとき)、蓄積し
ているパケットをひとまとまりとして、リンク層/物理
層33に転送し、IEEE1394シリアルバス3に送出させ
る。
ロナス送信DMA31から供給されてきたパケットを蓄積
するバッファとしての機能を有しており、レジスタ34
に設定されているパケット数に達したとき(設定されて
いるパケット数のデータが書き込まれたとき)、蓄積し
ているパケットをひとまとまりとして、リンク層/物理
層33に転送し、IEEE1394シリアルバス3に送出させ
る。
【0035】リンク層/物理層33は、上述したリンク
層デバイス13、および物理層デバイス14の機能ブロ
ックであり、例えば、アシンクロナス送信DMA31や、
アシンクロナス送信DMA35に対して、必要なサービス
を提供する。例えば、物理層デバイス14の機能によ
り、上述したように、IEEE1394シリアルバス3へのアク
セス権の獲得や、パケットの送受信、或いはアクノレッ
ジパケットの送受信などが提供される。
層デバイス13、および物理層デバイス14の機能ブロ
ックであり、例えば、アシンクロナス送信DMA31や、
アシンクロナス送信DMA35に対して、必要なサービス
を提供する。例えば、物理層デバイス14の機能によ
り、上述したように、IEEE1394シリアルバス3へのアク
セス権の獲得や、パケットの送受信、或いはアクノレッ
ジパケットの送受信などが提供される。
【0036】レジスタ34は、CPU21からの制御に基
づいて、DMA転送に関する各種の情報を設定する。例え
ば、レジスタ34には、DMA転送するパケットのRAM23
上におけるアドレスやパケットサイズ、或いは、1つの
パケットをアシンクロナス送信FIFO32に書き込む毎
(不連続のメモリ領域に格納されている場合、それぞれ
のデータを書き込む毎)に出力されるXDDONE信号のアサ
ート回数などが設定される。
づいて、DMA転送に関する各種の情報を設定する。例え
ば、レジスタ34には、DMA転送するパケットのRAM23
上におけるアドレスやパケットサイズ、或いは、1つの
パケットをアシンクロナス送信FIFO32に書き込む毎
(不連続のメモリ領域に格納されている場合、それぞれ
のデータを書き込む毎)に出力されるXDDONE信号のアサ
ート回数などが設定される。
【0037】アシンクロナス受信DMA35は、リンク層
/物理層33から供給されてくるパケットを取得し、そ
れが自分自身のノード宛のパケットであるか否かを判断
する。そして、供給されてきたパケットが自分自身のノ
ード宛のものであると判断した場合、それを後段のアシ
ンクロナス受信FIFO36に転送し、蓄積させる。アシン
クロナス受信FIFO36に蓄積されたパケットは、所定の
タイミングで読み出され、ホストバスインタフェース1
1を介してホストバス2に送出される。
/物理層33から供給されてくるパケットを取得し、そ
れが自分自身のノード宛のパケットであるか否かを判断
する。そして、供給されてきたパケットが自分自身のノ
ード宛のものであると判断した場合、それを後段のアシ
ンクロナス受信FIFO36に転送し、蓄積させる。アシン
クロナス受信FIFO36に蓄積されたパケットは、所定の
タイミングで読み出され、ホストバスインタフェース1
1を介してホストバス2に送出される。
【0038】以上のようなDMA転送の機能構成におい
て、RAM23に格納されているデータが、アシンクロナ
スパケットとしてIEEE1394シリアルバス3に送出され
る。
て、RAM23に格納されているデータが、アシンクロナ
スパケットとしてIEEE1394シリアルバス3に送出され
る。
【0039】ここで、IEEE1394シリアルバス3に送出さ
れるアシンクロナスパケットについて説明する。
れるアシンクロナスパケットについて説明する。
【0040】アシンクロナスパケットは、「ペイロード
なしのパケット」、「クアドレットペイロードのパケッ
ト」、および「データペイロード付きのパケット」の3
種類のパケットに分類することができる。
なしのパケット」、「クアドレットペイロードのパケッ
ト」、および「データペイロード付きのパケット」の3
種類のパケットに分類することができる。
【0041】そして、「ペイロードなしのパケット」
は、さらに、相手先ノードの特定のメモリアドレスか
ら、1クアドレットのデータを読み出すために使用され
る「Readrequest for date quadlet packet」と、ライ
トリクエストに対するレスポンスコードを返すために使
用される「Write response packet」が定義されてい
る。
は、さらに、相手先ノードの特定のメモリアドレスか
ら、1クアドレットのデータを読み出すために使用され
る「Readrequest for date quadlet packet」と、ライ
トリクエストに対するレスポンスコードを返すために使
用される「Write response packet」が定義されてい
る。
【0042】また、「クアドレットペイロードのパケッ
ト」は、パケットヘッダの中に1クアドレットのデータ
を含むパケットであり、さらに、相手先ノードの特定の
オフセットアドレスから、指定した長さのデータを読み
出すために使用される「Readrequest for date-block p
acket」、相手先ノードの特定のオフセットアドレスに
1クアドレットのデータを書き込むために使用される
「Write request for date quadlet packet」、アイソ
クロナスサイクルの開始を示すために使用される「Cycl
e start packet」、およ1クアドレットのデータを読み
込むために使用される「Read response for date quadl
et packet」が定義されている。
ト」は、パケットヘッダの中に1クアドレットのデータ
を含むパケットであり、さらに、相手先ノードの特定の
オフセットアドレスから、指定した長さのデータを読み
出すために使用される「Readrequest for date-block p
acket」、相手先ノードの特定のオフセットアドレスに
1クアドレットのデータを書き込むために使用される
「Write request for date quadlet packet」、アイソ
クロナスサイクルの開始を示すために使用される「Cycl
e start packet」、およ1クアドレットのデータを読み
込むために使用される「Read response for date quadl
et packet」が定義されている。
【0043】さらに、「データペイロード付きのパケッ
ト」は、ペイロードとして送信されてきたデータを、相
手先の特定のオフセットアドレスから始まるアドレスに
書き込むために使用される「Write request for date-b
lock packet」、ロックコマンドを送信するために使用
される「Lock request packet」、「Read request for
date-block」コマンドに対応してデータを送り返すため
に使用される「Read response for date-block packe
t」、および「Lock request packet」に対する応答とし
て使用される「Lock response packet」が定義されてい
る。
ト」は、ペイロードとして送信されてきたデータを、相
手先の特定のオフセットアドレスから始まるアドレスに
書き込むために使用される「Write request for date-b
lock packet」、ロックコマンドを送信するために使用
される「Lock request packet」、「Read request for
date-block」コマンドに対応してデータを送り返すため
に使用される「Read response for date-block packe
t」、および「Lock request packet」に対する応答とし
て使用される「Lock response packet」が定義されてい
る。
【0044】なお、これらのパケットの構造を含む詳細
な説明に関しては、例えば、トリケップス社「IEEE1394
マルチメディアインタフェース」に記載されている。
な説明に関しては、例えば、トリケップス社「IEEE1394
マルチメディアインタフェース」に記載されている。
【0045】次に、図5のフローチャートを参照して、
CPU21の処理対象としてRAM23に展開されているデー
タをDMA転送し、IEEE1394シリアルバス3に送出する処
理について説明する。
CPU21の処理対象としてRAM23に展開されているデー
タをDMA転送し、IEEE1394シリアルバス3に送出する処
理について説明する。
【0046】ステップS1において、CPU21は、RAM2
3に展開されているパケットのうちのDMA転送するパケ
ットのサイズと、そのアドレスをレジスタ34に設定す
る。また、CPU21は、ステップS2において、DMA転送
する毎にアサートされるXDDONE信号のアサート回数をレ
ジスタ34に設定する。
3に展開されているパケットのうちのDMA転送するパケ
ットのサイズと、そのアドレスをレジスタ34に設定す
る。また、CPU21は、ステップS2において、DMA転送
する毎にアサートされるXDDONE信号のアサート回数をレ
ジスタ34に設定する。
【0047】すなわち、アシンクロナス送信DMA31
は、レジスタ34に設定されたアサート回数に基づい
て、アシンクロナス送信FIFO32に蓄積されたパケット
をIEEE1394シリアルバス3(リンク層/物理層33)に
送出するタイミングを判断する。
は、レジスタ34に設定されたアサート回数に基づい
て、アシンクロナス送信FIFO32に蓄積されたパケット
をIEEE1394シリアルバス3(リンク層/物理層33)に
送出するタイミングを判断する。
【0048】そして、ステップS3において、アシンク
ロナス送信DMA31は、ステップS1で設定されたアド
レスとサイズに対応するデータをアシンクロナス送信FI
FO32にDMA転送する。
ロナス送信DMA31は、ステップS1で設定されたアド
レスとサイズに対応するデータをアシンクロナス送信FI
FO32にDMA転送する。
【0049】図6に示すように、例えば、DMA転送する
ことが指定されたパケットを構成するヘッダ部が#N乃
至#N+1のメモリ領域に記述されており、そのデータ
部が#N+1乃至#N+3のメモリ領域に記述されてい
る場合(連続したメモリ領域に記述されている場合)、
アシンクロナス送信DMA31は、#N乃至#N+3のメ
モリ領域に記述されているデータ(パケット)を1回の
DMA転送でアシンクロナス送信FIFO32に書き込む。
ことが指定されたパケットを構成するヘッダ部が#N乃
至#N+1のメモリ領域に記述されており、そのデータ
部が#N+1乃至#N+3のメモリ領域に記述されてい
る場合(連続したメモリ領域に記述されている場合)、
アシンクロナス送信DMA31は、#N乃至#N+3のメ
モリ領域に記述されているデータ(パケット)を1回の
DMA転送でアシンクロナス送信FIFO32に書き込む。
【0050】一方、図7に示すように、DMA転送するこ
とが指定されたパケットを構成するヘッダ部が#M乃至
#M+1のメモリ領域に記述されており、そのデータ部
が#M+3乃至#M+5のメモリ領域に記述されている
場合(不連続のメモリ領域に分散して記述されている場
合)、アシンクロナス送信DMA31は、1回目のDMA転送
で、#M乃至#M+1のメモリ領域に記述されているヘ
ッダ部をアシンクロナス送信FIFO32に書き込み、後述
する判定処理(ステップS5)を行った後の2回目のDM
A転送で、#M+3乃至#M+5のメモリ領域に記述さ
れているデータ部をアシンクロナス送信FIFO32に書き
込む。
とが指定されたパケットを構成するヘッダ部が#M乃至
#M+1のメモリ領域に記述されており、そのデータ部
が#M+3乃至#M+5のメモリ領域に記述されている
場合(不連続のメモリ領域に分散して記述されている場
合)、アシンクロナス送信DMA31は、1回目のDMA転送
で、#M乃至#M+1のメモリ領域に記述されているヘ
ッダ部をアシンクロナス送信FIFO32に書き込み、後述
する判定処理(ステップS5)を行った後の2回目のDM
A転送で、#M+3乃至#M+5のメモリ領域に記述さ
れているデータ部をアシンクロナス送信FIFO32に書き
込む。
【0051】図6、および図7の右側に示すように、デ
ータをDMA転送でアシンクロナス送信FIFO32に書き込
む毎に、XDDONE信号がアサートされている。
ータをDMA転送でアシンクロナス送信FIFO32に書き込
む毎に、XDDONE信号がアサートされている。
【0052】そして、ステップS4において、アシンク
ロナス送信DMA31は、XDDONE信号がアサートされるこ
とに応じて、ステップS2で設定されたアサート回数を
1だけディクリメントする。
ロナス送信DMA31は、XDDONE信号がアサートされるこ
とに応じて、ステップS2で設定されたアサート回数を
1だけディクリメントする。
【0053】ステップS5において、アシンクロナス送
信DMA31は、ステップS4でXDDONE信号の回数をディ
クリメントすることに応じて、レジスタに設定されてい
るXDDONE信号の残りのアサート回数が0となったか否か
を判定することにより、アシンクロナス送信FIFO32に
蓄積されている複数のパケットをひとまとまりとして、
後段のリンク層/物理層33に送出するタイミングとな
ったか否かを判定する。
信DMA31は、ステップS4でXDDONE信号の回数をディ
クリメントすることに応じて、レジスタに設定されてい
るXDDONE信号の残りのアサート回数が0となったか否か
を判定することにより、アシンクロナス送信FIFO32に
蓄積されている複数のパケットをひとまとまりとして、
後段のリンク層/物理層33に送出するタイミングとな
ったか否かを判定する。
【0054】アシンクロナス送信DMA31は、ステップ
S5で、XDDONE信号の残りのアサート回数が0となって
いないと判定した場合、ステップS3に戻り、それ以降
の処理を繰り返し実行する。すなわち、上述した図7の
例において、#M+3乃至#M+5のメモリ領域に記述
されているデータ部が2回目のDMA転送によりアシンク
ロナス送信FIFO32に書き込まれる。
S5で、XDDONE信号の残りのアサート回数が0となって
いないと判定した場合、ステップS3に戻り、それ以降
の処理を繰り返し実行する。すなわち、上述した図7の
例において、#M+3乃至#M+5のメモリ領域に記述
されているデータ部が2回目のDMA転送によりアシンク
ロナス送信FIFO32に書き込まれる。
【0055】一方、アシンクロナス送信DMA31は、ス
テップS5で、XDDONE信号の残りのアサート回数が0と
なったと判定した場合、ステップS6に進み、アシンク
ロナス送信FIFO32に蓄積されているパケットをひとま
とまりとしてIEEE1394シリアルバス3に送出させる。
テップS5で、XDDONE信号の残りのアサート回数が0と
なったと判定した場合、ステップS6に進み、アシンク
ロナス送信FIFO32に蓄積されているパケットをひとま
とまりとしてIEEE1394シリアルバス3に送出させる。
【0056】そして、アシンクロナス送信DMA31は、
ステップS7で、レジスタ34の所定のビット(割り込
み(interrupt)のレジスタのビット)をHighレベルに
設定し、ホストシステムに対して、DMA転送の終了を通
知する。DMA転送の終了を通知するためのレジスタ34
の所定のビットがHighレベルになったとき、ホストイン
タフェース11の出力端子に、それが反映され、DMA転
送が終了したことがホストシステムに通知される。
ステップS7で、レジスタ34の所定のビット(割り込
み(interrupt)のレジスタのビット)をHighレベルに
設定し、ホストシステムに対して、DMA転送の終了を通
知する。DMA転送の終了を通知するためのレジスタ34
の所定のビットがHighレベルになったとき、ホストイン
タフェース11の出力端子に、それが反映され、DMA転
送が終了したことがホストシステムに通知される。
【0057】以上のような処理により、例えば、あるパ
ケットを構成するデータが連続したメモリ領域にない場
合であっても、それぞれのデータをDMA転送するように
したので、パケットの編成といった、余計な処理を省略
することが可能となる。
ケットを構成するデータが連続したメモリ領域にない場
合であっても、それぞれのデータをDMA転送するように
したので、パケットの編成といった、余計な処理を省略
することが可能となる。
【0058】また、レジスタ34に設定するだけなの
で、DMA転送の回数を容易に設定、変更することが可能
となる。さらに、ホストインタフェース11に提示され
るため、DMA転送の終了を容易に確認することができ
る。
で、DMA転送の回数を容易に設定、変更することが可能
となる。さらに、ホストインタフェース11に提示され
るため、DMA転送の終了を容易に確認することができ
る。
【0059】
【発明の効果】本発明のデータ転送方法によれば、中央
演算装置の処理対象として所定のメモリに格納されてい
るパケットを中央演算装置の制御によらずにバッファメ
モリに転送し、バッファメモリに転送したパケットの数
が所定の数となったとき、所定の数のパケットをひとま
とまりとしてIEEE1394シリアルバスに送出する。また、
パケットを構成するデータを、メモリの不連続な領域に
分散して格納されている場合、パケットを構成するデー
タのそれぞれを、バッファメモリに転送するようにした
ので、パケットを構成するデータが、不連続なメモリ領
域に分散して存在する場合であっても、パケットの編成
を行うことなく、容易にDMA転送を行うことができる。
演算装置の処理対象として所定のメモリに格納されてい
るパケットを中央演算装置の制御によらずにバッファメ
モリに転送し、バッファメモリに転送したパケットの数
が所定の数となったとき、所定の数のパケットをひとま
とまりとしてIEEE1394シリアルバスに送出する。また、
パケットを構成するデータを、メモリの不連続な領域に
分散して格納されている場合、パケットを構成するデー
タのそれぞれを、バッファメモリに転送するようにした
ので、パケットを構成するデータが、不連続なメモリ領
域に分散して存在する場合であっても、パケットの編成
を行うことなく、容易にDMA転送を行うことができる。
【図1】従来のパケット編成を説明する図である。
【図2】本発明を適用したIEEE1394モジュールの構成例
を示すブロック図である。
を示すブロック図である。
【図3】IEEE1394シリアルバスのレイヤ構造を示す図で
ある。
ある。
【図4】DMA転送の機能構成例を示すブロック図であ
る。
る。
【図5】IEEE1394モジュールの処理を説明するフローチ
ャートである。
ャートである。
【図6】DMA転送の例を示す図である。
【図7】DMA転送の他の例を示す図である。
1 IEEE1394モジュール, 3−1乃至3−3 IEEE13
94シリアルバス, 11 ホストバスインタフェース,
12 DMAコントローラ, 13 リンク層デバイ
ス, 14 物理層デバイス, 15−1乃至15−3
ポート
94シリアルバス, 11 ホストバスインタフェース,
12 DMAコントローラ, 13 リンク層デバイ
ス, 14 物理層デバイス, 15−1乃至15−3
ポート
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04L 12/28 200 H04L 12/28 200Z (72)発明者 貝吹 太志 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 中村 郁夫 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B061 DD07 DD09 DD11 FF03 FF04 GG06 RR03 5B077 AA23 BB05 DD02 GG36 MM02 NN02 5K033 DB13 EA07
Claims (3)
- 【請求項1】 中央演算装置の処理対象として所定のメ
モリに格納されているパケットを前記中央演算装置の制
御によらずにバッファメモリに転送する転送ステップ
と、 前記転送ステップの処理により、前記バッファメモリに
転送された前記パケットの数が所定の数となったとき、
前記所定の数のパケットをひとまとまりとしてIEEE1394
シリアルバスに送出する送出ステップとを含み、 前記パケットを構成するデータが、前記メモリの不連続
な領域に分散して格納されている場合、前記パケットを
構成するデータのそれぞれが、前記転送ステップの処理
により前記バッファメモリに転送されることを特徴とす
るデータ転送方法。 - 【請求項2】 前記パケットは、アシンクロナスパケッ
トであることを特徴とする請求項1に記載のデータ転送
方法。 - 【請求項3】 前記転送ステップの処理により前記パケ
ット、または前記データが前記バッファメモリに転送さ
れる毎に、所定の信号を出力する出力ステップと、 前記出力ステップの処理により出力された前記信号の出
力回数を計数する計数ステップとをさらに含み、 前記計数ステップの処理による計数結果に基づいて、前
記送出ステップの処理により、前記所定の数のパケット
が前記IEEE1394シリアルバスに送出されることを特徴と
する請求項1に記載のデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001172374A JP2002366508A (ja) | 2001-06-07 | 2001-06-07 | データ転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001172374A JP2002366508A (ja) | 2001-06-07 | 2001-06-07 | データ転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002366508A true JP2002366508A (ja) | 2002-12-20 |
Family
ID=19014004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001172374A Withdrawn JP2002366508A (ja) | 2001-06-07 | 2001-06-07 | データ転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002366508A (ja) |
-
2001
- 2001-06-07 JP JP2001172374A patent/JP2002366508A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6157972A (en) | Apparatus and method for processing packetized information over a serial bus | |
US6513085B1 (en) | Link/transaction layer controller with integral microcontroller emulation | |
EP1134937B1 (en) | Information signal processing apparatus, corresponding system, method and computer readable storage medium | |
JP3584789B2 (ja) | データ転送制御装置及び電子機器 | |
JP2003174486A (ja) | 情報通信装置、情報通信方法および情報通信処理プログラム | |
US20040057448A1 (en) | Information processing system, information processing apparatus, and information processing method | |
US6272114B1 (en) | Data processing apparatus/method and electronic apparatus with such apparatus/method | |
JP3444247B2 (ja) | パケット速度変換器 | |
JP3733699B2 (ja) | シリアルインタフェース回路 | |
JP3785747B2 (ja) | シリアルインタフェース回路およびその信号処理方法 | |
JP3539287B2 (ja) | データ転送制御装置及び電子機器 | |
EP1107532A2 (en) | Registration of devices in a network | |
US7177959B2 (en) | Information signal processing apparatus and method | |
US7346714B2 (en) | Notification of completion of communication with a plurality of data storage areas | |
JP4098910B2 (ja) | パケット転送制御装置及びパケット転送方法 | |
JP3494042B2 (ja) | データ転送制御装置及び電子機器 | |
JP2002366508A (ja) | データ転送方法 | |
JPH1117710A (ja) | シリアルインタフェース回路 | |
JP2004064665A (ja) | データ転送装置及び送信装置及び受信装置及びそれらの制御方法 | |
JP3495879B2 (ja) | データ処理方法、データ処理装置、及びコンピュータ読み取り可能な記録媒体 | |
JP3495878B2 (ja) | データ処理方法、データ処理装置及びプリンタ | |
JP4362199B2 (ja) | データ伝送装置 | |
JPH11177589A (ja) | データ転送装置およびデータ転送装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2003023471A (ja) | パケット送受信処理回路 | |
JP4244474B2 (ja) | 情報処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080902 |