KR100754360B1 - 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법 - Google Patents

공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법 Download PDF

Info

Publication number
KR100754360B1
KR100754360B1 KR1020060046852A KR20060046852A KR100754360B1 KR 100754360 B1 KR100754360 B1 KR 100754360B1 KR 1020060046852 A KR1020060046852 A KR 1020060046852A KR 20060046852 A KR20060046852 A KR 20060046852A KR 100754360 B1 KR100754360 B1 KR 100754360B1
Authority
KR
South Korea
Prior art keywords
command
storage area
port
shared storage
access
Prior art date
Application number
KR1020060046852A
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 엠텍비젼 주식회사
Priority to KR1020060046852A priority Critical patent/KR100754360B1/ko
Application granted granted Critical
Publication of KR100754360B1 publication Critical patent/KR100754360B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Abstract

본 발명은 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법이 개시된다. 본 발명의 실시예에 따르면, 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서, 각 포트를 통해 복수의 프로세서가 액세스 가능한 하나 이상의 공유 저장영역; 및 프로세서가 각 포트를 통해 공유 저장영역에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되, 접근 권한 레지스터 로직은 임의의 프로세서로 공유 저장영역에 대한 접근 권한을 부여하면, 공유 저장영역을 리프레쉬(refresh)시키는 것을 특징으로 하는 다중 포트 메모리 장치가 제공된다. 따라서, 공유 뱅크와 같은 다중 포트 메모리의 공유 저장영역이 안정적인 리프레쉬를 수행하도록 하는 다중 포트 메모리 장치 및 그 리프레쉬 방법을 제공할 수 있는 효과가 있다.
메모리, 다중포트, 공유뱅크, 리프레쉬

Description

공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법{Multi-port memory device performing stable refresh of shared memory area and refresh method thereof}
도 1은 종래의 다중 포트 메모리 중 듀얼 포트 메모리의 뱅크 구조를 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 다중 포트 메모리 장치를 개략적으로 도시한 구성도.
도 3은 일반적인 MRS 커맨드 및 어드레스 조합의 구조를 도시한 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 변형된 MRS 커맨드의 일례를 도시한 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 공유 뱅크와 접근 권한 레지스터 로직을 도시한 도면
도 6은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직의 구성을 도시한 도면.
<도면의 주요 부분에 대한 부호 설명>
200 : A-포트 전용 뱅크
202 : 공유 뱅크
204 : B-포트 전용 뱅크
220 : A-포트
222 : B-포트
240 : 접근 권한 레지스터 로직
본 발명은 다중 포트 메모리 장치에 관한 것으로서, 더욱 상세하게는 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법에 관한 것이다.
일반적으로 메모리는 그 구분 방법에 따라 다양하게 나누어진다. 예를 들어, 전원의 인가여부에 따라 저장된 내용이 유지되는지 여부에 따라 휘발성 메모리와 비휘발성 메모리로 구분될 수 있으며, 일반적으로 휘발성 메모리는 RAM(Random Access Memory), 비휘발성 메모리는 ROM(Read Only Memory)이라고 지칭된다.
휘발성 메모리는 다시 주기적으로 메모리를 구성하는 셀(cell)을 재생(refresh)시켜 주어야 하는지 여부에 따라 DRAM(Dynamic RAM)과 SRAM(Static RAM)으로 구분된다.
또한 이러한 분류 방법 뿐만 아니라 메모리에 접근(access) 가능한 포트의 수에 따라 싱글 포트(single port) 메모리와 듀얼 포트(dual port) 메모리 등으로 나뉜다.
싱글 포트 메모리는 하나의 포트로 메모리를 구성하는 모든 셀(cell)들에 접근 가능한 반면, 싱글 포트 메모리를 제외한 복수개의 포트 메모리는 각각의 포트에서 접근 가능한 셀(cell)이 제한될 수 있다.
그러나 최근의 디지털 처리 장치는 각각 미리 설정된 기능을 수행하기 위한 복수의 프로세서(processor)를 구비하고 각각의 프로세서는 오퍼레이션(operation)을 위한 데이터, 처리하기 위한 데이터, 처리한 데이터 등을 저장하기 위한 메모리와 결합된다.
이러한 복수의 프로세서가 하나의 메모리를 공유하는 메모리 시스템에서는 싱글 포트(single port) 메모리보다 복수개의 포트를 포함하는 다중 포트 메모리가 더욱 효율적이므로 최근 다중 포트 메모리가 널리 사용되고 있다.
도 1은 종래의 다중 포트 메모리 중 듀얼 포트 메모리의 뱅크 구조를 도시한 도면이다.
도 1을 참조하면, A-포트(110) 및 B-포트(112) 각각을 통해 독립적으로 결합된 복수의 프로세서에 의해 공유되는 종래의 듀얼 포트 메모리는 A-포트(110), B-포트(112), A-포트 전용 뱅크(100), 공유 뱅크(102), B-포트 전용 뱅크(104, 106)를 포함한다. A-포트 전용 뱅크(100)는 A, B 두 개의 포트 중 A-포트(110)를 통해서만 접근하여 데이터를 독출하거나 기록하는 뱅크이며, B-포트 전용 뱅크(104, 106)는 B-포트(112)를 통해서만 접근하여 데이터를 독출하거나 기록하는 뱅크이다.
공유 뱅크(102)는 A-포트(110) 또는 B-포트(112)를 통해서 각각 접근하여 데이터를 독출하거나 기록할 수 있는 뱅크이다.
공유 뱅크(102)는 A-포트(110) 및 B-포트(112)를 통해 모두 사용할 수 있는 뱅크이나, A-포트(110) 및 B-포트(112) 중 어느 한 포트를 통해 공유 뱅크(102)가 사용되는 경우에는 다른 포트를 통해서는 공유 뱅크(102)를 사용할 수 없다. 즉, A-포트(110)에 결합된 제1 프로세서(도시되지 않음)가 공유 뱅크(102)에 접근하여 데이터를 독출하는 동안은 B-포트(112)에 결합된 제2 프로세서는 공유 뱅크(102)에 접근할 수 없도록 제한된다. 따라서, A-포트(110)를 통해서 공유 뱅크(102)가 사용되고 있는 동안에는 B-포트(112)를 통해서 공유 뱅크(102)를 사용할 수 없다.
만일 복수의 포트를 통해 공유된 메모리를 동시에 접근(access)할 경우, 각 프로세서에 대한 접근 권한을 컨트롤해주지 않으면 오동작이 발생할 뿐만 아니라, 가장 나쁜 경우에는 셀 데이터까지 해손 될 수 있는 위험성이 있다. 이를 해결하기 위한 방법으로, 하나의 공유 뱅크에 복수의 프로세서가 동시에 복수의 포트를 통해 접근을 시도할 경우, 먼저 접근을 시도한 어느 한쪽의 프로세서가 접근 권한을 가지게 된다. 이때는 먼저 사용하려고 권한을 가져간 프로세서가 계속 해당 공유 뱅크의 사용이 가능하고, 다른쪽 포트를 통한 접근을 시도한 프로세서는 권한을 가져간 공유 뱅크 외의 다른 공유 뱅크(도 1에는 도시되지 않았으나 복수의 공유 뱅크 가 존재할 수 있음)의 접근 권한을 가져가든지 아니면 먼저 점유된 공유 뱅크의 접근 권한이 반납될 때까지 기다렸다가 사용을 해야 한다.
SDRAM과 같은 메모리는 기록된 데이터의 보존을 위해 주기적으로 리프레쉬를수행한다. 리프레쉬는 셀프 리프레쉬(self refresh)와 오토 리프레쉬(auto refresh)로 구분될 수 있다. 여기서, 오토 리프레쉬는 주기적으로 외부(예를 들어, 임의의 프로세서)에서 입력되는 오토 리프레쉬 명령(command)에 의해 수행된다. 리프레쉬는 간단히 설명하면, 셀(cell)의 전하를 증폭하여 저장된 데이터를 유지하도록 하는 기능이다.
여기서, 일반적으로 전용 뱅크 및 공유 뱅크는 각각 복수 개의 로우(row)와 복수 개의 칼럼(column)에 의해 배열되는 메모리 셀들로 구성된 메모리 셀 어레이와 각 메모리 셀들의 로우 어드레스(Row Address)에 해당하는 워드 라인(word line)을 선택하여 활성화시키는 로우 디코더(104, Row Decoder) 그리고, 각 메모리 셀들의 칼럼 어드레스(Column Address)에 해당하는 비트 라인(bit line)을 선택하여 활성화시키는 칼럼 디코더(Column Decoder) 및 센스 앰프(Sense Amplifier)를 포함한다. 센스 앰프는 비트 라인을 통해 전달되는 셀(커패시터)의 데이터(전하)를 증폭하여 다시 원래의 셀 안으로 저장함으로써 리프레쉬 동작을 수행한다.
공유 뱅크는 접근 권한을 가진 프로세서로부터 커맨드를 수신한다. 따라서, 공유 뱅크는 오토 리프레쉬 명령도 접근 권한을 가진 프로세서로부터 수신한다. 그런데, 만일 임의의 프로세서(예를 들어, A-포트로 연결된 프로세서A)가 공유 뱅크의 접근 권한을 가지고 있을 때, 다른 포트(예를 들어, B-포트를 통해 연결된 프로 세서B)에서 오토 리프레쉬 명령이 들어오면 공유 뱅크는 오토 리프레쉬 명령을 수신하지 못하여 리프레쉬를 수행하지 못한다. 그리고, 다시 프로스세A에서 오토 리프레쉬 명령이 들어오기 전에 공유 뱅크에 대한 접근 권한을 반납하고, 프로세서B가 공유 뱅크의 접근 권한을 가져가면 A-포트를 통해 들어오는 오토 리프레쉬 명령에 따른 리프레쉬를 수행할 수 없게 된다. 이런 상황이 계속하여 반복될 경우, 공유 뱅크는 리프레쉬를 수행하지 못해서 공유 뱅크의 셀(cell)들은 데이터를 잃어버리는 문제가 발생된다.
따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 다중 포트 메모리의 공유 뱅크와 같은 공유 저장영역이 안정적인 리프레쉬를 수행하도록 하는 다중 포트 메모리 장치 및 그 리프레쉬 방법을 제공하는데 그 목적이 있다.
또한, 공유 저장영역에 다중 포트가 동시에 접근할 수 있는 다수의 블록으로 구현된 공유 저장영역에 따른 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법을 제공하는데 다른 목적이 있다.
본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.
상술한 목적들을 달성하기 위한 본 발명의 제1 측면에 따르면, 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서, 상기 각 포트를 통해 복수의 프로세서가 액세스 가능한 하나 이상의 공유 저장영역; 및 상기 프로세서가 상기 각 포트를 통해 상기 공유 저장영역에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되, 상기 접근 권한 레지스터 로직은 임의의 프로세서로 상기 공유 저장영역에 대한 접근 권한을 부여하면, 상기 공유 저장영역을 리프레쉬(refresh)시키는 것을 특징으로 하는 다중 포트 메모리 장치 및 그 리프레쉬 방법이 제공된다.
여기서, 특정 포트를 통해서만 액세스가 가능한 하나 이상의 전용 저장영역을 더 포함할 수 있다.
상술한 목적들을 달성하기 위한 본 발명의 제2 측면에 따르면, 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서, 특정 포트를 통해서만 액세스가 가능한 하나 이상의 전용 저장영역; 상기 각 포트를 통해 복수의 프로세서가 액세스 가능한 하나 이상의 공유 저장영역; 상기 프로세서로부터 커맨드를 수신하고 커맨드에 포함된 주소에 상응하는 저장영역에 커맨드를 전달하는 컨트롤 로직; 상기 컨트롤 로직으로부터 수신되는 신호에 상응하여 상기 공유 저장영역의 접근 권한에 대한 정보를 저장하는 하나 이상의 레지스터를 제어하는 플래그 로직; 및 상기 공유 저장영역에 대한 접근 권한을 부여한 상기 플래그 로직으로부터 수신된 신호에 상응하여 상기 공유 저장영역을 리프레쉬시키는 리프레쉬 로직을 포함하는 것을 특징으로 하는 다중 포트 메모리 장치 및 그 리프레쉬 방법이 제공된다.
여기서, 상기 컨트롤 로직은 상기 포트 수만큼 구비될 수 있다.
상기 제1 측면 또는 제2 측면에 따르면, 상기 공유 저장영역은 저장영역을 미리 설정된 단위로 분할한 하나 이상의 블록을 포함하고, 상기 프로세서는 상기 접근 권한 레지스터 로직에 의해 부여된 접근 권한에 따라 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으로 할 수 있다.
또한, 상기 프로세서에서 상기 공유 저장영역의 특정 블록을 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드일 수 있다.
또한, 상기 변형된 어드레스 파트는 공유 저장영역 블록의 주소 정보 및 공유 저장영역 사용과 관련한 커맨드 정보를 포함할 수 있다.
또한, 상기 공유 저장영역 사용과 관련한 커맨드는 상기 공유 저장영역의 특정 블록에 대한 접근 권한을 요청하는 세트(SET) 커맨드, 상기 공유 저장영역의 특정 블록에 대한 접근 권한이 부여됐는지의 확인을 위한 리드(READ) 커맨드 및 상기 공유 저장영역의 특정 블록에 대한 접근 권한 해제를 요청하는 리세트(RESET) 커맨드를 포함할 수 있다.
또한, 상기 접근 권한 레지스터 로직은 접근 권한을 부여한 임의의 프로세서로부터 상기 리드(READ)에 따른 커맨드가 들어온 이후 상기 공유 저장영역을 리프레쉬시킬 수 있다.
또한, 상기 공유 저장영역 또는 상기 전용 저장영역은 뱅크(bank)일 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명의 바람직한 실시예에 따른 공유 저장영역의 안정적인 리프레쉬를 위한 다중 포트 메모리 장치를 첨부 도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 상관없이 동일하거나 대응하는 구성요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 설명의 편의를 위해 본 발명의 바람직한 실시예에 따른 다중 포트는 두 개의 포트를 가진 듀얼 포트인 것을 예로 들어 설명하기로 하되, 세 개 이상의 포트를 가진 다중 포트에서도 동일하게 적용될 수 있음은 이하의 설명을 통해 더욱 자명하게 될 것이다.
또한, 이하에서는 저장영역이 뱅크인 것을 예로 들어 설명하기로 하되, 이는 반드시 뱅크일 필요는 없으며, 하나의 뱅크에서 전용 저장영역 및 공용 저장영역으로 구분될 수도 있다. 따라서, 뱅크 이외의 저장영역도 본 발명에 따른 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법이 동일 또는 유사하게 적용될 수 있음은 이하의 설명을 통해 더욱 자명하게 될 것이다.
도 2는 본 발명의 바람직한 각 실시예에 따른 다중 포트 메모리 장치를 개략적으로 도시한 구성도이다.
도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 다중 포트 메모리 장치(이하, 메모리 장치)는 A-포트(220), B-포트(222), A-포트 전용 뱅크(200), 공유 뱅크(202), B-포트 전용 뱅크(204) 및 접근 권한 레지스터 로직(240)을 포함한다.
A-포트(220) 및 B-포트(222)는 메모리 장치를 사용하는 제1, 제2 프로세서가 뱅크에 액세스하도록 하는 연결 포트이다. 즉, 본 발명의 바람직한 실시예에 따른 메모리 장치는 A-포트(220) 및 B-포트(222)를 통해 두 개의 프로세서가 연결될 수 있다.
이하, 각 포트를 통해 공용 뱅크(202) 등에 접속하는 주체는 프로세서이나, 설명의 편의상 해당 포트가 공용 뱅크에 접속하는 것으로 표현하기로 하며, 이는 본 발명을 한정하지 않음은 이하의 설명을 통해 자명하게 될 것이다.
A-포트 전용 뱅크(200)는 A-포트(220)만이 접근하여 데이터를 쓰고, 읽을 수 있는 저장 영역이며, B-포트 전용 뱅크(204)는 B-포트(222)만이 접근할 수 있는 저장 영역이다.
이와 달리, 공유 뱅크(202)는 A-포트(220) 및 B-포트(222) 모두 접근이 가능하며, 특히, 본 발명의 바람직한 실시예에 따른 공유 뱅크(202)는 하나 이상의 공유 블록(block)으로 형성될 수 있다. 즉, 공유 뱅크(202)는 하나 이상의 공유 블록으로 형성되어 A-포트(220) 및 B-포트(222)는 독립적으로 각 공유 블록에 데이터를 쓰고(write), 읽을(read) 수 있는 권한을 가질 수 있다. 다만, 동일한 공유 블록에 동시에 접근할 수는 없다.
접근 권한 레지스터 로직(240)은 A-포트(220) 또는 B-포트(222)가 공유 뱅크(202)에 접근할 수 있는 접근 권한을 제어하는 기능을 수행한다. 즉, 접근 권한 레지스터 로직(240)은 임의의 포트로부터 공유 뱅크(202)로의 접근 권한을 요청받으면, 해당 공유 뱅크에 대한 접근 권한이 현재 부여된 상태인지를 판단하고, 부여된 상태이면 접근 권한을 제공하지 않고, 부여되지 않은 상태이면 해당 포트로 접근 권한을 부여한다.
또한, 본 발명에 따른 접근 권한 레지스터 로직(240)은 접근 권한을 요청한 임의의 포트로 접근 권한을 제공하면, 해당 공유 뱅크(또는 공유 뱅크 내의 공유 블록)가 리프레쉬를 수행하도록 커맨드를 전송한다. 접근 권한 레지스터 로직(240) 의 기능은 관련 도면(도 5및 도 6)을 참조하여 상세히 설명하기로 한다.
여기서, 도면에는 각 포트별 전용 뱅크가 구비되었으나, 본 발명의 바람직한 다른 실시예에 따른 메모리 장치는 공유 블록만을 구비할 수도 있다. 즉, 메모리 장치에 구비된 모든 뱅크를 A-포트(220) 및 B-포트(222)가 접근할 수 있도록 공유 뱅크로 지정할 수도 있다. 또한, A-포트 전용 뱅크(200) 및 B-포트 전용 뱅크(204) 중 어느 하나와 공유 뱅크(202)만을 구비할 수도 있음은 자명하다. 또한, 각 포트에 상응하는 전용 영역(200, 204) 및 공유 영역(202)이 뱅크 단위로 구분되도록 제한되지는 않으며, 각 영역의 구분 기준은 다양하게 설정될 수 있음은 자명하다.
포트를 통해 메모리 장치에 접근하는 프로세서는 메모리 장치에 커맨드(COMMAND) 및 어드레스(Address) 정보를 제공함으로써, 커맨드에 상응하여 처리된 처리 데이터(예를 들어, 임의의 뱅크에 저장된 데이터를 읽기 위한 커맨드에 상응하는 저장된 데이터)를 메모리 장치로부터 제공받을 수 있다. 프로세서의 어플리케이션(application)과 메모리 장치와의 커맨드 정보는 미리 설정되어 있다.
프로세서의 어플리케이션은, 예를 들어, 액트(ACT), 리드(READ), 라이트(WRITE), 프리차지(Precharge), 리프레쉬(Refresh), 모드 레지스터 세트(Mode Register Set: MRS) 등 중 하나 이상과 같은 커맨드 정보를 메모리 장치에 제공한다.
상술한 커맨드들은 /RAS, /CAS, /CS 및 /WE 정보의 조합으로 이루어질 수 있다. 각 신호의 로우 또는 하이 상태에 따라 의미하도록 미리 지정된 정보는 각각 상이할 수 있으며, 용이하게 변경될 수 있으나, 이하에서는 일 예로서 각 신호 또는 신호의 조합에 의해 의미하는 정보를 설명하기로 한다.
예를 들어, 액트 커맨드는 /RAS가 로우로 인에이블(enable)되는 커맨드로서, 행(Row) 주소에 맞는 워드(WORD)를 인에이블시키는 커맨드이다.
리드 커맨드는 /CAS가 로우로 인에이블(enable)되는 커맨드로서, 리드 커맨드와 함께 전송되는 셀 어드레스에 상응하는 데이터를 독출하여 DQ 핀(예를 들어, 데이터 핀)들을 통해 출력하도록 하는 커맨드이다.
라이트 커맨드는 /CAS 및 /WE가 로우로 인에이블되는 커맨드로서, 라이트 커맨드와 함께 전송되는 셀 어드레스에 입출력 단자(예를 들어, DQ 핀)로부터 입력되는 데이터를 라이트하는 커맨드이다.
프리차지 커맨드는 /RAS 및 /WE가 로우로 인에이블되는 커맨드로서, 액트(ACT) 커맨드에서 인에이블된 워드 라인을 디스에이블(Disabe)시키는 커맨드이다.
리프레쉬 커맨드는 /RAS 및 /CAS가 로우로 인에이블되는 커맨드로서 메모리의 데이터가 유실되지 않도록 주기적으로 리프레쉬하도록 하는 커맨드이다. 각 포트 전용 뱅크는 각 포트로부터 전송되는 리프레쉬 커맨드에 의해 리프레쉬를 수행한다. 또한, 종래 기술에 따르면 공유 뱅크(202)는 접근 권한을 가진 포트로부터 수신되는 리프레쉬 커맨드에 의해 리프레쉬를 수행한다. 이와 달리 본 발명에 따르면, 공유 뱅크(202)의 리프레쉬는 접근 권한 레지스터 로직(240)에 의해 수행되며, 이에 대한 상세한 설명은 후술하기로 한다.
모드 레지스터 세트(MRS) 커맨드는 /RAS, /CAS, /CS 및 /WE를 모두 로우로 인에이블시키는 커맨드로서, 메모리 장치의 동기 스펙을 설정하는 커맨드이며, 동기를 설정하기 위한 값은 커맨드와 함께 전송되는 설정 어드레스 파트(도 3 참조)에 포함된다. 여기서, 상술한 커맨드를 지정하는 신호(예를 들어, /RAS, /CAS, /CS 및 /WE를 모두 로우로 인에이블시키는 것)들은 각 메모리 장치마다 다르게 설정될 수 있음은 당연하다.
프로세서의 어플리케이션은 상술한 바와 같이 /RAS, /CAS, /CS 및 /WE의 조합에 의해 미리 설정된 커맨드 및 어드레스를 컨트롤 로직(도 6 참조)로 제공한다. 여기서, 컨트롤 로직은 프로세서로부터의 커맨드를 수신하고 커맨드에 포함된 주소에 상응하는 뱅크에 커맨드를 전달하는 기능을 한다. 여기서, 컨트롤 로직은 복수개의 프로세서를 커버할 수도 있으나, 보다 바람직하게는 각 프로세서 별로 각각 구비되어 독립적으로 기능할 수 있다. 이하에서는, 본 발명에 따른 접근 권한 레지스터 로직(240)이 컨트롤 로직의 기능을 함께 수행하는 경우를 예로 들어 설명하기로 하되, 컨트롤 로직이 별도로 구비될 수도 있음은 당연하다.
뱅크(200, 202, 204)는 메모리에서 데이터를 독출하거나 데이터를 쓸 수 있는 단위로서, SDRAM의 경우, JEDEC 표준에 의하면, 뱅크 주소로 두 개의 비트가 할당된다. 따라서, 통상적으로 4개의 뱅크로 구분해서 다중 동작을 수행하는 것이 일반적이다.
도 2에서, A-포트 전용 뱅크(200)는 A-포트(220)만이 접근하여 데이터를 독출하거나 데이터 기록이 가능한 영역이다. 따라서, B-포트(222)는 A-포트 전용 뱅 크(200)에 접근하는 것이 불가능하다.
B-포트 전용 뱅크(204)는 B-포트(222)만이 접근하여 데이터를 독출하거나 데이터 기록이 가능한 영역이다. 따라서, A-포트(220)는 B-포트 전용 뱅크(204)에 접근하는 것이 불가능하다.
공유 뱅크(202)는 A-포트(220) 및 B-포트(222)가 모두 접근하여 데이터의 독출 및 데이터의 쓰기가 가능한 영역이다. 종래에는 공유 뱅크(202)에 A-포트(220) 및 B-포트(222) 어느 포트도 접근하는 것이 가능하나, A-포트(220)가 공유 뱅크(202)를 점유하고 있는 동안은 B-포트(222)가 공유 뱅크(202)에 접근할 수 없었으며, B-포트(222)가 공유 뱅크(202)를 점유하고 있는 동안은 A-포트(220)가 공유 뱅크(202)에 접근할 수 없었다.
본 발명의 바람직한 실시예에 따르면, 이러한 종래의 문제점을 해결하기 위해 도면에 도시된 바와 같이 독립적으로 접근이 가능한 하나 이상의 공유 블록(블록0, 블록1, ..., 블록N)이 공유 뱅크(202)에 구비된다. 물론, 공유 블록이 하나인 경우는 블록으로 구분될 필요가 없는 경우이며, 둘 이상일 경우에만 공유 뱅크(202)에 다중 포트가 접근할 수 있음은 당연하다. 이하에서는, 도면에 도시된 바와 같이, 공유 뱅크(202)가 다수의 공유 블록으로 형성된 것을 예로 들어 설명하기로 하되, 본 발명에 따른 공유 뱅크의 리프레쉬를 수행하는 방법은 하나의 공유 블록으로 이루어진 공유 뱅크에서도 동일하게 수행될 수 있음은 이하의 설명을 통해 더욱 자명하게 될 것이다.
공유 뱅크(202) 내의 각 공유 블록은 접근 권한 레지스터 로직(240)에 의해 자유롭게 선택될 수 있으며, A-포트(220) 및 B-포트(222)는 각각 선택한 공유 블록에 대해 다중 동작이 가능하다. 공유 뱅크(202) 내에서 동일한 공유 블록은 A-포트(220)와 B-포트(222)가 동시에 접근 할 수 없도록 해당 공유 블록에 대한 세트(Set), 리세트(Reset) 및 리드(Read)라는 커맨드를 수행한다. 세트(Set)는 해당 공유 블록에 접근 권한을 소유하기 위한 동작이고, 리세트(Reset)는 접근 권한을 반납하는 동작이다. 리드(Read)는 해당 공유 블록이 다른 포트에게 권한이 있는지, 자신의 포트가 해당 공유 블록의 접근 권한을 가지고 있는지 여부를 확인하기 위한 것이다. 즉, 리드 커맨드에 따라 접근 권한 레지스터 로직(240)은 접근 권한 레지스터 내의 기록된 값을 출력해주어 접근 권한 부여 여부를 해당 포트로 알려준다.
따라서, 공유 뱅크(202)의 각 공유 블록(블록0, 블록1, ..., 블록N)은 독립적으로 동작이 가능하며, A-포트(220) 및 B-포트(222)는 각각의 공유 블록 중 하나에 독립적으로 접근이 가능하다. 예를 들어, A-포트(220)가 공유 블록0(211)에 접근하여 데이터를 독출 또는 기록하는 동안에도, B-포트(222)는 데이터 독출 또는 기록을 위해 공유 블록1(212)에 접근할 수 있다. 다만, A-포트(220)가 점유하여 사용하는 특정 공유 블록을 점유하여 사용하는 동안 B-포트(222)는 A-포트(220)가 점유하여 사용하는 공유 블록에 대해서는 사용할 수 없다. 따라서, 이 경우에도 종래와 같이 공유 뱅크(202)의 각 공유 블록의 리프레쉬를 수행하는데 따른 문제점은 여전히 존재할 수 있다.
공유 뱅크(202) 즉, 각 공유 블록의 안정된 리프레쉬를 위해, 본 발명의 바람직한 실시예에 따르면, 접근 권한 레지스터 로직(240)은 각 공유 블록의 리프레 쉬를 컨트롤한다. 즉, 본 발명에 따르면, 공유 뱅크(202)의 리프레쉬는 포트로부터 전송되는 리프레쉬 커맨드에 의하지 않고, 접근 권한 레지스터 로직(240)에 의해 수행된다.
접근 권한 레지스터 로직(240)이 공유 블록의 리프레쉬를 수행하는 방법은 관련 도면(도 5 및 도 6)을 참조하여 상세히 설명하기로 한다.
도 3은 일반적인 MRS 커맨드 및 어드레스 조합의 구조를 도시한 도면이고, 도 4는 본 발명의 바람직한 일 실시예에 따른 변형된 MRS 커맨드의 일례를 도시한 도면이다.
본 발명의 바람직한 실시예에 따르면, 종래의 SDRAM의 MRS를 확장한 EMRS(Expended MRS)를 이용하여 접근 권한 레지스터 로직(240)을 컨트롤한다. EMRS는 PASR(partial Array Self Refresh)나 Driver Strength(DS)등과 같은 추가적인 기능(function)을 제어하는 것으로, MRS를 확장한 개념이다.
도 3을 참조하면, 일반적인 MRS 커맨드는 커맨드 타입을 설정하는 파트(300)와 설정 어드레스(302) 파트로 구분되며, 도 4에 도시된 바와 같이, 커맨드 타입을 설정하는 파트에서 /CAS, /RAS. /CS 및 /WE는 모두 로우로 설정되며, 컨트롤 로직은 이를 통해 MRS 커맨드임을 식별한다.
설정 어드레스(302)에는 메모리의 동작 스펙을 설정하기 위한 정보가 기록된다. 설정되는 스펙은 버스트 길이(Burst Length), 버스트(Burst) 타입, CAS 레이턴시(Latency), 동작 모드 및 기록 버스트 모드(Write Burst Mode)를 포함한다. MRS 커맨드에 의해 설정된 스펙은 새로운 스펙이 설정되거나 메모리 장치에 전원을 잃기 전까지 유지된다.
버스트 길이를 설정하기 위해 통상적으로 3비트를 할당하며, 버스트 길이를 1, 2, 4, 8 중 하나로 설정한다. CAS 레이턴시를 설정하기 위해 3비트를 할당하고, 통상적으로 세 종류의 CAS 레이턴시를 설정한다. 동작 모드를 설정하기 위해 2개의 비트를 할당하고, 라이트 버스트 모드 및 버스트 타입을 설정하기 위해 1개의 비트를 할당한다.
본 발명은 상술한 MRS의 커맨드의 커맨드 타입 및 어드레스의 형태는 그대로 유지하되 일반 MRS 커맨드와는 다른 어드레스 비트를 사용함으로써 A-포트(220) 및 B-포트(222)가 독립적으로 공유 블록을 사용할 수 있도록 한다. 이와 같이, 변형된 MRS 커맨드가 공유 뱅크(202)의 공유 블록을 사용하기 위한 커맨드로 사용된다는 점은 프로세서의 어플리케이션과 메모리 장치 사이에 미리 설정된다.
여기서, 도면에는 MRS 커맨드가 하나의 데이터인 것처럼 도시되었으나, 커맨드 타입을 설정하는 파트(300)의 /CAS, /RAS. /CS 및 /WE와 설정 어드레스(302)에 따른 신호는 포트의 각 입력 핀 등을 통해 각각 입력될 수 있으며, 이는 당업자에게는 자명하다 할 것이므로 상세한 설명은 생략하기로 한다.
도 4를 참조하면, 공유 블록 사용을 위한 변형된 MRS 커맨드(이하, 'EMRS 커맨드'라 칭하기로 함)의 커맨드 타입 파트(400)는 통상의 MRS 커맨드와 동일하고, 설정 어드레스 파트에는 공유 블록 커맨드 정보(402)와 공유 블록 주소 정 보(404)가 포함된다. 이하, 본 발명의 실시예에 따른 EMRS 커맨드의 공유 블록 커맨드 정보(402)와 공유 블록 주소 정보를 "키 어드레스(key address)"라 칭하기로 한다.
도 4에 도시된 바와 같이, 커맨드 타입 파트는 통상의 MRS 커맨드의 커맨드 타입 파트와 동일하므로 컨트롤 로직은 설정 어드레스 파트의 정보를 통해 공유 블록 사용을 위해 EMRS 커맨드인지 또는 통상의 MRS 커맨드인지 여부를 판단한다. 물론, 공유 블록 사용을 위해 EMRS 커맨드인지를 판단하기 위한 별도의 식별 파트(미도시)가 설정 어드레스 파트에 더 포함될 수도 있다. 즉, EMRS 커맨드의 어드레스 파트(즉, 공유 블록 커맨드 정보(402)와 공유 블록 주소 정보(404)가 포함된 파트)를 통해 컨트롤 로직은 해당 MRS 커맨드가 공유 뱅크(202) 사용을 위한 EMRS 커맨드임을 인식할 수 있다.
EMRS 커맨드의 공유 블록 커맨드 정보는 공유 블록 사용을 위해 설정된 커맨드 정보를 포함한다. 본 발명의 바람직한 실시예에 따르면, 공유 블록 사용을 위해 설정된 커맨드는 세트(SET), 리드(READ), 리세트(RESET) 커맨드를 포함한다. 예를 들어, 공유 블록 커맨드 정보에 따른 두 개의 비트(bit)가 어드레스로 할당된 경우, "00"이면 세트, "01"이면 리드, "10"이면 리세트로 설정될 수 있다.
세트(SET) 커맨드는 공유 뱅크(202)의 특정 공유 블록을 점유하기 위한 커맨드이다. 즉, 세트 커맨드는 접근 권한 레지스터 로직(240)으로 접근 권한을 요청하는 커맨드이다. 따라서, A-포트(220) 또는 B-포트(222)에서 특정 공유 블록을 사용하고자 하는 경우, 우선 세트(SET) 커맨드를 이용하여 공유 블록의 점유를 시도 한다. 접근 권한 레지스터 로직(240)은 세트 커맨드에 따라 해당 포트 및 해당 공유 블록에 따른 접근 권한 플래그(도 5 및 도 6 참조)를 인에이블하여, 접근 권한을 해당 포트로 부여한다.
리드(READ) 커맨드는 특정 공유 블록을 점유하고 있는 상태(즉, 접근 권한을 부여 받은 상태)인지 확인하기 위한 커맨드이다. 리드(READ) 커맨드가 전달될 경우, 접근 권한 레지스터 로직(240)은 현재 리드(READ) 커맨드를 전송한 포트가 해당 공유 블록을 점유하고 있는지 여부에 대한 확인 정보를 제공한다. 즉, A-포트(220) 또는 B-포트(222)가 메모리 장치의 특정 공유 블록을 사용하고자 하는 경우, 세트(SET) 커맨드를 통해 해당 공유 블록을 점유하고, 리드(READ) 커맨드를 통해 해당 공유 블록을 정상적으로 점유하였는지 여부를 확인한다. 접근 권한 레지스터 로직(240)은 리드 커맨드에 따라 접근 권한 플래그에 대한 값이 저장된 접근 권한 레지스터의 데이터를 DQ핀을 통해 해당 포트로 제공한다(도 6 참조).
리세트(RESET) 커맨드는 특정 공유 블록에 대한 점유를 해제하기 위한 커맨드이다. 공유 뱅크(202)의 메모리 공유 블록에 대한 사용을 마칠 경우, 리세트(RESET) 커맨드를 통해 해당 공유 블록에 대한 점유를 해제한다.
공유 블록 사용을 위한 커맨드의 종류가 상술한 바와 같이, 세 종류인 경우 커맨드를 설정하기 위한 비트로 상술한 바와 같이 두 개의 비트가 사용될 수 있다. 그러나, 상술한 세 종류의 커맨드 이외에 다양한 종류의 커맨드가 추가적으로 설정될 수 있으며, 이 경우 커맨드 설정을 위한 추가적인 비트가 사용될 수 있다는 점은 당업자에게 있어 자명할 것이다.
세트(SET) 커맨드 및 리드(READ) 커맨드에 의해 특정 공유 블록의 점유 및 점유 확인이 이루어진 후에는 통상의 리드 커맨드, 라이트(Write) 커맨드 등을 통해 특정 공유 블록의 데이터를 독출하거나 데이터를 기록하는 것이 가능하다.
공유 블록 주소 정보(404)에는 공유 블록 커맨드(402)와 관련한 공유 블록에 대한 주소 정보가 포함된다. 도 1과 같이, 4개의 공유 블록이 공유 뱅크(202)에 구비되는 경우, 공유 블록 주소를 위해 2개의 비트가 할당될 수 있으며, 8개의 공유 블록이 공유 뱅크(202)에 구비되는 경우, 공유 블록 주소를 위해 3개의 비트가 할당될 수 있을 것이다.
EMRS 커맨드는 설정 어드레스(키 어드레스)의 비트수가 통상의 MRS 커맨드와 동일하여야 하므로, 상술한 공유 블록 커맨드와 공유 블록 주소를 설정하기 위한 비트 이외의 여분의 비트는 미리 설정된 값이 되도록 한다. 예를 들어, 여분의 비트에 대해서는 모두 로우 값을 가지도록 설정할 수 있다.
상기에서는 MRS 커맨드를 변형하여 공유 뱅크(202)의 특정 공유 블록을 사용하는 커맨드로 활용하는 경우에 대해 설명하였으나, 본 발명이 공유 뱅크(202)의 특정 공유 블록 사용을 위해 MRS 커맨드를 변형하는 것에 한정되는 것은 아니며, 다른 커맨드를 변형하여 특정 공유 블록을 사용하는 커맨드로 활용할 수도 있다.
예를 들어, 리드 커맨드, 라이트 커맨드 등을 변형하여 특정 공유 블록을 사용하기 위한 커맨드로 활용할 수도 있다.
이하, 접근 권한 레지스터 로직(240)이 공유 뱅크(202)의 각 공유 블록의 리프레쉬를 컨트롤하는 과정을 상세히 설명하기로 한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 공유 뱅크와 접근 권한 레지스터 로직을 도시한 도면이고, 도 6은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직의 구성을 도시한 도면이다.
전술한 바와 같이 본 발명의 바람직한 실시예에 따르면, A-포트(220) 및 B-포트(222)는 변형된 MRS 커맨드(EMRS 커맨드)를 이용하여 임의의 공유 블록에 대한 접근 권한을 가질 수 있다.
접근 권한 레지스터 로직(240)은 MRS 커맨드가 들어올 때 설정 어드레스 파트가 키 어드레스이면(즉, 해당 MRS 커맨드가 도 4에 도시된 바와 같은 본 발명의 바람직한 실시예에 따른 EMRS 커맨드인 경우), 상응하는 세트(set), 리세트(reset), 리드(read)를 수행하게 된다. 즉, 접근 권한 레지스터 로직(240)은 포트로부터 들어온 EMRS 커맨드가 세트 커맨드이면, 해당 접근 권한 플래그(flag)를 인에이블(enable)하여 당해 공유 블록에 대한 접근 권한을 해당 포트로 제공한다.
도 5를 참조하면, 접근 권한 레지스터 로직(240)은 A-포트(220) 및 B-포트(222)와 각 공유 블록의 개수에 대응되도록 접근 권한 레지스터를 구비하여 접근 권한 플래그(flag)에 대한 값을 저장한다. 즉, N개의 공유 블록에 따른 A-포트(220)의 접근 권한 플래그 flagA<0>, flagA<1>, ..., flagA<N> 및 B-포트(222)의 접근 권한 플래그(flag) flagB<0>, flagB<1>, ..., flagB<N>가 구비된다. 예를 들어, 공유 블록0에 따른 접근 권한 플래그 flagA<0>이 A-포트(220)쪽을 컨트롤하며, flagB<0>이 B-포트(222)쪽을 컨트롤한다.
따라서, 임의의 포트로부터 세트(set) 커맨드에 따른 EMRS 커맨드가 들어오면, 접근 권한 레지스터 로직(240)은 키 어드레스의 공유 블록 주소 정보를 통해 해당 공유 블록을 인식하고, 키 어드레스의 공유 블록 커맨드 정보를 통해 세트(set) 커맨드를 인식하고, 접근 권한을 부여한다.
이해의 편의를 위해 하나의 예를 들면, A-포트(220)로부터 공유 블록1에 대한 세트 커맨드가 들어오면, 접근 권한 레지스터 로직(240)은 flagA<1> 및 flagB<1>을 참조하여, 두 접근 권한 플레그가 모두 디스에이블(disable) 상태이면 flagA<1>을 인에이블하여 A-포트(220)에게 공유 블록1에 대한 접근 권한을 부여한다.
여기서, 본 발명의 바람직한 실시예에 따르면, 접근 권한 레지스터 로직(240)은 임의의 포트로 요청된 해당 공유 블록에 대한 접근 권한을 부여하면, 해당 공유 블록이 리프레쉬(refresh)를 수행하도록 기능한다. 즉, 접근 권한 레지스터 로직(240)은 A-포트(220) 또는 B-포트(222)로 임의의 공유 블록에 대한 접근 권한을 부여한 이후 곧바로 해당 공유 블록을 리프레쉬한다.
본 발명의 바람직한 다른 실시예에 따르면, 접근 권한 레지스터 로직(240)은 세트 커맨드에 따라 접근 권한 플래그를 인에이블하여 접근 권한을 부여하고, 해당 포트로부터 리드 커맨드가 들어오면 그때 해당 공유 블록을 리프레쉬할 수도 있다.
도 6을 참조하여, 본 발명에 바람직한 실시예에 따른 접근 권한 레지스터 로직(240)의 구성을 설명하기로 한다.
도 6에 도시된 바와 같이, 접근 권한 레지스터 로직(240)은 컨트롤 로직(control logic, 241, 242), 플래그 로직(flag logic, 244) 및 리프레쉬 로직(refresh logic, 246, 247)을 포함하고, 도면에는 도시되지 않았으나 각 공유 블록의 컨트롤을 위해, 공유 블록 개수만큼의 접근 권한 레지스터를 더 포함한다. 접근 권한 레지스터는 플래그 로직(244)에 포함될 수 있다.
컨트롤 로직(241, 242)은 A-포트(220) 전용과 B-포트(222) 전용으로 두 개의 로직이 구비될 수 있다. 컨트롤 로직(241, 242)의 주된 기능은 전술하였으므로, 상세한 설명은 생략하기로 한다. 특히, 컨트롤 로직(241, 242)은 각 해당 포트로부터 수신되는 EMRS 커맨드에 따라 세트, 리세트, 리드 신호를 만들어 내는 기능을 수행한다. 즉, EMRS 커맨드의 키 어드레스를 디코딩(decoding)하여 해당 포트가 접근하고자 하는 공유 블록을 인식하고 상응하는 신호(세트, 리세트, 리드 중 어느 하나)를 만들어 낸다. 원하는 공유 블록의 접근 권한 레지스터를 컨트롤하기 위해서 만들어내는 신호가 block<0:N>(즉, 0 내지 N 공유 블록 중 해당 공유 블록을 식별하기 위한 공유 블록 주소 정보)이다. 여기서, 세트, 리세트, 리드는 동시에 이루어지는 것이 아니라, 한번의 커맨드에 하나씩 수행된다.
컨트롤 로직(241, 242)의 출력 중 세트는 접근 권한 플래그를 인에이블 시키는 커맨드로 해당 공유 블록에 접근할 수 있는 권한을 만들어 내는 역할을 한다. 리드는 접근 권한 레지스터에 저장되어 있는 값들을 출력 수단(예를 들어, DQ 핀)으로 출력하는 동작을 위한 것이다. 리드는 각 포트에서 접근 권한 레지스터를 세 트 했을 경우 각 포트에서 원하는 공유 블록이 제대로 세트가 되어 접근 권한을 가지게 되었는지 확인하는 동작이다. 리세트는 공유 블록의 접근 권한을 반납하기 위한 것으로, 해당 접근 권한 레지스터의 값을 리세트시켜서 가지고 있던 접근 권한을 반납하여 다음에 다른 포트 또는 자신의 포트가 다시 사용할 수 있도록 만드는 동작이다.
따라서, 플래그 로직(244)은 컨트롤 로직(241, 242)으로부터 세트, 리세트 및 리드 신호 중 어느 하나와 해당 공유 블록에 대한 정보block<0:N>를 입력받으면 그에 따른 접근 권한 플래그를 인에이블 또는 디스에이블하거나 접근 권한 레지스터 값을 출력한다.
상술한 경우들은 해당 공유 블록에 대한 접근 권한을 어느 포트도 가지고 있지 않은 경우에 일반적으로 동작하는 것을 표현한 것이다. 이미 어느 한쪽 포트(예를 들어, A-포트(220))가 접근 권한이 있는 경우, 다른 한쪽 포트(예를 들어, B-포트(222))에서 같은 공유 블록을 접근 하기 위해서 접근 권한 레지스터를 세트(set)하는 경우가 있을 수 있다. 이 경우, A-포트(220)가 이미 접근 권한을 가지고 있기 때문에 B-포트(222)에서 해당 접근 권한 레지스터를 세트하더라도 내부 동작은 아무런 변화를 일으키지 않고, 다만 B-포트(222)쪽의 출력 핀(예를 들어, DQ 핀)을 통해 "/busy"신호가 인에이블되어 출력된다. 이 /busy 신호는 접근 금지 신호의 역할을 할 수 있으며, 또는 현재 접근 금지가 수행 중이니 기다리라는 "wait"의 의미로 인식될 수도 있다. 따라서, /busy 신호가 인에이블되면, 해당 포트에 따른 프로세서는 해당 공유 블록에 대한 접근이 금지되거나, 접근이 가능하게 될 때 까지 기다린다. 즉, 이 신호가 디스에이블(disable)될 경우에만 해당 포트의 접근이 가능하게 된다. /busy 신호가 인에이블되는 경우는 어느 한쪽 포트가 동일한 공유 블록에 대한 접근 권한을 가지고 있는 경우 발생된다. /busy 신호가 디스에이블되는 경우는 접근 권한을 가진 상대 포트가 동일한 공유 블록의 접근 권한 레지스터를 리세트하거나, /busy 신호가 인에이블된 포트쪽에서 리세트를 수행하는 경우이다. 즉, 접근 권한을 가진 상대 포트가 동일한 공유 블록의 접근 권한 레지스터를 리세트하면, /busy 신호가 인에이블된 포트는 리세트를 수행한 후, 다시 세트 커맨드를 접근 권한 레지스터 로직(240)으로 전송하여 해당 공유 블록의 접근 권한을 부여받을 수 있다.
상술한 바와 같이, 접근 권한 레지스터 로직(240)은 EMRS 커맨드에 따라 공유 뱅크(202)의 임의의 공유 블록에 대한 접근 권한을 부여한다.
특히, 리프레쉬 로직(246, 247)은 공유 블록의 리프레쉬를 수행한다. 리프레쉬 로직(246, 247)은 플래그 로직(244)으로부터 인에이블된 접근 권한 플래그에 대한 정보(즉, flagA<0:N>)를 입력받음에 따라 해당 공유 블록을 리프레쉬한다.
보다 바람직하게는 도면에 도시된 바와 같이, 리프레쉬 로직(246, 247)은 A-포트(220) 또는 B-포트(222)에 따른 각각의 전체 접근 권한 플래그 중 인에이블된 접근 권한 플래그가 있으면, 해당 포트로부터 리드 커맨드가 입력된 경우에만 해당 공유 블록을 리프레쉬할 수도 있다. 즉, 리프레쉬 로직(246, 247)은 플래그 로직(244)으로부터 인에이블된 접근 권한 플래그에 대한 정보를 입력받고, 컨트롤 로직(241, 242)으로부터 리드 커맨드를 입력받음에 따라 해당 공유 블록의 리프레 쉬를 수행한다. 여기서, 리프레쉬는 외부로부터의 커맨드에 의해 리프레쉬를 수행하는 오토리프레쉬(autorefresh)일 수 있다. 즉, 리프레쉬 로직(246, 247)은 포트로부터의 리드 커맨드를 오토리프레쉬 커맨드로 이용할 수 있는 효과가 있다.
또한, 리프레쉬 로직(246, 247)은 해당 접근 권한 레지스터에 따른 접근 권한 플래그가 인에이블 된 후, 접근 권한 레지스터에 대한 최초의 리드 커맨드에 따라서 한번만 리프레쉬를 수행하고, 접근 권한 플래그의 디스에이블이 없이 접근 권한 레지스터의 리드만 다시 동작하더라도 해당 공유 블록의 리프레쉬를 다시 수행하지 않는다. 이는, 반복된 리드 신호에 따른 공유 블록의 반복된 리프레쉬 수행을 방지하기 위한 것이다.
여기서, 리프레쉬 로직(246, 247)은 각 포트별로 각각 구비되는 것으로 도면에는 도시되었으나, 하나의 리프레쉬 로직이 구비될 수도 있다. 즉, 하나의 리프레쉬 로직이 플래그 로직(244)로부터 수신된 공유 블록에 대한 정보를 이용하여 해당 공유 블록을 리프레쉬 할 수 있다.
전술한 바와 같이, 도면을 참조하여 설명한 내용 중 A-포트(220) 또는 B-포트(222)가 메모리 장치에 접근하는 것으로 표현한 것은, 단순히 설명의 편의를 위한 것이며, 실제적으로는 각 포트를 통해 프로세서가 메모리 장치에 접근하는 것임은 자명하다 할 것이다. 또한, 상술한 커맨드를 지정하는 신호(예를 들어, /RAS, /CAS, /CS 및 /WE를 모두 로우로 인에이블시키는 것)들은 각 메모리 장치마다 다르게 설정될 수 있음은 당연하다.
또한, 특정 포트만을 통해 액세스 가능한 전용 저장 영역 및 다중 포트를 통해 복수의 프로세서가 액세스할 수 있는 공용 저장 영역을 뱅크 단위로 설명하였으나, 이는 반드시 뱅크일 필요는 없으며, 하나의 뱅크에서 전용 영역 및 공용 영역으로 구분될 수도 있다. 따라서, 뱅크는 저장 영역에 대한 단위라 할 수 있으므로, 뱅크 이외의 저장 영역도 본 발명에 따른 공유 뱅크의 안정적인 리프레쉬를 수행하는 다중 포트 메모리 장치 및 그 리프레쉬 방법이 동일 또는 유사하게 적용될 수 있음은 당업자에게는 자명하다 할 것이다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드디스크, 광자기디스크 등)에 저장될 수 있다.
본 발명은 상기 실시예에 한정되지 않으며, 많은 변형이 본 발명의 사상 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 가능함은 물론이다.
이상에서 상술한 바와 같이 본 발명에 따르면, 공유 뱅크와 같은 다중 포트 메모리의 공유 저장영역이 안정적인 리프레쉬를 수행하도록 하는 다중 포트 메모리 장치 및 그 리프레쉬 방법을 제공할 수 있는 효과가 있다.
또한, 본 발명은 공유 저장영역에 다중 포트가 동시에 접근할 수 있는 다수 의 공유 블록으로 구현된 공유 저장영역을 구비한 메모리 장치에 대해서도 각 공유 블록의 안정적인 리프레쉬를 수행할 수 있는 효과도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (16)

  1. 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서,
    상기 각 포트를 통해 복수의 프로세서가 액세스 가능한 하나 이상의 공유 저장영역; 및
    상기 프로세서가 상기 각 포트를 통해 상기 공유 저장영역에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되,
    상기 접근 권한 레지스터 로직은 임의의 프로세서로 상기 공유 저장영역에 대한 접근 권한을 부여하면, 상기 공유 저장영역을 리프레쉬(refresh)시키는 것을 특징으로 하는 다중 포트 메모리 장치.
  2. 제 1항에 있어서,
    특정 포트를 통해서만 액세스가 가능한 하나 이상의 전용 저장영역을 더 포함하는 다중 포트 메모리 장치.
  3. 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서,
    특정 포트를 통해서만 액세스가 가능한 하나 이상의 전용 저장영역;
    상기 각 포트를 통해 복수의 프로세서가 액세스 가능한 하나 이상의 공유 저장영역;
    상기 프로세서로부터 커맨드를 수신하고 커맨드에 포함된 주소에 상응하는 저장영역에 커맨드를 전달하는 컨트롤 로직;
    상기 컨트롤 로직으로부터 수신되는 신호에 상응하여 상기 공유 저장영역의 접근 권한에 대한 정보를 저장하는 하나 이상의 레지스터를 제어하는 플래그 로직; 및
    상기 공유 저장영역에 대한 접근 권한을 부여한 상기 플래그 로직으로부터 수신된 신호에 상응하여 상기 공유 저장영역을 리프레쉬시키는 리프레쉬 로직을 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
  4. 제 3항에 있어서,
    상기 컨트롤 로직은 상기 포트 수만큼 구비되는 것을 특징으로 하는 다중 포트 메모리 장치.
  5. 제 1항 또는 제 3항에 있어서,
    상기 공유 저장영역은 저장영역을 미리 설정된 단위로 분할한 하나 이상의 블록을 포함하고, 상기 프로세서는 상기 접근 권한 레지스터 로직에 의해 부여된 접근 권한에 따라 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으 로 하는 다중 포트 메모리 장치.
  6. 제 5항에 있어서,
    상기 프로세서에서 상기 공유 저장영역의 특정 블록을 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드인 것을 특징으로 하는 다중 포트 메모리 장치.
  7. 제 6항에 있어서,
    상기 변형된 어드레스 파트는 공유 저장영역 블록의 주소 정보 및 공유 저장영역 사용과 관련한 커맨드 정보를 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
  8. 제 7항에 있어서,
    상기 공유 저장영역 사용과 관련한 커맨드는 상기 공유 저장영역의 특정 블록에 대한 접근 권한을 요청하는 세트(SET) 커맨드, 상기 공유 저장영역의 특정 블록에 대한 접근 권한이 부여됐는지의 확인을 위한 리드(READ) 커맨드 및 상기 공유 저장영역의 특정 블록에 대한 접근 권한 해제를 요청하는 리세트(RESET) 커맨드를 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
  9. 제 8항에 있어서,
    상기 접근 권한 레지스터 로직은 접근 권한을 부여한 임의의 프로세서로부터 상기 리드(READ)에 따른 커맨드가 들어온 이후 상기 공유 저장영역을 리프레쉬시키는 것을 특징으로 하는 다중 포트 메모리 장치.
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서,
    상기 공유 저장영역 또는 상기 전용 저장영역은 뱅크(bank)인 것을 특징으로 하는 다중 포트 메모리 장치.
  11. 다중 포트를 통해 복수의 프로세서가 접근 가능한 공유 저장영역을 포함하는 다중 포트 메모리 장치에서의 상기 공유 저장영역의 리프레쉬 방법에 있어서,
    (a) 상응하는 포트를 통해 임의의 프로세서로부터 제공된 메모리 커맨드가 상기 공유 저장영역에 대한 액세스 요청 인지를 판단하는 단계;
    (b) 상기 제공된 메모리 커맨드가 상기 공유 저장영역에 대한 액세스 요청인 경우, 상기 임의의 프로세서로 상기 공유 저장영역에 대한 접근 권한의 부여 가 능 여부를 판단하는 단계; 및
    (c) 상기 접근 권한의 부여가 가능한 경우, 상기 임의의 프로세서로 접근 권한을 부여하고 상기 공유 저장영역을 리프레쉬시키는 단계를 포함하는 공유 저장영역의 리프레쉬 방법.
  12. 제 11항에 있어서,
    상기 공유 저장영역은 저장영역을 미리 설정된 단위로 분할한 하나 이상의 블록을 포함하고, 상기 프로세서는 부여된 접근 권한에 따라 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으로 하는 공유 저장영역의 리프레쉬 방법.
  13. 제 12항에 있어서,
    상기 프로세서에서 상기 공유 저장영역의 특정 블록을 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드인 것을 특징으로 하는 공유 저장영역의 리프레쉬 방법.
  14. 제 13항에 있어서,
    상기 변형된 어드레스 파트는 공유 저장영역 블록의 주소 정보 및 공유 저장영역 사용과 관련한 커맨드 정보를 포함하는 것을 특징으로 하는 공유 저장영역의 리프레쉬 방법.
  15. 제 14항에 있어서,
    상기 공유 저장영역 사용과 관련한 커맨드는 상기 공유 저장영역의 특정 블록에 대한 접근 권한을 요청하는 세트(SET) 커맨드, 상기 공유 저장영역의 특정 블록에 대한 접근 권한이 부여됐는지의 확인을 위한 리드(READ) 커맨드 및 상기 공유 저장영역의 특정 블록에 대한 접근 권한 해제를 요청하는 리세트(RESET) 커맨드를 포함하는 것을 특징으로 하는 공유 저장영역의 리프레쉬 방법.
  16. 제 15항에 있어서,
    상기 단계 (c)는 접근 권한을 부여한 임의의 프로세서로부터 상기 리드(READ)에 따른 커맨드가 들어온 이후 상기 공유 저장영역을 리프레쉬시키는 것을 특징으로 하는 공유 저장영역의 리프레쉬 방법.
KR1020060046852A 2006-05-25 2006-05-25 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법 KR100754360B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060046852A KR100754360B1 (ko) 2006-05-25 2006-05-25 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060046852A KR100754360B1 (ko) 2006-05-25 2006-05-25 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법

Publications (1)

Publication Number Publication Date
KR100754360B1 true KR100754360B1 (ko) 2007-09-03

Family

ID=38736177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060046852A KR100754360B1 (ko) 2006-05-25 2006-05-25 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법

Country Status (1)

Country Link
KR (1) KR100754360B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329675A (ja) * 1995-05-30 1996-12-13 Canon Inc Dramリフレッシユ制御装置
KR19980055984A (ko) * 1996-12-28 1998-09-25 이우복 다중 마스타 시스템에서의 디램(dram) 리프레시 장치
JP2002216474A (ja) * 2001-01-19 2002-08-02 Nec Kofu Ltd コンピュータシステムとそのメモリリフレッシュ方法
KR20040063404A (ko) * 2003-01-07 2004-07-14 엘지전자 주식회사 데이터 처리 시스템의 리프레시 동작 제어장치 및 그 방법
KR100689863B1 (ko) * 2005-12-22 2007-03-08 삼성전자주식회사 반도체 메모리 장치 및 그에 따른 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329675A (ja) * 1995-05-30 1996-12-13 Canon Inc Dramリフレッシユ制御装置
KR19980055984A (ko) * 1996-12-28 1998-09-25 이우복 다중 마스타 시스템에서의 디램(dram) 리프레시 장치
JP2002216474A (ja) * 2001-01-19 2002-08-02 Nec Kofu Ltd コンピュータシステムとそのメモリリフレッシュ方法
KR20040063404A (ko) * 2003-01-07 2004-07-14 엘지전자 주식회사 데이터 처리 시스템의 리프레시 동작 제어장치 및 그 방법
KR100689863B1 (ko) * 2005-12-22 2007-03-08 삼성전자주식회사 반도체 메모리 장치 및 그에 따른 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
10-0689863
10-1998-0055984
10-2004-0063404

Similar Documents

Publication Publication Date Title
JP5063041B2 (ja) 向上されたリフレッシュメカニズムを有するダイナミック半導体メモリ
US8122186B2 (en) Memory device, memory system and dual port memory device with self-copy function
JP5079279B2 (ja) マルチポートdramでのリフレッシュ制御方法及び該方法を利用するマルチポートメモリシステム
US7675800B2 (en) Semiconductor memory, memory controller, system, and operating method of semiconductor memory
US10762008B2 (en) Delay circuit and write and read latency control circuit of memory, and signal delay method thereof
US8914589B2 (en) Multi-port DRAM architecture for accessing different memory partitions
US8495310B2 (en) Method and system including plural memory controllers and a memory access control bus for accessing a memory device
US20090083479A1 (en) Multiport semiconductor memory device and associated refresh method
US20080106967A1 (en) Method and apparatus for communicating command and address signals
US7047371B2 (en) Integrated memory having a memory cell array containing a plurality of memory banks, and circuit configuration having an integrated memory
JP2007095054A (ja) 命令によるメモリ装置の調停
TW201619832A (zh) 半導體裝置及包含該半導體裝置的記憶體系統
US7350018B2 (en) Method and system for using dynamic random access memory as cache memory
JP4229958B2 (ja) メモリ制御システムおよびメモリ制御回路
US6026466A (en) Multiple row address strobe DRAM architecture to improve bandwidth
US20060044912A1 (en) Method and apparatus for refreshing memory device
KR100781129B1 (ko) 다중 포트 메모리 장치 및 그 데이터의 출력 방법
KR100834373B1 (ko) 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법
KR100754358B1 (ko) 공유 저장영역의 리프레쉬 방법 및 그 방법을 수행하는다중 포트 메모리 장치
KR100843580B1 (ko) 접근 권한 레지스터 로직을 갖는 다중 포트 메모리 장치 및그 제어 방법
KR100754360B1 (ko) 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법
KR100754359B1 (ko) 복수의 공유 블록을 포함하는 다중 포트 메모리 장치
JP5045337B2 (ja) 半導体メモリ、半導体メモリの動作方法およびシステム
KR100715525B1 (ko) 독립적인 입출력 파워와 클럭을 가지는 다중 포트 메모리장치
US20190065115A1 (en) Memory system, operation method of the memory system, and memory device

Legal Events

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

Payment date: 20120710

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150729

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190725

Year of fee payment: 13