Movatterモバイル変換


[0]ホーム

URL:


KR102844602B1 - Disaggregated memory device and operating method thereof - Google Patents

Disaggregated memory device and operating method thereof

Info

Publication number
KR102844602B1
KR102844602B1KR1020200044754AKR20200044754AKR102844602B1KR 102844602 B1KR102844602 B1KR 102844602B1KR 1020200044754 AKR1020200044754 AKR 1020200044754AKR 20200044754 AKR20200044754 AKR 20200044754AKR 102844602 B1KR102844602 B1KR 102844602B1
Authority
KR
South Korea
Prior art keywords
scheduling
module
memory
header
memory access
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020200044754A
Other languages
Korean (ko)
Other versions
KR20210126978A (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 한국전자통신연구원filedCritical한국전자통신연구원
Priority to KR1020200044754ApriorityCriticalpatent/KR102844602B1/en
Publication of KR20210126978ApublicationCriticalpatent/KR20210126978A/en
Application grantedgrantedCritical
Publication of KR102844602B1publicationCriticalpatent/KR102844602B1/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Classifications

Landscapes

Abstract

Translated fromKorean

분리 메모리 디바이스 및 분리 메모리 디바이스의 동작 방법이 제공된다. 분리 메모리 디바이스(disaggregated memory device)는, 분리 메모리 액세스 프레임(disaggregated memory access frame)에 기초하여 스케줄링 요청을 생성하는 복수의 헤더 프로세서(header processor); 상기 스케줄링 요청에 따라 상기 복수의 헤더 프로세서에 대한 스케줄링을 수행하고 상기 스케줄링 결과를 저장하는 스케줄링 모듈; 및 상기 복수의 헤더 프로세서 중 상기 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 경로 구성 모듈을 포함할 수 있다.A disaggregated memory device and a method of operating the disaggregated memory device are provided. The disaggregated memory device may include: a plurality of header processors that generate a scheduling request based on a disaggregated memory access frame; a scheduling module that performs scheduling for the plurality of header processors according to the scheduling request and stores the scheduling result; and a path configuration module that configures a memory access path for a header processor selected from the scheduling result among the plurality of header processors.

Description

Translated fromKorean
분리 메모리 디바이스 및 분리 메모리 디바이스의 동작 방법{DISAGGREGATED MEMORY DEVICE AND OPERATING METHOD THEREOF}DISAGGREGATED MEMORY DEVICE AND OPERATING METHOD THEREOF

본 발명은 분리 메모리 디바이스(disaggregated memory device) 및 분리 메모리 디바이스의 동작 방법에 관한 것이다.The present invention relates to a disaggregated memory device and a method of operating the disaggregated memory device.

분리 자원(disaggregated resource) 기반의 데이터 센터는 자원 풀(resource pool)을 다수의 서버가 공유하는 구조이다. 예를 들어, 기존의 데이터 센터에서는 각 서버 별로 메모리가 구비되며 서로 다른 서버에 있는 메모리를 사용하기 위해서는 반드시 네트워크를 통해야만 했으나, 분리 자원 기반의 데이터 센터(또는 분리 메모리 시스템)에서는 대용량의 메모리 풀을 다수의 서버가 공유함으로써, 메모리 접근에 대한 효율성을 증대시키고, 메모리 풀의 확장성을 보장할 수 있다.A disaggregated resource-based data center is a structure in which multiple servers share a pool of resources. For example, in a traditional data center, each server is provided with its own memory, and accessing memory from other servers requires a network connection. However, a disaggregated resource-based data center (or disaggregated memory system) allows multiple servers to share a large memory pool, increasing memory access efficiency and ensuring memory pool scalability.

분리 메모리 시스템은 분리 계산 디바이스(disaggregated computation, dComp)와 분리 메모리 디바이스(disaggregated memory device, dMem), 그리고 메모리 액세스 지연 요구 사항을 충족시키기 위한 광 회선 스위치(Optical Circuit Switch, OCS)를 포함할 수 있다. 여기서 분리 계산 디바이스는 데이터 센터의 서버 또는 프로세서를 의미할 수 있으며, 다수의 분리 계산 디바이스가 분리 메모리 디바이스를 공유할 수 있다.A disaggregated memory system may include a disaggregated computation (dComp), a disaggregated memory device (dMem), and an optical circuit switch (OCS) to meet memory access latency requirements. The disaggregated computation device may refer to a server or processor in a data center, and multiple disaggregated computation devices may share the disaggregated memory device.

그런데 분리 계산 디바이스는, 다른 분리 계산 디바이스가 메모리 액세스를 요청하는 시점을 고려하지 않고, 자신이 메모리 액세스가 필요한 시점에 분리 메모리 디바이스에 메모리 액세스를 요청하기 때문에, 2 개 이상의 분리 계산 디바이스가 동일한 분리 메모리 디바이스를 동시에 액세스하는 상황이 발생할 수 있다. 따라서, 다수의 분리 계산 디바이스에 의해 공유되는 분리 메모리 디바이스를 충돌 없이 효율적으로 사용하도록 하기 위한 방안이 요구된다.However, since a separate computation device requests memory access to a separate memory device at the time it needs memory access without considering the timing of memory access requests by other separate computation devices, a situation may arise where two or more separate computation devices access the same separate memory device simultaneously. Therefore, a method is required to efficiently use a separate memory device shared by multiple separate computation devices without conflict.

본 발명이 해결하고자 하는 과제는, 다수의 컴퓨팅 자원, 즉 다수의 분리 계산 디바이스가 분리 메모리 시스템에서 메모리 자원, 즉 분리 메모리 디바이스를 충돌 없이 액세스할 수 있는 분리 메모리 디바이스 및 분리 메모리 디바이스의 동작 방법을 제공하는 것이다.The problem to be solved by the present invention is to provide a separate memory device and an operating method of the separate memory device, which enable a plurality of computing resources, i.e., a plurality of separate computing devices, to access memory resources, i.e., separate memory devices, without conflict in a separate memory system.

본 발명의 일 실시 예에 따른 분리 메모리 디바이스는, 분리 메모리 액세스 프레임(disaggregated memory access frame)에 기초하여 스케줄링 요청을 생성하는 복수의 헤더 프로세서(header processor); 스케줄링 요청에 따라 복수의 헤더 프로세서에 대한 스케줄링을 수행하고 스케줄링 결과를 저장하는 스케줄링 모듈; 및 복수의 헤더 프로세서 중 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 경로 구성 모듈을 포함할 수 있다.According to one embodiment of the present invention, a disaggregated memory device may include a plurality of header processors that generate a scheduling request based on a disaggregated memory access frame; a scheduling module that performs scheduling for the plurality of header processors according to the scheduling request and stores the scheduling result; and a path configuration module that configures a memory access path for a header processor selected from among the plurality of header processors based on the scheduling result.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링 모듈은 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 정보를 경로 구성 모듈에 전송하고, 경로 구성 모듈은, 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성한 후, 경로 설정 완료 메시지를 스케줄링 모듈에 전송할 수 있다.According to some embodiments of the present invention, the scheduling module may transmit information about a header processor selected from a scheduling result to a path configuration module, and the path configuration module may configure a memory access path for the selected header processor and then transmit a path configuration completion message to the scheduling module.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링 모듈은, 경로 설정 완료 메시지를 수신한 후, 선택된 헤더 프로세서에 그랜트(grant)를 전송하고, 선택된 헤더 프로세서는, 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 경로 구성 모듈에 전송할 수 있다.According to some embodiments of the present invention, after receiving a path setup completion message, the scheduling module may transmit a grant to the selected header processor, and the selected header processor may transmit a memory write signal or a memory read signal to the path configuration module after receiving the grant.

본 발명의 몇몇의 실시 예에 따르면, 선택된 헤더 프로세서는, 메모리 액세스를 완료한 후, 메모리 액세스 완료 메시지를 스케줄링 모듈에 전송하고, 스케줄링 모듈은, 메모리 액세스 완료 메시지를 수신한 후, 스케줄링 결과로부터 다음 헤더 프로세서를 선택할 수 있다.According to some embodiments of the present invention, after completing a memory access, the selected header processor transmits a memory access completion message to the scheduling module, and the scheduling module can select the next header processor from the scheduling result after receiving the memory access completion message.

본 발명의 몇몇의 실시 예에 따르면, 다음 헤더 프로세서가 존재하는 경우, 경로 구성 모듈은, 다음 헤더 프로세서에 대한 메모리 액세스 경로를 구성할 수 있다.According to some embodiments of the present invention, if a next header processor exists, the path configuration module can configure a memory access path for the next header processor.

본 발명의 몇몇의 실시 예에 따르면, 다음 헤더 프로세서가 존재하지 않는 경우, 경로 구성 모듈은, 현재 메모리 액세스 경로를 유지 또는 해제할 수 있다.According to some embodiments of the present invention, if the next header processor does not exist, the path configuration module may maintain or release the current memory access path.

본 발명의 몇몇의 실시 예에 따르면, 경로 구성 모듈은, 복수의 헤더 프로세서 각각에 미리 설정된 식별자를 할당하고, 복수의 헤더 프로세서는 할당 받은 식별자를 이용하여 스케줄링 요청을 생성할 수 있다.According to some embodiments of the present invention, the path configuration module assigns a preset identifier to each of a plurality of header processors, and the plurality of header processors can generate a scheduling request using the assigned identifier.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링 모듈은, 스케줄링 요청의 개수가 2 이상인 경우, 라운드 로빈 기반 스케줄링을 수행할 수 있다.According to some embodiments of the present invention, the scheduling module can perform round-robin based scheduling when the number of scheduling requests is 2 or more.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링 모듈은, 스케줄링 요청의 개수가 2 이상인 경우, 우선 순위 기반 스케줄링을 수행할 수 있다.According to some embodiments of the present invention, the scheduling module can perform priority-based scheduling when the number of scheduling requests is 2 or more.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스는, 광 회선 스위치(Optical Circuit Switch, OCS)와 광 신호를 송수신하는 광 트랜시버를 더 포함하고, 복수의 헤더 프로세서는 광 신호를 이용하여 분리 메모리 액세스 프레임을 송수신할 수 있다.According to some embodiments of the present invention, the split memory device further includes an optical circuit switch (OCS) and an optical transceiver for transmitting and receiving optical signals, and a plurality of header processors can transmit and receive split memory access frames using the optical signals.

본 발명의 몇몇의 실시 예에 따르면, 광 회선 스위치는 분리 계산 디바이스(disaggregated computation device)와 광 신호를 송수신할 수 있다.According to some embodiments of the present invention, an optical line switch can transmit and receive optical signals to and from a disaggregated computation device.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스는, 물리적 메모리를 포함하는 메모리 모듈; 및 경로 구성 모듈에 의해 구성된 메모리 액세스 경로에 기초하여, 메모리 모듈에 대한 메모리 라이트 또는 메모리 리드를 수행하는 메모리 컨트롤러를 더 포함할 수 있다.According to some embodiments of the present invention, a split memory device may further include a memory module including physical memory; and a memory controller performing a memory write or a memory read for the memory module based on a memory access path configured by a path configuration module.

본 발명의 일 실시 예에 따른 분리 메모리 디바이스의 동작 방법은, 복수의 헤더 프로세서가 분리 메모리 액세스 프레임에 기초하여 스케줄링 요청을 생성하는 단계; 스케줄링 모듈이 스케줄링 요청에 따라 복수의 헤더 프로세서에 대한 스케줄링을 수행하고 스케줄링 결과를 저장하는 단계; 및 경로 구성 모듈이 복수의 헤더 프로세서 중 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 단계를 포함할 수 있다.A method of operating a split memory device according to an embodiment of the present invention may include: a step of generating a scheduling request based on a split memory access frame by a plurality of header processors; a step of scheduling by a scheduling module for the plurality of header processors according to the scheduling request and storing the scheduling result; and a step of configuring a memory access path for a header processor selected from among the plurality of header processors based on the scheduling result by a path configuration module.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스의 동작 방법은, 스케줄링 모듈이 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 정보를 경로 구성 모듈에 전송하는 단계; 및 경로 구성 모듈이, 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성한 후, 경로 설정 완료 메시지를 스케줄링 모듈에 전송하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, a method of operating a split memory device may further include a step of the scheduling module transmitting information about a header processor selected from a scheduling result to the path configuration module; and a step of the path configuration module transmitting a path configuration completion message to the scheduling module after configuring a memory access path for the selected header processor.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스의 동작 방법은, 스케줄링 모듈이, 경로 설정 완료 메시지를 수신한 후, 선택된 헤더 프로세서에 그랜트(grant)를 전송하는 단계; 및 선택된 헤더 프로세서가, 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 경로 구성 모듈에 전송하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, a method of operating a split memory device may further include a step in which a scheduling module transmits a grant to a selected header processor after receiving a path setup completion message; and a step in which the selected header processor transmits a memory write signal or a memory read signal to a path configuration module after receiving the grant.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스의 동작 방법은, 선택된 헤더 프로세서가, 메모리 액세스를 완료한 후, 메모리 액세스 완료 메시지를 스케줄링 모듈에 전송하는 단계; 및 스케줄링 모듈이, 메모리 액세스 완료 메시지를 수신한 후, 스케줄링 결과로부터 다음 헤더 프로세서를 선택하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, a method of operating a split memory device may further include the steps of: transmitting a memory access completion message to a scheduling module after a selected header processor completes a memory access; and selecting a next header processor from a scheduling result after the scheduling module receives the memory access completion message.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스의 동작 방법은, 다음 헤더 프로세서가 존재하는 경우, 경로 구성 모듈이, 다음 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, the method of operating a split memory device may further include a step of, when a next header processor exists, the path configuration module configuring a memory access path for the next header processor.

본 발명의 몇몇의 실시 예에 따르면, 분리 메모리 디바이스의 동작 방법은, 다음 헤더 프로세서가 존재하지 않는 경우, 경로 구성 모듈이, 현재 메모리 액세스 경로를 유지 또는 해제하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, a method of operating a split memory device may further include a step of the path configuration module maintaining or releasing a current memory access path when the next header processor does not exist.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링을 수행하는 단계는, 스케줄링 요청의 개수가 2 이상인 경우, 라운드 로빈 기반 스케줄링을 수행하는 단계를 포함할 수 있다.According to some embodiments of the present invention, the step of performing scheduling may include the step of performing round-robin based scheduling when the number of scheduling requests is 2 or more.

본 발명의 몇몇의 실시 예에 따르면, 스케줄링을 수행하는 단계는, 스케줄링 요청의 개수가 2 이상인 경우, 우선 순위 기반 스케줄링을 수행하는 단계를 포함할 수 있다.According to some embodiments of the present invention, the step of performing scheduling may include the step of performing priority-based scheduling when the number of scheduling requests is 2 or more.

본 발명의 실시 예들에 따르면, 원격으로 분리되어 있거나 거리 상 떨어져 있는 다수의 컴퓨팅 자원이 메모리 자원을 충돌 없이 액세스할 수 있는 장치를 제공할 수 있다.According to embodiments of the present invention, a device can be provided that allows multiple computing resources that are remotely separated or separated by a distance to access memory resources without conflict.

또한, 본 발명의 실시 예들에 따르면, 분리 자원 기반의 데이터 센터 네트워크에서, 네트워크 자원을 효율적으로 사용하여 이용률을 높일 수 있고, 처리율 및 지연 성능을 개선하여 네트워크 성능을 높일 수 있다.In addition, according to embodiments of the present invention, in a data center network based on separated resources, network resources can be efficiently used to increase utilization, and throughput and delay performance can be improved to increase network performance.

도 1은 본 발명의 일 실시 예에 따른 분리 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 분리 메모리 디바이스를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 분리 메모리 디바이스의 스케줄링 모듈을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
FIG. 1 is a block diagram illustrating a separation memory system according to one embodiment of the present invention.
FIG. 2 is a block diagram illustrating a separation memory device according to one embodiment of the present invention.
FIG. 3 is a block diagram illustrating a scheduling module of a separation memory device according to one embodiment of the present invention.
FIG. 4 is a flowchart for explaining an operating method of a separation memory system according to one embodiment of the present invention.
FIG. 5 is a flowchart for explaining an operating method of a separation memory system according to one embodiment of the present invention.
FIG. 6 is a flowchart illustrating an operating method of a separation memory system according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating an operating method of a separation memory system according to one embodiment of the present invention.
FIG. 8 is a flowchart illustrating an operating method of a separation memory system according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Below, with reference to the attached drawings, embodiments of the present invention are described in detail so that those skilled in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts irrelevant to the description are omitted for clarity of description, and similar parts are designated with similar reference numerals throughout the specification.

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 아래에서 설명되는 실시 예들에 따른 분리 메모리 디바이스의 동작 방법 중 적어도 일부는 프로그램 또는 소프트웨어로 구현될 수 있고, 프로그램 또는 소프트웨어는 컴퓨터로 판독 가능한 매체에 저장될 수 있다.Throughout the specification and claims, when a part is said to "include" a certain component, this does not exclude other components, but rather means that other components may be included, unless otherwise specifically stated. In addition, terms such as "...part," "...unit," and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware, software, or a combination of hardware and software. In addition, at least a part of the operating method of the separate memory device according to the embodiments described below may be implemented by a program or software, and the program or software may be stored on a computer-readable medium.

도 1은 본 발명의 일 실시 예에 따른 분리 메모리 시스템을 설명하기 위한 블록도이다.FIG. 1 is a block diagram illustrating a separation memory system according to one embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템(1)은 분리 계산 디바이스(20, 21, 22), 분리 메모리 디바이스(10, 11) 및 분리 계산 디바이스(20, 21, 22)와 분리 메모리 디바이스(10, 11) 사이에서 신호를 전송하는 광 회선 스위치(30)을 포함할 수 있다. 분리 메모리 시스템(1)에서는 계산 자원에 해당하는 분리 계산 디바이스(20, 21, 22)와 메모리 자원에 해당하는 분리 메모리 디바이스(10, 11)가 다른 보드(board)로 구성될 수 있고, 이에 따라 분리 계산 디바이스(20, 21, 22)와 분리 메모리 디바이스(10, 11)는 원격(remote) 연결을 형성할 수 있다.Referring to FIG. 1, a split memory system (1) according to an embodiment of the present invention may include a split calculation device (20, 21, 22), a split memory device (10, 11), and an optical line switch (30) for transmitting signals between the split calculation device (20, 21, 22) and the split memory device (10, 11). In the split memory system (1), the split calculation device (20, 21, 22) corresponding to a calculation resource and the split memory device (10, 11) corresponding to a memory resource may be configured as different boards, and thus the split calculation device (20, 21, 22) and the split memory device (10, 11) may form a remote connection.

본 실시 예에서, 분리 메모리 시스템(1)은 분리 자원 기반의 데이터 센터로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고, 분리 메모리 시스템(1)은 분리 자원 기반의 임의의 형태의 컴퓨팅 시스템으로 구현될 수 있다. 또한, 본 실시 예에서는 광 회선 스위치 기반의 광학 분리(optical disaggregated) 시스템에 대해 설명하지만, 본 발명의 범위가 반드시 이에 제한되는 것은 아니다.In the present embodiment, the disaggregated memory system (1) may be implemented as a data center based on disaggregated resources, but the scope of the present invention is not limited thereto, and the disaggregated memory system (1) may be implemented as any type of disaggregated resource-based computing system. In addition, although the present embodiment describes an optically disaggregated system based on an optical line switch, the scope of the present invention is not necessarily limited thereto.

광 회선 스위치(30)는 분리 계산 디바이스(20, 21, 22)와 광 신호를 송수신할 수 있고, 한편 분리 메모리 디바이스(10, 11)와 광 신호를 송수신할 수 있다. 즉, 광 회선 스위치(30)는 분리 계산 디바이스(20, 21, 22)와 분리 메모리 디바이스(10, 11)를 연결하되, 낮은 메모리 액세스 지연을 제공하기 위해 사용될 수 있다. 구체적으로, N 개의 분리 계산 디바이스(20, 21, 22)는 광 회선 스위치(30)를 통해 K 개의 분리 메모리 디바이스(10, 11)와 연결될 수 있다. 여기서, N 및 K는 1 이상의 정수이며, N과 K의 값은 서로 동일할 수도 있고 서로 상이할 수도 있다. 분리 계산 디바이스(20, 21, 22)는, 미리 정해진 포트를 이용하여 광 회선 스위치(30)를 통해 분리 메모리 디바이스(10, 11)와 연결될 수 있고, 분리 계산 디바이스(20, 21, 22) 중 어느 하나는 광 회선 스위치(30)에 연결된 모든 분리 메모리 디바이스(10, 11)와 연결될 수 있다. 즉, 분리 계산 디바이스(20, 21, 22) 각각의 포트 수는 광 회선 스위치(30)에 연결된 분리 메모리 디바이스(10, 11)의 개수와 동일할 수 있고, 이 경우, 광 회선 스위치(30)는 (N * K) * (N * K) 스위치로 구현될 수 있다. 이 때, 분리 계산 디바이스(20, 21, 22) 중 어느 하나는 메모리 액세스를 수행하기 위해 분리 메모리 디바이스(10, 11) 중 하나 이상을 액세스할 수 있다. 또한, 분리 계산 디바이스(20, 21, 22) 중 복수 개의 분리 계산 디바이스가 분리 메모리 디바이스(10, 11) 중 어느 하나에 액세스할 수도 있다.The optical line switch (30) can transmit and receive optical signals to and from the separate computing devices (20, 21, 22), and can also transmit and receive optical signals to and from the separate memory devices (10, 11). That is, the optical line switch (30) can be used to connect the separate computing devices (20, 21, 22) and the separate memory devices (10, 11), while providing low memory access delay. Specifically, N separate computing devices (20, 21, 22) can be connected to K separate memory devices (10, 11) via the optical line switch (30). Here, N and K are integers greater than or equal to 1, and the values of N and K may be the same or different from each other. The separated computing devices (20, 21, 22) can be connected to the separated memory devices (10, 11) via the optical line switch (30) using predetermined ports, and any one of the separated computing devices (20, 21, 22) can be connected to all of the separated memory devices (10, 11) connected to the optical line switch (30). That is, the number of ports of each of the separated computing devices (20, 21, 22) can be equal to the number of separated memory devices (10, 11) connected to the optical line switch (30), and in this case, the optical line switch (30) can be implemented as (N * K) * (N * K) switches. At this time, any one of the separated computing devices (20, 21, 22) can access one or more of the separated memory devices (10, 11) to perform memory access. Additionally, multiple separate calculation devices among the separate calculation devices (20, 21, 22) may access any one of the separate memory devices (10, 11).

분리 계산 디바이스(20, 21, 22)는 자신이 할당 받은 원격 메모리, 즉 분리 메모리 디바이스(10, 11)를 사용하기 위해, 미리 설정된 포트를 통하여 메모리 액세스 요청, 즉 리드/라이트 요청을 전송할 수 있다. 여기서 라이트 요청의 경우, 분리 메모리 디바이스(10, 11)에 라이트할 데이터가 함께 전송될 수 있다.The separate computing device (20, 21, 22) can transmit a memory access request, i.e., a read/write request, through a preset port in order to use the remote memory allocated to it, i.e., the separate memory device (10, 11). In the case of a write request, data to be written to the separate memory device (10, 11) can be transmitted together.

분리 계산 디바이스(20, 21, 22)로부터 리드/라이트 요청을 수신한 분리 메모리 디바이스(10, 11)는 해당 요청을 처리하고 리드/라이트 동작을 수행한 후, 리드/라이트 결과를 분리 계산 디바이스(20, 21, 22)에 전송할 수 있다. 예를 들어, 리드 동작을 수행한 경우, 분리 메모리 디바이스(10, 11)는 리드한 데이터를 분리 계산 디바이스(20, 21, 22)에 전송할 수 있거나, 라이트 동작을 수행한 경우, 분리 메모리 디바이스(10, 11)는 데이터를 라이트한 후 확인 응답(acknowledgement)을 분리 계산 디바이스(20, 21, 22)에 전송할 수 있다.A separate memory device (10, 11) that receives a read/write request from a separate calculation device (20, 21, 22) can process the request, perform a read/write operation, and then transmit the read/write result to the separate calculation device (20, 21, 22). For example, when a read operation is performed, the separate memory device (10, 11) can transmit the read data to the separate calculation device (20, 21, 22), or when a write operation is performed, the separate memory device (10, 11) can write the data and then transmit an acknowledgement to the separate calculation device (20, 21, 22).

도 2는 본 발명의 일 실시 예에 따른 분리 메모리 디바이스를 설명하기 위한 블록도이다.FIG. 2 is a block diagram illustrating a separation memory device according to one embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 디바이스(10)는 분리 메모리 컨트롤러(100), 광 트랜시버(110) 및 메모리 모듈(120)을 포함할 수 있다. 본 실시 예에서, 분리 메모리 디바이스(20)에 대해 설명되는 내용들은 도 1의 다른 분리 메모리 디바이스(11)에도 동일하게 적용될 수 있다.Referring to FIG. 2, a separate memory device (10) according to an embodiment of the present invention may include a separate memory controller (100), an optical transceiver (110), and a memory module (120). In this embodiment, the contents described for the separate memory device (20) may be equally applied to other separate memory devices (11) of FIG. 1.

먼저, 광 트랜시버(110)는 광 회선 스위치(30)와 광 신호를 송수신할 수 있다. 구체적으로, 광 트랜시버(110)는 광 회선 스위치(30)를 통해, 분리 계산 디바이스(20, 21, 22)로부터 송신되는 광 신호를 수신할 수 있으며, 여기서 광 신호는 메모리 액세스 요청, 즉 리드/라이트 요청을 포함할 수 있다. 또는, 광 트랜시버(110)는 광 회선 스위치(30)를 통해, 분리 계산 디바이스(20, 21, 22)에 광 신호를 송신할 수 있으며, 여기서 광 신호는 메모리 액세스 결과, 즉 리드/라이트 결과를 포함할 수 있다.First, the optical transceiver (110) can transmit and receive optical signals to and from the optical line switch (30). Specifically, the optical transceiver (110) can receive an optical signal transmitted from a separate computing device (20, 21, 22) via the optical line switch (30), wherein the optical signal can include a memory access request, i.e., a read/write request. Alternatively, the optical transceiver (110) can transmit an optical signal to the separate computing device (20, 21, 22) via the optical line switch (30), wherein the optical signal can include a memory access result, i.e., a read/write result.

본 실시 예에서, 광 트랜시버(110)는 복수의 송수신 라인(TRx1 내지 TRxN)을 구비하여, 복수의 송수신 라인(TRx1 내지 TRxN)은 분리 메모리 디바이스(10)가 N 개의 분리 계산 디바이스와 광 신호를 송수신할 수 있도록 할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.In the present embodiment, the optical transceiver (110) is provided with a plurality of transmission/reception lines (TRx1 to TRxN ), and the plurality of transmission/reception lines (TRx1 to TRxN ) can enable the separate memory device (10) to transmit and receive optical signals to and from N separate calculation devices, but the scope of the present invention is not limited thereto.

메모리 모듈(120)은 실제로 데이터가 저장되는 물리적 메모리를 포함할 수 있다. 물리적 메모리는 단일 메모리로 구현될 수도 있고, 물리적 또는 논리적으로 구분되는 복수의 메모리(Memory1 내지 Memorym, 여기서 m은 2 이상의 정수)의 집합으로 구현될 수도 있다. 본 발명의 몇몇의 실시 예에서, 물리적 메모리는 RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등을 비롯한 휘발성 메모리를 포함할 수도 있고, 플래시 메모리를 비롯한 비 휘발성 메모리를 포함할 수도 있고, 휘발성 메모리와 비 휘발성 메모리의 조합을 포함할 수도 있으나, 본 발명의 범위는 이에 제한되지 않는다.The memory module (120) may include a physical memory where data is actually stored. The physical memory may be implemented as a single memory, or may be implemented as a set of a plurality of memories (Memory1 to Memorym , where m is an integer greater than or equal to 2) that are physically or logically distinct. In some embodiments of the present invention, the physical memory may include volatile memory such as RAM (Random Access Memory), DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), etc., may include non-volatile memory such as flash memory, or may include a combination of volatile memory and non-volatile memory, but the scope of the present invention is not limited thereto.

분리 메모리 컨트롤러(100)는 분리 계산 디바이스(20, 21, 22)로부터 메모리 액세스 요청을 수신하고, 이에 대한 응답으로 메모리 모듈(120)에 대해 메모리 액세스를 수행할 수 있다. 이를 위해, 분리 메모리 컨트롤러(100)는 분리 메모리 액세스 로직(disaggregated Memory Access Logic, dMAL)(1000) 및 메모리 컨트롤러(1010)를 포함할 수 있다.A disaggregated memory controller (100) may receive a memory access request from a disaggregated computing device (20, 21, 22) and, in response, perform a memory access to a memory module (120). To this end, the disaggregated memory controller (100) may include a disaggregated memory access logic (dMAL) (1000) and a memory controller (1010).

분리 메모리 액세스 로직(1000)은 분리 메모리 디바이스(10, 11)에 대한 메모리 액세스를 제어할 수 있다. 특히, 분리 메모리 액세스 로직(1000)은 광 트랜시버(110)를 통해 복수의 분리 계산 디바이스(20, 21, 22)로부터 수신되는 메모리 액세스 요청들을 관리하고 스케줄링할 수 있다. 이를 위해, 분리 메모리 액세스 로직(1000)은, 복수의 헤더 프로세서(1001), 스케줄링 모듈(1002) 및 경로 구성 모듈(1003)을 포함할 수 있다.The separated memory access logic (1000) can control memory access to the separated memory devices (10, 11). In particular, the separated memory access logic (1000) can manage and schedule memory access requests received from a plurality of separated computing devices (20, 21, 22) via the optical transceiver (110). To this end, the separated memory access logic (1000) can include a plurality of header processors (1001), a scheduling module (1002), and a path configuration module (1003).

복수의 헤더 프로세서(1001)는, 광 신호를 이용하여 분리 메모리 액세스 프레임을 송수신할 수 있다. 구체적으로, 복수의 헤더 프로세서(1001)는, 복수의 송수신 라인(TRx1 내지 TRxN)을 통해 최대 N 개의 분리 계산 디바이스(20, 21, 22)로부터 메모리 액세스 요청을 수신할 수 있다. 여기서 메모리 액세스 요청은, 분리 메모리 액세스 프레임(dMem access frame)으로 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고, 구체적인 구현 형태는 다양한 방식으로 정해질 수 있다.A plurality of header processors (1001) can transmit and receive separate memory access frames using optical signals. Specifically, the plurality of header processors (1001) can receive memory access requests from up to N separate computing devices (20, 21, 22) through a plurality of transmission/reception lines (TRx1 to TRxN ). Here, the memory access requests can be implemented as separate memory access frames (dMem access frames), but the scope of the present invention is not limited thereto, and specific implementation forms can be determined in various ways.

복수의 헤더 프로세서(1001)는, 유효한 분리 메모리 액세스 프레임을 수신한 것으로 결정된 경우, 분리 메모리 액세스 프레임에 기초하여 스케줄링 요청을 생성할 수 있다. 여기서 스케줄링 요청은, 복수의 헤더 프로세서(1001) 각각에 할당된, 미리 설정된 식별자를 이용하여, 생성될 수 있다. 그리고 복수의 헤더 프로세서(1001)는 생성한 스케줄링 요청을 스케줄링 모듈(1002)에 전송할 수 있다.When it is determined that a valid split memory access frame has been received, the plurality of header processors (1001) may generate a scheduling request based on the split memory access frame. Here, the scheduling request may be generated using a preset identifier assigned to each of the plurality of header processors (1001). The plurality of header processors (1001) may then transmit the generated scheduling request to the scheduling module (1002).

복수의 헤더 프로세서(1001)는, 유효한 분리 메모리 액세스 프레임을 수신한 즉시 스케줄링 모듈(1002)에 스케줄링 요청을 전송할 수도 있고, 유효한 분리 메모리 액세스 프레임을 수신한 다음 미리 정해진 시간 후에 스케줄링 모듈(1002)에 스케줄링 요청을 전송하거나, 유효한 분리 메모리 액세스 프레임을 수신한 다음 미리 정해진 조건이 만족하는 경우 스케줄링 모듈(1002)에 스케줄링 요청을 전송할 수 있으며, 구체적인 구현 목적에 따라 복수의 헤더 프로세서(1001)의 스케줄링 요청 시점 및 방법은 얼마든지 달라질 수 있다.The plurality of header processors (1001) may transmit a scheduling request to the scheduling module (1002) immediately upon receiving a valid split memory access frame, transmit a scheduling request to the scheduling module (1002) after a predetermined time after receiving a valid split memory access frame, or transmit a scheduling request to the scheduling module (1002) when a predetermined condition is satisfied after receiving a valid split memory access frame. The timing and method of the scheduling request of the plurality of header processors (1001) may vary depending on the specific implementation purpose.

한편, 복수의 헤더 프로세서(1001)는, 분리 메모리 액세스 프레임을 통해 수신한 메모리 리드/라이트 요청 또는 명령과, 메모리에 라이트할 데이터 등을 처리하거나 (예컨대 큐(queue)에) 저장하고, 스케줄링 모듈(1002)로부터 그랜트(grant) 수신을 대기할 수 있다.Meanwhile, a plurality of header processors (1001) may process or store (e.g., in a queue) memory read/write requests or commands received through separate memory access frames and data to be written to memory, and wait for a grant from a scheduling module (1002).

스케줄링 모듈(1002)은, 복수의 헤더 프로세서(1001)로부터 수신한 스케줄링 요청에 따라 복수의 헤더 프로세서(1001)에 대한 스케줄링을 수행하고, 스케줄링 결과를 저장할 수 있다. 구체적으로, 스케줄링 모듈(1002)은, 스케줄링 요청의 개수가 2 이상인 경우, 미리 설정된 스케줄링 알고리즘을 이용하여, 복수의 헤더 프로세서(1001)로부터 수신한 스케줄링 요청을 처리하기 위한 순서를 스케줄링할 수 있다. 본 발명의 몇몇의 실시 예에서, 스케줄링 알고리즘은 라운드 로빈 기반 스케줄링 알고리즘, 우선 순위 기반 스케줄링 알고리즘 또는 구체적인 구현 목적에 따른 임의의 스케줄링 알고리즘을 포함할 수 있다.The scheduling module (1002) may perform scheduling for a plurality of header processors (1001) according to scheduling requests received from a plurality of header processors (1001) and store the scheduling results. Specifically, when the number of scheduling requests is 2 or more, the scheduling module (1002) may schedule the order for processing the scheduling requests received from the plurality of header processors (1001) using a preset scheduling algorithm. In some embodiments of the present invention, the scheduling algorithm may include a round-robin-based scheduling algorithm, a priority-based scheduling algorithm, or any scheduling algorithm according to a specific implementation purpose.

여기서 스케줄링 결과는 큐와 같은 임의의 데이터 구조에 저장될 수 있다. 즉, 스케줄링 모듈(1002)은 스케줄링 요청이 있는 모든 헤더 프로세서에 대해 스케줄링을 수행한 후, 스케줄링된 헤더 프로세서에 대한 정보(예컨대 식별자)를 데이터 구조에 저장할 수 있다. 이후, 스케줄링 모듈(1002)은, 복수의 헤더 프로세서(1001) 중 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 정보를 경로 구성 모듈(1003)에 전송할 수 있다.Here, the scheduling result can be stored in any data structure, such as a queue. That is, after the scheduling module (1002) performs scheduling for all header processors with scheduling requests, it can store information (e.g., identifiers) about the scheduled header processors in the data structure. Thereafter, the scheduling module (1002) can transmit information about the header processor selected from among the multiple header processors (1001) based on the scheduling result to the path configuration module (1003).

경로 구성 모듈(1003)은, 복수의 헤더 프로세서(1001) 중, 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성할 수 있다. 즉, 경로 구성 모듈(1003)은, 복수의 헤더 프로세서(1001) 중 스케줄링 모듈(1002)에 의해 선택된 헤더 프로세서가 메모리 모듈(120)에 액세스할 수 있도록 하는 메모리 액세스 경로를 구성한 후, 선택된 헤더 프로세서와 메모리 모듈(120) 사이에 액세스 경로의 설정이 완료되었음을 나타내는 경로 설정 완료 메시지를 스케줄링 모듈(1002)에 전송할 수 있다.The path configuration module (1003) can configure a memory access path for a header processor selected from among a plurality of header processors (1001) based on a scheduling result. That is, the path configuration module (1003) can configure a memory access path that allows a header processor selected by the scheduling module (1002) from among a plurality of header processors (1001) to access a memory module (120), and then transmit a path configuration completion message indicating that the configuration of the access path between the selected header processor and the memory module (120) has been completed to the scheduling module (1002).

스케줄링 모듈(1002)은, 경로 구성 모듈(1003)로부터 경로 설정 완료 메시지를 수신한 후, 복수의 헤더 프로세서(1001) 중, 선택된 헤더 프로세서에 그랜트를 전송할 수 있다.After receiving a route setup completion message from the route configuration module (1003), the scheduling module (1002) can transmit a grant to a selected header processor among a plurality of header processors (1001).

선택된 헤더 프로세서는, 스케줄링 모듈(1002)로부터 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 경로 구성 모듈(1003)에 전송하여, 메모리 액세스를 수행할 수 있다. 구체적으로, 선택된 헤더 프로세서는, 스케줄링 모듈(1002)로부터 그랜트를 수신한 후, 상술한 바와 같이 분리 메모리 액세스 프레임을 처리한 결과에 따라, 메모리 리드/라이트를 수행하기 위한 명령과, 메모리에 라이트할 데이터 등을 경로 구성 모듈(1003)에 전송할 수 있다.The selected header processor, after receiving a grant from the scheduling module (1002), can transmit a memory write signal or a memory read signal to the path configuration module (1003) to perform memory access. Specifically, the selected header processor, after receiving a grant from the scheduling module (1002), can transmit a command for performing memory read/write and data to be written to the memory, etc., to the path configuration module (1003) based on the result of processing the separated memory access frame as described above.

메모리 컨트롤러(1010)는, 분리 메모리 액세스 로직(1000)의 경로 구성 모듈(1003)에 의해 구성되는 메모리 액세스 경로에 기초하여, 메모리 모듈(120)에 대한 메모리 라이트 또는 메모리 리드를 수행할 수 있다. 결국 선택된 헤더 프로세서는, 경로 구성 모듈(1003)에 의해 구성된 메모리 액세스 경로에 기초하여 메모리 컨트롤러(1010)를 통해 메모리 액세스를 수행할 수 있다.The memory controller (1010) can perform a memory write or memory read for the memory module (120) based on the memory access path configured by the path configuration module (1003) of the separation memory access logic (1000). Ultimately, the selected header processor can perform memory access through the memory controller (1010) based on the memory access path configured by the path configuration module (1003).

선택된 헤더 프로세서는, 메모리 액세스를 완료한 후, 리드/라이트 결과를 분리 계산 디바이스(20, 21, 22)에 전송할 수 있다. 예를 들어, 리드 동작을 수행한 경우, 선택된 헤더 프로세서는, 리드한 데이터를 분리 계산 디바이스(20, 21, 22)에 전송할 수 있거나, 라이트 동작을 수행한 경우, 선택된 헤더 프로세서는, 데이터를 라이트한 후 확인 응답을 분리 계산 디바이스(20, 21, 22)에 전송할 수 있다.The selected header processor may transmit the read/write result to the separate calculation device (20, 21, 22) after completing the memory access. For example, if a read operation is performed, the selected header processor may transmit the read data to the separate calculation device (20, 21, 22), or if a write operation is performed, the selected header processor may transmit an acknowledgement to the separate calculation device (20, 21, 22) after writing the data.

한편, 선택된 헤더 프로세서는, 메모리 액세스 완료 메시지를 스케줄링 모듈(1002)에 전송할 수 있다. 스케줄링 모듈(1002)은, 메모리 액세스 완료 메시지를 수신한 후, 스케줄링 결과로부터 다음 헤더 프로세서를 선택할 수 있다. 구체적으로, 스케줄링 결과에 다음 헤더 프로세서가 존재하는 경우, 경로 구성 모듈(1003)은, 다음 헤더 프로세서에 대한 메모리 액세스 경로를 구성할 수 있다. 또는, 스케줄링 결과에 다음 헤더 프로세서가 존재하지 않는 경우, 경로 구성 모듈(1003)은, 현재 메모리 액세스 경로를 유지 또는 해제할 수 있다.Meanwhile, the selected header processor may transmit a memory access completion message to the scheduling module (1002). After receiving the memory access completion message, the scheduling module (1002) may select the next header processor from the scheduling result. Specifically, if the next header processor exists in the scheduling result, the path configuration module (1003) may configure a memory access path for the next header processor. Alternatively, if the next header processor does not exist in the scheduling result, the path configuration module (1003) may maintain or release the current memory access path.

이와 같은 동작을 반복하여, 분리 계산 디바이스(20, 21, 22)가 복수의 헤더 프로세서(1001)를 통해 충돌 없이 메모리 모듈(120)을 액세스할 수 있게 된다.By repeating this operation, the separate computing devices (20, 21, 22) can access the memory module (120) without conflict through multiple header processors (1001).

본 발명의 몇몇의 실시 예에서, 경로 구성 모듈(1003)은, 복수의 헤더 프로세서(1001) 각각에 미리 설정된 식별자를 할당하고, 복수의 헤더 프로세서(1001)는 할당 받은 식별자를 이용하여 스케줄링 요청을 생성할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.In some embodiments of the present invention, the path configuration module (1003) may assign a preset identifier to each of a plurality of header processors (1001), and the plurality of header processors (1001) may generate a scheduling request using the assigned identifier, but the scope of the present invention is not limited thereto.

본 실시 예에 따르면, 원격으로 분리되어 있거나 거리 상 떨어져 있는 다수의 컴퓨팅 자원이 메모리 자원을 충돌 없이 액세스할 수 있을 뿐 아니라, 분리 자원 기반의 데이터 센터 네트워크에서, 네트워크 자원을 효율적으로 사용하여 이용률을 높일 수 있고, 처리율 및 지연 성능을 개선하여 네트워크 성능을 높일 수 있다.According to the present embodiment, multiple computing resources that are remotely separated or separated by a distance can access memory resources without conflict, and in a data center network based on separated resources, network resources can be efficiently used to increase utilization, and throughput and delay performance can be improved to increase network performance.

도 3은 본 발명의 일 실시 예에 따른 분리 메모리 디바이스의 스케줄링 모듈을 설명하기 위한 블록도이다.FIG. 3 is a block diagram illustrating a scheduling module of a separation memory device according to one embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 디바이스(10)의 스케줄링 모듈(1002)은 스케줄링(scheduling) 서브 모듈 및 경로 구성(path configuration) 서브 모듈을 포함할 수 있다. 물론 이러한 구분은 설명의 편의를 위한 것일 뿐이며, 본 발명의 범위가 이에 제한되는 것은 아니다. 본 실시 예에서, 분리 메모리 디바이스(20)에 대해 설명되는 내용들은 도 1의 다른 분리 메모리 디바이스(11)에도 동일하게 적용될 수 있다.Referring to FIG. 3, the scheduling module (1002) of the separate memory device (10) according to one embodiment of the present invention may include a scheduling sub-module and a path configuration sub-module. Of course, this distinction is merely for convenience of explanation, and the scope of the present invention is not limited thereto. In the present embodiment, the contents described for the separate memory device (20) may be equally applied to other separate memory devices (11) of FIG. 1.

스케줄링 서브 모듈은 스케줄링 알고리즘에 따라 하나 이상의 아비터(arbiter)를 구비할 수 있다. 예를 들어, K 개의 우선 순위(priority)가 고려되는 경우, 스케줄링 서브 모듈은 우선 순위 개수에 대응하도록 K 개의 아비터를 구비할 수 있다. 도 3에서는 2 개의 우선 순위(H, L)를 갖는 예를 도시하고 있으므로, 2 개의 아비터(H-arbiter, L-arbiter)가 도시되어 있다.The scheduling submodule may include one or more arbiters, depending on the scheduling algorithm. For example, if K priorities are considered, the scheduling submodule may include K arbiters corresponding to the number of priorities. Since Fig. 3 illustrates an example with two priorities (H, L), two arbiters (H-arbiter, L-arbiter) are shown.

메모리 액세스를 원하는 헤더 프로세서로부터 스케줄링 요청을 수신한 스케줄링 서브 모듈은, 스케줄링 요청의 우선 순위에 따라 스케줄링을 수행하므로, 우선 순위가 높은 스케줄링 요청에 대해 먼저 스케줄링을 수행할 수 있다. 그리고 동일한 우선 순위를 갖는 스케줄링 요청에 대해서는 라운드 로빈 방식을 이용하여 스케줄링을 수행할 수 있다. 물론, 이와 같은 스케줄링 방식은 일 예에 불과하며, 구체적인 구현 목적에 따라 다양한 스케줄링 기법이 사용될 수 있다. 스케줄링을 수행하여 선택된 헤더 프로세서에 관한 정보는 순차적으로 큐에 저장되고, 이와 같은 동작은 스케줄링 요청을 한 모든 헤더 프로세서에 대해 스케줄링이 완료될 때까지 반복될 수 있다.The scheduling submodule, which receives a scheduling request from a header processor requesting memory access, performs scheduling according to the priority of the scheduling request, so that scheduling requests with higher priorities can be scheduled first. Furthermore, scheduling requests with the same priority can be scheduled using a round-robin method. Of course, this scheduling method is merely an example, and various scheduling techniques can be used depending on the specific implementation purpose. Information about the header processor selected through scheduling is sequentially stored in a queue, and this operation can be repeated until scheduling is completed for all header processors that have issued scheduling requests.

경로 설정 서브 모듈은 큐에 저장된 스케줄링 정보를 경로 구성 모듈(1003)에 전송하여 해당 헤더 프로세서에 대한 메모리 액세스 경로를 설정하고, 경로 구성 모듈(1003)로부터 경로 설정 완료 메시지를 받은 경우, 해당 헤더 프로세서에 그랜트를 전송할 수 있다. 그랜트를 수신한 헤더 프로세서는 메모리 액세스 수행을 완료한 후, 메모리 액세스 완료 메시지를 스케줄링 모듈(1002)에 전송할 수 있다.The path setting sub-module transmits scheduling information stored in the queue to the path configuration module (1003) to set a memory access path for the corresponding header processor, and when a path setting completion message is received from the path configuration module (1003), a grant can be transmitted to the corresponding header processor. The header processor that received the grant can transmit a memory access completion message to the scheduling module (1002) after completing memory access.

메모리 액세스 완료 메시지를 수신한 경로 설정 서브 모듈은 스케줄링 정보가 저장된 큐를 확인할 수 있다. 큐가 비어있는 경우, 더 이상 설정할 경로가 없음을 의미하므로 현재 연결 상태를 유지하거나 해지할 수 있다. 큐가 비어있지 않은 경우, 큐가 널(null) 상태가 될 때까지, 순차적으로 다음 메모리 액세스 경로 설정 동작을 반복할 수 있다.The path setting submodule, upon receiving a memory access completion message, can check the queue where scheduling information is stored. If the queue is empty, it indicates that there are no more paths to configure, so the current connection can be maintained or terminated. If the queue is not empty, the next memory access path setting operation can be repeated sequentially until the queue becomes null.

본 발명의 몇몇의 실시 예에서, 스케줄링 서브 모듈은 스케줄링 후 결과를 저장할 때, 큐가 비어 있으면 경로 설정 서브 모듈에게 스케줄링 결과를 저장한다는 트리거 신호를 전송할 수 있다. 경로 설정 서브 모듈은 현재 큐가 비어있지 않거나 스케줄링 서브 모듈로부터 트리거 신호를 수신하는 경우, 경로 구성 모듈(1003)를 통해 경로 구성을 수행할 수 있다. 한편, 현재 경로 구성 중인 상태에서 트리거 신호를 수신하면 이를 무시할 수 있다. 물론 본 발명의 범위는 이에 제한되지 않으며, 구체적인 구현 목적에 따라 본 실시 예의 구성 및 동작은 얼마든지 달라질 수 있다.In some embodiments of the present invention, when the scheduling sub-module stores the results after scheduling, if the queue is empty, it may transmit a trigger signal to the route configuration sub-module to store the scheduling results. If the current queue is not empty or a trigger signal is received from the scheduling sub-module, the route configuration sub-module may perform route configuration through the route configuration module (1003). Meanwhile, if the trigger signal is received while the current route is being configured, it may be ignored. Of course, the scope of the present invention is not limited thereto, and the configuration and operation of the present embodiment may vary in any way depending on the specific implementation purpose.

도 4는 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.FIG. 4 is a flowchart for explaining an operating method of a separation memory system according to one embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법은, 경로 구성 모듈(1003)이 각 헤더 프로세서(1001)에게 특정 식별자를 할당하는 초기화 단계(S401) 및 dMem 액세스 프레임 수신을 위한 유효(valid) 신호를 수신한 후 헤더 프로세서(1001)가 할당 받은 식별자를 이용하여 스케줄링 모듈(1002)에게 스케줄링 요청을 수행하는 단계(S403)를 포함할 수 있다.Referring to FIG. 4, the operating method of the split memory system according to one embodiment of the present invention may include an initialization step (S401) in which the path configuration module (1003) assigns a specific identifier to each header processor (1001), and a step (S403) in which the header processor (1001) performs a scheduling request to the scheduling module (1002) using the assigned identifier after receiving a valid signal for receiving a dMem access frame.

또한, 상기 방법은, 헤더 프로세서(1001)가 메모리 리드/라이트 액세스 정보 및 데이터를 처리하고, 스케줄링 모듈(1002)이 스케줄링 요청을 한 헤더 프로세서에 대해 스케줄링을 수행하는 단계(S405)를 포함할 수 있다.In addition, the method may include a step (S405) in which the header processor (1001) processes memory read/write access information and data, and the scheduling module (1002) performs scheduling for the header processor that has made the scheduling request.

또한, 상기 방법은, 스케줄링 모듈(1002)이, 복수의 헤더 프로세서(1001)에 대한 스케줄링을 수행하고, 스케줄링 결과에 기반하여 메모리 리드/라이트 경로를 구성한 후, 해당 헤더 프로세서에 그랜트를 전송하는 단계(S407)를 포함할 수 있다.In addition, the method may include a step (S407) in which the scheduling module (1002) performs scheduling for a plurality of header processors (1001), configures a memory read/write path based on the scheduling result, and then transmits a grant to the corresponding header processor.

또한, 상기 방법은, 선택된 헤더 프로세서가, 스케줄링 모듈(1002)로부터 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 경로 구성 모듈(1003)에 전송하여, 메모리 리드/라이트를 수행하는 단계(S409 및 S411)를 포함할 수 있다.Additionally, the method may include steps (S409 and S411) in which the selected header processor, after receiving a grant from the scheduling module (1002), transmits a memory write signal or a memory read signal to the path configuration module (1003) to perform memory read/write.

또한, 상기 방법은, 선택된 헤더 프로세서가, 메모리 리드/라이트 완료 메시지를 스케줄링 모듈(1002)에 전송하고, 스케줄링 결과에 다음 헤더 프로세서가 존재하는 경우, 경로 구성 모듈(1003)이, 다음 헤더 프로세서에 대한 메모리 리드/라이트 경로를 구성하거나, 스케줄링 결과에 다음 헤더 프로세서가 존재하지 않는 경우, 경로 구성 모듈(1003)이, 현재 메모리 리드/라이트 경로를 유지 또는 재설정하는 단계(S415)를 포함할 수 있다.In addition, the method may include a step (S415) in which the selected header processor transmits a memory read/write completion message to the scheduling module (1002), and if the next header processor exists in the scheduling result, the path configuration module (1003) configures a memory read/write path for the next header processor, or if the next header processor does not exist in the scheduling result, the path configuration module (1003) maintains or resets the current memory read/write path.

본 실시 예에 따른 분리 메모리 시스템의 동작 방법에 대한 더욱 상세한 내용에 대해서는 도 1 내지 도 3과 관련하여 설명한 내용을 참조할 수 있으므로, 여기서는 중복되는 내용에 대한 설명을 생략하도록 한다.For more detailed information on the operation method of the separation memory system according to the present embodiment, reference may be made to the contents described with respect to FIGS. 1 to 3, and therefore, description of redundant contents will be omitted here.

도 5는 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.FIG. 5 is a flowchart for explaining an operating method of a separation memory system according to one embodiment of the present invention.

도 5를 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법은, 스케줄링 모듈(1002)의 스케줄링 서브 모듈이 복수의 헤더 프로세서(1001)로부터 스케줄링 요청 수신 여부를 확인하는 단계(S501)를 포함할 수 있다.Referring to FIG. 5, the operating method of the split memory system according to one embodiment of the present invention may include a step (S501) in which the scheduling sub-module of the scheduling module (1002) confirms whether a scheduling request is received from a plurality of header processors (1001).

또한, 스케줄링 요청 수신이 확인된 경우(S501, Yes), 상기 방법은, 스케줄링 서브 모듈이, 스케줄링을 위한 요청 정보를 프로세싱하는 단계(S503) 및 프로세싱한 결과에 기초하여 스케줄링 요청에 대한 스케줄링을 수행하는 단계(S505)를 포함할 수 있다.In addition, when reception of a scheduling request is confirmed (S501, Yes), the method may include a step of the scheduling sub-module processing request information for scheduling (S503) and a step of performing scheduling for the scheduling request based on the result of the processing (S505).

또한, 상기 방법은, 스케줄링 서브 모듈이, 스케줄링이 완료되면 현재 스케줄링 결과를 저장하기 전에 큐 상태를 확인하여, 큐가 널 상태이면 스케줄링 결과 정보를 큐에 저장하고 경로 설정 서브 모듈에게 구성할 경로가 있음을 알리는 알람을 전송하며, 큐가 널이 아닌 경우에는 스케줄링 결과 정보만 저장하는 단계(S507)를 포함할 수 있다.In addition, the method may include a step (S507) in which the scheduling sub-module checks the queue status before storing the current scheduling result when scheduling is completed, stores scheduling result information in the queue if the queue is null, and transmits an alarm to the path setting sub-module notifying that there is a path to be configured, and stores only the scheduling result information if the queue is not null.

또한, 상기 방법은, 스케줄링 서브 모듈이, 스케줄링이 완료될 때마다 현재 스케줄링 요청 개수에서 하나를 감소시켜 스케줄링 요청 개수를 업데이트하는 단계(S509)를 포함할 수 있다. 스케줄링에 사용되는 요청 개수는 복수의 헤더 프로세서(1001)가 요청을 할 때마다 그 개수만큼 증가되며, 스케줄링 결과로 하나의 헤더 프로세서가 선택될 때마다 하나씩 감소할 수 있다. 요청 개수가 0인 경우(S511, Yes), 모든 스케줄링 요청에 대한 스케줄링이 완료되었으므로 다음 요청이 있을 때까지 대기할 수 있다.Additionally, the method may include a step (S509) in which the scheduling sub-module updates the number of scheduling requests by decreasing the current number of scheduling requests by one each time scheduling is completed. The number of requests used for scheduling may be increased by that number each time multiple header processors (1001) make a request, and may be decreased by one each time a header processor is selected as a scheduling result. If the number of requests is 0 (S511, Yes), scheduling for all scheduling requests has been completed, and thus, the system may wait until the next request is made.

본 실시 예에 따른 분리 메모리 시스템의 동작 방법에 대한 더욱 상세한 내용에 대해서는 도 1 내지 도 4와 관련하여 설명한 내용을 참조할 수 있으므로, 여기서는 중복되는 내용에 대한 설명을 생략하도록 한다.For further details on the operation method of the separation memory system according to the present embodiment, reference may be made to the contents described with respect to FIGS. 1 to 4, and therefore, description of redundant contents will be omitted here.

도 6은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating an operating method of a separation memory system according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법은, 스케줄링 모듈(1002)의 경로 설정 서브 모듈이, 스케줄링 서브 모듈로부터 그랜트 알람, 즉 경로 구성 알람을 수신하는 단계(S601)를 포함할 수 있다.Referring to FIG. 6, the operating method of the separated memory system according to one embodiment of the present invention may include a step (S601) in which the path setting sub-module of the scheduling module (1002) receives a grant alarm, i.e., a path configuration alarm, from the scheduling sub-module.

또한, 경로 구성 알람을 수신한 후, 상기 방법은, 경로 설정 서브 모듈이, 스케줄링 결과가 저장된 큐에서 그랜트된(granted) 헤더 프로세서에 대한 정보를 가져와서, 해당 헤더 프로세서에 대한 리드/라이트 경로를 구성하는 단계(S603)를 포함할 수 있다. 이를 위하여, 경로 설정 서브 모듈은, 경로 구성 모듈(1003)에게 구성할 헤더 프로세서에 대한 정보를 전달하여, 실제 메모리 액세스 경로를 구성할 수 있다.In addition, after receiving a path configuration alarm, the method may include a step (S603) in which the path configuration sub-module obtains information about a granted header processor from a queue where scheduling results are stored, and configures a read/write path for the corresponding header processor. To this end, the path configuration sub-module may transmit information about the header processor to be configured to the path configuration module (1003), thereby configuring an actual memory access path.

또한, 경로 구성 모듈(1003)로부터 경로 설정 완료 메시지를 받은 후, 상기 방법은, 경로 설정 서브 모듈이 그랜트된 헤더 프로세서에 대한 리드/라이트 경로 구성을 완료하고, 해당 헤더 프로세서에게 그랜트를 전송하는 단계(S605)를 포함할 수 있다.Additionally, after receiving a path setup completion message from the path setup module (1003), the method may include a step (S605) in which the path setup sub-module completes read/write path configuration for the granted header processor and transmits the grant to the corresponding header processor.

또한, 해당 헤더 프로세서로부터 메모리 리드/라이트 완료 메시지를 수신한 후(S607), 상기 방법은, 경로 설정 서브 모듈이 스케줄링 결과 큐를 확인하는 단계(S609)를 포함할 수 있다. 만일 스케줄링 결과 큐가 널 상태이면 더 이상 구성할 경로가 없으므로 스케줄링 서브 모듈로부터 알람을 수신할 때까지 대기한다. 이와 다르게, 큐가 널 상태가 아니면, 다음 그랜트된 헤더 프로세서가 메모리 리드/라이트를 수행할 수 있도록 경로 구성 절차를 반복 수행할 수 있다.In addition, after receiving a memory read/write completion message from the corresponding header processor (S607), the method may include a step (S609) in which the path configuration sub-module checks the scheduling result queue. If the scheduling result queue is null, there are no more paths to configure, so the method waits until an alarm is received from the scheduling sub-module. Alternatively, if the queue is not null, the path configuration procedure may be repeated so that the next granted header processor can perform the memory read/write.

본 실시 예에 따른 분리 메모리 시스템의 동작 방법에 대한 더욱 상세한 내용에 대해서는 도 1 내지 도 5와 관련하여 설명한 내용을 참조할 수 있으므로, 여기서는 중복되는 내용에 대한 설명을 생략하도록 한다.For further details on the operation method of the separation memory system according to the present embodiment, reference may be made to the contents described with respect to FIGS. 1 to 5, and therefore, description of redundant contents will be omitted here.

도 7은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.FIG. 7 is a flowchart illustrating an operating method of a separation memory system according to one embodiment of the present invention.

도 7을 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법은 다음과 같이 라운드 로빈 기반 스케줄링을 수행할 수 있다.Referring to FIG. 7, the operating method of the split memory system according to one embodiment of the present invention can perform round-robin-based scheduling as follows.

단계(S701)에서, 요청 개수가 1 개인지 여부를 확인할 수 있다. 다수 개의 요청이 동시에 들어오지 않는 경우에는 스케줄링을 수행할 필요가 없으므로, 요청 개수가 1 개인 경우, 단계(S703 및 S705)에서, 해당 헤더 프로세서를 선택하고 현재 그랜트 아비터(grant arbiter) 포인터를 해당 헤더 프로세서 다음으로 1만큼 증가시킬 수 있다. 이후 단계(S717 및 S719)에서, 선택이 완료되었으므로 요청 개수를 1 감소시킨 후, 다음 스케줄링을 위하여 요청된 개수를 확인하고, 요청 개수가 0 보다 큰 경우에는 스케줄링을 계속 수행하고, 요청 개수가 0 인 경우에는 스케줄링을 완료할 수 있다.In step (S701), it can be checked whether the number of requests is 1. Since scheduling does not need to be performed if multiple requests do not come in simultaneously, if the number of requests is 1, in steps (S703 and S705), the corresponding header processor can be selected and the current grant arbiter pointer can be increased by 1 after the corresponding header processor. In steps (S717 and S719) thereafter, since the selection is complete, the number of requests is decreased by 1, and the requested number for the next scheduling is checked. If the number of requests is greater than 0, scheduling is continued, and if the number of requests is 0, scheduling can be completed.

한편, 요청 개수가 1이 아닌 경우에는, 단계(S707)에서, 요청 개수가 1보다 큰지 여부를 확인할 수 있다. 요청 개수가 1 보다 작은 경우에는 스케줄링 요청이 없는 것이므로 스케줄링을 완료할 수 있다. 이와 다르게, 현재 요청 개수가 1보다 큰 경우, 단계(S709 및 S711)에서, 스케줄링을 요청한 헤더 프로세서들에 대하여 라운드 로빈 방식을 기반으로, 현재 그랜트 아비터가 가리키는 헤더 프로세서부터 포인터를 하나씩 증가시키면서 순차적으로 선택하고, 단계(S713 및 단계 715)에서 하나의 헤더 프로세서 선택이 완료되면, 현재 선택된 헤더 프로세서를 가리키는 그랜트 아비터 포인터를 1(또는 1 이상의 임의의 값만큼) 증가시킬 수 있다.Meanwhile, if the number of requests is not 1, it can be checked in step S707 whether the number of requests is greater than 1. If the number of requests is less than 1, there is no scheduling request, so scheduling can be completed. In contrast, if the current number of requests is greater than 1, in steps S709 and S711, the header processors that have requested scheduling are sequentially selected by increasing the pointer by one from the header processor pointed to by the current grant arbiter based on a round-robin method, and if the selection of one header processor is completed in steps S713 and S715, the grant arbiter pointer pointing to the currently selected header processor can be increased by 1 (or by an arbitrary value greater than or equal to 1).

이후 단계(S717 및 S719)에서, 선택이 완료되었으므로 요청 개수를 1 감소시킨 후, 다음 스케줄링을 위하여 요청된 개수를 확인하고, 요청 개수가 0 보다 큰 경우에는 스케줄링을 계속 수행하고, 요청 개수가 0 인 경우에는 스케줄링을 완료할 수 있다.In subsequent steps (S717 and S719), since the selection is completed, the number of requests is decreased by 1, and the number of requests for the next scheduling is checked. If the number of requests is greater than 0, scheduling can be continued, and if the number of requests is 0, scheduling can be completed.

본 실시 예에 따른 분리 메모리 시스템의 동작 방법에 대한 더욱 상세한 내용에 대해서는 도 1 내지 도 6과 관련하여 설명한 내용을 참조할 수 있으므로, 여기서는 중복되는 내용에 대한 설명을 생략하도록 한다.For further details on the operation method of the separation memory system according to the present embodiment, reference may be made to the contents described with respect to FIGS. 1 to 6, and therefore, description of redundant contents will be omitted here.

도 8은 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.FIG. 8 is a flowchart illustrating an operating method of a separation memory system according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시 예에 따른 분리 메모리 시스템의 동작 방법은 다음과 같이 우선 순위 기반 스케줄링을 수행할 수 있다.Referring to FIG. 8, the operating method of the split memory system according to one embodiment of the present invention can perform priority-based scheduling as follows.

본 실시 예는, 2 개의 우선 순위를 사용하는 경우에 대한 것으로, 우선 순위 개수와 동일한 우선 순위 간 사용되는 알고리즘은 정책 및 구현 방법에 따라 다양하게 변형될 수 있다.This embodiment is for the case where two priorities are used, and the algorithm used between priorities with the same number of priorities can be modified in various ways depending on the policy and implementation method.

단계(S801 내지 S805)에서, 메모리 리드/라이트 액세스 순서를 결정하기 위하여 우선 순위 기반 스케줄링에서는 가장 우선 순위가 높은 요청들부터 스케줄링될 수 있으며, 요청 개수가 하나인 경우에는 스케줄링 없이 요청한 해당 헤더 프로세서를 선택하고 높은 우선 순위의 그랜트 아비터 포인터를 해당 헤더 프로세서 다음으로 1만큼 증가시킬 수 있다.In steps (S801 to S805), in order to determine the memory read/write access order, priority-based scheduling may be used to schedule requests starting from the highest priority requests, and in case the number of requests is one, the requested header processor may be selected without scheduling and the grant arbiter pointer of the highest priority may be increased by 1 after the header processor.

단계(S807 내지 S815)에서, 높은 우선 순위를 갖는 요청 개수가 2 개 이상인 경우, 그랜트 아비터가 가리키는 헤더 프로세서에게 우선적으로 그랜트를 주고, 현재 그랜트 아비터가 가리키는 헤더 프로세서부터 순차적으로 증가시키면서 선택한 후, 하나의 헤더 프로세서 선택이 완료되면, 현재 선택된 헤더 프로세서를 가리키는 그랜트 아비터 포인터를 1(또는 1 이상의 임의의 값만큼) 증가시킬 수 있다.In steps (S807 to S815), if the number of requests with high priority is two or more, a grant is given preferentially to a header processor pointed to by a grant arbiter, and then a selection is made sequentially starting from the header processor pointed to by the current grant arbiter, and when selection of one header processor is completed, a grant arbiter pointer pointing to the currently selected header processor can be increased by 1 (or by an arbitrary value greater than or equal to 1).

이후 단계(S817 및 S819)에서, 선택이 완료되었으므로 높은 우선 순위 요청 개수를 1 감소시킨 후, 다음 스케줄링을 위하여 요청된 개수를 확인하고, 요청 개수가 0 보다 큰 경우에는 스케줄링을 계속 수행하고, 요청 개수가 0 인 경우, 특히 높은 우선 순위 요청이 없는 경우에는, 단계(S821 내지 S835)에 따라, 높은 우선 순위 요청을 스케줄링하는 것과 동일하거나 유사한 방식으로 낮은 우선 순위 요청에 대한 스케줄링을 수행할 수 있다. 그리고 낮은 우선 순위 요청이 없는 경우에는 스케줄링을 완료할 수 있다.In subsequent steps (S817 and S819), since the selection is completed, the number of high priority requests is decreased by 1, and then the number of requests for the next scheduling is checked, and if the number of requests is greater than 0, scheduling is continued, and if the number of requests is 0, and in particular, if there is no high priority request, scheduling for low priority requests can be performed in the same or similar manner as scheduling high priority requests according to steps (S821 to S835). And if there is no low priority request, scheduling can be completed.

본 실시 예에 따른 분리 메모리 시스템의 동작 방법에 대한 더욱 상세한 내용에 대해서는 도 1 내지 도 7과 관련하여 설명한 내용을 참조할 수 있으므로, 여기서는 중복되는 내용에 대한 설명을 생략하도록 한다.For more detailed information on the operation method of the separation memory system according to the present embodiment, reference may be made to the contents described with respect to FIGS. 1 to 7, and therefore, description of redundant contents will be omitted here.

이제까지 설명한 본 발명의 실시 예들에 따르면, 원격으로 분리되어 있거나 거리 상 떨어져 있는 다수의 컴퓨팅 자원이 메모리 자원을 충돌 없이 액세스할 수 있는 장치를 제공할 수 있다.According to the embodiments of the present invention described so far, a device can be provided in which a plurality of computing resources that are remotely separated or separated by a distance can access memory resources without conflict.

또한, 본 발명의 실시 예들에 따르면, 분리 자원 기반의 데이터 센터 네트워크에서, 네트워크 자원을 효율적으로 사용하여 이용률을 높일 수 있고, 처리율 및 지연 성능을 개선하여 네트워크 성능을 높일 수 있다.In addition, according to embodiments of the present invention, in a data center network based on separated resources, network resources can be efficiently used to increase utilization, and throughput and delay performance can be improved to increase network performance.

이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고, 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속한다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements made by a person of ordinary skill in the art to which the present invention pertains using the basic concept of the present invention defined in the following claims also fall within the scope of the present invention.

Claims (20)

Translated fromKorean
분리 메모리 액세스 프레임(disaggregated memory access frame)에 기초하여 스케줄링 요청을 생성하는 복수의 헤더 프로세서(header processor);
상기 스케줄링 요청에 따라 상기 복수의 헤더 프로세서에 대한 스케줄링을 수행하고 상기 스케줄링 결과를 저장하는 스케줄링 모듈; 및
상기 복수의 헤더 프로세서 중 상기 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 경로 구성 모듈을 포함하며,
상기 스케줄링 요청은 우선 순위를 가지고, 상기 스케줄링 모듈은 상기 우선 순위에 따라 상기 스케줄링을 수행하되,
상위 우선 순위에 해당하는 스케줄링 요청에 대한 수행이 모두 완료된 후, 하위 우선 순위에 해당하는 스케줄링 요청에 대한 수행을 시작하고,
상기 스케줄링 모듈은 상기 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 정보를 상기 경로 구성 모듈에 전송하고,
상기 경로 구성 모듈은, 상기 선택된 헤더 프로세서에 대한 상기 메모리 액세스 경로를 구성한 후, 경로 설정 완료 메시지를 상기 스케줄링 모듈에 전송하며,
상기 스케줄링 모듈은, 상기 경로 설정 완료 메시지를 수신한 후, 상기 선택된 헤더 프로세서에 그랜트(grant)를 전송하고,
상기 선택된 헤더 프로세서는, 상기 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 상기 경로 구성 모듈에 전송하고,
상기 선택된 헤더 프로세서는, 메모리 액세스를 완료한 후, 메모리 액세스 완료 메시지를 상기 스케줄링 모듈에 전송하고,
상기 스케줄링 모듈은, 상기 메모리 액세스 완료 메시지를 수신한 후, 상기 스케줄링 결과로부터 다음 헤더 프로세서를 선택하는 분리 메모리 디바이스(disaggregated memory device).
A plurality of header processors that generate scheduling requests based on disaggregated memory access frames;
A scheduling module that performs scheduling for the plurality of header processors according to the scheduling request and stores the scheduling result; and
A path configuration module for configuring a memory access path for a header processor selected from the scheduling result among the plurality of header processors,
The above scheduling request has a priority, and the scheduling module performs the scheduling according to the priority.
After all executions for scheduling requests corresponding to higher priorities are completed, executions for scheduling requests corresponding to lower priorities are started.
The above scheduling module transmits information about the header processor selected from the above scheduling result to the path configuration module,
The above path configuration module configures the memory access path for the selected header processor and then transmits a path configuration completion message to the scheduling module.
The above scheduling module, after receiving the route setting completion message, transmits a grant to the selected header processor,
The above-mentioned selected header processor, after receiving the grant, transmits a memory write signal or a memory read signal to the path configuration module,
The above-mentioned selected header processor, after completing the memory access, transmits a memory access completion message to the scheduling module,
The above scheduling module is a disaggregated memory device that selects the next header processor from the scheduling result after receiving the memory access completion message.
삭제delete삭제delete삭제delete제1항에 있어서,
상기 다음 헤더 프로세서가 존재하는 경우, 상기 경로 구성 모듈은, 상기 다음 헤더 프로세서에 대한 상기 메모리 액세스 경로를 구성하는, 분리 메모리 디바이스.
In the first paragraph,
A separate memory device, wherein the path configuration module configures the memory access path for the next header processor, if the next header processor exists.
제1항에 있어서,
상기 다음 헤더 프로세서가 존재하지 않는 경우, 상기 경로 구성 모듈은, 현재 메모리 액세스 경로를 유지 또는 해제하는, 분리 메모리 디바이스.
In the first paragraph,
If the above next header processor does not exist, the path configuration module is a separate memory device that maintains or releases the current memory access path.
제1항에 있어서,
상기 경로 구성 모듈은, 상기 복수의 헤더 프로세서 각각에 미리 설정된 식별자를 할당하고, 상기 복수의 헤더 프로세서는 상기 할당 받은 식별자를 이용하여 상기 스케줄링 요청을 생성하는, 분리 메모리 디바이스.
In the first paragraph,
A separate memory device in which the path configuration module assigns a preset identifier to each of the plurality of header processors, and the plurality of header processors generate the scheduling request using the assigned identifier.
삭제delete제1항에 있어서,
상기 스케줄링 모듈은, 상기 스케줄링 요청의 개수가 2 이상인 경우, 우선 순위 기반 스케줄링을 수행하는, 분리 메모리 디바이스.
In the first paragraph,
The above scheduling module is a separate memory device that performs priority-based scheduling when the number of scheduling requests is 2 or more.
제1항에 있어서,
광 회선 스위치(Optical Circuit Switch, OCS)와 광 신호를 송수신하는 광 트랜시버를 더 포함하고,
상기 복수의 헤더 프로세서는 상기 광 신호를 이용하여 상기 분리 메모리 액세스 프레임을 송수신하는, 분리 메모리 디바이스.
In the first paragraph,
It further includes an optical circuit switch (OCS) and an optical transceiver for transmitting and receiving optical signals,
A separate memory device in which the plurality of header processors transmit and receive the separate memory access frame using the optical signal.
제10항에 있어서,
상기 광 회선 스위치는 분리 계산 디바이스(disaggregated computation device)와 상기 광 신호를 송수신하는, 분리 메모리 디바이스.
In Article 10,
The above optical circuit switch is a disaggregated computation device and a disaggregated memory device that transmits and receives the optical signal.
제1항에 있어서,
물리적 메모리를 포함하는 메모리 모듈; 및
상기 경로 구성 모듈에 의해 구성된 상기 메모리 액세스 경로에 기초하여, 상기 메모리 모듈에 대한 메모리 라이트 또는 메모리 리드를 수행하는 메모리 컨트롤러를 더 포함하는, 분리 메모리 디바이스.
In the first paragraph,
a memory module containing physical memory; and
A separate memory device further comprising a memory controller that performs a memory write or a memory read for the memory module based on the memory access path configured by the path configuration module.
복수의 헤더 프로세서가 분리 메모리 액세스 프레임에 기초하여 스케줄링 요청을 생성하는 단계;
스케줄링 모듈이 상기 스케줄링 요청에 따라 상기 복수의 헤더 프로세서에 대한 스케줄링을 수행하고 상기 스케줄링 결과를 저장하는 단계; 및
경로 구성 모듈이 상기 복수의 헤더 프로세서 중 상기 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 메모리 액세스 경로를 구성하는 단계를 포함하며,
상기 스케줄링 요청은 우선 순위를 가지고, 상기 스케줄링 모듈은 상기 우선 순위에 따라 상기 스케줄링을 수행하되,
상위 우선 순위에 해당하는 스케줄링 요청에 대한 수행이 모두 완료된 후, 하위 우선 순위에 해당하는 스케줄링 요청에 대한 수행을 시작하고,
상기 스케줄링 모듈이 상기 스케줄링 결과로부터 선택된 헤더 프로세서에 대한 정보를 상기 경로 구성 모듈에 전송하는 단계;
상기 경로 구성 모듈이, 상기 선택된 헤더 프로세서에 대한 상기 메모리 액세스 경로를 구성한 후, 경로 설정 완료 메시지를 상기 스케줄링 모듈에 전송하는 단계;
상기 스케줄링 모듈이, 상기 경로 설정 완료 메시지를 수신한 후, 상기 선택된 헤더 프로세서에 그랜트(grant)를 전송하는 단계;
상기 선택된 헤더 프로세서가, 상기 그랜트를 수신한 후, 메모리 라이트 신호 또는 메모리 리드 신호를 상기 경로 구성 모듈에 전송하는 단계를 포함하며,
상기 선택된 헤더 프로세서가, 메모리 액세스를 완료한 후, 메모리 액세스 완료 메시지를 상기 스케줄링 모듈에 전송하는 단계; 및
상기 스케줄링 모듈이, 상기 메모리 액세스 완료 메시지를 수신한 후, 상기 스케줄링 결과로부터 다음 헤더 프로세서를 선택하는 단계를 더 포함하는 분리 메모리 디바이스의 동작 방법.
A step in which multiple header processors generate scheduling requests based on separate memory access frames;
A step in which the scheduling module performs scheduling for the plurality of header processors according to the scheduling request and stores the scheduling result; and
The path configuration module comprises a step of configuring a memory access path for a header processor selected from the scheduling result among the plurality of header processors,
The above scheduling request has a priority, and the scheduling module performs the scheduling according to the priority.
After all executions for scheduling requests corresponding to higher priorities are completed, executions for scheduling requests corresponding to lower priorities are started.
A step in which the scheduling module transmits information about the header processor selected from the scheduling result to the path configuration module;
A step in which the path configuration module configures the memory access path for the selected header processor, and then transmits a path configuration completion message to the scheduling module;
A step in which the scheduling module transmits a grant to the selected header processor after receiving the route setting completion message;
The above-mentioned selected header processor comprises a step of transmitting a memory write signal or a memory read signal to the path configuration module after receiving the grant,
The step of the above-mentioned selected header processor transmitting a memory access completion message to the scheduling module after completing the memory access; and
A method of operating a separate memory device, further comprising the step of selecting a next header processor from the scheduling result after the scheduling module receives the memory access completion message.
삭제delete삭제delete삭제delete제13항에 있어서,
상기 다음 헤더 프로세서가 존재하는 경우, 상기 경로 구성 모듈이, 상기 다음 헤더 프로세서에 대한 상기 메모리 액세스 경로를 구성하는 단계를 더 포함하는 분리 메모리 디바이스의 동작 방법.
In Article 13,
A method of operating a separate memory device, further comprising the step of the path configuration module configuring the memory access path for the next header processor, if the next header processor exists.
제13항에 있어서,
상기 다음 헤더 프로세서가 존재하지 않는 경우, 상기 경로 구성 모듈이, 현재 메모리 액세스 경로를 유지 또는 해제하는 단계를 더 포함하는 분리 메모리 디바이스의 동작 방법.
In Article 13,
A method of operating a separate memory device, further comprising the step of the path configuration module maintaining or releasing the current memory access path if the above next header processor does not exist.
제13항에 있어서,
상기 스케줄링을 수행하는 단계는, 상기 스케줄링 요청의 개수가 2 이상인 경우, 라운드 로빈 기반 스케줄링을 수행하는 단계를 포함하는, 분리 메모리 디바이스의 동작 방법.
In Article 13,
A method for operating a separate memory device, wherein the step of performing the scheduling includes a step of performing round-robin-based scheduling when the number of scheduling requests is 2 or more.
삭제delete
KR1020200044754A2020-04-132020-04-13Disaggregated memory device and operating method thereofActiveKR102844602B1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
KR1020200044754AKR102844602B1 (en)2020-04-132020-04-13Disaggregated memory device and operating method thereof

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
KR1020200044754AKR102844602B1 (en)2020-04-132020-04-13Disaggregated memory device and operating method thereof

Publications (2)

Publication NumberPublication Date
KR20210126978A KR20210126978A (en)2021-10-21
KR102844602B1true KR102844602B1 (en)2025-08-11

Family

ID=78269058

Family Applications (1)

Application NumberTitlePriority DateFiling Date
KR1020200044754AActiveKR102844602B1 (en)2020-04-132020-04-13Disaggregated memory device and operating method thereof

Country Status (1)

CountryLink
KR (1)KR102844602B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20180024957A1 (en)*2016-07-222018-01-25Murugasamy K. NachimuthuTechniques to enable disaggregation of physical memory resources in a compute system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US8539129B2 (en)*2010-04-142013-09-17Qualcomm IncorporatedBus arbitration techniques to reduce access latency
JP6382333B2 (en)*2014-04-282018-08-29インテル アイピー コーポレーション User equipment (UE), program, method, machine-readable storage device, and computer-readable recording medium
KR102412289B1 (en)*2017-12-132022-06-23한국전자통신연구원Parallel sceduling method and apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20180024957A1 (en)*2016-07-222018-01-25Murugasamy K. NachimuthuTechniques to enable disaggregation of physical memory resources in a compute system

Also Published As

Publication numberPublication date
KR20210126978A (en)2021-10-21

Similar Documents

PublicationPublication DateTitle
US9178832B2 (en)Queue credit management
US9769077B2 (en)QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9007920B2 (en)QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
KR101382606B1 (en)Apparatus and method for task mapping of hybrid optical networks on chip and hybrid optical networks on chip system using the same
US7907610B2 (en)Integrated circuit with internal communication network
US10237198B2 (en)Shared-credit arbitration circuit
CN111163140A (en)Method, apparatus and computer readable storage medium for resource acquisition and allocation
CN117708008A (en)Polling arbitration method and device based on counter
KR102844602B1 (en)Disaggregated memory device and operating method thereof
KR102496994B1 (en)Peripheral component interconnect express interface device and operating method thereof
KR102303424B1 (en)Direct memory access control device for at least one processing unit having a random access memory
JP2004504773A (en) Communication control method and apparatus
CN107317765B (en)Method and device for managing path information
US20050228914A1 (en)Matrix type bus connection system
JP4687925B2 (en) Priority arbitration system and priority arbitration method
US20160112312A1 (en)Communication apparatus, information processing apparatus, and method of controlling communication apparatus
CN111147611A (en) Electronic equipment providing fast packet forwarding with reference to additional network address translation tables
JP6546566B2 (en) Parallel load distribution system, parallel load distribution method, SDN controller host and program
US12099846B2 (en)Shared unit instruction execution
JP6669614B2 (en) Controller for system including data center and optical network
KR102824954B1 (en)Apparatus and method for controlling memory access in parallel processing system
JP7706922B2 (en) Control circuit, information processing system, and control method
JP6558011B2 (en) Management device, switch device, priority management method, and computer program
JP2017102560A (en)Data buffer device and FIFO control method
KR20250061325A (en)Method and Apparatus for Accelerating Data Processing Based on Optical Connection

Legal Events

DateCodeTitleDescription
PA0109Patent application

St.27 status event code:A-0-1-A10-A12-nap-PA0109

PG1501Laying open of application

St.27 status event code:A-1-1-Q10-Q12-nap-PG1501

A201Request for examination
PA0201Request for examination

St.27 status event code:A-1-2-D10-D11-exm-PA0201

R17-X000Change to representative recorded

St.27 status event code:A-3-3-R10-R17-oth-X000

D13-X000Search requested

St.27 status event code:A-1-2-D10-D13-srh-X000

D14-X000Search report completed

St.27 status event code:A-1-2-D10-D14-srh-X000

E902Notification of reason for refusal
PE0902Notice of grounds for rejection

St.27 status event code:A-1-2-D10-D21-exm-PE0902

E13-X000Pre-grant limitation requested

St.27 status event code:A-2-3-E10-E13-lim-X000

P11-X000Amendment of application requested

St.27 status event code:A-2-2-P10-P11-nap-X000

P13-X000Application amended

St.27 status event code:A-2-2-P10-P13-nap-X000

E90FNotification of reason for final refusal
PE0902Notice of grounds for rejection

St.27 status event code:A-1-2-D10-D21-exm-PE0902

E13-X000Pre-grant limitation requested

St.27 status event code:A-2-3-E10-E13-lim-X000

P11-X000Amendment of application requested

St.27 status event code:A-2-2-P10-P11-nap-X000

P13-X000Application amended

St.27 status event code:A-2-2-P10-P13-nap-X000

E701Decision to grant or registration of patent right
PE0701Decision of registration

St.27 status event code:A-1-2-D10-D22-exm-PE0701

PR0701Registration of establishment

St.27 status event code:A-2-4-F10-F11-exm-PR0701

PR1002Payment of registration fee

St.27 status event code:A-2-2-U10-U11-oth-PR1002

Fee payment year number:1

PG1601Publication of registration

St.27 status event code:A-4-4-Q10-Q13-nap-PG1601


[8]ページ先頭

©2009-2025 Movatter.jp