[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5598337B2 - メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム - Google Patents

メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム Download PDF

Info

Publication number
JP5598337B2
JP5598337B2 JP2011004221A JP2011004221A JP5598337B2 JP 5598337 B2 JP5598337 B2 JP 5598337B2 JP 2011004221 A JP2011004221 A JP 2011004221A JP 2011004221 A JP2011004221 A JP 2011004221A JP 5598337 B2 JP5598337 B2 JP 5598337B2
Authority
JP
Japan
Prior art keywords
memory access
wraparound
access request
start address
request
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
JP2011004221A
Other languages
English (en)
Other versions
JP2012146139A (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
Priority to JP2011004221A priority Critical patent/JP5598337B2/ja
Priority to US13/328,467 priority patent/US9223704B2/en
Priority to CN201210001615.7A priority patent/CN102622317B/zh
Publication of JP2012146139A publication Critical patent/JP2012146139A/ja
Application granted granted Critical
Publication of JP5598337B2 publication Critical patent/JP5598337B2/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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

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)
  • Memory System (AREA)
  • Bus Control (AREA)

Description

本発明は、メモリアクセス制御回路に関し、特にメモリに対してバーストアクセスを行うメモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システムに関する。
プロセッサはメモリを命令保持領域およびデータ保持領域として使用するため、プログラム実行中に高い頻度でメモリへのアクセスを必要とする。そのようなメモリへのアクセスによる負荷を低減するために、プロセッサとメモリの間にキャッシュメモリが設けられている。キャッシュメモリは連続した複数のワードを1つのラインとして管理するため、キャッシュミスヒット時には複数のワードをまとめてフィルすることになるが、その際、メモリからのデータ転送にはバースト転送が用いられる。
バースト転送により複数ワードの転送を行う際、特定のアドレス範囲内においてアドレスを循環させるラップアラウンド機能を用いることにより、転送されるワードの順序を変更可能とするシステムが知られている。例えば、バースト転送の種類として4バーストラップ(WRAP4)、8バーストラップ(WRAP8)、16バーストラップ(WRAP16)等を指定可能なデータ処理装置が提案されている(例えば、特許文献1参照。)。
特開2006−155488号公報
メモリの階層化が進み、キャッシュメモリとメモリの間にプリフェッチバッファを設ける場合も生じ得る。この場合、プリフェッチバッファの管理サイズはキャッシュメモリのラインサイズよりも長くすることが想定されるため、バースト転送のサイズも増すことになる。例えば、プロセッサから4バーストラップのリクエストがあった場合、プリフェッチバッファにおいては16バーストラップをメモリに要求することが考えられる。この場合においてラップアラウンド機能を用いると、図7(a)に示すように、開始アドレスが第3ワードであったとすると残りの第0乃至2ワードは速やかに転送されず、プロセッサにストールが生じることになる。
本発明はこのような状況に鑑みてなされたものであり、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に、プロセッサストールサイクルが低減するように開始アドレスを変換することを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、プロセッサからの第1のラップアラウンドメモリアクセスリクエストの対象がプリフェッチバッファに格納されているか否かを判定する判定部と、上記対象が上記プリフェッチバッファに格納されていないと判定された場合において上記対象を含む第2のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して上記第2のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部とを具備するメモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システムである。これにより、第1のラップアラウンドメモリアクセスリクエストの応答完了までの処理を高速化し、プロセッサストールサイクルを低減させるという作用をもたらす。
また、この第1の側面において、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分を所定値に置換することにより上記アドレス変換を行うようにしてもよい。この場合において、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのうち上記第1のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの上記下位ビット部分を上記所定値に置換することにより上記アドレス変換を行うようにしてもよい。さらに、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスの上記下位ビット部分をゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
特に、上記第1のラップアラウンドメモリアクセスリクエストが4バーストのラップアラウンドを行うリクエストであり、上記第2のラップアラウンドメモリアクセスリクエストが16バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
また、上記第1のラップアラウンドメモリアクセスリクエストが4バーストのラップアラウンドを行うリクエストであり、上記第2のラップアラウンドメモリアクセスリクエストが8バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
また、上記第1のラップアラウンドメモリアクセスリクエストが8バーストのラップアラウンドを行うリクエストであり、上記第2のラップアラウンドメモリアクセスリクエストが16バーストのラップアラウンドを行うリクエストである場合において、上記アドレス変換部は、上記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位3ビットをゼロ値に置換することにより上記アドレス変換を行うようにしてもよい。
本発明によれば、サイズの異なるラップアラウンドメモリアクセスリクエストを生成する際に開始アドレスを変換することにより、プロセッサストールサイクルを低減することができるという優れた効果を奏し得る。
本発明の実施の形態における情報処理システムの一構成例を示す図である。 本発明の実施の形態におけるバスマスタインターフェース102の一構成例を示す図である。 HBURST[2:0]信号の内容を示す図である。 本発明の実施の形態におけるプリフェッチ回路200の一構成例を示す図である。 本発明の第1の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。 本発明の第1の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。 本発明の第1の実施の形態によるラップアラウンドメモリアクセスリクエストのタイミング例を説明するための図である。 本発明の第2の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。 本発明の第2の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。 本発明の第3の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。 本発明の第3の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。
以下、本発明を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(WRAP4に対してWRAP16を生成する例)
2.第2の実施の形態(WRAP4に対してWRAP8を生成する例)
3.第3の実施の形態(WRAP8に対してWRAP16を生成する例)
<1.第1の実施の形態>
[情報処理システム構成]
図1は、本発明の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、プロセッサ100と、クライアント110乃至130と、プリフェッチ回路200と、メモリバス300と、メモリコントローラ400と、メモリ500を備えている。
プロセッサ100は、プログラムの各命令に従って処理を実行するものである。プログラムの各命令はメモリ500の命令保持領域に保持される。また、処理に必要なデータはメモリ500のデータ保持領域に保持される。これらメモリ500の命令保持領域およびデータ保持領域の内容は、その一部のコピーがプリフェッチ回路200に保持される。また、プロセッサ100は内部にキャッシュメモリ101を備えており、メモリ500の命令保持領域およびデータ保持領域の一部のコピーが保持される。また、プロセッサ100は内部にバスマスタインターフェース102を備えており、メモリバス300に対するやり取りを行うようになっている。
プリフェッチ回路200は、メモリ500の命令保持領域およびデータ保持領域の内容の一部のコピーをプリフェッチして保持するものである。後述するように、このプリフェッチ回路200は、プロセッサ100からのラップアラウンドメモリアクセスリクエストのサイズおよび開始アドレスを変換してメモリバス300に出力する。
メモリバス300は、プロセッサ100に接続するプリフェッチ回路200、プロセッサ100以外の他のクライアント110乃至130、および、メモリコントローラ400を接続するバスである。ここでは統合メモリシステム(Unified Memory System)を想定しているが、本発明はこれに限定されるものではない。
メモリコントローラ400は、メモリ500に対するアクセスを制御するためのコントローラである。メモリ500は、プロセッサ100および他のクライアント110乃至130に共有されるメモリである。
[バスマスタインターフェース]
図2は、本発明の実施の形態におけるバスマスタインターフェース102の一構成例を示す図である。このバスマスタインターフェース102は、ARM社のAHBバスマスタインターフェースに準ずるものであるが、本発明はこれに限定されるものではなく、AXIバスやOCPバス等、ラップアラウンドメモリアクセスを行う他のバスにも適用することができる。
HGRANT信号は、アービタによって許可されたバス転送であることを示す信号である。HREADY信号は、現在の転送が終了したことを示す信号である。HRESP[1:0]信号は、転送ステータスを示す信号である。HRESETn信号は、グローバルリセットを行うための信号である。なお、信号名の最後の「n」は、ローアクティブ信号であることを意味する。
HCLK信号は、バスクロックの入力信号である。HCLKEN信号は、バスクロックのイネーブル信号である。HRDATA[31:0]信号は、メモリ500からのリードデータの入力信号である。
HBUSREQ信号は、バス転送をアービタに要求するための信号である。HLOCK信号は、ロックされたアクセスであることを示す信号である。HTRANS[1:0]は、現在の転送のタイプを示す信号である。
HADDR[31:0]は、メモリ500に対してリードアドレスまたはライトアドレスを出力するアドレス信号である。バースト転送の場合、このアドレス信号は開始アドレスを示すことになる。HWRITE信号は、現在の転送の方向がライト方向であるかリード方向であるかを示す信号である。HSIZE[2:0]は、現在の転送のサイズを示す信号である。HBURST[2:0]は、現在の転送のバースト長を示す信号である。HPROT[3:0]は、プロテクション制御信号である。HWDATA[31:0]信号は、メモリ500に対するライトデータの出力信号である。
図3は、HBURST[2:0]信号の内容を示す図である。HBURST[2:0]が「3'b000」を示す場合には、シングル転送(SINGLE)を意味する。なお、「n'b0…0」は、n桁(ここでは3桁)のビット列を表現するものである。HBURST[2:0]が「3'b001」を示す場合には、長さ指定のないインクリメンタルバースト転送(INCR)を意味する。インクリメンタルバースト転送とは、各バーストを転送する際にアドレスに固定値を加算するものである。HBURST[2:0]が「3'b010」を示す場合には、4バーストのラップアラウンドバースト転送(WRAP4)を意味する。ラップアラウンドバースト転送とは、特定のアドレス範囲内においてアドレスを加算して、ラップ境界においてアドレスを循環させるものである。ここでは、ラップアラウンドメモリアクセスをラップアラウンドバースト転送と同義のものとして扱う。
HBURST[2:0]が「3'b011」を示す場合には、4バーストのインクリメンタルバースト転送(INCR4)を意味する。HBURST[2:0]が「3'b100」を示す場合には、8バーストのラップアラウンドバースト転送(WRAP8)を意味する。HBURST[2:0]が「3'b101」を示す場合には、8バーストのインクリメンタルバースト転送(INCR8)を意味する。HBURST[2:0]が「3'b110」を示す場合には、16バーストのラップアラウンドバースト転送(WRAP16)を意味する。HBURST[2:0]が「3'b111」を示す場合には、16バーストのインクリメンタルバースト転送(INCR16)を意味する。
[プリフェッチ回路の構成]
図4は、本発明の実施の形態におけるプリフェッチ回路200の一構成例を示す図である。このプリフェッチ回路200は、プリフェッチバッファ210と、タグ管理部220と、ヒット判定部230と、リクエスト生成部240と、アドレス変換部250とを備える。
プリフェッチバッファ210は、メモリ500におけるプロセッサ100のための命令保持領域およびデータ保持領域の内容の一部のコピーを保持するバッファである。このプリフェッチバッファ210の管理単位のサイズは、プロセッサ100のキャッシュメモリ101のラインサイズよりも大きいことを想定している。
タグ管理部220は、プリフェッチバッファ210に保持される対象(命令またはデータ)のアドレスのタグを管理するものである。タグとしては、対象のアドレスフィールドの上位の複数ビットのうち、一部のビットが用いられる。
ヒット判定部230は、プロセッサ100からのメモリアクセスがプリフェッチバッファ210にヒットしているか否かを判定するものである。すなわち、プロセッサ100からのメモリアクセスの対象(命令またはデータ)がプリフェッチバッファ210に格納されていればヒットであり、格納されていなければミスヒットとなる。このヒット判定部230は、プロセッサ100からのアドレスHADDR_I[31:0]信号を参照することにより、プリフェッチバッファ210にヒットしているか否かを判定する。
リクエスト生成部240は、プロセッサ100からのメモリアクセスリクエストに従って、メモリ500へのメモリアクセスリクエストを生成するものである。ヒット判定部230がミスヒットであると判定した場合、リクエスト生成部240はプロセッサ100からのバースト種類を表すHBURST_I[2:0]信号に基づいて、新たなバースト種類を表すHBURST_O[2:0]信号を生成する。この第1の実施の形態では、HBURST_I[2:0]信号が「WRAP4」を示している場合に、HBURST_O[2:0]信号として「WRAP16」を出力する。
アドレス変換部250は、プロセッサ100からのラップアラウンドメモリアクセスリクエストのバースト転送の開始アドレスを変換するものである。ヒット判定部230がミスヒットであると判定した場合、アドレス変換部250はプロセッサ100からの開始アドレスを表すHADDR_I[31:0]信号を所定の規則に従ってアドレス変換して、新たな開始アドレスを表すHADDR_O[31:0]信号を生成する。アドレス変換の具体例として、HADDR_I[31:0]信号の開始アドレスのバースト単位の下位ビット部分を所定値(例えば、ゼロ値)に置換することが考えられる。この下位ビット部分の長さは、プロセッサ100からのラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さである。この第1の実施の形態の場合、プロセッサ100からのラップアラウンドサイズが4バーストであるため、HADDR_I[31:0]信号の開始アドレスのバースト単位の下位2ビット(HADDR_I[3:2])をゼロ値に置換する。後述のように、プロセッサ100からのラップアラウンドサイズが8バーストである場合には、HADDR_I[31:0]信号の開始アドレスのバースト単位の下位3ビット(HADDR_I[4:2])をゼロ値に置換する。すなわち、プロセッサ100からのラップアラウンドサイズが2mバーストである場合には、HADDR_I[31:0]信号の開始アドレスのバースト単位の下位mビット(HADDR_I[(m+1):2])をゼロ値に置換する。なお、置換されたビット部分以外は、HADDR_I[31:0]信号の値がそのまま使用されて、HADDR_O[31:0]信号となる。
[ラップアラウンドメモリアクセスリクエストの応答タイミング]
図5は、本発明の第1の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。この第1の実施の形態では、プロセッサ100からのラップアラウンドメモリアクセスリクエストがWRAP4であり、プリフェッチ回路200からのラップアラウンドメモリアクセスリクエストがWRAP16である例を示している。
同図(a)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「0」乃至「3」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「0」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(b)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「4」乃至「7」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「4」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(c)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「8」乃至「11」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「8」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(d)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「12」乃至「15」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「12」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
図6は、本発明の第1の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ100からのバースト種類を表すHBURST_I[2:0]信号が「WRAP4」を示している場合、新たなバースト種類を表すHBURST_O[2:0]信号は「WRAP16」となる。また、プロセッサ100からの開始アドレスを表すHADDR_I[31:0]信号のうち、バースト単位の下位2ビット(HADDR_I[3:2])がゼロ値に置換されて、HADDR_O[31:0]信号が生成される。
この場合、追加レイテンシは「+0」乃至「+3」であり、最悪のケースでも3サイクルの追加レイテンシしか生じない。これ対し、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で12サイクルのストール期間が生じ得る。
図7は、本発明の第1の実施の形態によるラップアラウンドメモリアクセスリクエストのタイミング例を説明するための図である。ここでは、プロセッサ100からのバースト種類が「WRAP4」であり、プリフェッチ回路200からのバースト種類が「WRAP16」である。また、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスを「3」としている。
同図(a)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのままメモリ500へ出力したと仮定した場合のタイミングである。この場合、バースト「3」は速やかに受け取ることができるが、バースト「0」以降を受け取るまでに待ちが生じ、プロセッサ100において12サイクルのストール期間が生じてしまう。
そこで、本発明の第1の実施の形態では、プリフェッチ回路200からのラップアラウンドメモリアクセスリクエストの開始アドレスを「0」に固定することにより、同図(b)のように早期にバースト転送を完了する。この場合、バースト「3」を受け取るまでに3サイクルの追加レイテンシが生じるが、バースト「0」以降は既に揃っているため、さらなる待ちを生じることなくバースト転送を完了することができる。すなわち、この例では、9サイクル分の性能向上を実現することができることがわかる。
このように、本発明の第1の実施の形態によれば、WRAP4からWRAP16を生成する際に開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
<2.第2の実施の形態>
この第2の実施の形態では、プロセッサ100からのラップアラウンドメモリアクセスリクエストがWRAP4であり、プリフェッチ回路200からのラップアラウンドメモリアクセスリクエストがWRAP8である例について説明する。情報処理システムとしての構成は第1の実施の形態と同様である。
[ラップアラウンドメモリアクセスリクエストの応答タイミング]
図8は、本発明の第2の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。この第2の実施の形態は、プリフェッチ回路200からのラップアラウンドメモリアクセスリクエストがWRAP16である以外は、上述の第1の実施の形態と同様である。
同図(a)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「0」乃至「3」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「0」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(b)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「4」乃至「7」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「4」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(c)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「8」乃至「11」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「8」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
同図(d)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「12」乃至「15」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「12」に固定することにより、「+0」乃至「+3」の追加レイテンシで4バーストの転送を完了することができる。
図9は、本発明の第2の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ100からのバースト種類を表すHBURST_I[2:0]信号が「WRAP4」を示している場合、新たなバースト種類を表すHBURST_O[2:0]信号は「WRAP8」となる。また、プロセッサ100からの開始アドレスを表すHADDR_I[31:0]信号のうち、バースト単位の下位2ビット(HADDR_I[3:2])がゼロ値に置換されて、HADDR_O[31:0]信号が生成される。
この場合、上述の第1の実施の形態と同様に、追加レイテンシは「+0」乃至「+3」であり、最悪のケースでも3サイクルの追加レイテンシしか生じない。これ対し、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で4サイクルのストール期間が生じ得る。
このように、本発明の第2の実施の形態によれば、WRAP4からWRAP8を生成する際に開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
<3.第3の実施の形態>
この第3の実施の形態では、プロセッサ100からのラップアラウンドメモリアクセスリクエストがWRAP8であり、プリフェッチ回路200からのラップアラウンドメモリアクセスリクエストがWRAP16である例について説明する。情報処理システムとしての構成は第1の実施の形態と同様である。
[ラップアラウンドメモリアクセスリクエストの応答タイミング]
図10は、本発明の第3の実施の形態におけるラップアラウンドメモリアクセスリクエストの対応関係を示す図である。
同図(a)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「0」乃至「7」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「0」に固定することにより、「+0」乃至「+7」の追加レイテンシで8バーストの転送を完了することができる。
同図(b)は、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスが「8」乃至「15」である場合の対応関係を示している。この場合、プリフェッチ回路200への応答の開始アドレスを「8」に固定することにより、「+0」乃至「+7」の追加レイテンシで8バーストの転送を完了することができる。
図11は、本発明の第3の実施の形態におけるラップアラウンドメモリアクセスリクエストの変換規則を示す図である。すなわち、プロセッサ100からのバースト種類を表すHBURST_I[2:0]信号が「WRAP8」を示している場合、新たなバースト種類を表すHBURST_O[2:0]信号は「WRAP16」となる。また、プロセッサ100からの開始アドレスを表すHADDR_I[31:0]信号のうち、バースト単位の下位3ビット(HADDR_I[4:2])がゼロ値に置換されて、HADDR_O[31:0]信号が生成される。
この場合、追加レイテンシは「+0」乃至「+7」であり、最悪のケースでも7サイクルの追加レイテンシしか生じない。これ対し、プロセッサ100からのラップアラウンドメモリアクセスリクエストの開始アドレスをそのまま用いた場合、最大で12サイクルのストール期間が生じ得る。
このように、本発明の第3の実施の形態によれば、WRAP8からWRAP16を生成する際に開始アドレスのバースト単位の下位3ビットをゼロ値に置換することにより、プロセッサストールサイクルを低減することができる。
なお、本発明の実施の形態では、AHBバスマスタインターフェースに準ずるものを例に挙げて説明したが、本発明はこれに限定されるものではなく、AXIバスやOCPバス等、ラップアラウンドメモリアクセスを行う他のバスにも適用することができる。
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
100 プロセッサ
101 キャッシュメモリ
102 バスマスタインターフェース
110〜130 クライアント
200 プリフェッチ回路
210 プリフェッチバッファ
220 タグ管理部
230 ヒット判定部
240 リクエスト生成部
250 アドレス変換部
300 メモリバス
400 メモリコントローラ
500 メモリ

Claims (7)

  1. プロセッサからの第1のラップアラウンドメモリアクセスリクエストの対象がプリフェッチバッファに格納されているか否かを判定する判定部と、
    前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記対象を含む第2のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
    前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第2のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
    を具備し、
    前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第1のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
    メモリアクセス制御回路。
  2. 前記第1のラップアラウンドメモリアクセスリクエストが4バーストのラップアラウンドを行うリクエストであり、前記第2のラップアラウンドメモリアクセスリクエストが16バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより前記アドレス変換を行う請求項記載のメモリアクセス制御回路。
  3. 前記第1のラップアラウンドメモリアクセスリクエストが4バーストのラップアラウンドを行うリクエストであり、前記第2のラップアラウンドメモリアクセスリクエストが8バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位2ビットをゼロ値に置換することにより前記アドレス変換を行う請求項記載のメモリアクセス制御回路。
  4. 前記第1のラップアラウンドメモリアクセスリクエストが8バーストのラップアラウンドを行うリクエストであり、前記第2のラップアラウンドメモリアクセスリクエストが16バーストのラップアラウンドを行うリクエストである場合において、前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位3ビットをゼロ値に置換することにより前記アドレス変換を行う請求項記載のメモリアクセス制御回路。
  5. プリフェッチバッファと、
    プロセッサからの第1のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
    前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記対象を含む第2のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
    前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第2のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
    を具備し、
    前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第1のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
    プリフェッチ回路。
  6. メモリと、
    前記メモリの一部のコピーを格納するプリフェッチバッファと、
    プロセッサからの第1のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
    前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記メモリに対する前記対象を含む第2のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
    前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第2のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
    を具備し、
    前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第1のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
    メモリ装置。
  7. プロセッサと、
    メモリと、
    前記メモリの一部のコピーを格納するプリフェッチバッファと、
    前記プロセッサからの第1のラップアラウンドメモリアクセスリクエストの対象が前記プリフェッチバッファに格納されているか否かを判定する判定部と、
    前記対象が前記プリフェッチバッファに格納されていないと判定された場合において前記メモリに対する前記対象を含む第2のラップアラウンドメモリアクセスリクエストを生成するリクエスト生成部と、
    前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスを所定の規則に従ってアドレス変換して前記第2のラップアラウンドメモリアクセスリクエストの開始アドレスとして生成するアドレス変換部と
    を具備し、
    前記アドレス変換部は、前記第1のラップアラウンドメモリアクセスリクエストの開始アドレスのバースト単位の下位ビット部分のうち、前記第1のラップアラウンドメモリアクセスリクエストのラップアラウンドサイズに応じた長さの前記下位ビット部分をゼロ値に置換することにより前記アドレス変換を行う
    情報処理システム。
JP2011004221A 2011-01-12 2011-01-12 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム Expired - Fee Related JP5598337B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011004221A JP5598337B2 (ja) 2011-01-12 2011-01-12 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
US13/328,467 US9223704B2 (en) 2011-01-12 2011-12-16 Memory access control circuit, prefetch circuit, memory device and information processing system
CN201210001615.7A CN102622317B (zh) 2011-01-12 2012-01-05 存储器访问控制电路、预取电路、存储器设备和信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011004221A JP5598337B2 (ja) 2011-01-12 2011-01-12 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム

Publications (2)

Publication Number Publication Date
JP2012146139A JP2012146139A (ja) 2012-08-02
JP5598337B2 true JP5598337B2 (ja) 2014-10-01

Family

ID=46545026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011004221A Expired - Fee Related JP5598337B2 (ja) 2011-01-12 2011-01-12 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム

Country Status (3)

Country Link
US (1) US9223704B2 (ja)
JP (1) JP5598337B2 (ja)
CN (1) CN102622317B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229894B2 (en) * 2013-04-09 2016-01-05 Apple Inc. Protocol conversion involving multiple virtual channels
IT202000009364A1 (it) 2020-04-29 2021-10-29 St Microelectronics Srl Procedimento per accedere a una memoria e circuito corrispondente

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
US5497466A (en) * 1992-07-17 1996-03-05 Texas Instruments Inc. Universal address generator
US5828853A (en) * 1995-05-08 1998-10-27 Apple Computer, Inc. Method and apparatus for interfacing two systems operating in potentially differing Endian modes
US6507629B1 (en) * 1998-04-07 2003-01-14 Sony Corporation Address generator, interleave unit, deinterleave unit, and transmission unit
US6405280B1 (en) * 1998-06-05 2002-06-11 Micron Technology, Inc. Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequence
EP2241968B1 (en) * 1998-08-24 2012-06-27 MicroUnity Systems Engineering, Inc. System with wide operand architecture, and method
EP1050819A1 (en) * 1999-05-03 2000-11-08 Sgs Thomson Microelectronics Sa Computer memory access
JP2000347934A (ja) * 1999-06-02 2000-12-15 Matsushita Electric Ind Co Ltd キャッシュメモリ装置
US6523108B1 (en) * 1999-11-23 2003-02-18 Sony Corporation Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string
US6584546B2 (en) * 2001-01-16 2003-06-24 Gautam Nag Kavipurapu Highly efficient design of storage array for use in first and second cache spaces and memory subsystems
US7546516B2 (en) * 2002-03-14 2009-06-09 The Helbig Company, Llc System and method for forward error correction
US6795899B2 (en) * 2002-03-22 2004-09-21 Intel Corporation Memory system with burst length shorter than prefetch length
US6895474B2 (en) * 2002-04-29 2005-05-17 Micron Technology, Inc. Synchronous DRAM with selectable internal prefetch size
US7162588B2 (en) * 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
TWI229290B (en) * 2002-09-11 2005-03-11 Sunplus Technology Co Ltd Storage structure and the method capable of storing and forwarding instructions and data
US6895475B2 (en) * 2002-09-30 2005-05-17 Analog Devices, Inc. Prefetch buffer method and apparatus
US20050213761A1 (en) * 2002-12-02 2005-09-29 Walmsley Simon R Storing number and a result of a function on an integrated circuit
US7139878B2 (en) * 2003-06-20 2006-11-21 Freescale Semiconductor, Inc. Method and apparatus for dynamic prefetch buffer configuration and replacement
JP4606725B2 (ja) * 2003-11-10 2011-01-05 株式会社デジタル 高速メモリアクセス制御装置
US7380095B2 (en) * 2004-06-30 2008-05-27 Intel Corporation System and method for simulating real-mode memory access with access to extended memory
US7334116B2 (en) * 2004-10-06 2008-02-19 Sony Computer Entertainment Inc. Bit manipulation on data in a bitstream that is stored in a memory having an address boundary length
US7779198B2 (en) * 2004-11-23 2010-08-17 Efficient Memory Technology Method and apparatus of multiple abbreviations of interleaved addressing of paged memories
JP2006155488A (ja) 2004-12-01 2006-06-15 Sony Corp データ処理装置およびデータ処理方法
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
JP2009508201A (ja) * 2005-09-09 2009-02-26 フリースケール セミコンダクター インコーポレイテッド 相互接続、及び相互接続の設計方法
CN100449481C (zh) * 2007-06-29 2009-01-07 东南大学 具有多通道指令预取功能的存储控制电路
JP5292934B2 (ja) * 2008-06-11 2013-09-18 ソニー株式会社 メモリ制御装置および情報処理装置
JP5391833B2 (ja) * 2009-05-27 2014-01-15 富士通セミコンダクター株式会社 メモリコントローラ、システムおよび半導体メモリのアクセス制御方法
JP5118731B2 (ja) * 2010-08-12 2013-01-16 株式会社東芝 キャッシュユニット及びプロセッシングシステム

Also Published As

Publication number Publication date
CN102622317A (zh) 2012-08-01
US9223704B2 (en) 2015-12-29
JP2012146139A (ja) 2012-08-02
US20120191925A1 (en) 2012-07-26
CN102622317B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN114461548B (zh) 加速器结构
Starke et al. The cache and memory subsystems of the IBM POWER8 processor
US8443151B2 (en) Prefetch optimization in shared resource multi-core systems
US10210117B2 (en) Computing architecture with peripherals
US11204867B2 (en) PCIe controller with extensions to provide coherent memory mapping between accelerator memory and host memory
JP4243318B2 (ja) ソフトウェアとハードウエアで同時にキャッシュフィルする方法と装置
US12086064B2 (en) Aliased mode for cache controller
US12014206B2 (en) Pipeline arbitration
JP2012150529A (ja) メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
Lange et al. Architectures and execution models for hardware/software compilation and their system-level realization
Arimilli et al. IBM POWER9 processor and system features for computing in the cognitive era
US7882309B2 (en) Method and apparatus for handling excess data during memory access
JP5598337B2 (ja) メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
US20090006777A1 (en) Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
JP2022503558A (ja) 命令キャッシュにおけるプリフェッチの強制終了及び再開
US8560748B2 (en) Information processing system including interrupt processing function
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
Sridahr Simulation and Comparative Analysis of NoC Routers and TileLink as Interconnects for OpenPiton
NZ716954B2 (en) Computing architecture with peripherals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140728

R151 Written notification of patent or utility model registration

Ref document number: 5598337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees