KR20130111188A - Memory device and operating method thereof - Google Patents
Memory device and operating method thereof Download PDFInfo
- Publication number
- KR20130111188A KR20130111188A KR1020120145674A KR20120145674A KR20130111188A KR 20130111188 A KR20130111188 A KR 20130111188A KR 1020120145674 A KR1020120145674 A KR 1020120145674A KR 20120145674 A KR20120145674 A KR 20120145674A KR 20130111188 A KR20130111188 A KR 20130111188A
- Authority
- KR
- South Korea
- Prior art keywords
- command
- memory device
- data
- address
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
Description
본 발명은 메모리 장치 및 메모리 장치의 동작방법에 관한 것으로, 보다 상세하게는 메모리 액세스를 더 효율화하기 위한 메모리 장치 및 메모리 장치의 동작방법에 관한 것이다.The present invention relates to a memory device and a method of operating the memory device, and more particularly, to a memory device and a method of operating the memory device to further improve memory access.
현재 메모리 장치는 호스트로부터 수신되는 명령을 처리하는 경우에 수신 순서에 따라 명령을 순차적으로 처리한다. 또한 호스트로부터 수신받은 명령은 아니나 호스트로부터 수신받은 명령의 처리를 위해 보조적으로 필요한 명령을 자체적으로 생성하여 실행한다. Currently, when processing a command received from a host, the memory device processes the command sequentially according to the reception order. In addition, it is not a command received from the host, but generates and executes a command itself necessary for processing a command received from the host.
즉, 메모리 장치가 읽기 명령(Read) 또는 쓰기 명령(Write)을 호스트로부터 수신하면, 메모리 장치는 읽기 명령 또는 쓰기 명령을 위해 메모리 셀 어레이의 각 로우(ROW)를 열고 닫는 액티브 명령(Active) 또는 프리차지 명령(Precharge)을 자체적으로 생성하여 실행한다. 메모리 장치가 상기와 같이 다양한 명령들을 실행하다 보면, 호스트에게 레이턴시(latency)가 중요한 읽기 명령 또는 쓰기 명령이 있을 경우, 이에 대한 메모리 장치의 응답이 매우 늦어질 수 있다. 그 결과 메모리 장치는 시스템이 요구하는 수준의 빠른 응답성 및 실시간성을 보장할 수 없으며, 이는 시스템 전체의 성능 저하로 이어질 수 있다.In other words, when the memory device receives a read command or a write command from the host, the memory device may be configured as an active command that opens and closes each row of the memory cell array for a read command or a write command. Create and execute a precharge command by itself. As the memory device executes various commands as described above, when there is a read command or a write command whose latency is important to the host, the memory device may respond very slowly. As a result, the memory device cannot guarantee the level of responsiveness and real-time required by the system, which may lead to performance degradation of the entire system.
따라서 본 발명이 이루고자 하는 기술적인 과제는 우선순위에 따라서 명령들을 처리함으로써 메모리 액세스를 효율화할 수 있는 메모리 장치 및 메모리 장치의 동작 방법을 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide a memory device and a method of operating the memory device which can improve memory access by processing instructions according to priorities.
본 발명의 일실시예에 따른 메모리 장치는 우선순위 정보를 갖는 입력정보를 수신하여, 상기 우선순위에 따라 상기 입력정보의 실행순서를 가변하는 컨트롤 로직 및 데이터를 저장하는 복수의 메모리 셀들을 포함하여 상기 실행순서대로 수신된 상기 각 입력정보에 따라 해당 메모리 셀에서 동작을 수행하는 메모리 셀 어레이를 포함한다.A memory device according to an embodiment of the present invention may include input memory having priority information, and a plurality of memory cells storing control logic and data for varying an execution order of the input information according to the priority. And a memory cell array configured to perform an operation on a corresponding memory cell according to the input information received in the execution order.
상기 컨트롤 로직은 패킷 형태로 수신한 상기 각 입력정보를 명령, 주소 및 상기 우선순위 정보로 디코딩하는 패킷 디코더, 상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐, 상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭, 상기 명령 및 상기 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러 및 상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 전송하는 아비터를 포함할 수 있다.The control logic is a packet decoder for decoding each input information received in the form of a packet into a command, an address and the priority information, a command queue for storing the command, the address and the priority information, and a bank in the memory cell array. A bank state block for storing respective states of the banks; a bank controller for reading or updating a state of each bank stored in the bank state block upon receiving the command and the address; The execution order of the respective commands may be varied according to the priority information, and the arbiter may be configured to transmit the command and the address to the memory cell array based on the execution order and the state of the corresponding bank.
상기 컨트롤 로직은 상기 입력정보가 라이트 명령, 라이트 주소, 상기 우선순위 정보 및 라이트 데이터를 포함한 경우, 상기 라이트 데이터를 수신하여 저장하고, 상기 실행순서에 따라 상기 라이트 명령이 상기 메모리 셀 어레이로 출력될 때 상기 라이트 데이터도 함께 출력하는 라이트 데이터 큐를 더 포함할 수 있다.When the input information includes a write command, a write address, the priority information, and write data, the control logic receives and stores the write data, and outputs the write command to the memory cell array according to the execution order. The write data queue may further include a write data queue for outputting the write data.
일례로 상기 메모리 장치는 제1 포트로 상기 각 입력정보 중 명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송하는 명령주소 입출력 인터페이스부 및 제2포트로 상기 각 입력정보 중 라이트 데이터를 수신하여 상기 컨트롤 로직으로 전송하거나, 상기 메모리 셀 어레이로부터 리드된 리드 데이터를 출력하는 데이터 입출력 인터페이스부를 더 포함할 수 있다.For example, the memory device may receive a command, an input / output interface unit for receiving a command, an address, and the priority information among the input information through a first port, and transmit the write data among the input information to a second port. The apparatus may further include a data input / output interface unit configured to receive and transmit data to the control logic or output read data read from the memory cell array.
상기 컨트롤 로직은 상기 명령주소 입출력 인터페이스부로부터 수신한 상기 명령, 상기 주소, 상기 우선순위 정보를 디코딩하는 명령주소 디코더, 디코딩된 상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐, 상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭, 상기 명령 큐로부터 상기 명령 및 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러, 상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하는 아비터 및 상기 아비터가 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하면 태그 응답을 생성하여 상기 명령주소 입출력 인터페이스부로 출력하는 태그 응답 생성부를 포함할 수 있다.The control logic may include a command address decoder for decoding the command, the address and the priority information received from the command address input / output interface unit, a command queue for storing the decoded command, the address and the priority information, and the memory. A bank state block for storing respective states for banks in a cell array; reading or updating the state of each bank stored in the bank state block upon receipt of the command and address from the command queue; a bank controller for updating and varying the execution order of the respective commands according to the priority information, and outputting the command and the address to the memory cell array based on the execution order and the state of the corresponding bank. And the arbiter outputs the command and the address to the memory cell array. Generating an answer in response to the tag generating the command output to the address input and output interfaces may include a.
상기 컨트롤 로직은 상기 각 입력정보가 실행할 데이터 타입에 기초하여 상기 실행순서를 가변할 수 있다.The control logic may vary the execution order based on a data type to be executed by each input information.
상기 컨트롤 로직은 상기 각 입력정보의 클락 카운트와 최대 타임아웃 카운트의 차이를 비교하여, 상기 차이가 작은 입력정보를 나머지 입력정보들보다 먼저 실행하도록 상기 실행순서를 가변할 수 있다.The control logic may vary the execution order such that the difference between the clock count and the maximum timeout count of each input information is executed before the remaining input information.
상기 컨트롤 로직은 상기 우선순위 정보인 순위비트에 기초하여 상기 명령들의 실행순서를 가변할 수 있다.The control logic may vary the execution order of the instructions based on the priority bits that are the priority information.
상기 컨트롤 로직은 상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 상기 실행순서를 가변하고, 상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 상기 실행순서를 가변할 수 있다. The control logic may vary the execution order of instructions corresponding to the addresses according to a close page policy when the number of consecutively decoded addresses belonging to the same row of the memory cell is less than or equal to a preset threshold. When the number of addresses decoded from the input information consecutively belongs to the same row of the memory cell is greater than a preset threshold, instructions corresponding to the addresses may vary according to an open page policy.
본 발명의 실시예들에 따른 메모리 장치 및 메모리 장치의 동작 방법은 호스트로부터 명령의 우선순위 정보를 받아, 그 우선순위에 따라서 명령들을 처리함으로써 메모리 장치의 동작 속도 나아가 시스템 전체의 성능 저하를 방지할 수 있는 효과가 있다.The memory device and a method of operating the memory device according to embodiments of the present invention may receive priority information of a command from a host, and process the commands according to the priority to prevent an operation speed of the memory device and performance degradation of the entire system. It can be effective.
도 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 is an overall block diagram of a memory device according to example embodiments.
FIG. 2 is a block diagram illustrating an example embodiment of the memory device of FIG. 1.
3 is a block diagram illustrating another embodiment of the memory device of FIG. 1 in detail.
4 is a conceptual diagram illustrating data transmitted and received by a memory device in parallel with a host according to an embodiment of the present invention.
5 is a conceptual diagram illustrating data transmitted and received serially with a host by a memory device according to another exemplary embodiment of the present invention.
FIG. 6 is a conceptual diagram illustrating a memory device scheduling execution order for each of a plurality of commands received from a host according to an embodiment of the present invention.
FIG. 7 is a signal timing diagram illustrating data that a memory device of FIG. 6 receives from a host.
8 illustrates a priority table required for a memory device to determine an execution order of each of a plurality of commands received from a host according to another embodiment of the present invention.
FIG. 9 is a signal illustrating data received from a host by the memory device of FIG. 8.
FIG. 10 illustrates a priority table required for a memory device to determine an execution order of each of a plurality of instructions received from a host, according to another exemplary embodiment.
FIG. 11 is a signal illustrating data received from a host by the memory device of FIG. 10.
12 is a flowchart illustrating an operation method of determining a page policy by a memory device according to another exemplary embodiment of the present invention.
FIG. 13 is a conceptual diagram illustrating that the memory device of FIG. 12 schedules an execution order for each of a plurality of instructions according to a closed page policy.
FIG. 14 is a conceptual diagram illustrating that the memory device of FIG. 12 schedules an execution order for each of a plurality of instructions according to an open page policy.
15 is a flowchart illustrating a method of operating a memory device according to example embodiments.
16 is a conceptual diagram illustrating a memory device according to another embodiment of the present invention including a plurality of algorithms.
17 is a block diagram illustrating an embodiment of a module including a plurality of memory devices according to example embodiments of the inventive concepts.
18 is a block diagram illustrating another embodiment of a module including a plurality of memory devices according to embodiments of the present invention.
19 is a block diagram illustrating another embodiment of a module including a plurality of memory devices according to embodiments of the present invention.
20 illustrates an embodiment of a data processing system including the memory device shown in FIG. 1.
FIG. 21 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
FIG. 22 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
FIG. 23 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
24 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
FIG. 25 is a conceptual diagram schematically illustrating an embodiment of a multi-chip package including the memory device shown in FIG. 1.
FIG. 26 is a conceptual diagram three-dimensionally illustrating an embodiment of a multi-chip package including the memory device shown in FIG. 24.
27 is a block diagram illustrating a memory device according to other embodiments of the present invention.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다. Specific structural and functional descriptions of the embodiments of the present invention disclosed herein are for illustrative purposes only and are not to be construed as limitations of the scope of the present invention. And should not be construed as limited to the embodiments set forth herein or in the application.
본 발명에 따른 실시 예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. Since the embodiments according to the present invention may be variously modified and have various forms, specific embodiments are illustrated in the drawings and described in detail in the present specification or application. It is to be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms of disclosure, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first and / or second may be used to describe various components, but the components should not be limited by the terms. The terms are intended to distinguish one element from another, for example, without departing from the scope of the invention in accordance with the concepts of the present invention, the first element may be termed the second element, The second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가가능성을 미리 배제하지 않는 것으로 이해되어야 한다. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, terms such as "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof that is implemented, and that one or more other features or numbers are present. It is to be understood that the present invention does not exclude, in advance, the possibility of addition, presence of steps, actions, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined herein .
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 전체블럭도이다.1 is an overall block diagram of a memory device according to example embodiments.
도 1을 참조하면, 메모리 장치(10)는 호스트(1)와 연결된다. 메모리 장치(10)와 호스트(1)는 일 실시예에 따라 패킷 형태로 데이터를 주고받을 수도 있고, 다른 실시예에 따라 핀으로 구성된 포트로 데이터를 주고받을 수도 있다.Referring to FIG. 1, the
호스트(1)는 메모리 장치(10)로 입력 정보를 보낸다. 즉, 호스트(1)는 메모리 장치(10)에 명시적으로 리드 요청(Read), 라이트 요청(Write) 또는 이레이즈 요청(Erase) 등 다양한 입력 정보를 출력한다. 호스트(1)는 다양한 실시예에 따라 메모리 컨트롤러 및 CPU(Central Processing Unit) 또는 GPU(Graphic Processing Unit) 등을 포함한 프로세싱 유닛으로 구현될 수 있다. 입력정보는 명령, 주소, 우선순위 정보를 포함한다. 상기 명령이 라이트 명령일 경우 상기 입력정보는 라이트 데이터를 더 포함할 수 있다. 입력정보는 일 실시예에 따라 패킷형태일 수도 있고, 다른 실시예에 따라 기설정된 복수의 핀들로 구성된 포트로 전송되는 형태일 수도 있다.The
메모리 장치(10)는 호스트(1)의 다양한 입력 정보에 따라 데이터를 리드(read)하거나, 라이트(write)하거나 삭제(erase)할 수 있다. 메모리 장치(10)는 메모리 입출력 인터페이스부(11), 컨트롤 로직(100) 및 메모리 셀 어레이(12)를 포함한다.The
메모리 입출력 인터페이스부(11)는 호스트(1)와 컨트롤 로직(100) 사이에서 데이터 통신을 인터페이싱한다. 컨트롤 로직(100)는 메모리 셀 어레이(12)를 포함한 메모리 장치(10)의 동작을 제어한다. The memory input /
메모리 셀 어레이(12)는 복수의 메모리 셀들 및 주변회로를 포함하여, 컨트롤 로직(100)의 제어에 따라 메모리 셀들에 데이터를 라이트(write)하고, 메모리 셀들로부터 데이터를 리드(read)하거나 메모리 셀들에 저장된 데이터를 이레이즈(erase)할 수 있다.The
실시 예에 따라, 메모리 셀 어레이(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 플래시 메모리로 분류될 수 있다.In some example embodiments, each of the plurality of memory cells included in the
도 2는 도 1의 메모리 장치를 구체적으로 나타낸 블럭도이다.FIG. 2 is a block diagram illustrating the memory device of FIG. 1 in detail.
도 2를 참조하면, 컨트롤 로직(101)은 입력유닛(110), 출력 유닛(120) 및 컨트롤 파이(Control Phy,130)를 포함한다. Referring to FIG. 2, the
입력유닛(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)를 포함한다. The input unit 110 checks the priority information of the input information received from the
패킷 디코더(111)는 상기 호스트로부터 수신한 입력 정보를 디코딩(decoding)한다. 각 입력 정보는 메모리 셀 어레이(12)에서 처리되어야 할 명령(CMD), 상기 메모리 셀 어레이(12) 내 주소(ADD), 상기 명령의 실행순서에 대한 우선순위 정보 및 처리되어야 할 데이터(WR_DATA)를 포함한다. 리드 명령 또는 이레이즈 명령의 경우, 패킷 디코더(111)는 호스트(1)로부터 받은 명령(CMD) 및 주소(ADD)를 분리해낸다. 또한 라이트 요청(Write)인 경우, 패킷 디코더(111)는 명령(CMD),라이트(write) 주소 및 라이트 데이터(WR_DATA)를 라이트 데이터 큐(113)에 넣는다.The
명령 큐(112)는 호스트(1)로부터 받은 다수의 입력 정보들 중 처리되지 않은(메모리 셀 어레이(12)로 출력되지 않은) 적어도 하나의 입력 정보를 저장해둔다. 이때 명령 큐(112)에는 입력 정보 중 명령, 주소 및 우선순위 정보가 저장된다. 실시 예에 따라 아비터(115)는 명령 큐(112) 내의 모든 명령들을 모니터링하거나 일부 명령들을 선택적으로 모니터링하여 실행순서를 결정할 수 있다 .The
라이트 데이터 큐(113)는 상기 입력 정보가 라이트 명령(Write), 라이트 주소, 우선순위 정보 및 라이트 데이터를 포함할 때, 디코딩된 라이트 데이터(WR_DATA)를 수신하여 저장한다. 라이트 데이터 큐(113)는 상기 라이트 명령이 상기 메모리 셀 어레이(12)로 출력될 때 상기 라이트 데이터를 함께 출력한다. 즉, 라이트 데이터 큐(113)는 메모리 셀 어레이(12)에 라이트 명령이 전달되면, 상기 라이트 할 데이터(WR DATA OUT)를 컨트롤 파이(130)를 통해 메모리 셀 어레이(12)로 전송한다.The
뱅크상태블럭(116)은 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장한다. 뱅크컨트롤러(114)는 뱅크상태블럭(116)에의 액세스를 제어한다. 뱅크컨트롤러(114)는 뱅크상태블럭(116)으로부터 뱅크의 현재 상태를 리드하여 아비터(115)에 알려주고, 아비터(115)로부터 각 뱅크의 업데이트된 상태를 수신하면 뱅크상태블럭(116)이 상기 업데이트된 상태를 저장하도록 제어한다.The bank state block 116 stores respective states for the banks in the memory cell array. The
일례로 메모리 셀 어레이(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) 명령을 추가적으로 생성하여 반영할 수 있다.For example, when the
입력 FIFO(117)는 상기 메모리 입출력 인터페이스(11)로부터 수신되는 순서대로 입력 정보들을 출력한다.The
출력 유닛(120)은 패킷생성블럭(PACKET_GEN,121), 출력FIFO(OUTPUT FIFO,122)를 포함한다.The
패킷생성블럭(121)은 예를 들어 호스트(1)의 리드 명령(Read)에 상응하여 메모리 셀 어레이(12)로부터 리드된 데이터(R_DATA)를 수신하여 호스트(1)로 전송하기 위한 전송패킷(TX _PACKET)으로 생성한다.The
출력 FIFO(122)는 패킷생성블럭(121)으로부터 수신받은 순서대로 상기 전송패킷을 메모리 입출력 인터페이스(11')로 출력한다. 컨트롤 파이(130)는 컨트롤 로직(101)가 메모리 셀 어레이(12)의 동작을 제어하기 위한 다양한 데이터들을 물리적으로 인터페이싱한다. 즉, 컨트롤 파이(130)는 상기 메모리 셀 어레이(12)와 연결되어 명령, 주소 및 데이터를 상기 메모리 셀 어레이(12)로 전달하고 상기 메모리 셀 어레이(12)로부터 처리결과를 수신할 수 있다.The
도 3은 도 1의 메모리 장치의 다른 실시예를 구체적으로 나타낸 블록도이고, 도 4는 본 발명의 일실시예에 따른 메모리 장치가 호스트와 병렬로 송수신하는 데이터를 나타낸 개념도이다.3 is a block diagram illustrating another embodiment of the memory device of FIG. 1 in detail. FIG. 4 is a conceptual diagram illustrating data transmitted and received in parallel with a host by the memory device according to an embodiment of the present invention.
도 3 및 도 4를 참조하면, 실시예에 따라, 메모리 장치(10)는 호스트(1)와 병렬적으로 통신할 수 있다. 즉, 호스트(1) 및 메모리 장치(10)는 입력정보에 대해 명령(CMD), 어드레스(ADD), 데이터(DQ) 및 순위비트(PR)인 각각 별도의 핀을 갖춘 병렬포트를 통하여 통신할 수 있다. 3 and 4, according to an embodiment, the
도 3을 참조하면, 메모리 인터페이스부(11') 는 명령주소 입출력 인터페이스부(161) 및 데이터 입출력 인터페이스부(162)를 포함한다. 명령주소 입출력 인터페이스부(161)는 상기 각 입력정보 중 명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송한다. 데이터 입출력 인터페이스부(162)는 상기 각 입력정보 중 라이트 데이터(WR_DATA)를 수신하여 상기 컨트롤 로직(102)으로 전송하거나, 리드 데이터(RD_DATA)를 출력한다.Referring to FIG. 3, the
컨트롤 로직(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)를 포함한다. The control logic 102 includes a command / address decoder (CMD / ADD Decoder, 131), a command queue (CMD_QUEUE, 132), a tag response generator (133), a write data queue (WRITE DATA QUEUE, 138), and a bank controller (BANK). CTRL, 134), arbiter (ARBITER, 135), bank status block (BANK STATE, 136), input FIFO (INPUT_FIFO, 137), and data input FIFO (DINPUT_FIFO, 139).
입력FIFO(137), 데이터 입력FIFO(139)는 메모리 입출력장치(11')에서 출력되는 순서대로 명령,주소 및 우선순위 정보를 수신한다.The
명령/주소 디코더(131)는 입력 정보를 디코딩(decoding)한다. 각 입력 정보는 메모리 셀 어레이(12)에서 처리되어야 할 명령(CMD), 상기 메모리 셀 어레이(12) 내 주소(ADD), 상기 명령의 실행순서에 대한 우선순위 정보(PR)로 분리하여 출력한다.The command /
라이트 데이터 큐(WRITE_DATA_QUEUE,138)는 입력정보가 라이트 명령, 라이트 주소, 우선순위 정보 및 라이트 데이터를 포함할 경우, 상기 라이트 데이터(WR_DATA)를 저장한다. 라이트 데이터 큐(138)는 아비터(135)에서 상기 우선순위 정보에 기초하여 가변된 실행순서에 따라 라이트 명령을 메모리 셀 어레이로 출력할 때 저장해 둔 라이트 데이터(WR_DATA)를 함께 출력한다.The write
명령 큐(132)는 명령/주소 디코더(131)로부터 상기 명령(CMD), 주소(ADD) 및 우선순위 정보(PR)를 수신하여 저장한다.The
뱅크 상태블럭(136)은 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장한다. The bank state block 136 stores respective states for the banks in the memory cell array.
뱅크컨트롤러(134)는 뱅크상태블럭(136)에의 액세스를 제어한다. 뱅크컨트롤러(134)는 뱅크상태블럭(136)으로부터 뱅크의 현재 상태를 리드하여 아비터(135)에 알려주고, 아비터(135)로부터 각 뱅크의 업데이트된 상태를 수신하면 뱅크상태블럭(136)이 상기 업데이트된 상태를 저장하도록 제어한다.The bank controller 134 controls access to the
일례로 메모리 셀 어레이(12)가 8개의 뱅크로 구성된 경우, 아비터(135)는 메모리 셀 어레이(12)의 각 뱅크(BANK0 ~ BANK7)의 현재 상태를 뱅크상태블럭(136)으로부터 리드하여 각 뱅크에 상응하는 주소에서 처리될 명령의 실행순서를 결정하는데 반영한다. 그리고 아비터(135)는 메모리 셀 어레이(12)에 대해 명령(CMD)을 출력시, 상기 명령(CMD)에 의해 변경되는 각 뱅크의 상태(State)를 알려주어 상기 뱅크상태블럭(136) 내 각 뱅크의 상태 정보를 업데이트한다. 설명의 편의를 위하여 8개의 뱅크를 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고 메모리 셀 어레이(12)의 뱅크 수에 따라 달라질 수 있다. For example, when the
아비터(135)는 명령 큐(131)에 저장된 명령들의 우선순위 정보들(PR) 및 상기 뱅크의 상태를 확인하여, 뱅크 상태에 기초한 상기 우선순위가 높은 명령이 먼저 실행될 수 있도록 실행순서를 가변한다. 이때 아비터(135)는 명령 큐(132)의 명령들이 실제로 메모리 셀 어레이(12)에서 실행될 때 필요한 명령(CMD)을 추가적으로 만들어 가변된 실행순서에 반영될 수 있다. 예를 들면, DRAM의 경우 CAS 명령 후 해당 뱅크를 프리챠지(precharge)하도록, 프리챠지(precharge)명령을 추가적으로 생성하여 반영할 수 있다. 또한 DRAM 셀이 포함된 닫혀있는(closed) 로우(row)에 액세스하기 위해 해당 뱅크를 액티브(active)하도록, 액티브(active) 명령을 추가적으로 생성하여 반영할 수 있다.The
컨트롤 로직(102)은 태그 응답 생성부(Tag Response Generator,133), 출력 FIFO(OUTPUT_FIFO,151) 및 데이터 출력FIFO(DOUTPUT_FIFO,152)을 더 포함할 수 있다.The control logic 102 may further include a
태그 응답 생성부(133)는 아비터(135)가 가변된 실행순서에 따라 명령(CMD) 및 주소(ADD)를 메모 셀 어레이(12)로 출력하면 태그 응답(Tag Response)을 생성하여 명령주소 입출력 인터페이스(161)을 통해 출력한다.The
출력 FIFO(OUTPUT_FIFO,151)는 태그 응답 생성부(133)로부터 출력되는 응답의 순서대로 태그 응답을 생성하여 명령/주소 입출력 인터페이스(161)로 출력한다.데이터 출력 FIFO(152)는 입력정보가 리드 명령,리드 주소 및 우선순위 정보를 포함할 경우, 리드 명령(Read)에 상응하여 메모리 셀 어레이(12)로부터 리드된 데이터(R_DATA)를 수신하여 데이터 입출력 인터페이스(162)로 출력한다. The output FIFO (OUTPUT_FIFO) 151 generates tag responses in the order of the responses output from the
도 5는 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트와 직렬로 송수신하는 데이터를 나타낸 개념도이다.5 is a conceptual diagram illustrating data transmitted and received serially with a host by a memory device according to another exemplary embodiment of the present invention.
도 5를 참조하면, 실시예에 따라, 메모리 장치(10')는 호스트(1)와 직렬적으로 통신할 수 있다. 즉, 입력정보는 명령(CMD), 어드레스(ADD), 데이터(DQ) 및 순위비트(PR)를 포함한 패킷형태로 직렬포트를 통하여 송수신될 수 있다.Referring to FIG. 5, according to an embodiment, the
도 6은 본 발명의 일 실시예에 따른 메모리 장치가 호스트로부터 수신된 다수의 명령들 각각에 대해 실행순서를 가변하는 것을 나타낸 개념도이고, 도 7은 도 6의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호 타이밍도이다.FIG. 6 is a conceptual diagram illustrating that a memory device changes an execution order for each of a plurality of commands received from a host, and FIG. 7 illustrates data received from the host by the memory device of FIG. 6. The signal timing diagram shown.
도 6을 참조하면, 명령 큐(112)는 입력 FIFO(117)를 통해 수신한 입력정보의 순서대로 각각 저장하게 된다. 명령 큐(112)는 상기 각 입력정보를 디코딩한 명령(CMD), 주소(ADD) 및 우선순위 정보를 함께 저장한다. Referring to FIG. 6, the
우선순위 정보는 상기 각 명령의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 명령에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호 등을 포함할 수 있다. 각 명령의 실행 순서는 상기 각 명령의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 명령에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호들 중 적어도 어느 하나 및 상기 명령이 실행될 뱅크의 현재 상태에 따라 결정될 수 있다.The priority information may include a rank bit for the processing order of each command, a data type of the data, a timeout count which is a processing time limit for each command, a page policy or an algorithm control signal, and the like. The order of execution of each command is at least one of a rank bit for the processing order of each command, a data type of the data, a timeout count which is a processing timeout for each command, a page policy or algorithm control signals, and the command. This may be determined according to the current state of the bank to be executed.
예를 들어, 제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)에 저장한다. For example, a case in which the priority bit PR is used as priority information in the first table T1 will be described. In the above example, the
컨트롤 로직(100)은 메모리 셀 어레이(12)에 대한 동작 제어를 위해 상기 명령 뿐 아니라 리드 명령(read) 또는 라이트 명령(write)에 보조적으로 필요한 명령을 자체적으로 생성하여 실행할 수 있다. 예를 들어, 메모리 장치(10)가 DRAM을 메모리로 이용하는 경우, 리드 명령(read) 또는 라이트 명령(write)을 수행하기 위해 아비터(115)는 각 로우(Row)를 열고 닫는 액티브 명령(active)/프리챠지 명령(precharge)을 자체적으로 생성할 수 있다.The
아비터(115)는 명령 큐(112)로부터 수신한 호스트(1)의 명령들과 자체적으로 생성한 액티브 명령(active)/프리챠지 명령(precharge)들을 우선순위 정보를 반영하여 실행순서를 가변한다. 그리고 아비터(115)는 상기 명령들(CMD)을 가변된 실행순서에 따라 컨트롤 파이(130)를 통해 메모리 셀 어레이(12)로 전송하여 동작을 제어한다.The
상기 예에서 제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)에 대한 동작을 제어한다.Looking at the second table T2 in the above example, the
즉, 아비터(115)는 동일 뱅크 내 인접한 셀에 대해 동작하기 위해, 레이턴시(latency)가 중시되는 명령, 즉 순위비트가 높은 명령(상기 예에서 read(a,w,k)을 우선순위가 낮은 명령들(Priority = low)보다 먼저 처리되도록 실행순서를 가변할 수 있다.That is, the
도 6을 살펴보면, 클락(CK)과 반전클락(CK#)이 변할 때마다 입력 FIFO(117)로부터 리드 명령(Read), 리드될 데이터의 주소(ADD) 및 순위비트(PR) 정보가 컨트롤 로직(100)으로 인가된다. 이때 상기 신호들을 실시예에 따라 각각 도 2에 도시된 바와 같이, 패킷 형태로 직렬적으로 수신할 수도 있고, 도 3에 도시된 바와 같이, 별도의 핀을 통해 병렬적으로 수신할 수도 있다.Referring to FIG. 6, whenever a clock CK and an inverted clock CK # change, a read command from the
아비터(115)는 패킷 디코더(111)에서 디코딩된 각각의 정보 중 상기 순위비트(PR) 또는 어드레스(ADD) 즉, 뱅크의 현재상태(State) 중 적어도 하나를 고려하여, 호스트의 명령과 자체적으로 생성한 명령을 스케줄링하여 높은 우선순위 정보를 가진 명령을 먼저 실행처리하고, 낮은 우선순위 정보를 가진 명령을 보다 나중에 실행한다. 이 경우, 동일 뱅크 내 액티브 상태인지 프리챠지 상태인지에 따라 상기 실행순서를 가변할 수 있다.The
순위비트(PR)는 로우(low) 및 하이(high), 두가지 상태로 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고, 실시예에 따라 적어도 둘 이상의 멀티비트 형태로 구현될 수도 있다.Although the rank bit PR is illustrated in two states, low and high, the embodiment of the present invention is not limited thereto, and the rank bit PR may be implemented in at least two multi-bit forms.
도 8은 본 발명의 다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이고, 도 9는 도 8의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.FIG. 8 illustrates a priority table required for a memory device to determine an execution order of each of a plurality of instructions received from a host, according to another embodiment of the present invention. FIG. 9 illustrates that the memory device of FIG. 8 receives from a host. This is a signal representing the data.
도 8을 참조하면, 명령 큐(112)는 호스트(1)로부터 수신한 순서대로 상기 명령(CMD),주소(ADD) 및 우선순위 정보(PR)를 각각 출력하게 된다. 이때 우선순위 정보는 도 6과 달리, 호스트(1)로부터 데이터 타입정보(Data type; 이하 DT) 방식으로 전송될 수 있다.Referring to FIG. 8, the
아비터(115)는 데이터 타입 정보(DT)에 따라 실행순서를 설정할 수 있다. 데이터 타입(DT)에 따라 레이턴시에 민감한 데이터들이 있을 수 있으므로, 이를 고려하여 실행순서를 정할 수 있다. The
예를 들면, 데이터 타입이 총 4가지라고 가정할 때, 제1 DT에 대해서는 실행순서의 우선순위를 4로, 제2 DT에 대해서는 실행순서의 우선순위를 3으로, 제3 DT에 대해서는 실행순서의 우선순위를 2로, 제4 DT에 대해서는 실행순서의 우선순위를 1로 각각 설정할 수 있다. For example, assuming that there are four data types, the execution order priority is 4 for the first DT, the execution order priority is 3 for the second DT, and the execution order for the third DT. The priority of execution may be set to 2, and the priority of execution order may be set to 1 for the fourth DT.
도 9에 도시된 바와 같이, 클락(CK)과 반전클락(CK#)이 변할 때마다 호스트(1)로부터 입력정보, 즉, 리드 명령(Read), 리드될 데이터의 주소(ADD) 및 데이터타입 정보(DT)가 컨트롤 로직(100)로 인가된다. 이때 상기 신호들을 실시예에 따라 각각 도 2에 도시된 바와 같이, 패킷 형태로 직렬적으로 수신할 수도 있고, 도 3에 도시된 바와 같이, 별도의 핀을 통해 병렬적으로 수신할 수도 있다.As shown in FIG. 9, whenever the clock CK and the inverted clock CK # change, input information from the
아비터(115)는 상기 데이터타입정보(DT) 또는 주소(ADD)에 기초하여 알게되는 뱅크의 현재상태 중 적어도 하나를 고려하여, 호스트의 명령과 자체적으로 생성한 명령을 실행순서에 반영하여 높은 우선순위에 속하는 데이터타입 정보를 가진 명령을 먼저 실행처리하고, 낮은 우선순위에 속하는 데이터타입 정보를 가진 명령을 보다 나중에 실행할 수 있도록 실행순서를 가변한다.이 경우, 동일 뱅크 내 액티브 상태인지 프리챠지 상태인지에 따라 상기 실행순서를 가변할 수 있다.The
상기 실시예에서 데이터타입 정보(DT)는 4가지 타입의 경우로 도시하였으나, 본 발명의 실시예가 이에 한정되지는 아니하고, 실시예에 따라 복수의 타입으로 구현될 수 있다.Although the data type information DT is illustrated as four types in the above embodiment, the embodiment of the present invention is not limited thereto, and may be implemented in a plurality of types according to the embodiment.
도 10은 본 발명의 또다른 일실시예에 따른 메모리 장치가 호스트로부터 수신한 다수의 명령들 각각의 실행순서를 정하는데 필요한 우선순위 테이블을 나타낸 것이고, 도 11은 도 10의 메모리 장치가 호스트로부터 수신하는 데이터를 나타낸 신호이다.FIG. 10 illustrates a priority table required for a memory device to determine an execution order of each of a plurality of instructions received from a host, according to another embodiment of the present invention. FIG. 11 illustrates a memory device of FIG. This signal shows the data to be received.
도 10을 살펴보면, 각 입력정보는 타임아웃카운트 정보(Time Out; 이하 TO)를 가질 수 있다. 타임아웃카운트 정보란 클락 카운트 수를 기준으로 최대 타임아웃 카운트를 넘기기 전까지 상기 각 입력정보가 실행되어야 하는 것을 말한다. Referring to FIG. 10, each input information may have time out information (TO). The timeout count information means that the respective input information should be executed before the maximum timeout count is exceeded based on the number of clock counts.
클락 카운트는 각 입력정보마다 호스트(1)로부터 수신한 시점부터 카운트 수가 증가되도록 한 것으로, 상기 입력정보의 컨트롤 로직(100) 내에서의 대기시간을 말한다. 예를 들어 리드 명령(Read)을 포함한 소정의 입력정보에 대해 타임아웃카운트 정보가 1로 설정되어 있다고 하면, 상기 리드 명령은 클락 카운트가 최대 타임아웃 카운트인 5회를 넘기기 전에 메모리 장치(10)에서 실행되어야 한다. 또한, 리드 명령(Read)을 포함한 소정의 다른 입력정보에 대해 타임아웃카운트 정보가 2로 설정되어 있다고 하면, 상기 리드 명령은 클락 카운트가 최대 타임아웃 카운트인 20회를 넘기기 전에 메모리 장치(10)에서 실행되어야 한다. The clock count is to increase the count from the time point received from the
컨트롤 로직(100)는 도 11에 도시된 바와 같이, 호스트(1)로부터 클락신호(CK), 명령(CMD), 주소(ADD), 타임아웃카운트 정보(TO)를 수신할 수 있다. 아비터(115)는 상기 타임아웃카운트 정보(TO)에 기초하여 최대 타임아웃카운트에 이르렀는데도 메모리 장치(10) 내부에서 실행되지 않았다면 실행순서의 우선순위를 높일 수 있다. 즉, 상기 명령들의 현재 클락 카운트와 최대 타임아웃 카운트의 차이를 비교하여, 상기 차이가 작은 명령을 나머지 명령들보다 먼저 실행하도록 할 수 있다.As illustrated in FIG. 11, the
예를 들면, 도 11에 도시된 바와 같이, 리드 명령(Read)의 타임아웃카운트 정보가 '4'이면, 클락 카운트가 최대 타임아웃카운트 '100'에 가까워졌음에도 아직 메모리 장치(10)에서 실행되지 않았을 경우, 아비터(115)는 명령 큐(112)에 대기 중인 다른 명령들(현재 클락 카운트와 최대 타임아웃 카운트의 차이가 작은지 비교하여)보다 먼저 처리되도록 실행순서를 가변할 수 있다.For example, as shown in FIG. 11, if the timeout count information of the read command (Read) is '4', the clock count is still executed in the
도 12는 본 발명의 또다른 일실시예에 따른 메모리 장치가 페이지 정책을 결정하는 동작방법을 나타낸 흐름도이고, 도 13은 도 12의 메모리 장치가 클로즈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 가변하는 것을 나타낸 개념도이며, 도 14는 도 12의 메모리 장치가 오픈 페이지 정책을 따라 다수의 명령들 각각에 대한 실행순서를 가변하는 것을 나타낸 개념도이다. 일례로, 메모리셀이 DRAM일 경우라고 하자.FIG. 12 is a flowchart illustrating an operation method of determining a page policy by a memory device according to another exemplary embodiment of the present invention, and FIG. 13 illustrates execution of each of a plurality of instructions by the memory device of FIG. 12 according to a closed page policy. FIG. 14 is a conceptual diagram illustrating changing an order, and FIG. 14 is a conceptual diagram illustrating an execution order for each of a plurality of instructions according to the open page policy. For example, assume that the memory cell is a DRAM.
컨트롤 로직(100)는 메모리 셀 어레이(12)에 대한 액세스 동작시, 액세스하고자 하는 메모리 셀의 로컬리티(Locality)에 따라 페이지 정책을 변경할 수 있다. 예를 들어, 1 개의 CAS 명령만 수행하고 바로 해당 페이지를 프리챠지(precharge)할 경우, 바로 다음에 상기 페이지의 동일 로우(ROW)에 액세스할 때 상기 페이지를 액티브(active)시킨 후 액세스 해야 하므로 레이턴시 및 소모전류량의 효율이 문제된다. 따라서 액세스하려는 셀들 간의 로컬리티에 따라 오픈 페이지 정책 또는 클로즈 페이지 정책을 선택하여 수행한다.The
도 11을 참조하면, 컨트롤 로직(100)는 먼저 기본 페이지 정책으로 셋팅된다(S10). 컨트롤 로직(100)는 호스트의 명령에 상응하는 주소를 확인하여 따라 기설정된 시간(t)동안 동일 로우(row)에 액세스하는 횟수(n)를 카운트한다(S11). Referring to FIG. 11, the
만약, 명령 큐에 있는 상기 주소들이 동일 로우(row)에 반복적으로 액세스하는 횟수(n)가 기설정된 임계치(thershold, p)보다 적을 경우에는 컨트롤 로직(100)는 클로즈 페이지 정책(close Page Policy)를 따른다(S13). 이때 클로즈 페이지 정책이란 해당 페이지 및 뱅크에 대한 명령 수행 후 즉시 프리챠지(precharge)하고 추후 해당 페이지 및 뱅크에 액세스해야 할 경우 다시 액티브(active)로 전환시키는 경우를 말한다. If the number of times n repeatedly accesses the same row in the command queue is less than a preset threshold p, the
명령 큐에 있는 상기 주소들이 동일 로우(row)에 반복적으로 액세스하는 횟수(n)가 기설정된 임계치(thershold, p)보다 많을 경우에는 컨트롤 로직(100)은 오픈 페이지 정책(Open Page Policy)를 따른다(S14). 이때 오픈 페이지 정책이란 해당 페이지 및 뱅크에 대한 명령 수행 후 즉시 프리챠지(precharge)하지 않고 액티브(active) 상태로 두어 다음 명령 수행을 할 수 있는 경우을 말한다. If the number n of times the addresses in the command queue repeatedly access the same row is greater than a preset threshold p, the
도 12를 참조하면, 클로즈 페이지 정책을 따를 경우, 제3 테이블(T3)에 도시된 바와 같이, 컨트롤 로직(100)는 호스트(1)의 첫번째 리드 명령 read(a,m,n)을 수신한다.Referring to FIG. 12, when following the close page policy, as shown in the third table T3, the
컨트롤 로직(100)는 상기 명령에 대해 제4 테이블(T4)에 도시된 바와 같이, 아비터(115, 실행 Sequence)에서 해당 메모리 셀이 위치한 뱅크 a, 로우(row) m을 열어(active) 리드 명령(read)을 실행한 뒤 즉시 상기 뱅크 a를 닫는다(precharge). 이어서 명령 큐(112)에 대기 중인 첫번째 쓰기 명령(write)은 상기 뱅크 a가 닫힌 후 아비터(115)를 통해 뱅크 b에 대해서 처리된 후, 상기 뱅크 b를 닫는다(precharge).As shown in the fourth table T4, the
제4 테이블(T4)에서 명령 큐(112)에 대기 중인 두번째 쓰기 명령(write)은 상기 뱅크 a, 상기 뱅크 b가 각각 닫혀있으므로(precharged), 쓰기 명령을 처리하기 위해 대상 메모리 셀(bank b, row k, column p)을 다시 열어야(active) 한다.The second write command waiting in the
즉, 메모리의 엑세스빈도가 낮은 경우(동일 로우(row)에 반복적으로 액세스 하는 횟수가 기설정된 임계치(p)보다 적으면), 컨트롤 로직(100)는 메모리 셀 어레이(12)에 대한 명령 처리시 클로즈 페이지 정책에 따라 실행순서를 가변하여 명령을 수행한다. That is, when the access frequency of the memory is low (when the number of times of repeatedly accessing the same row is less than the predetermined threshold value p), the
도 14를 참조하면, 오픈 페이지 정책을 따를 경우, 제5테이블(T5)에 도시된 바와 같이, 컨트롤 로직(100)는 첫번째 리드 명령 read(a,m,n)을 수신한다.Referring to FIG. 14, when the open page policy is followed, the
컨트롤 로직(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)를 수행한다. As shown in the sixth table T6, the
즉, 인접한 메모리 셀들에 반복적으로 액세스 하는 횟수가 기설정된 임계치(p)보다 크면 로컬리티(Locality)가 높으므로, 한번 열었던(active) 페이지에 대해 동일 뱅크의 다른 로우에 CAS 명령이 있거나 기설정된 시간(t)이 경과되기 전까지는 열어둔다. 그 결과 페이지를 여는데(active) 필요한 전류 소모량 및 레이턴시가 감소될 수 있다.That is, if the number of times of repeatedly accessing adjacent memory cells is greater than the preset threshold p, the locality is high. Therefore, there is a CAS command in a different row of the same bank for a page that has been opened once, or Leave open until time t elapses. As a result, the current consumption and latency required to open the page can be reduced.
그러나 액세스하려는 메모리 셀들의 로컬리티(locality)가 적을 경우(즉, 동일 로우에 대한 메모리 엑세스가 적을 경우) 해당 페이지를 계속 열어두게 되면, 전류 소모가 커지게 될 수 있으므로, 로컬리티(lcoality)에 따라 다시 클로즈 페이지 정책으로 바꾼다.However, if the locality of the memory cells to be accessed is low (i.e. if there is less memory access to the same row), keeping the page open will cause a large current consumption, which may lead to a lack of locality. So change back to the closed page policy.
상기 실시예는 데이터의 로컬리티에 따라 페이지 정책을 변경하는 것으로 설명하였으나 본 발명의 실시예가 이에 한정되지는 아니하고, 도 13의 클로즈 페이지 정책 또는 도 14의 오픈 페이지 정책 중 어느 정책을 따른 것일지는 다양한 실시예에 따라 호스트로부터 모드 레지스터 셋팅에 기초한 제어, 호스트로부터의 명령(request,CMD)에 따른 제어, 메모리 장치의 파워 상태, 메모리 엑세스 빈도, 메모리 장치의 동작 주파수, 명령 큐(112)에 대기 중인 페이지의 수 등을 기초로 하여 정해질 수 있다.Although the above embodiment is described as changing the page policy according to the locality of the data, the embodiment of the present invention is not limited thereto, and it is determined whether the policy according to the closed page policy of FIG. 13 or the open page policy of FIG. Control based on mode register settings from the host, control according to commands (CMD) from the host, power state of the memory device, frequency of memory access, operating frequency of the memory device, standby in the
페이지 정책은 시스템이 수행하는 연산의 종류에 따라 수행 속도를 증가시키기 위해 변경될 수 있다. 다양한 실시예에 따라 메모리 장치(10)가 모드 레지스터를 변경하거나, 호스트(1)가 페이지 정책 변경 명령을 메모리 장치로 전송함으로써 페이지 정책이 변경될 수 있다. The page policy may be changed to increase the execution speed depending on the type of operation performed by the system. According to various embodiments, the page policy may be changed by the
또한, 페이지 정책은 메모리 장치에서 리드/라이트 동작이 실행되고 있지 않을 때 변경될 수 있다. 메모리 장치에서 리드/라이트 동작이 실행되고 있지 않을 때 페이지를 오픈(open) 상태로 두면, 페이지를 클로즈(close) 상태로 두는 경우보다 대기 전류가 더 커질 수 있다. 메모리 장치는 메모리 액세스 빈도가 낮거나 동작 주파수가 낮은 때에는 클로즈 페이지 정책으로 자동적으로 전환될 수 있다. 그 결과 메모리 장치의 소비전력이 줄어드는 효과가 있다.In addition, the page policy may be changed when a read / write operation is not executed in the memory device. If the page is left open when the read / write operation is not performed in the memory device, the standby current may be greater than if the page is left closed. The memory device may automatically switch to a closed page policy when the memory access frequency is low or the operating frequency is low. As a result, power consumption of the memory device is reduced.
도 14는 본 발명의 실시예들에 따른 메모리 장치의 동작방법을 나타낸 흐름도이다.14 is a flowchart illustrating a method of operating a memory device according to example embodiments.
도 14를 참조하면, 메모리 장치(10)는 먼저 호스트로부터 명령(CMD), 주소(ADD) , 및 우선순위 정보(PR)를 포함한 입력 정보들을 수신받는다.(S20). 메모리 장치(10)는 상기 각 입력 정보는 디코딩한다.(라이트 명령일 경우 라이트 데이터(WDATA) 포함될 수 있다)(S21) Referring to FIG. 14, the
메모리 장치(10)는 상기 주소들에 상응하는 뱅크들의 상태정보 및 상기 우선순위 정보들을 각각 확인한다(S22). 그리고 뱅크의 상태정보 및 우선순위 정보 중 적어도 하나에 기초하여 실행순서를 가변한다(S23). 즉, 레이턴시에 민감하여 높은 우선순위 정보를 갖는 명령은 실행순서를 앞당기고, 낮은 우선순위 정보를 갖는 명령은 실행순서를 미룰 수 있다. 이때 우선순위 정보는 상기 각 입력 정보의 처리순서에 대한 순위비트, 상기 데이터의 데이터 타입, 상기 각 입력 정보에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 또는 알고리즘 제어신호 등을 포함할 수 있다.The
일례로, 메모리 장치(10)는 상기 각 명령(CMD)이 처리할 각 데이터의 데이터 타입에 기초하여 상기 명령들의 실행순서를 상기 우선순위가 높은 순서대로 실행순서를 가변할 수 있다.For example, the
일례로, 메모리 장치(10)는상기 각 명령마다 상기 호스트로부터 각 입력정보를 수신한 시점부터 클락 카운트를 증가시켜, 실행 순서를 결정할 때 명령의 현재 클락 카운트를 확인하고 상기 명령들의 현재 클락 카운트와 최대 타임아웃 카운트의 차이를 비교한다. 그리고 메모리 장치(10)는 상기 차이가 작은 명령을 나머지 명령들보다 먼저 실행하도록 실행순서를 가변할 수 있다.For example, the
일례로 , 메모리 장치(10)는 순위비트에 기초하여 상기 명령들의 실행순서를 상기 우선순위가 높은 순서대로 실행순서를 가변할 수 있다.For example, the
일례로, 메모리 장치(10)는기본 페이지 정책에 따라 입력정보의 처리순서를 가변 하되, 상기 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 실행순서를 가변할 수 있다. 그러나 상기 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 실행순서를 가변할 수 있다.For example, the
메모리 장치(10)는 상기 스케줄링 된 명령들 및 상기 각 명령에 상응하는 주소 및 데이터를 가변된 실행순서대로 메모리 셀 어레이(12)로 출력한다(S24). 메모리 셀 어레이(12)는 상기 가변된 실행순서에 따라 각각의 명령들을 해당 메모리 셀에서 실행한다. 그 결과, 레이턴시가 개선되어 메모리 장치(10)의 동작 속도가 빨라질 수 있고, 전류소모량도 줄일 수 있을 뿐 아니라 나아가 시스템 전체의 성능 저하를 방지할 수 있는 효과가 있다.The
도 16은 다수의 알고리즘을 포함한 본 발명의 또다른 일실시예에 따른 메모리 장치를 나타낸 개념도이다.16 is a conceptual diagram illustrating a memory device according to another embodiment of the present invention including a plurality of algorithms.
도 16의 컨트롤 로직(200)은 적어도 둘 이상의 스케줄링 알고리즘부(220,230)와 선택부(210)를 포함할 수 있다. The
선택부(210)는 각 입력 정보의 처리순서에 대한 순위비트, 데이터의 데이터 타입, 상기 각 입력 정보에 대한 처리 제한 시간인 타임아웃 카운트, 페이지 정책 중 적어도 하나를 선택한다. The
각각의 알고리즘부(220,230)는 순위비트(PR)에 대한 설정 정보, 데이터타입(DT)에 대한 우선순위 설정 테이블 정보, 타임아웃카운트의 설정정보, 페이지 정책 설정 정보 등 각 특성에 따라 호스트로부터 수신한 입력정보를 각각 실행순서를 가변한다.Each
컨트롤 로직(200)는 선택된 알고리즘에 따라 메모리 셀 어레이(12)에 액세스 한다.The
그 결과 컨트롤 로직(200)는 도 1 내지 도 14에서 설명한 것과 같이 다양한 알고리즘에 따라 호스트로부터 수신한 명령(CMD)의 실행순서를 가변하여, 메모리 장치(10")의 동작을 제어할 수 있다. As a result, the
도 17은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 일실시예를 나타낸 블럭도이다.17 is a block diagram illustrating an embodiment of a module including a plurality of memory devices according to example embodiments of the inventive concepts.
도 17을 참조하면, 모듈(500)은 입출력인터페이스 장치(510) 및 복수의 메모리 장치들(550-1 ~ 550-4)을 포함할 수 있다. Referring to FIG. 17, the
입출력 인터페이스 장치(510)는 메모리 장치들(550)과 별도로 구현되어 호스트(1)와 통신할 수 있다. The input /
도 18은 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 다른 실시예를 나타낸 블럭도이다.18 is a block diagram illustrating another embodiment of a module including a plurality of memory devices according to embodiments of the present invention.
도 18을 참조하면, 모듈(600)은 복수의 메모리 장치들(610-1 ~ 610-5)을 포함할 수 있다. 복수의 메모리 장치들(610-1 ~ 610-5) 중 어느 하나(610-3)는 호스트(Host)와 직접 연결되어 통신할 수 있다. 각 메모리 장치(610)는 컨트롤 로직을 각각 포함하여, 복수의 메모리 장치들(610-1 ~ 610-5) 상호 간에 체인(chain) 방식으로 연결될 수 있다. 호스트(1)와 연결되지 않은 나머지 메모리 장치들(610)은 체인을 따라 간접적으로 호스트(1)와 통신할 수 있다.Referring to FIG. 18, the
실시예에 따라, 메모리 장치(610)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(610) 내의 일부로서 구현될 수도 있다.According to an embodiment, control logic that may control the operation of the memory device 610 may be implemented as part of the memory device 610.
도 19는 본 발명의 실시예들에 따른 다수의 메모리 장치를 포함한 모듈의 또다른 실시예를 나타낸 블럭도이다.19 is a block diagram illustrating another embodiment of a module including a plurality of memory devices according to embodiments of the present invention.
도 19를 참조하면, 모듈(700)은 복수의 메모리 장치들(720-1 ~ 720-5)과 복수의 메모리 장치들(720-1 ~ 720-5) 각각의 데이터 입출력을 인터페이싱하는 광학 인터페이스(Optical IO, 710)를 포함할 수 있다. Referring to FIG. 19, the
광학 인터페이스(710)는 복수의 메모리 장치들(720-1 ~ 720-5) 각각의 입출력 동작을 제어할 수 있는 입출력제어장치(미도시) 및 메모리 장치의 데이터 입출력을 데이터를 광신호로 변환시킬 수 있는 신호변환장치(미도시)를 포함할 수 있다.The
광학 인터페이스(710)는 광학적 통신을 이용하여 메모리 장치들(720-1 ~ 720-5) 각각과 호스트 사이에서 데이터 교환을 제공한다. 광학 인터페이스(710)는 광섬유(optical fiber) 또는 도파관(waveguide)을 이용하여 데이터를 송수신할 수 있다. 상기 교환되는 데이터는 SATA(Serial ATA) 규격에 따르는 것과 같은 고속의 신호를 송수신하는 경우에 적합하며, 파장분할다중(Wavelength Division Multiplex) 방식으로 데이터를 송수신하는 것도 가능하다. The
실시예에 따라, 메모리 장치(720)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(720) 내의 일부로서 구현될 수 있고 또한 메모리 장치(720)내 적층된 구조로 구현될 수도 있다.According to an embodiment, the control logic capable of controlling the operation of the memory device 720 may be implemented as part of the memory device 720, and may also be implemented in a stacked structure in the memory device 720.
도 20은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.20 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
도 20을 참조하면, 데이터 처리 시스템(800)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.Referring to FIG. 20, the
데이터 처리 시스템(800)은 메모리 장치(840)를 포함한다. 메모리 장치(840)는 메모리 장치(840)의 데이터 처리 동작을 제어하고 스케줄링할 수 있는 컨트롤 로직를 포함한다.The
프로세서(820)는 입력 장치(830)를 통하여 입력된 데이터에 따라 메모리 장치(840)에 저장된 데이터를 디스플레이(810)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(830)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.The
프로세서(820)는 데이터 처리 시스템(800)의 전반적인 동작을 제어할 수 있다. 실시 예에 따라, 메모리 장치(840)의 동작을 제어할 수 있는 컨트롤 로직은 메모리 장치(840) 내의 일부로서 구현될 수 있고 또한 메모리 장치(850) 내 적층된 구조로 구현될 수도 있다.The
도 21은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 다른 실시예를 나타낸다.FIG. 21 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
도 21을 참조하면, 데이터 처리 시스템(900)은 이동 전화기(cellular phone), 스마트 폰(smart phone), PDA(personal digital assistant), 또는 무선 통신 장치로 구현될 수 있다.Referring to FIG. 21, the
데이터 처리 시스템(900)은 메모리 장치(950)를 포함한다. 메모리 장치(950)는 메모리 장치(950)의 동작을 제어하고 처리 순서를 스케줄링할 수 있는 컨트롤 로직을 포함한다. 컨트롤 로직은 프로세서(940)의 제어에 따라 메모리 장치(950)의 데이터(DATA) 액세스 동작, 예컨대 프로그램 (program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작의 처리순서를 제어할 수 있다. The
메모리 장치(950)에 프로그램된 페이지 데이터는 프로세서(940)와 컨트롤 로직(960)의 제어에 따라 디스플레이(930)를 통하여 디스플레이될 수 있다.The page data programmed in the
무선 송수신기(910)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(910)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(940)에서 처리될 수 있는 신호로 변경할 수 있다.The
따라서, 프로세서(940)는 무선 송수신기(910)로부터 출력된 신호를 처리하고 처리된 신호를 컨트롤 로직(960) 또는 디스플레이(930)로 전송할 수 있다. 컨트롤 로직(960)는 프로세서(940)에 의하여 처리된 신호를 메모리 장치(950)에 프로그램할 수 있다.Accordingly, the
또한, 무선 송수신기(910)는 프로세서(940)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.In addition, the
입력 장치(920)는 프로세서(940)의 동작을 제어하기 위한 제어 신호 또는 프로세서(940)에 의하여 처리될 데이터(DATA)를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.The
프로세서(940)는 컨트롤 로직(960)로부터 출력된 데이터(DATA), 무선 송수신기(910)로부터 출력된 데이터(DATA), 또는 입력 장치(920)로부터 출력된 데이터(DATA)가 디스플레이(930)를 통하여 디스플레이될 수 있도록 디스플레이(930)의 동작을 제어할 수 있다. 실시 예에 따라, 메모리 장치(950)의 동작을 제어하고 처리순서를 스케줄링 할 수 있는 컨트롤 로직는 메모리 장치(950) 내의 일부로서 구현될 수 있고 또한 메모리 장치(950) 내 적층된 구조로 구현될 수도 있다.The
도 22는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.FIG. 22 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
도 22를 참조하면, 데이터 처리 시스템(1000)은 이미지 처리 장치, 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기로 구현될 수 있다.Referring to FIG. 22, the
데이터 처리 시스템(1000)은 메모리 장치(1040)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작의 처리순서를 스케줄링 할 수 있는 컨트롤 로직을 포함한 메모리 장치(1040)를 포함한다.The
데이터 처리 시스템(1000)의 센서(1010)는 이미지 센서,온도센서, 모션센서, 음성센서 등일 수 있다. 멀티미디어 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 프로세서(1020) 또는 메모리 장치(1040)로 전송된다. 프로세서(1020)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(1030)를 통하여 디스플레이되거나 또는 메모리 장치(1040)에 저장될 수 있다. The
또한, 메모리 장치(1040)에 저장된 데이터는 프로세서(1010) 또는 컨트롤 로직의 제어에 따라 디스플레이(1030)를 통하여 디스플레이된다. 컨트롤 로직은 메모리 장치(1040)의 동작을 제어할 수 있다.In addition, data stored in the
도 23은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.FIG. 23 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
도 23을 참조하면, 데이터 처리 시스템(1100)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 데이터 처리 시스템(1100)은 메모리 장치(1120) 및 카드 인터페이스(1110)를 포함한다.Referring to FIG. 23, the
컨트롤 로직은 메모리 장치(1120)에 포함되어, 메모리장치(1120)와 카드 인터페이스(1110)의 데이터의 교환시 실행순서를 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(1110)는 SD (secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.The control logic may be included in the
카드 인터페이스(1110)는 호스트(HOST,1)의 프로토콜에 따라 호스트(HOST,1)와 메모리 장치(1120) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(1110)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(HOST,1)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.The card interface 1110 may interface data exchange between the
데이터 처리 시스템(1100)이 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST,1)와 접속될 때, 호스트(HOST,1)는 카드 인터페이스(1110)를 통하여 메모리 장치(200)와 데이터 통신을 수행할 수 있다.When the
도 24는 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 또다른 일실시예를 나타낸다.24 illustrates another embodiment of a data processing system including the memory device shown in FIG. 1.
도 24를 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(1200)는 RAID 컨트롤러(1210)와 복수의 모듈들(1220-1 ~ 1220-n; n는 자연수)을 포함할 수 있다.Referring to FIG. 24, a
복수의 메모리 모듈들(1220-1 ~ 1220-n) 각각은 도 23에 도시된 데이터 처리 시스템(1100)일 수 있다. 복수의 메모리 모듈들(1220-1 ~ 1220-n)은 RAID 어레이를 구성할 수 있다. 메모리 모듈들 각각은 메모리 모듈(1220-1~1220-n)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작의 처리순서를 스케줄링 할 수 있는 컨트롤 로직을 포함한다.Each of the plurality of memory modules 1220-1 to 1220-n may be the
데이터 저장 장치(1220)는 PC(personal computer) 또는 SSD로 구현될 수 있다.The
프로그램 동작시 RAID 컨트롤러(1210)는, 호스트로부터 출력된 프로그램 명령에 따라, 상기 호스트로부터 출력된 프로그램 데이터를 RAID 레벨 정보에 기초하여 복수의 RAID 레벨들 중에서 선택된 어느 하나의 RAID 레벨에 따라 복수의 메모리 모듈들(1220-1 ~ 1220-n) 중에서 어느 하나의 메모리 모듈로 출력할 수 있다.During a program operation, the
또한, 읽기 동작시, RAID 컨트롤러(1210)는, 호스트로부터 출력된 읽기 명령에 따라, RAID 레벨 정보에 따라 복수의 RAID 레벨들 중에서 선택된 어느 하나의 RAID 레벨에 따라 복수의 메모리 모듈들(1220-1 ~ 1220-n) 중에서 어느 하나의 메모리 모듈로부터 읽혀진 데이터를 상기 호스트로 전송할 수 있다.In addition, during the read operation, the
도 25는 도 1에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 개략적으로 나타낸 개념도이다.FIG. 25 is a conceptual diagram schematically illustrating an embodiment of a multi-chip package including the memory device shown in FIG. 1.
도 25를 참조하면, 멀티-칩 패키지(1300)는 패키지 기판(1310)상에 순차적으로 적층되는 다수의 반도체 장치들(1330~1350, Chip #1~Chip #3)을 포함할 수 있다. 다수의 반도체 장치들(1330~1350) 각각은 메모리 장치일 수 있다. 메모리 장치는 상술한 휘발성 메모리 장치 또는 비휘발성 메모리 장치일수 있다. 본 발명의 실시예에 따른 컨트롤 로직은 다수의 반도체 장치들(1330~1350) 중 하나 이상의 반도체 장치의 내부에 구비될 수도 있고, 패키지 기판(1310) 상에 구현될 수도 있다. 다수의 반도체 장치들(1330~1350)간의 전기적 연결을 위해서, 실리콘 관통전극(TSV: Through-silicon via, 미도시), 연결선(미도시), 범프(bump, 미도시), 솔더 볼(1320) 등이 사용될 수 있다.Referring to FIG. 25, the
일례로, 도 17과 같이, 제1 반도체 장치(1330)는 로직 다이(logic die)로, 입출력 인터페이스 장치 및 컨트롤 로직을 포함하고, 제2 반도체 장치(1340)와 제3 반도체 장치(1350)는 복수의 메모리 장치가 적층된 다이(die)들로 각각 메모리 셀 어레이를 포함할 수 있다. 이때 제2 반도체 장치(1340)의 메모리 장치와 제3 반도체 장치(1350)는 실시예에 따라, 동일한 종류의 메모리 장치일 수도 있고, 다른 종류의 메모리 장치일 수도 있다.For example, as illustrated in FIG. 17, the
다른 일례로, 도 18과 같이, 제1 반도체 장치 내지 제3 반도체 장치(1330~1350) 각각은 각각의 컨트롤 로직을 포함할 수 있다. 이때 컨트롤 로직은 실시예에 따라 메모리 셀 어레이와 동일한 다이(die)에 있을 수도 있고, 메모리 셀 어레이와 다른 다이(die)에 있을 수도 있다.As another example, as shown in FIG. 18, each of the first to
또다른 일례로, 도 19와 같이, 제1 반도체 장치(Die 1, 1330)는 광학 인터페이스 장치를 포함할 수 있다. 컨트롤 로직은 제1 반도체 장치(1330) 또는 제2 반도체 장치(1340)에 위치할 수 있고, 메모리 장치는 제2 반도체 장치(1340) 또는 제3 반도체 장치(1350)에 위치하여 컨트롤 로직과 실리콘 관통 전극(TSV)로 연결될 수 있다.As another example, as illustrated in FIG. 19, the first semiconductor devices Die 1 and 1330 may include an optical interface device. The control logic may be located in the
또한 상기 실시예들은 복수의 메모리 셀 어레이 다이가 적층된 구조로써 구현될 수 있다. 상기 적층된 구조로 구현함으로써 대역폭 증가로 인한 메모리 장치의 성능 향상, 메모리 장치가 차지하는 면적을 최소화함으로써 전력 소모 및 생산 비용을 감소시킬 수 있다.In addition, the above embodiments may be implemented in a structure in which a plurality of memory cell array dies are stacked. By implementing the stacked structure, power consumption and production cost may be reduced by improving performance of a memory device due to increased bandwidth and minimizing an area occupied by the memory device.
도 26은 도 25에 도시된 메모리 장치를 포함하는 멀티-칩 패키지의 일실시예를 입체적으로 나타낸 개념도이다.FIG. 26 is a conceptual diagram three-dimensionally illustrating an embodiment of a multi-chip package including the memory device shown in FIG. 25.
도 26을 참조하면, 멀티-칩 패키지(1300')는 실리콘 관통전극(TSV, 1360)을 통해 상호 연결된 적층 구조의 다수의 다이들(Die1~3, 1330~1350)을 포함한다. 다이들(Die1~3, 1330~1350) 각각은 메모리 장치(10)의 기능을 구현하기 위한 복수의 회로블록(미도시), 주변회로(Periphery circuit)를 포함할 수 있다. 반도체 장치(10)의 일예로써 메모리 셀 어레이를 포함하는 반도체 메모리 장치가 적용될 수 있으며, 도 1의 장치가 반도체 메모리 장치(10)인 경우 상기 다이들(1330~1350)은 셀 레이어로 지칭될 수 있으며, 복수의 회로블록은 메모리 블록으로 구현될 수 있다.Referring to FIG. 26, the
실리콘 관통전극(1360)은 구리(Cu) 등의 금속을 포함하는 전도성 물질로 이루어질 수 있고, 실리콘 기판의 중앙에 배치되며, 실리콘 기판은 실리콘 관통전극(1360)을 둘러싸고 있는 구조를 갖는다. 실리콘 관통전극(1360)과 실리콘 기판 사이에 절연영역(미도시)이 배치될 수 있다.The silicon through
도 27은 본 발명의 다른 실시예들에 따른 메모리 장치의 전체블럭도이다.27 is an overall block diagram of a memory device according to example embodiments.
도 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)로 구현될 수 있다.Referring to FIG. 27, the
반도체 시스템(1400)은 SoC(1400), 외부 메모리 장치(1420) 및 디스플레이 디바이스(1412)를 포함한다. The
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 프로세서 등을 더 포함할 수 있다. The
CPU(1405)는 메모리(1404 또는 1420)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(1405)는 클락발생기(1406)로부터 출력된 e동작클락에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.The
CPU(1405)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.The
메모리(1420)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(1405) 내 메모리에 로드(load)될 수 있다.Programs and / or data stored in the
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)으로 구현될 수 있다.The
브릿지(Bridge,1404)는 내부 버스(1409)와 외부 메모리 장치(1420)의 I/O인터페이스가 인터페이스하기 위한 블록이다. 브릿지(1404)는 호스트(1400)와 메모리 장치(1420)간의 제반 데이터 교환을 제어한다. 예컨대, 브릿지(1404)는 호스트(1400)의 입력정보를 메모리 장치(1420)에 전달하여, 메모리 장치(1420)에 호스트(1400)의 입력정보에 따른 메모리 데이터를 쓰거나 데이터를 독출한다. The
여기서, 호스트(1)는 CPU(1405), GPU(108) 또는 디스플레이 컨트롤러(1412)와 같은 마스터 장치일 수 있다. Here, the
메모리 장치(1420)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(1420)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(1420)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 외부 메모리 장치(1420)는 SoC(1400) 내부에 구비되는 내장 메모리일 수 있다. The
각 구성 요소는 시스템 버스(1409)를 통하여 서로 통신할 수 있다.Each component may communicate with each other via a
디스플레이 디바이스(1412)는 디스플레이 컨트롤러(1401)에 로드된 멀티미디어를 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스는 LCD, LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다.The
디스플레이 컨트롤러(1401)는 디스플레이 디바이스(1412)의 동작을 제어한다.The
SoC(1400)는 시스템 온칩(SOC: System On chip)으로 구현될 수 있다.The
또한 본 발명의 실시예들에 따른 메모리 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the operating method of the memory device according to the embodiments of the present invention may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Hardware devices specially configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
1 : 호스트 10 : 메모리 장치
11 : 메모리 I/O 인터페이스 100 : 메모리 컨트롤러
110 : 입력 유닛 120 : 출력유닛
130 : 메모리 컨트롤러 파이
111 : 패킷 디코더 112 : 명령 큐
113 : 쓰기 데이터 큐 114 : 뱅크 컨트롤러
115 : 아비터 116 : 뱅크 상태부
117 : 입력 FIFO
121 : 패킷 생성부 122 : 출력 FIFO1: Host 10: Memory Device
11: memory I / O interface 100: memory controller
110: input unit 120: output unit
130: memory controller pi
111: packet decoder 112: command queue
113: write data queue 114: bank controller
115: Arbiter 116: Bank state portion
117: input FIFO
121: packet generator 122: output FIFO
Claims (10)
데이터를 저장하는 복수의 메모리 셀들을 포함하여 상기 실행순서대로 수신된 상기 각 입력정보에 따라 해당 메모리 셀에서 동작을 수행하는 메모리 셀 어레이를 포함하는 메모리 장치.Control logic for receiving input information having priority information and varying an execution order of the input information according to the priority; And
And a memory cell array including a plurality of memory cells storing data to perform an operation in a corresponding memory cell according to each input information received in the execution order.
패킷 형태로 수신한 상기 각 입력정보를 명령, 주소 및 상기 우선순위 정보로 디코딩하는 패킷 디코더;
상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐;
상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭;
상기 명령 및 상기 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러; 및
상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 전송하는 아비터를 포함하는 메모리 장치.The method of claim 1, wherein the control logic
A packet decoder which decodes each input information received in a packet form into a command, an address and the priority information;
A command queue for storing the command, the address and the priority information;
A bank state block for storing respective states for banks in the memory cell array;
A bank controller that reads or updates a state of each bank stored in the bank state block upon receiving the command and the address; And
And an arbiter for varying the execution order of the respective commands according to the priority information, and transmitting the command and the address to the memory cell array based on the execution order and the state of the corresponding bank.
상기 입력정보가 라이트 명령, 라이트 주소, 상기 우선순위 정보 및 라이트 데이터를 포함한 경우, 상기 라이트 데이터를 수신하여 저장하고, 상기 실행순서에 따라 상기 라이트 명령이 상기 메모리 셀 어레이로 출력될 때 상기 라이트 데이터도 함께 출력하는 라이트 데이터 큐를 더 포함하는 메모리 장치.The method of claim 1, wherein the control logic
When the input information includes a write command, a write address, the priority information, and write data, the write data is received and stored, and the write data when the write command is output to the memory cell array according to the execution order. The memory device further includes a write data queue to be output together.
상기 입력정보가 리드 명령, 리드 주소, 상기 우선순위 정보를 포함한 경우,상기 메모리 셀 어레이로부터의 리드 데이터를 패킷 형태로 생성하여 출력하는 패킷 생성부를 더 포함하는 메모리 장치.The method of claim 1, wherein the control logic
If the input information includes a read command, a read address, and the priority information, further comprising a packet generation unit for generating and outputting read data from the memory cell array in the form of a packet.
제1 포트로 상기 각 입력정보 중 명령, 주소 및 상기 우선순위 정보를 수신하여 상기 컨트롤 로직으로 전송하는 명령주소 입출력 인터페이스부; 및
제2포트로 상기 각 입력정보 중 라이트 데이터를 수신하여 상기 컨트롤 로직으로 전송하거나, 상기 메모리 셀 어레이로부터 리드된 리드 데이터를 출력하는 데이터 입출력 인터페이스부를 더 포함하는 메모리 장치.The memory device of claim 1, wherein the memory device
A command address input / output interface unit configured to receive a command, an address, and the priority information among the input information through a first port and transmit the received command to the control logic; And
And a data input / output interface unit configured to receive write data among the respective input information through a second port, transmit the write data to the control logic, or output read data read from the memory cell array.
상기 명령주소 입출력 인터페이스부로부터 수신한 상기 명령, 상기 주소, 상기 우선순위 정보를 디코딩하는 명령주소 디코더;
디코딩된 상기 명령, 상기 주소 및 상기 우선순위 정보를 저장하는 명령 큐;
상기 메모리 셀 어레이 내 뱅크들에 대한 각각의 상태(state)를 저장하는 뱅크상태블럭;
상기 명령 큐로부터 상기 명령 및 주소를 수신하면 상기 뱅크상태블럭에 저장된 상기 각 뱅크의 상태를 리드(read)하거나 업데이트(update)하는 뱅크컨트롤러;
상기 각 우선순위 정보에 따라 상기 각 명령들의 상기 실행순서를 가변하고, 상기 실행 순서 및 상기 해당 뱅크의 상태에 기초하여 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하는 아비터; 및
상기 아비터가 상기 명령 및 상기 주소를 상기 메모리 셀 어레이로 출력하면 태그 응답을 생성하여 상기 명령주소 입출력 인터페이스부로 출력하는 태그 응답 생성부를 포함하는 메모리 장치.The method of claim 5, wherein the control logic
A command address decoder for decoding the command, the address, and the priority information received from the command address input / output interface unit;
A command queue for storing the decoded command, the address and the priority information;
A bank state block for storing respective states for banks in the memory cell array;
A bank controller that reads or updates a state of each bank stored in the bank state block when receiving the command and address from the command queue;
An arbiter for varying the execution order of the respective commands according to the priority information, and outputting the command and the address to the memory cell array based on the execution order and the state of the corresponding bank; And
And a tag response generation unit configured to generate a tag response and output the tag response to the command address input / output interface unit when the arbiter outputs the command and the address to the memory cell array.
상기 각 입력정보가 실행할 데이터 타입에 기초하여 상기 실행순서를 가변하는 메모리 장치.The method of claim 1, wherein the control logic
And the execution order varies based on a data type to be executed by each input information.
상기 각 입력정보의 클락 카운트와 최대 타임아웃 카운트의 차이를 비교하여, 상기 차이가 작은 입력정보를 나머지 입력정보들보다 먼저 실행하도록 상기 실행순서를 가변하는 메모리 장치.The method of claim 1, wherein the control logic
And comparing the difference between the clock count and the maximum timeout count of the respective input information, and changing the execution order to execute the input information having the smallest difference before the other input information.
상기 우선순위 정보인 순위비트에 기초하여 상기 명령들의 실행순서를 가변하는 메모리 장치.The method of claim 1, wherein the control logic
And a memory device, wherein the execution order of the instructions is changed based on a priority bit that is the priority information.
상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치 이하일 경우, 상기 주소들에 상응하는 명령들을 클로즈 페이지 정책에 따라 상기 실행순서를 가변하고,
상기 입력정보로부터 디코딩된 주소들이 연속적으로 상기 메모리 셀의 동일 로우에 속하는 횟수가 기설정된 임계치보다 큰 경우, 상기 주소들에 상응하는 명령들을 오픈 페이지 정책에 따라 상기 실행순서를 가변하는 메모리 장치.The method of claim 1, wherein the control logic
When the number of addresses decoded from the input information consecutively belongs to the same row of the memory cell is less than or equal to a preset threshold, the instructions corresponding to the addresses are changed according to a close page policy,
And when the number of addresses decoded from the input information consecutively belongs to the same row of the memory cell is greater than a preset threshold, the instructions corresponding to the addresses are changed according to an open page policy.
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 |
CN201310110042.6A CN103366801B (en) | 2012-03-29 | 2013-03-29 | Storage arrangement and its operating method |
JP2013073033A JP6373559B2 (en) | 2012-03-29 | 2013-03-29 | MEMORY DEVICE AND MEMORY DEVICE OPERATION METHOD |
JP2018093779A JP2018152112A (en) | 2012-03-29 | 2018-05-15 | Memory device and method of operating the same |
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 true KR20130111188A (en) | 2013-10-10 |
KR102031952B1 KR102031952B1 (en) | 2019-10-14 |
Family
ID=49632867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120145674A KR102031952B1 (en) | 2012-03-29 | 2012-12-13 | Memory device and operating method thereof |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2018152112A (en) |
KR (1) | KR102031952B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170062355A (en) * | 2015-11-27 | 2017-06-07 | 삼성전자주식회사 | Electronic systems and method of operating electronic systems |
US10768859B1 (en) | 2019-04-10 | 2020-09-08 | SK Hynix Inc. | History-based memory control system and method |
WO2023128479A1 (en) * | 2021-12-30 | 2023-07-06 | 주식회사 엘엑스세미콘 | Memory control system and display device including memory control function |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220073998A (en) | 2020-11-27 | 2022-06-03 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233503A1 (en) * | 2002-04-14 | 2003-12-18 | Yang Eric Kuo-Uei | Data forwarding engine |
JP2008287528A (en) * | 2007-05-18 | 2008-11-27 | Renesas Technology Corp | Request arbitration device and memory controller |
US20110179240A1 (en) * | 2010-01-18 | 2011-07-21 | Xelerated Ab | Access scheduler |
JP2011197707A (en) * | 2010-03-17 | 2011-10-06 | Seiko Epson Corp | Device and system for controlling memory, recording device and memory control method |
-
2012
- 2012-12-13 KR KR1020120145674A patent/KR102031952B1/en active IP Right Grant
-
2018
- 2018-05-15 JP JP2018093779A patent/JP2018152112A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233503A1 (en) * | 2002-04-14 | 2003-12-18 | Yang Eric Kuo-Uei | Data forwarding engine |
JP2008287528A (en) * | 2007-05-18 | 2008-11-27 | Renesas Technology Corp | Request arbitration device and memory controller |
US20110179240A1 (en) * | 2010-01-18 | 2011-07-21 | Xelerated Ab | Access scheduler |
JP2011197707A (en) * | 2010-03-17 | 2011-10-06 | Seiko Epson Corp | Device and system for controlling memory, recording device and memory control method |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170062355A (en) * | 2015-11-27 | 2017-06-07 | 삼성전자주식회사 | Electronic systems and method of operating electronic systems |
US10768859B1 (en) | 2019-04-10 | 2020-09-08 | SK Hynix Inc. | History-based memory control system and method |
KR20200119633A (en) | 2019-04-10 | 2020-10-20 | 에스케이하이닉스 주식회사 | Memory control system based on history and its control method |
WO2023128479A1 (en) * | 2021-12-30 | 2023-07-06 | 주식회사 엘엑스세미콘 | Memory control system and display device including memory control function |
Also Published As
Publication number | Publication date |
---|---|
KR102031952B1 (en) | 2019-10-14 |
JP2018152112A (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6373559B2 (en) | MEMORY DEVICE AND MEMORY DEVICE OPERATION METHOD | |
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 | |
US10991446B2 (en) | Electronic device performing training on memory device by rank unit and training method thereof | |
KR101719092B1 (en) | Hybrid memory device | |
KR102453542B1 (en) | Memory device supporting skip calculation mode and method of operating the same | |
EP3361386B1 (en) | Intelligent far memory bandwidth scaling | |
US11036412B2 (en) | Dynamically changing between latency-focused read operation and bandwidth-focused read operation | |
JP2014049135A (en) | Memory device for reducing write fail, memory system including the same, and write method thereof | |
KR20170029775A (en) | Memory system and method of operating the same | |
JP2018152112A (en) | Memory device and method of operating the same | |
US9064603B1 (en) | Semiconductor memory device and memory system including the same | |
US11232029B2 (en) | Stacked memory device and operating method thereof | |
KR102491579B1 (en) | Memory device, memory module and memory system | |
JP2021043975A (en) | Interface circuit, memory device, and operation method for the same | |
US20130227210A1 (en) | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input | |
KR20120130871A (en) | Memory system and refresh control method thereof | |
US20140331006A1 (en) | Semiconductor memory devices | |
US11106559B2 (en) | Memory controller and memory system including the memory controller | |
KR20220032366A (en) | Memory device performing configurable mode set and Operating method thereof | |
KR102345539B1 (en) | Memory Device performing internal process and Operating Method thereof | |
KR20240076574A (en) | Memory controller, electronic system including the same and method of controlling memory access |
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 |