KR20080053527A - 기억 영역 할당 시스템 및 방법과 제어 장치 - Google Patents

기억 영역 할당 시스템 및 방법과 제어 장치 Download PDF

Info

Publication number
KR20080053527A
KR20080053527A KR1020087011327A KR20087011327A KR20080053527A KR 20080053527 A KR20080053527 A KR 20080053527A KR 1020087011327 A KR1020087011327 A KR 1020087011327A KR 20087011327 A KR20087011327 A KR 20087011327A KR 20080053527 A KR20080053527 A KR 20080053527A
Authority
KR
South Korea
Prior art keywords
access
memory
width
data width
address
Prior art date
Application number
KR1020087011327A
Other languages
English (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 닛본 덴끼 가부시끼가이샤
Publication of KR20080053527A publication Critical patent/KR20080053527A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Abstract

어드레스를 복수회 발행하여 하나의 데이터에 액세스하는 메모리를, 복수의 회로가 공유하고 있는 경우에, 액세스의 고속화를 도모하는 메모리 공간 할당 방법과 장치를 제공한다. 복수의 회로(501)가 공유하는 외부 메모리(505)의 메모리 공간의 상위 어드레스를, 최대한 일치시키도록, 메모리의 할당을 행한다. 메모리 제어 회로는, 상위 어드레스가 공통하는 경우는 상위 어드레스를 전송하지 않음으로써, 그 전송 횟수를 줄여서 액세스를 고속화한다.

Description

기억 영역 할당 시스템 및 방법과 제어 장치{STORAGE REGION ALLOCATION SYSTEM, METHOD, AND CONTROL DEVICE}
본 발명은, 메모리의 제어에 관한 것으로, 특히, 하나의 메모리를 복수의 회로에서 공유하여 이용하기 위한 메모리 영역의 할당 시스템과 방법 및 제어 장치 및 컴퓨터 프로그램에 관한 것이다.
근래의 LSI는, 멀티미디어나 오퍼레이팅 시스템 등과 같이, 처리에 많은 메모리(대용량 메모리)를 필요로 하는 것이 증가해 오고 있다. 그러나, LSI상에 온 칩으로 실장 가능한 메모리의 용량은, 필요하게 되어 있는 메모리 용량보다도 작은 경우도 많다. 이와 같은 경우, LSI 외부에 전용의 메모리 LSI를 접속함으로써, 소망하는 처리 등이 행하여진다. 이러한 구성에서, 복수의 회로로부터 외부의 메모리 LSI에 액세스가 행하여지는 일이 있고, 예를 들면 메모리 제어 회로에서, 복수의 회로로부터의 액세스를 조정하는 제어가 행하여진다. 또한, 최근, 클록 동기형의 다이내믹 랜덤 액세스 메모리(싱크로나이즈 DRAM, 「SDRAM」이라고 약기된다)가 많이 이용된다.
도 1은, SDRAM의 리드 액세스를 설명하기 위한 타이밍도이다. 리드 액세스에서, 최초에, ACTIVE 커맨드가 발행되고, 액세스 대상의 데이터의 행(ROW) 어드레스 가 입력되고, 다음에 READ 커맨드로, 액세스 대상의 데이터의 열(COLUMN) 어드레스가 입력되고, 소정의 지연(레이텐시)의 후에, 리드 데이터(D1)가 데이터 단자(DQ)로부터 출력된다. 도 1에서, NOP 커맨드는 전연 커맨드를 발행하지 않는, 상태를 나타내고, PRE 커맨드는 비트선의 프리차지를 지시하는 커맨드이다. 도 1에는, 리드 액세스의 동작 타이밍이 도시되어 있는데, 라이트 액세스의 경우도, ACTIVE 커맨드로 ROW 어드레스를 입력하고, 다음에, WRITE 커맨드로 COLUMN 어드레스를 입력한다.
동일한 클록으로 동작하고 있는 복수의 회로로부터의 액세스를 제어하는 메모리 제어 회로에서, 복수의 액세스를 처리하는 가장 간이한 수법은, 액세스를 시분할 다중화하는 것이다.
이하에서는, 도 2와 같이, 회로(A201)와 회로(B202)가, 메모리 제어 회로(203)에 접속되고, SDRAM(204)을 공유하고 있는 구성을 예로 하여, 액세스의 시분할 다중에 관해 설명한다.
도 3은, 동일 시각에, 회로(A201)와 회로(B202)로부터의 리드가 발생한 경우, 메모리 제어 회로(203)의 처리의 양상을 설명하기 위한 도면이다. 메모리 제어 회로(203)는, 최초에, 회로(A201)로부터의 리드 액세스를 처리하고(그 리드 액세스의 동작 타이밍은 도 1과 같다), 다음에, 회로(B202)로부터의 리드 액세스를 처리한다(그 리드 액세스의 동작 타이밍은 도 1과 같다).
이와 같이, 액세스의 시분할 다중은, 극히 단순하지만, 메모리 제어 회로(203)에 접속되어 있는 회로의 개수만큼의 액세스 시간을 필요로 한다.
복수의 회로로부터의 액세스를 처리하는 다른 수법으로서, 인터리브 방식도 이용되고 있다. 인터리브 방식은, 각 뱅크를 독립적으로 제어할 수 있는 구조를 전제로 하고 있다. 인터리브 방식은, 독립적으로 제어할 수 있는 뱅크마다, 각각의 회로가 사용하는 메모리 공간을 할당한다. 구체적으로는, 예를 들면, 회로(A201)가 사용하는 메모리 공간을 뱅크(1)에, 회로(B202)가 사용하는 메모리 공간을 뱅크(2)에 할당한다.
도 4는, 인터리브 방식을 이용하는 메모리 제어 회로(203)의 액세스의 양상을 예시하는 도면이다. 도 4에 도시한 바와 같이, 인터리브 방식은, 각각의 액세스를 오버랩 시킴으로써, 전체의 처리를 고속화하고 있다. 도 4에서는, 회로(A)의 리드 액세스에서의 ACTIVE, NOP, READ 커맨드에 계속해서, 회로(B)의 리드 액세스에서의 ACTIVE, NOP, READ 커맨드가 발행되고, 회로(B)의 리드 액세스에서의 NOP 커맨드의 사이클에, 회로(A)의 리드 액세스의 리드 데이터(D1)가 DQ 단자로부터 출력되고, 이로써 2사이클 지연되어 회로(B)의 리드 액세스의 리드 데이터(D2)가 DQ 단자로부터 출력된다.
도 3에서는, 회로(A, B)로부터의 리드 액세스에 관해, 14사이클 사용하고 있지만, 도 4에서는, 10사이클로 단축되어, 전체의 액세스는, 1.4배, 고속으로되어 있는 것을 알 수 있다.
복수의 회로로부터의 액세스를 하나의 메모리로 관리하는 경우, 각 회로로부터 액세스되는 메모리는, 다른 어드레스에 배치하도록 한 구성도 많이 이용되고 있다.
종래의 메모리 시스템에서는, 메모리 관리를 간단하게 하기 위해, 다른 회로가 사용하는 메모리 공간은 다른 어드레스에 배치되어 있고, 각 회로가 사용하는 메모리를 같은 어드레스에 배치한 다음의 고속화가 행하여지지 않는다는 것이다.
또한, 모든 액세스에 대해, ACTIVE 커맨드, READ/WRITE 커맨드, PRECHARGE 커맨드를 실행하고 있다. 이것은, 수종류의 데이터가 모든 메모리 공간을 점유하고 있기 때문에, 이와 같이 액세스하지 않으면, 즉, ACTIVE 커맨드를 사용하지 않으면, 소망하는 데이터에 액세스할 수 없기 때문이다.
따라서 본 발명의 목적은, 복수의 회로가 사용하는 메모리를 하나의 외부 메모리의 메모리 공간에 할당할 때에, 필요한 사이클 수를 최소화하고, 상위 어드레스를 외부 메모리에 전송하는 양을 억제 저감하도록 최적화하여 배치하는 시스템, 장치 및 방법을 제공하는 데 있다.
과제를 해결하기 위한 수단
본원에서 개시되는 발명은, 상기 과제를 해결하기 위해 개략 이하의 구성이 된다.
본 발명의 하나의 양상(측면)에 관한 시스템은, 하나 또는 복수의 액세스 생성 수단을 구비하고, 상기 하나 또는 복수의 액세스 생성 수단은, 합쳐서 적어도 2종류의 액세스를 생성하고, 상기 액세스 생성 수단으로부터의 액세스를 처리하는 액세스 수단과, 상기 액세스 수단에 접속되고, 하나의 어드레스를 지정하기 위해, 적어도 2개 이상의 어드레스 지정 정보를 통신하고, 상기 통신중, 통신하는 어드레스 지정 정보가 전회 통신한 어드레스 지정 정보와 같은 정보의 통신을 생략할 수 있는 기억 수단과, 상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭으로부터, 평균 액세스 횟수를 최소화하도록, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역을 결정하는 계산 수단을 구비하는 것을 특징으로 한다.
본 발명에서, 상기 계산 수단은, 상기 복수의 액세스 생성 수단의 상기 기억 수단에서의 배치의 할당의 패턴을 망라적으로 열거하고, 상기 열거한 각 패턴에서, 평균 액세스 횟수를 구하고, 그중의 최소의 평균 액세스 횟수를 갖는 상기 기억 수단에서의 점유 영역을 결정하는 구성으로 하여도 좋다.
본 발명에서, 상기 계산 수단은, 1비트의 라이트 이네이블이 영향을 주는 제 2의 데이터 폭을 입력하고, 상기 액세스 생성 수단의 데이터 폭을 상기 제 2의 데이터 폭으로 나누어 얻어지는 몫(商)을 정수로 잘라 올리고, 또한 상기 정수에 상기 제 2의 데이터 폭을 곱한 값을, 상기 액세스 생성 수단의 데이터 폭으로서 이용하여, 상기 기억 수단에서의 점유 영역을 결정하는, 구성으로 하여도 좋다.
본 발명에서, 상기 계산 수단은, 상기 어드레스 지정 정보중 하나의 어드레스 지정 정보와, 상기 제 2의 데이터 폭으로, 상기 액세스 생성 수단이 점유하여야 할 점유 영역을 분할한 것을 이용하여, 상기 기억 수단에서의 점유 영역을 결정하는, 구성으로 하여도 좋다.
본 발명에 관한 제어 장치는, 상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭을 상기 계산 수단에 전하는 입력 수단과, 상기 계산 수단이 결정한 점유 영역의 할당과 상기 액세스 생성 수단의 액세스 상황으로부터 평균 액세스 횟수가 최소가 되도록 액세스 순서를 결정하는 액세스 순서 결정 수단을 구비하고, 상기 액세스 수단은, 상기 액세스 순서 결정 수단에 의해 결정된 액세스 순서에 따라 상기 기억 수단을 제어하는, 구성으로 하여도 좋다.
본 발명에 관한 제어 장치는, 상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭과 1비트의 라이트 이네이블이 영향을 주는 데이터 폭을 상기 계산 수단에 전하는 입력 수단과, 상기 계산 수단이 결정한 점유 영역의 할당과 상기 액세스 생성 수단의 액세스 상황으로부터 평균 액세스 횟수가 최소가 되도록 액세스 순서를 결정하는 액세스 순서 결정 수단을 구비하고, 상기 액세스 수단은, 상기 액세스 순서 결정 수단에 의해 결정된 액세스 순서에 따라 상기 기억 수단을 제어하는, 구성으로 하여도 좋다.
본 발명에서, 상기 기억 수단은, 클록 동기형의 다이내믹 랜덤 액세스 메모리이고, 상기 액세스 순서 결정 수단은, 같은 행 어드레스에 배치된 상기 액세스 생성 수단이 이용하는 메모리 공간에 액세스할 때, 1회의 액티브 커맨드와, 복수회의 리드 커맨드/라이트 커맨드와 1회의 프리차지 커맨드를 차례로 발행하여 처리를 행하는, 구성으로 하여도 좋다.
본 발명에서, 상기 액세스 순서 결정 수단은, 같은 행 어드레스에 배치된 상기 액세스 생성 수단이 이용하는 메모리에 액세스할 때, 라이트 처리와 리드 처리의 어느 한쪽을 통합하여 먼저 처리하고, 다음에 그 나머지 처리를 행하는, 구성으로 하여도 좋다.
본 발명의 다른 양상에 관한 방법은, 하나 또는 복수의 액세스 생성 수단이 합쳐서 적어도 2종류의 액세스를 생성하고, 상기 액세스 생성 수단으로부터의 액세스를 처리하는 액세스 수단에 접속되고, 하나의 어드레스를 지정하기 위해 적어도 2개 이상의 어드레스 지정 정보를 통신하고, 또한, 상기 통신중 통신하는 어드레스 지정 정보가 전회 통신한 어드레스 지정 정보와 같은 정보의 통신은 생략할 수 있는 기억 수단의 점유 영역의 할당 방법으로서,
(a) 상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭을 입력하는 스텝과,
(b) 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭을 입력하는 스텝과,
(c) 상기 스텝(a)과 스텝(b)에서 얻어진 정보로부터, 평균 액세스 횟수를 최소화하도록, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역을 결정하는 스텝을 포함한다.
본 발명에 관한 방법은, 상기 스텝(c)에서,
(c.1) 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역의 배치의 할당에 관해 복수의 패턴을 열거하는 스텝과,
(c.2) 상기 스텝(c.1)에서 얻어진 각 패턴의 평균 액세스 횟수를 계산하는 스텝과,
(c.3) 상기 스텝(c.2)에서 얻어진 각 패턴의 평균 액세스 횟수중에서 최소의 평균 액세스 횟수를 갖는 패턴을, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역으로서 결정하는 스텝을 갖는다.
본 발명에 관한 방법은, 상기 스텝(a)에서,
(a.1) 상기 기억 수단에서의 1비트의 라이트 이네이블이 영향을 주는 제 2의 데이터 폭을 입력하는 스텝과,
(a.2) 상기 액세스 생성 수단의 데이터 폭을 상기 제 2의 데이터 폭으로 나누어, 그 값을 정수로 잘라 올리고, 또한 상기 정수에 상기 제 2의 데이터 폭을 곱하고, 승산 결과를 상기 액세스 생성 수단의 데이터 폭으로서, 수정하는 스텝을 갖는다.
본 발명에 관한 방법은, 상기 스텝(c.1)에서,
(c.1.1) 상기 어드레스 지정 정보중 하나의 어드레스 지정 정보와 제 2의 데이터 폭으로, 상기 기억 수단을, 상기 각 액세스 생성 수단이 점유하는 점유 영역으로 분할하는 스텝과,
(c.1.2) 상기 스텝(c.1.1)에서 얻어진 분할된 점유 영역과, 상기 각 액세스 생성 수단과의 할당의 조합의 패턴을 열거하는 스텝을 갖는다.
본 발명에 관한 제어 장치는, 복수의 회로로부터, 공통의 메모리에의 액세스를 제어한 것으로서, 상기 복수의 회로의 각각의 어드레스 폭 및 데이터 폭과,
상기 메모리의 상위 어드레스 폭 및 하위 어드레스 폭과 데이터 폭에 관한 정보, 또는, 해당 정보와 상기 메모리의 1비트의 라이트 이네이블이 영향을 주는 데이터 폭에 관한 정보를 받고, 상기 회로의 액세스를 처리하는데 소비하는 사이클 수를 적게 하도록 상기 회로에 대해 할당되는 메모리 배치를 결정하는 계산 수단과,
상기 복수의 회로로부터의 액세스 정보와, 상기 계산 수단에서 결정된 메모리 배치에 의거하여, 상기 메모리에의 액세스 순서를 결정하는 액세스 순서 결정 수단과,
상기 액세스 순서 결정 수단이 결정한 액세스 순서에 따라 상기 메모리에 액세스를 행하는 액세스 수단을 구비하고 있다.
본 발명에서, 상기 회로는, 상기 메모리에 대해, 어드레스 정보를 복수회 발행하여, 데이터에 액세스하고, 상기 메모리는, 상기 복수회의 어드레스 정보중, 전회와 동일한 어드레스에 액세스할 때는, 그 어드레스 전송을 생략할 수 있는 것이다. 본 발명에서, 상기 계산 수단은, 액세스 횟수를 최소로 하는 메모리 배치를 계산한다.
본 발명의 또다른 양상에 관한 컴퓨터 프로그램은, 복수의 회로로부터, 공통의 메모리에의 액세스를 제어하는 제어 장치를 구성하는 컴퓨터에,
상기 복수의 회로의 각각의 어드레스 폭 및 데이터 폭과,
상기 메모리의 상위 어드레스 폭 및 하위 어드레스 폭과 데이터 폭에 관한 정보, 또는, 해당 정보와 상기 메모리의 1비트의 라이트 이네이블이 영향을 주는 데이터 폭에 관한 정보를 받고, 상기 회로의 액세스를 처리하는데 소비하는 사이클 수를 적게 하도록 상기 회로에 대해 할당되는 메모리 배치를 결정하는 계산 처리와,
상기 복수의 회로로부터의 액세스 정보와, 상기 계산 처리에서 결정된 메모리 배치에 의거하여, 상기 메모리에의 액세스 순서를 결정하는 액세스 순서 결정 처리와,
상기 액세스 순서 결정 처리가 결정한 액세스 순서에 따라 상기 메모리에의 액세스를 행하는 액세스 처리를 실행시키는 프로그램으로 된다.
발명의 효과
본 발명에 의하면, 동시에 발생하는 복수의 회로로부터의 액세스를 고속화할 수 있다. 그 이유는, 본 발명에서는, 필요한 사이클 수를 최소로 하도록 계산 수단이 외부 메모리의 배치를 결정하고, 또한, 액세스 순서 결정 수단이 상위 어드레스의 전송을 최소한으로 하도록, 액세스의 순서를 결정하는 구성으로 하였기 때문이다.
예를 들면 SDRAM에서는, 각 회로가 이용하는 메모리 공간의 배치를 최적화함에 의해, ACTIVE 커맨드나 PRECHARGE 커맨드를 효율적으로 생략할 수 있고, 액세스를 고속화할 수 있다.
또한, 본 발명에 의하면, 계산 수단은, 상위 어드레스를 최대한 공유할 수 있도록 어드레스를 채워서 재배열을 행하기 때문에, 외부 메모리의 사용률을 높일 수 있다.
도 1은 기본적인 SDRAM의 동작을 도시하는 파형도.
도 2는 종래 수법을 설명하기 위한 구성도.
도 3은 가장 단순한 종래의 시분할 다중 액세스 수법을 도시하는 파형도.
도 4는 인터리브 방식을 이용한 메모리 제어 회로의 액세스의 양상을 도시하는 파형도.
도 5는 본 발명의 실시의 형태의 구성을 도시하는 도면.
도 6은 본 발명의 실시의 형태의 전체의 처리를 설명하기 위한 흐름도.
도 7은 본 발명의 실시의 형태의 계산 수단의 처리를 설명하기 위한 흐름도.
도 8은 본 발명의 실시의 형태에서의 계산 수단에 의해 열거된 모든 패턴을 도시하는 도면.
도 9(A) 내지 (C)는, 도 8(a) 내지 (x)의 패턴중 소거되지 않은 패턴(1 내지 3).
도 10은 도 9의 패턴(1)에 따라 각 회로의 메모리를 배치한 경우의 파형의 예를 도시하는 도면.
도 11은 도 9의 패턴(2)에 따라 각 회로의 메모리를 배치하고 회로(2)의 상위측에 액세스가 온 때의 파형의 예를 도시하는 도면.
도 12는 도 9의 패턴(2)에 따라 각 회로의 메모리를 배치하고, 회로(2)의 하위측에 액세스가 온 때의 파형의 예를 도시하는 도면.
도 13은 본 발명의 실시의 형태의 액세스 순서 결정 수단의 처리를 설명하기 위한 흐름도.
도 14는 본 발명의 제 2의 실시의 형태의 구성을 도시하는 도면.
도 15는 본 발명의 제 2의 실시의 형태의 메모리 제어 수단의 구성을 도시하는 도면.
도 16은 본 발명의 한 실시예의 구성을 도시하는 도면.
도 17은 본 발명의 한 실시예의 액세스 수단에서의 모든 액세스 패턴의 사이클 수를 도시한 도면.
도 18은 본 발명의 한 실시예의 액세스 수단에서의 모든 액세스 패턴의 파형을 도시하는 도면.
(도면의 주요 부분에 대한 부호의 설명)
201, 202 : 회로
203 : 메모리 제어 회로
204 : SDRAM
501 : 회로
502 : 입력 수단
503 : 계산 수단(계산 회로)
504 : 액세스 순서 결정 수단(액세스 순서 결정 회로)
505 : 외부 메모리(SDRAM 모듈)
506 : 액세스 수단(액세스 회로)
507 : 클록 신호(A)
508 : 클록 신호(B)
1401 : 프로그램
1402 : 메모리 제어 수단
상기한 본 발명에 관해 더욱 상세히 설명하기 위해, 첨부 도면을 참조하여 설명한다. 도 5를 참조하면, 본 발명에서, 메모리(외부 메모리)(505)는, 복수회의 어드레스 발행에 의해 하나의 데이터에 액세스할 수 있는 것이고, 또한 외부 메모리(505)의 데이터 폭이 복수의 회로의 데이터 폭보다도 큰 경우에 유효하게 된다.
본 발명은, 메모리에 액세스(리드/라이트 액세스)를 행하는 복수의 회로(501)(본 발명의 액세스 생성 수단에 대응)가 필요로 하는 어드레스 폭이나 데이터 폭과, 외부 메모리(505)의 상위 어드레스 폭이나 하위 어드레스 폭이나 데이터 폭이나, 1비트의 라이트 이네이블이 영향을 주는 데이터 폭을 계산 수단(503)에 전하기 위한 입력 수단(502)과, 입력 수단(502)에 의해 입력된 각 정보로부터, 모든 액세스를 처리하는데 필요한 사이클 수를 최소로 하는 메모리 배치를 결정하는 계산 수단(503)과, 각 회로(501)로부터의 액세스 정보와, 계산 수단(503)이 결정한 메모리 배치로부터 최적의 액세스 순서를 결정하는 액세스 순서 결정 수단(504)과, 액세스 순서 결정 수단(504)이 결정한 액세스 순서에 따라 외부 메모리(505)에의 액세스를 행하는 액세스 수단(506)과, 각 회로(501)를 동작시키는 클록 신호(A)(507)와, 액세스 순서 결정 수단(504)과 외부 메모리(505)와 액세스 수단(506)을 제어하는 클록 신호(B)(508)를 구비하고 있다. 본 발명에서는, 예를 들 면, 복수의 회로(501)가 공통으로 사용하는 외부 메모리(505)의 메모리 공간의 상위 어드레스를 최대한 일치시키도록, 메모리 배치의 할당을 행한다. 또한 상위 어드레스가 공통인 경우에는, 동일한 상위 어드레스의 전송을 하지 않고, 전송 횟수를 삭감하고 액세스를 고속화하는 제어를 행한다.
입력 수단(502)은, 복수개(N개)의 회로(501)의 각 어드레스 폭이나 데이터 폭과 외부 메모리(505)의 상위 어드레스 폭이나 하위 어드레스 폭이나 데이터 폭이나 1비트의 라이트 이네이블이 영향을 주는 데이터 폭을 계산 수단(503)에 전한다.
계산 수단(503)은, 입력 수단(502)에 의해 입력된 각 정보에 의거하여, N개 모든 회로(501)의 액세스를 처리하는데 소비하는 사이클 수를 적게 하도록 메모리 배치를 결정한다.
액세스 순서 결정 수단(504)은, N개의 회로(501)로부터의 액세스 정보와, 계산 수단(503)이 결정한 메모리 배치에 의거하여, 최적의 액세스 순서를 결정한다.
액세스 수단(506)은, 액세스 순서 결정 수단(504)이 결정한 액세스 순서에 따라 외부 메모리(505)에 액세스를 행한다.
클록 신호(A)(507)는, N개의 회로(501)를 구동한다.
클록 신호(B)(508)는, 액세스 순서 결정 수단(504)과 외부 메모리(505)와 액세스 수단(506)을 구동한다. 또한, 클록 신호(A)(507)는, 액세스 순서 결정 수단(504)에 입력되어 있는데, 액세스 순서 결정 수단(504)은, 이것을 각 회로(501)로부터의 입력이 변화하는 것을 나타내는 신호로서 이용하고 있다.
도 5에 예시한 구성에서, N개의 회로(501)와 액세스 수단(506) 사이의 접속 은 한 예이고, 본 발명은, 이러한 구성으로 한정되는 것이 아님은 물론이다. 예를 들면 핸드 세이크를 사용한 접속 등도 가능하다. 또한, 각 회로(501)와 액세스 수단(506)을 임의의 수법으로 접속하는 구성에도 적용 가능하다.
입력 수단(502)은, 상기한 바와 같이, 각 회로(501)의 어드레스 폭이나 데이터 폭과 외부 메모리(505)의 상위 어드레스 폭이나 하위 어드레스 폭이나 데이터 폭을 계산 수단에 전하는 것이고, 계산 수단(503)이 하드웨어 회로라면, 계산 수단(503)의 단자로서도 실현할 수 있다. 또한, CPU 등의 프로세서로부터 제어 가능한 기억 소자를 준비하고, 그것을 통하여, 각 회로(501)의 어드레스 폭이나 데이터 폭을 계산 수단(503)에 전하는 것도 가능하다.
계산 수단(503)은, 상기한 바와 같이, 입력 수단(502)으로부터 얻어진 각 회로(501)의 어드레스 폭이나 데이터 폭과 외부 메모리(505)의 어드레스 폭과 데이터 폭으로부터, 액세스 횟수를 최소로 하는 메모리 배치를 계산하는 것이고, 수취하는 정보로서, 예를 들면,
회로(1)는, 어드레스 폭 10비트, 데이터 폭 32비트,
…,
회로(N)는, 어드레스 폭 11비트, 데이터 폭 10비트,
외부 메모리(505)는, 상위 어드레스 폭 13비트, 하위 어드레스 10비트, 데이터 폭 64비트 등이다.
액세스 순서 결정 수단(504)은, 계산 수단(503)이 계산한 최적의 메모리 배치와 N개의 각 회로(501)가 어떤 액세스를 행하고 있는지를 입력으로 하여, 액세스 하는 순서를 결정하고, 액세스 수단(506)을 제어한다.
액세스 순서 결정 수단(504)의 출력은, 예를 들면,
회로(3), 회로(N-3), 회로(N-2), 회로(2), …, 회로(1)
의 순으로 처리를 행하도록 액세스 수단(506)을 제어한다.
액세스 순서 결정 수단(504)은, 액세스가 없는, 즉 이네이블 신호가 액티브지 아닌 회로에 관해서는, 처리를 행하지 않는다.
액세스 수단(506)에서는, 액세스 순서 결정 수단(504)이 결정한 순서에 따라, 실제로 외부 메모리(505)에 액세스를 행한다.
예를 들면, 액세스 순서 결정 수단(504)이,
회로(3), 회로(N-3), 회로(N-2), 회로(2), …, 회로(1)
로 출력한 경우, 액세스 수단(506)은, 최초에 회로(3)의 액세스를 외부 메모리(505)에 대해 행한다. 다음에, 액세스 수단(506)은, 회로(N-3)의 액세스를 외부 메모리(505)에 대해 행한다. 그리고, 다음에, 액세스 수단(506)은, 회로(N-2)의 액세스, 다음에 회로(2)의 액세스로 순차적으로 행하고, 취후에, 회로(1)의 액세스를 외부 메모리(505)에 대해 행한다.
다음에, 도 6을 참조하여, 본 실시의 형태의 전체의 동작에 관해 상세히 설명한다.
최초에, 계산 수단(503)이 동작한다. 계산 수단(503)은, 입력된 각 회로(501)의 어드레스 폭과 데이터 폭, 외부 메모리(505)의 상위 어드레스 폭과 하위 어드레스 폭과 데이터 폭과 1비트의 라이트 이네이블이 영향을 주는 데이터 폭으로 부터 최적의 메모리 배치를 결정한다(도 6의 스텝 S1). 단, 계산 수단(503)은, 이 스텝 S1 이외에서는 동작하지 않고, 항상 동일한 메모리 배치 정보를 계속 출력한다.
다음에, 액세스 순서 결정 수단(504)은 클록 신호(A)(507)의 에지를 검출할 때까지 기다린다(도 6의 스텝 S2).
액세스 순서 결정 수단(504)은, 클록 신호(A)(507)의 에지를 검출 후, 각 회로(501)의 액세스 상황을 취득한다(도 6의 스텝 S3).
예를 들면 회로(1)는 라이트 액세스, 회로(2)는 리드 액세스라는 정보를, 각 회로(501)의 이네이블 신호와 라이트 이네이블 신호로부터 취득한다.
다음에, 액세스 순서 결정 수단(504)은, 스텝 S3에서 취득한 각 회로(501)의 액세스 상황과, 스텝 S1에서 계산된 메모리 배치 정보에 의거하여, 평균 액세스 시간이 최단이 되는 액세스 순서를 결정한다(도 6의 스텝 S4).
다음에, 액세스 수단(506)은, 스텝 S4에서 계산된 액세스 순서에 따라 외부 메모리(505)에 액세스를 행한다(스텝 S5).
다음에 상기한 각 스텝에 관해 보다 상세한 설명을 행한다.
우선, 도 6의 스텝 S1의 계산 수단(503)의 처리에 관해 상세히 설명한다. 도 7은, 계산 수단(503)의 처리를 설명하는 흐름도이다. 계산 수단(503)은, 액세스에 필요한 사이클 수가 최소가 되는 메모리 배치를 계산한다.
최초에, 각 회로(501)의 데이터 폭을 1비트의 외부 메모리(505)의 라이트 이네이블이 영향을 주는 데이터의 비트 폭의 배수가 되도록 수정한다(도 7의 스텝 S11).
즉, 회로(501)의 데이터 폭을 X로 하고, 1비트의 외부 메모리(505)의 라이트 이네이블이 영향을 주는 데이터의 비트 폭을 Y로 하였을 때, 다음 식(1)을 계산한다.
Figure 112008033532389-PCT00001
… (1)
식(1)은, X를 Y로 나눈 값의 정수부(整數部)(단, 소수부는 잘라 올림을 행한다)에 Y를 곱한 값을 구한다. 예를 들면, 1비트의 외부 메모리(505)의 라이트 이네이블이 8비트(즉 Y=8)인 경우, 회로(1)의 데이터 폭이 26비트의 경우, 26을 8로 나눈 값은 3.25이고, 잘라 올려서 정수 4로 하고, 4×8=32비트로 수정되고, 회로(2)의 데이터 폭이 16비트일 때는, 16을 8로 나눈 값은 2이고, 2×8=16비트가 된다. 이와 같이 수정하는 것은, 각각의 액세스를 개별적으로 처리할 수 있도록 하기 위해서이다.
다음에, 수정된 데이터 폭을 사용하여 각 회로(501)가 외부 메모리(505)에서 사용하는 어드레스 공간을 결정한다(도 7의 스텝 S12).
이하, 구체적인 예에 입각해서 설명한다.
예를 들면 2개의 회로(501), 회로(1)와 회로(2)가, 하나의 외부 메모리(505)를 공유하고 있는 것으로 한다.
그리고,
회로(1)는 수정된 데이터 폭이 32비트이고 사용 어드레스 공간이 0x400,
회로(2)는 수정된 데이터 폭이 32비트이고 사용 어드레스 공간이 0x800,
외부 메모리의 데이터 폭은 64비트이고, 1비트의 외부 메모리(505)의 라이트 이네이블이 영향을 주는 데이터의 비트 폭을 32비트, 상위 어드레스가 1비트, 하위 어드레스가 10비트로 한다. 또한, Ox400은 헥사데시멀 표시이다.
이 때, 도 7의 스텝 S12에서는, 모든 회로가 사용하는 비트 수의 합을, 하위 어드레스로 제어할 수 있는 비트 수로 나눈 것을 정수로 사사오입한 것을 사용하는 상위 어드레스로 한다. 이 경우에서는, 사용하는 상위 어드레스 수는, 다음 식(2)이 된다.
Figure 112008033532389-PCT00002
… (2)
단, 1O24는, Ox400의 1O진 표현이고, 2O48은, Ox80O의 1O진 표현이다.
다음에, 각 회로가 사용하는 메모리 공간의 데이터 폭을, 1비트의 외부 메모리(505)의 라이트 이네이블이 영향을 주는 데이터의 비트 폭으로 분할하고, 또한, 어드레스를 하위 어드레스로 분할한다.
예를 들면, 회로(2)가 사용하는 메모리 공간은, 상위의 공간과 하위의 공간으로 분할된다(도 7의 스텝 S13).
다음에, 일어날 수 있는 모든 메모리 배치의 패턴을 망라적으로 열거한다(스텝 S14). 이 예인 경우, 도 8(a) 내지 도 8(x)에 도시하는 바와 같은, 24패턴을 열 거한다.
다음에, 열거된 패턴중에서, 분명히 같은 평균 액세스 횟수가 되는 패턴을 소거한다(도 7의 스텝 S15).
즉, 단순히 가로의 나열을 교체한 것이나, 상위 어드레스를 교체한 것은, 같은 평균 액세스 횟수가 되기 때문에, 소거한다.
그 결과, 도 9(A) 내지 (C)의 패턴(1, 2, 3)이 얻어진다.
또한, 각 회로의 액세스 확률을 같게 하였을 때에, 분명히 같은 것을 소거한다.
이 예인 경우, 도 9(B)의 패턴(2)과 도 9(c)의 패턴(3)이 같은 평균 액세스 횟수가 되기 때문에, 소거한다(도 7의 스텝 S15).
다음에 얻어진 각 패턴의 평균 액세스 횟수를 계산하고(도 7의 스텝 S16), 모든 패턴중에서 최소의 평균 액세스 사이클의 패턴을 구한다(도 7의 스텝 S17).
평균 액세스 횟수는, 액세스 순서 결정 수단(504)이 상위 어드레스가 공통인 것을 먼저 처리하고, 또한 어드레스가 상위의 것부터 처리한다고 가정한 때의 액세스 횟수이다.
따라서 패턴(1)의 경우에서, 회로(1와 2)로부터의 액세스를 처리하기 위해 필요한 사이클 수는, 도 10에 도시한 파형으로부터, 14사이클로 계산할 수 있다.
마찬가지로, 패턴(2)의 경우에는, 회로(2)의 상위측에 액세스가 일어나는 패턴에서는, 도 11에 도시하는 파형이 된다. 회로(2)의 하위측에 액세스가 오는 패턴에서는, 도 12에 도시하는 파형이 된다. 각각 확률 1/2로 일어나기 때문에, 평균 액세스 수는 11이 된다.
도 10 내지 도 12의 파형은, SDRAM인 경우의 파형을 나타내고 있고, 상위 어드레스가 공통인 때는, 최초의 액세스 이외는, 상위 어드레스를 전송할 필요가 없다. 즉, ACTIVE 커맨드와 PRECHARGE 커맨드를 삭감할 수 있다. 따라서, 액세스를 고속으로 할 수 있다.
다음에 도 6의 스텝 S3, 즉 액세스 순서 결정 수단(504)의 동작에 관해 보다 상세히 설명한다.
도 13은, 액세스 순서 결정 수단(504)의 처리 동작을 설명하기 위한 흐름도이다.
액세스 순서 결정 수단(504)에서는 클록 신호(A)(507)의 에지 검출 후, 각 회로(501)의 이네이블과 라이트 이네이블을 보고, 이들의 회로가 액세스를 행하고 있는지의 여부를 조사한다(도 13의 스텝 S21). 이 때, 전혀 액세스가 없다면, 액세스 순서 결정 수단(504)은 아무것도 출력하지 않기 때문에, 액세스 수단(506)은 아무것도 행하지 않는다.
도 13의 스텝 S21에서, 미처리의 액세스가 있는 경우, 액세스를 행하고 있는 것 중, 상위 어드레스가 가장 위의 어드레스를 선택한다(도 13의 스텝 S22).
다음에, 도 13의 스텝 S23에서는, 도 13의 스텝 S22에서 선택된 액세스중, 라이트 액세스를 선택한다. 만약, 라이트 액세스가 있는 경우에는, 해당 라이트 액세스중에서 적당하게 선택하고, 라이트 처리를 행한다(스텝 S24). 단, 스텝 S23에서 선택된 라이트 액세스중, 하위 어드레스가 같은 경우는, 그것도 동시에 처리한 다.
도 13의 스텝 S23에서, 라이트 액세스가 없는 경우에는, 리드 액세스중 적당한 것을 선택한다(스텝 S25). 단, 라이트 액세스와 마찬가지로 스텝 S25에서도, 어드레스가 같은 경우에는, 그것도 동시에 처리한다.
재차 스텝 S21로 되돌아와, 미처리의 액세스가 있는지 판정하고, 미처리의 액세스가 있는 경우에는, 스텝 S22 내지 S25의 처리를 반복한다. 즉, 모든 액세스가 없어질 때까지 스텝 S22 내지 S25의 처리를 행한다.
액세스 수단(506)에서는, 액세스 순서 결정 수단(504)이 계산한 순서에 따라, 실제로 외부 메모리(505)에 액세스를 행한다.
다음에, 본 실시의 형태의 작용 효과에 관해 설명한다.
본 실시의 형태에서는, 계산 수단(503)과 액세스 순서 결정 수단(504)이, 평균 액세스 횟수를 적게 하도록, 메모리 배치를 행하고, 액세스 순서를 결정하고 있기 때문에, 액세스 시간을 종래 수법보다도 단축할 수 있다.
또한, 외부 메모리(505)를 효율 좋게 이용할 수 있다.
다음에, 본 발명의 제 2의 실시의 형태에 관해 도면을 참조하여 상세히 설명한다. 도 14는, 본 발명의 제 2의 실시의 형태의 구성을 도시하는 도면이다. 도 14를 참조하면, 본 발명의 제 2의 실시의 형태는, CPU로 실행되는 프로그램(1401)에 의해, 메모리 제어 수단(1402)을 구성하고, 메모리 제어 수단(1402)이 외부 메모리(505)를 제어하는 이외에, 상기 실시의 형태와 다름은 없다.
도 15에 도시하는 바와 같이, 생성된 메모리 제어 수단(1402)은, 상기 실시 의 형태와 같이, 액세스 순서 결정 수단(504), 액세스 수단(506)의 처리 기능을 실현한다.
프로그램(1401)은, 각 회로의 데이터 폭과 어드레스 폭, 외부 메모리(505)의 데이터 폭과 상위 어드레스의 폭과 하위 어드레스의 폭과 1비트의 라이트 이네이블이 영향을 주는 데이터 폭으로부터, 상기 실시의 형태에서 설명한 계산 수단(503)(도 5 참조)과 같은 방법을, 소프트웨어(컴퓨터 프로그램)로 실현하고 있고, 계산 수단(도 15에서는 도시 생략)은, 최적의 메모리 배치를 결정한다. 그리고, 결정된 메모리 배치로 최적화된, 액세스 순서 결정 수단(504)과 액세스 수단(506)을 구성한다.
본 발명의 제 2의 형태의 작용 효과에 관해 설명한다.
본 발명의 제 2의 실시의 형태에서는, 소프트웨어로 최적의 메모리 배치를 결정하도록, 구성되어 있기 때문에, 도 5의 계산 수단(503)을 하드웨어로 실현할 필요가 없고, 구성을 단순화시킬 수 있다. 이하, 구체적인 실시예를 이용하여 설명한다.
실시예
도 16을 참조하면, 본 발명의 실시의 형태의 각 수단이 모두 회로에 의해 실현된 경우를 나타내고 있다. 본 실시예에서는, 입력 수단(502)을, 계산 회로(503)의 단자로서 실현하고 있다. 즉, 회로(1)의 어드레스 폭 10, 회로(1)의 데이터 폭 32, SDRAM의 상위 어드레스 폭, 하위 어드레스 폭, 데이터 폭 13, 10, 64, 1비트의 라이트 이네이블이 영향을 주는 데이터 폭의 정보 등이, 입력 신호로서 단자로부터 계산 회로(503)에 직접 입력된다. 외부 메모리(505)는 SDRAM 모듈로 구성된다.
또한, 도 16에 도시한, 어드레스 폭, 데이터 폭등의 수치 예는, 단지, 예로서 이용한 것이고, 상세한 계산의 예는 생략한다. 이하, 본 실시 예의 동작을 설명한다.
계산 회로(503)는, 상기 실시의 형태에서 설명한 바와 같이, 도 9의 [패턴(2)]을 최적의 메모리 배치로 판정한다.
다음에, 액세스 순서 결정 회로(504)는, 도 13에 도시한 흐름도에 따라, 액세스 순서를 결정한다.
지금, 회로(1)와 회로(2)의 액세스 패턴은, 도 17에 도시한 바와 같이, 패턴(1) 내지 패턴(6)의 6개의 패턴이 존재한다.
도 13에 의하면, 예를 들면, 도 17의 패턴(1) 내지 (6)의 액세스의 양상은, 도 18의 (C) 내지 (H)에 도시하는 바와 같은 것으로 된다. 단, 패턴(1)은 액세스 무(無)이다.
따라서 각 패턴의 발생 확률이 동등한 경우, 도 9의 패턴(1)과 같이 배치한 경우의 평균 사이클 횟수는, 9.33이고, 도 9의 패턴(2)과 같이 배치한 경우는 8이 된다.
이와 같이, 계산 회로(503)가 각 회로가 사용하는 메모리 공간을 최적으로 매핑함으로써, 평균 사이클 횟수를 삭감할 수 있는 것을 알 수 있다.
본 발명은, 어드레스를 복수회 발행하여 하나의 데이터에 액세스할 수 있고, 복수회의 어드레스중 전회와 같은 어드레스에 액세스할 때는, 그 어드레스 전송을 생략할 수 있는 메모리를 복수의 회로가 공유하여 이용하고 있는 구성에 적용할 수 있다.
이상, 본 발명을 상기 실시예에 입각해서 설명하였지만, 본 발명은 상기 실시예의 구성만으로 제한되는 것이 아니고, 본 발명의 범위 내에서 당업자라면 이룰 수 있는 각종 변형, 수정을 포함하는 것은 물론이다.

Claims (19)

  1. 하나 또는 복수의 액세스 생성 수단을 구비하고, 상기 하나 또는 복수의 액세스 생성 수단은, 합쳐서 적어도 2종류의 액세스를 생성하고,
    상기 액세스 생성 수단으로부터의 액세스를 처리하는 액세스 수단과,
    상기 액세스 수단에 접속되고, 하나의 어드레스를 지정하기 위해, 적어도 2개 이상의 어드레스 지정 정보를 통신하고, 상기 통신중, 통신하는 어드레스 지정 정보가 전회 통신한 어드레스 지정 정보와 같은 정보의 통신을 생략할 수 있는 기억 수단과,
    상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭에 의거하여, 상기 기억 수단에의 평균 액세스 횟수를 최소화하도록, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역을 결정하는 계산 수단을 구비하고 있는 것을 특징으로 하는 기억 영역 할당 시스템.
  2. 제 1항에 있어서,
    상기 계산 수단은, 상기 복수의 액세스 생성 수단의 상기 기억 수단에서의 점유 영역의 배치의 할당의 패턴을 망라적으로 열거하고,
    상기 열거한 각 패턴에서, 평균 액세스 횟수를 구하고, 그중의 최소의 평균 액세스 횟수를 갖는 상기 기억 수단에서의 점유 영역을 결정하는 것을 특징으로 하 는 기억 영역 할당 시스템.
  3. 제 1항 또는 제 2항에 있어서,
    상기 계산 수단은, 1비트의 라이트 이네이블이 영향을 주는 제 2의 데이터 폭을 입력하고,
    상기 액세스 생성 수단의 데이터 폭을, 상기 제 2의 데이터 폭으로 나누어 얻어진 몫을 정수로 잘라 올리고, 또한 상기 정수에 상기 제 2의 데이터 폭을 곱한 값을, 상기 액세스 생성 수단의 데이터 폭으로서 이용하여, 상기 기억 수단에서의 점유 영역을 결정하는 것을 특징으로 하는 기억 영역 할당 시스템.
  4. 제 3항에 있어서,
    상기 계산 수단은, 상기 어드레스 지정 정보중 하나의 어드레스 지정 정보와, 상기 제 2의 데이터 폭으로, 상기 액세스 생성 수단이 점유하여야 할 점유 영역을 분할한 영역을 이용하여, 상기 액세스 생성 수단의 상기 기억 수단에서의 점유 영역을 결정하는 것을 특징으로 하는 기억 영역 할당 시스템.
  5. 제 1항 또는 제 2항에 기재된 기억 영역 할당 시스템을 구비하고,
    상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭을 상기 계산 수단에 전하는 입력 수단과,
    상기 계산 수단이 결정한 점유 영역의 할당과, 상기 액세스 생성 수단의 액세스 상황에 의거하여, 평균 액세스 횟수가 최소가 되도록, 액세스 순서를 결정하는 액세스 순서 결정 수단을 구비하고,
    상기 액세스 수단은, 상기 액세스 순서 결정 수단에 의해 결정된 액세스 순서에 따라 상기 기억 수단을 제어하는 것을 특징으로 하는 제어 장치.
  6. 제 3항 또는 제 4항에 기재된 기억 영역 할당 시스템을 구비하고,
    상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭과, 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭과 1비트의 라이트 이네이블이 영향을 주는 데이터 폭을 상기 계산 수단에 전하는 입력 수단과,
    상기 계산 수단이 결정한 점유 영역의 할당과, 상기 액세스 생성 수단의 액세스 상황에 의거하여, 평균 액세스 횟수가 최소가 되도록, 액세스 순서를 결정하는 액세스 순서 결정 수단을 구비하고,
    상기 액세스 수단은, 상기 액세스 순서 결정 수단에 의해 결정된 액세스 순서에 따라, 상기 기억 수단에의 액세스를 제어하는 것을 특징으로 하는 제어 장치.
  7. 제 5항 또는 제 6항에 있어서,
    상기 기억 수단은, 클록 동기형의 다이내믹 랜덤 액세스 메모리이고,
    상기 액세스 순서 결정 수단은, 같은 행 어드레스에 배치된 상기 액세스 생 성 수단이 이용하는 메모리 공간에 액세스할 때, 1회의 액티브 커맨드와, 복수회의 리드 커맨드/라이트 커맨드와 1회의 프리차지 커맨드를 차례로 발행하여 처리를 행하는 것을 특징으로 하는 제어 장치.
  8. 제 5항 또는 제 6항에 있어서,
    상기 액세스 순서 결정 수단은, 같은 행 어드레스에 배치된 상기 액세스 생성 수단이 이용하는 메모리에 액세스할 때, 라이트 처리와 리드 처리의 어느 한쪽을 통합하여 먼저 처리하고, 다음에, 그 나머지 처리를 행하도록 제어하는 것을 특징으로 하는 제어 장치.
  9. 하나 또는 복수의 액세스 생성 수단이 합쳐서 적어도 2종류의 액세스를 생성하고, 상기 액세스 생성 수단으로부터의 액세스를 처리하는 액세스 수단에 접속되고, 하나의 어드레스를 지정하기 위해 적어도 2개 이상의 어드레스 지정 정보를 통신하고, 또한, 상기 통신중 통신하는 어드레스 지정 정보가 전회 통신한 어드레스 지정 정보와 같은 정보의 통신은 생략할 수 있는 기억 수단의 점유 영역의 할당 방법으로서,
    (a) 상기 액세스 생성 수단과 상기 액세스 수단과의 사이의 통신로의 어드레스 폭과 데이터 폭을 입력하는 스텝과,
    (b) 상기 기억 수단의 상기 어드레스 지정 정보의 폭과 데이터 폭을 입력하는 스텝과,
    (c) 상기 스텝(a)과 스텝(b)에서 얻어진 정보로부터, 평균 액세스 횟수를 최소화하도록, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역을 결정하는 스텝을 포함하는 것을 특징으로 하는 기억 영역 할당 방법.
  10. 제 9항에 있어서,
    상기 스텝(c)에서,
    (c.1) 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역의 배치의 할당에 관해 복수의 패턴을 열거하는 스텝과,
    (c.2) 상기 스텝(c.1)에서 얻어진 각 패턴의 평균 액세스 횟수를 계산하는 스텝과,
    (c.3) 상기 스텝(c.2)에서 얻어진 각 패턴의 평균 액세스 횟수중에서 최소의 평균 액세스 횟수를 갖는 패턴을, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역으로서 결정하는 스텝을 갖는 것을 특징으로 하는 기억 영역 할당 방법.
  11. 제 9항 또는 제 10항에 있어서,
    상기 스텝(a)에서,
    (a.1) 상기 기억 수단에서의 1비트의 라이트 이네이블이 영향을 주는 제 2의 데이터 폭을 입력하는 스텝과,
    (a.2) 상기 액세스 생성 수단의 데이터 폭을 상기 제 2의 데이터 폭으로 나 누고, 그 값을 정수로 잘라 올리고, 또한 상기 정수에 상기 제 2의 데이터 폭을 곱하고, 승산 결과를 상기 액세스 생성 수단의 데이터 폭으로서, 수정하는 스텝을 갖는 것을 특징으로 하는 기억 영역 할당 방법.
  12. 제 10항에 있어서,
    상기 스텝(c.1)에서,
    (c.1.1) 상기 어드레스 지정 정보중 하나의 어드레스 지정 정보와 제 2의 데이터 폭으로, 상기 기억 수단을, 상기 각 액세스 생성 수단이 점유하는 점유 영역으로 분할하는 스텝과,
    (c.1.2) 상기 스텝(c.1.1)에서 얻어진 분할된 점유 영역과 상기 각 액세스 생성 수단과의 할당의 조합의 패턴을 열거하는 스텝을 갖는 것을 특징으로 하는 기억 영역 할당 방법.
  13. 제 12항에 있어서,
    상기 스텝(c.1)에서,
    (c.1.3) 상기 스텝(c.1.2)에서 열거된 패턴중에서, 분명히 같은 평균 액세스 횟수가 되는 패턴을, 사전에 소거하는 스텝을 가지며,
    상기 스텝(c.2)에서는, 상기 스텝(c.1.2)에서 열거된 패턴중에서, 분명히 같은 평균 액세스 횟수가 되는 패턴이 소거된, 나머지 각 패턴의 평균 액세스 횟수를 계산하는 것을 특징으로 하는 기억 영역 할당 방법.
  14. 제 1O항 내지 제 13항중 어느 한 항에 기재된 기억 영역 할당 방법을 이용하여 기억 수단에의 액세스를 제어하는 제어 방법으로서,
    (d) 상기 스텝(c)에서 취득된, 상기 액세스 생성 수단이 이용하는 상기 기억 수단에서의 점유 영역의 배치 정보와, 상기 각 액세스 생성 수단으로부터 상기 기억 수단에의 액세스 상황에 의거하여, 액세스 순서를 결정하는 스텝과,
    (e) 상기 액세스 수단이, 상기 스텝(d)에서 결정된 액세스 순서에 따라, 상기 기억 수단에의 액세스를 제어하는 스텝을 갖는 것을 특징으로 하는 제어 방법.
  15. 복수의 회로로부터, 공통의 메모리에의 액세스를 제어한 제어 장치로서,
    상기 복수의 회로의 각각의 어드레스 폭 및 데이터 폭과,
    상기 메모리의 상위 어드레스 폭 및 하위 어드레스 폭과 데이터 폭에 관한 정보, 또는, 해당 정보와 상기 메모리의 1비트의 라이트 이네이블이 영향을 주는 데이터 폭에 관한 정보를 받아서, 상기 회로의 액세스를 처리하는데 소비하는 사이클 수를 적게 하도록 상기 회로에 대해 할당되는 메모리 배치를 결정하는 계산 수단과,
    상기 복수의 회로로부터의 액세스 정보와, 상기 계산 수단에서 결정된 메모리 배치에 의거하여, 상기 메모리에의 액세스 순서를 결정하는 액세스 순서 결정 수단과,
    상기 액세스 순서 결정 수단이 결정한 액세스 순서에 따라 상기 메모리에 액 세스를 행하는 액세스 수단을 구비하고 있는 것을 특징으로 하는 제어 장치.
  16. 제 15항에 있어서,
    상기 회로는, 상기 메모리에의 리드 또는 라이트 액세스를 행함에 있어서, 어드레스 정보를 복수회 발행하고,
    상기 메모리는, 상기 회로로부터의 상기 복수회의 어드레스 정보중, 전회와 같은 어드레스에 액세스할 때는, 그 어드레스 전송을 생략할 수 있는 것을 특징으로 하는 제어 장치.
  17. 제 15항에 있어서,
    상기 계산 수단은, 상기 회로로부터의 상기 메모리에의 액세스 횟수를 최소로 하도록, 상기 회로에 대한 메모리 배치를 계산하는 것을 특징으로 하는 제어 장치.
  18. 복수의 회로로부터, 공통의 메모리에의 액세스를 제어한 제어 장치를 구성하는 컴퓨터에,
    상기 복수의 회로의 각각의 어드레스 폭 및 데이터 폭과,
    상기 메모리의 상위 어드레스 폭 및 하위 어드레스 폭과 데이터 폭에 관한 정보, 또는, 해당 정보와 상기 메모리의 1비트의 라이트 이네이블이 영향을 주는 데이터 폭에 관한 정보를 받아서, 상기 회로의 액세스를 처리하는데 소비하는 사이 클 수를 적게 하도록 상기 회로에 대해 할당되는 메모리 배치를 결정하는 계산 처리와,
    상기 복수의 회로로부터의 액세스 정보와, 상기 계산 처리에서 결정된 메모리 배치에 의거하여, 상기 메모리에의 액세스 순서를 결정하는 액세스 순서 결정 처리와,
    상기 액세스 순서 결정 처리가 결정한 액세스 순서에 따라 상기 메모리에의 액세스를 행하는 액세스 처리를 실행시키는 것을 특징으로 하는 프로그램.
  19. 제 18항에 있어서, 상기 회로는, 상기 메모리에의 리드 또는 라이트 액세스를 행함에 있어서, 어드레스 정보를 복수회 발행하고,
    상기 메모리는, 상기 회로로부터의 상기 복수회의 어드레스 정보중, 전회와 같은 어드레스에 액세스할 때는, 그 어드레스 전송을 생략할 수 있는 것을 특징으로 하는 프로그램.
KR1020087011327A 2005-12-16 2006-12-06 기억 영역 할당 시스템 및 방법과 제어 장치 KR20080053527A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005363241 2005-12-16
JPJP-P-2005-00363241 2005-12-16

Publications (1)

Publication Number Publication Date
KR20080053527A true KR20080053527A (ko) 2008-06-13

Family

ID=38162814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087011327A KR20080053527A (ko) 2005-12-16 2006-12-06 기억 영역 할당 시스템 및 방법과 제어 장치

Country Status (6)

Country Link
US (1) US8225064B2 (ko)
EP (1) EP1962196A4 (ko)
JP (1) JP5040660B2 (ko)
KR (1) KR20080053527A (ko)
CN (1) CN101331464A (ko)
WO (1) WO2007069506A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9260882B2 (en) 2009-03-12 2016-02-16 Ford Global Technologies, Llc Universal global latch system
KR20110032606A (ko) * 2009-09-23 2011-03-30 삼성전자주식회사 전자 디바이스의 성능 개선을 위한 전자 디바이스 컨트롤러
US9551166B2 (en) 2011-11-02 2017-01-24 Ford Global Technologies, Llc Electronic interior door release system
US9416565B2 (en) 2013-11-21 2016-08-16 Ford Global Technologies, Llc Piezo based energy harvesting for e-latch systems
US9903142B2 (en) 2014-05-13 2018-02-27 Ford Global Technologies, Llc Vehicle door handle and powered latch system
US10273725B2 (en) 2014-05-13 2019-04-30 Ford Global Technologies, Llc Customer coaching method for location of E-latch backup handles
US10119308B2 (en) 2014-05-13 2018-11-06 Ford Global Technologies, Llc Powered latch system for vehicle doors and control system therefor
US9909344B2 (en) 2014-08-26 2018-03-06 Ford Global Technologies, Llc Keyless vehicle door latch system with powered backup unlock feature
US9725069B2 (en) 2015-10-12 2017-08-08 Ford Global Technologies, Llc Keyless vehicle systems
US10152527B1 (en) 2015-12-28 2018-12-11 EMC IP Holding Company LLC Increment resynchronization in hash-based replication
US10324782B1 (en) 2016-03-24 2019-06-18 Emc Corporation Hiccup management in a storage array
US10705907B1 (en) 2016-03-24 2020-07-07 EMC IP Holding Company LLC Data protection in a heterogeneous random access storage array
US10101934B1 (en) * 2016-03-24 2018-10-16 Emc Corporation Memory allocation balancing for storage systems
US9792975B1 (en) 2016-06-23 2017-10-17 Mediatek Inc. Dram and access and operating method thereof
US10227810B2 (en) 2016-08-03 2019-03-12 Ford Global Technologies, Llc Priority driven power side door open/close operations
US10329823B2 (en) 2016-08-24 2019-06-25 Ford Global Technologies, Llc Anti-pinch control system for powered vehicle doors
US10255172B1 (en) 2016-09-30 2019-04-09 EMC IP Holding Company LLC Controlled testing using code error injection
US10223008B1 (en) 2016-09-30 2019-03-05 EMC IP Holding Company LLC Storage array sizing for compressed applications
US10152371B1 (en) 2016-09-30 2018-12-11 EMC IP Holding Company LLC End-to-end data protection for distributed storage
US10604970B2 (en) 2017-05-04 2020-03-31 Ford Global Technologies, Llc Method to detect end-of-life in latches
US10907386B2 (en) 2018-06-07 2021-02-02 Ford Global Technologies, Llc Side door pushbutton releases

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4613953A (en) * 1983-04-22 1986-09-23 Ncr Corporation Paging register for memory devices
US5301292A (en) * 1991-02-22 1994-04-05 Vlsi Technology, Inc. Page mode comparator decode logic for variable size DRAM types and different interleave options
US5572692A (en) * 1991-12-24 1996-11-05 Intel Corporation Memory configuration decoding system having automatic row base address generation mechanism for variable memory devices with row access interleaving
DE69326236T2 (de) * 1993-06-16 1999-12-30 Bull Hn Information Syst Speicher mit variabeler Verschachtelungshöhe und verwandte Konfigurationseinheit
US5590299A (en) * 1994-10-28 1996-12-31 Ast Research, Inc. Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
WO1996037050A1 (en) 1995-05-15 1996-11-21 Advanced Hardware Architectures, Inc. Reconfigurable interleaver/deinterleaver and address generator for data streams interleaved according to one of a plurality of interleaving schemes
US5619471A (en) * 1995-06-06 1997-04-08 Apple Computer, Inc. Memory controller for both interleaved and non-interleaved memory
JPH1139857A (ja) * 1997-07-23 1999-02-12 Toshiba Corp メモリシステム及び情報処理システム
JP3635899B2 (ja) * 1997-11-25 2005-04-06 セイコーエプソン株式会社 情報処理装置、その制御方法およびメモリアドレス変換装置
JP3464621B2 (ja) * 1999-04-01 2003-11-10 フーリエ有限会社 バンク可変メモリ
JP2001175530A (ja) * 1999-12-22 2001-06-29 Nec Ic Microcomput Syst Ltd メモリアクセス調停装置およびメモリアクセス調停方法
JP4641094B2 (ja) * 2000-11-17 2011-03-02 富士通セミコンダクター株式会社 半導体メモリ
JP2003030044A (ja) * 2001-07-19 2003-01-31 Mitsubishi Electric Corp メモリコントロール装置
US6961834B2 (en) * 2001-10-12 2005-11-01 Sonics, Inc. Method and apparatus for scheduling of requests to dynamic random access memory device
JP2003281074A (ja) * 2002-03-19 2003-10-03 Fujitsu Ltd ダイレクトメモリアクセス装置

Also Published As

Publication number Publication date
CN101331464A (zh) 2008-12-24
JP5040660B2 (ja) 2012-10-03
JPWO2007069506A1 (ja) 2009-05-21
WO2007069506A1 (ja) 2007-06-21
US8225064B2 (en) 2012-07-17
US20100005233A1 (en) 2010-01-07
EP1962196A1 (en) 2008-08-27
EP1962196A4 (en) 2010-10-06

Similar Documents

Publication Publication Date Title
KR20080053527A (ko) 기억 영역 할당 시스템 및 방법과 제어 장치
US10811077B2 (en) Refresh control circuit, memory device including the same and method of operating the same for hammer refresh operation
CN1977336B (zh) 改善支持多存储器访问延迟的计算机存储器系统的性能的系统和方法
CN102177551B (zh) 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备
JP5430484B2 (ja) 半導体記憶装置、及びその制御方法
KR20100077026A (ko) 직렬 인터페이스 nand
CN102081964A (zh) 动态随机访问存储器刷新的方法和系统
CN108139989B (zh) 配备有存储器中的处理和窄访问端口的计算机设备
CN116457761A (zh) 一种存储装置、存储控制装置及片上系统
KR20200130113A (ko) 고대역폭 메모리 시스템
US20030179637A1 (en) Flexible integrated memory
US9940260B1 (en) System and method for controlling optimized access to memory device having three-dimensional stacked structure
JP5348157B2 (ja) 情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法
US11755235B2 (en) Increasing random access bandwidth of a DDR memory in a counter application
US8099530B2 (en) Data processing apparatus
JPWO2009081551A1 (ja) メモリ装置及びその制御方法
JP7473386B2 (ja) 高帯域幅メモリシステム及びメモリアドレス方法
US20210373852A1 (en) Processing-in-memory (pim) devices
US7707450B1 (en) Time shared memory access
US20220019374A1 (en) Processing-in-memory (pim) systems
US20150170720A1 (en) Multiple port shared memory
EP4150467A1 (en) Two-way interleaving in a three-rank environment
CN112835513A (zh) 控制数据读写装置与方法
JP2023089343A (ja) 演算処理プログラムおよび演算処理方法
JP2002216474A (ja) コンピュータシステムとそのメモリリフレッシュ方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application