High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
First Claim
1. A method of improving performance for a computer processor, said method comprising:
- receiving in an input/output processor data and a memory access instruction from said computer processor, said memory access instruction identifying a type of memory storage task from a group of more than one different memory storage task;
analyzing said memory access instruction in said input/output processor to identify said type of memory storage task;
if said type of memory storage task comprises a counter adjustment thenupdating a value containing recent adjustments to said counter in a higher-speed memory, andupdating a full version of said counter in a slower-speed memory if an overflow of said value containing recent adjustments to said counter occurs; and
if said type of memory storage task comprises a write to a FIFO queue thenstoring said data in a queue tail of said FIFO queue in said higher-speed memory, andmoving data from said queue tail to a queue body of said FIFO queue in said slower-speed memory if said queue tail is filled.
5 Assignments
0 Petitions
Accused Products
Abstract
An input/output processor for speeding the input/output and memory access operations for a processor is presented. The key idea of an input/output processor is to functionally divide input/output and memory access operations tasks into a compute intensive part that is handled by the processor and an I/O or memory intensive part that is then handled by the input/output processor. An input/output processor is designed by analyzing common input/output and memory access patterns and implementing methods tailored to efficiently handle those commonly occurring patterns. One technique that an input/output processor may use is to divide memory tasks into high frequency or high-availability components and low frequency or low-availability components. After dividing a memory task in such a manner, the input/output processor then uses high-speed memory (such as SRAM) to store the high frequency and high-availability components and a slower-speed memory (such as commodity DRAM) to store the low frequency and low-availability components. Another technique used by the input/output processor is to allocate memory in such a manner that all memory bank conflicts are eliminated. By eliminating any possible memory bank conflicts, the maximum random access performance of DRAM memory technology can be achieved.
102 Citations
6 Claims
-
1. A method of improving performance for a computer processor, said method comprising:
-
receiving in an input/output processor data and a memory access instruction from said computer processor, said memory access instruction identifying a type of memory storage task from a group of more than one different memory storage task; analyzing said memory access instruction in said input/output processor to identify said type of memory storage task; if said type of memory storage task comprises a counter adjustment then updating a value containing recent adjustments to said counter in a higher-speed memory, and updating a full version of said counter in a slower-speed memory if an overflow of said value containing recent adjustments to said counter occurs; and if said type of memory storage task comprises a write to a FIFO queue then storing said data in a queue tail of said FIFO queue in said higher-speed memory, and moving data from said queue tail to a queue body of said FIFO queue in said slower-speed memory if said queue tail is filled. - View Dependent Claims (2, 3, 4, 5, 6)
-
Specification