KR102014721B1 - 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처 - Google Patents

어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처 Download PDF

Info

Publication number
KR102014721B1
KR102014721B1 KR1020130010056A KR20130010056A KR102014721B1 KR 102014721 B1 KR102014721 B1 KR 102014721B1 KR 1020130010056 A KR1020130010056 A KR 1020130010056A KR 20130010056 A KR20130010056 A KR 20130010056A KR 102014721 B1 KR102014721 B1 KR 102014721B1
Authority
KR
South Korea
Prior art keywords
hardware
service level
application
delete delete
hardware configuration
Prior art date
Application number
KR1020130010056A
Other languages
English (en)
Other versions
KR20140096897A (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 삼성전자 주식회사
Priority to KR1020130010056A priority Critical patent/KR102014721B1/ko
Publication of KR20140096897A publication Critical patent/KR20140096897A/ko
Application granted granted Critical
Publication of KR102014721B1 publication Critical patent/KR102014721B1/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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

인프라스트럭처 기술 언어(Infrastructure Description Language)는 서비스 레벨 암시정보(SLH: Service Level Hints)와 서비스 레벨 요구(SLR: Service Level Requirement)을 포함한다. SLH 와 SLR 은 SLH와 SLR에 기반하여 하드웨어 구성을 중개(broker)하려는 지능적 구성자(configurator)를 포함하는 컴퓨팅 시스템에서 적어도 하나의 하드웨어 리소스를 구성하기 위해 사용된다.

Description

어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처{Programmable intelligent storage architecture based on application and business requirements}
어플리케이션 특성과 비즈니스 요구에 기반하여, 구성가능한 하드웨어(configurable hardware) 컴포넌트의 동작을 지시하는 컨트롤러에 명령을 제공하기 위한 인프라스트럭처 기술 언어(infrastructure description language)의 사용과 일반적으로 관련된다. 더 상세하게는, 정적이거나 동적인 개념에 기반하여 하드웨어의 퍼포먼스, 파워, 내구력(endurance), 확장성(scalability) 그리고 비용을 조절하는 구성가능한 하드웨어(configurable hardware)에 대한 정보를 제공하여 소프트웨어 개발자와 관리자들에게 가까워지도록 한다.
범위가 스마트폰에서 엔터프라이즈 서버(enterprise server)까지 이르는 컴퓨팅 시스템은 서비스의 양과 질 사이에서 모순적인 디자인 요구와 마주하고 있다. 더 낮은 비용을 위해, 제조사들이 하드웨어 컴포넌츠와 디바이스를 디자인하거나 제작하는 동안에, 그 제조사들은 사용자들과 그 어플리케이션 요구를 "인위적으로 일반화도록" 강요받는다.
한가지 가능한 해결책은 하드웨어 단계에서 시스템 (제품)의 컴포넌트를 재구성하는 것이다. 그러나, 관습적으로, 한 번의 하드웨어 구성(configuration)은 관리자에 의해 설정되고 장기간동안 사용된다. 예를 들면, 대규모의 데이터 스토리지 시스템을 고려해보자. 데이터 센터(data center)가 모든 우리 삶의 많은 양상들을 관리할 때, 그 데이터 센터는 오늘날 인간 문명에 중요한 역할을 한다. 이 데이터 센터에서 동작하는 어플리케이션은 데이터 스토리지 하부 시스템(subsystem)에서 다른 종류의 입출력을 수행한다. 예를 들면, 대규모의 소셜 네트워킹 사이트(social networking site)는 그 데이터베이스에 1초에 약 1억 2천만 쿼리(query)를 수행할 수도 있다. (데이터를 읽거나 데이터를 갱신하는) 데이터 스토리지 동작은, 비즈니스가 그 경쟁력을 유지할 수 있도록 순간의 레이턴시(latency)를 면하여 최대의 퍼포먼스를 보증한다. 대부분의 경우에는, 각 데이터 스토리지 동작은 최대의 퍼포먼스를 얻기 위해 스토리지 하부시스템(subsystem)의 다른 구성(configuration)을 요구할 것이다.
데이터 센터의 관리자는 보통, 에너지 비용, 퍼포먼스, 용량(capacity)을 최적화하기 위해 (CPU와 같은 스토리지 시스템과 데이터 처리 구성요소와, 데이터 센터 내에 있는 네트워킹을 포함하는) 그 데이터 센터 인프라스트럭처에 대한 한 번의 구성을 설정하도록 강요된다. 한 실시예로써, 하드웨어는 퍼포먼스 능력의 피해 없이, 에너지 절약을 최적화하도록 구성될 수 있다. 실제로, 유발되는 문제는, 장기간의 사용 평균에 기반한 구성 설정은 런타임동안 소프트웨어에 의해 수행되는 모든 동작에 대해서 더 짧은 시간 동안에는 동작을 잘 하지 않을 수 있다는 것이다.
선행기술에 하드웨어를 동적으로 설정하는 것에 대해서는 만족할만한 해결책은 없다. 주어진 짧은 순간에 런타임에 가담하고 있는 다수의 어플리케이션에 대한 제한된 지식 때문에, 하드웨어만의 해결책으로는 그 문제를 해결할 수 없다. 그 결과, 많은 상황에서 관리자에 의해 확립된 하드웨어 구성 설정(configuration setting)은 최적 이하의 결과를 생산한다. 읽거나 쓰는 동작 종류와, 4 바이트나 4 킬로 바이트나 4 메가 바이트와 같은 액세스의 입도(粒度)(granularity of access)와, 랜덤이나 시퀀셜(sequential)과 같은 액세스 종류와, 메모리 또는 SSD 등과 같은 스토리지 미디어/시스템의 종류와 같은 소프트웨어의 런타임동안 몇몇의 알려지지 않은 것에 기반한 스토리지 하부시스템(subsystem)에서, 다른 인프라스트럭처 구성(infrastructure configuration)은 필수적이다. 데이터 센터에서 다른 최적의 런타임 구성을 요청하는 소프트웨어 요구에 추가하여, 비즈니스나 정치 요구는 에너지 비용, 퍼포먼스, 용량(capacity) 등에서 최적화/우선시되는 곳에 기반하는 다른 데이터 센터 구성을 명령할 수 있다.
하드웨어의 단계에서 시스템의 컴포넌트를 재구성하여, 최대의 성능을 얻기 위한 방법이나 기술을 제공하기 위한 것이다. 또한 소프트웨어 개발자의 관점을 하드웨어의 구성에도 고려함으로써, 퍼포먼스를 향상시키는 기술이 개시된다.
인프라스트럭처 기술 언어(IDL: Infrastructure Description Language)는 구성가능한 하드웨어 인프라스트럭처의 구성을 중개(broker)하기 위해 마스터 컨트롤러에게 명령을 제공한다. IDL은 어플리케이션 수행에 대한 최적의 하드웨어 구성에 영향을 줄 것 같은 어플리케이션 특성에 관한 정보를 제공하는 서비스 레벨 암시정보(SLH: Service Level Hints)를 포함한다. IDL은 또한 사용자나 관리자의 하드웨어 최적화 표준을 반영하는 서비스 레벨 요구(SLR: Service Level Requirements)를 포함한다. 마스터 컨트롤러는 SLH와 SLR에 기반한 하드웨어 구성을 중개(broker)한다.
일 실시예는 어플리케이션과, 그 어플리케이션에 대한 암시정보(SLH: Service Level Hint)를 포함하는 컴퓨터 프로그램 제품이다.
또 다른 실시예는 어플리케이션의 하드웨어 구성을 정하기 위해 SLH와 SLR를 수신하고, 그 SLH와 SLR을 사용하는 방법에 대한 것이다.
또 다른 실시예는 어플리케이션에 대해 SLH와 SLR를 모니터하고, 하드웨어 구성을 정하도록 구성되는 프로세서와 메모리를 가진 컴퓨팅 시스템이다. 일 동작 실시예에 있어서 컴퓨팅 시스템온칩(system on a chip)으로 구현된다. 컴퓨팅 시스템은 또한 서버나 모바일 기기에 대해 지능형 스토리지로 구현될 수 있다.
하드웨어 단계에서 시스템의 컴포넌트를 재구성함으로써, 어플리케이션 소프트웨어에 대한 사용자들과 제조사들 간의 논쟁을 줄일 수 있는 효과가 있다.
또한, 소프트웨어적인 집중되어있는 관점을 하드웨어적인 측면으로도 향상시켜, 더 높은 퍼포먼스를 얻을 수 있다. 예컨대 퍼포먼스의 피해 없이, 에너지 절약을 최적화하도록 구성할 수 있다.
도 1은 일 실시예에 따른 하드웨어 컴포넌트를 구성하기 위한 인프라스트럭처 기술 언어(Infrastructure Description Language)를 사용하는 컴퓨팅 시스템을 나타낸 도면이다.
도 2는 일 실시예에 따른 인프라스트럭처 기술 언어(Infrastructure Description Language)를 사용하는 방법에 대한 고급 흐름도이다.
도 3은 일 실시예에 따른 인프라스트럭처 기술 언어의 사용 예에 대한 흐름도이다.
도 4는 다른 실시예에 따른 인프라스트럭처 기술 언어의 사용 예에 대한 흐름도이다.
도 5는 또 다른 실시예에 따른 인프라스트럭처 기술 언어의 사용 예에 대한 흐름도이다.
도 6은 일 실시예에 따른 인프라스트럭처 기술 언어를 구현하는 시스템에서 사용하기 위한 지능형 스토리지 모듈(intelligent storage module)을 나타낸 도면이다.
도 7은 일 실시예에 따른 인프라스트럭처 기술 언어를 수행하는 지능형 스토리지 시스템을 나타낸 도면이다.
도 1은 일 실시예에 따른 컴퓨팅 시스템(100)을 나타낸 도면이다. 컴퓨팅 시스템(100)은 적어도 하나의 구성가능한 컴포넌트와 함께 하드웨어 인프라스트럭처(102)를 포함한다. 예를 들면, 인프라스트럭처는 프로그램 가능한 메모리 컨트롤러(112)와 함께 CPU(104), 내부 결선(interconnect)(106), 디스플레이(108)와 메모리(110)를 포함할 수 있다. 마스터 컨트롤러(120)는 CPU(104), 메모리(110), 내부 결선(interconnect)(106)과 디스플레이(108)와 같은 목표 장치(target device)와 연결하는 (도시되지 않은) 컨트롤러 게이트웨이 레이어를 포함한다. 마스터 컨트롤러(120)는 인프라스터럭처 기술 언어(IDL: Infrastructure Description Language)(130)로부터의 명령에 기반하여 지능형 하드웨어 구성을 수행한다. IDL은 하드웨어 인프라스트럭처(102)가 어플리케이션 레벨 프로파일(application level profile)이나 동적인 엑세스 패턴에 기반하여 지능적으로 구성될 수 있는 전용 브로커링(ASB: Application Specific Brokering)을 가능하게 한다.
구성가능한 하드웨어 컴포넌트는 퍼포먼스, 파워, 지속성, 확장성, 비용과 같은 트레이드오프(tradeoff)를 가능하게 한다. 따라서, 예를 들면 CPU(104)는 클록비(clock rate) 그리고/또는 전압과 같은 파라미터를 조절하기 위한 세팅을 포함할 수 있다. 메모리 컨트롤러(112)는 스케줄링이나 매핑 당 적어도 하나 이상의 구성가능한 세팅을 포함한다고 규정될 수 있다. 내부 결선(interconnect)(106)은 파워와 대역폭/속도 사이에서의 트레이드오프(tradeoff)를 위해 구성가능한(configurable) 세팅과 같은, 구성가능한 인터커넥트(interconnect) 설정을 포함할 수 있다. 디스플레이(108)는 또한 파워와 디스플레이 퍼포먼스와 같은 구성가능한 하드웨어 세팅을 포함할 수 있다.
IDL은 하드웨어 환경구성을 최적화하는 방법에 관해 런타임동안 결정을 하는데 사용될 수 있는 정보를 제공하기 위해 서비스 레벨 암시정보(SLH: service level hints)(132)와 서비스 레벨 요구사항(SLR: service level requirements)(134)를 포함하는 새로운 언어(또는 포맷)이다. 이것은 다음에 후술 되는 것을 포함한다.
1. 어플리케이션 특성에 관한 프로그래머의 이해에 기반하여 수행 인프라스트럭처 구성에 있어서 힌트를 줄 수 있는 SLH의 어플리케이션 코드.
2. 하드웨어 사양과 사용자 우선권(priority)과 같은 요소를 포함하여 요구나 가중된 우선권에 기반하여 최적화하기 위해 런타임동안 사용될 수 있는 비즈니스/관리자 요구로써 SLR에 대한 어플리케이션 코드.
SLH(132)와 SLR(134)은 정적이거나 동적인 명령으로 수행될 수 있다. 정적 명령의 경우에는, SLH 또는 SLR은 어플리케이션 수행 동안에 설정된다. 일 동작 실시예에 있어서, 정적 SLH 명령은 프로파일 정보로써 저장된다. 예를 들면, 정적 SLH 명령은 어플리케이션을 위한 프로파일 정보로써 저장될 수 있다. 동적 SLH에 대해, 프로그램 수행 동안 특정한 위상이나 중요한 시간 동안 코드가 수행될 것인가를 어떻게 개발자가 이해하는 것인가에 관하여, 소프트웨어 개발자는 암시정보를 제공할 수 있다. 더 일반적으로 SLR이 동적 관리자 참조(예를 들면, 퍼포먼스와 파워 사이의 트레이드오프에 관한 시변 서비스 레벨 요구사항)와 같은 프로그램 수행 동안 조절될 수 있지만, SLR은 전형적으로 정적 명령으로 수행될 것이다.
서비스 레벨 암시정보(SLH: Service Level Hint)는 개발 시간 동안 어플리케이션 소프트웨어로 소프트웨어 구조나 그 개발자에 의해 제공된다. SLH의 초점은 소프트웨어가 런타임동안 무엇을 할 것인가에 관한 소프트웨어 개발자들의 관점을 하드웨어 인프라스트럭처(102)에 제공한다는 것에 있다. 일 실시예에 있어서, SLH는 인프라스트럭처에 영향을 받지않는 암시정보로 표현된다. 소프트웨어 개발자들을 편하게 해주기 위해, SLH는 어떻게 어플리케이션이 하드웨어 인프라스트럭처(102)와 상호교류하는가에 영향을 줄 수 있는 어플리케이션 특성의 암시정보일 뿐이고, 그래서 프로그래머가 암시정보의 적법성을 보증할 필요가 없다. 고성능(high-performance) 엔터프라이즈 코드나 모바일 어플리케이션 소프트웨어를 쓰는 개발자는 그 코드 도처에 SLH를 쓸 수 있고 그래서 소프트웨어 런타임은 적합하게 최적화된다. 또 다른 예로서, 스토리지나 네트워크에 있는 데이터 센터 동작이 시작되기 전에 소프트웨어 개발자들은 SLH 정보를 제공할 수 있다.
예를 들면, SLH는 특정한 시간대 동안 또는 다음 SLH까지, 알맞은 하드웨어 인프라스트럭처 활용 패턴에 관해 소프트웨어 개발자의 관점을 제공할 수 있다. SLH(132) 의 실례는 다음을 포함할 수 있다.
1) 다음 SLH가 제공될 때까지 4KB 크기로 랜덤 입출력 읽기(random IO read)의 90% 가능성이 있다.
2) 수행이 끝날 때까지, 또는 다음 SLH까지 대규모 순차기록(Large Sequential write)은 100% 가능성이 있다.
3) 네트워크는 다음 3분 동안 작은 양의 데이터 전송을 위해 사용될 것이다.
4) 네트워크나 입출력 동작은 다음 SLH까지 발생하지 않을 것이다.
하지만 이에 한정되는 것은 아니다.
서비스 레벨 요구사항(SLR: Service Level Requirement)(134)은 퍼포먼스, 파워, 지속성, 확장성과 비용사이의 트레이드오프(tradeoff)에 대한 요구를 설정하는데 사용된다. SLR은 데이터 센터 인프라스트럭처의 비즈니스나 정책 결정자들과 관리자들 같은 사용자 우선권(user priority)에 기반할 수 있다. 개별적인 하드웨어 요소의 레벨에 있어서, 랜덤 입출력 퍼포먼스와 순차적인 입출력 퍼포먼스의 프로그램 가능한 메모리에서의 트레이드오프와 같이, 입도(粒度)(granularity)의 더 조밀한 레벨에서도 트레이드오프가 있다. 따라서, SLR은 특정한 가중 우선권을 최적화 목표에 부여하는 최적화와 같은, 특정한 최적화 트레이드오프를 수행하는 요구에 해당할 수 있다. SLR의 예는 랜덤 입출력 퍼포먼스에 대해 90% 가중치/우선권과, 에너지에 대한 10% 우선권으로 최적화하는 것과, 순차적인 입출력 퍼포먼스에 대해 50% 가중치/우선권과, 기기의 지속성에 대한 10% 우선권으로 최적화하는 것을 포함한다. 하지만 이에 한정되는 것은 아니다.
마스터 컨트롤러(120)는 중개(broker) 기능을 수행하는 소프트웨어와 하드웨어의 조합으로 수행될 수 있다. 이것은 하드웨어 컴포넌트(124)와 소프트웨어 컴포넌트(126)를 포함하는 브로커 모듈(122)을 포함한다. 즉, 마스터 컨트롤러(120)는 서비스 레벨 암시정보(SLH: Service Level Hint) 와 서비스 레벨 요구사항(SLR: Service Level Requirement)을 받고 그리고나서 런타임동안 어떻게 하드웨어를 동적으로 구성해야하는가에 대한 결정을 내린다. 일 동작 실시예에 있어서, 컨트롤러(120)는 퍼지 논리에 기초한 중개(broker) 기능에 기반하여 결정을 내린다. 그러나, 더 일반적으로, 브로커 모듈(122)은, 하드웨어 인프라스트럭처(102)의 실제 하드웨어 용량과, 컨트롤러(120)가 용량에 대해 하드웨어로부터 받는 피드백과, 하드웨어 인프라스트럭처(102)의 상태를 고려하여, IDL에서 나온 명령을 SLR과 SLH와 일치하는 하드웨어 구성으로 번역하기 위해 일련의 규칙에 기반한 결정을 내릴 수 있다. 일 동작 실시예에 있어서, 하드웨어에 대한 일련의 N개의 다른 구성은 하드웨어 인프라스트럭처(102)의 하드웨어 용량에 기반하여 미리 지정된다. N은 적어도 2 이상의 양수이다. 일 동작 실시예에 있어서, 브로커 모드(122)는 컨트롤러(120)가 하드웨어로부터 받는 피드백을 고려하여 N개의 각기 다른 미리 지정된 하드웨어 구성으로부터, SLR과 SLH가 가장 일치하는 하나의 구성을 선택한다.
도 2는 발명의 실시예에 따른 고급 처리 흐름도이다. SLH와 SLR 명령은 단계 205에서 런타임동안 모니터된다. 어플리케이션의 하드웨어 구성 단계 210에서 측정이 이루어진다. 그리고나서 하드웨어는 단계 215에서 새로운 구성을 수행하도록 명령된다.
도 3은 SLH의 첫 번째 예를 제공한다. 이 예에서, 소프트웨어 개발자는 단계 305에서 SLH에게 어플리케이션 메모리 액세스 패턴은 랜덤 액세스 메모리 패턴이 프로그램 수행 30분동안 우세할 것 같은 것이라는 암시정보를 제공한다. 그리고나서, 이 암시정보는 알맞은 엑세스 패턴에 대해 하드웨어를 최적화하기 위하여 하드웨어의 레이어를 구성하는 법에 관한 단계 310에서 측정하기 위해 런타임동안 사용된다. 이 예에 있어서, 이것은 단계 315에 있는 스위치의 적은 트래픽과 감소된 버퍼 크기에 대한 프로토콜을 사용하는 분산 모듈 레벨에서와, 그리고 단계 320에서 판독 헤드 동작을 끄고 FIFO 입출력 스케줄러를 사용하는 스토리지 모듈 레벨에서, 그리고 단계 325에서 액세스의 입도(粒度)(granularity)를 매핑하고 감소하여 페이지 레벨을 사용하는 메모리 컨트롤러 레벨에서 포함한다.
도 4는 SLH의 두 번째 예를 나타낸 도면이다. 이 예에서, 프로그래머는 단계 405에서 , 데이터가 연속적으로 엑세스될 것 같은 연말 이벤트에 대한 엑세스 패턴을 프로그래머의 이해에 기반하여 암시정보인 SLH를 제공한다. 그 결과, 이 예에서, SLH는 연속적인 엑세스 SLH에 대해 단계 410에서 특정 하드웨어 구성으로 변환된다. 이 예에서, 단계 415에 있어서, 이것은 스위치에서 폴링 모드(polling mode)를 사용하고 버퍼 크기를 증가시키는 분산 모듈 레벨(distributed module level)에, 그리고 단계 420에서 판독 헤드를 켜고 버스트(burst) 입출력 스케줄러를 사용하는 스토리지 모듈 레벨에, 그리고 단계 425에서 액세스의 입도(粒度)(granularity)를 매핑하고 확장하는 블록-레벨(block-level)을 사용하는 메모리 컨트롤러에서 포함한다.
도 5는 SLR의 첫 번째 예를 나타낸 도면이다. 이 예에서, SLR(505)은 60%의 파워와 40%의 퍼포먼스 최적에 대한 사용자의 가중된 선호도(weighted preference)이다. 하드웨어 레이어를 구성하기 위해 단계 510에서 하드웨어 구성을 결정하는 것이 선호된다.
SLR과 SLH가 주어진 시간에 해당될 수 있기 때문에, 선택된 하드웨어 구성이 SLR에 의해 특정된 우선순위를 고려하고, 그리고 제한적으로 더 나아가 SLH에 기반하여 추가적인 최적화를 고려할 수 있다. 즉 컨트롤러(120)에 의해 수행되는 중개(broker) 기능은 또한 SLH를 고려하는 SLR과 일치하는 하드웨어 구성을 정하는데 있어서 SLR과 SLH 모두를 고려할 수도 있다.
IDL(130)과 마스터 컨트롤러(120)에 의해 제공된 하드웨어-소프트웨어 중개(broker) 기능은 어플리케이션 액세스 패턴, 사용자의 선호와 하드웨어 프로파일을 포함하여 몇몇의 런타임 요소들에 기반한 전자 제품들을 전체론적으로 구성하도록 한다. 하지만 이에 한정되는 것은 아니다. 전형적인 어플리케이션은 모바일 기기, 스토리지 시스템과 시스템온칩(system-on-a-chip) 수행을 포함한다. 몇몇 기기 어플리케이션이 후술 될 것이다.
일 실시예에 있어서, 도 6은 컨트롤러/브로커로써 기능을하는 스토리지 인프라스트럭처 모듈(SIM: Storage Infrastructure Module) 컨트롤러(605)와 지능적 구성자(configurator)를 포함하는 스토리지 인프라스트럭처 모듈(SIM: Storage Infrastructure Module)(600)의 전형적인 실시예를 나타낸 도면이다. SIM(600)은 단일 모듈에서 컴퓨팅하는 모든 기본 요소를 만들어내는 하드웨어 모듈이다. SIM(600)은 모듈에 인프라스트럭처를 컴퓨팅하는 모든 기본 요소를 포함하며, 다음의 사항을 포함한다.
1) 컴퓨팅 동작을 수행하기 위해, CPU, GPU나 ARM 코어 프로세스와 같은 적어도 하나의 프로세서(610),
2) 비휘발성 메모리나 극저온(cryogenic) 메모리같은 메모리(615),
3) 광학이나 전례적으로 와이어된(wired) 실리콘-광자(silicon-photonic) 기술의 형태와 같은 (도시되지는 않음) 내부 인터커넥트(internal Interconnect),
4) 외부 네트워크 인터페이스(620),
5) FPGA 가속기(630)와 같은 논리(logic).
이 예에 있어서, SIM 컨트롤러(605)와 지능적 구성자(intelligent configurator)는 하드웨어 브로커로서 역할을 한다. 추가로, 브로커의 소프트웨어 부분은 SIM(6100)에서 또한 수행될 수 있다. 따라서 이 예에 있어서, IDL은 그 명령에 기반하여 애플리케이션에 대한 IDL을 수행하고 (SOC나 또는 그 SOC에 연결된)하드웨어를 구성하기 위해 모든 하드웨어와 소프트웨어 컴포넌트를 포함하는 시스템온칩(SOC)으로서 수행되는 컴퓨팅 시스템에서 수행된다.
도 7은 일 실시예에 따라 전형적인 플렉서블 엔터프라이즈 스토리지 아키텍처(700)를 나타낸 도면이다. 이 예에서, 데이터 집약적 어플리케이션(data intensive application)(710)은 서비스 레벨 암시정보를 포함하는 데이터 분석 어플리케이션을 포함한다. 분산된 스토리지 미들웨어(middleware)는 페일오버(failover) 매니저, 리퀘스트 분배기(request distributor), 복사본 위치 결정자(replica locator), 데이터 위치 결정자(data locator)와 데이터 추출과 같은 다른 일반적인 미들웨어 모듈을 포함할 수 있다. 브로커 모듈(722)은 또한 관리자로부터 서비스 레벨 요구사항(service level requirement)를 받을 수 있다.
스토리지 노드 하부시스템(73)은 주소 변환기와 이벤트 처리기와 같은 일반적인 스토리지 노드 시스템 모듈을 포함할 수 있는, 하드웨어와 소프트웨어를 포함하는 스토리지 노드 시스템 장치를 포함한다. 추가로, 모듈 이전에 입출력 스케줄러와 캐쉬 판독은 플렉서블 스케줄링/캐쉬 알고리즘을 수행할 수 있다. 스토리지 노드 레벨(740)에서, 스토리지 레벨 브로커 모듈(Storage Level Broker module)(742)은 NAND/PRAM 모듈과 비 휘발성 메모리 모듈과 같은 프로그램 가능한 메모리 컨트롤러와 관련된 메모리 모듈 유닛의 구성을 중개(broker) 할 수 있도록 포함된다.
일 실시 예에 있어서, 어플리케이션은 스마트폰과 같은 모바일 전자 기기를 위한 것이다. 모바일 기기에서 프로그램 가능한 메모리(programmable memory) 컨트롤러는 메모리 설정을 하기 위해 포함될 수 있다. 더 일반적으로, 모바일 기기는 재구성가능한 설정을 포함할 수 있는 CPU와 디스플레이를 포함한다. 추가적으로, 많은 모바일 기기들은 모바일 기기에서 수행되기 위한 다양한 종류의 다른 어플리케이션을 가능하게 한다.
일 실시예에 있어서, 각 모바일 어플리케이션은 그 자체에 대해 SLH를 저장하기 위해 사용되는 프로파일을 가질 수 있다. 예를 들면, 안드로이드 스마트폰에 있어서, 각 어플리케이션에 대한 매니패스트 파일(manifest file)(또는 구성 파일)은 메모리에서 더 많은 산출을 지향하는(throughput oriented) 액세스 패턴과 함께, 어플리케이션이 메모리 집약적 비디오 어플리케이션이라고 언급하는 프로파일을 갖는다. 이 프로파일에 기반한 서비스 레벨 암시정보(SLH: service level hint) 정보는 "정적 SLH(Static SLH)"이다. 정적 SLH를 제외하고, 모바일 기기의 어플리케이션은 또한 런타임동안 동적 SLH를 사용할 수 있다. 예를 들면, 어플리케이션은 많은 CPU 메모리 데이터 전송을 하려는 암시정보를 제공할 수 있다. 추가로, 모바일 기기는 특정한 "인프라스트럭처 SLR(Service Level Requirements)"의 하드웨어 프로파일에 관한 정보를 포함할 수 있다. 일 실시예에 있어서, 이 정보는 제조사로부터 (모바일 기기가 제조되고 난 후에) 일반적으로 바꾸지 않는 것을 포함할 것이다.
모바일 기기에서, 브로커는 런타임에 가담하는 어플리케이션에 기반하여, 모바일 기기(폰)의 전체적인 하드웨어 시스템을 스스로 구성하는 하드웨어-소프트웨어 컴포넌트이다. 브로커는 SLH와 SLR에 기반하여 메모리, 네트워크 동작과 디스플레이에 대해 각각 가능한 구성을 결정하기 위하여 규칙과 중요도(weight)를 이용한다. 일 예로써, 브로커의 해결방안은 동적으로 사용되어 모바일 기기의 각 어플리케이션에 대한 런타임동안 메모리 스케줄링 알고리즘을 선택하기 위한 DRAM 컨트롤러의 올바른 구성을 고르는 것이다.
퍼지 논리(fuzzy logic) 규칙과 멤버쉽 기능과 다른 사용 시나리오(use scenario)의 한 세트가 시뮬레이트 되었을 때, 모바일 기기에 대한 프로토타입 브로커는 MATLAB 소프트웨어를 사용하여 시뮬레이트 되었다. 퍼지 논리는 각 모바일 어플리케이션에 대한 최적의 메모리 스케줄링 알고리즘의 선택을 결정할 때 사용된다. 브로커는 각 가능한 알고리즘에 대해 "가장_그럴 것 같은(MOST_LIKELY)", "더_그럴 것 같은(MORE_LIKELY)","안_그럴 것 같은(LESS_LIKELY)", 등 (진리값에 대한) 퍼지 멤버쉽 기능을 사용하고, 각 알고리즘에 대해 1과 10 사이의 서열을 매긴다. 최적의 것은 가장 큰 숫자를 갖는다. 그 실험은 퍼포먼스와 파워에 대한 50%:50%의 같은 가중치를 가진 각 메모리 스케줄링 알고리즘의 순위를 예견하기 위해, 브로커가 (극단의 시나리오를 가지고) 테스트 세트 데이터에 대한 100% 옳은 결과를 예견한 것을 입증했다. 브로커에 의해 선택된 메모리 스케줄링 알고리즘과 메모리 어드레스 매핑은 (수공으로) 다양한 종류의 워크로드(workload)와 함께 시뮬레이터로 입력되었다. 각 워크로드는 다른 최적의 어드레스 매핑을 가진다. 전체적인 13개의 워크로드는 다른 시나리오에 대해 시뮬레이트 된다. 메모리 파라미터를 구성하는 메모리라고 정의되는 어플리케이션을 만드는 퍼지 논리(fuzzy-logic)에 기반하는 브로커는 워크로드와 SLR의 성질에 따라 평균적으로 20%에서 50%까지 파워-퍼포먼스 절약을 증대시키기 위한 가능성을 가진다. SLH만 사용하여, 시뮬레이션은 퍼포먼스와 에너지 각각에 대해 16%와 19%가 절약되었다는 결과가 도출되었다.
발명이 특정한 실시예와 함께 설명되는 동안, 발명이 설명된 실시 예에 제한되는 것은 아니다. 반면에, 첨부된 청구항에 의해 정의되는 발명의 범위 내에 포함될 수 있는, 대안과 수정과 동등한 사항을 다루도록 한다. 이러한 약간의 세부사항도 없이 실현될 수 있다. 추가로, 필요치 않게 발명을 애매하게 하는 것을 피하도록, 잘 알려진 특성은 상세히 설명되지 않는다.
컴포넌트, 프로세스 단계 그리고/또는 데이터 스트럭처는 다양한 종류의 운영체제(operating system)와 프로그램 언어, 컴퓨팅 플랫폼, 컴퓨터 프로그램 그리고/또는 범용 머신(generally purpose machine)를 사용하면서 수행될 수 있다. 게다가, 일반적인 선행기술은 고정배선형 (hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(FPGA: Field Programmable Gate Arrays), 주문형반도체(ASIC: Application Specific Integrated Circuit) 등과 같은 적은 일반적인 범용 특성을 가진 (a less general purpose nature)기기는 여기에 개재된 발명 개념(concept)의 범위에서 벗어나지 않고도 사용될 수 있다. 또한 메모리 장치와 같은 비일시적인(non-transitory) 컴퓨터 판독가능 매체에 저장된 일련의 컴퓨터 명령으로 명백하게 구현될 수 있다.
100: 컴퓨팅 시스템
102: 구성 가능한 하드웨어를 가진 인프라스트럭처
104: CPU
106: 내부 결선(interconnect)
108: 디스플레이
110: 메모리
112: 프로그램 가능한 메모리 컨트롤러
120: 마스터 컨트롤러
122: 브로커 모듈
124: 하드웨어 컴포넌트
126: 소프트웨어 컴포넌트
130: 인프라스트럭처 기술 언어(Infrastructure Description Language)
132: 서비스 레벨 암시정보
134: 서비스 레벨 요구사항
600: 스토리지 인프라스트럭처 모듈(SIM: Storage Infrastructure Module)
605: SIM 컨트롤러
610: CPU/ARM/GPU
615: 스토리지(메모리)
620: 네트워크(내부 결선)(interconnect)
630: FPGA(논리)
700: 플렉서블 엔터프라이즈 스토리지 아키텍처
710: 데이터 집약적 어플리케이션(data intensive application)
720: 분산 스토리지 미들웨어 (Hadoop, RAM 클라우드…)
722: 브로커 모듈
730: 스토리지 노드 시스템 S/W
740: 스토리지 노드 레벨
742: 스토리지 레벨 브로커 모듈(Storage Level Broker module)

Claims (22)

  1. 프로세서와, 메모리, 적어도 하나의 구성 가능한 하드웨어 컴포넌트를 포함하는 전자기기를 사용하는 방법으로서,
    상기 프로세서는,
    런타임 환경에서 하드웨어 요구에 영향을 주는 소프트웨어 어플리케이션의 어플리케이션 특성을 나타내는 하나 또는 그 이상의 서비스 레벨 암시정보(SLH: Service Level Hint)와,
    상기 런타임 환경에서 하드웨어 퍼포먼스의 최적에 대한 특정 리퀘스트에 상응하는 하나 또는 그 이상의 서비스 레벨 요구(SLR: Service Level Requirement),
    중 적어도 하나를 나타내는 인프라스트럭처 기술 언어(IDL: Infrastructure Description Language)로 된 명령을 수신하고,
    상기 어플리케이션의 런타임동안,
    상기 명령을 이용하여, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구 중 적어도 하나와 관련된 하드웨어 구성을 획득하고,
    상기 하드웨어 구성에 기초하여, 상기 어플리케이션에 의해 사용되는 적어도 하나의 하드웨어 인프라스트럭처 리소스를 동적으로 구성하는 것을 포함하는 전자기기의 사용 방법.
  2. 제 1 항에 있어서, 상기 명령을 이용하여, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구 중 적어도 하나와 관련된 하드웨어 구성을 획득하는 것은,
    상기 명령을 상기 하드웨어 구성으로 번역함으로써, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구의 조합에 기초한 구성 가능한 하드웨어 인프라스트럭처 리소스 각각에 대한 하드웨어 구성을 중개(brokering)하는 것을 포함하는 상기 전자기기의 사용 방법.
  3. 제 1 항에 있어서, 상기 서비스 레벨 암시정보가 일부 상기 어플리케이션의 어플리케이션 특성과 관련된 동적 SLH를 포함하는 상기 전자기기의 사용 방법.
  4. 제 1 항에 있어서, 상기 어플리케이션에 의해 사용되는 적어도 하나의 하드웨어 인프라스트럭처 리소스를 구성하기 위해 런타임 동안 상기 명령을 사용하는 방법은 SLH 와 SLR의 조합에 기반한 각 구성 가능한 하드웨어 리소스에 대한 구성을 중개(broker)하는 단계를 포함하는 상기 전자기기의 사용 방법.
  5. 컴퓨터 하드웨어와 소프트웨어를 포함하는 컴퓨팅 시스템에 있어서, 상기 컴퓨팅 시스템은:
    런타임 환경에서 하드웨어 요구(hardware requirement)에 영향을 주는 소프트웨어 어플리케이션의 특성을 나타내는 하나 또는 그 이상의 서비스 레벨 암시정보(SLH: Service Level Hints)와,
    런타임 환경에서 하드웨어 퍼포먼스 최적화의 특정 리퀘스트에 상응하는 하나 또는 그 이상의 서비스 레벨 요구(SLR: Service Level Requirements)를
    포함하는 어플리케이션에 대한 명령을 모니터하는 마스터 컨트롤러를 포함하며;
    상기 마스터 컨트롤러는,
    상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구 중 적어도 하나와 관련된 하드웨어 구성을 획득하고,
    상기 하드웨어 구성에 기초하여, 상기 어플리케이션에 의해 사용되는 적어도 하나의 하드웨어 컴포넌트를 동적으로 구성하는 컴퓨팅 시스템.
  6. 제 5 항에 있어서, 상기 마스터 컨트롤러는, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구에 기초하는 상기 하드웨어 구성을 선택하기 위해, 퍼지 논리를 포함하는 상기 컴퓨팅 시스템.
  7. 제 5 항에 있어서, 상기 컴퓨팅 시스템은, 메모리 스토리지를 구성하기 위해, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구를 사용하는 프로그램 가능한 메모리 컨트롤러를 포함하는 스토리지 시스템인 상기 컴퓨팅 시스템.
  8. 프로세서와, 하나 또는 그 이상의 하드웨어 컴포넌트를 포함하는 전자 제품을 구성하는 방법에 있어서, 상기 방법은:
    상기 프로세서에 의해, 상기 하나 또는 그 이상의 구성 가능한 하드웨어 컴포넌트의 런타임 환경에서 하드웨어 요구에 영향을 줄 가능성이 있는 하나 또는 그 이상의 어플리케이션 특성과, 상기 런타임 환경에서 하드웨어 퍼포먼스 최적에 대한 하나 또는 그 이상의 특정 리퀘스트 중 적어도 하나를 나타내는 명령을 포함하는 인프라스트럭처 기술 언어(IDL: Infrastructure Description Language)로 된 어플리케이션의 런타임을 모니터하는 단계와;
    상기 프로세서에 의해, 특정 하드웨어 퍼포먼스 최적에 대해 상기 어플리케이션 특성과 어떤 특정 리퀘스트에 기초하여, 상기 하나 또는 그 이상의 하드웨어 컴포넌트의 하드웨어 구성을 선택하고, 상기 선택된 하드웨어 구성에 기초하여, 상기 하나 또는 그 이상의 하드웨어 컴포넌트를 동적으로 구성하는 단계;를 포함하는 전자 제품 구성 방법.
  9. 프로세서; 및
    상기 프로세서에서 수행되는 컴퓨터 프로그램 코드를 저장하는 비일시적(non-transitory) 컴퓨터 판독가능 매체를 포함하는 전자 장치에 있어서,
    상기 컴퓨터 프로그램 코드는:
    런타임 환경에서 하드웨어 요구에 영향을 주는 소프트웨어 어플리케이션의 어플리케이션 특성을 나타내는 하나 또는 그 이상의 서비스 레벨 암시정보(Service Level Hint)와, 상기 런타임 환경에서 하드웨어 퍼포먼스 최적을 위한 특정 리퀘스트에 상응하는 하나 또는 그 이상의 서비스 레벨 요구사항(Service Level Requirement) 중의 적어도 하나를 나타내는 인프라스트럭처 기술 언어(Infastructure Description Language)로 된 명령을 받는 단계;
    상기 어플리케이션의 런타임동안,
    상기 명령을 이용하여, 상기 서비스 레벨 암시정보와 상기 서비스 레벨 요구 중 적어도 하나와 관련된 하드웨어 구성을 획득하는 단계; 및
    상기 하드웨어 구성에 기초하여, 상기 어플리케이션에 의해 사용되는 적어도 하나의 하드웨어 인프라스트럭처 리소스를 동적으로 구성하는 단계;를 포함하는 전자 장치.
  10. 프로세서; 및
    상기 프로세서에서 수행되는 컴퓨터 프로그램을 저장하는 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 컴퓨터 프로그램은,
    소프트웨어 어플리케이션에 대한 컴퓨터 코드;
    상기 어플리케이션의 런타임 동안 구성 가능한 하드웨어 인프라스트럭처를 동적으로 구성하는 것과 관련된 상기 소프트웨어 어플리케이션의 특성을 나타내는 적어도 하나의 서비스 레벨 암시정보(SLH: Service Level Hint)를 포함하는 컴퓨터 코드; 및
    상기 적어도 하나의 서비스 레벨 암시정보에 관련된 하드웨어 구성을 획득하고, 상기 하드웨어 구성에 기초하여 상기 어플리케이션에 의해 사용되는 적어도 하나의 하드웨어 인프라스트럭처를 동적으로 구성하는 컴퓨터 코드를 포함하는 전자 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020130010056A 2013-01-29 2013-01-29 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처 KR102014721B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130010056A KR102014721B1 (ko) 2013-01-29 2013-01-29 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130010056A KR102014721B1 (ko) 2013-01-29 2013-01-29 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처

Publications (2)

Publication Number Publication Date
KR20140096897A KR20140096897A (ko) 2014-08-06
KR102014721B1 true KR102014721B1 (ko) 2019-10-21

Family

ID=51744655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130010056A KR102014721B1 (ko) 2013-01-29 2013-01-29 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처

Country Status (1)

Country Link
KR (1) KR102014721B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244071B1 (ko) 2014-05-02 2021-04-26 삼성디스플레이 주식회사 유기 발광 소자

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005069138A1 (en) 2004-01-14 2005-07-28 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
JP2010170572A (ja) * 1998-11-20 2010-08-05 Altera Corp 再構成可能なプログラマブルロジックデバイスコンピュータシステム
US20120089726A1 (en) * 2010-10-06 2012-04-12 Infosys Technologies Ltd. Automated service level management of applications in cloud computing environment
US20120215640A1 (en) * 2005-09-14 2012-08-23 Jorey Ramer System for Targeting Advertising to Mobile Communication Facilities Using Third Party Data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101671184B1 (ko) * 2010-12-14 2016-11-01 삼성전자주식회사 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170572A (ja) * 1998-11-20 2010-08-05 Altera Corp 再構成可能なプログラマブルロジックデバイスコンピュータシステム
WO2005069138A1 (en) 2004-01-14 2005-07-28 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20120215640A1 (en) * 2005-09-14 2012-08-23 Jorey Ramer System for Targeting Advertising to Mobile Communication Facilities Using Third Party Data
US20120089726A1 (en) * 2010-10-06 2012-04-12 Infosys Technologies Ltd. Automated service level management of applications in cloud computing environment

Also Published As

Publication number Publication date
KR20140096897A (ko) 2014-08-06

Similar Documents

Publication Publication Date Title
US20220113790A1 (en) Intent-driven power management
US11507430B2 (en) Accelerated resource allocation techniques
US10942760B2 (en) Predictive rightsizing for virtual machines in cloud computing systems
US10355966B2 (en) Managing variations among nodes in parallel system frameworks
US9411649B2 (en) Resource allocation method
US20210117307A1 (en) Automated verification of platform configuration for workload deployment
KR20220044717A (ko) 작업 스케줄링 효율을 향상시키기 위한 방법, 시스템, 제품 및 장치
US8863060B2 (en) Programmable intelligent storage architecture based on application and business requirements
WO2019091387A1 (en) Method and system for provisioning resources in cloud computing
CN107070709B (zh) 一种基于底层numa感知的nfv实现方法
JP2022033688A (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
Sheikhalishahi et al. Autonomic resource contention‐aware scheduling
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
Zakarya et al. Perficientcloudsim: a tool to simulate large-scale computation in heterogeneous clouds
US20210318965A1 (en) Platform data aging for adaptive memory scaling
US11954419B2 (en) Dynamic allocation of computing resources for electronic design automation operations
KR101890046B1 (ko) 전력 소비 감소를 위한 동시적 네트워크 애플리케이션 스케줄링
CN111061618B (zh) 云平台仿真系统、云平台性能测试方法和计算机设备
KR102014721B1 (ko) 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처
US10223171B2 (en) Mitigating load imbalances through hierarchical performance balancing
KR20230068709A (ko) 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치
US10452546B2 (en) Cache utility modeling for automated cache configuration
EP4180957A1 (en) Intent-driven power management
NL2033285B1 (en) Intent-based orchestration in heterogenous compute platforms
EP4180958A1 (en) Computational storage in a function-as-a-service architecture

Legal Events

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