JP5118731B2 - キャッシュユニット及びプロセッシングシステム - Google Patents

キャッシュユニット及びプロセッシングシステム Download PDF

Info

Publication number
JP5118731B2
JP5118731B2 JP2010180807A JP2010180807A JP5118731B2 JP 5118731 B2 JP5118731 B2 JP 5118731B2 JP 2010180807 A JP2010180807 A JP 2010180807A JP 2010180807 A JP2010180807 A JP 2010180807A JP 5118731 B2 JP5118731 B2 JP 5118731B2
Authority
JP
Japan
Prior art keywords
cache
request
unit
data
refill
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.)
Expired - Fee Related
Application number
JP2010180807A
Other languages
English (en)
Other versions
JP2012042994A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010180807A priority Critical patent/JP5118731B2/ja
Priority to US12/953,666 priority patent/US8473682B2/en
Publication of JP2012042994A publication Critical patent/JP2012042994A/ja
Application granted granted Critical
Publication of JP5118731B2 publication Critical patent/JP5118731B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array

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

本発明の実施形態は、キャッシュユニット及びプロセッシングシステムに関する。
従来、クリティカルワードファースト(以下、「CWF(Critical Word First)」という)対応バスとCWF非対応バスとが混在するシステムオンチップ(以下、「SoC(System on Chip)」という)などのチップセットにおいて、CWF対応バスに接続されたプロセッシングユニットが要求するデータがCWF非対応バスに接続されたDRAM(Dynamic Random Access Memory)等の主記憶装置に格納されている場合には、主記憶装置からプロセッシングユニットにCWF非対応バスを介してデータが転送される。
しかしながら、プロセッシングユニットが処理しようとしているデータ(以下、「クリティカルワード」という)は、主記憶装置から転送されたデータの任意の位置に含まれている。この場合には、プロセッシングユニットは、クリティカルワードを受け取るまでストール状態を維持する。その結果、プロセッシングユニットの処理効率が低下する。
従来、CWF非対応バスに接続された主記憶装置からCWF対応バスに接続されたプロセッシングユニットにデータが転送される場合のプロセッシングユニットの処理効率を改善することが望まれている。
特開2008−510246号公報
本発明が解決しようとする課題は、CWF非対応バスに接続されたユニットからCWF対応バスに接続されたユニットにデータが転送される場合のCWF対応バスに接続されたユニットの処理効率を改善することである。
本実施形態に係るキャッシュユニットは、クリティカルワードファーストに対応しない外部バスを介して接続された主記憶装置からクリティカルワードファーストに対応する内部バスに接続された第1ラインサイズを有する1次キャッシュにデータを転送するモジュールである。キャッシュユニットは、キャッシュ制御部と、非キャッシュ制御部と、を備える。キャッシュ制御部は、第1ラインサイズ以上の第2ラインサイズを有する2次キャッシュと、1次キャッシュの第1リフィル要求のバースト転送の先頭アドレスが2次キャッシュに存在していない場合に、第1リフィル要求を、バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が第1ラインサイズ未満である第2リフィル要求に変換する要求変換部と、を備える。非キャッシュ制御部は、要求変換部により変換された第2リフィル要求を主記憶装置に転送し、第2リフィル要求に対応する処理データを主記憶装置から受け取り、受け取った処理データを1次キャッシュに転送するモジュールである。
第1実施形態に係るプロセッシングシステム1の構成を示すブロック図。 キャッシュユニット10の構成を示すブロック図。 プロセッシングシステム1のデータ処理の手順を示すフローチャート。 図3のデータ処理において取り扱われるデータの構造を示す概略図。 図3のデータ処理におけるキャッシュユニット10内のデータフローを示すブロック図。 第2実施形態に係るキャッシュユニット10の構成を示すブロック図。 切換部146の切換処理(第1例)の手順を示すフローチャート。 S701を説明するための概略図。 切換部146の切換処理(第2例)の手順を示すフローチャート。 図9の切換処理において用いられる要求テーブルの概略図。 切換部146の切換処理(第3例)の手順を示すフローチャート。 図11の切換処理において用いられる優先テーブルの概略図。 切換部146の切換処理(第4例)の手順を示すフローチャート。 シフトステップ(S1303)を説明するための概略図。 切換部146の切換処理(第5例)の手順を示すフローチャート。
本実施形態について図面を参照して説明する。
(第1実施形態)
第1実施形態について説明する。
第1実施形態に係るプロセッシングシステムの構成について説明する。図1は、第1実施形態に係るプロセッシングシステム1の構成を示すブロック図である。
プロセッシングシステム1は、データ処理を実行するシステムである。プロセッシングシステム1は、複数のプロセッシングユニットPU0〜PU3と、キャッシュユニット10と、主記憶装置20と、内部バス30と、外部バス40と、を備える。
各プロセッシングユニットPU0〜PU3は、1次キャッシュL1を備える。各プロセッシングユニットPU0〜PU3は、処理対象となるデータ(以下、「処理データ」という)にデータ処理を実行するモジュールである。1次キャッシュL1は、複数ワードのデータを記憶可能な第1ラインサイズを有するメモリである。例えば、第1ラインサイズは8ワード(64バイト)である。
キャッシュユニット10は、CWFに対応しない外部バス40を介して接続された主記憶装置20からCWFに対応する内部バス30に接続された第1ラインサイズを有する1次キャッシュL1にデータを転送するモジュールである。
主記憶装置20は、データを記憶可能な記憶媒体である。例えば、主記憶装置20はDRAMである。
内部バス30は、CWFに対応するデータバスである。
外部バス40は、インクリメンタル(以下、「INCR」という)バーストに対応するデータバスである。外部バス40は、CWFに対応していない。
なお、図1には、4つのプロセッシングユニットPU0〜PU3が1次キャッシュL1を備えるプロセッシングシステム1が図示されるが、プロセッシングユニットの数は幾つでも良いし、プロセッシングユニットは1次キャッシュL1を備えていなくても良い。
図2は、キャッシュユニット10の構成を示すブロック図である。
キャッシュユニット10は、内部バスインタフェース12と、キャッシュ制御部14と、非キャッシュ制御部16と、外部バスインタフェース18と、を備える。
内部バスインタフェース12は、内部バス30の転送方式であるCWFに従ってデータを転送するモジュールである。内部バスインタフェース12は、キャッシュ制御部14、及び非キャッシュ制御部16と、内部バス30との間に設けられる。
キャッシュ制御部14は、2次キャッシュL2と、要求変換部142と、データ変換部144と、を備える。キャッシュ制御部14は、2次キャッシュL2へのアクセスを制御するとともに、2次キャッシュL2のリフィルを実行するモジュールである。
2次キャッシュL2は、複数ワードのデータを記憶可能な第2ラインサイズを有するメモリである。第2ラインサイズは、第1ラインサイズ以上である。例えば、第2ラインサイズは32ワード(256バイト)である。
要求変換部142は、第1リフィル要求を第2リフィル要求に変換するモジュールである。
データ変換部144は、データを変換するモジュールである。
非キャッシュ制御部16は、主記憶装置20を含む2次キャッシュL2以外のモジュールへのアクセスを制御するモジュールである。
外部バスインタフェース18は、キャッシュ制御部14、非キャッシュ制御部16と外部バス40との間に設けられる。
プロセッシングシステム1の動作について説明する。以下、プロセッシングユニットPU0が、1次キャッシュL1に記憶されていない処理データにデータ処理を実行する例について説明する。
図3は、プロセッシングシステム1のデータ処理の手順を示すフローチャートである。図4は、図3のデータ処理において取り扱われるデータの構造を示す概略図である。図5は、図3のデータ処理におけるキャッシュユニット10内のデータフローを示すブロック図である。
<第1リフィル要求発行ステップ(S301)> プロセッシングユニットPU0が、1次キャッシュL1のリフィルを要求するための第1リフィル要求(図4(1))を発行し、発行した第1リフィル要求を内部バスインタフェース12に送信する(図5(1))。図4(1)に示すように、第1リフィル要求では、要求内容を示すコマンドは読み出し(Rd)であり、バースト長は第1ラインサイズ(8ワード)であり、バースト転送の先頭アドレスは処理データのアドレス(0x1000_00F0)であり、バーストパターンは内部バス30の転送方式(CWF)である。すなわち、図4(1)の第1リフィル要求は、アドレス“0x1000_00F0”のデータ、アドレス“0x1000_00F8”のデータ、アドレス“0x1000_00C0”のデータ、アドレス“0x1000_00C8”のデータ、アドレス“0x1000_00D0”のデータ、アドレス“0x1000_00D8”のデータ、アドレス“0x1000_00E0”のデータ、及びアドレス“0x1000_00E8”のデータをCWFで順番に転送するための要求である。
<S302> 内部バスインタフェース12が、第1リフィル要求のアドレスに基づいて、キャッシュ制御部14へのアクセス(以下、「キャッシュアクセス」という)か、非キャッシュ制御部16へのアクセス(以下、「非キャッシュアクセス」という)か、を判定する。例えば、内部バスインタフェース12は、キャッシュアクセスのメモリ空間アドレスのリストと第1リフィル要求のアドレスとを比較し、第1リフィル要求のアドレスがそのリストに含まれる場合にキャッシュアクセスと判定し、含まれない場合に非キャッシュアクセスと判定する。キャッシュアクセスと判定された場合には(S302−YES)、第1リフィル要求が要求変換部142へ送信され(図5(2))、S303が実行される。非キャッシュアクセスと判定された場合には(S302−NO)、第1リフィル要求が非キャッシュ制御部16へ送信され、非キャッシュアクセスステップ(S321)が実行される。
<S303> 要求変換部142が、2次キャッシュL2に処理データが記憶されているか否かを判定する。すなわち、要求変換部142は、第1リフィル要求のバースト転送の先頭アドレスが2次キャッシュL2に存在しているか否かを判定する。例えば、内部バスインタフェース12は、2次キャッシュL2に記憶されたデータのアドレスリストと第1リフィル要求のアドレスとを比較する。第1リフィル要求のアドレスがアドレスリストに含まれる(すなわち、第1リフィル要求のバースト転送の先頭アドレスが2次キャッシュL2に存在している)場合には、2次キャッシュL2に処理データが記憶されていると判定し、第1リフィル要求のアドレスがアドレスリストに含まれない(すなわち、第1リフィル要求のバースト転送の先頭アドレスが2次キャッシュL2に存在していない)場合には、2次キャッシュL2に処理データが記憶されていないと判定する。2次キャッシュL2に処理データが記憶されていると判定された場合には(S303−YES)、1次キャッシュリフィルステップ(S312)が実行される。2次キャッシュL2に処理データが記憶されていないと判定された場合には(S303−NO)、要求変換ステップ(S304)が実行される。
<要求変換ステップ(S304)> 要求変換部142が、第1リフィル要求を第2リフィル要求(図4(2))に変換し、変換した第2リフィル要求を非キャッシュ制御部16に送信する(図5(3))。より具体的には、要求変換部142は、第1リフィル要求のバースト転送の先頭アドレスが2次キャッシュL2に存在していない場合に、第1リフィル要求のバースト長を短縮する(例えば、1ワードに変更する)ことにより、第1リフィル要求を第2リフィル要求に変換する。第2リフィル要求では、バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が第1ラインサイズ未満である。図4(2)に示すように、第2リフィル要求では、要求内容は読み出し(Rd)であり、バースト転送の先頭アドレスは処理データのアドレス(0x1000_00F0)であり、バースト長は1ワードであり、バーストパターンは外部バス40の転送方式(INCR)である。すなわち、図4(2)の第2リフィル要求は、アドレス“0x1000_00F0”のデータをINCRで転送するための要求である。
<第2リフィル要求転送ステップ(S305)> 非キャッシュ制御部16が、第2リフィル要求を外部バスインタフェース18に転送する(図5(4))。次いで、外部バスインタフェース18が、外部バス40を介して、第2リフィル要求を主記憶装置20に転送する(図5(5))。すなわち、非キャッシュ制御部16は、外部バスインタフェース18を介して、要求変換部142により変換された第2リフィル要求を主記憶装置20に転送する。
<許可ステップ(S306)> 非キャッシュ制御部16が、所定のタイミングで、2次キャッシュL2のリフィル要求を許可するための許可通知をキャッシュ制御部14に送信する(図5(6))。例えば、許可通知は、第2リフィル要求が外部バス40により受理されたことを示すフラグ等の1ビット情報である。例えば、所定のタイミングは、外部バス40が第2リフィル要求を受理したタイミング、又は要求変換ステップ(S304)の後にキャッシュユニット10が発行するコマンドが第2リフィル要求を追い越さないことが確定したタイミングである。これにより、1次キャッシュ向けのリフィルデータが処理データより先にプロセッシングユニットPU0に転送されることを確実に防ぐことができる。
<2次キャッシュリフィル要求転送ステップ(S307)> キャッシュ制御部14が、許可通知を受け取った後、2次キャッシュL2のリフィル要求(図4(3))を発行し、発行した2次キャッシュL2のリフィル要求を外部バスインタフェース18に送信する(図5(7))。次いで、外部バスインタフェース18が、2次キャッシュL2のリフィル要求を主記憶装置20に転送する(図5(8))。すなわち、キャッシュ制御部14は、外部バスインタフェース18を介して、処理データを含む第2ラインサイズのデータを主記憶装置20に要求する。
<処理データ転送ステップ(S308)> 外部バスインタフェース18が、外部バス40を介して、第2リフィル要求に対応する1ワードの処理データ(図4(4))を主記憶装置20から受け取る(図5(9))。次いで、外部バスインタフェース18が、処理データを非キャッシュ制御部16に転送する(図5(10))。次いで、非キャッシュ制御部16が、処理データを内部バスインタフェース12に転送する(図5(11))。次いで、内部バスインタフェース12が処理データをプロセッシングユニットPU0に転送する(図5(12))。すなわち、非キャッシュ制御部16は、外部バスインタフェース18を介して主記憶装置20から受け取った処理データを、内部バスインタフェース12を介して1次キャッシュL1に転送する。これにより、プロセッシングユニットPU0は、1ワードの処理データのみを先に受け取ることができる。換言すると、プロセッシングユニットPU0は、バーストパターンがCWFである第1リフィル要求に対応する処理データを、CWFに対応しない外部バス40を介して接続された主記憶装置20から受け取る。その後、プロセッシングユニットPU0は、ストール状態を解除し、処理データにデータ処理を実行する。
<2次キャッシュリフィルステップ(S309)> 外部バスインタフェース18が、外部バス40を介して、2次キャッシュL2のリフィル要求に対応する32ワードのデータ(図4(5))を主記憶装置20から受け取る(図5(13))。図4(5)に示すように、2次キャッシュL2のリフィル要求に対応するデータは、24ワードの先頭データと、処理データの前方に位置する6ワードの第1リフィルパートと、1ワードの処理データと、処理データの後方に位置する1ワードの第2リフィルパートと、を備える。次いで、外部バスインタフェース18が、2次キャッシュL2のリフィル要求に対応するデータをキャッシュ制御部14に転送する(図5(14))。次いで、キャッシュ制御部14が、2次キャッシュL2のリフィル要求に対応するデータに基づいて2次キャッシュL2のリフィルを実行する。
<データ変換ステップ(S310)> データ変換部144が、2次キャッシュL2のリフィル要求に対応するデータを7ワードのリフィルデータ(図4(6))に変換し、変換したリフィルデータを非キャッシュ制御部16に送信する(図5(15))。図4(6)に示すように、7ワードのリフィルデータは、1ワードの第2リフィルパートと、第2リフィルパートの後方に位置する6ワードの第1リフィルパートと、を備える。1ワードの第2リフィルパートは、図4(5)の2次キャッシュL2のリフィル要求に対応するデータにおいて処理データの後方に位置していたデータである。6ワードの第1リフィルパートは、図4(5)の2次キャッシュL2のリフィル要求に対応するデータにおいて処理データの前方に位置していたデータである。
例えば、データ変換部144は、2次キャッシュL2のリフィル要求に対応するデータにおいて1ワードの処理データの前後に合計7ワードのリフィルパートが存在する場合(図4(5)の場合)には、処理データの前方に位置するデータ(第1リフィルパート)の位置を処理データの後方に位置するデータ(第2リフィルパート)の後方に変更することにより、2次キャッシュL2のリフィル要求に対応するデータを7ワードの1次キャッシュL1向けのリフィルデータに変換する。例えば、データ変換部144は、処理データが2次キャッシュL2のリフィル要求に対応するデータの最後尾に位置する場合には、処理データの前方に位置する7ワードのデータ(リフィルパート)の位置を処理データの後方に変更することにより、2次キャッシュL2のリフィル要求に対応するデータを7ワードのリフィルデータに変換する。例えば、データ変換部144は、処理データの後方に7ワードのデータ(リフィルパート)が存在する場合には、処理データの後方に位置する7ワードのデータ(リフィルパート)を抽出することにより、2次キャッシュL2のリフィル要求に対応するデータを7ワードのリフィルデータに変換する。
<リフィルデータ転送ステップ(S311)> 非キャッシュ制御部16が、リフィルデータを内部バスインタフェース12に転送する(図5(16))。次いで、内部バスインタフェース12が、内部バス30を介して、リフィルデータをプロセッシングユニットPU0に転送する(図5(17))。すなわち、データ変換部144は、キャッシュ制御部14により要求された処理データを含む第2ラインサイズのデータを、1次キャッシュL1のリフィルを実行するときに処理データの後方に配置すべきリフィルデータに変換し、非キャッシュ制御部16及び内部バスインタフェース12を介して、変換したリフィルデータをプロセッシングユニットPU0に転送する。なお、2次キャッシュL2のリフィルを実行する前にデータのバイパス転送が可能な場合には、データ変換ステップ(S310)及びリフィルデータ転送ステップ(S311)の組み合わせは、2次キャッシュリフィルステップ(S309)の前に実行されても良いし、2次キャッシュリフィルステップ(S309)と並列に実行されても良い。
<1次キャッシュリフィルステップ(S312)> プロセッシングユニットPU0は、1ワードの処理データ及び7ワードのリフィルデータから構成される8ワードのデータセット(図4(7))に基づいて1次キャッシュL1のリフィルを実行する。換言すると、プロセッシングユニットPU0は、CWFに対応しない外部バス40を介して接続された主記憶装置20から受け取ったCWFに対応するデータ構造のデータに基づいて、1次キャッシュL1のリフィルを実行する。1次キャッシュリフィルステップ(S312)の後は、図3のデータ処理が終了する。
<非キャッシュアクセスステップ(S321)> 非キャッシュ制御部16が、2次キャッシュL2以外のモジュール(例えば、主記憶装置20)へのアクセスを制御する。非キャッシュアクセスステップ(S321)の後は、図3のデータ処理が終了する。
第1実施形態によれば、CWF非対応バス(外部バス40)に接続されたユニット(主記憶装置20)からCWF対応バス(内部バス30)に接続されたユニット(プロセッシングユニットPU0〜PU3)にデータが転送される場合に、CWF対応バスに接続されたユニットの処理効率を改善することができる。
(第2実施形態)
第2実施形態について説明する。第2実施形態は、切換部を備えるキャッシュ制御部の例である。なお、第2実施形態に係るプロセッシングシステムの構成は、第1実施形態と同様であり、第1実施形態と同様の説明については省略する。
図6は、第2実施形態に係るキャッシュユニット10の構成を示すブロック図である。
キャッシュユニット10は、内部バスインタフェース12と、キャッシュ制御部14と、非キャッシュ制御部16と、外部バスインタフェース18と、を備える。内部バスインタフェース12、非キャッシュ制御部16、及び外部バスインタフェース18は、第1実施形態と同様である。
キャッシュ制御部14は、2次キャッシュL2と、要求変換部142と、データ変換部144と、切換部146と、を備える。キャッシュ制御部14は、2次キャッシュL2へのアクセスを制御するとともに、2次キャッシュL2のリフィルを実行するモジュールである。2次キャッシュL2、要求変換部142、及びデータ変換部144は、第1実施形態と同様である。
切換部146は、要求変換部142のオン及びオフを切り換えるモジュールである。
切換部146の動作の第1例について説明する。図7は、切換部146の切換処理(第1例)の手順を示すフローチャートである。図8は、S701を説明するための概略図である。
図7の切替処理は、S302においてキャッシュアクセスと判定された場合に実行される。
<S701> 切換部146が、第2ラインサイズに相当する32ワードのアドレス空間における第1リフィル要求のアドレスと所定の閾値アドレスとを比較する。例えば、閾値アドレスは、ユーザにより設定される任意の値であって、切換部146のレジスタ(図示せず)に格納されている。第1リフィル要求のアドレスが閾値アドレス以上(図8(1))である場合には(S701−YES)、S702が実行される。第1リフィル要求のアドレスが閾値アドレスより小さい(図8(2))(すなわち、処理データのアドレスが閾値アドレスより前のアドレスである)場合には(S701−NO)、S711が実行される。
<S702> 切換部146が、要求変換部142をオンにする。すなわち、切換部146は、処理データのアドレスが所定の閾値アドレス以上である場合に、要求変換部142をオンにする。これにより、要求変換部142は、要求変換ステップ(S304)を実行可能になる。S702の後に、図7の切換処理が終了する。
<S711> 切換部146が、要求変換部142をオフにする。これにより、要求変換部142は、要求変換ステップ(S304)を実行不可能になる。この場合には、第2リフィル要求転送ステップ(S305)〜リフィルデータ転送ステップ(S311)は実行されず、一般的な2次キャッシュL2のリフィル及び1次キャッシュL1のリフィルが実行される。S711の後に、図7の切換処理が終了する。
切換部146の動作の第1例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部142のオン及びオフが切り換えられるので、キャッシュユニット10の消費電力を低減するとともに、要求変換部142のオン及びオフを切り換える条件をユーザが任意に設定することができる。
切換部146の動作の第2例について説明する。図9は、切換部146の切換処理(第2例)の手順を示すフローチャートである。図10は、図9の切換処理において用いられる要求テーブルの概略図である。
図9の切替処理は、S302においてキャッシュアクセスと判定された場合に実行される。
<タイムスタンプ記録ステップ(S901)> 切換部146が、第1リフィル要求を発行したプロセッシングユニット(以下、「発行元プロセッシングユニット」という)の識別情報(以下、「PUID(Processing Unit Identification)」という)と、第1リフィル要求が内部バスインタフェース12により受け付けられた時刻(以下、「タイムスタンプ」という)と、を要求テーブルに記録する。PUIDは、第1リフィル要求に含まれる情報である。タイムスタンプは、内部バスインタフェース12により発行される情報である。要求テーブルは、切換部146のレジスタに格納されている。図10は、プロセッシングユニットPU0が発行した第1リフィル要求がバスインタフェース12により受け付けられた時刻がT1であり、プロセッシングユニットPU3が発行した第1リフィル要求がバスインタフェース12により受け付けられた時刻がT2であり、プロセッシングユニットPU1が発行した第1リフィル要求がバスインタフェース12により受け付けられた時刻がT3であり、プロセッシングユニットPU2が発行した第1リフィル要求がバスインタフェース12により受け付けられた時刻がT4である、ことを示している。
<S902> 切換部146が、要求テーブルに記録されたタイムスタンプと閾値時間とを比較する。例えば、閾値時間は、ユーザにより設定される任意の値であって、切換部146のレジスタに格納されている。要求テーブルのタイムスタンプが閾値時間以上である(すなわち、内部バスインタフェース12が第1リフィル要求を受け付けてから閾値時間以上の時間が経過した)場合には(S902−YES)、S903が実行される。要求テーブルのタイムスタンプが閾値時間より小さい(すなわち、内部バスインタフェース12が第1リフィル要求を受け付けてから閾値時間以上の時間が経過していない)場合には(S902−NO)、S911が実行される。
<S903> S702と同様である。すなわち、切換部146は、第1リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合に、要求変換部142をオンにする。これにより、要求変換部142は、要求変換ステップ(S304)を実行可能になる。S903の後に、図9の切換処理が終了する。
<S911> S711と同様である。S911の後に、図9の切換処理が終了する。
切換部146の動作の第2例では、第1リフィル要求が発行された時刻からの経過時間に基づいて要求変換部142のオン及びオフが切り換えられるので、キャッシュユニット10の消費電力を低減するとともに、プロセッシングユニットのストール時間を一定時間以内に抑えることができる。
切換部146の動作の第3例について説明する。図11は、切換部146の切換処理(第3例)の手順を示すフローチャートである。図12は、図11の切換処理において用いられる優先テーブルの概略図である。
図11の切替処理は、S302においてキャッシュアクセスと判定された場合に実行される。
<S1101> 切換部146が、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるか否かを判定する。例えば、第1リフィル要求の発行元プロセッシングユニットのPUIDが優先テーブルに含まれている場合には、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定される。第1リフィル要求の発行元プロセッシングユニットのPUIDが優先テーブルに含まれていない場合には、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定される。図12は、プロセッシングユニットPU0が優先プロセッシングユニットであることを示している。例えば、優先テーブルは、ユーザにより任意に設定される情報であって、切換部146のレジスタに格納されている。第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定された場合には(S1101−YES)、S1102が実行される。第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定された場合には(S1101−NO)、S1111が実行される。
<S1102> S702と同様である。すなわち、切換部146は、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、要求変換部142をオンにする。図12の場合には、第1リフィル要求の発行元プロセッシングユニットがプロセッシングユニットPU0である場合に、切換部146は要求変換部142をオンにする。これにより、要求変換部142は、要求変換ステップ(S304)を実行可能になる。S1102の後に、図11の切換処理が終了する。
<S1111> S711と同様である。S1111の後に、図11の切換処理が終了する。
切換部146の動作の第3例では、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるか否かに基づいて要求変換部142のオン及びオフが切り換えられるので、キャッシュユニット10の消費電力を低減するとともに、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
切換部146の動作の第4例について説明する。図13は、切換部146の切換処理(第4例)の手順を示すフローチャートである。図14は、図13のシフトステップ(S1303)を説明するための概略図である。
図13の切替処理は、S302においてキャッシュアクセスと判定された場合に実行される。
<タイムスタンプ記録ステップ(S1301)> タイムスタンプ記録ステップ(S901)と同様である。
<S1302> 切換部146が、要求テーブルに記録されたタイムスタンプと閾値時間とを比較する。例えば、閾値時間は、ユーザにより任意に設定される情報であって、切換部146のレジスタに格納されている。要求テーブルのタイムスタンプが閾値時間以上である(すなわち、内部バスインタフェース12が第1リフィル要求を受け付けてから閾値時間以上の時間が経過した)場合には(S1302−YES)、シフトステップ(S1303)が実行される。要求テーブルのタイムスタンプが閾値時間より小さい(すなわち、内部バスインタフェース12が第1リフィル要求を受け付けてから閾値時間以上の時間が経過していない)場合には(S1302−NO)、S1304が実行される。
<シフトステップ(S1303)> 切換部146が、閾値アドレスをアドレス順が小さい方にシフトする。すなわち、切換部146は、第1リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合に、第1リフィル要求のアドレスより大きな閾値アドレスをアドレス順が小さい方向にシフトする(図14(1),(2))。これにより、第1リフィル要求のアドレスが閾値アドレス以上となる(図14(3))。
<S1304> S701と同様である。
<S1305> S702と同様である。これにより、第1リフィル要求のアドレスが閾値アドレスより小さい場合であっても、要求変換部142は、要求変換ステップ(S304)を実行可能になる。S1305の後に、図13の切換処理が終了する。
<S1311> S711と同様である。S1311の後に、図13の切換処理が終了する。
切換部146の動作の第4例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部142のオン及びオフが切り換えられる際に、第1リフィル要求が発行された時刻からの経過時間が所定時間を超えると要求変換部142のオン及びオフを切り換えるための条件が緩和されるので、キャッシュユニット10の消費電力を低減するとともに、ストール時間が一定時間を超えたプロセッシングユニットに対して要求変換部142がオンになり易くすることができる。
切換部146の動作の第5例について説明する。図15は、切換部146の切換処理(第5例)の手順を示すフローチャートである。
図15の切替処理は、S302においてキャッシュアクセスと判定された場合に実行される。
<S1501> S1101と同様である。第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであると判定された場合には(S1501−YES)、シフトステップ(S1502)が実行される。第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないと判定された場合には(S1501−NO)、S1503が実行される。
<シフトステップ(S1502)> シフトステップ(S1303)と同様である。すなわち、切替部146は、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、第1リフィル要求のアドレスより大きな閾値アドレス(図14(1))をアドレス順が小さい方向にシフトする(図14(2))。これにより、第1リフィル要求のアドレスが閾値アドレス以上となる(図14(3))。
<S1504> S701と同様である。これにより、第1リフィル要求のアドレスが閾値アドレスより小さい場合であっても、要求変換部142は、要求変換ステップ(S304)を実行可能になる。S1504の後に、図15の切換処理が終了する。
<S1511> S711と同様である。S1511の後に、図15の切換処理が終了する。
切換部146の動作の第5例では、処理データのアドレスが閾値アドレス以上であるか否かに基づいて要求変換部142のオン及びオフが切り換えられる際に、プロセッシングユニットが優先プロセッシングユニットであれば要求変換部142のオン及びオフを切り換えるための条件が緩和されるので、キャッシュユニット10の消費電力を低減するとともに、優先度の高いプロセッシングユニットに対して要求変換部142がオンになり易くすることができる。
切換部146の動作の第1例〜第3例は、それぞれ、組み合わされても良い。
例えば、切換部146の動作の第1例と第2例とを組み合わせた場合には、第1リフィル要求のアドレスが閾値アドレスより小さかったとしても、要求テーブルに記録された時刻Tiが閾値時刻以上であれば、要求変換部142がオンになる。これにより、ユーザが設定した要求変換部142のオン及びオフを切り換える条件にかかわらず、プロセッシングユニットのストール時間を一定時間以内に抑えることができる。
例えば、切換部146の動作の第2例と第3例とを組み合わせた場合には、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるときには要求テーブルに記録された時刻Tiにかかわらず要求変換部142がオンにされ、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットでないときには要求テーブルに記録された時刻Tiが閾値時刻以上になった後に要求変換部142がオンになる。これにより、第1リフィル要求が発行された時刻からの経過時間にかかわらず、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
例えば、切換部146の動作の第3例と第1例とを組み合わせた場合には、第1リフィル要求のアドレスが閾値アドレスより小さかったとしても、第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであるときには、要求変換部142がオンになる。これにより、ユーザが設定した要求変換部142のオン及びオフを切り換える条件にかかわらず、優先度の高いプロセッシングユニットのストール時間を短縮することができる。
切換部146の動作の第4例及び第5例は、組み合わされても良い。例えば、タイムスタンプが閾値時間以上であること及び第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットであることの両方を満たすと、シフトステップ(S1303)が実行される。これにより、キャッシュユニット10の消費電力をさらに低減するとともに、優先プロセッシングユニットのストール時間が一定時間を超えたアクセス(すなわち、緊急度の高いアクセス)を優先的に高速化することができる。
なお、本実施形態では、データ変換部144がキャッシュ制御部14に設けられる例について説明したが、データ変換部144は、外部バスインタフェース18又は非キャッシュ制御部16に設けられても良い。
また、本実施形態では、データ変換ステップ(S310)において、データ変換部144がリフィルデータを非キャッシュ制御部16に送信し、リフィルデータ転送ステップ(S311)において、非キャッシュ制御部16が、リフィルデータをプロセッシングユニットPU0に転送する例について説明したが、本実施形態の範囲はこれに限られるものではない。例えば、本実施形態は、データ変換ステップ(S310)において、データ変換部144がリフィルデータを保持し、リフィルデータ転送ステップ(S311)において、データ変換部144がリフィルデータをプロセッシングユニットPU0に送信する場合についても適用可能である。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1 プロセッシングシステム
10 キャッシュユニット
12 内部バス
14 キャッシュ制御部
142 要求変換部
144 データ変換部
146 切換部
16 非キャッシュ制御部
18 外部バスインタフェース
20 主記憶装置
30 内部バス
40 外部バス
L1 1次キャッシュ
L2 2次キャッシュ

Claims (6)

  1. クリティカルワードファーストに対応しない外部バスを介して接続された主記憶装置から前記クリティカルワードファーストに対応する内部バスに接続された第1ラインサイズを有する1次キャッシュにデータを転送するキャッシュユニットにおいて、
    前記第1ラインサイズ以上の第2ラインサイズを有する2次キャッシュと、前記1次キャッシュの第1リフィル要求のバースト転送の先頭アドレスが前記2次キャッシュに存在していない場合に、前記第1リフィル要求を、前記バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が前記第1ラインサイズ未満である第2リフィル要求に変換する要求変換部と、を備えるキャッシュ制御部と、
    前記要求変換部により変換された第2リフィル要求を前記主記憶装置に転送し、前記第2リフィル要求に対応する処理データを前記主記憶装置から受け取り、受け取った処理データを前記1次キャッシュに転送する非キャッシュ制御部と、
    を備えることを特徴とするキャッシュユニット。
  2. 前記処理データのアドレスが所定の閾値アドレス以上である場合に、前記要求変換部をオンにする切換部をさらに備える、
    請求項1記載のキャッシュユニット。
  3. 前記切換部は、前記第1リフィル要求が発行された時刻からの経過時間が所定時間以上となる場合、又は前記第1リフィル要求の発行元プロセッシングユニットが優先プロセッシングユニットである場合に、前記閾値アドレスをアドレス順が小さい方向にシフトする、
    請求項2記載のキャッシュユニット。
  4. データを変換するデータ変換部をさらに備え、
    前記キャッシュ制御部は、前記処理データを含む第2ラインサイズのデータを前記主記憶装置に要求し、
    前記データ変換部は、前記キャッシュ制御部により要求された前記処理データを含む第2ラインサイズのデータを、前記1次キャッシュのリフィルを実行するときに前記処理データの後方に配置すべきリフィルデータに変換し、変換したリフィルデータを前記プロセッシングユニットに転送する、
    請求項1乃至3の何れか1項記載のキャッシュユニット。
  5. 前記非キャッシュ制御部は、前記2次キャッシュのリフィル要求を前記キャッシュ制御部に許可する、
    請求項1乃至4の何れか1項記載のキャッシュユニット。
  6. 主記憶装置と、
    第1ラインサイズを有する1次キャッシュと、
    前記主記憶装置から前記1次キャッシュにデータを転送するキャッシュユニットと、
    前記1次キャッシュと前記キャッシュユニットとを接続するクリティカルワードファーストに対応しない外部バスと、
    前記主記憶装置と前記キャッシュユニットとを接続するクリティカルワードファーストに対応する内部バスと、を備え、
    前記キャッシュユニットは、
    前記第1ラインサイズ以上の第2ラインサイズを有する2次キャッシュと、前記1次キャッシュの第1リフィル要求のバースト転送の先頭アドレスが前記2次キャッシュに存在していない場合に、前記第1リフィル要求を、前記バースト転送の先頭アドレスが処理対象となる処理データのアドレスであり、バースト長が前記第1ラインサイズ未満である第2リフィル要求に変換する要求変換部と、を備えるキャッシュ制御部と、
    前記要求変換部により変換された第2リフィル要求を前記主記憶装置に転送し、前記第2リフィル要求に対応する処理データを前記主記憶装置から受け取り、受け取った処理データを前記1次キャッシュに転送する非キャッシュ制御部と、
    を備えることを特徴とするプロセッシングシステム。
JP2010180807A 2010-08-12 2010-08-12 キャッシュユニット及びプロセッシングシステム Expired - Fee Related JP5118731B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010180807A JP5118731B2 (ja) 2010-08-12 2010-08-12 キャッシュユニット及びプロセッシングシステム
US12/953,666 US8473682B2 (en) 2010-08-12 2010-11-24 Cache unit and processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010180807A JP5118731B2 (ja) 2010-08-12 2010-08-12 キャッシュユニット及びプロセッシングシステム

Publications (2)

Publication Number Publication Date
JP2012042994A JP2012042994A (ja) 2012-03-01
JP5118731B2 true JP5118731B2 (ja) 2013-01-16

Family

ID=45565621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010180807A Expired - Fee Related JP5118731B2 (ja) 2010-08-12 2010-08-12 キャッシュユニット及びプロセッシングシステム

Country Status (2)

Country Link
US (1) US8473682B2 (ja)
JP (1) JP5118731B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5598337B2 (ja) * 2011-01-12 2014-10-01 ソニー株式会社 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
JP5565340B2 (ja) * 2011-02-24 2014-08-06 富士通株式会社 試験方法,試験プログラム,及び試験装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226722B1 (en) 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
KR101121592B1 (ko) 2004-08-17 2012-03-12 실리콘 하이브 비.브이. 버스트 판독기록 동작을 구비한 처리 장치
JP2009217714A (ja) * 2008-03-12 2009-09-24 Toshiba Corp データ処理回路、キャッシュシステムおよびデータ転送装置
JP2010140140A (ja) * 2008-12-10 2010-06-24 Renesas Electronics Corp キャッシュメモリ制御回路、キャッシュメモリ装置、及びキャッシュメモリ制御方法

Also Published As

Publication number Publication date
US20120042128A1 (en) 2012-02-16
US8473682B2 (en) 2013-06-25
JP2012042994A (ja) 2012-03-01

Similar Documents

Publication Publication Date Title
US8601192B2 (en) Arbitration device, arbitration system, arbitration method, semiconductor integrated circuit, and image processing device
CN111913652A (zh) 包括处理电路的存储器件、存储器控制器和存储系统
US8583842B2 (en) Data transfer device and data transfer system
US10725698B2 (en) Memory controller and control method thereof
JP5428687B2 (ja) メモリ制御装置
CN110737536A (zh) 一种基于共享内存的消息存储方法和消息读取方法
CN102609380B (zh) 基于axi总线的sdram控制器写数据快速响应方法
US20070288676A1 (en) Methods and apparatus for servicing commands
JP2010027006A (ja) メモリアクセスシステム、メモリ制御装置、メモリ制御方法、および、プログラム
EP2998867B1 (en) Data writing method and memory system
JP2007080220A (ja) メモリ制御装置。
JP5118731B2 (ja) キャッシュユニット及びプロセッシングシステム
CN106775477A (zh) SSD主控BE Buffer、SSD主控、数据传输管理装置及方法
CN103440215A (zh) 基于fpga实现主设备对sdram存储器快速猝发访问的方法及装置
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
JP7493311B2 (ja) バスシステムおよびその制御方法
JP2012226491A (ja) メモリ制御装置、集積回路、情報処理装置およびメモリ制御方法
CN116848515A (zh) 存储器控制器及存储器访问方法
JP4924970B2 (ja) データ処理システム
JP5623150B2 (ja) 電子機器及びその制御方法
CN102073604B (zh) 一种同步动态存储器读写控制方法、装置和系统
CN107025190B (zh) 系统及其操作方法
WO2012140813A1 (ja) データ転送装置
JP2007179552A5 (ja)
KR101116613B1 (ko) 메모리 액세스 제어 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120809

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: 20120921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121019

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees