KR20160026651A - 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템 - Google Patents

호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템 Download PDF

Info

Publication number
KR20160026651A
KR20160026651A KR1020150072900A KR20150072900A KR20160026651A KR 20160026651 A KR20160026651 A KR 20160026651A KR 1020150072900 A KR1020150072900 A KR 1020150072900A KR 20150072900 A KR20150072900 A KR 20150072900A KR 20160026651 A KR20160026651 A KR 20160026651A
Authority
KR
South Korea
Prior art keywords
command
logical units
host device
task
control device
Prior art date
Application number
KR1020150072900A
Other languages
English (en)
Inventor
딜립 수라프람
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160026651A publication Critical patent/KR20160026651A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

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

Abstract

호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템이 제공된다. 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법은 제어 장치에 의해 호스트 장치로부터 높은 우선순위 및 하나 이상의 논리 유닛을 중지 시키는 정보를 갖는 적어도 하나의 작업 명령을 수신하고, 만약 수신된 작업 명령의 우선순위가 높으면 하나 이상의 논리 유닛을 중지시키는 중지 명령을 트리거하고, 높은 우선순위를 갖는 작업 명령이 실행되면 중지된 하나 또는 그 이상의 논리 유닛의 실행을 재개하는 재개 명령을 트리거하는 것을 포함한다. 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법은 높은 우선순위를 갖는 작업이 빠르게 실행되도록, 높은 우선순위를 갖는 작업을 위해 데이터 트래픽을 감소시킬 수 있다.

Description

호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템{Method and system for managing storage device operations by a host device}
본 발명은 일반적으로 장치 관리(device management), 구체적으로는 호스트 장치(host device)에 의해 기억 장치(storage device)의 작업(operation)을 관리하는 방법 및 시스템에 관한 것이다.
스마트 기기(smart device)에 있어서, 메모리 장치(memory device)에 즉시, 동시에 액세스(access)할 것을 요하는 여러 가지의 응용 프로그램(application)들이 급부상하고 있다. 호스트(스마트 기기)에서 실행되는 응용 프로그램은 메모리 장치에 대하여 동시에 그리고 빠르게 특정 작업을 수행하기 위해 호스트 장치(host machine)를 요한다. 종래의 메커니즘(mechanism)에서는, 호스트는 메모리 장치에 대해 명령(operation)을 내리고, 그 명령이 완료될 때까지 기다렸다. 기존의 호스트 장치는 작업을 종료시키는 것 이외에, 계속 진행 중(ongoing)이거나 현재 처리중인 작업에 대해서는 그 어떤 제어도 하지 않는다. 만약 어떤 높은 우선순위를 갖는 작업이 중간 또는 런타임(runtime)중 처리되어야 할 필요가 있다면, 호스트 장치는 그것을 조절할 수 없다.
현재 메모리 프로토콜(memory protocol)에서는, 만약 다수의 작업이 여러 논리 유닛(logical unit)들에서 동시에 실행되어야 할 필요가 있다면, 데이터 트래픽(data traffic)은 여러 논리 유닛(logical unit)들 사이에서 공유된다. 읽기, 쓰기, 검증(verify), 포맷(formatting), 캐시 동기화(synchronizing cache), 퍼지 작업(purge operation)(보안 제거), 백그라운드 작업(background operation) 및 다른 장치의 특유(specific) 작업 등과 같은 작업들은 시간이 오래 걸리고, 데이터 트래픽을 증가시킬 수 있다. 만약 런타임(runtime) 중에 어떤 논리 유닛에서 실행 중인 작업의 우선순위가 높아지면, 호스트(host)는 여러 논리 유닛들을 관리할 수 없다.
전술한 바를 고려했을 때, 여러 논리 유닛의 현재 작업 시퀀스(sequence)를 방해하지 않고 런타임 우선순위에 따라 작업들을 실행시키기 위한 방법과 시스템이 필요하다. 또한, 우선순위에 따른 작업들을 실행시키기 위해 대기 시간과 처리 시간을 감소시키는 방법과 시스템도 필요하다.
본 발명이 해결하고자 하는 기술적 과제는 논리 유닛의 중지 및 재개를 이용하여 기억 장치의 작업을 관리하는 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 높은 우선순위를 갖는 작업의 실행 시간 및 데이터 트래픽을 감소시키는 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 다중 논리 유닛 시나리오 및 다중 작업 실행 시나리오에서 방법 및 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법은, 제어 장치(device controller)에 의해 호스트 장치(host device)로부터 제1 우선순위를 갖는 적어도 하나의 작업 명령(operation command)을 수신하되, 적어도 하나의 작업 명령은, 하나 또는 그 이상의 논리 유닛(logical unit)을 중지시키는 제어 장치를 지시하는 정보를 포함하고, 장치 내의 하나 또는 그 이상의 논리 유닛을 중지시키는 중지 명령(pause command)을 트리거(triggering)하고, 제1 우선순위를 갖는 작업 명령이 실행되면 중지되어 있던 하나 또는 그 이상의 논리 유닛의 실행을 재개하는 재개 명령(resume command)을 트리거하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치에 의해 트리거될 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛의 상기 재개 명령은, 적어도 하나의 상기 호스트 장치 또는 상기 제어 장치에 의해 트리거될 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령을 트리거하는 것은, 수신되는 복수 개의 작업 명령을 수락(accepting)하고, 현재 진행 중인 작업 사이클(ongoing operation cycle)이 완료되도록 기다리고, 하나 또는 그 이상의 백그라운드 동작(background operation)을 중지하고, 상기 중지 전에 상기 현재 진행 중인 작업에 의해 홀드(hold)되어 있는 하나 또는 그 이상의 리소스(resource)를 해제(releasing)하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치로부터 별도의 명령(separate command)으로 상기 제어 장치에 전송될 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 제1 우선순위를 갖는 작업 명령과 함께 단일 메시지(single message)로 상기 제어 장치에 전송될 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 기억 장치의 작업 관리 시스템은 호스트 장치(host device)로부터 제1 우선순위를 갖는 적어도 하나의 작업 명령(operation command)을 수신하는 제어장치로서, 상기 적어도 하나의 작업 명령은, 하나 또는 그 이상의 논리 유닛을 중지시키는 상기 제어 장치를 지시하는 정보를 포함하는 제어장치 및 상기 하나 또는 그 이상의 논리 유닛(logical unit)의 실행을 중지시키는 중지 명령(pause command)을 트리거(triggering)하고, 상기 제1 우선순위를 갖는 작업 명령이 실행되면 상기 중지된 하나 또는 그 이상의 논리 유닛의 실행을 재개하는 재개 명령(resume command)을 트리거하는 호스트 장치를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 중지 된 하나 또는 그 이상의 논리 유닛의 상기 재개 명령은, 적어도 하나의 상기 호스트 장치 또는 상기 제어 장치에 의해 트리거될 수 있다.
본 발명의 몇몇 실시예에서, 상기 제어 장치는, 수신되는 복수 개의 작업 명령을 수락(accepting)하고, 현재 진행 중인 작업 사이클(ongoing operation cycle)이 완료되도록 기다리고, 하나 또는 그 이상의 백그라운드 동작(background operation)을 중지하고, 상기 중지 전에 상기 현재 진행 중인 작업에 의해 홀드(hold)되어 있는 하나 또는 그 이상의 리소스(resource)를 해제(releasing)하는 것을 더 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치로부터 별도의 명령(separate command)으로 상기 제어 장치에 전송될 수 있다.
본 발명의 몇몇 실시예에서, 상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 제1 우선순위를 갖는 작업 명령과 함께 단일 메시지(single message)로 상기 제어 장치에 전송될 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 기억 장치의 작업 관리 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 논리 유닛의 중지 작업을 실행하는 메모리 시스템의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 호스트 장치에 의해 기억 장치의 작업을 관리하는 예시적인 방법을 도시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 본 발명을 구현하기 위한 다양한 구성요소들을 나타내는, 예시적인 전자 장치의 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 발명은 여러 논리 유닛(logical unit)의 현재 작업 시퀀스(operation sequence)를 방해/중단 없이 즉시 그리고 신속히 우선순위가 높은 작업/긴급 작업을 처리하는 방법을 제공한다. 본 명세서에 개시된 실시예는 높은 우선순위(high priority)를 갖는 작업(operation)의 실행 시간을 감소시킨다. 일반적으로, 하나의 논리 유닛에서 실행된 작업은 동일한 메모리 장치의 다른 논리 유닛에서 실행되는 작업의 속도에 영향을 미친다. 동일 메모리 제어 장치(memory device controller)의 여러 논리 유닛은 메모리 제어 장치와 메모리 장치 사이의 데이터 트래픽(data traffic) 뿐 아니라, 호스트와 메모리 제어 장치 사이의 데이터 트래픽을 공유한다. 따라서, 본 발명은 다른 논리 유닛의 트래픽을 제어함으로써 높은 우선순위를 갖는 작업을 빠르게 완료시킬 수 있다. 본 발명은 호스트로부터 트리거(trigger)될 때뿐만 아니라, 자동적으로 하나 이상의 논리 유닛을 중지 및 재개(resume)시키는 방법을 제공한다. 본 발명의 일 실시예에 따르면, 높은 우선순위를 갖는 또는 긴급한 작업이 수행될 때마다, 호스트 장치(host device)는 높은 우선순위를 갖는 작업의 반환 시간(turnaround time)을 증가시키기 위해 다른 논리 유닛들을 중지시키도록 중지 명령을 발한다. 나아가, 호스트 장치는 높은 우선순위를 갖는 작업 또는 긴급한 작업이 완료되면, 중지된 논리 유닛을 재개시킨다. 또한, 중지된 논리 유닛은 현재 진행 중(ongoing)인 높은 우선순위를 갖는 작업이 완료되면, 제어 장치에 의해 자동적으로 재개될 수 있다. 제어 장치(device controller)(104)가 하나 이상의 논리 유닛에 대한 중지 명령이나, 하나 이상의 논리 유닛을 중지 시키는 정보를 포함한 높은 우선순위를 갖는 명령(command)을 수신할 때, 제어 장치는 중지된 작업을 나중에 재개시키기 위해 중지된 논리 유닛의 상태(state)를 저장한다. 몇몇 실시예에 따르면, 본 명세서에 개시된 작업은 표준 스토리지 프로토콜(standard storage protocol)(SCSI)에 정의된 모든 명령/작업을 의미한다.
본 발명의 일 실시예에 따르면, 높은 우선순위를 갖는 프로세스(process)는 사진(picture)이 캡처(capture)되면 고해상도 이미지가 메모리 장치에 저장되어야 하는, 이동 전화의 카메라에 관련된 프로세스 또는 페이지 교체 요청(page-swap request)일 수 있다. 유사하게, 낮은 우선순위(low priority)를 갖는 프로세스는 파일 복사 또는 몇몇 다른 논리 유닛(LU)에 대한 캐시(cache) 동기화(synchronization)에 관한 프로세스일 수 있다. 일반적으로, 사진을 캡처한 사용자는 첫 번째 사진을 메모리 장치에 저장하는 데에 시간이 소요되기 때문에 즉시 다른 사진을 캡처하기 위해서는 기다려야만 한다. 장치의 메모리에 사진을 저장하는 것은 높은 우선순위를 갖는 작업으로서 간주될 수 있고, 이러한 작업은 본 발명의 도움으로 빠르게 실행될 수 있다. 예를 들어, 높은 우선순위를 갖는 프로세스는 페이지 아웃(page out)의 경우 가상 메모리(virtual memory)로부터 페이지를 읽는 프로세스, 사용자에 의해 보여질 이미지가 선택되면 그 이미지를 표시(display)하는 프로세스, 호스트의 저전력 상태(low power condition)(응급 상황, emergency condition)에서 실제 파일 데이터(actual file data) 후 메타 데이터(meta data)를 업데이트(update) 하는 프로세스, 몇몇 보안 문제를 위해 즉시 퍼지 작업(purge operation)을 수행하길 원하는 프로세스 및 보조 기억 장치(secondary storage device)에 상주하는 가상 메모리를 액세스(access)하는 것을 더 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 기억 장치의 작업 관리 시스템의 블록도이다. 도 1을 참조하면, 호스트 장치(102)는 개인용 컴퓨터, 랩톱(laptop), 이동 전화(mobile phone), 디지털 카메라, 태블릿(tablet), 패블릿(phablet), 디지털 레코딩 및 플레이백 장치(digital recording and play back device), PDA, 메모리 카드 리더기(memory card reader) 및 인터페이스 허브(interface hub)와 같은 컴퓨터 장치(computing device)일 수 있다. 호스트 장치(102)는 하나 또는 그 이상의 작업들을 실행하기 위한 메모리 장치(memory device)를 포함한다. 호스트 장치(102)는 버스(bus)(110)를 통하여 제어 장치(device controller)(104)에 결합된다. 제어 장치(104)는 메모리 유닛(memory unit)(108)과 복수의 논리 유닛(106a, 106b) 등을 포함한다.
본 발명의 몇몇 실시예에서, 호스트 장치(102)는 단일 명령(single command) 또는 명령 리스트(list of commands)와 같은 적어도 하나의 명령을 구현할 수 있다. 명령 리스트는 둘 이상의 명령들을 포함할 수 있다. 호스트 장치(102)는 또한, 버스(bus)(110)를 통해 전송되는 명령 메시지를 통해, 명령이 실행될 준비가 되어있고 데이터 버퍼(data buffer)와 상태 버퍼(status buffer)가 호스트 장치(102)의 메모리에 할당 되었다는 것을 메모리 유닛(108)에 통지한다. 메시지는 또한, 명령들이 있는 호스트 장치(102)의 메모리 내의 위치에 대한 포인터(pointer)(예컨대, 주소)를 포함할 수 있다. 일단 호스트 장치(102)가 명령이 실행될 준비가 되어 있다는 것을 메모리 유닛(108)에 통지하면(예컨대, 일단 호스트 장치 (102)가 명령이 준비되었다는 것을 메모리 유닛 (108)에 통지하면), 호스트 장치(102)는 메모리 유닛(108)에 대해 명령 리스트(list) 내의 명령들의 실행에 대한 제어를 포기한다. 호스트 장치(102)는 또한 호스트 장치(102)와 메모리 유닛(108)사이의 버스(110)에 대한 제어도 포기한다.
호스트 장치(102)는 입력 정보(input information)를 메모리 유닛(108)에 보낸다. 다시 말해서, 호스트 장치(102)는 읽기 요청, 쓰기 요청 또는 삭제 요청과 같은 입력 정보를 메모리 유닛(108)에 명시적으로(explicitly) 제공한다. 호스트 장치(102)는 메모리 컨트롤러(memory controller) 및 중앙 처리 장치(CPU) 또는 그래픽 처리 장치(GPU)를 포함하는 프로세싱 유닛(processing unit)으로서 구현될 수 있다. 입력 정보는 명령, 주소 및 우선순위 정보를 포함할 수 있다. 명령이 쓰기 명령일 때, 입력 정보는 또한 쓰기 데이터를 포함할 수 있다. 입력 정보는 패킷(packet)으로 전송될 수 있거나, 복수의 핀을 포함하는 미리 결정된 포트(port)를 통하여 전송될 수 있다. 호스트 장치(102)는 다수의 작업 시나리오(operations scenario)의 경우에 있어서 어떠한 특정 작업이 빠르게 실행되어야 하는지 결정하는 장치이다. 메모리 유닛(108)은 호스트 장치(102)로부터 수신한 입력 정보에 따라 데이터를 읽고, 쓰고, 혹은 삭제할 수 있다.
작업 명령이 호스트 장치(102)로부터 수신될 때, 제어 장치(104)는 수신된 작업 명령의 우선순위가 높고, 하나 이상의 논리 유닛을 중지시키는 정보가 포함되어 있는지 결정한다. 만약 제어 장치(104)가, 수신된 작업 명령의 우선순위가 높고, 중지에 대한 정보를 가지고 있다는 것을 찾아내면, 제어 장치(104)는 언급된 논리 유닛을 중지 시키고, 높은 우선순위를 갖는 작업 명령이 완료 되면 다시 중지된 논리 유닛들을 재개시킨다. 다른 논리 유닛을 중지시키기 전에, 제어 장치(104)는 논리 유닛의 현재 실행중인 작업의 작업 사이클(operation cycle)이 완료되기를 기다리고, 논리 유닛의 상태를 중지로 변경시키기 전에 그 작업이 특정 작업에 의해 홀드(hold)되어 있던 모든 리소스(resource)를 해제시켰는지 확인한다. 논리 유닛이 중지 된 동안, 제어 장치(104)는 수신되는 복수 개의 작업을 수락하지만, 백그라운드 작업(background operation)을 비롯한 이러한 수신되는 작업들을 처리하는 것을 중지한다. 이는 NAND와 시스템 메모리(system memory)를 액세스하는 데이터 트래픽을 감소시킨다. 중지된 논리 유닛은 호스트 장치(102)에 대해 어떠한 데이터-인 패킷(data-in packet)이나 RTT 패킷(packet)도 전송하지 않을 것이다.
본 발명의 몇몇 실시예에서, 하나 이상의 논리 유닛의 중지 작업은 호스트 장치(102)에 의해 트리거된다. 이러한 상황에서, 호스트 장치(102)는 현재 처리중인 작업을 제어하고, 그 결과 데이터 트래픽이 감소하며, 필요할 때마다 즉시 그리고 신속히 높은 우선순위를 갖는 작업이 실행된다. 또한, 이러한 경우에, 하나 이상의 논리 유닛의 중지 작업이 호스트 장치(102)에 의해 트리거될 때, 하나 이상의 논리 유닛의 재개 작업(resume operation)은 하나 이상의 논리 유닛의 중지 작업의 지시에 따라 호스트 장치(102)에 의해 트리거될 수 있거나, 자동 작업(automation action)이 될 수 있고, 그 반대의 경우도 마찬가지이다.
본 발명의 몇몇 실시예에서, 작업은 읽기, 쓰기, 검증, 캐시 동기화(synchronize cache), 메모리 유닛(108)에 발급된 유닛을 포맷(format)하는 것을 포함할 수 있지만, 이에 제한되는 것은 아니다.
본 발명의 몇몇 실시예에 따르면, 작업 사이클(operation cycle)은 다음과 같이 정의된다. 만약 논리 유닛의 읽기 작업이 중지되고자 하는 경우를 고려해보면, 제어 장치(104)는 NAND 플래시(flash)로부터 고정된 일정량의 데이터를 읽고, 데이터 패킷(data packet)을 형성하고, 호스트 장치(102)에 데이터 패킷을 전송한다. 이러한 절차는 제어 장치(104)가 요구된 양의 데이터 전송을 완료할 때까지 수행된다. 고정된 일정량의 데이터를 읽고, 데이터-인 패킷을 형성하고, 호스트 장치(102)에 데이터 패킷을 전송하는 프로세스는, 하나의 작업 사이클로 간주된다. 논리 유닛에서 실행되는 다른 작업들에 대한 작업 사이클도 유사하게 정의된다. 어떠한 작업 사이클 종료 후, 새로운 작업 사이클 개시 전에, 제어 장치(104)는 작업의 상태를 저장한다. 예를 들어, 만약 읽기 요청의 크기가 1MB이고, 데이터-인(data-in)의 최대 크기가 32k/64k이면, 요청을 완료하기 위해 32/16 사이클이 존재한다. 작업의 정보는 논리 유닛 큐(queue)에 엔트리(entry)로서 저장된다. 앞서 언급된 읽기 요청을 고려하면, LU 큐의 엔트리는, 시작 LBA(X), LBA의 수(Y) 및 몇몇 다른 정보들과 관련된 정보와 대응된다. 읽기 작업의 다섯 번째 사이클 후에, 제어 장치(104)가 z LBA를 읽고, 이러한 LBA에 대해 데이터-인 패킷을 전송하는 것을 고려한다. 다섯 번째 사이클이 완료된 후에, 만약 제어 장치(104) 또는 호스트 장치(102)가 작업을 중지하길 원한다면, 작업의 상태는 저장되어야 한다. Z LBA의 데이터 전송을 완료한 후, 이 정보는 LU 큐 내의 상응하는 엔트리에 업데이트된다. LU 큐 엔트리를 업데이트 할 때, 제어 장치(104)는 다른 작업을 처리한다. 여기서, 중지 작업은 시작 LBS(X-Z) 및 LBA의 수(Y-Z)와 함께 새로운 읽기 작업으로 취급된다.
만약 제어 장치(104)가 중지된 논리 유닛을 재개시키길 원한다면, 제어 장치(104)는 LU 큐의 엔트리를 읽고, 논리 유닛에서의 작업 수행을 시작한다. 이것은 논리 유닛에 속하는 새로운 작업 처리와 유사하다. 일단 특정 작업의 중지가 호스트로부터 요청되면, 제어 장치(104)는 현재 실행중인 사이클이 완료되기를 기다리고, 논리 유닛의 상태를 중지 상태로 변경하기 전에, 현재 실행 중인 사이클과 관련된 작업이 특정 작업에 의해 홀드되어 있던 모든 리소스를 해제시켰는지 확인한다. 따라서, 논리 유닛의 중지 및 재개의 핵심적인 부분은, 사이클 정의 및 작업을 재개하기 위해 저장된 추가 정보이다.
본 발명의 몇몇 실시예에 따르면, 논리 유닛의 중지 및 재개 작업은 상태(추가 정보의 2-4 바이트)를 저장하기 위해 논리 유닛 큐의 같은 엔트리를 사용하기 때문에, 현재 실행 중인 작업의 상태를 저장하기 위한 그 어떤 대량의 추가 리소스도 요구하지 않는다. 또한, 재개는 새로운 작업 처리와 유사하다. 작업의 재개는 중지 동안 저장된 추가 정보와 함께 실행된다. 요구되는 정보를 저장하기 위해 소모되는 시간은 매우 최소화 된다. (거의 무시할 수 있다.) 따라서, 제어 장치(104)는 특정 작업을 자동적으로, 그리고 호스트 장치(102)로부터의 필요에 따라 중지 및 재개하기 위한 추가 지능을 요한다.
도 1을 참조하면, 제어 장치(104)가 병렬로 두 개의 논리 유닛을 처리하는 동안 높은 우선순위를 갖는 작업이 대기 모드에 있는 시나리오가 도시되어 있다. 비록 높은 우선순위를 갖는 작업이 실행될 기회를 얻는다 해도, 이 작업은 LU1과 데이터 트래픽을 공유해야 한다. 이것은 높은 우선순위를 갖는 작업의 실행 시간을 증가시킬 것이다. 이러한 시나리오는 높은 우선순위를 갖는 작업이 더 긴 실행 시간을 갖는 종래의 시스템에서 발생할 수 있다.
도 2는 본 발명의 일 실시예에 따른 논리 유닛의 중지 작업을 실행하는 메모리 시스템의 블록도이다. 도 2를 참조하면, 두 개의 논리 유닛은 다른 논리 유닛이 중지된 후, 높은 우선순위를 갖는 작업이 실행됨과 동시에 제어 장치(104)에 의해 병렬로 처리된다. 높은 우선순위를 갖는 작업 또는 명령이 수신되는 경우 중지 작업을 트리거하기 전에, 제어 장치(104)는 수신되는 요청을 수락하지만, 이러한 수신되는 작업 및 중지된 논리 유닛의 백그라운드 작업의 처리를 중지 시킨다.
또한, 제어 장치(104)는 논리 유닛을 중지시키기 전에 논리 유닛에서 현재 실행중인 작업 사이클이 완료되기를 기다린다. 일단 현재 실행중인 작업이 거의 완료되면, 제어 장치(104)는 논리 유닛을 중지 시킬지, 작업이 완료되도록 놔둘지에 대한 지능적인 결정을 해야 한다. 논리 유닛을 중지시키기 위해, 중지 상태에서 미리 정의된 시간 후에 논리 유닛을 재개시키기 위한 최소한의 추가 정보가 저장된다. 논리 유닛이 중지 중에, 제어 장치(104)는 중지된 논리 유닛이 어떤 리소스도 홀드하지 않음을 확인한다. 일단 제어 장치(104)가 모든 다른 작업들이 완료되었음을 판정하면, 호스트 장치(102)로부터 어떠한 제한이 없는 한, 제어 장치(104)는 중지된 논리 유닛을 자동적으로 재개시킨다. 도 2에서는, 높은 우선순위를 갖는 작업의 데이터 트래픽을 감소시키기 위해, 메모리 제어 장치의 다른 논리 유닛을 중지 시킨 후 높은 우선순위를 갖는 작업이 실행될 때의 시나리오를 도시하고 있다.
본 발명의 몇몇 실시예에 따르면, 단일 논리 유닛 시나리오의 경우, 일단 높은 우선순위를 갖는 작업이 처리 시간(processing time)을 획득하면, 이 특정 작업은 다른 작업과 리소스 및 트래픽을 공유하지 않는다. 그러나, 다중 논리 유닛 시나리오의 경우, 높은 우선순위를 갖는 작업은 다른 논리 유닛의 작업과 트래픽 및 몇몇의 다른 리소스를 공유한다. 트래픽은 메모리 유닛(108)과 호스트 장치(102)사이의 데이터 트래픽 및 메모리 유닛(108)과 NAND플래시 사이의 데이터 트래픽이다.
도 3은 본 발명의 일 실시예에 따른 호스트 장치에 의해 기억 장치의 작업을 관리하는 예시적인 방법을 도시한 순서도이다. 단계(302)에서, 제어 장치(104)는 높은 우선순위 및 하나 또는 그 이상의 논리 유닛을 중지시키는 정보를 갖는 적어도 하나의 작업 명령을 호스트 장치(102)로부터 수신한다. 단계(304)에서, 장치는 하나 또는 그 이상의 논리 유닛을 중지시키는 정보를 갖는 작업을 수신하고, 하나 또는 그 이상의 논리 유닛을 중지시키기 위한 준비를 한다. 단계(306)에서, 중지 명령은 하나 또는 그 이상의 논리 유닛을 중지 시키기 위해 트리거된다. 논리 유닛의 중지 명령을 트리거하는 방법은, 수신되는 복수개의 작업을 수락하고, 현재 실행중인 작업 사이클이 완료되기를 기다리고, 하나 이상의 백그라운드 작업을 중지 시키고, 논리 유닛을 중지시키기 전에 현재 실행중인 작업에 의해 홀드되어 있는 하나 또는 그 이상의 리소스를 해제시키는 것을 제공한다. 단계(308)에서는, 일단 높은 우선순위의 작업 명령이 실행되면 중지 되어 있던 하나 이상의 논리 유닛의 실행을 재개시키기 위해 재개 명령이 트리거된다.
도 4는 본 발명의 일 실시예에 따른 본 발명의 실시예를 구현하기 위한 다양한 구성요소들을 나타내는, 예시적인 컴퓨터 장치(400)의 블록도이다. 컴퓨터 장치(400)는 데스크탑 컴퓨터(desktop computer), 랩톱(laptop computer) 또는 스마트폰(smart phone), 테블릿 컴퓨터(tablet computer), 패블릿(Phablet) 등과 같은 컴퓨터 장치일 수 있다. 컴퓨터 장치(400)는 명확성을 위해 도 4에는 나타나지 않은 추가적인 구성요소를 포함할 수 있다. 예를 들어, 컴퓨터 장치(400)가 전화를 걸 수 있는 장치일 때, 마이크 및 스피커 또한 포함할 수 있다. 컴퓨터 장치(400)는 컴퓨터 장치(400)의 구성요소에 전원을 공급하는 배터리(battery) 또한 포함할 수 있다. 컴퓨터 장치(400)는 사용자 인터페이스(user interface) 구성요소, 예컨대, 키패드(keypad), 트랙볼(trackball), 마우스(mouse) 또는 사용자가 컴퓨터 장치(400)와 상호작용 할 수 있도록 하는 다른 사용자 인터페이스(user interface), 또한 포함할 수 있다. 또한, 도 4에 도시된 컴퓨터 장치(400)의 구성요소들은 컴퓨터 장치(400)의 모든 실시예에서 필요하지 않을 수 있다.
도 4를 참조하면, 컴퓨터 장치(400)는 제어 장치(104), 네트워크 인터페이스(network interface)(402), 전원공급부(power supply unit)(404), 기억 장치(storage device)(410), 메모리(memory)(408) 및 I/O 장치(I/O device)(406)을 포함한다.
제어 장치(104)는 복수개의 논리 게이트를 실행하거나, 하드웨어 형태 또는 펌웨어(firmware) 형태로 구현된 명령을 제어하고, 호스트 장치(102)가 내린 명령에 따라 재기록 가능한 비휘발성 메모리(rewritable non-volatile memory)(408)에 각종 데이터 작업을 수행한다. 제어 장치(104)는 호스트 장치(102)로부터 높은 우선순위 및 하나 또는 그 이상의 논리 유닛을 중지 시키는 정보를 갖는 적어도 하나의 작업 명령을 수신하고, 하나 또는 그 이상의 논리 유닛을 중지 시키는 정보를 검증(verifying)하고, 높은 우선순위를 갖는 작업에 대한 데이터 트래픽을 감소시키기 위해 하나 또는 그 이상의 논리 유닛을 중지시키기 위한 중지 명령을 트리거하고, 일단 높은 우선순위를 갖는 작업 명령이 실행되면, 중지 되어 있던 하나 또는 그 이상의 논리 유닛의 실행을 재개시키기 위한 재개 명령을 실행하도록 구성된다. 나아가, 제어 장치(104)는 페이지 아웃의 경우에는 가상 메모리로부터 페이지를 읽고, 보여질 이미지가 사용자에 의해 선택되면 이미지를 보여주고, 호스트 장치(102)의 저전력 상태에서 실제 파일 데이터의 실행 후 메타데이터를 업데이트하고, 긴급한 상황에서 보안 문제를 위한 퍼지 작업을 수행하고, 보조 기억 장치에 존재하는 가상 메모리로부터 데이터를 액세스 하도록 구성된다. 뿐만 아니라, 제어 장치(104)는 수신되는 복수개의 작업 명령을 수락하고, 현재 실행중인 작업 사이클이 완료되기를 기다리고, 하나 이상의 백그라운드 작업을 중지 시키고, 중지 전에 현재 실행중인 작업에 의해 홀드되어 있는 하나 이상의 리소스를 해제시키도록 구성된다.
네트워크 인터페이스(402)는 예컨대 근거리 통신망(local area network)과 같은 네트워크에 액세스를 제공하도록 구성된다. 네트워크 인터페이스(402)는, 예컨대, 하나 이상의 안테나를 나타낼 수 있는 안테나를 갖는 무선 네트워크 인터페이스(wireless network interface)를 포함할 수 있다. 하나의 실시예에서, 네트워크 인터페이스(402)는, 예컨대, IEEE 802.11b 및/또는IEEE 802.11g 표준(standard)에 부합하는 근거리 통신망에 액세스를 제공하거나, 및/또는 무선 네트워크 인터페이스는, 예컨대, 블루투스 표준(Bluetooth standards)에 부합하는 개인 영역 네트워크(personal area network)에 대한 액세스를 제공할 수 있다. 다른 무선 네트워크 인터페이스 및/또는 프로토콜(protocol) 또한 지원될 수 있다.
전원공급부(404)는 본 발명의 전력 관리 기능을 구현하기 위한 적당한 하드웨어(메모리를 포함한다) 및/또는 소프트웨어로 구성되어 있다.
I/O장치(406)는 하나 이상의 사용자 입력 장치 및 하나 또는 그 이상의 출력 장치, 예컨대, 마우스, 키보드, 디스플레이 및 프린터를 포함하거나 이들에 대해 액세스 할 수 있다. I/O장치(406)는 전술한 장치에 한정되지 않고, 다른 장치를 포함할 수 있다는 것을 이해해야 한다.
메모리(408)는 작업 중 컴퓨터 장치(400)에 정보를 저장하도록 구성될 수 있다. 몇몇 예시에서, 메모리(408)는 컴퓨터로 판독 가능한 기억 매체(computer-readable storage medium)로서 묘사될 수 있다. 메모리(408)는 컴퓨터의 전원이 꺼지면 저장된 내용을 유지하지 못하는 휘발성 메모리로서 묘사될 수 있다. 휘발성 메모리의 예시는, RAM(random access memory), DRAM(dynamic random access memory), SRAM(static random access memory) 및 기술분야에서 휘발성 메모리로 알려진 다른 형태의 것을 포함한다. 몇몇 예시에서, 메모리(408)는 제어 장치(104)에 의해 실행되는 프로그램 명령을 저장하기 위해 사용될 수 있다.
기억 장치(410)는 하나 또는 그 이상의 컴퓨터로 판독 가능한 기억 매체를 포함할 수 있다. 기억 장치(410)는 비휘발성 저장 매체를 포함할 수 있다. 이러한 비휘발성 저장 매체의 예에는, 마그네틱 하드 디스크(magnetic hard discs), 광디스크, 플로피 디스크(floppy disc), 플래쉬 메모리(flash memory), EPROM(electrically programmable memory) 또는 EEPROM(electrically erasable and programmable memory)의 형태를 포함할 수 있다. 게다가, 몇몇 실시예에서, 기억 장치(410)는, 비 일시적인 기억 매체(non-transitory storage medium)로 간주될 수 있다. ‘비 일시적(non-transitory)’이라는 용어는, 저장 매체(storage medium)가 반송파(carrier wave) 또는 전파 신호(propagated signal)에서 구현되지 않는다는 것을 의미할 수 있다. 그러나, ‘비 일시적(non-transitory)’이라는 용어는 기억 장치(410)가 이동 가능하지 않다(non-movable)는 의미로 해석되어서는 안된다. 몇몇 실시예에서, 기억 장치(410)는 메모리보다 많은 양의 정보를 저장하도록 구성될 수 있다. 특정 실시예에서, 비 일시적인 기억 매체는 시간이 지남에 따라 변화할 수 있는 데이터를 저장할 수 있다(예컨대, RAM또는 캐시).
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
102: 호스트 장치
104: 제어 장치
106a, 106b: 논리 유닛
110: 버스
108: 메모리
400: 컴퓨터 장치
402: 네트워크 인터페이스
404: 전원공급부
406: I/O 장치
408: 메모리
410: 기억 장치

Claims (10)

  1. 제어 장치(device controller)에 의해 호스트 장치(host device)로부터 제1 우선순위(high priority)를 갖는 적어도 하나의 작업 명령(operation command)을 수신하되,
    상기 적어도 하나의 작업 명령은, 하나 또는 그 이상의 논리 유닛(logical unit)을 중지시키는 상기 제어 장치를 지시하는 정보를 포함하고,
    장치 내의 상기 하나 또는 그 이상의 논리 유닛을 중지시키는 중지 명령(pause command)을 트리거(triggering)하고,
    상기 제1 우선순위를 갖는 적어도 하나의 작업 명령이 실행되면 상기 중지된 하나 또는 그 이상의 논리 유닛의 실행을 재개하는 재개 명령(resume command)을 트리거하는 것을 포함하는, 호스트 장치(host device)에 의해 기억 장치(storage device)의 작업(operation)을 관리하는 방법.
  2. 제 1항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치에 의해 트리거되는, 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법.
  3. 제 1항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛의 상기 재개 명령은, 적어도 하나의 상기 호스트 장치 또는 상기 제어 장치에 의해 트리거되는, 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법.
  4. 제 1항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령을 트리거하는 것은,
    수신되는 복수 개의 작업 명령을 수락(accepting)하고,
    현재 진행 중인 작업 사이클(ongoing operation cycle)이 완료되도록 기다리고,
    하나 또는 그 이상의 백그라운드 동작(background operation)을 중지하고,
    상기 중지 전에 상기 현재 진행 중인 작업에 의해 홀드(hold)되어 있는 하나 또는 그 이상의 리소스(resource)를 해제(releasing)하는 것을 포함하는, 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법.
  5. 제 1항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치로부터 별도의 명령(separate command)으로 상기 제어 장치에 전송되는, 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법.
  6. 제 1항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 제1 우선순위를 갖는 적어도 하나의 작업 명령과 함께 단일 메시지(single message)로 상기 제어 장치에 전송되는, 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법.
  7. 호스트 장치(host device)로부터 제1 우선순위(high priority)를 갖는 적어도 하나의 작업 명령(operation command)을 수신하는 제어 장치(device controller)로서,
    상기 적어도 하나의 작업 명령은, 하나 또는 그 이상의 논리 유닛(logical unit)을 중지시키는 상기 제어 장치를 지시하는 정보를 포함하는 제어 장치; 및
    상기 하나 또는 그 이상의 논리 유닛의 실행을 중지시키는 중지 명령(pause command)을 트리거(triggering)하고,
    상기 제1 우선순위를 갖는 적어도 하나의 작업 명령이 실행되면 상기 중지된 하나 또는 그 이상의 논리 유닛의 실행을 재개하는 재개 명령(resume command)을 트리거하는 호스트 장치를 포함하는, 기억 장치(storage device)의 작업(operation) 관리 시스템.
  8. 제 7항에 있어서,
    상기 중지 된 하나 또는 그 이상의 논리 유닛의 상기 재개 명령은, 적어도 하나의 상기 호스트 장치 또는 상기 제어 장치에 의해 트리거되는, 기억 장치의 작업 관리 시스템.
  9. 제 7항에 있어서,
    상기 제어 장치는,
    수신되는 복수 개의 작업 명령을 수락(accepting)하고,
    현재 진행 중인 작업 사이클(ongoing operation cycle)이 완료되도록 기다리고,
    하나 또는 그 이상의 백그라운드 동작(background operation)을 중지하고,
    상기 중지 전에 상기 현재 진행 중인 작업에 의해 홀드(hold)되어 있는 하나 또는 그 이상의 리소스(resource)를 해제(releasing)하는 것을 더 포함하는, 기억 장치의 작업 관리 시스템.
  10. 제 7항에 있어서,
    상기 하나 또는 그 이상의 논리 유닛에 대한 상기 중지 명령은, 상기 호스트 장치로부터 별도의 명령(separate command)으로 상기 제어 장치에 전송되는, 기억 장치의 작업 관리 시스템.
KR1020150072900A 2014-08-28 2015-05-26 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템 KR20160026651A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN14CH4205 2014-08-28
IN4205/CHE/2014 2014-08-28

Publications (1)

Publication Number Publication Date
KR20160026651A true KR20160026651A (ko) 2016-03-09

Family

ID=57123546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150072900A KR20160026651A (ko) 2014-08-28 2015-05-26 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20160026651A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979466A (zh) * 2022-04-22 2022-08-30 西安广和通无线通信有限公司 拍摄处理方法、装置和无线通信模组

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979466A (zh) * 2022-04-22 2022-08-30 西安广和通无线通信有限公司 拍摄处理方法、装置和无线通信模组
CN114979466B (zh) * 2022-04-22 2023-12-08 西安广和通无线通信有限公司 拍摄处理方法、装置和无线通信模组

Similar Documents

Publication Publication Date Title
WO2022156370A1 (zh) 一种基于fpga的dma设备及dma数据搬移方法
US9135059B2 (en) Opportunistic multitasking
US20180157445A1 (en) Method, device, and system for controlling data read/write command in nvme over fabric architecture
KR101662824B1 (ko) 고체 상태 드라이브 장치 및 그것의 구동 방법
EP2529308B1 (en) A system and method for read-while-write with nand memory device
US20200334145A1 (en) Storage device, computer system, and operation method of storage device configured to arbitrarily stop garbage collection
TWI712951B (zh) 電子存放裝置的任務管理方法、主機和存儲裝置
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
KR20160026651A (ko) 호스트 장치에 의해 기억 장치의 작업을 관리하는 방법 및 시스템
US20160062925A1 (en) Method and system for managing storage device operations by a host device
JP2015049675A (ja) 周辺機器制御装置および情報処理装置
US12019909B2 (en) IO request pipeline processing device, method and system, and storage medium
JP2007249635A (ja) データ転送装置及びデータ転送方法
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium
JP2016153986A (ja) 計算機資源使用制御装置
JP6584655B2 (ja) フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング
JP5231496B2 (ja) 情報処理装置及びそのサスペンド/リジューム方法
CN111414130B (zh) 计算节点系统及其数据获取方法以及电子设备
CN118277049A (zh) 一种介质接口控制器及命令处理方法
US20130212338A1 (en) Multicore processor
CN116097682A (zh) 一种响应用户访问请求的方法、装置和存储设备
JP2015018434A (ja) 印刷制御装置よびプログラム
AU2013205570A1 (en) Opportunistic multitasking
JP2013152545A (ja) アプリケーション実行装置、システム、及びプログラム