KR101543246B1 - 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치 - Google Patents

데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치 Download PDF

Info

Publication number
KR101543246B1
KR101543246B1 KR1020090035962A KR20090035962A KR101543246B1 KR 101543246 B1 KR101543246 B1 KR 101543246B1 KR 1020090035962 A KR1020090035962 A KR 1020090035962A KR 20090035962 A KR20090035962 A KR 20090035962A KR 101543246 B1 KR101543246 B1 KR 101543246B1
Authority
KR
South Korea
Prior art keywords
channel
address
data
outputting
storage device
Prior art date
Application number
KR1020090035962A
Other languages
English (en)
Other versions
KR20100117295A (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 KR1020090035962A priority Critical patent/KR101543246B1/ko
Priority to US12/659,885 priority patent/US8639891B2/en
Publication of KR20100117295A publication Critical patent/KR20100117295A/ko
Application granted granted Critical
Publication of KR101543246B1 publication Critical patent/KR101543246B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

데이터 저장 장치의 동작 방법이 제공된다. 데이터 저장 장치의 동작 방법은, 데이터 신호와 함께 입력된 데이터 신호의 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고 채널 어드레스를 출력하는 단계 및 다수의 채널들 중에서 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 메모리에 데이터 신호를 라이트하는 단계를 포함한다.
SSD, NAND Flash, 비순차적 채널분배

Description

데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치{Method for driving of data storage device and data storage device thereof}
본 발명의 실시예는 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치에 관한 것으로, 보다 상세하게는 데이터 저장 장치의 특정 채널에 과부하가 걸리는 현상을 해소할 수 있는 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치에 관한 것이다.
SSD(Solid State Drive/Disk; SSD)는 다수의 채널(channel)들과 이에 접속된 다수의 플래시 메모리들을 포함한다.
다수의 플래시 메모리들 각각은 다수의 페이지들을 포함할 수 있으며, 하나의 채널에 접속된 하나의 플래시 메모리의 다수의 페이지들은 일정한 규칙을 가지며 순차적으로 할당될 수 있다.
예컨대, 하나의 채널에 접속된 플래시 메모리의 다수의 페이지들 각각은 4의 배수로 증가하는 페이지 어드레스를 가질 수 있으며, 다른 하나의 채널에 접속된 플래시 메모리의 다수의 페이지들 각각은 4의 배수+1로 증가하는 페이지 어드레스를 가질 수 있다.
즉, 하나의 채널에 접속된 플래시 메모리의 다수의 페이지들 각각은 P0, P4, P8, P12, …로 증가하는 페이지 어드레스를 가지며, 다른 하나의 채널에 접속된 플래시 메모리의 다수의 페이지들 각각은 P1, P5, P9, P13, …로 증가하는 페이지 어드레스를 가질 수 있다.
종래의 SSD는 호스트로부터 출력된 데이터 신호를 플래시 메모리의 하나의 페이지에 라이트하기 위한 라이트(write) 동작을 수행할 수 있으며, 이때 SSD는 데이터 신호와 함께 제공된 데이터 신호의 논리 주소 값을 블록 맵핑 방식을 이용하여 어드레스 맵핑을 수행하고, 맵핑된 값, 예컨대 페이지 어드레스에 대응되는 하나의 페이지에 데이터 신호의 라이트 동작을 수행할 수 있다.
그러나, 종래의 SSD에서는 하나의 플래시 메모리의 다수의 페이지들 각각의 논리적 주소 값을 순차적으로 할당하는 방식을 사용하였기 때문에, 호스트로부터 요청되는 입/출력 동작, 즉 리드(read) 또는 라이트 동작에 있어서, 특정 채널에 과부하가 걸리는 현상이 발생할 수 있다. 이러한 특정 채널의 과부하 현상은 SSD의 성능을 감소시키게 된다.
본 발명이 해결하고자 하는 과제는, 특정 채널의 과부하 현상을 감소시킬 수 있는 데이터 저장 장치의 동작 방법을 제공하고자 하는데 있다.
본 발명이 해결하고자 하는 다른 과제는, 이러한 동작 방법을 수행하는 데이터 저장 장치를 제공하고자 하는데 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 저장 장치의 동작 방법은, 데이터 신호와 함께 입력된 데이터 신호의 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고 채널 어드레스를 출력하는 단계 및 다수의 채널들 중에서 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 메모리에 데이터 신호를 라이트하는 단계를 포함한다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 데이터 저장 장치의 동작 방법은, 입력된 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고 채널 어드레스를 출력하는 단계 및 다수의 채널들 중에서 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 메모리로부터 저장된 데이터를 리드하는 단계를 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 저장 장치는, 각각이 다수의 채널들 각각에 접속된 다수의 메모리들, 호스트로부터 입력된 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고, 채널 어드레스를 출력하는 분배부 및 채널 어드레스에 기초하여 논리 어드레스를 어드레스 맵핑하고, 맵핑 결과에 따라 호스트로부터 입력된 데이터 신호를 다수의 채널들 중에서 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 하나의 메모리에 라이트하거나 또는 맵핑 결과에 따라 다수의 채널들 중에서 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 하나의 메모리에 저장된 데이터를 리드하기 위한 리드/라이트 모듈을 포함한다.
본 발명의 실시예에 따른 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치는, 데이터 저장 장치의 다수의 페이지들을 비순차적 채널 분배 알고리즘을 이용하여 분배함으로써, 하나의 채널에 일정한 패턴의 페이지 주소가 분배되지 않도록 하여 데이터 저장 장치의 특정 채널에 과부하가 걸리는 현상을 감소시키고, 이에 따라 데이터 저장 장치의 성능을 향상시킬 수 있다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명에 따른 데이터 저장 장치는 다양한 분야, 예컨대 컴퓨터 시스템, 단말 장치 시스템, 입출력 장치 시스템, 하드 디스크 레코더(HDD recorder), 휴대 전화(cellular phone)와 PDA 등의 개인 단말기(terminal), 컴퓨터(PC, 랩탑 PC, 노트북 등), 네비게이터 장치(navigator device), 가정 자동화 시스템(home automation system), 음악 재생기(mp3플레이어 등), 캠코더, 영상 재생기(DVIX 플레이어 등), 스토리지 서버(storage sever), PMP(potable multimedia player), SSD(Solid State Drive/Disk) 또는 스마트 카드를 포함하는 카드 시스템 등에서 데이터 저장용으로 사용될 수 있다. 이하에서는, 설명의 편의를 위하여 상술한 다양한 분야들 중에서 데이터 저장 장치가 SSD로 사용되는 예를 들어 설명한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 저장 장치를 포함하는 데이터 저장 시스템의 개략적인 블록도이고, 도 2는 도 1에 도시된 데이터 저장 장치의 메모리 컨트롤러의 개략적인 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 데이터 저장 시스템(300)은 호스트(200) 및 데이터 저장 장치(100)를 포함할 수 있다.
호스트(200)는 파일 시스템(File System)일 수 있으며, 데이터 저장 장치(100)로 라이트(write)될 데이터 신호(DATA)를 제공하거나 또는 데이터 저장 장치(100)로부터 리드(resd)된 데이터를 제공받을 수 있다.
호스트(200)는 명령 신호(CMD)와 함께 데이터 신호(DATA) 또는 논리 어드레스(Local Address; LA)를 데이터 저장 장치(100)로 출력할 수 있다. 예컨대, 호스트(200)는 데이터 저장 장치(100)가 라이트 동작을 수행하도록 하기 위한 라이트 명령 신호를 데이터 신호(DATA) 및 데이터 신호(DATA)의 논리 어드레스(LA)를 함께 데이터 저장 장치(100)로 출력할 수 있다. 또한, 호스트(200)는 데이터 저장 장치(100)가 리드 동작을 수행하도록 하기 위한 리드 명령 신호를 리드될 데이터의 논리 어드레스(LA)를 함께 데이터 저장 장치(100)로 출력할 수도 있다.
데이터 저장 장치(100)는 호스트(200)로부터 입력된 데이터 신호(DATA)를 저장하거나 또는 저장된 데이터를 호스트(200)로 출력할 수 있다.
데이터 저장 장치(100)는 호스트 인터페이스(Host Interface; 110), 버퍼(Buffer; 120), 메모리 컨트롤러(Memory Controller; 130) 및 다수의 메모리들(Memory; 140_0 내지 140_N)을 포함할 수 있다.
호스트 인터페이스(110)는 호스트(200)와 통신하면서 데이터 신호(DATA)를 입력받아 버퍼(120)로 제공하거나 또는 다수의 메모리들(140_0 내지 140_N)에 저장된 데이터를 메모리 컨트롤러(130) 및 버퍼(120)를 통해 제공받아 호스트(200)로 출력할 수 있다.
버퍼(120)는 호스트 인터페이스(110)를 통해 입력된 데이터 신호(DATA)를 임 시로 저장하거나 또는 다수의 메모리들(140_0 내지 140_N)로부터 메모리 컨트롤러(130)를 통해 입력된 데이터를 임시로 저장할 수 있다.
메모리 컨트롤러(130)는 다수의 채널들, 예컨대 제0 채널(CH0) 내지 제N 채널(CHn)을 포함할 수 있다. 본 실시예에서는 설명의 편의를 위하여 도 2에 도시된 바와 같이, 메모리 컨트롤러(130)가 4개의 채널들(CH0 내지 CH3)을 포함하고, 각각의 채널(CH0 내지 CH3)에 하나의 메모리가 접속된 예를 들어 설명하나, 본 발명은 이에 제한되지는 않는다.
메모리 컨트롤러(130)는 호스트(200)로부터 제공된 데이터 신호(DATA)를 각각의 채널(CH0 내지 CH3)에 접속된 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 라이트하거나 또는 각각의 채널(CH0 내지 CH3)에 접속된 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 저장된 데이터를 리드할 수 있다.
예컨대, 호스트(200)가 데이터 신호(DATA), 이에 대응되는 논리 어드레스(LA) 및 라이트 명령 신호를 출력하면, 메모리 컨트롤러(130)는 논리 어드레스(LA)에 응답하여 데이터 신호(DATA)가 라이트 될 하나의 채널 및 하나의 채널에 접속된 메모리의 페이지 어드레스, 예컨대 물리 어드레스(PA)를 출력할 수 있다. 메모리 컨트롤러(130)는 물리 어드레스(PA)에 따라 선택된 하나의 메모리의 하나의 페이지에 데이터 신호(DATA)를 라이트할 수 있다.
또한, 호스트(200)가 논리 어드레스(LA) 및 리드 명령 신호를 출력하면, 메모리 컨트롤러(130)는 논리 어드레스(LA)에 응답하여 리드 될 데이터가 저장된 물 리 어드레스(PA)를 출력할 수 있다. 메모리 컨트롤러(130)는 물리 어드레스(PA)에 따라 선택된 하나의 메모리의 하나의 페이지로부터 데이터를 리드할 수 있다.
메모리 컨트롤러(130)는 리드/라이트(read/write) 모듈(131), 분배부(133) 및 채널 인터페이스(135)를 포함할 수 있다.
리드/라이트 모듈(131)은 호스트(200)로부터 입력된 명령 신호(CMD)에 따라 호스트(200)로부터 제공된 데이터 신호(DATA)의 라이트 동작을 수행하거나 또는 다수의 메모리들(140_0 내지 140_3)에 저장된 데이터를 리드할 수 있다.
예컨대, 호스트(200)로부터 호스트 인터페이스(110)를 통하여 리드/라이트 모듈(131)로 라이트 명령 신호가 입력되면, 리드/라이트 모듈(131)은 라이트 명령 신호와 함께 입력된 데이터 신호(DATA)를 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 라이트하기 위한 라이트 동작을 수행할 수 있다.
이때, 리드/라이트 모듈(131)은 호스트(200)로부터 데이터 신호(DATA)와 함께 입력되는 논리 어드레스(LA)를 후술될 분배부(133)로부터 제공된 채널 어드레스(CHA)에 기초하여 어드레스 맵핑을 수행할 수 있으며, 어드레스 맵핑의 결과로써 채널 어드레스(CHA)와 페이지 어드레스를 포함하는 물리 어드레스(PA)를 출력할 수 있다.
후술될 채널 인터페이스(135)는 데이터 신호(DATA)를 물리 어드레스(PA)에 대응되는 하나의 메모리 내의 하나의 페이지에 라이트할 수 있다.
또한, 호스트(200)로부터 리드/라이트 모듈(131)로 리드 명령 신호가 입력되면, 리드/라이트 모듈(131)은 리드 명령 신호와 함께 입력된 논리 어드레스(LA)에 따라 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 저장되어 있는 데이터를 리드하기 위한 리드 동작을 수행할 수 있다.
이때, 리드/라이트 모듈(131)은 호스트(200)로부터 입력된 논리 어드레스(LA)를 분배부(133)로부터 제공된 채널 어드레스(CHA)에 기초하여 어드레스 맵핑을 수행할 수 있으며, 어드레스 맵핑의 결과로써 채널 어드레스(CHA)와 페이지 어드레스를 포함하는 물리 어드레스(PA)를 출력할 수 있다.
채널 인터페이스(135)는 물리 어드레스(PA)에 대응되는 하나의 메모리 내의 하나의 페이지로부터 데이터를 리드할 수 있다.
여기서, 리드/라이트 모듈(131)은 블록 맵핑(Block Mapping) 방식으로 어드레스 맵핑을 수행할 수 있으나, 본 발명은 이에 제한되지는 않는다. 예컨대, 본 발명에 따른 리드/라이트 모듈(131)은 블록 맵핑 방식, 페이지 맵핑(Page Mapping) 방식, 하이브리드 맵핑(Hybrid Mapping) 방식 중에서 하나를 이용하여 어드레스 맵핑을 수행할 수 있다.
분배부(133)는 호스트(200)로부터 입력된 논리 어드레스(LA)로부터 채널 어드레스(CHA)를 출력할 수 있다. 예컨대, 분배부(133)는 채널 인터페이스(135)로부터 채널 정보(CHI)를 제공받고, 논리 어드레스(LA)를 비순차적 채널 분배 방식을 이용하여 분배할 수 있으며, 분배 결과에 따른 채널 어드레스(CHA)를 출력할 수 있다.
예컨대, 분배부(133)는 하기의 [수학식 1]에 따라 논리 어드레스(LA)를 각각의 채널로 분배할 수 있다.
[수학식 1]
CHA= [LA+{LA/CHI}]%CHI
여기서, CHA는 채널 어드레스, LA는 논리 어드레스, CHI는 채널 정보를 의미하고, 연산자 %는 나눗셈 연산의 나머지를 출력하는 연산자일 수 있다. 또한, 채널 정보는 데이터 저장 장치(100)의 총 채널 개수를 의미하고, 상기 [수학식 1]에서 {LA/CHI}의 연산 결과는 정수일 수 있다.
채널 인터페이스(135)는 다수의 채널들(CH0 내지 CH3)을 통하여 다수의 메모리들(140_0 내지 140_3)에 접속될 수 있다. 채널 인터페이스(135)는 리드/라이트 모듈(131)로부터 제공된 데이터 신호(DATA)를 맵핑된 물리 어드레스(PA)에 해당하는 채널에 접속된 하나의 메모리의 페이지에 라이트할 수 있다. 또한, 채널 인터페이스(135)는 리드/라이트 모듈(131)로부터 제공된 물리 어드레스(PA)에 해당하는 채널에 접속된 하나의 메모리의 페이지로부터 저장된 데이터를 리드할 수 있다. 리드된 데이터는 리드/라이트 모듈(131)로 출력될 수 있다.
채널 인터페이스(135)는 채널 정보(CHI), 예컨대 총 채널의 개수에 대한 채널 정보(CHI)를 분배부(133)로 출력할 수 있다.
다수의 메모리들(140_0 내지 140_3) 각각은 메모리 컨트롤러(130)의 다수의 채널들(CH0 내지 CH3) 각각에 접속될 수 있다. 예컨대, 제0 메모리(140_0)는 제0 채널(CH0)에 접속될 수 있고, 제1 메모리(140_1)는 제1 채널(CH1)에 접속될 수 있으며, 제2 메모리(140_2)는 제2 채널(CH2)에 접속될 수 있고, 제3 메모리(140_3)는 제3 채널(CH3)에 접속될 수 있다.
제0 내지 제3 메모리들(140_0 내지 140_3) 각각은 다수의 페이지들(P0 내지 P15)을 포함할 수 있다. 다수의 페이지들(P0 내지 P15)를 각각은 각 페이지 어드레스에 의하여 지정될 수 있다.
이하 도 3 및 도 4를 참조하여 상술한 데이터 저장 시스템의 동작에 대하여 설명한다.
도 3은 도 1에 도시된 데이터 저장 시스템의 라이트 동작에 대한 순서도이고, 도 4는 도 1에 도시된 데이터 저장 시스템의 리드 동작에 대한 순서도이다.
도 1 내지 도 3을 참조하면, 호스트(200)로부터 데이터 저장 장치(100)의 호스트 인터페이스(110)로 데이터 신호(DATA), 논리 어드레스(LA) 및 라이트 명령 신호가 입력될 수 있다(S10).
메모리 컨트롤러(130)는 호스트 인터페이스(110) 및 버퍼(120)를 통하여 제공된 라이트 명령 신호에 응답하여 라이트 동작 모드로 동작할 수 있다.
예컨대, 라이트 명령 신호는 메모리 컨트롤러(130)의 리드/라이트 모듈(131)로 입력될 수 있으며, 리드/라이트 모듈(131)은 데이터 신호(DATA)를 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 라이트 하기 위한 라이트 동작 모드로 동작할 수 있다.
분배부(133)는 호스트 인터페이스(110) 및 버퍼(120)를 통하여 제공된 논리 어드레스(LA)를 비순차적 채널 분배 방식, 예컨대 상술한 [수학식 1]을 이용하여 비순차적 채널 분배를 할 수 있으며, 이에 따른 채널 어드레스(CHA)를 출력할 수 있다(S20).
예컨대, 호스트(200)로부터 데이터 신호(DATA)와 함께 제공된 데이터 신호(DATA)의 논리 어드레스(LA)가 4이면, 분배부(133)는 [수학식 1]을 이용하여 하기와 같이 데이터 신호(DATA)가 출력될 채널 어드레스(CHA), 예컨대 1을 도출할 수 있다.
CHA=[4+(4/4)]%4=1, (여기서, % 연산자는 나눗셈 연산의 나머지를 출력)
즉, 호스트(200)로부터 논리 어드레스(LA) 4와 함께 제공된 데이터 신호(DATA)는 채널 어드레스(CHA) 1, 예컨대 제1 채널(CH1)에 접속된 제1 메모리(140_1)에 라이트될 수 있다.
예컨대, 종래의 데이터 저장 장치에서는 논리 어드레스(LA) 4가 입력되면, 데이터 신호(DATA)는 일정한 규칙에 따라 순차적으로 분배된 제0 채널(CH0)을 통하여 제0 메모리(140_0)로 라이트 되도록 경로(Path)가 지정될 수 있다. 그러나, 본 발명에 따른 데이터 저장 장치(100)에서는 분배부(133)가 논리 어드레스(LA) 4에 대하여 비순차적 채널 분배를 수행하기 때문에, 데이터 신호(DATA)는 제0 채널(CH0)에 인접하는 채널로 쉬프트된, 즉 제1 채널(CH1)에 접속된 제1 메모리(140_1)로 라이트 되도록 경로가 지정될 수 있다.
분배부(133)로부터 출력된 채널 어드레스(CHA)는 리드/라이트 모듈(131)로 제공될 수 있으며, 리드/라이트 모듈(131)은 채널 어드레스(CHA)에 기초하여 논리 어드레스(LA)의 어드레스 맵핑 동작을 수행할 수 있다(S30). 여기서, 리드/라이트 모듈(131)은 블록 맵핑 방식을 이용하여 어드레스 맵핑 동작을 수행할 수 있다.
리드/라이트 모듈(131)은 어드레스 맵핑 동작의 결과로써, 채널 어드레 스(CHA)와 페이지 어드레스를 포함하는 물리 어드레스(PA)를 데이터 신호(DATA)와 함께 출력할 수 있다. 이때, 도면에 도시하지는 않았으나, 리드/라이트 모듈(131)은 소정의 메모리(미도시)에 채널 어드레스(CHA)와 페이지 어드레스를 포함하는 물리 어드레스(PA)를 저장하는 단계를 더 수행할 수 있다.
채널 인터페이스(135)는 리드/라이트 모듈(131)로부터 제공된 물리 어드레스(PA)에 기초하여 제1 채널(CH1)에 접속된 제1 메모리(140_1)의 페이지, 예컨대 물리 어드레스(PA)에 포함된 페이지 어드레스에 의하여 지정된 페이지(P4)에 데이터 신호(DATA)를 라이트할 수 있다(S40).
한편, 도 2를 참조하면, 다수의 메모리들(140_0 내지 140_3) 각각의 페이지(P0 내지 P15)는 분배부(133)에 의한 비순차적 채널 분배에 의하여 일정한 규칙을 가지는 페이지 어드레스에 의하여 지정될 수 있다.
예컨대, 제0 메모리(140_0)의 다수의 페이지들 각각은 분배부(133)에 의한 채널 분배에 의하여 P0, P7, P10, P13, …으로 증가할 수 있으며, 제1 메모리(140_1)의 다수의 페이지들 각각은 P1, P4, P11, P14, …로 증가할 수 있다. 또한, 제2 메모리(140_2)의 다수의 페이지들 각각은 P2, P5, P8, P15, …로 증가할 수 있으며, 제3 메모리(140_3)의 다수의 페이지들 각각은 P3, P6, P9, P12, …로 증가할 수 있다.
즉, 본 발명에 따른 데이터 저장 장치(100)는 분배부(133)에 의한 비순차적 채널 분배에 따라 다수의 메모리들(140_0 내지 140_3) 각각의 페이지는 홀수(odd) 페이지 어드레스와 짝수(even) 페이지 어드레스가 번갈아 증가하는 페이지 어드레 스를 가질 수 있다.
도 1, 도 2 및 도 4를 참조하면, 호스트(200)로부터 데이터 저장 장치(100)의 호스트 인터페이스(110)로 논리 어드레스(LA) 및 리드 명령 신호가 입력될 수 있다(S110).
메모리 컨트롤러(130)는 호스트 인터페이스(110) 및 버퍼(120)를 통하여 제공된 리드 명령 신호에 응답하여 리드 동작 모드로 동작할 수 있다.
예컨대, 리드 명령 신호는 메모리 컨트롤러(130)의 리드/라이트 모듈(131)로 입력될 수 있으며, 리드/라이트 모듈(131)은 리드 명령 신호에 응답하여 다수의 메모리들(140_0 내지 140_3) 중에서 하나의 메모리에 저장된 데이터를 리드하기 위한 리드 동작 모드로 동작할 수 있다.
분배부(133)는 호스트 인터페이스(110) 및 버퍼(120)를 통하여 제공된 논리 어드레스(LA)를 비순차적 채널 분배 방식, 예컨대 상술한 [수학식 1]을 이용하여 비순차적 채널 분배를 할 수 있으며, 이에 따른 채널 어드레스(CHA)를 출력할 수 있다(S120).
예컨대, 호스트(200)로부터 제공된 논리 어드레스(LA)가 4이면, 분배부(133)는 [수학식 1]을 이용하여 하기와 같이 리드될 데이터의 채널 어드레스(CHA), 예컨대 1을 도출할 수 있다.
CHA=[4+(4/4)]%4=1, (여기서, % 연산자는 나눗셈 연산의 나머지를 출력)
즉, 호스트(200)가 데이터 저장 장치(100)로부터 데이터를 리드하기 위하여 출력한 논리 어드레스(LA) 4는 제1 채널(CH1)에 접속된 제1 메모리(140_1)에 저장 된 데이터일 수 있다.
분배부(133)로부터 출력된 채널 어드레스(CHA)는 리드/라이트 모듈(131)로 제공될 수 있으며, 리드/라이트 모듈(131)은 채널 어드레스(CHA)에 기초하여 논리 어드레스(LA)의 어드레스 맵핑 동작을 수행할 수 있다(S130).
리드/라이트 모듈(131)은 어드레스 맵핑 동작의 결과로써, 채널 어드레스(CHA)와 페이지 어드레스를 포함하는 물리 어드레스(PA)를 출력할 수 있다.
채널 인터페이스(135)는 리드/라이트 모듈(131)로부터 제공된 물리 어드레스(PA)에 기초하여 제1 채널(CH1)에 접속된 제1 메모리(140_1)의 페이지, 예컨대 물리 어드레스(PA)에 포함된 페이지 어드레스에 의하여 지정된 페이지(P4)로부터 저장된 데이터를 리드할 수 있다(S140).
한편, 본 실시예에서는 분배부(133)가 논리 어드레스(LA)를 비순차적 채널 분배 방식으로 채널 분배를 수행하여 채널 어드레스(CHA)를 출력하는 예를 들어 데이터의 리드 동작을 설명하였으나, 본 발명은 이에 제한되지는 않는다.
예컨대, 데이터 저장 장치(100)는 데이터 신호(DATA)의 라이트 동작을 수행할 때, 논리 어드레스(LA)를 비순차적 채널 분배 방식으로 분배한 채널 어드레스(CHA)를 저장할 수 있다. 이에 따라, 데이터 저장 장치(100)가 데이터의 리드 동작을 수행할 때, 분배부(133)가 논리 어드레스(LA)에 대하여 비순차적 채널 분배를 수행하는 것이 아니라, 미리 저장된 채널 어드레스(CHA)를 참조하여 해당하는 채널에 접속된 메모리의 페이지로부터 데이터를 리드할 수도 있다.
도 5는 종래의 데이터 저장 장치와 본 발명의 데이터 저장 장치의 동작에 따 른 채널별 편차를 나타내는 도면이다. 본 실시예에서는 디스크 모니터링 툴의 하나인 DiskMon을 이용하여 Postmark 등과 같은 벤치마크 프로그램을 실시한 결과물을 도시한 도면으로써, 도 5에서의 Y축은 채널별 편차를 나타내고, X축은 채널의 개수를 나타낼 수 있다.
도 5를 참조하면, 종래의 데이터 저장 장치의 리드/라이트 동작은 메모리 컨트롤러가 순차적으로 채널을 할당하기 때문에 채널별 편차가 3% 이상으로 크게 발생하는 반면에, 본 발명의 데이터 저장 장치의 리드/라이트 동작은 분배부(도 2의 133)에 의하여 비순차적으로 채널을 할당하기 때문에 채널별 편차가 3% 이하로 발생할 수 있다.
즉, 본 발명에 따른 데이터 저장 장치는 리드/라이트 동작을 수행함에 있어서, 특정 채널에 액세스(access)가 편중되어 특정 채널에 과부하가 걸리는 현상을 해소할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 데이터 저장 장치를 포함하는 데이터 저장 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 데이터 저장 장치의 메모리 컨트롤러의 개략적인 블록도이다.
도 3은 도 1에 도시된 데이터 저장 시스템의 라이트 동작에 대한 순서도이다.
도 4는 도 1에 도시된 데이터 저장 시스템의 리드 동작에 대한 순서도이다.
도 5는 종래의 데이터 저장 장치와 본 발명의 데이터 저장 장치의 동작에 따른 채널별 편차를 나타내는 도면이다.

Claims (10)

  1. 데이터 신호와 함께 입력된 상기 데이터 신호의 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고 채널 어드레스를 출력하는 단계; 및
    다수의 채널들 중에서 상기 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 메모리에 상기 데이터 신호를 라이트하는 단계를 포함하고,
    상기 채널 어드레스는 상기 논리 어드레스와 채널 정보의 함수에 따라 생성되어 출력되고,
    상기 채널 어드레스를 출력하는 단계는,
    CHA=[LA+{LA/CHI}]%CHI (여기서, CHA는 채널 어드레스, LA는 논리 어드레스, CHI는 채널 정보, 연산자 %는 나눗셈의 나머지를 출력하는 연산자)를 만족하는 상기 채널 어드레스를 출력하는 데이터 저장 장치의 동작 방법.
  2. 삭제
  3. 삭제
  4. 제1 항에 있어서,
    상기 채널 어드레스를 출력하는 단계 후에, 상기 채널 어드레스에 기초하여 상기 논리 어드레스를 블록 맵핑 방식으로 어드레스 맵핑하여 상기 채널 어드레스를 포함하는 물리 어드레스를 출력하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  5. 제4 항에 있어서, 상기 데이터 저장 장치의 동작 방법은,
    상기 데이터 신호를 라이트하는 단계 후에 수행되는 데이터 리드 동작에서 상기 물리 어드레스를 참조하기 위하여, 상기 채널 어드레스를 포함하는 상기 물리 어드레스를 저장하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  6. 입력된 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고 채널 어드레스를 출력하는 단계; 및
    다수의 채널들 중에서 상기 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 메모리로부터 저장된 데이터를 리드하는 단계를 포함하고
    상기 채널 어드레스는 상기 논리 어드레스와 채널 정보의 함수에 따라 생성되어 출력되고,
    상기 채널 어드레스를 출력하는 단계는,
    CHA=[LA+{LA/CHI}]%CHI (여기서, CHA는 채널 어드레스, LA는 논리 어드레스, CHI는 채널 정보, 연산자 %는 나눗셈의 나머지를 출력하는 연산자)를 만족하는 상기 채널 어드레스를 출력하는 데이터 저장 장치의 동작 방법.
  7. 삭제
  8. 제6 항에 있어서,
    상기 채널 어드레스를 출력하는 단계 후에, 상기 채널 어드레스에 기초하여 상기 논리 어드레스를 블록 맵핑 방식으로 어드레스 맵핑하여 상기 채널 어드레스를 포함하는 물리 어드레스를 출력하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  9. 각각이 다수의 채널들 각각에 접속된 다수의 메모리들;
    호스트로부터 입력된 논리 어드레스에 기초하여 비순차적 채널 분배 방식으로 채널 분배를 수행하고, 채널 어드레스를 출력하는 분배부; 및
    상기 채널 어드레스에 기초하여 상기 논리 어드레스를 어드레스 맵핑하고, 맵핑 결과에 따라 상기 호스트로부터 입력된 데이터 신호를 상기 다수의 채널들 중에서 상기 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 하나의 메모리에 라이트하거나 또는 상기 맵핑 결과에 따라 상기 다수의 채널들 중에서 상기 채널 어드레스에 의하여 지정된 하나의 채널에 접속된 하나의 메모리에 저장된 데이터를 리드하기 위한 리드/라이트 모듈을 포함하고,
    상기 분배부는 상기 논리 어드레스와 채널 정보의 함수에 따라 상기 채널 어드레스를 생성하여 출력하고,
    상기 분배부는,
    CHA=[LA+{LA/CHI}]%CHI (여기서, CHA는 채널 어드레스, LA는 논리 어드레스, CHI는 채널 정보, 연산자 %는 나눗셈의 나머지를 출력하는 연산자)를 만족하는 상기 채널 어드레스를 출력하는 데이터 저장 장치.
  10. 삭제
KR1020090035962A 2009-04-24 2009-04-24 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치 KR101543246B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090035962A KR101543246B1 (ko) 2009-04-24 2009-04-24 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치
US12/659,885 US8639891B2 (en) 2009-04-24 2010-03-24 Method of operating data storage device and device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090035962A KR101543246B1 (ko) 2009-04-24 2009-04-24 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치

Publications (2)

Publication Number Publication Date
KR20100117295A KR20100117295A (ko) 2010-11-03
KR101543246B1 true KR101543246B1 (ko) 2015-08-11

Family

ID=42993136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090035962A KR101543246B1 (ko) 2009-04-24 2009-04-24 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치

Country Status (2)

Country Link
US (1) US8639891B2 (ko)
KR (1) KR101543246B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085611A1 (ko) * 2021-11-11 2023-05-19 삼성전자주식회사 메모리 어레이 내의 연결 회로

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009441B2 (en) 2012-06-04 2015-04-14 Qualcomm Incorporated Memory channel selection in a multi-channel memory
US9299124B2 (en) 2012-06-07 2016-03-29 Qualcomm Incorporated Padding for multi-channel memory
CN103988186A (zh) * 2012-10-12 2014-08-13 华为技术有限公司 内存系统、内存模块、内存模块的访问方法以及计算机系统
TWI520152B (zh) * 2013-03-01 2016-02-01 慧榮科技股份有限公司 資料儲存裝置與快閃記憶體控制方法
KR102161448B1 (ko) 2014-02-03 2020-10-05 삼성전자 주식회사 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
KR102251813B1 (ko) 2015-04-07 2021-05-13 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN108614781B (zh) * 2016-12-09 2022-05-27 北京兆易创新科技股份有限公司 基于NANDflash的有效数据查找方法和NANDflash存储设备
US10553285B2 (en) * 2017-11-28 2020-02-04 Western Digital Technologies, Inc. Single-port memory with opportunistic writes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140945A1 (en) 2006-10-27 2008-06-12 Stec, Inc. Distributed addressing in solid-state storage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100215868B1 (ko) 1996-06-29 1999-08-16 구본준 디지탈 전송시스템
JP3614714B2 (ja) 1999-06-16 2005-01-26 Necマイクロシステム株式会社 Dma制御装置
EP1704484A2 (en) 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
JP2007317047A (ja) 2006-05-29 2007-12-06 Kwok-Yan Leung マルチチャンネルのフラッシュメモリにおけるデータアクセス方法
KR100765786B1 (ko) 2006-06-12 2007-10-12 삼성전자주식회사 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140945A1 (en) 2006-10-27 2008-06-12 Stec, Inc. Distributed addressing in solid-state storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023085611A1 (ko) * 2021-11-11 2023-05-19 삼성전자주식회사 메모리 어레이 내의 연결 회로

Also Published As

Publication number Publication date
KR20100117295A (ko) 2010-11-03
US8639891B2 (en) 2014-01-28
US20100274976A1 (en) 2010-10-28

Similar Documents

Publication Publication Date Title
KR101543246B1 (ko) 데이터 저장 장치의 동작 방법 및 이에 따른 데이터 저장 장치
US7039788B1 (en) Method and apparatus for splitting a logical block
US8332573B2 (en) Method and apparatus for performing address mapping in virtual file system of storage unit having a plurality of non-volatile data storage media
CN100585740C (zh) 闪存装置和闪存的访问方法
US8375158B2 (en) Memory system and block merge method
US7788441B2 (en) Method for initializing and operating flash memory file system and computer-readable medium storing related program
US9405485B2 (en) Method and apparatus for writing data to a flash memory
US10102118B2 (en) Memory system and non-transitory computer readable recording medium
US20080195833A1 (en) Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit
US9262079B2 (en) Cache memory device and data processing method of the device
US9671961B2 (en) Memory controller, storage apparatus, information processing system, and control method for the same
CN110764691B (zh) 数据储存装置以及非挥发式存储器控制方法
US20090204748A1 (en) Multi-channel flash memory system and access method
KR101561546B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
KR20130096881A (ko) 플래시 메모리 장치
KR101204163B1 (ko) 반도체 기억 장치
WO2015114829A1 (ja) 情報処理装置
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
US8954662B2 (en) SSD controller, and method for operating an SSD controller
KR20090106221A (ko) 병렬 구조를 가지는 플래시 메모리 시스템 및 그 데이터기록방법 및 플래시 메모리
US8195696B2 (en) File format converting method
US8566562B2 (en) Method for sequentially writing data with an offset to a non-volatile memory
KR101574540B1 (ko) 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN113867642B (zh) 数据处理方法、装置及存储设备
TWI714889B (zh) 涉及命名空間規劃的資料管理方法以及資料儲存系統

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5