KR100448071B1 - Apparatus for controlling buffer memory in computer system - Google Patents

Apparatus for controlling buffer memory in computer system Download PDF

Info

Publication number
KR100448071B1
KR100448071B1 KR10-2002-0013838A KR20020013838A KR100448071B1 KR 100448071 B1 KR100448071 B1 KR 100448071B1 KR 20020013838 A KR20020013838 A KR 20020013838A KR 100448071 B1 KR100448071 B1 KR 100448071B1
Authority
KR
South Korea
Prior art keywords
buffer memory
buffer
memory
controller
active point
Prior art date
Application number
KR10-2002-0013838A
Other languages
Korean (ko)
Other versions
KR20030074856A (en
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 KR10-2002-0013838A priority Critical patent/KR100448071B1/en
Publication of KR20030074856A publication Critical patent/KR20030074856A/en
Application granted granted Critical
Publication of KR100448071B1 publication Critical patent/KR100448071B1/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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 컴퓨터 시스템의 버퍼 메모리 제어장치에 관한 것으로서, 보다 상세하게는 데이터를 생성하고 소비하는 두 컴포넌트를 연결하는 버퍼로 사용되는 큐 시스템에서 현재 데이터의 흐름과 큐의 엔트리 수에 따라 내부 버퍼 메모리의 뱅크를 부분적으로 활성화시키고 이를 적응성 있게 가하여 효율적이면서도 저전력의 버퍼 시스템을 구현할 뿐만 아니라 내부 메모리를 스크레치 패드 메모리로 사용할 수 있도록 함으로써 메모리의 효율성을 증가시킬 수 있는 이점이 있다.The present invention relates to a buffer memory controller of a computer system, and more particularly, to an internal buffer memory according to the current data flow and the number of entries in a queue in a queue system used as a buffer connecting two components that generate and consume data. By partially activating and adaptively applying a bank of s, an efficient and low-power buffer system can be implemented, as well as the internal memory can be used as a scratch pad memory to increase the efficiency of the memory.

Description

컴퓨터 시스템의 버퍼 메모리 제어장치{APPARATUS FOR CONTROLLING BUFFER MEMORY IN COMPUTER SYSTEM}Buffer memory controller of computer system {APPARATUS FOR CONTROLLING BUFFER MEMORY IN COMPUTER SYSTEM}

본 발명은 컴퓨터 시스템의 버퍼 메모리 제어장치에 관한 것으로서, 보다 상세하게는 데이터를 생성하고 소비하는 두 컴포넌트를 연결하는 버퍼로 사용되는 큐 시스템에서 현재 데이터의 흐름과 큐의 엔트리 수에 따라 내부 버퍼 메모리의 뱅크를 부분적으로 활성화시키고 이를 적응성 있게 가하여 효율적이면서도 저전력의 버퍼 시스템을 구현할 뿐만 아니라 내부 메모리를 스크레치 패드 메모리로 사용할 수 있도록 한 컴퓨터 시스템의 버퍼 메모리 제어장치에 관한 것이다.The present invention relates to a buffer memory controller of a computer system, and more particularly, to an internal buffer memory according to the current data flow and the number of entries in a queue in a queue system used as a buffer connecting two components that generate and consume data. The present invention relates to a buffer memory control device of a computer system that partially activates and adaptively applies a bank of to enable an efficient and low-power buffer system as well as use internal memory as a scratch pad memory.

메인 프로세서와 여러 개의 기능 컴포넌트로 이루어져 있는 임베디드 시스템(embedded system)의 수요가 증가함에 따라 프로세서와 I/O 컴포넌트 사이의 데이터를 효율적으로 버퍼링하는 방법이 필요하게 된다.As the demand for an embedded system consisting of a main processor and several functional components increases, there is a need for a method of efficiently buffering data between the processor and the I / O components.

일반적으로 버퍼링 방법으로 큐(Queue)를 사용하는데 큐는 서큘러 큐(Circular Queue)형식의 FIFO(First In First Out)를 사용하고 프로세서와는 인터럽트를 사용하여 데이터를 저장하고 읽어낸다.In general, a buffering method uses a queue. The queue uses a first-in-first out (FIFO) in the form of a circular queue, and the processor uses an interrupt to store and read data.

프로세서는 일반적으로 데이터를 소비하는 컴포넌트보다 느리기 때문에, 큐에 추가로 넣을 수 있는 데이터의 수를 나타내는 상태 레지스터의 값을 적절한 예측방식을 사용하여 실제보다 크게 하거나, 오버플로우(overflow)로 인한 인터럽트의 비용을 감소시키기 위해 여분의 메모리 공간을 버퍼 외에 사용하는 방식을 주로 이용하고 있어 여분의 메모리 공간을 확보해야하는 문제점뿐만 아니라 메모리를 구동시키기 위한 전력소모가 증가되는 문제점들이 있다.Processors are generally slower than components that consume data, so the value of the status register, which represents the number of additional queues of data, can be made larger by using appropriate predictions, or by interrupts caused by overflows. In order to reduce the cost, the method of using extra memory space other than the buffer is mainly used, and there is a problem of increasing the power consumption for driving the memory as well as the problem of securing the extra memory space.

본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은 데이터를 생성하고 소비하는 두 컴포넌트를 연결하는 버퍼로 사용되는 큐 시스템에서 현재 데이터의 흐름과 큐의 엔트리 수에 따라 내부 버퍼 메모리의 뱅크를 부분적으로 활성화시키고 이를 적응성 있게 가하여 효율적이면서도 저전력의 버퍼 시스템을 구현할 뿐만 아니라 내부 메모리를 스크레치 패드 메모리로 사용할 수 있도록 한 컴퓨터 시스템의 버퍼 메모리 제어장치를 제공함에 있다.The present invention was created to solve the above problems, and an object of the present invention is to internalize the current data according to the flow of data and the number of entries in a queue in a queue system used as a buffer connecting two components that generate and consume data. The present invention provides a buffer memory controller of a computer system in which a bank of buffer memories is partially activated and adaptively applied to implement an efficient and low power buffer system as well as an internal memory as a scratch pad memory.

도 1은 본 발명에 의한 컴퓨터 시스템의 버퍼 메모리 제어장치를 나타낸 블록구성도이다.1 is a block diagram showing a buffer memory control apparatus of a computer system according to the present invention.

도 2는 본 발명에 의한 컴퓨터 시스템의 버퍼 메모리 제어장치에서 뱅크 컨트롤러에 의한 서큘러 큐(circular queue) 형식으로 이루어진 다중 뱅크 형태의 내부 메모리에서 뱅크 활성화 신호를 주는 방식을 나타내는 개념도이다.FIG. 2 is a conceptual diagram illustrating a method of providing a bank activation signal in an internal memory having a multi-bank type in the form of a circular queue by a bank controller in a buffer memory controller of a computer system according to the present invention.

- 도면의 주요부분에 대한 부호의 설명 --Explanation of symbols for the main parts of the drawings-

10 : 프로세서 20 : 버퍼 메모리10 processor 20 buffer memory

30 컴포넌트 40 : 출력래치30 Component 40: Output Latch

50 : 버퍼 컨트롤러 60 : 뱅크 컨트롤러50: buffer controller 60: bank controller

상기와 같은 목적을 실현하기 위한 본 발명은 버퍼 메모리에 저장된 데이터를 소비 컴포넌트로 전달하거나 버퍼 메모리를 스크래치 패드 메모리로 사용할 때 가상큐로 동작하는 출력래치와, 버퍼 메모리로 입출력되는 데이터를 제어하고, 버퍼 메모리의 오버플로우나 언더 플로우 발생시 프로세서나 컴포넌트의 작동을 지연시키고, 버퍼 메모리의 내부 엔트리 수와 필요한 뱅크의 수에 따라 액티브 포인트를 결정하고 버퍼 메모리를 스크래치 패드 메모리로 사용하기 위해 제어 신호를 생성하는 버퍼 컨트롤러와, 버퍼 컨트롤러의 액티브 포인트에 의해 서큘러 큐 형식으로 버퍼 메모리의 뱅크를 부분적으로 활성화시키는 뱅크 컨트롤러로 이루어진 것을 특징으로 한다.The present invention for realizing the above object is to control the output latch to operate as a virtual queue and the data input and output to the buffer memory when transferring the data stored in the buffer memory to the consuming component or using the buffer memory as a scratch pad memory, Delay the operation of the processor or component in the event of overflow or underflow of the buffer memory, determine the active point according to the number of internal entries of the buffer memory and the number of required banks, and generate control signals to use the buffer memory as the scratch pad memory And a bank controller for partially activating a bank of the buffer memory in a circular cue form by an active point of the buffer controller.

위에서 버퍼 컨트롤러에서 오버플로우나 언더플로우시 작동지연시간은 액티브 포인트로 줄어들거나 늘어날 때까지 인 것을 특징으로 한다.Above, the operation delay time during overflow or underflow in the buffer controller is until the active point is reduced or increased.

또한, 액티브 포인트는 현재 동작 상태에서 예상되는 큐의 사용량을 나타내는 것을 특징으로 한다.In addition, the active point is characterized by indicating the usage of the queue expected in the current operating state.

또한, 액티브 포인트는 오버플로우 발생시 감소하고, 언더플로우 발생시 증가하는 것을 특징으로 한다.In addition, the active point is reduced when an overflow occurs, and is increased when an underflow occurs.

이와 같이 이루어진 본 발명은 버퍼 메모리의 오버플로우나 언더플로우 발생시 액티브 포인트가 될 때까지 지연시키며, 액티브 포인트에 따라 버퍼 메모리를 서큘러 큐형식으로 부분활성화시켜 실제로 사용하는 데이터의 수에 따라 적응성 있게 버퍼 메모리를 활성화하여 전력 소비를 줄일뿐만 아니라 내부 버퍼 메모리를 스크래치 패드 메모리로 사용하여 프로세서가 직접 억세스할 수 있도록 작동된다.The present invention thus achieved delays until an active point occurs when an overflow or underflow of the buffer memory occurs, and partially activates the buffer memory in the form of a circular queue according to the active point, thereby adaptively adapting to the number of data actually used. In addition to reducing power consumption by enabling, the internal buffer memory is used as scratch pad memory for direct access by the processor.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 또한 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이다.Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. In addition, this embodiment is not intended to limit the scope of the present invention, but is presented by way of example only.

도 1은 본 발명에 의한 내부 버퍼 메모리 제어장치를 나타낸 블록구성도이다.1 is a block diagram showing an internal buffer memory control apparatus according to the present invention.

여기에 도시된 바와 같이 버퍼 메모리(20)에 저장된 데이터를 소비 컴포넌트(30)로 전달하거나 버퍼 메모리(20)를 스크래치 패드 메모리로 사용할 때 가상의 큐로 동작하는 출력래치(40)와, 버퍼 메모리(20)로 입출력되는 데이터를 제어하고, 버퍼 메모리(20)의 오버플로우나 언더 플로우 발생시 프로세서(10)나 컴포넌트(30)의 작동을 지연시키고, 버퍼 메모리(20)의 내부 엔트리 수와 필요한 뱅크의 수에 따라 액티브 포인트(Act_point)를 결정하고 버퍼 메모리(20)를 스크래치 패드 메모리로 사용하기 위해 출력래치(40)를 분리시키는 버퍼 컨트롤러(50)와, 버퍼 컨트롤러(50)의 액티브 포인트(Act_point)에 의해 서큘러 큐 형식으로 버퍼 메모리(20)의 뱅크를 부분적으로 활성화시키는 뱅크 컨트롤러(60)로 이루어진다.As shown here, when the data stored in the buffer memory 20 is transferred to the consuming component 30 or the buffer memory 20 is used as the scratch pad memory, the output latch 40 acting as a virtual queue and the buffer memory ( 20) to control the input and output of data, to delay the operation of the processor 10 or the component 30 in the event of overflow or underflow of the buffer memory 20, the number of internal entries of the buffer memory 20 and the required bank A buffer controller 50 which determines the active point Act_point according to the number and separates the output latch 40 to use the buffer memory 20 as the scratch pad memory, and an active point Act_point of the buffer controller 50. By the bank controller 60 which partially activates the bank of the buffer memory 20 in a circular cue format.

따라서, 메인 프로세서(10)에서 데이터(Data)가 출력되면 버퍼 컨트롤러(50)에서 후위 주소(rear address)를 생성하여 버퍼 메모리(20)에 데이터를 저장하고, 상태레지스터(Status Reg)의 현재의 엔트리 수를 증가시킨다. 그러면, 데이터를 소비하는 컴포넌트(30)는 출력래치(40)를 통해 버퍼 컨트롤러(50)에서 제어신호와 함께 전위 주소(front address)에 의해 버퍼 메모리(20)에 저장된 데이터를 자신이 원하는 대역폭에 따라 출력 받게 된다.Therefore, when data (Data) is output from the main processor 10, the buffer controller 50 generates a rear address and stores the data in the buffer memory 20, and the current state of the status register Increase the number of entries Then, the component consuming the data 30 outputs the data stored in the buffer memory 20 by the front address together with the control signal from the buffer controller 50 through the output latch 40 to the desired bandwidth. According to the output.

이때 액티브 포인트(Act_point)는 전체 버퍼 메모리의 용량에서 현재 필요한 큐의 용량을 나타내는 양으로 뱅크 컨트롤러(50)는 이 값을 이용하여 버퍼 메모리(20)에서 필요한 뱅크를 활성화한다.At this time, the active point Act_point is an amount representing the capacity of the queue currently needed in the capacity of the entire buffer memory, and the bank controller 50 uses this value to activate the necessary bank in the buffer memory 20.

또한 버퍼 컨트롤러(50)는 스크래치 패드 메모리를 위해 메인 프로세서(10)가 내부 버퍼 메모리(20)를 직접 접근할 수 있는 제어 신호를 만들고 출력래치(40)를 큐로부터 분리시킨다.In addition, the buffer controller 50 generates a control signal that the main processor 10 can directly access the internal buffer memory 20 for the scratch pad memory, and separates the output latch 40 from the queue.

본 발명에 의한 컴퓨터 시스템의 버퍼 메모리 제어장치에 의한 작동을 다섯가지로 분류하여 설명하면 다음과 같다.The operation of the buffer memory controller of the computer system according to the present invention will be described as follows.

첫째, 버퍼 컨트롤러(50)에서 처리하는 액티브 포인트이다.First, it is an active point processed by the buffer controller 50.

액티브 포인트(Act_point)는 현재 동작 상태에서 예상되는 큐의 사용량을 말하는 것으로써 즉, 워킹 셋(working set)을 나타낸다. 따라서 현재 큐에 저장되어 있는 엔트리의 수와는 다르며, 전체 큐의 용량 중에서 예상되는 큐의 사용량을 의미한다. 그러므로 액티브 포인트가 작다면 전체 내부 버퍼 메모리(20)를 모두 사용하지 않아도 충분히 버퍼링이 가능하게 된다.The active point Act_point refers to the usage of the queue expected in the current operating state, that is, the working set. Therefore, it is different from the number of entries currently stored in the queue, and it means the expected queue usage among the total queue capacity. Therefore, if the active point is small, sufficient buffering is possible without using all of the internal buffer memory 20.

만약, 메인 프로세서(10)가 빨라서 큐가 오버플로(overflow)가 되면 메인 프로세서(10)는 인터럽트(IRQ)가 걸리고 액티브 포인트는 감소하게 된다. 왜냐하면 데이터를 소비하는 컴포넌트(30)는 실제로 더 적은 수의 데이터를 사용하기 때문이다. 반대로 큐가 빈 상태가 되면 액티브 포인트를 증가시키게 된다.If the main processor 10 is fast and the queue overflows, the main processor 10 receives an interrupt IRQ and the active point decreases. This is because the component 30 that consumes data actually uses fewer data. Conversely, when the cue becomes empty, the active point is increased.

둘째로, 버퍼 컨트롤러(50)에서 큐가 오버플로우나 언드플로우가 발생했을 때 메인 프로세서(10)에 인터럽트(IRQ)를 걸거나 다른 컴포넌트(30)를 홀드(HOLD)하는 부분이다.Secondly, in the buffer controller 50, when the queue overflows or unflows, an interrupt (IRQ) is interrupted to the main processor 10 or the other component 30 is held.

만약 큐가 가득 차서 인터럽트(IRQ)가 발생하면 메인 프로세서(10)는 홀드 상태가 되고 홀드 상태는 현재 큐의 엔트리 수가 액티브 포인트까지 감소할 때 지속된다. 이렇게 큐가 가득차서 오버플로우가 발생했을 때 인터럽트(IRQ)를 발생시킨 후 액티브 포인트까지 감소할 때까지 홀드상태를 지속시키는 것은 큐가 가득찬 경우만을 비교하여 인터럽트(IRQ)를 발생시키게 되면 여러 번 반복해서 인터럽트(IRQ)가 발생하게 되고 전력소모가 커지게 되기 때문이다.If an interrupt (IRQ) occurs because the queue is full, the main processor 10 enters the hold state and the hold state continues when the number of entries in the current queue decreases to the active point. In this case, when the queue is full and an overflow occurs, an interrupt (IRQ) is generated and the hold state until the active point decreases is compared with only when the queue is full. This is because interrupt (IRQ) occurs repeatedly and power consumption increases.

마찬가지로, 큐가 비어서 언더플로우가 발생할 경우에는 데이터를 소비하는 컴포넌트(30)를 홀드(HOLD)시키게 되고, 홀드상태는 큐의 엔트리의 수가 액티브 포인트로 증가할 때까지 지속된다.Similarly, if an underflow occurs because the queue is empty, the component 30 that consumes data is held, and the hold state continues until the number of entries in the queue increases to the active point.

이와 같이 오버플로우가 발생하거나 언더플로우가 발생했을 때 실제로 전력 소비측면에서 데이터를 처리하는 컴포넌트(30)가 짧은 시간을 두고 홀드(HOLD)와 동작을 반복하여 내부 버스의 천이를 일으키는 것보다 한 번 동작하고 더 긴 시간을 홀드 상태로 있는 것이 유리하기 때문이다.When overflow or underflow occurs in this way, the component 30 which processes data in terms of power consumption actually repeats the operation with HOLD for a short time, rather than causing the internal bus to transition. This is because it is advantageous to operate and hold a longer time.

셋째로, 액티브 포인트에 따라 실제로 사용하게 될 뱅크를 활성화하는 신호를 만들어 주는 부분이다.Thirdly, according to the active point, this part makes a signal for activating the bank to be used.

만약, 액티브 포인트가 특정값으로 변해 더 많은 버퍼 메모리(20)의 공간이 필요하게 되거나, 적은 버퍼 메모리(20)의 공간이 필요하게 될 경우 다수개의 뱅크로 구성된 버퍼 메모리(20)의 뱅크를 부분적으로 활성화시키게 된다. 즉, 뱅크 컨트롤러(60)는 현재 활성화되어 있는 뱅크에서 서큘러 큐(circular queue)처럼 데이터를 추가하듯이 뱅크를 추가로 활성화하거나 반대로 비 활성화한다.If the active point changes to a specific value and requires more space in the buffer memory 20 or less space in the buffer memory 20, the bank of the buffer memory 20 including a plurality of banks is partially divided. Will be activated. That is, the bank controller 60 additionally activates or deactivates the bank as if the data is added like a circular queue in the currently active bank.

보통 액티브 포인트의 1.5배에서 2.5배 정도의 엔트리를 충분히 저장할 수 있도록 뱅크를 할당하게 된다. 뱅크를 할당하는 방식에 대해서는 도 2의 개념도를 참고로 설명한다.You will usually allocate a bank to store enough entries between 1.5 and 2.5 times the active point. A method of allocating banks will be described with reference to the conceptual diagram of FIG. 2.

먼저 (a)의 경우에서처럼 현재 제 0뱅크(Bank 0)와 제 1뱅크(Bank 1)가 활성화되어 있을 때 추가로 뱅크가 필요하다면 마치 4개의 엔트리로 구성된 큐처럼 제 2뱅크(Bank 2)를 활성화시킨다. 따라서 (b)의 경우처럼 다음 후위 포인트는(Next rear point)는 (a)에서처럼 제 0뱅크(Bank 0)에 있는 것이 아니라 제 2뱅크(Bank 2)에 있게 된다. 그리고 (b)에서 더 적은 뱅크를 활성화하려고 한다면, 큐에서 데이터가 삭제되듯이 제 0뱅크(Bank 0)를 비활성화시키게 된다. 따라서 다음 리어 포인트(Next rear point)는 제 0뱅크(Bank 0)가 아니라 제 1뱅크(Bank 1)에 있게 된다.First, if Bank 0 and Bank 1 are currently active as in the case of (a), and if additional banks are needed, the second bank (Bank 2) is like a cue of four entries. Activate it. Therefore, as in the case of (b), the next rear point is not in the bank 0, as in (a), but in the second bank (Bank 2). If (b) attempts to activate fewer banks, bank 0 is deactivated as data is deleted from the queue. Therefore, the next rear point is in the first bank (Bank 1), not the bank 0 (Bank 0).

이렇게 하면 실제로 사용하는 뱅크만이 활성화되므로 전력 소비를 줄일 수 있게 된다.This activates only the banks you actually use, reducing power consumption.

넷째로, 스크래치 패드 메모리로 내부 버퍼 메모리(20)를 사용하기 위해 메인 프로세서(10)가 메모리 컨트롤 신호를 직접 주기 위한 부분이다.Fourth, the main processor 10 directly provides a memory control signal to use the internal buffer memory 20 as the scratch pad memory.

이때는 내부 버퍼 메모리(20)가 큐로 동작하지 않고 일종의 정적 캐쉬(static cache)로 동작하게 된다. 그리고 모든 뱅크가 활성화된다. 이 상태에서는 출력래치(40)는 내부 버퍼 메모리(20)로부터 연결이 끊기게 된다.In this case, the internal buffer memory 20 does not operate as a queue, but operates as a kind of static cache. And all banks are activated. In this state, the output latch 40 is disconnected from the internal buffer memory 20.

즉, 버퍼 메모리(20)가 큐로 동작할 경우에는 데이터의 경로가 'B'와 같이 버퍼 컨트롤러(50)에서 생성된 전위 주소에 의해 데이터가 읽혀져 출력래치(40)를 통해 컴포넌트(30)로 전달되지만, 스크래치 패드 메모리로 사용될 경우에는 메인 프로세서(10)에서 직접 버퍼 메모리(20)를 컨트롤하기 때문에 데이터 경로는 'A'와 같이 직접 메인 프로세서(10)로 전달된다.That is, when the buffer memory 20 operates as a queue, the data is read by the potential address generated by the buffer controller 50 such that the path of the data is 'B' and transferred to the component 30 through the output latch 40. However, when used as a scratch pad memory, since the main memory 10 controls the buffer memory 20 directly, the data path is transferred directly to the main processor 10 as shown in 'A'.

따라서, PDA(Personal Digital Assistant)같은 휴대용 단말기에서 하드웨어 가속 컴포넌트(30)를 사용하지 않을 경우 버퍼로 사용하던 내부 버퍼 메모리를 정적 캐쉬로 사용할 수 있게 되어 시스템 상에 넌캐시블(non-cachable) 영역을 가지게 된다. 최근의 휴대용 기기는 내부에 캐쉬를 가지고 있는 외부 DRAM 인터페이스를 가지고 있으므로 정적 캐쉬는 특히 DSP(Digital Signal Processor)같이 특정 상수를 자주 사용하는 응용예의 경우 효과를 볼 수 있다.Therefore, when the hardware acceleration component 30 is not used in a portable terminal such as a personal digital assistant (PDA), the internal buffer memory used as a buffer can be used as a static cache, thereby allowing a non-cachable area on the system. Will have Modern handheld devices have an external DRAM interface with a cache inside, so static caching can be especially beneficial for applications that frequently use certain constants, such as digital signal processors (DSPs).

다섯째로, 출력래치(40)가 가상의 큐로 동작하는 부분이다.Fifth, the output latch 40 acts as a virtual queue.

출력래치(40)는 내부 버퍼 메모리(20)가 큐로 동작할 때는 내부 버퍼 메모리(20)에 연결되어 있고 스크래치 패드 메모리 상태에서는 직접 버퍼 컨트롤러(50)에 연결되게 된다.The output latch 40 is connected to the internal buffer memory 20 when the internal buffer memory 20 operates as a queue, and is directly connected to the buffer controller 50 in the scratch pad memory state.

따라서 스크래치 패드 메모리 상태에서 큐 억세스 명령이 발생하면 마치 출력래치(40)는 엔트리가 한 개인 가상의 큐처럼 동작하게 되어 같은 소프트웨어 코드를 가지고 스크래치 패드 메모리와 메인 프로세서(10)와 다른 컴포넌트(30)를 연결하기 위한 인터페이스 기능을 느린 속도이지만 모두 사용할 수 있게 된다.Therefore, when a queue access instruction occurs in the scratch pad memory state, the output latch 40 behaves like a virtual queue having one entry, and has the same software code as the scratch pad memory, the main processor 10, and other components 30. The interface function to connect the slow speed but all will be available.

상기한 바와 같이 본 발명은 데이터를 생산하는 컴포넌트인 메인 프로세서와 소비하는 컴포넌트 사이에서 버퍼의 오버플로우나 언더플로우시 큐의 액티브 포인트를 조절하여 실제로 사용될 큐의 엔트리 만큼만 내부 메모리를 활성화시켜 전력소비를 줄일 수 있는 이점이 있다.As described above, the present invention adjusts the active point of the queue during the overflow or underflow of the buffer between the main processor and the consuming component to produce data, thereby activating internal memory as much as the entry of the queue to be used. There is an advantage to reduce.

또한, 액티브 포인트를 소비와 생산을 하는 컴포넌트의 데이터 처리 속도에 따라 적응성 있게 조절하여 메인 프로세서의 인터럽트로 인한 비용을 줄일 수 있는 이점이 있다.In addition, the active point can be adaptively adjusted according to the data processing speed of the component that consumes and produces, thereby reducing the cost of interruption of the main processor.

또한, 메인 프로세서가 버퍼로 사용되는 내부 버퍼 메모리를 스크래치 패드 메모리로도 사용할 수 있도록 함으로써 메모리 사용 효율을 증가시킬 수 있는 이점이 있다.In addition, since the main processor may use the internal buffer memory used as a buffer as the scratch pad memory, there is an advantage of increasing the memory usage efficiency.

Claims (6)

버퍼 메모리에 저장된 데이터를 소비 컴포넌트로 전달하거나 내부 버퍼를 스크래치 패드 메모리로 사용할 때 가상의 큐로 동작하는 출력래치와,An output latch that acts as a virtual queue when passing data stored in the buffer memory to a consuming component or using an internal buffer as the scratch pad memory; 버퍼 메모리로 입출력되는 데이터를 제어하고, 버퍼 메모리의 오버플로우나 언더 플로우 발생시 프로세서나 컴포넌트의 작동을 지연시키고, 버퍼 메모리의 내부 엔트리 수와 필요한 뱅크의 수에 따라 액티브 포인트를 결정하고 버퍼 메모리를 스크래치 패드 메모리로 사용하기 위해 출력래치를 분리시키는 버퍼 컨트롤러와,Control the input and output of the buffer memory, delay the operation of the processor or component in the event of overflow or underflow of the buffer memory, determine the active point according to the number of internal entries of the buffer memory and the number of required banks and scratch the buffer memory. A buffer controller that separates the output latch for use as pad memory, 버퍼 컨트롤러의 액티브 포인트에 의해 서큘러 큐 형식으로 버퍼 메모리의 뱅크를 부분적으로 활성화시키는 뱅크 컨트롤러A bank controller that partially activates a bank of buffer memories in circular cue form by the active point of the buffer controller. 로 이루어진 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.Buffer memory control device of a computer system, characterized in that consisting of. 제 1항에 있어서, 상기 버퍼 컨트롤러에서 오버플로우 발생시 작동지연시간은 엔트리 수가 액티브 포인트로 줄어들 때까지 지연되는 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.2. The buffer memory controller of claim 1, wherein an operation delay time when an overflow occurs in the buffer controller is delayed until the number of entries decreases to an active point. 제 1항에 있어서, 상기 버퍼 컨트롤러에서 언더플로우 발생시 작동지연시간은 엔트리 수가 액티브 포인트로 늘어날 때까지 지연되는 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.The apparatus of claim 1, wherein an operation delay time when an underflow occurs in the buffer controller is delayed until the number of entries increases to an active point. 제 1항에 있어서, 상기 액티브 포인트는 현재 동작 상태에서 예상되는 큐의 사용량을 나타내는 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.2. The buffer memory controller of claim 1, wherein the active point represents a usage of a queue expected in a current operating state. 제 1항에 있어서, 상기 액티브 포인트는 오버플로우 발생시 감소하는 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.2. The buffer memory controller of claim 1, wherein the active point decreases upon overflow. 제 1항에 있어서, 상기 액티브 포인트는 언더플로우 발생시 증가하는 것을 특징으로 하는 컴퓨터 시스템의 버퍼 메모리 제어장치.The apparatus of claim 1, wherein the active point increases when an underflow occurs.
KR10-2002-0013838A 2002-03-14 2002-03-14 Apparatus for controlling buffer memory in computer system KR100448071B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0013838A KR100448071B1 (en) 2002-03-14 2002-03-14 Apparatus for controlling buffer memory in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0013838A KR100448071B1 (en) 2002-03-14 2002-03-14 Apparatus for controlling buffer memory in computer system

Publications (2)

Publication Number Publication Date
KR20030074856A KR20030074856A (en) 2003-09-22
KR100448071B1 true KR100448071B1 (en) 2004-09-10

Family

ID=32224781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0013838A KR100448071B1 (en) 2002-03-14 2002-03-14 Apparatus for controlling buffer memory in computer system

Country Status (1)

Country Link
KR (1) KR100448071B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100836621B1 (en) * 2006-04-28 2008-06-10 엔에이치엔(주) Method for Extending Queue Capacity and Message Processing Device Capable of Extending Queue Capacity

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990007025A (en) * 1997-06-16 1999-01-25 모리시타 요우이치 Buffer memory controller
KR19990033794A (en) * 1997-10-27 1999-05-15 구자홍 Data input / output control device and method of variable bit rate buffer
JP2000115224A (en) * 1998-10-02 2000-04-21 Nec Shizuoka Ltd Inter-lan connection system with buffer capacity control function
JP2000124953A (en) * 1998-10-15 2000-04-28 Fujitsu Ltd Buffer control method and buffer controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990007025A (en) * 1997-06-16 1999-01-25 모리시타 요우이치 Buffer memory controller
KR19990033794A (en) * 1997-10-27 1999-05-15 구자홍 Data input / output control device and method of variable bit rate buffer
JP2000115224A (en) * 1998-10-02 2000-04-21 Nec Shizuoka Ltd Inter-lan connection system with buffer capacity control function
JP2000124953A (en) * 1998-10-15 2000-04-28 Fujitsu Ltd Buffer control method and buffer controller

Also Published As

Publication number Publication date
KR20030074856A (en) 2003-09-22

Similar Documents

Publication Publication Date Title
CN107870873B (en) Memory module based on byte-addressed flash memory and method of operating the same
US6307281B1 (en) System and method for reducing power dissipation in a circuit
US9405696B2 (en) Cache and method for cache bypass functionality
US9841998B2 (en) Processor power optimization with response time assurance
KR101310044B1 (en) Incresing workload performance of one or more cores on multiple core processors
RU2465631C2 (en) Method, system and device to determine activity of processor core and cashing agent
KR100806284B1 (en) High Energy Efficiency Processor Using Dynamic Voltage Scaling
JP2009521051A (en) Method for reducing the number of memory banks during power supply
JPH11282568A (en) Device for reducing power consumption of self-timed system and method therefor
KR20040019335A (en) Non-volatile memory arrangement and method in a multiprocessor device
US20070113114A1 (en) Method and device for adjusting power-saving strategy
US20060123206A1 (en) Prioritization of out-of-order data transfers on shared data bus
EP1345126A2 (en) Logic circuitry-implemented bus buffer
WO2001038970A2 (en) Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
US20050278510A1 (en) Pseudo register file write ports
JP2000242556A (en) Hardware cleaning function optimized for virtual index virtual tag data cache
KR100448071B1 (en) Apparatus for controlling buffer memory in computer system
US6976110B2 (en) Method and apparatus for reducing interrupt latency by dynamic buffer sizing
Ang et al. Message passing support on StarT-Voyager
JP3935873B2 (en) Memory power management using prefetch buffer
JP2002287957A (en) Method and device for increasing speed of operand access stage in cpu design using structure such as casche
CN111857823A (en) Device and method for writing back instruction execution result and processing device
US7903495B2 (en) Selectively controlled memory
US8533368B2 (en) Buffering device and buffering method
JP4440181B2 (en) DMAC issue mechanism by streaming ID method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110901

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20120831

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee