IP Library Granted Patent US 10,203,893
Granted Patent B2
US 10,203,893 · App. 14/920,518 · Granted Feb 12, 2019

Memory channel storage device detection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,203,893
App. No.
14/920,518
Granted
Feb 12, 2019
Kind
B2
Abstract

Technologies are disclosed herein that allow for utilization of memory channel storage (“MCS”) devices in a computing system. The MCS device may be detected during a boot phase of the computing system, and the address data for the MCS device may be detected through repeated manipulation of a logical offset. The address data may then be stored for later use in memory allocation.

Claims (70)

1. A computer-implemented method for reserving memory addresses for a memory channel storage (“MCS”) device in a computing system, wherein a memory address of the MCS device is an alias of another memory address of the MCS device, the computer-implemented method comprising performing computer-implemented operations for:

determining that the MCS device is deployed at the computing system;

locating a first memory address associated with a physical memory boundary of a memory of the computing system;

writing a test pattern at a second memory address, the second memory address being offset from the first memory address;

in response to writing the test pattern at the second memory address, reading data from the first memory address;

determining whether the data read from the first memory address comprises the test pattern, thereby determining if the second memory address is an alias of the first memory address;

in response to determining that the data read from the first memory address comprises the test pattern, assembling an MCS device data structure, the MCS device data structure comprising data identifying the physical memory boundary;

storing the MCS device data structure in a non-volatile memory; and

reserving the memory addresses for the MCS upon a next boot of the computing system using the MSC device data structure.

2. The computer-implemented method of claim 1 , wherein determining that the MCS device is deployed at the computing system comprises polling a serial presence detect (“SPD”) chipset through a system management bus to identify the MCS device.

3. The computer-implemented method of claim 2 , further comprising:

obtaining a first serial number for the MCS device from the SPD chipset;

obtaining a second serial number for the MCS device using the second memory address; and

correlating the first serial number and the second serial number to correlate the memory addresses for the MCS with a physical slot.

4. The computer-implemented method of claim 1 , wherein the MCS device data structure further comprises a central processing unit (“CPU”) identification, a memory channel identification, and a physical slot identification.

5. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer having a memory channel storage (“MCS”) device, cause the computer to:

determine that the MCS device is deployed at the computer, wherein a memory address of the MCS device is an alias of another memory address of the MCS device;

locate a first memory address associated with a physical memory boundary of a memory of the computer;

write a test pattern at a second memory address, the second memory address being offset from the first memory address;

in response to writing the test pattern at the second memory address, read data from the first memory address;

determine whether the data read from the first memory address comprises the test pattern, thereby determining if the second memory address is an alias of the first memory address;

in response to determining that the data read from the first memory address comprises the test pattern, assemble an MCS device data structure, the MCS device data structure comprising data identifying the physical memory boundary; and

store the MCS device data structure in a non-volatile memory; and

reserve memory addresses for the MCS upon a next boot of the computer using the MCS device data structure.

6. The computer-readable storage medium of claim 5 , having further computer-executable instructions stored thereon to:

determine a first serial number for the MCS device based on the second memory address;

obtain a second serial number for the MCS device from a serial presence detect (SPD) chipset; and

correlate the first serial number and the second serial number to correlate the memory addresses for the MSC with a physical slot.

7. The computer-readable storage medium of claim 5 , wherein the MSC device data structure further comprises a central processing unit (“CPU”) identification, a memory channel identification, and a physical slot identification.

8. A computing system, comprising:

a processor;

a memory channel storage (“MCS”) device in communication with the processor, wherein a memory address of the MCS device is an alias of another memory address of the MCS device; and

a computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the processor, cause the processor to

determine that the MCS device is deployed at the computing system,

locate a first memory address, the first memory address being associated with a physical memory boundary,

write a test pattern at a second memory address, the second memory address being offset from the first memory address;

in response to writing the test pattern at the second memory address, read data from the first memory address;

determine whether the data read from the first memory address comprises the test pattern, thereby determining if the second memory address is an alias of the first memory address;

in response to determining that the data read from the first memory address comprises the test pattern, assemble an MCS device data structure, the MCS device data structure comprising data identifying the physical memory boundary,

store the MCS device data structure in a non-volatile memory, and

reserve memory addresses for the MCS upon a next boot of the computer using the MSC device data structure.

9. The computer system of claim 8 , wherein determining that the MCS device is deployed at the computing system comprises polling a serial presence detect (“SPD”) chipset through a system management bus to identify the MCS device.

10. The computer system of claim 9 , having further computer-executable instructions stored thereon and configured to:

obtain a first serial number for the MCS device from the SPD chipset;

obtain a second serial number for the MCS device using the second memory address; and

correlate the first serial number with the second serial number to correlate the memory addresses for the MCS with a physical slot.

11. The computer-implemented method of claim 1 , wherein the test pattern comprises a first test pattern and wherein the method further comprises in response to determining that the data read from the first memory address does not comprise the first test pattern:

writing a second test pattern to a third memory address, the third memory address being offset from the first memory address and different than the second memory address;

reading data from the first memory address;

determining whether the data read from the first memory address is the second test pattern; and

in response to determining that the data at read from the first memory address is the second test pattern, storing the MCS device data structure in the non-volatile memory.

12. The computer-readable storage medium of claim 5 , wherein the test pattern comprises a first test pattern and wherein the computer-readable storage medium has further computer-executable instructions stored thereon which, when executed by the computer, cause the computer, in response to determining that the data read from the first memory address does not comprise the test pattern, to:

write a second test pattern to a third memory address, the third memory address being offset from the first memory address and different than the second memory address;

read data from the first memory address;

determine whether the data read from the first memory address comprises the second test pattern; and

in response to determining that the data read from the first memory address comprises the second test pattern, store the MCS device data structure in the non-volatile memory.

13. The computer system of claim 8 , wherein the test pattern comprises a first test pattern and wherein the computer system has further computer-executable instructions stored thereon which, when executed by the processor, cause the processor, in response to determining that the data read from the first memory address does not comprise the first test pattern, to:

write a second test pattern to a third memory address, the third memory address being offset from the first memory address and different than the second memory address;

read data from the first memory address;

determine whether the data read from the first memory address comprises the second test pattern; and

in response to determining that the data read from the second memory address comprises the second test pattern, store the MCS device data structure in the non-volatile memory.

14. The computer-implemented method of claim 1 , further comprising:

prior to writing the test pattern at the second memory address,

reading data from the first memory address,

preserving the data read from the first memory address, and

clearing the data at the first memory address; and

after determining that the data read from the first memory address comprises the test pattern, restoring the data read from the first memory address to the first memory address.

15. The computer-implemented method of claim 11 , wherein the third memory address is offset from the first memory address by twice the number of memory addresses as the second memory address is offset from the first memory address.

16. The computer-readable storage medium of claim 12 , wherein the-third memory address is offset from the first memory address by twice the number of memory addresses as the second memory address is offset from the first memory address.

17. The computer system of claim 13 , wherein the third memory address is offset from the first memory address by twice the number of memory addresses as the second memory address is offset from the first memory address.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2015
From: SUBRAMANIAN, SENTHAMIZHSEY; MOSHER, BEJEAN DAVID
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 036860/0039 →