図面 (/)

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

出願人 ソニー株式会社
発明者 田中理生
出願日 2015年8月31日 (4年0ヶ月経過) 出願番号 2016-547381
公開日 2017年6月22日 (2年2ヶ月経過) 公開番号 WO2016-039198
状態 特許登録済
技術分野 メモリシステム
主要キーワード レスポンス制御 読出リクエスト 転送識別子 制御コマ 転送モード情報 書込リクエスト サイドバンド信号 書込転送
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年6月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

本開示のアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。

概要

背景

プロセッサは、しばしば、例えばバスおよびメモリコントローラを介してメモリと接続される。そして、プロセッサは、演算処理を行う際、メモリに対してデータを書き込み、あるいはメモリからデータを読み出す。プロセッサがメモリに対してデータを書き込む場合における制御方法としては、例えば、ポステッド転送バッファラブルともいう)と、ノンポステッド転送がある(例えば、特許文献1)。

ポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了する前に、プロセッサに対してレスポンスを行う。このポステッド転送では、レスポンスを返すタイミングが早くなるため、転送性能が向上する。これにより、システム全体における処理速度の向上が期待できる。しかしながら、プロセッサが、あるアドレスに対してこのような書込リクエストを行った後に読出リクエストを行った場合、最新のデータがメモリにまだ書き込まれていないため、書き換えられる前の古いデータが読み出されるおそれがある。このように、ポステッド転送では、いわゆるコヒーレンシ(データの一貫性)に関する問題が生じるおそれがある。

ノンポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了した後に、プロセッサに対してレスポンスを行う。この場合には、ポステッド転送に比べてレスポンスを返すタイミングが遅いため、転送性能が低下し、システム全体における処理速度が低下するおそれがあるが、コヒーレンシに関する問題の発生を抑えることができる。

概要

本開示のアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。

目的

したがって、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができるアクセス制御方法、バスシステム、および半導体装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項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

アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスとを備えた半導体装置

技術分野

0001

本開示は、アクセス制御方法、そのようなアクセス制御方法を用いてアクセス制御を行うバスシステム、およびそのようなバスシステムを備えた半導体装置に関する。

背景技術

0002

プロセッサは、しばしば、例えばバスおよびメモリコントローラを介してメモリと接続される。そして、プロセッサは、演算処理を行う際、メモリに対してデータを書き込み、あるいはメモリからデータを読み出す。プロセッサがメモリに対してデータを書き込む場合における制御方法としては、例えば、ポステッド転送バッファラブルともいう)と、ノンポステッド転送がある(例えば、特許文献1)。

0003

ポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了する前に、プロセッサに対してレスポンスを行う。このポステッド転送では、レスポンスを返すタイミングが早くなるため、転送性能が向上する。これにより、システム全体における処理速度の向上が期待できる。しかしながら、プロセッサが、あるアドレスに対してこのような書込リクエストを行った後に読出リクエストを行った場合、最新のデータがメモリにまだ書き込まれていないため、書き換えられる前の古いデータが読み出されるおそれがある。このように、ポステッド転送では、いわゆるコヒーレンシ(データの一貫性)に関する問題が生じるおそれがある。

0004

ノンポステッド転送では、例えば、プロセッサ(マスタ)がメモリコントローラ(スレーブ)に対して書込リクエストを行ったときに、メモリコントローラは、メモリに対するデータの書き込みが完了した後に、プロセッサに対してレスポンスを行う。この場合には、ポステッド転送に比べてレスポンスを返すタイミングが遅いため、転送性能が低下し、システム全体における処理速度が低下するおそれがあるが、コヒーレンシに関する問題の発生を抑えることができる。

先行技術

0005

米国特許第7194566号明細書

0006

このように、メモリアクセスでは、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることが望まれており、さらなる転送性能の向上が期待されている。

0007

したがって、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができるアクセス制御方法、バスシステム、および半導体装置を提供することが望ましい。

0008

本開示の一実施の形態におけるアクセス制御方法は、複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、アクセスリクエストに基づいて、スレーブデバイスに、アクセスリクエストを生成した一のマスタデバイスを特定させ、スレーブデバイスに、その特定された一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答をさせるものである。

0009

本開示の一実施の形態におけるバスシステムは、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。

0010

本開示の一実施の形態における半導体装置は、複数のマスタデバイスと、スレーブデバイスとを備えている。複数のマスタデバイスは、アクセス対象デバイスへのアクセスリクエストを生成可能に構成されたものである。スレーブデバイスは、アクセスリクエストに基づいて、複数のマスタデバイスのうちの、アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスに応答するものである。

0011

本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置では、複数のマスタデバイスのうちの一のマスタデバイスにより、アクセスリクエストが生成され、そのアクセスリクエストに基づいて、アクセス対象デバイスへの処理が行われる。その際、スレーブデバイスから一のマスタデバイスへの応答は、一のマスタデバイスに応じた応答タイミングで行われる。

0012

本開示の一実施の形態におけるアクセス制御方法、バスシステム、および半導体装置によれば、一のマスタデバイスに応じた応答タイミングで、一のマスタデバイスへの応答を行うようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれの効果があってもよい。

図面の簡単な説明

0013

本開示の一実施の形態に係るバスシステムの一構成例を表すブロック図である。
図1に示したメモリコントローラの一構成例を表すブロック図である。
図2に示したレスポンス制御部の一構成例を表すブロック図である。
図3に示したレスポンス制御部の一動作例を表す表である。
図1に示した他のメモリコントローラの一構成例を表すブロック図である。
図1に示したバスシステムの一動作例を表す説明図である。
図1に示したバスシステムの他の動作例を表す説明図である。
図1に示したバスシステムの他の動作例を表す説明図である。
比較例1に係るバスシステムの一動作例を表す説明図である。
比較例2に係るバスシステムの一動作例を表す説明図である。
比較例2に係るバスシステムの他の動作例を表す説明図である。
比較例3に係るバスシステムの一動作例を表す説明図である。
比較例3に係るバスシステムの他の動作例を表す説明図である。
変形例に係るレスポンス制御部の一構成例を表すブロック図である。
他の変形例に係るバスシステムの一動作例を表す説明図である。
図15に示したバスシステムの他の動作例を表す説明図である。
図15に示したバスシステムに係るレスポンス制御部の一構成例を表すブロック図である。
他の変形例に係るバスシステムの一構成例を表すブロック図である。
他の変形例に係るインターコネクト部の一構成例を表すブロック図である。
他の変形例に係るバスシステムの一構成例を表すブロック図である。

実施例

0014

以下、本開示の一実施の形態について、図面を参照して詳細に説明する。

0015

[構成例]
(全体構成例)
図1は、一実施の形態に係るバスシステムの一構成例を表すものである。このバスシステム1は、この例では、1チップで構成された、いわゆるSoC(System on Chip)のシステムである。なお、本開示の実施の形態に係るアクセス制御方法および半導体装置は、本実施の形態により具現化されるので、併せて説明する。

0016

バスシステム1は、情報処理部9と、DMA(Direct Memory Access)コントローラ20と、インターコネクト部30と、メモリコントローラ40,60と、メモリ50,70とを備えている。この例では、メモリ50,70を除く回路を1チップに集積している。なお、これに限定されるものではなく、これら全ての回路を1チップに集積してもよい。

0017

情報処理部9は、演算処理を行うものである。情報処理部9は、この例では、キャッシュ10と、2つのコア11,12とを有している。キャッシュ10は、レベル2(L2)キャッシュメモリである。コア11,12は、いわゆるプロセッサコアである。情報処理部9は、バスB1を介してインタコネクト部30に接続されている。情報処理部9としては、例えば、ARM社製プロセッサ(例えばCortex-A9MPCore)、ARM社製レベル2キャッシュコントローラ(例えばL2C−310)などのIP(Intellectual Property)の組み合わせを用いることができる。インタ−コネクト部30との間のバスインタフェースとしては、例えばAXI(Advanced eXtensive Interface)を使用可能である。

0018

キャッシュ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)は、互いに異なるようにしている。

0019

情報処理部9は、メモリ50やメモリ70に対して書込リクエストを行う場合には、書込アドレスWrADDおよび書込データWrDATAをインターコネクト部30に供給し、インターコネクト部30からレスポンス信号REを受け取るようになっている。書込アドレスWrADDは、アドレス情報に加え、識別子MI、転送モード情報ODEなどを含むものである。転送モード情報MODEは、書込リクエストを行うデバイス(この例では情報処理部9)が、ポステッド転送とノンポステッド転送のどちらを要求するかを示すものである。具体的には、情報処理部9は、ポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“1”に設定し、ノンポステッド転送による書込リクエストを行う場合には、転送モード情報MODEを“0”に設定する。また、書込アドレスWrADDは、この他、書き込むデータのビット幅バースト長に関する情報、セキュリティ情報などを含むようにしてもよい。

0020

なお、バスインタフェースとしてAXIを用いる場合には、転送モード情報MODEは、AXIのパラメータAWCACHE[0]に対応するものである。また、識別子MIを、AXIのサイドバンド信号に割り当てることが可能である。このとき、パラメータAWUERなどの既存のサイドバンド信号を用いてもよいし、サイドバンド信号を新たに定義してもよい。

0021

また、情報処理部9は、メモリ50やメモリ70に対して読出リクエストを行う場合には、読出アドレスRdADDをインターコネクト部30に供給し、インターコネクト部30から読出データRdDATAを受け取るようになっている。

0022

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を受け取るようになっている。

0023

この図では、情報処理部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ビットを同じにしている。

0024

インターコネクト部30は、情報処理部9およびDMAコントローラ20からのメモリ50,70へのアクセス調停するものである。インターコネクト部30は、バスB1を介して情報処理部9に接続され、バスB2を介してDMAコントローラ20に接続され、バスB11を介してメモリコントローラ40に接続され、バスB12を介してメモリコントローラ60に接続されている。

0025

情報処理部9またはDMAコントローラ20がメモリ50に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ40に引き渡し、メモリコントローラ40から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ50に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDを、メモリコントローラ40に引き渡し、メモリコントローラ40から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡す。

0026

同様に、情報処理部9またはDMAコントローラ20がメモリ70に対して書込リクエストを行った場合には、インターコネクト部30は、書込リクエストを行ったデバイスから供給された書込アドレスWrADDおよび書込データWrDATAをメモリコントローラ60に引き渡し、メモリコントローラ60から供給されたレスポンス信号REを、書込リクエストを行ったデバイスに引き渡す。また、情報処理部9またはDMAコントローラ20がメモリ70に対して読出リクエストを行った場合には、インターコネクト部30は、読出リクエストを行ったデバイスから供給された読出アドレスRdADDをメモリコントローラ60に引き渡し、メモリコントローラ60から供給された読出データRdDATAを、読出リクエストを行ったデバイスに引き渡すようになっている。

0027

メモリコントローラ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に対してデータの書き込みを行うようになっている。

0028

また、メモリコントローラ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を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。

0029

このように、メモリコントローラ40では、情報処理部9が書込リクエストを行った場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。これにより、コヒーレンシに関する問題の発生を抑えることができる。すなわち、仮に、情報処理部9は、メモリ50のあるアドレスに対して、ポステッド転送による書込リクエストを行った直後に読出リクエストを行った場合には、書き換えられる前のデータが読み出されてしまうおそれがある。一方、メモリコントローラ40では、情報処理部9が書込リクエストを行う場合には、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するようにした。よって、その直後に情報処理部9がその書込リクエストと同じアドレスに対して読出リクエストを行う場合でも、書き換えられた後のデータが読み出されるため、コヒーレンシに関する問題の発生を抑えることができるようになっている。

0030

メモリコントローラ60は、メモリコントローラ40と同様に、メモリ70の動作を制御するものである。メモリコントローラ60は、バスB12を介してインターコネクト部30に接続されている。また、メモリコントローラ60は、メモリ70に対してデータを書き込む場合には、メモリコントローラ40と同様に、書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファ64(後述)に一時的に記憶させ、その後に、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。このメモリコントローラ60は、メモリコントローラ40とは異なり、スヌープ機構を有している。すなわち、メモリコントローラ60は、読出リクエストを受けとった場合において、書込バッファ64に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。このように、メモリ70からデータを読み出すのではなく、書込バッファ64からデータを読み出すことにより、コヒーレンシに関する問題の発生を抑えることができるようになっている。

0031

また、メモリコントローラ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を介して書込リクエストを行ったデバイスに供給する。すなわち、この場合には、ポステッド転送が行われるようになっている。

0032

メモリ50,70は、データを記憶するものであり、情報処理部9の作業用メモリとして機能するものである。メモリ50,70は、例えば、DRAM(Dynamic Random Access Memory)を用いて構成されるものである。メモリ50は、メモリコントローラ40から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ40との間でデータDATAをやりとりするものである。同様に、メモリ70は、メモリコントローラ60から制御コマンドCOMおよびアドレスADDを受け取るとともに、メモリコントローラ60との間でデータDATAをやりとりするものである。

0033

(メモリコントローラ40)
図2は、メモリコントローラ40の一構成例を表すものである。メモリコントローラ40は、書込インタフェース41と、読出インタフェース48と、コントローラ49とを有している。

0034

書込インタフェース41は、書込アクセスに関するインタフェースである。具体的には、書込インタフェース41は、インターコネクト部30から供給された書込アドレスWrADDおよび書込データWrDATAを一時的に記憶し、この書込アドレスWrADDおよび書込データWrDATAをコントローラ49に引き渡すようになっている。また、書込インタフェース41は、書込アドレスWrADDに基づいてレスポンス信号REを生成する機能も有している。書込インタフェース41は、書込バッファ44と、レスポンス制御部80と、レスポンス信号生成部43とを有している。

0035

書込バッファ44は、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。そして、書込バッファ44は、コントローラ49からの指示に基づいて、記憶された書込アドレスWrADDおよび書込データWrDATAを、コントローラ49に供給するようになっている。

0036

レスポンス制御部80は、書込アドレスWrADDに基づいてパラメータPWを生成するものである。

0037

図3は、レスポンス制御部80の一構成例である。レスポンス制御部80は、識別子取得部81と、転送モード情報取得部85と、レジスタ82と、論理積演算部83と、比較部84と、論理積回路86とを有している。

0038

識別子取得部81は、書込アドレスWrADDから識別子MIを取得するものである。転送モード情報取得部85は、書込アドレスWrADDから転送モード情報MODEを取得するものである。

0039

レジスタ82は、パラメータMIMask,MIMatchを記憶するものである。パラメータMImask,MIMatchは、それぞれ8ビットのパラメータである。メモリコントローラ40では、パラメータMImaskは、16進数表記で“0x10”(2進数表記では“00010000”)に設定され、パラメータMIMatchは“0x10”に設定されている。

0040

論理積回路83は、識別子MIの各ビットの値と、パラメータMIMask(この例では“0x10”)の対応するビットの値との論理積をそれぞれ求めて、8ビットのパラメータを生成するものである。すなわち、論理積回路83は、この例では、識別子MIのビットb4以外のビットをマスクする。具体的には、論理積回路83は、ビットb4の値が識別子MIのビットb4の値であり、ビットb0〜b3,b5〜b7の値が“0”であるパラメータを生成して出力するようになっている。

0041

比較部84は、論理積演算部83の出力パラメータと、8ビットのパラメータMIMatch(この例では“0x10”)とを比較して、その比較結果をパラメータDPWとして出力するものである。具体的には、比較部84は、これらのパラメータが一致した場合にはパラメータDPWを“1”とし、一致しない場合にはパラメータDPWを“0”にするようになっている。

0042

図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を生成するようになっている。

0043

論理積回路86は、パラメータDPWの反転値と、転送モード情報MODEの値との論理積を求め、その結果をパラメータPWとして出力するものである。パラメータPWは、値が“1”である場合にはポステッド転送を示し、値が“0”である場合にはノンポステッド転送を示すものである。

0044

この構成により、レスポンス制御部80は、情報処理装置9が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“1”になるため、パラメータPWを“0”にする。また、レスポンス制御部80は、DMAコントローラ20が書込リクエストを行う場合には、図4に示したようにパラメータDPWが“0”になるため、転送モード情報MODEの値をパラメータPWとして出力するようになっている。

0045

レスポンス信号生成部43は、パラメータPWおよびコントローラ49から供給される制御信号に基づいて、レスポンス信号REを生成するものである。具体的には、レスポンス信号生成部43は、レスポンス制御部80から、値が“1”であるパラメータPWを受け取った場合には、そのタイミングでレスポンス信号REを生成する。言い換えれば、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。すなわち、この場合には、ポステッド転送が行われる。また、レスポンス信号生成部43は、値が“0”であるパラメータPWを受け取った場合には、メモリ50に対してデータの書き込みが完了したことを示す制御信号をコントローラ49から受け取ったタイミングで、レスポンス信号REを生成する。すなわち、この場合には、ノンポステッド転送が行われるようになっている。

0046

読出インタフェース48は、読出アクセスに関するインタフェースである。読出インタフェース48は、インターコネクト部30から供給された読出アドレスRdADDに基づいて所定の処理を行い、この読出アドレスRdADDをコントローラ49に引き渡すとともに、コントローラ49から供給された読出データRdDATAに基づいて所定の処理を行い、この読出データRdDATAをインターコネクト部30に引き渡すようになっている。

0047

コントローラ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に供給するようになっている。

0048

(メモリコントローラ60)
図5は、メモリコントローラ60の一構成例を表すものである。メモリコントローラ60は、読出インタフェース68と、書込インタフェース61と、コントローラ69とを有している。

0049

読出インタフェース68は、読出インタフェース48と同様に、読出アクセスに関するインタフェースである。読出インタフェース68は、読出インタフェース48とは異なり、スヌープ機構を有している。すなわち、読出インタフェース68は、読出リクエストを受け取った場合において、書込インタフェース61の書込バッファ64(後述)に読み出したいデータが記憶されている場合には、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。これにより、メモリコントローラ60およびメモリ70では、コヒーレンシに関する問題の発生を抑えることができるようになっている。

0050

書込インタフェース61は、書込インタフェース41と同様に、書込アクセスに関するインタフェースである。書込インタフェース61は、書込バッファ64と、レスポンス制御部90と、レスポンス信号生成部63とを有している。

0051

書込バッファ64は、書込バッファ44と同様に、書込アドレスWrADDおよび書込データWrDATAを一時的に記憶するバッファメモリである。また、書込バッファ64は、読出インタフェース68からの指示に基づいて、書込バッファ64に記憶された書込データWrDATAを読出インタフェース68に供給するようになっている。

0052

レスポンス制御部90は、レスポンス制御部80と同様に、書込アドレスWrADDに基づいてパラメータPWを生成するものである。レスポンス制御部90の構成は、レスポンス制御部80(図3)と同じである。ここで、レスポンス制御部90では、パラメータMIMaskは“0x00”に設定されている。これにより、メモリコントローラ60では、図4に示したように、情報処理装置9およびDMAコントローラ20のどちらがメモリ70に対して書込リクエストを行っても、パラメータDPWは“0”になる。よって、レスポンス制御部90は、転送モード情報MODEの値を、パラメータPWとして出力するようになっている。

0053

レスポンス信号生成部63は、レスポンス信号生成部43と同様に、パラメータPWおよびコントローラ69から供給される制御信号に基づいて、レスポンス信号REを生成するものである。コントローラ69は、コントローラ49と同様に、書込インタフェース61および読出インタフェース68からの指示に基づいて、メモリ70の動作を制御するものである。

0054

ここで、キャッシュ10、コア11,12、およびDMAコントローラ20は、本開示における「マスタデバイス」の一具体例に対応し、メモリコントローラ40は、本開示における「スレーブデバイス」の一具体例に対応する。メモリ50は、本開示における「アクセス対象デバイス」の一具体例に対応する。書込リクエストは、本開示における「アクセスリクエスト」の一具体例に対応する。転送モード情報MODEは、本開示における「要求情報」の一具体例に対応する。

0055

[動作および作用]
続いて、本実施の形態のバスシステム1の動作および作用について説明する。

0056

(全体動概要
まず、図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は、データを記憶する。

0057

次に、3つの動作例を挙げて、バスシステム1の詳細動作について説明する。

0058

(動作例1)
まず、情報処理部9のキャッシュ10が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例1について説明する。

0059

図6は、バスシステム1の動作例1を表すものである。図6において、太い実線で示した信号は、レスポンス信号REを生成するタイミングより前にアクティブになる信号を示し、太い破線で示した信号は、レスポンス信号REを生成するタイミングより後にアクティブになる信号を示す。

0060

まず、情報処理部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に対してデータの書き込みを行う。

0061

メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x10”であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、レスポンス信号生成部43は、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1では、このようにして、ノンポステッド転送が行われる。

0062

情報処理部9は、ポステッド転送による書込リクエストを行った後に、その書込リクエストを行ったアドレスに対して読出リクエストを行う場合がある。具体的には、例えば、いわゆるエビクション動作を行う場合に、そのようなケースが起こりうる。例えば、ARM社製プロセッサCortex-A9MPCoreおよびレベル2キャッシュコントローラL2C−310を用いて情報処理部9を構成した場合において、エビクション動作を行う際、転送モード情報MODE(AWCACHE[0])は“1”に設定される。すなわち、この場合には、情報処理部9はポステッド転送による書込リクエストを行う。このような場合において、メモリコントローラ40は、上述したように、ノンポステッド転送を行うべきと判断し、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。これにより、書込アクセスの後の読出アクセスにおいて、メモリ50から、書き換えられる前の古いデータが読み出されるおそれを低減することができるため、コヒーレンシに関する問題の発生を抑えることができる。

0063

このように、バスシステム1では、情報処理部9がメモリ50に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができる。

0064

(動作例2)
次に、DMAコントローラ20が、メモリ50に対して、ポステッド転送による書込リクエストを行う動作例2について説明する。

0065

図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に一時的に記憶させる。

0066

メモリコントローラ40のレスポンス制御部80は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる識別子MIが“0x20”であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ44にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40は、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。

0067

DMAコントローラ20は、しばしば、複数の書込リクエストにより一連書込転送を行う。以下、4回の書込リクエストにより、1キロバイト(=4×256バイト)の転送を行う場合を例に説明する。このような場合には、DMAコントローラ20は、例えば、ポステッド転送による書込リクエストを3回行った後に、ノンポステッド転送による書込リクエストを1回行う。このとき、メモリコントローラ40は、リクエスト通りに、最初の3回の書込リクエストに対してポステッド転送を行うべきと判断し、その後の1回の書込リクエストに対してノンポステッド転送を行うべきと判断する。これにより、バスシステム1では、最初の3回の書込リクエストに対してレスポンスを返すタイミングを早くすることができるため、転送性能が向上する。また、その後の1回の書込リクエストに対しては、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成するため、コヒーレンシに関する問題の発生を抑えることができる。

0068

このように、バスシステム1では、DMAコントローラ20がメモリ50に対して書込リクエストを行う場合には、メモリコントローラ40は、そのリクエスト通りに、ポステッド転送またはノンポステッド転送を行う。すなわち、DMAコントローラ20は、きめ細やかに書込リクエストを行うことができるので、メモリコントローラ40は、その書込リクエストに従うようにした。これにより、バスシステム1では、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。

0069

(動作例3)
次に、情報処理部9のキャッシュ10が、メモリ70に対して、ポステッド転送による書込リクエストを行う動作例3について説明する。

0070

図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に一時的に記憶させる。

0071

メモリコントローラ60のレスポンス制御部90は、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、メモリコントローラ60では、パラメータDPWが“0”であるため(図4)、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、レスポンス信号生成部43は、書込バッファ64にデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ60は、書込バッファ64に記憶された情報に基づいて、メモリ70に対してデータの書き込みを行う。バスシステム1では、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ60が読出リクエストを受け取り、書込バッファ64に読み出したいデータが記憶されている場合には、メモリコントローラ60は、この書込バッファ64からデータを読み出し、読出データRdDATAとして出力する。

0072

このように、バスシステム1では、情報処理部9がメモリ70に対してポステッド転送による書込リクエストを行う場合には、メモリコントローラ60は、そのリクエスト通りに、ポステッド転送を行うべきと判断する。これにより、バスシステム1では、レスポンスを返すタイミングが早くすることができるため、転送性能が向上する。これにより、バスシステム1では、システム全体における処理速度を高めることができる。特に、ポステッド転送では、メモリコントローラ60が有するスヌープ機構を有効に活用することができるため、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。

0073

次に、いくつかの比較例と対比して、本実施の形態の作用を説明する。

0074

(比較例1)
図9は、比較例1に係るバスシステム1Rの一例を表すものである。バスシステム1Rは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Rと、メモリ50とを備えている。情報処理部9RおよびDMAコントローラ20Rは、識別子MIが割り当てられていないものである。メモリコントローラ40Rは、スヌープ機構を有するものである。また、メモリコントローラ40Rは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。

0075

この図9の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Rは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Rは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させる。

0076

メモリコントローラ40Rは、転送モード情報MODEの値が“1”である為、内蔵する書込バッファにデータが書き込まれたタイミングで、レスポンス信号REを生成する。そして、メモリコントローラ40Rは、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。バスシステム1Rでは、このようにして、ポステッド転送が行われる。また、その後に、メモリコントローラ40Rが読出リクエストを受け取り、書込バッファに読み出したいデータが記憶されている場合には、メモリコントローラ40Rは、この書込バッファからデータを読み出し、読出データRdDATAとして出力する。

0077

比較例1に係るバスシステム1Rでは、メモリコントローラ40Rにスヌープ機構を設けたので、ポステッド転送を行う場合でも、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、スヌープ機構は、回路の規模が大きく、コストが上昇するおそれがある。

0078

一方、本実施の形態に係るバスシステム1では、情報処理部9がポステッド転送による書込リクエストを行う場合には、メモリコントローラ40は、ノンポステッド転送を行うべきと判断する。これにより、スヌープ機構を設けずにコヒーレンシに関する問題の発生を抑えることができるため、回路規模を小さくすることができ、コストの上昇を抑えることができる。

0079

(比較例2)
図10,11は、比較例2に係るバスシステム1Sの一例を表すものである。バスシステム1Sは、情報処理部9Rと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40Sと、メモリ50とを備えている。メモリコントローラ40Sは、スヌープ機構を有しないものである。また、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するものである。

0080

図10の例では、情報処理部9Rが、メモリ50に対してポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Rが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“1”である転送モード情報MODE(MODE=1)が含まれている。そして、メモリコントローラ40Sは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Sは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。メモリコントローラ40Sは、メモリ50に対してデータの書き込みが完了したタイミングで、レスポンス信号REを生成する。バスシステム1Sでは、このようにして、ノンポステッド転送が行われる。

0081

図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では、このようにして、ノンポステッド転送が行われる。

0082

比較例2に係るバスシステム1Sでは、メモリコントローラ40Sは、受け取った転送モード情報MODEに依らず、常にノンポステッド転送を行うべきと判断するようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、DMAコントローラ20Rがポステッド転送による書込リクエストを行った場合にもノンポステッド転送を行うため、システム全体における処理速度が低下するおそれがある。すなわち、DMAコントローラ20Rは、書込アクセスを行った直後に、同じアドレスに対して読出アクセスを行う可能性が低い。よって、DMAコントローラ20Rからのアクセスに対して、このようにレスポンスを返すタイミングを遅くすると、転送性能が低くなってしまい、システム全体における処理速度が低下してしまうおそれがある。

0083

一方、本実施の形態に係るバスシステム1では、メモリコントローラ46が、識別子MIに基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を行い、DMAコントローラ20がポステッド転送による書込リクエストを行う場合にはポステッド転送を行うことができる。このように、バスシステム1では、書込リクエストを行うデバイスによって、異なる転送を行うことができるようにしたので、コヒーレンシに関する問題の発生を抑えつつ転送性能を高めることができる。

0084

(比較例3)
図12,13は、比較例3に係るバスシステム1Tの一例を表すものである。バスシステム1Tは、情報処理部9Tと、DMAコントローラ20Rと、インターコネクト部30と、メモリコントローラ40T,60Tと、メモリ50,70とを備えている。情報処理部9Tは、メモリ50,70に対して、常にノンポステッド転送による書込リクエストを行うものである。メモリコントローラ40Tは、スヌープ機構を有しないものであり、メモリコントローラ60Tは、スヌープ機構を有するものである。メモリコントローラ40T,60Tは、転送モード情報MODEに基づいて、レスポンス信号REを生成するタイミングを決定するようになっている。

0085

図12の例では、情報処理部9Tが、メモリ50に対してノンポステッド転送による書込リクエストを行う。具体的には、まず、情報処理部9Tが、書込アドレスWrADDおよび書込データWrDATAを生成してインターコネクト部30に供給する。この書込アドレスWrADDには、値が“0”である転送モード情報MODE(MODE=0)が含まれている。そして、メモリコントローラ40Tは、インターコネクト部30を介して、書込アドレスWrADDおよび書込データWrDATAを受け取る。メモリコントローラ40Tは、その書込アドレスWrADDおよび書込データWrDATAを、内蔵する書込バッファに一時的に記憶させ、その後に、その書込バッファに記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。そして、メモリコントローラ40Tは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Tでは、このようにして、ノンポステッド転送が行われる。

0086

図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として出力する。

0087

比較例3に係るバスシステム1Tでは、情報処理部9Tが常にノンポステッド転送による書込リクエストを行うようにしたので、コヒーレンシに関する問題の発生を抑えることができる。しかしながら、メモリコントローラ60Tがスヌープ機構を有するにも関わらず、常にノンポステッド転送を行うため、スヌープ機構を有効に働かせることができず、性能を発揮することができない。

0088

一方、本実施の形態に係るバスシステム1では、メモリコントローラ40,60が、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにした。これにより、例えば、情報処理部9がポステッド転送による書込リクエストを行う場合には、スヌープ機構を有しないメモリコントローラ40は、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラ60は、ポステッド転送を選択することにより転送性能を高めることができる。このように、スヌープ機構を有するデバイスとスヌープ機構を有しないデバイスが混在する場合でも、コヒーレンシに関する問題の発生を抑えることができるとともに、転送性能を高めることができる。

0089

[効果]
以上のように本実施の形態では、識別子に基づいて、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、情報処理部がポステッド転送による書込リクエストを行う場合にはノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、DMAコントローラがポステッド転送による書込リクエストを行う場合にはポステッド転送を選択することにより、転送性能を高めることができる。

0090

本実施の形態では、複数のメモリコントローラが、それぞれ独立して、ポステッド転送を行うべきかノンポステッド転送を行うべきかを判断するようにしたので、例えば、スヌープ機構を有しないメモリコントローラは、ノンポステッド転送を選択することによりコヒーレンシに関する問題の発生を抑えることができるとともに、スヌープ機構を有するメモリコントローラは、ポステッド転送を選択することにより転送性能を高めることができる。

0091

[変形例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を用いることにより、より高い自由度で、書込アクセスを制御することができる。

0092

[変形例2]
上記実施の形態では、メモリコントローラ40は、識別子MIに基づいて書込リクエストを行うデバイスを特定したが、これに限定されるものではない。以下に、本変形例について、詳細に説明する。

0093

図15,16は、本変形例に係るバスシステム1Bの一例を表すものである。バスシステム1Bは、情報処理部9Bと、DMAコントローラ20Bと、インターコネクト部30と、メモリコントローラ40B,60Bと、メモリ50,70とを備えている。図17は、メモリコントローラ40B,60Bに係るレスポンス制御部80Bの一構成例を表すものである。

0094

情報処理部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を用いて、書込リクエストや読出リクエストを行ったデバイスを識別できるようにしている。

0095

レスポンス制御部80Bは、転送識別子取得部81Bと、レジスタ82Bとを有している。転送識別子取得部81Bは、書込アドレスWrADDから転送識別子IDを取得するものである。レジスタ82Bは、パラメータIDMask,IDMatchを記憶するものである。パラメータIDmaskは、16進数表記で“0x80”(2進数表記では“10000000”)に設定され、パラメータIDMatchは、“0x00”に設定されている。

0096

図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に対してデータの書き込みを行う。

0097

メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“0”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが0以上127以下であるため、パラメータDPWが“1”になり、パラメータPWが“0”になる。よって、メモリコントローラ40Bは、メモリ50に対してデータの書き込みが完了したタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ノンポステッド転送が行われる。

0098

図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に一時的に記憶させる。

0099

メモリコントローラ40Bのレスポンス制御部80Bは、書込アドレスWrADDに基づいて、値が“1”のパラメータPWを生成する。すなわち、書込アドレスWrADDに含まれる転送識別子IDが128以上255以下であるため、パラメータDPWが“0”になり、よって、パラメータPWは、転送モード情報MODEの値と同じ値“1”になる。よって、メモリコントローラ40Bは、書込バッファ44にデータが書き込まれたタイミングでレスポンス信号REを生成する。バスシステム1Bでは、このようにして、ポステッド転送が行われる。そして、メモリコントローラ40Bは、書込バッファ44に記憶された情報に基づいて、メモリ50に対してデータの書き込みを行う。

0100

このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。なお、これに限定されるものではなく、例えば、情報処理部とDMAコントローラがアクセスするメモリ領域(アドレス領域)を分け、メモリコントローラが、アドレス情報に基づいて書込リクエストを行うデバイスを特定するようにしてもよい。

0101

[変形例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”)を追加するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。

0102

[変形例4]
上記実施の形態では、メモリコントローラ40,60が、レスポンス信号REの生成タイミングを制御したが、これに限定されるものではなく、これに代えて、例えば、インターコネクト部がレスポンス信号REの生成タイミングを制御してもよい。以下に、本変形例に係るインターコネクト部30Dについて、詳細に説明する。

0103

図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へのアクセスを調停するものである。このように構成しても、上記実施の形態の場合と同様の効果を得ることができる。

0104

以上、実施の形態およびいくつかの変形例を挙げて本技術を説明したが、本技術はこれらの実施の形態等には限定されず、種々の変形が可能である。

0105

例えば、上記実施の形態等では、インターコネクト部を1つ設けたが、これに限定されるものではなく、これに代えて、図20に示すバスシステム2のように複数のインターコネクト部(この例では2つのインターコネクト部131,132)を設けてもよい。この例では、情報処理部9およびDMAコントローラ20は、2つのインターコネクト部131,132を介して、メモリ50,70にアクセスする。

0106

また、例えば、上記実施の形態等では、本技術をメモリアクセスに適用したが、これに限定されるものではなく、リクエストに対してレスポンスを行う様々な用途に適用することができる。

0107

なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。

0108

なお、本技術は以下のような構成とすることができる。

0109

(1)複数のマスタデバイスのうちの一のマスタデバイスに、アクセス対象デバイスへのアクセスリクエストを生成させ、
前記アクセスリクエストに基づいて、スレーブデバイスに、前記アクセスリクエストを生成した前記一のマスタデバイスを特定させ、
前記スレーブデバイスに、その特定された前記一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスへの応答をさせる
アクセス制御方法。

0110

(2)前記応答タイミングは、前記スレーブデバイスが前記アクセスリクエストを受け取った第1のタイミング、または、前記アクセス対象デバイスが前記アクセスリクエストに基づく処理を終了した第2のタイミングである
前記(1)に記載のアクセス制御方法。

0111

(3)前記アクセスリクエストは、前記応答タイミングについての前記一のマスタデバイスの要求を示す要求情報を含み、
前記スレーブデバイスに応答させる際、特定された前記一のマスタデバイス、および前記要求情報に基づいて、前記応答タイミングを決定させる
前記(2)に記載のアクセス制御方法。

0112

(4)前記応答タイミングを決定させる際、前記要求情報が前記第1のタイミングを示す場合には、特定された前記一のマスタデバイスに基づいて、前記応答タイミングを決定させる
前記(3)に記載のアクセス制御方法。

0113

(5)前記応答タイミングを決定させる際、前記要求情報が前記第2のタイミングを示す場合には、前記第2のタイミングを前記応答タイミングにする
前記(3)または(4)に記載のアクセス制御方法。

0114

(6)前記スレーブデバイスはバッファメモリを有し、
前記第1のタイミングは、前記アクセスリクエストを前記バッファメモリに記憶したタイミングである
前記(2)から(5)のいずれかに記載のアクセス制御方法。

0115

(7)前記複数のマスタデバイスに、互いに異なる識別子を割り当て、
前記一のマスタデバイスを特定させる際、前記識別子に基づいて特定させる
前記(1)から(6)のいずれかに記載のアクセス制御方法。

0116

(8)前記アクセスリクエストを生成させる際、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
前記(7)に記載のアクセス制御方法。

0117

(9)前記一のマスタデバイスおよび前記スレーブデバイスの間の信号経路上のデバイスに、前記アクセスリクエストが前記一のマスタデバイスの識別子を含むように処理させる
前記(7)に記載のアクセス制御方法。

0118

(10)前記スレーブデバイスは、前記アクセス対象デバイスを制御するものである
前記(1)から(9)のいずれかに記載のアクセス制御方法。

0119

(11)前記アクセス対象デバイスはメモリであり、
前記アクセスリクエストは書込リクエストである
前記(1)から(10)のいずれかに記載のアクセス制御方法。

0120

(12)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
を備えたバスシステム。

0121

(13)アクセス対象デバイスへのアクセスリクエストを生成可能に構成された複数のマスタデバイスと、
前記アクセスリクエストに基づいて、前記複数のマスタデバイスのうちの、前記アクセスリクエストを生成した一のマスタデバイスに応じた応答タイミングで、前記一のマスタデバイスに応答するスレーブデバイスと
を備えた半導体装置。

0122

本出願は、日本国特許庁において2014年9月10日に出願された日本特許出願番号2014−183777号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。

0123

業者であれば、設計上の要件や他の要因に応じて、種々の修正コンビネーションサブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ