IP Library › Granted Patent US 9,898,206
Granted Patent B2
US 9,898,206 · App. 15/017,081 · Granted Feb 20, 2018

Memory access processing method, apparatus, and system

Inventors: Dongrui Fan (Beijing, CN); Fenglong Song (Beijing, CN); Da Wang (Beijing, CN); Xiaochun Ye (Beijing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0611G06F3/0656G06F3/0683G06F9/3824
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,898,206
App. No.
15/017,081
Granted
Feb 20, 2018
Kind
B2
Abstract

A memory access processing method and apparatus, and a system. The method includes receiving a memory access request sent by a processor, combining multiple memory access requests received within a preset time period to form a new memory access request, where the new memory access request includes a code bit vector corresponding to memory addresses. A first code bit identifier is configured for the code bits that are in the code bit vector and corresponding to the memory addresses accessed by the multiple memory access requests. The method further includes sending the new memory access request to a memory controller, so that the memory controller executes a memory access operation on a memory address corresponding to the first code bit identifier. The method effectively improves memory bandwidth utilization.

Claims (78)

1. A memory access request processing method implemented by a memory access processing apparatus, the method comprising:

receiving a first memory access request and a second memory access request, wherein a length of a first memory address of the first memory access request and a second memory address of the second memory access request is A bits;

combining the first memory access request and the second memory access request to form a third memory access request, wherein the third memory access request comprises a code bit vector comprising:

N code bits comprising a first code bit corresponding to the first memory address and indicating the first memory access request and a second code bit corresponding to the second memory address and indicating the second memory access request,

a memory access granularity of L bytes,

a base address of the first memory address and the second memory address and comprising (A−log 2 (N*L)) bits, and

a memory access request type; and

sending the third memory access request to a memory controller.

2. The method according to claim 1 , wherein the combining comprises:

collecting, to a row of an address index table, the first memory access request and the second memory access request, wherein the row comprises the memory access request type, the base address, the memory access granularity, and the code bit vector; and

extracting the memory access request type, the base address, the memory access granularity, and the code bit vector from the row to form the third memory access request.

3. The method according to claim 1 , wherein when the memory access request type is a read memory operation, after the sending, the method further comprises:

writing data returned after the memory controller executes the read memory operation according to the third memory access request to a cache integrated in the processor; and

updating the first code bit identifier.

4. The method according to claim 1 , wherein when the memory access request type is a write memory operation, after sending the third memory access request to a memory controller, the method further comprises:

sending data corresponding to the write memory operation and read from a cache of the processor to the memory controller; and

updating the first code bit identifier.

5. The method according to claim 1 , further comprising:

determining, by a processing logic, that the first memory address is in a programmable on-chip memory (POM) address space;

sending, by the processing logic, the first memory access request to an address selector; and

sending, by the address selector, the first memory access request to the POM.

6. A memory access processing apparatus comprising:

a processor; and

a memory coupled to the processor and comprising a plurality of instructions, that when executed by the processor, cause the processor to:

receive a first memory access request and a second memory access request, wherein a length of a first memory address of the first memory access request and a second memory address of the second memory access request is A bits;

combine the first memory access request and the second memory access request to form a third memory, access request, wherein the third memory access request comprises a code bit vector comprising:

N code bits comprising a first code bit corresponding to the first memory address and indicating the first memory access request and a second code bit corresponding to the second memory address and indicating the second memory access request,

a memory access granularity of L bytes,

a base address of the first memory address and the second memory address and comprising (A−log 2 (N*L)) bits, and

a memory access request type; and

send the third memory access request to a memory controller.

7. The apparatus according to claim 6 , wherein the instructions further cause the processor to:

collect, to a row of an address index table, the first memory access request and the second memory access request, wherein the row comprises the memory access request type, the base address, the memory access granularity, and the code bit vector; and

extract the memory access request type, the base address, the memory access granularity, and the code bit vector from the row to form the third memory access request.

8. The apparatus according to claim 6 , wherein when the memory access request type is a read memory operation, the instructions further cause the processor of the apparatus to:

write data returned after the memory controller executes the read memory operation according to the third memory access request to a cache integrated in the processor; and

update the first code bit identifier.

9. The apparatus according to claim 6 , wherein when the memory access request type is a write memory operation, the instructions further cause the processor of the apparatus to:

send data corresponding to the write memory operation and read from a cache of the processor to the memory controller; and

update the first code bit identifier.

10. A memory access system comprising:

a processor;

an off-chip memory coupled to the processor;

a memory controller; and

a memory access processing apparatus coupled to the processor and the memory controller and configured to:

receive a first memory access request and a second memory access request that are sent by the processor, wherein a length of a first memory address of the first memory access request and a second memory address of the second memory access request is A bits:

combine the first memory access request and the second memory access request to form a third memory access request, wherein the third memory access request comprises a code bit vector comprising:

N code bits comprising a first code bit corresponding to the first memory access request and a second code bit corresponding to the second memory access request,

a memory access granularity of L bytes,

a base address of the first memory address and the second memory address and comprising (A−log 2 (N*L)) bits, and

a memory access request type; and

send the third memory access request to the memory controller,

wherein the memory controller is configured to:

receive the third memory access request;

obtain, by parsing the third memory access request, the first memory address and the second memory address; and

execute a memory access operation on the first memory address and the second memory address.

11. The system according to claim 10 , wherein the memory access processing apparatus is further configured to:

collect, to a row of an address index table, the first memory access request and the second memory access request, wherein the row comprises the memory access request type, the base address, the memory access granularity, and the code bit vector; and

extract the memory access request type, the base address, the memory access granularity, and the code bit vector from the row to form the third memory access request.

12. The system according to claim 10 , wherein when the memory access request type is a read memory operation, the memory controller is further configured to:

parse the third memory access request to obtain the first memory address;

read data stored in the first memory address, and

return the data to the memory access processing apparatus, and

wherein the memory access processing apparatus is further configured to:

write the data to a cache integrated in the processor; and

update the first code bit identifier.

13. The system according to claim 10 , wherein when the memory access request type of the third memory access request is a write memory operation, the memory access processing apparatus is further configured to:

send data corresponding to the write memory operation and read from a cache of the processor to the memory controller; and

update the first code bit identifier, and

wherein the memory controller is further configured to:

parse the third memory access request to obtain the first memory address; and

write the data to the first memory address.

14. The system according to claim 10 , further comprising:

a programmable on-chip memory (POM);

a processing logic configured to

determine that the first memory address is in an address space of the POM; and

send the first memory access request to the address selector; and

an address selector configured to send the first memory access request to the POM.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2016
From: FAN, DONGRUI; SONG, FENGLONG; WANG, DA; YE, XIAOCHUN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 038138/0622 →
Priority Claims (1)
CN 2013 1 0339295 · Aug 6, 2013 · national
Continuity (2)
Continuation PCTCN2014083322 · Jul 30, 2014
Related Publication 20160154590A1 · Jun 2, 2016