KR20140128852A - Data storage device for performing fast response about data processing latency and methods using the same - Google Patents

Data storage device for performing fast response about data processing latency and methods using the same Download PDF

Info

Publication number
KR20140128852A
KR20140128852A KR1020130117519A KR20130117519A KR20140128852A KR 20140128852 A KR20140128852 A KR 20140128852A KR 1020130117519 A KR1020130117519 A KR 1020130117519A KR 20130117519 A KR20130117519 A KR 20130117519A KR 20140128852 A KR20140128852 A KR 20140128852A
Authority
KR
South Korea
Prior art keywords
data storage
storage device
access command
host
memory chips
Prior art date
Application number
KR1020130117519A
Other languages
Korean (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 US14/264,119 priority Critical patent/US20140325148A1/en
Publication of KR20140128852A publication Critical patent/KR20140128852A/en

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for operating a data storage device including a plurality of memory chips comprises the steps of: generating state information regarding the memory chips, and storing the generated state information in a memory; receiving an access command from a host; and analyzing the state information in response to the access command, and transmitting a response related to execution of the access command to the host depending on the analysis result.

Description

데이터 처리 지연에 대한 빠른 응답을 수행할 수 있는 데이터 저장 장치와 이를 이용한 데이터 처리 방법들{DATA STORAGE DEVICE FOR PERFORMING FAST RESPONSE ABOUT DATA PROCESSING LATENCY AND METHODS USING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a data storage device capable of performing a quick response to a data processing delay, and a data processing method using the same.

본 발명의 개념에 따른 실시 예는 데이터 저장 장치에 관한 것으로, 특히 데이터 처리 레이턴시(latency)에 대한 빠른 응답을 호스트로 출력할 수 있는 장치와 상기 장치를 이용한 데이터 처리 방법들에 관한 것이다.An embodiment according to the concept of the present invention relates to a data storage device, and more particularly to a device capable of outputting a quick response to a data processing latency to a host and data processing methods using the device.

데이터 처리 시스템은 데이터를 저장하는 데이터 저장 장치와 상기 데이터 저장 장치에 대한 데이터 리드 동작과 데이터 라이트 동작을 제어하는 호스트를 포함한다. The data processing system includes a data storage device for storing data and a host for controlling data read operation and data write operation for the data storage device.

특정 동작이 상기 데이터 저장 장치에서 실행되는 도중에, 상기 데이터 저장 장치가 상기 호스트로부터 리드 명령 또는 라이트 명령을 수신하면, 상기 데이터 저장 장치는 상기 특정 동작이 종료될 때까지 상기 리드 명령 또는 상기 라이트 명령을 수행하지 못한다.When the data storage device receives a read command or a write command from the host while the specific operation is being executed in the data storage device, the data storage device transmits the read command or the write command I can not do it.

이때, 상기 호스트는 상기 리드 명령 또는 상기 라이트 명령이 상기 데이터 저장 장치에서 언제 실행될지는 예측할 수 없다. At this time, the host can not predict when the read command or the write command will be executed in the data storage device.

본 발명이 이루고자 하는 기술적인 과제는 호스트로부터 출력된 현재 액세스 명령에 관련된 데이터 처리 레이턴시가 길어질 것이라고 판단될 때 상기 판단에 대한 빠른 응답을 상기 호스트로 출력할 수 있는 장치와 상기 장치를 이용한 데이터 처리 방법들을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to provide a device capable of outputting a quick response to the determination to the host when it is determined that the data processing latency related to the current access command output from the host will be long, .

본 발명의 실시 예에 따른 복수의 메모리 칩들을 포함하는 데이터 저장 장치의 동작 방법은 상기 복수의 메모리 칩들에 대한 상태 정보를 생성하여 메모리에 저장하는 단계와, 호스트로부터 액세스 명령을 수신하는 단계와, 상기 액세스 명령에 응답하여 상기 상태 정보를 해석하고, 해석 결과에 따라 상기 액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송하는 단계를 포함한다.A method of operating a data storage device including a plurality of memory chips according to an embodiment of the present invention includes generating state information for the plurality of memory chips and storing the state information in a memory, receiving an access command from the host, Interpreting the status information in response to the access command, and transmitting a response related to execution of the access command to the host according to the analysis result.

실시 예에 따라, 상기 상태 정보는 백그라운드 동작에 대한 정보를 포함한다. 상기 백그라운드 동작은 가비지 컬렉션 동작 카운트, 웨어-레벨 동작 카운트, 또는 배드-블록 관리 동작 카운트 중에서 적어도 하나를 포함한다.According to an embodiment, the status information includes information about a background operation. The background operation includes at least one of a garbage collection operation count, a wear-level operation count, or a bad-block management operation count.

다른 실시 예에 따라, 상기 상태 정보는 상기 복수의 메모리 칩들 각각에서 수행될 프로그램 동작 카운트, 리드 동작 카운트, 또는 이레이즈 동작 카운트를 포함한다.According to another embodiment, the status information includes a program operation count, a read operation count, or an erase operation count to be performed in each of the plurality of memory chips.

또 다른 실시 예에 따라, 상기 상태 정보는 상기 복수의 메모리 칩들이 접속된 버스의 상태에 대한 정보를 포함한다.According to another embodiment, the status information includes information on the status of the bus to which the plurality of memory chips are connected.

또 다른 실시 예에 따라, 상기 상태 정보는 상기 복수의 메모리 칩들에서 현재 수행 중인 동작에 대한 정보를 포함한다.According to yet another embodiment, the status information includes information about operations currently performed in the plurality of memory chips.

상기 액세스 명령은 리드 명령의 수행 여부 또는 라이트 명령의 수행 여부를 나타낼수 있다.The access command may indicate whether the read command is performed or whether a write command is performed.

상기 응답은 상기 액세스 명령을 현재 실행할 수 있는지 여부를 나타낼 수 있다.The response may indicate whether the access command is currently executable.

상기 응답은 상기 액세스 명령을 실행할 시간을 나타낼 수 있다.The response may indicate the time at which to execute the access command.

상기 응답은 타임아웃 응답 또는 중단 응답(abort response)일 수 있다.The response may be a timeout response or an abort response.

본 발명의 실시 예에 따른 제1메모리 칩들을 포함하는 제1데이터 저장 장치, 제2메모리 칩들을 포함하는 제2데이터 저장 장치, 및 호스트를 포함하는 데이터 처리 시스템의 동작 방법은 상기 호스트가 상기 제1데이터 저장 장치로 제1액세스 명령을 전송하는 단계와, 상기 제1데이터 저장 장치가 상기 제1액세스 명령에 응답하여 상기 제1메모리 칩들의 상태 정보를 해석하고, 해석 결과에 따라 상기 제1액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송하는 단계와, 상기 응답에 기초하여 상기 호스트가 상기 제1데이터 저장 장치에 대한 액세스 동작을 보류하고 상기 제2데이터 저장 장치로 제2액세스 명령을 전송하는 단계와, 상기 제2데이터 저장 장치가 상기 제2메모리 칩들에 대해 상기 제2액세스 명령에 상응하는 동작을 수행하는 단계를 포함한다.A method of operating a data processing system including a first data storage device comprising first memory chips, a second data storage device including second memory chips, and a host according to an embodiment of the present invention, The method comprising: transmitting a first access command to a first data storage device; analyzing status information of the first memory chips in response to the first access command; Sending, by the host, an access operation to the first data storage device based on the response and transmitting a second access command to the second data storage device based on the response; And performing the operation corresponding to the second access command for the second memory chips by the second data storage device .

상기 제1데이터 저장 장치는 상기 제1액세스 명령을 수신하기 이전에 상기 상태 정보를 생성하고, 상기 상태 정보는 백그라운드 동작에 대한 정보, 상기 복수의 메모리 칩들 각각에서 수행될 동작 카운트, 상기 복수의 메모리 칩들이 접속된 버스의 상태에 대한 정보, 또는 상기 복수의 메모리 칩들에서 현재 수행중인 동작에 대한 정보 중에서 적어도 하나를 포함한다.Wherein the first data storage device generates the status information prior to receiving the first access command, the status information includes information about a background operation, an operation count to be performed in each of the plurality of memory chips, Information on the status of the bus to which the chips are connected, or information on the operation currently being performed in the plurality of memory chips.

상기 제1데이터 저장 장치와 상기 제2데이터 저장 장치는 RAID(Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks)에 포함된다.The first data storage device and the second data storage device are included in a RAID (Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks).

상기 제1데이터 저장 장치와 상기 제2데이터 저장 장치는 솔리드 스테이트 드라이브들(solid state drives)이고, 상기 제1메모리 칩들과 상기 제2메모리 칩들은 플래시 메모리 칩들이다.The first data storage device and the second data storage device are solid state drives, and the first memory chips and the second memory chips are flash memory chips.

상기 데이터 처리 시스템은 데이터베이스 관리 시스템(database management system(DBMS))일 수 있다.The data processing system may be a database management system (DBMS).

상기 동작 방법은 상기 제2데이터 저장 장치가 상기 제2액세스 명령에 상응하는 상기 동작에 따라 리드된 리드 데이터를 상기 호스트로 전송하는 단계를 더 포함한다.The operating method further comprises the step of the second data storage device sending the read data to the host in accordance with the operation corresponding to the second access command.

상기 동작 방법은 상기 호스트에 접속된 웹 서버가 유저 브라이저로부터 서치 기준을 수신하는 단계와, 상기 웹 서버가 상기 서치 기준에 상응하는 명령을 상기 호스트로 전송하는 단계와, 상기 호스트가 상기 명령에 상응하는 상기 제1액세스 명령을 생성하는 단계를 더 포함한다.The method comprising: receiving a search criterion from a user browser connected to the host; transmitting, by the web server, a command corresponding to the search criterion to the host; And generating the corresponding first access command.

상기 방법은 상기 제2데이터 저장 장치가 상기 제2액세스 명령에 상응하는 상기 동작에 따라 리드된 리드 데이터를 상기 호스트로 전송하는 단계와, 상기 호스트가 상기 리드 데이터를 상기 웹 서버로 전송하는 단계와, 상기 웹 서버가 상기 웹 서버로부터 전송된 상기 리드 데이터를 상기 유저 브라우저로 전송하는 단계를 더 포함한다.The method comprising the steps of: the second data storage device transmitting the read data to the host in accordance with the operation corresponding to the second access command; transmitting the read data to the web server by the host; And the web server transmitting the read data transmitted from the web server to the user browser.

본 발명의 실시 예에 따른 데이터 저장 장치는 복수의 메모리 칩들과 스토리지 컨트롤러를 포함한다.A data storage device according to an embodiment of the present invention includes a plurality of memory chips and a storage controller.

상기 스토리지 컨트롤러는 상기 복수의 메모리 칩들에 대한 상태 정보를 생성하고 생성된 상태 정보를 메모리에 저장하고, 호스트로부터 출력된 액세스 명령에 응답하여 상기 메모리에 저장된 상기 상태 정보를 해석하고, 해석 결과에 따라 상기 액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송한다.Wherein the storage controller generates status information for the plurality of memory chips, stores the generated status information in a memory, analyzes the status information stored in the memory in response to an access command output from the host, And transmits a response relating to execution of the access command to the host.

본 발명의 실시 예에 따른 데이터 저장 장치와 이의 동작 방법은 상기 데이터 저장 장치에 내장된 복수의 메모리 칩들에 대한 상태 정보를 호스트로부터 출력된 액세스 명령에 기초하여 해석하고, 해석 결과에 따라 상기 액세스 명령에 관련된 데이터 처리 레이턴시가 길어질 것이라고 판단될 때 상기 판단에 대한 빠른 응답을 상기 호스트로 출력할 수 있는 효과가 있다.The data storage device and the method of operating the same according to an embodiment of the present invention analyze state information about a plurality of memory chips built in the data storage device based on an access command output from a host, It is possible to output a quick response to the determination to the host when it is determined that the data processing latency related to the determination is likely to be long.

따라서, 상기 호스트는 다른 데이터 저장 장치로 하여금 상기 액세스 명령에 관련된 데이터 처리를 요청할 수 있으므로, 상기 호스트는 신속한 데이터 처리를 할 수 있는 효과가 있다.Therefore, the host can request data processing related to the access command by the other data storage device, so that the host can perform the rapid data processing.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.
도 2는 본 발명의 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.
도 3은 본 발명의 일 실시 예에 따른 상태 정보를 저장하는 테이블이다.
도 4는 본 발명의 다른 실시 예에 따른 상태 정보를 저장하는 테이블이다.
도 5는 본 발명의 또 다른 실시 예에 따른 상태 정보를 저장하는 테이블이다.
도 6은 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.
도 7은 도 1, 도 2, 또는 도 6에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트의 일 실시 예이다.
도 8은 도 1, 도 2, 또는 도 6에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트의 다른 실시 예이다.
도 9는 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.
도 10은 도 9에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트이다.
도 11은 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.
도 12는 도 11에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트이다.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
1 shows a schematic block diagram of a data processing system according to an embodiment of the present invention.
2 shows a schematic block diagram of a data processing system according to another embodiment of the present invention.
3 is a table for storing state information according to an embodiment of the present invention.
4 is a table for storing state information according to another embodiment of the present invention.
5 is a table for storing state information according to another embodiment of the present invention.
Figure 6 shows a schematic block diagram of a data processing system in accordance with another embodiment of the present invention.
Fig. 7 is an embodiment of a flowchart for explaining the operation of the data processing system shown in Fig. 1, Fig. 2, or Fig.
FIG. 8 is another embodiment of a flowchart for explaining the operation of the data processing system shown in FIG. 1, FIG. 2, or FIG.
9 shows a schematic block diagram of a data processing system according to another embodiment of the present invention.
10 is a flowchart for explaining the operation of the data processing system shown in Fig.
Figure 11 shows a schematic block diagram of a data processing system according to another embodiment of the present invention.
12 is a flowchart for explaining the operation of the data processing system shown in FIG.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.

제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.

도 1은 본 발명의 일 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a data processing system according to an embodiment of the present invention.

도 1을 참조하면, 데이터 처리 시스템(100)은 호스트(200)와 데이터 저장 장치(300)를 포함한다.Referring to FIG. 1, a data processing system 100 includes a host 200 and a data storage device 300.

데이터 처리 시스템(100)은 PC(personal computer), 랩탑(laptop) 컴퓨터, 또는 데이터베이스 관리 시스템(database management system(DBMS))일 수 있다.The data processing system 100 may be a personal computer (PC), a laptop computer, or a database management system (DBMS).

호스트(200)는 데이터 저장 장치(300)에 대한 액세스 동작(예컨대, 리드 동작 또는 라이트 동작)을 제어할 수 있는 액세스 명령(예컨대, 리드 명령 또는 라이트 명령; CMD)을 데이터 저장 장치(300)로 출력할 수 있다.The host 200 transmits an access command (e.g., a read command or a write command CMD) to the data storage device 300 that can control an access operation (e.g., a read operation or a write operation) Can be output.

데이터 저장 장치(300)는 호스트(200)에 의해 처리된 데이터 또는 처리될 데이터를 저장할 수 있다.The data storage device 300 may store data processed by the host 200 or data to be processed.

호스트(200)는 인터페이스를 통해 데이터 저장 장치(300)와 접속될 수 있다. 상기 인터페이스는 SATA(serial advance technology attachment), SAS(serial-attached small computer system interface) 또는 PCIe(Peripheral Component Interconnect Express)일 수 있다.The host 200 may be connected to the data storage device 300 via an interface. The interface may be a serial advance technology attachment (SATA), a serial-attached small computer system interface (SAS), or a Peripheral Component Interconnect Express (PCIe).

데이터 저장 장치(300)는 하드디스크 드라이브(hard disc drive(HDD) 또는 솔리드 스테이트 드라이브(solid state drive)로 구현될 수 있다.The data storage device 300 may be implemented as a hard disk drive (HDD) or a solid state drive.

데이터 저장 장치(300)는 USB 플래시 드라이브, UFS(Universal Flash Storage), MMC(Multi-Media Card), 또는 eMMC(embedded MMC)로 구현될 수 있다.The data storage device 300 may be implemented as a USB flash drive, a Universal Flash Storage (UFS), a Multi-Media Card (MMC), or an embedded MMC (eMMC).

데이터 저장 장치(300)는 복수의 메모리 칩들(CHIP1-1~CHIP1-4)과 스토리지 컨트롤러(310)를 포함한다. 복수의 메모리 칩들(CHIP1-1~CHIP1-4)은 플래시 메모리 칩들로 구현될 수 있다. 상기 플래시 메모리 칩들 각각은 메모리 셀들을 포함하고, 상기 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있다.The data storage device 300 includes a plurality of memory chips (CHIP1-1 to CHIP1-4) and a storage controller 310. The plurality of memory chips (CHIP1-1 to CHIP1-4) may be implemented as flash memory chips. Each of the flash memory chips includes memory cells, and each of the memory cells may store one or more bits.

스토리지 컨트롤러(310)는 복수의 메모리 칩들(CHIP1-1~CHIP1-4)에 대한 상태 정보를 생성하고, 생성된 상태 정보를 메모리에 저장하고, 호스트(200)로부터 출력된 액세스 명령(CMD)에 응답하여 상기 메모리에 저장된 상기 상태 정보를 해석하고, 해석 결과에 따라 액세스 명령(CMD)의 실행에 관련된 응답(RES)을 호스트 (200)로 전송할 수 있다.The storage controller 310 generates status information for a plurality of memory chips CHIP1-1 to CHIP1-4, stores the generated status information in a memory, and stores the status information in an access command CMD output from the host 200 And may transmit the response (RES) related to the execution of the access command (CMD) to the host 200 according to the analysis result.

스토리지 컨트롤러(310)는 집적 회로 또는 시스템 온 칩(system on chip(SoC))로 구현될 수 있다.The storage controller 310 may be implemented as an integrated circuit or a system on chip (SoC).

상기 상태 정보는 백그라운드 동작에 대한 정보, 복수의 메모리 칩들(CHIP1-1~CHIP1-4) 각각에서 수행될 동작 카운트, 복수의 메모리 칩들(CHIP1-1~CHIP1-4)이 접속된 버스(BUS#1)의 상태에 대한 정보, 또는 복수의 메모리 칩들(CHIP1-1~CHIP1-4)에서 현재 수행중인 동작에 대한 정보 중에서 적어도 하나를 포함할 수 있다.The status information includes information on a background operation, an operation count to be performed in each of the plurality of memory chips (CHIP1-1 to CHIP1-4), a bus number (BUS # 1) to which a plurality of memory chips (CHIP1-1 to CHIP1-4) 1), or information on an operation currently being performed in the plurality of memory chips (CHIP1-1 to CHIP1-4).

액세스 명령(CMD)은 호스트(200)가 데이터 저장 장치(300)로 리드 동작의 가능 여부 또는 라이트 동작의 가능 여부를 요청(request)하는 명령일 수 있다.The access command CMD may be a command that requests the host 200 to enable or disable the read operation to the data storage 300.

실시 예에 따라, 액세스 명령(CMD)은 판매 회사 명령(vendor command)일 수도 있다. 이때, 액세스 명령(CMD)은 데이터 저장 장치(300)에서 수행될 리드 동작에 관련된 리드 명령 또는 데이터 저장 장치(300)에서 수행될 라이트 명령과 다른 별도의 새로운 명령일 수 있다.Depending on the embodiment, the access command CMD may be a vendor command. The access command CMD may be a read command related to a read operation to be performed in the data storage device 300 or a new command different from a write command to be performed in the data storage device 300. [

다른 실시 예에 따라, 액세스 명령(CMD)은 요청과 일반적인 리드 명령 또는 요청과 일반적인 라이트 명령을 포함하는 명령일 수 있다. 상술한 바와 같이, 상기 요청은 호스트(200)가 데이터 저장 장치(300)로 리드 동작의 가능 여부 또는 라이트 동작의 가능 여부를 요청하는 명령일 수 있다.According to another embodiment, the access command CMD may be a command including a request and a general read command or request and a general write command. As described above, the request may be a command that requests the host 200 to enable or disable the write operation to the data storage 300.

실시 예에 따라, 응답(RES)은 액세스 명령(CMD), 즉 리드 명령 또는 라이트 명령을 현재 실행할 수 있는지 또는 실행할 수 없는지를 나타낼 수 있다.Depending on the embodiment, the response RES may indicate whether the access command CMD, i. E., A read command or a write command, is currently executable or not executable.

다른 실시 예에 따라, 응답(RES)은 상기 리드 명령 또는 상기 라이트 명령을 실행할 수 있는 시간 또는 언제 실행할 수 있는지를 나타낼 수 있다.According to another embodiment, the response RES may indicate when or at which time the read command or the write command can be executed.

또 다른 실시 예에 따라, 응답(RES)은 액세스 명령(CMD)에 상응하는 동작의 지연을 나타낼 수 있다.According to another embodiment, the response RES may indicate a delay in operation corresponding to the access command CMD.

또 다른 실시 예에 따라, 응답(RES)은 액세스 명령(CMD)에 대한 타임아웃 응답 또는 중단 응답(abort response)일 수 있다. 상기 타임아웃 응답 또는 상기 중단 응답은 실제 타임아웃 또는 실제 중단에 대한 응답이 아니고 액세스 명령(CMD)에 상응하는 동작에 대해 일정 시간 이상의 지연이 예상될 때 생성되는 빠른 응답을 의미한다.According to another embodiment, the response RES may be a timeout response or an abort response to the access command CMD. The timeout response or the termination response is not a response to the actual timeout or actual termination, but a quick response that is generated when a delay of more than a predetermined time is expected for the operation corresponding to the access command (CMD).

실시 예에 따라, 액세스 명령(CMD)이 비정상적인 지연(abnormal delay) 없이 액세스 동작(예컨대, 리드 동작 또는 라이트 동작)을 수행할 수 있는지만을 요청하는 판매 회사 명령이고 응답(RES)이 상기 액세스 동작이 가능함을 지시할 때, 호스트(200)는 액세스 명령(CMD)에 대한 응답(RES)에 기초하여 리드 동작을 위한 리드 명령 또는 라이트 동작을 위한 라이트 명령을 데이터 저장 장치(300)로 전송할 수 있다. According to an embodiment, a sales company command that requests only that an access command (CMD) can perform an access operation (e.g., a read operation or a write operation) without an abnormal delay and a response (RES) The host 200 can transmit a read command for a read operation or a write command for a write operation to the data storage device 300 based on a response (RES) to the access command CMD .

예컨대, 데이터 저장 장치(300)에서 현재 백그라운드 동작이 수행되거나 또는 수행될 예정일 때, 또는 복수의 메모리 칩들(CHIP1-1~CHIP1-4) 각각에서 현재 특정 동작이 수행되거나 수행될 특정 동작이 남아 있을 때, 비정상적인 지연이 발생할 수 있다. 상기 특정 동작은 프로그램 동작, 리드 동작, 또는 이레이즈 동작을 의미할 수 있다.For example, when a current background operation is to be performed or scheduled to be performed in the data storage device 300, or when a specific operation is currently performed or a specific operation to be performed is left in each of the plurality of memory chips (CHIP1-1 to CHIP1-4) , An abnormal delay may occur. The specific operation may mean a program operation, a read operation, or an erase operation.

도 2는 본 발명의 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.2 shows a schematic block diagram of a data processing system according to another embodiment of the present invention.

도 1의 데이터 처리 시스템(100)의 일 실시 예에 따른 데이터 처리 시스템 (100A)은 호스트(200)와 데이터 저장 장치(300A)를 포함한다.The data processing system 100A according to one embodiment of the data processing system 100 of FIG. 1 includes a host 200 and a data storage device 300A.

호스트(200)는 호스트(200)의 동작을 제어할 수 있는 CPU(central processing unit; 211)과 스토리지 인터페이스(213)를 포함한다.The host 200 includes a central processing unit (CPU) 211 and a storage interface 213, which can control the operation of the host 200.

CPU(211)는 액세스 명령(CMD)을 생성하고 액세스 명령(CMD)을 스토리지 인터페이스(213)를 통해 호스트 인터페이스(311)로 전송할 수 있다.The CPU 211 may generate an access command CMD and transmit the access command CMD to the host interface 311 via the storage interface 213. [

CPU(211)는 스토리지 인터페이스(213)를 통해 수신된 응답(RES)을 해석하고, 해석 결과에 따라 다른 명령을 생성할 수 있다.The CPU 211 can interpret the response (RES) received via the storage interface 213 and generate another command according to the analysis result.

호스트(200)는 외부의 다른 장치와 통신할 수 있는 인터페이스(215)를 더 포함할 수 있다.The host 200 may further include an interface 215 capable of communicating with other external devices.

CPU(211)는 접속 수단, 예컨대 버스(201)를 통해 각 구성 요소(213과 215)의 동작을 제어할 수 있다.The CPU 211 can control the operation of each component 213 and 215 via the connection means, e.g., the bus 201. [

각 인터페이스(213과 311)는 SATA, SAS 또는 PCIe를 지원할 수 있다.Each of the interfaces 213 and 311 may support SATA, SAS or PCIe.

데이터 저장 장치(300A)는 스토리지 컨트롤러(310A), 메인 메모리 장치 (319), 및 각 버스(BUS#1~BUS#4)에 접속된 복수의 메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)를 포함할 있다.The data storage device 300A includes a storage controller 310A, a main memory device 319 and a plurality of memory chips CHIP1-1 to CHIP1-4, CHIP2- 1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4).

스토리지 컨트롤러(310A)는 호스트 인터페이스(311), CPU(313), 휘발성 메모리 장치(315), 예컨대 SRAM(static random access memory), 메인 메모리 컨트롤러 (317), 및 복수의 메모리 컨트롤러(321-1~321-4)를 포함한다.The storage controller 310A includes a host interface 311, a CPU 313, a volatile memory device 315 such as a static random access memory (SRAM), a main memory controller 317 and a plurality of memory controllers 321-1, 321-4).

호스트(200)와 스토리지 컨트롤러(310A)는 호스트 인터페이스(311)를 통해 데이터 및/또는 명령들을 주거나 받을 수 있다.The host 200 and the storage controller 310A may receive and / or receive data and / or instructions via the host interface 311.

CPU(313)는 접속 수단, 예컨대 버스(301)를 통해 각 구성 요소(311, 315, 317, 및 321-1~321-4)의 동작을 제어할 수 있다.The CPU 313 can control the operation of each of the components 311, 315, 317, and 321-1 to 321-4 via the connection means, e.g., the bus 301. [

SRAM(315)은 CPU(313)에서 필요한 데이터를 저장하거나 CPU(313)에서 처리된 데이터를 저장할 수 있다.The SRAM 315 may store necessary data in the CPU 313 or store the processed data in the CPU 313. [

도 2에서는 SRAM(315)이 CPU(313)의 외부에 도시되어 있으나 실시 예에 따라 SRAM(315)은 CPU(313)에 내장될 수 있다.2, the SRAM 315 is shown outside the CPU 313, but the SRAM 315 may be embedded in the CPU 313 according to an embodiment.

메인 메모리 컨트롤러(317)는 주기억 장치(319)와 데이터 및/또는 명령을 주거나 받을 수 있다. 예컨대, 메인 메모리 장치(319)가 DRAM으로 구현될 때, 메인 메모리 컨트롤러(317)는 DRAM 컨트롤러로 구현될 수 있다.The main memory controller 317 may issue or receive data and / or instructions with the main memory 319. For example, when the main memory device 319 is implemented as a DRAM, the main memory controller 317 may be implemented as a DRAM controller.

각 메모리 컨트롤러(321-1~321-4)는 각 버스(BUS#1~BUS#4)에 접속된 복수의 메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 동작을 제어할 수 있다.Each of the memory controllers 321-1 to 321-4 includes a plurality of memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4) connected to respective buses (BUS # 1 to BUS # 1 to CHIP3-4, and CHIP4-1 to CHIP4-4).

도 2에서는 설명의 편의를 위해 4개의 버스들(BUS#1~BUS#4)에 접속된 4개의 메모리 컨트롤러들(321-1~321-4)이 도시되나 이는 예시적인 것에 불과하다.In FIG. 2, four memory controllers 321-1 to 321-4 connected to four busses (BUS # 1 to BUS # 4) are shown for convenience of explanation, but these are only illustrative.

실시 예에 따라, 복수의 메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에 대한 상태 정보는 SRAM(315), 주기억 장치(319), 또는 각 메모리 컨트롤러(321-1~321-4)에 내장된 메모리(또는 레지스터; 322)에 저장될 수 있다.According to the embodiment, the status information for the plurality of memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) 315, the main memory 319, or a memory (or register) 322 embedded in each of the memory controllers 321-1 through 321-4.

다른 실시 예에 따라, 상기 상태 정보는 복수의 메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4) 중에서 적어도 하나에 저장될 수 있다.According to another embodiment, the status information includes at least one of a plurality of memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) Can be stored in one.

실시 예에 따라 상기 상태 정보는 CPU(313)에 의해 생성될 수도 있고 각 메모리 컨트롤러(321-1~321-4)에 의해 생성될 수도 있다.According to the embodiment, the status information may be generated by the CPU 313 or by each of the memory controllers 321-1 to 321-4.

상기 상태 정보는 대응되는 메모리(315, 319, 또는 322)에 테이블 형태로 저장될 수 있다.The status information may be stored in a corresponding memory 315, 319, or 322 in the form of a table.

도 3은 본 발명의 일 실시 예에 따른 상태 정보를 저장하는 테이블이다.3 is a table for storing state information according to an embodiment of the present invention.

도 1부터 도 3을 참조하면, CPU(313) 및/또는 각 메모리 컨트롤러(321-1~321-4)는 데이터 저장 장치(300 또는 300A)에서 현재 수행되는 또는 수행될 백그라운드 동작에 대한 정보를 생성하고, 생성된 상태 정보를 대응되는 메모리(315, 319, 또는 322)에 저장할 수 있다.1 to 3, the CPU 313 and / or each of the memory controllers 321-1 to 321-4 may store information on a background operation to be performed or to be performed in the data storage device 300 or 300A And store the generated state information in the corresponding memory 315, 319, or 322.

테이블1(TABLE1)에 예시적으로 도시된 바와 같이, 백그라운드 동작의 종류는 가비지 컬렉션 동작(GCO), 웨어-레벨 동작(WLO), 및 배드-블록 관리 동작(BBMO) 등을 포함할 수 있다.The types of background operations may include garbage collection operations (GCO), ware-level operations (WLO), and bad-block management operations (BBMO), as illustrated illustratively in Table 1.

데이터 저장 장치(300 또는 300A)에서 상기 백그라운드 동작이 수행될 때, 데이터 저장 장치(300 또는 300A)는 상기 백그라운드 동작이 종료될 때까지 액세스 명령(CMD)에 상응하는 동작, 예컨대 리드 동작 또는 라이트 동작을 수행할 수 없다.When the background operation is performed in the data storage device 300 or 300A, the data storage device 300 or 300A performs an operation corresponding to the access command CMD until the background operation is completed, for example, a read operation or a write operation Can not be performed.

동작 카운트(OPERATION COUNT) 컬럼에, 수행되어야 할 각 동작(GCO, WLO, 및 BBMO)에 대한 각 카운트 값(CNT1, CNT2, 및 CNT3)이 저장된다. 상기 카운트 값은 수행되어야 할 각 동작(GCO, WLO, 및 BBMO)의 회수를 의미한다.Each count value (CNT1, CNT2, and CNT3) for each operation (GCO, WLO, and BBMO) to be performed is stored in the OPERATION COUNT column. The count value means the number of each operation (GCO, WLO, and BBMO) to be performed.

예컨대, 각 동작(GCO, WLO, 및 BBMO)에 대한 각 카운트 값(CNT1, CNT2, 및 CNT3)이 영(zero)일 때, 데이터 저장 장치(300 또는 300A)에서 백그라운드 동작은 수행되지 않는다고 판단될 수 있다.For example, when each count value CNT1, CNT2, and CNT3 for each operation (GCO, WLO, and BBMO) is zero, it is determined that the background operation is not performed in the data storage device 300 or 300A .

도 4는 본 발명의 다른 실시 예에 따른 상태 정보를 저장하는 테이블이다.4 is a table for storing state information according to another embodiment of the present invention.

도 1, 도 2, 및 도 4를 참조하면, CPU(313) 및/또는 각 메모리 컨트롤러 (321-1~321-4)는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에 대한 상태 정보를 생성하고, 생성된 상태 정보를 대응되는 메모리(315, 319, 또는 322)에 저장한다.Referring to FIGS. 1, 2 and 4, the CPU 313 and / or each of the memory controllers 321-1 to 321-4 includes memory chips CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2 -4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4), and stores the generated state information in the corresponding memory 315, 319, or 322. [

테이블2(TABLE2)에 예시적으로 도시된 바와 같이, 상기 상태 정보는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에서 수행될 동작 카운트(또는 동작 회수)를 포함한다.As illustrated illustratively in Table 2, the state information is stored in each memory chip (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 (Or the number of operations) to be performed in the CHIP4 to CHIP4-4.

상기 동작 카운트는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에서 수행될 프로그램 동작의 회수(PROGRAM COUNT), 리드 동작의 회수(READ COUNT), 및 이레이즈 동작의 회수(ERASE COUNT) 중에서 적어도 하나를 포함한다.The operation count is the number of program operations to be performed in each memory chip (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) COUNT), the number of read operations (READ COUNT), and the number of erase operations (ERASE COUNT).

즉, 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에서 현재 수행중인 동작, 예컨대 프로그램 동작, 리드 동작, 및/또는 이레이즈 동작에 대한 정보는 상태 정보로서 대응되는 메모리(315, 319, 또는 322)에 저장될 수 있다.That is, an operation currently performed in each of the memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) Information about operation, and / or erase operation may be stored in the corresponding memory 315, 319, or 322 as status information.

도 4에 도시된 바와 같이, 테이블2(TABLE2)에 저장된 상태 정보는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 현재 상태(current status)와 계류 중인 동작 수(pending operation count)를 나타낼 수 있다.As shown in Fig. 4, state information stored in Table 2 is stored in each memory chip (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 To CHIP4-4) and the pending operation count of the mobile station.

테이블2(TABLE2)에 도시된 바와 같이, 버스(BUS#1)에 접속된 메모리 칩 (CHIP1-2)에 대해 수행될 프로그램 동작의 회수는 1이고, 버스(BUS#1)에 접속된 메모리 칩(CHIP1-4)에 대해 수행될 이레이즈 동작의 회수는 1이고, 버스(BUS#2)에 접속된 메모리 칩(CHIP2-1)에 대해 수행될 프로그램 동작의 회수는 1이다.As shown in Table 2, the number of program operations to be performed on the memory chips CHIP1-2 connected to the bus BUS # 1 is 1, and the number of program operations to be performed on the memory chips CHIP1-2 connected to the bus BUS # The number of erase operations to be performed on the memory chips CHIP1 to CHIP4 is 1 and the number of program operations to be performed on the memory chip CHIP2-1 connected to the bus BUS #

도 5는 본 발명의 또 다른 실시 예에 따른 상태 정보를 저장하는 테이블이다.5 is a table for storing state information according to another embodiment of the present invention.

테이블3(TABLE3)에 예시적으로 도시된 바와 같이, 상기 상태 정보는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에 대한 준비/바쁨(READY/BUSY)을 나타낼 수 있다. 이때 "0"은 준비(READY)를 나타내고, "0"은 바쁨(BUSY)을 나타낸다.As illustrated illustratively in Table 3, the status information is stored in each memory chip (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 (READY / BUSY) for the CHIP4 ~ CHIP4-4. At this time, "0" indicates ready (READY) and "0" indicates busy (BUSY).

테이블3(TABLE3)에 저장된 상태 정보는 각 메모리 컨트롤러(321-1~321-4)의 관점에서 판단된 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 상태를 나타낸다.The state information stored in the table 3 is stored in each of the memory chips CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 To CHIP4-4, and CHIP4-1 to CHIP4-4).

테이블3(TABLE3)에 도시된 바와 같이, 버스(BUS#1)에 접속된 메모리 칩 (CHIP1-2)의 상태는 바쁨(BUSY)이고, 버스(BUS#2)에 접속된 메모리 칩(CHIP2-1)의 상태는 바쁨(BUSY)이다.The state of the memory chips CHIP1-2 connected to the bus BUS # 1 is BUSY and the state of the memory chips CHIP2-BUS # 2 connected to the bus BUS # 1) is busy (BUSY).

테이블3(TABLE3)에 기초하여 CPU(313) 및/또는 각 메모리 컨트롤러(321-1~321-4)는 각 버스(BUS#1~BUS#4)의 상태, 예컨대 사용 가능성을 판단할 수 있다.The CPU 313 and / or each of the memory controllers 321-1 to 321-4 can determine the state, for example, the availability of each bus (BUS # 1 to BUS # 4) based on Table 3 .

도 6은 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타낸다.Figure 6 shows a schematic block diagram of a data processing system in accordance with another embodiment of the present invention.

도 1의 데이터 처리 시스템(100)의 다른 실시 예에 따른 데이터 처리 시스템 (100B)은 호스트(200)와 데이터 저장 장치(300B)를 포함한다.The data processing system 100B according to another embodiment of the data processing system 100 of FIG. 1 includes a host 200 and a data storage device 300B.

도 6의 데이터 저장 장치(300B)는 도 2의 데이터 저장 장치(300A)와 달리 주기억 장치와 상기 주기억 장치의 동작을 제어하는 주기억 장치 컨트롤러를 포함하지 않고 하나의 메모리 컨트롤러(321-1)를 포함한다.Unlike the data storage device 300A of FIG. 2, the data storage device 300B of FIG. 6 includes one memory controller 321-1 without including a main memory device and a main memory controller for controlling the operation of the main memory device do.

예컨대, 데이터 저장 장치(300B)는 MMC 또는 eMMC로 구현될 수 있다.For example, the data storage device 300B may be implemented as an MMC or an eMMC.

각 인터페이스(213과 311)는 MMC 인터페이스 또는 eMMC 인터페이스를 지원할 수 있다.Each of the interfaces 213 and 311 may support an MMC interface or an eMMC interface.

메모리 컨트롤러(321-1)는 버스(BUS#1)에 접속된 복수의 메모리 칩들(CHIP1-1~CHIP1-4)의 동작을 제어할 수 있다.The memory controller 321-1 can control the operation of a plurality of memory chips (CHIP1-1 to CHIP1-4) connected to the bus (BUS # 1).

실시 예에 따라, 복수의 메모리 칩들(CHIP1-1~CHIP1-4)에 대한 상태 정보는 SRAM(315), 또는 메모리 컨트롤러(321-1)에 내장된 메모리(또는 레지스터; 322)에 저장될 수 있다.State information for the plurality of memory chips CHIP1-1 through CHIP1-4 may be stored in the SRAM 315 or in the memory 322 stored in the memory controller 321-1 have.

다른 실시 예에 따라, 상기 상태 정보는 복수의 메모리 칩들(CHIP1-1~CHIP1-4) 중에서 적어도 하나에 저장될 수 있다.According to another embodiment, the status information may be stored in at least one of the plurality of memory chips (CHIP1-1 to CHIP1-4).

상기 상태 정보는 CPU(313)에 의해 생성될 수도 있고, 메모리 컨트롤러 (321-1)에 의해 생성될 수도 있다.The status information may be generated by the CPU 313 or may be generated by the memory controller 321-1.

도 3부터 도 5를 참조하여 설명된 각 테이블(TABLE1~TABLE3)에는 복수의 메모리 칩들(CHIP1-1~CHIP1-4)에 대한 상태 정보만이 저장될 수 있다.Only the status information of the plurality of memory chips (CHIP1-1 to CHIP1-4) can be stored in each of the tables (TABLE1 to TABLE3) described with reference to Figs. 3 to 5.

도 7은 도 1, 도 2, 또는 도 6에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트의 일 실시 예이다.FIG. 7 is an embodiment of a flowchart for explaining the operation of the data processing system shown in FIG. 1, FIG. 2, or FIG.

도 1부터 도 5, 및 도 7을 참조하면, 데이터 저장 장치(300A)의 CPU(313) 또는 각 메모리 컨트롤러(321-1~321-4)는 각 메모리 칩(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)에 대한 상태 정보를 생성하고,생성된 상태 정보를 상응하는 메모리(315, 319, 또는 322) 또는 메모리 칩들 (CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4) 중에서 적어도 하나에 저장할 수 있다(S110).1 to 5 and 7, the CPU 313 of the data storage device 300A or each of the memory controllers 321-1 to 321-4 is connected to each of the memory chips CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4), and transmits the generated status information to the corresponding memory 315, 319, or 322 or May be stored in at least one of the memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) (S110).

데이터 저장 장치(300A)의 CPU(313)는 호스트(200)로부터 출력된 액세스 명령 (CMD)을 수신하고(S120), 액세스 명령(CMD)에 기초하여 상기 상태 정보를 해석하고, 해석 결과에 기초하여 액세스 명령(CMD)의 실행에 관련된 응답(RES)을 호스트로 전송한다(S130).The CPU 313 of the data storage device 300A receives the access command CMD output from the host 200 at step S120 and analyzes the state information based on the access command CMD, And transmits a response (RES) related to execution of the access command (CMD) to the host (S130).

도 1, 도 6, 및 도 7을 참조하면, 데이터 저장 장치(300 또는 300B)의 CPU(313) 또는 메모리 컨트롤러(321-1)는 각 메모리 칩(CHIP1-1~CHIP1-4)에 대한 상태 정보를 생성하고, 생성된 상태 정보를 상응하는 메모리(315 또는 322) 또는 메모리 칩들(CHIP1-1~CHIP1-4) 중에서 적어도 하나에 저장할 수 있다(S110).1, 6, and 7, the CPU 313 or the memory controller 321-1 of the data storage device 300 or 300B stores a status (status) for each of the memory chips CHIP1-1 to CHIP1-4 And store the generated state information in at least one of the corresponding memory 315 or 322 or the memory chips CHIP1-1 to CHIP1-4 (S110).

데이터 저장 장치(300 또는 300B)의 CPU(313)는 호스트(200)로부터 출력된 액세스 명령(CMD)을 수신하고(S120), 액세스 명령(CMD)에 기초하여 상기 상태 정보를 해석하고, 해석 결과에 기초하여 액세스 명령(CMD)의 실행에 관련된 응답(RES)을 호스트로 전송한다(S130).The CPU 313 of the data storage device 300 or 300B receives the access command CMD output from the host 200 at step S120 and interprets the status information based on the access command CMD, (RES) related to the execution of the access command (CMD) to the host (S130).

도 8은 도 1, 도 2, 또는 도 6에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트의 다른 실시 예이다.FIG. 8 is another embodiment of a flowchart for explaining the operation of the data processing system shown in FIG. 1, FIG. 2, or FIG.

도 7과 도 8을 참조하면, CPU(313)는 상기 상태 정보를 해석한다(S131).Referring to FIGS. 7 and 8, the CPU 313 analyzes the status information (S131).

데이터 저장 장치(300, 300A, 또는 300B, 집합적으로 300)에서 현재 백그라운드 동작이 수행되고 있거나 수행될 백그라운드 동작이 있을 때(S133), CPU(313)는 액세스 명령(CMD)에 상응하는 리드 동작 또는 라이트 동작이 현재 수행될 수 없음을 지시하는 응답(RES)을 호스트(200)로 전송한다(S139-2). 이때, CPU(133)는 테이블1(TABLE1)을 참조하여 응답(RES)을 호스트(200)로 전송할 수 있다(S139-2)When there is a background operation in the data storage device 300, 300A or 300B (collectively, 300), or when there is a background operation to be performed (S133), the CPU 313 performs a read operation corresponding to the access command CMD Or transmits a response (RES) indicating that the write operation can not be performed currently to the host 200 (S139-2). At this time, the CPU 133 can transmit a response (RES) to the host 200 by referring to the table 1 (TABLE 1) (S139-2)

데이터 저장 장치(300)에서 현재 백그라운드 동작이 수행되고 있지 않거나 수행될 백그라운드 동작이 없을 때(S133), CPU(133)는 메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 동작 상태를 해석한다(S135).When no background operation is currently being performed in the data storage device 300 or there is no background operation to be performed (S133), the CPU 133 controls the memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) (S135).

메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 동작 상태가 준비(READY)일 때, CPU(313)는 액세스 명령(CMD)에 상응하는 리드 동작 또는 라이트 동작이 현재 수행될 수 있음을 지시하는 응답 (RES)을 호스트(200)로 전송한다(S139-1). 이때, CPU(133)는 테이블2(TABLE2) 및/또는 테이블(TABLE3)을 참조하여 응답(RES)을 호스트(200)로 전송할 수 있다(S139-1).When the operation state of the memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) is ready (READY), the CPU 313 Transmits a response RES to the host 200 indicating that the read operation or the write operation corresponding to the access command CMD can be performed currently (S139-1). At this time, the CPU 133 may transmit a response (RES) to the host 200 by referring to the table 2 and / or the table TABLE3 (S139-1).

메모리 칩들(CHIP1-1~CHIP1-4, CHIP2-1~CHIP2-4, CHIP3-1~CHIP3-4, 및 CHIP4-1~CHIP4-4)의 동작 상태가 준비(READY)가 아닐 때, CPU(313)는 액세스 명령(CMD)에 상응하는 리드 동작 또는 라이트 동작이 현재 수행될 수 없음을 지시하는 응답(RES)을 호스트(200)로 전송할 수 있다(S139-2). 이때, CPU(133)는 테이블2(TABLE2) 및/또는 테이블(TABLE3)을 참조하여 응답(RES)을 호스트(200)로 전송할 수 있다(S139-1). When the operation state of the memory chips (CHIP1-1 to CHIP1-4, CHIP2-1 to CHIP2-4, CHIP3-1 to CHIP3-4, and CHIP4-1 to CHIP4-4) is not ready (READY) 313 may transmit a response RES to the host 200 indicating that the read operation or the write operation corresponding to the access command CMD can not be performed currently (S139-2). At this time, the CPU 133 may transmit a response (RES) to the host 200 by referring to the table 2 and / or the table TABLE3 (S139-1).

도 9는 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타내고, 도 10은 도 9에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트이다.FIG. 9 shows a schematic block diagram of a data processing system according to another embodiment of the present invention, and FIG. 10 is a flowchart for explaining the operation of the data processing system shown in FIG.

데이터 처리 시스템(400)은 호스트(200)와 복수의 데이터 저장 장치들(300-1~300-N; N은 자연수)을 포함한다. 데이터 처리 시스템(400)은 데이터베이스 관리 시스템(database management system(DBMS))으로 구현될 수 있다.The data processing system 400 includes a host 200 and a plurality of data storage devices 300-1 to 300-N (N is a natural number). The data processing system 400 may be implemented as a database management system (DBMS).

복수의 데이터 저장 장치들(300-1~300-N)은 RAID(Redundant Array of Independent Disks 혹은 Redundant Array of Inexpensive Disks)를 구성할 수 있다.The plurality of data storage devices 300-1 to 300-N may constitute a RAID (Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks).

복수의 데이터 저장 장치들(300-1~300-N)을 RAID로 구성할 때, 복수의 데이터 저장 장치들(300-1~300-N) 중에서 어느 하나에 저장된 데이터(DATA)는 복수의 데이터 저장 장치들(300-1~300-N) 중에서 다른 적어도 하나에 저장된 데이터를 조합하여 구성할 수 있다.When the plurality of data storage devices 300-1 to 300-N are configured as RAID, the data (DATA) stored in any one of the plurality of data storage devices 300-1 to 300-N is divided into a plurality of data Data stored in at least one of the storage devices 300-1 to 300-N may be combined.

각 데이터 저장 장치(300-1~300-N)의 구조와 동작은 각 데이터 저장 장치 (310A 또는 300B)의 구조와 동작과 실질적으로 동일하다.The structure and operation of each data storage device 300-1 to 300-N are substantially the same as the structure and operation of each data storage device 310A or 300B.

각 데이터 저장 장치(300-1~300-N)는 그 안에 포함된 복수의 메모리 칩들에 대한 상태 정보를 생성하고 생성된 상태 정보를 대응되는 메모리에 저장한다 (S210).Each of the data storage devices 300-1 to 300-N generates status information on a plurality of memory chips contained therein and stores the generated status information in a corresponding memory (S210).

호스트(200)는 복수의 데이터 저장 장치들(300-1~300-N) 중의 어느 하나(이하, 제1데이터 저장 장치(300-2)라 한다)로 제1액세스 명령(CMD1)을 전송한다 (S220).The host 200 transmits the first access command CMD1 to any one of the plurality of data storage devices 300-1 to 300-N (hereinafter referred to as the first data storage device 300-2) (S220).

제1데이터 저장 장치(300-2)가 제1액세스 명령(CMD1)에 응답하여 제1데이터 저장 장치(300-2)에 내장된 제1메모리 칩들의 상태 정보를 해석하고, 해석 결과에 따라 제1액세스 명령(CMD1)의 실행에 관련된 응답(RES)을 호스트(200)로 전송한다 (S230).The first data storage 300-2 analyzes the status information of the first memory chips built in the first data storage 300-2 in response to the first access command CMD1, 1 response (RES) related to the execution of the access command CMD1 to the host 200 (S230).

호스트(200)는 수신된 응답(RES)에 기초하여 제1데이터 저장 장치(300-2)에 대한 액세스 동작을 보류하고 복수의 데이터 저장 장치들(300-1~300-N) 중의 다른 하나(이하, 제2데이터 저장 장치(300-N)라 한다)로 제2액세스 명령(CMD2)을 전송한다(S240).The host 200 suspends the access operation to the first data storage device 300-2 based on the received response RES and selects the other one of the plurality of data storage devices 300-1 to 300- (Hereinafter, referred to as a second data storage device 300-N) (S240).

제2데이터 저장 장치(300-N)는 제2데이터 저장 장치(300-N)에 내장된 제2메모리 칩들에 대해 제2액세스 명령(CMD2)에 상응하는 동작을 수행한다(S250).The second data storage device 300-N performs an operation corresponding to the second access command CMD2 for the second memory chips built in the second data storage device 300-N (S250).

제2액세스 명령(CMD2)에 상응하는 상기 동작이 리드 동작일 때, 제2데이터 저장 장치(300-N)는 상기 동작에 따라 상기 제2메모리 칩들 중에서 적어도 하나로부터 리드된 리드 데이터(DATA)를 호스트(200)로 전송한다(S260).When the operation corresponding to the second access command CMD2 is a read operation, the second data storage device 300-N reads the read data DATA from at least one of the second memory chips in accordance with the operation To the host 200 (S260).

상술한 바와 같이, 제1데이터 저장 장치(300-2)에서 백그라운드 동작이 수행되거나 수행될 예정일 때, 제1데이터 저장 장치(300-2)는 호스트(200)로부터 출력된 제1액세스 명령(CMD)에 응답하여 정상적인 시간 내에 제1액세스 명령(CMD)에 상응하는 리드 동작 또는 라이트 동작을 수행할 수 없다. As described above, when the background operation is to be performed or scheduled to be performed in the first data storage device 300-2, the first data storage device 300-2 receives the first access command CMD It can not perform a read operation or a write operation corresponding to the first access command CMD in a normal time.

상기 정상적인 시간은 복수의 데이터 저장 장치들(300-1~300-N) 각각의 설계 사양에 따라 정해지는 정상적인 리드 동작에 필요한 시간 또는 정상적인 라이트 동작에 필요한 시간을 의미할 수 있다.The normal time may be a time required for a normal read operation or a time required for a normal write operation determined according to a design specification of each of the plurality of data storage devices 300-1 to 300-N.

이 경우, 제1데이터 저장 장치(300-2)는 상기 정상적인 시간 내에 제1액세스 명령(CMD1)에 상응하는 리드 동작 또는 라이트 동작을 수행할 수 없음을 나타내는 빠른 응답(RES)을 호스트(200)로 출력할 수 있다. 따라서, 호스트(200)는 빠른 응답 (RES)에 기초하여 제2데이터 저장 장치(300-N)로 제1액세스 명령(CMD1)에 관련된 제2액세스 명령(CMD2)을 출력할 수 있다.In this case, the first data storage 300-2 transmits a quick response (RES) to the host 200 indicating that it can not perform the read operation or the write operation corresponding to the first access command CMD1 within the normal time, . Thus, the host 200 can output the second access command CMD2 related to the first access command CMD1 to the second data storage 300-N based on the quick response RES.

도 11은 본 발명의 또 다른 실시 예에 따른 데이터 처리 시스템의 개략적인 블록도를 나타내고, 도 12는 도 11에 도시된 데이터 처리 시스템의 동작을 설명하기 위한 플로우차트이다.Fig. 11 shows a schematic block diagram of a data processing system according to another embodiment of the present invention, and Fig. 12 is a flowchart for explaining the operation of the data processing system shown in Fig.

데이터 처리 시스템(500)은 클라이언트 컴퓨터(간단히, 클라이언트(510)라 한다), 제1네트워크(520), 웹서버(530), 제2네트워크(540), 데이터베이스 서버(200), 및 데이터베이스(410)를 포함한다. 데이터 처리 시스템(500)은 데이터베이스 관리 시스템(database management system(DBMS))으로 구현될 수 있다.The data processing system 500 includes a client computer (simply referred to as client 510), a first network 520, a web server 530, a second network 540, a database server 200, and a database 410 ). The data processing system 500 may be implemented as a database management system (DBMS).

데이터 처리 시스템(500)은 웹 포탈(web portal)일 수 있다.The data processing system 500 may be a web portal.

클라이언트(510)는 유저 브라우저(511)를 포함하고, 유저 브라우저(511)는 웹 브라이저를 의미할 수 있다.The client 510 may include a user browser 511 and the user browser 511 may refer to a web browser.

유저 브라우저(511)가 입력 장치(예컨대, 키보드, 마우스, 또는 터치 스크린)를 통해 유저로부터 입력된 서치 기준(search criteria; SC)), 예컨대 서치 키워드를 제1네트워크(520)를 통해 웹서버(530)로 전송하면(S310), 웹서버(530)는 유저 브라우저(511)로부터 서치 기준(SC)을 수신한다(S310).The user browser 511 transmits a search keyword (e.g., search criteria SC) input from a user via an input device (e.g., a keyboard, a mouse or a touch screen) 530 (S310), the web server 530 receives the search criteria SC from the user browser 511 (S310).

제1네트워크(520)는 유선 인터넷 또는 무선 인터넷일 수 있다. The first network 520 may be a wired Internet or a wireless Internet.

웹서버(530)는 제2네트워크(540)를 통해 서치 기준(SC)에 상응하는 명령 (WCMD)을 데이터베이스 서버(200)로 전송한다(S320). 데이터베이스 서버(200)는 호스트(200)와 동일한 기능을 수행할 수 있다.The web server 530 transmits a command WCMD corresponding to the search criteria SC to the database server 200 through the second network 540 at step S320. The database server 200 may perform the same function as the host 200. [

제2네트워크(540)는 유선 인터넷, 무선 인터넷, 또는 인트라넷일 수 있다.The second network 540 may be a wired Internet, a wireless Internet, or an intranet.

데이터베이스(410)는 복수의 데이터 저장 장치들(300-1~300-N)을 포함하는 물리적인 장치로 정의한다.The database 410 is defined as a physical device including a plurality of data storage devices 300-1 to 300-N.

각 데이터 저장 장치(300-1~300-N)는 그 안에 포함된 복수의 메모리 칩들에 대한 상태 정보를 생성하고, 생성된 상태 정보를 대응되는 메모리에 저장한다.Each of the data storage devices 300-1 to 300-N generates status information on a plurality of memory chips contained therein, and stores the generated status information in a corresponding memory.

데이터베이스 서버(200)는 제1데이터 저장 장치(300-2)로 제1액세스 명령 (CMD1)을 전송한다(S330).The database server 200 transmits the first access command CMD1 to the first data storage 300-2 (S330).

제1데이터 저장 장치(300-2)는 제1액세스 명령(CMD1)에 응답하여 제1데이터 저장 장치(300-2)에 내장된 제1메모리 칩들의 상태 정보를 해석하고, 해석 결과에 따라 제1액세스 명령(CMD1)의 실행에 관련된 응답(RES)을 데이터베이스 서버(200)로 전송한다(S340). 제1액세스 명령(CMD1)은 서치 기준(SC)에 상응하는 리드 명령 또는 라이트 명령일 수 있다.The first data storage device 300-2 analyzes the status information of the first memory chips built in the first data storage device 300-2 in response to the first access command CMD1, 1 response (RES) related to the execution of the access command (CMD1) to the database server 200 (S340). The first access command CMD1 may be a read command or a write command corresponding to the search criteria SC.

웹서버(530) 또는 데이터베이스 서버(200)는 키워드 서치 엔진을 포함할 수 있다.Web server 530 or database server 200 may include a keyword search engine.

호스트(200)는 수신된 응답(RES)에 기초하여 제1데이터 저장 장치(300-2)에 대한 액세스 동작을 보류하고 제2데이터 저장 장치(300-N)로 제2액세스 명령(CMD2)을 전송한다(S350).The host 200 holds the access operation to the first data storage 300-2 based on the received response RES and sends the second access command CMD2 to the second data storage 300- (S350).

제2데이터 저장 장치(300-N)는 제2데이터 저장 장치(300-N)에 내장된 제2메모리 칩들에 대해 제2액세스 명령(CMD2)에 상응하는 동작을 수행한다(S360).The second data storage device 300-N performs an operation corresponding to the second access command CMD2 for the second memory chips built in the second data storage device 300-N (S360).

제2액세스 명령(CMD2)에 상응하는 상기 동작이 리드 동작일 때, 제2데이터 저장 장치(300-N)는 상기 동작에 따라 상기 제2메모리 칩들 중에서 적어도 하나로부터 리드된 리드 데이터(DATA)를 데이터베이스 서버(200)로 전송한다(S370).When the operation corresponding to the second access command CMD2 is a read operation, the second data storage device 300-N reads the read data DATA from at least one of the second memory chips in accordance with the operation To the database server 200 (S370).

웹서버(530)는 데이터베이스 서버(200)로부터 제2네트워크(540)를 통해 리드 데이터(DATA)를 수신한다(S380).The web server 530 receives the read data (DATA) from the database server 200 through the second network 540 (S380).

웹서버(530)는 리드 데이터(DATA)를 제1네트워크(520)를 통해 클라이언트 (510)의 유저 브라이저(511)로 전송한다(S390).The web server 530 transmits the read data DATA to the user browser 511 of the client 510 via the first network 520 (S390).

따라서, 유저 브라이저(511)는 서치 기준(SC)에 상응하는 리드 데이터(DATA)를 디스플레이를 통해 디스플레이할 수 있다.Therefore, the user browser 511 can display the read data (DATA) corresponding to the search criteria SC through the display.

본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

100, 100A, 100B, 400, 및 500; 데이터 처리 시스템
200; 호스트
300, 300-1~300-N, 300A, 및 300B; 데이터 저장 장치
311; 호스트 인터페이스
313; CPU
315; SRAM
317; 메인 메모리 컨트롤러
319; 메인 메모리
321-1~321-4; 메모리 컨트롤러
322; 메모리
100, 100A, 100B, 400, and 500; Data processing system
200; Host
300, 300-1 to 300-N, 300A, and 300B; Data storage device
311; Host interface
313; CPU
315; SRAM
317; Main memory controller
319; Main memory
321-1 to 321-4; Memory controller
322; Memory

Claims (20)

복수의 메모리 칩들을 포함하는 데이터 저장 장치의 동작 방법에 있어서,
상기 복수의 메모리 칩들에 대한 상태 정보를 생성하여 메모리에 저장하는 단계;
호스트로부터 액세스 명령을 수신하는 단계; 및
상기 액세스 명령에 응답하여 상기 상태 정보를 해석하고, 해석 결과에 따라 상기 액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
A method of operating a data storage device comprising a plurality of memory chips,
Generating status information for the plurality of memory chips and storing the status information in a memory;
Receiving an access command from a host; And
Interpreting the status information in response to the access command, and sending a response related to the execution of the access command to the host according to a result of the analysis.
제1항에 있어서,
상기 상태 정보는 백그라운드 동작에 대한 정보, 상기 복수의 메모리 칩들 각각에서 수행될 프로그램 동작 카운트, 리드 동작 카운트, 이레이즈 동작 카운트, 상기 복수의 메모리 칩들이 접속된 버스의 상태에 대한 정보, 및 상기 복수의 메모리 칩들에서 현재 수행중인 동작에 대한 정보 중에서 적어도 하나를 포함하는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Wherein the status information includes information about a background operation, a program operation count to be performed in each of the plurality of memory chips, a read operation count, an erase operation count, information on a state of a bus to which the plurality of memory chips are connected, Lt; RTI ID = 0.0 > memory chips < / RTI >
제2항에 있어서,
상기 백그라운드 동작은 가비지 컬렉션 동작 카운트, 웨어-레벨 동작 카운트, 또는 배드-블록 관리 동작 카운트 중에서 적어도 하나를 포함하는 데이터 저장 장치의 동작 방법.
3. The method of claim 2,
Wherein the background operation comprises at least one of a garbage collection operation count, a wear-level operation count, or a bad-block management operation count.
제1항에 있어서,
상기 액세스 명령은 리드 명령의 수행 여부 또는 라이트 명령의 수행 여부를 나타내고,
상기 응답은 상기 액세스 명령을 현재 실행할 수 있는지 여부를 나타내는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Wherein the access command indicates whether to execute the read command or whether to execute the write command,
Wherein the response indicates whether the access command is currently executable.
제1항에 있어서,
상기 응답은 상기 액세스 명령을 실행할 시간을 나타내는 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Wherein the response indicates a time at which the access command is to be executed.
제1항에 있어서,
상기 응답은 타임아웃 응답 또는 중단 응답(abort response)인 데이터 저장 장치의 동작 방법.
The method according to claim 1,
Wherein the response is a timeout response or an abort response.
제1메모리 칩들을 포함하는 제1데이터 저장 장치, 제2메모리 칩들을 포함하는 제2데이터 저장 장치, 및 호스트를 포함하는 데이터 처리 시스템의 동작 방법에 있어서,
상기 호스트가 상기 제1데이터 저장 장치로 제1액세스 명령을 전송하는 단계;
상기 제1데이터 저장 장치가 상기 제1액세스 명령에 응답하여 상기 제1메모리 칩들의 상태 정보를 해석하고, 해석 결과에 따라 상기 제1액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송하는 단계; 및
상기 응답에 기초하여 상기 호스트가 상기 제1데이터 저장 장치에 대한 액세스 동작을 보류하고 상기 제2데이터 저장 장치로 제2액세스 명령을 전송하는 단계; 및
상기 제2데이터 저장 장치가 상기 제2메모리 칩들에 대해 상기 제2액세스 명령에 상응하는 동작을 수행하는 단계를 포함하는 데이터 처리 시스템의 동작 방법.
A method of operating a data processing system including a first data storage device including first memory chips, a second data storage device including second memory chips, and a host,
The host sending a first access command to the first data storage device;
The first data storage device interprets status information of the first memory chips in response to the first access command and transmits a response related to the execution of the first access command to the host according to a result of the analysis; And
The host holding an access operation to the first data storage device and transmitting a second access command to the second data storage device based on the response; And
And the second data storage device performing an operation corresponding to the second access command for the second memory chips.
제7항에 있어서,
상기 제1데이터 저장 장치는 상기 제1액세스 명령을 수신하기 이전에 상기 상태 정보를 생성하고,
상기 상태 정보는 백그라운드 동작에 대한 정보, 상기 복수의 메모리 칩들 각각에서 수행될 동작 카운트, 상기 복수의 메모리 칩들이 접속된 버스의 상태에 대한 정보, 또는 상기 복수의 메모리 칩들에서 현재 수행중인 동작에 대한 정보 중에서 적어도 하나를 포함하는 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the first data storage device generates the status information before receiving the first access command,
Wherein the status information includes information about a background operation, an operation count to be performed in each of the plurality of memory chips, information on a status of a bus to which the plurality of memory chips are connected, Wherein the at least one of the at least one of the at least one of the at least two of the at least two of the at least two of the at least two of the plurality of data processing systems.
제7항에 있어서,
상기 응답은 상기 제1액세스 명령을 현재 실행할 수 있는지 여부 또는 상기 제1액세스 명령을 실행할 시간을 나타내는 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the response indicates whether the first access command is currently executable or when the first access command is to be executed.
제7항에 있어서,
상기 제1데이터 저장 장치와 상기 제2데이터 저장 장치는 RAID(Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks)에 포함되는 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the first data storage device and the second data storage device are included in a RAID (Redundant Array of Independent Disks or a Redundant Array of Inexpensive Disks).
제7항에 있어서,
상기 제1데이터 저장 장치와 상기 제2데이터 저장 장치는 솔리드 스테이트 드라이브들(solid state drives)이고,
상기 제1메모리 칩들과 상기 제2메모리 칩들은 플래시 메모리 칩들인 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the first data storage device and the second data storage device are solid state drives,
Wherein the first memory chips and the second memory chips are flash memory chips.
제7항에 있어서,
상기 제1데이터 저장 장치와 상기 제2데이터 저장 장치는 데이터베이스에 포함되고,
상기 호스트는 데이터베이스 서버인 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the first data storage device and the second data storage device are included in a database,
Wherein the host is a database server.
제7항에 있어서,
상기 데이터 처리 시스템은 데이터베이스 관리 시스템(database management system(DBMS))인 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
Wherein the data processing system is a database management system (DBMS).
제7항에 있어서,
상기 제2데이터 저장 장치가 상기 제2액세스 명령에 상응하는 상기 동작에 따라 리드된 리드 데이터를 상기 호스트로 전송하는 단계를 더 포함하는 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
The second data storage device transmitting the read data to the host in accordance with the operation corresponding to the second access command.
제7항에 있어서,
상기 호스트에 접속된 웹 서버가 유저 브라이저(user browser)로부터 서치 기준를 수신하는 단계;
상기 웹 서버가 상기 서치 기준에 상응하는 명령을 상기 호스트로 전송하는 단계; 및
상기 호스트가 상기 명령에 상응하는 상기 제1액세스 명령을 생성하는 단계를 더 포함하는 데이터 처리 시스템의 동작 방법.
8. The method of claim 7,
The web server connected to the host receiving the search criteria from a user browser;
The web server transmitting an instruction corresponding to the search criterion to the host; And
Further comprising the step of the host generating the first access command corresponding to the command.
제15항에 있어서,
상기 제2데이터 저장 장치가 상기 제2액세스 명령에 상응하는 상기 동작에 따라 리드된 리드 데이터를 상기 호스트로 전송하는 단계;
상기 호스트가 상기 리드 데이터를 상기 웹 서버로 전송하는 단계; 및
상기 웹 서버가 상기 웹 서버로부터 전송된 상기 리드 데이터를 상기 유저 브라우저로 전송하는 단계를 더 포함하는 데이터 처리 시스템의 동작 방법.
16. The method of claim 15,
The second data storage device transmitting the read data to the host in accordance with the operation corresponding to the second access command;
The host transmitting the read data to the web server; And
Wherein the web server transmits the read data transmitted from the web server to the user browser.
복수의 메모리 칩들; 및
상기 복수의 메모리 칩들에 대한 상태 정보를 생성하고 생성된 상태 정보를 메모리에 저장하고, 호스트로부터 출력된 액세스 명령에 응답하여 상기 메모리에 저장된 상기 상태 정보를 해석하고, 해석 결과에 따라 상기 액세스 명령의 실행에 관련된 응답을 상기 호스트로 전송하는 스토리지 컨트롤러를 포함하는 데이터 저장 장치.
A plurality of memory chips; And
Storing the generated state information in a memory, interpreting the state information stored in the memory in response to an access command output from the host, and outputting the state information of the access command And a storage controller for transmitting a response related to the execution to the host.
제17항에 있어서,
상기 스토리지 컨트롤러에 집적된 CPU(central processing unit); 및
상기 스토리지 컨트롤러에 집적되고 상기 복수의 메모리 칩들의 동작을 제어하는 메모리 컨트롤러를 더 포함하고,
상기 상태 정보는 상기 CPU와 상기 메모리 컨트롤러 중 어느 하나에 의해 생성되고,
상기 상태 정보는 백그라운드 동작에 대한 정보, 상기 복수의 메모리 칩들 각각에서 수행될 동작 카운트, 상기 복수의 메모리 칩들이 접속된 버스의 상태에 대한 정보, 또는 상기 복수의 메모리 칩들에서 현재 수행중인 동작에 대한 정보 중에서 적어도 하나를 포함하는 데이터 저장 장치.
18. The method of claim 17,
A central processing unit (CPU) integrated in the storage controller; And
Further comprising a memory controller integrated in the storage controller and controlling operation of the plurality of memory chips,
Wherein the status information is generated by either the CPU or the memory controller,
Wherein the status information includes information about a background operation, an operation count to be performed in each of the plurality of memory chips, information on a status of a bus to which the plurality of memory chips are connected, ≪ / RTI > information.
제18항에 있어서,
상기 메모리는 상기 스토리지 컨트롤러에 내장되는 데이터 저장 장치.
19. The method of claim 18,
Wherein the memory is embedded in the storage controller.
제18항에 있어서,
상기 메모리는 상기 스토리지 컨트롤러의 외부에 구현된 주메모리 장치인 데이터 저장 장치.
19. The method of claim 18,
Wherein the memory is a main memory device implemented external to the storage controller.
KR1020130117519A 2013-04-29 2013-10-01 Data storage device for performing fast response about data processing latency and methods using the same KR20140128852A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/264,119 US20140325148A1 (en) 2013-04-29 2014-04-29 Data storage devices which supply host with data processing latency information, and related data processing methods

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361816822P 2013-04-29 2013-04-29
US61/816,822 2013-04-29

Publications (1)

Publication Number Publication Date
KR20140128852A true KR20140128852A (en) 2014-11-06

Family

ID=52454628

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130117519A KR20140128852A (en) 2013-04-29 2013-10-01 Data storage device for performing fast response about data processing latency and methods using the same

Country Status (1)

Country Link
KR (1) KR20140128852A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190008643A (en) * 2017-07-17 2019-01-25 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR20190093364A (en) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 Memory controller, memory system having the same and operating method thereof
US11144225B2 (en) 2019-06-28 2021-10-12 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190008643A (en) * 2017-07-17 2019-01-25 에스케이하이닉스 주식회사 Memory system and operating method of memory system
KR20190093364A (en) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 Memory controller, memory system having the same and operating method thereof
US11144225B2 (en) 2019-06-28 2021-10-12 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes
US11500562B2 (en) 2019-06-28 2022-11-15 SK Hynix Inc. Memory system, memory controller, and operation method thereof utilizing at least first and second operational modes

Similar Documents

Publication Publication Date Title
US20140325148A1 (en) Data storage devices which supply host with data processing latency information, and related data processing methods
US9747044B2 (en) Interleaving read and write requests to reduce latency and maximize throughput in a flash storage device
US9378846B2 (en) Non-mounted storage test device based on FPGA
US9607120B2 (en) Implementing system irritator accelerator FPGA unit (AFU) residing behind a coherent attached processors interface (CAPI) unit
JP7039631B2 (en) Methods, devices, devices, and storage media for managing access requests
KR101986355B1 (en) A embedded Multimedia Card(eMMC), eMMC system including the eMMC, and a method for operating the eMMC
US10474374B2 (en) Method and apparatus for storage device latency/bandwidth self monitoring
US20190012251A1 (en) Distributed architecture for determining performance parameters
US20230229357A1 (en) Storage controller, computational storage device, and operational method of computational storage device
CN109791510B (en) Managing data flows in heterogeneous computing
Huffman et al. The nonvolatile memory transformation of client storage
KR20140128852A (en) Data storage device for performing fast response about data processing latency and methods using the same
KR20190089429A (en) Storage device and method of operating the storage device
KR20210013845A (en) Method of operating storage device for improving qos latency and storage device performing the same
US10216591B1 (en) Method and apparatus of a profiling algorithm to quickly detect faulty disks/HBA to avoid application disruptions and higher latencies
KR102634776B1 (en) Data storage device and operating method thereof
CN102945214B (en) Based on the method for IO distribution optimization time delay interrupt processing task
US10019390B2 (en) Using memory cache for a race free interrupt scheme without the use of “read clear” registers
CN102929819B (en) For the treatment of the method for the interrupt request of the memory device in computer system
KR20160118602A (en) Data storage device and devices having same
KR20150090621A (en) Storage device and method for data processing
US11816004B2 (en) Systems and methods for file level prioritization during multi-object data restores
KR20230037906A (en) A computational storage device, and a storage system including the same computational storage device
US8966133B2 (en) Determining a mapping mode for a DMA data transfer
US10846020B2 (en) Drive assisted storage controller system and method

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