KR101226177B1 - 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템 - Google Patents

멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템 Download PDF

Info

Publication number
KR101226177B1
KR101226177B1 KR1020080019639A KR20080019639A KR101226177B1 KR 101226177 B1 KR101226177 B1 KR 101226177B1 KR 1020080019639 A KR1020080019639 A KR 1020080019639A KR 20080019639 A KR20080019639 A KR 20080019639A KR 101226177 B1 KR101226177 B1 KR 101226177B1
Authority
KR
South Korea
Prior art keywords
data
virtual connection
processor
queue
priority
Prior art date
Application number
KR1020080019639A
Other languages
English (en)
Other versions
KR20080112093A (ko
Inventor
빅터 케이. 리앙
샹펭 리
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20080112093A publication Critical patent/KR20080112093A/ko
Application granted granted Critical
Publication of KR101226177B1 publication Critical patent/KR101226177B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/58Changing or combining different scheduling modes, e.g. multimode scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 멀티 프로세서 환경에서 적응적이고 가중치가 적용되며 계층적인 스케줄링 기법을 이용하여 데이터를 전송하는 방법에 관한 것으로, 제1 프로세스 및 제2 프로세스 사이에서 제1 데이터 용량 및 정의된 지연 임계값(latency threshold)을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성되는 제1 가상 연결(virtual connection)을 생성하는 단계와 제1 프로세스 및 제2 프로세스 사이에서 제2 데이터 용량 및 정의된 지연 임계값을 갖고, 제2 우선 순위의 데이터를 전송하도록 구성되는 제2 가상 연결을 생성하는 단계와 제1 가상 연결에서 데이터가 전송된 전송 시간이 제1 가상 연결의 지연 임계값을 초과한 경우에, 제3 데이터 용량을 갖고 제3 우선 순위의 데이터를 전송하도록 구성되는 제3 가상 연결을 생성하는 단계를 포함함으로써 데이터 전송률을 향상시킨다.

Description

멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법 및 시스템{System and method for efficient data transmission in a multi-processor environment}
본 발명은 데이터 전송을 향상시키는 방법에 관한 것으로, 보다 구체적으로는 적응적이고 가중치가 적용되며 계층적인(hierarchical) 스케줄링 기법을 이용하여 데이터 전송률을 향상시키는 방법 및 시스템에 관한 것이다.
많은 컴퓨터 시스템은 멀티 데이터 프로세서 또는 정보를 공유하기 위한 프로세스들을 포함한다. 예를 들어, 시스템은 중앙 프로세스 유닛을 포함하고, 중앙 프로세스 유닛은 시스템에서 특정 작업(task)을 수행하는데 사용되는 2차(secondary) 프로세서와 정보를 공유한다. 이들 간의 전송되는 데이터는 전형적으로 데이터 큐(queue) 안에서 보내진다. 일반적으로, 데이터 큐에서 가용한 대역폭(bandwidth) 및 프로세서 시간은 한정되고, 이는 곧 대용량의 데이터가 프로세서 사이에 전송될 때, 데이터 전송이 늦어진다는 것을 의미한다. 왜냐하면, 전송되는 데이터의 양이 가용한 대역폭을 초과하기 때문이다. 이를 데이터 지연(data latency)라고 부른다.
많은 경우에 있어서, 프로세서 사이에 전송되는 몇몇 데이터는 상대적으로 매우 중요하고 긴급한 것일 수 있다. 그 결과, 덜 중요한 데이터의 전송에서 지연이 증가하더라도, 중요한 데이터인 경우에는 지연을 줄이는 것이 바람직하다. 긴급하고 높은 우선순위(priority)를 갖는 데이터의 전송에 있어서 즉각적인 전송을 보장하는 다양한 기법이 제안되어왔다. 이들 기법들은 가중 순환 실행 스케줄링 알고리즘(weighted round robin scheduling algorithms)을 이용하여 데이터 큐에서 현재 트래픽 조건(traffic conditions)을 바탕으로 스케줄링 가중치를 조절한다. 그러나, 이들 기법은 일반적으로 트래픽의 레벨을 바탕으로 큐 사이즈의 비례 조절(proportional adjustment)을 제공하는 것이 불가능하고, 중요한 서비스 큐에 대하여 대역폭을 재할당하는 것이 불가능하다는 단점을 포함하고 있다. 따라서, 이러한 문제점을 개선하는 스케줄링 방법 및 데이터 큐의 해결 방법을 제공하는 것이 요구된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 고안된 것으로, 본 발명이 이루고자 하는 기술적 과제는 적응적이고 가중치가 적용되며 계층적인 스케줄링 기법을 이용하여 데이터 전송률을 향상시키는 방법 및 시스템을 제공하는 것이다.
상기 기술적 과제는 본 발명에 따라, 제1 프로세스 및 제2 프로세스 사이의 데이터 패스(data path)상에서 인터 프로세스 통신(inter-processor communication)을 제공하는 방법에 있어서, 상기 제1 프로세스 및 제2 프로세스 사이에서 제1 데이터 용량 및 정의된 지연 임계값(latency threshold)을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성되는 제1 가상 연결(virtual connection)을 생성하는 단계와; 상기 제1 프로세스 및 제2 프로세스 사이에서 제2 데이터 용량 및 정의된 지연 임계값을 갖고, 제2 우선 순위의 데이터를 전송하도록 구성되는 제2 가상 연결을 생성하는 단계와; 상기 제1 가상 연결에서 데이터가 전송된 전송 시간이 상기 제1 가상 연결의 지연 임계값을 초과한 경우에, 제3 데이터 용량을 갖고 제3 우선 순위의 데이터를 전송하도록 구성되는 제3 가상 연결을 생성하는 단계를 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법에 의해 해결된다.
한편 본 발명의 다른 분야에 따르면 상기 기술적 과제는 멀티 프로세스 환경에서 데이터를 공유하는 시스템에 있어서, 제1 프로세서와; 제2 프로세서와; 상기 제1 프로세서 및 제2 프로세서 사이의 데이터 패스(data path)를 포함하며, 상기 데이터 패스는 고정된 대역폭을 가지며, 적어도 하나 이상의 가상 연결 큐(virtual connection queue)를 포함하고, 상기 가상 연결 큐는 전기적인 상기 데이터 패스를 따라 전송된 데이터의 지연 측정치에 기초하여 적응적으로 분할(split)되거나 합병(merge)되도록 구성되는 것을 특징으로 하는 데이터 공유 시스템에 의해서도 해결된다.
한편 본 발명의 또 다른 분야에 따르면 상기 기술적 과제는 데이터를 전송하도록 구성된 데이터 패스(data path)를 갖는 프로세서의 데이터 전송 방법에 있어서, 상기 데이터 패스 내에 제1 데이터 용량을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성된 제1 가상 연결을 생성하는 단계와; 상기 데이터 패스 내에 제2 데이터 용량을 갖고, 제2 우선 순위의 데이터를 전송하도록 구성된 제2 가상 연결을 생성하는 단계를 포함하며, 상기 제1 가상 연결 및 제2 가상 연결 각각에 대하여 지연 임계값이 정의되는 것을 특징으로 하는 데이터 전송 방법에 의해서도 해결된다.
한편 본 발명의 또 다른 분야에 따르면 상기 기술적 과제는 멀티 프로세서 환경에서 데이터를 공유하기 위한 디바이스에 있어서, 프로세서와; 상기 프로세서로부터 확장된 데이터 패스(data path)를 포함하며, 상기 데이터 패스는 고정된 대역폭을 가지며, 적어도 하나 이상의 가상 연결 큐(virtual connection queue)를 포함하고, 상기 가상 연결 큐는 전기적인 상기 데이터 패스를 따라 전송된 데이터의 지연 측정치에 기초하여 적응적으로 분할(split)되거나 합병(merge)되도록 구성되 는 것을 특징으로 하는 데이터 공유 디바이스에 의해서도 해결된다.
본 발명에 의한 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법 및 시스템에 따르면, 적응적이고 가중치가 적용되며 계층적인 스케줄링 기법을 이용하여 데이터 전송률이 향상되는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 상세히 설명한다.
본 명세서에서 개시되는 다양한 실시예는 컴퓨터 시스템상에서 멀티 마이크로프로세서 사이의 효율적인 데이터 전송을 위한 방법 및 시스템을 제공한다. 컴퓨터 시스템은 데이터를 처리하기 위한 어떠한 타입의 마이크로프로세서가 될 수도 있다. 컴퓨터 시스템은 개인용 컴퓨터, 노트북, 케이블 셋탑 박스, 디지털 비디오 레코더, 모바일 전화, 텔레비전, 프린팅 디바이스, 멀티미디어 플레이어, 또는 다른 멀티 프로세서 디바이스를 포함할 수 있다.
도 1은 다양한 실시예에 적합한 디바이스(100)를 예시하는 도면이다. 디바이스(100)는 컴퓨터 시스템일 수 있으며, 제1 프로세서(102)를 포함한다. 제1 프로세서(102)는 컴퓨터 명령(instruction) 및 다른 데이터를 처리함으로써 디바이스 의 동작을 컨트롤하는 것을 도와주는데 사용되는 중앙 프로세스 유닛과 같은 시스템 프로세서일 수 있다. 제1 프로세서(102)는 메모리(108)를 포함할 수 있다. 몇몇 실시예에서, 메모리(108)는 보드(board) 메모리 캐쉬 또는 프로세서에 의해 처리되는 데이터를 저장할 수 있는 다른 타입의 메모리일 수 있다.
디바이스(100)는 나아가 제2 프로세서(104)를 포함한다. 제2 프로세서(104)는 다양한 형태를 가질 수 있다. 일 실시예에서, 제2 프로세서(104)는 중앙 프로세스 유닛보다 더욱 제한된 업무를 수행하는 특성화된 프로세서일 수 있다. 제2 프로세서(104)는 멀티미디어 데이터를 처리하는 것과 같은 주변 기능에 연관될 수 있다. 제2 프로세서(104)는 스마트카드의 형태를 가지 수 있고, 셋탑 박스 내의 다른 부 프로세서일 수도 있다. 다른 실시예에서, 제2 프로세서(104)는 프로세서가 데이터보다 빨리 액세스할 수 있도록 데이터를 저장 또는 캐쉬하는 온-보드(onboard) 메모리(110)를 더 포함할 수 있다.
제1 프로세서(102) 및 제2 프로세서(104) 사이에는 데이터 패스(path, 105)가 있다. 데이터 패스(105)는 제1 프로세서(102)로부터 제2 프로세서(104)로 데이터가 전송될 수 있는 물리적인 연결을 의미한다. 데이터 패스(105)는 고정된 대역폭을 가진 전용선의 형태를 띨 수 있다. 대안적으로, 데이터 패스(105)는 양방향 전송이 허락된 보다 넓은 데이터 채널의 할당 부분일 수도 있다. 데이터 패스(105)는 또한 여러 다른 형태를 지닐 수 있다.
다양한 실시예에서, 데이터 패스(105)는 동적으로 하나 또는 그 이상의 데이터 큐로 나뉠 수 있다. 예를 들어, 순환 실행 스케줄러와 같은 스케줄러에 의해 다른 스케줄링 가중치를 갖는 데이터 큐로 나뉠 수 있다. 스케줄링 가중치는 프로세서 시간의 양에 관련된 것으로, 데이터의 우선순위 및 큐의 스케줄링 가중치를 바탕으로 효율적인 데이터 전송에 사용되는 큐에 할당된 프로세서 시간과 관련된다. 다른 실시예에서, 제2 프로세서(104)는 상대적으로 제한된 프로세싱 능력 및 작은 인터페이스 대역폭을 갖는다. 그 결과, 제1 프로세서(102)로부터 제2 프로세서(104)로 전송되는 데이터는 제2 프로세서(104)의 인터페이스 대역폭을 초과할 수 있다. 이러한 경우에, 입력되는 데이터의 부분은 큐에 저장되고 따라서 제2 프로세서(104)가 가용 능력을 가질 때까지 지연된다.
도 2는 상기 도 1에서 데이터 패스(path, 105)의 구체적인 구성을 나타내는 도면이다. 데이터 패스(105)는 하나 이상의 데이터 큐(106)로 나뉠 수 있다. 데이터 큐(106)는 제1 프로세서(102) 및 제2 프로세서(104) 사이에서 전송되는 데이터의 가상 연결(virtual connection)로 구성된다. 가상 연결은 두개의 엔터티(entity) 사이에서 어떠한 데이터 연결을 가리킨다. 데이터 큐(106)는 데이터 패스(105)를 통해 전송되는 데이터를 관리하는 데이터 구조(structure)일 수 있다.
데이터 큐(106)는 전형적으로 스케줄링 모듈(111)과 통신한다. 스케줄링 모듈(111)은 각각의 데이터 큐(106) 중에서 제2 프로세서(104)의 리소스를 할당하는데 이용된다. 스케줄링 모듈(111)은 도 1의 메모리(108, 110)에 저장된 소프트웨어의 형태를 띨 수 있다. 대안적으로, 스케줄링 모듈(111)은 ASIC(application specific integrated circuit)으로 구현된 하드웨어일 수 있다. 또한 스케줄링 모듈(111)은 순환 실행 스케줄러일 수도 있다. 대안적으로, 당업자에게 알려진 다른 스케줄러들(fair-queuing, proportionally fair, maximum throughput sscheduler)일 수도 있다.
다른 실시예에서, 데이터 큐(106)는 링크된 리스트(linked list) 데이터 구조로 구현될 수 있다. 대안적으로, 데이터 큐(106)는 배열(array)과 같은 다른 데이터 구조의 형태를 가질 수도 있다. 데이터 큐(106)는 필요시에 처리량(throughput)을 증가시키기 위해 몇 개의 데이터 큐로 분할될 수 있다. 반대로, 멀티 데이터 큐(106)은 제한된 데이터 전송인 경우에 하나의 데이터 큐로 병합될 수도 있다. 분할 또는 병합을 결정하기 위하여, 지연 임계값(latency threshold)가 정의될 수 있다. 지연 임계값은 데이터 큐(106)의 전송 지연의 레벨을 가리킨다. 적어도 하나 이상의 지연 임계값이 정의될 수 있으며, 지연 임계값은 허용된 지연값 또는 데이터의 우선 순위, 큐의 사이즈 등의 요인에 의해 다양하게 정의될 수 있다.
도 3은 데이터 큐(106) 및 결합된(associated) 임계값을 나타내는 도면이다. 디바이스(100)의 여러 데이터 큐(106)는 여러 임계값(112)을 가진다. 편의상 다른 데이터 큐(106) 예를 들어 데이터 큐 106(n)으로 표시한다. 여기서 n은 정수이다. 도 3에 나타난 바와 같이, 데이터 큐 106(0)은 큐 사이즈 113(0)을 포함한다. 큐 사이즈 113(0)는 데이터 패스(105)에서 데이터 큐 106(0)에 가용한 대역폭의 부분의 측정치를 나타낸다. 다른 실시예에서, 데이터 큐 각각의 큐 사이즈는 모두 같거나 또는 다양하게 나타날 수 있다. 예를 들어, 제1 데이터 큐 106(0)은 578 바이트의 큐 사이즈 113(0)을 가질 수 있다. 제2 데이터 큐 106(1)은 다른 큐 사이 즈인 113(1)을 갖고, 이는 예를 들어 978 바이트일 수 있다. 상기 언급한 바와 같이, 데이터 큐(106)는 적어도 하나 이상의 임계값(112)을 갖는다. 임계값(112)은 데이터 큐를 분할하거나 병합하는 것을 결정하는데 이용된다. 도 3에서 나타난 예와 같이, 데이터 큐 106(0)은 3개의 정의된 임계값을 갖는다. 이는 112(0)(0), 112(0)(1) 및 112(0)(2)이다. 각각의 임계값은 개념적으로 큐로 전송된 데이터에 발생한 지연량을 표시한다. 지연은 시간적인 측정치(latency)로서 나타날 수도 있고, 데이터의 양적인 측정치로 나타날 수도 있다. 어느 경우이든지, 임계값(112)은 데이터 큐(106)에서 트래픽 잼(traffic jam) 또는 레벨 또는 전송 지연이 임계값을 지나 연장될 때 초과된다.
몇몇 실시예에서, 초기 임계값(예를 들어, 임계값 112(0)(0))은 데이터 큐(예를 들어, 106(0))와 연관되어 추가적인 임계값을 계산하는데 이용된다. 추가적인 임계값, 예를 들어 112(0)(1) 및 112(0)(2)는 초기 임계값 112(0)(0)과의 사이에서 선형(linear) 또는 비선형(non-linear) 관계를 가질 수 있다. 임계값 사이의 관계에서, 알파(α)값이 정의될 수 있다. 다른 실시예에서, 지수 공식(exponential formula)이 사용될 수도 있다. 이런 경우에, 알파값은 1/2로 설정될 수 있다. 따라서, 초기 임계값 112(0)(0)이 512 bytes라면, 다음 임계값 112(0)(1)은 512 bytes + 1/2 * 512 bytes로 정의될 수 있다. 추가적인 임계값은 다음 [수학식 1]에 따라 정의될 수 있다.
Figure 112008015580843-pat00001
도 4는 데이터 큐를 분할(split)하는 실시예를 나타내는 도면이다. 즉, 도 4(a) 및 4(b)는 제1 데이터 큐로 전송되는 데이터가 데이터 큐에 정의된 지연 임계값을 초과하는 상황을 예시한다. 도 4(a)에 나타난 바와 같이, 데이터 큐 106(n-1)는 3개의 정의된 임계값 112(n-1)(0), 112(n-1)(1) 및 112(n-1)(2)를 포함한다. 실시예에서, 빗금 친 영역으로 표시된 데이터는 데이터 큐 106(n-1)에 정의된 제1 임계값 112(n-1)(0)을 초과한다. 데이터가 데이터 큐 106(n-1)내의 임계값 112(n-1)(0)을 초과하기 때문에, 데이터 큐 106(n-1)는 도 4(b)에 나타난 바와 같이 2개의 데이터 큐 106(n-1) 및 106(n)으로 분할된다.
몇몇 실시예에서, 2개의 데이터 큐 106(n-1) 및 106(n)은 분할로 인해 클론(clone)이 된다. 구체적으로, 데이터 큐 106(n-1) 및 106(n) 각각에서 정의된 임계값은 동일한 레벨로 설정된다. 따라서, 도 4(b)에 나타난 2개의 큐 106(n-1) 및 106(n)은 같은 레벨(112)을 갖는다. 초기 데이터 큐 106(n-1)가 초과된 지연 임계값으로 인해 분할될 때, 데이터는 도 4(b)에 나타난 바와 같이 존재하는 데이터 큐 사이에 똑같이 분배된다. 데이터가 2개 이상의 데이터 큐에 똑같이 분배되면, 정의된 임계값(112)을 초과하지 않게 되고 더 이상의 동작은 필요치 않게 된다. 이렇게 데이터 큐 상이에서 데이터가 고르게(evenly) 분배됨에도 불구하고, 당업자라면 2개 이상의 데이터 큐에 고르지 않게(unevenly) 분배될 수도 있다는 것을 이해할 것이다. 또한, 데이터 큐(106)는 초기 임계값(112)을 쉽게 초과하는 데 이터 버스트(burst)에 적응하도록 구성될 수 있다. 예를 들어, 실시예에서 데이터 버스트는 초기 임계값 112(n)(0) 뿐만 아니라, 다음 임계값 112(n)(1)까지 초과할 수 있다. 이렇게 2개의 임계값을 모두 초과한 경우에, 데이터 큐는 2번 분할되도록 설정되고, 결국 트래픽에 적응하기 위하여 4개의 데이터 큐(106)가 발생한다. 마찬가지로, 3번째의 임계값까지 초과한 경우에는 트래픽을 처리하기 위해 8개의 데이터 큐(106)로 분할된다.
도 5는 데이터 큐를 병합(merge)하는 실시예를 나타내는 도면이다. 본 발명은 또한 데이터 큐를 병합(merge)하는 방법도 제공하는데, 데이터 큐의 이용 레벨이 임계값 또는 특정값 이내인 경우에 이러한 병합이 일어난다. 도 5(a)에는 2개의 데이터 큐 106(n-1) 및 106(n)이 나타나있고, 이들의 임계값은 각각 112(n-1)(0), 112(n-1)(1), 112(n-1)(2)와 112(n)(0), 112(n)(1), 112(n)(2)이다. 도 5(a)에서 볼 수 있듯이, 데이터 큐 106(n-1) 및 106(n)에서 큐에 저장된 데이터의 양은 모두 임계값보다 작게 나타난다. 그 결과, 데이터 큐 106(n-1) 및 106(n)는 하나의 데이터 큐 106(n-1)로 병합된다. 따라서, 도 5(b)와 같이 데이터 큐 106(n)의 모든 데이터가 데이터 큐 106(n-1)로 병합되지만, 병합 후에도 데이터는 여전히 초기 임계값 112(n-1)(0)보다 작다. 몇몇 실시예에서, 초기 임계값(112)의 1/2보다 작은 데이터를 갖는 어떠한 2개의 데이터 큐(106)도 하나의 데이터 큐로 병합될 수 있다.
다른 실시예에서, 상기의 데이터 큐(106)는 제1 프로세서(102) 및 제2 프로세서(104) 사이에 더욱 효율적인 데이터 전송이 가능한 보다 큰 큐 기법(queuing scheme)에서 어떤 부분으로 구현될 수 있다. 큐 기법은 계층적인 가중치가 적용된 트리 구조일 수 있다. 이러한 실시예에서, 데이터 큐(106)의 트리 구조는 제1 프로세서(102) 및 제2 프로세서(104) 사이의 실제 트래픽 조건을 바탕으로 트리 노드(node)와 브렌치(branch)와 더불어 동적으로 합쳐지고 확장될 수 있다.
상기 언급된 바와 같이, 각각의 데이터 큐(106)는 결합된 스케줄링 가중치(109)를 갖는다. 스케줄링 가중치(109)는 스케줄링 모듈(111)에 의해 관리된다. 데이터 큐(106)의 스케줄링 가중치(109)는 상기 데이터 큐(106)에 할당된 제2 프로세서(104)의 인터페이스 대역폭의 퍼센트로 나타난다. 따라서, 제1 프로세서(102) 및 제2 프로세서(104) 사이의 데이터 패스(105) 내의 데이터 큐(106)의 스케줄링 가중치(109)의 합은 아래 [수학식 2]과 같다.
가중치(데이터 큐 0) + 가중치(데이터 큐 1) + ... + 가중치(데이터 큐 n) = 1 (여기서, n은 데이터 패스(105) 내의 데이터 큐(106)의 번호를 가리킨다)
큐 기법 및 합병과 분할을 조절하기 위하여, 데이터 큐의 지연 측정치가 요구된다. 이러한 측정치는 다양한 방법을 이용하여 연산 가능하다. 일 실시예에서, 데이터 큐(106)의 지연은 큐 내의 패킷들의 길이의 합을 이용하여 판단될 수 있다. 다시 말해서, 지연은 큐의 길이에 의해 결정된다. 이러한 연산은 큐에 새로운 패킷이 들어올 때마다 일어날 수 있다. 대안적으로, 지수 이동 평균(EMA: Exponential Moving Average)는 데이터 큐의 길이 및 이로 인한 지연을 판단하기 위해 사용될 수 있다. 데이터 큐(106)에 대한 EMA는 다음 [수학식 3]과 같이 연산된다.
Figure 112008015580843-pat00002
EMA는 때때로 지수 가중 이동 평균(EWMA: Exponential Weighted Moving Average)로 불린다. 이는 상기 [수학식 3]에서 나타난 바와 같이 지수적으로 감소하는 가중치 인수(factor)에 적용된다. 이전 관측(older observation)을 무시하고, 최근의 관측(recent observation)에 보다 중요성을 부과함으로써 EMA는 더욱 정확한 지연의 예측값을 제공할 수 있다. 상기 [수학식 3]에서, 각 엔트리 q(t)는 특정한 시간 t에서 관측된 데이터 큐의 길이를 나타낸다. bar q(t)는 특정한 시간 t에서 큐 길의 EMA를 나타낸다. 가중치 감소율은 상수 평활 계수(constant smoothing factor) β로 나타나고 0과 1의 사이 값이다. 보다 큰 β는 데이터 큐 길이의 측정치를 즉각적인 데이터 입력에 보다 신속하게 적응시킨다.
도 6은 데이터 큐의 분할 및 병합을 관리하는 트리 구조를 예시하는 도면이다. 도 6(a) 내지 6(c)는 데이터 큐(106)의 트리 기반 구조를 예시하고, 데이터 큐(106)과 결합된 임계값(112)이 초과되었을 때 트리 노드로써 추가적인 큐(106)가 어떻게 생성되는지를 나타낸다. 도 6(a)를 참조하면, 초기 트리는 4개의 데이터 큐 106(0) 내지 106(3)을 가지고 있다. 각각의 데이터 큐는 스케줄링 가중치 109(0) 내지 109(3)과 결합된다. 스케줄링 가중치 109(0) 내지 109(3)는 모두 합하여 1이 된다.
몇몇 실시예에서, 초기 데이터 큐(106)는 서로 다른 데이터 타입 또는 서로 다른 우선 순위를 갖는 데이터를 전송하도록 설정될 수 있다. 예를 들어, 도 6(a)에 나타난 바와 같이, 데이터 큐 106(0)는 가장 높은 우선 순위의 데이터를 제1 프로세서(102)와 제2 프로세서(104) 사이에서 전달할 수 있다. 반면에 나머지 데이터 큐 106(1) 내지 106(3)은 보다 덜 긴급한 데이터를 전달하는데 이용될 수 있다. 제1 데이터 큐 106(0)을 통해 전송된 긴급한 데이터는 제1 프로세서(102)로부터 제2 프로세서(104)에 전송된 비디오를 해독(descramble)하는데 이용되는 키 데이터(key data)의 형태일 수 있다. 나머지 데이터 큐를 통해 전송된 보다 덜 긴급한 데이터는 펌웨어 다운로드 또는 정리작업(housekeeping) 데이터를 포함할 수 있다. 긴급한 데이터가 충분한 서비스 질(QoS: Quality Of Service)을 갖는 것을 보장하기 위해, 데이터 큐 106(0)의 스케줄링 가중치 109(0)는 나머지 스케줄링 가중치 109(1) 내지 109(3)보다 비율적으로 높은 값을 가질 수 있다.
도 6(b)는 데이터 큐(106)가 데이터가 정의된 임계값을 초과함으로써, 어떻게 분할되는지를 예시한다. 도 6(b)에 나타난 바와 같이, 큐 106(0)에 저장된 데이터가 정의된 임계값 112(0)을 초과하고 있다. 따라서, 데이터 큐 106(0)은 새로운 데이터 큐로 분할된다. 다른 데이터 큐 106(1) 내지 106(3)은 각각의 임계값이 초과되지 않았으므로 분할되지 않고 현 상태를 유지한다. 몇몇 실시예에서, 데이터 큐 106(0)의 분할로 인하여 생성된 새로운 데이터 큐 106(0')는 그 부모 데이터 큐인 106(0)과 동일할 수 있다. 따라서, 새로운 데이터 큐는 자신이 유도된 부모 데이터 큐와 같은 임계값(112)을 갖고, 같은 스케줄링 가중치(109)을 갖는다. 새로운 데이터 큐의 생성은 트리 구조에서 추가적인 스케줄링 가중치(109)을 부가하므로, 스케줄링 가중치 109(0) 내지 109(4)는 그들의 합이 1이 되도록 다시 편성(rebalanced)(예를 들어, 정규화)된다.
도 6(c)는 데이터의 양이 정의된 레벨(즉, 초기 임계값의 1/2)보다 작은 경우에, 2개의 데이터 큐가 어떻게 병합되는지를 예시한다. 도 6(b)의 데이터 큐 106(0) 및 106(0')에 저장된 데이터가 각각의 임계값 112(0) 및 112(0')의 1/2보다 작은 경우이다. 그 결과, 데이터 큐 106(0) 및 106(0')는 하나의 데이터 큐인 106(0'')으로 병합된다. 데이터 큐가 병합될 때, 부모 데이터 큐의 임계값들의 평균을 바탕으로 새로운 데이터 큐 106(0'')의 임계값이 정해진다. 일 실시예에서, 새로운 임계값(112)은 다음 [수학식 4]와 같이 연산된다.
Figure 112008015580843-pat00003
(여기서, Tj는 데이터 큐의 j번째 임계값을 뜻한다)
상기 예에서 , Tj는 데이터 큐 106(0)의 임계값인 112(0)(j)이다. M은 병합된 노드의 개수이다. 상기 예에서, M은 2가 되고, i는 데이터 큐의 서브 식별자k다. 상기 예에서, i는 0 및 0'로써 각각 106(0) 및 106(0')를 가리킨다. j는 데 이터 큐에 대한 임계값의 식별자(레벨)이다. 이와 더불어, 병합된 데이터 큐에 대한 스케줄링 가중치 109(0'')는 스케줄링 가중치 109(0) 및 109(0')의 평균으로서 결정된다. 이런 경우에, 스케줄링 가중치 109(0) 내지 109(3)의 합은 1보다 작아지므로 다시 편성(예를 들어, 정규화)을 하여 합이 1이 되게 한다.
도 7은 제1 및 제2 프로세서 사이의 인터-프로세서(inter-processor) 통신 방법을 나타내는 플로우 차트이다. 도 7은 하나의 실시예를 설명하기 위한 플로우 차트이다. 먼저, 제1 가상 연결이 제1 프로세서와 제2 프로세서 사이에 생성된다(단계 700). 제1 가상 연결은 큐 사이즈(113)에 대한 지정된 데이터 용량(assigned data capacity)을 갖는다. 다음으로, 제1 프로세서와 제2 프로세서 사이에 제2 가상 연결이 생성되고(단계 702), 또한 큐 사이즈(113)와 같은 데이터 용량이 지정된다. 가상 연결은 데이터 큐(106)가 될 수 있다.
다음으로, 제1 및 제2 가상 연결은 데이터 우선 순위를 지정받는다(단계 704). 가상 연결은 제1 프로세서로부터 전송되는 데이터 타입을 바탕으로 데이터를 수신한다. 중요하고 긴급한 데이터는 제1 가상 연결을 통해 전송되고, 반면에 덜 중요한 데이터는 제2 가상 연결을 통해 전송된다. 다음으로 지연 임계값(112)이 제1 및 제2 가상 연결에 정의된다(단계 706). 다음으로, 데이터는 제1 및 제2 가상 연결을 통해 전송된다(단계 708). 데이터가 전송되면, 지연은 각 가상 연결에서 결정되어 진다(단계 710). 다음으로, 판단 단계로 넘어가서 가상 연결에서 지연이 임계값(112)을 초과하였는지를 판단한다(단계 712). 그렇지 않다면, 프로세스는 단계 710으로 되돌아가고, 지연 임계값을 초과한 경우에는 프로세스는 단계 714로 진행한다. 즉, 초과된 지연 임계값을 갖는 가상 연결은 제3 가상 연결을 생성함으로써 분할된다.
한편, 상술한 본 발명의 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
또한, 상술한바와 같이 본 발명에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 다양한 실시예에 적합한 디바이스를 예시하는 도면이다.
도 2는 상기 도 1에서 데이터 패스(data path)의 구성을 나타내는 도면이다.
도 3은 데이터 큐 및 결합된(associated) 임계값을 나타내는 도면이다.
도 4는 데이터 큐를 분할(split)하는 실시예를 나타내는 도면이다.
도 5는 데이터 큐를 병합(merge)하는 실시예를 나타내는 도면이다.
도 6은 데이터 큐의 분할 및 병합을 관리하는 트리 구조를 예시하는 도면이다.
도 7은 제1 및 제2 프로세서 사이의 인터-프로세서(inter-processor) 통신 방법을 나타내는 플로우 차트이다.
상기 몇 개의 도면에 있어서 대응하는 도면 번호는 대응하는 부분을 가리킨다. 도면이 본 발명의 실시예들을 나타내고 있지만, 도면이 축척에 따라 도시된 것은 아니며 본 발명을 보다 잘 나타내고 설명하기 위해 어떤 특징부는 과장되어 있을 수 있다.

Claims (28)

  1. 제1 프로세스 및 제2 프로세스 사이의 데이터 패스(data path)상에서 인터 프로세스 통신(inter-processor communication)을 제공하는 방법에 있어서,
    상기 제1 프로세스 및 제2 프로세스 사이에서 제1 데이터 용량 및 정의된 지연 임계값(latency threshold)을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성되는 제1 가상 연결(virtual connection)을 생성하는 단계와;
    상기 제1 프로세스 및 제2 프로세스 사이에서 제2 데이터 용량 및 정의된 지연 임계값을 갖고, 제2 우선 순위의 데이터를 전송하도록 구성되는 제2 가상 연결을 생성하는 단계와;
    상기 제1 가상 연결에서 데이터가 전송된 전송 시간이 상기 제1 가상 연결의 지연 임계값을 초과한 경우에, 제3 데이터 용량을 갖고 제3 우선 순위의 데이터를 전송하도록 구성되는 제3 가상 연결을 생성하는 단계를 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  2. 제1항에 있어서,
    상기 제1 우선 순위의 데이터를 상기 제1 가상 연결 및 제3 가상 연결 사이에 분배하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  3. 제1항에 있어서,
    상기 제1 가상 연결을 통하여, 상기 제1 프로세서로부터 상기 제2 프로세서로 상기 제1 우선 순위의 데이터를 전송하는 단계와;
    상기 전송된 제1 우선 순위의 데이터가 상기 제1 가상 연결의 지연 임계값을 초과하는지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  4. 제1항에 있어서,
    상기 제1 내지 제3 가상 연결에 대한 데이터 용량을 정규화(nomalizing)하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  5. 제1항에 있어서,
    상기 제3 가상 연결의 데이터 용량은 상기 제1 가상 연결의 데이터 용량과 같은 것을 특징으로 하는 인터 프로세서 통신 방법.
  6. 제5항에 있어서,
    상기 지연 임계값을 정규화하는 단계를 더 포함하며,
    상기 정규화하는 단계는 상기 제1 내지 제3 가상 연결의 데이터 용량을 비율적으로 할당하는 단계를 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  7. 제6항에 있어서,
    상기 할당하는 단계는 제3 가상 연결의 데이터 용량에 기초하여, 상기 제1 및 제2 가상 연결 중 적어도 하나 이상의 데이터 용량을 감소하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  8. 제1항에 있어서,
    상기 제1 가상 연결에 대해 제2 지연 임계값이 정의되고, 상기 제2 지연 임계값은 상기 제1 가상 연결에 대한 제1 지연 임계값보다 큰 것을 특징으로 하며,
    상기 방법은 제4 데이터 용량을 갖고 제1 우선 순위의 데이터를 전송하도록 구성되는 제4 가상 연결을 적어도 하나 이상 생성하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  9. 제8항에 있어서,
    상기 전송된 제1 우선 순위의 데이터가 상기 제1 가상 연결의 상기 제2 지연 임계값을 초과하는지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 인터 프로세서 통신 방법.
  10. 제1항에 있어서,
    상기 제1 프로세서는 주(primary) 프로세서로서 제1 프로세싱 용량을 가지며, 상기 제2 프로세서는 부(secondary) 프로세서로서 제2 프로세싱 용량을 가지는 것을 특징으로 하는 인터 프로세서 통신 방법.
  11. 제10항에 있어서,
    상기 제2 프로세서는 상기 제1 프로세서보다 적은 프로세싱 능력을 갖는 것을 특징으로 하는 인터 프로세서 통신 방법.
  12. 제1항에 있어서,
    상기 제1 프로세서는 셋탑 박스의 중앙 프로세싱 유닛(central processing unit)인 것을 특징으로 하는 인터 프로세서 통신 방법.
  13. 제12항에 있어서,
    상기 제2 프로세서는 상기 셋탑 박스에 연결된 스마트 카드(smart card)인 것을 특징으로 하는 인터 프로세서 통신 방법.
  14. 멀티 프로세스 환경에서 데이터를 공유하는 시스템에 있어서,
    제1 프로세서와;
    제2 프로세서와;
    상기 제1 프로세서 및 제2 프로세서 사이의 데이터 패스(data path)를 포함하며,
    상기 데이터 패스는 고정된 대역폭을 가지며, 적어도 하나 이상의 가상 연결 큐(virtual connection queue)를 포함하고,
    상기 가상 연결 큐는 전기적인 상기 데이터 패스를 따라 전송된 데이터의 지연 측정치에 기초하여 적응적으로 분할(split)되거나 합병(merge)되도록 구성되며, 각각의 상기 가상 연결 큐에는 스케줄링 가중치(scheduling weight)가 지정된 것을 특징으로 하는 데이터 공유 시스템.
  15. 삭제
  16. 제14항에 있어서,
    적어도 하나 이상의 상기 가상 연결 큐는 적어도 하나 이상의 지연 임계값(threshold of latency)을 포함하는 것을 특징으로 하는 데이터 공유 시스템.
  17. 제16항에 있어서,
    적어도 하나 이상의 상기 가상 연결 큐는 상기 지연 임계값이 초과되는 경우에 적어도 하나 이상의 추가적인 가상 연결 큐로 분할되도록 구성되는 것을 특징으로 하는 데이터 공유 시스템.
  18. 제17항에 있어서,
    적어도 하나 이상의 상기 추가적인 가상 연결 큐는 적어도 하나 이상의 상기 가상 연결 큐와 클론(clone)이며,
    각각의 상기 추가적인 가상 연결 큐는 적어도 하나 이상의 상기 가상 연결 큐의 스케줄링 가중치와 동일한 스케줄링 가중치를 갖는 것을 특징으로 하는 데이터 공유 시스템.
  19. 제18항에 있어서,
    적어도 하나 이상의 상기 추가적인 가상 연결 큐 각각의 스케줄링 가중치 및 적어도 하나 이상의 상기 가상 연결 큐의 스케줄링 가중치는 비례하게 재편성(rebalanced proportionately)되는 것을 특징으로 하는 데이터 공유 시스템.
  20. 제16항에 있어서,
    적어도 하나 이상의 상기 가상 연결 큐는 상기 지연 임계값의 소정의 레벨보다 지연 측정치가 작은 경우에 병합되도록 구성되는 것을 특징으로 하는 데이터 공유 시스템.
  21. 제20항에 있어서,
    상기 소정의 레벨은 1/2인 것을 특징으로 하는 데이터 공유 시스템.
  22. 데이터를 전송하도록 구성된 데이터 패스(data path)를 갖는 프로세서의 데이터 전송 방법에 있어서,
    상기 데이터 패스 내에 제1 데이터 용량을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성된 제1 가상 연결을 생성하는 단계와;
    상기 데이터 패스 내에 제2 데이터 용량을 갖고, 제2 우선 순위의 데이터를 전송하도록 구성된 제2 가상 연결을 생성하는 단계를 포함하며,
    상기 제1 가상 연결 및 제2 가상 연결 각각에 대하여 지연 임계값이 정의되는 것을 특징으로 하는 데이터 전송 방법.
  23. 제22항에 있어서,
    상기 제1 가상 연결에서 데이터가 전송된 전송 시간이 상기 제1 가상 연결의 지연 임계값을 초과한 경우에 상기 데이터 패스 내에 제3 데이터 용량을 갖고, 제1 우선 순위의 데이터를 전송하도록 구성된 제3 가상 연결을 생성하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  24. 제22항에 있어서,
    상기 제1 가상 연결에 대해 제2 지연 임계값이 정의되고, 상기 제2 지연 임계값은 상기 제1 가상 연결에 대한 제1 지연 임계값보다 큰 것을 특징으로 하며,
    상기 방법은 제4 데이터 용량을 갖고 제1 우선 순위의 데이터를 전송하도록 구성되는 제4 가상 연결을 적어도 하나 이상 생성하는 단계를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  25. 멀티 프로세서 환경에서 데이터를 공유하기 위한 디바이스에 있어서,
    프로세서와;
    상기 프로세서로부터 확장된 데이터 패스(data path)를 포함하며,
    상기 데이터 패스는 고정된 대역폭을 가지며, 적어도 하나 이상의 가상 연결 큐(virtual connection queue)를 포함하고, 상기 가상 연결 큐는 전기적인 상기 데이터 패스를 따라 전송된 데이터의 지연 측정치에 기초하여 적응적으로 분할(split)되거나 합병(merge)되도록 구성되며, 각각의 상기 가상 연결 큐에는 스케줄링 가중치(scheduling weight)가 지정된 것을 특징으로 하는 데이터 공유 디바이스.
  26. 삭제
  27. 제25항에 있어서,
    적어도 하나 이상의 상기 가상 연결 큐는 적어도 하나 이상의 지연 임계값(threshold of latency)을 포함하는 것을 특징으로 하는 데이터 공유 디바이스.
  28. 제27항에 있어서,
    적어도 하나 이상의 상기 가상 연결 큐는 상기 지연 임계값이 초과되는 경우에 적어도 하나 이상의 추가적인 가상 연결 큐로 분할되도록 구성되는 것을 특징으로 하는 데이터 공유 디바이스.
KR1020080019639A 2007-06-19 2008-03-03 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템 KR101226177B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/765,372 2007-06-19
US11/765,372 US8140827B2 (en) 2007-06-19 2007-06-19 System and method for efficient data transmission in a multi-processor environment

Publications (2)

Publication Number Publication Date
KR20080112093A KR20080112093A (ko) 2008-12-24
KR101226177B1 true KR101226177B1 (ko) 2013-01-24

Family

ID=40137743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080019639A KR101226177B1 (ko) 2007-06-19 2008-03-03 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템

Country Status (2)

Country Link
US (1) US8140827B2 (ko)
KR (1) KR101226177B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719401B1 (en) * 2010-07-12 2014-05-06 Vmware, Inc. Decentralized input/output resource management
US8417812B1 (en) * 2010-07-12 2013-04-09 Vmware, Inc. Methods and systems for detecting anomalies during IO accesses
WO2014006451A1 (en) * 2012-07-03 2014-01-09 Freescale Semiconductor, Inc. Data path configuration component, signal processing device and method therefor
US9225999B2 (en) * 2013-02-11 2015-12-29 Broadcom Corporation Virtualized security processor
US10069741B2 (en) * 2013-03-27 2018-09-04 Jacoti Bvba Method and device for latency adjustment
WO2016014043A1 (en) * 2014-07-22 2016-01-28 Hewlett-Packard Development Company, Lp Node-based computing devices with virtual circuits
WO2021016410A1 (en) * 2019-07-25 2021-01-28 Maxlinear, Inc. Multiple ports with different baud rate over a single serdes
US11436507B2 (en) * 2019-11-21 2022-09-06 International Business Machines Corporation Normalizing weights of weighted tree leaf nodes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030064329A (ko) * 2002-01-25 2003-07-31 (주)싸이버뱅크 하나의 물리채널을 다수 개의 가상채널로 확장한 다중접속통신장치
US20050089053A1 (en) 2003-10-23 2005-04-28 Telefonaktiebolaget L M Ericsson (Publ) Virtual queuing support system and method

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206903A (en) * 1990-12-26 1993-04-27 At&T Bell Laboratories Automatic call distribution based on matching required skills with agents skills
US5313454A (en) * 1992-04-01 1994-05-17 Stratacom, Inc. Congestion control for cell networks
US5768258A (en) * 1993-10-23 1998-06-16 International Business Machines Corporation Selective congestion control mechanism for information networks
EP0705006B1 (en) * 1994-09-28 1999-09-01 Siemens Aktiengesellschaft ATM communication system for statistical multiplexing of cells
EP0748086A1 (en) * 1995-06-09 1996-12-11 Siemens Aktiengesellschaft Method for scheduling message cells leaving an ATM node
AU2663597A (en) * 1996-04-12 1997-11-07 Multigen, Inc. Methods and apparatus for rendering three-dimensional images
DE19705789A1 (de) * 1997-02-14 1998-09-03 Siemens Ag Verfahren und Schaltungsanordnung zum Übertragen von Nachrichtenzellen im Zuge von virtuellen Verbindungen unterschiedlicher Prioritäten
US6208997B1 (en) * 1997-10-17 2001-03-27 The Regents Of The University Of California Rapid production of optimal-quality reduced-resolution representations of very large databases
US6246691B1 (en) * 1998-08-14 2001-06-12 Siemens Aktiengesellschaft Method and circuit configuration for the transmission of message units in message streams of different priority
US6459681B1 (en) * 1998-11-13 2002-10-01 Sprint Communications Company L.P. Method and system for connection admission control
US6917590B1 (en) * 1998-11-13 2005-07-12 Sprint Communications Company L.P. Method and system for connection admission control
US6401147B1 (en) * 1999-05-24 2002-06-04 Advanced Micro Devices, Inc. Split-queue architecture with a first queue area and a second queue area and queue overflow area having a trickle mode and an overflow mode based on prescribed threshold values
US7392314B2 (en) * 2003-08-15 2008-06-24 International Business Machines Corporation System and method for load—balancing in a resource infrastructure running application programs
US20070121499A1 (en) * 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
US7493428B2 (en) * 2006-07-25 2009-02-17 International Business Machines Corporation Method and system for dynamic queue splitting for maximizing throughput of queue based operations while maintaining per-destination order of operations
US7496707B2 (en) * 2006-08-22 2009-02-24 International Business Machines Corporation Dynamically scalable queues for performance driven PCI express memory traffic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030064329A (ko) * 2002-01-25 2003-07-31 (주)싸이버뱅크 하나의 물리채널을 다수 개의 가상채널로 확장한 다중접속통신장치
US20050089053A1 (en) 2003-10-23 2005-04-28 Telefonaktiebolaget L M Ericsson (Publ) Virtual queuing support system and method

Also Published As

Publication number Publication date
US8140827B2 (en) 2012-03-20
KR20080112093A (ko) 2008-12-24
US20080320278A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
KR101226177B1 (ko) 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템
KR101436339B1 (ko) 클라우드 컴퓨팅 환경에서의 태스크 할당
KR101957006B1 (ko) 네트워크 액세스가능 블록 저장을 위한 조정된 승인 제어
US8155134B2 (en) System-on-chip communication manager
US8424007B1 (en) Prioritizing tasks from virtual machines
US8149846B2 (en) Data processing system and method
US20100125847A1 (en) Job managing device, job managing method and job managing program
US8898674B2 (en) Memory databus utilization management system and computer program product
CN101662414B (zh) 一种数据访问的处理方法、系统和装置
US9602364B2 (en) Dynamic and adaptive quota shares
US20160156715A1 (en) Optimal allocation of dynamically instantiated services among computation resources
US9507633B2 (en) Scheduling method and system
KR20180018302A (ko) 데이터 프로세싱 엔진 및 그것의 리소스 관리 방법
KR20130033020A (ko) 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
CN118509399A (zh) 一种报文处理方法、装置、电子设备及存储介质
US10044632B2 (en) Systems and methods for adaptive credit-based flow
US10169260B2 (en) Multiprocessor cache buffer management
KR101595967B1 (ko) 데드라인 부여된 작업의 분산 처리 성능 향상을 위한 맵리듀스 스케쥴링 시스템 및 방법
US9128771B1 (en) System, method, and computer program product to distribute workload
US7920474B2 (en) System and method for context-based hierarchical adaptive round robin scheduling
US20170063976A1 (en) Dynamic record-level sharing (rls) provisioning inside a data-sharing subsystem
CN112486871A (zh) 一种用于片上总线的路由方法以及系统
KR20150137796A (ko) 모바일 컴퓨팅 환경에서의 자원할당 및 데이터 분배를 최적화하는 방법
CN114760327B (zh) 云盘资源配置的调整方法及装置
WO2024028926A1 (ja) アクセラレータオフロード装置、アクセラレータオフロード方法、および、プログラム

Legal Events

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

Payment date: 20151229

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee