KR100648065B1 - File system for the hardward using the i/o acceleration technique and method for processing data in the same - Google Patents
File system for the hardward using the i/o acceleration technique and method for processing data in the same Download PDFInfo
- Publication number
- KR100648065B1 KR100648065B1 KR1020050086181A KR20050086181A KR100648065B1 KR 100648065 B1 KR100648065 B1 KR 100648065B1 KR 1020050086181 A KR1020050086181 A KR 1020050086181A KR 20050086181 A KR20050086181 A KR 20050086181A KR 100648065 B1 KR100648065 B1 KR 100648065B1
- Authority
- KR
- South Korea
- Prior art keywords
- file system
- manager
- file
- disk
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 입출력 가속 기술이 적용된 하드웨어용 파일 시스템 및 그 파일 시스템에서의 데이터 처리 방법에 관한 것이다. 이 파일 시스템의 메소드 관리자는 디스크에 저장된 파일에 대한 액세스를 필요로 하는 메소드를 받아서 상기 입출력 가속 기술이 적용된 하드웨어에 대한 블록 디바이스 처리와 문자 디바이스 처리 중 어느 하나를 선택하여 상기 파일에 대한 액세스를 제어한다. 저속-경로 관리자 메소드 관리자의 제어에 따라 입출력 가속 기술이 적용된 하드웨어에 대한 블록 디바이스 처리를 수행한다. 고속-경로 관리자는 메소드 관리자의 제어에 따라 입출력 가속 기술이 적용된 하드웨어에 대한 문자 디바이스 처리를 수행한다. 캐쉬 관리자는 저속-경로 관리자의 제어에 의해, 디스크에 저장된 데이터의 일부를 캐슁하는 캐쉬를 통해 디스크에 저장된 파일 액세스를 수행한다. 입출력 가속 관리자는 고속-경로 관리자의 제어에 의해, 입출력 가속 기술이 적용된 하드웨어를 통하여 디스크에 저장된 데이터의 입출력 가속을 위한 메모리 영역으로의 복사 동작이 수행되도록 제어한다. 본 발명에 따르면, 입출력 가속 기술이 사용된 하드웨어에 대해서도 기존의 유닉스 파일 시스템의 표준 인터페이스를 통한 지원이 가능해진다. The present invention relates to a file system for hardware to which input / output acceleration technology is applied and a data processing method in the file system. The method manager of this file system receives a method requiring access to a file stored on a disk, and controls access to the file by selecting either block device processing or character device processing for the hardware to which the I / O acceleration technology is applied. do. Slow-Path Manager Method Performs block device processing for hardware with I / O acceleration technology under the control of the manager. The fast-path manager performs character device processing on hardware with I / O acceleration technology under the control of the method manager. The cache manager, under the control of the slow-path manager, performs file access stored on the disk through a cache that caches a portion of the data stored on the disk. Under the control of the fast-path manager, the input / output acceleration manager controls the copy operation of the data stored in the disk to the memory area for input / output acceleration through the hardware to which the input / output acceleration technology is applied. According to the present invention, even hardware using I / O acceleration technology can be supported through a standard interface of the existing Unix file system.
파일 시스템, 리눅스, 입출력 가속, EXT2, EXT3, 문자 디바이스, PMEM File System, Linux, I / O Acceleration, EXT2, EXT3, Character Device, PMEM
Description
도 1은 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템이 적용된 서버의 개략적인 블록도이다.1 is a schematic block diagram of a server to which a file system for hardware to which an input / output acceleration technology according to an embodiment of the present invention is applied is applied.
도 2는 도 1에 도시된 EXT3NS 파일 시스템의 상세 블록도이다.FIG. 2 is a detailed block diagram of the EXT3NS file system shown in FIG. 1.
도 3은 도 1에 도시된 디스크의 배치도이다.3 is a layout view of the disk shown in FIG.
도 4는 도 3에 도시된 디스크의 블록 그룹의 구조를 도시한 도면이다.FIG. 4 is a diagram showing the structure of a block group of the disk shown in FIG.
도 5는 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템에서의 데이터 블록 인덱싱 방식의 구조도이다.5 is a structural diagram of a data block indexing method in a file system for hardware to which an input / output acceleration technology according to an exemplary embodiment of the present invention is applied.
도 6은 도 3에 도시된 디스크에서의 4KB 블록 인덱싱 방법을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a 4KB block indexing method in the disk shown in FIG. 3.
도 7은 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템이 저속-경로를 수행하여 표준 파일 인터페이스를 지원하는 방법의 흐름도이다.7 is a flowchart illustrating a method in which a file system for hardware to which an input / output acceleration technology is applied according to an embodiment of the present invention supports a standard file interface by performing a low-path.
도 8은 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템이 고속-경로를 수행하여 표준 파일 인터페이스를 지원하는 방법의 흐름 도이다.8 is a flowchart illustrating a method of supporting a standard file interface by performing a fast-path in a hardware file system to which an input / output acceleration technology according to an embodiment of the present invention is applied.
본 발명은 파일 시스템에 관한 것으로, 보다 구체적으로는 특수한 메커니즘을 갖는 입출력 가속 기술이 적용된 하드웨어 상에서 표준 파일 시스템 인터페이스를 필요로 하는 응용 프로그램에게 해당 인터페이스를 제공하는 파일 시스템 및 그 파일 시스템에서의 데이터 처리 방법에 관한 것이다.The present invention relates to a file system, and more particularly, to a file system that provides an interface to an application program that requires a standard file system interface on hardware to which an input / output acceleration technology having a special mechanism is applied, and data processing in the file system. It is about a method.
최근, 고화질 위주의 동영상이 일반화되고 있는 추세에서 스트리밍 서비스를 제공하는데 있어서 가장 큰 문제는 서버 능력의 한계이다. 일반적으로 서버는 디스크로부터 입력 데이터를 읽어 네트워크 카드를 통해 이 데이터를 전송한다. 이러한 동작시 서버의 프로세서가 관여한다. 따라서 스트리밍과 같이 입출력 작업부하가 높은 경우에는 입출력 장치의 성능이 서버의 성능을 좌우하게 된다. 이를 해결하기 위해 입출력 가속 기술의 필요성이 대두되어 이에 대한 연구가 수행되어 왔다. Recently, the biggest problem in providing a streaming service in the trend of high-definition video is the limitation of server capacity. Typically, the server reads input data from the disk and sends it through the network card. In this operation, the processor of the server is involved. Therefore, when the I / O workload is high, such as streaming, the performance of the I / O device will determine the performance of the server. In order to solve this problem, the necessity of input / output acceleration technology has emerged, and research on this has been performed.
입출력 가속 기술에 대한 최근의 연구 방향은 입출력 가속 기능을 소프트웨어에 의존하지 않고 하드웨어를 통해 구현함으로써 시스템 프로세서의 부하를 감소시키면서도 멀티미디어 스트리밍에 필요한 충분한 대역폭을 확보할 수 있도록 하고 있다. 이와 같이 입출력 가속 기술이 적용된 하드웨어에서는 기본 디스크 블록 크기를 기존의 파일 시스템에서 사용하던 4KB에 비해 최소 64배나 크게 설정한다. 또한, 디스크로부터 읽혀진 데이터를 네트워크를 통해서 바로 서비스 가능하도록 되어 있다. 이것은 미디어 데이터와 같이 연속성을 갖는 파일을 고성능으로 서비스하기에 적합한 구조를 갖는다. Recent researches on I / O acceleration technology have implemented I / O acceleration function through hardware without software dependence, so that it can secure enough bandwidth for multimedia streaming while reducing the load on system processor. In the hardware with I / O acceleration technology, the basic disk block size is set at least 64 times larger than the 4KB used in the existing file system. In addition, the data read from the disk can be serviced directly through the network. This has a structure suitable for serving high performance files having continuity such as media data.
한편, 운영체제(Operating System) 상에서의 파일 시스템에서 사용하는 표준 인터페이스는 IEEE 표준기구가 제정한 OS 표준 API(Application Program Interface)인 POSIX(Portable Operating System Interface for UNIX)에서 정의한 사양서에 따른다. 리눅스 파일 시스템 중 하나인 Ext(Extended file system)2 파일 시스템이나 Ext3 파일 시스템과 같이 리눅스 커널에 있는 대부분의 파일 시스템들도 역시 이를 따른다. 그러나 지금까지 멀티미디어나 병렬 프로세싱과 같이 입출력 성능을 최우선 목표로 하는 파일 시스템의 경우에는 이와는 달리 사용자에게 고성능을 제공하기 위해 표준과 상이한 인터페이스를 제공하는 것이 보통이었으며, 주로 사용자 영역에서 구현되어졌다. 이것은 기존의 응용 프로그램이 소스 코드의 변경 없이 제공된 파일 시스템의 장점을 사용할 수 없도록 제한하는 단점을 가져왔기 때문이다. 따라서 고성능 입출력을 지원하기 위한 파일 시스템들이 위와 같은 설계를 고려하게 된 것은 구현 메커니즘이 표준 파일 인터페이스를 지원하기에는 적합하지 않았기 때문이다. 결과적으로, 고성능 서버의 입출력 기능을 제공하기 위한 입출력 가속 기술이 적용된 하드웨어에 대해서도 구조적인 특성상 리눅스의 여러 파일 시스템들과 같은 기존의 파일 시스템들이 사용될 수 없다는 문제점이 있다.On the other hand, the standard interface used in the file system on the operating system follows the specification defined in the POSIX (Portable Operating System Interface for UNIX), an OS standard application program interface (API) established by the IEEE standards organization. Most file systems in the Linux kernel follow this one, such as the Ext (Extended file system) 2 file system or the Ext3 file system. However, in the case of a file system that aims for input / output performance as a priority, such as multimedia or parallel processing, it has been common to provide an interface different from the standard in order to provide high performance to the user. This is because the existing application has the disadvantage of restricting the use of the provided file system without changing the source code. Therefore, the file systems for high performance I / O are considered for the above design because the implementation mechanism is not suitable to support the standard file interface. As a result, there is a problem in that existing file systems such as Linux's various file systems cannot be used due to their structural characteristics even on the hardware to which the I / O acceleration technology for providing the I / O function of the high performance server is applied.
따라서 본 발명은 상기한 문제점을 해결하기 위해, 입출력 가속 하드웨어를 사용하는 고성능 서버에서 기존의 유닉스 파일시스템의 인터페이스를 지원하면서, 프로세서의 부하와 버스의 병목 현상을 완화하는 입출력 가속 기술이 적용된 하드웨어용 파일 시스템 및 그 파일 시스템에서의 데이터 처리 방법을 제공한다.Therefore, in order to solve the above problems, the present invention provides a hardware for which I / O acceleration technology is applied to alleviate the bottleneck of the processor and the bus while supporting the interface of the existing Unix file system in a high performance server using I / O acceleration hardware. A file system and a data processing method in the file system are provided.
상기한 목적을 달성하기 위한 본 발명의 하나의 특징에 따른 파일 시스템은,File system according to an aspect of the present invention for achieving the above object,
입출력 가속 기술이 적용된 하드웨어에 접속된 디스크 상의 파일을 관리하기 위한 파일 시스템으로서,A file system for managing files on a disk connected to hardware to which I / O acceleration technology is applied.
디스크에 저장된 파일에 대한 액세스를 필요로 하는 메소드(Method)를 받아서 상기 입출력 가속 기술이 적용된 하드웨어에 대한 블록 디바이스 처리와 문자 디바이스 처리 중 어느 하나를 선택하여 상기 파일에 대한 액세스를 제어하는 메소드 관리자; 상기 메소드 관리자의 제어에 따라 상기 입출력 가속 기술이 적용된 하드웨어에 대한 블록 디바이스 처리를 수행하는 저속-경로(slow-path) 관리자; 상기 메소드 관리자의 제어에 따라 상기 입출력 가속 기술이 적용된 하드웨어에 대한 문자 디바이스 처리를 수행하는 고속-경로(fast-path) 관리자; 상기 저속-경로 관리자의 제어에 의해, 상기 디스크에 저장된 데이터의 일부를 캐슁(caching)하는 캐쉬를 통해 상기 디스크에 저장된 파일 액세스를 수행하는 캐쉬 관리자; 및 상기 고속-경로 관리자의 제어에 의해, 상기 입출력 가속 기술이 적용된 하드웨어를 통하여 상기 디스크에 저장된 데이터의 상기 입출력 가속을 위한 메모리 영역으로의 복사 동작이 수행되도록 제어하는 입출력 가속 관리자를 포함한다.A method manager that receives a method requiring access to a file stored on a disk and selects any one of block device processing and character device processing for hardware to which the input / output acceleration technology is applied to control access to the file; A slow-path manager performing block device processing on hardware to which the input / output acceleration technology is applied under the control of the method manager; A fast-path manager that performs character device processing on hardware to which the input / output acceleration technology is applied under the control of the method manager; A cache manager, under the control of the slow-path manager, performing file access stored on the disk through a cache that caches a portion of data stored on the disk; And an input / output acceleration manager that controls, by the control of the fast-path manager, a copy operation of the data stored in the disk to the memory area for the input / output acceleration through the hardware to which the input / output acceleration technology is applied.
여기서, 상기 저속-경로 관리자와 상기 고속-경로 관리자에 의해 처리되는 데이터 블록의 크기가 상이한 것을 특징으로 한다.Here, the size of the data block processed by the slow-path manager and the fast-path manager is different.
본 발명의 다른 특징에 따른 파일 시스템에서의 데이터 처리 방법은,A data processing method in a file system according to another aspect of the present invention,
입출력 가속 기술이 적용된 하드웨어에 접속된 디스크 상의 파일을 관리하기 위한 파일 시스템에서의 데이터 처리 방법으로서,A data processing method in a file system for managing files on a disk connected to hardware to which input / output acceleration technology is applied,
a) 상기 디스크 상에 저장된 파일 처리를 위한 메소드 호출을 받는 단계; b) 상기 호출된 메소드에서 특정된 버퍼가 상기 입출력 가속을 위한 메모리 영역에 해당하는 지의 여부를 판단하는 단계; c) 상기 b) 단계에서, 상기 버퍼가 상기 입출력 가속을 위한 메모리 영역에 해당하는 것으로 판단되는 경우, 상기 입출력 가속 기술이 적용된 하드웨어에 대한 문자 디바이스 처리를 수행하여 상기 메소드에 특정된 파일 데이터가 상기 입출력 가속을 위한 메모리 영역으로 복사되도록 제어하는 단계; 및 d) 상기 b) 단계에서, 상기 버퍼가 상기 입출력 가속을 위한 메모리 영역에 해당하지 않는 것으로 판단되는 경우, 상기 입출력 가속 기술이 적용된 하드웨어에 대한 블록 디바이스 처리를 수행하여 상기 메소드에 특정된 파일 데이터에 대한 액세스를 수행하는 단계를 포함한다.a) receiving a method call for processing a file stored on the disk; b) determining whether a buffer specified in the called method corresponds to a memory area for accelerating input / output; c) In step b), if it is determined that the buffer corresponds to the memory area for accelerating the I / O, the character data processing for the hardware to which the I / O acceleration technology is applied is performed so that the file data specified in the method is displayed. Controlling copying to a memory area for input / output acceleration; And d) in step b), if it is determined that the buffer does not correspond to the memory area for the I / O acceleration, perform block device processing on the hardware to which the I / O acceleration technology is applied to perform file data specified in the method. Performing access to the.
아래에서는 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 첨부된 도면은 본 발명을 명확하게 설명하기 위해 본 발명의 설명과 관계없는 부분은 생략하였으며, 동일 또는 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the accompanying drawings, parts irrelevant to the description of the present invention are omitted in order to clearly describe the present invention, and the same or similar parts are denoted by the same reference numerals.
도 1은 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템이 적용된 서버의 개략적인 블록도이다.1 is a schematic block diagram of a server to which a file system for hardware to which an input / output acceleration technology according to an embodiment of the present invention is applied is applied.
본 발명의 실시 예에서는 설명의 편의를 위해 입출력 가속 기술이 적용된 하드웨어를 'NS(Network Storage) 카드'로 명명하고, 이러한 NS 카드에 대한 표준 인터페이스를 지원하기 위한 본 발명의 실시 예에 따른 파일 시스템은 'EXT3NS'로 명명하여 설명한다. In an embodiment of the present invention, for convenience of description, the hardware to which the input / output acceleration technology is applied is referred to as a 'network storage card', and a file system according to an embodiment of the present invention for supporting a standard interface to such an NS card is provided. Is described as 'EXT3NS'.
도 1에 도시된 바와 같이, 고화질 위주의 동영상 스트리밍 서비스를 제공하는 서버에서는 리눅스 커널(100)이 PCI(Peripheral Component Interconnect) 버스(200)를 통해 접속된 입출력 가속 기술이 적용된 NS 카드(300)를 사용하여 고성능의 입출력 서비스를 제공한다.As shown in FIG. 1, in a server providing a high-definition video streaming service, the Linux
입출력 가속 기술이 적용된 NS 카드(300)는 NIC(Network Interface Card) 유닛(310), 디스크 유닛(320) 및 PMEM(PCI Memory) 유닛(330)을 포함한다. The NS
디스크 유닛(320)은 리눅스 커널(100)의 제어에 의해 디스크(400)로부터 데이터를 읽거나 또는 디스크(400)로 데이터를 쓰는 동작을 수행한다.The
NIC 유닛(310)은 디스크 유닛(320)에 의해 읽혀서 메모리에 저장된 데이터를 외부의 네트워크로 전송하거나 또는 외부의 네트워크로부터 입력되는 데이터를 수신하여 디스크 유닛(320)을 통해 메모리에 저장한 후 디스크(400)에 써지도록 전달한다.The NIC
PMEM 유닛(330)은 실질적인 제로-카피(zero-copy) 형태로 디스크(400)에 저 장된 데이터를 읽어서 외부의 네트워크로 직접 전송한다.The
한편, 리눅스 커널(100)은 가상 파일 시스템(Virtual Filing System, 110), EXT2 파일 시스템(120), EXT3 파일 시스템(130), EXT3NS 파일 시스템(140), 페이지 캐쉬(Page Cache)/버퍼 캐쉬(Buffer Cache)(150), 블록 디바이스 드라이버(160) 및 NS 드라이버(170)를 포함한다.Meanwhile, the Linux
가상 파일 시스템(110)은 표준 유닉스 파일 시스템과 관련한 모든 시스템 콜을 처리하는 커널 소프트웨어 층으로, 시스템 함수와 입출력을 제어하는 물리적인 파일 시스템 코드에 있는 필요한 제어 함수에 지향적인 파일을 처리하는 하나의 무목적 층이다. 이 가상 파일 시스템(110)은 실제 파일 시스템의 구현과 사용자 프로세스 사이에 존재하는 추상화 층이며, EXT2 파일 시스템(120), EXT3 파일 시스템(130), EXT3NS 파일 시스템(140)을 포함한 여러 종류의 파일 시스템에 일반적인 공통 인터페이스를 제공한다.The
EXT2 파일 시스템(120) 및 EXT3 파일 시스템(130)은 리눅스 시스템의 표준 파일 시스템들로서, EXT2 파일 시스템(120)은 파일의 데이터와 메타 데이터를 동시에 저장하지 않는 비동기식 파일 시스템이고, EXT3 파일 시스템(130)은 EXT2 파일 시스템(120)에 데이터베이스에서 쓰이는 저널링(journaling) 기술을 적용한 저널링 파일 시스템이다. 저널링 기술이란 사용자가 데이터를 입력 또는 수정하면 그 데이터를 바로 하드 디스크에 기록하기 전에 관련 데이터를 로그에 기록하고, 만약 기록 중에 가장 빈번하게 발생하는 문제인 정전이나 기타 다른 이유로 인하여 비정상적인 종료를 하게 되면 다시 부팅할 때 로그에 기록된 데이터를 참고로 하여 다 시 작성하거나 복구가 가능하도록 하는 기술이다. 즉, EXT3 파일 시스템(130)은 일정 부분을 기록을 위해 남겨두어, 백업 및 복구 능력이 있는 파일 시스템이다.The
EXT3NS 파일 시스템(140)은 본 발명의 실시 예에 따른 파일 시스템으로써, 입출력 가속 기술이 적용된 NS 카드(300)에 대한 표준 인터페이스 지원이 가능한 파일 시스템이다. 이 EXT3NS 파일 시스템(140)은 그 근간을 리눅스의 표준 파일 시스템인 EXT3 파일 시스템에 두면서 NS 카드(300)에 대한 표준 인터페이스 지원이 가능하도록 구현된다. 이 EXT3NS 파일 시스템(140)은 EXT2 파일 시스템(120)과 EXT3 파일 시스템(130)과 같이 가상 파일 시스템(110)의 하부에 위치하며, EXT3 파일 시스템(130)과 같이 페이지 캐쉬/버퍼 캐쉬(150)를 통해 NS 카드(300)에 대한 블록 디바이스로 접근할 수 있고, 또한 NS 드라이버(170)를 통해 NS 카드(300)에 문자 디바이스 형태로 접근할 수 있다. 즉, EXT3NS 파일 시스템(140)은 서버의 메인 메모리와 디스크(400) 사이의 입출력 기능을 제공하기 위한 저속-경로(slow-path)를 수행하는 경우에는 NS 카드(300)를 블록 디바이스로 처리하여 접근하고, 디스크(400)와 PMEM 사이의 제로-카피에 의한 입출력 기능을 제공하기 위한 고속-경로(fast-path)를 수행하는 경우에는 NS 카드(300)를 문자 디바이스로 처리하여 접근한다.The
저속-경로가 수행되는 경우, NS 카드(300)를 통해 디스크(400)로부터 페이지 캐쉬에 해당되는 크기(주로 4KB)로 읽기가 수행되고, 이 데이터는 사용자가 제공한 버퍼, 즉 서버의 메인 메모리 영역으로 복사된다.When slow-pathing is performed, a read is performed from the
고속-경로가 수행되는 경우, NS 카드(300)를 통해 디스크(400)로부터 논리 블록에 해당되는 크기(주로 256KB의 정수배)로 읽기가 수행되고, 이 데이터는 PMEM 영역으로 복사된다.When the fast-path is performed, reading is performed from the
한편, 페이지 캐쉬/버퍼 캐쉬(150)에서, 페이지 캐쉬는 디스크상의 이미지와 데이터에 접근하는 속도를 높이기 위해 사용된다. 이것은 파일의 논리적인 내용을 페이지 단위로 캐쉬하기 위해 사용되며, 파일과 파일 내의 오프셋을 통해 접근된다. 디스크(400)에서 서버의 메모리로 페이지들을 읽어 들이면, 페이지들은 페이지 캐쉬에 캐쉬된다. On the other hand, in the page cache /
또한, 버퍼 캐쉬는 블록 디바이스 드라이버(160)가 사용하는 데이터 버퍼들을 갖고 있다. 이들 버퍼는 고정된 크기로(예를 들어 512바이트), NS 카드(300)에서 읽거나, NS 카드(300)에 쓰는 자료의 블록을 갖고 있다. 이러한 버퍼 캐쉬는 장치 식별자와 원하는 블록 번호에 의해 색인되어 있고, 이 색인을 통해 데이터 블록 빨리 찾을 수 있다. EXT2 파일 시스템(120)과 EXT3 파일 시스템(130), 그리고 EXT3NS 파일 시스템(140)에서의 저속-경로 수행 시에는 NS 카드(300)에 대해서는 버퍼 캐쉬를 통해서만 접근된다. 이 때, 데이터가 버퍼 캐쉬에서 발견되면 NS 카드(300)를 통한 디스크(400)에 대한 접근은 필요가 없게 된다. The buffer cache also contains data buffers used by the
블록 디바이스 드라이버(160)는 EXT2 파일 시스템(120), EXT3 파일 시스템(130) 및 EXT3NS 파일 시스템(140) 등의 파일 시스템들이 페이지 캐쉬/버퍼 캐쉬(150)를 통해 NS 카드(300)를 블록 디바이스 장치로 접근이 가능하도록 인터페이스를 제공한다.The
NS 드라이버(170)는 EXT3NS 파일 시스템(140)이 NS 카드(300)를 문자 디바이 스 장치로 직접 접근이 가능하도록 인터페이스를 제공한다.The
한편, PCI 버스(200)는 NS 카드(300)를 통해 접속되는 디스크(300) 등과 같은 주변 장치들을 시스템, 여기서는 리눅스 커널(100)에 접속시켜 주는 데이터의 통로이며, 이 PCI 버스(200)는 리눅스 커널(100)이 각 디바이스들을 서로 독립적으로 접근할 수 있도록 해준다.Meanwhile, the
디스크(400)는 NS 카드(300)를 통해 리눅스 커널(100)에 접속되며, 각종의 데이터를 저장하고 관리한다.The
도 2는 도 1에 도시된 EXT3NS 파일 시스템(140)의 상세 블록도이다.2 is a detailed block diagram of the
도 2에 도시된 바와 같이, 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템인 EXT3NS 파일 시스템(140)은 메소드(Method) 관리자(141), 저속-경로 관리자(143), 캐쉬 관리자(145), 고속-경로 관리자(147) 및 NS 관리자(149)를 포함한다.As shown in FIG. 2, the
메소드 관리자(141)는 응용 프로그램에서 파일에 대한 읽기나 쓰기와 관련된 시스템 콜이 발생되어 가상 파일 시스템(110)으로부터 호출되는 메소드를 처리한다. 이 메소드 관리자(141)는 가상 파일 시스템(110)으로부터 호출된 메소드에 전달된 버퍼 인자를 조사하고, 사용되는 버퍼가 서버의 메인 메모리인 경우에는 NS 카드(300)를 통한 디스크(400)를 블록 디바이스로 접근하기 위한 저속-경로 관리자(143)로 작업 수행을 지시한다. 만약 사용되는 버퍼가 PMEM 영역인 경우에는 NS 카드(300)를 통한 디스크(400)를 문자 디바이스로 접근하기 위한 고속-경로 관리자(147)로 작업 수행을 지시한다.The
저속-경로 관리자(143)는 메소드 관리자(141)의 지시에 따라 NS 카드(300)에 대한 블록 디바이스 처리를 수행한다. 즉, 저속-경로 관리자(143)는 종래의 EXT3 파일 시스템(130)에서와 같은 데이터 처리를 수행하며, 페이지 캐쉬/버퍼 캐쉬(150) 및 블록 디바이스 드라이버(160)를 통하여 접속되는 NS 카드(300)를 통해 디스크(400)를 블록 디바이스 형태로 접근하여 데이터 읽기 또는 쓰기를 수행한다.The slow-
캐쉬 관리자(145)는 저속-경로 관리자(143)의 제어에 따라 페이지 캐쉬/버퍼 캐쉬(150)를 제어하여 관련 데이터 처리를 수행한다.The
고속-경로 관리자(147)는 메소드 관리자(141)의 지시에 따라 NS 카드(300)에 대한 문자 디바이스 처리를 수행한다. 즉, 고속-경로 관리자(147)는 NS 드라이버(170)를 통하여 접속되는 NS 카드(300)를 통해 디스크(400)를 문자 디바이스 형태로 접근하여 데이터가 PMEM 영역을 통해 제로-카피가 수행되도록 제어한다.The fast-
NS 관리자(149)는 고속-경로 관리자(147)의 제어에 따라 NS 드라이버(170)를 제어하여 관련 데이터 처리를 수행한다.The
저속-경로 관리자(143)는 NS 카드(300)를 통하여 디스크(400)로부터 페이지 캐쉬에 해당하는 크기로 데이터를 읽지만, 고속-경로 관리자(147)는 NS 카드(300)를 통하여 디스크(400)로부터 논리 블록에 해당되는 크기로 데이터를 읽는다.Slow-
도 3은 도 1에 도시된 디스크(400)의 배치도이다.3 is a layout view of the
도 3에 도시된 바와 같이, EXT3NS 파일 시스템(140)에서의 디스크(400) 배치는 NS 카드(300)에 M개의 물리 디스크가 장착되는 것을 가정하며, 이렇게 장착된 M개의 디스크를 병렬로 연결하여 하나의 논리 블록(논리 블록 0, 논리블록 1, 논리 블록 2 등)을 형성한다. NS 카드(300)는 이러한 상황에서 1개의 논리 블록을 M으로 분할한 크기로 각각의 물리 디스크에 스트리밍한다.As shown in FIG. 3, the arrangement of the
한편, 다수의 논리 블록이 모여서 하나의 블록 그룹(블록 그룹 0, 블록 그룹 1, …, 블록 그룹 N)을 형성하도록 구성된다. EXT3NS 파일 시스템(140)의 가용성을 높이기 위해 각 블록 그룹의 처음 부분에 동일한 메타 데이터를 갖도록 한다. 마지막으로 이렇게 구성된 블록 그룹들은 다시 논리 디스크를 형성한다. EXT3NS 파일 시스템(140)이 이렇게 형성된 논리 디스크 위에서 동작한다.On the other hand, a plurality of logical blocks are configured to form one block group (block
도 4는 도 3에 도시된 디스크(400)의 블록 그룹의 구조를 도시한 도면이다.4 is a diagram showing the structure of a block group of the
도 4에 도시된 바와 같이, EXT3NS 파일 시스템(140)에서의 각 블록 그룹들은 정보들을 제어하는 중대한 파일 시스템의 메타 데이터를 포함한다. As shown in FIG. 4, each block group in the
메타 데이터에는 수퍼 블록(Super block, 410) 및 그룹 디스크립션 블록(Group description block, 420), 블록 비트맵(Block bitmap, 430), 아이노드 비트맵(Inode bitmap, 440), 아이노드 테이블(Inode table, 450) 및 데이터 블록(Data block, 460)이 포함된다.The meta data includes a super block (410) and a group description block (420), a block bitmap (430), an inode bitmap (440), and an inode table (Inode table). , 450) and a
수퍼 블록(410)은 EXT3NS 파일 시스템(140)의 기본적인 크기나 형태에 대한 정보를 저장하고 관리한다. EXT3NS 파일 시스템(140)의 저속-경로 관리자(143) 및 고속-경로 관리자(147)는 이 수퍼 블록의 정보를 이용하여 파일 시스템을 활용하고 유지할 수 있다. 이러한 수퍼 블록(410)에는 총 아이노드의 수, 파일 시스템의 크기, 블록의 크기, 그룹 당 아이노드 수 등의 정보가 기록된다. 여기서, 아이노드는 파일 시스템의 가장 기본이 되는 단위로서, 파일의 이름을 제외한 해당 파일의 모든 정보를 가지고 있다. 파일 이름은 아이노드 번호와 함께 디렉토리 안에 저장된다.The
그룹 디스크립션 블록(420)은 블록 그룹에서 각 블록의 할당 상태를 나타내주는 비트맵으로 그 수는 블록의 수와 동일하다. 예를 들어, 블록 비트맵 필드에는 블록 비트맵의 블록 번호가 할당되고, 아이노드 비트맵 필드에는 아이노드 비트맵의 블록 번호가 할당되며, 아이노드 테이블 필드에는 아이노드 테이블(450)의 첫 번째 아이노드 테이블 블록의 블록 번호가 할당된다.The
블록 비트맵(430)은 블록의 할당 상태를 나타내 주는 비트맵으로, 그 수는 블록의 수와 동일하다. 이러한 블록 비트맵(430)은 블록을 할당하거가 해제할 경우 참고되는 정보이다. 따라서, 블록 비트맵(430)의 경우 한 비트는 논리 블록 하나와 매핑된다.The
아이노드 비트맵(440)은 블록의 아이노드 할당 상태를 나타내 주는 비트맵으로, 그 수는 블록 비트맵과 같이 블록의 수와 동일하다. 이 아이노드 비트맵(440)은 아이노드를 할당하거나 해제할 경우 참고되는 정보이다. The
아이노드 테이블(450)은 인접하는 연속된 블록으로 구성되며, 각 블록은 아이노드에 대응된다. 이러한 아이노드는 파일 유형, 접근 권한, 파일 길이, 소유자 식별자, 마지막 접근 시간, 아이노드 마지막 변경시간 등의 정보를 가지고 있다.The inode table 450 is composed of adjacent contiguous blocks, and each block corresponds to an inode. These inodes contain information such as file type, access rights, file length, owner identifier, last access time, and inode last change time.
상기한 메타 데이터에 대한 접근은 저속-경로를 통해서만 처리된다. 즉, 메타 데이터에 대한 시스템 콜에 대해서는 저속-경로 관리자(143)에 의해서 처리된다. 따라서, 모든 메타 데이터는 페이지 캐쉬 크기를 기준으로 조작되며 캐슁 (caching)된다. 이것은 메타 데이터에 대한 접근 비용을 감소시키기 위한 것으로, PMEM과 함께 사용되는 NS 드라이버(170)가 다루는 논리 블록의 크기와는 다르다.Access to such metadata is handled only through the slow-path. That is, system calls for metadata are handled by the slow-
수퍼 블록(410)의 구조체인 "ext3ns_sb_info"에는 버퍼 풀(500) 내에 있는 수퍼 블록에 대한 포인터인 s_es, 수퍼 블록을 가지고 있는 버퍼(510)에 대한 포인터인 s_sbh, 그룹 디스크립션 블록을 가지는 버퍼(520)에 대한 포인터인 s_group_count, 블록 비트맵의 캐쉬(530)를 위한 필드인 s_block_bitmap, 아이노드 비트맵의 캐쉬(540)를 위한 필드인 s_inode_bitmap가 포함된다. The ext3ns_sb_info structure of the
아이노드 테이블(450)의 구조체인 "struct inode"에는 아이노드 정보의 구조체인 "ext3ns_inode_info"가 포함되며, 여기에는 데이터 블록을 가리키는 포인터들(550)의 집합인 i_data[15]와 아이노드가 속한 블록 그룹에 대한 인덱스인 i_block_group이 포함된다. 이 중에서 i_data[15]는 총 15비트의 값을 가지며, 비트 0에서 비트 11까지의 총 12개의 비트는 직접적으로 데이터 블록을 가리키게 되며, 나머지들은 12, 13, 14의 엔트리를 가지고, 간접(indirect), 이중 간접(double indirect), 삼중 간접(triple indirect)으로 데이터 블록의 포인터를 가지는 데이터 블록을 가리킨다.The "struct inode" structure of the inode table 450 includes the structure of inode information "ext3ns_inode_info", which includes i_data [15], which is a set of
파일의 각 위치를 디스크(400)에 매핑시키는 방법에 대해 첨부한 도 5를 참조하여 설명한다. 이러한 매핑에 사용되는 것은 메타 데이터 중에서 간접 블록 메커니즘이다. 즉, 상기한 아이노드 테이블(450)의 구조체에 포함된 i_data[15]를 사용하여 매핑을 수행한다.A method of mapping each position of the file to the
도 5를 참조하면, i_data[15] 배열은 이러한 간접 블록 메커니즘의 처음 시 작이 된다. 이 배열의 처음 12개 요소는 직접 논리 블록을 가리킨다. 다음 요소는 순서대로 각각 간접 논리 블록, 이중 간접 논리 블록, 삼중 간접 논리 블록을 가리킨다.Referring to FIG. 5, the i_data [15] array is the first start of this indirect block mechanism. The first 12 elements of this array point directly to the logical block. The following elements indicate indirect logical blocks, double indirect logical blocks, and triple indirect logical blocks, respectively, in that order.
EXT3NS 파일 시스템(140)에서 ext3ns_block_to_path() 함수는 파일의 오프셋에서 논리 디스크(400)의 논리 블록으로의 매핑을 가능하도록 한다. 이 함수는 해당 파일의 오프셋 위치에 대응하는 논리 블록 인덱스를 저장하는 논리 블록을 얻어온다. 첨부한 도 6을 참조하여 예를 들면, 논리 블록의 크기가 256n이고, 해당 논리 블록에서의 오프셋이 d라면, 1MB 블록 내의 연속된 4KB의 소블록 중에서 d/(4K/4)의 몫에 해당하는 순번의 소블록을 읽어 페이지 캐쉬/버퍼 캐쉬(150)로 가져오게 된다. 그리고, 그 소 블록에서 d/(4K/4)의 나머지에 해당하는 오프셋에 있는 논리 블록 인덱스를 얻게 된다. 이렇게 얻어진 인덱스는 논리 디스크(400)에서 연속된 논리 블록의 순번에 해당된다. 예를 들어, 얻어진 인덱스가 i라면 그 위치는 256n*i가 된다. 여기까지의 동작이 본 발명의 실시 예에 따른 고속-경로를 진행하는 경우에 필요한 논리 블록을 얻는 과정이다.The ext3ns_block_to_path () function in the
만일 저속-경로를 진행해서 소 블록을 페이지 캐쉬/버퍼 캐쉬(150)에 읽어 오고자 한다면, 상기한 고속-경로 진행 과정의 전후에 몇 과정이 추가된다. 일단 추가되어야 하는 전반 작업은 파일의 오프셋에서 256n으로 나눠서 나머지를 얻고, 다시 얻어진 나머지를 4K로 나눠 몫을 얻는다. 추가되어야 하는 후반 작업은 ext3ns_block_to_path() 함수를 통해서 얻어진 논리 블록으로부터 전반 작업을 통해서 얻어진 몫을 통해 페이지 캐쉬/버퍼 캐쉬(150)로 소 블록을 읽어 들이면 된 다. 도 6에 도시된 예에서는 전반 작업을 통해 얻어진 몫이 k인 경우에 실제로 저속-경로에서 블록 디바이스 드라이버(160)를 통해서 읽어 들여야 한 소 블록의 위치 "256n*i + k"을 나타내고 있다.If you want to go through the slow-path and read the small blocks into the page cache /
이하, 도 7 및 도 8을 참조하여 본 발명의 실시 예에 따른 입출력 가속 기술이 적용된 하드웨어용 파일 시스템인 EXT3NS 파일 시스템(140)이 표준 파일 인터페이스를 지원하는 방법에 대해 상세하게 설명한다.Hereinafter, a method of supporting a standard file interface by the
먼저, 도 7을 참조하여 시스템이나 응용 프로그램 등에서 메타 데이터 등을 액세스하기 위한 저속-경로가 수행되는 것에 대해 설명한다.First, a low-path for accessing metadata or the like in a system or an application program will be described with reference to FIG. 7.
파일에 대한 읽기나 쓰기 시스템 콜이 호출되는 경우, 이를 처리하기 위해 가상 파일 시스템(110)이 동작한다.When a read or write system call to a file is called, the
가상 파일 시스템(110)은 호출된 시스템 콜을 처리하기 위한 사전 작업을 수행한 후, 해당되는 파일 시스템, 여기서는 EXT3NS 파일 시스템(140)의 대응되는 메소드를 호출한다(S1).The
다음, EXT3NS 파일 시스템(140)의 메소드 관리자(141)는 가상 파일 시스템(110)에 의해 호출된 메소드에 전달된 버퍼 인자를 조사하여, 버퍼가 서버의 메인 메모리 영역인 지의 여부를 판단한다. 여기서는 저속-경로 수행에 대해 설명하므로, 버퍼가 서버의 메인 메모리 영역에 해당된다. 따라서 메소드 관리자(141)는 NS 카드(300)를 블록 디바이스로 처리하기 위해 저속-경로 관리자(143)로 작업을 지시하고(S2), 저속-경로 관리자(143)는 해당되는 작업을 수행하기 위해 캐쉬 관리자(145)에 접속된 페이지 캐쉬/버퍼 캐쉬(150)로 관련 데이터를 요청한다(S3, S4). Next, the
따라서 페이지 캐쉬/버퍼 캐쉬(150)는 내부에 해당하는 데이터가 있는 경우를 제외하고 블록 디바이스 드라이버(160)를 통해 NS 카드(300)에 접속된 디스크(400)로부터 페이지 캐쉬에 해당하는 크기(주로 4KB)로 데이터 읽기를 수행하고(S5, S6), 디스크(400)로부터 읽혀진 데이터는 페이지 캐쉬/버퍼 캐쉬(150)에 캐슁한다(S7, S8).Therefore, the page cache /
그 후, 페이지 캐쉬/버퍼 캐쉬(160)는 캐슁된 데이터를 캐쉬 관리자(145)와 저속-경로 관리자(143)를 통해 메소드 관리자(141)로 전달하고(S9, S10, S11), 메소드 관리자(141)는 전달된 데이터를 호출된 해당 메소드에 대한 데이터로 가상 파일 시스템(110)을 통해 사용자가 제공한 메인 메모리 영역 내에 있는 버퍼 영역으로 해당 데이터를 복사한다(S12).Thereafter, the page cache /
다음은 도 8을 참조하여 고화질 위주의 동영상 스트리밍 서비스를 제공하기 위한 고속-경로가 수행되는 것에 대해 설명한다.Next, a fast-path for providing a high quality video streaming service will be described with reference to FIG. 8.
스트리밍 서비스를 위한 파일에 대한 읽기나 쓰기 시스템 콜이 호출되는 경우, 이를 처리하기 위해 가상 파일 시스템(110)이 동작한다.When a read or write system call for a file for a streaming service is called, the
가상 파일 시스템(110)은 호출된 시스템 콜을 처리하기 위한 사전 작업을 수행한 후, 해당되는 파일 시스템, 여기서는 EXT3NS 파일 시스템(140)의 대응되는 메소드를 호출한다(S21).The
다음, EXT3NS 파일 시스템(140)의 메소드 관리자(141)는 가상 파일 시스템(110)에 의해 호출된 메소드에 전달된 버퍼 인자를 조사하여, 버퍼가 PMEM 영역인 지의 여부를 판단한다. 여기서는 고속-경로 수행에 대해 설명하므로, 버퍼가 PMEM 영역에 해당된다. 따라서 메소드 관리자(141)는 NS 카드(300)를 문자 디바이스로 처리하기 위해 고속-경로 관리자(147)로 작업을 지시하고(S22), 고속-경로 관리자(147)는 해당되는 작업을 수행하기 위해 NS 관리자(149)에 접속된 NS 드라이버(170)로 관련 데이터 처리를 요청한다(S23, S24). Next, the
따라서 NS 드라이버(170)는 NS 카드(300)를 문자 디바이스로 구동하고(S25), NS 카드(300)의 디스크 유닛(320)은 요청된 데이터의 논리 블록에 해당되는 크기(주로 256KB의 정수배)로 디스크(400)로부터 읽기를 수행하고, 읽혀진 데이터를 PMEM 영역으로 복사한다(S25).Therefore, the
따라서 NS 카드(300)는 관련 데이터가 PMEM 영역으로 복사된 처리의 결과를 NS 드라이버(170), NS 관리자(149) 및 고속-경로 관리자(147)를 통해 메소드 관리자(141)로 전달하고(S26, S27, S28), 메소드 관리자(141)는 관련 데이터 처리 결과를 호출된 해당 메소드에 대한 처리 결과로써 가상 파일 시스템(110)을 통해 사용자에게 반환한다(S29).Therefore, the
이와 같이 저속-경로를 통한 데이터 처리는 고속의 동영상 스트리밍을 위한 고속-경로를 통한 데이터 처리에 대해서도 본 발명의 실시 예에 따른 EXT3NS 파일 시스템(140)을 통해서 기존의 표준 파일 인터페이스를 유지할 수가 있게 된다.As described above, the data processing through the slow-path can maintain the existing standard file interface through the
비록, 본 발명이 가장 실제적이며 바람직한 실시 예를 참조하여 설명되었지만, 본 발명은 상기 개시된 실시 예에 한정되지 않으며, 후술되는 특허 청구범위 내에 속하는 다양한 변형 및 등가물들도 포함한다.Although the present invention has been described with reference to the most practical and preferred embodiments, the present invention is not limited to the above-described embodiments, but includes various modifications and equivalents within the scope of the following claims.
본 발명에 따르면, 입출력 가속 기술이 사용된 하드웨어에 대해서도 기존의 유닉스 파일 시스템의 표준 인터페이스를 통한 지원이 가능해진다.According to the present invention, even hardware using I / O acceleration technology can be supported through a standard interface of the existing Unix file system.
따라서 동일한 응용 프로그램 환경에서도 입출력 가속 기술을 사용할 수 있는 효과가 있다.Therefore, I / O acceleration technology can be used in the same application environment.
Claims (8)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040111066 | 2004-12-23 | ||
KR20040111066 | 2004-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060073431A KR20060073431A (en) | 2006-06-28 |
KR100648065B1 true KR100648065B1 (en) | 2006-11-23 |
Family
ID=37166501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050086181A KR100648065B1 (en) | 2004-12-23 | 2005-09-15 | File system for the hardward using the i/o acceleration technique and method for processing data in the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100648065B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101413985B1 (en) * | 2012-01-26 | 2014-07-08 | 전자부품연구원 | Method for file management using file system adapted to non-volatile memory |
-
2005
- 2005-09-15 KR KR1020050086181A patent/KR100648065B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20060073431A (en) | 2006-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392544B2 (en) | System and method for leveraging key-value storage to efficiently store data and metadata in a distributed file system | |
US7206915B2 (en) | Virtual space manager for computer having a physical address extension feature | |
US8285967B1 (en) | Method for on-demand block map generation for direct mapped LUN | |
KR101841997B1 (en) | Systems, methods, and interfaces for adaptive persistence | |
US7117314B2 (en) | Storage device and method for data sharing | |
EP2502148B1 (en) | Selective file system caching based upon a configurable cache map | |
US20060174074A1 (en) | Point-in-time copy operation | |
US9015417B2 (en) | Deduplication-aware page cache | |
EP3324296A1 (en) | File data access method and computer system | |
US7743209B2 (en) | Storage system for virtualizing control memory | |
US20070005904A1 (en) | Read ahead method for data retrieval and computer system | |
US8694563B1 (en) | Space recovery for thin-provisioned storage volumes | |
US20020178176A1 (en) | File prefetch contorol method for computer system | |
US7177980B2 (en) | Cache storage system and method | |
US7640410B2 (en) | Instant copy of data through pointers interchanging | |
WO1998026352A1 (en) | Method of file pre-read control in computer system | |
JP4727800B2 (en) | Digital data subsystem including a directory for efficiently providing format information about stored records | |
US7558929B2 (en) | Instant copy of data in a cache memory via an atomic command | |
CN112703481B (en) | Hybrid memory system interface | |
KR100648065B1 (en) | File system for the hardward using the i/o acceleration technique and method for processing data in the same | |
US20050216695A1 (en) | Memory extension for a data processor to provide both common and separate physical memory areas for virtual memory spaces | |
JP4792065B2 (en) | Data storage method | |
TWI564803B (en) | Systems and methods for storage virtualization | |
JPH11306053A (en) | Data transfer method and information processor for executing the method | |
JPH04205535A (en) | Copy on write system |
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: 20101101 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |