IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特許-通信システム、デバイス、及び通信方法 図1
  • 特許-通信システム、デバイス、及び通信方法 図2
  • 特許-通信システム、デバイス、及び通信方法 図3
  • 特許-通信システム、デバイス、及び通信方法 図4
  • 特許-通信システム、デバイス、及び通信方法 図5
  • 特許-通信システム、デバイス、及び通信方法 図6
  • 特許-通信システム、デバイス、及び通信方法 図7
  • 特許-通信システム、デバイス、及び通信方法 図8
  • 特許-通信システム、デバイス、及び通信方法 図9
  • 特許-通信システム、デバイス、及び通信方法 図10
  • 特許-通信システム、デバイス、及び通信方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】通信システム、デバイス、及び通信方法
(51)【国際特許分類】
   H04L 12/42 20060101AFI20240122BHJP
   H04L 12/28 20060101ALI20240122BHJP
   G06F 13/36 20060101ALI20240122BHJP
   G06F 13/38 20060101ALI20240122BHJP
【FI】
H04L12/42 Z
H04L12/28 200Z
G06F13/36 530C
G06F13/38 350
【請求項の数】 13
(21)【出願番号】P 2020050472
(22)【出願日】2020-03-23
(65)【公開番号】P2021150878
(43)【公開日】2021-09-27
【審査請求日】2022-09-08
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】渡邉 学
【審査官】小林 義晴
(56)【参考文献】
【文献】特開昭60-245339(JP,A)
【文献】特表2013-513836(JP,A)
【文献】特開2010-165136(JP,A)
【文献】特開2006-245790(JP,A)
【文献】特開平02-205135(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
G06F 13/36
13/38
(57)【特許請求の範囲】
【請求項1】
コントローラと、
複数のデバイスと、
前記コントローラ及び前記複数のデバイスをリング状に接続し、差動シリアル信号の通信フレームを伝送可能である通信路と、
を備え、
前記通信路で伝送される通信フレームは、互いに均等な固定データ長を有する複数のパケットで構成され
前記デバイスは、所定の条件に応じて、受信した通信フレームに含まれるパケットに対するデータの挿抜が可能である
通信システム。
【請求項2】
前記デバイスは、前記パケットに含まれるヘッダが送信先として前記デバイスの識別情報を含むことに応じて、前記パケットに対するデータの挿抜が可能である
請求項1に記載の通信システム。
【請求項3】
前記デバイスは、前記パケットが有効データを含まないヌルパケットであることに応じて、前記パケットにデータの挿入が可能である
請求項1に記載の通信システム。
【請求項4】
前記デバイスは、前記パケットが有効データを含まないヌルパケットであり、前記ヌルパケットのヘッダが送信先として前記デバイスの識別情報を含むことに応じて、前記パケットにデータの挿入が可能である
請求項1に記載の通信システム。
【請求項5】
前記デバイスは、前記パケットが有効データを含まないヌルパケットであり、前記ヌルパケットのヘッダがペイロードの空き容量を示す容量情報を含み、前記ヌルパケットに含めるべきデータのサイズが前記容量情報で示される空き容量以下であることに応じて、前記パケットに対するデータの挿抜が可能である
請求項1に記載の通信システム。
【請求項6】
前記デバイスは、前記パケットが有効データを含まないヌルパケットであり、前記ヌルパケット内にそれぞれがヘッダ及びペイロードを含む複数セットを挿入させることが可能である
請求項1に記載の通信システム。
【請求項7】
前記パケットは、ヘッダ及びペイロードを含み、
前記ヘッダは、所定の情報と前記所定の情報に対する誤り訂正符号とを有する第1の符号語を含む
請求項1に記載の通信システム。
【請求項8】
前記ヘッダは、前記第1の符号語のビット値を反転させた第2の符号語をさらに含む
請求項に記載の通信システム。
【請求項9】
コントローラ及び複数のデバイスをリング状に接続し差動シリアル信号を伝送可能である通信路が接続可能である通信インターフェースを備え、
前記通信路で伝送される通信フレームは、互いに均等な固定データ長を有する複数のパケットで構成され
前記通信インターフェースは、所定の条件に応じて、受信した通信フレームに含まれるパケットに対するデータの挿抜が可能である
デバイス。
【請求項10】
コントローラと複数のデバイスと前記コントローラ及び前記複数のデバイスをリング状に接続し差動シリアル信号を伝送可能である通信路とを有する通信システムにおける前記コントローラが、互いに均等な固定データ長を有する複数のパケットで構成される通信フレームを前記通信路へ送出することと、
前記デバイスが、所定の条件に応じて、受信した通信フレームに含まれるパケットに対してデータを挿抜することと、
を含む通信方法。
【請求項11】
コントローラと、
複数のデバイスと、
前記コントローラ及び前記複数のデバイスをリング状に接続し、差動シリアル信号の通信フレームを伝送可能である通信路と、
を備え、
前記通信路で伝送される通信フレームは、それぞれが固定データ長を有する複数のパケットを含み、
前記複数のデバイスのうちの第1のデバイスは、前記コントローラから送信された第1の通信フレームを前記通信路を介して受信し、受信した前記第1の通信フレームに含まれる第1のパケットに含まれる第1のデータを所定の条件に応じて抜き出し、前記第1のパケットを第2のデータを含めた第2のパケットに更新し、前記第2のパケットを含む第2の通信フレームを前記通信路を介して前記コントローラ又は前記複数のデバイスのうちの第2のデバイスに送信する
通信システム。
【請求項12】
コントローラに通信路を介して直列接続可能なデバイスであって、
前記通信路は、前記デバイスを含む複数のデバイス及び前記コントローラをリング状に接続し差動シリアル信号を伝送可能であり、
前記通信路で伝送される通信フレームは、それぞれが固定データ長を有する複数のパケットを含み、
前記デバイスは、
前記通信路を介して第1の通信フレームを受信する受信回路と、
前記通信路へ前記第1の通信フレームと異なる第2の通信フレームを送信する送信回路と、
前記受信回路を介して受信した前記第1の通信フレーム及び前記送信回路を介して送信する前記第2の通信フレームを制御する制御回路と、
を備え、
前記制御回路は、前記受信回路を介して受信した前記第1の通信フレームに含まれる第1のパケットに含まれる第1のデータを所定の条件に応じて抜き出し、前記第1のパケットを第2のデータを含めた第2のパケットに更新し、前記第2のパケットを含む前記第2の通信フレームを前記通信路に送信する
デバイス。
【請求項13】
コントローラ及び複数のデバイスをリング状に接続し差動シリアル信号を伝送可能である通信路を有する通信システムにおける通信方法であって、
前記通信路で伝送される通信フレームは、それぞれが固定データ長を有する複数のパケットを含み、
前記コントローラが、前記複数のパケットを含む第1の通信フレームを前記通信路へ送信することと、
前記複数のデバイスのうちの第1のデバイスが、前記コントローラから前記第1の通信フレームを前記通信路を介して受信し、受信した前記第1の通信フレームに含まれる第1のパケットに含まれる第1のデータを所定の条件に応じて抜き出し、前記第1のパケットを第2のデータを含めた第2のパケットに更新し、前記第2のパケットを含む第2の通信フレームを前記通信路を介して前記コントローラ又は前記複数のデバイスのうちの第2のデバイスに送信することと、
を含む通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、通信システム、デバイス、及び通信方法に関する。
【背景技術】
【0002】
コントローラと複数のデバイスとを有する通信システムでは、コントローラと複数のデバイスとが通信路を介してパケットを転送する。このとき、パケットを効率的に転送することが望まれる。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2011/037168号
【文献】特開2009-239656号公報
【文献】特開2014-59883号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、パケットを効率的に転送できる通信システム、デバイス、及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、コントローラと複数のデバイスと通信路とを有する通信システムが提供される。通信路は、コントローラ及び複数のデバイスをリング状に接続する。通信路は、差動シリアル信号の通信フレームを伝送可能である。通信路で伝送される通信フレームは、複数のパケットで構成される。複数のパケット互いに均等な固定データ長を有する。デバイスは、所定の条件に応じて、受信した通信フレームに含まれるパケットに対するデータの挿抜が可能である。
【図面の簡単な説明】
【0006】
図1図1は、第1の実施形態にかかる通信システムの構成を示す図である。
図2図2は、第1の実施形態にかかる通信システムの構成及び動作を示す図である。
図3図3は、第1の実施形態における通信フレームの構成を示す図である。
図4図4は、第1の実施形態における通信システムの動作を示す図である。
図5図5は、第2の実施形態における通信システムの構成及び動作を示す図である。
図6図6は、第3の実施形態における通信システムの構成及び動作を示す図である。
図7図7は、第3の実施形態における通信フレームの構成を示す図である。
図8図8は、第4の実施形態における通信システムの構成及び動作を示す図である。
図9図9は、第4の実施形態における通信フレームの構成を示す図である。
図10図10は、第5の実施形態におけるヘッダの構成を示す図である。
図11図11は、第5の実施形態における各デバイス内の制御回路の構成を示す図である。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態にかかる通信システムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
第1の実施形態にかかる通信システムは、コントローラと複数のデバイスとを有し、コントローラと複数のデバイスとが通信路を介して接続される。通信システムは、コントローラと複数のデバイスとが通信路を介してパケットを転送する。例えばデバイスは、NAND型フラッシュメモリであり、通信システムは、SSD(Solid State Drive)である。
【0009】
コントローラ及び複数のデバイスが通信路で接続された通信システムでは、大容量化・高速化が求められ、超広帯域(例えば、200GB/s以上)・大容量が要求されることがある。通信システムがGPU(Graphic Processing Unit)で扱うデータのストレージに応用される場合、GPUの処理能力を生かすためには、通信システムがGPUに対して大容量のデータを高速で授受できることが要求される。また通信システムがAI(Artifitial Intelligence)プロセッサの機械学習に応用される場合、AIプロセッサの機械学習を効率的に行うためには、通信システムがAIプロセッサに対して大容量のデータを高速で授受できることが要求される。
【0010】
高速通信を行う際、ノイズ耐性に優れる差動信号を用いた通信が好ましい。差動信号を用いた通信によれば、受信時に差動信号間のノイズをキャンセル可能で、信号の受信処理を精度よく行うことできるため、通信の信頼性を容易に向上できる。
【0011】
コントローラ及び複数のデバイスがピア・ツー・ピアの通信路で接続された通信システムにおいて、超広帯域・大容量を実現するために、コントローラ及び複数のデバイス間の通信路を多数本の通信線で構成する第1の技術が考えられる。第1の技術では、コントローラに膨大な数の接続ピンを設けることになる。例えば、各デバイスが2Gbps/pinのピンを20ピン有しており、8ビットのデータを同時に差動で送受信可能である場合、通信路の帯域として200GB/sを実現するためには、100個のデバイスを接続することになる。コントローラには、20×100=2000ピンを設けることになる。これにより、通信システムのコストが顕著に増大する可能性がある。すなわち、第1の技術は、現実的ではない。
【0012】
それに対して、コントローラ及び複数のデバイスがリング状の通信路で接続された通信システムを構成し、通信路を介して差動シリアル信号をコントローラが複数のデバイス間に対して排他的に伝送する第2の技術が考えられる。第2の技術では、各デバイスに高速シリアルI/Fを搭載し、複数のデバイスがコントローラに対してリング接続されるので、高速な通信を小ピンで実現可能であるようにも考えられる。
【0013】
しかし、コントローラから複数のデバイスへの信号伝送が排他的であるため、コントローラから各デバイスへのデータ転送効率に限界があり、超広帯域・大容量の実現が困難である。
【0014】
そこで、本実施形態では、通信システムにおいて、リング状の通信路で伝送される通信フレームにそれぞれが固定データ長を有する複数のパケットを含ませ、各デバイスが所定の条件に応じて通信フレームに対してパケットを挿抜できるようにすることで、通信の超広帯域化・大容量化を図る。
【0015】
具体的には、通信システム1は、図1に示すように構成され得る。図1は、通信システム1の構成を示す図である。
【0016】
通信システム1は、システムボード2、コネクタ3、コントローラ4、複数のメモリカード5(5-1~5-n)、及び複数の通信路8(8-1~8-n)を有する。
【0017】
システムボード2は、例えば、超広帯域(例えば、200GB/s以上)・大容量に対応したアクセラレータ・ボードである。
【0018】
コネクタ3は、システムボード2の一部に配され、他の装置(コンピュータ等)が接続され得る。コントローラ4は、コネクタインタフェース回路4aを有し、コネクタインタフェース回路4a及びコネクタ3を介して他の装置と情報を授受する。
【0019】
メモリカード5-1~5-nは、基板7及び直列接続された複数のデバイス6(6-1~6-4)を有する。複数のデバイス6-1~6-4は、基板7上に実装されている。複数のデバイス6-1~6-4は、基板7の長手方向に沿って配列され得る。各デバイス6は、例えば、NAND型フラッシュメモリ等のメモリデバイスである。コントローラ4は、メモリインタフェース回路4bを有し、メモリインタフェース回路4b及び通信路8を介して複数のデバイス6-1~6-4に通信可能に接続されている。
【0020】
コントローラ4は、メモリインタフェース回路4b及び通信路8を介して各デバイス6と情報を授受する。メモリインタフェース回路4bは、差動シリアル信号の送受信が可能なように構成されている。
【0021】
複数の通信路8-1~8-nは、複数のメモリカード5-1~5-nに対応している。各通信路8は、メモリインタフェース回路4bと対応するメモリカード5に備えられた複数のデバイス6-1~6-4とをリング接続する。すなわち、コントローラ4とデバイス6-1の間、デバイス6-2~6-4間、デバイス6-4とコントローラ4との間、はそれぞれ通信路8で接続される。各通信路8は、差動シリアル信号を伝送可能である。
【0022】
各デバイス6-1~6-4は、差動シリアル信号の送受信が可能なように構成されている。各デバイス6-1~6-4は、通信路8を介して通信フレームを差動シリアル信号で送受信する。通信フレームは、複数のパケットを含む。複数のパケットは、それぞれ、固定データ長を有する。各デバイス6-1~6-4は、所定の条件に応じて、通信フレームに対するパケットの挿抜を実行する。このとき、通信フレームは、要求される帯域と各デバイスの帯域とに応じた個数のパケットを含み得る。
【0023】
なお、通信システム1は、システムボード2が省略された構成であってもよい。また、コネクタインタフェース回路4aは、コネクタ3を介さず外部装置に直接接続されてもよい。また、システムボード2と基板7とは一体で形成されてもよい。
【0024】
例えば、各デバイス6は、図2に示すように、受信部(Rx)61、送信部(Tx)62、プロトコル変換部(PCS)63、制御回路(cont)64、内部バス65、メモリ66を有する。図2は、通信システム1の構成及び動作を示す図であり、コントローラ4と1つのメモリカード5との接続構成を示している。制御回路64は、内部バス65を介してメモリ66にアクセス可能に接続されている。メモリ66は、NAND型フラッシュメモリ等の不揮発性メモリであってもよい。1つのメモリカード5に要求される通信帯域をBREとし、内部バス65の通信帯域をB65とすると、通信フレームに含めるべきパケットPKの個数Nは、次の数式1で求められ得る。
≧BRE/B65・・・数式1
【0025】
例えば、通信システム1に要求される通信帯域が200[Gbps]であり、コントローラ4に並列に接続されるメモリカード5の数n=4である場合、1つのメモリカードに要求される帯域はBRE=200/4=50[Gbps]となる。内部バス65の通信帯域がB65=14[Gbps]であれば、数式1を満たす最小の整数としてN=4[個]が求まる。この場合、通信フレームFRは、図3に示すように、4個のパケットPK(PK-1~PK-4)を含み得る。図3は、通信フレームFRの構成を示す図である。図3は、通信フレームFRが4個のパケットを含む構成を例示している。各パケットPK-1,PK-2,PK-3,PK-4は、固定データ長LPK-1,LPK-2,LPK-3,LPK-4を有する。各パケットPKの固定データ長LPKは次の数式2を満たす。
PK-1=LPK-2=LPK-3=LPK-4・・・数式2
【0026】
各パケットPKは、ヘッダH及びペイロードPを含む。複数のパケットPK-1~PK-4においてヘッダHのデータ長が異なるものがあってもよく、ペイロードPのデータ長が異なるものがあってもよいが、各パケットPKの固定データ長LPKは、数式2を満たす。
【0027】
図2に示すように、コントローラ4から通信路8を介して通信フレームFRが送信されると、各デバイス6-1~6-4は、所定の条件に応じて、通信フレームFRに対するパケットPKの挿抜を実行する。すなわち、数式1のように決められた個数Nに応じて、図3に示すように構成された通信フレームFRをコントローラ4が通信路8に送信する。各デバイス6-1~6-4が順次並行的に通信フレームFR内のパケットPKを挿抜することで、要求される通信帯域BREを実現することができる。
【0028】
各デバイス6は、通信路8を介して通信フレームFRを受信すると、通信フレームFRに含まれた複数のパケットPKのそれぞれのヘッダHを確認する。デバイス6は、パケットPKのヘッダHが送信先として自デバイスの識別情報を含むことに応じて、通信フレームFRに対するパケットPKを挿抜する。すなわち、デバイス6は、自デバイスの識別情報を含むヘッダHに対応したパケットPKに対して、所定の情報を挿抜することができる。あるいは、デバイス6は、パケットPKがヌルパケットであることに応じて、通信フレームFRへのパケットPKの挿入が可能である。ヌルパケットは、ペイロードPに有効データを含まず、ペイロードPが実質的に空(Null)であるパケットPKである。ヌルパケットは、ヘッダが送信先の情報を含まないか送信先が空(Null)であることが多い。デバイス6は、送信先の情報を含まないか送信先が空(Null)であるヘッダHに対応したペイロードPに対して、所定の情報を挿抜することができる。
【0029】
各デバイス6において、Rx61は物理層であり、コントローラ4又は前段のデバイス6から通信路8を介して通信フレームFRを受信する。Rx61は、受信した通信フレームFRに波形等化等の物理的な処理をしてPCS63へ供給する。PCS63は、物理層であるRx61から供給された通信フレームFRを、より上位層の通信フレームへプロトコル変換する。上位層は、通信層構造を大まかに2つに分けた場合における物理層より上位の層であり、例えば、コネクション層及びプロトコル変換層を含む。PCS63は、上位層に変換された通信フレームFRを制御回路64へ供給する。
【0030】
制御回路64は、通信フレームFRに含まれる複数のパケットPKのそれぞれのヘッダHを確認する。制御回路64は、パケットPKのヘッダHが送信先として自デバイスの識別情報を含む場合、そのパケットPKのペイロードPから情報を抜き出す。抜き出された情報がライトコマンド及びライドデータである場合、制御回路64は、ライトコマンドに応じて、内部バス65経由でメモリ66にアクセスしてメモリ66にライトデータを書き込む。
【0031】
制御回路64は、そのパケットPKに含めるべき情報がある場合、そのパケットPKのヘッダHにおける送信先を自デバイスの識別情報からコントローラ4の識別情報に変換し、送信元をコントローラ4の識別情報から自デバイスの識別情報に変換し、そのパケットPKのペイロードPに所定の情報を含めて、通信フレームFRを更新する。所定の情報が受信済みの通信フレームFRに含まれるリードコマンドに対するリードデータである場合、制御回路64は、内部バス65経由でメモリ66から受けたリードデータをそのパケットPKのペイロードPに含める。制御回路64は、そのパケットPKに含めるべき所定の情報がない場合、そのパケットPKのヘッダH及びペイロードPの情報を消去して空(Null)の状態にして、通信フレームFRを更新する。制御回路64は、更新後の通信フレームFRを上位層の通信フレームFRとしてPCS63へ供給する。
【0032】
PCS63は、上位層の通信フレームFRを受けると、上位層の通信フレームFRを物理層の通信フレームFRへプロトコル変換する。PCS63は、物理層の通信フレームFRをTx62へ供給する。Tx62は物理層であり、PCS63から供給された通信フレームFRに波形等化等の物理的な処理をして後段のデバイス6又はコントローラ4に向けて、通信路8へ送信する。
【0033】
例えば、図2に示すユースケースが考えられる。通信システム1において、コントローラ4、デバイス6-1、デバイス6-2、デバイス6-3、デバイス6-4の識別情報を、それぞれ、ID0,ID1,ID2,ID3,ID4とする。コントローラ4は、4個のパケットPK-1,PK-2,PK-3,PK-4のヘッダHに、それぞれ、送信先として識別情報ID1,ID2,ID3,ID4を指定して、対応するペイロードPに、その識別情報で指定されるデバイス6に送りたい情報を含めた通信フレームFRを作成する。コントローラ4は、作成された通信フレームFRを通信路8へ送信する。デバイス6に送りたい情報は、送るべき情報又は送る必要がある情報を含む。
【0034】
デバイス6-1は、コントローラ4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-1は、確認の結果、例えばパケットPK-1の送信先が自デバイス(ID1)であることを認識し、パケットPK-1から情報を抜き出す。また、デバイス6-1は、コントローラ4へ送りたい情報がある場合、パケットPK-1のヘッダHの送信先をコントローラ4(ID0)に送信元を自デバイス(ID1)に書き換え、ペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス6-1は、更新後の通信フレームFRを通信路8へ送信する。
【0035】
デバイス6-2は、デバイス6-1から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-2は、確認の結果、例えばパケットPK-2の送信先が自デバイス(ID2)であることを認識し、パケットPK-2から情報を抜き出す。また、デバイス6-2は、コントローラ4へ送りたい情報がある場合、パケットPK-2のヘッダHの送信先をID0に送信元を自デバイス(ID2)に書き換え、ペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス6-2は、更新後の通信フレームFRを通信路8へ送信する。
【0036】
デバイス6-3は、デバイス6-2から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-3は、確認の結果、例えばパケットPK-3の送信先が自デバイス(ID3)であることを認識し、パケットPK-3から情報を抜き出す。また、デバイス6-3は、コントローラ4へ送りたい情報がある場合、パケットPK-3のヘッダHの送信先をID0に送信元を自デバイス(ID3)に書き換え、ペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス6-3は、更新後の通信フレームFRを通信路8へ送信する。
【0037】
デバイス6-4は、デバイス6-3から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-4は、確認の結果、例えばパケットPK-4の送信先が自デバイス(ID4)であることを認識し、パケットPK-4から情報を抜き出す。また、デバイス6-4は、コントローラ4へ送りたい情報がある場合、パケットPK-4のヘッダHの送信先をID0に送信元を自デバイス(ID4)に書き換え、ペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス6-4は、更新後の通信フレームFRを通信路8へ送信する。
【0038】
コントローラ4は、デバイス6-4から通信路8を介して更新後の通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。コントローラ4は、確認の結果に応じて、例えば通信フレームFRに含まれた各パケットPK-1~PK-4に対して所定の受信処理を行い、各パケットPK-1~PK-4のペイロードPに含まれた情報を取り出して所定の処理を行う。コントローラ4は、受信した通信フレームFRを確認した結果、各パケットPK-1~PK-4の送信先が自身であることを確認して、所定の受信処理及び所定の処理を行えばよい。
【0039】
あるいは、図4(a)に示すユースケースが考えられる。図4は、通信システム1の他の動作を示す図である。通信システム1において、コントローラ4は、4個のパケットPK-1,PK-2,PK-3,PK-4のヘッダHが空(Null)でありペイロードPが空(Null)である通信フレームFRを作成する。すなわち、4個のパケットPK-1,PK-2,PK-3,PK-4はヌルパケットである。コントローラ4は、作成された通信フレームFRを通信路8へ送信する。
【0040】
デバイス6-1は、コントローラ4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-1は、確認の結果、送信先が自デバイス(ID1)であるパケットが存在しないことを認識する。また、デバイス6-1は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0041】
デバイス6-2は、デバイス6-1から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-2は、確認の結果、送信先が自デバイス(ID2)であるパケットが存在しないことを認識する。また、デバイス6-2は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0042】
デバイス6-3は、デバイス6-2から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-3は、確認の結果、送信先が自デバイス(ID3)であるパケットが存在しないことを認識する。また、デバイス6-3は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0043】
デバイス6-4は、デバイス6-3から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-4は、確認の結果、送信先が自デバイス(ID4)であるパケットが存在しないことを認識する。また、デバイス6-4は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0044】
コントローラ4は、デバイス6-4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。コントローラ4は、確認の結果に応じて、通信フレームFRに含まれた各パケットPK-1~PK-4に対して所定の受信処理を行う。例えばコントローラ4は、受信した通信フレームFRを確認した結果、各パケットPK-1~PK-4の送信先が自身であるパケットPKがないことを確認する。
【0045】
あるいは、図4(b)に示すユースケースが考えられる。コントローラ4は、4個のパケットPK-1,PK-2,PK-3,PK-4のヘッダHが空(Null)でありペイロードPが空(Null)である通信フレームFRを作成する。すなわち、このユースケースでも、4個のパケットPK-1,PK-2,PK-3,PK-4は、ヌルパケットである。コントローラ4は、作成された通信フレームFRを通信路8へ送信する。
【0046】
デバイス6-1は、コントローラ4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-1は、確認の結果、送信先が自デバイス(ID1)であるパケットが存在しないことを認識する。また、デバイス6-1は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0047】
デバイス6-2は、デバイス6-1から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-2は、確認の結果、送信先が自デバイス(ID2)であるパケットが存在しないことを認識する。また、デバイス6-2は、コントローラ4へ送りたい情報がある場合、通信フレームFRに含まれる任意のヌルパケットを選択して、その送りたい情報を挿入できる。デバイス6-2は、例えばパケットPK-1を選択し、パケットPK-1のヘッダHに送信先をコントローラ4(ID0)に送信元を自デバイス(ID2)に指定する情報を追加し、ペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス6-2は、更新後の通信フレームFRを通信路8へ送信する。
【0048】
デバイス6-3は、デバイス6-2から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-3は、確認の結果、送信先が自デバイス(ID3)であるパケットが存在しないことを認識する。また、デバイス6-3は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0049】
デバイス6-4は、デバイス6-3から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス6-4は、確認の結果、送信先が自デバイス(ID4)であるパケットが存在しないことを認識する。また、デバイス6-4は、コントローラ4へ送りたい情報がない場合、通信フレームFRを更新せずに通信路8へ送信する。
【0050】
コントローラ4は、デバイス6-4から通信路8を介して更新後の通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。コントローラ4は、確認の結果に応じて、通信フレームFRに含まれた複数のパケットPK-1~PK-4のうちパケットPK-1がヌルパケットでないことを認識する。これに応じて、コントローラ4は、パケットPK-1に対して所定の受信処理を行い、パケットPK-1のペイロードPに含まれた情報を取り出して所定の処理を行う。
【0051】
図2のユースケースと図4(b)のユースケースとを比較すると、通信フレームFRにおいて、デバイス6-2がコントローラ4へ送信したい情報を含ませるパケットPKの位置または番号が異なっている。すなわち、通信フレームFRに複数のヌルパケットが含まれる場合、各デバイス6は、複数のヌルパケットから任意のパケットを選択して、その送信したい情報を含ませることができる。
【0052】
以上のように、本実施形態では、通信システム1において、リング状の通信路8で伝送される通信フレームFRにそれぞれが固定データ長を有する複数のパケットPK-1~PK-4を含ませる。各デバイス6は、所定の条件に応じて通信フレームFRに対してパケットPKを挿抜する。これにより、リング接続を介したコントローラ4及び複数のデバイス6間の通信を容易に超広帯域化・大容量化できる。
【0053】
なお、第1の実施形態では、コントローラ4にリング接続されるデバイスの数が通信フレームFRに含まれるパケットの個数に一致する構成を例示しているが、コントローラ4にリング接続されるデバイスの数は、通信フレームFRに含まれるパケットの個数より少なくてもよい。
【0054】
(第2の実施形態)
次に、第2の実施形態にかかる通信システム101について説明する。以下では、第1の実施形態と異なる部分を中心に説明する。
【0055】
第1の実施形態では、通信フレームFRに複数のヌルパケットPKが含まれる場合、各デバイス106は、複数のヌルパケットから任意のパケットPKを選択して、送信したい情報があれば、選択したパケットPKにその送信したい情報を含ませることができる通信プロトコルを例示している。
【0056】
リング接続されるデバイスの数が通信フレームFRに含まれるパケットPKの個数以下であれば、送信したい情報があっても送信したい情報を含めることが可能なパケットPKが存在しないという状況は発生しないと考えられる。
【0057】
しかし、リング接続されるデバイスの数が通信フレームFRに含まれるパケットPKの個数より多い場合、コントローラ104にリング接続された各デバイスのうち通信路8の下流側のデバイスでは、送信したい情報があっても送信したい情報を含めることが可能なパケットが存在しない状況が発生し得る。
【0058】
ここで図5を用いて、第2の実施形態にかかる通信システム101を説明する。具体的には、図5に示す通信システム101では、各メモリカード105が例えば5個のデバイス106(106-1~106-5)を有する。図5は、第2の実施形態における通信システム101の構成及び動作を示す図である。コントローラ104には、通信路8を介して、5個のデバイス106-1~106-5がリング接続されている。通信フレームFRには、4個のパケットPK-1~PK-4が含まれている。リング接続されるデバイスの数(5個)は、通信フレームFRに含まれるパケットの個数(4個)より多くなっている。
【0059】
例えば、通信フレームFRが4個のヌルパケットを含み、5個のうち4個のデバイス106-1~6-4がそれぞれ送信したい情報を4個のヌルパケットに含ませた場合、リング接続の最下流のデバイス106-5は、ヌルパケットを含まない通信フレームFRを受信することになる。これにより、デバイス106-5は、送信したい情報があっても送信したい情報を通信フレームFRに含ませることができない。
【0060】
本実施形態では、これを回避するため、ヌルパケットPKのヘッダHに送信先を示す識別情報を付加することができるようにする。送信先の識別情報が付加されたヌルパケットは、その識別情報で指定されたデバイス106が選択的にパケットに送信したい情報を挿入できるようにする。
【0061】
例えば、図5に示すユースケースが考えられる。通信システム101において、コントローラ104、デバイス106-1、デバイス106-2、デバイス106-3、デバイス106-4、デバイス106-5の識別情報を、それぞれ、ID0,ID1,ID2,ID3,ID4,ID5とする。コントローラ104は、4個のパケットPK-1,PK-2,PK-3,PK-4のヘッダHが空(Null)でありペイロードPが空(Null)である通信フレームFRを作成する。このとき、コントローラ104は、デバイス106-5が優先度の高い情報を送信する可能性がある場合に、1つのパケットPK(例えば、パケットPK-3)のヘッダHに送信先として識別情報ID5を指定して、他のパケットPKのヘッダHに送信先を指定しない通信フレームFRを作成する。コントローラ104は、作成された通信フレームFRを通信路8へ送信する。
【0062】
デバイス106-1は、コントローラ104から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス106-1は、確認の結果、送信先が自デバイス(ID1)であるパケットが存在しないことを認識する。また、デバイス106-1は、コントローラ104へ送りたい情報がある場合、通信フレームFRにおいて送信先が指摘されたパケットPK-3以外の任意のヌルパケットを選択して、その送りたい情報を挿抜できる。デバイス106-1は、例えばパケットPK-1を選択し、パケットPK-1のヘッダHの送信先をコントローラ104(ID0)に送信元を自デバイス(ID1)に書き換えペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス106-1は、更新後の通信フレームFRを通信路8へ送信する。
【0063】
デバイス106-2は、デバイス106-1から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス106-2は、確認の結果、送信先が自デバイス(ID2)であるパケットが存在しないことを認識する。また、デバイス106-2は、コントローラ104へ送りたい情報がある場合、通信フレームFRにおいて送信先が指摘されたパケットPK-3以外の任意のヌルパケットを選択して、その送りたい情報を挿抜できる。デバイス106-2は、例えばパケットPK-2を選択し、パケットPK-2のヘッダHの送信先をID0に送信元を自デバイス(ID2)に書き換えペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス106-2は、更新後の通信フレームFRを通信路8へ送信する。
【0064】
デバイス106-3は、デバイス106-2から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス106-3は、確認の結果、送信先が自デバイス(ID3)であるパケットが存在しないことを認識する。また、デバイス106-3は、コントローラ104へ送りたい情報がある場合、通信フレームFRにおいて送信先が指摘されたパケットPK-3以外の任意のヌルパケットを選択して、その送りたい情報を挿抜できる。デバイス106-3は、例えばパケットPK-4を選択し、パケットPK-4のヘッダHの送信先をID0に送信元を自デバイス(ID3)に書き換えペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス106-3は、更新後の通信フレームFRを通信路8へ送信する。
【0065】
デバイス106-4は、デバイス106-3から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス106-4は、確認の結果、送信先が自デバイス(ID4)であるパケットが存在しないことを認識する。また、デバイス106-4は、通信フレームFRにおいて送信先が指摘されたパケットPK-3以外のヌルパケットが存在しないことを認識する。これに応じて、デバイス106-4は、送信したい情報があったとしても、通信フレームFRを更新せずに通信路8へ送信する。
【0066】
デバイス106-5は、デバイス106-4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス106-5は、確認の結果、パケットPK-3の送信先が自デバイス(ID5)であることを認識する。また、デバイス106-5は、コントローラ104へ送りたい情報がある場合、パケットPK-3のヘッダHの送信先をID0に送信元を自デバイス(ID5)に書き換えペイロードPにその送りたい情報を含めて、通信フレームFRを更新する。デバイス106-5は、更新後の通信フレームFRを通信路8へ送信する。
【0067】
コントローラ104は、デバイス106-5から通信路8を介して更新後の通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。コントローラ104は、確認の結果に応じて、通信フレームFRに含まれた各パケットPK-1~PK-4に対して所定の受信処理を行い、各パケットPK-1~PK-4のペイロードPに含まれた情報を取り出して所定の処理を行う。
【0068】
以上のように、第2の実施形態では、各デバイス106は、受信した通信フレームFRにおいて、ヌルパケットであり、そのヌルパケットのヘッダHが送信先として自デバイスの識別情報を含むパケットPKがあることに応じて、そのパケットに送信したいデータを挿入することが可能である。また各デバイス106は、受信した通信フレームFRにおいて他のデバイス106が送信先になっているヌルパケットがあれば、そのパケットに送信したいデータを挿入することが可能である。これにより、そのデバイス106の送信すべき情報の優先度が高い場合に、その情報に対して、帯域を保証することができる。
【0069】
(第3の実施形態)
次に、第3の実施形態にかかる通信システム201について説明する。以下では、第1の実施形態及び第2の実施形態と異なる部分を中心に説明する。
【0070】
第1の実施形態では、各デバイス6が送信したい情報がある場合に固定データ長のパケットPKのペイロードPにその送信したい情報を含ませて送信するような通信プロトコルを例示している。
【0071】
送信したい情報のデータ長がペイロードPのデータ長に対応した長さである場合に、データの転送が効率的に行われ得る。
【0072】
しかし、送信したい情報が、受信成功を示す確認応答(ACK)又は制御用の符号のようなデータ長の短い情報である場合、パケットPKのデータ長が固定であるため、帯域が無駄に消費されることなどにより、データの転送効率が低下し得る。
【0073】
そこで、本実施形態では、データ長が短い情報は、1つのパケットに複数入れられるようにする。また、ヌルパケット又は短い情報が入れられたパケットに空き容量情報を付加することで、各デバイスが短い情報を追加可能か判断できるようにする。
【0074】
具体的には、図7(a)に示すように、図6に示す通信システム201において、コントローラ204及び/又はメモリカード205の各デバイス206(206-1~206-5)は、ヘッダHにパケット識別子等に加えて空き容量情報を追加する。空き容量情報は、空(Null)であるペイロードPのデータ長LP1を示している。このとき、このパケットPK(ヌルパケット)のデータ長LPKは、固定である。各デバイス206は、ヌルパケットを含む通信フレームFRを生成又は更新する場合に、そのヌルパケットのヘッダHに空き容量情報を追加する。
【0075】
各デバイス206は、通信フレームFR内にヌルパケットを認識すると、図7(a)に示すようなヘッダHの空き容量情報を参照する。各デバイス206は、空き容量情報に応じて、短い情報Aが追加可能である場合、情報Aと共に新たなヘッダHを追加する。具体的には、図7(b)に示すように、各デバイス206は、参照したヘッダHから空き容量情報を消去し、送信先の識別情報と送信元の識別情報とを1番目のヘッダH1として追加して更新し、そのペイロードPに短い情報Aを追加する。そして、2番目のヘッダH2を追加した場合の残りのペイロードPのデータ長LP2を求め、データ長LP2を示す空き容量情報を生成し、2番目のヘッダH2として追加する。このとき、残りのペイロードPは、空(Null)である。
【0076】
各デバイス206は、通信フレームFR内にヌルパケットだったが短い情報Aが追加されたパケット(準ヌルパケット)を認識すると、図7(b)に示すような2番目のヘッダH2の空き容量情報を参照する。各デバイス206は、参照した空き容量情報に応じて、短い情報Bが追加可能である場合、情報Bと共に新たなヘッダHを追加する。具体的には、図7(c)に示すように、各デバイス206は、参照した2番目のヘッダH2から空き容量情報を消去し、送信先の識別情報と送信元の識別情報とを2番目のヘッダH2に追加して更新し、そのペイロードPに短い情報Bを追加する。そして、3番目のヘッダH3を追加した場合の残りのペイロードPのデータ長LP3を求め、データ長LP3を示す空き容量情報を生成し、3番目のヘッダH3として追加する。このとき、残りのペイロードPは、空(Null)である。すなわち、図7(a)~図7(c)に示されるように、各デバイス206は、ヌルパケット内に、それぞれがヘッダ及びペイロードを含む複数のセットを挿入させることが可能である。図7(c)の場合、ヘッダH1と情報Aが格納されたペイロードPとが1つのセットに含まれる。ヘッダH2と情報Bが格納されたペイロードPとが1つのセットに含まれる。
【0077】
例えば、図6に示すユースケースが考えられる。通信システム201において、コントローラ204、デバイス206-1、デバイス206-2、デバイス206-3、デバイス206-4、デバイス206-5の識別情報を、それぞれ、ID0,ID1,ID2,ID3,ID4,ID5とする。コントローラ204は、4個のパケットPK-1,PK-2,PK-3,PK-4のヘッダHに、それぞれ、送信先として識別情報ID1,ID2,ID3,ID4を指定して、対応するペイロードPに、その識別情報で指定されるデバイス206に送りたい情報を含めて、通信フレームFRを作成する。コントローラ204は、作成された通信フレームFRを通信路8へ送信する。
【0078】
デバイス206-1は、コントローラ204から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス206-1は、確認の結果、例えばパケットPK-1の送信先が自デバイス(ID1)であることを認識し、パケットPK-1から情報を抜き出す。デバイス206-1は、パケットPK-1をヌルパケットとして扱い、そのヌルパケットのヘッダHにパケット識別子等に加えて空き容量情報を追加する。コントローラ204へ送りたい情報が短い情報Aがある場合、デバイス206-1は、受信したパケットPKのヘッダHから空き容量情報を消去し、送信先の識別情報としてコントローラ204(ID0)と送信元の識別情報(ID1)とを1番目のヘッダH1に追加して更新し、そのペイロードPに短い情報Aを追加する。そして、デバイス206-1は、2番目のヘッダH2を更に追加した場合のペイロードPのデータ長LP2を求め、データ長LP2を示す空き容量情報を生成して2番目のヘッダH2に追加して、通信フレームFRを更新する。デバイス206-1は、更新後の通信フレームFRを通信路8へ送信する。
【0079】
デバイス206-2は、デバイス206-1から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス206-2は、確認の結果、例えばパケットPK-2の送信先が自デバイス(ID2)であることを認識し、パケットPK-2から情報を抜き出す。デバイス206-2は、パケットPK-2をヌルパケットとして扱い、そのヌルパケット(パケットPK-2)のヘッダHにパケット識別子等に加えて空き容量情報を追加する。コントローラ204へ送りたい情報が短い情報Bがある場合、デバイス206-2は、通信フレームFR内に準ヌルパケットPK-1を認識し、2番目のヘッダH2の空き容量情報を参照する。デバイス206-2は、空き容量情報に応じて、短い情報Bが追加可能であるかを判断する。可能である場合、デバイス206-2は、2番目のヘッダH2から空き容量情報を消去し、送信先の識別情報(ID0)と送信元の識別情報(ID2)とを2番目のヘッダH2に追加して更新し、そのペイロードPに短い情報Bを追加する。そして、デバイス206-2は、3番目のヘッダH3を更に追加した場合のペイロードPのデータ長LP3を求め、データ長LP3を示す空き容量情報を生成して3番目のヘッダH3に追加して、通信フレームFRを更新する。デバイス206-2は、更新後の通信フレームFRを通信路8へ送信する。
【0080】
デバイス206-3は、デバイス206-2から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス206-3は、確認の結果、例えばパケットPK-3の送信先が自デバイス(ID3)であることを認識し、パケットPK-3から情報を抜き出す。デバイス206-3は、パケットPK-3をヌルパケットとして扱い、そのヌルパケットのヘッダHにパケット識別子等に加えて空き容量情報を追加する。コントローラ204へ送りたい情報が短い情報Cがある場合、デバイス206-3は、通信フレームFR内に準ヌルパケットPK-1を認識し、3番目のヘッダH3の空き容量情報を参照する。デバイス206-2は、空き容量情報に応じて、短い情報Cが追加不可能であると判断する。そのため、デバイス206-3は、通信フレームFR内にヌルパケットPK-2を認識し、ヘッダHの空き容量情報を参照する。デバイス206-3は、空き容量情報に応じて、短い情報Cが追加可能であるかを判断する。可能である場合、デバイス206-3は、受信したパケットPK(ヌルパケットPK-2)のヘッダHから空き容量情報を消去し、送信先の識別情報として(ID0)と送信元の識別情報(ID3)とを1番目のヘッダH1に追加して更新し、そのペイロードPに短い情報Cを追加する。そして、2番目のヘッダH2を更に追加した場合のペイロードPのデータ長LP2を求め、データ長LP2を示す空き容量情報を生成して2番目のヘッダH2に追加して、通信フレームFRを更新する。デバイス206-3は、更新後の通信フレームFRを通信路8へ送信する。
【0081】
デバイス206-4は、デバイス206-3から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス206-4は、確認の結果、例えばパケットPK-4の送信先が自デバイス(ID4)であることを認識し、パケットPK-4から情報を抜き出す。デバイス206-4は、パケットPK-4をヌルパケットとして扱い、そのヌルパケットのヘッダHにパケット識別子等に加えて空き容量情報を追加する。コントローラ204へ送りたい情報が短い情報Dがある場合、デバイス206-4は、通信フレームFR内に準ヌルパケットPK-2を認識し、2番目のヘッダH2の空き容量情報を参照する。デバイス206-4は、空き容量情報に応じて、短い情報Dが追加可能であるかを判断する。可能である場合、デバイス206-4は、2番目のヘッダH2から空き容量情報を消去し、送信先の識別情報(ID0)と送信元の識別情報(ID4)とを2番目のヘッダH2に追加して更新し、そのペイロードPに短い情報Dを追加する。そして、デバイス206-4は、3番目のヘッダH3を追加した場合のペイロードPのデータ長LP3を求め、データ長LP3を示す空き容量情報を生成して3番目のヘッダH3に追加して、通信フレームFRを更新する。デバイス206-4は、更新後の通信フレームFRを通信路8へ送信する。
【0082】
デバイス206-5は、デバイス206-4から通信路8を介して通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKのヘッダHを確認する。デバイス206-5は、確認の結果、例えば送信先が自デバイス(ID5)であるパケットが存在しないことを認識する。また、デバイス206-5は、コントローラ204へ送りたい情報Eがある場合、通信フレームFRに含まれる任意のヌルパケットを選択して、その送りたい情報Eを挿入できる。デバイス206-5は、例えばパケットPK-3を選択し、パケットPK-3のヘッダHから空き容量情報を消去するとともにヘッダHに送信先を(ID0)に送信元を自デバイス(ID5)に指定する情報を追加しペイロードPにその送りたい情報Eを含めて、通信フレームFRを更新する。デバイス206-5は、更新後の通信フレームFRを通信路8へ送信する。
【0083】
コントローラ204は、デバイス206-5から通信路8を介して更新後の通信フレームFRを受信すると、受信した通信フレームFRに含まれる各パケットPKの各ヘッダHを確認する。コントローラ204は、確認の結果に応じて、通信フレームFRにおけるヌルパケットPK-4を除く各パケットPK-1~PK-3に対して所定の受信処理を行い、各パケットPK-1~PK-3のペイロードPに含まれた情報を取り出して所定の処理を行う。
【0084】
なお、図6に示すユースケースにおいて、デバイス206-3が準ヌルパケットPK-1に短い情報Cを追加できない場合を例示しているが、デバイス206-3は、準ヌルパケットPK-1に短い情報Cを追加可能であれば追加してもよい。すなわち、デバイス206-3は、準ヌルパケットPK-1内の空き容量情報に応じて短い情報Cが追加可能であると判断した場合には、3番目のヘッダH2から空き容量情報を消去し、送信先の識別情報(ID0)と送信元の識別情報(ID2)とを3番目のヘッダH3に追加して更新し、そのペイロードPに短い情報Cを追加してもよい。同様に、デバイス206-4は、準ヌルパケットPK-1内の空き容量情報に応じて短い情報Dが追加可能であると判断した場合には、3番目のヘッダH3から空き容量情報を消去し、送信先の識別情報(ID0)と送信元の識別情報(ID2)とを4番目のヘッダH4に追加して更新し、そのペイロードPに短い情報Dを追加してもよい。
【0085】
以上のように、第3の実施形態では、データ長が短い情報は、1つのパケットに複数入れられるようにする。また、ヌルパケット又は短い情報が入れられたパケットには、空き容量情報を付加することで、各デバイスが短い情報を追加可能か判断できるようにする。これにより、帯域の無駄な消費を抑制でき、データの転送効率を向上できる。
【0086】
(第4の実施形態)
次に、第4の実施形態にかかる通信システム201について説明する。以下では、第1の実施形態~第3の実施形態と異なる部分を中心に説明する。
【0087】
第3の実施形態では、データ長が短い情報を1つのパケットに複数入れられるようにすることでデータ転送効率の向上を図っていたが、第4の実施形態では、データ長が長いパケットと短いパケットとを用意してデータ長が短い情報を短いパケットに含ませることでデータ転送効率の向上を図る。
【0088】
具体的には、図8に示す通信システム301において、コントローラ304及び/又はメモリカード305の各デバイス306(306-1~306-4)は、図9に示すような長いパケット及び短いパケットを含む通信フレームFRを生成又は更新する。図8は、第4の実施形態における通信システム301の構成及び動作を示す図である。図9は、第4の実施形態における通信フレームFRの構成を示す図である。図9は、通信フレームFRが4個の長いパケットPK-1~PK-4と4個の短いパケットPK-1~PK-4とを含む構成を例示している。図9では、通信フレームFR内で長いパケットPKと短いパケットPKとが交互に配置される構成が例示されている。しかし、長いパケットPKと短いパケットPKとは通信フレームFR内で、交互ではなくそれぞれ連続して配置されてもよい。
【0089】
各長いパケットPK-1~PK-4は、固定データ長LPKL-1,LPKL-2,LPKL-3,LPKL-4を有する。各長いパケットPKの固定データ長LPKLは次の数式3を満たす。
PKL-1=LPKL-2=LPKL-3=LPKL-4・・・数式3
【0090】
各短いパケットPK-1~PK-4は、固定データ長LPKS-1,LPKS-2,LPKS-3,LPKS-4を有する。各短いパケットPKの固定データ長LPKSは次の数式4を満たす。
PKS-1=LPKS-2=LPKS-3=LPKS-4・・・数式4
【0091】
このとき、各長いパケットPKの固定データ長LPKLは、各短いパケットPKの固定データ長LPKSと、次の数式5に示す関係を満たしてもよい。
PKL-1=LPKL-2=LPKL-3=LPKL-4>LPKS-1=LPKS-2=LPKS-3=LPKS-4・・・数式5
【0092】
すなわち、数式3~数式5に示されるように、通信フレームFRに含まれる各パケットの固定データ長に非対称性を持たせて混在させる。これにより、空き容量を求める処理や短い情報を追加可能か判断する処理を不要とすることができ、簡易且つ効率的な処理で通信フレームFRに短い情報を含ませることができる。
【0093】
例えば、図8に示すユースケースが考えられる。通信システム301において、コントローラ304、デバイス306-1、デバイス306-2、デバイス306-3、デバイス306-4の識別情報を、それぞれ、ID0,ID1,ID2,ID3,ID4とする。コントローラ304は、長いパケットPKと短いパケットPKとが交互に4回配置された通信フレームFRを作成する。このとき、コントローラ304は、4個の長いパケットPK-1,PK-2,PK-3,PK-4のヘッダHに、それぞれ、送信先として識別情報ID1,ID2,ID3,ID4を指定して、対応するペイロードPに、その識別情報で指定されるデバイス206に送りたい情報を含める。コントローラ304は、4個の短いパケットPK-1,PK-2,PK-3,PK-4のヘッダH及びペイロードPを空(Null)にする。コントローラ304は、作成された通信フレームFRを通信路8へ送信する。
【0094】
デバイス306-1は、コントローラ304から通信路8を介して通信フレームFRを受信すると、長いパケットPK-1の送信先が自デバイス(ID1)であることを認識し、長いパケットPK-1から情報を抜き出す。コントローラ304へ送りたい情報が短い情報A及び長い情報L1である場合、デバイス306-1は、短いパケットPK-1のヘッダHに送信先の識別情報としてコントローラ304(ID0)を送信元の識別情報としてID1を指定する情報を追加し、そのペイロードPに短い情報Aを追加する。また、デバイス306-1は、長いパケットPK-1のヘッダHの送信先の識別情報をID1からID0に送信元の識別情報をID0からID1に書き換え、そのペイロードPに長い情報L1を追加する。これにより、デバイス306-1は、通信フレームFRを更新する。デバイス306-1は、更新後の通信フレームFRを通信路8へ送信する。
【0095】
デバイス306-2は、デバイス306-1から通信路8を介して通信フレームFRを受信すると、長いパケットPK-2の送信先が自デバイス(ID2)であることを認識し、長いパケットPK-2から情報を抜き出す。コントローラ304へ送りたい情報が短い情報B及び長い情報L2である場合、デバイス306-2は、短いパケットPK-2のヘッダHに送信先の識別情報としてID0を送信元の識別情報としてID2を指定する情報を追加し、そのペイロードPに短い情報Bを追加する。また、デバイス306-2は、長いパケットPK-2のヘッダHの送信先の識別情報をID2からID0に送信元の識別情報をID0からID2に書き換え、そのペイロードPに長い情報L2を追加する。これにより、デバイス306-2は、通信フレームFRを更新する。デバイス306-2は、更新後の通信フレームFRを通信路8へ送信する。
【0096】
デバイス306-3は、デバイス306-2から通信路8を介して通信フレームFRを受信すると、長いパケットPK-3の送信先が自デバイス(ID3)であることを認識し、長いパケットPK-3から情報を抜き出す。コントローラ304へ送りたい情報が短い情報C及び長い情報L3である場合、デバイス306-3は、短いパケットPK-3のヘッダHに送信先の識別情報としてID0を送信元の識別情報としてID3を指定する情報を追加し、そのペイロードPに短い情報Cを追加する。また、デバイス306-3は、長いパケットPK-3のヘッダHの送信先の識別情報をID3からID0に送信元の識別情報をID0からID3に書き換え、そのペイロードPに長い情報L3を追加する。これにより、デバイス306-3は、通信フレームFRを更新する。デバイス306-3は、更新後の通信フレームFRを通信路8へ送信する。
【0097】
デバイス306-4は、デバイス306-3から通信路8を介して通信フレームFRを受信すると、長いパケットPK-4の送信先が自デバイス(ID4)であることを認識し、長いパケットPK-4から情報を抜き出す。コントローラ304へ送りたい情報が短い情報D及び長い情報L4である場合、デバイス306-4は、短いパケットPK-4のヘッダHに送信先の識別情報としてID0を送信元の識別情報としてID4を指定する情報を追加し、そのペイロードPに短い情報Dを追加する。また、デバイス306-4は、長いパケットPK-4のヘッダHの送信先の識別情報をID4からID0に送信元の識別情報をID0からID4に書き換え、そのペイロードPに長い情報L4を追加する。これにより、デバイス306-4は、通信フレームFRを更新する。デバイス306-4は、更新後の通信フレームFRを通信路8へ送信する。
【0098】
コントローラ304は、デバイス306-4から通信路8を介して更新後の通信フレームFRを受信すると、通信フレームFRにおける各短いパケットPK-1~PK-4に対して所定の受信処理を行い、各短いパケットPK-1~PK-4のペイロードPに含まれた情報A~Dを取り出して所定の処理を行う。それとともに、コントローラ304は、各長いパケットPK-1~PK-4に対して所定の受信処理を行い、各長いパケットPK-1~PK-4のペイロードPに含まれた情報L1~L4を取り出して所定の処理を行う。
【0099】
以上のように、第4の実施形態では、データ長が長いパケットと短いパケットとを用意してデータ長が短い情報を短いパケットに含ませる。これによっても、帯域の無駄な消費を抑制でき、データの転送効率を向上できる。
【0100】
(第5の実施形態)
次に、第5の実施形態にかかる通信システム401について説明する。以下では、第1の実施形態~第4の実施形態と異なる部分を中心に説明する。
【0101】
第1の実施形態~第4の実施形態では、通信路8が複数のデバイス6をリング接続しているため、通信フレームFRが通信路8で伝送される過程でビットエラーが蓄積されやすい。例えば、図2の構成において、コントローラ4及びデバイス6-1間のビットエラーレートが10-12×1になり、デバイス6-1及びデバイス6-2間のビットエラーレートが10-12×2になり、デバイス6-2及びデバイス6-3間のビットエラーレートが10-12×3になり、デバイス6-3及びデバイス6-4間のビットエラーレートが10-12×4になり、デバイス6-4及びコントローラ4間のビットエラーレートが10-12×5になる。
【0102】
このビットエラーの蓄積により通信フレームFRの各パケットのヘッダHが壊れた場合、通信フレームFRを受信したコントローラ4は、そのパケットの送信先が分からずに再送制御もできない。そのため、コントローラ4及び複数のデバイス6間で送受信すべき情報の消失が発生する可能性がある。
【0103】
そこで、第5の実施形態では、通信フレームFRに含まれる各パケットのヘッダに誤り訂正符号を付加し、各デバイスの受信処理時にヘッダの誤り訂正を行えるようにして、各パケットのヘッダの保護を図る。
【0104】
コントローラ4及び/又は各デバイス6は、通信フレームFR内のパケットPKを生成又は更新する際に、図10に示すようなヘッダHを生成する。図10は、第5の実施形態におけるヘッダHの構成を示す図である。
【0105】
例えば、通信フレームFR内のパケットPKが生成される際に、ペイロードPはスランブルがかけられる。一方、ヘッダHにスクランブルがかけられた状態でヘッダHが1ビット壊れるとヘッダHをデスクランブルすることで壊れるビット数が複数ビットに増加してしまうため、ヘッダHは、スランブルがかけられない。
【0106】
コントローラ4及び/又は各デバイス6は、ヘッダHにおける送信先情報及び送信元情報を含む情報INF1に対して誤り訂正の符号化処理を行い、誤り訂正(ECC)符号CD1を生成し、情報INF1に誤り訂正符号CD1を付加して符号語CW1を生成してヘッダHに含ませる。符号語CW1を正転の符号語CW1と呼ぶことにする。また、コントローラ4及び/又は各デバイス6は、DCバランスをとるため、符号語CW1をビット反転させて符号語CW2を生成し、追加的にヘッダHに含ませる。符号語CW2には、情報INF1がビット反転された情報INF2と、誤り訂正符号CD1がビット反転された誤り訂正符号CD2とが含まれている。符号語CW2を反転の符号語CW2と呼ぶことにする。
【0107】
各デバイス6は、通信フレームFRの受信処理の際に、正転の符号語CW1と反転の符号語CW2との両方に対して誤り訂正の復号化処理を行い、どちらか一方でも成功しエラービットを訂正できれば、情報INF1を適正に受信できる。また、各デバイス6は、誤り訂正に成功した場合、通信フレームFRの送信処理の際に、訂正後の情報INF1に対して誤り訂正の符号化処理を行い、誤り訂正(ECC)符号CD1を生成し、情報INF1に誤り訂正符号CD1を付加して符号語CW1を生成してヘッダHに正転の符号語CW1として含ませる。また、コントローラ4及び/又は各デバイス6は、DCバランスをとるため、符号語CW1をビット反転させて符号語CW2を生成し、追加的にヘッダHに反転の符号語CW2として含ませる。
【0108】
これらの処理は、例えば図11に示す構成で実現可能である。図11は、第5の実施形態における各デバイス内の制御回路64の構成を示す図である。
【0109】
各デバイス6において、Rx61は、通信路8を介して通信フレームに相当する信号を受信すると、受信された信号を「PMA Rx」回路611で物理層の通信フレームに変換してPCS63へ供給する。PCS63は、物理層の通信フレームを「PCS Rx」回路631で上位層の通信フレームへプロトコル変換して制御回路64の「data descramble」回路641及び「Header ECC+解析」回路644へそれぞれ供給する。
【0110】
「data descramble」回路641は、各パケットPKのペイロードPをデスクランブルし、デスクランブル結果を「データ分配」回路642へ供給する。「Header ECC+解析」回路644は、各パケットPKのヘッダHに含まれた正転の符号語CW1と反転の符号語CW2との両方に対して誤り訂正の復号化処理を行う。「Header ECC+解析」回路644は、誤り訂正に成功すれば、自デバイスのIDを含むパケットを「データ分配」回路642へ供給し、他デバイスのIDを含むパケットを「Header ECC」回路645へ供給する。他デバイスのIDを含むパケットは、「Header ECC」回路645で誤り訂正の符号化処理が行われ、正転の符号語CW1と反転の符号語CW2とを含むヘッダHが生成され、生成後のヘッダHがセレクタ649へ供給される。
【0111】
「データ分配」回路642は、パケットPKの送信先が自デバイスであれば、ペイロードPから抜き出したデータをバッファ643に格納し、他デバイス用に空のペイロードPのデータをセレクタ648へ供給する。セレクタ648は、バッファ647に送信したい情報が格納されていればその情報をペイロードPとして「data scramble」回路646へ供給し、バッファ647が空であれば、「データ分配」回路642から供給された空のペイロードPを「data scramble」回路646へ供給する。「data scramble」回路646は、ペイロードPにスクランブルをかけ、スクランブル結果をセレクタ649へ供給する。セレクタ649は、「Header ECC」回路645からのヘッダHと「data scramble」回路646からのペイロードPとを順次に選択してPCS63の「PSC Tx」回路632へ供給する。
【0112】
「PSC Tx」回路632は、ヘッダH及びペイロードPを含むパケットPKを複数含む通信フレームについて、上位層の通信フレームから物理層の通信フレームへプロトコル変換してTx62へ供給する。Tx62は、供給された物理層の通信フレームを「PMA Tx」回路62で送信用の信号に変換して通信路8へ送信する。
【0113】
以上のように、第5の実施形態では、通信フレームFRに含まれる各パケットのヘッダに誤り訂正符号を付加し、各デバイスの受信処理時にヘッダの誤り訂正を行えるようにする。これにより、各パケットのヘッダを保護でき、コントローラ4及び複数のデバイス6間で送受信すべき情報の消失を防止できる。
【0114】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0115】
1,101,201,301 通信システム、4,104,204,304 コントローラ、6,6-1~6-4,106,106-1~106-5,206,206-1~206-5,306,306-1~306-4 デバイス、8 通信路。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11