KR101254911B1 - 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체 - Google Patents

다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체 Download PDF

Info

Publication number
KR101254911B1
KR101254911B1 KR1020120009644A KR20120009644A KR101254911B1 KR 101254911 B1 KR101254911 B1 KR 101254911B1 KR 1020120009644 A KR1020120009644 A KR 1020120009644A KR 20120009644 A KR20120009644 A KR 20120009644A KR 101254911 B1 KR101254911 B1 KR 101254911B1
Authority
KR
South Korea
Prior art keywords
input
storage device
output
request
output request
Prior art date
Application number
KR1020120009644A
Other languages
English (en)
Inventor
염헌영
유영진
웅 신
최국태
송내영
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020120009644A priority Critical patent/KR101254911B1/ko
Application granted granted Critical
Publication of KR101254911B1 publication Critical patent/KR101254911B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Abstract

본 발명의 실시예는, 저장 디바이스의 명령 대기열에 프리 태그가 존재하는지 여부를 판단하는 단계; 및 상기 판단 결과 프리 태그가 존재하는 것으로 판단되면, 입출력 요청을 저장 디바이스로 직접 전달하는 단계를 포함하는 다중 경로를 통한 입출력 방법을 제공한다.

Description

다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체{METHOD, SYSTEM AND COMPUTER-READABLE RECORDING MEDIUM FOR PERFORMING DATA INPUT AND OUTPUT VIA MULTIPLE PATH}
본 발명은 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체에 관한 것으로, 보다 상세하게는 입출력 요청에 대한 스케줄링을 상황에 따라 생략할 수 있도록 함으로써 데이터 입출력 처리 속도를 향상시키는 방법, 시스템 및 컴퓨터 판독 가능 기록 매체에 관한 것이다.
통상적인 운영 체제에서는 하나의 디바이스를 대상으로 여러가지의 명령이 발생할 수 있다. 그러나, 이러한 명령이 발생할 때마다 해당 디바이스에 직접 접근하는 것은 매우 비효율적이다. 예를 들어, 어떠한 운영 체제에서 데이터 입출력 요청이 발생하는 경우 별도의 프로세서에 의한 프로그램의 실행 없이 직접 해당 데이터를 입출력할 수 있도록 하는 DMA(Direct Memory Access) 방식이 효율적인 방법이긴 하지만, 입출력 요청이 발생하는 경우마다 매번 DMA 방식을 이용하는 것도 효율적인 방법이 아닐 수 있다.
따라서, 소정 디바이스에 대한 명령이 발생할 때, 해당 명령들에 대한 스케줄링 과정이 필요하다. 스케줄링은 해당 명령들에 대한 병합(merge) 또는 정렬(sort)을 포함하는 개념이다. 병합이라는 것은 복수의 명령을 묶어 적절한 시점에 해당 디바이스로 전달할 수 있도록 하는 것이고, 정렬은 소정 규칙에 따라 각 명령 간의 순서를 결정하는 것이다.
그러나, 최근 저장 디바이스 등의 속도가 매우 빨라짐에 따라 스케줄링을 이용한 입출력 요청의 처리는 많은 문제점을 야기하고 있다. 즉, 저장 디바이스 속도는 빠름에도 불구하고, 입출력 요청에 대한 스케줄링으로 인해 데이터의 동기화가 어려워지고, 데이터의 입출력 속도는 저장 디바이스의 최대 성능에 못미치게 되는 문제점이 발생하였다.
이러한 문제점을 해결하기 위한 많은 노력이 있었지만, 여전히 스케줄링 등의 많은 과정을 동반함에 따라 최적화된 성능 구현이 되지 못하고 있는 실정이다.
따라서, 저장 디바이스의 빠른 속도를 최대한 이용할 수 있도록 하는 데이터 입출력 방식에 대한 개발이 시급하다.
한국특허공개공보 제10-2011-0004651호(공개일: 2011년 1월 14일)
본 발명은 상술한 종래 기술의 문제점을 모두 해결하는 것을 그 목적으로 한다.
본 발명은 입출력 요청에 대한 스케줄링을 상황에 따라 선택적으로 수행함으로써 입출력 요청에 대한 처리 속도를 향상시키는 것을 목적으로 한다.
본 발명의 실시예에 따르면, 저장 디바이스의 명령 대기열에 프리 태그가 존재하는지 여부를 판단하는 파일 시스템; 및 상기 판단 결과 프리 태그가 존재하는 것으로 판단되는 경우, 입출력 요청을 저장 디바이스로 직접 전달하는 빠른 경로 입출력 모듈을 포함하는 다중 경로 입출력 시스템이 제공된다.
상기 시스템은, 상기 판단 결과 프리 태그가 존재하지 않는 것으로 판단되는 경우, 상기 입출력 요청을 스케줄링하는 스케줄러 블록을 더 포함할 수 있다.
상기 시스템은, 상기 스케줄러 블록에 의해 스케줄링된 입출력 요청을 상기 저장 디바이스로 전달하는 느린 경로 입출력 모듈을 더 포함할 수 있다.
상기 빠른 경로 입출력 모듈은 상기 프리 태그가 실제로는 존재하지 않는 경우 상기 입출력 요청을 상기 스케줄러 블록으로 전달할 수 있다.
상기 스케줄러 블록은 상기 입출력 요청을 병합 또는 정렬할 수 있다.
상기 빠른 경로 입출력 모듈을 통한 입출력 요청 전달에 따른 데이터의 입출력은 상기 요청과 동기화되어 처리될 수 있다.
본 발명의 다른 실시예에 따르면, 저장 디바이스의 명령 대기열에 프리 태그가 존재하는지 여부를 판단하는 단계; 및 상기 판단 결과 프리 태그가 존재하는 것으로 판단되면, 입출력 요청을 저장 디바이스로 직접 전달하는 단계를 포함하는 다중 경로를 통한 입출력 방법이 제공된다.
상기 입출력 방법은, 상기 판단 결과 프리 태그가 존재하지 않는 것으로 판단되면, 상기 입출력 요청을 스케줄링하여 상기 저장 디바이스에 전달하는 단계를 더 포함할 수 있다.
상기 입출력 요청을 전달하는 단계는, 상기 프리 태그가 실제로는 존재하지 않는 경우, 상기 입출력 요청을 스케줄링하여 상기 디바이스에 전달하는 단계를 포함할 수 있다.
상기 스케줄링은 상기 입출력 요청에 대한 병합 또는 정렬을 포함할 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 필요에 따라 스케줄링 과정을 생략하여 입출력 속도를 향상시킬 수 있도록 하는 다른 방법 및 이러한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 제공된다.
본 발명에 따르면, 필요에 따라 입출력 요청에 대한 스케줄링 과정을 생략함으로써, 빠른 속도를 갖는 저장 디바이스의 성능을 사용자로 하여금 최대한 느낄 수 있도록 할 수 있다.
도 1은 본 발명의 실시예에 따른 다중 경로 입출력 시스템의 구성을 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 다중 경로를 통한 입출력 방법을 설명하기 위한 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
도 1은 본 발명의 실시예에 따른 다중 경로 입출력 시스템의 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 다중 경로 입출력 시스템은 파일 시스템(110), 빠른 경로 입출력 모듈(120), 느린 경로 입출력 모듈(130), 스케줄러 블록(140), 저장 디바이스(150)를 포함하여 구성될 수 있다. 본 발명에 따른 파일 시스템(110), 빠른 경로 입출력 모듈(120), 느린 경로 입출력 모듈(130), 스케줄러 블록(140), 저장 디바이스(150)는 그 중 적어도 일부가 본 발명의 저장 시스템에 포함되는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 구현될 수 있고, 그러한 운영 시스템, 응용 프로그램에 의해 동작될 수 있다. 상기 구성요소들은 물리적 개념일 수도 있으나, 논리적 또는 프로그램적 개념일 수도 있으며, 해당 명칭들은 본 발명의 동작을 설명하기 위해 기능적으로 붙여진 명칭일 뿐이며, 동일 또는 이와 유사한 동작을 수행할 수 있다면 물리적 또는 논리적 개념을 불문하고 본 발명의 구성요소와 대체될 수 있다. 본 발명의 실시예에 따른 상기 구성요소들이 프로그램 모듈로 구성되는 경우, 이러한 모듈은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
본 발명의 실시예에 따른 파일 시스템(110)은 저장 디바이스(150)에 대한 데이터 입출력 요청의 경로를 결정하는 기능을 수행한다. 구체적으로, 데이터 입출력 요청이 빠른 경로 입출력 모듈(120)을 통해 이루어질 수 있는지 여부를 결정한다. 빠른 경로 입출력 모듈(120)을 통해 이루어질 수 없는 것으로 결정되면 느린 경로 입출력 모듈(130) 및 스케줄러 블록(140)을 통해 데이터 입출력 요청이 이루어지게 된다. 이하에서는 설명의 편의를 위해 빠른 경로 입출력 모듈(120)을 통한 데이터 입출력 요청의 경로를 "빠른 경로"라고 하고, 느린 경로 입출력 모듈(130) 및 스케줄러 블록(140)을 통한 데이터 입출력 요청의 경로를 "느린 경로"라고 하기로 한다.
데이터 입출력 요청에 대한 경로의 결정에 대해 구체적으로 설명하면 다음과 같다. 기본적으로는 저장 디바이스(150)가 휴지(idle) 상태인지 여부에 따라 데이터의 입출력 요청의 경로가 결정되는 개념이다. 예를 들어, 데이터 입력 명령이 발생하는 경우, 파일 시스템(110)은 저장 디바이스(150)가 현재 휴지 상태인지 여부를 파악하고, 휴지 상태라면, 해당 입출력 요청을 빠른 경로를 통해 저장 디바이스(150)로 전달한다. 또한, 휴지 상태가 아닌 것으로 판단된다면, 해당 입출력 요청을 느린 경로를 통해 전달한다.
보다 상세하게 설명하면, 일반적으로 저장 디바이스(150)는 명령 대기열(Command Queueing)을 지원한다. 예를 들면, 저장 디바이스(150)가 SATA2(Serial ATA2)로 구현되는 경우에는 32개까지의 요청을 이전 요청에 대한 작업 완료와 상관없이 보낼 수 있다. 만약, 저장 디바이스(150)에 32번째까지의 요청이 전달된 상태에서 운영 체제에 의해 추가적인 입출력 요청이 발생한다면, 이 요청은 저장 디바이스(150)로 보내질 수 없는 상태가 된다. 저장 디바이스(150)가 지원하는 명령 대기열 중 현재 점유되지 않은 열을 프리 태그(Free Tag)라고 한다. 즉, 프리 태그가 존재한다는 것은 운영 체제에서 발생한 입출력 요청이 저장 디바이스(150)에 직접적으로 전달될 수 있다는 것이다.
파일 시스템(110)은 저장 디바이스(150)의 명령 대기열에 프리 태그가 존재하는 지를 판단한다. 그 후, 프리 태그가 존재하는 것으로 판단되면 입출력 요청의 경로로서 빠른 경로를 선택하고, 그렇지 않다면, 느린 경로를 선택한다.
만약 저장 디바이스(150)가 휴지 상태라면, 당연히 프리 태그는 존재할 것이므로, 입출력 요청의 경로로서 빠른 경로가 선택되게 된다.
파일 시스템(110)은 보통의 파일 시스템(FS: File System) 또는 가상 파일 시스템(VFS: Virtual File System)으로 구현될 수 있다.
본 발명의 실시예에 따른 빠른 경로 입출력 모듈(120)은 파일 시스템(110)에 의해 빠른 경로로 선택된 입출력 요청을 전달하는 기능을 수행한다. 입출력 요청에 따른 데이터 입력은 파일 시스템(110)으로부터 저장 디바이스(150) 방향으로 이루어질 수 있고, 데이터 출력은 저장 디바이스(150)에서 파일 시스템(110) 방향으로 이루어질 수 있다. 빠른 경로 입출력 모듈(120)을 통한 데이터 입출력은 해당 요청에 대한 스케줄링 없이 진행되므로, 요청과 동기화되어 이루어질 수 있다. 이러한 동기화된 데이터 입출력 경로를 도 1에서는 실선으로 나타내었다. 빠른 경로 입출력 모듈(120)은 저장 디바이스(150)의 명령 대기열에 프리 태그가 존재할 때, 당해 입출력 요청이 공통 블록 계층(Generic Block Layer)으로 바로 등록되어 스케줄링 없이 바로 저장 디바이스(150)로 전달될 수 있도록 한다. 즉, 빠른 경로 입출력 모듈(120)은 입출력 요청이 공통 블록 계층에 곧바로 등록이 되도록 콜백(callback) 형태로 구현될 수 있다. 본 발명의 실시예에 따른 빠른 경로 입출력 모듈(120)은 하나의 모듈로 구현될 수도 있으나, 동일 운영 체제(예를 들면, 리눅스 등) 하에서 서로 다른 서브시스템에 등록된 두 가지 이상의 모듈 집합으로 구현될 수도 있다.
한편, 파일 시스템(110)에 의해 1차적으로 빠른 경로가 선택되어 당해 입출력 요청이 빠른 경로 입출력 모듈(120)로 들어왔을지라도, 실제 프리 태그가 없다면, 느린 경로로 재결정될 수 있다. 이러한 경우에는 해당 입출력 요청이 스케줄러 블록(140)을 경유할 수 있다.
본 발명의 실시예에 따른 느린 경로 입출력 모듈(130)은 파일 시스템(110)에 의해 느린 경로로 선택된 입출력 요청을 관리하는 기능을 수행한다. 저장 디바이스(150)의 명령 대기열에 프리 태그가 없다면 해당 입출력 요청은 스케줄러 블록(140)를 통해 처리된 후 느린 경로 입출력 모듈(130)을 통해 저장 디바이스(150)로 전달된다. 이러한 입출력 요청 전달에 따라 저장 디바이스(150)로의 데이터 입력 또는 저장 디바이스(150)로부터의 데이터 출력이 가능해지게 된다. 느린 경로 입출력 모듈(130) 또한 하나의 모듈로 구현될 수도 있으나, 동일 운영 체제(예를 들면, 리눅스 등) 하에서 서로 다른 서브시스템에 등록된 두 가지 이상의 모듈 집합으로 구현될 수도 있다. 느린 경로 입출력 모듈(130)은 해당 입출력 요청이 별도 커널 쓰레드(Thread)에 의해 소모(consume)될 수 있도록 콜백 형태로 구현될 수 있다.
본 발명의 실시예에 따른 스케줄러 블록(140)은 느린 경로로 전달될 것으로 결정된 입출력 요청에 대한 스케줄링을 담당한다. 도면에서는 스케줄러 블록(140)이라고 표시하였지만, 이는 다른 블록 계층에 포함되는 개념일 수도 있다. 예를 들어, 운영 체제(리눅스 등)에 통상적으로 존재하는 공통 블록 계층에 포함되는 개념일 수도 있다. 스케줄러 블록(140)은 느린 경로를 통해 전달될 것으로 결정된 입출력 요청들을 병합함과 동시에 각 요청들이 효율적으로 처리될 수 있도록 저장 디바이스(150)에 보내질 순서를 결정한다. 즉, 각 입출력 요청들을 하나로 모으는 병합(merge)과 가장 효율적인 순서를 정의하기 위한 정렬(sort)을 수행한다. 스케줄러 블록(140)에 의해 입출력 요청이 병합 또는 정렬되기 때문에, 스케줄러 블록(140)으로부터 전달되는 입출력 요청 또는 스케줄러 블록(140)에 의해 스케줄링 되어 입출력되는 데이터는 입출력 요청의 발생과의 관계에서 비동기적으로 이루어질 수밖에 없다. 도면에서는 비동기화된 과정을 파선으로 표시하였다. 입출력 요청에 대한 스케줄링은 통상적인 방법과 동일하게 수행될 수 있으므로, 여기서는 그 설명을 생략하기로 한다.
본 발명의 실시예에 따른 저장 디바이스(150)는 데이터 입출력 요청에 대한 대상 장소가 된다. 저장 디바이스(150)는 입력 요청에 대응하여 해당 데이터를 저장하고, 출력 요청에 대응하여 해당 데이터를 송출한다. 이러한 저장 디바이스(150)는 하드웨어적인 개념으로 구성될 수 있으며, 통상적인 저장 매체, 예를 들면, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치일 수 있다. 또한, 이와는 다른 고성능 저장 매체, 예를 들면, 플레시 SSD, DRAM SSD 등의 하드웨어 장치일 수도 있다. 그러나, 이는 일례에 불과할 뿐이며, 다른 저장 장치가 본 발명의 저장 디바이스(150)로 사용될 수 있음은 물론이다.
이하에서는, 본 발명의 실시예에 따른 다중 경로를 통한 입출력 방법을 설명한다.
도 2는 본 발명의 실시예에 따른 다중 경로를 통한 입출력 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 운영 체체에 의해 입출력 요청이 발생한다(S210). 입출력 요청이 발생하면 현재 저장 디바이스(150)의 명령 대기열에 프리 태그가 존재하는지 여부를 확인한다(S220).
프리 태그가 존재한다면, 해당 입출력 요청은 빠른 경로 입출력 모듈을 통해 빠른 경로로 전달된다. 즉, 스케줄링 과정 없이 저장 디바이스(150)로 바로 전달된다. 그러나, 1차적으로 빠른 경로를 통해 전달될 것으로 결정되었다 할지라도 그 과정 중 실제 프리 태그가 없다는 것이 파악되면(S230), 느린 경로로 전환될 수 있다. 즉, 해당 입출력 요청은 스케줄링 과정(S240)을 통해 스케줄링된 후 저장 디바이스(150)로 전달된다. 빠른 경로로 전달된 입출력 요청은 저장 디바이스(150)에 의해 동기화되어 처리된다(S250).
한편, 단계 S220에서의 판단 결과, 프리 태그가 존재하지 않는 것으로 판단되면, 운영 체제에 의해 발생된 입출력 요청은 느린 경로 입출력 모듈을 통해 느린 경로로 전달된다. 구체적으로는, 스케줄러 블록(140)을 통해 스케줄링(예를 들면, 병합 또는 정렬 등)되어(S240), 저장 디바이스(150)에 전달되고, 저장 디바이스(150)는 해당 입출력 요청을 처리한다(S250).
이러한 방법에 따르면, 운영 체제에 의해 발생되는 입출력 요청이 필요한 경우에만 스케줄러를 거치게 된다. 구체적으로, 저장 디바이스의 명령 대기열에 프리 태그가 존재하는 경우에는 스케줄러를 거치지 않고, 바로 저장 디바이스로 전달될 수 있도록 함으로써, 처리 속도가 향상될 수 있다. 또한, 필요한 경우에는 스케줄러를 거치도록 함으로써, 해당 입출력 요청이 효율적으로 저장 디바이스로 전달될 수 있게 된다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
110: 파일 시스템
120: 빠른 경로 입출력 모듈
130: 느린 경로 입출력 모듈
140: 스케줄러 블록
150: 저장 디바이스

Claims (11)

  1. 저장 디바이스의 명령 대기열에 프리 태그가 존재하는지 여부를 판단하는 파일 시스템; 및
    상기 판단 결과 프리 태그가 존재하는 것으로 판단되는 경우, 입출력 요청을 저장 디바이스로 직접 전달하는 빠른 경로 입출력 모듈을 포함하는 다중 경로 입출력 시스템.
  2. 제1항에 있어서,
    상기 판단 결과 프리 태그가 존재하지 않는 것으로 판단되는 경우, 상기 입출력 요청을 스케줄링하는 스케줄러 블록을 더 포함하는 다중 경로 입출력 시스템.
  3. 제2항에 있어서,
    상기 스케줄러 블록에 의해 스케줄링된 입출력 요청을 상기 저장 디바이스로 전달하는 느린 경로 입출력 모듈을 더 포함하는 다중 경로 입출력 시스템.
  4. 제2항에 있어서,
    상기 빠른 경로 입출력 모듈은 상기 프리 태그가 실제로는 존재하지 않는 경우 상기 입출력 요청을 상기 스케줄러 블록으로 전달하는 다중 경로 입출력 시스템.
  5. 제2항에 있어서,
    상기 스케줄러 블록은 상기 입출력 요청을 병합 또는 정렬하는 다중 경로 입출력 시스템.
  6. 제1항에 있어서,
    상기 입출력 요청에 따른 데이터의 입출력은 상기 요청과 동기화되어 처리되는 다중 경로 입출력 시스템.
  7. 저장 디바이스의 명령 대기열에 프리 태그가 존재하는지 여부를 판단하는 단계; 및
    상기 판단 결과 프리 태그가 존재하는 것으로 판단되면, 입출력 요청을 저장 디바이스로 직접 전달하는 단계를 포함하는 다중 경로를 통한 입출력 방법.
  8. 제7항에 있어서,
    상기 판단 결과 프리 태그가 존재하지 않는 것으로 판단되면, 상기 입출력 요청을 스케줄링하여 상기 저장 디바이스에 전달하는 단계를 더 포함하는 다중 경로를 통한 입출력 방법.
  9. 제7항에 있어서,
    상기 입출력 요청을 전달하는 단계는,
    상기 프리 태그가 실제로는 존재하지 않는 경우, 상기 입출력 요청을 스케줄링하여 상기 디바이스에 전달하는 단계를 포함하는 다중 경로를 통한 입출력 방법.
  10. 제8항에 있어서,
    상기 스케줄링은 상기 입출력 요청에 대한 병합 또는 정렬을 포함하는 다중 경로를 통한 입출력 방법.
  11. 제7항 내지 제10항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체.
KR1020120009644A 2012-01-31 2012-01-31 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체 KR101254911B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120009644A KR101254911B1 (ko) 2012-01-31 2012-01-31 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120009644A KR101254911B1 (ko) 2012-01-31 2012-01-31 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체

Publications (1)

Publication Number Publication Date
KR101254911B1 true KR101254911B1 (ko) 2013-04-18

Family

ID=48443178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120009644A KR101254911B1 (ko) 2012-01-31 2012-01-31 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체

Country Status (1)

Country Link
KR (1) KR101254911B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200114274A (ko) * 2019-03-28 2020-10-07 국민대학교산학협력단 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063126A (ja) 2000-08-18 2002-02-28 Fujitsu Ltd マルチパス計算機システム
KR20030007425A (ko) * 2000-02-14 2003-01-23 인텔 코오퍼레이션 고속 및 저속 리플레이 경로를 갖는 리플레이 구조를구비한 프로세서
JP2004078824A (ja) 2002-08-22 2004-03-11 Matsushita Electric Ind Co Ltd 命令スケジューリング方法、命令スケジューリング装置、及びプログラム
WO2009133354A2 (en) 2008-04-28 2009-11-05 Imagination Technologies Limited System for providing trace data in a data processor having a pipelined architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030007425A (ko) * 2000-02-14 2003-01-23 인텔 코오퍼레이션 고속 및 저속 리플레이 경로를 갖는 리플레이 구조를구비한 프로세서
JP2002063126A (ja) 2000-08-18 2002-02-28 Fujitsu Ltd マルチパス計算機システム
JP2004078824A (ja) 2002-08-22 2004-03-11 Matsushita Electric Ind Co Ltd 命令スケジューリング方法、命令スケジューリング装置、及びプログラム
WO2009133354A2 (en) 2008-04-28 2009-11-05 Imagination Technologies Limited System for providing trace data in a data processor having a pipelined architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200114274A (ko) * 2019-03-28 2020-10-07 국민대학교산학협력단 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법
KR102202211B1 (ko) * 2019-03-28 2021-01-13 국민대학교산학협력단 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법

Similar Documents

Publication Publication Date Title
US7685347B2 (en) Interrupt controller for invoking service routines with associated priorities
US11003489B2 (en) Cause exception message broadcast between processing cores of a GPU in response to indication of exception event
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
US8108571B1 (en) Multithreaded DMA controller
US8676976B2 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
JP5803972B2 (ja) マルチコアプロセッサ
KR20200011958A (ko) Gpu 태스크 스케줄링을 위한 연속 분석 태스크
US7590990B2 (en) Computer system
WO2013041366A1 (en) Concurrent processing of queued messages
US20180260257A1 (en) Pld management method and pld management system
US7350005B2 (en) Handling interrupts in a system having multiple data processing units
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
US7631132B1 (en) Method and apparatus for prioritized transaction queuing
CN107015931A (zh) 用于中断处理的方法和加速器单元
JP5521610B2 (ja) 入出力制御装置、入出力制御方法
US20190272196A1 (en) Dispatching jobs for execution in parallel by multiple processors
KR20140096587A (ko) 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서
KR101254911B1 (ko) 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체
KR20140131781A (ko) 메모리 제어 장치 및 방법
US11593159B2 (en) External exception handling
CN110955507B (zh) 基于vxWorks系统的多任务访问同一IIC总线的方法
Jeong et al. Azalea unikernel IO offload acceleration
WO2019188182A1 (ja) プリフェッチコントローラ
KR20220114448A (ko) 메모리 컨트롤러 및 메모리 제어 방법
CN113918307A (zh) 一种任务处理方法、装置、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee