KR101266324B1 - 다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들 - Google Patents

다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들 Download PDF

Info

Publication number
KR101266324B1
KR101266324B1 KR1020117002045A KR20117002045A KR101266324B1 KR 101266324 B1 KR101266324 B1 KR 101266324B1 KR 1020117002045 A KR1020117002045 A KR 1020117002045A KR 20117002045 A KR20117002045 A KR 20117002045A KR 101266324 B1 KR101266324 B1 KR 101266324B1
Authority
KR
South Korea
Prior art keywords
processor
packet bundle
data packets
data
packet
Prior art date
Application number
KR1020117002045A
Other languages
English (en)
Other versions
KR20110034652A (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 KR20110034652A publication Critical patent/KR20110034652A/ko
Application granted granted Critical
Publication of KR101266324B1 publication Critical patent/KR101266324B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Abstract

공유 메모리를 갖는 제 1 및 제 2 프로세서들 사이에서 데이터를 효율적으로 전달하기 위한 방법 및 장치가 제공된다. 복수의 데이터 패킷들은 제 1 프로세서에서 패킷 번들로 결합(aggregate)된다. 그리고나서 상기 패킷 번들은 상기 공유 메모리를 이용하여 제 1 프로세서로부터 제 2 프로세서로 전달되고, 상기 패킷 번들의 전달은 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행된다. 그리고나서 상기 패킷 번들은 상기 제 2 프로세서에서 개별적인 데이터 패킷들로 번들링 해제되고, 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소된다.

Description

다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들{METHODS AND APPARATUSES TO REDUCE CONTEXT SWITCHING DURING DATA TRANSMISSION AND RECEPTION IN A MULTI-PROCESSOR DEVICE}
우선권의 청구
35 U.S.C.§119에 제공되는 바와 같이, 본 출원은 2008년 6월 26일에 출원된, "METHODS AND APPARATUSES TO REDUCE CONTEXT SWITCHING DURING DATA NETWORKING IN DUAL PROCESSOR ACCESS TERMINALS"로 명명된, 미국 임시출원 제 61/076,088호의 우선권을 청구하며, 상기 출원은 본 출원의 양수인에게 양도되고 상기 출원의 내용은 본 명세서에 참조로서 명백하게 통합된다.
하나의 특징(feature)은 통신 시스템들에 관한 것이고, 더욱 특정하게는 두 개 이상의 프로세서들 사이에서 데이터를 전송하는 동안에 프로세서들의 인터럽션들 및 컨텍스트 스위칭을 감소시키기 위한 방법에 관한 것이다.
소비자들이 모든 더 많은 모바일 기술들과 편의성을 찾게 됨으로써, 더 많은 컨텐트와 서비스들이 모바일 및/또는 컴팩트 디바이스들에 제공(deliver)된다. 동시에, 이를 테면 모바일 폰들과 같은 액세스 단말들은 사용자들이 어디를 가든 편리하게 휴대할 수 있도록 하는 크기로 컴팩트하거나 또는 훨씬 더 작아진다. 액세스 단말들의 작은 크기로 인하여, 액세스 단말들은 프로세싱 성능들 및/또는 전력 원(예컨대, 배터리들)을 종종 제한하였다. 트레이드 오프(trade-off)는 프로세싱 성능과 배터리 수명 사이에서 종종 실시되었다. 더욱 파워풀한 프로세서들은 더 많은 전력을 소비하고, 이에 의하여 충전하는 사이에 배터리의 수명은 짧아진다. 하지만, 덜(less) 파워풀한 프로세서들은 더욱 새로운 애플리케이션들에 대하여 요구되는 충분한 프로세싱 전력을 제공할 수 없다. 예를 들어, 국제적 원격통신 연합(ITU)에 기초하여 제 3 세대(3G)와 제 4 세대(4G) 통신 표준들의 도래에 있어서, 고속 데이터 애플리케이션들 (예컨대, 인터넷 액세스, 보이스 오버 IP, 비디오 전달, 등)이 무선 네트워크들에 대하여 구현된다. 3G 및 4G에 의하여 제공되는 더 높은 데이터 레이트들은 이런 더 높은 데이터 레이트들을 지원하기 위하여 제한된 클록 레이트를 갖는 프로세서 코어들 상에서의 증가한 압박을 배속(place)한다. 무선 통신 칩들 및 칩 세트들을 집적한 주문자상표부착(OEM) 생산자들 및 핸드세트 제조자들에 대하여, 이런 인자들은 이를 테면, 윈도우 모바일, 리눅스 또는 심비안과 같은 기성품(off-the-shelf; OTS)인 상업적 모바일 동작 시스템들을 이용함으로써 고속 데이터 애플리케이션들을 지원하기 위하여 부가된 압박을 초래한다. 안타깝게도, 이러한 모바일 동작 시스템들은 특히 OTS 모바일 동작 시스템들에 의하여 요구되는 계층화된(layered) 소프트웨어 아키텍처들에 대하여, 차세대의 높은 데이터 레이트들을 효율적으로 지원하기 위한 주요 장애를 제공하는, 스위칭 컨텍스트들에서 종종 상당한 프로세싱 시간을 소비한다. 게다가, 모바일 디바이스 하드웨어는 전형적으로 전력을 보존하거나 또는 그렇지 않으면 전력 소비를 최소화하기 위한 노력의 일환으로 프로세서 코어의 클록 레이트를 감소시키려 한다.
따라서, 더 높은 데이터 레이트들을 위해 프로세싱 성능을 희생하지 않고 제한된 클록 레이트 프로세서들의 전력 소비를 감소시키기 위한 기법들이 요구된다.
이하에는 몇몇의 실시예들의 기초적인 이해를 제공하기 위하여 하나 이상의 실시예들의 간략화된 요약을 제공한다. 이런 요약은 모든 고려되는 실시예들의 배타적인 개관을 위함이 아니고, 모든 실시예들의 핵심적이고 또는 결정적인 엘리먼트들을 식별하기 위하거나 또는 모든 실시예들 또는 임의의 실시예들의 범위를 한정하려는 것도 아니다. 유일한 목적은 이후에 제공되는 더욱 상세한 설명에 대한 전제로서 간략화된 형태로 하나 이상의 실시예들의 몇몇의 개념들을 제공하기 위함이다.
일 특징에 따라, 제 2 프로세서로 데이터를 전송하기 위하여 제 1 프로세서에서의 동작 방법이 제공된다. 데이터 패킷들은 상기 제 1 프로세서에 의하여 패킷 번들로 결합(aggregate)될 것이다. 그러면 상기 제 1 프로세서는 공유 메모리를 통하여 상기 패킷 번들을 상기 제 2 프로세서로 전송할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱할 수 있고, 상기 제 1 프로세서의 프로세싱 로드(load)는 상기 패킷 번들로의 상기 데이터 패킷들의 결합(aggregation)에 의하여 감소된다. 부가적으로, 제 2 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 의하여 또한 감소될 수 있다. 데이터 패킷들을 데이터 번들로 결합하는 것은 상기 제 2 프로세서에서 컨텍스트 스위칭을 또한 감소시킬 수 있다. 컨텍스트 스위치는 다수의 펑션(function)들에 의한 프로세싱 리소스의 인터리빙된 공유를 포함할 수 있다. 상기 제 1 프로세서에서의 컨텍스트 스위칭은 더 적은 데이터 전송 동작들이 동일한 양의 데이터 패킷들에 대하여 상기 제 1 프로세서에 의하여 수행되도록 상기 데이터 패킷들을 패킷 번들로 결합으로써 감소될 수 있다.
하나 이상의 트리거(trigger)들의 발생 시, 패킷 번들은 상기 제 2 프로세서로 전송될 수 있다. 예를 들어, 상기 하나 이상의 트리거들은: (a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전송들 사이의 최대 시간량에 기초하는 타임아웃 트리거; (b) 상기 데이터 패킷들이 상기 패킷 번들로 모아지는 송신 큐(queue)에 대한 크기에 기초하는 큐 레벨 트리거; (c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전송하기 위하여 이용되는 상기 공유 메모리 내의 전송 버퍼의 이용에 기초하는 버퍼 이용 트리거; (d) 상기 제 2 프로세서에 대하여 상기 로드에 기초하는 로드 트리거; 또는 (e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거 중 적어도 하나를 포함할 수 있다.
상기 제 1 프로세서는 다수의 층(layer)들에 걸쳐 펑션들을 구현할 수 있고 그리고 상기 펑션들 사이의 컨텍스트 스위칭을 수행한다. 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함할 수 있다. 일례에서, 상기 상호접속 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다. 대안적인 예에서, 상기 펑션 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다.
일 특징에 따라, 데이터를 수신하기 위한 제 1 프로세서에서의 동작 방법은 제 2 프로세서로부터 전송한다. 제 1 프로세서는 데이터 번들이 상기 제 2 프로세서로부터 전송됨을 표시하는 인터럽트(interrupt)를 수신할 수 있다. 그러면 패킷 번들은 단일 컨텍스트 스위치에서 상기 제 2 프로세서로부터 공유 메모리를 통하여 획득되고, 상기 패킷 번들은 결합된 데이터 패킷들을 포함한다. 그러면 상기 제 1 프로세서는 복수의 데이터 패킷들로 상기 패킷 번들을 번들링 해제하고, 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의하여 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 의하여 감소된다. 상기 제 2 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 의하여 또한 감소될 수 있다. 상기 제 1 프로세서는 다중 층들에 걸쳐 펑션들을 구현할 수 있고 그리고 상기 펑션들 사이의 컨텍스트 스위칭을 수행할 수 있다. 이러한 펑션들은 송신 큐 및 수신 큐를 통하여 서로 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함할 수 있다.
제 1 프로세서 및 제 2 프로세서를 포함하고 상기 제 1 프로세서로부터 상기 제 2 프로세서로 데이터를 전송하도록 적응되는 액세스 단말이 또한 제공된다. 복수의 데이터 패킷들은 제 1 프로세서에서 패킷 번들로 결합될 수 있다. 그러면 상기 패킷 번들은 공유 메모리를 이용하여 제 1 프로세서로부터 제 2 프로세서로 전송되고, 상기 패킷 번들의 전송은 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행된다. 상기 제 2 프로세서는 상기 패킷 번들이 상기 제 1 프로세서로부터 전송됨을 표시하는 인터럽트를 수신할 수 있고, 상기 제 2 프로세서에서의 인터럽트들의 개수는 상기 제 1 프로세서에서 상기 데이터 패킷들의 결합에 의하여 감소된다. 상기 패킷 번들은 상기 제 2 프로세서에서 개별적인 데이터 패킷들로 번들링 해제되고, 상기 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의하여 상기 패킷 번들로 상기 데이터 패킷들의 결합에 의하여 감소된다. 상기 제 1 프로세서와 제 2 프로세서들은 다중 층들에 걸쳐 펑션들을 각각 구현할 수 있고, 상기 제 1 및 제 2 프로세서들 각각에서의 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함할 수 있다.
유사하게, 복수의 제 2 데이터 패킷들은 상기 제 2 프로세서에서 제 2 패킷 번들로 결합될 수 있다. 그러면 상기 제 2 프로세서는 공유 메모리를 이용하여 상기 제 1 프로세서로 상기 제 2 패킷 번들을 전송하고, 상기 패킷 번들의 상기 전송은 상기 제 2 프로세서에서의 단일 컨텍스트 스위치에서 수행된다. 그러면 상기 제 1 프로세서는 상기 제 2 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하고, 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의하여 상기 제 2 패킷 번들로 상기 데이터 패킷들의 결합에 의하여 감소된다.
일례에서, 제 1 프로세서는 애플리케이션 프로세서일 수 있고 그리고 제 2 프로세서는 모뎀 프로세서일 수 있으며, 프로세서들 둘 다는 무선 통신 디바이스 내에서 동작한다. 대안적으로, 제 2 프로세서는 애플리케이션 프로세서일 수 있고 그리고 제 1 프로세서는 모뎀 프로세서일 수 있으며, 프로세서들 둘 다는 무선 통신 디바이스 내에서 동작한다.
도 1은 하나 이상의 액세스 단말들이 통신 네트워크 내에서 동작할 수 있는 방법을 도시하는 블록도이다.
도 2는 액세스 단말의 일례를 도시하는 블록도이다.
도 3은 데이터 결합을 수행하도록 적응될 수 있는 듀얼 프로세서 아키텍처를 도시한다.
도 4는 일례에 따른 데이터 결합의 개념을 도시하는 블록도이다.
도 5는 데이터 결합에 대하여 타임아웃 타이머 및 큐 레벨들을 활용하기 위한 인텔리전트(intelligent) 스케줄러에 의하여 이용될 수 있는 방법을 도시한다.
도 6은 데이터 결합을 수행하기 위하여 적응될 수 있는 듀얼 프로세서 아키텍처의 다른 예를 도시한다.
도 7은 제 1 프로세서 및 제 2 프로세서를 포함하고 그리고 공유 메모리를 이용하여 상기 두 개의 프로세서들 사이에서 데이터 패킷들을 효율적으로 전송하도록 적응되는 디바이스를 도시하는 블록도이다.
도 8은 제 2 프로세서로 번들링된 데이터를 전송하기 위하여 제 1 프로세서에서의 동작 방법을 도시한다.
도 9는 제 2 프로세서로 번들링된 데이터를 수신하기 위하여 제 1 프로세서에서의 동작 방법을 도시한다.
도 10은 듀얼 프로세서들 사이에서 데이터 패킷들을 더욱 효율적으로 전송하기 위하여 듀얼 프로세서 액세스 단말에서의 동작 방법을 도시한다.
이하의 설명에서, 특정 상세사항들은 실시예들의 완전한 이해를 제공하기 위하여 제시된다. 하지만, 실시예들이 이런 특정 상세사항들이 없이 실행될 수 있다는 것은 당업자에게는 이해될 것이다. 예를 들어, 불필요한 상세사항으로 실시예들을 애매하게 하지 않기 위하여 회로들은 블록도들에 도시될 수 있거나 또는 전부가 도시되지 않을 수도 있다. 다른 예시들에서, 공지의 회로들, 구조들 및 기법들은 실시예들을 애매하게 하지 않기 위하여 상세히 도시되지 않을 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "액세스 단말"은 모바일 폰, 셀룰러 폰, 통신 디바이스, 무선 디바이스, 위성 라디오, 개인 휴대용 정보 단말기, 랩탑, 및/또는 무선 통신 능력들을 갖는 휴대용 컴퓨팅 디바이스로 지칭할 수 있지만, 이에 제한되는 것은 아니다. 용어 "데이터"는 네트워크를 통하거나 또는 프로세서 사이에서 송신될 수 있는 컨텐트 및/또는 정보의 모든 타입들을 지칭한다.
개관
일 특징은 동일한 디바이스 상에서 제 1 프로세서와 제 2 프로세서 사이에서 데이터를 전송할 때 컨텍스트 스위칭 및/또는 인터럽트들을 감소시키기 위한 데이터 결합 방식을 제공한다. 제 1 프로세서는 제 2 프로세서로 전송될 데이터 패킷들을 패킷 번들로 결합시키거나 또는 축적한다. 그러면 결합된 데이터 패킷들은 단일 컨텍스트 스위치에서 제 1 프로세서로부터 제 2 프로세서로 전송되고 그리고 하나 이상의 트리거들 상의 적어도 부분을 기초로 한다. 공유 메모리 또는 제 1 프로세서 및 제 2 프로세서 둘 다에 액세스가능한 전송 버퍼는 결합된 데이터 패킷들을 전송하기 위하여 이용될 수 있다. 제 2 프로세서는 데이터가 제 1 프로세서로부터 전송됨을 표시하는 인터럽트를 수신한다. 제 1 프로세서에서의 데이터 패킷들을 결합으로써, 상기 제 1 및/또는 제 2 프로세서들에서의 컨텍스트 스위치들의 개수는 감소된다. 그러면 상기 결합된 데이터 패킷들은 상기 제 2 프로세서에서 번들링해제 되고 그리고 무선 네트워크 또는 속박된 디바이스를 거친 송신을 위하거나 또는 더 높은 애플리케이션 층을 따라 전송될 수 있다.
데이터 결합은 통신 채널(예컨대, 무선 네트워크에 대한 송신 채널)의 채널 특성들을 매칭하고 그리고 컨텍스트 스위치들을 효과적으로 감소시키며, 이에 의하여 (감소한) 프로세서 활용 및 증가한 프로세서 유휴 시간을 개선하기 위하여 수행될 수 있다. 제 1 및 제 2 프로세서들 사이에서 결합된 데이터 전송의 인텔리전트 스케줄링은 데이터 전송에 대하여 이용되는 큐에서 낮고 그리고 높은 큐 레벨들의 계산에 기초할 수 있다. 이런 연관되는 큐 레벨들은 상이한 네트워크 데이터 레이트들에 대하여 조정될 수 있다. 타임아웃 타이머는 미리정의된 시기(time period) 내에서 결합된 데이터 패킷들의 전송을 보증하기 위하여 활용될 수 있다. 부가적으로, 다른 트리거들은 결합된 데이터가 전송되어야 할 때를 결정하기 위하여 활용될 수 있다. 예를 들어, 버퍼 이용 트리거는 버퍼 이용 트리거가 제 1 프로세서 및 제 2 프로세서 사이에서 결합된 데이터를 전송하기 위하여 활용되는 전송 버퍼의 용량 또는 이용에 기초하는 곳에서 이용될 수 있다. 유사하게, 로드 트리거는 로드 트리거가 제 2 프로세서에 대하여 프로세싱 로드에 기초할 수 있는 곳에서 또한 이용될 수 있다. 다른 예에서, 최소의 데이터 레이트 트리거는 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초한다.
통신 시스템
도 1은 하나 이상의 액세스 단말들이 통신 네트워크 내에서 동작할 수 있는 방법을 도시하는 블록도이다. 통신 네트워크(100)는 서빙 네트워크(108)에 통신적으로 커플링되는 하나 이상의 액세스 포인트 AP-A(104) 및 AP-B(110)를 포함할 수 있다. 서빙 네트워크(108)는 가입자 인증, 세션 셋업, 콜 라우팅, 데이터 또는 컨텐트 전달, 등을 용이하게 하는 하나 이상의 네트워크 인프라구조 디바이스들을 포함할 수 있다. 서빙 네트워크(108)는 상이한 영토들 및/또는 네트워크들을 거쳐 서비스들을 제공하기 위하여 다른 네트워크들에 또한 커플링될 수 있다.
하나 이상의 액세스 단말들 AT-A(102), AT-B(106), 및 AT-C(112)는 액세스 포인트 AP-A(104) 및 AP-B(110)를 통하여 서빙 네트워크(108)를 거쳐 서비스를 획득하고 그리고/또는 통신할 수 있다. 단지 세 개의 액세스 단말들 AT-A(102), AT-B(106), 및 AT-C(112)가 도시되었더라도, 통신 네트워크 시스템(100)은 임의의 개수의 액세스 단말들에 서비스를 제공할 수 있다는 것이 이해될 것이다. 다양한 구현들에 따라, 서빙 네트워크는 액세스 단말들 AT-A(102), AT-B(106), 및 AT-C(112) 로/로부터 높은 데이터 레이트 서비스들을 지원할 수 있다. 일례에서, 액세스 단말들 AT-A(102), AT-B(106), 및 AT-C(112)은 재충전가능한 전력 원(예컨대, 배터리)를 포함할 수 있고 그리고 컨텍스트 스위칭을 감소시키기 위하여 하나 이상의 기법들을 수행하고, 이에 의하여 하나 이상의 프로세서들에 대하여 유휴 시간을 증가시키고 배터리 전력을 보존하도록 적응된다.
액세스 포인트로부터 액세스 단말로의 통신 링크 또는 채널은 순방향 링크 또는 다운링크로서 종종 지칭된다는 것을 주목한다. 액세스 단말로부터 액세스 포인트로의 통신 링크 또는 채널은 역방향 링크 또는 업링크로서 종종 지칭될 수 있다.
도 2는 액세스 단말의 일례를 도시하는 블록도이다. 액세스 단말(202)은 액세스 단말 상에서 애플리케이션들을 실행하는 애플리케이션 프로세서(216)와 같은 하나 이상의 프로세서들을 포함할 수 있는 프로세싱 회로(204)를 포함할 수 있다. 프로세싱 회로(204)는 안테나(210)에 커플링되는 트랜시버(208)(예컨대, 송신기(218) 및 수신기(220) 모듈들)에 커플링되는 모뎀 프로세서(206)에 커플링될 수 있다. 애플리케이션 프로세서(216)와 모뎀 프로세서(206)에 의하여 정의된 프로세서 아키텍처는 듀얼 프로세서 시스템으로서 지칭될 수 있다.
프로세싱 회로(204), 모뎀 프로세서(206), 및 트랜시버(208)는 프로세싱하도록 동작하는 송신 체인 및/또는 수신 체인으로부터 하나 이상의 동시 발생 또는 일련의 데이터 스트림들을 액세스 단말(202)로 송신 그리고/또는 액세스 단말(202)로부터 수신할 수 있다. 일례에서, 각각의 데이터 스트림은 각각의 송신 안테나를 거쳐 송신될 수 있다. 송신될 데이터에 대하여, 모뎀 프로세서(206)는 코딩된 데이터를 제공하기 위하여 데이터 스트림에 대하여 선택된 특정 코딩 방식에 기초하여 각각의 데이터 스트림에 대하여 트래픽 데이터를 포맷팅, 코딩, 및/또는 인터리빙함으로써 데이터를 변조할 수 있다. 유사하게, 수신된 데이터에 대하여, 모뎀 프로세서(206)는 이용되는 특정 코딩 방식에 기초하여 각각의 데이터 스트림에 대하여 트래픽 데이터를 디인터리빙, 디코딩, 및/또는 추출함으로써 데이터를 복조할 수 있다. 트랜시버(208)에서, 송신기 모듈(218)은 하나 이상의 아날로그 신호들을 제공하기 위하여 데이터 스트림을 프로세싱할 수 있고 그리고 안테나(210)를 거친 송신에 적합한 변조된 신호를 제공하기 위하여 아날로그 신호들을 추가로 컨디셔닝(예컨대, 증폭, 필터, 및/또는 업컨버팅)할 수 있다. 유사하게, 수신기 모듈(220)은 안테나(210)로부터 변조된 신호들을 수신할 수 있고 그리고 수신된 신호를 컨디셔닝(예컨대, 필터, 증폭, 및/또는 다운컨버팅)할 수 있으며 샘플들을 제공하기 위하여 컨디셔닝된 신호들을 디지털화하고, 대응하는 수신된 데이터 스트림을 제공하기 위하여 상기 샘플들을 추가로 프로세싱한다.
프로세싱 회로(204)는 메모리 디바이스(212)와 하나 이상의 입력/출력 인터페이스들(214)에 또한 커플링될 수 있다. 메모리 디바이스(212)는 프로세싱 회로(204)에 의하여 실행되는 애플리케이션들, 데이터 및/또는 정보를 저장하기 위하여 제공될 수 있다. 선택적인 구현에서, 메모리 디바이스(212)는 모뎀 프로세서(206)에 선택적으로 커플링될 수 있고 애플리케이션 프로세서와 모뎀 프로세서 사이에서 전송 버퍼로서 제공될 수 있다. 입력/출력 인터페이스들(214)은 다른 인터페이스들 중에, 디스플레이 스크린, 마이크로폰, 스피커, 키패드, 터치 스크린을 포함할 수 있다. 다른 구현들에서, 프로세싱 회로(204), 애플리케이션 프로세서(216), 및/또는 모뎀 프로세서는 공통 데이터 버스에 커플링될 수 있다는 것을 주목한다.
일례에서, 모뎀 프로세서(206)와 애플리케이션 프로세서(216)는 액세스 단말(202)의 보드 또는 동일한 회로 상에서 존재할 수 있다. 다른 예에서, 모뎀 프로세서(206)와 애플리케이션 프로세서(216)는 별개의 회로 보드들 상에 있을 수 있다. 예를 들면, 모뎀 프로세서(206)는 액세스 단말(202)로 플러깅(plug)하는 독립적이거나 또는 제거가능한 통신 카드의 부분일 수 있다. 게다가, 모뎀 프로세서(206) 및/또는 애플리케이션 프로세서(216) 중 각각은 하나 또는 다중 프로세서들로서 구현될 수 있다.
몇몇의 특징들에 따라, 액세스 단말(202)은 고속 데이터 액세스 기술들을 이용하는 3G 및/또는 4G 통신 표준들을 따르도록 적응될 수 있다. 하지만, 프로세싱 회로(204) (또는 애플리케이션 프로세서(216)) 및/또는 모뎀 프로세서(206)는 3G 및/또는 4G 통신의 고속 데이터 레이트들에 도달하기 위하여 요구되는 프로세싱 오버헤드에 관하여 제한된 클록 레이트들을 가질 수 있다.
프로세싱 회로(204) 및/또는 애플리케이션 프로세서(216)는 이를 테면, 윈도우 모바일, 리눅스, 또는 심비안과 같은 상업 모바일 동작 시스템을 실행할 수 있다. 이러한 동작 시스템들은 특히 많은 모바일 동작 시스템들에 의하여 이용되는 층을 이룬 소프트웨어 아키텍처들에 대하여, 다음 세대 높은 데이터 레이트들을 효율적으로 지원하기 위한 주요 장애를 제공하는, 컨텍스트 스위칭에서 상당한 프로세싱 시간을 종종 소비한다.
용어 "컨텍스트 스위칭"은 다수의 프로세스들이 단일 프로세서 리소스를 공유할 수 있도록 프로세서의 상태(컨텍스트)를 저장하고 리스토어(restore)하는 컴퓨팅 프로세스를 지칭한다. 컨텍스트 스위치는 프로세싱 리소스를 공유하거나 또는 인터리빙함으로써 외관상으로 동시 발생을 기초로 다수의 동작들을 수행하기 위하여 멀티태스킹 동작 시스템에 의하여 이용될 수 있다. 컨텍스트 스위치들은 대체로 계산 집약적이고 동작 시스템들의 설계 중 많은 것은 컨텍스트 스위치들의 이용을 최적화하기 위함이다. 다양한 예들에 따라, 컨텍스트 스위치는 레지스터 컨텍스트 스위치, 스레드(thread) 컨텍스트 스위치, 및/또는 프로세스/펑션 컨텍스트 스위치는 의미할 수 있다. 컨텍스트를 구성하는 것은 이용되는 동작 시스템 및/또는 프로세서에 의하여 결정될 수 있다.
가능한 최고의 에너지 효율적인 방식으로 가장 높은 성능을 달성하기 위하여, 전력을 보존하거나 그렇지 않으면 배터리 소비를 최소화하도록 액세스 단말은 클록 레이트를 감소시키고 그리고/또는 프로세싱 회로(204)(또는 애플리케이션 프로세서(216)) 그리고/또는 모뎀 프로세서(206)의 유휴 사이클을 감소시키기 위하여 적응될 수 있다.
데이터 결합 예
일 특징에 따라, 데이터 결합은 통신 채널의 채널 특성들을 매칭하기 위하여 프로세서 내에서 이용될 수 있고 그리고 컨텍스트 스위치들을 효과적으로 감소시키고, 이에 의하여 (감소한) 프로세서 활용 및 증가한 프로세서 유휴 시간을 개선한다.
도 3은 데이터 결합을 수행하기 위하여 적응될 수 있는 듀얼 프로세서 아키텍처를 도시한다. 듀얼 프로세서 아키텍처(300)는 제 1 프로세서(302)와 제 2 프로세서(304)를 포함할 수 있다. 듀얼 프로세서 아키텍처(300)는 예를 들어, 액세스 단말의 부분으로서 구현될 수 있다. 제 1 프로세서(302)는 예를 들어, 특정 무선 통신 표준 (예컨대, 무선 인터페이스)에 대하여 무선 스택을 구현하기 위한 모뎀 프로세서일 수 있다. 제 2 프로세서(304)는 예를 들어, 하나 이상의 애플리케이션들(348)을 실행하기 위한 애플리케이션 프로세서일 수 있다. 제 1 프로세서(302)와 제 2 프로세서(304)는 전송 버퍼(306) (예컨대, 공유 메모리, 등)를 이용하여 데이터를 교환할 수 있다. 제 1 프로세서(302)는 무선 네트워크를 거쳐 데이터를 수신하고 송신하기 위한 안테나(310) 및 무선 스택(308)에 또한 커플링될 수 있다.
제 1 프로세서(302)는 펑션 드라이버(312), 번들링해제 모듈(314), 송신(Tx) 큐(316), 수신(Rx) 큐(318), 및/또는 상호접속 드라이버(320)를 포함하거나 또는 구현할 수 있다. 펑션 드라이버(312)는 번들링해제 모듈(314)을 포함하거나 또는 구현할 수 있다. 상호접속 드라이버(320)는 타이머(322), 데이터 결합 모듈(324), 및/또는 인텔리전트 스케줄러(326)를 포함하거나 또는 구현할 수 있다.
제 2 프로세서(304)는 펑션 드라이버(330), 송신(Tx) 큐(334), 수신(Rx) 큐(336), 및/또는 상호접속 드라이버(338), 동작 시스템 네트워킹 스택(346), 및/또는 하나 이상의 애플리케이션들(348)을 포함하거나 또는 구현할 수 있다. 펑션 드라이버(330)는 번들링해제 모듈(332)을 포함하거나 또는 구현할 수 있다. 상호접속 드라이버(338)는 데이터 결합 모듈(340), 인텔리전트 스케줄러(342), 및/또는 타이머(344)를 포함하거나 또는 구현할 수 있다.
제 1 프로세서(302)와 제 2 프로세서(304)에 대하여 도시되는 엘리먼트들 및/또는 모듈들은 각각의 프로세서 내에서 동작하는 기능적인 컴포넌트들일 수 있고 그리고/또는 다른 컴포넌트들과 결합할 수 있다. 일례에서, 전송 버퍼(306)는 공유 메모리 공간 또는 제 1 프로세서(302)와 제 2 프로세서(304)에 의하여 액세스가능한 디바이스일 수 있다. 몇몇의 예들에서, 제 1 프로세서(302) 및/또는 제 2 프로세서(304)는 TX 큐와 RX 큐가 구현되는 내부 메모리를 포함할 수 있다. 다른 구현들에서, TX 큐들 및 RX 큐들은 공유 메모리(예컨대, 공유 메모리 디바이스에서 동일한 메모리 공간 또는 상기 메모리 디바이스에서 상이한 메모리 공간들)로 구현될 수 있다. 일례에서, 전송 버퍼(306)는 제 1 프로세서에 의하여 통지될 때 제 2 프로세서가 결합된 데이터 패킷들을 판독하는 동일한 메모리 공간으로 제 1 프로세서가 결합된 데이터 패킷들을 송신하도록 제 1 프로세서(302)와 제 2 프로세서(304) 둘 모두에 대하여 TX 큐들 및 RX 큐들을 구현할 수 있다.
순방향 링크 또는 다운링크 상에서 수신되는 데이터(즉, 액세스 단말에서 수신되는 데이터)에 대하여, 데이터는 안테나(310)를 통하여 수신되고 그리고 무선 스택(308)에서 수집된다. 그러면 제 1 프로세서(302)의 펑션 드라이버(312)는 무선 스택(308)으로부터 TX 큐(316)로 데이터를 전송한다. 데이터 결합 모듈(324) 및 인텔리전트 스케줄러(326)는 둘 이상의 인자들 또는 파라미터들에 기초하여 TX 큐(316)로부터 전송 버퍼(306)로 번들링되거나 또는 결합된 데이터 패킷들 (또한 패킷 번들들로서 지칭됨)을 선택적으로 전송한다. 이런 인자들 또는 파라미터들은 타이머(322)의 타임아웃 값, TX 큐(316)의 크기, 하나 이상의 TX 큐 레벨들(예컨대, "레벨"은 바이트들, 패킷들, 또는 데이터 전송 타입에 관한 다른 단위들로 측정된, 큐에 포함된 데이터의 특정 양으로서 정의될 수 있음), 전송 버퍼(306)의 크기, 무선 스택(308)으로부터 예상되는 데이터 레이트들의 하나 이상의 표시자들, 프로세서 로드 표시자(예컨대, 제 2 프로세서(304)의 로드), 또는 이들의 결합을 포함할 수 있지만, 이에 제한되는 것은 아니다. 인텔리전트 스케줄러(326)가 데이터가 TX 큐(316)로부터 판독되고 그리고 전송 버퍼(306)에 기록될 것을 결정할 때, 판독 동작(TX 큐(316)로부터) 및 기록 동작(전송 버퍼(306)로)이 수행되며, 그리고 제 2 프로세서(304)로의 인터럽트가 발생된다. 상호접속 드라이버(320)는, 상기 인터럽트에 응답할 때, 전송 버퍼(306)로부터 결합된 데이터 패킷들을 판독하고 RX 큐(336)에 상기 데이터를 기록한다. 그러면 펑션 드라이버(330)는 RX 큐(336)로부터 데이터 패킷들을 판독하고 그리고 번들링해제 모듈(332)은 상위 층들(예컨대, 결국 애플리케이션(348)로)로 전송하기 위하여 번들링된 패킷들을 개별적인 패킷들로 분리한다.
이런 예에서, 인터럽트 시그널링 경로 또는 메커니즘(317)은 제 1 프로세서(302)와 제 2 프로세서(304) 사이에서 존재할 수 있다는 것을 주목한다. 다른 구현들에서, 전송 버퍼(306)로부터 데이터를 판독할 때 상이한 기법들이 프로세서에 구현될 수 있다.
유사하게, 역방향 링크 또는 업링크 상에서 송신될 데이터(즉, 액세스 단말로부터 액세스 포인트 또는 기지국으로 송신될 데이터)에 대하여, 더 상위 층들(예컨대, 애플리케이션(348))로부터 수신되는 데이터는 TX 큐(334)에 기록된다. 데이터 결합 모듈(340) 및 인텔리전트 스케줄러(342)는 둘 이상의 인자들 또는 파라미터들에 기초하여 TX 큐(334)로부터 전송 버퍼(306)로 번들링되거나 또는 결합된 데이터 패킷들을 선택적으로 전송한다. 이런 인자들 또는 파라미터들은 타이머(344)의 타임아웃 값, TX 큐(334)의 크기, 하나 이상의 TX 큐 레벨들, 전송 버퍼(306)의 크기, 로드 표시자(예컨대, 제 1 프로세서(302)의 로드), 애플리케이션(348)으로부터 예상되는 데이터 레이트들의 하나 이상의 표시자들, 또는 이들의 결합을 포함할 수 있지만, 이에 제한되는 것은 아니다. 인텔리전트 스케줄러(342)가 데이터가 TX 큐(334)로부터 판독되고 그리고 전송 버퍼(306)에 기록될 것을 결정할 때, 판독 동작 및 기록 동작이 수행되며, 그리고 제 1 프로세서(302)로의 인터럽트가 발생된다. 상호접속 드라이버(320)는, 상기 인터럽트에 응답할 때, 전송 버퍼(306)로부터 결합된 데이터 패킷들을 판독하고 RX 큐(318)에 상기 데이터를 기록한다. 그러면 펑션 드라이버(312)는 RX 큐(318)로부터 데이터 패킷들을 판독하고 그리고 번들링해제 모듈(314)은 번들링된 패킷들을 무선 스택(308)으로 전송하기 위한 개별적인 패킷들로 분리한다.
일 특징에 따라, 데이터는 두 개의 프로세서들(302 및 304) 사이에서의 전송을 위한 TX 큐(334 또는 316)에서 결합될 수 있다. 즉, 각각의 데이터 패킷을 전송하는 것보다 TX 큐(316 또는 334)에 각각의 데이터 패킷이 도달하는 바와 같이, 인텔리전트 스케줄러(326 및/또는 342)는 TX 큐(316 또는 334)로 하여금 충분히 많은 수의 패킷들이 축적될 때까지 데이터 패킷들을 축적하게 한다. 그러면 상기 축적되는 데이터 패킷들은 전송 버퍼(306)로 전송을 위한 단일 패킷으로서 그룹핑되거나 또는 번들링된다.
일례에 따라, 인텔리전트 스케줄러(326 또는 342)는 데이터 전송이 전송되어야 할 때를 결정하기 위하여 낮고 그리고 높은 큐 레벨들을 활용할 수 있다. 이런 수위표 큐 레벨들은 3G 데이터 레이트들 또는 4G 데이터 레이트들을 구별하기 위하여 조절될 수 있다. 낮고 그리고 높은 큐 레벨들은 TX 큐(316/334)에 축적되는 데이터 패킷들이 전송 버퍼(306)로 언제 전송될 수 있는지를 결정하기 위하여 이용될 수 있다. 예를 들면, 낮은 큐 레벨은 TX 큐(316/334)에 유지되어야 하는 데이터의 최소량을 표시할 수 있는 반면에 높은 큐 레벨은 TX 큐에 유지되어야 하는 데이터의 최대량을 표시할 수 있다.
부가적으로, 타이머(322 또는 344)는 컨텍스트들 사이에서의 전송 이전에 데이터의 결합을 용이하게 하기 위하여 또한 활용될 수 있다. 최대 타임아웃 값(타이머(322 또는 344)에 의하여 트랙킹되는 바와 같이)은 데이터가 TX 큐(316/334)에서 긴 시간 동안 유지되지 못하도록 활용될 수 있다. 일례에서, 타임 아웃 값(타이머(322/344)에 의하여 트랙킹됨)은 경험적으로 결정될 수 있거나 또는 타이머 타임아웃 값 대 달성된 데이터 스루풋(throughput)을 플롯팅하는 그래프 상에 굴곡점을 위치시킴으로써 튜닝될 수 있다. 일 경우에서, 스루풋의 피크 값은 최적의 타임아웃 값을 획득하기 위하여 이용되고, 이는 개선된 프로세서 유휴 시간 성능을 이끌어낸다 (예컨대, 듀얼 프로세서 아키텍처에서 제 1 프로세서(302) 및/또는 제 2 프로세서(304)에 대하여).
도 4는 일례에 따른 데이터 결합의 개념을 도시하는 블록도이다. 송신 큐(402)는 복수의 데이터 패킷들(데이터 패킷들 A-F)을 예를 들어, 선입선출 방식으로(a first in first out basis) 수집할 수 있다. 즉, 데이터 패킷들을 송신하는 것보다는 데이터 패킷들이 송신 큐(402)에 도달하는 바와 같이, 프로세서는 복수의 데이터 패킷들을 수집하고 상기 복수의 데이터 패킷들을 패킷 번들(404)로 번들링하거나 또는 모은다. 패킷 번들(404)의 크기 및/또는 상기 패킷 번들(404)이 송신되는 주파수는 하나 이상의 트리거들에 기초할 수 있다. 예를 들어, 하나 이상의 트리거들은:
(a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전송들 사이의 최대 시간량에 기초하는 타임아웃 트리거;
(b) 상기 송신 큐(402)에 대한 크기에 기초하는 큐 레벨 트리거(즉, 상기 데이터 패킷들이 상기 패킷 번들로 결합되는 큐);
(c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전송하기 위하여 이용되는 상기 공유 메모리 내의 전송 버퍼(즉, 도 3에서의 버퍼(306))의 용량 또는 이용에 기초하는 버퍼 이용 트리거;
(d) 상기 제 2 프로세서(즉, 패킷 번들이 전송되는 프로세서)에 대하여 상기 프로세싱 로드에 기초하는 로드 트리거; 및/또는
(e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거를 포함할 수 있다.
그러면 패킷 번들(404)은 단일 컨텍스트 스위치에서의 수신 큐(406)로 전송된다. 즉, 각각의 개별적인 데이터 패킷을 전송하기 위하여 다중 컨텍스트 스위치들을 활용하는 것보다는, 데이터 패킷들은 패킷 번들(404)로서 그룹핑되고(예컨대, 이를 테면 펑션 드라이버 또는 상호접속 드라이버와 같은 낮은-레벨 펑션에 의하여) 그리고 단일 컨텍스트 스위치는 패킷 번들(404)을 송신하기 위하여 송신 프로세서에 의하여 활용되며 그리고 단일 컨텍스트 스위치는 패킷 번들(404)을 수신하기 위하여 수신 프로세서에 의하여 활용된다. 패킷 번들(404)은 수신 큐(406)에서 수신되고 그리고 패킷 번들은 개별적인 데이터 패킷들(408)을 추출하기 위하여 번들링해제 된다. 데이터 패킷들을 번들링하고 그리고/또는 번들링해제하기 위하여 몇몇의 동작들을 취할 수 있다고 하더라도, 이러한 동작들은 부가적인 컨텍스트 스위치들이 없이 (또는 극소수의 컨텍스트 스위치들을 이용하여) 수행될 수 있으며, 그러므로 전송을 더욱 효율적으로 만들 수 있다는 것을 주목한다.
일례에서, 데이터 패킷들의 "번들링"은 단지 개별적인 데이터 패킷들을 함께 또는 수신 프로세서가 데이터 패킷들을 판독할 수 있도록 각각의 데이터 패킷에 적절한 포인터들을 갖는 그룹 (단일 컨텍스트 스위치에서)으로서 전송하는 것만을 포함할 수 있다. 다른 구현들에서, 결합된 데이터 패킷들은 데이터 패킷의 컨텐트를 식별하기 위하여 몇몇의 오버헤드 데이터를 갖는 더 큰 패킷으로 에워싸일 수 있다.
많은 모바일 동작 시스템들은 OEM 드라이버 층들과 네이티브 동작 시스템 컴포넌트들 사이에서 컨텍스트 스위칭을 필요로 하는 소프트웨어 아키텍처들을 강제하고, 데이터 네트워킹 기능성에 프로세싱 오버헤드를 내재적으로 부가하며, 컨텍스트 스위칭 요구사항들을 제거하기 위하여 기회를 제한하거나 또는 전체 코드 경로를 최적화할 수 있다. 더욱이, 제 1 프로세서(302)와 제 2 프로세서(304)의 동작 시스템들이 상이할 때, 상이한 동작 시스템 인터페이스들을 융화(reconcile)시키기 위하여 부가적인 단계들이 데이터 네트워킹 기능성을 구현하도록 요구될 수 있고, 이에 의하여 추가의 프로세서 오버헤드를 부가한다. 하지만, 본 명세서에 기술되는 데이터 결합 기법들은 이러한 동작 시스템들에 대하여 고가의 컨텍스트 스위치들을 최소화하는 데 도움이 된다. 즉, 제 1 프로세서(302)와 제 2 프로세서(304) 사이에서 다중 패킷들의 동시적 데이터 전송들의 인텔리전트 스케줄링이다. 다른 양상에서, 인텔리전트 스케줄러는 제 1 프로세서, 스레드 또는 컨텍스트와 제 2 프로세서, 스레드 또는 컨텍스트 사이에서 동시적으로 다중 패킷들을 전송할 수 있다. 본 명세서에 기술되는 바와 같이 인텔리전트 스케줄러는 프로세서들 또는 프로세스들 사이에서의 동일한 양의 데이터를 전송하도록 요구되는 컨텍스트 스위치들의 개수를 감소시키고, 이에 의하여 프로세서 성능이 개선되고 오버헤드가 감소한다.
큐 레벨들 및 타임아웃 타이머 동작
도 3을 참조하면, 인텔리전트 스케줄러(326/342)의 동작의 일례에 따라, 큐 레벨들 (예컨대, 도 4에서의 고 레벨 및 저 레벨) 및 타임아웃 타이머는 TX 큐(316/334)에 축적되는 데이터 패킷들이 언제 전송 버퍼(306)로 이동해야하는지를 결정하기 위하여 활용될 수 있다. 예를 들어, 데이터 결합 모듈(338)은 다중 패킷 데이터 단위들의 번들링된 결합을 전송 버퍼(306)에 기록할 수 있다. 타이머(322/344)는 결합된 큐 레벨 (예컨대, 고 큐 레벨)의 트리거링이 아직 달성되지 않았을 때조차도 기록 프로세스를 트리거링함으로써 적은 크기의 데이터 교환들 (예컨대, 설정된 콜에 대한 데이터)를 핸들링하고 규명하기 위하여 이용된다. 타이머(322/344)는 임의의 최대 레이턴시 요구사항들이 충족되고 그리고 이런 레이턴시 요구사항들을 따르는 방식으로 제 1 프로세서(302)와 제 2 프로세서(304) 사이의 데이터 흐름들 또한 보장할 수 있다.
도 5는 데이터 결합을 위하여 타임아웃 타이머와 큐 레벨들을 활용하기 위한 인텔리전트 스케줄러에 의하여 이용될 수 있는 방법을 도시한다. 미리정의된 시간(예컨대, X 밀리초)에 대하여 수신될 데이터의 예상되는 양은 맨 먼저 결정되거나 또는 획득된다 (502). 이러한 결정은 이를 테면, 특정 통신 아키텍처 (예컨대, 특정 통신 표준이 이용되고 그리고 상기 특정 표준에 대하여 전형적인 데이터 레이트들)에 대한 채널 특성들과 같은 고려 인자들에 의하여 내려질 수 있다. 예를 들어, 평균 데이터 레이트 및 최대 데이터 레이트는 결정되거나 또는 획득될 수 있다 (504). 그러면 높은 큐 레벨을 포함하는, 더 많은 큐 레벨들 중에 하나는 평균 데이터 레이트 및 최대 데이터 레이트에 기초하여 결정되거나 또는 획득될 수 있다 (506). 이런 큐 레벨들은, 예를 들어, 미리정의된 시기 동안에 무선 스택으로부터 수신될 데이터의 예상량에 적어도 부분적으로 기초하는 큐(예컨대, Tx 큐)에 저장될 수 있는 데이터의 낮은 레벨, 높은 레벨 및 최대 레벨일 수 있다. 특정 애플리케이션에 대해여 요구되는 특정 입도(granularity)를 지원하기 위하여 완전하거나 또는 빈 큐의 다른 표시자들이 어떻게 유지될 수 있는지는 주목된다.
일 실시예에서, 제 1 패킷 데이터 유닛(PDU)은 TX 큐에 존재할 때, 타이머는 연관되는 타임아웃 값을 갖는 508에서 시작된다. 데이터는 TX 큐(510)에 축적되거나 또는 모이거나 또는 스택된다. 이런 실시예에서 결합된 데이터는 동시에 하나의 패킷 데이터 유닛씩 단일 패킷 데이터 유닛(예컨대, 단일 데이터 패킷)을 상위 (다음) 층들로 전송하는 것보다는 오히려 프로세스들 (또는 프로세서들) 사이에서 전송될 수 있다. 타임아웃 값은 한번 채워진 이후로 네트워크측 엘리먼트들을 오버로딩하거나 또는 혼잡을 방지하기 위하여 고려사항 및 큐 깊이에 기초하는 공식에 의하여 구성될 수 있고, 큐 컨텐츠는 플로우 제어가 적용되기 전에 송신될 수 있다.
일례에서, 송신 큐 크기는 타이머 타임아웃 값(들)에 의하여 분할되는 최대 데이터 레이트 (bps)와 같을 수 있다. 다른 예에서, 데이터 레이트들은 시간에 따라 변화할 수 있으며, 송신 큐 크기는 최대 링크 속도에 대하여 평균 데이터 레이트보다 더 클 수 있다. 하지만, 메모리가 액세스 단말들에서 종종 제한되기 때문에, 이하의 단계들은 메모리 제한에 적응시킬 수 있다. 일 양상에서, 타이머는 매우 짧은 듀레이션에 대하여 구성되고 (예컨대, 대략 1 미리초 내지 대략 255초의 단위로), 그리고 프로세서 유효 시간 및 스루풋은 타이머 타임아웃의 다양한 값들에 대하여 측정된다. 레이턴시(타이머 타임아웃) 대 감소된 프로세서 이용의 최적의 트레이드오프는 최대 지원 스루풋을 달성하는 동안에 타임아웃 값의 이상적인 값을 결정할 수 있다.
몇몇의 경우들에서, 프로세서 유휴 시간은 증가할 수 있지만, 그러나 스루풋 레이트는 타이머가 예를 들어, 타이머 임계치 값이 변화되고 대응하는 스루풋이 측정되는 특성 프로세스에 의하여 경험적으로 결정될 수 있는 특정 임계치에 도달한 이후에 감소될 수 있다. 이와 관련하여, 데이터 패킷들의 결합 또는 스택킹은 데이터의 짧은 돌발에 적당하고, 특히 이를 테면 TCP와 같은 데이터 프로토콜들에 대하여 적당하고, 이는 상태 정보를 유지하고 전송되고 수신되는 데이터에 대응하는 피드백을 제공하기 위한 프로비전을 갖는다. 일 실시예에서, 밀리초의 단위로의 시기 또는 듀레이션 동안에 데이터 패킷들의 스택킹은 프로세서 활용에서의 개선을 달성하고, 이에 의하여 프로세서 유휴 시간에서의 개선이 유도된다. 하나의 고려사항은 타임아웃 값은 본 명세서의 이하에서 더욱 자세하게 기술되는 바와 같이 적은 크기의 데이터 교환들 (예컨대, 접속 셋업 동안에)에 대한 데이터 스택킹으로부터 야기될 수 있는 타임아웃 이슈들을 방지하기 위하여 통신 프로토콜이 특정하는 최소 타임아웃 값보다 더 작아지도록 구성된다는 것이다. 다른 고려사항은 엔드-투-엔드(end-to-end) 레이턴시 요구사항들은 타임아웃 값이 전체 레이턴시에 상대적으로 덜 중요하도록 타임아웃 값의 선택에 영향을 줄 수 있다는 것이다.
타이머가 타임아웃 값에 도달하거나 또는 높은 큐 레벨이 도달될 때 (512), 하지만 큐가 완전히 채워지기 전에 (예컨대, 채워짐의 미리정의된 퍼센티지, 이를 테면, 큐의 80%가 채워짐), 결합된 데이터는 송신 큐로부터 다른 프로세서로 전송될 수 있다 (514). 예를 들면, 결합된 데이터는 상기 결합된 데이터가 다른 프로세서에 의하여 리트리브(retrieve)되는 곳으로부터 전송 버퍼로 전송될 수 있고, 가능하다면 결합된 형태로, 이후에 다른 프로세서상의 상위 층들에 제공될 수 있다. 특정 통신 표준 또는 특정 통신 기술들에 적응시키기 위하여 최적의 구성을 달성하기 위하여 큐 레벨들 및 타이머 값들은 상이하게 구성되거나 또는 조정될 수 있다는 것이 주목된다. 이런 프로세스는 반복될 수 있고, 그리고 인자들의 상이한 파라미터들 (예컨대, 타임아웃 값들, 큐 레벨들, 및 프로세서 로딩 표시자들) 중 하나 이상은 상이한 데이터 레이트들을 가질 수 있는 상이한 통신 기술들에 대하여 커스터마이즈(customize)될 수 있다.
듀얼 프로세서 아키텍처들에서 인터럽트들을 감소시킴
본 명세서에 기술되는 데이터 패킷 결합 방식은 듀얼 프로세서 아키텍처들에서 인터럽트들을 감소시키고, 이에 의하여 이러한 프로세서들의 효율성을 개선한다는 것을 주목한다.
일 구성에서, 제 1 프로세서는 중간 전송 버퍼 또는 공유 메모리 디바이스를 통하여 데이터를 제 2 프로세서로 전송할 수 있다. 종래의 접근법에서, 제 1 프로세서는 전송 버퍼에 데이터를 동시에 하나의 패킷씩 기록할 수 있다. 예를 들어, 제 1 프로세서의 송신 큐에 데이터 패킷이 있을 때, 상호접속 드라이버는 상기 송신 큐로부터 데이터 패킷을 판독하고 그리고 나서 상기 전송 버퍼에 상기 데이터 패킷을 기록한다. 데이터가 상기 제 1 프로세서의 상호접속 드라이버에 의하여 전송 버퍼에 기록될 때마다, 강건한 인터럽트는 제 2 프로세서에 대하여 발생된다. 따라서, 이런 접근법은 인터럽트가 아무리 작은 패킷이라도, 전송 버퍼에 배치되는 각각의 패킷에 대하여 발생하는 바와 같이 제 2 프로세서의 효율성을 감소시키는 원치않는 특성을 갖는다. 유사하게, 제 2 프로세서로부터 제 1 프로세서로 전송될 데이터가 있을 때, 제 2 프로세서상에서 실행되는 상호접속 드라이버가 전송 버퍼에 데이터를 기록할 때마다 제 1 프로세서를 인터럽팅하기 때문에 제 1 프로세서의 효율성은 감소된다.
제 1 프로세서와 제 2 프로세서 사이에서의 패킷들의 전송을 개선하기 위하여 데이터 결합이 이용된다. 앞서 기술되는 바와 같이, 데이터 패킷들은 하나 이상의 인자들에 기초하여 전송 프로세서에 의하여 모아지고 그리고 나서 결합된 데이터 (즉, 동시에 하나의 데이터 패킷 초과)는 전송 버퍼에 기록되고, 이에 의하여 수신 프로세서로의 인터럽트의 개수는 감소한다. 예를 들면, 이런 결합된 데이터 전송 기법이 제 1 프로세서로부터 제 2 프로세서로의 데이터의 전송에 대하여 이용된다면, 제 2 프로세서로의 인터럽트들의 개수는 감소되고, 이에 의하여 제 2 프로세서의 효율성은 증가한다.
컨텍스트 스위칭을 감소시킴
다른 프로세스 또는 스레드에 대한 동작들을 수행하기 위하여 프로세서가 프로세스 또는 스레드를 중지(suspend)하거나 또는 중단할 때, 컨텍스트 스위칭이 발생한다. 예를 들어, 도 3에서 컨텍스트 스위칭은 수신된 데이터가 상호접속 드라이버로부터 애플리케이션으로 통과함에 따라 컨텍스트 1과 컨텍스트 2 사이에서, 컨텍스트 2와 컨텍스트 3 사이에서, 그리고 컨텍스트 3과 컨텍스트 4 사이에서 발생할 수 있다. 이를 테면 프로세서상에서 실행중인 상이한 프로세스들 또는 스레드들 사이에서의 스위칭과 같은 컨텍스트 스위칭은, 오버헤드를 발생시키고, 이에 의하여 프로세서의 레이턴시는 증가한다는 것을 주목한다. 그러므로, 용인할 수 없는 지연을 도입함이 없이 가능할 때, 컨텍스트 스위칭을 감소시키는 것이 유리하다.
상기 기술되는 바와 같이, 하나의 프로세서로부터 다른 프로세서로의 송신을 위하여 데이터 결합은 복수의 데이터 패킷들을 단일 패킷으로 번들링하거나 또는 그룹핑하도록 제공할 수 있다. 즉, 경계를 거쳐 하나의 프로세서로부터 다른 프로세서 개별적인 데이터 패킷들을 전송하는 것 (즉, 이에 의하여 다중 컨텍스트 스위치들 및/또는 인터럽트들을 야기함)보다는 오히려, 결합된 데이터 패킷들은 함께 보내진다 (이에 의하여 단지 하나의 컨텍스트 스위치 또는 인터럽트가 트리거링함). 이런 방식으로, 데이터의 번들들은 복수의 컨텍스트 스위치들에서 개별적인 데이터 패킷들을 전송하는 것 대신에 단일 컨텍스트 스위치를 요구하거나 또는 활용하는 결합된 데이터 패킷들과 같이 엔티티들 사이에서 전송된다. 달리 진술하면, 고정된 데이터의 양을 전송하기 위하여 이용되는 컨텍스트 스위치들의 개수는 본 명세서에서 기술되는 데이터 결합 기법에 의하여 감소된다.
대안적인 접근법에서, 컨텍스트 스위칭을 감소시키기 위하여 다른 방식은 홀드-오프(hold-off) 시그널링 메커니즘을 구현하는 것이다. 예를 들어, 데이터의 발신자(originator) (예컨대, 전송 또는 전달(send)을 위하여 데이터를 갖는 스레드 또는 프로세스)는 홀드-오프 신호를 데이터의 수신기로 전달할 수 있다. 홀드-오프 신호는 데이터의 미리정의된 양이 축적(예컨대, 저장 위치 (예컨대, 저장 큐)에 기록됨)될 때까지 특정 메모리 위치로부터 판독하지 않기 위하여 수신기(예컨대, 수신 스레드 또는 프로세스)에 지시한다. 이런 방식으로, 주어진 양의 데이터를 핸들링하기 위하여 컨텍스트 스위치들의 개수는 단일 컨텍스트 스위치와 다중 패킷들을 프로세싱함으로써 감소될 수 있다. 시그널링은 경계들의 상이한 측면들 상에 존재하는 엔티티들 (예컨대, 프로세스들, 스레드들, 드라이버들, 등) 사이에서 미리정의된 인터페이스 (예컨대, 애플리케이션 프로그래밍 인터페이스 (API))를 활용함으로써 경계들 (예컨대, 도 3에서 프로세서들(302 및 304) 사이)에 걸쳐 구현될 수 있다는 것이 주목된다.
대안적인 데이터 결합 예
도 6은 데이터 결합을 수행하도록 적응될 수 있는 듀얼 프로세서 아키텍처의 다른 예를 도시한다. 듀얼 프로세서 아키텍처(600)는 도 3의 아키텍처와 유사하고 제 1 프로세서(602) 및 제 2 프로세서(604)를 포함할 수 있다. 제 1 프로세서(602) 및 제 2 프로세서(604)는 전송 버퍼(606)(예컨대, 공유 메모리, 등)를 이용함으로써 데이터를 교환할 수 있다. 제 1 프로세서(602)는 무선 네트워크를 거쳐 데이터를 수신하고 송신하기 위한 안테나(610)와 무선 스택(608)에 또한 커플링될 수 있다.
이런 예에서, 데이터 결합은 상호접속 드라이버(620/638)에 의하여 제어되기보다는 오히려 제 1 프로세서(602)와 제 2 프로세서(604)의 펑션 드라이버 (612/630)에 의하여 각각 제어된다.
제 1 프로세서(602)는 펑션 드라이버(612), 송신(Tx) 큐(616), 수신(Rx) 큐(618), 및/또는 상호접속 드라이버(620)를 포함하거나 또는 실행시킬 수 있다. 펑션 드라이버(612)는 데이터 결합 모듈(624), 번들링해제 모듈(614), 타이머(622), 및/또는 인텔리전트 스케줄러(626)를 포함하거나 또는 구현할 수 있다.
제 2 프로세서(604)는 펑션 드라이버(630), 송신(Tx) 큐(634), 수신(Rx) 큐(636), 및/또는 상호접속 드라이버(638), 동작 시스템 네트워킹 스택(646), 및/또는 하나 이상의 애플리케이션들(648)을 포함하거나 또는 구현할 수 있다. 펑션 드라이버(630)는 데이터 결합 모듈(640), 번들링해제 모듈(632), 인텔리전트 스케줄러(642), 및/또는 타이머(644)를 포함하거나 또는 구현할 수 있다.
제 1 프로세서(602)와 제 2 프로세서(604)에 대하여 도시되는 엘리먼트들 및/또는 모듈들은 각각의 프로세서 내에서 동작하는 기능적인 엘리먼트들일 수 있고 그리고/또는 다른 컴포넌트들과 결합할 수 있다.
순방향 링크 또는 다운링크 상에서 수신되는 데이터 (즉, 액세스 단말에서 수신되는 데이터)에 대하여, 데이터는 안테나(610)를 통하여 수신되고 그리고 무선 스택(608)에서 수집된다. 제 1 프로세서(602)의 펑션 드라이버(612)는 그리고나서 무선 스택(608)으로부터 TX 큐(616)로 데이터를 전송한다. 펑션 드라이버(612)는 TX 큐(616)로부터 데이터가 전송되어 나올 때 제어할 수 있다. 즉, 데이터 결합 모듈(624)은 TX 큐(616)에서 데이터를 번들링하거나 또는 모을 수 있고 그리고 결합된 데이터가 하나 이상의 인자들 또는 파라미터들에 기초하여 전송 버퍼(606)로 전송될 때 인텔리전트 스케줄러(626)는 상호접속 드라이버(620)에 표시할 수 있다. 이런 인자들 또는 파라미터들은 타이머(622)의 타임아웃 값, TX 큐(616)의 크기, 하나 이상의 TX 큐 레벨들, 전송 버퍼(606)의 크기, 무선 스택(608)으로부터 예상되는 데이터 레이트들의 하나 이상의 표시자들, 프로세서 로드 표시자(예컨대, 제 2 프로세서(604)의 로드), 또는 이들의 결합을 포함할 수 있지만, 이에 제한되는 것은 아니다. 인텔리전트 스케줄러(626)가 데이터가 TX 큐(616)로부터 판독되고 그리고 전송 버퍼(606)에 기록될 것을 결정할 때, 판독 동작(TX 큐(616)로부터) 및 기록 동작(전송 버퍼(606)로)을 수행하기 위하여 상호접속 드라이버(620)에 지시한다. 제 2 프로세서(604)로의 인터럽트가 또한 발생된다. 상호접속 드라이버(638)는, 상기 인터럽트에 응답할 때, 전송 버퍼(606)로부터 결합된 데이터 패킷들을 판독하고 RX 큐(636)에 상기 데이터를 기록한다. 그러면 펑션 드라이버(630)는 RX 큐(636)로부터 데이터 패킷들을 판독하고 그리고 번들링해제 모듈(632)은 상위 층들(예컨대, 결국 애플리케이션(648)로)로 전송하기 위하여 번들링된 패킷들을 개별적인 패킷들로 분리한다.
유사하게, 역방향 링크 또는 업링크 상에서 송신될 데이터(즉, 액세스 단말로부터 액세스 포인트 또는 기지국으로 송신될 데이터)에 대하여, 더 상위 층들(예컨대, 애플리케이션(648))로부터 수신되는 데이터는 TX 큐(634)에 기록된다. 이런 구현에서, 펑션 드라이버(630)는 데이터 결합 및 TX 큐(634)로부터의 전송을 제어한다. 즉, 데이터 결합 모듈(640)은 TX 큐(634)에 데이터 패킷들을 번들링하거나 또는 결합시키고 그리고 둘 이상의 인자들 또는 파라미터들에 기초하여 TX 큐(634)로부터 전송 버퍼(606)로 결합된 데이터 패킷들을 전송할 때 인텔리전트 스케줄러(642)는 상호접속 드라이버(638)에 지시한다. 이런 인자들 또는 파라미터들은 타이머(644)의 타임아웃 값, TX 큐(634)의 크기, 하나 이상의 TX 큐 레벨들, 전송 버퍼(606)의 크기, 로드 표시자(예컨대, 제 1 프로세서(602)의 로드), 애플리케이션(648)으로부터 예상되는 데이터 레이트들의 하나 이상의 표시자들, 또는 이들의 결합을 포함할 수 있지만, 이에 제한되는 것은 아니다. 인텔리전트 스케줄러(642)가 데이터가 TX 큐(634)로부터 판독되고 그리고 전송 버퍼(606)에 기록될 것을 결정할 때, TX 큐(634)로부터의 판독 동작 및 전송 버퍼(606)로의 기록 동작을 수행하기 위하여, 상호접속 드라이버(638)에 지시한다. 제 1 프로세서(602)로의 인터럽트가 또한 발생된다. 상호접속 드라이버(620)는, 상기 인터럽트에 응답할 때, 전송 버퍼(606)로부터 결합된 데이터 패킷들을 판독하고 RX 큐(618)에 상기 데이터를 기록한다. 그러면 펑션 드라이버(612)는 RX 큐(618)로부터 데이터 패킷들을 판독하고 그리고 번들링해제 모듈(614)은 번들링된 패킷들을 무선 스택(608)으로 전송하기 위한 개별적인 패킷들로 분리한다.
일 특징에 따라, 데이터는 두 개의 프로세서들(602 및 604) 사이에서의 전송을 위한 TX 큐(634 또는 616)에서 결합될 수 있다. 즉, 각각의 데이터 패킷을 전송하는 것보다 TX 큐(616 또는 634)에 각각의 데이터 패킷이 도달하는 바와 같이, 인텔리전트 스케줄러(626 및/또는 642)는 TX 큐(616 또는 634)로 하여금 충분히 많은 수의 패킷들이 축적될 때까지 데이터 패킷들을 축적하게 한다. 그러면 상기 축적되는 데이터 패킷들은 전송 버퍼(606)로 전송을 위한 단일 패킷으로서 그룹핑되거나 또는 번들링된다.
일례에 따라, 인텔리전트 스케줄러(626 또는 642)는 데이터 전송이 전송되어야 할 때를 결정하기 위하여 낮고 그리고 높은 큐 레벨들을 활용할 수 있다. 이런 수위표 큐 레벨들은 3G 데이터 레이트들 또는 4G 데이터 레이트들을 구별하기 위하여 조절될 수 있다. 낮고 그리고 높은 큐 레벨들은 TX 큐(616/634)에 축적되는 데이터 패킷들이 전송 버퍼(606)로 언제 전송될 수 있는지를 결정하기 위하여 이용될 수 있다. 예를 들면, 낮은 큐 레벨은 TX 큐(616/634)에 유지되어야 하는 데이터의 최소량을 표시할 수 있는 반면에 높은 큐 레벨은 TX 큐에 유지되어야 하는 데이터의 최대량을 표시할 수 있다.
부가적으로, 타이머(622 또는 644)는 컨텍스트들 사이에서의 전송 이전에 대이터의 결합을 용이하게 하기 위하여 또한 활용될 수 있다. 최대 타임아웃 값(타이머(622 또는 644)에 의하여 트랙킹되는 바와 같이)은 데이터가 TX 큐(616/634)에서 긴 시간 동안 유지되지 못하도록 활용될 수 있다. 일례에서, 타임 아웃 값(타이머(622/644)에 의하여 트랙킹됨)은 경험적으로 결정될 수 있거나 또는 타이머 타임아웃 값 대 달성된 데이터 스루풋을 플롯팅하는 그래프 상에 굴곡점을 위치시킴으로써 튜닝될 수 있다. 일 경우에서, 스루풋의 피크 값은 최적의 타임아웃 값을 획득하기 위하여 이용되고, 이는 개선된 프로세서 유휴 시간 성능을 이끌어낸다 (예컨대, 듀얼 프로세서 아키텍처에서 제 1 프로세서(602) 및/또는 제 2 프로세서(604)에 대하여).
도 7은 제 1 프로세서 및 제 2 프로세서를 포함하고 그리고 공유 메모리를 이용하여 상기 두 개의 프로세서들 사이에서 데이터 패킷들을 효율적으로 전송하도록 적응되는 디바이스를 도시하는 블록도이다. 예를 들어, 디바이스(700)는 이를 테면, 무선 통신 디바이스와 같은 액세스 단말일 수 있다. 제 1 프로세서(702)는 통신 인터페이스(714)에 커플링되는 프로세싱 회로(708)를 포함할 수 있다. 프로세싱 회로(708)는 서로 간에 데이터를 전송하기 위하여 송신 큐(716) 및/또는 수신 큐(718)를 활용할 수 있는 상호접속 드라이버(712)와 펑션 드라이버(710)를 구현하거나 또는 포함할 수 있다. 송신 큐(716)와 수신 큐(718)는 제 1 프로세서(702) 내에서 구현될 수 있고, 외부 메모리 디바이스에서 구현될 수 있거나 또는 심지어 공유 메모리(706)에서 구현될 수 있다는 것을 주목한다. 유사하게, 제 2 프로세서(704)는 통신 인터페이스(726)에 커플링되는 프로세싱 회로(720)를 포함할 수 있다. 프로세싱 회로(720)는 서로 간에 데이터를 전송하기 위하여 송신 큐(730) 및/또는 수신 큐(728)를 활용할 수 있는 상호접속 드라이버(724)와 펑션 드라이버(722)를 구현하거나 또는 포함할 수 있다. 송신 큐(730)와 수신 큐(728)는 제 2 프로세서(704) 내에서 구현될 수 있고, 외부 메모리 디바이스에서 구현될 수 있거나 또는 심지어 공유 메모리(706)에서 구현될 수 있다는 것을 주목한다.
일 특징에 따라, 프로세싱 회로(708)는: (a) 데이터 패킷들을 패킷 번들로 결합시키고; 그리고/또는 (b) 공유 메모리(706)를 통하여 상기 패킷 번들을 상기 제 2 프로세서(704)로 전송할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱하도록 적응되고, 상기 제 1 프로세서(702)의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 의하여 감소된다. 제 1 프로세서(702)는 다중 층들에 걸쳐 펑션들을 구현할 수 있고 그리고 상기 펑션들 사이의 컨텍스트 스위칭을 수행한다. 프로세싱 회로(708)는 송신 큐(716)와 수신 큐(718)를 통하여 서로 간에 데이터를 전송하는 상호접속 드라이버(712)와 펑션 드라이버(710)를 구현할 수 있다. 이런 예에서, 펑션 드라이버(710)와 상호접속 드라이버(712) 사이에서의 데이터 패킷들을 전송하기 위하여 다중 컨텍스트 스위치들을 활용하는 것보다는 오히려 단일 컨텍스트 스위치 (예컨대, 컨텍스트 A로부터 컨텍스트 B로)는 패킷 번들을 전송하도록 이용될 수 있고, 이에 의하여 제 1 프로세서(702)의 프로세싱 로드는 감소한다. 패킷 번들의 이용은 펑션 드라이버(722)와 상호접속 드라이버(724) 사이에서 단일 컨텍스트 스위치 (예컨대, 컨텍스트 C 로/로부터 컨텍스트 D)의 이용을 또한 허용하고, 이에 의하여 제 2 프로세서(704)의 프로세싱 로드는 감소한다.
일 구현에서, 상호접속 드라이버(712)는 송신 큐(716)에서의 데이터 패킷들의 결합을 제어하고 그리고 제 2 프로세서(704)로의 패킷 번들의 전송을 스케줄링한다. 다른 예에서, 펑션 드라이버(710)는 송신 큐(716)에서의 데이터 패킷들의 결합을 제어할 수 있고 그리고 제 2 프로세서(704)로의 결합된 데이터 패킷들의 전송을 스케줄링한다. 펑션 드라이버(722) 및/또는 상호접속 드라이버(724)에서 데이터 패킷 결합을 지시하거나 또는 제어하는 것의 한가지 이점은 이러한 결합은 낮은 레벨 또는 동작 시스템의 층에서 발생한다는 것이다. 결과적으로, 이러한 결합은 더 높은 레벨들에서의 네트워킹 스택 및/또는 애플리케이션들에서 명쾌하다(transparent).
송신 큐(716) 및/또는 수신 큐(718)는 공유 메모리(706) 내에서 구현될 수 있거나 또는 제 1 프로세서(702) 내에서 구현될 수 있다.
다른 특징에 따라, 프로세싱 회로(708)는: (a) 단일 컨텍스트 스위치에서 상기 제 2 프로세서(704)로부터 공유 메모리(706)를 통하여 패킷 번들을 획득하고, 상기 패킷 번들은 모은 데이터 패킷들을 포함하며; 그리고/또는 (b) 복수의 데이터 패킷들로 상기 패킷 번들을 번들링 해제하고, 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의하여 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 의하여 감소되도록 적응될 수 있다. 일례에서, 프로세싱 회로는 데이터 번들이 제 2 프로세서(704)로부터 전송됨을 표시하는 인터럽트를 수신하도록 적응될 수 있다. 제 2 프로세서(704)의 프로세싱 로드는 패킷 번들로의 데이터 패킷들의 집합으로 인하여 감소된다.
결과적으로, 제 1 프로세서(702), 제 2 프로세서(704) 및 공유 메모리(706)를 포함하는 액세스 단말이 제공된다. 제 1 프로세서(702)는 패킷 번들로 복수의 데이터 패킷들을 결합시키도록 적응될 수 있다. 공유 메모리는 제 1 프로세서에 커플링될 수 있고 그리고 제 2 프로세서(704)로 패킷 번들을 전송하기 위하여 제 1 프로세서에 의하여 이용될 수 있고, 상기 패킷 번들의 전송은 제 1 프로세서(702)에 의하여 단일 컨텍스트 스위치에서 수행된다. 제 2 프로세서(704)는 공유 메모리에 또한 커플링될 수 있고 그리고 공유 메모리로부터 패킷 번들을 획득하고 상기 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하도록 적응될 수 있고, 제 2 프로세서(704)의 프로세싱 로드는 제 1 프로세서(702)에 의하여 패킷 번들로의 데이터 패킷들의 결합으로 인하여 감소된다.
부가적으로, 제 2 프로세서(704)는 제 2 패킷 번들로 제 2 복수의 데이터 패킷들을 결합시키고 공유 메모리(706)를 이용하여 제 2 프로세서(704)로부터 제 1 프로세서(702)로 상기 제 2 패킷 번들을 전송하도록 추가로 적응될 수 있고, 상기 패킷 번들의 전송은 제 2 프로세서(704)에 의하여 단일 컨텍스트 스위치에서 수행된다. 제 1 프로세서(702)는 제 1 프로세서(702)에서 상기 제 2 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하도록 추가로 적응될 수 있고, 제 1 프로세서(702)의 프로세싱 로드는 제 2 프로세서(704)에 의하여 상기 제 2 패킷 번들로의 데이터 패킷들의 결합으로 인하여 감소된다.
본 명세서에 기술되는 데이터 결합 기법들은 다중-프로세서 시스템, 회로, 또는 디바이스에서 구현될 수 있다. 그러므로, 이러한 데이터 결합은 N 개의 프로세서들 중에서 구현될 수 있고, 여기서 N은 2 이상이다.
도 8은 번들링된 데이터를 제 2 프로세서로 전송하기 위하여 제 1 프로세서에서의 동작 방법을 도시한다. 제 1 프로세서는 패킷 번들로 데이터 패킷들을 모을 수 있다 (802). 공유 메모리를 통하여 패킷 번들을 제 2 프로세서로 전송할 때 패킷 번들은 단일 컨텍스트 스위치에서 프로세싱될 수 있고, 제 1 프로세서의 프로세싱 로드는 패킷 번들로의 데이터 패킷들의 결합에 의하여 감소된다 (804). 제 1 프로세서는 데이터 번들이 제 2 프로세서에 전송됨을 표시하는 인터럽트를 발생시킬 수 있다 (806). 제 2 프로세서의 프로세싱 로드는 패킷 번들로의 데이터 패킷들의 결합에 의하여 감소될 수 있다. 패킷 번들로의 데이터 패킷들의 결합은 제 1 프로세서 및/또는 제 2 프로세서에서 컨텍스트 스위칭을 또한 감소시킨다. 예를 들면, 제 1 프로세서에서의 컨텍스트 스위칭은 더 적은 데이터 전송 동작들이 동일한 양의 데이터 패킷들에 대하여 상기 제 1 프로세서에 의하여 수행되도록 상기 데이터 패킷들을 패킷 번들로 결합으로써 감소될 수 있다. 컨텍스트 스위치는 다중 펑션들에 의하여 프로세싱 리소스의 인터리빙된 공유일 수 있다.
하나 이상의 트리거들의 발생 시, 패킷 번들은 상기 제 2 프로세서로 전송될 수 있고, 상기 하나 이상의 트리거들은:
(a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전송들 사이의 최대 시간량에 기초하는 타임아웃 트리거;
(b) 상기 데이터 패킷들이 상기 패킷 번들로 모아지는 송신 큐에 대한 크기에 기초하는 큐 레벨 트리거;
(c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전송하기 위하여 이용되는 상기 공유 메모리 내의 전송 버퍼의 이용에 기초하는 버퍼 이용 트리거;
(d) 상기 제 2 프로세서에 대하여 상기 로드에 기초하는 로드 트리거; 또는
(e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거 중 적어도 하나를 포함할 수 있다.
일례에 따라, 제 1 프로세서는 다중 층들에 걸쳐 펑션들을 구현할 수 있고 그리고 상기 펑션들 사이의 컨텍스트 스위칭을 수행한다. 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함할 수 있다. 일 구현에서, 상기 상호접속 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다. 다른 예에서, 상기 펑션 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다.
도 9는 제 2 프로세서로 번들링된 데이터를 수신하기 위하여 제 1 프로세서에서의 동작 방법을 도시한다. 제 1 프로세서는 데이터 번들이 제 2 프로세서로부터 전송됨을 표시하는 인터럽트를 수신할 수 있다. 이러한 인터럽트에 응답하여, 제 1 프로세서는 단일 컨텍스트 스위치에서 제 2 프로세서로부터 공유 메모리를 통하여 패킷 번들을 획득할 수 있고, 상기 패킷 번들은 결합된 데이터 패킷들을 포함한다 (904). 그리고 나서 제 1 프로세서는 상기 패킷 번들을 복수의 데이터 패킷들로 번들링 해제할 수 있고, 제 1 프로세서의 프로세싱 로드는 제 2 프로세서에 의하여 패킷 번들로의 데이터 패킷들의 결합에 의하여 감소된다 (906). 제 2 프로세서의 프로세싱 로드는 패킷 번들로의 데이터 패킷들의 결합에 의하여 또한 감소된다. 제 1 프로세서는 다중 층들에 걸쳐 펑션들을 구현하고 그리고 상기 펑션들 사이의 컨텍스트 스위칭을 수행하며, 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함한다.
도 10은 듀얼 프로세서들 사이에서 데이터 패킷들을 더욱 효율적으로 전송하기 위하여 듀얼 프로세서 액세스 단말에서의 동작 방법을 도시한다. 제 1 특징에 따라 복수의 데이터 패킷들은 제 1 프로세서에서 패킷 번들로 결합될 수 있다. 제 1 프로세서는 그리고나서 공유 메모리를 이용하여 제 2 프로세서로 패킷 번들을 전송하고, 상기 패킷 번들의 전송은 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행된다. 제 1 프로세서는 패킷 번들이 제 1 프로세서로부터 전송됨을 표시하는 인터럽트를 발생시킬 수 있고, 제 2 프로세서는 이를 수신할 수 있으며, 제 2 프로세서에서의 인터럽트들의 개수는 제 1 프로세서에서의 데이터 패킷들의 결합에 의하여 감소된다 (1006). 그리고 나서 제 2 프로세서는 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하고, 제 2 프로세서의 프로세싱 로드는 제 1 프로세서에 의하여 패킷 번들로의 데이터 패킷들의 결합에 의하여 감소된다 (1008). 일 구현에서, 제 1 프로세서는 애플리케이션 프로세서일 수 있고, 제 2 프로세서는 모뎀 프로세서일 수 있고, 둘 모두의 프로세서들은 무선 통신 디바이스 내에서 동작한다는 것을 주목한다. 일 구현에서, 제 2 프로세서는 애플리케이션 프로세서일 수 있고 제 1 프로세서는 모뎀 프로세서일 수 있으며, 무선 통신 디바이스와 함께 동작한다.
또 다른 특징에 따라, 패킷 번들은 하나 이상의 트리거들의 발생 시 제 2 프로세서로 전송될 수 있다. 하나 이상의 트리거들은:
(a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전송들 사이의 최대 시간량에 기초하는 타임아웃 트리거;
(b) 상기 데이터 패킷들이 상기 패킷 번들로 결합되는 송신 큐에 대한 크기에 기초하는 큐 레벨 트리거;
(c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전송하기 위하여 이용되는 상기 공유 메모리 내의 전송 버퍼의 이용에 기초하는 버퍼 이용 트리거;
(d) 상기 제 2 프로세서에 대하여 상기 로드에 기초하는 로드 트리거; 또는
(e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거 중 적어도 하나를 포함할 수 있다.
제 1 프로세서와 제 2 프로세서는 다중 층들에 걸쳐 펑션들을 구현할 수 있고 그리고 제 1 및 제 2 프로세서들 각각에서의 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전송하는 상호접속 드라이버 및 펑션 드라이버를 포함할 수 있다. 제 1 예에서, 상기 상호접속 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다. 제 2 예에서, 상기 펑션 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어할 수 있고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전송을 스케줄링한다.
본 방법은 제 2 프로세서에서 제 2 패킷 번들로 제 2 복수의 데이터 패킷들을 결합시키는 단계를 더 포함한다(1010). 제 2 패킷 번들은 그리고나서 공유 메모리를 통하여 제 2 프로세서로부터 제 1 프로세서로 전송되고, 상기 패킷 번들의 전송은 제 2 프로세서에서의 단일 컨텍스트 스위치에서 수행된다(1012). 그리고나서 제 2 프로세서는 패킷 번들이 제 2 프로세서로부터 전송됨을 표시하는 인터럽트를 발생시킬 수 있고, 제 1 프로세서는 이를 수신할 수 있으며, 제 1 프로세서에서의 인터럽트들의 개수는 제 2 프로세서에서의 데이터 패킷들의 결합에 의하여 감소된다(1014). 그리고 나서 제 1 프로세서는 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하고, 제 1 프로세서의 프로세싱 로드는 제 2 프로세서에 의하여 패킷 번들로의 데이터 패킷들의 결합에 의하여 감소된다(1016).
본 개시에서 기술되는 프로세싱의 대부분은 일반적으로, 유사한 방식으로 구현될 수 있다는 것이 인식되어야 한다. 임의의 회로(들) 또는 회로 섹션들은 하나 이상의 프로세서들을 갖는 집적 회로의 부분으로서 결합하거나 또는 단독으로 구현될 수 있다. 본 회로들 중 하나 이상은 집적 회로, 진보 RISC 기계 (ARM) 프로세서, 디지털 신호 프로세서(DSP), 범용 프로세서, 등에서 구현될 수 있다.
또한, 실시예들은 플로우차트, 플로우 다이어그램, 구조도, 또는 블록도로서 도시되는 프로세스로서 기술될 수 있다는 것이 주목된다. 플로우차트가 순서가 있는(sequential) 프로세스로서 동작들을 기술할 수 있다고 하더라도, 동작들의 대부분은 병렬로 또는 동시에 수행될 수 있다. 게다가, 동작들의 순서는 재-배열될 수 있다. 프로세스는 프로세스의 동작들이 완료될 때 종료된다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램, 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 프로세스의 종료는 콜(calling) 함수 또는 메인 함수로의 함수의 리턴에 대응한다.
본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "모듈" 및 "시스템" 등은 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어 또는 실행 소프트웨어, 컴퓨터-관련 엔티티들을 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에 실행되는 프로세스, 프로세서, 객체, 실행가능물(executable), 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있으나 이에 한정되지는 않는다. 예를 들어, 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 및 컴퓨팅 디바이스 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 존재할 수 있으며, 컴포넌트는 하나의 컴퓨터 상에 로컬화되거나(localized) 그리고/또는 둘 이상의 컴퓨터들 사이에 분산될 수 있다. 또한, 이러한 컴포넌트들은 다양한 데이터 구조들이 저장되는 다양한 컴퓨터 판독가능한 매체로부터 실행될 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통한 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.
게다가, 저장 매체는 데이터 저장을 위한 하나 이상의 디바이스들을 나타낼 수 있는데, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래쉬 메모리 디바이스들 및/또는 정보를 저장하기 위한 다른 기계 판독가능한 매체들을 포함한다. 용어 "기계 판독가능한 매체"는 휴대용 또는 고정 저장 디바이스들, 광학 저장 디바이스들, 무선 채널들 및 명령(들) 및/또는 데이터를 저장하고, 포함하거나 이송(carry)할 수 있는 다양한 다른 매체들을 포함하지만, 이에 제한되는 것은 아니다.
더욱이, 실시예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로웨어, 또는 이들의 임의의 결합에 의하여 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로웨어로 구현될 때, 필요한 태스크(task)들을 수행하기 위하여 프로그램 코드 또는 코드 세그먼트들은 이를 테면 저장 매체 또는 다른 매체(들)과 같은 기계 판독가능한 매체에 저장될 수 있다. 프로세서는 필요한 태스크들을 수행할 수 있다. 코드 세그먼트는 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들의 임의의 결합, 데이터 구조들, 또는 프로그램 스테이트먼트들을 대표할 수 있다. 코드 세그먼트는 정보, 데이터, 아규먼트들, 파라미터들, 또는 메모리 컨텐츠들을 패싱하고 그리고/또는 수신함으로써 하드웨어 회로 또는 다른 코드 세그먼트에 커플링될 수 있다. 정보, 아규먼트들, 파라미터들, 데이터, 등은 메모리 공유, 메시지 공유, 토큰 패싱, 네트워크 송신, 등을 포함하는 임의의 적절한 수단을 통하여 패싱, 포워딩, 송신될 수 있다.
도면들에 도시되는 컴포넌트들, 단계들, 및/또는 함수들 중 하나 이상은 재배열되고 그리고/또는 단일 컴포넌트, 단계, 또는 함수로 결합되거나 또는 몇몇의 컴포넌트들, 단계들, 또는 함수들에서 구현될 수 있다. 부가적인 엘리먼트들, 컴포넌트들, 단계들, 및/또는 함수들은 본 발명으로부터 벗어남이 없이 또한 부가될 수 있다. 도면들에 도시되는 장치, 디바이스들, 및/또는 컴포넌트들은 도면들에 도시되는 단계들, 특징들, 방법들 중 하나 이상으로 수행되도록 구성될 수 있다. 몇몇의 구현들에서, 본 명세서에 기술되는 신규한 알고리즘들은 소프트웨어 및/또는 하드웨어로 효율적으로 구현될 수 있다.
당업자는 본 명세서에서 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있음을 잘 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 상기에 일반적으로 기술되었다. 이러한 기능이 하드웨어로 구현되는지, 또는 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 대해 부가된 설계 제한들에 의존한다.
본 명세서에 기술되는 다양한 특징들은 본 발명으로부터 벗어남이 없이 상이한 시스템들에서 구현될 수 있다. 앞선 실시예들은 단순히 예이지 이에 제한 되도록 해석되지 않는다는 것이 주목되어야 한다. 실시예들의 설명은 예시적인 것으로 의도되고, 청구범위를 제한하지 않도록 의도된다. 이와 같이, 본 가르침들은 다른 타입들의 장치들에 쉽사리 적용될 수 있고 그리고 많은 대안들, 변형들, 및 변경들은 당업자에게 자명할 것이다.

Claims (42)

  1. 데이터를 제 2 프로세서로 전송하기 위한 제 1 프로세서에서의 동작 방법으로서,
    데이터 패킷들을 패킷 번들로 결합(aggregate)시키는 단계; 및
    공유 메모리를 통하여 상기 패킷 번들을 상기 제 2 프로세서로 전달할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱하는 단계 - 상기 제 1 프로세서의 프로세싱 로드(load)는 상기 패킷 번들로의 상기 데이터 패킷들의 결합(aggregation)에 기인하여 감소됨 -;
    상기 패킷 번들의 전달과 연관된 상기 프로세싱을 중지(suspend)하는 단계; 및
    다른 프로세스를 위한 동작들을 수행하기 위해 컨텍스트 스위칭하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 2 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    방법.
  3. 제 1 항에 있어서,
    상기 데이터 패킷들을 상기 패킷 번들로 결합시키는 단계는 상기 제 2 프로세서에서 컨텍스트 스위칭을 또한 감소시키는,
    방법.
  4. 제 1 항에 있어서,
    컨텍스트 스위치는 다수의 펑션(function)들에 의한 프로세싱 리소스의 인터리빙된 공유인,
    방법.
  5. 제 1 항에 있어서,
    상기 제 1 프로세서에서의 컨텍스트 스위칭은 더 적은 데이터 전달 동작들이 동일한 양의 데이터 패킷들에 대하여 상기 제 1 프로세서에 의하여 수행되도록 상기 데이터 패킷들을 패킷 번들로 결합시킴으로써 감소되는,
    방법.
  6. 제 1 항에 있어서,
    상기 패킷 번들은 하나 이상의 트리거(trigger)들의 발생시 상기 제 2 프로세서로 전달되고, 상기 하나 이상의 트리거들은:
    (a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전달들 사이의 최대 시간량에 기초하는 타임아웃 트리거;
    (b) 상기 데이터 패킷들이 상기 패킷 번들로 결합되는 송신 큐(queue)에 대한 크기에 기초하는 큐 레벨 트리거;
    (c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전달하기 위하여 이용되는 상기 공유 메모리 내의 전달 버퍼의 이용에 기초하는 버퍼 이용 트리거;
    (d) 상기 제 2 프로세서에 대한 로드에 기초하는 로드 트리거; 또는
    (e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거
    중 적어도 하나를 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 제 1 프로세서는 다수의 층(layer)들에 걸쳐 펑션들을 구현하고 그리고 상기 펑션들 사이에서 컨텍스트 스위칭을 수행하는,
    방법.
  8. 제 7 항에 있어서,
    상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전달하는 상호접속 드라이버 및 펑션 드라이버를 포함하는,
    방법.
  9. 제 8 항에 있어서,
    상기 상호접속 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전달을 스케줄링하는,
    방법.
  10. 제 8 항에 있어서,
    상기 펑션 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전달을 스케줄링하는,
    방법.
  11. 제 1 프로세서로서,
    제 2 프로세서와 데이터를 교환하기 위한 통신 인터페이스;
    상기 통신 인터페이스와 커플링되는 프로세싱 회로를 포함하고,
    상기 프로세싱 회로는:
    데이터 패킷들을 패킷 번들로 결합시키고;
    공유 메모리를 통하여 상기 패킷 번들을 상기 제 2 프로세서로 전달할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱하고 - 상기 제 1 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 -;
    상기 패킷 번들의 전달과 연관된 상기 프로세싱을 중지하고; 그리고
    다른 프로세스를 위한 동작들을 수행하기 위해 컨텍스트 스위칭하도록 적응되는,
    제 1 프로세서.
  12. 제 11 항에 있어서,
    상기 제 1 프로세서는 다수의 층들에 걸쳐 펑션들을 구현하고 그리고 상기 펑션들 사이에서 컨텍스트 스위칭을 수행하는,
    제 1 프로세서.
  13. 제 11 항에 있어서,
    상기 프로세싱 회로는 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전달하는 상호접속 드라이버 및 펑션 드라이버를 구현하는,
    제 1 프로세서.
  14. 제 13 항에 있어서,
    상기 상호접속 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전달을 스케줄링하는,
    제 1 프로세서.
  15. 제 13 항에 있어서,
    상기 펑션 드라이버는 상기 송신 큐에서 상기 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 결합된 데이터 패킷들의 전달을 스케줄링하는,
    제 1 프로세서.
  16. 제 13 항에 있어서,
    상기 송신 큐 및 상기 수신 큐는 상기 공유 메모리 내에서 구현되는,
    제 1 프로세서.
  17. 제 13 항에 있어서,
    상기 송신 큐 및 상기 수신 큐는 상기 제 1 프로세서 내에서 구현되는,
    제 1 프로세서.
  18. 제 1 프로세서로서,
    제 2 프로세서와 데이터를 교환하기 위한 수단;
    데이터 패킷들을 패킷 번들로 결합시키기 위한 수단;
    공유 메모리를 통하여 상기 패킷 번들을 상기 제 2 프로세서로 전달할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱하기 위한 수단 - 상기 제 1 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 -;
    상기 패킷 번들의 전달과 연관된 상기 프로세싱을 중지하기 위한 수단; 및
    다른 프로세스를 위한 동작들을 수행하기 위해 컨텍스트 스위칭하기 위한 수단을 포함하는,
    제 1 프로세서.
  19. 제 2 프로세서와 데이터를 교환하기 위해 제 1 프로세서 상에서 동작하는 명령들을 포함하는 기계-판독가능한 매체로서, 상기 명령들은 하나 이상의 프로세서들에 의하여 실행될 때 상기 프로세서들로 하여금:
    데이터 패킷들을 패킷 번들로 결합시키게 하고;
    공유 메모리를 통하여 상기 패킷 번들을 상기 제 2 프로세서로 전달할 때 단일 컨텍스트 스위치에서 상기 패킷 번들을 프로세싱하게 하고 - 상기 제 1 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 -;
    상기 패킷 번들의 전달과 연관된 상기 프로세싱을 중지하게 하고; 그리고
    다른 프로세스를 위한 동작들을 수행하기 위해 컨텍스트 스위칭하게 하는,
    기계-판독가능한 매체.
  20. 제 2 프로세서로부터 데이터 전달들을 수신하기 위한 제 1 프로세서에서의 동작 방법으로서,
    단일 컨텍스트 스위치에서 상기 제 2 프로세서로부터 공유 메모리를 통하여 패킷 번들을 획득하는 단계 ― 상기 패킷 번들은 결합된 데이터 패킷들을 포함함 ―;
    다른 컨텍스트로 스위칭하는 단계; 및
    상기 패킷 번들을 복수의 데이터 패킷들로 번들링 해제(unbundling)하는 단계 ― 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 ― 를 포함하는,
    방법.
  21. 제 20 항에 있어서,
    상기 데이터 번들이 상기 제 2 프로세서로부터 전달됨을 표시하는 인터럽트를 수신하는 단계를 더 포함하는,
    방법.
  22. 제 20 항에 있어서,
    상기 제 2 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    방법.
  23. 제 20 항에 있어서,
    상기 제 1 프로세서는 다수의 층들에 걸쳐 펑션들을 구현하고 그리고 상기 펑션들 사이에서 컨텍스트 스위칭을 수행하며, 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전달하는 상호접속 드라이버 및 펑션 드라이버를 포함하는,
    방법.
  24. 제 1 프로세서로서,
    제 2 프로세서와 데이터를 교환하기 위한 통신 인터페이스; 및
    상기 통신 인터페이스에 커플링되는 프로세싱 회로
    를 포함하고, 상기 프로세싱 회로는,
    단일 컨텍스트 스위치에서 상기 제 2 프로세서로부터 공유 메모리를 통하여 패킷 번들을 획득하고 ― 상기 패킷 번들은 결합된 데이터 패킷들을 포함함 ―;
    다른 컨텍스트로 스위칭하고; 그리고
    복수의 데이터 패킷들로 상기 패킷 번들을 번들링 해제 ― 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 ― 하도록 적응되는,
    제 1 프로세서.
  25. 제 24 항에 있어서,
    상기 프로세싱 회로는 상기 데이터 번들이 상기 제 2 프로세서로부터 전달됨을 표시하는 인터럽트를 수신하도록 추가로 적응되는,
    제 1 프로세서.
  26. 제 24 항에 있어서,
    상기 제 2 프로세서의 프로세싱 로드는 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    제 1 프로세서.
  27. 제 24 항에 있어서,
    상기 제 1 프로세서는 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전달하는 상호접속 드라이버 및 펑션 드라이버를 구현하는,
    제 1 프로세서.
  28. 제 1 프로세서로서,
    제 2 프로세서와 데이터를 교환하기 위한 수단;
    단일 컨텍스트 스위치에서 상기 제 2 프로세서로부터 공유 메모리를 통하여 패킷 번들을 획득하기 위한 수단 ― 상기 패킷 번들은 결합된 데이터 패킷들을 포함함 ―;
    다른 컨텍스트로 스위칭하기 위한 수단; 및
    상기 패킷 번들을 복수의 데이터 패킷들로 번들링 해제하기 위한 수단
    을 포함하고,
    상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    제 1 프로세서.
  29. 제 2 프로세서로부터 데이터 전달들을 수신하기 위해 제 1 프로세서 상에서 동작하는 명령들을 포함하는 기계-판독가능한 매체로서, 상기 명령들은 하나 이상의 프로세서들에 의하여 실행될 때 상기 프로세서들로 하여금:
    단일 컨텍스트 스위치에서 상기 제 2 프로세서로부터 공유 메모리를 통하여 패킷 번들을 획득하게 하고 ― 상기 패킷 번들은 결합된 데이터 패킷들을 포함함 ―;
    다른 컨텍스트로 스위칭하게 하고; 그리고
    상기 패킷 번들을 복수의 데이터 패킷들로 번들링 해제 ― 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 ― 하게 하는,
    기계-판독가능한 매체.
  30. 제 1 프로세서로부터 제 2 프로세서로 데이터를 전달하기 위한 방법으로서,
    상기 제 1 프로세서에서 복수의 데이터 패킷들을 패킷 번들로 결합시키는 단계;
    공유 메모리를 이용하여 상기 제 1 프로세서로부터 상기 제 2 프로세서로 상기 패킷 번들을 전달하는 단계 ― 상기 패킷 번들의 전달은 다른 프로세스를 위한 동작들을 수행하기 위해 상기 패킷 번들의 전달과 연관된 프로세스가 중지되기 전에 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행됨 ―; 및
    상기 제 2 프로세서에서 상기 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하는 단계를 포함하며,
    상기 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    방법.
  31. 제 30 항에 있어서,
    상기 패킷 번들이 상기 제 1 프로세서로부터 전달됨을 표시하는 인터럽트를 상기 제 2 프로세서에서 수신하는 단계를 더 포함하고, 상기 제 2 프로세서에서의 인터럽트들의 개수는 상기 제 1 프로세서에서의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    방법.
  32. 제 30 항에 있어서,
    상기 제 1 프로세서는 애플리케이션 프로세서이고 그리고 상기 제 2 프로세서는 모뎀 프로세서이며, 두 프로세서들 모두는 무선 통신 디바이스 내에서 동작하는,
    방법.
  33. 제 30 항에 있어서,
    상기 제 2 프로세서는 애플리케이션 프로세서이고 그리고 상기 제 1 프로세서는 모뎀 프로세서이며, 두 프로세서들 모두는 무선 통신 디바이스 내에서 동작하는,
    방법.
  34. 제 30 항에 있어서,
    상기 패킷 번들은 하나 이상의 트리거들의 발생시 상기 제 2 프로세서로 전달되고, 상기 하나 이상의 트리거들은:
    (a) 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 패킷 번들들의 연속적인 전달들 사이의 최대 시간량에 기초하는 타임아웃 트리거;
    (b) 상기 데이터 패킷들이 상기 패킷 번들로 결합되는 송신 큐에 대한 크기에 기초하는 큐 레벨 트리거;
    (c) 상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 상기 패킷 번들을 전달하기 위하여 이용되는 상기 공유 메모리 내의 전달 버퍼의 이용에 기초하는 버퍼 이용 트리거;
    (d) 상기 제 2 프로세서에 대한 로드에 기초하는 로드 트리거; 또는
    (e) 상기 제 2 프로세서가 무선 네트워크를 거쳐 정보를 송신하는 데이터 레이트에 기초하는 최소 데이터 레이트 트리거
    중 적어도 하나를 포함하는,
    방법.
  35. 제 30 항에 있어서,
    상기 제 1 프로세서와 제 2 프로세서들 각각은 다수의 층들에 걸쳐 펑션들을 구현하고, 상기 제 1 및 제 2 프로세서들 각각에서의 상기 펑션들은 송신 큐 및 수신 큐를 통하여 서로 간에 데이터를 전달하는 상호접속 드라이버 및 펑션 드라이버를 포함하는,
    방법.
  36. 제 35 항에 있어서,
    상기 상호접속 드라이버는 상기 송신 큐에서 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전달을 스케줄링하는,
    방법.
  37. 제 35 항에 있어서,
    상기 펑션 드라이버는 상기 송신 큐에서 데이터 패킷들의 결합을 제어하고 그리고 상기 제 2 프로세서로의 상기 패킷 번들의 전달을 스케줄링하는,
    방법.
  38. 제 30 항에 있어서,
    상기 제 2 프로세서에서 복수의 제 2 데이터 패킷들을 제 2 패킷 번들로 결합시키는 단계;
    상기 공유 메모리를 이용하여 상기 제 2 프로세서로부터 상기 제 1 프로세서로 상기 제 2 패킷 번들을 전달하는 단계 ― 상기 패킷 번들의 상기 전달은 상기 제 2 프로세서에서의 단일 컨텍스트 스위치에서 수행됨 ―; 및
    상기 제 1 프로세서에서 상기 제 2 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하는 단계를 더 포함하며,
    상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 제 2 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    방법.
  39. 액세스 단말로서,
    복수의 데이터 패킷들을 패킷 번들로 결합시키도록 적응되는 제 1 프로세서;
    상기 제 1 프로세서에 커플링되는 공유 메모리 ― 상기 공유 메모리는 다른 프로세서로 상기 패킷 번들을 전달하기 위하여 상기 제 1 프로세서에 의하여 이용되고, 상기 패킷 번들의 전달은 다른 프로세스를 위한 동작들을 수행하기 위해 상기 패킷 번들의 전달과 연관된 프로세스가 중지되기 전에 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행됨 ―;
    상기 공유 메모리에 커플링되는 제 2 프로세서 ― 상기 제 2 프로세서는 상기 공유 메모리로부터 상기 패킷 번들을 획득하고 그리고 상기 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하도록 적응되며, 상기 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 ― 를 포함하는,
    액세스 단말.
  40. 제 39 항에 있어서,
    상기 제 2 프로세서는 복수의 제 2 데이터 패킷들을 제 2 패킷 번들로 결합시키고 그리고 상기 공유 메모리를 이용하여 상기 제 2 프로세서로부터 상기 제 1 프로세서로 상기 제 2 패킷 번들을 전달하도록 추가로 적응되며, 상기 패킷 번들의 전달은 상기 제 2 프로세서에 의하여 단일 컨텍스트 스위치에서 수행되고, 그리고
    상기 제 1 프로세서는 상기 제 1 프로세서에서 상기 제 2 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하도록 추가로 적응되고, 상기 제 1 프로세서의 프로세싱 로드는 상기 제 2 프로세서에 의한 상기 제 2 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    액세스 단말.
  41. 액세스 단말로서,
    제 1 프로세서에서 복수의 데이터 패킷들을 패킷 번들로 결합시키기 위한 수단;
    상기 제 1 프로세서로부터 상기 제 2 프로세서로 상기 패킷 번들을 전달하기 위한 메모리 수단 ― 상기 패킷 번들의 전달은 다른 프로세스를 위한 동작들을 수행하기 위해 상기 패킷 번들의 전달과 연관된 프로세스가 중지되기 전에 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행됨 ―; 및
    공유 메모리로부터 상기 패킷 번들을 획득하고 그리고 제 2 프로세서에서 상기 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제하기 위한 수단
    을 포함하고,
    상기 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소되는,
    액세스 단말.
  42. 제 1 프로세서와 제 2 프로세서 사이에서 효율적으로 데이터를 전달하기 위해 액세스 단말 상에서 동작하는 명령들을 포함하는 기계-판독가능한 매체로서, 상기 명령들은 하나 이상의 프로세서들에 의하여 실행될 때 상기 프로세서들로 하여금:
    상기 제 1 프로세서에서 복수의 데이터 패킷들을 패킷 번들로 결합시키게 하고;
    공유 메모리를 이용하여 상기 제 1 프로세서로부터 상기 제 2 프로세서로 상기 패킷 번들을 전달하게 하고 ― 상기 패킷 번들의 전달은 다른 프로세스를 위한 동작들을 수행하기 위해 상기 패킷 번들의 전달과 연관된 프로세스가 중지되기 전에 상기 제 1 프로세서에서의 단일 컨텍스트 스위치에서 수행됨 ―; 그리고
    상기 제 2 프로세서에서 상기 패킷 번들을 개별적인 데이터 패킷들로 번들링 해제 ― 상기 제 2 프로세서의 프로세싱 로드는 상기 제 1 프로세서에 의한 상기 패킷 번들로의 상기 데이터 패킷들의 결합에 기인하여 감소됨 ― 하게 하는,
    기계-판독가능한 매체.
KR1020117002045A 2008-06-26 2009-06-26 다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들 KR101266324B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7608808P 2008-06-26 2008-06-26
US61/076,088 2008-06-26
US12/491,993 US8588253B2 (en) 2008-06-26 2009-06-25 Methods and apparatuses to reduce context switching during data transmission and reception in a multi-processor device
US12/491,993 2009-06-25
PCT/US2009/048962 WO2009158680A1 (en) 2008-06-26 2009-06-26 Methods and apparatuses to reduce context switching during data transmission and reception in a multi-processor device

Publications (2)

Publication Number Publication Date
KR20110034652A KR20110034652A (ko) 2011-04-05
KR101266324B1 true KR101266324B1 (ko) 2013-05-22

Family

ID=41360106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117002045A KR101266324B1 (ko) 2008-06-26 2009-06-26 다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들

Country Status (7)

Country Link
US (1) US8588253B2 (ko)
EP (1) EP2314024B1 (ko)
JP (2) JP5507556B2 (ko)
KR (1) KR101266324B1 (ko)
CN (1) CN102077527B (ko)
TW (1) TW201032532A (ko)
WO (1) WO2009158680A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295308B2 (en) * 2008-08-15 2012-10-23 Vmware, Inc. Systems and methods of configuring a resource pool as a network end point
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
JP5645928B2 (ja) * 2009-06-19 2014-12-24 コーダ ワイヤレス ピーティーワイ リミテッドCohda Wireless Pty Ltd 無線通信システムにおける環境評価
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US9167618B2 (en) 2010-11-16 2015-10-20 At&T Mobility Ii Llc Data bundling and fast dormancy based upon intelligent application learning
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9197981B2 (en) * 2011-04-08 2015-11-24 The Regents Of The University Of Michigan Coordination amongst heterogeneous wireless devices
EP2923523B1 (en) * 2012-11-23 2018-09-12 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for uplink resource utilization in a telecommunications system
WO2014112975A1 (en) 2013-01-15 2014-07-24 Hewlett-Packard Development Company, L.P. Vertically-tiered client-server architecture
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
KR20150044330A (ko) * 2013-10-16 2015-04-24 삼성전자주식회사 디바이스가 AP(Access Point)로 동작하는 방법, 디바이스의 데이터 전송 방법 및 디바이스
WO2015095000A1 (en) 2013-12-16 2015-06-25 F5 Networks, Inc. Methods for facilitating improved user authentication using persistent data and devices thereof
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US9462571B2 (en) 2014-10-21 2016-10-04 At&T Intellectual Property I, L.P. Adaptive and selective bundling of downlink paging messages
US9860781B2 (en) 2014-10-21 2018-01-02 At&T Intellectual Property I, L.P. Dynamic bundling of uplink data sessions based upon network signaling conditions and application interactivity states
EP3016333B1 (en) * 2014-10-31 2017-12-06 F5 Networks, Inc Handling high throughput and low latency network data packets in a traffic management device
US9801030B2 (en) 2015-07-15 2017-10-24 Qualcomm Incorporated Internal data transfer in EMBMS reception
WO2017023661A1 (en) * 2015-08-03 2017-02-09 Marvell World Trade Ltd. Systems and methods for transmitting interrupts between nodes
US10552350B2 (en) 2015-08-03 2020-02-04 Marvell World Trade Ltd. Systems and methods for aggregating data packets in a mochi system
KR102407917B1 (ko) * 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149725A1 (en) 2003-12-30 2005-07-07 Intel Corporation Method and apparatus for aligning ciphered data
US20050220111A1 (en) 2002-01-15 2005-10-06 Intel Corporation Ingress processing optimization via traffic classification and grouping
US20070106990A1 (en) 2003-08-28 2007-05-10 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05298119A (ja) 1992-04-17 1993-11-12 Mitsubishi Electric Corp マイクロプロセッサのコンテキストスイッチ機構
US5883722A (en) * 1994-09-20 1999-03-16 Oce Printing Systems Gmbh Controller for editing encoded image data
US6487190B1 (en) 1996-06-27 2002-11-26 Interdigital Technology Corporation Efficient multichannel filtering for CDMA modems
US6438137B1 (en) * 1997-12-22 2002-08-20 Nms Communications Corporation Packet-based trunking
JP2000332817A (ja) 1999-05-18 2000-11-30 Fujitsu Ltd パケット処理装置
US7136377B1 (en) * 2000-03-31 2006-11-14 Cisco Technology, Inc. Tunneled datagram switching
US7136935B2 (en) * 2001-06-22 2006-11-14 Inktomi Corporation Efficient data transmissions based on a policy
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
EP1469542A1 (en) * 2003-04-09 2004-10-20 Matsushita Electric Industrial Co., Ltd. Polymer electrolyte fuel cell
WO2004099983A1 (en) 2003-05-08 2004-11-18 Koninklijke Philips Electronics N.V. Threshold on unblocking a processing node that is blocked due to data packet passing
US7412488B2 (en) 2003-06-05 2008-08-12 Nvidia Corporation Setting up a delegated TCP connection for hardware-optimized processing
US20040252721A1 (en) * 2003-06-16 2004-12-16 International Business Machines Corporation Bundled internet protocol packets
GB0318290D0 (en) 2003-08-05 2003-09-10 Koninkl Philips Electronics Nv Shared experience of media content
US20050080930A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for processing service requests in a service-oriented architecture
US7634500B1 (en) * 2003-11-03 2009-12-15 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
JP2005352839A (ja) * 2004-06-11 2005-12-22 Matsushita Electric Ind Co Ltd データ通信装置
US6987961B1 (en) * 2004-06-28 2006-01-17 Neomagic Corp. Ethernet emulation using a shared mailbox between two processors in a feature phone
US7694312B2 (en) * 2004-09-10 2010-04-06 Pleora Technologies Inc. Methods and apparatus for enabling bus connectivity over a data network
US7752325B1 (en) * 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
US20060277267A1 (en) * 2005-05-16 2006-12-07 Simon Lok Unified memory IP packet processing platform
JP4645325B2 (ja) * 2005-06-30 2011-03-09 ソニー株式会社 通信装置および通信システム
US7610330B1 (en) * 2006-03-30 2009-10-27 Packeteer, Inc. Multi-dimensional computation distribution in a packet processing device having multiple processing architecture
US20080101355A1 (en) * 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
JP5022691B2 (ja) * 2006-12-12 2012-09-12 キヤノン株式会社 通信装置、その制御方法及びプログラム
US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8196140B2 (en) * 2008-01-11 2012-06-05 Microsoft Corporation Service function redirection for avoiding function evaluation blockages
US8214845B2 (en) * 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050220111A1 (en) 2002-01-15 2005-10-06 Intel Corporation Ingress processing optimization via traffic classification and grouping
US20070106990A1 (en) 2003-08-28 2007-05-10 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US20050149725A1 (en) 2003-12-30 2005-07-07 Intel Corporation Method and apparatus for aligning ciphered data

Also Published As

Publication number Publication date
US8588253B2 (en) 2013-11-19
EP2314024B1 (en) 2016-05-18
TW201032532A (en) 2010-09-01
CN102077527A (zh) 2011-05-25
JP5507556B2 (ja) 2014-05-28
JP5746283B2 (ja) 2015-07-08
EP2314024A1 (en) 2011-04-27
WO2009158680A1 (en) 2009-12-30
CN102077527B (zh) 2014-10-29
JP2011526476A (ja) 2011-10-06
JP2014013583A (ja) 2014-01-23
KR20110034652A (ko) 2011-04-05
US20090323686A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
KR101266324B1 (ko) 다중-프로세서 디바이스에서의 데이터 송신 및 수신 동안에 컨텍스트 스위칭을 감소시키기 위한 방법들 및 장치들
US9755977B2 (en) Transmission of delay tolerant data
KR101511979B1 (ko) 프로세서의 성능 레벨을 관리하기 위한 무선 광역 네트워크 프로토콜 정보의 사용
EP3352049B1 (en) Power saving techniques in computing devices
CN102577569A (zh) 使用允许令牌债务的令牌桶的无线通信的速率修整
EP1860897B1 (en) Radio base station receiver, resource allocating method and program
USRE49652E1 (en) Power saving techniques in computing devices

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: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee