JP2017531871A - Usbストリームを通したサイドチャネルアクセス - Google Patents

Usbストリームを通したサイドチャネルアクセス Download PDF

Info

Publication number
JP2017531871A
JP2017531871A JP2017518102A JP2017518102A JP2017531871A JP 2017531871 A JP2017531871 A JP 2017531871A JP 2017518102 A JP2017518102 A JP 2017518102A JP 2017518102 A JP2017518102 A JP 2017518102A JP 2017531871 A JP2017531871 A JP 2017531871A
Authority
JP
Japan
Prior art keywords
usb
interface
arbiter
side channel
lun
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.)
Ceased
Application number
JP2017518102A
Other languages
English (en)
Other versions
JP2017531871A5 (ja
Inventor
マイケル シモンズ,
マイケル シモンズ,
スワループ アドゥスミリ,
スワループ アドゥスミリ,
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JP2017531871A publication Critical patent/JP2017531871A/ja
Publication of JP2017531871A5 publication Critical patent/JP2017531871A5/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/067Bidirectional FIFO, i.e. system allowing data transfer in two directions

Abstract

システムが、USBストリームを使用したUSBデバイスのサイドチャネルアクセスを提供し得る。システムは、USBデバイスコントローラとのUSBインターフェースと、内部バスと、USBコントローラと内部バスとの間に結合される論理ユニット番号(LUN)アービタと、LUNアービタに結合される二次インターフェースとを含み得る。システムは、内部バスに結合される複数の記憶デバイスを含み得る。システムは、USBデバイスコントローラと二次インターフェースとの両方を介して、記憶デバイスへのアクセスを提供し得る。LUNアービタは、USBデバイスコントローラからの複数のUSBストリームと、二次インターフェースからの少なくとも1つの付加的USBストリームとを受け取り得る。LUNアービタは、USBデバイスコントローラおよび二次インターフェースから生じるUSBストリーム間のアクセスの優先順位を決定し得る。

Description

(関連特許出願)
本願は、2014年10月13日に出願された共同所有の米国仮特許出願第62/063,092号に対する優先権を主張し、この出願は、あらゆる目的のために、参照により本明細書に援用される。
(技術分野)
本開示は、ユニバーサルシリアルバス(USB)環境における使用のためのシステムおよび方法に関し、より具体的には、USBストリームを使用するUSBデバイスのサイドチャネルアクセスのための改善されたシステムおよび方法に関する。
(背景)
USB環境は、現代の電子機器デバイス(例えば、サーバ、パーソナルコンピュータ(「PC」)、タブレットPC、携帯電話、自動車インフォテインメントシステム、パーソナルゲーミングシステム、玩具等)においてユビキタスである。キーボード、モニタ、プリンタ、記憶デバイス、カメラ、電話、玩具、ゲーム、および多数の他の電子デバイスが単一のインターフェースで機能することを可能にするものは、「ユニバーサル」インターフェースである。USBデバイス(特に、カードリーダおよび類似物のようなデバイス)では、下流USBリソース(例えば、カードリーダの場合ではメディアカード等)が直接アクセスされることが可能である別個のインターフェース(例えば、SPI、IC、UART等)を使用して、デバイス内へのサイドチャネルを有することが有益である。1つのアプローチは、そのようなアクセスが上流USBポートを通してなされることを要求することであるが、これは、論理を複雑化させ、かつ/または、システム性能を損ない得る。
例えば、USBストリームをサポートしないUSBデバイス(例えば、デュアルカードリーダ)においては、1つのUSBパケットのみが所与の時点で処理されることが可能であり、任意のさらなるパケットは、現在のパケットの処理が完了するまで保留される。これは、サイドチャネル伝達が上流USBポートを通してシステム内へ入る場合、全てのUSBパケットは、物理的リソース(例えば、メモリカード)がアクセスされていない場合であっても、保留されなければならないことを意味する。
USBストリームをサポートするUSBデバイスにおいては、USBデバイスコントローラが、順次入るN個の数のストリームを処理する。USBストリームを用いると、新しいパケットが、先のパケットが処理される前にデバイス内に(デバイスの記憶および処理能力にまで)受け取られることが可能である。これは、中央コマンドアービタを有することによって遂行されることが可能であり、中央コマンドアービタは、各USBパケットを検証し、どの物理的リソース(例えば、メモリカード#1、メモリカード#2、CPU等)にパケットがルーティングされるべきかを決定する。パケットが意図される物理的リソースにのみルーティングすることによって、物理的リソース内の論理は、簡略化されることが可能である。
しかしながら、USBストリームをサポートするデバイスであっても、デバイス上の物理的リソースのうちの1つへのサイドチャネルアクセスは、正しい進行を決定するために、CPUによって処理される必要がある。パケットの順不同処理をサポートしないデバイス(パケットの順不同処理をサポートしない方が単純なため、殆どのデバイス)では、全ての他のパケットの処理は、サイドチャネルパケットが正しく進行させられるまで保留されなければならず、その結果、全てのパケットの順序は、維持される。これは、サイドチャネル論理とUSBデバイスコントローラとの間の通信および同期を要求し、これは、正しく実装することが困難であり得る。
さらに、上流USBポートを通してサイドチャネルアクセスを要求することは、USBデバイスにアクセスするために別個のインターフェース(例えば、SPI、IC、UART等)を使用する必要がある(または使用することを所望する)一部のユーザに許容可能ではない場合がある。これらの別個のインターフェースのうちの1つを介してUSBデバイスへのサイドチャネルアクセスを可能にすることは、ハードウェアおよび関連付けられるソフトウェアルーチンを複雑化させ得る。例えば、そのようなサイドチャネル上の読取および書込コマンド/データをUSB上流の読取および書込コマンドを用いて多重化する機能性を実装することは、実装することが困難である可能性があり、多くの場合、専用コマンドならびにアドレス指定方式および/または付加的ハードウェア要求(例えば、USBホストから生じるコマンドと別個のSPI/IC/UART等のインターフェースを介して生じるコマンドとの間のアクセス優先順位を決定する付加的アービタ層)をもたらす。
(要旨)
それ故、前述の複雑性を回避する効率的かつ単純なサイドチャネルアクセスを提供することが可能である改善されたUSB環境の必要性が存在する。
ある実施形態によると、USBデバイスコントローラおよびバッファメモリを有するUSBインターフェースを含み得るシステムが提供される。システムは、内部バスと、USBデバイスコントローラと内部バスとの間に結合される論理ユニット番号(LUN)アービタとをさらに含み得る。システムは、LUNアービタと結合される二次インターフェースをさらに含み得る。ある実施形態では、システムは、二次インターフェースと内部バスとの間に結合されるFIFOを含み得る。同一のまたは代替的な実施形態では、本システムは、内部バスに結合される複数の記憶デバイスを含み得、各記憶デバイスは、小型コンピュータシステムインターフェース(SCSI)コマンド処理ユニットと、メモリカードコントローラとを含み得る。同一のまたは代替的な実施形態では、システムは、USBデバイスコントローラとLUNアービタとの間に結合される複数のエンドポイントを含み得る。同一のまたは代替的な実施形態では、USBデバイスコントローラは、USBストリームをサポートし得、LUNアービタは、USBストリームアービタであり得る。同一のまたは代替的な実施形態では、LUNアービタは、USBデバイスコントローラからの複数のUSBストリームと、二次インターフェースからの少なくとも1つの付加的USBストリームとを受け取るように構成され得る。
さらなる実施形態によると、複数のハードウェアリソースと、USBストリームをサポートするUSBデバイスコントローラと、論理ユニット番号(LUN)アービタと、二次インターフェースとを有するシステム内の第1のハードウェアリソースへのサイドチャネルアクセスを提供するための方法が提供される。USBデバイスコントローラは、複数のハードウェアリソースのうちの第1のハードウェアリソースにアクセスするためのUSB要求を受信し得る。二次インターフェースは、複数のハードウェアリソースのうちの第1のハードウェアリソースにアクセスするためのサイドチャネル要求を受信し得る。USBデバイスコントローラは、USB要求をLUNアービタに転送し得、二次インターフェースは、サイドチャネル要求をLUNアービタに転送し得る。LUNアービタは、USB要求およびサイドチャネル要求が第1のハードウェアリソースに転送される順序を決定し得る。
さらなる実施形態によると、USBデバイスコントローラと、内部バスと、サイドチャネルインターフェースユニットとを含み得るシステムが提供される。システムはさらに、(i)USBデバイスコントローラと内部バスとの間、かつ、(ii)サイドチャネルインターフェースユニットと内部バスとの間に結合される論理ユニット番号(LUN)アービタを含み得る。システムは、内部バスに結合される少なくとも1つのハードウェアコントローラをさらに含み得る。システムは、少なくとも1つのプロセッサをさらに含み得る。少なくとも1つのプロセッサは、少なくとも1つのハードウェアコントローラにアクセスするための第1のUSBパケットおよび第2のUSBパケットを生成するように構成され得る。少なくとも1つのプロセッサは、USBインターフェースを介して第1のUSBパケットをUSBデバイスコントローラに伝送することと、サイドチャネルインターフェース通信プロトコルを経由して第2のUSBパケットをトンネリングすることによって第2のUSBパケットをサイドチャネルインターフェースユニットに伝送することとを実行するようにさらに構成され得る。第1のUSBパケットを受信すると、USBデバイスコントローラは、第1のUSBパケットを第1のUSBストリームとしてLUNアービタに転送し得る。第2のUSBパケットを受信すると、サイドチャネルインターフェースユニットは、第2のUSBパケットを第2のUSBストリームとしてLUNアービタに転送し得る。LUNアービタは、第1のUSBストリームと第2のUSBストリームと間のアクセス優先順位を決定し得る。少なくとも1つのハードウェアコントローラは、第1のUSBパケットおよび第2のUSBパケットに応答してアクセスされ得る。
付随の図面と併せて検討される以下の説明を参照することによって、本開示のさらに完全な理解が取得され得る。
図1は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスのサイドチャネルアクセスを提供することが可能である例示的なシステムのブロック図を示す。 図2は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスのサイドチャネルアクセスを提供することが可能である例示的なシステムのブロック図を示す。 図3は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスのサイドチャネルアクセスを提供するための例示的な方法のフローチャートを示す。
本開示は、種々の改変および代替的な形態の余地があるが、その具体的な例示的な実施形態が、図面に示され、本明細書で詳細に説明される。しかしながら、本明細書における具体的な例示的な実施形態の説明は、本開示を本明細書に開示される特定の形態に限定することを意図しておらず、反対に、本開示は、添付の特許請求の範囲によって定義されるような全ての改変および均等物を網羅するものであることを理解されたい。
(詳細な説明)
種々の実施形態によると、USBストリームを使用したUSBデバイスの改良されたサイドチャネルアクセスを提供することが可能であるシステムが、提供されることが可能である。
ここで図面を参照すると、例示的な実施形態の詳細が、図式的に示される。図面中の同様の要素は、同様の番号によって表され、類似する要素は、異なる小文字の接尾辞を伴う同様の番号によって表される。
図1は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスの改良されたサイドチャネルアクセスを提供することが可能である例示的なシステムのブロック図を示す。図1に描写されるように、システム100は、プロセッサ102aを有するハードウェアユニット102と、プロセッサ104aを有するハードウェアユニット104とを備え得る。システム100は、エンドポイントバッファ110およびバッファメモリ112に結合されたUSBデバイスコントローラ106をさらに備え得る。システム100は、FIFO122に結合された二次インターフェース108をさらに含み得る。システム100は、上流ポート126および128を有しかつ下流ポートを介して内部バス116に結合された論理ユニット(LUN)アービタ114をさらに備え得る。システム100は、メモリカード124aにアクセスするための小型コンピュータシステムインターフェース(SCSI)コマンド処理ユニット118aおよびメモリカードコントローラ120aと、メモリカード124bにアクセスするためのSCSIコマンド処理ユニット118bおよびメモリカードコントローラ120bとをさらに備え得る。バス103が、ハードウェアユニット102をUSBデバイスコントローラ106と結合し得、ハードウェアユニット102とUSBデバイスコントローラ106との間でUSB対応のシグナリングを伝搬することを可能にし得る。バス130が、ハードウェアユニット104を二次インターフェース108と結合し得、二次インターフェース108によってサポートされるプロトコルに対応するシグナリングを伝搬することを可能にし得る。図1は、ハードウェアユニット140を描写し、ハードウェアユニット140がハードウェアユニット102およびハードウェアユニット104とは別個のハードウェア(例えば、異なる物理的なチップ、基板等)であり得ることを示す。しかしながら、この描写されるハードウェア略図は、単に、例示的である。異なる実施形態(例えば、以下に説明される図2)が、異なるハードウェア構成を提供し得る。さらに、図1に描写される実施形態は、2つの物理的メモリカード(124a/b)ならびに対応するメモリカードコントローラ(120a/b)およびSCSIコマンド処理ユニット(118a/b)を含むが、代替的な実施形態は、任意の数のメモリカード(例えば、2個、3個、10個、16個等)および関連付けられるSCSIコマンド処理ユニットを含み得る。
プロセッサ102aおよびプロセッサ104aは、プログラム命令を解釈および/または実行しかつ/またはデータを処理するように動作可能な任意のシステム、デバイス、もしくは装置を備え得、プログラム命令を解釈および/または実行しかつ/またはデータを処理するように構成されるマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、または任意の他のデジタルもしくはアナログ回路を含み得るがこれらに限定されない。ハードウェアユニット102のプロセッサ102aは、USBデバイスコントローラ106に通信可能に結合されることにより、USBデバイスを実装/制御するために適切なシグナリングを提供し得る。ハードウェアユニット104のプロセッサ104aは、二次インターフェース108に通信可能に結合されることにより、二次インターフェース(例えば、SPI/IC/UART等)を実装/制御するために適切なシグナリングを提供し得る。プロセッサ102aおよびプロセッサ104aはまた、メモリ(例えば、揮発性、不揮発性等)、記憶媒体(例えば、フラッシュ、EEPROM、ソリッドステート記憶媒体等)等を含む他のリソース(図示せず)に通信可能に結合され得る。
USBデバイスコントローラ106は、USBデバイスコントローラインターフェースを実装するように動作可能な任意のシステム、デバイス、または装置を備え得、USBデバイスコントローラインターフェースを実装するように構成される特定用途向け集積回路(ASIC)または任意の他のデジタルもしくはアナログ回路(および必要なソフトウェア/ファームウェア)を含み得るがこれらに限定されない。ある実施形態において、USBデバイスコントローラ106は、Microchip Technology, Inc.(Microchip)によって提供されるデバイスコントローラであり得る。USBデバイスコントローラ106は、(例えば、USB仕様のバージョン3.0において導入されるように)USBストリームをサポートし得る。USBデバイスコントローラ106は、エンドポイントバッファ110およびバッファメモリ112に結合され得る。エンドポイントバッファ110は、USB仕様によって許容される最大数まで、任意の数のエンドポイントを備え得る。エンドポイントバッファ110は、USBコマンドを記憶するために使用され得る一方で、バッファメモリ112は、USBデバイスコントローラ106によって取り扱われるUSBトランザクションに関連するデータを記憶するために使用され得る。
二次インターフェース108は、二次インターフェースを実装するように動作可能な任意のシステム、デバイス、または装置を備え得、二次インターフェースを実装するように構成される特定用途向け集積回路(ASIC)または任意の他のデジタルもしくはアナログ回路(および必要なソフトウェア/ファームウェア)を含み得るがこれらに限定されない。二次インターフェース108は、サイドチャネルアクセスインターフェースを実装するために適したシリアルペリフェラルインターフェース(SPI)、集積回路間(IC)インターフェース、汎用非同期送受信機(UART)インターフェース、または任意の他の非USB通信インターフェースであり得る。二次インターフェース108は、FIFO122に結合され得る。FIFO122は、USBコマンドと、二次インターフェース108によって取り扱われるサイドチャネルアクセスUSBトランザクションに関連するデータとを記憶するために使用され得る。
論理ユニット番号(LUN)アービタ114は、USBストリームアービタを実装するように動作可能な任意のシステム、デバイス、または装置を備え得、USBストリームアービタを実装するように構成される特定用途向け集積回路(ASIC)または任意の他のデジタルもしくはアナログ回路(および必要なソフトウェア/ファームウェア)を含み得るがこれらに限定されない。LUNアービタ114は、エンドポイントバッファ110に結合された上流ポート126と、FIFO122に結合された上流ポート128とを含み得る。LUNアービタ114は、上流ポート126を介して、USBデバイスコントローラ106から生じる複数のUSBストリームをサポートし得る。LUNアービタ114は、上流ポート128を介して、二次インターフェース108から生じる少なくとも1つの付加的USBストリームをさらにサポートし得る。LUNは、SCSI、iSCSI、またはファイバチャネル(FC)プロトコルによってアドレス指定されるような別個のデバイス(そのデバイスの各々が論理ユニットである)を区別するために使用される一意の識別子である。
SCSIコマンド処理ユニット118aおよびSCSIコマンド処理ユニット118bは、内部バス116上に送られるSCSIコマンドを処理するように動作可能な任意のシステム、デバイス、または装置を備え得、内部バス116上に発行されるSCSIコマンドを処理するように構成される特定用途向け集積回路(ASIC)または任意の他のデジタルもしくはアナログ回路(および必要なソフトウェア/ファームウェア)を含み得るがこれらに限定されない。代替的な実施形態では、内部バス116は、LUNアービタとメモリカードコントローラ120aおよびメモリカードコントローラ120bとの間をインターフェースするために適したiSCSI、FC、または任意の他のバスであり得る。従って、図1は、SCSIコマンド処理ユニットとして要素118aおよび要素118bを描写しているが、これらの処理ユニットは、代替的な実施形態では、iSCSI、FC、または他のコマンド処理ユニットであり得る。
メモリカードコントローラ120aおよびメモリカードコントローラ120bは、それぞれ、メモリカード124aおよびメモリカード124bを制御するように動作可能な任意のシステム、デバイス、または装置を備え得、メモリカード124aおよびメモリカード124bを制御するように構成される特定用途向け集積回路(ASIC)または任意の他のデジタルもしくはアナログ回路(および必要なソフトウェア/ファームウェア)を含み得るがこれらに限定されない。代替的な実施形態では、メモリカード124aおよびメモリカード124bは、メモリカード以外のハードウェアリソース(例えば、オーディオデバイス等)であり得る。従って、図1は、メモリカードコントローラとして要素120aおよび要素120bを描写しているが、これらのコントローラは、メモリカード以外のハードウェアリソース(例えば、オーディオデバイス等)を制御するように構成され得る。
動作時、システム100は、USBストリームを使用したUSBデバイスへの改良されたサイドチャネルアクセスを提供し得る。ハードウェアユニット102およびプロセッサ102aは、USBバス103を介してUSBデバイスコントローラ106と相互作用するように概して動作可能なソフトウェアおよび/またはファームウェア(例えば、USBホストコントローラスタック等)を実行し得る。USBバス103を介してUSBパケットを受信すると、USBデバイスコントローラ106は、USBストリームを含む対応するUSBコマンドをエンドポイントバッファ110に転送(例えば、記憶)し得、対応するデータをバッファメモリ112内に記憶し得る。
任意の時点で、ハードウェアユニット104およびプロセッサ104aは、バス130を介してデータを二次インターフェース108に伝送することによって、USBデバイスのサイドチャネルアクセスを開始するように概して動作可能なソフトウェアおよび/またはファームウェアを実行し得る。先に開示されたように、バス130は、サイドチャネルアクセスインターフェースを実装するために適したSPIバス、ICバス、UARTバス、または任意の他の非USBバスであり得る。ハードウェアユニット104およびプロセッサ104aは、二次インターフェースプロトコルを経由してUSBパケットをトンネリングすることによって、バス130を経由してUSBパケットを送信し得る。言い換えると、USBプロトコルは、SPI/IC/UART等のプロトコルの上にオーバーレイされ得、これは、USBをSPI/IC/UART等にブリッジしないときは、反直観的である。実際には、逆ブリッジ機能がなされ、これは、使用することがより有能かつロバストなプロトコルとUSBがみなされるため、非常に奇異なことであるとみなされ得る。バス130を介してUSBパケットを受信すると、二次インターフェース108は、USBパケットをアンパックし、USBコマンドおよびデータをUSBストリームとしてFIFO122内に転送(例えば、記憶)する。
LUNアービタ114は、(USBデバイスコントローラ106からの)上流ポート126および(二次インターフェース108からの)上流ポート128において、USBストリームを介してUSBパケットを受信し得る。LUNアービタ114は、上流ポート126および上流ポート128において受信されたUSBパケットを、どの物理的LUN(例えば、図1におけるメモリカードコントローラ120aおよびメモリカードコントローラ120b)にパケットが行くことになっているかを決定し、かつ、USBパケット内に含まれる要求を正しいLUNに向かわせることによって、正しいオンチップリソースに進行させ得る。従って、LUNアービタ114は、SCSI、iSCSI、またはファイバチャネル(FC)プロトコルに従ってUSBパケット内に含まれる要求をコマンド(例えば、ユニキャストコマンド)に変換し得、変換された要求を内部バス116に転送し得る。
SCSIコマンド処理ユニット118aおよびSCSIコマンド処理ユニット118bは、内部バス116からコマンドを受信し得、SCSIコマンド処理ユニット118aおよびSCSIコマンド処理ユニット118bは、それぞれ、メモリカードコントローラ120aおよびメモリカードコントローラ120b(または他のハードウェアコントローラ)とインターフェースすることにより、メモリカード124aおよびメモリカード124b(または他のハードウェアリソース)へのアクセスを生じさせ得る。メモリカード124aおよびメモリカード124bのアクセスは、正規のUSBアクセス(すなわち、USBデバイスコントローラ106を介して)またはサイドチャネルアクセス(すなわち、二次インターフェース108を介して)であり得る。
図2は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスへの改良されたサイドチャネルアクセスを提供することが可能である例示的なシステムのブロック図を示す。図2は、ほぼ全ての点で、図1と同じである。図2は、プロセッサ203が図1のハードウェアユニット102およびハードウェアユニット104に取って代わる代替的な実施形態を描写する。図2の実施形態はまた、要素140aの追加が図1とは異なる。
図2に描写される実施形態によると、プロセッサ203は、プログラム命令を解釈および/または実行しかつ/またはデータを処理するように動作可能な任意のシステム、デバイス、もしくは装置を備え得、プログラム命令を解釈および/または実行しかつ/またはデータを処理するように構成されるマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、または任意の他のデジタルもしくはアナログ回路を含み得るがこれらに限定されない。プロセッサ203は、USBデバイスコントローラ106に通信可能に結合されることにより、USBデバイスを実装/制御するために適切なシグナリングを提供し得る。プロセッサ203はさらに、二次インターフェース108に通信可能に結合されることにより、二次インターフェースを実装/制御するために適切なシグナリングを提供し得る。プロセッサ203はまた、メモリ(例えば、揮発性、不揮発性等)、記憶媒体(例えば、フラッシュ、EEPROM、ソリッドステート記憶媒体等)等を含む他のリソース(図示せず)に通信可能に結合され得る。したがって、図1のプロセッサ102aおよびプロセッサ104aは、別個のハードウェアユニットの一部であったが、図2のプロセッサ203は、通常のUSBアクセスおよびサイドチャネルアクセスの両方を開始する。
図2の要素140aは、本開示に従った種々の代替的な実施形態を表す。例えば、1つの実施形態では、プロセッサ203は、ハードウェアユニット140の一部であり得る。代替的な実施形態では、プロセッサ203は、ハードウェアユニット140とは別個のハードウェアユニットの一部であり得る。
図3は、本開示のある実施形態に従った、USBストリームを使用したUSBデバイスの改良されたサイドチャネルアクセスを提供するための例示的な方法300のフローチャートを示す。1つの実施形態によると、方法300は、好ましくは、ステップ302において開始する。上述されたように、本開示の教示は、システム100/200の種々の構成において実装され得る。したがって、方法300の好ましい初期化点および方法300を構成するステップ302〜314の順序は、選定された実装に依存し得る。
ステップ302において、システム100/200は、初期化し得る。例えば、システム100/200は、(電源を介して、またはUSBホストへの接続を介して)電源オンにされ得、システム100/200のUSBデバイスコントローラ106、二次インターフェース108、および他の構成要素が、初期化し得る。ステップ304において、システム100/200は、USBバス103を介して第1のUSBパケットを受信し得る。第1のUSBパケットは、ハードウェアユニット102内のUSBホストから送信される通常のUSBトラフィックを表し得る。ステップ306において、システム100/200は、二次インターフェース108上に第2のUSBパケットを受信し得る。第2のUSBパケットは、二次インターフェースによって定義された通信プロトコル(例えば、SPI/IC/UART等のインターフェースを経由してUSBパケットをトンネリングすること)に従って受信され得る。ステップ308において、USBデバイスコントローラは、第1のUSBパケットをUSBストリームとしてLUNアービタ114に転送し得る。ステップ310において、二次インターフェース108は、第2のUSBパケットをUSBストリームとしてLUNアービタ114に転送し得る(すなわち、二次インターフェースは、トンネリングされた第2のUSBパケットをFIFO122を介してLUNアービタ114に転送するために、トンネリングされた第2のUSBパケットをアンパックし得る)。ステップ312において、LUNアービタ114は、第1のUSBパケットと第2のUSBパケットと間のアクセスの優先順位を決定し得る。本文脈では、LUNアービタ114が、第1のパケットおよび第2のパケットは異なるハードウェアリソースに向かっていると決定する場合、LUNアービタ114は、第1のパケットおよび第2のパケット内に含まれる要求間に競合は全く存在しないと決定し得る。ステップ314において、LUNアービタ114は、第1のUSBパケットおよび第2のUSBパケットに関して決定された優先順位に従って、ハードウェアコントローラ120aおよび/またはハードウェアコントローラ120bにアクセスし得る。例えば、LUNアービタ114は、コマンド処理ブロック118a/118bによって処理され得るコマンドを内部バス116上に発行し得る。次に、ハードウェアコントローラ120aおよび/またはハードウェアコントローラ120bは、アクセスされ得、メモリカード124aおよび/またはメモリカード124bへのアクセスをもたらす。
図3は、図3に描写される方法に関して行われるべき特定の数のステップを開示しているが、その方法は、描写されるものよりも多いまたは少ないステップで実行され得る。加えて、図3は、図3に描写される方法に関して行われるべきある順序のステップを開示しているが、ステップは、任意の適した順序で完了され得る。例えば、ステップ304は、ステップ306の後に起こり得る。別の例として、ステップ308は、ステップ310の後に起こり得る。
本明細書に開示される方法およびシステムを使用して、USBストリームを使用したUSBデバイスの改良されたサイドチャネルアクセスを提供することが可能であるシステムが、提供されることが可能である。開示される実施形態によると、ユーザは、有利に、USBデバイスのサイドチャネルアクセスを実行するために、既存のハードウェアインターフェースを使用し得る。サイドチャネルマスタ(例えば、SPI、IC、UART等のマスタ)が、USBホストのように、チップ上に置かれ得る任意の種類のUSB下流デバイスに呼びかけ得る。さらに、開示される実施形態によると、システム140上に存在するCPUは、全てのサイドチャネルパケットを処理する負担を軽減され得る。さらに、開示される実施形態によると、アービトレーションは、集中化され、それ故、より単純かつより整合した状態になる。例えば、LUNアービタ114は、USBパケットを処理することのみを必要とし、これは、設計を簡略化し、専用プロトコルの必要性を排除し得る。別の例として、いくつかの実施形態では、LUNアービタ114は、以前から存在するUSBストリームアービタへの単純な修正である、サイドチャネルアクセスに関連する1つの付加的USBストリームをサポートすることのみを必要とする。またさらに、開示される実施形態は、サイドチャネルアクセスに関するコヒーレントな順不同処理を可能にする。
本開示が詳細に説明されたが、種々の変更、置換、および改変が、添付される特許請求の範囲によって定義されるような本開示の精神および範囲から逸脱することなく、本明細書に成され得ることを理解されたい。

Claims (25)

  1. USBデバイスコントローラおよびバッファメモリを有するUSBインターフェースと、
    内部バスと、
    前記USBデバイスコントローラと前記内部バスとの間に結合される論理ユニット番号(LUN)アービタと、
    前記LUNアービタに結合される二次インターフェースと
    を備える、システム。
  2. 前記二次インターフェースと前記内部バスとの間に結合されるFIFOをさらに備える、請求項1に記載のシステム。
  3. 前記内部バスに結合される複数の記憶デバイスをさらに備える、請求項1に記載のシステム。
  4. 各記憶デバイスは、小型コンピュータシステムインターフェース(SCSI)コマンド処理ユニットと、メモリカードコントローラとを備える、請求項3に記載のシステム。
  5. 前記USBデバイスコントローラと前記LUNアービタとの間に結合される複数のエンドポイントをさらに備える、請求項1に記載のシステム。
  6. 前記USBデバイスコントローラは、USBストリームをサポートし、前記LUNアービタは、USBストリームアービタである、請求項5に記載のシステム。
  7. 前記LUNアービタは、前記USBデバイスコントローラからの複数のUSBストリームと、前記二次インターフェースからの少なくとも1つの付加的USBストリームとを受け取るように構成される、請求項6に記載のシステム。
  8. 前記二次インターフェースは、シリアルペリフェラルインターフェース(SPI)、集積回路間(IC)インターフェース、または、汎用非同期送受信機(UART)インターフェースのうちの1つである、請求項1に記載のシステム。
  9. 複数のハードウェアリソースと、USBストリームをサポートするUSBデバイスコントローラと、論理ユニット番号(LUN)アービタと、二次インターフェースとを有するシステム内の第1のハードウェアリソースへのサイドチャネルアクセスを提供するための方法であって、前記方法は、
    前記USBデバイスコントローラが、前記複数のハードウェアリソースのうちの前記第1のハードウェアリソースにアクセスするためのUSB要求を受信することと、
    前記二次インターフェースが、前記複数のハードウェアリソースのうちの前記第1のハードウェアリソースにアクセスするためのサイドチャネル要求を受信することと、
    前記USBデバイスコントローラが、前記USB要求を前記LUNアービタに転送することと、
    前記二次インターフェースが、前記サイドチャネル要求を前記LUNアービタに転送することと、
    前記LUNアービタが、前記USB要求および前記サイドチャネル要求が前記第1のハードウェアリソースに転送される順序を決定することと
    を含む、方法。
  10. 前記二次インターフェースは、USBインターフェースではなく、前記サイドチャネル要求は、前記二次インターフェースを経由してトンネリングされるUSBパケットである、請求項9に記載の方法。
  11. 前記二次インターフェースは、シリアルペリフェラルインターフェース(SPI)、集積回路間(IC)インターフェース、または、汎用非同期送受信機(UART)インターフェースのうちの1つである、請求項10に記載の方法。
  12. 前記二次インターフェースは、FIFOを使用して前記サイドチャネル要求を前記LUNアービタに転送する、請求項9に記載の方法。
  13. 前記二次インターフェースは、前記USBパケットをアンパックし、前記USBパケットをFIFO内に記憶する、請求項10に記載の方法。
  14. 前記LUNアービタは、前記USB要求および前記サイドチャネル要求をUSBパケットとして受信する、請求項9に記載の方法。
  15. 前記LUNアービタは、小型コンピュータシステムインターフェース(SCSI)コマンドを使用して、前記USB要求および前記サイドチャネル要求を前記第1のハードウェアリソースに転送する、請求項14に記載の方法。
  16. 前記LUNアービタは、USBストリームアービタであり、前記USBデバイスコントローラは、前記USB要求を前記LUNアービタに第1のUSBストリームとして転送し、前記二次インターフェースは、前記サイドチャネル要求を前記LUNアービタに第2のUSBストリームとして転送する、請求項9に記載の方法。
  17. USBデバイスコントローラと、
    内部バスと、
    サイドチャネルインターフェースユニットと、
    (i)前記USBデバイスコントローラと前記内部バスとの間、かつ、(ii)前記サイドチャネルインターフェースユニットと前記内部バスとの間に結合される論理ユニット番号(LUN)アービタと、
    前記内部バスに結合される少なくとも1つのハードウェアコントローラと、
    前記少なくとも1つのハードウェアコントローラにアクセスするための第1のUSBパケットおよび第2のUSBパケットを生成することと、
    USBインターフェースを介して、前記第1のUSBパケットを前記USBデバイスコントローラに伝送することと、
    サイドチャネルインターフェース通信プロトコルを経由して前記第2のUSBパケットをトンネリングすることによって、前記第2のUSBパケットを前記サイドチャネルインターフェースユニットに伝送することと
    を実行するように構成される少なくとも1つのプロセッサと
    を備えるシステムであって、
    前記USBデバイスコントローラは、前記第1のUSBパケットを前記LUNアービタに第1のUSBストリームとして転送し、前記サイドチャネルインターフェースユニットは、前記第2のUSBパケットを前記LUNアービタに第2のUSBストリームとして転送し、前記LUNアービタは、前記第1のUSBストリームと前記第2のUSBストリームと間のアクセス優先順位を決定する、システム。
  18. 前記少なくとも1つのハードウェアコントローラは、前記第1のUSBパケットおよび前記第2のUSBパケットに応答してアクセスされる、請求項17に記載のシステム。
  19. 前記少なくとも1つのハードウェアコントローラは、メモリカードコントローラである、請求項17に記載のシステム。
  20. 前記内部バスは、小型コンピュータシステムインターフェース(SCSI)バスであり、前記少なくとも1つのハードウェアコントローラは、SCSIコマンド処理ユニットを介して前記内部バスに結合される、請求項17に記載のシステム。
  21. 前記サイドチャネルインターフェース通信プロトコルは、シリアルペリフェラルインターフェース(SPI)プロトコル、集積回路間(IC)インターフェースプロトコル、または、汎用非同期送受信機(UART)インターフェースプロトコルのうちの1つである、請求項17に記載のシステム。
  22. 前記サイドチャネルインターフェースユニットは、FIFOを使用して前記第2のUSBパケットを前記LUNアービタに転送する、請求項17に記載のシステム。
  23. 前記LUNアービタは、前記USBデバイスコントローラからの複数のUSBストリームと、前記サイドチャネルインターフェースユニットからの少なくとも1つの付加的ストリームとを受け取るように構成される、請求項17に記載のシステム。
  24. 前記第1のUSBパケットは、前記少なくとも1つのプロセッサのうちの第1のプロセッサによって生成され、前記第2のUSBパケットは、前記少なくとも1つのプロセッサのうちの第2のプロセッサによって生成される、請求項17に記載のシステム。
  25. 前記第1のプロセッサは、第1のハードウェアユニットの一部であり、前記第2のプロセッサは、第2のハードウェアユニットの一部であり、前記USBデバイスコントローラは、第3のハードウェアユニットの一部である、請求項24に記載のシステム。
JP2017518102A 2014-10-13 2015-10-13 Usbストリームを通したサイドチャネルアクセス Ceased JP2017531871A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462063092P 2014-10-13 2014-10-13
US62/063,092 2014-10-13
US14/880,699 2015-10-12
US14/880,699 US10042784B2 (en) 2014-10-13 2015-10-12 Side channel access through USB streams
PCT/US2015/055213 WO2016061028A1 (en) 2014-10-13 2015-10-13 Side channel access through usb streams

Publications (2)

Publication Number Publication Date
JP2017531871A true JP2017531871A (ja) 2017-10-26
JP2017531871A5 JP2017531871A5 (ja) 2018-11-01

Family

ID=55655542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017518102A Ceased JP2017531871A (ja) 2014-10-13 2015-10-13 Usbストリームを通したサイドチャネルアクセス

Country Status (7)

Country Link
US (1) US10042784B2 (ja)
EP (1) EP3207459B1 (ja)
JP (1) JP2017531871A (ja)
KR (1) KR20170067715A (ja)
CN (1) CN106663069B (ja)
TW (1) TWI686699B (ja)
WO (1) WO2016061028A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785595B2 (en) * 2013-09-09 2017-10-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-channel universal serial bus (USB) to subrate channel systems

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845329A (en) 1993-01-29 1998-12-01 Sanyo Electric Co., Ltd. Parallel computer
US5675813A (en) 1995-10-26 1997-10-07 Microsoft Corporation System and method for power control in a universal serial bus
US5983327A (en) 1995-12-01 1999-11-09 Nortel Networks Corporation Data path architecture and arbitration scheme for providing access to a shared system resource
US5784581A (en) 1996-05-03 1998-07-21 Intel Corporation Apparatus and method for operating a peripheral device as either a master device or a slave device
KR100189781B1 (ko) 1996-05-07 1999-06-01 윤종용 디스플레이 장치 및 그의 전원공급제어방법
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
US6308239B1 (en) 1996-11-07 2001-10-23 Hitachi, Ltd. Interface switching apparatus and switching control method
US6205501B1 (en) 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6408351B1 (en) 1998-03-31 2002-06-18 Compaq Computer Corporation Host modem having a peripheral codec powered by a peripheral bus
US6266715B1 (en) * 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
JP2000076038A (ja) 1998-08-28 2000-03-14 Matsushita Electric Ind Co Ltd Usbハブ回路及びディスプレイ装置
GB2350212B (en) 1999-02-09 2003-10-08 Adder Tech Ltd Data routing device and system
US6601109B1 (en) 1999-03-31 2003-07-29 International Business Machines Corporation USB-based networking and I/O hub
GB9909849D0 (en) 1999-04-28 1999-06-23 Adder Tech Ltd Usb switching device and system
JP2000316006A (ja) 1999-04-28 2000-11-14 Nec Corp バスマネージャ機能自動切換対応ノード、移動端末、及び、移動端末システム
US6704824B1 (en) 1999-07-27 2004-03-09 Inline Connection Corporation Universal serial bus adapter with automatic installation
FR2799288B1 (fr) 1999-09-23 2005-02-25 Ibm Systeme de communication sans fil utilisant un bus serie universel (usb)
US6957287B2 (en) 2001-11-09 2005-10-18 Aten International Co., Ltd. Asynchronous/synchronous KVMP switch for console and peripheral devices
JP2003256351A (ja) 2002-03-04 2003-09-12 Yamaha Corp Usbハブ
KR20040008365A (ko) 2002-07-18 2004-01-31 삼성전자주식회사 디스플레이 장치 및 방법
US6732218B2 (en) 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method
AU2003901297A0 (en) 2003-03-20 2003-04-03 Silverbrook Research Pty Ltd Systems and apparatus (fpd001)
US7502878B1 (en) * 2003-06-27 2009-03-10 Cypress Semiconductor Corporation Method and apparatus for switching USB devices between multiple USB hosts
US7711006B2 (en) 2003-08-15 2010-05-04 Napatech A/S Data merge unit, a method of producing an interleaved data stream, a network analyser and a method of analysing a network
US7085117B2 (en) * 2003-10-02 2006-08-01 Axiohm Transaction Solutions, Inc. EMC immunity improvements to USB interface
US7073010B2 (en) 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7673080B1 (en) * 2004-02-12 2010-03-02 Super Talent Electronics, Inc. Differential data transfer for flash memory card
JP2006085293A (ja) 2004-09-14 2006-03-30 Matsushita Electric Ind Co Ltd インタフェースブリッジ装置
US20060056401A1 (en) 2004-09-14 2006-03-16 Standard Microsystems Corporation Peripheral sharing USB hub
US20060059293A1 (en) 2004-09-14 2006-03-16 Henry Wurzburg Universal serial bus switching hub
US20060227759A1 (en) 2004-09-14 2006-10-12 Bohm Mark R Peripheral Sharing USB Hub
JP2006127252A (ja) 2004-10-29 2006-05-18 Fujitsu Component Ltd 切替機、切替方法及びプログラム
US7346728B1 (en) 2005-04-18 2008-03-18 Intel Corporation Method and apparatus for a hub capable of being self-powered for use in a USB-compliant system
US7246189B2 (en) 2005-11-18 2007-07-17 Vetra Systems Corporation Method and apparatus for enhancing universal serial bus
JP4725397B2 (ja) * 2006-04-05 2011-07-13 セイコーエプソン株式会社 Usb複合デバイス,usb通信システム,及びusb通信方法
US7523243B2 (en) 2006-04-14 2009-04-21 Standard Microsystems Corporation Multi-host USB device controller
US7478191B2 (en) 2006-04-14 2009-01-13 Standard Microsystems Corporation Method for automatically switching USB peripherals between USB hosts
JP2007293708A (ja) 2006-04-26 2007-11-08 Nec Access Technica Ltd ワイヤレスusb装置
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US9292436B2 (en) * 2007-06-25 2016-03-22 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
CA2692395A1 (en) * 2007-07-06 2009-01-15 Kerry Berland Unidirectional usb port
CN101452369B (zh) * 2007-11-29 2012-01-25 国际商业机器公司 用于控制usb大容量存储设备的逻辑单元的方法和系统
TW201005654A (en) 2008-07-24 2010-02-01 Jmicron Technology Corp Host controller disposed in multi-function card reader
US9619417B2 (en) * 2011-06-17 2017-04-11 Alcatel Lucent Method and apparatus for remote delivery of managed USB services via a mobile computing device
US20130191568A1 (en) * 2012-01-23 2013-07-25 Qualcomm Incorporated Operating m-phy based communications over universal serial bus (usb) interface, and related cables, connectors, systems and methods

Also Published As

Publication number Publication date
US20160103772A1 (en) 2016-04-14
US10042784B2 (en) 2018-08-07
EP3207459B1 (en) 2020-02-26
EP3207459A1 (en) 2017-08-23
CN106663069B (zh) 2020-07-10
CN106663069A (zh) 2017-05-10
KR20170067715A (ko) 2017-06-16
WO2016061028A1 (en) 2016-04-21
TWI686699B (zh) 2020-03-01
TW201633158A (zh) 2016-09-16

Similar Documents

Publication Publication Date Title
JP6266615B2 (ja) データトンネルを用いるインタフェースを介した複数のプロトコルデータ要素の送信
JP6400714B2 (ja) Usbハブを有する自動車システムとの柔軟なモバイルデバイス接続性
TWI556174B (zh) 虛擬功能分配系統、方法及其管理主機
US20130246680A1 (en) Hot plug process in a distributed interconnect bus
TW201937381A (zh) 支援多模式及/或多速度之跨架構高速非揮發性記憶體裝置的系統與方法及儲存裝置
US11425101B2 (en) System, apparatus and method for tunneling and/or multiplexing via a multi-drop interconnect
KR102147629B1 (ko) 플렉시블 서버 시스템
JP2002300229A (ja) Usb通信制御装置、usb通信システムおよびusb通信制御方法
US9087162B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8566416B2 (en) Method and system for accessing storage device
EP3026530B1 (en) Keyboard-video-mouse switch and operating method thereof
EP3382567B1 (en) Multiple storage devices implemented using a common connector
US9280508B1 (en) Apparatus and method for interoperability between SAS and PCI express
CN115298656A (zh) 用于调度可共享pcie端点设备的系统和方法
US20100169069A1 (en) Composite device emulation
US8032675B2 (en) Dynamic memory buffer allocation method and system
US10585842B2 (en) Computer system for virtualizing I/O device and method of operating the same and hub device
JP2017531871A (ja) Usbストリームを通したサイドチャネルアクセス
US10942793B2 (en) Information processing system
TWI579762B (zh) 固態硬碟控制電路及相關的固態硬碟裝置與固態硬碟存取系統
WO2014036725A1 (zh) 一种配置pcie端口的方法、装置和设备
JP5010471B2 (ja) データ処理システム
US10025736B1 (en) Exchange message protocol message transmission between two devices
JP2017531871A5 (ja)
US10042792B1 (en) Method for transferring and receiving frames across PCI express bus for SSD device

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190723

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190801

A045 Written measure of dismissal of application

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20191219