US20050132153A1 - Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests - Google Patents

Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests Download PDF

Info

Publication number
US20050132153A1
US20050132153A1 US10/711,518 US71151804A US2005132153A1 US 20050132153 A1 US20050132153 A1 US 20050132153A1 US 71151804 A US71151804 A US 71151804A US 2005132153 A1 US2005132153 A1 US 2005132153A1
Authority
US
United States
Prior art keywords
access request
priority
access
priority queue
access requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/711,518
Inventor
Ting-Kun Yeh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Assigned to VIA TECHNOLOGIES, INC. reassignment VIA TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YEH, TING-KUN
Publication of US20050132153A1 publication Critical patent/US20050132153A1/en
Priority to US11/960,594 priority Critical patent/US7694040B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests

Abstract

A method and an apparatus of memory access request priority queue arbitration comprises sorting the requests into plurality of different priority levels firstly. The priority queues of different priority levels are arranged respectively according to the following steps: counting the cycles and latencies of each access request; counting the total cycles; comparing the latencies of each access request and total cycles respectively, if the total cycles is larger than the latency of a request, then arranging one more the same request in the priority queue, else executing the priority queue in order.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention generally relates to a method and an apparatus of priority arbitration, and more particularly to a method and an apparatus of arranging priority queue for an arbiter within a memory access interface.
  • 2. Description of the Related Art
  • As the requirement of consumer media electronic products increasing, in order to enhance the product competition, the concept of SoC (System On Chip, SoC) has become a trend. Due to the device integrated, the chip with SoC concept have less power consumption, greater heat dissipation, and better signal sending quality. Moreover, the concept of SoC is to put more and more devices into one single chip, so each device in this chip have to be integrated or reduced its size in order to meet the concept of SoC. With the integration of devices, the use of devices and substrates can be reduced. Due to the reduction of size of devices, the volume of chip is reduced, and also the package is reduced, so the cost of the chip designed with the concept of SoC can be reduced. One of the most widely used consumer media electronic products is multi-media player.
  • In order to process different video and audio signals, a well-known multi-media player comprises many microprocessors with different functions, for example, to process video signals, a video decoder unit is necessary; to process audio signals, a digital signal processor (DSP) is necessary. Additionally, amounts of memory modules are needed for a well-known multi-media player to handle large data transportation and storage of firmware.
  • A memory interface existing between each microprocessor and it's corresponding memory modules is for establishing contact in order to processing the access. To manage requests accessing efficiently, the memory interface comprises an arbiter, arbitrating which one of the access requests asked by the microprocessor has the priority and arbitrating which one of the access requests can use the bus bandwidth. Before arbitrating the priority of bus bandwidth, a standard of bus bandwidth sequence which is called priority queue must be setup. It decides which one of the access requests has the priority to use bus bandwidth based on priority queue when a plurality of access requests are asked at the same time.
  • A well-known arrangement of queue is shown in FIG. 1 with a concept of first in first out (FIFO). The first asked access request has the highest priority, which is arranged in forefront (named front in queue) position and must be executed firstly. After finishing executing the forefront access request, the other access requests are pushed forward and a new access request is added into the last position (named rear in queue) of the queue.
  • Because of the trend of the concept of SoC (System On Chip) and reduction of memory space in systems, a invention of sharing memory address and data buses is provided earlier, where some parts of system with same functions are integrated or shared. All microprocessors have to access shared memory and data buses via a shard memory interface in the system. Therefore a better method of arranging priority queue and an efficiency arbitrative apparatus is necessary to decide the request priority of a system with amounts of access requests. Furthermore, system performance is increased.
  • SUMMARY OF THE INVENTION
  • The present invention provides a method and an apparatus of priority arbitration deciding which one of the access requests has the priority and which one of the access requests can use bus bandwidth when a large of access requests are asked at the same time without increasing accessing speed and bus bandwidth.
  • The present invention also provides a method of arranging priority queue. When a higher priority access request exists in the highest level priority queue, it prevents system fail if the higher priority access request is not executed at a certain time.
  • A preferred embodiment of present invention firstly separates a plurality of access requests into a plurality of priority levels. A plurality of access requests of each priority level are arranged into a priority queue, and the arranging method comprises the following steps: counting cycles and latency of each access request; counting total cycles of all access requests; comparing latency and total cycles of each access request, if latency of an access request is smaller than total cycle, then additionally arranging the same access request into the priority queue once again, else executing the plurality of access requests according to the sequence of priority queue.
  • A preferred embodiment of the present invention provides an arbiter, comprising of three arbitrative apparatus which have different priority levels, and each arbitrative apparatus with its own priority level at least comprises of: a plurality of request multiplexers for selecting a plurality of access requests of the priority level; and an ownership selector for arranging priority queue. In addition, an arbitrative apparatus with its own priority level further comprises of: an OR gate coupled to the arbitrative apparatus of one higher priority level for informing the priority level whether there is any access request is asked, if there is, then arranging the access request into the last position of the priority queue of the higher priority level; and a AND gate coupled to the ownership selector of one lower priority level for asking the lower priority level to point out the next access request when the next access request is at the last position of the priority queue.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. In the drawings,
  • FIG. 1 schematically shows a general purpose way (first in first out, FIFO) of arranging priority queue;
  • FIG. 2 schematically shows an executing flow chart of different priority levels in present invention;
  • FIG. 3 schematically shows a flow chart of arranging method of priority queue in present invention;
  • FIG. 4 schematically shows arbiter architecture of the present invention;
  • FIG. 5 schematically shows a high level arbitrative apparatus in present invention;
  • FIG. 6 schematically shows a normal level arbitrative apparatus in present invention;
  • FIG. 7 schematically shows a low level arbitrative apparatus in present invention;
  • FIG. 8 shows a general priority queue arrangement; and
  • FIG. 9 shows a priority queue arrangement of the present invention.
  • DETAILED DESCRIPTION
  • The present invention provides a method of arranging priority queue for an arbiter of a memory interface in multi-media player, also provides an apparatus and a method for arbitrating of different priority levels. In this way, when amounts of access requests are asked at the same time, system finds the one access request which is needed to be executed immediately according to the respected priority of each access request and prevents access request fail or system function fail.
  • A preferred embodiment is given as the following to enable one skilled in the art to make and use the present invention as provided within the context of a particular application and its requirements. Various modifications to the preferred embodiment will, however, be apparent to one skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore the present invention is not intended to be limited to the particular embodiments shown and described herein, but is to be accorded the widest herein disclosed.
  • Firstly, separating a plurality of access requests asked from at least one microprocessor into three different priority levels: high priority level, normal priority level and low priority level respectively. A plurality of access requests in each different priority level are arranged as a priority queue and each access request has a corresponding request number. Priority level of an access request can be dynamically adjusted according to the use condition, for example, request access priority of servo controller when playing VCD (Video Compact Disk) is higher than playing DVD (Digital Versatile Disk) due to the higher frequency of reading disk data; request access priority of MPEG (Moving Picture Experts Group) decoder when playing DVD is higher than playing VCD due to the higher requirements of MPEG decoder.
  • Then executing the access requests according to the sequence of high level priority queue, simultaneously the next access request which has the priority is asked and wait. When one access request is in turn to be executed but it is not asked, then executing the next access request. After total access requests of high priority level are once executed, check if there any access request is asked in normal priority level, if there hasn't, then going back to execute high level priority queue; if there has, then executing one access request of normal priority level then going back to high level priority queue. That is to say, when finishing executing a cycle of high priority queue, then executing one access request of normal priority level and going back to execute high level priority queue; after finishing executing a cycle of normal priority queue, then executing one access request of low priority level and going back to execute high level priority queue.
  • The flow chart is as the following and shown in FIG. 2: Assume there has N access requests of high priority level, normal priority level and low priority level respectively, 210 initial value n=0;
    • 220 executing the n-th access request of high level priority queue;
    • 230 estimating if n=N?;
    • if not, then n=n+1 and go back to step 220;
    • if yes, then:
    • 240 initial value n′=0;
    • 250 executing the n′-th access request of normal level priority queue;
    • 260 estimating if n′=N?
    • if not, then n′=n′+1 and go back to step 210;
    • if yes, then:
    • 270 initial value n″=0; and
    • 280 executing the n″-th access request of low level priority queue, and then back to step 210.
  • A well-known method of arranging priority queue is shown in FIG. 8. Take the third access request (slot H2, request No. 10) of high level priority queue as a example, under the worse case in which all of these access requests are asked, the during cycles between executing request No. 10 is at least the total cycles of high level priority queue 26+10+5+13+6+20=80 Ts (Ts: tera second, Tera=1e+12). That is to say, request No. 10 must wait for 80 Ts then it can be executed again. But it is noticed that the total cycles 80 Ts is larger than the latency of request No. 10, 76 Ts, therefore, under the worse case, system can't execute request No. 10 within 76 Ts, as a results, the request No. 10 will fail. In general to solve this problem, one way is re-arranging one lower priority access request of high level priority queue into normal level priority queue, but it may also cause the access request of normal priority level fail; another way is speeding up accessing speed or increasing bus bandwidth to reduce executing cycles of each access request.
  • In the present invention, additional request No. 10 is arranged into the high level priority queue once again (shown in FIG. 9 slot H5). Although the total cycles are increased to 85 Ts (26+10+5+13+6+5+20=85), request No. 10 is executed twice in high level priority queue and the during cycles between executing request No. 10 is reduced (shown in FIG. 9, the during cycles are respectively 13+6=19 Ts and 20+26+10=56 Ts, and both are smaller than new total cycles 85 Ts). Therefore, even under the worse case, the access request of request No. 10 is satisfied.
  • The method of arranging priority queue in the present invention comprises the following steps: counting latency and cycles of all access requests of each priority queue (cycles means the spending time of executing an access request; latency means the longest waiting time before an access request is accepted, and if the access request is not accepted in its latency, the access request will fail, so that the system function fail; both units are Ts); counting total cycles of all access requests in priority queue; comparing latency of each access request with total cycles under the worse case respectively, if latency of an access request is smaller than total cycles, then the same access request should be additional arranged into the priority queue once again (the access request is called nonsatisfied access request in which the latency is smaller than total cycles of all access requests in priority queue), else executing access requests according to the sequence of priority queue. However, when an additional access request is arranged in priority queue, then counting the maximum during cycles between the two same access requests; then comparing the latency with the maximum during cycles, if the latency is still smaller than the maximum during cycles, then another the same access request is arranged into the priority again. Repeat this step (recounting maximum during cycles and comparing with the latency between two same access requests), until the nonsatisfied access request can be successfully executed in time. Finally, as some additional access requests are arranged into the priority queue, recounting new total cycle, and comparing with latency again and following the steps above until all access requests in priority queue can be executed successfully during total cycles. Further, the position of the additional access request is the position which has the average during cycles between two same access requests.
  • The method of arranging priority queue in present invention is as the following and shown in FIG. 3:
    • 310 counting cycles and latency of each access request;
    • 320 counting total cycles of all access requests in priority queue;
    • 330 comparing that latency of each access request is larger than the total cycles;
    • If yes, then:
    • 340 executing access requests according to the sequence of priority queue;
    • If no, then:
    • 350 additionally arranging the nonsatisfied access request into the priority queue once again;
    • 360 counting the maximum during cycles between the two same access requests;
    • 370 comparing whether the latency is larger than the maximum during cycles;
    • If latency is larger than the maximum during cycles;
    • If no, then go back to step 350, step 360 and step 370;
    • If yes, then:
    • 380 recounting new total cycles; and executing the step 330.
  • Every time when an additional access request is arranged into the priority queue, the new total cycles are recounted, then comparing with latencies again until all access requests in priority queue can be executing during total cycles.
  • As the method of arranging priority queue described above, the method can be used in an arbitrative apparatus. An arbiter of the present invention is shown in FIG. 4, which at least comprises three arbitrative apparatus with different priority levels, a high level arbitrative apparatus 410, a normal level arbitrative apparatus 420, and a low level arbitrative apparatus 430 respectively, wherein each arbitrative apparatus is similar, and a detail description is as the following.
  • Refer to FIG. 5, the high level arbitrative apparatus 410 comprises of: a plurality of access request MUXs (multiplexers) 501, each one of the access request MUXs 501 receives all access requests respectively and selects one access request grouped to high priority level from those access requests respectively; a high priority setting register 502, setting request number to show which access requests belongs to high priority level; an ownership selector 503, receiving a plurality of access requests which are selected by a plurality of access request MUXs 501, and arranging those selected access requests into a high level priority queue, the ownership selector 503 keeps the last position of high level priority queue for arranging an access request of normal priority level; an ownership MUX 506, finding out the next access request which is waiting for being executed. Furthermore, the ownership selector 503 comprises a next ownership selector unit 504. When an access request is being executed, an asking point out signal is sent out, then the next ownership selector unit 504 points out the position of the next access request and the ownership MUX 506 finds the corresponding request number from high priority setting register 502 according to the position of high level priority queue.
  • Refer to FIG. 6, the normal level arbitrative apparatus 420 comprises of: a plurality of access request MUXs (multiplexers) 601, each one of the access request MUXs 601 receives all access requests respectively and selects one access request grouped to normal priority level from those access requests respectively; a normal priority setting register 602, setting request number to show which access requests belongs to normal priority level; an ownership selector 603, receiving a plurality of access requests which are selected by a plurality of access request MUXs 601, and arranging those selected access requests into a normal level priority queue, the ownership selector 603 keeps the last position of normal level priority queue for arranging an access request of low priority level; an ownership MUX 606, finding out the next access request which is waiting for being executed. Furthermore, the ownership selector 603 comprises a next ownership selector unit 604. When an access request is being executed, an asking point out signal is sent out, then the next ownership selector unit 604 points out the position of the next access request and the ownership MUX 606 finds the corresponding request number from normal priority setting register 602 according to the position of normal level priority queue.
  • Refer to FIG. 7, the low level arbitrative apparatus 430 comprises of: a plurality of access request MUXs (multiplexers) 701, each one of the access request MUXs 701 receives all access requests respectively and selects one access request grouped to low priority level from those access requests respectively; a low priority setting register 702, setting request number to show which access requests belongs to low priority level; an ownership selector 703, receiving a plurality of access requests which are selected by a plurality of access request MUXs 701, and arranging those selected access requests into a low level priority queue; an ownership MUX 706, finding out the next access request which is waiting for being executed. Furthermore, the ownership selector 703 comprises a next ownership selector unit 704. When an access request is being executed, an asking point out signal is sent out, then the next ownership selector unit 704 points out the position of the next access request and the ownership MUX 706 finds the corresponding request number from low priority setting register 702 according to the position of low level priority queue.
  • Furthermore, the high level arbitrative apparatus 410 comprises a 2-input AND gate 505 with one input coupled to the ownership selector 503, estimating if the asking point out signal is sent, and another input coupled to a estimation signal, estimating if the next ownership selector unit 504 points to the last position of the high level priority queue (the position for arranging an access request of normal priority level), and an output coupled to the ownership selector 603 of normal level arbitrative apparatus 420. When an asking point out signal is sent out (true), and the next ownership selector unit 504 points to the last position of high level priority queue (true), then outputting an asking point out signal to normal priority level to ask for pointing out the position of the next access request.
  • Furthermore, the normal level arbitrative apparatus 420 comprises an OR gate 607 with multi-inputs coupled to each output of each access request MUXs 601, and an output coupled to the ownership selector 503 of high level arbitrative apparatus 410; when an access request of normal priority level is going to be asked, arranging this access request into the last position of high level priority queue. Additionally, the normal level arbitrative apparatus 420 also comprises a 2-input AND gate 605 with one input coupled to the ownership selector 603, estimating if the asking point out signal is sent, and another input coupled to a estimation signal, estimating if the next ownership selector unit 604 points to the last position of the normal level priority queue (the position for arranging an access request of low priority level), and an output coupled to the ownership selector 703 of low level arbitrative apparatus 430. When an asking point out signal is sent out (true), and the next ownership selector unit 604 points to the last position of normal level priority queue (true), then outputting an asking point out signal to low priority level to ask for pointing out the position of the next access request.
  • Furthermore, the low level arbitrative apparatus 430 comprises an OR gate 707 with multi-inputs coupled to each output of each access request MUXs 701, and an output coupled to the ownership selector 603 of normal level arbitrative apparatus 420; when an access request of low priority level is going to be asked, arranging this access request into the last position of normal level priority queue.
  • As the description above, without increasing accessing speed and bus bandwidth, the present invention provides a better method of arranging priority queue and the present invention also provides an apparatus and a method for arbitrating of different priority levels. An arbitrative mechanism with the concept of the present invention can arbitrate large of access requests efficiently, and if there has a higher priority access request in the highest level priority queue, the higher priority access request can be accessed in a short time, thus the access request and system do not fail due to long waiting time.
  • Finally, those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying put the same purpose of the present invention without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (27)

1. A method for arranging a priority queue, comprising the following steps:
counting latency and cycle of each of the plurality of access requests in the priority queue;
counting total cycles of all access requests in the priority queue; and
comparing latency of each of the plurality of access requests with the total cycles;
wherein if a latency of an access request is smaller than the total cycles, then arranging the nonsatisfied access request into the priority queue once again, the access request is called nonsatisfied access request in which the latency is smaller than total cycles of all access requests in priority queue.
2. As the method of claim 1, wherein if the latency of each access request in the priority queue is larger than the total cycles, executing the plurality of access requests according to the sequence of the priority queue.
3. As the method of claim 1, further comprising:
counting the maximum during cycles between two same access requests and comparing with said latency when said nonsatisfied access request is arranged, if said latency is smaller than said maximum during cycles, then arranging said access request into said priority queue again.
4. As the method of claim 1, further comprising:
recounting new total cycles when said nonsatisfied access request is arranged, and comparing with said latency of each access request, if the latency of another access request is smaller than said new total cycles, then arranging said access request into the priority once again, else executing the plurality of access requests according to the sequence of the priority queue.
5. As the method of claim 1, wherein the positions of additional arranged access requests are the positions which can let interval of each during cycle of these same access requests equally.
6. As the method of claim 1, wherein the method can be used in an arbitrative mechanism.
7. A method of arbitration for different priority levels, comprising the following steps:
receiving a plurality of access requests;
separating the plurality of access requests into a plurality of different priority levels; and
arranging the plurality of access requests of each priority level as a priority queue;
wherein the priority level of the plurality access requests can be dynamically adjusted according to the different requirements of the system.
8. As the method of claim 7, wherein the steps of arranging the priority queue of each priority level comprising:
counting each cycle and latency of a plurality of access requests;
counting total cycles of all access requests; and
comparing latency of each of the plurality of access requests with the total cycles;
wherein if a latency of an access request is smaller than the total cycles, then arranging the nonsatisfied access request into the priority queue once again, else executing the plurality of access requests according to the sequence of the priority queue, the access request is called nonsatisfied access request in which the latency is smaller than total cycles of all access requests in priority queue.
9. As the method of claim 8, further comprising:
counting the maximum during cycles between two same access requests and comparing with said latency when said nonsatisfied access request is arranged, if said latency is smaller than said maximum during cycles, then arranging said access request into said priority queue again.
10. As the method of claim 8, further comprising:
recounting new total cycles when said nonsatisfied access request is arranged, and comparing with said each latency of each access request, if the latency of another access request is smaller than said new total cycles, then arranging said access request into the priority once again, else executing the plurality of access requests according to the sequence of the priority queue.
11. As the method of claim 8, wherein the positions of additional arranged access requests are the positions which can let interval of each during cycle of those same access requests equally.
12. As the method of claim 7, wherein each access request is respectively arranged in priority queue with corresponding request number.
13. As the method of claim 7, further comprising:
selecting one of the access requests of one of the priority queue to execute, and pointing out the next access request which has the priority.
14. As the method of claim 7, after finishing executing all access requests of a priority level in priority queue, then executing one of the access request of next priority level, then go back to execute the access request of highest priority level.
15. An arbitrative apparatus of access request arbitration, comprising:
a plurality of access request selectors, wherein each one of the plurality of access request selectors receiving a plurality of access requests respectively; and
an ownership selector, coupled to the plurality of access request selectors, when an access request is being executed, an asking point out signal is sent out to ask for pointing out the position of next access request;
wherein the arbitrative apparatus has its own priority level, and each access request selectors respectively selects one access requests grouped to respected priority level from the plurality of access requests, and said ownership selector receives the plurality of access requests respectively and arranges the plurality of access requests which are selected by the plurality of access request selectors into a priority queue.
16. As the arbitrative apparatus of claim 15, further comprising:
a priority setting register coupled to the plurality of access request selectors for setting request numbers of access requests that belong to said priority level.
17. As the arbitrative apparatus of claim 16, further comprising:
an ownership multiplexer, finding the corresponding request number of access request from register according to the position of said priority queue.
18. As the arbitrative apparatus of claim 15, wherein said ownership selector further comprises a next ownership selector unit, pointing out the position of the next access request when receiving said asking point out signal.
19. As the arbitrative apparatus of claim 15, further comprising:
an OR gate with multi-inputs coupled between the plurality of access request selectors and said ownership selector and an output coupled to the ownership selector of one higher priority level, estimating whether there any access request is asked of this priority level, if there is, then arranging the access request into the last position of the priority queue of one higher priority level.
20. As the arbitrative apparatus of claim 15, further comprising:
a 2-input AND gate, in which one input coupled to said ownership selector, estimating if said asking point out signal is sent, another input coupled to a estimation signal, estimating if the next access request is at the last position of the priority queue, and an output coupled to the ownership selector of one lower priority level, when both inputs are true, then pointing out the next access request of the one lower priority level.
21. As the arbitrative apparatus of claim 15, at least one said arbitrative apparatus with different priority level can be combined as an arbitrative mechanism wherein said arbitrative mechanism can be an arbiter.
22. An arbiter of access request arbitration, comprising:
a plurality of arbitrative apparatus, each one has its own priority level;
wherein each one of the arbitrative apparatus with different priority level at least comprises:
a plurality of access request selectors, wherein each one of the plurality of access request selectors receiving a plurality of access request respectively; and
an ownership selector, coupled to the plurality of access request selectors, when an access request is being executed, an asking point out signal is sent out to ask for pointing out the position of next access request;
wherein each access request selectors respectively selects one access requests grouped to the priority level from the plurality of access requests, and said ownership selector receives the plurality of access requests respectively and arranges the plurality of access requests which are selected by the plurality of access request selectors into a priority queue.
23. As an arbiter of claim 22, further comprising:
a priority setting register coupled to the plurality of access request selectors for setting request numbers of access requests that belong to said priority level.
24. As an arbiter of claim 23, further comprising:
an ownership multiplexer, finding the corresponding request number of access request from register according to the position of said priority queue.
25. As an arbiter of claim 22, wherein said ownership selector further comprises a next ownership selector unit, pointing out the position of the next access request when receiving said asking point out signal.
26. As an arbiter of claim 22, further comprising:
an OR gate with multi-inputs coupled between the plurality of access request selectors and said ownership selector and an output coupled to the ownership selector of one higher priority level, estimating whether there any access request is asked of this priority level, if there is, then arranging the access request into the priority queue of one higher priority level.
27. As an arbiter of claim 22, further comprising:
a 2-input AND gate, one input coupled to said ownership selector, estimating if said asking point out signal is sent, another input coupled to a estimation signal, estimating if the next access request is the last access request of priority queue, and an output coupled to the ownership selector of one lower priority level, when both inputs are true, the one lower priority level point out the next access request.
US10/711,518 2003-12-12 2004-09-23 Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests Abandoned US20050132153A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/960,594 US7694040B2 (en) 2003-12-12 2007-12-19 Method and apparatus of arranging priority queue and arbitrating for memory access requests

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW092135131 2003-12-12
TW092135131A TWI256555B (en) 2003-12-12 2003-12-12 An apparatus and a method of request priority queue arbitration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/960,594 Division US7694040B2 (en) 2003-12-12 2007-12-19 Method and apparatus of arranging priority queue and arbitrating for memory access requests

Publications (1)

Publication Number Publication Date
US20050132153A1 true US20050132153A1 (en) 2005-06-16

Family

ID=34651826

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/711,518 Abandoned US20050132153A1 (en) 2003-12-12 2004-09-23 Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests
US11/960,594 Active 2025-03-24 US7694040B2 (en) 2003-12-12 2007-12-19 Method and apparatus of arranging priority queue and arbitrating for memory access requests

Family Applications After (1)

Application Number Title Priority Date Filing Date
US11/960,594 Active 2025-03-24 US7694040B2 (en) 2003-12-12 2007-12-19 Method and apparatus of arranging priority queue and arbitrating for memory access requests

Country Status (2)

Country Link
US (2) US20050132153A1 (en)
TW (1) TWI256555B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007033615A1 (en) * 2005-09-26 2007-03-29 Netac Technology Co., Ltd. A method for realizing multitask in media playing device
US8612649B2 (en) 2010-12-17 2013-12-17 At&T Intellectual Property I, L.P. Validation of priority queue processing
US20150245082A1 (en) * 2005-06-20 2015-08-27 Comcast Cable Holdings, Llc Method and System of Managing and Allocating Communication Related Resources
GB2525613A (en) * 2014-04-29 2015-11-04 Ibm Reduction of processing duplicates of queued requests
US20160103619A1 (en) * 2014-10-13 2016-04-14 Realtek Semiconductor Corp. Processor and method for accessing memory
CN117312199A (en) * 2023-11-30 2023-12-29 杭州海康威视数字技术股份有限公司 Multi-port access arbitration method, device, equipment and storage medium

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007108950A (en) * 2005-10-12 2007-04-26 Nec Corp I/o processing device and method
JP2009025866A (en) * 2007-07-17 2009-02-05 Nec Electronics Corp Memory controller, bus system, integrated circuit and control method for integrated circuit
JP2009193107A (en) * 2008-02-12 2009-08-27 Panasonic Corp Memory access device
US8250197B2 (en) * 2008-10-28 2012-08-21 Vmware, Inc. Quality of service management
US9684633B2 (en) * 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276838A (en) * 1991-03-04 1994-01-04 International Business Machines Corporation Dynamically repositioned memory bank queues
US20030177296A1 (en) * 2002-03-18 2003-09-18 Hugh Kurth Dynamic request priority arbitration
US20030217224A1 (en) * 2002-05-15 2003-11-20 Watts Jonathan Manuel Reordering requests for access to subdivided resource
US6782441B1 (en) * 2000-10-26 2004-08-24 Sun Microsystems, Inc. Arbitration method and apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283903A (en) * 1986-12-25 1994-02-01 Nec Corporation Priority selector
US6000001A (en) * 1997-09-05 1999-12-07 Micron Electronics, Inc. Multiple priority accelerated graphics port (AGP) request queue
US5903776A (en) * 1997-09-05 1999-05-11 Micron Electronics, Inc. Multiple priority accelerated graphics port (AGP) request queue
US6601151B1 (en) * 1999-02-08 2003-07-29 Sun Microsystems, Inc. Apparatus and method for handling memory access requests in a data processing system
US6871011B1 (en) 2000-09-28 2005-03-22 Matsushita Electric Industrial Co., Ltd. Providing quality of service for disks I/O sub-system with simultaneous deadlines and priority
US6516393B1 (en) 2000-09-29 2003-02-04 International Business Machines Corporation Dynamic serialization of memory access in a multi-processor system
US6799254B2 (en) * 2001-03-14 2004-09-28 Hewlett-Packard Development Company, L.P. Memory manager for a common memory
CN1620782A (en) 2002-02-22 2005-05-25 连宇通信有限公司 Priority control method in wireless pocket data channel
US6732196B2 (en) * 2002-02-26 2004-05-04 International Business Machines Corporation Allowing slots belonging to a second slot category to receive I/O access requests belonging to a first and a second access request categories in a round robin fashion

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276838A (en) * 1991-03-04 1994-01-04 International Business Machines Corporation Dynamically repositioned memory bank queues
US6782441B1 (en) * 2000-10-26 2004-08-24 Sun Microsystems, Inc. Arbitration method and apparatus
US20030177296A1 (en) * 2002-03-18 2003-09-18 Hugh Kurth Dynamic request priority arbitration
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
US20030217224A1 (en) * 2002-05-15 2003-11-20 Watts Jonathan Manuel Reordering requests for access to subdivided resource
US6779092B2 (en) * 2002-05-15 2004-08-17 Hewlett-Packard Development Company, L.P. Reordering requests for access to subdivided resource

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150245082A1 (en) * 2005-06-20 2015-08-27 Comcast Cable Holdings, Llc Method and System of Managing and Allocating Communication Related Resources
US11381857B2 (en) * 2005-06-20 2022-07-05 Comcast Cable Communications, Llc Method and system of managing and allocating communication related resources
WO2007033615A1 (en) * 2005-09-26 2007-03-29 Netac Technology Co., Ltd. A method for realizing multitask in media playing device
US20090222830A1 (en) * 2005-09-26 2009-09-03 Yining Liu Methods for Multi-Tasking on Media Players
US8612649B2 (en) 2010-12-17 2013-12-17 At&T Intellectual Property I, L.P. Validation of priority queue processing
GB2525613A (en) * 2014-04-29 2015-11-04 Ibm Reduction of processing duplicates of queued requests
US20160103619A1 (en) * 2014-10-13 2016-04-14 Realtek Semiconductor Corp. Processor and method for accessing memory
US9772957B2 (en) * 2014-10-13 2017-09-26 Realtek Semiconductor Corp. Processor and method for accessing memory
CN117312199A (en) * 2023-11-30 2023-12-29 杭州海康威视数字技术股份有限公司 Multi-port access arbitration method, device, equipment and storage medium

Also Published As

Publication number Publication date
US20080098145A1 (en) 2008-04-24
TWI256555B (en) 2006-06-11
TW200519606A (en) 2005-06-16
US7694040B2 (en) 2010-04-06

Similar Documents

Publication Publication Date Title
US7694040B2 (en) Method and apparatus of arranging priority queue and arbitrating for memory access requests
US8190801B2 (en) Interconnect logic for a data processing apparatus
JP5456632B2 (en) Flow control method to improve data transfer via switch matrix
US7290075B2 (en) Performing arbitration in a data processing apparatus
US9262356B2 (en) Arbiter device and arbitration method
KR100932359B1 (en) Switch matrix system with multiple bus arbitrations per cycle with high frequency mediator
US7426621B2 (en) Memory access request arbitration
US7904626B2 (en) Arbiter and arbitration method of multiple data accesses
TW201202939A (en) Bus arbitration techniques to reduce access latency
US10545898B2 (en) Shared resource access arbitration method, and shared resource access arbitration device and shared resource access arbitration system for performing same
US7512729B2 (en) Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency
US7490219B2 (en) Counter counts valid requests based on a judgment in a system having a plurality of pipeline processors
US7200699B2 (en) Scalable, two-stage round robin arbiter with re-circulation and bounded latency
US20060095637A1 (en) Bus control device, arbitration device, integrated circuit device, bus control method, and arbitration method
US7657682B2 (en) Bus interconnect with flow control
US8706925B2 (en) Accelerating memory operations blocked by ordering requirements and data not yet received
KR101420290B1 (en) Bus arbiter capable of grouping transactions, bus device and system including the same
US10769079B2 (en) Effective gear-shifting by queue based implementation
US20210334230A1 (en) Method for accessing data bus, accessing system, and device
CN100392627C (en) Arbitrating device and method for memory access request priority sequence
JP2003228512A (en) Data transfer device
WO2003014948A1 (en) System architecture of a high bit rate switch module between functional units in a system on a chip
JP3641347B2 (en) Competitive arbitration processing method and information processing apparatus
CN116244228A (en) AXI protocol-based memory arbitration method and device and memory controller
JP2000207355A (en) Data transfer controller

Legal Events

Date Code Title Description
AS Assignment

Owner name: VIA TECHNOLOGIES, INC., TAIWAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YEH, TING-KUN;REEL/FRAME:015164/0539

Effective date: 20031203

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION