KR102591808B1 - 컴퓨팅 시스템 및 그 동작 방법 - Google Patents

컴퓨팅 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR102591808B1
KR102591808B1 KR1020200052591A KR20200052591A KR102591808B1 KR 102591808 B1 KR102591808 B1 KR 102591808B1 KR 1020200052591 A KR1020200052591 A KR 1020200052591A KR 20200052591 A KR20200052591 A KR 20200052591A KR 102591808 B1 KR102591808 B1 KR 102591808B1
Authority
KR
South Korea
Prior art keywords
access interface
delete delete
storage device
threshold
processor
Prior art date
Application number
KR1020200052591A
Other languages
English (en)
Other versions
KR20210133675A (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 KR1020200052591A priority Critical patent/KR102591808B1/ko
Priority to US17/241,503 priority patent/US20210342081A1/en
Publication of KR20210133675A publication Critical patent/KR20210133675A/ko
Application granted granted Critical
Publication of KR102591808B1 publication Critical patent/KR102591808B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0658Controller construction arrangements
    • 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

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)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컴퓨팅 시스템 및 그 동작 방법이 개시된다. 컴퓨팅 시스템은 직접 접근 인터페이스와 간접 접근 인터페이스를 제공하는 저장 장치, 호출되는 응용프로그램의 입출력 특성에 따라 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스 중 어느 하나를 사용할지를 결정하는 접근 인터페이스 설정부, 그리고, 상기 결정된 접근 인터페이스에 따라 상기 저장 장치에 접근하는 프로세서를 포함할 수 있다.

Description

컴퓨팅 시스템 및 그 동작 방법{COMPUTIING SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 컴퓨팅 시스템 및 그 동작 방법에 관한 것이다.
일반적인 컴퓨팅 시스템은 CPU 레지스터, 캐쉬(L1, L2, L3), 메인 메모리, 저장장치(SSD, HDD, 테이프 등)와 같은 메모리 계층 구조를 가지고 있다. 이러한 메모리 계층 구조에서 메인 메모리와 저장 장치간에는 성능 차이가 매우 크며, 최근에는 퍼시스턴트 메모리(Persistent Memory, PMEM)나 스토리지 클래스 메모리(Storage Class Memory, SCM) 등의 새로운 메모리 계층이 소개되고 있다.
PMEM 또는 SCM은 전원을 턴오프(Off)한 후 턴온(On)해도 저장장치(SSD, HDD)와 같이 저장 내용을 유지하며 블록 단위(예를 들면, 512byte)보다 작은 크기 단위로 직접 접근하여 데이터를 읽기 및 쓰기 할 수 있다.
일부 PMEM 또는 SCM은 해당 주소 영역을 직접적으로 접근해서 입출력을 수행하거나 컨트롤러 인터페이스를 사용하여 간접적으로 입출력을 수행할 수 있는 두 가지 접근 인터페이스를 제공한다.
메모리가 직접 접근 인터페이스와 간접 접근 인터페이스를 동시에 제공하는 경우, 두 가지 인터페이스 방법에 따라 성능 특성이 다를 수 있다. 일반적으로, 직접 접근 인터페이스는 작은 크기의 데이터 입출력 시 낮은 지연 시간을 제공한다. 이에 반해, 간접 접근 인터페이스는 입출력 장치가 직접 메인 메모리의 데이터를 읽고 쓰는 DMA(Direct Memory Access) 기능을 지원하며 큰 데이터 사이즈에 대해 높은 대역폭을 제공한다.
이러한 PMEM 또는 SCM을 사용하여 실행될 응용 프로그램의 데이터 접근 특성에 따라, 직접 접근 인터페이스 또는 간접 접근 인터페이스가 성능 최적화를 위해 선택적으로 적용될 필요가 있다.
본 발명이 해결하고자 하는 과제는 접근 인터페이스의 선택을 자동화하여 성능을 최적화 하는 컴퓨팅 시스템 및 그 동작 방법을 제공하는 것이다.
본 발명의 실시예에 따르면, 컴퓨팅 시스템이 제공될 수 있다. 상기 컴퓨팅 시스템은 직접 접근 인터페이스와 간접 접근 인터페이스를 제공하는 저장 장치, 호출되는 응용프로그램의 입출력 특성에 따라 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스 중 어느 하나를 사용할지를 결정하는 접근 인터페이스 설정부, 그리고, 상기 결정된 접근 인터페이스에 따라 상기 저장 장치에 접근하는 프로세서를 포함할 수 있다.
상기 접근 인터페이스 설정부는 상기 응용프로그램의 데이터 크기를 소정의 임계값과 비교하며 비교 결과에 따라 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스 중 어느 하나를 사용할지를 결정할 수 있다.
상기 응용프로그램이 읽기 동작을 요청하는 경우 상기 소정의 임계값은 읽기 임계값일 수 있으며, 상기 응용프로그램의 쓰기 동작을 요청하는 경우 상기 소정의 임계값은 쓰기 임계값일 수 있다.
상기 접근 인터페이스 설정부는, 데이터 크기 별로 상기 직접 접근 인터페이스를 적용하여 측정된 제1 지연 시간과 상기 데이터 크기 별로 상기 간접 접근 인터페이스를 적용하여 측정된 제2 지연 시간을 이용하여, 상기 임계값을 결정하는 경계값 측정부를 포함할 수 있다.
상기 경계값 측정부는 상기 제1 지연 시간과 상기 제2 지연 시간을 비교하여, 지연 시간이 역전되는 데이터 크기를 상기 임계값으로 결정할 수 있다.
상기 컴퓨팅 시스템은 상기 저장 장치에서 사용될 수 있는 최소 데이터 크기와 최대 경계값을 설정하는 초기값 설정부를 더 포함할 수 있으며, 상기 경계값 측정부는 상기 최소 데이터 크기부터 상기 최대 경계값까지 데이터 크기를 늘리며 상기 제1 및 제2 지연 시간을 측정할 수 있다.
상기 컴퓨팅 시스템은 상기 저장 장치와 상기 프로세서 사이에서 상기 간접 접근 인터페이스를 제어하는 메모리 제어기를 더 포함할 수 있다.
상기 직접 접근 인터페이스는 상기 프로세서가 직접 상기 저장 장치에 접근하는 방식일 수 있으며, 상기 간접 접근 인터페이스는 상기 프로세서가 상기 메모리 제어기를 통해 상기 저장 장치에 접근하는 방식일 수 있다.
상기 접근 인터페이스 설정부는 상기 데이터의 크기가 상기 소정의 임계값보다 작거나 같은 경우 상기 직접 접근 인터페이스를 사용하는 것으로 결정할 수 있으며 상기 데이터의 크기가 상기 소정의 임계값보다 큰 경우 상기 간접 접근 인터페이스를 사용하는 것으로 결정할 수 있다.
상기 저장 장치는 퍼시스턴트 메모리(Persistent Memory, PM) 또는 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있다.
본 발명의 다른 실시예에 따르면, 직접 접근 인터페이스와 간접 접근 인터페이스를 제공하는 저장 장치를 포함하는 컴퓨팅 시스템이 동작하는 방법이 제공될 수 있다. 상기 방법은, 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스를 사용하는 응용 프로그램의 호출 있는 경우, 상기 응용 프로그램의 입출력 특성에 따라 상기 직접 접근 인터페이스 또는 상기 간접 접근 인터페이스를 결정하는 단계, 그리고 상기 결정하는 단계에서 결정된 접근 인터페이스에 따라 상기 저장 장치에 접근하는 단계를 포함할 수 있다.
상기 입출력 특성은 상기 응용 프로그램의 데이터 크기일 수 있다.
상기 결정하는 단계는, 상기 데이터 크기를 소정의 임계값과 비교하는 단계,
상기 데이터의 크기가 상기 소정의 임계값 보다 작거나 같은 경우, 상기 직접 접근 인터페이스를 결정하는 단계, 그리고 상기 데이터의 크기가 상기 소정의 임계값 보다 큰 경우, 상기 간접 접근 인터페이스를 결정하는 단계를 포함할 수 있다.
상기 방법은, 데이터 크기 별로 상기 직접 접근 인터페이스를 이용하여 제1 지연 시간을 측정하는 단계, 상기 데이터 크기 별로 상기 간접 접근 인터페이스를 이용하여 제2 지연 시간을 측정하는 단계, 그리고 상기 제1 지연 시간과 상기 제2 지연 시간을 비교하여, 상기 임계값을 결정하는 단계를 더 포함할 수 있다.
상기 직접 접근 인터페이스는 상기 컴퓨팅 시스템에 포함된 프로세서가 직접 상기 저장 장치에 접근하는 방식일 수 있으며, 상기 간접 접근 인터페이스는 상기 컴퓨팅 시스템에 포함된 메모리 제어기를 통해 상기 저장 장치에 접근하는 방식일 수 있다.
상기 저장 장치는 퍼시스턴트 메모리(Persistent Memory, PM) 또는 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있다.
본 발명의 또 다른 실시예에 따르면, 직접 접근 인터페이스와 간접 접근 인터페이스를 제공하는 저장 장치를 포함하는 컴퓨팅 시스템이 동작하는 방법이 제공될 수 있다. 상기 방법은, 응용 프로그램의 호출이 있는 경우, 상기 응용 프로그램의 데이터 크기를 소정의 임계값과 비교하는 단계, 상기 데이터 크기가 상기 임계값보다 작거나 같은 경우, 상기 직접 접근 인터페이스를 통해 상기 저장 장치에 접근하는 단계, 그리고 상기 데이터 크기가 상기 임계값보다 큰 경우, 상기 간접 접근 인터페이스를 통해 상기 저장 장치에 접근하는 단계를 포함할 수 있다.
상기 직접 접근 인터페이스는 상기 컴퓨팅 시스템에 포함된 프로세서가 직접 상기 저장 장치에 접근하는 방식일 수 있으며, 상기 간접 접근 인터페이스는 상기 컴퓨팅 시스템에 포함된 메모리 제어기를 통해 상기 저장 장치에 접근하는 방식일 수 있다.
상기 저장 장치는 퍼시스턴트 메모리(Persistent Memory, PM) 또는 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있다.
본 발명의 실시예에 따른 응용프로그램의 입출력 특성에 따라 직접 접근 인터페이스 또는 간접 접근 인터페이스를 선택적으로 적용함으로써, 최적의 입출력 성능을 달성할 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 접근 인터페이스 설정부를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 경계값 측정부의 동작 방법을 나타내는 플로우차트이다.
도 4는 본 발명의 실시예에 따른 입출력 처리부의 읽기 동작을 나타내는 플로우차트이다.
도 5는 본 발명의 실시예에 따른 입출력 처리부의 쓰기 동작을 나타내는 플로우차트이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명의 실시예에 따른 컴퓨팅 시스템은 PMEM 또는 SCM과 같은 저장 장치를 사용하는 응용프로그램이 최적 성능의 성능을 낼 수 있도록, 응용프로그램의 입출력 데이터 사이즈나 빈도 등 입출력 특성에 따라 직접 접근 인터페이스 또는 간접 접근 인터페이스를 선택할 수 있다. 복합적인 입출력 특성을 가지는 응용 프로그램에 대해서 한 쪽 인터페이스만으로는 최적의 성능을 달성할 수 없을 수 있다. 직접 접근 인터페이스는 작은 사이즈의 데이터를 입출력 할 시에 짧은 지연 시간을 가지는 장점이 있고, 간접 접근 인터페이스는 큰 사이즈의 데이터를 입출력 할 시에 높은 대역폭을 제공하는 장점이 있다. 이에 따라, 본 발명의 실시예에 따른 컴퓨팅 시스템은 응용프로그램의 입출력 특성에 따라 직접 접근 인터페이스와 간접 접근 인터페이스를 선택적으로 사용함으로써, 최적의 성능을 달성 할 수 있다. 이러한 본 발명의 실시예에 따른 컴퓨팅 시스템 및 그 동작 방법에 대해서 이하에서 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템(100)을 나타내는 블록도이다.
도 1에 나타낸 바와 같이 본 발명의 실시예에 따른 컴퓨팅 시스템(100)은 접근 인터페이스 설정부(110), 프로세서(120), 메인 메모리(130), 메모리 제어기(140), 그리고 저장 장치(150)를 포함한다.
본 발명의 실시예에 따른 인터페이스 설정부(110)는 호출되는 응용 프로그램이 저장 장치(150)를 사용하는 응용 프로그램인 경우, 응용 프로그램의 입출력을 위해 사용할 접근 방식을 결정한다. 여기서의 접근 방식은 직접(direct) 접근 인터페이스와 간접(indirect) 접근 인터페이스를 포함한다. 이러한 인터페이스 설정부(110)는 초기값 설정 단계, 경계값 측정 단계, 그리고 입력 처리 단계를 포함하는데 이에 대한 구체적인 설명은 아래의 도 2에서 좀 더 상세히 설명한다. 인터페이스 설정부(110)는 컴퓨터 시스템의 계층에서 디바이스 드라이버 또는 사용자 라이브러리를 통해 구현될 수 있다.
프로세서(120)는 접근 인터페이스 설정부(110)의 명령에 따라 해당 명령을 수행한다. 본 발명의 실시예에 따른 프로세서(120)는 접근 인터페이스 설정부(110)로부터 입력되는(요청되는) 접근 방식에 따라 메모리의 입출력을 수행한다. 프로세서(120)는 중앙처리유닛(Central Processing Unit, CPU)일 수 있다.
프로세서(120)는 데이터를 처리하고 결과를 저장하기 위해서 프로세서(120) 내부의 레지스터에 데이터를 가져와서 처리하고 처리한 결과를 메모리에 저장한다. 본 발명의 실시예에 따른 저장 장치(150)는 데이터를 가져오거나 저장하는 방법으로서 직접 접근 인터페이스와 간접 접근 인터페이스를 지원한다. 이하에서는 접근 인터페이스 설정부(110)로부터 입력되는 직접 접근 인터페이스와 간접 접근 인터페이스에 따라 프로세서(120)가 동작하는 방법에 대해서 설명한다.
먼저, 프로세서(120)가 접근 인터페이스 설정부(110)로부터 직접 접근 인터페이스의 요청(명령)이 입력되는 경우에 대해서 설명한다. 직접 접근 인터페이스의 요청(명령)이 입력되는 경우, 프로세서(120)는 프로세서(120) 내의 레지스터(register)와 저장 장치(150) 사이에서 직접 데이터를 이동시킨다. 이때, 프로세서(120)는 데이터가 저장된 또는 저장될 저장 장치(150)의 주소에 직접 접근하여 데이터를 읽거나 쓴다.
다음으로, 프로세서(120)가 접근 인터페이스 설정부(110)로부터 간접 접근 인터페이스의 요청(명령)이 입력되는 경우에 대해서 설명한다. 이러한 경우는 데이터를 읽어오는 과정과 데이터를 쓰는 과정이 약간의 차이가 있다.
첫 번째로 데이터를 읽어오는 과정을 설명하면 다음과 같다. 간접 접근 인터페이스의 요청(명령)이 입력되는 경우, 프로세서(120)는 읽기 원하는 데이터의 저장 장치(150) 내 주소(또는 블록 번호)와 읽어와서 저장할 메인 메모리(130) 내의 주소를 메모리 제어기(140)로 입력한다. 이때, 프로세서(120)는 저장 장치(150)로부터 메인 메모리(130)로의 직접 메모리 접근(Direct Memory Access, DMA)을 메모리 제어기(140)로 요청한다. 메모리 제어기(140)는 저장 장치(150)에서 해당 주소의 데이터를 읽어서 메인 메모리(130)의 주소에 저장하고 인터럽트(interrupt)를 발생시킨다. 프로세서(120)는 완료 인터럽트(interrupt)를 수신하고 메인 메모리(130)의 해당 주소로부터 레지스터로 데이터를 읽어 들인다.
두 번째로 데이터를 쓰는 과정을 설명하면 다음과 같다. 간접 접근 인터페이스의 요청(명령)이 입력되는 경우, 프로세서(120)는 저장 장치(150)에 저장하고자 하는 데이터를 레지스터로부터 메인 메모리(130) 내의 주소로 복사한다. 프로세서(120)는 저장할 데이터의 메인 메모리(130)의 주소와 저장될 저장 장치(150)의 주소(또는 블록 번호)를 메모리 제어기(140)로 입력한다. 이때, 프로세서(120)는 메인 메모리(130)로부터 저장 장치(150)로의 직접 메모리 접근(Direct Memory Access, DMA)을 메모리 제어기(140)로 요청한다. 메모리 제어기(140)는 메인 메모리(130)의 주소에서 데이터를 읽어서 저장 장치(150)의 해당 주소에 저장하고 인터럽트(interrupt)를 발생시킨다. 프로세서(120)가 완료 인터럽트(interrupt)를 수신하면 본 과정이 종료된다.
메인 메모리(130)는 프로세서(120)의 동작을 수행하는데 필요한 데이터를 저장한다. 메인 메모리(130)는 RAM(Random Access Memory)로 구현될 수 있다.
본 발명의 실시예에 따른 저장 장치(150)는 바이트 수준으로 입출력이 가능한 직접 접근 인터페이스와 블록 단위로 입출력 가능한 간접 접근 인터페이스를 모두 제공하는 저장 장치이다. 이러한 저장 장치(150)는 비휘발성 또는 휘발성 저장 장치 또는 메모리일 수 있다. 저장 장치(150)는 퍼시스턴트 메모리(Persistent Memory, PM) 또는 스토리지 클래스 메모리(Storage Class Memory, SCM)일 수 있다.
메모리 제어기(140)는 간접 접근 인터페이스를 제공하기 위해 프로세서(120)와 저장 장치(150) 사이에서 제어 역할을 수행한다. 저장 장치(150)가 퍼시스턴트 메모리(PM)인 경우, 메모리 제어기(140)는 퍼시스턴트 메모리 제어기일 수 있다. 그리고 저장 장치(150)가 스토리지 클래스 메모리(SCM)인 경우, 메모리 제어기(140)는 스토리지 클래스 메모리 제어기일 수 있다.
도 2는 본 발명의 실시예에 따른 접근 인터페이스 설정부(110)를 나타내는 블록도이다.
도 2에 나타낸 바와 같이, 본 발명의 실시예에 따른 접근 인터페이스 설정부(110)는 초기값 설정부(111), 경계값 측정부(112), 그리고 입출력 처리부(113)를 포함한다.
초기값 설정부(111)는 초기값 설정 단계를 수행한다. 초기값 설정부(111)는 사용자로부터 입출력 가능한 최소 단위 데이터 사이즈(Smin)와 최대 경계값(Smax)을 입력 받아, Smin과 Smax를 설정 파일에 저장한다. 여기서, 설정 파일은 도 1 및 도 2에서는 도시하지 않은 별도의 저장 장치(예를 들면, SSD, HDD, 테이프 등)에 저장될 수 있다. Smin 값은 저장 장치(150)가 지원하는 간접 접근 인터페이스의 최소 입출력 데이터의 크기에 따라 결정될 수 있다. 그리고 Smax 값은 Smin 값의 배수 중에서 컴퓨팅 시스템(100)의 상황에 맞게 적당한 값으로 설정될 수 있다. 한편 초기값 설정부(111)는 사용자에 의해 직접 접근 인터페이스에 대한 경로와 간접 접근 인터페이스에 대한 경로를 설정할 수 있다.
경계값 측정부(112)는 초기값 설정부(111)에 의해 설정된 초기값(Smin, Smax)을 이용하여, 읽기 임계 값과 쓰기 임계 값을 측정한다.
도 3은 본 발명의 실시예에 따른 경계값 측정부(112)의 동작 방법을 나타내는 플로우차트이다.
먼저, 경계값 측정부(112)는 직접 접근 인터페이스를 이용하여, 데이터 크기 별 읽기에 대한 지연 시간을 측정한다(S310). 경계값 측정부(112)는 Smin의 배수 크기(Smin, 2Smin, 3Smin, …)로 Smax까지 데이터 사이즈를 증가시키면서 직접 접근 인터페이스를 통한 읽기 동작을 수행하며, 이러한 읽기 동작 시에 발생되는 지연 시간을 데이터 사이즈(크기) 별로 측정한다. 여기서, 직접 접근 인터페이스 통한 읽기 동작의 실제 수행은 경계값 측정부(112)의 명령(요청)에 의해 프로세서(120)가 상기에서 설명한 직접 접근 인터페이스 방식을 통해 읽기 동작을 수행한다.
경계값 측정부(112)는 간접 접근 인터페이스를 이용하여, 데이터 크기 별 읽기에 대한 지연 시간을 측정한다(S320). 경계값 측정부(112)는 Smin의 배수 크기(Smin, 2Smin, 3Smin, …)로 Smax까지 데이터 사이즈를 증가시키면서 간접 접근 인터페이스를 통한 읽기 동작을 수행하며, 이러한 읽기 동작 시에 발생되는 지연 시간을 데이터 사이즈(크기) 별로 측정한다. 여기서, 간접 접근 인터페이스 통한 읽기 동작의 실제 수행은 경계값 측정부(112)의 명령(요청)에 의해 프로세서(120)가 상기에서 설명한 간접 접근 인터페이스 방식을 통해 읽기 동작을 수행한다.
경계값 측정부(112)는 상기 S310 단계에서 측정한 지연 시간과 상기 S320 단계에서 측정한 지연 시간을 비교하여, 읽기 임계값을 결정한다(S330). 즉, 경계값 측정부(112)는 상기 S310 단계에서 측정한 데이터 크기별 지연 시간과 상기 S320 단계에서 측정한 데이터 크기별 지연 시간을 비교하여, 지연 시간이 역전되는 데이터 사이즈를 찾는다. 여기서, 지연 시간이 역전되는 데이터 사이즈가 바로 읽기 임계값(Sread_threshold)이다.
경계값 측정부(112)는 쓰기에 대해서도 상기 S310 단계, S320 단계, S330 단계와 동일하게 적용하여, 쓰기 임계값(Swirte_threshold)을 결정한다(S340). 경계값 측정부(112)는 직접 접근 인터페이스를 이용하여, 데이터 크기 별 쓰기에 대한 지연 시간을 측정한다. 그리고 경계값 측정부(112)는 간접 접근 인터페이스를 이용하여, 데이터 크기 별 쓰기에 대한 지연 시간을 측정한다. 경계값 측정부(112)는 직접 접근 인터페이스에서 측정한 데이터 크기별 지연 시간과 간접 접근 인터페이스에서 측정한 데이터 크기별 지연 시간을 비교하여, 지연 시간이 역전되는 데이터 사이즈 찾는다. 여기서, 지연 시간이 역전되는 데이터 사이즈가 바로 쓰기 임계값(Swirte_threshold)이다.
경계값 측정부(112)는 상기 S330 단계에서 결정된 읽기 임계값(Sread_threshold)과 상기 S340 단계에서 결정된 쓰기 임계값(Swirte_threshold)을 설정 값으로 설정한다(S350). 이와 같은 설정 값은 디바이스 드라이버나 사용자 라이브러리의 내부 변수로 설정되고 디바이스 드라이버나 사용자 라이브러리 실행 시간 동안 계속해서 사용될 수 있다.
한편, 경계값 측정부(112)의 지연시간 측정과 경계값 설정은 디바이스 드라이버나 사용자 라이브러리 실행 시에 초기화 과정에서 실행될 수 있다.
입출력 처리부(113)는 응용 프로그램의 데이터 읽기 요청이 있는 경우, 요청한 데이터의 크기에 따라 직접 접근 인터페이스를 사용할지 또는 간접 접근 인터페이스를 사용할 지를 판단한다. 입출력 처리부(113)는 판단한 결과에 대응하는 접근 인터페이스를 프로세서(120)로 요청한다. 그리고 입출력 처리부(113)는 응용 프로그램의 데이터 쓰기 요청이 있는 경우, 요청한 데이터의 크기에 따라 직접 접근 인터페이스를 사용할지 또는 간접 접근 인터페이스를 사용할 지를 판단한다. 입출력 처리부(113)는 판단한 결과에 대응하는 접근 인터페이스를 프로세서(120)로 요청한다. 이러한 입출력 처리부(113)의 구체적인 동작은 아래의 도 4 및 도 5에서 좀더 상세히 설명한다.
도 4는 본 발명의 실시예에 따른 입출력 처리부(113)의 읽기 동작을 나타내는 플로우차트이다.
입출력 처리부(113)는 응용프로그램으로부터 데이터 읽기에 대한 요청을 수신하면, 요청 데이터의 크기와 읽기 임계값을 비교한다(S410). 즉, 응용프로그램의 읽기 요청이 있는 경우, 입출력 처리부(113)는 읽기 요청에 대응하는 데이터 크기와 경계값 측정부(112)에서 설정된 읽기 임계값(Sread_threshold)을 비교한다.
입출력 처리부(113)는 S410 단계에서 비교한 결과로서 요청 데이터의 크기가 읽기 임계값보다 작거나 같은 경우, 직접 접근 인터페이스의 사용을 프로세서(120)로 요청한다(S420, S430). 여기서, 프로세서(120)는 입출력 처리부(113)로부터 직접 접근 인터페이스의 사용을 요청 받은 경우, 직접 접근 인터페이스를 통해 저장 장치(150)에 접근하여 읽기 동작을 수행한다.
입출력 처리부(113)는 S410 단계에서 비교한 결과로서 요청 데이터의 크기가 읽기 임계값보다 큰 경우, 간접 접근 인터페이스의 사용을 프로세서(120)로 요청한다(S420, S440). 여기서, 프로세서(120)는 입출력 처리부(113)로부터 간접 접근 인터페이스의 사용을 요청 받은 경우, 간접 접근 인터페이스를 통해 저장 장치(150)에 접근하여 읽기 동작을 수행한다.
도 5는 본 발명의 실시예에 따른 입출력 처리부(113)의 쓰기 동작을 나타내는 플로우차트이다.
입출력 처리부(113)는 응용프로그램으로부터 데이터 쓰기에 대한 요청을 수신하면, 요청 데이터의 크기와 쓰기 임계값을 비교한다(S510). 즉, 응용프로그램의 쓰기 요청이 있는 경우, 입출력 처리부(113)는 쓰기 요청에 대응하는 데이터 크기와 경계값 측정부(112)에서 설정된 쓰기 임계값(Swrite_threshold)을 비교한다.
입출력 처리부(113)는 S510 단계에서 비교한 결과로서 요청 데이터의 크기가 쓰기 임계값보다 작거나 같은 경우, 직접 접근 인터페이스의 사용을 프로세서(120)로 요청한다(S520, S530). 여기서, 프로세서(120)는 입출력 처리부(113)로부터 직접 접근 인터페이스의 사용을 요청 받은 경우, 직접 접근 인터페이스를 통해 저장 장치(150)에 접근하여 쓰기 동작을 수행한다.
입출력 처리부(113)는 S510 단계에서 비교한 결과로서 요청 데이터의 크기가 쓰기 임계값보다 큰 경우, 간접 접근 인터페이스의 사용을 프로세서(120)로 요청한다(S520, S540). 여기서, 프로세서(120)는 입출력 처리부(113)로부터 간접 접근 인터페이스의 사용을 요청 받은 경우, 간접 접근 인터페이스를 통해 저장 장치(150)에 접근하여 쓰기 동작을 수행한다.
이와 같은 본 발명의 실시예에 따른 컴퓨팅 시스템은 응용프로그램의 입출력 데이터 사이즈의 크기에 따라 직접 접근 인터페이스 또는 간접 접근 인터페이스를 선택적으로 적용함으로써, 최적의 입출력 성능을 달성할 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (19)

  1. 직접 접근 인터페이스와 간접 접근 인터페이스를 모두 제공하는 저장 장치,
    호출되는 응용프로그램의 입출력 특성에 따라 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스 중 어느 하나를 사용할지를 결정하는 접근 인터페이스 설정부, 그리고,
    상기 결정된 접근 인터페이스에 따라 상기 저장 장치에 접근하는 프로세서를 포함하고,
    상기 접근 인터페이스 설정부는 상기 응용프로그램의 데이터 크기를 소정의 임계값과 비교하며 비교 결과에 따라 상기 직접 접근 인터페이스와 상기 간접 접근 인터페이스 중 어느 하나를 사용할지를 결정하며,
    상기 응용프로그램이 읽기 동작을 요청하는 경우, 상기 소정의 임계값은 읽기 임계값이며, 상기 응용프로그램의 쓰기 동작을 요청하는 경우, 상기 소정의 임계값은 쓰기 임계값이며,
    상기 접근 인터페이스 설정부는, 데이터 크기 별로 상기 직접 접근 인터페이스를 적용하여 측정된 제1 지연 시간과 상기 데이터 크기 별로 상기 간접 접근 인터페이스를 적용하여 측정된 제2 지연 시간을 이용하여, 상기 임계값을 결정하는 경계값 측정부를 포함하며,
    상기 경계값 측정부는 상기 제1 지연 시간과 상기 제2 지연 시간을 비교하여, 지연 시간이 역전되는 데이터 크기를 상기 임계값으로 결정하며,
    상기 임계값은 디바이스 드라이버나 사용자 라이브러리의 내부 변수로 설정되고 디바이스 드라이버나 사용자 라이브러리 실행 시간 동안 계속해서 사용되며,
    상기 저장 장치에서 사용될 수 있는 최소 데이터 크기와 최대 경계값을 설정하는 초기값 설정부를 더 포함하며,
    상기 경계값 측정부는 상기 최소 데이터 크기부터 상기 최대 경계값까지 데이터 크기를 늘리며 상기 제1 및 제2 지연 시간을 측정하며,
    상기 저장 장치와 상기 프로세서 사이에서 상기 간접 접근 인터페이스를 제어하는 메모리 제어기를 더 포함하며,
    상기 직접 접근 인터페이스는 상기 프로세서가 직접 상기 저장 장치에 접근하는 방식이며, 상기 간접 접근 인터페이스는 상기 프로세서가 상기 메모리 제어기를 통해 상기 저장 장치에 접근하는 방식이며,
    상기 접근 인터페이스 설정부는 상기 데이터의 크기가 상기 소정의 임계값보다 작거나 같은 경우 상기 직접 접근 인터페이스를 사용하는 것으로 결정하며 상기 데이터의 크기가 상기 소정의 임계값보다 큰 경우 상기 간접 접근 인터페이스를 사용하며,
    상기 저장 장치는 퍼시스턴트 메모리(Persistent Memory, PM) 또는 스토리지 클래스 메모리(Storage Class Memory, SCM)인 컴퓨팅 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
KR1020200052591A 2020-04-29 2020-04-29 컴퓨팅 시스템 및 그 동작 방법 KR102591808B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200052591A KR102591808B1 (ko) 2020-04-29 2020-04-29 컴퓨팅 시스템 및 그 동작 방법
US17/241,503 US20210342081A1 (en) 2020-04-29 2021-04-27 Computing system and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200052591A KR102591808B1 (ko) 2020-04-29 2020-04-29 컴퓨팅 시스템 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20210133675A KR20210133675A (ko) 2021-11-08
KR102591808B1 true KR102591808B1 (ko) 2023-10-23

Family

ID=78292814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052591A KR102591808B1 (ko) 2020-04-29 2020-04-29 컴퓨팅 시스템 및 그 동작 방법

Country Status (2)

Country Link
US (1) US20210342081A1 (ko)
KR (1) KR102591808B1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4223052B2 (ja) * 2006-06-02 2009-02-12 三洋電機株式会社 デジタルカメラ
KR101231055B1 (ko) * 2008-12-19 2013-02-07 한국전자통신연구원 프로세서의 메모리 제어신호를 이용한 디스크 시스템
KR20130000963A (ko) * 2011-06-24 2013-01-03 삼성전자주식회사 반도체 저장 시스템
KR20160044847A (ko) * 2014-10-16 2016-04-26 에스케이하이닉스 주식회사 저항변화 메모리 장치, 이를 위한 읽기쓰기 회로부 및 동작 방법
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
일본공개특허 제2006-319993호(2006.11.24.) 1부.*
한국공개특허 제10-2013-0000963호(2013.01.03.) 1부.*
한국공개특허 제10-2016-0044847호(2016.04.26.) 1부.*
한국공개특허 제10-2018-0123625호(2018.11.19.) 1부.*
한국등록특허 제10-1231055호(2013.02.07.) 1부.*

Also Published As

Publication number Publication date
KR20210133675A (ko) 2021-11-08
US20210342081A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
KR101761044B1 (ko) 메모리 채널 셧다운에 의한 전력 절약
US7467269B2 (en) Storage apparatus and storage apparatus control method
KR102423713B1 (ko) 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
US20140095555A1 (en) File management device and method for storage system
US10430329B2 (en) Quality of service aware storage class memory/NAND flash hybrid solid state drive
KR20170104286A (ko) 데이터 저장 장치의 동작 방법
US20210216220A1 (en) Storage device and operation method thereof
KR20220041937A (ko) 메모리 유형에 대한 페이지 테이블 후크
US11748001B2 (en) Techniques to predict or determine time-to-ready for a storage device
CN110941395A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
US11507312B2 (en) Storage device and method for accelerating storage device write and read speed
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
TWI571738B (zh) 儲存裝置、加快啟動程序的方法與儲存控制器
US11269559B2 (en) Data processing device
JP2020191055A (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US11366770B2 (en) Storage controller managing completion timing, and operating method thereof
KR20170133574A (ko) 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR102591808B1 (ko) 컴퓨팅 시스템 및 그 동작 방법
JP2022050757A (ja) メモリシステム
KR20220148944A (ko) 호스트 시스템의 워크로드에 기초하여 저장 장치에 대한 판독 동작 식별
US11507311B2 (en) Storage device for accelerating write speed and read speed
JP6100750B2 (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
US10838855B2 (en) Storage system and storage control method
CN111177027A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant