US2013061010A1PendingUtilityA1

Ordering write bursts to memory

Assignee: JUNIPER NETWORKS INCPriority: Apr 16, 2007Filed: Oct 31, 2012Published: Mar 7, 2013
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-modified
1 - 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.