KR102236419B1 - 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 - Google Patents

액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 Download PDF

Info

Publication number
KR102236419B1
KR102236419B1 KR1020200003625A KR20200003625A KR102236419B1 KR 102236419 B1 KR102236419 B1 KR 102236419B1 KR 1020200003625 A KR1020200003625 A KR 1020200003625A KR 20200003625 A KR20200003625 A KR 20200003625A KR 102236419 B1 KR102236419 B1 KR 102236419B1
Authority
KR
South Korea
Prior art keywords
access
request
data
access requests
storage device
Prior art date
Application number
KR1020200003625A
Other languages
English (en)
Other versions
KR20200135718A (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 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20200135718A publication Critical patent/KR20200135718A/ko
Application granted granted Critical
Publication of KR102236419B1 publication Critical patent/KR102236419B1/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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0656Data buffering 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시는 클라우드 컴퓨팅 기술 분야에 관한 것으로, 구체적으로는 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체에 관한 것이다. 해당 방법에 있어서, 컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하되, 한 세트의 액세스 요청은 각각 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시한다. 한 세트의 주소 중의 각 주소에 따라, 저장 장치 중의 주소 범위에서 한 세트의 주소에 대해 순서 배열을 진행한다. 순서 배열된 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성한다. 합병 요청을 기반으로, 저장 장치를 상대로 데이터 액세스 조작을 실행하되, 해당 방법은 저장 장치의 드라이버에서 구현되고, 드라이버는 컴퓨터 시스템의 사용자 모드에서 구현된다. 상술한 구현을 이용하여, 컴퓨터 시스템의 저장 장치를 상대로 하는 액세스를 보다 효과적인 방식으로 관리함으로써, 컴퓨터 시스템의 성능을 향상시킬 수 있다.

Description

액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체{METHOD, APPARATUS, DEVICE AND STORAGE MEDIUM FOR MANAGING ACCESS REQUEST}
본 개시의 내용의 구현은 총체적으로 저장 장치 관리에 관한 것으로, 보다 구체적으로 저장 장치를 액세스하는 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 컴퓨터 저장 매체에 관한 것이다.
컴퓨터 기술이 발전함에 따라, 현재에 보다 높은 하드웨어 액세스 속도를 구비하는 고속 저장 장치가 이미 나타나게 되었다. 하드웨어 속도를 향상시킴과 동시에, 고속 저장 장치의 잠재력을 최대한도로 이용하도록, 저장 장치의 드라이버에 대해 상응한 수정을 진행할 수 있는 것을 요구하기도 한다. 이때, 하나의 기술적 난제로서, 어떻게 보다 효과적인 방식으로 고속 저장 장치에 대한 액세스를 관리하는 지가 대두되었다.
본 개시의 내용의 예시적 구현에 의하면, 액세스 요청을 관리하기 위한 방안을 제공한다.
본 개시의 내용의 제1 양태에 있어서, 액세스 요청을 관리하기 위한 방법을 제공한다. 해당 방법에 있어서, 컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하되, 한 세트의 액세스 요청은 각각 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시한다. 한 세트의 주소 중의 각 주소에 따라, 저장 장치 중의 주소 범위에서 한 세트의 주소에 대해 순서 배열을 진행한다. 순서 배열된 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성한다. 합병 요청을 기반으로, 저장 장치를 상대로 데이터 액세스 조작을 실행하되, 방법은 저장 장치의 드라이버에서 구현되고, 드라이버는 컴퓨터 시스템의 사용자 모드에서 구현된다.
본 개시의 내용의 제2 양태에 있어서, 액세스 요청을 관리하기 위한 장치를 제공한다. 해당 장치는, 컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하도록 구성되되, 한 세트의 액세스 요청은 각각 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시하는 획득 모듈과, 한 세트의 주소 중의 각 주소에 따라, 저장 장치 중의 주소 범위에서 한 세트의 주소에 대해 순서 배열을 진행하도록 구성되는 순서 배열 모듈과, 순서 배열된 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하도록 구성된 생성 모듈과, 합병 요청을 기반으로, 저장 장치를 상대로 데이터 액세스 조작을 실행하도록 구성된 실행 모듈을 포함하되, 장치는 저장 장치의 드라이버에서 구현되고, 드라이버는 컴퓨터 시스템의 사용자 모드에서 구현된다.
본 개시의 내용의 제3 양태에 있어서, 기기를 제공한다. 해당 기기는 하나 도는 다수의 프로세서와, 하나 또는 다수의 프로그램을 저장하기 위한 저장 장치를 포함하되, 하나 또는 다수의 프로그램이 하나 또는 다수의 프로세서에 의해 실행될 경우, 하나 또는 다수의 프로세서가 본 개시의 내용의 제1 양태에 따른 방법을 구현하도록 한다.
본 개시의 내용의 제4 양태에 있어서, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 매체를 제공하며, 해당 프로그램이 프로세서에 의해 실행될 경우, 본 개시의 내용의 제1 양태에 따른 방법이 구현되도록 한다.
발명의 내용 부분에 설명된 내용은 본 개시의 내용의 구현의 관건적인 특징 또는 중요한 특징을 한정하기 위한 것이 아니며, 본 개시의 내용의 범위를 한정하기 위한 것이 아님을 이해하여야 한다. 아래의 설명을 통해, 본 개시의 내용의 기타의 특징은 용이하게 이해할 수 있을 것이다.
첨부된 도면을 결부하여 아래의 상세한 설명을 참조하면, 본 개시의 내용의 각 구현의 상술한 및 기타의 특징, 장점 및 방명은 보다 명확해질 것이다. 첨부된 도면에 있어서, 동일하거나 유사한 도면 부호는 동일하거나 유사한 구성요소를 나타낸다.
도1은 컴퓨터 시스템 중의 저장 장치를 상대로 액세스를 진행하는 예시적 과정의 블록도를 개략적으로 나타낸다.
도2는 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 기술적 방안의 블록도를 개략적으로 나타낸다.
도3은 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 방법의 흐름도를 개략적으로 나타낸다.
도4는 본 개시의 내용의 예시적 구현에 따른 한 세트의 액세스 요청을 상대로 순서 배열을 진행하고 순서 배열된 한 세트의 액세스 요청을 기반으로 합병 요청을 생성하기 위한 과정의 블록도를 개략적으로 나타낸다.
도5a는 본 개시의 내용의 예시적 구현에 따른 2개의 판독 요청을 기반으로 합병 요청을 생성하는 과정의 블록도를 개략적으로 나타낸다.
도5b는 본 개시의 내용의 예시적 구현에 따른 2개의 기입 요청을 기반으로 합병 요청을 생성하는 과정의 블록도를 개략적으로 나타낸다.
도6a는 본 개시의 내용의 예시적 구현에 따른 판독된 데이터를 분할하기 위한 과정의 블록도를 개략적으로 나타낸다.
도6b는 본 개시의 내용의 예시적 구현에 따른 저장 장치에 데이터를 기입하고 2개의 기입 요청에 각각 응답을 반송하는 과정의 블록도를 개략적으로 나타낸다.
도7은 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 장치의 블록도를 개략적으로 나타낸다.
도8은 본 개시의 내용의 다수의 수현을 실시 가능한 컴퓨팅 기기의 블록도를 나타낸다.
아래에 첨부된 도면을 참조하여 본 개시의 내용의 구현에 대한 보다 상세한 설명을 진행하기로 한다. 비록 첨부된 더면에 본 개시의 내용의 일부의 구현가 도시되었으나, 본 개시의 내용는 각종의 형식으로 구현될 수 있으나, 본 원에 기재된 구현에 한정되는 것으로 해석되어서는 아니됨을 이해하여야 한다. 반대로, 이러한 구현는 본 개시의 내용를 보다 확실하고 완전하게 이해하기 위해 제공된다. 본 개시의 내용의 첨부된 도면 및 구현는 단지 예시적인 작용으로 이용될 뿐, 본 개시의 내용의 보호 범위를 한정하기 위한 것이 아님을 이해하여야 한다.
본 개시의 내용의 구현의 설명에 있어서, 용어 "포함" 및 이와 유사한 용어는 개방성인 포함으로 이해하여야 하며, 즉, "포함하나, 이에 한정되지 않는다"로 이해하여야 한다. 용어 "기반으로"는 "적어도 부분적으로 기반으로"로 이해하여야 한다. 용어 "일 구현" 또는 "해당 구현"는 "적어도 하나의 구현"으로 이해하여야 한다. 용어 "제1", "제2" 등은 상이하거나 동일한 대상물을 지칭할 수 있다. 아래의 설명에는 기타의 명시적인 정의 및 암시적인 정의를 포함될 수도 있다.
아래에, 먼저 도1을 참조하여 본 개시의 내용의 응용 환경에 대한 설명을 진행하기로 한다. 도1은 컴퓨터 시스템(110) 중의 저장 장치(120)를 상대로 액세스를 진행하는 예시적 과정의 블록도(100)를 개략적으로 나타낸다. 도1에 도시된 바와 같이, 컴퓨터 시스템(110)은 하나 또는 다수의 저장 장치(120)를 포함할 수 있으며, 컴퓨터 시스템(100)에서 운행되는(또는 해당 컴퓨터 시스템(110)을 원격으로 액세스하는) 하나 또는 다수의 응용(130)은 저장 장치(120) 중의 데이터를 액세스하기 위해 한 세트의 액세스 요청(140)을 발송할 수 있다.
저장 장치 하드웨어 기술이 발전함에 따라, 이미 고속 저장 장치를 개발하였으며, 데이터 센터에서 고속 저장 장치가 점유하는 비례가 점점 높아지고 있다. 전통적인 저속 저장 장치에 대해, 고속 저장 장치는 아주 높은 데이터 액세스 속도와 상대적으로 낮은 액세스 지연을 구비한다. 예를 들어, NVMe SSD는 전통적인 SAS 또는 SATA 웬즈 디스크보다 천배가 더 빠르며, 조기의 SATA SSD보다 5배 내지 10배 빠르다. 따라서, 저장 장치의 우세를 보다 많이 발휘하기 위하여, 저장 장치의 드라이버가 하드웨어 기술이 발전함에 따라 개선되는 것을 원하고 있다.
커널 모드에서 구현되는 전통적인 드라이버의 성능 및 효율은 고속 기기의 우세를 발휘하기 어렵다. 저장 장치(120)의 응답 효율을 향상시키기 위하여, 현재에 저장 장치(120)의 드라이버를 커널 모드에서 사용자 모드로 이전하는 기술적 방안을 제출하였다. 이러한 방식을 통해, 커널 맥락의 전환을 피면하여, 중앙 처리 유닛(CPU)의 부담을 저감시키고, CPU가 데이터 저장을 실제로 처리하는 작업 상에서 보다 많은 지령 주기를 사용하는 것을 허용할 수 있다.
그러나, 사용자 모드에서 저장 장치(120)를 액세스하는 조작 기간에, 폴링 모드를 이용하여 저장 장치(120)를 상대로 하는 액세스 요청을 처리하고, 액세스 요청을 신속하게 배포함으로써, 대기 시간을 저감시키고 지연을 저감시킬 수 있다. 그러나, 이러한 방식으로 각 액세스 요청을 처리할 경우, 다수의 액세스 요청을 전반적으로 감안하여 최적화를 실현할 수 없게 된다. 비록 사용자 모드에서 저장 장치(120)에 대한 액세스를 실현하는 것은 일부의 데이터 판독 및 기입 조작의 성능을 향상시킬 수 있으며, 일부의 기타 유형의 데이터 판독 및 기입 조작에 대해 유익한 효과를 실현하지 못하며, 심지어 데이터 액세스의 성능을 저감시키게 된다. 따라서, 보다 효과적인 방식으로 액세스 요청을 관리하는 것을 윈한다.
상술한 기술적 방안 중의 부족점을 적어도 부분적으로 해결하기 위하여, 본 개시의 예시적 구현에 의하면, 사용자 모드에서 구현되는 액세스 요청을 관리하기 위한 방법을 제공한다. 해당 방법에 있어서, 수신된 한 세트의 액세스 요청의 액세스 모드를 감안한다. 한 세트의 액세스 요청 중의 다수의 액세스 요청으로 액세스하는 저장 장치(120) 중의 주소 공간이 역속적인 주소 공간일 경우, 해당 다수의 액세스 요청에 대해 합병을 진행한다. 이에 따라, 합병된 액세스 요청을 기반으로 저장 장치(120)를 상대로 데이터 액세스 조작을 실행할 수 있다. 상술한 방법은 저장 장치(120)의 드라이버에서 구현될 수 있으며, 본 개시의 각 구현 방식은 컴퓨터 시스템(110)의 커널 모드가 참여할 필요가 없이 컴퓨터 시스템(110)의 사용자 모드에서 구현될 수 있음을 이해할 것이다.
본 개시의 예시적 구현에 의하면, 드라이버를 컴퓨터 시스템(110)의 사용자 모드에서 운행하는 것은 드라이버가 커널 모드에 관련되지 않는 것을 의미하며, 이는 커널의 맥락에서 전환 및 차단되는 것을 피면하고, CPU의 대량의 처리 소모를 절약하며, CPU의 보다 많은 클럭 주기로 실제의 데이터 저장을 실행하는 것을 허용할 수 있다.
컴퓨터 시스템(110)의 운영 체제는 통상적으로 커널과 다수의 서버로 구획될 수 있다. 여기서, 마이크로 커널은 주로 (1)프로세스 (스레드) 관리(프로세스 또는 스레드의 스케줄링), (2)저수준 메모리 관리(사용자 프로그램 로직 공간에서 메모리 공간으로의 물리적 주소의 변환), 및 (3)인터럽트 및 트랩 관리(인터럽트 및 트랩)에 이용된다. 마이크로 커널 구조의 존재로 인하여, 드라이버는 커널 모드 또는 사용자 모드에서 운행될 수 있으며, 커널 모드와 사용자 모드는 운영 체제의 2가지 운행 레벨이다.
하나의 태스크(스레드)가 시스템 호출을 실행하여 커널 코드에 트랩되어 실행될 경우, 이를 스레드가 커널 운행 모드(또는 커널 모드로 약칭됨)에 처하는 것으로 지칭되며, 스레드의 기타 실행 방식은 사용자 모드에 해당된다. 통상적으로, 사용자 프로그램은 사용자 모드에서 운행되고, 운영 체제는 커널 모드에서 운행된다. 사용자 모드와 커널 모드 사이는 전환을 진행할 수 있으며, 예컨대, 시스템 호출, 비정상 및 주변 기기의 인터럽트를 통해 진행될 수 있다. 사용자 모드와 커널 모드 사이의 전환은 추가적인 시간 소모 및 컴퓨팅 자원의 소모를 초래하게 된다.
본 개시의 예시적 구현을 이용하여, 커널 모드가 참여할 필요가 없이 사용자 모드에서 액세스 요청을 관리하는 과정을 완전히 실행할 수 있다. 이러한 방식을 통해, 사용자 모드와 커널 모드 사이의 전환을 피면하여 전반적인 컴퓨터 시스템(110)의 성능을 향상시킬 수 있다. 나아가, 본 개시의 예시적 구현을 이용하여, 사용자 모드에서 상술한 방법을 구현함으로써, 상대적으로 흩어진 액세스 요청을 상대적으로 큰 공간 범위의 액세스 요청으로 합병할 수 있다. 이러한 방식을 통해, 흩어진 각 액세스 요청을 처리함에 발생하는 작업 부하를 저감시킬 수 있다. 나아가, 커널 모드가 참여할 필요가 없이 사용자 모드에서 상술한 방법을 구현하므로, CPU의 작업 부하를 저감시키고, CPU가 보다 많은 지령 주기를 배정하여 기타 사항을 처리하는 것을 허용할 수 있다.
아래에, 도2를 참조하여 본 개시의 예시적 구현의 보다 많은 세부 사항에 대해 개괄적인 설명을 진행하기로 한다. 도2는 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 기술적 방안의 블록도(200)를 개략적으로 나타낸다. 도2에 도시된 바와 같이, 한 세트의 액세스 요청(140)은 수신된 저장 장치(120)를 상대로 액세스를 실행하는 각 액세스 요청을 포함한다. 예를 들어, 액세스 요청 리스트(140)는 액세스 요청(210, 212, 214, 216) 등을 포함할 수 있다. 본 개시의 예시적 구현에 의하면, 저장 장치(120)를 상대로 하는 드라이버(230)에서 합병 과정을 구현할 수 있다. 도2를 참조하면, 연속적인 주소 공간을 액세스하는 액세스 요청(214 및 216)에 대해 합병을 진행하여, 새로운 합병 요청(220)을 형성할 수 있다.
한 세트의 액세스 요청(140)은 다수의 액세스 요청을 포함할 수 있으며, 연속적인 주소 공간에 관련되지 않는 액세스 요청(210,....., 및 212)에 대해, 기존의 방식에 따라 처리를 진행할 수 있음을 이해할 것이다. 예를 들어, 각각 액세스 요청(210, ...., 및 212) 중의 각 액세스 요청을 기반으로, 저장 장치(120)를 액세스할 수 있다. 예를 들어, 액세스 요청(210, ...., 및 212)이 판독 유형의 액세스 요청인 것으로 가정하면, 이때, 저장 장치(120)로부터 각각 액세스 요청(210, ...., 및 212)으로 지정한 주소 범위 내의 데이터를 판독할 수 있다. 또한 예를 들어, 액세스 요청(210, ...., 및 212)이 기입 유형의 액세스 요청인 것으로 가정하면, 이때, 저장 장치(120) 중의 액세스 요청(210, .., 및 212)으로 지정한 주소 범위 내에 상응한 데이터를 기입할 수 있다.
도3은 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 방법(300)의 흐름도를 개략적으로 나타낸다. 해당 방법(300)은 저장 장치(120)의 드라이버(230)에서 구현될 수 있으며, 여기서의 드라이버(230)는 컴퓨터 시스템(110)의 사용자 모드에서 구현되는 것이다.
도3에 도시된 바와 같이, 블록(310)에서, 컴퓨터 시스템(110) 중의 저장 장치(120)를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청(140)을 획득할 수 있다. 여기서, 한 세트의 액세스 요청(140)은 각각 저장 장치(120) 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시한다. 다시 말해서, 각 액세스 요청은 저장 장치(120)를 상대로 하는 하나의 데이터 액세스 조작을 표시한다.
본 개시의 예시적 구현에 의하면, 저장 장치(120)를 액세스하기 위한 액세스 요청이 저장된 원형 연결 리스트(410)로부터 한 세트의 액세스 요청(140)을 획득할 수 있다. 아래에, 도4를 참조하여 원형 연결 리스트에 관한 보다 많은 세부 사항에 대한 설명을 진행하기로 한다. 도4는 본 개시의 내용의 예시적 구현에 따른 한 세트의 액세스 요청(140)을 상대로 순서 배열을 진행하고 순서 배열된 한 세트의 액세스 요청을 기반으로 합병 요청을 생성하는 과정의 블록도(400)를 개략적으로 나타낸다. 도4에 도시된 바와 같이, 원형 연결 리스트(410)는 수신된 저장 장치(120)를 상대로 액세스를 진행하는 다수의 액세스 요청을 저장할 수 있다. 해당 원형 연결 리스트(410)는, 처리하고자는 액세스 요청 중의 첫번째 액세스 요청을 포인팅하기 위한 헤드 포인터(412)와, 처리하고자는 액세스 요청 중의 마지막 액세스 요청을 포인팅하기 위한 테일 포인터(422)를 포함할 수 있다.
본 개시의 예시적 구현에 의하면, 기정의 시간 간격 내에 원형 연결 리스트(410)로부터 한 세트의 액세스 요청(140)을 선택할 수 있다. 매번 액세스 요청을 수신할 때마다 즉시 저장 장치(120) 중의 액세스 요청으로 지정한 데이터를 액세스할 경우, 저장 장치(120)를 상대로 하는 액세스를 너무 빈번하게 초래하게 됨을 이해할 것이다. 특히, 각 액세스 요청에 관련된 데이터 량이 상대적으로 작을 경우, 저장 장치(120)를 상대로 액세스 요청을 빈번히 실행하게 되며, 이로 인해 컴퓨터 시스템(110)의 전반적인 성능의 저하를 초래하게 된다. 본 개시에 있어서, 기정의 시간 간격의 길이를 지정할 수 있으며, 이러한 방식을 통해 기정의 시간 간격 내에 수신된 다수의 액세스 요청에 대해 집중 처리를 진행하여, 액세스 조작의 전반적인 성능을 향상시킬 수 있다.
본 개시의 예시적 구현에 의하면, 한 세트의 액세스 요청(140)의 수량이 역치 수량보다 높지 않다. 역치 수량을 예컨대 32, 16, 8 등의 기정의 수치로 설정할 수 있다. 예를 들면, 해당 수치는 액세스 요청을 수신하는 빈도 또는 수량에 따라 확정할 수 있으며, 또는 해당 수치는 응답 시간에 대한 컴퓨터 시스템(110)의 요구에 따라 확정할 수도 있다. 도4에 도시된 바와 같이, 원형 연결 리스트(410)로부터 액세스 요청(210, 212, ..., 214, 216)을 획득할 수 있다. 여기의 각 액세스 요청은 상응한 액세스 주소를 포함할 수 있으나, 한 세트의 액세스 요청(140)은 한 세트의 액세스 주소를 포함할 수 있음을 이해할 것이다.
돌아가 도3을 참조하면, 블록(320)에서, 한 세트의 주소 중의 각 주소에 따라, 저장 장치 중의 주소 범위에서 한 세트의 주소에 대해 순서 배열을 진행할 수 있다. 여기의 한 세트의 액세스 요청(140)은 판독 유형과 기입 유형의 액세스 요청을 포함할 수 있음을 이해할 것이다. 본 개시의 예시적 구현에 의하면, 동일한 유형을 구비하는 액세스 요청을 선택하여 순서 배열을 진행할 수 있다. 예를 들어, 먼저 한 세트의 액세스 요청(140) 중의 판독 유형의 액세스 요청에 대해 처리를 진행할 수 있다. 한 세트의 액세스 요청(140)으로부터 판독 유형의 액세스 요청을 선택하고, 선택된 판독 유형의 액세스 요청에 대해 순서 배열을 진행할 수 있다. 순서 배열은 오름차순 또는 내림차순의 순서로 진행될 수 있다. 본 개시의 예시적 구현에 의하면, 유사한 방식을 통해 한 세트의 액세스 요청(140) 중의 기입 유형의 액세스 요청에 대해 처리를 진행할 수도 있다.
도4에 도시된 바와 같이, 액세스 요청(210, 212, ..., 214 및 216)을 상대로 순서 배열(420)을 실행하고, 순서 배열된 액세스 요청(214, 216, 212, ..., 210)을 획득할 수 있다. 이에 따라, 순서 배열된 액세스 요청을 기반으로 합병 요청(220)을 생성할 수 있다. 돌아가 도3을 참조하면, 블록(330)에서, 순서 배열된 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청(220)을 생성한다. 한 세트의 액세스 요청(140) 중의 각 주소 사이에 연속성이 존재하는지 여부를 기반으로, 후속적인 처리를 실행할 수 있다. 본 개시의 예시적 구현에 의하면, 동일한 유형을 구비하는 액세스 요청만을 합병하지 못하므로, 합병 요청(220)을 생성할 때 각 요청의 유형을 감안할 필요도 있다. 상술한 바와 같이, 이미 판독 요청 및 기입 요청에 따라 각 액세스 요청에 대해 각각 순서 배열을 진행하였을 경우, 순서 배열된 요청을 기반으로 직접적으로 합병 요청을 생성할 수 있다.
본 개시의 예시적 구현에 의하면, 액세스 요청의 유형을 구분할 필요가 없이 한 세트의 액세스 요청에 대해 직접적으로 순서 배열을 진행할 수도 있다. 이때, 먼저 주소가 연속적인 2개의 액세스 요청이 동일한 유형에 해당되는지 여부를 판단하여야 하며, 판단 결과가 "예"일 경우, 합병 요청(220)을 생성할 수 있다. 2개의 액세스 요청의 유형이 상이할 경우, 액세스하는 주소가 연속적이더라도, 2개의 액세스 요청을 상대로 각자의 처리를 각각 실행하여야 한다.
본 개시의 예시적 구현에 의하면, 적어도 일부의 액세스 요청에서, 다수의 연속적인 액세스 요청 중의 각 액세스 요청을 상대로 차례대로 처리를 진행할 수 있다. 구체적으로, 연속적인 주소를 구비하는 제1 액세스 요청과 제2 액세스 요청을 확정하고, 제1 액세스 요청의 주소의 시작 주소와 제2 액세스 요청의 주소의 마감 순서를 기반으로, 합병 요청(220)의 주소를 확정할 수 있다. 아래에, 도5a 및 도5b를 참조로 각각 합병 요청(220)을 어떻게 생성하는 지에 대한 설명을 진행하기로 한다.
도5a는 개시의 내용의 예시적 구현에 따른 2개의 판독 요청을 기반으로 합병 요청을 생성하는 과정의 블록도(500A)를 개략적으로 나타낸다. 도5a에 도시된 바와 같이, 액세스 요청(510A)이 판독 요청이고, 관련된 주소 범위가 (0x10...00, 0x1F...FF)이며, 액세스 요청(512A)이 판독 요청이고,관련된 주소 범위가 (0x20...00, 0x2F...FF)인 것으로 가정한다. 이때, 액세스 요청(510A)의 시작 주소"0x10...00"와 액세스 요청(512A)의 마감 순서"0x2F...FF"를 기반으로, 합병 요청(520A)을 생성할 수 있다. 이때, 합병 요청(520A)은 주소 범위(0x10...00, 0x2F...FF) 내의 데이터를 판독하는 것에 관련된다.
도5b는 본 개시의 내용의 예시적 구현에 따른 2개의 기입 요청을 기반으로 합병 요청을 생성하는 과정의 블록도(500B)를 개략적으로 나타낸다. 도5b에 도시된 바와 같이, 액세스 요청(510B)이 기입 요청이고, 관련된 주소 범위가 (0x10...00, 0x1F...FF)이며, 액세스 요청(512B)이 기입 요청이고, 관련된 주소 범위가 (0x20...00, 0x2F...FF)인 것으로 가정한다. 이때, 액세스 요청(510B)의 시작 주소"0x10...00"와 액세스 요청(512B)의 마감 순서"0x2F...FF"를 기반으로, 합병 요청(520B)을 생성할 수 있다. 이때, 합병 요청(520B)은 주소 범위(0x10...00, 0x2F...FF)에 액세스 요청(510B) 중의 데이터"DATA1"와 액세스 요청(512B) 중의 데이터"DATA2"를 기입하는 것에 관련된다.
합병 요청이 관련된 주소의 범위가 너무 클 경우, 데이터 판독/기입의 시간이 너무 길어지는 것을 초래할 수 있음을 이해할 것이다. 따라서, 합병된 액세스 요청이 관련된 주소 범위가 기정 역치보다 높지 않는 것을 지정할 수도 있다. 다시 말해서, 한 세트의 액세스 요청을 합병하는 과정에, 합병된 액세스 요청의 합병 주소 범위가 기정 역치보다 낮은 것이 발견될 경우, 합병 과정이 유효한 것으로 시인하고, 아니면, 합병 과정을 실행하지 않거나, 단지 일부의 주소가 연속적인 액세스 요청을 합병한다.
돌아가 도3을 참조하면, 블록(340)에서, 합병 요청(220)을 기반으로, 저장 장치(220)를 상대로 데이터 액세스 조작을 실행한다. 이때, 합병 요청(220)의 액세스 유형과 합병 이전의 각 액세스 요청의 유형이 동일하다. 돌아가 도5a에 도시된 예시를 참조하면, 이때, 합병 요청(520A)은 READ(0x10...00, 0x2F...FF, RDATA)이고, 이는 주소 범위(0x10...00, 0x2F...FF) 내의 데이터를 데이터 블록(RDATA)으로 판독하는 것을 표시한다. 해당 합병 요청(520A)을 실행한 이후, 해당 데이터 블록(RDATA)에는 원래에 액세스 요청(510A 및 512A)을 통해 각각 반송하여야 할 데이터 블록(RDATA1 및 RDATA2) 내의 데이터가 포함되게 된다.
본 개시의 예시적 구현에 의하면, 액세스 요청(510A 및 512A)을 각각 응답하기 위하여, 반송된 큰 블록의 데이터에 대해 분할을 진행할 필요도 있다. 구체적으로, 한 세트의 액세스 요청 및 합병 요청의 액세스 유형이 판독 유형일 경우, 저장 장치 중의 합병 요청으로 지정한 합병 주소로부터 데이터(예컨대, 데이터 블록(RDATA) 중의 데이터)를 판독할 수 있다. 이에 따라, 각각 제1 액세스 요청의 주소와 제2 액세스 요청의 주소를 기반으로, 판독된 데이터에 대해 분할을 진행할 수 있다. 아래에, 도6a를 참조하여 데이터 분할에 관한 보다 많은 세부 사항에 대한 설명을 진행하기로 한다.
도6a는 본 개시의 내용의 예시적 구현에 따른 판독된 데이터를 분할하기 위한 과정의 블록도(600A)를 개략적으로 나타낸다. 도6a에 도시된 바와 같이, 데이터(610A)를 획득 하도록, 저장 장치(120)에 합병 요청(520A)을 실행할 수 있다. 이에 따라, 각각 액세스 요청(510A)의 주소(0x10...00, 0x1F...FF)와 액세스 요청(512A)의 주소(0x20...00, 0x2F...FF)를 기반으로, 데이터를 제1 데이터(620A)와 제2 데이터(622A)로 분할할 수 있다.
이어서, 각 액세스 요청에 상응한 데이터를 각각 반송할 수 있다. 도6a에 도시된 바와 같이, 액세스 요청(510A)에 제1 데이터(620A)를 반송하고, 액세스 요청(512A)에 제2 데이터(622A)를 반송할 수 있다. 이때, 액세스 요청(510A)에 관련된 데이터 블록(RDATA1)에 제1 데이터(620A)를 기입하고, 액세스 요청(512A)에 관련된 데이터 블록(RDATA2)에 제2 데이터(622A)를 기입할 수 있다.
본 개시의 예시적 구현에 의하면, 한 세트의 액세스 요청의 액세스 유형이 기입 유형일 경우, 제1 액세스 요청 중의 제1 데이터와 제2 액세스 요청 중의 제2 데이터를 기반으로 합병 데이터을 생성할 수 있다. 아래에 도6b를 참조하여 기입 요청에 관한 실행 과정에 대한 설명을 진행하기로 한다.
도6b는 본 개시의 내용의 예시적 구현에 따른 저장 장치에 데이터를 기입하고 2개의 기입 요청에 각각 응답을 반송하는 과정의 블록도(600B)를 개략적으로 나타낸다. 도6b에 도시된 바와 같이, 저장 장치(120)에 데이터(610B)를 기입하도록, 저장 장치(120)에 합병 요청(520B)을 실행할 수 있다. 이에 따라 합병 요청(520B)을 이미 성공적으로 실행하였을 경우, 액세스 요청(510B)에 제1 응답(620B)을 제공하여, 해당 액세스 요청(510B)이 이미 성공적으로 실행되었음을 표시할 수 있으며, 액세스 요청(512B)에 제2 응답(620B)을 제공하여, 해당 액세스 요청(512B)이 이미 성공적으로 실행되었음을 표시할 수도 있다.
앞서 이미 도5a, 도5b, 도6a 및 도6b를 참조하여 이미 합병된 요청을 어떻게 처리하는 지에 대한 설명을 진행하였다. 한 세트의 액세스 요청(140)에는 주소가 불연속적인 액세스 요청이 포함될 가능성이 존재하는 것을 이해할 것이다. 이때, 한 세트의 액세스 요청(140) 중의 주소가 연속적인 액세스 요청 이외의 기타 액세스 요청에 대해, 각 기타의 액세스 요청을 기반으로 저장 장치(120)를 상대로 상응한 데이터 액세스 조작을 실행할 수 있다. 돌아가 도4를 참조하면, 액세스 요청(214 및 216)은 이미 합병되어 합병 요청(220)을 형성하고, 액세스 요청(212 및 210)은 연속되지 않으며, 따라서, 저장 장치(120)를 상대로 액세스 요청(212 및 210)을 각각 실행할 수 있다.
앞서 도3 내지 도6b를 참조하여 설명한 방식에 따르면, 한 세트의 액세스 요청(140) 중의 각 액세스 요청에 대해 처리를 진행할 수 있다. 본 개시의 예시적 구현에 의하면, 한 세트의 액세스 요청(140)에 대해 이미 성공적으로 처리를 진행한 이후, 한 세트의 액세스 요청이 이미 처리되었음을 표시하도록, 원형 연결 리스트의 포인터를 수정할 수도 있다. 앞서 설명한 방법(300)은 주기적으로 실행될 수 있음을 이해할 것이다. 방법(300)이 실행되는 기간에, 원형 연결 리스트(410) 중의 액세스 요청의 수량은 증가할 수 있다. 원형 연결 리스트(410) 중의 액세스 요청의 수량이 기정 역치에 도달할 경우, 방법(300)을 실행하도록 다시 트리거될 수 있다. 이러한 방식을 통해, 한 세트의 액세스 요청(140)을 획득하는 것은 일정한 시간 소모를 초래하게 되나, 각 액세스 요청을 합병함으로써, 저장 장치(120)를 상대로 흩어진 연속적인 액세스 요청을 빈번하게 실행하는 성능 소모를 대대적으로 저감시킬 수 있다. 특히, 저장 장치(120)가 대량의 연속적인 액세스 요청을 빈번하게 실행할 경우, 컴퓨터 시스템(110)의 전반적인 성능을 현저히 향상시킬 수 있다.
앞서 이미 액세스 요청을 어떻게 관리하는지에 대한 방법(300)의 다수의 구현에 대한 상세한 설명을 진행하였다. 본 개시의 예시적 구현에 의하면, 액세스 요청을 관리하기 위한 장치를 더 제공한다. 아래에, 도7을 참조하여 보다 상세한 설명을 진행하기로 한다. 도7은 본 개시의 내용의 예시적 구현에 따른 액세스 요청을 관리하기 위한 장치(700)의 블록도를 개략적으로 나타낸다. 도7에 도시된 바와 같이, 해당 장치(700)는, 컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하도록 구성되되, 한 세트의 액세스 요청은 각각 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시하는 획득 모듈(710)과, 한 세트의 주소 중의 각 주소에 따라, 저장 장치 중의 주소 범위에서 한 세트의 주소에 대해 순서 배열을 진행하도록 구성된 순서 배열 모듈(720)과, 순서 배열된 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하도록 구성된 생성 모듈(730)과, 합병 요청을 기반으로, 저장 장치를 상대로 데이터 액세스 조작을 실행하도록 구성된 실행 모듈(740)을 포함하되, 장치(700)는 저장 장치의 드라이버에서 구현되고, 드라이버는 컴퓨터 시스템의 사용자 모드에서 구현된다.
본 개시의 예시적 구현에 의하면, 순서 배열 모듈(720)은, 적어도 일부의 액세스 요청이 동일한 액세스 유형을 구비하는 것이 확정됨에 응답하여, 합병 요청을 생성하되, 액세스 유형은 판독 유형과 기입 유형을 포함하는 합병 모듈을 포함한다.
본 개시의 예시적 구현에 의하면, 순서 배열 모듈(720)은, 적어도 일부의 액세스 요청에서, 연속적인 주소를 구비하는 제1 액세스 요청과 제2 액세스 요청을 확정하도록 구성된 요청 확정 모듈과, 제1 액세스 요청의 주소의 시작 주소와 제2 액세스 요청의 주소의 마감 순서를 기반으로, 합병 요청의 합병 주소를 확정하도록 구성된 주소 확정 모듈을 포함한다.
본 개시의 예시적 구현에 의하면, 합병 요청의 합병 주소의 범위가 기정 역치보다 크지 않음에 응답하여, 합병 요청을 생성하도록 구성된 역치 모듈을 더 포함한다.
본 개시의 예시적 구현에 의하면, 실행 모듈(740)은, 한 세트의 액세스 요청의 액세스 유형이 판독 유형인 것이 확정됨에 응답하여, 저장 장치 중의 합병 주소로부터 데이터를 판독하도록 구성된 데이터 판독 모듈과, 제1 액세스 요청의 주소와 제2 액세스 요청의 주소를 기반으로, 판독된 데이터로부터 제1 액세스 요청에 관련된 제1 데이터와 제2 액세스 요청에 관련된 제2 데이터를 각각 확정하도록 구성된 데이터 확정 모듈과, 각각 제1 액세스 요청에 제1 데이터를 반송하고 제2 액세스 요청에 제2 데이터를 반송하도록 구성된 데이터 반송 모듈을 포함한다.
본 개시의 예시적 구현에 의하면, 실행 모듈(740)은, 한 세트의 액세스 요청의 액세스 유형이 기입 유형인 것에 응답하여, 제1 액세스 요청 중의 제1 데이터와 제2 액세스 요청 중의 제2 데이터를 기반으로 합병 데이터를 생성하도록 구성된 데이터 합병 모듈과, 저장 장치 중의 합병 주소에 합병 데이터를 기입함에 응답하여, 제1 액세스 요청과 제2 액세스 요청에 제1 응답과 제2 응답을 각각 반송하도록 구성된 기입 응답 모듈을 포함한다.
본 개시의 예시적 구현에 의하면, 한 세트의 액세스 요청 중의 적어도 일부의 액세스 요청 이외의 기타 액세스 요청을 기반으로, 저장 장치를 상대로 데이터 액세스 조작을 실행하도록 구성된 요청 실행 모듈을 더 포함한다.
본 개시의 예시적 구현에 의하면, 획득 모듈은, 저장 장치를 액세스하는 액세스 요청을 저장하기 위한 원형 연결 리스트로부터 한 세트의 액세스 요청을 획득하도록 구성된 요청 획득 모듈을 포함한다.
본 개시의 예시적 구현에 의하면, 기정의 시간 간격 내에, 원형 연결 리스트로부터 한 세트의 액세스 요청을 선택하도록 구성되되, 한 세트의 액세스 요청의 수량이 역치 수량보다 높지 않은 요청 선택 모듈을 더 포함한다.
본 개시의 예시적 구현에 의하면, 한 세트의 액세스 요청이 이미 처리되었음을 표시하도록, 원형 연결 리스트의 포인터를 수정하도록 구성된 수정 모듈을 더 포함한다.
도8은 본 개시의 내용의 다수의 구현을 실시 가능한 전자 기기(800)의 블록도를 나타낸다. 기기(800)는 도3에 설명된 방법을 구현하도록 이용될 수 있다. 도시된 바와 같이, 기기(800)는, 판독 전용 메모리(802; ROM)에 저장된 컴퓨터 프로그램 명령 또는 저장 유닛(808)에서 랜덤 액세스 메모리(803; RAM)에 로딩된 컴퓨터 프로그램 명령에 따라 각종의 적당한 작동 및 처리를 실행할 수 있는 중앙 처리 유닛(801; CPU)을 포함한다. RAM(803)에는 기기(800)의 조작에 필요한 각종의 프로그램 및 데이터가 저장될 수도 있다. CPU(801), ROM(802) 및 RAM(803)은 버스(804)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(805)도 버스(804)에 연결된다.
기기(800) 중의 I/O 인터페이스(805)에 연결된 다수의 부재로서, 예컨대 키보드, 마우스 등과 같은 입력 유닛(806)과, 예컨대 각종의 유형의 표시 장치, 스프커 등과 같은 출력 유닛(807)과, 예컨대 자기 디스크, 광 디스크 등과 같은 저장 유닛(808)과, 예컨대 네트워크 카드, 모뎀, 무선 통신 송수신기 등과 같은 통신 유닛(809)을 포함한다. 통신 유닛(809)은 기기(800)가 인터넷과 같은 컴퓨터 네트워크 및/또는 각종의 통신 네트워크를 통해 기타의 기기와 정보/데이터를 교환하는 것을 허용한다.
처리 유닛(801)은 앞서 설명한 각 방법 및 처리, 예컨대 방법(300)을 실행한다. 예를 들어, 일부의 구현에 있어서, 방법(300)은 기계 판독 가능한 매체(예컨대, 저장 유닛(808))에 유형적으로 포함되는 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 일부의 구현에 있어서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(802) 및/또는 통신 유닛(809)을 경유하여 기기(800)에 로딩되거나 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(803)에 로딩되고 CPU(801)에 의해 실행될 경우, 앞서 설명한 방법(300)의 하나 또는 다수의 단계가 실행될 수 있다. 대안으로, 기타의 구현에 있어서, CPU(801)은 기타의 임의의 적당한 방식을 통해(예컨대, 펌웨어에 의존하여) 방법(300)을 실행하도록 구성될 수 있다.
본 개시의 내용의 예시적 구현에 의하면, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체를 제공한다. 프로그램이 프로세서에 의해 실행될 경우, 본 개시에 설명된 방법이 구현되도록 한다.
본 원에서 앞서 설명한 기능은 적어도 부분적으로 하나 또는 다수의 하드웨어 로직 부재로 실행될 수 있다. 예들 들어, 사용 가능한 예시적 유형의 하드웨어 로직 부재는, 필드 프로그램 가능한 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 특정 용도 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복합 프로그램 가능한 로직 소자(CPLD) 등을 포함하나, 이에 한정되지 않는다.
본 개시의 내용의 방법을 실시하기 위한 프로그램 코드는 하나 또는 다수의 프로그래밍 언어의 임의의 조합을 이용하여 작성할 수 있다. 이러한 프로그램 코드는 범용의 컴퓨터, 특정 용도 컴퓨터, 또는 기타의 프로그램 가능한 데이터 처리 장치의 프로세서 또는 제어 장치에 제공될 수 있으며, 이로써 프로그램 코드가 프로세서 또는 제어 장치에 의해 실행될 경우, 흐름도 및/또는 블록도에 규정된 기능/조작이 실시되도록 한다. 프로그램 코드는 완전히 기계 상에서 실행되거나, 부분적으로 기계상에서 실행되거나, 독립적인 소프트웨어로서 부분적으로 기계 상에서 실행되고 부분적으로 원격 기계 상에서 실행되거나, 또는 완전히 원격 기계 또는 서버 상에서 실행된다.
본 개시의 내용의 맥락에 있어서, 기계 판독 가능한 매체는 명령 실행 시스템, 장치 또는 기기가 사용하거나 또는 명령 실행 시스템, 장치 또는 기기와 결부하여 사용되는 프로그램을 포함하거나 저장할 수 있는 유형의 매체일 수 있다. 기계 판독 가능한 매체는 기계 판독 가능한 신호 매체 또는 기계 판독 가능한 저장 매체일 수 있다. 기계 판독 가능한 매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치 또는 기기, 또는 상술한 내용의 임의의 적합한 조합을 포함할 수 있으나, 이에 한정되지 않는다. 기계 판독 가능한 저장 매체의 보다 구체적인 예시는 하나 또는 다수의 선을 기반으로 하는 전기적 연결, 휴대용 컴퓨터 디스크, 하드 드라이버, 랜덤 액세서 메모리(RAM), 판독 전용 메모리(ROM), 소거 및 프로그램 가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 소자, 자기 저장 소자, 또는 상술한 내용의 임의의 적합한 조합을 포함한다.
또한, 특정의 순서를 각 조작을 설명하였으나, 도시된 특정의 순서 또는 순차적인 순서로 이러한 조작을 실행하는 것을 요구하거나, 원하는 결과를 취득하기 위하여 도시된 모든 조작을 실행하여야 되는 것을 요구하는 것으로 이해하여서는 아니된다. 일정한 환경에서, 다중 태스크 및 병행 처리는 유리할 수 있다. 마찬가지로, 앞서 진행한 토론에는 여러개의 구체적인 구현 세부 사항이 포함되었으나, 이러한 구현 세부 사항은 본 개시의 내용의 범위에 대한 한정으로 해석하여서는 아니된다. 별개의 구현의 맥락에서 설명된 일부의 특징은 단일의 구현에 조합되어 구현될 수도 있다. 반대로, 단일의 구현의 맥락에서 설명된 각종의 특징은 단독으로 또는 임의의 적합한 서브 조합의 방식으로 다수의 구현에 구현될 수도 있다.
이미 구조 특징 및/또는 방법 로직 동작에 특정된 언어를 이용하여 본 과제에 대한 설명을 진행하였으나, 첨부된 특허청구범위에 한정된 과제는 앞서 설명한 특정의 특징 또는 동작에 반드시 한정되는 것이 아님을 이해하여야 한다. 반대로, 앞서 설명한 특정의 특징 또는 동작은 단지 특허청구범위를 구현하는 예시적 형식이다.

Claims (22)

  1. 액세스 요청을 관리하기 위한 방법에 있어서,
    컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하되, 상기 한 세트의 액세스 요청은 각각 상기 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시하는 단계와,
    상기 한 세트의 주소 중의 각 주소에 따라, 상기 저장 장치 중의 주소 범위에서 상기 한 세트의 주소에 대해 순서 배열을 진행하는 단계와,
    순서 배열된 상기 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하는 단계와,
    상기 합병 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하는 단계를 포함하되,
    상기 액세스 요청을 관리하기 위한 방법은 상기 저장 장치의 드라이버에서 구현되고, 상기 드라이버는 상기 컴퓨터 시스템의 사용자 모드에서 구현되는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  2. 제1항에 있어서,
    순서 배열된 상기 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하는 단계는,
    상기 적어도 일부의 액세스 요청이 동일한 액세스 유형을 구비하는 것이 확정됨에 응답하여, 상기 합병 요청을 생성하되, 상기 액세스 유형은 판독 유형과 기입 유형을 포함하는 단계를 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  3. 제1항에 있어서,
    순서 배열된 상기 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하는 단계는,
    상기 적어도 일부의 액세스 요청에서 연속적인 주소를 구비하는 제1 액세스 요청과 제2 액세스 요청을 확정하는 단계와,
    상기 제1 액세스 요청의 주소의 시작 주소와 상기 제2 액세스 요청의 주소의 마감 순서를 기반으로, 상기 합병 요청의 합병 주소를 확정하는 단계를 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  4. 제3항에 있어서,
    상기 합병 요청의 상기 합병 주소의 범위가 기정 역치보다 크지 않는 것이 확정됨에 응답하여, 상기 합병 요청을 생성하는 단계를 더 포함하는 액세스 요청을 관리하기 위한 방법.
  5. 제3항에 있어서,
    상기 합병 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하는 단계는,
    상기 한 세트의 액세스 요청의 액세스 유형이 판독 유형인 것이 확정됨에 응답하여, 상기 저장 장치 중의 상기 합병 주소로부터 데이터를 판독하는 단계와,
    상기 제1 액세스 요청의 상기 주소와 상기 제2 액세스 요청의 상기 주소를 기반으로, 판독된 상기 데이터로부터 상기 제1 액세스 요청에 관련된 제1 데이터와 상기 제2 액세스 요청에 관련된 제2 데이터를 각각 확정하는 단계와,
    상기 제1 액세스 요청에 상기 제1 데이터를 반송하고 상기 제2 액세스 요청에 상기 제2 데이터를 반송하는 단계를 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  6. 제3항에 있어서,
    상기 합병 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하는 단계는,
    상기 한 세트의 액세스 요청의 액세스 유형이 기입 유형인 것이 확정됨에 응답하여, 상기 제1 액세스 요청 중의 제1 데이터와 상기 제2 액세스 요청 중의 제2 데이터를 기반으로 합병 데이터를 생성하는 단계와,
    상기 저장 장치 중의 상기 합병 주소에 상기 합병 데이터를 기입함에 응답하여, 상기 제1 액세스 요청과 상기 제2 액세스 요청에 제1 응답과 제2 응답을 각각 반송하는 단계를 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  7. 제1항에 있어서,
    상기 한 세트의 액세스 요청 중의 상기 적어도 일부의 액세스 요청 이외의 기타 액세스 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하는 단계를 더 포함하는 액세스 요청을 관리하기 위한 방법.
  8. 제1항에 있어서,
    컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하는 단계는,
    상기 저장 장치를 액세스하기 위한 액세스 요청을 저장하는 원형 연결 리스트로부터 상기 한 세트의 액세스 요청을 획득하는 단계를 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 방법.
  9. 제8항에 있어서,
    기정의 시간 간격 내에, 상기 원형 연결 리스트로부터 상기 한 세트의 액세스 요청을 선택하되, 상기 한 세트의 액세스 요청의 수량이 역치 수량보다 높지 않은 단계를 더 포함하는 액세스 요청을 관리하기 위한 방법.
  10. 제8항에 있어서,
    상기 한 세트의 액세스 요청이 이미 처리되었음을 표시하도록, 상기 원형 연결 리스트의 포인터를 수정하는 단계를 더 포함하는 액세스 요청을 관리하기 위한 방법.
  11. 액세스 요청을 관리하기 위한 장치에 있어서,
    컴퓨터 시스템 중의 저장 장치를 상대로 데이터 액세스를 진행하는 한 세트의 액세스 요청을 획득하도록 구성되되, 상기 한 세트의 액세스 요청은 각각 상기 저장 장치 중의 한 세트의 주소를 상대로 하는 액세스 조작을 표시하는 획득 모듈과,
    상기 한 세트의 주소 중의 각 주소에 따라, 상기 저장 장치 중의 주소 범위에서 상기 한 세트의 주소에 대해 순서 배열을 진행하도록 구성된 순서 배열 모듈과,
    순서 배열된 상기 한 세트의 액세스 요청 중의 연속적인 주소를 구비하는 적어도 일부의 액세스 요청을 기반으로, 합병 요청을 생성하도록 구성된 생성 모듈과,
    상기 합병 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하도록 구성된 실행 모듈을 포함하되,
    상기 액세스 요청을 관리하기 위한 장치는 상기 저장 장치의 드라이버에서 구현되고, 상기 드라이버는 상기 컴퓨터 시스템의 사용자 모드에서 구현되는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  12. 제11항에 있어서,
    상기 순서 배열 모듈은,
    상기 적어도 일부의 액세스 요청이 동일한 액세스 유형을 구비하는 것이 확정됨에 응답하여, 상기 합병 요청을 생성하도록 구성되되, 상기 액세스 유형은 판독 유형과 기입 유형을 포함하는 합병 모듈을 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  13. 제11항에 있어서,
    상기 순서 배열 모듈은,
    상기 적어도 일부의 액세스 요청에서 연속적인 주소를 구비하는 제1 액세스 요청과 제2 액세스 요청을 확정하도록 구성된 요청 확정 모듈과,
    상기 제1 액세스 요청의 주소의 시작 주소와 상기 제2 액세스 요청의 주소의 마감 순서를 기반으로, 상기 합병 요청의 합병 주소를 확정하도록 구성된 주소 확정 모듈을 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  14. 제13항에 있어서,
    상기 합병 요청의 상기 합병 주소의 범위가 기정 역치보다 크지 않는 것이 확정됨에 응답하여, 상기 합병 요청을 생성하도록 구성된 역치 모듈을 더 포함하는 액세스 요청을 관리하기 위한 장치.
  15. 제13항에 있어서,
    상기 실행 모듈은,
    상기 한 세트의 액세스 요청의 액세스 유형이 판독 유형인 것이 확정됨에 응답하여, 상기 저장 장치 중의 상기 합병 주소로부터 데이터를 판독하도록 구성된 데이터 판독 모듈과,
    상기 제1 액세스 요청의 상기 주소와 상기 제2 액세스 요청의 상기 주소를 기반으로, 판독된 상기 데이터로부터 상기 제1 액세스 요청에 관련된 제1 데이터와 상기 제2 액세스 요청에 관련된 제2 데이터를 각각 확정하도록 구성된 데이터 확정 모듈과,
    상기 제1 액세스 요청에 상기 제1 데이터를 반송하고 상기 제2 액세스 요청에 상기 제2 데이터를 반송하도록 구성된 데이터 반송 모듈을 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  16. 제13항에 있어서,
    상기 실행 모듈은,
    상기 한 세트의 액세스 요청의 액세스 유형이 기입 유형인 것에 응답하여, 상기 제1 액세스 요청 중의 제1 데이터와 상기 제2 액세스 요청 중의 제2 데이터를 기반으로 합병 데이터을 생성하도록 구성된 데이터 합병 모듈과,
    상기 저장 장치 중의 상기 합병 주소에 상기 합병 데이터를 기입함에 응답하여, 상기 제1 액세스 요청과 상기 제2 액세스 요청에 제1 응답과 제2 응답을 각각 반송하도록 구성된 기입 응답 모듈을 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  17. 제11항에 있어서,
    상기 한 세트의 액세스 요청 중의 상기 적어도 일부의 액세스 요청 이외의 기타 액세스 요청을 기반으로, 상기 저장 장치를 상대로 데이터 액세스 조작을 실행하도록 구성된 요청 실행 모듈을 더 포함하는 액세스 요청을 관리하기 위한 장치.
  18. 제11항에 있어서,
    상기 획득 모듈은,
    상기 저장 장치를 액세스하기 위한 액세스 요청을 저장하는 원형 연결 리스트로부터 상기 한 세트의 액세스 요청을 획득하도록 구성된 요청 획득 모듈을 포함하는 것을 특징으로 하는 액세스 요청을 관리하기 위한 장치.
  19. 제18항에 있어서,
    기정의 시간 간격 내에, 상기 원형 연결 리스트로부터 상기 한 세트의 액세스 요청을 선택하도록 구성되되, 상기 한 세트의 액세스 요청의 수량이 역치 수량보다 높지 않은 요청 선택 모듈을 더 포함하는 액세스 요청을 관리하기 위한 장치.
  20. 제18항에 있어서,
    기 한 세트의 액세스 요청이 이미 처리되었음을 표시하도록, 상기 원형 연결 리스트의 포인터를 수정하도록 구성된 수정 모듈을 더 포함하는 액세스 요청을 관리하기 위한 장치.
  21. 액세스 요청을 관리하기 위한 기기에 있어서,
    하나 또는 다수의 프로세서와,
    하나 또는 다수의 프로그램을 저장하기 위한 저장 장치를 포함하되,
    상기 하나 또는 다수의 프로그램이 상기 하나 또는 다수의 프로세서에 의해 실행될 경우, 상기 하나 또는 다수의 프로세서가 제1항 내지 제10항 중의 임의의 한 항의 방법을 구현하도록 하는 액세스 요청을 관리하기 위한 기기.
  22. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장 매체에 있어서,
    상기 프로그램이 프로세서에 의해 실행될 경우, 제1항 내지 제10항 중의 임의의 한 항의 방법이 구현되도록 하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
KR1020200003625A 2019-05-24 2020-01-10 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 KR102236419B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910440376.7 2019-05-24
CN201910440376.7A CN110187835B (zh) 2019-05-24 2019-05-24 用于管理访问请求的方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
KR20200135718A KR20200135718A (ko) 2020-12-03
KR102236419B1 true KR102236419B1 (ko) 2021-04-08

Family

ID=67717638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003625A KR102236419B1 (ko) 2019-05-24 2020-01-10 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체

Country Status (4)

Country Link
US (1) US11474712B2 (ko)
JP (1) JP7039631B2 (ko)
KR (1) KR102236419B1 (ko)
CN (1) CN110187835B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948279A (zh) * 2019-11-26 2021-06-11 伊姆西Ip控股有限责任公司 管理存储系统中的访问请求的方法、设备和程序产品
CN111176566B (zh) * 2019-12-25 2023-09-19 山东方寸微电子科技有限公司 一种支持queue命令的eMMC读写控制方法及存储介质
CN112015672A (zh) * 2020-08-28 2020-12-01 北京浪潮数据技术有限公司 一种存储系统中数据处理方法、装置、设备及存储介质
CN112712167A (zh) * 2020-12-31 2021-04-27 北京清微智能科技有限公司 支持多种卷积神经网络加速的存储器访问方法及系统
CN113553292B (zh) * 2021-06-28 2022-04-19 睿思芯科(深圳)技术有限公司 一种向量处理器及相关数据访存方法
CN114416178A (zh) * 2021-12-16 2022-04-29 北京小米移动软件有限公司 数据访问方法、装置及非临时性计算机可读存储介质
US20240078017A1 (en) * 2022-09-01 2024-03-07 Advanced Micro Devices, Inc. Memory controller and near-memory support for sparse accesses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165779A (ja) 2000-08-04 2008-07-17 Avaya Technology Corp コネクションオリエンテッドトランザクションにおけるurlオブジェクトのインテリジェントな需要に基づく認識
KR100963721B1 (ko) 2001-12-19 2010-06-14 에이저 시스템즈 인크 메모리 시스템, 처리 시스템 및 메모리 시스템 내 사용 방법
KR101252903B1 (ko) 2007-06-29 2013-04-10 에멀럭스 디자인 앤드 매뉴팩처링 코포레이션 할당 단위 기반 가상 포매팅 방법 및 할당 단위 기반 포매팅 방법을 이용하는 장치

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991098A (ja) * 1995-09-27 1997-04-04 Nec Software Ltd デバイスドライバアクセス方式
US5774682A (en) * 1995-12-11 1998-06-30 International Business Machines Corporation System for concurrent cache data access by maintaining and selectively merging multiple ranked part copies
JPH09269927A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp バスアクセス方法、バス、並びにバス接続システム
US8135924B2 (en) * 2009-01-14 2012-03-13 International Business Machines Corporation Data storage device driver
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US8898417B1 (en) * 2009-10-20 2014-11-25 Micron Technology, Inc. Block-based storage device with a memory-mapped interface
US8650354B2 (en) * 2011-07-22 2014-02-11 International Business Machines Corporation Prefetching tracks using multiple caches
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9239793B2 (en) * 2011-12-13 2016-01-19 Ati Technologies Ulc Mechanism for using a GPU controller for preloading caches
US9378572B2 (en) 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US20150213047A1 (en) * 2014-01-24 2015-07-30 Netapp Inc. Coalescing sequences for host side deduplication
CN108231109B (zh) * 2014-06-09 2021-01-29 华为技术有限公司 动态随机存取存储器dram的刷新方法、设备以及系统
CN105320462A (zh) * 2014-07-08 2016-02-10 广明光电股份有限公司 固态硬盘存取数据的方法
US20160062911A1 (en) * 2014-08-27 2016-03-03 Advanced Micro Devices, Inc. Routing direct memory access requests in a virtualized computing environment
CN104850502B (zh) * 2015-05-05 2018-03-09 华为技术有限公司 一种数据的访问方法、装置及设备
US10628233B2 (en) * 2016-12-30 2020-04-21 Samsung Electronics Co., Ltd. Rack-level scheduling for reducing the long tail latency using high performance SSDS
CN107635027B (zh) * 2017-09-27 2021-03-30 网易(杭州)网络有限公司 一种域名解析方法、介质、装置和计算设备
CN109725827B (zh) * 2017-10-27 2022-05-13 伊姆西Ip控股有限责任公司 管理存储系统的方法、系统和计算机程序产品
TWI685744B (zh) * 2018-09-06 2020-02-21 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10908841B2 (en) * 2018-09-24 2021-02-02 Cisco Technology, Inc. Increasing throughput of non-volatile memory express over fabric (NVMEoF) via peripheral component interconnect express (PCIe) interface
US11237968B2 (en) * 2018-10-15 2022-02-01 Texas Instruments Incorporated Multicore shared cache operation engine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008165779A (ja) 2000-08-04 2008-07-17 Avaya Technology Corp コネクションオリエンテッドトランザクションにおけるurlオブジェクトのインテリジェントな需要に基づく認識
KR100963721B1 (ko) 2001-12-19 2010-06-14 에이저 시스템즈 인크 메모리 시스템, 처리 시스템 및 메모리 시스템 내 사용 방법
KR101252903B1 (ko) 2007-06-29 2013-04-10 에멀럭스 디자인 앤드 매뉴팩처링 코포레이션 할당 단위 기반 가상 포매팅 방법 및 할당 단위 기반 포매팅 방법을 이용하는 장치

Also Published As

Publication number Publication date
JP2020194524A (ja) 2020-12-03
US20200371696A1 (en) 2020-11-26
KR20200135718A (ko) 2020-12-03
JP7039631B2 (ja) 2022-03-22
US11474712B2 (en) 2022-10-18
CN110187835A (zh) 2019-08-30
CN110187835B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
KR102236419B1 (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US10073711B2 (en) Virtual machine monitor configured to support latency sensitive virtual machines
Kang et al. Enabling cost-effective data processing with smart SSD
US9996394B2 (en) Scheduling accelerator tasks on accelerators using graphs
US11243795B2 (en) CPU overcommit with guest idle polling
US9501313B2 (en) Resource management and allocation using history information stored in application's commit signature log
US9817754B2 (en) Flash memory management
US10204060B2 (en) Determining memory access categories to use to assign tasks to processor cores to execute
US10169248B2 (en) Determining cores to assign to cache hostile tasks
KR102326280B1 (ko) 데이터 처리 방법, 장치, 기기 및 매체
US10579419B2 (en) Data analysis in storage system
US10826848B2 (en) Balanced, opportunistic multicore I/O scheduling from non-SMP applications
US8862786B2 (en) Program execution with improved power efficiency
US7783849B2 (en) Using trusted user space pages as kernel data pages
KR102315102B1 (ko) 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체
JPH07129518A (ja) 計算機システム
US8966133B2 (en) Determining a mapping mode for a DMA data transfer
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request
US8762776B2 (en) Recovering from a thread hang
US20160335321A1 (en) Database management system, computer, and database management method
KR20220169894A (ko) 메모리 기반 통합 스토리지 관리 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant