KR20160096762A - Memory controller - Google Patents

Memory controller Download PDF

Info

Publication number
KR20160096762A
KR20160096762A KR1020150018016A KR20150018016A KR20160096762A KR 20160096762 A KR20160096762 A KR 20160096762A KR 1020150018016 A KR1020150018016 A KR 1020150018016A KR 20150018016 A KR20150018016 A KR 20150018016A KR 20160096762 A KR20160096762 A KR 20160096762A
Authority
KR
South Korea
Prior art keywords
request
weight
score
queue
memory controller
Prior art date
Application number
KR1020150018016A
Other languages
Korean (ko)
Other versions
KR101993028B1 (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 KR1020150018016A priority Critical patent/KR101993028B1/en
Priority to US14/885,902 priority patent/US9792065B2/en
Publication of KR20160096762A publication Critical patent/KR20160096762A/en
Application granted granted Critical
Publication of KR101993028B1 publication Critical patent/KR101993028B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Complex Calculations (AREA)

Abstract

According to the present invention, a memory controller comprises: a request queue configured to store a request provided from a host; a scheduler configured to calculate a score with respect to each request included in the request queue and determine a processing order of requests in accordance with the score; and a weighted value generating unit configured to generate a weighted value vector which has a weight value with respect to each of a plurality of variables inputted for calculating the score as an element. Therefore, the memory controller can improve performance by selecting an optimum scheduling rule.

Description

메모리 컨트롤러{MEMORY CONTROLLER}MEMORY CONTROLLER}

본 발명은 메모리 컨트롤러에 관한 것으로서 보다 구체적으로는 다수의 요청 각각에 대하여 점수를 계산하고 점수에 따라 처리 순서를 결정하되 점수를 구성하는 요소들에 대한 가중치를 가변적으로 조절할 수 있는 메모리 컨트롤러에 관한 것이다.The present invention relates to a memory controller, and more particularly, to a memory controller capable of calculating a score for each of a plurality of requests and determining a processing order according to a score, wherein a weight for elements constituting a score can be variably adjusted .

메모리 컨트롤러는 호스트로부터 제공되는 다수의 요청의 처리 순서를 결정하여 메모리 장치를 제어한다.The memory controller controls the memory device by determining the processing order of a plurality of requests provided from the host.

종래의 메모리 컨트롤러는 다수의 요청의 처리 순서를 결정하기 위하여 FCFS(First Come First Served), FR-FCFS(First Ready Frist Come First Served) 등의 스케줄링 방법을 사용하였다.Conventional memory controllers use scheduling methods such as FCFS (First Come First Served) and FR-FCFS (First Ready Frist Come First Served) to determine the processing order of a large number of requests.

FCFS는 호스트로부터 먼저 도달한 요청을 먼저 처리하는 스케줄링 방법이고 FR-FCFS는 FCFS와 동일하되 현재 오픈된 상태의 로우에 대한 요청을 먼저 처리하는 점에서 차이가 있다.FCFS is a scheduling method that first processes a request arriving from a host first, and FR-FCFS is the same as FCFS, except that it processes a request for a row that is currently open.

이와 같이 종래의 메모리 컨트롤러는 고정된 기준에 의해서 스케줄링을 수행할 수 있을 뿐 스케줄링 규칙을 가변적으로 제어하지 못하는 문제가 있다.Thus, the conventional memory controller can perform scheduling based on a fixed reference, but can not variably control the scheduling rule.

본 발명은 스케줄링 성능에 영향을 주는 다양한 요소들에 대한 가중치를 가변적으로 제어함으로써 스케줄링 규칙을 동적으로 제어함으로써 그 성능을 향상시킬 수 있는 메모리 컨트롤러를 제공한다.The present invention provides a memory controller capable of improving performance by dynamically controlling scheduling rules by variably controlling weights of various factors affecting scheduling performance.

본 발명의 일 실시예에 의한 메모리 컨트롤러는 호스트로부터의 제공되는 요청을 저장하는 요청 큐, 요청 큐에 포함된 각 요청에 대하여 점수를 계산하고 점수에 따라 요청의 처리 순서를 결정하는 스케줄러; 및 점수를 계산하는데 입력되는 다수의 변수 각각에 대한 가중치를 원소로 하는 가중치 벡터를 생성하는 가중치 생성부를 포함한다.A memory controller according to an embodiment of the present invention includes a request queue for storing a request from a host, a scheduler for calculating a score for each request included in the request queue and determining a processing order of the request according to a score; And a weight generator for generating a weight vector having elements as weights for the plurality of variables input to calculate the score.

본 기술을 통해 스케줄링 성능에 영향을 미치는 다양한 요소들에 대한 가중치를 가변적으로 제어하여 점수를 계산하고 이를 기준으로 따라 스케줄링을 수행함으로써 하나의 메모리 컨트롤러에서 다양한 스케줄링 규칙에 대한 성능을 실험할 수 있으며 이에 따라 최적의 스케줄링 규칙을 선택함으로써 성능을 향상시킬 수 있다.Through the present technology, we can experimentally evaluate the performance of various scheduling rules in a single memory controller by calculating the score by variably controlling the weights of the various factors affecting the scheduling performance, and performing the scheduling according to the scores. Accordingly, performance can be improved by selecting an optimal scheduling rule.

도 1은 본 발명의 일 실시예에 의한 메모리 컨트롤러를 포함하는 메모리 시스템의 블록도.
도 2는 도 1의 가중치 생성부의 블록도.
도 3은 도 1의 가중치 생성부의 상세 블록도.
도 4는 도 3의 제어부의 동작을 나타낸 순서도.
도 5는 도 1의 스케줄러의 블록도.
도 6은 도 4의 점수 연산부의 상세 블록도.
도 7은 도 6의 변수 결정부의 동작 방식을 설명하는 표.
1 is a block diagram of a memory system including a memory controller in accordance with an embodiment of the present invention.
2 is a block diagram of a weight generation unit of FIG.
3 is a detailed block diagram of the weight generation unit of FIG.
FIG. 4 is a flowchart showing the operation of the control unit of FIG. 3;
5 is a block diagram of the scheduler of FIG.
FIG. 6 is a detailed block diagram of the score computing unit of FIG. 4;
FIG. 7 is a table for explaining the operation of the variable determining unit of FIG. 6;

이하에서는 첨부한 도면을 참조하여 본 발명의 실시예에 대해서 상세히 설명한다. 이하의 설명에서 동일한 참조 부호는 실질적으로 동일한 대상을 지시한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, the same reference numerals denote substantially the same objects.

도 1은 본 발명의 일 실시예에 의한 메모리 컨트롤러(100)를 포함하는 메모리 시스템(1)의 블록도이다.1 is a block diagram of a memory system 1 including a memory controller 100 in accordance with an embodiment of the present invention.

메모리 컨트롤러(100)는 호스트(1)로부터의 읽기 또는 쓰기 요청을 수신하고 이에 대응하여 메모리 장치(20)를 제어하여 요청된 동작을 수행한다.The memory controller 100 receives the read or write request from the host 1 and controls the memory device 20 in response thereto to perform the requested operation.

메모리 컨트롤러(100)는 호스트(1)로부터 제공된 읽기, 쓰기 요청들을 저장하는 요청 큐(110), 요청 큐(130)의 요청들에 대한 처리 순서를 결정하는 스케줄러(130), 스케줄러(130)에서 선택한 요청에 대응하여 메모리 장치(20)를 제어하는 명령을 생성하는 명령 생성부(140)를 포함한다.The memory controller 100 includes a request queue 110 for storing read and write requests provided from the host 1, a scheduler 130 for determining a processing order for requests of the request queue 130, And an instruction generator 140 for generating an instruction to control the memory device 20 in response to the selected request.

본 발명에 의한 메모리 컨트롤러(100)에서 스케줄러(130)는 요청 큐(110)에 저장된 각 요청들에 대한 점수를 계산하고 계산된 점수에 따라 동작을 수행할 요청을 선택한다.In the memory controller 100 according to the present invention, the scheduler 130 calculates a score for each request stored in the request queue 110 and selects a request to perform an operation according to the calculated score.

본 발명에 의한 메모리 컨트롤러(100)는 가중치 벡터를 생성하기 위한 가중치 생성부(120)를 더 포함한다. 가중치 벡터의 각 원소는 스케줄러(130) 내에서 점수 산정에 사용되는 각 변수 값들과 곱해진다. The memory controller 100 according to the present invention further includes a weight generator 120 for generating a weight vector. Each element of the weight vector is multiplied in the scheduler 130 with each variable value used in scoring.

가중치 생성부(120)는 요청 큐(110)에 저장된 요청들에 대한 상태를 포함하는 메모리 컨트롤러(100)의 동작 상태와 가중치 제어신호를 참조하여 가중치 벡터를 생성한다.The weight generation unit 120 generates a weight vector by referring to the operation state of the memory controller 100 including the state of the requests stored in the request queue 110 and the weight control signal.

가중치 벡터 및 점수 산정 방식에 대해서는 이하에서 보다 구체적으로 개시한다.The weight vector and the scoring method will be described in more detail below.

도 2는 도 1의 가중치 생성부(120)의 일 실시예를 나타내는 블록도이다.2 is a block diagram illustrating an embodiment of the weight generator 120 of FIG.

가중치 생성부(120)는 상태 관찰부(121), 가중치 결정부(122)를 포함한다.The weight generation unit 120 includes a state observation unit 121 and a weight determination unit 122.

상태 관찰부(121)는 도 1에 도시된 바와 같이 요청 큐(110)를 포함하는 메모리 컨트롤러(100)의 동작 상태를 관찰하여 각 요청들의 상태를 파악하고 이로부터 상태 벡터를 생성한다.The state observing unit 121 observes the operation state of the memory controller 100 including the request queue 110 as shown in FIG. 1, and grasps the state of each request and generates a state vector therefrom.

예를 들어 상태 벡터는 요청 큐에 존재하는 읽기 큐의 길이, 쓰기 큐의 길이, 최근 처리된 일정한 개수(예를 들어 128개)의 요청 중 최대 수행 시간, 현재 처리되고 있는 동작이 읽기 요청에 관한 것인지 혹은 쓰기 요청에 관한 것인지 여부, 프리페치 동작시의 히트율 등을 원소로 포함할 수 있다. For example, the state vector may include a length of a read queue existing in a request queue, a length of a write queue, a maximum execution time during a request of a predetermined number of recently processed (for example, 128) Whether it is about the write request or the write request, and the hit rate during the prefetch operation.

메모리 컨트롤러 분야에서 프리페치 동작은 앞으로 읽기 요청될 것으로 예상되는 데이터를 메모리 장치(20)로부터 미리 읽어오는 동작을 의미하며, 이때 히트율은 미리 읽어온 데이터에 대해서 실제로 읽기 요청이 들어오는 확률에 연관된 개념이다. 프리페치 동작 및 히트율은 관련 기술 분야에서 널리 알려진 개념이므로 구체적인 설명을 생략한다.In the memory controller field, the prefetch operation refers to an operation of prefetching data expected to be requested to be read from the memory device 20 in advance, wherein the hit rate is a concept related to the probability that a read request is actually received to be. The prefetch operation and the hit rate are widely known in the related art, so a detailed description thereof will be omitted.

가중치 결정부(122)는 가중치 제어신호 또는 상태 벡터를 참조하여 가중치 벡터를 결정할 수 있다. 가중치 제어신호는 메모리 컨트롤러(100) 내부 또는 외부의 다른 구성으로부터 제공될 수 있으며 호스트(10)로부터 제공될 수도 있다. 가중치 제어신호는 가중치 벡터의 각 원소 값들을 직접 지정할 수 있다.The weight determining unit 122 may determine the weight vector by referring to the weight control signal or the state vector. The weight control signal may be provided from another configuration inside or outside the memory controller 100 and may be provided from the host 10. The weight control signal can directly specify each element value of the weight vector.

도 3은 도 1의 가중치 생성부(120)의 일 실시예를 나타내는 블록도이다.3 is a block diagram showing an embodiment of the weight generator 120 of FIG.

본 실시예에서 상태 관찰부(121)는 읽기 큐의 길이(RQL), 쓰기 큐의 길이(WQL), 최근 처리된 일정 개수의 요청 중 최대 처리 시간(MW, 이하 최대 처리 시간으로 표현한다.), 현재 스케줄러(130)에서 선택된 동작이 읽기 요청에 관한 것인지 쓰기 요청에 관한 것인지(RW)를 원소로 포함하는 상태 벡터를 생성한다.In the present embodiment, the state observing unit 121 calculates the state of the read queue (RQL), the write queue length (WQL), the maximum processing time (MW, hereinafter referred to as maximum processing time) Generates a state vector including an element selected by the current scheduler 130 as a read request or a write request (RW).

가중치 결정부(122)는 제어부(1221), 제 1 내지 제 3 선택부(1222-1 ~ 1222-3), 제 1 내지 제 3 레지스터(1223-1 ~ 1223-3)를 포함하고 제 1 가중치(w1), 제 2 가중치(w2), 제 3 가중치(w3)를 원소로 하는 가중치 벡터를 출력한다.The weight determining unit 122 includes a control unit 1221, first to third selecting units 1222-1 to 1222-3, first to third registers 1223-1 to 1223-3, (w1), the second weight (w2), and the third weight (w3).

제어부(1221)는 가중치 제어신호와 상태 벡터를 참조하여 제 1 내지 제 3 선택부(1222-1 ~ 1222-3)를 제어하는 제 1 내지 제 3 선택 신호(cw1 ~ cw3)를 출력한다. The control unit 1221 outputs the first to third selection signals cw1 to cw3 for controlling the first to third selection units 1222-1 to 1222-3 with reference to the weight control signal and the state vector.

제 1 선택부(1222-1)는 제 1 선택 신호(cw1)에 따라 지정된 값(1, -1, 0) 또는 제 1 레지스터(1223-1)에 저장된 기존의 제 1 가중치(w1)를 선택하여 새로운 제 1 가중치(w1)를 출력한다.The first selector 1222-1 selects the value (1, -1, 0) specified in accordance with the first selection signal cw1 or the existing first weight w1 stored in the first register 1223-1 And outputs a new first weight w1.

제 1 가중치(w1)는 점수를 계산하는데 있어서 제 1 요소에 대응하는 제 1 변수(y1) 값과 곱해진다. 이에 따라 제 1 가중치(w1)는 점수에 있어서 제 1 요소의 영향력을 결정하는 인자가 된다. 이에 대해서는 이하에서 도 6을 참조하여 보다 구체적으로 개시한다.The first weight w1 is multiplied by the first variable y1 corresponding to the first element in calculating the score. Thus, the first weight w1 is a factor that determines the influence of the first element on the score. This will be described more specifically with reference to Fig. 6 below.

도면에서 미리 정해진 값(1, -1, 0)은 예시된 값으로서 실시예에 따라 변경될 수 있다. 예를 들어 제 1 가중치(w1)가 0인 것은 점수를 산정하는데 제 1 요소를 고려하지 않는다는 것을 의미하고, 제 1 가중치(w1)가 음수인 것은 점수를 산정하는데 제 1 요소를 제 1 가중치에 대응하는 만큼 감점 요인으로 고려한다는 것을 의미하고, 제 1 가중치(w1)가 양수인 것은 점수를 산정하는데 있어서 제 1 요소를 가중치에 대응하는 만큼 가점 요인으로 고려한다는 것을 의미한다.The predetermined value (1, -1, 0) in the figure can be changed according to the embodiment as an example value. For example, if the first weight w1 is 0, it means that the first factor is not considered in calculating the score. If the first weight w1 is negative, the score is calculated. If the first factor is set to the first weight And the first weight w1 is a positive number, it means that the first factor is considered as a point factor corresponding to the weight in calculating the score.

제 2 선택부(1222-2) 및 제 3 선택부(1222-3)의 구성 및 동작은 제 1 선택부(1222-1)와 실질적으로 동일하므로 구체적인 설명을 생략한다.The configurations and operations of the second selection unit 1222-2 and the third selection unit 1222-3 are substantially the same as those of the first selection unit 1222-1, and a detailed description thereof will be omitted.

도 4는 도 3의 제어부(1221)의 동작을 예시한 순서도이다.FIG. 4 is a flowchart illustrating the operation of the control unit 1221 of FIG.

본 실시예에서 가중치 제어신호는 각 각중치(w1 ~ w3)의 값을 직접 지정하는 역할을 하며 상태 벡터에 우선하여 고려된다.In the present embodiment, the weight control signal plays a role of directly designating the values of the respective weight values w1 to w3, and is considered in preference to the state vector.

제어부(1221)는 제 1 선택 신호(cw1)를 선택하는 동작(S10 ~ S15), 제 2 선택 신호(cw2)를 선택하는 동작(S20 ~ S28), 제 3 선택 신호(cw3)를 결정하는 동작(S30 ~ S38)을 수행한다.The control unit 1221 performs operations S10 to S15 for selecting the first selection signal cw1, operations S20 to S28 for selecting the second selection signal cw2, operation for determining the third selection signal cw3 (S30 to S38).

먼저 가중치 제어신호에 의한 제 1 가중치(w1) 내지 제 3 가중치(w3)가 0으로 초기화된다(S1).The first weight w1 through the third weight w3 generated by the weight control signal are initialized to zero (S1).

먼저 제 1 선택 신호(cw1)를 결정하는 동작을 설명한다.First, an operation of determining the first selection signal cw1 will be described.

가중치 제어신호에 의한 제 1 가중치(w1)의 값이 0인지 판단한다(S10).It is determined whether the value of the first weight w1 by the weight control signal is 0 (S10).

가중치 제어신호에 의한 제 1 가중치(w1)의 값이 0이면 제 1 선택 신호(cw1)의 값을 11로 지정하고(S15) 그렇지 않으면 현재 제 1 가중치(w1)의 값이 0인지 판단한다.If the value of the first weight w1 by the weight control signal is 0, the value of the first selection signal cw1 is set to 11 (S15). Otherwise, it is determined whether the value of the first weight w1 is 0.

제 1 선택 신호(cw1)의 값이 11로 지정되면 제 1 선택부(1222-1)는 0을 선택하고 이는 제 1 레지스터(1223-1)에 저장된다.When the value of the first selection signal cw1 is set to 11, the first selector 1222-1 selects 0 and is stored in the first register 1223-1.

현재 제 1 가중치(w1)의 값이 0이면 제 1 선택 신호(cw1)의 값을 10으로 지정하고(S14) 그렇지 않으면 제 1 선택 신호(cw1)의 값을 00으로 지정한다(S12).If the value of the first weight w1 is 0, the value of the first selection signal cw1 is set to 10 (S14). Otherwise, the value of the first selection signal cw1 is set to 00 (S12).

제 1 선택 신호(cw1)의 값이 10으로 지정되면 제 1 선택부(1222-1)는 기존의 제 1 가중치(w1)를 선택하고 제 1 선택 신호(cw1)의 값이 00으로 지정되면 제 1 선택부(1222-1)는 1을 선택하여 제 1 레지스터(1223-1)에 저장된다.When the value of the first selection signal cw1 is set to 10, the first selector 1222-1 selects the existing first weight w1 and when the value of the first selection signal cw1 is 00, 1 selection unit 1222-1 selects 1 and is stored in the first register 1223-1.

제 1 선택 신호(cw1)의 값이 정해지면 단계(S10)로 돌아가 전술한 동작을 반복한다. 이러한 반복은 요청 큐(110)의 정보가 갱신되는 주기에 따라 수행될 수 있다.When the value of the first selection signal cw1 is determined, the operation returns to step S10 and the above-described operation is repeated. This repetition may be performed according to the period in which the information in the request queue 110 is updated.

다음으로 제 2 선택 신호(cw2)를 선택하는 동작을 설명한다.Next, the operation of selecting the second selection signal cw2 will be described.

가중치 제어신호에 의한 제 2 가중치(w2)의 값이 0인지 판단한다(S20).It is determined whether the value of the second weight w2 based on the weight control signal is 0 (S20).

가중치 제어신호에 의한 제 2 가중치(w2)의 값이 0이면 제 2 선택 신호(cw2)의 값을 11로 지정하고(S28) 그렇지 않으면 현재 메모리 장치에 대하여 수행하는 동작이 읽기 요청에 관한 것인지 판단한다(S21).If the value of the second weight w2 by the weight control signal is 0, the value of the second selection signal cw2 is set to 11 (S28). Otherwise, it is determined whether the operation to be performed on the current memory device is related to the read request (S21).

현재 메모리 장치에 대하여 수행하는 동작이 읽기 요청에 관한 것이면 읽기 큐의 길이(RQL)가 제 1 임계점(TH1)을 초과하는지 판단하고(S22) 그렇지 않으면 제 2 선택 신호(cw2)의 값을 10으로 지정한다(S25). If the operation to be performed on the current memory device is related to the read request, it is determined whether the length (RQL) of the read queue exceeds the first threshold TH1 (S22). Otherwise, the value of the second selection signal cw2 is set to 10 (S25).

읽기 큐의 길이(RQL)이 제 1 임계점(TH1)을 초과하면 최대 처리 시간(WM)이 제 2 임계점(TH2)을 초과하는지 판단하고(S23) 그렇지 않으면 제 2 선택 신호(cw2)의 값을 10으로 지정한다(S25).It is determined whether the maximum processing time WM exceeds the second threshold TH2 when the length RQL of the read queue exceeds the first threshold TH1 at step S23. Otherwise, the value of the second selection signal cw2 is set at 10 (S25).

최대 처리 시간(WM)이 제 2 임계점(TH2)을 초과하면 제 2 선택 신호(cw2)의 값을 00으로 지정하고(S27) 그렇지 않으면 최대 처리 시간(WM)이 제 3 임계점(TH3) 미만인지 판단한다(S24). When the maximum processing time WM exceeds the second threshold TH2, the value of the second selection signal cw2 is set to 00 (S27). Otherwise, if the maximum processing time WM is less than the third threshold TH3 (S24).

최대 처리 시간(WM)이 제 3 임계점(TH3) 미만이면 제 2 선택 신호(cw2)의 값을 01로 지정하고(S26) 그렇지 않으면 제 2 선택 신호의 값을 10으로 지정한다(S25).If the maximum processing time WM is less than the third threshold TH3, the value of the second selection signal cw2 is set to 01 (S26). Otherwise, the value of the second selection signal is set to 10 (S25).

제 2 선택 신호(cw2)의 값이 정해지면 단계(S20)로 돌아가 전술한 동작을 반복한다. 이러한 반복은 요청 큐(110)의 정보가 갱신되는 주기에 따라 수행될 수 있다.When the value of the second selection signal cw2 is determined, the process returns to step S20 and the above-described operation is repeated. This repetition may be performed according to the period in which the information in the request queue 110 is updated.

마지막으로 제 3 선택 신호(cw3)를 선택하는 동작을 설명한다.Finally, the operation of selecting the third selection signal cw3 will be described.

가중치 제어신호에 의한 제 3 가중치(w3)의 값이 0인지 판단한다(S30).It is determined whether the value of the third weight w3 by the weight control signal is 0 (S30).

가중치 제어신호에 의한 제 3 가중치(w3)의 값이 0이면 제 3 선택 신호(cw3)의 값을 11로 지정하고(S38) 그렇지 않으면 현재 메모리 장치에 대하여 수행하는 동작이 읽기 요청에 관한 것인지 판단한다(S31).If the value of the third weight w3 by the weight control signal is 0, the value of the third selection signal cw3 is set to 11 (S38). Otherwise, it is determined whether the operation to be performed on the current memory device is related to the read request (S31).

현재 메모리 장치에 대하여 수행하는 동작이 읽기 요청에 관한 것이면 읽기 큐의 길이(RQL)이 제 1 임계점(TH1)을 초과하는지 판단하고(S32) 그렇지 않으면 제 3 선택 신호(cw3)의 값을 10으로 지정한다(S35). If the operation to be performed on the current memory device is related to the read request, it is determined whether the length (RQL) of the read queue exceeds the first threshold TH1 (S32). Otherwise, the value of the third selection signal cw3 is set to 10 (S35).

읽기 큐의 길이(RQL)이 제 1 임계점(TH1)을 초과하면 최대 처리 시간(WM)이 제 2 임계점(TH2)을 초과하는지 판단하고(S33) 그렇지 않으면 제 3 선택 신호(cw3)의 값을 10으로 지정한다(S35).It is determined whether the maximum processing time WM exceeds the second threshold TH2 when the length RQL of the read queue exceeds the first threshold TH1 in step S33. Otherwise, the value of the third selection signal cw3 is set to 10 (S35).

최대 처리 시간(WM)이 제 2 임계점(TH2)을 초과하면 제 3 선택 신호(cw3)의 값을 01로 지정하고(S37) 그렇지 않으면 최대 처리 시간(WM)이 제 3 임계점(TH3) 미만인지 판단한다(S34). If the maximum processing time WM exceeds the second threshold TH2, the value of the third selection signal cw3 is set to 01 (S37). Otherwise, if the maximum processing time WM is less than the third threshold TH3 (S34).

최대 처리 시간(WM)이 제 3 임계점(TH3) 미만이면 제 3 선택 신호(cw3)의 값을 00으로 지정하고(S36) 그렇지 않으면 제 3 선택 신호의 값을 10으로 지정한다(S25).If the maximum processing time WM is less than the third threshold TH3, the value of the third selection signal cw3 is set to 00 (S36). Otherwise, the value of the third selection signal is set to 10 (S25).

제 3 선택 신호(cw3)의 값이 정해지면 단계(S30)로 돌아가 전술한 동작을 반복한다. 이러한 반복은 요청 큐(110)의 정보가 갱신되는 주기에 따라 수행될 수 있다.If the value of the third selection signal cw3 is determined, the process returns to step S30 and the above-described operation is repeated. This repetition may be performed according to the period in which the information in the request queue 110 is updated.

위에서 제 1 내지 제 3 임계점(TH1, TH2, TH3)은 통상의 기술자에 의해 선택될 수 있는 임의의 상수이다.The first to third thresholds TH1, TH2 and TH3 are arbitrary constants which can be selected by a conventional descriptor.

도 5는 도 1의 스케줄러(130)의 일 실시예를 나타내는 블록도이다.5 is a block diagram illustrating one embodiment of the scheduler 130 of FIG.

본 실시예에서 스케줄러(130)는 점수 연산부(131)와 요청 선택부(132)를 포함할 수 있다.In this embodiment, the scheduler 130 may include a score calculator 131 and a request selector 132.

점수 연산부(131)는 요청 큐(110)에서 제공되는 정보로부터 산출되는 변수 값들과 가중치 생성부(120)에서 제공되는 가중치 벡터를 이용하여 점수 벡터를 생성한다.The score calculator 131 generates score vectors using the variable values calculated from the information provided in the request queue 110 and the weight vectors provided by the weight generator 120. [

점수 벡터는 요청 큐(110)에 저장된 각 요청에 대응하는 점수들을 원소로 포함한다. 요청 선택부(132)는 점수 벡터에 포함된 점수들 중 예를 들어 최대 점수에 대응하는 요청을 선택하여 출력한다.The score vector includes the scores corresponding to each request stored in the request queue 110 as elements. The request selector 132 selects and outputs a request corresponding to the maximum score among the scores included in the score vector, for example.

점수 연산부(131)는 각 요청에 대응하는 점수를 산출하기 위하여 변수 값들을 결정하고 변수 값들과 가중치 벡터의 원소들을 연산하여 점수를 산출한다.The score computing unit 131 determines variable values to calculate a score corresponding to each request, and calculates the scores by calculating the elements of the weight vector and the variable values.

도 6은 도 5의 점수 연산부(131)를 나타내는 블록도이다.6 is a block diagram showing the score computing unit 131 of FIG.

점수 연산부(131)는 요청 큐(110)의 정보를 이용하여 각 요청에 대응하여 변수를 결정하는 변수 결정부(1311)와 변수 결정부(1311)에서 출력된 변수 값들(y11, y12, y13, ...., yN1, yN2, yN3)과 가중치 벡터의 원소들(w1, w2, w3)을 이용하여 점수를 산출하는 연산부(1312-1 ~ 1312-N)를 포함한다. 이에 따라 제 1 내지 제 3 가중치(w1, w2, w3)의 값에 따라 점수가 달라질 수 있다.The score computing unit 131 includes a variable determining unit 1311 for determining a variable in response to each request using the information of the request queue 110 and the variable values y11, y12, y13, ..., yN1, yN2, yN3) and elements (w1, w2, w3) of the weight vector. Accordingly, scores may be changed according to the values of the first to third weights w1, w2, and w3.

본 실시예에서는 스케줄링시 3개의 요소를 고려함으로써 각 요청에 대하여 결정되는 변수의 개수가 3개로 주어진다. 스케줄링시 고려할 요소가 증감되는 경우 이에 따라 변수의 개수 및 가중치의 개수가 증감될 수 있다.In the present embodiment, considering the three factors in scheduling, the number of variables determined for each request is given as three. The number of variables and the number of weights can be increased or decreased when elements to be considered in scheduling are increased or decreased.

변수 결정부(1311)에서 각 변수 값들을 결정하는 방법은 미리 결정될 수 있다.A method for determining the respective variable values in the variable determining unit 1311 can be determined in advance.

도 7은 도 6의 변수 결정부(1311)에서 각 변수 값들을 결정하는 방법의 일 예를 나타내는 도표이다.FIG. 7 is a table showing an example of a method for determining variable values in the variable determining unit 1311 of FIG.

본 실시예에서 변수(y1)의 값은 0, 1 또는 변수(y1)의 이전 값 중 하나로 선택된다. 예를 들어 현재 쓰기 큐의 길이(WQL)가 하한선(LW) 미만이고 대응하는 요청의 종류가 읽기 요청이면 변수(y1) 값은 1로 정해지고 대응하는 요청의 종류가 쓰기 요청이면 변수(y1)의 값은 0으로 정해진다.In this embodiment, the value of the variable y1 is selected to be either 0, 1 or a previous value of the variable y1. For example, if the current write queue length (WQL) is less than the lower limit (LW) and the corresponding request type is a read request, the variable (y1) is set to 1. If the corresponding request type is a write request, Is set to zero.

또한 현재 쓰기 큐의 길이(WQL)가 상한선(HW) 이상이고 대응하는 요청의 종류가 읽기 요청이면 변수(y1) 값은 0으로 정해지고 대응하는 요청의 종류가 쓰기 요청이면 변수(y1)의 값은 1로 정해진다.If the current write queue length (WQL) is equal to or greater than the upper limit (HW) and the corresponding request type is a read request, the value of the variable (y1) is set to 0. If the type of the corresponding request is a write request, Is set to one.

또한 현재 쓰기 큐의 길이(WQL)가 하한선(LW) 이상 상한선(HW) 미만이면 변수(y1)의 값은 이전 값으로 정해진다.If the current write queue length (WQL) is less than the lower limit (LW) and the upper limit (HW), the value of the variable (y1) is set to the previous value.

위에서 상한선(HW)과 하한선(LW)은 통상의 기술자에 의해 임의로 선택될 수 있는 상수이다.The upper limit line HW and the lower limit line LW are constants that can be arbitrarily selected by a typical descriptor.

본 실시예에서 변수(y2)의 값은 0 또는 해당 요청이 대기한 사이클 수(WC) 중 하나로 선택된다.In this embodiment, the value of the variable y2 is selected to be either 0 or the number of cycles WC waiting for the request.

예를 들어 대응하는 요청을 처리하기 다음에 실행할 명령이 액티브 명령(ACT) 또는 칼럼 명령(COL)이면 변수(y2)의 값은 대기 사이클 수(WC)로 정해지고 프리차지 명령(PRE)이면 변수(y2)의 값은 0으로 정해진다.For example, if the instruction to be executed next after processing the corresponding request is an active instruction (ACT) or a column instruction (COL), the value of the variable y2 is determined by the number of wait cycles (WC) (y2) is set to zero.

본 실시예에서 변수(y3)의 값은 0, 1 또는 2로 선택된다.In this embodiment, the value of the variable y3 is selected to be 0, 1, or 2.

예를 들어 대응하는 요청을 처리하기 다음에 실행할 명령이 액티브 명령(ACT) 또는 프리차지 명령(COL)이면 변수(y3)의 값은 0으로 정해지고 다음에 실행할 명령이 칼럼 명령(COL)이면 변수(y3)의 값은 대응하는 요청이 읽기 요청인 경우 2 쓰기 요청인 경우 1로 정해진다.For example, if the command to be executed next after processing the corresponding request is the active command (ACT) or the precharge command (COL), the value of the variable y3 is set to 0. If the command to be executed next is the column command COL, The value of (y3) is set to 1 if the corresponding request is a read request or 2 if it is a write request.

변수 결정부(1311)는 위와 같은 동작을 수행하여 각 요청들에 대응하는 변수 값들을 결정한 후 이를 연산부(1312-1 ~ 1312-N)에 제공한다.The variable determining unit 1311 performs the above operation to determine the variable values corresponding to the respective requests, and provides the calculated values to the operation units 1312-1 to 1312-N.

이상에서 살펴본 바와 같이 각 요청들에 대한 점수는 변수 값들과 가중치를 연산하여 얻어지므로 가중치를 조절함으로써 각 요청의 점수가 달라져 실질적으로 스케줄링 규칙을 가변적으로 적용하는 효과가 있다.As described above, since the score for each request is obtained by calculating the variable values and the weights, the score of each request is changed by adjusting the weight, so that the scheduling rule is practically applied variably.

예를 들어 변수 값이 도 7과 같이 결정되는 경우 제 3 가중치(w3)의 값을 0으로 설정하면 스케줄러(120)는 FCFS(First Come First Served) 규칙으로 스케줄링 동작을 수행하고, 제 2 가중치(w2)의 값을 0으로 설정하면 스케줄러(120)는 FR-FCFS(First Ready - First Come First Served) 규칙으로 스케줄링 동작을 수행하게 된다.For example, when the value of the variable is determined as shown in FIG. 7, if the value of the third weight w3 is set to 0, the scheduler 120 performs a scheduling operation according to FCFS (First Come First Served) w2 is set to 0, the scheduler 120 performs the scheduling operation according to the FR-FCFS (First Ready-First Come First Served) rule.

이와 같이 본 발명은 스케줄링 규칙의 자유로운 변경을 통해 시스템의 성능을 최적화하는데 있어서 기본이 되는 기술적 사상을 제공한다.As described above, the present invention provides a technical idea that is fundamental in optimizing the performance of the system through free modification of the scheduling rules.

이상에서 도면을 참조하여 본 발명의 실시예를 개시하였다. 이상의 개시는 설명을 위한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다. The embodiments of the present invention have been described with reference to the drawings. The scope of the present invention is not limited to the scope of the present invention, and the scope of the present invention is defined by the scope of the following claims and their equivalents.

10: 호스트
100: 메모리 컨트롤러
110: 요청 큐
120: 가중치 생성부
121: 상태 관찰부
122: 가중치 결정부
1221: 제어부
1222-1: 제 1 선택부
1222-2: 제 2 선택부
1222-3: 제 3 선택부
1223-1: 제 1 레지스터
1223-2: 제 2 레지스터
1223-3: 제 3 레지스터
130: 스케줄러
131: 점수 연산부
1311: 변수 결정부
1312-1 ~1312-N: 연산부
132: 요청 선택부
140: 명령 생성부
20: 메모리 장치
10: Host
100: Memory controller
110: Request queue
120: weight generation unit
121:
122: weight determining unit
1221:
1222-1: first selection unit
1222-2: second selection unit
1222-3: third selection unit
1223-1: first register
1223-2: second register
1223-3: Third register
130: scheduler
131: score computing unit
1311: variable determining unit
1312-1 to 1312-N:
132: request selector
140:
20: Memory device

Claims (11)

호스트로부터의 제공되는 요청을 저장하는 요청 큐;
상기 요청 큐에 포함된 각 요청에 대하여 점수를 계산하고 상기 점수에 따라 상기 요청의 처리 순서를 결정하는 스케줄러; 및
상기 점수를 계산하는데 입력되는 다수의 변수 각각에 대한 가중치를 원소로 하는 가중치 벡터를 생성하는 가중치 생성부
를 포함하는 메모리 컨트롤러.
A request queue storing a provided request from the host;
A scheduler for calculating a score for each request included in the request queue and determining a processing order of the request according to the score; And
And a weight generating unit for generating a weight vector having an element as a weight for each of a plurality of variables input to calculate the score,
.
청구항 1에 있어서, 상기 가중치 생성부는
상기 메모리 컨트롤러의 동작 상태로부터 도출되는 인자를 원소로 포함하는 상태 벡터를 생성하는 상태 관찰부; 및
상기 상태 벡터 또는 가중치 제어신호에 따라 상기 가중치 벡터를 결정하는 가중치 결정부
를 포함하는 메모리 컨트롤러.
The apparatus of claim 1, wherein the weight generation unit
A state observing unit for generating a state vector including an element derived from an operating state of the memory controller as an element; And
A weight determining unit for determining the weight vector according to the state vector or the weight control signal,
.
청구항 2에 있어서, 상기 인자는 읽기 큐의 길이, 쓰기 큐의 길이, 상기 스케줄러에서 현재 선택한 요청의 종류, 최근 수행된 일정 개수의 요청들에 대한 처리 시간 중 최대 처리 시간 또는 프리페치 동작 시의 히트율을 포함하는 그룹으로부터 선택되는 메모리 컨트롤러.The method of claim 2, wherein the factor comprises at least one of a length of a read queue, a length of a write queue, a type of a request currently selected by the scheduler, a maximum processing time of a processing time for a recently executed predetermined number of requests, The rate being selected from the group comprising the rate. 청구항 2에 있어서, 상기 가중치 결정부는
상기 상태 벡터, 상기 가중치 제어신호 또는 상기 가중치 벡터의 현재 값에 따라 다수의 선택 신호를 생성하는 제어부; 및
상기 다수의 선택 신호에 따라 하나 또는 둘 이상의 상수 또는 상기 가중치 벡터의 현재 값을 포함하는 값들로부터 상기 가중치 벡터의 다음 값을 결정하는 선택부
를 포함하는 메모리 컨트롤러.
The apparatus of claim 2, wherein the weight determining unit
A controller for generating a plurality of selection signals according to the current value of the state vector, the weight control signal, or the weight vector; And
A selector for selecting a next value of the weight vector from values including one or more constants or a current value of the weight vector according to the plurality of selection signals,
.
청구항 4에 있어서, 상기 제어부는 상기 가중치 제어신호에 따라 상기 하나 또는 둘 이상의 상수 중 적어도 하나가 선택되도록 상기 다수의 선택 신호를 생성하는 메모리 컨트롤러.5. The memory controller of claim 4, wherein the controller generates the plurality of selection signals such that at least one of the one or more constants is selected according to the weight control signal. 청구항 4에 있어서, 상기 가중치 벡터의 현재 값을 저장하는 레지스터를 더 포함하는 메모리 컨트롤러.5. The memory controller of claim 4, further comprising a register for storing a current value of the weight vector. 청구항 1에 있어서, 상기 스케줄러는
상기 요청 큐에 저장된 각 요청에 대하여 상기 요청 큐의 상태 또는 상기 각 요청의 상태에 따라 결정되는 상기 다수의 변수와 상기 가중치 벡터를 연산하여 상기 점수를 연산하는 점수 연산부; 및
상기 점수에 따라 상기 요청 큐에 저장된 요청 중 어느 하나를 선택하는 요청 선택부
를 포함하는 메모리 컨트롤러.
The system according to claim 1, wherein the scheduler
A point calculator for calculating the score by calculating the plurality of variables and the weight vector determined according to the state of the request queue or the state of each request for each request stored in the request queue; And
A request selection unit for selecting any one of the requests stored in the request queue according to the score,
.
청구항 7에 있어서, 상기 점수 연산부는 상기 요청 큐의 상태 또는 상기 각 요청의 상태에 따라 상기 각 요청에 대응하는 상기 다수의 변수를 결정하는 변수 결정부 및
상기 변수 결정부에서 출력된 상기 다수의 변수와 상기 가중치 벡터를 연산하여 상기 점수를 출력하는 연산부
를 포함하는 메모리 컨트롤러.
The apparatus of claim 7, wherein the score computing unit comprises: a variable determining unit for determining the plurality of variables corresponding to each request according to the status of the request queue or the status of each request;
And a computing unit for computing the plurality of variables output from the variable determining unit and the weight vector,
.
청구항 8에 있어서, 상기 연산부는 상기 다수의 변수를 원소로 하는 벡터와 상기 가중치 벡터를 내적하여 상기 점수를 출력하는 메모리 컨트롤러.9. The memory controller of claim 8, wherein the arithmetic unit internally outputs the vector having the plurality of variables as elements and the weight vector to output the score. 청구항 8에 있어서, 상기 요청 큐의 상태는 읽기 큐의 길이 또는 쓰기 큐의 길이를 포함하는 메모리 컨트롤러.The memory controller of claim 8, wherein the state of the request queue comprises a length of a read queue or a length of a write queue. 청구항 8에 있어서, 상기 각 요청의 상태는 상기 각 요청의 대기 사이클 수, 상기 각 요청의 종류 또는 상기 각 요청의 실행을 위하여 메모리 장치에 제공할 명령의 종류를 포함하는 메모리 컨트롤러.

9. The memory controller of claim 8, wherein the status of each request includes a number of wait cycles of each request, a type of each request, or a type of command to provide to a memory device for execution of each request.

KR1020150018016A 2015-02-05 2015-02-05 Memory controller KR101993028B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150018016A KR101993028B1 (en) 2015-02-05 2015-02-05 Memory controller
US14/885,902 US9792065B2 (en) 2015-02-05 2015-10-16 Memory controller scheduling requests according to scores

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150018016A KR101993028B1 (en) 2015-02-05 2015-02-05 Memory controller

Publications (2)

Publication Number Publication Date
KR20160096762A true KR20160096762A (en) 2016-08-17
KR101993028B1 KR101993028B1 (en) 2019-06-26

Family

ID=56566838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150018016A KR101993028B1 (en) 2015-02-05 2015-02-05 Memory controller

Country Status (2)

Country Link
US (1) US9792065B2 (en)
KR (1) KR101993028B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430586B1 (en) * 2016-09-07 2019-10-01 Fireeye, Inc. Methods of identifying heap spray attacks using memory anomaly detection
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
KR20190047451A (en) * 2017-10-27 2019-05-08 에스케이하이닉스 주식회사 Semiconductor Memory System With Resistive Variable Memory Device and Method of Driving the Same
US10705885B2 (en) * 2018-01-31 2020-07-07 Palo Alto Networks, Inc. Autoscaling of data processing computing systems based on predictive queue length
GB2578600B (en) * 2018-10-31 2021-10-13 Advanced Risc Mach Ltd Memory transaction request management
US11526306B1 (en) * 2021-05-18 2022-12-13 Micron Technology, Inc. Command scheduling in a memory subsystem according to a selected scheduling ordering

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960035259A (en) * 1995-03-31 1996-10-24 리 페치 A computer processor comprising a register file having a reduced read and / or write port bandwidth
JP2000295247A (en) * 1999-04-09 2000-10-20 Nec Corp Scheduling method in queuing system and chuting blanks switch
JP2002358259A (en) * 2001-05-31 2002-12-13 Toshiba Corp File server having priority control function, and file access method and file access program in the server
US20100278190A1 (en) * 2009-04-29 2010-11-04 Yip Thomas C Hierarchical pipelined distributed scheduling traffic manager

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881264A (en) 1996-01-31 1999-03-09 Kabushiki Kaisha Toshiba Memory controller and memory control system
US6324624B1 (en) * 1999-12-28 2001-11-27 Intel Corporation Read lock miss control and queue management
US6499090B1 (en) 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7587549B1 (en) * 2005-09-13 2009-09-08 Agere Systems Inc. Buffer management method and system with access grant based on queue score
US8250227B2 (en) * 2007-03-02 2012-08-21 International Business Machines Corporation Providing different rates to different users of a download service
US20100325327A1 (en) 2009-06-17 2010-12-23 Freescale Semiconductor, Inc. Programmable arbitration device and method therefor
US8732538B2 (en) * 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960035259A (en) * 1995-03-31 1996-10-24 리 페치 A computer processor comprising a register file having a reduced read and / or write port bandwidth
JP2000295247A (en) * 1999-04-09 2000-10-20 Nec Corp Scheduling method in queuing system and chuting blanks switch
JP2002358259A (en) * 2001-05-31 2002-12-13 Toshiba Corp File server having priority control function, and file access method and file access program in the server
US20100278190A1 (en) * 2009-04-29 2010-11-04 Yip Thomas C Hierarchical pipelined distributed scheduling traffic manager

Also Published As

Publication number Publication date
KR101993028B1 (en) 2019-06-26
US20160231961A1 (en) 2016-08-11
US9792065B2 (en) 2017-10-17

Similar Documents

Publication Publication Date Title
KR101993028B1 (en) Memory controller
US10653960B2 (en) Method for controlling interaction with virtual target, terminal, and storage medium
US8482571B2 (en) Information processing processing apparatus, method for controlling information processing apparatus, and program
CN112305907B (en) Self-adaptive PID temperature control method, device and equipment
KR20130019674A (en) Terminal and method for performing application thereof
US11275744B2 (en) Disaggregating latent causes for computer system optimization
US10275371B2 (en) Method and apparatus for controlling memory operation
US11544064B2 (en) Processor for executing a loop acceleration instruction to start and end a loop
JP2008503829A (en) Image resource loading method and image resource loading system
KR20220027964A (en) Real-time GPU rendering with performance-guaranteed power management
CN109923498A (en) Application for electrical performance management dissects
KR20220059194A (en) Method and apparatus of object tracking adaptive to target object
KR20210064239A (en) Techniques for Inducing High Input Latency in Multiplayer Programs
KR20210021260A (en) Methods and apparatus to dynamically throttle compute engines
US10922612B2 (en) Information processing apparatus and information processing method
CN114310879A (en) Robot control method, control cabinet and system
JPWO2021229626A5 (en)
US9430421B2 (en) Interrupt signal arbitration
JP2012242969A (en) Data processor, data processor control method and program
JP2018521421A (en) Vector operand bit size control
KR102359404B1 (en) Memory controller and operating method thereof
JP7175124B2 (en) Information processing device, position prediction method and position prediction program
JP2014002642A (en) Storage system, input/output control device, input/output control method and computer program
Zhao et al. HeteGen: Heterogeneous Parallel Inference for Large Language Models on Resource-Constrained Devices
JPWO2021176514A5 (en)

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