KR102600204B1 - Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 - Google Patents
Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 Download PDFInfo
- Publication number
- KR102600204B1 KR102600204B1 KR1020200165883A KR20200165883A KR102600204B1 KR 102600204 B1 KR102600204 B1 KR 102600204B1 KR 1020200165883 A KR1020200165883 A KR 1020200165883A KR 20200165883 A KR20200165883 A KR 20200165883A KR 102600204 B1 KR102600204 B1 KR 102600204B1
- Authority
- KR
- South Korea
- Prior art keywords
- field
- priority
- manufacturer
- value
- gen
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000015654 memory Effects 0.000 claims description 52
- 102100027241 Adenylyl cyclase-associated protein 1 Human genes 0.000 claims description 17
- 108010077333 CAP1-6D Proteins 0.000 claims description 17
- 108010031970 prostasin Proteins 0.000 claims description 17
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000002347 injection Methods 0.000 description 6
- 239000007924 injection Substances 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치가 제공된다. 제1 디바이스가, 제2 디바이스로 송신한 제1 패킷에 대한 응답인 제2 패킷을 제2 디바이스로부터 수신하고, 제2 패킷이 혼잡 상황 발생을 나타내는 경우, Gen-Z 인터페이스에 따른 필드들 중에서 혼잡 제어를 위해 설정된 필드에 패킷의 우선 순위 정보를 기록한다. 그리고 제1 디바이스가, 우선 순위 정보를 포함하는 제3 패킷을 제2 디바이스로 송신한다.
Description
본 개시는 혼잡 제어에 관한 것으로, 더욱 상세하게 말하자면, Gen-Z 인터페이스 기반의 혼잡을 제어하는 방법 및 장치에 관한 것이다.
최근 인터넷 기술의 고도화로 인하여 기존의 웹서치(web search) 이외의 새로운 형태의 워크로드(workload)가 다양하게 출현하고 있다. 새로운 형태란 기존의 인터넷 서비스를 위하여 이동하는 OLTP(on-line transaction processing) 트랜잭션과 달리, 짧고 산발적이며 갑작스럽게 폭증하는 형태로 생성되기도 하는 비구조적(unstructured) 데이터를 사용하여 서비스되는 인터넷 서비스들이다.
이러한 서비스를 구동하는 내부 패킷들은 패킷 사이즈가 작고, 비구조적(unstructured) 타입의 데이터 구성을 가지며, 짧은 시간에 엄청난 양의 데이터를 처리해야 하는 특성을 가지고 있다.
이러한 데이터를 효율적으로 처리할 수 있는 새로운 컴퓨팅 패러다임을 데이터 중심 컴퓨팅(data centric computing)이라고 한다. 데이터 중심 컴퓨팅을 지원하기 위하여 대용량, 저지연 메모리 풀(pool) 기술을 구현한 Gen-Z 인터페이스 기술이 개발되고 있다.
다양한 성격의 워크로드를 처리하여 인터넷 서비스를 진행하기 위해서, 우선 사용자로부터 입력되는 데이터를 받아서 서버 소프트웨어가 소정의 서비스를 진행하기 위한 응용 소프트웨어를 구동할 때, Gen-Z 인터페이스 규격을 사용하는 디바이스를 사용할 경우, 서비스 사용자들에 의한 워크로드의 순간적인 폭주로 인하여 Gen-Z 디바이스의 내부 자원이 소진되어, 순간적으로 포화(saturation) 상황이 발생할 수 있으며, 이에 따라 패킷 측면에서는 혼잡(congestion) 상황이 발생할 수 있다. 이는 실질적으로 서비스 측면에서는 사용자가 요구한 서비스가 일시 정지되는 효과가 발생하여 서비스 품질이 대단히 떨어지는 결과를 초래한다.
이러한 경우를 제어하기 위하여 Gen-Z 인터페이스 규격은 혼잡 제어 방법에 대한 규칙을 매우 제한적으로 포함하고 있을 뿐이므로, 보다 효율적인 혼잡 제어 방법이 요구된다.
본 개시가 해결하고자 하는 과제는, Gen-Z 인터페이스 규격을 기반으로 디바이스에서 발생하는 혼잡을 보다 효율적으로 제어할 수 있는 방법 및 장치를 제공하는 것이다.
일 실시 예에 따르면, 제1 디바이스와 제2 디바이스가 Gen-Z 인터페이스 기반으로 패킷을 송수신하는 환경에서의 혼잡 제어 방법이 제공된다. 상기 혼잡 제어 방법은, 상기 제1 디바이스가, 상기 제2 디바이스로 송신한 제1 패킷에 대한 응답인 제2 패킷을 상기 제2 디바이스로부터 수신하는 단계; 상기 제1 디바이스가, 상기 제2 패킷이 혼잡 상황 발생을 나타내는 경우, 상기 Gen-Z 인터페이스에 따른 필드들 중에서 혼잡 제어를 위해 설정된 필드에 패킷의 우선 순위 정보를 기록하는 단계; 및 상기 제1 디바이스가, 상기 우선 순위 정보를 포함하는 제3 패킷을 상기 제2 디바이스로 송신하는 단계를 포함한다.
일 구현 예에서, 상기 우선 순위 정보를 기록하는 단계는 상기 Gen-Z 인터페이스 규격에 따른 제조사 정의 구조체 필드에 우선 순위 정보를 기록할 수 있다.
일 구현 예에서, 상기 우선 순위 정보를 기록하는 단계는, 상기 Gen-Z 인터페이스 규격에 따른 CMS(Congestion Management Structure) 필드에 제조사 정의된 값에 따라 혼잡 제어가 이루어짐을 기록하는 단계; 및 상기 제조사 정의 구조체 필드에 우선 순위 정보를 기록하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 혼잡 제어가 이루어짐을 기록하는 단계는, 상기 CMS 필드 중에서, Congestion CAP1 필드의 값을 제조사 정의 혼잡 제어를 지원하는 값으로 설정하는 단계; 상기 CMS 필드 중에서, Congestion CAP1 Control 필드의 설정 비트의 값을 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 하는 값으로 설정하는 단계; 및 상기 CMS 필드 중에서, Vendor-defined PTR의 값을 제조사 정의 혼합 제어를 위한 정보가 정의된 상기 제조사 정의 구조체 필드의 값으로 설정하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 제조사 정의 구조체 필드는 제조사 정의 데이터 필드를 포함하고, 상기 제조사 정의 데이터 필드는 제조사 정의 우선 순위 인에이블 비트와 제조사 정의 우선 순위 필드를 포함할 수 있다.
일 구현 예에서, 상기 제조사 정의 우선 순위 필드는 서비스별로 우선 순위를 나타내는 값이 기록되어 있을 수 있으며, 상기 제조사 정의 구조체 필드는 유형 정보를 나타내는 유형 필드와 크기를 나타내는 크기 필드를 추가적으로 포함할 수 있다.
일 구현 예에서, 상기 우선 순위 정보를 기록하는 단계는 상기 Gen-Z 인터페이스 규격에 따른 데드라인(deadline) 필드에 우선 순위 정보를 기록할 수 있다.
일 구현 예에서, 상기 데드라인 필드는 우선 순위 정보가 기록되는 제1 필드와 데드라인 값이 기록되는 제2 필드를 포함할 수 있다.
일 구현 예에서, 상기 제1 필드는 우선 순위 인에이블 비트와 우선 순위를 나타내는 우선 순위 인코딩 비트를 포함할 수 있다.
일 구현 예에서, 상기 우선 순위 정보를 기록하는 단계는, 상기 데드라인 필드의 제1 필드에 우선 순위 정보를 기록하는 단계; 및 상기 데드라인 필드의 제2 필드에 데드라인 값을 기록하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 제1 필드에 우선 순위 정보를 기록하는 단계는 상기 제1 필드가 우선 순위 인에이블 비트를 포함하는 경우, 상기 우선 순위 인에이블 비트를 활성화시키고, 나머지 비트를 우선 순위 인코딩 비트로 사용하여 우선 순위를 기록할 수 있다.
다른 실시 예에 따르면, Gen-Z 인터페이스 기반으로 패킷을 송수신하는 환경에서의 디바이스가 제공된다. 상기 디바이스는 메모리; 및 상기 메모리에 저장된 명령을 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서는 상기 명령을 실행하여, 다른 디바이스로 송신한 제1 패킷에 대한 응답인 제2 패킷을 상기 다른 디바이스로부터 수신하는 동작; 상기 제2 패킷이 혼잡 상황 발생을 나타내는 경우, 상기 Gen-Z 인터페이스에 따른 필드들 중에서 혼잡 제어를 위해 설정된 필드에 패킷의 우선 순위 정보를 기록하는 동작; 및 상기 우선 순위 정보를 포함하는 제3 패킷을 상기 다른 디바이스로 송신하는 동작을 수행하도록 구성된다.
일 구현 예에서, 상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 Gen-Z 인터페이스 규격에 따른 제조사 정의 구조체 필드에 우선 순위 정보를 기록하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 Gen-Z 인터페이스 규격에 따른 CMS(Congestion Management Structure) 필드에 제조사 정의된 값에 따라 혼잡 제어가 이루어짐을 기록하는 동작; 및 상기 제조사 정의 구조체 필드에 우선 순위 정보를 기록하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 혼잡 제어가 이루어짐을 기록하는 동작 수행시, 상기 CMS 필드 중에서, Congestion CAP1 필드의 값을 제조사 정의 혼잡 제어를 지원하는 값으로 설정하는 동작; 상기 CMS 필드 중에서, Congestion CAP1 Control 필드의 설정 비트의 값을 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 하는 값으로 설정하는 동작; 및 상기 CMS 필드 중에서, Vendor-defined PTR의 값을 제조사 정의 혼합 제어를 위한 정보가 정의된 상기 제조사 정의 구조체 필드의 값으로 설정하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 제조사 정의 구조체 필드는 제조사 정의 데이터 필드를 포함하고, 상기 제조사 정의 데이터 필드는 제조사 정의 우선 순위 인에이블 비트와 우선 순위를 나타내는 값이 기록되는 제조사 정의 우선 순위 필드를 포함할 수 있다.
일 구현 예에서, 상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 Gen-Z 인터페이스 규격에 따른 데드라인(deadline) 필드에 우선 순위 정보를 기록하도록 구성될 수 있다.
일 구현 예에서, 상기 데드라인 필드는 우선 순위 정보가 기록되는 제1 필드와 데드라인 값이 기록되는 제2 필드를 포함할 수 있다.
일 구현 예에서, 상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 데드라인 필드의 제1 필드에 우선 순위 정보를 기록하는 동작; 및 상기 데드라인 필드의 제2 필드에 데드라인 값을 기록하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는, 상기 제1 필드에 우선 순위 정보를 기록하는 동작 수행시, 상기 제1 필드가 우선 순위 인에이블 비트를 포함하는 경우, 상기 우선 순위 인에이블 비트를 활성화시키고, 나머지 비트를 우선 순위 인코딩 비트로 사용하여 우선 순위를 기록하도록 구성될 수 있다.
본 개시의 실시 예에 따르면, Gen-Z 인터페이스에서 정의하고 있는 표준 규격을 따르면서 패킷 우선 순위 기반의 효율적인 혼잡 제어가 수행된다.
또한, 데이터 중심 워크로드에 대한 데이터 처리시, 개별 서비스에 대한 성격에 따라 서비스 패킷의 처리 우선 순위를 부여할 수 있다. 또한, Gen-Z fabric 내부가 포화되는 상황이라면, 우선 순위 정보를 사용하여 우선 순위별로 데이터 패킷을 처리하도록 함으로써 서비스가 과도하게 지연되는 현상을 해소할 수 있다.
또한, 위의 서비스 등과 더불어 다양한 머신 러닝 및 딥 러닝, 초대규모 변수 운용 시뮬레이션 프로그램의 구동시에도, Gen-Z 인터페이스를 사용한 메모리풀이 사용되는데, 이에 본 개시의 실시 예에 따른 혼잡 제어 방법을 사용할 수 있다. 그 결과, 소프트웨어 구동시 대용량의 메모리 풀 접근 데이터가 발생하더라도 해당 소프트웨어가 발생시키는 Gen-Z 패킷의 우선 순위를 높이는 방법으로 실행 속도를 보장할 수 있다. 따라서 Gen-Z 인터페이스 호환 하드웨어를 사용한 서버 응용 프로그램의 서비스 품질을 향상시킬 수 있다.
도 1은 본 개시의 실시 예에 따른 인터페이스 구조를 나타낸다.
도 2는 본 개시의 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
도 3은 본 개시의 다른 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
도 4는 ECN 필드를 나타낸 예시도이고, 도 5는 데드라인 필드를 나타낸 예시도이다.
도 6은 본 개시의 실시 예에 따른 제조사 정의 구조체 필드의 형식을 나타낸 예시도이다.
도 7은 ECN 필드와 데드라인 필드의 폭을 나타낸 도이다.
도 8은 본 개시의 실시 예에 따른 데드라인 필드의 구성을 나타낸 도이다.
도 9는 본 개시의 제1 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
도 10은 본 개시의 제2 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
도 11은 본 발명의 실시 예에 따른 혼잡 제어 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
도 2는 본 개시의 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
도 3은 본 개시의 다른 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
도 4는 ECN 필드를 나타낸 예시도이고, 도 5는 데드라인 필드를 나타낸 예시도이다.
도 6은 본 개시의 실시 예에 따른 제조사 정의 구조체 필드의 형식을 나타낸 예시도이다.
도 7은 ECN 필드와 데드라인 필드의 폭을 나타낸 도이다.
도 8은 본 개시의 실시 예에 따른 데드라인 필드의 구성을 나타낸 도이다.
도 9는 본 개시의 제1 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
도 10은 본 개시의 제2 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
도 11은 본 발명의 실시 예에 따른 혼잡 제어 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 나타낸다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
또한, 본 개시의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
다음에는 첨부된 도면을 참조하여 본 개시의 실시 예에 따른 Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치에 대하여 설명한다.
기존에 존재하지 않던 다양한 인터넷 기반 서비스는, 기존의 인터넷 서비스를 위하여 이동하는 OLTP(on-line transaction processing) 트랜잭션과 달리, 짧고 산발적이며 갑작스럽게 폭증하는 형태로 생성되기도 하는 비구조적(unstructured) 데이터를 사용하여 서비스되는 인터넷 서비스들이다. 예를 들어, 소셜 네트워크(social network), 포토 프로세싱(photo processing), 노래 인식(song recognition), 웹 매시업(web mashups), 금융 암호화(financial encryption), 센서 네트워크 데이터(sensor network data), 추천 시스템(recommendation system), 임의 쿼리(ad hoc query), 미디어 트랜스코딩 및 스트리밍(media transcoding and streaming) 등이 있다.
또한, 다양한 신종 인터넷 서비스 중 특별히 저지연(low latency) 성능이 중요한 서비스(latency-critical service)로는 예를 들어, 소셜 미디어(social media), 검색 엔진(search engines), SaaS(software-as-a-service), 온라인 맵(online maps), 머신 트랜스레이션(machine translation), 온라인 쇼핑(online shopping), 광고(advertising), 금융 데이터 암호(financial data encryption), 실시간 제어 시스템(real time remote control system) 등이 있다. 기존의 서비스가 개선되거나 또는 완전히 새로운 영역을 만들면서 새로운 서비스들이 계속적으로 출현하고 있다.
이러한 서비스들에서, 기존의 단순 웹 서치 질의(query) 동작에서 나타나는 단순 질의 메시지의 요청 및 응답뿐만 아니라, 이 메시지를 수신한 웹 서버의 후방(backend) 서버에서 질의 내용에 응답하기 위해 방대한 양의 데이터 후처리가 요구된다.
데이터를 효율적으로 처리할 수 있는 새로운 컴퓨팅 패러다임인 데이터 중심 컴퓨팅(data-centric computing)에서, 대용량, 저지연 메모리 풀(pool) 기술을 구현한 Gen-Z 인터페이스 기술이 개발되고 있다.
Gen-Z 인터페이스는 다음과 같은 구조적인 장점을 가지고 있다.
첫째, 바이트 어드레싱이 가능하다.
Gen-Z 인터페이스는 기존의 메모리 공유 기술이 대부분 블록 단위 접근을 기반으로 사용된 것에 비해, 로컬 노드 및 원격 노드가 휘발성 또는 비휘발성 메모리 소자인 공유 대상 메모리에 대하여 바이트 단위로 접근(access)할 수 있도록 한다.
둘째, 입출력(Input/Output, I/O) 디바이스 접근시 공통으로 사용 가능한 규격을 제공한다.
기존의 컴퓨팅 구성 요소에서 널리 사용되는 네트워크 카드, 그래픽 카드, FPGA(field programmable gate array), DSP(digital signal processer)와 같은 컴퓨팅 요소들은 그들 각각의 인터페이스 규격을 가지면서 컴퓨팅 노드에 부착되어 동작하였으나, Gen-Z 인터페이스 규격을 사용하면 하나의 공통 소프트웨어 규격을 가지고 장치를 인식하고 사용하는 것이 가능하다. 즉, 위에서 언급한 개별 컴퓨팅 요소들에 Gen-Z 인터페이스 규격을 적용할 경우, 개별 디바이스에 Gen-Z 명령어를 사용하여 균일한(uniform) 상호 접근이 가능하다.
셋째, 다중 메세징 기능-Gen-Z 인터페이스는 단일 패킷내에서 다수의 메시징 패킷을 포함시킬 수 있는 방법을 제공한다.
넷째, 하드웨어 가속기 접근 방법을 제공한다.
Gen-Z 인터페이스는 하드웨어 가속기에 대한 코히런트(coherent) 및 비코히런트(non-coherent) 통신 방법을 지원한다.
이러한 구조적 특징을 가지는 Gen-Z 인터페이스를 구현하여 컴퓨팅 구성 요소 내부의 자원에 접근하기 위한 동작을 실시할 때, 메모리 시멘틱(memory semantic) 또는 메모리 중심 통신을 지원하는 방법이 개발되었다.
전통적인 CPU의 메모리 접근은 획득/저장(load/store) 명령을 사용하여 이루어지는데, load/store 방식은 지금까지 출현한 컴퓨터들의 가장 빠른 데이터 획득 및 저장 방법을 제공하고 있다. 또한, CPU에는 메모리 자원 이외의 I/O 하드웨어를 위한 전용 명령어가 별도로 지원된다. 그런데, I/O 전용 명령어를 사용하면, 컴퓨팅 플랫폼의 전체적인 대역폭이 하락할 뿐만 아니라 I/O 장치의 특성상 접근 지연 시간(access delay time)이 상이하며, 이에 따라 CPU측에서 동일한 I/O명령이 발생하더라도 대상 I/O 장치의 특성에 따라 다른 지연 시간을 가지게 되며, 그 결과, 대상 I/O 장치의 데이터가 서로 다른 시간에 도달하게 된다. 이러한 I/O 장치의 하드웨어적인 특성으로 인하여 하드웨어를 제어하여야 하는 운영체제 관점에서는 동기화 수단을 사용하여 이들 자원을 사용하는 프로세스를 블록킹(blocking)시키거나 스핀락(spinlock) 등을 사용하는 방법으로 컴퓨팅 시스템의 자원 사용에 효율성을 증대시키는 방법을 취하고 있다.
이러한 문제점에 효과적으로 극복하기 위하여, Gen-Z 인터페이스는 전술한 획득/저장 방식의 명령어와 유사한 명령어를 설계하여 사용하며, Gen-Z 인터페이스를 사용하는 메모리 및 I/O 장치들에 접근시에도 Gen-Z 전용 명령어를 사용하는 방식으로 구현되었다. 이러한 접근 방식은 메모리 공유 방법을 표준화하여 원천적(native) 및 구조적으로 지원하는 방식으로 설계되고 구현되고 있다는 것에 의의가 있을 것이다. 현재 Gen-Z 인터페이스는 버전 1.0a가 완성되어 Gen-Z 컨소시움에 가입된 회사에 한하여 그 규격이 제공되고 있다.
도 1은 본 개시의 실시 예에 따른 인터페이스 구조를 나타낸다.
구체적으로, 본 개시의 실시 예에 따른 인터페이스는 Gen-Z 인터페이스이며, Gen-Z 인터페이스는 기본 명령어 전달 및 반환 구조를 가진다. Gen-Z 인터페이스(1)는 명령어를 발생시키는 요청자(Reqeuster, 11)와 해당 명령어를 포함하는 명령 패킷을 수신하여 수행하는 응답자(Responder, 12)를 포함하는 것을 기반으로, 명령어가 설계된다. 요청자(11)에 의하여 발생한 명령어는 요청(request) 형태로 응답자(12)에게 전달되고, 응답자(12)는 요청 형태로 전달된 명령어를 수행하고, 명령 수행이 완료되면 응답(response) 형태로 요청자(11)에게 명령 달성 여부를 알려준다.
도 2는 본 개시의 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
본 개시의 실시 예에 따른 처리 장치(100)는 Gen-Z 인터페이스를 사용하며, 도 2에 도시된 같이, CPU(110)와 복수의 Gen-Z 메모리(120, 130), 그리고 로컬 메모리(140)를 포함한다. 여기서 Gen-Z 메모리가 2개인 것을 예로 하였으나, 본 개시는 이에 한정되지 않는다.
CPU(110)은 요청자가 되고, 제1 Gen-Z 메모리(120)와 제2 Gen-Z 메모리(130)는 응답자가 된다. CPU(110)은 전통적인 컴퓨팅 구조에서 프로그램을 실행하기 위한 로컬 메모리(140)를 기본 장착하고 있다. 로컬 메모리(140)는 CPU(110)가 부트 로더(boot loader)를 사용하여 부트 프로세스를 시작하는 순간에 초기화되고, CPU(110)가 프로그램을 실행하기 위한 하드디스크의 프로그램을 적재하여 CPU(110)를 프로세스(process) 상태로 만들며, 프로세스를 위한 페이지 테이블을 적재하도록 구성된다. 또한, CPU 내부의 내장 그래픽 프로세서를 사용하는 시스템의 경우, 로컬 메모리(140)는 그래픽 프로세서의 그래픽 메모리 페이지 테이블, 그래픽 메모리 데이터를 저장하도록 구성될 수 있다.
대용량 데이터를 프로그램 자체에서 생성시키면서 구동되는 빅 데이터 프로그램, 머신 러닝 프로그램 같은 응용 프로그램의 사용이 일상화됨에 따라 기존의 로컬 메모리만으로는 메모리 부족 현상이 발생하며, 이에 따라 프로그램의 빠른 실행이 어려운 경우가 발생하고 있다.
그러나 CPU를 장착하는 메인 보드의 설계시 로컬 메모리(140)의 최대 수용 용량이 미리 정해지기 때문에, 로컬 메모리(140)의 수용 가능한 메모리 크기에 한계가 존재한다. 이를 해소하기 위해, Gen-Z 인터페이스를 사용하는 메모리를 시스템 메인 보드에 증설한다. 따라서, 처리 장치(100)는 도 2에서와 같이, 제1 Gen-Z 메모리(120)와 제2 Gen-Z 메모리(130)를 포함한다. 프로그램의 런타임(run time)시 발생하는 대용량 데이터를 제1 Gen-Z 메모리(120)와 제2 Gen-Z 메모리(130)에 획득/저장(load/store)하면서, 프로그램(또는 프로세스)이 성취하고자 하는 목적을 달성할 수 있다.
한편, Gen-Z 인터페이스 규격에 따라, CPU(110)의 개입 없이, 제1 Gen-Z 메모리(120)와 제2 Gen-Z 메모리(130) 사이에서 직접 데이터를 교환하는 것이 가능하다. 이를 P2P(Point to Point) 규격으로 정의하여 명령어를 설계하여 구현 및 사용하고 있다. 물론 CPU(110)와 Gen-Z 메모리(120, 130) 사이의 P2P 통신도 가능함은 당연하다. 이는 CPU(110) 또한 Gen-Z 명령을 발생시킬 수 있는 요청자 역할을 할 수 있기 때문이다.
Gen-Z 인터페이스 규격에 따르면, P2P로 연결된 메모리 디바이스간의 통신은 E2E(End-to-end) 명령어 집합을 사용하여 명령을 송신하고 실행할 수 있다.
도 2에 나타낸 처리 장치(100)의 구조는 제1 Gen-Z 메모리(120)와 제2 Gen-Z 메모리(130)를 데이지 체인(daisy-chain) 형식으로 연결하여 사용할 수 있음을 포괄적으로 나타내기 위한 예일 뿐임을 유의해야 한다. 실제 구현시, 제1 Gen-Z 메모리(120)만으로 원하는 메모리 용량 및 프로그램의 목적을 달성할 수 있다면, 제2 Gen-Z 메모리(130)의 사용은 불필요할 수 있음은 당연하다 할 것이다.
위에 기술된 CPU와 메모리 디바이스가 결합된 응용과는 달리, CPU가 가진 연산 기능과는 별개로 자체적으로 연산 능력을 보유한 디바이스 또한 Gen-Z 인터페이스 규격을 사용하여 연결이 가능하다.
도 3은 본 개시의 다른 실시 예에 따른 인터페이스 규격의 처리 장치의 구조를 나타낸 도이다.
구체적으로, 도 3은 자체적으로 연산 능력을 보유한 디바이스를 Gen-Z 인터페이스를 사용하여 연결한 경우를 나타낸다. 자체적인 연산 능력을 보유한 디바이스란 데이터를 수동적으로 저장하는 메모리 디바이스와 차별화하여 그래픽 데이터를 연산할 수 있는 장치인 GPU(Graphic Processing Unit), CPU에서 필요한 고속 연산을 전용 하드웨어 로직으로 구현한 FPGA 가속기 등을 포함한다.
본 개시의 다른 실시 예에 따른 처리 장치(200)는 Gen-Z 인터페이스를 사용하며, 도 3에 도시된 같이, CPU(210), GPU(220) 및 FPGA 가속기(230)를 포함한다. CPU(210)은 요청자가 되고, GPU(220) 및 FPGA 가속기(230)는 응답자가 된다
CPU(210), GPU(220) 및 FPGA 가속기(230) 등의 컴퓨팅 요소가 도 3과 같은 연결 구조를 가질 경우, Gen-Z 인터페이스 규격에 따르면, P2P-Coherency 명령어를 사용하여 상호 명령어 교환을 성취할 수 있다.
다양한 성격의 워크로드를 처리하여 인터넷 서비스를 진행하기 위해서는 우선 사용자로부터 입력되는 데이터를 받아 서버 소프트웨어가 소정의 서비스를 진행하기 위한 응용 소프트웨어를 구동할 때, Gen-Z 인터페이스 규격을 사용하는 처리 장치를 사용할 경우, 서비스 사용자들에 의한 워크로드의 순간적인 폭주로 인하여 Gen-Z 디바이스의 내부 자원이 소진되어 순간적으로 포화(saturation) 상황이 발생하면 패킷 측면에서는 혼잡(congestion) 상황이 발생할 수 있다. Gen-Z 인터페이스 규격은 혼잡(congestion)제어 방법에 대한 규칙을 매우 제한적으로 언급하고 있을 뿐이다.
본 개시의 실시 예에서는 Gen-Z 인터페이스 규격을 기반으로 보다 효율적으로 혼잡을 제어하는 방법을 제공한다. 이를 위해, 요청자측에서 패킷 내부에 패킷 처리의 우선 순위 정보를 포함시켜 제공한다. 이에 따라, Gen-Z 인터페이스 규격의 디바이스 내부에 혼잡이 발생하여 서비스 제공 불가 상태에 발생할 경우, 디바이스 내부의 Gen-Z 스위치 장치 또는 응답자 장치에서 패킷 내부에 포함된 패킷 처리의 우선 순위 정보를 참조하여 패킷을 처리한다. 이에 따라, 실시간 성능이 중요한 패킷이나 금융 암호(financial encryption) 패킷과 같은 최상위 우선 순위를 가지는 패킷이 먼저 처리되고, 이후 낮은 우선 순위의 패킷을 순차적으로 처리함으로써, 서비스의 품질을 만족시킬 수 있고, 혼잡 상황을 완화 또는 해결시킬 수 있다.
Gen-Z 인터페이스 규격에 따른 패킷 즉, Gen-Z 패킷은 요청(request) 패킷과 응답(response) 패킷으로 서로 메시지를 교환한다. Gen-Z 인터페이스 규격에서, 요청 패킷의 특성을 저지연 도메인(low-latency domain)과 비저지연 도메인(non-low-latency domain)으로 구분한다. 저지연 도메인은 저지연 응답 즉, 가장 빠른 응답을 요구하는 장치 레벨(level)이며, 비저지연 도메인은 일반적인 대기열 지연(queuing delay)을 허용하는 패킷 지연을 허용하는 장치 레벨이다. 그러나 이러한 도메인 구분 방법은 장치 레벨의 혼잡 제어 방식으로, 섬세한 패킷 레벨의 지연 시간 제어 방법으로 사용하기에는 구조적 한계가 존재한다.
본 개시의 실시 예에서는, 저지연 도메인 패킷이 Gen-Z 상위단에서 발생하여 이를 처리 요청한 경우, Gen-Z 디바이스 내부에서 물리적인 대역폭의 포화나 수신측의 큐(queue)의 만재(full)로 인한 혼잡 상황이 발생하면, 이를 효율적으로 처리하고자 한다.
Gen-Z 인터페이스 표준 규격에 따르면, OpClass 패킷의 경우, 요청자로부터 송신된 패킷이 Gen-Z 스위치를 경유하여 응답자에 도달하였을 때, 응답자 측의 대기 큐가 가득 차서 더 이상 요청자의 요청을 수용할 수 없으면, 응답자는 혼잡 상황이 발생하였음을 나타내는 ECN(Explicit Congestion Notification) 필드를 설정하고, ECN 필드를 포함하는 응답(response) 패킷을 요청자에 송신한다. ECN 필드를 수신한 요청자는 데드라인(deadline)값을 설정한다.
도 4는 ECN 필드를 나타낸 예시도이고, 도 5는 데드라인 필드를 나타낸 예시도이다.
Gen-Z 인터페이스 표준 규격에 따르면, 응답자는 첨부한 도 4에 예시된 바와 같은 구조를 가지는 요청 패킷에서, 혼잡 상황이 발생하였음을 나타내는 ECN 필드(이때, ECN 필드의 값이 “1”일 수 있으며, ECN=0은 혼잡 상황이 아님을 나타낼 수 있음)를 중간 부분에 추가하여 요청자에 송신한다. 요청자는 수신된 패킷의 ECN 필드를 확인하고 데드라인 값을 설정하고, 설정된 데드라인 값을 도 5에 예시된 바와 같은 구조의 데드라인 필드(Deadline)에 기록하고, 이를 포함하는 제어 패킷을 응답자에게 송신한다.
또한, 요청자는 PIDT(packet injection delay table) 값에 따라 재전송을 시작하는 것으로 혼잡 상황을 제어할 수 있다. 이때, 요청자는 패킷 주입 속도(packet injection rate)를 조정하기 위하여 PIDT을 참조하는데, PIDT는 CMS(Congestion Management Structure) 표(table)의 내용을 참조하여, 패킷 주입 방법을 결정한다.
패킷 주입 속도를 조정하는 경우는 다음과 같은 혼잡 이벤트 중 하나가 탐색되거나 수신되었을 경우이다.
- 타임아웃 이벤트(timeout event): 응답자측에서 이미 혼잡이 발생하여 동일한 패킷이 2회이상 재전송된 경우
- 명시적 혼잡 알림(explicit congestion notification): 요청자가 ECN=1을 수신한 경우
- 고지연 이벤트(high-latency event): 요청자가 패킷 전송에 필요한 시간을 미리 계산한 값보다 현저히 큰 값을 가지는 패킷 교환 시간이 필요한 상황이 발생하여 패킷 주입 속도를 감소시키는 경우
- 혼잡 상황 없음 알림(no congestion notification): 요청자가 ECN=0를 수신하여 혼잡상황이 아님을 인식하여 패킷 주입 속도를 높일 경우
이와 같이 다양한 형태의 혼잡 이벤트에 대하여, 단순히 데드라인 값을 기반으로 처리하는 방식만으로는 적극적인 혼잡 제어가 이루어질 수 있다.
한편, Gen-Z 인터페이스 규격에 따르면, 다음 표 1, 표 2, 그리고 표 3과 같이, CMS 표, Congestion CAP1, Congestion CAP1 Control의 설정 값에 따라서 혼잡 제어 방식을 선택할 수 있는 규격을 정의하고 있다.
위의 표 1 내지 표 3을 기반으로 하는 컴포넌트(component) 레벨 및 리소스(resource) 레벨의 혼잡 제어 방식은, Gen-Z 시스템을 구성하고 있는 장치별로, 장치가 가지고 있는 자원별 레벨의 혼잡 제어를 뜻하는 것이다.
본 개시의 실시 예에서는, 이러한 컴포넌트 레벨 및 리소스 레벨의 혼잡 제어와는 달리, Gen-Z 패킷의 실제 내부 패킷의 성격에 따라서 우선 순위를 부여하고, 부여된 우선 순위에 따라 패킷 레벨의 혼잡 제어를 수행한다.
이를 위해, 본 개시의 실시 예에서, 표 1의 CMS(Congestion Management Structure) 필드 중에서, Congestion CAP1 필드의 값을 표 2를 기반으로 제조사 정의(Vendor-defined) 혼잡 제어를 지원하는 값 “1”로 설정하고, Congestion CAP1 Control 필드의 값 중에서 비트 위치(0~2)의 값을, 표 3을 기반으로 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 “0x2”로 설정한다.
도 6은 본 개시의 실시 예에 따른 제조사 정의 구조체의 형식을 나타낸 예시도이다.
Congestion CAP1 Control 필드의 값 중에서 비트 위치(0~2)의 값이 “0x2”로 설정됨에 따라, 도 6에 예시된 바와 같이, 제조사 정의된 데이터에 따라 혼잡 제어가 실행된다.
이와 같이, 2개의 필드 값(Congestion CAP1 필드의 값과 Congestion CAP1 Control 필드의 값)이 설정되면, 마지막으로 표 1의 CMS 필드 중에서, Vendor-defined PTR 필드의 값을 제조사 정의 혼잡 제어 방법이 정의된 곳의 옵셋값을 나타내도록 설정한다. 즉, 응답 패킷(예: 명시적 OpClass 패킷) 내부에서 설정하면 된다.
제조사 정의 혼잡 제어 방법이 정의된 곳 즉, 제조사 정의 구조체 필드(vendor-defined structure filed) (도 6 참조)는 다음 표 4와 같다.
한편, 본 개시의 실시 예에서, Gen-Z 인터페이스의 혼잡 제어를 위한, 제조사 정의 구조체 필드는 다음 표 5와 같이 구성될 수 있다.
이러한 표 5에서, 유형(Type) 필드는 제조사 정의 우선 순위 제어(vendor-defined priority control)로 정의되며, 임의의 12비트 값 내에서 정의하여 사용할 수 있는 필드이다. 예를 들어, “0xFF0”로 정의할 수 있다.
버전(Vers) 필드는 4비트 값이며, 표 4를 기반으로 “0x1”로 정의된다.
제조사 정의 데이터(Vendor-Defined Data) 필드는 본 개시의 실시 에에 따라 Gen-Z 인터페이스에서의 혼잡 제어를 위하여 우선 순위 기반 패킷 처리가 이루어지도록, 패킷 우선 순위값을 정의한다. 이 필드는 우선 순위 제어를 위한 제조사 정의 우선 순위 인에이블(vendor-defined priority enable) 비트와 제조사 정의 우선 순위(vendor-defined priority) 필드로 구성될 수 있다. 여기서는 제조사 정의 데이터(Vendor-Defined Data) 필드가 4비트만으로 구성된 것을 예로 들었으나, 본 개시에 한정되지 않는다. 예를 들어, 제조사 정의 데이터 필드를 구성하는 비트 수는 제조사 정의 데이터의 필드 길이 내에서 확장이 가능하다. 아울러, 제조사 정의 데이터 필드에서 제조사 정의 우선 순위(vendor-defined priority) 비트의 값이 높은 값을 가지는 패킷이라면, 해당 패킷을 우선적으로 처리함으로써, 사용자가 경험하는 서비스 품질이 향상될 수 있다.
따라서 위의 값을 가지는 제조사 정의 데이터 필드를 포함하는 패킷을 수신한 경우, 수신측(예를 들어, Gen-Z 스위치 또는 Gen-Z 응답자)은 위의 필드의 값을 파싱(parsing)하여 요청자 측에서 요구한 패킷의 우선 처리 정보를 알 수 있으며, 그 결과 혼잡 상황 후에 우선 처리를 수행해야 하는 패킷 정보를 미리 인지할 수 있다. 따라서 해당 서비스의 품질이 확보될 수 있고 서비스 만족도를 향상시킬 수 있다. 본 개시의 실시 예에서는 어떤 종류의 패킷이 우선 순위가 높아야 하는지에 대해서는 지정하지 않음을 유의한다.
한편, 본 개시의 실시 예에서는 우선 순위에 따라 패킷 레벨의 혼잡 제어를 수행하기 위해, 다르게는, 다음과 같은 방법을 사용할 수 있다.
Gen-Z 인터페이스 규격에 따르면, Gen-Z 패킷은 저지연 패킷 전송이 필요한 경우 PEER-ATTR 표의 테이블 포맷값 중에서 지연 도메인(Latency Domain) 값을 사용한다. 저지연(Low-latency, LL) 도메인 필드값을 “0b”로 설정하여 저지연 패킷 전송을 표시하고, 저지연 패킷 전송이 필요하지 않는 경우에는 비저지연(Non-low-latency, NLL) 도메인 필드값을 “1b”로 설정한다. 그러나 이러한 설정은 요청자와 응답자 장치 레벨의 지연 특성을 설정하는 것이다. 이와는 달리, 본 개시의 다른 실시 예에서는 패킷 수준의 지연 제어를 다룰 수 있는 방법을 제공한다.
Gen-Z 인터페이스 규격에서, 혼잡 상황이 아니라면(예를 들어, ECN=0b), 이는 Gen-Z fabric의 데이터 경로 상의 대역폭이 처리 여유를 가지고 있고, 응답자 측의 큐가 만재(full)이 아닌 상황을 의미한다. 만약 혼잡 상황(예를 들어, ECN=1b)이라면, 이는 데이터 경로 상의 대역폭이 포화(saturation)되었거나, 응답자 측의 큐가 만재인 상황을 의미한다.
도 7은 ECN 필드와 데드라인 필드의 폭을 나타낸 도이다.
Gen-Z 인터페이스 규격에 따르면, 도 7에서와 같이, 데드라인 필드의 폭이 10비트이며, ECN 필드가 1의 값을 가졌을 경우 해당 패킷의 전송이 실패하면, 데드라인 필드의 값이 계속 증가된 값을 가지도록 하는 것이 명시되어 있다. 데드라인 필드의 폭이 10비트이므로, 데드라인 필드의 값은 1023까지의 값이 가능하다. 그러나, 실사용시, 1023번의 패킷 재전송이 이루어질 때까지 반복적인 재전송 대기를 하는 것은 부적절하며, 너무 긴 재전송 대기는 사용자 영역에서 경험 측면에서 볼 때, 서비스의 상당한 지연 효과로 연결됨을 예측할 수 있다.
따라서 본 개시의 실시 예에서는, 데드라인 필드의 값을 단순히 재전송 횟수의 카운터 값으로 쓰는 것이 아니라, 실제적으로 우선 순위 필드 값과 원래의 의미를 가지는 데드라인 필드 값으로 나누어서 사용한다.
이를 위해, 본 개시의 실시 예에서, 우선 순위에 따른 패킷 처리 방식은 다음의 원칙을 따른다.
1) 혼잡 상황이 아닌 경우, 저지연(LL) 패킷과 비저지연(NLL) 패킷은 Gen-Z 인터페이스 규격에 따라 처리된다.
2) 혼잡 상황인 경우, 하기의 패킷 처리 방식을 따른다.
2-1) 저지연(LL) 패킷은 항상 비저지연(NLL) 패킷에 우선하여 처리된다.
2-2) 저지연(LL) 패킷들 사이의 우선 순위는 우선 순위 필드에 의하여 우선 순위가 정해진다.
본 개시의 실시 예에 따른 패킷 처리시, 위의 원칙을 기반으로 하면서, 우선 순위 필드에서 우선 순위 인에이블 비트(priority enable bit)가 사용될 경우와 우선 순위 인에이블 비트가 사용되지 않을 경우, 각각 다음과 같이 우선 순위 기반의 패킷 처리가 이루어지도록 혼잡 제어를 수행한다.
먼저, 우선 순위 필드에서 우선 순위 인에이블 비트가 사용될 경우, ECN 필드, 우선 순위 인에이블 비트 그리고 우선 순위 인코딩 비트를 사용하여 혼잡 제어를 수행한다.
도 8은 본 개시의 실시 예에 따른 데드라인 필드의 구성을 나타낸 도이다.
첨부한 도 8에 도시되어 있듯이, 본 개시의 실시 예에서, 우선 순위 인에이블 비트가 사용될 경우, 기존의 데드라인 필드를 우선 순위 필드와 원래의 의미를 가지는 데드라인 필드로 나누어서 구성하고, 우선 순위 필드의 일부 비트를 우선 순위 인에이블 비트로 사용하고, 나머지 비트를 우선 순위를 나타내는 우선 순위 인코딩 비트로 사용한다.
이러한 구조로 이루어지는 본 개시의 실시 예에 따른 데드라인 필드는 다음 표 6과 같이 사용될 수 있다.
ECN 필드를 통해 혼잡 상황 여부를 표시하고, Gen-Z 인터페이스 규격에 따른 10 비트로 이루어지는 데드라인 필드를, 4 비트의 우선 순위 필드와 6 비트의 데드라인 필드로 나누고, 우선 순위 필드의 소정 비트 예를 들어, 1비트를 우선 순위 인에이블을 나타내는 우선 순위 인에이블 비트로 사용하며, 우선 순위 필드의 나머지 비트 예를 들어, 3비트를 우선 순위 인코딩 비트로 사용한다. 이때, 표 6에서와 같이, 서비스별로 우선 순위 필드와 데드라인 필드의 값이 달라진다.
또한, 우선 순위 필드에서 우선 순위 인에이블 비트가 사용되지 않을 경우, ECN 필드와 우선 순위 인코딩 비트를 사용하여 혼잡 제어를 수행한다.
이 경우, 도 8에 도시된 바와 같은 데드라인 필드 구조에서, 우선 순위 필드의 값이 우선 순위 인코딩 비트로만 사용된다.
이러한 구조로 이루어지는 본 개시의 실시 예에 따른 데드라인 필드는 다음 표 7과 같이 사용될 수 있다.
ECN 필드를 통해 혼잡 상황 여부를 표시하고, Gen-Z 인터페이스 규격에 따른 10 비트로 이루어지는 데드라인 필드를, 3 비트의 우선 순위 필드와 7 비트의 데드라인 필드로 나누고, 우선 순위 필드를 우선 순위 인에이블 비트로 사용한다. 이때, 표 7에서와 같이, 서비스별로 우선 순위 필드와 데드라인 필드의 값이 달라진다.
데드라인 필드의 길이가 충분하지 않을 경우에는 위에 기술된 바와 같이, ECN 필드값과 우선 순위 인코딩 비트의 값만을 사용할 수 있다. 이 경우는 해당 패킷을 수신하는 수신측(Gen-Z 스위치나 응답자)에서 우선 순위 인에이블 비트가 사용되지 않음을 미리 알고 있어야 함을 유의한다.
표 6과 표 7에 기재된 서비스별 우선 순위 설정은 예시일 뿐이며, 필요에 따라서 재정의될 수 있으며, 본 개시는 위에 기술된 것에 한정되지 않는다.
또한, 표 6과 표 7에서 기재된 OpCode 우선 순위 인코딩 번호는 예시이며, 이 항목에 대해 다른 OpCode 우선 순위 인코딩 번호를 할당할 수 있으며, 본 개시는 위에 기술된 것에 한정되지 않는다.
본 개시에서 제시한 Gen-Z 인터페이스 규격 기반 우선 순위 기반 혼잡 제어 방법의 실제적인 구현은 Gen-Z 인터페이스를 구현하는 FPGA 또는 전용 칩셋을 사용하여 HDL(Hardware Description Language)을 사용하여 구현할 수 있다는 사실은 당 분야에 대한 기본적인 지식을 소유한 자라면 당연하다 할 것이다.
이러한 본 개시의 실시 예들에 따르면, Gen-Z 인터페이스 규격을 사용하여 데이터 중심(data-centric) 워크로드에 대한 데이터를 처리하는 경우, Gen-Z fabric내에서 데이터 패킷이 각 컴포넌트로 이동하면서 처리된다. 이때, 혼잡이 발생하지 않는 경우 즉 Gen-Z fabric의 내부 대역폭이나 작업 큐(work queue)에 여유분이 존재하는 경우, Gen-Z 인터페이스 규격에서 정의한 방식대로 패킷을 처리한다. 반면, Gen-Z fabric내에서 데이터 패킷 이동시 혼잡이 발생하는 경우, 패킷 수준의 혼잡 제어를 수행하며, 이를 위해 패킷의 성격에 따라 부여된 우선 순위 기반으로 패킷을 전송하고, 수신측은 패킷에 포함된 우선 순위 정보를 기반으로 수신되는 패킷을 처리한다. 그 결과, 본 개시의 실시 예에 따르면 Gen-Z 인터페이스 규격과 호환되는 패킷 우선 순위 기반 혼잡 제어 방식이 구현된다.
본 개시의 실시 예에 따른 혼잡 제어 방법을 처리 장치에 적용하는 경우, 처리 장치는 다음과 같이 동작할 수 있다.
설명의 편의상, 도 1 내지 도 3에서와 같이, Gen-Z 인터페이스를 사용하는 패킷을 송수신하는 경우, 요청자를 제1 디바이스로 명명하고, 응답자를 제2 디바이스로 명명한다.
도 9는 본 개시의 제1 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
본 개시의 제1 실시 예에서는 혼잡 제어를 위해 제조사 정의 구조체 필드를 사용한다.
첨부한 도 9에서와 같이, 제1 디바이스는 요청 패킷을 제2 디바이스로 송신한다(S100). 제2 디바이스는 요청 패킷 수신시, 혼잡 상황이 발생하면, 혼잡 상황을 나타내는 필드 즉, ECN 필드의 값을 활성화시키고, 활성화된 값의 ECN 필드(예: ECN=1)를 포함하는 응답 패킷을 제1 디바이스로 송신한다. 반면, 혼잡 상황이 발생하지 않은 경우에는 ECN 필드의 값을 활성화시키지 않고(예: ECN=0) 응답 패킷을 제1 디바이스로 송신한다.
제1 디바이스는 제2 디바이스로부터 응답 패킷을 수신하면(S110) 혼잡 상황 발생 여부를 판단한다(S120). 예를 들어, 응답 패킷의 ECN 필드를 확인하여 값이 활성화되어 있으면 혼잡 상황이 발생한 것으로 판단하고, 값이 활성화되어 있지 않으면 혼잡 상황이 발생하지 않은 것으로 판단한다.
혼잡 상황이 발생한 경우, 제1 디바이스는 혼잡 제어를 위해 패킷의 우선 처리 정보를 생성한다. 이를 위해, Gen-Z 인터페이스 규격에 따른 혼잡 제어를 위한 필드를 구성하는 필드들 중에서 소정 필드를 제조사 정의 혼잡 제어를 위한 값들로 설정한다. 구체적으로, Gen-Z 인터페이스 규격에 따른 CMS(Congestion Management Structure) 필드 중에서, Congestion CAP1 필드(설명의 편의상 제1 필드라고 함)의 값을 제조사 정의 혼잡 제어를 지원하는 값 “1”로 설정하고(S130), Congestion CAP1 Control 필드(설명의 편의상 제2 필드라고 함)의 값 중에서 비트 위치(0~2)의 값을 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 “0x2”로 설정한다(S140). 그리고, CMS 필드의 Vendor-defined PTR(설명의 편의상 제3 필드라고 명명함)의 값을 제조사 정의 혼합 제어를 위한 정보가 정의된 곳 즉, 제조사 정의 구조체 필드의 값으로 설정한다(S150).
그리고, 제조사 정의 구조체 필드에 우선 순위 정보를 기록한다(S160). 예를 들어, 위의 기술된 표 5에서와 같이, 제조사 정의 구조체 필드의 제조사 정의 데이터 필드에 우선 순위 기반 패킷 처리를 위하여 패킷 우선 순위 값을 기록한다. 즉, 제조사 정의 데이터 필드의 제조사 정의 우선 순위 인에이블 비트를 활성화시키고(예를 들어, “1”로 설정), 제조사 정의 데이터 필드의 제조사 정의 우선 순위 필드에 우선 순위를 나타내는 값을 기록한다. 여기서, 제조사 정의 우선 순위 필드의 값이 높을수록 해당 패킷이 우선적으로 처리하여야 하는 것을 나타낸다.
이후, 제1 디바이스는 이러한 필드들을 포함하는 패킷을 제2 디바이스로 송신한다(S170). 즉, 위에 기술된 바와 같이 소정 필드가 제조사 정의 혼잡 제어를 위한 값들로 설정된 CMS 필드와 우선 순위 정보가 기록된 제조사 정의 구조체 필드를 포함하는 패킷을 제2 디바이스로 송신한다. 이에 따라 제2 디바이스는 수신된 패킷에 포함된 위의 필드들을 기반으로 해당 패킷의 우선 순위 정보를 확인하고, 우선 순위 정보에 따라 해당 패킷을 처리한다.
한편, 단계(S120)에서, 혼잡 상황이 발생하지 않은 경우, 제1 디바이스는 응답 패킷에 따른 통상의 후속 처리를 수행한다(S180).
도 10은 본 개시의 제2 실시 예에 따른 혼잡 제어 방법의 흐름도이다.
본 개시의 제2 실시 예에서는 혼잡 제어를 위해 데드라인 필드를 사용한다.
첨부한 도 10에서와 같이, 제1 디바이스는 요청 패킷을 제2 디바이스로 송신한다(S300). 제2 디바이스는 요청 패킷 수신시, 혼잡 상황이 발생하면, 혼잡 상황을 나타내는 필드 즉, ECN 필드의 값을 활성화시키고, 활성화된 값의 ECN 필드(예: ECN=1)를 포함하는 응답 패킷을 제1 디바이스로 송신한다. 반면, 혼잡 상황이 발생하지 않은 경우에는 ECN 필드의 값을 활성화시키지 않고(예: ECN=0) 응답 패킷을 제1 디바이스로 송신한다.
제1 디바이스는 제2 디바이스로부터 응답 패킷을 수신하면(S310) 혼잡 상황 발생 여부를 판단한다(S320). 예를 들어, 응답 패킷의 ECN 필드를 확인하여 값이 활성화되어 있으면 혼잡 상황이 발생한 것으로 판단하고, 값이 활성화되어 있지 않으면 혼잡 상황이 발생하지 않은 것으로 판단한다.
혼잡 상황이 발생한 경우, 제1 디바이스는 혼잡 제어를 위해 패킷의 우선 처리 정보를 생성한다. 이를 위해, Gen-Z 인터페이스 규격에 따른 필드 중에서 데드라인 필드를 이용하여 패킷 처리를 위한 우선 순위 정보를 생성한다. 구체적으로, 본 개시의 제2 실시 예에 따르면, Gen-Z 인터페이스 규격에 따른 데드라인 필드가 우선 순위 필드와 데드라인 필드로 나누어져 있다. 설명의 편의를 위해, 기존 Gen-Z 인터페이스 규격에 따른 데드라인 필드를 원본 데드라인 필드라고 명명하고, 원본 데드라인 필드에 포함되는 데드라인 필드를 서브 데드라인 필드라고 명명한다. 원본 데드라인 필드의 우선 순위 필드는 우선 순위 인에이블 비트와 우선 순위 인코딩 비트로 나누어져 있다. 이러한 상태에서, 서비스에 따라 상이한 우선 순위 정보를 우선 순위 필드의 우선 순위 인코딩 비트에 기록하고, 우선 순위 인에이블 비트를 활성화시킨다. 한편, 우선 순위 필드가 우선 순위 인코딩 비트만을 포함할 수 있다. 이 경우에는 서비스에 따라 상이한 우선 순위 정보를 우선 순위 필드의 우선 순위 인코딩 비트에 기록한다(S330). 한편, 원본 데드라인 필드의 서브 데드라인 필드에는 데드라인 값이 기록된다(S340).
이후, 제1 디바이스는 이러한 필드들을 포함하는 패킷을 제2 디바이스로 송신한다(S350). 즉, 위에 기술된 바와 같은 원본 데드라인 필드를 포함하는 패킷을 제2 디바이스로 송신한다. 이에 따라 제2 디바이스는 수신된 패킷에 포함된 원본 데드라인 필드의 우선 순위 필드에 기록된 해당 패킷의 우선 순위 정보를 확인하고, 우선 순위 정보에 따라 해당 패킷을 처리한다.
한편, 단계(S320)에서, 혼잡 상황이 발생하지 않은 경우, 제1 디바이스는 응답 패킷에 따른 통상의 후속 처리를 수행한다(S360).
도 11은 본 발명의 실시 예에 따른 혼잡 제어 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
첨부한 도 11에 도시되어 있듯이, 본 발명의 일 실시 예에 따른 혼잡 제어 방법은 컴퓨팅 장치(1000)를 이용하여 구현될 수 있다.
컴퓨팅 장치(1000)는 프로세서(1100), 메모리(1200), 입력 인터페이스 장치(1300), 출력 인터페이스 장치(1400), 저장 장치(1500) 및 네트워크 인터페이스 장치(1600) 중 적어도 하나를 포함할 수 있다. 각각의 구성 요소들은 버스(bus)(1700)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성요소들은 공통 버스(1700)가 아니라, 프로세서(1100)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.
프로세서(1100)는 AP(Application Processor), CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등과 같은 다양한 종류들로 구현될 수 있으며, 메모리(1200) 또는 저장 장치(1500)에 저장된 명령을 실행하는 임의의 반도체 장치일 수 있다. 프로세서(1100)는 메모리(1200) 및 저장 장치(1500) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 이러한 프로세서(1100)는 위의 도 1 내지 도 10을 토대로 설명한 기능 및 방법들을 구현하도록 구성될 수 있다. 또한, 프로세서(1100)는 버스(1700)를 통하여 다른 프로세서와 통신할 수 있으며, 또는 네트워크 인터페이스 장치(1600)를 통하여 네트워크 상의 다른 디바이스와 통신할 수 있다.
메모리(1200) 및 저장 장치(1500)는 다양한 형태의 휘발성 또는 비 휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read-only memory)(1210) 및 RAM(random access memory)(1220)를 포함할 수 있다. 본 발명의 실시 예에서 메모리(1200)는 프로세서(1100)의 내부 또는 외부에 위치할 수 있고, 메모리(1200)는 이미 알려진 다양한 수단을 통해 프로세서(1100)와 연결될 수 있다.
입력 인터페이스 장치(1300)는 입력되는 데이터를 프로세서(1100)로 제공하도록 구성되며, 출력 인터페이스 장치(1400)는 프로세서(1100)로부터의 데이터를 출력하도록 구성된다.
네트워크 인터페이스 장치(1600)는 유선 네트워크 또는 무선 네트워크를 통해 다른 디바이스와 신호를 송신 또는 수신할 수 있다.
이러한 구조로 이루어지는 컴퓨팅 장치(1000)는 디바이스로 명명되어, 본 발명의 일 실시 예에 따른 혼잡 제어 방법을 구현할 수 있다.
또한, 본 발명의 일 실시 예에 따른 혼잡 제어 방법 중 적어도 일부는 컴퓨팅 장치(1000)에서 실행되는 프로그램 또는 소프트웨어로 구현될 수 있고, 프로그램 또는 소프트웨어는 컴퓨터로 판독 가능한 매체에 저장될 수 있다.
또한, 본 발명의 일 실시 예에 따른 혼잡 제어 방법 중 적어도 일부는 컴퓨팅 장치(1000)와 전기적으로 접속될 수 있는 하드웨어로 구현될 수도 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (20)
- 제1 디바이스와 제2 디바이스가 Gen-Z 인터페이스 기반으로 패킷을 송수신하는 환경에서의 혼잡 제어 방법으로서,
상기 제1 디바이스가, 상기 제2 디바이스로 송신한 제1 패킷에 대한 응답인 제2 패킷을 상기 제2 디바이스로부터 수신하는 단계;
상기 제1 디바이스가, 상기 제2 패킷이 혼잡 상황 발생을 나타내는 경우, 상기 Gen-Z 인터페이스에 따른 필드들 중에서 혼잡 제어를 위해 설정된 필드에 패킷의 우선 순위 정보를 기록하는 단계; 및
상기 제1 디바이스가, 상기 우선 순위 정보를 포함하는 제3 패킷을 상기 제2 디바이스로 송신하는 단계를 포함하고,
상기 우선 순위 정보를 기록하는 단계는 상기 Gen-Z 인터페이스 규격에 따른 데드라인(deadline) 필드에 우선 순위 정보를 기록하며,
상기 데드라인 필드는 우선 순위 정보가 기록되는 제1 필드와 데드라인 값이 기록되는 제2 필드를 포함하는, 혼잡 제어 방법. - 제1항에 있어서,
상기 우선 순위 정보를 기록하는 단계는 상기 Gen-Z 인터페이스 규격에 따른 제조사 정의 구조체 필드에 우선 순위 정보를 기록하는, 혼잡 제어 방법. - 제2항에 있어서,
상기 우선 순위 정보를 기록하는 단계는
상기 Gen-Z 인터페이스 규격에 따른 CMS(Congestion Management Structure) 필드에 제조사 정의된 값에 따라 혼잡 제어가 이루어짐을 기록하는 단계; 및
상기 제조사 정의 구조체 필드에 우선 순위 정보를 기록하는 단계
를 포함하는, 혼잡 제어 방법. - 제3항에 있어서,
상기 혼잡 제어가 이루어짐을 기록하는 단계는,
상기 CMS 필드 중에서, Congestion CAP1 필드의 값을 제조사 정의 혼잡 제어를 지원하는 값으로 설정하는 단계;
상기 CMS 필드 중에서, Congestion CAP1 Control 필드의 설정 비트의 값을 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 하는 값으로 설정하는 단계; 및
상기 CMS 필드 중에서, Vendor-defined PTR의 값을 제조사 정의 혼합 제어를 위한 정보가 정의된 상기 제조사 정의 구조체 필드의 값으로 설정하는 단계
를 포함하는, 혼잡 제어 방법. - 제2항에 있어서,
상기 제조사 정의 구조체 필드는 제조사 정의 데이터 필드를 포함하고, 상기 제조사 정의 데이터 필드는 제조사 정의 우선 순위 인에이블 비트와 제조사 정의 우선 순위 필드를 포함하는, 혼잡 제어 방법. - 제5항에 있어서,
상기 제조사 정의 우선 순위 필드는 서비스별로 우선 순위를 나타내는 값이 기록되어 있으며,
상기 제조사 정의 구조체 필드는 유형 정보를 나타내는 유형 필드와 크기를 나타내는 크기 필드를 추가적으로 포함하는, 혼잡 제어 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 제1 필드는 우선 순위 인에이블 비트와 우선 순위를 나타내는 우선 순위 인코딩 비트를 포함하는, 혼잡 제어 방법. - 제1항에 있어서,
상기 우선 순위 정보를 기록하는 단계는
상기 데드라인 필드의 제1 필드에 우선 순위 정보를 기록하는 단계; 및
상기 데드라인 필드의 제2 필드에 데드라인 값을 기록하는 단계
를 포함하는, 혼잡 제어 방법. - 제10항에 있어서,
상기 제1 필드에 우선 순위 정보를 기록하는 단계는 상기 제1 필드가 우선 순위 인에이블 비트를 포함하는 경우, 상기 우선 순위 인에이블 비트를 활성화시키고, 나머지 비트를 우선 순위 인코딩 비트로 사용하여 우선 순위를 기록하는, 혼잡 제어 방법. - Gen-Z 인터페이스 기반으로 패킷을 송수신하는 환경에서의 디바이스로서,
메모리; 및
상기 메모리에 저장된 명령을 실행하도록 구성된 프로세서
를 포함하고,
상기 프로세서는 상기 명령을 실행하여
다른 디바이스로 송신한 제1 패킷에 대한 응답인 제2 패킷을 상기 다른 디바이스로부터 수신하는 동작;
상기 제2 패킷이 혼잡 상황 발생을 나타내는 경우, 상기 Gen-Z 인터페이스에 따른 필드들 중에서 혼잡 제어를 위해 설정된 필드에 패킷의 우선 순위 정보를 기록하는 동작; 및
상기 우선 순위 정보를 포함하는 제3 패킷을 상기 다른 디바이스로 송신하는 동작을 수행하도록 구성되고,
상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 Gen-Z 인터페이스 규격에 따른 데드라인(deadline) 필드에 우선 순위 정보를 기록하도록 구성되며,
상기 데드라인 필드는 우선 순위 정보가 기록되는 제1 필드와 데드라인 값이 기록되는 제2 필드를 포함하는, 디바이스. - 제12항에 있어서,
상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시, 상기 Gen-Z 인터페이스 규격에 따른 제조사 정의 구조체 필드에 우선 순위 정보를 기록하도록 구성되는, 디바이스. - 제13항에 있어서,
상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시,
상기 Gen-Z 인터페이스 규격에 따른 CMS(Congestion Management Structure) 필드에 제조사 정의된 값에 따라 혼잡 제어가 이루어짐을 기록하는 동작; 및
상기 제조사 정의 구조체 필드에 우선 순위 정보를 기록하는 동작
을 수행하도록 구성되는, 디바이스. - 제14항에 있어서,
상기 프로세서는 상기 혼잡 제어가 이루어짐을 기록하는 동작 수행시,
상기 CMS 필드 중에서, Congestion CAP1 필드의 값을 제조사 정의 혼잡 제어를 지원하는 값으로 설정하는 동작;
상기 CMS 필드 중에서, Congestion CAP1 Control 필드의 설정 비트의 값을 제조사 정의된 값에 따라 혼잡 제어가 실행되도록 하는 값으로 설정하는 동작; 및
상기 CMS 필드 중에서, Vendor-defined PTR의 값을 제조사 정의 혼합 제어를 위한 정보가 정의된 상기 제조사 정의 구조체 필드의 값으로 설정하는 동작
을 수행하도록 구성되는, 디바이스. - 제13항에 있어서,
상기 제조사 정의 구조체 필드는 제조사 정의 데이터 필드를 포함하고, 상기 제조사 정의 데이터 필드는 제조사 정의 우선 순위 인에이블 비트와 우선 순위를 나타내는 값이 기록되는 제조사 정의 우선 순위 필드를 포함하는, 디바이스. - 삭제
- 삭제
- 제12항에 있어서,
상기 프로세서는 상기 우선 순위 정보를 기록하는 동작 수행시,
상기 데드라인 필드의 제1 필드에 우선 순위 정보를 기록하는 동작; 및
상기 데드라인 필드의 제2 필드에 데드라인 값을 기록하는 동작
을 수행하도록 구성되는, 디바이스. - 제19항에 있어서,
상기 프로세서는, 상기 제1 필드에 우선 순위 정보를 기록하는 동작 수행시, 상기 제1 필드가 우선 순위 인에이블 비트를 포함하는 경우, 상기 우선 순위 인에이블 비트를 활성화시키고, 나머지 비트를 우선 순위 인코딩 비트로 사용하여 우선 순위를 기록하도록 구성되는, 디바이스.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200165883A KR102600204B1 (ko) | 2020-12-01 | 2020-12-01 | Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 |
US17/520,439 US11784934B2 (en) | 2020-12-01 | 2021-11-05 | Method and apparatus for controlling congestion based on Gen-Z interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200165883A KR102600204B1 (ko) | 2020-12-01 | 2020-12-01 | Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220076914A KR20220076914A (ko) | 2022-06-08 |
KR102600204B1 true KR102600204B1 (ko) | 2023-11-10 |
Family
ID=81751614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200165883A KR102600204B1 (ko) | 2020-12-01 | 2020-12-01 | Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11784934B2 (ko) |
KR (1) | KR102600204B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130215733A1 (en) * | 2012-02-22 | 2013-08-22 | Nan Jiang | Speculative reservation for routing networks |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051195B2 (en) | 2001-10-26 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Method of optimization of CPU and chipset performance by support of optional reads by CPU and chipset |
KR101197294B1 (ko) * | 2010-11-19 | 2012-11-05 | 숭실대학교산학협력단 | QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 |
US9224452B2 (en) * | 2013-01-17 | 2015-12-29 | Qualcomm Incorporated | Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems |
KR102174975B1 (ko) * | 2015-11-17 | 2020-11-05 | 에스케이텔레콤 주식회사 | 소프트웨어 라우터의 패킷 처리 제어 장치 및 방법 |
CN109412964B (zh) | 2017-08-18 | 2022-04-29 | 华为技术有限公司 | 报文控制方法及网络装置 |
US10789090B2 (en) | 2017-11-09 | 2020-09-29 | Electronics And Telecommunications Research Institute | Method and apparatus for managing disaggregated memory |
US20200151118A1 (en) | 2018-11-12 | 2020-05-14 | Electronics And Telecommunications Research Institute | Method and apparatus for offloading file i/o based on remote direct memory access using unikernel |
US11329890B2 (en) * | 2020-05-20 | 2022-05-10 | Hewlett Packard Enterprise Development Lp | Network-aware workload management using artificial intelligence and exploitation of asymmetric link for allocating network resources |
-
2020
- 2020-12-01 KR KR1020200165883A patent/KR102600204B1/ko active IP Right Grant
-
2021
- 2021-11-05 US US17/520,439 patent/US11784934B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130215733A1 (en) * | 2012-02-22 | 2013-08-22 | Nan Jiang | Speculative reservation for routing networks |
Non-Patent Citations (1)
Title |
---|
:‘Gen-Z core specification version 1.0’, Gen-Z consortium, 2018.12.31.* |
Also Published As
Publication number | Publication date |
---|---|
KR20220076914A (ko) | 2022-06-08 |
US20220174015A1 (en) | 2022-06-02 |
US11784934B2 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10218646B2 (en) | Systems and methods for storing message data | |
US10897428B2 (en) | Method, server system and computer program product for managing resources | |
WO2015078219A1 (zh) | 一种信息缓存方法、装置和通信设备 | |
US20150032932A1 (en) | Storage Expansion Apparatus and Server | |
US10037225B2 (en) | Method and system for scheduling computing | |
US20210281618A1 (en) | System, apparatus, and method for streaming input/output data | |
US8850090B2 (en) | USB redirection for read transactions | |
CN103827828A (zh) | 用于在流量指挥站环境中提供负载平衡与数据压缩的灵活性的系统及方法 | |
US9992263B2 (en) | Predictive prioritized server push of resources | |
US20160110123A1 (en) | Data object observation among domain-restricted containers | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
US11190620B2 (en) | Methods and electronic devices for data transmission and reception | |
EP3369238B1 (en) | Method, apparatus, computer-readable medium and computer program product for cloud file processing | |
CN116049085A (zh) | 一种数据处理系统及方法 | |
CA2896154C (en) | Accessing payload portions of client requests | |
KR102600204B1 (ko) | Gen-Z 인터페이스 기반의 혼잡 제어 방법 및 장치 | |
CN117312229A (zh) | 一种数据传输装置、数据处理设备、系统、方法及介质 | |
AU2017382907B2 (en) | Technologies for scaling user interface backend clusters for database-bound applications | |
US10382575B2 (en) | Program execution system, method of executing program, and computer-readable storage medium | |
US10951537B1 (en) | Adjustable receive queue for processing packets in a network device | |
WO2023065853A1 (zh) | 数据传输方法、装置、设备、存储介质及程序 | |
US11755375B2 (en) | Aggregating host machines into a single cloud node for workloads requiring excessive resources | |
US12061521B1 (en) | Non-blocking hardware function request retries to address response latency variabilities | |
Williams et al. | Twisted and HTTP/2 | |
CN118012796B (zh) | 中断资源管理方法、计算机设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |