KR20100083806A - 프로세서 간 통신을 위한 시스템 및 방법 - Google Patents

프로세서 간 통신을 위한 시스템 및 방법 Download PDF

Info

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
Application number
KR1020107009685A
Other languages
English (en)
Other versions
KR101163868B1 (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 KR20100083806A publication Critical patent/KR20100083806A/ko
Application granted granted Critical
Publication of KR101163868B1 publication Critical patent/KR101163868B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-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/1682Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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

프로세서 간 통신을 위한 시스템 및 방법{SYSTEM AND METHOD FOR INTER-PROCESSOR COMMUNICATION}
본 발명은 듀얼-프로세서 시스템을 포함하지만 그것에 제한되지 않는 멀티-프로세서 시스템에 관한 것이다.
에너지 효율적인, 내고장성(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 프로세서에 대한 프록시로서 이용하는 방법의 순서도를 도시한다.
본 발명의 특징들 및 이점들은 아래에 제시된 상세한 설명을 도면들과 관련하여 읽을 때 더욱 명백해질 것이고, 도면들에서는 같은 참조 문자들이 전체에 걸쳐서 대응하는 엘리먼트들을 식별한다. 도면들에서, 같은 참조 번호들은 일반적으로 동일한, 기능적으로 유사한, 및/또는 구조적으로 유사한 엘리먼트들을 지시한다. 엘리먼트가 처음 나타나는 도면은 대응하는 참조 번호의 가장 왼쪽 숫자(들)에 의해 지시된다.
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. 제1 프로세서와 제2 프로세서 사이의 통신을 용이하게 하는 방법으로서,
    상기 제1 프로세서로부터 상기 제2 프로세서로 연속적인 시리얼 클록 신호를 송신하는 단계, 및
    상기 연속적인 시리얼 클록 신호의 송신 동안에 상기 제1 프로세서로부터 상기 제2 프로세서로 제1 복수의 프레임들을 송신하는 단계 ― 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함함 ―
    를 포함하는, 통신을 용이하게 하는 방법.
  2. 제1항에 있어서,
    상기 연속적인 시리얼 클록 신호를 송신하는 단계는 I2S(Inter-IC Sound) 버스의 시리얼 클록 신호 라인을 통하여 상기 연속적인 시리얼 클록 신호를 송신하는 단계를 포함하고,
    상기 제1 복수의 프레임들을 송신하는 단계는 상기 I2S 버스의 제1 시리얼 데이터 라인을 통하여 상기 제1 복수의 프레임들을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법.
  3. 제1항에 있어서,
    상기 제1 복수의 프레임들의 각각은 고정 길이 프레임인 통신을 용이하게 하는 방법.
  4. 제1항에 있어서,
    상기 연속적인 클록 신호의 송신 동안에 상기 제2 프로세서로부터 상기 제1 프로세서로 제2 복수의 프레임들을 송신하는 단계를 더 포함하고,
    상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화되는 통신을 용이하게 하는 방법.
  5. 제4항에 있어서,
    상기 제2 복수의 프레임들을 송신하는 단계는 I2S(Inter-IC Sound) 버스의 제2 시리얼 데이터 라인을 통하여 상기 제2 복수의 프레임들을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법.
  6. 제4항에 있어서,
    상기 제1 프로세서로부터 상기 제2 프로세서로 워드 선택 신호를 송신하는 단계를 더 포함하고,
    상기 제1 복수의 프레임들을 송신하는 단계는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제1 복수의 프레임들의 각각을 송신하는 단계를 포함하고,
    상기 제2 복수의 프레임들을 송신하는 단계는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호에 동기하여 상기 제2 복수의 프레임들의 각각을 송신하는 단계를 포함하는 통신을 용이하게 하는 방법.
  7. 제6항에 있어서,
    상기 워드 선택 신호를 송신하는 단계는 I2S(Inter-IC Sound) 버스의 워드 선택 신호 라인을 통하여 상기 워드 선택 신호를 송신하는 단계를 포함하는 통신을 용이하게 하는 방법.
  8. 제4항에 있어서,
    상기 제1 프로세서로부터 상기 제2 프로세서로 송신된 적어도 하나의 프레임의 헤더에서 마커 워드(marker word)를 검출하는 단계, 및
    상기 검출된 마커 워드에 기초하여 상기 제2 복수의 프레임들의 송신을 동기화시키는 단계를 더 포함하는 통신을 용이하게 하는 방법.
  9. 제1항에 있어서,
    상기 제2 프로세서에의 송신을 위해 예정된 데이터 프레임을 제1 큐에 저장하는 단계, 및
    상기 제2 프로세서에의 송신을 위해 예정된 음성 프레임을 제2 큐에 저장하는 단계를 더 포함하고,
    상기 제1 복수의 프레임들을 송신하는 단계는 음성 우선순위화 방식(voice prioritization scheme)에 따라서 상기 데이터 프레임에 앞서 상기 음성 프레임을 상기 제2 프로세서에 송신하는 단계를 포함하는 통신을 용이하게 하는 방법.
  10. 멀티-프로세서 시스템으로서,
    제1 프로세서,
    제2 프로세서, 및
    상기 제1 프로세서와 상기 제2 프로세서를 연결하는 시리얼 버스 인터페이스를 포함하고,
    상기 제1 프로세서는 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 연속적인 시리얼 클록 신호를 송신하고 상기 연속적인 시리얼 클록 신호의 송신 동안에 상기 시리얼 버스 인터페이스를 통하여 상기 제2 프로세서에 제1 복수의 프레임들을 송신하도록 구성되고, 상기 제1 복수의 프레임들은 적어도 하나의 데이터 프레임을 포함하는 멀티-프로세서 시스템.
  11. 제10항에 있어서,
    상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
    상기 제1 프로세서는 상기 I2S 버스의 시리얼 클록 신호 라인을 통하여 상기 연속적인 시리얼 클록 신호를 송신하도록 구성되는 멀티-프로세서 시스템.
  12. 제10항에 있어서,
    상기 제1 복수의 프레임들의 각각은 고정 길이 프레임인 멀티-프로세서 시스템.
  13. 제10항에 있어서,
    상기 제2 프로세서는 상기 연속적인 클록 신호의 송신 동안에 상기 제1 프로세서에 제2 복수의 프레임들을 송신하도록 구성되고, 상기 제2 복수의 프레임들의 각각의 송신은 상기 제1 복수의 프레임들의 각각의 프레임의 각각의 송신과 동기화되는 멀티-프로세서 시스템.
  14. 제13항에 있어서,
    상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
    상기 제2 프로세서는 상기 I2S 버스의 제2 시리얼 데이터 라인을 통하여 상기 제2 복수의 프레임들을 송신하도록 구성되는 멀티-프로세서 시스템.
  15. 제13항에 있어서,
    상기 제1 프로세서는 상기 제2 프로세서에 워드 선택 신호를 송신하고 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제1 복수의 프레임들의 각각을 송신하도록 또한 구성되고,
    상기 제2 프로세서는 상기 연속적인 시리얼 클록 신호 및 상기 워드 선택 신호와 동기하여 상기 제2 복수의 프레임들을 송신하도록 또한 구성되는 멀티-프로세서 시스템.
  16. 제15항에 있어서,
    상기 시리얼 버스 인터페이스는 I2S(Inter-IC Sound) 버스를 포함하고,
    상기 제1 프로세서는 I2S(Inter-IC Sound) 버스의 워드 선택 신호 라인을 통하여 상기 워드 선택 신호를 송신하도록 구성되는 멀티-프로세서 시스템.
  17. 제13항에 있어서,
    상기 제2 프로세서는 상기 제1 프로세서로부터 송신된 적어도 하나의 프레임의 헤더에서 마커 워드(marker word)를 검출하고, 상기 검출된 마커 워드에 기초하여 상기 제2 복수의 프레임들의 송신을 동기화시키도록 또한 구성되는 멀티-프로세서 시스템.
  18. 제10항에 있어서, 상기 제1 프로세서는 상기 제2 프로세서에의 송신을 위해 예정된 데이터 프레임을 제1 큐에 저장하고, 상기 제2 프로세서에의 송신을 위해 예정된 음성 프레임을 제2 큐에 저장하고, 음성 우선순위화 방식(voice prioritization scheme)에 기초하여 상기 데이터 프레임에 앞서 상기 음성 프레임을 상기 제2 프로세서에 송신하도록 또한 구성되는 멀티-프로세서 시스템.
  19. 네트워크 인터페이스에 액세스할 수 없는 제2 프로세서에 대한 프록시로서 상기 네트워크 인터페이스에 액세스할 수 있는 제1 프로세서를 이용하는 방법으로서,
    I2S(Inter-IC Sound) 버스를 통하여 상기 제1 프로세서와 상기 제2 프로세서 사이에 데이터 링크를 확립하는 단계, 및
    상기 데이터 링크를 통하여 상기 제2 프로세서에 의해 상기 네트워크 인터페이스에 액세스하는 단계
    를 포함하는 방법.
  20. 제19항에 있어서,
    상기 네트워크 인터페이스에 액세스하는 단계는 상기 네트워크 인터페이스를 구성하는 단계를 포함하는 방법.
  21. 제20항에 있어서,
    상기 네트워크 인터페이스를 구성하는 단계는 NAT(network address traversal) 기능들을 구성하는 단계를 포함하는 방법.
  22. 제20항에 있어서,
    상기 네트워크 인터페이스를 구성하는 단계는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 단계를 포함하는 방법.
  23. 멀티-프로세서 시스템으로서,
    제1 프로세서,
    제2 프로세서,
    상기 제1 프로세서와 상기 제2 프로세서를 연결하는 I2S(Inter-IC Sound) 버스, 및
    상기 제1 프로세서에는 연결되지만 상기 제2 프로세서에는 연결되지 않은 네트워크 인터페이스를 포함하고,
    상기 제2 프로세서는 상기 I2S 버스를 통하여 상기 제1 프로세서와의 데이터 링크를 확립하고 상기 데이터 링크를 통하여 상기 네트워크 인터페이스에 액세스하도록 구성되는 멀티-프로세서 시스템.
  24. 제23항에 있어서,
    상기 제2 프로세서는 NAT(network address traversal) 기능들을 구성하는 것에 의해 상기 네트워크 인터페이스를 구성하도록 적응되는 멀티-프로세서 시스템.
  25. 제24항에 있어서,
    상기 제2 프로세서는 TCP(Transmission Control Protocol)/IP(Internet Protocol) 스택을 구성하는 것에 의해 상기 네트워크 인터페이스를 구성하도록 적응되는 멀티-프로세서 시스템.
KR1020107009685A 2007-10-02 2008-09-26 프로세서 간 통신을 위한 시스템 및 방법 KR101163868B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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