[go: up one dir, main page]

JP6297208B2 - システムオンチップ用のメモリを拡張するためのシステムおよび方法 - Google Patents

システムオンチップ用のメモリを拡張するためのシステムおよび方法 Download PDF

Info

Publication number
JP6297208B2
JP6297208B2 JP2017508005A JP2017508005A JP6297208B2 JP 6297208 B2 JP6297208 B2 JP 6297208B2 JP 2017508005 A JP2017508005 A JP 2017508005A JP 2017508005 A JP2017508005 A JP 2017508005A JP 6297208 B2 JP6297208 B2 JP 6297208B2
Authority
JP
Japan
Prior art keywords
memory
soc
bus
virtual
volatile
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
JP2017508005A
Other languages
English (en)
Other versions
JP2017528813A5 (ja
JP2017528813A (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 JP2017528813A publication Critical patent/JP2017528813A/ja
Publication of JP2017528813A5 publication Critical patent/JP2017528813A5/ja
Application granted granted Critical
Publication of JP6297208B2 publication Critical patent/JP6297208B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/10Address translation
    • 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/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0683Plurality of storage devices
    • 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/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • 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/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Description

本発明は、システムオンチップ用のメモリを拡張するためのシステムおよび方法に関する。
ポータブルコンピューティングデバイス(たとえば、セルラー電話、スマートフォン、タブレットコンピュータ、携帯情報端末(PDA)、および携帯ゲーム機)は、ますます拡大する数々の機能およびサービスを提供し続け、情報、リソース、および通信への前例のないレベルのアクセスをユーザに与えている。これらのサービス拡張とペースを合わせるために、そのようなデバイスは、より強力、かつより複雑になってきた。ここで、ポータブルコンピューティングデバイスには、一般に、単一の基板上に組み込まれた1つまたは複数のチップ構成要素(たとえば、1つまたは複数の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサなど)を含む、システムオンチップ(SoC)が含まれる。
そのようなポータブルコンピューティングデバイス内のシステムメモリには、一般に、ダイナミックランダムアクセスメモリ(DRAM)が含まれる。1つまたは複数のDRAMデバイスは、高性能メモリバスを介してSoCに電気的に結合され得る。DRAMプロセス技術は、より小さいチップ内により大きいメモリ容量を求める需要の増加に対応するためにスケールダウンし続ける。より密なDRAMチップは、望ましい性能および設計の利点を提供するが、消費者の期待による価格の下落の圧力と相まってDRAM容量増加のコストは、相手先商標製造会社の利益幅に悪影響を及ぼす可能性がある。
したがって、これらおよび他のポータブルコンピューティングデバイスにおいてDRAMを拡張するためのシステムおよび方法の改善が必要である。
システムオンチップ(SoC)用のメモリを拡張するためのシステム、方法、およびコンピュータプログラムが開示される。そのような一方法は、拡張バスを介してシステムオンチップ(SoC)に電気的に結合された拡張可能メモリソケット内に装着されるメモリカードを検出するステップを含む。メモリカードは、第1の揮発性メモリデバイスを含む。メモリカードの検出に応答して、拡張仮想メモリマップが構成される。拡張仮想メモリマップは、第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と、高性能メモリバスを介してSoCに電気的に結合された第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む。第2の仮想メモリ空間に関連する1つまたは複数の周辺イメージは、第1の仮想メモリ空間の第1の部分に再配置される。第1の仮想メモリ空間の第2の部分は、第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして構成される。
別の実施形態は、高性能メモリバスを介して第1の揮発性メモリデバイスに電気的に結合されたシステムオンチップ(SoC)を含むシステムである。拡張可能メモリソケットは、拡張バスを介してSoCに電気的に結合される。SoCは、拡張可能メモリソケット内に装着されるメモリカードを検出することであって、メモリカードが第2の揮発性メモリデバイスを含む、検出することと、メモリカードの検出に応答して、第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む拡張仮想メモリマップを構成することと、第1の仮想メモリ空間内の1つまたは複数の周辺イメージを第2の仮想メモリ空間の第1の部分に再配置することと、第1の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして第2の仮想メモリ空間の第2の部分を構成することとを行うように構成されたプロセッサを含む。
図内では、別段に示されない限り、種々の図全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図内に存在する2つの同様の部分または要素を区別し得る。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することを意図するとき、参照番号に対する文字指定は省略される場合がある。
例示的なポータブル通信デバイス内のメモリを拡張するためのシステムの一実施形態のブロック図である。 図1のポータブル通信デバイスのパッケージ/基板の上から見た概略図である。 図2の拡張可能RAMカード/ソケットおよびSoCの断面図である。 図1〜図3のSoC用のシステムメモリを拡張するための方法の一実施形態を示すフローチャートである。 拡張仮想メモリマップの一実施形態を示すブロック図である。 システムメモリを拡張するためのRAMカード/ソケットを内蔵し得るポータブル通信デバイスの別の実施形態のブロック図である。 図5の拡張仮想メモリマップを介してスワップ動作を実行するための方法の一実施形態を示す概略図である。
「例示的」という言葉は、本明細書では、「例、事例、または例示として機能する」ことを意味するために使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
この説明では、「アプリケーション」または「イメージ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で参照される「アプリケーション」は、オープンされる必要があり得るドキュメントまたはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で参照される「コンテンツ」は、オープンされる必要があり得るドキュメントまたはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能でないファイルを含む場合もある。
この説明で使用される、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであり得る。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方は、構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在する場合があり、1つの構成要素は、1つのコンピュータ上に局在化される場合があり、かつ/または2つ以上のコンピュータ間に分散される場合がある。加えて、これらの構成要素は、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と対話し、かつ/または、信号によってインターネットなどのネットワークにわたって他のシステムと対話する、1つの構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信する場合がある。
「仮想メモリ」という用語は、メモリを参照しているアプリケーションまたはイメージから見た実際の物理メモリの抽象化を指す。仮想メモリアドレスを物理メモリアドレスに変換するために、変換またはマッピングが使用され得る。マッピングは、1対1と同じほど単純である(たとえば、物理アドレスが仮想アドレスに等しい)か、中程度に複雑である(たとえば、物理アドレスが仮想アドレスからの一定のオフセットに等しい)か、または、複雑である(たとえば、すべての4KBページが一意的にマッピングされる)場合がある。マッピングは、静的である(たとえば、起動時に一度実行される)場合があるか、または、動的である(たとえば、メモリが割り振られ開放されながら、連続的に進展する)場合がある。
この説明において、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」、および「ワイヤレスハンドセット」という用語が、互換的に使用される。第3世代(「3G」)ワイヤレス技術および第4世代(「4G」)の出現により、利用可能な帯域幅が拡大されたので、より多様なワイヤレス機能を備える、より多くのポータブルコンピューティングデバイスが利用可能になっている。したがって、ポータブルコンピューティングデバイスには、セルラー電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続もしくはワイヤレスリンクを有するハンドヘルドコンピュータが含まれる場合がある。
図1は、システムオンチップ(SoC)102用のメモリを拡張するためのシステム100の一実施形態を示す。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。図1の実施形態に示すように、システム100は、DRAMメモリシステム104と、不揮発性メモリ118と、拡張可能ランダムアクセスメモリ(RAM)カード105とに電気的に結合されたシステムオンチップ(SoC)102を含む。DRAMメモリシステム104は、高性能メモリバス134を介してSoCと相互作用する。不揮発性メモリ118は、記憶バス136を介してSoCと相互作用する。不揮発性メモリ118には、たとえば、フラッシュメモリ、フラッシュドライブ、セキュアデジタル(SD)カード、ソリッドステートドライブ(SSD)、または他のタイプなどの、任意の不揮発性メモリを含まれ得る。いくつかの実施形態では、高性能メモリバス134をサポートするための大量のピン、SoC102に極めて近接した高感度無線周波数回路、および高性能メモリバス134が干渉を起こすことなく進むことができる距離の制限のために、拡張可能なDRAMメモリシステム104を実装することは、難しくコストがかかる場合がある。
拡張可能RAMカード105は、拡張バス132を介してSoC102に電気的に結合される。以下により詳細に説明するように、一実施形態では、拡張可能RAMカード105は、ユーザアクセス可能メモリソケット302内に装着され得る、リムーバブルメモリカードまたは他のデバイスを含み得る。このように、システム100は、ユーザが、購入後にポータブルコンピューティングデバイスに追加のメモリ容量を都合よく追加することを可能にし得る。システム100は、相手先商標製造会社によって活用され得る拡張可能な高性能スワップメモリシステムを提供する。当技術分野において知られているように、ポータブルコンピューティングシステムの性能およびアプリケーションの応答性は、RAMサイズの増加とともに改善し、RAMの減少とともに劣化する。ユーザの分布は、ユーザがインストールしその毎日の使用に関わるアプリケーションのタイプおよび量によって変化し得る。たとえば、シンプルなユーザは、2GBのRAMでまったく十分であることがわかる場合があるが、複数の複雑なアプリケーションまたはゲームを実行する専門的または熱狂的なユーザは、そのユーザエクスペリエンスが満足される前に4GB以上を必要とする場合がある。当業者は、システム100が相手先商標製造会社(OEM)にとって望ましい場合があることを諒解するが、その理由は、システム100は、OEMがOEMの材料費を最小にしながら増大した性能を広告することを可能にし得るからである。拡張可能RAMカード105を使用する他の利点は、たとえば、スワップデバイスとして最も一般的な方法において従来の記憶デバイスを使用するよりもはるかに速い応答を提供することと、O/S120によってサポートされるコスト効果の高い方法で非対称なDRAM分布(たとえば、DRAM104のためのLPDDR4および拡張可能RAMカード105のためのLPDDR3)をサポートすることとを含み得る。
拡張バス132は、たとえば、周辺構成要素相互接続エクスプレス(PCIE: peripheral component interconnection express)バスなどの直接メモリアクセスバスを含む。当技術分野において知られているように、PCIEバス132は、より高い最大システムバススループット、より低いI/Oピン数およびより小さい物理的占有面積、バスデバイスに関する改善された性能のスケーリング、確実なエラー検出/報告機構、元々のホットプラグ機能、ならびにハードウェアI/O仮想化などの様々な望ましい特性を提供する、高速シリアルコンピュータ拡張バスを含む。図1に示すように、RAMカード105は、拡張バス132を介して対応するPCIEコントローラまたは他のコントローラ111と通信するように構成された、DRAM107およびPCIEインターフェースまたは他のインターフェース109を含み得る。
SoC102は、SoCバス116を介して相互接続された、中央処理ユニット(CPU)106と、DRAMコントローラ108と、スタティックランダムアクセスメモリ(SRAM)110と、読取り専用メモリ(ROM)112と、ストレージコントローラ114とを含む様々なオンチップ構成要素を含む。SoC102は、ソケット302に装着されるとき、DRAM104およびDRAM107からのメモリリソースを要求する1つまたは複数のメモリクライアントを含み得る。メモリクライアントは、1つまたは複数の処理ユニット(たとえば、中央処理ユニット(CPU)106、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)など)、ビデオエンコーダ、またはメモリ読取り/書込みアクセスを要求する他のクライアントを含み得る。
SoC102上のストレージコントローラ114は、記憶バス136を介して不揮発性メモリ118に電気的に結合される。ストレージコントローラ114は、不揮発性メモリ118上に記憶されたデータを管理する。DRAMコントローラ108は、たとえば、高性能RAMバス134を介してDRAM104に電気的に結合される。DRAMコントローラ108は、DRAM104との間を行き来するデータのフローを管理する。DRAMコントローラ108は、一般に、DRAM104から読み取り、DRAM104に書き込むための論理を含む。
図1にさらに示すように、DRAM104は、エラー訂正コード(ECC)モジュール124を含み得る。ECCモジュール124は、DRAM動作(たとえば、読取り動作および/または書込み動作)の間、ダブルビットエラーを検出して、シングルビットエラーを訂正する。たとえば、DRAM書込み動作の間、ECCモジュール124は、入力として書込みデータを使用し、次いで、冗長パリティチェックビットを生成する場合がある。組み合わされた書込みデータおよびパリティチェックビットはともに、コードワードとして知られているユニットを形成し、DRAMセルアレイ126内に別々にまたはともに記憶され得る。読取り動作の間、ECCモジュール124は、コードワードの検索されたデータ部分を使用して、パリティチェックビットを再計算し、次いで、これらを書込み動作の間に記憶されたコードワードのパリティチェックビット部分と比較し得る。読み取られた再計算パリティと記憶されたパリティとの間の不整合は、検出されたエラーを示す。加えて、パリティチェックビットは、コードワード内に単一のエラー訂正を提供するのに十分であり得る。
図2および図3は、システム100をポータブルコンピューティングデバイスに組み込むためのパッケージ/基板202一実施形態を示す。SoC102および/またはDRAM104は、パッケージ/基板202上の第1のロケーション208に配置され得る。一実施形態では、DRAM104は、CPUパッケージ上にはんだ付けされる場合があり、組み合わされたDRAM/CPUは、メインボードにはんだ付けされる場合がある。図3に示すように、SoC102および/またはDRAM104は、他の構成要素をDDR信号ノイズから遮蔽するために無線周波数(RF)シールド204によってカバーされ得る。当技術分野において知られているように、DDR信号は、パッケージ/基板202上の他の構成要素に影響を及ぼす可能性がある、かなりのコモンモード放射を作り出す場合がある。この点について、ソケット302は、パッケージ/基板202上の第2のロケーション206に離れて配置され得る。
一実施形態では、ソケット302は、PCIEインターフェース信号を搬送するように構成される(たとえば、x4レーンに対する44個のI/Oピン)。PCIE4xレーンは、DRAM104に4GB/secの帯域幅を提供する。より多くのピンを使用したPCIE8xレーンは、DRAM104に8GB/secの帯域幅を提供し得る。PCIEコントローラ111は、DRAMコントローラ108と同様のメモリ制御動作を含み得るPCIEバス132を変換するように構成され得る。一実施形態では、RAMカード105は、限定はしないが、LPDDR1、LPDDR2、LPDDR3、LPDDR4などの様々なDDR JEDEC規格、512MB、1GB、2GBなどの様々な容量、4GB/sec、8GB/secなどの様々な性能等級、単一のカードに関する512MB RAM拡張プラス8GBフラッシュ拡張などの、PCIE、eMMC、またはUFSのフラッシュストレージ拡張などの他の機能との組合せを含む、様々な構成で提供され得る。組合せ機能は、関連の機能をPCIEコントローラ111内に含むことによって実装され得る。たとえば、PCIEコントローラ111は、PCIEバス132をeMMCフラッシュストレージバスに変換するように構成され得る。さらに、RAMカード105は、広告機能を提供するためにPCIEコントローラ111に接続された複数の積層メモリチップを含み得る。
図4は、システム100のメモリを拡張するための方法の一実施形態を示すフローチャートである。ブロック402において、システム100は、メモリカード(たとえば、RAMカード105)が拡張可能メモリソケット302内に装着されることを検出する。上述のように、メモリソケット302は、拡張バス132を介してSoC102に電気的に結合される。メモリカードは、第1の揮発性メモリデバイス(たとえば、1GBの容量を有するDRAM107)を含み得る。メモリカードが検出されると、ブロック404において、システム100は、拡張仮想メモリマップ500を構成する。図5は、拡張仮想メモリマップ500の一実施形態を示す。メモリマップ502は、メモリカードが拡張可能メモリソケット302内に装着されていない(2GBの容量を有する)DRAM104の仮想メモリマップを示す。アドレスレンジ506は、カーネルおよびO/S120に割り当てられる。アドレスレンジ508および520は、それぞれ、コンテンツ保護およびマルチメディアヒープと、信頼ゾーンとに割り当てられ得る。追加のアドレスレンジは、特定のハードウェアリソース(たとえば、共有リソース510、ビデオコーデック512、アプリケーションデジタル信号プロセッサ(DSP)514、接続ハードウェア516、モデム518など)に割り当てられた1つまたは複数の周辺イメージに割り当てられ得る。図5の実施形態に示すように、アドレスレンジ506〜520は、300MBのメモリ容量を含み、1.7GBの利用可能なユーザ空間を残す。これは、ユーザエリア504を増加させるためにメモリ内にイメージがどのように再配置され得るかの多くの考えられる例のうちの1つにすぎないことを諒解されたい。
メモリカードが検出されるとき、拡張仮想メモリマップは、第1の揮発性メモリデバイス(たとえば、1GB DRAM107)に関連する第1の仮想メモリ空間とともに構成される。第2の仮想メモリ空間は、2GB DRAM104と関連付けられる。ブロック406において、システム100は、第2の仮想メモリ空間に関連する周辺イメージのうちの1つまたは複数を、第1の仮想メモリ空間の第1の部分に再配置し得る。図5に示すように、アドレスレンジ510、512、514、516、および518に関連する周辺イメージは、1GB RAMカードの150MBに再配置される。再配置されるべき周辺イメージは、帯域幅のニーズに応じて選択され得る。たとえば、関連のハードウェアリソースは、拡張バス132を介して(高性能メモリバス134と比較して)低減された帯域幅を扱うことができる場合、再配置され得る。ブロック408において、システム100は、第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして第1の仮想メモリ空間の第2の部分を構成し得る。
図7に示すように、ユーザが利用可能な制限された量の物理メモリ700(図5のユーザ空間504に対応する)が存在する場合がある。システム内で実行される複数のプロセスは、第1のプロセス710および第2のプロセス720によって示される、この自由メモリ空間を求めて競合し得る。図7には2つのプロセスのみが示されるが、ポータブルコンピューティングシステム上では、より多くのプロセスが実行されている場合があることを諒解されたい。すべてのプロセスから要求される総メモリは、利用可能な物理メモリ700を超える場合がある。カーネルおよびO/S506は、たとえば、最近のアクティビティの量に基づいて、メモリ使用量を1つまたは複数の作業セット(たとえば、作業セット712および722)と、1つまたは複数の非作業セット(たとえば、非作業セット714および724)とに分類し得る。図7は、この分類を連続的なグルーピングとして示すが、個々の矩形として示されるメモリページが、広がり、かつ/またはランダムになる場合があることを諒解されたい。最近、頻繁にアクセスされる(すなわち、読み取られる、かつ/または書き込まれる)メモリページは、作業セット712および722を含む場合があり、物理メモリ700内に配置される可能性が高いが、最近アクセスされていないメモリページは、非作業セット714および724を含む場合があり、物理メモリ700内に配置される可能性が低い。非作業セット714および724は、RAMカード105内に配置され得る。時間が経過するにつれて、プロセスは、メモリの様々な部分にアクセスし、いくつかのページを非作業セットから作業セットに変更する場合があり、その逆も同様である。このプロセスが起こると、関連のページは、物理メモリ700とRAMカード105との間で移動し得る。このプロセスは、一般に、スワップとして知られる。RAMカード105の一部分は、アクセスがブロック単位(たとえば、4KBページ)で実行され得ることを意味する、ブロックデバイスとして構成され得る。従来のソリューションでは、スワップブロックデバイスは、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)を含み得る。RAMカード105が、たとえば、HDDまたはSSDを含むスワップブロックデバイスよりも多い回数、ピーク帯域幅を提供すること
によって、スワップの性能を大幅に改善し得ることを当業者は諒解されよう。
上述のように、システム100は、任意の望ましいコンピューティングシステムに組み込まれ得る。図6は、例示的なポータブルコンピューティングデバイス(PCD)600に組み込まれたシステム100を示す。この実施形態では、SoC102は、マルチコアCPU602を含み得る。マルチコアCPU602は、第0のコア610、第1のコア612、および第Nのコア614を含み得る。コアのうちの1つは、たとえば、グラフィックス処理ユニット(GPU)を含む場合があり、他のコアのうちの1つまたは複数はCPUを含む。
ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、CPU602に結合することができる。一方、オンチップシステム102の外部にあるタッチスクリーンディスプレイ606は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合され得る。
図6は、ビデオエンコーダ334、たとえば、位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダが、マルチコアCPU602に結合されることをさらに示す。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ606に結合される。また、ビデオポート338が、ビデオ増幅器336に結合される。図6に示すように、ユニバーサルシリアルバス(USB)コントローラ340が、マルチコアCPU602に結合される。同様に、USBポート342が、USBコントローラ340に結合される。メモリ104および加入者識別モジュール(SIM)カード346も、マルチコアCPU602に結合される場合がある。
さらに、図6に示すように、デジタルカメラ348は、マルチコアCPU602に結合される場合がある。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
図6にさらに示されるように、ステレオオーディオコーダ/デコーダ(コーデック)350が、マルチコアCPU602に結合される場合がある。さらに、オーディオ増幅器352が、ステレオオーディオコーデック350に結合される場合がある。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356が、オーディオ増幅器352に結合される。図6は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合される場合があることを示す。さらに、マイクロフォン360が、マイクロフォン増幅器358に結合される場合がある。特定の態様では、周波数変調(「FM」)無線チューナ362が、ステレオオーディオコーデック350に結合される場合がある。また、FMアンテナ364が、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合される場合がある。
図6は、無線周波数(RF)トランシーバ368がマルチコアCPU602に結合される場合があることをさらに示す。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合される場合がある。キーパッド204が、マルチコアCPU602に結合される場合がある。また、マイクロフォンを備えたモノヘッドセット376が、マルチコアCPU602に結合される場合がある。さらに、バイブレータデバイス378がマルチコアCPU602に結合される場合がある。
図6は、電源380がオンチップシステム102に結合される場合があることも示す。特定の態様では、電源380は、電力を必要とするPCD600の種々の構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリ、または交流(AC)電源に接続されたAC/DC変換器から得られるDC電源である。
図6は、PCD600が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用される場合があるネットワークカード388を含む場合もあることをさらに示す。ネットワークカード388は、ブルートゥース(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナ、または当技術分野でよく知られている任意の他のネットワークカードとすることができる。さらに、ネットワークカード388は、チップに組み込まれる場合があり、すなわち、ネットワークカード388は、チップ内のフルソリューションである場合があり、別個のネットワークカード388でなくてもよい。
図6を参照すると、メモリ104、RAMカード105、タッチスクリーンディスプレイ606、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム102の外部に存在する場合があることを諒解されたい。
本明細書で説明した方法ステップのうちの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 システムオンチップ(SoC)用のメモリを拡張するためのシステム
102 システムオンチップ、SoC、オンチップシステム
104 DRAMメモリシステム、DRAM、メモリ
105 拡張可能ランダムアクセスメモリカード、拡張可能RAMカード、RAMカード
106 中央処理ユニット、CPU
107 DRAM
109 PCIEインターフェース
110 スタティックランダムアクセスメモリ、SRAM
111 PCIEコントローラ
112 読取り専用メモリ、ROM
114 ストレージコントローラ
116 SoCバス
118 不揮発性メモリ
120 O/S
124 エラー訂正コードモジュール、ECCモジュール
126 DRAMセルアレイ
132 拡張バス、PCIEバス
134 メモリバス
136 記憶バス
202 パッケージ/基板
204 無線周波数シールド、RFシールド、キーパッド
206 第2のロケーション
208 第1のロケーション
302 ソケット
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 ネットワークカード
500 拡張仮想メモリマップ
502 仮想メモリマップ
504 ユーザ(1.7GBフリー)、ユーザ(1.85GBフリー)+850MBスワップ
506 カーネルおよびO/S
508 コンテンツ保護およびマルチメディアヒープ
510 共有リソース
512 ビデオコーデック
514 アプリケーションデジタル信号プロセッサ
516 接続ハードウェア
518 モデム
520 信頼ゾーン
600 ポータブルコンピューティングデバイス、PCD
602 マルチコアCPU
606 タッチスクリーンディスプレイ
610 第0のコア
612 第1のコア
614 第Nのコア
700 物理メモリ
710 第1のプロセス
712 作業セット
714 非作業セット
720 第2のプロセス
722 作業セット
724 非作業セット

Claims (30)

  1. システムオンチップ(SoC)用のメモリを拡張するための方法であって、
    拡張バスを介してシステムオンチップ(SoC)に電気的に結合された拡張可能メモリソケット内に装着されるメモリカードを検出するステップであって、前記メモリカードが第1の揮発性メモリデバイスを含む、ステップと、
    前記メモリカードの検出に応答して、前記第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と、高性能メモリバスを介して前記SoCに電気的に結合された第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む、拡張仮想メモリマップを構成するステップと、
    前記第2の仮想メモリ空間に関連する、ハードウェアリソースのみに割り当てられた1つまたは複数の周辺イメージを、前記第1の仮想メモリ空間の第1の部分に再配置するステップと、
    前記第1の仮想メモリ空間の第2の部分を、前記第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして構成するステップと
    を含む、方法。
  2. 前記拡張バスが、周辺構成要素相互接続エクスプレス(PCIE)バスを含む、請求項1に記載の方法。
  3. 前記拡張バスが、直接メモリアクセスバスを含む、請求項1に記載の方法。
  4. 前記第1および第2の揮発性メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項1に記載の方法。
  5. 前記メモリカードが、前記拡張可能メモリソケットから取外し可能である、請求項1に記載の方法。
  6. 前記SoCならびに第1および第2の揮発性メモリデバイスが、ポータブル通信デバイスにおいて実装される、請求項1に記載の方法。
  7. 前記SoCおよび前記第2の揮発性メモリデバイスが無線周波数(RF)シールドの下に配置され、前記第1の揮発性メモリデバイスが前記RFシールドから離れて配置される、請求項6に記載の方法。
  8. システムオンチップ(SoC)に関連するシステムメモリを拡張するためのシステムであって、
    拡張バスを介してシステムオンチップ(SoC)に電気的に結合された拡張可能メモリソケット内に装着されるメモリカードを検出するための手段であって、前記メモリカードが第1の揮発性メモリデバイスを含む、手段と、
    前記メモリカードの検出に応答して、前記第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と、高性能メモリバスを介して前記SoCに電気的に結合された第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む、拡張仮想メモリマップを構成するための手段と、
    前記第2の仮想メモリ空間に関連する、ハードウェアリソースのみに割り当てられた1つまたは複数の周辺イメージを、前記第1の仮想メモリ空間の第1の部分に再配置するための手段と、
    前記第1の仮想メモリ空間の第2の部分を、前記第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして構成するための手段と
    を含む、システム。
  9. 前記拡張可能メモリソケット内に装着される前記メモリカードを検出するための前記手段が、前記SoC上に配置された周辺構成要素相互接続エクスプレス(PCIE)コントローラを含む、請求項8に記載のシステム。
  10. 前記拡張バスが、直接メモリアクセスバスを含む、請求項8に記載のシステム。
  11. 前記第1および第2の揮発性メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項8に記載のシステム。
  12. 前記メモリカードが、前記拡張可能メモリソケットから取外し可能である、請求項8に記載のシステム。
  13. 前記SoCならびに第1および第2の揮発性メモリデバイスが、ポータブル通信デバイスにおいて実装される、請求項8に記載のシステム。
  14. 前記SoCおよび前記第2の揮発性メモリデバイスが無線周波数(RF)シールドの下に配置され、前記拡張可能メモリソケットが前記RFシールドから離れて配置される、請求項13に記載のシステム。
  15. メモリ内で具現化され、かつシステムオンチップ(SoC)に関連するメモリを拡張するためのプロセッサによって実行可能なコンピュータプログラムであって、
    拡張バスを介してシステムオンチップ(SoC)に電気的に結合された拡張可能メモリソケット内に装着されるメモリカードを検出することであって、前記メモリカードが第1の揮発性メモリデバイスを含む、検出することと、
    前記メモリカードの検出に応答して、前記第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と、高性能メモリバスを介して前記SoCに電気的に結合された第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む、拡張仮想メモリマップを構成することと、
    前記第2の仮想メモリ空間に関連する、ハードウェアリソースのみに割り当てられた1つまたは複数の周辺イメージを、前記第1の仮想メモリ空間の第1の部分に再配置することと、
    前記第1の仮想メモリ空間の第2の部分を、前記第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして構成することと
    を行うように構成された論理を含む、コンピュータプログラム。
  16. 前記拡張バスが、周辺構成要素相互接続エクスプレス(PCIE)バスを含む、請求項15に記載のコンピュータプログラム。
  17. 前記拡張バスが、直接メモリアクセスバスを含む、請求項15に記載のコンピュータプログラム。
  18. 前記第1および第2の揮発性メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項15に記載のコンピュータプログラム。
  19. 前記メモリカードが、前記拡張可能メモリソケットから取外し可能である、請求項15に記載のコンピュータプログラム。
  20. 前記SoCならびに第1および第2の揮発性メモリデバイスが、ポータブル通信デバイスにおいて実装される、請求項15に記載のコンピュータプログラム。
  21. 前記SoCおよび前記第2の揮発性メモリデバイスが無線周波数(RF)シールドの下に配置され、前記第1の揮発性メモリデバイスが前記RFシールドから離れて配置される、請求項20に記載のコンピュータプログラム。
  22. システムオンチップ(SoC)用のメモリを拡張するためのシステムであって、
    高性能メモリバスを介して第1の揮発性メモリデバイスに電気的に結合されたシステムオンチップ(SoC)と、
    拡張バスを介して前記SoCに電気的に結合された拡張可能メモリソケットと
    を含み、
    前記SoCは、
    前記拡張可能メモリソケット内に装着されるメモリカードを検出することであって、前記メモリカードが第2の揮発性メモリデバイスを含む、検出することと、
    前記メモリカードの検出に応答して、前記第1の揮発性メモリデバイスに関連する第1の仮想メモリ空間と、前記第2の揮発性メモリデバイスに関連する第2の仮想メモリ空間とを含む、拡張仮想メモリマップを構成することと、
    前記第2の仮想メモリ空間に関連する、ハードウェアリソースのみに割り当てられた1つまたは複数の周辺イメージを、前記第1の仮想メモリ空間の第1の部分に再配置することと、
    前記第2の仮想メモリ空間の第2の部分を、前記第2の仮想メモリ空間に関連するスワップ動作を実行するためのブロックデバイスとして構成することと
    を行うように構成されたプロセッサを含む、
    システム。
  23. 前記SoCならびに前記第1および第2の揮発性メモリデバイスが、ポータブル通信デバイス内に存在する、請求項22に記載のシステム。
  24. 前記SoCおよび前記第1の揮発性メモリデバイスが、無線周波数(RF)シールドの下に配置される、請求項23に記載のシステム。
  25. 前記拡張可能メモリソケットが、前記RFシールドから離れて配置される、請求項24に記載のシステム。
  26. 前記ポータブル通信デバイスが、モバイルフォン、タブレットコンピュータ、およびポータブルゲームコンソールのうちの1つを含む、請求項23に記載のシステム。
  27. 前記拡張バスが周辺構成要素相互接続エクスプレス(PCIE)バスを含み、前記SoCが前記PCIEバスを前記高性能メモリバスに変換するためのPCIEコントローラを含む、請求項22に記載のシステム。
  28. 前記第1および第2の揮発性メモリデバイスが、ダイナミックランダムアクセスメモリ(DRAM)を含む、請求項22に記載のシステム。
  29. 前記メモリカードが、前記拡張可能メモリソケット内にユーザ装着可能である、請求項22に記載のシステム。
  30. 前記拡張バスが、直接メモリアクセスバスを含む、請求項22に記載のシステム。
JP2017508005A 2014-08-20 2015-08-13 システムオンチップ用のメモリを拡張するためのシステムおよび方法 Expired - Fee Related JP6297208B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/464,598 US9823846B2 (en) 2014-08-20 2014-08-20 Systems and methods for expanding memory for a system on chip
US14/464,598 2014-08-20
PCT/US2015/045133 WO2016028607A1 (en) 2014-08-20 2015-08-13 Systems and methods for expanding memory for a system on chip

Publications (3)

Publication Number Publication Date
JP2017528813A JP2017528813A (ja) 2017-09-28
JP2017528813A5 JP2017528813A5 (ja) 2018-02-15
JP6297208B2 true JP6297208B2 (ja) 2018-03-20

Family

ID=54015206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017508005A Expired - Fee Related JP6297208B2 (ja) 2014-08-20 2015-08-13 システムオンチップ用のメモリを拡張するためのシステムおよび方法

Country Status (5)

Country Link
US (1) US9823846B2 (ja)
EP (1) EP3183661B1 (ja)
JP (1) JP6297208B2 (ja)
CN (1) CN106575273B (ja)
WO (1) WO2016028607A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017111858A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Techniques to provide wireless storage and processing capabilities
US10877885B2 (en) * 2016-06-30 2020-12-29 Huawei Technologies Co., Ltd. Electronic device data operation method and electronic device for improved electronic device storage
EP3333709B1 (en) * 2016-12-06 2019-07-24 NXP USA, Inc. Memory management
US20180335828A1 (en) * 2017-05-19 2018-11-22 Qualcomm Incorporated Systems and methods for reducing memory power consumption via device-specific customization of ddr interface parameters
CN111699467B (zh) * 2018-12-26 2021-12-03 华为技术有限公司 安全元件、数据处理装置及数据处理方法
CN110209360B (zh) * 2019-06-28 2024-08-09 深圳市亿道数码技术有限公司 基于PCIe信号转eMMC的M.2形式的存储装置
CN113595844B (zh) * 2021-08-03 2022-07-08 北京国科天迅科技有限公司 一种数据交互的方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09106370A (ja) * 1995-10-12 1997-04-22 Canon Inc メモリ制御装置及びその方法及び情報処理装置
US5793620A (en) * 1996-03-12 1998-08-11 Rave Engineering Computer extension board connected to an expansion board
US6141712A (en) 1998-01-30 2000-10-31 Object Technology Licensing Corporation Apparatus and method for modeling behavior of expansion boards in a computer system
JP3669889B2 (ja) 1999-04-28 2005-07-13 シャープ株式会社 半導体集積回路装置
DE10015193A1 (de) 2000-03-27 2001-10-25 Infineon Technologies Ag Hochintegrierte System-on-Chip-Systeme mit nichtflüchtigen Speichereinheiten
JP4695348B2 (ja) 2004-05-27 2011-06-08 株式会社リコー カード型メモリ、画像形成装置、画像形成装置起動方法
JP2007141066A (ja) * 2005-11-21 2007-06-07 Toshiba Corp 情報処理装置およびメモリアドレス空間割り当て方法
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
CN101145400A (zh) * 2006-09-13 2008-03-19 上海华虹Nec电子有限公司 内嵌存储器的soc位映射实现方法
US20080183945A1 (en) * 2007-01-31 2008-07-31 Hughes Nathan J Firmware relocation
US8209463B2 (en) 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8417870B2 (en) * 2009-07-16 2013-04-09 Netlist, Inc. System and method of increasing addressable memory space on a memory board
US8069300B2 (en) * 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
US8341380B2 (en) * 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage
US9032411B2 (en) * 2009-12-25 2015-05-12 International Business Machines Corporation Logical extended map to demonstrate core activity including L2 and L3 cache hit and miss ratio
US8396998B2 (en) * 2010-12-10 2013-03-12 Kingston Technology Corp. Memory-module extender card for visually decoding addresses from diagnostic programs and ignoring operating system accesses
US8959298B2 (en) * 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types
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
KR20140093505A (ko) 2013-01-18 2014-07-28 삼성전자주식회사 단말기의 메모리 확장 장치 및 방법
US9501222B2 (en) * 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction

Also Published As

Publication number Publication date
WO2016028607A1 (en) 2016-02-25
US9823846B2 (en) 2017-11-21
US20160054928A1 (en) 2016-02-25
EP3183661B1 (en) 2019-10-23
CN106575273A (zh) 2017-04-19
CN106575273B (zh) 2019-12-13
JP2017528813A (ja) 2017-09-28
EP3183661A1 (en) 2017-06-28

Similar Documents

Publication Publication Date Title
JP6297208B2 (ja) システムオンチップ用のメモリを拡張するためのシステムおよび方法
US11775173B2 (en) Apparatus and method to share host system RAM with mass storage memory RAM
EP3289465B1 (en) Systems and methods for optimizing memory power consumption in a heterogeneous system memory
CN107179996B (zh) 数据存储装置和其操作方法
KR102367982B1 (ko) 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10163508B2 (en) Supporting multiple memory types in a memory slot
US20160162416A1 (en) Apparatus and Method for Reducing Latency Between Host and a Storage Device
US9396108B2 (en) Data storage device capable of efficiently using a working memory device
US9189397B2 (en) Data storage device including buffer memory
US9983930B2 (en) Systems and methods for implementing error correcting code regions in a memory
JP2017506391A (ja) Dram欠陥のカーネルマスキング
KR102258126B1 (ko) 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US10452596B2 (en) Memory cells configured in multiple configuration modes
US20180365425A1 (en) Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
KR20160061703A (ko) 내부 카피 동작을 수행하는 메모리 장치
JP2017532657A (ja) 圧縮アルゴリズムのためのキャッシュバンク分散
US9530466B1 (en) System and method for memory access dynamic mode switching
US20200218649A1 (en) Performance configurable nonvolatile memory set
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
JP6259755B2 (ja) メモリ・システムにおけるチャネル深さ調整
KR20160004728A (ko) 메모리 시스템 및 데이터 저장 장치
KR20170038282A (ko) 전자 장치 및 그 부팅 방법
US20150160863A1 (en) Unified memory type aware storage module

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180104

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180104

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180220

R150 Certificate of patent or registration of utility model

Ref document number: 6297208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees