KR20190101776A - 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법 - Google Patents

읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법 Download PDF

Info

Publication number
KR20190101776A
KR20190101776A KR1020180022154A KR20180022154A KR20190101776A KR 20190101776 A KR20190101776 A KR 20190101776A KR 1020180022154 A KR1020180022154 A KR 1020180022154A KR 20180022154 A KR20180022154 A KR 20180022154A KR 20190101776 A KR20190101776 A KR 20190101776A
Authority
KR
South Korea
Prior art keywords
data
read
input
timeout
counter
Prior art date
Application number
KR1020180022154A
Other languages
English (en)
Other versions
KR102491691B1 (ko
Inventor
정승규
권정현
신원규
홍도선
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180022154A priority Critical patent/KR102491691B1/ko
Priority to CN201811473205.6A priority patent/CN110189776B/zh
Priority to US16/210,303 priority patent/US11037610B2/en
Publication of KR20190101776A publication Critical patent/KR20190101776A/ko
Application granted granted Critical
Publication of KR102491691B1 publication Critical patent/KR102491691B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/227Timing of memory operations based on dummy memory elements or replica circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Measurement Of Unknown Time Intervals (AREA)

Abstract

읽기 타임아웃 관리부는, 제1 주기로 카운터 출력신호를 발생시키는 카운터와, 각각이 복수의 읽기 아이디들 각각에 할당되어 할당된 읽기 아이디에 대한 타임아웃 시간을 측정하는 복수개의 타이머들을 포함한다. 복수개의 타이머들 각각은, 카운터 출력신호에 동기되어 동작되어 상기 제1 주기와 다른 제2 주기로 타이머출력신호를 발생하도록 구성된다.

Description

읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법{Read time-out manager and memory system including the read time-out manager, and method of managing a read time-out}
본 개시의 여러 실시예들은, 일반적으로 메모리에 관한 것으로서, 특히 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법에 관한 것이다.
일반적으로 메모리로부터 데이터를 읽는 과정에서, 읽기 데이터에 대한 읽기 동작이 원활하게 수행되지 않는 경우가 발생될 수 있다. 이 경우 메모리 컨트롤러는 정해진 시간 내에 읽기 동작이 수행되지 않는 경우 타임아웃(time-out) 처리하여 자원들(resources)이 불필요하게 낭비되지 않도록 한다. 읽기 데이터의 읽기 동작에 대한 타임아웃 동작은, 읽기 데이터에 대응되어 할당되는 타이머의 동작에 의해 수행될 수 있다. 예컨대 타임아웃 시간을 1000초(sec)로 설정된 경우, 읽기 데이터에 대한 읽기 명령이 발생한 후 타이머 동작에 의해 1000초가 경과되면, 타임아웃 신호를 발생시켜 해당 읽기 데이터에 대한 읽기 동작이 실패했다는 메세지를 발생시킨다. 이와 같은 타임아웃 동작 수행을 위해, 타이머는 적어도 타임아웃 시간으로 설정된 시간을 측정할 수 있는 용량을 가져야 한다. 일 예에서 타임아웃 시간이 1000초로 설정된 경우, 타이머는 적어도 10-비트 용량을 가져야 한다. 더욱이 여러 읽기 데이터들 각각에 대한 읽기 명령이 실시간으로 발생됨에 따라, 요구되는 타이머 개수도 읽기 명령이 발생된 읽기 데이터들의 개수에 일치되어야 한다.
본 출원이 해결하고자 하는 과제는, 설정된 타임아웃 시간의 측정에 필요한 타이머 용량보다 적은 용량의 타이머를 사용할 수 있는 읽기 타임아웃 관리부를 제공하는 것이다.
본 출원이 해결하고자 하는 다른 과제는, 이와 같은 읽기 타임아웃 관리부를 포함하는 메모리 시스템을 제공하는 것이다.
본 출원이 해결하고자 하는 또 다른 과제는, 읽기 타임아웃 관리방법을 제공하는 것이다.
본 개시의 일 예에 따른 읽기 타임아웃 관리부는, 제1 주기로 카운터 출력신호를 발생시키는 카운터와, 각각이 복수의 읽기 아이디들 각각에 할당되어 할당된 읽기 아이디에 대한 타임아웃 시간을 측정하는 복수개의 타이머들을 포함한다. 복수개의 타이머들 각각은, 카운터 출력신호에 동기되어 동작되어 제1 주기와 다른 제2 주기로 타이머출력신호를 발생하도록 구성된다.
본 개시의 일 예에 따른 메모리 시스템은, 메모리 미디어와, 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는, 메모리 미디어에 대한 엑세스 동작을 제어하며, 메모리 미디어에 대한 읽기 명령에 의해 읽어야 할 읽기 데이터에 부여되는 읽기 아이디에 대한 타임아웃 동작을 수행하는 읽기 타임아웃 관리부를 포함한다. 읽기 타임아웃 관리부는, 제1 주기로 카운터 출력신호를 발생시키는 카운터와, 각각이 복수의 읽기 아이디들 각각에 할당되어 할당된 읽기 아이디에 대한 타임아웃 시간을 측정하는 복수개의 타이머들을 포함한다. 복수개의 타이머들 각각은, 카운터 출력신호에 동기되어 동작되어 제1 주기와 다른 제2 주기로 타이머출력신호를 발생하도록 구성된다.
본 개시의 일 예에 따른 읽기 타임아웃 관리방법은, 클럭신호에 동기되어 카운팅 동작을 수행하여 제1 주기로 카운터 출력신호를 발생시키는 단계와, 읽기 아이디가 입력되면 카운터 출력신호에 동기되어 타이머 동작을 수행하여 제1 주기와 다른 제2 주기로 타임아웃 출력신호를 발생시키는 단계를 포함한다. 타이머 동작을 수행하는 과정에서 읽기 아이디에 대응되는 읽기 동작이 수행되면 타이머 동작을 중지시키고, 타임아웃 출력신호가 발생되면 읽기 아이디에 대응되는 읽기 동작에 대해 타임아웃 처리를 수행한다.
여러 실시예들에 따르면, 각각의 읽기 아이디에 대응되는 타이머들을 동작시키는 신호를 공통의 타이머를 통해 공급함으로써, 설정된 타임아웃 시간의 측정에 필요한 타이머 용량보다 적은 용량의 타이머를 사용할 수 있으며, 이로 인해 메모리 시스템 내에서의 읽기 타임아웃 관리부가 차지하는 저장 공간을 줄일 수 있다는 이점에 제공된다.
도 1은 본 개시의 일 예에 따른 읽기 타임아웃 관리부를 포함하는 메모리 시스템을 나타내 보인 블록도이다.
도 2는 본 개시의 일 예에 따른 읽기 타임아웃 관리부를 나타내 보인 블록도이다.
도 3은 도 2의 읽기 타임아웃 관리부의 카운터의 구성의 일 예를 나타내 보인 도면이다.
도 4는 도 3의 읽기 타임아웃 관리부의 카운터의 카운팅 동작을 설명하기 위해 나타내 보인 플로챠트이다
도 5는 도 2의 읽기 타임아웃 관리부의 타이머들 중 첫번째 타이머의 구성의 일 예를 나타내 보인 도면이다.
도 6은 도 5의 읽기 타임아웃 관리부의 타이머들 중 첫번째 타이머의 타이머 동작을 설명하기 위해 나타내 보인 플로챠트이다
도 7은 본 개시의 일 예에 따른의 읽기 타임아웃 관리부의 동작을 설명하기 위해 나타내 보인 플로챠트이다.
도 8은 본 개시의 일 예에 따른 읽기 타임아웃 관리부의 카운터와 첫번째 및 두번째 타이머의 출력신호들을 나타내 보인 도면이다.
본 출원의 예의 기재에서 "제1" 및 "제2"와 같은 기재는 부재를 구분하기 위한 것이며, 부재 자체를 한정하거나 특정한 순서를 의미하는 것으로 사용된 것은 아니다. 또한, 어느 부재의 "상"에 위치하거나 "상부", "하부", 또는 "측면"에 위치한다는 기재는 상대적인 위치 관계를 의미하는 것이지 그 부재에 직접 접촉하거나 또는 사이 계면에 다른 부재가 더 도입되는 특정한 경우를 한정하는 것은 아니다. 또한, 어느 한 구성 요소가 다른 구성 요소에 "연결되어 있다"거나 "접속되어 있다"의 기재는, 다른 구성 요소에 전기적 또는 기계적으로 직접 연결되어 있거나 또는 접속되어 있을 수 있으며, 또는, 중간에 다른 별도의 구성 요소들이 개재되어 연결 관계 또는 접속 관계를 구성할 수도 있다.
도 1은 본 개시의 일 예에 따른 읽기 타임아웃 관리부를 포함하는 메모리 시스템을 나타내 보인 블록도이다. 도 1을 참조하면, 본 예에 따른 메모리 시스템(100)은 메모리 미디어(200) 및 메모리 컨트롤러(300)를 포함한다. 메모리 미디어(200)는, 데이터 저장 공간을 갖는다. 메모리 컨트롤러(300)의 쓰기 제어동작에 의해, 메모리 미디어(200)의 데이터 저장 공간 내에는 데이터가 쓰여질 수 있다. 또한 메모리 컨트롤러(300)의 읽기 제어동작에 의해, 메모리 미디어(200)의 데이터 저장 공간 내에 쓰여져 있는 데이터는 메모리 미디어(200) 외부로 읽혀질 수 있다. 일 예에서 메모리 미디어(200)는, 디램(DRAM)과 같은 휘발성 메모리를 포함할 수 있다. 일 예에서 메모리 미디어(200)는, 플래시(flash) 메모리, 상변화 메모리(PCRAM), 저항 변화 메모리(ReRAM), 강유전체 메모리(FeRAM), 자기저항 메모리(MRAM)와 같은 비휘발성 메모리를 포함할 수도 있다.
메모리 컨트롤러(300)는, 호스트로부터의 읽기 명령 및 쓰기 명령에 대응하여 메모리 미디어(200)에 대한 액세스(access) 동작을 제어한다. 메모리 컨트롤러(300)는 명령/데이터 처리부(310) 및 읽기 타임아웃 관리부(320)를 포함하여 구성될 수 있다. 명령/데이터 처리부(310)는, 호스트로부터 전달되는 명령들 및 쓰기 데이터와, 메모리 미디어로부터 전달되는 읽기 데이터를 처리한다. 호스트로부터 명령/데이터 처리부(310)로 쓰기 명령 및 쓰기 데이터가 전송되는 경우, 명령/데이터 처리부(310)는 쓰기 데이터가 메모리 미디어(200)의 정해진 위치에 저장되도록 하는 쓰기 제어동작을 수행한다. 호스트로부터 명령/데이터 처리부(310)로 읽기 명령이 전송되는 경우, 명령/데이터 처리부(310)는 메모리 미디어(200)의 정해진 위치에 저장된 읽기 데이터에 대한 읽기 제어동작을 수행한다. 명령/데이터 처리부(310)로 읽기 명령이 전송되면, 명령/데이터 처리부(310)는, 읽기 아이디(read ID; RID)를 읽기 타임아웃 관리부(320)로 전송한다. 본 예에서 읽기 아이디(RID)는 읽기 명령에 의해 읽어야 할 읽기 데이터에 부여되는 고유 아이디로 정의될 수 있다.
읽기 타임아웃 관리부(320)는, 명령/데이터 처리부(310)로부터 전송되는 읽기 아이디(RID)에 응답하여 시간을 측정한다. 시간 측정은 설정된 타임아웃 시간이 도달하거나, 또는 읽기 데이터에 대한 읽기가 수행될 때까지 수행된다. 설정된 타임아웃 시간 내에 읽기가 수행되지 않은 경우, 읽기 타임아웃 관리부(320)는 타이머 출력신호(TM_OUT)를 발생하여 명령/데이터 처리부(310)로 전송한다. 타이머 출력신호(TM_OUT)가 전송되면, 명령/데이터 처리부(310)는, 해당되는 읽기 데이터에 대한 읽기 동작에 대한 타임아웃 시간 초과를 호스트에 알려준다. 일 예에서, 읽기 타임아웃 관리부(320)가 읽기 데이터에 대한 읽기 동작이 수행되었다는 것을 알수 있도록, 읽기 동작이 수행되었다는 것을 나타내는 플래그 신호를 입력받을 수 있다. 이 플래그 신호가 입력되면, 읽기 타임아웃 관리부(320)는 해당되는 읽기 아이디(RID)에 대한 시간 측정 동작을 중지하고, 타임-아웃 시간측정 대상에서 읽기 동작이 수행된 읽기 아이디(RID)를 제거한다. 일 예에서 플래그 신호는 메모리 미디어(200)로부터 직접 입력받을 수 있다. 이 경우 메모리 미디어(200)는 명령/데이터 처리부(310)로 읽기 데이터를 전송하면서 읽기 아이디(RID) 및 그에 대응되는 플래그 신호를 읽기 타임아웃 관리부(320)로 전송한다. 다른 예에서 플래그 신호는 명령/데이터 처리부(310)로부터 입력받을 수 있다. 이 경우 명령/데이터 처리부(310)는 메모리 미디어(200)로부터 읽기 데이터가 전송되면, 읽기 아이디(RID) 및 그에 대응되는 플래그 신호를 읽기 타임아웃 관리부(320)로 전송한다.
도 2는 본 개시의 일 예에 따른 읽기 타임아웃 관리부를 나타내 보인 블록도이다. 도 2를 참조하면, 본 예에 따른 읽기 타임아웃 관리부(320)는, 읽기 아이디(RID) 할당부(321)와, 플래그신호 처리부(322)와, 카운터(400)와, 그리고 타이머부(500)를 포함하여 구성될 수 있다. 타이머부(500)는, 복수개, 예컨대 n개(n은 자연수)의 타이머들(500-1, 500-2, …, 500-(n-1), 500-n)을 포함할 수 있다. 본 예에서 읽기 타임아웃 관리부(320)의 타임아웃 동작을 위한 타임아웃 시간은 1024 클럭이 발생되는 시간으로 설정되는 경우를 예로 들기로 한다. 여기서 클럭은 메모리 시스템(도 1의 100)의 시스템 클럭일 수 있다. 일반적으로 타이머의 동작은 하나의 클럭이 발생할 때마다 1 비트씩 증가함으로써 이루어진다. 따라서 1024 클럭이 발생되는 시간을 측정하기 위해서는, 타이머가 210번의 1 비트 증가가 이루어질 수 있는 10-비트 용량을 가질 것이 요구된다. 그러나 본 예에 따른 읽기 타임아웃 관리부(320)의 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각은 10-비트의 절반인 5-비트의 용량을 갖는다. 본 예에 따른 읽기 타임아웃 관리부(320)는, 타이머들(500-1, 500-2, …, 500-(n-1), 500-n)에 공통으로 신호를 입력하는 공통의 카운터(400)를 포함함으로써, 5-비트 용량의 타이머를 사용하더라도 1024 클럭이 발생되는 시간을 측정할 수 있다.
읽기 아이디(RID) 할당부(321)는, 명령/데이터 처리부(310)로부터 입력되는 읽기 아이디(RID)를 타이머부(500)를 구성하는 복수개의 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 중 현재 사용되고 있지 않은 타이머에 할당한다. 읽기 아이디(RID)를 할당받은 타이머는 할당된 읽기 아이디(RID)에 대응되는 읽기 동작의 타임 아웃 시간을 측정하기 시작한다. 플래그신호 처리부(322)는, 메모리 미디어(200) 또는 명령/데이터 처리부(310)로부터 특정 읽기 아이디(RID)에 대한 플래그신호(FLG)가 입력되면, 플래그신호(FLG)를 타이머부(500)를 구성하는 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 중 해당되는 읽기 아이디(RID)에 대한 타임 아웃 시간을 측정하고 있는 타이머에 입력하여 타임 아웃 동작이 더 이상 수행되지 않도록 한다.
카운터(400)의 용량은 타임아웃 시간 및 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각에 용량에 의해 결정된다. 일 예에서 카운터(400)의 용량은 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각의 용량과 동일하게 설정될 수 있다. 다른 예에서 카운터(400)의 용량은 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각의 용량과 다르게 설정될 수 있다. 타임아웃 시간이 2m개(m은 자연수)의 클럭으로 설정되는 경우, 카운터(400)의 용량 및 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각의 용량이 각각 "a" 비트 및 "b" 비트인 경우, "a+b=m"의 조건이 만족되도록 "a" 및 "b"의 값이 결정된다. 본 예에서와 같이 m=10인 경우, 즉 타임아웃 시간이 210개의 클럭으로 설정된 경우, 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각이, 5-비트 용량으로 구성됨에 따라, 카운터(400)는 5-비트 용량을 갖도록 구성된다. 즉 카운터(400)의 용량(5-비트)과 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각의 용량(5-비트)의 합이 타임아웃 시간 측정을 위해 필요한 용량(10-비트)이 된다. 다른 예에서 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각의 용량이 4 비트 용량을 갖는 경우, 카운터(400)는 6 비트의 용량을 갖는다.
카운터(400)는 리셋신호(RESET) 및 클럭(CLK)을 입력받고, 카운터출력신호(CNT_OUT)를 제1 주기로 출력한다. 카운터(400)는 입력되는 클럭(CLK)에 동기되어 카운팅 동작을 수행한다. 카운터(400)에 입력되는 리셋신호(RESET)는, 카운터(400)의 카운팅 동작을 인에이블시킨다. 카운터(400)로부터 카운터출력신호(CNT_OUT)가 출력되는 제1 주기는 카운터(400)의 용량에 의해 결정될 수 있다. 카운터(400)의 용량이 "a" 비트인 경우, 카운터출력신호(CNT_OUT)가 출력되는 제1 주기는 2a개의 클럭이 발생되는 시간으로 설정된다. 본 예의 경우 카운터(400)가 5-비트 용량을 가지므로, 카운터(400)가 동작을 시작한 이후 25개, 즉 32개의 클럭이 발생된 후에 첫번째 카운터출력신호(CNT_OUT)가 발생된다. 이후 32개의 클럭이 발생될 때마다 카운터출력신호(CNT_OUT)가 카운터(400)로부터 주기적으로 출력된다. 카운터(400)로부터의 카운터출력신호(CNT_OUT)는 타이머부(500)를 구성하는 n개의 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각에 공통으로 입력된다.
타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각은 입력되는 카운터출력신호(CNT_OUT)에 동기되어 타이머 동작을 수행한다. 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각은 각각의 읽기 아이디(RID)에 할당된다. 일 예에서 첫번째 타이머(500-1)는 첫번째 읽기 아이디(RID-0)에 할당되어, 첫번째 읽기 아이디(RID-0)에 대한 타임아웃 측정에 사용된다. 두번째 타이머(500-2)는 두번째 읽기 아이디(RID-1)에 할당되어, 두번째 읽기 아이디(RID-1)에 대한 타임아웃 측정에 사용된다. (n-1)번째 타이머(500-(n-1))는 (n-1)번째 읽기 아이디(RID-(n-2))에 할당되어, (n-1)번째 읽기 아이디(RID-(n-2))에 대한 타임아웃 측정에 사용된다. 그리고 n번째 타이머(500-n)는 n번째 읽기 아이디(RID-(n-1))에 할당되어, n번째 읽기 아이디(RID-(n-1))에 대한 타임아웃 측정에 사용된다. 타이머들(500-1, 500-2, …, 500-(n-1), 500-n) 각각은, 할당된 읽기 아이디에 대해 설정된 타임아웃 시간이 경과되었다는 것을 알리는 타이머출력신호(TM_OUT-0, TM_OUT-1, …, TM_OUT-(n-2), TM_OUT-(n-1))를 명령/데이터 처리부(310)로 전송할 수 있다.
도 3은 도 2의 읽기 타임아웃 관리부(320)의 5-비트 카운터(400)의 구성의 일 예를 나타내 보인 도면이다. 도 3을 참조하면, 5-비트 카운터(400)는, 멀티플렉서(410)와, 5-비트 레지스터(420)와, 5-비트 가산기(430)와, 그리고 비교기(440)를 포함하여 구성될 수 있다. 멀티플렉서(410)는, 초기값으로서 "00000"의 5-비트 초기데이터와, 5-비트 가산기(430)로부터 출력되는 5-비트 가산데이터를 입력받는다. 멀티플렉서(410)는 리셋신호(RESET)에 응답하여 "00000"의 5-비트 초기데이터를 초기값으로서 먼저 출력한다. 이후부터는 5-비트 가산기(430)로부터 입력되는 5-비트 가산데이터를 출력한다. 멀티플렉서(410)로부터 출력되는 5-비트 초기데이터 또는 5-비트 가산데이터는 5-비트 레지스터(420)에 입력된다.
5-비트 레지스터(420)는 5개의 D 플립플랍들로 구성될 수 있다. D 플립플랍들 각각은 하나의 비트값을 구성한다. 멀티플렉서(410)로부터 출력되는 5-비트 초기데이터 또는 5-비트 가산데이터의 비트값들 각각은 D 플립플랍들의 "D" 입력단자들 각각에 입력된다. D 플립플랍들의 "Q" 단자들은 5-비트 레지스터(420)의 출력단자를 구성한다. 5-비트 레지스터(420)는 입력되는 클럭(CLK)에 동기되어 5-비트 출력데이터를 출력한다. 5-비트 레지스터(420)로부터 출력되는 출력데이터는, 멀티플렉서(410)에 의해 플립플랍들의 "D" 단자들로 입력되는 데이터와 동일한 값을 갖는다. 따라서 초기에는 "00000"의 출력데이터를 출력하고, 이후 클럭(CLK)에 동기되어 5-비트 가산데이터를 출력한다. 5-비트 레지스터(420)로부터의 출력데이터는 5-비트 가산기(430) 및 비교기(440)에 공통으로 입력된다.
5-비트 가산기(430)는 5-비트 레지스터(420)로부터의 입력되는 출력데이터에 대한 가산동작을 수행한 후 5-비트 가산데이터를 출력한다. 예컨대 5-비트 레지스터(420)로부터 "00001"의 데이터가 입력되면, 5-비트 가산기(430)는 "00010"의 가산데이터를 출력한다. 비교기(440)는, 5-비트 레지스터(420)로부터 입력되는 출력데이터와 기설정된 기준데이터를 비교한 후 그 결과에 따라 카운터출력신호(CNT_OUT)를 발생시킬 수 있다. 일 예에서 기준데이터는 "11111"로 설정될 수 있다. 비교기(440)는, 5-비트 레지스터(420)로부터 입력되는 출력데이터가 기준데이터인 "11111"보다 작은 값인 경우 카운터출력신호(CNT_OUT)를 발생시키지 않는다. 반면에 비교기(440)는, 5-비트 레지스터(420)로부터 입력되는 출력데이터가 기준데이터인 "11111"과 같은 경우 카운터출력신호(CNT_OUT)를 발생시킨다.
도 4는 도 2의 읽기 타임아웃 관리부(320)의 5-비트 카운터(400)의 카운팅 동작을 설명하기 위해 나타내 보인 플로챠트이다. 도 4를 도 3과 함께 참조하면, 먼저 리셋신호(RESET)에 응답하여 멀티플렉서(410)는 초기데이터인 "000000"을 출력하여 5-비트 레지스터(420)에 입력시킨다(단계 610). 5-비트 레지스터(420)는 클럭신호(CLK)에 동기되어 초기데이터인 "00000"을 출력시킨다(단계 620). 5-비트 레지스터(420)로부터 출력되는 초기데이터인 "00000"을 입력받는 비교기(440)는 초기데이터인 "00000"을 타겟 데이터인 "11111"와 비교하여 일치 여부를 판단한다(단계 630). 단계 630의 판단 결과, 두 데이터 일치하지 않으므로, 비교기(440)는 카운터 출력신호(CNT_OUT)를 발생시키지 않는다. 5-비트 레지스터(420)로부터 출력되는 초기데이터인 "00000"을 입력받는 5-비트 가산기(430)는 입력되는 데이터인 "00000"에 대한 가산 동작을 수행하여 가산데이터로서 "00001"을 출력하여 멀티플렉서(410)에 입력시킨다(단계 640). 멀티플렉서(410)는 가산데이터인 "00001"을 5-비트 레지스터(420)에 입력시킨다(단계 650). 5-비트 레지스터(420)는 클럭신호(CLK)에 동기되어 가산데이터인 "00001"을 출력한다(단계 660).
비교기(440)는 5-비트 레지스터(420)로부터 출력되는 가산데이터인 "00001"을 타겟 데이터인 "11111"와 비교하여 일치 여부를 판단한다(단계 630). 단계 630의 판단 결과, 두 데이터 일치하지 않으므로, 5-비트 가산기(430)는 5-비트 레지스터(420)의 출력데이터인 "00001"에 대한 가산 동작을 수행하여 가산데이터로서 "00010"을 출력하여 멀티플렉서(410)에 입력시킨다(단계 640). 이와 같은 과정은, 단계 630의 판단에서 5-비트 레지스터(420)로부터 출력되는 출력데이터가 타겟데이터인 "11111"과 일치할 때까지 반복적으로 수행된다. 단계 630의 판단에서 5-비트 레지스터(420)로부터 출력되는 출력데이터가 타겟데이터인 "11111"과 일치되면, 비교기(440)는 카운터 출력신호(CNT_OUT)를 출력시키고 리셋신호(RESET)를 멀티플렉서(410)에 입력시킨다(단계 670). 이와 같은 과정에 의해 한 주기의 카운터 출력신호(CNT_OUT) 출력 과정이 수행된다. 단계 670에서 리셋신호(RESET)가 멀티플렉서(410)에 입력됨에 따라 다음 주기의 카운터 출력신호(CNT_OUT)를 출력하기 위한 과정이 동일하게 수행된다.
도 5는 도 2의 읽기 타임아웃 관리부(320)의 타이머들 중 첫번째 타이머(500-1)의 구성의 일 예를 나타내 보인 도면이다. 본 예에서의 첫번째 타이머(500-1)의 구성은 나머지 타이머들, 즉 두번째 내지 n번째 타이머에도 동일하게 적용된다. 도 5를 참조하면, 첫번째 5-비트 타이머(500-1)는, 멀티플렉서(511)와, 5-비트 레지스터(512)와, 5-비트 감산기(513)와, 그리고 비교기(514)를 포함하여 구성될 수 있다. 멀티플렉서(511)는, 초기값으로서 "11111"의 5-비트 초기데이터와, 5-비트 감산기(513)로부터 출력되는 5-비트 감산데이터를 입력받는다. 멀티플렉서(511)는 첫번째 초기화 제어신호(INIT-0)에 응답하여 "11111"의 5-비트 초기데이터를 초기값으로서 먼저 출력한다. 이후부터는 5-비트 감산기(513)로부터 입력되는 5-비트 감산데이터를 출력한다. 멀티플렉서(511)로부터 출력되는 5-비트 초기데이터 또는 5-비트 감산데이터는 5-비트 레지스터(512)에 입력된다.
5-비트 레지스터(512)는 5개의 D 플립플랍들로 구성될 수 있다. D 플립플랍들 각각은 하나의 비트값을 구성한다. 멀티플렉서(511)로부터 출력되는 5-비트 초기데이터 또는 5-비트 감산데이터의 비트값들 각각은 D 플립플랍들의 "D" 입력단자들 각각에 입력된다. D 플립플랍들의 "Q" 단자들은 5-비트 레지스터(512)의 출력단자를 구성한다. 5-비트 레지스터(512)는 타이머(400)로부터 입력되는 타이머출력신호(CNT_OUT)에 동기되어 5-비트 출력데이터를 출력한다. 5-비트 레지스터(512)로부터 출력되는 출력데이터는, 멀티플렉서(511)에 의해 플립플랍들의 "D" 단자들로 입력되는 데이터와 동일한 값을 갖는다. 따라서 초기에는 "11111"의 출력데이터를 출력하고, 이후 타이머출력신호(CNT_OUT)에 동기되어 5-비트 감산데이터를 출력한다. 5-비트 레지스터(512)로부터의 출력데이터는 5-비트 감산기(513) 및 비교기(514)에 공통으로 입력된다.
5-비트 감산기(513)는 5-비트 레지스터(512)로부터의 입력되는 출력데이터에 대한 감산동작을 수행한 후 5-비트 감산데이터를 출력한다. 예컨대 5-비트 레지스터(512)로부터 "11110"의 데이터가 입력되면, 5-비트 감산기(513)는 "11101"의 감산데이터를 출력한다. 비교기(514)는, 5-비트 레지스터(512)로부터 입력되는 출력데이터와 기설정된 기준데이터를 비교한 후 그 결과에 따라 첫번째 타이머출력신호(TM_OUT-0)를 발생시킬 수 있다. 일 예에서 기준데이터는 "00000"으로 설정될 수 있다. 비교기(514)는, 5-비트 레지스터(512)로부터 입력되는 출력데이터가 기준데이터인 "00000"보다 큰 값인 경우 첫번째 타이머출력신호(TM_OUT-0)를 발생시키지 않는다. 반면에 비교기(514)는, 5-비트 레지스터(512)로부터 입력되는 출력데이터가 기준데이터인 "00000"과 같은 경우 첫번째 타이머출력신호(TM_OUT-0)를 발생시킨다.
도 6은 도 5의 읽기 타임아웃 관리부(320)의 타이머들 중 첫번째 타이머(500-1)의 타이머 동작을 설명하기 위해 나타내 보인 플로챠트이다. 본 예에서의 첫번째 타이머(500-1)의 동작에 대한 설명은 나머지 타이머들, 즉 두번째 내지 n번째 타이머에도 동일하게 적용된다. 도 6을 도 5와 함께 참조하면, 먼저 첫번째 타이머(500-1)에 입력되는 첫번째 초기화 제어신호(INIT-0)에 응답하여 멀티플렉서(511)는 초기데이터인 "11111"을 출력하여 5-비트 레지스터(512)에 입력시킨다(단계 710). 5-비트 레지스터(512)에 입력된 초기 데이터인 "11111"은 5-비트 레지스터(512)를 구성하는 D플립플랍들에 저장되어 있다가, 입력되는 카운터 출력신호(CNT_OUT)에 동기되어 5-비트 레지스터(512)로부터 출력된다(단계 720). 5-비트 레지스터(512)의 출력되는 초기데이터인 "11111"을 입력받는 비교기(514)는 이 데이터를 타겟 데이터인 "00000"과 비교하여 일치 여부를 판단한다(단계 730). 단계 730의 판단 결과, 두 데이터가 일치하지 않으므로, 비교기(514)는 타임아웃 출력신호(TM_OUT)를 발생시키지 않는다. 5-비트 레지스터(512)로부터 출력되는 초기데이터인 "11111"을 입력받는 5-비트 감산기(513)는 입력되는 데이터인 "11111"에 대한 감산 동작을 수행하여 감산데이터로서 "11110"을 출력하여 멀티플렉서(511)에 입력시킨다(단계 740). 멀티플렉서(511)는 가산데이터인 "11110"을 5-비트 레지스터(512)에 입력시킨다(단계 750). 5-비트 레지스터(512)에 입력된 데이터 "11110"은 5-비트 레지스터(512)를 구성하는 D플립플랍들에 저장되어 있다가, 입력되는 카운터 출력신호(CNT_OUT)에 동기되어 5-비트 레지스터(512)로부터 출력된다(단계 760).
5-비트 레지스터(512)의 출력되는 데이터인 "11110"을 입력받는 비교기(514)는 이 데이터를 타겟 데이터인 "00000"과 비교하여 일치 여부를 판단하는 단계 730을 다시 수행한다. 단계 730의 판단 결과, 두 데이터 일치하지 않으므로, 비교기(514)는 타임아웃 출력신호(TM_OUT)를 발생시키지 않는다. 5-비트 레지스터(512)로부터 출력되는 데이터 "11110"을 입력받는 5-비트 감산기(513)는 입력되는 데이터인 "11110"에 대한 감산 동작을 수행하여 감산데이터로서 "11101"을 출력하여 멀티플렉서(511)에 입력시킨다(단계 740). 이와 같은 과정은, 단계 630의 판단에서 5-비트 레지스터(420)로부터 출력되는 출력데이터가 타겟데이터인 "11111"과 일치할 때까지 반복적으로 수행된다. 단계 630의 판단에서 5-비트 레지스터(420)로부터 출력되는 출력데이터가 타겟데이터인 "11111"과 일치되면, 비교기(440)는 카운터 출력신호(CNT_OUT)를 출력시키고 리셋신호(RESET)를 멀티플렉서(410)에 입력시킨다(단계 670). 멀티플렉서(511)는 가산데이터인 "11101"을 5-비트 레지스터(512)에 입력시킨다(단계 750). 5-비트 레지스터(512)에 입력된 데이터 "11101"은 5-비트 레지스터(512)를 구성하는 D플립플랍들에 저장되어 있다가, 입력되는 카운터 출력신호(CNT_OUT)에 동기되어 5-비트 레지스터(512)로부터 출력된다(단계 760). 이와 같은 단계 730 내지 단계 760의 과정은 단계 730의 판단 결과, 비교기(514)로 입력되는 데이터가 타겟 데이터인 "00000"과 일치할 때까지 반복되어 수행된다. 단계 730의 판단 결과, 비교기(514)로 입력되는 데이터가 타겟 데이터인 "00000"과 일치하면, 비교기(514)는 타임아웃 출력신호(TM_OUT)을 출력시킨다.
도 7은 본 개시의 일 예에 따른 읽기 타임아웃 관리부(320)에 의한 타임아웃 동작을 설명하기 위해 나타내 보인 플로챠트이다. 도 7을 도 2, 도 3, 및 도 5와 함께 참조하면, 리셋신호(RESET)를 5-비트 카운터(400)에 입력시킨다(단계 810). 리셋신호(RESET)가 입력됨에 따라 카운터(400)는, 도 4를 참조하여 설명한 바와 같이, 클럭신호(CLK)에 동기되어 카운팅 동작을 수행한다(단계 820). 이 카운팅 동작에 의해, 카운터(400)는 제1 주기인 32개의 클럭(CLK) 주기로 카운터 출력신호(CNT_OUT)을 출력하여 타이머부(500)의 n개의 모든 타이머들(500-1, 500-2, …, 500-(n-2), 500-(n-1))에 공통으로 입력시킨다. 이와 같이 카운터(400)의 카운팅 동작이 수행되고 있는 상태에서, 명령/데이터 처리부(310)로부터 읽기 타임아웃 관리부(320)로 k번째(k는 1, 2, …, n-2, n-1) 읽기 아이디(RID-(k-1))가 입력되면, k번째 타이머(500-k)에 k번째 초기화 제어신호(INIT-(k-1))를 입력시킨다(단계 830). k번째 읽기 아이디(RID-(k-1))가 k번째 타이머(500-k)에 입력됨에 따라, 도 6을 참조하여 설명한 바와 같이, k번째 타이머(500-k)는 카운터 출력신호(CNT_OUT)에 동기되어 타이머 동작을 수행한다(단계 840). k번째 타이머(500-k)의 타이머 동작은, k번째 타이머 출력신호(TM_OUT-(k-1))가 발생되거나, 또는 k번째 읽기 아이디(RID-(k-1))에 의해 정의된 읽기 동작이 수행될 때까지 수행된다.
구체적으로 단계 840의 k번째 타이머(500-(k-1))가 동작하는 동안, k번째 읽기 아이디(RID-(k-1))에 해당하는 읽기 데이터를 메모리 미디어(200)로부터 읽었는지를 판단한다(단계 850). 단계 850의 판단은, 도 2를 참조하여 설명한 바와 같이 플래그신호(FLG)의 입력 여부를 통해 수행될 수 있다. 단계 850의 판단에서, k번째 읽기 아이디(RID-(k-1))에 해당하는 읽기 데이터가 메모리 미디어(200)로부터 메모리 컨트롤러(300)의 명령/데이터 처리부(310)로 전송된 경우, 더 이상 읽기 타임아웃 동작을 수행할 필요가 없으므로 k번째 읽기 아이디(RID-(k-1))의 동작을 중지시킨다(단계 860). 단계 850의 판단에서, k번째 읽기 아이디(RID-(k-1))에 해당하는 읽기 데이터에 대한 읽기 동작이 아직 수행되지 않은 경우, k번째 읽기 아이디(RID-(k-1))의 k번째 타이머 출력신호(TM_OUT-(k-1))이 발생했는지의 여부를 판단한다(단계 870). 단계 870의 판단에서 k번째 타이머 출력신호(TM_OUT-(k-1))가 발생되지 않은 경우 단계 850의 판단을 다시 수행한다. 단계 870의 판단에서 k번째 타이머 출력신호(TM_OUT-(k-1))가 발생된 경우, k번째 읽기 아이디(RID-(k-1))에 대한 타임아웃 시간이 경과되었다는 것을 의미하므로, k번째 읽기 아이디(RID-(k-1))에 대한 타임아웃 처리를 수행한다(단계 880). 그리고 k번째 타이머(500-k)의 동작을 중지시키는 단계 860을 수행한다.
이상 설명한 바와 같이, 본 예에 따른 읽기 타임아웃 관리부(320)에 따르면, 한개의 5-비트의 카운터(400)와 n개의 타이머들(500-1, 500-2, …, 500-(n-2), 500-(n-1))만으로 210 클럭, 즉 1024 클럭의 타임아웃 시간을 카운팅할 수 있다. 일반적으로 210 클럭, 즉 1024 클럭의 타임아웃 시간을 카운팅하기 위해서는, 한 개의 읽기 아이디(RID)당 10-비트의 타이머가 할당되어야 한다. 즉 n개의 읽기 아이디들(RID-0, RID-1, …, RID-(n-2), RID-(n-1))에 대한 타임아웃 시간을 카운팅하기 위해서는 n개의 10-비트 타이머들이 요구된다. 따라서 일반적인 경우에 비하여, 본 예의 경우 한 개의 5-비트 카운터(400)가 추가로 사용되고, 사용되는 타이머의 개수는 n개로 동일하지만, n개의 타이머들(500-1, 500-2, …, 500-(n-2), 500-(n-1)) 각각이 5-비트 용량을 갖는다. 따라서 n개의 10-비트 용량의 타이머들로 구성되는 경우에 비하여 메모리 시스템 내에서의 읽기 타임아웃 관리부(320)가 차지하는 저장 공간을 줄일 수 있다. 한편, 본 예에 따른 읽기 타임아웃 관리부(320)의 경우, 정해진 타임아웃 시간이 정확하게 카운팅되지 않는 경우가 발생할 수 있다. 그러나 읽기 타임아웃 동작 특성상 일정 정도의 편차는 타임아웃 동작의 목적을 훼손하지 않는다. 이하에서는 도 8을 참조하여 이에 대해 보다 상세하게 설명하기로 한다.
도 8은 본 개시의 일 예에 따른 읽기 타임아웃 관리부(320)의 카운터(400)와 첫번째 및 두번째 타이머(500-1, 500-2)의 출력신호들의 일 예를 나타내 보인 도면이다. 도 8을 참조하면, 카운터는 32 클럭을 주기로 카운터출력신호(CNT_OUT)을 발생시킨다. 첫번째 읽기 아이디(RID-0)가 도면에서 두번째 카운터출력신호(CNT_OUT)가 발생하는 시점에서 8 클럭 이전 시점에 입력된 경우를 예로 들기로 한다. 또한 두번째 읽기 아이디(RID-1)는 도면에서 세번째 카운터 출력신호(CNT_OUT)가 발생하는 시점에서 30 클럭 이전 시점에 입력된 경우를 예로 들기로 한다. 첫번째 타이머의 경우, 첫번째 읽기 아이디(RID-0)가 입력된 이후에 발생되는 도면에서 두번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서 첫번째 타이머의 5-비트 레지스터가 "11111"의 출력데이터를 발생시킨다. 이 시점에서 첫번째 타이머출력신호(TM_OUT-0)는 발생되지 않는다. 이어서 32 클럭이 경과하여 세번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서는 첫번째 타이머의 5-비트 레지스터로부터 "11110"의 출력데이터가 발생된다. 이 시점에서도 첫번째 타이머출력신호(TM_OUT-0)는 발생되지 않는다. 이어서 32 클럭이 경과하여 네번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서는 첫번째 타이머의 5-비트 레지스터로부터 "11101"의 출력데이터가 발생된다. 이 시점에서도 첫번째 타이머출력신호(TM_OUT-0)는 발생되지 않는다. 이와 같은 과정은 모두 32개의 카운터출력신호(CNT_OUT)가 발생되는 동안 반복적으로 수행된다. 두번째 카운터출력신호(CNT_OUT)로부터 시작해서 32번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서 첫번째 타이머의 5-비트 레지스터로부터 "00000"의 출력데이터가 발생되고, 이 시점에서 첫번째 타이머출력신호(TM_OUT-0)가 발생된다.
두번째 타이머의 경우, 두번째 읽기 아이디(RID-1)가 입력된 이후에 발생되는 도면에서 세번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서 두번째 타이머의 5-비트 레지스터가 "11111"의 출력데이터를 발생시킨다. 이 시점에서 두번째 타이머출력신호(TM_OUT-1)는 발생되지 않는다. 이어서 32 클럭이 경과하여 네번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서는 두번째 타이머의 5-비트 레지스터로부터 "11110"의 출력데이터가 발생된다. 이와 같은 과정이 반복되어, 세번째 카운터출력신호(CNT_OUT)로부터 시작하여 31번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서는 두번째 타이머의 5-비트 레지스터로부터 "00001"의 출력데이터가 발생된다. 이 시점에서도 두번째 타이머출력신호(TM_OUT-1)는 발생되지 않는다. 이어서 32 클럭이 경과하여, 세번째 카운터출력신호(CNT_OUT)로부터 시작해서 32번째 카운터출력신호(CNT_OUT)가 발생되는 시점에서 두번째 타이머의 5-비트 레지스터로부터 "00000"의 출력데이터가 발생되고, 이 시점에서 두번째 타이머출력신호(TM_OUT-1)가 발생된다.
첫번째 읽기 아이디(RID-0)에 할당된 첫번째 타이머의 경우, 타임아웃 처리가 이루어질 때까지, 타이머 동작이 처음 수행되도록 하는 두번째 카운터출력신호(CNT_OUT)가 발생될 때까지의 8 클럭과, 두번째 카운터출력신호(CNT_OUT)가 발생되는 시점부터 최종적으로 첫번째 타이머출력신호(TM_OUT-0)가 발생될 때까지의 1024 클럭을 합친 1032 클럭이 소요된다. 비록 설정된 타임아웃 시간인 1024 클럭과 8 클럭의 차이가 있지만, 설정된 타임아웃 시간 이전에 타임아웃 처리가 되는 것은 아니므로 타임아웃 관리 동작에 큰 영향을 주지 않는다. 마찬가지로 두번째 읽기 아이디(RID-1)에 할당된 첫번째 타이머의 경우, 타임아웃 처리가 이루어질 때까지, 타이머 동작이 처음 수행되도록 하는 세번째 카운터출력신호(CNT_OUT)가 발생될 때까지의 30 클럭과, 두번째 카운터출력신호(CNT_OUT)가 발생되는 시점부터 최종적으로 첫번째 타이머출력신호(TM_OUT-0)가 발생될 때까지의 1024 클럭을 합친 1054 클럭이 소요된다. 이 경우에도 비록 설정된 타임아웃 시간인 1024 클럭과 30 클럭의 차이가 있지만, 설정된 타임아웃 시간 이전에 타임아웃 처리가 되는 것은 아니므로 타임아웃 관리 동작에 큰 영향을 주지 않는다.
상술한 바와 같이 본 출원의 실시 형태들을 도면들을 예시하며 설명하지만, 이는 본 출원에서 제시하고자 하는 바를 설명하기 위한 것이며, 세밀하게 제시된 형상으로 본 출원에서 제시하고자 하는 바를 한정하고자 한 것은 아니다.
100...메모리 시스템 200...메모리 미디어
300...메모리 컨트롤러 310...명령/데이터 처리부
320...읽기 타임아웃 관리부 321...읽기 아이디(RID) 할당부
322...플래그 처리부 400...카운터
500...타이머부
500-1, 500-2, …, 500-(n-2), 500-(n-1)...타이머
410, 511...멀티플렉서 420, 512...5-비트 레지스터
430...5-비트 가산기 440, 514...비교기
513...5-비트 감산기

Claims (24)

  1. 제1 주기로 카운터 출력신호를 발생시키는 카운터; 및
    각각이 복수의 읽기 아이디들 각각에 할당되어 할당된 읽기 아이디에 대한 타임아웃 시간을 측정하는 복수개의 타이머들을 포함하되,
    상기 복수개의 타이머들 각각은, 상기 카운터 출력신호에 동기되어 동작되어 상기 제1 주기와 다른 제2 주기로 타이머출력신호를 발생하도록 구성되는 읽기 타임아웃 관리부.
  2. 제1항에 있어서,
    상기 타임아웃 시간이 2m개(m은 자연수)의 클럭으로 설정된 경우, a+b=m(a, b는 자연수)의 조건을 만족시키도록 상기 카운터는 a 비트의 용량을 갖고 상기 타이머들 각각은 b 비트의 용량을 갖는 읽기 타임아웃 관리부.
  3. 제2항에 있어서,
    상기 제1 주기는 2a개의 클럭이 발생되는 시간으로 설정되고, 상기 제2 주기는 2(a+b)개의 클럭이 발생되는 시간으로 설정되는 읽기 타임아웃 관리부.
  4. 제2항에 있어서,
    상기 카운터의 용량 및 타이머의 용량은 동일한 읽기 타임아웃 관리부.
  5. 제1항에 있어서, 상기 카운터는,
    입력되는 리셋신호에 응답하여 제1 입력단자에 입력되는 초기데이터를 출력하고, 이후부터는 제2 입력단자에 입력되는 데이터를 출력하는 멀티플렉서;
    상기 멀티플렉서의 출력데이터를 입력받아 클럭에 동기되어 상기 출력데이터를 출력하는 레지스터;
    상기 레지스터의 출력데이터를 입력받아 가산동작을 수행하여 가산데이터를 상기 멀티플렉서의 제2 입력단자에 입력시키는 가산기; 및
    상기 레지스터의 출력데이터를 입력받아 기준데이터와 비교한 후 일정 조건에 따라 카운터출력신호를 발생시키는 비교기를 포함하는 읽기 타임아웃 관리부.
  6. 제5항에 있어서,
    상기 레지스터는 D 플립플랍들로 구성되는 읽기 타임아웃 관리부.
  7. 제1항에 있어서, 상기 복수개의 타이머들 각각은,
    입력되는 초기화 제어신호에 응답하여 제1 입력단자에 입력되는 초기데이터를 출력하고, 이후부터는 제2 입력단자에 입력되는 데이터를 출력하는 멀티플렉서;
    상기 멀티플렉서의 출력데이터를 입력받아 상기 타이머의 출력신호에 동기되어 상기 출력데이터를 출력하는 레지스터;
    상기 레지스터의 출력데이터를 입력받아 감산동작을 수행하여 감산데이터를 상기 멀티플렉서의 제2 입력단자에 입력시키는 감산기; 및
    상기 레지스터의 출력데이터를 입력받아 기준데이터와 비교한 후 일정 조건에 따라 타이머출력신호를 발생시키는 비교기를 포함하는 읽기 타임아웃 관리부.
  8. 제7항에 있어서,
    상기 초기화 제어신호는, 상기 할당된 읽기 아이디의 입력에 응답하여 상기 멀티플렉서로 입력되는 읽기 타임아웃 관리부.
  9. 제7항에 있어서,
    상기 레지스터는 D 플립플랍들로 구성되는 읽기 타임아웃 관리부.
  10. 메모리 미디어; 및
    상기 메모리 미디어에 대한 엑세스 동작을 제어하며, 상기 메모리 미디어에 대한 읽기 명령에 의해 읽어야 할 읽기 데이터에 부여되는 읽기 아이디에 대한 타임아웃 동작을 수행하는 읽기 타임아웃 관리부를 갖는 메모리 컨트롤러를 포함하되,
    상기 읽기 타임아웃 관리부는,
    제1 주기로 카운터 출력신호를 발생시키는 카운터; 및
    각각이 복수의 읽기 아이디들 각각에 할당되어 할당된 읽기 아이디에 대한 타임아웃 시간을 측정하는 복수개의 타이머들을 포함하며,
    상기 복수개의 타이머들 각각은, 상기 카운터 출력신호에 동기되어 동작되어 상기 제1 주기와 다른 제2 주기로 타이머출력신호를 발생하도록 구성되는 메모리 시스템.
  11. 제10항에 있어서,
    상기 타임아웃 시간이 2m개(m은 자연수)의 클럭으로 설정된 경우, a+b=m(a, b는 자연수)의 조건을 만족시키도록 상기 카운터는 a 비트의 용량을 갖고 상기 타이머들 각각은 b 비트의 용량을 갖는 메모리 시스템.
  12. 제11항에 있어서,
    상기 제1 주기는 2a개의 클럭이 발생되는 시간으로 설정되고, 상기 제2 주기는 2(a+b)개의 클럭이 발생되는 시간으로 설정되는 메모리 시스템.
  13. 제11항에 있어서,
    상기 카운터의 용량 및 타이머의 용량은 동일한 메모리 시스템.
  14. 제10항에 있어서, 상기 카운터는,
    입력되는 리셋신호에 응답하여 제1 입력단자에 입력되는 초기데이터를 출력하고, 이후부터는 제2 입력단자에 입력되는 데이터를 출력하는 멀티플렉서;
    상기 멀티플렉서의 출력데이터를 입력받아 클럭에 동기되어 상기 출력데이터를 출력하는 레지스터;
    상기 레지스터의 출력데이터를 입력받아 가산동작을 수행하여 가산데이터를 상기 멀티플렉서의 제2 입력단자에 입력시키는 가산기; 및
    상기 레지스터의 출력데이터를 입력받아 기준데이터와 비교한 후 일정 조건에 따라 카운터출력신호를 발생시키는 비교기를 포함하는 메모리 시스템.
  15. 제14항에 있어서,
    상기 레지스터는 D 플립플랍들로 구성되는 메모리 시스템.
  16. 제10항에 있어서, 상기 복수개의 타이머들 각각은,
    입력되는 초기화 제어신호에 응답하여 제1 입력단자에 입력되는 초기데이터를 출력하고, 이후부터는 제2 입력단자에 입력되는 데이터를 출력하는 멀티플렉서;
    상기 멀티플렉서의 출력데이터를 입력받아 상기 타이머의 출력신호에 동기되어 상기 출력데이터를 출력하는 레지스터;
    상기 레지스터의 출력데이터를 입력받아 감산동작을 수행하여 감산데이터를 상기 멀티플렉서의 제2 입력단자에 입력시키는 감산기; 및
    상기 레지스터의 출력데이터를 입력받아 기준데이터와 비교한 후 일정 조건에 따라 타이머출력신호를 발생시키는 비교기를 포함하는 메모리 시스템.
  17. 제16항에 있어서,
    상기 초기화 제어신호는, 상기 할당된 읽기 아이디의 입력에 응답하여 상기 멀티플렉서로 입력되는 메모리 시스템.
  18. 제17항에 있어서,
    상기 레지스터는 D 플립플랍들로 구성되는 메모리 시스템.
  19. 제10항에 있어서,
    상기 메모리 컨트롤러는, 상기 읽기 명령의 발생에 응답하여 상기 읽기 아이디를 상기 읽기 타임아웃 관리부에 입력하고, 상기 읽기 타임아웃 관리부로부터의 타이머출력신호에 응답하여 상기 읽기 아이디에 대한 타임아웃 처리를 수행하는 명령/데이터 처리부를 더 포함하는 메모리 시스템.
  20. 클럭신호에 동기되어 카운팅 동작을 수행하여 제1 주기로 카운터 출력신호를 발생시키는 단계; 및
    읽기 아이디가 입력되면 상기 카운터 출력신호에 동기되어 타이머 동작을 수행하여 상기 제1 주기와 다른 제2 주기로 타임아웃 출력신호를 발생시키는 단계를 포함하되,
    상기 타이머 동작을 수행하는 과정에서 상기 읽기 아이디에 대응되는 읽기 동작이 수행되면 상기 타이머 동작을 중지시키고,
    상기 타임아웃 출력신호가 발생되면 상기 읽기 아이디에 대응되는 읽기 동작에 대해 타임아웃 처리를 수행하는 읽기 타임아웃 관리방법.
  21. 제20항에 있어서, 상기 카운팅 동작은,
    초기데이터를 제1 레지스터에 입력하는 단계;
    상기 클럭신호에 동기되어 상기 초기데이터를 상기 제1 레지스터로부터 출력시키는 단계;
    상기 제1 레지스터로부터의 출력데이터가 제1 타겟 데이터와 일치하는지의 여부를 판단하는 단계; 및
    상기 판단 결과 상기 출력데이터가 타겟 데이터와 일치하면 카운터 출력신호를 발생시키고, 일치하지 않으면 상기 제1 레지스터로부터의 출력데이터에 대한 가산동작을 수행하여 상기 제1 레지스터로 입력시키고 상기 판단 단계를 다시 수행하는 단계를 포함하는 읽기 타임아웃 관리방법.
  22. 제21항에 있어서, 상기 타이머 동작은,
    상기 읽기 아이디가 입력되면 초기데이터를 제2 레지스터에 입력하는 단계;
    상기 카운터 출력신호에 동기되어 상기 초기데이터를 상기 제2 레지스터로부터 출력시키는 단계;
    상기 제2 레지스터로부터의 출력데이터가 제2 타겟 데이터와 일치하는지의 여부를 판단하는 단계; 및
    상기 판단 결과 상기 출력데이터가 제2 타겟 데이터와 일치하면 타임아웃 출력신호를 발생시키고, 일치하지 않으면 상기 제2 레지스터로부터의 출력데이터에 대한 감산동작을 수행하여 상기 레지스터로 입력시키고 상기 판단 단계를 다시 수행하는 단계를 포함하는 읽기 타임아웃 관리방법.
  23. 제22항에 있어서,
    상기 타임아웃 시간이 2m개(m은 자연수)의 클럭으로 설정된 경우, 상기 카운팅 동작 과정에서 처리되는 데이터의 용량을 "a"라 하고, 상기 타이머 동작 과정에서 처리되는 데이터의 용량을 "b"라고 할 때, a+b=m(a, b는 자연수)의 조건이 만족되도록 하는 읽기 타임아웃 관리방법.
  24. 제23항에 있어서,
    상기 제1 주기는 2a개의 클럭이 발생되는 시간으로 설정되고, 상기 제2 주기는 2(a+b)개의 클럭이 발생되는 시간으로 설정되는 읽기 타임아웃 관리방법.
KR1020180022154A 2018-02-23 2018-02-23 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법 KR102491691B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180022154A KR102491691B1 (ko) 2018-02-23 2018-02-23 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법
CN201811473205.6A CN110189776B (zh) 2018-02-23 2018-12-04 读取超时管理器及包括读取超时管理器的存储系统
US16/210,303 US11037610B2 (en) 2018-02-23 2018-12-05 Read time-out managers and memory systems including the read time-out managers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180022154A KR102491691B1 (ko) 2018-02-23 2018-02-23 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법

Publications (2)

Publication Number Publication Date
KR20190101776A true KR20190101776A (ko) 2019-09-02
KR102491691B1 KR102491691B1 (ko) 2023-01-27

Family

ID=67684033

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180022154A KR102491691B1 (ko) 2018-02-23 2018-02-23 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법

Country Status (3)

Country Link
US (1) US11037610B2 (ko)
KR (1) KR102491691B1 (ko)
CN (1) CN110189776B (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0657791A2 (en) * 1993-12-09 1995-06-14 Pitney Bowes Inc. Dynamically programmable timer-counter
US20050078669A1 (en) * 2003-10-14 2005-04-14 Broadcom Corporation Exponential channelized timer
US20060198237A1 (en) * 2004-08-04 2006-09-07 Johnson James B Method and apparatus for initialization of read latency tracking circuit in high-speed DRAM
US20130024864A1 (en) * 2011-07-18 2013-01-24 Narasimha Murthy Nukala Lakshmi Scalable Hardware Mechanism to Implement Time Outs for Pending POP Requests to Blocking Work Queues
US20170178742A1 (en) * 2015-12-18 2017-06-22 Texas Instruments Incorporated Self-Latch Sense Timing in a One-Time-Programmable Memory Architecture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101229A (en) * 1996-04-04 2000-08-08 Texas Instruments Incorporated Data synchronization method and circuit using a timeout counter
US6762974B1 (en) * 2003-03-18 2004-07-13 Micron Technology, Inc. Method and apparatus for establishing and maintaining desired read latency in high-speed DRAM
KR100598010B1 (ko) * 2004-08-06 2006-07-06 삼성전자주식회사 클럭 분배기, 클럭 분배기를 포함한 시스템, 클럭 분배방법 및 클럭 분배를 이용한 데이터 읽기 및 쓰기 방법
KR100925393B1 (ko) * 2008-09-05 2009-11-09 주식회사 하이닉스반도체 반도체 메모리 장치의 도메인 크로싱 회로
KR101145784B1 (ko) * 2010-10-11 2012-05-17 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그를 포함하는 메모리 시스템
US9318182B2 (en) * 2013-01-30 2016-04-19 Intel Corporation Apparatus, method and system to determine memory access command timing based on error detection
EP3100356A1 (en) * 2014-01-31 2016-12-07 Microchip Technology Incorporated Digital period divider
CN107133192A (zh) * 2017-05-11 2017-09-05 北方电子研究院安徽有限公司 一种SoC系统中的高速输入器和脉冲计数器电路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0657791A2 (en) * 1993-12-09 1995-06-14 Pitney Bowes Inc. Dynamically programmable timer-counter
US20050078669A1 (en) * 2003-10-14 2005-04-14 Broadcom Corporation Exponential channelized timer
US20060198237A1 (en) * 2004-08-04 2006-09-07 Johnson James B Method and apparatus for initialization of read latency tracking circuit in high-speed DRAM
US20130024864A1 (en) * 2011-07-18 2013-01-24 Narasimha Murthy Nukala Lakshmi Scalable Hardware Mechanism to Implement Time Outs for Pending POP Requests to Blocking Work Queues
US20170178742A1 (en) * 2015-12-18 2017-06-22 Texas Instruments Incorporated Self-Latch Sense Timing in a One-Time-Programmable Memory Architecture

Also Published As

Publication number Publication date
CN110189776B (zh) 2023-02-24
US20190267055A1 (en) 2019-08-29
CN110189776A (zh) 2019-08-30
US11037610B2 (en) 2021-06-15
KR102491691B1 (ko) 2023-01-27

Similar Documents

Publication Publication Date Title
JP5983665B2 (ja) アクセス回数カウント装置、メモリシステム、および、アクセス回数カウント方法
US10949296B2 (en) On-die ECC with error counter and internal address generation
KR101025407B1 (ko) 테스트 데이터 처리 디바이스 및 방법, 테스트 장치 및 컴퓨터 판독가능 매체
US8402259B2 (en) Accelerating wake-up time of a system
CN108039190B (zh) 一种测试方法及装置
JP5082580B2 (ja) メモリシステム、メモリコントローラ、制御方法及び制御プログラム
CN110765032A (zh) 基于系统管理总线接口对i2c存储器进行读写的方法
CN109634524B (zh) 一种数据处理守护进程的数据分区配置方法、装置及设备
US11482297B2 (en) Test method for self-refresh frequency of memory array and memory array test device
KR102491691B1 (ko) 읽기 타임아웃 관리부 및 이를 포함하는 메모리 시스템과, 읽기 타임아웃 관리방법
US20190013084A1 (en) Memory testing method and memory apparatus therefor
US20190068172A1 (en) Counter circuitry and method
CN107102898B (zh) 一种基于numa架构的内存管理、构建数据结构的方法及装置
CN112485640A (zh) 内置电容器的检测方法、装置、检测设备和存储介质
US10733049B2 (en) Semiconductor device and error management method
US20170249996A1 (en) Opportunistic memory tuning for dynamic workloads
CN114595128A (zh) 函数执行时长信息输出方法和装置、电子设备和存储介质
US20200026662A1 (en) Direct memory access
US9627014B2 (en) Multiple port shared memory
KR101692114B1 (ko) 태스크 실행 오류 진단 장치 및 방법
US5710800A (en) Data receiving device
CN105760315A (zh) 一种提高同步动态随机存储器访问效率的方法及装置
US12078671B2 (en) Method and apparatus of testing circuit, and storage medium
CN118155698B (zh) 数据测试方法、电子设备及存储介质
US20190012292A1 (en) Control device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant