Device full memory access through standard PCI express bus
Abstract
A method of transferring data between a host and a PCI device is disclosed. The method comprises mapping a fixed memory-mapping control block in a host memory of the host to a control register of a memory-mapping unit of the PCI device; mapping a dynamic data-access memory block in the host memory to a default memory block in a memory of the PCI device, wherein the memory-mapping unit translates an address between the dynamic data-access memory block and a memory block in the memory of the PCI device; and dynamically modifying a value in the control register of the memory-mapping unit through the fixed memory-mapping control block such that an address of the dynamic data-access memory block in the host memory is translated to a different address in the memory of the PCI device based on the modified value in the control register of the memory-mapping unit.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of accessing a target memory block in a memory of a Peripheral Component Interconnect (PCI) device by a host, the method comprising:
reserving a fixed memory-mapping control block in a host memory on the host;
mapping the fixed memory-mapping control block to a control register of a memory-mapping unit on the PCI device;
reserving a dynamic data-access memory block in the host memory;
mapping the dynamic data-access memory block to a default memory block in the memory of the PCI device;
determining a value for the fixed memory-mapping control block based on an address of the target memory block in the memory of the PCI device;
writing the determined value into the fixed memory-mapping control block; and
accessing the dynamic data-access memory block to access the target memory block.
2. The method of claim 1 , wherein the PCI device includes one of a PCIe endpoint, a PCIe switch, or a PCIe bridge.
3. The method of claim 1 , wherein the fixed memory-mapping control block is less than 100 bytes.
4. The method of claim 1 , wherein:
mapping the fixed memory-mapping control block includes setting a first base address register in a configuration register of the PCI device based on an address of the fixed memory-mapping control block, and
mapping the dynamic data-access memory block includes setting a second base address register in the configuration register of the PCI device based on an address of the dynamic data-access memory block.
5. A method of transferring data between a host and a PCI device, the method comprising:
mapping a fixed memory-mapping control block in a host memory of the host to a control register of a memory-mapping unit of the PCI device;
mapping a dynamic data-access memory block in the host memory to a default memory block in a memory of the PCI device, wherein the memory-mapping unit of the PCI device translates an address between the dynamic data-access memory block and a memory block in the memory of the PCI device; and
dynamically modifying a value in the control register of the memory-mapping unit through the fixed memory-mapping control block such that an address of the dynamic data-access memory block in the host memory is translated to a different address in the memory of the PCI device based on the modified value in the control register of the memory-mapping unit.
6. The method of claim 5 , further comprising:
determining a value for the fixed memory-mapping control block based on an address of a target memory block in the memory of the PCI device;
writing the determined value into the fixed memory-mapping control block; and
accessing the dynamic data-access memory block to access the target memory block in the memory of the PCI device.
7. The method of claim 6 , wherein accessing the dynamic data-access memory block includes reading from the dynamic data-access memory block and writing into the dynamic data-access memory block.
8. The method of claim 6 , wherein determining the value for the fixed memory-mapping control block, writing the determined value into the fixed memory-mapping control block, and accessing the dynamic data-access memory block are performed iteratively until all target memory blocks in the memory of the PCI device have been accessed.
9. The method of claim 5 , wherein the PCI device includes one of a PCIe endpoint, a PCIe switch, or a PCIe bridge.
10. The method of claim 5 , wherein the fixed memory-mapping control block is less than 100 bytes.
11. The method of claim 5 , wherein mapping the fixed memory-mapping control block and mapping the dynamic data-access memory block include setting a base address register in a configuration register of the PCI device based on an address of the fixed memory-mapping control block or an address of the dynamic data-access memory block.
12. The method of claim 5 , wherein:
mapping the fixed memory-mapping control block includes setting a first base address register in a configuration register of the PCI device based on an address of the fixed memory-mapping control block; and
mapping the dynamic data-access memory block includes setting a second base address register in the configuration register of the PCI device based on an address of the dynamic data-access memory block.
13. The method of claim 5 , further comprising:
determining a value for the fixed memory-mapping control block based on an address of a control register for a hardware component on the PCI device;
writing the determined value into the fixed memory-mapping control block; and
accessing the dynamic data-access memory block to configure the control register for the hardware component on the PCI device.
14. The method of claim 5 , wherein the dynamic data-access memory block is smaller than the memory of the PCI device.
15. The method of claim 5 , wherein the dynamic data-access memory block is no larger than 16 megabytes.
16. A computer system, comprising:
a host including a host memory;
a PCI device including a device memory and a memory-mapping unit; and
a PCI bus electrically coupling the PCI device to the host;
wherein a fixed memory-mapping control block in the host memory is mapped to a control register for the memory-mapping unit of the PCI device;
wherein a dynamic data-access memory block in the host memory is mapped to a default memory block in the device memory of the PCI device; and
wherein the memory-mapping unit of the PCI device translates an address between the dynamic data-access memory block and a memory block in the device memory of the PCI device.
17. The computer system of claim 16 , wherein the PCI device includes one of a PCIe endpoint, a PCIe switch, or a PCIe bridge.
18. The computer system of claim 16 , wherein the fixed memory-mapping control block is less than 100 bytes.
19. The computer system of claim 16 , wherein a base address register in a configuration register of the PCI device includes a start address of the fixed memory-mapping control block or a start address of the dynamic data-access memory block.
20. The computer system of claim 19 , wherein the dynamic data-access memory block is no larger than 16 megabytes.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.