JP2022540750A - Memory management for computing devices - Google Patents
Memory management for computing devices Download PDFInfo
- Publication number
- JP2022540750A JP2022540750A JP2021570857A JP2021570857A JP2022540750A JP 2022540750 A JP2022540750 A JP 2022540750A JP 2021570857 A JP2021570857 A JP 2021570857A JP 2021570857 A JP2021570857 A JP 2021570857A JP 2022540750 A JP2022540750 A JP 2022540750A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- executable program
- data file
- memory
- pages
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 201
- 230000004044 response Effects 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims description 37
- 230000004913 activation Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 4
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000006399 behavior Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 22
- 238000001994 activation Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
一実施形態では、方法が、コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、コンピュータ実行可能プログラムから、コンピュータ実行可能プログラムに関連する特定のデータファイルの、特定のファイルがメモリの廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、応答して、メモリの廃棄可能な部分の1つまたは複数の特定のページに特定のデータファイルを記憶することと、コンピューティング条件の発生を識別することと、応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることと、コンピュータ実行可能プログラムから、特定のデータファイルについての要求を受信することと、要求を受信したことに応答して、コンピュータ実行可能プログラムに、特定のデータファイルがコンピュータ実行可能プログラムについて無効であるという通知を提供することとを含む。【選択図】図1In one embodiment, a method comprises allocating, by an operating system of a computing device, computer-implemented memory into a disposable portion and a durable portion; of the data files, indicating that the particular file is to be stored in the disposable portion of memory; and in response, one or more of the disposable portions of memory. identifying the occurrence of the computing condition; and, in response, one or more specific data files containing the specific data files as invalid for the computer-executable program. marking a page; receiving a request from a computer-executable program for a particular data file; and providing a notice that the program is invalid. [Selection drawing] Fig. 1
Description
本開示は、一般に、コンピューティングデバイスのメモリ管理に関する。 The present disclosure relates generally to memory management for computing devices.
スマートフォン、タブレットコンピュータ、またはラップトップコンピュータなど、モバイルコンピューティングデバイスは、GPS受信機、コンパス、ジャイロスコープ、または加速度計など、そのデバイスのロケーション、方向、または向きを決定するための機能性を含み得る。そのようなデバイスは、BLUETOOTH通信、ニアフィールド通信(NFC)、あるいは赤外線(IR)通信、あるいはワイヤレスローカルエリアネットワーク(WLAN)またはセルラー電話ネットワークとの通信など、ワイヤレス通信のための機能性をも含み得る。そのようなデバイスは、1つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカーをも含み得る。モバイルコンピューティングデバイスは、ゲーム、ウェブブラウザ、またはソーシャルネットワーキングアプリケーションなど、ソフトウェアアプリケーションをも実行し得る。ソーシャルネットワーキングアプリケーションを用いると、ユーザは、自身のソーシャルネットワーク内の他のユーザとつながり、通信し、情報を共有し得る。 A mobile computing device, such as a smartphone, tablet computer, or laptop computer, may include functionality for determining the location, direction, or orientation of the device, such as a GPS receiver, compass, gyroscope, or accelerometer. . Such devices also include functionality for wireless communication, such as BLUETOOTH communication, near-field communication (NFC), or infrared (IR) communication, or communication with wireless local area networks (WLAN) or cellular telephone networks. obtain. Such devices may also include one or more cameras, scanners, touch screens, microphones, or speakers. Mobile computing devices may also run software applications, such as games, web browsers, or social networking applications. Social networking applications allow users to connect, communicate, and share information with other users within their social networks.
モバイルコンピューティングデバイスは、電力効率的である必要があり、同時にアクティブである複数のアプリケーションをサポートする必要があり得る。既存のモバイルプラットフォームは耐久性のある(durable)メモリを有するにすぎず、そのメモリは、使用していないときに完全にオフにされることが可能でないことがある。さらに、コンピューティングデバイスによって使用されるメモリの再割振りはまた、メモリに現在記憶されているデータが解放に適しているかどうかが知られていないので、より困難である。 Mobile computing devices need to be power efficient and may need to support multiple applications that are active at the same time. Existing mobile platforms only have durable memory, which may not be able to be completely turned off when not in use. Furthermore, reallocation of memory used by computing devices is also more difficult because it is not known whether the data currently stored in memory is suitable for freeing.
本開示は、2つのタイプのメモリ、すなわち、耐久性のあるメモリと廃棄可能な(discardable)メモリとをサポートするコンピューティングデバイスについて説明する。コンピューティングデバイスのオペレーティングシステムのためのAPI/ライブラリが、廃棄可能なメモリ中のいくつかのタイプのデータの記憶を要求するために、アプリケーションによって使用され得る。たとえば、画像(または他のタイプの静的コンテンツ)が、廃棄可能なメモリに好適であり得る。コンピューティングデバイスは、メモリ割振りポリシーに基づいて、廃棄可能なメモリを他のアプリケーションに再割り振りするか、またはアプリケーションが非アクティブであるとき、廃棄可能なメモリを含むいくつかのメモリバンクをオフにすることができる。その上、多くの電力を必要とすることがある、廃棄可能なメモリ中のデータをディスクにスワップすることを行うのではなく、コンピューティングデバイスは、廃棄可能なメモリによって記憶されたそのデータを廃棄し、廃棄されたメモリに記憶されたデータについてのメモリが現在無効であることを上位レイヤ(たとえば、API/ライブラリまたはアプリケーション)に通知することができる。このメモリは、次いで、再割り振りされ得る。再割り振りされたページに完全にまたは部分的に記憶されたデータは、無効としてマークされることになる。この通知機構は、上位レイヤが、無効にされたメモリを適切に扱うことを可能にする。 This disclosure describes computing devices that support two types of memory: durable memory and disposable memory. APIs/libraries for the computing device's operating system can be used by applications to request storage of some types of data in disposable memory. For example, images (or other types of static content) may be well suited for disposable memory. Based on the memory allocation policy, the computing device either reallocates the disposable memory to other applications or turns off some memory banks containing the disposable memory when the application is inactive be able to. Moreover, rather than having the data in disposable memory swapped to disk, which can require a lot of power, the computing device discards the data stored by the disposable memory. and can notify upper layers (eg, API/library or application) that the memory is now invalid for the data stored in the discarded memory. This memory can then be reallocated. Data stored wholly or partially in reallocated pages will be marked as invalid. This notification mechanism allows higher layers to properly handle invalidated memory.
本明細書で説明される主題の発明的態様は、コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、コンピュータ実行可能プログラムから、コンピュータ実行可能プログラムに関連する特定のデータファイルの、特定のファイルがメモリの廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータ(designation indicator)を受信することと、特定のデータファイルの表示インジケータを受信したことに応答して、メモリの廃棄可能な部分の1つまたは複数の特定のページに特定のデータファイルを記憶することと、コンピューティング条件(computing condition)の発生を識別することと、コンピューティング条件の発生を識別したことに応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることと、コンピュータ実行可能プログラムから、特定のデータファイルについての要求を受信することと、要求を受信したことに応答して、コンピュータ実行可能プログラムに、特定のデータファイルがコンピュータ実行可能プログラムについて無効であるという通知を提供することとを含む、方法において具現され得る。 Inventive aspects of the subject matter described herein involve the allocation of computer-implemented memory into disposable and durable portions by the operating system of a computing device; receiving a designation indicator of a particular data file associated with the executable program indicating that the particular file should be stored in the disposable portion of memory; Storing the particular data file in one or more particular pages of the disposable portion of memory in response to receiving the display indicator and identifying the occurrence of a computing condition. and, in response to identifying the occurrence of the computing condition, marking one or more particular pages containing the particular data file as invalid for the computer-executable program; and in response to receiving the request, providing a notification to the computer-executable program that the particular data file is invalid for the computer-executable program. , can be embodied in a method.
これらの態様の他の実施形態は、対応するシステム、装置、およびコンピュータ可読媒体を含む。 Other embodiments of these aspects include corresponding systems, apparatus, and computer-readable media.
これらおよび他の実施形態は、以下の特徴のうちの1つまたは複数を各々随意に含み得る。たとえば、コンピュータ実行可能プログラムから、コンピュータ実行可能プログラムに関連する追加のデータファイルの、追加のデータファイルがメモリの耐久性のある部分に記憶されるべきであるという、表示インジケータを受信すること、追加のデータファイルの表示インジケータを受信したことに応答して、メモリの耐久性のある部分の1つまたは複数の追加のページに追加のデータファイルを記憶すること、コンピューティング条件の発生を識別したことに応答して、コンピュータ実行可能プログラムについて有効として追加のデータファイルを含む1つまたは複数のページを維持すること。特定のデータファイルは、画像ファイル、ビデオファイル、またはオーディオファイルである。特定のデータファイルのストレージサイズは、しきい値サイズよりも大きい。コンピューティング条件の発生を識別することは、コンピュータ実行可能プログラムの非アクティブ状態を識別することと、応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることとを含む。コンピュータ実行可能プログラムの非アクティブ状態を識別したことに応答して、メモリの廃棄可能な部分を電力オフ状態にすること。コンピューティング条件の発生を識別することは、さらなるコンピュータ実行可能プログラムのアクティブ化を識別することと、応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることとを含み、さらなるコンピュータ実行可能プログラムは、コンピュータ実行可能プログラムよりも高い処理優先度を有する。さらなるコンピュータ実行可能プログラムのアクティブ化を識別したことに応答して、メモリの廃棄可能な部分の1つまたは複数の特定のページを、さらなるコンピュータ実行可能プログラムに関連する1つまたは複数の追加のデータファイルに再割り振りすること。 These and other embodiments can each optionally include one or more of the following features. For example, receiving from the computer-executable program an indication indicator of additional data files associated with the computer-executable program that the additional data files should be stored in a durable portion of memory; storing the additional data file in one or more additional pages of the durable portion of the memory in response to receiving the display indicator of the data file; identifying occurrence of the computing condition; maintaining one or more pages containing additional data files as valid for the computer-executable program in response to; A particular data file is an image file, a video file, or an audio file. The storage size of a particular data file is larger than the threshold size. Identifying the occurrence of the computing condition includes identifying an inactive state of the computer-executable program and, in response, determining one or more particular pages containing particular data files as invalid for the computer-executable program. and marking the Powering off a disposable portion of memory in response to identifying an inactive state of a computer executable program. Identifying the occurrence of the computing condition includes identifying further computer-executable program activations and, in response, determining one or more specific pages containing specific data files as invalid for the computer-executable program. and the further computer-executable program has a higher processing priority than the computer-executable program. In response to identifying activation of the additional computer-executable program, one or more specific pages of the disposable portion of memory are transferred to one or more additional data associated with the additional computer-executable program. To reallocate to a file.
メモリの廃棄可能な部分の1つまたは複数の特定のページに特定のデータファイルを記憶することは、メモリの廃棄可能な部分の1つの特定のページに特定のデータファイルを記憶することを含み、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることは、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つの特定のページをマークすることを含む。1つの特定のページは、1つまたは複数の他のデータファイルを含む。メモリの廃棄可能な部分の1つまたは複数の特定のページに特定のデータファイルを記憶することは、特定のデータファイルが2つの特定のページをまたぐように、メモリの廃棄可能な部分の2つの特定のページに特定のデータファイルを記憶することを含み、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることは、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む2つの特定のページをマークすることを含む。メモリの耐久性のある部分は、メモリの廃棄可能な部分の1つまたは複数のページについてのページテーブルを含み、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることは、1つまたは複数の特定のページについてのページテーブルを修正することを含む。コンピュータ実行可能プログラムは、拡張現実(AR)または仮想現実(VR)コンピュータ実行可能プログラムである。 storing the particular data file in one or more particular pages of the disposable portion of memory includes storing the particular data file in one particular page of the disposable portion of memory; Marking one or more specific pages containing specific data files as invalid for the computer-executable program refers to marking one specific page containing the specific data files as invalid for the computer-executable program. include. One particular page contains one or more other data files. Storing a particular data file in one or more particular pages of a disposable portion of memory may be performed on two pages of a disposable portion of memory such that a particular data file spans two particular pages of a disposable portion of memory. Marking one or more particular pages containing the particular data file as invalid for the computer-executable program includes storing the particular data file in the particular page; This includes marking two specific pages that contain data files of . The durable portion of memory includes a page table for one or more pages of the disposable portion of memory, and one or more specific pages containing specific data files as invalid for computer-executable programs. Marking includes modifying the page table for one or more particular pages. The computer-executable program is an augmented reality (AR) or virtual reality (VR) computer-executable program.
いくつかの実施形態では、命令を記憶するメモリ媒体へのアクセスを有するプロセッサを備えたシステムであって、命令は、コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、コンピュータ実行可能プログラムから、コンピュータ実行可能プログラムに関連する特定のデータファイルの、特定のファイルがメモリの廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、特定のデータファイルの表示インジケータを受信したことに応答して、メモリの廃棄可能な部分の1つまたは複数の特定のページに特定のデータファイルを記憶することと、コンピューティング条件の発生を識別することと、コンピューティング条件の発生を識別したことに応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることと、コンピュータ実行可能プログラムから、特定のデータファイルについての要求を受信することと、要求を受信したことに応答して、コンピュータ実行可能プログラムに、特定のデータファイルがコンピュータ実行可能プログラムについて無効であるという通知を提供することとを行うようにプロセッサによって実行可能である、システムが提供される。 In some embodiments, a system comprising a processor having access to a memory medium storing instructions that are stored by an operating system of a computing device in computer-implemented memory that is disposable and durable. allocating to a portion and indicating from a computer-executable program that a particular file of a particular data file associated with the computer-executable program is to be stored in a disposable portion of memory receiving the indicator; storing the particular data file in one or more particular pages of the disposable portion of the memory in response to receiving the indication indicator of the particular data file; identifying the occurrence of the computing condition; and responsive to identifying the occurrence of the computing condition, marking one or more particular pages containing the particular data file as invalid for the computer-executable program. , receiving a request from a computer-executable program for a particular data file and, in response to receiving the request, telling the computer-executable program that the particular data file is invalid with respect to the computer-executable program A system is provided executable by a processor to provide a notification.
いくつかの実施形態では、動作が、コンピュータ実行可能プログラムから、コンピュータ実行可能プログラムに関連する追加のデータファイルの、追加のデータファイルがメモリの耐久性のある部分に記憶されるべきであるという、表示インジケータを受信することと、追加のデータファイルの表示インジケータを受信したことに応答して、メモリの耐久性のある部分の1つまたは複数の追加のページに追加のデータファイルを記憶することと、コンピューティング条件の発生を識別したことに応答して、コンピュータ実行可能プログラムについて有効として追加のデータファイルを含む1つまたは複数のページを維持することとをさらに含む。 In some embodiments, the operation is from the computer-executable program to the additional data file associated with the computer-executable program that the additional data file should be stored in the durable portion of memory. receiving the display indicator; and storing the additional data file in one or more additional pages of the durable portion of memory in response to receiving the display indicator of the additional data file. and maintaining one or more pages containing additional data files as valid for the computer-executable program in response to identifying occurrence of the computing condition.
いくつかの実施形態では、特定のデータファイルは、画像ファイル、ビデオファイル、またはオーディオファイルである。 In some embodiments, the particular data file is an image file, video file, or audio file.
いくつかの実施形態では、特定のデータファイルのストレージサイズは、しきい値サイズよりも大きい。 In some embodiments, the storage size of a particular data file is larger than the threshold size.
いくつかの実施形態では、コンピューティング条件の発生を識別することは、コンピュータ実行可能プログラムの非アクティブ状態を識別することと、応答して、コンピュータ実行可能プログラムについて無効として特定のデータファイルを含む1つまたは複数の特定のページをマークすることとを含む。 In some embodiments, identifying the occurrence of the computing condition includes identifying an inactive state of the computer-executable program and, in response, the computer-executable program including a particular data file as invalid. and marking one or more particular pages.
いくつかの実施形態では、動作は、コンピュータ実行可能プログラムの非アクティブ状態を識別したことに応答して、メモリの廃棄可能な部分を電力オフ状態にすることをさらに含む。 In some embodiments, the operations further include powering off the disposable portion of the memory in response to identifying an inactive state of the computer-executable program.
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。 The embodiments disclosed herein are examples only, and the scope of the present disclosure is not limited thereto. Particular embodiments may include all, some, or none of the components, elements, features, functions, acts, or steps of the embodiments disclosed herein . Embodiments in accordance with the present invention are disclosed in the accompanying claims directed, inter alia, to methods, storage media, systems and computer program products, wherein any feature recited in one claim category, e.g. , may also be claimed in another claim category, e.g., the system. Dependencies or references in the appended claims are chosen for formal reasons only. However, subject matter arising from intentional reference (especially multiple subordination) to a previous claim may also be claimed, so that any combination of the claim and its features is disclosed and defined by the appended claims. Claims may be made regardless of any dependencies selected in scope. Claimable subject matter includes not only combinations of the features recited in the appended claims, but also any other combination of the features recited in the claims, wherein each feature recited in a claim comprises: It may be combined with any other feature or combination of features in the claims. Moreover, any of the embodiments and features described or shown herein may appear in a separate claim and/or in conjunction with any embodiment or feature described or shown herein or in an appended claim. may be claimed in any combination with any of the features of the scope of
図1は、コンピューティングデバイスのメモリ管理のためのコンピューティングシステム100を示す。コンピューティングシステム100は、オペレーティングシステム(OS)コンピューティングモジュール102と、メモリモジュール(またはメモリ)104と、ページテーブルデータベース106と、(コンピュータ実行可能プログラムモジュール108、またはコンピュータ実行可能アプリケーションモジュールモジュール108と総称される)コンピュータ実行可能プログラムモジュール108a、108bとを含むことができる。OSコンピューティングモジュール102は、メモリマネージャコンピューティングモジュール110を含むことができる。メモリモジュール104は、廃棄可能な部分112と耐久性のある部分114とを含むことができる。
FIG. 1 shows a
いくつかの例では、廃棄可能な部分112と耐久性のある部分114とは、メモリ104の論理的分離であり、同じメモリ構造(たとえば、メモリバンク)内に位置する。いくつかの例では、廃棄可能な部分112と耐久性のある部分114とは、異なるメモリ構造(たとえば、メモリバンク)に物理的に分離される。
In some examples,
OSコンピューティングモジュール102は、メモリモジュール104を廃棄可能な部分112と耐久性のある部分114とに割り振ることができる。詳細には、OSコンピューティングモジュール102は、メモリモジュール104の廃棄可能な部分112によって記憶されたデータが一時的であり得るように、たとえば、そのような廃棄可能なデータが削除されるか、除去されるか、または場合によっては無効にされ得るように、廃棄可能な部分112を割り振ることができる。廃棄可能な部分112は、本明細書でさらに説明される、OSコンピューティングモジュール102および/またはメモリマネージャコンピューティングモジュール110によって再割り当てされるか、または再割り振りされ得る、データを記憶することができる1つまたは複数の(メモリ)ページ116を含むことができる。
OS computing module 102 may allocate memory module 104 into
同様に、OSコンピューティングモジュール102は、メモリモジュール104の耐久性のある部分114によって記憶されたデータが永続的であり得るように、たとえば、そのような耐久性のあるデータが維持され得るように、耐久性のある部分114を割り振ることができる。耐久性のある部分114は、本明細書でさらに説明される、OSコンピューティングモジュール102および/またはメモリマネージャコンピューティングモジュール110によって維持されるべきであるデータを記憶することができる1つまたは複数の(メモリ)ページ118を含むことができる。
Similarly, OS computing module 102 is configured so that data stored by durable portion 114 of memory module 104 can be persistent, e.g., such durable data can be maintained. , the durable portion 114 can be allocated. Durable portion 114 can store data to be maintained by OS computing module 102 and/or memory
いくつかの例では、OSコンピューティングモジュール102は、コンピューティングシステム100のブート時に、イベントに応答して、または要求に応答して、メモリモジュール104を廃棄可能な部分112と耐久性のある部分114とに割り振ることができる。
In some examples, the OS computing module 102 configures the memory module 104 into a
いくつかの例では、メモリモジュール104、および特に、メモリモジュール104のページは、廃棄可能な部分112(およびページ116)と耐久性のある部分114(およびページ118)とを定義するために、廃棄可能な(または耐久性のある)の追加の属性に関連し得る。たとえば、メモリモジュール104の属性は、読取りおよび書き換えなどの属性、ならびに、廃棄可能な属性(および/または耐久性のある属性)を含むことができる。 In some examples, memory modules 104, and in particular pages of memory modules 104, are discarded to define disposable portions 112 (and pages 116) and durable portions 114 (and pages 118). Possible (or durable) additional attributes may be associated. For example, attributes of memory module 104 may include attributes such as read and write, as well as disposable attributes (and/or durable attributes).
いくつかの例では、耐久性のある部分114は、廃棄可能な部分112のページ116についてのページテーブル106を含むことができる。
In some examples, durable portion 114 may include page table 106 for
いくつかの例では、コンピュータ実行可能プログラムモジュール108は、拡張現実コンピュータ実行可能プログラム、仮想現実(VR)コンピュータ実行可能プログラム、または複合現実コンピュータ実行可能プログラムであり得る。 In some examples, computer-executable program module 108 may be an augmented reality computer-executable program, a virtual reality (VR) computer-executable program, or a mixed reality computer-executable program.
いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aに関連するデータファイル122aの、データファイル122aがメモリ104の廃棄可能な部分112に記憶されるべきであることを指示する、表示インジケータ120aを受信することができる。たとえば、コンピュータ実行可能プログラムモジュール108aは、たとえば、コンピュータ実行可能プログラム108aに提供されたAPIを使用して、データファイル122aが廃棄可能な部分122に記憶されるべきであることを指示することができる。いくつかの例では、データファイル122aは、画像ファイル、ビデオファイル、またはオーディオファイルを含むことができる。いくつかの例では、データファイル122aのストレージサイズは、しきい値サイズよりも大きい。
In some implementations, the memory
いくつかの例では、メモリマネージャコンピューティングモジュール110は、(たとえば、1つの通信サイクル中に)コンピュータ実行可能プログラムモジュール108aから、実質的に同じ時間に、表示インジケータ120aとデータファイル122aとを受信することができる。いくつかの例では、データファイル122aは、表示インジケータ120aを含み、すなわち、データファイル122aは、属性(たとえば、表示インジケータ)でマークされ得る。
In some examples, memory
いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、データファイル122aの表示インジケータ120aを受信したことに応答して、メモリ104の廃棄可能な部分112のページ116にデータファイル122aを記憶する。いくつかの例では、データファイル122aは、メモリ104の廃棄可能な部分112の単一のページ116内に記憶される。いくつかの例では、データファイル122aは、メモリ104の廃棄可能な部分112の2つまたはそれ以上のページ116に記憶される。
In some implementations, memory
いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、コンピューティング条件130の発生を識別することができる。いくつかの例では、メモリマネージャコンピューティングモジュール110は、自動的に、または要求に応答して、コンピューティング条件130の指示を受信することができる。たとえば、コンピューティング条件130は、コンピューティングイベントの発生を指示する、そのようなコンピューティングイベントのメタデータとコンピューティングイベントの任意の関連のあるデータとを含む、データを含むことができる。たとえば、コンピューティング条件130の発生を識別することは、メモリマネージャコンピューティングモジュール110がコンピュータ実行可能プログラムモジュール108aの非アクティブ状態を識別する(またはコンピュータ実行可能プログラムモジュール108aの非アクティブ状態の指示を受信する)ことを含むことができる。詳細には、コンピュータ実行可能プログラムモジュール108aは、低電力アイドルモード、または非アクティブ状態に入ることができる。いくつかの場合には、コンピュータ実行可能プログラムモジュール108aは、コンピュータ実行可能プログラムモジュール108aがしきい値時間量(たとえば、5分)よりも大きい間、非アクティブであったとき、非アクティブ状態に入ることができる。そのために、コンピュータ実行可能プログラムモジュール108aが、メモリマネージャコンピューティングモジュール108aに、コンピューティング条件130のそのような通知を提供することができるか、またはコンピュータ実行可能プログラムモジュール108aを監視する別のコンピューティングモジュールが、メモリマネージャコンピューティングモジュール108aにコンピューティング条件130のそのような通知を提供することができる。
In some implementations, memory
たとえば、コンピューティング条件の発生を識別することは、メモリマネージャコンピューティングモジュール110がさらなるコンピュータ実行可能プログラムモジュールのアクティブ化を識別する(またはさらなるコンピュータ実行可能プログラムモジュールのアクティブ化の指示を受信する)ことを含むことができる。詳細には、コンピュータ実行可能プログラムモジュール108aは、さらなるコンピュータ実行可能プログラムモジュールと比較して、または新たに開始されたコンピュータ実行可能プログラムモジュールと比較して、より低いコンピューティング優先度を有することができる(さらなるコンピュータ実行可能プログラムモジュールは、コンピュータ実行可能プログラムモジュール108aと比較してより高い処理優先度を有する)。たとえば、さらなるコンピュータ実行可能プログラムモジュールは、フォアグラウンドで実行していること、たとえば、コンピューティングシステム100のディスプレイインターフェースのフォアグラウンドでグラフィカルユーザインターフェース(GUI)要素を提供していることがあり、コンピュータ実行可能プログラムモジュール108aは、バックグラウンドで実行していること、たとえば、コンピューティングシステム100のディスプレイインターフェースのバックグラウンドでGUI要素を提供していることがある。その結果、(フォアグラウンドで実行している)さらなるコンピュータ実行可能プログラムモジュールは、(バックグラウンドで実行している)コンピュータ実行可能プログラムモジュール108aと比較してより高い優先度を有することができる。コンピュータ実行可能プログラムモジュール108の状態を監視するコンピューティングモジュールは、メモリマネージャコンピューティングモジュール108aに、コンピューティング条件130のそのような通知を提供することができる。
For example, identifying the occurrence of a computing condition may include memory
いくつかの例では、メモリマネージャ110は、各コンピュータ実行可能プログラムモジュール108に関連する1つまたは複数のコンピューティングパラメータおよび/またはコンピュータ実行可能プログラムモジュール108のコンピューティング状態に基づいて、コンピュータ実行可能プログラムモジュール108の相対的優先度を決定することができる。メモリマネージャ110は、コンピューティングシステム100の状態に基づいて、たとえば、コンピュータ実行可能プログラムモジュール108のコンピューティングパラメータおよび/またはコンピューティング状態に鑑みて、コンピュータ実行可能プログラムモジュール108の相対的優先度を決定することができる。
In some examples,
いくつかの実装形態では、コンピューティング条件130の発生を識別したことに応答して、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含むページ116をマークすることができる。たとえば、メモリマネージャコンピューティングモジュール110は、メモリ104の廃棄可能な部分112が電力オフ状態にされるべきであるか、または本明細書でさらに説明される、異なるコンピュータ実行可能プログラムモジュールのデータファイルのために再割り振りされるべきであると決定することができる。
In some implementations, in response to identifying the occurrence of
いくつかの例では、コンピューティング条件130の発生がコンピュータ実行可能プログラムモジュール108aの非アクティブ状態を含むとき、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含むページ116のうちの1つまたは複数をマークすることができる。詳細には、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aの非アクティブ状態を識別したことに応答して、メモリ104の廃棄可能な部分112の電力状態を「オフ状態」、「電力オフ状態」、または「低電力状態」に変更することができる。メモリマネージャコンピューティングモジュール110は、データファイル122aがメモリ104の廃棄可能な部分112によって記憶されたとき、データファイル122aを無効にすることができる。いくつかの例では、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aによるアクションとは無関係に(コンピューティング条件130に応答して)データファイル122aがメモリ104の廃棄可能な部分112によって記憶されたとき、データファイル122aを無効にする。すなわち、いくつかの例では、コンピュータ実行可能プログラムモジュール108aは、データファイル122aがメモリ104の廃棄可能な部分112によって記憶されたときの、コンピューティング条件130および/またはコンピュータ実行可能プログラムモジュール108aについてのデータファイル122aの無効化に関して制御を有しない。
In some examples, when the occurrence of
いくつかの例では、コンピューティング条件130の発生が、さらなるコンピュータ実行可能プログラムのアクティブ化を識別することを含むとき、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含む1つまたは複数のページ116をマークすることができる。詳細には、メモリマネージャコンピューティングモジュール110は、さらなるコンピュータ実行可能プログラムモジュールのアクティブ化を識別したことに応答して、データファイル122aを含む1つまたは複数のページ116を、さらなるコンピュータ実行可能プログラムモジュールに関連する追加のデータファイルに再割り振りすることができる。すなわち、メモリマネージャコンピューティングモジュール110は、データファイル122aを無効にし、メモリ104の廃棄可能な部分112のページ116を、さらなるコンピュータ実行可能プログラムモジュールに再割り振りすることができる。いくつかの例では、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aによるアクションとは無関係に(コンピューティング条件130に応答して)データファイル122aがメモリ104の廃棄可能な部分112によって記憶されたとき、データファイル122aを無効にし、ページ116を、さらなるコンピュータ実行可能プログラムモジュールに再割り振りする。すなわち、いくつかの例では、コンピュータ実行可能プログラムモジュール108aは、データファイル122aがメモリ104の廃棄可能な部分112によって記憶されたときの、コンピューティング条件130および/またはコンピュータ実行可能プログラムモジュール108aについてのデータファイル122aの無効化、ならびに/あるいはさらなるコンピュータ実行可能プログラムモジュールへのページ116の再割振りに関して制御を有しない。
In some examples, when occurrence of
いくつかの例では、前述のように、データファイル122aは、メモリ104の廃棄可能な部分112の1つの特定のページ116に記憶され得る。そのために、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含む1つの特定のページ116をマークすることができる。すなわち、データファイル122aは、単一のページ116とページアライン(page align)され、メモリマネージャコンピューティングモジュール110は単一のページ116を無効にする。いくつかの場合には、1つの特定のページ116は、データファイル122aと、(コンピュータ実行可能プログラムモジュール108aまたは別のコンピュータ実行可能プログラムモジュールに関連する)追加のデータファイルまたは追加のデータファイルの一部分とを含むことができる。そのために、データファイルの両方(データファイル122aおよび追加のデータファイル)は、メモリマネージャコンピューティングモジュール110によって無効としてマークされる。
In some examples, data file 122a may be stored in one
いくつかの例では、前述のように、データファイル122aは、メモリ104の廃棄可能な部分112の2つの特定のページ116に記憶され得る。そのために、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含む2つの特定のページ116をマークすることができる。すなわち、データファイル122aは2つのページ116をまたぐことができ、メモリマネージャコンピューティングモジュール110はページ116の両方を無効にする。いくつかの場合には、2つのページ116の一方または両方は、データファイル122aと、(コンピュータ実行可能プログラムモジュール108aまたは別のコンピュータ実行可能プログラムモジュールに関連する)追加のデータファイルまたは追加のデータファイルの一部分とを含むことができる。そのために、データファイルの両方(データファイル122aおよび追加のデータファイル)は、メモリマネージャコンピューティングモジュール110によって無効としてマークされる。
In some examples, data file 122a may be stored in two
いくつかの例では、前述のように、メモリ104の耐久性のある部分114は、メモリ104の廃棄可能な部分112のページ116についてのページテーブル106を含むことができる。そのために、メモリマネージャコンピューティングモジュール110が、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含む特定のページ116をマークしたとき、メモリマネージャコンピューティングモジュール110は、特定のページ116についてのページテーブル106を修正することができる。たとえば、メモリマネージャコンピューティングモジュール110は、データファイル122aを含んだ(1つまたは複数の)特定のページ116に関連するエントリを除去するか、またはそのようなエントリを無効にするために、ページテーブル106を修正することができる。
In some examples, as described above, durable portion 114 of memory 104 may include page table 106 for
いくつかの実装形態では、後で、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aから、データファイル122aについての要求140aを受信することができる。要求140aに応答して、メモリマネージャコンピューティングモジュール110aは、コンピュータ実行可能プログラムモジュール108aに、データファイル122aがコンピュータ実行可能プログラムモジュール108aについて無効であることを指示する通知142aを提供することができる。すなわち、通知142aは、データファイル122aを含む(1つまたは複数の)ページ116が現在で無効あること、すなわちメモリ割振りがもはや有効でないことを指示する、コンピュータ実行可能プログラムモジュール108aに提供される信号であり得る。
In some implementations, memory
いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108bに関連するデータファイル122bの、データファイル122bがメモリ104の耐久性のある部分114に記憶されるべきであることを指示する、表示インジケータ120bを受信することができる。たとえば、コンピュータ実行可能プログラムモジュール108bは、たとえば、コンピュータ実行可能プログラム108bに提供されたAPIを使用して、データファイル122bがメモリ104の耐久性のある部分114に記憶されるべきであることを指示することができる。いくつかの例では、データファイル122bは、画像ファイル、ビデオファイル、またはオーディオファイルを含むことができる。いくつかの例では、メモリマネージャコンピューティングモジュール110は、(たとえば、1つの通信サイクル中に)コンピュータ実行可能プログラムモジュール108bから、実質的に同じ時間に、表示インジケータ120bとデータファイル122bとを受信することができる。いくつかの例では、データファイル122bは、表示インジケータ120bを含み、すなわち、データファイル122bは、属性(たとえば、表示インジケータ)でマークされ得る。
In some implementations, the memory
いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、データファイル122bの表示インジケータ120bを受信したことに応答して、メモリ104の耐久性のある部分114のページ118にデータファイル122bを記憶する。いくつかの例では、データファイル122bは、メモリ104の耐久性のある部分114の単一のページ118内に記憶される。いくつかの例では、データファイル122bは、メモリ104の耐久性のある部分114の2つまたはそれ以上のページ118に記憶される。上述のように、メモリマネージャコンピューティングモジュール110は、コンピューティング条件130の発生を識別することができる。たとえば、コンピューティング条件130の発生を識別することは、メモリマネージャコンピューティングモジュール110がコンピュータ実行可能プログラムモジュール108aの非アクティブ状態を識別する(またはコンピュータ実行可能プログラムモジュール108aの非アクティブ状態の指示を受信する)ことを含むことができる。たとえば、コンピューティング条件130の発生を識別することは、メモリマネージャ110がさらなるコンピュータ実行可能プログラムモジュールのアクティブ化を識別する(またはさらなるコンピュータ実行可能プログラムモジュールのアクティブ化の指示を受信する)ことを含むことができる。
In some implementations, memory
いくつかの実装形態では、コンピューティング条件130の発生を識別したことに応答して、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108bについて有効としてデータファイル122bを含むページ118を維持することができる。すなわち、データファイル122bがメモリ104の耐久性のある部分114中にあるページ118中で維持されるので、コンピューティング条件130の発生はデータファイル122b(たとえば、データファイル122bのストレージ)に影響を及ぼさない。
In some implementations, in response to identifying the occurrence of
図2は、コンピューティングデバイスのメモリ管理のための例示的な方法200を示す。方法は、ステップ210において開始し得、OSコンピューティングモジュール102が、メモリモジュール104を廃棄可能な部分112と耐久性のある部分114とに割り振ることができる。ステップ220において、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aに関連するデータファイル122aの表示インジケータ120aを受信することができる。ステップ230において、メモリマネージャコンピューティングモジュール110は、表示インジケータ120aが、メモリ104の廃棄可能な部分112にデータファイル122aを記憶することを指示すると決定する。ステップ240において、メモリマネージャコンピューティングモジュール110は、メモリ104の廃棄可能な部分112のページ116にデータファイル122aを記憶する。ステップ250において、メモリマネージャコンピューティングモジュール110は、コンピューティング条件130の発生を識別することができる。ステップ260において、コンピューティング条件130の発生を識別したことに応答して、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含むページ116をマークすることができる。ステップ270において、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aから、データファイル122aについての要求140aを受信することができる。ステップ280において、メモリマネージャコンピューティングモジュール110は、データファイル122aが無効としてマークされるページに記憶されると決定することができる。ステップ290において、メモリマネージャコンピューティングモジュール110aは、コンピュータ実行可能プログラムモジュール108aに、データファイル122aがコンピュータ実行可能プログラムモジュール108aについて無効であることを指示する通知142aを提供することができる。
FIG. 2 illustrates an
ステップ292において、メモリマネージャコンピューティングモジュール110は、表示インジケータ120bが、メモリ104の耐久性のある部分114にデータファイル122aを記憶することを指示すると決定する。ステップ294において、メモリマネージャコンピューティングモジュール110は、データファイル122bの表示インジケータ120bを受信したことに応答して、メモリ104の耐久性のある部分114のページ118にデータファイル122bを記憶する。
At
特定の実施形態は、適切な場合、図2の方法の1つまたは複数のステップを繰り返し得る。本開示は、図2の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図2の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図2の方法の特定のステップを含む、コンピューティングデバイスのメモリ管理のための例示的な方法を説明し、示すが、本開示は、適切な場合、図2の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、コンピューティングデバイスのメモリ管理のための任意の好適な方法を企図する。さらに、本開示は、図2の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図2の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。 Particular embodiments may repeat one or more steps of the method of FIG. 2 where appropriate. Although this disclosure describes and depicts certain steps of the method of FIG. 2 as being performed in a particular order, this disclosure does not imply that any suitable steps of the method of FIG. 2 may be performed in any suitable order. intended to be Moreover, although this disclosure describes and illustrates an exemplary method for memory management of a computing device, including certain steps of the method of FIG. Any suitable method for memory management of a computing device is contemplated, including any suitable steps, which may include all, some, or none of the steps of . Furthermore, although this disclosure describes and shows particular components, devices, or systems for performing particular steps of the method of FIG. Any suitable combination of suitable components, devices or systems is contemplated.
図3は、例示的なコンピュータシステム300を示す。特定の実施形態では、1つまたは複数のコンピュータシステム300は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム300は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム300上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム300の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
FIG. 3 shows an
本開示は、任意の好適な数のコンピュータシステム300を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム300を企図する。限定としてではなく例として、コンピュータシステム300は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム300は、1つまたは複数のコンピュータシステム300を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム300は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム300は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム300は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
This disclosure contemplates any suitable number of
特定の実施形態では、コンピュータシステム300は、プロセッサ302と、メモリ304と、ストレージ306と、入出力(I/O)インターフェース308と、通信インターフェース310と、バス312とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
In particular embodiments,
特定の実施形態では、プロセッサ302は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ302は、内部レジスタ、内部キャッシュ、メモリ304、またはストレージ306から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ304、またはストレージ306に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ302を企図する。限定としてではなく一例として、プロセッサ302は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ304またはストレージ306中の命令のコピーであり得、命令キャッシュは、プロセッサ302によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ302において実行する命令が動作する対象のメモリ304またはストレージ306中のデータのコピー、プロセッサ302において実行する後続の命令によるアクセスのための、またはメモリ304もしくはストレージ306に書き込むための、プロセッサ302において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ302による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ302のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ302は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ302を企図する。適切な場合、プロセッサ302は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ302を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
In particular embodiments,
特定の実施形態では、メモリ304は、プロセッサ302が実行するための命令、またはプロセッサ302が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム300は、ストレージ306または(たとえば、別のコンピュータシステム300などの)別のソースからメモリ304に命令をロードし得る。プロセッサ302は、次いで、メモリ304から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ302は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ302は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ302は、次いで、メモリ304にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ302は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ306または他の場所とは対照的な)メモリ304中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ306または他の場所とは対照的な)メモリ304中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ302をメモリ304に結合し得る。バス312は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ302とメモリ304との間に常駐し、プロセッサ302によって要求されるメモリ304へのアクセスを容易にする。特定の実施形態では、メモリ304は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ304は、適切な場合、1つまたは複数のメモリ304を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
In particular embodiments,
特定の実施形態では、ストレージ306は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ306は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ306は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ306は、適切な場合、コンピュータシステム300の内部または外部にあり得る。特定の実施形態では、ストレージ306は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ306は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ306を企図する。ストレージ306は、適切な場合、プロセッサ302とストレージ306との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ306は、1つまたは複数のストレージ306を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
In particular embodiments,
特定の実施形態では、I/Oインターフェース308は、コンピュータシステム300と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム300は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム300との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース308とを企図する。適切な場合、I/Oインターフェース308は、プロセッサ302がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース308は、適切な場合、1つまたは複数のI/Oインターフェース308を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
In particular embodiments, I/
特定の実施形態では、通信インターフェース310は、コンピュータシステム300と、1つまたは複数の他のコンピュータシステム300または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース310は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース310とを企図する。限定としてではなく一例として、コンピュータシステム300は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム300は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム300は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース310を含み得る。通信インターフェース310は、適切な場合、1つまたは複数の通信インターフェース310を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
In particular embodiments,
特定の実施形態では、バス312は、コンピュータシステム300の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス312は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス312は、適切な場合、1つまたは複数のバス312を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
In particular embodiments,
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。 As used herein, one or more computer-readable, non-transitory storage media refers to one or more semiconductor devices (eg, such as field programmable gate arrays (FPGAs) or application specific ICs (ASICs)), as appropriate. base or other integrated circuit (IC), hard disk drive (HDD), hybrid hard drive (HHD), optical disk, optical disk drive (ODD), magneto-optical disk, magneto-optical drive, floppy diskette, floppy disk drive (FDD), magnetic including tapes, solid state drives (SSDs), RAM drives, secure digital cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more thereof obtain. Computer-readable non-transitory storage media may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。 As used herein, "or" is inclusive and not exclusive, unless explicitly indicated otherwise or unless otherwise indicated by context. Thus, as used herein, "A or B" means "A, B, or both," unless expressly indicated otherwise or unless indicated otherwise by context. Moreover, “and” is both joint and separate unless clearly indicated otherwise or indicated otherwise by context. Thus, as used herein, "A and B" means "jointly or individually, A and B," unless expressly indicated otherwise or by context.
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。 The scope of the present disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or shown herein that a person skilled in the art would comprehend. The scope of this disclosure is not limited to the exemplary embodiments described or shown herein. Moreover, although this disclosure describes and presents each embodiment herein as including particular components, elements, features, functions, acts, or steps, any of these embodiments It may include any combination or permutation of any of the components, elements, features, functions, acts, or steps described or shown anywhere herein that a person skilled in the art would understand. In addition, the A reference in an appended claim to a device or system or component of a device or system operable to or operable to implement means that the device, system, or component is operable to To the extent that the device, system, component or particular function thereof is adapted, arranged, capable, configured, enabled, operable or operable , includes its devices, systems, components, whether activated, turned on, or unlocked. Further, although this disclosure describes or shows certain embodiments as providing certain advantages, certain embodiments may provide none, some, or all of these advantages. , or all.
Claims (15)
コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する特定のデータファイルの、前記特定のファイルが前記メモリの前記廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、
前記特定のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記廃棄可能な部分の1つまたは複数の特定のページに前記特定のデータファイルを記憶することと、
コンピューティング条件の発生を識別することと、
前記コンピューティング条件の前記発生を識別したことに応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることと、
前記コンピュータ実行可能プログラムから、前記特定のデータファイルについての要求を受信することと、
前記要求を受信したことに応答して、前記コンピュータ実行可能プログラムに、前記特定のデータファイルが前記コンピュータ実行可能プログラムについて無効であるという通知を提供することと
を含む、コンピュータ実装方法。 allocating computer-implemented memory into disposable and durable portions by an operating system of a computing device;
receiving from a computer-executable program a display indicator of a particular data file associated with said computer-executable program indicating that said particular file should be stored in said disposable portion of said memory; and
Storing the particular data file in one or more particular pages of the disposable portion of the memory in response to receiving the indication indicator of the particular data file;
identifying occurrences of computing conditions;
marking the one or more specific pages containing the specific data file as invalid for the computer-executable program in response to identifying the occurrence of the computing condition;
receiving a request for the particular data file from the computer-executable program;
and responsive to receiving the request, providing a notification to the computer-executable program that the particular data file is invalid for the computer-executable program.
前記追加のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記耐久性のある部分の1つまたは複数の追加のページに前記追加のデータファイルを記憶することと、
前記コンピューティング条件の前記発生を識別したことに応答して、前記コンピュータ実行可能プログラムについて有効として前記追加のデータファイルを含む前記1つまたは複数のページを維持することと
をさらに含む、請求項1に記載のコンピュータ実装方法。 receiving from the computer-executable program an indication indicator of an additional data file associated with the computer-executable program that the additional data file should be stored in the durable portion of the memory and
Storing the additional data file in one or more additional pages of the durable portion of the memory in response to receiving the indication indicator of the additional data file;
maintaining said one or more pages containing said additional data files as valid for said computer-executable program in response to identifying said occurrence of said computing condition. A computer-implemented method as described in .
コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、
コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する特定のデータファイルの、前記特定のファイルが前記メモリの前記廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、
前記特定のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記廃棄可能な部分の1つまたは複数の特定のページに前記特定のデータファイルを記憶することと、
コンピューティング条件の発生を識別することと、
前記コンピューティング条件の前記発生を識別したことに応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることと、
前記コンピュータ実行可能プログラムから、前記特定のデータファイルについての要求を受信することと、
前記要求を受信したことに応答して、前記コンピュータ実行可能プログラムに、前記特定のデータファイルが前記コンピュータ実行可能プログラムについて無効であるという通知を提供することと
を行うように前記プロセッサによって実行可能である、システム。 A system comprising a processor having access to a memory medium storing instructions, the instructions comprising:
allocating computer-implemented memory into disposable and durable portions by an operating system of a computing device;
receiving from a computer-executable program a display indicator of a particular data file associated with said computer-executable program indicating that said particular file should be stored in said disposable portion of said memory; and
Storing the particular data file in one or more particular pages of the disposable portion of the memory in response to receiving the indication indicator of the particular data file;
identifying occurrences of computing conditions;
marking the one or more specific pages containing the specific data file as invalid for the computer-executable program in response to identifying the occurrence of the computing condition;
receiving a request for the particular data file from the computer-executable program;
and responsive to receiving the request, providing a notification to the computer-executable program that the particular data file is invalid for the computer-executable program. there is a system.
前記コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する追加のデータファイルの、前記追加のデータファイルが前記メモリの前記耐久性のある部分に記憶されるべきであるという、表示インジケータを受信することと、
前記追加のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記耐久性のある部分の1つまたは複数の追加のページに前記追加のデータファイルを記憶することと、
前記コンピューティング条件の前記発生を識別したことに応答して、前記コンピュータ実行可能プログラムについて有効として前記追加のデータファイルを含む前記1つまたは複数のページを維持することと
をさらに含む、請求項11に記載のシステム。 the behavior is
receiving from the computer-executable program an indication indicator of an additional data file associated with the computer-executable program that the additional data file should be stored in the durable portion of the memory and
Storing the additional data file in one or more additional pages of the durable portion of the memory in response to receiving the indication indicator of the additional data file;
and maintaining the one or more pages containing the additional data files as valid for the computer-executable program in response to identifying the occurrence of the computing condition. The system described in .
コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、
コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する特定のデータファイルの、前記特定のファイルが前記メモリの前記廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、
前記特定のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記廃棄可能な部分の1つまたは複数の特定のページに前記特定のデータファイルを記憶することと、
コンピューティング条件の発生を識別することと、
前記コンピューティング条件の前記発生を識別したことに応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることと、
前記コンピュータ実行可能プログラムから、前記特定のデータファイルについての要求を受信することと、
前記要求を受信したことに応答して、前記コンピュータ実行可能プログラムに、前記特定のデータファイルが前記コンピュータ実行可能プログラムについて無効であるという通知を提供することと
を含む動作を実施させる、非一時的コンピュータ可読媒体。 1. A non-transitory computer-readable medium storing software containing instructions executable by one or more computers, said instructions, upon such execution, causing said one or more computers to:
allocating computer-implemented memory into disposable and durable portions by an operating system of a computing device;
receiving from a computer-executable program a display indicator of a particular data file associated with said computer-executable program indicating that said particular file should be stored in said disposable portion of said memory; and
Storing the particular data file in one or more particular pages of the disposable portion of the memory in response to receiving the indication indicator of the particular data file;
identifying occurrences of computing conditions;
marking the one or more specific pages containing the specific data file as invalid for the computer-executable program in response to identifying the occurrence of the computing condition;
receiving a request for the particular data file from the computer-executable program;
responsive to receiving the request, causing the computer-executable program to perform an action including providing notification that the particular data file is invalid for the computer-executable program. computer readable medium.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/513,134 | 2019-07-16 | ||
US16/513,134 US11099758B2 (en) | 2019-07-16 | 2019-07-16 | Memory management of computing devices |
PCT/US2020/041513 WO2021011337A1 (en) | 2019-07-16 | 2020-07-10 | Memory management of computing devices |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022540750A true JP2022540750A (en) | 2022-09-20 |
Family
ID=71895230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021570857A Pending JP2022540750A (en) | 2019-07-16 | 2020-07-10 | Memory management for computing devices |
Country Status (6)
Country | Link |
---|---|
US (1) | US11099758B2 (en) |
EP (1) | EP3999971A1 (en) |
JP (1) | JP2022540750A (en) |
KR (1) | KR20220031934A (en) |
CN (1) | CN114127663A (en) |
WO (1) | WO2021011337A1 (en) |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5928365A (en) | 1995-11-30 | 1999-07-27 | Kabushiki Kaisha Toshiba | Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states |
US6298422B1 (en) * | 1996-06-17 | 2001-10-02 | Network Associates, Inc. | Method for reducing the memory requirements for an application program executing in a multi-tasking environment |
US6895486B2 (en) * | 2002-08-29 | 2005-05-17 | Micron Technology, Inc. | Linear object management for a range of flash memory |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US20060236026A1 (en) * | 2005-04-15 | 2006-10-19 | Jens Hempel | Method and system for allocating, accessing and de-allocating storage space of a memory card |
US9015209B2 (en) | 2008-12-16 | 2015-04-21 | Sandisk Il Ltd. | Download management of discardable files |
US8589650B2 (en) * | 2010-05-17 | 2013-11-19 | Texas Instruments Incorporated | Dynamically configurable memory system |
US8463802B2 (en) * | 2010-08-19 | 2013-06-11 | Sandisk Il Ltd. | Card-based management of discardable files |
KR101774496B1 (en) * | 2010-12-08 | 2017-09-05 | 삼성전자주식회사 | Non-volatile memory device, devices having the same, method of operating the same |
US9047090B2 (en) * | 2012-08-07 | 2015-06-02 | Qualcomm Incorporated | Methods, systems and devices for hybrid memory management |
CN105278876B (en) * | 2015-09-23 | 2018-12-14 | 华为技术有限公司 | A kind of the data method for deleting and device of solid state hard disk |
US10539997B2 (en) * | 2016-09-02 | 2020-01-21 | Qualcomm Incorporated | Ultra-low-power design memory power reduction scheme |
US10599353B2 (en) * | 2017-05-16 | 2020-03-24 | Apple Inc. | Techniques for managing storage space allocation within a storage device |
US10877882B1 (en) * | 2019-06-19 | 2020-12-29 | Micron Technology, Inc. | Garbage collection adapted to user device access |
-
2019
- 2019-07-16 US US16/513,134 patent/US11099758B2/en active Active
-
2020
- 2020-07-10 JP JP2021570857A patent/JP2022540750A/en active Pending
- 2020-07-10 KR KR1020227004996A patent/KR20220031934A/en unknown
- 2020-07-10 EP EP20750059.6A patent/EP3999971A1/en active Pending
- 2020-07-10 WO PCT/US2020/041513 patent/WO2021011337A1/en unknown
- 2020-07-10 CN CN202080046650.3A patent/CN114127663A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3999971A1 (en) | 2022-05-25 |
CN114127663A (en) | 2022-03-01 |
WO2021011337A1 (en) | 2021-01-21 |
US20210019068A1 (en) | 2021-01-21 |
KR20220031934A (en) | 2022-03-14 |
US11099758B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8782323B2 (en) | Data storage management using a distributed cache scheme | |
US9747122B2 (en) | Virtual machine systems | |
US9639395B2 (en) | Byte application migration | |
US11620233B1 (en) | Memory data migration hardware | |
JP6273034B2 (en) | Virtualization computing apparatus and method | |
US20100332693A1 (en) | Direct memory access in a computing environment | |
US11748180B2 (en) | Seamless access to a common physical disk in an AMP system without an external hypervisor | |
TW201447584A (en) | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) | |
JP2022540750A (en) | Memory management for computing devices | |
US20190238656A1 (en) | Consolidated cloud system for virtual machine | |
US20170257442A1 (en) | Federated Application Services | |
US10467145B2 (en) | Management of caching operations in a unified cache | |
US10698716B2 (en) | Virtual machine state recorder | |
US11366720B2 (en) | Building a resilient operating system based on durable services with kernel support | |
US10572365B2 (en) | Verification for device management | |
US20230333769A1 (en) | Shared memory protection method for securing mmio commands | |
US11119931B1 (en) | Data pipeline for microkernel operating system | |
US11182103B1 (en) | Dedicated communications cache | |
US10613890B2 (en) | Efficient I/O request handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230418 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240329 |