Memory manager for a common memory

Electrical computers and digital processing systems: memory – Storage accessing and control – Shared memory area

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S147000, C711S148000, C711S151000, C711S153000, C710S039000, C710S057000

Reexamination Certificate

active

06799254

ABSTRACT:

TECHNICAL FIELD
This invention relates to memory management technology for controlling access to and monitoring availability of memory resources. More particularly, this invention relates to memory management technology for managing memory access requests to a common memory shared by multiple requesting entities.
BACKGROUND
A typical computer system includes one or more common memory systems. Illustrated at
200
of
FIG. 1
is a portion of such a computer system. This portion of a computer system illustrates memory resources that are shared by multiple devices and sub-systems.
In particular, the focus here is on primary memory rather than secondary memory. Examples of such primary memory include RAM, ROM, DRAM, SRAM, and other such physical memories. Herein, primary memory may be generally called “RAM”, “main memory”, or “system memory.”
Such primary memory includes physical memory, which, for example, refers to the actual chips capable of holding data. Primary memory does not include virtual memory, which expands physical memory onto secondary memory. Examples of secondary memory includes hard drives, floppy disks, CD-ROM, or any other memory where memory access is significantly slower than that of primary memory.
Common Memory
Primary memory is often shared amongst multiple devices and sub-systems. This shared memory may be called a “common memory,” such as common memory subsystem
201
. The devices and sub-systems that may access the memory are generally called “agents” or “entities.” Examples of agents are shown in
FIG. 1
, they include processor(s)
202
, communications (Input\Output or I\O) device(s)
204
, disk controller(s)
203
, other hardware devices
205
(such as memory scrubbers), and the like. Each of these agents may send an access request to the common memory subsystem
201
in system
200
when an agent wishes to read from or write to memory.
FIG. 2
shows a general schematic view of components of common memory subsystem
201
. In particular, the subsystem
201
includes an I/O unit
220
, other memory hardware
224
, and a memory
230
. As the name suggests, the I/O unit
220
handles the subsystem's communications with agents. The memory
230
is the core of the subsystem. This is the actual memory. The other memory hardware
224
handles any other tasks that need to be performed, such as facilitating output of data from the memory
230
and facilitating access requests to the memory. These access requests typically involve a combination of tasks. Such tasks include one or more reads from and one or more writes to the memory.
To provide order to otherwise unregulated access to the common memory
230
, the other memory hardware
224
may employ a memory management strategy. The most common strategy is to simply place all requests into a FIFO (first-in, first-out) queue. Therefore, in the order in which requests are received, each request gets to use the memory to perform its tasks.
Latency
Latency is the measure of time between the moment when a memory request is made until the moment that the result of such request is returned to the requesting agent. If an agent has its own memory that is unshared, one would expect the latency for a specified task to be the same each time that task is performed. However, when there is a memory shared amongst many agent, then the latency of such a task varies depending upon how long the task must wait to have access to the common memory.
Agents time-share the common memory subsystem
201
. This means that each agent gets a slice of time to perform its tasks (as it has requested). If one assumes that there are agents waiting to use the memory, some of these uses are more urgent than other uses. Therefore, it is desirable to minimize such latency—particularly for such urgent uses.
There are other reasons a request to access memory may be delayed. There is additional waiting when the operational speeds of the memory subsystem
201
, the agents
202
-
205
, and the links between the subsystem and agents are not in-sync. For example, a processor may operate at 500 MHz, its link (called a bus) to the memory subsystem may operate at 100 MHz, and the memory subsystem may operate at 300 MHz. In this example, the components and links are operating at different speeds; therefore, there may be gaps between tasks performed by an access request.
Furthermore, additional delay is occurs because the memory's access protocol, which controls access to the memory. This protocol consumes several clock cycles to initiate and perform each read from memory. Likewise, it consumes several clock cycles to initiate and perform each write to memory. These clock cycles are merely overhead where no working data is read from or written to memory.
SUMMARY
Described herein is an improved memory management technology for controlling access to and monitoring availability of common memory resources. In particular, this hardware-based, memory-management technology manages memory access requests to a common memory shared by multiple requesting entities. This includes prioritizing and arbitrating such requests. It further includes minimizing latency of such requests.
This summary itself is not intended to limit the scope of this patent. For a better understanding of the present invention, please see the following detailed description and appending claims, taken in conjunction with the accompanying drawings. The scope of the present invention is pointed out in the appending claims.


REFERENCES:
patent: 5253352 (1993-10-01), Olson
patent: 5278984 (1994-01-01), Batchelor
patent: 5588134 (1996-12-01), Oneto et al.
patent: 5603063 (1997-02-01), Au
patent: 5748901 (1998-05-01), Afek et al.
patent: 5796735 (1998-08-01), Miller et al.
patent: 5911051 (1999-06-01), Carson et al.
patent: 5924110 (1999-07-01), Pike et al.
patent: 5937205 (1999-08-01), Mattson et al.
patent: 5938723 (1999-08-01), Hales et al.
patent: 5948081 (1999-09-01), Foster
patent: 6092158 (2000-07-01), Harriman et al.
patent: 6175889 (2001-01-01), Olarig
patent: 6209065 (2001-03-01), Van Doren et al.
patent: 6240492 (2001-05-01), Foster et al.
patent: 6272584 (2001-08-01), Stancil
patent: 6279087 (2001-08-01), Melo et al.
patent: 6317806 (2001-11-01), Audityan et al.
patent: 6341301 (2002-01-01), Hagan
patent: 6434641 (2002-08-01), Haupt et al.
patent: 6496740 (2002-12-01), Robertson et al.
patent: 6523060 (2003-02-01), Kao

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Memory manager for a common memory does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Memory manager for a common memory, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Memory manager for a common memory will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3247772

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.