IP Library Granted Patent US 9,208,112
Granted Patent B1
US 9,208,112 · App. 12/765,072 · Granted Dec 8, 2015

Permanent allocation of a large host memory

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,208,112
App. No.
12/765,072
Granted
Dec 8, 2015
Kind
B1
Abstract

An add-in card allocates memory from a host computer. An option ROM on the add-in card includes a first interrupt handler for handling an interrupt for resetting a mass storage device that reads a system address map, modifies the system address map by adding an entry for an amount of host memory to be allocated to the add-in card, and stores the modified system address map as a destination system address map. The first interrupt handler also changes the address of an interrupt handler for providing the system address map to the address of a second interrupt handler also stored in the option ROM of the add-in card. When an interrupt is generated that requests the system address map, the second interrupt handler reads the destination system address map, which includes a memory allocation for the add-in card, and provides the destination system address map to the requestor.

Claims (38)

1. A computer-implemented method for allocating memory from a host computer for an add-in card, the method comprising performing, by the host computer, computer-implemented operations for:

intercepting a first interrupt for resetting a mass storage device;

in response to intercepting the first interrupt for resetting the mass storage device, reading a system address map, modifying the system address map by adding an entry for an amount of host memory to be allocated to the add-in card, storing the modified system address map as a destination system address map, changing an address of a second interrupt handler for handling interrupts for reporting the system address map, and storing an address of an original interrupt handler for handling interrupts for reporting the system address map in a memory of the add-in card;

intercepting a second interrupt for reporting the system address map;

determining whether the second interrupt is memory related;

in response to determining that the second interrupt is memory related, providing the destination system address map; and

in response to determining that the second interrupt is not memory related, calling the original interrupt handler at the stored address.

2. The computer-implemented method of claim 1 , wherein the first interrupt for resetting a mass storage device comprises an interrupt 13h, AH=00h, in an x86-based computing system.

3. The computer-implemented method of claim 1 , wherein the second interrupt comprises an interrupt 15h in an x86-based computing system.

4. The computer-implemented method of claim 1 , further comprising in response to intercepting the first interrupt for resetting the mass storage device:

determining whether a flag indicating that the system address map has been modified has been previously set; and

in response to determining that the flag has been previously set, resetting the mass storage device without performing the operations of modifying the system address map, storing a modified system address map, and changing an address of an interrupt handler for providing the system address map.

5. The computer-implemented method of claim 1 , wherein the destination system address map is stored in the memory of the add-in card.

6. The computer-implemented method of claim 1 , wherein the first interrupt for resetting a mass storage device is intercepted by program code stored in an add-in card option read-only memory (ROM).

7. The computer-implemented method of claim 1 , wherein the second interrupt is intercepted by program code stored in an add-in card option read-only memory (ROM).

8. The computer-implemented method of claim 1 , wherein changing the address of the second interrupt handler for handling interrupts for reporting the system address map comprises modifying an interrupt vector table for the second interrupt handler to point to an address of another interrupt handler.

9. The computer-implemented method of claim 1 , wherein the add-in card comprises a mass storage device controller card.

10. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:

intercept an interrupt for resetting a mass storage device;

in response to intercepting the interrupt for resetting the mass storage device, read a system address map, modify the system address map by adding an entry for an amount of host memory to be allocated to an add-in card, store the modified system address map as a destination system address map, change an address of an interrupt handler for handling interrupts for reporting the system address map, and store an address of an original interrupt handler for handling interrupts for reporting the system address map in a memory of the add-in card;

intercept an interrupt for reporting the system address map; and

provide the destination system address map in response to intercepting the interrupt for reporting the system address map.

11. The computer-readable storage medium of claim 10 , wherein the interrupt for resetting a mass storage device comprises an interrupt 13h, AH=00h, in an x86-based computing system and wherein the interrupt for reporting the system address map comprises an interrupt 15h, AX=E820, in an x86-based computing system.

12. The computer-readable storage medium of claim 11 , having further computer-readable instructions stored thereupon which, when executed by the computer, cause the computer to:

determine whether a flag indicating that the system address map has been modified has been previously set; and

in response to determining that the flag has been previously set, reset the mass storage device without performing the operations to modify the system address map, store a modified system address map, and change an address of an interrupt handler for providing the system address map.

13. The computer-readable storage medium of claim 12 , wherein the destination system address map is stored in the memory of the add-in card.

14. The computer-readable storage medium of claim 10 , having further computer-readable instructions stored thereupon which, when executed by the computer, cause the computer to:

determine whether the interrupt for reporting the system address map is memory related; and

in response to determining that the interrupt for reporting the system address map is not memory related, to call the original interrupt handler for handling interrupts for reporting the system address map at the stored address.

15. The computer-readable storage medium of claim 10 , wherein the interrupt for resetting a mass storage device is intercepted by program code stored in an add-in card option read-only memory (ROM).

16. The computer-implemented method of claim 10 , wherein the interrupt for reporting the system address map is intercepted by program code stored in an add-in card option read-only memory (ROM).

17. A computer system add-in card comprising:

an option read-only memory (ROM) storing computer-readable instructions executable by a host computer comprising

a first interrupt handler for handling an interrupt for resetting a mass storage device, and configured, when called, to read a system address map, to modify the system address map by adding an entry for an amount of host memory to be allocated to the add-in card, to store the modified system address map as a destination system address map, to change an address of an interrupt handler for handling interrupts for reporting the system address map, and to store an address of an original interrupt handler for handling interrupts for reporting the system address map in a memory of the add-in card, and

a second interrupt handler for handling an interrupt for reporting the system address map, and configured to provide the destination system address map when called.

18. The computer-system add-in card of claim 17 , wherein the interrupt for resetting a mass storage device comprises an interrupt 13h, AH=00h, in an x86-based computing system and wherein the interrupt for reporting the system address map comprises an interrupt 15h, AX=E820, in an x86-based computing system.

19. The computer-system add-in card of claim 17 , wherein the first interrupt handler is further configured when called to determine whether a flag indicating that the system address map has been modified has been previously set, and in response to determining that the flag has been previously set, to reset a mass storage device without performing the operations to modify the system address map, store a modified system address map, and change an address of an interrupt handler for providing the system address map.

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 Apr 22, 2010
From: XIE, JINWEN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 024270/0380 →