KR20100083806A - 프로세서 간 통신을 위한 시스템 및 방법 - Google Patents
프로세서 간 통신을 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20100083806A KR20100083806A KR1020107009685A KR20107009685A KR20100083806A KR 20100083806 A KR20100083806 A KR 20100083806A KR 1020107009685 A KR1020107009685 A KR 1020107009685A KR 20107009685 A KR20107009685 A KR 20107009685A KR 20100083806 A KR20100083806 A KR 20100083806A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- frames
- bus
- transmitting
- transmission
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1682—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Telephonic Communication Services (AREA)
Abstract
멀티-프로세서 시스템에서의 신뢰할 수 있는 프로세서 간 통신을 위한 수단이 설명된다. 하나의 양태에 따르면, 특별히 구성된 시리얼 버스가 제1 프로세서와 제2 프로세서 사이의 범용 데이터 링크로서 이용된다. 그 시리얼 버스는 I2S(Inter-IC Sound) 버스일 수 있다. 다른 양태에 따르면, 제2 프로세서에 존재하는 네트워크 인터페이스는 I2S 버스를 통하여 확립된 데이터 링크를 통해 제1 프로세서가 이용할 수 있게 된다. 이것은 제2 프로세서가 프록시로서 이용되고 원격 구성 및 NAT(network address traversal)를 지원하게 한다.
Description
본 발명은 듀얼-프로세서 시스템을 포함하지만 그것에 제한되지 않는 멀티-프로세서 시스템에 관한 것이다.
에너지 효율적인, 내고장성(fault-tolerant)의 시스템들을 달성하기 위해 듀얼-프로세서 디자인을 이용하는 것은 잘 알려져 있다. 듀얼-프로세서 시스템들은 (동일한 보드 상의 또는 개별 보드들 상의) 동일한 섀시에 2개의 개별 물리적 마이크로프로세서를 포함하는 것들이다. 듀얼-프로세서 아키텍처는 싱글-프로세서 아키텍처에 비하여 몇 가지 이점들을 제공한다. 예를 들면, 듀얼-프로세서 시스템에서는, 양쪽 프로세서들이 격리된 태스크들에 대해 동시에 개별적으로 작용할 수 있다. 그러한 멀티-태스킹 컴퓨터 능력은 그래픽 및 멀티미디어 파일들을 생성하고, 편집하고, 렌더링하는 것과 같은 프로세서 집약적인(processor-intensive) 애플리케이션들에서 결정적이다.
VoIP(Voice over Internet Protocol) 전화와 같은 통신 시스템에서, 듀얼-프로세싱 아키텍처는 음성 통신에서의 대기 시간(latency) 및 지터(jitter)를 최소화하도록 구현될 수 있다. 예시의 듀얼-프로세서 아키텍처는 전통적인 운영 체제(OS) 및 계산 태스크들을 처리하도록 구성되는 제1 중앙 처리 장치(CPU) 및 오디오 신호 데이터를 처리하도록 구성되는 디지털 신호 프로세서(DSP)를 포함할 수 있다. 그러나, 2개의 다른 종류의 분리된 및/또는 격리된 프로세서들이 협력적으로 함께 작업하기 위해서는, 그 프로세서들이 서로 통신하기 위한 신뢰할 수 있는 수단이 제공되어야 한다.
본 발명은 멀티-프로세서 시스템에서의 프로세서 간 통신을 위한 신뢰할 수 있는 수단을 제공한다. 본 발명의 하나의 양태에 따르면, 특별히 구성된 시리얼 버스가 제1 프로세서와 제2 프로세서 사이의 범용 데이터 링크로서 이용된다. 상기 시리얼 버스는 I2S(Inter-IC Sound) 버스일 수 있다. 본 발명의 다른 양태에 따르면, 제2 프로세서에 존재하는 네트워크 인터페이스는 I2S 버스를 통하여 확립된 데이터 링크를 통해 제1 프로세서가 이용할 수 있게 된다. 이것은 상기 제2 프로세서가 프록시로서 이용되고 원격 구성 및 NAT(network address traversal)를 지원하게 한다.
특히, 본 명세서에서는 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법이 설명된다. 그 방법에 따르면, 연속적인 시리얼 클록 신호가 상기 제1 프로세서로부터 상기 제2 프로세서로 송신된다. 상기 연속적인 시리얼 클록 신호의 송신 동안에 제1 복수의 프레임들이 상기 제1 프로세서로부터 상기 제2 프로세서로 송신되고, 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함한다. 상기 연속적인 시리얼 클록 신호를 송신하는 것은 I2S(Inter-IC Sound) 버스의 시리얼 클록 신호 라인을 통하여 상기 연속적인 시리얼 클록 신호를 송신하는 것을 포함할 수 있고, 상기 제1 복수의 프레임들을 송신하는 것은 상기 I2S 버스의 제1 시리얼 데이터 라인을 통하여 상기 제1 복수의 프레임들을 송신하는 것을 포함할 수 있다.
상기 방법은 상기 연속적인 클록 신호의 송신 동안에 상기 제2 프로세서로부터 상기 제1 프로세서로 제2 복수의 프레임들을 송신하는 단계를 포함하고, 상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화된다. 상기 제2 복수의 프레임들을 송신하는 것은 I2S(Inter-IC Sound) 버스의 제2 시리얼 데이터 라인을 통하여 상기 제2 복수의 프레임들을 송신하는 것을 포함한다.
상기 방법은 또한 상기 제1 프로세서로부터 상기 제2 프로세서로 워드 선택 신호를 송신하는 단계를 더 포함할 수 있고, 상기 제1 복수의 프레임들을 송신하는 것은 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제1 복수의 프레임들의 각각을 송신하는 것을 포함하고, 상기 제2 복수의 프레임들을 송신하는 것은 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호에 동기하여 상기 제2 복수의 프레임들의 각각을 송신하는 것을 포함한다.
또한 본 명세서에서는 멀티-프로세서 시스템이 설명된다. 그 시스템은 제1 프로세서, 제2 프로세서, 및 상기 제1 프로세서와 상기 제2 프로세서를 연결하는 시리얼 버스 인터페이스를 포함한다. 상기 제1 프로세서는 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 연속적인 시리얼 클록 신호를 송신하고 상기 연속적인 시리얼 클록 신호의 송신 동안에 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 제1 복수의 프레임들을 송신하도록 구성된다. 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함한다. 상기 시리얼 버스 인터페이스는 I2S 버스를 포함할 수 있다.
상기 제2 프로세서는 상기 연속적인 클록 신호의 송신 동안에 상기 제1 프로세서에 제2 복수의 프레임들을 송신하도록 구성될 수 있고, 상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화된다.
또한 본 명세서에서는 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 상기 네트워크 인터페이스에 액세스할 수 있는 제1 프로세서를 이용하는 방법이 설명된다. 그 방법에 따르면, I2S 버스를 통하여 상기 제1 프로세서와 상기 제2 프로세서 사이에 데이터 링크가 확립된다. 상기 네트워크 인터페이스는 그 후 상기 데이터 링크를 통하여 상기 제2 프로세서에 의해 액세스된다. 상기 네트워크 인터페이스에 액세스하는 것은 상기 네트워크 인터페이스를 구성하는 것을 포함할 수 있다. 상기 네트워크 인터페이스를 구성하는 것은 NAT(network address traversal) 기능들을 구성하는 것 또는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 것을 포함할 수 있다.
또한 본 명세서에서는 멀티-프로세서 시스템이 설명된다. 그 시스템은 제1 프로세서, 제2 프로세서, 상기 제1 프로세서와 상기 제2 프로세서를 연결하는 I2S 버스, 및 상기 제1 프로세서에는 연결되지만 상기 제2 프로세서에는 연결되지 않은 네트워크 인터페이스를 포함한다. 상기 제2 프로세서는 상기 I2S 버스를 통하여 상기 제1 프로세서와의 데이터 링크를 확립하고 상기 데이터 링크를 통하여 상기 네트워크 인터페이스에 액세스하도록 구성된다. 상기 제2 프로세서는 NAT(network address traversal) 기능들을 구성하는 것에 의해 또는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 것에 의해 상기 네트워크 인터페이스를 구성하도록 적응될 수 있다.
본 발명의 다양한 실시예들의 구조 및 동작뿐만 아니라, 본 발명의 추가적인 특징들 및 이점들이 첨부 도면들에 관련하여 아래에 상세히 설명된다. 본 발명은 본 명세서에 설명된 특정한 실시예들에 제한되지 않는다는 것에 주의한다. 그러한 실시예들은 본 명세서에서 단지 설명적인 목적을 위해 제시된다. 본 명세서에 포함된 교시에 기초하여 관련 기술 분야의 숙련자들에게는 추가적인 실시예들이 명백할 것이다.
본 명세서에 포함되고 본 명세서의 일부를 구성하는 첨부 도면들은 본 발명을 예증하고, 본 설명과 함께, 본 발명의 원리들을 설명하고 관련 기술 분야의 숙련자가 본 발명을 구현하고 이용할 수 있게 하는 데에 더욱 도움이 된다.
도 1은 본 발명을 구현할 수 있는 VoIP(Voice over Internet Protocol)를 위한 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 I2S 버스를 이용한 제1 프로세서와 제2 프로세서 간의 접속을 도시한다.
도 3은 본 발명의 실시예에 따른 I2S 버스를 통한 제1 및 제2 프로세서 사이의 고정-길이 프레임들의 동시 교환을 도시한다.
도 4는 본 발명의 실시예에 따른 2개의 프로세스들 사이에 프레임들을 송신하기 위한 음성 우선순위화 방식(voice prioritization scheme)을 구현하기 위해 이용되는 제1 및 제2 프로세서의 컴포넌트들을 도시하는 블록도이다.
도 5는 본 발명의 실시예에 따른 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법의 순서도를 도시한다.
도 6은 본 발명의 실시예에 따른 제1 프로세서가 제2 프로세서를 네트워크 프록시로서 이용하는 것을 도시하는 블록도이다.
도 7은 본 발명의 실시예에 따른 제1 프로세서가 제2 프로세서를 네트워크 프록시로서 이용하는 것을 도시하는 다른 블록도이다.
도 8은 본 발명의 실시예에 따른 네트워크에 액세스할 수 있는 제1 프로세서를 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 이용하는 방법의 순서도를 도시한다.
본 발명의 특징들 및 이점들은 아래에 제시된 상세한 설명을 도면들과 관련하여 읽을 때 더욱 명백해질 것이고, 도면들에서는 같은 참조 문자들이 전체에 걸쳐서 대응하는 엘리먼트들을 식별한다. 도면들에서, 같은 참조 번호들은 일반적으로 동일한, 기능적으로 유사한, 및/또는 구조적으로 유사한 엘리먼트들을 지시한다. 엘리먼트가 처음 나타나는 도면은 대응하는 참조 번호의 가장 왼쪽 숫자(들)에 의해 지시된다.
도 1은 본 발명을 구현할 수 있는 VoIP(Voice over Internet Protocol)를 위한 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 I2S 버스를 이용한 제1 프로세서와 제2 프로세서 간의 접속을 도시한다.
도 3은 본 발명의 실시예에 따른 I2S 버스를 통한 제1 및 제2 프로세서 사이의 고정-길이 프레임들의 동시 교환을 도시한다.
도 4는 본 발명의 실시예에 따른 2개의 프로세스들 사이에 프레임들을 송신하기 위한 음성 우선순위화 방식(voice prioritization scheme)을 구현하기 위해 이용되는 제1 및 제2 프로세서의 컴포넌트들을 도시하는 블록도이다.
도 5는 본 발명의 실시예에 따른 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법의 순서도를 도시한다.
도 6은 본 발명의 실시예에 따른 제1 프로세서가 제2 프로세서를 네트워크 프록시로서 이용하는 것을 도시하는 블록도이다.
도 7은 본 발명의 실시예에 따른 제1 프로세서가 제2 프로세서를 네트워크 프록시로서 이용하는 것을 도시하는 다른 블록도이다.
도 8은 본 발명의 실시예에 따른 네트워크에 액세스할 수 있는 제1 프로세서를 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 이용하는 방법의 순서도를 도시한다.
본 발명의 특징들 및 이점들은 아래에 제시된 상세한 설명을 도면들과 관련하여 읽을 때 더욱 명백해질 것이고, 도면들에서는 같은 참조 문자들이 전체에 걸쳐서 대응하는 엘리먼트들을 식별한다. 도면들에서, 같은 참조 번호들은 일반적으로 동일한, 기능적으로 유사한, 및/또는 구조적으로 유사한 엘리먼트들을 지시한다. 엘리먼트가 처음 나타나는 도면은 대응하는 참조 번호의 가장 왼쪽 숫자(들)에 의해 지시된다.
A. 예시 동작 환경
도 1은 본 발명의 실시예들이 동작할 수 있는 예시 동작 환경을 나타낸다. 특히, 도 1은 본 발명을 구현할 수 있는 VoIP 전화를 위한 시스템(100)의 블록도이다. 시스템(100)은 듀얼-프로세서 아키텍처를 이용한다. 구체적으로, 시스템(100)은 전통적인 운영 체제(OS) 및 계산 태스크들을 처리하도록 구성된 제1 프로세서(102) 및 오디오 신호 데이터를 처리하도록 구성된 제2 프로세서(104)를 포함한다. 하나의 실시예에서, 제1 프로세서(102)는 텍사스주 오스틴의 프리스케일 반도체 주식회사(Freescale Semiconductor, Inc.)에 의해 판매되는 MCIMX31(i.MX31) 멀티미디어 애플리케이션 프로세서이고 제2 프로세서(104)는 메사추세츠주 노우드(Norwood)의 아날로그 디바이스 주식회사(Analog Device, Inc.)에 의해 판매되는 ADSP-BF536 Blackfin® 임베디드 프로세서이다. 도 1의 시스템(100)에서, 제1 프로세서(102)는 리눅스 기반 중앙 처리 장치(CPU)로서 기능하도록 구성되는 반면 제2 프로세서(104)는 디지털 신호 프로세서(DSP)로서 동작한다.
도 1에 도시된 바와 같이, 제1 프로세서(102)는 제1 프로세서(102)에 의해 실행하기 위한 프로그램 명령어들뿐만 아니라 그러한 명령어들의 실행 동안에 사용되거나 생성되는 데이터를 저장하는 메모리(112)에 연결된다. 마찬가지로, 제2 프로세서(104)는 제2 프로세서(104)에 의해 실행하기 위한 프로그램 명령어들뿐만 아니라 그러한 명령어들의 실행 동안에 사용되거나 생성되는 데이터를 저장하는 메모리(116)에 연결된다. 도 1에 또한 도시된 바와 같이, 제2 프로세서(104)는 이더넷 PHY 및 MAC(122) 및 RJ45 커넥션(124)을 포함하는 네트워크 인터페이스(118), 및 PSTN 라인 인터페이스(126) 및 RJ11 커넥션(128)을 포함하는 옵션의 POTS(plain old telephone service) 인터페이스(120)에 연결된다.
도 1의 시스템(100)이 VoIP 스피커 폰으로서 동작하고 있을 때, 오디오 서브시스템(106)은 (도 1에 도시되지 않은) 마이크를 통해 사용자로부터의 음성 입력을 캡처하고 그 음성 입력을 아날로그 오디오 신호로 변환하다. 오디오 서브시스템(106)은 그 아날로그 오디오 신호를 제1 프로세서(102)에 제공하고, 제1 프로세서(102)는 그 아날로그 오디오 신호를 네트워크 인터페이스(118)를 통해 인터넷 프로토콜(IP) 네트워크에 송출되기 전에 압축을 위해 제2 프로세서(104)에 전달한다. 반대로, 압축된 오디오 신호는 네트워크 인터페이스(118)를 통해 IP 네트워크로부터 제2 프로세서(104)에 의해 수신된다. 제2 프로세서(104)는 압축된 오디오 신호를 압축 해제하여 디지털 오디오 신호를 생성하고 그 디지털 오디오 신호를 제1 프로세서(102)에 전달한다. 제1 프로세서(102)는 디지털 오디오 신호를 아날로그 형태로 변환하고 아날로그 오디오 신호를 (도 1에 도시되지 않은) 스피커를 통해 사용자에 재생하기 위해 오디오 서브시스템(106)에 전달한다.
제1 프로세서(102)에게 아날로그 오디오 입력 및 출력 신호들에의 액세스를 제공함으로써, 도 1의 시스템(100)은 제1 프로세서(102)가 음성 인식 또는 오디오 신호 변경과 같은, 그 신호들과 관련된 특정한 기능들을 수행하게 한다. 또한, 제1 프로세서(102)를 오디오 서브시스템(106)에 직접 연결함으로써, 도 1의 시스템(100)은 그 프로세서가 비-전화 통신 관련(non-telephony-related) 오디오 콘텐트를 재생하는 것과 같은 미디어 또는 멀티미디어 관련 기능들을 수행하기 위해 오디오 서브시스템(106)의 마이크 및 스피커를 이용하게 한다. 제1 프로세서(102)는 또한 LCD 디스플레이를 포함할 수 있는 디스플레이(110)를 통한 그래픽 사용자 인터페이스의 프리젠테이션, 및 키패드(108)를 통해 수신된 사용자 입력의 처리를 포함하지만 이에 제한되지 않는 다른 기능들을 수행하도록 구성된다.
대조적으로, 제2 프로세서(104)의 주요 기능은 네트워크 인터페이스(118)를 통한 IP 네트워크를 통한 오디오 신호의 각각의 송신 또는 수신을 위해 오디오 신호를 압축하고 압축 해제하는 것이다. 압축 및 압축 해제 기능은 제2 프로세서(104)에 의한 신호 처리 알고리즘으로서 구현되고 계산 집약적이다(computationally intensive). 제2 프로세서(104)는 또한 음성 활동 검출, 반향 제거(echo cancellation), 또는 전화 통신 시스템을 통한 오디오 신호의 송신 또는 수신에 관련된 다른 잘 알려진 기능들과 같은 부수적인 기능들을 수행하도록 구성될 수 있다.
제1 프로세서(102) 및 제2 프로세서(104)가 위에 설명된 방식으로 함께 작업하기 위해서는, 제1 프로세서(102)와 제2 프로세서(104) 사이에 신뢰할 수 있는 프로세서 간 통신이 달성되어야 한다. 아래에 더 상세히 설명되는 바와 같이, 이 신뢰할 수 있는 프로세서 간 통신은 특별히 구성된 링크를 이용하여 달성된다. 특히, 본 발명의 실시예에 따르면, 특별히 구성된 시리얼 버스(114)가 이용된다. 일 실시예에서, 그 시리얼 버스는 I2S(Inter-IC sound) 버스이다.
또한, 본 발명의 실시예에 따르면, 제2 프로세서(104)에 존재하는 네트워크 인터페이스(118)는 제1 프로세서(102)가 이용할 수 있게 된다. 사실상, 제2 프로세서(104)는 프록시로서 이용되고 원격 구성 및 NAT(network address traversal)를 지원한다. 이 특징은 또한 아래에서 더 상세히 설명될 것이다.
비록 본 발명의 양태들은 본 명세서에서 도 1의 예시 시스템(100)에 관련하여 설명되지만, 본 발명은 그 동작 환경에 제한되지 않는다. 관련 기술 분야의 숙련자들에 의해 이해되는 바와 같이, 본 발명은 시스템 기능들을 수행하기 위해 2개 이상의 프로세서를 이용하는 임의의 시스템에서 이용될 수 있다.
B. 본 발명의 실시예에 따라 시리얼 버스를 범용 데이터 링크로서 이용
본 발명의 실시예에 따르면, 특별히 구성된 시리얼 버스가 제1 프로세서와 제2 프로세서 사이의 범용 데이터 링크로서 이용된다. 본 명세서에 설명된 실시예에서, 그 시리얼 버스는 I2S 버스이지만, 본 발명은 그렇게 제한되지 않는다. 본 발명의 이 양태는 이제 도 1의 예시 동작 환경에 관련하여 더 상세히 설명될 것이고, 여기서 제1 프로세서(102)는 i.MX31 멀티미디어 애플리케이션 프로세서이고 제2 프로세서(104)는 ADSP-BF536 Blackfin® 임베디드 프로세서이다. 그러나, 본 발명은 이 특정 실시예에 제한되지 않고 다른 프로세스들이 이용될 수 있다.
관련 기술 분야의 숙련자들에 의해 이해되는 바와 같이, I2S 버스는 (콤팩트 디스크(CD) 플레이어, 디지털 오디오 테이프, 디지털 사운드 프로세서 및 디지털 TV-사운드와 같은) 디지털 오디오 장치들을 함께 연결하기 위한 필립스 반도체(Philips Semiconductors)에 의해 설계된 전자 시리얼 버스 인터페이스이다. 예를 들면, I2S 버스는 CD 플레이어에서 CD 트랜스포트와 디지털-아날로그(DAC) 컨버터 사이에 2-채널(스테레오) 펄스 코드 변조 디지털 데이터를 운반하는 시리얼 버스로서 기능할 수 있다. I2S 버스는 필립스 반도체에 의해 발행된 I2S 버스 명세(1986년 2월)에 설명되어 있고, 그 명세의 전체 내용은 마치 그것이 본 명세서에서 완전히 설명된 것처럼 참고로 통합된다.
I2S 버스는 일반적으로 오디오 데이터만을 처리하기 위해 이용되는 반면, (서브-코딩 및 컨트롤과 같은) 다른 신호들은 개별적으로 전송된다. 요구되는 핀의 수를 최소화하고 배선을 간단하게 유지하기 위해, I2S 버스는 3개의 시리얼 버스 라인들로 이루어진다: 2개의 시분할 다중화된 데이터 채널들을 갖는 시리얼 데이터 라인, 워드 선택 라인, 및 연속적인 시리얼 클록 라인. 데이터 및 클록 신호들을 분리시킴으로써, I2S 버스는 지터를 야기시키는 시간 관련 오류들을 회피하고, 그에 의해 지터 방지 장치들(anti-jitter devices)에 대한 필요를 제거한다. 지터는 DAC에서 왜곡(distortion)을 야기시킬 수 있다.
i.MX31 멀티미디어 애플리케이션 프로세서 및 ADSP-BF536 Blackfin® 임베디드 프로세서 양쪽 모두는 I2S 버스에 접속하기 위한 적어도 하나의 인터페이스를 제공한다. 특히, i.MX31 멀티미디어 애플리케이션 프로세서는, 각각이 I2S 버스에 접속하기 위해 이용될 수 있는, 2개의 SSI(Synchronous Serial Interface)/I2S 인터페이스들을 제공하는 반면, BF536 Blackfin® 임베디드 프로세서는, 각각이 I2S 가능한 동작을 지원하는, 2개의 시리얼 포트를 제공한다.
도 2에 도시된 바와 같이, 도 1의 시스템(100)의 하나의 구현에서, (본 명세서에서 i.MX31 프로세서(202)로도 불리는) i.MX31 멀티미디어 애플리케이션 프로세서(202) 및 (본 명세서에서 BF536 프로세서(204)로도 불리는) ADSP-BF536 Blackfin® 임베디드 프로세서(204)는 4-와이어 구성을 이용하여 I2S 버스(206)를 통하여 서로에 연결된다. 이 4-와이어 구성에 따르면, 제1 와이어(232)는 연속적인 시리얼 클록(SCK)를 운반하기 위해 이용되고, 제2 와이어(234)는 워드 선택 신호(WS)를 운반하기 위해 이용되고, 제3 와이어(236)는 BF536 프로세서(204)로부터 i.MX31 프로세서(202)로 시리얼 데이터(SD1)를 운반하기 위해 이용되고, 제4 와이어(238)는 i.MX31 프로세서(202)로부터 BF536 프로세서(204)로 시리얼 데이터(SD2)를 운반하기 위해 이용된다. SCK 및 WS의 송신의 방향은 어느 프로세서가 버스 마스터로서 기능하고 있는지에 좌우된다. 2개의 시리얼 데이터 라인들의 이용은 2개의 프로세스들 사이의 데이터의 동시 양방향 전송을 허용한다.
BF536 프로세서(204)는 전통적인 방식으로 오디오 신호들을 전송하기 위해서뿐만 아니라 멀티프로세서 통신을 위해 이용되는 데이터 신호들을 송신하기 위하여 I2S 버스(214)를 이용하도록 구성된다. I2S 버스(214)를 통하여 데이터 신호들을 송신하고 있는 동작 모드에서, BF536 프로세서(204)는 시리얼 클록 SCK를 정지하고 재시동하도록 구성된다. 대조적으로, i.MX31 프로세서(202)는 오디오 신호들만의 전송을 위해 I2S 버스를 이용하도록 구성된다. 그 결과, i.MX31 프로세서(202)는 BF536 프로세서(204)에 의한 시리얼 클록 SCK의 정지 및 재시동에 내성이 없다. 따라서, 데이터 신호들을 전송하기 위해 i.MX31 프로세서(202)에 의해 I2S 버스(214)가 이용될 때, 그 버스를 통하여 수신되어 i.MX31 프로세서(202)의 FIFO(first-in first-out) 버퍼에 저장된 데이터에 오류가 생길 수 있다.
이상적으로는 필요할 때만 2개의 프로세서들 사이에 가변 길이 프레임들을 송신하는 것을 선호할 것이다. 이것은 프로세서 사이클뿐만 아니라 DMA (메모리) 대역폭을 절약할 것이다. 그러나 이것은 반드시 성취할 수 있는 것은 아니다. 예를 들면, 위에 설명된 바와 같이, 2개의 프로세서들 사이에 데이터가 송신되고 있지 않은 기간들 동안의 시리얼 클록 SCK의 정지는 i.MX31 프로세서(202)가 동기화를 잃게 할 수 있고 그 프로세서의 FIFO 버퍼에 저장된 데이터에 오류가 생길 수 있다.
본 발명의 실시예는 시리얼 클록 SCK가 결코 정지되지 않는 것을 보장하는 계속적으로 작동하는(continually-running)(스트리밍) 프로토콜을 생성하고 이용하는 것에 의해 이 문제를 극복한다. 그 후 고도로 최적화된 패킷 모드 데이터 전송이 I2S 버스 인터페이스의 위에 레이어(layer)된다.
스트리밍 프로토콜은 고정 길이 헤더들을 갖는 고정 길이 프레임들을 이용한다. 예로서, 도 3은 고정 길이 헤더(312) 및 페이로드(314)를 갖는 대표적인 고정 길이 프레임(302)을 도시한다. 각 고정 길이 헤더는 프레임의 유형(예를 들면, 오디오 또는 데이터)을 식별하고, 또한 프레임에 의해 운반되는 패킷의 길이 및 체크섬과 같은 다른 정보를 포함한다. 이 필드들은 대표적인 헤더(312)에서 각각 길이(324) 및 체크섬(326)으로 표시되어 있다. 하나의 실시예에서, 체크섬은 프레임의 전체 데이터 위에 배치되는 16 비트 체크섬이다.
스트리밍 프로토콜에 따르면, 각 종점(endpoint)은 동시에 고정 길이 프레임들을 교환한다. 그러므로, 프레임 헤더의 제1 워드가 i.MX31 프로세서(202)에 의해 송신되고 있을 때, 다른 프레임 헤더의 제1 워드도 BF536 프로세서(204)에 의해 송신되고 있다. 이것은 각 프로세서가 데이터의 송신을 제어하기 위해 동일한 시리얼 클록 SCK 및 워드 선택 WS 신호를 이용하게 한다. 예시로서, 대표적인 고정 길이 프레임들(302 및 304)의 동시 교환이 도 3에 도시되어 있다. 본 발명의 실시예에서 WS 신호는 프레임 경계를 표시하기 위해 이용된다. 전술한 바와 같이, 각 프레임은 오디오 프레임 또는 데이터 프레임 중 어느 하나로서 분류된다. 하나의 실시예에서, 데이터 프레임들은 MAC(media access control) 헤더를 갖지 않는 원시(raw) IP(Internet Protocol) 데이터그램들로서 포맷된다.
본 발명의 실시예는 또한 2개의 프로세서들이 데이터 송신을 동기화하게 하는 프레임 동기화 프로토콜을 포함한다. 이 프레임 동기화 프로토콜은 시스템 시동 중에 이용되고, 또한 프로세서가 재부팅할 때 또는 어떤 이유로 2개의 프로세서들 사이에 동기화가 상실된 임의의 상황에서 이용될 수 있다.
프레임 동기화를 용이하게 하기 위해, 각 프레임의 헤더는 2개의 마커 워드들(marker words)을 포함한다. 이것은 도 3에 더 도시되어 있고, 도 3은 대표적인 프레임(302)의 헤더(312)가 제1 마커 워드(322) 및 제2 마커 워드(328)를 포함하는 것을 나타낸다. 프레임 동기화 동안에, 버스 마스터로서 기능하는 프로세서는 다른 프레임에 의해 송신된 프레임들의 경계를 검출할 때까지 계속적으로 "널"(빈) 프레임들을 클록 아웃한다(clocks out). 널 프레임은 그 프레임과 관련된 패킷 길이 및 체크섬을 0으로 설정하는 것에 의해 표시될 수 있다. 버스 마스터는 다른 프로세서의 마커 패턴을 검색함으로써 다른 프로세서에 의해 송신된 프레임들의 경계를 검출한다. 일단 다른 프로세서에 의해 송신된 프레임들의 경계가 검출되면, 버스 마스터는 그의 프레임 송신을 다른 프로세서의 프레임 송신에 정렬시킨다. 모든 추가적인 구성은 그 후 TCP(Transmission Control Protocol)/IP 계층에서 발생한다.
본 발명의 하나의 실시예에서, 각 프로세서(202 및 204)는 전술한 동기화 프로토콜을 트리거하기 위해 대역외 리셋 신호(out-of-band reset signal)를 수신하도록 구성된다. 동기화 프로토콜의 실행은 시간 및 프로세서 리소스들에 관하여 비용이 많이 들기 때문에, 가변 길이 프레임들의 송신을 지원하기 위해 그 프로토콜을 이용하는 것은 바람직하지 않지만, 그러한 구현이 가능하기는 하다.
본 발명의 추가 실시예에 따르면, 2개의 프로세서들(202 및 204)은 음성 우선순위화 방식(voice prioritization regime) 하에서 I2S 통신 링크를 통해 통신한다. 즉, 프레임들을 송신하고 있을 때, 미처리(pending) 음성 또는 오디오 프레임은 항상 미처리 데이터 프레임보다 우선한다. 이 방식은 시스템(100)에 의해 처리되고 있는 VoIP 전화 통화들과 관련된 대기 시간 및 지터를 최소화하도록 의도되어 있다.
도 4는 음성 우선순위화 방식을 구현하기 위해 이용되는 각 프로세서(202 및 204)의 컴포넌트들을 도시하는 블록도이다. 특히, 도 4에 도시된 바와 같이, 각 프로세서는 멀티플렉서(406)를 통해 송신기(408)에 연결된 데이터 큐(402) 및 음성 큐(404)를 포함하다. 데이터 큐(402)는 I2S 통신 링크를 통한 송신을 위해 예정된 데이터 프레임들을 보유하도록 구성되는 반면, 음성 큐(404)는 I2S 통신 링크를 통한 송신을 위해 예정된 음성 프레임들을 보유하도록 구성된다. 예를 들면, 도 4에 도시된 바와 같이, 데이터 큐(402)는 예시적인 데이터 프레임들(412)을 보유하고 있고 음성 큐(404)는 예시적인 음성 프레임들(414)을 보유하고 있다. 멀티플렉서(406)는 데이터 큐(402)로부터의 데이터 프레임 또는 음성 큐(404)로부터의 음성 프레임 중 어느 한쪽을 I2S 통신 링크를 통한 송신을 위해 송신기(408)에 선택적으로 제공하도록 구성된다. 멀티플렉서(406)는 또한 데이터 프레임들보다 음성 프레임들에 우선권을 부여함으로써 이 기능을 수행하도록 구성된다.
전술한 바와 같이, 본 발명의 실시예에 따르면, 데이터 프레임들 및 음성 프레임들은 고정 사이즈이다. 음성 통신을 위해 높은 대역폭의 TCP/IP 링크가 제공되는 것을 보장하기 위하여, 음성 정보를 운반하기 위해 큰 프레임 사이즈가 이용될 수 있다. 최대 효율을 위하여, 각 프레임은 가능한 한 적은 수의 메모리 사본들을 이용하여 송신된다. 전술한 바와 같이, 헤더 내의 프레임의 전체 데이터 위에 단순한 16 비트 체크섬이 배치된다. 그것 외에 프로토콜은 그의 처리의 대부분 동안 페이로드에 대한 어떠한 검사도 요구하지 않는다.
도 5는 전술한 설명에 따른 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법의 순서도(500)를 도시한다. 이제 도 1의 시스템(100)을 계속 참조하여 순서도(500)가 설명될 것이다. 그러나, 순서도(500)의 방법은 그 구현에 제한되지 않는다.
도 5에 도시된 바와 같이, 순서도(500)의 방법은 단계(502)에서 시작되고, 그 단계에서 제1 프로세서(102)로부터 제2 프로세서(104)로 시리얼 버스(114)를 통하여 연속적인 시리얼 클록이 송신된다. 이 단계는 I2S 버스의 시리얼 클록 신호 라인을 통하여 연속적인 시리얼 클록 신호를 송신하는 것을 포함할 수 있다.
단계(504)에서, 연속적인 시리얼 클록 신호의 송신 동안에 시리얼 버스(114)를 통하여 제1 프로세서(102)로부터 제2 프로세서(104)로 제1 복수의 프레임들이 송신된다. 이 단계는 I2S 버스의 제1 시리얼 데이터 라인을 통하여 제1 복수의 프레임들을 송신하는 것을 포함할 수 있다. 제1 복수의 프레임들은 음성 또는 데이터 프레임들을 포함할 수 있다. 제1 복수의 프레임들 각각은 고정 길이 프레임을 포함할 수 있다.
단계(506)에서, 연속적인 시리얼 클록 신호의 송신 동안에 시리얼 버스(114)를 통하여 제2 프로세서(104)로부터 제1 프로세서(102)로 제2 복수의 프레임들이 송신되고, 여기서 제2 복수의 프레임들의 각각의 송신은 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화된다. 이 단계는 I2S 버스의 제2 시리얼 데이터 라인을 통하여 제2 복수의 프레임들을 송신하는 것을 포함할 수 있다. 제2 복수의 프레임들은 음성 또는 데이터 프레임들을 포함할 수 있다. 제2 복수의 프레임들 각각은 고정 길이 프레임을 포함할 수 있다.
전술한 순서도(500)의 방법은 시리얼 버스(114)를 통하여 제1 프로세서(102)로부터 제2 프로세서(104)로 워드 선택 신호를 송신하는 단계를 더 포함할 수 있다. 그러한 실시예에서, 제1 복수의 프레임들을 송신하는 것은 연속적인 시리얼 클록 신호 및 워드 선택 신호와 동기하여 제1 복수의 프레임들을 송신하는 것을 포함할 수 있다. 또한, 그러한 실시예에서, 제2 복수의 프레임들을 송신하는 것은 연속적인 시리얼 클록 신호 및 워드 선택 신호와 동기하여 제2 복수의 프레임들을 송신하는 것을 포함할 수 있다. 워드 선택 신호를 송신하는 것은 I2S 버스의 워드 선택 신호 라인을 통하여 워드 선택 신호를 송신하는 것을 포함할 수 있다.
C. 본 발명에 따라 제1 프로세서가 제2 프로세서를 네트워크 프록시로서 이용
다수의 프로세서들을 통합하는 네트워크 가능한 소비자 전자 장치들은 종종 하나의 프로세서에 의해서만 액세스 가능한 단일 네트워크 인터페이스(예를 들면, 이더넷 또는 Wi-Fi 인터페이스)를 갖는다. 멀티-프로세서 시스템 내의 모든 프로세서들이 그 단일 네트워크 인터페이스를 이용할 수 있다는 유익할 것이다. 특히, 네트워크 액세스를 갖는 단일 프로세서가 원격 구성 및 NAT(network address traversal)을 지원하는 프록시로서 기능할 수 있다면 유익할 것이다.
위에 설명된 바와 같이, 본 발명의 하나의 실시예에서, I2S 버스와 같은 시리얼 버스는 (예를 들면 범용 CPU일 수 있는) 제1 프로세서와 (예를 들면 외부/원격 DSP일 수 있는) 제2 프로세서 사이에 고속, 큰 대역폭, 범용 데이터 링크로서 기능하여, 2개의 프로세서들 사이에 신뢰할 수 있는 데이터 전송을 제공한다. 본 발명의 다른 양태에 따르면, 상기 시리얼 버스는 또한 멀티-프로세서 시스템 내의 각 프로세서가 내부 스위치들 또는 다수의 트랜스시버들을 이용하는 것에 의지하지 않고 이더넷 또는 Wi-Fi 네트워크와 같은 네트워크에 액세스하는 것을 가능하게 하기 위해 이용될 수 있다.
예를 들면, 도 1에 관련하여 위에 설명된 시스템(100)에서, 네트워크 인터페이스(118)는 제2 프로세서(104)에 존재한다. 본 발명의 실시예에 따르면, 제1 프로세서(102)는 시리얼 버스(114)를 통해 원격 프로세서(104) 상의 네트워크 인터페이스(118)를 구성하고 이용하도록 적응된다. 그러한 실시예의 예가 도 6에 도시되어 있고, 도 6에서 제1 프로세서(102)는 (본 명세서에서 i.MX31 프로세서(602)로도 불리는) i.MX31 멀티미디어 애플리케이션 프로세서(602)로서 구현되고, 제2 프로세서(104)는 (본 명세서에서 BF536 프로세서(604)로도 불리는) ADSP-BF536 Blackfin® 임베디드 프로세서(604)로서 구현되고, 시리얼 버스(114)는 I2S 버스(606)로서 구현된다.
도 6에 도시된 실시예에 관련하여, i.MX31 프로세서(602)가 BF536 프로세서(604)를 구성하게 하는 프로토콜이 채용된다. 이 프로토콜은 I2S 버스(606)의 위에 레이어되고, NAT(network address traversal) 및 TCP/IP 스택의 구성뿐만 아니라 BF536 프로세서(604)에 존재하는 다른 기능들을 포함하는, 프로세서 간 데이터 링크 상의 다른 프로토콜들을 구성하기 위해 이용된다. 그러한 다른 기능들은 음성 엔진 구성, PSTN(Public Switched Telephone Network) 전화 통신, 시스템 하트비트(system heartbeat), 및 다른 잡다한 태스크들을 포함할 수 있지만 이에 제한되지는 않는다.
이 개념은 도 7에 더 도시되어 있다. 특히, 도 7은 제1 프로세서(702)가 내부 링크(708)를 통해 제2 프로세서(704)에 연결되는 본 발명의 실시예에 따른 멀티프로세서 시스템(700)을 도시한다. 제1 프로세서(702)는 내부 링크(708) 상에 구현된 I2S 인터페이스와 같은 시리얼 버스 인터페이스의 위에 레이어된 프로토콜을 이용하여 제2 프로세서(704) 내의 NAT/라우팅 로직(712)을 구성할 수 있다. 그러한 NAT/라우팅 로직(712)의 구성은 (도 6에서 "사설 주소 B"로 표시된) 제1 사설 IP 주소를 제1 프로세서(702)에 할당하는 것 및 ("사설 주소 A"로 표시된) 제2 사설 IP 주소를 제2 프로세서(704)에 할당하는 것을 포함할 수 있다. 그러한 사설 IP 주소들은 네트워크(706)에 존재하는 2개의 프로세서들 및 엔티티들 각각 사이의 통신을 관리하기 위해 잘 알려진 방식으로 NAT/라우팅 로직(712)에 의해 이용될 수 있고, 여기서 그러한 통신은 단일 네트워크 인터페이스(710)를 통하여 수행된다.
그러한 프로토콜의 이용은 특히 제2 프로세서(704)가 네트워크 라우터로서 이용된다는 점에서 관련된다. 그러한 경우에, 제2 프로세서(704)에 네트워크 구성 데이터를 제공하는 것이 필요하다. 이 실시예에 따르면, 내부 링크(708)는 고정 IP 주소들을 전달하기 위해 이용되고 TCP/IP는 추가의 TCP/IP 접속을 확립하기 위해 이용된다.
도 8은 전술한 설명에 따른 네트워크 인터페이스에 액세스할 수 있는 제1 프로세서를 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 이용하는 방법의 순서도(800)를 도시한다. 도 8에 도시된 바와 같이, 순서도(800)의 방법은 단계(802)에서 시작하고, 그 단계에서 제1 프로세서와 제2 프로세서 사이에 I2S 버스를 통하여 데이터 링크가 확립된다. 단계(804)에서, 그 데이터 링크를 통하여 제2 프로세서에 의해 네트워크 인터페이스가 액세스된다. 실시예에서, 네트워크 인터페이스에 액세스하는 것은 네트워크 인터페이스를 구성하는 것을 포함한다. 네트워크 인터페이스를 구성하는 것은, 예를 들면, NAT 기능들을 구성하는 것 및/또는 TCP/IP 스택을 구성하는 것을 포함할 수 있다.
D. 결론
본 발명의 다양한 실시예들이 위에 설명되었지만, 그것들은 제한이 아니라, 단지 예로서 제시되었다는 것을 이해해야 한다. 예를 들면, 비록 본 발명의 양태들은 위에서 도 1의 시스템(100)의 듀얼-프로세서 아키텍처에 관련하여 설명되었지만, 본 발명은 그 동작 환경에 제한되지 않는다. 오히려, 본 발명의 실시예들은 멀티-프로세서 아키텍처를 이용하는 임의의 시스템에서 구현될 수 있다.
또한, 관련 기술 분야의 숙련자들은 첨부된 청구항들에서 정의된 발명의 정신 및 범위로부터 일탈하지 않고 본 명세서에 설명된 본 발명의 실시예들에 대하여 형태 및 상세에서 다양한 변경들이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 발명의 폭 및 범위는 위에 설명된 예시적인 실시예들 중 어떠한 실시예에 의해서도 제한되지 않아야 하고, 다음의 청구항들 및 그들의 등가물들에 따라서만 한정되어야 한다.
Claims (25)
- 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법으로서,
상기 제1 프로세서로부터 상기 제2 프로세서로 연속적인 시리얼 클록 신호를 송신하는 단계, 및
상기 연속적인 시리얼 클록 신호의 송신 동안에 상기 제1 프로세서로부터 상기 제2 프로세서로 제1 복수의 프레임들을 송신하는 단계 ― 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함함 ―
를 포함하는, 통신을 용이하게 하는 방법. - 제1항에 있어서,
상기 연속적인 시리얼 클록 신호를 송신하는 단계는 I2S(Inter-IC Sound) 버스의 시리얼 클록 신호 라인을 통하여 상기 연속적인 시리얼 클록 신호를 송신하는 단계를 포함하고,
상기 제1 복수의 프레임들을 송신하는 단계는 상기 I2S 버스의 제1 시리얼 데이터 라인을 통하여 상기 제1 복수의 프레임들을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법. - 제1항에 있어서,
상기 제1 복수의 프레임들의 각각은 고정 길이 프레임인 통신을 용이하게 하는 방법. - 제1항에 있어서,
상기 연속적인 클록 신호의 송신 동안에 상기 제2 프로세서로부터 상기 제1 프로세서로 제2 복수의 프레임들을 송신하는 단계를 더 포함하고,
상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화되는 통신을 용이하게 하는 방법. - 제4항에 있어서,
상기 제2 복수의 프레임들을 송신하는 단계는 I2S(Inter-IC Sound) 버스의 제2 시리얼 데이터 라인을 통하여 상기 제2 복수의 프레임들을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법. - 제4항에 있어서,
상기 제1 프로세서로부터 상기 제2 프로세서로 워드 선택 신호를 송신하는 단계를 더 포함하고,
상기 제1 복수의 프레임들을 송신하는 단계는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제1 복수의 프레임들의 각각을 송신하는 단계를 포함하고,
상기 제2 복수의 프레임들을 송신하는 단계는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호에 동기하여 상기 제2 복수의 프레임들의 각각을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법. - 제6항에 있어서,
상기 워드 선택 신호를 송신하는 단계는 I2S(Inter-IC Sound) 버스의 워드 선택 신호 라인을 통하여 상기 워드 선택 신호를 송신하는 단계를 포함하는 통신을 용이하게 하는 방법. - 제4항에 있어서,
상기 제1 프로세서로부터 상기 제2 프로세서로 송신된 적어도 하나의 프레임의 헤더에서 마커 워드(marker word)를 검출하는 단계, 및
상기 검출된 마커 워드에 기초하여 상기 제2 복수의 프레임들의 송신을 동기화시키는 단계를 더 포함하는 통신을 용이하게 하는 방법. - 제1항에 있어서,
상기 제2 프로세서에의 송신을 위해 예정된 데이터 프레임을 제1 큐에 저장하는 단계, 및
상기 제2 프로세서에의 송신을 위해 예정된 음성 프레임을 제2 큐에 저장하는 단계를 더 포함하고,
상기 제1 복수의 프레임들을 송신하는 단계는 음성 우선순위화 방식(voice prioritization scheme)에 따라서 상기 데이터 프레임에 앞서 상기 음성 프레임을 상기 제2 프로세서에 송신하는 단계를 포함하는 통신을 용이하게 하는 방법. - 멀티-프로세서 시스템으로서,
제1 프로세서,
제2 프로세서, 및
상기 제1 프로세서와 상기 제2 프로세서를 연결하는 시리얼 버스 인터페이스를 포함하고,
상기 제1 프로세서는 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 연속적인 시리얼 클록 신호를 송신하고 상기 연속적인 시리얼 클록 신호의 송신 동안에 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 제1 복수의 프레임들을 송신하도록 구성되고, 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함하는 멀티-프로세서 시스템. - 제10항에 있어서,
상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
상기 제1 프로세서는 상기 I2S 버스의 시리얼 클록 신호 라인을 통하여 상기 연속적인 시리얼 클록 신호를 송신하도록 구성되는 멀티-프로세서 시스템. - 제10항에 있어서,
상기 제1 복수의 프레임들의 각각은 고정 길이 프레임인 멀티-프로세서 시스템. - 제10항에 있어서,
상기 제2 프로세서는 상기 연속적인 클록 신호의 송신 동안에 상기 제1 프로세서에 제2 복수의 프레임들을 송신하도록 구성되고, 상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화되는 멀티-프로세서 시스템. - 제13항에 있어서,
상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
상기 제2 프로세서는 상기 I2S 버스의 제2 시리얼 데이터 라인을 통하여 상기 제2 복수의 프레임들을 송신하도록 구성되는 멀티-프로세서 시스템. - 제13항에 있어서,
상기 제1 프로세서는 상기 제2 프로세서에 워드 선택 신호를 송신하고 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제1 복수의 프레임들의 각각을 송신하도록 또한 구성되고,
상기 제2 프로세서는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제2 복수의 프레임들을 송신하도록 또한 구성되는 멀티-프로세서 시스템. - 제15항에 있어서,
상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
상기 제1 프로세서는 I2S(Inter-IC Sound) 버스의 워드 선택 신호 라인을 통하여 상기 워드 선택 신호를 송신하도록 구성되는 멀티-프로세서 시스템. - 제13항에 있어서,
상기 제2 프로세서는 상기 제1 프로세서로부터 송신된 적어도 하나의 프레임의 헤더에서 마커 워드(marker word)를 검출하고, 상기 검출된 마커 워드에 기초하여 상기 제2 복수의 프레임들의 송신을 동기화시키도록 또한 구성되는 멀티-프로세서 시스템. - 제10항에 있어서, 상기 제1 프로세서는 상기 제2 프로세서에의 송신을 위해 예정된 데이터 프레임을 제1 큐에 저장하고, 상기 제2 프로세서에의 송신을 위해 예정된 음성 프레임을 제2 큐에 저장하고, 음성 우선순위화 방식(voice prioritization scheme)에 기초하여 상기 데이터 프레임에 앞서 상기 음성 프레임을 상기 제2 프로세서에 송신하도록 또한 구성되는 멀티-프로세서 시스템.
- 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 상기 네트워크 인터페이스에 액세스할 수 있는 제1 프로세서를 이용하는 방법으로서,
I2S(Inter-IC Sound) 버스를 통하여 상기 제1 프로세서와 상기 제2 프로세서 사이에 데이터 링크를 확립하는 단계, 및
상기 데이터 링크를 통하여 상기 제2 프로세서에 의해 상기 네트워크 인터페이스에 액세스하는 단계
를 포함하는 방법. - 제19항에 있어서,
상기 네트워크 인터페이스에 액세스하는 단계는 상기 네트워크 인터페이스를 구성하는 단계를 포함하는 방법. - 제20항에 있어서,
상기 네트워크 인터페이스를 구성하는 단계는 NAT(network address traversal) 기능들을 구성하는 단계를 포함하는 방법. - 제20항에 있어서,
상기 네트워크 인터페이스를 구성하는 단계는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 단계를 포함하는 방법. - 멀티-프로세서 시스템으로서,
제1 프로세서,
제2 프로세서,
상기 제1 프로세서와 상기 제2 프로세서를 연결하는 I2S(Inter-IC Sound) 버스, 및
상기 제1 프로세서에는 연결되지만 상기 제2 프로세서에는 연결되지 않은 네트워크 인터페이스를 포함하고,
상기 제2 프로세서는 상기 I2S 버스를 통하여 상기 제1 프로세서와의 데이터 링크를 확립하고 상기 데이터 링크를 통하여 상기 네트워크 인터페이스에 액세스하도록 구성되는 멀티-프로세서 시스템. - 제23항에 있어서,
상기 제2 프로세서는 NAT(network address traversal) 기능들을 구성하는 것에 의해 상기 네트워크 인터페이스를 구성하도록 적응되는 멀티-프로세서 시스템. - 제24항에 있어서,
상기 제2 프로세서는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 것에 의해 상기 네트워크 인터페이스를 구성하도록 적응되는 멀티-프로세서 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US97683307P | 2007-10-02 | 2007-10-02 | |
US60/976,833 | 2007-10-02 | ||
PCT/US2008/077882 WO2009045904A1 (en) | 2007-10-02 | 2008-09-26 | System and method for inter-processor communication |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100083806A true KR20100083806A (ko) | 2010-07-22 |
KR101163868B1 KR101163868B1 (ko) | 2012-07-13 |
Family
ID=40526626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107009685A KR101163868B1 (ko) | 2007-10-02 | 2008-09-26 | 프로세서 간 통신을 위한 시스템 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8755309B2 (ko) |
EP (1) | EP2195746B1 (ko) |
JP (1) | JP5363490B2 (ko) |
KR (1) | KR101163868B1 (ko) |
CN (1) | CN101861577A (ko) |
CA (1) | CA2701205C (ko) |
WO (1) | WO2009045904A1 (ko) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2195746B1 (en) | 2007-10-02 | 2014-03-26 | Id8 Group R2 Studios, Inc. | System and method for inter-processor communication |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8635412B1 (en) | 2010-09-09 | 2014-01-21 | Western Digital Technologies, Inc. | Inter-processor communication |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US8775707B2 (en) | 2010-12-02 | 2014-07-08 | Blackberry Limited | Single wire bus system |
CN102156957A (zh) * | 2011-01-25 | 2011-08-17 | 深圳市朗驰欣创科技有限公司 | 一种智能分析图像的方法、装置以及系统 |
EP2487858B1 (en) * | 2011-02-04 | 2013-12-18 | BlackBerry Limited | Systems and methods for encoding control messages in an audio bitstream |
US9032131B2 (en) | 2011-02-04 | 2015-05-12 | Blackberry Limited | Systems and methods for encoding control messages in an audio bitstream |
US9158670B1 (en) | 2011-06-30 | 2015-10-13 | Western Digital Technologies, Inc. | System and method for dynamically adjusting garbage collection policies in solid-state memory |
US8718806B2 (en) | 2011-09-02 | 2014-05-06 | Apple Inc. | Slave mode transmit with zero delay for audio interface |
US8825497B2 (en) | 2011-10-12 | 2014-09-02 | Blackberry Limited | Systems and methods for reducing audio disturbance associated with control messages in a bitstream |
EP2581903B1 (en) * | 2011-10-12 | 2017-08-23 | BlackBerry Limited | Systems and methods for reducing audio disturbance associated with control messages in a bitstream |
US9479275B2 (en) | 2012-06-01 | 2016-10-25 | Blackberry Limited | Multiformat digital audio interface |
CN104541473B (zh) | 2012-06-01 | 2017-09-12 | 黑莓有限公司 | 基于概率方法的用于保证多格式音频系统中的锁定的通用同步引擎 |
US9461812B2 (en) | 2013-03-04 | 2016-10-04 | Blackberry Limited | Increased bandwidth encoding scheme |
CN103488605A (zh) * | 2013-09-24 | 2014-01-01 | 许继集团有限公司 | 多处理器并行通讯的总线架构 |
US20160012007A1 (en) * | 2014-03-06 | 2016-01-14 | Knowles Electronics, Llc | Digital Microphone Interface |
US9473876B2 (en) | 2014-03-31 | 2016-10-18 | Blackberry Limited | Method and system for tunneling messages between two or more devices using different communication protocols |
JP6043764B2 (ja) * | 2014-08-25 | 2016-12-14 | 京セラ株式会社 | 通信端末 |
KR101797929B1 (ko) * | 2015-08-26 | 2017-11-15 | 서경대학교 산학협력단 | 매니코어 플랫폼에서 코어에 프로세스를 할당하는 방법 및 코어 프로세스간 통신 방법 |
US10235324B2 (en) * | 2015-09-30 | 2019-03-19 | Nxp Usa, Inc. | Interconnect sharing with integrated control for reduced pinout |
JP6643104B2 (ja) | 2016-01-22 | 2020-02-12 | キヤノン株式会社 | 放射線撮像装置、放射線撮像装置の制御方法、放射線撮像システム |
TWI695313B (zh) * | 2019-02-15 | 2020-06-01 | 矽統科技股份有限公司 | 音訊介面偵測裝置及方法 |
US11706273B2 (en) * | 2019-02-25 | 2023-07-18 | Ams Ag | Host communication circuit, client communication circuit, communication system, sound reproducing device and communication method |
EP3726393B1 (en) * | 2019-04-15 | 2023-05-31 | ams AG | Host communication circuit, client communication circuit, communication system, sound reproducing device and communication method |
CN115280825A (zh) * | 2020-03-17 | 2022-11-01 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN113726485A (zh) * | 2021-07-15 | 2021-11-30 | 深圳市有为信息技术发展有限公司 | 用于商用车车载终端的多处理器间的通信方法及车载终端 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4177514A (en) * | 1976-11-12 | 1979-12-04 | General Electric Company | Graph architecture information processing system |
US4757525A (en) | 1982-09-29 | 1988-07-12 | Vmx, Inc. | Electronic audio communications system with voice command features |
US5023778A (en) * | 1990-03-23 | 1991-06-11 | General Motors Corporation | Interprocessor communication method |
US6307868B1 (en) * | 1995-08-25 | 2001-10-23 | Terayon Communication Systems, Inc. | Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops |
US6046823A (en) * | 1998-03-12 | 2000-04-04 | Avision Inc. | Interface control for analog signal processing |
US6763017B1 (en) * | 1998-09-30 | 2004-07-13 | Cisco Technology, Inc. | Method and apparatus for voice port hunting of remote telephone extensions using voice over packet-data-network systems (VOPS) |
JP4006871B2 (ja) * | 1999-02-25 | 2007-11-14 | 株式会社デンソー | シリアル通信装置 |
US6535018B1 (en) * | 2000-07-26 | 2003-03-18 | Cirrus Logic, Inc. | Voltage level shifting circuits and methods and systems using the same |
AUPR604201A0 (en) * | 2001-06-29 | 2001-07-26 | Hearworks Pty Ltd | Telephony interface apparatus |
US7260090B2 (en) * | 2002-04-26 | 2007-08-21 | Ontash & Ermac, Inc. | Analog gateway |
US7996588B2 (en) * | 2002-10-04 | 2011-08-09 | Hewlett-Packard Company | Method and apparatus for real-time transport of multi-media information in a network |
US7313136B2 (en) * | 2003-06-26 | 2007-12-25 | Nokia Corporation | Method and system establishing a data link layer protocol on a I2C™ physical layer connection |
US20040263695A1 (en) * | 2003-06-30 | 2004-12-30 | Castillo Mike J. | Multi-processor media center |
US20060133343A1 (en) * | 2004-12-22 | 2006-06-22 | Nokia Corporation | Multi homing transport protocol on a multi-processor arrangement |
US7778718B2 (en) * | 2005-05-24 | 2010-08-17 | Rockford Corporation | Frequency normalization of audio signals |
US20070015516A1 (en) * | 2005-07-12 | 2007-01-18 | Huotari Allen J | Access point with location application systems and methods |
JP2007026033A (ja) * | 2005-07-15 | 2007-02-01 | Fujitsu Ltd | 半導体装置及び半導体装置の動作モード自動判定方法 |
US8213895B2 (en) * | 2005-10-03 | 2012-07-03 | Broadcom Europe Limited | Multi-wideband communications over multiple mediums within a network |
US20070112962A1 (en) * | 2005-11-14 | 2007-05-17 | Steve Lewontin | Network connection establishment using out of band connection request |
WO2008001254A1 (en) * | 2006-06-26 | 2008-01-03 | Nxp B.V. | Method and device for data packing |
US20080233869A1 (en) * | 2007-03-19 | 2008-09-25 | Thomas Baker | Method and system for a single-chip fm tuning system for transmit and receive antennas |
EP2195746B1 (en) | 2007-10-02 | 2014-03-26 | Id8 Group R2 Studios, Inc. | System and method for inter-processor communication |
-
2008
- 2008-09-26 EP EP08836345.2A patent/EP2195746B1/en active Active
- 2008-09-26 KR KR1020107009685A patent/KR101163868B1/ko active IP Right Grant
- 2008-09-26 WO PCT/US2008/077882 patent/WO2009045904A1/en active Application Filing
- 2008-09-26 CA CA2701205A patent/CA2701205C/en active Active
- 2008-09-26 CN CN200880116333A patent/CN101861577A/zh active Pending
- 2008-09-26 JP JP2010528044A patent/JP5363490B2/ja active Active
- 2008-09-26 US US12/239,269 patent/US8755309B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR101163868B1 (ko) | 2012-07-13 |
EP2195746A1 (en) | 2010-06-16 |
CA2701205A1 (en) | 2009-04-09 |
EP2195746B1 (en) | 2014-03-26 |
JP2010541101A (ja) | 2010-12-24 |
WO2009045904A1 (en) | 2009-04-09 |
CN101861577A (zh) | 2010-10-13 |
JP5363490B2 (ja) | 2013-12-11 |
EP2195746A4 (en) | 2010-12-22 |
CA2701205C (en) | 2015-04-28 |
US8755309B2 (en) | 2014-06-17 |
US20090116475A1 (en) | 2009-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101163868B1 (ko) | 프로세서 간 통신을 위한 시스템 및 방법 | |
TWI309128B (en) | Flexible and scalable integrated access device | |
US6240084B1 (en) | Telephony-enabled network processing device with separate TDM bus and host system backplane bus | |
KR100204076B1 (ko) | 데이터 전송용 어댑터 | |
US7185094B2 (en) | Media session framework using a control module to direct and manage application and service servers | |
US7376147B2 (en) | Adaptor supporting different protocols | |
US5875233A (en) | Audio record and playback through a standard telephone in a computer system | |
US5649005A (en) | PC with telephony exchange function | |
JPS63212294A (ja) | デジタル信号処理システム | |
RU2761186C1 (ru) | Способ и устройство для обмена трафиком центра обработки данных, устройство и носитель данных | |
US20110134912A1 (en) | System and method for platform resilient voip processing | |
US20050147124A1 (en) | System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket | |
US20030046458A1 (en) | Data transfer equipment and aligner included in data transfer equipment | |
US20240040316A1 (en) | Integrated circuit arrangement supporting aggregated transducers | |
WO2023169202A1 (zh) | 视频流数据获取方法、装置、电子设备和计算机可读介质 | |
US9602569B2 (en) | Management of a remote digital terminal | |
WO2011135457A2 (en) | Systems and methods for providing a client-side application programming interface and telephony and private branch exchange services via an ethernet adapter | |
WO2010020646A2 (en) | A method of processing packetised data | |
US7165114B1 (en) | Web streaming in a messaging system | |
US7400617B1 (en) | Integrated voice-over-internet protocol processor | |
Volkov et al. | Implementing asynchronous zero-copy API for embedded IVR application | |
JP2006019777A (ja) | パケット転送システム、ゲートウェイ装置及びそれらに用いるパケット転送方法 | |
KR100397919B1 (ko) | 이더넷 정합장치의 아이 티 지 에스용 보코더장치 | |
JPH02298140A (ja) | マルチ回線通信制御方法及びその装置 | |
EP2228730A1 (en) | Electronic device having external data transfer functionality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160616 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170616 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190617 Year of fee payment: 8 |