説明

データ転送装置およびデータ転送方法

【課題】書き込み側と読み出し側とがお互いのアクセスに制約を受けず、自由にリードライトすることができ、データの有効性を向上させることができるデータ転送装置を提供する。
【解決手段】少なくとも2面からなるメモリ11と、書き込み先のメモリ11を所定の順番で切り替えて、かつ所定の周期でデータを送信しメモリ11に書き込ませるデータ送信部10と、書き込みの周期に依存しない周期で少なくとも2面のメモリより同時にデータを受信するデータ受信部12と、データ送信部12がメモリに送信するデータに対して各データに固有な判定情報を付加する判定情報付加部13と、データ受信部12がメモリ11より受信するデータに付加された判定情報を用いてデータが有効であるか否かを判定し、判定結果をデータ受信部に通知する判定情報検査部15とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリへのデータの書き込みおよび読み出しが相互に依存することなく行い得るデータ伝送装置およびその方法に関する。
【背景技術】
【0002】
例えば、随時更新されるデータを外部ネットワークから取り込み、演算処理部でそのデータを処理する装置が知られている。この装置は、受信したデータをメモリやストレージに一時蓄積し、演算処理部がメモリからデータを読み出して演算処理する。
【0003】
この場合、メモリへの書き込み側と読み出し側との動作は、お互いの動作に依存せず自由に行いたいという要求がある。また、データの書き込み速度と読み出し速度が異なる、または周期が異なる場合はデータの入出力の為のポートを2つ設けたメモリ(RAM)であるデュアルポートメモリが用いられることがある。
【0004】
その一方で、高速で読み出し(リード)/書き込み(ライト)可能なSRAM(Static Random Access Memory)やSDRAM(Synchronous DRAM)などのメモリが主流となっている。このため、デュアルポートメモリは衰退しており、長期安定供給性に対する課題がある。また、デュアルポートメモリの両方のポートで同じアドレスのデータを同時に読み出し/書き込みされた場合、処理が競合しデータが不定となる場合がある。
【0005】
SRAMやSDRAMを用いて、書き込み側と読み出し側との制御でデータラインを切替えて入出力する排他的アクセス制御を行う手法がある。書き込み側と読み出し側とから同時にアクセスが行われた場合、この手法ではいずれか一方はアクセスを待機しなければならない。
【0006】
SRAM/SDRAMとデュアルポートメモリ両方の課題として、メモリに対する1回のアクセスサイクルでは、データのビット幅(8bit、16bitなど)より長いデータ長で有効な意味を持つデータ(「データ列」と言う。)の転送をする場合、あるデータ列のリードアクセス中に同じアドレス領域のデータ列へのライトアクセスによりデータが更新されると、読み出されたデータ列に古いデータ(前回書き込まれたデータ)と新しいデータ(今回書きこまれたデータ)とが混在してしまう。
【0007】
そこで、従来、読み出されたデータフレームに今回書き換えられたデータと前回書き換えられたままのデータとが混在するか否かを判断するための技術が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2003−32317号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
データの混在を回避するため、メモリのアドレス領域を分割、または物理的に異なるメモリとすることでメモリの領域を2分割することが考えられる。これにより、片側のメモリ領域にライトアクセスしている場合は、もう一方のメモリ領域にリードアクセスすることができる。
【0010】
例えば、データ列単位の書き込みが完了した後に読み出し側に面の切替えを許可し、有意なデータ列の更新中にはそのデータ列を読み出しさせないようにすることでデータの混在を回避する手法がとられる。
【0011】
しかし、この場合、データ列の書き込みが完了しないと読み出し側でメモリを切替えることができない。このため、ライトアクセスとリードアクセスはお互いの状況を確認しあわなければならないという制約がある。
【0012】
本発明は上述した課題を解決するためになされたものであり、書き込み側と読み出し側とがお互いのアクセスに制約を受けず、自由にリードライトすることができ、データの有効性を向上させることができるデータ転送装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係るデータ転送装置は、上述した課題を解決するために、少なくとも2面からなる複数のメモリと、書き込み先の前記メモリを所定の順番で切り替えて、かつ所定の周期でデータを送信し前記メモリに書き込ませるデータ送信部と、前記書き込みの周期に依存しない周期で、前記複数のメモリのうち少なくとも2面の前記メモリより同時に前記データを受信するデータ受信部と、前記データ送信部が前記メモリに送信する前記データに対して各データに固有な判定情報を付加する判定情報付加部と、前記データ受信部が前記メモリより受信する前記データに付加された前記判定情報を用いて前記データが有効であるか否かを判定し、判定結果を前記データ受信部に通知する判定情報検査部とを備えたことを特徴とする。
【発明の効果】
【0014】
本発明に係るデータ転送装置およびその方法においては、書き込み側と読み出し側とがお互いのアクセスに制約を受けず、自由にリードライトすることができる。また、データの有効性を向上させることができる。
【図面の簡単な説明】
【0015】
【図1】本発明に係るデータ転送装置の第1実施形態を示すブロック図。
【図2】デュアルポートメモリの構成例を示す説明図。
【図3】SRAMまたはSDRAMを用いてデュアルポートメモリ相当の機能を実現したものの構成例を示す説明図。
【図4】データ転送装置の第1のメモリ、判定情報生成付加部、および判定情報抽出検査部を特に示す説明図。
【図5】第1のメモリのメモリ構造の一例を示す図。
【図6】データ列1〜3の第1のメモリへのデータ列配置例を示す図。
【図7】シーケンス番号および反転シーケンス番号がヘッダーおよびフッターに付加されたデータ列(データ列2)の第1のメモリへのデータ列配置例を示す図。
【図8】データ列2の同期性が保たれない場合の例を時間軸に沿って示した図。
【図9】第1のメモリ内のデータ列2の同期性が保たれない場合のデータ列配置例を示す図。
【図10】比較例としてのデータ転送装置を示す説明図。
【図11】メモリのライト側およびリード側の切替タイミングが依存関係にある場合のタイミング図。
【図12】メモリのライト側およびリード側の切替タイミングが依存関係にない場合のタイミング図。
【図13】第1実施形態におけるデータ転送装置のライトアクセスおよびリードアクセスのタイミング図。
【図14】第1実施形態におけるデータ転送装置のライト側の処理を説明するフローチャート。
【図15】第1実施形態におけるデータ転送装置のリード側の処理を説明するフローチャート。
【図16】同時に2面のメモリより読み出しを行う場合のデータ転送装置のライトアクセスおよびリードアクセスのタイミング図。
【図17】同時に2面のメモリより読み出しを行う場合であって、同期性が確保されない場合のデータ転送装置のライトアクセスおよびリードアクセスのタイミング図。
【図18】同時に2面のメモリより読み出しを行う場合であって、同期性が確保され得る場合のデータ転送装置のライトアクセスおよびリードアクセスのタイミング図。
【図19】データ転送装置が2面のメモリに対し同時に読み出しを行う場合のリード側の処理を説明するフローチャート。
【図20】データの有効性を判定するためのデータのデータ列配置例を示す図。
【図21】本発明に係るデータ転送装置の第2実施形態を示すブロック図。
【図22】第2実施形態におけるデータ転送装置のライトアクセスおよびリードアクセスのタイミング図。
【発明を実施するための形態】
【0016】
本発明に係るデータ転送装置およびその方法の各実施形態について、図面を参照して説明する。
【0017】
[第1実施形態]
図1は、本発明に係るデータ転送装置の第1実施形態を示すブロック図である。
【0018】
データ転送装置1は、例えば外部ネットワークから受信した随時更新されるデータをデータ受信部10において受信し、第1のメモリ11a〜第3のメモリ11c(第1〜第3のメモリ11a〜11cを特に区別しない場合には単に「メモリ11」という。)にデータを一時蓄積する。データ転送装置1は、メモリ11に蓄積されたデータを演算処理部12により読み出して演算処理する。
【0019】
データ受信部10は、外部ネットワークより、随時更新されるデータを受信する。データ受信部10は、受信したデータを判定情報生成付加部13に供給する。データ受信部10は、データを書き込むアドレス(アドレスA)と、メモリ11に書き込み(ライト)を行わせるための制御信号(ライトA)とをセレクター(SELA)14aを介してメモリ11へ供給する。また、データ受信部10は、セレクター14aに対してデータを記憶するメモリ11の切替を指示するための面切替信号(面切替A)を供給する。第1実施形態においては、データ受信部10は、書き込み先のメモリを所定の順番で切り替えて、かつ所定の周期でデータを送信し、メモリ11にデータを書き込ませるデータ送信部である。
【0020】
判定情報生成付加部13は、判定情報としてのシーケンス番号および反転シーケンス番号を生成し、データ受信部10より供給されたデータに付加してセレクター14aに供給する。
【0021】
セレクター14aは、データ受信部10より通知された面切替信号に基づいてデータを蓄積するメモリ11を切り替える。
【0022】
メモリ11は、書き込みおよび読み出しが同時に実行可能であるメモリである。メモリ11は、例えばデュアルポートメモリ、またはSRAM(Static Random Access Memory)やSDRAM(Synchronous DRAM)などのメモリを用いてデュアルポートメモリ相当の機能を実現させたもので構成される。メモリ11は、少なくとも3面設けられ、それぞれが物理的に異なるメモリである。
【0023】
図2は、デュアルポートメモリ20の構成例を示す説明図である。
【0024】
図3は、SRAMまたはSDRAMを用いてデュアルポートメモリ相当の機能を実現したものの構成例を示す説明図である。
【0025】
デュアルポートメモリ20は、データの入出力の為のポートを2つ設けたメモリ(RAM)である。
【0026】
「SRAMまたはSDRAMを用いてデュアルポートメモリ相当の機能を実現した」メモリは、SRAM、SDRAMのように書き込みおよび読み出しを同時には行えないメモリ21であっても、A側のデータ・制御バスとB側のデータ・制御バスとの調停を行うアクセス調停部22を有することによりデュアルポートメモリ相当の機能を実現することができる。
【0027】
例えば、アクセス調停部22は、A側のアクセス発生時にはA側にメモリ21のアクセス権を与え、B側のアクセス発生時にはB側にメモリ21のアクセス権を与える。また、アクセス調停部22は、一方のアクセス時に他方のアクセスが発生した場合、他方のアクセスを一時待機させ、一方のアクセス終了後に他方にアクセス権を与える。アクセス権の与え方は、先着優先であったり、必ず交互であったりする。
【0028】
判定情報抽出検査部15a〜15c(特に区別しない場合は単に「判定情報抽出検査部15」という。)は、判定情報生成付加部13によりデータ列に付加されたシーケンス番号および反転シーケンス番号を抽出し、データ列が有効であるか否かを検査し、その結果を演算処理部12に供給する。
【0029】
セレクター(SELB)14bは、演算処理部12より供給された面切替信号(面切替B)に基づいてデータを読み出すメモリの切替を行う。
【0030】
演算処理部12は、セレクター14bを介してデータ列をメモリ11より読み出し(リードし)、読み出されたデータ列に対して所要の演算処理を行う。演算処理部12は、データを読み出すアドレス(アドレスB)と、メモリ11より読み出しを行わせるための制御信号(リードB)とをセレクター(SELB)14bを介してメモリ11へ供給する。演算処理部12は、データ受信部10の受信タイミング(書き込みタイミング)に依存することなく、任意のタイミング(周期)でデータの読み出しを行うようになっている。第1実施形態においては、演算処理部12は、書き込みの周期に依存しない周期で、少なくとも2面のメモリより同時にデータを受信するデータ受信部である。
【0031】
次に、メモリ11、判定情報生成付加部13、および判定情報抽出検査部15の詳細について説明する。
【0032】
図4は、データ転送装置1の第1のメモリ11a、判定情報生成付加部13、および判定情報抽出検査部15aを特に示す説明図である。第1〜第3のメモリ11a〜11cおよび判定情報抽出検査部15a〜15cはそれぞれほぼ同様の構成であるため、図4においては第1のメモリ11aおよび判定情報抽出検査部15aのみを説明する。また、セレクター14aの記載は省略した。
【0033】
図5は、第1のメモリ11aのメモリ構造の一例を示す図である。
【0034】
図6は、データ列1〜3の第1のメモリ11aへのデータ列配置例を示す図である。
【0035】
第1のメモリ11aは、例えばアドレス0〜n−1(アドレスA0、A1、・・・、An−2、An−1)が割り当てられ各データ幅がkビット(0〜bk−1)からなるメモリである。第1のメモリ11aにデータ受信部10より供給されるデータ列(データのビット幅(ここではkビット)より長いデータ長で有効な意味を持つデータ)が直接蓄積された場合には、データ列1にはアドレスA0〜Ap−1、データ列2にはアドレスAp〜A2p−1、データ列3にはA2p〜A3p−1のアドレス領域が割り当てられる。
【0036】
判定情報生成付加部13は、データ受信部10より供給されるライトデータAのヘッダー(先頭)にシーケンス番号を付加する。また、判定情報生成付加部13は、ヘッダーに付加されるシーケンス番号をビット反転させた反転シーケンス番号をライトデータAのフッター(最後尾)に付加する。すなわち、判定情報生成付加部13は、ヘッダーとフッターとが付加されたヘッダー・フッター付ライトデータを生成する。
【0037】
図7は、シーケンス番号および反転シーケンス番号がヘッダーおよびフッターに付加されたデータ列(データ列2)の第1のメモリ11aへのデータ列配置例を示す図である。
【0038】
シーケンス番号は、第1のメモリ11aの全領域において唯一特有の番号であり、同じアドレス領域でデータ列が更新される前後でデータの新旧が識別可能な特有の番号とする。例えば、第1のメモリ11aの全領域に10個のデータ列1〜10を割り当てる場合、データ列1のヘッダーにはデータを更新する度に0a、0b、0c・・・(ここでは16進数で表わすが実際には8ビットの情報である。)というシーケンス番号を付加し、フッターにはf5、f4、f3・・・という反転シーケンス番号を付加する。データ列2のヘッダーには1a、1b、1c・・・というシーケンス番号を付加し、フッターにはe5、e4、e3・・・、という反転シーケンス番号を付加する。
【0039】
判定情報抽出検査部15aは、第1のメモリ11aから読み出すデータ列のヘッダーに付加されたシーケンス番号と、データ列と、フッターに付加された反転シーケンス番号とを順次読み出す。判定情報抽出検査部15aは、フッターに付加された反転シーケンス番号をさらにビット反転したデータとヘッダーに付加されたシーケンス番号とを比較し、これらのデータが一致するか否かを判定する。
【0040】
図8は、データ列2の同期性が保たれない場合の例を時間軸に沿って示した図である。
【0041】
図9は、第1のメモリ11a内のデータ列2の同期性が保たれない場合のデータ列配置例を示す図である。
【0042】
ヘッダーに付加されたシーケンス番号とフッターに付加された反転シーケンス番号とは、判定情報生成付加部13により付加された時点では一致する。これに対し、図8に示すように、ヘッダーのシーケンス番号、データ列、フッターの反転シーケンス番号を順次読み出している最中に第1のメモリ11aに対してデータ列の書き込みが行われデータ列が更新される場合が起こり得る。
【0043】
具体的には、第1のメモリ11aに蓄積されたデータ列に対してリードアクセスが開始された直後に、リード速度より若干速い速度でライトアクセスが開始された。読み出し完了前に書き込みが完了したような場合、読み出しているデータに更新前の古いデータと更新後の新しいデータとが混在してしまう。
【0044】
なお、例えばリード側でデータ列nがリードされ、ライト側でデータ列n−1がライトされる場合には、このような問題は生じない。
【0045】
この場合、図9に示すように、データ列2のデータは、更新前のデータと更新後のデータとが混在する。また、フッターに付加される反転シーケンス番号は、更新後の新しいライトデータに付与されたシーケンス番号がビット反転されたデータとなる。このため、ヘッダーのシーケンス番号とフッターの反転シーケンス番号をビット反転したデータとは不一致となる。
【0046】
判定情報抽出検査部15aは、フッターに付加された反転シーケンス番号をさらにビット反転したデータとヘッダーに付加されたシーケンス番号とを比較し、これらのデータが一致すると判定した場合、読み出したデータは同期性が確保されており有効である旨の信号を演算処理部12に供給する。
【0047】
一方、判定情報抽出検査部15aは、これらのデータが不一致であると判定した場合、データの同期性は確保されていないと判定し、データは無効である旨の信号を演算処理部12に供給する。判定情報抽出検査部15aは、データとともにデータが無効である旨の信号を演算処理部12に供給してもよいし、無効である旨の信号のみを供給してもよい。
【0048】
また、判定情報抽出検査部15aは、有効と判定されたデータ列のシーケンス番号を保持する。判定情報抽出検査部15aは、この保持されたシーケンス番号と次の周期で第1のメモリ11aより読み出されたデータに付加されたシーケンス番号とを比較する。判定情報抽出検査部15aは、保持するシーケンス番号と、読み出されたデータ列に付加されたシーケンス番号とが一致する場合、スキップ信号を演算処理部12に対して出力する。これにより、判定情報抽出検査部15aは、データが更新されておらず既に読み出し終えたデータと同一のデータが第1のメモリ11aに蓄積されていることを通知し、演算処理部12が不要な読み出しを行わないようにすることができる。
【0049】
なお、図1のデータ転送装置1は、データ受信部10がデータの送信側(ライト側)、演算処理部12がデータの受信側(リード側)である例を説明したが、もちろんライト側とリード側とを入れ替えることもできる。
【0050】
次に、データ転送装置1が書き込みおよび読み出しを行う際にメモリ11を切り替える場合の動作について説明する。
【0051】
第1実施形態におけるデータ転送装置1の動作の説明に先立ち、想定され得るデータ転送装置の課題について説明する。
【0052】
図10は、比較例としてのデータ転送装置100を示す説明図である。データ転送装置100は、2面のメモリを有する。2面のメモリは、面切替信号によりいずれか一方のメモリがライト側、他方がリード側となるように切り替わる。デュアルポートメモリ101a、101bおよびセレクター102a、102bについては、図1のメモリ11およびセレクター14a、14bとほぼ同様である。
【0053】
図11は、メモリのライト側およびリード側の切替タイミングが依存関係にある場合のタイミング図である。図12は、メモリのライト側およびリード側の切替タイミングが依存関係にない場合のタイミング図である。
【0054】
メモリ101a、101bはアドレス領域が分割され、または物理的に異なるメモリを有することによりメモリ領域が2分割されている。これにより、データ転送装置100は一方のメモリ領域にライトアクセスしている場合には、他方のメモリ領域にリードアクセスするようになっている。
【0055】
ライトおよびリードアクセスを行うメモリ領域の切替は、データ列単位の書き込みが完了した後に面切替信号によりリード側に面切替を許可することで行われる。これにより、図11に示すように、有意なデータ列の更新中には、そのデータ列を読み込みさせないようにライトアクセスとリードアクセスのタイミングとが同時に切り替わる。
【0056】
しかし、ライト側においてデータ列のライトアクセスが完了しないとリード側で面を切替えられないため、ライトアクセスとリードアクセスはお互いの状況を確認しあわなければならないという制約がある。
【0057】
一方、図12に示すように2面のデュアルポートメモリの面切替えをライト側とリード側で任意のタイミングで行う場合、図中矢印Aで示すライトアクセスとリードアクセスとが同一面で行われる区間のデータ列の同期性が確保できない。
【0058】
これに対し、第1実施形態におけるデータ転送装置1は、メモリ11を3面設けることにより、読み出されたデータに更新前と更新後とのデータが混在することを防止、すなわち同期性を維持することができる。
【0059】
図13は、第1実施形態におけるデータ転送装置1のライトアクセスおよびリードアクセスのタイミング図である。
【0060】
データ転送装置1は、ライト側においては、第1のメモリ(第1面)11a、第2のメモリ(第2面)11b、第3のメモリ(第3面)11cの順番にデータを書き込む。リード側においては、演算処理部12の任意のタイミングにおいて、第1のメモリ11a、第2のメモリ11bおよび第3のメモリ11cを同時に読み出す。以下、ライト側およびリード側の処理の流れをフローチャートを用いて説明する。
【0061】
図14は、第1実施形態におけるデータ転送装置1のライト側の処理を説明するフローチャートである。
【0062】
ステップS1において、データ転送装置1は、データ受信部10において外部ネットワークより随時更新されるデータを受信したか否かの判定を行う。データ転送装置1は、データを受信していないと判定した場合、受信するまで待機する。一方、データ転送装置1はデータを受信した場合、ステップS2において、受信したデータを判定情報生成付加部13へ供給する。
【0063】
ステップS3において、判定情報生成付加部13は、シーケンス番号を生成し、受信したデータのヘッダーに付加する。また、判定情報生成付加部13は、シーケンス番号をビット反転した反転シーケンス番号をデータのフッターに付加する。
【0064】
ステップS4において、判定情報生成付加部13は、面切替信号Aに基づいてメモリ11にデータを書き込む。
【0065】
図15は、第1実施形態におけるデータ転送装置1のリード側の処理を説明するフローチャートである。このリード側の処理は、演算処理部12の任意のタイミングで実行される。
【0066】
ステップS11において、判定情報抽出検査部15a〜15cは、演算処理部12の制御に基づいて第1〜第3のメモリ11a〜11cより同時にデータを読み出す。ステップS12において、判定情報抽出検査部15a〜15cは、読み出したデータよりシーケンス番号および反転シーケンス番号を抽出する。
【0067】
ステップS13において、判定情報抽出検査部15a〜15cは、抽出したシーケンス番号および反転シーケンス番号より読み出したデータが有効であるか否かの判定を行う。判定情報抽出検査部15はデータが有効であると判定した場合には、ステップS14において、データが有効である旨の信号を演算処理部12へ供給する。一方、判定情報抽出検査部15は、データが無効であると判定した場合には、ステップS15において、データが無効である旨の信号を供給する。
【0068】
なお、複数のメモリ11より読み出されたデータのうち有効なデータが複数ある場合、最新のシーケンス番号が付与されているデータ列を使用することにより、外部ネットワークより受信した最新のデータを以降の演算処理に使用することができる。この場合、演算処理部12またはセレクター14bは、読み出されたデータおよびシーケンス番号を受け取り、シーケンス番号よりデータの新しさを判定する機能を備える。
【0069】
ステップS16において、判定情報抽出検査部15a〜15cは、前回読み出したデータ列に付加されたシーケンス番号と今回読み出したデータ列に付加されたデータ列に付加されたシーケンス番号とが一致するか否かの判定を行う。判定情報抽出検査部15a〜15cは各シーケンス番号が不一致であると判定した場合処理を終了する。
【0070】
一方、判定情報抽出検査部15は、各シーケンス番号が一致すると判定した場合、ステップS17において、スキップ信号を生成し、演算処理部12に出力する。
【0071】
なお、メモリ11が3面設けられた例を適用して説明したが、メモリ11の面数は3面以上であればよい。この場合、同時に読み出しを行うメモリ数は少なくとも3面であればよい。
【0072】
このデータ転送装置1によれば、3面設けられたメモリ11より同時にデータを読み出すことにより、同期性の確保された有効なデータを取得することができる。具体的には、図13に示すように、第1のメモリ(第1面)11aに対する書き込み(ライト)が行われている場合、第1のメモリ11aより読み出されるデータは矢印Bで示す区間において書き込みと読み出しが競合するため更新前と更新後とのデータとが混在してしまう。一方、第2のメモリ11bおよび第3のメモリ11cより読み出されるデータは矢印Bで示す区間においては、同期性が確保される。
【0073】
ライトアクセスとリードアクセスとがライト側およびリード側で任意のタイミングで行われる場合においては、リード側がデータの読み出し中に書き込みの対象となるメモリ11が切り替わる可能性がある。図13においては、リード側が第1〜第3のメモリ11a〜11cより読み出し中に、ライト側が書き込み先を第1のメモリ11aから第2のメモリ11bに切り替える場合である。この場合、第2のメモリ11bより読み出されるデータは矢印Cの区間において書き込みと読み出しとが競合するため更新前と更新後とのデータとが混在してしまう。
【0074】
これに対し、第1実施形態におけるデータ転送装置1は、読み出し中において書き込みが行われるメモリが第1のメモリ11aから第2のメモリ11bに切り替わる場合においても、第3のメモリ11cについては書き込みと読み出しとが競合しないため、同期性の確保された有効なデータの読み出しを行うことができる。
【0075】
上述したデータ転送装置1は、3面のメモリより同時にデータを読み出すものである。これに対し、以下に説明するように、読み出しの順序を考慮することにより2面を同時に読み出すようにしてもよい。
【0076】
図16は、同時に2面のメモリ11より読み出しを行う場合のデータ転送装置1のライトアクセスおよびリードアクセスのタイミング図である。
【0077】
データ転送装置1は、ライト側においては、第1のメモリ(第1面)11a、第2のメモリ(第2面)11b、第3のメモリ(第3面)11cに順次データを書き込む。リード側においては、演算処理部12の各リードタイミングにおいて、第1のメモリ11a、第2のメモリ11bおよび第3のメモリ11cのうち2つのメモリより同時に読み出す。例えば、データが読み出される1つ目のメモリは、第1のメモリ11a、第2のメモリ11b、第3のメモリ11cの順で切り替えられる。データが読み出される2つ目のメモリは、第3のメモリ11c、第1のメモリ11a、第2のメモリ11bの順で切り替えられる。
【0078】
第1のメモリ(第1面)11aに対する書き込みが行われている場合、第1のメモリ11aより読み出されるデータは矢印Dで示す区間において読み出しと書き込みとが競合し更新前と更新後とのデータが混在してしまう。一方、第3のメモリ11cより読み出されるデータは、同期性が確保される。
【0079】
図17は、同時に2面のメモリ11より読み出しを行う場合であって、同期性が確保されない場合のデータ転送装置1のライトアクセスおよびリードアクセスのタイミング図である。
【0080】
2つのメモリ11より同時に読み出す場合においては、読み出しを行うメモリ11の組み合わせによってはいずれのメモリ11から読み出したデータも更新前と更新後とのデータが混在してしまう可能性がある。
【0081】
例えば、データが読み出される1つ目のメモリが第2のメモリ11b、第3のメモリ11c、第1のメモリ11aの順で切り替えられ、2つ目のメモリが第1のメモリ11a、第2のメモリ11b、第3のメモリ11cの順で切り替えられる場合である。
【0082】
この場合、第1のメモリ(第1面)11aに対する書き込みが行われている場合、第1のメモリ11aより読み出されるデータは矢印Eで示す区間において書き込みと読み出しとが競合してしまう。また、書き込みが行われるメモリ11が第1のメモリ11aから第2のメモリ11bに切り替えられた場合、読み出し中のメモリ11のうち第2のメモリ11bにおいては矢印Fで示す区間において書き込みと読み出しとが競合してしまう。
【0083】
図18は、同時に2面のメモリより読み出しを行う場合であって、同期性が確保され得る場合のデータ転送装置1のライトアクセスおよびリードアクセスのタイミング図である。
【0084】
図18に示すライト側の動作については、図13および図14で説明したものとほぼ同様である。リード側の動作については、同時に読み出したデータの双方が無効と判定された場合、次回読み出すメモリの組合せを考慮することにより無効と判定された次回の読み出しタイミングにおいては有効なデータを読み出す。図18における矢印で示す区間は、書き込みと読み出しとが競合する区間である。
【0085】
以下、リード側の処理をフローチャートを用いて説明する。
【0086】
図19は、データ転送装置1が2面のメモリに対し同時に読み出しを行う場合のリード側の処理を説明するフローチャートである。なお、判定情報抽出検査部15がスキップ信号を生成するステップについては図示および説明を省略した。
【0087】
ステップS21〜S25は、図14の読出ステップS11〜無効信号送信ステップS15とほぼ同様であるため、ここでは説明を省略する。
【0088】
ステップS26において、データ転送装置1は、読み出した全てのデータが無効と判定されたか否かの判定を行う。この判定は、セレクター14bまたは演算処理部12で行われる。データ転送装置1は全てのデータが無効ではないと判定した場合、すなわち今回の読み出しのタイミングで有効なデータが得られたと判定した場合、処理を終了する。
【0089】
一方、データ転送装置1は、全てのデータが無効であると判定した場合、ステップS27において、次回の読み出しのタイミングにおいてデータを読み出すメモリ11について、今回読み出しを行ったメモリの一方を他方のメモリと異なるメモリにシフトする。
【0090】
例えば、図18においては、データが読み出される1つ目のメモリが第2のメモリ11b、第3のメモリ11c、第1のメモリ11aの順で切り替えられ、2つ目のメモリが第1のメモリ11a、第2のメモリ11b、第3のメモリ11cの順で切り替えられるとする。第2のメモリ11bと第1のメモリ11aとの2つのメモリ11よりデータが読み出されると、次回の読み出しのタイミングにおいては本来であれば図17に示すように第3のメモリ11cと第2のメモリ11bとからデータが読み出される。
【0091】
しかし、1つ目のメモリである第2のメモリ11b、2つ目のメモリである第1のメモリ11aの双方のデータが無効であると判定された場合には、データ転送装置1は一方のメモリである1つ目のメモリ(第2のメモリ11b)を他方のメモリである2つ目のメモリ(第1のメモリ11a)とは異なるメモリである第3のメモリ11cにシフトする。
【0092】
言い換えると、一方のメモリ(第1のメモリ11a)をシフトせず、他方のメモリ(第2のメモリ11b)を次の順位のメモリ(第3のメモリ11c)にシフトする。シフトする側のメモリは、次の順位のメモリが今回の読み出しのタイミングにおいて読み出しが行われないメモリとなっているメモリとする。
【0093】
このため、今回の読み出しのタイミングでデータが読み出されていないメモリ11(第3のメモリ11c)と、データが読み出されたメモリ11(第1のメモリ11a)とから次回のタイミングで読み出しを行うこととなり、次回からはいずれか一方のメモリ11から確実に有効なデータを読み出すことができる。
【0094】
このデータ転送装置1によれば、読み出すデータの有効性を向上させることができる。また、データを同時に読み出すメモリ11の面数を2面と削減できるためメモリ11より読み出されたデータを一次保持するためのバッファ(図示せず)の容量を削減できる。
【0095】
なお、データ列の有効性を判定するための判定情報は、シーケンス番号および反転シーケンス番号に限らない。
【0096】
図20は、データの有効性を判定するためのデータのデータ列配置例を示す図である。
【0097】
判定情報生成付加部13は、データ受信部10より供給されたデータ列に基づいて、このデータ列をビット反転した反転データ列を生成する。反転データ列が格納されるメモリ11の領域は、ライト側とリード側とで予め取り決められる。例えば、反転データ列を記憶する領域は、データ列のアドレスnに100を足したn+100と取り決める。
【0098】
判定情報抽出検査部15は、予め取り決められたアドレス領域からデータ列と反転データ列とを順次読み出す。判定情報抽出検査部15は、読み出したデータ列と、反転データ列をさらに反転したデータとを比較する。判定情報抽出検査部15は、これらのデータが一致すると判定した場合、同期性が確保され有効なデータである旨の信号を演算処理部12に供給する。判定情報抽出検査部15は、これらのデータが不一致であると判定した場合、データの同期性は確保されていないと判定し、データは無効である旨の信号を演算処理部12に供給する。
【0099】
[第2実施形態]
本発明に係るデータ転送装置40の実施形態を添付図面に基づいて説明する。
【0100】
図21は、本発明に係るデータ転送装置の第2実施形態を示すブロック図である。
【0101】
第2実施形態におけるデータ転送装置40が第1実施形態と異なる点は、2面の物理的に異なるメモリである第1および第2のメモリ11a、11bを有する点と、セレクター14aに代えて遅延制御部46を有する点である。第1実施形態と対応する構成および部分については同一の符号を付し、重複する説明を省略する。
【0102】
遅延制御部46は、第1のメモリ11aに書き込みが行われ所定時間が経過した後に第1のメモリ11aに書き込まれたデータと同一のデータが第2のメモリ11bに書き込まれるよう、遅延を発生させる。遅延時間は、例えば演算処理部12の読み出しのタイミングや種々の要因により決定される。
【0103】
データ受信部10は、一回の書き込みタイミング(データ更新タイミング)において、同一のデータを異なるメモリ11に遅延時間を持って書き込む。
【0104】
図22は、第2実施形態におけるデータ転送装置40のライトアクセスおよびリードアクセスのタイミング図である。
【0105】
ライト側においては、遅延制御部46の作用により第1のメモリ11aへデータが書き込まれた後、遅延時間T経過後に同一のデータが第2のメモリ11bへ書き込まれる。
【0106】
リード側においては、書き込みに依存しないタイミングで第1のメモリ11aと第2のメモリ11bとが同時に読み出しを行う。矢印Gに示す区間においては、第1のメモリ11aに対する書き込みと読み出しとが競合し有効なデータが得られない。しかし、第2のメモリ11bについては遅延時間Tを設けることにより書き込みと読み出しとが競合することなく有効なデータを得ることができる。この結果、演算処理部12は読み出されたデータのうち有効なデータを選択して演算処理に使用することができる。
【0107】
なお、データ転送装置40は、2面のメモリを設けた例を説明したが、2面以上のメモリを有してもよい。
【符号の説明】
【0108】
1、40 データ転送装置
10 データ受信部
11a〜11c 第1〜第3のメモリ
12 演算処理部
13 判定情報生成付加部
14a セレクター(SELA)
14b セレクター(SELB)
15a〜15c 判定情報抽出検査部
46 遅延制御部

【特許請求の範囲】
【請求項1】
少なくとも2面からなる複数のメモリと、
書き込み先の前記メモリを所定の順番で切り替えて、かつ所定の周期でデータを送信し前記メモリに書き込ませるデータ送信部と、
前記書き込みの周期に依存しない周期で、前記複数のメモリのうち少なくとも2面の前記メモリより同時に前記データを受信するデータ受信部と、
前記データ送信部が前記メモリに送信する前記データに対して各データに固有な判定情報を付加する判定情報付加部と、
前記データ受信部が前記メモリより受信する前記データに付加された前記判定情報を用いて前記データが有効であるか否かを判定し、判定結果を前記データ受信部に通知する判定情報検査部とを備えたことを特徴とするデータ転送装置。
【請求項2】
前記データ受信部は、少なくとも2面の前記メモリより同時にデータを受信し、いずれのデータも無効である旨の判定結果が通知された場合、次回の前記読み出しの周期において前記データを読み出すメモリを、今回読み出しを行ったメモリの一方を他方のメモリと異なるメモリに切り替える請求項1記載のデータ転送装置。
【請求項3】
前記データ受信部は、前記データを読み出す各メモリをそれぞれの所定の順序で切り替え、次回の前記読み出しの周期において切り替えられる前記メモリは、次の順位の前記メモリが今回の前記読み出しの周期において読み出しが行われていないメモリとなっているメモリである請求項2記載のデータ転送装置。
【請求項4】
前記データ送信部は、一回の前記書き込みの周期において、同一の前記データを異なる2面以上の前記メモリに遅延時間を持って書き込む請求項1記載のデータ転送装置。
【請求項5】
前記判定情報は、前記データが更新される前後でデータの新旧が識別可能な特有の番号であるシーケンス番号であり、
前記判定情報付加部は、前記データのヘッダーに前記シーケンス番号を付加し、前記データのヘッターに前記シーケンス番号をビット反転した反転シーケンス番号を付加し、
前記判定情報検査部は、前記シーケンス番号と前記反転シーケンス番号とを読み出し、前記シーケンス番号と、前記反転シーケンス番号をビット反転した情報とを比較し、一致する場合には前記データが有効であると判定する請求項1記載のデータ転送装置。
【請求項6】
前記データ受信部は、同時に受信した前記データに有効と判定された前記データが複数ある場合、最新の前記シーケンス番号が付与されているデータ列を使用する請求項5記載のデータ転送装置。
【請求項7】
前記判定情報検査部は、今回読み出した前記シーケンス番号を保持し、保持した前記シーケンス番号と次回読み出した前記シーケンス番号とが一致する場合、前記データ受信部に対して前記データの読み出しを停止する旨を通知する請求項5記載のデータ転送装置。
【請求項8】
前記判定情報は、前記データをビット反転した反転データであり、
前記判定情報付加部は、前記反転データを前記メモリの予め取り決められた領域に蓄積し、
前記判定情報検査部は、前記予め取り決められた領域より前記反転データを読み出し、前記データと、前記反転データをビット反転した情報とを比較し、一致する場合には前記データが有効であると判定する請求項1記載のデータ転送装置。
【請求項9】
少なくとも2面からなる複数のメモリを準備するステップと、
書き込み先の前記メモリを所定の順番で切り替えて、かつ所定の周期でデータを送信し前記メモリに書き込むステップと、
前記書き込みの周期に依存しない周期で、前記複数のメモリのうち少なくとも2面の前記メモリより同時に前記データを受信するステップと、
前記メモリに送信する前記データに対して各データに固有な判定情報を付加するステップと、
前記メモリより受信する前記データに付加された前記判定情報を用いて前記データが有効であるか否かを判定し、判定結果を前記データの受信先に通知するステップとを備えることを特徴とするデータ転送方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−137832(P2012−137832A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−288080(P2010−288080)
【出願日】平成22年12月24日(2010.12.24)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】