상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 메모리 장치는 제1 및 제2 뱅크를 포함하는 메모리 셀 어레이; 및 외부로부터의 셀프 카피 개시 요청에 응답하여 셀프 카피 신호가 활성화된 경우에, 미리 설정된 셀프 카피 정보-여기서, 셀프 카피 정보는 원시 어드레스 및 목적지 어드레스를 포함함-에 기초하여 상기 원시 어드레스에 상응하는 제1 뱅크의 메모리 영역으로부터 데이터를 읽어들여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 제2 뱅크의 메모리 영역으로 쓰는 메모리 인터페이스를 포함한다. 상기 메모리 인터페이스부는 상기 외부로부터의 셀프 카피 설정 요청에 응답하여 상기 셀프 카피 정보를 상기 메모리 셀 어레이의 소정 영역에 저장할 수 있다. 상기 셀프 카피 정보는 데이터 사이즈를 더 포함할 수 있다. 상기 셀프 카피 정보는 상기 메모리 인터페이스부에서 상기 셀프 카피 동작을 모니터링하여 업데이트된 셀프 카피 개시, 셀프 카피 완료 및 셀프 카피 진행 중의 상태를 지시하는 플래그값을 더 포함할 수 있다. 상기 메모리 인터페이스부는 상기 셀프 카피 정보에 기초하여 상기 원시 어드레스와 상기 목적지 어드레스를 출력하고 상기 셀프 카피 개시 요청에 응답하여 상기 셀프 카피 신호를 활성화시키는 제어부; 상기 셀프 카피 신호가 활성화된 경우에 상기 제어부로부터 출력되는 상기 원시 어드레스 및 상기 목적지 어드레스를 선택하여 출력하는 셀프 카피 선택 회로; 및 상기 셀프 카피 신호가 활성화된 경우 상기 원시 어드레스에 상응하는 제1 뱅크의 메모리 영역으로부터 데이터를 읽어들 여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 제2 뱅크의 메모리 영역으로 쓰는 셀프 카피 데이터 경로를 제공하는 데이터 입출력 버퍼부를 포함할 수 있다. 상기 제어부는 상기 셀프 카피 개시, 셀프 카피 완료 및 셀프 카피 진행 중의 상태를 지시하는 플래그값을 소정 시간마다 모니터링할 수 있다. 상기 셀프 카피 선택 회로는 상기 셀프 카피 신호가 활성화된 경우에 상기 제어부로부터 출력되는 상기 원시 어드레스 및 상기 목적지 어드레스를 선택하여 출력하고 상기 셀프 카피 신호가 비활성화된 경우에는 외부로부터 입력된 어드레스를 선택하여 출력하는 복수의 스위칭 회로를 포함할 수 있다. 상기 데이터 입출력 버퍼부는 상기 셀프 카피 신호가 비활성화된 경우 뱅크 선택 신호에 의해 선택된 뱅크에 대하여 리드/라이트 데이터 경로를 제공하거나, 상기 셀프 카피 신호가 활성화된 경우 상기 원시 어드레스에 상응하는 제1 뱅크의 메모리 영역으로부터 데이터를 읽어들여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 제2 뱅크의 메모리 영역으로 쓰는 셀프 카피 데이터 경로를 제공하는 데이터 경로 선택 회로; 읽기 동작시에 상기 뱅크 선택 신호에 의해 선택된 뱅크의 메모리 셀 어레이로부터 리드 데이터 경로를 통하여 제공된 데이터를 외부의 데이터 버스로 출력하는 데이터 출력 버퍼; 및 쓰기 동작시에 상기 외부 데이터 버스로부터 데이터를 수신하여 라이트 데이터 경로를 통하여 상기 뱅크 선택 신호 의해 선택된 메모리 셀 어레이로 공급하는 데이터 입력 버퍼를 포함할 수 있다. 상기 메모리 인터페이스는 동기식 DRAM 인터페이스가 될 수 있다. 상기 메모리 장치는 싱글 포트 메모리 장치가 될 수 있다.
본 발명의 제2 목적을 달성하기 위한 본 발명의 일측면에 따른 메모리 시스템은 셀프 카피 정보를 저장할 어드레스 정보 및 셀프 카피 정보-여기서, 셀프 카피 정보는 원시 어드레스, 목적지 어드레스 및 셀프 카피 동작 상태를 지시하는 플래그 값을 포함함-를 포함하는 셀프 카피 설정 요청과 셀프 카피 개시 요청을 제공하는 메모리 컨트롤러; 및 상기 셀프 카피 설정 요청에 응답하여 상기 셀프 카피 정보를 메모리 셀 어레이의 소정 영역에 저장하는 메모리 장치를 포함하되, 상기 메모리 장치는 제1 및 제2 뱅크를 포함하는 메모리 셀 어레이; 및 상기 셀프 카피 개시 요청에 응답하여 셀프 카피 신호가 활성화된 경우에, 상기 셀프 카피 정보에 기초하여 상기 원시 어드레스에 상응하는 제1 뱅크의 메모리 영역으로부터 데이터를 읽어들여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 제2 뱅크의 메모리 영역으로 쓰는 메모리 인터페이스를 포함한다.
본 발명의 제3 목적을 달성하기 위한 본 발명의 일측면에 따른 듀얼 포트 메모리 장치는 제1 뱅크 및 제2 뱅크를 포함하는 메모리 셀 어레이; 제1 포트를 통하여 제1 메모리 컨트롤러를 거쳐 제1 프로세서와 연결되어 상기 제1 뱅크를 액세스하여 읽기 및 쓰기 동작을 수행하는 제1 메모리 인터페이스; 및 제2 포트를 통하여 제2 메모리 컨트롤러를 거쳐 제2 프로세서와 연결되어 상기 제1 뱅크 및 상기 제2 뱅크를 액세스하여 읽기 및 쓰기 동작을 수행하는 제2 메모리 인터페이스를 포함하되, 상기 제2 메모리 인터페이스는 상기 제2 메모리 컨트롤러로부터의 셀프 카피 개시 요청에 응답하여 셀프 카피 신호가 활성화된 경우에, 미리 설정된 셀프 카피 정보-여기서, 셀프 카피 정보는 원시 어드레스 및 목적지 어드레스를 포함함-에 기 초하여 상기 원시 어드레스에 상응하는 제1 뱅크의 메모리 영역으로부터 데이터를 읽어들여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 제2 뱅크의 메모리 영역으로 쓴다. 상기 듀얼 포트 메모리 장치는 상기 제1 프로세서 및 상기 제2 프로세서에서 상기 제1 뱅크를 충돌없이 액세스 가능하도록 제어하는 세마포어 제어부를 더 포함할 수 있다. 상기 제2 메모리 인터페이스부는 상기 제2 프로세서로부터의 셀프 카피 설정 요청에 응답하여 상기 셀프 카피 정보를 상기 메모리 셀 어레이의 소정 영역에 저장할 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 2는 본 발명의 일실시예에 따른 동기식 DRAM(이하 "SDRAM")의 내부 구성을 개략적으로 나타낸 블록도이며, 도 6은 본 발명의 일실시예에 따른 셀프 카피 동작을 설명하기 위한 프로세서, 메모리 컨트롤러 및 메모리 장치를 나타낸 블록도이다.
먼저, 도 6을 참조하면, 메모리 컨트롤러(410)에서 프로세서(400)로부터 셀프 카피 동작을 위한 레지스터 세팅을 요청하는 셀프 카피 설정 요청을 수신하여 메모리 장치(420)으로 상기 셀프 카피 설정 요청을 전송한다.
구체적으로, 메모리 컨트롤러(410)에서는 셀프 카피 설정 요청을 위해 /CS, /RAS, /CAS 및 /WE를 조합한 라이트(write) 신호(예를 들어, /CS가 로우, /WE가 로우, /RAS가 로우 및 /CAS가 하이)를 제어 신호 버스를 통하여 메모리 장치(420)으로 제공하고, 셀프 카피 정보를 저장할 어드레스 정보를 어드레스 버스를 통하여 메모리 장치(420)으로 제공하고, 셀프 카피 정보를 데이터 버스를 통하여 메모리 장치(420)으로 제공한다. 즉, 메모리 장치(420)에서는 라이트 동작을 통하여 셀프 카피 동작을 위한 레지스터 세팅을 수행한다. 셀프 카피 정보를 저장할 어드레스 정보는 메모리 장치(420)의 소정 뱅크의 최상위 어드레스 영역이 될 수 있다.
상기 셀프 카피 정보는 셀프 카피 제어 데이터, 셀프 카피하기 위한 소스 뱅크의 원시 어드레스(source address) 및 목적지 뱅크의 목적지 어드레스(destination address)를 포함할 수 있다. 상기 셀프 카피 정보는 셀프 카피하고자 하는 데이터 사이즈를 더 포함할 수 있다. 여기서, 데이터 사이즈는 셀프 카피 동작에 관계없이 일정한 값을 갖을 수도 있고, 셀프 카피 동작마다 다른 값을 갖을 수도 있다.
원시 어드레스(source address)는 복사하고자하는 뱅크를 지시하는 소스 뱅 크 정보, 원시 로우 어드레스 및 원시 컬럼 어드레스를 포함하고, 목적지 어드레스는 복사되는 목적지 뱅크를 지시하는 목적지 뱅크 정보, 목적지 로우 어드레스 및 목적지 컬럼 어드레스를 포함한다. 셀프 카피 제어 데이터는 셀프 카피 개시, 셀프 카피 완료 및/또는 셀프 카피 동작 상태를 지시하는 플래그를 포함할 수 있다.
메모리 장치(420)에서 상기 셀프 카피 설정 요청에 응답하여 상기 셀프 카피 정보를 메모리 장치(420)의 소정 뱅크의 소정 어드레스 영역 또는 소정의 레지스터에 저장하여 셀프 카피 동작을 위한 레지스터 세팅을 수행한다. 여기서, 상기 소정 어드레스 영역은 예를 들어 상기 소정 뱅크의 최상위 어드레스 영역이 될 수 있다.
셀프 카피 동작이 필요한 경우, 메모리 컨트롤러(410)에서 프로세서(400)로부터 셀프 카피 개시 요청을 수신하여 메모리 장치(420)으로 셀프 카피 개시 요청을 전송한다.
메모리 장치(420)에서 상기 셀프 카피 개시 요청에 응답하여 상기 소정 뱅크의 소정 어드레스 영역 또는 상기 소정의 레지스터에 미리 저장된 셀프 카피 개시 여부를 지시하는 플래그를 셀프 카피 개시를 지시하도록 세팅한다.
메모리 장치(420)에서는 셀프 카피 개시, 셀프 카피 완료 및/또는 셀프 카피 동작 상태를 지시하는 플래그 값을 소정 시간마다 모니터링하면서 셀프 카피 정보에 기초하여 셀프 카피 동작을 수행한다.
메모리 장치(420)에서는 셀프 카피 동작이 진행 중인지 또는 완료되었는지를 나타내는 BUSY 신호를 메모리 컨트롤러(410)으로 출력한다.
메모리 컨트롤러(410) 및 프로세서(400)에서는 BUSY 신호가 활성화된 경우 셀프 카피 동작이 진행 중인 것으로 판단하고, BUSY 신호가 비활성화된 경우 셀프 카피 동작이 완료된 것으로 판단할 수 있다. 또는, 메모리 컨트롤러(410) 및 프로세서(400)에서는 메모리 장치(420)의 소정 뱅크의 소정 어드레스 영역 또는 소정의 레지스터에 저장된 레지스터 세팅값을 직접 읽어와서 셀프 카피 동작이 진행 중인지 완료되었는지를 판단할 수도 있다.
이하, 메모리 장치에서의 수행되는 셀프 카피 동작에 대해 살펴본다. 이하에서 메모리 장치(420)는 동기식 DRAM(Synchronous Dynamic RAM)을 예로 들어 설명한다.
SDRAM은 코아(core) 영역에 복수의 메모리 뱅크들을 포함하며, 각각의 메모리 뱅크는 복수의 메모리 셀을 포함하며, 각각의 메모리 셀은 복수개의 비트라인들(BL) 중의 하나와 복수개의 워드 라인들들(WL) 중의 하나 사이에 연결된다. 도 2에서는 예를 들어 두 개의 메모리 뱅크들 Bank 0(70) 및 Bank 1(80)로 구성된 SDRAM을 나타낸다.
SDRAM은 주변 영역에 상기 복수의 메모리 셀과 데이터 읽기, 쓰기, 리프레쉬 및 셀프 카피 동작을 수행하는 메모리 인터페이스를 포함한다. 상기 메모리 인터페이스는 제어부(110), 모드 레지스터(120), 어드레스 버퍼(130), 뱅크 선택부(140), 셀프 카피 선택 회로(150), 로우 어드레스 디코더(160, 165), 컬럼 어드레스 디코더(170, 175) 및 데이터 입출력 버퍼부(200)를 포함한다.
모드 레지스터(120)에는 다양한 SDRAM 동작 모드들을 제어하기 위한 데이터(예를 들어 CAS Latency, burst type 및 burst length등)들이 프로그램되어 저장되 어 있다.
제어부(10)는 커맨드 디코더(112), 컨트롤 로직(114), 커맨드 로직(116) 및 리프레쉬 카운터(118)을 포함할 수 있다. 도 2에서는 리프레쉬 카운터(118)는 제어부(10)에 포함되는 것으로 도시되어 있으나, 제어부(10) 외부에 구현될 수도 있다.
커맨드 디코더(112)는 클럭 신호(CLK), 클럭 인에이블 신호(CKE; Clock Enable), 칩 인에이블 신호(CS; Chip Select), 로우 스트로브 신호(RAS; Row Address Strobe), 컬럼 스트로브 신호(CAS; Column Address Strobe) 및 라이트 인에이블 신호(WE; Write Enable)등의 제어 신호(113)를 외부의 메모리 컨트롤러(410, 도 6)로부터 입력받아 활성화 (Activation) 커맨드, 리드(Read) 커맨드, 라이트(Write) 커맨드, 오토 리프레쉬(Auto refresh) 커맨드 및 파워 다운(Power down) 커맨드등과 같은 SDRAM의 동작 모드를 제어하기 위한 커맨드들을 생성한다.
컨트롤 로직(114)은 모드 레지스터(20)으로부터 제공된 상기 SDRAM 동작 모드를 제어하기 위한 데이터(CAS Latency, burst type, burst length등)와 상기 SDRAM의 동작 모드를 제어하기 위한 커맨드들에 기초하여 상기 SDRAM 동작 모드를 제어한다.
리프레쉬 카운터(118)는 컨트롤 로직(114)의 제어에 따라 메모리 셀 어레이의 DRAM 셀의 리프레쉬 동작을 제어한다.
커맨드 로직(116)은 상기 소정 뱅크의 소정 어드레스 영역 또는 상기 소정의 레지스터에 저장된 셀프 카피 정보에 기초하여 본 발명의 일실시예에 따른 뱅크간의 셀프 카피 동작을 제어한다.
커맨드 로직(116)은 셀프 카피 개시, 셀프 카피 완료 및/또는 셀프 카피 동작 상태를 지시하는 플래그 값을 소정 시간마다 모니터링하면서 셀프 카피 정보에 기초하여 셀프 카피 동작을 제어한다.
커맨드 로직(116)은 셀프 카피 동작이 개시되면, 셀프 카피하기 위해 읽어들일 소스 뱅크의 소스 어드레스와 기록할 뱅크의 목적지 어드레스를 셀프 카피 선택 회로(150)로 제공한다.
또한, 커맨드 로직(116)은 셀프 카피 정보 중의 셀프 카피 동작 상태를 지시하는 플래그값을 업데이트하여 셀프 카피 동작시에 셀프 카피 개시, 셀프 카피 완료 및 셀프 카피 진행 중의 상태를 셀프 카피 정보에 반영시킬 수 있다.
또한, 커맨드 로직(116)은 셀프 카피 정보 중의 셀프 카피 동작 상태를 지시하는 플래그값에 기초하여 셀프 카피 동작이 진행 중인 경우 셀프 카피 신호(115)를 활성화시켜 출력한다. 여기서, 셀프 카피 신호(115)는 BUSY신호(111)와 별개의 신호가 될 수도 있고, BUSY신호(111)와 동일한 신호가 될 수도 있다.
상기 셀프 카피 정보는 소정 뱅크의 상위 어드레스 영역(182 또는 187)에 저장될 수 있다. 이 경우, 도 2에 도시된 셀프 카피 제어 레지스터(190)는 별도의 레지스터가 아니라 상기 소정 뱅크의 상위 어드레스 영역(182 또는 187)을 개념적으로 나타낸 것이다. 또는 셀프 카피 제어 레지스터는 상기 소정 뱅크 내의 특정 어드레스 영역이 아닌 셀프 카피 정보만을 저장하기 위한 별도의 레지스터를 추가하여 구현할 수도 있다.
프로세서(400, 도 6)와 같은 호스트에서 셀프 카피 동작을 수행하기 위한 레 지스터 세팅 요청에 따라 외부의 메모리 컨트롤러(410, 도 6)에서 특정 뱅크의 최상위 어드레스 영역의 어드레스 정보 및 셀프 카피 정보를 SDRAM 메모리 장치로 제공하고, SDRAM 메모리 장치에서는 일반적인 라이트 동작시 상기 어드레스 정보가 지시하는 특정 뱅크의 최상위 어드레스 영역에 상기 셀프 카피 정보를 기록함으로써 셀프 카피 동작을 수행하기 위한 레지스터 세팅을 수행할 수 있다.
커맨드 로직(116)은 셀프 카피 동작이 완료된 경우 BUSY신호(111)를 비활성화시켜 메모리 컨트롤러(410)로 제공한다. 예를 들어, 활성화된 BUSY신호(111)는 셀프 카피 동작이 진행 중임을 나타내고, 비활성화된 BUSY신호(111)는 셀프 카피 동작이 완료되었음을 나타내는 셀프 카피 완료 신호를 나타낼 수 있다.
여기서, 컨트롤 로직(114) 및 커맨드 로직(116)은 도 2에서는 두개의 별개 블록으로 도시하였으나 동일한 기능을 수행하는 하나의 블록으로 통합되도록 구성할 수도 있음은 물론이다.
셀프 카피 선택 회로(150)는 제1, 제2, 제3 및 제4 스위칭 회로(152, 154, 156, 158)로 구성될 수 있다. 상기 스위칭 회로는 예를 들어 먹스(multiplexer)로 구현될 수 있다.
제1 스위칭 회로(152)는 셀프 카피 신호(115)가 활성화된 경우에 커맨드 로직(110)으로부터 제공된 로우 어드레스(117r)를 뱅크 0의 로우 어드레스 디코더(160)로 제공하고, 커맨드 로직(110)으로부터 제공된 컬럼 어드레스(117c)를 뱅크 0의 컬럼 어드레스 디코더(170)로 제공한다.
제1 스위칭 회로(152)는 셀프 카피 신호(115)가 활성화된 경우에 커맨드 로 직(110)으로부터 제공된 로우 어드레스(117r)를 뱅크 0의 로우 어드레스 디코더(160)로 제공한다.
제2 스위칭 회로(154)는 셀프 카피 신호(115)가 활성화된 경우에 커맨드 로직(110)으로부터 제공된 컬럼 어드레스(117c)를 뱅크 0의 컬럼 어드레스 디코더(170)로 제공한다.
제3 스위칭 회로(156)는 셀프 카피 신호(115)가 활성화된 경우에 커맨드 로직(110)으로부터 제공된 로우 어드레스(119r)를 뱅크 1의 로우 어드레스 디코더(165)로 제공한다.
제4 스위칭 회로(158)는 셀프 카피 신호(115)가 활성화된 경우에 커맨드 로직(110)으로부터 제공된 컬럼 어드레스(119c)를 뱅크 1의 컬럼 어드레스 디코더(175)로 제공한다.
제1, 제2, 제3 및 제4 스위칭 회로(152, 154, 156, 158)는 셀프 카피 신호(115)가 비활성화된 경우에는 컬럼 어드레스 선택부(142) 및 로우 어드레스 선택부(144)로부터 제공된 로우 어드레스 및 컬럼 어드레스를 선택하여 로우 어드레스 디코더 및 컬럼 어드레스 디코더로 제공한다.
셀프 카피 신호(115)는 상기 커맨드 로직(110)으로부터 제공될 수 있으며, 상기 셀프 카피 동작 상태를 지시하는 플래그가 활성화된 경우 활성화 될 수 있다.
어드레스 버퍼(130)는 어드레스 레지스터(132)와 뱅크 제어부(134)를 포함할 수 있다.
어드레스 레지스터(132)는 어드레스(131) 및 뱅크 정보(133)를 입력받아 활 성화 명령(Activation command), 리드 명령(Read command), 라이트 명령(Write command) 및 오토 리프레쉬 명령(Auto refresh command) 등에 응답하여 소정의 타이밍에 로우 어드레스, 컬럼 어드레스 및 뱅크 정보를 출력한다.
뱅크 제어부(134)는 어드레스 레지스터(132)로부터 제공된 뱅크 정보(133)에 기초하여 복수의 뱅크들 중 하나의 뱅크를 지시하는 뱅크 선택 신호(201)을 발생시켜 복수의 뱅크들 중 선택된 뱅크에 연결된 로우 어드레스 디코더가 로우 어드레스를 디코딩하도록 제어하고, 복수의 뱅크들 중 선택된 뱅크에 연결된 컬럼 어드레스 디코더가 컬럼 어드레스를 디코딩하도록 제어한다.
뱅크 제어부(134)는 도 2에 도시된 바와 같이 컬럼 어드레스 선택부(142)와 로우 어드레스 선택부(144)로 뱅크 선택 신호(201)를 제공할 수 있다. 도 2에서는 뱅크 제어부(134)가 어드레스 버퍼(130) 내에 포함되어 뱅크 선택 신호(201)를 컬럼 어드레스 선택부(142)와 로우 어드레스 선택부(144)로 제공하는 것으로 도시되었지만, 본 발명의 다른 실시예에서는 뱅크 제어부(134)가 어드레스 버퍼(130) 외부에 배치되어 각 뱅크의 로우 어드레스 디코더와 각 뱅크의 컬럼 어드레스 디코더로 직접 뱅크 선택신호(201)를 제공하도록 구현할 수도 있다.
뱅크 선택부(140)는 컬럼 어드레스 선택부(142) 및 로우 어드레스 선택부(144)를 포함한다.
컬럼 어드레스 선택부(142)는 컬럼 어드레스를 뱅크 선택 신호(201)에 기초하여 선택된 뱅크의 컬럼 어드레스 디코더로 제공한다.
로우 어드레스 선택부(144)는 로우 어드레스를 뱅크 선택 신호(201)에 기초 하여 선택된 뱅크에 연결된 로우 어드레스 디코더로 제공한다.
로우 어드레스 디코더 회로는 각각의 뱅크 별로 구비된 복수의 로우 어드레스 디코더들(40, 50)를 포함한다.
각각의 로우 어드레스 디코더는 셀프 카피 선택 회로(150)로부터 제공되는 로우 어드레스를 디코딩하여 해당 뱅크의 복수의 워드라인들 중의 하나를 활성화한다.
컬럼 어드레스 디코더 회로는 각각의 뱅크별로 하나씩 구비된 복수의 컬럼 어드레스 디코더들(42, 52)를 포함한다.
각각의 컬럼 어드레스 디코더는 셀프 카피 선택 회로(150)로부터 제공되는 컬럼 어드레스를 디코딩하여 해당 뱅크의 복수의 비트라인들 중의 하나를 활성화한다.
상기 활성화된 워드라인과 접속된 메모리 셀의 전하가 해당 비트라인쌍(BL, BL/)에 실리고, 비트라인 쌍간의 전압 차이는 비트 라인 센스 엠프(미도시)에 의해 감지되어 증폭되며, 소정 시간 후에 컬럼 어드레스 디코더에 의해 활성화된 비트 라인쌍 상에 디벨로프된 데이터가 I/O 라인쌍으로 출력되고, I/O 센스 엠프(미도시) 및 입출력 버퍼부(200)를 거쳐 출력된다.
도 2 및 도 3을 참조하면, 데이터 입출력 버퍼부(200)는 데이터 경로 선택 회로(210), 데이터 출력 버퍼(220) 및 데이터 입력 버퍼(230)을 포함한다. 데이터 입출력 버퍼부(200)는 데이터 경로 선택 회로(210) 전단에 입출력되는 데이터를 래치하는 데이터 래치(211, 213)을 더 포함할 수도 있다.
데이터 경로 선택 회로(210)는 복수의 스위칭 회로(212, 214, 216)로 구성되어, 셀프 카피 신호(115)가 비활성화된 경우 뱅크 선택 신호(201)에 의해 선택된 뱅크에 대하여 일반적인 리드/라이트 데이터 경로를 제공하거나, 셀프 카피 신호(115)가 활성화된 경우 상기 원시 어드레스에 상응하는 뱅크 0의 메모리 영역으로부터 데이터를 읽어들여 셀프 카피 데이터 경로를 통하여 상기 목적지 어드레스에 상응하는 뱅크 1의 메모리 영역으로 쓰는 셀프 카피 데이터 경로를 제공한다. 각 스위칭 회로는 예를 들어 먹스로 구현될 수 있다.
데이터 출력 버퍼(220)는 일반적인 리드 동작시에는 리드 커맨드가 활성화되었을때 상기 뱅크 선택 신호(201) 의해 선택된 뱅크의 메모리 셀 어레이로부터 일반적인 리드 데이터 경로를 통하여 제공된 데이터를 제공받아 외부의 데이터 버스로 공급한다.
데이터 입력 버퍼(230)는 일반적인 라이트 동작시에는 라이트 커맨드가 활성화되었을 때 외부 데이터 버스로부터 데이터를 수신하여 일반적인 라이트 데이터 경로를 통하여 상기 뱅크 선택 신호(201) 의해 선택된 메모리 셀 어레이로 공급한다.
도 3은 본 발명의 일실시예에 따른 뱅크 1을 통한 일반적인 데이터 리드/라이트 동작을 설명하는 블록도이다.
도 3를 참조하면, 리드 동작시 셀프 카피 신호(115)가 비활성화되고 뱅크 선택 신호(201)이 뱅크 1을 나타내는 경우, 선택된 뱅크 1의 메모리 셀 어레이로부터 읽혀진 데이터가 데이터 래치(213), 먹스 2(216), 데이터 출력 버퍼(220) 및 패 드(240)로 구성된 일반적인 리드 데이터 경로를 거쳐 외부의 데이터 버스로 출력된다. 여기서, 데이터 래치(213)가 포함되지 않은 경우에는 메모리 셀 어레이로부터 읽혀진 데이터는 먹스 2(216), 데이터 출력 버퍼(220) 및 패드(240)을 거쳐 외부의 데이터 버스로 출력된다.
라이트 동작시 셀프 카피 신호가 비활성화되고 뱅크 선택 신호(201)이 뱅크 1을 나타내는 경우, 외부의 데이터 버스로부터 입력된 데이터가 패드(240), 데이터 입력 버퍼(230) 및 먹스 3(214)로 구성된 일반적인 라이트 데이터 경로를 거쳐 선택된 뱅크 1의 메모리 셀 어레이로 기록된다.
도 4는 도 2의 데이터 입출력 버퍼부에서 뱅크 0으로부터 뱅크 1로 셀프 카피하는 동작을 설명하기 위한 블록도이다. 도 4는 셀프 카피 정보의 원시 어드레스가 뱅크 0의 어드레스를 지시하고 목적지 어드레스가 뱅크 1의 어드레스를 지시하는 경우를 나타낸다.
도 4를 참조하면, 뱅크 0의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시), 데이터 래치(211) 및 먹스 3(214)으로 구성된 셀프 카피 데이터 경로를 통하여 뱅크 1의 메모리 셀 어레이로 쓰여진다. 이 경우, 먹스 2(216)는 비활성화되어 데이터 입력 버퍼(220) 및 데이터 출력 버퍼(230)를 통한 데이터 입출력 동작은 일어나지 않으며, 뱅크 0의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시), 데이터 래치(211) 및 먹스 3(214)만를 거쳐 바로 뱅크 1의 메모리 셀 어레이로 쓰여진다. 여기서, 데이터 래치(211)가 포함되지 않은 경우에는 뱅크 0의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시) 및 먹스 3(214)만를 거쳐 바로 뱅크 1의 메모리 셀 어레이로 쓰여진다.
도 5는 도 2의 데이터 입출력 버퍼부에서 뱅크 1로부터 뱅크 0으로 셀프 카피하는 동작을 설명하기 위한 블록도이다. 도 5는 셀프 카피 정보의 원시 어드레스가 뱅크 1의 어드레스를 지시하고 목적지 어드레스가 뱅크 0의 어드레스를 지시하는 경우를 나타낸다.
도 5를 참조하면, 뱅크 1의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시), 데이터 래치(213) 및 먹스 1(212)으로 구성된 셀프 카피 데이터 경로를 통하여 뱅크 0의 메모리 셀 어레이로 쓰여진다. 이 경우, 먹스 2(216)는 비활성화되어 데이터 입력 버퍼(220) 및 데이터 출력 버퍼(230)를 통한 데이터 입출력 동작은 일어나지 않으며, 뱅크 1의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시), 데이터 래치(213) 및 먹스 1(212)만를 거쳐 바로 뱅크 0의 메모리 셀 어레이로 쓰여진다. 여기서, 데이터 래치(211)가 포함되지 않은 경우에는 뱅크 1의 메모리 셀 어레이로부터 읽혀진 데이터가 I/O 센스 엠프(미도시) 및 먹스 1(212)만를 거쳐 바로 뱅크 0의 메모리 셀 어레이로 쓰여진다.
도 7은 본 발명의 일실시예에 따른 셀프 카피 동작을 설명하기 위한 타이밍도이다. 도 7은 셀프 카피 정보의 원시 어드레스가 뱅크 0의 어드레스를 지시하고, 목적지 어드레스가 뱅크 1의 어드레스를 지시하고, 데이터 사이즈가 5인 경우를 나타낸다.
도 7을 참조하면, 메모리 컨트롤러(410)로부터 셀프 카피 개시 요청이 수신되면 BUSY 신호 및/또는 셀프 카피 신호가 활성화되고, SDRAM 메모리 장치는 미리 설정된 셀프 카피 동작을 위한 레지스터값-즉, 셀프 카피 정보-를 읽어들여 소스 어드레스 중의 로우 어드레스(701)를 제2 스위칭 회로(154)를 거쳐 로우 어드레스 디코더(160)로 제공하고, 컬럼 어드레스(703)를 제1 스위칭 회로(152)를 거쳐 컬럼 어드레스 디코더(170)로 제공한다. 소정의 지연 시간후 상기 로우 어드레스(701) 및 상기 컬럼 어드레스(703)에 상응하는 메모리 셀로부터 상기 데이터 사이즈에 상응하는 데이터(Data 0, Data 1, Data 2, Data 3, Data 4, Data 5; 705)가 I/O 센스 엠프로 출력된다. 여기서, 출력되는 데이터(705)의 개수는 커맨드 로직부(110)에 구비된 카운터 회로에서 상기 데이터 사이즈 정보에 기초하여 카운팅 동작을 수행하여 제어될 수 있다.
한편, 셀프 카피하고자 하는 목적지 어드레스의 로우 어드레스(711)는 제4 스위칭 회로(158)를 거쳐 로우 어드레스 디코더(165)로 제공되고, 컬럼 어드레스(713)는 제3 스위칭 회로(156)를 거쳐 컬럼 어드레스 디코더(175)로 제공된다. 상기 소스 어드레스로부터 읽어들인 데이터(705)가 상기 로우 어드레스(711) 및 상기 컬럼 어드레스(713)에 상응하는 메모리 셀로 쓰여진다. 여기서, 읽어들인 데이터(705)가 I/O 센스 엠프로 출력된 이후 상기 로우 어드레스(711) 및 상기 컬럼 어드레스(713)에 상응하는 메모리 셀로 쓰여지는 과정에서는 데이터 입력 버퍼 및 데이터 출력 버퍼를 거치지 않으므로 도 4의 먹스 등의 조합 논리 회로를 통한 지연이 존재한다.
본 발명의 일실시예에 따른 셀프 카피 방법을 하나의 다이(die)에 멀티태스킹을 위해 프로세서 1 및 프로세서 2가 장착된 듀얼 코어 CPU에서 하나의 포트를 통하여 SDRAM을 액세스하는 경우, 종래의 셀프 카피 기능을 가지지 않은 싱글 포트 SDRAM을 사용하면, 예를 들어 엠펙4 (MPEG4) 엔진이 메모리 영역의 특정 위치만을 액세스할 수 있는 경우, 엠펙4 엔진에서 메모리를 액세스하기 위해서는 프로세서에서 직접 메모리를 액세스하여 데이터를 리드하여 상기 특정 위치의 메모리 영역으로 라이트한 후 엠펙4 엔진에서 상기 특정 영역의 메모리를 액세스해야 하므로 프로세서가 상기와 같은 데이터를 액세스하는 동안은 다른 연산을 수행할 수 없기 때문에 프로세서의 연산 성능이 저하되는 문제점이 있다.
그러나, 본 발명의 셀프 카피 기능을 가진 싱글 포트 SDRAM의 경우에는 미리 상기 특정 위치 정보등을 메모리의 소정 영역 또는 별도의 레지스터에 저장해놓고 프로세서가 개입되는 대신 메모리 장치 자체에서 데이터를 특정 위치의 메모리 영역으로 셀프 카피한다. 따라서, 상기 셀프 카피 동작 동안에도 프로세서가 다른 연산을 수행할 수 있으므로 프로세서의 로드를 줄여 프로세서의 연산 처리 속도를 개선함으로써 프로세서의 연산 성능을 개선할 수 있다.
도 8은 본 발명의 다른 실시예에 따른 셀프 카피 기능을 가진 듀얼 포트 메모리 장치에서 셀프 카피 동작을 설명하기 위한 개략적인 블록도이다.
도 8을 참조하면, 본 발명의 다른 실시예에 따른 메모리 시스템은 제1 프로세서(100), 제2 프로세서(200) 및 듀얼 포트 메모리(300)를 포함한다.
듀얼 포트 메모리(500)는 포트A를 통해 제1 외부 버스 인터페이스(External Bus Interface: EBI)(510)를 거쳐 제1 프로세서(500)와 연결되고, 포트B를 통해 제2 외부 버스 인터페이스(610)를 거쳐 제2 프로세서(600)와 연결된다.
제1 외부 버스 인터페이스(510) 및 제2 외부 버스 인터페이스(610)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행한다.
메모리 셀 어레이는 제1 로컬 메모리 영역, 제2 로컬 메모리 영역 및 공유 메모리 영역을 포함한다. 통상 듀얼 포트 SDRAM인 경우 메모리 셀 어레이는 뱅크(Bank) 단위로 영역이 구분될 수 있으며 4개의 뱅크(Bank)로 구성된다. 예를 들어, 제1 로컬 메모리 영역에 하나의 뱅크를 할당하고, 제2 로컬 메모리 영역에 두개의 뱅크를 할당하고, 공유 메모리 영역에 하나의 뱅크를 할당할 수 있다.
도 8에는 도시하지 않았지만, 듀얼 포트 메모리(500)는 제1 프로세서(500) 및 제2 프로세서(600)에서 공유 메모리 영역을 충돌없이 액세스 가능하도록 제어하는 세마포어 제어부를 더 포함할 수 있다. 세마포어 제어부는 제1 메모리 인터페이스(710), 제2 메모리 인터페이스(720), 제1 프로세서(500) 및 제2 프로세서(600)와 연결되어 있어 상기 공유 메모리 영역에 대한 메모리 액세스 권한에 대한 내용이 변경되면 이를 제1 프로세서(500)와 제2 프로세서(600)에 알려주는 역할을 수행한다.
제2 메모리 인터페이스(720)는 도 2의 주변 영역에 구비된 본 발명의 일실시예에 따른 메모리 인터페이스의 구성을 가지고 셀프 카피 동작을 수행하며, 도 8의 공유 메모리 영역은 도 2의 뱅크 0에 대응되고, 도 8의 제2 로컬 메모리 영역은 도 2의 뱅크 1에 대응된다. 한편, 제1 메모리 인터페이스(710)도 도 2의 주변 영역에 구비된 본 발명의 일실시예에 따른 메모리 인터페이스의 구성을 가지고 셀프 카피 동작을 수행할 수도 있다.
이동 통신 단말기의 경우에 제1 프로세서(500)는 베이스밴드 프로세서로서 라이트 동작을 수행하고, 제2 프로세서(600)는 비디오 프로세서, 멀티미디어 프로세서 등과 같은 응용프로그램을 수행하기 위한 어플리케이션 프로세서로서 빈번히 듀얼 포트 메모리(700)의 메모리 셀 어레이 내의 데이터를 참조하게 된다. 이로 인해, 제1 프로세서(500)가 공유 메모리 영역에 기록한 데이터들을 제2 프로세서(600)가 여러 번 독출하여 사용하는 상황이 자주 발생할 수 있다.
제1 프로세서(500)가 공유 메모리 영역에 기록한 데이터 중에서 데이터 B를 제2 프로세서(600)가 적어도 1회 이상 독출할 필요성이 있는 경우에, 제2 프로세서(600)에서 셀프 카피 개시 요청을 제2 외부 버스 인터페이스(610)을 통하여 듀얼 포트 메모리(700)로 제공하여 셀프 카피 동작을 수행하여 공유 메모리 영역에 저장된 데이터 B를 읽어들여 제2 로컬 메모리 영역(313)에 셀프 카피한다.
제1 프로세서(500)가 공유 메모리 영역에 기록한 데이터들을 제2 프로세서(600)가 여러 번 독출하여 사용하는 상황이 발생하는 때에는, 제2 프로세서(600)의 DMA에서 해당 데이터를 제2 로컬 메모리 영역으로 복사할 것인지를 판단할 수 있다. 여기서, 해당 데이터를 제2 로컬 메모리 영역으로 복사할 것인지를 여부는 제2 프로세서(600)의 중앙 처리부(미도시)에서 직접 수행하도록 구성할 수도 있음은 물론이다.
제2 프로세서(600)는 상기 데이터를 독출하기 위해 공유 메모리 영역에 접근할 필요가 없이 상기한 셀프 카피 과정을 통해 제1 프로세서(500)가 기록한 데이터를 자신의 전유 영역인 제2 로컬 메모리 영역에서 독출할 수 있다.
이상에서는 메모리 장치가 동기식 DRAM(Synchronous Dynamic RAM)인 것을 예로 들어 설명하였으나, 본 발명의 셀프 카피 동작은 PSRAM(Pseudo SRAM) 및 기타 메모리 셀 어레이가 복수의 뱅크로 구성된 다른 반도체 메모리 장치에서도 구현될 수 있음은 물론이다. 예를 들어, 메모리 장치가 PSRAM인 경우에는 메모리 컨트롤러로부터 입력되는 제어 신호는 /CS, /WE, /OE(Output Enable) 및 /WAIT등이고, 뱅크 어드레스(BA)가 별도로 입력되는 대신 어드레스 핀을 통해 어드레스가 입력되며, 상기 어드레스의 상위 어드레스에 뱅크 정보를 포함한다는 점을 제외하고는 상술한 동기식 DRAM의 구성과 실질적으로 동일하다.