PRIORITY RESOLVER CIRCUIT

Abstract: A priority resolution circuit has four flip-flops CPF, SIF, CIF, and FIF for the four possible requesting units. Setting a low priority flip-flop, e.g. CPF, prevents later setting of a higher priority one by gates 33 to 35, but a high priority one can be set substantially simultaneously with a low priority one. Output gates CPG, SIG, CIG, select the highest priority flip-flop which is set. The setting of any flip-flop fires a timing circuit by pulse TCF, and this enables the gates CPG, SIG, CIG by pulse CLR after all possible transients have decayed. The timing circuit may have its timing controlled by the selected unit (CPU, SIP, CIP, or MBA) via a selector controlled by the flip-flops CPF, SIF, CIF, and FIF.

Description: PRIORITY RESOLVER CIRCUIT This invention relates generally to minicomputers and particularly to a priority resolver mechanism for resolving conflicts between sub-systems vying for access to a shared resource and more particularly to cache memory. The storage hierarchy concept is based on the phenomenon that, in executing a program, a localized area of memory receives a very high frequency usage. Thus, a memory organization that provides a relatively small size buffer (cache memory) at the CPU interface and various levels of increasing capacity slower storage can provide an effective access time that is favourably placed in the range between the fastest and slowest elements of the hierarchy. There are various means of communication between the various sub-systems and cache memory. In such communication, conflict may result and a priority resolving mechanism is necessary to resolve the conflict. Generally, priority resolvers inherently have a metastable property resulting from the violation of set-up time, hold time and pulse width specifications which may result in failure to resolve in a predictable period of time When these specified minimum times are violated, there can be exactly enough energy in the input signal to precisely balance the input and output voltages of the latching circuit. Less energy will not precisely balance the input and output voltages and will allow the latch to settle back into its original state. Likewise, more energy will cause the latch to achieve the new state. Therefore, an extremely small window of time exists which will cause a very long indeterminate state at the output. Recovery from this state is dependent upon available internal imbalanced charging currents and node capacitance. It is possible to reduce this recovery time by suitable design and selection of components. However, it is desirable to achieve a further reduction in this timing uncertainty beyond that achievable with known circuit and system designs. Accordingly the present invention provides a priority resolution circuit for resolving priority conflicts between requests from a plurality of devices, comprising a plurality of flip-flops one for each device, and associated logic circuitry, characterized by: first logic circuitry for preventing the setting of a flipflop of higher priority after the setting of a flip-flop of lower priority; second logic circuitry for selecting the output from the highest priority flip-flop which is set; and timing circuitry responsive to the setting of any flip-flop to generate a gating pulse to enable the second logic circuitry after a time delay sufficient to permit any transient conditions to decay. A computer system embodying the invention will now be described, by way of example, with reference to the drawings, in which: Figure 1 is a block diagram of the computer system; Figure 2A is a bl#ock diagram of the conflict resolver flip-flops; Figure 2B is a block diagram of the address selector circuit and its control circuitry; and Figure 2C is a block diagram of the timing circuit of the conflict resolver. Referring to Figure 1, the data processing system includes a central processing unit (CPU) 10, a scientific instruction processor (SIP) 11, and a commercial instruction processor (CIP) 12, which communicate by way of a local bus 13. Each of the processors further communicates by way of b'idirectional communication links with a local bus adapter 14 which includes a memory management unit 25 and a cache memory system 26 (both shown separately). The cache memory system provides a buffer storage for those portions of main memory that are currently being used by the CPU 10, SIP 11, and CIP 12. The memory management unit provides for the translation of virtual memory addresses to physical memory addresses. The local bus adapter is also coupled to a main bus adapter 15 which provides an interface with a main asynchronous communication bus 16, which is a common communication bus for accommodating a plurality of system devices including I/O controllers and a main memory (not shown). The local bus adapter 14 includes a conflict resolver logic unit 19 (shown separately) coupled to the CPU 10, the SIP 11, the CIP 12, and the main bus adapater 15. A selector logic unit 20 is responsive to select control signals from the conflict resolver logic unit 19 on control lines 27 to select one of four control busses 21-24 respectively leading from main bus adapter 15, CPU 10, SIP 11, and CIP 12. The information on the selected one of busses 21-24 is forwarded by the selector logic unit 20 to the memory management unit (MMU) 25, which controls access to the cache memory system 26. In operation, the conflict resolver logic 19 receives access requests from one or more of the main bus adapter 15, CPU 10, SIP 11, and CIP 12. If a request is received during the time period when the local bus adapter 14 is not busy, then the requests are handled in accordance with the order of their arrival. If a request is received after the local bus adapter 14 is busy, the request is temporarily denied. If multiple requests are received while the local bus adapter 14 is not busy, then a request received for example from CPU 10 is stored by a flip-flop within the conflict resolver logic unit 19. Until that flip-flop becomes stable, there is a period of time during which a high priority request may be received and honoured after a lowrer priority request has been received. It is essential to the operation of the data processing system that any conflicts be resolved within a specifiable time period in order for designated data processing rates to be achieved. If request pulses are received by the conflict resolver logic unit 19 which are of a time separation less than than required to cause a receiving flip-flop to enter into a stable state, then the receiving flip-flops may enter into a metastable state in which the output of the flip-flop oscillates. The time period required by the conflict resolver logic unit 19 thereupon would be extended beyond commercially accepted time periods. A further problem in a prioritized request resolving system is the access time of a requestor. In the present system request conflicts are resolved in a reduced time period, and the access time of requestors such as the CPU 10 is accordingly reduced also. In operation, the main bus adapter 15 may for example issue a cache memory access request to the logic unit 19 after the main bus adapter 15 has detected a memory write operation wherein any of the I/O controllers on the main bus 16 have written into memory locations of the main memory on the main bus. Referring to Figure 2A, there are four RS-type flip flops CPF, SIF, CIF, and FIF, fed with request signals CPR from the CPU 10, SIR from the SIP 11, CIR from the CIP 12, and FIR from the MBA (main bus adapter) 15 respectively. (A flip-flop is shown with the S and R inputs at top and bottom left respectively, and the direct and complementary outputs at top and bottom right respectively. The same reference is used for flip-flop and its direct output.) These flop-flops are interconnected by a chain or ladder of three gates 33 to 35, and also feed three output gates CPG, SIG, and CIG. The priority sequence is CPU-SIP-CIP-MBA, with the CPU having the lowest priority and the hlBA the highest. A request from the lowest priority unit, the CPU, sets flip-flop CPS, and this prevents the subsequent setting of any of the other three flip-flops. However, there is a small time window after a CPR signal appears, before this signal has propogated through flip-flop CPF and to gates 33 to 35, during which a request signal such as CIR can still set one of the other three flip-flops for a higher priority request. Also, of course, if a request signal such as FIR is followed by a lower priority request signal such as SIR, flip-flop FIF will be set by signal FIR and flip-flop SIF will then be set by signal SIR regardless of the prior setting of flip-flop FIF. The three output gates CPG, SIG, and CIG are arranged so that each produces an output if the corresponding flipflop is set and no flip-flop of higher priority is set. Each gate feeds the corresponding CPU 10, SIP 11, and CIP 12 as the case may be, and an output from one of these three gates indicates to the associated unit that that unit's request is being honoured. The four flip-flops feed a gate 36 which produce a timing circuit firing pulse, TCF, which triggers the timing circuit (Figure 2C) as soon as any one of the flip-flops is set. This timing circuit, as will be explained later, produces a clear pulse CLR which enables the three gates CPG, SIG, and CIG after the possible "window" for setting a higher priority flip-flop after a lower priority flop-flop has expired, and also produces a reset pulse RST for the four flip-flops. The outputs of the flip-flops SIF, CIF, and FIF of Figure 2A and a BPE signal on a control line from the main bus adapter MBA 15 are fed to logic circuitry which in turn feeds the address selector 43 over bus 27, Figure 2B. The logic circuitry consists of three inverters, 42, 48, and 70 and four gates 51, 45, 49, and 52 as shown. The address selector logic unit 43 has four input ports CPS, SIS, CIS, and FIS which are fed with signals on the bus 27 and with the four respective buses 22, 23, 24, and 21 respectively. The signals on the bus 27 select one of the four ports and hence an address from the respective one of the four units (CPU, SIP, CIP, and MBA) for transmission to the cache memory unit 26. An all 0 pattern from elements 42, 48, and 51 indicates that the CPU 10 has acquired the local bus cycle, and causes port CPS to be selected; a 1 from gate 45 indicates that the SIP 11 has acquired the local bus cycle, and causes port SIS to be selected; and a 1 from gate 49 indicates that the CIP 12 has acquired the local bus cycle, and causes port CIS to be selected The control line selector 44 (Figure 1) has Connections identical to those of the address selector 43; however, the selector 44 generates, from the selected one of the buses 21 to 24, a timing generator selector signal TCG. Figure 2C shows the timing circuitry, which is responsive to the signals TCF and TGP to generate the signals RST and CLR. The TCF signal passes through a gate 54, a delay line 56, and an inverter 57 to the clock input of a flip-flop 55, which has a 1 permanently fed to its D input. The signal TCF indicates a request for a local bus cycle, and the timing chain to flip-flop 55 causes a pulse to appear at its direct or Q output to control the timing of the cache memory unit 26. The resulting delay is sufficient to ensure that transients in the logic system have dissip ated. The complementary output of flip-flop 55 is fed back to the gate 54, which is also fed with a BSY (busy) signal. A selector switch 58 selects a signal from the delay line 56 with a selected delay, and this signal passes'thr- ough a further delay path (inverter 59, 2-input gate 60, and delay 61) to a timing generator selector 62. The output TGP from the control line selector 44 is fed to the timing generator selector 62, to select one of the taps on the delay line 61. This generates a cache cycle end pulse, which passes through driver 63 to produce the CLR pulse, which is fed to the Figure 2A circuitry and the reset input of flip-flop 55. This cache cycle end pulse is also shaped by the inverter 65, the delay line 64, and the gate 40 to generate the RST pulse. This clears the logic system for further request conflict situations. The various devices - CPU, SIP, CIP, and MBA - require different kinds of service, and the control line selector 44 selects the type of service cycle appropriate to the requesting device.

Claims: CLAIMS 1. A priority resolution circuit for resolving priority conflicts between requests from a plurality of devices, comprising a plurality of flip-flops one for each de vice, and associated logic circuitry, characterized by: first logic circuitry¯(33 to 35) for preventing the setting of a flip-flop of higher priority after the setting of a flip-flop of lower priority; second logic circuitry (CPG, SIG, CIG) for selecting the output from the highest priority flip-flop which is set; and timing circuitry (Figure 2C) responsive to the setting of any flip-flop (TCF) to generate a gating pulse (CLR) to enable the second logic circuitry after a time delay sufficient to permit any transient conditions to decay. 2. A circuit according to Claim 1, characterized in that the timing circuitry also generates a pulse (RST) for resetting the flip-flops. 3. A circuit according to either previous claim, charac terized by selection means (44) controlled by the flip flops to select a signal from the selected device in dicative of the type of service which the device is requesting, and which controls the timing of the cir cuitry accordingly.

Inventors: BROWN, RICHARD P., LEMAY, RICHARD A., STEINER, LEWIS G., WOODS, WILLIAM E.
Applicants: HONEYWELL BULL INC.
Application year: 1983
Main classification: G06F13
IPC codes: G06F15, G06F13, G06F9