US6832280B2

Data processing system having an adaptive priority controller

Summary by NHIP

Adaptive Priority Controller

The data processor prioritizes bus requests from two resources using thresholds stored in dedicated registers. The priority controller assigns priority based on whether valid entries in a push buffer, write buffer, or instruction prefetch buffer exceed their specific stored thresholds.

Claim Score by NHIP

Read claim 8, the broadest

Abstract

The present invention relates generally to data processors and more specifically, to data processors having an adaptive priority controller. One embodiment relates to a method for prioritizing requests in a data processor (12) having a bus interface unit (32). The method includes receiving a first request from a first bus requesting resource (e.g. 30) and a second request from a second bus requesting resource (e.g. 28), and using a threshold corresponding to the first or second bus requesting resource to prioritize the first and second requests. The first and second bus requesting resources may be a push buffer (28) for a cache, a write buffer (30), or an instruction prefetch buffer (24). According to one embodiment, the bus interface unit (32) includes a priority controller (34) that receives the first and second requests, assigns the priority, and stores the threshold in a threshold register (66). The priority controller (34) may also include one or more threshold registers (66), subthreshold registers (68), and control registers (70).

US6832280B2, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Expired 13 January 2023, 3.7 years ago.

  1. Priority and filed
  2. Granted
  3. Expired
  4. Today

37 claims: 7 independent, 30 dependent

  1. 1
    A data processor comprising:a central processing unit;a first requesting resource counted to the central processing unit, and adapted to request use of a communications bus for transmitting or receiving data;a second requesting resource coupled to the central processing unit, and adapted to request use of the communications bus for transmitting or receiving data;and a bus interface unit coupled to the central processing unit, the first requesting resource, and the second requesting resource, and adapted to be coupled to the communications bus, the bus interface unit further comprising: a priority controller coupled to receive a first request from the first requesting resource and a second request from the second requesting resource, and to assign a priority to each of the first and second request based on a threshold corresponding to one of the first requesting resource and the second requesting resource, wherein the priority controller comprises storage circuitry for storing a first resource threshold corresponding to the first requesting resource, a second resource threshold corresponding to the second requesting resource, and a control value corresponding to the first and second requesting resources.
  2. 8
    Broadest claimClaim Score 66, broad(NHIP)A processor, comprising:a processing unit;a cache coupled to the processing unit;a write buffer coupled to the processing unit;a priority controller, coupled to the processing unit, the cache, and the write buffer, the priority controller comprising: priority rules specification circuitry, wherein the priority rules specification circuitry comprises a first programmable threshold register which stores a first threshold corresponding to the write buffer;and current priority resolution circuitry coupled to the priority rules specification circuitry which receives memory access requests from the cache and the write buffer and which prioritizes the memory access requests based at least on the first threshold.
  3. 19
    A method for prioritizing requests in a data processor having a processing unit, a cache coupled to the processing unit, a write buffer coupled to the processing unit, and a bus interface unit coupled to the processing unit, the cache, and the write buffer, the bus interface unit adapted to be coupled to a communications bus and to service requests from the cache and the write buffer for use of the communications bus, a method comprising:receiving a first communications bus access request from the cache and a second communications bus access request from the write buffer;and using a first threshold corresponding to the write buffer to determine which one of the first and second communications bus access requests pets priority, wherein the data processor comprises a push buffer coupled to the cache and to the bus interface unit, the bus interface unit adapted to service requests from the push buffer for use of the communications bus, the method for prioritizing requests further comprising: receiving a third communications bus access request from the push buffer;and using a second threshold corresponding to the push buffer and the first threshold to determine which one of the first, second, and third communications bus access requests get priority.
  4. 23
    In a data processor having a processing unit, a write buffer coupled to the processing unit, and a bus interface unit coupled to the processing unit, the cache, and the write buffer, wherein the bus interface unit is adapted to be coupled to a communications bus and service requests from the write buffer, and the processing unit for use of the communications bus, a method comprising:receiving an instruction prefetch request corresponding to an instruction prefetch buffer;comparing a number of valid entries within the write buffer with a write buffer threshold to obtain a first comparison result;comparing a number of valid entries within the instruction prefetch buffer with an instruction prefetch buffer threshold to obtain a second comparison result;and assigning a priority to the instruction prefetch request based on the first and second comparison results.
  5. 31
    A data processor, comprising:processing unit;a write buffer coupled to the processing unit;and a bus interface unit coupled to the processing unit and the write buffer, wherein the bus interface unit is adapted to be coupled to a communications bus and service requests from the write buffer, and the processing unit for use of the communications bus, the bus interface unit comprising: receiving means for receiving an instruction prefetch request corresponding to an instruction prefetch buffer;first comparing means, coupled to die receiving means, for comparing a number of valid entries within the write buffer with a write buffer threshold to obtain a first comparison result;second comparing means, coupled to the receiving means, for comparing a number of valid entries within the instruction prefetch buffer with an instruction prefetch buffer threshold to obtain a second comparison result;and priority means, coupled to the first and second comparing means, for assigning a priority to the instruction prefetch request based on the first and second comparison results.
  6. 34
    In a data processor having a processing unit, the processing unit having a prefetch buffer, and a bus interface unit coupled to the processing unit, the bus interface unit adapted to be coupled to a communications bus and service requests from the prefetch buffer and the processing unit for use of the communications bus, a method comprising:receiving a change of flow instruction fetch request;comparing a number of entries within the prefetch buffer with a prefetch buffer threshold;and in response to comparing the number of entries, selectively affecting a priority of the change of flow instruction fetch request with respect to a request from the prefetch buffer for use of the communications bus.
  7. 36
    A method for prioritizing requests in a data processor having a bus interface unit, adapted to be coupled to a communications bus and which services requests for use of the communications bus, a first requesting resource, and a second requesting resource, wherein the first and second requesting resources make requests for use of the communications bus, a method comprising:selectively receiving a first request from a first resource and selectively receiving a second request from a second resource;if the first request and the second request are received, using a threshold corresponding to one of the first resource and the second resource to assign priorities to the first and second request;and if the first request and the second request are not received: comparing a number of entries within the first requesting resource to a first requesting resource threshold and comparing a number of entries within the second requesting resource to a second requesting resource threshold;and if the number of entries within the first requesting resource falls below the first requesting resource threshold and the number of entries within the second requesting resource falls below the second requesting resource threshold, using a subthreshold corresponding to one of the first requesting resource and the second requesting resource to assign priorities to the first and second request.