KR20210132348A - 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법 - Google Patents

광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법 Download PDF

Info

Publication number
KR20210132348A
KR20210132348A KR1020200050595A KR20200050595A KR20210132348A KR 20210132348 A KR20210132348 A KR 20210132348A KR 1020200050595 A KR1020200050595 A KR 1020200050595A KR 20200050595 A KR20200050595 A KR 20200050595A KR 20210132348 A KR20210132348 A KR 20210132348A
Authority
KR
South Korea
Prior art keywords
memory
blocks
data
block
collaboration
Prior art date
Application number
KR1020200050595A
Other languages
English (en)
Other versions
KR102607421B1 (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 KR1020200050595A priority Critical patent/KR102607421B1/ko
Priority to US17/221,086 priority patent/US20210334143A1/en
Publication of KR20210132348A publication Critical patent/KR20210132348A/ko
Application granted granted Critical
Publication of KR102607421B1 publication Critical patent/KR102607421B1/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
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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
    • G06F9/5072Grid computing
    • 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
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized 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/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching

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)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법에 관한 것으로, 광 연결로 분할 운용되는 이종 컴퓨팅 자원 블록의 협업이 가능한 각 프로세서 블록, 가속기 블록, 메모리 패브릭 블록 등의 기능 블록 장치가 원격지에 존재하고, 특정 프로그램에 이 세 종류의 원격 기능 블록 장치가 상호 연결 및 연동되어 협업 계산 및 처리 과정을 수행한다.
이에, 컴퓨팅 자원 분할 협업 시스템은 낮은 지연시간, 빠른 처리, 넓은 대역폭을 제공하는 광 신호 상호 연결을 통해 각 블록에 존재하는 메모리의 데이터와 정보를 공유하고 협업과 메모리의 일관성을 유지한다.

Description

광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법{COMPUTING RESOURCE DISAGGREGATED COLLABORATION SYSTEM OF INTERCONNECTED AN OPTICAL LINE AND, RESOURCE DISAGGREGATED COLLABORATION METHOD}
본 발명은 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법에 관한 것으로, 보다 구체적으로는, 데이터 처리와 계산을 위한 컴퓨팅에 사용되는 서로 다른 원격지에 배치된 이종 컴퓨팅 자원(Resource)을 운용하는 프로그램의 데이터와 메모리 사용을 효율적으로 관리하기 방법 및 시스템에 관한 것이다.
최근의 데이터 처리와 데이터 통신 네트워크는 인공지능, 자율 주행, 로봇, 헬스 케어, 가상/증강 현실, 홈 네트워크과 연관 다양한 서비스를 수용하여야 하고, 이를 위해서, 데이터 센터에 존재하는 클라우드의 처리 성능과 효율성이 중요해지며, 많은 데이터 처리가 데이터 센터에 의존하여 운영하게 된다. 이에 따라 늘어나는 데이터 양에 적합한 에지(Edge)와 코어(Core) 클라우드와 데이터 센터의 구성이 필요하고 현재의 클라우드를 구성하는 서버 보다도 더 효율적인 컴퓨팅 구조와 시스템이 요구된다.
기존의 데이터 센터와 클라우드를 구성하는 컴퓨팅 자원의 구성에 있어, 종래에는 하나의 서버 박스(box)내에 프로세서(Processor), 가속기(Accelerator), 메모리(Memory), 저장장치(Storage) 등의 컴퓨팅 자원이 단일 보드 또는 여러 보드로 구성되어 전기적 신호(버스) 케이블과 커넥터로 연결을 되어 운용된다. 그리고, 컴퓨팅 자원 중에서는 저장장치(Storage)는 별도의 유닛으로 구성되어 대용량 데이터 저장을 위해 스토리지 영역 네트워크(SAN, Storage Area Network), NAS(Network attached storage) 기술 등을 통해 원격 분할 운용(Disaggregation)과 광 연결이 가능한 구조로 구성되어 사용된다.
클라우드와 데이터 센터에서 처리해야 하는 데이터의 증가에 비하여, 프로세서, 가속기와 메모리의 전기적 버스 연결 구조는 순차적 데이터 처리로 인한 병목현상으로 성능을 저하시키고, 프로세서와 메모리의 연결 및 처리 속도의 증가와 프로세서의 코어의 개수가 증가된다. 이는 전체 시스템의 성능을 향상시키지 못하며, 물리적으로 개별 반도체의 용량과 처리 속도의 개선은 처리해야 할 데이터의 증가 속도를 맞추기 힘들 것으로 예측된다.
이와 다른 분할 운용 방식으로는 하나의 랙 안에서 서버형태의 구성에서 벗어나서 각 컴퓨팅 자원이 분할 운용되는 기술이다. 해당 기술은 컴퓨팅 자원의 랙(Rack) 구성에 각 컴퓨팅 자원의 배치하여 인공지능과 같은 대용량 데이터의 고속 계산과 처리를 위해서, 여러 개의 프로세서와 여러 개의 가속기가 동시에 병렬 처리를 수행한다.
여기서, 중요한 기술은 프로세서와 프로세서 사이의 동종 상호 연동, 가속기와 가속기 사이의 동종 상호 연동, 그리고 프로세서간 연결 위주로 보드(Board)들이 구성된 프로세스 중심 박스(Processor-centric box)과 가속기간 연결 위주로 보드(Board)들이 구성된 가속기 중심 박스(Accelerator-centric box)사이의 원격 이종 상호 연동 기술이 필요하다.
각 프로세스 중심 박스(Processor-centric box)와 가속기 중심 박스(Accelerator-centric box)는 박스내의 프로세서들과 가속기들의 데이터의 계산과 처리를 위해 캐쉬 메모리와 주메모리를 배치하여 데이터 계산과 처리에 사용한다.
또한, 대용량 메모리 데이터를 공유하기 위해서 메모리간 연결 위주로 보드들이 구성된 메모리 패브릭 박스가 존재한다. 프로세스 중심 박스와 가속기 중심 박스에는 기본적인 메모리를 각각 탑재하고 있고 각 박스 사이에 메모리 데이터를 공유하는 원격 상호 연동 기술과 메모리 패브릭 박스와 각각의 프로세스 중심 박스, 각각의 가속기 중심 박스가 메모리 데이터를 공유하기 위한 원격 상호 연동하는 기술이 필요하다.
기존 서버 형태의 박스에서 프로세서와 가속기에서 사용되는 프로그램의 변수와 처리 및 계산 값은 프로그램 동작 중에 메모리에 저장되고, 메모리 관리 체계는 프로세서의 내부 코어(Core)와 연계되어 캐시(Cache)를 기반으로 레벨별 계층적인 체계를 가진다. 칩상(on-chip) 또는 보드내(on-board)에 여러 개의 프로세서, 프로세서 코어와 가속기 등은 주 메모리를 공유하며 캐시 일관성(Cache Coherency)를 유지한다.
그러나, 보드내에서 버스, 커넥터로 연결되는 메모리가 대용량화와 협업을 위해 외부 보드, 외부 박스, 외부 랙에 존재하는 경우, 보드내 전기적 연결 기술로 연결이 어려운 경우, 광 연결 기술을 이용하고, 원격 캐시 일관성을 포함한 원격 상호 연동, 공유 기술과 대용량 메모리에 저장되는 메모리 데이터의 원격 캐시 일관성을 포함한 원격 상호 연동, 공유 기술이 필요하고, 이 기술은 시간 지연에 민감하여 낮은 지연시간(Low-latency)로 빠른 처리가 필요하고, 많은 대역폭을 요구된다.
본 발명은 미래의 데이터 센터에서 거대 인공 지능, 자율 주행, 가상/증가 현실 등의 프로그램과 서비스에 따라 이종 컴퓨팅 자원이 개별 칩의 성능과 물리적 위치에 대한 한계를 극복하고 논리적으로 컴퓨팅이 가능하도록 하기 위한 이종 컴퓨팅 자원의 원격 분할 운용에 관한 자원 분할 협업 방법 및 시스템을 제공할 수 있다.
본 발명은 데이터 센터에서 데이터의 고속 계산을 동반하는 프로그램과 서비스의 처리를 위해 다수의 프로세서와 가속기를 동시에 병렬적으로 운영이 가능하도록 하는 박스 규모(Box Scale)와 랙 규모(Rack Scale)로 적용할 수 있는 블록 구조를 제안하는 자원 분할 협업 방법 및 시스템을 제공할 수 있다.
본 발명은 프로세서와 가속기가 개별 메모리 칩의 성능과 물리 위치 한계를 극복할 수 있는 대용량 메모리의 원격 분할 운용에 관한 자원 분할 협업 방법 및 시스템을 제공할 수 있다.
본 발명은 메모리의 원격 분할 운용 환경에서, 데이터의 고속 계산을 위해 프로세서와 가속기가 해당 데이터를 공유하며 협업 계산(Cooperative Computing) 과정에서 계산된 데이터와 정보를 공유하기 위해서 각 메모리의 데이터와 정보를 공유함으로써, 캐시 일관성을 유지하는 자원 분할 협업 방법 및 시스템을 제공할 수 있다.
본 발명은 데이터에 대한 프로세서와 가속기 간 협업 계산 과정에서 계산된 대용량의 데이터와 정보를 공유하기 위해서, 메모리(원격 대용량 메모리 패브릭)가 각 메모리의 데이터와 정보를 공유함으로써, 캐시 일관성을 유지하는 자원 분할 협업 방법 및 시스템을 제공할 수 있다.
일실시예에 따른 자원 분할 협업 시스템이 수행하는 자원 분할 협업 방법은 광 회선을 통해 상호 연결된 박스 규모(Box Scale)와 랙 규모(Rack Scale)로 구성되는 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간 분할 운용 스위치를 통해 경로를 설정하는 단계; 상기 설정된 경로에 따라 복수의 블록들을 연결하고, 메모리의 협업 운용을 수행하기 위해 경로가 연결된 블록들 각각에 포함된 메모리로의 접근을 허용하기 위한 협업 운영 설정 정보를 설정하는 단계; 및 상기 협업 운영 설정 정보를 기반으로 상기 경로가 연결된 블록들 간에 자원 공유 가능한 프로그램에 따른 복수의 블록들 각각에 포함된 메모리의 데이터를 공유하는 단계;를 포함할 수 있다.
일실시예에 따른 공유하는 단계는, 협업 운영 설정 정보에 기초하여 경로가 연결된 블록들 중 하나의 블록에서 블록 내외 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체가 되는 마스터 모드(Master Mode)(또는, 요청자 모드(Requester Mode))로 설정하는 단계; 마스터 모드(또는, 요청자 모드)로 설정된 블록을 제외한 나머지 블록을 슬레이브 모드(Slave Mode)(또는, 응답자 모드(Responder Mode))로 설정하는 단계; 마스터 모드(또는, 요청자 모드)로 설정된 블록과 슬레이브 모드(또는, 응답자 모드)로 설정된 블록 간에 광 회선을 통해 메모리 공유가 가능한 프로그램을 설정하는 단계; 및 경로가 연결된 블록들 간에 설정된 프로그램과 메모리를 공유하며, 협업 계산 과정에서의 복수의 블록 각각에 포함된 데이터의 정보를 공유하는 단계;를 포함할 수 있다.
일실시예에 따른 프로세서 블록들 및 가속기 블록들은, 프로세서 블록들 및 가속기 블록들 각각에 포함된 원격 메모리 에이전트를 이용하여 경로가 연결된 블록들 중 적어도 하나의 블록에 포함된 메모리에 접근하여, 접근된 메모리의 데이터를 제어할 수 있다.
일실시예에 따른 원격 메모리 에이전트는, 경로가 연결된 블록들 중 하나의 블록에서 블록 내외 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체를 고려하여 상기 복수의 블록들 각각에 대해 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정할 수 있다.
일실시예에 따른 원격 메모리 에이전트는, 복수의 블록들 각각에 포함된 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하며, 로컬 메모리와 원격 메모리의 데이터에 관한 일관성을 관리할 수 있다.
일실시예에 따른 원격 메모리 에이전트는, 프로그램 및 로컬 메모리와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터와 일관성을 유지하지 않는 데이터로 구분할 수 있다.
일실시예에 따른 원격 메모리 에이전트는, 광 회선을 통한 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 송수신할 수 있다.
일실시예에 따른 원격 메모리 에이전트는, 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 적어도 하나에 존재하여 물리 주소, 가상 주소, 원격 물리 주소 및 분할 운용 메모리 주소에 대한 매핑 테이블을 관리하고, 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간에 경로를 재 연결하고자 하는 경우, 매핑 테이블의 주소값을 변환할 수 있다.
일실시예에 따른 메모리 패브릭 블록들은, 프로세서 블록들 또는, 가속기 블록들과 공유 가능한 프로그램에 따른 각 블록에 포함된 메모리의 데이터를 공유하기 위해 블록들 각각에 포함된 메모리 일부를 공유 메모리로 지정하고 타 블록의 공유 메모리를 원격 메모리로 관리하여 프로세서 블록들 또는, 가속기 블록들과 공유할 수 있다.
일실시예에 따른 프로세서 블록 또는, 가속기 블록에 포함되는 컴퓨팅 자원 분할 협업 장치는 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 메모리의 데이터에 관한 일관성 유지, 관리를 제공하는 일관성 프로토콜 에이전트; 광 회선을 통해 상호 연결된 박스 규모(Box Scale)와 랙 규모로 구성되는 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 메모리의 협업 운용을 수행하기 위해 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 제어하는 원격 메모리 에이전트; 상기 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 내에 프로세싱과 계산에 사용되는 정보와 데이터가 저장되는 로컬 메모리; 원격 메모리 에이전트과 로컬 메모리 간에 데이터를 읽고 쓰는 동작 주체를 고려하여 중재 기능을 제어하는 자원 메모리 에이전트; 원격 메모리 에이전트과 로컬 메모리 간 읽고 쓰여지는 데이터를 제어하는 로컬 메모리 컨트롤러; 로컬 메모리와 원격 메모리의 일관성을 유지하기 위한 데이터를 송수신하는 분할 운용 인터페이스; 및 협업 운영 설정 정보를 관리하는 정보 관리 인터페이스;를 포함할 수 있다.
일실시예에 따른 일관성 프로토콜 에이전트는, 로컬 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하고 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 물리 주소, 분할 운영 주소를 관리하며, 프로세싱에 필요한 캐쉬 메모리를 포함한 로컬 메모리의 데이터에 관한 일관성 유지, 관리를 제공할 수 있다.
일실시예에 따른 자원 메모리 에이전트는, 경로가 연결된 블록들 중 하나의 블록에서 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체를 고려하여 상기 복수의 블록들 각각에 대해 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정할 수 있다.
일실시예에 따른 자원 메모리 에이전트는, 복수의 블록들 각각에 포함된 로컬 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하며, 로컬 메모리의 데이터에 관한 일관성을 관리할 수 있다.
일실시예에 따른 자원 메모리 에이전트는, 프로그램 및 로컬 메모리와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터와 일관성을 유지하지 않는 데이터로 구분할 수 있다.
일실시예에 따른 자원 메모리 에이전트는, 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 적어도 하나의 물리 주소, 가상 주소, 원격 물리 주소 및 분할 운용 메모리 주소에 대한 매핑 테이블을 관리하고, 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간에 경로를 재 연결하고자 하는 경우, 상기 매핑 테이블의 주소값을 변환할 수 있다.
일실시예에 따른 분할 운용 인터페이스는, 광 회선을 통한 상기 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 송수신할 수 있다.
일실시예에 따른 컴퓨팅 자원 분할 협업 장치에 포함되는 자원 메모리 에이전트는 블록 내 로컬 메모리와 블록 외 원격 메모리를 관리하는 메모리 관리 모듈; 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터에 관한 일관성을 관리하는 일관성 관리 모듈; 블록 내의 프로세서 관여 없이 블록에 포함된 로컬 메모리와 원격 메모리로의 직접 접근 기능을 제공하는 직접 메모리 접근 모듈; 및 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터를 제어하기 위한 동작 주체를 고려하여 로컬 메모리와 원격 메모리에 대한 접근 모드를 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 (또는 응답자) 모드로 결정하는 메모리 관계 관리 모듈;를 포함할 수 있다.
일실시예에 따른 일관성 관리 모듈은, 프로그램 및 로컬 메모리 와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터와 일관성을 유지하지 않는 데이터로 구분하여, 상기 데이터의 일관성을 관리할 수 있다.
일실시예에 따른 메모리 패브릭 블록에 포함되는 컴퓨팅 자원 분할 협업 장치는 메모리 패브릭 블록에 포함된 원격 메모리와 관련하여 프로세서 블록 및 가속기 블록 간에 일관성을 유지하기 위한 분할 운영 프레임을 전달하는 메모리 분할 운용 인터페이스; 프로세서 블록 또는, 가속기 블록 중 메모리의 협업 운용을 수행하기 위한 제어 요청에 따른 동작 주체를 고려하여 원격 메모리를 관리하는 메모리 패브릭 에이전트; 및 제어 요청에 따른 프로세서 블록 또는, 가속기 블록 중 적어도 하나의 블록에서 송수신되는 메모리의 데이터를 제어하는 메모리 패브릭 컨트롤러;를 포함할 수 있다.
본 발명의 일실시예에 의하면, 본 발명은 광 회선을 통해 상호 연결되며, 분할 운영(Disaggregated)되는 이종 컴퓨터 자원의 블록들 간 협업을 통하여, 이종 컴퓨터 자원의 블록들을 원격으로 운영과 협업이 가능할 수 있다.
본 발명의 일실시예에 의하면, 본 발명은 데이터 센서의 이종 컴퓨터 자원에 대한 확장성과 유연성을 고려하여 프로그램의 규모가 급변함에 따른 프로세서 블록, 가속기 블록, 메모리 패브릭 블록 간 비대칭적인 이종 컴퓨터 자원의 고갈을 피함으로써, 프로그램의 작업 부하를 효율적으로 통합 관리하며, 프로그램의 작업 규모를 동적으로 확장할 수 있다.
도 1은 본 발명의 일실시예에 따른 광 신호 기반의 상호 연동에 따른 이종 컴퓨팅 자원의 랙에 관한 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 기능 블록 구조를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함되는 자원 메모리 에이전트에 관한 세부 기능을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 컴퓨팅 자원 분할 협업 장치가 연결된 컴퓨팅 자원 분할 협업 시스템에 관한 주요 기능을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함된 메모리를 공유 메모리로 설정하고, 협업 운영 설정 정보를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함된 메모리를 공유 메모리로 활용하는 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원 중 프로세서 블록의 로컬 메모리 내 공유 메모리에 대한 일관성을 유지하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원 중 가속기 블록의 로컬 메모리 내 공유 메모리에 대한 일관성을 유지하는 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예에 따른 메모리 패브릭 블록의 공유 메모리의 데이터와 각 블록의 로컬 메모리의 데이터 간에 일관성을 유지하는 과정을 설명하기 위한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 광 신호 기반의 상호 연동에 따른 이종 컴퓨팅 자원의 랙에 관한 구성을 설명하기 위한 도면이다.
도 1을 참고하면, 컴퓨팅 자원 분할 협업 시스템은 미래의 데이터 센서에서 이종 컴퓨팅 자원에 대한 박스 규모(Box Scale) 뿐만 아니라 랙 규모(Rack-scale)의 분할 운영을 수행할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 랙 규모의 분할 운영을 적용하여 이종 컴퓨팅 자원에서 처리되는 대규모의 데이터 처리가 가능할 수 있다. 자세하게, 컴퓨팅 자원 분할 협업 시스템은 데이터 센터에서 미래의 슈퍼 컴퓨팅, 대규모 인공지능 등의 대규모 프로그램을 운영하고, 협업 계산 과정에서 계산된 데이터와 정보를 공유할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 이종 컴퓨팅 자원의 활성성과 효율성을 높이기 위해, 이종 컴퓨팅 자원 각각에 대응하여 박스 규모와 랙 규모로 적용할 수 있는 블록 구조로 구성될 수 있다.
컴퓨팅 자원 분할 협업 시스템은 박스 규모와 랙 규모의 블록 구조로, 서로 다른 원격지에 배치 가능한 분리 프로세서 박스(Disaggregated Processor Box), 분리 가속기 박스(Disaggregated Accelerator box), 분리 스토리지 박스(Disaggregated Storage box), 분리 메모리 박스(Disaggregated Memory box)가 광 회선 스위치인 분할 운영 스위치로 연결된 인트라 랙 분리 박스(Intra-Rack Disaggregated Boxs) 또는, 분리 프로세서 랙(Disaggregated Processor Rack), 분리 가속기 랙(Disaggregated Accelerator Rack), 분리 스토리지 랙(Disaggregated Storage Rack), 분리 메모리 랙(Disaggregated Memory Rack) 각각과 광 회선 스위치인 분할 운영 스위치로 구성될 수 있다.
분리 프로세서 랙은 복수의 프로세서 블록들을 포함하고, 분리 가속기 랙은 복수의 가속기 블록들을 포함하고, 분리 스토리지 랙은 복수의 스토리지 블록들을 포함하며, 분리 메모리 랙은 복수의 메모리 패브릭 블록들을 포함할 수 있다. 인트라 랙 분리 박스의 구성은 하나의 랙 안에 대용량 데이터의 고속 계산과 처리를 위해, 컴퓨팅 자원의 랙 구성에 각 컴퓨팅 자원의 배치될 수 있다. 인트라 랙 분리 박스의 구성은 랙 구성에 각 컴퓨팅 자원 블록이 분리 배치됨에 따라, 여러 개의 프로세서와 여러 개의 가속기가 동시에 병렬 처리를 수행할 수 있다.
이에, 박스 규모와 랙 규모의 블록 구조에서 각 박스와 각 랙은 동일한 컴퓨팅 자원을 중심으로 구성될 수 있으며, 컴퓨팅 자원 분할 협업 시스템은 랙 규모의 분할 운용을 수행함에 있어, 데이터 센서 내 랙의 배치와 각 층마다 존재하는 랙들 간의 분할 운용이 가능할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 광 회선을 통해 복수의 랙 간에 상호 연결이 가능할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 광대역으로 전송 거리의 변경이 용이한 광 상호 연결(Optical Interconnection)을 요구하며, 광 상호 연결 기반의 분할 운용 인터페이스(Disaggregation Interface)가 요구된다.
또한, 해당 구조에 따른 프로세서와 가속기가 동시에 프로그램이 운영되는 곳의 로컬 메모리의 용량은 기존 서버 형태와 달리 프로세서와 가속기의 자원 규모에 비해 작은 규모로 배치하여, 메모리의 분할 운영 형상을 이용하여 메모리 공유율과 효율성을 높일 수 있다.
도 2는 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 기능 블록 구조를 도시한 도면이다.
도 2를 참고하면, 기능 블록 구조는 데이터 센터의 이종 컴퓨팅 자원에 적용 가능할 수 있다. 기능 블록 구조는 랙 규모 또는, 박스 규모의 분할 운용인 구조에서 공통적으로 적용이 가능한 구조일 수 있다.
여기서, 이종 컴퓨팅 자원은 프로세서 코어(CORE), CPU, 가속기, 메모리뿐만 아니라 컴퓨팅에 참여할 수 있는 다른 형태의 FPGA, DSP, GPU등 다른 이름으로 불리고 데이터 처리와 계산 과정에 메모리를 사용하는 모든 컴퓨팅 자원 간의 연동도 본 특허의 발명의 내용으로 적용이 가능할 수 있다.
컴퓨팅 자원 분할 협업 시스템의 프로세서 블록과 가속기 블록이 광 신호를 통해 원격으로 상호 연결이 가능하며, 상호 연결된 블록 간에 프로그램과 메모리를 공유할 수 있다. 여기서, 프로세서 블록들(203), 가속기 블록들(202), 메모리 패브릭 블록들(204)은 광 회선 스위치인 분할 운용 스위치를 통해 메모리의 협업 운용을 수행하기 위한 복수의 블록들(202), (203), (204) 간 경로에 대한 연결이 구성될 수 있다.
컴퓨팅 자원 분할 협업 시스템은 협업 계산 과정에서 프로그램의 데이터와 정보를 공유하기 위해, 프로세서 블록(206)의 로컬 메모리(208)와 가속기 블록(205)의 로컬 메모리(207) 각각에 저장된 데이터와 정보를 공유할 수 있다. 또한, 컴퓨팅 자원 분할 협업 시스템은 프로세서 블록(206)의 로컬 메모리(208)와 가속기 블록(205)의 로컬 메모리(207) 간의 일관성을 유지하기 위하여 이종 컴퓨팅 자원 기반의 광 연결 분할 운용을 수행할 수 있다.
컴퓨팅 자원 분할 협업 시스템은 프로세서 블록(206)과 가속기 블록(205)이 원격으로 상호 연결된 상태에서 블록의 각 로컬 메모리(207), (208)에 저장된 프로그램과 메모리를 공유할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 메모리 패브릭 블록(208)에 포함된 원격 메모리와 연동하여 프로그램의 데이터와 정보를 공유할 수 있다. 컴퓨팅 자원 분할 협업 시스템은 협업 계산 과정에서 프로그램의 데이터와 정보를 공유할 때, 공유 가능한 프로그램의 데이터와 정보의 규모가 큰 경우에 메모리 패브릭 블록(209)에 포함된 원격 메모리와 연동할 수 있다. 다시 말해, 컴퓨팅 자원 분할 협업 시스템은 공유 가능한 프로그램의 데이터와 정보의 규모를 고려하여 메모리 패브릭 블록(209)의 원격 메모리와 프로세서 블록(206) 또는, 가속기 블록(205)에 포함된 각각의 로컬 메모리(207), (208)에 대해 계층적인 메모리 관리가 가능할 수 있다. 또한, 컴퓨팅 자원 분할 협업 시스템은 메모리 패브릭 블록(209)의 원격 메모리와 프로세서 블록(206) 또는, 가속기 블록(205)의 각 로컬 메모리(207), (208) 간에 일관성을 유지하기 위하여 이종 컴퓨팅 자원 기반의 광 연결 분할 운용을 수행할 수 있다.
프로세서 블록(206)의 로컬 메모리(208) 또는, 가속기 블록(205)의 로컬 메모리(207)에 따른 메모리 패브릭 블록(209)을 사용하는 경우, 이종 컴퓨팅 자원을 운용하는 OS(Operation System)는 각 블록의 원격지에 존재하는 메모리를 새로운 메모리의 계층으로 프로세서 블록 또는, 가속기 블록의 로컬 메모리와 메모리 패브릭 블록을 인식할 수 있다.
본 발명의 이종 컴퓨팅 자원의 분할 운용은 프로세서 블록(206), 가속기 블록(205), 메모리 패브릭 블록(209) 등의 기능 블록 장치가 원격지에 존재하고, 특정 프로그램에서 기능 블록 구조에 따른 상호 연결 및 연동되어 협업 계산 과정을 수행할 수 있다. 프로세서 블록들(203) 및 가속기 블록들(202)은 각각 일관성 프로토콜 에이전트를 포함할 수도 있다. 가속기 블록(202)에는 상황에 따라 일관성 프로토콜 에이전트를 존재하는 경우가 발생할 수 있다. 가속기 블록(202) 내 일관성 프로토콜 에이전트가 존재하지 않는 경우, 본 발명은 프로세서 블록(206)의 일관성 프로토콜 에이전트를 이용하여 가속기 블록(205)에 대한 일관성도 유지할 수 있다. 여기서, 일관성 프로토콜 에이전트는 복수의 블록들 각각에 포함된 로컬 메모리에 접근하기 위한 기본적인 가상 주소와 물리 주소를 관리하고 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 물리 주소, 분할 운영 주소를 관리하며, 프로세싱에 필요한 캐쉬 메모리를 포함한 로컬 메모리의 데이터에 관한 일관성 유지, 관리를 제공할 수 있다. 뿐만 아니라, 일관성 프로토콜 에이전트는 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 메모리의 데이터에 관한 일관성 유지, 관리를 제공할 수 있다.
이때, 본 발명은 협업 계산 과정에서의 낮은 지연시간(Low-latency), 빠른 처리, 넓은 대역폭을 제공하는 상호연결(interconnect)를 통해 각 블록에 존재하는 메모리의 데이터와 정보를 공유하고 일관성을 유지할 수 있다.
프로세서 블록(206)과 가속기 블록(205)의 각 로컬 메모리 컨트롤러는 프로세서 블록(206)과 가속기 블록(205)의 각 블록 내 자원에서 메모리에 접근할 때, 메모리 읽기, 쓰기 동작을 제어할 수 있다. 그리고, 프로세서 블록(206)과 가속기 블록(205)의 각 로컬 메모리 컨트롤러는 원격 메모리 에이전트를 통해 로컬 메모리에 저장된 데이터를 송수신하기 위해서 메모리에 접근할 때 읽기, 쓰기 등의 동작을 제어할 수 있다. 여기서, 각 로컬 메모리 컨트롤러와 각 로컬 메모리의 기본적인 동작은 각 블록 내 기존 서버의 형태를 갖는 메모리 컨트롤러와 메모리의 데이터의 송수신과 읽기, 쓰기를 제어하는 동작과 동일하게 작동된다.
도 3은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함되는 자원 메모리 에이전트에 관한 세부 기능을 도시한 도면이다.
도 3을 참고하면, 자원 메모리 에이전트(301)는 경로가 연결된 블록들 중 적어도 하나의 블록에 포함된 메모리에 접근하여, 접근된 메모리의 데이터를 제어할 수 있다.
자세하게, 자원 메모리 에이전트(301)는 메모리 관리 모듈(MMU: Memory Management Unit, 302), 일관성 관리 모듈(Snoop, Coherency, 303), 직접 메모리 접근 모듈(DMA: Direct Memory Access, 304), 메모리 관계 관리 모듈(305)을 포함할 수 있다. 자원 메모리 에이전트(301)는 개별 기능을 가지며, 각각에 대해 서브 블록으로 구성될 수 있다.
- 메모리 관리 모듈(302)은 컴퓨팅 자원 분할 협업 장치가 제어하는 블록 내 로컬 메모리와 블록 외 원격 메모리를 관리할 수 있다.
- 일관성 관리 모듈(303)은 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터에 관한 일관성을 관리할 수 있다.
- 직접 메모리 접근 모듈(304)은 블록 내의 프로세서 관여 없이 블록에 포함된 로컬 메모리와 블록 외 원격 메모리로의 직접 접근 기능을 제공할 수 있다.
- 메모리 관계 관리 모듈(305)은 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터를 제어하기 위한 동작 주체를 고려할 수 있다. 메모리 관계 관리 모듈(305)은 동작 주체에 대응하여 로컬 메모리와 원격 메모리에 대한 접근 모드를 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정할 수 있다.
프로세서 블록과 가속기 블록에 포함되는 자원 메모리 에이전트(301)의 기본 동작은 메모리에 대한 프로세서 블록과 가속기 블록의 동작 주체에 대응하여 마스터 모드(또는, 요청자 모드)와 슬레이브 모드(또는, 응답자 모드)로의 기능을 수행할 수 있다.
메모리 관계 관리 모듈(305)은 협업 운영 설정 정보에 기초하여 경로가 연결된 블록들 중 하나의 블록에서 블록 내외 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체가 되는 마스터 모드(또는, 요청자 모드)로 설정할 수 있다. 메모리 관계 관리 모듈(305)은 마스터 모드(또는, 요청자 모드)로 설정된 블록을 제외한 나머지 블록을 슬레이브 모드(또는, 응답자 모드)로 설정할 수 있다. 메모리 관계 관리 모듈(305)은 마스터 모드(또는, 요청자 모드)로 설정된 블록과 슬레이브 모드(또는, 응답자 모드)로 설정된 블록 간에 광 회선을 통해 메모리 공유가 가능한 프로그램을 설정할 수 있다. 메모리 관계 관리 모듈(305)은 경로가 연결된 블록들 간에 설정된 프로그램과 메모리를 공유하며, 협업 계산 과정에서의 복수의 블록 각각에 포함된 데이터의 정보를 공유할 수 있다.
이에, 본 발명은 프로세서 블록과 가속기 블록 각각에 포함된 프로세서와 가속기가 자원 메모리 에이전트(301)를 거쳐 로컬 메모리 사이에 데이터의 송/수신과 읽기, 쓰기를 제어할 수 있다.
또한, 프로세서 블록과 가속기 블록의 각각 자원 메모리 에이전트(301)는 타 블록의 원격 메모리에 대한 마스터 모드(또는, 요청자 모드)로의 동작을 수행할 수 있다. 각 블록의 자원 메모리 에이전트(301)는 원격 메모리 에이전트(306)를 거쳐 타 블록의 원격 메모리의 데이터의 송수신과 읽기, 쓰기를 제어할 수 있다.
도 4는 본 발명의 일실시예에 따른 컴퓨팅 자원 분할 협업 장치가 연결된 컴퓨팅 자원 분할 협업 시스템에 관한 주요 기능을 도시한 도면이다.
도 4를 참고하면, 컴퓨팅 자원 분할 협업 시스템은 이종 컴퓨팅 자원의 광 연결 분할 운용을 위한 광 신호로 상호 연결될 수 있다. 광 신호는 큰 대역폭의 데이터를 전기적 신호로 전달이 불가능한 거리를 낮은 지연시간, 빠른 처리, 넓은 대역폭을 제공할 수 있다. 이에, 본 발명은 광 영역(Optical Domain)에 광회선 스위치를 적용하여 광 회선 네트워크(Optical Circuit Network)을 형성할 수 있다. 각 블록들 간에는 충분한 대역폭의 양방향 광회선을 연결하여 광 영역에서 혼잡상황이 발생하지 않도록 할 수 있다.
컴퓨팅 자원 분할 협업 시스템은 이종 컴퓨팅 자원의 분할 운용을 수행함에 있어, 블록 간에 광대역 광회선의 적용하기 위해 기본적으로 협업 설정으로 운영될 수 있다. 분할 운용 관리 인터페이스(DMI: Disaggregation Management Interface)는 OS 또는 제어 영역으로부터 각 블록의 자원 메모리 에이전트와 분할 운용 인터페이스에 메모리 자원 공유와 관련된 협업 운영 설정 정보를 송수신할 수 있다. 협업 운영 설정 정보는 물리 메모리 주소, OS 가상 메모리 주소, 각 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address)등의 매핑 테이블을 포함할 수 있다.
각 분할 운용 인터페이스는 광 송수신기, 광 전송에서 필수적인 데이터 클럭복구(CDR)기능, 물리 채널 코딩 디코딩 기능, Serdes기능 등의 광회선의 물리계층 기능을 수행할 수 있다. 그리고, 각 분할 운용 인터페이스는 메모리 데이터의 읽고 쓰기 명령과 관련된 요청과 응답 메시지 정보와 캐시, 메모리 일관성 유지에 필요한 정보 송수신에 적합한 프레임 생성 종단기능을 수행할 수 있다.
각 블록이 메모리 분할 운용에서 해당 협업 운영 설정 정보는 프로세서 블록, 가속기 블록, 메모리 패브릭 블록들이 마스터 모드(또는, 요청자 모드)의 역할을 수행할 것인지 또는, 슬레이브 모드(또는, 응답자 모드)의 역할을 수행할 것인지를 지정할 수 있다. 그리고 협업 운영 설정 정보는 광 연결을 위해 파장 ID, 레인(lane) ID, 회선ID, 목적지 블록 ID, 대역폭과 같은 광 회선과 광학적 정보를 설정할 수 있다.
원격 메모리 에이전트는 분할운용(Disaggregation) 장치의 핵심 모듈이며 원격 메모리 에이전트의 탑재는 이종 컴퓨팅 자원의 분할운용(Disaggregation) 장치의 OS (Operation System)가 이종 컴퓨팅 자원의 분할운용(Disaggregation)이 적용되었음을 드라이브와 OS 커널을 통해 인식하고 응용 프로그램이 확장성 있는 원격 메모리를 사용하고 접근할 수 있게 된다. 원격 메모리 에이전트는 블록 내의 메모리 관리(MMU) 기능, 일관성 관리 기능, 직접 메모리 접근 (DMA) 기능, 메모리 관계 관리 기능과 연동하여 각 블록에서 로컬 메모리처럼 원격 메모리 사용과 접근을 가능하게 한다.
원격 메모리 에이전트는 각 블록 내의 블록(프로세서, 가속기)의 메모리 에이전트의 관여 없이 로컬 메모리에 접근하여 데이터 읽고 쓰기가 가능할 수 있다. 이때, 원격 메모리 에이전트는 프로그램 및 로컬 메모리와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터(Coherent Data)와 일관성을 유지하지 않는 데이터(Non-Coherent Data)로 구분할 수 있다.
원격 메모리 에이전트는 광 회선을 통한 상기 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 송수신할 수 있다..
원격 메모리 에이전트는 프로세서의 물리 메모리 주소, OS 가상 메모리 주소, 각 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address)의 매핑 테이블을 관리할 수 있다. 원격 메모리 에이전트는 원격 메모리 접근 때 상기 주소들 사이의 변환 기능을 수행할 수 있다.
원격 메모리 에이전트는 원격으로 제어 가능한 데이터들에 대한 일관성을 유지하기 위해 블록내 일관성 유지 기능을 확장하여 새로운 메모리 계층으로 원격 메모리를 구성할 수 있다.
원격 메모리 에이전트는 원격 메모리 데이터의 읽고 쓰기의 마스터(Master)와 슬레이브(Slave)기능 또는 요청자(Requester)와 응답자(Responder) 기능을 수행할 수 있다. 원격 메모리 에이전트는 블록 내 자원 메모리 에이전트와 마스터(Master)와 슬레이브(Slave)기능으로 연동하거나 By-Pass할 수 있다. 원격 메모리 에이전트는 원격 메모리 접근을 위해 적합한 읽기, 쓰기 메시지 정보를 포함하는 데이터 프레임을 구성하여 메모리 데이터의 읽기, 쓰기 동작에 대한 요청 기능과 응답 기능을 수행할 수 있다.
도 5는 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함된 메모리를 공유 메모리로 설정하고, 협업 운영 설정 정보를 설명하기 위한 도면이다.
도 5의 (a)에 해당하는 분할 운용 관리 인터페이스는 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 메모리의 협업 운용을 수행하기 위해 OS와 제어 평면(Control Plane)으로부터 광 연결을 위해 광회선과 광학적 정보(파장 ID, 레인(lane) ID, 회선ID, 목적지 블록 ID, 대역폭 등)을 설정할 수 있다. 분할 운용 관리 인터페이스는 블록 간에 공유 가능한 특정 프로그램이 각 블록의 로컬 메모리와 원격 메모리를 통해 협업을 수행하는 경우, 프로그램별 사용되는 원격 메모리 ID를 설정할 수 있다.
분할 운용 관리 인터페이스는 원격 메모리의 물리 메모리 주소, OS 가상 메모리 주소, 각 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address)의 매핑 테이블이 운용되는 프로그램이 구동되는 각 블록에서 관리되고 해당 값들이 설정될 수 있다.
분할 운용 관리 인터페이스를 통해 광회선과 광학적 정보의 설정이 완료되면, 도 5의 (b)에 해당하는 각 블록에 대하여, 본 발명은 프로세서 블록과의 로컬 메모리와 가속기 블록의 로컬 메모리 중 일부 메모리 영역을 각 블록의 공유 메모리를 설정할 수 있다. 그리고, 각 블록은 타 블록의 공유 메모리를 접근할 수 있도록 원격 메모리로 설정하여 원격 메모리로 사용될 메모리의 주소, 공간을 지정할 수 있다. 프로세서 블록과 가속기 블록은 자신의 로컬 메모리의 계층 체계에 블록 외 원격 메모리의 새로운 메모리 계층을 사용할 수 있게 된다.
그리고, 프로세서 블록과 가속기 블록의 원격 메모리로서 메모리 패브릭 블록은 공유 메모리로 사용하도록 지정될 수 있다. 메모리 패브릭 블록에서 특정 블록 ID들이 사용될 메모리의 주소, 공간을 지정하면, 프로세서 블록과 가속기 블록은 자신의 로컬 메모리의 계층 체계에 메모리 패브릭 블록의 원격 메모리를 새로운 메모리 계층으로 사용할 수 있게 된다.
도 6은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원의 각 블록에 포함된 메모리를 공유 메모리로 활용하는 동작을 설명하기 위한 도면이다.
단계(601)에서 프로세서 블록의 코어(프로세서)는 프로세서 블록의 로컬 메모리에 데이터를 저장하는 방식으로 프로세서에서 동작하는 프로그램을 동작시킬 수 있다.
단계(602)에서 가속기 블록의 가속기 엔진은 가속기 블록의 로컬 메모리에 데이터를 저장하는 방식으로 가속기 블록의 가속기에서 동작하는 프로그램을 동작시킬 수 있다.
단계(603)에서 프로세서 블록의 코어(프로세서)는 블록 내 공유 메모리로의 접근이 가능하며 프로세서 블록 내 공유 메모리에 대한 접근 지연은 로컬 메모리의 수준으로 빠르게 동작할 수 있다. 블록 내 원격 메모리의 설정은 이종 컴퓨팅 자원의 각 블록들과 메모리를 공유할 때, 메모리 패브릭 블록보다는 작은 접속 지연, 왕복 지연을 가지는 특성이 있고, 상대적으로 규모가 작은 데이터의 공유와 빠른 처리가 필요한 경우 사용될 수 있다. 프로세서 블록 내의 프로세서 데이터 처리 과정에서 가속기와 협업을 위한 데이터를 프로세서 블록의 공유 메모리에 저장하여 가속기 블록이 접근할 있도록 할 수 있다.
단계(604)에서 가속기 블록의 가속기 엔진은 가속기 블록 내 공유 메모리의 접근이 가능하며, 원격 메모리의 설정에 따른 프로세서 블록 내 공유 메모리에 대한 접근 지연은 로컬 메모리 수준으로 빠르며 이종의 컴퓨팅 자원과 메모리를 공유할 때, 메모리 패브릭 블록보다는 작은 접속 지연, 왕복 지연을 가지는 특성이 존재합니다. 상대적으로 규모가 작은 데이터의 공유와 빠른 처리가 필요한 경우 사용될 수 있다. 가속기 블록내의 가속기 데이터 처리 과정에서 프로세서와 협업을 위한 데이터는 가속기 블록의 공유 메모리에 저장하여 프로세서 블록이 접근할 있도록 할 수 있다.
단계(605)와 (606)에서 메모리 패브릭 블록은 메모리 패브릭 블록의 메모리를 프로세서와 가속기의 협업 프로그램을 위한 공유 메모리로써, 원격 메모리를 설정할 수 있다. 이는 상대적으로 시간 지연에 덜 민감하고, 상대적으로 규모가 큰 데이터의 공유가 필요한 경우 사용될 수 있다. 프로세서와 가속기 데이터 처리 과정에서 협업을 위한 데이터는 메모리 패브릭 블록의 공유 메모리에 저장하여 프로세서와 가속기가 접근할 수 있도록 할 수 있다.
도 7은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원 중 프로세서 블록의 로컬 메모리 내 공유 메모리에 대한 일관성을 유지하는 과정을 설명하기 위한 도면이다.
단계(701)에서 프로세서 블록은 프로세서 블록 내 데이터 처리 과정에서 가속기와 데이터 협업 처리를 위한 데이터(또는, 프로세서 협업 데이터)를 프로세서 블록의 공유 메모리에 저장하거나, 또는, 해당 데이터가 변경될 수 있다.
단계(702)에서 프로세서 블록은 자원 메모리 에이전트 내 원격 메모리 에이전트(CPU remote memory agent)는 공유 메모리의 새로운 데이터 저장 또는 변경된 사항을 감지할 수 있다. 원격 메모리 에이전트는 프로세서(또는 코어)의 관여없이, 프로세서 블록 내 로컬 메모리의 공유 메모리 공간에서 로컬 메모리 컨트롤러(CPU local memory controller)를 경유하여 저장 또는 변경된 프로세서 협업 데이터를 읽어 들일 수 있다.
원격 메모리 에이전트는 프로세서 협업 데이터를 분할 운용 인터페이스(CPU Disaggregation Interface)에 전달할 수 있다. 다시 말해, 원격 메모리 에이전트는 가속기 블록 내의 로컬 메모리에 데이터의 쓰기 명령 또는 쓰기 요청을 진행해야 하는 경우, 읽어 들인 프로세서 협업 데이터와 이에 필요한 정보를 분할 운용 인터페이스에 전달할 수 있다. 여기서, 필요한 정보는 물리 메모리 주소, OS 가상 메모리 주소, 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address)의 매핑 테이블에 의해 주소 매핑을 거쳐 분할운용 메모리 주소, 쓰기 명령(요청) 정보일 수 있다.
단계(703)에서 분할 운용 인터페이스는 원격 메모리 에이전트로부터 수신한 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 프로세서 협업 데이터를 기반으로 광 연결이 가능한 분할 운용 프레임을 생성할 수 있다. 분할 운용 인터페이스는 생성한 분할 운용 프레임을 가속기 블록의 분할 운용 인터페이스에 전송할 수 있다.
분할 운용 프레임을 수신한 가속기 블록의 분할 운용 인터페이스는 분할 운용 프레임을 종단하고, 분할 운용 메모리 주소, 쓰기 명령(요청) 정보와 프로세서 협업 데이터를 가속기 블록의 원격 메모리 에이전트(Acc. remote memory agent)에 전달할 수 있다.
단계(704)에서 가속기 블록의 원격 메모리 에이전트(Acc. remote memory agent)는 분할 운용 메모리 주소, 쓰기 명령(요청) 정보와 프로세서 협업 데이터를 수신할 수 있다. 이후, 가속기 블록의 원격 메모리 에이전트는 매핑 테이블을 통해 가속기의 관여 없이 가속기 블록의 로컬 메모리 컨트롤러를 경유하여 협업을 위한 프로세서 협업 데이터를 가속기 블록의 로컬 메모리 공간에 저장하거나, 또는 변경할 수 있다. 매핑 테이블은 물리 메모리 주소, OS 가상 메모리 주소, 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address) 등을 포함할 수 있다.
이때, 가속기 블록의 원격 메모리 에이전트는 자원 메모리 에이전트에게 프로세서 협업 데이터의 일관성 유지 작업이 수행되었음을 통지하게 된다. 단계(704)에서 자원 메모리 에이전트는 프로세서 협업 데이터가 가속기 블록의 로컬 메모리의 공간에 저장 또는 변경되었음을 인지할 때, 로컬 메모리의 일관성을 유지하기 위한 작업을 수행할 수 있다. 이후, 자원 메모리 에이전트는 일관성 유지를 위해 가속기 블록의 로컬 메모리에 업데이트된 협업 데이터를 가속기가 이용하여 데이터 처리 과정을 수행할 수 있다. 그래서, 이종 컴퓨팅 자원의 자원 분할 협업 시스템에서 프로세서와 가속기 사이의 협업 데이터의 일관성을 유지할 수 있다.
자원 메모리 에이전트는 원격 메모리 에이전트로부터 인지한 일관성 유지 내용을 일관성 프로토콜 에이전트에 통지하여 일관성 프로토콜 에이전트가 로컬 메모리와 원격 메모리의 일관성 유지를 통합 관리할 수 있도록 한다.
도 8은 본 발명의 일실시예에 따른 이종 컴퓨팅 자원 중 가속기 블록의 로컬 메모리 내 공유 메모리에 대한 일관성을 유지하는 과정을 설명하기 위한 도면이다.
단계(801)에서 가속기 블록은 가속기 블록 내 데이터 처리 과정에서 프로세서와 데이터 협업 처리를 위한 데이터(가속기 협업 데이터)를 가속기 블록의 공유 메모리에 저장하거나 또는, 해당 데이터가 변경될 수 있다.
단계(802)에서 가속기 블록은 자원 메모리 에이전트의 원격 메모리 에이전트(ACC remote memory agent)는 공유 메모리의 새로운 데이터 저장 또는, 변경된 사항을 감지할 수 있다. 원격 메모리 에이전트는 가속기의 관여없이 가속기 블록의 로컬 메모리의 공유 메모리 공간에서 로컬 메모리 컨트롤러(ACC local memory controller)를 경유하여 저장 또는 변경된 가속기 협업 데이터를 읽어 들일 수 있다.
원격 메모리 에이전트는 가속기 협업 데이터를 분할 운용 인터페이스(ACC Disaggregation Interface)에 전달할 수 있다. 다시 말해, 원격 메모리 에이전트는 프로세서 블록 내의 로컬 메모리에 가속기 협업 데이터의 쓰기 명령 또는 쓰기 요청을 진행해야 하는 경우, 읽어 들인 가속기 협업 데이터와 이에 필요한 정보를 분할 운용 인터페이스에 전달할 수 있다. 여기서, 필요한 정보는 물리 메모리 주소, OS 가상 메모리 주소, 원격 메모리 주소와 분할 운용 프레임(Disaggregation Frame)에 사용되는 분할 운용 메모리 주소(Disaggregation Address)의 매핑 테이블에 의해 주소 매핑을 거쳐 분할운용 메모리 주소, 쓰기 명령(요청) 정보 등을 포함할 수 있다.
단계(803)에서 분할 운용 인터페이스는 원격 메모리 에이전트로부터 수신한 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 데이터를 기반으로 광 연결이 가능한 분할 운용 프레임을 생성할 수 있다. 분할 운용 인터페이스는 생성한 분할 운용 프레임을 프로세서 블록의 분할 운용 인터페이스에 전송할 수 있다.
분할 운용 프레임을 수신한 프로세서 블록의 분할운용 인터페이스는 분할 운용 프레임을 종단하고 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 가속기 협업 데이터를 프로세서 블록의 원격 메모리 에이전트에 전달할 수 있다.
단계(704)에서 프로세서 블록의 원격 메모리 에이전트는 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 가속기 협업 데이터를 수신할 수 있다. 프로세서 블록의 원격 메모리 에이전트는 매핑 테이블을 통해 CPU의 관여 없이 로컬 메모리 컨트롤러를 경유하여 가속기 협업 데이터를 프로세서 블록의 메모리 공간에 저장하거나 또는 변경할 수 있다. 매핑 테이블은 물리 메모리 주소, OS 가상 메모리 주소, 원격 메모리 주소와 분할 운용 프레임에 사용되는 분할 운용 메모리 주소 등을 포함할 수 있다.
이때, 프로세서 블록의 원격 메모리 에이전트는 자원 메모리 에이전트에게 가속기 협업 데이터의 일관성 유지 작업이 수행되었음을 통지하게 된다.단계(805)에서 자원 메모리 에이전트는 가속기 협업 데이터가 프로세서 블록의 로컬 메모리의 공간에서 저장 또는 변경되었음을 인지할 때, 로컬 메모리의 일관성을 유지하기 위한 작업을 수행할 수 있다. 이후, 자원 메모리 에이전트는 일관성 유지를 위해 프로세서 블록의 로컬 메모리에 업데이트된 가속기 협업 데이터를 프로세서가 이용하여 데이터 처리 과정을 수행할 수 있다. 그래서, 이종 컴퓨팅 자원의 자원 분할 협업 시스템에서 프로세서와 가속기 사이의 협업 데이터의 일관성을 유지할 수 있다.
자원 메모리 에이전트는 원격 메모리 에이전트로부터 인지한 일관성 유지 내용을 일관성 프로토콜 에이전트에 통지하여 일관성 프로토콜 에이전트가 로컬 메모리와 원격 메모리의 일관성 유지를 통합 관리할 수 있도록 한다.
도 9는 본 발명의 일실시예에 따른 메모리 패브릭 블록의 공유 메모리의 데이터와 각 블록의 로컬 메모리의 데이터 간에 일관성을 유지하는 과정을 설명하기 위한 도면이다.
단계(901)에서 이종 컴퓨팅 자원의 데이터 처리 과정에서 프로세서가 가속기와 협업을 위한 프로세서 협업 데이터는 메모리 패브릭 블록의 공유 메모리에 저장되거나 또는, 변경될 수 있다. 메모리 패브릭 블록의 공유 메모리 내 프로세서 협업 데이터의 저장 또는 변경되면, 메모리 패브릭 에이전트는 이를 감지하고, 메모리 패브릭 컨트롤러를 경유하여 저장 또는 변경된 프로세서 협업 데이터를 읽어 들일 수 있다.
메모리 패브릭 에이전트는 프로세서 협업 데이터를 메모리 분할 운용 인터페이스에 전달할 수 있다. 다시 말해, 메모리 패브릭 에이전트는 가속기 블록 내의 로컬 메모리에 데이터의 쓰기 명령 또는 쓰기 요청을 진행해야 하는 경우, 읽어 들인 프로세서 협업 데이터와 이에 필요한 정보를 메모리 분할 운용 인터페이스에 전달할 수 있다. 여기서, 필요한 정보는 물리 메모리 주소, OS 가상 메모리 주소, 원격 메모리 주소와 분할 운용 프레임에 사용되는 분할 운용 메모리 주소의 매핑 테이블에 의해 주소 매핑을 거쳐 분할운용 메모리 주소, 쓰기 명령(요청) 정보일 수 있다.
단계(902)에서 메모리 분할 운용 인터페이스는 분할 운용 메모리 주소, 쓰기 명령(요청) 정보와 데이터를 기반으로 광 연결이 가능한 분할 운용 프레임을 생성할 수 있다. 메모리 분할 운용 인터페이스는 생성한 분할 운용 프레임을 가속기 블록의 분할 운용 인터페이스에 전송할 수 있다.
분할 운용 프레임을 수신한 가속기 블록의 분할 운용 인터페이스는 분할 운용 프레임을 종단하고, 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 프로세서 협업 데이터를 가속기 블록의 원격 메모리 에이전트(Acc. remote memory agent)에 전달할 수 있다.
단계(903)에서 가속기 블록의 원격 메모리 에이전트는 분할 운용 메모리 주소, 쓰기 명령(요청) 정보와 프로세서 협업 데이터를 수신할 수 있다. 이후, 가속기 블록의 원격 메모리 에이전트는 매핑 테이블을 통해 가속기의 관여 없이 가속기 블록의 로컬 메모리 컨트롤러를 경유하여 협업을 위한 프로세서 협업 데이터를 가속기 블록의 로컬 메모리 공간에 저장하거나, 또는 변경할 수 있다.
단계(904)에서 가속기 블록의 원격 메모리 에이전트는 자원 메모리 에이전트에게 프로세서 협업 데이터의 일관성 유지 작업이 수행되었음을 인지하고, 로컬 메모리의 일관성을 유지하기 위한 작업을 수행할 수 있다. 이후, 자원 메모리 에이전트는 일관성 유지를 위해 가속기 블록의 로컬 메모리에 업데이트된 가속기 협업 데이터를 가속기가 이용하여 데이터 처리 과정을 수행할 수 있다.
이에, 이종 컴퓨팅 자원의 자원 분할 협업 시스템에서 프로세서, 가속기와 메모리 패브릭 블록 사이의 협업 데이터의 일관성을 유지할 수 있다.
단계(910)에서 이종 컴퓨팅 자원의 데이터 처리 과정에서 가속기가 프로세서와 협업을 위한 가속기 협업 데이터는 메모리 패브릭 블록의 공유 메모리에 저장되거나 또는, 변경될 수 있다. 메모리 패브릭 블록의 공유 메모리 내 가속기 협업 데이터의 저장 또는 변경되면, 메모리 패브릭 에이전트는 이를 감지하고, 메모리 패브릭 컨트롤러를 경유하여 저장 또는 변경된 가속기 협업 데이터를 읽어 들일 수 있다.
메모리 패브릭 에이전트는 가속기 협업 데이터를 메모리 분할 운용 인터페이스에 전달할 수 있다. 다시 말해, 메모리 패브릭 에이전트는 프로세서 블록 내의 로컬 메모리에 데이터의 쓰기 명령 또는 쓰기 요청을 진행해야 하는 경우, 읽어 들인 가속기 협업 데이터와 이에 필요한 정보를 메모리 분할 운용 인터페이스에 전달할 수 있다.
단계(920)에서 메모리 분할 운용 인터페이스는 분할 운용 메모리 주소, 쓰기 명령(요청) 정보와 데이터를 기반으로 광 연결이 가능한 분할 운용 프레임을 생성할 수 있다. 메모리 분할 운용 인터페이스는 생성한 분할 운용 프레임을 프로세서 블록의 분할 운용 인터페이스에 전송할 수 있다.
분할 운용 프레임을 수신한 프로세서 블록의 분할 운용 인터페이스는 분할 운용 프레임을 종단하고, 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 가속기 협업 데이터를 프로세서 블록의 원격 메모리 에이전트(Acc. remote memory agent)에 전달할 수 있다.
단계(930)에서 프로세서 블록의 원격 메모리 에이전트는 분할운용 메모리 주소, 쓰기 명령(요청) 정보와 가속기 협업 데이터를 수신할 수 있다. 프로세서 블록의 원격 메모리 에이전트는 매핑 테이블을 통해 CPU의 관여 없이 로컬 메모리 컨트롤러를 경유하여 가속기 협업 데이터를 프로세서 블록의 메모리 공간에 저장하거나 또는 변경할 수 있다.
단계(940)에서 프로세서 블록의 원격 메모리 에이전트는 자원 메모리 에이전트에게 가속기 협업 데이터의 일관성 유지 작업이 수행되었음을 인지하고, 로컬 메모리의 일관성을 유지하기 위한 작업을 수행할 수 있다. 이후, 자원 메모리 에이전트는 일관성 유지를 위해 프로세서 블록의 로컬 메모리에 업데이트된 가속기 협업 데이터를 프로세서가 이용하여 데이터 처리 과정을 수행할 수 있다.
자원 메모리 에이전트는 원격 메모리 에이전트로부터 인지한 일관성 유지 내용을 일관성 프로토콜 에이전트에 통지하여 일관성 프로토콜 에이전트가 로컬 메모리와 원격 메모리의 일관성 유지를 통합 관리할 수 있도록 한다.
이에, 이종 컴퓨팅 자원의 자원 분할 협업 시스템에서 프로세서, 가속기와 메모리 패브릭 블록 사이의 협업 데이터의 일관성을 유지할 수 있다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
201: 분할 운용 스위치
202, 203, 204: 복수의 블록들
205: 가속기 블록
206: 프로세서 블록
207, 208: 프로세서 블록 및 가속기 블록에 포함된 각각의 로컬 메모리
209: 메모리 패브릭 블록

Claims (17)

  1. 컴퓨팅 자원 분할 협업 시스템이 수행하는 자원 분할 협업 방법에 있어서,
    광 회선을 통해 상호 연결된 랙 규모(Rack Scale)로 구성되는 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간 분할 운용 스위치를 통해 경로를 설정하는 단계;
    상기 설정된 경로에 따라 복수의 블록들을 연결하고, 메모리의 협업 운용을 수행하기 위해 경로가 연결된 블록들 각각에 포함된 메모리로의 접근을 허용하기 위한 협업 운영 설정 정보를 설정하는 단계; 및
    상기 협업 운영 설정 정보를 기반으로 상기 경로가 연결된 블록들 간에 공유 가능한 프로그램에 따른 복수의 블록들 각각에 포함된 메모리의 데이터를 공유하는 단계;
    를 포함하는 자원 분할 협업 방법.
  2. 제1항에 있어서,
    상기 공유하는 단계는,
    상기 협업 운영 설정 정보에 기초하여 경로가 연결된 블록들 중 하나의 블록에서 블록 내외 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체가 되는 마스터 모드(또는, 요청자 모드)로 설정하는 단계;
    상기 마스터 모드(또는, 요청자 모드)로 설정된 블록을 제외한 나머지 블록을 슬레이브 모드(또는, 응답자 모드)로 설정하는 단계;
    상기 마스터 모드(또는, 요청자 모드)로 설정된 블록과 슬레이브 모드(또는, 응답자 모드)로 설정된 블록 간에 광 회선을 통해 메모리 공유가 가능한 프로그램을 설정하는 단계; 및
    상기 경로가 연결된 블록들 간에 설정된 프로그램과 메모리를 공유하며, 협업 계산 과정에서의 복수의 블록 각각에 포함된 데이터의 정보를 공유하는 단계;
    를 포함하는 자원 분할 협업 방법.
  3. 제1항에 있어서,
    상기 프로세서 블록들 및 가속기 블록들은,
    상기 프로세서 블록들 및 가속기 블록들 각각에 포함된 원격 메모리 에이전트를 이용하여 상기 경로가 연결된 블록들 중 적어도 하나의 블록에 포함된 메모리에 접근하여, 접근된 메모리의 데이터를 제어하는 자원 분할 협업 방법.
  4. 제3항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 경로가 연결된 블록들 중 하나의 블록에서 블록 내외 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체를 고려하여 상기 복수의 블록들 각각에 대해 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정하는 자원 분할 협업 방법.
  5. 제3항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 복수의 블록들 각각에 포함된 로컬 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하며, 로컬 메모리와 원격 메모리의 데이터에 관한 일관성을 관리하는 자원 분할 협업 방법.
  6. 제5항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 프로그램 및 로컬 메모리와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터(Coherent Data)와 일관성을 유지하지 않는 데이터(Non-Coherent Data)로 구분하는 자원 분할 협업 방법.
  7. 제3항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 광 회선을 통한 상기 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 송수신하는 자원 분할 협업 방법.
  8. 제3항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 적어도 하나에 존재하는 물리 주소, 가상 주소, 원격 물리 주소 및 분할 운용 메모리 주소에 대한 매핑 테이블을 관리하고,
    상기 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간에 경로를 재 연결하고자 하는 경우, 상기 매핑 테이블의 주소값을 변환하는 자원 분할 협업 방법.
  9. 제1항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 프로세서 블록들, 가속기 블록들 또는 메모리 패브릭 블록들과 공유 가능한 프로그램에 따른 각 블록에 포함된 메모리의 데이터를 공유하기 위해 상기 블록들 각각에 포함된 메모리 일부를 공유 메모리로 지정하고 타 블록의 공유 메모리를 원격 메모리로 관리하여 프로세서 블록들 또는, 가속기 블록들과 공유하는 자원 분할 협업 방법.
  10. 프로세서 블록 또는, 가속기 블록에 포함되는 컴퓨팅 자원 분할 협업 장치에 있어서,
    상기 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 메모리의 데이터에 관한 일관성 유지 및 관리를 제공하는 일관성 프로토콜 에이전트;
    광 회선을 통해 상호 연결된 박스 규모 또는 랙 규모로 구성되는 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 메모리의 협업 운용을 수행하기 위해 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 제어하는 원격 메모리 에이전트;
    상기 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록 내에 프로세싱과 계산에 사용되는 정보와 데이터가 저장되는 로컬 메모리;
    원격 메모리 에이전트과 로컬 메모리 간에 데이터를 읽고 쓰는 동작 주체를 고려하여 중재 기능을 제어하는 자원 메모리 에이전트;
    원격 메모리 에이전트과 로컬 메모리 간 읽고 쓰여지는 데이터를 제어하는 로컬 메모리 컨트롤러;
    로컬 메모리와 원격메모리의 일관성을 유지하기 위한 데이터를 송수신하는 분할 운용 인터페이스; 및
    매핑과 관련된 협업 운영 설정 정보를 관리하는 정보 관리 인터페이스
    를 포함하는 컴퓨팅 자원 분할 협업 장치.
  11. 제10항에 있어서,
    상기 일관성 프로토콜 에이전트는,
    로컬 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하고 컴퓨팅 자원 분할 협업 장치의 적용에 의해 원격 물리 주소, 분할 운영 주소를 관리하며, 프로세싱에 필요한 캐쉬 메모리를 포함한 로컬 메모리의 데이터에 관한 일관성 유지 및 관리를 제공하는 컴퓨팅 자원 분할 협업 장치.
  12. 제10항에 있어서,
    상기 자원 메모리 에이전트는,
    상기 경로가 연결된 블록들 중 하나의 블록에서 접근 가능한 메모리와 데이터를 제어하기 위한 동작 주체를 고려하여 상기 복수의 블록들 각각에 대해 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정하는 컴퓨팅 자원 분할 협업 장치.
  13. 제10항에 있어서,
    상기 자원 메모리 에이전트는,
    상기 복수의 블록들 각각에 포함된 로컬 메모리에 접근하기 위한 가상 주소와 물리 주소를 관리하며, 로컬 메모리의 데이터에 관한 일관성을 관리하는 컴퓨팅 자원 분할 협업 장치.
  14. 제13항에 있어서,
    상기 원격 메모리 에이전트는,
    상기 프로그램 및 로컬 메모리와 원격 메모리의 데이터를 이용하여 일관성을 유지하고 있는 데이터와 일관성을 유지하지 않는 데이터로 구분하는 컴퓨팅 자원 분할 협업 장치.
  15. 제10항에 있어서,
    상기 자원 메모리 에이전트는,
    상기 프로세스 블록들, 가속기 블록들 및 메모리 패브릭 블록들 중 적어도 하나의 물리 주소, 가상 주소, 원격 물리 주소 및 분할 운용 메모리 주소에 대한 매핑 테이블을 관리하고,
    상기 메모리의 협업 운용을 수행하기 위해 복수의 블록들 간에 경로를 재 연결하고자 하는 경우, 상기 매핑 테이블의 주소값을 변환하는 컴퓨팅 자원 분할 협업 장치.
  16. 제10항에 있어서,
    상기 분할 운용 인터페이스는,
    상기 광 회선을 통한 상기 경로가 연결된 블록들 각각에 포함된 메모리의 데이터를 송수신하는 컴퓨팅 자원 분할 협업 장치.
  17. 컴퓨팅 자원 분할 협업 장치 포함되는 자원 메모리 에이전트에 있어서,
    상기 블록 내 로컬 메모리와 블록 외 원격 메모리를 관리하는 메모리 관리 모듈;
    상기 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터에 관한 일관성을 관리하는 일관성 관리 모듈;
    상기 블록에 블록 내의 프로세서 관여 없이 블록에 포함된 로컬 메모리와 원격 메로리로의 직접 접근을 위한 기능을 제공하는 직접 메모리 접근 모듈; 및
    상기 블록 내 로컬 메모리와 블록 외 원격 메모리의 데이터를 제어하기 위한 동작 주체를 고려하여 상기 로컬 메모리와 원격 메모리에 대한 접근 모드를 마스터 모드(또는, 요청자 모드) 또는, 슬레이브 모드(또는, 응답자 모드)로 결정하는 메모리 관계 관리 모듈;
    를 포함하는 자원 메모리 에이전트.
KR1020200050595A 2020-04-27 2020-04-27 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법 KR102607421B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200050595A KR102607421B1 (ko) 2020-04-27 2020-04-27 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법
US17/221,086 US20210334143A1 (en) 2020-04-27 2021-04-02 System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200050595A KR102607421B1 (ko) 2020-04-27 2020-04-27 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법

Publications (2)

Publication Number Publication Date
KR20210132348A true KR20210132348A (ko) 2021-11-04
KR102607421B1 KR102607421B1 (ko) 2023-11-29

Family

ID=78222247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200050595A KR102607421B1 (ko) 2020-04-27 2020-04-27 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법

Country Status (2)

Country Link
US (1) US20210334143A1 (ko)
KR (1) KR102607421B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102572143B1 (ko) * 2022-05-04 2023-08-29 코싸인온 주식회사 메모리 클라우드를 위한 메모리 자원 공유 방법 및 이를 이용한 메모리 자원 공유 시스템
US11868251B2 (en) 2021-11-09 2024-01-09 Electronics And Telecommunications Research Institute Interleaved wideband memory access method using optical switch, and server for performing the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138348B2 (en) * 2018-10-09 2021-10-05 Intel Corporation Heterogeneous compute architecture hardware/software co-design for autonomous driving

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070043536A (ko) * 2005-10-21 2007-04-25 삼성전자주식회사 데이터 처리 시스템 및 그의 데이터 처리방법
US7634650B1 (en) * 2004-07-22 2009-12-15 Xsigo Systems Virtualized shared security engine and creation of a protected zone
KR20170067716A (ko) * 2014-07-30 2017-06-16 리니어 알제브라 테크놀로지스 리미티드 저전력 컴퓨테이셔널 이미징
WO2019165355A1 (en) * 2018-02-25 2019-08-29 Intel Corporation Technologies for nic port reduction with accelerated switching
US20200050497A1 (en) * 2016-11-29 2020-02-13 Intel Corporation Cloud-based scale-up system composition

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030086300A1 (en) * 2001-04-06 2003-05-08 Gareth Noyes FPGA coprocessing system
US7577794B2 (en) * 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
EP1710703A1 (fr) * 2005-04-04 2006-10-11 Stmicroelectronics Sa Cohérence de cache dans un système multiprocesseurs à mémoire partagée
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8266389B2 (en) * 2009-04-29 2012-09-11 Advanced Micro Devices, Inc. Hierarchical memory arbitration technique for disparate sources
US9128849B2 (en) * 2010-04-13 2015-09-08 Apple Inc. Coherent memory scheme for heterogeneous processors
US8856456B2 (en) * 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
US9170948B2 (en) * 2012-12-23 2015-10-27 Advanced Micro Devices, Inc. Cache coherency using die-stacked memory device with logic die
JPWO2018179243A1 (ja) * 2017-03-30 2019-06-27 株式会社日立製作所 情報処理装置及び方法
US10303602B2 (en) * 2017-03-31 2019-05-28 Advanced Micro Devices, Inc. Preemptive cache management policies for processing units
US20200328879A1 (en) * 2019-08-13 2020-10-15 Intel Corporation Secure communications over computer buses
KR20230082484A (ko) * 2021-12-01 2023-06-08 삼성전자주식회사 전자 장치의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634650B1 (en) * 2004-07-22 2009-12-15 Xsigo Systems Virtualized shared security engine and creation of a protected zone
KR20070043536A (ko) * 2005-10-21 2007-04-25 삼성전자주식회사 데이터 처리 시스템 및 그의 데이터 처리방법
KR20170067716A (ko) * 2014-07-30 2017-06-16 리니어 알제브라 테크놀로지스 리미티드 저전력 컴퓨테이셔널 이미징
US20200050497A1 (en) * 2016-11-29 2020-02-13 Intel Corporation Cloud-based scale-up system composition
WO2019165355A1 (en) * 2018-02-25 2019-08-29 Intel Corporation Technologies for nic port reduction with accelerated switching

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868251B2 (en) 2021-11-09 2024-01-09 Electronics And Telecommunications Research Institute Interleaved wideband memory access method using optical switch, and server for performing the same
KR102572143B1 (ko) * 2022-05-04 2023-08-29 코싸인온 주식회사 메모리 클라우드를 위한 메모리 자원 공유 방법 및 이를 이용한 메모리 자원 공유 시스템
KR20230155996A (ko) * 2022-05-04 2023-11-13 코싸인온 주식회사 대용량 메모리 자원 공유 방법 및 메모리 브리지 ic를 이용한 효율적인 메모리 자원 공유 시스템

Also Published As

Publication number Publication date
KR102607421B1 (ko) 2023-11-29
US20210334143A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US11841814B2 (en) System with cache-coherent memory and server-linking switch
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
US10469252B2 (en) Technologies for efficiently managing allocation of memory in a shared memory pool
US10254987B2 (en) Disaggregated memory appliance having a management processor that accepts request from a plurality of hosts for management, configuration and provisioning of memory
JP2021190125A (ja) メモリリソースを管理するためのシステム及び方法
KR102607421B1 (ko) 광 회선을 통해 상호 연결된 컴퓨팅 자원 분할 협업 시스템, 자원 분할 협업 방법
CN109445905B (zh) 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN110809760B (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
US20210266253A1 (en) Pooling of network processing resources
JP7423681B2 (ja) アクセラレーションシステム、アクセラレーション方法、及びコンピュータプログラム
CN112783667B (zh) 基于虚拟环境的内存共享系统及方法
CN105706068A (zh) 路由存储器流量和i/o流量的存储器网络
US10592451B2 (en) Memory access optimization for an I/O adapter in a processor complex
CN107491340B (zh) 跨物理机的巨型虚拟机实现方法
US20190278676A1 (en) Technologies for fast recovery of distributed storage systems on disaggregated storage
CN115934366A (zh) 服务器存储扩展方法、装置、设备、介质及整机柜系统
CN114510321A (zh) 资源调度方法、相关装置和介质
US11249808B2 (en) Connecting accelerator resources using a switch
CN117493237B (zh) 计算设备、服务器、数据处理方法和存储介质
US10917496B2 (en) Networked storage architecture
US11698878B1 (en) Highspeed shared-memory optical network interfaces and topology
US20240012684A1 (en) Memory disaggregation method, computing system implementing the method
US20220360646A1 (en) Apparatus and method to perform synchronization services in a switch
US11995357B2 (en) Disaggregation computing system and method
US20240069755A1 (en) Computer system, memory expansion device and method for use in computer system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right