KR20190056513A - 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템 - Google Patents

메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템 Download PDF

Info

Publication number
KR20190056513A
KR20190056513A KR1020170153547A KR20170153547A KR20190056513A KR 20190056513 A KR20190056513 A KR 20190056513A KR 1020170153547 A KR1020170153547 A KR 1020170153547A KR 20170153547 A KR20170153547 A KR 20170153547A KR 20190056513 A KR20190056513 A KR 20190056513A
Authority
KR
South Korea
Prior art keywords
task
controller
target
memory device
generator
Prior art date
Application number
KR1020170153547A
Other languages
English (en)
Other versions
KR102491068B1 (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 KR1020170153547A priority Critical patent/KR102491068B1/ko
Priority to US15/914,915 priority patent/US10635351B2/en
Priority to CN201810298334.XA priority patent/CN109800065B/zh
Publication of KR20190056513A publication Critical patent/KR20190056513A/ko
Application granted granted Critical
Publication of KR102491068B1 publication Critical patent/KR102491068B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)

Abstract

본 발명의 일 실시예에 의한 반도체 장치는 다수의 태스크 생성부에 대한 목표 상태와 다수의 태스크 생성부의 현재 상태에 따라 다수의 태스크 생성부의 목표 처리비를 설정하는 태스크 제어부; 다수의 태스크 생성부에서 제공되는 다수의 태스크를 스케줄링하는 태스크 스케줄러; 및 목표 처리비와 다수의 태스크에 대한 현재 처리비에 따라 할당된 처리비를 결정하는 처리비 제어부를 포함하되, 태스크 스케줄러는 할당된 처리비에 따라 다수의 태스크를 스케줄링한다.

Description

메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템{SEMICONDUCTOR DEVICE FOR SCHEDULING TASKS FOR MEMORY DEVICE AND SYSTEM INCLUDIGN THE SAME}
본 발명은 메모리 장치에서 수행할 다수의 태스크를 스케줄링하는 반도체 장치와 이를 포함하는 시스템에 관한 것이다.
도 1은 종래의 시스템을 나타내는 블록도이다.
종래의 시스템은 다수의 태스크를 생성하는 다수의 태스크 생성부(1), 반도체 장치(10) 및 메모리 장치(30)를 포함한다.
메모리 장치(30)는 예를 들어 플래시 메모리 장치이다.
종래의 반도체 장치(10)는 태스크 스케줄러(11), 응답 버퍼(12), 제어기(20)를 포함한다.
태스크 스케줄러(11)는 다수의 태스크 생성부(1)로부터 제공되는 태스크를 수신하고 이를 스케줄링한다.
제어기(20)는 스케줄링 된 태스크에 대응하는 제어 명령을 생성하여 메모리 장치(30)를 제어한다.
응답 버퍼(12)는 메모리 장치(30)에서 출력되는 응답을 수신하고 이를 대응하는 태스크 생성부(1)에 제공한다.
다수의 태스크 생성부(1)는 읽기/쓰기 요청을 생성하는 호스트(1-1), 웨어 레벨 동작을 제어하는 웨어 레벨 제어기(1-2), 가비지 콜렉션을 제어하는 가비지 콜렉션 제어기(1-3) 등을 포함한다.
호스트(1-1)는 제 1 태스크 생성부(1-1), 웨어 레벨 제어기(1-2)는 제 2 태스크 생성부(1-2), 가비지 콜렉션 제어기(1-3)는 제 3 태스크 생성부(1-3)로 지칭할 수 있다.
종래의 반도체 장치(10)에서 태스크 스케줄러(11)는 다수의 태스크 생성부(1)에서 제공되는 다수의 태스크를 시간순서 등과 같이 미리 정해진 규칙에 따라 스케줄링을 수행한다.
이에 따라 종래의 반도체 장치는 특정한 종류의 태스크의 우선순위를 가변적으로 조절하기 어려운 문제가 있다.
KR 10-0746036 B1 KR 10-2009-0044927 A KR 10-2007-0111470 A KR 10-2010-0102283 A
본 기술은 메모리 장치에 대해서 다수의 태스크 생성부로부터 제공되는 다수의 태스크를 스케줄링하는 반도체 장치와 이를 포함하는 시스템을 제공한다.
본 기술은 태스크 생성부 별로 태스크에 대한 처리 비율을 가변적으로 제어하는 상태에서 스케줄링을 수행하는 반도체 장치와 이를 포함하는 시스템을 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 다수의 태스크 생성부에 대한 목표 상태와 다수의 태스크 생성부의 현재 상태에 따라 다수의 태스크 생성부의 목표 처리비를 설정하는 태스크 제어부; 다수의 태스크 생성부에서 제공되는 다수의 태스크를 스케줄링하는 태스크 스케줄러; 및 목표 처리비와 다수의 태스크에 대한 현재 처리비에 따라 할당된 처리비를 결정하는 처리비 제어부를 포함하되, 태스크 스케줄러는 할당된 처리비에 따라 다수의 태스크를 스케줄링한다.
본 발명의 일 실시예에 의한 시스템은 메모리 장치, 메모리 장치에 대한 다수의 태스크를 출력하는 다수의 태스크 생성부 및 다수의 태스크를 수신하여 메모리 장치를 제어하는 반도체 장치를 포함하되, 반도체 장치는 다수의 태스크 생성부에 대한 목표 상태와 다수의 태스크 생성부의 현재 상태에 따라 다수의 태스크 생성부의 목표 처리비를 설정하는 태스크 제어부; 다수의 태스크 생성부에서 제공되는 다수의 태스크를 스케줄링하는 태스크 스케줄러; 및 목표 처리비와 다수의 태스크에 대한 현재 처리비에 따라 할당된 처리비를 결정하는 처리비 제어부를 포함하되, 태스크 스케줄러는 할당된 처리비에 따라 다수의 태스크를 스케줄링한다.
본 기술에 의한 반도체 장치는 태스크 생성부 별로 처리 비율을 가변적으로 제어할 수 있다.
태스크의 종류에 따라 중요도가 가변적으로 변하는 상황에서 실시간으로 중요도가 높은 태스크 생성부에 대해서 처리 비율을 높임으로써 메모리 장치에 대한 처리 속도를 전반적으로 향상시킬 수 있다.
도 1은 종래의 시스템을 나타내는 블록도.
도 2는 본 발명의 일 실시예에 의한 시스템을 나타내는 블록도.
도 3은 태스크 생성부에서 제공되는 태스크의 종류와 이에 대응하는 상태 정보를 나타낸 도표.
도 4는 도 2의 제어기의 상세 블록도.
이하에서는 도면을 참조하여 본 발명의 실시예를 개시한다.
도 2는 본 발명의 일 실시예에 의한 시스템을 나타내는 블록도이다.
본 발명의 일 실시예에 의한 메모리 시스템은 다수의 태스크를 생성하는 다수의 태스크 생성부(1), 반도체 장치(100) 및 메모리 장치(30)를 포함한다.
본 실시예에서는 메모리 장치(30)로서 플래시 메모리 장치를 예로 들었으나 메모리 장치의 종류가 반드시 이에 한정되는 것은 아니다.
다수의 태스크 생성부(1)는 읽기 쓰기 요청을 출력하는 호스트(1-1), 웨어 레벨 동작을 요청하는 웨어 레벨 제어기(1-2), 가비지 콜렉션을 수행하는 가비지 콜렉션 제어기(1-3) 등을 포함한다.
호스트(1-1)는 제 1 태스크 생성부(1-1), 웨어 레벨 제어기(1-2)는 제 2 태스크 생성부(1-2), 가비지 콜렉션 제어기(1-3)는 제 3 태스크 생성부(1-3)로 지칭할 수 있다.
본 실시예에서는 위의 세 가지 종류의 태스크 생성부를 예로 들었으나 실시예에 따라서는 다른 종류의 태스크를 생성하는 태스크 생성부가 더 포함될 수 있다.
본 발명의 일 실시예에 의한 반도체 장치(100)는 태스크 스케줄러(110), 응답 버퍼(120), 처리비 제어부(130), 태스크 제어부(140), 제어기(200)를 포함한다.
태스크 스케줄러(110)는 다수의 태스크 생성부(1)에서 제공되는 다수의 태스크를 수신하고 이를 할당된 처리비를 고려하여 스케줄링을 수행한다.
예를 들어 할당된 처리비가 100:1:1인 경우 태스크 스케줄러(110)는 제 1 태스크 생성부(1-1), 제 2 태스크 생성부(1-2), 제 3 태스크 생성부(1-3)에서 제공되는 태스크들을 일정 시간 동안 100:1:1의 비율로 스케줄링할 수 있다.
처리비 제어부(130)는 태스크 제어부(140)에서 제공되는 목표 처리비와 현재 처리비를 관찰하여 할당된 처리비를 결정한다.
현재 처리비는 태스크 스케줄러(110)에서 출력되는 선택된 태스크가 어느 태스크 생성부에서 제공된 것인지 현재 시점을 기준으로 과거 일정한 시간 추적하여 결정할 수 있다.
처리비 제어부(130)는 목표 처리비와 현재 처리비를 비교하여 할당된 처리비를 증감할 수 있다.
처리비 제어부(130)는 제 1 태스크 생성부(1-1)의 할당 처리비를 결정하기 위하여 예를 들어 다음과 같은 수학식을 이용할 수 있다.
AS1(T) = γ × AS1(T-1) + δ × [ DS1(T) - OS1(T-1) ]
AS1(T)는 현재 시점에서 제 1 태스크 생성부(1-1)의 할당 처리비를 나타내고, AS1(T-1)는 직전 시점에서 제 1 태스크 생성부(1-1)의 할당 처리비를 나타내고, DS1(T)는 현재 시점에서 제 1 태스크 생성부(1-1)의 목표 처리비를 나타내고, OS1(T-1)는 직전 시점에서 제 1 태스크 생성부(1-1)의 현재 처리비를 나타낸다.
γ, δ는 비례 상수로서 이는 태스크 생성부에 따라 다른 값이 할당될 수 있다.
위의 수학식은 처리비 제어부(130)의 제어 동작의 일 예를 나타낸 것이다. 구체적인 제어 동작은 실시예에 따라 달라질 수 있으며 이에 따라 수학식의 구체적인 형태 역시 실시예에 따라 다르게 결정될 수 있다.
태스크 제어부(140)는 각 태스크 생성부에 대해서 목표 상태와 현재 상태를 참조하여 목표 처리비를 결정한다.
목표 상태와 현재 상태는 태스크 생성부에 따라 다른 것일 수 있다.
도 3은 태스크의 종류에 따른 상태 정보의 예를 나타낸 도표이다.
태스크의 종류는 호스트(1-1)에서 제공하는 호스트 요청, 웨어 레벨 제어기(1-2)에서 제공하는 웨어 레벨링 요청, 가비지 콜렉션 제어기(1-3)에서 제공하는 가비지 콜렉션 요청을 포함한다.
호스트 요청은 읽기 쓰기 요청으로서 호스트 요청시 대기 시간을 상태 정보로 사용할 수 있다.
이에 따라 제 1 태스크 제어부(140-1)는 목표 대기 시간과 제 1 태스크 생성부(1-1)에서 제공하는 현재 대기 시간을 참조하여 읽기 쓰기 요청에 대한 목표 처리비를 설정한다.
제 1 태스크 생성부(1-1)는 태스크 스케줄러(110)에 읽기 쓰기 요청을 전달하는 시각과 응답 버퍼(120)에서 응답을 수신하는 시각 사이의 시간을 통해 현재 대기 시간을 산정할 수 있다.
제 1 태스크 제어부(140-1)는 목표 대기 시간에 비하여 현재 대기 시간이 긴 경우 목표 처리비를 높이고 목표 대기 시간에 비하여 현재 대기 시간이 짧은 경우 목표 처리비를 낮출 수 있다.
제 1 태스크 제어부(140-1)는 목표 처리비를 결정하기 위하여 예를 들어 다음과 같은 수학식을 이용할 수 있다.
DS1(T) = α × DS1(T-1) + β × [ DST1(T) - CST1(T-1) ]
DST1(T)는 현재 시점에서 목표 대기 시간을 나타내고, CST1(T-1)는 직전 시점에서의 대기 시간을 나타내고, DS1(T)는 현재 시점에서의 목표 처리비를 나타내고, DS1(T-1)는 직전 시점에서의 목표 처리비를 나타낸다.
α, β는 비례 상수로서 이는 태스크 제어부에 따라 다른 값이 할당될 수 있다.
웨어 레벨 요청은 플래시 메모리 장치에서의 소거 횟수를 평준화시키는 동작으로서 플래시 메모리 장치에서의 최대 소거 횟수와 최소 소거 횟수의 차이를 상태 정보로 사용할 수 있다.
이에 따라 제 2 태스크 제어부(140-2)는 목표 차이와 제 2 태스크 생성부(1-2)에서 제공하는 현재 차이를 참조하여 웨어 레벨 요청에 대한 목표 처리비를 설정한다.
제 2 태스크 생성부(1-2)는 메모리 장치(30)의 블록별로 소거 횟수 정보를 관리할 수 있다.
제 2 태스크 제어부(140-2)는 목표 차이에 비하여 현재 차이가 큰 경우 목표 처리비를 높이고 목표 차이에 비하여 현재 차이가 작은 경우 목표 처리비를 낮출 수 있다.
가비지 콜렉션 요청은 플래시 메모리 장치에서의 프리 블록을 회수하는 동작으로서 플래시 메모리 장치에서 가용한 프리 블록의 개수를 상태 정보로 사용할 수 있다.
이에 따라 제 3 태스크 제어부(140-3)는 목표 프리 블록 개수와 제 3 태스크 생성부(1-3)에서 제공하는 현재 프리 블록 개수를 참조하여 가비지 콜렉션 요청에 대한 목표 처리비를 설정한다.
제 3 태스크 생성부(1-3)는 메모리 장치(30)의 프리 블록의 개수 정보를 관리할 수 있다.
제 3 태스크 제어부(1-3)는 목표 개수에 비하여 현재 개수가 큰 경우 목표 처리비를 낮추고 목표 개수에 비하여 현재 개수가 작은 경우 목표 처리비를 높일 수 있다
목표 상태 값의 설정은 시스템의 동작하는 도중에 자유롭게 변경될 수 있다.
예를 들어 미리 정해진 스케줄에 따라 목표 상태 값을 설정할 수 있으며 시스템에 대한 사용자 인터럽트 동작을 통해서도 목표 상태 값을 설정할 수 있다.
이와 같이 본 발명에서는 태스크의 종류별로 목표 상태 값을 조정함으로써 태스크 종류별로 스케줄링을 자유롭게 조절할 수 있다.
이를 통해 실시간으로 시스템의 성능을 자유롭게 조절할 수 있다.
도 4는 본 발명의 일 실시예에 의한 제어기(200)의 상세 블록도이다.
본 발명의 일 실시예에 의한 제어기(200)는 시퀀서(210), 채널 스케줄러(220), 명령 제어기(230)를 포함한다.
시퀀서(210)는 태스크를 수신하여 이에 대응하는 다수의 매크로 명령을 생성한다.
예를 들어 읽기 요청에 대응하는 매크로 명령은 활성화 명령, 데이터 명령, 상태 명령을 포함한다.
활성화 명령은 읽기 요청된 주소에 대해서 플래시 메모리 장치를 읽기 준비 상태로 한다.
데이터 명령은 플래시 메모리 장치의 해당 주소에서 데이터를 출력하도록 한다.
상태 명령은 플래시 메모리 장치의 해당 주소에 대해서 읽기 동작의 종료 여부를 표시한다.
채널 스케줄러(220)는 플래시 채널과 칩들을 효율적으로 사용하기 위하여 다수의 매크로 명령들의 처리 순서를 결정한다.
메모리 장치(30)는 다수의 플래시 칩들을 포함하며 이들의 다수의 채널에 연결될 수 있다.
예를 들어 특정 채널이 사용 중인 경우에는 다른 채널을 사용하도록 스케줄링을 수행할 수 있다.
명령 제어기(230)는 선택된 매크로 명령에 대응하는 마이크로 명령을 생성하여 메모리 장치(30)를 제어한다.
마이크로 명령은 플래시 칩을 직접 제어하기 위한 다수의 신호를 포함할 수 있다.
예를 들어 칩 활성화 신호(CE), 읽기 활성화 신호(RE), 쓰기 활성화 신호(WE), 데이터 신호(DQ), 데이터 스트로브 신호(DQS) 등이 포함될 수 있다.
이상은 본 발명의 실시예에 대한 개시일 뿐이므로 이상의 개시로 본 발명의 권리범위가 한정되는 것은 아니다. 본 발명의 권리범위는 특허청구범위에 문언적으로 기재된 범위와 그 균등범위로 정해진다.
1: 태스크 생성부
10, 100: 반도체 장치
11, 110: 태스크 스케줄러
12, 120: 응답 버퍼
130: 처리비 제어부
140: 태스크 제어부
200: 제어기
210: 플래시 동작 시퀀서
220: 플래시 채널 스케줄러
230: 플래시 명령 제어기
30: 메모리 장치

Claims (16)

  1. 다수의 태스크 생성부에 대한 목표 상태와 상기 다수의 태스크 생성부의 현재 상태에 따라 상기 다수의 태스크 생성부의 목표 처리비를 설정하는 태스크 제어부;
    상기 다수의 태스크 생성부에서 제공되는 다수의 태스크를 스케줄링하는 태스크 스케줄러; 및
    상기 목표 처리비와 상기 다수의 태스크에 대한 현재 처리비에 따라 할당된 처리비를 결정하는 처리비 제어부;
    를 포함하되,
    상기 태스크 스케줄러는 상기 할당된 처리비에 따라 상기 다수의 태스크를 스케줄링하는 반도체 장치.
  2. 청구항 1에 있어서, 상기 태스크 스케줄러에서 선택된 태스크에 따라 메모리 장치를 제어하는 명령을 생성하는 제어기를 더 포함하는 반도체 장치.
  3. 청구항 2에 있어서, 상기 제어기를 통해 제공되는 응답을 태스크 생성부에 제공하는 응답 버퍼를 더 포함하는 반도체 장치.
  4. 청구항 1에 있어서, 상기 처리비 제어부는 상기 현재 처리비가 상기 목표 처리비에 수렴하도록 상기 할당된 처리비를 결정하는 반도체 장치.
  5. 청구항 1에 있어서, 상기 태스크 제어부는 상기 현재 상태가 상기 목표 상태에 수렴하도록 상기 목표 처리비를 결정하는 반도체 장치.
  6. 청구항 1에 있어서, 상기 태스크 생성부는 메모리 장치에 대한 읽기 또는 쓰기 요청을 생성하는 제 1 태스크 생성부를 포함하고, 상기 태스크 제어부는 상기 제 1 태스크 생성부에 대한 목표 상태와 상기 제 1 태스크 생성부의 현재 상태를 고려하여 상기 제 1 태스크 생성부의 목표 처리비를 결정하는 제 1 태스크 제어부를 포함하는 반도체 장치.
  7. 청구항 6에 있어서, 상기 태스크 생성부는 상기 메모리 장치에 대한 웨어 레벨 동작을 제어하는 제 1 태스크 생성부, 상기 메모리 장치에 대한 가비지 콜렉션 동작을 제어하는 제 2 태스크 생성부를 더 포함하고,
    상기 태스크 제어부는 상기 제 2 태스크 생성부에 대한 목표 상태와 상기 제 2 태스크 생성부의 현재 상태를 고려하여 상기 제 2 태스크 생성부의 목표 처리비를 결정하는 제 2 태스크 제어부와 상기 제 3 태스크 생성부에 대한 목표 상태와 상기 제 3 태스크 생성부의 현재 상태를 고려하여 상기 제 3 태스크 생성부의 목표 처리비를 결정하는 제 2 태스크 제어부를 더 포함하는 반도체 장치.
  8. 청구항 2에 있어서, 상기 제어기는
    상기 태스크 스케줄러에서 출력되는 선택된 태스크를 다수의 매크로 명령으로 변환하는 시퀀서; 및
    상기 매크로 명령을 상기 메모리 장치를 직접 제어하는 마이크로 명령으로 변환하는 명령 제어기
    를 포함하는 반도체 장치.
  9. 청구항 8에 있어서, 상기 메모리 장치는 다수의 채널을 통해 상기 제어기에 연결되고, 상기 제어기는 상기 매크로 명령을 상기 채널을 고려하여 스케줄링하는 채널 스케줄러를 포함하고, 상기 명령 제어기는 상기 채널 스케줄러에서 선택된 매크로 명령을 마이크로 명령으로 변환하는 반도체 장치.
  10. 메모리 장치;
    상기 메모리 장치에 대한 다수의 태스크를 출력하는 다수의 태스크 생성부; 및
    상기 다수의 태스크를 수신하여 상기 메모리 장치를 제어하는 반도체 장치
    를 포함하되,
    상기 반도체 장치는
    상기 다수의 태스크 생성부에 대한 목표 상태와 상기 다수의 태스크 생성부의 현재 상태에 따라 상기 다수의 태스크 생성부의 목표 처리비를 설정하는 태스크 제어부;
    상기 다수의 태스크 생성부에서 제공되는 다수의 태스크를 스케줄링하는 태스크 스케줄러; 및
    상기 목표 처리비와 상기 다수의 태스크에 대한 현재 처리비에 따라 할당된 처리비를 결정하는 처리비 제어부;
    를 포함하되,
    상기 태스크 스케줄러는 상기 할당된 처리비에 따라 상기 다수의 태스크를 스케줄링하는 시스템.
  11. 청구항 10에 있어서, 상기 태스크 스케줄러에서 선택된 태스크에 따라 상기 메모리 장치를 제어하는 명령을 생성하는 제어기를 더 포함하는 시스템.
  12. 청구항 11에 있어서, 상기 제어기를 통해 제공되는 응답을 태스크 생성부에 제공하는 응답 버퍼를 더 포함하는 시스템.
  13. 청구항 10에 있어서, 상기 처리비 제어부는 상기 현재 처리비가 상기 목표 처리비에 수렴하도록 상기 할당된 처리비를 결정하는 시스템.
  14. 청구항 10에 있어서, 상기 태스크 제어부는 상기 현재 상태가 상기 목표 상태에 수렴하도록 상기 목표 처리비를 결정하는 시스템.
  15. 청구항 11에 있어서, 상기 제어기는
    상기 태스크 스케줄러에서 출력되는 선택된 태스크를 다수의 매크로 명령으로 변환하는 시퀀서; 및
    상기 매크로 명령을 상기 메모리 장치를 직접 제어하는 마이크로 명령으로 변환하는 명령 제어기
    를 포함하는 시스템.
  16. 청구항 15에 있어서, 상기 메모리 장치는 다수의 채널을 통해 상기 제어기에 연결되고, 상기 제어기는 상기 매크로 명령을 상기 채널을 고려하여 스케줄링하는 채널 스케줄러를 포함하고, 상기 명령 제어기는 상기 채널 스케줄러에서 선택된 매크로 명령을 마이크로 명령으로 변환하는 시스템.
KR1020170153547A 2017-11-17 2017-11-17 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템 KR102491068B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170153547A KR102491068B1 (ko) 2017-11-17 2017-11-17 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템
US15/914,915 US10635351B2 (en) 2017-11-17 2018-03-07 Semiconductor device for scheduling tasks for memory device and system including the same
CN201810298334.XA CN109800065B (zh) 2017-11-17 2018-04-04 针对存储器装置调度任务的半导体装置及包括其的***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153547A KR102491068B1 (ko) 2017-11-17 2017-11-17 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템

Publications (2)

Publication Number Publication Date
KR20190056513A true KR20190056513A (ko) 2019-05-27
KR102491068B1 KR102491068B1 (ko) 2023-01-19

Family

ID=66532375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153547A KR102491068B1 (ko) 2017-11-17 2017-11-17 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템

Country Status (3)

Country Link
US (1) US10635351B2 (ko)
KR (1) KR102491068B1 (ko)
CN (1) CN109800065B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200218994A1 (en) * 2019-01-08 2020-07-09 International Business Machines Corporation Generating a sequence rule
CN111356988B (zh) * 2020-02-21 2021-03-12 长江存储科技有限责任公司 用于调度半导体加工的方法和***

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100746036B1 (ko) 2006-02-23 2007-08-06 삼성전자주식회사 플래시 메모리를 제어하는 장치 및 방법
US20070234365A1 (en) * 2006-03-30 2007-10-04 Savit Jeffrey B Computer resource management for workloads or applications based on service level objectives
KR20070111470A (ko) 2005-01-20 2007-11-21 쌘디스크 코포레이션 플래시 메모리 시스템들에서 하우스키핑 동작들의 스케쥴링
KR20090044927A (ko) 2007-11-01 2009-05-07 주식회사 이스트후 낸드 플래시 메모리 제어장치
KR20100102283A (ko) 2009-03-11 2010-09-24 삼성전자주식회사 플래시 메모리 장치 및 그 제어 방법
KR20130056905A (ko) * 2010-09-24 2013-05-30 인텔 코오퍼레이션 승산-승산-누산 명령 수행
US20140156623A1 (en) * 2012-12-05 2014-06-05 Google Inc. Generating and displaying tasks
KR20140109939A (ko) * 2012-01-09 2014-09-16 마이크로소프트 코포레이션 Paas 자원들, 작업들 및 스케줄링의 분리 기법
US20150356518A1 (en) * 2014-06-10 2015-12-10 Oracle International Corporation Aggregate task system
KR20160128947A (ko) * 2016-10-24 2016-11-08 (주)씽크포비엘 컴퓨터 기반의 작업 현황 및 성과 관리 시스템 및 방법
US20160330075A1 (en) * 2015-05-05 2016-11-10 Citrix Systems, Inc. Systems and methods for integrating a device with a software-defined networking controller

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178147B2 (en) * 2001-09-21 2007-02-13 International Business Machines Corporation Method, system, and program for allocating processor resources to a first and second types of tasks
IL150911A0 (en) * 2002-07-25 2003-02-12 Sphera Technologies Ltd A method and apparatus for dynamically allocating and managing resources in a computerized system having multiple consumers
US20080295104A1 (en) * 2004-07-23 2008-11-27 Matsushita Electric Industrial Co., Ltd. Realtime Processing Software Control Device and Method
US8156500B2 (en) * 2005-07-01 2012-04-10 Microsoft Corporation Real-time self tuning of planned actions in a distributed environment
WO2007132424A2 (en) * 2006-05-17 2007-11-22 Nxp B.V. Multi-processing system and a method of executing a plurality of data processing tasks
CN101557346B (zh) * 2009-05-14 2011-04-06 中国人民解放军信息工程大学 轮询式分组排队输出调度方法及分组交换节点
US8782653B2 (en) * 2010-03-26 2014-07-15 Virtualmetrix, Inc. Fine grain performance resource management of computer systems
KR101135313B1 (ko) 2010-04-23 2012-04-17 성균관대학교산학협력단 요청 동작을 스케줄링하는 낸드 플래시 메모리 장치 및 방법
US9323319B2 (en) * 2011-06-29 2016-04-26 Nec Corporation Multiprocessor system and method of saving energy therein
US9262216B2 (en) * 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
US20130290972A1 (en) * 2012-04-27 2013-10-31 Ludmila Cherkasova Workload manager for mapreduce environments
US20150186830A1 (en) * 2014-01-01 2015-07-02 Bank Of America Corporation Service tracking analytics
KR101687762B1 (ko) 2014-09-25 2017-01-03 충남대학교산학협력단 저장 장치 및 그것의 커맨드 스케줄링 방법
CN105900064B (zh) * 2014-11-19 2019-05-03 华为技术有限公司 调度数据流任务的方法和装置
KR101655008B1 (ko) 2014-11-27 2016-09-06 숭실대학교산학협력단 실시간 멀티칩 플래시 저장장치 및 그 방법
US9729421B2 (en) * 2015-03-25 2017-08-08 International Business Machines Corporation Outcome-based software-defined infrastructure
KR102467032B1 (ko) 2015-10-08 2022-11-14 삼성전자주식회사 메모리 스케줄링 방법 및 메모리 시스템의 동작방법
US10120426B2 (en) * 2015-12-09 2018-11-06 Research & Business Foundation Sungkyunkwan University Thermal management apparatus and method using dynamic thermal margin, and semiconductor processor device, non-volatile data storage device and access control method using the same
US9940175B2 (en) * 2016-03-31 2018-04-10 International Business Machines Corporation Joint network and task scheduling
US10324755B2 (en) * 2016-10-06 2019-06-18 International Business Machines Corporation Task scheduling using improved weighted round robin techniques
EP3343351B1 (en) * 2016-12-28 2023-04-26 Waseda University Parallel program generating method and parallelization compiling apparatus
US20180255122A1 (en) * 2017-03-02 2018-09-06 Futurewei Technologies, Inc. Learning-based resource management in a data center cloud architecture
US10387203B2 (en) * 2017-04-26 2019-08-20 Bank Of America Corporation Machine learning task compartmentalization and classification
US11573831B2 (en) * 2017-06-20 2023-02-07 International Business Machines Corporation Optimizing resource usage in distributed computing environments by dynamically adjusting resource unit size
US10481819B2 (en) * 2017-10-30 2019-11-19 Micron Technology, Inc. Memory devices with multiple sets of latencies and methods for operating the same

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070111470A (ko) 2005-01-20 2007-11-21 쌘디스크 코포레이션 플래시 메모리 시스템들에서 하우스키핑 동작들의 스케쥴링
KR100746036B1 (ko) 2006-02-23 2007-08-06 삼성전자주식회사 플래시 메모리를 제어하는 장치 및 방법
US20070234365A1 (en) * 2006-03-30 2007-10-04 Savit Jeffrey B Computer resource management for workloads or applications based on service level objectives
KR20090044927A (ko) 2007-11-01 2009-05-07 주식회사 이스트후 낸드 플래시 메모리 제어장치
KR20100102283A (ko) 2009-03-11 2010-09-24 삼성전자주식회사 플래시 메모리 장치 및 그 제어 방법
KR20130056905A (ko) * 2010-09-24 2013-05-30 인텔 코오퍼레이션 승산-승산-누산 명령 수행
KR20140109939A (ko) * 2012-01-09 2014-09-16 마이크로소프트 코포레이션 Paas 자원들, 작업들 및 스케줄링의 분리 기법
US20140156623A1 (en) * 2012-12-05 2014-06-05 Google Inc. Generating and displaying tasks
US20150356518A1 (en) * 2014-06-10 2015-12-10 Oracle International Corporation Aggregate task system
US20160330075A1 (en) * 2015-05-05 2016-11-10 Citrix Systems, Inc. Systems and methods for integrating a device with a software-defined networking controller
KR20160128947A (ko) * 2016-10-24 2016-11-08 (주)씽크포비엘 컴퓨터 기반의 작업 현황 및 성과 관리 시스템 및 방법

Also Published As

Publication number Publication date
KR102491068B1 (ko) 2023-01-19
US20190155542A1 (en) 2019-05-23
US10635351B2 (en) 2020-04-28
CN109800065B (zh) 2023-05-05
CN109800065A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
US10514748B2 (en) Reactive power management for non-volatile memory controllers
US7350004B2 (en) Resource management device
US8307370B2 (en) Apparatus and method for balancing load in multi-core processor system
US9015451B2 (en) Processor including a cache and a scratch pad memory and memory control method thereof
US5802351A (en) Data interface
US10114553B2 (en) Method and device for scheduling virtual disk input and output ports
CN107272876B (zh) 用于管理多核片上***上的全局芯片功率的方法和装置
US20150261473A1 (en) Memory system and method of controlling memory system
US20110029787A1 (en) Methods and apparatus for power allocation in a storage system
US20050132145A1 (en) Contingent processor time division multiple access of memory in a multi-processor system to allow supplemental memory consumer access
CN110968261B (zh) 存储器***及其操作方法
CN106406134B (zh) 具备学习控制装置的伺服控制***
KR102430934B1 (ko) 서비스 하한 품질에 기초한 메모리 대역폭 스케줄링
JP2017062779A (ja) 環境的に調整されたスラックを割り当てるためのシステム及び方法
KR102491068B1 (ko) 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템
US20080162855A1 (en) Memory Command Issue Rate Controller
CN109788325B (zh) 视频任务分配方法及服务器
JP2022528349A (ja) データ記憶用の装置、方法及び読み取り可能な媒体
JP6123830B2 (ja) 情報処理装置、電力制御方法、プログラム、制御装置
US20200104057A1 (en) Control device for dynamically allocating storage space and data storage device including the control device
JPH02118842A (ja) 多使用者コンピュータ用ダイナミック負荷平衡
JP2022527907A (ja) データ伝送装置、方法及び読み取り可能な記憶媒体
JP2007510229A (ja) サービス品質モデルを確立するための方法と装置
JP2017199349A (ja) ラックシステムにおける最適化、および、自動制御のファン制御メカニズム
JP2016045563A (ja) Nandバックグラウンド処理制御装置

Legal Events

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