KR20220146835A - 컴퓨팅 자원 분할 운용 방법 및 장치 - Google Patents

컴퓨팅 자원 분할 운용 방법 및 장치 Download PDF

Info

Publication number
KR20220146835A
KR20220146835A KR1020210053585A KR20210053585A KR20220146835A KR 20220146835 A KR20220146835 A KR 20220146835A KR 1020210053585 A KR1020210053585 A KR 1020210053585A KR 20210053585 A KR20210053585 A KR 20210053585A KR 20220146835 A KR20220146835 A KR 20220146835A
Authority
KR
South Korea
Prior art keywords
memory
divided
read
divided memory
processing device
Prior art date
Application number
KR1020210053585A
Other languages
English (en)
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 KR1020210053585A priority Critical patent/KR20220146835A/ko
Priority to US17/535,761 priority patent/US20220342835A1/en
Publication of KR20220146835A publication Critical patent/KR20220146835A/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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

컴퓨팅 자원 분할 운용 방법 및 장치가 개시된다. 일 실시예에 따른 분할 컨트롤러는, 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 처리 장치의 데이터 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 분할 제어 에이전트와, 기 분할 메모리 지연이 임계값 이하인 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 직접 접근 요청기와, 상기 분할 메모리 지연이 임계값보다 큰 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 간접 접근 요청기를 포함한다.

Description

컴퓨팅 자원 분할 운용 방법 및 장치{METHOD AND APPARATUS FOR DISAGGREGATION OF COMPUTING RESOURCE}
아래 개시는 컴퓨팅 자원 분할 운용 방법 및 장치에 관한 것이다.
최근의 데이터 처리와 데이터 통신 네트워크는 인공지능, 자율 주행, 로봇, 헬스 케어, 가상/증강 현실, 및 홈 네트워크와 연관 다양한 서비스를 수용해야 한다. 따라서, 데이터 센터에 존재하는 클라우드의 처리 성능과 효율성이 강조되며, 많은 데이터 처리와 계산이 필요하기 때문에 늘어나는 데이터 양에 적합한 컴퓨터의 구조와 시스템이 요구된다.
아래 실시예들은 물리적으로 분리된 처리 장치들과 메모리 활용하여 큰 규모의 프로그램 사이의 협업, 각 처리 장치의 데이터 공유 및 분리된 메모리에 접근을 통한 컴퓨팅 자원의 분할 운용을 수행될 수 있도록 분리된 처리 장치, 가속기 및 메모리 사이의 연결에 관한 기술을 제공할 수 있다.
다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.
일 실시예에 따른 분할 컨트롤러는, 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 처리 장치의 데이터 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 분할 제어 에이전트와, 상기 분할 메모리 지연이 임계값 이하인 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 직접 접근 요청기와, 상기 분할 메모리 지연이 임계값보다 큰 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 간접 접근 요청기를 포함한다.
상기 분할 메모리 지연은, 상기 분할 메모리까지의 거리에 따른 지연과, 상기 처리 장치와 메모리 버스로 연결된 상기 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합일 수 있다.
상기 분할 제어 에이전트는, 상기 읽기 또는 쓰기 동작에 대응하는 메모리 주소에 기초하여 상기 분할 메모리와 연결되는 포트를 결정하고, 연결가능한 각각의 분할 메모리에 대한 분할 메모리 지연 값을 관리하고, 상기 처리 장치가 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있도록 연결된 메모리 버스 및 버스 스위치의 요청 및 응답 프로토콜에 따라 동작하며 직접 접근 및 간접 접근 상태를 구분할 수 있다.
상기 분할 직접 접근 요청기 및 상기 분할 간접 접근 요청기는, 상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하고, 수신된 응답 분할 메모리 프레임을 종단할 수 있다.
상기 처리 장치가 읽기 또는 쓰기 동작을 수행하는 경우, 상기 분할 직접 접근 요청기는, 쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하고, 읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달할 수 있다.
상기 처리 장치가 쓰기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는, 상기 분할 메모리가 응답하기 전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고, 쓰기 요청에 대한 상기 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알릴 수 있다.
상기 처리 장치가 읽기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는, 상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하고, 상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알릴 수 있다.
일 실시예에 따른, 컴퓨팅 시스템은 처리 장치와, 주 메모리와, 상기 처리 장치의 분할 메모리에 대한 읽기 또는 쓰기 동작을 제어하는 분할 컨트롤러와, 상기 처리 장치, 상기 주 메모리, 및 상기 분할 컨트롤러를 연결하는 메모리 버스를 포함하고, 상기 분할 컨트롤러는, 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 상기 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 분할 제어 에이전트와, 상기 분할 메모리 지연이 임계값 이하인 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 직접 접근 요청기와, 상기 분할 메모리 지연이 임계값보다 큰 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 간접 접근 요청기를 포함한다.
상기 분할 메모리 지연은, 상기 분할 메모리까지의 거리에 따른 지연과, 상기 처리 장치와 메모리 버스로 연결된 상기 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합일 수 있다.
상기 분할 제어 에이전트는, 상기 읽기 또는 쓰기 동작에 대응하는 메모리 주소에 기초하여 상기 분할 메모리와 연결되는 포트를 결정하고, 연결가능한 각각의 분할 메모리에 대한 분할 메모리 지연 값을 관리하고, 상기 처리 장치가 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있도록 연결된 메모리 버스 및 버스 스위치의 요청 및 응답 프로토콜에 따라 동작하며 직접 접근 및 간접 접근 상태를 구분할 수 있다.
상기 분할 직접 접근 요청기 및 상기 분할 간접 접근 요청기는, 상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하고, 수신된 응답 분할 메모리 프레임을 종단할 수 있다.
상기 처리 장치가 읽기 또는 쓰기 동작을 수행하는 경우, 상기 분할 직접 접근 요청기는, 쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하고, 읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달할 수 있다.
상기 처리 장치가 쓰기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는, 상기 분할 메모리가 응답하기 전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고, 쓰기 요청에 대한 상기 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알릴 수 있다.
상기 처리 장치가 읽기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는, 상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하고, 상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알릴 수 있다.
일 실시예에 따른 분할 메모리 운용 방법은, 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 처리 장치의 데이터 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 단계와, 분할 직접 접근 요청기 및 분할 간접 접근 요청기 중 결정된 요청기를 통해 상기 읽기 또는 쓰기 동작을 수행하는 단계를 포함한다.
상기 분할 메모리 지연은, 상기 분할 메모리까지의 거리에 따른 지연과, 상기 분할 메모리를 운용하는 상기 처리 장치와 메모리 버스로 연결된 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합일 수 있다.
상기 수행하는 단계는, 상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하고 수신된 응답 분할 메모리 프레임을 종단하는 단계를 포함할 수 있다.
상기 분할 직접 접근 요청기에 의해 상기 읽기 또는 쓰기 동작을 수행하는 경우, 상기 수행하는 단계는, 쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하는 단계와, 읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 기반으로 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달하는 단계를 포함할 수 있다.
상기 분할 간접 접근 요청기에 의해 상기 쓰기 동작을 수행하는 경우, 상기 수행하는 단계는, 상기 분할 메모리가 응답하기 전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하는 단계와, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하는 단계와, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하는 단계와, 상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고, 쓰기 요청에 대한 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알리는 단계를 포함할 수 있다.
상기 분할 간접 접근 요청기에 의해 상기 읽기 동작을 수행하는 경우, 상기 수행하는 단계는, 상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하는 단계와, 상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하는 단계와, 읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하는 단계와, 수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하는 단계와, 상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알리는 단계를 포함할 수 있다.
도 1은 종래의 컴퓨팅 시스템은 도시한다.
도 2는 일 실시예에 따른 분할 운용 방식이 적용된 컴퓨팅 시스템을 도시한다.
도 3은 도 2에 도시된 컴퓨팅 시스템의 동작을 설명하기 위한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 종래의 컴퓨팅 시스템은 도시한다.
종래의 컴퓨팅 시스템(100)은 처리 장치(processing unit; 101), DMA 컨트롤러(direct memory access controller; 109), 메모리 버스(memory bus; 103) 또는 버스 스위치(bus switch; 103), 메모리 컨트롤러(memory controller; 104), 온-칩 메모리(on-chip memory; 108), 메모리 관리 및 캐시 일관성 제어 장치(memory management & cache coherent; 109), 주 메모리(main memory; 150), 주변 장치 입출력 컨트롤러(peripheral in/out controllers; 106), 주변 장치 입출력 장치 및 버스(peripheral in/out & bus; 107)가 단일 보드 또는 메인 보드와 커넥터로 연결된 카드 보드 또는 서브 보드에 구현될 수 있다.
예를 들어, 보드(110; 예를 들어, 메인 보드)는 적어도 하나 이상의 칩(130)을 포함할 수 있고, 처리 장치(processing unit; 101), DMA 컨트롤러(direct memory access controller; 102), 메모리 버스(memory bus; 103) 또는 버스 스위치(bus switch; 103), 메모리 컨트롤러(memory controller; 104), 온-칩 메모리(on-chip memory; 108), 메모리 관리 및 캐시 일관성 제어 장치(memory management & cache coherent; 109), 주변 장치 입출력 컨트롤러(peripheral in/out controllers; 106)는 칩(130)에 구현될 수 있고, 주 메모리(main memory; 150)는 칩 (130)외부에 구현될 수 있고, 주변 장치 입출력 컨트롤러(peripheral in/out controllers; 106)는 주변 장치와 연결하기 위한 주변장치 입출력 버스 (peripheral in/out & Bus; 107)를 통해 칩(130) 외부의 주변장치와 연결되도록 구현될 수 있다. 가속기(accelerator), 그래픽 처리 장치(graphics processing unit(GPU)), 스토리지(storage), 디스플레이 포트(display port), 네트워크 인터페이스 카드(network interface card(NIC))와 같은 주변 장치(111~113)은 카드 보드 또는 서브 보드에 구현될 수 있다. 칩 사이 및/또는 보드 사이의 연결은 전기적 신호 케이블(예를 들어, 버스) 및/또는 커넥터로 연결될 수 있다.
처리 장치(101; 예를 들어, 중앙 처리 장치(CPU))는 운영 체제(operating system(OS)) 및/또는 응용 소프트웨어가 구동되면 데이터 처리와 계산과정에서 메모리를 사용할 수 있다. 메모리는 위치에 따라 칩(chip)의 외부에 존재하고 메모리 컨트롤러(104)와 연결된 주 메모리(105), 칩 내부에 존재하는 온-칩 메모리(108) 및/또는 처리 장치(101) 내부에 존재하는 캐시 메모리(cache memory)로 구분될 수 있다.
운영 체제는 메모리를 코드 영역, 데이터 영역, 스택(Stack) 영역, 힙(Heep) 영역으로 구분하여 관리할 수 있고, 프로그램을 메모리에 로드(load)되어 실행될 수 있도록 하고, 프로그램이 사용하는 변수와 데이터 정보가 메모리에 저장, 기억되어 정상적으로 프로그램이 실행되도록 할 수 있다.
처리 장치(101)의 코어(core)가 복수개로 증가함에 따라, 코어가 병렬처리를 원활하게 하기 위해서 캐시는 계층화되어 L1, L2, L3 캐쉬 등으로 구분되어 사용될 수 있다. 예를 들어, L1은 특정 코어가 사용하여 용량은 작지만 접근 속도가 빠르고, L2 및 L3는 여러 개의 코어가 함께 접근할 수 있고 용량은 크지만 상대적으로 접근 속도가 느릴 수 있다. 캐시는 용도에 따라 실행가능한 명령어(instruction)을 가져와서 사용하는 I-캐시(instruction-cache)와 데이터를 임시 저장하여 사용하기 위한 D-캐시(data-cache)로 구분되어 사용될 수도 있다.
처리 장치(101) 내부에 캐시 메모리 이외에 칩 내의 주변 장치와 명령어와 데이터를 함께 사용하기 위해 온-칩 메모리(108)가 존재하기도 할 수 있다. 처리 장치(101)는 주변 장치(111~113)와 주변 장치 입출력 컨트롤러(106)를 통해 연결될 수 있다.
처리 장치(101) 및 주변 장치(111~113)는 주 메모리(105)에 저장된 명령어, 데이터를 함께 사용할 수 있다. 메모리 컨트롤러(104), 주변 장치 입출력 컨트롤러(106) 및 처리 장치(101) 사이는 바이트 주소기반(byte-addressable)으로 읽고 쓰기가 가능하도록 버스(103)로 연결되어 있고, 필요에 따라 다중 연결을 위해 버스 스위치(103)가 존재할 수 있다.
처리 장치(101)는 메모리 컨트롤러(104)를 경유하여 특정 메모리 전용 버스로 읽고 쓰는 동작을 통해 데이터를 읽고 쓰는 작업을 수행하며, 메모리 컨트롤러(104)는 처리 장치(101)의 읽고 쓰기 성능 저하를 막기 위해 처리 장치에서 관리하는 클럭을 기준으로 나노 초(nano second) 레벨로 메모리에 담긴 데이터에 대한 읽고 쓰기 동작을 수행하여 처리 장치(101)에 응답할 수 있다. 처리 장치(101)는 수 클럭 주기로 빠르게 처리되는 읽고 쓰기 응답을 인식할 수 있어야 하며, 읽기 작업 또는 쓰기 작업이 완료될 때까지 기다릴 수 있다.
처리 장치(101)는 칩(130) 내부의 메모리 버스(103)를 통해 메모리 컨트롤러(104)로 접근할 수 있고, 메모리 컨트롤러(104)를 통해 칩(130) 외부의 보드(110) 상의 주 메모리(105)와 연결될 수 있다. 메모리 버스(103)는 읽고 쓰기 작업을 수행할 때, 메모리 버스(103) 내의 응답 신호를 통해 바로 읽고 쓰기 동작의 완료를 인식할 수 있다.
처리 장치(101)가 주 메모리(105)가 아닌 주변 장치(111~113)에 데이터를 쓰고 읽는 작업을 수행하는 경우, 데이터는 네트워크 프레임 또는 패킷으로 변환되거나 주변 장치(111~113)의 데이터 형식에 적합하게 변환되어야 하므로, 처리 장치(101)가 읽고 쓰기를 완료하기 위해 시간이 상대적으로 오래 걸릴 수 있으며, 늦은 응답 신호는 처리 장치(101)의 전체 작업의 성능을 저하시킬 수 있다.
처리 장치(101)는 DMA 컨트롤러(102)를 이용하여 주변 장치(111~113)와 데이터 읽기 동작 및 쓰기 동작을 수행할 수 있다. 본 명세서에서 DMA 컨트롤러의 쓰기 동작은 데이터 송신이라고 지칭하고 읽기 동작은 데이터 수신이라고 지칭하도록 한다. 처리 장치(101)는 주 메모리(105)에 데이터를 저장하고, DMA 컨트롤러(102)를 구동하여 DMA 컨트롤러(102)가 주 메모리(105)의 데이터를 주변 장치(111~113)에 전달하거나 그 역과정을 수행할 수 있다.
도 2는 일 실시예에 따른 분할 운용 방식이 적용된 컴퓨팅 시스템을 도시한다.
컴퓨팅 시스템(200)은 CPU(central processing unit)와 GPU(graphics processing unit) 및/또는 가속기(accelerator)와 같은 서로 다른 특성의 처리 장치(processing unit)가 보드간 커넥터 연결의 제약을 벗어나서, 물리적으로 떨어진 서로 다른 보드에 존재하고, CPU 클러스터(CPU clusters) 및/또는 GPU 클러스터(GPU clusters)와 같은 동종 클러스터의 계산 능력 확장뿐만 아니라, 서로 다른 특성의 처리 장치(processing unit)를 함께 활용한 계산과 데이터 처리를 수행할 수 있다. 컴퓨팅 시스템(200)은 규모가 큰 프로그램을 운용하기 위하여 각 처리 장치가 서로 물리적으로 서로 다른 보드에 존재할 때, 각 처리 장치와 각 처리 장치의 연결된 메모리(예: 온-칩 메모리, 주 메모리) 사이의 상호 연결과 물리적으로 분리된 메모리와 상호 연결을 포함할 수 있다.
컴퓨팅 시스템(200)은 도 2에 도시된 종래의 컴퓨팅 시스템(100)과 동일하게 보드(230) 내에 처리 장치(processing unit; 201), DMA 컨트롤러(direct memory access controller; 202), 메모리 버스(memory bus; 203) 또는 버스 스위치(bus switch; 203), 메모리 컨트롤러(memory controller; 204), 주 메모리(main memory; 150), 온-칩 메모리(on-chip memory; 206), 메모리 관리 및 캐시 일관성 제어 장치(memory management & cache coherent; 220), 주변 장치 입출력 컨트롤러(peripheral in/out controllers; 221)를 포함할 수 있고, 카드 보드 또는 보조 보드에 가속기(accelerator), 그래픽 처리 장치(graphics processing unit(GPU)), 스토리지(storage), 디스플레이 포트(display port), 네트워크 인터페이스 카드(network interface card(NIC))와 같은 주변 장치(222~224)를 포함할 수 있다.
컴퓨팅 시스템(200)은 보드(230) 내에 분할 컨트롤러(disaggregation controller; 207)를 더 포함할 수 있다. 처리 장치(201)와 연결된 분할 운용 컨트롤러(207)은 분할 제어 에이전트(disaggregation control agent; 208), 분할 간접 접근 요청기(disaggregation indirect requester; 209), 분할 직접 접근 요청기(disaggregation direct requester; 210), 분할 브릿지(disaggregation bridge; 212) 및 링크와 물리 계층으로 구성된 인터페이스(211)를 포함할 수 있다.
분할 컨트롤러(207)은 주소기반(byte-addressable) 메모리 버스(203)의 읽기와 쓰기를 위한 각 주소, 데이터 및 제어 정보를 분할 메모리 프레임(disaggregation memory frame(DM frame); 215)으로 변환하여 분할 메모리(disaggregation memory(DM); 213)로 전송하고 분할 메모리가 응답하는 분할 메모리 프레임을 수신할 수 있다.
분할 메모리(213)는 링크와 물리계층으로 구성된 인터페이스(216)를 통해 분할 컨트롤러(207)에서 전송하는 분할 메모리 프레임(215)을 수신할 수 있다. 분할 메모리(213)는 분할 메모리 프레임(215)의 읽기 쓰기 명령에 따라 데이터를 메모리에 쓰거나 읽은 후 분할 메모리 프레임(215)를 생성하여 분할 컨트롤러(207)에 전송할 수 있다.
분할 제어 에이전트(208)는 처리 장치(201)와 메모리 버스(203) 또는 버스 스위치(203)를 통해 연결되며, 처리 장치(201)는 분할 컨트롤러(207)를 주변 장치나 네트워크 카드로 인식하지 않고, 또 다른 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있다.
처리 장치(201)가 분할 컨트롤러(207)를 통해서 분할 메모리(213)에 접근할 때, 분할 직접 접근 요청기(210) 또는 분할 간접 접근 요청기(209)를 통해 분할 메모리(213)에 접근할 수 있다.
처리 장치(201)가 분할 직접 접근 요청기(210)를 통해 접근하는 경우, 처리 장치(201)는 동일한 메모리 버스 요청, 응답 프로토콜로 동작할 수 있다. 다만, 처리 장치(201)가 분할 간접 접근 요청기(209)를 통해 접근하는 경우, 처리 장치(201)는 처리 장치(201)의 읽고 쓰기에 대한 요청, 응답 프로토콜이 기존 메모리 버스 프로토콜과 다를 수 있고, DMA 컨트롤러(202)를 사용할 수 있다. 이 경우 DMA 컨트롤러(202)가 사용될 수 있으나, 이에 한정되는 것은 아니고, 분할 컨트롤러(207) 내부에 자체 DMA 컨트롤러가 포함될 수도 있고, 직접 접근과 간접 접근은 읽고 쓰기에 대한 요청, 응답 프로토콜의 제어신호의 정보를 확장하여 새로 정의함으로써 처리 장치가 직접 접근과 간접 접근으로 구분하여 할 수 있도록 한다.
도 3은 도 2에 도시된 컴퓨팅 시스템의 동작을 설명하기 위한 도면이다.
처리 장치(201)가 분할 컨트롤러(207)를 통해서 분할 메모리(213)에 접근할 때, 메모리 버스의 읽고 쓰기 명령은 분할 메모리 프레임(215)으로 변환되어 분할 메모리(213)로 전송될 수 있다. 분할 메모리(213)는 수신한 분할 메모리 프레임(215)의 쓰기 요청에 따라 데이터를 분할 메모리에 저장하거나 읽기 요청에 응답하여 분할 메모리 프레임(215)을 생성하고, 읽기 요청에 따라 응답 데이터 및/또는 읽기 쓰기 상태 정보를 응답 분할 메모리 프레임을 통해 처리 장치(201)로 전송할 수 있다.
분할 메모리(213)의 메모리 컨트롤러(304)와 메모리(305)가 처리 장치(201)와 동일한 보드 상의 메모리 컨트롤러(204)와 메모리(205)와 동일한 규격인 경우, 처리 장치(201)가 분할 메모리(213)에 접근하여 읽고 쓰기를 수행할 때 분할 지연(disaggregation delay(D))이 발생할 수 있다.
분할 지연(D)은 처리 장치(201)의 읽기 또는 쓰기 요청이 분할 메모리(213)의 메모리 컨트롤러(304)에 도착하고, 요청에 대응한 분할 메모리(213)의 응답이 처리 장치(201)의 버스(203)에 도착하기 까지의 왕복 지연을 포함할 수 있다. 예를 들어, 다른 종류의 분할 메모리들은 읽고 쓰기의 응답 지연 특성이 다를 수 있으므로, 읽기 지연(RD) 및 쓰기 지연(WD)는 구분되어 관리될 수 있다.
처리 장치 분할 컨트롤러 장치 지연(PU DC Delay(C); 302)는 처리 장치(201)의 분할 컨트롤러(207)에 의해 발생하는 지연일 수 있다. 데이터 길이 차에 대한 변화는 관리되고 지연특성에 추가될 수 있고 데이터 길이에 따라 산술적으로 계산하여 관리 가능하지만, 본 발명의 일 실시 예에서는 별도로 관리하여 반영하지 않으며, 분할 컨트롤러(207)가 하드웨어 로직으로 구현되는 경우에는 처리 장치의 분할 컨트롤러 장치 지연(PU DC Delay(C); 302)에 대한 평균 지연의 변화는 크지 않을 수 있다.
분할 지연(D)은 분할 메모리(213)까지의 링크와 물리계층의 전송 거리에 의존할 수 있고, 이종의 분할 메모리(213)가 존재할 경우, 분할 지연(D)은 메모리 성능과 응답 속도에 따른 지연인 분할 메모리 장치 지연(DM)에도 의존할 수 있다.
서로 다른 분할 메모리에 대한 응답 지연을 처리 장치에서 관리하기 위해서 분할 메모리 지연(disaggregated memory delay)은 분할 지연(D)과 처리 장치(201)의 분할 컨트롤러 장치 지연(C)과의 차(D-C)와 분할 메모리 장치 지연(DM)의 합(D-C+DM)에 의존하게 하며, 분할 메모리 지연(DMD)은 분할 컨트롤러(207)의 접근 제어 동작에 사용될 수 있다. 하지만, 분할 메모리 지연은 필요에 따라 메모리 분할을 위해서 유발되는 지연 요소들 간의 새로운 조합으로 만들 수 있다.
분할 메모리 지연(DMD)은 분할 컨트롤러(207)의 분할 메모리 프레임(215) 전송을 담당하는 각각의 인터페이스(211, 예를 들어, 포트(port))에 연결되는 각각의 분할 메모리(213)에 대한 분할 메모리 지연(DMD) 값은 분할 제어 에이전트(208)에 의해 관리될 수 있다.
분할 제어 에이전트(208)은 사전 설정된 분할 메모리와 관련된 특정 메모리 주소와 메모리 특성 등의 정보를 기반으로 처리 장치(201)가 메모리 버스(203)를 통해 분할 메모리(213)에 접근할 때, 메모리의 주소 정보 또는 특정 주소 정보 필드를 통해 어떤 분할 메모리(213)로 접근할 것인지를 판단할 수 있다.
분할 제어 에이전트(208)는 특정 메모리 주소와 관련된 포트(211)와 분할 메모리 지연(DMD)을 매핑하는 테이블을 가지고 있으며, 분할 제어 에이전트(208)를 통해 분할 메모리 지연(DMD)의 임계값이 설정될 수 있다.
특정 메모리 주소에 대응하는 분할 메모리 지연(DMD)이 임계값 이하인 경우, 메모리 주소의 읽고 쓰기와 관련된 분할 메모리 프레임(215)의 생성 및 응답 처리는 분할 직접 접근 요청기(210)를 통해 수행될 수 있다. 메모리 주소의 읽기 및/또는 쓰기 요청은 요청 분할 메모리 프레임(215)으로 생성되어 분할 메모리(213)으로 전송될 수 있다. 분할 메모리(213)의 메모리(305)에 읽기 및/또는 쓰기가 완료된 후, 분할 메모리(213)는 응답하는 분할 메모리 프레임(251)을 전송하고, 처리 장치(201)는 읽기 및/또는 쓰기 상태를 확인할 수 있는 메모리 버스 응답 신호를 수신하고 동작을 완료한다. 분할 메모리 프레임은 읽기 및/또는 쓰기에 따라 쓰기 데이터와 읽기 데이터를 포함한다.
특정 메모리 주소의 분할 메모리 지연(DMD)이 임계값보다 큰 경우, 메모리 주소의 읽고 쓰기와 관련된 분할 메모리 프레임(215)의 생성 및 응답 처리는 분할 간접 접근 요청기(209)를 통해 수행될 수 있다. 메모리 주소의 읽기 및/또는 쓰기 요청은 요청 분할 메모리 프레임(215)으로 생성되어 분할 메모리(213)으로 전송될 수 있고, 이 경우 분할 메모리가 응답하기 전, 처리 장치(201)는 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 요청된 메모리 버스를 통해 분할 컨트롤러(207)로부터 분할 메모리(213)의 메모리(305)에 간접 접근 상태를 알리는 간접 접근 응답 신호를 수신할 수 있다.
쓰기 동작을 수행하는 경우, 분할 컨트롤러(207)는 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 처리 장치(201)로 리턴할 수 있다. 분할 간접 접근 요청기(209)는 처리 장치(201)와 분할 간접 접근 요청기(209)가 접근 가능하고 분할 메모리(213)의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정할 수 있다. 처리 장치(201)는 간접 접근 응답 신호를 수신하여 간접 접근 요청을 마무리할 수 있다. 분할 간접 접근 요청기(209)는 쓰기 동작을 수행하기 위해 쓰기 데이터를 포함하는 분할 메모리 프레임(215)를 생성하여 전송할 수 있고, 분할 메모리 프레임을 수신한 응답기(303)은 분할 메모리(213)의 메모리(305)에 쓰기가 완료된 후, 분할 메모리(213)의 응답기(303)는 응답하는 분할 메모리 프레임(215)을 처리 장치(201)로 전송할 수 있다. 분할 간접 접근 요청기(209)는 응답하는 분할 메모리 프레임(215)을 수신하고, 쓰기 요청에 대한 분할 메모리의 응답 상태를 처리 장치(201)가 접근 가능하고 확인할 수 있는 주 메모리(205)의 메모리 주소에 표시할 수 있고, 쓰기 요청에 대한 분할 메모리의 응답 상태가 업데이트 되었음을 처리 장치(201)에 알릴 수 있다.
읽기 동작을 수행하는 경우, 분할 메모리(213)가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스(203)를 통해 처리 장치(201)로 리턴할 수 있다. 분할 간접 접근 요청기(209)는 처리 장치(201)와 분할 간접 접근 요청기(209)가 접근 가능하고 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정할 수 있다. 처리 장치(201)는 간접 접근 응답 신호를 수신하여 간접 접근 요청을 마무리할 수 있다. 분할 간접 접근 요청기(209)는 읽기 동작을 수행하기 위한 분할 메모리 프레임(215)를 생성하여 전송할 수 있고, 분할 메모리(213)의 메모리(305)에 읽기가 완료된 후, 분할 메모리(213)의 응답기(303)는 응답하는 분할 메모리 프레임(215)을 처리 장치로 전송할 수 있다. 분할 간접 접근 요청기(209)는 응답하는 분할 메모리 프레임(215)을 수신하고, 수신된 분할 메모리 프레임에서 읽기 요청에 대한 분할 메모리의 응답 상태와 상기 읽기 데이터를 처리 장치가 확인할 수 있는 주 메모리(205) 주소의 메모리 공간에 저장하고, 분할 메모리에 대한 읽기 상태와 읽기 데이터가 업데이트 되었음을 처리 장치(201)에 알릴 수 있다.
분할 제어 에이전트(208)는 처리 장치(201)가 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있도록 연결된 메모리 버스 및 버스 스위치의 요청 및 응답 프로토콜로 동작할 수 있다. 분할 제어 에이전트(208)는 읽고 쓰기에 대한 요청 및 응답 프로토콜의 제어 신호의 정보를 확장하여 직접 접근과 간접 접근에 필요한 정보를 처리 장치(201)와 주고받으며 직접 접근과 간접 접근 상태를 구분할 수 있다.
분할 직접 접근 요청기(210)와 분할 간접 접근 요청기(209)에서 전송 또는 분할 직접 접근 요청기(210)와 분할 간접 접근 요청기(209)로 수신되는 분할 메모리 프레임(215)은 분할 브리지(212)를 통해 대응하는 포트(211)를 통해 전송 또는 수신될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 처리 장치의 데이터 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 분할 제어 에이전트;
    상기 분할 메모리 지연이 임계값 이하인 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 직접 접근 요청기; 및
    상기 분할 메모리 지연이 임계값보다 큰 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 간접 접근 요청기
    를 포함하는, 분할 컨트롤러.
  2. 제1항에 있어서,
    상기 분할 메모리 지연은,
    상기 분할 메모리까지의 거리에 따른 지연과, 상기 처리 장치와 메모리 버스로 연결된 상기 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합인, 분할 컨트롤러.
  3. 제1항에 있어서,
    상기 분할 제어 에이전트는,
    상기 읽기 또는 쓰기 동작에 대응하는 메모리 주소에 기초하여 상기 분할 메모리와 연결되는 포트를 결정하고,
    연결가능한 각각의 분할 메모리에 대한 분할 메모리 지연 값을 관리하고,
    상기 처리 장치가 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있도록 연결된 메모리 버스 및 버스 스위치의 요청 및 응답 프로토콜에 따라 동작하며 직접 접근 및 간접 접근 상태를 구분하는, 분할 컨트롤러.
  4. 제1항에 있어서,
    상기 분할 직접 접근 요청기 및 상기 분할 간접 접근 요청기는,
    상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하고,
    수신된 응답 분할 메모리 프레임을 종단하는, 분할 컨트롤러.
  5. 제1항에 있어서,
    상기 처리 장치가 읽기 또는 쓰기 동작을 수행하는 경우, 상기 분할 직접 접근 요청기는,
    쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하고,
    읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 기반으로 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달하는, 분할 컨트롤러.
  6. 제1항에 있어서,
    상기 처리 장치가 쓰기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는,
    상기 분할 메모리가 응답하기 전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고,
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고,
    쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고,
    상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고,
    상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고,
    쓰기 요청에 대한 상기 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알리는, 분할 컨트롤러.
  7. 제1항에 있어서,
    상기 처리 장치가 읽기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는,
    상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고,
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고,
    읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고,
    읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고,
    수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하고,
    상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알리는, 분할 컨트롤러.
  8. 처리 장치;
    주 메모리;
    상기 처리 장치의 분할 메모리에 대한 읽기 또는 쓰기 동작을 제어하는 분할 컨트롤러; 및
    상기 처리 장치, 상기 주 메모리, 및 상기 분할 컨트롤러를 연결하는 메모리 버스를 포함하고,
    상기 분할 컨트롤러는,
    분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 상기 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 분할 제어 에이전트;
    상기 분할 메모리 지연이 임계값 이하인 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 직접 접근 요청기; 및
    상기 분할 메모리 지연이 임계값보다 큰 경우, 상기 읽기 또는 쓰기 동작을 수행하는 분할 간접 접근 요청기를 포함하는, 컴퓨팅 시스템.
  9. 제8항에 있어서,
    상기 분할 메모리 지연은,
    상기 분할 메모리까지의 거리에 따른 지연과, 상기 처리 장치와 메모리 버스로 연결된 상기 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합인, 컴퓨팅 시스템.
  10. 제8항에 있어서,
    상기 분할 제어 에이전트는,
    상기 읽기 또는 쓰기 동작에 대응하는 메모리 주소에 기초하여 상기 분할 메모리와 연결되는 포트를 결정하고,
    연결가능한 각각의 분할 메모리에 대한 분할 메모리 지연 값을 관리하고,
    상기 처리 장치가 하나의 메모리 컨트롤러와 메모리의 조합으로 인식할 수 있도록 연결된 메모리 버스 및 버스 스위치의 요청 및 응답 프로토콜에 따라 동작하며 직접 접근 및 간접 접근 상태를 구분하는, 컴퓨팅 시스템.
  11. 제8항에 있어서,
    상기 분할 직접 접근 요청기 및 상기 분할 간접 접근 요청기는,
    상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하는, 컴퓨팅 시스템.
  12. 제8항에 있어서,
    상기 처리 장치가 읽기 또는 쓰기 동작을 수행하는 경우, 상기 분할 직접 접근 요청기는,
    쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하고
    읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 기반으로 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달하는,, 컴퓨팅 시스템.
  13. 제8항에 있어서,
    상기 처리 장치가 쓰기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는,
    상기 분할 메모리가 응답하기전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하고,
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고,
    쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고,
    상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고,
    상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고,
    쓰기 요청에 대한 상기 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알리는, 컴퓨팅 시스템.
  14. 제8항에 있어서,
    상기 처리 장치가 읽기 동작을 수행하는 경우, 상기 분할 간접 접근 요청기는,
    상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기처리 장치로 리턴하고,
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 상기 처리 장치가 상기 간접 접근 응답 신호를 수신하여 간접 접근 요청이 마무리되고,
    읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고,
    읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고,
    수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하고,
    상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알리는, 컴퓨팅 시스템.
  15. 분할 메모리에 대응하는 분할 메모리 지연에 기초하여 상기 분할 메모리에 대한 처리 장치의 데이터 읽기 또는 쓰기 동작을 수행할 요청기를 결정하는 단계;
    분할 직접 접근 요청기 및 분할 간접 접근 요청기 중 결정된 요청기를 통해 상기 읽기 또는 쓰기 동작을 수행하는 단계
    를 포함하는, 분할 메모리 운용 방법.
  16. 제15항에 있어서,
    상기 분할 메모리 지연은,
    상기 분할 메모리까지의 거리에 따른 지연과, 상기 분할 메모리를 운용하는 상기 처리 장치와 메모리 버스로 연결된 분할 컨트롤러에서 발생하는 지연의 차와, 상기 분할 메모리의 성능 및 응답 속도에 따른 지연의 합인, 분할 메모리 운용 방법.
  17. 제15항에 있어서,
    상기 수행하는 단계는,
    상기 읽기 또는 쓰기 동작에 따라서 요청 분할 메모리 프레임을 생성하여 상기 분할 메모리에 전송하고 수신된 응답 분할 메모리 프레임을 종단하는 단계를 포함하는, 분할 메모리 운용 방법.
  18. 제15항에 있어서,
    상기 분할 직접 접근 요청기에 의해 상기 읽기 또는 쓰기 동작을 수행하는 경우, 상기 수행하는 단계는,
    쓰기 요청의 경우, 쓰기 데이터를 포함한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하고, 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하고, 상기 처리 장치에 직접 접근 응답 신호를 전달하는 단계; 및
    읽기 요청의 경우, 읽기 데이터 및 읽기 상태를 확인할 수 있는 응답 신호를 포함하는 분할 메모리 프레임을 수신하고, 상기 읽기 데이터 및 상기 응답 신호를 기반으로 요청된 메모리 버스를 통해 상기 처리 장치에 읽기 데이터 및 직접 접근 응답 신호를 전달하는 단계
    를 포함하는, 분할 메모리 운용 방법.
  19. 제15항에 있어서,
    상기 분할 간접 접근 요청기에 의해 상기 쓰기 동작을 수행하는 경우, 상기 수행하는 단계는,
    상기 분할 메모리가 응답하기 전, 쓰기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하는 단계;
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고, 쓰기 데이터를 포함하는 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하는 단계;
    상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하는 단계; 및
    상기 쓰기 요청에 대한 분할 메모리의 응답 상태를 상기 처리 장치가 접근 가능한 메모리의 메모리 주소에 쓰기 요청에 대한 상기 분할 메모리의 응답 상태를 표시하고, 쓰기 요청에 대한 분할 메모리의 응답 상태가 업데이트 되었음을 상기 처리 장치에 알리는 단계
    를 포함하는, 분할 메모리 운용 방법.
  20. 제15항에 있어서,
    상기 분할 간접 접근 요청기에 의해 상기 읽기 동작을 수행하는 경우, 상기 수행하는 단계는,
    상기 분할 메모리가 응답하기 전, 읽기 요청이 수행된 상태를 확인할 수 있는 상태 정보를 포함하는 간접 접근 응답 신호를 요청된 메모리 버스를 통해 상기 처리 장치로 리턴하는 단계;
    상기 처리 장치와 상기 분할 간접 접근 요청기가 접근 가능하고 상기 분할 메모리의 응답 상태와 읽기 데이터를 확인할 수 있는 메모리 주소와 메모리 공간을 지정하고,
    읽기 동작을 수행하기 위한 분할 메모리 프레임을 생성하여 상기 분할 메모리로 전송하는 단계;
    읽기 데이터를 포함하는 상기 분할 메모리가 응답하는 분할 메모리 프레임을 수신하는 단계;
    수신된 분할 메모리 프레임에서 읽기 요청에 대한 상기 분할 메모리의 응답 상태와 상기 읽기 데이터를 상기 처리 장치가 확인할 수 있는 메모리 주소의 메모리 공간에 저장하는 단계; 및
    상기 분할 메모리에 대한 읽기 상태와 상기 읽기 데이터가 업데이트 되었음을 상기 처리 장치에 알리는 단계
    를 포함하는, 분할 메모리 운용 방법.
KR1020210053585A 2021-04-26 2021-04-26 컴퓨팅 자원 분할 운용 방법 및 장치 KR20220146835A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210053585A KR20220146835A (ko) 2021-04-26 2021-04-26 컴퓨팅 자원 분할 운용 방법 및 장치
US17/535,761 US20220342835A1 (en) 2021-04-26 2021-11-26 Method and apparatus for disaggregation of computing resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210053585A KR20220146835A (ko) 2021-04-26 2021-04-26 컴퓨팅 자원 분할 운용 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220146835A true KR20220146835A (ko) 2022-11-02

Family

ID=83694208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210053585A KR20220146835A (ko) 2021-04-26 2021-04-26 컴퓨팅 자원 분할 운용 방법 및 장치

Country Status (2)

Country Link
US (1) US20220342835A1 (ko)
KR (1) KR20220146835A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230111055A (ko) * 2022-01-17 2023-07-25 한국전자통신연구원 분할운용 컴퓨팅 시스템 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
US8219751B2 (en) * 2010-02-26 2012-07-10 Red Hat, Inc. Methods for optimizing performance of transient data calculations
KR102586768B1 (ko) * 2018-03-27 2023-10-16 에스케이하이닉스 주식회사 컴퓨팅 시스템 및 그것의 동작방법
US11567803B2 (en) * 2019-11-04 2023-01-31 Rambus Inc. Inter-server memory pooling

Also Published As

Publication number Publication date
US20220342835A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
EP3358463A1 (en) Method, device and system for implementing hardware acceleration processing
US20140095769A1 (en) Flash memory dual in-line memory module management
TW201905714A (zh) 以輔助處理器記憶體進行儲存裝置的直接輸入輸出操作的計算系統操作方法、計算系統、車輛及電腦可讀媒體
US10133504B2 (en) Dynamic partitioning of processing hardware
US9454397B2 (en) Data processing systems
US7650488B2 (en) Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space
WO2015080719A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US10404800B2 (en) Caching network fabric for high performance computing
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
US10983833B2 (en) Virtualized and synchronous access to hardware accelerators
CN116204456A (zh) 数据访问方法及计算设备
EP3407184A2 (en) Near memory computing architecture
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
US20120144146A1 (en) Memory management using both full hardware compression and hardware-assisted software compression
KR20210080009A (ko) 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
US20230051825A1 (en) System supporting virtualization of sr-iov capable devices
US11023825B2 (en) Platform as a service cloud server and machine learning data processing method thereof
CN114691037A (zh) 卸载卡命名空间管理、输入输出请求处理系统和方法
KR20220146835A (ko) 컴퓨팅 자원 분할 운용 방법 및 장치
JP6878570B2 (ja) リソース再構成のための方法およびデバイス
US11231927B2 (en) System, apparatus and method for providing a fabric for an accelerator
KR20220014276A (ko) 명령들을 처리하는 저장 장치 및 방법
US20130007768A1 (en) Atomic operations on multi-socket platforms
CN113392052B (zh) 一种基于四路服务器的bios系统、方法及计算机可读存储介质
CN111258763B (zh) 一种服务器系统及服务器系统的控制方法和装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal