JP2022540750A - Memory management for computing devices - Google Patents

Memory management for computing devices Download PDF

Info

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
Application number
JP2021570857A
Other languages
Japanese (ja)
Inventor
ベルンハルト ポース,
バディム ビクター スピヴァク,
クリストフ クレー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2022540750A publication Critical patent/JP2022540750A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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 illustrates an example computing environment for memory management of a computing device; FIG. コンピューティングデバイスのメモリ管理のための例示的なフローチャートである。4 is an exemplary flow chart for memory management of a computing device; 例示的なコンピュータシステムを示す図である。1 illustrates an exemplary computer system; FIG.

図1は、コンピューティングデバイスのメモリ管理のためのコンピューティングシステム100を示す。コンピューティングシステム100は、オペレーティングシステム(OS)コンピューティングモジュール102と、メモリモジュール(またはメモリ)104と、ページテーブルデータベース106と、(コンピュータ実行可能プログラムモジュール108、またはコンピュータ実行可能アプリケーションモジュールモジュール108と総称される)コンピュータ実行可能プログラムモジュール108a、108bとを含むことができる。OSコンピューティングモジュール102は、メモリマネージャコンピューティングモジュール110を含むことができる。メモリモジュール104は、廃棄可能な部分112と耐久性のある部分114とを含むことができる。 FIG. 1 shows a computing system 100 for memory management of computing devices. The computing system 100 includes an operating system (OS) computing module 102, a memory module (or memory) 104, a page table database 106 (collectively referred to as computer executable program modules 108 or computer executable application modules 108). computer-executable program modules 108a, 108b). OS computing module 102 may include memory manager computing module 110 . Memory module 104 can include a disposable portion 112 and a durable portion 114 .

いくつかの例では、廃棄可能な部分112と耐久性のある部分114とは、メモリ104の論理的分離であり、同じメモリ構造(たとえば、メモリバンク)内に位置する。いくつかの例では、廃棄可能な部分112と耐久性のある部分114とは、異なるメモリ構造(たとえば、メモリバンク)に物理的に分離される。 In some examples, disposable portion 112 and durable portion 114 are logical separations of memory 104 and are located within the same memory structure (eg, memory bank). In some examples, disposable portion 112 and durable portion 114 are physically separated into different memory structures (eg, memory banks).

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 disposable portion 112 and durable portion 114 . In particular, OS computing module 102 ensures that data stored by disposable portion 112 of memory module 104 may be temporary, such as by deleting or removing such disposable data. Disposable portion 112 can be allocated so that it can be used or, in some cases, overridden. Disposable portion 112 can store data that is or can be reallocated by OS computing module 102 and/or memory manager computing module 110, further described herein. It may contain one or more (memory) pages 116 .

同様に、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 manager computing module 110, described further herein. (Memory) pages 118 may be included.

いくつかの例では、OSコンピューティングモジュール102は、コンピューティングシステム100のブート時に、イベントに応答して、または要求に応答して、メモリモジュール104を廃棄可能な部分112と耐久性のある部分114とに割り振ることができる。 In some examples, the OS computing module 102 configures the memory module 104 into a disposable portion 112 and a durable portion 114 in response to an event or request when the computing system 100 boots. can be assigned to

いくつかの例では、メモリモジュール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 pages 116 of disposable portion 112 .

いくつかの例では、コンピュータ実行可能プログラムモジュール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 manager computing module 110 determines that the data file 122a associated with the computer-executable program module 108a should be stored in the disposable portion 112 of the memory 104. An indicating indicator 120a can be received. For example, computer-executable program module 108a can indicate that data file 122a should be stored in disposable portion 122, eg, using an API provided to computer-executable program 108a. . In some examples, data files 122a may include image files, video files, or audio files. In some examples, the storage size of data file 122a is greater than the threshold size.

いくつかの例では、メモリマネージャコンピューティングモジュール110は、(たとえば、1つの通信サイクル中に)コンピュータ実行可能プログラムモジュール108aから、実質的に同じ時間に、表示インジケータ120aとデータファイル122aとを受信することができる。いくつかの例では、データファイル122aは、表示インジケータ120aを含み、すなわち、データファイル122aは、属性(たとえば、表示インジケータ)でマークされ得る。 In some examples, memory manager computing module 110 receives display indicator 120a and data file 122a at substantially the same time from computer executable program module 108a (eg, during one communication cycle). be able to. In some examples, data file 122a includes display indicator 120a, ie, data file 122a may be marked with an attribute (eg, display indicator).

いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、データファイル122aの表示インジケータ120aを受信したことに応答して、メモリ104の廃棄可能な部分112のページ116にデータファイル122aを記憶する。いくつかの例では、データファイル122aは、メモリ104の廃棄可能な部分112の単一のページ116内に記憶される。いくつかの例では、データファイル122aは、メモリ104の廃棄可能な部分112の2つまたはそれ以上のページ116に記憶される。 In some implementations, memory manager computing module 110 stores data file 122a in page 116 of disposable portion 112 of memory 104 in response to receiving display indicator 120a for data file 122a. In some examples, data file 122 a is stored within a single page 116 of disposable portion 112 of memory 104 . In some examples, data file 122 a is stored in two or more pages 116 of disposable portion 112 of memory 104 .

いくつかの実装形態では、メモリマネージャコンピューティングモジュール110は、コンピューティング条件130の発生を識別することができる。いくつかの例では、メモリマネージャコンピューティングモジュール110は、自動的に、または要求に応答して、コンピューティング条件130の指示を受信することができる。たとえば、コンピューティング条件130は、コンピューティングイベントの発生を指示する、そのようなコンピューティングイベントのメタデータとコンピューティングイベントの任意の関連のあるデータとを含む、データを含むことができる。たとえば、コンピューティング条件130の発生を識別することは、メモリマネージャコンピューティングモジュール110がコンピュータ実行可能プログラムモジュール108aの非アクティブ状態を識別する(またはコンピュータ実行可能プログラムモジュール108aの非アクティブ状態の指示を受信する)ことを含むことができる。詳細には、コンピュータ実行可能プログラムモジュール108aは、低電力アイドルモード、または非アクティブ状態に入ることができる。いくつかの場合には、コンピュータ実行可能プログラムモジュール108aは、コンピュータ実行可能プログラムモジュール108aがしきい値時間量(たとえば、5分)よりも大きい間、非アクティブであったとき、非アクティブ状態に入ることができる。そのために、コンピュータ実行可能プログラムモジュール108aが、メモリマネージャコンピューティングモジュール108aに、コンピューティング条件130のそのような通知を提供することができるか、またはコンピュータ実行可能プログラムモジュール108aを監視する別のコンピューティングモジュールが、メモリマネージャコンピューティングモジュール108aにコンピューティング条件130のそのような通知を提供することができる。 In some implementations, memory manager computing module 110 can identify the occurrence of computing condition 130 . In some examples, memory manager computing module 110 may receive an indication of computing conditions 130 automatically or in response to a request. For example, computing conditions 130 may include data that directs the occurrence of computing events, including metadata for such computing events and any associated data for such computing events. For example, identifying the occurrence of computing condition 130 may cause memory manager computing module 110 to identify an inactive state of computer-executable program module 108a (or receive an indication of an inactive state of computer-executable program module 108a). do). In particular, computer-executable program module 108a may enter a low-power idle mode, or inactive state. In some cases, the computer-executable program module 108a enters the inactive state when the computer-executable program module 108a has been inactive for greater than a threshold amount of time (eg, 5 minutes). be able to. To that end, the computer-executable program module 108a can provide such notification of the computing conditions 130 to the memory manager computing module 108a or another computing module monitoring the computer-executable program module 108a. A module may provide such notification of computing conditions 130 to memory manager computing module 108a.

たとえば、コンピューティング条件の発生を識別することは、メモリマネージャコンピューティングモジュール110がさらなるコンピュータ実行可能プログラムモジュールのアクティブ化を識別する(またはさらなるコンピュータ実行可能プログラムモジュールのアクティブ化の指示を受信する)ことを含むことができる。詳細には、コンピュータ実行可能プログラムモジュール108aは、さらなるコンピュータ実行可能プログラムモジュールと比較して、または新たに開始されたコンピュータ実行可能プログラムモジュールと比較して、より低いコンピューティング優先度を有することができる(さらなるコンピュータ実行可能プログラムモジュールは、コンピュータ実行可能プログラムモジュール108aと比較してより高い処理優先度を有する)。たとえば、さらなるコンピュータ実行可能プログラムモジュールは、フォアグラウンドで実行していること、たとえば、コンピューティングシステム100のディスプレイインターフェースのフォアグラウンドでグラフィカルユーザインターフェース(GUI)要素を提供していることがあり、コンピュータ実行可能プログラムモジュール108aは、バックグラウンドで実行していること、たとえば、コンピューティングシステム100のディスプレイインターフェースのバックグラウンドでGUI要素を提供していることがある。その結果、(フォアグラウンドで実行している)さらなるコンピュータ実行可能プログラムモジュールは、(バックグラウンドで実行している)コンピュータ実行可能プログラムモジュール108aと比較してより高い優先度を有することができる。コンピュータ実行可能プログラムモジュール108の状態を監視するコンピューティングモジュールは、メモリマネージャコンピューティングモジュール108aに、コンピューティング条件130のそのような通知を提供することができる。 For example, identifying the occurrence of a computing condition may include memory manager computing module 110 identifying activation of additional computer-executable program modules (or receiving an indication of activation of additional computer-executable program modules). can include In particular, computer-executable program module 108a may have a lower computing priority compared to further computer-executable program modules or compared to newly started computer-executable program modules. (Additional computer-executable program modules have a higher processing priority compared to computer-executable program module 108a). For example, additional computer-executable program modules may be running in the foreground, e.g., providing graphical user interface (GUI) elements in the foreground of the display interface of computing system 100, and the computer-executable program modules Module 108 a may be running in the background, eg, providing GUI elements in the background of the display interface of computing system 100 . As a result, the further computer-executable program module (running in the foreground) can have a higher priority compared to computer-executable program module 108a (running in the background). Computing modules that monitor the state of computer-executable program modules 108 can provide such notification of computing conditions 130 to memory manager computing module 108a.

いくつかの例では、メモリマネージャ110は、各コンピュータ実行可能プログラムモジュール108に関連する1つまたは複数のコンピューティングパラメータおよび/またはコンピュータ実行可能プログラムモジュール108のコンピューティング状態に基づいて、コンピュータ実行可能プログラムモジュール108の相対的優先度を決定することができる。メモリマネージャ110は、コンピューティングシステム100の状態に基づいて、たとえば、コンピュータ実行可能プログラムモジュール108のコンピューティングパラメータおよび/またはコンピューティング状態に鑑みて、コンピュータ実行可能プログラムモジュール108の相対的優先度を決定することができる。 In some examples, memory manager 110 executes computer-executable programs based on one or more computing parameters associated with each computer-executable program module 108 and/or the computing state of computer-executable program module 108 . The relative priority of modules 108 can be determined. Memory manager 110 determines the relative priority of computer-executable program modules 108 based on the state of computing system 100, for example, in light of computing parameters and/or computing states of computer-executable program modules 108. can do.

いくつかの実装形態では、コンピューティング条件130の発生を識別したことに応答して、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aについて無効としてデータファイル122aを含むページ116をマークすることができる。たとえば、メモリマネージャコンピューティングモジュール110は、メモリ104の廃棄可能な部分112が電力オフ状態にされるべきであるか、または本明細書でさらに説明される、異なるコンピュータ実行可能プログラムモジュールのデータファイルのために再割り振りされるべきであると決定することができる。 In some implementations, in response to identifying the occurrence of computing condition 130, memory manager computing module 110 marks page 116 containing data file 122a as invalid for computer-executable program module 108a. can be done. For example, the memory manager computing module 110 determines whether the disposable portion 112 of the memory 104 should be powered off, or the data files of the different computer-executable program modules described further herein. can be determined that it should be reallocated for

いくつかの例では、コンピューティング条件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 computing condition 130 includes an inactive state of computer-executable program module 108a, memory manager computing module 110 renders the page containing data file 122a invalid for computer-executable program module 108a. 116 can be marked. Specifically, the memory manager computing module 110 changes the power state of the disposable portion 112 of the memory 104 to an "off state," a "power "off state" or "low power state". Memory manager computing module 110 can invalidate data file 122 a when data file 122 a is stored by disposable portion 112 of memory 104 . In some examples, memory manager computing module 110 causes data files 122a to be stored by disposable portion 112 of memory 104 independently of action by computer-executable program module 108a (in response to computing condition 130). invalidates the data file 122a. That is, in some examples, computer-executable program module 108a may be used to describe computing conditions 130 and/or computer-executable program module 108a when data file 122a is stored by disposable portion 112 of memory 104. It has no control over invalidation of data file 122a.

いくつかの例では、コンピューティング条件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 computing condition 130 includes identifying activation of a further computer-executable program, memory manager computing module 110 registers data file 122a as invalid for computer-executable program module 108a. One or more pages 116 can be marked that contain a . Specifically, in response to identifying activation of the additional computer-executable program module, memory manager computing module 110 copies one or more pages 116 containing data file 122a to the additional computer-executable program module. can be reallocated to additional data files associated with That is, memory manager computing module 110 can invalidate data file 122a and reallocate pages 116 of disposable portion 112 of memory 104 to additional computer-executable program modules. In some examples, memory manager computing module 110 causes data files 122a to be stored by disposable portion 112 of memory 104 independently of action by computer-executable program module 108a (in response to computing condition 130). When done, it invalidates data file 122a and reallocates page 116 to additional computer-executable program modules. That is, in some examples, computer-executable program module 108a may be used to describe computing conditions 130 and/or computer-executable program module 108a when data file 122a is stored by disposable portion 112 of memory 104. It has no control over invalidating data file 122a and/or reallocating pages 116 to further computer-executable program modules.

いくつかの例では、前述のように、データファイル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 particular page 116 of disposable portion 112 of memory 104, as described above. To that end, memory manager computing module 110 may mark one particular page 116 containing data file 122a as invalid for computer-executable program module 108a. That is, the data file 122a is page aligned with the single page 116 and the memory manager computing module 110 invalidates the single page 116. FIG. In some cases, one particular page 116 includes data file 122a and additional data files or portions of additional data files (associated with computer-executable program module 108a or another computer-executable program module). and As such, both of the data files (data file 122a and the additional data file) are marked as invalid by memory manager computing module 110 .

いくつかの例では、前述のように、データファイル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 particular pages 116 of disposable portion 112 of memory 104, as described above. To that end, memory manager computing module 110 may mark two particular pages 116 containing data file 122a as invalid for computer-executable program module 108a. That is, data file 122 a can span two pages 116 and memory manager computing module 110 invalidates both pages 116 . In some cases, one or both of the two pages 116 may include data file 122a and additional data files (associated with computer-executable program module 108a or another computer-executable program module) or additional data files. and a portion of As such, both of the data files (data file 122a and the additional data file) are marked as invalid by memory manager computing module 110 .

いくつかの例では、前述のように、メモリ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 pages 116 of disposable portion 112 of memory 104 . To that end, when the memory manager computing module 110 marks a particular page 116 containing the data file 122a as invalid for the computer-executable program module 108a, the memory manager computing module 110 writes the page table for the particular page 116. 106 can be modified. For example, the memory manager computing module 110 removes entries associated with a particular page(s) 116 containing data file 122a, or deletes entries in the page table to invalidate such entries. 106 can be modified.

いくつかの実装形態では、後で、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108aから、データファイル122aについての要求140aを受信することができる。要求140aに応答して、メモリマネージャコンピューティングモジュール110aは、コンピュータ実行可能プログラムモジュール108aに、データファイル122aがコンピュータ実行可能プログラムモジュール108aについて無効であることを指示する通知142aを提供することができる。すなわち、通知142aは、データファイル122aを含む(1つまたは複数の)ページ116が現在で無効あること、すなわちメモリ割振りがもはや有効でないことを指示する、コンピュータ実行可能プログラムモジュール108aに提供される信号であり得る。 In some implementations, memory manager computing module 110 may later receive request 140a for data file 122a from computer-executable program module 108a. In response to request 140a, memory manager computing module 110a may provide computer-executable program module 108a with notification 142a indicating that data file 122a is invalid for computer-executable program module 108a. That is, notification 142a is a signal provided to computer-executable program module 108a indicating that page(s) 116 containing data file 122a is now invalid, i.e., memory allocation is no longer valid. can be

いくつかの実装形態では、メモリマネージャコンピューティングモジュール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 manager computing module 110 controls the data file 122b associated with the computer-executable program module 108b that the data file 122b should be stored in the durable portion 114 of the memory 104. A display indicator 120b may be received that indicates the. For example, computer-executable program module 108b indicates that data file 122b should be stored in durable portion 114 of memory 104, eg, using an API provided to computer-executable program 108b. can do. In some examples, data files 122b may include image files, video files, or audio files. In some examples, memory manager computing module 110 receives display indicator 120b and data file 122b at substantially the same time from computer executable program module 108b (eg, during one communication cycle). be able to. In some examples, data file 122b includes display indicator 120b, ie, data file 122b may be marked with an attribute (eg, display indicator).

いくつかの実装形態では、メモリマネージャコンピューティングモジュール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 manager computing module 110 stores data file 122b in page 118 of durable portion 114 of memory 104 in response to receiving display indicator 120b for data file 122b. . In some examples, data file 122b is stored within a single page 118 of durable portion 114 of memory 104 . In some examples, data file 122 b is stored in two or more pages 118 of durable portion 114 of memory 104 . As described above, memory manager computing module 110 can identify the occurrence of computing condition 130 . For example, identifying the occurrence of computing condition 130 may cause memory manager computing module 110 to identify an inactive state of computer-executable program module 108a (or receive an indication of an inactive state of computer-executable program module 108a). do). For example, identifying occurrence of computing condition 130 includes memory manager 110 identifying activation of additional computer-executable program modules (or receiving an indication of activation of additional computer-executable program modules). be able to.

いくつかの実装形態では、コンピューティング条件130の発生を識別したことに応答して、メモリマネージャコンピューティングモジュール110は、コンピュータ実行可能プログラムモジュール108bについて有効としてデータファイル122bを含むページ118を維持することができる。すなわち、データファイル122bがメモリ104の耐久性のある部分114中にあるページ118中で維持されるので、コンピューティング条件130の発生はデータファイル122b(たとえば、データファイル122bのストレージ)に影響を及ぼさない。 In some implementations, in response to identifying the occurrence of computing condition 130, memory manager computing module 110 maintains page 118 containing data file 122b as valid for computer-executable program module 108b. can be done. That is, because data file 122b is maintained in pages 118 in durable portion 114 of memory 104, occurrence of computing condition 130 does not affect data file 122b (eg, storage of data file 122b). do not have.

図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 exemplary method 200 for memory management of a computing device. The method may begin at step 210 where the OS computing module 102 may allocate memory modules 104 into disposable portion 112 and durable portion 114 . At step 220, memory manager computing module 110 may receive display indicator 120a of data file 122a associated with computer-executable program module 108a. At step 230 , memory manager computing module 110 determines that display indicator 120 a indicates storage of data file 122 a in disposable portion 112 of memory 104 . At step 240 , memory manager computing module 110 stores data file 122 a in page 116 of disposable portion 112 of memory 104 . At step 250 , memory manager computing module 110 may identify the occurrence of computing condition 130 . At step 260, in response to identifying the occurrence of computing condition 130, memory manager computing module 110 may mark page 116 containing data file 122a as invalid for computer-executable program module 108a. At step 270, memory manager computing module 110 may receive request 140a for data file 122a from computer-executable program module 108a. At step 280, memory manager computing module 110 may determine that data file 122a is stored in a page marked as invalid. At step 290, memory manager computing module 110a may provide computer-executable program module 108a with notification 142a indicating that data file 122a is invalid for computer-executable program module 108a.

ステップ292において、メモリマネージャコンピューティングモジュール110は、表示インジケータ120bが、メモリ104の耐久性のある部分114にデータファイル122aを記憶することを指示すると決定する。ステップ294において、メモリマネージャコンピューティングモジュール110は、データファイル122bの表示インジケータ120bを受信したことに応答して、メモリ104の耐久性のある部分114のページ118にデータファイル122bを記憶する。 At step 292 , memory manager computing module 110 determines that display indicator 120 b indicates storage of data file 122 a in durable portion 114 of memory 104 . At step 294, memory manager computing module 110 stores data file 122b in page 118 of durable portion 114 of memory 104 in response to receiving display indicator 120b of data file 122b.

特定の実施形態は、適切な場合、図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 exemplary computer system 300. As shown in FIG. In particular embodiments, one or more computer systems 300 implement one or more steps of one or more methods described or illustrated herein. In particular embodiments, one or more computer systems 300 provide the functionality described or illustrated herein. In particular embodiments, software running on one or more computer systems 300 performs one or more steps of one or more methods described or illustrated herein, or It provides the functionality described or illustrated herein. Particular embodiments include one or more portions of one or more computer systems 300 . References herein to computer systems may encompass computing devices, and vice versa, where appropriate. Moreover, references to a computer system may encompass one or more computer systems, where appropriate.

本開示は、任意の好適な数のコンピュータシステム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 computer systems 300 . This disclosure contemplates computer system 300 taking any suitable physical form. By way of example and not limitation, computer system 300 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (eg, computer-on-module (COM) or system-on-module (SOM)). , desktop computer systems, laptop or notebook computer systems, interactive kiosks, mainframes, mesh computer systems, mobile phones, personal digital assistants (PDAs), servers, tablet computer systems, augmented/virtual reality devices, or any of these can be a combination of two or more of Where appropriate, computer system 300 may include one or more computer systems 300, be single or distributed, span multiple locations, span multiple machines, span multiple data centers, or It may reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 300 perform one or more steps of one or more methods described or illustrated herein without substantial spatial or temporal limitations. obtain. By way of example and not limitation, one or more computer systems 300 may perform, in real time or in batch mode, one or more steps of one or more methods described or illustrated herein. One or more computer systems 300 may perform one or more steps of one or more methods described or illustrated herein at different times or at different locations, where appropriate.

特定の実施形態では、コンピュータシステム300は、プロセッサ302と、メモリ304と、ストレージ306と、入出力(I/O)インターフェース308と、通信インターフェース310と、バス312とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。 In particular embodiments, computer system 300 includes processor 302 , memory 304 , storage 306 , input/output (I/O) interface 308 , communication interface 310 and bus 312 . Although this disclosure describes and illustrates a particular computer system with a particular number of particular components in a particular arrangement, this disclosure may be applied to any suitable number of any suitable configuration in any suitable arrangement. Any suitable computer system having the components is contemplated.

特定の実施形態では、プロセッサ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, processor 302 includes hardware for executing instructions, such as those that make up a computer program. By way of example and not limitation, to execute instructions, processor 302 retrieves (or fetches) instructions from internal registers, internal cache, memory 304, or storage 306, decodes and executes those instructions, and then , internal registers, internal cache, memory 304 , or storage 306 . In particular embodiments, processor 302 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 302 including any suitable number of any suitable internal caches, where appropriate. By way of example and not limitation, processor 302 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction cache may be copies of instructions in memory 304 or storage 306, and the instruction cache may speed up retrieval of those instructions by processor 302. FIG. Data in the data cache may be a copy of the data in memory 304 or storage 306 on which instructions executing in processor 302 operate, for access by subsequent instructions executing in processor 302, or in memory 304 or storage 306. It may be the result of a previous instruction executed in processor 302 to write, or other suitable data. A data cache may speed up read or write operations by processor 302 . A TLB may speed up virtual-address translation for processor 302 . In particular embodiments, processor 302 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 302 including any suitable number of any suitable internal registers, where appropriate. Processor 302 may include one or more arithmetic logic units (ALUs), be a multi-core processor, or include one or more processors 302, where appropriate. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.

特定の実施形態では、メモリ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, memory 304 includes main memory for storing instructions for processor 302 to execute or data on which processor 302 operates. By way of example, and not limitation, computer system 300 may load instructions into memory 304 from storage 306 or another source (eg, another computer system 300). Processor 302 may then load the instructions from memory 304 into an internal register or internal cache. To execute instructions, processor 302 may retrieve instructions from internal registers or an internal cache and decode those instructions. During or after execution of an instruction, processor 302 may write one or more results (which may be intermediate or final results) to an internal register or internal cache. Processor 302 may then write one or more of those results to memory 304 . In particular embodiments, processor 302 executes only instructions in one or more internal registers or internal caches, or in memory 304 (as opposed to storage 306 or elsewhere), and one or more It operates only on data in internal registers or caches, or in memory 304 (as opposed to storage 306 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 302 to memory 304 . Bus 312 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor 302 and memory 304 and facilitate accesses to memory 304 requested by processor 302 . In particular embodiments, memory 304 includes random access memory (RAM). This RAM may be volatile memory, where appropriate. Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory 304 may include one or more memories 304, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.

特定の実施形態では、ストレージ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, storage 306 includes mass storage for data or instructions. By way of example and not limitation, storage 306 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or Universal Serial Bus (USB) drive, or two or more of these. More combinations may be included. Storage 306 may include removable or non-removable (or non-removable) media, where appropriate. Storage 306 may be internal or external to computer system 300, where appropriate. In particular embodiments, storage 306 is non-volatile solid-state memory. In particular embodiments, storage 306 includes read-only memory (ROM). Where appropriate, this ROM may be mask programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically erasable programmable ROM (EAROM), or flash memory. can be a combination of two or more of This disclosure contemplates mass storage 306 taking any suitable physical form. Storage 306 may include one or more storage control units that facilitate communication between processor 302 and storage 306, where appropriate. Storage 306 may include one or more storages 306, where appropriate. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.

特定の実施形態では、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/O interface 308 is hardware, software, or software that provides one or more interfaces for communication between computer system 300 and one or more I/O devices. Including both. Computer system 300 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between people and computer system 300 . By way of example and not limitation, I/O devices include keyboards, keypads, microphones, monitors, mice, printers, scanners, speakers, still cameras, styluses, tablets, touch screens, trackballs, video cameras, and other suitable devices. I/O devices, or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 308 for those I/O devices. Where appropriate, I/O interface 308 may include one or more device or software drivers that enable processor 302 to drive one or more of these I/O devices. I/O interfaces 308 may include one or more I/O interfaces 308, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.

特定の実施形態では、通信インターフェース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, communication interface 310 is a communication interface for communication (eg, packet-based communication, etc.) between computer system 300 and one or more other computer systems 300 or one or more networks. Includes hardware, software, or both that provide one or more interfaces. By way of example and not limitation, communication interface 310 may be a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network, or a wireless NIC for communicating with a wireless network such as a WI-FI network. (WNIC) or wireless adapter. This disclosure contemplates any suitable network and any suitable communication interface 310 for that network. By way of example and not limitation, computer system 300 may be connected to one or more of an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or the Internet. or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. By way of example, computer system 300 may be connected to a wireless PAN (WPAN) (eg, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (eg, a Global System for Mobile Communications (GSM) network). , or other suitable wireless network, or a combination of two or more of these. Computer system 300 may include any suitable communication interface 310 for any of these networks, where appropriate. Communication interface 310 may include one or more communication interfaces 310, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.

特定の実施形態では、バス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, bus 312 includes hardware, software, or both coupling components of computer system 300 to each other. By way of example and not limitation, bus 312 may be an Accelerated Graphics Port (AGP) or other graphics bus, an Extended Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a HYPERTRANSPORT (HT) interconnect, an industry Standard Architecture (ISA) Bus, INFINIBAND Interconnect, Low Pin Count (LPC) Bus, Memory Bus, Micro Channel Architecture (MCA) Bus, Peripheral Component Interconnect (PCI) Bus, PCI-Express (PCIe) Bus, Serial Advanced Technology an attachment (SATA) bus, a Video Electronics Standards Board Local (VLB) bus, or another suitable bus, or a combination of two or more of these. Bus 312 may include one or more buses 312, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.

本明細書では、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または2に記載のコンピュータ実装方法。 3. The computer-implemented method of claim 1 or 2, wherein the particular data file is an image file, video file, or audio file. 前記特定のデータファイルのストレージサイズがしきい値サイズよりも大きい、請求項1から3のいずれか一項に記載のコンピュータ実装方法。 4. The computer-implemented method of any one of claims 1-3, wherein the storage size of the particular data file is greater than a threshold size. 前記コンピューティング条件の前記発生を識別することが、前記コンピュータ実行可能プログラムの非アクティブ状態を識別することと、応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることとを含み、好ましくは、前記コンピュータ実行可能プログラムの前記非アクティブ状態を識別したことに応答して、前記メモリの前記廃棄可能な部分を電力オフ状態にすることをさらに含む、請求項1から4のいずれか一項に記載のコンピュータ実装方法。 identifying said occurrence of said computing condition includes identifying an inactive state of said computer-executable program; or marking a plurality of specific pages, preferably powering off said disposable portion of said memory in response to identifying said inactive state of said computer executable program. 5. The computer-implemented method of any one of claims 1-4, further comprising: 前記コンピューティング条件の前記発生を識別することが、さらなるコンピュータ実行可能プログラムのアクティブ化を識別することと、応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることとを含み、前記さらなるコンピュータ実行可能プログラムが、前記コンピュータ実行可能プログラムよりも高い処理優先度を有し、好ましくは、前記さらなるコンピュータ実行可能プログラムの前記アクティブ化を識別したことに応答して、前記メモリの前記廃棄可能な部分の前記1つまたは複数の特定のページを、前記さらなるコンピュータ実行可能プログラムに関連する1つまたは複数の追加のデータファイルに再割り振りすることをさらに含む、請求項1から5のいずれか一項に記載のコンピュータ実装方法。 wherein identifying said occurrence of said computing condition identifies activation of a further computer-executable program; and, in response, said one or and marking a plurality of specific pages, wherein said further computer-executable program has a higher processing priority than said computer-executable program, preferably said activation of said further computer-executable program. In response to identifying, reallocate the one or more specific pages of the disposable portion of the memory to one or more additional data files associated with the additional computer-executable program. 6. The computer-implemented method of any one of claims 1-5, further comprising: 前記メモリの前記廃棄可能な部分の前記1つまたは複数の特定のページに前記特定のデータファイルを記憶することが、前記メモリの前記廃棄可能な部分の1つの特定のページに前記特定のデータファイルを記憶することを含み、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることが、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つの特定のページをマークすることを含み、好ましくは、前記1つの特定のページが、1つまたは複数の他のデータファイルを含む、請求項1から6のいずれか一項に記載のコンピュータ実装方法。 storing the particular data file in the one or more particular pages of the disposable portion of the memory; storing the particular data file in one particular page of the disposable portion of the memory; and marking the one or more specific pages containing the specific data file as invalid with respect to the computer-executable program comprises storing the specific data file as invalid with respect to the computer-executable program. and preferably said one specific page contains one or more other data files. computer-implemented method. 前記メモリの前記廃棄可能な部分の前記1つまたは複数の特定のページに前記特定のデータファイルを記憶することが、前記特定のデータファイルが2つの特定のページをまたぐように、前記メモリの前記廃棄可能な部分の前記2つの特定のページに前記特定のデータファイルを記憶することを含み、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることが、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記2つの特定のページをマークすることを含む、請求項1から7のいずれか一項に記載のコンピュータ実装方法。 Storing the particular data file in the one or more particular pages of the disposable portion of the memory causes the particular data file to span two particular pages of the memory. storing the particular data file in the two particular pages of the disposable portion, and marking the one or more particular pages containing the particular data file as invalid with respect to the computer-executable program. 8. The computer-implemented method of any one of claims 1-7, wherein doing comprises marking the two particular pages containing the particular data file as invalid with respect to the computer-executable program. 前記メモリの前記耐久性のある部分が、前記メモリの前記廃棄可能な部分の前記1つまたは複数のページについてのページテーブルを含み、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることが、前記1つまたは複数の特定のページについての前記ページテーブルを修正することを含む、請求項1から8のいずれか一項に記載のコンピュータ実装方法。 said durable portion of said memory including a page table for said one or more pages of said disposable portion of said memory and including said particular data file as invalid for said computer-executable program; 9. The computer implementation of any one of claims 1-8, wherein marking one or more particular pages comprises modifying the page table for the one or more particular pages. Method. 前記コンピュータ実行可能プログラムが、拡張現実(AR)または仮想現実(VR)コンピュータ実行可能プログラムである、請求項1から9のいずれか一項に記載のコンピュータ実装方法。 10. The computer-implemented method of any one of claims 1-9, wherein the computer-executable program is an augmented reality (AR) or virtual reality (VR) computer-executable program. 命令を記憶するメモリ媒体へのアクセスを有するプロセッサを備えたシステムであって、前記命令は、
コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、
コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する特定のデータファイルの、前記特定のファイルが前記メモリの前記廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、
前記特定のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記廃棄可能な部分の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 .
前記特定のデータファイルが、画像ファイル、ビデオファイル、もしくはオーディオファイルである、および/または、好ましくは、前記特定のデータファイルのストレージサイズがしきい値サイズよりも大きい、請求項11または12に記載のシステム。 13. A method according to claim 11 or 12, wherein said specific data file is an image file, video file or audio file and/or preferably the storage size of said specific data file is larger than a threshold size. system. 前記コンピューティング条件の前記発生を識別することが、前記コンピュータ実行可能プログラムの非アクティブ状態を識別することと、応答して、前記コンピュータ実行可能プログラムについて無効として前記特定のデータファイルを含む前記1つまたは複数の特定のページをマークすることとを含み、および/または、好ましくは、前記動作が、前記コンピュータ実行可能プログラムの前記非アクティブ状態を識別したことに応答して、前記メモリの前記廃棄可能な部分を電力オフ状態にすることをさらに含む、請求項11から13のいずれか一項に記載のシステム。 identifying said occurrence of said computing condition includes identifying an inactive state of said computer-executable program; or marking a plurality of specific pages, and/or preferably said discardable of said memory in response to said action identifying said inactive state of said computer-executable program. 14. The system of any one of claims 11 to 13, further comprising powering off a portion. 1つまたは複数のコンピュータによって実行可能な命令を含むソフトウェアを記憶する非一時的コンピュータ可読媒体であって、前記命令は、そのような実行がされると、前記1つまたは複数のコンピュータに、
コンピューティングデバイスのオペレーティングシステムによって、コンピュータ実装メモリを廃棄可能な部分と耐久性のある部分とに割り振ることと、
コンピュータ実行可能プログラムから、前記コンピュータ実行可能プログラムに関連する特定のデータファイルの、前記特定のファイルが前記メモリの前記廃棄可能な部分に記憶されるべきであることを指示する、表示インジケータを受信することと、
前記特定のデータファイルの前記表示インジケータを受信したことに応答して、前記メモリの前記廃棄可能な部分の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.
JP2021570857A 2019-07-16 2020-07-10 Memory management for computing devices Pending JP2022540750A (en)

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)

* Cited by examiner, † Cited by third party
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

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