KR20160046148A - 데이터 처리 시스템 및 이의 동작 방법 - Google Patents

데이터 처리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20160046148A
KR20160046148A KR1020140141691A KR20140141691A KR20160046148A KR 20160046148 A KR20160046148 A KR 20160046148A KR 1020140141691 A KR1020140141691 A KR 1020140141691A KR 20140141691 A KR20140141691 A KR 20140141691A KR 20160046148 A KR20160046148 A KR 20160046148A
Authority
KR
South Korea
Prior art keywords
data
critical
write operation
area
memory
Prior art date
Application number
KR1020140141691A
Other languages
English (en)
Other versions
KR102254101B1 (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 KR1020140141691A priority Critical patent/KR102254101B1/ko
Priority to US14/791,714 priority patent/US9836220B2/en
Publication of KR20160046148A publication Critical patent/KR20160046148A/ko
Application granted granted Critical
Publication of KR102254101B1 publication Critical patent/KR102254101B1/ko

Links

Images

Classifications

    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 데이터 처리 시스템의 동작방법은, 호스트(Host)의 어플리케이션 영역에서, 제1 프로세스가 크리티컬 프로세스(Critical process)에 해당하는지 여부를 나타내는 프로세스 정보를 상기 호스트의 커널영역으로 전송하는 단계 및 상기 커널영역에서, 상기 프로세스 정보를 기반으로 상기 제1 프로세스를 상기 크리티컬 프로세스로 분류된 경우, 상기 제1 프로세스 수행에 필요한 제1 데이터의 빠른 쓰기 동작을 위하여, 제1 빠른 쓰기 신호를 메모리 시스템에 제공하는 단계, 상기 제1 프로세스가 논 크리티컬 프로세스(Non-critical process)로 분류된 경우, 상기 제1 데이터의 느린 쓰기 동작을 위하여, 제1 느린 쓰기 신호를 메모리 시스템에 제공하는 단계를 포함하고, 상기 빠른 쓰기 동작은 상기 느린 쓰기 동작보다 쓰기 속도가 빠른 것을 특징으로 한다.

Description

데이터 처리 시스템 및 이의 동작 방법{Data processing system and operating method of the same}
본 발명은 데이터 처리 시스템 및 이의 동작 방법에 관한 것으로서, 상세하게는 각각의 프로세스에 대한 각각의 데이터를 선택적으로 관리하고, 통합 메모리 장치를 포함하는 데이터 처리 시스템 및 이의 동작 방법에 관한 것이다.
빠른 속도의 휘발성 메모리(volatile memory)와 느린 속도의 비휘발성 메모리(non-volatile memory)의 메모리 게층 구조는 전통적으로 컴퓨터 시스템을 구성하였다. 상대적으로 빠른 속도의 데이터 입출력이 가능한 휘발성 메모리는 전원 공급이 차단되면 데이터가 모두 손실되므로, 상기 데이터를 안전하게 저장할 수 있는 비휘발성 메모리가 필요하다. 하지만, 이러한 메모리 계층 구조에서 휘발성 메모리로 구성되는 메인 메모리(main memory)와 비휘발성 메모리로 구성되는 보조 저장장치(secondary storage)의 성능 차이 및 블록 단위의 접근만이 가능한 보조 저장장치의 특성은 입출력이 많이 발생하는 시스템에서 성능을 저하시키는 주 요인으로 알려져 있다. 또한, 메인 메모리와 보조 저장장치의 용량이 커지면서 이들이 소모하는 에너지가 전체 시스템에서 큰 비중을 차지하고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 프로세스를 분류하고, 그 결과에 기반하여 프로세스를 수행하는 데 필요한 데이터를 선택적으로 관리하는 데이터 처리 시스템 및 이의 동작방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작방법은, 호스트(Host)의 어플리케이션 영역에서, 제1 프로세스가 크리티컬 프로세스(Critical process)에 해당하는지 여부를 나타내는 프로세스 정보를 상기 호스트의 커널영역으로 전송하는 단계 및 상기 커널영역에서, 상기 프로세스 정보를 기반으로 상기 제1 프로세스를 상기 크리티컬 프로세스로 분류된 경우, 상기 제1 프로세스 수행에 필요한 제1 데이터의 빠른 쓰기 동작을 위하여, 제1 빠른 쓰기 신호를 메모리 시스템에 제공하는 단계, 상기 제1 프로세스가 논 크리티컬 프로세스(Non-critical process)로 분류된 경우, 상기 제1 데이터의 느린 쓰기 동작을 위하여, 제1 느린 쓰기 신호를 메모리 시스템에 제공하는 단계; 를 포함하고, 상기 빠른 쓰기 동작은 상기 느린 쓰기 동작보다 쓰기 속도가 빠른 것을 특징으로 한다.
바람직하게는, 상기 메모리 시스템은, 통합 메모리 컨트롤러 및 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 통합 메모리 장치를 포함하고, 상기 제1 빠른 쓰기 신호에 응답하여, 상기 통합 메모리 컨트롤러가 제2 빠른 쓰기 신호를 상기 통합 메모리 장치에 제공하는 단계, 상기 제1 느린 쓰기 신호에 응답하여, 상기 통합 메모리 컨트롤러는 제2 느린 쓰기 신호를 상기 통합 메모리 장치에 제공하는 단계;를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 통합 메모리 장치가 제2 빠른 쓰기 신호를 수신한 경우, 상기 제1 데이터를 상기 제1 비휘발성 메모리에 저장하는 상기 빠른 쓰기 동작을 수행하는 단계, 상기 통합 메모리 장치가 제2 느린 쓰기 신호를 수신한 경우, 상기 제1 데이터를 상기 제2 비휘발성 메모리에 저장하는 상기 느린 쓰기 동작을 수행하는 단계; 를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 빠른 쓰기 동작의 수행을 완료한 경우, 프로세스의 수행 요청이 없는 유휴(idle) 상태 구간에서, 상기 제2 비휘발성 메모리에 상기 제1 비휘발성 메모리에 저장된 상기 제1 데이터의 쓰기 동작을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 어플리케이션 영역이, 상기 제1 프로세스 수행시에 동기적 쓰기 요청(Synchronous write request)을 하는 경우에는, 상기 제1 프로세스가 상기 크리티컬 프로세스임을 나타내는 상기 프로세스 정보를 상기 커널영역에 전송하고, 상기 동기적 쓰기 요청(Synchronous write request)을 하지 않는 경우, 상기 제1 프로세스가 상기 논-크리티컬 프로세스임을 나타내는 상기 프로세스 정보를 상기 커널영역에 전송하는 단계를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 제2 프로세스 수행에 필요한 제2 데이터의 쓰기 동작이 수행되는 단계;를 더 포함하고, 상기 어플리케이션 영역이 상기 제 1 프로세스에 우선순위를 설정하고, 상기 커널 영역은, 상기 제1 프로세스의 상기 제1 데이터의 쓰기 동작 수행이 완료된 후에, 상기 제2 데이터의 쓰기 동작이 수행되도록 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 프로세스가 상기 논 크리티컬 프로세스로 분류되고,상기 제2 프로세스는 상기 크리티컬 프로세스로 분류된 경우, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 단계를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 프로세스에 대한 쓰기 동작 수행 완료시, 상기 어플리케이션 영역이 상기 제1 프로세스를 상기 논 크리티컬 프로세스로 재분류하는 단계를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 제3 프로세스의 수행에 필요한 제3 데이터의 쓰기 동작이 수행되는 단계 및 상기 제1 프로세스의 상기 제1 데이터 쓰기 동작 수행이 완료된 후에, 상기 커널 영역 내에 생성된 상기 제2 프로세스에 상기 우선순위를 설정하여, 상기 제2 프로세스의 제2 데이터의 쓰기 동작을 수행하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 데이터 처리 시스템의 동작방법은, 호스트의 커널영역에서, 동작수행의 우선순위를 가지는 제1 프로세스를 논-크리티컬 프로세스(Non-critical process)로 분류하고, 상기 제1 프로세스 수행에 필요한 제1 데이터를 다수의 단위 데이터들로 변환하여, 제1 큐영역을 통하여 상기 다수의 단위 데이터들 중 일부를 메모리 장치로 전송하는 단계, 상기 커널영역에서, 상기 동작수행의 차순위를 가지는 제2 프로세스를 크리티컬 프로세스로 분류한 경우, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 단계 및 제2 큐영역을 통하여, 상기 다수의 단위 데이터들 중 나머지를 상기 통합 메모리 장치로 전송하는 단계;를 포함한다.
바람직하게는, 상기 제2 큐영역을 통하여, 상기 다수의 단위 데이터들을 모두 상기 메모리 장치로 전송한 후, 상기 커널영역에서 상기 제1 프로세스를 상기 논 크리티컬 프로세스로 재분류하는 단계를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제1 데이터의 전송 수행을 완료한 후, 상기 제2 프로세스 수행에 필요한 제2 데이터를 다수의 단위 데이터들로 변환하여, 상기 제2 큐영역을 통하여 상기 메모리 장치로 전송하는 단계를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 통합 메모리 장치는, 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하며, 상기 제1 큐영역을 통하여 상기 제2 비휘발성 메모리로 상기 단위 데이터를 전송하고, 상기 제2 큐영역을 통하여 상기 제1 비휘발성 메모리로 상기 단위 데이터를 전송하는 것을 특징으로 한다.
또한 바람직하게는, 상기 호스트의 어플리케이션 영역에서, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 것을 시스템콜 인터페이스를 이용하여 상기 커널영역에 제1 요청하는 단계, 상기 제1 요청에 응답하여, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하고, 상기 제1 요청에 의한 제1 재분류 정보를 저장하는 단계;를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 어플리케이션 영역에서, 상기 제1 데이터의 전송 수행을 완료한 후, 상기 시스템콜 인터페이스를 이용하여 상기 제1 프로세스를 상기 논크리티컬 프로세스로 재분류하는 것을 상기 커널영역에 제2 요청하는 단계, 상기 제2 요청에 응답하여, 상기 제1 프로세스를 상기 논크리티컬 프로세스로 재분류하고, 상기 제2 요청에 의한 제2 재분류 정보를 저장하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 실시예에 의한 데이터 처리 시스템은, 휘발성 메모리 및 저장 장치를 포함하는 통합 메모리 장치, 제1 프로세스 수행을 제어하며, 상기 제1 프로세스를 크리티컬 프로세스 및 논-크리티컬 프로세스 중 어느 하나로 분류하는 호스트 및 상기 제1 프로세스를 상기 크리티컬 프로세스로 분류한 경우, 상기 휘발성 메모리에 저장된 상기 제1 프로세스 수행에 필요한 제1 데이터를 상기 제1 비휘발성 메모리에 쓰기 동작을 수행하고, 상기 제1 프로세스를 상기 논-크리티컬 프로세스로 분류한 경우, 상기 제1 데이터를 상기 제2 비휘발성 메모리에 쓰기 동작을 수행하는 것을 제어하는 통합 메모리 컨트롤러를 포함하며, 상기 저장장치는 제1 비휘발성 메모리 및 싱기 제2 비휘발성 메모리보다 동작속도가 느린 제2 비휘발성 메모리를 포함하는 데이터 처리 시스템.
바람직하게는, 상기 호스트는, 상기 제1 프로세스의 수행 제어 후, 제2 프로세스의 수행을 제어하고, 상기 제1 프로세스가 상기 논-크리티컬 프로세스로 분류되고, 상기 제2 프로세스가 상기 크리티컬 프로세스로 분류된 경우, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하여, 상기 제1 프로세스 수행을 제어하며, 상기 통합 메모리 컨트롤러는, 상기 제1 데이터를 상기 제1 비휘발성 메모리에 쓰기 동작을 수행하는 것을 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 호스트는, 상기 제1 데이터를 상기 제1 비휘발성 메모리에 쓰기 동작 수행을 완료한 때에, 상기 제1 프로세스를 상기 논-크리티컬 프로세스로 재분류하고, 상기 제2 프로세스의 수행을 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 호스트는, 상기 제1 프로세스를 크리티컬 프로세스 또는 논-크리티컬 프로세스 중 어느 하나로 분류하는 프로세스 분류부를 포함하고,상기 프로세스 분류부는, 상기 제1 프로세스의 제1 데이터를 상기 저장장치에 동기적 쓰기 동작(Synchronous write)의 수행이 필요한 경우, 상기 제1 프로세스를 상기 크리티컬 프로세스로 분류하는 것을 특징으로 한다.
또한 바람직하게는, 상기 휘발성 메모리는 DRAM(Dynamic Random Access Memory)이며, 상기 제1 비휘발성 메모리는 RRAM(Resistance Random Access Memory), PRAM(Phase Change Random Access Memory), MRAM(Magnetic Random Access Memory), STT-MRAM, 및 FRAM(Ferroelectric Random Access Memory) 중 적어도 어느 하나를 포함하고, 상기 제2 비휘발성 메모리는 낸드 플래시 메모리(NAND Flash Memory), 노어 플래시 메모리(NORFlash Memory) 및 하드 디스크(Hard Disk) 중 적어도 어느 하나를 포함하는 것을 특징으로 한다.
상술한 바와 같은 본 발명에 따른 데이터 처리 시스템 및 이의 동작 방법에 따르면, 휘발성 메모리와 비휘발성 메모리를 포함하는 상기 데이터 처리 시스템에서, 프로세스를 일정한 기준에 기반하여 분류하고, 그 결과에 따라 상기 프로세스를 수행하는 데 필요한 데이터를 선택적으로 관리함으로써, 데이터 처리 시스템의 입출력 성능을 높일 수 있다.
도1 은 본 발명의 일 실시예에 따른 메모리 시스템(200)을 포함하는 데이터 처리 시스템(10)의 블록도이다.
도2 는 도1 의 호스트(100)의 소프트웨어 관점에서 일 구현예를 나타내는 블록도이다.
도3 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(300)을 나타내는 플로우차트이다.
도4 는 본 발명의 일 실시예에 따른 통합 메모리 장치(UMD)를 나타내는 블록도이다.
도5a 는 본 발명의 일 실시예에 따른 느린 쓰기 동작(SPW)을 수행하는 메모리 시스템(MSYS) 관련 블록도이다.
도5b 는 본 발명의 일 실시예에 따른 빠른 쓰기 동작(FPW)을 수행하는 메모리 시스템(MSYS) 관련 블록도이다.
도6 a, 6b, 6c 는 본 발명의 일 실시예에 따른 크리티컬 프로세스 재분류 동작을 수행하는 호스트(Host)의 소프트웨어 상의 블록도이다.
도7 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(400)을 나타내는 플로우 차트이다.
도8 은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작방법(500)을 나타내는 플로우 차트이다.
도9a, 9b, 9c 는 본 발명의 일 실시예에 따른 크리티컬 프로세스 동적 재분류 동작을 수행하는 호스트(Host)의 소프트웨어 상의 블록도이다.
도 10 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(600)을 나타내는 플로우 차트이다.
도11 은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작방법(700)을 나타내는 플로우 차트이다.
도12 는 본 발명의 일 실시예에 따른 메모리 시스템(1150)을 포함하는 컴퓨팅 시스템(1100)을 나타내는 블록도이다.
도13 은 본 발명의 일 실시예에 따른 메모리 카드(1200)를 나타내는 도면이다.
도 14은 도 1 의 통합 메모리 장치(UMD)를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도1 은 본 발명의 일 실시예에 따른 메모리 시스템(200)을 포함하는 데이터 처리 시스템(10)의 블록도이다.
도1 을 참조하면, 데이터 처리 시스템(10)은 호스트(100)와 메모리 시스템(200)을 포함할 수 있다. 데이터를 처리하는 기능을 갖는 각종 시스템에 도1 에 도시된 바와 같은 메모리 시스템(200)이 채용될 수 있다. 각종 시스템은 다양한 장치에 해당할 수 있으며, 예컨대 모바일 장치로서 스마트 폰이나 태블릿 등의 장치가 적용될 수 있다. 호스트(100)는 프로세서(110)를 포함할 수 있다. 또한, 호스트(100)는 모바일 장치 등에 장착되는 SoC(System On Chip) 형태의 프로세서(Processor)를 포함할 수 있으며, 또는 컴퓨터 시스템에 포함되는 중앙 처리 장치(CPU)를 포함할 수 있다. 또한, 프로세서(110)는 다양한 IP(Internet Protocol)들을 포함할 수 있으며, 상기 IP로서 외부의 메모리 시스템(200)을 제어하기 위한 메모리 장치 드라이버(미도시)를 포함할 수 있다. 호스트(100)는 메모리 시스템(200)과 통신하여 메모리 장치 드라이버를 통해 메모리 동작에 대한 명령(Command)을 전송하고 이에 대한 응답(Confirm)을 수신할 수 있다.
한편, 메모리 시스템(200)은 통합 메모리 컨트롤러(210)와 통합 메모리 장치(220)를 포함할 수 있다. 통합 메모리 컨트롤러(210)는 메모리 시스템(200)에서 어플리케이션의 실행을 위하여, 호스트(100)로부터 어플리케이션 실행을 위한 메모리 동작 관련된 명령(Command)을 수신하고, 이를 이용하여 내부 커맨드 및 내부 클록 신호를 생성하여 통합 메모리 장치(220)로 제공할 수 있다. 어플리케이션의 실행이란, 어플리케이션 내에 존재하는 프로세스들을 수행하는 것을 말하며, 프로세스의 수행을 위하여 통합 메모리 장치(220)는 내부 커맨드에 응답하여 프로세스 관련 데이터를 저장하거나, 내부 커맨드에 응답하여 독출 데이터를 통합 메모리 컨트롤러(210)로 제공할 수 있다. 통합 메모리 장치(220)는 휘발성 메모리 및 비휘발성 메모리를 포함하는 저장 장치를 포함할 수 있다. 예컨대 휘발성 메모리는 메인 메모리(Main Memory)로서, 호스트(110)가 원하는 프로세스(Process)의 수행에 필요한 데이터를 메인 메모리에 해당하는 휘발성 메모리에 쓰기 동작을 수행할 수 있다.
휘발성 메모리에 쓰여진 상기 데이터를 비휘발성 메모리에 쓰기 동작을 수행할 수 있으며, 휘발성 메모리는 예를 들면, DRAM(Dynamic random access memory)에 해당할 수 있으며, 전원이 꺼지면 데이터가 지워지는 반면, 비휘발성 메모리는는 전원이 꺼져도 지워지지 않고 저장될 수 있다. 비휘발성 메모리는 데이터 입출력 성능 등에 따라 구분되는 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함할 수 있다. 이후, 서술되는 제1 비휘발성 메모리는 제2 비휘발성 메모리보다 데이터 입출력 성능이 좋은 것을 전제로 하며, 일 실시예로, 제1 비휘발성 메모리에 대한 쓰기 동작이 제 2비휘발성 메모리에 대한 쓰기 동작보다 더 빠를 수 있다. 다만, 이는 발명의 일 실시예로 이에 국한되지 않으며, 제2 비휘발성 메모리가 제1 비휘발성 메모리보다 데이터 입출력 성능이 좋을 수 있으며, 더 나아가, 통합 메모리 장치는 제3, 제4 비휘발성 메모리 등의 다양한 종류의 비휘발성 메모리를 더 포함할 수도 있다.
본 발명의 실시예에 따르면, 호스트(100)와 메모리 시스템(200) 사이에서 프로세스를 수행하기 위하여 필요한 데이터의 제1 또는 제2 쓰기 동작을 수행하기 위한 명령이 송신될 수 있다. 일 실시예로, 어플리케이션의 실행을 위하여 다수의 프로세스가 수행될 수 있으며, 다수의 프로세스를 포함할 수 있으며, 각각의 프로세스에 따라 수행되는 쓰기 동작이 다를 수 있다. 제1 쓰기 동작은 프로세스 동작을 수행하기 위해 필요한 데이터를 통합 메모리 장치(220)의 제1 비휘발성 메모리에 쓰는 것에 해당할 수 있다. 또한, 제2 쓰기 동작은 프로세스 동작을 수행하기 위해 필요한 데이터를 통합 메모리 장치(220)의 제2 비휘발성 메모리에 쓰는 것에 해당할 수 있다. 통합 메모리 장치(220)의 휘발성 메모리에 상기 프로세스 동작을 수행하기 위해 필요한 데이터를 쓰기 또는 읽기 동작이 수행될 수 있으며, 이와 동기적 또는 비동기적으로 제1 및 제2 쓰기 동작이 수행될 수 있다. 제1 쓰기 동작은 휘발성 메모리에 저장된 데이터를 상기 제1 비휘발성 메모리에 쓰는 동작, 제2 쓰기 동작은 상기 제2 비휘발성 메모리에 쓰는 동작에 해당된다. 전술하였듯이, 제1 비휘발성 메모리는 제2 비휘발성 메모리보다 데이터 입출력 성능이 좋은 것을 전제하는바, 제1 쓰기 동작은 제2 쓰기 동작보다 더 빠르게 수행될 수 있으므로, 제1 쓰기 동작은 빠른 쓰기 동작(FPW), 제2 쓰기 동작은 느린 쓰기 동작(SPW)으로 지칭될 수 있다.
프로세스 동작 수행에 필요한 데이터의 제1쓰기 동작 및 제2 쓰기 동작 중 어느 것이 수행되는지 여부는 호스트(100)에서 판단하여, 메모리 시스템(200)에 상기 판단에 기반한 쓰기 동작 명령을 제공할 수 있다. 예를 들면, 각각의 프로세스를 수행하기 위해 제공되는 명령 등에 따라 상기 제1 쓰기 동작 및 제2 쓰기 동작 중 어느 하나를 선택할 수 있다. 호스트(100)가 프로세스 동작 수행에 필요한 데이터에 대해 빠른 쓰기 동작 수행을 선택한 경우, 호스트(100)는 제1 빠른 쓰기 신호(FPW_1)를 통합 메모리 컨트롤러(210)에 제공할 수 있다. 통합 메모리 컨트롤러(210)는 이에 응답하여, 제2 빠른 쓰기 신호(FPW_2)를 통합 메모리 장치(220)에 제공할 수 있다. 이때, 통합 메모리 장치(220)의 휘발성 메모리에 저장된 프로세스 동작 수행에 필요한 데이터는 제1 휘발성 메모리에 저장될 수 있다. 빠른 쓰기 동작(FPW)을 수행하기 위하여 호스트(100)가 제1 빠른 쓰기 신호(FPW_1)를 메모리 시스템(200)에 제공하여, 메모리 시스템(200)내에서 통합 메모리 컨트롤러(210)는 통합 메모리 장치(220)에 빠른 쓰기 동작(FPW)을 수행하도록 제2 빠른 쓰기 신호(FPW_2)를 제공할 수 있다.
호스트(100)가 프로세스 동작 수행에 필요한 데이터에 대해 느린 쓰기 동작 수행을 선택한 경우, 호스트(110)는 제1 느린 쓰기 신호(SPW_1)를 통합 메모리 컨트롤러(210)에 제공할 수 있으며, 통합 메모리 컨트롤러(210)는 이에 응답하여, 제2 느린 쓰기 신호(SPW_2)를 통합 메모리 장치(220)에 제공할 수 있다. 이때, 통합 메모리 장치(220)의 휘발성 메모리에 저장된 프로세스 동작 수행에 필요한 데이터는 제2 비휘발성 메모리에 저장될 수 있다.
느린 쓰기 동작(SPW)을 수행하기 위하여 호스트(100)가 제1 느린 쓰기 신호(SPW_1)를 메모리 시스템(200)에 제공하여, 메모리 시스템(200)내에서 통합 메모리 컨트롤러(210)는 통합 메모리 장치(220)에 느린 쓰기 동작(SPW)을 수행하도록 제2 느린 쓰기 신호(SPW_2)를 제공할 수 있다. 일 실시예로 빠른 쓰기 동작(FPW)과 느린 쓰기 동작(SPW)은 프로세스 동작 수행에 필요한 데이터가 휘발성 메모리에 쓰이는 동작과 동시에 수행될 수 있다. 이때, 통합 메모리 컨트롤러(210)는 일예로서, 호스트(100)에서 제공한 명령을 저장할 수 있는 DRAM 이나 SRAM(static random access memory) 등의 휘발성 메모리를 포함할 수 있다. 프로세스 정보를 기반으로 프로세스를 구분할 수 있는바, 프로세스 정보는 프로세스 특징을 포함할 수 있는데, 예를 들면, 프로세스 수행에 필요한 명령 등에 따라, 프로세스를 구분할 수 있고, 상기 구분에 기반하여 각각의 프로세스 수행에 필요한 데이터의 쓰기 동작을 선택하여, 데이터 처리 시스템의 성능을 향상시킬 수 있다.
다만, 이는 일 실시예로 프로세스 외에도 쓰레드(Thread)의 수행에 필요한 데이터에도 본 발명의 사상이 적용될 수 있으며, 서술의 편의를 위하여 프로세스를 기준으로 본 발명을 서술하도록 하겠다.
도2 는 도1 의 호스트(100)의 소프트웨어 관점에서 일 구현예를 나타내는 블록도이다.
도2 를 참조하면, 호스트(100)는 프로세서(미도시)를 더 포함할 수 있으며, 호스트(100)는 어플리케이션을 실행하기 위하여, 소프트웨어적인 구조상 어플리케이션 영역(110) 및 커널 영역(120)을 포함할 수 있다. 어플리케이션은 다수의 프로세스들을 포함할 수 있으며, 어플리케이션의 실행을 위하여 다수의 프로세스들의 수행이 필요하다. 이에, 어플리케이션 영역(110)은 각각의 프로세스의 역할, 프로세스들의 수행 순서, 프로세스의 수행시 파일 동기화 함수의 호출 여부에 대한 정보들을 포함하는 프로세스 정보를 수집하여 저장할 수 있으며, 이런 프로세스 정보(PI)는 커널 영역(120)에 제공할 수 있다.
본 발명의 일 실시예로, 프로세스 정보(PI)에는 프로세스가 크리티컬 프로세스 또는 논 크리티컬 프로세스에 해당하는지 여부를 나타내는 정보를 포함할 수 있다. 프로세스 수행시에 어플리케이션은 일 실시예로 파일 동기화 함수(Linux fsync)를 호출하여 프로세스의 수행에 필요한 데이터가 메인 메모리(main memory)에 쓰여지도록 하고, 이와 동기적으로 비휘발성 메모리에 상기 데이터가 일부 또는 모두가 쓰여질 때까지 다른 프로세스의 수행을 정지하는 때에, 수행되는 프로세스를 크리티컬 프로세스라고 일컫는다. 크리티컬 프로세스에 해당하지 않는 프로세스는 논 크리티컬 프로세스로 지칭할 수 있으며, 크리티컬 프로세스와는 달리 파일 동기화 함수(Linux fsync)등의 호출없이 프로세스의 수행에 필요한 데이터가 메인 메모리(main memory)에 쓰여지도록 하고, 일 실시예로 다른 프로세스의 수행이 없는 경우에 비동기적으로 비휘발성 메모리에 상기 데이터의 일부 또는 모두를 써서 저장할 수 있다. 어플리케이션 영역(110)은 프로세스 분류부(115)를 포함할 수 있으며, 프로세스 분류부(115)는 수행되는 프로세스가 크리티컬 프로세스인지 논 크리티컬 프로세스인지 분류하여, 이를 기반으로한 프로세스 정보(PI)를 생성하여, 커널 영역(120)에 제공할 수 있다. 또한, 어플리케이션 영역(110)이 프로세스 정보(PI)를 시스템 콜 인터페이스(system call interface)를 통하여 커널 영역(120)에 제공할 수 있다.
커널 영역(120)은 어플리케이션 실행을 위하여, 다수의 프로세스가 수행되는 가상의 공간에 해당하며, 수행되는 프로세스의 관리를 위한 자료 구조(Data Structure,125)를 포함할 수 있다. 자료구조(125)는 어플리케이션 영역(110)으로부터 수신한 프로세스 정보(PI)를 저장할 수 있다. 또한, 일 실시예로, 현재 수행되는 프로세스가 크리티컬 프로세스임을 나타내는 프로세스 정보(PI)를 커널 영역(120)이 수신한 경우, 자료구조(125)에 현재 수행되는 프로세스가 크리티컬 프로세스임을 저장할 수 있다. 이때, 상기 크리티컬 프로세스의 수행에 필요한 데이터를 통합 메모리 장치(UMD)에 빠른 쓰기 동작(FPW) 수행을 위하여, 통합 메모리 컨트롤러(UMC)에 제1 빠른 쓰기 신호(FPW_1)를 제공할 수 있다. 일 실시예로, 현재 수행되는 프로세스가 논 크리티컬 프로세스임을 나타내는 프로세스 정보(PI)를 커널 영역(120)이 수신한 경우, 자료구조(125)에 현재 수행되는 프로세스가 논 크리티컬 프로세스임을 저장할 수 있으며, 이때에는 상기 논 크리티컬 프로세스의 수행에 필요한 데이터를 통합 메모리 장치(UMD)에 느린 쓰기 동작(FPW) 수행을 위하여, 통합 메모리 컨트롤러(UMC)에 제1 느린 쓰기 신호(SPW_1)를 제공할 수 있다.
도3 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(300)을 나타내는 플로우차트이다. 도6 에서는 빠른 또는 느린 쓰기 동작 수행을 선택하기 위한 예가 설명된다.
도3 을 참고하면, 호스트 또는 프로세서는 어플리케이션 실행을 위하여, 어플리케이션 실행을 위해서 다수의 프로세스들의 수행을 요청할 수 있다(S310). 어플리케이션 영역(Application area)에서, 수행되는 프로세스의 정보를 수집하여 저장할 수 있으며, 이때 프로세스가 크리티컬 프로세스 또는 논 크리티컬 프로세스에 해당하는지 여부를 나타내는 정보를 포함할 수 있다. 이때, 크리티컬 프로세스인지를 분류하는 기준은 프로세스의 수행등에 관련한 데이터의 동기적 쓰기 요청이 필요한지 여부 등에 대한 것일 수 있으며, 이는 어플리케이션 영역에서 판단될 수 있다(S320). 동기적 쓰기 요청은 프로세스 수행시에 어플리케이션은 일 실시예로 파일 동기화 함수(Linux fsync)를 호출하여 프로세스의 수행에 필요한 데이터가 메인 메모리(main memory)에 쓰여지도록 하고, 이와 동기적으로 상기 데이터의 일부 또는 모두를 비휘발성 메모리에 쓰는 동작을 요청하는 것을 지칭할 수 있다.
이러한 동기적 쓰기 요청이 필요한 경우에는 당해 프로세스를 크리티컬 프로세스로 분류하게 된다(S330). 어플리케이션 영역이 이와 같은 프로세스 정보(PI)를 커널 영역에 제공할 수 있다. 이 후, 커널 영역은 자료 구조에 프로세스 정보(Process Information/PI)를 저장하고, 이를 기반으로 빠른 쓰기 동작(fast path_writes/FPW)을 수행하기 위한 신호를 메모리 시스템에 제공할 수 있다. 이에, 메모리 시스템은 빠른 쓰기 동작(FPW)을 수행한다(S340). 또한, 동기적 쓰기 요청이 필요없는 경우에는 당해 프로세스를 논 크리티컬 프로세스로 분류하게 된다(S350). 어플리케이션 영역이 이와 같은 프로세스 정보(PI)를 커널 영역에 제공할 수 있다. 이 후, 커널 영역은 자료 구조에 프로세스 정보(PI)를 저장하고, 이를 기반으로 느린 쓰기 동작(slow path_writes/SPW)을 수행하기 위한 신호를 메모리 시스템에 제공할 수 있다. 이에, 메모리 시스템은 느린 쓰기 동작(SPW)을 수행한다(S360). 쓰기 동작에 관한 자세한 서술은 후술하기로 한다.
도4 는 본 발명의 일 실시예에 따른 통합 메모리 장치(UMD)를 나타내는 블록도이다.
도4 를 참조하면, 통합 메모리 장치(UMD)는 휘발성 메모리(VM), 제1 비휘발성 메모리(NVM1) 및 제2 비휘발성 메모리(NVM2)를 포함한다. 휘발성 메모리(VM)는 메인 메모리(main memory)의 역할을 하는 것으로, 디램(DRMA)에 해당할 수 있다. 제1 비휘발성 메모리(NVM1)는 저장장치 클래스 메모리(Storage class memory)에 해당하는 것으로, RRAM(Resistance Random Access Memory), PRAM(Phase Change Random Access Memory), MRAM(Magnetic Random Access Memory), STT-MRAM, 및 FRAM(Ferroelectric Random Access Memory) 중 적어도 어느 하나를 포함하는 구성에 해당할 수 있다. 또한, 제1 비휘발성 메모리(NVM1)는 빠른 쓰기 동작(FPW)시에 프로세스의 수행에 필요한 데이터가 쓰여질 수 있는 공간에 해당될 수 있다. 또한, 일 실시예로, 제1 비휘발성 메모리(NVM1)는 버퍼(Buffer)를 포함할 수 있으며, 버퍼(Buffer)는 빠른 쓰기 동작(FPW)시에 프로세스의 수행에 필요한 데이터가 쓰여질 수 있는 공간에 해당될 수 있다.
제2 비휘발성 메모리(NVM2)는 낸드 플래시 메모리(NAND Flash Memory), 노어 플래시 메모리(NORFlash Memory) 및 하드 디스크(Hard Disk) 중 적어도 어느 하나를 포함할 수 있다. 제2 비휘발성 메모리(NVM2)는 느린 쓰기 동작(SPW)시에 프로세스의 수행에 필요한 데이터가 쓰여질 수 있으며, 일예로, 버퍼(Buffer)에 쓰여진 데이터는 프로세스의 수행 완료한 후에 다른 프로세스의 수행 동작이 필요없는 경우, 즉 다른 프로세스의 수행이 요청되지 않는 유휴(Idle) 상태 구간에 있는 때에, 제2 비휘발성 메모리(NVM2)에 쓰여질 수 있다. 일예로서, 낸드 플래시 메모리(NAND Flash Memory)를 포함하는 경우, 제2 비휘발성 메모리(NVM2)이 포함하는 셀 어레이(미도시)는 다수 개의 블록 및 페이지들을 포함할 수 있으며, 데이터의 프로그램(program) 및 독출은 페이지(page) 단위로 수행되는 반면, 데이터의 소거(erease)는 블록(block) 단위로 수행될 수 있다.
제1 비휘발성 메모리(NVM1)는 제2 비휘발성 메모리(NVM2)보다 데이터의 입출력 동작 성능이 더 좋을 수 있다. 일 실시예로, 제1 비휘발성 메모리(NVM1)에 데이터를 쓰는 데 걸리는 시간이 제2 비휘발성 메모리(NVM2에 데이터를 쓰는 데 걸리는 시간보다 더 짧을 수 있다. 또한, 제1 비휘발성 메모리(NVM1)과 제2 비휘발성 메모리(NVM2)는 데이터를 저장할 수 있는 용량이 서로 다를 수 있으며, 제2 비휘발성 메모리(NVM2)가 제1 비휘발성 메모리(NVM1)보다 상기 용량이 더 클 수 있다. 제1 비휘발성 메모리(NVM1)의 데이터 비휘발성 및 좋은 입출력 동작 성능을 이용하여, 에너지 효율성을 극대화하면서 데이터 입출력 성능을 높일 수 있다.
도5a 는 본 발명의 일 실시예에 따른 느린 쓰기 동작(SPW)을 수행하는 메모리 시스템(MSYS) 관련 블록도이다.
도5a 를 참조하면, 메모리 시스템(MSYS)은 통합 메모리 컨트롤러(UMC)및 통합 메모리 장치(UMD)를 포함할 수 있으며, 통합 메모리 장치(UMD)는 도4 에 개시한 것과 같은 구성을 가질 수 있다. 통합 메모리 컨트롤러(UMC)는 외부로부터 제1 느린 쓰기 신호(SPW_1)를 수신할 수 있다. 도3 에서 전술하였듯이, 수행되는 프로세스가 논 크리티컬 프로세스로 분류된 경우에 느린 쓰기 동작(SPW)을 수행할 수 있다. 따라서, 호스트 또는 호스트가 포함하는 프로세서의 소프트웨어상의 커널 영역은 프로세스의 수행에 필요한 데이터(Data)를 통합 메모리 장치(UMD)에 쓰기 위하여, 제1 느린 쓰기 신호(SPW_1)를 통합 메모리 컨트롤러(UMC)에 제공할 수 있다.
통합 메모리 컨트롤러(UMC)는 제1 느린 쓰기 신호(SPW_1)를 기반으로, 제2 느린 쓰기 신호(SPW_2)를 통합 메모리 장치(UMD)에 제공하여, 휘발성 메모리(VM)에 먼저 저장된 프로세스의 수행에 필요한 데이터(Data)를 제2 비휘발성 메모리(NVM2)에 쓰기 동작을 수행할 수 있다. 발명의 일 실시예로, 휘발성 메모리(VM)에 저장된 프로세스 수행에 필요한 모든 데이터(Data) 또는 상기 데이터(Data) 중 상기 프로세스의 수행에 의하여 수정된 데이터(Data)만을 제2 비휘발성 메모리(NVM2)에 쓸 수 있다.
도5b 는 본 발명의 일 실시예에 따른 빠른 쓰기 동작(FPW)을 수행하는 메모리 시스템(MSYS) 관련 블록도이다.
도5b 를 참조하면, 메모리 시스템(MSYS)은 통합 메모리 컨트롤러(UMC)및 통합 메모리 장치(UMD)를 포함할 수 있다. 통합 메모리 컨트롤러(UMC)는 외부로부터 제1 빠른 쓰기 신호(FPW_1)를 수신할 수 있다. 도3 에서 전술하였듯이, 수행되는 프로세스가 크리티컬 프로세스로 분류된 경우에 빠른 쓰기 동작(FPW)을 수행할 수 있다. 따라서, 호스트 또는 호스트가 포함하는 프로세서의 소프트웨어상의 커널 영역은 프로세스의 수행에 필요한 데이터(Data)를 통합 메모리 장치(UMD)에 쓰기 위하여, 제1 빠른 쓰기 신호(FPW_1)를 통합 메모리 컨트롤러(UMC)에 제공할 수 있다.
통합 메모리 컨트롤러(UMC)는 제1 빠른 쓰기 신호(FPW_1)를 기반으로, 제2 빠른 쓰기 신호(FPW_2)를 통합 메모리 장치(UMD)에 제공하여, 휘발성 메모리(VM)에 먼저 저장된 프로세스의 수행에 필요한 데이터(Data)를 제1 비휘발성 메모리(NVM1)에 쓰기 동작을 수행할 수 있다. 발명의 일 실시예로, 제1 비휘발성 메모리(NVM1)는 저장 공간을 가지는 버퍼(Buf)를 포함할 수 있으며, 빠른 쓰기 동작(FPW)을 통하여, 상기 데이터(Data)를 버퍼(buf)에다 쓰고 저장할 수 있다. 휘발성 메모리(VM)에 저장된 프로세스 수행에 필요한 모든 데이터(Data) 또는 상기 데이터(Data) 중 상기 프로세스의 수행에 의하여 수정된 데이터(Data)만을 버퍼(Buf)에 쓸 수 있다. 일 실시예로, 이 후, 프로세스의 수행이 완료된 경우, 다른 프로세스가 수행되지 않는 경우, 버퍼(Buf)에 저장된 데이터(Data)는 제2 비휘발성 메모리(NVM2)에 쓰고, 저장하는 백업 동작(BKOPS)을 수행할 수 있다. 다만, 이는 발명의 일 실시예로, 백업 동작(BKOPS)은 이에 국한되지 아니하고, 다양한 경우에 수행될 수 있다.
도6 a, 6b, 6c 는 본 발명의 일 실시예에 따른 크리티컬 프로세스 재분류 동작을 수행하는 호스트(Host)의 소프트웨어 상의 블록도이다.
도6 a를 참조하면, 어플리케이션의 실행을 위하여, 제1 프로세스(P1) 및 제2 프로세스(P2)의 수행이 필요하며, 어플리케이션 영역(AP)은 먼저 수행되는 제1 프로세스(P1)에 크리티컬 섹션(CS)을 형성할 수 있도록 제1 프로세스 신호(PS_1)를 커널 영역(KE)에 제공할 수 있다. 제1 프로세스(P1)에 크리티컬 섹션(CS)을 형성하는 경우, 제1 프로세스(P1)의 수행이 완료된 후에, 제2 프로세스를 수행할 수 있다. 제1 프로세스 신호(PS_1) 및 제2 프로세스 신호(PS_2)는 각각 제1 프로세스(P1), 제2 프로세스(P2)의 정보를 포함할 수 있으며, 어플리케이션 영역(AP)에 의하여, 제1 프로세스(P1)는 논 크리티컬 프로세스, 제2 프로세스(P2)는 크리티컬 프로세스로 분류한 정보를 커널 영역(KE)에 제공할 수 있다. 이러한 상기 정보는 자료 구조(DS)에 기록되어 저장될 수 있다. 또한, 제1 프로세스 신호(PS_1)과 제2 프로세스 신호(PS_2)는 하나의 프로세스 신호에 포함될 수 있다. 제1 프로세스(P1)는 논 크리티컬 프로세스로 분류되어 커널 영역(KE)은 메모리 시스템(MSYS)에 제1 느린 쓰기 신호(SPW_1)를 제공할 수 있다. 이때, 제1 프로세스(P1)는 느린 쓰기 동작(SPW)이 수행되어, 크리티컬 프로세스로 분류된 제2 프로세스(P2)의 수행을 지연할 우려가 존재한다. 따라서, 제1 프로세스(P1)의 크리티컬 프로세스 관한 재분류가 필요할 수 있다.
도6b 를 참조하면, 도6A 에서 서술하였듯이 제1 프로세스(P1)가 논 크리티컬 프로세스로서, 제1 프로세스(P1)에 크리티컬 섹션(CS)가 형성되고, 제2 프로세스(P2)가 크리티컬 프로세스로 분류되어, 제1 프로세스(P1)의 수행 완료를 기다리고 있는 경우, 어플리케이션 영역(AP)은 커널 영역(KE)에 크리티컬 재분류 신호(RC_1)를 제공할 수 있다. 커널 영역(KE)은 제1 재분류 신호(RC_1)를 수신하여, 자료 구조(DS)에 제1 프로세스(P1)를 논 크리티컬 프로세스에서 크리티컬 프로세스로 재분류한 정보를 기록하여 저장할 수 있다. 이후, 자료 구조(DS)는 상기 재분류 정보를 기반으로, 제1 프로세스(P1)를 크리티컬 프로세스로 재분류하기 위하여, 크리티컬 프로세스 재분류 신호(CPRC)를 생성할 수 있다. 제1 프로세스(P1)는 크리티컬 프로세스로 재분류되고, 커널 영역(KE)은 제1 프로세스(P1)의 수행에 필요한 데이터에 대하여 빠른 쓰기 동작(FPW)을 수행하기 위하여, 메모리 시스템(MSYS)에 제1 빠른 쓰기 신호(FPW_1)를 제공할 수 있다.
도6c 를 참조하면, 제1 프로세스(P1)의 수행이 완료된 경우, 어플리케이션 영역(AP)은 제2 재분류 신호(RC_2)를 커널 영역(KE)에 제공할 수 있다. 커널 영역(KE)은 제2 재분류 신호(RC_2)를 수신하여, 자료 구조(DS)에 제1 프로세스(P1)를 크리티컬 프로세스에서 논 크리티컬 프로세스로 재분류한 정보를 기록하여 저장할 수 있다. 이후, 자료 구조(DS)는 상기 재분류 정보를 기반으로, 제1 프로세스(P1)를 논 크리티컬 프로세스로 전환하기 위하여, 논 크리티컬 프로세스 재분류 신호(NCPRC)를 생성할 수 있다. 제1 프로세스(P1)는 논 크리티컬 프로세스로 재분류될 수 있다. 이 후, 제2 프로세스(P2)가 수행될 수 있다. 다만, 이는 일 실시예로, 호스트(Host)가 포함하는 프로세서(Processor)가 전술한 호스트(Host)의 동작을 수행할 수 있다.
도7 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(400)을 나타내는 플로우 차트이다. 도7 에서는 둘 이상의 프로세스의 수행이 필요한 때에, 크리티컬 프로세스의 재분류 동작을 하는 예가 설명된다.
도7, 도6a, 도6b, 도6c 를 참조하면, 어플리케이션 영역(AP)에 의하여 제1 프로세스(P1)는 논 크리티컬 프로세스로 분류되고, 제1 프로세스(P1)에 크리티컬 섹션이 형성되어 제1 프로세스(P1)의 수행이 완료된 후에, 제2 프로세스(P2)를 수행할 수 있다. 이때, 제2 프로세스(P2)가 크리티컬 프로세스로 분류되었는지 여부를 판단한다(S410). 크리티컬 프로세스로 분류되었는지 여부는 어플리케이션 영역(AP)에 의하여 판단될 수 있으며, 커널 영역(KE)이 포함하는 자료 구조(DS)내에 저장된 프로세스 정보를 기반으로 판단할 수 있다.
제2 프로세스(P2)가 크리티컬 프로세스로 분류된 경우, 어플리케이션 영역(AP)은 커널 영역(KE)에 제1 프로세스(P1)의 제1 재분류 신호(RC_1)를 제공하여, 제1 재분류를 요청할 수 있다(S420). 제1 재분류 신호(RC_1)에 응답하여, 논 크리티컬 프로세스로 분류된 제1 프로세스(P1)를 크리티컬 프로세스로 재분류하는 제1 재분류 동작을 수행할 수 있고, 제1 프로세스(P1)에 대한 제1 재분류 정보를 커널 영역(KE)의 자료 구조(DS)에 저장할 수 있다(S430). 제1 프로세스(P1)는 크리티컬 프로세스로 재분류되어, 제1 프로세스(P1)의 수행에 필요한 데이터는 통합 메모리 장치에 빠른 쓰기 동작(FPW)를 수행할 수 있다(S440). 빠른 쓰기 동작(FPW)은 도5 B 에서 자세히 언급한바 이하 생략하며, 빠른 쓰기 동작(FPW)을 완료한 후에 일 실시예로 다른 프로세스가 수행되지 않는 경우, 도5B 에서 언급한 것과 같이 백업 동작(BKOPS)을 수행할 수 있다(S450).
제2 프로세스(P2)가 논 크리티컬 프로세스로 분류된 경우에는, 이 후 메모리 시스템(MSYS)은 느린 쓰기 동작(SPW)을 수행할 수 있다(S460). 다만, 이는 일 실시예로, 제2 프로세스(P2)가 논 크리티컬 프로세스로 분류된 때에도, 경우에 따라서 빠른 쓰기 동작(FPW)를 수행할 수 있을 것이다.
도8 은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작방법(500)을 나타내는 플로우 차트이다. 도8 은 도7 의 빠른 쓰기 동작(FPW)이 완료된 후의 동작에 대하여 설명한다.
도8 은 빠른 쓰기 동작(FPW)이 완료(S510)된 경우에, 크리티컬 프로세스로 재분류된 제1 프로세스(P1)를 다시 논 크리티컬 프로세스로 재분류하기 위하여, 어플리케이션 영역(AP)은 제2 재분류 신호(RC_2)를 커널 영역(KE)에 제공하여, 제2 재분류 요청을 할 수 있다(S520). 제2 재분류 신호(RC_2)에 응답하여, 크리티컬 프로세스로 재분류된 제1 프로세스(P1)를 논 크리티컬 프로세스로 다시 재분류하는 제2 재분류 동작을 수행할 수 있고, 제1 프로세스(P1)에 대한 제2 재분류 정보를 커널 영역(KE)의 자료 구조(DS)에 저장할 수 있다(S530). 이후, 제2 프로세스(P2)를 수행할 수 있다(S540). 이때, 어플리케이션 영역(AP)은 제1 프로세스(P1)에 형성되었던 크리티컬 섹션(CS)을 제2 프로세스(P2)에 형성할 수 있다. 크리티컬 프로세스로 분류된 제2 프로세스(P2)의 수행에 필요한 데이터는 빠른 쓰기 동작(FPW)이 수행될 수 있다.
도9a, 9b, 9c 는 본 발명의 일 실시예에 따른 크리티컬 프로세스 동적 재분류 동작을 수행하는 호스트(Host)의 소프트웨어 상의 블록도이다.
도9a 를 참조하면, 도6a 의 구성에서 제1 큐 영역(Que_1) 및 제2 큐 영역(Que_2)을 더 포함할 수 있다. 제1 큐 영역(Que_1)은 느린 쓰기 동작 수행시 여러 개의 데이터 조각들로 분할된 제1 프로세스(P1)의 수행에 필요한 데이터가 차례차례로 통합 메모리 장치(UMD)를 포함하는 메모리 시스템(MSYS)으로 제공될 수 있도록 대기할 수 있는 공간에 해당될 수 있다. 제1 프로세스(P1)은 논 크리티컬 프로세스로 분류되어 제1 프로세스(P1)의 수행에 필요한 데이터는 다수의 데이터 조각(A1~An)으로 나뉠 수 있으며, 제1 데이터 조각(A1)은 제1 큐 영역(Que_1)으로부터 상기 메모리 시스템(MSYS)에 제공될 수 있으며, 이는 제1 느린 쓰기 신호(SPW_1)와 같이 제공되어 메모리 시스템(MSYS)상에서 느린 쓰기 동작(SPW)을 수행할 수 있다.
나머지 데이터 조각들(A2~An)은 제1 큐 영역(Que_1)에 대기하고 있는 상태일 수 있다. 다만, 이는 일 실시예로, 제1 큐 영역(Que_1)으로부터 상기 메모리 시스템(MSYS)에 제공된 데이터 조각은 하나 이상일 수 있다. 이와 같이, 제1 프로세스(P1)의 수행에 필요한 데이터가 분할된 데이터 조각들 중 하나 이상이 메모리 시스템(MSYS)에 제공된 후에, 제2 프로세스(P2)의 수행이 예정되어 있으며, 제2 프로세스 신호(PS_2)에 의해 제1 프로세스(P1)이 크리티컬 프로세스로 분류된 때에 다이나믹 재분류 동작을 서술하겠다.
도9b 를 참조하면, 도9 a 에 서술한 바와 같이 제1 프로세스(P1)의 수행에 필요한 데이터가 분할된 데이터 조각들 중 하나 이상이 메모리 시스템(MSYS)에 제공된 후에, 제2 프로세스(P2)의 수행이 예정되어 있으며, 제2 프로세스 신호(PS_2)로 크리티컬 프로세스로 분류된 때에 어플리케이션 영역(AP)는 커널 영역(KE)에 제1 다이나믹 재분류 신호(DRC_1)를 제공할 수 있다. 이때, 커널 영역(KE)은 제1 다이나믹 재분류 신호(DRC_1)를 수신하여, 자료 구조(DS)에 제1 프로세스(P1)를 논 크리티컬 프로세스에서 크리티컬 프로세스로 재분류한 정보를 기록하여 저장할 수 있다. 이후, 자료 구조(DS)는 상기 재분류 정보를 기반으로, 제1 프로세스(P1)를 크리티컬 프로세스로 재분류하기 위하여, 크리티컬 프로세스 재분류 신호(CPDRC)를 생성할 수 있다. 커널 영역(KE)은 제1 프로세스(P1)의 수행에 필요한 데이터들 중 제1 큐 영역에 남아있는 데이터 조각들(A2~An)에 대하여 빠른 쓰기 동작(FPW)을 수행하기 위하여, 상기 데이터 조각들(A2~An)을 빠른 쓰기 동작(FPW)을 위해 사용하는 제2 큐 영역(Que_2)으로 이동시킬 수 있다. 발명의 일 실시예로, 제2 큐 영역(Que_2)에 상기 데이터 조각들(A2~An)을 복사하고, 제1 큐 영역에 대기하고 있는 상기 데이터 조각들(A2~An)을 삭제할 수 있다. 이후, 제2 데이터 조각(A2)을 포함한 나머지 데이터 조각들(A3~An)은 제2 큐 영역(Que_2)으로부터 상기 메모리 시스템(MSYS)에 제공될 수 있으며, 이는 제1 빠른 쓰기 신호(FPW_1)와 같이 제공되어, 메모리 시스템(MSYS)상에서 빠른 쓰기 동작을 수행할 수 있다.
도9c 를 참조하면, 제1 프로세스(P1)의 수행이 완료된 경우, 즉 제2 큐 영역(Que_2)을 통하여, 데이터 조각들(A2~An)이 모두 제공된 경우, 어플리케이션 영역(AP)은 제2 다이나믹 재분류 신호(DRC_2)를 커널 영역(KE)에 제공할 수 있다. 커널 영역(KE)은 제2 다이나믹 재분류 신호(DRC_2)를 수신하여, 자료 구조(DS)에 제1 프로세스(P1)를 크리티컬 프로세스에서 논 크리티컬 프로세스로 재분류한 정보를 기록하여 저장할 수 있다. 이후, 자료 구조(DS)는 상기 재분류 정보를 기반으로, 제1 프로세스(P1)를 논 크리티컬 프로세스로 전환하기 위하여, 논 크리티컬 프로세스 재분류 신호(NCPDRC)를 생성할 수 있다. 제1 프로세스(P1)는 논 크리티컬 프로세스로 재분류 될 수 있다. 이 후, 제2 프로세스(P2)가 수행될 수 있다.
다만, 이는 일 실시예로, 호스트(Host)가 포함하는 프로세서(Processor)가 전술한 호스트(Host)의 동작을 수행할 수 있다.
도 10 은 본 발명의 일 실시예에 따른 데이터 처리 시스템 동작방법(600)을 나타내는 플로우 차트이다. 도10 에서는 둘 이상의 프로세스의 수행이 필요한 때에, 크리티컬 프로세스의 다이나믹 재분류 동작을 하는 예가 설명된다.
도10 및 도9a, 9b, 9c 를 참조하면, 어플리케이션 영역(AP)에 의하여 크리티컬 프로세스제1 프로세스(P1)의 수행에 필요한 제1 데이터를 다수의 데이터 조각으로 변환할 수 있다(S610). 상기 다수의 데이터 조각들은 느린 쓰기 동작(SPW)을 위한 제1 큐 영역(Que_1)에 대기할 수 있으며, 상기 다수의 데이터 조각들 중 일부는 제1 큐 영역(Que_1)을 통하여 메모리 시스템(MSYS)에 전송될 수 있다(S620). 이때, 제1 느린 쓰기 신호(SPW_1)도 같이 제공될 수 있다. 이후, 제2 프로세스(P2)의 수행이 예정되어 있으며, 제2 프로세스(P2)가 크리티컬 프로세스로 분류 되었는지 여부를 판단할 수 있다(S630). 크리티컬 프로세스로 분류되었는지 여부는 어플리케이션 영역(AP)에 의하여 판단될 수 있으며, 이는 커널 영역(KE)이 포함하는 자료 구조(DS)내에 저장된 프로세스 정보를 기반으로 판단할 수 있다.
제2 프로세스(P2)가 크리티컬 프로세스로 분류된 경우, 어플리케이션 영역(AP)은 커널 영역(KE)에 제1 프로세스(P1)의 제1 동적 재분류 신호(DRC_1)를 제공하여, 제1 동적 재분류를 요청할 수 있다(S640). 제1 동적 재분류 신호(DRC_1)에 응답하여, 논 크리티컬 프로세스로 분류된 제1 프로세스(P1)를 크리티컬 프로세스로 동적 재분류하는 제1 동적 재분류 동작을 수행할 수 있고, 제1 프로세스(P1)에 대한 제1 동적 재분류 정보를 커널 영역(KE)의 자료 구조(DS)에 저장할 수 있다(S650). 이후, 제1 큐 영역(Que_1)에 대기하고 있던 전송되지 않은 나머지 데이터 조각들을 제2 큐 영역(Que_2)으로 이동하여, 메모리 시스템(MSYS)에 전송할 수 있다(S660). 이때, 제1 빠른 쓰기 신호(FPW_1)와 같이 전송되어, 빠른 쓰기 동작(FPW)을 수행할 수 있다. 다만, 제2 프로세스가 논 크리티컬 프로세스로 분류된 경우에는, 나머지 데이터 조각들을 제1 큐 영역(Que_1)을 통하여 메모리 시스템(MSYS)에 전송할 수 있다(S670). 다만, 이는 일 실시예로, 제2 프로세스(P2)가 논 크리티컬 프로세스로 분류된 때에도, 경우에 따라서 제2 큐 영역(Que_2)을 통하여 전송할 수 있을 것이다.
도11 은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 동작방법(700)을 나타내는 플로우 차트이다. 도11 은 제1 프로세스(P1)의 수행에 필요한 제1 데이터의 전송이 완료된 후의 동작에 대하여 설명한다.
도11 은 제1 데이터의 전송이 완료(S710)된 후에, 크리티컬 프로세스로 재분류된 제1 프로세스(P1)를 다시 논 크리티컬 프로세스로 재분류하기 위하여, 어플리케이션 영역(AP)은 제2 다이나믹 재분류 신호(DRC_2)를 커널 영역(KE)에 제공하여, 제2 다이나믹 재분류 요청을 할 수 있다(S720). 제2 다이나믹 재분류 신호(DRC_2)에 응답하여, 크리티컬 프로세스로 재분류된 제1 프로세스(P1)를 논 크리티컬 프로세스로 다시 다이나믹 재분류하는 제2 다이나믹 재분류 동작을 수행할 수 있고, 제1 프로세스(P1)에 대한 제2 다이나믹 재분류 정보를 커널 영역(KE)의 자료 구조(DS)에 저장할 수 있다(S730). 이후, 제2 프로세스(P2)를 수행할 수 있다(S740). 이때, 어플리케이션 영역(AP)은 제1 프로세스(P1)에 형성되었던 크리티컬 섹션(CS)을 제2 프로세스(P2)에 형성할 수 있다. 크리티컬 프로세스로 분류된 제2 프로세스(P2)의 수행에 필요한 데이터는 빠른 쓰기 동작(FPW)이 수행될 수 있다.
도12 는 본 발명의 일 실시예에 따른 메모리 시스템(1150)을 포함하는 컴퓨팅 시스템(1100)을 나타내는 블록도이다. 본 발명의 일실시예에 따른 컴퓨팅 시스템(1100)은 모바일 기기나 데스크 탑 컴퓨터 등일 수 있고, CPU 등을 포함하는 호스트(1120), 램(1130), 유저 인터페이스(1130) 및 장치 드라이버(1140)를 포함할 수 있으며, 이들 구성요소는 각각 버스(1160)에 전기적으로 연결되어 있다. 본 발명의 일 실시예에 따른 메모리 시스템(1150)은 장치 드라이버(1140)과 연결될 수 있다. 호스트(1120)는 컴퓨팅 시스템(1100) 전체를 제어하고, 유저 인터페이스(1130)를 통해서 입력된 유저의 명령에 대응하는 연산을 수행할 수 있다. 램(1110)은 호스트(1120)의 데이터 메모리 역할을 할 수 있고, 호스트(1120)는 장치 드라이버(1140)를 통해서 메모리 시스템(1150)에 유저 데이터를 기록하거나 독출할 수 있다. 또한 도12 에서는 메모리 시스템(1150)의 동작 및 관리를 제어하기 위한 장치 드라이버(1140)가 호스트(1120)의 외부에 구비되는 것으로 도시되었으나, 장치 드라이버(1140)는 호스트(1120)의 내부에 구비되어도 무방하다. 메모리 시스템(1150)은 도 1의 통합 메모리 컨트롤러(210) 및 통합 메모리 장치(220)를 포함할 수 있다.
도13 은 본 발명의 일 실시예에 따른 메모리 카드(1200)를 나타내는 도면이다. 메모리 카드(1200)는 모바일 기기나 데스크 탑 컴퓨터와 같은 전자기기에 연결하여 사용할 수 있는 휴대용 저장장치가 될 수 있다. 도1 에 도시된 바와 같이, 상기 메모리 카드(1200)는 통합 메모리 컨트롤러(1210), 통합 메모리 장치(1220) 및 포트 영역(1230)을 구비할 수 있다. 메모리 카드(1200)는 포트 영역(1230)을 통해서 외부의 호스트(미도시)와 통신할 수 있고, 통합 메모리 컨트롤러(1210)는 통합 메모리 장치(1220)를 제어할 수 있다. 통합 메모리 컨트롤러(1210)는 프로그램을 저장하는 ROM(미도시)으로부터 프로그램을 읽어서 수행할 수 있다.
도 14은 도 1 의 통합 메모리 장치(UMD)를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다. 도 14 를 참조하면, 일 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SVSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 일 실시예에 따른 서버 시스템(SVSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 통합 메모리 장치(UMD)를 포함하는 구비할 수 있다. 따라서, 일 실시예에 따른 네트워크 시스템(NSYS) 및 서버 시스템(SVSYS)은 통합 메모리 장치(UMD)의 컨트롤러와 메모리 사이의 인증 등을 신뢰성 있게 수행함으로써, 시스템에 대한 신뢰성을 확보할 수 있다.

Claims (10)

  1. 호스트(Host)의 어플리케이션 영역에서, 제1 프로세스가 크리티컬 프로세스(Critical process)에 해당하는지 여부를 나타내는 프로세스 정보를 상기 호스트의 커널영역으로 전송하는 단계; 및
    상기 커널영역에서, 상기 프로세스 정보를 기반으로 상기 제1 프로세스를 상기 크리티컬 프로세스로 분류된 경우, 상기 제1 프로세스 수행에 필요한 제1 데이터의 빠른 쓰기 동작을 위하여, 제1 빠른 쓰기 신호를 메모리 시스템에 제공하는 단계;
    상기 제1 프로세스가 논 크리티컬 프로세스(Non-critical process)로 분류된 경우, 상기 제1 데이터의 느린 쓰기 동작을 위하여, 제1 느린 쓰기 신호를 메모리 시스템에 제공하는 단계; 를 포함하고,
    상기 빠른 쓰기 동작은 상기 느린 쓰기 동작보다 쓰기 속도가 빠른 것을 특징으로 하는 데이터 처리 시스템의 동작 방법.
  2. 제1 항에 있어서,
    상기 데이터 처리 시스템은,
    통합 메모리 컨트롤러; 및 제1 비휘발성 메모리 및 제2 비휘발성 메모리를 포함하는 통합 메모리 장치;를 포함하고,
    상기 제1 빠른 쓰기 신호에 응답하여,
    상기 통합 메모리 컨트롤러가 제2 빠른 쓰기 신호를 상기 통합 메모리 장치에 제공하는 단계;
    상기 제1 느린 쓰기 신호에 응답하여,
    상기 통합 메모리 컨트롤러는 제2 느린 쓰기 신호를 상기 통합 메모리 장치에 제공하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  3. 제2 항에 있어서,
    상기 통합 메모리 장치가 제2 빠른 쓰기 신호를 수신한 경우,
    상기 제1 데이터를 상기 제1 비휘발성 메모리에 저장하는 상기 빠른 쓰기 동작을 수행하는 단계;
    상기 통합 메모리 장치가 제2 느린 쓰기 신호를 수신한 경우,
    상기 제1 데이터를 상기 제2 비휘발성 메모리에 저장하는 상기 느린 쓰기 동작을 수행하는 단계; 를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  4. 제1 항에 있어서,
    상기 어플리케이션 영역이, 상기 제1 프로세스 수행시에 동기적 쓰기 요청(Synchronous write request)을 하는 경우에는,
    상기 제1 프로세스가 상기 크리티컬 프로세스임을 나타내는 상기 프로세스 정보를 상기 커널영역에 전송하고,
    상기 동기적 쓰기 요청(Synchronous write request)을 하지 않는 경우,
    상기 제1 프로세스가 상기 논-크리티컬 프로세스임을 나타내는 상기 프로세스 정보를 상기 커널영역에 전송하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  5. 제1 항에 있어서,
    제2 프로세스 수행에 필요한 제2 데이터의 쓰기 동작이 수행되는 단계;를 더 포함하고,
    상기 어플리케이션 영역이 상기 제 1 프로세스에 우선순위를 설정하고, 상기 커널 영역은, 상기 제1 프로세스의 상기 제1 데이터의 쓰기 동작 수행이 완료된 후에, 상기 제2 데이터의 쓰기 동작이 수행되도록 제어하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  6. 제5 항에 있어서,
    상기 제1 프로세스가 상기 논 크리티컬 프로세스로 분류되고, 상기 제2 프로세스는 상기 크리티컬 프로세스로 분류된 경우,
    상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  7. 호스트의 커널영역에서, 동작수행의 우선순위를 가지는 제1 프로세스를 논-크리티컬 프로세스(Non-critical process)로 분류하고, 상기 제1 프로세스 수행에 필요한 제1 데이터를 다수의 단위 데이터들로 변환하여, 제1 큐영역을 통하여 상기 다수의 단위 데이터들 중 일부를 메모리 장치로 전송하는 단계;
    상기 커널영역에서, 상기 동작수행의 차순위를 가지는 제2 프로세스를 크리티컬 프로세스로 분류한 경우, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 단계; 및
    제2 큐영역을 통하여, 상기 다수의 단위 데이터들 중 나머지를 상기 통합 메모리 장치로 전송하는 단계;를 포함하는 데이터 처리 시스템의 동작방법.
  8. 제7 항에 있어서,
    상기 제2 큐영역을 통하여, 상기 다수의 단위 데이터들을 모두 상기 메모리 장치로 전송한 후, 상기 커널영역에서 상기 제1 프로세스를 상기 논 크리티컬 프로세스로 재분류하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  9. 제7 항에 있어서,
    상기 호스트의 어플리케이션 영역에서, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하는 것을 시스템콜 인터페이스를 이용하여 상기 커널영역에 제1 요청하는 단계;
    상기 제1 요청에 응답하여, 상기 제1 프로세스를 상기 크리티컬 프로세스로 재분류하고, 상기 제1 요청에 의한 제1 재분류 정보를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
  10. 제9 항에 있어서,
    상기 어플리케이션 영역에서, 상기 제1 데이터의 전송 수행을 완료한 후, 상기 시스템콜 인터페이스를 이용하여 상기 제1 프로세스를 상기 논크리티컬 프로세스로 재분류하는 것을 상기 커널영역에 제2 요청하는 단계;
    상기 제2 요청에 응답하여, 상기 제1 프로세스를 상기 논크리티컬 프로세스로 재분류하고, 상기 제2 요청에 의한 제2 재분류 정보를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 처리 시스템의 동작방법.
KR1020140141691A 2014-10-20 2014-10-20 데이터 처리 시스템 및 이의 동작 방법 KR102254101B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140141691A KR102254101B1 (ko) 2014-10-20 2014-10-20 데이터 처리 시스템 및 이의 동작 방법
US14/791,714 US9836220B2 (en) 2014-10-20 2015-07-06 Data processing system and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140141691A KR102254101B1 (ko) 2014-10-20 2014-10-20 데이터 처리 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20160046148A true KR20160046148A (ko) 2016-04-28
KR102254101B1 KR102254101B1 (ko) 2021-05-20

Family

ID=55749099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140141691A KR102254101B1 (ko) 2014-10-20 2014-10-20 데이터 처리 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US9836220B2 (ko)
KR (1) KR102254101B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102353859B1 (ko) 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091974A (ja) * 1997-08-20 1998-04-10 Sony Corp 光ディスクの記録装置、再生装置および記録再生装置
JP2001125799A (ja) * 1999-10-29 2001-05-11 Hitachi Ltd 記憶媒体、システム開発装置、マイクロコンピュータ、及び制御装置
KR20030052513A (ko) * 2001-12-21 2003-06-27 한국전자통신연구원 스택을 이용한 커널 스케줄링 방법
KR20130040486A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 저장 장치 및 그것을 이용하는 사용자 장치
KR101994001B1 (ko) * 2017-12-28 2019-06-27 인제대학교 산학협력단 터널내 온도에 의한 램프 색상 제어방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081883A (en) 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
US20090193184A1 (en) 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
JP4699091B2 (ja) * 2005-05-31 2011-06-08 株式会社日立製作所 ディザスタリカバリ方法およびシステム
US7681004B2 (en) 2005-06-13 2010-03-16 Addmm, Llc Advanced dynamic disk memory module
US7949815B2 (en) 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US8112597B2 (en) 2006-12-08 2012-02-07 Microsoft Corporation Critical memory
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7870350B1 (en) 2007-06-07 2011-01-11 Nvidia Corporation Write buffer for read-write interlocks
US8239645B1 (en) 2007-09-28 2012-08-07 Emc Corporation Managing mirroring in data storage system having fast write device and slow write device
KR20090034629A (ko) 2007-10-04 2009-04-08 삼성전자주식회사 쓰기 버퍼를 포함하는 저장장치 및 그 제어 방법
US20100083247A1 (en) 2008-09-26 2010-04-01 Netapp, Inc. System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
US8504773B1 (en) 2008-12-02 2013-08-06 Nvidia Corporation Storing dynamically sized buffers within a cache
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8244938B2 (en) 2010-11-23 2012-08-14 International Business Machines Corporation Sliding write window mechanism for writing data
US8560750B2 (en) 2011-05-25 2013-10-15 Lsi Corporation Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US8745320B2 (en) 2012-05-04 2014-06-03 Riverbed Technology, Inc. Ensuring write operation consistency using multiple storage devices
US9043572B2 (en) 2012-07-16 2015-05-26 International Business Machines Corporation Automatically preventing large block writes from starving small block writes in a storage device
RU2568292C2 (ru) * 2013-12-27 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выбора синхронного или асинхронного межпроцессного взаимодействия

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091974A (ja) * 1997-08-20 1998-04-10 Sony Corp 光ディスクの記録装置、再生装置および記録再生装置
JP2001125799A (ja) * 1999-10-29 2001-05-11 Hitachi Ltd 記憶媒体、システム開発装置、マイクロコンピュータ、及び制御装置
KR20030052513A (ko) * 2001-12-21 2003-06-27 한국전자통신연구원 스택을 이용한 커널 스케줄링 방법
KR20130040486A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 저장 장치 및 그것을 이용하는 사용자 장치
KR101994001B1 (ko) * 2017-12-28 2019-06-27 인제대학교 산학협력단 터널내 온도에 의한 램프 색상 제어방법

Also Published As

Publication number Publication date
US20160110103A1 (en) 2016-04-21
US9836220B2 (en) 2017-12-05
KR102254101B1 (ko) 2021-05-20

Similar Documents

Publication Publication Date Title
US11797180B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
US10884661B2 (en) Command queuing
US8769318B2 (en) Asynchronous management of access requests to control power consumption
US9110669B2 (en) Power management of a storage device including multiple processing cores
US10635317B2 (en) Operation method of storage system and host
US11074011B2 (en) Solid state drive latency estimation interface for host performance tuning
US20200379684A1 (en) Predictive Data Transfer based on Availability of Media Units in Memory Sub-Systems
KR101893895B1 (ko) 메모리 시스템 및 그 동작 제어 방법
US11360706B2 (en) Memory system with program mode switching based on mixed and sequential workloads
US10346052B2 (en) Memory system with priority processing and operating method thereof
JP2021125248A (ja) コントローラ、コントローラの動作方法及びそれを含む保存装置
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
KR20220050407A (ko) 컨트롤러 및 컨트롤러의 동작방법
US10467020B2 (en) Memory device, and information-processing device
US9934100B2 (en) Method of controlling memory swap operation and data processing system using same
KR102254101B1 (ko) 데이터 처리 시스템 및 이의 동작 방법
JP2016062406A (ja) メモリシステム、メモリシステムの制御方法及びプログラム
JP2014174849A (ja) 半導体記憶装置
CN109542336B (zh) 存储设备及其操作方法
KR101744401B1 (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치
KR20220094726A (ko) 메모리 컨트롤러, 비휘발성 메모리 장치 및 그 스토리지 장치
WO2024035475A1 (en) Write coalescing via hmb to optimize write performance
CN116185300A (zh) 一种在主机端基于深度学习完成固态硬盘高效垃圾回收的软硬件实现办法

Legal Events

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