(57)【要約】【課題】共有メモリへのアクセスの排他制御機構を有さない、どのようなメモリ（複数の入出力インターフェースを有することが前提である）に対しても、簡易且つ確実な手段により、複数の異なる対象からのアクセス要求のコリジョンを避ける方法および装置を提供する【解決手段】共有メモリの複数のインターフェースのうちの１に接続される一方のデバイス側を一定時間待機させることで、コリジョンを回避させる。また、一方のデバイス側に学習モードを備え、最適な待ち時間を学習させる。【選択図】図１
2015103107.tif 000002
【特許請求の範囲】
【請求項１】
第１の入出力インターフェースおよび第２の入出力インターフェースを有する共有メモリと、
前記共有メモリの前記第１の入出力インターフェースに接続される第１のデバイスと、
前記共有メモリの前記第２の入出力インターフェースに接続される第２のデバイスとを有し、
電力供給がされると、前記第２のデバイスおよび前記第１のデバイスが起動され、その後、前記第２のデバイスおよび前記第１のデバイスが、前記共有メモリへのアクセスを開始する装置において、
前記第１のデバイスおよび前記第２のデバイスが起動した後、待機時間設定としての所定時間だけ前記第１のデバイスを待機させ、前記所定時間の経過後に前記第１のデバイスに前記共有メモリにアクセスさせることにより前記共有メモリへの同時アクセスを回避するアクセス調整手段
を備えたことを特徴とする装置。
【請求項２】
前記所定時間の経過後に前記第１のデバイスが前記共有メモリへのアクセスを行い、コリジョンの発生を検知すると、前記待機時間設定を更新する手段
をさらに備えたことを特徴とする請求項１に記載の装置。
【請求項３】
前記第１のデバイスが前記待機時間設定で指定された時間待機した後に、前記共有メモリへのアクセスを行いコリジョンの発生を検知すると、予め定められたリトライ間隔時間さらに待機した後に、前記共有メモリへのアクセスをリトライし、前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定に、前記リトライ間隔時間を加算することによって、前記待機時間設定を更新する手段
をさらに備えたことを特徴とする請求項１に記載の装置。
【請求項４】
前記第１のデバイスが前記待機時間設定で指定された時間待機した後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算することによって、前記待機時間設定を更新する手段
をさらに備えたことを特徴とする請求項１に記載の装置。
【請求項５】
前記アクセス調整手段は、前記待機時間設定で指定された時間に、１回の前記共有メモリへのアクセスにおける、最初にコリジョンが発生してからのリトライ回数と予め定められたリトライ間隔時間とを乗算した時間を加算することによって、前記待機時間設定を更新する手段
をさらに備えたことを特徴とする請求項１に記載の装置。
【請求項６】
前記第１のデバイスが前記待機時間設定としての所定時間待機した後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算し、前記待機時間設定を更新させ、
前記アクセス調整手段が、前記更新された待機時間設定で指定された時間だけ、前記第１のデバイスを待機させた後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、再び前記待機時間設定から、前記予め定められた調整時間を減算することにより、前記待機時間設定を更新する手段
をさらに備えたことを特徴とする請求項１に記載の装置。
【請求項７】
前記アクセス調整手段は、更新された前記待機時間設定で指定された時間、前記第１のデバイスを待機させる
ことを特徴とする請求項１ないし６いずれか１項に記載の装置。
【請求項８】
リーダライタからの信号を受信し、または、リーダライタへの信号を送信するアンテナと、
第１の入出力インターフェースおよび第２の入出力インターフェースを有するＩＣタグメモリと、
組み込みデバイスと、
前記アンテナを介して前記リーダライタと送受信される信号の読み書きのために、前記ＩＣタグメモリにアクセスするＩＣタグコントローラーと、
前記組み込みデバイスと接続され、前記組み込みデバイスを制御するための制御プログラムおよびデータの読み書きのために、前記ＩＣタグメモリにアクセスするＣＰＵと、
前記リーダライタからのウェイクアップ信号を受信すると、前記ＩＣタグコントローラーと前記ＣＰＵとを起動させる起動手段とを有し、
前記ＩＣタグメモリの第１の入出力インターフェースに前記ＣＰＵを、第２の入出力インターフェースに前記ＩＣタグコントローラーを接続させたＩＣタグ装置において、
前記起動手段により前記ＩＣタグコントローラーと前記ＣＰＵとが起動した後、待機時間設定としての所定時間だけ前記ＣＰＵを待機させ、前記所定時間の経過後に、前記ＣＰＵに前記ＩＣタグメモリにアクセスさせることにより前記ＩＣタグメモリへの同時アクセスを回避するアクセス調整手段
を備えたことを特徴とする、ＩＣタグ装置。
【請求項９】
前記アクセス調整手段は、前記ＣＰＵが前記待機時間設定で指定された時間待機した後に、前記ＩＣタグメモリへのアクセスを行いコリジョンの発生を検知すると、予め定められたリトライ間隔時間さらに待機した後に、前記ＩＣタグメモリへのアクセスをリトライし、前記ＩＣタグメモリへのアクセスが成功したことを検知すると、前記待機時間設定に、前記リトライ間隔時間を加算することによって、前記待機時間設定を更新する
ことを特徴とする請求項８に記載のＩＣタグ装置。
【請求項１０】
前記ＣＰＵが前記待機時間設定で指定された時間待機した後に、前記ＩＣタグメモリへのアクセスを行い前記ＩＣタグメモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算することによって、前記待機時間設定を更新する
ことを特徴とする請求項８に記載のＩＣタグ装置。
【請求項１１】
第１の入出力インターフェースおよび第２の入出力インターフェースを有する共有メモリと、
前記共有メモリの前記第１の入出力インターフェースに接続される第１のデバイスと、
前記共有メモリの前記第２の入出力インターフェースに接続される第２のデバイスとを有し、
電力供給がされると、前記第２のデバイスおよび前記第１のデバイスが起動され、その後、前記第２のデバイスおよび前記第１のデバイスが、前記共有メモリへのアクセスを開始する装置における、前記共有メモリへの同時アクセスを回避する方法であって、
前記第１のデバイスおよび前記第２のデバイスが起動した後、待機時間設定としての所定時間だけ前記第１のデバイスを待機させ、前記所定時間の経過後に前記第１のデバイスに前記共有メモリにアクセスさせること
を備えた方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリに対するアクセス制御方法および装置に関する。
【背景技術】
【０００２】
従来、複数のインターフェースから共有メモリに対してアクセスするデバイスが、デバイスに組み込まれている場合は、各デバイスのメモリアクセスは、デバイス内で管理されていた。そのため、メモリアクセスのタイミングの管理は容易であった。一方、例えば、ＩＣタグのリーダライタのように、組み込みではないデバイスとメモリを共有する場合においても、従来は組み込みデバイス、組み込みではないデバイス間のメモリアクセスを行うタイミングが明確に異なっていたため、共有メモリへの同時アクセスによるコリジョンを考慮する必要が少なかった。
【０００３】
しかしながら、近年、接触型または非接触型のＩＣタグのように、リーダライタ等の外部機器から送信される信号の受信に起因してメモリアクセスを行うようなデバイスが増加している。例えば、接触型または非接触型のＩＣタグは、リーダライタ等の外部機器と通信を行い、搬送波にのせられたデータ、クロック信号を取り出し、ＩＣカードのメモリにデータを書き込む。近年では、さらに、ＩＣタグに保持されている情報の一部を可視表示させるべく、表示デバイス等のデバイスを搭載する構成が知られている（例えば、特許文献１参照）。
【０００４】
このような構成においては、ＣＰＵと、アンテナ等を介して受信したデータの書き込みを行うＩＣタグのコントローラーが、ＩＣタグのメモリを共有し、ＩＣタグのメモリにそれぞれ書き込みおよび読み出しを行う。
【０００５】
例えば、他デバイスが表示装置である場合、リーダライタから搬送波を受信し、ＣＰＵが起動すると、ＩＣタグのメモリから表示のためのハードウェア制御プログラムや表示用の情報（例えば、課金情報等）を読み出して表示制御を行う。一方、リーダライタ等の外部機器との通信においては、アンテナまたは電気的接点を介して受信されたコマンド等に基づき、ＩＣタグのコントローラーがＩＣタグ内のメモリへの書き込み、または、読み取りを行う。かかる構成においては、ＣＰＵとＩＣタグのコントローラーのアクセスを行うタイミングが同時であるため、適切な制御をしないとメモリに対する同時書き込みが発生してしまう。
【０００６】
したがって、共有メモリに対する同時書き込みを回避する必要があるが、従来、以下の方法により、共有メモリへの同時アクセスによる競合を回避していた。
ａ）先にアクセスしたデバイスのメモリアクセスを優先させ、先にアクセスしたデバイスによるメモリアクセスが完了するまで他のデバイスのアクセスを受け付けない（例えば、特許文献２参照）。
ｂ）どちらか一方のデバイスからのアクセスを常に優先させる。例えば、デバイスＢがアクセスしている間、デバイスＡからのアクセスがあった場合、デバイスＢのアクセスを切断し、デバイスＡからのアクセスを優先的に開始させる（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２６５１７６号公報
【特許文献２】特開平１１−２７２８２２号公報
【特許文献３】特開２００２−３１２２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記特許文献２及び３のように、排他的なアクセスを実現するための制御回路を別途設けることにより、いずれかの入出力インターフェースからのアクセスを禁止または優先させることは、回路構成を変更しなくてはならず、必要部品が増加し構成が複雑となる。また、外部機器の構成上の理由などから、外部機器側でアクセスを行うタイミングを調整することが難しいこともある。例えば、ＩＣタグの例においては、リーダライタ機能を有するデバイスは、スマートフォン等であることが多いが、ＯＳＩ参照モデルにおける、低レイヤに位置するファームウェアによって通信制御が行われることが多く、通信動作の改変は困難である。
【０００９】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、メモリアクセスの排他制御機構を有さないメモリ（複数の入出力インターフェースを有することが前提である）であっても、簡易且つ確実な手段により、複数の異なる対象からのアクセス要求のコリジョンを避ける方法および装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、このような目的を達成するために、請求項１に記載の発明は、第１の入出力インターフェースおよび第２の入出力インターフェースを有する共有メモリと、前記共有メモリの前記第１の入出力インターフェースに接続される第１のデバイスと、前記共有メモリの前記第２の入出力インターフェースに接続される第２のデバイスとを有し、電力供給がされると、前記第２のデバイスおよび前記第１のデバイスが起動され、その後、前記第２のデバイスおよび前記第１のデバイスが、前記共有メモリへのアクセスを開始する装置において、前記第１のデバイスおよび前記第２のデバイスが起動した後、待機時間設定としての所定時間だけ前記第１のデバイスを待機させ、前記所定時間の経過後に前記第１のデバイスに前記共有メモリにアクセスさせることにより前記共有メモリへの同時アクセスを回避するアクセス調整手段を備えたことを特徴とする。
【００１１】
請求項２に記載の発明は、請求項１に記載の発明に対してさらに、前記所定時間の経過後に前記第１のデバイスが前記共有メモリへのアクセスを行い、コリジョンの発生を検知すると、前記待機時間設定を更新する手段をさらに備えたことを特徴とする。
【００１２】
請求項３に記載の発明は、請求項１に記載の発明に対してさらに、前記第１のデバイスが前記待機時間設定で指定された時間待機した後に、前記共有メモリへのアクセスを行いコリジョンの発生を検知すると、予め定められたリトライ間隔時間さらに待機した後に、前記共有メモリへのアクセスをリトライし、前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定に、前記リトライ間隔時間を加算することによって、前記待機時間設定を更新する手段をさらに備えたことを特徴とする。
【００１３】
請求項４に記載の発明は、請求項１に記載の発明に対してさらに、前記第１のデバイスが前記待機時間設定で指定された時間待機した後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算することによって、前記待機時間設定を更新する手段をさらに備えたことを特徴とする。
【００１４】
請求項５に記載の発明は、請求項１に記載の発明に対してさらに、アクセス調整手段は、前記待機時間設定で指定された時間に、１回の前記共有メモリへのアクセスにおける、最初にコリジョンが発生してからのリトライ回数と予め定められたリトライ間隔時間とを乗算した時間を加算することによって、前記待機時間設定を更新する手段をさらに備えたことを特徴とする。
【００１５】
請求項６に記載の発明は、請求項１に記載の発明に対してさらに、前記第１のデバイスが前記待機時間設定としての所定時間待機した後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算し、前記待機時間設定を更新させ、前記アクセス調整手段が、前記更新された待機時間設定で指定された時間だけ、前記第１のデバイスを待機させた後に、前記共有メモリへのアクセスを行い前記共有メモリへのアクセスが成功したことを検知すると、再び前記待機時間設定から、前記予め定められた調整時間を減算することにより、前記待機時間設定を更新する手段をさらに備えたことを特徴とする。
【００１６】
請求項７に記載の発明は、請求項１ないし６いずれかに記載された発明に対してさらに、前記アクセス調整手段は、更新された前記待機時間設定で指定された時間、前記第１のデバイスを待機させることを特徴とする。
【００１７】
請求項８に記載の発明は、リーダライタからの受信信号を受信し、または、リーダライタへの送信信号を送信するアンテナと、第１の入出力インターフェースおよび第２の入出力インターフェースを有するＩＣタグメモリと、組み込みデバイスと、前記アンテナを介して前記リーダライタと送受信される信号の読み書きのために、前記ＩＣタグメモリにアクセスするＩＣタグコントローラーと、前記組み込みデバイスと接続され、前記組み込みデバイスを制御するための制御プログラムおよびデータの読み書きのために、前記ＩＣタグメモリにアクセスするＣＰＵと、前記リーダライタからのウェイクアップ信号を受信すると、前記ＩＣタグコントローラーと前記ＣＰＵとを起動させる起動手段とを有し、前記ＩＣタグメモリの第１の入出力インターフェースに前記ＣＰＵを、第２の入出力インターフェースに前記ＩＣタグコントローラーを接続させたＩＣタグ装置において、前記起動手段により前記ＩＣタグコントローラーと前記ＣＰＵとが起動した後、待機時間設定としての所定時間だけ前記ＣＰＵを待機させ、前記所定時間の経過後に、前記ＣＰＵにメモリアクセスさせることにより前記ＩＣタグメモリへの同時アクセスを回避するアクセス調整手段を備えたことを特徴とする。
【００１８】
請求項９に記載の発明は、請求項８に記載の発明に対してさらに、アクセス調整手段は、前記ＣＰＵが前記待機時間設定で指定された時間待機した後に、前記ＩＣタグメモリへのアクセスを行いコリジョンの発生を検知すると、予め定められたリトライ間隔時間さらに待機した後に、前記ＩＣタグメモリへのアクセスをリトライし、前記ＩＣタグメモリへのアクセスが成功したことを検知すると、前記待機時間設定に、前記リトライ間隔時間を加算することによって、前記待機時間設定を更新することを特徴とする。
【００１９】
請求項１０に記載の発明は、請求項８に記載の発明に対してさらに、前記ＣＰＵが前記待機時間設定で指定された時間待機した後に、前記ＩＣタグメモリへのアクセスを行い前記ＩＣタグメモリへのアクセスが成功したことを検知すると、前記待機時間設定から、予め定められた調整時間を減算することによって、前記待機時間設定を更新することを特徴とする。
【００２０】
請求項１１に記載の発明は、第１の入出力インターフェースおよび第２の入出力インターフェースを有する共有メモリと、前記共有メモリの前記第１の入出力インターフェースに接続される第１のデバイスと、前記共有メモリの前記第２の入出力インターフェースに接続される第２のデバイスとを有し、電力供給がされると、前記第２のデバイスおよび前記第１のデバイスが起動され、その後、前記第２のデバイスおよび前記第１のデバイスが、前記共有メモリへのアクセスを開始する装置における、前記共有メモリへの同時アクセスを回避する方法であって、前記第１のデバイスおよび前記第２のデバイスが起動した後、待機時間設定としての所定時間だけ前記第１のデバイスを待機させ、前記所定時間の経過後に前記第１のデバイスに前記共有メモリにアクセスさせることを特徴とする。
【００２１】
共有メモリの複数のインターフェースのうちの１に接続される一方のデバイス側を一定時間待機させることで、コリジョンを回避させる構成である。この構成によれば、メモリアクセスの排他制御機構を有さないメモリであっても、簡単且つ確実な構成で、共有メモリへのアクセスのコリジョンを避けるための構成を実現することができる。
【００２２】
また、本発明の第２の実施形態によれば、一方のデバイス側に学習モードを備え、最適な待ち時間を学習させる。学習モードの一例として、一方のデバイス側が、例えば、Ｔ１＋Ｔ２時間待った後、共有メモリにアクセスしたとき、コリジョンが起こらなければ、待機時間設定である、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  ＴｉｍｅをＴ１＋Ｔ２に設定する。その後、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ＝Ｔ１＋Ｔ２より短い時間で、共有メモリにアクセスし、コリジョンが起こらなければ、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅを再設定する。その繰り返しを行い、最適なＶａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅを決定する。この構成によれば、機種、環境等に依存してアクセス時間が異なるデバイスであっても、待ち時間を最適な時間に設定し、コリジョンを回避することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態にかかる、複数の入出力インターフェースを有する共有メモリに対するアクセスを概念的に説明する図である。
【図２】本発明の第１の実施形態にかかる、ＩＣタグ装置の内部構成を示す構成図である。
【図３】本発明の第１の実施形態にかかる、ＩＣタグ装置におけるコリジョン回避処理のフローチャートである。
【図４】本発明の第２の実施形態にかかるＩＣタグ装置の内部構成を示す構成図である。
【図５】本発明の２実施形態にかかる、学習モードを有するＩＣタグ装置におけるコリジョン回避処理のフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。なお、本明細書において、メモリアクセスとは、メモリへの書込み、読み出し、消去等を意味する。また、コリジョンとは、複数の通信の衝突を意味し、ウェイクアップアクションとは、ＩＣタグがコマンドも受け付けない状態（スリープ状態）から、コマンドを受け付け可能な状態（ウェイクアップ状態）へ遷移させる、デバイス内のＣＰＵを起動させるためのトリガーであって、センサー等に検知される動作を意味する。例えば、ＩＣタグの例においては、コントローラー及びＣＰＵを起動させるためのトリガー信号（搬送波）を検知することを意味する。入出力インターフェースとは、Ｉ２Ｃ、ＳＰＩ、ＵＡＲＴ等のシリアルインターフェースに加え、無線通信により得たデータ等を入出力するための、ＲＦインターフェース等も含む。なお、本明細書においては、ＩＣタグデバイスの筐体中に配置されたＣＰＵと、ＩＣタグデバイスに読書きを行うリーダライタとが、メモリアクセスを行う構成を例に挙げて説明しているが、共有メモリに読書きを行うデバイスであれば、どのような形態のデバイスでも良い。
【００２５】
［第１実施形態］
図１は、複数の入出力インターフェースを有する共有メモリに対するアクセスを概念的に説明する図である。複数の入出力インターフェースとして、２つの入出力ポートを介して入出力を行う構成を挙げているが、入出力ポートは２つに限らない。また、共有メモリに対してアクセスを行うデバイスは、ＩＣタグの例に限定されず、どのようなデバイスであっても構わない。
【００２６】
図１において、共有メモリを１つの部屋とし、それぞれのインターフェースをドアに例える。共有メモリには、基本的に、片方のドアからしか入ることができない仕様となっている。例えば、インターフェースＡから共有メモリの書き換え動作を行っている間、インターフェースＢからも共有メモリの情報を書き換えようとした場合、コリジョンが発生し、書き換え動作が正常に完了されない可能性がある。ここで、図１のインターフェースＡに接続されるデバイスに、アクセス調整手段を設け、所定時間共有メモリへのアクセスを待機させる。それにより、インターフェースＢとの間の同時メモリアクセスによるコリジョンを回避する。図１の概念的な複数の入出力インターフェースを利用する例として、図２において、ＩＣタグを例に挙げてより具体的に説明する。
【００２７】
図２は、本発明の一実施形態にかかる、ＩＣタグ１０の内部構成例を示す。ＩＣタグメモリ１０２は、不揮発性または揮発性のメモリであって、例えば、ＲＡＭ、ＦＲＡＭ（登録商標）、ＥＥＰＲＯＭ等で構成される。本発明におけるＩＣタグメモリ１０２は、複数の入出力インターフェース（入出力インターフェース１および２）を有し、入出力インターフェース１は、ＣＰＵ１０１に接続され、入出力インターフェース２は、アンテナ１１０を介して受信したコマンド等をＩＣタグメモリ１０２に読書きする、コントローラー１０４に接続されている。ＣＰＵ１０１は、表示装置１１１または、音声出力装置等のデバイスを制御する構成としてもよい。
【００２８】
アンテナ１１０は、所定周波数（例えばＵＨＦ帯等の高周波やＨＦ帯等の低周波）を用いて非接触で信号の送受信を行う。アンテナ１１０には、整流回路１０８及び電源回路１０９が接続され、整流回路１０８は、アンテナ１１０により受信された搬送波を整流し、電源回路１０９は整流された搬送波のエネルギーを蓄積し、復調回路１０６、ＣＰＵ１０１等の駆動電源とする。
【００２９】
クロック信号生成回路１０５は、受信された搬送波からクロック信号を抽出して、コントローラー１０４に供給する。復調回路１０６は変調された搬送波を復調して、コントローラー１０４に供給する。コントローラー１０４は、前述のように、デジタルデータをＩＣタグメモリ１０２に入出力インターフェース２を介して読み書きする。変調回路１０７は、コントローラー１０４からの信号を変調してアンテナ１１０を介して搬送波を送信する。リーダライタＡ１２２及びリーダライタＢ１２３は、ＩＣタグ１０へのコマンド、データの送受信を行うもので、制御部１１３、アンテナ１１２、図示しない変調回路、復調回路等を有している。
【００３０】
図３は、本発明の一実施形態にかかる、ＩＣタグ装置におけるコリジョン回避処理のフローチャートである。
【００３１】
ステップＳ２０１において、リーダライタＡ１２２またはＢ１２３から、タグをスリープ状態から復帰させるコマンドであるウェイクアップ信号がＩＣタグ１０に送信される。ＩＣタグ１０は、ウェイクアップ信号を受信すると、電源回路１０９が電力を供給して、ステップＳ２０３でスリープ状態からウェイクアップ状態に移行する。なお、ＣＰＵ１０１の起動時には、メモリの特定領域（例えば、リセットベクタ）にアクセスし、起動プログラムを読み込みにいく。この特定領域は、他のデバイスが参照する領域とは異なるため、この際コリジョンは発生しないものと考える。
【００３２】
ステップＳ２０４でリーダライタＡ１２２またはＢ１２３が、アクセス要求するためのリクエストコマンドを送信する。すると、ステップＳ２０５において、ＩＣタグ装置のコントローラー１０４は、自身のＵＩＤ等を伝え、これに応答する。その後、ステップＳ２０７でリーダライタＡ１２２またはＢ１２３とＩＣタグ１０（コントローラー１０４）は、通信速度等の条件を相互に交換をする。一方、ＩＣタグ１０内のＣＰＵ１０１は、ステップＳ２０６において待機を開始する。
【００３３】
ＩＣタグ１０との条件の相互交換により、コマンドを送信する状態に移行すると、リーダライタＡ１２２またはＢ１２３は、ステップＳ２０８でコマンドを送信する。ステップＳ２０９で、リーダライタＡ１２２またはＢ１２３から受信したコマンドやデータに基づき、ＩＣタグ１０内のコントローラー１０４は、ステップＳ２０９でメモリアクセスを開始する。ステップＳ２１０でメモリアクセスを終了する。その後、ステップＳ２１１でＣＰＵ１０１は、待機状態を解消し、ステップＳ２１２でメモリアクセスを開始する。
【００３４】
本実施の形態においては、ＣＰＵ１０１が起動後、待機時間設定（Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ）として予め定められた所定時間（Ｔ１＋Ｔ２）待機した後に、ＩＣタグメモリ１０２にアクセスすることにより、ＩＣタグメモリへの同時書き込みを回避する。ここで、Ｔ１は、ＣＰＵが待機を開始してからコントローラー１０４がメモリアクセスを開始するまでの時間であり、Ｔ２は、メモリアクセスを開始してからメモリアクセスを終了するまでの時間である。
【００３５】
なお、リーダライタの機種によっては、Ｔ１は、より短い時間Ｔ１１であるかもしれないし、また、Ｔ２は、より短い時間Ｔ２２かもしれない。そのようなケースにおいては、実際のメモリアクセス開始からメモリアクセス終了までの時間を待機時間とすると、コリジョンが起こり得る。よって、実際のアクセス開始からアクセス終了までの時間Ｔ２より長い時間（Ｔ１＋Ｔ２）を待機時間として予めＣＰＵ１０１側に設定しておくことにより、リーダライタの機種による、ウェイクアップ信号送信後からメモリへのアクセスがなされるまでの時間（Ｔ０＋Ｔ１）の違いを吸収することができる。
【００３６】
［第２実施形態］
図４は、第２実施形態に係るＩＣタグ装置の内部構成を示す構成図である。第１実施形態に係るＩＣタグ装置の内部構成と異なる点は、ＣＰＵ１０１にメモリ３０１を接続させ、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２を記録する点である。なお、本実施形態においても、ＩＣタグの例を具体例として説明しているが、ＩＣタグにかかわらず、複数の入出力インターフェースを有する共有メモリに対してアクセスするデバイス全般を含む。すなわち、共有メモリに対してアクセスする複数のデバイスのうち、いずれか一方に、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２で設定された値の間、待機させることでメモリアクセスのコリジョンを回避する。
【００３７】
なお、本実施形態において、第１実施形態と同様の構成については、同様の参照番号を付与するものとする。
【００３８】
図５は、第２実施形態における、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２に基づき、共有メモリに対してアクセスする複数のデバイスのうち、いずれか一方の動作を待機させる際のフローチャートである。ＩＣタグ１０内のＣＰＵ１０１が、ステップＳ２０６において待機を開始するまでの動作は、第１実施形態と同じであるので省略する。
【００３９】
ＣＰＵ１０１は、メモリ３０１に記録された、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２の値を参照し、Ｔ１＋Ｔ２時間の待機を開始する。ステップＳ２１１でＣＰＵ１０１が待機を終了し、ステップＳ２１２でＩＣタグメモリ１０２にアクセスを行う。すると、リーダライタＡ１２２またはＢ１２３から受信する信号に基づく、コントローラー１０４のアクセスがまだ完了しておらず、コリジョンが発生する。次にＣＰＵ１０１は、ステップＳ２１３において、予め定められたリトライ間隔時間（Ｔ３）待機した後、メモリアクセスをリトライする。この時点においてもコリジョンが発生する。ＣＰＵ１０１は引き続き、ステップＳ２１４において、リトライ間隔時間（Ｔ３）待機した後、メモリアクセスをリトライする。すると、コントローラー１０４のアクセスがその時点では完了されているため、コリジョンが発生せず、メモリアクセスが成功する。ステップＳ２１５において、ＣＰＵ１０１は、待機終了後、リトライ時間（Ｔ３＋Ｔ３）を足して、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２をＴ１＋Ｔ２＋Ｔ３＋Ｔ３に更新するべく、メモリ３０１の内容を書き換える。なお、次回、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２の設定時間（Ｔ１＋Ｔ２＋Ｔ３＋Ｔ３）待機しても、コリジョンが発生する場合は、再びリトライ間隔時間（Ｔ３）後にアクセスし、その後、アクセスが成功すれば、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２をＴ１＋Ｔ２＋Ｔ３＋Ｔ３＋Ｔ３に更新する。
【００４０】
すなわち、ＣＰＵ１０１は、１回のメモリアクセスにおける、最初にコリジョンが発生してからのリトライ回数とリトライ間隔時間（Ｔ３）を乗算した時間を、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２に足すことにより、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２の新たな値とする。
【００４１】
なお、リトライ間隔時間（Ｔ３）の計測開始のタイミングを、ＣＰＵ１０１がアクセスを開始した時点としても、コリジョンを検知してメモリアクセスを中断した時点としてもどちらでも良い。例えば、リトライ間隔時間（Ｔ３）が１秒であれば、ＣＰＵ１０１がアクセスを開始した時点から１秒経過した際、または、ＣＰＵ１０１がメモリアクセスを中断した時点から１秒経過した際にリトライをする。
【００４２】
これとは逆の動作として、最初に、ＣＰＵ１０１が、待機時間（Ｔ１＋Ｔ２）待機後、ＩＣタグメモリ１０２にアクセスした時、コリジョンが発生しなければ、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２をＴ１＋Ｔ２に設定する。その後、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ＝Ｔ１＋Ｔ２より短い時間、例えば、予め設定された調整時間（例えば、Ｔ２２）を減じた時間、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ＝Ｔ１＋Ｔ２―Ｔ２２で、メモリ１０２にアクセスし、コリジョンが起こらなければ、Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２を、Ｔ１＋Ｔ２―Ｔ２２に再設定する。その繰り返しを行い、最適なＶａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ３０２を決定する。
【００４３】
本実施形態によれば、共有メモリにアクセスする他方のデバイス（ＩＣタグの例であれば、リーダライタＡ１２２またはＢ１２３）との通信状況、他方のデバイスの仕様等に準じて、コリジョンを回避するための最適な待ち時間を設定することができる。
【符号の説明】
【００４４】
１  複数の入出力インターフェースを有するメモリ
１０  ＩＣタグ
１１  入出力インターフェース１
２２  入出力インターフェース２
１０１  ＣＰＵ
１０２  ＩＣタグメモリ
１０４  コントローラー
１０５  クロック信号生成回路
１０６  復調回路
１０７  変調回路
１０８  整流回路
１０９  電源回路
１１０  アンテナ
１１１  表示装置等その他デバイス
１１２  アンテナ
１１３  制御部
１２２  リーダライタＡ
１２３  リーダライタＢ
３０１  メモリ
３０２  Ｖａｒｉａｂｌｅ  Ｗａｉｔ  Ｔｉｍｅ
【図１】
2015103107.tif 000003
【図２】
2015103107.tif 000004
【図３】
2015103107.tif 000005
【図４】
2015103107.tif 000006
【図５】
2015103107.tif 000007