US2013061010A1PendingUtilityA1
Ordering write bursts to memory
Est. expiryApr 16, 2027(~0.7 yrs left)· nominal 20-yr term from priority
G06F 13/1626G06F 13/1642G06F 12/0615G06F 12/0607G06F 13/1647G06F 13/1652
55
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A device may receive requests intended for a memory that includes a number of banks, determine a number of the requests intended for each of the banks, determine an order for the requests based on the determined number of the requests intended for each of the banks, and send one of the requests to the memory based on the determined order.
Claims
exact text as granted — not AI-modified1 - 21 . (canceled)
22 . A method, comprising:
receiving, by a device, requests intended for a memory that includes a plurality of banks; determining, by the device, a quantity of the requests intended for each bank, of the plurality of banks, based on addresses associated with the requests; determining, by the device, an order for servicing the requests based on the determined quantity of the requests intended for each bank of the plurality of banks; generating, by the device, information that indicates an availability of each bank of the plurality of banks during a particular clock cycle; determining, by the device and after determining the order for servicing the requests, whether a particular bank, of the plurality of banks, is available during the particular clock cycle,
the particular bank being associated with a particular request of the requests,
the particular request being first in the determined order, and
determining whether the particular bank is available being based on a portion of the information that indicates the availability of the particular bank; and
servicing, by the device and during the particular clock cycle, the particular request intended for the particular bank when the particular bank is available.
23 . The method of claim 22 , further comprising:
analyzing a packet to determine information from the packet,
the information from the packet including at least one of a source address or a destination address;
processing the information from the packet,
processing the information from the packet including writing data to one or more of the plurality of banks,
one or more of the requests being associated with writing the data; and
routing the packet based on a result of processing the information from the packet.
24 . The method of claim 23 , where the one or more of the requests include one or more write requests.
25 . The method of claim 22 , where determining the quantity of the requests intended for each bank of the plurality of banks based on the addresses associated with the requests includes:
determining a location, in the memory, of each bank, of the plurality of banks, based on a particular quantity of a corresponding address, of the addresses, and a ceiling function.
26 . The method of claim 25 , where the ceiling function includes a base-2 logarithm.
27 . The method of claim 22 , where determining the quantity of the requests intended for each bank of the plurality of banks includes:
determining the quantity of the requests intended for each bank of the plurality of banks during the particular clock cycle.
28 . The method of claim 22 , further comprising:
determining whether another bank, of the plurality of banks, is available during the particular clock cycle when the particular bank is unavailable,
the other bank being associated with another request of the requests, and
the other request being second in the determined order, and
determining whether the other bank is available including determining whether the other bank is available based on another portion of the information that indicates the availability of the other bank.
29 . The method of claim 28 , further comprising:
determining that the other bank is available during the particular clock cycle; and servicing, during the particular clock cycle, the other request for the other bank based on determining that the other bank is available during the particular clock cycle.
30 . A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions which, when executed by one or more processors, cause the one or more processors to receive requests intended for a plurality of banks of a memory; one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine a quantity of the requests intended for each bank, of the plurality of banks, based on addresses associated with the requests; one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine an order for servicing the requests based on the determined quantity of the requests intended for each bank of the plurality of banks; one or more instructions which, when executed by the one or more processors, cause the one or more processors to generate information that indicates an availability of each bank of the plurality of banks during a particular clock cycle; and one or more instructions which, when executed by the one or more processors, cause the one or more processors to service a particular request, of the requests, based on a rank of the particular request in the determined order,
the particular request being intended for a particular bank of the plurality of banks, and
the particular request being serviced when a portion of the information indicates that the particular bank is available during the particular clock cycle.
31 . The non-transitory computer-readable medium of claim 30 , where the one or more instructions to determine the quantity of the requests intended for each bank of the plurality of banks based on the addresses associated with the requests include:
one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine a location, in the memory, of each bank of the plurality of banks based on a particular quantity of bits of a corresponding address of the addresses.
32 . The non-transitory computer-readable medium of claim 31 , where the one or more instructions to determine the quantity of the requests intended for each bank of the plurality of banks based on the addresses associated with the requests include:
one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine the location, in the memory, each bank of the plurality of banks further based on a ceiling function, where the ceiling function includes a base-2 logarithm.
33 . The non-transitory computer-readable medium of claim 30 , where the one or more instructions to receive the requests intended for the plurality of banks of the memory include:
one or more instructions which, when executed by the one or more processors, cause the one or more processors to receive the requests intended for the plurality of banks of the memory until a particular quantity of requests is received.
34 . The non-transitory computer-readable medium of claim 33 , where the quantity of the requests intended for each bank, of the plurality of banks, is determined after the particular quantity of requests is received.
35 . The non-transitory computer-readable medium of claim 30 , where the information, that indicates an availability of each bank of the plurality of banks, includes a plurality of bits,
each bit of the plurality of bits:
identifying a corresponding bank of the plurality banks, and
indicating the availability of the corresponding bank.
36 . The non-transitory computer-readable medium of claim 30 , where each bank, of the plurality of banks, is associated with a corresponding counter of a plurality of counters,
where a value of each counter, of the plurality of counters, indicates an amount of the requests pending for a corresponding bank of the plurality of banks, and where the one or more instructions to determine the order for servicing the requests include:
one or more instructions which, when executed by the one or more processors, cause the one or more processors to determine the order for servicing the requests based on the value of the counter associated with each bank of the plurality of banks.
37 . The non-transitory computer-readable medium of claim 30 , where each bank, of the plurality of banks, is associated with a corresponding counter of a plurality of counters,
where a value of each counter, of the plurality of counters, indicates an amount of clock cycles to wait before accessing a corresponding bank of the plurality of banks, and where the one or more instructions to generate the information that indicates the availability of each bank of the plurality of banks include:
one or more instructions which, when executed by the one or more processors, cause the one or more processors to generate the information that indicates the availability of each bank of the plurality of banks based on the value of the counter associated with the bank.
38 . A device comprising:
a memory to store instructions; and a processor to execute the instructions to:
receive requests intended for a plurality of banks of the memory,
determine a quantity of the requests intended for each bank, of the plurality of banks, based on addresses associated with the requests,
determine an order for servicing the requests based on the determined quantity of the requests intended for each bank of the plurality of banks,
generate information that indicates an availability of each bank of the plurality of banks during a particular clock cycle, and
service a particular request, of the requests, based on a rank of the particular request in the determined order,
the particular request being intended for a particular bank of the plurality of banks, and
the particular request being serviced when a portion of the information indicates that the particular bank is available during the particular clock cycle.
39 . The device of claim 38 , where the processor is further to:
generate other information that indicates an availability of each bank of the plurality of banks during another clock cycle; determine the availability of another bank, of the plurality of banks, during the other clock cycle,
the other bank being associated with another request of the requests, and
the availability of the other bank being determined based on a portion of the other information that indicates the availability of the particular bank; and
service, during the other clock cycle, the other request for the other bank when the other bank is available.
40 . The device of claim 38 , where, when determining the quantity of the requests intended for each bank of the plurality of banks based on the addresses associated with the requests, the processor is to:
determine a location, in the memory, of each bank of the plurality of banks based on a particular quantity of bits of a corresponding address of the addresses.
41 . The device of claim 38 , where the processor is further to:
determine that the particular bank is unavailable during the particular clock cycle, determine whether another bank, of the plurality of banks, is available during the particular clock cycle based on determining that the particular bank is unavailable,
the other bank being associated with another request of the requests, and
the other request being second in the determined order, and
when determining whether the other bank is available, the processor is to determine whether the other bank is available based on another portion of the information that indicates the availability of the other bank, and
service, during the particular clock cycle, the other request for the other bank when the other bank is available.Join the waitlist — get patent alerts
Track US2013061010A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.