JP6676052B2 - 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 - Google Patents
不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP6676052B2 JP6676052B2 JP2017529057A JP2017529057A JP6676052B2 JP 6676052 B2 JP6676052 B2 JP 6676052B2 JP 2017529057 A JP2017529057 A JP 2017529057A JP 2017529057 A JP2017529057 A JP 2017529057A JP 6676052 B2 JP6676052 B2 JP 6676052B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- page
- soc
- physical
- volatile memory
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 100
- 238000000034 method Methods 0.000 title claims description 53
- 230000008569 process Effects 0.000 claims description 15
- 230000010076 replication Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000011010 flushing procedure Methods 0.000 claims 4
- 238000013507 mapping Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
102 システムオンチップ(SoC)
104 ダイナミックランダムアクセスメモリ(DRAM)
105 バス
106 DRAMコントローラ
108 プロセッサ
110 オペレーティングシステム
112 SoCバス
114 チップ間インターフェースコントローラ
116 ダイ間インターフェース
120 プロセッサ
122 プロセッサ
200 システムメモリマネージャ
201 適応的NUMAレイテンシ最適化モジュール
202 SoC
203 ノンブロッキングNUMAレイテンシ最適化モジュール
204 DRAM
205 バス
206 DRAMコントローラ
208 プロセッサ
210 オペレーティングシステム
212 SoCバス
214 チップ間インターフェースコントローラ
220 プロセッサ
222 プロセッサ
300 メモリデータ
302 データ
304 データ
306 データ
308 データ
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 ユニバーサルシリアルバス(USB)コントローラ
342 USBポート
346 加入者識別モジュール(SIM)カード
348 デジタルカメラ
350 ステレオ/オーディオコーデック
352 オーディオ増幅器
354 ステレオスピーカ
356 ステレオスピーカ
358 マイクロフォン増幅器
360 マイクロフォン
362 周波数変調(FM)無線チューナー
364 FMアンテナ
366 ステレオヘッドフォン
368 無線周波数(RF)トランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 モノヘッドセット
378 バイブレータデバイス
380 電源
388 ネットワークカード
399 空き物理ページペア
402 仮想メモリマネージャ
404 仮想メモリマネージャ
450 コピー属性フィールド
452 コピービット値
454 物理ページインデックス
1300 PCD
1302 マルチコアCPU
1306 ディスプレイ/タッチスクリーン
1310 第0のコア
1312 第1のコア
1314 第Nのコア
Claims (15)
- 不均一メモリアーキテクチャを有するポータブルコンピューティングデバイス内のメモリを割り振るための方法であって、
第1のシステムオンチップ(SoC)上で実行されているプロセスから、仮想メモリページについての要求を受け取るステップであって、前記第1のSoCがチップ間インターフェースを介して第2のSoCに電気的に結合され、前記第1のSoCが第1の高性能バスを介して第1のローカル揮発性メモリデバイスに電気的に結合され、前記第2のSoCが第2の高性能バスを介して第2のローカル揮発性メモリデバイスに電気的に結合される、ステップと、
前記第1および第2のローカル揮発性メモリデバイス上の利用可能な物理ページの数が、前記第1および第2のローカル揮発性メモリデバイス間でメモリデータの複製を開始するための最小しきい値を超えるかどうかを決定するステップと、
前記第1のローカル揮発性メモリデバイス上の利用可能な物理ページの数と前記第2のローカル揮発性メモリデバイス上の利用可能な物理ページの数のいずれもが前記最小しきい値を超える場合、前記第1のローカル揮発性メモリデバイス上の第1の物理アドレスおよび前記第2のローカル揮発性メモリデバイス上の第2の物理アドレスを単一の仮想ページアドレスに割り振るステップと
を含む、方法。 - 前記第1および第2の物理アドレスを前記単一の仮想ページアドレスに割り振るステップが、ページテーブルエントリを変更するステップを含む、請求項1に記載の方法。
- 前記ページテーブルエントリが、メモリデータが複製されるべきであることを示すtrue値に設定されたコピー属性と、前記第1の物理アドレスへの第1の物理ページインデックスと、レプリカアドレスを含んだ前記第2の物理アドレスへの第2の物理ページインデックスとを含む、請求項2に記載の方法。
- 前記単一の仮想ページアドレスへの書込みトランザクションのさらなる要求を受け取るステップと、
前記ページテーブルエントリへのルックアップを実行するステップと、
前記コピー属性が前記true値に設定されている場合、前記レプリカアドレスを読み取り、前記データを前記レプリカアドレスにフラッシュするステップと
をさらに含む、請求項3に記載の方法。 - 前記コピー属性がfalse値に設定されている場合、データをオリジナルアドレスにフラッシュするステップ
をさらに含む、請求項4に記載の方法。 - 前記単一の仮想ページアドレスへの読取りトランザクションのさらなる要求を受け取るステップと、
前記ページテーブルエントリへのルックアップを実行するステップと、
前記コピー属性が前記true値に設定されている場合、前記レプリカアドレスを読み取り、オリジナルアドレスおよび前記レプリカアドレスのうちのより近い方からキャッシュフィルを実行するステップと
をさらに含む、請求項3に記載の方法。 - 前記コピー属性がfalse値に設定されている場合、オリジナルアドレスからキャッシュフィルを実行するステップ
をさらに含む、請求項6に記載の方法。 - 不均一メモリアーキテクチャを有するポータブルコンピューティングデバイス内のメモリを割り振るためのシステムであって、
第1のシステムオンチップ(SoC)上で実行されているプロセスから、仮想メモリページについての要求を受け取るための手段であって、前記第1のSoCがチップ間インターフェースを介して第2のSoCに電気的に結合され、前記第1のSoCが第1の高性能バスを介して第1のローカル揮発性メモリデバイスに電気的に結合され、前記第2のSoCが第2の高性能バスを介して第2のローカル揮発性メモリデバイスに電気的に結合される、手段と、
前記第1および第2のローカル揮発性メモリデバイス上の利用可能な物理ページの数が、前記第1および第2のローカル揮発性メモリデバイス間でメモリデータの複製を開始するための最小しきい値を超えるかどうかを決定するための手段と、
前記第1のローカル揮発性メモリデバイス上の利用可能な物理ページの数と前記第2のローカル揮発性メモリデバイス上の利用可能な物理ページの数のいずれもが前記最小しきい値を超える場合、前記第1のローカル揮発性メモリデバイス上の第1の物理アドレスおよび前記第2のローカル揮発性メモリデバイス上の第2の物理アドレスを単一の仮想ページアドレスに割り振るための手段と
を含む、システム。 - 前記第1および第2の物理アドレスを前記単一の仮想ページアドレスに割り振るための前記手段が、ページテーブルエントリを変更するための手段を含む、請求項8に記載のシステム。
- 前記ページテーブルエントリが、メモリデータが複製されるべきであることを示すtrue値に設定されたコピー属性と、前記第1の物理アドレスへの第1の物理ページインデックスと、レプリカアドレスを含んだ前記第2の物理アドレスへの第2の物理ページインデックスとを含む、請求項9に記載のシステム。
- 前記単一の仮想ページアドレスへの書込みトランザクションのさらなる要求を受け取るための手段と、
前記ページテーブルエントリへのルックアップを実行するための手段と、
前記コピー属性が前記true値に設定されている場合、前記レプリカアドレスを読み取り、前記データを前記レプリカアドレスにフラッシュするための手段と
をさらに含む、請求項10に記載のシステム。 - 前記コピー属性がfalse値に設定されている場合、データをオリジナルアドレスにフラッシュするための手段
をさらに含む、請求項11に記載のシステム。 - 前記単一の仮想ページアドレスへの読取りトランザクションのさらなる要求を受け取るための手段と、
前記ページテーブルエントリへのルックアップを実行するための手段と、
前記コピー属性が前記true値に設定されている場合、前記レプリカアドレスを読み取り、オリジナルアドレスおよび前記レプリカアドレスのうちのより近い方からキャッシュフィルを実行するための手段と
をさらに含む、請求項10に記載のシステム。 - 前記コピー属性がfalse値に設定されている場合、オリジナルアドレスからキャッシュフィルを実行するための手段
をさらに含む、請求項13に記載のシステム。 - 不均一メモリアーキテクチャでメモリを割り振るためにプロセッサによって実行可能であるコンピュータプログラムであって、請求項1から7のいずれか一項に記載の方法を実行するように構成された論理を含むコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/560,450 | 2014-12-04 | ||
US14/560,450 US9542333B2 (en) | 2014-12-04 | 2014-12-04 | Systems and methods for providing improved latency in a non-uniform memory architecture |
PCT/US2015/061989 WO2016089632A1 (en) | 2014-12-04 | 2015-11-20 | Systems and methods for providing improved latency in a non-uniform memory architecture |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018502379A JP2018502379A (ja) | 2018-01-25 |
JP2018502379A5 JP2018502379A5 (ja) | 2018-12-13 |
JP6676052B2 true JP6676052B2 (ja) | 2020-04-08 |
Family
ID=54834930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017529057A Active JP6676052B2 (ja) | 2014-12-04 | 2015-11-20 | 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9542333B2 (ja) |
EP (1) | EP3227787B1 (ja) |
JP (1) | JP6676052B2 (ja) |
KR (1) | KR20170091102A (ja) |
CN (1) | CN107111560B (ja) |
BR (1) | BR112017011765A2 (ja) |
CA (1) | CA2964303A1 (ja) |
TW (1) | TW201633151A (ja) |
WO (1) | WO2016089632A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575881B2 (en) | 2014-12-04 | 2017-02-21 | Qualcomm Incorporated | Systems and methods for providing improved latency in a non-uniform memory architecture |
US11157416B2 (en) * | 2020-02-27 | 2021-10-26 | Micron Technology, Inc. | Firmware loading for a memory controller |
CN111782411A (zh) * | 2020-07-02 | 2020-10-16 | 江苏华创微***有限公司 | 在numa***中提升抢锁操作公平性的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182298A (ja) * | 1993-12-22 | 1995-07-21 | Canon Inc | 情報処理方法及び装置 |
US5897664A (en) | 1996-07-01 | 1999-04-27 | Sun Microsystems, Inc. | Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies |
JPH10312338A (ja) * | 1997-05-13 | 1998-11-24 | Toshiba Corp | メモリ制御装置、及びメモリ制御方法 |
US6049853A (en) | 1997-08-29 | 2000-04-11 | Sequent Computer Systems, Inc. | Data replication across nodes of a multiprocessor computer system |
US6167437A (en) | 1997-09-02 | 2000-12-26 | Silicon Graphics, Inc. | Method, system, and computer program product for page replication in a non-uniform memory access system |
DE69819927D1 (de) | 1997-09-05 | 2003-12-24 | Sun Microsystems Inc | Nachschlagtabelle und verfahren zur datenspeicherung darin |
US6785783B2 (en) | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | NUMA system with redundant main memory architecture |
US6871219B2 (en) | 2001-03-07 | 2005-03-22 | Sun Microsystems, Inc. | Dynamic memory placement policies for NUMA architecture |
EP1611513B1 (en) | 2003-04-04 | 2010-12-15 | Oracle America, Inc. | Multi-node system in which global address generated by processing subsystem includes global to local translation information |
US7765381B2 (en) | 2003-04-04 | 2010-07-27 | Oracle America, Inc. | Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes |
US8417913B2 (en) * | 2003-11-13 | 2013-04-09 | International Business Machines Corporation | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages |
US7921261B2 (en) | 2007-12-18 | 2011-04-05 | International Business Machines Corporation | Reserving a global address space |
US8451281B2 (en) | 2009-06-23 | 2013-05-28 | Intel Corporation | Shared virtual memory between a host and discrete graphics device in a computing system |
US8392736B2 (en) * | 2009-07-31 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Managing memory power usage |
US8924685B2 (en) * | 2010-05-11 | 2014-12-30 | Qualcomm Incorporated | Configuring surrogate memory accessing agents using non-priviledged processes |
JP5664347B2 (ja) * | 2011-03-04 | 2015-02-04 | ソニー株式会社 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
US8560757B2 (en) | 2011-10-25 | 2013-10-15 | Cavium, Inc. | System and method to reduce memory access latencies using selective replication across multiple memory ports |
CN103257929B (zh) * | 2013-04-18 | 2016-03-16 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及*** |
US9361233B2 (en) * | 2013-12-20 | 2016-06-07 | Intel Corporation | Method and apparatus for shared line unified cache |
US9558041B2 (en) * | 2014-09-05 | 2017-01-31 | Telefonaktiebolaget L M Ericsson (Publ) | Transparent non-uniform memory access (NUMA) awareness |
US9575881B2 (en) | 2014-12-04 | 2017-02-21 | Qualcomm Incorporated | Systems and methods for providing improved latency in a non-uniform memory architecture |
-
2014
- 2014-12-04 US US14/560,450 patent/US9542333B2/en active Active
-
2015
- 2015-11-20 JP JP2017529057A patent/JP6676052B2/ja active Active
- 2015-11-20 CA CA2964303A patent/CA2964303A1/en not_active Abandoned
- 2015-11-20 KR KR1020177014960A patent/KR20170091102A/ko active IP Right Grant
- 2015-11-20 WO PCT/US2015/061989 patent/WO2016089632A1/en active Application Filing
- 2015-11-20 EP EP15805688.7A patent/EP3227787B1/en active Active
- 2015-11-20 CN CN201580062124.5A patent/CN107111560B/zh active Active
- 2015-11-20 BR BR112017011765A patent/BR112017011765A2/pt not_active IP Right Cessation
- 2015-12-04 TW TW104140796A patent/TW201633151A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2016089632A1 (en) | 2016-06-09 |
CA2964303A1 (en) | 2016-06-09 |
EP3227787B1 (en) | 2020-03-04 |
KR20170091102A (ko) | 2017-08-08 |
EP3227787A1 (en) | 2017-10-11 |
BR112017011765A2 (pt) | 2018-02-20 |
JP2018502379A (ja) | 2018-01-25 |
US9542333B2 (en) | 2017-01-10 |
CN107111560A (zh) | 2017-08-29 |
CN107111560B (zh) | 2021-01-08 |
US20160162415A1 (en) | 2016-06-09 |
TW201633151A (zh) | 2016-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170177497A1 (en) | Compressed caching of a logical-to-physical address table for nand-type flash memory | |
KR102051698B1 (ko) | 단일 페이지 테이블 엔트리 내의 속성 필드들의 다중 세트들 | |
US10769073B2 (en) | Bandwidth-based selective memory channel connectivity on a system on chip | |
US10628308B2 (en) | Dynamic adjustment of memory channel interleave granularity | |
JP6674460B2 (ja) | 不均一メモリアーキテクチャにおける改善されたレイテンシのためのシステムおよび方法 | |
CN106575273B (zh) | 用于扩展片上***的存储器的***和方法 | |
WO2015156937A1 (en) | Multi-level memory hierarchy | |
JP6676052B2 (ja) | 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 | |
JP2016522915A (ja) | 共有メモリシステム | |
US11157191B2 (en) | Intra-device notational data movement system | |
US20210373790A1 (en) | Inference in memory | |
US20210117114A1 (en) | Memory system for flexibly allocating memory for multiple processors and operating method thereof | |
US20230205420A1 (en) | Flexible memory system | |
US10853293B2 (en) | Switch-based inter-device notational data movement system | |
US11714753B2 (en) | Methods and nodes for handling memory | |
US20160320972A1 (en) | Adaptive compression-based paging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181105 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190927 |
|
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: 20200217 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200311 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6676052 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 |