Home | Links | Contact Us | More About Intellectual Property | Bookmark
Search patents:
Home File Sharing Memory-controller-with-priority-queues

 System and method for queuing of tasks in a multiprocessing system
OF THE INVENTION The block diagram of FIG. 1 illustrates a multi-node network 10 configured as a ...


 System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
The problems outlined above are in large part solved by a device and method for improving memory ...


 Load and store unit for a vector processor
A load/store unit within a vector processor services memory requests to load or store vectors (...


 Smart buffer size adaptation apparatus and method
The present invention is directed toward a data communication system, comprising a frame processing ...


 Creation and use of control information associated with packetized network data by protocol drivers and device drivers
OF THE PREFERRED EMBODIMENTS As used herein, the term "software component" refers to any set of ...


 Reconfigurable computing architecture for providing pipelined data paths
The present invention is a reconfigurable data path whose functionality is controlled by a ...


 Multiple thread multiple data predictive coded parallel processing system and method
Accordingly, it is an object of the present invention to process large quantities of data with a ...


 Distributed data dependency stall mechanism
The invention resides in allowing each probe queue in a multiprocessor computer system to be ...


 Method and apparatus for arbitrating between command streams
The present invention provides a method and apparatus for arbitrating between command streams. In ...


 Computer with remote wake up and transmission of a status packet when the computer fails a self test
The failure of a component of a computer upon the awakening of the computer is brought to the ...


 Memory controller with priority queues

Details
Inventors: Williams, James B.;
Assignee: Hewlett-Packard Co. (Palo Alto, CA)
Primary Examiner: Chan; Eddie P.
Assistant Examiner: Kim; Hong C.
Attorney, Agent or Firm:

A memory controller receives reads, memory writes, and cache writes. A pending read is selected and issued to memory. When a response is received from memory, all cache writes are checked to determine whether any correspond to the pending read. If there is a corresponding cache write, the data from the corresponding cache write is used to respond to the pending read. Otherwise, prior memory writes arc checked to determine whether any correspond to the pending read. If there is a corresponding prior memory write, the data from the corresponding prior memory write is used to respond to the pending read. A coherency check from associated caches may also be performed, and the appropriate data returned to the processor that requested the read. Three queues may control the order in which memory access is performed. A read queue that contains read requests is typically given highest priority, and therefore reads are generally serviced first. A wait queue contains read requests and memory write requests, and is incremented to the pending read before the pending read is completed. As the wait queue is incremented, memory writes from the wait queue are entered onto a ready queue. Each request retrieved from the wait queue is checked against pending requests in the ready queue. Cache writes are entered directly onto the ready queue. When either a conflict is detected for the pending ready, or when the ready queue contains a certain amount of requests, the ready queue is flushed.

DETAILED DESCRIPTION In an illustrative embodiment of the invention, a memory controller receives reads, memory writes, and cache writes.
A pending read is selected and issued to memory.
When a response is received from memory, all cache writes are checked to determine whether any correspond to the pending read.
If there is a corresponding cache write, the data from the corresponding cache write is used to respond to the pending read.
If there is not a corresponding cache write, then prior memory writes are checked to determine whether any correspond to the pending read.
If there is a corresponding prior memory write, the data from the corresponding prior memory write is used to respond to the pending read.
A coherency check from associated caches may also be performed, and the appropriate data returned to the processor that requested the read.
In another illustrative embodiment of the invention, a memory controller includes three queues to control the order in which memory access is performed.
A read queue that contains read requests is typically given highest priority, and therefore reads are generally serviced first.
A wait queue contains read requests and memory write requests, and is incremented to the pending read before the pending read is completed.
As the wait queue is incremented, memory writes from the wait queue are entered onto a ready queue.
Each request retrieved from the wait queue is checked against pending requests in the ready queue.
Cache writes are entered directly onto the ready queue.
When either a conflict is detected for the pending ready, or when the ready queue contains a certain amount of requests, the ready queue is flushed.
Flushing the ready queue includes retrieving the next request from the ready queue, checking the next request against requests in the wait queue for conflicts, and performing the request.



Related patents
  Multiple register bank system for concurrent I/O operation in a CPU datapath
The invention relates generally to computers and, more particularly, to the central processing unit (CPU) of a register-based computer. General purpose register-based ...
  Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
A processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions is described. The invention includes a predetermined ...
  Lock control for a shared main storage data processing system
The object of the present invention is to provide an improved lock control for sharing a main storage. Another object of the present invention is to provide a lock ...
  Distributed processing memory chip with embedded logic having both data memory and broadcast memory
The present invention provides computer memory chips which include internal computational logic and secondary memory that may be broadcast to in all chips simultaneously ...
  Method and apparatus for locally generating addressing information for a memory access
The present invention overcomes many of the disadvantages of the prior art by providing a system whereby a processor or the like need not provide an address to a memory ...
  System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
Thus, a general purpose of the present invention is to provide a peripheral I/O controller supporting multiple, parallel variable bandwidth data streams over a high ...
  Interface device connected between a LAN and a printer for outputting formatted debug information about the printer to the printer
The aforementioned problems are addressed by the present invention in which formatted debug information is output by a network device to an image forming apparatus to ...
  Asynchronous transfer mode based service consolidation switch
From the foregoing, a need has arisen for a telecommunications switch that integrates a variety of services through an asynchronous transfer mode based operation. In ...
  Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
Embodiments of the present invention provide a transaction ordering mechanism for processor-based computing systems which ensures proper ordering of transactions between ...
  Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
A method and apparatus for providing local control of processing elements in a network of multiple context processing element are provided. According to one aspect of ...

0.004

Archive: All patents - Links

Copyright (c)2006 Eipa-patents.org - All rights reserved