JP2017502421A - メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法 - Google Patents

メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法 Download PDF

Info

Publication number
JP2017502421A
JP2017502421A JP2016544135A JP2016544135A JP2017502421A JP 2017502421 A JP2017502421 A JP 2017502421A JP 2016544135 A JP2016544135 A JP 2016544135A JP 2016544135 A JP2016544135 A JP 2016544135A JP 2017502421 A JP2017502421 A JP 2017502421A
Authority
JP
Japan
Prior art keywords
memory
transaction
clients
pattern data
page
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.)
Pending
Application number
JP2016544135A
Other languages
English (en)
Inventor
ムリガンカ・モンダル
ハウ−ジン・ロ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017502421A publication Critical patent/JP2017502421A/ja
Pending legal-status Critical Current

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

DRAMメモリデバイスへのアクセス要求を管理するためのシステム、方法、およびコンピュータプログラムが開示される。一実施形態は、複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップを含む。次に、受信されたメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらす可能性があると判断される。次いで、受信されたメモリアクセスパターンデータに従って、第1および第2のメモリクライアントによるDRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、将来のページ競合が解消される。

Description

関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、「System and Method for Resolving DRAM Page Conflicts Based on Memory Access Patterns Provided by Memory Clients」と題する2014年1月10日に出願された米国仮特許出願第61/926,207号の優先権の利益を主張する。
ダブルデータレート(DDR)型メモリなどのダイナミックランダムアクセスメモリ(DRAM)は、様々なコンピューティングデバイス(たとえば、パーソナルコンピュータ、ラップトップ、ノートブック、ビデオゲームコンソール、ポータブルコンピューティングデバイス、モバイルフォンなど)において使用されている。そのようなデバイスは通常、DDRメモリに対する読取りまたは書込み要求を制御するための1つまたは複数のメモリクライアント(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)など)と通信しているメモリコントローラを備えるシステムオンチップ(SoC)を含む。従来のメモリシステムでは、同時メモリクライアントがDDR読取りまたは書込み要求を行おうと試みたとき、メモリコントローラは、たとえば、メモリクライアントの優先度およびアクセス要求の時間に基づいて、メモリアクセスを許可する。
同時作業負荷状況は厄介であり得る。たとえば、あるメモリクライアントが大きいデータトランザクションを行おうと試みているとき、より優先度の高い異なるメモリクライアントは、DDRメモリにおいてページ競合状況をもたらすことがあり、これによりメモリコントローラは、大きいデータトランザクションを、比較的小さいデータトランザクションとともに再度優先度付けすることを余儀なくされる。当技術分野で知られているように、DDRメモリデバイスは、複数のバンクを備えることができる。所与の時間にバンクにおいて単一のページのみがアクセスされ得るようにDDRメモリが構成されることに起因して、ページ競合が生じる。したがって、同時使用状況では、メモリコントローラは、大きいデータトランザクションを「ページ閉」動作により一時停止し、より優先度の高いトランザクションを「ページ開」動作により開始する。より小さいデータトランザクションが完了したとき、メモリコントローラは、別の「ページ閉」を実行し、一時停止されたトランザクションを別の「ページ開」動作により再開する。
優先度ベースのDDRアクセスを実施することは有利であり得る一方、ページ競合を管理することは、ページ開/閉動作の確率の上昇に起因してメモリコントローラ動作の効率性および電力節約に悪影響を及ぼすことがある。したがって、当技術分野において、ページ競合状況を最小限に抑えるための改善されたシステムおよび方法が依然として必要とされている。
DRAMメモリデバイスへのアクセス要求を管理するためのシステム、方法、およびコンピュータプログラムが開示される。一実施形態は、複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップと、受信されたメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するステップと、受信されたメモリアクセスパターンデータに従って、第1および第2のメモリクライアントによるDRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、将来のページ競合を解消するステップとを含む方法である。
別の実施形態は、DRAMメモリデバイスへのアクセス要求を管理するためのシステムである。1つのそのようなシステムは、DRAMメモリと、複数のメモリクライアントと、メモリコントローラとを備える。DRAMメモリデバイスは、複数のバンクを備える。メモリクライアントは、メモリコントローラと通信しており、メモリコントローラは、DRAMメモリデバイスへのアクセスを制御する。メモリクライアントは、メモリコントローラにメモリアクセスパターンデータを提供するように構成される。メモリコントローラは、メモリクライアントのうちの1つまたは複数からのメモリアクセスパターンデータに基づいて、複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するように構成される。
図において、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通して同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号に対する文字指定は省略される場合がある。
1つまたは複数のメモリクライアントによって提供されたメモリアクセスパターンデータに従って、メモリコントローラがページ競合を解消することを可能にするためのシステムの一実施形態のブロック図である。 1つまたは複数のメモリクライアントによって提供されたメモリアクセスパターンデータに従って、ページ競合を解消するための図1のシステムにおいて実施される方法の一実施形態を示すフローチャートである。 図4および図5に示すタイミング図に関するデータ凡例である。 周期的トラフィックストリームおよび非周期的優先トラフィックストリームに関連するページ競合を解消するための図1のメモリコントローラによって実施される方法の一実施形態を示すタイミング図である。 2つの周期的トラフィックストリームに関連するページ競合を解消するための図1のメモリコントローラによって実施される方法の別の実施形態を示すタイミング図である。 図1のシステムを実施するための例示的なポータブルコンピューティングデバイスを示すブロック図である。
「例示的」という言葉は、「例、事例、または例示として役立つ」ことを意味するように本明細書において使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方は、構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在する場合があり、構成要素は、1つのコンピュータに局在する場合があり、かつ/または2つ以上のコンピュータ間に分散する場合がある。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、信号を用いて、ローカルシステム内、分散システム内の別の構成要素と対話し、かつ/またはインターネットなどのネットワークにわたって他のシステムと対話する1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスを用いて通信してもよい。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含み得る。
図1は、1つまたは複数のメモリクライアント110のメモリアクセスパターンの予備知識または事前知識に基づいて、DRAMメモリデバイス104に関連するページ競合を解消することによって、メモリコントローラ102の効率性および電力節約を改善するためのシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。
図1に示すように、システム100は、メモリコントローラ102と、複数のメモリクライアント110a、110bおよび110cと、DRAMメモリシステム104とを備える。メモリクライアント110は、DRAMメモリシステム104への読取り/書込みアクセスを要求する1つまたは複数のプロセッサまたは他のクライアントを備えることができる。一実施形態では、メモリクライアント110a、110bおよび110cは、それぞれ、中央処理装置(CPU)、グラフィックス処理装置(GPU)、およびデジタル信号プロセッサ(DSP)を備える。メモリクライアント110a、110bおよび110cは、それぞれ、インターフェース112a、112bおよび112cを介してメモリコントローラ102と通信する。メモリコントローラ102は、インターフェース108を介してDRAMメモリシステム104に結合される。
図1に示す構成要素のうちの1つまたは複数が、DRAMメモリシステム104に結合されたシステムオンチップ(SoC)に存在し得ることを諒解されたい。当技術分野で知られているように、DRAMメモリシステム104は、メモリの複数のバンク106a〜106dを備える。一実施形態では、DRAMメモリシステム104は、ダブルデータレート(DDR)型メモリを備える。各バンク106は、データの1つまたは複数のビットを記憶するようにそれぞれ構成された複数のメモリ要素を含む。各バンク内のメモリ要素はページに編成され得る。たとえば、行および列によってアドレス指定可能であるメモリデバイスにおいて、各ページは、特定のバンクに含まれるメモリ要素の行を含むことができる。上述のように、バンク106ごとに1つのページのみが一度にアクセスされ得るので、同時作業負荷が同じバンク106にアクセスしようと試みたとき、ページ競合が発生する。
図1にさらに示すように、メモリコントローラ102は、パターンベースのページ競合解消構成要素114を備え、パターンベースのページ競合解消構成要素114は一般に、メモリクライアント110のメモリアクセスパターンの予備知識または事前知識に基づいてページ競合を解消するための論理を備える。メモリクライアント110a、110b、および110cの各々は、それぞれ、メモリアクセスパターンデータ116a、116b、および116cを決定し、メモリコントローラ102に提供するように構成され得る。メモリアクセスパターンデータ116は、メモリ要求118の前にメモリコントローラ102に提供され得る。メモリアクセスパターンデータ116は、たとえば、トランザクション頻度およびトランザクション持続時間を含む、周期的トラフィックストリームを定義するか、またはさもなければアクセスパターンのモデルを表す、任意の適切なデータを備え得ることを諒解されたい。以下でより詳細に説明するように、データは、インターリーブ手順中にトランザクションが遅延し得る時間量を指定するレイテンシ耐性を含むこともできる。メモリアクセスパターンデータ116は、対応するメモリクライアント110によって、あるいはメモリ要求118と同じインターフェースもしくはメモリ要求118とは異なるインターフェースを介して、または1つもしくは複数のサイドチャネルを介して提供され得る。
図2は、2つ以上のメモリクライアント110の同時作業負荷中のページ競合を解消するためのシステム100によって実施され得る方法200の一実施形態を示す。ブロック202において、メモリクライアント110のうちの1つまたは複数は、それの関連メモリトラフィックに関するメモリアクセスパターンデータ116を決定、追跡、またはさもなければ定義することができる。メモリアクセスパターンデータ116は、周期的トラフィックストリームを定義するための以下のまたは他のタイプのデータのいずれかを備えることができる。トランザクション持続時間、トランザクション頻度、インターリーブレイテンシ耐性または遅延しきい値、および/またはメモリアクセスパターンを定義し得る任意の他のデータ。メモリクライアント110または任意の外部論理がメモリアクセスパターンデータ116を決定し得ることを諒解されたい。ブロック204において、メモリコントローラ102は、複数のメモリクライアント110のうちの少なくとも1つからメモリアクセスパターンデータ116を受信する。上述のように、メモリアクセスパターンデータ116は、メモリ要求118と同じインターフェース112または代替インターフェースを介して提供され得る。ブロック206において、ページ競合解消構成要素114は、メモリアクセスパターンデータ116にアクセスし、メモリクライアント110のうちの1つの将来のトランザクションが、バンク106のうちの1つに関連する将来のページ競合をもたらすことになるかどうかを判断することができる。たとえば、メモリアクセスパターンデータ116に基づいて、ページ競合解消構成要素114は、メモリクライアント110a(たとえば、CPU)が、別のメモリクライアント110b(たとえば、GPU)の現在のトランザクションとの将来のページ競合をもたらすことになると判断し得る。ブロック208および210において、メモリコントローラ102は、たとえば、メモリアクセスパターンデータ116に従ってメモリクライアント110aおよび110bによる関連バンク106へのアクセスをインターリーブすることによって、将来のページ競合を解消する。一実施形態では、アクセスは、たとえば、以下でより詳細に説明するように最大レイテンシ耐性までメモリクライアント110のうちの1つまたは複数を遅延させ
ることによって、インターリーブされ得る。最大レイテンシ耐性は、システム100における任意の適切な構成要素(たとえば、メモリコントローラ102、メモリクライアント110など)によって生成され、パターンベースのページ競合解消構成要素114に提供され得る。
当業者は、ページ競合解消構成要素114が、1つまたは複数の周期的トラフィックストリームからの同時作業負荷に対処するために使用されるページ閉動作およびページ開動作の数を最小限に抑えるように構成され得ることを諒解されよう。図4および図5は、第1のメモリクライアントAおよび第2のメモリクライアントBに関連するトラフィックストリームを伴う同時作業負荷状況において、メモリアクセスをインターリーブするための2つの例示的な実施形態を示す。図3は、図4および図5に示すタイミング図におけるデータ信号に関する凡例301である。代替のインターリーブおよび/または遅延方式ならびに任意の数のトラフィックストリームがサポートされ得ることを諒解されたい。図4および図5は、2つのトラフィックストリームを参照しながらページ競合解消構成要素114の一般的な動作を示すために提示されているにすぎない。当業者は、対応するトランザクションが周期的トランザクション、非周期的トランザクション、またはそれらの任意の組合せとして実施される最適化技法が1つまたは複数のメモリクライアント110に適用され得ることを諒解されよう。
図4は、周期的トラフィックストリーム300(メモリクライアントA)および非周期的優先トラフィックストリーム310(メモリクライアントB)に関連するページ競合を解消するための方法の一実施形態を示す。周期的トラフィックストリーム300は、固定のトランザクション持続時間およびトランザクション頻度を有する3つのトランザクション302、304、および306を備える。周期的トラフィックストリーム300がメモリアクセスパターンデータ116(たとえば、トランザクション持続時間、トランザクション頻度、およびレイテンシ耐性)によって定義され得、メモリアクセスパターンデータ116が実際のメモリアクセス要求118の前にメモリコントローラ102に提供され得ることを諒解されたい。非周期的トラフィックストリーム310は、ランダム優先トランザクション311〜320を備える。図4にさらに示すように、周期的トラフィックストリーム300は、縦の破線によって表されるフレーム境界までの持続時間390を含むことができる。
(従来の解決策と同様の)デフォルト同時アクセス動作モードがタイミング図320に示されている。この動作モードでは、ページ競合を顧慮せずにトランザクション311〜320に優先権が与えられる。トランザクション302、304および306は、利用可能なときにアクセス300を許可され得る。タイミング図320を参照すると、メモリコントローラ102は、次のようにアクセスを許可し得る。
(1)優先トランザクション311、
(2)ページ開/閉325a、
(3)周期的トランザクションの開始302a、
(4)ページ開/閉325b、
(5)優先トランザクション312、
(6)ページ開/閉325c、
(7)周期的トランザクションの第2の部分302b、
(8)ページ開/閉325d、
(9)優先トランザクション313、
(10)優先トランザクション314、
(11)優先トランザクション315、
(12)ページ開/閉325e、
(13)周期的トランザクション304、
(14)ページ開/閉325f、
(15)優先トランザクション316、
(16)優先トランザクション317、
(17)優先トランザクション318、
(18)優先トランザクション319、
(19)ページ開/閉325i、
(20)周期的トランザクションの第1の部分306a、
(21)ページ開/閉325j、
(22)優先トランザクション320、
(23)ページ開/閉325k、
(24)周期的トランザクションの第2の部分306b。
従来の動作モードとは対照的に、タイミング図330は、周期的トラフィックストリーム300を定義するメモリアクセスパターンデータ116に基づいて、優先トランザクション311〜320と周期的トランザクション302、304および306とをインターリーブすることによって、ページ競合を解消するための一実施形態を示す。この実施形態では、メモリコントローラ102は、優先トランザクション311〜320に優先権を与える一方で、ページ開/閉動作を最小限に抑えるように構成される。タイミング図330を参照すると、メモリコントローラ102は、次のようにアクセスをインターリーブし得る。
(1)優先トランザクション311、
(2)優先トランザクション312、
(3)ページ開/閉327a、
(4)周期的トランザクション302、
(5)ページ開/閉327b、
(6)優先トランザクション313、
(7)優先トランザクション314、
(8)優先トランザクション315、
(9)ページ開/閉327c、
(10)周期的トランザクション304、
(11)ページ開/閉327d、
(12)優先トランザクション316、
(13)優先トランザクション317、
(14)優先トランザクション318、
(15)優先トランザクション319、
(16)優先トランザクション320、
(17)ページ開/閉327e、
(18)周期的トランザクション306。
当業者は、図4に示すようにアクセスをインターリーブすることによって、メモリコントローラ102がページ開/閉動作の数を減らし、それによって効率性を改善し、電力を節約することを諒解されよう。
図5は、2つの周期的トラフィックストリーム400および410に関連するページ競合を解消するための方法の別の実施形態を示す。周期的トラフィックストリーム400は、固定のトランザクション持続時間およびトランザクション頻度を有する3つのトランザクション402、404、および406を備える。周期的トラフィックストリーム410は、固定のトランザクション持続時間およびトランザクション頻度を有する3つの優先トランザクション412、414、および416を備える。周期的トラフィックストリーム400および410は、トランザクション持続時間、トランザクション頻度、およびレイテンシ耐性を備えるメモリアクセスパターンデータ116によって定義され得、メモリアクセスパターンデータ116は、実際のメモリアクセス要求118の前にメモリコントローラ102に提供され得る。周期的トラフィックストリーム400は、縦の破線によって表されるフレーム境界までの持続時間440を含むことができる。
図5(タイミング図420)に示すように、メモリコントローラ102は、次のようにデフォルト同時アクセス動作モードにおいてアクセスを許可し得る。
(1)周期的トランザクションの第1の部分402a、
(2)ページ開/閉421a、
(3)優先トランザクション412、
(4)ページ開/閉421b、
(5)周期的トランザクションの第2の部分402b、
(6)周期的トランザクションの第1の部分404a、
(7)ページ開/閉421c、
(8)優先トランザクション414、
(9)ページ開/閉421d、
(10)周期的トランザクションの第2の部分404b、
(11)周期的トランザクションの第1の部分406a、
(12)ページ開/閉421e、
(13)優先トランザクション416、
(14)ページ開/閉421f、
(15)周期的トランザクションの第2の部分406b。
タイミング図430は、周期的トラフィックストリーム400および410を定義するそれぞれのメモリアクセスパターンデータ116に従って、優先トランザクション412、414、および416と周期的トランザクション402、404および406とをインターリーブすることによって、ページ競合を解消するための一実施形態を示す。この実施形態では、メモリコントローラ102は、優先トランザクション412、414、および416に優先権を与え、周期的トラフィックストリーム400を一時停止および再開する必要を回避する一方で、将来のページ競合を解消する。メモリコントローラ102は、次のようにアクセスをインターリーブし得る。
(1)優先トランザクション412、
(2)ページ開/閉431a、
(3)周期的トランザクション402、
(4)ページ開/閉431b、
(5)優先トランザクション414、
(6)ページ開/閉431c、
(7)周期的トランザクション404、
(8)ページ開/閉431d、
(9)優先トランザクション416、
(10)ページ開/閉431e、
(11)周期的トランザクション406、
(12)ページ開/閉431f。
上述のように、システム100は任意の望ましいコンピューティングシステムに組み込まれてよい。図6は、例示的なポータブルコンピューティングデバイス(PCD)500に組み込まれたシステム100を示す。システム100のいくつかの構成要素はSoC322(図6)に含まれるが、他の構成要素(たとえば、DRAMメモリ104)はSoC322に結合された外部構成要素であり得ることが容易に諒解されよう。SoC322は、マルチコアCPU502を含み得る。マルチコアCPU502は、第0のコア610、第1のコア612および第Nのコア614を含み得る。コアのうちの1つは、たとえば、グラフィックス処理装置(GPU)を備え、他のコアのうちの1つまたは複数は、CPUを備える場合がある。
ディスプレイコントローラ328およびタッチスクリーンコントローラ330がCPU502に結合され得る。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ506は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合され得る。
図6は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU502に結合されることをさらに示す。さらに、ビデオ増幅器336がビデオエンコーダ334およびタッチスクリーンディスプレイ506に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図6に示すように、ユニバーサルシリアルバス(USB)コントローラ340がマルチコアCPU502に結合される。同様に、USBポート342がUSBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346もマルチコアCPU502に結合され得る。メモリ104は、SoC322に存在するか、またはSoC322に結合され得る。
さらに、図6に示すように、デジタルカメラ348がマルチコアCPU502に結合され得る。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図6にさらに示すように、ステレオオーディオコーダ-デコーダ(コーデック)350がマルチコアCPU502に結合され得る。その上、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図6は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナー362がステレオオーディオコーデック350に結合され得る。同様に、FMアンテナ364がFMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
図6は、無線周波(RF)トランシーバ368がマルチコアCPU502に結合され得ることをさらに示す。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。図6に示すように、キーパッド616がマルチコアCPU502に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がマルチコアCPU502に結合され得る。さらに、バイブレータデバイス378がマルチコアCPU502に結合され得る。
図6はまた、電源380がオンチップシステム322に結合され得ることを示す。特定の態様では、電源380は、電力を必要とするPCD500の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から導出されるDC電源である。
図6は、PCD500がデータネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナー、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、別個のネットワークカード388でなくてもよい。
図6に示すように、タッチスクリーンディスプレイ506、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド616、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にあってもよい。
本明細書で説明する方法ステップのうちの1つまたは複数は、上記で説明したモジュールなどのコンピュータプログラム命令としてメモリに記憶される場合があることを諒解されたい。これらの命令は、本明細書で説明する方法を実行するために、対応するモジュールと組み合わせて、またはそれと協働して、任意の適切なプロセッサによって実行されてよい。
本発明が説明通りに機能するように、本明細書で説明するプロセスまたはプロセスフローにおけるいくつかのステップが他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明されたステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行されてよく、後に実行されてよく、または他のステップと並行して(実質的に同時に)実行されてよいことを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップが省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの言葉は、ステップの順序を限定することを意図していない。これらの言葉は単に、例示的な方法の説明を理解できるように読者を導くために使用される。
さらに、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示される発明を実施するコンピュータのコードを書くことができるか、または実施するのに適したハードウェアおよび/もしくは回路を特定することができる。
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように製作および使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実施プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示し得る図面とともに、より詳細に説明される。
1つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体上で送信されてよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、コンピュータプログラムの1つの場所から別の場所への転送を容易する任意の媒体を含む通信媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされてもよい任意の利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされて得る任意の他の媒体を備えてよい。
また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタルバーサタイルディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザで光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
本発明の趣旨および範囲から逸脱することなく、本発明が関係する代替的な実施形態が、当業者には明らかになるであろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、各態様において様々な置換および改変が行われてよいことが理解されよう。
100 システム
102 メモリコントローラ
104 DRAMメモリデバイス、DRAMメモリシステム、DRAMメモリ、メモリ
106 バンク
106a バンク
106b バンク
106c バンク
106d バンク
108 インターフェース
110 メモリクライアント
110a メモリクライアント
110b メモリクライアント
110c メモリクライアント
112 インターフェース
112a インターフェース
112b インターフェース
112c インターフェース
114 ページ競合解消構成要素
116 メモリアクセスパターンデータ
116a メモリアクセスパターンデータ
116b メモリアクセスパターンデータ
116c メモリアクセスパターンデータ
118 メモリ要求、メモリアクセス要求
200 方法
204 ブロック
206 ブロック
208 ブロック
210 ブロック
300 周期的トラフィックストリーム、アクセス
301 凡例
302 トランザクション、周期的トランザクション
302a 周期的トランザクションの開始
302b 周期的トランザクションの第2の部分
304 トランザクション、周期的トランザクション
306 トランザクション、周期的トランザクション
306a 周期的トランザクションの第1の部分
306b 周期的トランザクションの第2の部分
310 非周期的優先トラフィックストリーム、非周期的トラフィックストリーム
311 ランダム優先トランザクション、トランザクション、優先トランザクション
312 ランダム優先トランザクション、トランザクション、優先トランザクション
313 ランダム優先トランザクション、トランザクション、優先トランザクション
314 ランダム優先トランザクション、トランザクション、優先トランザクション
315 ランダム優先トランザクション、トランザクション、優先トランザクション
316 ランダム優先トランザクション、トランザクション、優先トランザクション
317 ランダム優先トランザクション、トランザクション、優先トランザクション
318 ランダム優先トランザクション、トランザクション、優先トランザクション
319 ランダム優先トランザクション、トランザクション、優先トランザクション
320 ランダム優先トランザクション、タイミング図、トランザクション、優先トランザクション
322 SoC、オンチップシステム
325a ページ開/閉
325b ページ開/閉
325c ページ開/閉
325d ページ開/閉
325e ページ開/閉
325f ページ開/閉
325i ページ開/閉
325j ページ開/閉
325k ページ開/閉
327a ページ開/閉
327b ページ開/閉
327c ページ開/閉
327d ページ開/閉
327e ページ開/閉
328 ディスプレイコントローラ
330 タイミング図、タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ
342 USBポート
346 加入者識別モジュール(SIM)カード
348 デジタルカメラ、カメラ
350 ステレオオーディオコーダ-デコーダ(コーデック)
352 オーディオ増幅器
354 第1のステレオスピーカー
356 第2のステレオスピーカー
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(FM)ラジオチューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 高周波(RF)トランシーバ
370 RFスイッチ
372 RFアンテナ
376 マイクロフォンを備えたモノヘッドセット、モノヘッドセット
378 バイブレータデバイス、バイブレータ
380 電源
388 ネットワークカード
390 持続時間
400 周期的トラフィックストリーム
402 トランザクション、周期的トランザクション
402a 周期的トランザクションの第1の部分
402b 周期的トランザクションの第2の部分
404 トランザクション、周期的トランザクション
404a 周期的トランザクションの第1の部分
404b 周期的トランザクションの第2の部分
406 トランザクション、周期的トランザクション
406a 周期的トランザクションの第1の部分
406b 周期的トランザクションの第2の部分
410 周期的トラフィックストリーム
412 優先トランザクション
414 優先トランザクション
416 優先トランザクション
420 タイミング図
421a ページ開/閉
421b ページ開/閉
421c ページ開/閉
421d ページ開/閉
421e ページ開/閉
421f ページ開/閉
430 タイミング図
431a ページ開/閉
431b ページ開/閉
431c ページ開/閉
431d ページ開/閉
431e ページ開/閉
431f ページ開/閉
440 持続時間
500 ポータブルコンピューティングデバイス(PCD)
502 CPU、マルチコアCPU
506 タッチスクリーンディスプレイ
610 第0のコア
612 第1のコア
614 第Nのコア
616 キーパッド

Claims (20)

  1. DRAMメモリデバイスへのアクセス要求を管理するための方法であって、
    複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信するステップと、
    前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するステップと、
    前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するステップと
    を含む方法。
  2. 前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項1に記載の方法。
  3. 前記メモリアクセスパターンデータが、前記第1および第2のメモリクライアントのうちの1つによって、対応するメモリトランザクションの前にメモリコントローラに提供される、請求項1に記載の方法。
  4. 前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項1に記載の方法。
  5. 前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項1に記載の方法。
  6. 前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、レイテンシ耐性に基づいて前記第1および第2のメモリクライアントのうちの1つを遅延させることを含む、請求項1に記載の方法。
  7. DRAMメモリデバイスへのアクセス要求を管理するためのシステムであって、
    複数のバンクを備えるDRAMメモリデバイスと、
    前記DRAMメモリデバイスへのアクセスを制御するためのメモリコントローラと通信している、前記メモリコントローラにメモリアクセスパターンデータを提供するように構成された複数のメモリクライアントと、
    前記メモリクライアントのうちの1つまたは複数に関する前記メモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断するように構成された前記メモリコントローラと
    を備えるシステム。
  8. 前記メモリコントローラが、前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消するようにさらに構成される、請求項7に記載のシステム。
  9. 前記メモリコントローラが、ページ閉-ページ開動作の数を最小限に抑えるようにさらに構成される、請求項8に記載のシステム。
  10. 前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項7に記載のシステム。
  11. 前記メモリアクセスパターンデータが周期的トラフィックストリームを定義する、請求項7に記載のシステム。
  12. 前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項7に記載のシステム。
  13. 前記メモリクライアントが、中央処理装置、グラフィックス処理装置、およびデジタル信号プロセッサのうちの1つまたは複数を備える、請求項7に記載のシステム。
  14. 前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備え、前記システムがポータブルコンピューティングデバイスにおいて実装される、請求項7に記載のシステム。
  15. DRAMメモリデバイスへのアクセス要求を管理するための、コンピュータ可読媒体内で具現化され、プロセッサによって実行されるコンピュータプログラムであって、
    複数のメモリクライアントのうちの少なくとも1つに関するメモリアクセスパターンデータを、DRAMメモリデバイスとの対応するメモリトランザクションの前に受信し、
    前記受信されたメモリアクセスパターンデータに基づいて、前記複数のメモリクライアントのうちの第1のメモリクライアントの将来のトランザクションが、前記複数のメモリクライアントのうちの第2のメモリクライアントの現在のトランザクションとの将来のページ競合をもたらすことになると判断し、
    前記受信されたメモリアクセスパターンデータに従って、前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける関連バンクへのアクセスをインターリーブすることによって、前記将来のページ競合を解消する
    ように構成された論理を備えるコンピュータプログラム。
  16. 前記メモリアクセスパターンデータが、トランザクション頻度、トランザクション持続時間、およびレイテンシ耐性のうちの1つまたは複数を備える周期的トラフィックデータを備える、請求項15に記載のコンピュータプログラム。
  17. 前記第1のメモリクライアントが周期的トラフィックストリームを備え、前記第2のメモリクライアントが非周期的優先トラフィックストリームを備える、請求項15に記載のコンピュータプログラム。
  18. 前記第1および第2のメモリクライアントによる前記DRAMメモリデバイスにおける前記関連バンクへのアクセスを前記インターリーブすることが、ページ閉-ページ開動作の数を最小限に抑えることを含む、請求項15に記載のコンピュータプログラム。
  19. 前記DRAMメモリデバイスがダブルデータレート(DDR)メモリデバイスを備える、請求項15に記載のコンピュータプログラム。
  20. 前記論理が、ポータブルコンピューティングデバイス中のメモリコントローラに存在する、請求項15に記載のコンピュータプログラム。
JP2016544135A 2014-01-10 2015-01-09 メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法 Pending JP2017502421A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461926207P 2014-01-10 2014-01-10
US61/926,207 2014-01-10
US14/172,173 2014-02-04
US14/172,173 US20150199134A1 (en) 2014-01-10 2014-02-04 System and method for resolving dram page conflicts based on memory access patterns
PCT/US2015/010883 WO2015106145A1 (en) 2014-01-10 2015-01-09 System and method for resolving dram page conflicts based on memory access patterns

Publications (1)

Publication Number Publication Date
JP2017502421A true JP2017502421A (ja) 2017-01-19

Family

ID=53521400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016544135A Pending JP2017502421A (ja) 2014-01-10 2015-01-09 メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20150199134A1 (ja)
EP (1) EP3092648A1 (ja)
JP (1) JP2017502421A (ja)
KR (1) KR20160107216A (ja)
CN (1) CN105900176A (ja)
WO (1) WO2015106145A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021519464A (ja) * 2018-03-30 2021-08-10 プロビーノ・テクノロジーズ・インコーポレーテッドProvino Technologies,Inc. 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション
US11914440B2 (en) 2018-03-30 2024-02-27 Google Llc Protocol level control for system on a chip (SoC) agent reset and power management
JP7563082B2 (ja) 2020-09-29 2024-10-08 富士フイルムビジネスイノベーション株式会社 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023453B2 (en) * 2015-01-29 2021-06-01 Hewlett Packard Enterprise Development Lp Hash index
US9747209B1 (en) * 2016-02-26 2017-08-29 Qualcomm Incorporated System and method for improved memory performance using cache level hashing
US10885018B2 (en) 2018-05-07 2021-01-05 Microsoft Technology Licensing, Llc Containerization for elastic and scalable databases
US10764455B2 (en) 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10579317B1 (en) 2018-12-31 2020-03-03 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10614001B1 (en) 2018-12-31 2020-04-07 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
TR201917243A2 (tr) * 2019-11-07 2021-05-21 Tobb Ekonomi Ve Teknoloji Ueniversitesi Hücreleri̇n eri̇şi̇m örüntüsüne göre uyarlanabi̇li̇r alttaş kutuplama (body bias) geri̇li̇mli̇ bi̇r di̇nami̇k rastgele eri̇şi̇m belleği̇ (dram) yapisi
US20240004551A1 (en) * 2020-10-26 2024-01-04 Google Llc Modulating Credit Allocations in Memory Subsystems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5794072A (en) * 1996-05-23 1998-08-11 Vlsi Technology, Inc. Timing method and apparatus for interleaving PIO and DMA data transfers
US6351783B1 (en) * 1999-05-20 2002-02-26 Intel Corporation Method and apparatus for isochronous data transport over an asynchronous bus
JP4370063B2 (ja) * 2001-06-27 2009-11-25 富士通マイクロエレクトロニクス株式会社 半導体記憶装置の制御装置および半導体記憶装置の制御方法
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US8170572B2 (en) * 2006-04-14 2012-05-01 Qualcomm Incorporated Methods and apparatus for supporting quality of service in communication systems
US7761656B2 (en) * 2007-08-22 2010-07-20 Advanced Micro Devices, Inc. Detection of speculative precharge
US8099539B2 (en) * 2008-03-10 2012-01-17 Lsi Corporation Method and system of a shared bus architecture
AU2010215830A1 (en) * 2009-02-20 2011-08-18 Entropic Communications, Inc. Flexible reservation request and scheduling mechanisms in a managed shared network with quality of service
US8341437B2 (en) * 2009-06-30 2012-12-25 International Business Machines Corporation Managing power consumption and performance in a data storage system
CN102207916B (zh) * 2011-05-30 2013-10-30 西安电子科技大学 一种基于指令预取的多核共享存储器控制设备
US9336164B2 (en) * 2012-10-04 2016-05-10 Applied Micro Circuits Corporation Scheduling memory banks based on memory access patterns
US9535860B2 (en) * 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021519464A (ja) * 2018-03-30 2021-08-10 プロビーノ・テクノロジーズ・インコーポレーテッドProvino Technologies,Inc. 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション
US11640362B2 (en) 2018-03-30 2023-05-02 Google Llc Procedures for improving efficiency of an interconnect fabric on a system on chip
US11914440B2 (en) 2018-03-30 2024-02-27 Google Llc Protocol level control for system on a chip (SoC) agent reset and power management
JP7457654B2 (ja) 2018-03-30 2024-03-28 グーグル エルエルシー システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順
JP7563082B2 (ja) 2020-09-29 2024-10-08 富士フイルムビジネスイノベーション株式会社 プログラマブル論理回路、情報処理装置、情報処理システム、及びプログラム

Also Published As

Publication number Publication date
US20150199134A1 (en) 2015-07-16
EP3092648A1 (en) 2016-11-16
CN105900176A (zh) 2016-08-24
WO2015106145A1 (en) 2015-07-16
KR20160107216A (ko) 2016-09-13

Similar Documents

Publication Publication Date Title
JP2017502421A (ja) メモリアクセスパターンに基づいてdramページ競合を解消するためのシステムおよび方法
JP6412162B2 (ja) グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化
JP6239130B2 (ja) 作業負荷に従ってメモリバス帯域幅を低減するためのシステムおよび方法
JP6178512B2 (ja) 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法
JP5914773B2 (ja) 非対称のメモリ構成要素を有するメモリサブシステム内でメモリを動的に割り振るためのシステムおよび方法
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
EP3475831B1 (en) System and method for odd modulus memory channel interleaving
US8959298B2 (en) System and method for managing performance of a computing device having dissimilar memory types
US9747038B2 (en) Systems and methods for a hybrid parallel-serial memory access
EP3427153B1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system
CN108604213B (zh) 用于个别地配置共享公共命令存取总线的动态随机存取存储器的系统和方法
US20180197594A1 (en) Coincident memory bank access via cross connected shared bank resources

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160712