KR100834373B1 - 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 - Google Patents
다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 Download PDFInfo
- Publication number
- KR100834373B1 KR100834373B1 KR1020060050585A KR20060050585A KR100834373B1 KR 100834373 B1 KR100834373 B1 KR 100834373B1 KR 1020060050585 A KR1020060050585 A KR 1020060050585A KR 20060050585 A KR20060050585 A KR 20060050585A KR 100834373 B1 KR100834373 B1 KR 100834373B1
- Authority
- KR
- South Korea
- Prior art keywords
- command
- port
- block
- access
- bank
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
다중 포트 메모리 장치 및 그 접근 권한의 제어 방법이 개시된다. 본 발명의 바람직한 일 실시예에 따르면, 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서, 각각의 포트를 통해 복수의 프로세서가 액세스할 수 있는 적어도 하나의 공유 뱅크와 프로세서가 각각의 포트를 통해 상기 공유 뱅크에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되, 공유 뱅크는 미리 설정된 단위로 분할한 복수의 블록을 포함하고, 프로세서가 상기 접근 권한 레지스터 로직에 의해 부여된 접근 권한에 따라 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으로 하는 다중 포트 메모리 장치가 제공된다. 본 발명에 의한 접근 권한 레지스터의 제어 방법에 의하면 공유 뱅크의 메모리 영역을 복수의 블록으로 분할하는 다중 포트 메모리 장치에서 각각의 포트에서 공유 뱅크 내의 다른 블록들에 접근할 수 있는 장점이 있다.
다중포트, 듀얼포트, 공유, 뱅크, 블록, 접근권한, 레지스터, 메모리
Description
도 1은 종래의 다중 포트 메모리 중 듀얼 포트 메모리의 뱅크 구조를 도시한 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터의 제어 방법이 적용되는 다중 포트 메모리 장치의 구성을 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 A포트 및 B포트가 각 뱅크에 액세스하는 상태를 나타낸 도면.
도 4는 종래의 MRS 커맨드 및 어드레스 조합의 구조를 나타낸 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 공유 뱅크 블록 사용을 위한 변형된 MRS 커맨드의 일례를 도시한 도면.
도 6은 뱅크의 속성을 설정하는 정보가 포함되어 있는 변형된 MRS 커맨드의 구조를 도시한 도면.
도 7은 공유 뱅크의 특정 블록을 사용하기 위해 변형된 리드 커맨드의 일례를 도시한 도면.
도 8은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직에 의 해 공유 뱅크 블록을 제어하는 방법을 나타낸 블록도.
도 9는 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직의 구성과 동작을 나타낸 블록도.
도 10은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직를 구성하는 접근 권한 레지스터 플래그 로직의 구성과 동작을 나타낸 블록도.
도 11은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터의 동작의 예시를 나타낸 도면.
본 발명은 다중 포트 메모리 장치 및 그 접근 권한 레지스터의 제어 방법에 관한 것으로서, 더욱 상세하게는 공유 뱅크를 효율적으로 활용하기 위한 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법에 관한 것이다.
일반적으로 메모리는 그 구분 방법에 따라 다양하게 나누어진다.
예를 들어, 전원의 인가여부에 따라 저장된 내용이 유지되는지 여부에 따라 휘발성 메모리와 비휘발성 메모리로 구분될 수 있으며, 일반적으로 휘발성 메모리는 RAM(Random Access Memory), 비휘발성 메모리는 ROM(Read Only Memory)이라고 지칭된다.
휘발성 메모리는 다시 주기적으로 메모리를 구성하는 셀(cell)을 재생시켜 주어야 하는지 여부에 따라 DRAM(Dynamic RAM)과 SRAM(Static RAM)으로 구분된다.
또한 이러한 분류 방법 뿐만 아니라 메모리에 접근 가능한 포트의 수에 따라 싱글 포트(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)가 공유 뱅크(102)에 접근하여 데이터를 읽는 동안은 B포트(112)를 통해서는 공유 뱅크(102)에 접근할 수 없도록 제한된다. 따라서, A포트(110)를 통해서 공유 뱅크(102)가 사용되고 있는 동안에는 B포트(112)를 통해서 공유 뱅크(102)를 사용할 수 없다.
즉, A포트(110)가 공유 뱅크에 액세스하여 데이터를 독출하는 동안은 B포트(112)는 공유 뱅크에 액세스할 수 없었다. 따라서, B포트(112)는 A포트(110)가 공유 뱅크의 사용을 마칠 때까지 대기하였다가 공유 뱅크를 사용할 수 밖에 없었다.
이러한 문제점을 해결하기 위해 공유 뱅크의 메모리 영역을 복수의 블록으로 분할하는 발명이 제안되었으며, 이러한 공유 뱅크의 메모리 영역을 복수의 블록으로 분할함에 따라 공유 뱅크에 포함되는 다수개의 블록에 다수의 포트 모두에서 액세스하는 경우가 발생할 수 있게 된다.
따라서 다수의 포트에서 모두 하나의 블록에 접근하는 경우 오동작 및 블록에 저장된 데이터의 삭제, 변경 등이 발생할 수 있으므로 접근 권한 레지스터의 새로운 제어 방법이 요구된다.
또한 보다 바람직하게는 종래의 접근 권한 레지스터의 구성과 명령어를 그대로 이용하여 접근 권한 레지스터를 제어 방법이 요구된다.
상기한 바와 같은 종래의 문제점을 해결하기 위해, 본 발명은 공유 뱅크의 메모리 영역을 복수의 블록으로 분할하는 다중 포트 메모리 장치에서도 각각의 복수 블록들에 접근할 수 있게 하는 접근 권한의 제어 방법을 제안하는 것이다.
또한, 각각의 복수 블록들에 접근할 수 있게 하는 접근 권한을 제어하되 종래의 접근 권한 레지스터의 구성과 명령어를 유지하면서 공유 뱅크의 메모리 영역을 복수의 블록으로 분할하는 다중 포트 메모리 장치의 접근 권한을 제어할 수 있는 접근 권한의 제어 방법을 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면 다중 포트 메모리 장치가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서, 상기 각각의 포트를 통해 복수의 프로세서가 액세스할 수 있는 적어도 하나의 공유 뱅크; 및 상기 프로세서가 상기 각각의 포트를 통해 상기 공유 뱅크에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되, 상기 공유 뱅크는 미리 설정된 단위로 분할한 복수의 블록을 포함 하고, 상기 프로세서가 상기 접근 권한 레지스터 로직에 의해 부여된 접근 권한에 따라 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으로 하는 다중 포트 메모리 장치가 제공된다.
상기 접근 권한 레지스터 로직은 상기 다중 포트를 통해상기 공유 뱅크의 특정 블록에 액세스하여 사용하기 위한 커맨드를 실행하는 접근 권한 레지스터 제어 로직; 및 상기 커맨드를 이용하여 접근 권한 레지스터가 동작하도록 하는 신호를 포함하는 플래그를 생성하는 접근 권한 레지스터 플래그 로직을 포함할 수 있다.
상기 접근 권한 컨트롤 로직은 상기 포트 수만큼 구비될 수 있다.
상기 접근 권한 레지스터 플래그 로직은 상기 미리 설정된 단위로 분할한 복수의 블록으로 커맨드를 전달하는 복수의 접근 권한 레지스터; 및 상기 블록으로 커맨드의 전달이 불가능한 경우 상기 블록에 대한 접근이 불가능함을 나타내는 신호를 출력하는 비지(busy) 신호 합산기를 포함할 수 있다.
상기 다중 포트에서 상기 공유 뱅크의 특정 블록에 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드일 수 있다.
또한 상기 변형된 어드레스 파트는 공유 뱅크 블록의 주소 정보 및 공유 뱅크 사용과 관련한 커맨드 정보를 포함할 수 있다. 그리고 상기 미리 설정된 커맨드는 MRS(Mode Resister Set) 커맨드일 수 있으며, 상기 변형된 어드레스 파트는 각 뱅크의 속성을 설정하기 위한 정보를 더 포함하여, 상기 속성은 특정 포트에 대한 전용 뱅크인지 또는 공유 뱅크 인지에 대한 정보를 더 포함할 수 있다.
본 발명의 다른 측면에 의하면, 다중 포트 메모리 장치의 접근 권한 제어 방법이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 둘 이상의 포트를 구비하고, 각각의 포트를 통해 복수의 프로세서가 액세스할 수 있는 미리 설정된 단위로 분할된 복수의 블록을 포함하는 적어도 하나의 공유 뱅크를 포함하는 메모리 장치의 접근 권한 제어 방법에 있어서, 상기 특정 포트로부터 제공되는 메모리 커맨드를 상기 메모리 커맨드에 포함된 공유 뱅크의 블록 주소에 상응하는 블록으로 메모리 커맨드를 전달하는 단계(a); 상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하는지 판단하는 단계(b); 및 상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하지 않는 경우 상기 공유 뱅크 블록 주소 정보에 상응하는 블록으로부터 메모리 커맨드 처리 정보를 제공받아 해당 포트에 제공하는 단계(c)를 포함하되, 상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하는 경우 상기 해당 포트로 접근이 불가능함을 나타내는 신호를 출력하는 것을 특징으로 하는 메모리 장치의 접근 권한 제어 방법이 제공된다.
상기 특정 포트로부터 제공되는 메모리 커맨드를 상기 메모리 커맨드에 포함된 공유 뱅크의 블록 주소에 상응하는 블록으로 메모리 커맨드를 전달하는 단계는 상기 포트 중 특정 포트로부터 제공되는 메모리 커맨드가 어드레스 파트가 변형된 메모리 커맨드인지 판단하는 단계를 포함하고, 상기 제공된 메모리 커맨드가 어드레스 파트가 변형된 메모리 커맨드일 경우 상기 변형된 어드레스 파트에 포함된 공 유 뱅크 블록 주소 정보에 상응하는 블록으로 메모리 커맨드를 전달할 수 있다.
상기 프로세서에서 상기 공유 뱅크의 특정 블록을 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드일 수 있다.
그리고, 상기 변형된 어드레스 파트는 공유 뱅크의 블록의 주소 정보 및 공유 뱅크의 사용과 관련한 커맨드 정보를 포함할 수 있다.
또한, 상기 공유 뱅크의 사용과 관련한 커맨드는 상기 공유 뱅크의 특정 블록에 대한 접근 권한을 요청하는 세트(SET) 커맨드, 상기 공유 뱅크의 특정 블록에 대한 접근 권한이 부여됐는지의 확인을 위한 리드(READ) 커맨드 및 상기 공유 뱅크의 특정 블록에 대한 접근 권한 해제를 요청하는 리세트(RESET) 커맨드를 포함할 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것 으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하에서는 복수개의 포트를 포함하는 메모리(즉, 멀티 포트 메모리)에 대해서는 설명의 편의를 위해 멀티 포트 메모리 중 현재 가장 널리 사용되는 듀얼 포트 메모리를 기준으로 설명하기로 한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터의 제어 방법이 적용되는 다중 포트 메모리 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 다중 포트 메모리 장치(이하, 메모리 장치)는 A포트(220), B포트(222), A포트 전용 뱅크(200), 공유 뱅크(202), B포트 전용 뱅크(204) 및 접근 권한 레지스터 로직(240)을 포함한다.
물론, 다중 포트 메모리 장치는 공유 뱅크(202)만을 포함하거나, A포트 전용 뱅크(200) 또는 B포트 전용 뱅크(204)와 공유 뱅크(202)만을 포함할 수도 있을 것이다.
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)로의 접근 권한을 요청받으면, 해당 공유 뱅크에 대한 접근 권한이 현재 부여된 상태인지를 판단하고, 부여된 상태이면 접근 권한을 제공하지 않고, 부여되지 않은 상태이면 해당 포트로 접근 권한을 부여한다.
상응하는 포트를 통해 메모리 장치에 접근하는 프로세서는 메모리 장치에 커맨드(COMMAND) 및 어드레스(Address) 정보를 제공함으로써, 커맨드에 상응하여 처리된 처리 데이터(예를 들어, 임의의 뱅크에 저장된 데이터를 읽기 위한 커맨드에 상응하는 저장된 데이터)를 메모리 장치로부터 제공받을 수 있다. 프로세서의 어플리케이션(application)과 메모리 장치와의 커맨드 정보는 미리 설정되어 있다.
프로세서의 어플리케이션은, 예를 들어, 액트(ACT), 리드(READ), 라이트(WRITE), 프리차지(Precharge), 리프레쉬(Refresh), 모드 레지스터 세트(Mode Register Set: MRS) 등 중 하나 이상과 같은 커맨드 정보를 메모리 장치에 제공한다.
상술한 커맨드들은 /RAS, /CAS, /CS 및 /WE 정보의 조합에 의해 해석되고 결정될 수 있다. 각 신호의 로우 또는 하이 상태에 따라 의미하도록 미리 지정된 정보는 각각 상이할 수 있으며, 용이하게 변경될 수 있으나, 이하에서는 일 예로서 각 신호 또는 신호의 조합에 의해 의미하는 정보를 설명하기로 한다.
예를 들어, 액트 커맨드는 /RAS가 로우(Row)로 인에이블(enable)되는 커맨드로서, 행(Row) 주소에 맞는 워드(WORD)를 인에이블시키는 커맨드이다.
리드 커맨드는 /CAS가 로우로 인에이블(enable)되는 커맨드로서, 리드 커맨드와 함께 전송되는 셀 어드레스에 상응하는 데이터를 독출하여 DQ 핀으로 출력하도록 하는 커맨드이다.
라이트 커맨드는 /CAS 및 /WE가 로우로 인에이블되는 커맨드로서, 라이트 커맨드와 함께 전송되는 셀 어드레스에 DQ 핀을 통해 입력되는 데이터를 라이트하는 커맨드이다.
프리차지 커맨드는 /RAS 및 /WE가 로우로 인에이블되는 커맨드로서, 액트(ACT) 커맨드에서 인에이블된 워드 라인을 디스에이블(Disabe)시키는 커맨드이다.
리프레쉬 커맨드는 /RAS 및 /CAS가 로우로 인에이블되는 커맨드로서 메모리의 데이터가 유실되지 않도록 주기적으로 리프레쉬하도록 하는 커맨드이다.
모드 레지스터 세트 커맨드는 /RAS, /CAS, /CS 및 /WE를 모두 로우로 인에이블시키는 커맨드로서, 메모리 장치의 동기 스펙을 설정하는 커맨드이며, 동기를 설정하기 위한 값은 커맨드와 함께 전송되는 어드레스 필드에 포함된다.
여기서, 상술한 커맨드를 지정하는 신호(예를 들어, /RAS, /CAS, /CS 및 /WE를 모두 로우로 인에이블시키는 것)들은 각 메모리 장치마다 다르게 설정될 수 있음은 당연하다.
프로세서의 어플리케이션은 상술한 바와 같이 /RAS, /CAS, /CS 및 /WE의 조합에 의해 미리 설정된 커맨드 및 어드레스를 컨트롤 레지스터(미도시)로 제공한다. 여기서, 컨트롤 레지스터는 프로세서로부터의 커맨드를 수신하고 커맨드에 포 함된 주소에 상응하는 뱅크에 커맨드를 전달하는 기능을 한다.
여기서, 컨트롤 레지스터는 복수개의 프로세서를 커버할 수도 있으나, 보다 바람직하게는 각 프로세서 별로 각각 구비되어 독립적으로 기능할 수 있다.
이하에서는, 본 발명에 따른 접근 권한 레지스터 로직(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포트 및 B포트 중 어느 포트도 접근할 수 있으나, A 포트가 공유 뱅크(202)를 점유하고 있는 동안은 B포트가 공유 뱅크(202)에 접근할 수 없었으며, B포트가 공유 뱅크(202)를 점유하고 있는 동안은 A 포트가 공유 뱅크(202)에 접근할 수 없었다.
B포트 전용 뱅크(202, 204)는 B포트만이 액세스하여 데이터를 독출하거나 데이터 기록이 가능한 영역이다. 따라서, A포트는 B포트 전용 뱅크(202, 204)에 액세스하는 것이 불가능하다.
도 2에서, A포트 전용 뱅크로는 하나의 뱅크가 할당되고, B포트 전용 뱅크로는 두개의 뱅크가 할당되는 경우가 도시되어 있으나, 이는 일례에 불과하며, A포트 및 B포트에 할당되는 전용 뱅크 수가 바뀔 수 있다는 점은 당업자에게 있어 자명할 것이다.
공유 뱅크(202)는 A포트(220) 및 B포트(222)가 모두 접근하여 데이터의 읽기 및 데이터의 쓰기가 가능한 영역이다. 종래에는 공유 뱅크(202)에 A포트 및 B포트 중 어느 포트도 접근할 수 있으나, A 포트가 공유 뱅크(202)를 점유하고 있는 동안은 B포트가 공유 뱅크(202)에 접근할 수 없었으며, B포트가 공유 뱅크(202)를 점유하고 있는 동안은 A 포트가 공유 뱅크(202)에 접근할 수 없었다.
본 발명의 바람직한 실시예에 따르면, 이러한 종래의 문제점을 해결하기 위해 도면에 도시된 바와 같이 독립적으로 접근이 가능한 하나 이상의 공유 블록(블록0, 블록1, ..., 블록N)이 공유 뱅크(202)에 구비된다. 물론, 공유 블록이 하나인 경우는 블록으로 구분될 필요가 없는 경우이며, 둘 이상일 경우에만 공유 뱅크(202)에 다중 포트가 접근할 수 있음은 당연하다.
이하에서는, 도면에 도시된 바와 같이, 공유 뱅크(202)가 다수의 공유 블록으로 형성된 것을 예로 들어 설명하기로 하되, 본 발명에 따른 공유 뱅크의 리프레쉬를 수행하는 방법은 하나의 공유 블록으로 이루어진 공유 뱅크에서도 동일하게 수행될 수 있음은 이하의 설명을 통해 더욱 자명하게 될 것이다.
공유 뱅크(202) 내의 각 공유 블록은 접근 권한 레지스터 로직(240)의 접근 권한 레지스터 세트(SET)에 의해 자유롭게 선택될 수 있으며, 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-1)에 접근하여 데이터를 읽기 또는 쓰기를 하는 경우, B포트(222)는 공유 블록1(211-2)에 접근하여 데이터를 읽기 또는 쓰기를 하는 것이 가능하다.
다만, A 포트(220)가 점유하여 사용하는 특정 공유 블록을 점유하여 사용하는 동안 B포트(222)는 A 포트(220)가 점유하여 사용하는 공유 블록에 대해서는 사용할 수 없다.
본 발명은 이러한 종래의 문제점을 해결하기 위해 독립적으로 액세스가 가능한 복수의 블록(211-1, 211-2,… 211-N)이 공유 뱅크에 구비된 메모리 장치를 대상으로 하는 발명이다.
이러한 특정 블록 또는 특정 뱅크에 특정 포트에서만 액세스할 수 있는 것은 접근 권한을 가진 경우에만 가능하며 이러한 접근 권한을 가지도록 하는 것은 접근 권한 레지스터 로직(240)에 의해 이루어진다.
본 발명은 이러한 접근 권한 레지스터 로직(240)을 제어함으로써 공유 뱅크에 다수개의 블록을 포함하는 메모리 장치에서 다수개의 블록 중 특정 블록을 각각의 포트에서 개별적으로 액세스하는 경우에도 먼저 액세스한 포트쪽에 접근 권한을 부여함으로써 공유 뱅크(202) 내에 복수개의 블록에 저장된 데이터를 보호할 수 있는 발명이다.
도 3은 본 발명의 바람직한 일 실시예에 따른 A포트 및 B포트가 각 뱅크에 액세스하는 상태를 나타낸 도면이다.
도 3에서, 뱅크0(300)는 A포트 전용 뱅크이고, 뱅크1(302)은 공유 뱅크이며, 뱅크3는 B 포트 전용 뱅크이다. 도 3에서, 각 뱅크의 X 디코더는 행(row) 주소에 대한 코딩을 수행하고, Y 디코더는 열(column)에 주소에 대한 코딩을 수행한다. 또한, 각 뱅크의 S 또는 C는 뱅크로 전달되는 커맨드를 처리하는 컨트롤 회로로서의 역할을 수행한다.
도 3에 도시된 바와 같이, 뱅크0(300)로는 A 포트만이 액세스하며, 뱅크0의 컨트롤 회로는 A포트로부터 입력되는 커맨드 신호를 처리하며, 예를 들어, 커맨드에 포함된 주소 정보를 판단하고 주소 정보에 상응하는 셀로부터 데이터를 독출하거나 셀에 데이터를 기록하는 기능을 수행한다.
뱅크2(304)로는 B 포트만이 액세스하며, 뱅크2의 컨트롤 회로는 B포트로부터 입력되는 커맨드 정보를 처리한다. 공유 뱅크인 뱅크1(302)의 각 블록 별로 X 디코더, Y 디코더 및 컨트롤 회로(S0, S1, S2, S3)가 구비되며, 각 컨트롤 회로(S0, S1, S2, S3)로는 A포트 또는 B포트가 액세스한다.
뱅크1(302)의 각 블록의 컨트롤 회로는 A포트와 B포트 중 먼저 점유한 하나의 포트의 액세스만을 허용하며, 점유한 포트와 일련의 데이터 입출력 동작을 수행한다.
A포트가 뱅크1(302)의 블록0을 점유한 경우, B포트는 뱅크1의 블록1 내지 블록3을 점유하여 사용할 수 있다. 각 블록은 독립적으로 동작하고, 특정 포트로부터의 액세스를 허용할지 여부를 각 블록에 연결되는 접근 권한 레지스터에 의해 독립적으로 결정된다. 즉 A포트 및 B포트를 통해 공유 뱅크인 뱅크1에 동시에 액세스하 여 데이터를 독출 및 기록하는 것이 가능하며, 따라서, 프로세서가 A포트를 통해 블록0로부터 데이터를 독출하는 동안, 다른 프로세서는 B포트를 통해 A포트에 전달할 데이터를 블록1에 액세스하여 기록할 수 있다.
이하에서는 A포트 및 B포트가 독립적으로 공유 뱅크의 블록에 액세스하기 위한 커맨드 형태에 대해 살펴보기로 한다.
도 4 내지 도 7은 A포트 및 B포트가 독립적으로 공유 뱅크의 블록에 액세스하기 위한 커맨드 형태를 예시한 도면이다.
본 발명은 기존의 메모리 커맨드를 이용하여 복수의 포트가 공유 뱅크의 블록에 독립적으로 액세스하는 방법을 제안한다.
통상적으로 어플리케이션으로부터 제공되는 커맨드는 커맨드 타입과 어드레스로 구성되며, 본 발명은 커맨드 타입은 기존의 커맨드 타입을 사용하면서 어드레스를 다르게 구성한 공유 뱅크 블록 액세스 커맨드를 사용한다.
본 발명의 바람직한 실시예에 따르면, MRS 커맨드 및 어드레스의 조합을 이용하여 특정 포트가 공유 뱅크의 특정 블록을 액세스하여 사용하도록 한다.
그러나 이러한 공유 뱅크에 포함되는 다수개의 블록에 A 포트와 B 포트 양쪽 모두에서 액세스하는 경우가 발생할 수 있으며, 양쪽 모두에서 하나의 블록에 접근하는 경우 오동작 및 블록에 저장된 데이터의 삭제, 변경 등이 발생할 수 있으므로 접근 권한 레지스터의 새로운 제어 방법이 요구된다.
본 발명에서는 공유 뱅크에 복수의 블록을 포함하는 경우 종래의 접근 권한 레지스터의 제어 방법을 이용하되 공유 뱅크에 포함되는 다수개의 블록을 제어할 수 있는 방법을 제안한다.
본 발명은 기존의 메모리 커맨드를 이용하여 복수의 포트가 공유 뱅크의 블록에 독립적으로 액세스하는 방법을 제안한다.
통상적으로 어플리케이션으로부터 제공되는 커맨드는 커맨드 타입과 어드레스로 구성되며, 본 발명은 커맨드 타입은 기존의 커맨드 타입을 사용하면서 어드레스를 다르게 구성한 공유 뱅크 블록 액세스 커맨드를 사용한다.
본 발명의 바람직한 실시예에 따르면, MRS 커맨드 및 어드레스의 조합을 이용하여 특정 포트가 공유 뱅크의 특정 블록을 액세스하여 사용하도록 한다.
전술한 바와 같이, MRS 커맨드는 동기 상세 내역과 같은 메모리 장치의 다양한 상세 내역을 설정하는 역할을 하는 커맨드이나, 본 발명은 MRS 커맨드와 조합되는 어드레스를 표준에 의해 설정된 어드레스와 다르게 하여 특정 포트가 공유 뱅크의 특정 블록을 사용하는 커맨드로 활용하도록 한다.
도 4는 일반적인 MRS 커맨드 및 어드레스 조합의 구조를 나타낸 도면이다. 본 발명의 바람직한 실시예에 따르면, 종래의 SDRAM의 MRS를 변형한 EMRS(Extended MRS)를 이용하여 접근 권한 레지스터 로직(240)을 컨트롤한다.
EMRS는 PASR(partial Array Self Refresh)나 Driver Strength(DS)등과 같은 추가적인 기능(function)을 제어하는 것으로, MRS를 확장한 개념이다.
도 4를 참조하면, 일반적인 MRS 커맨드는 커맨드 타입을 설정하는 파트(400) 과 어드레스 파트(402)로 구분되며, 도 4에 도시된 바와 같이, 커맨드 타입을 설정하는 파트에서 /CAS, /RAS. /CS 및 /WE는 모두 로우로 설정되며, 레지스터는 이를 통해 MRS 커맨드임을 식별한다.
어드레스 파트(402)에는 메모리의 동작 상세 내역을 설정하기 위한 정보가 기록된다. 설정되는 상세 내역은 버스트 길이(Burst Length), 버스트(Burst) 타입, CAS 레이턴시(Latency), 동작 모드 및 기록 버스트 모드(Write Burst Mode)를 포함한다.
MRS 커맨드에 의해 설정된 상세 내역은 새로운 상세 내역이 설정되거나 메모리 장치에 전원을 잃기 전까지 유지된다. 버스트 길이를 설정하기 위해 통상적으로 3비트를 할당하며, 버스트 길이를 1, 2, 4, 8 중 하나로 설정한다.
CAS 레이턴시를 설정하기 위해 3비트를 할당하고, 통상적으로 세 종류의 CAS 레이턴시를 설정한다. 동작 모드를 설정하기 위해 2개의 비트를 할당하고, 라이트 버스트 모드 및 버스트 타입을 설정하기 위해 1개의 비트를 할당한다.
본 발명은 상술한 MRS의 커맨드의 커맨드 타입 및 어드레스의 형태는 그대로 유지하되 일반 MRS 커맨드와는 다른 어드레스 비트를 사용함으로써 A포트 및 B포트가 독립적으로 공유 뱅크의 블록을 사용할 수 있도록 한다.
이와 같이, 변형된 MRS 커맨드가 공유 뱅크의 블록을 사용하기 위한 커맨드로 사용된다는 점은 어플리케이션과 메모리 장치 사이에 미리 설정된다.
도 5는 본 발명의 바람직한 일 실시예에 따른 공유 뱅크 블록 사용을 위한 변형된 MRS 커맨드의 일례를 도시한 도면이다.
도 5를 참조하면, 공유 뱅크 블록 사용을 위한 변형된 MRS 커맨드는 커맨드 타입 파트(500)는 통상의 MRS 커맨드와 동일하고, 어드레스 파트에는 공유 블록 커맨드 정보(502)와 공유 블록 주소 정보(504)가 포함된다.
도 5에 도시된 바와 같이, 커맨드 타입 파트는 통상의 MRS 커맨드와 동일하므로 컨트롤 로직/레지스터는 어드레스 파트의 정보를 통해 공유 뱅크 블록 사용을 위해 변형된 MRS 커맨드인지 또는 통상의 MRS 커맨드인지 여부를 판단한다.
공유 블록 커맨드 정보는 공유 블록 사용을 위해 설정된 커맨드 정보를 포함한다. 본 발명의 바람직한 실시예에 따르면, 공유 블록 사용을 위해 설정된 커맨드는 세트(SET), 리드(READ), 리세트(RESET) 커맨드를 포함한다.
세트(SET) 커맨드는 공유 뱅크의 특정 블록을 점유하기 위한 커맨드이다. A포트 또는 B포트에서 특정 블록을 사용하고자 하는 경우, 우선 세트(SET) 커맨드를 이용한 블록 점유를 시도한다.
리드(READ) 커맨드는 공유 뱅크의 특정 블록을 점유하고 있는 상태인지 확인하기 위한 커맨드이다. 리드(READ) 커맨드가 전달될 경우, 메모리 장치는 현재 리드(READ) 커맨드를 전송한 포트가 해당 블록을 점유하고 있는지 여부를 확인할 수 있는 정보를 제공한다.
특정 포트에서 메모리 장치 공유 뱅크의 특정 블록을 사용하고자 하는 경우, 세트(SET) 커맨드를 이용하여 해당 블록을 점유하고, 리드(READ) 커맨드를 이용하여 해당 블록을 정상적으로 점유하였는지 여부를 확인할 수 있다.
리세트(RESET) 커맨드는 공유 뱅크의 특정 블록에 대한 점유를 해제하기 위 한 커맨드이다. 공유 뱅크의 메모리 블록에 대한 사용을 마칠 경우, 리세트(RESET) 커맨드를 통해 해당 블록에 대한 점유를 해제한다.
공유 뱅크 블록 사용을 위한 커맨드의 종류가 상술한 바와 같이, 세 종류인 경우 커맨드를 설정하기 위한 비트로 두 개의 비트가 사용될 수 있다.
그러나, 상술한 세 종류의 커맨드 이외에 다양한 종류의 커맨드가 추가적으로 설정될 수 있으며, 이 경우 커맨드 설정을 위한 추가적인 비트가 사용될 수 있다는 점은 당업자에게 있어 자명할 것이다.
세트(SET) 커맨드 및 리드(READ) 커맨드에 의해 특정 블록의 점유 및 점유 확인이 이루어진 후에는 통상의 리드 커맨드, 라이트 커맨드 등을 통해 특정 블록의 데이터를 독출하거나 데이터를 기록하는 것이 가능하다.
공유 블록 주소 정보(504)에는 공유 블록 커맨드(502)와 관련한 블록 주소 정보가 포함된다.
도 2와 같이, 4개의 블록이 공유 뱅크에 구비되는 경우, 블록 주소를 위해 2개의 비트가 할당될 수 있으며, 8개의 블록이 공유 뱅크에 구비되는 경우, 블록 주소를 위해 3개의 비트가 할당될 수 있을 것이다.
변형된 MRS 커맨드는 어드레스 파트의 비트수가 통상의 MRS 커맨드와 동일하여야 하므로, 상술한 공유 블록 커맨드와 공유 블록 주소를 설정하기 위한 비트 이외의 여분의 비트는 미리 설정된 값이 되도록 한다.
예를 들어, 여분의 비트에 대해서는 모두 로우 값을 가지도록 설정할 수 있다. 상기에서는 MRS 커맨드를 변형하여 공유 뱅크의 특정 블록을 사용하는 커맨드 로 활용하는 경우에 대해 설명하였으나, 본 발명이 공유 뱅크의 특정 블록 사용을 위해 MRS 커맨드를 변형하는 것에 한정되는 것은 아니며, 다른 커맨드를 변형하여 공유 뱅크의 특정 블록을 사용하는 커맨드로 활용할 수도 있다.
예를 들어, 리드 커맨드, 라이트 커맨드 등을 변형하여 공유 뱅크의 특정 블록을 사용하기 위한 커맨드로 활용할 수도 있다.
이와 같이, 뱅크의 속성을 변경하는 커맨드 역시 상술한 변형된 MRS 커맨드를 통해 이루어질 수 있으며, 도 6은 뱅크의 속성을 설정하는 정보가 포함되어 있는 변형된 MRS 커맨드의 구조를 도시한 도면이다.
도 6을 참조하면, 도 5와 비교할 때, 변형된 MRS 커맨드는 뱅크 속성 설정 파트(606)를 더 포함하고 있다. 뱅크 속성 설정 파트는 각 뱅크가 A포트 전용 뱅크인지, B포트 전용 뱅크인지 또는 공유 뱅크인지 여부를 판단할 수 있는 정보가 포함되는 부분이다.
도 6과 달리, 공유 블록 커맨드 파트에 뱅크 속성 설정을 위한 커맨드를 포함시킬 수도 있을 것이다.
도 7은 공유 뱅크의 특정 블록을 사용하기 위해 변형된 리드 커맨드의 일례를 도시한 도면이다. 도 7에 도시된 바와 같이, MRS 커맨드가 아닌 리드 커맨드의 어드레스를 변경을 통해서도 공유 뱅크의 블록을 사용하는 커맨드로 활용할 수 있다.
도 6과 비교할 때, 도 8은 어드레스 파트는 도 6과 동일한 정보를 포함하며, 커맨드 타입만을 리드 커맨드로 설정한다.
변형된 리드 커맨드가 공유 뱅크의 블록을 사용하는 커맨드로 활용될 경우, 이러한 정보는 어플리케이션과 메모리 장치 사이에 미리 설정된다.
다만, 리드 커맨드, 라이트 커맨드 등을 이용하는 경우 어드레스 파트는 MRS 커맨드와 같이 스펙을 설정하기 위한 정보를 포함하는 것이 아니라 셀 어드레스를 포함하므로 어드레스 파트의 활용이 MRS 커맨드를 이용하는 경우보다 제한적일 수 있다.
본 발명은 접근 권한 레지스터 로직이이러한 커맨드와 어드레스 타입을 이용하여 접근 권한을 제어하고, 상기 접근 권한에 따라 데이터를 공유 불록으로부터 읽어 와서 출력한다.
먼저 이러한 커맨드와 어드레스 타입에 의해 접근 권한을 제어하는 방법을 도 8 내지 도 9를 참조하여 살펴본다.
먼저 도 8은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직(800)에 의해 공유 뱅크 블록을 제어하는 방법을 나타낸 블록도이고, 도 9는 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터 로직(800)의 구성과 동작을 나타낸 블록도이다.
도 8에 도시된 바와 같이 공유 뱅크의 복수의 블록에 액세스 가능한 것은 접근 권한 레지스터 로직(800)에 의해 수행된다.
접근 권한 플래그의 생성은 MRS 명령어와 특정 어드레스가 접근 권한 레지스터 로직에 인입되면 생성된다.
먼저 접근 권한 레지스터 컨트롤 로직(800)은 MRS와 키 어드레스가 A포트 또는 B포트를 통해 들어오면 이를 디코딩해서 해당 어드레스에 맞는 동작 즉 Set, Reset, Read, Block<0:N> 명령어를 생성한다.
Block<0:N>가 공유 블록의 접근권한 레지스터 로직(800)을 제어하는 명령어로서 Block<0:N>에 의해 블록이 지정되면 Set, Reset, Read 명령어가 순차적으로 수행된다.
Set은 접근 권한 플래그를 활성화하는 명령어로서 공유 뱅크내의 공유 블록에 접근할 수 있게 한다.
Reset은 공유 블록에 대한 접근 권한을 반납하는 명령어로서 공유 블록의 레지스터를 리세트시켜 가지고 있던 접근 권한을 반납하여 다른 포트나 원래 접근 권한을 가졌던 포트에서 액세스가 가능하게 한다.
Read는 접근 권한 레지스터에 저장되어 있는 값들을 DQ 출력핀으로 출력하게 하는 명령어로 이는 각 포트에서 접근 권한 레지스터를 Set한 경우 각 포트에서 블록이 제대로 Set되어 접근 권한을 가지게 되었는지 확인한다.
종래의 듀얼 포트 메모리에서 공유 뱅크에 A 포트가 먼저 액세스한 경우 B 포트의 액세스가 차단될 수 있도록 하는 것은 접근 권한 플래그(flag)에 의해 수행된다.
플래그(flag)는 일반적으로 다른 프로그램에 약속된 신호를 남기기 위한 용도로 사용되는 미리 정의된 비트이다. 따라서 접근 권한 플래그는 공유 뱅크의 블록에 먼저 액세스한 포트 측에 접근 권한을 가지도록 명령어에 포함되어 미리 정의 된 비트이다.
예를 들어, 접근 권한 레지스터로 Set, Reset, Read에 해당하는 어드레스로 지정하여 MRS 명령이 들어오면 해당 어드레스가 일치하면 접근 권한 레지스터는 Set, Reset, Read를 수행한다.
MRS 명령에 포함되어 있으며 일치하는 어드레스를 'Key Address(키 어드레스)'라 하며 상기 MRS 명령에는 액세스하는 블록의 어드레스를 더 포함한다.
따라서 이러한 명령어에 포함된 접근 권한 플래그가 동작하여 공유 뱅크의 블록을 각각 제어할 수 있게 된다.
예를 들어 MRS 명령어 생성시, Key Address를 BA0=1, BA1=0이라고 가정하면 접근 권한 레지스터 로직(800)을 제어하는 어드레스는 BA0=1, BA1=0이 된다. 따라서 접근 권한 레지스터 로직(800)에 들어오는 MRS 명령어에 포함되는 어드레스가 BA0=1, BA1=0인 경우 접근 권한 레지스터는 Set, Reset, Read를 수행하게 되는 것이다.
도 9에 도시된 바와 같이, 접근 권한 레지스터 로직(800)은 A포트와 B포트 각각의 접근 권한 레지스터 제어 로직(910, 920)과 공통의 접근 권한 레지스터 플래그 로직(930)을 포함한다.
또한 접근 권한 레지스터 플래그 로직(930)은 도 10에 도시된 바와 같이, 공유 뱅크내의 복수의 블록을 각각 제어할 수 있도록 블록의 개수만큼의 복수의 접근 권한 레지스터(1000, 1002, …)를 포함한다.
먼저 접근 권한 레지스터 플래그 로직(930)은 각각의 블록들을 제어하는 접 근 권한 플래그를 생성한다. 접근 권한 레지스터 플래그 로직(930)은 A포트, B포트 그리고 블록의 개수에 따라 접근 권한 플래그를 생성한다.
예를 들어 블록이 4개이면 접근 권한 플래그는 A포트측을 위한 접근권한flagA<0:3> 4개가 만들어지며, 접근권한flagA<0>은 블록 0을, 접근권한flagA<1>은 블록 1을, 접근권한flagA<2>는 블록 2를, 접근권한flagA<3>은 블록 3을 각각 A포트에서 제어할 수 있게 한다.
또한 B포트측을 위해서도 접근권한flagB<0:3> 4개가 만들어진다. 그러나 이러한 접근 권한 플래그가 각각 활성화되어 동작하면 해당하는 포트를 통해 입력되는 명령어를 받아 특정 블록에 액세스할 수 있게 되어 A포트 또는 B포트를 통해서 제어할 수 있게 되는 것이다.
한편, 예를 들어 A포트가 접근 권한을 가지고 있는 경우 다른 B포트에서 공유 블록에 액세스하기 위해 접근 권한 레지스터(1000, 1002, …)를 Set하는 경우 A포트가 이미 접근 권한을 가지고 있으므로 B포트에 해당하는 접근 권한 레지스터(1000, 1002, …)는 내부 동작에 아무런 변화를 일으키지 않아야 한다.
이를 위해 접근 권한 레지스터(1000, 1002, …)는 B포트 쪽으로 /busy 신호가 활성화되어 출력한다.
/busy 신호는 접근 금지의 신호 역할을 수행하는 신호로써 실질적으로 B포트쪽에 대기 신호에 해당된다. /busy 신호가 활성된 경우 /busy 신호가 출력된 포트(상기의 경우 B포트)에서는 액세스가 차단되며 /busy 신호가 불활성화되면 다시 B포트에서의 액세스가 가능하게 된다.
각각의 접근 권한 레지스터(1000, 1002, …)에서는 각각 /busy 신호가 다수 개 발생하는 것은 아니며 각각의 접근 권한 레지스터(1000, 1002, …)에서 각각 하나의 /busy 신호만을 생성한다.
이러한 각각의 접근 권한 레지스터(1000, 1002, …)에서 하나만 생성되는 /busy 신호를 도 10에 도시된 바와 같이 비지(/busy) 신호의 합산기인 BUSY SUMMMATION(1004)에서 하나로 통합한다.
비지 신호 합산기인 BUSY SUMMMATION(1004)은 하나의 /busy 신호라도 활성화되면 해당 포트로 /busy 신호를 출력하도록 한다.
이러한 각각의 포트에서 출력되는 DQ핀에서의 출력값과 BUSY 신호값에 따라 특정 블록에 대해 A포트와 B포트 중 어떤 포트에서 접근 권한을 가지고 있는지를 판단할 수 있다.
도 11은 본 발명의 바람직한 일 실시예에 따른 접근 권한 레지스터의 동작의 예시를 나타낸 도면이다.
도 11에 도시된 바와 같이, A포트의 DQ 출력핀은 DQOa, B포트의 DQ 출력핀은 DQOb로, /busy 신호의 경우에 A포트의 /busy 신호는 BUSYa, B포트의 /busy 신호는 BUSYb는 나타낸다. 도 11에서 '0'은 각 포트의 DQ핀과 각 포트로 어떠한 신호도 출력되지 않는 경우를 '1'은 신호가 출력되는 경우를 나타낸다.
도 11에 도시된 바와 같이, 어떠한 명령어도 접근 권한 레지스터에 인입되지 않으면 A포트의 DQ 출력핀은 DQOa와 B포트의 DQ 출력핀은 DQOb로, A포트로 출력되 는 /busy 신호인 BUSYa와 B포트의 /busy 신호인 BUSYb는 모두 1로 표시될 수 있다. 이 경우 양쪽 포트 중 어떠한 포트에서도 접근권한을 가지지 않는 상태를 나타내며 먼저 액세스한 포트에 접근 권한이 부여된다.
반면 A포트로 들어온 Set 명령어가 접근 권한 레지스터에 들어오면 A포트의 DQ 출력핀인 DQOa로는 아무런 값도 출력이 되지 않으며, 이 경우 A포트가 접근 권한을 가지게 된다.
이러한 각각의 포트로 들어온 명령어가 접근 권한 레지스터에 인입되는 경우에 따라 각각의 포트가 접근 권한을 가지도록 제어하는 것이 가능하게 된다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 접근 권한 레지스터의 제어 방법에 의하면 공유 뱅크의 메모리 영역을 복수의 블록으로 분할하는 다중 포트 메모리 장치에서 각각의 포트에서 공유 뱅크 내의 다른 블록들에 접근할 수 있는 장점이 있다.
또한, 종래의 접근 권한 레지스터의 구성과 명령어 등은 유지하면서 공유 뱅 크의 메모리 영역을 복수의 블록으로 분할하는 다중 포트 메모리 장치에서 각각의 포트에서 공유 뱅크 내의 다른 블록들에 접근할 수 있는 장점이 있다.
Claims (13)
- 둘 이상의 포트를 구비하는 다중 포트 메모리 장치에 있어서,상기 각각의 포트를 통해 복수의 프로세서가 액세스할 수 있는 적어도 하나의 공유 뱅크; 및상기 프로세서가 상기 각각의 포트를 통해 상기 공유 뱅크에 액세스할 수 있는 접근 권한을 제어하는 접근 권한 레지스터 로직을 포함하되,상기 공유 뱅크는 미리 설정된 단위로 분할한 복수의 블록을 포함하고,상기 프로세서는 상기 접근 권한 레지스터 로직에 의해 부여된 접근 권한에 따라 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드를 이용하여 상기 블록 중 하나의 블록에 독립적으로 액세스하는 것을 특징으로 하는 다중 포트 메모리 장치.
- 제1항에 있어서,상기 접근 권한 레지스터 로직은,상기 다중 포트를 통해상기 공유 뱅크의 특정 블록에 액세스하여 사용하기 위한 커맨드를 실행하는 접근 권한 레지스터 제어 로직; 및상기 커맨드를 이용하여 접근 권한 레지스터가 동작하도록 하는 신호에 포함되는 플래그를 생성하는 접근 권한 레지스터 플래그 로직을 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
- 제2항에 있어서,상기 접근 권한 레지스터 제어 로직은 상기 포트 수만큼 구비되는 것을 특징으로 하는 다중 포트 메모리 장치.
- 제2항에 있어서,상기 접근 권한 레지스터 플래그 로직은,상기 미리 설정된 단위로 분할한 복수의 블록으로 커맨드를 전달하는 복수의 접근 권한 레지스터; 및상기 블록으로 커맨드의 전달이 불가능한 경우 상기 블록에 대한 접근이 불가능함을 나타내는 신호를 출력하는 비지(busy) 신호 합산기(summation)를 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
- 삭제
- 제1항에 있어서,상기 변형된 어드레스 파트는 공유 뱅크 블록의 주소 정보 및 공유 뱅크 사용과 관련한 커맨드 정보를 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
- 제1항에 있어서,상기 미리 설정된 커맨드는 MRS(Mode Resister Set) 커맨드인 것을 특징으로 하는 다중 포트 메모리 장치.
- 제1항에 있어서,상기 변형된 어드레스 파트는 각 뱅크의 속성을 설정하기 위한 정보를 더 포함하여, 상기 속성은 특정 포트에 대한 전용 뱅크인지 또는 공유 뱅크 인지에 대한 정보를 더 포함하는 것을 특징으로 하는 다중 포트 메모리 장치.
- 둘 이상의 포트를 구비하고, 각각의 포트를 통해 복수의 프로세서가 액세스할 수 있는 미리 설정된 단위로 분할된 복수의 블록을 포함하는 적어도 하나의 공 유 뱅크를 포함하는 메모리 장치의 접근 권한 제어 방법에 있어서,상기 특정 포트로부터 제공되는 메모리 커맨드를 상기 메모리 커맨드에 포함된 공유 뱅크의 블록 주소에 상응하는 블록으로 메모리 커맨드를 전달하는 단계(a);상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하는지 판단하는 단계(b); 및상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하지 않는 경우 상기 공유 뱅크 블록 주소 정보에 상응하는 블록으로부터 메모리 커맨드 처리 정보를 제공받아 해당 포트에 제공하는 단계(c)를 포함하되,상기 블록 주소에 상응하는 블록에 미리 전달된 메모리 커맨드가 존재하는 경우 상기 해당 포트로 접근이 불가능함을 나타내는 신호를 출력하는 것을 특징으로 하는 메모리 장치의 접근 권한 제어 방법.
- 제9항에 있어서,상기 단계(a)는,상기 포트 중 특정 포트로부터 제공되는 메모리 커맨드가 어드레스 파트가 변형된 메모리 커맨드인지 판단하는 단계를 포함하고,상기 제공된 메모리 커맨드가 어드레스 파트가 변형된 메모리 커맨드일 경우 상기 변형된 어드레스 파트에 포함된 공유 뱅크 블록 주소 정보에 상응하는 블록으 로 메모리 커맨드를 전달하는 것을 특징으로 하는 메모리 장치의 접근 권한 제어 방법.
- 제9항에 있어서,상기 프로세서에서 상기 공유 뱅크의 특정 블록을 액세스하여 사용하기 위한 커맨드는 미리 설정된 메모리 커맨드의 어드레스 파트를 변형한 커맨드인 것을 특징으로 하는 메모리 장치에서 접근 권한 제어 방법.
- 제11항에 있어서,상기 변형된 어드레스 파트는 공유 뱅크의 블록의 주소 정보 및 공유 뱅크의 사용과 관련한 커맨드 정보를 포함하는 것을 특징으로 하는 메모리 장치에서 접근 권한 제어 방법.
- 제12항에 있어서,상기 공유 뱅크의 사용과 관련한 커맨드는 상기 공유 뱅크의 특정 블록에 대한 접근 권한을 요청하는 세트(SET) 커맨드, 상기 공유 뱅크의 특정 블록에 대한 접근 권한이 부여됐는지의 확인을 위한 리드(READ) 커맨드 및 상기 공유 뱅크의 특정 블록에 대한 접근 권한 해제를 요청하는 리세트(RESET) 커맨드를 포함하는 것을 특징으로 하는 메모리 장치에서 접근 권한 제어 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060050585A KR100834373B1 (ko) | 2006-06-05 | 2006-06-05 | 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060050585A KR100834373B1 (ko) | 2006-06-05 | 2006-06-05 | 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070116497A KR20070116497A (ko) | 2007-12-10 |
KR100834373B1 true KR100834373B1 (ko) | 2008-06-02 |
Family
ID=39142276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060050585A KR100834373B1 (ko) | 2006-06-05 | 2006-06-05 | 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100834373B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101489141B1 (ko) * | 2008-12-26 | 2015-02-03 | 에스케이플래닛 주식회사 | 스마트 카드 연동 시스템 및 그 방법, 그리고 이에 적용되는 스마트 카드 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102139299B1 (ko) * | 2018-08-23 | 2020-07-29 | 한국수력원자력 주식회사 | 다중 계산모듈의 입출력 정보통합 시스템 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040093167A (ko) * | 2002-04-04 | 2004-11-04 | 인피니온 테크놀로지스 아게 | 공유 메모리를 갖는 향상된 아키텍처 |
-
2006
- 2006-06-05 KR KR1020060050585A patent/KR100834373B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040093167A (ko) * | 2002-04-04 | 2004-11-04 | 인피니온 테크놀로지스 아게 | 공유 메모리를 갖는 향상된 아키텍처 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101489141B1 (ko) * | 2008-12-26 | 2015-02-03 | 에스케이플래닛 주식회사 | 스마트 카드 연동 시스템 및 그 방법, 그리고 이에 적용되는 스마트 카드 |
Also Published As
Publication number | Publication date |
---|---|
KR20070116497A (ko) | 2007-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8122186B2 (en) | Memory device, memory system and dual port memory device with self-copy function | |
US6381190B1 (en) | Semiconductor memory device in which use of cache can be selected | |
US20080291727A1 (en) | Semiconductor memory system having volatile memory and non-volatile memory that share bus, and method of controlling operation of non-volatile memory | |
JP5079279B2 (ja) | マルチポートdramでのリフレッシュ制御方法及び該方法を利用するマルチポートメモリシステム | |
JP2007226934A (ja) | 向上されたリフレッシュメカニズムを有するダイナミック半導体メモリ | |
KR101980314B1 (ko) | 메모리 장치 및 이의 동작방법 | |
JP2007095054A (ja) | 命令によるメモリ装置の調停 | |
US7047371B2 (en) | Integrated memory having a memory cell array containing a plurality of memory banks, and circuit configuration having an integrated memory | |
TW201619832A (zh) | 半導體裝置及包含該半導體裝置的記憶體系統 | |
KR20090013342A (ko) | 멀티 포트 반도체 메모리 장치 및 그에 따른 리프레쉬 방법 | |
US7350018B2 (en) | Method and system for using dynamic random access memory as cache memory | |
JP4229958B2 (ja) | メモリ制御システムおよびメモリ制御回路 | |
US6587917B2 (en) | Memory architecture for supporting concurrent access of different types | |
US8032695B2 (en) | Multi-path accessible semiconductor memory device with prevention of pre-charge skip | |
US6026466A (en) | Multiple row address strobe DRAM architecture to improve bandwidth | |
KR100834373B1 (ko) | 다중 포트 메모리 장치 및 그 접근 권한의 제어 방법 | |
KR100781129B1 (ko) | 다중 포트 메모리 장치 및 그 데이터의 출력 방법 | |
KR100843580B1 (ko) | 접근 권한 레지스터 로직을 갖는 다중 포트 메모리 장치 및그 제어 방법 | |
KR100754358B1 (ko) | 공유 저장영역의 리프레쉬 방법 및 그 방법을 수행하는다중 포트 메모리 장치 | |
KR20080090665A (ko) | 독립적으로 뱅크의 모드를 선택하는 반도체 메모리 장치,메모리 컨트롤러 및 그 제어 방법 | |
KR100754360B1 (ko) | 공유 저장영역의 안정적인 리프레쉬를 수행하는 다중 포트메모리 장치 및 그 리프레쉬 방법 | |
KR20050079862A (ko) | 접근 금지 신호를 갖는 듀얼 포트 메모리 장치 | |
KR100754359B1 (ko) | 복수의 공유 블록을 포함하는 다중 포트 메모리 장치 | |
JP5045337B2 (ja) | 半導体メモリ、半導体メモリの動作方法およびシステム | |
JP3179791B2 (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130422 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140428 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150428 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180425 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190425 Year of fee payment: 12 |