KR20110127707A - 기억 제어 장치 및 그 제어 방법 - Google Patents

기억 제어 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20110127707A
KR20110127707A KR1020117021771A KR20117021771A KR20110127707A KR 20110127707 A KR20110127707 A KR 20110127707A KR 1020117021771 A KR1020117021771 A KR 1020117021771A KR 20117021771 A KR20117021771 A KR 20117021771A KR 20110127707 A KR20110127707 A KR 20110127707A
Authority
KR
South Korea
Prior art keywords
request
memory
memory access
bank
access request
Prior art date
Application number
KR1020117021771A
Other languages
English (en)
Other versions
KR101306670B1 (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 후지쯔 가부시끼가이샤
Publication of KR20110127707A publication Critical patent/KR20110127707A/ko
Application granted granted Critical
Publication of KR101306670B1 publication Critical patent/KR101306670B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

우선도 제어 레지스터(104)는, 메모리 요구 발행 가부(可否) 신호 생성부(106) 내로부터 얻어지는 메모리 요구의 발행 가부 상황과 각 #2∼#5의 각 판정 회로(105)로부터 얻어지는 REQ_BUF(102) 내의 메모리 요구의 체류(滯留) 상황에 의거하여, 내부의 천이 상태를 동적으로 제어한다. 이에 따라, DRAM 모듈(109)의 액세스 규정에 대응한 우선 순위의 건너뛰기 제어가 가능해진다.

Description

기억 제어 장치 및 그 제어 방법{MEMORY CONTROL DEVICE AND METHOD FOR CONTROLLING SAME}
본 발명은, 기억 제어 장치 및 그 제어 방법에 관한 것이다.
SDRAM(Synchronous Dynamic Random Access Memory) 등의 복수의 뱅크를 갖는 멀티 뱅크 메모리에 대한 메모리 액세스 제어에 있어서, 복수의 CPU나 입출력 장치로부터의 메모리 요구의 명령을 조정(調停)하기 위해, 우선도 제어 레지스터를 이용한 조정 회로가 이용되는 경우가 있다. 이 회로에서는, 복수의 메모리 요구가 요구처의 뱅크마다 리퀘스트 버퍼라고 불리는 큐에 배분하여 유지된다. 그리고, 각 리퀘스트 버퍼로부터 판독되어 우선도 제어 레지스터에 저장되는 메모리 요구의 우선 순위에 의거하여, 우선 순위가 높은 리퀘스트 버퍼로부터 메모리 요구가 판독되어 실행된다. 이 제어 방식에서는, 어느 리퀘스트 버퍼의 메모리 요구의 우선 순위가 가장 높아져 실행되면, 다음의 명령 실행 사이클에서는 그 리퀘스트 버퍼의 우선 순위는 가장 낮아진다. 한편, 다음의 명령 실행 사이클에 있어서, 가장 과거에 명령 판독이 실행된, 즉 최근 가장 명령 판독이 실행되고 있지 않은 레퀘스트 버퍼의 우선 순위가 최고 순위로 올려져, 그 리퀘스트 버퍼로부터 판독되고 있는 메모리 요구가 실행된다. 이 제어 방식은, 소위 LRU(Least Recently Used)에 의한 제어 방식이다.
여기에서, DRAM에는, 액세스 규정이 존재한다. 액세스 규정이란 예를 들면, 어느 명령 실행 사이클에서 DRAM에 대하여 데이터 리드 요구가 실행된 경우에 있어서, 그 다음에 데이터 라이트 요구(이종 명령)가 실행될 때에는, 예를 들면 7사이클 기다려야만 한다는 규정을 말한다. 혹은, 어느 명령 실행 사이클에서 DRAM의 어느 뱅크에 대하여 데이터 리드 요구가 실행된 경우에 있어서, 그 다음에 다른 뱅크에 대하여 데이터 리드 요구(동종 명령)가 실행될 때에는, 예를 들면 2사이클 기다려야만 한다는 규정을 말한다.
여기서, 우선도 제어 레지스터를 이용한 메모리 액세스 제어의 종래 기술에 있어서, 우선도 제어 레지스터에 저장되는 메모리 요구의 우선 순위에 의거하여 선택된 1개의 리퀘스트 버퍼로부터 판독된 메모리 요구(A)가, DRAM의 액세스 규정을 만족하고 있지 않은 경우를 상정한다. 이 경우에는, 메모리 요구(A)는, 액세스 규정이 만족하는 명령 실행 사이클까지, 그 실행이 기다려지게 된다.
그러나, 우선도 제어 레지스터에 저장되는 메모리 요구의 우선 순위에 의거하여 선택되지 않았던 리퀘스트 버퍼 중에는, 액세스 규정을 만족하는 메모리 요구가 판독되고 있는 리퀘스트 버퍼가 존재할 수 있다. 예를 들면, 현재 실행 중인 메모리 요구가 데이터 리드 요구였던 경우에, 다음의 명령 실행 사이클에 의해 선택된 메모리 요구가 데이터 라이트 요구였던 경우에는, 그 데이터 라이트 요구는 선행하는 데이터 리드 요구의 실행 개시로부터 예를 들면 7사이클 기다려야만 한다. 여기에서, 상기 선행하는 데이터 리드 요구의 실행 뱅크와는 다른 실행 뱅크에 대한 다른 데이터 리드 요구가, 우선도 제어 레지스터에 의해 선택되지 않았던 리퀘스트 버퍼 중에 존재한다고 한다. 이 경우에는, 동종 명령에 대한 대기 사이클은 이종 명령에 대한 대기 사이클보다 짧게 끝나기 때문에, 상기 다른 데이터 리드 요구는, 선행하는 데이터 리드 요구의 실행 개시로부터 예를 들면 3사이클 후에는 실행 가능해진다.
이와 같은 케이스에 있어서, 우선도 제어 레지스터에 의해 리퀘스트 버퍼로부터 현재 판독되고 있는 메모리 요구(A)(이종 명령)가 실행된 후가 아니면, 다른 리퀘스트 버퍼 중에 존재하는 액세스 규정을 만족하고 있는 메모리 요구(B)는 실행할 수 없었다. 즉, 우선도 제어 레지스터를 이용한 메모리 액세스 제어의 종래 기술에서는, 상술한 바와 같은 케이스에 있어서, 메모리 요구의 실행 효율이 저하해버린다는 문제점을 갖고 있었다.
일본국 특개평6-161941호 공보 일본국 특개평11-272567호 공보 일본국 특개2005-173859호 공보 일본국 특개2008-503808호 공보
그래서, 본 발명의 1가지의 측면에서는, DRAM 등의 기억 장치의 액세스 규정을 만족하는 리퀘스트 버퍼의 우선 순위가 높아지는 바와 같은 우선 순위 제어를 가능하게 하는 것을 목적으로 한다.
양태의 일례에서는, 연산 처리 장치와 제1 메모리 뱅크에 대응하는 제1 및 제2 메모리 뱅크를 갖는 기억 장치에 접속됨과 함께, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를 상기의 기억 장치에 발행하는 기억 제어 장치로서 실현되고, 이하의 구성을 갖는다.
제1 요구 기억부는, 제1 메모리 뱅크에 대한 메모리 액세스 요구를 유지한다.
제2 요구 기억부는, 제2 메모리 뱅크에 대한 메모리 액세스 요구를 유지한다.
디코드부는, 연산 처리 장치로부터 수신하는 메모리 액세스 요구를, 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 제1 요구 기억부 또는 제2 요구 기억부에 배분한다.
선택부는, 제1 요구 기억부와 제2 요구 기억부에 접속되고, 제1 요구 기억부 또는 제2 요구 기억부에 유지되는 메모리 액세스 요구를, 선택 신호에 의거하여 선택해서 출력한다.
제1 판정 회로는, 제1 요구 기억부에 유지되는 메모리 액세스 요구가, 제1 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 제1 메모리 뱅크에 발행할 수 있는지 없는지의 제1 판정 결과를 출력한다.
제2 판정 회로는, 제2 요구 기억부에 유지되는 메모리 액세스 요구가, 제2 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 제2 메모리 뱅크에 발행할 수 있는지 없는지의 제2 판정 결과를 출력한다.
제3 판정 회로는, 선택 회로가 선택한 메모리 액세스 요구가, 기억 장치에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 기억 장치에 발행할 수 있는지 없는지의 제3 판정 결과를 출력한다.
우선 순위 제어 회로는, 제1 판정 회로와 제2 판정 회로에 접속됨과 함께, 제1 내지 제3 판정 결과에 의거하여, 제1 판정 회로에 유지되는 메모리 액세스 요구 또는 제2 판정 회로에 유지되는 메모리 액세스 요구를 선택하는 선택 신호를 출력한다.
이상의 구성에 의해, 이미 발행한 메모리 액세스 요구의 발행 가부(可否) 상황과 각 요구 기억부 내의 메모리 액세스 요구의 체류(滯留) 상황에 의거하여, 우선 순위의 천이 상태를 동적으로 제어하는 것이 가능해져, 기억 장치의 액세스 규정에 대응한 우선 순위의 건너뛰기 제어가 가능해진다. 이 제어는, 간단한 구성의 판정 회로와, 간단한 구성의 우선 순위 제어 회로에 의해 실현하는 것이 가능하다.
이와 같이 하여, 기억 제어 장치와 기억 장치, 또는 이들을 연결하는 버스를 효율적으로 사용하는 것이 가능해진다.
도 1은 메모리 제어 장치의 실시형태를 나타내는 구성도.
도 2는 메모리 요구 배분 회로의 구성예를 나타내는 도면.
도 3은 판정 회로의 구성예를 나타내는 도면.
도 4는 메모리 요구 발행 가부 신호 생성부의 구성예를 나타내는 도면.
도 5는 우선도 제어 레지스터의 동작 설명도.
도 6은 우선도 제어 레지스터의 회로 구성예를 나타내는 도면.
도 7은 본 실시형태의 동작 플로우 차트.
도 8은 본 실시형태와 대비되는 종래 기술의 동작 플로우 차트.
도 9는 본 실시형태가 적용되는 컴퓨터 시스템의 구성예를 나타내는 도면.
이하, 개시의 기억 제어 장치 및 그 제어 방법을 실시하기 위한 형태에 대해서 도면을 참조하면서 상세히 설명한다.
도 1은 메모리 제어 장치의 실시형태를 나타내는 구성도이다.
메모리 제어 장치(100)는, 1개 이상의 CPU(107)(#0∼#x) 또는 IO(입출력) 장치(108)(#0∼#y)와, 1매 이상의 DRAM 모듈(109)과 접속한다.
메모리 제어 장치(100)에 있어서, 메모리 요구 배분 회로(101)는, 도 2에 나타나는 바와 같이, 뱅크 어드레스 디코드 회로(201)를 포함한다. 이 뱅크 어드레스 디코드 회로(201)는, 도 1의 CPU(107) 또는 IO 장치(108)로부터 DRAM 모듈(109)에의 데이터 리드나 데이터 라이트의 메모리 요구를 수취한다. 뱅크 어드레스 디코드 회로(201)는, 메모리 요구로부터 인식되는 DRAM 모듈(109)을 구성하는 N개의 뱅크에 대응하는 뱅크 어드레스에 따라, 송출처를 N개의 리퀘스트 버퍼(REQ_BUF)(102) 그룹으로부터 선택한다. 그리고, 뱅크 어드레스 디코드 회로(201)는, 선택한 REQ_BUF(102)에 메모리 요구를 세트한다. 도 1 및 도 2의 예에서는, DRAM 모듈(109)을 구성하는 뱅크는 #0∼#3의 4뱅크로 구성되고(N=4), 그에 대응하여, REQ_BUF(102)도 #0∼#3의 4개가 설치된다. REQ_BUF(102)는, 예를 들면 FIFO(First In First Out : 선입선출) 등의 버퍼 회로에 의해 실현된다.
셀렉터 회로(103)는, 메모리 요구가 존재하는 REQ_BUF(102) 중, 우선도 제어 레지스터(104)가 나타내는 우선 순위가 가장 높은 것을 선택한다.
판정 회로(105)(#1)는, 셀렉터 회로(103)에 의해 선택된 메모리 요구가 발행 가능한지 아닌지를, 메모리 요구 발행 가부 신호 생성부(106)가 생성하는 메모리 요구 발행 가부 신호에 의거하여 검사한다. 그리고, 판정 회로(105)(#1)는, 상기 메모리 요구가 발행 가능하다고 판정한 경우만, DRAM 모듈(109)에 대하여 셀렉터 회로(103)에 의해 선택된 메모리 요구를 발행한다.
판정 회로(105)(#1)는, 예를 들면 도 3에 나타나는 회로에 의해 실현된다. 도 3에서, 디코드부(301)는, 셀렉터 회로(103)에 의해 선택된 메모리 요구를 디코드한다. 이 결과, 디코드부(301)는, 뱅크 #0 리드, 뱅크 #1 리드, 뱅크 #2 리드, 뱅크 #3 리드, 뱅크 #0 라이트, 뱅크 #1 라이트, 뱅크 #2 라이트, 뱅크 #3 라이트 중 1개의 출력만을 “1”로 하고, 다른 출력은 “0”으로 한다. 환언하면, 디코드부(301)는, 1핫(1―hot) 디코더이다. 예를 들면, 디코드부(301)는, 메모리 요구가 DRAM 모듈(109)의 뱅크 #0에 액세스하는 데이터 리드 요구의 명령인 경우에는, 뱅크 #0 리드의 출력만을 “1”로 한다. 마찬가지로, 디코드부(301)는, 메모리 요구가 DRAM 모듈(109)의 뱅크 #0에 액세스하는 데이터 라이트 요구의 명령인 경우에는, 뱅크 #0 라이트의 출력만을 “1”로 한다.
다른 뱅크에 대해서도 마찬가지이다.
AND(논리곱) 회로(302)는, 예를 들면 뱅크 #0 리드와 메모리 요구 발행 가부 신호 생성부(106)가 출력하는 뱅크 #0 가능을 나타내는 메모리 요구 발행 가부 신호와의 AND 논리를 연산한다. 마찬가지로, 뱅크 #1 리드와 뱅크 #1 리드 가능, 뱅크 #2 리드와 뱅크 #2 리드 가능, 뱅크 #3 리드와 뱅크 #3 리드 가능, 뱅크 #0 라이트와 뱅크 #0 라이트 가능, 뱅크 #1 라이트와 뱅크 #1 라이트 가능, 뱅크 #2 라이트와 뱅크 #2 라이트 가능, 뱅크 #3 라이트와 뱅크 #3 라이트 가능의 각 AND 논리가 연산된다. AND 회로(302)로부터의 각 AND 논리 연산 결과는, OR(논리합) 회로(303)를 통해 메모리 요구 발행 가능 신호가 출력된다. OR 회로(303)는, 모든 AND 회로(302)의 출력에 대해서, OR 논리의 연산을 행한다. 도 1의 판정 회로(105)는, 이 메모리 요구 발행 가능 신호가 출력된 경우에, 셀렉터 회로(103)가 선택한 메모리 요구를 DRAM 모듈(109)에 대하여 발행한다. 예를 들면, 메모리 요구가 뱅크 #0 리드의 명령이었던 경우에 있어서, 메모리 요구 발행 가부 신호 생성부(106)가 뱅크 #0 가능을 나타내는 메모리 요구 발행 가부 신호를 출력하고 있으면, 메모리 요구 발행 가부 신호가 출력된다. 한편, 메모리 요구가 뱅크 #0 리드의 명령이었던 경우에 있어서, 메모리 요구 발행 가부 신호 생성부(106)가 뱅크 #0 가능을 나타내는 메모리 요구 발행 가부 신호를 출력하고 있지 않으면, 메모리 요구 발행 가부 신호는 출력되지 않는다. 다른 뱅크 및 데이터 라이트 요구의 명령에 관해서도 마찬가지이다.
도 1에 나타나는 #2∼#5의 판정 회로(105)도, 도 3에 예시되는 판정 회로(105)(#1)와 거의 동일한 기능을 갖지만, 각각 담당하는 뱅크의 메모리 요구만을 감시하면 된다. 예를 들면, 판정 회로(105)(#2)는, REQ_BUF(102)(#0)로부터 뱅크 #0 리드 또는 뱅크 #0 라이트가 출력되는지 아닌지를 감시하고, 각각 메모리 요구 발행 가부 신호 생성부(106)로부터 뱅크 #0 리드 가능 또는 뱅크 #0 라이트 가능이 입력하고 있는 경우에, 뱅크 #0에 관한 메모리 요구 발행 가부 신호를 출력한다. 판정 회로(105)(#3)는, REQ_BUF(102)(#1)로부터 뱅크 #1 리드 또는 뱅크 #1 라이트가 출력되는지 아닌지를 감시하고, 각각 메모리 요구 발행 가부 신호 생성부(106)로부터 뱅크 #1 리드 가능 또는 뱅크 #1 라이트 가능이 입력하고 있는 경우에, 뱅크 #1에 관한 메모리 요구 발행 가부 신호를 출력한다. 판정 회로(105)(#4)는, REQ_BUF(102)(#2)로부터 뱅크 #2 리드 또는 뱅크 #2 라이트가 출력되는지 아닌지를 감시하고, 각각 메모리 요구 발행 가부 신호 생성부(106)로부터 뱅크 #2 리드 가능 또는 뱅크 #2 라이트 가능이 입력하고 있는 경우에, 뱅크 #2에 관한 메모리 요구 발행 가부 신호를 출력한다. 판정 회로(105)(#5)는, REQ_BUF(102)(#3)로부터 뱅크 #3 리드 또는 뱅크 #3 라이트가 출력되는지 아닌지를 감시하고, 각각 메모리 요구 발행 가부 신호 생성부(106)로부터 뱅크 #3 리드 가능 또는 뱅크 #3 라이트 가능이 입력하고 있는 경우에, 뱅크 #3에 관한 메모리 요구 발행 가부 신호를 출력한다.
도 1의 메모리 요구 발행 가부 신호 생성부(106)는, 예를 들면 도 4에 나타나는 회로에 의해 실현된다. 도 4에서, 다단 구성의 플립플롭(flip-flop) 회로(401)는, 발행 완료 메모리 액세스 정보(발행 완료된 메모리 요구)를 순차 유지한다. 플립플롭 회로(401)의 단수(段數)는, DRAM 모듈(109)의 액세스 규약을 판정할 수 있는 만큼의 과거의 발행 완료 메모리 액세스 정보의 유지수에 대응한다. 제어 회로(402)는, 플립플롭 회로(401)에 유지된 발행 완료 메모리 액세스 정보 그룹에 의거하여 DRAM 모듈(109)의 액세스 규약을 판정한다. 이 결과, 제어 회로(402)는, 뱅크 #0 리드 가능, 뱅크 #1 리드 가능, 뱅크 #2 리드 가능, 뱅크 #3 리드 가능, 뱅크 #0 라이트 가능, 뱅크 #1 라이트 가능, 뱅크 #2 라이트 가능, 뱅크 #3 라이트 가능의 메모리 요구 발행 가부 신호를 출력한다. 예를 들면, 현재 DRAM 모듈(109)에 대하여 발행되고 있는 메모리 요구가 뱅크 #0에 대한 데이터 리드 요구인 경우를 생각한다. 이 경우, 현재의 명령 실행 사이클로부터 예를 들면 7사이클 후에 뱅크 #0 라이트 가능, 뱅크 #1 라이트 가능, 뱅크 #2 라이트 가능, 뱅크 #3 라이트 가능의 각 메모리 요구 발행 가부 신호가 “1”이 된다. 또한, 현재의 명령 실행 사이클로부터 예를 들면 2사이클 후에 뱅크 #1 리드 가능, 뱅크 #2 리드 가능, 뱅크 #3 리드 가능의 각 메모리 요구 발행 가부 신호가 “1”이 된다. 제어 회로(402)는, 이와 같은 액세스 규칙의 알고리즘을 실행하는 회로이다.
도 1의 우선도 제어 레지스터(104)는, #1∼#5의 각 판정 회로(105)의 출력에 의거하여, 이하에 나타나는 바와 같이 동작한다.
우선, 우선도 제어 레지스터(104)는, 판정 회로(105)가, 셀렉터 회로(103)가 선택한 REQ_BUF(102)로부터 판독된 메모리 요구를 DRAM 모듈(109)에 발행한 경우에, 다음의 명령 실행 사이클에서는 그 REQ_BUF(102)의 우선 순위가 최하위가 되도록 내부의 천이 상태를 갱신한다.
또한, 우선도 제어 레지스터(104)는, #2∼#5 중 어느 것의 판정 회로(105)가 #0∼#3 중 어느 것의 REQ_BUF(102)에 대해서 메모리 요구를 발행 가능하다고 판정한 경우에, 그 REQ_BUF(102)의 우선 순위가 높아지도록 내부의 천이 상태를 갱신한다.
우선도 제어 레지스터(104)는, 도 5에 나타나는 바와 같이, 그 내부에 우선도 제어 레지스터_01, 우선도 제어 레지스터_02, 우선도 제어 레지스터_03, 우선도 제어 레지스터_12, 우선도 제어 레지스터_13, 우선도 제어 레지스터_23의 6개의 회로를 갖는다.
우선도 제어 레지스터_01는, REQ_BUF(102)(#0)와 REQ_BUF(102)(#1)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_01이 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#0)의 우선 순위가 REQ_BUF(102)(#1)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_01이 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#1)의 우선 순위가 REQ_BUF(102)(#0)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터_02는, REQ_BUF(102)(#0)와 REQ_BUF(102)(#2)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_02가 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#0)의 우선 순위가 REQ_BUF(102)(#2)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_02가 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#2)의 우선 순위가 REQ_BUF(102)(#0)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터_03는, REQ_BUF(102)(#0)와 REQ_BUF(102)(#3)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_03이 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#0)의 우선 순위가 REQ_BUF(102)(#3)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_03이 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#3)의 우선 순위가 REQ_BUF(102)(#0)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터_12는, REQ_BUF(102)(#1)와 REQ_BUF(102)(#2)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_12가 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#1)의 우선 순위가 REQ_BUF(102)(#2)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_12가 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#2)의 우선 순위가 REQ_BUF(102)(#1)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터_13는, REQ_BUF(102)(#1)와 REQ_BUF(102)(#3)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_13이 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#1)의 우선 순위가 REQ_BUF(102)(#3)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_13이 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#3)의 우선 순위가 REQ_BUF(102)(#1)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터_23는, REQ_BUF(102)(#2)와 REQ_BUF(102)(#3)의 우선 순위를 유지한다. 도 5에 나타나는 바와 같이, 우선도 제어 레지스터_23이 유지하는 값이 “0”일 때에는, REQ_BUF(102)(#2)의 우선 순위가 REQ_BUF(102)(#3)의 우선 순위보다 높음을 나타낸다. 우선도 제어 레지스터_23이 유지하는 값이 “1”일 때에는, REQ_BUF(102)(#3)의 우선 순위가 REQ_BUF(102)(#2)의 우선 순위보다 높음을 나타낸다.
우선도 제어 레지스터(104)는, 상기 6개의 우선도 제어 레지스터에 의해 얻어지는 각 우선 순위를 비교함으로써 우선 순위가 가장 높은 REQ_BUF(102)를 결정하고, 그 정보를 셀렉터 회로(103)에 통지한다. 셀렉터 회로(103)는, 그 통지된 REQ_BUF(102)로부터 출력되는 메모리 요구를 선택한다.
도 6은, 우선도 제어 레지스터(104)를 구성하는 우선도 제어 레지스터_01, 우선도 제어 레지스터_02, 우선도 제어 레지스터_03, 우선도 제어 레지스터_12, 우선도 제어 레지스터_13, 우선도 제어 레지스터_23의 각 회로를 실현하는 회로 구성예를 나타내는 도면이다. 여기에서, 1개의 우선도 제어 레지스터를 우선도 제어 레지스터_ij라 한다. 즉, ij의 조합은, (01), (02), (03), (12), (13) 및 (23)이다. 도 6은, 우선도 제어 레지스터_ij의 실현예를 나타내는 도면이다.
도 6에서, OR 회로(601)의 제1 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#1)의 뱅크 #i 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #i 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력이 입력한다. OR 회로(601)의 제2 입력으로서는, OR 회로(607)의 출력이 입력한다.
OR 회로(601)의 출력은 AND 회로(602)의 제1 입력이 된다. AND 회로(602)의 제2 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#1)의 뱅크 #j 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #j 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력의 반전 출력이 입력한다.
AND 회로(602)의 출력은, 플립플롭 회로(603)에 입력한다.
NAND 회로(604)의 제1 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#i+2)의 뱅크 #i 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #i 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력이 입력한다. NAND(부정적 논리곱) 회로(604)의 제2 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#i+3)의 뱅크 #j 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #j 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력의 반전 출력이 입력한다.
AND 회로(605)의 제1 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#i+2)의 뱅크 #i 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #i 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력의 반전 출력이 입력한다. AND 회로(605)의 제2 입력으로서는, 도 3의 구성예를 갖는 판정 회로(105)(#i+3)의 뱅크 #j 리드가 입력하는 AND 회로(302)의 출력 및 뱅크 #j 라이트가 입력하는 AND 회로(302)의 출력을 OR 연산하여 얻어지는 출력이 입력한다.
AND 회로(606)의 제1 입력으로서는 NAND 회로(604)의 출력이 입력한다. AND 회로(606)의 제2 입력으로서는 플립플롭 회로(603)의 출력이 입력한다.
OR 회로(607)의 제1 입력으로서는 AND 회로(606)의 출력이 입력한다. OR 회로(607)의 제2 입력으로서는 AND 회로(605)의 출력이 입력한다. OR 회로(607)의 출력은, OR 회로(601)의 제2 입력이 된다.
플립플롭 회로(603)의 출력이, 우선도 제어 레지스터_ij의 출력치가 된다. 플립플롭 회로(603)의 출력치가 “0”일 때에는, REQ_BUF(102)(#i)의 우선 순위가 REQ_BUF(102)(#j)의 우선 순위보다 높음을 나타낸다. 플립플롭 회로(603)의 출력치가 “1”일 때에는, REQ_BUF(102)(#j)의 우선 순위가 REQ_BUF(102)(#i)의 우선 순위보다 높음을 나타낸다.
여기서, (ij)=(01)이라고 한다. 그리고, 셀렉터 회로(103)에 있어서, REQ_BUF(102)(#i=#0)로부터의 뱅크 #0에 대한 메모리 요구가 선택되어 있어, 판정 회로(105)(#1)로부터의 뱅크 #0에 대응하는 AND 회로(302)(도 3)의 출력이 “1”이 되어 있다고 한다. 이 결과, 도 6의 OR 회로(601)의 출력이 “1”이 된다. 이 경우에는, 판정 회로(105)(#1)로부터의 다른 REQ_BUF(102)(#j=#1)에 대응하는 AND 회로(302)의 출력은 “0”이다. 이 때문에, AND 회로(602)의 출력이 “1”이 되어, 플립플롭 회로(603)에 “1”이 세트된다. 이 결과, 다음 이후의 명령 실행 사이클에서는, 우선도 제어 레지스터_01의 출력치는 “1”이 되어, REQ_BUF(102)(#i=#0)의 우선 순위는 REQ_BUF(102)(#j=#1)의 우선 순위보다 내려간다. REQ_BUF(102)(#i=#0)가 관계하는 다른 우선도 제어 레지스터_ij에서도 마찬가지로 동작하여, 결국, REQ_BUF(102)(#i=#0)의 우선 순위는 가장 낮아진다.
그 후 예를 들면, 판정 회로(105)(#j+2=#3)에 있어서 REQ_BUF(102)(#j=#1)의 메모리 요구가 실행 가능하다고 판정되어, 뱅크 #1에 대응하는 AND 회로(302)(도 3)의 출력이 “1”이 되어 있다고 한다. 한편, 판정 회로(105)(#i+2=#2)에 있어서 REQ_BUF(102)(#i=#0)의 메모리 요구는 실행 불가능하다고 판정되어, 뱅크 #0에 대응하는 AND 회로(302)(도 3)의 출력은 “0”이 되어 있다고 한다. 이 결과, AND 회로(605)의 출력이 “1”이 되어, 그 값이 OR 회로(607 및 601)를 통해 AND 회로(602)에 입력한다. 여기에서, 셀렉터 회로(103)는 REQ_BUF(102)(#i=#0)의 출력을 선택한 그대로의 상태로 되어 있으면, 판정 회로(105)(#1)로부터의 REQ_BUF(102)(#j=#1)에 대응하는 AND 회로(302)의 출력은 “0” 그대로이다. 이 결과, AND 회로(602)의 출력이 “1”이 되어 플립플롭 회로(603)의 출력은 “1”이 된다. 따라서, REQ_BUF(102)(#j=#1)의 우선 순위가 높아진다. REQ_BUF(102)(#j=#1)가 관계하는 다른 우선도 제어 레지스터_ij에서도 마찬가지로 동작하여, 결국, REQ_BUF(102)(#j=#1)의 우선 순위는 가장 높아진다. 이와 같이 하여, 액세스 규정이 판정된 결과, 실행 가능하다고 판정된 메모리 요구에 대해서는, 본 실시형태의 우선도 제어 레지스터(104)에 의해, 우선 순위가 높아져 해당하는 REQ_BUF(102)로부터의 메모리 요구가 빨리 선택되도록 동작한다.
한편 예를 들면, REQ_BUF(102)(#0)로부터의 메모리 요구의 발행에 의해 우선도 제어 레지스터_01에 의해 플립플롭 회로(603)의 출력치가 1이 되어, REQ_BUF(102)(#i=#0)의 우선 순위가 낮은 상태가 된 후, 다음과 같은 케이스를 생각한다. 즉, 판정 회로(105)(#i+2=#2)에 있어서 REQ_BUF(102)(#i=#0)의 메모리 요구가 연속하여 실행 가능(예를 들면 동종 명령)하다고 판정되어 뱅크 #0에 대응하는 AND 회로(302)(도 3)의 출력이 “1”이 되어 있다고 한다. 이때, 판정 회로(105)(#j+2=#3)에 있어서 REQ_BUF(102)(#j=#1)의 메모리 요구는 실행 불가능하다고 판정되어, 뱅크 #1에 대응하는 AND 회로(302)(도 3)의 출력은 “0”이 되어 있다고 한다. 이 결과, NAND 회로(604)의 출력이 “0”이 되어, AND 회로(606)의 출력이 “0”이 된다. 한편, AND 회로(605)의 출력도 “0”이 된다. 이 결과, OR 회로(607)의 출력이 “0”이 된다. 또한, 셀렉터 회로(103)에서의 선택 상태의 변화에 의해, 판정 회로(105)(#1)로부터의 뱅크 #0에 대응하는 AND 회로(302)(도 3)의 출력은 “0”으로 변화해 있다고 한다. 이에 따라, OR 회로(601)의 출력이 “0”이 되어 AND 회로(602)의 출력도 “0”이 되는 결과, 플립플롭 회로(603)의 출력이 “0”으로 변화한다. 이와 같이 하여, 메모리 요구의 발행에 의해 우선 순위가 일단 내려간 REQ_BUF(102)(#0)에 대해서, 발행 가능한 메모리 요구가 있으면 다시 우선 순위를 올리는 바와 같은 동작이 실행된다.
이와 같이 하여, 메모리 요구 발행 가부 신호 생성부(106)로부터의 메모리 요구의 발행 가부 상황과 #2∼#5의 각 판정 회로(105)로부터의 각 REQ_BUF(102) 내의 메모리 요구의 체류 상황에 의거하여, 우선도 제어 레지스터(104) 내의 각 우선도 제어 레지스터_ij의 천이 상태가 제어된다. 이에 따라, DRAM 모듈(109)의 액세스 규정에 대응한 우선 순위의 건너뛰기 제어가 가능해진다. 이 제어는, #2∼#5의 간단한 구성의 판정 회로(105)와, 도 6에 예시되는 바와 같은 간단한 구성의 우선도 제어 레지스터_ij에 의해 실현하는 것이 가능하다.
이상의 도 1∼도 6의 구성을 갖는 메모리 제어 장치(100)의 실시예의 구체적인 동작에 대해서, 이하에 설명한다.
REQ_BUF(102)(#0)에 뱅크 #0에 대한 데이터 라이트 요구가 1개, REQ_BUF(102)(#1)에 뱅크 #1에 대한 데이터 리드 요구가 1개, REQ_BUF(102)(#2)에 뱅크 #2에 대한 데이터 라이트 요구가 1개 유지되어 있다고 한다. 또한, REQ_BUF(102)(#3)에는 메모리 요구는 유지되어 있지 않다고 한다. 또한, 우선 순위의 제어는, 기본적으로 LRU(Least Recently Used)에 따른다고 한다.
여기서, 우선도 제어 레지스터(104)에 의해, 우선 순위가 REQ_BUF(102)(#0)>REQ_BUF(102)(#1)>REQ_BUF(102)(#2)>REQ_BUF(102)(#3)를 나타내고 있는 케이스로 설명한다.
처음에, 셀렉터 회로(103)는, 우선도 제어 레지스터(104)로부터 REQ_BUF(102)(#0)가 통지되어 있음으로써, 우선 순위가 가장 높은 REQ_BUF(102)(#0)로부터 판독되는 뱅크 #0에 대한 데이터 라이트 요구를 선택한다. 판정 회로(105)(#1)에 있어서, 메모리 요구 발행 가부 신호 생성부(106)로부터의 메모리 요구 발행 가부 신호에 의거하여, 뱅크 #0에 대한 데이터 라이트 요구가 발행 가능하다고 판정되어, DRAM 모듈(109)에 상기 메모리 요구가 발행된다. 이때 우선도 제어 레지스터(104) 내의 도 6의 구성예를 갖는 각 우선도 제어 레지스터_ij에 유지되는 값에 대하여 논리 연산을 행함으로써, REQ_BUF(102)(#0)의 우선 순위를 최저로 한다. 이 결과, 우선 순위가, REQ_BUF(102)(#1)>REQ_BUF(102)(#2)>REQ_BUF(102)(#3)>REQ_BUF(102)(#0)로 갱신된다.
다음의 명령 실행 사이클에서, 셀렉터 회로(103)는, 우선도 제어 레지스터(104)로부터 REQ_BUF(102)(#1)가 통지되어 있음으로써, 우선 순위가 가장 높은 REQ_BUF(102)(#1)로부터 판독되는 뱅크 #1에 대한 데이터 리드 요구를 선택한다. 이 경우에 통상은, DRAM 모듈(109)에서는, 데이터 라이트 요구의 발행 후에 데이터 리드 요구를 발행할 수 있을 때까지에는, 여러 사이클(예를 들면 7사이클)의 시간을 비워야만 하는 액세스 규정이 규정되어 있다. 이 때문에, 직전에 발행된 뱅크 #0에 대한 데이터 라이트 요구가 발행되고 나서 예를 들면 7사이클 동안은, 메모리 요구 발행 가부 신호 생성부(106)가 출력하는 메모리 요구 발행 가부 신호에 있어서의 뱅크 #1 리드 가능을 나타내는 정보(도 4 참조)가 “0”임으로써, 판정 회로(105)(#3)의 출력은 “0”이 된다. 한편, DRAM 모듈(109)에서는, 어느 뱅크에의 데이터 라이트 요구의 발행 후, 다른 뱅크에의 데이터 라이트 요구는 연속하여 발행할 수 있음이 규정되어 있다. 이 때문에, 직전에 발행된 뱅크 #0에 대한 데이터 라이트 요구가 발행되고 나서 2사이클 정도에서, 메모리 요구 발행 가부 신호 생성부(106)가 출력하는 메모리 요구 발행 가부 신호에 있어서의 뱅크 #2 라이트 가능을 나타내는 정보(도 4 참조)가 “1”이 되어, 판정 회로(105)(#4)의 출력이 “1”이 된다. 이 결과, 우선도 제어 레지스터(104) 내의 도 6의 구성을 갖는 각 우선도 제어 레지스터_ij에 유지되는 값에 대하여 논리 연산을 행함으로써, REQ_BUF(102)(#2)의 우선 순위가 최고가 된다. 이 결과, 우선 순위가, REQ_BUF(102)(#2)>REQ_BUF(102)(#1)>REQ_BUF(102)(#3)>REQ_BUF(102)(#0)로 갱신된다.
또한 다음의 명령 실행 사이클에서, 셀렉터 회로(103)는, 우선도 제어 레지스터(104)로부터 REQ_BUF(102)(#2)가 통지되어 있기 때문에, 우선 순위가 가장 높은 REQ_BUF(102)(#2)로부터 판독되는 뱅크 #2에 대한 데이터 라이트 요구를 선택한다. 그리고, 메모리 요구 발행 가부 신호 생성부(106)가 출력하는 메모리 요구 발행 가부 신호에 있어서의 뱅크 #2 라이트 가능을 나타내는 정보(도 4 참조)가 “1”인 것에 의해, 판정 회로(105)(#1)로부터 출력되는 메모리 요구 발행 가능 신호는 “1”이 된다. 이 결과, DRAM 모듈(109)에 뱅크 #2에 대한 데이터 라이트 요구가 발행된다. 그 후, 우선도 제어 레지스터(104)에서의 우선 순위는, REQ_BUF(102)(#1)>REQ_BUF(102)(#3)>REQ_BUF(102)(#0)>REQ_BUF(102)(#2)로 갱신된다.
그 후, 셀렉터 회로(103)는 REQ_BUF(102)(#1)를 선택한다. 그리고, 판정 회로(105)(#1)는, 메모리 요구 발행 가부 신호 생성부(106)가 출력하는 메모리 요구 발행 가부 신호에 있어서의 뱅크 #1 리드 가능을 나타내는 정보(도 4 참조)가 “1”이 되어 자신이 출력하는 메모리 요구 발행 가능 신호가 “1”이 될 때까지 기다린다. 메모리 요구 발행 가능 신호가 “1”이 되었다면, 판정 회로(105)(#1)는, 뱅크 #1에 대한 데이터 리드 요구를 DRAM 모듈(109)에 발행한다. 그 결과, 우선도 제어 레지스터(104)에서의 우선 순위는, REQ_BUF(102)(#3)>REQ_BUF(102)(#0)>REQ_BUF(102)(#2)>REQ_BUF(102)(#1)로 갱신된다.
이상의 동작을, 도 7의 동작 타이밍 차트를 이용하여 더욱 상세하게 설명한다. 여기에서는 데이터 라이트 요구의 발행 후에 데이터 리드 요구를 발행 가능해질 때까지의 간격을 7사이클, 데이터 라이트 요구의 발행 후에 뱅크의 다른 데이터 라이트 요구를 발행 가능해질 때까지의 간격을 2사이클이라고 가정한다.
도 7(b)∼(f) 중의 「valid」는, “1”일 때 유효한 리퀘스트가 존재하고, “0”일 때 유효한 리퀘스트가 존재하지 않는 또는 유지되어 있는 리퀘스트가 무효임을 나타내는 유효 신호이다. 도 7(b)∼(f)의 #1∼#5의 각 판정 회로(105)의 출력에 있어서, 각각에 대응하는 REQ_BUF(102)로부터의 메모리 요구를 발행 가능하다고 판정했을 때 “○”, 발행 불가능하다고 판정했을 때에 “×”가 된다.
상술한 실시형태에 의하면, 사이클 번호 1의 명령 실행 사이클에서, 셀렉터 회로(103)는 REQ_BUF(102)(#0)를 선택하고, 판정 회로(105)(#1)는 REQ_BUF(102)(#0)로부터의 메모리 요구를 발행 가능하다고 판정하고 있다(도 7(b), (c)). 이 때문에, 판정 회로(105)(#1)는, 사이클 번호 2, 3의 각 명령 실행 사이클에서, DRAM 모듈(109)에 뱅크 #0에 대한 데이터 라이트 요구를 발행한다(도 7(m)).
사이클 번호 2의 명령 실행 사이클에서는, 우선도 제어 레지스터_01, 우선도 제어 레지스터_02, 우선도 제어 레지스터_03가 “1”로 갱신되고, REQ_BUF(102)(#0)의 우선 순위가 가장 낮아진다.
사이클 번호 3의 명령 실행 사이클에서는, 판정 회로(105)(#1) 발행 불가능(도 7(b)), 판정 회로(105)(#4)가 발행 가능(도 7(e))하다고 판정된다. 이 때문에, 사이클 번호 4에서 우선도 제어 레지스터_12가 “1”로 갱신되고, REQ_BUF(102)(#2)의 우선 순위가 가장 높아진다.
이 결과, 사이클 번호 4의 명령 실행 사이클에서는, 셀렉터 회로(103)는, REQ_BUF(102)(#2)로부터의 메모리 요구를 선택한다. 이 메모리 요구는, 판정 회로(105)(#1)에 의해 발행 가능하다고 판정된다(도 7(b)). 이 결과, 사이클 번호 5, 6의 명령 실행 사이클에서, DRAM 모듈(109)에 뱅크 #2에 대한 데이터 라이트 요구가 발행된다(도 7(m)).
사이클 번호 5에서는, 우선도 제어 레지스터_02, 우선도 제어 레지스터_12가 “0”으로, 우선도 제어 레지스터_23가 “1”로 갱신되고, REQ_BUF(102)(#2)의 우선 순위가 가장 낮아진다.
사이클 번호 5에서 11까지의 명령 실행 사이클에서, 셀렉터 회로(103)는, REQ_BUF(102)(#1)를 선택한다. 그리고, 사이클 번호 11의 명령 실행 사이클에서, 판정 회로(105)(#1)가, REQ_BUF(102)(#1)로부터의 메모리 요구를 발행 가능하다고 판정한다. 이 때문에, 사이클 번호 12, 13의 명령 실행 사이클에서, 뱅크 #1에 대한 데이터 리드 요구가 발행된다(도 7(m)).
그리고, 사이클 번호 12의 명령 실행 사이클에서, 우선도 제어 레지스터_01가 “0”, 우선도 제어 레지스터_12, 우선도 제어 레지스터_13가 “1”로 갱신된다.
상술한 실시형태에 의해, 메모리 제어 장치(100)와 DRAM 모듈(109), 또는 이들을 연결하는 버스를, 효율적으로 사용하는 것이 가능해진다.
도 8은, 메모리 제어 장치가 DRAM 모듈(109)의 액세스 규정이 고려되지 않는 우선 순위 제어에 의해 제어되는 경우의 동작을 나타내는 동작 타이밍 차트이다. 도 7에서 설명하는 바와 같이, 뱅크 #0에 대한 데이터 라이트 요구의 발행 후에, REQ_BUF(102)(#2) 내에 2 명령 실행 사이클마다 실행 가능해지는 뱅크 #2에 대한 데이터 리드 요구가 유지되어 있다. 그러나, 도 8에서는, 뱅크 #2에 대한 데이터 리드 요구가 실행 가능해지는 것은, 뱅크 #0에 대한 데이터 라이트 요구의 발행 후 7사이클 후가 되어버린다. 이에 따라, 본 실시형태의 우위성이 분명하다.
도 9는, 도 1의 구성을 갖는 실시형태를 적용 가능한 컴퓨터 시스템의 구성예를 나타내는 도면이다. 도 9에서, CMU(CPU Memory Unit : CPU 메모리 유닛)라고 불리는 제어 장치(904) 내에, 도 1의 메모리 제어 장치(100)에 대응하는 MAC(Memory Access Controller : 메모리 액세스 컨트롤러)(901)가 배치된다. 이 MAC(901)가, CPU(902)(도 1의 CPU(107)에 대응)로부터 DIMM(Dual Inline Memory Module)(903)(도 1의 DRAM 모듈(109)에 대응)에 발행되는 메모리 요구의 우선 순위를 제어한다. 또한, MAC(901)는, IO 하우징(907) 내의 입출력 장치(도 1의 IO 장치(108)에 대응)로부터 IOU(Input Output Unit : 입출력 유닛)(906), 및 BP(Back Plane : 백플레인)(905)를 통해 입력하는, DIMM(903)에 대한 메모리 요구의 우선 순위도 제어한다.

Claims (10)

  1. 연산 처리 장치와 제1 메모리 뱅크에 대응하는 제1 및 제2 메모리 뱅크를 갖는 기억 장치에 접속됨과 함께, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를 상기의 기억 장치에 발행하는 기억 제어 장치에 있어서,
    상기 제1 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 제1 요구 기억부와,
    상기 제2 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 제2 요구 기억부와,
    상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를, 상기 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 배분하는 디코드부와,
    상기 제1 요구 기억부와 상기 제2 요구 기억부에 접속되고, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 유지되는 메모리 액세스 요구를, 선택 신호에 의거하여 선택해서 출력하는 선택부와,
    상기 제1 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제1 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제1 메모리 뱅크에 발행할 수 있는지 없는지의 제1 판정 결과를 출력하는 제1 판정 회로와,
    상기 제2 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제2 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제2 메모리 뱅크에 발행할 수 있는지 없는지의 제2 판정 결과를 출력하는 제2 판정 회로와,
    상기 선택 회로가 선택한 메모리 액세스 요구가, 상기 기억 장치에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 기억 장치에 발행할 수 있는지 없는지의 제3 판정 결과를 출력하는 제3 판정 회로와,
    상기 제1 판정 회로와 상기 제2 판정 회로에 접속됨과 함께, 상기 제1 내지 제3 판정 결과에 의거하여, 상기 제1 판정 회로에 유지되는 메모리 액세스 요구 또는 상기 제2 판정 회로에 유지되는 메모리 액세스 요구를 선택하는 상기 선택 신호를 출력하는 우선 순위 제어 회로를 포함하는 것을 특징으로 하는 기억 제어 장치.
  2. 제1항에 있어서,
    상기 우선 순위 제어 회로는,
    상기 제1 또는 제2 요구 기억부 중, 최후에 선택된 메모리 액세스 요구에 대한 메모리 액세스가 완료한 경우에는, 상기 최후에 선택된 요구 기억부에 유지되는 메모리 액세스 요구의 우선 순위를 내림과 함께, 상기 제1 내지 제3 판정 회로 중 어느 하나로부터 상기 제1 내지 제3 판정 결과가 상기 제1 기억 장치 또는 제2 기억 장치에 발행할 수 없다는 취지의 판정 결과를 수신한 경우에는, 당해 판정 결과를 출력한 요구 기억부의 우선 순위를 올리는 것을 특징으로 하는 기억 제어 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 기억 제어 장치는 또한, 입출력 제어 장치에 접속되고,
    상기 디코드부는, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구에 더하여, 상기 입출력 제어 장치로부터 수신하는 메모리 액세스 요구를, 상기 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 더 배분하는 것을 특징으로 하는 기억 제어 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 및 제2 요구 기억부는,
    선입선출 버퍼인 것을 특징으로 하는 기억 제어 장치.
  5. 연산 처리 장치와, 제1 메모리 뱅크에 대응하는 제1 및 제2 메모리 뱅크를 갖는 기억 장치와, 상기 기억 장치에 접속되는 기억 제어 장치를 갖는 정보 처리 장치에 있어서,
    상기 제어 장치는,
    상기 제1 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 제1 요구 기억부와,
    상기 제2 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 제2 요구 기억부와,
    상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를, 상기 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 배분하는 디코드부와,
    상기 제1 요구 기억부와 상기 제2 요구 기억부에 접속되고, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 유지되는 메모리 액세스 요구를, 선택 신호에 의거하여 선택해서 출력하는 선택부와,
    상기 제1 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제1 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제1 메모리 뱅크에 발행할 수 있는지 없는지의 제1 판정 결과를 출력하는 제1 판정 회로와,
    상기 제2 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제2 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제2 메모리 뱅크에 발행할 수 있는지 없는지의 제2 판정 결과를 출력하는 제2 판정 회로와,
    상기 선택 회로가 선택한 메모리 액세스 요구가, 상기 기억 장치에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 기억 장치에 발행할 수 있는지 없는지의 제3 판정 결과를 출력하는 제3 판정 회로와,
    상기 제1 판정 회로와 상기 제2 판정 회로에 접속됨과 함께, 상기 제1 내지 제3 판정 결과에 의거하여, 상기 제1 판정 회로에 유지되는 메모리 액세스 요구 또는 상기 제2 판정 회로에 유지되는 메모리 액세스 요구를 선택하는 상기 선택 신호를 출력하는 우선 순위 제어 회로를 포함하는 것을 특징으로 하는 정보 처리 장치.
  6. 제5항에 있어서,
    상기 우선 순위 제어 회로는,
    상기 제1 또는 제2 요구 기억부 중, 최후에 선택된 메모리 액세스 요구에 대한 메모리 액세스가 완료한 경우에는, 상기 최후에 선택된 요구 기억부에 유지되는 메모리 액세스 요구의 우선 순위를 내림과 함께, 상기 제1 내지 제3 판정 회로 중 어느 하나로부터 상기 제1 내지 제3 판정 결과가 상기 제1 기억 장치 또는 제2 기억 장치에 발행할 수 없다는 취지의 판정 결과를 수신한 경우에는, 당해 판정 결과를 출력한 요구 기억부의 우선 순위를 올리는 것을 특징으로 하는 정보 처리 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 기억 제어 장치는 또한, 입출력 제어 장치에 접속되고,
    상기 디코드부는, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구에 더하여, 상기 입출력 제어 장치로부터 수신하는 메모리 액세스 요구를, 상기 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 더 배분하는 것을 특징으로 하는 정보 처리 장치.
  8. 제4항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 및 제2 요구 기억부는,
    선입선출 버퍼인 것을 특징으로 하는 정보 처리 장치.
  9. 연산 처리 장치와 제1 메모리 뱅크에 대응하는 제1 및 제2 메모리 뱅크를 갖는 기억 장치에 접속됨과 함께, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를 상기의 기억 장치에 발행하는 기억 제어 장치의 제어 방법에 있어서,
    상기 기억 제어 장치가 갖는 제1 요구 기억부가, 상기 제1 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 스텝과,
    상기 기억 제어 장치가 갖는 제2 요구 기억부가, 상기 제2 메모리 뱅크에 대한 메모리 액세스 요구를 유지하는 스텝과,
    상기 기억 제어 장치가 갖는 디코드부가, 상기 연산 처리 장치로부터 수신하는 메모리 액세스 요구를, 상기 메모리 액세스 요구에 포함되는 뱅크 어드레스에 따라, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 배분하는 스텝과,
    상기 기억 제어 장치가 갖는 선택부가, 상기 제1 요구 기억부와 상기 제2 요구 기억부에 접속되고, 상기 제1 요구 기억부 또는 상기 제2 요구 기억부에 유지되는 메모리 액세스 요구를, 선택 신호에 의거하여 선택해서 출력하는 스텝과,
    상기 기억 제어 장치가 갖는 제1 판정 회로가, 상기 제1 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제1 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제1 메모리 뱅크에 발행할 수 있는지 없는지의 제1 판정 결과를 출력하는 스텝과,
    상기 기억 제어 장치가 갖는 제2 판정 회로가, 상기 제2 요구 기억부에 유지되는 메모리 액세스 요구가, 상기 제2 메모리 뱅크에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 제2 메모리 뱅크에 발행할 수 있는지 없는지의 제2 판정 결과를 출력하는 스텝과,
    상기 기억 제어 장치가 갖는 제3 판정 회로가, 상기 선택 회로가 선택한 메모리 액세스 요구가, 상기 기억 장치에 이미 발행한 메모리 액세스 요구와의 관계에 의해, 상기 기억 장치에 발행할 수 있는지 없는지의 제3 판정 결과를 출력하는 스텝과,
    상기 기억 제어 장치가 갖는 우선 순위 제어 회로가, 상기 제1 판정 회로와 상기 제2 판정 회로에 접속됨과 함께, 상기 제1 내지 제3 판정 결과에 의거하여, 상기 제1 판정 회로에 유지되는 메모리 액세스 요구 또는 상기 제2 판정 회로에 유지되는 메모리 액세스 요구를 선택하는 상기 선택 신호를 출력하는 스텝을 포함하는 것을 특징으로 하는 기억 제어 장치의 제어 방법.
  10. 제9항에 있어서,
    상기 우선 순위 제어 회로는,
    상기 제1 또는 제2 요구 기억부 중, 최후에 선택된 메모리 액세스 요구에 대한 메모리 액세스가 완료한 경우에는, 상기 최후에 선택된 요구 기억부에 유지되는 메모리 액세스 요구의 우선 순위를 내림과 함께, 상기 제1 내지 제3 판정 회로 중 어느 하나로부터 상기 제1 내지 제3 판정 결과가 상기 제1 기억 장치 또는 제2 기억 장치에 발행할 수 없다는 취지의 판정 결과를 수신한 경우에는, 당해 판정 결과를 출력한 요구 기억부의 우선 순위를 올리는 것을 특징으로 하는 기억 제어 장치의 제어 방법.
KR1020117021771A 2009-04-24 2009-04-24 기억 제어 장치 및 그 제어 방법 KR101306670B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001885 WO2010122607A1 (ja) 2009-04-24 2009-04-24 記憶制御装置及びその制御方法

Publications (2)

Publication Number Publication Date
KR20110127707A true KR20110127707A (ko) 2011-11-25
KR101306670B1 KR101306670B1 (ko) 2013-09-10

Family

ID=43010745

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117021771A KR101306670B1 (ko) 2009-04-24 2009-04-24 기억 제어 장치 및 그 제어 방법

Country Status (6)

Country Link
US (1) US8560784B2 (ko)
EP (1) EP2423820A4 (ko)
JP (1) JP5382113B2 (ko)
KR (1) KR101306670B1 (ko)
CN (1) CN102405466B (ko)
WO (1) WO2010122607A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5259755B2 (ja) * 2011-02-25 2013-08-07 株式会社東芝 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法
JP6146128B2 (ja) * 2013-05-20 2017-06-14 ヤマハ株式会社 データ処理装置
CN104866238B (zh) * 2015-05-25 2018-12-14 华为技术有限公司 访问请求调度方法及装置
CN112231254B (zh) * 2020-09-22 2022-04-26 深圳云天励飞技术股份有限公司 存储器仲裁方法及存储器控制器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04237347A (ja) * 1991-01-22 1992-08-25 Nec Eng Ltd メモリ制御装置
JP3068718B2 (ja) 1992-11-19 2000-07-24 株式会社日立製作所 記憶制御装置およびそのアクセス要求優先順位決定方法
JP4081843B2 (ja) 1998-03-25 2008-04-30 松下電器産業株式会社 メモリ制御装置
JP4237347B2 (ja) 1999-09-21 2009-03-11 日本テキサス・インスツルメンツ株式会社 D/a変換方法及びd/aコンバータ
US7194561B2 (en) 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
JP2004310394A (ja) * 2003-04-07 2004-11-04 Sharp Corp Sdramアクセス制御装置
JP2005173859A (ja) 2003-12-10 2005-06-30 Matsushita Electric Ind Co Ltd メモリアクセス制御回路
US20050289306A1 (en) 2004-06-28 2005-12-29 Sridhar Muthrasanallur Memory read requests passing memory writes
US7277982B2 (en) * 2004-07-27 2007-10-02 International Business Machines Corporation DRAM access command queuing structure
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
JP5034551B2 (ja) * 2007-02-26 2012-09-26 富士通セミコンダクター株式会社 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US8078791B1 (en) * 2007-04-16 2011-12-13 Juniper Networks, Inc. Ordering refresh requests to memory

Also Published As

Publication number Publication date
CN102405466A (zh) 2012-04-04
JPWO2010122607A1 (ja) 2012-10-22
CN102405466B (zh) 2014-09-03
US8560784B2 (en) 2013-10-15
JP5382113B2 (ja) 2014-01-08
EP2423820A4 (en) 2012-10-17
WO2010122607A1 (ja) 2010-10-28
EP2423820A1 (en) 2012-02-29
US20120079216A1 (en) 2012-03-29
KR101306670B1 (ko) 2013-09-10

Similar Documents

Publication Publication Date Title
US8095744B2 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
KR100841139B1 (ko) 메모리 액세스 요청들을 관리하는 방법 및 장치
JP5270077B2 (ja) 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
JP4715801B2 (ja) メモリアクセス制御装置
JP6146128B2 (ja) データ処理装置
CN102414671A (zh) 对于不同源的分级内存仲裁技术
JPH11191075A (ja) メモリアーキテクチャーのための優先符号化及び復号化
US20120239873A1 (en) Memory access system and method for optimizing SDRAM bandwidth
US20120311266A1 (en) Multiprocessor and image processing system using the same
US20240143392A1 (en) Task scheduling method, chip, and electronic device
KR101306670B1 (ko) 기억 제어 장치 및 그 제어 방법
JP2014035628A (ja) 情報処理装置、メモリ制御装置およびその制御方法
Jang et al. An SDRAM-aware router for networks-on-chip
KR20080105390A (ko) 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
CN110059035B (zh) 半导体装置和总线发生器
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
US20060218313A1 (en) DMA circuit and computer system
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP5932261B2 (ja) メモリ制御装置、メモリ制御方法
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
US20140013148A1 (en) Barrier synchronization method, barrier synchronization apparatus and arithmetic processing unit
JP5393289B2 (ja) メモリ制御回路、メモリシステム及び制御方法
US20020069311A1 (en) Bus control device
JP4593220B2 (ja) メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法
CN115878532A (zh) 数据传输系统及数据传输方法

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
LAPS Lapse due to unpaid annual fee