Integrating data from symmetric and asymmetric memory
First Claim
1. A method of integrating data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the method comprising:
- receiving a write command to write data to a virtual address associated with a first physical address of an asymmetric memory component of the main memory;
configuring a page table to change an association of the virtual address from the association to the first physical address of the asymmetric memory component of the main memory to a second physical address of a symmetric memory component of the main memory;
generating an indication that the first physical address is available for association with another virtual address in a subsequent block write operation;
identifying a collection of one or more content entries with access characteristics suitable for storage in the asymmetric memory component, the collection of content entries including data corresponding to the virtual address for which the association was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory;
determining whether the collection of content entries collectively occupy a threshold amount of storage or whether a threshold period of time has elapsed since the association of the virtual address was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; and
in response to determining that the collection of content entries collectively occupy the threshold amount of storage or that the threshold period of time has elapsed;
identifying memory utilization characteristics of multiple regions included in the asymmetric memory component;
analyzing the identified memory utilization characteristics;
based on the analysis of the identified memory utilization characteristics, selecting, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and
loading the collection of content entries to the selected region of the asymmetric memory component using a block write command.
5 Assignments
0 Petitions
Accused Products
Abstract
Data stored within symmetric and asymmetric memory components of main memory is integrated by identifying a first data as having access characteristics suitable for storing in an asymmetric memory component. The first data is included among a collection of data to be written to the asymmetric memory component. An amount of data is identified within the collection of data to be written to the asymmetric memory component. The amount of data is compared within the collection of data to a volume threshold to determine whether a block write to the asymmetric memory component is justified by the amount of data. If justified, the collection of data is loaded to the asymmetric memory component.
130 Citations
50 Claims
-
1. A method of integrating data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the method comprising:
-
receiving a write command to write data to a virtual address associated with a first physical address of an asymmetric memory component of the main memory; configuring a page table to change an association of the virtual address from the association to the first physical address of the asymmetric memory component of the main memory to a second physical address of a symmetric memory component of the main memory; generating an indication that the first physical address is available for association with another virtual address in a subsequent block write operation; identifying a collection of one or more content entries with access characteristics suitable for storage in the asymmetric memory component, the collection of content entries including data corresponding to the virtual address for which the association was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; determining whether the collection of content entries collectively occupy a threshold amount of storage or whether a threshold period of time has elapsed since the association of the virtual address was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; and in response to determining that the collection of content entries collectively occupy the threshold amount of storage or that the threshold period of time has elapsed; identifying memory utilization characteristics of multiple regions included in the asymmetric memory component; analyzing the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, selecting, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and loading the collection of content entries to the selected region of the asymmetric memory component using a block write command. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A method of integrating data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the method comprising:
-
identifying a first data as having access characteristics suitable for storing in an asymmetric memory component; including the first data among a collection of data to be written to the asymmetric memory component; identifying an amount of data within the collection of data to be written to the asymmetric memory component; comparing the amount of data within the collection of data to a volume threshold to determine whether a block write to the asymmetric memory component is justified by the amount of data; and in response to a determination that a block write to the asymmetric memory component is justified by the amount of data; identifying memory utilization characteristics of multiple regions included in the asymmetric memory component; analyzing the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, selecting, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and loading the collection of data to the selected region of the asymmetric memory component. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A system that integrates data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the system comprising:
-
means for receiving a write command to write data to a virtual address associated with a first physical address of an asymmetric memory component of the main memory; means for configuring a page table to change an association of the virtual address from the association to the first physical address of the asymmetric memory component of the main memory to a second physical address of a symmetric memory component of the main memory; means for generating an indication that the first physical address is available for association with another virtual address in a subsequent block write operation; means for identifying a collection of one or more content entries with access characteristics suitable for storage in the asymmetric memory component, the collection of content entries including data corresponding to the virtual address for which the association was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; means for determining whether the collection of content entries collectively occupy a threshold amount of storage or whether a threshold period of time has elapsed since the association of the virtual address was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; and means for, in response to determining that the collection of content entries collectively occupy the threshold amount of storage or that the threshold period of time has elapsed; identifying memory utilization characteristics of multiple regions included in the asymmetric memory component; analyzing the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, selecting, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and loading the collection of content entries to the selected region of the asymmetric memory component using a block write command.
-
-
48. A system that integrates data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the system comprising
means for identifying a first data as having access characteristics suitable for storing in an asymmetric memory component; -
means for including the first data among a collection of data to be written to the asymmetric memory component; means for identifying an amount of data within the collection of data to be written to the asymmetric memory component; means for comparing the amount of data within the collection of data to a volume threshold to determine whether a block write to the asymmetric memory component is justified by the amount of data; and means for, in response to a determination that a block write to the asymmetric memory component is justified by the amount of data; identifying memory utilization characteristics of multiple regions included in the asymmetric memory component; analyzing the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, selecting, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and loading the collection of data to the selected region of the asymmetric memory component.
-
-
49. A system that integrates data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the system comprising logic that when executed on a processor cause the processor to:
-
identify a first data as having access characteristics suitable for storing in an asymmetric memory component; include the first data among a collection of data to be written to the asymmetric memory component; identify an amount of data within the collection of data to be written to the asymmetric memory component; compare the amount of data within the collection of data to a volume threshold to determine whether a block write to the asymmetric memory component is justified by the amount of data; and in response to a determination that a block write to the asymmetric memory component is justified by the amount of data; identify memory utilization characteristics of multiple regions included in the asymmetric memory component; analyze the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, select, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and load the collection of data to the selected region of the asymmetric memory component.
-
-
50. A system that integrates data stored within symmetric and asymmetric memory components of main memory and storing the resultant integrated data within at least one asymmetric memory component, where the symmetric memory components are each configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component, and where the asymmetric memory components are each configured to enable block write operations in which a write to an address within a block of one of the asymmetric memory components affects the availability of other addresses within the block of the asymmetric memory component, the system comprising logic that when executed on a processor cause the processor to:
-
receive a write command to write data to a virtual address associated with a first physical address of an asymmetric memory component of the main memory; configure a page table to change an association of the virtual address from the association to the first physical address of the asymmetric memory component of the main memory to a second physical address of a symmetric memory component of the main memory; generate an indication that the first physical address is available for association with another virtual address in a subsequent block write operation; identify a collection of one or more content entries with access characteristics suitable for storage in the asymmetric memory component, the collection of content entries including data corresponding to the virtual address for which the association was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; determine whether the collection of content entries collectively occupy a threshold amount of storage or whether a threshold period of time has elapsed since the association of the virtual address was changed from the first physical address of the asymmetric memory component of the main memory to the second physical address of the symmetric memory component of the main memory; and in response to determining that the collection of content entries collectively occupy the threshold amount of storage or that the threshold period of time has elapsed; identify memory utilization characteristics of multiple regions included in the asymmetric memory component; analyze the identified memory utilization characteristics; based on the analysis of the identified memory utilization characteristics, select, from among the multiple regions included in the asymmetric memory component, a region in the asymmetric memory component; and load the collection of content entries to the selected region of the asymmetric memory component using a block write command.
-
Specification