WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Modified snapshot priority enabling two requestors to share a single memory port    
United States Patent4648065   
Link to this pagehttp://www.wikipatents.com/4648065.html
Inventor(s)Zenk; Daniel K. (Stillwater, MN); Trost; John R. (Coon Rapids, MN)
AbstractIn an n-wide (n nominally equals 4) snapshot priority network apparatus the access of n+1 requestors to a memory unit is prioritized. Two requestors--the lowest priority one of normal system requestors called instruction processors plus a maintenance exerciser type requestor--share a single memory port which is nominally the lowest priority one of n such prioritized ports. Requests from both requestors are both honored upon a single priority snap, the instruction processor request nominally proceeding before the maintenance processor request. Although the n-wide priority network remains generally faster than any (n+1)-wide priority network, the maintenance exerciser type requestor is expediently serviced and cannot be locked out of access to memory by the competing higher priority requests of the instruction processor.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4648065
Modified snapshot priority enabling two requestors to share a single

     memory port - US Patent 4648065 Drawing
Modified snapshot priority enabling two requestors to share a single memory port
Inventor     Zenk; Daniel K. (Stillwater, MN); Trost; John R. (Coon Rapids, MN)
Owner/Assignee     Sperry Corporation (New York, NY)
Patent assignment
All assignments
Publication Date     March 3, 1987
Application Number     06/630,141
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 12, 1984
US Classification     711/151 711/149
Int'l Classification     G06F 013/18
Examiner     Thomas; James D.
Assistant Examiner     Ure; Michael J.
Attorney/Law Firm     Johnson; Charles A. Marhoefer; Lawrence J. ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 364/900 364/200 MS File 364/900 MS File
Patent Tags     modified snapshot priority enabling two requestors share single memory port
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4493036
Boudreau
710/244
Jan,1985

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A modification to a priority circuit apparatus within a digital memory unit to the end that two requestor-users of said digital memory unit should share a single port out of n such ports, the request signals to which ports are prioritized within said priority circuit, said priority circuit apparatus modification comprising;

n+1 priority flip-flop means for receiving on n+1 ports, the respective requests of n+1 requestor means, and for holding said requests until each request is respectively individually cleared;

combining means for receiving and combining two of the requests as are held within two of said n+1 priority flip-flop means, producing thereby a single one combined request;

n-wide prioritization means for prioritizing (collectively during such time as said requests are held) said single one combined request, plus the remaining n-1 requests as are held within the remaining n-1 priority flip-flop means which are the n+1 priority flip-flop means minus said two priority flip-flop means, thusly prioritizing n total requests to form n prioritized requests;

prioritized request acknowledgement means for sequentially receiving upon consecutive times said n prioritized requests and for producing acknowledgements to each such upon so many consecutive times as each may be held;

priority flip-flop clearing means for receiving said acknowledgements upon consecutive times from said prioritized request acknowledgement means and, responsively to the acknowledgements of the n-1 of said n prioritized requests which did arise from said remaining n-1 priority flip-flop means, for clearing upon each of n-1 acknowledgements upon n-1 times said remaining n-1 priority flip-flop means WHILE ALSO for receiving the acknowledgements upon consecutive times of that particular one of said n prioritized requests which did arise from said single one combined request and for, upon a first acknowledgement upon a first consecutive time, clearing a first one of said two of said n+1 priority flip-flop means and then, upon a next consecutive second acknowledgement upon a second consecutive time, clearing said second one of said two of said n+1 priority flip-flop means;

WHEREIN said clearing means do ultimately responsively to n+1 total acknowledgements upon n+1 consecutive times cause the clearing of n+1 requests having been prioritized as (a combined two) plus (a remaining n-1) in n-wide prioritization means and presented as n prioritized requests respectively on (n-1 times) plus (two times), thusly on a total of n+1 consecutive times, to prioritized request acknowledgement means which did acknowledge said n+1 consecutive times of presentation with n+1 acknowledgements.

2. The priority circuit apparatus modification of claim 1 wherein said combining means further comprises:

combining means for receiving and combining the request of an instruction processor type requestor-user which is held within a first, and the request of a maintenance exerciser type requestor-user which is held within a second, of said n+1 priority flip-flop means, producing thereby a single one combined request.

3. The priority circuit apparatus modification of claim 1 wherein n=4.
 Description Submit all comments and votes
 


REFERENCE TO RELATED APPLICATIONS

CONTENTS

BACKGROUND OF THE INVENTION

A. Field of the Invention

B. Description of the Prior Art

SUMMARY OF THE INVENTION

BRIEF DESCRIPTION OF THE DRAWINGS

DESCRIPTION OF THE PREFERRED EMBODIMENT

A. The Present Invention Resides in a High Performance Storage Unit (HPSU)

B. The Problem Solved by the Present Invention

C. General Description of the HPSU

D. Detailed Description of the HPSU Block Diagram

E. Timing of the HPSU Within Which the Circuit Apparatus of the Present Invention Resides

F. The Circuit Apparatus of the Present Invention

G. Timing Diagram of the Operation of the Present Invention

CLAIMS

ABSTRACT

REFERENCE TO RELATED APPLICATIONS

The instant application claims subject matter related to, and a circuit apparatus contained within a memory apparatus taught within, another patent application filed on Apr. 2, 1984, the other application being further identified as: U.S. Ser. No. 596,130 entitled "High Performance Storage Unit", filed in the name of J. H. Scheuneman.

The instant application also claims subject matter disclosed in a related application filed on the same day as the instant application, such other related application being further identified as:

U.S. Ser. No. 630,140 entitled "Forced Clear of a Memory Time-Out to a Maintenance Exerciser" filed in the names of D. K. Zenk, et al., now U.S. Pat. No. 4,590,586.

All three applications are assigned to common assignee Sperry Corporation, a corporation of the State of Delaware having a place of business at 1290 Avenue of the Americas, New York, New York 10019.

The instant application is related to the following co-pending patent applications:

Title: MULTIPLE OUTPUT PORT MEMORY STORAGE MODULE

Inventor: James H. Scheuneman and Gary D. Burns

Ser. No.: 596,214

Filed: Apr. 2, 1984

Title: READ ERROR THROUGH-CHECKING SYSTEM

Inventor: James H. Scheuneman Ser. No.: 354,340

Filed: Mar. 2, 1982, now abandoned

Title: READ ERROR OCCURRENCE DETECTOR FOR ERROR CHECKING AND CORRECTING SYSTEMS

Inventors: Gary D. Burns and Scott D. Schaber Ser. No. 464,184, now U.S. Pat. No. 4,523,314

Filed Feb. 1, 1983

Title: MULTIPLE UNIT ADAPTER

Inventor: James H. Scheuneman

Ser. No.: 596,205

Filed: Apr. 2, 1984

Title: A PRIORITY REQUESTER ACCELERATOR

Inventors: John R. Trost and Daniel Zenk

Ser. No.: 530,285

Filed: Aug. 31, 1983

Title: PARTIAL DUPLEX OF PIPELINED STACK WITH DATA INTEGRITY CHECKING

Inventor: James H. Scheuneman, et al.

Ser. No.: 595,864

Filed: Apr. 2, 1984

Title: PIPELINED DATA STACK WITH ACCESS THROUGH-CHECKING

Inventor: James H. Scheuneman

Ser. No.: 596,131

Filed: Apr. 2, 1984

Title: MULTIPLE PORT MEMORY WITH PORT DECODE ERROR DETECTOR

Inventor: James H. Scheuneman

Ser. No.: 596,132

Filed: Apr. 2, 1984

Title: HIGH PERFORMANCE PIPELINED STACK WITH OVER-WRITE PROTECTION

Inventor: Wayne A. Michaelson

Ser. No.: 596,203

Filed: Apr. 2, 1984

Title: AN IMPROVED ACCESS LOCK APPARATUS FOR USE WITH A HIGH PERFORMANCE STORAGE UNIT OF A DIGITAL DATA PROCESSING SYSTEM

Inventors: Daniel K. Zenk and John R. Trost

Ser. No.: 596,202

Filed: Apr. 2, 1984

Title: MULTILEVEL PRIORITY SYSTEM

Inventors: James H. Scheuneman and W. A. Michaelson

Serial No.: 596,206

Filed: Apr. 2, 1984

Title: PIPELINED SPLIT STACK WITH HIGH PERFORMANCE INTERLEAVED DECODE

Inventors: James H. Scheuneman and W. A. Michaelson

Ser. No.: 596,215, now U.S. Pat. No. 4,600,986

Filed: Apr. 2, 1984

All applications are assigned to common assignee Sperry Corporation, a corporation of the state of Delaware having a place of business at 1290 Avenue of the Americas, New York, New York 10019.

BACKGROUND OF THE INVENTION

A. Field of the Invention

The present invention generally concerns the prioritization of requestors utilizing a digital computer memory servicing a plurality of such requestors. The present invention specifically concerns that modification which needs to be made to the snapshot scheme of prioritizing requests to a digital computer memory when two requestors share a single memory port. Since such modification will be seen to allow that requests arising from each such two requestors sharing a said prioritized single memory port will both be honored, in sequence, during a single priority scan, then such modification is not perceived to be of much efficacy over according each such requestor a separate port if (1) the requestors are often in contention and (2) separately prioritized ports are readily available. But if (1) separately prioritized ports are minimized in numbers in order to save time in the priority circuitry prioritizing simultaneous requests received at such, and (2) some two requestors are not often simultaneously contending to request a digital memory, then the modification to memory priority, specifically snapshot priotity, of the present invention which accords that two requestors should share but a single prioritized memory port is efficient in allowing n+1 requestors to utilize an n-wide priority network, and effective in minimizing the delay encountered in a priority network since an n-wide network is generally faster than an (n+1)-wide network. Further specifically, the present invention teaches that a memory maintenance exerciser type requestor, being a requestor generally but infrequently requesting a memory for the purposes of the operational validity checking and maintenance thereof, should share a single memory port with a normal requestor of such memory, nominally called an Instruction Processor, or IP.

B. Description of the Prior Art

The environment of the apparatus and method of the present invention is a very large scale, very high performance, digital computer memory unit such as is described in U.S. patent application Ser. No. 596,130. It is a known maintainability feature in the prior art for very large scale, very high performance, computer memory units that the memory stores of such units should be dynamically partitionable into those dedicated to applications and those upon which, the memory unit remaining on-line, operational validity checking and maintenance may be exercised. The utility of exercising maintenance--being the exercise and validity checking of logic, error correction/detection logic, and memory stores--upon part of the memory stores of a very large scale memory unit while such large scale memory unit is, in the areas of stores not being exercised for maintenance, elsewise devoted to applications operation, is that such maintenance may be often performed with minimum conflict to the system utilization of that system resource, the memory unit, which may be very expensive. The on-line maintenance exercise of parts of the stores of a very large scale memory unit also provides the maximum potential for the detection and isolation of intermittent fault phenomena within the logics of such memory units as well as within those stores of such units detached to on-line maintenance testing.

It is known in the prior art that the maintenance exerciser which administers the regimen of read, write, and partial write on-line testing to a portion of the stores of a high performance memory unit, which memory unit is elsewise involved in servicing systems applications with the other stores contained therein, may be either internal to such memory unit or external to such memory unit. In either case, however, there is usually an external agency to the memory which does both configure the memory for test (i.e., designate which of the memory stores are to be devoted to on-line memory test and which are to be devoted to systems applications) and shepherd the progress of such testing (if not actually administering same), obtaining the results thereof. In other words, even if a maintenance exerciser is internal to a very large scale memory unit, the fault detections of such maintenance exerciser needs be communicated to the computer system, and such computer system needs (if possible) reconfigure such high performance memory unit to operability, through an interface to such high performance memory unit. Such an interface is normally in the prior art a memory port fully capable of normal memory command, read, and write operation. The device connected to such an interface is normally called a maintenance processor, or a System Support Processor(SSP).

It is also known in the prior art that a single memory unit may communicate with a plurality of requestors, and may employ diverse priority schemes in the determination of which of such requestors shall be next serviced. One of such prior art priority schemes for the resolution of access between requestors communicating with a single memory unit is "snapshot" priority determination. In a "snapshot" priority scheme, the total one or ones of requestors which are attempting communication with the memory unit at a particular time will be frozen, or "snapped", into a queue. Such a queue will be completely serviced in priority order before any request not originally "snapped", or any reinstitution of "snapped" requests once serviced, will be registered or considered. Such scheme is tantamount to the taking of a photographic "snapshot" of pending memory requests, and servicing all such requests in priority order prior to the taking of another "snapshot".

An obvious accommodation between the prior art fully-functional ported access which is taken of a memory unit for the purposes of maintenance thereof (including through an internal maintenance exerciser operating on-line to the normal system operation of such memory unit) and a snapshot priority scheme at the requestor's interface to such memory unit is that the maintenance port, and the maintenance processor or system support processor requestor connected thereto, should be handled in such snapshot priorities equivalently to other system requestor types. Such is generally the scheme in the prior art, and it may be noted that the maintenance port is, in accordance with the test function performed thereon, normally accorded the lowest system priority in the snapshot or any other memory priority scheme.

It is also known in the prior art to configure a snapshot priority scheme so that requests from the exerciser and requests from a normal requestor external to such memory will share a single port of access to such memory. The utility of such sharing is that the breadth of the priority determination logics may be narrowed by the fact that the exerciser and a normal requestor do share a single port, and all internal control and data paths of the memory by which the exerciser, whether internal or external, does exercise such memory are, of course, identical to the paths elsewise utilized by the normal requestor sharing the same port of access. The process of "sharing" implies, however, its own, subsidiary, priority determination scheme. In the prior art, this subsidiary priority determination scheme was operationally effective, and was based on historical record keeping. Mainly, requests arising from the exerciser and from the normal requestor with which it shared a port were resolved, as between themselves, before further submission to the normal, snapshot, priority request scheme. A history was kept of each request occurring from the exerciser and from that normal requestor sharing the same port. If both the exerciser and the requestor sharing the same port made requests during the same priority snap, then normally the normal requestor only would be passed to further priority determination, wherein it would be ultimately honored in normal snapshot priority. A history of this occurrence was kept. Upon a next subsequent exerciser report request upon a next subsequent priority snap, such exercise port request would be honored regardless of whether there should be another, subsequent, request from the normal requestor sharing the same port or not. If there was such a next subsequent request from the normal requestor sharing the same port, it would be held waiting until the next priority snap to be gated to snapshot priority in preference over further requests of the exerciser, should such be present. The sharing of a port between an exerciser and a normal requestor thus was accomplished with first one, and then the other, going foremost upon any simultaneous requests from both. In order to determine which one should be foremost at any one time, history keeping of the requests of both was required.

SUMMARY OF THE INVENTION

The present invention is a method and apparatus for the modification of snapshot priority as performed by a memory unit for the prioritization of, and amongst, a plurality of ported requests to read or write such memory unit arising from a like plurality of requestors. In particular, the present invention concerns a modification of such memory snapshot priority as will accord that a normal requestor, making requests to read or write such memory, may share, in a snapshot priority scheme, a single prioritized port of such memory with a maintenance exerciser of such memory. A maintenance exerciser, which may be either internal to or external of, such memory, is but a circuit, or device, which reads or writes the memory, in a conventional manner to the reading or writing of normal memory requestors, to the end that the memory may be tested, and the correct functionality thereof determined. That such a maintenance exerciser, involved in the maintenance of a memory unit, should, at the threshold, share a port of access to such memory with a normal requestor of such memory is desirable because (1) the number of requestors servicable within a snapshot priority space of identical width is augmented by one, (2) the functionality of such memory exercised and validated by the exerciser will be, at least, substantially identical to that functionality of the memory elsewise seen by the requestor which does share the identical port, and (3) the width of the (snapshot) priority determination entwork will be minimized, allowing such network to operate faster.

The present invention permits of the maintenance exerciser and the normal requestor which do share a single port, and therefor but a single entrance into the snapshot priority evaluation scheme of a memory unit, to both be honored in a single priority snap. With the present invention, no history keeping concerning the honoring of competing requests from the exerciser and from the normal requestor sharing the same port needs be kept. Also, because both the exerciser request and that arising from the normal requestor sharing the same port will be honored within the same priority snap, a quicker average response to both such exerciser and such normal requestor is obtained than if the access of one such, either the exerciser or the normal requestor, to memory was alternately to be delayed until the next successive priority snap.

The circuit of the present invention functions to modify normal snapshot priority within a memory unit to cause that, upon such times as an exerciser and a normal requestor request are both present upon the same port, the normal requestor will be (first) honored, and the exerciser will be (next) honored both within the same priority snap. Such is accomplished by postponing a new priority snapshot for such additional time as will accord that both the requests of the exerciser and of that normal requestor which do share a single port of access into such snapshot priority may be honored within the same priority snap.

Consequently, it is a first object of the present invention that a memory unit operative with snapshot priority to honor a plurality of requests occurring on a plurality of ports of such memory unit, one of such ports being shared by both an exerciser and a normal requestor of such memory unit, may perform modified snapshot priority to the end that competing requests between such exerciser and such normal requestor which does share the same port may both be honored within that same priority snap upon which both requests were made.

It is a second, subsidiary, object of the present invention that the modification to snapshot priority of a memory unit which does accord that both an exerciser and a normal requestor which do share a same port into such memory unit may both be honored upon a same priority snap will additionally accord that the normal requestor shall be first satisfied, and then that the exerciser shall be next satisfied, in the satisfaction of both within the same priority snap. When that port which the exerciser and the normal requestor share is the lowest overall priority port within the overall snapshot priority scheme of the memory unit, then this sequence assures that the exerciser requests are of lowest overall priority, meaning last serviced within one priority snap, of all such requests occurring to the memory unit.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1, consisting of FIG. 1a and FIG. 1b, shows a block diagram of the High Performance Storage Unit within which the present invention resides.

FIG. 2 shows a detailed block diagram of the timing of the HPSU in order that it may interface with requestors of two disparate interface communication cycle times.

FIG. 3, consisting of FIG. 3a through FIG. 3c shows a timing diagram of the 8-phase and of the 4-phase clocks which are utilized by different types of requestors in communication with the HPSU, and the possible times of occurrence of the initiation of reading the storage memory bank, and of the gating of the results output therefrom such reading, relative to the clock phases of each of the 4-phase and 8-phase clock timing chains.

FIG. 4, consisting of FIG. 4a and FIG. 4b, shows the circuit schematic of the present invention modifying snapshot priority in order to enable two requestors to share a single memory port.

FIG. 5, consisting of FIG. 5a and FIG. 5b, shows a timing diagram of the operation of the circuit of the present invention shown in FIG. 4.

DESCRIPTION OF THE PREFERRED EMBODIMENT

A. The Present Invention Resides in a High Performance Storage Unit (HPSU)

The present invention resides in, and is utilized in the functional performance of, a High Performance Storage Unit (HPSU) which is the subject of U.S. patent application Ser. No. 596,310, the entire contents of which are incorporated herein by reference. For the sake of completeness, certain of the description of such an HPSU is herein provided.

The HPSU resides in a digital data processing system which is essentially modular, and provides for parallel processing. Normally, from one to four Instruction Processors (IPO through IP3) will be interfaced to the HPSU. Each IP can, for example, be a Type 3054-00 unit available from Sperry Corporation, or such other Instruction Processor available commercially as would be compatible. The IP provides basic mode and extended mode instruction execution, virtual maching capability, and contains two buffer memories: one an operand buffer, and the other an instruction buffer. Each IP is functional to call instructions from memory, execute the instructions, and in general does data manipulation. The IP also executes instructions to set up input and output data buffers and channel access control. It is one of such IP's --specifically IP3--which is one of the two requestors which share a single memory port under the modified snapshot priority apparatus and method of the present invention.

In conjunction with the IPs, from one to four Input/Output Processors (IOP0 through IOP3) are also normally interfaced to the HPSU. The interconnections between the HPSU and the IPs and the IOPs are in fact direct connections between each unit, and the interconnection is not bused. Each IOP can be a Type 3067-00 unit available from Sperry Corporation, or an equivalent type of processor. The IOPs handle all communications between the IPs, and the memory systems, and the peripheral subsystem. In this type of configuration, the IPs function as the system Central Processing Units, and the IOPs act as CPUs to handle all of the communications. The IPs and IOPs are commonly referred to as the 1100/90 system.

From one to four High Performance Storage Units (HPSU0 through HPSU3) can be utilized in a system. Each HPSU is a free-standing unit with eight memory banks, each bank containing 524K storage data words. Error Correction Code (ECC) is used internal to each HPSU to provide single-bit error correction and double-bit error detection.

Each HPSU provides four Instruction Processor (IP) ports for providing communication paths to the IPs, both for reading and writing. Again it should be understood that inter-connection between each HPSU and each IP is directly cabled, and is not bused. Each HPSU also includes four Input/Output Processor (IOP) ports for interconnection with the IOPs. These interconnections are direct cables between each HPSU and each IOP. The IP and the IOP ports are each two-word read and write interfaces, where each word contains 36 data bits and is accompanied by four parity bits. The IOP and IP interfaces operate on a 60 nanosecond interface cycle time.

Each HPSU also includes at least one Scientific Processor (SP) port, and in the embodiment of this disclosure has two such SP ports. Each SP port has a four-word data interface. If a single SP is used with a single HPSU, it may be coupled directly to the SP port of such HPSU. When two or more HPSUs are used with an SP, it is necessary to provide a Multiple Unit Adapter (MUA) for each SP. Regardess of whether or not interfaced through a MUA, each SP interface reads or writes four words, where each word contains 36 data bits and is accompanied by four parity bits, upon each interface cycle time of 30 nanoseconds.

Each SP functions under direction of one or more of the IPs to perform scientific type calculations in a support mode. In this regard, the IPs can be considered to be host processors and the SPs can be considered to be support processors, all operating through the common storage of the HPSU(s).

The overall system maintenance and supervision is accomplished through one or two System Support Processors which are connected to all units of the system. The SSP is available commercially and is utilized in the Sperry Corporation 1100/90 Systems. In general, it is understood that each SSP performs the function of a hardware maintenance panel for the system. The display and setting of information, the activation at most maintenance facilities, selecting modes of operating and the like, is done at the control section of the SSP. The primary maintenance facility of the HPSU which is activated in order to obtain a test of the HPSU operational validity in reading, writing, and storing data is called the maintenance exerciser. Such maintenance exerciser is an internal logical capability of the HPSU, which capability may be implemented by a microprocessor executing firmware, to exercise the memory function. In the preferred embodiment of the invention it is this maintenance exerciser, which does make requests to read and write the memory stores equivalently as if it were a normal requestor and most specifically an IP type requestor, which does, with IP3, share a single memory port under modified snapshot priority within the preferred embodiment of the invention. The existence of an HPSU-internal maintenance exerciser needs not be specified for the utilization of the present invention. Indeed, an external SSP, which is an entire computer and which may be specified to be an IP-type or IP-equivalent computer, may directly perform the detailed test and exercise regimen which is suggested, in the preferred embodiment of the invention, to be better performed by specialized test logic within the HPSU. Indeed, the present invention will serve to allow any two like-type requestors normally communicative with two like-type memory ports to instead share, in the snapshot priority, but a single port. That two requestors should "share" a single port means that either requestor making a request upon such port will be serviced at the priority of such port, and if both requestors do simultaneously make requests upon the single port then, at the priority of such port amongst all ports, first one requestor and then the second requestor will each be sequentially serviced. Such functionality may sound but semantically different than that each such two "port sharing" requestors should each be individually prioritized until it is realized, amongst other things, that the priority network will remain "n" ports wide, and operate at speeds commensurate with the prioritization of "n" ports, while the number of requestors serviced by such priority network will be of number "n +1". In the preferred embodiment of the present invention n=4. Consider also that an (n=4)-wide snapshot priority network exists to prioritize amongst 4 IOP's. When the enhancement circuit of the present invention is utilized, then an identical snapshot priority network may be utilized to prioritize amongst a full 4 IP's plus another requestor, called a maintenance exerciser.

Continuing in the description of the HPSU within which the present invention resides, a clock system is utilized to maintain synchronous operation of the entire system. Clock and synchronizing signals are sent to each IP as well as each HPSU, each IOP, and each SP. The clock interface includes signals and commands from the IP for controlling clock rates, clock mode, cycle count, and other capabilities of the clock.

Intercommunication between units is essentially on a Request and Acknowledge basis, and the interfaces will be described in more detail as appropriate.

B. The Problem Solved by the Present Invention

In the prior art the IP3 and maintenahce exerciser requests to their shared port were processed such that each would not be honored in the same priority snap upon which both requests were registered. In the request scheme, history was kept of each IP3 and maintenance exerciser request. If IP3 and maintenance exerciser both made requests upon same priority snap, then only the IP3 request would be honored. The maintenance exerciser request would then be honored in the next priority snap, regardless if there is an IP3 request or not. If there was an IP3 request, it had to wait until the next priority snap before getting honored. Consequently, history keeping was necessary for IP3 and maintenance exerciser requests in a priority request scheme.

With the use of the present invention, history keeping is unnecessary in honoring simultaneous IP3 and maintenance exerciser requests upon their jointly shared port. In the priority scheme of the present invention, IP3 and maintenance exerciser requests will both be honored in the same priority snap upon which both requests were registered. The IP3 request will be honored before the maintenance exerciser request. After honoring the maintenance exerciser request, which is of the lowest priority upon that port (the IP3-maintenance exerciser shared port) which is the lowest priority port amongst all (4) IP ports, then a new priority snap will transpire, again prioritizing requests upon all ports.

C. General Description of the HPSU

Before commencing with the detailed description of the present invention within sections F. and G., it is desirable to understand the HPSU within which the present invention resides which is generally described in the present section C. and particularly described in the following section D., and the timing of which is described in fillowing section E. If the routineer in the digital computer memory art who is familiar with the prioritization, and snapshot prioritization, of competing ported requests to read and write a jointly shared memory store does not wish to assimilate all the information in sections C., D., and E. in understanding the present invention, then the following absolute minimum teaching should be noted. First, the snapshot priority to which the circuit apparatus of the present invention constitutes an improvement is shown as IP PRIORITY 68 in FIF. 1b. The maintenance exerciser (not shown in FIG. 1) shares a single prioritized memory port with IP3, requests from which IP3 are received as signal IP3 REQ on cable 203a shown in FIG. 1b. Second, the second level priority network within the HPSU, called BANK 0 PRIORITY 60a through BANK 7 PRIORITY 60h (shown in Fig. 1b) does acknowledge the first level priority, e.g., IP PRIORITY 68, that a first-level-prioritized request is accepted and is being honored and is being acted upon by signal C' shown in FIG. 2, which signal may be observed to be distributed from PRI (BANK) 60 to IOP, IP DATA MUX IOP, IP PRIORITY 52 56, 68, 72 which includes IP PRIORITY 68. For the purposes of basic understanding of the teaching of the present invention, it needs be known that the snapshot priority network, to which the circuit of the present invention is an improvement, does receive requests such as those from IP3 and/or from the maintenance exerciser, and is (internally to the HPSU) acknowledged of the successive prioritization of such requests by a deeper level within the HPSU, this deeper level acting via signal C'. In other words, the improvement circuit of the present invention is activated by the receipt of (2) requests, it does act to successively prioritize such requests (the IP3 request before the maintenance exerciser request), and is released from completing each such successive request prioritization by, and only by, an internal acknowledgement signal from a deeper logic level, which internal acknowledgement signal essentially says "your (prioritized) request is received, accepted, and is being acted upon". Third and finally, the circuit of the present invention is timed by an 8 phase clock appearing as 8.phi. CLOCK at the top of the timing diagram in FIG. 3. The occurence of an IP3 and/or maintenance exerciser request(s) shown as signal I in such FIG. 3, and the acknowledgement via signal C' (also shown in FIG. 3) to successive prioritized requests, do provide the timing framework within which the circuit of the present invention does operate. Signals I and C' will later be seen in FIG. 4.

Continuing now with the complete and entire general description of the HPSU within which the present invention resides, a block diagram of such HPSU is shown in Fig. 1, consisting of FIG. 1a and FIG. 1b. The HPSU is a storage device that is commonly accessible by the IPs, the IOPs, and the SPs via the MUAs. The various devices that can be coupled to the HPSU can have differing bit-widths of interface data transfer, and differing interface cycle times.

In the preferred embodiment, the HPSU utilizes eight Banks of storage devices, identified as STORAGE MEMORY BANK 0 40a through STORAGE MEMORY BANK 7 40h of which Banks 0 and 7 are illustrated. Though not specifically illustrated in FIG. 1, each storage memory Bank is comprised of four Memory Modules and each Bank has a total capacity of 524K data words. Such a word in memory is 36 data bits, and is accompanied by 8 bits which are utilized for Error Correction Code (ECC) check bits, and for parity bits. Each storage memory bank is arranged for receiving four words (W1, W2, W3, and W4), and for reading out four words upon each read/write cycle time.

The STORAGE MEMORY BANKS 40a through 40h include the addressing circuitry, the storage cells, the timing circuits, and the driver circuits, and can be constructed from commercially available components, it being understood that the accessing rate (read/write cycle time) must accomodate the interface rates (interface cycle times) with the attached units.

The wide lines indicate directions of data flow, and the single lines indicate control flow.

At the input, the HPSU has an IOP interface 202 which can accommodate up to four IOP units at the four IOP ports labelled IOP0 through IOP3. It also has an IP interface 203 which can accommodate up to four IPs at the four IP ports designated IP0 through IP3. The IOP ports 202 and the IP ports 203 each operate to receive two data words (if a write is directed) plus address, function, and start/end data using an interface clock cycle time of 60 nanoseconds.

The HPSU also has two input SP interfaces 200 and 201 which can accommodate two SPs at the two ports labelled SP0 and SPl. The SP input ports each function to receive four data words (if a write is directed) plus address and function data upon each interface cycle time of 30 nanoseconds.

The request and control signals from the IOP ports 202 are passed to the IOP PRIORITY 52, which functions to select the particular IOP to be given priority of access to the memory system. The selection is passed on line 54 to the IOP DATA MUX 56 which functions to select the appropriate data and address information to pass on line 58 to the BANK MULTIPLEXER 60. The control signals provided on control path 62 drive the REQ DECODER 64 for selecting one-of-eight control lines 66 for providing control signals for making storage memory bank selection.

In a similar manner, the IP ports 203a provide request signals to the IP PRIORITY 68, which provides control signals on control line 70 to the IP DATA MUX/STACK 72 for selecting the data and address signals that will be provided on path 74. Similarly, the control signals on lines 76 to the REQ DECODER 78 results in signals being provided to select one of eight lines 80 for controlling storage memory bank selection.

The two SP ports 200 and 201 are each arranged to store requests in REQ. STACK & CTRL 82, and in REQ. STACK & CTRL 84. Additionally to SP requests, SP data and address and function are temporarily held in SP0 DATA STACK 82 or SP1 DATA STACK 84 awaiting availability of the memory system. In essence, the SP0 stacks and the SP1 stacks are each a first-in-first-out (FIFO) circulating buffer. The request information feeds out of REQ. STACK & CTRL 82 on line 86 to the REQ. DECODER & SELECTOR 206 which provides a one-of-eight selection while data and address and function pass on line 204 to DATA SELECTOR 208 and then to BANK MULTIPLEXER 60. Similarly, request information passes on line 94 from REQ. STACK & CTRL 84 to REQ. DECODER & SELECTOR 207 for making selections on lines 98, while the data and address and function passes on line 205 to DATA SELECTOR 209 and then to BANK MULTIPLEXER 60.

The BANK 0 PRIORITY 60a through BANK 7 PRIORITY 60h each function to select between the IOP, IP, and the two SP requests presented to each for accessing memory. Each also functions to control the associated storage memory bank, STORAGE MEMORY BANK 0 40a through STORAGE MEMORY BANK 7 40h, to cycle and also to emplace data read upon one of the four storage memory output ports SP0, SP1, IOP, and IP of such storage memory banks, which storage memory output ports are respectively connected to SP0 wired-OR communication buses 213, to an SP1 bus (not fully shown) like buses 213, to an IOP bus (not fully shown) like buses 214, and to IP wired-OR communication buses 214.

The HPSU has an IOP output AND-OR/REG. 102c capable of handling the IOP memory resource port connection to four IOPs: IOP0 through IOP3. It also has an IP output AND-OR-STACK/REG. 102d capable of handling IP the memory resource port connection to four IPs labelled IP0 through IP3. Finally, it has SP output OR/REG. 102a and OR/REG. capable of handling the respective two SP memory resource output ports labelled SP0 and SPl. Data rates and timing at the output ports 224, 225, 226, and 227 are commensurate to those for the corresponding memory resource input ports previously described.

Each HPSU is assigned an address range of 4M 36-bit words. Each STORAGE MEMORY BANK 40a through 40h contains 512K words, and there are eight such banks within an HPSU. A bank is four words wide. Each bank operates independently of the other bank(s). Each receives request and output multiplexing control through the associated bank priority via a respective one of cables 210a through 210h, while receiving function plus start/end control (utilized in partial word operations) from the BANK MULTIPLEXER 60i via the respective one of cables 2212a through 212h. Each receives data and address information from the BANK MULTIPLEXER 60i also via the respective one of cables 212a through 212h.

There are four storage memory output ports for each storage memory bank, consisting of one IOP, one IP, and two SPs (SP0 and SP1) output ports. All data read to any of the IOPs (0-3) is transmitted through the storage memory IOP port, and all data read to any of the IPs is transmitted through the single storage memory IP port at each storage memory bank.

That wired-OR communication bus 214, for example, does carry the data read to the IP memory resource output port and thence to any of the four IPs (IPO through IP3) requires that the output register/drivers of such memory resource port, AND-OR-STACK/REG. 102d, should be able to logically multiplex the read data received on bus 214 to an appropriate one IP. The AND-OR-STACK/REG. is controlled to do so by address signals (path not shown) received from the IP DATA MUX/STACK 72 and by priority port code signals (path not shown) received from IP PRIORITY 68. Likewise, the IOP memory resource port output register/drivers is controlled to logically multiplex data received upon a wired-OR communication bus to an appropriate destination IOP0 through IOP3 by signals received from IOP DATA MUX 56 and IOP PRIORITY 52 (paths not shown).

The HPSU provides a Dayclock, auto recovery timer, System Status register, maintenance exerciser, and an MCI interface. Odd parity is checked/generated across all interfaces for the IP's, IOP's, and SP's.

The function of the HPSU, including in the performance of the present invention, is discussed in greater detail in the next following section D.

D. Detailed Description of the HPSU Block Diagram

The block diagram of the present invention of a High Performance Storage Unit (HPSU) is shown in FIG. 1, consisting of FIG 1a and FIG. 1b. The HPSU supports input and output interfaces to and from ten requestors: from and to Scientific Processor 0 (SP0) respectively across cables 200 and 224, from and to Scientific Procressor 1 (SPl) respectively across cables 201 and 225, from and to four Input Output Processors (IOP 0-IOP 3) respectively across cables 202 and 226, and from and to four Instruction Processors (IP0-IP3) respectively across cables 203 and 227. The HPSU contains eight storage memory banks, STORAGE MEMORY BANK 0 40a through STORAGE MEMORY BANK 7 40h, each containing 512K words for a total of 4M 36-bits words of memory storage. Remaining parts of the HPSU shown in FIG. 1 are the data and control paths, and the logic structure, which does support of the interface of the ten requestors to the eight storage memory banks.

Considering first the data interfaces to the Scientific Processors - the data input from SP0 via cable 200b and output to SP0 via cable 224 plus the data input from SP1 via cable 200b and output to SP1 via cable 225-- such interfaces are uniformly four data words in width. Such four data words are transferable, bank priority conflicts and pending requests permitting, at an interface cycle time of 30 nanoseconds. Additionally received upon cables 200b and 201b, respectively from SP0 and SP1, is addressing and function information. There are 144 data lines in cables 200b and 201b plus 16 accompanying parity bits. There are also 6 function/write enable lines plus accompanying 1 parity bit. These 6 lines consist of 2 lines (2 bits) for function and 4 lines (4 bits) for the master word write enables (corresponding to the 4 words) plus 1 accompanying parity line (bit). There are also 22 address lines (allowing addressing at four-word boundaries within the collective storage memory banks, STORAGE MEMORY BANK 0 40a through STORAGE MEMORY BANK 7 40h. The requests of the HPSU by respective SP0 and SP1 is caried on respective interface communication lines 200a and 201a. The output cables 224 225 carry four words or 144 bits of read data, plus 16 parity bits.

Continuing in FIG. 1 with the interfaces to the HPSU, the HPSU supports of four "data"0 interfaces from and to four IOP's, IOP0 through IOP3, on respective cables 202b and 226. The interface to each IOP is two 36-bit words in width. Such two words may be transferred to such IOP's collectively at rates as fast as two words each 120 nanoseconds, and to an individual IOP at a rate of two words per 300 nanoseconds. Such slower rate to an individual IOP exists because of communication times across the interface. There are 72 data lines plus 8 accompanying parity lines in each of the cables 202b as receive communication from each IOP. There are additionally 24 address lines plus an accompanying 4 parity lines within the cables 202b communication path from each IOP. The greater number of address lines (24) upon the IOP ports than upon the SP ports (22) allows of addressing at the word boundaries within the collective storage memory banks. Finally, each IOP interface upon cables 202b carries 5 function lines plus an accompanying 1 parity line, and 12 lines carrying the start/end bits plus an accompanying 2 parity lines. The request signals from each of up to four IOP's are received via a dedicated line for each upon cable 202a. Each of the output cables 226 to each of the four IOP's carries 72 bits of read data, plus an accompanying 4 parity bits, on 80 total lines.

Likewise to the interface to the IOP's, the HPSU block diagrammed in FIG. 1 supports of an interface to four Instruction Processors, or IP's: the receipt of data and address and function and start/end information from the IP's which transpires on cable 203b, the receipt of requests from the IP's which transpires on cable 203a, and the issuance of data to the IP's which transpires via cable 227. The width of each data transfer is two words. The rate of data transfer may be as great as eight words per 240 nanoseconds for the IP's collectively during the block read operation thereto. For normal, non-blocked, read, the data transfer rate is identical to the IOP's at two words per 1