KR102359404B1 - 메모리 컨트롤러 및 그 동작 방법 - Google Patents

메모리 컨트롤러 및 그 동작 방법 Download PDF

Info

Publication number
KR102359404B1
KR102359404B1 KR1020140161363A KR20140161363A KR102359404B1 KR 102359404 B1 KR102359404 B1 KR 102359404B1 KR 1020140161363 A KR1020140161363 A KR 1020140161363A KR 20140161363 A KR20140161363 A KR 20140161363A KR 102359404 B1 KR102359404 B1 KR 102359404B1
Authority
KR
South Korea
Prior art keywords
bank
request
requests
unit
memory controller
Prior art date
Application number
KR1020140161363A
Other languages
English (en)
Other versions
KR20160059643A (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 KR1020140161363A priority Critical patent/KR102359404B1/ko
Publication of KR20160059643A publication Critical patent/KR20160059643A/ko
Application granted granted Critical
Publication of KR102359404B1 publication Critical patent/KR102359404B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

본 발명의 일 실시예에 의한 메모리 컨트롤러는 호스트로부터 제공된 다수의 요청의 개수를 감시하는 감시부; 다수의 요청의 처리 순서를 제어하되 감시부의 출력에 따라 뱅크를 닫을지 여부를 제어하는 중재부; 및 중재부에서 선택된 요청에 따라 메모리 장치를 제어하는 명령을 생성하는 명령 생성부를 포함한다.

Description

메모리 컨트롤러 및 그 동작 방법{MEMORY CONTROLLER AND OPERATING METHOD THEREOF}
본 발명은 스케줄링 동작을 수행하는 메모리 컨트롤러 및 그 동작 방법에 관한 것이다. 보다 구체적으로는 스케줄링시 로우 히트 여부에 대한 예측이 실패한 경우에 발생하는 성능 저하를 줄일 수 있도록 스케줄링 동작을 수행하는 메모리 컨트롤러 및 그 동작 방법에 관한 것이다.
도 1 내지 도 3은 종래의 메모리 스케줄링 방법을 설명하는 순서도이다.
먼저 요청이 입력되기를 기다린다(S10). 요청이 제공되는 경우 읽기 또는 쓰기 요청인지 판단하여(S20), 읽기 또는 쓰기 요청이면 대응하는 뱅크 큐에 다음 요청이 있는지 판단한다(S30).
뱅크 큐에 다음 요청이 있으면 뱅크의 맨 처음 요청에서 로우 히트가 발생하는지 판단하고(S40), 로우 히트가 발생하면 뱅크를 오픈 상태로 유지하고(S60) 그렇지 않으면 뱅크를 닫은 후(S50) 요청을 대기하는 상태로 이동한다(S10).
그런데 단계(S30)의 판단 결과 뱅크 큐에 다음 요청이 없는 경우 후속 단계의 처리와 관련하여 다양한 선행 기술이 개시되고 있다.
도 1의 경우는 뱅크 큐에 다음 요청이 없으면 현재 뱅크를 오픈 상태로 유지하는데 비하여(S50), 도 2의 경우는 뱅크 큐에 다음 요청이 없으면 현재 뱅크를 닫는다(S50).
도 3의 스케줄링 방법에서는 각 뱅크에 대하여 과거 일정 시간 동안의 로우 히트율이 임계점보다 큰지 여부를 판단하고(S70), 임계점보다 크면 뱅크를 오픈 상태로 유지하고(S60), 그렇지 않으면 뱅크를 닫는다(S50).
이러한 종래 기술들은 로우 히트율을 높이고자 하는 점에 초점을 맞추고 있다. 그러나 로우 히트에 대한 예측이 실패하는 경우에는 예측 실패를 만회하기 위하여 성능상의 손실을 감수해야 하는 문제가 있다.
더구나 도 3의 경우에는 과거 일정 시간 동안의 로우 히트율을 계산하고 이를 지속적으로 관리하기 위하여 추가적인 회로를 필요로 하는 문제가 있다.
본 발명은 메모리 스케줄링 동작을 제어하는 메모리 컨트롤러 및 그 동작 방법을 제공하되 특히 메모리 스케줄링시 로우 히트 여부에 대한 예측이 실패한 경우 이를 만회하는 과정에서 소요되는 성능 손실을 최소화할 수 있는 메모리 컨트롤러 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 메모리 컨트롤러는 호스트로부터 제공된 다수의 요청의 개수를 감시하는 감시부; 다수의 요청의 처리 순서를 제어하되 감시부의 출력에 따라 뱅크를 닫을지 여부를 제어하는 중재부; 및 중재부에서 선택된 요청에 따라 메모리 장치를 제어하는 명령을 생성하는 명령 생성부를 포함한다.
본 발명의 일 실시예에 의한 메모리 컨트롤러의 동작 방법은 제 1 뱅크에 대한 읽기 또는 쓰기 동작을 제어하는 제 1 단계; 제 1 뱅크에 대한 다른 요청이 있는지 판단하는 제 2 단계; 및 제 1 뱅크에 대한 다른 요청이 없는 경우 요청의 개수를 참조하여 제 1 뱅크를 닫을지 여부를 제어하는 제 3 단계를 포함한다.
본 발명의 일 실시예에 의한 시스템은 메모리 장치; 메모리 장치에 대하여 데이터를 읽거나 쓰기 위한 요청을 제공하는 호스트; 및 호스트에서 제공된 요청에 따라 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 메모리 컨트롤러는 호스트로부터 제공된 다수의 요청의 개수를 감시하는 감시부; 다수의 요청의 처리 순서를 제어하되 감시부의 출력에 따라 뱅크를 닫을지 여부를 제어하는 중재부; 및 중재부에서 선택된 요청에 따라 메모리 장치를 제어하는 명령을 생성하는 명령 생성부를 포함한다.
본 기술을 적용함으로써 메모리 스케줄링 시 로우 히트 여부에 대한 예측이 실패하더라도 이로 인한 손실을 만회하기 위한 비용을 최소화함으로써 결과적으로 메모리 시스템의 성능을 향상시킬 수 있다.
도 1 내지 도 3은 종래 기술에 의한 스케줄링 방법을 나타낸 순서도.
도 4는 본 발명의 일 실시예에 의한 메모리 컨트롤러를 포함하는 메모리 시스템의 블록도.
도 5는 본 발명의 일 실시예에 의한 메모리 컨트롤러의 동작을 나타낸 순서도.
도 6은 로우 히트에 대한 예측 실패 시의 동작을 나타내는 설명도.
도 7은 예측 실패시 다른 뱅크의 요청을 처리하는 동작을 나타낸 순서도.
도 8은 본 발명의 일 실시예에 의한 메모리 컨트롤러의 상세 블록도.
도 9는 도 8의 명령 선택부의 동작을 나타낸 순서도.
도 10 및 도 11는 본 발명의 효과를 설명하는 그래프.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예에 대해서 상세히 설명한다. 이하의 설명에서 동일한 참조 부호는 실질적으로 동일한 대상을 지시한다.
도 4는 본 발명의 일 실시예에 의한 메모리 시스템의 블록도이다.
호스트(10)는 다수의 요청을 메모리 컨트롤러(100)에 제공한다. 메모리 컨트롤러(100)는 호스트(10)로부터 제공된 다수의 요청에 대응하는 명령을 생성하여 메모리 장치(20)를 제어한다.
본 발명의 일 실시예에 의한 메모리 컨트롤러(100)는 다수의 뱅크 큐(111)를 포함하는 큐 그룹(110), 큐 그룹(110)에 포함된 요청의 개수를 감시하여 중재부(120)를 제어하는 감시부(130), 감시부(130)의 제어에 따라 큐 그룹(110)으로부터 제공되는 요청들의 처리 순서를 정하는 중재부(120), 중재부(120)에서 선택된 요청에 대응하여 메모리 장치(20)에 제공할 명령을 생성하는 명령 생성부(140)를 포함한다.
본 발명의 일 실시예에 의한 메모리 컨트롤러(100)에서 감시부(130)는 큐 그룹(110)에 포함된 요청들의 개수가 임계점을 초과하는지 여부를 지속적으로 감시한다.
중재부(120)는 현재 처리하고 있는 요청에 대응하는 뱅크 큐(111)에 다음 요청이 없는 경우 해당 뱅크를 닫을지 여부를 결정하기 위하여 감시부(130)로부터의 감시 결과를 사용한다.
예를 들어 현재 뱅크 큐(111)에 다음 요청이 없는 경우 중재부(120)는 큐 그룹(110)에 포함된 요청의 총 개수가 임계점을 초과하면 뱅크를 닫고, 그렇지 않으면 뱅크를 열어 둔다.
큐 그룹(110)에 포함된 요청의 총 개수가 임계점을 초과한다면 해당 뱅크를 닫은 상태에서 로우 히트에 대한 예측이 실패하더라도 해당 뱅크를 다시 여는 동안 다른 요청을 처리함으로써 예측 실패로 인한 성능 저하를 보상할 기회가 상대적으로 더 많다.
이에 비하여 요청의 총 개수가 더 적은 경우에는 뱅크를 닫은 상태에서 로우 히트에 대한 예측이 실패하는 경우 뱅크를 다시 여는 동안 다른 요청을 처리할 가능성이 줄어들고 이에 따라 해당 뱅크를 다시 여는 동안의 성능 저하를 보상할 가능성 역시 줄어들게 된다. 따라서 이 경우에는 뱅크를 열어두는 편이 유리한 것으로 판단하여 로우를 열어 둔다.
중재부(120)는 감시부(130)에서 제공되는 감시 결과에 따라 뱅크를 닫는 경우 이를 위한 프리차지 동작을 수행하도록 명령 생성부(140)를 제어할 수 있다.
도 5는 본 발명의 일 실시예에 의한 메모리 컨트롤러의 동작을 나타내는 순서도이다.
먼저 요청이 제공되기를 기다린다(S110). 요청이 제공되면 읽기 또는 쓰기 요청인지 판단하고(S120), 읽기 또는 쓰기 요청이면 대응하는 뱅크 큐에 다음 요청이 있는지 판단한다(S130).
뱅크 큐에 다음 요청이 있으면 뱅크의 맨 처음 요청에서 로우 히트가 발생하는지 판단하고(S140), 로우 히트가 발생하면 뱅크를 오픈 상태로 유지하고(S160) 그렇지 않으면 뱅크를 닫은 후(S150) 요청을 대기하는 상태로 이동한다(S110).
단계(S130)의 판단 결과 뱅크 큐에 다음 요청이 없는 경우 본 발명의 일 실시예에서는 큐 그룹(110)에 포함된 전체 요청의 개수를 임계점과 비교한다(S170).
비교 결과 전체 요청의 개수가 임계점보다 크면 뱅크를 닫고(S150), 그렇지 않으면 뱅크를 열어둔다(S160).
전술한 바와 같이 전체 요청의 개수가 임계점보다 크다면 뱅크를 닫더라도 예측이 실패하여 이를 다시 여는 동안 다른 뱅크에 대한 요청을 처리함으로써 예측 실패로 인한 성능 저하를 만회할 수 있으나 그렇지 않은 경우에는 예측 실패로 인한 성능 저하를 만회할 가능성이 적어지므로 뱅크를 열어두는 편이 유리하다.
도 6은 예측 실패시 본 발명의 동작을 나타낸 설명도이다.
예를 들어 0번 뱅크를 닫았으나 0번 뱅크에 대해 읽기 동작을 수행해야 하는 경우를 가정한다.
(A)와 같이 다른 뱅크에 대한 요청이 없다면 0번 뱅크에 대하여 액티브 동작이 수행된 이후 적어도 tRCD 동안 다른 동작을 수행하지 못하여 예측 실패로 인한 시간 손실이 발생한다.
그러나 (B)와 같이 0 번 뱅크가 동작하지 못하는 시간 동안 다른 뱅크에 대한 요청을 처리할 수 있다면 그만큼 예측 실패로 인한 성능 저하는 줄어들게 된다.
도 7은 예측 실패시 다른 뱅크의 요청을 처리하는 동작을 나타낸 순서도이다.
먼저 다음 사이클이 되기를 기다린다(S210).
닫힌 뱅크에 대한 요청이 존재하는지 판단하여(S220) 닫힌 뱅크에 대한 요청이 존재하지 않으면 다른 뱅크의 요청을 수행한다(S230).
닫힌 뱅크에 대한 요청이 존재하는 경우는 예측이 실패한 경우에 해당한다. 닫힌 뱅크에 대한 요청이 있으면 해당 요청에 대응하여 액티브 동작이 수행되었는지 확인한다(S240).
액티브 동작이 수행되지 않았다면 닫힌 뱅크에 대하여 액티브 동작을 수행하고(S250), 그렇지 않으면 대기 시간(예를 들어 도 6의 tRCD) 동안 다른 뱅크의 요청을 처리한다(S260).
도 8은 본 발명의 일 실시예에 의한 메모리 컨트롤러(100)에서 중재부(120)의 세부 구성을 나타낸 블록도이다.
중재부(120)는 동작 계산부(121), 동작 큐(122), 동작 선택부(123)를 포함한다.
동작 계산부(121)는 큐 그룹(110)으로부터 제공되는 각 요청에 대하여 그 요청을 처리하기 위하여 다음에 수행할 동작이 무엇인지를 계산하여 제공된 요청의 정보를 동작 큐(122)에 입력한다.
동작 큐(122)는 동작의 종류에 따라 액티브 동작이 필요한 요청의 정보를 저장하는 액티브 큐(1221), 프리차지 동작이 필요한 요청의 정보를 저장하는 프리차지 큐(1222), 읽기 동작이 필요한 요청의 정보를 저장하는 읽기 큐(1223), 쓰기 동작이 필요한 요청의 정보를 저장하는 쓰기 큐(1224)를 포함한다.
도 9는 동작 계산부(121)의 동작을 설명하는 순서도이다.
일반적으로 중재부(130)는 모든 뱅크에 대해서 오픈 여부, 오픈된 로우의 주소에 대한 정보를 가지고 있으며 이 정보는 액티브 또는 프리차지 동작이 수행될 때마다 갱신된다.
동작 계산부(121)는 다음 사이클까지 대기하고(S310), 다음 사이클이 되면 큐 그룹(110)으로부터 제공된 요청에 대응하는 뱅크가 오픈되었는지 판단한다(S320).
뱅크가 오픈되지 않았다면 제공된 요청의 처리를 위하여 액티브 동작이 필요하므로 액티브 큐(1221)에 요청에 대한 정보를 기록한다(S330).
뱅크가 오픈되었다면 제공된 요청에 대응하는 로우 주소가 현재 열린 로우 주소와 일치하는지 판단한다(S340).
일치하지 않는다면 현재 열린 로우에 대하여 프리차지 동작이 필요하므로 프리차지 큐(1222)에 제공된 요청에 대한 정보를 기록한다(S350).
일치한다면 제공된 요청에 대해서 읽기 또는 쓰기 동작이 필요하므로 읽기 큐(1223) 또는 쓰기 큐(1224)에 제공된 요청에 대한 정보를 저장한다(S360).
동작 계산부(121)는 제공된 요청의 처리를 위하여 필요한 동작이 모두 수행될 때까지 요청에 대한 정보를 관리하여 해당 요청의 실행에 필요한 동작들이 여러 사이클에 나누어 동작 큐(122)에 제공되도록 제어할 수 있다.
동작 계산부(121)는 큐 그룹(110)으로부터 제공되는 각 요청들에 대해서 전술한 동작을 병렬적으로 수행할 수 있다. 이 경우 동작 큐(122)는 특정 시점에서 다수의 요청들의 처리를 위해 필요한 다수의 동작 정보를 함께 저장할 수 있다.
동작 선택부(123)는 동작 큐(122)에 포함된 다수의 동작 정보들을 종합하여 실행 순서를 결정하고 실행할 동작을 선택한다. 실행 순서를 결정함에 있어서 종래에 알려진 다양한 기법들을 선택적으로 사용하거나 이들을 조합하여 사용할 수 있다.
선택된 동작에 대한 정보는 명령 생성부(140)에 제공되고 명령 생성부(140)는 해당 동작을 수행하기 위하여 메모리 장치(20)를 제어하기 위한 명령을 생성한다.
동작 선택부(123)는 스케줄링 동작시 감시부(130)의 감시 결과를 참조한다. 보다 구체적으로 동작 선택부(123)는 읽기 또는 쓰기 동작을 수행하면서 대응하는 뱅크에 다음 요청이 없는 상태가 되면 감시부(130)의 감시 결과를 참조한다.
참조 결과 큐 그룹(110)에 포함된 요청의 총 개수가 임계점을 초과하면 동작 선택부(123)는 해당 뱅크를 닫기 위하여 프리차지 동작에 관한 정보를 명령 생성부(140)에 추가로 제공할 수 있다.
도 10 및 도 11는 본 발명의 효과를 나타내는 그래프이다.
그래프에서 종래 기술 1은 도 2에 도시된 기술을 지칭하고 종래 기술 2는 도 3에 도시된 기술을 지칭한다.
도 10의 그래프는 데이터 버스의 활용도를 나타낸다.
데이터 버스의 활용도는 일정 시간 중 데이터 버스에 유효한 데이터가 포함된 시간의 비율을 나타낸 것이다.
데이터 버스의 활용도가 높다는 것은 일정 시간 동안 더 많은 데이터를 처리했음을 나타내므로 그렇지 않은 경우에 비하여 성능이 우수한 것으로 볼 수 있다.
도시된 바와 같이 데이터 버스 활용도 측면에서 본 발명의 일 실시예는 종래에 비하여 향상된 효과를 나타낸다.
도 11의 그래프는 호스트 레이턴시를 나타낸다. 도 11의 그래프는 종래기술 1을 기준으로 종래기술 2와 본 발명의 일 실시예를 비교하여 나타낸 것이다.
호스트 레이턴시는 메모리 컨트롤러가 호스트로부터 요청을 입력받은 이후 처리 결과를 호스트에 제공하기까지 걸리는 시간을 나타낸다.
그래프의 가로축은 호스트의 종류와 이에 따른 읽기 또는 쓰기 동작을 나타낸다. 예를 들어 CPUR은 CPU에서의 읽기 요청에 대한 경우를 나타내고, CPUW는 CPU에서의 쓰기 요청에 대한 경우를 나타낸다.
도시된 바와 같이 본 발명의 일 실시예의 경우 종래 기술들에 비하여 레이턴시가 더 단축되어 성능이 개선되었음을 알 수 있다.
이상에서 도면을 참조하여 본 발명의 실시예를 개시하였다. 이상의 개시는 설명을 위한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다.
10: 호스트
100: 메모리 컨트롤러
110: 큐 그룹
111: 뱅크 큐
120: 중재부
121: 동작 계산부
122: 동작 큐
1221: 액티브 큐
1222: 프리차지 큐
1223: 읽기 큐
1224: 쓰기 큐
123: 동작 선택부
130: 감시부
140: 명령 생성부
20: 메모리 장치

Claims (20)

  1. 호스트로부터 제공된 다수의 요청의 개수를 감시하는 감시부;
    상기 다수의 요청의 처리 순서를 제어하되 상기 감시부의 출력에 따라 뱅크를 닫을지 여부를 제어하는 중재부; 및
    상기 중재부에서 선택된 요청에 따라 메모리 장치를 제어하는 명령을 생성하는 명령 생성부
    를 포함하되,
    상기 중재부는 현재 처리 중인 요청에 대응하는 제 1 뱅크에 관한 요청이 더 없는 경우 상기 감시부의 출력을 참조하여 상기 다수의 요청의 개수가 임계점보다 큰 경우 뱅크를 닫도록 제어하고 그렇지 않은 경우 뱅크를 열어 두도록 제어하는 메모리 컨트롤러.
  2. 삭제
  3. 삭제
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서, 상기 다수의 요청을 뱅크별로 나누어 저장하는 다수의 뱅크 큐를 더 포함하고 상기 감시부는 상기 뱅크 큐를 참조하여 상기 다수의 요청의 개수를 감시하는 메모리 컨트롤러.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 1에 있어서, 상기 중재부는
    상기 다수의 요청 각각에 대하여 실행할 동작의 종류를 결정하는 동작 계산부;
    상기 동작 계산부에서 결정된 동작을 종류별로 저장하는 동작 큐; 및
    상기 동작 큐에 포함된 동작들의 실행 순서를 결정하는 동작 선택부
    를 포함하는 메모리 컨트롤러.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 5에 있어서, 상기 동작 계산부는 요청에 대응하는 뱅크 또는 로우의 상태를 참조하여 실행할 동작의 종류를 계산하는 메모리 컨트롤러.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 5에 있어서, 상기 동작 큐는
    액티브 동작이 필요한 요청의 정보를 저장하는 액티브 큐;
    프리차지 동작이 필요한 요청의 정보를 저장하는 프리차지 큐;
    읽기 동작이 필요한 요청의 정보를 저장하는 읽기 큐; 및
    쓰기 동작이 필요한 요청의 정보를 저장하는 쓰기 큐
    를 포함하는 메모리 컨트롤러.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 5에 있어서, 상기 동작 선택부는 상기 감시부의 출력에 따라 상기 뱅크에 대하여 프리차지 동작이 수행되도록 상기 명령 생성부를 제어하는 메모리 컨트롤러.
  9. 제 1 뱅크에 대한 읽기 또는 쓰기 동작을 제어하는 제 1 단계;
    상기 제 1 뱅크에 대한 다른 요청이 있는지 판단하는 제 2 단계; 및
    상기 제 1 뱅크에 대한 다른 요청이 없는 경우 요청의 개수를 참조하여 상기 제 1 뱅크를 닫을지 여부를 제어하는 제 3 단계
    를 포함하되,
    상기 요청의 개수는 전체 뱅크에 대한 요청의 총합이고, 상기 제 3 단계는 상기 요청의 개수가 임계점을 초과하는 경우 상기 제 1 뱅크를 닫도록 제어하는 메모리 컨트롤러의 동작 방법.
  10. 삭제
  11. 삭제
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 9에 있어서, 상기 제 1 뱅크가 닫힌 경우 상기 제 1 뱅크에 대한 요청이 있는지 판단하는 제 4 단계; 및
    상기 제 1 뱅크에 대한 요청이 있는 경우 상기 제 1 뱅크에서 요청을 처리할 수 있을 때까지의 제 1 시간 동안 상기 제 1 뱅크가 아닌 다른 뱅크에 대한 요청을 우선적으로 처리하도록 제어하는 제 5 단계
    를 더 포함하는 메모리 컨트롤러의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 9에 있어서,
    상기 제 1 뱅크에 대한 다른 요청이 있는 경우 상기 제 1 뱅크에 대한 요청 중 어느 하나가 로우 히트 상태인지 판단하는 제 6 단계; 및
    로우 히트가 아닌 것으로 판단되는 경우 상기 제 1 뱅크를 닫도록 제어하고 그렇지 않은 경우 상기 제 1 뱅크를 닫지 않도록 제어하는 제 7 단계
    를 더 포함하는 메모리 컨트롤러의 동작 방법.
  14. 메모리 장치;
    상기 메모리 장치에 대하여 데이터를 읽거나 쓰기 위한 요청을 제공하는 호스트; 및
    상기 호스트에서 제공된 요청에 따라 상기 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는
    상기 호스트로부터 제공된 다수의 요청의 개수를 감시하는 감시부;
    상기 다수의 요청의 처리 순서를 제어하되 상기 감시부의 출력에 따라 뱅크를 닫을지 여부를 제어하는 중재부; 및
    상기 중재부에서 선택된 요청에 따라 상기 메모리 장치를 제어하는 명령을 생성하는 명령 생성부
    를 포함하되,
    상기 중재부는 현재 처리 중인 요청에 대응하는 제 1 뱅크에 관한 요청이 더 없는 경우 상기 감시부의 출력을 참조하여 상기 다수의 요청의 개수가 임계점보다 큰 경우 상기 제 1 뱅크를 닫도록 제어하고 그렇지 않은 경우 상기 제 1 뱅크를 열어 두도록 제어하는 시스템.
  15. 삭제
  16. 삭제
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 14에 있어서, 상기 메모리 컨트롤러는 상기 다수의 요청을 뱅크별로 나누어 저장하는 다수의 뱅크 큐를 더 포함하고 상기 감시부는 상기 뱅크 큐를 참조하여 상기 다수의 요청의 개수를 감시하는 시스템.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 14에 있어서, 상기 중재부는
    상기 다수의 요청 각각에 대하여 실행할 동작의 종류를 결정하는 동작 계산부;
    상기 동작 계산부에서 결정된 동작을 종류별로 저장하는 동작 큐; 및
    상기 동작 큐에 포함된 동작들의 실행 순서를 결정하는 동작 선택부
    를 포함하는 시스템.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 18에 있어서, 상기 동작 계산부는 요청에 대응하는 뱅크 또는 로우의 상태를 참조하여 실행할 동작의 종류를 계산하는 시스템.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    청구항 18에 있어서, 상기 동작 선택부는 상기 감시부의 출력에 따라 상기 뱅크에 대하여 프리차지 동작이 수행되도록 상기 명령 생성부를 제어하는 시스템.



KR1020140161363A 2014-11-19 2014-11-19 메모리 컨트롤러 및 그 동작 방법 KR102359404B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140161363A KR102359404B1 (ko) 2014-11-19 2014-11-19 메모리 컨트롤러 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140161363A KR102359404B1 (ko) 2014-11-19 2014-11-19 메모리 컨트롤러 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20160059643A KR20160059643A (ko) 2016-05-27
KR102359404B1 true KR102359404B1 (ko) 2022-02-15

Family

ID=56105873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140161363A KR102359404B1 (ko) 2014-11-19 2014-11-19 메모리 컨트롤러 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102359404B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100524575B1 (ko) 1996-11-15 2006-01-27 매그나칩 반도체 유한회사 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법
JP2011505032A (ja) 2007-11-15 2011-02-17 マイクロン テクノロジー, インク. メモリアクセスの順序を変更するシステム、装置、および方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130065957A (ko) * 2011-12-12 2013-06-20 숭실대학교산학협력단 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101574394B1 (ko) * 2013-03-04 2015-12-04 단국대학교 산학협력단 메모리 구조를 분석하는 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100524575B1 (ko) 1996-11-15 2006-01-27 매그나칩 반도체 유한회사 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법
JP2011505032A (ja) 2007-11-15 2011-02-17 マイクロン テクノロジー, インク. メモリアクセスの順序を変更するシステム、装置、および方法

Also Published As

Publication number Publication date
KR20160059643A (ko) 2016-05-27

Similar Documents

Publication Publication Date Title
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
US9406368B2 (en) Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM)
US10318420B2 (en) Draining a write queue based on information from a read queue
JP5552569B2 (ja) アクセスレイテンシを低減するバスアービトレーション技法
KR102537211B1 (ko) 비휘발성 메모리 디바이스의 열화에 대한 동적 보상
KR102130578B1 (ko) 반도체 장치
US10089266B2 (en) Power saving feature for storage subsystems
US8688942B2 (en) Method and system controlling page open time for memory device
JP2016515269A5 (ko)
KR101993028B1 (ko) 메모리 컨트롤러
CN105278871B (zh) 通过在写入相变存储器之前读取来实现增强性能以避免写入取消
KR102359404B1 (ko) 메모리 컨트롤러 및 그 동작 방법
CN107291379B (zh) 存储器系统及其控制方法
US8930776B2 (en) Implementing DRAM command timing adjustments to alleviate DRAM failures
US11923037B2 (en) Memory control circuit and method for controlling the same
US20140095825A1 (en) Semiconductor device and operating method thereof
KR102032892B1 (ko) 반도체 장치 및 그 동작 방법
KR102161311B1 (ko) 메모리 컨트롤러
KR102204459B1 (ko) 메모리 컨트롤러 및 그 동작 방법
KR102202211B1 (ko) 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법
JP2022163404A (ja) メモリ制御回路、情報処理システム及びメモリ制御方法
JP6468100B2 (ja) メモリシステム、メモリ制御方法及びプログラム
JP2019121343A (ja) ディスクCacheのプリフェッチスペースの調整方法
JP2015014872A (ja) データ処理装置、データ処理方法およびプログラム

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