JP2016529618A - 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法 - Google Patents

選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法 Download PDF

Info

Publication number
JP2016529618A
JP2016529618A JP2016533452A JP2016533452A JP2016529618A JP 2016529618 A JP2016529618 A JP 2016529618A JP 2016533452 A JP2016533452 A JP 2016533452A JP 2016533452 A JP2016533452 A JP 2016533452A JP 2016529618 A JP2016529618 A JP 2016529618A
Authority
JP
Japan
Prior art keywords
memory
performance
preference
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.)
Granted
Application number
JP2016533452A
Other languages
English (en)
Other versions
JP2016529618A5 (ja
JP6178512B2 (ja
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 JP2016529618A publication Critical patent/JP2016529618A/ja
Publication of JP2016529618A5 publication Critical patent/JP2016529618A5/ja
Application granted granted Critical
Publication of JP6178512B2 publication Critical patent/JP6178512B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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)
  • Memory System (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムおよび方法が開示される。1つのそのような方法は、インターリーブ領域および線形領域を有する2つ以上のそれぞれのメモリチャネルを介してアクセスされる2つ以上のメモリデバイスについてメモリアドレスマップを構成するステップを含む。インターリーブ領域は、比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備える。線形領域は、比較的低い電力のユースケースのための線形アドレス空間を備える。メモリ要求は、1つまたは複数のクライアントから受信される。メモリ要求は、電力節約または性能に対する選好を備える。受信されたメモリ要求は、電力節約または性能に対する選好に従って、線形領域またはインターリーブ領域に割り当てられる。

Description

本発明は、選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法に関する。
携帯電話などのポータブルコンピューティングデバイスを含む多くのコンピューティングデバイスは、システムオンチップ("SoC")を含む。SoCは、電力性能と、ダブルデータレート(DDR)メモリデバイスなどのメモリデバイスからの容量との向上を要求している。これらの要求はより速いクロック速度と幅広いバスの両方につながり、その場合、バスは、効率的であり続けるために、通常は複数のより狭いメモリチャネルに区分される。メモリデバイスにわたってメモリトラフィックを均一に分散し、性能を最適化するために、複数のメモリチャネルは一緒にアドレスインターリーブされ得る。メモリデータは、アドレスを交互のメモリチャネルに割り当てることによって均一に分散される。この技法は通常、対称チャネルインターリービングと呼ばれる。
既存の対称メモリチャネルインターリービング技法は、チャネルのすべてがアクティブ化されることを必要とする。高性能のユースケースの場合、これは意図的なものであり、所望のレベルの性能を達成する必要がある。しかしながら、低性能のユースケースの場合、これは電力の浪費および非効率につながる。したがって、当技術分野において、メモリチャネルインターリービングを提供するための改善されたシステムおよび方法が依然として必要とされている。
選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムおよび方法が開示される。1つの実施形態は、選択的な電力または性能の最適化を伴うメモリチャネルインターリービング方法である。1つのそのような方法は、インターリーブ領域および線形領域を有する2つ以上のそれぞれのメモリチャネルを介してアクセスされる2つ以上のメモリデバイスについてメモリアドレスマップを構成するステップであって、インターリーブ領域が比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備え、線形領域が比較的低い電力のユースケースのための線形アドレス空間を備える、ステップと、1つまたは複数のクライアントからメモリ要求を受信するステップであって、メモリ要求が電力節約または性能に対する選好を備える、ステップと、電力節約または性能に対する選好に従って、メモリ要求を線形領域またはインターリーブ領域に割り当てるステップとを備える。
別の実施形態は、選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムである。1つのそのようなシステムは、システムオンチップ(SOC)と、メモリアドレスマップと、メモリチャネルインターリーバとを備える。SoCは、SoCに接続されるとともに2つ以上のそれぞれのメモリチャネルを介してアクセスされる、2つ以上の外部メモリデバイスにアクセスするためのメモリ要求を生成するための1つまたは複数の処理ユニットを備える。メモリ要求は、電力節約または性能に対する選好を備える。メモリアドレスマップは、外部メモリデバイスに関連付けられ、インターリーブ領域および線形領域を備える。インターリーブ領域は、比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備える。線形領域は、比較的低い電力のユースケースのための線形アドレス空間を備える。メモリチャネルインターリーバはSoC上にあり、電力節約または性能に対する選好に従って、メモリ要求を線形領域またはインターリーブ領域に割り当てるように構成される。
図中、別段に規定されていない限り、同様の参照番号は、様々な図の全体を通じて、同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することが意図されるとき、参照番号の文字指定は省略される場合がある。
選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムの一実施形態のブロック図である。 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するための図1のシステムで実施される方法の一実施形態を示すフローチャートである。 図1のシステムにおける例示的なメモリアドレスマップの構造および動作を示すデータ/流れ図である。 図1のメモリチャネルインターリーバの一実施形態を示すブロック/流れ図である。 高性能のメモリ要求を有効にするまたは無効にするための方法の一実施形態を示すフローチャートである。 4つのメモリチャネルおよび2つのランクを使用した、線形領域およびインターリーブ領域を有するメモリアドレスマップの別の実施形態を示す図である。 図1のシステムを備えるポータブルコンピューティングデバイスの一実施形態のブロック図である。
「例示的な」という言葉は、本明細書では「一例、事例、または例示として役立つ」ことを意味するように使用される。「例示的な」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるわけではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含み得る。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルも含み得る。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルも含み得る。
本明細書で使用する場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、コンピューティングデバイス上で実行されているアプリケーションとコンピューティングデバイスの両方が、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータに局在化されてもよく、および/または、2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム中の別の構成要素と、および/または、インターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語は、互換的に使用される。第3世代("3G")ワイヤレス技術および第4世代("4G")が出現したことによって、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備えた、より携帯が容易なコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスは、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータを含み得る。
図1は、選択的な性能または電力の最適化を伴うメモリチャネルインターリービングを提供するためのシステム100を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む任意のコンピューティングデバイスにおいて実装されてもよい。
図1の実施形態に示すように、システム100は、様々なオンチップ構成要素を備えるシステムオンチップ(SoC)102と、SoC102に接続された様々な外部構成要素とを備える。SoC102は、SoCバス107によって相互接続される、1つまたは複数の処理ユニットと、メモリチャネルインターリーバ106と、ストレージコントローラ124と、オンボードメモリ(たとえば、スタティックランダムアクセスメモリ(SRAM)128と、読取り専用メモリ(ROM)130など)とを備える。ストレージコントローラ124は、外部ストレージデバイス126に電気的に接続され、外部ストレージデバイス126と通信する。当技術分野で知られているように、メモリチャネルインターリーバ106は、CPU104(または他のメモリクライアント)に関連付けられた読取り/書込みメモリ要求を受信し、専用メモリチャネルを介してそれぞれの外部メモリデバイスに接続される2つ以上のメモリコントローラ間でメモリデータを分散する。図1の例では、システム100は2つのメモリデバイス110および118を備える。メモリデバイス110はメモリコントローラ108に接続され、第1のメモリチャネル(CH0)を介して通信する。メモリデバイス118はメモリコントローラ116に接続され、第2のメモリチャネル(CH1)を介して通信する。
メモリの任意の望ましいタイプ、サイズ、および構成(たとえば、ダブルデータレート(DDR)メモリ)を用いて、任意の数のメモリデバイス、メモリコントローラ、およびメモリチャネルがシステム100において使用され得ることを了解されたい。図1の実施形態では、チャネルCH0を介してサポートされるメモリデバイス110は、2つのダイナミックランダムアクセスメモリ(DRAM)デバイス、すなわち、DRAM112およびDRAM114を備える。チャネルCH1を介してサポートされるメモリデバイス118も、2つのDRAMデバイス、すなわち、DRAM120およびDRAM122を備える。
メモリチャネルインターリーバ106は、性能および電力節約の最適化を選択的に提供するための特殊構成のメモリチャネルインターリーバを備える。メモリチャネルインターリーバ106は、高性能の(インターリーブされた)メモリ領域と低性能の(線形)メモリ領域の両方を選択的に提供するように構成される。図3は、メモリチャネルインターリーバ106によって制御される例示的なメモリアドレスマップ300を示す。メモリアドレスマップ300は、システム100およびメモリチャネルインターリーバ106の全体的な動作、アーキテクチャ、および機能を説明するように記載される。メモリアドレスマップ300は、(メモリチャネルCH0を介してアクセスされる)DRAM112および114を備えるメモリデバイス110と、(メモリチャネルCH1を介してアクセスされる)DRAM120および122を備えるメモリデバイス118とを有する、図1に示す例示的なシステム100に対応する。
メモリアドレスマップ300は、線形領域302と、インターリーブ領域304とを備える。線形領域302は比較的低い電力のユースケースおよび/またはタスクのために使用されてもよく、インターリーブ領域304は比較的高い性能のユースケースおよび/またはタスクのために使用されてもよい。各領域は別個の割り振られたメモリアドレス空間を備え、対応するアドレス範囲は2つのメモリチャネルCH0およびCH1間で分割される。インターリーブ領域304はインターリーブされたアドレス空間を備え、線形領域302は線形アドレス空間を備える。
図3の例を参照すると、インターリーブされたアドレス空間について、第1のアドレス(アドレス0)は、DRAM114およびメモリチャネルCH0に関連付けられたより低いアドレスに割り当てられてもよい。インターリーブされたアドレス範囲(アドレス32)内の次のアドレスは、DRAM122およびメモリチャネルCH1に関連付けられたより低いアドレスに割り当てられてもよい。このようにして、交互のアドレスのパターンは、インターリーブ領域304と線形領域302との間の境界を定義するDRAM112およびDRAM120に関連付けられた先頭アドレスまたは最終アドレスに上がって、メモリチャネルCH0およびCH1にわたって「ストライプ」またはインターリーブされてもよい。インターリーブ領域304において、チャネルCH0とチャネルCH1との間の水平方向の破線矢印は、メモリチャネル間でどのようにアドレスが「ピンポン」するかを示している。データアドレスはランダムであると想定される場合があり、したがって、チャネルCH0とチャネルCH1の両方にわたって均一に分散される場合があるので、データをメモリデバイスから読み取る/データをメモリデバイスに書き込むためのメモリリソース(たとえば、CPU104)を要求するクライアントは、メモリチャネルCH0とメモリチャネルCH1の両方によってサービスされることがある。
線形領域302は、同じチャネル内に別個の連続したメモリアドレス範囲を備える。図3の実施形態に示すように、連続したメモリアドレスの第1の範囲はCH0中のDRAM112に割り当てられてもよく、連続したアドレスの第2の範囲はCH1中のDRAM120に割り当てられてもよい。インターリーブされた/線形の境界の上のDRAM112中の次のアドレスには、線形アドレス空間における第1のアドレス((2N-3)*64)が割り当てられてもよい。垂直方向の矢印は、DRAM112中の先頭アドレスまたは最終アドレスに達する(アドレス(2N-2*64))まで、連続したアドレスがCH0内で割り当てられることを示している。CH0中の利用可能な最終アドレスに達すると、線形アドレス空間における次のアドレスがインターリーブされた/線形の境界の上のDRAM120中の利用可能な次のアドレス(アドレス(2N-2)*64+32)に割り当てられてもよい。次いで、割振り方式は、先頭アドレス(アドレス(2N-1)*64+32)に達するまで、CH1中の連続したメモリアドレスに続く。
このようにして、低性能のユースケースデータはチャネルCH0またはチャネルCH1のいずれかに完全に含まれる場合があることを了解されたい。動作時、チャネルCH0およびチャネルCH1のうちの1つのみがアクティブであってもよく、他方のチャネルはメモリ電力を保存するために非アクティブまたは「セルフリフレッシュ」モードに置かれる。これは任意の数Nのメモリチャネルに拡張されてもよい。
図2は、選択的な性能または電力の最適化を伴うメモリチャネルインターリービングを提供するためのシステム100(図1)によって実施される方法200を示す。ブロック202において、メモリアドレスマップ300は、インターリーブ領域304および線形領域302を有する2つ以上のメモリチャネル(たとえば、メモリチャネルCH0およびCH1)を介してアクセスされる利用可能なメモリデバイス(たとえば、DRAM112、114、120、および122)用に構成される。メモリアドレスマップ300は、予想されるメモリフットプリントまたはサイズの高性能および低性能のユースケースに基づいて構成されてもよい。起動時に、プラットフォームプロファイルに基づいて、メモリチャネルインターリーバ106は所定の量のインターリーブされたメモリ空間および線形メモリ空間を提供することができる。実行時に、オペレーティングシステムは、グラフィックス処理ユニット(GPU)、ディスプレイ、マルチメディアリソース、カメラなどの高性能のクライアント要求のためにインターリーブ領域304を割り振ることができる。オペレーティングシステムは、比較的低い性能および/またはすべての他のクライアント要求のために線形メモリを割り振ることができる。たとえば、オペレーティングシステムリソース、一般的な低性能のアプリケーション、サービスなどのために線形領域302が割り振られてもよい。GPUのためにメモリがインターリーブ領域304に動的に割り振られてもよいことを了解されたい。静的な割振りと呼ばれる他の実施形態では、GPUは、たとえば、高性能を達成するために起動時にインターリーブ領域304を使用するために、あらかじめ決定されたメモリを使用することができる。
一実施形態では、線形領域302およびインターリーブ領域304に対するメモリ割振りは、望ましいユースケースに基づいて構成されてもよい。異なる線形領域上でのメモリ割振りは、ユースケースに基づいてグループ化されてもよい。たとえば、第1の「電力節約」ユースケースはCH0に関連付けられた第1の線形アドレス空間にアクセスするために許可されてもよく、第2の「電力節約」ユースケースはCH1に関連付けられた第2の線形アドレス空間にアクセスするために許可されてもよい。このようにして、他方のメモリチャネルがアクティブである間に、一方のメモリチャネル上でメモリ電力節約を実現することができる。
再び図2を参照すると、ブロック204において、メモリチャネルインターリーバ106はメモリリソースを要求する1つまたは複数のクライアント(たとえば、CPU104)からメモリ要求を受信することができる。メモリ要求は「ヒント」、パラメータ、または電力節約もしくは性能に対する選好を示す他のデータを含み得る。一実施形態では、電力/性能の選好はオペレーティングシステムへのシステムコールを介して指定されてもよい。この点において、システム100は、メモリ割振りのサポートを提供するオペレーティングシステム(図示せず)を含み得る。オペレーティングシステムは、呼出し元によって示された特定のヒープからメモリを割り振る機能を有してもよい。メモリチャネルインターリーバ106およびシステム100は、たとえば、電力節約対性能に対する選好の程度に従ってメモリタイプ(すなわち、インターリーブ対線形)を指定する能力を提供し、それにより、メモリ電力節約および/または高帯域幅スループットを達成する。
たとえば、マルチプロセッシングにおいて使用される不均一なメモリアクセス(NUMA:non-uniform memory access)は、プロセッサ(たとえば、CPU104)に対して、メモリノードに基づいてメモリ割振りを実行することができる。NUMAでは、プロセッサは異なるメモリノードの性能差の情報を有し、好適なノードからメモリをインテリジェントに割り振ることが可能である場合がある。システム100は、最良の性能をもたらすノードからまたは電力消費特性に基づいてメモリを割り振るために、利用可能なノードのリストからメモリをインテリジェントに割り振るこの機構を実装することができる。さらに、いくつかのオペレーティングシステム(たとえば、Linux(登録商標) Android(登録商標))では、メモリアロケータは、起動中にどのメモリヒープがコールを介して最初に追加されたかに従って順序付けられたフォールバックを用いて割り振るべき1つまたは複数のメモリヒープを示す入力引数を有してもよい。メモリチャネルインターリーバ106は、クライアントによって要求された性能または電力消費のいずれかに基づいて特定のヒープタイプからメモリを割り振る、そのような機構をサポートすることができる。
ブロック206において、メモリチャネルインターリーバ106は、メモリ要求(またはその他の方法)において指定された選好およびメモリアドレスマップ300に従って、受信されたメモリ要求を線形領域302またはインターリーブ領域304に割り当てる。
図5の方法500に示すように、メモリチャネルインターリーバ106は、特定のタイプのタスク、プロセスなどに対するメモリ帯域幅使用の履歴ログを備えるデータベースに対して高性能のメモリ要求を有効にするための機構を提供することもできる。ブロック502において、メモリチャネルインターリーバ106は、新しいプロセスに関連付けられた高性能のメモリ要求を受信することができる。ブロック504において、履歴ログは、プロセスによって以前に使用されたメモリ帯域幅を判断するためにアクセスされることがある。
このようにして、メモリ要求は、各実行中のタスクに対する帯域幅需要の履歴追跡に従って割り振られ得る。一実施形態では、トランザクションカウンタは、システム100上の実行中のタスクの各々に対する需要帯域幅をログ記録し、ファイルシステムまたは他のメモリに記憶され得る各プロセス名の履歴を蓄積するために使用されてもよい。メモリマネージャは、メモリを新しいタスクに割り振るときに、データベースにアクセスすることができる。上記で説明したように、タスクは、そのタスクが高性能であるかまたは低性能であるかのヒントを提供することができる。タスクは、バッファが共有可能であるかどうかを指定することもできる。メモリマネージャは、要求を有効にするためにデータベースにアクセスすることができる。高性能が経験的にログ記録され、正当化されていない場合、メモリアロケータはヒントを却下し、電力を節約するために低性能のメモリしか割り振らないことがある。メモリアロケータはバッファが共有可能として宣言されたかどうかを調べることもでき、バッファが共有可能である場合、同じ共有バッファを使用する異なるタスクは高帯域幅を必要とする可能性があるので、元のヒントに従う。
再び図5を参照すると、決定ブロック506において、メモリチャネルインターリーバ106は、高性能のメモリ要求が有効にされるかどうかを判断する。以前の帯域幅がインターリーブ領域304に割り当てるための所定のしきい値を満たさない場合、メモリ要求は却下され、代わりに線形領域302に割り当てられ得る(ブロック508)。しかしながら、高性能のメモリ要求が有効にされる場合、メモリ要求はインターリーブ領域304に割り当てられ得る(ブロック510)。
図4は、メモリチャネルインターリーバ106の一実施形態のアーキテクチャ、動作、および/または機能を示す概略/流れ図である。メモリチャネルインターリーバ106はSoCバス107上で入力を受信し、別個のメモリコントローラバスを介して出力をメモリコントローラ108および116(それぞれ、メモリチャネルCH0およびCH1)に与える。メモリコントローラバスは、実データスループットが整合する、SoCバス107のレートの半分で動作してもよい。アドレスマッピングモジュール450は、SoCバス107を介してプログラムされてもよい。アドレスマッピングモジュール450は、上記で説明したように、線形領域302およびインターリーブ領域304を有するアドレスメモリマップ300を構成し、アドレスメモリマップ300にアクセスしてもよい。SoCバス107上の入ってくるデータトラフィックはデータセレクタ470にルーティングされ、データセレクタ470は、アドレスマッピングモジュール450によって与えられた選択信号464に基づいて、データをメモリコントローラ108および116に、それぞれマージ構成要素472および474を介して転送する。各トラフィックパケットについて、ハイアドレス456はアドレスマッピングモジュール450に入る。アドレスマッピングモジュール450はハイアドレス456を事前プログラムされた線形領域アドレスおよびインターリーブ領域アドレスと比較し、アドレスビット位置再配列を行い、次いで、インターリーブパラメータに基づいてハイアドレス456をCH0ハイアドレス460またはCH1ハイアドレス462に出力する。選択信号464は、CH0またはCH1が選択されたかどうかを指定する。マージ構成要素472および474は、ハイアドレス460および462と、ローアドレス458と、CH0データ466およびCH1データ468との再結合を備えてもよい。
図6は、4つのメモリチャネル用に適合され、複数のランクを使用する、メモリアドレスマップ600の別の実施形態を示す。メモリアドレスマップ600は、上記で説明したメモリアドレスマップ300(図3)と比較して、2つの追加のメモリチャネルCH2およびCH3を追加する。メモリチャネルCH2は、追加のDRAM602および604に関連付けられる。メモリチャネルCH3は、追加のDRAM606および608に関連付けられる。図6に示すように、メモリアドレスマップ600は、各ランクが性能と電力消費との間の所望のバランスを実現するためのカスタマイズされたインターリーブ設定を有する、ランク付け方式(ランク1およびランク0)を提供する。線形領域302はランク1にあり、たとえば、電力節約を実現するためのBank-Row-Column(BRC) DRAMインターリーブ機構を使用してもよい。(DRAM112、120、602、および606上にある)インターリーブ領域304の第1の部分610もランク1にあり、性能のためにRow-Bank-Column DRAMインターリーブ機構を使用してもよい。(DRAM114、122、604、および608上で利用可能なメモリ全体を包含する)インターリーブ領域304の第2の部分612は異なるランク(すなわち、ランク0)にあってもよい。DRAM114、122、604、および608は、性能のためRBC DRAMインターリーブ機構を使用してランク0に入ってもよい。
上述のように、システム100は、任意の望ましいコンピューティングシステムに組み込まれる場合がある。図7は、例示的なポータブルコンピューティングデバイス(PCD)700に組み込まれたシステム100を示す。システム100は、マルチコアCPU402Aを含み得るSoC322上に含まれ得る。マルチコアCPU402Aは、第0のコア410、第1のコア412、および第Nのコア414を含み得る。コアのうちの1つは、たとえばグラフィックス処理ユニット(GPU)を備え、その他のコアのうちの1つまたは複数は、CPU104(図1)を備える場合がある。代替の例示的な実施形態によれば、CPU402Aは、複数のコアを有するCPUではなく、単一コアのタイプのCPUを備える場合もあり、その場合、CPU104およびGPUは、システム100で示すような専用プロセッサであり得る。
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU402Aに結合される場合がある。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ103は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される場合がある。
図7はさらに、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダがマルチコアCPU402Aに結合されることを示す。さらに、ビデオ増幅器336は、ビデオエンコーダ334およびタッチスクリーンディスプレイ103に結合される。また、ビデオポート338は、ビデオ増幅器336に結合される。図7に示すように、ユニバーサルシリアルバス(USB)コントローラ340は、マルチコアCPU402Aに結合される。また、USBポート342は、USBコントローラ340に結合される。メモリ404Aおよび加入者識別モジュール(SIM)カード346も、マルチコアCPU402Aに結合される場合がある。メモリ404Aは、上記で説明したように、メモリデバイス110および118(図1)を備えてもよい。システム100(図1)は、CPU402Aに結合される場合がある。
さらに、図7に示すように、デジタルカメラ348は、マルチコアCPU402Aに結合される場合がある。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図7にさらに示すように、ステレオオーディオコーダ-デコーダ(コーデック)350は、マルチコアCPU402Aに結合される場合がある。さらに、オーディオ増幅器352は、ステレオオーディオコーデック350に結合される場合がある。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356は、オーディオ増幅器352に結合される。図7は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合される場合があることを示す。加えて、マイクロフォン360は、マイクロフォン増幅器358に結合される場合がある。特定の態様では、周波数変調(FM)ラジオチューナ362は、ステレオオーディオコーデック350に結合される場合がある。同様に、FMアンテナ364は、FMラジオチューナ362に結合される。さらに、ステレオヘッドフォン366は、ステレオオーディオコーデック350に結合される場合がある。
図7はさらに、無線周波(RF)トランシーバ368がマルチコアCPU402Aに結合される場合があることを示す。RFスイッチ370は、RFトランシーバ368およびRFアンテナ372に結合される場合がある。図7に示すように、キーパッド374は、マルチコアCPU402Aに結合される場合がある。また、マイクロフォン付きモノヘッドセット376は、マルチコアCPU402Aに結合される場合がある。さらに、バイブレータデバイス378は、マルチコアCPU402Aに結合される場合がある。
図7は、電源380がオンチップシステム322に結合される場合があることも示す。特定の態様では、電源380は電力を必要とするPCD700の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
図7はさらに、PCD700がデータネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード388も含み得ることを示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードであってもよい。さらに、ネットワークカード388は、チップに組み込まれることがあり、すなわち、ネットワークカード388は、チップ内のフルソリューションであってもよく、個別のネットワークカード388でなくてもよい。
図7に示すように、タッチスクリーンディスプレイ103、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット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 システムオンチップ(SoC)、SoC
103 タッチスクリーンディスプレイ
104 CPU
106 メモリチャネルインターリーバ、GPU
107 SoCバス
108 メモリコントローラ
110 メモリデバイス
112 DRAM
114 DRAM
116 メモリコントローラ
118 メモリデバイス
120 DRAM
122 DRAM
124 ストレージコントローラ
126 外部ストレージデバイス
128 スタティックランダムアクセスメモリ(SRAM)
130 読取り専用メモリ(ROM)
200 方法
300 メモリアドレスマップ
302 線形領域
304 インターリーブ領域
322 SoC、オンチップシステム
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ、USBコントローラ
342 USBポート
346 加入者識別モジュール(SIM)カード
348 カメラ
350 ステレオオーディオコーダ-デコーダ(コーデック)、ステレオオーディオコーデック
352 オーディオ増幅器
354 第1のステレオスピーカー
356 第2のステレオスピーカー
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(FM)ラジオチューナ、FMラジオチューナ
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波(RF)トランシーバ、RFトランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォン付きモノヘッドセット
378 バイブレータデバイス、バイブレータ
380 電源
388 ネットワークカード
402A マルチコアCPU、CPU
404A メモリ
410 第0のコア
412 第1のコア
414 第Nのコア
450 アドレスマッピングモジュール
456 ハイアドレス
458 ローアドレス
460 ハイアドレス
462 ハイアドレス
464 選択信号
466 CH0データ
468 CH1データ
470 データセレクタ
472 マージ構成要素
474 マージ構成要素
500 方法
600 モリアドレスマップ
602 DRAM
604 DRAM
606 DRAM
608 DRAM
610 第1の部分
612 第2の部分
700 ポータブルコンピューティングデバイス(PCD)、PCD

Claims (44)

  1. 選択的な電力または性能の最適化を伴うメモリチャネルインターリービング方法であって、
    インターリーブ領域および線形領域を有する2つ以上のそれぞれのメモリチャネルを介してアクセスされる2つ以上のメモリデバイスについてメモリアドレスマップを構成するステップであって、前記インターリーブ領域が比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備え、前記線形領域が比較的低い電力のユースケースのための線形アドレス空間を備える、ステップと、
    1つまたは複数のクライアントからメモリ要求を受信するステップであって、前記メモリ要求が電力節約または性能に対する選好を備える、ステップと、
    電力節約または性能に対する前記選好に従って、前記メモリ要求を前記線形領域または前記インターリーブ領域に割り当てるステップと
    を備える方法。
  2. 前記線形アドレス空間が前記メモリデバイスのうちの第1のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第1のメモリチャネルを介してアクセスされる第1のアドレス範囲と、前記メモリデバイスのうちの第2のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第2のメモリチャネルを介してアクセスされる第2のアドレス範囲とを備える、請求項1に記載の方法。
  3. 前記メモリ要求を前記線形領域に前記割り当てるステップが、前記第2のメモリデバイスが電力節約モードに置かれている間に、前記第1のメモリデバイスに関連付けられた前記第1のアドレス範囲を使用するステップを備える、請求項2に記載の方法。
  4. 前記線形領域の前記第1のアドレス範囲における最終メモリアドレスに達したときに、
    前記第1のメモリデバイスを前記電力節約モードに置くステップと、
    前記第2のメモリデバイスをアクティブ化するステップと、
    前記電力節約選好を有する次の受信されたメモリ要求を、前記第2のメモリデバイスに関連付けられた前記第2のアドレス範囲に対応する第1のメモリアドレスに割り当てるステップと
    をさらに備える、請求項3に記載の方法。
  5. 前記メモリ要求が前記線形領域に割り当てられ、前記メモリデバイスのうちの第1のメモリデバイスがアクティブ化され、前記メモリデバイスのうちの第2のメモリデバイスが電力節約モードに置かれる、請求項1に記載の方法。
  6. 電力節約または性能に対する前記選好がオペレーティングシステムへのシステムコールを介して指定される、請求項1に記載の方法。
  7. 電力節約または性能に対する前記選好がメモリヒープのタイプを指定するパラメータを備える、請求項1に記載の方法。
  8. 前記メモリデバイスがダイナミックランダムアクセスメモリ(DRAM)デバイスを備える、請求項1に記載の方法。
  9. チャネルインターリーバがシステムオンチップ(SOC)バスを介して前記メモリ要求を受信する、請求項1に記載の方法。
  10. メモリ帯域幅の履歴ログを備えるデータベースに対して、性能に対する前記選好を有するメモリ要求を有効にするステップと、
    有効にされない場合、性能に対する前記選好を無効にし、前記有効にされなかったメモリ要求を前記線形領域に割り当てるステップと
    をさらに備える、請求項1に記載の方法。
  11. 前記メモリ要求を前記線形領域または前記インターリーブ領域に前記割り当てるステップが、動的なメモリ割振りまたは所定の静的なメモリ割振りを備える、請求項1に記載の方法。
  12. 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムであって、
    インターリーブ領域および線形領域を有する2つ以上のそれぞれのメモリチャネルを介してアクセスされる2つ以上のメモリデバイスについてメモリアドレスマップを構成するための手段であって、前記インターリーブ領域が比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備え、前記線形領域が比較的低い電力のユースケースのための線形アドレス空間を備える、手段と、
    1つまたは複数のクライアントからメモリ要求を受信するための手段であって、前記メモリ要求が電力節約または性能に対する選好を備える、手段と、
    電力節約または性能に対する前記選好に従って、前記メモリ要求を前記線形領域または前記インターリーブ領域に割り当てるための手段と
    を備えるシステム。
  13. 前記線形アドレス空間が前記メモリデバイスのうちの第1のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第1のメモリチャネルを介してアクセスされる第1のアドレス範囲と、前記メモリデバイスのうちの第2のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第2のメモリチャネルを介してアクセスされる第2のアドレス範囲とを備える、請求項12に記載のシステム。
  14. 前記メモリ要求を前記線形領域に前記割り当てるための手段が、前記第2のメモリデバイスが電力節約モードに置かれている間に、前記第1のメモリデバイスに関連付けられた前記第1のアドレス範囲を使用するための手段を備える、請求項13に記載のシステム。
  15. 前記線形領域の前記第1のアドレス範囲における最終メモリアドレスに達したときに、
    前記第1のメモリデバイスを前記電力節約モードに置くための手段と、
    前記第2のメモリデバイスをアクティブ化するための手段と、
    前記電力節約選好を有する次の受信されたメモリ要求を、前記第2のメモリデバイスに関連付けられた前記第2のアドレス範囲に対応する第1のメモリアドレスに割り当てるための手段と
    をさらに備える、請求項14に記載のシステム。
  16. 前記メモリ要求が前記線形領域に割り当てられ、前記メモリデバイスのうちの第1のメモリデバイスがアクティブ化され、前記メモリデバイスのうちの第2のメモリデバイスが電力節約モードに置かれる、請求項12に記載のシステム。
  17. 電力節約または性能に対する前記選好がオペレーティングシステムへのシステムコールを介して指定される、請求項12に記載のシステム。
  18. 電力節約または性能に対する前記選好がメモリヒープのタイプを指定するパラメータを備える、請求項12に記載のシステム。
  19. 前記メモリデバイスがダイナミックランダムアクセスメモリ(DRAM)デバイスを備える、請求項12に記載のシステム。
  20. 前記メモリ要求を前記受信するための手段が、システムオンチップ(SOC)バスと通信しているチャネルインターリービング手段を備える、請求項12に記載のシステム。
  21. メモリ帯域幅の履歴ログを備えるデータベースに対して、性能に対する前記選好を有するメモリ要求を有効にするための手段と、
    有効にされなかったメモリ要求についての性能に対する前記選好を無効にし、前記有効にされなかったメモリ要求を前記線形領域に割り当てるための手段と
    をさらに備える、請求項12に記載のシステム。
  22. 前記メモリ要求を前記線形領域または前記インターリーブ領域に前記割り当てるための手段が、動的なメモリ割振り手段または所定の静的なメモリ割振り手段を備える、請求項12に記載のシステム。
  23. コンピュータプログラムであって、選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのための方法を実施するために実行されるように適合され、前記方法が、
    インターリーブ領域および線形領域を有する2つ以上のそれぞれのメモリチャネルを介してアクセスされる2つ以上のメモリデバイスについてメモリアドレスマップを構成するステップであって、前記インターリーブ領域が比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備え、前記線形領域が比較的低い電力のユースケースのための線形アドレス空間を備える、ステップと、
    1つまたは複数のクライアントからメモリ要求を受信するステップであって、前記メモリ要求が電力節約または性能に対する選好を備える、ステップと、
    電力節約または性能に対する前記選好に従って、前記メモリ要求を前記線形領域または前記インターリーブ領域に割り当てるステップと
    を備える、コンピュータプログラム。
  24. 前記線形アドレス空間が前記メモリデバイスのうちの第1のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第1のメモリチャネルを介してアクセスされる第1のアドレス範囲と、前記メモリデバイスのうちの第2のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第2のメモリチャネルを介してアクセスされる第2のアドレス範囲とを備える、請求項23に記載のコンピュータプログラム。
  25. 前記メモリ要求を前記線形領域に前記割り当てるステップが、前記第2のメモリデバイスが電力節約モードに置かれている間に、前記第1のメモリデバイスに関連付けられた前記第1のアドレス範囲を使用するステップを備える、請求項24に記載のコンピュータプログラム。
  26. 前記線形領域の前記第1のアドレス範囲における最終メモリアドレスに達したときに、前記方法が、
    前記第1のメモリデバイスを前記電力節約モードに置くステップと、
    前記第2のメモリデバイスをアクティブ化するステップと、
    前記電力節約選好を有する次の受信されたメモリ要求を、前記第2のメモリデバイスに関連付けられた前記第2のアドレス範囲に対応する第1のメモリアドレスに割り当てるステップと
    をさらに備える、請求項25に記載のコンピュータプログラム。
  27. 前記メモリ要求が前記線形領域に割り当てられ、前記メモリデバイスのうちの第1のメモリデバイスがアクティブ化され、前記メモリデバイスのうちの第2のメモリデバイスが電力節約モードに置かれる、請求項23に記載のコンピュータプログラム。
  28. 電力節約または性能に対する前記選好がオペレーティングシステムへのシステムコールを介して指定される、請求項23に記載のコンピュータプログラム。
  29. 電力節約または性能に対する前記選好がメモリヒープのタイプを指定するパラメータを備える、請求項23に記載のコンピュータプログラム。
  30. 前記メモリデバイスがダイナミックランダムアクセスメモリ(DRAM)デバイスを備える、請求項23に記載のコンピュータプログラム。
  31. チャネルインターリーバがシステムオンチップ(SOC)バスを介して前記メモリ要求を受信する、請求項23に記載のコンピュータプログラム。
  32. 前記方法が、
    メモリ帯域幅の履歴ログを備えるデータベースに対して、性能に対する前記選好を有するメモリ要求を有効にするステップと、
    有効にされない場合、性能に対する前記選好を無効にし、前記有効にされなかったメモリ要求を前記線形領域に割り当てるステップと
    をさらに備える、請求項23に記載のコンピュータプログラム。
  33. 前記メモリ要求を前記線形領域または前記インターリーブ領域に前記割り当てるステップが、動的なメモリ割振りまたは所定の静的なメモリ割振りを備える、請求項23に記載のコンピュータプログラム。
  34. 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングを提供するためのシステムであって、
    システムオンチップ(SoC)に接続され、2つ以上のそれぞれのメモリチャネルを介してアクセスされる、2つ以上の外部メモリデバイスにアクセスするためのメモリ要求を生成するための1つまたは複数の処理ユニットを備えるシステムオンチップ(SOC)であって、前記メモリ要求が電力節約または性能に対する選好を備える、システムオンチップ(SOC)と、
    インターリーブ領域および線形領域を備える、前記外部メモリデバイスに関連付けられたメモリアドレスマップであって、前記インターリーブ領域が比較的高い性能のユースケースのためのインターリーブされたアドレス空間を備え、前記線形領域が比較的低い電力のユースケースのための線形アドレス空間を備える、メモリアドレスマップと、
    前記SoC上にあり、電力節約または性能に対する前記選好に従って、前記メモリ要求を前記線形領域または前記インターリーブ領域に割り当てるように構成されたメモリチャネルインターリーバと
    を備えるシステム。
  35. 前記線形アドレス空間が前記メモリデバイスのうちの第1のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第1のメモリチャネルを介してアクセスされる第1のアドレス範囲と、前記メモリデバイスのうちの第2のメモリデバイスに関連付けられ、前記メモリチャネルのうちの第2のメモリチャネルを介してアクセスされる第2のアドレス範囲とを備える、請求項34に記載のシステム。
  36. 前記メモリチャネルインターリーバが、前記第2のメモリデバイスが電力節約モードに置かれている間に、前記第1のメモリデバイスに関連付けられた前記第1のアドレス範囲を使用して、前記メモリ要求を前記線形領域に割り当てる、請求項35に記載のシステム。
  37. 前記線形領域の前記第1のアドレス範囲における最終メモリアドレスに達したときに、
    前記第1のメモリデバイスが前記電力節約モードに置かれ、
    前記第2のメモリデバイスがアクティブ化され、
    前記電力節約選好を有する次の受信されたメモリ要求が、前記第2のメモリデバイスに関連付けられた前記第2のアドレス範囲に対応する第1のメモリアドレスに割り当てられる、
    請求項36に記載のシステム。
  38. 前記メモリ要求が前記線形領域に割り当てられ、前記メモリデバイスのうちの第1のメモリデバイスがアクティブ化され、前記メモリデバイスのうちの第2のメモリデバイスが電力節約モードに置かれる、請求項34に記載のシステム。
  39. 電力節約または性能に対する前記選好がオペレーティングシステムへのシステムコールを介して指定される、請求項34に記載のシステム。
  40. 電力節約または性能に対する前記選好がメモリヒープのタイプを指定するパラメータを備える、請求項34に記載のシステム。
  41. 前記メモリデバイスがダイナミックランダムアクセスメモリ(DRAM)デバイスを備える、請求項34に記載のシステム。
  42. 前記SOCがポータブル通信デバイス上にある、請求項34に記載のシステム。
  43. 前記メモリチャネルインターリーバが、
    メモリ帯域幅の履歴ログを備えるデータベースに対して、性能に対する前記選好を有するメモリ要求を有効にし、
    有効にされない場合、性能に対する前記選好を無効にし、前記有効にされなかったメモリ要求を前記線形領域に割り当てる
    ようにさらに構成される、請求項34に記載のシステム。
  44. 前記メモリチャネルインターリーバが、動的なメモリ割振りまたは所定の静的なメモリ割振りを使用して、前記メモリ要求を前記線形領域または前記インターリーブ領域に割り当てるようにさらに構成される、請求項34に記載のシステム。
JP2016533452A 2013-08-08 2014-08-07 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法 Active JP6178512B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/962,746 2013-08-08
US13/962,746 US9612648B2 (en) 2013-08-08 2013-08-08 System and method for memory channel interleaving with selective power or performance optimization
PCT/US2014/050208 WO2015021316A1 (en) 2013-08-08 2014-08-07 System and method for memory channel interleaving with selective power or performance optimization

Publications (3)

Publication Number Publication Date
JP2016529618A true JP2016529618A (ja) 2016-09-23
JP2016529618A5 JP2016529618A5 (ja) 2017-07-20
JP6178512B2 JP6178512B2 (ja) 2017-08-09

Family

ID=51422152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016533452A Active JP6178512B2 (ja) 2013-08-08 2014-08-07 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法

Country Status (8)

Country Link
US (1) US9612648B2 (ja)
EP (1) EP3030949B1 (ja)
JP (1) JP6178512B2 (ja)
KR (1) KR101753020B1 (ja)
CN (1) CN105452986B (ja)
BR (1) BR112016002454B1 (ja)
CA (1) CA2918091C (ja)
WO (1) WO2015021316A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256531B2 (en) 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
KR102355573B1 (ko) * 2014-10-29 2022-01-27 삼성전자주식회사 선형 리맵퍼 및 액세스 윈도우를 포함하는 메모리 시스템 및 시스템 온 칩
US20170109090A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
US20170108911A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for page-by-page memory channel interleaving
US20170108914A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated System and method for memory channel interleaving using a sliding threshold address
US20170162235A1 (en) * 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US20170262367A1 (en) * 2016-03-11 2017-09-14 Qualcomm Incorporated Multi-rank collision reduction in a hybrid parallel-serial memory system
US10140223B2 (en) * 2016-06-27 2018-11-27 Qualcomm Incorporated System and method for odd modulus memory channel interleaving
CN106201905B (zh) * 2016-07-11 2019-09-24 浪潮(北京)电子信息产业有限公司 一种内存编址方法
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법
CN106991007B (zh) * 2017-03-31 2019-09-03 青岛大学 一种基于gpu片上的数据处理方法及设备
CN107291537A (zh) * 2017-06-07 2017-10-24 江苏海平面数据科技有限公司 一种gpu片上存储空间使用的优化方法
KR102178931B1 (ko) * 2018-02-21 2020-11-13 서강대학교 산학협력단 힙 메모리 오브젝트의 에너지 소모량 예측 방법 및 이를 구현하는 메모리 시스템
US10628308B2 (en) 2018-05-24 2020-04-21 Qualcomm Incorporated Dynamic adjustment of memory channel interleave granularity
WO2019237261A1 (zh) * 2018-06-12 2019-12-19 华为技术有限公司 一种内存管理方法、装置及系统
CN108845958B (zh) * 2018-06-19 2022-05-17 中国科学院软件研究所 一种交织器映射和动态内存管理系统及方法
CN112513824B (zh) * 2018-07-31 2024-04-09 华为技术有限公司 一种内存交织方法及装置
KR102187213B1 (ko) * 2019-01-24 2020-12-04 서강대학교 산학협력단 힙 메모리 오브젝트의 배치 방법 및 이를 구현하는 이기종 메모리 시스템
US11256318B2 (en) * 2019-08-09 2022-02-22 Intel Corporation Techniques for memory access in a reduced power state
CN113157602B (zh) * 2020-01-07 2024-01-26 中科寒武纪科技股份有限公司 一种对内存进行分配的方法、设备及计算机可读存储介质
EP3945424B1 (en) * 2020-07-31 2024-01-17 NXP USA, Inc. Memory power management method and processor system
KR20220063335A (ko) 2020-11-10 2022-05-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048342A (ja) * 2004-08-04 2006-02-16 Matsushita Electric Ind Co Ltd 省電力メモリアクセス制御装置
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
JP2007193810A (ja) * 2006-01-18 2007-08-02 Apple Inc フラッシュメモリ用インターリーブポリシー
US20110145609A1 (en) * 2009-12-12 2011-06-16 Microsoft Corporation Power aware memory allocation
JP2011204229A (ja) * 2010-03-01 2011-10-13 Panasonic Corp メモリコントローラ、撮像装置
JP2011227664A (ja) * 2010-04-19 2011-11-10 Toshiba Corp メモリシステム
JP2014002745A (ja) * 2012-06-19 2014-01-09 Samsung Electronics Co Ltd 線型アドレス再マッピングロジックを含むメモリシステム及びシステムオンチップ
JP2014021859A (ja) * 2012-07-20 2014-02-03 Canon Inc メモリ制御装置および方法
JP2014127075A (ja) * 2012-12-27 2014-07-07 Toshiba Corp アドレス生成回路

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1050819A1 (en) 1999-05-03 2000-11-08 Sgs Thomson Microelectronics Sa Computer memory access
US7081897B2 (en) * 2003-12-24 2006-07-25 Intel Corporation Unified memory organization for power savings
US20070180203A1 (en) * 2006-02-01 2007-08-02 Madhusudhan Ramgarajan Optimizing system performance in flexible interleaving memory mode
JP2008152687A (ja) * 2006-12-20 2008-07-03 Matsushita Electric Ind Co Ltd メモリコントローラ
US7739461B2 (en) * 2007-07-10 2010-06-15 International Business Machines Corporation DRAM power management in a memory controller
US7882319B2 (en) * 2007-09-27 2011-02-01 Oracle America Inc. Method and system for memory management
KR20100100395A (ko) 2009-03-06 2010-09-15 삼성전자주식회사 복수의 프로세서를 포함하는 메모리 시스템
US8245060B2 (en) * 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings
US9043548B2 (en) * 2010-01-28 2015-05-26 Cleversafe, Inc. Streaming content storage
US20110320751A1 (en) 2010-06-25 2011-12-29 Qualcomm Incorporated Dynamic Interleaving Of Multi-Channel Memory
US8422315B2 (en) * 2010-07-06 2013-04-16 Winbond Electronics Corp. Memory chips and memory devices using the same
US9235500B2 (en) 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
US20120179883A1 (en) * 2011-01-12 2012-07-12 Broadcom Corpotation System and method for dynamically adjusting memory performance
US8819379B2 (en) * 2011-11-15 2014-08-26 Memory Technologies Llc Allocating memory based on performance ranking
US11700211B2 (en) * 2012-04-10 2023-07-11 Comcast Cable Communications, Llc Data network traffic management
US9086957B2 (en) * 2012-08-02 2015-07-21 International Business Machines Corporation Requesting a memory space by a memory controller
US9110795B2 (en) * 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US20140310503A1 (en) * 2013-04-12 2014-10-16 Texas Instruments Incorporated Memory interleaving on memory channels

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006048342A (ja) * 2004-08-04 2006-02-16 Matsushita Electric Ind Co Ltd 省電力メモリアクセス制御装置
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
JP2007193810A (ja) * 2006-01-18 2007-08-02 Apple Inc フラッシュメモリ用インターリーブポリシー
US20110145609A1 (en) * 2009-12-12 2011-06-16 Microsoft Corporation Power aware memory allocation
JP2011204229A (ja) * 2010-03-01 2011-10-13 Panasonic Corp メモリコントローラ、撮像装置
JP2011227664A (ja) * 2010-04-19 2011-11-10 Toshiba Corp メモリシステム
JP2014002745A (ja) * 2012-06-19 2014-01-09 Samsung Electronics Co Ltd 線型アドレス再マッピングロジックを含むメモリシステム及びシステムオンチップ
JP2014021859A (ja) * 2012-07-20 2014-02-03 Canon Inc メモリ制御装置および方法
JP2014127075A (ja) * 2012-12-27 2014-07-07 Toshiba Corp アドレス生成回路

Also Published As

Publication number Publication date
WO2015021316A1 (en) 2015-02-12
BR112016002454A2 (pt) 2017-08-01
US9612648B2 (en) 2017-04-04
CN105452986B (zh) 2018-06-12
CN105452986A (zh) 2016-03-30
CA2918091A1 (en) 2015-02-12
KR20160040289A (ko) 2016-04-12
JP6178512B2 (ja) 2017-08-09
BR112016002454B1 (pt) 2022-01-04
EP3030949B1 (en) 2019-05-22
CA2918091C (en) 2021-03-02
US20150046732A1 (en) 2015-02-12
EP3030949A1 (en) 2016-06-15
KR101753020B1 (ko) 2017-07-03

Similar Documents

Publication Publication Date Title
JP6178512B2 (ja) 選択的な電力または性能の最適化を伴うメモリチャネルインターリービングのためのシステムおよび方法
US10067865B2 (en) System and method for allocating memory to dissimilar memory devices using quality of service
US9110795B2 (en) System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
JP6553828B1 (ja) 奇数モジュラスメモリチャネルインターリービングのためのシステムおよび方法
US8959298B2 (en) System and method for managing performance of a computing device having dissimilar memory types
CN108845958B (zh) 一种交织器映射和动态内存管理系统及方法
US20170109090A1 (en) System and method for page-by-page memory channel interleaving
US20170108914A1 (en) System and method for memory channel interleaving using a sliding threshold address
US20170108911A1 (en) System and method for page-by-page memory channel interleaving
US20170262367A1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170605

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170605

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170713

R150 Certificate of patent or registration of utility model

Ref document number: 6178512

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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