KR20130000963A - 반도체 저장 시스템 - Google Patents

반도체 저장 시스템 Download PDF

Info

Publication number
KR20130000963A
KR20130000963A KR1020110061794A KR20110061794A KR20130000963A KR 20130000963 A KR20130000963 A KR 20130000963A KR 1020110061794 A KR1020110061794 A KR 1020110061794A KR 20110061794 A KR20110061794 A KR 20110061794A KR 20130000963 A KR20130000963 A KR 20130000963A
Authority
KR
South Korea
Prior art keywords
time
data
buffers
buffer
unit
Prior art date
Application number
KR1020110061794A
Other languages
English (en)
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 KR1020110061794A priority Critical patent/KR20130000963A/ko
Priority to US13/470,878 priority patent/US20120331209A1/en
Publication of KR20130000963A publication Critical patent/KR20130000963A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

반도체 저장 시스템이 개시된다. 본 발명의 실시예에 따른 반도체 저장 시스템은 외부로부터 제1 인터페이스부를 통하여 데이터를 수신하는 복수의 버퍼(BF); 상기 복수의 버퍼에서 제2 인터페이스부를 통하여 수신한 데이터를 기록하여 저장하는 스토리지(STR); 및 상기 복수의 버퍼 및 상기 스토리지를 제어하고, 상기 제1 인터페이스부를 제어하는 제1 프로세서 및 상기 제2 인터페이스부를 제어하는 제2 프로세서를 포함하는 프로세서부(PROC)를 포함하고, 상기 제1 프로세서는 상기 제1 인터페이스부를 통한 버퍼의 데이터 수신 속도와 상기 제2 인터페이스부를 통한 스토리지의 데이터 수신 속도의 차이에 대응되는 지연시간으로, 제1 인터페이스부가 상기 복수의 버퍼가 외부로부터 데이터를 수신하는 시간을 지연시키도록 하는 지연부(DLY)를 더 포함한다.

Description

반도체 저장 시스템{Semiconductor Storage System}
본 발명은 반도체 저장 시스템에 관한 것으로, 특히 지연시간 삽입을 통하여 입력시간이 평준화되는 반도체 저장 시스템에 관한 것이다.
대용량 저장 장치에서 일반적으로 물리적인 저장 공간에 쓰는 속도는 호스트 컴퓨터의 전송 속도에 비하여 매우 느리며, 둘 사이의 차이를 완화시키기 위하여 대용량 저장 장치 내부에 버퍼 공간을 두고 있다. 다만, 버퍼 공간을 확보하는 것도 물리적으로 한계가 있다. 그러한 한계로 인하여, 사용자는 호스트 컴퓨터의 입력 시간이 느려지는 것을 느끼게 되며, 때때로 갑자기 시스템이 멈춘 것처럼 느낄 수 있다.
본 발명이 이루고자 하는 기술적 과제는 이러한 입력 시간이 느려지는 것을 완화하기 위한 반도체 저장 장치 및 시스템을 제공하는 것에 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 반도체 저장 시스템은, 외부로부터 제1 인터페이스부를 통하여 데이터를 수신하는 복수의 버퍼(BF); 상기 복수의 버퍼에서 제2 인터페이스부를 통하여 수신한 데이터를 기록하여 저장하는 스토리지(STR); 및 상기 복수의 버퍼 및 상기 스토리지를 제어하고, 상기 제1 인터페이스부를 제어하는 제1 프로세서 및 상기 제2 인터페이스부를 제어하는 제2 프로세서를 포함하는 프로세서부(PROC)를 포함하고, 상기 제1 프로세서는 상기 제1 인터페이스부를 통한 버퍼의 데이터 수신 속도와 상기 제2 인터페이스부를 통한 스토리지의 데이터 수신 속도의 차이에 대응되는 지연시간으로, 제1 인터페이스부가 상기 복수의 버퍼가 외부로부터 데이터를 수신하는 시간을 지연시키도록 하는 지연부(DLY)를 더 포함한다.
바람직하게는, 상기 프로세서부는 상기 스토리지에서 복수의 버퍼에 수신된 데이터를 기록하는데 소요되는 시간을 예측하는 예측부(PRE)를 포함한다.
바람직하게는, 상기 예측된 시간들의 편차가 기준값 이상인 경우, 상기 지연부는 상기 기준값에 대응하는 시간을 지연 후에, 데이터를 외부로부터 수신하도록 한다.
바람직하게는, 상기 기준값이 2개 이상이고, 기준값에 따라서, 상기 지연 시간이 다르다.
바람직하게는, 상기 프로세서부는 상기 복수의 버퍼 중에서 데이터를 기록하지 않은 버퍼의 개수를 파악하는 카운터(BF_CNT)를 포함한다.
바람직하게는, 상기 제2 프로세서는 상기 버퍼와 상기 스토리지 사이에 데이터의 송수신 시간을 측정하는 측정부(T_MSR)를 포함한다.
바람직하게는, 상기 측정부에서 측정된 시간들의 편차가 일정값 이상인 경우, 상기 프로세서부가 상기 일정값에 대응하는 시간을 지연 후에, 데이터를 외부로부터 수신하도록 제어한다.
바람직하게는, 상기 측정부에서 측정된 시간들의 편차가 증가하는 경우, 상기 프로세서부가 외부로부터 데이터를 수신하는 시간을 상기 증가된 편차를 기초로 산정한 시간만큼 더 지연하도록 버퍼를 제어한다.
바람직하게는, 리얼타임 어플리케이션에서 사용된다.
바람직하게는, 상기 스토리지는 SSD (Solid State Drive) 또는 HDD (Hard Disk Drive)이다.
바람직하게는, 상기 프로세서부는 상기 스토리지에서 데이터가 저장된 후, 상기 저장된 데이터를 상기 버퍼에서 삭제한다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 반도체 저장 시스템은, 외부로부터 제1 인터페이스부를 통하여 데이터를 수신하는 복수의 버퍼(BF); 상기 복수의 버퍼에서 제2 인터페이스부를 통하여 수신한 데이터를 기록하여 저장하는 스토리지(STR); 및 상기 복수의 버퍼 및 상기 스토리지를 제어하고, 상기 제1 인터페이스부 및 상기 제2 인터페이스부를 제어하는 프로세서부(PROC)를 포함하고, 상기 제1 프로세서는 상기 제1 인터페이스부를 통한 버퍼의 데이터 수신 속도와 상기 제2 인터페이스부를 통한 스토리지의 데이터 수신 속도의 차이에 대응되는 지연시간으로, 제1 인터페이스부가 상기 복수의 버퍼가 외부로부터 데이터를 수신하는 시간을 지연시키도록 하는 지연부(DLY)를 더 포함한다.
바람직하게는, 상기 프로세서부는 상기 스토리지에서 복수의 버퍼에 수신된 데이터를 기록하는데 소요되는 시간을 예측하는 예측부(PRE)를 포함한다.
바람직하게는, 상기 예측된 시간들의 편차가 기준값 이상인 경우, 상기 지연부는 상기 기준값에 대응하는 시간을 지연 후에, 데이터를 외부로부터 수신하도록 한다.
바람직하게는, 상기 프로세서부는 상기 복수의 버퍼 중에서 데이터를 기록하지 않은 버퍼의 개수를 파악하는 카운터(BF_CNT)를 포함한다.
바람직하게는, 상기 프로세서는 상기 버퍼와 상기 스토리지 사이에 데이터의 송수신 시간을 측정하는 측정부(T_MSR)를 포함한다.
본 발명에 따른 반도체 저장 시스템에 의하면, 버퍼에 기록되는 시간을 제어하여 입력 시간을 평준화 할 수 있다.
도 1은 본 발명 실시예에 따른, 반도체 저장 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 반도체 저장 시스템의 블록도를 도시한다.
도 3은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 4는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다.
도 5는 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍 도이다.
도 6은 본 발명의 일 실시예에 따른, 외부장치로부터 데이터를 수신하는 시간을 지연시키도록 지연시간을 삽입한 경우의 타이밍도이다.
도 7은 본 발명의 일 실시예에 따른, 도 6에 따라서 지연시간을 삽입한 경우, 각 버퍼에 따라서, 데이터의 트랜잭션 상황을 나타내는 타이밍도이다.
도 8은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 9는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다.
도 10은 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍 도이다.
도 11은 본 발명의 일 실시예에 따른, 외부장치로부터 데이터를 수신하는 시간을 지연시키도록 지연시간을 일정하게 삽입한 경우의 타이밍도이다.
도 12는 본 발명의 일 실시예에 따른, 도 11에 따라서 지연시간을 일정하게 삽입한 경우, 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다.
도 13은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 14는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다.
도 15는 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다.
도 16은 본 발명의 일 실시예에 따른, 외부장치로부터 데이터를 수신하는 시간을 시간(T4)부터 시간(T0.5)만큼 더 늘리는 경우의 타이밍도이다.
도 17은 본 발명의 일 실시에에 따른, 도 16에 따라서 지연시간을 늘리는 경우, 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다.
도 18은 본 발명의 일 실시예에 따른, 도 1의 반도체 저장 시스템이 낸드 플래시 메모리인 경우, 시스템을 구체적으로 나타내는 도면이다.
도 19은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 나타내는 블럭도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명 실시예에 따른, 반도체 저장 시스템(100)을 나타내는 블록도이다.
도 1을 참조하면, 반도체 저장 시스템(100)은 스토리지(STR), 복수의 버퍼(BF_1, BF_2... BF_N), 프로세서부(PROC), 제1 인터페이스부(EX_I/F) 및 제2 인터페이스부(STR_I/F)를 포함하고, 프로세서부(PROC)는 제1 프로세서(PROC1) 및 제2 프로세서(PROC2)를 포함한다. 제1 프로세서(PROC1)은 지연부(DLY)를 포함한다.
반도체 저장 시스템(100)은 낸드 플래시 메모리(Nand Flash Memory) 시스템일 수 있다. 다만 이에 한정되지 않으며, 그 밖에 컴퓨터 또는 그 외의 전자 디바이스 내에, 내부의 반도체 집적회로들로서 제공될 수 있는 RAM(random-access memory), ROM(read only memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory) 및 노어(NOR) 플래시 메모리를 포함하는 다수의 상이한 타입의 메모리, 솔리드 스테이스 디스크(Solid State Disk) 및 하드 디스크 드라이브(Hard Disk Drive) 기타 다른 대용량 저장장치가 가능하다.
스토리지(STR)는 데이터를 기록(Write)하는 물리적 저장 공간을 의미한다. 예를들어, 반도체 저장 시스템(100)이 낸드 플래시 메모리(Nand Flash Memory) 시스템인 경우, 스토리지(STR)는 메모리 어레이를 의미할 수 있다.
외부장치(EX_DEV)는 개인용 컴퓨터, PDA, 태블릿 PC, 랩탑 컴퓨터, 기타 휴대용 단말기를 포함할 수 있다. 또한 외부장치(EX_DEV)는 본 명세서의 다른 부분에서 호스트(host)라고 지칭 할 수 있다.
외부장치(EX_DEV)에서 버퍼(BF)로 기록되는 속도가 매우 빠르고, 그에 비하여, 버퍼(BF)에서 스토리지(STR)로 기록되는 속도가 느리다. 이러한 경우가 반복되면, 버퍼(BF)에 데이터가 모두 기록되고, 더 이상 데이터가 기록되지 않은 버퍼( 이하, 빈(Vacant) 버퍼라고 지칭할 수 있음)가 없어진다. 결국, 버퍼가 없는 것처럼 시스템이 동작할 수 있다. 예를들어, 160만개의 버퍼를 가지고 있는 반도체 저장 시스템(100)에서, 평균적으로 1초에 외부장치(EX_DEV)에서 20만개의 버퍼(BF)에 데이터를 기록하고, 평균적으로 1초에 4만개의 버퍼(BF)에서 스토리지(STR)로 데이터를 기록한다면, 1초에 16만개의 버퍼가 채워지므로, 10초동안 계속적으로 데이터를 외부로부터 수신한다면, 그 이후에는 외부에서의 데이터 입력속도는 5배 정도 느려지게 된다. 즉, 데이터가 스토리지에 기록되는 속도인 1초에 4만개의 버퍼를 채우는 속도로 떨어지게 된다. 때때로 스토리지(STR)에 기록시간이 현저히 길어진다면, 사용자는 시스템이 다운(down) 된 것처럼 느끼게 된다.
본 발명의 일 실시예에 따른 반도체 저장 시스템에 있어서, 제1 프로세서부(PROC)는 지연부(DLY)를 포함한다. 지연부(DLY)는 대량의 정보를 한번에 기록해야하는 상황에서, 호스트(host)에서 버퍼(BF)로 데이터를 기록하는 시간에 지연시간을 삽입한다. 예를들어, 상기 예에서, 처음부터 평균적으로 1초에 12만개의 버퍼에 데이터를 기록하도록 지연시간을 삽입하여, 20초동안 계속적으로 데이터를 외부로부터 수신하는 동안, 시스템의 입력 속도의 변화를 느끼지 못하고, 시스템이 정상적으로 동작하고 있다고 느낄 수 있게 된다. 따라서, 입력시간이 평준화되고, 사용자가 시스템이 갑자기 멈춘 것처럼 느끼지 않을 수 있다. 구체적인 설명은 후술한다.
도 2는 본 발명의 일 실시예에 따른, 반도체 저장 시스템의 블록도를 도시한다.
도 2를 참조하면, 프로세서부(PROC)는 예측부(PRE), 카운터(BF_CNT)를 포함할 수 있다. 제2 프로세서(PROC2)는 측정부(T_MSR)를 포함할 수 있다.
예측부(PRE)는 측정부(T_MSR)에서 측정된 시간, 카운터(BF_CNT)에서 파악한 빈 버퍼의 개수 또는 반도체 저장 시스템의 명령을 토대로 추후 스토리지(STR)에 데이터를 기록하는 시간을 예측할 수 있다. 예측부는 정적인 분석에 의하거나 측정에 의해 시간을 예측할 수 있다. 정적인 분석에 의한 방법은 실제 대상 시스템이나 시뮬레이터에서의 수행 결과에 의존하지 않고, 기록 코드 자체만을 분석하여 기록시간을 예측하는 방법이다. 정적인 분석에 의한 방법은, 예를들어, 가비지 콜렉션(Garbage Collection)을 포함한다. 측정에 기반한 방법은 실제 대상 시스템이나 시뮬레이터에 인가된 입력에 대한 결과를 측정을 통하여 예측하는 방법이다. 이렇게 예측된 시간을 통해서 지연부(DLY)는 외부장치(EX_DEV)에서 버퍼로 데이터를 수신하는 시간을 지연시킨다.
측정부(T_MSR)는 버퍼(BF)에서 스토리지(STR)로 데이터를 기록(write)하는 동작에 소요되는 시간을 측정한다. 측정부(T_MSR)는 본 명세서의 다른 부분에서 시간측정부(T_MSR)라고 지칭할 수 있다. 측정부(T_MSR)에서 측정된 시간을 통하여, 예측부(PRE)는, 그 후 버퍼(BF)에서 스토리지(STR)로 데이터를 기록(Write)하는 동작에 소요되는 시간을 예측할 수 있다.
예를들어, 측정부(T_MSR)에서 연속적으로 측정된, 외부로부터 데이터를 수신하는 시간이 늘어나는 경우, 예측부(PRE)는 버퍼(BF)에서 스토리지(STR)로 데이터를 기록하는 동작에 소요되는 시간이 늘어날 것을 예측을 하고, 지연부(DLY)는 지연시간을 삽입하거나 확장할 수 있다. 또한, 본 발명의 다른 실시예에서, 측정부(T_MSR)에서 연속적으로 측정된, 외부로부터 데이터를 수신하는 시간이 줄어드는 경우, 예측부(PRE)는 버퍼(BF)에서 스토리지(STR)로 데이터를 기록하는 동작에 소요되는 시간이 줄어들 것을 예측하고, 지연부(DLY)는 지연시간을 제거하거나 축소할 수 있다.
카운터(BF_CNT)는, 복수의 버퍼 중에서 빈(Vacant) 버퍼의 개수를 주기적으로 파악한다. 카운터(BF_CNT)에서 파악된 버퍼의 개수를 기초로 지연부(DLY)는 지연시간을 삽입하거나 제거할 수 있다.
예를들어, 카운터(BF_CNT)에서 파악된 빈 버퍼의 개수가 줄어들고 있다면, 예측부(PRE)는 버퍼(BF)에서 스토리지(STR)로 데이터를 기록하는 동작에 소요되는 시간이 늘어날 것을 예측하고, 프로세서부(PROC)는 지연시간을 삽입하거나 확장할 수 있다. 또한 본 발명의 다른 실시예에서, 카운터(BF_CNT)에서 파악된 빈 버퍼의 개수가 늘어나고 있다면, 예측부(PRE)는 버퍼(BF)에서 스토리지(STR)로 데이터를 기록하는 동작에 소요되는 시간이 줄어들 것으로 예측하고, 프로세서부(PROC)는 지연시간을 제거하거나 축소할 수 있다.
도 2에서 도시된 본 발명의 일 실시예에 따른 반도체 저장 시스템에는 설명의 편의상, 4개의 버퍼를 포함한다. 버퍼의 개수는 예시적인 것이고, 본 발명의 권리범위를 제한하기 위한 것이 아니다. 버퍼의 개수는 시스템의 필요에 의하여 수십에서 수천억 또는 그 이상 일 수 있다. 이하의 실시예에 대한 설명에서도 동일하다.
도 3 내지 도 7은 버퍼의 개수(혹은 남아있는 버퍼의 개수)가 3개인 경우에, 프로세서부(PROC)가 빈 버퍼의 개수를 통하여 외부(예를들어, 호스트 컴퓨터)로부터 버퍼로 데이터를 수신하는 시간에 지연시간을 삽입하는 경우를 설명하기 위한 타이밍도이다.
도 3은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 3을 참조하면, 제1 데이터(DT1)는 영점부터 시간(T1)까지 수신된다. 데이터 트랜잭션(transaction)의 임의의 어느 시간을 영점이라고 지칭할 수 있다. 제2 데이터(DT2)는 시간(T1)부터 시간(T2)까지 수신된다. 제3 데이터(DT3)는 시간(T2)부터 시간(T3)까지 수신된다. 제4 데이터(DT4)는 시간(T3)부터 시간(T4)까지 수신된다. 제5 데이터(DT5)는 시간(T4)부터 시간(T5)까지 수신된다. 시간(T5)부터 시간(T6)까지에서, 외부장치(EX_DEV)로부터 데이터가 수신되지 못하고 대기하게 된다. 제6 데이터(DT6)는 시간(T6)부터 시간(T7)까지 수신된다. 시간(T7)부터는 시간(T5)부터 시간(T6)에서와 마찬가지로 버퍼에서 데이터를 더 이상 받아들일 수 없으므로, 데이터를 수신하는 것을 정지하고 대기하게 된다. 이러한 경우, 외부장치(EX_DEV)의 사용자는 시스템이 순간적으로 정지해있다고 느끼게 된다.
도 3에서, 시간(T1) 내지 시간(T10)은 각각의 시간 구간이 모두 동일한 시간을 나타내는 것이 아닐 수 있다. 또한, 버퍼의 개수는, 설명의 편의상 3개로 정한 것이고, 이는 예시적인 것으로서, 권리범위의 제한을 위한 것은 아니다.
도 4는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다. 제1 데이터(DT1)는 시간(T1)부터 시간(T2)까지 버퍼에 기록되어 있고, 시간(T2)에 스토리지(STR)로 기록이 완료되고, 버퍼에서는 삭제된다. 제2 데이터(DT2)는 시간(T2)부터 시간(T3.5)까지 버퍼에 기록되어 있고, 시간(T3.5)에 스토리지(STR)로 기록이 완료되고, 버퍼에서는 삭제된다. 제3 데이터(DT3)는 시간(T3.5)부터 시간(T6)까지 버퍼에 기록되어 있고, 시간(T6)에 스토리지(STR)로 기록이 완료되고, 버퍼에서는 삭제된다. 제4 데이터(DT4)는 시간(T6)부터 버퍼에 기록되어 있다. 즉, 제1 데이터(DT1) 내지 제4 데이터(DT4)는 순서대로 스토리지(STR)에 기록되고, 이때 기록되는 시간은 도 4에 도시된 바와 같다.
도 5는 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍 도이다. 외부장치(EX_DEV)(예를들어, 호스트)에서 데이터를 수신하는 경우, 빗금으로 나타내고, 버퍼에 데이터가 기록되어 있는 경우, 음영으로 나타낸다. 데이터가 스토리지(STR)에 기록(write)되면 버퍼(BF)에서 그 데이터가 삭제된다. 이하에서 시간대별로 데이터의 트랜잭션 상황을 설명한다.
영점에서 시간(T1)까지 제1 버퍼(BF1)에서 제1 데이터(DT1)을 수신한다.
시간(T1)에서 시간(T2)까지 제1 버퍼(BF1)에는 제1 데이터(DT1)가 기록되어 있고, 제2 버퍼(BF2)에서는 제2 데이터(DT2)를 수신한다. 이때, 제1 버퍼(BF1)에서 스토리지(STR)로 제1 데이터(DT1)을 전송하여 스토리지에 저장한다. 제1 데이터(DT1)는 스토리지(STR)에 저장이 되고, 버퍼(BF1)에서는 삭제된다. 따라서, 제1 버퍼(BF1)는 다시 데이터가 기록되지 않은 버퍼가 된다. 즉, 제1 버퍼(BF1)는 빈 버퍼가 되었다.
시간(T2)에서 시간(T3)까지 제2 버퍼(BF2)에는 제2 데이터(DT2)가 기록되어 있고, 제1 버퍼(BF1)에서는 제3 데이터(DT3)을 수신한다. 이때, 제2 버퍼(BF2)에서 스토리지(STR)로 제2 데이터를 전송하여 스토리지에 저장한다. 이러한 동작은 시간(T3.5)까지 계속된다. 또한, 시간(T3)에 제1 버퍼(BF1) 및 제2 버퍼(BF2)에 데이터가 기록되어 있으므로, 제3 버퍼(BF3)에서 제4 데이터(DT4)를 수신하기 시작한다.
시간(T3)내지 시간(T5)까지 이러한 방식으로 데어터가 스토리지(STR)에 기록된다.
시간(T5)에서 시간(T6)까지를 보면, 제1 버퍼(BF1)에는 제3 데이터(DT3)가 기록되어 있고, 제2 버퍼(BF2)에는 제5 데이터(DT5)가 기록되어 있고, 제3 버퍼(BF3)에는 제4 데이터(DT4)가 기록되어 있다. 따라서, 더 이상의 데이터를 수신하기 위한 공간은 없으며, 외부로부터 데이터를 수신하기 위해서 제1 버퍼 내지 제3 버퍼에 기록되어 있는 데이터가 삭제될 것을 대기해야 한다.
시간(T6)에서 시간(T7)까지를 보면, 스토리지(STR)에 제3 데이터(DT3)의 기록이 완료되어, 제1 버퍼(BF1)에서 기록이 삭제되었으므로 제1 버퍼(BF1)는 제6 데이터(DT6)을 수신받기 시작한다.
시간(T7)부터 제1 버퍼(BF1) 내지 제3 버퍼(BF2)가 모두 데이터를 기록하고 있으므로, 더 이상의 데이터를 기록할 수 없다. 따라서, 외부로부터 데이터를 수신하기 위하여 제1 버퍼 내지 제3 버퍼에 기록되어 있는 데이터가 삭제될 것을 대기해야 한다. 이러한 대기는 시간(T10)이 지나도록 계속되고, 사용자는 시스템 다운된 것처럼 느낄 수 있다.
도 6은 본 발명의 일 실시예에 따른, 외부장치(예를들어, 호스트 컴퓨터)로부터 데이터를 수신하는 시간을 지연시키도록 지연시간을 삽입한 경우의 타이밍도이다. 도 7은 본 발명의 일 실시예에 따른, 도 6에 따라서 지연시간을 삽입한 경우, 각 버퍼에 따라서, 데이터의 트랜잭션 상황을 나타내는 타이밍도이다.
도 6을 참조하면, 제3 데이터(DT3)를 버퍼에 기록한 이후에, 각각의 버퍼에서 외부로부터 데이터를 수신하는 시간에 지연시간을 삽입하였다. 이렇게 지연시간을 삽입하게 되면, 도 7과 같이 버퍼에 데이터가 기록될 것이다. 즉, 제3 데이터(DT3) 내지 제7 데이터(DT7)의 기록시간이 일정하게 지연될 것이고, 외부에서 데이터를 입력하는 사용자는 시스템이 갑자기 멈춘 것처럼 느끼게 되지 않을 것이다.
도 7을 참조하면, 버퍼에서 스토리지로 기록되는 데이터가 동일하고, 기록되는 시간의 평균이 동일함에도 불구하고, 입력시간의 편차를 줄일 수 있음을 알 수 있다.
도 6 및 도 7과 같은 지연시간의 삽입을 위한 예측은 빈(vacant) 버퍼가 없어지는 시간(T3)에 예측부(PRE)에서 할 수 있다. 즉, 이러한 예측은 카운터(BF_CNT)에서 파악한 빈(vacant) 버퍼의 개수 또는 빈 버퍼의 개수의 변화를 통해서 할 수 있다.
본 발명의 일 실시예에 따르면, 빈(vacant) 버퍼의 개수가 일정 수치 이하로 내려가는 경우, 지연부(DLY)에서 시간지연을 삽입할 수 있다. 예를들어, 총 버퍼의 개수가 3백만(3×106)개인 경우, 빈 버퍼의 개수가 3십만(3×105)개 이하로 내려가는 경우 지연시간을 삽입할 수 있다.
본 발명의 다른 실시예에 따르면, 빈(vacant) 버퍼의 개수를 통해서 스토리지(STR)에서 데이터를 기록하는 시간을 측정하여, 지연부(DLY)에서 시간지연을 늘리거나 줄이도록 제어할 수 있다. 예를들어, 총 버퍼의 개수가 3백만(3×106)개인 경우, 빈 버퍼의 개수가 백만(106)개인 경우, 1㎲를 시간 지연을 삽입할 수 있고, 빈 버퍼의 개수가 5십만(5×105)개인 경우, 2㎲의 시간 지연을 삽입할 수 있다.
본 발명의 다른 실시예에 따르면, 빈(vacant) 버퍼의 개수의 변화를 통해서, 지연부(DLY)에서 시간지연을 삽입할 수 있다. 예를들어, 총 버퍼의 개수가 3백만(3×106)개인 경우, 빈 버퍼의 개수가 5십만(5×105)개로 유지되다가, 1㎳ 사이(또는 일정한 시간 사이)에 5만(5×104)개로 급격히 낮아지는 경우, 시간 지연을 삽입할 수 있다.
본 발명의 다른 실시예에 따르면, 빈(vacant) 버퍼의 개수의 변화를 통해서, 프로세서부(PROC)에서 시간지연을 늘리거나 줄이도록 제어할 수 있다. 예를들어, 총 버퍼의 개수가 3백만(3×106)개인 경우, 빈 버퍼의 개수가 5만(5×104)개로 유지되다가, 1㎳ 사이(또는 일정한 시간 사이) 5십만(5×105)개로 급격히 증가하는 경우, 2㎲의 시간 지연을 삽입하다가 1㎲의 시간 지연을 삽입 하도록 제어할 수 있다. 또 다른 실시예에서, 빈 버퍼의 개수가 급격히 감소하는 경우, 시간 지연을 늘리도록 제어할 수 있다.
도 8 내지 도 12는 버퍼의 개수(혹은 남아있는 버퍼의 개수)가 4인 경우에, 지연부(DLY)가 지연시간을 삽입한 후에 계속하여, 일정하게 지연시간을 삽입하는 경우를 나타내는 타이밍도이다.
도 8은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 8은 도 3과 유사한 방식으로 설명할 수 있다. 도 8를 참조하면, 제1 데이터(DT1)는 영점부터 시간(T1)까지 수신된다. 데이터 트랜잭션(transacton)의 임의의 어느 시간을 영점이라고 지칭할 수 있다. 제2 데이터(DT2)는 시간(T1)부터 시간(T2)까지 수신된다. 제3 데이터(DT3)는 시간(T2)부터 시간(T3)까지 수신된다. 제4 데이터(DT4)는 시간(T3)부터 시간(T4.5)까지 수신된다. 시간(T4.5)부터 시간(T5.5)까지 외부에서 입력받는 것을 정지하고 대기한다. 이러한 식으로, 데이터(DT)를 수신하고 대기하는 것이 반복된다. 시간(T14)에서 시간(T20)까지에 대기 시간이 길어지고, 이러한 경우 사용자는 시스템이 동작하지 않는다고 느낄 수 있게 된다.
도 8에서, 도 3의 경우와 같이, 시간(T1) 내지 시간(T25)은 각각의 시간 구간이 모두 동일한 시간을 나타내는 것이 아닐 수 있다. 또한 버퍼의 개수는 설명의 편의상 4개로 정한 것이고, 이는 예시적인 것으로서, 권리범위의 제한을 위한 것은 아니다.
도 9는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다. 제1 데이터(DT1) 내지 제7 데이터(DT7)은 순서대로 스토리지(STR)에 기록되고, 이때 기록되는 시간은 도 9에 도시된 바와 같다.
도 10은 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍 도이다. 도 5의 경우와 같이, 외부장치(EX_DEV)(예를들어, 호스트)에서 데이터를 수신하는 경우, 빗금으로 나타내고, 버퍼에 데이터가 기록되어 있는 경우, 음영으로 나타낸다. 데이터가 스토리지(STR)에 기록(Write)되면 버퍼(BF)에서 그 데이터가 삭제된다.
도 10의 경우는 도 5의 경우와 다르게, 영점에서도 임의의 데이터가 버퍼(BF2) 내지 버퍼(BF4)에 기록되어 있고, 버퍼(BF1)에서 제1 데이터(DT1)을 수신하기 시작한다. 그 밖에, 시간대별로 버퍼에 데이터가 수신되는 것은 도 5의 경우와 유사하다.
도 11은 본 발명의 일 실시예에 따른, 외부장치(EX_DEV)(예를들어, 호스트 컴퓨터)로부터 데이터를 수신하는 시간을 지연시키도록 지연시간을 일정하게 삽입한 경우의 타이밍도이다. 도 12는 본 발명의 일 실시예에 따른, 도 11에 따라서 지연시간을 일정하게 삽입한 경우, 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다.
도 11을 참조하면, 영점에서부터 지연시간이 삽입되었다. 이렇게 일정한 지연시간을 삽입하게 되면, 도 12와 같이 버퍼에 데이터가 기록될 것이다. 즉, 제1 데이터(DT1) 내지 제10 데이터(DT10)의 기록시간이 일정하게 지연될 것이다.
도 12를 참조하면, 버퍼에서 스토리지로 기록되는 데이터가 동일하고, 기록되는 시간의 평균이 동일함에도 불구하고, 입력시간의 편차를 줄일 수 있음을 알 수 있다.
도 11과 도 12와 같은 일정한 지연시간의 삽입은 도 6 및 도 7의 실시예에서 삽입된 지연시간이 유지되는 경우 일 수 있다. 일정한 지연시간의 삽입이 유지되는 경우에는 시간(T14)부터 시간(T20)까지의 대기시간과 같은 긴 대기시간을 방지할 수 있다. 본 발명의 일 실시예에서는, 일정하게 지연시간의 삽입이 유지되는 경우에도, 입력 대기시간의 발생여부를 예측부(PRE)에서 예측하여, 시간지연을 늘리거나 줄이도록 제어할 수 있다.
본 발명의 다른 실시예에서, 예측부(PRE)는 기록 방법에 대한 코드를 분석하여 가비지 콜렉션(Garbage Collection)과 같은 상황을 예측할 수 있다. 이러한 상황이 예측되는 경우, 기존에 삽입한 지연시간을 제거하는 것 보다, 계속 유지하여 시스템의 입력시간에 변동이 없게 할 수 있다. 예를들어, 도 8의 시간(T14)부터 시간(T20)까지의 상황은 가비지 콜렉션(Garbage Collection)일 수 있다. 이러한 상황을 예측부(PRE)는 미리 예측하여, 지연시간을 삽입 또는 유지 할 수 있다.
본 발명의 다른 실시예에서, 예측부(PRE)는 인가된 입력에 대한 결과들을 측정을 통하여 예측할 수 있다. 예를들어, 주기적으로 시간(T14)부터 시간(T20)까지의 상황이 반복된다면, 시간(T2)에서 예측부(PRE)는 이러한 주기적 성질을 파악하고, 프로세서부(PROC)는 지연시간을 유지하도록 할 수 있다.
도 13 내지 도 17은 버퍼의 개수(혹은 남아있는 버퍼의 개수)가 2인 경우에, 대기시간이 늘어남에 따라서, 지연시간을 늘리는 것 경우를 나타내는 타이밍도이다.
도 13은 지연시간을 삽입하지 않은 경우, 버퍼가 외부로부터 데이터를 수신하는 시간을 나타내는 타이밍도이다.
도 13을 참조하면, 제1 데이터(DT1)는 영점부터 시간(T1)까지 수신된다. 도 3 및 도 8의 경우와 유사하게, 데이터 트랜잭션(transaction)의 임의의 어느 시간을 영점이라고 지칭할 수 있다. 제2 데이터(DT2)는 시간(T1)부터 시간(T2)까지 수신된다. 시간(T2)부터 시간(T2.5)까지 외부에서 입력받는 것을 정지하고 대기한다. 시간(T2.5)부터 시간(T3)까지 데이터(DT3)이 수신된다. 시간(T3)부터 시간(T4)까지 외부에서 입력받는 것을 정지하고 대기한다. 즉, 본 실시예는 도 3의 경우와 달리 대기시간이 다소 늘어난 경우이다. 대기시간이 점차 늘어나서, 시간(T7)부터 시간(T10)까지의 대기시간에서 사용자는 시스템이 동작하지 않는다고 느낄 수 있게 된다.
도 13에서, 도 3 및 도 8의 경우와 같이, 시간(T1) 내지 시간(T11)은 각각의 시간 구간이 모두 동일한 시간을 나타내는 것이 아닐 수 있다. 또한 버퍼의 개수는 설명의 편의상 2개로 정한 것이고, 이는 예시적인 것으로서, 권리범위의 제한을 위한 것은 아니다.
도 14는 버퍼에 수신된 데이터를 스토리지에 기록하는데 걸리는 시간을 나타내는 타이밍도이다. 제1 데이터(DT1) 내지 제6 데이터(DT6)는 순서대로 스토리지(STR)에 기록되고, 이때 기록되는 시간은 도 14에 도시된 바와 같다.
도 15는 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다. 도 5 및 도 10의 경우와 같이, 외부장치(EX_DEV)(예를들어, 호스트)에서 데이터를 수신하는 경우, 빗금으로 나타내고, 버퍼에 데이터가 기록되어 있는 경우, 음영으로 나타내었다. 데이터가 스토리지(STR)에 기록(Write)되면 버퍼(BF)에서 그 데이터가 삭제된다. 시간대별 버퍼에 데이터가 수신되는 것은 도 5 및 도 10의 경우와 유사하고, 버퍼가 2개인 것과 입력받는 데이터가 다르다.
도 16은 본 발명의 일 실시예에 따른, 외부장치(EX_DEV)(예를들어, 호스트 컴퓨터)로부터 데이터를 수신하는 시간을 시간(T4)부터 시간(T0.5)만큼 더 늘리는 경우의 타이밍도이다. 도 17은 본 발명의 일 실시에에 따른, 도 16에 따라서 지연시간을 늘리는 경우, 각 버퍼에 따라서, 데이터를 트랜잭션하는 상황을 나타내는 타이밍도이다.
도 17을 참조하면, 버퍼에서 스토리지로 기록되는 데이터가 동일하고, 기록되는 시간의 평균이 동일함에도 불구하고, 입력시간의 편차를 줄일 수 있음을 알 수 있다.
도 16과 도 17과 같은 지연시간의 확장은 도 6 및 도 7의 실시예에서 삽입된 지연시간이 확장되는 경우 일 수 있다. 지연시간이 확장되는 경우에는 시간(T7)부터 시간(T10)까지의 대기시간과 같은 긴 대기시간이 나오지 않도록 할 수 있다. 본 실시예에서 지연시간을 확장하는 것은 대기시간이 늘어나는 것에 따른 반응이다. 즉, 본 실시예에서, 대기시간이 시간(T2)에서 시간(T2.5)까지로 시간(T0.5)만큼 이었다가, 시간(T3)에서 시간(T4)까지로 시간(T1)만큼으로 늘어난다. 이러한 시간을 측정부(T_MSR)에서 측정하고, 대기시간이 늘어난 것을 기초로 하여, 프로세서부(PROC)는 지연시간을 더 삽입 할 수 있다. 이러한 대기시간의 확장에 반응하여, 시간(T4)에서부터의 지연시간이 늘어날 수 있다. 지연시간은 시간(T0.5)만큼 늘어나고, 입력시간의 편차를 줄일 수 있다.
본 발명의 또 다른 실시예에서는, 지연시간의 감축도 가능하다. 예를들어, 대기시간이 시간(T0.5)만큼 줄어드는 경우, 지연시간도 그에 따라서, 줄어들도록 할 수 있다.
도 18은 본 발명의 일 실시예에 따른, 도 1의 반도체 저장 시스템이 낸드 플래시 메모리인 경우, 시스템을 구체적으로 나타내는 도면이다.
도 18을 참조하면, 본 발명의 실시예에 따른 낸드 플래시 메모리 시스템은 컨트롤러(CTL) 및 낸드 플래시 메모리(NFMEM)를 포함할 수 있다. SSD 컨트롤러(PROC)는 내부버스(BUS)로 연결되는 프로세서(PROS), 램(RAM), 캐쉬 버퍼(CBUF) 및 메모리 컨트롤러(PROC)를 구비할 수 있다. 프로세서(PROS)는 호스트의 요청(명령, 어드레스, 데이터)에 응답하여 메모리 컨트롤러(PROC)가 플래시 메모리(NFMEM)와 데이터를 송수신하도록 제어한다. 본 발명의 실시예에 따른 낸드 플래시 메모리 시스템의 프로세서(PROS) 및 메모리 컨트롤러(PROC)는 하나의 ARM 프로세서로 구현될 수도 있다. 프로세서(PROS)의 동작에 필요한 데이터는 램(RAM)에 로딩될 수 있다.
호스트 인터페이스(HOST I/F)는 호스트의 요청을 수신하여 프로세서(PROS)로 전송하거나, 낸드 플래시 메모리(NFMEM)로부터 전송된 데이터를 호스트로 전송한다. 호스트 인터페이스(HOST I/F)는 USB(Universal Serial Bus), MMC(Man Machine Communication), PCI-E(Peripheral Component Interconnect-Express), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Device Interface), 그리고 IDE(Intelligent Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜로, 호스트와 인터페이스 할 수 있다. 낸드 플래시 메모리(NFMEM)로 전송하고자 하거나, 낸드 플래시 메모리(NFMEM)로부터 전송된 데이터는 캐쉬 버퍼(CBUF)에 임시로 저장될 수 있다. 캐쉬 버퍼(CBUF)는 SRAM 그리고 DRAM 등일 수 있다.
도 19은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 나타내는 블럭도이다.
도 19을 참조하면, 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)은 프로세서(CPU), 시스템 메모리(RAM) 및 반도체 메모리 시스템(MSYS)이 버스(BUS)에 전기적으로 연결될 수 있다. 반도체 메모리 시스템(MSYS)은 메모리 컨트롤러(PROC) 및 반도체 메모리 장치(MEM)를 포함한다. 반도체 메모리 장치(MEM)에는 프로세서(CPU)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 저장될 것이다. 도 19의 반도체 메모리 시스템(MSYS)은 도 1 또는 도 2의 반도체 메모리 시스템일 수 있다. 또한, 도 19의 컴퓨팅 시스템(CSYS)은 버스(BUS)에 전기적으로 연결되는 사용자 인터페이스(UI) 및 파워 공급 장치(PS)를 더 구비할 수 있다.
도 1 등의 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨팅 시스템(CSYS)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 반도체 저장 시스템에 있어서,
    외부로부터 제1 인터페이스부를 통하여 데이터를 수신하는 복수의 버퍼(BF);
    상기 복수의 버퍼로부터 제2 인터페이스부를 통하여 수신한 데이터를 기록하여 저장하는 스토리지(STR); 및
    상기 복수의 버퍼 및 상기 스토리지를 제어하고, 상기 제1 인터페이스부를 제어하는 제1 프로세서 및 상기 제2 인터페이스부를 제어하는 제2 프로세서를 포함하는 프로세서부(PROC)를 포함하고,
    상기 제1 프로세서는 상기 제1 인터페이스부를 통한 버퍼의 데이터 수신 속도와 상기 제2 인터페이스부를 통한 스토리지의 데이터 수신 속도의 차이에 대응되는 지연시간으로, 제1 인터페이스부가 상기 복수의 버퍼가 외부로부터 데이터를 수신하는 시간을 지연시키도록 하는 지연부(DLY)를 더 포함하는 것을 특징으로 하는 반도체 저장 시스템.
  2. 제1항에 있어서, 상기 프로세서부는 상기 스토리지에서 상기 복수의 버퍼로부터 수신된 데이터를 기록하는데 소요되는 시간을 예측하는 예측부(PRE)를 포함하는 것을 특징으로 하는 반도체 저장 시스템.
  3. 제2항에 있어서, 상기 예측된 시간들의 편차가 기준값 이상인 경우, 상기 지연부는 상기 기준값에 대응하는 시간을 지연 후에, 데이터를 외부로부터 수신하도록 하는 것을 특징으로 하는 반도체 저장 시스템.
  4. 제3항에 있어서, 상기 기준값이 2개 이상이고, 기준값에 따라서, 상기 지연 시간이 다른 것을 특징으로 하는 반도체 저장 시스템.
  5. 제1항에 있어서, 상기 프로세서부는 상기 복수의 버퍼 중에서 데이터를 기록하지 않은 버퍼의 개수를 파악하는 카운터(BF_CNT)를 포함하는 것을 특징으로 하는 반도체 저장 시스템.
  6. 제1항에 있어서, 상기 제2 프로세서는 상기 복수의 버퍼와 상기 스토리지 간의 데이터 송수신 시간을 측정하는 측정부(T_MSR)를 포함하는 것을 특징으로 하는 반도체 저장 시스템.
  7. 제6항에 있어서, 상기 측정부에서 측정된 시간들의 편차가 일정값 이상인 경우, 상기 프로세서부가 상기 일정값에 대응하는 시간을 지연 후에, 데이터를 외부로부터 수신하도록 제어하는 것을 특징으로 하는 반도체 저장 시스템.
  8. 제7항에 있어서, 상기 측정부에서 측정된 시간들의 편차가 증가하는 경우, 상기 프로세서부가 외부로부터 데이터를 수신하는 시간을 상기 증가된 편차를 기초로 산정한 시간만큼 더 지연하도록 버퍼를 제어하는 것을 특징으로 하는 반도체 저장 시스템.
  9. 제1항에 있어서, 리얼타임 어플리케이션에서 사용되는 것을 특징으로 하는 반도체 저장 시스템.
  10. 반도체 저장 시스템에 있어서,
    외부로부터 제1 인터페이스부를 통하여 데이터를 수신하는 복수의 버퍼(BF);
    상기 복수의 버퍼로부터 제2 인터페이스부를 통하여 수신한 데이터를 기록하여 저장하는 스토리지(STR); 및
    상기 복수의 버퍼 및 상기 스토리지를 제어하고, 상기 제1 인터페이스부 및 상기 제2 인터페이스부를 제어하는 프로세서부(PROC)를 포함하고,
    상기 프로세서부는 상기 제1 인터페이스부를 통한 버퍼의 데이터 수신 속도와 상기 제2 인터페이스부를 통한 스토리지의 데이터 수신 속도의 차이에 대응되는 지연시간으로, 제1 인터페이스부가 상기 복수의 버퍼가 외부로부터 데이터를 수신하는 시간을 지연시키도록 하는 지연부(DLY)를 더 포함하는 것을 특징으로 하는 반도체 저장 시스템.
KR1020110061794A 2011-06-24 2011-06-24 반도체 저장 시스템 KR20130000963A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110061794A KR20130000963A (ko) 2011-06-24 2011-06-24 반도체 저장 시스템
US13/470,878 US20120331209A1 (en) 2011-06-24 2012-05-14 Semiconductor storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110061794A KR20130000963A (ko) 2011-06-24 2011-06-24 반도체 저장 시스템

Publications (1)

Publication Number Publication Date
KR20130000963A true KR20130000963A (ko) 2013-01-03

Family

ID=47362939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110061794A KR20130000963A (ko) 2011-06-24 2011-06-24 반도체 저장 시스템

Country Status (2)

Country Link
US (1) US20120331209A1 (ko)
KR (1) KR20130000963A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200138911A (ko) * 2019-06-03 2020-12-11 주식회사 원세미콘 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스
KR20210133675A (ko) * 2020-04-29 2021-11-08 한국전자통신연구원 컴퓨팅 시스템 및 그 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015167505A2 (en) 2014-04-30 2015-11-05 Hewlett-Packard Development Company, L.P. Determining lengths of acknowledgment delays for i/o commands

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412042B1 (en) * 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
US7596643B2 (en) * 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7934069B2 (en) * 2007-04-27 2011-04-26 Hewlett-Packard Development Company, L.P. Enabling and disabling cache in storage systems
US8429348B2 (en) * 2009-03-13 2013-04-23 International Business Machines Corporation Method and mechanism for delaying writing updates to a data cache
JP4585599B1 (ja) * 2009-07-17 2010-11-24 株式会社東芝 データ記憶装置及びキャッシュ制御方法
US8578089B2 (en) * 2010-10-29 2013-11-05 Seagate Technology Llc Storage device cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200138911A (ko) * 2019-06-03 2020-12-11 주식회사 원세미콘 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스
KR20210133675A (ko) * 2020-04-29 2021-11-08 한국전자통신연구원 컴퓨팅 시스템 및 그 동작 방법

Also Published As

Publication number Publication date
US20120331209A1 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
US9996460B2 (en) Storage device, system including storage device and method of operating the same
US8341374B2 (en) Solid state drive and related method of scheduling operations
US9110669B2 (en) Power management of a storage device including multiple processing cores
KR101363844B1 (ko) 전력 소모를 제한하기 위해 비휘발성 메모리에서의 동작들을 동적으로 제어하는 방법들 및 시스템들
US9978430B2 (en) Memory devices providing a refresh request and memory controllers responsive to a refresh request
US20100274933A1 (en) Method and apparatus for reducing memory size and bandwidth
TWI525618B (zh) 用於動態隨機存取記憶體之智慧型更新的方法與系統
US20160239205A1 (en) Hybrid solid state drive (ssd) using pcm or other high performance solid-state memory
US20160313921A1 (en) Memory device that controls timing of receiving write data from a host
US11041763B2 (en) Adaptive throttling
US11467767B2 (en) Storage device throttling amount of communicated data depending on suspension frequency of operation
TW201710891A (zh) 控制耗電的系統與方法
US20180307599A1 (en) Storage system, control device, and method of controlling garbage collection
US10310923B1 (en) Probabilistic aging command sorting
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR20190089429A (ko) 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20130000963A (ko) 반도체 저장 시스템
US10937484B2 (en) Dynamic bandwidth throttling of DRAM accesses for memory tracing
EP4325367A1 (en) Method and device for data caching
US11194382B2 (en) Speculative exit from power down mode of a dynamic random access memory rank
KR20170141468A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20220283962A1 (en) Storage controller managing completion timing, and operating method thereof
US20190310795A1 (en) Suspending and resuming a read operation for a non-volatile memory
CN110874333A (zh) 存储设备及存储方法
US10310873B1 (en) Probabilistic aging command sorting

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid