JP6273294B2 - 共有およびマネージド・メモリー統一アクセス - Google Patents
共有およびマネージド・メモリー統一アクセス Download PDFInfo
- Publication number
- JP6273294B2 JP6273294B2 JP2015551766A JP2015551766A JP6273294B2 JP 6273294 B2 JP6273294 B2 JP 6273294B2 JP 2015551766 A JP2015551766 A JP 2015551766A JP 2015551766 A JP2015551766 A JP 2015551766A JP 6273294 B2 JP6273294 B2 JP 6273294B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- managed
- buffer
- managed 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 175
- 239000000872 buffer Substances 0.000 claims description 157
- 238000000034 method Methods 0.000 claims description 65
- 230000009471 action Effects 0.000 claims description 2
- 238000012552 review Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 28
- 230000007246 mechanism Effects 0.000 description 21
- 238000005266 casting Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003139 buffering effect 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
- 238000005056 compaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- 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/12—Replacement control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Software Systems (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
インミュータブル共有可能ゼロ−コピー・バルク・データー
[0040] ゼロ−コピーをサポートするための主要な課題は、システムにおける異なるレイヤ間のコピー動作として定義される、従前のシステムにおけるI/Oインターフェースであった。リード・アプリケーション・プログラム・インターフェース(API)は、アプリケーション・バッファを入力として受け入れ、あるデーター・ソースからのデーターでそれを満たす。同様に、ライトAPIもアプリケーション・バッファを取得し、その内容を何らかのデーター・ターゲットに書き込む。リード/ライトAPIのセマンティクスは、バッファの境界合せ(alignment)、割り当て空間、および保持に対する完全な自由をアプリケーションに付与する。この単純なモデルは、このモデルが不連続バッファを表現することも、データー・コピー動作の回数を減らすこともできないという、様々な本質的な欠点(limitation)を有する。
ゼロ−コピー・データー・ストリーミング
[0060] オペレーティング・システムを介したバルク・データーの移動は、多くの場合、ストリーム・アーキテクチャーを使用してモデル化される。ストリームは、データー・ソースとデーター・コンシューマーとの間の論理的導管を表し、ソースによって生成されたデーターをその宛先に配信することを可能にする。ストリームは、通例、生成側と消費側との間におけるスループットの不調和に対処するために、バッファリングを実施する。
ゼロ−コピー・キャッシング
[0066] キャッシングは、いずれのオペレーティング・システムのI/Oサブシステムでも重要な一面である。データー・アクセス・パターンはクラスター化される傾向にあり、同じデーターが多数回引き出されることが多いという事実を利用することによって、レイテンシが低減され、有効スループットが高められる。従前のキャッシングは、オペレーティング・システムの様々なレイヤにおけるメモリーの専用プールを、各々、直交保持および交換方針(orthogonal retention and replacement policies)によって独立して管理させることによって行われる。キャッシュからデーターにアクセスすると、キャッシュ・バッファの外側からアプリケーション・バッファにデーターをコピーすることが必要になることが多い。
均一メモリー・アクセス
[0090] マネージド言語環境におけるメモリーは、潜在的に非常に動的なものである。オブジェクトは、ヒープから割り当てられ、ガベージ・コレクターによって管理される。図12を参照すると、マネージド・システム1200はガベージ・コレクター1221を含む。発見的方法に基づいて、ガベージ・コレクターは、規則的に、以前に使用された空間を取り戻すためにオブジェクトを一緒に纏めることによって、ヒープの保守を実行する。オブジェクトを一緒に纏めるとは、オブジェクトのメモリー・アドレスが本質的に不安定であり、ガベージ・コレクターによる変化を受けることを暗示する。ガベージ・コレクターは、特定のコード生成パターン、およびオペレーティング・システムからのサポートに依存して、アプリケーション−レベル・コードに透過的な方法でオブジェクトを移動させることができる。
タイプ−セーフ型キャスト
[0105] マネージド・プログラミング言語の主要な役割は、プログラムがメモリーにおいて任意のアドレスを取り込みそれをオブジェクトとして操作することを防止するタイプ・セーフを強制することである。例えば、図12のマネージド・システム1200は、タイプ・セーフを保証するタイプ・ストリーム1222を含む。全てのオブジェクトは明示的に取得され、各オブジェクトのアドレスは、ガベージ・コレクター(例えば、ガベージ・コレクター1221)によって厳しく制御される。このようなシステムでは、ガベージ・コレクターの直接制御下にないメモリーは、アプリケーション・コードによって直接使用することができない。代わりに、メモリーは、それが使用できるようになる前に、特殊メモリーから逆にガベージ・コレクターによって制御されるメモリーにコピーされなければならなくなる。
Claims (10)
- 各々、マネージド計算エンティティに対応する複数のマネージド・メモリー部分を有するマネージド・メモリーと、
前記マネージド・メモリーの外側に位置するインミュータブル・バッファであって、前記複数のマネージド・メモリー部分の内特定のマネージド・メモリー部分が、前記対応する特定のマネージド計算エンティティにはアクセス可能であるが、他の計算エンティティにはアクセス可能でない1つ以上のガベージ・コレクト可能オブジェクトを含み、前記特定のマネージド・メモリー部分が、前記インミュータブル・バッファに対する1つ以上の参照も含む、インミュータブル・バッファと、
前記特定のマネージド・メモリー部分における前記1つ以上のガベージ・コレクト可能オブジェクトを管理するように構成され、更に前記インミュータブル・バッファに対する前記1つ以上の参照に対しては何のアクションも実行しないように構成されたガベージ・コレクション・コンポーネントと、
を含む、システム。 - 請求項1記載のシステムにおいて、前記マネージド・メモリーがマネージド・ヒープである、システム。
- 請求項1記載のシステムにおいて、前記インミュータブル・バッファが、当該インミュータブル・バッファの寿命の間そのデーターが変化させられることから保護される、システム。
- 請求項1記載のシステムにおいて、前記インミュータブル・バッファが、当該インミュータブル・バッファの寿命の間その物理アドレスが変化させられることから保護される、システム。
- 請求項1記載のシステムにおいて、前記1つ以上の参照の少なくとも1つがアレイ・エレメントである、システム。
- 請求項1記載のシステムにおいて、前記1つ以上の参照の少なくとも1つが、前記インミュータブル・バッファの少なくとも一部のアドレスを含む、システム。
- 請求項1記載のシステムにおいて、前記特定のマネージド・メモリー部分が、第1マネージド・メモリー部分であり、前記特定の計算エンティティが、前記複数の計算エンティティの内第1計算エンティティであり、
前記複数のマネージド・メモリー部分の内第2マネージド・メモリー部分が、前記対応する第2計算エンティティにはアクセス可能であるが、他の計算エンティティにはアクセス可能でない1つ以上のガベージ・コレクト可能オブジェクトを含み、前記第2マネージド・メモリー部分も、前記インミュータブル・バッファに対する1つ以上の参照を含む、システム。 - ガベージ・コレクションの実行方法であって、
特定の計算エンティティに対応する特定のマネージド・メモリー部分を検討する(review)アクトであって、マネージド・メモリーが、複数のマネージド・メモリー部分を含み、各マネージド・メモリー部分が計算エンティティに対応する、アクトと、
検討するときに、複数のオブジェクトを発見するアクトであって、前記特定のマネージド・メモリー部分が、前記マネージド・メモリーの外側にあるインミュータブル・バッファに対する参照を含む、アクトと、
前記参照を発見したときに、前記参照が前記マネージド・メモリーの外側にある項目に対応すると判定するアクトと、
前記判定するアクトの結果、前記参照に対応する前記項目に対してガベージ・コレクションを実行するのを控えるアクトと、
を含む、方法。 - 請求項8記載の方法において、前記マネージド・メモリーの他のマネージド・メモリー部分も、前記マネージド・メモリーの外側にある前記項目に対する参照を含む、方法。
- 請求項8記載の方法であって、更に、前記マネージド・メモリー部分の外側にある項目を参照しないオブジェクトに対してガベージ・コレクションを実行するアクトを含む、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/734,788 | 2013-01-04 | ||
US13/734,788 US8966203B2 (en) | 2013-01-04 | 2013-01-04 | Shared and managed memory unified access |
PCT/US2014/010137 WO2014107554A1 (en) | 2013-01-04 | 2014-01-03 | Shared and managed memory unified access |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016502220A JP2016502220A (ja) | 2016-01-21 |
JP6273294B2 true JP6273294B2 (ja) | 2018-01-31 |
Family
ID=50029243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015551766A Active JP6273294B2 (ja) | 2013-01-04 | 2014-01-03 | 共有およびマネージド・メモリー統一アクセス |
Country Status (11)
Country | Link |
---|---|
US (1) | US8966203B2 (ja) |
EP (1) | EP2941707B1 (ja) |
JP (1) | JP6273294B2 (ja) |
KR (1) | KR102123711B1 (ja) |
CN (1) | CN105103136B (ja) |
AU (1) | AU2014204064B2 (ja) |
BR (1) | BR112015015865B1 (ja) |
CA (1) | CA2896518C (ja) |
MX (1) | MX352440B (ja) |
RU (1) | RU2641244C2 (ja) |
WO (1) | WO2014107554A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262331B2 (en) * | 2013-10-24 | 2016-02-16 | International Business Machines Corporation | Memory management with priority-based memory reclamation |
US9536082B2 (en) * | 2015-03-17 | 2017-01-03 | International Business Machines Corporation | Isolated program execution environment |
WO2017095387A1 (en) * | 2015-11-30 | 2017-06-08 | Hewlett-Packard Enterprise Development LP | Multiple simultaneous value object |
US20170293554A1 (en) * | 2016-04-12 | 2017-10-12 | Google Inc. | Hardware-assisted garbage collection |
KR102651425B1 (ko) | 2016-06-30 | 2024-03-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10599590B2 (en) | 2016-11-30 | 2020-03-24 | International Business Machines Corporation | Uniform memory access architecture |
CN107807797B (zh) * | 2017-11-17 | 2021-03-23 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
KR20200027204A (ko) * | 2018-09-04 | 2020-03-12 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
CN109302639B (zh) * | 2018-09-30 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | 一种弹幕消息的分发方法、装置、终端和存储介质 |
DE102019215292A1 (de) * | 2019-10-04 | 2021-04-08 | Robert Bosch Gmbh | Datenstruktur, Speichermittel und Vorrichtung |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08235131A (ja) * | 1995-02-27 | 1996-09-13 | Mitsubishi Electric Corp | 並列計算機 |
JP3919261B2 (ja) * | 1996-07-31 | 2007-05-23 | キヤノン株式会社 | メモリ制御装置およびメモリアクセス方法 |
US6167434A (en) * | 1998-07-15 | 2000-12-26 | Pang; Stephen Y. | Computer code for removing junk e-mail messages |
BR0210589A (pt) * | 2001-06-22 | 2005-04-26 | Nosa Omoigui | Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento |
US7249162B2 (en) * | 2003-02-25 | 2007-07-24 | Microsoft Corporation | Adaptive junk message filtering system |
US7087282B2 (en) | 2003-07-15 | 2006-08-08 | General Electric Company | Limited play optical storage medium, method for making the same |
US7428730B2 (en) | 2003-12-15 | 2008-09-23 | Intel Corporation | Software development environment |
US7269718B2 (en) | 2004-04-29 | 2007-09-11 | International Business Machines Corporation | Method and apparatus for verifying data types to be used for instructions and casting data types if needed |
US7512745B2 (en) * | 2006-04-28 | 2009-03-31 | International Business Machines Corporation | Method for garbage collection in heterogeneous multiprocessor systems |
GB0911099D0 (en) | 2009-06-26 | 2009-08-12 | Codeplay Software Ltd | Processing method |
GB2500153A (en) * | 2010-11-30 | 2013-09-11 | Ibm | A Method, Computer Program and System to Optimize Memory Management of An Application Running on a Virtual Machine |
US8863080B2 (en) | 2011-11-29 | 2014-10-14 | Red Hat, Inc. | Maintaining a pointer's type |
US9015831B2 (en) | 2012-08-08 | 2015-04-21 | Synopsys, Inc | Method and apparatus for static taint analysis of computer program code |
-
2013
- 2013-01-04 US US13/734,788 patent/US8966203B2/en active Active
-
2014
- 2014-01-03 MX MX2015008716A patent/MX352440B/es active IP Right Grant
- 2014-01-03 BR BR112015015865-0A patent/BR112015015865B1/pt active IP Right Grant
- 2014-01-03 KR KR1020157021021A patent/KR102123711B1/ko active IP Right Grant
- 2014-01-03 CA CA2896518A patent/CA2896518C/en active Active
- 2014-01-03 JP JP2015551766A patent/JP6273294B2/ja active Active
- 2014-01-03 EP EP14701843.6A patent/EP2941707B1/en active Active
- 2014-01-03 RU RU2015126787A patent/RU2641244C2/ru active
- 2014-01-03 WO PCT/US2014/010137 patent/WO2014107554A1/en active Application Filing
- 2014-01-03 AU AU2014204064A patent/AU2014204064B2/en active Active
- 2014-01-03 CN CN201480004068.5A patent/CN105103136B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US8966203B2 (en) | 2015-02-24 |
RU2015126787A (ru) | 2017-01-11 |
CA2896518A1 (en) | 2014-07-10 |
US20140195766A1 (en) | 2014-07-10 |
EP2941707B1 (en) | 2016-11-16 |
KR20150104591A (ko) | 2015-09-15 |
CA2896518C (en) | 2020-06-16 |
KR102123711B1 (ko) | 2020-06-16 |
AU2014204064B2 (en) | 2020-01-23 |
CN105103136A (zh) | 2015-11-25 |
AU2014204064A1 (en) | 2015-07-16 |
BR112015015865B1 (pt) | 2021-02-09 |
MX2015008716A (es) | 2016-03-09 |
MX352440B (es) | 2017-11-24 |
WO2014107554A1 (en) | 2014-07-10 |
BR112015015865A2 (pt) | 2017-07-11 |
RU2641244C2 (ru) | 2018-01-16 |
EP2941707A1 (en) | 2015-11-11 |
CN105103136B (zh) | 2018-07-27 |
JP2016502220A (ja) | 2016-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6273294B2 (ja) | 共有およびマネージド・メモリー統一アクセス | |
US9189446B2 (en) | Immutable sharable zero-copy data and streaming | |
Aguilera et al. | Remote memory in the age of fast networks | |
US7437517B2 (en) | Methods and arrangements to manage on-chip memory to reduce memory latency | |
CN110869913A (zh) | 用于数据处理网络的存储器系统 | |
EP2941704B1 (en) | Zero-copy caching | |
US8006055B2 (en) | Fine granularity hierarchiacal memory protection | |
Peng et al. | Enabling scalable and extensible memory-mapped datastores in userspace | |
JP5151559B2 (ja) | プログラム実行システム | |
EP2941701B1 (en) | Type casting in a managed code system | |
Laux Jr et al. | Back to the past: Segmentation with infinite and non-volatile memory | |
Rheindt et al. | Tackling the MPSoC Data Locality Challenge | |
Zhang et al. | A Scalable Pthreads-Compatible Thread Model for VM-Intensive Programs | |
Zhang et al. | Efficient address remapping in distributed shared-memory systems | |
Walfield | Viengoos Developer Reference | |
Heinrich et al. | Computer Systems Laboratory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171206 |
|
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: 20171208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6273294 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 |