KR102031952B1 - 메모리 장치 및 메모리 장치의 동작방법 - Google Patents

메모리 장치 및 메모리 장치의 동작방법

Info

Publication number
KR102031952B1
KR102031952B1 KR1020120145674A KR20120145674A KR102031952B1 KR 102031952 B1 KR102031952 B1 KR 102031952B1 KR 1020120145674 A KR1020120145674 A KR 1020120145674A KR 20120145674 A KR20120145674 A KR 20120145674A KR 102031952 B1 KR102031952 B1 KR 102031952B1
Authority
KR
South Korea
Prior art keywords
command
input
memory device
address
data
Prior art date
Application number
KR1020120145674A
Other languages
English (en)
Other versions
KR20130111188A (ko
Inventor
오태영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US13/837,519 priority Critical patent/US9134919B2/en
Priority to EP13161227.7A priority patent/EP2645263B1/en
Priority to JP2013073033A priority patent/JP6373559B2/ja
Priority to CN201310110042.6A priority patent/CN103366801B/zh
Publication of KR20130111188A publication Critical patent/KR20130111188A/ko
Priority to JP2018093779A priority patent/JP2018152112A/ja
Application granted granted Critical
Publication of KR102031952B1 publication Critical patent/KR102031952B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

메모리 장치, 이를 포함하는 메모리 시스템 및 그 메모리 장치의 동작방법이 개시된다. 본 발명의 실시예들에 따른 메모리 장치는 우선순위 정보를 갖는 입력정보를 수신하여, 상기 우선순위에 따라 상기 입력정보의 실행순서를 가변하는 컨트롤 로직 및 데이터를 저장하는 복수의 메모리 셀들을 포함하여, 상기 실행순서대로 수신된 상기 각 입력정보에 따라 해당 메모리 셀에서 동작을 수행하는 메모리 셀 어레이를 포함한다.

Description

메모리 장치 및 메모리 장치의 동작방법{MEMORY DEVICE AND OPERATING METHOD THEREOF}
본 발명은 메모리 장치 및 메모리 장치의 동작방법에 관한 것으로, 보다 상세하게는 메모리 액세스를 더 효율화하기 위한 메모리 장치 및 메모리 장치의 동작방법에 관한 것이다.
현재 메모리 장치는 호스트로부터 수신되는 명령을 처리하는 경우에 수신 순서에 따라 명령을 순차적으로 처리한다. 또한 호스트로부터 수신받은 명령은 아니나 호스트로부터 수신받은 명령의 처리를 위해 보조적으로 필요한 명령을 자체적으로 생성하여 실행한다.
즉, 메모리 장치가 읽기 명령(Read) 또는 쓰기 명령(Write)을 호스트로부터 수신하면, 메모리 장치는 읽기 명령 또는 쓰기 명령을 위해 메모리 셀 어레이의 각 로우(ROW)를 열고 닫는 액티브 명령(Active) 또는 프리차지 명령(Precharge)을 자체적으로 생성하여 실행한다. 메모리 장치가 상기와 같이 다양한 명령들을 실행하다 보면, 호스트에게 레이턴시(latency)가 중요한 읽기 명령 또는 쓰기 명령이 있을 경우, 이에 대한 메모리 장치의 응답이 매우 늦어질 수 있다. 그 결과 메모리 장치는 시스템이 요구하는 수준의 빠른 응답성 및 실시간성을 보장할 수 없으며, 이는 시스템 전체의 성능 저하로 이어질 수 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 우선순위에 따라서 명령들을 처리함으로써 메모리 액세스를 효율화할 수 있는 메모리 장치 및 메모리 장치의 동작 방법을 제공하는 것이다.
본 발명의 일실시예에 따른 메모리 장치는 우선순위 정보를 갖는 입력정보를 수신하여, 상기 우선순위에 따라 상기 입력정보의 실행순서를 가변하는 컨트롤 로직 및 데이터를 저장하는 복수의 메모리 셀들을 포함하여 상기 실행순서대로 수신된 상기 각 입력정보에 따라 해당 메모리 셀에서 동작을 수행하는 메모리 셀 어레이를 포함한다.
상기 컨트롤 로직은 패킷 형태로 수신한 상기 각 입력정보를 명령, 주소 및 상기 우선순위 정보로 디코딩하는 패킷 디코더, 상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐, 상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭, 상기 명령 및 상기 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러 및 상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 전송하는 아비터를 포함할 수 있다.
상기 컨트롤 로직은 상기 입력정보가 라이트 명령, 라이트 주소, 상기 우선순위 정보 및 라이트 데이터를 포함한 경우, 상기 라이트 데이터를 수신하여 저장하고, 상기 실행순서에 따라 상기 라이트 명령이 상기 메모리 셀 어레이로 출력될 때 상기 라이트 데이터도 함께 출력하는 라이트 데이터 큐를 더 포함할 수 있다.
일례로 상기 메모리 장치는 제1 포트로 상기 각 입력정보 중 명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송하는 명령주소 입출력 인터페이스부 및 제2포트로 상기 각 입력정보 중 라이트 데이터를 수신하여 상기 컨트롤 로직으로 전송하거나, 상기 메모리 셀 어레이로부터 리드된 리드 데이터를 출력하는 데이터 입출력 인터페이스부를 더 포함할 수 있다.
상기 컨트롤 로직은 상기 명령주소 입출력 인터페이스부로부터 수신한 상기 명령, 상기 주소, 상기 우선순위 정보를 디코딩하는 명령주소 디코더, 디코딩된 상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐, 상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭, 상기 명령 큐로부터 상기 명령 및 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러, 상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하는 아비터 및 상기 아비터가 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하면 태그 응답을 생성하여 상기 명령주소 입출력 인터페이스부로 출력하는 태그 응답 생성부를 포함할 수 있다.
상기 컨트롤 로직은 상기 각 입력정보가 실행할 데이터 타입에 기초하여 상기 실행순서를 가변할 수 있다.
상기 컨트롤 로직은 상기 각 입력정보의 클락 카운트와 최대 타임아웃 카운트의 차이를 비교하여, 상기 차이가 작은 입력정보를 나머지 입력정보들보다 먼저 실행하도록 상기 실행순서를 가변할 수 있다.
상기 컨트롤 로직은 상기 우선순위 정보인 순위비트에 기초하여 상기 명령들의 실행순서를 가변할 수 있다.
상기 컨트롤 로직은 상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 상기 실행순서를 가변하고, 상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 상기 실행순서를 가변할 수 있다.
본 발명의 실시예들에 따른 메모리 장치 및 메모리 장치의 동작 방법은 호스트로부터 명령의 우선순위 정보를 받아, 그 우선순위에 따라서 명령들을 처리함으로써 메모리 장치의 동작 속도 나아가 시스템 전체의 성능 저하를 방지할 수 있는 효과가 있다.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 전체블럭도이다.
도 2는 도 1의 메모리 장치의 일 실시예를 구체적으로 나타낸 블럭도이다.
도 3는 도 1의 메모리 장치의 다른 실시예를 구체적으로 나타낸 블럭도이다.
도 4은 본 발명의 일실시예에 따른 메모리 장치가 호스트와 병렬로 송수신하는 데이터를 나타낸 개념도이다.
도 5는 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트와 직렬로 송수신하는 데이터를 나타낸 개념도이다.
도 6는 본 발명의 일 실시예에 따른 메모리 장치가 호스트로부터 수신된 다수의 명령들 각각에 대해 실행순서를 스케줄링하는 것을 나타낸 개념도이다.
도 7은 도 6의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호 타이밍도이다.
도 8은 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이다.
도 9은 도 8의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.
도 10은 본 발명의 또다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이다.
도 11은 도 10의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.
도 12는 본 발명의 또다른 일실시예에 따른 메모리 장치가 페이지 정책을 결정하는 동작방법을 나타낸 흐름도이다.
도 13은 도 12의 메모리 장치가 클로즈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 스케줄링하는 것을 나타낸 개념도이다.
도 14는 도 12의 메모리 장치가 오픈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 스케줄링하는 것을 나타낸 개념도이다.
도 15는 본 발명의 실시예들에 따른 메모리 장치의 동작방법을 나타낸 흐름도이다.
도 16은 다수의 알고리즘을 포함한 본 발명의 또다른 일실시예에 따른 메모리 장치를 나타낸 개념도이다.
도 17은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 일실시예를 나타낸 블럭도이다.
도 18은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 다른 실시예를 나타낸 블럭도이다.
도 19는 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 또다른 실시예를 나타낸 블럭도이다.
도 20은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.
도 21은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.
도 22는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 23은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 24는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 25는 도 1에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 개략적으로 나타낸 개념도이다.
도 26은 도 24에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 입체적으로 나타낸 개념도이다.
도 27은 본 발명의 다른 실시예들에 따른 메모리 장치의 전체 블럭도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명에 따른 실시 예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 전체블럭도이다.
도 1을 참조하면, 메모리 장치(10)는 호스트(1)와 연결된다. 메모리 장치(10)와 호스트(1)는 일 실시예에 따라 패킷 형태로 데이터를 주고받을 수도 있고, 다른 실시예에 따라 핀으로 구성된 포트로 데이터를 주고받을 수도 있다.
호스트(1)는 메모리 장치(10)로 입력 정보를 보낸다. 즉, 호스트(1)는 메모리 장치(10)에 명시적으로 리드 요청(Read), 라이트 요청(Write) 또는 이레이즈 요청(Erase) 등 다양한 입력 정보를 출력한다. 호스트(1)는 다양한 실시예에 따라 메모리 컨트롤러 및 CPU(Central Processing Unit) 또는 GPU(Graphic Processing Unit) 등을 포함한 프로세싱 유닛으로 구현될 수 있다. 입력정보는 명령, 주소, 우선순위 정보를 포함한다. 상기 명령이 라이트 명령일 경우 상기 입력정보는 라이트 데이터를 더 포함할 수 있다. 입력정보는 일 실시예에 따라 패킷형태일 수도 있고, 다른 실시예에 따라 기설정된 복수의 핀들로 구성된 포트로 전송되는 형태일 수도 있다.
메모리 장치(10)는 호스트(1)의 다양한 입력 정보에 따라 데이터를 리드(read)하거나, 라이트(write)하거나 삭제(erase)할 수 있다. 메모리 장치(10)는 메모리 입출력 인터페이스부(11), 컨트롤 로직(100) 및 메모리 셀 어레이(12)를 포함한다.
메모리 입출력 인터페이스부(11)는 호스트(1)와 컨트롤 로직(100) 사이에서 데이터 통신을 인터페이싱한다. 컨트롤 로직(100)는 메모리 셀 어레이(12)를 포함한 메모리 장치(10)의 동작을 제어한다.
메모리 셀 어레이(12)는 복수의 메모리 셀들 및 주변회로를 포함하여, 컨트롤 로직(100)의 제어에 따라 메모리 셀들에 데이터를 라이트(write)하고, 메모리 셀들로부터 데이터를 리드(read)하거나 메모리 셀들에 저장된 데이터를 이레이즈(erase)할 수 있다.
실시 예에 따라, 메모리 셀 어레이(12)에 포함된 다수의 메모리 셀들 각각은 휘발성 메모리, 즉, 각각은 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyrister RAM), Z-RAM(zero capacitor RAM) 또는 TTRAM(twin transistor RAM)으로 구현될 수 있다. 실시예에 따라, 메모리 셀들 각각은 비휘발성 메모리, 즉, 각각은 자기 메모리(magnetic random access memory(MRAM)), 스핀-전달 토크 MRAM(Spin-Transfer Torque MRAM(STT-MRAM), 저항성 메모리(resistive memory), 상변화 메모리(phase change random access memory(PRAM), 또는 플래시 메모리(flash memory)로 구현될 수 있다. 플래시 메모리는 NOR 플래시 메모리와 NAND 플래시 메모리로 분류될 수 있다.
도 2는 도 1의 메모리 장치를 구체적으로 나타낸 블럭도이다.
도 2를 참조하면, 컨트롤 로직(101)은 입력유닛(110), 출력 유닛(120) 및 컨트롤 파이(Control Phy,130)를 포함한다.
입력유닛(110)은 호스트(1)로부터 수신한 입력 정보의 우선순위 정보를 확인하여 각 명령의 실행순서를 가변하여 메모리 셀 어레이(12)로 출력한다. 즉, 메모리 셀 어레이(12)에 우선순위 정보에 따라 호스트로부터 수신한 데이터의 라이트(write) 명령, 호스트로부터 수신한 리드(read) 명령 또는 이레이즈(erase) 명령 등을 실행순서를 가변하고, 가변된 상기 실행순서대로 각 명령들을 메모리 셀 어레이(12)로 전달한다. 입력유닛(110)은 패킷 디코더(Packet Decoder,111), 명령 큐(CMD_QUEUE,112), 라이트 데이터 큐(WRITE DATA QUEUE,113), 뱅크컨트롤러(BANK CTRL,114), 아비터(ARBITER, 115), 뱅크상태블럭(BANK STATE, 116) 및 입력FIFO(INPUT_FIFO, 117)를 포함한다.
패킷 디코더(111)는 상기 호스트로부터 수신한 입력 정보를 디코딩(decoding)한다. 각 입력 정보는 메모리 셀 어레이(12)에서 처리되어야 할 명령(CMD), 상기 메모리 셀 어레이(12) 내 주소(ADD), 상기 명령의 실행순서에 대한 우선순위 정보 및 처리되어야 할 데이터(WR_DATA)를 포함한다. 리드 명령 또는 이레이즈 명령의 경우, 패킷 디코더(111)는 호스트(1)로부터 받은 명령(CMD) 및 주소(ADD)를 분리해낸다. 또한 라이트 요청(Write)인 경우, 패킷 디코더(111)는 명령(CMD),라이트(write) 주소 및 라이트 데이터(WR_DATA)를 라이트 데이터 큐(113)에 넣는다.
명령 큐(112)는 호스트(1)로부터 받은 다수의 입력 정보들 중 처리되지 않은(메모리 셀 어레이(12)로 출력되지 않은) 적어도 하나의 입력 정보를 저장해둔다. 이때 명령 큐(112)에는 입력 정보 중 명령, 주소 및 우선순위 정보가 저장된다. 실시 예에 따라 아비터(115)는 명령 큐(112) 내의 모든 명령들을 모니터링하거나 일부 명령들을 선택적으로 모니터링하여 실행순서를 결정할 수 있다 .
라이트 데이터 큐(113)는 상기 입력 정보가 라이트 명령(Write), 라이트 주소, 우선순위 정보 및 라이트 데이터를 포함할 때, 디코딩된 라이트 데이터(WR_DATA)를 수신하여 저장한다. 라이트 데이터 큐(113)는 상기 라이트 명령이 상기 메모리 셀 어레이(12)로 출력될 때 상기 라이트 데이터를 함께 출력한다. 즉, 라이트 데이터 큐(113)는 메모리 셀 어레이(12)에 라이트 명령이 전달되면, 상기 라이트 할 데이터(WR DATA OUT)를 컨트롤 파이(130)를 통해 메모리 셀 어레이(12)로 전송한다.
뱅크상태블럭(116)은 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장한다. 뱅크컨트롤러(114)는 뱅크상태블럭(116)에의 액세스를 제어한다. 뱅크컨트롤러(114)는 뱅크상태블럭(116)으로부터 뱅크의 현재 상태를 리드하여 아비터(115)에 알려주고, 아비터(115)로부터 각 뱅크의 업데이트된 상태를 수신하면 뱅크상태블럭(116)이 상기 업데이트된 상태를 저장하도록 제어한다.
일례로 메모리 셀 어레이(12)가 8개의 뱅크로 구성된 경우, 아비터(115)는 메모리 셀 어레이(12)의 각 뱅크(BANK0 ~ BANK7)의 현재 상태를 뱅크상태블럭(116)으로부터 리드하여 각 뱅크에 상응하는 주소에서 처리될 명령의 실행순서를 결정하는데 반영한다. 그리고 아비터(115)는 메모리 셀 어레이(12)에 대해 명령을 출력시, 상기 명령에 의해 변경되는 각 뱅크의 상태를 알려주어 상기 뱅크상태블럭 내 각 뱅크의 상태 정보를 업데이트한다. 설명의 편의를 위하여 8개의 뱅크를 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고 메모리 셀 어레이(12)의 뱅크 수에 따라 달라질 수 있다. 아비터(115)는 명령 큐(112)에 저장된 명령들의 우선순위 정보들 및 뱅크의 상태를 확인하여, 상기 우선순위가 높은 명령들이 먼저 실행될 수 있도록 각 명령들의 실행순서를 가변한다. 이때 아비터(115)는 명령 큐(112)의 명령들이 실제로 메모리 셀 어레이(12)에서 실행될 때 필요한 명령(CMD)을 추가적으로 만들어 각 명령들의 가변된 실행순서에 반영될 수 있다. 예를 들면, DRAM의 경우 CAS 명령 후 해당 뱅크를 프리챠지(precharge)하도록, 프리챠지(precharge)명령을 추가적으로 생성하여 스케줄에 반영할 수 있다. 또한 DRAM 셀이 포함된 닫혀있는(closed) 로우(row)에 액세스하기 위해 해당 뱅크를 액티브(active)하도록, 액티브(active) 명령을 추가적으로 생성하여 반영할 수 있다.
입력 FIFO(117)는 상기 메모리 입출력 인터페이스(11)로부터 수신되는 순서대로 입력 정보들을 출력한다.
출력 유닛(120)은 패킷생성블럭(PACKET_GEN,121), 출력FIFO(OUTPUT FIFO,122)를 포함한다.
패킷생성블럭(121)은 예를 들어 호스트(1)의 리드 명령(Read)에 상응하여 메모리 셀 어레이(12)로부터 리드된 데이터(R_DATA)를 수신하여 호스트(1)로 전송하기 위한 전송패킷(TX _PACKET)으로 생성한다.
출력 FIFO(122)는 패킷생성블럭(121)으로부터 수신받은 순서대로 상기 전송패킷을 메모리 입출력 인터페이스(11')로 출력한다. 컨트롤 파이(130)는 컨트롤 로직(101)가 메모리 셀 어레이(12)의 동작을 제어하기 위한 다양한 데이터들을 물리적으로 인터페이싱한다. 즉, 컨트롤 파이(130)는 상기 메모리 셀 어레이(12)와 연결되어 명령, 주소 및 데이터를 상기 메모리 셀 어레이(12)로 전달하고 상기 메모리 셀 어레이(12)로부터 처리결과를 수신할 수 있다.
도 3은 도 1의 메모리 장치의 다른 실시예를 구체적으로 나타낸 블록도이고, 도 4는 본 발명의 일실시예에 따른 메모리 장치가 호스트와 병렬로 송수신하는 데이터를 나타낸 개념도이다.
도 3 및 도 4를 참조하면, 실시예에 따라, 메모리 장치(10)는 호스트(1)와 병렬적으로 통신할 수 있다. 즉, 호스트(1) 및 메모리 장치(10)는 입력정보에 대해 명령(CMD), 어드레스(ADD), 데이터(DQ) 및 순위비트(PR)인 각각 별도의 핀을 갖춘 병렬포트를 통하여 통신할 수 있다.
도 3을 참조하면, 메모리 인터페이스부(11') 는 명령주소 입출력 인터페이스부(161) 및 데이터 입출력 인터페이스부(162)를 포함한다. 명령주소 입출력 인터페이스부(161)는 상기 각 입력정보 중 명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송한다. 데이터 입출력 인터페이스부(162)는 상기 각 입력정보 중 라이트 데이터(WR_DATA)를 수신하여 상기 컨트롤 로직(102)으로 전송하거나, 리드 데이터(RD_DATA)를 출력한다.
컨트롤 로직(102)은 명령/주소 디코더(CMD/ADD Decoder,131), 명령 큐(CMD_QUEUE,132), 태그 응답 생성부(133), 라이트 데이터 큐(WRITE DATA QUEUE,138), 뱅크컨트롤러(BANK CTRL,134), 아비터(ARBITER, 135), 뱅크상태블럭(BANK STATE, 136) 및 입력FIFO(INPUT_FIFO, 137), 데이터 입력FIFO(DINPUT_FIFO,139)를 포함한다.
입력FIFO(137), 데이터 입력FIFO(139)는 메모리 입출력장치(11')에서 출력되는 순서대로 명령,주소 및 우선순위 정보를 수신한다.
명령/주소 디코더(131)는 입력 정보를 디코딩(decoding)한다. 각 입력 정보는 메모리 셀 어레이(12)에서 처리되어야 할 명령(CMD), 상기 메모리 셀 어레이(12) 내 주소(ADD), 상기 명령의 실행순서에 대한 우선순위 정보(PR)로 분리하여 출력한다.
라이트 데이터 큐(WRITE_DATA_QUEUE,138)는 입력정보가 라이트 명령, 라이트 주소, 우선순위 정보 및 라이트 데이터를 포함할 경우, 상기 라이트 데이터(WR_DATA)를 저장한다. 라이트 데이터 큐(138)는 아비터(135)에서 상기 우선순위 정보에 기초하여 가변된 실행순서에 따라 라이트 명령을 메모리 셀 어레이로 출력할 때 저장해 둔 라이트 데이터(WR_DATA)를 함께 출력한다.
명령 큐(132)는 명령/주소 디코더(131)로부터 상기 명령(CMD), 주소(ADD) 및 우선순위 정보(PR)를 수신하여 저장한다.
뱅크 상태블럭(136)은 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장한다.
뱅크컨트롤러(134)는 뱅크상태블럭(136)에의 액세스를 제어한다. 뱅크컨트롤러(134)는 뱅크상태블럭(136)으로부터 뱅크의 현재 상태를 리드하여 아비터(135)에 알려주고, 아비터(135)로부터 각 뱅크의 업데이트된 상태를 수신하면 뱅크상태블럭(136)이 상기 업데이트된 상태를 저장하도록 제어한다.
일례로 메모리 셀 어레이(12)가 8개의 뱅크로 구성된 경우, 아비터(135)는 메모리 셀 어레이(12)의 각 뱅크(BANK0 ~ BANK7)의 현재 상태를 뱅크상태블럭(136)으로부터 리드하여 각 뱅크에 상응하는 주소에서 처리될 명령의 실행순서를 결정하는데 반영한다. 그리고 아비터(135)는 메모리 셀 어레이(12)에 대해 명령(CMD)을 출력시, 상기 명령(CMD)에 의해 변경되는 각 뱅크의 상태(State)를 알려주어 상기 뱅크상태블럭(136) 내 각 뱅크의 상태 정보를 업데이트한다. 설명의 편의를 위하여 8개의 뱅크를 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고 메모리 셀 어레이(12)의 뱅크 수에 따라 달라질 수 있다.
아비터(135)는 명령 큐(131)에 저장된 명령들의 우선순위 정보들(PR) 및 상기 뱅크의 상태를 확인하여, 뱅크 상태에 기초한 상기 우선순위가 높은 명령이 먼저 실행될 수 있도록 실행순서를 가변한다. 이때 아비터(135)는 명령 큐(132)의 명령들이 실제로 메모리 셀 어레이(12)에서 실행될 때 필요한 명령(CMD)을 추가적으로 만들어 가변된 실행순서에 반영될 수 있다. 예를 들면, DRAM의 경우 CAS 명령 후 해당 뱅크를 프리챠지(precharge)하도록, 프리챠지(precharge)명령을 추가적으로 생성하여 반영할 수 있다. 또한 DRAM 셀이 포함된 닫혀있는(closed) 로우(row)에 액세스하기 위해 해당 뱅크를 액티브(active)하도록, 액티브(active) 명령을 추가적으로 생성하여 반영할 수 있다.
컨트롤 로직(102)은 태그 응답 생성부(Tag Response Generator,133), 출력 FIFO(OUTPUT_FIFO,151) 및 데이터 출력FIFO(DOUTPUT_FIFO,152)을 더 포함할 수 있다.
태그 응답 생성부(133)는 아비터(135)가 가변된 실행순서에 따라 명령(CMD) 및 주소(ADD)를 메모 셀 어레이(12)로 출력하면 태그 응답(Tag Response)을 생성하여 명령주소 입출력 인터페이스(161)을 통해 출력한다.
출력 FIFO(OUTPUT_FIFO,151)는 태그 응답 생성부(133)로부터 출력되는 응답의 순서대로 태그 응답을 생성하여 명령/주소 입출력 인터페이스(161)로 출력한다.데이터 출력 FIFO(152)는 입력정보가 리드 명령,리드 주소 및 우선순위 정보를 포함할 경우, 리드 명령(Read)에 상응하여 메모리 셀 어레이(12)로부터 리드된 데이터(R_DATA)를 수신하여 데이터 입출력 인터페이스(162)로 출력한다.
도 5는 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트와 직렬로 송수신하는 데이터를 나타낸 개념도이다.
도 5를 참조하면, 실시예에 따라, 메모리 장치(10')는 호스트(1)와 직렬적으로 통신할 수 있다. 즉, 입력정보는 명령(CMD), 어드레스(ADD), 데이터(DQ) 및 순위비트(PR)를 포함한 패킷형태로 직렬포트를 통하여 송수신될 수 있다.
도 6은 본 발명의 일 실시예에 따른 메모리 장치가 호스트로부터 수신된 다수의 명령들 각각에 대해 실행순서를 가변하는 것을 나타낸 개념도이고, 도 7은 도 6의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호 타이밍도이다.
도 6을 참조하면, 명령 큐(112)는 입력 FIFO(117)를 통해 수신한 입력정보의 순서대로 각각 저장하게 된다. 명령 큐(112)는 상기 각 입력정보를 디코딩한 명령(CMD), 주소(ADD) 및 우선순위 정보를 함께 저장한다.
우선순위 정보는 상기 각 명령의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 명령에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호 등을 포함할 수 있다. 각 명령의 실행 순서는 상기 각 명령의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 명령에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호들 중 적어도 어느 하나 및 상기 명령이 실행될 뱅크의 현재 상태에 따라 결정될 수 있다.
예를 들어, 제1테이블(T1)에서 순위비트(PR)를 우선순위 정보로 사용할 경우를 살펴보자. 상기 예에서 메모리 장치(10)는 호스트(1)로부터 read(a,m,n,low),write(b,k,l,low), write(a,m,p,low), read(b,k,q,low), read(a,s,t,low), read(a,s,v,low), read(b,y,z,low) 및 read(a,w,x,high) 명령을 수신받았다고 하자. 컨트롤 로직(100)은 호스트(1)로부터 받은 입력정보들 중 명령, 주소 및 우선순위 정보들을 순차적으로 명령 큐(112)에 저장한다.
컨트롤 로직(100)은 메모리 셀 어레이(12)에 대한 동작 제어를 위해 상기 명령 뿐 아니라 리드 명령(read) 또는 라이트 명령(write)에 보조적으로 필요한 명령을 자체적으로 생성하여 실행할 수 있다. 예를 들어, 메모리 장치(10)가 DRAM을 메모리로 이용하는 경우, 리드 명령(read) 또는 라이트 명령(write)을 수행하기 위해 아비터(115)는 각 로우(Row)를 열고 닫는 액티브 명령(active)/프리챠지 명령(precharge)을 자체적으로 생성할 수 있다.
아비터(115)는 명령 큐(112)로부터 수신한 호스트(1)의 명령들과 자체적으로 생성한 액티브 명령(active)/프리챠지 명령(precharge)들을 우선순위 정보를 반영하여 실행순서를 가변한다. 그리고 아비터(115)는 상기 명령들(CMD)을 가변된 실행순서에 따라 컨트롤 파이(130)를 통해 메모리 셀 어레이(12)로 전송하여 동작을 제어한다.
상기 예에서 제2 테이블(T2)을 살펴보면, 아비터(115)는 호스트(1)로부터 수신된 입력정보들 중 명령들 각각에 대해 순위비트 및 자체적으로 생성한 명령을 모두 고려하여 active(a,w), active(b,k) read(a,w,x), read(b,k,q), write(b,k.l), pre-charge(a), pre-charge(b), active(a,m), active(b,y), read(a,m,n), read(b,y,z), write(a,m,p),pre-charge(a), pre-charge(b), active(a,s), read(a,s,t), read(a,s,v), pre-charge(a)와 같이 스케줄링 하여 메모리 셀 어레이(12)에 대한 동작을 제어한다.
즉, 아비터(115)는 동일 뱅크 내 인접한 셀에 대해 동작하기 위해, 레이턴시(latency)가 중시되는 명령, 즉 순위비트가 높은 명령(상기 예에서 read(a,w,k)을 우선순위가 낮은 명령들(Priority = low)보다 먼저 처리되도록 실행순서를 가변할 수 있다.
도 6을 살펴보면, 클락(CK)과 반전클락(CK#)이 변할 때마다 입력 FIFO(117)로부터 리드 명령(Read), 리드될 데이터의 주소(ADD) 및 순위비트(PR) 정보가 컨트롤 로직(100)으로 인가된다. 이때 상기 신호들을 실시예에 따라 각각 도 2에 도시된 바와 같이, 패킷 형태로 직렬적으로 수신할 수도 있고, 도 3에 도시된 바와 같이, 별도의 핀을 통해 병렬적으로 수신할 수도 있다.
아비터(115)는 패킷 디코더(111)에서 디코딩된 각각의 정보 중 상기 순위비트(PR) 또는 어드레스(ADD) 즉, 뱅크의 현재상태(State) 중 적어도 하나를 고려하여, 호스트의 명령과 자체적으로 생성한 명령을 스케줄링하여 높은 우선순위 정보를 가진 명령을 먼저 실행처리하고, 낮은 우선순위 정보를 가진 명령을 보다 나중에 실행한다. 이 경우, 동일 뱅크 내 액티브 상태인지 프리챠지 상태인지에 따라 상기 실행순서를 가변할 수 있다.
순위비트(PR)는 로우(low) 및 하이(high), 두가지 상태로 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고, 실시예에 따라 적어도 둘 이상의 멀티비트 형태로 구현될 수도 있다.
도 8은 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이고, 도 9는 도 8의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.
도 8을 참조하면, 명령 큐(112)는 호스트(1)로부터 수신한 순서대로 상기 명령(CMD),주소(ADD) 및 우선순위 정보(PR)를 각각 출력하게 된다. 이때 우선순위 정보는 도 6과 달리, 호스트(1)로부터 데이터 타입정보(Data type; 이하 DT) 방식으로 전송될 수 있다.
아비터(115)는 데이터 타입 정보(DT)에 따라 실행순서를 설정할 수 있다. 데이터 타입(DT)에 따라 레이턴시에 민감한 데이터들이 있을 수 있으므로, 이를 고려하여 실행순서를 정할 수 있다.
예를 들면, 데이터 타입이 총 4가지라고 가정할 때, 제1 DT에 대해서는 실행순서의 우선순위를 4로, 제2 DT에 대해서는 실행순서의 우선순위를 3으로, 제3 DT에 대해서는 실행순서의 우선순위를 2로, 제4 DT에 대해서는 실행순서의 우선순위를 1로 각각 설정할 수 있다.
도 9에 도시된 바와 같이, 클락(CK)과 반전클락(CK#)이 변할 때마다 호스트(1)로부터 입력정보, 즉, 리드 명령(Read), 리드될 데이터의 주소(ADD) 및 데이터타입 정보(DT)가 컨트롤 로직(100)로 인가된다. 이때 상기 신호들을 실시예에 따라 각각 도 2에 도시된 바와 같이, 패킷 형태로 직렬적으로 수신할 수도 있고, 도 3에 도시된 바와 같이, 별도의 핀을 통해 병렬적으로 수신할 수도 있다.
아비터(115)는 상기 데이터타입정보(DT) 또는 주소(ADD)에 기초하여 알게되는 뱅크의 현재상태 중 적어도 하나를 고려하여, 호스트의 명령과 자체적으로 생성한 명령을 실행순서에 반영하여 높은 우선순위에 속하는 데이터타입 정보를 가진 명령을 먼저 실행처리하고, 낮은 우선순위에 속하는 데이터타입 정보를 가진 명령을 보다 나중에 실행할 수 있도록 실행순서를 가변한다.이 경우, 동일 뱅크 내 액티브 상태인지 프리챠지 상태인지에 따라 상기 실행순서를 가변할 수 있다.
상기 실시예에서 데이터타입 정보(DT)는 4가지 타입의 경우로 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고, 실시예에 따라 복수의 타입으로 구현될 수 있다.
도 10은 본 발명의 또다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이고, 도 11은 도 10의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.
도 10을 살펴보면, 각 입력정보는 타임아웃카운트 정보(Time Out; 이하 TO)를 가질 수 있다. 타임아웃카운트 정보란 클락 카운트 수를 기준으로 최대 타임아웃 카운트를 넘기기 전까지 상기 각 입력정보가 실행되어야 하는 것을 말한다.
클락 카운트는 각 입력정보마다 호스트(1)로부터 수신한 시점부터 카운트 수가 증가되도록 한 것으로, 상기 입력정보의 컨트롤 로직(100) 내에서의 대기시간을 말한다. 예를 들어 리드 명령(Read)을 포함한 소정의 입력정보에 대해 타임아웃카운트 정보가 1로 설정되어 있다고 하면, 상기 리드 명령은 클락 카운트가 최대 타임아웃 카운트인 5회를 넘기기 전에 메모리 장치(10)에서 실행되어야 한다. 또한, 리드 명령(Read)을 포함한 소정의 다른 입력정보에 대해 타임아웃카운트 정보가 2로 설정되어 있다고 하면, 상기 리드 명령은 클락 카운트가 최대 타임아웃 카운트인 20회를 넘기기 전에 메모리 장치(10)에서 실행되어야 한다.
컨트롤 로직(100)는 도 11에 도시된 바와 같이, 호스트(1)로부터 클락신호(CK), 명령(CMD), 주소(ADD), 타임아웃카운트 정보(TO)를 수신할 수 있다. 아비터(115)는 상기 타임아웃카운트 정보(TO)에 기초하여 최대 타임아웃카운트에 이르렀는데도 메모리 장치(10) 내부에서 실행되지 않았다면 실행순서의 우선순위를 높일 수 있다. 즉, 상기 명령들의 현재 클락 카운트와 최대 타임아웃 카운트의 차이를 비교하여, 상기 차이가 작은 명령을 나머지 명령들보다 먼저 실행하도록 할 수 있다.
예를 들면, 도 11에 도시된 바와 같이, 리드 명령(Read)의 타임아웃카운트 정보가 '4'이면, 클락 카운트가 최대 타임아웃카운트 '100'에 가까워졌음에도 아직 메모리 장치(10)에서 실행되지 않았을 경우, 아비터(115)는 명령 큐(112)에 대기 중인 다른 명령들(현재 클락 카운트와 최대 타임아웃 카운트의 차이가 작은지 비교하여)보다 먼저 처리되도록 실행순서를 가변할 수 있다.
도 12는 본 발명의 또다른 일실시예에 따른 메모리 장치가 페이지 정책을 결정하는 동작방법을 나타낸 흐름도이고, 도 13은 도 12의 메모리 장치가 클로즈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 가변하는 것을 나타낸 개념도이며, 도 14는 도 12의 메모리 장치가 오픈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 가변하는 것을 나타낸 개념도이다. 일례로, 메모리셀이 DRAM일 경우라고 하자.
컨트롤 로직(100)는 메모리 셀 어레이(12)에 대한 액세스 동작시, 액세스하고자 하는 메모리 셀의 로컬리티(Locality)에 따라 페이지 정책을 변경할 수 있다. 예를 들어, 1 개의 CAS 명령만 수행하고 바로 해당 페이지를 프리챠지(precharge)할 경우, 바로 다음에 상기 페이지의 동일 로우(ROW)에 액세스할 때 상기 페이지를 액티브(active)시킨 후 액세스 해야 하므로 레이턴시 및 소모전류량의 효율이 문제된다. 따라서 액세스하려는 셀들 간의 로컬리티에 따라 오픈 페이지 정책 또는 클로즈 페이지 정책을 선택하여 수행한다.
도 11을 참조하면, 컨트롤 로직(100)는 먼저 기본 페이지 정책으로 셋팅된다(S10). 컨트롤 로직(100)는 호스트의 명령에 상응하는 주소를 확인하여 따라 기설정된 시간(t)동안 동일 로우(row)에 액세스하는 횟수(n)를 카운트한다(S11).
만약, 명령 큐에 있는 상기 주소들이 동일 로우(row)에 반복적으로 액세스하는 횟수(n)가 기설정된 임계치(thershold, p)보다 적을 경우에는 컨트롤 로직(100)는 클로즈 페이지 정책(close Page Policy)를 따른다(S13). 이때 클로즈 페이지 정책이란 해당 페이지 및 뱅크에 대한 명령 수행 후 즉시 프리챠지(precharge)하고 추후 해당 페이지 및 뱅크에 액세스해야 할 경우 다시 액티브(active)로 전환시키는 경우를 말한다.
명령 큐에 있는 상기 주소들이 동일 로우(row)에 반복적으로 액세스하는 횟수(n)가 기설정된 임계치(thershold, p)보다 많을 경우에는 컨트롤 로직(100)은 오픈 페이지 정책(Open Page Policy)를 따른다(S14). 이때 오픈 페이지 정책이란 해당 페이지 및 뱅크에 대한 명령 수행 후 즉시 프리챠지(precharge)하지 않고 액티브(active) 상태로 두어 다음 명령 수행을 할 수 있는 경우을 말한다.
도 12를 참조하면, 클로즈 페이지 정책을 따를 경우, 제3 테이블(T3)에 도시된 바와 같이, 컨트롤 로직(100)는 호스트(1)의 첫번째 리드 명령 read(a,m,n)을 수신한다.
컨트롤 로직(100)는 상기 명령에 대해 제4 테이블(T4)에 도시된 바와 같이, 아비터(115, 실행 Sequence)에서 해당 메모리 셀이 위치한 뱅크 a, 로우(row) m을 열어(active) 리드 명령(read)을 실행한 뒤 즉시 상기 뱅크 a를 닫는다(precharge). 이어서 명령 큐(112)에 대기 중인 첫번째 쓰기 명령(write)은 상기 뱅크 a가 닫힌 후 아비터(115)를 통해 뱅크 b에 대해서 처리된 후, 상기 뱅크 b를 닫는다(precharge).
제4 테이블(T4)에서 명령 큐(112)에 대기 중인 두번째 쓰기 명령(write)은 상기 뱅크 a, 상기 뱅크 b가 각각 닫혀있으므로(precharged), 쓰기 명령을 처리하기 위해 대상 메모리 셀(bank b, row k, column p)을 다시 열어야(active) 한다.
즉, 메모리의 엑세스빈도가 낮은 경우(동일 로우(row)에 반복적으로 액세스 하는 횟수가 기설정된 임계치(p)보다 적으면), 컨트롤 로직(100)는 메모리 셀 어레이(12)에 대한 명령 처리시 클로즈 페이지 정책에 따라 실행순서를 가변하여 명령을 수행한다.
도 14를 참조하면, 오픈 페이지 정책을 따를 경우, 제5테이블(T5)에 도시된 바와 같이, 컨트롤 로직(100)는 첫번째 리드 명령 read(a,m,n)을 수신한다.
컨트롤 로직(100)는 제6테이블(T6)에 도시된 바와 같이, 아비터(115, 실행 Sequence)에서 해당 메모리 셀이 위치한 뱅크 a, 로우(row) m을 열어(active) 리드 명령(read)을 실행한다. 그러나 도 13의 제4테이블(T)과 달리 컨트롤 로직(100)는 즉시 상기 뱅크 a를 닫지(precharge) 않고, 명령 큐(112)에 대기하고 있던 나머지 명령들 write(b,k,l),write(b,k,p), read(a,m,q)를 수행한다.
즉, 인접한 메모리 셀들에 반복적으로 액세스 하는 횟수가 기설정된 임계치(p)보다 크면 로컬리티(Locality)가 높으므로, 한번 열었던(active) 페이지에 대해 동일 뱅크의 다른 로우에 CAS 명령이 있거나 기설정된 시간(t)이 경과되기 전까지는 열어둔다. 그 결과 페이지를 여는데(active) 필요한 전류 소모량 및 레이턴시가 감소될 수 있다.
그러나 액세스하려는 메모리 셀들의 로컬리티(locality)가 적을 경우(즉, 동일 로우에 대한 메모리 엑세스가 적을 경우) 해당 페이지를 계속 열어두게 되면, 전류 소모가 커지게 될 수 있으므로, 로컬리티(lcoality)에 따라 다시 클로즈 페이지 정책으로 바꾼다.
상기 실시예는 데이터의 로컬리티에 따라 페이지 정책을 변경하는 것으로 설명하였으나 본 발명의 실시예가 이에 한정되지는 아니하고, 도 13의 클로즈 페이지 정책 또는 도 14의 오픈 페이지 정책 중 어느 정책을 따른 것일지는 다양한 실시예에 따라 호스트로부터 모드 레지스터 셋팅에 기초한 제어, 호스트로부터의 명령(request,CMD)에 따른 제어, 메모리 장치의 파워 상태, 메모리 엑세스 빈도, 메모리 장치의 동작 주파수, 명령 큐(112)에 대기 중인 페이지의 수 등을 기초로 하여 정해질 수 있다.
페이지 정책은 시스템이 수행하는 연산의 종류에 따라 수행 속도를 증가시키기 위해 변경될 수 있다. 다양한 실시예에 따라 메모리 장치(10)가 모드 레지스터를 변경하거나, 호스트(1)가 페이지 정책 변경 명령을 메모리 장치로 전송함으로써 페이지 정책이 변경될 수 있다.
또한, 페이지 정책은 메모리 장치에서 리드/라이트 동작이 실행되고 있지 않을 때 변경될 수 있다. 메모리 장치에서 리드/라이트 동작이 실행되고 있지 않을 때 페이지를 오픈(open) 상태로 두면, 페이지를 클로즈(close) 상태로 두는 경우보다 대기 전류가 더 커질 수 있다. 메모리 장치는 메모리 액세스 빈도가 낮거나 동작 주파수가 낮은 때에는 클로즈 페이지 정책으로 자동적으로 전환될 수 있다. 그 결과 메모리 장치의 소비전력이 줄어드는 효과가 있다.
도 14는 본 발명의 실시예들에 따른 메모리 장치의 동작방법을 나타낸 흐름도이다.
도 14를 참조하면, 메모리 장치(10)는 먼저 호스트로부터 명령(CMD), 주소(ADD) , 및 우선순위 정보(PR)를 포함한 입력 정보들을 수신받는다.(S20). 메모리 장치(10)는 상기 각 입력 정보는 디코딩한다.(라이트 명령일 경우 라이트 데이터(WDATA) 포함될 수 있다)(S21)
메모리 장치(10)는 상기 주소들에 상응하는 뱅크들의 상태정보 및 상기 우선순위 정보들을 각각 확인한다(S22). 그리고 뱅크의 상태정보 및 우선순위 정보 중 적어도 하나에 기초하여 실행순서를 가변한다(S23). 즉, 레이턴시에 민감하여 높은 우선순위 정보를 갖는 명령은 실행순서를 앞당기고, 낮은 우선순위 정보를 갖는 명령은 실행순서를 미룰 수 있다. 이때 우선순위 정보는 상기 각 입력 정보의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 입력 정보에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호 등을 포함할 수 있다.
일례로, 메모리 장치(10)는 상기 각 명령(CMD)이 처리할 각 데이터의 데이터 타입에 기초하여 상기 명령들의 실행순서를 상기 우선순위가 높은 순서대로 실행순서를 가변할 수 있다.
일례로, 메모리 장치(10)는상기 각 명령마다 상기 호스트로부터 각 입력정보를 수신한 시점부터 클락 카운트를 증가시켜, 실행 순서를 결정할 때 명령의 현재 클락 카운트를 확인하고 상기 명령들의 현재 클락 카운트와 최대 타임아웃 카운트의 차이를 비교한다. 그리고 메모리 장치(10)는 상기 차이가 작은 명령을 나머지 명령들보다 먼저 실행하도록 실행순서를 가변할 수 있다.
일례로 , 메모리 장치(10)는 순위비트에 기초하여 상기 명령들의 실행순서를 상기 우선순위가 높은 순서대로 실행순서를 가변할 수 있다.
일례로, 메모리 장치(10)는기본 페이지 정책에 따라 입력정보의 처리순서를 가변 하되, 상기 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 실행순서를 가변할 수 있다. 그러나 상기 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 실행순서를 가변할 수 있다.
메모리 장치(10)는 상기 스케줄링 된 명령들 및 상기 각 명령에 상응하는 주소 및 데이터를 가변된 실행순서대로 메모리 셀 어레이(12)로 출력한다(S24). 메모리 셀 어레이(12)는 상기 가변된 실행순서에 따라 각각의 명령들을 해당 메모리 셀에서 실행한다. 그 결과, 레이턴시가 개선되어 메모리 장치(10)의 동작 속도가 빨라질 수 있고, 전류소모량도 줄일 수 있을 뿐 아니라 나아가 시스템 전체의 성능 저하를 방지할 수 있는 효과가 있다.
도 16은 다수의 알고리즘을 포함한 본 발명의 또다른 일실시예에 따른 메모리 장치를 나타낸 개념도이다.
도 16의 컨트롤 로직(200)은 적어도 둘 이상의 스케줄링 알고리즘부(220,230)와 선택부(210)를 포함할 수 있다.
선택부(210)는 각 입력 정보의 처리순서에 대한 순위비트, 데이터의 데이터 타입, 상기 각 입력 정보에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 중 적어도 하나를 선택한다.
각각의 알고리즘부(220,230)는 순위비트(PR)에 대한 설정 정보, 데이터타입(DT)에 대한 우선순위 설정 테이블 정보, 타임아웃카운트의 설정정보, 페이지 정책 설정 정보 등 각 특성에 따라 호스트로부터 수신한 입력정보를 각각 실행순서를 가변한다.
컨트롤 로직(200)는 선택된 알고리즘에 따라 메모리 셀 어레이(12)에 액세스 한다.
그 결과 컨트롤 로직(200)는 도 1 내지 도 14에서 설명한 것과 같이 다양한 알고리즘에 따라 호스트로부터 수신한 명령(CMD)의 실행순서를 가변하여, 메모리 장치(10")의 동작을 제어할 수 있다.
도 17은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 일실시예를 나타낸 블럭도이다.
도 17을 참조하면, 모듈(500)은 입출력인터페이스 장치(510) 및 복수의 메모리 장치들(550-1 ~ 550-4)을 포함할 수 있다.
입출력 인터페이스 장치(510)는 메모리 장치들(550)과 별도로 구현되어 호스트(1)와 통신할 수 있다.
도 18은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 다른 실시예를 나타낸 블럭도이다.
도 18을 참조하면, 모듈(600)은 복수의 메모리 장치들(610-1 ~ 610-5)을 포함할 수 있다. 복수의 메모리 장치들(610-1 ~ 610-5) 중 어느 하나(610-3)는 호스트(Host)와 직접 연결되어 통신할 수 있다. 각 메모리 장치(610)는 컨트롤 로직을 각각 포함하여, 복수의 메모리 장치들(610-1 ~ 610-5) 상호 간에 체인(chain) 방식으로 연결될 수 있다. 호스트(1)와 연결되지 않은 나머지 메모리 장치들(610)은 체인을 따라 간접적으로 호스트(1)와 통신할 수 있다.
실시예에 따라, 메모리 장치(610)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(610) 내의 일부로서 구현될 수도 있다.
도 19는 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 또다른 실시예를 나타낸 블럭도이다.
도 19를 참조하면, 모듈(700)은 복수의 메모리 장치들(720-1 ~ 720-5)과 복수의 메모리 장치들(720-1 ~ 720-5) 각각의 데이터 입출력을 인터페이싱하는 광학 인터페이스(Optical IO, 710)를 포함할 수 있다.
광학 인터페이스(710)는 복수의 메모리 장치들(720-1 ~ 720-5) 각각의 입출력 동작을 제어할 수 있는 입출력제어장치(미도시) 및 메모리 장치의 데이터 입출력을 데이터를 광신호로 변환시킬 수 있는 신호변환장치(미도시)를 포함할 수 있다.
광학 인터페이스(710)는 광학적 통신을 이용하여 메모리 장치들(720-1 ~ 720-5) 각각과 호스트 사이에서 데이터 교환을 제공한다. 광학 인터페이스(710)는 광섬유(optical fiber) 또는 도파관(waveguide)을 이용하여 데이터를 송수신할 수 있다. 상기 교환되는 데이터는 SATA(Serial ATA) 규격에 따르는 것과 같은 고속의 신호를 송수신하는 경우에 적합하며, 파장분할다중(Wavelength Division Multiplex) 방식으로 데이터를 송수신하는 것도 가능하다.
실시예에 따라, 메모리 장치(720)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(720) 내의 일부로서 구현될 수 있고 또한 메모리 장치(720)내 적층된 구조로 구현될 수도 있다.
도 20은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.
도 20을 참조하면, 데이터 처리 시스템(800)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
데이터 처리 시스템(800)은 메모리 장치(840)를 포함한다. 메모리 장치(840)는 메모리 장치(840)의 데이터 처리 동작을 제어하고 스케줄링할 수 있는 컨트롤 로직를 포함한다.
프로세서(820)는 입력 장치(830)를 통하여 입력된 데이터에 따라 메모리 장치(840)에 저장된 데이터를 디스플레이(810)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(830)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
프로세서(820)는 데이터 처리 시스템(800)의 전반적인 동작을 제어할 수 있다. 실시 예에 따라, 메모리 장치(840)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(840) 내의 일부로서 구현될 수 있고 또한 메모리 장치(850) 내 적층된 구조로 구현될 수도 있다.
도 21은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.
도 21을 참조하면, 데이터 처리 시스템(900)은 이동 전화기(cellular phone), 스마트 폰(smart phone), PDA(personal digital assistant), 또는 무선 통신 장치로 구현될 수 있다.
데이터 처리 시스템(900)은 메모리 장치(950)를 포함한다. 메모리 장치(950)는 메모리 장치(950)의 동작을 제어하고 처리 순서를 스케줄링할 수 있는 컨트롤 로직을 포함한다. 컨트롤 로직은 프로세서(940)의 제어에 따라 메모리 장치(950)의 데이터(DATA) 액세스 동작, 예컨대 프로그램 (program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작의 처리순서를 제어할 수 있다.
메모리 장치(950)에 프로그램된 페이지 데이터는 프로세서(940)와 컨트롤 로직(960)의 제어에 따라 디스플레이(930)를 통하여 디스플레이될 수 있다.
무선 송수신기(910)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(910)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(940)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 프로세서(940)는 무선 송수신기(910)로부터 출력된 신호를 처리하고 처리된 신호를 컨트롤 로직(960) 또는 디스플레이(930)로 전송할 수 있다. 컨트롤 로직(960)는 프로세서(940)에 의하여 처리된 신호를 메모리 장치(950)에 프로그램할 수 있다.
또한, 무선 송수신기(910)는 프로세서(940)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(920)는 프로세서(940)의 동작을 제어하기 위한 제어 신호 또는 프로세서(940)에 의하여 처리될 데이터(DATA)를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(940)는 컨트롤 로직(960)로부터 출력된 데이터(DATA), 무선 송수신기(910)로부터 출력된 데이터(DATA), 또는 입력 장치(920)로부터 출력된 데이터(DATA)가 디스플레이(930)를 통하여 디스플레이될 수 있도록 디스플레이(930)의 동작을 제어할 수 있다. 실시 예에 따라, 메모리 장치(950)의 동작을 제어하고 처리순서를 스케줄링 할 수 있는 컨트롤 로직는 메모리 장치(950) 내의 일부로서 구현될 수 있고 또한 메모리 장치(950) 내 적층된 구조로 구현될 수도 있다.
도 22는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 22를 참조하면, 데이터 처리 시스템(1000)은 이미지 처리 장치, 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기로 구현될 수 있다.
데이터 처리 시스템(1000)은 메모리 장치(1040)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작의 처리순서를 스케줄링 할 수 있는 컨트롤 로직을 포함한 메모리 장치(1040)를 포함한다.
데이터 처리 시스템(1000)의 센서(1010)는 이미지 센서,온도센서, 모션센서, 음성센서 등일 수 있다. 멀티미디어 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 프로세서(1020) 또는 메모리 장치(1040)로 전송된다. 프로세서(1020)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(1030)를 통하여 디스플레이되거나 또는 메모리 장치(1040)에 저장될 수 있다.
또한, 메모리 장치(1040)에 저장된 데이터는 프로세서(1010) 또는 컨트롤 로직의 제어에 따라 디스플레이(1030)를 통하여 디스플레이된다. 컨트롤 로직은 메모리 장치(1040)의 동작을 제어할 수 있다.
도 23은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 23을 참조하면, 데이터 처리 시스템(1100)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 데이터 처리 시스템(1100)은 메모리 장치(1120) 및 카드 인터페이스(1110)를 포함한다.
컨트롤 로직은 메모리 장치(1120)에 포함되어, 메모리장치(1120)와 카드 인터페이스(1110)의 데이터의 교환시 실행순서를 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(1110)는 SD (secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(1110)는 호스트(HOST,1)의 프로토콜에 따라 호스트(HOST,1)와 메모리 장치(1120) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(1110)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(HOST,1)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
데이터 처리 시스템(1100)이 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST,1)와 접속될 때, 호스트(HOST,1)는 카드 인터페이스(1110)를 통하여 메모리 장치(200)와 데이터 통신을 수행할 수 있다.
도 24는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.
도 24를 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(1200)는 RAID 컨트롤러(1210)와 복수의 모듈들(1220-1 ~ 1220-n; n는 자연수)을 포함할 수 있다.
복수의 메모리 모듈들(1220-1 ~ 1220-n) 각각은 도 23에 도시된 데이터 처리 시스템(1100)일 수 있다. 복수의 메모리 모듈들(1220-1 ~ 1220-n)은 RAID 어레이를 구성할 수 있다. 메모리 모듈들 각각은 메모리 모듈(1220-1~1220-n)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작의 처리순서를 스케줄링 할 수 있는 컨트롤 로직을 포함한다.
데이터 저장 장치(1220)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작시 RAID 컨트롤러(1210)는, 호스트로부터 출력된 프로그램 명령에 따라, 상기 호스트로부터 출력된 프로그램 데이터를 RAID 레벨 정보에 기초하여 복수의 RAID 레벨들 중에서 선택된 어느 하나의 RAID 레벨에 따라 복수의 메모리 모듈들(1220-1 ~ 1220-n) 중에서 어느 하나의 메모리 모듈로 출력할 수 있다.
또한, 읽기 동작시, RAID 컨트롤러(1210)는, 호스트로부터 출력된 읽기 명령에 따라, RAID 레벨 정보에 따라 복수의 RAID 레벨들 중에서 선택된 어느 하나의 RAID 레벨에 따라 복수의 메모리 모듈들(1220-1 ~ 1220-n) 중에서 어느 하나의 메모리 모듈로부터 읽혀진 데이터를 상기 호스트로 전송할 수 있다.
도 25는 도 1에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 개략적으로 나타낸 개념도이다.
도 25를 참조하면, 멀티-칩 패키지(1300)는 패키지 기판(1310)상에 순차적으로 적층되는 다수의 반도체 장치들(1330~1350, Chip #1~Chip #3)을 포함할 수 있다. 다수의 반도체 장치들(1330~1350) 각각은 메모리 장치일 수 있다. 메모리 장치는 상술한 휘발성 메모리 장치 또는 비휘발성 메모리 장치일수 있다. 본 발명의 실시예에 따른 컨트롤 로직은 다수의 반도체 장치들(1330~1350) 중 하나 이상의 반도체 장치의 내부에 구비될 수도 있고, 패키지 기판(1310) 상에 구현될 수도 있다. 다수의 반도체 장치들(1330~1350)간의 전기적 연결을 위해서, 실리콘 관통전극(TSV: Through-silicon via, 미도시), 연결선(미도시), 범프(bump, 미도시), 솔더 볼(1320) 등이 사용될 수 있다.
일례로, 도 17과 같이, 제1 반도체 장치(1330)는 로직 다이(logic die)로, 입출력 인터페이스 장치 및 컨트롤 로직을 포함하고, 제2 반도체 장치(1340)와 제3 반도체 장치(1350)는 복수의 메모리 장치가 적층된 다이(die)들로 각각 메모리 셀 어레이를 포함할 수 있다. 이때 제2 반도체 장치(1340)의 메모리 장치와 제3 반도체 장치(1350)는 실시예에 따라, 동일한 종류의 메모리 장치일 수도 있고, 다른 종류의 메모리 장치일 수도 있다.
다른 일례로, 도 18과 같이, 제1 반도체 장치 내지 제3 반도체 장치(1330~1350) 각각은 각각의 컨트롤 로직을 포함할 수 있다. 이때 컨트롤 로직은 실시예에 따라 메모리 셀 어레이와 동일한 다이(die)에 있을 수도 있고, 메모리 셀 어레이와 다른 다이(die)에 있을 수도 있다.
또다른 일례로, 도 19와 같이, 제1 반도체 장치(Die 1, 1330)는 광학 인터페이스 장치를 포함할 수 있다. 컨트롤 로직은 제1 반도체 장치(1330) 또는 제2 반도체 장치(1340)에 위치할 수 있고, 메모리 장치는 제2 반도체 장치(1340) 또는 제3 반도체 장치(1350)에 위치하여 컨트롤 로직과 실리콘 관통 전극(TSV)로 연결될 수 있다.
또한 상기 실시예들은 복수의 메모리 셀 어레이 다이가 적층된 구조로써 구현될 수 있다. 상기 적층된 구조로 구현함으로써 대역폭 증가로 인한 메모리 장치의 성능 향상, 메모리 장치가 차지하는 면적을 최소화함으로써 전력 소모 및 생산 비용을 감소시킬 수 있다.
도 26은 도 25에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 입체적으로 나타낸 개념도이다.
도 26을 참조하면, 멀티-칩 패키지(1300')는 실리콘 관통전극(TSV, 1360)을 통해 상호 연결된 적층 구조의 다수의 다이들(Die1~3, 1330~1350)을 포함한다. 다이들(Die1~3, 1330~1350) 각각은 메모리 장치(10)의 기능을 구현하기 위한 복수의 회로블록(미도시), 주변회로(Periphery circuit)를 포함할 수 있다. 반도체 장치(10)의 일예로써 메모리 셀 어레이를 포함하는 반도체 메모리 장치가 적용될 수 있으며, 도 1의 장치가 반도체 메모리 장치(10)인 경우 상기 다이들(1330~1350)은 셀 레이어로 지칭될 수 있으며, 복수의 회로블록은 메모리 블록으로 구현될 수 있다.
실리콘 관통전극(1360)은 구리(Cu) 등의 금속을 포함하는 전도성 물질로 이루어질 수 있고, 실리콘 기판의 중앙에 배치되며, 실리콘 기판은 실리콘 관통전극(1360)을 둘러싸고 있는 구조를 갖는다. 실리콘 관통전극(1360)과 실리콘 기판 사이에 절연영역(미도시)이 배치될 수 있다.
도 27은 본 발명의 다른 실시예들에 따른 메모리 장치의 전체블럭도이다.
도 27을 참고하면, 반도체 시스템(1400)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
반도체 시스템(1400)은 SoC(1400), 외부 메모리 장치(1420) 및 디스플레이 디바이스(1412)를 포함한다.
SoC(1400)는 디스플레이 컨트롤러(1401), ROM(read only memory; 1402), RAM(random access memory; 1403), 브릿지(1404), CPU(1405),클락생성기(1406), 클락컨트롤러(1405), GPU(1408) 및 버스(1409)를 포함할 수 있다. SoC(1400)는 도시된 구성요소 외에도 다른 구성요소, 예컨대, 전원 관리 유닛(power management unit), TV 프로세서 등을 더 포함할 수 있다.
CPU(1405)는 메모리(1404 또는 1420)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(1405)는 클락발생기(1406)로부터 출력된 e동작클락에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(1405)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
메모리(1420)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(1405) 내 메모리에 로드(load)될 수 있다.
ROM(1402)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(1402)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(1403)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(1420)에 저장된 프로그램들 및/또는 데이터는 CPU(1405)의 제어 또는 ROM(1402)에 저장된 부팅 코드(booting code)에 따라 RAM(1403)에 일시적으로 저장될 수 있다. RAM(1403)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
브릿지(Bridge,1404)는 내부 버스(1409)와 외부 메모리 장치(1420)의 I/O인터페이스가 인터페이스하기 위한 블록이다. 브릿지(1404)는 호스트(1400)와 메모리 장치(1420)간의 제반 데이터 교환을 제어한다. 예컨대, 브릿지(1404)는 호스트(1400)의 입력정보를 메모리 장치(1420)에 전달하여, 메모리 장치(1420)에 호스트(1400)의 입력정보에 따른 메모리 데이터를 쓰거나 데이터를 독출한다.
여기서, 호스트(1)는 CPU(1405), GPU(108) 또는 디스플레이 컨트롤러(1412)와 같은 마스터 장치일 수 있다.
메모리 장치(1420)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(1420)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(1420)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 외부 메모리 장치(1420)는 SoC(1400) 내부에 구비되는 내장 메모리일 수 있다.
각 구성 요소는 시스템 버스(1409)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(1412)는 디스플레이 컨트롤러(1401)에 로드된 멀티미디어를 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스는 LCD, LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다.
디스플레이 컨트롤러(1401)는 디스플레이 디바이스(1412)의 동작을 제어한다.
SoC(1400)는 시스템 온칩(SOC: System On chip)으로 구현될 수 있다.
또한 본 발명의 실시예들에 따른 메모리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1 : 호스트 10 : 메모리 장치
11 : 메모리 I/O 인터페이스 100 : 메모리 컨트롤러
110 : 입력 유닛 120 : 출력유닛
130 : 메모리 컨트롤러 파이
111 : 패킷 디코더 112 : 명령 큐
113 : 쓰기 데이터 큐 114 : 뱅크 컨트롤러
115 : 아비터 116 : 뱅크 상태부
117 : 입력 FIFO
121 : 패킷 생성부 122 : 출력 FIFO

Claims (10)

  1. 각각이 입력명령 그리고 상기 입력명령에 관한 타임아웃카운트 정보를 갖는 우선순위 정보를 포함하는 입력정보들을 수신하여, 상기 우선순위 정보에 따라 상기 입력정보들의 실행순서를 가변하는 컨트롤 로직; 및
    데이터를 저장하는 복수의 메모리 셀들을 포함하여 상기 실행순서대로 수신된 상기 입력정보들에 따라 해당 메모리 셀에서 동작을 수행하는 메모리 셀 어레이를 포함하되,
    상기 컨트롤 로직은:
    상기 입력정보들 각각이 상기 컨트롤 로직 내에서 대기한 대기시간을 나타내는 클락 카운트와 상기 입력정보들 각각의 상기 타임아웃카운트 정보에 따른 최대 타임아웃 카운트를 비교하고,
    상기 입력정보들 각각의 상기 클락 카운트와 상기 입력정보들 각각의 상기 최대 타임아웃 카운트 간의 차이에 기초하여 상기 실행순서를 가변하고,
    상기 입력명령을 수행하기 위한 액티브 명령 및 프리챠지 명령을 생성하고, 그리고
    상기 액티브 명령 및 상기 프리챠지 명령을 상기 우선순위 정보에 따라 가변된 상기 실행순서에 반영하는 메모리 장치.
  2. 제1항에 있어서, 상기 컨트롤 로직은
    패킷 형태로 수신한 상기 입력정보들 각각을 상기 입력명령, 주소 및 상기 우선순위 정보로 디코딩하는 패킷 디코더;
    상기 입력명령, 상기 주소, 및 상기 우선순위 정보를 저장하는 명령 큐;
    상기 메모리 셀 어레이 내 뱅크들 각각의 상태(state)를 저장하는 뱅크상태블럭;
    상기 입력명령 및 상기 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 뱅크들 각각의 상기 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러; 및
    상기 우선순위 정보에 따라 상기 입력명령의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 뱅크들 중 상기 주소에 대응하는 뱅크의 상태에 기초하여 상기 입력명령 및 상기 주소를 상기 메모리 셀 어레이로 전송하는 아비터를 포함하는 메모리 장치.
  3. 제1항에 있어서, 상기 컨트롤 로직은
    상기 입력정보들 각각이 라이트 명령, 라이트 주소, 상기 우선순위 정보 및 라이트 데이터를 포함한 경우, 상기 라이트 데이터를 수신하여 저장하고, 상기 실행순서에 따라 상기 라이트 명령이 상기 메모리 셀 어레이로 출력될 때 상기 라이트 데이터도 함께 출력하는 라이트 데이터 큐를 더 포함하는 메모리 장치.
  4. 제1항에 있어서, 상기 컨트롤 로직은
    상기 입력정보들 각각이 리드 명령, 리드 주소, 상기 우선순위 정보를 포함한 경우, 상기 메모리 셀 어레이로부터의 리드 데이터를 패킷 형태로 생성하여 출력하는 패킷 생성부를 더 포함하는 메모리 장치.
  5. 제1항에 있어서, 상기 메모리 장치는
    제1포트로 상기 입력정보들 중 상기 입력명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송하는 명령주소 입출력 인터페이스부; 및
    제2포트로 상기 입력정보들 중 라이트 데이터를 수신하여 상기 컨트롤 로직으로 전송하거나, 상기 메모리 셀 어레이로부터 리드된 리드 데이터를 출력하는 데이터 입출력 인터페이스부를 더 포함하는 메모리 장치.
  6. 제5항에 있어서, 상기 컨트롤 로직은
    상기 명령주소 입출력 인터페이스부로부터 수신한 상기 입력명령, 상기 주소, 상기 우선순위 정보를 디코딩하는 명령주소 디코더;
    디코딩된 상기 입력명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐;
    상기 메모리 셀 어레이 내 뱅크들 각각의 상태(state)를 저장하는 뱅크상태블럭;
    상기 명령 큐로부터 상기 입력명령 및 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 뱅크들 각각의 상기 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러;
    상기 우선순위 정보에 따라 상기 입력명령의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 뱅크들 중 상기 주소에 대응하는 뱅크의 상태에 기초하여 상기 입력명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하는 아비터; 및
    상기 아비터가 상기 입력명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하면 태그 응답을 생성하여 상기 명령주소 입출력 인터페이스부로 출력하는 태그 응답 생성부를 포함하는 메모리 장치.
  7. 제1항에 있어서, 상기 컨트롤 로직은
    상기 입력정보들 각각이 실행할 데이터 타입에 기초하여 상기 실행순서를 가변하는 메모리 장치.
  8. 제1항에 있어서, 상기 컨트롤 로직은
    상기 차이를 비교하여, 상기 입력정보들 중에서 상기 차이가 작은 입력정보를 나머지 입력정보들보다 먼저 실행하도록 상기 실행순서를 가변하는 메모리 장치.
  9. 제1항에 있어서, 상기 컨트롤 로직은
    상기 우선순위 정보인 순위비트에 기초하여 상기 입력정보들의 상기 실행순서를 가변하는 메모리 장치.
  10. 제1항에 있어서, 상기 컨트롤 로직은
    상기 입력정보들로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 상기 실행순서를 가변하고,
    상기 입력정보들로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 상기 실행순서를 가변하는 메모리 장치.
KR1020120145674A 2012-03-29 2012-12-13 메모리 장치 및 메모리 장치의 동작방법 KR102031952B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US13/837,519 US9134919B2 (en) 2012-03-29 2013-03-15 Memory device including priority information and method of operating the same
EP13161227.7A EP2645263B1 (en) 2012-03-29 2013-03-27 Memory device and method of operating the same
JP2013073033A JP6373559B2 (ja) 2012-03-29 2013-03-29 メモリ装置及びメモリ装置の動作方法
CN201310110042.6A CN103366801B (zh) 2012-03-29 2013-03-29 存储器装置及其操作方法
JP2018093779A JP2018152112A (ja) 2012-03-29 2018-05-15 メモリ装置及びメモリ装置の動作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261617271P 2012-03-29 2012-03-29
US61/617,271 2012-03-29

Publications (2)

Publication Number Publication Date
KR20130111188A KR20130111188A (ko) 2013-10-10
KR102031952B1 true KR102031952B1 (ko) 2019-10-14

Family

ID=49632867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120145674A KR102031952B1 (ko) 2012-03-29 2012-12-13 메모리 장치 및 메모리 장치의 동작방법

Country Status (2)

Country Link
JP (1) JP2018152112A (ko)
KR (1) KR102031952B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775214B2 (en) 2020-11-27 2023-10-03 SK Hynix Inc. Memory system for suspending and resuming execution of command according to lock or unlock request, and operating method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102597925B1 (ko) * 2015-11-27 2023-11-06 삼성전자주식회사 전자 시스템 및 전자 시스템의 동작 방법
KR20200119633A (ko) 2019-04-10 2020-10-20 에스케이하이닉스 주식회사 히스토리 기반 메모리 시스템 및 그 제어 방법
WO2023128479A1 (ko) * 2021-12-30 2023-07-06 주식회사 엘엑스세미콘 메모리 제어 시스템 및 메모리 제어 기능을 갖는 디스플레이 디바이스

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233503A1 (en) * 2002-04-14 2003-12-18 Yang Eric Kuo-Uei Data forwarding engine
JP2008287528A (ja) * 2007-05-18 2008-11-27 Renesas Technology Corp リクエスト調停装置及びメモリコントローラ
US20110179240A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab Access scheduler
JP2011197707A (ja) * 2010-03-17 2011-10-06 Seiko Epson Corp メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233503A1 (en) * 2002-04-14 2003-12-18 Yang Eric Kuo-Uei Data forwarding engine
JP2008287528A (ja) * 2007-05-18 2008-11-27 Renesas Technology Corp リクエスト調停装置及びメモリコントローラ
US20110179240A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab Access scheduler
JP2011197707A (ja) * 2010-03-17 2011-10-06 Seiko Epson Corp メモリー制御装置、メモリー制御システム、記録装置及びメモリー制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775214B2 (en) 2020-11-27 2023-10-03 SK Hynix Inc. Memory system for suspending and resuming execution of command according to lock or unlock request, and operating method thereof

Also Published As

Publication number Publication date
JP2018152112A (ja) 2018-09-27
KR20130111188A (ko) 2013-10-10

Similar Documents

Publication Publication Date Title
JP6373559B2 (ja) メモリ装置及びメモリ装置の動作方法
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
US10002668B2 (en) Memory device, memory module, and memory system
US9818707B2 (en) Stacked memory chip having reduced input-output load, memory module and memory system including the same
KR101719092B1 (ko) 하이브리드 메모리 디바이스
KR102401271B1 (ko) 메모리 시스템 및 그 동작 방법
KR102453542B1 (ko) 스킵 연산 모드를 지원하는 메모리 장치 및 그 동작 방법
US11036412B2 (en) Dynamically changing between latency-focused read operation and bandwidth-focused read operation
JP2014049135A (ja) 書き込みフェイルを減らすメモリ装置、それを含むメモリシステム及びその書き込み方法
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
US11232029B2 (en) Stacked memory device and operating method thereof
KR102491579B1 (ko) 메모리 장치, 메모리 모듈 및 메모리 시스템
US9275692B2 (en) Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input
JP2021043975A (ja) インターフェース回路並びにメモリ装置及びその動作方法
Khalifa et al. Memory controller architectures: A comparative study
KR20120130871A (ko) 메모리 시스템 및 그 리프레시 제어 방법
US20140331006A1 (en) Semiconductor memory devices
US11106559B2 (en) Memory controller and memory system including the memory controller
KR102345539B1 (ko) 내부 프로세스를 수행하는 메모리 장치 및 그 동작방법
KR20220032366A (ko) 가변적인 모드 설정을 수행하는 메모리 장치 및 그 동작방법
KR20240076574A (ko) 메모리 컨트롤러, 이를 포함하는 전자 시스템 및 메모리 액세스 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant