KR20170007095A - 컴퓨팅 시스템 및 그것의 리소스 관리 방법 - Google Patents

컴퓨팅 시스템 및 그것의 리소스 관리 방법 Download PDF

Info

Publication number
KR20170007095A
KR20170007095A KR1020160047061A KR20160047061A KR20170007095A KR 20170007095 A KR20170007095 A KR 20170007095A KR 1020160047061 A KR1020160047061 A KR 1020160047061A KR 20160047061 A KR20160047061 A KR 20160047061A KR 20170007095 A KR20170007095 A KR 20170007095A
Authority
KR
South Korea
Prior art keywords
processing
instance
block
budget
host
Prior art date
Application number
KR1020160047061A
Other languages
English (en)
Other versions
KR102362687B1 (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 KR20170007095A publication Critical patent/KR20170007095A/ko
Application granted granted Critical
Publication of KR102362687B1 publication Critical patent/KR102362687B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • 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
    • 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/5061Partitioning or combining of resources
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명에 따른 컴퓨팅 시스템은, 프로세싱 요청에 대응하는 요청 호스트를 지시하기 위하여 호스트 프로파일을 판별하는 커맨드 페치 블록(command fetch block), 및 상기 커맨드 페치 블록에 연결되고, 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓(instance budget)을 계산하는 크레딧 체커 블록(credit checker block)을 포함할 수 있다.

Description

컴퓨팅 시스템 및 그것의 리소스 관리 방법{COMPUTING SYSTEM AND METHOD FOR MANAGING RESOURCE THEREOF}
본 발명은 컴퓨팅 시스템 및 그것의 리소스 관리 방법에 관한 것이다.
컴퓨팅 시스템, 서버, 가전 제품, 텔레비전, 휴대 전화, 자동차, 위성, 및 결합 장치들과 같은 소비자 전자 산업은, 현대 생활을 지원하는데 수준을 높이고 있다. 성능 요구들은 소비자 제품들, 기업 혹은 상업 제품들 사이에 서로 다를 수 있지만, 전력소비를 줄이면서 더 높은 성능을 요구하는 점에 있어서는 일반적이다. 현존하는 기술의 연구 개발은 수많은 방향들을 취할 수 있다.
이러한 방향은 가용 가능한 리소스들을 관리의 개선들을 포함한다. 전자 장치들의 개수 및 각 장치의 전력을 처리하는 개수가 증가함에 따라, 컴퓨팅 리소스들에 대한 요구가 기하급수적으로 증가된다. 효율적 혹은 효과적으로 가용 가능한 리소스들을 관리하는 것은 복수의 장치들에서 기능 및 성능의 수준을 증가시킬 수 있다.
따라서, 전력을 줄이면서 처리 성능을 향상시키기 위한 리소스 관리 메커니즘을 갖는 컴퓨팅 시스템에 대한 요구가 여전하다. 계속 증가하는 상업적인 경쟁 압박 관점에서, 소비자의 기대들이 증가하고 시장에서 의미있는 제품 차별화가 감소하는 상황에서, 이러한 문제점 해결책을 발견하는 것이 점점 더 중요하게 되었다. 추가로, 비용을 줄이고, 효율과 성능을 개선하고, 경쟁 압력에 대한 요구는 이러한 문제점 해결책에 대하여 더욱 긴급하고 있다.
이러한 문제점들에 대한 해결책은 오랫동안 모색되어 왔지만, 종래 기술에서는 어떠한 해결책을 교시하거나 제안하지 못하고 있다.
본 발명의 목적은 전력을 줄이면서 처리 성능을 향상시키는 컴퓨팅 시스템 및 그것의 리소스 관리 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 프로세싱 요청에 대응하는 요청 호스트를 지시하기 위하여 호스트 프로파일을 판별하는 커맨드 페치 블록(command fetch block), 및 상기 커맨드 페치 블록에 연결되고, 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓(instance budget)을 계산하는 크레딧 체커 블록(credit checker block)을 포함할 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템의 동작 방법은, 프로세싱 요청에 대응하는 요청 호스트의 지시하기 위한 호스트 프로파일을 판별하는 단계, 및 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓을 계산하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 비일시적 컴퓨터 읽기가능 매체는, 프로세싱 요청에 대응하는 요청 호스트의 지시하기 위한 호스트 프로파일을 판별하는 단계, 및 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓을 계산하는 단계를 수행하는 컴퓨팅 시스템을 위한 인스트럭션들을 가질 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템 및 그것의 리소스 관리 방법은, 데이터 제공자가 처리 결과를 발생하는 프로세싱 요청을 소비하면서, 데이터 제공자의 인스턴스 버짓을 이용하여 리소스 소비를 제어함으로써, 소비 전력을 줄이면서 성능을 개선을 꾀할 수 있다.
도 1은 본 발명의 실시 예에 따른 리소스 관리 메커니즘을 갖는 컴퓨팅 시스템을 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 블록 다이어그램이다.
도 3은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 추가적인 블록 다이어그램이다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 제어 흐름도를 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 컴퓨팅 시스템의 동작 방법을 예시적으로 보여주는 흐름도이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
아래에 개시된 본 발명의 실시 예들은 인스턴스 버짓을 계산하는 크레딧 관리 메커니즘을 구현하는 데이터 제공자를 포함할 수 있다. 데이터 제공자는 요청 호스트(requesting host)로부터의 프로세싱 요청을 처리할 인스턴스 버짓을 사용할 수 있다. 인스턴스 버짓이 지정한 데이터 제공자는 전체 리소스의 일부를 사용할 수 있다. 스마트 저장 장치 혹은 IoT(internet of things) 장치를 갖는 데이터 제공자는 처리 결과를 발생하는 프로세싱 요청을 소비하면서, 데이터 제공자의 인스턴스 버짓을 이용하여 리소스 소비를 제어 할 수 있다.
타겟 리소스는 타겟 업무를 수행하거나 구현하기 위한 노드 열용량을 포함할 수 있다. 여기서 타겟 노드는 전력 소비 및 성능의 균형을 위한 최적의 노드 혹은 가장 열적으로 여유가 있는 노드일 수 있다. 열 후보 세트는, 노드들 사이의 열 용량, 현재 전력, 현재 열적 부하, 열적 모델 혹은 그것들의 조합에 근거로 하여 동적으로 계산될 수 있다
다음에 개시된 실시 예들은 본 발명을 구성하고 사용할 당업자가 구현하기에 충분히 상세하게 설명될 것이다. 본 발명을 근거로 한 다른 실시 예들도, 시스템, 공정, 아키텍처, 혹은 기계적 변경이 본 발명의 범위를 벗어나지 않고 이루어 질 수 있다고 이해되어야 할 것이다.
아래의 설명에서는, 다수의 특정 세부 사항은 본 발명의 완전한 이해를 제공하기 위해 주어진다. 하지만, 본 발명 및 다양한 실시 예들이 이러한 특정 세부 사항 없이도 실시 될 수 있다는 것을 알 수 있을 것이다. 본 발명에 따르면, 몇몇 잘 알려진 회로, 시스템 구성 및 공정 단계의 실시 예를 모호하게 하는 것을 피하기 위해 상세하게 기재되지 않는다.
시스템의 실시 예들을 나타낸 도면들은 반 개략적이다. 특히 치수들의 일부는 명확한 표현을 위해 존재하며, 도면에서 과장되어 나타나기도 한다. 설명의 편의를 위해 도면에서 일반적으로 유사한 방향을 표시하더라도, 도면에서의 설명은 대부분의 경우 임의적이다. 일반적으로, 실시 예는 임의의 방향으로 동작될 수 있다.
본 발명에서 언급될 “블록”(block)이라는 용어는, 사용되는 문맥에 따라 본 발명의 실시 예에 따른 소프트웨어, 하드웨어, 혹은 그것의 조합을 포함할 수 있다. 예를 들어, 소프트웨어는 머신 코드, 펌웨어, 임베디드 코드 및 애플리케이션 소프트웨어 일 수 있다. 또한, 예를 들어, 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어, 압력 센서, 관성 센서, 마이크로 전자 기계 시스템 (MEMS), 수동 소자, 혹은 이들의 조합 일 수 있다. 추가로, 블록이 장치 청구항들로 기입된다면, 블록들은 목적 달성을 위한 하드웨어 회로 장치 및 장치 청구의 범위를 포함하는 것으로 간주된다.
실시 예들의 설명에서 블록들은 설명되거나 도시된 다른 장치에 연결될 수 있다. 여기서 연결은 직접 혹은 간접, 결합된 항목들 사이의 개입이 있거나 없을 수도 있다. 또한 연결은 물리적 접촉 혹은 항목들 사이의 통신에 의해 할 수 있다.
도 1은 본 발명의 실시 예에서 리소스 관리 메커니즘을 갖는 컴퓨팅 시스템 (100)의 예시적인 블록도를 보여준다. 도 1을 참조하면, 컴퓨팅 시스템 (100)은, 클라이언트와 같은 장치로 제 1 장치 (102) 및 클라이언트 장치 혹은 서버와 같은 제 2 장치 (106)를 포함할 수 있다. 제 1 장치 (102)는 무선 혹은 유선 네트워크와 같은 네트워크 (104)을 통해 제 2 장치 (106)과 통신할 수 있다.
예를 들면, 제 1 장치 (102)는 스마트 폰, 웨어러블 장치 혹은 건강 모니터, 센서 혹은 IoT를 위한 처리 장치 혹은 그것들의 조합을 포함 할 수 있다. 또한, 예를 들어, 제 1 장치 (102)는 컴퓨터, 그리드 컴퓨팅 리소스들, 가상화 컴퓨터 리소스, 클라우드 컴퓨팅 리소스, 라우터들, 스위치들, 피어 투 피어 분산 컴퓨팅 장치들, 혹은 그것들의 조합을 포함 할 수 있다. 또한, 예를 들어, 제 2 장치 (102)는 서비스 제공자에 의해 이용되는 서버를 포함 할 수 있다. 또한 예를 들어, 제 2 장치 (102)는 스마트 저장 장치, 분산 컴퓨팅 리소스 혹은 분산 저장 시스템, 데이터 센터, 디스크 드라이브, 어레이, 혹은 그것들의 조합과 같은 저장 장치를 포함 할 수 있다.
제 1 장치 (102)는 독립형 장치 일수도 있고, 혹은 모바일 장치, 엔터테인먼트 장치, 의류 물품, 액세서리, 접착 혹은 고정기구, 다기능 장치, 서버 혹은 데이터 센터, 혹은 그것들의 조합과 통합될 수 있다. 제 1 장치 (102)는 제 2 장치 (106)과 통신하기 위하여 네트워크 (104)에 연결될 수 있다.
제 2 장치 (106)는 모바일 장치 혹은 비 모바일 장치 일 수 있다. 예를 들어, 제 2 장치 (106)는 스마트폰, 태블릿 장치, 셀룰러 전화, 개인 휴대 정보 단말기, 노트북 컴퓨터, 넷북 컴퓨터, 씬 클라이언트 장치, 다중 기능 모바일 장치, 혹은 엔터테이먼트 장치, IoT 장치, 혹은 그것들의 조합과 같은 다양한 모바일 장치들 중 어느 하나일 수 있다.
또한, 제 2 장치 (106)는 컴퓨팅 장치, 기기, 혹은 그것들의 조합과 같은 비 모바일 장치 일 수 있다. 제 2 장치 (106)는 중앙 집중 형 혹은 분산 컴퓨팅 다양한 장치들 중 임의의 것일 수 있다. 예를 들어, 제 2 장치 (106)는 데스크탑 컴퓨터, 그리드 컴퓨팅 리소스, 서버, 서버 팜, 가상 컴퓨팅 리소스, 클라우드 컴퓨팅 리소스, 라우터, 스위치, 피어 투 피어 분산 컴퓨팅 리소스, 혹은 그것들의 조합을 포함할 수 있다.
제 2 장치 (106)는 싱글 컴퓨터 룸에 집중될 수 있거나, 서로 다른 룸들에 분산될 수 있거나, 서로 다른 지리적 위치들에 분산될 수 있거나 혹은 통신 네트워크에 내장될 수 있다. 예를 들어, 제 2 장치 (106)는 메인프레임, 서버, 클러스터 서버, 랙 마운티드 서버, 혹은 블레이드 서버 등과 같은 특수화 머신일 수 있다. 좀 더 자세하게는 제 2 장치 (106)는 IBM 시스템 z10 ™ 비즈니스 클래스 메인프레임 혹은 HP ProLiant ML ™ 서버일 수 있다.
또한, 제 2 장치 (106)는, 거실 기기, 주방 기기, 욕실 기기, 침실 기기, 혹은 그것들의 조합을 포함하는 기기 일 수 있다. 예를 들어, 제 2 장치 (106)는, 텔레비전, 비디오 장치, 오디오 장치, 시계, 조명 장치, 홈 엔터테인먼트 시스템, 세탁기, 냉장고, 오븐, 전자 레인지, 게임 콘솔, 혹은 그것들의 조합을 포함할 수 있다. 또한, 제 2 장치 (106)는 자동 온도 조절 장치, 경보 장치, 가열 장치, 냉각 장치, 전자 문 잠금, 차고 도어 오프너, 발전 시스템, 혹은 그것들의 조합을 포함 할 수 있다.
네트워크 (104)는 다양한 네트워크 혹은 통신 매체일 수 있다. 예를 들어, 네트워크 (104)는 무선 통신, 유선 통신, 광통신, 초음파 통신, 혹은 그것들의 조합을 포함 할 수 있다. 위성 통신, 셀룰러 통신, 블루투스 ™, 낮은 에너지 (Low Energy, BLE), 무선 고화질 멀티미디어 인터페이스 (wireless High-Definition Multimedia Interface, HDMI), 지그비 (ZigBee) ™, 근거리 무선 통신 (Near Field Communication, NFC), 적외선 데이터 협회 (Infrared Data Association) 표준 (IrDA), 무선 충실도(wireless fidelity, WiFi), 마이크로 웨이브 액세스를 위한 세계적인 상호 운용 (worldwide interoperability for microwave access, WiMAX)는 무선의 네트워크 (104)에 포함될 수 있다. 이더넷(ethernet), HDMI, 디지털 가입자 회선 (DSL), FTTH(fiber to the home), POTS(plain old telephone service)는 유선의 네트워크 (104)에 포함될 수 있다.
또한, 네트워크 (104)는 네트워크 토폴로지 및 거리의 수를 이송 할 수 있다. 예를 들어, 네트워크 (104)는 직접 접속, 개인 영역 네트워크 (PAN), 근거리 통신망 (LAN), 도시권 통신망 (MAN), 광역 통신망 (WAN) 혹은 이들의 조합을 포함 할 수 있다.
네트워크 (104)는 하나 이상의 중간 네트워크 컴포넌트 (108)를 포함 할 수 있다. 중간 네트워크 컴포넌트 (108)는 프로세싱 요청 (112)을 발생 및 소비하는 통신 엔드포인트 (110)를 포함할 수 있다. 중간 네트워크 컴포넌트 (108)는 통신 엔드포인트들 (110) 사이에서 정보를 중개하도록 구현되는 장치 혹은 일부를 포함할 수 있다. 예를 들어, 중간 네트워크 컴포넌트 (108)는 라우터, 리피터, 기지국 증폭기, 장치 내 인터페이스, 혹은 그것들의 조합을 포함 할 수 있다.
통신 엔드포인트들 (110)은 정보를 발생하는 장치 및 일부를 포함 할 수 있다. 통신 엔드포인트들 (110)는 요청을 발생하거나, 프로세싱 출력을 발생하거나, 거기에 저장된 정보를 접근하는 장치 혹은 일부를 포함할 수 있다.
예를 들어, 통신 엔드포인트들 중 하나 (110)는 정보에 액세스하기 위한 프로세싱 요청 (112)를 발생할 수 있다. 프로세싱 요청 (112)은 통신 엔드포인트들 (110)의 다른 인스턴스에 전달 될 수 있다. 나머지 인스턴스는, 프로세싱 요청 (112)에 대응하는 정보 혹은 출력 값으로써 프로세싱 결과 (114)을 발생 할 수 있다.
또한, 예를 들어, 통신 엔드포인트들 (110)는 프로세싱 결과 (114)을 발생하는 데이터 제공자 (116)을 포함할 수 있다. 데이터 제공자 (116)는 프로세싱 요청 (112)을 처리하도록 구현되거나 요청된 정보를 이용하도록 구현될 수 있다. 데이터 제공자 (116)는 프로세싱 결과 (114)을 계산하거나 발생할 수 있고, 데이터 제공자 (116)에 저장된 정보를 접근할 수 있고, 혹은 그것들의 조합들을 할 수 있다. 데이터 제공자 (116)는 프로세싱 요청 (112)을 통신하는 통신 엔드포인트들 (110)의 인스턴스에 되돌아가는 프로세싱 결과 (114)를 통신할 수 있다.
데이터 제공자 (116)는 프로세싱 요청 (112)을 위한 소비자일 수 있다. 데이터 제공자 (116)는 데이터 제공자 (116)의 외부에 분리된 장치 혹은 분리된 부분을 이용하지 않고 프로세싱 요청 (112)을 처리하거나 응답할 수 있다. 예를 들어, 데이터 제공자 (116)는 프로세싱 요청 (112)에 의해 요청된 정보를 갖는 장치 내의 저장 장치 혹은 저장 부분일 수 있다. 또한, 예를 들어, 데이터 제공자 (116)는 프로세싱 결과 (114)에 의해 요청된 정보를 발생 및 제공하는 컴퓨팅 장치 혹은 계산 유닛일 수 있다.
중간 네트워크 컴포넌트 (108)는 통신 엔드포인트들 사이에 존재할 수 있다. 중간 네트워크 컴포넌트 (108)는 프로세싱 요청 (112), 프로세싱 결과 (114), 혹은 통신 엔드포인트들 사이의 그것들의 조합을 중개할 수 있다.
컴퓨팅 시스템 (100)은 크레딧 관리 메커니즘 (118)을 구현하기 위하여 데이터 제공자 (116)를 사용할 수 있다. 크레딧 관리 메커니즘 (118)은 프로세싱 요청 (112)을 처리에서 데이터 제공자 (116)을 위한 전제 리소스들 (120)의 관리하고 소비 균형을 맞추도록 구현된 방법, 공정, 회로, 혹은 그것들의 조합일 수 있다. 크레딧 관리 메커니즘 (118)은, 추가로 기능, 회로, 단계 혹은 명령, 방정식 혹은 그것들의 조합의 적응 혹은 자체 학습 인스턴스들과 같은 자체적으로 재구성될 수 있다. 크레디트 관리 메커니즘 (118)는 프로세싱 요청 (112)의 하나 이상의 인스턴스들을 처리하기 위하여 크레딧들 혹은 버짓들을 할당하는 것에 근거로 하여 전체 리소스들 (120)의 소비를 관리 및 균형을 맞출 수 있다.
전체 리소스들 (120)은, 데이터 제공자 (116)의 총 처리 능력을 나타낼 수 있다. 예를 들어, 전체 리소스들 (120)은 데이터의 양, 처리 속도, 혹은 그것들의 조합을 나타낼 수 있다. 보다 구체적인 예로서, 전체 리소스는 (120)은 데이터 리소스 (122), 프로세싱 리소스 (124), 혹은 그것들의 조합을 포함 할 수 있다.
데이터 리소스 (122)는 저장 용량이 될 수 있다. 데이터 리소스 (122)는 휘발성 혹은 비 휘발성 저장 장치를 포함 할 수 있다. 데이터 리소스 (122)는 후자의 접근을 위한 저장, 주어진 시간 혹은 기간에 동시에 접근 할 수 있는 데이터의 양, 혹은 그것들의 조합을 포함 할 수 있다.
프로세싱 리소스 (124)는 데이터를 조작과 연관된 용량 일 수 있다. 프로세싱 리소스 (124)는 속도나 처리 속도를 포함 할 수 있다. 프로세싱 리소스 (124)는 명령어들의 개수나 동시에 소정의 기간 동안 처리 될 수 있는 데이터의 양을 나타낼 수 있다.
컴퓨팅 시스템 (100)은 프로세싱 요청 (112)의 하나 이상의 인스턴스들을 처리하기 위하여 전체 리소스들 (120)을 위한 제어하도록, 관리하도록, 분할하도록, 전용하도록, 확장하도록, 혹은 그것들의 조합을 수행하도록 크레딧 관리 메커니즘 (118)을 이용할 수 있다. 예를 들어, 컴퓨팅 시스템 (100)은 크레딧 관리 메커니즘 (118)을 이용하여 입출력 (IO) 읽기/쓰기 요청을 갖는 프로세싱 요청 (112)의 진행중인 인스턴스들을 우선할 수 있다.
예를 계속하여, 컴퓨팅 시스템 (100)은, 포트, 신체 기능, 가상 함수, 혹은 그것들의 조합에 기초하여 처리를 우선 할 수 있다. 컴퓨팅 시스템 (100)은 서비스 레벨 협정 (SLA)의 응답 시간 약속을 관찰하면서 다수의 컴퓨팅 호스트가 데이터 제공자 (116)를 공유하는 공통 데이터 센터 환경 크레디트 관리 메커니즘 (118)을 사용할 수 있다. 크레딧 관리 메커니즘 (118)에 관한 자세한 사항은 아래에 설명되어 있다.
도시된 목적을 위하여 컴퓨팅 시스템 (100)은 통신 엔드포인트들 (110)으로서 제 1 장치 (102)와 제 2 장치(106)을 도시하고 있다. 하지만 컴퓨팅 시스템 (100)은, 제 1 장치 (102), 제 2 장치 (106) 및 네트워크 (104) 사이에 서로 다른 파티션을 가질 수 있다고 이해되어야 할 것이다.
예를 들어, 제 1 장치 (102), 제 2 장치 (106), 혹은 그것들의 조합도 또한 예를 들어, 제 2 장치 (106)는 네트워크 (104)의 일부로서 기능 할 수 있다. 또한 예를 들어, 제 2 장치 (106)은 데이터 제공자 (106)로 도시되지만, 제 1 장치 (102)는 데이터 제공자 (116)일 수 있다.
좀 더 자세한 실시 예에 있어서, 컴퓨팅 시스템 (100)은 제 1 장치 (102), 제 2 장치 (106) 혹은 관리 및 저장 시스템, 통신 시스템 등의 컴퓨팅 리소스를 제공하기 위한 그것들의 조합을 포함 할 수 있다. 컴퓨팅 시스템 (100)은 제 1 장치 (102), 제 2 장치 (106) 혹은 관리하는 메모리 액세스 처리 사이클 혹은 시간 열 용량, 대역폭, 혹은 그것들의 조합을 포함하는 컴퓨팅 리소스를 제공하기 위한 그것들의 조합을 포함 할 수 있다.
예시적인 예를 계속하여, 컴퓨팅 시스템 (100)은 제 1 장치 (102), 제 2 장치 (106), 혹은 그것들의 조합으로 구현 된 데이터 제공자 (116)를 포함 할 수 있다. 컴퓨팅 시스템 (100)은 관리 및 하나 이상의 호스트 컴퓨팅 리소스를 제공하기 위해 상기 데이터 제공자 (116)를 사용할 수 있다. 컴퓨팅 시스템 (100)은 데이터 제공자 (116), 하나 이상의 호스트, 혹은 이들의 하나의 장치 혹은 시스템 내의 컴포넌트들로써 구현되거나 혹은 여러 개별 장치 혹은 시스템으로 구현되거나 그것의 조합으로 구현된 것을 포함 할 수 있다.
좀 더 구체적인 예로서, 컴퓨팅 시스템 (100)은 다른 서버들, 워크스테이션들, 혹은 엔드 유저 장치들로서 구현된 호스트를 돕기 위한 다기능 저장 장치, 네트워크 저장 장치, 서버, 기지국, 혹은 다른 서버로 구현 서비스 호스트 그것들의 조합으로써 구현된 데이터 제공자 (116)를 포함 할 수 있다. 또한, 더 구체적인 예로서, 컴퓨팅 시스템 (100)은, 싱글 독립적인 컴퓨팅 장치 혹은 분산 컴퓨팅 시스템 내의 다른 회로 혹은 장치들을 돕기 위한 디스크 드라이브, 프로세서, 제어 회로, 소프트웨어 기능 혹은 펌웨어 기능, 혹은 그것들의 조합으로서 구현되는 데이터 제공자 (116)을 더 포함할 수 있다.
도 2는 컴퓨팅 시스템 (100)의 예시적으로 블록 다이어그램을 보여준다. 도 2를 참조하면, 컴퓨팅 시스템 (100)은 제 1 장치 (102), 네트워크 (104) 및 제 2 장치 (106)를 포함할 수 있다. 제 1 장치 (102)는 네트워크 (104)를 통하여 제 1 장치 전송 (208)에서 정보를 제 2 장치 (106)로 전송할 수 있다.
도시된 목적을 위하여, 컴퓨팅 시스템 (100)은 클라이언트 장치로서 제 1 장치 (102)를 도시하고 있다. 하지만, 컴퓨팅 시스템 (100)은 서로 다른 종류의 장치로써 제 1 장치 (102)를 포함할 수 있다고 이해되어야 할 것이다. 예를 들어, 제 1 장치 (102)는 중계 장치일 수 있다.
또한, 예시의 목적을 위해, 컴퓨팅 시스템 (100)은 모바일 장치, 컴퓨팅 장치, 기기, 혹은 그것들의 조합으로써 제 2 장치 (106)를 포함하는 것을 도시한다. 하지만, 컴퓨팅 시스템 (100)은 서로 다른 종류의 장치로써 제 2 장치 (106)를 포함할 수 있다고 이해되어야 할 것이다.
본 발명의 실시 예에 있어서 설명을 간단하게 하기 위해, 제 1 장치 (102)는 클라이언트 장치 (106)로 설명될 수 있고, 제 2 장치 (106)는 모바일 장치, 컴퓨팅 장치, 기기, 웨어러블 장치, 혹은 그것들의 조합으로써 설명 될 것이다. 본 발명의 실시 예들에 있어서, 장치들의 종류를 위한 선택은 제한되지 않는다고 이해되어야 할 것이다. 선택은 본 발명의 실시 예들의 예이다.
제 1 장치 (120)는, 제 1 제어 유닛 (212), 제 1 저장 유닛 (214), 제 1 통신 유닛 (216), 제 1 사용자 인터페이스 (218), 위치 유닛 (220), 혹은 그것들의 조합을 포함 할 수 있다. 제 1 제어 유닛 (212)은 다수의 다른 방식으로 구현 될 수 있는 컴퓨팅 시스템 (100)의 지능을 제공하기 위해 최초의 소프트웨어 (226)를 실행할 수 있다.
예를 들어, 제 1 제어 유닛 (212)은 프로세서, 임베디드 프로세서, 마이크로 프로세서, 하드웨어 제어 로직, 하드웨어 유한 상태 기계 (FSM), 디지털 신호 프로세서 (DSP), 혹은 그것들의 조합 일 수 있다. 제 1 제어기 인터페이스 (222)는 제 1 장치 (102) 에서 제 1 제어 유닛 (212) 및 다른 기능 유닛들 사이의 통신을 위해 사용될 수 있다. 또한 제 1 제어기 인터페이스 (222)는 제 1 장치 (102)에 외부와의 통신을 위해 사용될 수 있다.
제 1 제어기 인터페이스 (222)는 다른 기능 유닛들 혹은 외부 소스로부터 정보를 수신하거나, 다른 기능 유닛 혹은 외부 목적지로 정보를 전송할 수 있다. 외부 소스와 외부 대상은 제 1 장치 (102)에 외부 소스와 대상을 참조할 것이다.
제 1 제어기 인터페이스 (222)는 다양한 방식으로 구현 될 수 있다. 제 1 제어기 인터페이스 (222)는, 제 1 제어기 인터페이스 (222)에 인터페이스 하는 기능 유닛들 혹은 외부 유닛들에 의존하는 서로 다른 구현들을 포함할 수 있다. 예를 들어, 제 2 제어기 인터페이스 (222)는, 압력 센서, 관성 센서, 마이크로 전자 기계 시스템 (MEMS), 광학 회로, 도파로, 무선 회로, 유선 회로, 혹은 그것들의 조합을 포함할 수 있다.
위치 유닛 (220)은 예를 들어, 위치 정보, 헤딩(heading), 가속도, 제 1 장치 (102)의 속도를 발생 할 수 있다. 위치 유닛(220)는 수많은 방식으로 구현될 수 있다. 예를 들어, 위치 유닛 (220)은 위성 위치 확인 시스템 (GPS), 자이로스코프, 가속도계, 자력계, 나침반, 스펙트럼 분석기, 비콘, 셀룰러 타워 위치 시스템, 가압 위치 시스템, 혹은 이들의 조합의 적어도 일부 기능을 포함할 수 있다.
위치 유닛 (220)은 위치 인터페이스 (232)를 포함할 수 있다. 위치 인터페이스 (232)는 제 1 장치 (102)에 위치 유닛 (220) 및 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 또한, 위치 인터페이스 (232)는 제 1 장치 (102)의 외부와의 통신을 위해 사용될 수 있다.
위치 인터페이스 (232)는 다른 기능 유닛들 혹은 외부 소스로부터 정보를 수신하거나, 다른 기능 유닛 혹은 외부 목적지로 정보를 전송할 수 있다. 외부 소스와 외부 대상은 제 1 장치 (102)에 외부 소스와 대상을 참조할 수 있다.
위치 인터페이스 (232)는 기능 유닛 혹은 외부 장치가 위치 유닛 (220)과 인터페이스 되고 있는지에 따라 서로 다른 구현을 포함 할 수 있다. 인터페이스 (232)는 제 1 제어기 인터페이스 (222)의 구현과 유사한 기술들로 구현 될 수 있다.
제 1 저장 유닛 (214)은 제 1 소프트웨어 (226)를 저장할 수 있다. 또한, 제 1 저장 유닛 (214)은 생체 정보, 관심 위치 (POI), 네비게이션 라우팅 엔트리들, 리뷰들/레이팅들, 피드백, 혹은 그것들의 조합 등과 같은 관련 정보를 저장할 수 있다.
제 1 저장 유닛 (214)는 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리 혹은 그것들의 조합 일 수 있다. 예를 들어, 제 1 저장 유닛 (214)는 비 휘발성 랜덤 액세스 메모리 (NVRAM), 플래시 메모리, 디스크 저장 장치와 같은 비휘발성 저장 장치 혹은 정적 램 (SRAM)와 같은 휘발성 저장일 수 있다.
제 1 저장 유닛 (214)는 제 1 인터페이스 (224)를 포함할 수 있다. 제 1 저장 인터페이스 (224)는 제 1 저장 유닛 (214)의 위치 유닛 (220) 및 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 또한, 제 1 저장 인터페이스 (224)는 제 1 장치 (102) 외부와 통신하는데 사용될 수 있다.
제 1 저장 인터페이스 (224)는 다른 기능 유닛들 혹은 외부 소스로부터 정보를 수신하거나, 다른 기능 유닛 혹은 외부 목적지로 정보를 전송할 수 있다. 외부 소스와 외부 대상은 제 1 장치 (102)에 외부 소스와 대상을 참조할 것이다.
제 1 저장 인터페이스 (224)는 기능 유닛 혹은 외부 장치가 제 1 저장 유닛 (214)와 인터페이스 되고 있는지에 따라 서로 다른 구현을 포함 할 수 다. 제 1 저장 인터페이스 (224)는 제 1 제어기 인터페이스 (222)의 구현 기술들 혹은 유사한 기술들로 구현될 수 있다.
제 1 통신 유닛 (216)은 제 1 장치 (102) 로/로부터 외부 통신을 활성화 할 수 있다. 제 1 통신 유닛 (216)은 도 1의 제 2 장치 (106), 주변 장치 혹은 노트북 컴퓨터와 같은 부착, 및 네트워크 (104)와 통신하는 제 1 장치 (102)를 허용 할 수 있다.
또한, 제 1 통신 유닛 (216)은, 엔드포인트 혹은 단말기 유닛에 제한되지 않는 네트워크 (104)의 일부로서 기능을 수행하는 제 1 장치 (102)를 허용하는 통신 허브로써 기능을 수행할 수 있다. 제 1 통신 유닛 (216)은 네트워크 (104)에 상호 작용을 위한 마이크로일렉트로닉스 혹은 안테나와 같은 능동 및 수동 소자들을 포함할 수 있다.
제 1 통신 유닛 (216)은 제 1 통신 인터페이스 (228)를 포함할 수 있다. 제 1 통신 인터페이스 (228)는 제 1 장치 (102)의 제 1 통신 유닛 (216) 및 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제 1 통신 인터페이스 (228)는 다른 기능 유닛들로부터 정보를 수신할 수 있거나 혹은 다른 기능 유닛들로 정보를 전송할 수 있다.
제 1 통신 인터페이스 (228)는 제 1 통신 유닛 (216)에 인터페이스 되는 기능 유닛들에 의존하는 서로 다른 구현들을 포함할 수 있다. 제 1 통신 인터페이스 (228)는 제 1 제어기 인터페이스 (222)의 기술 혹은 유사한 기술로 구현될 수 있다.
제 1 사용자 인터페이스 (218)는 사용자 (도시되지 않음)에게 제 1 장치 (102)에 인터페이스 및 상호 작용하도록 허용할 수 있다. 제 1 사용자 인터페이스 (218)는 입력 장치 및 출력 장치를 포함 할 수 있다. 제 1 사용자 인터페이스 (218)의 입력 장치의 실시 예들은 키패드, 터치 패드, 소프트 키, 키보드, 센서, 신호 발생기, 혹은 이들 데이터 통신 입력을 제공하는 임의의 조합을 포함 할 수 있다.
먼저, 사용자 인터페이스 (218)는 제 1 디스플레이 인터페이스 (230)을 포함할 수 있다. 제 1 디스플레이 인터페이스 (230)는 디스플레이, 프로젝터, 비디오 스크린, 스피커, 혹은 이들의 임의의 조합을 포함 할 수 있다.
제 1 제어 유닛 (212)은 컴퓨팅 시스템 (100)에 의해 발생된 정보를 디스플레이 하기 위하여 제 1사용자 인터페이스 (218)을 동작할 수 있다. 또한, 제 1 제어 유닛(212)은 위치 유닛 (220)으로부터 위치 정보를 수신하는 컴퓨팅 시스템 (100)의 다른 기능들을 위한 소프트웨어를 실행할 수 있다. 제 1 제어 유닛 (212)은 제 1 통신 유닛 (216)을 통하여 네트워크 (104)에 인터페이스 하는 제 1 소프트웨어를 추가로 실행할 수 있다.
제 2 장치 (106)는 제 1 장치 (102)를 갖는 복수의 장치 에서 다양한 실시 예들로 구현하는데 최적화 될 수 있다. 제 2 장치 (106)는 제 1 장치 (102)와 비교하여 추가적으로 높은 성능 처리 전력을 제공할 수 있다. 제 2 장치 (106)는 제 2 제어 유닛 (234), 제 2 통신 유닛 (236), 및 제 2 사용자 인터페이스 (238)를 포함할 수 있다.
제 2 사용자 인터페이스 (238)는 제 2 장치 (1060에 사용자 인터페이스 및 입력 장치 및 출력 장치를 포함 할 수 있다. 제 2 사용자 인터페이스 (238)는 입력 장치 및 출력 장치를 포함할 수 있다. 제 2 사용자 인터페이스 (238)의 입력 장치의 실시 예들은, 키패드, 터치 패드, 소프트 키, 키보드, 마이크로폰, 혹은 그 데이터와 통신 입력을 제공하는 임의의 조합을 포함 할 수 있다. 제 2 사용자 인터페이스 (238)의 출력 장치는, 제 2 디스플레이 인터페이스 (240)을 포함할 수 있다. 제 2 디스플레이 인터페이스 (238)은 디스플레이, 프로젝터, 비디오 스크린, 스피커, 혹은 이들의 임의의 조합을 포함 할 수 있다.
제 2 제어 유닛 (234)은 컴퓨팅 시스템 (100)의 제 2 장치 (106)의 지능을 제공하는 제 2 소프트웨어 (242)을 실행할 수 있다. 제 2 소프트웨어(242)는 제 1 소프트웨어 (226)과 연접하여 동작할 수 있다. 제 2 제어 유닛 (234)는 제 1 제어 유닛 (212)와 비교하여 추가 성능을 제공할 수 있다.
제 2 제어 유닛 (234)는 정보를 표시하는 제 2 사용자 인터페이스 (238)를 동작 할 수 있다. 또한, 2 제어 유닛 (234)는 네트워크 (104)를 통해 제 1 장치 (102)와 통신하는 제 2 통신 유닛 (236) 동작을 포함하는 컴퓨팅 시스템 (100)의 다른 기능을 위한 제 2 소프트웨어 (242)를 실행할 수 있다.
제 2 제어 유닛 (234)은 서로 다른 방법들로 구현될 수 있다. 예를 들어, 제 2 제어 유닛 (234)는 프로세서, 임베디드 프로세서, 마이크로 프로세서, 하드웨어 제어 로직, 하드웨어 유한 상태 기계 (FSM), 디지털 신호 프로세서 (DSP), 혹은 그것들의 조합 일 수 있다.
제 2 제어 유닛 (234)은 제 2 제어기 인터페이스 (244)를 포함할 수 있다. 제 2 제어기 인터페이스 (244)는 제 2 장치 (106)의 제 2 제어 유닛 (234) 및 다른 기능 유닛들 사이의 통신에 사용될 수 있다. 또한 제 2 제어기 인터페이스 (244)는 제 2 장치 (106)의 외부의 통신을 위해 사용될 수 있다.
제 2 제어기 인터페이스 (244)는 다른 기능 유닛들 혹은 외부 소스로부터 정보를 수신하거나, 다른 기능 유닛 혹은 외부 목적지로 정보를 전송할 수 있다. 외부 소스와 외부 대상은 제 2 장치 (106)에 외부 소스와 대상을 참조할 것이다.
제 2 제어기 인터페이스 (244)는 다양한 방식으로 구현 될 수 있고, 기능 유닛들 혹은 외부 유닛들이 제 2 제어기 인터페이스 (244)에 인터페이스 하는 것에 의존하는 서로 다른 실시 예들을 포함할 수 있다. 예를 들어, 제 2 제어기 인터페이스(244)는 압력 센서, 관성 센서, 마이크로 전자 기계 시스템 (MEMS), 광학 회로, 도파로, 무선 회로, 유선 회로, 혹은 그것들의 조합을 포함할 수 있다.
제 2 저장 유닛 (246)은 제 2 소프트웨어 (242)를 저장할 수 있다. 또한, 제 2 저장 유닛 (246)은 광고, 생체 정보, 관심 지점, 네비게이션 라우팅 엔트리들, 리뷰들/레이팅들, 피드백, 혹은 그것들의 조합과 같은 관련 정보를 저장할 수 있다. 제 2 저장 유닛 (246)은 제 1 저장 유닛 (214)를 보충하는 부가적인 저장 용량을 제공하도록 크기가 정해질 수 있다.
도시된 목적을 위하여, 제 2 저장 유닛 (246)은 싱글 소자로 도시되지만, 제 2 저장 유닛 (246)은 저장 소자들의 분포가 될 수 있다고 이해되어야 할 것이다. 또한, 도시된 목적을 위하여, 컴퓨팅 시스템 (100)은 단일 계층 저장 시스템으로써 제 2 저장 유닛 (246)을 도시하지만, 컴퓨팅 시스템 (100)은 서로 다른 구조의 제 2 저장 유닛 (246)을 가질 수 있다고 이해되어야 할 것이다. 예를 들어, 제 2 저장 유닛 (246)은 캐싱, 메인 메모리, 회전 매체 혹은 오프라인 저장의 서로 다른 레벨들을 갖는 메모리 계층 시스템을 형성하는 서로 다른 저장 기술들로 형성 될 수 있다.
제 2 저장 유닛 (246)은 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리 혹은 그것들의 조합 일 수 있다. 예를 들어, 제 2 저장 유닛 (246)는 비 휘발성 랜덤 액세스 메모리 (NVRAM), 플래시 메모리, 디스크 저장 장치와 같은 비휘발성 저장 장치, 혹은 정적 램 (SRAM)와 같은 휘발성 저장 장치 일 수 있다.
제 2 저장 유닛 (246)는 제 2 저장 인터페이스 (248)을 포함할 수 있다. 제 2 저장 인터페이스 (248)는 제 2 장치 (106)의 위치 유닛 (220) 및 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 또한, 제 2 저장 인터페이스 (248)는 제 2 장치 (106)의 외부와의 통신을 위해 사용될 수 있다.
제 2 저장 인터페이스 (248)는 다른 기능 유닛들 혹은 외부 소스로부터 정보를 수신하거나, 다른 기능 유닛 혹은 외부 목적지로 정보를 전송할 수 있다. 외부 소스와 외부 대상은 제 2 장치 (106)에 외부 소스와 대상을 참조할 것이다.
제 2 저장 인터페이스 (248)는 기능 유닛들 혹은 외부 유닛들이 제 2 저장 유닛 (246)와 인터페이스 되는 것에 의존하는 서로 다른 구현들을 포함 할 수 있다. 제 2 저장 인터페이스 (248)는 제 2 제어기 인터페이스 (244)의 구현과 유사한 기술들로 구현 될 수 있다.
제 2 통신 유닛 (236)은 제 2 장치 (106)로/로부터 외부 통신을 활성화시킬 수 있다. 예를 들어, 제 2 통신 유닛 (236)은 네트워크 (104)를 통해 제 1 장치 (102)와 통신하도록 제 2 장치 (106)를 허용 할 수 있다.
또한, 제 2 통신 유닛 (236)은, 네트워크 (104)에 대한 엔드포인트 혹은 단말기 유닛으로 제한되지 않는 네트워크 (104)의 일부로써 기능을 수행하도록 제 2 장치 (106)을 허용하는 통신 허브로서 기능을 수행할 수 있다. 예를 들어, 제 2 통신 유닛 (236)은 네트워크 (104)와 상호 작용을 위한 마이크로 전자 혹은 안테나와 같은 능동 및 수동 소자들을 포함할 수 있다.
제 2 통신 유닛 (236)은 제 2 통신 인터페이스 (250)을 포함할 수 있다. 제 2 통신 인터페이스 (250)는 제 2 장치 (106)에서 제 2 통신 유닛 (236) 및 다른 기능 유닛들 간의 통신을 위해 사용될 수 있다. 제 2 통신 인터페이스 (250)는 다른 기능 유닛들에서 정보를 수신할 수 있고 혹은 다른 기능 유닛들로 정보를 전송할 수 있다.
제 2 통신 인터페이스 (250)는 기능 유닛들이 제 2 통신 유닛 (236)과 인터페이스 하는 것에 의존하는 서로 다른 장치들을 포함할 수 있다. 제 2 통신 인터페이스 (250)는 제 2 제어기 인터페이스 (244)의 구현 기술과 유사하게 구현될 수 있다.
제 2 통신 인터페이스 (250)는 제 1 장치 전송 (208)에서 제 2 장치 (106)에 정보를 전송하도록 네트워크 (104)에 연결될 수 있다. 제 2 장치 (106)는 네트워크 (104)의 제 1 장치 전송 (208)로부터 제 2 통신 유닛 (236)에서 정보를 수신할 수 있다.
제 2 통신 유닛 (236)은 제 2 장치 전송 (210)에서 제 1 장치 (102)에 정보를 전송하도록 네트워크 (104)에 연결될 수 있다. 제 1 장치 (102)는 네트워크 (104)의 제 2 장치 전송 (210)으로부터 제 1 통신 유닛 (216)에서 정보를 수신할 수 있다. 컴퓨팅 시스템 (100)은 제 1 제어 유닛 (212)은 제 2 제어 유닛 (234), 혹은 그것들의 조합에 의해 실행될 수 있다.
도시된 목적들을 위하여, 제 2 장치(106)는 제 2 사용자 인터페이스 (238), 제 2 저장 유닛 (246), 제 2 제어 유닛 (234) 및 제 2 통신 유닛 (236)을 갖는 파티션을 도시할지라도, 제 2 장치 (106)는 서로 다른 파티션을 포함할 수 있다고 이해되어야 할 것이다. 예를 들어, 제 2 소프트웨어 (242)는 기능의 전체 혹은 일부가 제 2 제어 유닛 (234) 및 제 2 통신 유닛 (236)이도록 서로 다르게 분할 될 수 있다. 또한, 제 2 장치 (106)는 명확성을 위해 도 3에 도시되지 않는 다른 기능 유닛들을 포함할 수 있다.
제 1 장치 (102)의 기능적 유닛들은 각각 독립적으로 다른 기능 유닛들과 작업을 수행 할 수 있다. 제 1 장치 (102)는 제 2 장치 (106)와 네트워크 (104)로부터 개별적으로 및 독립적으로 동작 할 수 있다.
제 2 장치 (106)의 기능적 유닛들은 각각 독립적으로 다른 기능 유닛들과 작업을 수행 할 수 있다. 제 2 장치 (106)는 제 1 장치 (102)와 네트워크 (104)로부터 개별적으로 및 독립적으로 동작 할 수 있다.
도시된 목적들을 위하여, 컴퓨팅 시스템 (100)은 제 1 장치 (102) 및 제 2 장치 (106)의 동작에 의해 설명될 수 있다. 제 1 장치 (102) 및 제 2 장치 (106)는 컴퓨팅 시스템 (100)의 블록들 및 기능들의 어느 하나를 동작할 수 있다고 이해되어야 할 것이다. 예를 들어, 제 1 장치 (102)는 위치 유닛 (220)을 동작하도록 설명될지라도, 제 2 장치 (106)는 위치 유닛 (220)을 동작할 수 있다고 이해되어야 할 것이다.
도 3은 컴퓨팅 시스템 (100)의 추가적인 예시 블록 다이어그램을 보여준다. 추가 예시 블록 다이어그램은 도 1의 통신 엔드포인트들을 보여줄 수 있다. 통신 엔드포인트들 (110)은 스마트 저장 장치 (302), 다기능 스토리지 장치 (304), 감지 장치 (306), 프로세싱 허브 (308), 다른 기능 (미도시), 혹은 그것들의 조합과 같은 데이터 제공자 (116)를 포함할 수 있다.
스마트 저장 장치 (302)는 기본 저장 접근 기능에 부가하여 데이터에 대한 저장, 보관 및 접근을제공하도록 구현되는 장치이다. 스마트 저장 장치 (302)는 데이터를 저장하고 접근하는 것에 추가하여 처리하는 것을 제공할 수 있다. 스마트 저장 장치 (302)는, 결과를 제공하도록 저장되거나 접근3ㅚㄴ 데이터를 처리하기 위하여, 데이터에 대한 저장 및 접근 동작을 처리하기 위하여, 혹은 그것들의 조합을 위하여, 회로, 기능들, 혹은 그것들의 조합을 포함할 수 있다.
스마트 저장 장치 (302)는 다기능 저장 장치 (304)를 포함할 수 있다. 다기능 저장 장치 (304)는 복수의 컴퓨팅 호스트들, 호스트 내의 복수의 호스티드 가상 머신들, 혹은 그것들의 조합을 수용하기 위한 데이터를 저장하거나 이용하는 장치이다.
다기능 저장 장치 (304)는 공유 메모리를 이용하는 엔터프라이즈 데이터 센터들과 같은 복수의 컴퓨팅 호스트들 및 그것들의 호스티드 가상 머신들로부터 프로세싱 요청 (112)의 복수의 인스턴스들을 동시에 서비스할 수 있도록 연결될 수 있다. 다기능 저장 장치 (304)는 엔터프라이즈 SSD (solid state drive) 저장 장치들을 포함할 수 있다.
데이터 제공자 (116)는 저장 장치들의 서로 다른 유형을 더 포함 할 수 있다. 예를 들어, 데이터 제공자 (116)는 휘발성 저장 장치, 비 휘발성 저장 장치, 혹은 그것들의 조합을 포함 할 수 있다. 보다 구체적인 예로서, 데이터 제공자 (116)는 디스크 드라이브, DRAM, SRAM, 플래시 메모리 장치, NAND 메모리 장치, 다른 비 휘발성 메모리 장치를 포함하는 분산 메모리 혹은 분산 형 컴퓨팅 시스템, 디스크 어레이, 제어 회로 혹은 포함 할 수 있다 이들의 제어 장치 혹은 그것들의 조합을 포함할 수 있다.
감지 장치 (306)는 환경 혹은 감지 장치와 관련된 대상과 관련된 정보를 제공하도록 구성되는 장치 혹은 그것의 부분일 수 있다. 예를 들어, 감지 장치 (306)는 생체 인증 장치, 위치 혹은 움직임을 감시 장치, 환경 모니터링 장치, 혹은 그것들의 조합을 포함할 수 있다. 보다 구체적인 예로서, 감지 장치 (306)는 심장 모니터, 움직임 추적하는 GPS 장치, 가속도 센서, 압력 센서, 온도계, 광 센서, 음향 센서, 마이크로폰, 혹은 그것들의 조합을 포함 할 수 있다.
프로세싱 허브 (308)는 환경 혹은 감지 장치 (306)와 관련된 대상에 대하여 처리된 출력을 제공하는 장치 혹은 그것의 부분일 수 있다. 예를 들어, 만약 IoT 기술을 포함하는 컴퓨팅 시스템 (100)은 감지 장치 (306)를 사용하여 다양한 정보를 검색할 수 있다. 감지 장치 (306)는 서버나 스마트 폰과 같은 처리 장치에 직접 감지 정보를 제공 할 수 있다. 또한 예를 들어, 만약 IoT 기술을 포함하는 컴퓨팅 시스템 (100)은 저장된 정보를 센싱 정보를 결합 할 수 있다.
또한, 예를 들어, 감지 장치 (306)는 감지된 정보를 요약하거나 혹은 중간 처리를 제공 할 수 있는 프로세싱 허브 (308)에 감지된 정보를 더 제공 할 수 있다. 프로세싱 허브 (308)는 서버 혹은 추가 처리를 위해 스마트 폰 등의 통신 엔드포인트들 (110)로 요약 혹은 중간 출력을 제공 할 수 있다. 프로세싱 허브 (308)는, 센서 데이터를 압축하고 센서 데이터를 위한 패턴을 계산하고 제공함으로써 중간 처리를 요약하거나 제공할 수 있고, 센서 데이터를 통계적으로 분석하는 그룹핑, 혹은 카테고리 제공할 수 있고, 그것들의 조합을 제공할 수 있다.
프로세싱 허브 (308) 및 감지 장치 (306)는 통신 엔드포인트들 (110)일 수 있다. 프로세싱 허브 (308) 혹은 감지 장치 (306)은 도 1의 프로세싱 요청 (112)을 발생하거나, 도 1의 크레딧 관리 메커니즘 (118)을 구현하는 데이터 제공자 (116)으로 기능을 수행하거나, 그것들의 조합을 제공할 수 있다.
예를 들어, 프로세싱 허브 (308)는, 업로딩 리소스들 제공하는 감지 장치에 대하여, 감지된 정보 혹은 중간 결과를 제공하는 서버 혹은/및 엔드 유저 장치 같은 서비스 장치에 대하여, 그것들의 조합들에 대하여 데이터 제공자 (116)이 될 수 있다. 또한, 예를 들어, 감지 장치 (306)는 감지된 정보를 제공하는 프로세싱 허브 (308) 혹은 서비스 장치에 대하여 데이터 제공자 (116)의 역할을 수행할 수 있다. 프로세싱 허브 (308), 감지 장치 (306), 혹은 그것들의 조합은 센싱 정보 혹은 이들 중간 결과 액세스의 전반적인 리소스들 (120)을 관리하는 크레딧 관리 메커니즘 (118)를 구현할 수 있다.
데이터 제공자 (116)는 통신 메커니즘 (310)을 포함할 수 있다. 통신 메커니즘 (310)은 장치들 사이 혹은 장치의 부분들 사이에서 정보를 교환하기 위한 방법, 과정, 연결, 혹은 그것들의 조합을 포함할 수 있다. 통신 메커니즘 (310)는 와이어, 버스, 주파수, 시간 슬롯, 코드, 프로토콜, 혹은 그것들의 조합을 포함 할 수 있다.
예를 들어, 통신 메커니즘 (310)은 반송파 주파수, 통신 프로토콜, 혹은 프로세싱 허브 (308), 감지 장치 (306), 도 1의 제 2 장치 (106) 사이의 통신을 위한 그것들의 조합을 포함 할 수 있다. 또한, 통신 메커니즘 (310)은 내부 버스 외부 버스, 병렬 혹은 직렬 버스, 혹은 그것들의 조합에 대한 버스, 프로토콜, 혹은 그것들의 조합을 포함 할 수 있다. 보다 구체적인 예로서, 통신 메커니즘 (310)는 PCI (Peripheral Component Interconnect) 표준에서 PCIe (PCI Express) 표준, 범용 직렬 버스 (USB), 혹은 기타 확장 버스 혹은 프로토콜을 포함 할 수 있다.
데이터 제공자 (116)는 프로세싱 요청 (112)의 프로세싱 세그먼트 (312)를 처리하는 프로세싱 요청 (312)을 이용할 수 있다. 프로세싱 세그먼트 (312)는 데이터 제공자 (116)를 위한 정보를 처리하기 위해 이용되는 리소스들의 유닛일 수 있다. 프로세싱 세그먼트 (312)는 데이터 제공자 (116)의 정보를 처리하기 위한 프로세싱 구간 혹은 시간 구간, 메모리의 분할 혹은 그룹핑, 프로세싱 사이클, 혹은 그것들의 조합을 포함할 수 있다.
예를 들어, 프로세싱 세그먼트 (312)은 데이터 제공자 (116)을 위한 클록 혹은 명령 혹은 동작을 수행하는 시간 구간을 포함 할 수 있다. 또한, 예를 들어, 프로세싱 세그먼트 (312)은 컴퓨팅 시스템 (100)에 의해 사전에 결정된 시간의 임의의 구간 혹은 컴퓨팅 시스템 (100)에 의해 확립되거나 수립된 세션을 포함할 수 있다.
데이터 제공자 (116)는 프로세싱 요청 (112)를 처리하기 위한 전체 리소스들 (120)을 제어하는 다이나믹 버짓팅 메커니즘 (dynamic budgeting mechanism, 314)를 사용할 수 있다. 다이나믹 버짓팅 메커니즘 (314)는 전체 리소스들 (120)을 할당하거나, 분배하거나, 관리하거나 혹은 그것들의 조합을 위한 처리, 방법, 회로, 방정식, 혹은 그것들의 조합 일 수 있다.
다이나믹 버짓팅 메커니즘 (314)은 프로세싱 세그먼트 (312)을 포함할 수 있다. 다이나믹 버짓팅 메커니즘 (314)은 프로세싱 요청 (312)의 하나 이상의 인스턴스들을 위한 전체 리소스들 (120)의 일부를 동적으로 할당하거나 할애 할 수 있다. 다이나믹 버짓팅 메커니즘 (314)은 프로세싱 요청 (112)의 수신, 권유, 기대 혹은 그것들의 조합에 근거로 하여 데이터 제공자 (116)의 동작 중에 전체 리소스들 (120), 혹은 그것들의 부분을 동적으로 할당하거나 할애할 수 있다.
데이터 제공자 (116)는 요청 호스트 (316)와 통신할 수 있다. 요청 호스트 (316)는 프로세싱 요청 (112)을 발생하거나 전송하는 통신 엔드포인트들 (110)의 인스턴스일 수 있다. 요청 호스트 (316)는 장치 혹은 그것의 부분을 포함할 수 있고, 데이터 제공자 (116)으로부터 분리될 수 있다.
컴퓨팅 시스템 (100)은 요청 호스트 (316)을 지시하기 위한 호스트 프로파일 (318)을 포함할 수 있다. 호스트 프로파일 (318)은 데이터 제공자 (116)에 의해 서비스 제공되는 요청 호스트 (316)의 하나 이상의 인스턴스들의 설명일 수 있다. 호스트 프로파일 (318)은 데이터 제공자 (116)에 연결되거나 할당된 요청 호스트 (316)의 하나 이상의 인스턴스들을 설명할 수 있다.
호스트 프로파일 (318)은 요청 호스트 (316)와 데이터 제공자 (116)사이의 연결, 데이터 제공자 (116)에 의해 제공되는 요청 호스트 (316)에 대한 기능 혹은 서비스, 혹은 그것들의 조합을 설명할 수 있다. 예를 들어, 호스트 프로파일 (318)은 연결 식별자 (320), 신체 기능의 식별자 (322), 가상 기능 식별자 (324), 혹은 그것들의 조합을 포함 할 수 있다.
연결 식별자 (320)가 요청 호스트 (316)와 데이터 제공자 (116) 사이의 연결에 대한 설명이다. 연결 식별자 (320)는 장치들간에 혹은 장치의 부분들 간의 정보 교환을 위해 물리 메커니즘을 설명 할 수 있다. 연결 식별자 (320)는 호스트 요청 (316), 데이터 제공자 (116), 혹은 그것들의 조합에서 포트, 채널, 접속 세부 사항이나 특성, 혹은 그것들의 조합을 포함할 수 있다.
물리 기능 식별자 (322)는 데이터 제공자 (116)에 의해 제공되는 기능 혹은 특징의 전체 특징 혹은 전체 기능에 대한이고 설명이고 및 프로세싱 요청 (112)을 통한 요청 호스트 (316)에 대한 접근 가능성에 대한 설명일 수 있다. 가상 기능 식별자 (324)는 데이터 제공자 (116)에 의해 제공되는 대응하는 기능 혹은 특징, 혹은 그것들의 조합에 대한 설명이고 및 프로세싱 요청 (112)을 통한 요청 호스트 (316)에 대한 접근 가능성에 대한 설명일 수 있다.
가상 기능 식별자 (324)는 물리 기능에 포함된 구성 리소스들이 부족할 수 있다. 예를 들어, 물리 기능 식별자 (322), 가상 기능 식별자 (324), 혹은 그것들의 조합은, 예를 들어 PCIe 를 갖는 통신 메커니즘 (310)에 대응할 수 있다. 물리 기능 식별자 (322), 가상 기능 식별자 (324), 혹은 그것들의 조합은, 데이터 제공자 (116)에서 가능한 기능들, 과정들, 특징들, 혹은 그것들의 조합들을 접근 혹은 구현들을 나타낼 수 있다.
예시 된 바와 같이, 컴퓨팅 시스템 (100)은 통신 및 저장 시스템 등의 데이터 센터를 포함 할 수 있다. 데이터 센터는 호스트 요청 (316)에 요청 호스트 (316)의 복수의 인스턴스들을 제공하는 데이터 제공자 (116)와 함께 복수의 호스트들을 수용하기 위한 메모리 호근 데이터 저장과 같은 공유된 리소스들을 사용할 수 있다. 요청 호스트 (316)과 데이터 제공자 (116) 사이의 통신 메커니즘 (310)은 PCIe 을 포함할 수 있다. 데이터 제공자 (116)는 스마트 저장 장치 (302), 다기능 스토리지 장치 (304), 혹은 그것들의 조합을 포함 할 수 있다.
또한, 예시적인 예로서, 컴퓨팅 시스템 (100)은 데이터 제공자 (116) 및 하나의 장치에 요청 호스트 (316)를 포함 할 수 있다. 데이터 제공자 (116)는 도 2의 제 1 저장 유닛 (214)를 포함 할 수 있다. 제 1 저장 유닛 (214)는 도 2의 제 1 제어 유닛 (212), 도 2의 제 1 통신 유닛 (216), 도 2의 제 1 사용자 유닛 (218), 혹은 그것들의 조합을 포함하는 요청 호스트 (316)을 서비스할 수 있다. 또한 데이터 제공자 (116)은 도 2의 제 2 저장 유닛 (216)를 포함 할 수 있다. 제 2 저장 유닛 (216)는 도 2의 제 2 제어 유닛 (234), 도 2의 제 2 통신 유닛 (236), 도 2의 제 2 사용자 유닛 (238), 혹은 그것들의 조합을 포함하는 요청 호스트 (316)을 서비스할 수 있다.
더욱 상세 예로서, 컴퓨팅 시스템 (100)은 데이터 독립 디스크 (RAID)의 중복 배열의 전체 시스템으로써 구현 제공자 (116) 드라이브 나 스토리지 어레이를 포함 할 수 있다. 또 다른 상세한 예로서, 컴퓨팅 시스템 (100)은 RAID 내의 드라이브 혹은 스토리지 어레이 내의 단일 개별 드라이브 혹은 디스크로 구현 데이터 제공자 (116)를 포함 할 수 있다.
데이터 제공자 (116)는 요청 호스트 (316)의 복수의 인스턴스들에 연관된 전체 리소스들 (120)의사용을 관리하는 크레딧 관리 메커니즘 (118)을 구현할 수 있다. 데이터 제공자 (116)는 요청 호스트 (3160)의 각 인스턴스를 제공하도록 전체 리소스들 (120)의 적합한 부분을 분할하고 할당하기 위한 크레딧 관리 메커니즘을 구현할 수 있다.
데이터 제공자 (116)는 다이나믹 버짓팅 메커니즘 (314)를 사용할 수 있다. 다이나믹 버짓팅 메커니즘 (3140는 요청 호스트 (316)의 각 인스턴스를 위한 현재 혹은 프로젝트된 프로세싱 요구들 혹은 필요들에 따라 전체 리소스들 (120)의 부분들을 동적으로 분할 및 할당할 수 있다.
데이터 제공자 (116)에 의해 연결되고 제공되는 요청 호스트 (316)의 모든 인스턴스들 주에서 요청 호스트 (316)의 개별 인스턴스들은 중요한 서로 다른 성능 요구 사항을 가질 수 있다. 이러한 성능 요구 사항은 중요한 SLA 매트릭스를 만족하는 것을 보정하는데 충분해야 한다. 데이터 제공자 (116)는 대응하는 SLA에 따라 요청 호스트 (316)의 각 인스턴스에 서비스 (QoS)을 측정 혹은 성능 파라미터의 품질을 제공 할 수 있다고 기대될 수 있다.
예를 들어, 요청 호스트 (316)의 하나 이상의 인스턴스는 무의미한 데이터 전송 양 혹은 높은 대역폭을 포함하는 높은 요구 이행율을 요구할 수 있다. 또한, 예를 들어 요청 호스트 (316)의 하나 이상의 인스턴스 각각은 상당한 데이터 전송 대역폭을 필요로 몇 요청을 제시 할 수 있다. 또한, 예를 들어 요청 호스트 (316)의 하나 이상의 인스턴스, 대략 균일 장치 성취 응답 시간을 요구하는 요청을 각 정상 프레젠테이션 요청 레이트를 나타낼 수 있다. 또한, 예를 들어 요청 호스트 (316)의 하나 이상의 인스턴스 요청 테이션 레이트 예측을 위한 버스트를 나타낼 수 있다.
데이터 제공자 (116)은 요청 호스트 (316)의 인스턴스들에 연관된 다양한 요구들 및 필요들을 동적으로 관리하는 크레딧 관리 메커니즘 (118)을 이용할 수 있다. 데이터 제공자 (116)는 다른 호스트 요청 간섭에도 불구하고 성능 요구 만족시키도록 요청 호스트 (316)의 인스턴스들을 활성화시키거나, 혹은 최악의 경우 상대적으로 우아하고 균형 잡힌 방식으로 그들의 SLA를 실패 하도록 호스트들을 허용할 수 있다.
데이터 제공자 (116)는 다기능 스토리지 장치 (304)를 갖는 PCIe 와 같은 통신 메커니즘 (310)을 이용할 수 있다. 또한 데이터 제공자 (116)는 PCIe 호스트 인터페이스를 통하여 PCIe 물리 포트들을 노출할 수 있다. PCIe 장치는, 동시에 장치에 연결할 수 있는 호스트의 개수를 증가시키면서 논리 호스트의 연결을 제공하는 메커니즘의 개수를 증가시킬 수 있다.
도 4는 본 발명의 실시 예에 따른 컴퓨팅 시스템 (100)의 제어 흐름을 보여주는 도면이다. 도 4를 참조하면, 컴퓨팅 시스템 (100)은 커맨드 페치 블록 (402), 크레딧 체커 블록 (404), 커맨드 프로세싱 블록 (406), 커맨드 컴플리션 블록 (408), 혹은 그것들의 조합을 포함할 수 있다.
블록들, 버퍼들, 유닛들, 혹은 그것들의 조합은 다양한 방식으로 서로 연결될 수 있다. 예를 들어, 블록들은 유선 혹은 무선 연결, 학습 단계, 공정 순서, 혹은 그것들의 조합을 사용하여 다른 출력에 연결된 하나의 블록의 입력을 가짐으로써 결합 할 수 있다. 또한 예를 들어, 블록들, 버퍼들, 유닛들, 혹은 그것들의 조합은 중간 구조 없이 직접적으로 다른 블록들, 버퍼들, 유닛들, 혹은 그것들의 조합 사이의 연결 수단에 직접적으로 연결 될 수 있다. 혹은, 블록들, 버퍼들, 유닛들, 혹은 그것들의 조합은 블록들, 버퍼들, 유닛들, 혹은 그것들의 조합에 의해 다른 블록들, 버퍼들, 유닛들, 혹은 그것들의 조합들 사이의 연결 수단에 간접적으로 연결 될 수 있다.
보다 구체적인 예로서, 크레딧 체커 블록 (404)의 하나 이상의 입력들 혹은 출력들은, 커맨드 페치 블록 (402), 커맨드 컴플리션 블록 (408) 혹은 그것들의 조합의 하나 이상의 입력들 혹은 출력들에 직접적으로 연결될 수 있다. 이러한 직접 연결은 직접 연결을 위한 컨덕터들 혹은 동작 연결들을 이용할 수 있다. 또한, 크레딧 체커 블록 (404)의 하나 이상의 입력들 혹은 출력들은, 커맨드 페치 블록 (402), 커맨드 컴플리션 블록 (408) 혹은 그것들의 조합의 하나 이상의 입력들 혹은 출력들에 간접적으로 연결될 수 있다. 이러한 간접 연결은 간접 연결을 위한 다른 유닛들, 블록들, 버퍼들, 장치들, 혹은 그것들의 조합들을 이용할 수 있다. 또한, 예를 들어, 커맨드 페치 블록 (402), 커맨드 컴플리션 블록 (408), 혹은 그것들의 조합은 유사하게 커맨드 프로세싱 블록 (408)에 연결될 수 있다. 또한, 커맨드 페치 블록 (402), 커맨드 컴플리션 블록 (408), 혹은 그것들의 조합은 도 3의 요청 호스트 (316)의 하나 이상의 인스턴스들에 직접적으로 혹은 간접적으로 연결될 수 있다.
커맨드 페치 블록 (402)은 도 2의 요청 호스트 (316)의 하나 이상의 인스턴스들과 인터페이스 하도록 구현될 수 있다. 커맨드 페치 블록 (402)는 도 1의 데이터 제공자 (116)을 위한 요청 호스트 (316)와 통신할 수 있다.
커맨드 페치 블록 (402)는 다양한 방법으로 요청 호스트 (316)와 통신할 수 있다. 예를 들어, 커맨드 페치 블록 (402)는 도 1의 프로세싱 요청 (112)을 위한 요청 호스트 (316)을 차단할 수 있거나, 요청 호스트 (316)으로부터 프로세싱 요청 (112)을 페치할 수 있다. 또한, 예를 들어, 커맨드 페치 블록 (402)은 프로세싱 요청 (112)을 처리하기 위한 데이터 제공자 (116)에서 요청 호스트 (316)으로부터 프로세싱 요청 (1120을 수신할 수 있다.
커맨드 페치 블록 (402)은 프로세싱 요청 (112)을 통신하도록, 도 1의 제 1 통신 유닛 (216), 도 2의 제 2 통신 유닛 (236), 혹은 그것들의 조합을 사용할 수 있다. 커맨드 페치 블록 (402)은 프로세싱 요청 (112)을 통신하도록, 도 2의 제 1 저장 인터페이스 (224), 도 2의 제 1 저장 인터페이스 (244), 및 그것들의 조합을 추가로 사용할 수 있다. 커맨드 페치 블록 (402)은 PCIe 버스 혹은 AXI(advanced extensible interface) 버스와 같은 통신 메커니즘 (310, 도 3)을 추가로 사용할 수 있다.
커맨드 페치 블록 (402)은 프로파일 블록 (403)을 포함할 수 있다. 프로파일 블록 (403)은 요청 호스트 (3160의 하나 이상의 인스턴스들을 지시하는 도 2의 호스트 프로파일 (318)을 추가로 판별할 수 있다. 프로파일 블록 (403)은 도 3의 연결 식별자 (320), 도 3의 물리 기능 식별자 (322), 도 3의 가상 기능 식별자 (324), 혹은 그것들의 조합을 갖는 호스트 프로파일 (318)을 판별할 수 있다.
프로파일 블록 (403)은 다양한 방식으로 호스트 프로파일 (318)을 결정할 수 있다. 예를 들어, 프로파일 블록 (403)는 보다 구체적인 예로서, 요청 호스트 (316)의 하나 이상의 인스턴스를 식별 혹은 구성 정보를 통신에 기초하여 상기 호스트 프로파일 (318)을 결정할 수 있다. 프로파일 블록 (403)은 호스트 요청 (316)로부터 장치 식별을 수신하기 위하여 호스트 프로파일 (318)과 통신할 수 있다. 프로파일 블록 (403)은 요청 호스트 (316)의 대응하는 인스턴스에 통신하기 위하여 사용되는 연결 식별자 (320)를 추가로 식별할 수 있다.
또한 예를 들어, 프로파일 블록 (403)은 데이터 제공자 (116)에 연결된 요청 호스트 (316)의 각 인스턴스에 연관된 사전에 결정된 정보에 근거로 하여 호스트 프로파일 (318)을 판별할 수 있다. 프로파일 블록 (403)은 기능들의 목록들, 구성 정보, 성능 혹은 설정 파라미터들, 혹은 그것들의 조합을 포함할 수 있다.
예를 계속하면, 프로파일 블록 (403)은 SLA 혹은 QoS 근거로 하여 기능들의 목록, 구성 정보, 성능 혹은 설정 파라미터들, 혹은 그것들의 조합들을 포함할 수 있다. 프로파일 블록 (403)은 요청 호스트 (316)의 각 인스턴스에 따라 기능들, 구성 정보, 파라미터들, 혹은 그것들의 조합에 근거로 하여 호스트 프로파일 (318)을 판별할 수 있다.
예를 계속하면, 프로파일 블록 (403)은 SLA 혹은 QoS 근거로 하여 기능들의 목록, 구성 정보, 성능 혹은 설정 파라미터들, 혹은 그것들의 조합들을 포함할 수 있다. 프로파일 블록 (403)은 요청 호스트 (316)의 각 인스턴스에 따라 기능들, 구성 정보, 파라미터들, 혹은 그것들의 조합에 근거로 하여 호스트 프로파일 (318)을 판별할 수 있다.
보다 구체적인 예로서, 프로파일 블록 (403)은 구성 정보에 기초하여 연결 식별자 (320)를 판별할 수 있다. 또한, 더 구체적인 예로서, 프로파일 블록 (403)은, 기능들의 목록, 성능 혹은 설정 파라미터들, 혹은 그것들의 조합으로부터 물리 기능 식별자 (322), 가상 기능 식별자 (324), 혹은 그것들의 조합을 판별할 수 있다.
또한, 예를 들어, 프로파일 블록 (403)은 호스트 프로파일 (318)의 인스턴스 혹은 프로세싱 요청 (112)의 입력 인스턴스에 대응하는 호스트 프로파일 (318) 내의 일부를 선택하거나 혹은 식별하는 것에 근거로 하여 호스트 프로파일 (318)을 판별할 수 있다. 프로파일 블록 (403)은 호스트 요청 (112)의 인스턴스를 전송하거나 발생하는 요청 호스트 (3160을 식별하는 것에 근거로 하여 호스트 프로파일 (318)을 식별할 수 있다. 프로파일 블록 (403)은 호스트 프로파일 (318)의 대응하는 인스턴스를 선택하도록 요청 호스트 (316)에 연관된 식별 정보 혹은 연결 식별자 (320)를 이용할 수 있다.
커맨드 페치 블록 (402)은 호스트 프로파일 (318)을 판별하기 위해, 제 1 저장 유닛 (214), 제 2 저장 유닛 (246), 전용 회로 혹은 내부 컴포넌트, 혹은 그것들의 조합을 사용할 수 있다. 커맨드 페치 블록 (402)은 호스트 프로파일 (318)을 판별하기 위해, 제 1 제어 유닛 (212), 제 2 제어 유닛 (234), 혹은 그것들의 조합을 추가로 사용할 수 있다. 커맨드 페치 블록 (402)은 제 1 저장 유닛 (214), 제 2 저장 유닛 (246), 혹은 그것들의 조합에서 호스트 프로파일 (318)을 저장할 수 있다.
보다 구체적인 예로서, 커맨드 페치 블록 (402)은 휘발성 메모리, 비 휘발성 메모리, 내부 메모리, 외부 메모리, 혹은 그것들의 조합을 사용할 수 있다. 예를 들어, 비휘발성 메모리는, 플래시 메모리, 디스크 저장 장치이고, 휘발성 메모리는 SRAM) 혹은 DRAM일 수 있다. 커맨드 페치 블록 (402)는 NAND 메모리 장치, 분산 메모리, 혹은 분산형 컴퓨팅 시스템, 디스크 어레이, 제어 회로, 혹은 제어 장치, 혹은 그것들의 조합일 수 있다. 또한, 더 구체적인 예로서, 커맨드 페치 블록 (402)는 프로세서, 임베디드 프로세서, 마이크로 프로세서, 하드웨어 제어 로직, 하드웨어 유한 상태 기계 (FSM), 디지털 신호 프로세서 (DSP), 수동 회로 소자, 능동 회로 소자, 메모리 유닛들/통신 유닛들에 포함된 제어 회로 혹은 그것들의 조합을 포함할 수 있다.
커맨드 페치 블록 (402)은 공지된 저장 유닛들 혹은 사전에 결정된 프로파일들에 접근할 수 있다. 커맨드 페치 블록 (402)은, 프로파일들을 일치시키도록, 새로운 프로파일들을 발생하도록, 새로운 프로파일들을 저장하도록, 혹은 그것들의 조합을 위하여 하나 이상의 저장 유닛들 혹은 제어 유닛들을 사용할 수 있다.
커맨드 페치 블록 (402)은 크레딧 체커 블록 (404)으로부터 정보를 지정/저장 정보를 추가로 얻을 수 있다. 커맨드 페치 블록 (402)은, 요청 호스트 (316)의 하나 이상의 인스턴스들에 대응하는 도 1의 전체 혹은 일부 리소스들 (120)의 지정 혹은 분할을 위하여 프롬프트 하거나 수신할 수 있다.
제어 흐름은 커맨드 페치 블록 (402)로부터 크레딧 체커 블록 (404)로부 패스할 수 있다. 제어 흐름은 다양한 방식으로 패스할 수 있다. 예를 들어, 제어 흐름은, 다른 블록에 패스된 하나의 블록의 프로세싱 결과들을 가짐으로써 패스할 수 있다. 이는 마치 호스트 프로파일 (318), 프로세싱 요청 (112), 그것들의 초기 혹은 중간 인스턴스들, 혹은 그것들의 조합들과 같은 프로세싱 결과들을 커맨드 페치 블록(402)로부터 크레딧 체커 블록 (402)로 패스하는 것이다.
또한 예를 들어, 제어 흐름은, 종지의 저장 위치 및 크레딧 체커 블록 (404)에 접근 가능한 곳에서 호스트 프로파일 (318) 혹은 프로세싱 요청 (112)을 저장하는 것과 같이, 공지된 위치 및 크레딧 체커 블록 (404)에 접근 가능한 곳에서 프로세싱 결과들을 저장함으로써 패스할 수 있다. 또한, 예를 들어, 제어 흐름은 플래그, 인터럽트, 상태 신호, 혹은 그것들의 조합을 이용하는 것과 같이, 크레딧 체커 블록 (404)을 통지함으로써 패스할 수 있다.
크레딧 체커 블록 (404)은 프로세싱 요청 (112)를 처리하기 위한 전반적인 리소스들 (120)를 관리하도록 구현될 수 있다. 크레딧 체커 블록 (404)은 전체 리소스들 (120) 혹은 그것들의 부분을 분할 혹은 할당함으로써 전체 리소스들 (120)을 관리 할 수 있다. 크레딧 체커 블록 (404)는 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산하는 것에 근거로 하여 전체 리소스들 (120)을 관리 할 수있다.
인스턴스 버짓 (410)는 요청 호스트 (316)의 대응하는 인스턴스, 프로세싱 요청 (112)의 대응하는 인스턴스, 혹은 그것들의 조합을 서비스 하기 위해 지정된 전체 리소스들 (120)의 일부일 수 있다. 인스턴스 버짓 (410)는, 도 1의 데이터 리소스 (122), 도 1의 프로세싱 리소스, 혹은 그것들의 조합을 할당할 수 있다. 이것들은 요청 호스트 (316)의 대응하는 인스턴스, 프로세싱 요청 (112)의 대응하는 인스턴스, 혹은 그것들의 조합을 서비스하기 위해 설정될 수 있다.
추가 버짓 (412)은 프로세싱 요청 (112)의 다른 인스턴스들, 요청 호스트 (316)의 다른 인스턴스들, 혹은 그것들의 조합을 서비스하기 위하여 지정된 전체 리소스들 (120)의 추가의 일부일 수 있다. 추가 버짓 (412)은 인스턴스 버짓 (410)으로부터 분리되고 다를 수 있다. 추가 버짓 (412)은, 현재의 프로세싱 요청 (112), 현재의 요청 호스트 (316) 혹은 그것들의 조합과 다른, 요청 호스트 (316)의 추가 인스턴스, 프로세싱 요청 (112)의 추가 인스턴스, 혹은 그것들의 조합을 상세화시킬 수 있다.
크레딧 체커 블록 (404)은, 데이터 제공자 (116)에 연결되거나 서비스된 요청 호스트 (316)의 모든 인스턴스에 대응하는 하나 이상의 버짓들을 계산할 수 있다. 크레딧 체커 블록 (404)은 데이터 제공자 (116)에 연결되거나 서비스된 요청 호스트 (316)의 활성화된 통신 인스턴스들을 대응하는 하나 이상의 버짓들을 추가로 계산할 수 있다.
크레딧 체커 블록 (404)은, 도 1의 크레딧 관리 메커니즘, 도 3의 다이나믹 버짓팅 메커니즘, 혹은 그것들의 조합을 이용하여, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산할 수 있다. 예를 들어, 크레딧 체커 블록 (404)은 크레딧 관리 메커니즘 (118), 다이나믹 버짓팅 메커니즘 (314), 혹은 그것들의 조합에 따라 요청 호스트 (316)의 대응하는 인스턴스를 위한 호스트 프로파일 (318)에 근거로 하여, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산할 수 있다.
더 구체적인 예로서, 크레딧 체커 블록 (404)은 연결 식별자 (320), 물리 기능 식별자 (322), 가상 기능 식별자 (324), 혹은 그것들의 조합에 근거로 하여, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산 할 수 있다. 또한, 더 구체적인 예로서, 크레딧 체커 블록 (404)은, 프로세싱 요청 (112), 요청 호스트 (316)의 아이덴티티, 혹은 그것들의 조합에 근거로 하여 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산할 수 있다.
좀 더 자세하게, PCIe 물리 포트들, 물리 기능들, 및 가상 기능들의 조합은 멀티 기능 PCIe 저장 장치의 프로세싱 리소스들에 연결되고 공유하는 물리 호스트들 및 가상 머신들의 개수를 크게 증가시킬 수 있다. 멀티 기능 PCIe 저장 장치는 호스트들 사이에서 간섭을 관리하도록 부착된 호스트의 서비스 혹은 가상 머신의 서비스를 잴 수 있다.
예를 계속하면, 크레딧 체커 블록 (404)은, 호스트 혹은 가상 머신이 너무 많은 장치 리소스들을 소비하거나 혹은 다른 부착 호스트들에 “노이지 네이버”(noisy neighbor)로 활동할 때를 식별하는 크레딧 기반 관리를 구현하기 위하여, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산할 수 있다. 크레딧 체커 블록 (404)은, 데이터 전송 대역과 같은 데이터 리소스 (122), 커맨드 카운트와 같은 프로세싱 리소스 (124), 혹은 그것들의 조합을 제한하기 위하여, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 계산 할 수 있다.
크레딧 체커 블록 (404)은 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산하는 과정에서, 크레딧 관리 메커니즘 (118, 다이나믹 버짓팅 메커니즘 (3140, 혹은 그것들의 조합을 위한 과정, 방법, 방정식, 회로, 혹은 그것들의 조합을 사용할 수 있다. 커맨드 페치 블록 (402)은, 크레딧 관리 메커니즘 (118), 다이나믹 버짓팅 메커니즘 (314), 혹은 그것들의 조합을 위한 입력 파라미터로써, 프로세싱 요청 (112), 프로세싱 요청 (112)에 연관된 요청 호스트 (316)의 아이덴티티, 호스트 프로파일 (118), 혹은 그것들의 조합을 사용할 수 있다.
예를 들어, 크레딧 체커 블록 (404)은, 요청 호스트 (316) 각각에 대응하는 타입 혹은 카테고리에 대응하는, 비율, 우선권, 가중치, 혹은 그것들의 조합을 포함할 수 있다. 또한, 예를 들어, 크레딧 체커 블록 (404)은 프로세싱 요청 (112)의 타입 혹은 특수한 인스턴스에 대응하는, 비율, 우선권, 가중치, 혹은 그것들의 조합을 포함할 수 있다. 또한, 예를 들어, 크레딧 체커 블록 (404)은 요청 호스트 (316) 각각을 위한 SLA에 대응하는, 비율, 우선권, 가중치, 혹은 그것들의 조합을 포함할 수 있다.
크레딧 체커 블록 (404)은, 비율, 우선권, 가중치, 혹은 그것들의 조합에 따라 전체 리소스들 (120)의 분할하는 것에 근거로 하여 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다. 좀더 자세하게, 크레딧 체커 블록 (4040)는 프로세싱 세그먼트 (312)의 현재 인스턴스에서, 비율 구성들, 우선권들, 가중치들, 혹은 그것들의 조합들을 위한 전체를 계산할 수 있다.
크레딧 체커 블록 (404)는 프로세싱 세그먼트 (312)을 위한 전체 리소스들 (120) 내의 싱글 유닛을 계산하기 위하여, 계산된 전체에 의해 전체 리소스들 (120)을 분할 수 있다. 크레딧 체커 블록 (404)은, 요청 호스트 (316), 특수 프로세싱 요청 (112), SLA, 혹은 그것들의 조합의 대응하는 인스턴스에 연관된, 비율, 우선권, 가중치, 혹은 그것들의 조합에 의해 전체 리소스들 (120)의 싱글 유닛을 멀티플라이 하는 것에 근거로 하여, 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다.
크레딧 체커 블록 (404)은 도 1의 통신 엔드포인트들 중 하나에서 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 추가로 계산할 수 있다. 크레딧 체커 블록 (404)은, 통신 엔드포인트들 (110)의 어느 하나, 프로세싱 요청 (112), 혹은 프로세싱 요청 (112)을 위한 전용 혹은 확장된 리소스들의 양을 추가로 제어할 수 있다.
크레딧 체커 블록 (404)은 데이터 제공자 (116)에서 버짓을 계산할 수 있다. 크레딧 체커 블록 (404)은 프로세싱 요청 (112)을 실행하거나 구현하기 위한 데이터 제공자 (116)에서 리소스의 소비 혹은 사용을 추가로 제어할 수 있다. 크레딧 체커 블록 (404)은, 도 3의 스마트 저장 장치 (302), 도 3의 멀티 기능 저장 장치 (304), 도 3의 감지 장치 (306), 도 3의 프로세싱 허브 (308), 혹은 그것들의 조합을 포함하는 데이터 제공자 (116)에서, 계산하거나, 제어할 수 있다.
크레딧 체커 블록 (404)은 입출력 (IO) 읽기/쓰기 요청을 갖는 프로세싱 요청 (112)의 계류중인 인스턴스들을 우선하기 위한, 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다. 크레딧 체커 블록 (404)은, 요청 호스트 (316) 및 요청 호스트 (316)을 위한 계산된 버짓에 따라 프로세싱 요청 (112)의 계류중인 인스턴스들을 우선시할 수 있다.
크레딧 체커 블록 (404)은 도 3의 프로세싱 세그먼트 (312)을 위한 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다. 크레딧 체커 블록 (404)은 프로세싱 요청 (112)의 처리를 위한 프로세싱 세그먼트 (312)의 인스턴스에 대응하는 전체 리소스들 (120)의 분할을 제어하기 위한, 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다.
크레딧 체커 블록 (404)는 프로세싱 세그먼트 (312)의 각 인스턴스를 위한, 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산하도록 다이나믹 버짓팅 메커니즘 (314)을 사용할 수 있다. 크레딧 체커 블록 (404)은 프로세싱 요청 (112)을 처리하기 위한 프로세싱 세그먼트 (312)의 대응하는 인스턴스들 내에 사용된 리소스들의 양을 제어하거나 제한하거나 혹은 지정하기 위한, 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다.
커맨드 프로세싱 블록 (406)은 대응하는 버짓에 따라 프로세싱 요청 (112)을 처리할 수 있다. 아래에서 이러한 처리에 대하여 자세하게 설명하겠다.
크레딧 체커 블록 (404)은 다음 요구의 예측 혹은 추정에 근거로 하여 인스턴스 버짓 (410), 추가 버짓 (412), 및 그것들의 조합을 계산할 수 있다.
예측 블록 (416)은 요청 호스트 (316)의 하나 이상의 인스턴스들로부터 리소스들을 위한 요구 혹은 요청을 예측하거나 추정하도록 구현될 수 있다. 예측 블록 (416)은 프로세싱 세그먼트 (312)의 현재 인스턴스 혹은 다음 인스턴스를 예측하거나 혹은 추정할 수 있다.
예측 블록 (416)은 소비 예측 (418)을 계산하는 것에 근거로 하여 예측하거나 추정할 수 있다. 소비 예측 (418)은 요청 호스트 (316)의 하나 이상의 인스턴스들로부터 리소스들을 위한 요구 및 요청의 추정일 수 있다. 소비 예측 (418)은 프로세싱 세그먼트 (312)의 현재 인스턴스 혹은 다음 인스턴스를 위한 요구 혹은 요청을 예측할 수 있다.
소비 예측 (418)은 요청 호스트 (316) 혹은 다른 호스트들에 대응하는 인스턴스들로부터 프로세싱 요청 (112)의 현재 혹은 다음 인스턴스를 추정하는 것에 근거로 할 수 있다. 소비 예측 (418)은 인스트럭션들을 남기는 것 혹은 프로세싱 요청 (112)의 현재 인스턴스의 일부들을 처리하는 것에 근거로 할 수 있다.
장치 액세스 크레딧 (420)은 프로세싱 세그먼트 (312)의 이용에 대응할 수 있다. 커맨드 프로세싱 블록 (406)는 시작과 끝 부분과 같이, 프로세싱 세그먼트 (312)의 각 인스턴스를 위한 장치 액세스 크레딧 (420)을 리셋할 수 있다.
예를 들어, 커맨드 프로세싱 블록 (406)은, 요청 호스트 (316)의 대응하는 인스턴스로부터 프로세싱 요청 (112)를처리하기 위하여 프로세싱 리소스 (124)을 추적 하면서 실행되는 커맨드들 혹은 인스트럭션들의 개수를 카운트할 수 있다. 또한, 예를 들어, 커맨드 프로세싱 블록 (406)은 요청 호스트 (316)의 대응하는 인스턴스로부터 프로세싱 요청 (112)를 처리하기 위하여 데이터 리소스 (122)을 추적 하면서 데이터의 대역폭 혹은 전송 비율을 측정할 수 있다.
커맨드 프로세싱 블록 (406)는 요청 호스트 (316)에 대응하는 버짓을 초과하지 않으면서 나머지 혹은 사용된 크레딧들에 근거로 하여 프로세싱 결과 (114)을 발생할 수 있다. 커맨드 프로세싱 블록 (406)은, 장치 액세스 크레딧 (420), 추가 액세스 크레딧 (422), 혹은 그것들의 조합이 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합에 만날 때 처리를 중단할 수 있다.
커맨드 프로세싱 블록 (406)은 정지 점까지의 과정의 출력으로써 처리 결과 (114)를 발생 할 수 있다. 커맨드 프로세싱 블록 (406)은 균형이 버짓의 끝에 도달했는지 여부를 나타내는 크레딧 고갈 상태 (424)를 설정할 수 있다.
커맨드 프로세싱 블록 (406)은 크레딧 체커 블록 (404), 커맨드 컴플리션 블록 (408), 혹은 그것들의 조합에
크레딧 고갈 상태 (424), 크레딧의 양의 나머지 개수, 혹은 그것들의 조합을 통신하거나 패스할 수 있다. 크레딧 체커 블록 (404)은 소비 예측 (418)을 계산하고, 인스턴스 버짓 (410)을 조절하고, 그것들의 조합을 위하여, 크레딧 고갈 상태 (412), 균형, 혹은 그것들의 조합을 이용할 수 있다.
데이터 제공자 (116)에서 균형에 맞게 구현된 버짓은 신뢰성 및 예측 가능성을 증가시키는 것이 밝혀 졌다. 데이터 제공자 (116)는 균형을 반영하여 실제 사용 데이터를 가진 실시간으로 전체 리소스들 (120)을 제어 할 수 있다. 데이터 제공자 (116)에서의 실제 사용 데이터는, 중가 네트워크 컴포넌트 (108) 혹은 제 1 장치 (102)에서 누락하는 통찰력을 줄 수 있다. 균형 및 버짓의 근거로 한 제어는 복수의 호스트들 사이의 충돌을 줄이면서, 이로 인하야 컴퓨팅 시스템 (100)의 신뢰성 및 예측 가능성을 향상시킬 수 있다.
제어 흐름은 커맨드 프로세싱 블록 (406)으로부터 커맨드 컴플리션 블록 (408)로 패스할 수 있다. 제어 흐름은, 장치 액세스 크레딧 (420), 추가 액세스 크레딧 (422), 크레딧 고갈 상태 (424), 혹은 그것들의 조합과 같은 커맨드 프로세싱 블록 (406)의 프로세싱 결과를 이용하는 것을 제외하고, 커맨드 페치 블록 (402) 및 크레딧 체커 블록 (404) 사이에 상술된 바와 같이 패스할 수 있다.
커맨드 컴플리션 블록 (408)는 프로세싱 요청 (112)의 처리를 완료하도록 구현될 수 있다. 커맨드 컴플리션 블록 (408)은 프로세싱 요청 (112)을 발생시킨 요청 호스트 (316)에 대한 프로세싱 결과 (114)을 통신함으로써 완료할 수 있다.
커맨드 컴플리션 블록 (408)은 하나 이상의 크레딧들을 추가로 리턴 할 수 있다. 커맨드 컴플리션 블록 (408)은, 크레딧 체커 블록 (404)에 대하여 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 리턴함으로써, 하나 이상의 크레딧들을 리턴 할 수 있다. 커맨드 컴플리션 블록 (408)은 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합을 재설정함으로써 크레딧을 추가로 리턴 할 수 있다.
커맨드 컴플리션 블록 (408)은 요청 호스트 (316)에 대응하는 인스턴스에 대하여 크레딧 고갈 상태 (424), 균형, 혹은 그것들의 조합을 추가로 패스 하거나 통신할 수 있다. 요청 호스트 (316)는 데이터 제공자 (1160으로부터 크레딧 고갈 상태 (424), 균형, 혹은 그것들의 조합에 근거로 하여 프로세싱 요청 (112)의 연속적인 인스턴스 혹은 다른 임의 처리들을 조절할 수 있다.
버짓, 균형, 크레딧 고갈 상태 (424) 혹은 그것들의 조합과 같은, 데이터 제공자 (116)으로부터 통신에 근거로 한 프로세싱 요청 (112)는 전체 성능의 향상을 제공한다고 밝혀졌다. 데이터 제공자 (116)으로부터 직접적인 피드백은, 버짓팅을 통항 호스트로부터 처리들을 조절하면서, 피드백을 통한 각 호스트에서 처리하는 조절하는데 이용될 수 있다. 다른 호스트들과 함께 데이터 제공자 (116)의 능력에 관한 직접적인 피드백은, 블라인드 시스템 혹은 중간 네트워크 컴포넌트 (108)에 의해 발생된 피드백이 있는 곳으로부터 통찰력을 제공할 수 있다. 이러한 통찰력은 전체 성능 향상을 위해 조절하는데 이용될 수 있다. 추가로 시간에 대한 장치의 효율성도 증대될 수 있다.
크레딧 체커 블록 (404)은 프로세싱 리소스 (124)를 위한 버짓을 계산할 수 있고, 커맨드 카운트 크레딧을 구현 할 수 있다. 데이터 제공자 (116)은 시간의 임의의 지점에서 데이터 제공자 (116)에 의해, 서비스되거나 실행되는 개별 커맨드들의 개수를 제한하거나 제어하도록, 커맨드 카운트 크레딧을 사용할 수 있다. 이 한계에 도달하거나 크레딧이 소진되면 데이터 제공자 (116)는 추가 커맨드 페치 및 처리를 중지 할 수 있다.
커맨드 카운트 크레딧이 허용하거나 호스트가 장치 페치 사이클 이전에 제출된 엔티티(entity)를 위한 PCIe 커맨드들의 만큼, 데이터 제공자 (116)은 엔티티 리스트의 시작을 시작하고 처리할 수 있다. 그 후에, 데이터 제공자 (116)는 커맨드 카운트 크레딧 허용하는 엔티티를 위한 PCIe 커맨드들의 개수만큼 처리하도록 다음 리스트 엔트리에 대한 다음 엔티티로 이동할 수 있다. 데이터 제공자 (116)은 데이터 제공자 (116)이 리스트의 마지막에 도달할 때까지 상술된 과정을 계속할 수 있다. 그 후에, 데이터 제공자 (116)은 반복될 수 있다.
크레딧 체커 블록 (404)은 데이터 리소스 (122)를 위한 버짓을 계산할 수 있다. 크레딧 체커 블록 (404)는기능 혹은 그룹 기능들, 혹은 전제 호스트들, 어플리케이션들, 혹은 장치들, 혹은 그것들의 대응하는 그룹들을 위해 전송된 바이트들의 개수를 제한하기 위하여 데이터 제공자 (116)을 위한 방법을 제공하는 데이터 전송 대역 크레딧을 구현할 수 있다. 이러한 제한은 전송 대역 능력을 위한 경쟁하는 다른 기능들 혹은 그룹들을 위한 커맨드 전송들을 처리하기 위하여 시작되기 전에 부과 될 수 있다.
데이터 제공자 (116)은, 전송 커맨드를 위한 전송 동작을 대기하기 전에, 장치 페치 사이클 이전에 전송 대역 크레딧이 허용하거나 호스트가 제출하는 엔티티를 위한 데이터만큼, 엔티티 리스트의 시작에서 시작하고 전송할 수 있다. 그 후에 데이터 제공자 (116)은 데이터 대역 크레딧이 허용하는 엔티티를 위한 바이트만큼 전송하기 위하여 엔티티 리스트에 대한 다음 엔티티로 이동할 수 있다. 데이터 제공자 (116)은 장치가 리스트의 마지막에 도달할 때까지 과정을 계속할 수 있다. 그 후에, 데이터 제공자 (116)는 반복할 수 있다.
데이터 제공자 (116)은, 전송 커맨드를 위한 전송 동작들을 대기하기 전에, 장치 페치 사이클 이전에 전송 대역 크레딧을 허용하거나 호스트가 제출되는 엔티티를 위한 데이터의 양만큼 엔티티 리스트의 시작에서 시작하고 전송할 수 있다. 그 후에 데이터 제공자 (116)은 전송 대역 크레딧이 허용하는 엔티티를 위한 바이트 개수만큼 전송하기 위하여 엔티티 리스트에 대한 다음 엔티티로 이동할 수 있다. 데이터 제공자 (116)는, 장치가 리스트의 마지막에 도달할 때까지 계속할 수 있다. 그 후에 데이터 제공자 (116)은 반복할 수 있다.
인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것의 조합은, 요청 호스트 (316)을 통한 사용되거나 통신되는 장치들 사이에 정보에서 물리적 변화만큼, 물리 세계에서 물리적 변형을 야기할 수 있다. 물리 세계의 이동은 소비 예측 (418) 혹은 장래 요구들에 업데이트를 야기할 수 있다. 소비 예측 (418) 혹은 장래 요구들은 컴퓨팅 시스템 (100)으로 피드백 될 수 있고, 인스턴스 버짓 (410), 추가 버짓 (412), 혹은 그것들의 조합의 연속적인 인스턴스들을 발생할 수 있다.
컴퓨팅 시스템 (100)은, 일 예로써 모듈의 기능들 혹은 명령들로 설명될 수 있다. 컴퓨팅 시스템 (100)은 서로 다르게 모듈들이 구분될 수 있거나 서로 다르게 모듈들이 주문될 수 있다. 예를 들어, 커맨드 프로세싱 블록 (406) 및 커맨드 컴플리션 블록 (408)은 병합 될 수 있다. 또한 예를 들어, 크레딧 체커 블록 (404)은 버짓을 계산함으로써 초기화될 수 있고, 그 후에 커맨드 페치 블록 (4020)는 프로세싱 요청 (112)를 가져올 수 있다.
또한 예를 들어, 커맨드 컴플리션 블록 (408)은, 크레딧 체커 블록 (404)에 돌아가는 크레딧 혹은 버짓을 리턴할 수 있다. 또한, 예를 들어, 커맨드 페치 블록 (402)은 사용 혹은 균형을 트래킹할 수 있다.
도시된 바와 같이, 컴퓨팅 시스템 (100)은 제어 흐름에 대한 반복적인 방식을 구현할 수 있다. 제어 흐름은 반복적인 방식 동안에 커맨드 페치 블록 (402) 및 크레딧 체커 블록 (404) 사이에서 반복적으로 교환할 수 있다. 제어 흐름은, 호스트들을 식별 및 인터페이스 하기 위하여 호스트들에 따라 전체 리소스들 (120)을 관리하기 위하여, 커맨드 페치 블록 (402) 및 크레딧 체커 블록 (404) 사이에서 반복적으로 교환 할 수 있다.
예시적인 예를 계속하면, 제어 흐름은, 상술된 바와 같이, 크레딧 체커 블록 (404)로부터 커맨드 프로세싱 블록 (406)으로 패스할 수 있다. 제어 흐름은, 호스트들의 공지되거나 식별된 인스턴스들을 처리/카운팅하는만큼 문턱 조건을 만나는 것에 근거로 한 커맨드 프로세싱 블록 (406)에 패스할 수 있다. 제어 흐름은, 반복적인 방법 동안에서 크레딧 체커 블록 (404) 및 커맨드 프로세싱 블록 (406) 사이에 교환할 수 있다. 제어 흐름은 상술된 바와 같이 커맨드 프로세싱 블록 (406)으로부터 커맨드 컴플리션 블록 (408)로부 패스할 수 있다. 제어 흐름은, 결과를 발생하거나 요청에 대응하는 내부 과정을 완료하는 만큼, 문턱 조건을 만족하는 것에 근거로 하여 패스할 수 있다.
예시적인 예를 계속하면, 제어 흐름은, 상술된 바와 같이, 크레딧 체커 블록 (404)으로부터 커맨드 컴플리션 블록 (408)으로 패스할 수 있다. 커맨드 컴플리션 블록 (408)은 결과들을 제공하거나 공지 목적들을 위하여 호스트들과 통신할 수 있다. 크레딧 체커 블록 (404)은 상술된 바와 같이 크레딧들을 처리하거나 업데이트할 수 있고, 반복적인 방법으로 다시 초기화 할 수 있다.
도 5는 본 발명의 실시 예에 따른 도 1의 컴퓨팅 시스템 (100)의 동작의 방법 (500)에 대한 플로우 챠트를 보여주는 도면이다. 도 5를 참조하면, 방법은, 프로세싱 요청에 대응하는 호스트 요청을 나타내는 호스트 프로파일을 판별하는 단계(502); 및 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위한 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트의 인스턴스 버짓을 계산하는 단계(504)를 포함할 수 있다.
블록 (502)은, 연결 식별자, 물리 기능 식별자, 가상 기능 식별자, 혹은 그것들의 조합에 근거로 하여 호스트 프로파일을 판별하는 것을 더 포함할 수 있다.
블록 (504)은, 프로세싱 세그먼트의 다음 인스턴스를 위한 장치 액세스 크레딧을 예측하기 위한 소비 예측을 계산하는 단계; 상기 프로세싱 요청을 소비하기 위한 데이터 제공자를 포함하는 상기 통신 엔드포인트에서 상기 인스턴스 버짓을 계산하는 단계; 상기 연결 식별자, 상기 물리 기능 식별자, 상기 가상 기능 식별자, 혹은 그것들의 조합에 근거로 하여 상기 인스턴스 버짓을 계산하는 단계; 상기 통신 엔드포인트에서 상기 프로세싱 요청을 처리하기 위한 프로세싱 세그먼트의 인스턴스에 대응하는 상기 장치 버짓을 계산하는 단계, 혹은 그것들의 조합을 포함할 수 있다.
결론적인 방법, 과정, 기구, 장치, 제품, 및/혹 시스템은, 간단 비용 효율적인 합병증, 매우 다양한 정확하고, 민감하고, 효과적일 수 있고, 이미, 효율적인 및 경제적인 제조, 응용, 및 활용에 의해 구현될 수 있다. 본 발명의 실시 예의 또 다른 중요한 측면은, 성능을 증가시키면서 비용을 절감하고, 시스템을 간략하게 하는 경향을 제공할 수 있다는 것이다.
이러한 본 발명의 실시 예에 따른 다른 측면은 다음 레벨의 기술 상태를 추가할 수 있다.
상술된 방법 단계들은 입력 데이터에 대해 동작함으로써 및 출력 생성함으로써, 기능들을 수행하기 위한 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 또한, 방법 단계들은, 특수 목적 논리 회로, 예를 들어, FPGA(field programmable gate array) 혹은 ASIC(application-specific integrated circuit)로 구현 될 수 있다.
실시 예에 있어서, 컴퓨터 읽기가능 매체는, 상술된 방법들 중 적어도 일부를 수행하도록 장치를 활성 시키는 인스트럭션들을 포함할 수 있다. 실시 예에 있어서, 컴퓨터 읽기가능 매체는 자기 매체, 광학 매체, 다른 매체, 혹은 이들의 조합에 포함될 수 있다(예를 들어, CD-ROM, 하드 드라이브, 판독 전용 메모리, 플래시 드라이브 등). 실시 예에 있어서, 컴퓨터 읽기가능 매체는 실체하고 비일시적으로 구현된 물품(article)일 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: 컴퓨팅 시스템
102: 제 1 장치
104: 네트워크
106: 제 2 장치
113: 프로세싱 요청
110: 통신 엔드포인트들
114: 프로세싱 결과
116: 데이터 제공자
118: 크레딧 관리 메커니즘
120: 전체 리소스들
122: 데이터 리소스
124: 프로세싱 리소스

Claims (20)

  1. 프로세싱 요청에 대응하는 요청 호스트를 지시하기 위하여 호스트 프로파일을 판별하는 커맨드 페치 블록(command fetch block); 및
    상기 커맨드 페치 블록에 연결되고, 통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓(instance budget)을 계산하는 크레딧 체커 블록(credit checker block)을 포함하는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 크레딧 체커 블록은,
    프로세싱 세그먼트의 다음 인스턴스를 위한 장치 액세스 크레딧(device access credit)을 예측하기 위하여 소비 예측을 계산하고; 및
    상기 소비 예측에 근거로 하여 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 크레딧 체커 블록은 상기 프로세싱 요청을 소비하기 위한 데이터 제공자를 갖는 상기 통신 엔드포인트에서 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 커맨드 페치 블록은, 상기 요청 호스트를 지시하기 위하여, 연결 식별자(connection identifier), 물리 기능 식별자(physical function identifier), 및 가상 기능 식별자(virtual function identifier) 중 적어도 하나를 포함하는 상기 호스트 프로파일을 판별하도록 구현되고; 및
    상기 크레딧 체커 블록은, 상기 연결 식별자, 상기 물리 기능 식별자, 및 상기 가상 기능 식별자 중 적어도 하나에 근거로 하여 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 크레딧 체커 블록은 상기 통신 엔드포인트에서 상기 프로세싱 요청을 처리하기 위하여 프로세싱 세그먼트에 대응하는 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  6. 제 1 항에 있어서,
    상기 커맨드 페치 블록은 상기 요청 호스트로부터 상기 프로세싱 요청을 처리하기 위하여 상기 통신 엔드포인트에서 상기 프로세싱 요청을 수신하도록 구현되고;
    상기 크레딧 체커 블록은 상기 프로세싱 요청에 근거로 하여 프로세싱 세그먼트를 위한 상기 인스턴스 버짓을 계산하도록 구현되고; 및
    상기 커맨드 페치 블록에 연결되고, 상기 프로세싱 요청에 응답하여 상기 인스턴스 버짓에 따라 상기 통신 엔드포인트에서 프로세싱 결과를 발생하는 커맨드 처리 블록을 더 포함하고,
    상기 프로세싱 결과는 상기 프로세싱 세그먼트에 대응하는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 크레딧 체커 블록은,
    상기 프로세싱 세그먼트을 위한 장치 액세스 크레딧을 예측하기 위하여 상기 호스트 프로파일, 및 상기 프로세싱 요청 중 적어도 하나를 근거로 하여 소비 예측을 계산하고; 및
    상기 소비 예측에 근거로 하여 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  8. 제 6 항에 있어서,
    상기 크레딧 체커 블록은, 상기 프로세싱 결과를 위하여 상기 프로세싱 요청을 소비하기 위한 스마트 저장 장치를 갖는 상기 통신 엔드포인트에서 상기 인스턴스 버짓을 계산하도록 구현되는 컴퓨팅 시스템.
  9. 제 6 항에 있어서,
    상기 커맨드 프로세싱 블록은,
    상기 요청 호스트를 위하여 이용된 상기 전체 리소스를 지시하기 위한 장치 액세스 크레딧을 계산하고; 및
    상기 인스턴스 버짓을 초과하지 않는 상기 액세스 크레딧을 갖는 상기 프로세싱 결과를 발생하도록 구현되는 컴퓨팅 시스템.
  10. 제 6 항에 있어서,
    상기 커맨드 프로세싱 블록은,
    상기 프로세싱 세그먼트 동안에 상기 요청 호스트를 위하여 이용된 상기 전체 리소스를 지시하기 위한 상기 프로세싱 세그먼트에 대응하는 장치 액세스 크레딧을 계산하고; 및
    상기 프로세싱 세그먼트의 각각의 인스턴스를 위한 상기 장치 액세스 크레딧을 리셋하도록 구현되는 컴퓨팅 시스템.
  11. 컴퓨팅 시스템의 동작 방법에 있어서:
    프로세싱 요청에 대응하는 요청 호스트의 지시하기 위한 호스트 프로파일을 판별하는 단계; 및
    통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓을 계산하는 단계를 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는,
    프로세싱 세그먼트의 다음 인스턴스를 위한 장치 액세스 크레딧을 예측하기 위하여 소비 예측을 계산하는 단계; 및
    상기 소비 예측을 근거로 하여 상기 인스턴스 버짓을 계산하는 단계를 포함하는 방법.
  13. 제 11 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는,
    상기 프로세싱 요청을 소비하기 위한 데이터 제공자를 갖는 상기 통신 엔드포인트에서 상기 인스턴스 버짓을 계산하는 단계를 포함하는 방법.
  14. 제 11 항에 있어서,
    상기 호스트 프로파일을 판별하는 단계는, 상기 호스트를 지시하기 위한 연결 식별자, 물리 기능 식별자, 및 가상 기능 식별자 중 적어도 하나를 갖는 상기 호스트 프로파일을 판별하는 단계를 포함하고; 및
    상기 인스턴스 버짓을 계산하는 단계는, 상기 연결 식별자, 상기 물리 기능 식별자, 및 상기 가상 기능 식별자 중 적어도 하나를 근거로 하여 상기 인스턴스 버짓을 계산하는 단계를 포함하는 방법.
  15. 제 11 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는, 상기 통신 엔드포인트에서 상기 프로세싱 요청을 처리하기 위한 상기 프로세싱 세그먼트의 인스턴스에 대응하는 상기 인스턴스 버짓을 계산하는 단계를 포함하는 방법.
  16. 프로세싱 요청에 대응하는 요청 호스트의 지시하기 위한 호스트 프로파일을 판별하는 단계; 및
    통신 엔드포인트에서 상기 프로세싱 요청을 제어하기 위하여 상기 통신 엔드포인트의 전체 리소스로부터 상기 통신 엔드포인트에서의 인스턴스 버짓을 계산하는 단계를 수행하는 컴퓨팅 시스템을 위한 인스트럭션들을 갖는 비일시적 컴퓨터 읽기가능 매체.
  17. 제 16 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는,
    프로세싱 세그먼트의 다음 인스턴스를 위한 장치 액세스 크레딧을 예측하기 위하여 소비 예측을 계산하는 단계; 및
    상기 소비 예측을 근거로 하여 상기 인스턴스 버짓을 계산하는 단계를 포함하는 비일시적 컴퓨터 읽기가능 매체.
  18. 제 16 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는,
    상기 프로세싱 요청을 소비하기 위한 데이터 제공자를 갖는 상기 통신 엔드포인트에서 상기 인스턴스 버짓을 계산하는 단계를 포함하는 비일시적 컴퓨터 읽기 가능 매체.
  19. 제 16 항에 있어서,
    상기 호스트 프로파일을 판별하는 단계는, 상기 호스트를 지시하기 위한 연결 식별자, 물리 기능 식별자, 및 가상 기능 식별자 중 적어도 하나를 갖는 상기 호스트 프로파일을 판별하는 단계를 포함하고; 및
    상기 인스턴스 버짓을 계산하는 단계는, 상기 연결 식별자, 상기 물리 기능 식별자, 및 상기 가상 기능 식별자 중 적어도 하나를 근거로 하여 상기 인스턴스 버짓을 계산하는 단계를 포함하는 비일시적 컴퓨터 읽기가능 매체.
  20. 제 16 항에 있어서,
    상기 인스턴스 버짓을 계산하는 단계는, 상기 통신 엔드포인트에서 상기 프로세싱 요청을 처리하기 위한 상기 프로세싱 세그먼트의 인스턴스에 대응하는 상기 인스턴스 버짓을 계산하는 단계를 포함하는 비일시적 컴퓨터 읽기가능 매체.
KR1020160047061A 2015-07-10 2016-04-18 컴퓨팅 시스템 및 그것의 리소스 관리 방법 KR102362687B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562190897P 2015-07-10 2015-07-10
US62/190,897 2015-07-10
US14/849,202 US10296383B2 (en) 2015-07-10 2015-09-09 Computing system with resource management mechanism and method of operation thereof
US14/849,202 2015-09-09

Publications (2)

Publication Number Publication Date
KR20170007095A true KR20170007095A (ko) 2017-01-18
KR102362687B1 KR102362687B1 (ko) 2022-02-14

Family

ID=57730981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160047061A KR102362687B1 (ko) 2015-07-10 2016-04-18 컴퓨팅 시스템 및 그것의 리소스 관리 방법

Country Status (4)

Country Link
US (3) US10296383B2 (ko)
JP (1) JP2017021798A (ko)
KR (1) KR102362687B1 (ko)
CN (1) CN106339052B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154213B1 (ko) 2020-04-06 2020-09-09 임대규 수중발파 작업용 작업대

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5963997B1 (ja) * 2015-06-26 2016-08-03 株式会社三井住友銀行 ストラクチャードファイナンスの与信管理のための銀行システム、方法およびプログラム
JP6596752B2 (ja) * 2016-06-24 2019-10-30 本田技研工業株式会社 車体下部構造
CN111382163B (zh) * 2018-12-27 2023-03-21 技嘉科技股份有限公司 效能管理系统、提供和更新效能参数的方法及存储媒体
US11748285B1 (en) * 2019-06-25 2023-09-05 Amazon Technologies, Inc. Transaction ordering management
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
US11620053B2 (en) * 2019-10-24 2023-04-04 Micron Technology, Inc. Quality of service for the multiple functions in memory devices
US20220318044A1 (en) * 2021-03-31 2022-10-06 Nutanix, Inc. Load balancing virtual computing instances associated with virtual graphics processing units
US20220407931A1 (en) * 2021-06-17 2022-12-22 EMC IP Holding Company LLC Method to provide sla based access to cloud data in backup servers with multi cloud storage
US20240202030A1 (en) * 2022-12-14 2024-06-20 Micron Technology, Inc. Proportional performance metric control for physical functions of a memory device
CN117539613B (zh) * 2023-09-27 2024-05-17 上海麦杰科技股份有限公司广州分公司 一种在分布式计算系统中管理共享资源方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060093650A (ko) * 2005-02-22 2006-08-25 마이크로소프트 코포레이션 리소스 관리를 위한 방법 및 시스템
KR20100075458A (ko) * 2007-09-27 2010-07-02 마이크로소프트 코포레이션 서비스 지향 파이프라인 기반 아키택쳐
US20120166690A1 (en) * 2010-12-28 2012-06-28 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
US20140108776A1 (en) * 2011-06-21 2014-04-17 Fujitsu Limited Information processing apparatus, virtual machine management method, and virtual machine management program
WO2015138152A1 (en) * 2014-03-10 2015-09-17 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484235B1 (en) 1999-05-03 2002-11-19 3Ware, Inc. Methods and systems for dynamically distributing disk array data accesses
CN1677956A (zh) 2004-03-31 2005-10-05 松下电器产业株式会社 资源管理装置、资源管理系统以及资源管理方法
JP2006235960A (ja) 2005-02-24 2006-09-07 Fujitsu Ltd ガーベッジコレクション高速化方法
US7478178B2 (en) 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7675929B1 (en) 2006-01-03 2010-03-09 Emc Corporation Method and system for managing data flow in a data transmission system
US8087026B2 (en) * 2006-04-27 2011-12-27 International Business Machines Corporation Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US7698251B2 (en) 2006-04-27 2010-04-13 International Business Machines Corporation Fault tolerant facility for the aggregation of data from multiple processing units
US8205205B2 (en) * 2007-03-16 2012-06-19 Sap Ag Multi-objective allocation of computational jobs in client-server or hosting environments
US8139575B2 (en) 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
US7869356B2 (en) * 2007-12-18 2011-01-11 Plx Technology, Inc. Dynamic buffer pool in PCIExpress switches
CN100570569C (zh) * 2008-06-13 2009-12-16 南京邮电大学 网格计算环境下的作业跨域控制方法
US8247000B2 (en) * 2009-04-10 2012-08-21 Cypress Pharmaceutical, Inc. Phosphate-binding magnesium salts and uses thereof
US8589936B2 (en) * 2010-03-16 2013-11-19 Alcatel Lucent Method and apparatus for managing reallocation of system resources
JPWO2012020544A1 (ja) 2010-08-11 2013-10-28 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
US8818276B2 (en) * 2012-05-16 2014-08-26 Nokia Corporation Method, apparatus, and computer program product for controlling network access to guest apparatus based on presence of hosting apparatus
CN103092699A (zh) * 2013-01-10 2013-05-08 中国南方电网有限责任公司超高压输电公司 一种云计算资源预分配实现方法
US10574748B2 (en) * 2013-03-21 2020-02-25 Infosys Limited Systems and methods for allocating one or more resources in a composite cloud environment
US9756361B2 (en) * 2014-07-25 2017-09-05 Verizon Patent And Licensing Inc. On-demand load balancer and virtual live slicer server farm for program ingest
CN105743808B (zh) * 2014-12-08 2017-09-19 华为技术有限公司 一种适配QoS的方法和装置
US9459905B2 (en) * 2014-12-16 2016-10-04 International Business Machines Corporation Implementing dynamic SRIOV virtual function resizing
US10114675B2 (en) * 2015-03-31 2018-10-30 Toshiba Memory Corporation Apparatus and method of managing shared resources in achieving IO virtualization in a storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060093650A (ko) * 2005-02-22 2006-08-25 마이크로소프트 코포레이션 리소스 관리를 위한 방법 및 시스템
KR20100075458A (ko) * 2007-09-27 2010-07-02 마이크로소프트 코포레이션 서비스 지향 파이프라인 기반 아키택쳐
US20120166690A1 (en) * 2010-12-28 2012-06-28 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
US20140108776A1 (en) * 2011-06-21 2014-04-17 Fujitsu Limited Information processing apparatus, virtual machine management method, and virtual machine management program
WO2015138152A1 (en) * 2014-03-10 2015-09-17 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154213B1 (ko) 2020-04-06 2020-09-09 임대규 수중발파 작업용 작업대

Also Published As

Publication number Publication date
CN106339052B (zh) 2021-04-06
US11995465B2 (en) 2024-05-28
US10296383B2 (en) 2019-05-21
US20220027196A1 (en) 2022-01-27
US20190220313A1 (en) 2019-07-18
KR102362687B1 (ko) 2022-02-14
US20170010916A1 (en) 2017-01-12
JP2017021798A (ja) 2017-01-26
US11144351B2 (en) 2021-10-12
CN106339052A (zh) 2017-01-18

Similar Documents

Publication Publication Date Title
US11995465B2 (en) Computing system with resource management mechanism and method of operation thereof
US11128555B2 (en) Methods and apparatus for SDI support for automatic and transparent migration
US11799952B2 (en) Computing resource discovery and allocation
US20140289413A1 (en) Automatic resource balancing for multi-device applications
US11030136B2 (en) Memory access optimization for an I/O adapter in a processor complex
US10541878B2 (en) Client-space network monitoring
JP7217580B2 (ja) コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理
JP2016530591A (ja) 非定常データの凝集クラスタリングのための並列化方法
US20220224762A1 (en) Queuing control for distributed compute network orchestration
KR20220047408A (ko) 무선 네트워크들에서의 모델 지원 심층 강화 학습 기반 스케줄링
US10917496B2 (en) Networked storage architecture
JP6331944B2 (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
US9065829B2 (en) Automatic resource balancing for multi-device applications
US11856062B2 (en) Multi-device connection management
US11842213B2 (en) Cooling-power-utilization-based workload allocation system
US11340950B2 (en) Service band management system
US11106614B2 (en) Asymmetric logical unit access path selection system
US10158544B2 (en) Selecting communication channels based on categorizations and measurements
US20240231912A1 (en) Resource-capability-and-connectivity-based workload performance improvement system
US20240231936A1 (en) Resource-capability-and-connectivity-based workload performance system
US12067248B2 (en) Tiered memory fabric workload performance optimization system

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