KR20230125706A - Memory system including memory device and memory controller and operating method thereof - Google Patents
Memory system including memory device and memory controller and operating method thereof Download PDFInfo
- Publication number
- KR20230125706A KR20230125706A KR1020220068915A KR20220068915A KR20230125706A KR 20230125706 A KR20230125706 A KR 20230125706A KR 1020220068915 A KR1020220068915 A KR 1020220068915A KR 20220068915 A KR20220068915 A KR 20220068915A KR 20230125706 A KR20230125706 A KR 20230125706A
- Authority
- KR
- South Korea
- Prior art keywords
- requests
- read
- write
- request
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
본 발명에 따른 메모리 시스템은, 복수의 뱅크 단위로 구분되는 메모리 셀 어레이를 포함하는 메모리 장치, 및 상기 메모리 셀 어레이에 포함된 메모리 뱅크들에 데이터를 입출력하기 위해 읽기 요청들 또는 쓰기 요청들을 상기 메모리 장치로 전달하고, 읽기-쓰기 스위칭 포인트를 기점으로 상기 읽기 요청들을 상기 쓰기 요청들과 구분하여 전달하는 메모리 컨트롤러를 포함할 수 있다. 상기 메모리 컨트롤러는, 상기 읽기 요청들 또는 상기 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 입출력 요청들 중 상기 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 제1 예비 입출력 요청을 위해 상기 메모리 뱅크들의 상태를 전환하는 적어도 하나의 제1 뱅크 요청이 스케줄링 되는 것을 차단하고, 상기 읽기-쓰기 스위칭 포인트 이후에 다음 턴에서 스케줄링 예정인 제2 예비 입출력 요청들을 위해 상기 메모리 뱅크들의 상태를 전환하는 제2 뱅크 요청들 중 적어도 하나가 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 되도록 제어할 수 있다.A memory system according to the present invention provides a memory device including a memory cell array divided into a plurality of banks, and read requests or write requests for inputting/outputting data to and from memory banks included in the memory cell array. and a memory controller that transfers the read requests to a device and distinguishes the read requests from the write requests based on a read-write switching point. In a current turn of I/O requests including the read requests or the write requests, the memory controller performs a read-write switching point based on the number of I/O requests processed in the current turn among the I/O requests. at least one first bank that sets a proximity switching point and switches states of the memory banks for at least one first preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point; At least one of the second bank requests that blocks a request from being scheduled and switches the state of the memory banks for second reserve I/O requests scheduled to be scheduled in a next turn after the read-write switching point, with the proximate switching point It can be controlled to be scheduled between the read-write switching points.
Description
본 발명은 메모리 컨트롤러에 관한 것으로, 더욱 상세하게는 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법에 관한 것이다.The present invention relates to a memory controller, and more particularly, to a memory system including a memory device and a memory controller and an operation method thereof.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에, 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 불휘발성 반도체 메모리 장치는 전원의 공급 여부에 관계없이 보존되어야 할 내용을 저장하는 데 쓰인다.Semiconductor memory devices can be largely classified into volatile semiconductor memory devices and non-volatile semiconductor memory devices. A volatile semiconductor memory device has a high read/write speed, but has a disadvantage in that stored contents disappear when power supply is cut off. On the other hand, a nonvolatile semiconductor memory device retains its contents even if power supply is interrupted. Therefore, nonvolatile semiconductor memory devices are used to store contents to be preserved regardless of whether power is supplied or not.
휘발성 반도체 메모리 장치를 포함하는 메모리 시스템은 메모리 컨트롤러를 통해 휘발성 반도체 메모리 장치를 제어할 수 있다. 메모리 컨트롤러는 휘발성 반도체 메모리 장치에 데이터를 입출력하기 위해 다양한 커맨드를 휘발성 반도체 메모리 장치를 전달할 수 있다. 메모리 컨트롤러는 데이터의 입출력이 효율적으로 이루어지도록 다양한 커맨드의 전송 순서를 미리 스케줄링할 수 있다. 다만, 다양한 커맨드의 스케줄링 방법에 따라 메모리 시스템의 성능은 영향을 받을 수 있다.A memory system including a volatile semiconductor memory device may control the volatile semiconductor memory device through a memory controller. The memory controller may transmit various commands to the volatile semiconductor memory device to input/output data into the volatile semiconductor memory device. The memory controller may pre-schedule a transmission sequence of various commands so that data input/output is performed efficiently. However, the performance of the memory system may be affected by various command scheduling methods.
본 발명은 상술한 과제를 해결하기 위한 것으로서, 본 발명의 목적은 읽기-쓰기 스위칭 포인트를 통해 읽기 요청들과 쓰기 요청들을 분리하여 전송하고, 읽기-쓰기 스위칭 포인트 이전에 특정 시점 이후에는 현재 턴의 불필요한 뱅크 요청을 스케줄링하는 것을 차단하는 메모리 시스템을 제공하는 데 있다.The present invention is to solve the above problems, and an object of the present invention is to separate and transmit read requests and write requests through a read-write switching point, and after a specific point in time before the read-write switching point, the current turn It is to provide a memory system that blocks unnecessary bank requests from being scheduled.
본 발명의 다른 목적은 현재 턴의 읽기-쓰기 스위칭 포인트 이전에 특정 시점 이후에는 다음 턴의 뱅크 요청을 스케줄링하는 것을 허용하는 메모리 시스템을 제공하는 데 있다.Another object of the present invention is to provide a memory system that allows scheduling of a bank request of a next turn after a specific point in time prior to a read-write switching point of a current turn.
본 발명에 따른 메모리 시스템은, 복수의 뱅크 단위로 구분되는 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 셀 어레이에 포함된 메모리 뱅크들에 데이터를 입출력하기 위해 읽기 요청들 또는 쓰기 요청들을 상기 메모리 장치로 전달하고, 읽기-쓰기 스위칭 포인트를 기점으로 상기 읽기 요청들을 상기 쓰기 요청들과 구분하여 전달하는 메모리 컨트롤러를 포함할 수 있다. 상기 메모리 컨트롤러는, 상기 읽기 요청들 또는 상기 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 입출력 요청들 중 상기 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 제1 예비 입출력 요청을 위해 상기 메모리 뱅크들의 상태를 전환하는 적어도 하나의 제1 뱅크 요청이 스케줄링 되는 것을 차단하고, 상기 읽기-쓰기 스위칭 포인트 이후에 다음 턴에서 스케줄링 예정인 제2 예비 입출력 요청들을 위해 상기 메모리 뱅크들의 상태를 전환하는 제2 뱅크 요청들 중 적어도 하나가 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 되도록 제어할 수 있다.A memory system according to the present invention includes a memory device including a memory cell array divided into a plurality of bank units; and transferring read requests or write requests to the memory device to input/output data to memory banks included in the memory cell array, and distinguishing the read requests from the write requests based on a read-write switching point. It may include a memory controller that transmits In a current turn of I/O requests including the read requests or the write requests, the memory controller performs a read-write switching point based on the number of I/O requests processed in the current turn among the I/O requests. at least one first bank that sets a proximity switching point and switches states of the memory banks for at least one first preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point; At least one of the second bank requests that blocks a request from being scheduled and switches the state of the memory banks for second reserve I/O requests scheduled to be scheduled in a next turn after the read-write switching point, with the proximate switching point It can be controlled to be scheduled between the read-write switching points.
또한, 상기 제1 뱅크 요청들 또는 상기 제2 뱅크 요청들은, 상기 메모리 뱅크들 중 하나를 액티브 상태로 전환하는 액티브 요청; 및 상기 메모리 뱅크들 중 액티브 상태인 메모리 뱅크를 스탠바이 상태로 전환하는 프리차지 요청을 포함할 수 있다.In addition, the first bank requests or the second bank requests may include an active request for switching one of the memory banks into an active state; and a precharge request for converting an active memory bank among the memory banks into a standby state.
또한, 상기 메모리 컨트롤러는 상기 현재 턴에서 수행 예정인 입출력 요청들의 최대 요청 개수 또는 지정된 시간에 따라 상기 읽기-쓰기 스위칭 포인트를 설정할 수 있다.Also, the memory controller may set the read-write switching point according to the maximum number of I/O requests scheduled to be performed in the current turn or a specified time.
또한, 상기 메모리 컨트롤러는, 상기 현재 턴에서 스케줄링 예정인 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 페이지-히트 요청들의 수를 획득하고, 상기 최대 요청 개수와 상기 현재 턴에서 처리된 상기 입출력 요청들의 개수의 차이 값을 획득하고, 상기 페이지-히트 요청들의 수가 상기 차이 값보다 작은 경우, 상기 현재 턴에서 처리된 입출력 요청들이 처리 완료된 시점을 상기 근접 스위칭 포인트로 설정할 수 있다.Also, the memory controller obtains the number of page-hit requests having the same bank value and row value as those of memory banks currently in an active state among I/O requests scheduled to be scheduled in the current turn, and determines the maximum number of requests and the current turn A difference value of the number of input/output requests processed in is obtained, and when the number of page-hit requests is less than the difference value, a point in time when the input/output requests processed in the current turn are completed may be set as the proximity switching point. .
또한, 상기 메모리 컨트롤러는, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 다른 입출력 요청을 상기 현재 턴에 스케줄링 하지 않을 수 있다.In addition, the memory controller may, between the proximity switching point and the read-write switching point, among input/output requests scheduled for the current turn, input/output requests having different bank values and column values from memory banks currently in an active state, You may not schedule on the current turn.
또한, 상기 메모리 컨트롤러는, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 입출력 요청을 상기 현재 턴에 모두 스케줄링 할 수 있다.In addition, the memory controller may, between the proximity switching point and the read-write switching point, input/output requests having the same bank value and row value as memory banks currently active among I/O requests scheduled for the current turn, All can be scheduled during the current turn.
또한, 상기 메모리 컨트롤러는, 호스트로부터 수신되는 상기 읽기 요청들을 저장하는 읽기 요청 큐; 상기 호스트로부터 수신되는 상기 쓰기 요청들을 저장하는 쓰기 요청 큐; 상기 읽기 요청들 또는 상기 쓰기 요청들을 상기 메모리 뱅크들의 상태에 기초하여 상기 현재 턴 또는 상기 다음 턴에 스케줄링하는 읽기-쓰기 스케줄러; 및 상기 읽기-쓰기 스케줄러의 입출력 요청들의 스케줄링에 따라 상기 읽기 요청들, 상기 쓰기 요청들 및 상기 메모리 뱅크들의 상태를 전환하는 뱅크 요청들을 상기 메모리 장치로 전송하는 중재 회로를 포함할 수 있다.The memory controller may further include a read request queue storing the read requests received from the host; a write request queue storing the write requests received from the host; a read-write scheduler that schedules the read requests or the write requests in the current turn or the next turn based on states of the memory banks; and an arbitration circuit that transmits the read requests, the write requests, and bank requests for switching states of the memory banks to the memory device according to the scheduling of the I/O requests of the read-write scheduler.
또한, 상기 읽기 요청 큐 또는 상기 쓰기 요청 큐는 상기 읽기 요청들 또는 상기 쓰기 요청들 각각에 대응하는 뱅크 정보 및 열 정보를 포함하고, 상기 읽기 요청들의 처리 여부를 나타내는 유효 정보를 포함할 수 있다.Also, the read request queue or the write request queue may include bank information and column information corresponding to each of the read requests or the write requests, and may include valid information indicating whether the read requests are processed.
또한, 상기 읽기-쓰기 스케줄러는, 상기 중재 회로에 의해 상기 읽기 요청들 또는 상기 쓰기 요청들 중 하나가 상기 메모리 장치로 전송되면, 상기 읽기 요청 큐 또는 상기 쓰기 요청 큐의 상기 뱅크 정보, 상기 열 정보 및 상기 유효 정보를 갱신하고, 갱신된 정보에 기초하여 상기 근접 스위칭 포인트를 결정할 수 있다.In addition, the read-write scheduler may, when one of the read requests or the write requests is transmitted to the memory device by the arbitration circuit, the bank information and the column information of the read request queue or the write request queue. and updating the valid information, and determining the proximity switching point based on the updated information.
또한, 상기 중재 회로는 상기 읽기-쓰기 스케줄러로부터 수신된 상기 입출력 요청들의 스케줄링에 기초하여 상기 입출력 요청들, 상기 입출력 요청들에 대응하는 액티브 요청들 및 상기 입출력 요청들에 대응하는 프리차지 요청들 순서로 우선순위를 결정할 수 있다.Further, the arbitration circuit may determine the order of the input/output requests, active requests corresponding to the input/output requests, and precharge requests corresponding to the input/output requests based on the scheduling of the input/output requests received from the read-write scheduler. priorities can be determined.
또한, 상기 메모리 컨트롤러는, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 된 상기 제2 뱅크 요청들 중 적어도 하나에 대응하는 입출력 요청을 상기 다음 턴에서 가장 먼저 스케줄링 할 수 있다.Also, the memory controller may schedule an input/output request corresponding to at least one of the second bank requests scheduled between the proximity switching point and the read-write switching point first in the next turn.
본 발명에 따른 메모리 시스템은, 복수의 뱅크 단위로 구분되는 메모리 셀 어레이를 포함하는 메모리 장치; 및 상기 메모리 셀 어레이에 포함된 메모리 뱅크들에 데이터를 입출력하기 위해 읽기 요청들 또는 쓰기 요청들을 상기 메모리 장치로 전달하고, 읽기-쓰기 스위칭 포인트를 기점으로 상기 읽기 요청들을 상기 쓰기 요청들과 구분하여 전달하는 메모리 컨트롤러를 포함할 수 있다. 상기 메모리 컨트롤러는, 상기 읽기 요청들 또는 상기 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 현재 턴에서 처리된 상기 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 예비 입출력 요청을 위해 상기 메모리 뱅크들 중 하나를 액티브 상태로 전환하는 제1 액티브 요청이 스케줄링 되는 것을 차단하도록 제어할 수 있다.A memory system according to the present invention includes a memory device including a memory cell array divided into a plurality of bank units; and transferring read requests or write requests to the memory device to input/output data to memory banks included in the memory cell array, and distinguishing the read requests from the write requests based on a read-write switching point. It may include a memory controller that transmits The memory controller, in a current turn of I/O requests including the read requests or the write requests, determines a proximity switching point prior to the read-write switching point based on the number of I/O requests processed in the current turn. setting, and that a first active request for switching one of the memory banks into an active state for at least one preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point is scheduled You can control blocking.
또한, 상기 메모리 컨트롤러는, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 적어도 하나의 예비 입출력 요청을 위해 상기 메모리 뱅크들 중 액티브 상태인 메모리 뱅크를 스탠바이 상태로 전환하는 제1 프리차지 요청이 스케줄링 되는 것을 허용하도록 제어할 수 있다.In addition, the memory controller may include a first precharge request for switching an active memory bank among the memory banks to a standby state for the at least one preliminary input/output request between the proximity switching point and the read-write switching point. You can control to allow this to be scheduled.
또한, 상기 메모리 컨트롤러는, 상기 입출력 요청들의 다음 턴에 있어서, 상기 제1 액티브 요청에 대응하는 메모리 뱅크와 동일한 뱅크 주소를 가지는 입출력 요청을 위한 제2 액티브 요청 또는 제2 프리차지 요청을 상기 다음 턴에서 가장 먼저 스케줄링 할 수 있다.In addition, in a next turn of the I/O requests, the memory controller sends a second active request or a second precharge request for an I/O request having the same bank address as the memory bank corresponding to the first active request in the next turn. can be scheduled first.
또한, 상기 메모리 컨트롤러는, 상기 입출력 요청들의 다음 턴에 있어서, 상기 제1 프리차지 요청에 대응하는 메모리 뱅크와 동일한 뱅크 주소를 가지는 입출력 요청을 위한 제3 액티브 요청을 상기 제2 액티브 요청 또는 제2 프리차지 요청의 직후에 스케줄링 할 수 있다.Also, in a next turn of the I/O requests, the memory controller converts a third active request for an I/O request having the same bank address as the memory bank corresponding to the first precharge request into the second active request or the second active request. It can be scheduled right after the precharge request.
본 발명에 따른 메모리 시스템의 동작 방법은, 메모리 컨트롤러로부터 메모리 장치로 전송되는 읽기 요청들 또는 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 현재 턴에서 수행 예정인 입출력 요청들의 최대 요청 개수 또는 지정된 시간에 따라 읽기-쓰기 스위칭 포인트를 설정하는 단계; 상기 입출력 요청들 중 상기 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하는 단계; 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 제1 예비 입출력 요청을 위해 상기 메모리 장치에 포함된 메모리 뱅크들의 상태를 전환하는 적어도 하나의 제1 뱅크 요청이 스케줄링 되는 것을 차단하는 단계; 및 상기 읽기-쓰기 스위칭 포인트 이후에 다음 턴에서 스케줄링 예정인 제2 예비 입출력 요청들을 위해 상기 메모리 뱅크들의 상태를 전환하는 제2 뱅크 요청들 중 적어도 하나를 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링하는 단계를 포함할 수 있다.A method of operating a memory system according to the present invention relates to a maximum number of I/O requests scheduled to be performed in the current turn or a specified number of I/O requests in a current turn including read requests or write requests transmitted from a memory controller to a memory device. setting read-write switching points according to time; setting a proximity switching point before the read-write switching point based on the number of input/output requests processed in the current turn among the input/output requests; At least one first bank request for switching states of memory banks included in the memory device for at least one first preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point Blocking this scheduling; and second bank requests for switching states of the memory banks for second preliminary input/output requests scheduled to be scheduled in a next turn after the read-write switching point, between the proximity switching point and the read-write switching point. It may include the step of scheduling in.
또한, 상기 근접 스위칭 포인트를 설정하는 단계는, 상기 현재 턴에서 스케줄링 예정인 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 페이지-히트 요청들의 수를 획득하는 단계; 상기 최대 요청 개수와 상기 현재 턴에서 처리된 상기 입출력 요청들의 개수의 차이 값을 획득하는 단계; 및 상기 페이지-히트 요청들의 수가 상기 차이 값보다 작은 경우, 상기 현재 턴에서 처리된 입출력 요청들이 처리 완료된 시점을 상기 근접 스위칭 포인트로 설정하는 단계를 포함할 수 있다.The setting of the proximity switching point may include obtaining the number of page-hit requests having the same bank value and column value as memory banks currently active among I/O requests to be scheduled in the current turn; obtaining a difference value between the maximum number of requests and the number of input/output requests processed in the current turn; and if the number of page-hit requests is smaller than the difference value, setting a point in time when input/output requests processed in the current turn are processed as the proximity switching point.
또한, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 다른 입출력 요청을 상기 현재 턴에 스케줄링 하지 않는 단계를 더 포함할 수 있다.In addition, between the proximity switching point and the read-write switching point, among I/O requests scheduled for scheduling in the current turn, I/O requests having different bank values and column values from memory banks currently active are not scheduled in the current turn. Further steps may be included.
또한, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 입출력 요청을 상기 현재 턴에 모두 스케줄링 하는 단계를 더 포함할 수 있다.In addition, between the proximity switching point and the read-write switching point, among I/O requests scheduled for scheduling in the current turn, all I/O requests having the same bank value and row value as memory banks currently active are scheduled in the current turn. It may further include steps to do.
또한, 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 된 상기 제2 뱅크 요청들 중 적어도 하나에 대응하는 입출력 요청을 상기 다음 턴에서 가장 먼저 스케줄링 하는 단계를 더 포함할 수 있다.The method may further include scheduling an I/O request corresponding to at least one of the second bank requests scheduled between the proximity switching point and the read-write switching point first in the next turn.
본 발명에 의하면, 현재 턴의 불필요한 뱅크 요청을 차단하여 전력 소비를 감소시킬 수 있다.According to the present invention, it is possible to reduce power consumption by blocking unnecessary bank requests of the current turn.
또한, 본 발명에 의하면, 다음 턴의 뱅크 요청들 중 일부를 현재 턴에 스케줄링하여 읽기-쓰기 전환 시의 레이턴시를 감소시키고, 대역폭을 증가시킬 수 있다.In addition, according to the present invention, some of the bank requests of the next turn may be scheduled in the current turn to reduce latency and increase bandwidth during read-write conversion.
도 1은 일 실시 예에 따른 메모리 시스템을 나타내는 블록도이다.
도 2는, 도 1의 메모리 컨트롤러의 커맨드 전송 동작을 나타내는 블록도이다.
도 3은, 도 2의 읽기 요청 큐, 쓰기 요청 큐, 읽기 요청 정보, 쓰기 요청 정보 및 뱅크 상태 정보의 일 예를 나타내는 도면이다.
도 4는, 도 3의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법을 나타내는 도면이다.
도 5는, 도 4의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다.
도 6은, 도 2의 읽기 요청 큐, 쓰기 요청 큐, 읽기 요청 정보, 쓰기 요청 정보 및 뱅크 상태 정보의 다른 예를 나타내는 도면이다.
도 7은, 도 6의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법의 일 예를 나타내는 도면이다.
도 8은, 도 7의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다.
도 9는, 도 6의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법의 다른 예를 나타내는 도면이다.
도 10은, 도 9의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다.
도 11은, 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다.
도 12는 일 실시 예에 따른 모바일 시스템을 나타내는 도면이다.1 is a block diagram illustrating a memory system according to an exemplary embodiment.
FIG. 2 is a block diagram illustrating a command transmission operation of the memory controller of FIG. 1 .
FIG. 3 is a diagram illustrating an example of a read request queue, a write request queue, read request information, write request information, and bank status information of FIG. 2 .
FIG. 4 is a diagram illustrating a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 3 .
5 is a flowchart illustrating the read-write scheduling method of FIG. 4 .
FIG. 6 is a diagram illustrating another example of the read request queue, write request queue, read request information, write request information, and bank status information of FIG. 2 .
FIG. 7 is a diagram illustrating an example of a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 6 .
8 is a flowchart illustrating the read-write scheduling method of FIG. 7 .
FIG. 9 is a diagram illustrating another example of a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 6 .
10 is a flowchart illustrating the read-write scheduling method of FIG. 9 .
11 is a flowchart illustrating a read-write scheduling method of the memory controller of FIG. 2 .
12 is a diagram illustrating a mobile system according to an exemplary embodiment.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.Hereinafter, embodiments of the present invention will be described clearly and in detail to the extent that those skilled in the art can easily practice the present invention.
또한, 이하에서는, 디램(DRAM)을 본 발명의 특징 및 기능을 설명하기 위한 반도체 메모리 장치의 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.Also, hereinafter, a DRAM will be used as an example of a semiconductor memory device for explaining the features and functions of the present invention. However, those skilled in the art will readily appreciate other advantages and capabilities of the present invention in light of the disclosure herein. The present invention may be implemented or applied through other embodiments. In addition, the detailed description may be modified or changed according to viewpoints and applications without significantly departing from the scope, spirit, and other objectives of the present invention.
도 1은 일 실시 예에 따른 메모리 시스템을 나타내는 블록도이다. 도 1을 참조하면, 본 발명의 메모리 시스템(1000)은 메모리 컨트롤러(1100)와 메모리 장치(1200)를 포함할 수 있다.1 is a block diagram illustrating a memory system according to an exemplary embodiment. Referring to FIG. 1 , a
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 메모리 장치(1200)에 데이터를 쓰거나, 메모리 장치(1200)에 저장된 데이터를 읽어내는 접근 동작을 수행할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 메모리 장치(1200)에 데이터를 기입하거나, 메모리 장치(1200)에 저장된 데이터를 독출하기 위한 명령어(CMD)와 어드레스(ADDR)를 생성할 수 있다. 메모리 컨트롤러(1100)는 메모리 장치(1200)를 제어하기 위한 메모리 컨트롤러, 응용 프로세서(Application Processor: AP)와 같은 시스템 온 칩(SoC), 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 신호 프로세서(Digital Signal Processor: DSP), 그래픽 처리 유닛 (Graphics Processing Unit: GPU) 중 적어도 하나일 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 각종 신호를 메모리 장치(1200)에 제공함으로써, 메모리 장치(1200)의 전반적인 동작을 제어할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 읽기(read) 및 쓰기(write) 등과 같은 메모리 장치(1200)의 메모리 액세스 동작을 제어할 수 있다. 메모리 컨트롤러(1100)는 커맨드(CMD) 및 어드레스(ADDR)를 메모리 장치(1200)에 제공함으로써, 메모리 장치(1200)에 데이터(DATA)를 기입하거나, 또는 메모리 장치(1200)로부터 데이터(DATA)를 독출할 수 있다. 또한, 메모리 컨트롤러(1100)는 메모리 장치(1200)에 클럭 신호(CLK)를 더 제공할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 메모리 장치(1200)를 제어하기 위해 다양한 종류의 커맨드(CMD)들을 생성할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 데이터(DATA)의 읽기 또는 쓰기를 위해 메모리 코어(1210)에 포함된 메모리 뱅크들의 상태를 전환하는 뱅크 동작에 대응하는 뱅크 요청(bank request)을 생성할 수 있다. 일 예로, 뱅크 요청은 메모리 코어(1210)에 포함된 메모리 뱅크들의 상태를 액티브 상태(active state)로 전환하기 위한 액티브 요청(active request)을 포함할 수 있다. 메모리 장치(1200)는 액티브 요청에 응답하여, 메모리 뱅크들에 포함된 열(row), 즉, 워드 라인(word line)을 활성화시킬 수 있다. 뱅크 요청은 데이터(DATA)의 읽기 또는 쓰기가 완료된 후 메모리 뱅크들을 액티브 상태에서 스탠바이 상태(standby state)로 전환하기 위한 프리차지 요청(precharge request)을 포함할 수 있다. 또한, 메모리 컨트롤러(1100)는 메모리 장치(1200)에서 데이터(DATA)의 읽기 동작 또는 쓰기 동작을 수행하는 입출력 요청(I/O request)(예: CAS request)을 생성할 수 있다. 일 예로, 입출력 요청은 활성화된 메모리 뱅크들에서 데이터(DATA)를 독출하기 위한 읽기 요청(read request)을 포함할 수 있다. 입출력 요청은 활성화된 메모리 뱅크들에 데이터(DATA)를 기입하기 위한 쓰기 요청(write request)을 포함할 수 있다. 또한, 메모리 컨트롤러(1100)는 메모리 뱅크들에 대한 리프레쉬 동작을 제어하기 위한 리프레쉬 요청을 생성할 수 있다. 다만, 여기에서 설명된 커맨드(CMD)의 종류는 예시적인 것이며, 다른 종류의 커맨드(CMD)가 존재할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 메모리 장치(1200)로 전송되는 커맨드(CMD)들의 순서를 결정할 수 있다. 메모리 컨트롤러(1100)는 읽기-쓰기 스케줄러(1110)를 포함할 수 있다. 예를 들면, 읽기-쓰기 스케줄러(1110)는 메모리 장치(1200)로 전송되는 뱅크 요청(예: 액티브 요청 및 프리차지 요청) 및 입출력 요청(예: 읽기 요청 및 쓰기 요청)의 전송 순서를 결정할 수 있다. 뱅크 요청은 읽기 요청에 대응하는 뱅크 요청 또는 쓰기 요청에 대응하는 뱅크 요청을 포함할 수 있다. 읽기-쓰기 스케줄러(1110)는 읽기 요청과 쓰기 요청이 분리되어 전송되도록 스케줄링 할 수 있다. 읽기-쓰기 스케줄러(1110)는 지정된 단위(예: 지정된 요청들의 수 또는 지정된 시간)에 따라 턴을 정하여 일정량의 읽기 요청들 또는 쓰기 요청들이 전송되도록 스케줄링 할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 장치(1200)는 메모리 컨트롤러(1100)에 의해 읽기 요청된 데이터(DATA)를 메모리 컨트롤러(1100) 측으로 출력하거나, 메모리 컨트롤러(1100)에 의해 쓰기 요청된 데이터(DATA)를 메모리 셀에 저장할 수 있다. 메모리 장치(1200)는 커맨드(CMD), 어드레스(ADDR) 및 클럭 신호(CLK)에 기초하여 데이터(DATA)를 입출력할 수 있다. 메모리 장치(1200)는 메모리 코어(1210) 및 제어 로직(1220)을 포함할 수 있다.According to an embodiment, the
여기서, 메모리 장치(1200)는 DRAM(Dynamic Random Access Memory), SDRAM(Synchronous Dynamic Random Access Memory), DDR(Double Data Rate) DRAM, DDR SDRAM, LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory), 정적 랜덤 액세스 메모리(SRAM) 등과 같은 휘발성 메모리 장치일 수도 있다. 또는, 메모리 장치(1200)는 저항성 램(RRAM), 상변화 메모리(PRAM), 자기저항 메모리(MRAM), 강유전체 메모리(FRAM), 스핀주입 자화반전 메모리(STT-RAM) 등과 같은 비휘발성 메모리 장치에서도 구현될 수도 있다. 본 명세서에서는 디램을 기준으로 본 발명의 이점이 설명되었으나, 본 개시의 기술적 사상은 이에 제한되지 않는다.Here, the
일 실시 예에 따르면, 메모리 코어(1210)는 뱅크 단위로 구분되는 메모리 셀 어레이와 로우 디코더, 칼럼 디코더, 감지 증폭기, 기입 드라이버 등을 포함할 수 있다. 메모리 코어(1210)는 메모리 장치(1200)에 쓰기 요청되는 데이터(DATA)를 기입 드라이버를 통해 저장하고, 읽기 요청되는 데이터를 감지 증폭기를 사용하여 독출할 수 있다. 더불어, 셀 어레이에 데이터를 저장 및 유지하기 위한 리프레쉬(Refresh) 동작을 위한 구성이나 어드레스에 따른 선택 회로들이 더 포함될 수 있을 것이다. 하지만, 본 발명은 메모리 코어(1210)에 관련된 기술 사항은 아니기 때문에 이들 구성들에 대한 설명은 생략하기로 한다.According to an embodiment, the
일 실시 예에 따르면, 제어 로직(1220)은 메모리 컨트롤러(1100)로부터 명령어(CMD) 및 어드레스(ADDR)와 같은 제어신호 및 클럭 신호(CLK)를 제공받을 수 있다. 제어 로직(1220)은 제어신호 및 클럭 신호(CLK)를 이용하여, 메모리 장치(1200)의 쓰기, 읽기 또는 삭제 등의 동작을 제어할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 장치(1200)는 메모리 컨트롤러(1100)로부터 수신된 뱅크 요청(예: 액티브 요청 또는 프리차지 요청) 및 입출력 요청(예: 읽기 요청 또는 쓰기 요청)에 기초하여 메모리 코어(1210)의 메모리 뱅크들을 제어할 수 있다. 예를 들면, 메모리 장치(1200)는 액티브 요청에 응답하여 선택된 메모리 뱅크와 열(row)을 활성화할 수 있다. 메모리 장치(1200)는 읽기 요청에 응답하여 활성화된 메모리 뱅크 및 열의 데이터(DATA)를 출력(또는 독출)할 수 있다. 메모리 장치(1200)는 쓰기 요청에 응답하여 활성화된 메모리 뱅크 및 열에 데이터(DATA)를 입력(또는 저장)할 수 있다. 메모리 장치(1200)는 프리차지 요청에 응답하여 활성화된 메모리 뱅크 및 열을 스탠바이 상태(standby state)로 전환할 수 있다.According to an embodiment, the
도 2는, 도 1의 메모리 컨트롤러의 커맨드 전송 동작을 나타내는 블록도이다. 도 2를 참조하면, 메모리 컨트롤러(1100)는 읽기-쓰기 스케줄러(1110), 읽기 요청 큐(1120), 쓰기 요청 큐(1130) 및 중재 회로(1140)를 포함할 수 있다. 메모리 장치(1200)는 메모리 코어(1210)를 포함하고, 메모리 코어(1210)는 복수의 메모리 뱅크를 포함할 수 있다. 일 예로, 복수의 메모리 뱅크는 제1 뱅크(1211), 제2 뱅크(1212), 제3 뱅크(1213) 및 제4 뱅크(1214)를 포함할 수 있다. 이하에서, 메모리 컨트롤러(1100)는 제1 뱅크(1211), 제2 뱅크(1212), 제3 뱅크(1213) 및 제4 뱅크(1214)에 대하여 뱅크 요청(예: 액티브 요청(ACT), 프리차지 요청(PRE)) 또는 입출력 요청(예: 읽기 요청(RD), 쓰기 요청(WR))을 전송하는 것으로 설명될 것이다. 다만, 이는 예시적인 것으로, 메모리 장치(1200)는 적어도 하나 이상의 메모리 뱅크를 포함할 수 있다.FIG. 2 is a block diagram illustrating a command transmission operation of the memory controller of FIG. 1 . Referring to FIG. 2 , the
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 메모리 장치(1200)로 전송되는 뱅크 요청 또는 입출력 요청을 스케줄링 할 수 있다. 예를 들면, 읽기-쓰기 스케줄러(1110)는 읽기 요청 정보(1111), 쓰기 요청 정보(1112) 및 뱅크 상태 정보(1113)를 획득할 수 있다. 읽기 요청 정보(1111)는 읽기 요청(RD)에 관한 정보(예: max burst, current burst, page-hit된 요청들의 수)를 포함할 수 있다. 쓰기 요청 정보(1112)는 쓰기 요청(WR)에 관한 정보(예: max burst, current burst, page-hit된 요청들의 수)를 포함할 수 있다. 뱅크 상태 정보(1113)는 현재 활성화된 뱅크의 정보를 포함할 수 있다. 또한, 읽기-쓰기 스케줄러(1110)는 읽기 요청 큐(1120) 또는 쓰기 요청 큐(1130)에 현재 저장된 요청들의 정보 및 읽기 요청 큐(1120) 또는 쓰기 요청 큐(1130)에 저장된 요청들의 처리 정보를 획득할 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 읽기 요청과 쓰기 요청이 분리되어 전송되도록 스케줄링 할 수 있다. 예를 들면, 읽기-쓰기 스케줄러(1110)는 지정된 단위(예: 지정된 요청들의 수 또는 지정된 시간)에 따라 턴을 정하여 일정량의 읽기 요청들 또는 쓰기 요청들이 전송되도록 스케줄링 할 수 있다. 일 예로, 읽기-쓰기 스케줄러(1110)는 읽기 요청들이 수행되는 턴과 쓰기 요청들이 수행되는 턴이 전환되는 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 읽기-쓰기 스케줄러(1110)는 읽기 턴 또는 쓰기 턴에서 수행되는 요청들의 개수에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 또는 읽기-쓰기 스케줄러(1110)는 읽기 턴 또는 쓰기 턴이 수행되는 시간에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 읽기 요청 큐(1120)는 호스트(미도시)로부터 수신되는 읽기 요청 정보를 관리할 수 있다. 예를 들면, 읽기 요청 큐(1120)는 읽기 요청(RD)들을 저장할 수 있다. 읽기 요청 큐(1120)는 읽기 요청(RD)들의 어드레스(ADDR)(예: 뱅크 및 열)를 저장할 수 있다. 읽기 요청 큐(1120)는 읽기 요청(RD)들의 유효 정보를 저장할 수 있다. 읽기 요청 큐(1120)는 읽기 요청(RD)들 중 하나를 선택적으로 출력할 수 있다. 읽기 요청 큐(1120)는 현재 전송 가능한 읽기 요청(RD)의 정보를 읽기-쓰기 스케줄러(1110)로 제공할 수 있다. 읽기 요청 큐(1120)는 지정된 크기를 가질 수 있다. 읽기 요청 큐(1120)는 새롭게 수신된 읽기 요청(RD)을 빈 공간에 저장하거나 무효 처리된 이전 읽기 요청(RD) 위에 덮어쓸 수 있다.According to an embodiment, the
일 실시 예에 따르면, 쓰기 요청 큐(1130)는 호스트(미도시)로부터 수신되는 쓰기 요청 정보를 관리할 수 있다. 예를 들면, 쓰기 요청 큐(1130)는 쓰기 요청(WR)들을 저장할 수 있다. 쓰기 요청 큐(1130)는 쓰기 요청(WR)들의 어드레스(ADDR)(예: 뱅크 및 열)를 저장할 수 있다. 쓰기 요청 큐(1130)는 쓰기 요청(WR)들의 유효 정보를 저장할 수 있다. 쓰기 요청 큐(1130)는 쓰기 요청(WR)들 중 하나를 선택적으로 출력할 수 있다. 쓰기 요청 큐(1130)는 현재 전송 가능한 쓰기 요청(WR)의 정보를 읽기-쓰기 스케줄러(1110)로 제공할 수 있다. 쓰기 요청 큐(1130)는 지정된 크기를 가질 수 있다. 쓰기 요청 큐(1130)는 새롭게 수신된 쓰기 요청(WR)을 빈 공간에 저장하거나 무효 처리된 이전 쓰기 요청(WR) 위에 덮어쓸 수 있다.According to an embodiment, the
일 실시 예에 따르면, 중재 회로(1140)는 읽기-쓰기 스케줄러(1110)의 제어에 따라 커맨드(CMD)들을 메모리 장치(1200)로 전송할 수 있다. 예를 들면, 중재 회로(1140)는 읽기 턴에 선택된 뱅크에 대응하는 액티브 요청(ACT)을 전송할 수 있다. 중재 회로(1140)는 액티브 요청(ACT)에 대응하는 읽기 요청(RD)을 전송할 수 있다. 중재 회로(1140)는 읽기 요청(RD)이 처리되고, 읽기 요청(RD)이 처리된 뱅크에 대응하는 프리차지 요청(PRE)을 전송할 수 있다. 또한, 중재 회로(1140)는 쓰기 턴에 선택된 뱅크에 대응하는 액티브 요청(ACT)을 전송할 수 있다. 중재 회로(1140)는 액티브 요청(ACT)에 대응하는 쓰기 요청(WR)을 전송할 수 있다. 중재 회로(1140)는 쓰기 요청(WR)이 처리되고, 쓰기 요청(WR)이 처리된 뱅크에 대응하는 프리차지 요청(PRE)을 전송할 수 있다. 중재 회로(1140)는 읽기-쓰기 스케줄러(1110)와 별도로 존재하거나 읽기-쓰기 스케줄러(1110)의 내부에 포함되어 존재할 수 있다.According to an embodiment, the
도 3은, 도 2의 읽기 요청 큐, 쓰기 요청 큐, 읽기 요청 정보, 쓰기 요청 정보 및 뱅크 상태 정보의 일 예를 나타내는 도면이다. 도 3을 참조하면, 읽기 요청 큐(1120) 및 쓰기 요청 큐(1130) 각각은 9개의 요청들을 저장할 수 있다. 다만, 이는 예시적인 것으로, 읽기 요청 큐 및 쓰기 요청 큐 각각은 적어도 하나 이상의 요청들을 저장할 수 있다.FIG. 3 is a diagram illustrating an example of a read request queue, a write request queue, read request information, write request information, and bank status information of FIG. 2 . Referring to FIG. 3 , each of the read
일 실시 예에 따르면, 읽기 요청 큐(1120) 및 쓰기 요청 큐(1130)는 입력되는 순서에 따라 요청들을 저장할 수 있다. 읽기 요청 큐(1120) 또는 쓰기 요청 큐(1130)는 읽기 요청(RD) 또는 쓰기 요청(WR)에 관한 정보를 포함할 수 있다. 읽기 요청(RD) 또는 쓰기 요청(WR)에 관한 정보는 읽기 요청(RD) 또는 쓰기 요청(WR)에 대응하는 어드레스(예: 뱅크 값(BANK), 열 값(ROW)) 및 유효 정보(VALID)를 포함할 수 있다. 유효 정보(VALID)는 해당 입출력 요청의 처리 여부(또는 메모리 장치(1200)로 전송 여부)를 표시할 수 있다. 일 예로, 처리된 입출력 요청은 유효 정보(VALID)가 0으로 표시(예: W1, W2, W3, W4)될 수 있다. 아직 처리되지 않은 입출력 요청은 유효 정보(VALID)가 1로 표시(예: R1, R2, R3, R4, W5, W6, W7, W8, W9)될 수 있다.According to an embodiment, the
일 실시 예에 따르면, 읽기 요청 정보(1111) 및 쓰기 요청 정보(1112) 각각은 최대 버스트(max burst) 정보 및 버스트(burst) 정보를 포함할 수 있다. 예를 들면, 최대 버스트 정보는 하나의 턴에서 스케줄링 되는 입출력 요청들의 수를 나타낼 수 있다. 버스트 정보는 처리 완료된(또는 메모리 장치(1200)로 전송 완료된) 입출력 요청들의 수를 나타낼 수 있다.According to an embodiment, each of the read
일 실시 예에 따르면, 뱅크 상태 정보(1113)는 메모리 장치(1200)의 메모리 뱅크들(1211, 1212, 1213, 1214)의 액티브 상태 정보를 나타낼 수 있다. 예를 들면, 뱅크 상태 정보(1113)는 뱅크 정보(BANK) 및 액티브 상태의 열 정보(ROW)를 포함할 수 있다.According to an embodiment, the
도 4는, 도 3의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법을 나타내는 도면이다. 도 2 내지 도 4를 참조하면, 메모리 컨트롤러(1100)는 턴을 정하여 읽기 요청(RD)들과 쓰기 요청(WR)들을 구분하여 스케줄링 할 수 있다. 도 4에서는 현재 턴(this turn)이 쓰기 턴으로 설정되고, 다음 턴(next turn)이 읽기 턴으로 설정된 것으로 도시되었다. 다만, 이는 예시적인 것으로, 읽기 턴과 쓰기 턴은 교번하여 반복될 수 있다. 일 예로, 현재 턴이 쓰기 턴이면 다음 턴은 읽기 턴이 되고, 현재 턴이 읽기 턴이면 다음 턴은 쓰기 턴이 될 수 있다.FIG. 4 is a diagram illustrating a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 3 . Referring to FIGS. 2 to 4 , the
일 실시 예에 따르면, 메모리 컨트롤러(1100)의 읽기-쓰기 스케줄러(1110)는 현재 턴(예: 쓰기 턴)의 요청 큐(예: 쓰기 요청 큐(1130))를 확인할 수 있다. 예를 들면, 현재 쓰기 턴의 시작 시점에, 쓰기 요청 큐(1130)는 제1 쓰기 요청(W1) 내지 제6 쓰기 요청(W6)을 저장하고 있을 수 있다. 이에 읽기-쓰기 스케줄러(1110)는 어드레스(또는 뱅크 값 및 열 값)에 기초하여 제1 쓰기 요청(W1) 내지 제4 쓰기 요청(W4)에 대응하는 액티브 요청들(A11, A21, A31, A41)을 각 메모리 뱅크(BANK1, BANK2, BANK3, BANK4)에 스케줄링 할 수 있다. 서로 다른 뱅크들에 스케줄링 되는 액티브 요청들(A11, A21, A31, A41)은 비교적 짧은 제1 지정된 시간 간격으로 스케줄링 될 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 제1 지정된 시간보다 긴 제2 지정된 시간(예: tRCD)의 경과 후 제1 쓰기 요청(W1) 내지 제4 쓰기 요청(W4)을 각 메모리 뱅크(BANK1, BANK2, BANK3, BANK4)에 스케줄링 할 수 있다. 액티브 요청과 입출력 요청(예: 읽기 요청 또는 쓰기 요청) 사이에는 제2 지정된 시간(예: tRCD) 간격이 필요하다. 제1 쓰기 요청(W1) 내지 제4 쓰기 요청(W4)은 제2 지정된 시간보다 짧은 제3 지정된 시간 간격으로 스케줄링 될 수 있다. 입출력 요청들은 지정된 뱅크와 관계없이 제3 지정된 시간 간격으로 스케줄링 될 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 제2 쓰기 요청(W2)과 제6 쓰기 요청(W6)은 동일한 뱅크(예: bank2)에 다른 열(예: row1, row10)에 지정되어 페이지 충돌(page conflict) 상황이 발생할 수 있다. 이에, 읽기-쓰기 스케줄러(1110)는 제2 쓰기 요청(W2)을 쓰기 동작 후 바로 프리차지 동작을 수행하는 자동 프리차지(auto precharge) 커맨드로 스케줄링 할 수 있다. 따라서, 제2 쓰기 요청(W2) 이후에 프리차지 요청 없이 액티브 요청이 바로 스케줄링 될 수 있다.According to an embodiment, the second write request (W2) and the sixth write request (W6) are assigned to different columns (eg, row1, row10) in the same bank (eg, bank2), resulting in a page conflict situation. can happen Accordingly, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 매 요청이 스케줄링 될 때마다 현재 턴(예: 쓰기 턴)의 요청 큐(예: 쓰기 요청 큐(1130))를 확인할 수 있다. 예를 들면, 제4 쓰기 요청(W4)이 스케줄링 된 후 읽기-쓰기 스케줄러(1110)가 쓰기 요청 큐(1130)를 확인할 때, 쓰기 요청 큐(1130)는 제7 쓰기 요청(W7) 내지 제9 쓰기 요청(W9)을 더 저장하고 있을 수 있다. 읽기-쓰기 스케줄러(1110)는 제5 쓰기 요청(W5) 내지 제9 쓰기 요청(W9)의 어드레스에 기초하여 스케줄링 할 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 현재 턴(예: 쓰기 턴)의 요청 정보(예: 읽기 요청 정보(1111) 또는 쓰기 요청 정보(1112))에 기초하여 읽기-쓰기 스위칭 포인트(RW switching point)를 설정할 수 있다. 예를 들면, 쓰기 요청 정보(1112)에서 최대 버스트 정보가 8이므로, 읽기-쓰기 스케줄러(1110)는 제5 쓰기 요청(W5) 내지 제8 쓰기 요청(W8)에 대응하는 스케줄링 후 다음 턴(예: 읽기 턴)을 스케줄링 할 수 있다. 일 예로, 제5 쓰기 요청(W5), 제7 쓰기 요청(W7) 및 제8 쓰기 요청(W8)은 제1 쓰기 요청(W1)과 페이지-히트(page-hit)(예: 페이지-히트(page-hit)는 입출력 요청의 뱅크 값 및 열 값이 동일한 것을 의미)인 상태이므로, 추가적인 뱅크 요청 없이 액티브 상태의 제1 뱅크(BANK1)에 스케줄링 될 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 제6 쓰기 요청(W6)에 대응하는 액티브 요청(A22)을 제2 뱅크(BANK2)에 스케줄링 할 수 있다. 제6 쓰기 요청(W6)은 제2 쓰기 요청(W2)과 뱅크 값은 동일하나 열 값이 다르기 때문에, 메모리 뱅크를 프리차지하고 다시 액티브 시키는 동작이 필요하다. 다만, 제2 쓰기 요청(W2)이 자동 프리차지 커맨드였기 때문에, 읽기-쓰기 스케줄러(1110)는 액티브 요청(A22)을 프리차지 요청 없이 제2 쓰기 요청(W2)의 다음에 스케줄링 할 수 있다. 한편, 동일한 뱅크에 스케줄링 되는 두 액티브 요청 사이에는 제2 지정된 시간(예: tRCD)보다 긴 제4 지정된 시간(예: tRC)이 필요하다. 읽기-쓰기 스케줄러(1110)는 액티브 요청(A21)으로부터 제4 지정된 시간(예: tRC) 이후 액티브 요청(A22)을 스케줄링 할 수 있다.According to an embodiment, the read-
일 실시 예에 따르면, 제5 쓰기 요청(W5) 내지 제8 쓰기 요청(W8)에 제3 뱅크(BANK3)에 관한 요청이 없기 때문에, 읽기-쓰기 스케줄러(1110)는 제3 뱅크(BANK3)에 프리차지 요청(P31)을 스케줄링 할 수 있다. 쓰기 요청과 프리차지 요청 사이에는 쓰기 요청의 처리에 필요한 시간(예: tWR)과 추가 시간(a)이 필요할 수 있다.According to an embodiment, since there is no request for the third bank BANK3 in the fifth to eighth write requests W5 to W8, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 읽기-쓰기 스위칭 포인트 이후 다음 턴(예: 읽기 턴)을 스케줄링 할 수 있다. 읽기-쓰기 스케줄러(1110)는 다음 턴(예: 읽기 턴)의 요청 큐(예: 읽기 요청 큐(1120))를 확인할 수 있다. 예를 들면, 읽기-쓰기 스위칭 포인트에, 읽기 요청 큐(1120)는 제1 읽기 요청(R1) 내지 제4 읽기 요청(R4)을 저장하고 있을 수 있다. 읽기-쓰기 스케줄러(1110)는 제1 읽기 요청(R1) 내지 제4 읽기 요청(R4)을 스케줄링 하기 위해 뱅크 상태 정보(1113)를 통해 각 메모리 뱅크(BANK1, BANK2, BANK3, BANK4)의 액티브 상태를 확인할 수 있다. 또한, 읽기-쓰기 스케줄러(1110)는 쓰기 요청 큐(1130)를 통해 현재 턴(예: 쓰기 턴)의 스케줄링 상태를 확인할 수 있다. According to an embodiment, the read-
일 실시 예에 따르면, 읽기-쓰기 스케줄러(1110)는 각 메모리 뱅크의 상태 및 요청들 사이의 필요한 시간에 기초하여 제1 읽기 요청(R1) 내지 제4 읽기 요청(R4)을 스케줄링 할 수 있다. 일 예로, 읽기-쓰기 스케줄러(1110)는 제1 읽기 요청(R1), 제2 읽기 요청(R) 및 제4 읽기 요청(R4)에 대응하는 프리차지 요청들(P11, P21, P41)을 스케줄링 할 수 있다. 제3 뱅크(BANK3)는 현재 턴(예: 쓰기 턴)에서 이미 프리차지 되었으므로(예: P31) 다음 턴(예: 읽기 턴)에서는 프리차지 요청이 필요하지 않을 수 있다. 읽기-쓰기 스케줄러(1110)는 현재 턴(예: 쓰기 턴)의 스케줄링과의 필요 시간 간격을 고려하여, 프리차지 요청들(P11, P21, P41)을 스케줄링 할 수 있다. 프리차지 요청들(P11, P21, P41)이 스케줄링 된 후, 읽기-쓰기 스케줄러(1110)는 제1 읽기 요청(R1) 내지 제4 읽기 요청(R4)에 대응하는 액티브 요청들(A12, A23, A32, A42)을 스케줄링 할 수 있다. 프리차지 요청과 액티브 요청 사이에는 제5 지정된 시간(tRP)이 필요할 수 있다. 액티브 요청들(A12, A23, A32, A42)이 스케줄링 된 후, 읽기-쓰기 스케줄러(1110)는 제1 읽기 요청(R1) 내지 제4 읽기 요청(R4)을 스케줄링 할 수 있다.According to an embodiment, the read-
상술한 바와 같이, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 읽기 요청들 또는 쓰기 요청들을 지정된 수 또는 지정된 시간만큼 분리하여 스케줄링 하고, 메모리 장치(1200)로 읽기 요청들 또는 쓰기 요청들을 전송할 수 있다. 이는 동종의 요청들 사이(예: 읽기 요청들 사이 또는 쓰기 요청들 사이)에 필요한 시간이 이종의 요청들 사이(예: 읽기 요청과 쓰기 요청 사이)에 필요한 시간보다 짧기 때문이다. 메모리 컨트롤러(1100)는 동종의 요청들을 하나의 턴에 묶어서 처리하여 동작 시간을 단축할 수 있다. 다만, 읽기-쓰기 스위칭 포인트를 설정하여 동종의 요청들을 묶어서 처리하면, 현재 턴의 마지막 입출력 요청(예: 제6 쓰기 요청(W6))과 다음 턴의 첫 번째 입출력 요청(예: 제4 읽기 요청(R4)) 사이에 공백 시간이 발생할 수 있다. 이러한 공백 시간은 쓰기 동작 이후 읽기 동작(또는 읽기 동작 이후 쓰기 동작)에 필요한 최소 요구 시간(tWTR)에 비하여 긴 시간이 필요할 수 있다.As described above, the
도 5는, 도 4의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다. 도 2 내지 도 5를 참조하면, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)과 다음 턴(예: 읽기 턴)을 분리하여 입출력 요청들(예: 읽기 요청들 또는 쓰기 요청들)을 스케줄링 할 수 있다.5 is a flowchart illustrating the read-write scheduling method of FIG. 4 . 2 to 5 , the
일 실시 예에 따르면, S110 단계에서, 메모리 컨트롤러(1100)는 현재 턴의 가능한 입출력 요청이 있는지 확인할 수 있다. 현재 턴에 가능한 입출력 요청이 있는 경우, 메모리 컨트롤러(1100)는 S120 단계를 수행할 수 있다. 현재 턴에 가능한 입출력 요청이 없는 경우, 메모리 컨트롤러(1100)는 S140 단계를 수행할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 읽기 요청 큐(1120) 또는 쓰기 요청 큐(1130)를 통해 현재 턴의 입출력 요청들의 정보를 확인할 수 있다. 입출력 요청이 불가능한 경우는 입출력 요청에 대응하는 메모리 뱅크가 비활성 상태인 경우 또는 메모리 뱅크는 활성 상태이나 열 값이 다른 경우를 포함할 수 있다.According to an embodiment, in step S110, the
일 실시 예에 따르면, S120 단계에서, 현재 턴에 가능한 입출력 요청이 있는 경우, 메모리 컨트롤러(1100)는 선택된 입출력 요청을 현재 턴에 스케줄링 할 수 있다.According to an embodiment, in step S120, if there is an input/output request possible in the current turn, the
일 실시 예에 따르면, S130 단계에서, 메모리 컨트롤러(1100)는 최대 버스트 정보와 현재 버스트 정보를 비교할 수 있다. 현재 버스트 값이 최대 버스트 값보다 작은 경우, 메모리 컨트롤러(1100)는 S110 단계를 다시 수행할 수 있다. 현재 버스트 값이 최대 버스트 값보다 크거나 같은 경우, 메모리 컨트롤러(1100)는 S160 단계를 수행할 수 있다.According to an embodiment, in step S130, the
일 실시 예에 따르면, S140 단계에서, 현재 턴에 가능한 입출력 요청이 없는 경우, 메모리 컨트롤러(1100)는 현재 턴에 가능한 뱅크 요청(예: 액티브 요청 또는 프리차지 요청)이 있는지 확인할 수 있다. 현재 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 S150 단계를 수행할 수 있다. 현재 턴에 가능한 뱅크 요청이 없으면, 메모리 컨트롤러(1100)는 다시 S110 단계를 수행할 수 있다.According to an embodiment, in step S140, when there is no input/output request possible in the current turn, the
일 실시 예에 따르면, S150 단계에서, 현재 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 선택된 뱅크 요청을 현재 턴에 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 선택된 뱅크 요청을 스케줄링 한 후 다시 S110 단계를 수행할 수 있다.According to an embodiment, in step S150, if there is a bank request available for the current turn, the
일 실시 예에 따르면, S160 단계에서, 현재 버스트 값이 최대 버스트 값보다 크거나 같은 경우, 메모리 컨트롤러(1100)는 현재 턴을 종료하고 다음 턴으로 전환할 수 있다. 예를 들면, 현재 턴이 읽기 턴이면, 다음 턴은 쓰기 턴일 수 있다. 현재 턴이 쓰기 턴이면, 다음 턴은 읽기 턴일 수 있다. S130 단계에서, 현재 버스트 값과 최대 버스트 값을 비교하는 과정에서, 메모리 컨트롤러(1100)는 최대 버스트 값에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다.According to an embodiment, in step S160, when the current burst value is greater than or equal to the maximum burst value, the
도 6은, 도 2의 읽기 요청 큐, 쓰기 요청 큐, 읽기 요청 정보, 쓰기 요청 정보 및 뱅크 상태 정보의 다른 예를 나타내는 도면이다. 도 2, 도 3 및 도 6을 참조하면, 도 6의 읽기 요청 큐(1120), 쓰기 요청 큐(1130), 읽기 요청 정보(1111), 쓰기 요청 정보(1112) 및 뱅크 상태 정보(1113)는 도 3의 읽기 요청 큐(1120), 쓰기 요청 큐(1130), 읽기 요청 정보(1111), 쓰기 요청 정보(1112) 및 뱅크 상태 정보(1113)와 대부분 동일할 수 있다. 도 3의 읽기 요청 큐(1120), 쓰기 요청 큐(1130), 읽기 요청 정보(1111), 쓰기 요청 정보(1112) 및 뱅크 상태 정보(1113)와 동일한 내용은 설명을 생략한다.FIG. 6 is a diagram illustrating another example of the read request queue, write request queue, read request information, write request information, and bank status information of FIG. 2 . Referring to FIGS. 2, 3, and 6, the
일 실시 예에 따르면, 읽기 요청 정보(1111) 및 쓰기 요청 정보(1112)는 페이지-히트(page-hit) 정보를 포함할 수 있다. 예를 들면, 페이지-히트(page-hit)는 입출력 요청의 뱅크 값 및 열 값이 동일한 것을 의미한다. 페이지-히트(page-hit) 정보는 아직 처리되지 않은(또는 메모리 장치(1200)로 전송되지 않은) 입출력 요청들 중 뱅크 값 및 열 값이 동일한 입출력 요청들의 수를 나타낼 수 있다. 일 예로, 쓰기 요청 큐(1130)에서 현재 처리되지 않은 제5 쓰기 요청(W5) 내지 제9 쓰기 요청(W9) 중에서 뱅크 값(예: bank1) 및 열 값(예: row1)이 동일한 제5 쓰기 요청(W5), 제7 쓰기 요청(W7) 내지 제9 쓰기 요청(W9)이 페이지-히트(page-hit)인 입출력 요청들이다. 또한, 페이지-히트(page-hit) 정보는 4가 될 수 있다.According to an embodiment, the read
도 7은, 도 6의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법의 일 예를 나타내는 도면이다. 도 2, 도 6 및 도 7을 참조하면, 메모리 컨트롤러(1100)는 턴을 정하여 읽기 요청(RD)들과 쓰기 요청(WR)들을 구분하여 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)에서 다음 턴(예: 읽기 턴)으로 전환하여 스케줄링 할 수 있다. 또한, 메모리 컨트롤러(1100)는 근접 스위칭 포인트(near switching point)를 설정할 수 있다.FIG. 7 is a diagram illustrating an example of a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 6 . Referring to FIGS. 2, 6, and 7 , the
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 현재 턴에서 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 근접 스위칭 포인트를 설정할 수 있다. 메모리 컨트롤러(1100)는 현재 턴(예: 쓰기 턴)의 요청 정보(예: 쓰기 요청 정보(1112))를 확인할 수 있다. 메모리 컨트롤러(1100)는 현재 턴의 페이지-히트인 입출력 요청의 수(예: 4)를 확인할 수 있다. 메모리 컨트롤러(1100)는 최대 버스트 값(예: 8)과 현재 버스트 값(예: 4)의 버스트 차이 값(예: 8-4=4)을 확인할 수 있다. 메모리 컨트롤러(1100)는 버스트 차이 값과 페이지-히트인 입출력 요청의 수를 비교할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 작으면, 메모리 컨트롤러(1100)는 계속 현재 턴의 스케줄링을 수행할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 현재까지 처리된 입출력 요청들 중 마지막 요청(예: 제4 쓰기 요청(W4))의 다음에 근접 스위칭 포인트를 설정할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(1100)는 현재 턴의 뱅크 요청(예: 액티브 요청(A22), 프리치지 요청(P31))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 차단된 뱅크 요청에 대응하는 입출력 요청(예: 제6 쓰기 요청(W6))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 아직 처리되지 않고 페이지-히트인 입출력 요청들(예: 제5 쓰기 요청(W5), 제7 쓰기 요청(W7) 내지 제9 쓰기 요청(W9))을 현재 턴에 스케줄링 할 수 있다.According to an embodiment, between the proximity switching point and the read-write switching point, the
일 실시 예에 따르면, 메모리 컨트롤러(1100)는 현재 턴(예: 쓰기 턴)의 차단된 뱅크 요청에 대응하는 메모리 뱅크(예: 제2 뱅크(BANK2), 제3 뱅크(BANK))에 다음 턴(예: 읽기 턴)의 뱅크 요청(예: 액티브 요청(A23), 프리차지 요청(P32))을 현재 턴에 스케줄링 할 수 있다. 이로 인해, 현재 턴에 스케줄링 된 다음 턴의 뱅크 요청에 대응하는 입출력 요청(예: 제2 읽기 요청(R2), 제3 읽기 요청(R3))은 도 4의 방법으로 스케줄링 된 경우보다 앞당겨서 다음 턴에 스케줄링 될 수 있다. 일 예로, 제2 읽기 요청(R2)은 쓰기 동작 이후 읽기 동작(또는 읽기 동작 이후 쓰기 동작)에 필요한 최소 요구 시간(tWTR)이 경과한 직후에 바로 스케줄링 될 수 있다.According to an embodiment, the
상술한 바와 같이, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이의 불필요한 뱅크 요청의 스케줄링을 차단할 수 있다. 이에, 메모리 컨트롤러(1100)는 불필요한 전력 소비를 감소시킬 수 있다. 또한, 메모리 컨트롤러(1100)는 현재 턴의 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에 다음 턴의 뱅크 요청을 스케줄링 할 수 있다. 이로 인해, 읽기-쓰기 스위칭 포인트 전후에 데이터(DATA)의 공백 시간은 도 4의 경우보다 감소하여 쓰기 동작 이후 읽기 동작(또는 읽기 동작 이후 쓰기 동작)에 필요한 최소 요구 시간(tWTR)에 근접하게 처리할 수 있다. 따라서, 읽기-쓰기 전환 시 소요되는 레이턴시(latency)는 감소하고, 메모리 시스템(1000)의 성능은 향상될 수 있다.As described above, the
도 8은, 도 7의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다. 도 2, 도 6 내지 도 8을 참조하면, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)과 다음 턴(예: 읽기 턴)을 분리하여 입출력 요청들(예: 읽기 요청들 또는 쓰기 요청들)을 스케줄링 할 수 있다. 또한, 메모리 컨트롤러(1100)는 근접 스위칭 포인트를 설정하고, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서 뱅크 요청을 효율적으로 관리할 수 있다.8 is a flowchart illustrating the read-write scheduling method of FIG. 7 . 2 and 6 to 8 , the
일 실시 예에 따르면, S210 단계에서, 메모리 컨트롤러(1100)는 재 턴의 가능한 입출력 요청이 있는지 확인할 수 있다. 현재 턴에 가능한 입출력 요청이 있는 경우, 메모리 컨트롤러(1100)는 S220 단계를 수행할 수 있다. 현재 턴에 가능한 입출력 요청이 없는 경우, 메모리 컨트롤러(1100)는 S240 단계를 수행할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 읽기 요청 큐(1120) 또는 쓰기 요청 큐(1130)를 통해 현재 턴의 입출력 요청들의 정보를 확인할 수 있다. 입출력 요청이 불가능한 경우는 입출력 요청에 대응하는 메모리 뱅크가 비활성 상태인 경우 또는 메모리 뱅크는 활성 상태이나 열 값이 다른 경우를 포함할 수 있다.According to an embodiment, in step S210, the
일 실시 예에 따르면, S220 단계에서, 현재 턴에 가능한 입출력 요청이 있는 경우, 메모리 컨트롤러(1100)는 선택된 입출력 요청을 현재 턴에 스케줄링 할 수 있다.According to an embodiment, in step S220, if there is an input/output request possible in the current turn, the
일 실시 예에 따르면, S230 단계에서, 메모리 컨트롤러(1100)는 최대 버스트 정보와 현재 버스트 정보를 비교할 수 있다. 현재 버스트 값이 최대 버스트 값보다 작은 경우, 메모리 컨트롤러(1100)는 S210 단계를 다시 수행할 수 있다. 현재 버스트 값이 최대 버스트 값보다 크거나 같은 경우, 메모리 컨트롤러(1100)는 S290 단계를 수행할 수 있다.According to an embodiment, in step S230, the
일 실시 예에 따르면, S240 단계에서, 메모리 컨트롤러(1100)는 현재 턴의 페이지-히트인 입출력 요청의 수(예: 4)를 확인할 수 있다. 메모리 컨트롤러(1100)는 최대 버스트 값(예: 8)과 현재 버스트 값(예: 4)의 버스트 차이 값(예: 8-4=4)을 확인할 수 있다. 메모리 컨트롤러(1100)는 버스트 차이 값과 페이지-히트인 입출력 요청의 수를 비교할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 작으면, 메모리 컨트롤러(1100)는 S250 단계를 수행할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 S270 단계를 수행할 수 있다.According to an embodiment, in step S240, the
일 실시 예에 따르면, S250 단계에서, 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 작으면, 메모리 컨트롤러(1100)는 메모리 컨트롤러(1100)는 현재 턴에 가능한 뱅크 요청(예: 액티브 요청 또는 프리차지 요청)이 있는지 확인할 수 있다. 현재 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 S260 단계를 수행할 수 있다. 현재 턴에 가능한 뱅크 요청이 없으면, 메모리 컨트롤러(1100)는 다시 S210 단계를 수행할 수 있다.According to an embodiment, in step S250, if the number of page-hit input/output requests is smaller than the burst difference value, the
일 실시 예에 따르면, S260 단계에서, 현재 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 선택된 뱅크 요청을 현재 턴에 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 선택된 뱅크 요청을 스케줄링 한 후 다시 S210 단계를 수행할 수 있다.According to an embodiment, in step S260, if there is a bank request available for the current turn, the
일 실시 예에 따르면, S270 단계에서, 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 다음 턴에 가능한 뱅크 요청(예: 액티브 요청(A23), 프리차지 요청(P32))이 있는지 확인할 수 있다. 예를 들면, 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 현 시점에 근접 스위칭 포인트를 설정할 수 있다. 메모리 컨트롤러(1100)는 근접 스위칭 포인트 이후에 현재 턴의 뱅크 요청(예: 액티브 요청(A22), 프리치지 요청(P31))을 스케줄링 하지 않고, 다음 턴의 뱅크 요청을 스케줄링 할 수 있다. 다음 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 S280 단계를 수행할 수 있다. 다음 턴에 가능한 뱅크 요청이 없으면, 메모리 컨트롤러(1100)는 다시 S210 단계를 수행할 수 있다.According to an embodiment, if the number of page-hit I/O requests is greater than or equal to the burst difference value in step S270, the
일 실시 예에 따르면, S280 단계에서, 다음 턴에 가능한 뱅크 요청이 있으면, 메모리 컨트롤러(1100)는 선택된 다음 턴의 뱅크 요청(예: 액티브 요청(A23), 프리차지 요청(P32))을 현재 턴에 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 선택된 다음 턴의 뱅크 요청을 현재 턴에 스케줄링 한 후 다시 S210 단계를 수행할 수 있다.According to an embodiment, in step S280, if there is a bank request available for the next turn, the
일 실시 예에 따르면, S290 단계에서, 현재 버스트 값이 최대 버스트 값보다 크거나 같은 경우, 메모리 컨트롤러(1100)는 현재 턴을 종료하고 다음 턴으로 전환할 수 있다. 예를 들면, 현재 턴이 읽기 턴이면, 다음 턴은 쓰기 턴일 수 있다. 현재 턴이 쓰기 턴이면, 다음 턴은 읽기 턴일 수 있다.According to an embodiment, in step S290, when the current burst value is greater than or equal to the maximum burst value, the
상술한 바와 같이, S230 단계에서 현재 버스트 값과 최대 버스트 값을 비교하는 과정에서, 메모리 컨트롤러(1100)는 최대 버스트 값에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 또한, S240 단계에서 페이지-히트인 입출력 요청의 수가 버스트 차이 값을 비교하는 과정에서, 메모리 컨트롤러(1100)는 근접 스위칭 포인트를 설정할 수 있다.As described above, in the process of comparing the current burst value and the maximum burst value in step S230, the
도 9는, 도 6의 정보들의 이용한 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법의 다른 예를 나타내는 도면이다. 도 2, 도 6 및 도 9를 참조하면, 메모리 컨트롤러(1100)는 턴을 정하여 읽기 요청(RD)들과 쓰기 요청(WR)들을 구분하여 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)에서 다음 턴(예: 읽기 턴)으로 전환하여 스케줄링 할 수 있다. 또한, 메모리 컨트롤러(1100)는 근접 스위칭 포인트(near switching point)를 설정할 수 있다.FIG. 9 is a diagram illustrating another example of a read-write scheduling method of the memory controller of FIG. 2 using the information of FIG. 6 . Referring to FIGS. 2, 6, and 9 , the
일 실시 예에 따르면, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(1100)는 현재 턴의 액티브 요청(예: 액티브 요청(A22))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 차단된 액티브 요청에 대응하는 입출력 요청(예: 제6 쓰기 요청(W6))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 아직 처리되지 않고 페이지-히트인 입출력 요청들(예: 제5 쓰기 요청(W5), 제7 쓰기 요청(W7) 내지 제9 쓰기 요청(W9))을 현재 턴에 스케줄링 할 수 있다.According to an embodiment, between the proximity switching point and the read-write switching point, the
일 실시 예에 따르면, 현재 턴의 액티브 요청이 차단되면, 다음 턴에서 메모리 컨트롤러(1100)는 현재 턴(예: 쓰기 턴)의 차단된 뱅크 요청에 대응하는 메모리 뱅크(예: 제2 뱅크(BANK2))의 뱅크 요청(예: 액티브 요청(A23))을 신속하게 스케줄링 할 수 있다. 이로 인해, 현재 턴(예: 쓰기 턴)의 차단된 뱅크 요청에 대응하는 메모리 뱅크(예: 제2 뱅크(BANK2))에 다음 턴의 입출력 요청(예: 제2 읽기 요청(R2))은 도 4의 방법으로 스케줄링 된 경우보다 앞당겨서 다음 턴에 스케줄링 될 수 있다.According to an embodiment, if the active request of the current turn is blocked, in the next turn, the
상술한 바와 같이, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이의 불필요한 액티브 요청의 스케줄링을 차단할 수 있다. 이에, 메모리 컨트롤러(1100)는 불필요한 전력 소비를 감소시킬 수 있다. 또한, 메모리 컨트롤러(1100)는 차단된 액티브 요청에 대응하는 메모리 뱅크에 다음 턴에서 뱅크 요청을 신속하게 스케줄링 할 수 있다. 이로 인해, 읽기-쓰기 스위칭 포인트 전후에 데이터(DATA)의 공백 시간은 도 4의 경우보다 감소할 수 있다. 따라서, 읽기-쓰기 전환 시 소요되는 레이턴시(latency)는 감소하고, 메모리 시스템(1000)의 성능은 향상될 수 있다.As described above, the
도 10은, 도 9의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다. 도 2, 도 6, 도 9 및 도 10을 참조하면, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)과 다음 턴(예: 읽기 턴)을 분리하여 입출력 요청들(예: 읽기 요청들 또는 쓰기 요청들)을 스케줄링 할 수 있다. 또한, 메모리 컨트롤러(1100)는 근접 스위칭 포인트를 설정하고, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서 뱅크 요청을 효율적으로 관리할 수 있다. S310 단계 내지 S360 단계는 도 8의 S210 단계 내지 S260 단계와 동일 또는 유사할 수 있다. 또한, S390 단계는 도 8의 S290 단계와 동일 또는 유사할 수 있다. 이에, S310 단계 내지 S360 단계, 및 S390 단계에 대한 설명은 생략한다.10 is a flowchart illustrating the read-write scheduling method of FIG. 9 . Referring to FIGS. 2, 6, 9, and 10 , the
일 실시 예에 따르면, S370 단계에서, 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 현재 턴에 가능한 프리차지 요청(예: 프리차지 요청(P31))이 있는지 확인할 수 있다. 예를 들면, 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 현 시점에 근접 스위칭 포인트를 설정할 수 있다. 메모리 컨트롤러(1100)는 근접 스위칭 포인트 이후에 현재 턴의 액티브 요청(예: 액티브 요청(A22))을 스케줄링 하지 않고, 현재 턴에서 뱅크 요청 중 프리치지 요청(예: 프리치지 요청(P31))만을 스케줄링 할 수 있다. 현재 턴에 가능한 프리차지 요청이 있으면, 메모리 컨트롤러(1100)는 S380 단계를 수행할 수 있다. 현재 턴에 가능한 프리차지 요청이 없으면, 메모리 컨트롤러(1100)는 다시 S310 단계를 수행할 수 있다.According to an embodiment, in step S370, if the number of page-hit I/O requests is greater than or equal to the burst difference value, the
일 실시 예에 따르면, S380 단계에서, 현재 턴에 가능한 프리차지 요청이 있으면, 메모리 컨트롤러(1100)는 선택된 프리차지 요청(예: 프리차지 요청(P31))을 현재 턴에 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 선택된 프리차지 요청을 현재 턴에 스케줄링 한 후 다시 S310 단계를 수행할 수 있다.According to an embodiment, in step S380, if there is a precharge request available for the current turn, the
상술한 바와 같이, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(1100)는 액티브 요청의 스케줄링을 차단할 수 있다. 이에, 메모리 컨트롤러(1100)는 불필요한 전력 소비를 감소시킬 수 있다. 또한, 메모리 컨트롤러(1100)는 차단된 액티브 요청에 대응하는 메모리 뱅크에 다음 턴에서 뱅크 요청을 신속하게 스케줄링 할 수 있다. 이로 인해, 읽기-쓰기 스위칭 포인트 전후에 데이터(DATA)의 공백 시간은 도 4의 경우보다 감소할 수 있다. 한편, 도 10의 방법은 도 8의 경우보다 성능 향상이 작을 수 있으나, 전력 효율 측면에서는 도 8의 경우보다 향상될 수 있다.As described above, between the proximity switching point and the read-write switching point, the
도 11은, 도 2의 메모리 컨트롤러의 읽기-쓰기 스케줄링 방법을 나타내는 순서도이다. 도 2 및 도 6 내지 도 11을 참조하면, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트를 기준으로 현재 턴(예: 쓰기 턴)과 다음 턴(예: 읽기 턴)을 분리하여 입출력 요청들(예: 읽기 요청들 또는 쓰기 요청들)을 스케줄링 할 수 있다. 또한, 메모리 컨트롤러(1100)는 근접 스위칭 포인트를 설정하고, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서 뱅크 요청을 효율적으로 관리할 수 있다.11 is a flowchart illustrating a read-write scheduling method of the memory controller of FIG. 2 . Referring to FIGS. 2 and 6 to 11 , the
일 실시 예에 따르면, S410 단계에서, 메모리 컨트롤러(1100)는 현재 턴으로부터 다음 턴으로 전환되는 읽기-쓰기 스위칭 포인트를 설정하여 입출력 요청들 및 입출력 요청들에 대응하는 뱅크 요청들을 스케줄링 할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 지정된 단위(예: 지정된 요청들의 수 또는 지정된 시간)에 따라 턴을 정하여 일정량의 읽기 요청들 또는 쓰기 요청들이 전송되도록 스케줄링 할 수 있다. 메모리 컨트롤러(1100)는 읽기 턴 또는 쓰기 턴에서 수행되는 요청들의 개수에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 또는 메모리 컨트롤러(1100)는 읽기 턴 또는 쓰기 턴이 수행되는 시간에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다.According to an embodiment, in step S410, the
일 실시 예에 따르면, S420 단계에서, 메모리 컨트롤러(1100)는 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정할 수 있다. 예를 들면, 메모리 컨트롤러(1100)는 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 근접 스위칭 포인트를 설정할 수 있다. 메모리 컨트롤러(1100)는 현재 턴(예: 쓰기 턴)의 요청 정보(예: 쓰기 요청 정보(1112))를 확인할 수 있다. 메모리 컨트롤러(1100)는 현재 턴의 페이지-히트인 입출력 요청의 수(예: 4)를 확인할 수 있다. 메모리 컨트롤러(1100)는 최대 버스트(예: 8)와 현재 버스트(예: 4)의 버스트 차이 값(예: 8-4=4)을 확인할 수 있다. 메모리 컨트롤러(1100)는 버스트 차이 값과 페이지-히트인 입출력 요청의 수를 비교할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 작으면, 메모리 컨트롤러(1100)는 계속 현재 턴의 스케줄링을 수행할 수 있다. 페이지-히트인 입출력 요청의 수가 버스트 차이 값보다 크거나 같아지면, 메모리 컨트롤러(1100)는 현재까지 처리된 입출력 요청들 중 마지막 요청(예: 제4 쓰기 요청(W4))의 다음에 근접 스위칭 포인트를 설정할 수 있다.According to an embodiment, in step S420, the
일 실시 예에 따르면, S430 단계에서, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(1100)는 현재 턴의 뱅크 요청의 스케줄링을 차단할 수 있다. 예를 들어 도 7을 참조하면, 메모리 컨트롤러(1100)는 현재 턴의 뱅크 요청(예: 액티브 요청(A22), 프리치지 요청(P31))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 차단된 뱅크 요청에 대응하는 입출력 요청(예: 제6 쓰기 요청(W6))의 스케줄링을 차단할 수 있다. 메모리 컨트롤러(1100)는 아직 처리되지 않고 페이지-히트인 입출력 요청들(예: 제5 쓰기 요청(W5), 제7 쓰기 요청(W7) 내지 제9 쓰기 요청(W9))을 현재 턴에 스케줄링 할 수 있다.According to an embodiment, in step S430, between the proximity switching point and the read-write switching point, the
일 실시 예에 따르면, S440 단계에서, 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(1100)는 다음 턴의 뱅크 요청의 스케줄링을 허용할 수 있다. 예를 들어 도 7을 참조하면, 메모리 컨트롤러(1100)는 현재 턴(예: 쓰기 턴)의 차단된 뱅크 요청에 대응하는 메모리 뱅크(예: 제2 뱅크(BANK2), 제3 뱅크(BANK))에 다음 턴(예: 읽기 턴)의 뱅크 요청(예: 액티브 요청(A23), 프리차지 요청(P32))을 현재 턴에 스케줄링 할 수 있다. 이로 인해, 현재 턴에 스케줄링 된 다음 턴의 뱅크 요청에 대응하는 입출력 요청(예: 제2 읽기 요청(R2), 제3 읽기 요청(R3))은 도 4의 방법으로 스케줄링 된 경우보다 앞당겨서 다음 턴에 스케줄링 될 수 있다.According to an embodiment, in step S440, between the proximity switching point and the read-write switching point, the
도 12는 일 실시 예에 따른 모바일 시스템을 나타내는 도면이다. 도 12를 참조하면, 모바일 시스템(2000)은 응용 프로세서(2100) 및 메모리 장치(2200)를 포함할 수 있다. 응용 프로세서(2100)는 메모리 컨트롤러(2110)를 포함할 수 있다. 메모리 장치(2200)는 제어 로직(2220) 및 메모리 코어(2210)를 포함할 수 있다.12 is a diagram illustrating a mobile system according to an exemplary embodiment. Referring to FIG. 12 , a
일 실시 예에 따르면, 메모리 컨트롤러(2100)는 각종 신호를 메모리 장치(2200)에 제공함으로써, 메모리 장치(2200)의 전반적인 동작을 제어할 수 있다. 예를 들면, 메모리 컨트롤러(2100)는 읽기(read) 및 쓰기(write) 등과 같은 메모리 장치(2200)의 메모리 액세스 동작을 제어할 수 있다. 메모리 컨트롤러(2100)는 커맨드(CMD) 및 어드레스(ADDR)를 메모리 장치(1200)에 제공함으로써, 메모리 장치(2200)에 데이터(DATA)를 기입하거나, 또는 메모리 장치(1200)로부터 데이터(DATA)를 독출할 수 있다. 또한, 메모리 컨트롤러(2100)는 메모리 장치(2200)에 클럭 신호(CLK)를 더 제공할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 장치(2200)는 메모리 컨트롤러(2100)에 의해 읽기 요청된 데이터(DATA)를 메모리 컨트롤러(2100) 측으로 출력하거나, 메모리 컨트롤러(2100)에 의해 쓰기 요청된 데이터(DATA)를 메모리 셀에 저장할 수 있다. 메모리 장치(2200)는 커맨드(CMD), 어드레스(ADDR) 및 클럭 신호(CLK)에 기초하여 데이터(DATA)를 입출력할 수 있다. 메모리 장치(2200)는 메모리 코어(2210) 및 제어 로직(2220)을 포함할 수 있다. 메모리 코어(2210)는 뱅크 단위로 구분되는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 뱅크를 포함할 수 있다.According to an embodiment, the
일 실시 예에 따르면, 메모리 컨트롤러(2100)는 읽기-쓰기 스케줄러(2110)를 포함할 수 있다. 예를 들면, 읽기-쓰기 스케줄러(2110)는 메모리 장치(2200)로 전송되는 뱅크 요청(예: 액티브 요청 및 프리차지 요청) 및 입출력 요청(예: 읽기 요청 및 쓰기 요청)의 전송 순서를 결정할 수 있다. 뱅크 요청은 읽기 요청에 대응하는 뱅크 요청 또는 쓰기 요청에 대응하는 뱅크 요청을 포함할 수 있다. 읽기-쓰기 스케줄러(2110)는 읽기 요청과 쓰기 요청이 분리되어 전송되도록 스케줄링 할 수 있다. 읽기-쓰기 스케줄러(2110)는 지정된 단위(예: 지정된 요청들의 수 또는 지정된 시간)에 따라 턴을 정하여 일정량의 읽기 요청들 또는 쓰기 요청들이 전송되도록 스케줄링 할 수 있다. 메모리 컨트롤러(2100)는 도 6 내지 도 11의 방법에 따라 읽기-쓰기 스케줄링 동작을 수행할 수 있다.According to an embodiment, the
일 실시 에에 따르면, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 읽기 요청과 쓰기 요청이 분리되어 전송되도록 스케줄링 할 수 있다. 예를 들면, 읽기-쓰기 스케줄러(1110)는 지정된 단위(예: 지정된 요청들의 수 또는 지정된 시간)에 따라 턴을 정하여 일정량의 읽기 요청들 또는 쓰기 요청들이 전송되도록 스케줄링 할 수 있다. 일 예로, 읽기-쓰기 스케줄러(1110)는 읽기 요청들이 수행되는 턴과 쓰기 요청들이 수행되는 턴이 전환되는 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 읽기-쓰기 스케줄러(1110)는 읽기 턴 또는 쓰기 턴에서 수행되는 요청들의 개수에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다. 또는 읽기-쓰기 스케줄러(1110)는 읽기 턴 또는 쓰기 턴이 수행되는 시간에 기초하여 읽기-쓰기 스위칭 포인트를 설정할 수 있다.According to one embodiment, the memory controller 2100 (or the read-write scheduler 2110) may schedule a read request and a write request to be transmitted separately. For example, the read-
일 실시 에에 따르면, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정할 수 있다. 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에서, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 불필요한 뱅크 요청의 스케줄링을 차단할 수 있다. 이에, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 불필요한 전력 소비를 감소시킬 수 있다. 또한, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 현재 턴의 근접 스위칭 포인트와 읽기-쓰기 스위칭 포인트 사이에 다음 턴의 뱅크 요청을 스케줄링 할 수 있다. 이로 인해, 읽기-쓰기 스위칭 포인트 전후에 데이터(DATA)의 공백 시간은 도 4의 경우보다 감소할 수 있다. 따라서, 읽기-쓰기 전환 시 소요되는 레이턴시(latency)는 감소하고, 모바일 시스템(2000)의 성능은 향상될 수 있다. 상술한 방법을 통해, 메모리 컨트롤러(2100)(또는 읽기-쓰기 스케줄러(2110))는 모바일 시스템(2000)의 메모리 대역폭을 향상시킬 수 있다.According to one embodiment, the memory controller 2100 (or the read-write scheduler 2110) may set the proximity switching point before the read-write switching point. Between the proximity switching point and the read-write switching point, the memory controller 2100 (or the read-write scheduler 2110) may block scheduling of unnecessary bank requests. Accordingly, the memory controller 2100 (or the read-write scheduler 2110) can reduce unnecessary power consumption. In addition, the memory controller 2100 (or the read-write scheduler 2110) may schedule a bank request of the next turn between the adjacent switching point of the current turn and the read-write switching point. As a result, the blank time of the data DATA before and after the read-write switching point may be reduced compared to the case of FIG. 4 . Accordingly, latency required for read-write conversion can be reduced, and performance of the
상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.The foregoing are specific examples for carrying out the present invention. In addition to the above-described embodiments, the present invention will also include embodiments that can be simply or easily changed in design. In addition, the present invention will also include techniques that can be easily modified and practiced using the embodiments. Therefore, the scope of the present invention should not be limited to the above-described embodiments and should not be defined, and should be defined by those equivalent to the claims of this invention as well as the claims to be described later.
Claims (20)
복수의 뱅크 단위로 구분되는 메모리 셀 어레이를 포함하는 메모리 장치; 및
상기 메모리 셀 어레이에 포함된 메모리 뱅크들에 데이터를 입출력하기 위해 읽기 요청들 또는 쓰기 요청들을 상기 메모리 장치로 전달하고, 읽기-쓰기 스위칭 포인트를 기점으로 상기 읽기 요청들을 상기 쓰기 요청들과 구분하여 전달하는 메모리 컨트롤러를 포함하되,
상기 메모리 컨트롤러는,
상기 읽기 요청들 또는 상기 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 입출력 요청들 중 상기 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 제1 예비 입출력 요청을 위해 상기 메모리 뱅크들의 상태를 전환하는 적어도 하나의 제1 뱅크 요청이 스케줄링 되는 것을 차단하고,
상기 읽기-쓰기 스위칭 포인트 이후에 다음 턴에서 스케줄링 예정인 제2 예비 입출력 요청들을 위해 상기 메모리 뱅크들의 상태를 전환하는 제2 뱅크 요청들 중 적어도 하나가 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 되도록 제어하는 메모리 시스템.In the memory system,
a memory device including a memory cell array divided into a plurality of bank units; and
To input/output data to memory banks included in the memory cell array, read requests or write requests are transmitted to the memory device, and the read requests are separated from the write requests based on a read-write switching point and transmitted. Including a memory controller that
The memory controller,
In a current turn of I/O requests including the read requests or the write requests, a proximity switching point is set before the read-write switching point based on the number of I/O requests processed in the current turn among the I/O requests. do,
Blocking at least one first bank request for switching states of the memory banks from being scheduled for at least one first preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point; ,
After the read-write switching point, at least one of the second bank requests for switching the states of the memory banks for second reserve input/output requests scheduled to be scheduled in the next turn is between the proximity switching point and the read-write switching point. A memory system that controls what is scheduled.
상기 제1 뱅크 요청들 또는 상기 제2 뱅크 요청들은,
상기 메모리 뱅크들 중 하나를 액티브 상태로 전환하는 액티브 요청; 및
상기 메모리 뱅크들 중 액티브 상태인 메모리 뱅크를 스탠바이 상태로 전환하는 프리차지 요청을 포함하는 메모리 시스템.According to claim 1,
The first bank requests or the second bank requests,
an active request for switching one of the memory banks into an active state; and
and a precharge request for converting an active memory bank among the memory banks to a standby state.
상기 메모리 컨트롤러는 상기 현재 턴에서 수행 예정인 입출력 요청들의 최대 요청 개수 또는 지정된 시간에 따라 상기 읽기-쓰기 스위칭 포인트를 설정하는 메모리 시스템.According to claim 1,
The memory system of claim 1 , wherein the memory controller sets the read-write switching point according to a maximum number of input/output requests scheduled to be performed in the current turn or a specified time.
상기 메모리 컨트롤러는,
상기 현재 턴에서 스케줄링 예정인 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 페이지-히트 요청들의 수를 획득하고,
상기 최대 요청 개수와 상기 현재 턴에서 처리된 상기 입출력 요청들의 개수의 차이 값을 획득하고,
상기 페이지-히트 요청들의 수가 상기 차이 값보다 작은 경우, 상기 현재 턴에서 처리된 입출력 요청들이 처리 완료된 시점을 상기 근접 스위칭 포인트로 설정하는 메모리 시스템.According to claim 3,
The memory controller,
obtaining the number of page-hit requests having the same bank value and row value as those of currently active memory banks among I/O requests to be scheduled for the current turn;
Obtaining a difference value between the maximum number of requests and the number of input/output requests processed in the current turn;
and when the number of page-hit requests is smaller than the difference value, setting a point in time at which input/output requests processed in the current turn are processed is set as the proximity switching point.
상기 메모리 컨트롤러는,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서,
상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 다른 입출력 요청을 상기 현재 턴에 스케줄링 하지 않는 메모리 시스템.According to claim 1,
The memory controller,
Between the proximity switching point and the read-write switching point,
The memory system of claim 1 , wherein among the I/O requests scheduled to be scheduled in the current turn, I/O requests having different bank values and row values from memory banks currently in an active state are not scheduled in the current turn.
상기 메모리 컨트롤러는,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서,
상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 입출력 요청을 상기 현재 턴에 모두 스케줄링 하는 메모리 시스템.According to claim 5,
The memory controller,
Between the proximity switching point and the read-write switching point,
The memory system of claim 1 , wherein among I/O requests scheduled to be scheduled for the current turn, all I/O requests having the same bank value and row value as memory banks currently in an active state are scheduled during the current turn.
상기 메모리 컨트롤러는,
호스트로부터 수신되는 상기 읽기 요청들을 저장하는 읽기 요청 큐;
상기 호스트로부터 수신되는 상기 쓰기 요청들을 저장하는 쓰기 요청 큐;
상기 읽기 요청들 또는 상기 쓰기 요청들을 상기 메모리 뱅크들의 상태에 기초하여 상기 현재 턴 또는 상기 다음 턴에 스케줄링하는 읽기-쓰기 스케줄러; 및
상기 읽기-쓰기 스케줄러의 입출력 요청들의 스케줄링에 따라 상기 읽기 요청들, 상기 쓰기 요청들 및 상기 메모리 뱅크들의 상태를 전환하는 뱅크 요청들을 상기 메모리 장치로 전송하는 중재 회로를 포함하는 메모리 시스템.According to claim 1,
The memory controller,
a read request queue storing the read requests received from a host;
a write request queue storing the write requests received from the host;
a read-write scheduler that schedules the read requests or the write requests in the current turn or the next turn based on states of the memory banks; and
and an arbitration circuit that transmits the read requests, the write requests, and bank requests for switching states of the memory banks to the memory device according to the scheduling of the I/O requests of the read-write scheduler.
상기 읽기 요청 큐 또는 상기 쓰기 요청 큐는 상기 읽기 요청들 또는 상기 쓰기 요청들 각각에 대응하는 뱅크 정보 및 열 정보를 포함하고, 상기 읽기 요청들의 처리 여부를 나타내는 유효 정보를 포함하는 메모리 시스템.According to claim 7,
The read request queue or the write request queue includes bank information and column information corresponding to each of the read requests or the write requests, and includes valid information indicating whether the read requests are processed.
상기 읽기-쓰기 스케줄러는,
상기 중재 회로에 의해 상기 읽기 요청들 또는 상기 쓰기 요청들 중 하나가 상기 메모리 장치로 전송되면, 상기 읽기 요청 큐 또는 상기 쓰기 요청 큐의 상기 뱅크 정보, 상기 열 정보 및 상기 유효 정보를 갱신하고, 갱신된 정보에 기초하여 상기 근접 스위칭 포인트를 결정하는 메모리 시스템.According to claim 8,
The read-write scheduler,
When one of the read requests or the write requests is transmitted to the memory device by the arbitration circuit, update the bank information, the column information, and the valid information of the read request queue or the write request queue, and update A memory system for determining the proximity switching point based on the received information.
상기 중재 회로는 상기 읽기-쓰기 스케줄러로부터 수신된 상기 입출력 요청들의 스케줄링에 기초하여 상기 입출력 요청들, 상기 입출력 요청들에 대응하는 액티브 요청들 및 상기 입출력 요청들에 대응하는 프리차지 요청들 순서로 우선순위를 결정하는 메모리 시스템.According to claim 7,
The arbitration circuit prioritizes the input/output requests, active requests corresponding to the input/output requests, and precharge requests corresponding to the input/output requests in order based on the scheduling of the input/output requests received from the read-write scheduler. The memory system that determines the ranking.
상기 메모리 컨트롤러는,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 된 상기 제2 뱅크 요청들 중 적어도 하나에 대응하는 입출력 요청을 상기 다음 턴에서 가장 먼저 스케줄링 하는 메모리 시스템.According to claim 1,
The memory controller,
and scheduling an I/O request corresponding to at least one of the second bank requests scheduled between the proximity switching point and the read-write switching point first in the next turn.
복수의 뱅크 단위로 구분되는 메모리 셀 어레이를 포함하는 메모리 장치; 및
상기 메모리 셀 어레이에 포함된 메모리 뱅크들에 데이터를 입출력하기 위해 읽기 요청들 또는 쓰기 요청들을 상기 메모리 장치로 전달하고, 읽기-쓰기 스위칭 포인트를 기점으로 상기 읽기 요청들을 상기 쓰기 요청들과 구분하여 전달하는 메모리 컨트롤러를 포함하되,
상기 메모리 컨트롤러는,
상기 읽기 요청들 또는 상기 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 현재 턴에서 처리된 상기 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하고,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 예비 입출력 요청을 위해 상기 메모리 뱅크들 중 하나를 액티브 상태로 전환하는 제1 액티브 요청이 스케줄링 되는 것을 차단하도록 제어하는 메모리 시스템.In the memory system,
a memory device including a memory cell array divided into a plurality of bank units; and
To input/output data to memory banks included in the memory cell array, read requests or write requests are transmitted to the memory device, and the read requests are separated from the write requests based on a read-write switching point and transmitted. Including a memory controller that
The memory controller,
In a current turn of I/O requests including the read requests or the write requests, setting a proximity switching point before the read-write switching point based on the number of the I/O requests processed in the current turn;
Control to block a first active request for switching one of the memory banks into an active state from being scheduled for at least one preliminary input/output request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point memory system.
상기 메모리 컨트롤러는,
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서 상기 적어도 하나의 예비 입출력 요청을 위해 상기 메모리 뱅크들 중 액티브 상태인 메모리 뱅크를 스탠바이 상태로 전환하는 제1 프리차지 요청이 스케줄링 되는 것을 허용하도록 제어하는 메모리 시스템.According to claim 12,
The memory controller,
Control to permit scheduling of a first precharge request for switching an active memory bank among the memory banks to a standby state for the at least one preliminary input/output request between the proximity switching point and the read-write switching point memory system.
상기 메모리 컨트롤러는,
상기 입출력 요청들의 다음 턴에 있어서, 상기 제1 액티브 요청에 대응하는 메모리 뱅크와 동일한 뱅크 주소를 가지는 입출력 요청을 위한 제2 액티브 요청 또는 제2 프리차지 요청을 상기 다음 턴에서 가장 먼저 스케줄링하는 메모리 시스템.According to claim 13,
The memory controller,
In a next turn of the I/O requests, a second active request or a second precharge request for an I/O request having the same bank address as a memory bank corresponding to the first active request is scheduled first in the next turn. .
상기 메모리 컨트롤러는,
상기 입출력 요청들의 다음 턴에 있어서, 상기 제1 프리차지 요청에 대응하는 메모리 뱅크와 동일한 뱅크 주소를 가지는 입출력 요청을 위한 제3 액티브 요청을 상기 제2 액티브 요청 또는 제2 프리차지 요청의 직후에 스케줄링하는 메모리 시스템.According to claim 14,
The memory controller,
In a next turn of the I/O requests, scheduling a third active request for an I/O request having the same bank address as a memory bank corresponding to the first precharge request immediately after the second active request or the second precharge request. memory system to do.
메모리 컨트롤러로부터 메모리 장치로 전송되는 읽기 요청들 또는 쓰기 요청들을 포함하는 입출력 요청들의 현재 턴에 있어서, 상기 현재 턴에서 수행 예정인 입출력 요청들의 최대 요청 개수 또는 지정된 시간에 따라 읽기-쓰기 스위칭 포인트를 설정하는 단계;
상기 입출력 요청들 중 상기 현재 턴에서 처리된 입출력 요청들의 수에 기초하여 상기 읽기-쓰기 스위칭 포인트 이전에 근접 스위칭 포인트를 설정하는 단계;
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서, 상기 현재 턴에서 스케줄링 예정인 적어도 하나의 제1 예비 입출력 요청을 위해 상기 메모리 장치에 포함된 메모리 뱅크들의 상태를 전환하는 적어도 하나의 제1 뱅크 요청이 스케줄링 되는 것을 차단하는 단계; 및
상기 읽기-쓰기 스위칭 포인트 이후에 다음 턴에서 스케줄링 예정인 제2 예비 입출력 요청들을 위해 상기 메모리 뱅크들의 상태를 전환하는 제2 뱅크 요청들 중 적어도 하나를 상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링하는 단계를 포함하는 메모리 시스템의 동작 방법.In the operating method of the memory system,
In a current turn of I/O requests including read requests or write requests transmitted from a memory controller to a memory device, setting a read-write switching point according to the maximum number of I/O requests scheduled to be performed in the current turn or a specified time step;
setting a proximity switching point before the read-write switching point based on the number of input/output requests processed in the current turn among the input/output requests;
At least one first bank request for switching states of memory banks included in the memory device for at least one first preliminary I/O request scheduled to be scheduled in the current turn between the proximity switching point and the read-write switching point Blocking this scheduling; and
After the read-write switching point, at least one of second bank requests for switching states of the memory banks for second preliminary input/output requests scheduled to be scheduled in a next turn is transferred between the proximity switching point and the read-write switching point. A method of operating a memory system comprising scheduling.
상기 근접 스위칭 포인트를 설정하는 단계는,
상기 현재 턴에서 스케줄링 예정인 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 페이지-히트 요청들의 수를 획득하는 단계;
상기 최대 요청 개수와 상기 현재 턴에서 처리된 상기 입출력 요청들의 개수의 차이 값을 획득하는 단계; 및
상기 페이지-히트 요청들의 수가 상기 차이 값보다 작은 경우, 상기 현재 턴에서 처리된 입출력 요청들이 처리 완료된 시점을 상기 근접 스위칭 포인트로 설정하는 단계를 포함하는 메모리 시스템의 동작 방법.According to claim 16,
The step of setting the proximity switching point,
obtaining the number of page-hit requests having the same bank value and column value as memory banks currently in an active state among I/O requests scheduled to be scheduled in the current turn;
obtaining a difference value between the maximum number of requests and the number of input/output requests processed in the current turn; and
and setting, as the proximity switching point, when the number of page-hit requests is less than the difference value, when the I/O requests processed in the current turn are completed.
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서,
상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 다른 입출력 요청을 상기 현재 턴에 스케줄링 하지 않는 단계를 더 포함하는 메모리 시스템의 동작 방법.According to claim 16,
Between the proximity switching point and the read-write switching point,
The method of operating a memory system further comprising not scheduling an input/output request having a different bank value and row value than currently active memory banks among input/output requests scheduled to be scheduled for the current turn, in the current turn.
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에서,
상기 현재 턴에 스케줄링 예정된 입출력 요청들 중 현재 액티브 상태인 메모리 뱅크들과 뱅크 값 및 열 값이 동일한 입출력 요청을 상기 현재 턴에 모두 스케줄링 하는 단계를 더 포함하는 메모리 시스템의 동작 방법.According to claim 18,
Between the proximity switching point and the read-write switching point,
The method of operating a memory system further comprising scheduling all I/O requests having the same bank value and row value as memory banks currently in an active state among I/O requests scheduled to be scheduled for the current turn, during the current turn.
상기 근접 스위칭 포인트와 상기 읽기-쓰기 스위칭 포인트 사이에 스케줄링 된 상기 제2 뱅크 요청들 중 적어도 하나에 대응하는 입출력 요청을 상기 다음 턴에서 가장 먼저 스케줄링 하는 단계를 더 포함하는 메모리 시스템의 동작 방법.According to claim 16,
and scheduling an I/O request corresponding to at least one of the second bank requests scheduled between the proximity switching point and the read-write switching point first in the next turn.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/150,626 US20230266893A1 (en) | 2022-02-21 | 2023-01-05 | Memory system including memory device and memory controller, and operating method thereof |
CN202310181431.1A CN116627317A (en) | 2022-02-21 | 2023-02-20 | Memory system including memory device and memory controller and method of operating the same |
EP23157816.2A EP4231162A1 (en) | 2022-02-21 | 2023-02-21 | Memory system including memory device and memory controller, and operating method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220021994 | 2022-02-21 | ||
KR1020220021994 | 2022-02-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230125706A true KR20230125706A (en) | 2023-08-29 |
Family
ID=87802257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220068915A KR20230125706A (en) | 2022-02-21 | 2022-06-07 | Memory system including memory device and memory controller and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230125706A (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221798B2 (en) | 2018-08-17 | 2022-01-11 | Apple Inc. | Write/read turn techniques based on latency tolerance |
-
2022
- 2022-06-07 KR KR1020220068915A patent/KR20230125706A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221798B2 (en) | 2018-08-17 | 2022-01-11 | Apple Inc. | Write/read turn techniques based on latency tolerance |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3403184B1 (en) | Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory | |
KR100816053B1 (en) | Memory device, memory system and dual port memory device with self-copy function | |
KR100909965B1 (en) | A semiconductor memory system having a volatile memory and a nonvolatile memory sharing a bus and a method of controlling the operation of the nonvolatile memory | |
US9978430B2 (en) | Memory devices providing a refresh request and memory controllers responsive to a refresh request | |
JP5043662B2 (en) | Memory control method and memory system | |
US9606738B2 (en) | Memory system with a bridge part provided between a memory and a controller | |
CN109240596B (en) | Storage system and operation method thereof | |
KR20200108773A (en) | Memory Device performing calculation process, Data Processing System having the same and Operation Method of Memory Device | |
KR102449333B1 (en) | Memory system and read request management method thereof | |
US6091667A (en) | Semiconductor memory device and a data reading method and a data writing method therefor | |
US6829195B2 (en) | Semiconductor memory device and information processing system | |
US10325643B2 (en) | Method of refreshing memory device and memory system based on storage capacity | |
US20020136079A1 (en) | Semiconductor memory device and information processing system | |
US7536519B2 (en) | Memory access control apparatus and method for accomodating effects of signal delays caused by load | |
US7778103B2 (en) | Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof | |
KR100618858B1 (en) | Semiconductor memory device capable of changing number of banks for refreshing when conducting refresh banks and Method of refresh thereof | |
KR102336666B1 (en) | Memory device and memory system comprising the same | |
KR20230125706A (en) | Memory system including memory device and memory controller and operating method thereof | |
EP4231162A1 (en) | Memory system including memory device and memory controller, and operating method thereof | |
US10185510B2 (en) | Bank interleaving controller and semiconductor device including the same | |
CN116627317A (en) | Memory system including memory device and memory controller and method of operating the same | |
EP4379721A1 (en) | Address decoding method, and memory controller and semiconductor memory system using the same | |
KR20240081027A (en) | Address decoding method, and memory controller and semiconductor memory system using the same | |
US20070073961A1 (en) | Memory controller | |
CN118113625A (en) | Address decoding method, memory controller and semiconductor memory system |