IP Library Granted Patent US 9,691,503
Granted Patent B2
US 9,691,503 · App. 14/229,478 · Granted Jun 27, 2017

Allocation technique for memory diagnostics

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 9,691,503
App. No.
14/229,478
Granted
Jun 27, 2017
Kind
B2
Abstract

An apparatus for allocating computer memory for memory diagnostics is disclosed. The apparatus may include a processor and memory that stores code executable by the processor, and may include code that identifies an unreserved amount of memory in a computer system, code that requests a portion of the memory based on the unreserved amount of memory, and code that determines whether an allocated portion of the memory comprises non-contiguous memory addresses. In some embodiments, the apparatus includes code that locks the allocated portion of the memory in response to the allocated portion consisting solely of contiguous memory addresses, and code that performs a memory diagnostic test on the allocated portion of the memory.

Claims (70)

1. An apparatus comprising:

a processor;

a memory that stores code executable by the processor to identify an unreserved amount of main memory in a computer system;

request a first allocation from the main memory based on the unreserved amount of main memory;

receive a first memory allocation;

determine whether the first memory allocation comprises non-contiguous memory addresses;

perform a memory diagnostic test on the first memory allocation of the main memory in response to the first memory allocation consisting solely of contiguous memory addresses;

release the first memory allocation in response to the first memory allocation comprising non-contiguous memory addresses;

request a second allocation from the main memory based on the unreserved amount of main memory, wherein requesting the second allocation from the main memory comprises requesting a smaller amount of the main memory than the first memory allocation; and

perform a memory diagnostic test on a second memory allocation received in response to requesting a second allocation of the main memory.

2. The apparatus of claim 1 , the code further comprising:

locking an allocated portion of the memory in response to the allocated portion consisting solely of contiguous memory addresses, the allocated portion comprising one of the first memory allocation and the second memory allocation.

3. The apparatus of claim 1 , wherein the requesting a second allocation from the main memory comprises the processor:

determining a testable block size for the main memory;

calculating a number of testable blocks that will fit in the first memory allocation; and

requesting the calculated number of testable blocks of the determined testable block size.

4. The apparatus of claim 1 , wherein the processor further:

determines a testable amount of main memory less than the unreserved amount of main memory, wherein the processor requesting the first allocation based on the unreserved amount of main memory comprises the processor requesting an amount of the main memory equal to the testable amount of main memory.

5. The apparatus of claim 1 , wherein the processor determining whether the first memory allocation comprises non-contiguous memory addresses comprises the processor allocating the first memory allocation into a single buffer.

6. The apparatus of claim 1 , wherein the processor identifying an unreserved amount of memory comprises the processor querying an operating system to identify locked areas of the main memory.

7. The apparatus of claim 1 , wherein the processor further:

determines whether the first memory allocation comprises virtual memory;

releases the first memory allocation in response to the first memory allocation comprising virtual memory; and

requests the second allocation from the main memory in response to the first memory allocation comprising virtual memory.

8. A method comprising:

identifying, by use of a processor, an unreserved amount of main memory in a computer system;

requesting a first allocation of the main memory based on the unreserved amount of main memory;

receiving a first memory allocation from the main memory in response to requesting a first allocation of the main memory;

determining whether the first memory allocation comprises non-contiguous memory addresses;

performing a memory diagnostic test on the first memory allocation received in response to the first memory allocation consisting solely of contiguous memory addresses;

releasing the first memory allocation in response to the first memory allocation comprising non-contiguous memory addresses;

requesting a second allocation from the main memory based on the unreserved amount of main memory in response to the first memory allocation comprising non-contiguous memory addresses, wherein requesting the second allocation from the main memory comprises requesting a smaller amount of the main memory than the first memory allocation; and

performing a memory diagnostic test on a second memory allocation received in response to requesting a second allocation of the main memory.

9. The method of claim 8 , further comprising:

locking an allocated portion of the memory in response to the allocated portion consisting solely of contiguous memory addresses, the allocated portion comprising one of the first memory allocation and the second memory allocation.

10. The method of claim 8 , wherein the requesting a second allocation from the main memory comprises:

determining a testable block size for the main memory;

calculating a number of testable blocks that will fit in the first memory allocation; and

requesting the calculated number of testable blocks of the determined testable block size.

11. The method of claim 8 , further comprising:

determining whether the first memory allocation comprises virtual memory;

releasing the first memory allocation in response to the first memory allocation comprising virtual memory; and

requesting the second allocation from the main memory in response to the first memory allocation comprising virtual memory.

12. The method of claim 11 , wherein requesting the second portion of the memory comprises:

determining a testable block size for the main of memory;

calculating a number of testable blocks that will fit in the first memory allocation; and

requesting the calculated number of testable blocks of the determined testable block size.

13. The method of claim 12 , further comprising requesting a third allocation from the main memory equal to the difference between the first allocation and the second allocation.

14. The method of claim 8 , further comprising determining a testable amount of main memory less than the unreserved amount of main memory, wherein requesting the first allocation comprises requesting an amount of the main memory equal to the testable amount of main memory.

15. The method of claim 8 , wherein determining whether the first memory allocation comprises non-contiguous memory addresses comprises allocating the first memory allocation into a single buffer.

16. The method of claim 8 , wherein identifying an unreserved amount of memory comprises querying an operating system to identify locked areas of the main memory.

17. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor to perform:

identifying an unreserved amount of main memory in a computer system;

requesting a first allocation the main memory based on the unreserved amount of main memory;

receiving a first memory allocation from the main memory in response to requesting a first allocation of the main memory;

determining whether the first memory allocation comprises non-contiguous memory addresses;

performing a memory diagnostic test on the first memory allocation of the main memory in response to the first memory allocation consisting solely of contiguous memory addresses;

releasing the first memory allocation in response to the first memory allocation comprising non-contiguous memory addresses;

requesting a second allocation from the main memory based on the unreserved amount of main memory in response to the first memory allocation comprising non-contiguous memory addresses, wherein requesting the second allocation from the main memory comprises requesting a smaller amount of the main memory than the first memory allocation; and

performing a memory diagnostic test on a second memory allocation received in response to requesting a second allocation of the main memory.

18. The program product of claim 17 , further comprising code to perform:

determining a testable block size for the main memory;

calculating a number of testable blocks that will fit in the first memory allocation; and

requesting the calculated number of testable blocks of the determined testable block size.

19. The program product of claim 17 , further comprising code to perform:

locking an allocated portion of the memory in response to the allocated portion consisting solely of contiguous memory addresses, the allocated portion comprising one of the first memory allocation and the second memory allocation.

20. The program product of claim 17 , further comprising code to perform:

determining whether the first memory allocation comprises virtual memory;

releasing the first memory allocation in response to the first memory allocation comprising virtual memory; and

requesting the second allocation from the main memory in response to the first memory allocation comprising virtual memory.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2019
From: LENOVO (SINGAPORE) PTE. LTD.
To: LENOVO PC INTERNATIONAL LIMITED
Reel/Frame 049693/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2014
From: WEKSLER, ARNOLD S.; NETO, MAURÍCIO DE MORAES BARROS; MACHADO, RAFAEL RODRIGUES; DA SILVA, FERNANDO JOSÉ VIEIRA; SILVA, FERNANDO FERRAZ; SILVERIO, DÊNIS ALBERTO; TEODORO, RAFAEL
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 032678/0292 →