KR20040010957A - Memory arbiter - Google Patents

Memory arbiter Download PDF

Info

Publication number
KR20040010957A
KR20040010957A KR1020020044000A KR20020044000A KR20040010957A KR 20040010957 A KR20040010957 A KR 20040010957A KR 1020020044000 A KR1020020044000 A KR 1020020044000A KR 20020044000 A KR20020044000 A KR 20020044000A KR 20040010957 A KR20040010957 A KR 20040010957A
Authority
KR
South Korea
Prior art keywords
starvation
request
memory
priority
signal
Prior art date
Application number
KR1020020044000A
Other languages
Korean (ko)
Inventor
송승철
Original Assignee
엘지전자 주식회사
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 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020020044000A priority Critical patent/KR20040010957A/en
Publication of KR20040010957A publication Critical patent/KR20040010957A/en

Links

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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

PURPOSE: A memory arbiter is provided to automatically readjust a priority of a memory request by executing a feedback of a starvation state of each request for solving a starvation state of memory requests capable of being generated in a memory arbitration method of a priority system. CONSTITUTION: A priority table(1) stores a priority as to inputted request signals, receives a control signal, and changes a priority. When a memory access request is inputted from each memory requester, a request distributor(2) classifies each request from the most significant request to the least significant request in accordance with the priority table(1). When a request the memory access request thereof is not received is continued over a designated value, a starvation controller(3) generates a starvation signal as to the request, classifies requests having a starvation in accordance with the priority table(1) from the most significant starvation to the least significant starvation, and outputs a signal(starvation_exist) for displaying a generation of a starvation. A generator(4) permits a memory use to a corresponding requester in accordance with the signal(starvation_exist) being inputted from the starvation controller(3). A starvation counter(5) receives a starvation signal as to each requester generated from the starvation controller(3), counts/stores the number of starvations corresponded to each request, and transmits the number to the priority table(1).

Description

메모리 중재기{Memory Arbiter}Memory Arbiter

본 발명은 공유 메모리를 사용하는 시스템에 있어서 메모리 중재기에 관한 것으로, 특히 스스로 우선순위 조정 기능을 갖는 메모리 중재기에 관한 것이다.The present invention relates to a memory arbiter in a system using a shared memory, and more particularly to a memory arbiter having its own priority adjustment function.

일반적으로 공유 메모리를 사용하는 시스템에서는 메모리 접근을 요청하는 부분(이하 요청기)이 여러 개 존재한다. 이러한 요청기들로부터 메모리 접근 요청이 동시에 여러 개 발생할 수 있으므로 이러한 메모리 요청에 대한 중재가 반드시 필요 하다. 이러한 중재를 수행하는 부분이 메모리 중재기로서 공유 메모리 구조의 시스템에서는 반드시 필요로 한다.In general, in a system using shared memory, there are several parts that request memory access (hereinafter, a requestor). Since multiple memory access requests can occur from these requestors at the same time, arbitration of these memory requests is necessary. This part of the arbitration is a memory arbiter, which is necessary in a system of shared memory structure.

메모리 접근 요청에 대한 중재 방식은 크게 두 가지로 나누어 볼 수 있다. 메모리 요청들에 대하여 각각의 요청들이 공정하게 서비스 되도록 하는 방식과, 각 메모리 요청들의 우선순위를 미리 정해 놓고 우선순위가 높은 메모리 요청이 낮은 요청보다 항상 먼저 서비스 되도록 하는 방식이 있다.There are two ways to arbitrate a memory access request. There are a method of ensuring that each request is fairly served for memory requests, and a method of pre-determining the priority of each memory request and ensuring that a high-priority memory request is always serviced before a low request.

메모리 접근 요청들이 서로 공정하게 서비스 되는 방식은 어느 한 요청이 계속해서 메모리를 점유하지 못하고 각각의 요청이 서로 공평하게 서비스 되는 장점이 있으나, 만약 매우 시급한 어떤 메모리 요청이 있을 경우 다른 요청들과 공정하게 처리되기 때문에 빨리 처리되지 못하는 단점이 있다.The way that memory access requests are served fairly with each other has the advantage that no one request continues to occupy memory and each request is served fairly with each other, but if there is any urgent memory request, it is fair with other requests. There is a disadvantage that it is not processed quickly because it is processed.

반면, 메모리 접근 요청들에 대하여 미리 우선순위를 정해 놓는 방식은 위의 경우처럼 시급한 요청이 있을 때 그 요청의 우선순위를 높여주면 빨리 서비스 될 수 있다. 그러나 이렇게 우선순위를 정해놓고 처리하는 방식은 우선순위가 높은 메모리 요청들로 인해 상대적으로 우선순위가 낮은 요청이 계속 서비스 되지 못하고 기다리게 되는 경우가 발생할 수 있는 단점이 있다.On the other hand, prioritizing the memory access requests can be serviced quickly by raising the priority of the request when there is an urgent request as in the above case. However, this method of prioritizing and processing has a disadvantage in that a request with a lower priority may not be able to continue to be serviced due to high priority memory requests.

메모리 요청들간 공정하게 요청을 서비스 해주는 방식은 주로 실시간 처리를 필요로 하지 않는 컴퓨터나 그 응용분야에 많이 사용되고, 우선순위 방식은 주로 어떤 요청에 대한 메모리 서비스가 지정된 시간 안에 반드시 수행되야 하는 실시간 처리를 필요로 하는 분야에 많이 사용된다.Fair service between memory requests is widely used in computers or applications that do not require real-time processing, and priority method is mainly used for real-time processing in which a memory service for a request must be performed within a specified time. It is widely used in the fields of need.

이중에서 본 발명과 관계된 분야는 실시간 처리를 필요로 하는 분야로 우선 순위에 의한 메모리 중재 방법에 관한 것이다. 우선순위에 의한 메모리 요청 중재 방식은 앞서 언급한 바와 같이 우선순위가 낮은 메모리 요청이 서비스되지 못하고 계속 기다리게 되는 현상이 발생할 수 있어 지정된 시간내에 메모리 서비스를 받지 못하게 되는 상황이 발생 할 수 있다.Among them, the field related to the present invention is a field requiring real time processing and relates to a memory arbitration method based on priority. As mentioned above, the memory request arbitration method based on the priority may cause the low priority memory request not to be serviced and continue to wait, thereby preventing the memory service from being received within a specified time.

즉, 우선순위가 낮은 요청들이 기아(starvation) 상태에 빠지게 되어 메모리 서비스를 받지 못하게 되는 것이다. 따라서, 우선순위별로 서비스하는 방식의 경우에는 어떤 요청이 기아에 빠지게 되면 그 순간에만 그 기아에 빠진 메모리 요청의 우선순위를 최상위 우선순위로 높여주어 기아 상태에서 벗어나게끔 조정하는 방식을 사용한다.In other words, low-priority requests are starved and not able to receive memory services. Therefore, in the case of service by priority, when a request falls into starvation, the priority of the memory request in starvation is increased to the highest priority only at that moment, and then adjusted to be out of starvation.

그러나, 이와같은 방식의 경우도 기아에 빠진 요청들의 수가 많아지게 되면 이들을 기아 상태에서 벗어나게끔 우선순위를 높여줘야 하는데 이렇게 우선순위를 높여주는 방식에도 한계가 있게 된다. 즉, 우선순위가 높아진 메모리 요청들간에 또 우선순위 경쟁을 해야 하기 때문이다. 그러므로 어떤 요청은 지정된 시간 안에 메모리 서비스를 받지 못하게 될 수 있다.However, even in this case, when the number of hunger requests increases, it is necessary to raise the priority so that they are free from hunger. In other words, priority competition must be made between the higher priority memory requests. Therefore, some requests may not receive memory services within the specified time.

도 1은 종래의 우선순위 중재기를 나타내는 도면이다. 도 1에서 보는 바와 같이 종래기술에 따른 우선순위 중재기는 우선순위 테이블(1)과, 메모리 요청 분배기(2)와, 기아 제어기(3), 및 사용허가 발생기(4)로 구성 된다.1 is a diagram illustrating a conventional priority arbiter. As shown in FIG. 1, the prioritizer according to the prior art is composed of a priority table 1, a memory request distributor 2, a starvation controller 3, and a license generator 4.

우선 순위 테이블(1)은 입력되는 각각의 요청들에 대한 우선 순위를 저장하고 있는 곳이다. 요청 분배기(2)는 각 메모리 요청기로부터의 메모리 억세스 요청이 입력될 때 우선순위 테이블(1)에 따라 각 요청을 최상위의 요청에서부터 최하위의 요청으로 분류한다. 이렇게 분류된 요청이 사용허가 발생기(4)로 입력되어 가장 상위의 요청에 대해 메모리 사용권을 허가한다.The priority table 1 is where the priority for each incoming request is stored. The request distributor 2 classifies each request from the highest request to the lowest request according to the priority table 1 when memory access requests from each memory requester are input. This sorted request is entered into the license generator 4 to grant memory usage rights for the highest request.

사용허가 발생기(4)에 의해 허가신호를 받은 메모리 요청기는 메모리 요청에 대한 허가를 받았으므로 메모리 요청신호를 거두어 들이고 우선순위가 낮아 메모리 허가를 받지 못한 다른 요청기들은 메모리 요청을 계속 유지 한다.Since the memory requester received the permission signal by the license generator 4 receives the permission for the memory request, the memory request signal is received and other requesters that do not receive the memory permission because the priority is low and continue to maintain the memory request.

기아 제어기(3)는 이렇게 메모리 요청이 받아들여지지 않은 요청이 어느 지정한 값 이상 계속될 때, 그 요청에 대하여 기아 신호를 발생시킨다. 기아 신호도 우선순위 테이블에 따라 기아가 발생한 요청을 최상위 기아에서부터 최하위 기아로 분류 한다. 그리고 기아가 발생했음을 표시하는 신호(starvation_exist)를 사용허가 발생기(4)로 전달한다.The starvation controller 3 generates a starvation signal for the request when the request for which the memory request is not accepted continues beyond a specified value. Hunger signals are also classified according to the priority table from requests that are starved from the highest to the lowest. Then, the signal starvation_exist indicating that starvation has occurred is transmitted to the license generator 4.

사용허가 발생기(4)는 기아 제어기(3)로부터 starvation_exist 신호가 구동 된 경우에는 기아가 발생한 요청 중 최상위 요청에 해당하는 요청기에 사용 허가를 내주고 starvation_exist 신호가 구동되지 않은 경우에는 입력된 요청 중 최상위의 요청에 해당하는 요청기에 메모리 사용 허가를 내준다.When the starvation_exist signal is driven from the starvation controller 3, the license generator 4 gives permission to the requester corresponding to the highest request among starvation requests, and when the starvation_exist signal is not driven, Grants memory usage to the requestor corresponding to the request.

그러므로, 기아가 발생한 요청들이 많은 경우에는 이들끼리 서로 우선순위 경쟁을 또 해야 하기 때문에 하위의 우선순위를 갖는 요청은 기아가 발생 하더라도 바로 서비스되지 않는 문제가 있다.Therefore, if there are many requests for starvation, they have to compete with each other again. Therefore, a request having a lower priority may not be serviced immediately even if starvation occurs.

따라서, 본 발명은 상기한 바와 같은 종래기술의 문제점을 해결하고자 하는 것으로, 우선순위 방식의 메모리 중재 방식에서 발생할 수 있는 메모리 요청들의 기아 상태를 해결하기 위해 각 요청들의 기아 상태를 피드백 하여 메모리 요청간의 우선순위를 자동으로 재조정하는 메모리 중재기를 제공하고자 하는 것이 목적이다.Accordingly, the present invention is to solve the problems of the prior art as described above, in order to solve the starvation state of memory requests that may occur in the priority memory arbitration scheme, feedback of the starvation of each request between memory requests The goal is to provide a memory arbiter that automatically reprioritizes priorities.

도 1은 종래 우선순위 중재기의 구성을 나타낸 도면.1 is a diagram showing the configuration of a conventional priority arbiter.

도 2는 본 발명에 따른 우선순위 중재기를 나타낸 도면.2 illustrates a priority arbitrator in accordance with the present invention.

상기한 목적을 달성하기 위한 본 발명에 따른 메모리 중재기는, 각 요청에 대한 기아 상태를 검사하여 자동으로 우선순위를 재조정 하는 것을 특징으로 한다.The memory arbiter according to the present invention for achieving the above object is characterized by checking the starvation status for each request and automatically re-prioritizes.

또한, 본 발명에 따른 메모리 중재기는 종래의 우선순위 중재기에 기아 계수기(Starvation Counter)와 타이머를 추가하고, 우선순위 테이블도 종래기술과 달리 본 발명에서는 카운터로부터 제어신호를 받아 우선순위 테이블을 스스로 변경하는 것을 특징으로 한다.In addition, the memory arbiter according to the present invention adds a starvation counter and a timer to the conventional priority arbiter, and unlike the prior art, in the present invention, the priority table receives a control signal from the counter and changes the priority table by itself. Characterized in that.

상기한 목적을 달성하기 위한 본 발명에 따른 메모리 중재기는, 입력되는 각요청들에 대한 우선순위를 저장하고 제어 신호를 입력받아서 우선순위를 변경하는 우선순위 테이블(1)과, 각 메모리 요청기로부터의 메모리 억세스 요청이 입력될 때 우선순위 테이블(1)에 따라 각 요청을 최상위의 요청에서부터 최하위의 요청으로 분류하는 요청 분배기(2)와, 메모리 접근 요청이 받아들여지지 않은 요청이 어느 지정한 값 이상 계속될 때, 그 요청에 대하여 기아 신호를 발생시키고, 우선순위 테이블에 따라 기아가 발생한 요청을 최상위 기아에서부터 최하위 기아로 분류하여 기아가 발생했음을 표시하는 신호(starvation_exist)를 출력하는 기아 제어기(3)와, 상기 기아 제어기(3)로부터 입력되는 기아 발생 신호(starvation_exist)에 따라 해당하는 요청기에 메모리 사용 허가를 내주는 사용허가 발생기(4)와, 상기 기아 제어기(3)로부터 발생한 각 요청기에 대한 기아 신호를 입력 받아 각 요청에 해당하는 기아가 몇 번 발생했는지를 카운트하여 저장하고 상기 우선순위 테이블(1)로 전달하는 기아 계수기(5)를 포함하여 구성되는 것을 특징으로 한다.The memory arbiter according to the present invention for achieving the above object comprises a priority table (1) for storing the priority for each request to be input and receiving a control signal to change the priority, and from each memory requester Request divider 2 which classifies each request from the highest request to the lowest request according to the priority table (1) when a memory access request is entered, and a request for which a memory access request is not accepted continues beyond a specified value. And a starvation controller 3 that generates a starvation signal for the request, and outputs a signal (starvation_exist) indicating that starvation has occurred by classifying the starvation request according to the priority table from the highest starvation to the lowest starvation. The memory is used in the corresponding requester according to the starvation signal starvation_exist input from the starvation controller 3. It receives the license generator 4 for giving permission and the starvation signal for each requestor generated from the starvation controller 3, counts and stores how many times starvation corresponding to each request occurs, and stores the priority table ( It is characterized in that it comprises a hunger counter (5) for transmitting to 1).

이하, 본 발명에 따른 메모리 중재기의 동작을 첨부 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, the operation of the memory arbiter according to the present invention will be described in detail with reference to the accompanying drawings.

일반적으로 메모리 중재에 있어서 메모리 요청의 패턴은 주변 상황에 따라 매 시간 변화 한다. 즉, 어떤 상황에서는 그 요청에 대한 우선순위가 높아야 하고다른 상황에서는 그 요청에 대한 우선순위가 높아져야 한다. 그렇지 않으면 기아에 빠지는 요청이 많아지게 된다. 앞서 언급한 바와 같이 기아에 빠진 요청들이 많아 지게 되면 그들 사이에 또 한번 우선순위 경쟁을 해야 하고 그러므로 어떤 요청은 결국 지정된 시간 안에 메모리 요청에 대한 서비스를 받지 못하게 되어 실시간으로 동작해야 하는 시스템에 있어서는 커다란 장애요인이 될 수 밖에 없다.In general, in memory arbitration, the pattern of memory requests changes every hour depending on the circumstances. That is, in some situations, the request should be high priority and in other situations, the request should be high priority. Otherwise, there will be more requests for starvation. As mentioned earlier, if there are a lot of hunger requests, there must be another priority race between them, so that some requests will eventually be out of service for memory requests within a specified time, which is a big problem for a system that needs to run in real time. It can be a barrier.

이와 같은 문제를 해결하기 위해서는, 각 요청의 우선순위를 미리 어떠한 값으로 고정시키지 않고 각각의 상황에 맞게 변경할 수 있도록 해야 한다. 즉, 각 요청들이 기아에 빠질 기회를 처음부터 차단하는 방법을 사용하는 것이다. 이렇게 하면 기아에 빠지는 요청들의 수가 줄어들게 되고 그러므로 각 요청들이 모두 지정된 시간 안에 메모리 요청에 대한 서비스를 받을 수 있게 된다.To solve this problem, the priority of each request should not be fixed to any value beforehand so that it can be changed for each situation. In other words, it uses a way to block the chance that each request will become hungry. This reduces the number of hunger requests so that each request can be serviced for a memory request within a specified time.

여기서 문제되는 부분은 어떻게 우선순위를 재조정 할 것인가이다. 기존에는 다양한 주변 상황에 맞추어 어떠한 우선순위를 적용할 것인가를 일일이 조사하여 적용하는 방식을 사용하였다. 즉, 시행착오를 거쳐 개발자가 일일이 우선 순위를 조사하여 각 상황에 맞게 우선순위를 적용하는 것이다. 이러한 방법은 시간이 오래 걸리며 매우 지루한 작업이 아닐 수 없다. 그래서 본 발명에서는 각각의 요청들에 대한 기아 상태를 검사하여 자동으로 메모리 요청들의 우선순위를 조정해 주는 방법을 제안하고자 한다. 이렇게 함으로써 일일이 개발자가 우선 순위를 조사하지 않아도 되고 그러므로 개발기간이 단축 되는 효과를 도모할 수 있다. 또한 개발자가 미쳐 고려하지 못한 상황에 대해서도 대처가 가능하게 되어 보다 신뢰성이 있는 시스템을 개발할 수 있게 된다.The problem here is how to reprioritize. In the past, the priorities were used to investigate and apply the priorities for various surrounding situations. That is, through trial and error, the developer investigates the priorities one by one and applies the priorities according to each situation. This method is time consuming and very tedious. Therefore, the present invention proposes a method of automatically adjusting the priority of memory requests by checking starvation status for each request. This eliminates the need for developers to investigate priorities and therefore shortens development time. In addition, it is possible to cope with situations that the developer has not considered and can develop a more reliable system.

우선순위를 자동으로 조정하는 방식의 본 발명에 따른 메모리 중재기를 도 2에 나타내었다.The memory arbiter according to the present invention in the method of automatically adjusting the priority is shown in FIG. 2.

도 2에서 나타낸 바와같이, 본 발명에 따른 메모리 중재기는 기존의 우선순위 중재기에 비해 기아 계수기(5)가 추가 되었고, 우선순위 테이블(1)도 상기 기아 계수기(5)로부터 제어 신호를 입력 받아 상기 우선순위 테이블을 변경할 수 있도록 하였다. 타이머(6)는 임의의 시간 마다 기아 계수기(5)를 동작시키게 하는 역할을 수행 한다.As shown in FIG. 2, the memory arbiter according to the present invention has a hunger counter 5 added to the conventional priority arbiter, and the priority table 1 also receives a control signal from the hunger counter 5. You can change the priority table. The timer 6 serves to operate the starvation counter 5 at any time.

상기 타이머(6)는 주기적으로 계수 시작(counter_start) 신호와 계수 종료 (counter_end) 신호를 발생시킨다. 이 신호들은 주기적으로 펄스 형태로 발생하게 되는 것으로, 일종의 타이머 인터럽트와 같은 역할을 수행 한다. 이 신호들의 주기는 각 어플리케이션에 따라 달라질 수 있으므로 본 발명에서는 논외로 한다.The timer 6 periodically generates a counter start (counter_start) signal and a counter end (counter_end) signal. These signals are periodically generated in the form of pulses, which act as a kind of timer interrupt. Since the period of these signals may vary according to each application, it is beyond the scope of the present invention.

counter_start 신호가 기아 계수기(5)로 입력 되면 상기 기아 계수기(5)는 동작을 수행한다.When the counter_start signal is input to the starvation counter 5, the starvation counter 5 performs an operation.

상기 기아 계수기(5)는 기아 제어기(3)로부터 발생한 각 요청기에 대한 기아 신호를 입력 받아 각각의 요청에 해당하는 기아가 몇 번 발생했는지 카운트 한다. 이러한 동작을 counter_end 신호가 입력될 때 까지 계속 수행한다.The starvation counter 5 receives a starvation signal for each requestor generated from the starvation controller 3 and counts how many times starvation occurs for each request. This operation continues until the counter_end signal is input.

counter_end 신호가 발생하면 기아 계수기(5)는 카운트를 멈추고 그때 까지 발생한 각 요청들의 기아 발생 횟수를 저장하고, 이를 우선순위 테이블(1)로 전달한다.When the counter_end signal is generated, the starvation counter 5 stops counting, stores the number of starvation occurrences of each request, and delivers it to the priority table 1.

우선순위 테이블(1)은 기아 계수기(5)로부터 전달된 기아 횟수를 체크하여이중 가장 큰 횟수에 해당하는 메모리 요청에 해당하는 우선순위를 최상위의 우선 순위로 세트한다. 그리고 그 다음으로 많은 기아 횟수에 해당하는 요청에 대해 두 번째로 높은 우선 순위를 할당한다.The priority table 1 checks the number of starvation delivered from the starvation counter 5 and sets the priority corresponding to the memory request corresponding to the largest number among them as the highest priority. The second highest priority is then assigned for requests with the highest number of hunger.

기아가 발생한 횟수가 많다는 것은 그 만큼 그에 해당하는 메모리 요청에 대해 서비스가 늦어지고 있다는 의미이므로, 그러한 요청에 대하여 우선 순위를 높여 주어야 한다. 만약 어떤 요청들에 대해 기아 횟수가 같은 경우에는 그 요청들의 원래 우선 순위 값을 비교하여 그 중 큰 우선 순위에 해당하는 요청을 낮은 우선순위에 해당하는 요청보다 높게 해 준다.The higher the number of starvation times, the slower the service will be for that memory request. Therefore, you should increase the priority of such requests. If the number of starvation is the same for some requests, the original priority value of the requests is compared to make the request with the higher priority higher than the request with the lower priority.

이렇게 기아가 발생한 요청들에 대하여 먼저 최상위의 우선순위를 차례대로 부여한 후 기아가 발생하지 않은 메모리 요청에 대해 나머지의 우선 순위를 부여 한다. 기아가 발생하지 않은 메모리 요청에 대해서는 우선 순위를 다시 조정해 줄 필요가 없으므로 원래의 우선순위 대로 우선순위를 유지 하게 한다. 이러한 식으로 기아가 많이 발생한 요청에 대해 차례대로 높은 우선순위를 부여하는 것이다.In this way, the highest priority is given first to the starved requests, and the remaining priority is given to the non-starved memory requests. Memory requests that do not have starvation do not need to be reprioritized, so they maintain their priorities. In this way, high priority is given to a number of starvation requests.

이러한 과정을 타이머(6)에 의해 매 주기마다 이루어 지게 함으로써 중재기는 변화하는 외부 환경에 적응해 가며 스스로 우선 순위 값을 결정할 수 있다.By making this process every cycle by the timer 6, the arbiter can determine its priority value by adapting to the changing external environment.

이상 설명한 바와 같이, 본 발명은 기아 정보를 피드백하여 우선순위를 자동 조정하는 기능을 갖춘 메모리 중재기에 관한 것으로, 기존의 방식과 달리 개발자가 일일이 우선순위를 조사하여 적용할 필요 없이 메모리 중재기 스스로 우선순위를 자동 조정함으로 개발 기간 단축과 그에 따른 개발 비용을 절감할 수 있는 효과가있다.As described above, the present invention relates to a memory arbiter having a function of automatically adjusting the priority by feeding back hunger information. Unlike the conventional method, the memory arbiter preferentially prioritizes without the developer having to investigate and apply the priority. By automatically adjusting the ranking, it is possible to shorten the development period and thereby reduce the development cost.

또한, 메모리 중재기 스스로 변화하는 외부 환경에 적응해 가며 스스로 우선 순위를 재조정 하므로 개발자가 미쳐 고려하지 못한 상황에 대해서도 대처가 가능하게 되어 시스템의 신뢰성을 보다 높일 수 있는 효과가 있다.In addition, the memory arbiter adapts itself to the changing external environment and readjusts its own priorities so that it can cope with situations that the developer has not considered and can increase the reliability of the system.

Claims (5)

공유 메모리를 사용하는 시스템의 메모리 중재기에 있어서,In the memory arbiter of a system using shared memory, 입력되는 각요청들에 대한 우선순위를 저장하고 제어 신호를 입력받아 우선순위를 변경하는 우선순위 테이블과;A priority table for storing priorities of inputted requests and receiving a control signal to change priorities; 각 메모리 요청기로부터의 메모리 억세스 요청이 입력될 때 상기 우선순위 테이블에 따라 각 요청을 최상위의 요청에서부터 최하위의 요청으로 분류하는 요청 분배기와;A request distributor which classifies each request from a top request to a bottom request according to the priority table when a memory access request from each memory requester is input; 메모리 억세스 요청이 받아들여지지 않은 요청이 어느 지정한 값 이상 계속될 때, 그 요청에 대하여 기아 신호를 발생시키고, 우선순위 테이블에 따라 기아가 발생한 요청을 최상위 기아에서부터 최하위 기아로 분류하여, 기아가 발생했음을 표시하는 신호(starvation_exist)를 출력하는 기아 제어기와;When a request for which a memory access request is not accepted continues beyond a specified value, a starvation signal is generated for the request and the starvation is classified according to the priority table from the highest starvation to the lowest starvation. A starvation controller for outputting an indication signal starvation_exist; 상기 기아 제어기로부터 입력되는 기아 발생 신호(starvation_exist)에 따라 해당하는 요청기에 메모리 사용 허가를 내주는 사용허가 발생기와;A license generator for giving a memory use permission to a corresponding requester according to a starvation_exist signal input from the starvation controller; 상기 기아 제어기로부터 발생한 각 요청기에 대한 기아 신호를 입력 받아 각 요청에 해당하는 기아가 몇 번 발생했는지 카운트하여 저장하고, 상기 우선순위 테이블로 전달하는 기아 계수기를 포함하여 구성되는 것을 특징으로 하는 우선순위 자동 조정 기능을 갖는 메모리 중재기.Receiving a starvation signal for each requestor generated from the starvation controller, counting and storing how many times starvation occurs for each request, and including a starvation counter configured to transfer the priority table to the priority table Memory arbiter with automatic adjustment. 제 1항에 있어서,The method of claim 1, 임의의 시간마다 상기 기아 계수기를 동작시키고, 주기적으로 counter-start 신호와 counter-end 신호를 발생시키는 타이머를 더 포함하여 구성되는 것을 특징으로 하는 메모리 중재기.And a timer for operating the starvation counter at any time and periodically generating a counter-start signal and a counter-end signal. 제 1항에 있어서,The method of claim 1, 상기 우선순위 테이블은 기아 계수기로부터 전달된 기아 횟수를 체크하여 이중 가장 큰 횟수에 해당하는 메모리 요청에 해당하는 우선순위를 최상위의 우선순위로 세트하고, 그 다음으로 많은 기아 횟수에 해당하는 요청에 대하여 두 번째로 높은 우선순위를 할당하는 것을 특징으로 하는 메모리 중재기.The priority table checks the number of starvation delivered from the starvation counter, sets the priority corresponding to the memory request corresponding to the largest number as the highest priority, and then requests for the next highest number of starvation. And a second higher priority memory allocator. 제 3항에 있어서,The method of claim 3, 만일 어떤 요청들에 대해 기아 횟수가 같은 경우에는 그 요청들의 원래 우선순위 값을 비교하여 그중 큰 우선순위에 해당하는 요청을 낮은 우선순위에 해당하는 요청보다는 높게 해주는 것을 특징으로 하는 메모리 중재기.And if the number of starvation is the same for a request, comparing the original priority value of the request so that the higher priority request is higher than the lower priority request. 제 3항에 있어서,The method of claim 3, 기아가 발생한 요청들에 대하여 먼저 최상위의 우선순위를 차례대로 부여한 후 기아가 발생하지 않은 메모리 요청에 대하여 나머지 우선순위를 부여하는 것을 특징으로 하는 메모리 중재기.A memory arbiter characterized by first giving the highest priority in order to the starvation requests, and then assigning the remaining priority to the memory requests for which no starvation has occurred.
KR1020020044000A 2002-07-25 2002-07-25 Memory arbiter KR20040010957A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020044000A KR20040010957A (en) 2002-07-25 2002-07-25 Memory arbiter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020044000A KR20040010957A (en) 2002-07-25 2002-07-25 Memory arbiter

Publications (1)

Publication Number Publication Date
KR20040010957A true KR20040010957A (en) 2004-02-05

Family

ID=37319290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020044000A KR20040010957A (en) 2002-07-25 2002-07-25 Memory arbiter

Country Status (1)

Country Link
KR (1) KR20040010957A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870691B1 (en) * 2006-08-18 2008-11-27 후지쯔 가부시끼가이샤 Arbiter, crossbar, request selection method and information processing device
US8065447B2 (en) 2007-01-31 2011-11-22 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100870691B1 (en) * 2006-08-18 2008-11-27 후지쯔 가부시끼가이샤 Arbiter, crossbar, request selection method and information processing device
US7830902B2 (en) 2006-08-18 2010-11-09 Fujitsu Limited Arbiter, crossbar, request selection method and information processing device
US8065447B2 (en) 2007-01-31 2011-11-22 Samsung Electronics Co., Ltd. Method and apparatus for determining priorities in direct memory access device having multiple direct memory access request blocks

Similar Documents

Publication Publication Date Title
US7350004B2 (en) Resource management device
US6804738B2 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US5996037A (en) System and method for arbitrating multi-function access to a system bus
US5572686A (en) Bus arbitration scheme with priority switching and timer
CN101739372B (en) Shared resource arbitration method and device thereof
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US6473780B1 (en) Scheduling of direct memory access
EP0718774A1 (en) Multimedia system employing timers to properly allocate bus access
US7380040B2 (en) Software programmable dynamic arbitration scheme
US20070089114A1 (en) Real time scheduling system for operating system
US7555005B2 (en) Area efficient implementation of the consecutive access counter
KR20040010957A (en) Memory arbiter
KR100757791B1 (en) Shared resource arbitration method and apparatus
US7181558B2 (en) Avoidance of extended bus occupancy through simple control operation
CN109101443B (en) Weight time-sharing arbitration device and method
US7404025B2 (en) Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
JP2000250853A (en) Bus arbitration controller
JP7259537B2 (en) Information processing equipment
JP2003006139A (en) Dma transfer apparatus
KR100605867B1 (en) Bus arbitration method and bus arbitration having a dynamic priority order arbitration function
KR950012506B1 (en) Multi channel bus arbitrator
US20230281139A1 (en) Direct memory access circuit, microcontroller, and method of controlling a direct memory access
JP2007164713A (en) Device and method for managing resource
US20070283065A1 (en) Resource use management device, resource use management system, and control method for a resource use management device
KR100263791B1 (en) Method for bus arbitration using priority

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination