Priority logic system
AssigneeIntel Corporation
InventorRichard B. Hansen
Life of this patent
Estimating the term…
Abstract
An improved priority logic scheme for setting priority values determining priority of interrupts. Multi-level priority allows for varied priority values for single word and multiple-word block segment transfers. Registers allow for programmable priority values which can modify priority values during operation. Simplicity of the invention provides for priority circuitry which does not depend on clock cycles. Flexiblity of the circuitry allows for additional devices to be implemented within the scheme. The invention is described as developed in a single semiconductor chip with other processors to provide a single graphics chip capability.
Claims21
In a data processing system, a priority logic apparatus for determining a priority order of accessing a memory, comprising:
- a plurality of memory request lines coupled to a plurality of memory accessing devices for receiving memory request signals from those said memory accessing devices which require access of said memory;
- a plurality of request acknowledge lines coupled to said plurality of memory accessing devices for providing a request acknowledge signal to a corresponding memory accessing device selected;
- a first set of registers for storing a first set of priority values which are selected for a single word transfer, each of said memory accessing devices having been assigned at least one of said first set of registers to store one of said first set of priority values corresponding to it;
- a second set of registers for storing a second set of priority values which are selected for a multiple-word block segment transfer, each of said memory accessing devices capable of said multiple-word block segment transfer having been assigned at least one of said second set of registers to store one of said second set of priority values corresponding to it;
- circuit means coupled to said memory request lines, said acknowledge lines, and said first and second set of registers for comparing priority values assigned to those said memory accessing devices initiating said memory request signals, such that for each requesting memory accessing device a first priority value is selected if a request is for said single word transfer and a second priority value is selected if said request is for said multiple-word transfer;
- said circuit means for selecting a highest priority value from comparison of said selected first and second priority values and generating a request acknowledge signal to a memory accessing device corresponding to said highest priority value selected, which request acknowledge signal controls access of memory by said selected memory accessing device;
- wherein said single word transfer is achieved when said memory accessing device requesting said single word transfer achieves highest priority, and said multipleword block segment transfer is achieved as long as said memory accessing device requesting said multiple-word block segment transfer retains highest priority.
In a data processing system, a priority logic apparatus for determining a priority order of accessing a memory by a plurality of memory accessing devices, comprising:
- a plurality of memory request lines, each coupled to its corresponding memory accessing device for receiving a memory request signal from its corresponding memory accessing device;
- a plurality of request acknowledge lines, each coupled to its corresponding memory accessing device for providing a request acknowledge signal to its corresponding memory accessing device;
- a first set of registers for storing priority values, wherein each of said memory accessing devices is assigned one of said first set of registers for storing one of said priority values;
- a second set of registers for storing said priority values, wherein memory accessing devices performing multipleword block segment transfers are each assigned one of said second set of registers for storing one of said priority values;
- switching means coupled to select between said first and second registers associated with said memory accessing devices performing block segment transfers;
- circuit means coupled to said memory request lines, said acknowledge lines, said first and second set of registers and said switching means, said circuit means for:
- (a) determining the a presence of said memory request signal when present on each of said memory request lines;
- (b) determining if each said memory request signal is a request for said block segment transfers;
- (c) causing said switching means to select said first set of registers as a default register for said corresponding memory accessing device, but to select said second set registers if said request is for said block segment transfers;
- (d) comparing priority values stored in selected registers for each of said memory request lines having said memory request signal present;
- (e) selecting a highest priority value from said comparison of said priority values stored in a selected registers;
- (f) identifying which memory accessing device is associated with said highest priority value selected;
- and
- (g) generating an acknowledge signal on a respective request acknowledge line of a respective memory accessing device associated with said highest priority value;
- wherein a second priority value is assigned during block segment transfers for said memory accessing devices.
In a semiconductor integrated circuit (IC) used in a computerized system, said IC coupled to a memory, wherein a priority logic circuit within said IC is for determining a priority order of accessing said memory by processors coupled to said memory comprises:
- a plurality of memory request lines for providing memory request signals, a corresponding memory request line being coupled to each said processor and each processor generating its request signal when memory access is required;
- a plurality of request acknowledge lines for providing request acknowledge signals, a corresponding request acknowledge line being coupled to each said processor and each said processor receiving its request acknowledge signal when memory access is granted;
- a plurality of registers for storing a first and second set of priority values, wherein said first set of priority values are stored as most significant bits and said second set of priority values are stored as lower significant bits;
- each said processor having its associated register for storing priority values, such that each said processor has its first priority value which is used as its default priority, but its second priority value is used only when multiple-word block segment data transfer is required;
- a plurality of multiplexers, one coupled to each of said registers for selecting between said first priority value and said second priority value for each of said processors;
- a state logic circuit coupled to said memory request lines, said request acknowledge lines, said registers and said multiplexers, said state logic circuit for:
- (a) determining a presence of said memory request signals on each of said memory request lines when present;
- (b) determining if each request is an initial request from its respective processor and if so, selecting said first priority value from its processor's associated register, but if not an initial request, interpreting such a continuous request as a block transfer request and selecting said second priority value from its associated register;
- (c) comparing each selected first and second priority values of each said memory request lines having said memory request signals present;
- (d) selecting a highest priority value from said comparison of selected first and second priority values;
- (e) generating a request acknowledge signal on a respective request acknowledge line of a respective processor winning priority;
- wherein a second priority value is assigned during block segment transfers.
Dependencies are inferred from the claim text.