KR102292527B1 - 액세스 요청 처리 방법, 장치, 기기 및 저장 매체 - Google Patents

액세스 요청 처리 방법, 장치, 기기 및 저장 매체 Download PDF

Info

Publication number
KR102292527B1
KR102292527B1 KR1020200003587A KR20200003587A KR102292527B1 KR 102292527 B1 KR102292527 B1 KR 102292527B1 KR 1020200003587 A KR1020200003587 A KR 1020200003587A KR 20200003587 A KR20200003587 A KR 20200003587A KR 102292527 B1 KR102292527 B1 KR 102292527B1
Authority
KR
South Korea
Prior art keywords
requests
request
group
read
write
Prior art date
Application number
KR1020200003587A
Other languages
English (en)
Other versions
KR20200135717A (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 KR20200135717A publication Critical patent/KR20200135717A/ko
Application granted granted Critical
Publication of KR102292527B1 publication Critical patent/KR102292527B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

본 발명의 실시예에 따르면, 액세스 요청 처리 방법, 장치, 기기 및 저장 매체를 제공하고, 클라우드 컴퓨팅 분야에 관한 것이다. 상기 액세스 요청 방법은, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 단계 - 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함함 - ; 이미 분배된 판독 요청의 개수가 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 한 그룹의 판독 요청 중의 판독 요청을 저장 기기의 구동 기기에 분배하고 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 단계 - 구동 기기는 저장 기기에서 분배된 요청을 실행하기 위한 것임 - ; 및 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 구동 기기에 분배하는 단계를 포함한다. 상기 해결수단은 액세스 요청 중의 판독 요청을 우선으로 분배할 수 있어, 사용자가 필요한 데이터를 보다 신속하게 제공함으로써, 액세스 요청의 실행 효율을 향상시킨다.

Description

액세스 요청 처리 방법, 장치, 기기 및 저장 매체{METHOD, APPARATUS, DEVICE AND STORAGE MEDIUM FOR PROCESSING ACCESS REQUEST}
본 발명의 실시예는 주로 컴퓨터 저장 분야에 관한 것으로, 구체적으로 액세스 요청 처리 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체에 관한 것이다.
컴퓨터 기술이 발전함에 따라, 현재 하드웨어 액세스 속도가 더 빠른 고속 저장 기기가 이미 존재하고 있다. 하드웨어 속도를 향상시키는 동시에, 고속 저장 기기의 잠재력을 최대한 이용하도록 저장 기기의 구동 프로그램을 상응하게 수정할 수 있어야 한다. 이때, 어떻게 보다 효과적인 방식으로 고속 저장 기기에 대한 액세스를 관리할 것인가 하는 것은 하나의 기술적 난제이다.
본 발명의 실시예는 액세스 요청 처리에 관한 방안을 제공한다.
본 발명의 내용의 제1 양태에 있어서, 액세스 요청 처리 방법을 제공하되, 상기 방법은, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 단계 - 상기 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함함 - ; 이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 상기 한 그룹의 판독 요청 중의 판독 요청을 상기 저장 기기의 구동 기기에 분배하고, 상기 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 단계 - 상기 구동 기기는 상기 저장 기기에서 분배된 요청을 실행하기 위한 것임 - ; 및 상기 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 상기 구동 기기에 분배하는 단계를 포함한다.
본 발명의 내용의 제2 양태에 있어서, 액세스 요청 처리 장치를 제공하되, 상기 장치는, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 획득 모듈 - 상기 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함함 - ; 이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 상기 한 그룹의 판독 요청 중의 판독 요청을 상기 저장 기기의 구동 기기에 분배하고, 상기 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 제1 분배 모듈 - 상기 구동 기기는 상기 저장 기기에서 분배된 요청을 실행하기 위한 것임 - ; 및 상기 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 상기 구동 기기에 분배하는 제2 분배 모듈을 포함한다.
본 발명의 내용의 제3 양태에 있어서, 하나 또는 복수의 프로세서; 및 하나 또는 복수의 프로그램이 저장된 메모리를 포함하는 전자 기기를 제공하되, 상기 하나 또는 복수의 프로그램이 상기 하나 또는 복수의 프로세서에 의해 실행될 경우, 상기 전자 기기가 상기 제1 양태의 액세스 요청 처리 방법을 구현하도록 한다.
본 발명의 내용의 제4 양태에 있어서, 퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 제공하되, 상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우 제1 양태의 액세스 요청 처리 방법을 구현한다.
발명의 내용 부분에 설명된 내용은 본 개시의 내용의 구현의 관건적인 특징 또는 중요한 특징을 한정하기 위한 것이 아니며, 본 개시의 내용의 범위를 한정하기 위한 것이 아님을 이해하여야 한다. 아래의 설명을 통해, 본 개시의 내용의 기타의 특징은 용이하게 이해할 수 있을 것이다.
첨부된 도면을 결부하고 이하 상세한 설명을 참조하여, 본 발명의 다양한 실시예의 상술한 설명 및 다른 특징, 이점 및 양태는 보다 명백해질 것이다. 도면에서, 동일하거나 유사한 도면 표기는 동일하거나 유사한 요소를 나타낸다.
도 1은 본 발명의 여러 개의 실시예가 구현 가능한 예시적 환경의 모식도이다.
도 2는 본 발명의 실시예에 따른 액세스 요청 처리 과정의 흐름도이다.
도 3은 본 발명의 실시예에 따른 분배 시간 초과 시의 액세스 요청의 과정의 흐름도이다.
도 4는 본 발명의 실시예에 따른 판독 요청을 분해하는 과정의 흐름도이다.
도 5는 본 발명의 실시예에 따른 주소에 따라 판독 요청을 분배하는 과정의 흐름도이다.
도 6은 본 발명의 실시예에 따른 기입 요청을 분배하는 과정의 흐름도이다.
도 7은 본 발명의 실시예에 따른 주소에 따라 기입 요청을 분배하는 과정의 흐름도이다.
도 8은 본 발명의 내용의 예시적 실시형태에 따른 액세스 요청 처리 장치의 블록도이다.
도 9는 본 발명의 여러 개의 실시예를 실행 가능한 컴퓨팅 기기의 블록도이다.
아래에 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명한다. 비록 도면에는 본 발명의 일부 실시예가 도시되어 있으나 본 발명은 다양한 형태로 구현될 수 있음을 이해해야 하고, 여기서 설명된 실시예에 한정되는 것으로 해석되어서는 안되며, 반대로 이러한 실시예는 본 발명을 보다 분명하고 완전하게 이해시키기 위해 제공된다. 본 발명의 도면 및 실시예는 단지 예시로서 작용되며, 본 발명의 보호 범위를 한정하려는 것이 아님을 이해해야 한다.
본 발명의 실시예의 설명 과정에서, 용어 "포함하다” 및 이와 유사한 용어는 "포함하나 한정되지 않음”과 같은 개방적인 포함으로 이해되어야 한다. 용어 "기반”은 "적어도 부분적으로 기반”으로 이해되어야 한다. 용어 "일 실시예” 또는 "상기 실시예”는 "적어도 일 실시예”로 이해되어야 한다. 용어 "제1", "제2" 등은 상이하거나 동일한 객체를 지칭할 수 있다. 아래 설명은 다른 명시적 및 암시적 정의를 더 포함할 수 있다.
저장 기기 하드웨어 기술이 발전함에 따라, 고속 저장 기기가 이미 개발되었고, 고속 저장 기기가 데이터 센터에서 차지하는 비율은 점점 높아지고 있다. 기존의 저속 저장 기기에 비해, 고속 저장 기기의 데이터 액세스 속도는 극히 높고 액세스 지연이 비교적 낮다. 예를 들어, NVMe SSD는 기존의 SAS 또는 SATA 윈체스터 자기 디스크보다 천 배 빠르고, 초기의 SATA SSD보다 5배 내지 10배 빠르다.
기존의 커널 모드가 구현하는 구동 프로그램의 성능 및 효율은 고속 기기의 우세를 발휘하기 어려웠다. 저장 기기의 응답 효율을 향상시키기 위하여, 현재 저장 기기의 구동 프로그램을 커널 모드로부터 사용자 모드로 이동시키는 기술적 해결수단이 이미 제안되고 있다. 이로한 방식으로 커널 문맥 전환을 방지할 수 있음으로써, 중앙 처리 장치(CPU)의 부담을 감소시키고, CPU가 보다 많은 명령을 실제적인 데이터 저장 처리 작업에 주기적으로 사용하도록 허용한다.
하지만, 사용자 모드가 저장 기기를 액세스하는 동작을 구현하는 동안, 폴링(polling) 모드를 사용하여 저장 기기에 대한 액세스 요청을 처리하고, 액세스 요청을 신속하게 분배하므로 대기 시간을 감소시키고 지연을 감소시킬 수 있다. 그러나, 현재 사용자 모드 구동은 실행될 액세스 요청을 순서에 따라 간단하게 분배할 수만 있고, 액세스 요청의 분배 순서을 조절하지 못함으로써, 액세스 요청 실행의 성능을 향상시키기 어렵다.
본 발명의 실시예에 따르면, 액세스 요청 처리 해결수단을 제공한다. 상기 해결수단에서, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하고, 여기서, 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함한다. 다음, 이미 분배된 판독 요청의 개수가 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 한 그룹의 판독 요청 중의 판독 요청을 저장 기기의 구동 기기에 분배하고 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않으며, 여기서, 구동 기기는 저장 기기에서 분배된 요청을 실행하기 위한 것이다. 그 다음, 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 구동 기기에 분배한다. 본 발명의 해결수단은 액세스 요청 중의 판독 요청을 우선으로 분배할 수 있어, 사용자가 필요한 데이터를 보다 신속하게 제공함으로써, 액세스 요청의 실행 효율을 향상시킨다.
본 발명의 예시적 실시형태에 따르면, 액세스 요청의 스케줄링 코드 실행은 사용자 모드에서 구동 프로그램이 커널 모드에서 실행되지 않는 것을 의미하고, 이는 커널 문맥 전환 및 중단을 방지할 수 있으며, CPU의 대량 처리 오버헤드를 절약할 수 있고, CPU가 보다 많은 클럭 주기적으로 실제적인 데이터 저장을 실행하도록 허용한다.
아래 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 도 1은 본 발명의 여러 개의 실시예가 구현 가능한 예시적 환경(100)의 모식도이다. 도 2에 도시된 바와 같이, 예시적 환경(100)은 스케줄링 기기(130), 구동 기기(140) 및 저장 기기(150)를 포함하고, 여기서, 스케줄링 기기(130)는 한 그룹의 액세스 요청을 수신할 수 있으며, 상기 그룹의 액세스 요청은 구체적으로 복수의 판독 요청(120, 122 및 126) 및 기입 요청(124)을 포함한다.
일부 실시예에서, 스케줄링 기기(130)는 저장 기기(150)를 액세스하기 위한 액세스 요청을 저장한 원형 연결 리스트로부터 한 그룹의 액세스 요청을 획득할 수 있다. 도 2에 도시된 바와 같이, 원형 연결 리스트(110)는 수신된, 저장 기기(150)를 액세스한 복수의 액세스 요청을 저장할 수 있다. 상기 원형 연결 리스트(110)는 피처리 액세스 요청 중의 첫 번째 액세스 요청을 지향하는 헤드 포인터(head pointer)(112); 및 피처리 액세스 요청 중의 마지막 하나의 액세스 요청을 지향하는 테일 포인터(tail pointer)(114)를 포함할 수 있다.
일부 실시예에서, 스케줄링 기기(130)는 기설정된 시간 간격 내에, 원형 연결 리스트(110)로부터 한 그룹의 액세스 요청을 선택한다. 매 번 액세스 요청을 수신할 때마다, 저장 기기(150) 중의, 액세스 요청에 의해 지정된 데이터에 대한 액세스를 실행하면, 저장 기기(150)를 지나치게 빈번하게 액세스하게 되는 것으로 이해될 것이다. 특히, 각각의 액세스 요청에 관한 데이터 양이 비교적 작을 경우, 저장 기기(150)에 대해 지나치게 액세스 요청을 실행하면 저장 시스템의 전체적인 성능을 감소시킬 수 있다. 본 발명에서, 기설정된 시간 간격의 길이를 지정할 수 있는데, 이러한 방식으로 기설정된 시간 간격 내에 수신된 복수의 액세스 요청에 대해 집중 처리를 진행하여, 액세스 동작의 전체적인 성능을 향상시킬 수 있다.
일부 실시예에서, 한 그룹의 액세스 요청의 개수는 입계값 개수보다 많지 않다. 임계값 개수를 예를 들어 32, 16, 8 등 기설정된 개수로 설정할 수 있다. 예를 들어, 액세스 요청을 수신하는 빈도 또는 개수에 따라 상기 수치를 확정할 수 있거나, 응답 시간에 대한 저장 시스템의 요구에 따라 상기 수치를 확정할 수도 있다.
도 2에 도시된 바와 같이, 스케줄링 기기(130)는 수신된 한 그룹의 액세스 요청(판독 요청(120, 122 및 126) 및 기입 요청(124))을 사용자 모드 중의 구동 기기(사용자 모드 구동이라고도 함)에 분배하여 저장 기기(150)에서 액세스 요청을 개편할 수 있다.
스케줄링 기기(130)는 수신된 한 그룹의 액세스 요청 중 각 액세스 요청이 분배되는 순서를 조절할 수도 있다. 구체적으로, 스케줄링 기기(130)가 판독 요청을 송신할 시 판독 요청에 대응되는 데이터를 즉시 획득하고 기입 요청을 송신할 시 데이터가 정확하게만 라이팅(writing) 되기를 항상 바라는 것을 고려하면, 스케줄링 기기(130)는 수신된 한 그룹의 액세스 요청의 분배 순서를 조절하여 판독 요청을 우선으로 분배할 수 있도록 한다. 이 밖에, 기입 요청이 일정한 시간 내에 실행될 수 있도록 보장해야 함을 고려하면, 스케줄링 기기(130)는 특정 개수의 판독 요청을 분배한 후 기입 요청을 분배하기 시작할 수도 있음으로써, 판독 요청이 우선으로 실행되어 시스템의 효율을 향상시키는 것을 보장할 수 있을 뿐만 아니라, 동시에 기입 요청이 수신 가능한 시간 내에 실행될 수 있도록 보장한다.
아래 도 2 내지 도 7을 참조하여 액세스 요청 처리 과정을 상세하게 설명한다. 도 2는 본 발명의 일부 실시예에 따른 액세스 요청 처리 과정(200)의 흐름도이다. 과정(200)은 도 1의 스케줄링 기기(130)에 의해 구현될 수 있다. 토론의 편의를 위하여, 도 1을 결부하여 과정(200)을 설명하도록 한다.
단계(202)에서, 스케줄링 기기(130)는 분배될, 저장 기기(150)에 대한 복수의 액세스 요청을 획득하고, 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함한다. 구체적으로, 스케줄링 기기(130)는 분배될 액세스 요청 대기열(예를 들어, 원형 연결 리스트(110))로부터 한 그룹의 액세스 요청(예를 들어, 판독 요청(120, 122 및 126) 및 기입 요청(124))을 획득할 수 있다.
일부 실시예에서, 스케줄링 기기(130)는 액세스 요청의 타입에 따라 한 그룹의 액세스 요청을 한 그룹의 판독 요청 및 한 그룹의 기입 요청으로 패킷할 수 있다. 추가적으로, 스케줄링 기기(130)는 사용자 모드 중의 저장 공간(예를 들어, 저장 스택)에서 판독 요청 대기열 및 기입 요청 대기열을 설정하여 수신된 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 저장할 수 있다. 스케줄링 기기(130)는 액세스 요청의 타입에 따라 액세스 요청을 대응되는 판독 요청 대기열 또는 기입 요청 대기열에 추가할 수 있다.
일부 실시예에서, 스케줄링 기기(130)는 이미 시간 초과된 액세스 요청을 구동 기기(140)에 우선으로 분배할 수 있다. 구체적으로, 도 3은 본 발명의 실시예에 따른 분배 시간 초과 시의 액세스 요청의 과정(300)의 흐름도이다.
도 3에 도시된 바와 같이, 단계(302)에서, 케줄링 기기(130)는 복수의 액세스 요청 중의 각각의 액세스 요청의 초과 시간을 확정할 수 있고, 여기서, 초과 시간은 상응한 액세스 요청이 이미 대기 중인 시간이다. 일부 실시예에서, 컴퓨팅 시스템은 각각의 액세스 요청이 전달된 시간을 기록할 수 있고, 스케줄링 기기(130)는 전달 시간 및 현재 시간에 따라 각각의 액세스 요청의 초과 시간을 확정할 수 있다.
단계(304)에서, 스케줄링 기기(130)는 복수의 액세스 요청에 초과 시간이 기설정된 시간 임계값보다 큰 시간 초과 액세스 요청이 존재하는 지의 여부를 확정할 수 있다. 예를 들어, 스케줄링 기기(130)는 한 그룹의 액세스 요청을 운행(traversal)하여 초과 시간이 기설정된 시간 임계값보다 큰 액세스 요청이 존재하는 지의 여부를 확정할 수 있다. 일부 실시예에서, 스케줄링 기기(130)는 초과 시간의 내림차순에 따라 액세스 요청을 정렬할 수 있음으로써, 순서에 따라 액세스 요청을 운행하고, 초과 시간이 임계값 시간을 초과하지 않은 액세스 요청을 발견할 시 운행을 중지시킬 수 있다. 이러한 방식에 기반하여 운행에 필요한 산출 양을 감소시킬 수 있다.
단계(304)에서 초과 시간이 시간 임계값보다 큰 액세스 요청이 존재하는 것으로 확정한 것에 응답하여, 방법(300)은 단계(306)을 수행하는데, 즉, 스케줄링 기기(130)는 시간 초과 액세스 요청을 구동 기기(140)에 분배할 수 있다. 이러한 방식을 통해, 스케줄링 기기(130)는 시간 초과되는 액세스 요청을 구동 기기(140)에 우선으로 분배하여 실행할 수 있다. 단계(304)에서 시간 초과되는 액세스 요청이 존재하지 않는 것으로 확정할 경우(미도시), 액세스 요청의 타입에 따라 판독 요청을 우선으로 분배할 수 있다.
계속하여 도 2를 참조하면, 단계(204)에서, 이미 분배된 판독 요청의 개수가 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 스케줄링 기기(130)는 한 그룹의 판독 요청 중의 판독 요청을 저장 기기(150)의 구동 기기(140)에 분배하고 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않고, 구동 기기(140)는 저장 기기(150)에서 분배된 요청을 실행하기 위한 것이다. 일부 실시예에서, 구동 기기는 사용자 모드에서 사용자 모드 구동으로 구현될 수 있다.
구체적으로, 스케줄링 기기(130)는 기설정된 개수의 판독 요청을 우선으로 분배할 수 있고 기입 요청을 분배하지 않는데, 즉, 기입 요청이 더 일찍 수신될 수 있도록 한다. 아래 도 4를 참조하여 단계(204)의 구체적인 과정을 설명하고, 도 4는 본 발명의 실시예에 따른 판독 요청을 분해하는 과정의 흐름도이다.
도 4에 도시된 바와 같이, 단계(402)에서, 스케줄링 기기(130)는 한 그룹의 판독 요청 중의 하나의 판독 요청을 구동 기기(140)에 분배할 수 있다. 일부 실시예에서, 스케줄링 기기(130)는 한 그룹의 판독 요청에 대해 대응되는 물리적 주소에 따라 정렬할 수 있어, 주소에 따라 판독 요청을 순차적으로 분배할 수 있도록 함으로써, 판독 요청의 실행 효율을 향상시킨다. 구체적으로, 아래 도 5를 참조하여 단계(402)의 과정을 설명하고, 도 5는 본 발명의 실시예에 따른 주소에 따라 판독 요청을 분배하는 과정의 흐름도이다.
도 5에 도시된 바와 같이, 단계(502)에서, 스케줄링 기기(130)는 한 그룹의 판독 요청으로부터 분배되지 않은 타겟 판독 요청을 선택할 수 있고, 여기서, 타겟 판독 요청은 물리적 주소에 대한 최소 오프셋을 구비한다. 일부 실시예에서, 스케줄링 기기(130)는 각 판독 요청에 대응되는 물리적 주소의 오프셋을 확정할 수 있고, 예를 들어 정렬 트리(예를 들어, 레드-블랙 트리)를 이용하여 한 그룹의 판독 요청에 대해 액세스되는 주소 오프셋의 순서에 따라 정렬할 수 있다. 예를 들어, 스케줄링 기기(130)는 수신된 판독 요청의 액세스 주소에 따라 이를 미리 설정된 사용자 모드의 저장 공간 중의 정렬 트리에 삽입시킬 수 있다. 스케줄링 기기(130)는 이어서 정렬 트리로부터 최소 오프셋을 구비하는 분배되지 않은 판독 요청을 선택할 수 있음으로써, 판독 요청이 항상 대응되는 주소 오프셋의 순서에 따라 순차적으로 분배되도록 한다. 예를 들어, 2개의 판독 요청이 연속적인 주소일 경우, 이러한 분배는 판독 요청을 실행할 시 포인터의 위치를 이동시킬 필요가 없음으로써, 구동 기기(140)가 판독 요청을 실행하는 효율을 향상시킨다. 그 다음, 단계(504)에서, 스케줄링 기기(130)는 타겟 판독 요청을 구동 기기(140)에 분배할 수 있다.
계속하여 도 4를 참조하면, 단계(404)에서, 스케줄링 기기(130)는 판독 요청 계수를 점차 증가시킬 수 있고, 판독 요청 계수는 이미 분배된 판독 요청의 개수를 표시하기 위한 것이다. 일부 실시예에서, 스케줄링 모듈은 판독 요청 계수를 유지하여 이미 연속적으로 분배된 판독 요청의 개수를 기록할 수 있다. 예를 들어, 판독 요청 계수를 초기에는 0으로 설정할 수 있다.
단계(406)에서, 스케줄링 기기(130)는 한 그룹의 판독 요청에 분배되지 않은 판독 요청이 존재하는 지의 여부를 확정한다. 단계(506)에서 분배되지 않은 판독 요청이 존재하지 않는 것으로 확정한 것에 응답하여, 즉, 한 그룹의 판독 요청이 모두 이미 분배되었을 경우, 스케줄링 기기(130)는 반복 수행 과정을 중지시킬 수 있다
도 4에 도시된 바와 같이, 단계(406)에서 분배되지 않은 판독 요청이 존재하는 것으로 확정한 것에 응답하여, 방법은 단계(408)을 수행할 수 있는데, 즉, 스케줄링 기기(130)는 판독 요청 계수가 제1 임계값 개수에 도달하는 지의 여부를 확정할 수 있고, 판독 요청 계수가 제1 임계값 개수에 도달한 것으로 확정할 경우, 스케줄링 기기(130)는 반복 수행 과정을 중지시킬 수 있다.
반대로, 단계(408)에서 판독 요청 계수가 아직 제1 임계값 개수에 도달하지 못한 것으로 확정할 경우, 방법은 단계(402)로 돌아가 계속하여 한 그룹의 판독 요청 중의 다음의 판독 요청을 분배할 수 있다. 단계(402) 내지 단계(408)은 판독 요청 계수가 제1 임계값 개수에 도달할 때까지 반복 수행될 수 있다. 이러한 방식에 기반하여, 스케줄링 기기(130)는 기입 요청 성능 영향을 최대한 감소시키는 상황 하에 기설정된 개수의 판독 요청을 우선으로 분배할 수 있음으로써, 저장 시스템의 전체적인 성능을 향상시킨다.
계속하여 도 2를 참조하면, 도 2에 도시된 바와 같이, 단계(206)에서, 스케줄링 기기(130)는 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 구동 기기(140)에 분배한다. 일부 실시예에서, 스케줄링 기기(130)는 기입 요청이 수신되는 순서에 따라 기입 요청을 구동 기기(140)에 분배할 수 있다.
일부 실시예에서, 한 그룹의 판독 요청에 대한 처리와 유사하게, 스케줄링 기기(130)는 한 번에 복수의 기설정된 개수의 기입 요청을 분배할 수도 있다. 아래 도 6을 참조하여 단계(206)의 과정을 설명하고, 도 6은 본 발명의 실시예에 따른 기입 요청을 분배하는 과정의 흐름도이다.
도 6에 도시된 바와 같이, 단계(602)에서, 스케줄링 기기(130)는 한 그룹의 기입 요청 중의 하나의 기입 요청을 구동 기기에 분배할 수 있다. 일부 실시예에서, 스케줄링 기기(130)는 한 그룹의 기입 요청에 대해 대응되는 물리적 주소에 따라 정렬할 수 있어, 주소에 따라 기입 요청을 순차적으로 분배할 수 있도록 함으로써, 기입 요청의 실행 효율을 향상시킨다. 구체적으로, 아래 도 7을 참조하여 단계(602)의 과정을 설명하고, 도 7은 본 발명의 실시예에 따른 주소에 따라 기입 요청을 분배하는 과정의 흐름도이다.
도 7에 도시된 바와 같이, 단계(702)에서, 스케줄링 기기(130)는 한 그룹의 기입 요청으로부터 분배되지 않은 타겟 기입 요청을 선택할 수 있고, 여기서, 타겟 기입 요청은 물리적 주소에 대한 최소 오프셋을 구비한다. 일부 실시예에서, 스케줄링 기기(130)는 각 기입 요청에 대응되는 물리적 주소의 오프셋을 확정할 수 있고, 예를 들어 정렬 트리(예를 들어, 레드-블랙 트리)를 이용하여 한 그룹의 기입 요청에 대해 액세스되는 주소 오프셋의 순서에 따라 정렬할 수 있다. 예를 들어, 스케줄링 기기(130)는 수신된 기입 요청의 액세스 주소에 따라 이를 미리 설정된 사용자 모드의 저장 공간 중의 정렬 트리에 삽입시킬 수 있다. 스케줄링 기기(130)는 이어서 정렬 트리로부터 최소 오프셋을 구비하는 분배되지 않은 기입 요청을 선택할 수 있음으로써, 기입 요청이 항상 대응되는 주소 오프셋의 순서에 따라 순차적으로 분배되도록 한다. 예를 들어, 2개의 기입 요청이 연속적인 주소일 경우, 이러한 분배는 기입 요청을 실행할 시 포인터의 위치를 이동시킬 필요가 없음으로써, 구동 기기(140)가 기입 요청을 실행하는 효율을 향상시킨다. 그 다음, 단계(704)에서, 스케줄링 기기(130)는 타겟 기입 요청을 구동 기기(140)에 분배할 수 있다.
계속하여 도 6을 참조하면, 단계(604)에서, 스케줄링 기기(130)는 기입 요청 계수를 점차 증가시킬 수 있고, 여기서, 기입 요청 계수는 이미 분배된 기입 요청의 개수를 표시하기 위한 것이다. 일부 실시예에서, 스케줄링 모듈은 기입 요청 계수를 유지하여 이미 연속적으로 분배된 기입 요청의 개수를 기록할 수 있다. 예를 들어, 기입 요청 계수를 초기에는 0으로 설정할 수 있다.
단계(606)에서, 스케줄링 기기(130)는 한 그룹의 기입 요청에 분배되지 않은 기입 요청이 존재하는 지의 여부를 확정한다. 단계(606)에서 분배되지 않은 기입 요청이 여전히 존재하는 것으로 확정한 것에 응답하여, 방법은 단계(608)을 수행할 수 있는데, 즉, 스케줄링 기기(130)는 기입 요청 계수가 제2 임계값 개수에 도달하였는지의 여부를 확정할 수 있다. 단계(608)에서 기입 요청 계수가 여전히 기설정된 제2 임계값 개수에 도달하지 못한 것으로 확정할 경우, 방법은 단계(602)로 돌아갈 수 있는데, 즉, 한 그룹의 기입 요청 중의 다음의 기입 요청을 분배한다.
스케줄링 기기(130)가 한 그룹의 기입 요청이 모두 이미 분배되거나 기입 요청 계수가 이미 제2 임계값 개수에 도달한 것으로 확정할 경우, 스케줄링 기기(130)는 방법(200)에 설명된 과정에 따라 한 그룹의 판독 요청을 처리할 수 있다. 단계(602)내지 단계(608)은 기입 요청 계수가 제1 임계값 개수에 도달할 때까지 반복 수행될 수 있음을 이해해야 한다. 이러한 방식에 기반하여, 스케줄링 기기(130)는 기입 요청 성능 영향을 최대한 감소시킬 수 있다.
이러한 방식에 기반하여, 본 발명의 실시예는 사용자 모드의 스케줄링 모듈에서 수신된 액세스 요청에 대한 스케줄링을 구현할 수 있고, 기설정된 개수의 판독 요청을 우선으로 분배하고 기입 요청을 부배하지 않음으로써 판독 요청에 대한 컴퓨팅 시스템의 상응한 속도를 향상시키고, 기설정된 개수의 판독 요청을 이미 분배한 후 기입 요청을 분배하기 시작함으로써, 기입 요청의 효율을 최대한 감소시키고, 읽기/기입 요청 효율의 균형을 구현한다.
도 8은 본 발명의 실시예에 따른 액세스 요청 처리 장치(800)의 예시적 블록도이다. 액세스 요청 처리 장치(800)는 도 8에의 스케줄링 기기(130)에 포함될 수 있거나 스케줄링 기기(130)로 구현될 수 있다. 도 8에 도시된 바와 같이, 액세스 요청 처리 장치(800)는, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 획득 모듈(810)을 포함하고, 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함한다. 이 밖에, 액세스 요청 처리 장치(800)는, 이미 분배된 판독 요청의 개수가 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 한 그룹의 판독 요청 중의 판독 요청을 저장 기기의 구동 기기에 분배하고 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 제1 분배 모듈(820)을 더 포함하고, 구동 기기는 저장 기기에서 분배된 요청을 실행하기 위한 것이다. 이 밖에, 액세스 요청 처리 장치(800)는, 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 구동 기기에 분배하는 제2 분배 모듈(830)을 더 포함한다.
일부 실시예에서, 여기서, 획득 모듈(810)은, 분배될 액세스 요청 대기열로부터 복수의 액세스 요청을 판독하는 판독 모듈; 및 복수의 액세스 요청을 한 그룹의 판독 요청 및 한 그룹의 기입 요청으로 패킷하는 패킷 모듈을 포함한다.
일부 실시예에서, 여기서, 구동 기기는 사용자 모드에서 구현된다.
일부 실시예에서, 액세스 요청 처리 장치(800)는, 복수의 액세스 요청 중의 각각의 액세스 요청의 초과 시간을 확정하는 초과 시간 확정 모듈 - 초과 시간은 상응한 액세스 요청이 이미 대기 중인 시간임 - ; 복수의 액세스 요청에 초과 시간이 기설정된 시간 임계값보다 큰 시간 초과 액세스 요청이 존재하는 지의 여부를 확정하는 판단 모듈; 및 시간 초과 액세스 요청을 구동 기기에 분배하는 시간 초과 액세스 요청분배 모듈을 포함한다.
일부 실시예에서, 여기서, 제1 분배 모듈(820)은, 판독 요청 계수가 제1 임계값 개수에 도달할 때까지, 한 그룹의 판독 요청 중의 하나의 판독 요청을 구동 기기에 분배하는 단계; 판독 요청 계수를 점차 증가시키는 단계 - 판독 요청 계수는 이미 분배된 판독 요청의 개수를 표시하기 위한 것임 - ; 및 한 그룹의 판독 요청에 분배되지 않은 판독 요청이 존재하지 않은 것에 응답하여, 반복 수행을 중지시키는 단계를 적어도 한 번 반복 수행하는 제1 반복 수행 모듈을 포함한다.
일부 실시예에서, 여기서, 한 그룹의 판독 요청 중의 하나의 판독 요청을 구동 기기에 분배하는 것은, 한 그룹의 판독 요청으로부터 분배되지 않은 타겟 판독 요청을 선택하는 것 - 타겟 판독 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및 선택된 판독 요청을 구동 기기에 분배하는 것을 포함한다.
일부 실시예에서, 여기서, 제2 분배 모듈(830)은, 기입 요청 계수가 제2 임계값 개수에 도달할 때까지, 한 그룹의 기입 요청 중의 하나의 기입 요청을 구동 기기에 분배하는 단계; 기입 요청 계수를 점차 증가시키는, 기입 요청 계수는 이미 분배된 기입 요청의 개수를 표시하기 위한 것임 - ; 및 한 그룹의 기입 요청에 분배되지 않은 기입 요청이 존재하지 않은 것에 응답하여, 반복 수행을 중표시키는 단계를 적어도 한 번 반복 수행하는 것을 포함한다.
일부 실시예에서, 여기서, 한 그룹의 기입 요청 중의 하나의 기입 요청을 구동 기기에 분배하는 것은, 한 그룹의 기입 요청으로부터 분배되지 않은 타겟 기입 요청을 선택하는 것 - 타겟 기입 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및 선택된 기입 요청을 구동 기기에 분배하는 것을 포함한다.
도 9는 본 발명의 실시예를 실행 가능한 예시적 기기(900)의 예시적인 블록도를 도시한다. 기기(900)는 도 1의 스케줄링 기기(130)를 구현할 수 있다. 도면에 도시된 바와 같이, 기기(900)는 판독 전용 메모리(ROM)(902)에 저장된 컴퓨터 프로그램 명령 또는 저장 유닛(908)으로부터 랜덤 액세스 메모리(RAM)(903)에 로딩된 컴퓨터 프로그램 명령에 따라, 다양한 적절한 동작 및 처리를 수행할 수 있는 중앙 처리 장치(CPU)(901)를 포함한다. RAM(903)에, 기기(900) 작동에 필요한 다양한 프로그램과 데이터가 더 저장될 수 있다. CPU(901), ROM(902) 및 RAM(903)은 버스(904)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(905)도 버스(904)에 연결된다.
예를 들어 키보드, 마우스 등을 포함하는 입력 유닛(906); 예를 들어 다양한 타입의 디스플레이, 스피커 등을 포함하는 출력 유닛(907); 예를 들어 자기 디스크, 광 디스크 등을 포함하는 저장 유닛(908); 및 예를 들어 LAN 카드, 모뎀, 무선 통신 트랜시버 등을 포함하는 통신 유닛(909)을 포함하는 기기(900) 중의 복수의 부재는 I/O 인터페이스(905)에 연결된다. 통신 유닛(909)은 기기(900)가 인터넷과 같은 컴퓨터 네트워크 및/또는 다양한 전기 통신망에 의해 다른 기기와 정보/데이터를 교환할 수 있도록 허용한다.
처리 유닛(901)은 상술한 각각의 방법, 예를 들어 방법(200) 및/또는 방법(300) 및 처리를 수행한다. 예를 들어, 일부 실시예에서, 방법(200) 및/또는 방법(300)은 저장 유닛(908)과 같은 기계 판독 가능 매체에 유형으로 포함되는 컴퓨터 소프트웨어 프로그램에 의해 구현될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(902) 및/또는 통신 유닛(909)에 의해 기기(900)에 로딩 및/또는 실장될 수 있다. 컴퓨터 프로그램이 RAM(903)에 로딩되고 CPU(901)에 의해 실행될 경우, 상술한 방법(200) 및/또는 방법(300)의 하나 또는 복수의 단계를 수행할 수 있다. 대체 가능하게, 다른 실시예에서, CPU(901)는 다른 임의의 적절한 방식(예를 들어, 펌웨어에 의해)에 의해 방법(200) 및/또는 방법(300)을 수행하도록 구성될 수 있다.
본문에서 이상 설명된 기능은 적어도 일부가 하나 또는 복수의 하드웨어 논리 부재에 의해 실행될 수 있다. 예를 들어, 비제한적으로, 사용 가능한 시범 유형의 하드웨어 논리 부재는 필드 프로그램 가능 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스템 온 칩의 시스템(SOC), 복합 프로그램 가능 논리 소자(CPLD) 등을 포함한다.
본 발명의 방법을 구현하는 프로그램 코드는 하나 또는 복수의 프로그래밍 언어의 임의의 조합으로 편집할 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 다른 프로그램 가능 데이터 처리 장치의 프로세서 또는 제어기에 제공될 수 있으며, 프로그램 코드는 프로세서 또는 제어기에 의해 실행될 경우, 흐름도 및/또는 블록도에 지정된 기능/작동이 구현되도록 할 수 있다. 프로그램 코드는 완전히 기계에서 실행되거나, 부분적으로 기계에서 실행되거나, 독립형 소프트웨어 패키지로서 기계에서 실행되며, 일부는 원격 기계에서 실행되거나 완전히 원격 기계 또는 서버에서 실행될 수 있다.
본 발명의 컨텍스트에서, 기계 판독 가능 매체는 명령 실행 시스템, 장치 또는 기기에 의해 또는 명령 실행 시스템, 장치 또는 기기와 결합하여 사용하기 위한 프로그램을 포함하거나 저장할 수있는 유형 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상기 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 한정되지 않는다. 기계 판독 가능 저장 매체의 보다 구체적인 예는 하나 또는 복수의 와이어에 기반한 전기 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, CD-ROM, 광학 저장 기기, 자기 저장 기기 또는 상술한 내용의 임의의 적절한 조합을 포함한다.
이 밖에, 특정 순서로 각 동작을 설명하였지만, 이는 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되도록 요구되거나 모든 도시된 동작들이 예기한 결과에 달성하기 위해 수행되어야 함을 이해해야 한다. 일정한 환경에서, 다수의 미션 및 합병 처리는 유리할 수 있다. 마찬가지로, 상술한 설명에서 여러 개의 구체적인 구현 세부사항이 포함되어 있지만 이것이 본 발명의 범위를 한정하는 것으로 해석되어서는 안된다. 독립적인 실시예의 컨텍스트에서 설명된 특정된 특징은 단일 구현으로 조합되어 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 설명된 다양한 특징은 또한 다수의 구현에서 독립적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다.
구조 특징 및/또는 방법 논리적 동작에 특정된 언어로 본 부제를 설명하였지만, 첨부된 청구범위에서 한정된 주제는 상술한 특정된 특징 또는 동작에 반드시 한정되는 것은 아님을 이해해야 한다. 반대로, 상술한 특정된 특징 및 동작은 단지 청구범위의 예시적 형태를 구현하기 위한 것이다.

Claims (18)

  1. 액세스 요청 처리 장치에 의해 실행되는 액세스 요청 처리 방법에 있어서,
    획득 모듈에서, 분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 단계 - 상기 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함함 - ;
    제1 분배 모듈에서, 이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 상기 한 그룹의 판독 요청 중의 판독 요청을 상기 저장 기기의 구동 기기에 분배하고, 상기 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 단계 - 상기 구동 기기는 상기 저장 기기에서 분배된 요청을 실행하기 위한 것임 - ;
    제2 분배 모듈에서, 이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달한 후, 상기 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 상기 구동 기기에 분배하는 단계;
    대기 시간 확정 모듈에서, 상기 복수의 액세스 요청 중의 각각의 액세스 요청의 대기 시간을 확정하는 단계 - 상기 대기 시간은 상응한 액세스 요청이 대기하고 있는 시간을 표시함 - ;
    판단 모듈에서, 상기 복수의 액세스 요청에 상기 대기 시간이 기설정된 시간 임계값보다 큰 시간 초과 액세스 요청이 존재하는 지의 여부를 확정하는 단계; 및
    시간 초과 액세스 요청분배 모듈에서, 상기 시간 초과 액세스 요청을 상기 구동 기기에 우선으로 분배하고, 상기 시간 초과 액세스 요청이 존재하지 않을 경우, 다시 상기 판독 요청 및 상기 기입 요청을 분배하는 단계를 포함하는 액세스 요청 처리 방법.
  2. 제1항에 있어서,
    상기 복수의 액세스 요청을 획득하는 단계는,
    분배될 액세스 요청 대기열로부터 상기 복수의 액세스 요청을 판독하는 단계; 및
    상기 복수의 액세스 요청을 상기 한 그룹의 판독 요청 및 상기 한 그룹의 기입 요청으로 패킷하는 단계를 포함하는 액세스 요청 처리 방법.
  3. 제1항에 있어서,
    상기 구동 기기는 사용자 모드에서 구현되는 액세스 요청 처리 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 한 그룹의 판독 요청 중의 판독 요청을 상기 구동 기기에 분배하는 단계는,
    판독 요청 계수(count)가 상기 제1 임계값 개수에 도달할 때까지, 하기 단계를 적어도 한 번 반복 수행하는 단계를 포함하고, 상기 하기 단계는,
    상기 한 그룹의 판독 요청 중의 하나의 판독 요청을 상기 구동 기기에 분배하는 단계;
    상기 판독 요청 계수를 점차 증가시키는 단계 - 상기 판독 요청 계수는 이미 분배된 판독 요청의 개수를 표시하기 위한 것임 - ; 및
    상기 한 그룹의 판독 요청에 분배되지 않은 판독 요청이 존재하지 않은 것에 응답하여, 상기 반복 수행을 중지시키는 단계를 포함하는 액세스 요청 처리 방법.
  6. 제5항에 있어서,
    상기 한 그룹의 판독 요청 중의 하나의 판독 요청을 상기 구동 기기에 분배하는 단계는,
    상기 한 그룹의 판독 요청으로부터 분배되지 않은 타겟 판독 요청을 선택하는 단계 - 상기 타겟 판독 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및
    선택된 상기 판독 요청을 상기 구동 기기에 분배하는 단계를 포함하는 액세스 요청 처리 방법.
  7. 제1항에 있어서,
    상기 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 상기 구동 기기에 분배하는 단계는,
    기입 요청 계수가 제2 임계값 개수에 도달할 때까지, 하기 단계를 적어도 한 번 반복 수행하는 단계를 포함하고, 상기 하기 단계는,
    상기 한 그룹의 기입 요청 중의 하나의 기입 요청을 상기 구동 기기에 분배하는 단계;
    상기 기입 요청 계수를 점차 증가시키는 단계 - 상기 기입 요청 계수는 이미 분배된 기입 요청의 개수를 표시하기 위한 것임 - ; 및
    상기 한 그룹의 기입 요청에 분배되지 않은 기입 요청이 존재하지 않은 것에 응답하여, 상기 반복 수행을 중지시키는 단계를 포함하는 액세스 요청 처리 방법.
  8. 제7항에 있어서,
    상기 한 그룹의 기입 요청 중의 하나의 기입 요청을 상기 구동 기기에 분배하는 단계는,
    상기 한 그룹의 기입 요청으로부터 분배되지 않은 타겟 기입 요청을 선택하는 단계 - 상기 타겟 기입 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및
    선택된 상기 기입 요청을 상기 구동 기기에 분배하는 단계를 포함하는 액세스 요청 처리 방법.
  9. 액세스 요청 처리 장치에 있어서,
    분배될, 저장 기기에 대한 복수의 액세스 요청을 획득하는 획득 모듈 - 상기 액세스 요청은 한 그룹의 판독 요청 및 한 그룹의 기입 요청을 적어도 포함함 - ;
    이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달할 때까지, 상기 한 그룹의 판독 요청 중의 판독 요청을 상기 저장 기기의 구동 기기에 분배하고, 상기 한 그룹의 기입 요청 중의 기입 요청을 분배하지 않는 제1 분배 모듈 - 상기 구동 기기는 상기 저장 기기에서 분배된 요청을 실행하기 위한 것임 - ;
    이미 분배된 판독 요청의 개수가 상기 한 그룹의 판독 요청의 전체 개수 또는 제1 임계값 개수에 도달한 후, 상기 한 그룹의 기입 요청 중의 적어도 하나의 기입 요청을 상기 구동 기기에 분배하는 제2 분배 모듈;
    상기 복수의 액세스 요청 중의 각각의 액세스 요청의 대기 시간을 확정하는 대기 시간 확정 모듈 - 상기 대기 시간은 상응한 액세스 요청이 대기하고 있는 시간을 표시함 - ;
    상기 복수의 액세스 요청에 상기 대기 시간이 기설정된 시간 임계값보다 큰 시간 초과 액세스 요청이 존재하는 지의 여부를 확정하는 판단 모듈; 및
    상기 시간 초과 액세스 요청을 상기 구동 기기에 우선으로 분배하고, 상기 시간 초과 액세스 요청이 존재하지 않을 경우, 다시 상기 판독 요청 및 상기 기입 요청을 분배하는 시간 초과 액세스 요청분배 모듈을 포함하는 액세스 요청 처리 장치.
  10. 제9항에 있어서,
    상기 획득 모듈은,
    분배될 액세스 요청 대기열로부터 상기 복수의 액세스 요청을 판독하는 판독 모듈; 및
    상기 복수의 액세스 요청을 상기 한 그룹의 판독 요청 및 상기 한 그룹의 기입 요청으로 패킷하는 패킷 모듈을 포함하는 액세스 요청 처리 장치.
  11. 제9항에 있어서,
    상기 구동 기기는 사용자 모드에서 구현되는 액세스 요청 처리 장치.
  12. 삭제
  13. 제9항에 있어서,
    상기 제1 분배 모듈은,
    판독 요청 계수가 상기 제1 임계값 개수에 도달할 때까지 하기 단계를 적어도 한 번 반복 수행하는 제1 반복 수행 모듈을 포함하고, 상기 하기 단계는,
    상기 한 그룹의 판독 요청 중의 하나의 판독 요청을 상기 구동 기기에 분배하는 단계;
    상기 판독 요청 계수를 점차 증가시키는 단계 - 상기 판독 요청 계수는 이미 분배된 판독 요청의 개수를 표시하기 위한 것임 - ; 및
    상기 한 그룹의 판독 요청에 분배되지 않은 판독 요청이 존재하지 않은 것에 응답하여, 상기 반복 수행을 중지시키는 단계를 포함하는 액세스 요청 처리 장치.
  14. 제13항에 있어서,
    상기 제1 분배 모듈은 또한,
    상기 한 그룹의 판독 요청으로부터 분배되지 않은 타겟 판독 요청을 선택하고 - 상기 타겟 판독 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및
    선택된 상기 판독 요청을 상기 구동 기기에 분배하도록 구성되는 액세스 요청 처리 장치.
  15. 제9항에 있어서,
    상기 제2 분배 모듈은,
    기입 요청 계수가 제2 임계값 개수에 도달할 때까지, 하기 단계를 적어도 한 번 반복 수행하도록 구성되고, 상기 하기 단계는,
    상기 한 그룹의 기입 요청 중의 하나의 기입 요청을 상기 구동 기기에 분배하는 단계;
    상기 기입 요청 계수를 점차 증가시키는 단계 - 상기 기입 요청 계수는 이미 분배된 기입 요청의 개수를 표시하기 위한 것임 - ; 및
    상기 한 그룹의 기입 요청에 분배되지 않은 기입 요청이 존재하지 않은 것에 응답하여, 상기 반복 수행을 중지시키는 단계를 포함하는 액세스 요청 처리 장치.
  16. 제15항에 있어서,
    상기 제2 분배 모듈은 또한,
    상기 한 그룹의 기입 요청으로부터 분배되지 않은 타겟 기입 요청을 선택하고 - 상기 타겟 기입 요청은 물리적 주소에 대한 최소 오프셋을 구비함 - ; 및
    선택된 상기 기입 요청을 상기 구동 기기에 분배하도록 구성되는 액세스 요청 처리 장치.
  17. 하나 또는 복수의 프로세서; 및
    하나 또는 복수의 프로그램이 저장된 메모리를 포함하는 전자 기기에 있어서,
    상기 하나 또는 복수의 프로그램이 상기 하나 또는 복수의 프로세서에 의해 실행될 경우, 상기 전자 기기가 제1항 내지 제3항, 제5항 내지 제8항 중 어느 한 항에 따른 액세스 요청 처리 방법을 구현하도록 하는 전자 기기.
  18. 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행될 경우 제1항 내지 제3항, 제5항 내지 제8항 중 어느 한 항에 따른 액세스 요청 처리 방법을 구현하는 컴퓨터 판독 가능 저장 매체.
KR1020200003587A 2019-05-24 2020-01-10 액세스 요청 처리 방법, 장치, 기기 및 저장 매체 KR102292527B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910438452.0A CN110209597B (zh) 2019-05-24 2019-05-24 处理访问请求的方法、装置、设备和存储介质
CN201910438452.0 2019-05-24

Publications (2)

Publication Number Publication Date
KR20200135717A KR20200135717A (ko) 2020-12-03
KR102292527B1 true KR102292527B1 (ko) 2021-08-25

Family

ID=67788550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003587A KR102292527B1 (ko) 2019-05-24 2020-01-10 액세스 요청 처리 방법, 장치, 기기 및 저장 매체

Country Status (4)

Country Link
US (1) US11307801B2 (ko)
JP (1) JP2020194523A (ko)
KR (1) KR102292527B1 (ko)
CN (1) CN110209597B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795367B (zh) * 2019-10-23 2021-10-29 北京达佳互联信息技术有限公司 一种存储访问控制方法和装置
CN112306413B (zh) * 2020-10-30 2024-05-07 北京百度网讯科技有限公司 用于访问内存的方法、装置、设备以及存储介质
CN113535083A (zh) * 2021-06-08 2021-10-22 平头哥(上海)半导体技术有限公司 用于打包存储访问请求的计算机系统和由计算机实现的方法
CN114968858B (zh) * 2022-07-18 2022-11-25 珠海妙存科技有限公司 一种命令队列管理方法、系统、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004527054A (ja) 2001-05-11 2004-09-02 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムにおいて命令を処理する方法および装置
CN103631624A (zh) 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
JP2014137841A (ja) 2013-01-18 2014-07-28 Samsung Electronics Co Ltd 不揮発性メモリ装置、不揮発性メモリ装置を含むメモリシステム及びそれらの制御方法
US20160246717A1 (en) * 2015-02-20 2016-08-25 PernixData, Inc. Cache Resource Manager

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7038988B2 (en) * 2001-01-25 2006-05-02 Dphi Acquisitions, Inc. System and method for controlling time critical operations in a control system for an optical disc drive
US6668313B2 (en) * 2001-12-21 2003-12-23 Agere Systems, Inc. Memory system for increased bandwidth
US6667926B1 (en) * 2002-09-09 2003-12-23 Silicon Integrated Systems Corporation Memory read/write arbitration method
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
TWI266988B (en) 2005-03-01 2006-11-21 Sunplus Technology Co Ltd Method and system for accessing A/V data in computer apparatus
US20090019238A1 (en) * 2007-07-10 2009-01-15 Brian David Allison Memory Controller Read Queue Dynamic Optimization of Command Selection
US8004884B2 (en) * 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems
US9552297B2 (en) * 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US9465555B2 (en) * 2013-08-12 2016-10-11 Seagate Technology Llc Method and apparatus for efficient processing of disparate data storage commands
KR102034626B1 (ko) * 2013-06-26 2019-10-21 삼성전자 주식회사 메모리 동작을 제어하는 방법 및 장치
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR102291803B1 (ko) * 2015-04-07 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법, 및 그것을 포함하는 사용자 시스템의 동작 방법
JP2016218721A (ja) * 2015-05-20 2016-12-22 ソニー株式会社 メモリ制御回路およびメモリ制御方法
JP6950149B2 (ja) 2015-09-08 2021-10-13 ソニーグループ株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
CN105933325B (zh) * 2016-06-07 2019-04-12 华中科技大学 一种基于NFSoRDMA的内核态RPC通信加速方法
KR20170141298A (ko) 2016-06-14 2017-12-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2018160056A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリコントローラ、メモリシステムおよび制御方法
KR20190019712A (ko) 2017-08-18 2019-02-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102293069B1 (ko) * 2017-09-08 2021-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치, 제어기, 그리고 스토리지 장치의 동작 방법
CN108062253A (zh) * 2017-12-11 2018-05-22 北京奇虎科技有限公司 一种内核态与用户态的通信方法、装置及终端
KR20200018156A (ko) * 2018-08-10 2020-02-19 에스케이하이닉스 주식회사 메모리장치에 대한 에러정정코드 기능을 갖는 메모리 시스템 및 그 운영방법
CN109522194B (zh) * 2018-11-14 2022-02-25 北京遥感设备研究所 针对axi协议从设备接口的自动化压力测试系统及方法
CN109766056A (zh) * 2018-11-28 2019-05-17 上海威固信息技术股份有限公司 一种存储阵列控制器io队列调度方法与装置
KR20210017264A (ko) * 2019-08-07 2021-02-17 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004527054A (ja) 2001-05-11 2004-09-02 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムにおいて命令を処理する方法および装置
JP2014137841A (ja) 2013-01-18 2014-07-28 Samsung Electronics Co Ltd 不揮発性メモリ装置、不揮発性メモリ装置を含むメモリシステム及びそれらの制御方法
CN103631624A (zh) 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
US20160246717A1 (en) * 2015-02-20 2016-08-25 PernixData, Inc. Cache Resource Manager

Also Published As

Publication number Publication date
JP2020194523A (ja) 2020-12-03
US11307801B2 (en) 2022-04-19
US20200371714A1 (en) 2020-11-26
KR20200135717A (ko) 2020-12-03
CN110209597B (zh) 2021-10-15
CN110209597A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
KR102292527B1 (ko) 액세스 요청 처리 방법, 장치, 기기 및 저장 매체
US9842136B2 (en) Database management system, computer, and database management method
US11474712B2 (en) Method, apparatus, device and storage medium for managing access request
KR20080024156A (ko) 검색을 위한 백-오프 메커니즘
US10452655B2 (en) In-memory cursor duration temp tables
US10515078B2 (en) Database management apparatus, database management method, and storage medium
US20110231843A1 (en) Management apparatus, method, and privileged and confidential medium storing program
CN106599091B (zh) 基于键值存储的rdf图结构存储和索引方法
US11586388B2 (en) Method, device, and computer program product for managing storage system
US20180285421A1 (en) Database management system and database management method
US9740618B2 (en) Memory nest efficiency with cache demand generation
US10747773B2 (en) Database management system, computer, and database management method
WO2018118302A1 (en) Methods and apparatus to identify a count of n-grams appearing in a corpus
US20130080463A1 (en) Searching apparatus, searching method, and recording medium storing searching program
JP6823626B2 (ja) データベース管理システム及び方法
US9652155B2 (en) Computer system, cash data management method, and computer
US10871945B2 (en) Resumable merge sort
CN115617859A (zh) 基于知识图谱集群的数据查询方法和装置
US20210097049A1 (en) Method, device and computer program product for managing index tables
US20160105509A1 (en) Method, device, and medium
US20160335321A1 (en) Database management system, computer, and database management method
Lv et al. High Throughput and Low Latency Multi-Version Management Key-Value Storage Accelerator
CN114398329A (zh) 一种基于文件缓存的调度方法、装置与计算设备
CN117055820A (zh) 一种固态硬盘的命令处理方法、固态硬盘和存储介质
CN112559574A (zh) 数据处理方法、装置、电子设备及可读存储介质

Legal Events

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