KR101501595B1 - Wwan 기술들을 위한 하드웨어 가속 - Google Patents

Wwan 기술들을 위한 하드웨어 가속 Download PDF

Info

Publication number
KR101501595B1
KR101501595B1 KR1020127010814A KR20127010814A KR101501595B1 KR 101501595 B1 KR101501595 B1 KR 101501595B1 KR 1020127010814 A KR1020127010814 A KR 1020127010814A KR 20127010814 A KR20127010814 A KR 20127010814A KR 101501595 B1 KR101501595 B1 KR 101501595B1
Authority
KR
South Korea
Prior art keywords
data
target
code
software
hardware
Prior art date
Application number
KR1020127010814A
Other languages
English (en)
Other versions
KR20120065427A (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 KR20120065427A publication Critical patent/KR20120065427A/ko
Application granted granted Critical
Publication of KR101501595B1 publication Critical patent/KR101501595B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/037Protecting confidentiality, e.g. by encryption of the control plane, e.g. signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/02Data link layer protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

무선 통신들을 위한 시스템 및 방법들이 제공된다. 이들은 데이터 해독 컴포넌트들, 인터럽트 프로세싱 컴포넌트들, 적응형 집합 방법들, 최적화된 데이터 경로 프로세싱, 버퍼 풀 프로세싱, 데이터가 목적지 프로세스에 대해 적절한 포맷으로 포매팅되는 애플리케이션 프로세싱, 다른 하드웨어 가속 특징들 중에서 키스트림 뱅크 프로세싱을 포함한다. 이러한 시스템들 및 방법들은 무선 네트워크 데이터 프로세싱 동안 로직 설계들을 간략화하며 프로세싱 단계들을 완화하도록 제공된다.

Description

WWAN 기술들을 위한 하드웨어 가속{HARDWARE ACCELERATION FOR WWAN TECHNOLOGIES}
본 발명은 일반적으로 무선 통신 시스템들에 관한 것이고, 더욱 상세히는 무선 광역 네트워크에 대한 하드웨어 가속에 관한 것이다.
본 출원은 출원일은 2008년 6월 19일이고, 발명의 명칭은 “HARDWARE ACCELERATION FOR WWAN TECHNOLOGIES”인 미국 가출원 제 61/074,099호에 우선권의 이익을 주장하며, 이들 전체는 참조로써 여기서 통합된다.
무선 통신 시스템들은 음성, 데이터 등과 같은 다양한 타입들의 통신 컨텐츠를 제공하도록 널리 분포된다. 이러한 시스템들은 이용가능한 시스템 리소스들(예컨대, 대역폭 및 송신 전력)을 공유함으로써 복수의 사용자들과의 통신을 지원할 수 있다는 다중-액세스 시스템들일 수 있다. 이러한 다중-액세스 시스템들의 예들은 코드 분할 다중 액세스(CDMA) 시스템들, 시 분할 다중 액세스(TDMA) 시스템들, 주파수 분할 다중 액세스(FDMA) 시스템들, E-UTRA를 포함하는 3GPP 롱 텀 에볼루션(LTE) 시스템들, 직교 주파수 분할 다중 액세스(OFDMA) 시스템들을 포함한다.
직교 주파수 분할 멀티플렉스(OFDM) 통신 시스템은 전체 시스템 대역폭을 복수(NF)개의 서브캐리어들로 효율적으로 분할하며, 이는 또한 주파수 서브-캐리어들, 톤들, 또는 주파수 빈들로도 지칭될 수 있다. OFDM 시스템에 대해, 전송될 데이터(즉, 정보 비트들)는 먼저 코딩된 비트를 생성하기 위해 특정 코딩 방식을 이용하여 인코딩되며, 코딩된 비트들은 변조 심벌들로 매핑되는 다중-비트 심볼들로 추가적으로 그룹핑(grouping)된다. 각각의 변조 심벌은 데이터 전송을 위해 사용되는 특정 변조 방식(예컨대, M-PSK 또는 M-QAM)에 의해 정의되는 신호 성상도에 있는 포인트에 대응한다. 각각의 주파수 캐리어의 대역폭에 의존할수 있는 각각의 시간 인터벌에서, 변조 심벌은 NF개의 주파수 캐리어 각각을 통해 전송될 수 있다. 따라서, OFDM은 주파수 선택적 페이딩에 의해 유발되는 심벌-간 간섭(ISI)을 극복하기 위해 사용될 수 있고, 이는 시스템 대역폭에 걸쳐 상이한 양의 감쇄에 의해 특징된다.
일반적으로, 무선 다중-액세스 통신 시스템은 순방향 및 역방향 링크들을 통해 하나 이상의 기지국들과 통신하는 복수의 무선 단말들을 위한 통신을 동시에 지원할 수 있다. 순방향 링크(또는 다운링크)는 기지국들로부터 단말들로의 통신 링크를 의미하며, 역방향 링크(또는 업링크)는 단말로부터 기지국들로의 통신을 의미한다. 이 통신 링크는 단일-입력-단일-출력, 다중-입력-단일-출력 또는 다중-입력-다중-출력(MIMO) 시스템을 통해 설정될 수 있다.
MIMO 시스템은 데이터 전송을 위한 복수(NT)의 전송 안테나 및 복수(NR)의 수신 안테나를 이용한다. NT개의 전송 및 NR개의 수신 안테나들에 의해 생성된 MIMO 채널은 NS개의 독립 채널들로 구성될 수 있다. 일반적으로, NS개의 독립 채널들은 디멘존에 대응한다. MIMO 시스템은 만약 복수의 전송 및 수신 안테나들에 의해 생성된 추가적인 디멘존들이 이용되면 개선된 성능을 제공할 수 있다. MIMO 시스템은 또한 시 분할 듀플렉스(TDD) 및 주파수 분할 듀플렉스(FDD) 시스템들을 지원한다. TDD 시스템에서, 순방향 및 역방향 링크 전송들은 동일한 주파수 영역에 존재하며, 상호성 원칙이 역방향 링크 채널로부터 순방향 링크 채널의 추정을 허용한다. 이는 복수의 안테나들이 액세스 포인트에서 이용가능한 경우 액세스 포인트가 순방향 링크 상의 전송 빔-형성 이득을 추출하도록 인에이블(enable) 한다.
무선 시스템들이 핸드셋들에서 구현되는 추가적인 특징들 및 성능들을 이용하여 더욱 복잡해지기 때문에, 핸드셋 또는 모바일 디바이스들 상에 상주하는 하드웨어의 성능의 증가에 대한 증가하는 요구가 존재한다. 특별히, 무선 광역 네트워크들(WWAN)과 같은 무선 네트워크에 대하여, 네트워크 상의 성능이 모자란 컴포넌트들로 인한 네트워크 레이턴시들을 완화하면서 디바이스들의 프로세싱 속도 및 메모리 성능을 증가시킬 필요가 존재한다.
다음은 청구범위로 주장되는 몇몇 양상들의 기초적인 이해를 제공하기 위한 간략한 요약을 나타낸다. 이 요약은 포괄적인 개요는 아니며, 핵심/키 엘리먼트를 식별하거나 청구범위로 주장되는 사항의 범위를 묘사하고자 할 의도도 아니다. 그 유일한 목적은 후에 제시되는 상세한 설명에 대한 도입부로서 간략화된 형태로 하나 이상의 실시예들의 개념을 제공하기 위함이다.
시스템들 및 방법들은 예컨대 WWAN(Wireless Wide Area Networks)와 같은 네트워크들 상에서 동작하는 컴포넌트들의 성능을 개선하기 위한 하드웨어 가속(acceleration) 특징들을 제공한다. 일 양상에서, 데이터 해독(decipher)과 같은 내부 프로세싱은 프로세싱 동작들을 최소화하기 위해 외부 메모리에 해독의 결과들을 복사하기 전에 수행된다. 다른 양상은 프로세싱 성능을 용이하게 하기 위해 적응형 또는 동적 데이터 집합 및 인터럽트 프로세싱을 포함한다. 다른 하드웨어 가속 양상에서, 데이터 경로 프로세싱 최적화는 상이한 하드웨어 경로들을 통해 제공되며, 데이터 해독은 외부 메모리로 이동하기 전에 버퍼에서 디코딩되며, 또는 외부 메모리에서 직접 해독을 수행된다. 하드웨어 경로가 특정 시나리오에 의존하여 동적으로 선택된다. 이러한 경우에서, 하드웨어는 수반되는 동작들 및 로직의 수를 감소시킴으로써 간략화되고 프로세싱 성능이 개선된다.
다른 양상에서, 버퍼 풀 컴포넌트들은 데이터 프로세싱이 내장된 프로세서가 바쁜(busy) 상태가 아니어서 더욱 바쁜 프로세싱 시간들에 대한 성능 대역폭을 절약하도록 하는 덜 빈번한 인터벌들 및/또는 기간들에서 발생하도록 인에이블하도록 제공된다. 다른 가속 양상에서, 애플리케이션 프로세서들은 목적지 프로세서 또는 프로세스에 의해 적절한 포맷으로 데이터를 준비한다. 이는 이러한 데이터를 개별적인 목적지에 대한 적절한 프로세싱 포맷으로 변환하기 위해 목적지 프로세서에 대한 요구를 완화한다. 다른 양상에서, 다양한 파라미터들 및 데이터 값들이 매번 새롭게 재생성되어야 하는 것이 아니라 다른 파라미터들로부터 도출(derive)될 수 있는 키스트림(keystream) 프로세싱 컴포넌트들이 제공된다. 이러한 프로세싱 도출들은 추가적으로 하드웨어 가속기들의 성능을 개선시킨다.
앞선 그리고 관련된 목적들을 달성하기 위해, 특정 예시적 양상들이 다음의 설명 및 첨부된 도면들과 관련하여 여기서 설명된다. 이러한 양상들을 청구범위로 주장되는 사항의 원리들이 이용될 수 있고 청구범위로 주장되는 사항은 모든 이러한 양상들 및 그들의 등가물들을 포함하도록 의도되는 다양한 방식 중 일부를 나타낸다. 다른 장점들 및 신규한 특징들은 도면들을 결합하여 고려하는 경우 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 무선 통신 시스템에 대한 하드웨어 가속 컴포넌트들을 제공하는 시스템의 하이 레벨 블록 다이어그램이다.
도 2는 무선 시스템에 대한 데이터 해독을 도시하는 플로우 다이어그램이다.
도 3은 무선 통신 시스템에 대한 적응형 집합을 도시하는 플로우 다이어그램이다.
도 4는 무선 통신 시스템에 대한 최적화된 데이터 경로 프로세싱을 도시하는 플로우 다이어그램이다.
도 5는 무선 통신 시스템에 대한 버퍼 풀 프로세싱을 도시하는 플로우 다이어그램이다.
도 6은 무선 통신 시스템에 대한 키스트림 프로세싱을 도시하는 플로우 다이어그램이다.
도 7은 무선 통신 시스템에 대한 키스트림 프로세싱을 도시하는 플로우 다이어그램이다.
도 8은 무선 버스트 사이즈 프로세싱을 이용하는 예시적 통신 장치를 도시한다.
도 9는 다중 액세스 무선 통신 시스템을 도시한다.
도 10 및 11은 예시적 통신 시스템들을 도시한다.
도 12는 가속 프로세싱을 위한 예시적 로직 모듈을 도시한다.
다양한 시스템들 및 방법들이 무선통신 시스템의 하드웨어 성능을 증가시키기 위해 제공된다. 일 예로서, 하나의 방법 및 시스템은 쓸모없는 해독 파라미터들이 사용되는 경우를 위해 외부 메모리로 이동하고 우발성(contingency)들을 다루기 전에 데이터를 해독하는 것이다. 다른 방법 및 시스템은 지연 민감 데이터에 대한 낮은 레이턴시를 유지하면서 인터럽트 오버헤드를 최소화하기 위한 적응형 집합 길이 및 우선순위 큐들에 의해 인터럽트들을 감소시키는 것이다. 다른 방법 및 시스템은 무선 광역 네트워크(WWAN)에서 데이터 복사본들을 감소시키기 위해 적어도 2개의 데이터 경로들을 사용하는 것이다. 다른 방법 및 시스템은 소프트웨어가 효율적인 방식으로 하드웨어로 데이터 버퍼들을 제공하도록 인에이블하며, 수단들이 각각의 캐시 폴루션(pollution)을 회피하도록 인에이블하기 위한 버퍼 풀 메커니즘을 제공하는 것이다. 다른 방법 및 시스템은 추가적인 복사를 회피하기 위해 애플리케이션 프로세서에 의해 준비된 네트워크 드라이버 인터페이스 규격(NDIS) 데이터 버퍼들을 갖도록 하는 것이다. 그리고 다른 방법 및 시스템은 소프트웨어가 해독을 수행하여, 그에 의해 지연을 감소시키고, 추가적인 데이터 복사를 회피하며, 해독 태스크들을 준비하기 위한 소프트웨어 프로세싱을 감소시키도록 인에이블하는 하드웨어에 의해 생성되는 키스트림 뱅크를 갖도록 하는 것이다.
이제 도 1을 참조하면, 시스템(100)은 프로세싱 성능을 용이하게 하고 하드웨어 복잡성을 완화하기 위해 무선 네트워크(120)의 하나 이상의 컴포넌트들에 걸쳐 배치될 수 있는 무선 광역 네트워크(WWAN) 가속 컴포넌트들(110)을 도시한다. 도시된 것처럼, 다양한 컴포넌트들이 하드웨어 성능이 예컨대 아래서 더욱 상세히 설명될 사용자 장비, 모바일 디바이스들, 및 기지국들과 같은 네트워크 컴포넌트들에서 증가되도록 인에이블하도록 제공된다. 가속 컴포넌트들의 일반적인 개요는 아래의 도 2-7에서 더욱 상세히 제공될 것이다.
일 양상에서, 프로세싱 동작들을 최소화하기 위해 데이터 해독(130)과 같은 내부 프로세싱은 외부 메모리에 데이터 해독의 결과들을 복사하기 전에 수행된다. 이는 아래서 더욱 상세히 설명될 파라미터 해독을 포함한다. 다른 양상은 프로세싱 성능을 용이하게 하기 위해 140에서 적응형 또는 동적 데이터 집합 및 인터럽트 프로세싱을 포함한다. 이는 추가적인 데이터 프로세싱 활동들을 위하여 프로세서를 인터럽트하기 위한 최적 횟수를 결정하기 위한 임계치들을 포함한다. 다른 하드웨어 가속 양상에서, 데이터 경로 프로세싱 최적화(150)는 상이한 하드웨어 경로들을 통해 제공되며, 데이터 해독은 외부 메모리로 이동하기 전에 버퍼에서 디코딩되며, 또는 외부 메모리에서 직접 해독을 수행한다. 임의의 주어진 시점에서, 하드웨어 경로는 특정 시나리오에 의존하여 동적으로 선택된다. 각 경우들에서, 하드웨어는 수반되는 동작들 및 로직의 수를 감소시킴으로써 간략화되며 프로세싱 성능이 개선된다.
다른 양상에서, 버퍼 풀 컴포넌트들(160)은 데이터 프로세싱이 상주하는 프로세서가 바쁘지 않고 따라서 더 바쁜 프로세싱 시점들을 위해 성능 대역폭을 절약하는 덜 빈번한 인터벌들 및/또는 기간들에서 발생하도록 인에이블하도록 제공된다. 다른 가속 양상에서, 애플리케이션 프로세서들은 170에서 목적지 프로세서 또는 프로세스에 의해 적절한 형태로 준비된다. 이는 이러한 데이터를 개별적인 목적지에 대한 적절한 프로세싱 포맷으로 변환하기 위해 목적지 프로세서에 대한 요구를 완화한다. 키스트림 프로세싱 컴포넌트들(180)은 다양한 파라미터들 및 데이터 값들이 매시간 새롭게 재생성되도록 하는 것보다 다른 파라미터들로부터 획득될 수 있도록 제공된다. 이러한 프로세싱 도출들은 추가적으로 하드웨어 가속기들의 성능을 개선한다. 데이터 해독(130)은 도 2와 관련하여 더욱 상세히 설명되고, 적응형 집합(140)은 도 3과 관련하여 더욱 상세히 설명되며, 최적화된 경로 프로세싱(150)은 도 4와 관련하여 더욱 상세히 설명되며, 버퍼 풀 프로세싱(160)은 도 5와 관련하여 더욱 상세히 설명되며, 애플리케이션 포매팅(170)은 도 6과 관련하여 더욱 상세히 설명되며, 키스트림 프로세싱(180)은 도 7과 관련하여 더욱 상세히 설명된다.
진행에 앞서, 무선 네트워크(120) 및 연관된 컴포넌트들(미도시)의 간략한 개요가 제공된다. 시스템(100)은 무선 네트워크(120)를 통해 제 2 디바이스(또는 디바이스들)로의 통신을 할 수 있는 엔티티일 수 있는 하나 이상의 기지국들(또한 노드, 이벌브드 노드 B - eNB, 펨토 스테이션, 피코 스테이션 등)을 포함한다. 예컨대, 각각의 디바이스는 액세스 단말(또한 단말, 사용자 장비, 스테이션 또는 모바일 디바이스)일 수 있다. 기지국들은 다운링크를 통해 디바이스로 통신하고 업링크를 통해 데이터를 수신할 수 있다. 업링크 및 다운링크와 같은 이러한 목적지는 디바이스가 또한 다운링크를 통해 데이터를 전송하고 업링크 채널들을 통해 데이터를 수신할 수 있기 때문에 임의적이다.
시스템(100)은 액세스 단말 또는 모바일 디바이스를 이용하여 이용될 수 있고, 예컨대 SD 카드, 네트워크 카드, 무선 네트워크 카드, 컴퓨터(랩톱들, 데스크탑들, 개인 휴대 단말(PDA)들을 포함함), 모바일 전화들, 스마트 전화들, 또는 네트워크에 액세스하도록 이용될 수 있는 임의의 다른 적절한 단말일 수 있다. 단말은 액세스 컴포넌트(미도시)의 예로써 네트워크에 액세스한다. 일 예에서, 단말 및 액세스 컴포넌트들 사이의 접속은 특성상 무선일 수 있고, 액세스 컴포넌트들은 기지국일 수 있고, 모바일 디바이스는 무선 단말일 수 있다. 예컨대, 단말 및 기지국들은 임의의 적절한 무선 프로토콜을 통해 통신할 수 있고, 이 프로토콜들은 시 분할 다중 액세스(TDMA), 코드 분할 다중 액세스(CDMA), 주파수 분할 다중 액세스(FDMA), 직교 주파수 분할 다중 액세스(OFDM), 플래시 OFDM, 직교 주파수 분할 다중 액세스(OFDMA), 또는 다른 적절한 프로토콜을 포함하지만 이에 제한되는 것은 아니다.
액세스 컴포넌트들은 유선 네트워크 또는 무선 네트워크와 연관된 액세스 노드일 수 있다. 이 목적을 위해, 액세스 컴포넌트들은 예컨대 라우터, 스위치 등일 수 있다. 액세스 컴포넌트는 다른 네트워크 노드들과 통신하기 위한 하나 이상의 인터페이스들, 예컨대 통신 모듈들을 포함할 수 있다. 추가적으로, 액세스 컴포넌트는 셀룰러 타입 네트워크에서 기지국(또는 무선 액세스 포인트)일 수 있고, 기지국들(또는 무선 액세스 포인트)은 복수의 가입자들로 무선 커버리지 영역들을 제공하도록 이용된다. 이러한 기지국들(또는 무선 액세스 포인트들)은 하나 이상의 셀룰러 전화들 및/또는 다른 무선 단말들로 커버리지의 연속적인 영역들을 제공하도록 배열될 수 있다.
이제 도 2-7을 참조하면, 무선 통신 방법론들이 도시된다. 설명의 간략함을 위해, 방법론들( 및 여기서 설명되는 다른 방법론들)이 일련의 행동들로 도시되고 설명되더라도, 방법론들은 행동들의 순서에 제한되지 않고 몇몇 행동들은 하나 이상의 양상들에 따라 여기서 도시되고 설명되는 것과 다른 행동들과 상이한 순서들로 그리고/또는 동시에 발생할 수 있음을 인식하고 이해해야 한다. 예컨대, 당해 기술분야에 속한 통상의 지식을 가진 자는 방법론이 상태 다이어그램과 같은 일련의 상호 연관된 상태들 또는 이벤트들로서 대안적으로 표현될 수 있음을 이해하고 인식할 것이다. 또한 모든 설명된 행동들이 청구범위로 주장된 사항에 따라 방법론을 구현하도록 이용될 수 있는 것은 아니다. 일반적으로, 도 3-5의 프로세스는 최소 지연을 갖는 사용자 장비에 의해 수신되는 핸드오버 메시지들의 확률을 개선한다. 이는 노드들 또는 디바이스들 간의 핸드오버 동안의 더 짧은 멈춤(stall)들 또는 지연들을 포함하며, 이는 엔드 사용자 경험을 개선할 수 있고, 특별히 핸드오버 감량(outage)이 용인가능하지 않은 실-시간 지연 민감 서비스를 이용한다.
도 2를 참조하면, 프로세스(200)는 무선 시스템을 위해 데이터 해독을 도시한다. UMTS/LTE(Universal Mobile Telecommunication System/Long Term Evolution) 무선 인터페이스 프로토콜들에 대해, 해독 기능은 RLC(radio link control) 또는 PDCP(packet data convergence protocol) 프로토콜들의 일부로서 규격화된다. 일반적으로, 해독 기능을 디코더의 외부에서 구현하는 것이 바람직하며, 이에 의해 암호화되지 않은 데이터가 더 높은 계층들에서 프로세싱을 위한 외부 메모리로 복사될 수 있도록 한다. 그렇지 않으면, 데이터는 또한 디코더로부터 외부 메모리로 직접 복사될 수 있으나, 추가적인 복사본들은 해독하는 하드웨어로 다시 패스할 필요가 있고, 다시 외부 메모리로 되돌아온다. 이를 처리하는 예시적 접근 방법은 외부 메모리로 복사하기 전에 해독하여 복사 동작들을 절약하는 것이다. 그러나, 이는 하드웨어가 신뢰성 있게 해독 파라미터들을 도출하는 것을 요구하고, 그렇지 않으면 해독은 실패하고 소프트웨어는 이 시점 이후에 임의의 데이터를 해석할 수 없을 것이다.
패킷을 해독하기 위한 2개의 입력 파라미터들은: 1. (각각의 패킷의 헤더에서 시그널링되는) 패킷 시퀀스 번호 및 2. (내부적으로 유지되며, 상기 시퀀스 번호에 기반하여 업데이트되는) 하이퍼 프레임 번호이다. 패킷 시퀀스 번호는 (최대 시퀀스 번호까지 도달하는) 특정 포인트까지 각각의 새로운 데이터 패킷에 대해 1씩 증가하며, 이러한 특정 포인트 이후에 패킷 시퀀스 번호는 0부터 재시작한다(롤-오버(roll-over)). 이것이 발생하면, 내부적으로 유지되는 하이퍼 프레임 번호(HFN: hyper frame number)는 1씩 증가된다. 일반적인 조건들에서, 이는 시퀀스 번호에 기반하여 HFN의 신뢰성있는 예측을 인에이블하고, 이는 하드웨어에서 쉽게 구현될 수 있다. 그러나, 특정 경우들에서, 암호화 파라미터들이 변할 수 있는 핸드오버 시나리오들과 결합된 패킷 재전송들로 인해 HFN은 예측하기 어렵다. 이 예들에서 HFN을 결정하는 것은 추가적인 하드웨어 복잡성을 요구한다. 그러나, 이 추가적인 복잡성 없이, 하드웨어는 잘못된 해독화 파라미터들을 사용할 수 있고, 데이터 손실이 발생할 수 있다. 하드웨어는 무기한으로 동기가 아닌 상태로 잠재적으로 머무를 수 있고, RLC 리셋에 리딩한다. 이를 정정하기 위한 하나의 방식은 소프트웨어가 하드웨어에서 HFN 미스매칭을 검출하고 그것이 필요한 경우에 정정하는 것을 용이하게 하면서, 해독화 파라미터들, 특별히 HFN을 도출하고, 외부 메모리로 복사 이전에 해독을 수행하는 것이다.
도 2는 데이터의 이른 해독을 이용하여 하드웨어 가속을 위한 예시적인 프로세스(200)를 도시한다. 동작에서, 예시적인 프로세스(200)의 초기화(211) 이후에, HFN은 212에서 검출된다. 검출 기능(212)은 HFN을 추적하기 위해 적절한 개선된 로직을 가짐으로써 구현될 수 있고, 또는 오류가 있는 헤더들 및 데이터를 이용하여 연속적인 패킷들의 최대 수에 대해 213에서 선택적으로 체크할 수 있다. 결과로 생기는 HFN은 215에서 HFN 미스매칭에 대해 테스트된다. 만약 미스매칭 또는 오류가 있는(corrupted) HFN이 발견되면, 예시적 프로세스(200)는 정확하지 않은 HFN(216)을 이용하여 암호화된 데이터를 재-암호화하고 정확한 HFN(217)을 이용하여 복원된 데이터를 해독한다. 다음으로, 예시적인 프로세스(200)는 데이터를 외부 메모리(218)로 복사하고 이 포인트 이후에 새로운 HFN을 사용하도록 진행한다. 마지막으로, 예시적인 프로세스(200)는 219에서 종료할 것이다. 이 방법을 사용함으로써, HFN 미스매칭을 직면하는 경우 데이터 손실은 회피될 수 있다. 추가적으로, 외부 메모리로 복사하기 전에 데이터를 해독함으로써 데이터 복사본들의 수가 감소될 수 있고, 스루풋을 증가시킨다.
도 3은 무선 통신 시스템에 대한 적응형 집합을 도시하는 프로세스(300)이다. 하드웨어에서 프로토콜 가속을 구현하는 경우, 지연 민감 서비스들에 대한 지연을 제한하도록 스택에 인입하는 데이터를 빠르게 포워딩하기 위해 모뎀 프로세서로 빈번한 인터럽트들을 전송할 필요가 있다. 반면에, 프로세서를 인터럽팅하는 것은 오버헤드(예컨대, 소프트웨어에 있는 콘텍스트(context) 스위치들)를 부가하고, 이용가능한 프로세싱 리소스들을 감소시킨다. 이를 처리하기 위한 하나의 예시적 방법은 데이터의 동적인 집합을 구현하는 것이다.
도 3은 적응형 집합 길이 및 우선 순위 큐들을 이용하여 하드웨어 가속을 위한 다른 예시적인 프로세스(300)를 도시하는 플로우 차트이다. 동작에서, 초기화(321) 이후에, 데이터가 324에서 도착하면, 임계치가 테스트된다. 이 임계치는 각각 시간- 및/또는 데이터 분량 기반 임계치들(326 및 327)일 수 있다. 마지막으로 데이터가 포워딩된 이후의 시간이 만료(expire)되었을 때가 임계치(326)를 초과하는 경우에, 만약 새로운 데이터가 도착했다면, 소프트웨어에 대한 인터럽트(328)가 트리거링될 수 있다. 또한, 소프트웨어에 의해 프로세싱될 데이터의 양이 제 2 임계치(327)를 초과하는 경우, 소프트웨어에 대한 인터럽트(328)가 트리거링될 수 있다. 그렇지 않으면, 데이터는 소프트웨어를 인터럽트하지 않고 누적(accumulate)될 수 있고, 프로세스는 329에서 정지한다.
이러한 임계치들(326 및 327)은 예컨대 서비스 품질(QoS) 우선 순위들, 또는 데이터가 시그널링되는지 또는 사용자 플레인(plane)인지 여부에 기반하여, 프로세싱되는 데이터의 타입(이에 제한되지 않음)에 동적으로 기반하여 조절될 수 있다. 예컨대, 실-시간 애플리케이션들(예컨대, VoIP, 게이밍)에 대한 높은 우선 순위 데이터 또는 시그널링 데이터는 더 낮은 집합 임계치를 부여받은 개별적인 큐에서 프로세싱될 수 있다. 지연 제한이 없는 다른 사용자 플레인 데이터는 더 높은 집합 임계치를 이용하여 개별적인 큐에서 프로세싱될 수 있다. 높은 데이터 분량 경우들에서, 지연은 지연들을 버퍼링하는 것으로 인해 보통 민감하지 않다. 따라서, 데이터의 측정된 양(바이트들/초)은 동적으로 집합 임계치를 설정하도록 사용될 수 있다. 임계치들은 또한 이용가능한 프로세싱/버스 대역폭 리소스들, 다른 동시적으로 실행하는 애플리케이션들, 이용가능한 배터리 수명 등에 기반하여 조절될 수 있다. 따라서, 인입하는 데이터에 대한 시간 및/또는 분량 임계치의 구현에 의해, 소프트웨어 인터럽트들의 수를 감소시켜, 이용가능한 프로세싱 리소스들을 증가시키고/MIPS 및 전력 소비를 더 낮출 수 있다.
도 4는 무선 통신 시스템을 위한 최적화된 데이터 경로 프로세싱을 도시하는 프로세스(400)이다. LTE 및 무선 CDMA(WCDMA)와 같은 WWAN 프로토콜들을 구현하는 경우, 하드웨어 가속에 적합한, 암호화(ciphering)/해독화(deciphering), HDLC 프레이밍(framing), CRC 체크섬 계산들, 및 프로토콜 헤더 삽입과 같은 특정 기능들이 존재한다. 정직한 접근 방법들은 그들 각각의 계층들에서 이러한 기능들을 수행하는 것이다: RLC/PDCP에서 암호화/해독화, PPP/데이터 서비스들 계층에서 HDLC 프레이밍, IP 또는 TCP 계층에서 CRC 체크섬 등. 그러나 이는 리소스 포인트의 관점에서 비효율적이고, 각각의 시간 데이터는 외부 메모리 및 하드웨어 가속기에 있는 저장소 사이에서 이동하기 때문에, 버스 이용(다른 사용들을 위해 이용가능한 대역폭을 덜 남김) 및 전력 소비에서 오버헤드 비용이 존재할 것이다.
이러한 기능들을 함께 그룹핑하고 원-샷(one shot)으로 그들을 수행함으로써, 예컨대 버스 활동이 감소될 수 있다. 이를 구현하기 위해, WWAN 프로토콜의 특성이 고려된다. 이후에 옵션 1 및 옵션 2로 표시되는, 2개의 기본적인 접근들이 존재한다.
옵션 1에 대해: 이 옵션에서, 외부 메모리로 이동하기 전에, 데이터가 디코더 출력 버퍼에 있는 경우 직접 해독된다. 그러나 특정 경우들에서, 오직 패킷의 일 부분이 수신되고, 이 경우에 패킷은 해독될 수 없다. 패킷이 외부 메모리로 이동하는 경우, 상기 패킷은 패킷의 부분들이 수신될 때까지 머무른다. 그 시점에서, 완전한 패킷이 해독을 위해 하드웨어 버퍼로 다시 이동할 것이다. 완전한 패킷들이 그리고 나서 더 높은 계층 패킷들로 리어셈블(reassemble)된다. 더 높은 계층들에서, 데이터는 다시 하드웨어 가속 기능들로 종속할 수 있다. 테터링(tethered) 디바이스(예컨대 USB)로의 데이터 호출에 대해, 이는 PPP에 대한 하이-레벨 데이터 링크 제어(HDLC) 프레이밍, 이더넷을 위한 헤더 삽입, 또는 네이티브 IP에 대한 CRC 부가 등일 수 있다. 애플리케이션 프로세서에서 애플리케이션에 대한 임베드된 데이터 호출에 대해, 이는 IP 및 TCP 계층들 등에서 CRC 계산일 수 있다. 따라서, 데이터는 임베드된 애플리케이션들에 대한 애플리케이션 프로세서에서 메모리 위치에 대해, 또는 테터링 호출에 대해 목적지가 정해져있다. 소프트웨어는 데이터의 목적지로 정해진 곳을 결정하기 위해 인터넷 프로토콜(IP) 기반 라우팅 기능을 구현할 수 있다. 이 경우들에서, 이는 데이터가 이동하도록 유발한다. 이 관점에서, 효율성들은 하드웨어 가속 기능들과 데이터 이동 동작을 결합함으로써 획득될 수 있어, 그 결과 데이터가 오직 1번 이동한다. 요약하면, 데이터는 2번 이동할 수 있고(부분 패킷들을 제외하고) - 첫번째는 디코더 버퍼로부터 모뎀 프로세서 메모리로, 두 번째는 모뎀 프로세서로부터 애플리케이션 프로세서 메모리 또는 테터링 디바이스로.
옵션 2: 이 옵션은 옵션 1로서 본질적으로 관측될 수 있었으나 제 2 데이터 이동 동작의 일 부분인 해독화를 이용한다. 이는 데이터가, 해독화 이전에, 디코더로부터 외부 메모리로 직접적으로 이동함을 의미하며, 이는 암호화 파라미터들을 결정하기 위해 하드웨어에서 로직을 간략화한다. 데이터가 외부 메모리로 이동한 경우, 암호화 파라미터들은 소프트웨어 자체에서 결정될 수 있다. 그러나, 그것이 여전히 암호화되는 동안 데이터를 필터링하는 것이 불가능할 수 있기 때문에, 이러한 접근 방법의 한가지 결점은 IP 라우팅 기능이 하드웨어로 구현될 수 있다는 것이다. 이는 하드웨어가 라우팅 목적들을 위해 IP 필터들의 테이블을 이용하여 프로그래밍되도록 요구하며, 이는 추가적인 하드웨어 복잡성을 요구할 것이다. 소프트웨어는 여전히 라우팅 테이블을 정확하게 프로그래밍할 책임이 있을 수 있다. 디폴트 라우팅 엔트리는 임의의 다른 엔트리를 매치하지 않는 패킷들이 직면하는 경우 요구되는 대로 패킷들을 라우팅하도록 셋업될 수 있다.
옵션 2의 다른 양상은 부분적인 해독을 수행하여, 소프트웨어에서 IP 라우팅 함수를 구현하는 것을 허용하기 위해, IP/TCP 헤더들이 암호화되도록 하는 것이다. 소프트웨어 프로세싱 오버헤드를 최소화하기 위해, 해독을 완료하기 위한 제어 구조들은 부분적인 해독(개별적인 메모리 위치에서)을 위한 제어 구조들과 함께 준비될 수 있다. 부분적인 해독을 위한 제어 구조들은 하드웨어로 서브밋(submit)되며, 부분적으로 해독된 IP/TCP 헤더들은 소프트웨어로 리턴된다. 이들은 소프트웨어에서 IP 라우팅 기능에 계속해서 종속할 것이다. 목적지가 결정된 경우, 해독을 완성하기 위한 제어 구조는 소프트웨어 IP 라우팅에 기반하여 목적지를 이용하여 업데이트되며, 해독 + IP 라우팅을 완료하기 위한 제어 구조들은 하드웨어로 서브밋된다. 추가적인 하드웨어 가속 기능들(체크섬, HDLC 프레이밍, 등)은 또한 이 포인트에서 첨부될 수 있다. 따라서, 이 방법 및 시스템은 데이터 복사들을 감소시키고 이에 의해 버스 이용 및 전력 소비를 더 낮춘다.
도 4는 위에서 설명된 데이터 프로세싱에 관한 것이고 감소된 데이터 이동들을 이용하여 예시적인 프로세스(400)를 도시한다. 초기화(431) 이후에, 예시적인 프로세스(400)는 패킷/데이터 정보(432)를 획득하기 위해 진행하며, 부분적 패킷/데이터 정보(433)에 대한 테스트가 수행된다. 만약 패킷/데이터가 불완전한 것으로 결정되면, 부분적인 패킷/데이터가 패킷의 완료를 기다리기 위해 외부 메모리(434)로 이동된다. 패킷/데이터의 완료(435) 이후에, 예시적인 프로세스(400)는 437에서 해독을 위한 디코드 버퍼(436)로 패킷/데이터를 이동시킨다. 그러나 만약 433에서 패킷/데이터가 완성된 것으로 결정되면, 패킷/데이터는 437에서 해독된다. 옵션 2의 개선된 버전에 대해 위에서 언급한 것처럼, 해독(437)은 단지 부분적인 해독일 수 있다. 해독(437)이후에, 해독된 패킷/데이터는 위에서 설명된 것처럼 조건들에 따라 모뎀 메모리(438)로 먼저 이동된다. 비-모뎀 하드웨어 상의 추가적인 제 2 이동(439)은 그리고나서 위에서 설명된 것처럼 조건들에 따라 수행된다. 옵션 2에서 언급된 것처럼, 해독(437)은 제 2 이동(439) 이후에 발생할 수 있다. 하드웨어 메모리 이동(439)의 완료 이후에, 예시적인 프로세스(400)는 440에서 종료하며, 또는 스트림에서 다음 패킷/데이터를 위해 432로 선택적으로 리턴(미도시)한다.
도 5는 무선 통신 시스템을 위한 버퍼 풀 프로세싱을 도시하는 프로세스(500)이다. 기록하기 위해 하드웨어 가속기를 위한 버퍼들을 제공하는 하나의 방식은 각각의 하드웨어 태스크를 이용하여 버퍼들을 준비함으로써 이루어진다. 그러나 이 접근 방법은 일반적으로 더 많은 소프트웨어 프로세싱을 요구하며 중대한 타임라인(timeline)을 증가시킬 수 있다. 더 효율적인 접근 방식은 버퍼들을 더 드물게 그리고 중대한 타임라인의 밖으로 제공하는 것이다.
도 5는 버퍼 풀 메커니즘을 이용하여 하드웨어 가속에 대한 예시적인 배열을 도시하는 블록 다이어그램(500)이다. 하드웨어에(540)에 의해 사용하기 위한 버퍼들(520)의 동적 풀은 소프트웨어(560)에 의해 제어된다. 버퍼들(520) 및 하드웨어(540) 간의 액세스 제어(550)는 소프트웨어(560)에 의해 용이해지고 그리고/또는 완화된다. 아래서 설명될 것처럼, 버퍼들(520)의 풀(pool)은 하드웨어(540)로부터 상태 신호들(570)에 의해 포워딩되는 하드웨어 요구들에 따라 소프트웨어(560)에 의해 동적으로 조절(580)될 수 있다. 임계치들 및 소프트웨어 신호들은 또한 버퍼들(520)의 풀의 동작 및 크기를 제어하기 위해 사용될 수 있다. 몇몇 양상들에서, 소프트웨어(560)는 하드웨어(54)가 인입하는 데이터를 기록할 수 있는 버퍼들(520)의 풀을 하드웨어(540)에 제공할 수 있고, 이는 크기가 측정(size)되어 그것이 다중 태스크들에 걸쳐(span) 있을 수 있도록 한다. 하드웨어(540)는 얼마나 많은 버퍼들이 이미 사용되었는지 그리고 가장 최근의 버퍼가 채워진 포인트를 추적할 수 있다. 이 정보는 그리고 나서 하드웨어 태스크의 완료와 연관된 상태 정보(570)로서 소프트웨어(560)로 다시 패스된다. 풀(520)은 다양한 메커니즘들, 예컨대 주기적으로, 또는 풀(520)에 있는 자유 공간의 양이 임계치 미만으로 떨어지는 경우 소프트웨어 인터럽트를 트리거링하는 레벨 메커니즘에 기반하여, 소프트웨어(560)가 풀(520)을 채우는 포인트에서, 채워질 수 있다. 한가지 중요한 이점은 이것이 프로세서가 매우 바쁘지 않은 시점에 발생할 수 있다는 것이다. 또한, 풀(520)을 다시 채우는 빈도는 풀 사이즈를 증가시킴으로써 감소될 수 있다.
하드웨어(540)가 데이터를 이러한 버퍼들(520)로 이동시키는 경우, 하드웨어(540)가 비 캐쉬-로우(low) 정렬 메모리 위치 상에 데이터를 기록하는 것을 멈추기 때문에 캐쉬 모순들이 일어나는 경우들이 존재할 수 있다. 임의의 잠재적인 캐쉬 폴루션(pollution) 이슈들을 회피하기 위해, 하드웨어(540)가 특정 양의 데이터의 프로세싱을 수행하는 경우, 그것은 자동적으로 다음 캐쉬 정렬 메모리 위치로 이동할 수 있고 그 포인트로부터 기록을 시작할 수 있다. 따라서 소프트웨어(560)는 캐쉬 폴루션 이슈들을 회피하기 위해 추가적인 캐쉬 유지를 수행할 필요가 없다. 따라서, 하드웨어 가속 태스크들을 위한 출력 버퍼들을 준비하기 위한 소프트웨어 프로세싱을 감소시킬 수가 있다.
도 6은 무선 통신 시스템을 위한 애플리케이션 포매팅을 도시하는 프로세스(600)이다. 데이터가 하나의 엔티티로부터 다른 엔티티로 패스되는 종래의 설계에서, 임시적인 버퍼는 인입하는 데이터(예컨대, 공유된 메모리 인터페이스를 통해)를 저장하기 위해 타겟 엔티티에 의해 제공될 것이다. 이러한 환경에서, “엔티티”는 프로세서 또는 하드웨어 가속기 블록 중 하나일 수 있다. 소스 엔티티는 이 위치로 데이터를 복사하고 타겟을 시그널링하고, 이는 그리고나서 결과적으로 데이터를 다시 타겟 애플리케이션에 위해 읽혀질 수 있는 데이터 구조로 복사한다. 복사들을 중복하는 것을 방지하기 위해, 하나의 예시적 접근 방법은 타겟 엔티티가 소스 엔티티로 애플리케이션에 의해 판독가능한 데이터 구조를 직접적으로 패스하도록 하는 것이다. 따라서, 하나의 복사가 회피될 수 있다.
도 6은 데이터 구조를 직접적으로 패스하는 타겟 엔티티를 이용하여 하드웨어 가속을 위한 다른 예시적인 프로세스(600)를 도시한다. 예시적인 프로세스(600)는 초기 상태로 610에서 시작한다. 몇몇 양상들에서, 초기화 이후에 소스는 타겟으로 전송될 데이터에 대하여 타겟으로 시그널링할 수 있다. 다른 양상들에서, 타겟은 데이터를 수신한 소스를 시그널링할 수 있다. 따라서, 630은, 구현에 따라 이는 선택 사항일 수 있거나 아닐 수 있고, 일 선택적인 단계로 도시된다. 예시적인 프로세스는 다음으로 타겟이 타겟-특정(target-specific) 구조(들) 또는 형태들을 소스로 전송하는 s650으로 계속한다. 수신 이후에, 670에서 소스는 자신의 데이터를 타겟-제공된 포맷으로 복사한다. 다음으로, 통지 이후에, 타겟은 타겟에 의해 쉽게 사용된 형태로 포매팅(format)되는 소스-복사된 데이터(680)를 판독한다. 소스-복사된 데이터를 판독한 이후에, 예시적인 프로세스는 690에서 종료할 수 있다. 이 예시적 프로세스(600)를 사용함으로써, 2개의 엔티티들 사이에서 데이터를 전달하는 경우 일반적인 추가적 복사가 제거될 수 있고, 따라서 버스 대역폭 및 전력 소비를 감소시킬 수 있다.
이 방법은 하나의 특정 예는 상업적으로 이용가능한 운영 체제와 인터페이스하는 경우 사용되고, 각각이 특정 포맷의 헤더를 가지고 있는 데이터가 버퍼들로 복사될 것으로 예상하는, 네트워크 드라이버 인터페이스 규격(NDIS) 드라이버이다. 예시적인 프로세스(600)를 사용함으로써, 타켓 엔티티(애플리케이션 프로세서)는 소스 엔티티(프로토콜 하드웨어 가속기)로 NDIS 버퍼들을 직접 패스할 수 있다. 소스 엔티티는 데이터를 복사하고, 또한 시작 어드레스 및 길이와 같은 NDIS 헤더 필드들에 채워, 그것이 수행된 타겟 엔티티로 다시 시그널링한다. 이제 타겟이 추가적인 복사들을 수행할 필요없으나, 이제 나머지 NDIS 헤더 필드들을 채운다.
도 7은 무선 통신 시스템을 위한 키스트림 프로세싱을 도시하는 프로세스(700)이다. 일반적으로, 해독은 해독 파라미터들에 기반하여 키스트림을 생성하는 것을 포함하며, 결과적으로 키스트림을 암호화된 프로토콜 데이터 유닛(PDU)들을 이용하여 XOR-ing(배타적-OR-ing)한다. 종래의 접근 방법에서, 암호화된 PDU들은 먼저 해독을 위해 외부 메모리로부터 하드웨어 메모리로 이동하며, 그리고나서 외부 메모리로 다시 이동한다. 따라서 데이터는 이 경우에 2번 이동한다. 이 프로세스를 개선하는 예시적 접근 방법은, 암호화 파라미터들을 하드웨어로 소프트웨어 프로그래밍하도록 하는 것이고, 미리 다수의 패킷들에 대한 키스트림들만을 하드웨어 미리-계산하도록 하는 것이다. 이는 효율적으로 수행될 수 있고, 소프트웨어가 첫 번째 PDU에 대한 암호화 파라미터들을 제공하여야 하기 때문에, 하드웨어는 모든 순차적인 데이터 PDU들에 대한 암호화 파라미터들을 자동적으로 도출할 수 있다. 따라서, 암호화 파라미터들을 프로그래밍하는 소프트웨어 오버헤드는 거의 0으로 감소한다. 소프트웨어가 수신된 데이터 PDU를 해독할 필요가 있는 경우, 그것은 정확한 키스트림을 선택하여, 데이터 PDU들을 이용하여 XOR 동작을 수행한다.
도 7은 하드웨어에 의해 생성된 키스트림 뱅크를 이용하여 하드웨어 가속을 위한 다른 예시적 프로세스(700)를 도시한다. 예시적 프로세스(700)는, 초기화(710) 이후에, 키스트림 계산(730)을 위한 하드웨어로 암호 파라미터를 포워딩하는 소프트웨어로 진행한다. 하드웨어는 낮은-레이턴시/하드웨어 메모리 또는 외부 메모리에 저장될 수 있는 미리-계산된 키스트림들의 뱅크를 생성할 수 있다. 상이한 암호화 파라미터들을 가질 수 있는 상이한 데이터 플로우들을 위한 개별적인 키스트림들을 저장하는 것이 바람직할 수 있다.
몇몇 양상들에서, 충분한 키스트림들이 존재한다고 확보하기 위한 메커니즘을 갖는 것이 바람직하며, 즉 키스트림들의 뱅크가 보통의 인터벌들에서 채워지도록한다. 만약 키스트림 뱅크가 충분히 크다면, 장점은 매우 종종 수행되어야할 필요가 없다는 것이다. 메커니즘은 타이머의 수단(760)에 의해 또는 임계치의 수단(760)에 의해 수행될 수 있다. 예컨대, 수단(760)이 이용가능한 키스트림들의 수가 임계치 미만으로 떨어졌다고 표시하는 경우, 또는 시간 제한이 초과한 경우, 수단(760)은 새로운 키스트림들을 생성하기 위해 하드웨어를 프로그래밍하도록 소프트웨어로 인터럽트(770)를 전송할 수 있다. 만약 키스트림 뱅크(760)가 충분하면, 하드웨어로부터의 적절한 키스트림이 778에서 데이터 플로우를 위해 적절한 프로세서/버퍼로 포워딩될 수 있다. 몇몇 양상들에서, 키스트림은 뱅크 테스팅 수단(760) 이전에 데이터 플로우(780)에 대해 포워딩될 수 있다. 키스트림의 포워딩(780) 이후에, 예시적 프로세스(700)는 790에서 종료할 수 있다.
키스트림들의 뱅크가 파라미터 재구성을 암호화하는 경우에 플러쉬 아웃(flush out)되어야 하며, 결과적으로 키스트림들의 새로운 세트가 생성될 필요가 있음을 유의하도록 한다. 작은 패킷 사이즈들(낮은 데이터 레이트, 예컨대 VoIP, 게이밍과 같은 실-시간 서비스들)을 이용한 데이터 스트림들에 특히 적절한 한 가지 애플리케이션은, 각각의 PDU에 대한 키스트림의 길이가 작은 경우, 이는 키스트림들을 저장하기 위한 메모리 요구사항을 감소시키는 것을 돕는다. 이 예시적 접근 방법은 또한 예컨대 전체 패킷 페이로드를 해독하지 않고 소프트웨어를 IP 라우팅을 수행하도록 인에이블하기 위해 IP/TCP 헤더만을 해독하는 것을 허용하기 위해, 특정 해독을 위해 사용될 수 있다. 이 경우는 부분적인 해독이 저장될 더 작은 키스트림들을 허용하기 때문에 유용하며, 이 경우에 하드웨어 메모리 요구 사항은 상대적으로 낮다. 따라서, 이 예시적 프로세스(700)는 지연 민감 애플리케이션을 위한 해독을 수행하기 위한 지연을 감소시킬 수 있다. 또한, 해독 파라미터들(XOR 연산을 위한 추가적인 프로세싱의 비용으로)을 준비하기 위해 소프트웨어 프로세싱을 감소시킬 수 있다. 추가적으로, 그것은 버스 대역폭(더 일반적인 하드웨어 접근 방법으로 2개의 복사들 대신에 1개의 복사)을 감소시킬 수 있다.
여기서 설명되는 프로세스들의 기법들은 다양한 수단에 의해 구현될수 있다. 예를 들어, 이러한 기법들은 하드웨어, 소프트웨어 또는 이들의 결합으로 구현될 수 있다. 하드웨어 구현에 대하여, 이러한 기술들을 위한 프로세싱 유닛은 하나 이상의 애플리케이션 특정 회로(ASIC)들, 디지털 신호 처리기(DSP)들, 디지털 신호 프로세싱 장치(DSPD)들, 프로그래머블 로직 장치(PLD)들, 필드 프로그래머블 게이트 어레이(FPGA)들, 프로세서들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 여기서 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 조합으로 구현될 수 있다. 소프트웨어를 이용하여, 구현은 여기서 설명된 기능들을 수행하는 모듈들(예컨대, 절차들, 기능들 등)을 통해 구현될 수 있다. 소프트웨어 코드들은 메모리 유닛에 저장될 수 있고, 프로세서들에 의해 실행될 수 있다.
일 양상에서, 하이퍼 프레임 번호(HFN)를 이용하여 원격 통신 신호에서 패킷화된(packetized) 데이터를 해독하는 방법이 제공된다. 방법은 HFN을 결정하는 단계, 미스매칭된 HFN을 테스트하는 단계, 만약 미스매칭된 HFN이 검출되면, 미스매칭된 HFN을 이용하여 해독된 데이터를 복원하는 단계, 정확한 HFN을 이용하여 데이터를 해독하는 단계, 및 정확한 HFN이 이용된 이후에 외부 메모리로 해독된 데이터를 복사하는 단계를 포함하고, 외부 메모리로 데이터를 복사하는 감소는 미스매칭된 HFN이 검출된 경우 달성된다. 이는 해독된 데이터를 복사하기 전에 하나 이상의 해독화 파라미터들을 도출하는 단계 및 HFN에 부가하여 패킷 시퀀스 번호를 획득하는 단계를 포함한다.
다른 양상에서, 하이퍼 프레임 번호(HFN)를 이용하여 원격 통신 신호에서 패킷화된 데이터를 해독할 수 있는 프로세서가 제공된다. 프로세서는 HFN을 결정하기 위한 명령, 미스매칭된 HFN을 테스트하기 위한 명령, 만약 미스매칭된 HFN이 발견되면, 미스매칭된 HFN을 이용하여 해독된 데이터를 복원하기 위한 명령, 정확한 HFN을 이용하여 데이터를 해독하기 위한 명령, 정확한 HFN이 이용된 이후에 외부 메모리로 해독된 데이터를 복사하기 위한 명령을 포함하고, 외부 메모리로 데이터를 복사하는 감소가 미스매칭된 HFN이 검출된 경우 달성된다.
다른 양상에서, 컴퓨터 판독가능 매체는 하이퍼 프레임 번호(HFN)를 이용하여 원격 통신 신호에 있는 패킷화된 데이터를 해독하기 위한 명령들을 포함한다. 이는 HFN을 결정하기 위한 명령, 미스매칭된 HFN을 테스트하기 위한 명령, 미스매칭된 HFN이 발견된 경우, 미스매칭된 HFN을 이용하여 해독된 데이터를 복원하기 위한 명령, 정확한 HFN을 이용하여 데이터를 해독하기 위한 명령; 및 정확한 HFN이 이용된 이후 외부 메모리로 해독된 데이터를 복사하기 위한 명령을 포함하고, 미스매칭된 HFN이 검출된 경우, 외부 메모리로의 복사하는 데이터의 감소가 달성된다.
다른 양상에서, 패킷화된 데이터를 프로세싱하는 동안 자신의 모뎀으로 인터럽트들을 관리함으로써 원격 통신 디바이스의 성능을 증가하는 방법이 제공된다. 이는 패킷화된 데이터를 수신하는 단계, 상기 수신된 패킷화된 데이터에 대하여 시간 및 데이터 분량(volume)-기반 임계치들 중 적어도 하나를 저장하는 단계, 소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서에 대한 소프트웨어 인터럽트를 개시하는 단계, 및 인터럽트가 개시되지 않으면 상기 패킷화된 데이터를 누적시키는 단계 및 인터럽트들의 빈도를 감소시키기 위해, 적어도 상기 시간 및 데이터 분량-기반 임계치들을 조절하는 단계를 포함한다. 방법은 서비스 품질, 우선 순위, 프로세싱 대역폭, 버스 활동(activity), 또는 이용가능한 배터리 수명에 기반하여 임계치들을 조절하는 단계를 포함한다.
다른 양상에서, 패킷화된 데이터를 프로세싱하는 동안 자신의 모뎀 프로세서에 대한 인터럽트들을 관리함으로써 원격 통신 디바이스의 성능을 증가할 수 있는 프로세서가 제공된다. 프로세스는 패킷화된 데이터를 수신하기 위한 명령; 상기 수신된 패킷화된 데이터에 대하여 시간 및 데이터 임계치들 중 적어도 하나를 저장하기 위한 명령; 소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서에 대한 소프트웨어 인터럽트를 개시하기 위한 명령; 및 인터럽트가 개시되지 않으면 상기 패킷화된 데이터를 누적시키고, 적어도 상기 시간 및 데이터 임계치들을 조절하면, 인터럽트들의 빈도가 감소된다.
다른 양상에서, 패킷화된 데이터를 프로세싱하는 동안 자신의 모뎀 프로세서에 대한 인터럽트들을 관리함으로써 원격 통신 디바이스의 성능을 증가하기 위한 명령들을 포함하는 머신 판독가능 매체가 제공된다. 매체는 패킷화된 데이터를 수신하도록 하기 위한 명령, 상기 수신된 패킷화된 데이터에 대해 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 저장하기 위한 명령; 소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서로 소프트웨어 인터럽트를 개시하기 위한 명령; 및 인터럽트가 개시되지 않는 경우 상기 패킷화된 데이터를 누적시키기 위한 명령을 포함하고, 적어도 상기 시간 및 데이터 분량-기반 임계치를 조절하면, 인터럽트 빈도가 감소된다.
다른 양상에서, 패킷화된 데이터의 원격 통신 프로세싱에 적절한 기능들을 그룹핑함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법이 제공된다. 방법은 암호화, 해독화, 하이-레벨 데이터 링크 제어(HDLC) 프레이밍, 체크섬(checksum) 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하는 단계; 및 상기 기능들을 일 그룹으로서 수행하는 단계를 포함하고, 버스 활동은 비-그룹 기초로 상기 기능들을 수행하는 것에 비교하여 감소되며, 그룹핑은 원격 통신 디바이스에 있는 하드웨어에 걸쳐 데이터의 감소된 이동을 인에이블한다. 데이터의 2번의 이동들은 그룹을 수행하기 위해 이용되며, 암호화 및 해독화 중 적어도 하나의 기능은 데이터의 첫 번째 이동 이후에 수행된다. 인터넷 프로토콜/전송 제어(IP/TCP) 헤더들을 위한 부분적인 해독은 데이터의 두 번째 이동 이후에 수행된다.
다른 양상에서, 패킷화된 데이터의 원격 통신 프로세싱에 관한 기능들을 그룹핑함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱에서 효율성을 획득하고, 다음의 명령들을 실행할 수 있는 프로세서로서, 암호화, 해독화, 프레이밍, 체크섬 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하는 명령; 및 상기 기능들을 일 그룹으로서 수행하는 명령을 포함하고, 버스 활동은 비-그룹 기초로 상기 기능들을 수행하는 것에 비교하여 감소되는, 프로세서가 제공된다.
다른 양상에서, 패킷화된 데이터의 원격 통신 프로세싱에 관한 기능들을 그룹핑함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하기 위한 명령들을 포함하는 머신 판독가능 매체를 포함하고, 상기 명령들은 암호화, 해독화, 프레이밍, 체크섬 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하기 위한 명령; 및 그룹에서 상기 기능들을 수행하는 명령을 포함하고, 버스 활동은 비-그룹 기초로 상기 기능들을 수행하는 것에 비교하여 감소되는, 머신 판독가능 매체가 제공된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기에 대한 버퍼들을 제공하는 방법으로서, 상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적은 풀(pool)을 제공하는 단계; 상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 상기 버퍼들의 풀 상에서 상기 하드웨어로부터의 상태 신호들 및 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는(replenish), 방법이 제공된다. 상태 신호들은 감소된 프로세서 활동들 동안 타이밍되는 인터럽트와 연관된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기에 대한 버퍼들을 제공하고, 다음의 명령들을 실행할 수 있는 프로세서로서, 상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적인 풀을 제공하는 명령을 포함하고, 상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 상기 버퍼들의 풀 상에서 상기 하드웨어로부터의 상태 신호들 및 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는, 프로세서가 제공된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기를 위한 명령들을 포함하는 머신 판독가능 매체를 포함하고, 상기 명령들은, 상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적인 풀을 제공하기 위한 코드를 포함하고, 상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 상기 버퍼들의 풀 상에서 상기 하드웨어로부터의 상태 신호들 및 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는, 머신 판독가능 매체가 제공된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 타겟 및 소스 모듈들 사이의 판독 및 기록 동작들 동안 데이터의 중복 복사본(duplicate copy)들을 감소시키기 위한 방법으로서, 데이터가 상기 타겟 모듈로 복사될 것이라고 상기 원격 통신 디바이스에 있는 소스 모듈에 의해 타겟 모듈을 시그널링하는 단계; 상기 타겟 모듈에 의해 타겟-특정 구조를 전송하는 단계; 상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하는 단계; 상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트(populate)하는 단계; 및 상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하는 단계를 포함하고, 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성되는, 방법이 제공된다. 타겟-특정 구조는 예컨대 네트워크 드라이버 인터페이스 규격(NDIS)과 연관된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에서 타겟 및 소스 모듈들 사이에서 판독 및 기록 동작들 동안 데이터의 중복된 복사본들을 감소시킬 수 있고, 다음의 명령들을 실행할 수 있는 프로세서로서, 명령들은 데이터가 상기 타겟 모듈로 복사되어야 한다고 상기 원격 통신 디바이스에서 소스 모듈에 의해 타겟 모듈을 시그널링하기 위한 명령; 상기 소스 모듈로 상기 타겟 모듈에 의해 타겟-특정 구조를 전송하기 위한 명령; 상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하기 위한 명령; 상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트하기 위한 명령; 및 상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하기 위한 명령을 포함하고, 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성되는, 프로세서가 제공된다.
다른 양상에서, 패킷화된 데이터에 대한 원격 통신 디바이스에서 타겟 및 소스 모듈들 사이에서 판독 및 기록 동작들 동안 데이터의 중복된 복사본들을 감소시키기 위한 코드를 포함하는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 물건(product)으로서, 상기 코드는: 컴퓨터로 하여금 데이터가 상기 타겟 모듈로 복사되어야 한다고 상기 원격 통신 디바이스에서 소스 모듈에 의해 타겟 모듈을 시그널링하도록 하기 위한 코드; 컴퓨터로 하여금 상기 소스 모듈로 상기 타겟 모듈에 의해 타겟-특정 구조를 전송하도록 하기 위한 코드; 컴퓨터로 하여금 상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하도록 하기 위한 코드; 컴퓨터로 하여금 상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트 하도록 하기 위한 코드; 및 컴퓨터로 하여금 상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하도록 하기 위한 코드를 포함하고, 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성되는, 컴퓨터 프로그램 물건이 제공된다.
다른 양상에서, 원격 통신 디바이스에서 키스트림 생성을 위한 데이터 이동들을 감소시키는 방법으로서, 암호 파라미터들을 하드웨어로 프로그래밍하는 단계; 상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산(pre-compute)하는 단계; 뱅크에 상기 미리-계산된 키스트림들을 저장하는 단계; 및 데이터 플로우에 대한 적절한 키스트림을 소프트웨어로 제공하는 단계를 포함하고, 키스트림이 소프트웨어에 의해 요청되는 경우 상기 키스트림들의 뱅크가 키스트림이 충분한지에(sufficiency) 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는, 방법이 제공된다. 암호화된 파라미터들은 프로토콜 데이터 유닛들과 연관된다.
다른 양상에서, 원격 통신 디바이스에서 키스트림 생성을 위해 데이터 이동들을 감소시킬 수 있고, 다음의 명령들을 실행할 수 있는 프로세서로서: 상기 명령들은 암호화 파라미터들을 하드웨어로 프로그래밍하기 위한 명령; 상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산하기 위한 명령; 뱅크에 상기 미리-계산된 키스트림들을 저장하기 위한 명령; 및 데이터 플로우에 대한 적절한 키스트림을 소프트웨어로 제공하기 위한 명령을 포함하고, 상기 키스트림들의 뱅크는 키스트림이 소프트웨어에 의해 요구되는 경우 키스트림이 충분한지에 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는, 프로세서가 제공된다.
다른 양상에서, 원격 통신 디바이스에서 키스트림 생성에 대한 데이터 이동들을 감소시키기 위한 명령들을 포함하는 머신 판독가능 매체를 포함하고, 상기 명령들은: 암호화 파라미터들을 하드웨어로 프로그래밍하기 위한 명령; 상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산하기 위한 명령; 뱅크에 상기 미리-계산된 키스트림들을 저장하기 위한 명령; 및 소프트웨어로 데이터 플로우에 대한 적절한 키스트림을 제공하기 위한 명령을 포함하며, 상기 키스트림들의 뱅크는 키스트림이 소프트웨어에 의해 요청되는 경우 키스트림이 충분한지에 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는, 머신 판독가능 매체가 제공된다.
도 8은 예컨대 무선 단말과 같은, 무선 통신 장치일 수 있는 통신 장치(800)를 도시한다. 추가적으로 또는 대안적으로, 통신 장치(800)는 유선 네트워크 내에 존재할 수 있다. 통신 장치(800)는 무선 통신 단말에서 신호 분석을 수행하기 위한 명령들을 보유할 수 있는 메모리(802)를 포함할 수 있다. 추가적으로, 통신 장치(800)는 메모리(802) 내에 있는 명령들 및/또는 다른 네트워크 디바이스로부터 수신된 명령들을 실행할 수 있는 프로세서(804)를 포함할 수 있고, 명령들은 통신 장치(800)를 구성하거나 동작하는 것 도는 관련된 통신 장치에 관련될 수 있다.
도 9를 참조하면, 다중 액세스 무선 통신 시스템(900)이 도시된다. 다중 액세스 무선 통신 시스템(900)은 셀들(902, 904 및 906)을 포함하는 복수의 셀들을 포함한다. 양상에서, 시스템(900)에서, 셀들(902, 904, 906)은 복수의 섹터들을 포함하는 노드 B를 포함할 수 있다. 복수의 섹터들은 셀의 부분에서 UE들과 통신하기 위한 책임이 있는 각각의 안테나를 이용하여 안테나들의 그룹들에 의해 형성될 수 있다. 예컨대, 셀(902)에서, 안테나 그룹들(912, 914, 916)은 상이한 섹터에 각각 대응할 수 있다. 셀(904)에서, 안테나 그룹들(918, 920, 922)는 각각 상이한 섹터에 대응한다. 셀(906)에서, 안테나 그룹들(924, 926, 928)은 각각 상이한 섹터에 대응한다. 셀들(902, 904 및 906)은 각각의 셀(902, 904, 또는 906)의 하나 이상의 섹터들과 통신할 수 있는, 몇몇 무선 통신 디바이스들, 예컨대 사용자 장비 또는 UE들을 포함할 수 있다. 예컨대, UE들(930 및 932)은 노드 B(942)와 통신할 수 있고, UE들(934 및 936)은 노드 B(944)와 통신할 수 있고, UE들(938 및 940)은 노드 B(946)와 통신할 수 있다.
이제 도 10을 참조하면, 일 양상에 따른 다중 액세스 무선 통신 시스템이 도시된다. 액세스 포인트(1000)(AP)는 복수의 안테나 그룹들을 포함하고, 하나는 1004 및 1006을 포함하고, 다른 것은 1008 및 1010을 포함하며, 추가적인 것은 1012 및 1014를 포함한다. 도 10에서, 오직 2개의 안테나들이 각각의 안테나 그룹에 대해 도시되었지만, 더 많거나 더 적은 안테나들이 각각의 안테나 그룹에 대해 이용될 수 있다. 액세스 단말(1016)(AT)은 안테나들(1012 및 1014)과 통신하며, 안테나들(1012 및 1014)은 정보를 순방향 링크(1020)를 통해 액세스 단말(1016)로 전송하며 역방향 링크(1018)를 통해 액세스 단말(1016)로부터 정보를 수신한다. 액세스 단말(1022)은 안테나들(1006 및 1008)을 이용하여 통신하며, 안테나들(1006 및 1008)은 순방향 링크(1026)를 통해 액세스 단말(1022)로 정보를 전송하고, 역방향 링크(1024)를 통해 액세스 단말(1022)로부터 정보를 수신한다. FDD 시스템에서, 통신 링크들(1018, 1020, 1024 및 1026)은 통신을 위해 상이한 주파수를 이용할 수 있다. 예컨대, 순방향 링크(1020)는 역방향 링크(1018)에 의해 이용되는 것과 상이한 주파수를 이용한다.
그들이 통신하도록 설계된 안테나들 및/또는 영역들의 각각의 그룹은 종종 액세스 포인트의 섹터로서 지칭된다. 안테나 그룹들 각각은 섹터에 있는 단말들에 액세스하도록 통신하도록 설계된다. 순방향 링크들(1020 및 1026)을 통한 통신에서, 액세스 포인트(1000)의 전송 안테나들은 상이한 액세스 단말들(1016 및 1024)에 대해 순방향 링크들의 신호-대-잡음 비를 개선하기 위해 빔-형성을 이용한다. 또한, 그것의 커버리지 전체를 통해 랜덤하게 분산된 액세스 단말들로 전송하기 위한 빔-형성을 사용하는 액세스 포인트는, 모든 액세스 단말들로 하나의 안테나를 통해 전송하는 액세스 포인트 보다 이웃 셀들에 있는 액세스 단말들에 덜 간섭을 유발한다. 액세스 포인트는 단말들과 통신하기 위해 사용되는 고정된 스테이션일 수 있고, 또한 액세스 포인트, 노드 B, 또는 몇몇 다른 용어들로 지칭될 수 있다. 액세스 단밀은 또한 액세스 단말, 사용자 장비(UE), 무선 통신 디바이스, 단말, 액세스 단말 또는 몇몇 다른 용어로 지칭될 수 있다.
도 11을 참조하면, 시스템(1100)은 MIMO 시스템(1100)에서 송신기 시스템(210)(또한 액세스 포인트로 알려짐) 및 수신기 시스템(1150)(또한 액세스 단말로 알려짐)을 도시한다. 송신기 시스템(1110)에서, 다수의 데이터 스트림들을 위한 트래픽 데이터는 데이터 소스(1112)로부터 송신(TX) 데이터 프로세서(1114)로 제공된다. 각각의 데이터 스트림은 개별적인 송신 안테나를 통해 전송된다. TX 데이터 프로세서(1114)는 코딩된 데이터를 제공하기 위해 데이터 스트림에 대해 선택된 특정 코딩 방식에 기반하여 각각의 데이터 스트림에 대해 트래픽 데이터를 포맷, 코딩, 및 인터리빙한다.
각각의 데이터 스트림에 대한 코딩된 데이터는 OFDM 기술들을 이용하여 파일럿 데이터를 이용하여 멀티플렉싱된다. 파일럿 데이터는 일반적으로 알려진 방식으로 프로세싱되는 알려진 데이터 패턴이고, 채널 응답을 추정하기 위해 수신기 시스템에서 사용될 수 있다. 각각의 데이터 스트림에 대해 멀티플렉싱된 파일럿 및 코딩된 데이터는 그리고나서 변조 심벌들을 제공하기 위해 데이터 스트림에 대해 선택된 특정 변조 방식(예컨대, BPSK, QPSK, M-PSK, 또는 M-QAM)에 기반하여 변조(즉, 심벌 매핑)된다. 각각의 데이터 스트림에 대한 데이터 레이트, 코딩, 및 변조는 프로세서(1130)에 의해 수행되는 명령들에 의해 결정될 수 있다.
모든 데이터 스트림들에 대한 변조 심벌들은 그리고나서 TX MIMO 프로세서(1120)로 제공되며, 이는 변조 심벌들(예컨대, OFDM에 대해)을 추가적으로 프로세싱할 수 있다. TX MIMO 프로세서(1120)는 그리고나서 NT개의 송신기(TMTR)들(1122a 내지 1122t)로 NT개의 변조 심벌 스트림들을 제공한다. 특정 실시예에서, TX MIMO 프로세서(1120)는 데이터 심벌들의 심벌들로 그리고 심벌이 전송되고 있는 안테나로 빔-형성 가중치들을 적용한다.
각각의 송신기(1122)는 하나 이상의 신호들을 제공하기 위해 개별적인 심벌 스트림을 수신하여 프로세싱하고, 추가적으로 MIMO 채널을 통한 전송을 위해 적절한 변조된 신호를 제공하기 위해 아날로그 신호들을 컨디셔닝(예컨대, 증폭, 필터링 및 업-컨버팅)한다. 송신기들로부터의 NT개의 변조된 신호들(1122a 내지 1122t)은 그리고나서 각각 NT개의 안테나들(1124a 내지 1124t)로부터 전송된다.
수신기 시스템(1150)에서, 전송된 변조된 신호들은 NR개의 안테나들(1152a 내지 1152r)에 의해 수신되며 각각의 안테나(1152)로부터 수신된 신호는 개별적인 수신기(RCVR)(1154a 내지 1154r)로 제공된다. 각각의 수신기(1154)는 개별적인 수신된 신호를 컨디셔닝(예컨대, 필터링, 증폭 및 다운-컨버팅)하고, 샘플들을 제공하기 위해 컨디셔닝된 신호를 디지털화하며, 그리고 추가적으로 대응하는 “수신된” 심벌 스트림을 제공하기 위해 샘플들을 프로세싱한다.
RX 데이터 프로세서(1160)는 그리고나서 NT개의 “검출된” 심벌 스트림들을 제공하기 위해 특정 수신기 프로세싱 기술에 기반하여 NR개의 수신기들(1154)로부터 NR개의 수신된 심벌 스트림들을 수신하여 프로세싱한다. RX 데이터 프로세서(1160)는 그리고나서 데이터 스트림에 대해 트래픽 데이터를 복원하기 위해 각각의 검출된 심벌 스트림을 복조, 디-인터리빙, 및 디코딩한다. RX 데이터 프로세서(1160)에 의한 프로세싱은 송신기 시스템(1110)에서 TX MIMO 프로세서(1120) 및 TX 데이터 프로세서(1114)에 의해 수행되는 것과 상보적이다.
프로세서(1170)는 주기적으로 사용하기 위한 프리-코딩 매트릭스를 결정한다(아래서 설명). 프로세서(1170)는 매트릭스 인덱스 부분 및 랭크 값 부분을 포함하는 역방향 링크 메시지를 포뮬레이트(formulate)한다. 역방향 링크 메시지는 통신 링크 및/또는 수신된 데이터 스트림에 관한 다양한 타입들의 정보를 포함할 수 있다. 역방향 링크 메시지는 그리고나서 TX 데이터 프로세서(1138)에 의해 프로세싱되며, 이는 또한 데이터 소스(1136)로부터 다수의 데이터 스트림들에 대한 트래픽 데이터를 수신하고, 변조기(1180)에 의해 변조되며, 송신기들(1154a 내지 1154r)에 의해 컨디셔닝되며, 그리고 다시 송신기 시스템(1110)으로 전송된다.
송신기 시스템(1110)에서, 수신기 시스템(1150)으로부터의 변조된 신호들은 안테나(1124)에 의해 수신되며, 수신기들(1122)에 의해 컨디셔닝되며, 복조기(1140)에 의해 복조되며, 수신기 시스템(1150)에 의해 전송되는 역방향 링크 메시지를 추출하기 위해 RX 데이터 프로세서(1142)에 의해 프로세싱된다. 프로세서(1130)는 그리고나서 빔-형성 가중치들을 결정하기 위해 사용하기 위한 프리-코딩 매트릭스를 결정하며 그리고나서 추출된 메시지를 프로세싱한다.
이제 도 12를 참조하면, 무선 신호 프로세싱에 관한 시스템이 제공된다. 시스템은 일련의 상호 연관된 기능 블록들로서 표현되며, 이는 프로세서, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합에 의해 구현되는 기능들을 나타낼 수 있다. 시스템은 패킷화된 데이터를 위한 원격 통신 디바이스에 있는 하드웨어 가속기에 대한 버퍼들을 제공할 수 있는 장치를 포함한다.
도 12를 참조하면, 무선 통신 시스템(1200)이 제공된다. 시스템(1200)은 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적 풀을 제공하기 위한 로직 모듈(1202) 또는 수단을 포함하고, 버퍼들의 풀에의 액세스는 원격 통신 디바이스에서 제공하기 위한 수단에 의해 제어된다. 이는 버퍼들의 풀 상의 하드웨어로 부터의 상태 신호들 및 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 버퍼들의 풀을 동적으로 조절하기 위한 로직 모듈(1204) 또는 수단을 포함하며, 풀에 있는 버퍼들은 제공하기 위한 수단을 통해 채워진다. 시스템(1200)은 또한 캐시-정렬 메모리 위치들을 분석하기 위한 로직 모듈(1206) 또는 수단을 포함할 수 있다.
일 양상에서, 논리 채널들이 제어 채널들 및 트래픽 채널들로 분류된다. 논리 제어 채널들은 브로드캐스트 제어 채널(BCCH)를 포함할 수 있고, 이는 시스템 제어 정보를 브로드캐스팅하기 위한 DL 채널이다. 또한, 논리 제어 채널들은 페이징 제어 채널(PCCH)을 포함할 수 있고, 이는 페이징 정보를 전달하는 DL 채널이다. 또한, 논리 제어 채널들은 멀티캐스트 제어 채널(MCCH)을 포함할 수 있고, 이는 하나 또는 몇몇의 MTCH들에 대한 멀티미디어 브로드캐스트 및 멀티미디어 서비스(MBMS) 스케줄링 및 제어 정보를 송신하기 위해 사용되는 포인트-투-멀티포인트 DL 채널이다. 일반적으로, 무선 리소스 제어(RRC) 연결을 설정한 후에, 이 채널은 MBMS(예를 들어, 예전의 MCCH+MSCH)를 수신하는 UE들에 의해서만 사용된다. 추가적으로, 논리 제어 채널들은 전용 제어 채널(DCCH)을 포함할 수 있고, 이는 전용 제어 정보를 송신하는 포인트-투-포인트 양-방향 채널이며, RRC 연결을 가지는 UE들에 의해 사용될 수 있다. 일 양상에서, 논리 트래픽 채널들은 전용 트래픽 채널(DTCH)을 포함할 수 있고, 이는 사용자 정보의 전달을 위해 하나의 UE로 전용된 포인트-투-포인트 양-방향 채널이다. 또한, 논리 트래픽 채널들은 트래픽 데이터를 송신하기 위한 포인트-투-멀티포인트 DL 채널에 대한 멀티캐스트 트래픽 채널(MTCH)을 포함할 수 있다.
일 양상에서, 전송 채널들은 DL 및 UL로 분류된다. DL 전송 채널들은 브로드캐스트 채널(BCH), 다운링크 공유 데이터 채널(DL-SDCH) 및 페이징 채널(PCH)을 포함한다. 전체 셀을 통해 브로드캐스트되고 다른 제어/트래픽 채널들에 대해 사용될 수 있는 물리 계층(PHY) 리소스들에 매핑됨으로써, PCH는 UE 전력 절약(예를 들어, 불연속 수신(DRX) 사이클은 UE로 네트워크에 의해 표시될 수 있음, ...)을 지원할 수 있다. UL 전송 채널들은 랜덤 액세스 채널(RACH), 요청 채널(REQCH), 업링크 공유 데이터 채널(UL-SDCH) 및 복수의 PHY 채널들을 포함할 수 있다. PHY 채널들은 DL 채널들 및 UL 채널들의 일 세트를 포함할 수 있다.
DL PHY 채널들은 공통 파일럿 채널(CPICH); 동기화 채널(SCH); 공통 제어 채널(CCCH); 공유 DL 제어 채널(SDCCH); 멀티캐스트 제어 채널(MCCH); 공유 UL 할당 채널(SUACH); 확인 응답 채널(ACKCH); DL 물리 공유 데이터 채널(DL-PSDCH); UL 전력 제어 채널(UPCCH); 페이징 표시자 채널(PICH); 및/또는 로드 표시자 채널(LICH)을 포함할 수 있다.
UL PHY 채널들은 물리 랜덤 액세스 채널(PRACH); 채널 품질 표시자 채널(CQICH); 확인 응답 채널(ACKCH); 안테나 서브세트 표시자 채널(ASICH); 공유 요청 채널(SREQCH); UL 물리 공유 데이터 채널(UL-PSDCH); 및/또는 브로드밴드 파일럿 채널(BPICH)을 포함할 수 있다.
다른 용어들/컴포넌트들은: 3G 3세대, 3GPP 3세대 파트너쉽 프로젝트, ACLR 인접 채널 유출(leakage) 비, ACPR 인접 채널 전력 비, ACS 인접 채널 선택도, ADS 어드밴스드 디자인 시스템, AMC 적응형 변조 및 코딩, A-MPR 추가적인 최대 전력 감소, ARQ 자동 반복 응답, BCCH 브로드캐스트 제어 채널, BTS 베이스 트랜시버 스테이션, CDD 사이클릭 지연 다이버시티, CCDF 상보적 축적(cumulative) 분산 함수, CDMA 코드 분할 다중 액세스, CFI 제어 포맷 표시자, CO-MIMO 협동 MIMO, CP 사이클릭 프리픽스, CPICH 공통 파일럿 채널, CPRI 공통 공중 무선 인터페이스, CQI 채널 품질 표시자, CRC 사이클릭 리던던시 체크, DCI 다운링크 제어 표시자, DFT 이산 푸리에 변환, DFT-SOFDM 이산 푸리에 변환 확산 OFDMA, DL 다운링크(기지국에서 가입자로의 전송), DL-SCH 다운링크 공유 채널, D-PHY 500Mbps 물리 계층, DSP 디지털 신호 프로세싱, DT 개발 툴셋, DVSA 디지털 벡터 신호 분석, EDA 전기 설계 자동화, E-DCH 인핸스드 전용 채널, E-UTRAN 이벌브드 UMTS 지상 무선 액세스 네트워크, eMBMS 이벌브드 멀티미디어 브로드캐스트 멀티캐스트 시스템, eNB 이벌브드 노드 B, EPC 이벌브드 패킷 코어, EPRE 리소스 엘리먼트 당 에너지, ETSI 유러피안 원격 통신 표준 협회, E-UTRA 이벌브드 UTRA, E-UTRAN 이벌브드 UTRAN, EVM 에러 벡터 진폭, 및 FDD 주파수 분할 듀플렉스를 포함한다.
다른 용어들은 FTT 고속 푸리에 변환, FRC 고정된 기준 채널, FS 1 프레임 구조 타입 1, FS 2 프레임 구조 타입 2, GSM 모바일 통신을 위한 글로벌 시스템, HARQ 하이브리드 자동 반복 요청, HDL 하드웨어 설명 언어, HI HARQ 표시자, HSDPA 하이 스피드 다운링크 패킷 액세스, HSPA 하이 스피드 패킷 액세스, HSUPA 하이 스피드 업링크 패킷 액세스, IFFT 역 FFT, IOT 정보처리 상호운용 테스트, IP 인터넷 프로토콜, LO 로컬 오실레이터, LTE 롱 텀 에볼루션, MAC 매체 액세스 제어, MBMS 멀티미디어 브로드캐스트 멀티캐스트 서비스, MBSFN 단일-주파수 네트워크를 통한 멀티캐스트/브로드캐스트, MCH 멀티캐스트 채널, MIMO 다중 입력 다중 출력, MISO 다중 입력 단일 출력, MME 이동성 관리 엔티티, MOP 최대 출력 전력, MPR 최대 전력 감소, MU-MIMO 다중 사용자 MIMO, NAS 비-액세스 매체, OBSAI 오픈 기지국 아키텍쳐 인터페이스, OFDM 직교 주파수 분할 멀티플렉싱, OFDMA 직교 주파수 분할 다중 액세스, PAPR 피크-대-평균 전력 비, PAR 피크-대-평균 비, PBCH 물리 브로드캐스트 채널, P-CCPCH 주된 공통 제어 물리 채널, PCFICH 물리 제어 포맷 표시자 채널, PCH 페이징 채널, PDCCH 물리 다운링크 제어 채널, PDCP 패킷 데이터 컨버전스 프로토콜, PDSCH 물리 다운링크 공유 채널, PHICH 물리 하이브리드 ARQ 표시자 채널, PHY 물리 계층, PRACH 물리 랜덤 액세스 채널, PMCH 물리 멀티캐스트 채널, PMI 프리-코딩 매트릭스 표시자, P-SCH 주된 동기화 신호, PUCCH 물리 업링크 제어 채널, 및 PUSCH 물리 업링크 공유 채널을 포함한다.
다른 용어는 QAM 쿼드러쳐 진폭 변조, QPSK 쿼드러쳐 위상 시프트 키잉, RACH 랜덤 액세스 채널, RAT 무선 액세스 기술, RB 리소스 블록, RF 무선 무파수, RFDE RF 설계 환경, RLC 무선 링크 제어, RMC 기준 측정 채널, RNC 무선 네트워크 제어기, RRC 무선 리소스 제어, RRM 무선 리소스 관리, RS 기준 신호, RSCP 수신된 신호 코드 전력, RSRP 기준 신호 수신된 전력, RSRQ 기준 신호 수신된 품질, RSSI 수신된 신호 강도 표시자, SAE 시스템 아키텍쳐 에볼루션, SAP 서비스 액세스 포인트, SC-FDMA 싱글 캐리어 주파수 분할 다중 액세스, SFBC 공간-주파수 블록 코딩, S-GW 서빙 게이트웨이, SIMO 단일 입력 다중 출력, SISO 단일 입력 단일 출력, SNR 신호 대 잡음 비, SRS 사운딩 기준 신호, S-SCH 제 2 동기화 신호, SU-MIMO 단일 사용자 MIMO, TDD 시간 분할 듀플렉스, TDMA 시간 분할 다중 액세스, TR 기술 리포트, TrCH 전송 채널, TS 기술 규격, TTA 원격 통신 기술 협회, TTI 전송 시간 간격, UCI 업링크 제어 표시자, UE 사용자 장비, UL 업링크(가입자로부터 기지국으로의 전송), UL-SCH 업링크 공유 채널, UMB 울트라-모바일 브로드캐스트, UMTS 유니버설 모바일 원격 통신 시스템, UTRA 유니버설 지상 무선 액세스, UTRAN 유니버설 지상 무선 액세스 네트워크, VSA 벡터 신호 분석기, W-CDMA 광대역 코드 분할 다중 액세스를 포함한다.
다양한 양상들은 단말과 관련하여 여기서 설명됨을 주목해야한다. 단말은 시스템, 사용자 디바이스, 가입자 유닛, 가입자 스테이션, 모바일 스테이션, 모바일 디바이스, 원격 스테이션, 원격 단말, 액세스 단말, 사용자 단말, 사용자 에이전트, 또는 사용자 장비로서 지칭될 수 있다. 사용자 디바이스는 셀룰러 전화, 무선 전화, 세션 개시 프로토콜(SIP)전화, 무선 로컬 루프(WLL) 스테이션, PDA, 무선 접속 능력을 지닌 핸드헬드 디바이스, 단말 내의 모듈, 호스트 디바이스(예컨대, PCMCIA 카드) 또는 무선 모뎀에 접속된 다른 프로세싱 디바이스 내에 부착되고 집적화된 카드일 수 있다.
또한, 여기서 제시된 다양한 양상들 또는 특징들은 청구범위로 주장되는 사항의 다양한 양상들을 구현하기 위해 컴퓨터 또는 컴퓨팅 컴포넌트들을 제어하기 위해 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합을 생산하기 위한 표준 프로그래밍 및/또는 엔지니어링 기술을 사용하여 방법, 장치, 또는 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터 판독가능한 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터 판독가능한 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 추가적으로, 캐리어 웨이브는 음성 메일을 전송하고 수신하며, 셀룰러 네트워크와 같은 네트워크에 액세스하는데 사용되는 것과 같은 컴퓨터-판독가능 전자 데이터를 반송하기 위해 이용될 수 있음을 인식해야 한다. 물론, 당해 기술 분야에 속한 통상의 지식을 가진 자는 여기서 설명된 것들의 범위 또는 사상으로부터 벗어나지 않고 이 구성에 대해 많은 변형들이 이루어질 수 있음을 인식할 것이다.
본 명세서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정, 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있고, 일 컴포넌트는 하나의 컴퓨터 내에 로컬화될 수 있고, 또는 2개 이상의 컴퓨터들 사이에 분배될 수 있다.
위에서 설명된 것들은 하나 이상의 실시예들의 예들을 포함한다. 물론, 앞선 실시예들을 설명하는 목적들을 위해 컴포넌트들 또는 방법론들의 모든 도출가능한 조합을 설명하는 것은 가능하지 않으나, 당해 기술분야에 속한 통상의 지식을 가진 자는 많은 추가적인 다양한 실시예들의 조합 및 치환들이 가능함을 인식할 수 있다. 따라서, 설명된 실시예들은 첨부된 청구항들의 사상 및 범위 내에 해당하는 모든 이러한 변경들, 변형들 및 수정들을 포함하도록 의도된다. 또한, 용어 "포함하다(include)"는 발명의 상세한 설명 또는 청구항들 중 어느 한곳에서 사용되고 있고, 이러한 용어는 "포함하다(comprising)"가 청구항에서 전이적인 단어로서 사용될 때 해석되는 것처럼 용어 "포함하다(comprising)"에 유사한 방식으로 포괄적으로 의도된다.

Claims (35)

  1. 패킷화된 데이터를 프로세싱하는 동안 원격 통신 디바이스의 모뎀 프로세서에 대한 인터럽트(interrupt)들을 관리함으로써 상기 원격 통신 디바이스의 성능을 증가시키는 방법으로서,
    패킷화된 데이터를 수신하는 단계;
    상기 수신된 패킷화된 데이터와 관련하여 시간 및 데이터 분량(volume)-기반 임계치들 중 적어도 하나를 저장하는 단계;
    소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서에 대한 소프트웨어 인터럽트를 개시하는 단계; 및
    인터럽트가 개시되지 않으면 상기 패킷화된 데이터를 누적(accumulate)시키고, 인터럽트들의 빈도를 감소시키기 위해, 적어도 상기 시간 및 데이터 분량-기반 임계치들을 조절하는 단계를 포함하는, 원격 통신 디바이스의 성능을 증가시키는 방법.
  2. 제 1 항에 있어서,
    서비스 품질, 우선 순위, 프로세싱 대역폭, 버스 활동(activity), 또는 이용가능한 배터리 수명에 기반하여 임계치들을 조절하는 단계를 더 포함하는, 원격 통신 디바이스의 성능을 증가시키는 방법.
  3. 패킷화된 데이터를 프로세싱하는 동안 원격 통신 디바이스의 모뎀 프로세서에 대한 인터럽트들을 관리함으로써 상기 원격 통신 디바이스의 성능을 증가시킬 수 있는 프로세서로서,
    패킷화된 데이터를 수신하기 위한 명령;
    상기 수신된 패킷화된 데이터와 관련하여 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 저장하기 위한 명령;
    소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서에 대한 소프트웨어 인터럽트를 개시하기 위한 명령; 및
    인터럽트가 개시되지 않으면 상기 패킷화된 데이터를 누적시키기 위한 명령 - 적어도 상기 시간 및 데이터 분량-기반 임계치들을 조절하면, 인터럽트들의 빈도가 감소됨 - 을 실행할 수 있는, 프로세서.
  4. 제 3 항에 있어서,
    서비스 품질, 우선 순위, 프로세싱 대역폭, 버스 활동, 또는 이용가능한 배터리 수명에 기반하여 임계치들을 조절하는 것을 더 포함하는, 프로세서.
  5. 패킷화된 데이터를 프로세싱하는 동안 원격 통신 디바이스의 모뎀 프로세서에 대한 인터럽트들을 관리함으로써 상기 원격 통신 디바이스의 성능을 증가시키기 위한 코드를 포함하는 컴퓨터 판독가능 매체로서, 상기 코드는:
    컴퓨터로 하여금 패킷화된 데이터를 수신하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 수신된 패킷화된 데이터와 관련하여 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 저장하도록 하기 위한 코드;
    컴퓨터로 하여금 소프트웨어에 의해 프로세싱될 준비가 된 상기 패킷화된 데이터가 상기 시간 및 데이터 분량-기반 임계치들 중 적어도 하나를 초과하는 경우 상기 모뎀 프로세서에 대한 소프트웨어 인터럽트를 개시하도록 하기 위한 코드; 및
    컴퓨터로 하여금 인터럽트가 개시되지 않으면 상기 패킷화된 데이터를 누적시키도록 하기 위한 코드 - 적어도 상기 시간 및 데이터 분량-기반 임계치들을 조절하면, 인터럽트들의 빈도가 감소됨 - 를 포함하는,
    컴퓨터 판독가능 매체.
  6. 제 5 항에 있어서,
    컴퓨터로 하여금 서비스 품질, 우선 순위, 프로세싱 대역폭, 버스 활동, 또는 이용가능한 배터리 수명에 기반하여 임계치들을 조절하도록 하기 위한 코드를 더 포함하는,
    컴퓨터 판독가능 매체.
  7. 패킷화된 데이터의 원격 통신 프로세싱을 위한 기능들을 그룹핑(grouping)함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법으로서,
    암호화(ciphering), 해독화(deciphering), 하이-레벨 데이터 링크 제어(HDLC) 프레이밍(framing), 체크섬(checksum) 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하는 단계;
    상기 기능들을 하나의 그룹으로서 수행하는 단계 ― 버스 활동은 비-그룹(non-group) 기반으로 상기 기능들을 수행하는 것에 비교하여 감소됨 ―;
    데이터의 패킷의 일부를 수신하는 단계;
    상기 데이터의 패킷의 수신을 완료하기 이전에 상기 수신된 데이터의 패킷의 일부를 외부 메모리로 이동시키는 단계;
    상기 데이터의 패킷의 수신을 완료한 이후에 상기 데이터의 패킷을 디코드 버퍼로 이동시키는 단계; 및
    상기 디코드 버퍼에서 상기 데이터의 패킷을 해독하는 단계
    를 포함하는, 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법.
  8. 제 7 항에 있어서,
    상기 그룹핑은 상기 원격 통신 디바이스에 있는 하드웨어에 걸쳐 데이터의 감소된 이동을 인에이블(enable)시키는, 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법.
  9. 제 7 항에 있어서,
    데이터의 2개의 이동들은 상기 그룹을 수행하기 위해 이용되는, 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법.
  10. 삭제
  11. 제 7 항에 있어서,
    인터넷 프로토콜/전송 제어(IP/TCP) 헤더들을 위한 부분적인 해독은 상기 데이터의 첫 번째 이동 이후에 수행되는, 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하는 방법.
  12. 패킷화된 데이터의 원격 통신 프로세싱을 위한 기능들을 그룹핑함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득할 수 있는 프로세서로서,
    암호화, 해독화, 프레이밍, 체크섬 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하기 위한 명령;
    상기 기능들을 하나의 그룹으로서 수행하기 위한 명령 ―버스 활동은 비-그룹 기반으로 상기 기능들을 수행하는 것에 비교하여 감소됨―;
    데이터의 패킷의 일부를 수신하기 위한 명령;
    상기 데이터의 패킷의 수신을 완료하기 이전에 상기 수신된 데이터의 패킷의 일부를 외부 메모리로 이동시키기 위한 명령;
    상기 데이터의 패킷의 수신을 완료한 이후에 상기 데이터의 패킷을 디코드 버퍼로 이동시키기 위한 명령; 및
    상기 디코드 버퍼에서 상기 데이터의 패킷을 해독하기 위한 명령
    을 실행할 수 있는, 프로세서.
  13. 삭제
  14. 패킷화된 데이터의 원격 통신 프로세싱을 위한 기능들을 그룹핑함으로써 원격 통신 디바이스에 있는 기능들의 프로세싱의 효율성들을 획득하기 위한 코드를 포함하는 컴퓨터 판독가능 매체로서, 상기 코드는:
    컴퓨터로 하여금 암호화, 해독화, 프레이밍, 체크섬 계산들, 및 프로토콜 헤더 삽입 중 적어도 하나에 관한 기능들을 그룹핑하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 기능들을 그룹으로 수행하도록 하기 위한 코드 ― 버스 활동은 비-그룹 기반으로 상기 기능들을 수행하는 것에 비교하여 감소됨―;
    컴퓨터로 하여금 데이터의 패킷의 일부를 수신하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 데이터의 패킷의 수신을 완료하기 이전에 상기 수신된 데이터의 패킷의 일부를 외부 메모리로 이동시키도록 하기 위한 코드;
    컴퓨터로 하여금 상기 데이터의 패킷의 수신을 완료한 이후에 상기 데이터의 패킷을 디코드 버퍼로 이동시키도록 하기 위한 코드; 및
    컴퓨터로 하여금 상기 디코드 버퍼에서 상기 데이터의 패킷을 해독하도록 하기 위한 코드
    를 포함하는,
    컴퓨터 판독가능 매체.
  15. 제 14 항에 있어서, 인터넷 프로토콜/전송 제어(IP/TCP) 헤더들을 위한 부분 해독은 데이터의 첫번째 이동 이후에 수행되는,
    컴퓨터 판독가능 매체.
  16. 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기를 위한 버퍼들을 제공하는 방법으로서,
    상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적 풀(pool)을 제공하는 단계를 포함하며,
    상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 하드웨어로부터의 상태 신호들 및 상기 버퍼들의 풀에 대한 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는(replenish), 하드웨어 가속기를 위한 버퍼들을 제공하는 방법.
  17. 제 16 항에 있어서,
    상기 상태 신호들은 감소된 프로세서 활동들 동안 타이밍되는(timed) 인터럽트와 연관되는, 하드웨어 가속기를 위한 버퍼들을 제공하는 방법.
  18. 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기에 대한 버퍼들을 제공할 수 있는 프로세서로서,
    상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적인 풀을 제공하기 위한 명령들을 실행할 수 있으며,
    상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 하드웨어로부터의 상태 신호들 및 상기 버퍼들의 풀에 대한 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는, 프로세서.
  19. 제 18 항에 있어서, 상기 상태 신호들은 감소된 프로세서 활동들 동안 타이밍되는 인터럽트와 연관되는, 프로세서.
  20. 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기를 위한 코드를 포함하는 컴퓨터 판독가능 매체로서, 상기 코드는:
    컴퓨터로 하여금 상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적인 풀을 제공하도록 하기 위한 코드를 포함하고,
    상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에 있는 소프트웨어에 의해 제어되고, 상기 소프트웨어는 하드웨어로부터의 상태 신호들 및 상기 버퍼들의 풀에 대한 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하며, 상기 풀에 있는 버퍼들은 소프트웨어 제어를 통해 채워지는,
    컴퓨터 판독가능 매체.
  21. 제 20 항에 있어서,
    상기 상태 신호들은 감소된 프로세서 활동들 동안 타이밍되는 인터럽트와 연관되는,
    컴퓨터 판독가능 매체.
  22. 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 하드웨어 가속기를 위한 버퍼들을 제공할 수 있는 장치로서,
    상기 하드웨어 가속기에 의해 사용하기 위한 버퍼들의 동적인 풀을 제공하기 위한 수단 ― 상기 버퍼들의 풀에 대한 액세스는 상기 원격 통신 디바이스에서 상기 제공하기 위한 수단에 의해 제어됨 ―; 및
    하드웨어로부터의 상태 신호들 및 상기 버퍼들의 풀에 대한 임계치 정보 중 적어도 하나에 의해 표시되는 하드웨어 요구들에 따라 상기 버퍼들의 풀을 동적으로 조절하기 위한 수단을 포함하고, 상기 풀에 있는 버퍼들은 상기 제공하기 위한 수단을 통해 채워지는, 하드웨어 가속기를 위한 버퍼들을 제공할 수 있는 장치.
  23. 제 22 항에 있어서,
    캐쉬-정렬된 메모리 위치들을 분석하기 위한 수단을 더 포함하는, 하드웨어 가속기를 위한 버퍼들을 제공할 수 있는 장치.
  24. 패킷화된 데이터에 대한 원격 통신 디바이스에 있는 타겟 모듈과 소스 모듈 사이의 판독 및 기록 동작들 동안 데이터의 중복 복사본(duplicate copy)들을 감소시키기 위한 방법으로서,
    상기 원격 통신 디바이스에 있는 소스 모듈에 의해 데이터가 타겟 모듈로 복사될 것임을 상기 타겟 모듈로 시그널링하는 단계;
    상기 타겟 모듈에 의해 타겟-특정(target-specific) 구조를 상기 소스 모듈로 전송하는 단계;
    상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하는 단계;
    상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트(populate)하는 단계; 및
    상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하는 단계 - 여기서 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성됨 - 를 포함하는, 데이터의 중복 복사본들을 감소시키기 위한 방법.
  25. 제 24 항에 있어서,
    상기 타겟-특정 구조는 네트워크 드라이버 인터페이스 규격(NDIS; network driver interface specification)과 연관되는, 데이터의 중복 복사본들을 감소시키기 위한 방법.
  26. 패킷화된 데이터에 대한 원격 통신 디바이스에서 타겟 모듈과 소스 모듈 사이에서 판독 및 기록 동작들 동안 데이터의 중복 복사본들을 감소시킬 수 있는 프로세서로서,
    상기 원격 통신 디바이스에 있는 소스 모듈에 의해 데이터가 타겟 모듈로 복사될 것임을 상기 타겟 모듈로 시그널링하기 위한 명령;
    상기 타겟 모듈에 의해 타겟-특정 구조를 상기 소스 모듈로 전송하기 위한 명령;
    상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하기 위한 명령;
    상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트하기 위한 명령; 및
    상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하기 위한 명령 - 여기서 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성됨 - 을 실행할 수 있는, 프로세서.
  27. 제 26 항에 있어서,
    상기 타겟-특정 구조는 네트워크 드라이버 인터페이스 규격(NDIS)과 연관되는, 프로세서.
  28. 패킷화된 데이터에 대한 원격 통신 디바이스에서 타겟 모듈과 소스 모듈 사이에서 판독 및 기록 동작들 동안 데이터의 중복 복사본들을 감소시키기 위한 코드를 포함하는 컴퓨터 판독가능 매체로서, 상기 코드는:
    컴퓨터로 하여금 상기 원격 통신 디바이스에 있는 소스 모듈에 의해 데이터가 타겟 모듈로 복사될 것임을 상기 타겟 모듈로 시그널링하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 타겟 모듈에 의해 타겟-특정 구조를 상기 소스 모듈로 전송하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 소스 모듈에 의해 상기 타겟-특정 구조를 수신하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 소스 모듈에 의해 상기 타겟-특정 구조로 데이터를 파퓰레이트하도록 하기 위한 코드; 및
    컴퓨터로 하여금 상기 타겟 모듈에 의해 상기 타겟-특정 파퓰레이트된 데이터를 수신하도록 하기 위한 코드 - 여기서 상기 타겟-특정 구조를 갖는 데이터의 하나의 복사본이 생성됨 - 를 포함하는,
    컴퓨터 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 타겟-특정 구조는 네트워크 드라이버 인터페이스 규격(NDIS)과 연관되는,
    컴퓨터 판독가능 매체.
  30. 원격 통신 디바이스에서 키스트림(keystream) 생성을 위한 데이터 이동들을 감소시키는 방법으로서,
    암호화 파라미터들을 하드웨어로 프로그래밍하는 단계;
    상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산(pre-compute)하는 단계;
    뱅크에 상기 미리-계산된 키스트림들을 저장하는 단계; 및
    데이터 플로우에 대한 키스트림을 소프트웨어로 제공하는 단계를 포함하고, 키스트림이 소프트웨어에 의해 요청되는 경우 상기 키스트림들의 뱅크가 키스트림이 충분한지(sufficiency)에 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는, 원격 통신 디바이스에서 키스트림 생성을 위한 데이터 이동들을 감소시키는 방법.
  31. 제 30 항에 있어서,
    암호화된 파라미터들은 프로토콜 데이터 유닛들과 연관되는, 원격 통신 디바이스에서 키스트림 생성을 위한 데이터 이동들을 감소시키는 방법.
  32. 원격 통신 디바이스에서 키스트림 생성을 위해 데이터 이동들을 감소시킬 수 있는 프로세서로서,
    암호화 파라미터들을 하드웨어로 프로그래밍하기 위한 명령;
    상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산하기 위한 명령;
    뱅크에 상기 미리-계산된 키스트림들을 저장하기 위한 명령; 및
    데이터 플로우에 대한 키스트림을 소프트웨어로 제공하기 위한 명령을 실행할 수 있으며, 키스트림이 소프트웨어에 의해 요청되는 경우 상기 키스트림들의 뱅크가 키스트림이 충분한지에 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는, 프로세서.
  33. 제 32 항에 있어서,
    암호화된 파라미터들은 프로토콜 데이터 유닛들과 연관되는, 프로세서.
  34. 원격 통신 디바이스에서 키스트림 생성에 대한 데이터 이동들을 감소시키기 위한 코드를 포함하는 컴퓨터 판독가능 매체로서, 상기 코드는:
    컴퓨터로 하여금 암호화 파라미터들을 하드웨어로 프로그래밍하도록 하기 위한 코드;
    컴퓨터로 하여금 상기 하드웨어에 의해 먼저 다수의 패킷들에 대한 키스트림들을 미리-계산하도록 하기 위한 코드;
    컴퓨터로 하여금 뱅크에 상기 미리-계산된 키스트림들을 저장하도록 하기 위한 코드; 및
    컴퓨터로 하여금 소프트웨어로 데이터 플로우에 대한 키스트림을 제공하도록 하기 위한 코드를 포함하며, 키스트림이 소프트웨어에 의해 요청되는 경우 상기 키스트림들의 뱅크가 키스트림이 충분한지에 대해 테스트되며, 추가적인 키스트림들을 프로그래밍하기 위한 프로세싱 오버헤드는 상기 미리-계산된 키스트림들의 사용에 의해 최소화되는,
    컴퓨터 판독가능 매체.
  35. 제 34 항에 있어서,
    암호화된 파라미터들은 프로토콜 데이터 유닛들과 연관되는,
    컴퓨터 판독가능 매체.
KR1020127010814A 2008-06-19 2009-06-19 Wwan 기술들을 위한 하드웨어 가속 KR101501595B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7409908P 2008-06-19 2008-06-19
US61/074,099 2008-06-19
US12/487,576 2009-06-18
US12/487,576 US8898448B2 (en) 2008-06-19 2009-06-18 Hardware acceleration for WWAN technologies
PCT/US2009/048048 WO2009155570A2 (en) 2008-06-19 2009-06-19 Hardware acceleration for wwan technologies

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020117001474A Division KR101295601B1 (ko) 2008-06-19 2009-06-19 Wwan 기술들을 위한 하드웨어 가속

Publications (2)

Publication Number Publication Date
KR20120065427A KR20120065427A (ko) 2012-06-20
KR101501595B1 true KR101501595B1 (ko) 2015-03-11

Family

ID=41431312

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117001474A KR101295601B1 (ko) 2008-06-19 2009-06-19 Wwan 기술들을 위한 하드웨어 가속
KR1020127010814A KR101501595B1 (ko) 2008-06-19 2009-06-19 Wwan 기술들을 위한 하드웨어 가속

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117001474A KR101295601B1 (ko) 2008-06-19 2009-06-19 Wwan 기술들을 위한 하드웨어 가속

Country Status (7)

Country Link
US (1) US8898448B2 (ko)
EP (3) EP2314012B1 (ko)
JP (5) JP5290409B2 (ko)
KR (2) KR101295601B1 (ko)
CN (2) CN104539418B (ko)
TW (1) TW201004243A (ko)
WO (1) WO2009155570A2 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101343306B1 (ko) * 2009-03-12 2014-01-14 알까뗄 루슨트 협력 mimo에서 다운링크 서비스 데이터에 대한 콘텐츠 동기화를 수행하는 방법 및 그 장치
CN102428670B (zh) 2009-03-16 2015-04-01 黑莓有限公司 针对下行链路载波聚合的harq过程数量
CA2782730C (en) * 2009-12-03 2015-06-23 Lg Electronics Inc. Method and apparatus for transmitting a frame in a wireless ran system
US20110158340A1 (en) * 2009-12-28 2011-06-30 Qualcomm Incorporated Virtual antenna array for wireless devices
US9686048B2 (en) 2010-04-06 2017-06-20 Qualcomm Incorporated Delayed automatic repeat request (ARQ) acknowledgment
US8724548B2 (en) * 2010-04-22 2014-05-13 Qualcomm Incorporated Counter check procedure for packet data transmission
EP2477365B1 (en) * 2011-01-13 2015-03-11 Alcatel Lucent Transmission of encoded data packets
EP2490470B1 (en) * 2011-02-16 2019-10-09 Marvell World Trade Ltd. Recovery from decryption errors in a sequence of communication packets
KR20150079995A (ko) * 2011-10-03 2015-07-08 인텔 코포레이션 장치 간(d2d) 통신 메커니즘
US8917733B2 (en) 2011-12-06 2014-12-23 Qualcomm Incorporated Using wireless wide area network protocol information for managing a performance level of a processor
ES2720192T3 (es) * 2012-01-09 2019-07-18 Samsung Electronics Co Ltd Procedimiento y aparato de transferencia en un sistema de comunicación inalámbrica
JP5609902B2 (ja) * 2012-02-17 2014-10-22 株式会社バッファロー 無線通信装置、無線通信を行なう方法、及び、無線通信を無線通信装置に実行させるためのコンピュータプログラム
US8938551B2 (en) * 2012-04-10 2015-01-20 Intel Mobile Communications GmbH Data processing device
TW201412056A (zh) * 2012-09-14 2014-03-16 Realtek Semiconductor Corp 介面轉接器及其介面轉接方法
US9319878B2 (en) * 2012-09-14 2016-04-19 Qualcomm Incorporated Streaming alignment of key stream to unaligned data stream
US9526074B2 (en) 2013-03-15 2016-12-20 Google Technology Holdings LLC Methods and apparatus for determining a transmit antenna gain and a spatial mode of a device
AU2014245973B8 (en) 2013-03-27 2019-12-12 Kobelco Eco-Solutions Co., Ltd. Microalgae of the genus Euglena, method for producing polysaccharides, and method for producing organic compound
US9286129B2 (en) 2013-05-08 2016-03-15 International Business Machines Corporation Termination of requests in a distributed coprocessor system
US9385865B2 (en) 2013-07-18 2016-07-05 Marvell World Trade Ltd. Correcting deciphering mis-synchronization in a mobile communication terminal
US9674803B2 (en) 2013-09-23 2017-06-06 Qualcomm Incorporated Out-of synchronization detection and correction during compression
WO2015191995A1 (en) 2014-06-12 2015-12-17 Convida Wireless, Llc Context aware neighbor discovery
KR102202894B1 (ko) * 2014-08-28 2021-01-14 삼성전자 주식회사 이동 통신 네트워크에서 패킷 손실 관리 방법
US9801030B2 (en) 2015-07-15 2017-10-24 Qualcomm Incorporated Internal data transfer in EMBMS reception
KR101706629B1 (ko) * 2016-01-25 2017-02-16 주식회사 이노와이어리스 Mimo-ofdm 송신기에 대한 파워 캘리브레이션 방법
JP6396934B2 (ja) * 2016-02-15 2018-09-26 日本電信電話株式会社 パケット処理システム及びパケット処理方法
US20180069767A1 (en) * 2016-09-06 2018-03-08 Advanced Micro Devices, Inc. Preserving quality of service constraints in heterogeneous processing systems
KR20180080463A (ko) 2017-01-04 2018-07-12 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
KR102504660B1 (ko) 2018-02-05 2023-03-02 삼성전자주식회사 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치
CN109246022B (zh) * 2018-10-29 2022-03-25 京信网络系统股份有限公司 物理层加速控制方法、装置及其物理层加速卡、服务器
US10430355B1 (en) * 2018-10-30 2019-10-01 International Business Machines Corporation Mixing restartable and non-restartable requests with performance enhancements
JP7370697B2 (ja) * 2018-11-08 2023-10-30 キヤノン株式会社 通信装置、制御方法、およびプログラム
JP7370696B2 (ja) * 2018-11-08 2023-10-30 キヤノン株式会社 通信装置、制御方法、およびプログラム
TWI686064B (zh) 2019-03-14 2020-02-21 就肆電競股份有限公司 點對點網路加速系統
US11576056B1 (en) 2021-05-10 2023-02-07 T-Mobile Innovations Llc Unified data repository (UDR) messaging in a wireless communication network
US11973548B2 (en) 2022-02-03 2024-04-30 T-Mobile Usa, Inc. Adjusting a configuration of a wireless telecommunication network
CN114546527B (zh) * 2022-02-22 2023-10-03 复旦大学 一种纵向多方数据聚合计算解决方案系统
CN115357532B (zh) * 2022-07-01 2023-12-22 真可知 一种phy上行架构以降低5g定位芯片面积的方法
CN117150515B (zh) * 2023-10-31 2024-01-26 上海合见工业软件集团有限公司 Eda二次开发源代码的安全保护方法、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1406424A2 (en) * 2002-10-01 2004-04-07 NEC Infrontia Corporation Terminal device, method for processing communication data inside the terminal device, and program for implementing the method

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01122229A (ja) 1987-11-06 1989-05-15 Hitachi Ltd 乱数同期ずれ監視回路
JP2792866B2 (ja) * 1988-09-20 1998-09-03 富士通株式会社 バッファプール事前拡張装置
JP3435736B2 (ja) * 1992-06-30 2003-08-11 株式会社日立製作所 通信制御装置
US5796836A (en) 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
DE19640526A1 (de) 1996-10-01 1998-04-02 Deutsche Telekom Ag Verfahren zur Übertragung von Signalen
US6469991B1 (en) 1997-10-14 2002-10-22 Lucent Technologies Inc. Method for overload control in a multiple access system for communication networks
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6141705A (en) * 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
EP1037499A3 (en) * 1999-03-16 2004-04-21 Fujitsu Network Communications, Inc. Rotating buffer refresh
US6870932B2 (en) * 2001-05-07 2005-03-22 Asustek Computer Inc. Frame number identification and ciphering activation time synchronization for a wireless communications protocol
JP2003078565A (ja) * 2001-08-30 2003-03-14 Matsushita Electric Ind Co Ltd 無線通信装置
KR100765123B1 (ko) 2002-02-16 2007-10-11 엘지전자 주식회사 Srns 재할당 방법
JP3898965B2 (ja) 2002-03-06 2007-03-28 株式会社エヌ・ティ・ティ・ドコモ 無線リソース割り当て方法及び基地局
US7305493B2 (en) * 2002-11-27 2007-12-04 Intel Corporation Embedded transport acceleration architecture
JP2004248187A (ja) * 2003-02-17 2004-09-02 Iwatsu Electric Co Ltd 無線lan装置の制御方式
JP3968317B2 (ja) * 2003-03-31 2007-08-29 松下電器産業株式会社 無線基地局装置
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US7826457B2 (en) 2004-05-11 2010-11-02 Broadcom Corp. Method and system for handling out-of-order segments in a wireless system via direct data placement
US6987961B1 (en) * 2004-06-28 2006-01-17 Neomagic Corp. Ethernet emulation using a shared mailbox between two processors in a feature phone
US7930422B2 (en) * 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
US20060050679A1 (en) 2004-09-09 2006-03-09 Sam Shiaw-Shiang Jiang Method for On-Line Recovery of Parameter Synchronization for Ciphering Applications
US7245940B2 (en) 2004-10-19 2007-07-17 Kyocera Wireless Corp. Push to talk voice buffering systems and methods in wireless communication calls
US7627113B2 (en) * 2005-02-08 2009-12-01 Broadcom Corporation Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets
US7395385B2 (en) 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
EP2019554A3 (en) * 2005-03-10 2009-03-11 Qualcomm Incorporated A decoder architecture for optimized error management in streaming multimedia
JP4594153B2 (ja) 2005-04-08 2010-12-08 キヤノン株式会社 無線通信装置、制御方法、プログラム、記憶媒体
GB2426673B (en) 2005-05-27 2010-02-10 Sony Uk Ltd Data processing apparatus for performing a cryptographic method
US20070011358A1 (en) * 2005-06-30 2007-01-11 John Wiegert Mechanisms to implement memory management to enable protocol-aware asynchronous, zero-copy transmits
JP2007060365A (ja) 2005-08-25 2007-03-08 Nippon Telegr & Teleph Corp <Ntt> 無線通信装置および無線通信方法
US7351893B2 (en) 2005-12-02 2008-04-01 Ricetec, Ag Inbred rice line 053001
US7596628B2 (en) * 2006-05-01 2009-09-29 Broadcom Corporation Method and system for transparent TCP offload (TTO) with a user space library
TW200803371A (en) 2006-05-05 2008-01-01 Interdigital Tech Corp Ciphering control and synchronization in a wireless communication system
JP4991223B2 (ja) * 2006-09-08 2012-08-01 ルネサスエレクトロニクス株式会社 データ処理装置
US8214509B2 (en) * 2006-10-02 2012-07-03 Microsoft Corporation Receive coalescing and direct data placement
EP1916795A3 (en) 2006-10-25 2008-05-07 Innovative Sonic Limited Method and apparatus for handling protocol error in a wireless communications system
TW200820712A (en) 2006-10-31 2008-05-01 Asustek Comp Inc Method and apparatus for handling protocol error in a wireless communications system
US20080101609A1 (en) * 2006-10-31 2008-05-01 Innovative Sonic Limited Method and apparatus for handling protocol error in a wireless communications system
WO2008060097A1 (en) 2006-11-15 2008-05-22 Samsung Electronics Co., Ltd. Apparatus and method for transmitting/receiving ciphered packet in mobile communication system
US20080137574A1 (en) * 2006-12-08 2008-06-12 Innovative Sonic Limited Method and apparatus for handling data delivery in a wireless communications system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1406424A2 (en) * 2002-10-01 2004-04-07 NEC Infrontia Corporation Terminal device, method for processing communication data inside the terminal device, and program for implementing the method

Also Published As

Publication number Publication date
EP2922324B1 (en) 2020-04-15
EP2314012B1 (en) 2019-09-04
JP5290409B2 (ja) 2013-09-18
US20090316904A1 (en) 2009-12-24
EP2922323B1 (en) 2020-06-17
CN104539418A (zh) 2015-04-22
CN102057707B (zh) 2015-02-18
JP2011526438A (ja) 2011-10-06
KR20110025834A (ko) 2011-03-11
TW201004243A (en) 2010-01-16
EP2922323A1 (en) 2015-09-23
JP5596117B2 (ja) 2014-09-24
KR101295601B1 (ko) 2013-09-16
JP6113819B2 (ja) 2017-04-12
JP6367017B2 (ja) 2018-08-01
CN104539418B (zh) 2019-03-22
EP2922324A1 (en) 2015-09-23
JP2014209754A (ja) 2014-11-06
JP6113818B2 (ja) 2017-04-12
US8898448B2 (en) 2014-11-25
CN102057707A (zh) 2011-05-11
JP2016123082A (ja) 2016-07-07
JP2016123081A (ja) 2016-07-07
WO2009155570A3 (en) 2010-07-08
JP2013138431A (ja) 2013-07-11
EP2314012A2 (en) 2011-04-27
WO2009155570A2 (en) 2009-12-23
KR20120065427A (ko) 2012-06-20

Similar Documents

Publication Publication Date Title
KR101501595B1 (ko) Wwan 기술들을 위한 하드웨어 가속
JP5048848B2 (ja) Drxモードにおける場合のueにおける新規セルの識別を制御するための適切なトリガ・メカニズム
KR101292133B1 (ko) 업링크 ack/nack 리소스 할당을 위한 방법 및 장치
CN102017694B (zh) 用于下行链路数据到达的方法和装置
KR101351486B1 (ko) 핸드오버 메시지가 수신기에 의해 수신될 확률을 증가시키기 위한 방법 및 장치
US8687568B2 (en) Method and apparatus for scrambling for discrimination of semi persistent scheduling grants

Legal Events

Date Code Title Description
A107 Divisional application of patent
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: 20171228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5