JP2002288115A - Usbコントローラ - Google Patents

Usbコントローラ

Info

Publication number
JP2002288115A
JP2002288115A JP2001090237A JP2001090237A JP2002288115A JP 2002288115 A JP2002288115 A JP 2002288115A JP 2001090237 A JP2001090237 A JP 2001090237A JP 2001090237 A JP2001090237 A JP 2001090237A JP 2002288115 A JP2002288115 A JP 2002288115A
Authority
JP
Japan
Prior art keywords
endpoint
priority
dma request
req
dma
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
JP2001090237A
Other languages
English (en)
Inventor
Sunao Nakabachi
直 中鉢
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2001090237A priority Critical patent/JP2002288115A/ja
Publication of JP2002288115A publication Critical patent/JP2002288115A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 1チャンネルのDMA要求チャンネルを複数
のエンドポイントで共有するUSBコントローラを提供
する。 【解決手段】 DMA要求チャンネルを共有するエンド
ポイント間で、DMAの優先順位をつける。例えば、優
先順位の低いエンドポイントからDMA要求をするreq
を出力後、ローカルバスに接続されているDMAコント
ローラからのDMA要求の受け入れを示すack が入力さ
れる前に、優先順位が高いエンドポイントのFIFOに
データが入力する場合、req 出力を変化させて、優先順
位の低いエンドポイントからのDMA要求を中止し、優
先順位の高いエンドポイントからのreq に切り換える
か、優先順位の低いエンドポイントからのDMA要求が
終了後に優先順位の高いエンドポイントからのreq を出
力するか、のいずれか一方を設定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、USBインタフェ
ースを有するPC周辺機器を接続するUSBコントロー
ラに関する。
【0002】
【従来の技術】近年、PCと周辺機器とを接続するイン
ターフェースとしてUSB(UniversalSerial Bus)が使
用されている。USBにおいてはPCが1つしか存在し
ないホストとなり、当該ホストの下に複数のデバイスが
ツリー状に接続される。デバイスのUSBコントローラ
は、それぞれ固有のアドレスを持つ。そのデータ転送
は、ホストがUSBコントローラに対して転送要求を出
力し、USBコントローラがそれに応答する形で進めら
れる。
【0003】USBコントローラは、通常FIFOメモ
リ(First In First Out Memory) からなり、ホストに対
してデータを送信する、または、ホストからのデータ受
信するエンドポイントを複数もつ。その数は規格によっ
て決められている。そして、デバイスのUSBコントロ
ーラのローカルバスに接続される機器は、エンドポイン
トのFIFOメモリに対してアクセスすることになる。
【0004】ところで、エンドポイントとローカルバス
に接続されるターゲットの機器のメモリとの間でまとま
った量のデータを効率よく送るために、両者間のデータ
転送にDMA(Direct Memory Access)転送を行う場合が
ある。例えば、USBコントローラML60851Cが
あげられる。
【0005】ここで、ML60851Cにおいてはエン
ドポイントの数が4つと少ないこともあって、DMA要
求チャンネルをサポートするエンドポイントは固定であ
る。これに対し、USB1.1の規格においてはエンド
ポイントの数を最大15までサポートしているので、エ
ンドポイントを増やした場合にはUSBコントローラM
L60852のようにUSBコントローラ内部のレジス
タに設定した値によりDMA転送を行うエンドポイント
を切り換えることになる。
【0006】
【発明が解決しようとする課題】しかしながら、これま
では1つのDMA要求チャンネルに対して1つのエンド
ポイントを割り当てるため、複数のエンドポイントとタ
ーゲットとの間でDMA転送を行いたい場合は複数のD
MA要求チャンネルを必要としていたが、ローカルバス
のDMAチャンネルには限りがあるという問題があっ
た。
【0007】本発明は、上記問題点に鑑みなされたもの
であり、1チャンネルのDMA要求チャンネルを複数の
エンドポイントで共有するUSBコントローラを提供す
ることを目的とする。
【0008】また、DMA要求チャンネルを共有するエ
ンドポイント間でDMA要求を発生させる優先順位をつ
けることが出来、USBバスおよびローカルバスからそ
の優先順位、シーケンスを変更可能とした高機能で汎用
性のあるUSBコントローラを提供することを目的とす
る。
【0009】さらに、USBコントローラについて各々
のエンドポイントのステータス(各種設定、エンドポイ
ントのFIFOメモリ内にあるパケットとデータの情
報)に応じてエンドポイント間でDMA要求の優先順位
を決定することで、エンドポイント内のデータの状況を
反映する、従来よりも高性能なUSBコントローラを提
供することを目的とする。
【0010】
【課題を解決するための手段】かかる目的を達成するた
めに、請求項1記載の発明は、1つのDMA要求チャン
ネルを複数のエンドポイントで共有することを特徴とす
る。
【0011】請求項2記載の発明は、請求項1記載の発
明において、DMA要求チャンネルを共有するエンドポ
イント間で、DMA要求の優先順位をつけることを特徴
とする。
【0012】請求項3記載の発明は、請求項1または2
記載の発明において、DMA要求チャンネルを共有する
エンドポイントを変更可能とすることを特徴とする。
【0013】請求項4記載の発明は、請求項2記載の発
明において、DMA要求チャンネルを共有するエンドポ
イントの優先順位を変更可能とすることを特徴とする。
【0014】請求項5記載の発明は、請求項4記載の発
明において、優先順位の低いエンドポイントからDMA
要求をするreq を出力後、ローカルバスに接続されてい
るDMAコントローラからのDMA要求の受け入れを示
すack が入力される前に、優先順位が高いエンドポイン
トのFIFOメモリにデータが入力する場合、req 出力
を変化させて、優先順位の低いエンドポイントからのD
MA要求を中止し、優先順位の高いエンドポイントから
のreq に切り換えるか、優先順位の低いエンドポイント
からのDMA要求が終了後に優先順位の高いエンドポイ
ントからのreqを出力するか、のいずれか一方を設定す
ることを特徴とする。
【0015】請求項6記載の発明は、請求項4記載の発
明において、優先順位の低いエンドポイントのDMA転
送が実行中に、ローカルバスの優先順位が高いエンドポ
イントのFIFOにデータが入力する場合、優先順位の
低いエンドポイントのDMA転送を中止し、優先順位の
高いエンドポイントからのreq に切り換えるか、優先順
位の低いエンドポイントのDMA転送が終了後に優先順
位の高いエンドポイントからのreq を出力するか、のい
ずれか一方を設定することを特徴とする。
【0016】請求項7記載の発明は、請求項4から6の
いずれか1項に記載の発明において、DMA要求チャン
ネルを共有する複数のエンドポイント、DMA要求の優
先順位、優先順位の高いエンドポイントからのreq 出力
時に、優先順位の低いエンドポイントから既にreq が出
力されていた場合のシーケンスの切り換えを、USBホ
ストからUSBバスを介して設定することを特徴とす
る。
【0017】請求項8記載の発明は、請求項4から6の
いずれか1項に記載の発明において、DMA要求チャン
ネルを共有する複数のエンドポイント、DMA要求の優
先順位、優先順位の高いエンドポイントからのreq 出力
時に、優先順位の低いエンドポイントから既にreq が出
力されていた場合のシーケンスの切り換えを、ローカル
バスから設定することを特徴とする。
【0018】請求項9記載の発明は、請求項2から4の
いずれか1項に記載の発明において、DMA要求チャン
ネルを共有するエンドポイントの優先順位を、共有する
各エンドポイントのステータスに応じて決定することを
特徴とする。
【0019】請求項10記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリのサイ
ズを基に、DMA要求の優先順位を決定することを特徴
とする。
【0020】請求項11記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリ内にあ
るトータルのデータの大きさを基に、DMA要求の優先
順位を決定することを特徴とする。
【0021】請求項12記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリ内にあ
るトータルのデータの大きさと、エンドポイント毎に設
定するスレッショホールド値との関係を基に、DMA要
求の優先順位を決定することを特徴とする。
【0022】請求項13記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリにある
トータルのデータのFIFOサイズに対して占める割合
を基に、DMA要求の優先順位を決定することを特徴と
する。
【0023】請求項14記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリにある
トータルのデータのFIFOサイズに対して占める割合
と、エンドポイント毎に設定するスレッショホールド値
との関係を基に、DMA要求の優先順位を決定すること
を特徴とする。
【0024】請求項15記載の発明は、請求項9記載の
発明において、エンドポイントのFIFOメモリにある
パケットの数を基に、DMA要求の優先順位を決定する
ことを特徴とする。
【0025】請求項16記載の発明は、請求項9記載の
発明において、OUTエンドポイントのFIFOメモリ
内のパケットであり、現在読み出し対象となっているパ
ケットの大きさを基に、DMA要求の優先順位を決定す
ることを特徴とする。
【0026】請求項17記載の発明は、請求項9記載の
発明において、INエンドポイントのFIFOメモリに
ユーザ回路から書き込むパケットの大きさを先に設定
し、設定した値の大きさを基に、DMA要求の優先順位
を決定することを特徴とする。
【0027】請求項18記載の発明は、請求項9記載の
発明において、エンドポイントがUSBホストとの間の
送受信を行う際のパケットサイズの最大値を基に、DM
A要求の優先順位を決定することを特徴とする。
【0028】請求項19記載の発明は、請求項9記載の
発明において、エンドポイントのステータスを少なくと
も2つ以上組み合わせて、DMA要求の優先順位を決定
することを特徴とする。
【0029】
【発明の実施の形態】以下、本発明の実施の形態を添付
図面を参照しながら詳細に説明する。
【0030】図1は、本発明の実施の形態におけるUS
Bバスの接続概念図である。本実施の形態のUSBバス
は、ルートHUB機能をもつUSBホスト1と、HUB
2a、2bと、デバイス3a〜3dとが接続される。こ
のように、USBにおいては1つのホスト1の下に複数
のHUB2a、2bまたはデバイス3a〜3dがツリー
状に接続される。例えば、規格(USB1.1)はHU
Bが5段、USBコントローラが127台まで接続可能
である。また、デバイス3は、図6に示すようにUSB
コントローラ21、ターゲット機器22から構成され
る。
【0031】図2は、本発明の実施の形態におけるUS
Bコントローラの構成を示すブロック図である。図2に
おいて、USBトランシーバ11は、図中には示されな
いUSBホスト1との間でUSBプロトコルに従ってデ
ータの送受信を行う。シリアル入力エンジン12は、U
SBホスト1に次に述べるエンドポイント群13からU
SBホスト1に送信するデータをUSBプロトコルに従
うように変換する。また、USBホスト1から受信した
データをエンドポイント群13でバッファリングするよ
うに変換する。
【0032】エンドポイント群13は、ローカルバスか
ら受信し、USBホスト1へ送信するデータをバッファ
リングする。また、USBホスト1から受信しローカル
バスに送信するデータをバッファリングする。アービタ
14は、複数のエンドポイントからのDMA要求の調停
を行う。DMAコントローラ15は、ローカルバスの先
に接続された図中に示されないユーザ回路との間でDM
A転送の制御を行う。
【0033】I/Oコントローラ16は、図中には示さ
れないユーザ回路との間でDMA転送以外の制御を行
う。ローカルバスインターフェース17は、USBコン
トローラ21の内部信号をローカルバスに接続する。レ
ジスタ18は、USBコントローラ内部モジュールの各
種設定を行うレジスタである。
【0034】ここで、エンドポイント群13は、通常F
IFOからなるデータバッファである複数のエンドポイ
ント130、131、132、・・・ 、13nと、エンド
ポイントの各種制御を行うエンドポイントコントローラ
13cとからなる。エンドポイントの数は、規格(US
B1.1) では最大15まで認められている。このうち
ひとつは、デバイス3の初期化と基本情報のやりとりに
使用される双方向のコントロールエンドポイントであ
る。それを除いては単一の転送方向(USBホスト1に
対して出力または入力)である。転送方向、用途、番号
は、ユーザが自由に設定出来る。また、図中には示さな
いがこの他に各モジュールにCLKを供給するCLKモ
ジュールを内蔵する場合がある。
【0035】図2に示すUSBコントローラの動作を説
明する。USBでは、コントロール転送、バルク転送、
インタラプト転送、およびアイソクロナス転送の4つの
データ転送のモードがある。コントロール転送は、エン
ドポイント0を使ってデバイス3の初期化や各種情報の
授受に使用する。バルク転送は、転送周期を問わず、プ
リンタのデータのようにまとまった量のデータを転送す
る。インタラプト転送は、マウス、キーボードのステー
タスを送るような定周期で少量のデータを送る。アイソ
クロナス転送は、音声データなどリアルタイムのデータ
を送るときにデータの正当性を保証しない代わりにバン
ド幅を保証する。
【0036】そして、これら全てのモードのデータ転送
は全てUSBホスト1が制御する。また、USBコント
ローラ21において、データの転送はパケットという単
位で行われる。パケットには転送方向やセットアップ情
報を送るトークンパケット、実際のデータであるデータ
パケット、データ転送結果(成功・失敗)を送るハンド
シェイクパケットの種類がある。
【0037】USBホスト1がUSBコントローラ21
にデータを送信するときは、最初にUSBホスト1から
USBコントローラ21へのデータ送信を意味するトー
クンパケットが送られ、引き続いてデータパケットが送
られる。
【0038】図2において、USBホスト1から送られ
たパケットは、USBトランシーバ11により受信さ
れ、シリアルデータに変換されてシリアル入力エンジン
12に出力される。シリアル入力エンジン12は、US
Bトランシーバ11から入力し、シリアルデータに変換
されたパケットの種類を判別する。それがUSBホスト
1からUSBコントローラ21へのデータ送信を意味す
るトークンパケットであるときは、エンドポイントコン
トローラ13cに対してデータ受信の準備の指示を行
う。
【0039】そして、次にデータ・パケットが送られて
くると、エンドポイント群13の送信対象のエンドポイ
ントでバッファリングするように変換し出力する。エン
ドポイント群13の送信対象のエンドポイントでは、U
SBホストから送られたデータが入力すると、そのエン
ドポイントがDMA転送をするように設定されている場
合は、アービタ14、DMAコントローラ15、バスイ
ンターフェース17、およびローカルバス経由でDMA
要求信号を図示しないユーザ回路に送る。
【0040】DMA転送をするように設定されていない
場合は、I/Oコントローラ16、バスインターフェー
ス17、およびローカルバス経由で割込み信号を図示し
ないユーザ回路に送る。ユーザ回路は、DMA要求信
号、割込み信号を受け取ると、それぞれのプロトコルで
エンドポイントに入ったデータをUSBコントローラ2
1から読み込む。
【0041】なお、データパケットの受信終了後、アイ
ソクロナス転送を除く転送では、シリアル入力エンジン
12は、データパケットの最後部の受信後エンドポイン
トコントローラ12cに対してデータ受信の成功・失敗
を問い合わせた後、その結果を示すハンドシェイクパケ
ットをUSBトランシーバ11に送る。USBトランシ
ーバ11は、USBホスト1にハンドシェイクパケット
を送ってデータ送信の結果を送る。
【0042】一方、USBホスト1がUSBコントロー
ラ21のデータを受信するときは、最初にUSBコント
ローラ21からUSBホスト1へのデータ送信を意味す
るトークンパケットが送られる。図2において、USB
ホスト1から送られたパケットは、USBトランシーバ
11で受信され、シリアルデータに変換されてシリアル
入力エンジン12に出力される。シリアル入力エンジン
12は、USBトランシーバから入力しシリアルデータ
に変換されたパケットの種類を判別する。
【0043】それが、USBコントローラ21からUS
Bホスト1へのデータ送信を意味するトークンパケット
であるときは、エンドポイントコントローラ13cに対
して送信の指示を行う。エンドポイントコントローラ1
3cは、データ送信を要求されたエンドポイントからシ
リアル入力エンジン12にデータを出力するよう動作さ
せる。もし、データ送信を要求されたエンドポイントが
データを送れない状態の場合は、データ送信不能の状態
を示す信号をシリアル入力エンジン12に送る。
【0044】シリアル入力エンジン12は、エンドポイ
ントからデータが入力したときは、それをデータパケッ
トに変換して、また、データ送信不能の状態を示す信号
が入力したときは、その意味のハンドシェイクパケット
に変換してUSBトランシーバ11に出力する。そし
て、USBトランシーバ11は、入力したパケットをU
SBホスト1に送信する。
【0045】なお、アイソクロナス転送を除く転送で
は、エンドポイントのデータを全て送信した後、USB
ホスト1からデータ受信成功を示すハンドシェイクパケ
ットがUSBコントローラ21に送られる。
【0046】一方、エンドポイント群13のホスト1に
対してデータを送信したエンドポイントは、データ送信
後そのエンドポイントがDMA転送をするように設定さ
れている場合はアービタ14、DMAコントローラ1
5、バスインターフェース17、およびローカルバス経
由でDMA要求信号を図示しないユーザ回路に送る。
【0047】DMA転送をするように設定されていない
場合は、I/Oコントローラ16、バスインターフェー
ス17、およびローカルバス経由で割込み信号を図示し
ないユーザ回路に送る。ユーザ回路は、DMA要求信
号、割込み信号を受け取ると、それぞれのプロトコルで
エンドポイントに対してデータを書き込む。
【0048】図3は、本発明の実施の形態におけるUS
Bコントローラのエンドポイント群とアービタとDMA
コントローラとの間でDMA転送を行う場合に少なくと
も必要な制御信号線の接続を示すブロック図である。図
3において、エンドポイント群13のエンドポイント1
31とアービタ14との間には、エンドポイント131
から出力されるDMA要求をするreq(Reqest信号) _ep
1 、アービタ14がDMA要求の受け入れを示すack(Ac
knowledge 信号) _ep1 の2つ信号線が接続される。エ
ンドポイント132とアービタ14との間には、エンド
ポイント132から出力されるDMA要求をするreq _
ep2 、アービタ14がDMA要求の受け入れを示すack
_ep2 の2つの信号線が接続される。
【0049】そして、アービタ14とDMAコントロー
ラ15との間にはアービタ14から出力されるDMA要
求をするreq 、DMAコントローラ15がDMA要求の
受け入れを示すack の2つの信号線が接続される。
【0050】さらに図3には図示しないが、アービタ1
4にはレジスタ18からエンドポイント131とエンド
ポイント132との優先順位を示す信号と、それぞれの
エンドポイントとユーザとの間のDMA転送の向きを示
す信号が入力される。
【0051】ここで、アービタ14とレジスタ18の間
に、レジスタ18から出力され要求の優先順位を決定す
る為に必要なエンドポイント131、132の複数のス
テータス(各種設定、エンドポイントのFIFOメモリ
内にあるパケットとデータの情報)信号が接続される構
成でもよい。
【0052】図4は、本発明の実施の形態におけるアー
ビタの第1の動作例を示すフローチャートである。エン
ドポイント131からreq _ep1 で、またはエンドポイ
ント132からreq _ep2 でアービタ14に対してDM
A要求が発行されると、アービタ14は、先ず既存のre
q があるか否かを調べる(ステップS11)。
【0053】ここで既存のreq が無い場合(ステップS
11/NO)、アービタ14は、DMAコントローラ1
5にreq を発行し、DMAコントローラ15は、バスイ
ンターフェース17、ローカルバス経由でDMA要求信
号を図示しないユーザ回路に送る(ステップS51)。
そして、ユーザ回路からの要求受け入れack を待つ(ス
テップS52)。アービタ14は、ローカルバス、バス
インターフェース17経由でDMAコントローラ15か
らack が入力すると、DMA要求が発行されたエンドポ
イントに対して、DMA転送を実行する(ステップS5
3)。即ち、それがエンドポイント131の場合はack
_ep1 で、それがエンドポイント132の場合はack _
ep2 でDMA要求の受け入れをエンドポイントに示して
DMA転送を実行する。
【0054】そして、データエンドまたは優先順位の高
い新たなreq が発生するまで(ステップS54/N
O)、DMA転送を実行し(ステップS53)、データ
エンドまたは優先順位の高い新たなreq が発生すると
(ステップS54)、DMA転送を終了する。
【0055】一方、ステップS11において、既存のre
q がある場合は(ステップS11/YES)、既存のre
q と新req との優先順位を比較する(ステップS2
1)。既存のreq の方が優先順位が高い場合は(ステッ
プS21/NO)、既存req の終了を待つ(ステップS
22)。既存req 終了後に先に延べたステップS51以
降のステップの動作を行う。
【0056】ステップS21において、新req の方が優
先順位が高い場合は(ステップS21/YES)、既存
req のDMA転送が実行中か否かを調べる(ステップS
31)。既存req が実行中でない場合は(ステップS3
1/NO)、既存req のack待ちを中止する(ステップ
S33)。中止後、先に延べたステップS51以降のス
テップの動作を行う。ステップS31において、既存re
q が実行中の場合は(ステップS31/YES)、既存
req のDMA転送を途中で中止する(ステップS4
2)。中止後、先に延べたステップS51以降のステッ
プの動作を行う。
【0057】図5は、本発明の実施の形態におけるアー
ビタ14の第2の動作例を示すフローチャートである。
図5のフローチャートが図4のフローチャートと異なる
点は以下の2点である。
【0058】1つは、ステップS31において、既存re
q のDMA転送が実行中かを調べ、DMA転送実行中で
ない場合に(ステップS31/NO)、既存req のack
待ちに対しての割込みを行うか否かを調べる(ステップ
S32)点である。割込みを行うか否かは、通常レジス
タ18に設定する。割込みを行うように設定されている
場合は(ステップ32/YES)、先に述べたステップ
S33以降のステップの動作を行う。割込みを行わない
ように設定されている場合は(ステップS32/N
O)、先に延べたステップS22以降のステップの動作
を行う。
【0059】もう1つは、ステップS31において、既
存req のDMA転送が実行中か調べ、DMA転送実行中
の場合に(ステップS31/YES)、既存req のDM
Aに対しての割込みを行うか否かを調べる(ステップS
41)点である。割込みを行うか否かは、通常レジスタ
18に設定する。割込みを行うように設定されている場
合は(ステップS41/YES)、先に述べたステップ
S42以降のステップの動作を行う。割込みを行わない
ように設定されている場合は(ステップS41/N
O)、先に延べたステップS22以降のステップの動作
を行う。
【0060】なお、図3においては2つのエンドポイン
ト131、132がアービタ14に接続されている。こ
の点、もっと多くのエンドポイント、最大でコントロー
ルエンドポイントを除く全てのエンドポイントがアービ
タ14に接続されても良い。そして、3つ以上のエンド
ポイントとアービタ14との間でreq とack が接続され
る場合、少なくとも2つのエンドポイントがDMA転送
の対象になるようになっていれば良い。通常レジスタ1
8に設定する。しがたって、必ずしも全てのエンドポイ
ントがDMA転送の対象にならなくとも良い。
【0061】また、優先順位は、固定でも変更可能(通
常レジスタ18に設定する)としても良い。さらに、D
MA要求チャンネルを共有するエンドポイントの方向
(ユーザに対してリードを行うかライトを行うか)は同
一であっても異なっても良い。
【0062】図7は、本発明の実施の形態におけるアー
ビタの第3の動作例を示すフローチャートである。図7
のフローチャートが図4のフローチャートと異なる点は
以下の点である。
【0063】それは、ステップS11において、既存の
reqがあるか否かを調べ、既存のreqがある場合
(ステップS11/YES)、reqの優先順位決定処
理を行う(ステップS100)点である。
【0064】図8は、本発明の実施の形態におけるアー
ビタの第4の動作例を示すフローチャートである。図8
のフローチャートが図5のフローチャートと異なる点は
以下の点である。
【0065】それは、ステップS11において、既存の
reqがあるか否かを調べ、既存のreqがある場合
(ステップS11/YES)、reqの優先順位決定処
理を行う(ステップS100)点である。
【0066】図9は、本発明の実施の形態における優先
順位決定処理の流れを示すフローチャートである。図9
では、エンドポイントのFIFOメモリのサイズが小さ
い方が優先順位が高くなる場合について説明する。
【0067】図7または図8のステップS11におい
て、既存req がある場合(ステップS11/YES)、
新req のFIFOメモリのサイズが既存req のFIFO
メモリのサイズよりも小さいか否かを比較する(ステッ
プS101)。ここで、既存req を出しているエンドポ
イントが、その処理が終わらないうちに新req を出すこ
とはないので、ステップS101の既存req と新req の
エンドポイントは、異なるエンドポイントとなる。図3
でいうとエンドポイント131とエンドポイント132
となる。
【0068】ステップS101において、新req のFI
FOメモリのサイズが既存req のFIFOメモリのサイ
ズよりも小さい場合(ステップS101/YES)、新
reqの優先順位を既存req の優先順位よりも高く設定す
る(ステップS102)。一方、新req のFIFOメモ
リのサイズが既存req のFIFOメモリのサイズよりも
小さい、または両者のFIFOメモリのサイズが同一の
場合(ステップS101/NO)、既存req の優先順位
を新req の優先順位よりも高く設定する(ステップS1
03)。そして、図7または図8のステップS21では
この結果を基に条件分岐を行う。
【0069】なお、図9では、優先順位を決定するの
に、レジスタ18に設定されたエンドポイント群13の
それぞれのFIFOメモリのサイズを使用しているが、
代わりに、レジスタ18に設定された以下の情報を使用
しても良い。
【0070】(1)エンドポイントのFIFOメモリ内
にあるトータルのデータの大きさ (2)エンドポイントのFIFOメモリ内にあるトータ
ルのデータの大きさとスレッショホールド値との関係 (3)エンドポイントのFIFOメモリにあるトータル
のデータがFIFOサイズに対して占める割合 (4)エンドポイントのFIFOメモリにあるパケット
の数 (5)OUTエンドポイントのFIFOメモリ内のパケ
ットで読み出し対象となっているパケットの大きさ (6)INエンドポイントのFIFOメモリにユーザ回
路から書き込むパケットの大きさを先に設定し、設定し
た値の大きさ (7)エンドポイントがUSBホストとの間の送受信を
行う際のパケットサイズの最大値
【0071】また、優先順位決定処理(ステップS10
0) で、レジスタ18に設定された上述の情報を複数使
う場合は図10のように条件分岐を増やすか、または図
11のようにテーブルを参照して優先順位を決定すれば
良い。
【0072】図10は、本発明の実施の形態におけるO
UTエンドポイント間で優先順位を決定する場合の処理
の流れを示すフローチャートである。図9のFIFOメ
モリのサイズに代わって、読み出し対象となっているパ
ケットサイズとFIFOメモリ内にあるパケットの数と
で優先順位を決定するものである。
【0073】図10において、図7または図8のステッ
プS11で既存req がある場合(ステップS11/YE
S)、新req の読み出し対象のパケットのサイズが既存
reqのパケットのサイズよりも小さいかどうかを比較す
る(ステップS101)。ここで、既存req を出してい
るエンドポイントが、その処理が終わらないうちに新re
q を出すことはないので、ステップS101の既存req
と新req のエンドポイントは異なるエンドポイントとな
る。図3でいうとエンドポイント131とエンドポイン
ト132となる。
【0074】ステップS101で、新req のパケットサ
イズが既存req のパケットサイズよりも小さい場合(ス
テップS101/YES)、新req の優先順位を既存re
q の優先順位よりも高く設定する(ステップS10
2)。一方、新req のパケットサイズが既存req のパケ
ットサイズよりも大きい、または両者のFIFOメモリ
のサイズが同一の場合(ステップS101/NO)、新
req のエンドポイントのFIFOメモリ内のパケット数
が既存req のエンドポイントのFIFOメモリ内のパケ
ット数よりも多いかどうかを比較する(ステップS10
4)。
【0075】新req のパケット数が既存req のパケット
数よりも少ない場合(ステップS104/YES)、新
req の優先順位を既存req の優先順位よりも高く設定す
る(S102)。一方、新req のパケット数が既存req
のパケット数よりも多い、または両者のパケット数が同
一の場合、既存req の優先順位を新req の優先順位より
も高く設定する(ステップS103)。そして、図7ま
たは図8のステップS21においてはこの結果を基に条
件分岐を行う。
【0076】図11は、図10の条件分岐の代わりにテ
ーブルを参照して優先順位を決定する場合の処理の流れ
を示すフローチャートである。図12は、本発明の実施
の形態における優先順位決定テーブルを示す図である。
図11において、図7または図8のステップS11で既
存req がある場合(ステップS11/YES)、新req
と既存req のパケットサイズ、および、それぞれのエン
ドポイントのパケット数を基に図12の優先順位決定テ
ーブルを参照する(ステップS105)。参照結果から
優先順位を設定する(ステップS106)。そして、図
7または図8のステップS21においてはこの結果を基
に条件分岐を行う。
【0077】なお、上述した実施の形態は、本発明の好
適な実施の形態の一例を示すものであり、本発明はそれ
に限定されることなく、その要旨を逸脱しない範囲内に
おいて、種々変形実施が可能である。
【0078】
【発明の効果】以上の説明から明らかなように、請求項
1記載のUSBコントローラによれば、1つのDMA要
求チャンネルを複数のエンドポイントで共有することに
より、従来よりも高機能のUSBコントローラを実現で
きる。
【0079】請求項2記載のUSBコントローラによれ
ば、DMA要求チャンネルを共有するエンドポイント間
でDMA要求信号を発生させる優先順位をつけることに
より、さらにUSBコントローラを高機能に出来る。
【0080】請求項3記載のUSBコントローラによれ
ば、DMA要求チャンネルを共有するエンドポイントを
変更可能とすることで、USBコントローラの汎用性を
高めることが出来る。
【0081】請求項4記載のUSBコントローラによれ
ば、DMA要求チャンネルを共有するエンドポイントの
優先順位を変更可能とすることで、USBコントローラ
の汎用性を高めることが出来る。
【0082】請求項5記載のUSBコントローラによれ
ば、優先順位の低いエンドポイントからreq を出力後ac
k が入力される前に優先順位が高いエンドポイントのF
IFOにデータが入力する場合、req 出力を変化させて
優先順位の低いエンドポイントからのDMA要求を中止
し、優先順位の高いエンドポイントからのreq に切り換
えるか、優先順位の低いエンドポイントからのDMAが
終了後に優先順位の高いエンドポイントからのreq を出
力するかを変更可能とすることにより、USBコントロ
ーラの汎用性を高めることが出来る。
【0083】請求項6記載のUSBコントローラによれ
ば、優先順位の低いエンドポイントのDMA転送が実行
中にローカルバス優先順位が高いエンドポイントのFI
FOにデータが入力する場合、優先順位の低いエンドポ
イントのDMA転送を中止し、優先順位の高いエンドポ
イントからのreq に切り換えるか、優先順位の低いエン
ドポイントのDMA転送が終了後に優先順位の高いエン
ドポイントからのreqを出力するかを変更可能とするこ
とで、USBコントローラの汎用性を高めることが出来
る。
【0084】請求項7記載のUSBコントローラによれ
ば、DMA要求チャンネルを共有する複数のエンドポイ
ント、DMA要求の優先順位、優先順位の高いエンドポ
イントからのreq 出力時に優先順位の低いエンドポイン
トから既にreq が出力されていた場合のシーケンスの切
り換えをUSBホストからUSBバスを介して設定する
ことにより、USBコントローラの汎用性を高めること
が出来る。
【0085】請求項8記載のUSBコントローラによれ
ば、DMA要求チャンネルを共有する複数のエンドポイ
ント、DMA要求の優先順位、優先順位の高いエンドポ
イントからのreq 出力時に優先順位の低いエンドポイン
トから既にreq が出力されていた場合のシーケンスの切
り換えをUSBコントローラが接続されているローカル
バスから設定することにより、USBコントローラの汎
用性を高めることが出来る。
【0086】請求項9記載のUSBコントローラによれ
ば、1つのDMA要求チャンネルを共有するエンドポイ
ント各々のステータス(各種設定、エンドポイントのF
IFOメモリ(First In First Out Memory) 内にあるパ
ケットとデータの情報)に応じて、エンドポイント間で
DMA要求の優先順位を決定することにより、エンドポ
イント内のデータの状況を反映する、従来よりも高性能
のUSBコントローラを実現出来る。
【0087】請求項10記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリのサイズを基に
DMA要求の優先順位を決定することにより、上記US
Bコントローラを実現出来る。
【0088】請求項11記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリ内にあるトータ
ルのデータの大きさを基に、DMA要求の優先順位を決
定することにより、上記USBコントローラを実現出来
る。
【0089】請求項12記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリ内にあるトータ
ルのデータの大きさがエンドポイント毎に設定するスレ
ッショホールド値より多いか少ないかを基に、DMA要
求の優先順位を決定することにより、上記USBコント
ローラを実現出来る。
【0090】請求項13記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリにあるトータル
のデータのFIFOサイズに対して占める割合を基に、
DMA要求の優先順位を決定することにより、上記US
Bコントローラを実現出来る。
【0091】請求項14記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリにあるトータル
のデータのFIFOサイズに対して占める割合がエンド
ポイント毎に設定するスレッショホールド値より多いか
少ないかを基に、DMA要求の優先順位を決定すること
により、上記USBコントローラを実現出来る。
【0092】請求項15記載のUSBコントローラによ
れば、エンドポイントのFIFOメモリにあるパケット
の数を基に、DMA要求の優先順位を決定することによ
り、上記USBコントローラを実現出来る。
【0093】請求項16記載のUSBコントローラによ
れば、OUTエンドポイントのFIFOメモリ内のパケ
ットで現在読み出し対象となっているパケットの大きさ
を基に、DMA要求の優先順位を決定することにより、
上記USBコントローラを実現出来る。
【0094】請求項17記載のUSBコントローラによ
れば、INエンドポイントのFIFOメモリにユーザ回
路から書き込むパケットの大きさを先に設定し、設定し
た値の大きさを基に、DMA要求の優先順位を決定する
ことで、上記USBコントローラを実現出来る。
【0095】請求項18記載のUSBコントローラによ
れば、エンドポイントがUSBホストとの間の送受信を
行う際のパケットサイズの最大値を基に、DMA要求の
優先順位を決定することにより、上記USBコントロー
ラを実現出来る。
【0096】請求項19記載のUSBコントローラによ
れば、上述したステータスを少なくとも2つ以上組み合
わせて、DMA要求の優先順位を決定することにより、
さらに高性能のUSBコントローラを実現出来る。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるUSBバスの接続
概念図である。
【図2】本発明の実施の形態におけるUSBコントロー
ラの構成を示すブロック図である。
【図3】本発明の実施の形態におけるUSBコントロー
ラのエンドポイント群とアービタとDMAコントローラ
との間でDMA転送を行う場合に少なくとも必要な制御
信号線の接続を示すブロック図である。
【図4】本発明の実施の形態におけるアービタの第1の
動作例を示すフローチャートである。
【図5】本発明の実施の形態におけるアービタの第2の
動作例を示すフローチャートである。
【図6】本発明の実施の形態におけるデバイスの構成を
示すブロック図である。
【図7】本発明の実施の形態におけるアービタの第3の
動作例を示すフローチャートである。
【図8】本発明の実施の形態におけるアービタの第4の
動作例を示すフローチャートである。
【図9】本発明の実施の形態における優先順位決定処理
の流れを示すフローチャートである。
【図10】本発明の実施の形態におけるOUTエンドポ
イント間で優先順位を決定する場合の処理の流れを示す
フローチャートである。
【図11】本発明の実施の形態におけるテーブルを参照
して優先順位を決定する場合の処理の流れを示すフロー
チャートである。
【図12】本発明の実施の形態における優先順位決定テ
ーブルを示す図である。
【符号の説明】
1 USBホスト 2a、2b HUB 3a〜3d デバイス 11 USBトランシーバ 12 シリアル入力エンジン 13 エンドポイント群 14 アービタ 15 DMAコントローラ 16 I/Oコントローラ 17 バスインターフェース 18 レジスタ 21 USBコントローラ 22 ターゲット

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 1つのDMA要求チャンネルを複数のエ
    ンドポイントで共有することを特徴とするUSBコント
    ローラ。
  2. 【請求項2】 前記DMA要求チャンネルを共有するエ
    ンドポイント間で、前記DMA要求の優先順位をつける
    ことを特徴とする請求項1記載のUSBコントローラ。
  3. 【請求項3】 前記DMA要求チャンネルを共有するエ
    ンドポイントを変更可能とすることを特徴とする請求項
    1または2記載のUSBコントローラ。
  4. 【請求項4】 前記DMA要求チャンネルを共有するエ
    ンドポイントの優先順位を変更可能とすることを特徴と
    する請求項2記載のUSBコントローラ。
  5. 【請求項5】 前記優先順位の低いエンドポイントから
    前記DMA要求をするreq を出力後、ローカルバスに接
    続されているDMAコントローラからのDMA要求の受
    け入れを示すack が入力される前に、前記優先順位が高
    いエンドポイントのFIFOメモリにデータが入力する
    場合、 前記req 出力を変化させて、前記優先順位の低いエンド
    ポイントからのDMA要求を中止し、前記優先順位の高
    いエンドポイントからのreq に切り換えるか、前記優先
    順位の低いエンドポイントからのDMA要求が終了後に
    前記優先順位の高いエンドポイントからのreq を出力す
    るか、のいずれか一方を設定することを特徴とする請求
    項4記載のUSBコントローラ。
  6. 【請求項6】 前記優先順位の低いエンドポイントのD
    MA転送が実行中に、前記ローカルバスの優先順位が高
    いエンドポイントのFIFOにデータが入力する場合、 前記優先順位の低いエンドポイントのDMA転送を中止
    し、前記優先順位の高いエンドポイントからのreq に切
    り換えるか、前記優先順位の低いエンドポイントのDM
    A転送が終了後に前記優先順位の高いエンドポイントか
    らのreq を出力するか、のいずれか一方を設定すること
    を特徴とする請求項4記載のUSBコントローラ。
  7. 【請求項7】 前記DMA要求チャンネルを共有する複
    数のエンドポイント、前記DMA要求の優先順位、前記
    優先順位の高いエンドポイントからのreq 出力時に、前
    記優先順位の低いエンドポイントから既にreq が出力さ
    れていた場合のシーケンスの切り換えを、USBホスト
    からUSBバスを介して設定することを特徴とする請求
    項4から6のいずれか1項に記載のUSBコントロー
    ラ。
  8. 【請求項8】 前記DMA要求チャンネルを共有する複
    数のエンドポイント、前記DMA要求の優先順位、前記
    優先順位の高いエンドポイントからのreq 出力時に、前
    記優先順位の低いエンドポイントから既にreq が出力さ
    れていた場合のシーケンスの切り換えを、前記ローカル
    バスから設定することを特徴とする請求項4から6のい
    ずれか1項に記載のUSBコントローラ。
  9. 【請求項9】 前記DMA要求チャンネルを共有するエ
    ンドポイントの優先順位を、前記共有する各エンドポイ
    ントのステータスに応じて決定することを特徴とする請
    求項2または4記載のUSBコントローラ。
  10. 【請求項10】 前記エンドポイントのFIFOメモリ
    のサイズを基に、前記DMA要求の優先順位を決定する
    ことを特徴とする請求項9記載のUSBコントローラ。
  11. 【請求項11】 前記エンドポイントのFIFOメモリ
    内にあるトータルのデータの大きさを基に、前記DMA
    要求の優先順位を決定することを特徴とする請求項9記
    載のUSBコントローラ。
  12. 【請求項12】 前記エンドポイントのFIFOメモリ
    内にあるトータルのデータの大きさと、前記エンドポイ
    ント毎に設定するスレッショホールド値との関係を基
    に、前記DMA要求の優先順位を決定することを特徴と
    する請求項9記載のUSBコントローラ。
  13. 【請求項13】 前記エンドポイントのFIFOメモリ
    にあるトータルのデータの前記FIFOサイズに対して
    占める割合を基に、前記DMA要求の優先順位を決定す
    ることを特徴とする請求項9記載のUSBコントロー
    ラ。
  14. 【請求項14】 前記エンドポイントのFIFOメモリ
    にあるトータルのデータの前記FIFOサイズに対して
    占める割合と、前記エンドポイント毎に設定するスレッ
    ショホールド値との関係を基に、前記DMA要求の優先
    順位を決定することを特徴とする請求項9記載のUSB
    コントローラ。
  15. 【請求項15】 前記エンドポイントのFIFOメモリ
    にあるパケットの数を基に、前記DMA要求の優先順位
    を決定することを特徴とする請求項9記載のUSBコン
    トローラ。
  16. 【請求項16】 OUTエンドポイントのFIFOメモ
    リ内のパケットであり、現在読み出し対象となっている
    パケットの大きさを基に、前記DMA要求の優先順位を
    決定することを特徴とする請求項9記載のUSBコント
    ローラ。
  17. 【請求項17】 INエンドポイントのFIFOメモリ
    にユーザ回路から書き込むパケットの大きさを先に設定
    し、該設定した値の大きさを基に、前記DMA要求の優
    先順位を決定することを特徴とする請求項9記載のUS
    Bコントローラ。
  18. 【請求項18】 前記エンドポイントがUSBホストと
    の間の送受信を行う際のパケットサイズの最大値を基
    に、前記DMA要求の優先順位を決定することを特徴と
    する請求項9記載のUSBコントローラ。
  19. 【請求項19】 前記エンドポイントのステータスを少
    なくとも2つ以上組み合わせて、前記DMA要求の優先
    順位を決定することを特徴とする請求項9記載のUSB
    コントローラ。
JP2001090237A 2001-03-27 2001-03-27 Usbコントローラ Pending JP2002288115A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001090237A JP2002288115A (ja) 2001-03-27 2001-03-27 Usbコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001090237A JP2002288115A (ja) 2001-03-27 2001-03-27 Usbコントローラ

Publications (1)

Publication Number Publication Date
JP2002288115A true JP2002288115A (ja) 2002-10-04

Family

ID=18945049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001090237A Pending JP2002288115A (ja) 2001-03-27 2001-03-27 Usbコントローラ

Country Status (1)

Country Link
JP (1) JP2002288115A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242718A (ja) * 2004-02-26 2005-09-08 Fujitsu Ltd データ転送装置、および転送制御プログラム
US7452401B2 (en) 2006-06-28 2008-11-18 Praxair Technology, Inc. Oxygen injection method
US7959708B2 (en) 2006-12-15 2011-06-14 Praxair Technology, Inc. Injection method for inert gas
WO2021181897A1 (ja) * 2020-03-10 2021-09-16 オムロン株式会社 通信装置、通信装置の制御方法、および集積回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005242718A (ja) * 2004-02-26 2005-09-08 Fujitsu Ltd データ転送装置、および転送制御プログラム
US7452401B2 (en) 2006-06-28 2008-11-18 Praxair Technology, Inc. Oxygen injection method
US7959708B2 (en) 2006-12-15 2011-06-14 Praxair Technology, Inc. Injection method for inert gas
WO2021181897A1 (ja) * 2020-03-10 2021-09-16 オムロン株式会社 通信装置、通信装置の制御方法、および集積回路
JP7435055B2 (ja) 2020-03-10 2024-02-21 オムロン株式会社 通信装置、通信装置の制御方法、および集積回路

Similar Documents

Publication Publication Date Title
EP1018687B1 (en) A port manager controller for connecting various function modules
KR101077900B1 (ko) 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US20040225779A1 (en) Programmable CPU/interface buffer structure using dual port RAM
JPH0668024A (ja) コンピュータ装置バス、マスタ装置とスレーブ装置の間で通信する方法およびデータ幅を調整する方法
US20110238869A1 (en) Autonomous Multi-Packet Transfer for Universal Serial Bus
US7409471B2 (en) Data transfer control device for data transfer over a bus, electronic equipment and method for data transfer over a bus
EP0772831B1 (en) Bidirectional parallel signal interface
KR100375233B1 (ko) 전송될 데이터 길이 값에 따라 전송 모드가 유동적으로변환되는 직접 메모리 억세스 컨트롤러
US7359996B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US7058747B2 (en) Bus system and bus interface for connection to a bus
US7240138B2 (en) Data transfer control apparatus
JP3636158B2 (ja) データ転送制御装置及び電子機器
US7428600B2 (en) Data transfer control device, electronic equipment, and data transfer control method
US6889265B2 (en) Apparatus and method to allow and synchronize schedule changes in a USB enhanced host controller
JP2002288115A (ja) Usbコントローラ
KR102360214B1 (ko) 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
JP2008502977A (ja) バス・コントローラのための割り込み方式
JP2005504393A (ja) バス・システムおよびバス・インターフェース
KR100633742B1 (ko) 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법
US7634602B2 (en) Bus system with few control lines
JPH11252150A (ja) ネットワーク接続装置、及びネットワーク接続制御方法
JP4127071B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP2003150536A (ja) Usbコントローラ及びその転送制御方法