JP6497392B2 - アクセス制御方法、バスシステム、および半導体装置 - Google Patents

アクセス制御方法、バスシステム、および半導体装置 Download PDF

Info

Publication number
JP6497392B2
JP6497392B2 JP2016547381A JP2016547381A JP6497392B2 JP 6497392 B2 JP6497392 B2 JP 6497392B2 JP 2016547381 A JP2016547381 A JP 2016547381A JP 2016547381 A JP2016547381 A JP 2016547381A JP 6497392 B2 JP6497392 B2 JP 6497392B2
Authority
JP
Japan
Prior art keywords
write
memory
request
access
transfer
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.)
Active
Application number
JP2016547381A
Other languages
English (en)
Other versions
JPWO2016039198A1 (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JPWO2016039198A1 publication Critical patent/JPWO2016039198A1/ja
Application granted granted Critical
Publication of JP6497392B2 publication Critical patent/JP6497392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本開示は、アクセス制御方法、そのようなアクセス制御方法を用いてアクセス制御を行うバスシステム、およびそのようなバスシステムを備えた半導体装置に関する。
プロセッサは、しばしば、例えばバスおよびメモリコントローラを介してメモリと接続される。そして、プロセッサは、演算処理を行う際、メモリに対してデータを書き込み、あるいはメモリからデータを読み出す。プロセッサがメモリに対してデータを書き込む場合における制御方法としては、例えば、ポステッド転送(バッファラブルともいう)と、ノンポステッド転送がある(例えば、特許文献1)。
ポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了する前に、プロセッサに対してレスポンスを行う。このポステッド転送では、レスポンスを返すタイミングが早くなるため、転送性能が向上する。これにより、システム全体における処理速度の向上が期待できる。しかしながら、プロセッサが、あるアドレスに対してこのような書込リクエストを行った後に読出リクエストを行った場合、最新のデータがメモリにまだ書き込まれていないため、書き換えられる前の古いデータが読み出されるおそれがある。このように、ポステッド転送では、いわゆるコヒーレンシ(データの一貫性)に関する問題が生じるおそれがある。
ノンポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了した後に、プロセッサに対してレスポンスを行う。この場合には、ポステッド転送に比べてレスポンスを返すタイミングが遅いため、転送性能が低下し、システム全体における処理速度が低下するおそれがあるが、コヒーレンシに関する問題の発生を抑えることができる。
米国特許第7194566号明細書
このように、メモリアクセスでは、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることが望まれており、さらなる転送性能の向上が期待されている。
したがって、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができるアクセス制御方法、バスシステム、および半導体装置を提供することが望ましい。
本開示の一実施の形態におけるアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。
本開示の一実施の形態におけるバスシステムは、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。
本開示の一実施の形態における半導体装置は、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。
本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置では、複数のマスタデバイスのうちの一のマスタデバイスにより、アクセスリクエストが生成され、そのアクセスリクエストに基づいて、アクセス対象デバイスへの処理が行われる。その際、スレーブデバイスから一のマスタデバイスへの応答は、一のマスタデバイスに応じた応答タイミングで行われる。
本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置によれば、一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答を行うようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれの効果があってもよい。
本開示の一実施の形態に係るバスシステムの一構成例を表すブロック図である。 図1に示したメモリコントローラの一構成例を表すブロック図である。 図2に示したレスポンス制御部の一構成例を表すブロック図である。 図3に示したレスポンス制御部の一動作例を表す表である。 図1に示した他のメモリコントローラの一構成例を表すブロック図である。 図1に示したバスシステムの一動作例を表す説明図である。 図1に示したバスシステムの他の動作例を表す説明図である。 図1に示したバスシステムの他の動作例を表す説明図である。 比較例1に係るバスシステムの一動作例を表す説明図である。 比較例2に係るバスシステムの一動作例を表す説明図である。 比較例2に係るバスシステムの他の動作例を表す説明図である。 比較例3に係るバスシステムの一動作例を表す説明図である。 比較例3に係るバスシステムの他の動作例を表す説明図である。 変形例に係るレスポンス制御部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一動作例を表す説明図である。 図15に示したバスシステムの他の動作例を表す説明図である。 図15に示したバスシステムに係るレスポンス制御部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一構成例を表すブロック図である。 他の変形例に係るインターコネクト部の一構成例を表すブロック図である。 他の変形例に係るバスシステムの一構成例を表すブロック図である。
以下、本開示の一実施の形態について、図面を参照して詳細に説明する。
[構成例]
(全体構成例)
図1は、一実施の形態に係るバスシステムの一構成例を表すものである。このバスシステム1は、この例では、1チップで構成された、いわゆるSoC(System on Chip)のシステムである。なお、本開示の実施の形態に係るアクセス制御方法および半導体装置は、本実施の形態により具現化されるので、併せて説明する。
バスシステム1は、情報処理部9と、DMA(Direct Memory Access)コントローラ20と、インターコネクト部30と、メモリコントローラ40,60と、メモリ50,70とを備えている。この例では、メモリ50,70を除く回路を1チップに集積している。なお、これに限定されるものではなく、これら全ての回路を1チップに集積してもよい。
情報処理部9は、演算処理を行うものである。情報処理部9は、この例では、キャッシュ10と、2つのコア11,12とを有している。キャッシュ10は、レベル2(L2)キャッシュメモリである。コア11,12は、いわゆるプロセッサコアである。情報処理部9は、バスB1を介してインタ−コネクト部30に接続されている。情報処理部9としては、例えば、ARM社製プロセッサ(例えばCortex-A9 MPCore)、ARM社製レベル2キャッシュコントローラ(例えばL2C−310)などのIP(Intellectual Property)の組み合わせを用いることができる。インタ−コネクト部30との間のバスインタフェースとしては、例えばAXI(Advanced eXtensive Interface)を使用可能である。
キャッシュ10およびコア11,12には、それぞれ、互いに異なる識別子MIが割り当てられている。この例では、識別子MIは8ビットのパラメータである。具体的には、この例では、キャッシュ10の識別子MIは、16進数表記で“0x10”(2進数表記では“00010000”)であり、コア11の識別子MIは“0x11”(2進数表記では“00010001”)であり、コア12の識別子MIは“0x12”(2進数表記では“00010010”)である。キャッシュ10およびコア11,12の識別子MIの上位4ビット(ビットb4〜b7)は、互いに同じである。すなわち、この例では、情報処理部9の各ブロック(キャッシュ10およびコア11,12)における、バスインタフェースを介したデータ転送性能が同じであることを考慮し、識別子MIの上位4ビットを同じにしている。そして、キャッシュ10およびコア11,12の識別子MIの下位4ビット(ビットb0〜b3)は、互いに異なるようにしている。
情報処理部9は、メモリ50やメモリ70に対して書込リクエストを行う場合には、書込アドレスWrADDおよび書込データWrDATAをインターコネクト部30に供給し、インターコネクト部30からレスポンス信号REを受け取るようになっている。書込アドレスWrADDは、アドレス情報に加え、識別子MI、転送モード情報MODEなどを含むものである。転送モード情報MODEは、書込リクエストを行うデバイス(この例では情報処理部9)が、ポステッド転送とノンポステッド転送のどちらを要求するかを示すものである。具体的には、情報処理部9は、ポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“1”に設定し、ノンポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“0”に設定する。また、書込アドレスWrADDは、この他、書き込むデータのビット幅やバースト長に関する情報、セキュリティ情報などを含むようにしてもよい。
なお、バスインタフェースとしてAXIを用いる場合には、転送モード情報MODEは、AXIのパラメータAWCACHE[0]に対応するものである。また、識別子MIを、AXIのサイドバンド信号に割り当てることが可能である。このとき、パラメータAWUSERなどの既存のサイドバンド信号を用いてもよいし、サイドバンド信号を新たに定義してもよい。
また、情報処理部9は、メモリ50やメモリ70に対して読出リクエストを行う場合には、読出アドレスRdADDをインターコネクト部30に供給し、インターコネクト部30から読出データRdDATAを受け取るようになっている。
DMAコントローラ20は、メモリ50,70に対するDMA転送を制御するコントローラである。DMAコントローラ20には、情報処理部9の各ブロックと同様に、識別子MIが割り当てられている。具体的には、この例では、DMAコントローラ20の識別子MIは“0x20”(2進数表記では“00100000”)である。DMAコントローラ20は、情報処理部9と同様に、バスB2を介してインタ−コネクト部30に接続されている。そして、DMAコントローラ20は、メモリ50やメモリ70に対して書込リクエストを行う場合には、情報処理部9と同様に、書込アドレスWrADDおよび書込データWrDATAをインターコネクト部30に供給し、インターコネクト部30からレスポンスREを受け取る。また、DMAコントローラ20は、メモリ50やメモリ70に対して読出リクエストを行う際には、情報処理部9と同様に、読出アドレスRdADDをインターコネクト部30に供給し、インターコネクト部30から読出データRdDATAを受け取るようになっている。
この図では、情報処理部9およびDMAコントローラ20をインターコネクト部30に接続したが、これに限定されるものではなく、他のデバイスを接続してもよい。その場合には、このデバイスに、情報処理部9(キャッシュ10、2つのコア11,12)およびDMAコントローラ20の識別子MIとは異なる識別子MIを割り当てることが望ましい。例えば、DMAコントローラ20とほぼ同じデータ転送性能を有する他のDMAコントローラ120を接続する場合には、例えば、このDMAコントローラ120の識別子MIを“0x21”(2進数表記では“00100001”)にすることができる。すなわち、この例では、DMAコントローラ20,120のデータ転送性能はほぼ同じであることを考慮し、識別子MIの上位4ビットを同じにしている。
インターコネクト部30は、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停するものである。インターコネクト部30は、バスB1を介して情報処理部9に接続され、バスB2を介してDMAコントローラ20に接続され、バスB11を介してメモリコントローラ40に接続され、バスB12を介してメモリコントローラ60に接続されている。
情報処理部9またはDMAコントローラ20がメモリ50に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ40に引き渡し、メモリコントローラ40から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ50に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDを、メモリコントローラ40に引き渡し、メモリコントローラ40から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡す。
同様に、情報処理部9またはDMAコントローラ20がメモリ70に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ60に引き渡し、メモリコントローラ60から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ70に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDをメモリコントローラ60に引き渡し、メモリコントローラ60から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡すようになっている。
メモリコントローラ40は、メモリ50の動作を制御するものである。メモリコントローラ40は、バスB11を介してインターコネクト部30に接続されている。メモリコントローラ40は、インターコネクト部30から供給された書込アドレスWrADDおよび読出アドレスRdADDに基づいて制御コマンドCOMを生成して、その制御コマンドCOMをメモリ50に供給する。また、メモリコントローラ40は、インターコネクト部30から供給された書込アドレスWrADDおよび読出アドレスRdADDに基づいてアドレスADDを生成し、そのアドレスADDをメモリ50に供給する。また、メモリコントローラ40は、インターコネクト部30から供給された書込データWrDATAを、データDATAとしてメモリ50に供給し、また、メモリ50から供給されたデータDATAを、読出データRdDATAとしてインターコネクト部30に供給する。メモリコントローラ40は、メモリ50に対してデータを書き込む場合には、書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44(後述)に一時的に記憶させ、その後に、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行うようになっている。
また、メモリコントローラ40は、レスポンス信号REを生成する機能をも有している。その際、メモリコントローラ40は、識別子MIおよび転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。具体的には、メモリコントローラ40は、後述するように、情報処理部9またはDMAコントローラ20が、メモリ50に対して、ノンポステッド転送(MODE=0)による書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、メモリコントローラ40は、情報処理部9またはDMAコントローラ20が、メモリ50に対して、ポステッド転送(MODE=1)による書込リクエストを行った場合には、識別子MIに基づいて、転送方式を選択する。すなわち、情報処理部9(キャッシュ10、およびコア11,12)が書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、DMAコントローラ20が書込リクエストを行った場合には、内蔵する書込バッファ44(後述)にデータが書き込まれたタイミングでレスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。
このように、メモリコントローラ40では、情報処理部9が書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。これにより、コヒーレンシに関する問題の発生を抑えることができる。すなわち、仮に、情報処理部9は、メモリ50のあるアドレスに対して、ポステッド転送による書込リクエストを行った直後に読出リクエストを行った場合には、書き換えられる前のデータが読み出されてしまうおそれがある。一方、メモリコントローラ40では、情報処理部9が書込リクエストを行う場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するようにした。よって、その直後に情報処理部9がその書込リクエストと同じアドレスに対して読出リクエストを行う場合でも、書き換えられた後のデータが読み出されるため、コヒーレンシに関する問題の発生を抑えることができるようになっている。
メモリコントローラ60は、メモリコントローラ40と同様に、メモリ70の動作を制御するものである。メモリコントローラ60は、バスB12を介してインターコネクト部30に接続されている。また、メモリコントローラ60は、メモリ70に対してデータを書き込む場合には、メモリコントローラ40と同様に、書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ64(後述)に一時的に記憶させ、その後に、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。このメモリコントローラ60は、メモリコントローラ40とは異なり、スヌープ機構を有している。すなわち、メモリコントローラ60は、読出リクエストを受けとった場合において、書込バッファ64に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。このように、メモリ70からデータを読み出すのではなく、書込バッファ64からデータを読み出すことにより、コヒーレンシに関する問題の発生を抑えることができるようになっている。
また、メモリコントローラ60は、メモリコントローラ40と同様に、レスポンス信号REを生成する機能をも有している。その際、メモリコントローラ60は、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。具体的には、メモリコントローラ60は、後述するように、情報処理部9またはDMAコントローラ20が、メモリ70に対して、ノンポステッド転送(MODE=0)による書込リクエストを行った場合には、メモリ70に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ノンポステッド転送が行われる。また、メモリコントローラ60は、情報処理部9またはDMAコントローラ20が、メモリ70に対して、ポステッド転送(MODE=1)による書込リクエストを行った場合には、内蔵する書込バッファ64(後述)にデータが書き込まれたタイミングでレスポンス信号REを生成し、そのレスポンス信号REを、インターコネクト部30を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。
メモリ50,70は、データを記憶するものであり、情報処理部9の作業用メモリとして機能するものである。メモリ50,70は、例えば、DRAM(Dynamic Random Access Memory)を用いて構成されるものである。メモリ50は、メモリコントローラ40から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ40との間でデータDATAをやりとりするものである。同様に、メモリ70は、メモリコントローラ60から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ60との間でデータDATAをやりとりするものである。
(メモリコントローラ40)
図2は、メモリコントローラ40の一構成例を表すものである。メモリコントローラ40は、書込インタフェース41と、読出インタフェース48と、コントローラ49とを有している。
書込インタフェース41は、書込アクセスに関するインタフェースである。具体的には、書込インタフェース41は、インターコネクト部30から供給された書込アドレスWrADDおよび書込データWrDATAを一時的に記憶し、この書込アドレスWrADDおよび書込データWrDATAをコントローラ49に引き渡すようになっている。また、書込インタフェース41は、書込アドレスWrADDに基づいてレスポンス信号REを生成する機能も有している。書込インタフェース41は、書込バッファ44と、レスポンス制御部80と、レスポンス信号生成部43とを有している。
書込バッファ44は、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。そして、書込バッファ44は、コントローラ49からの指示に基づいて、記憶された書込アドレスWrADDおよび書込データWrDATAを、コントローラ49に供給するようになっている。
レスポンス制御部80は、書込アドレスWrADDに基づいてパラメータPWを生成するものである。
図3は、レスポンス制御部80の一構成例である。レスポンス制御部80は、識別子取得部81と、転送モード情報取得部85と、レジスタ82と、論理積演算部83と、比較部84と、論理積回路86とを有している。
識別子取得部81は、書込アドレスWrADDから識別子MIを取得するものである。転送モード情報取得部85は、書込アドレスWrADDから転送モード情報MODEを取得するものである。
レジスタ82は、パラメータMIMask,MIMatchを記憶するものである。パラメータMImask,MIMatchは、それぞれ8ビットのパラメータである。メモリコントローラ40では、パラメータMImaskは、16進数表記で“0x10”(2進数表記では“00010000”)に設定され、パラメータMIMatchは“0x10”に設定されている。
論理積回路83は、識別子MIの各ビットの値と、パラメータMIMask(この例では“0x10”)の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。すなわち、論理積回路83は、この例では、識別子MIのビットb4以外のビットをマスクする。具体的には、論理積回路83は、ビットb4の値が識別子MIのビットb4の値であり、ビットb0〜b3,b5〜b7の値が“0”であるパラメータを生成して出力するようになっている。
比較部84は、論理積演算部83の出力パラメータと、8ビットのパラメータMIMatch(この例では“0x10”)とを比較して、その比較結果をパラメータDPWとして出力するものである。具体的には、比較部84は、これらのパラメータが一致した場合にはパラメータDPWを“1”とし、一致しない場合にはパラメータDPWを“0”にするようになっている。
図4は、識別子MIとパラメータDPWとの関係を表すものである。メモリコントローラ40では、情報処理装置9が書込リクエストを行う場合には、パラメータDPWは“1”になり、DMAコントローラ20が書込リクエストを行う場合には、パラメータDPWは“0”になる。すなわち、情報処理装置9が書込リクエストを行う場合には、情報処理装置9の識別子MIのビットb4が“1”であるため、パラメータDPWは“1”になり、DMAコントローラ20が書込リクエストを行う場合には、DMAコントローラ20の識別子MIのビットb4が“0”であるため、パラメータDPWは“0”になる。このように、レスポンス制御部80では、識別子MIのビットb4の値に基づいて、パラメータDPWを生成するようになっている。
論理積回路86は、パラメータDPWの反転値と、転送モード情報MODEの値との論理積を求め、その結果をパラメータPWとして出力するものである。パラメータPWは、値が“1”である場合にはポステッド転送を示し、値が“0”である場合にはノンポステッド転送を示すものである。
この構成により、レスポンス制御部80は、情報処理装置9が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“1”になるため、パラメータPWを“0”にする。また、レスポンス制御部80は、DMAコントローラ20が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“0”になるため、転送モード情報MODEの値をパラメータPWとして出力するようになっている。
レスポンス信号生成部43は、パラメータPWおよびコントローラ49から供給される制御信号に基づいて、レスポンス信号REを生成するものである。具体的には、レスポンス信号生成部43は、レスポンス制御部80から、値が“1”であるパラメータPWを受け取った場合には、そのタイミングでレスポンス信号REを生成する。言い換えれば、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。すなわち、この場合には、ポステッド転送が行われる。また、レスポンス信号生成部43は、値が“0”であるパラメータPWを受け取った場合には、メモリ50に対してデータの書き込みが完了したことを示す制御信号をコントローラ49から受け取ったタイミングで、レスポンス信号REを生成する。すなわち、この場合には、ノンポステッド転送が行われるようになっている。
読出インタフェース48は、読出アクセスに関するインタフェースである。読出インタフェース48は、インターコネクト部30から供給された読出アドレスRdADDに基づいて所定の処理を行い、この読出アドレスRdADDをコントローラ49に引き渡すとともに、コントローラ49から供給された読出データRdDATAに基づいて所定の処理を行い、この読出データRdDATAをインターコネクト部30に引き渡すようになっている。
コントローラ49は、書込インタフェース41および読出インタフェース48からの指示に基づいて、メモリ50の動作を制御するものである。具体的には、コントローラ49は、書込アドレスWrADDおよび読出アドレスRdADDに基づいて、書込コマンドや読出コマンドなどの制御コマンドCOMを生成して、その制御コマンドCOMをメモリ50に供給する。また、コントローラ49は、書込アドレスWrADDおよび読出アドレスRdADDに基づいてアドレスADDを生成し、そのアドレスADDをメモリ50に供給する。また、コントローラ49は、書込インタフェース41から供給された書込データWrDATAを、データDATAとしてメモリ50に供給し、また、メモリ50から供給されたデータDATAを、読出データRdDATAとして読出インタフェース48に供給するようになっている。
(メモリコントローラ60)
図5は、メモリコントローラ60の一構成例を表すものである。メモリコントローラ60は、読出インタフェース68と、書込インタフェース61と、コントローラ69とを有している。
読出インタフェース68は、読出インタフェース48と同様に、読出アクセスに関するインタフェースである。読出インタフェース68は、読出インタフェース48とは異なり、スヌープ機構を有している。すなわち、読出インタフェース68は、読出リクエストを受け取った場合において、書込インタフェース61の書込バッファ64(後述)に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。これにより、メモリコントローラ60およびメモリ70では、コヒーレンシに関する問題の発生を抑えることができるようになっている。
書込インタフェース61は、書込インタフェース41と同様に、書込アクセスに関するインタフェースである。書込インタフェース61は、書込バッファ64と、レスポンス制御部90と、レスポンス信号生成部63とを有している。
書込バッファ64は、書込バッファ44と同様に、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。また、書込バッファ64は、読出インタフェース68からの指示に基づいて、書込バッファ64に記憶された書込データWrDATAを読出インタフェース68に供給するようになっている。
レスポンス制御部90は、レスポンス制御部80と同様に、書込アドレスWrADDに基づいてパラメータPWを生成するものである。レスポンス制御部90の構成は、レスポンス制御部80(図3)と同じである。ここで、レスポンス制御部90では、パラメータMIMaskは“0x00”に設定されている。これにより、メモリコントローラ60では、図4に示したように、情報処理装置9およびDMAコントローラ20のどちらがメモリ70に対して書込リクエストを行っても、パラメータDPWは“0”になる。よって、レスポンス制御部90は、転送モード情報MODEの値を、パラメータPWとして出力するようになっている。
レスポンス信号生成部63は、レスポンス信号生成部43と同様に、パラメータPWおよびコントローラ69から供給される制御信号に基づいて、レスポンス信号REを生成するものである。コントローラ69は、コントローラ49と同様に、書込インタフェース61および読出インタフェース68からの指示に基づいて、メモリ70の動作を制御するものである。
ここで、キャッシュ10、コア11,12、およびDMAコントローラ20は、本開示における「マスタデバイス」の一具体例に対応し、メモリコントローラ40は、本開示における「スレーブデバイス」の一具体例に対応する。メモリ50は、本開示における「アクセス対象デバイス」の一具体例に対応する。書込リクエストは、本開示における「アクセスリクエスト」の一具体例に対応する。転送モード情報MODEは、本開示における「要求情報」の一具体例に対応する。
[動作および作用]
続いて、本実施の形態のバスシステム1の動作および作用について説明する。
(全体動作概要)
まず、図1などを参照して、バスシステム1の全体動作概要を説明する。情報処理部9は、演算処理を行う。DMAコントローラ20は、DMA転送を制御する。インターコネクト部30は、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停する。メモリコントローラ40は、メモリ50の動作を制御するとともに、レスポンス信号REを生成する。その際、メモリコントローラ40は、識別子MIおよび転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定する。メモリコントローラ60は、メモリ70の動作を制御するとともに、レスポンス信号REを生成する。その際、メモリコントローラ60は、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定する。メモリ50,70は、データを記憶する。
次に、3つの動作例を挙げて、バスシステム1の詳細動作について説明する。
(動作例1)
まず、情報処理部9のキャッシュ10が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例1について説明する。
図6は、バスシステム1の動作例1を表すものである。図6において、太い実線で示した信号は、レスポンス信号REを生成するタイミングより前にアクティブになる信号を示し、太い破線で示した信号は、レスポンス信号REを生成するタイミングより後にアクティブになる信号を示す。
まず、情報処理部9のキャッシュ10が、メモリ50に対するポステッド転送による書込リクエストを行う。具体的には、情報処理部9は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、キャッシュ10の識別子MI(“0x10”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。すなわち、キャッシュ10は、ポステッド転送を要求しているため、転送モード情報MODEは“1”に設定される。そして、インターコネクト部30は、情報処理部9から供給された書込アドレスWrADDおよび書込データWrDATAを、メモリコントローラ40に引き渡す。そして、メモリコントローラ40は、インターコネクト部30から、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ44に一時的に記憶させ、その後に、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x10”であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、レスポンス信号生成部43は、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1では、このようにして、ノンポステッド転送が行われる。
情報処理部9は、ポステッド転送による書込リクエストを行った後に、その書込リクエストを行ったアドレスに対して読出リクエストを行う場合がある。具体的には、例えば、いわゆるエビクション動作を行う場合に、そのようなケースが起こりうる。例えば、ARM社製プロセッサCortex-A9 MPCoreおよびレベル2キャッシュコントローラL2C−310を用いて情報処理部9を構成した場合において、エビクション動作を行う際、転送モード情報MODE(AWCACHE[0])は“1”に設定される。すなわち、この場合には、情報処理部9はポステッド転送による書込リクエストを行う。このような場合において、メモリコントローラ40は、上述したように、ノンポステッド転送を行うべきと判断し、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。これにより、書込アクセスの後の読出アクセスにおいて、メモリ50から、書き換えられる前の古いデータが読み出されるおそれを低減することができるため、コヒーレンシに関する問題の発生を抑えることができる。
このように、バスシステム1では、情報処理部9がメモリ50に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができる。
(動作例2)
次に、DMAコントローラ20が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例2について説明する。
図7は、バスシステム1の動作例2を表すものである。まず、DMAコントローラ20が、メモリ50に対するポステッド転送による書込リクエストを行う。具体的には、DMAコントローラ20は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、DMAコントローラ20の識別子MI(“0x20”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。メモリコントローラ40は、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。そして、メモリコントローラ40は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ44に一時的に記憶させる。
メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x20”であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40は、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。
DMAコントローラ20は、しばしば、複数の書込リクエストにより一連の書込転送を行う。以下、4回の書込リクエストにより、1キロバイト(=4×256バイト)の転送を行う場合を例に説明する。このような場合には、DMAコントローラ20は、例えば、ポステッド転送による書込リクエストを3回行った後に、ノンポステッド転送による書込リクエストを1回行う。このとき、メモリコントローラ40は、リクエスト通りに、最初の3回の書込リクエストに対してポステッド転送を行うべきと判断し、その後の1回の書込リクエストに対してノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、最初の3回の書込リクエストに対してレスポンスを返すタイミングを早くすることができるため、転送性能が向上する。また、その後の1回の書込リクエストに対しては、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するため、コヒーレンシに関する問題の発生を抑えることができる。
このように、バスシステム1では、DMAコントローラ20がメモリ50に対して書込リクエストを行う場合には、メモリコントローラ40は、そのリクエスト通りに、ポステッド転送またはノンポステッド転送を行う。すなわち、DMAコントローラ20は、きめ細やかに書込リクエストを行うことができるので、メモリコントローラ40は、その書込リクエストに従うようにした。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
(動作例3)
次に、情報処理部9のキャッシュ10が、メモリ70に対して、ポステッド転送による書込リクエストを行う動作例3について説明する。
図8は、バスシステム1の動作例3を表すものである。まず、情報処理部9のキャッシュ10が、メモリ70に対するポステッド転送による書込リクエストを行う。具体的には、情報処理部9は、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、キャッシュ10の識別子MI(“0x10”)、および、値が“1”である転送モード情報MODE(MODE=1)が含まれている。メモリコントローラ60は、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。そして、メモリコントローラ60は、その書込アドレスWrADDおよび書込データWrDATAを、書込バッファ64に一時的に記憶させる。
メモリコントローラ60のレスポンス制御部90は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、メモリコントローラ60では、パラメータDPWが“0”であるため(図4)、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ64にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ60は、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ60が読出リクエストを受け取り、書込バッファ64に読み出したいデータが記憶されている場合には、メモリコントローラ60は、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。
このように、バスシステム1では、情報処理部9がメモリ70に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ60は、そのリクエスト通りに、ポステッド転送を行うべきと判断する。これにより、バスシステム1では、レスポンスを返すタイミングが早くすることができるため、転送性能が向上する。これにより、バスシステム1では、システム全体における処理速度を高めることができる。特に、ポステッド転送では、メモリコントローラ60が有するスヌープ機構を有効に活用することができるため、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
次に、いくつかの比較例と対比して、本実施の形態の作用を説明する。
(比較例1)
図9は、比較例1に係るバスシステム1Rの一例を表すものである。バスシステム1Rは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Rと、メモリ50とを備えている。情報処理部9RおよびDMAコントローラ20Rは、識別子MIが割り当てられていないものである。メモリコントローラ40Rは、スヌープ機構を有するものである。また、メモリコントローラ40Rは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。
この図9の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Rは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Rは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させる。
メモリコントローラ40Rは、転送モード情報MODEの値が“1”である為、内蔵する書込バッファにデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40Rは、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1Rでは、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ40Rが読出リクエストを受け取り、書込バッファに読み出したいデータが記憶されている場合には、メモリコントローラ40Rは、この書込バッファからデータを読み出し、読出データRdDATAとして出力する。
比較例1に係るバスシステム1Rでは、メモリコントローラ40Rにスヌープ機構を設けたので、ポステッド転送を行う場合でも、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、スヌープ機構は、回路の規模が大きく、コストが上昇するおそれがある。
一方、本実施の形態に係るバスシステム1では、情報処理部9がポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、スヌープ機構を設けずにコヒーレンシに関する問題の発生を抑えることができるため、回路規模を小さくすることができ、コストの上昇を抑えることができる。
(比較例2)
図10,11は、比較例2に係るバスシステム1Sの一例を表すものである。バスシステム1Sは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Sと、メモリ50とを備えている。メモリコントローラ40Sは、スヌープ機構を有しないものである。また、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するものである。
図10の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Sは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Sは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。メモリコントローラ40Sは、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1Sでは、このようにして、ノンポステッド転送が行われる。
図11の例では、DMAコントローラ20Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、DMAコントローラ20Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Sは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Sは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。メモリコントローラ40Sは、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1Sでは、このようにして、ノンポステッド転送が行われる。
比較例2に係るバスシステム1Sでは、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、DMAコントローラ20Rがポステッド転送による書込リクエストを行った場合にもノンポステッド転送を行うため、システム全体における処理速度が低下するおそれがある。すなわち、DMAコントローラ20Rは、書込アクセスを行った直後に、同じアドレスに対して読出アクセスを行う可能性が低い。よって、DMAコントローラ20Rからのアクセスに対して、このようにレスポンスを返すタイミングを遅くすると、転送性能が低くなってしまい、システム全体における処理速度が低下してしまうおそれがある。
一方、本実施の形態に係るバスシステム1では、メモリコントローラ46が、識別子MIに基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を行い、DMAコントローラ20がポステッド転送による書込リクエストを行う場合にはポステッド転送を行うことができる。このように、バスシステム1では、書込リクエストを行うデバイスによって、異なる転送を行うことができるようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。
(比較例3)
図12,13は、比較例3に係るバスシステム1Tの一例を表すものである。バスシステム1Tは、情報処理部9Tと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40T,60Tと、メモリ50,70とを備えている。情報処理部9Tは、メモリ50,70に対して、常にノンポステッド転送による書込リクエストを行うものである。メモリコントローラ40Tは、スヌープ機構を有しないものであり、メモリコントローラ60Tは、スヌープ機構を有するものである。メモリコントローラ40T,60Tは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。
図12の例では、情報処理部9Tが、メモリ50に対してノンポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Tが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“0”である転送モード情報MODE(MODE=0)が含まれている。そして、メモリコントローラ40Tは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Tは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。そして、メモリコントローラ40Tは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Tでは、このようにして、ノンポステッド転送が行われる。
図13の例では、情報処理部9Tが、メモリ70に対してノンポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Tが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“0”である転送モード情報MODE(MODE=0)が含まれている。そして、メモリコントローラ60Tは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ60Tは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。そして、メモリコントローラ60Tは、メモリ70に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Tでは、このようにして、ノンポステッド転送が行われる。また、その後に、メモリコントローラ60Tが読出リクエストを受け取り、書込バッファに読み出したいデータが記憶されている場合には、メモリコントローラ60Tは、この書込バッファからデータを読み出し、読出データRdDATAとして出力する。
比較例3に係るバスシステム1Tでは、情報処理部9Tが常にノンポステッド転送による書込リクエストを行うようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、メモリコントローラ60Tがスヌープ機構を有するにも関わらず、常にノンポステッド転送を行うため、スヌープ機構を有効に働かせることができず、性能を発揮することができない。
一方、本実施の形態に係るバスシステム1では、メモリコントローラ40,60が、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合には、スヌープ機構を有しないメモリコントローラ40は、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラ60は、ポステッド転送を選択することにより転送性能を高めることができる。このように、スヌープ機構を有するデバイスとスヌープ機構を有しないデバイスが混在する場合でも、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。
[効果]
以上のように本実施の形態では、識別子に基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、情報処理部がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、DMAコントローラがポステッド転送による書込リクエストを行う場合にはポステッド転送を選択することにより、転送性能を高めることができる。
本実施の形態では、複数のメモリコントローラが、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、スヌープ機構を有しないメモリコントローラは、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラは、ポステッド転送を選択することにより転送性能を高めることができる。
[変形例1]
上記実施の形態では、レスポンス制御部80において、1組のパラメータMIMask,MIMatchを用いたが、これに限定されるものではなく、これに代えて、複数組のパラメータMIMask,MIMatchを用いてもよい。図14に、2組のパラメータMIMask,MIMatchを用いる場合の例を示す。このレスポンス制御部80Aは、レジスタ82Aと、論理積演算部831,832と、比較部841,842と、論理和回路87Aとを有している。レジスタ82Aは、パラメータMIMask1,MIMatch1およびパラメータMIMask2,MIMatch2を記憶するものである。論理積演算部831は、識別子MIの各ビットの値と、パラメータMIMask1の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。比較部841は、論理積演算部831の出力パラメータと、8ビットのパラメータMIMatch1とを比較して、その比較結果を出力するものである。論理積演算部832は、識別子MIの各ビットの値と、パラメータMIMask2の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。比較部842は、論理積演算部832の出力パラメータと、8ビットのパラメータMIMatch2とを比較して、その比較結果を出力するものである。論理和回路87Aは、比較部841における比較結果と、比較部842における比較結果との論理和を求めて、パラメータDPWとして出力するものである。このように、複数組のパラメータMIMask,MIMatchを用いることにより、より高い自由度で、書込アクセスを制御することができる。
[変形例2]
上記実施の形態では、メモリコントローラ40は、識別子MIに基づいて書込リクエストを行うデバイスを特定したが、これに限定されるものではない。以下に、本変形例について、詳細に説明する。
図15,16は、本変形例に係るバスシステム1Bの一例を表すものである。バスシステム1Bは、情報処理部9Bと、DMAコントローラ20Bと、インターコネクト部30と、メモリコントローラ40B,60Bと、メモリ50,70とを備えている。図17は、メモリコントローラ40B,60Bに係るレスポンス制御部80Bの一構成例を表すものである。
情報処理部9BおよびDMAコントローラ20Bは、転送(アクセス)ごとに、転送識別子IDを付与するものである。この例では、情報処理部9Bが付与する転送識別子IDは、0以上127以下であり。DMAコントローラ20Bが付与する転送識別子IDは、128以上255以下である。そして、情報処理部9BおよびDMAコントローラ20Bは、この転送識別子IDを含む書込アドレスWrADDを生成するようになっている。メモリコントローラ40B,60Bは、書込アドレスWrADDに含まれる転送識別子IDを用いて、書込リクエストや読出リクエストを行ったデバイスを識別可能に構成されたものである。すなわち、上記実施の形態に係るメモリコントローラ40,60は、識別子MIを用いて、書込リクエストや読出リクエストを行ったデバイスを識別できるようにしたが、このメモリコントローラ40B,60Bは、転送識別子IDを用いて、書込リクエストや読出リクエストを行ったデバイスを識別できるようにしている。
レスポンス制御部80Bは、転送識別子取得部81Bと、レジスタ82Bとを有している。転送識別子取得部81Bは、書込アドレスWrADDから転送識別子IDを取得するものである。レジスタ82Bは、パラメータIDMask,IDMatchを記憶するものである。パラメータIDmaskは、16進数表記で“0x80”(2進数表記では“10000000”)に設定され、パラメータIDMatchは、“0x00”に設定されている。
図15の例では、情報処理部9Bが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Bが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、0以上127以下の転送識別子IDと、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Bは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Bは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44に一時的に記憶させ、その後に、その書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが0以上127以下であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、メモリコントローラ40Bは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ノンポステッド転送が行われる。
図16の例では、DMAコントローラ20Bが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、DMAコントローラ20Bが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、128以上255以下の転送識別子IDと、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Bは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Bは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ44に一時的に記憶させる。
メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが128以上255以下であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、メモリコントローラ40Bは、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ポステッド転送が行われる。そして、メモリコントローラ40Bは、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。
このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。なお、これに限定されるものではなく、例えば、情報処理部とDMAコントローラがアクセスするメモリ領域(アドレス領域)を分け、メモリコントローラが、アドレス情報に基づいて書込リクエストを行うデバイスを特定するようにしてもよい。
[変形例3]
上記実施の形態では、情報処理部9およびDMAコントローラ20が、識別子MIを含む書込アドレスWrADDを生成したが、これに限定されるものではなく、これに代えて、例えば、図18に示すバスシステム1Cのように、インターコネクト部が、識別子MIを含む書込アドレスWrADDを生成してもよい。このバスシステム1Cは、情報処理部9Cと、DMAコントローラ20Cと、インターコネクト部30Cと、メモリコントローラ40,60と、メモリ50,70とを備えている。情報処理部9CおよびDMAコントローラ20Cは、識別子MIを含まない書込アドレスWrADDを生成するものである。インターコネクト部30Cは、識別子生成部31Cと、識別子生成部32Cとを有している。識別子生成部31Cは、情報処理部9Cから供給された書込アドレスWrADDに、情報処理部9Cの識別子MI(例えば“0x10”)を追加するものである。識別子生成部32Cは、DMAコントローラ20Cから供給された書込アドレスWrADDに、DMAコントローラ20Cの識別子MI(例えば“0x20”)を追加するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。
[変形例4]
上記実施の形態では、メモリコントローラ40,60が、レスポンス信号REの生成タイミングを制御したが、これに限定されるものではなく、これに代えて、例えば、インターコネクト部がレスポンス信号REの生成タイミングを制御してもよい。以下に、本変形例に係るインターコネクト部30Dについて、詳細に説明する。
図19は、インターコネクト部30Dの一構成例を表すものである。インターコネクト部30Dは、レスポンス制御部33D,35Dと、レスポンス信号生成部34D,36Dと、処理部37Dとを有している。レスポンス制御部33Dは、レスポンス制御部80(図3)と同様に、情報処理部9CからバスB1を介して供給された書込アドレスWrADDに基づいて、パラメータPWを生成するものである。レスポンス信号生成部34Dは、レスポンス信号生成部43と同様に、レスポンス制御部33Dが生成したパラメータPWおよび処理部37Dから供給された制御信号に基づいてレスポンス信号REを生成し、このレスポンス信号REをバスB1を介して情報処理部9Cに供給するものである。レスポンス制御部35Dは、レスポンス制御部80(図3)と同様に、DMAコントローラ20からバスB2を介して供給された書込アドレスWrADDに基づいて、パラメータPWを生成するものである。レスポンス信号生成部36Dは、レスポンス信号生成部43と同様に、レスポンス制御部35Dが生成したパラメータPWおよび処理部37Dから供給された制御信号に基づいてレスポンス信号REを生成し、このレスポンス信号REをバスB2を介してDMAコントローラ20に供給するものである。処理部37Dは、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセスを調停するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。
以上、実施の形態およびいくつかの変形例を挙げて本技術を説明したが、本技術はこれらの実施の形態等には限定されず、種々の変形が可能である。
例えば、上記実施の形態等では、インターコネクト部を1つ設けたが、これに限定されるものではなく、これに代えて、図20に示すバスシステム2のように複数のインターコネクト部(この例では2つのインターコネクト部131,132)を設けてもよい。この例では、情報処理部9およびDMAコントローラ20は、2つのインターコネクト部131,132を介して、メモリ50,70にアクセスする。
また、例えば、上記実施の形態等では、本技術をメモリアクセスに適用したが、これに限定されるものではなく、リクエストに対してレスポンスを行う様々な用途に適用することができる。
なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
なお、本技術は以下のような構成とすることができる。
(1)複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、
前記アクセスリクエストに基づいて、スレーブデバイスに、前記アクセスリクエストを生成した前記一のマスタデバイスを特定させ、
前記スレーブデバイスに、その特定された前記一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスへの応答をさせる
アクセス制御方法。
(2)前記応答タイミングは、前記スレーブデバイスが前記アクセスリクエストを受け取った第1のタイミング、または、前記アクセス対象デバイスが前記アクセスリクエストに基づく処理を終了した第2のタイミングである
前記(1)に記載のアクセス制御方法。
(3)前記アクセスリクエストは、前記応答タイミングについての前記一のマスタデバイスの要求を示す要求情報を含み、
前記スレーブデバイスに応答させる際、特定された前記一のマスタデバイス、および前記要求情報に基づいて、前記応答タイミングを決定させる
前記(2)に記載のアクセス制御方法。
(4)前記応答タイミングを決定させる際、前記要求情報が前記第1のタイミングを示す場合には、特定された前記一のマスタデバイスに基づいて、前記応答タイミングを決定させる
前記(3)に記載のアクセス制御方法。
(5)前記応答タイミングを決定させる際、前記要求情報が前記第2のタイミングを示す場合には、前記第2のタイミングを前記応答タイミングにする
前記(3)または(4)に記載のアクセス制御方法。
(6)前記スレーブデバイスはバッファメモリを有し、
前記第1のタイミングは、前記アクセスリクエストを前記バッファメモリに記憶したタイミングである
前記(2)から(5)のいずれかに記載のアクセス制御方法。
(7)前記複数のマスタデバイスに、互いに異なる識別子を割り当て、
前記一のマスタデバイスを特定させる際、前記識別子に基づいて特定させる
前記(1)から(6)のいずれかに記載のアクセス制御方法。
(8)前記アクセスリクエストを生成させる際、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
前記(7)に記載のアクセス制御方法。
(9)前記一のマスタデバイスおよび前記スレーブデバイスの間の信号経路上のデバイスに、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
前記(7)に記載のアクセス制御方法。
(10)前記スレーブデバイスは、前記アクセス対象デバイスを制御するものである
前記(1)から(9)のいずれかに記載のアクセス制御方法。
(11)前記アクセス対象デバイスはメモリであり、
前記アクセスリクエストは書込リクエストである
前記(1)から(10)のいずれかに記載のアクセス制御方法。
(12)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
を備えたバスシステム。
(13)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
を備えた半導体装置。
本出願は、日本国特許庁において2014年9月10日に出願された日本特許出願番号2014−183777号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。
当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

Claims (13)

  1. 複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、
    前記アクセスリクエストに基づいて、スレーブデバイスに、前記アクセスリクエストを生成した前記一のマスタデバイスを特定させ、
    前記スレーブデバイスに、その特定された前記一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスへの応答をさせる
    アクセス制御方法。
  2. 前記応答タイミングは、前記スレーブデバイスが前記アクセスリクエストを受け取った第1のタイミング、または、前記アクセス対象デバイスが前記アクセスリクエストに基づく処理を終了した第2のタイミングである
    請求項1に記載のアクセス制御方法。
  3. 前記アクセスリクエストは、前記応答タイミングについての前記一のマスタデバイスの要求を示す要求情報を含み、
    前記スレーブデバイスに応答させる際、特定された前記一のマスタデバイス、および前記要求情報に基づいて、前記応答タイミングを決定させる
    請求項2に記載のアクセス制御方法。
  4. 前記応答タイミングを決定させる際、前記要求情報が前記第1のタイミングを示す場合には、特定された前記一のマスタデバイスに基づいて、前記応答タイミングを決定させる
    請求項3に記載のアクセス制御方法。
  5. 前記応答タイミングを決定させる際、前記要求情報が前記第2のタイミングを示す場合には、前記第2のタイミングを前記応答タイミングにする
    請求項3に記載のアクセス制御方法。
  6. 前記スレーブデバイスはバッファメモリを有し、
    前記第1のタイミングは、前記アクセスリクエストを前記バッファメモリに記憶したタイミングである
    請求項2に記載のアクセス制御方法。
  7. 前記複数のマスタデバイスに、互いに異なる識別子を割り当て、
    前記一のマスタデバイスを特定させる際、前記識別子に基づいて特定させる
    請求項1に記載のアクセス制御方法。
  8. 前記アクセスリクエストを生成させる際、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
    請求項7に記載のアクセス制御方法。
  9. 前記一のマスタデバイスおよび前記スレーブデバイスの間の信号経路上のデバイスに、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
    請求項7に記載のアクセス制御方法。
  10. 前記スレーブデバイスは、前記アクセス対象デバイスを制御するものである
    請求項1に記載のアクセス制御方法。
  11. 前記アクセス対象デバイスはメモリであり、
    前記アクセスリクエストは書込リクエストである
    請求項1に記載のアクセス制御方法。
  12. アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
    前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
    を備えたバスシステム。
  13. アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
    前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
    を備えた半導体装置。
JP2016547381A 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置 Active JP6497392B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014183777 2014-09-10
JP2014183777 2014-09-10
PCT/JP2015/074640 WO2016039198A1 (ja) 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置

Publications (2)

Publication Number Publication Date
JPWO2016039198A1 JPWO2016039198A1 (ja) 2017-06-22
JP6497392B2 true JP6497392B2 (ja) 2019-04-10

Family

ID=55458950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016547381A Active JP6497392B2 (ja) 2014-09-10 2015-08-31 アクセス制御方法、バスシステム、および半導体装置

Country Status (3)

Country Link
US (1) US11392517B2 (ja)
JP (1) JP6497392B2 (ja)
WO (1) WO2016039198A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423563B2 (en) 2017-10-13 2019-09-24 International Business Machines Corporation Memory access broker system with application-controlled early write acknowledgment support and identification of failed early write acknowledgment requests to guarantee in-order execution of memory requests of applications
JP6946168B2 (ja) * 2017-12-22 2021-10-06 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6226563A (ja) 1985-07-26 1987-02-04 Nec Corp バス要求制御回路
US6751696B2 (en) * 1990-04-18 2004-06-15 Rambus Inc. Memory device having a programmable register
US5805837A (en) * 1996-03-21 1998-09-08 International Business Machines Corporation Method for optimizing reissue commands in master-slave processing systems
KR100644596B1 (ko) * 2000-07-27 2006-11-10 삼성전자주식회사 버스 시스템 및 그 버스 중재방법
JP3923715B2 (ja) 2000-09-29 2007-06-06 株式会社東芝 メモリカード
US7194566B2 (en) * 2002-05-03 2007-03-20 Sonics, Inc. Communication system and method with configurable posting points
US7640392B2 (en) * 2005-06-23 2009-12-29 Qualcomm Incorporated Non-DRAM indicator and method of accessing data not stored in DRAM array
US7203780B2 (en) * 2005-02-22 2007-04-10 Kabushiki Kaisha Toshiba System and method for facilitating communication between devices on a bus using tags
JP2006251923A (ja) 2005-03-08 2006-09-21 Oki Electric Ind Co Ltd 先読み制御方法
JP2006293927A (ja) * 2005-04-14 2006-10-26 Toshiba Corp ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
KR101699781B1 (ko) * 2010-10-19 2017-01-26 삼성전자주식회사 시스템 온 칩 및 그것의 데이터 중재 방법
KR20120092220A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 인터페이스 장치 및 이를 포함하는 시스템
US20130124764A1 (en) * 2011-11-11 2013-05-16 Lantiq Deutschland Gmbh Method of transaction and event ordering within the interconnect

Also Published As

Publication number Publication date
JPWO2016039198A1 (ja) 2017-06-22
US11392517B2 (en) 2022-07-19
US20170235688A1 (en) 2017-08-17
WO2016039198A1 (ja) 2016-03-17

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US20190065266A1 (en) Apparatus and method of managing shared resources in achieving io virtualization in a storage device
EP1987434B1 (en) Methods and apparatus for providing independent logical address space and access management
US20080126643A1 (en) Semiconductor circuit
US10079916B2 (en) Register files for I/O packet compression
JP2010152527A (ja) ユーザレベルdmaとメモリアクセス管理を提供する方法と装置
KR102106261B1 (ko) 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
US20220179792A1 (en) Memory management device
WO2016041191A1 (zh) 读写数据的方法、装置、存储设备和计算机系统
JP5499987B2 (ja) 共有キャッシュメモリ装置
US10019358B2 (en) Bank address remapping to load balance memory traffic among banks of memory
JP6497392B2 (ja) アクセス制御方法、バスシステム、および半導体装置
JP5551201B2 (ja) メモリ制御装置
US20240086093A1 (en) Memory controller and data processing system with memory controller
TW201935259A (zh) 半導體裝置及匯流排產生器
CN110035021B (zh) 针对原子数据访问请求进行的资源分配
JP6416488B2 (ja) 半導体装置
KR20200088391A (ko) 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱
US20230110369A1 (en) Auxiliary processor and electronic system comprising the same
JP7363344B2 (ja) メモリ制御装置、および制御方法
WO2013031130A1 (ja) 情報処理装置、そのアクセス制御方法及び集積回路
JP6235088B2 (ja) 情報処理装置
JP6862697B2 (ja) 回路装置及び電子機器
JP2014170262A (ja) バスモジュール及びデータ処理装置
JP2013050772A (ja) データ転送制御装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190225

R151 Written notification of patent or utility model registration

Ref document number: 6497392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151