KR20170086498A - 멀티-채널 오디오 할당 방식들 - Google Patents

멀티-채널 오디오 할당 방식들 Download PDF

Info

Publication number
KR20170086498A
KR20170086498A KR1020177012852A KR20177012852A KR20170086498A KR 20170086498 A KR20170086498 A KR 20170086498A KR 1020177012852 A KR1020177012852 A KR 1020177012852A KR 20177012852 A KR20177012852 A KR 20177012852A KR 20170086498 A KR20170086498 A KR 20170086498A
Authority
KR
South Korea
Prior art keywords
audio
data
block
port
channel
Prior art date
Application number
KR1020177012852A
Other languages
English (en)
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 KR20170086498A publication Critical patent/KR20170086498A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R5/00Stereophonic arrangements
    • H04R5/04Circuit arrangements, e.g. for selective connection of amplifier inputs/outputs to loudspeakers, for loudspeaker detection, or for adaptation of settings to personal preferences or hearing impairments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • H04L65/4069
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R3/00Circuits for transducers, loudspeakers or microphones
    • H04R3/12Circuits for transducers, loudspeakers or microphones for distributing signals to two or more loudspeakers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2420/00Details of connection covered by H04R, not provided for in its groups
    • H04R2420/09Applications of special connectors, e.g. USB, XLR, in loudspeakers, microphones or headphones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R2499/00Aspects covered by H04R or H04S not otherwise provided for in their subgroups
    • H04R2499/10General applications
    • H04R2499/11Transducers incorporated or for use in hand-held devices, e.g. mobile phones, PDA's, camera's

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Acoustics & Sound (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Otolaryngology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Stereophonic System (AREA)

Abstract

멀티-채널 오디오 할당 방식들이 개시된다. 본 개시의 일 양태는 오디오 소스에서 다수의 관련 오디오 채널들에 걸친 오디오 샘플들의 어큐뮬레이션을 위하여 제공한다. 관련 오디오 채널들은 이들의 상호관련성 (interrelatedness) 을 나타내고, 모든 관련된 오디오 채널들이 송신할 데이터를 가질 때, 관련 오디오 채널들이 타임 슬롯의 주어진 세그먼트 윈도우 내에 있도록, 소스가 시리얼 저전력 인터-칩 미디어 버스 (Serial Low-power Inter-chip Media Bus; SLIMbus) 의 타임슬롯들 상에 데이터를 릴리즈한다. 이 어큐뮬레이션은 모든 세그먼트 윈도우의 바운더리에서 반복된다. 이와 유사하게, 어큐뮬레이션은 오디오 싱크에서 수행될 수도 있다. 오디오 싱크 내의 컴포넌트들은 모든 관련 싱크들로부터의 상태 신호들이 미리 정의된 임계값들에 도달함을 나타내는 경우에만 수신된 데이터를 판독할 수도 있다. 이러한 어큐뮬레이션 옵션들을 제공하는 것에 의해, 오디오 충실도가 다수의 오디오 데이터 채널들에 걸쳐 유지된다.

Description

멀티-채널 오디오 할당 방식들{MULTI-CHANNEL AUDIO ALIGNMENT SCHEMES}
우선권 주장
본 출원은 2014년 11월 14일 출원되고 발명의 명칭이 "MULTI-CHANNEL AUDIO ALIGNMENT SCHEMES" 인 미국 특허 출원 일련 번호 제 14/541,577 호를 우선권으로 주장하며, 그 전체 내용을 본원에서는 참조로서 포함한다.
I. 개시의 분야
본 개시의 기술은 일반적으로, MIPI® 에 의해 공표된 시리얼 저전력 인터-칩 미디어 버스 (Serial Low-power Inter-chip Media Bus; SLIMbus) 사양에 관한 것이고, 특히 SLIMbus 를 이용하여 다수의 관련 오디오 채널들을 관리하기 위한 것에 관련된다.
II. 배경기술
전자 디바이스들, 이를 테면, 모바일 폰들 및 컴퓨터 테블릿들은 매일 다양한 사용을 지원하기 위하여 현대 사회에서 일반화되고 있다. 이들 전자 디바이스들은 각각 일반적으로 마이크로폰 및 스피커들을 포함한다. 전자 디바이스들에 이용되는 통상의 마이크로폰들 및 스피커들은 각각의 디바이스를 접속하기 위해 두 (2) 개의 전용 포트 와이어링을 요구하는 아날로그 인터페이스들을 갖는다. 그러나, 전자 디바이스들은 다수의 오디오 디바이스들, 이를 테면, 다수의 마이크로폰들 및/또는 스피커들을 포함할 수도 있다. 따라서, 이러한 전자 디바이스들에서의 마이크로프로세서 또는 이러한 다른 제어 디바이스가 공통 통신 버스를 통하여 다수의 오디오 디바이스들에 오디오 데이터를 통신가능하도록 허용하는 것이 바람직할 수도 있다. 또한, 오디오 채널들에 관련된 디지털 데이터를, 공통 통신 버스를 통하여 전자 디바이스에서의 상이한 오디오 디바이스들로 전달하기 위하여 정의된 통신 프로토콜을 제공하는 것이 또한 바람직할 수도 있다.
MIPI® Alliance 는 시리얼 버스 저전력 인터-칩 미디어 버스 (Serial Low-power Inter-chip Media Bus; SLIMbus™) 표준을 기술하며, 이 버스의 버전 1.01 은 2008 년 12 월 3 일에 채택자들에게 배포되었다. 이 표준의 카피본들은 www.mipi.org/specifications/serial-low-power-inter-chip-media-bus-slimbussm-specification 에서 MIPI® Alliance 의 멤버들에게 검색될 수 있다. SLIMbus 는 모바일 단말기 산업에서의 오디오 데이터에 대한 인터페이스로서 설계되어 모뎀들, 애플리케이션 프로세서들, 및 독립형 코덱 칩들을 허용한다. SLIMbus 는 주어진 채널의 샘플들을 운반하는 연속하는 타임 슬롯들을 갖춘 시분할 멀티플렉싱된 (time division multiplexed; TDM) 버스이다. 하나 보다 많은 채널이 대역폭이 허용할 때와 동시에 버스 상에서 정의될 수 있다. SLIMbus 는 일반적으로 모바일 단말기 산업 내에서 다수 채택되었다.
하나 보다 많은 채널이 SLIMbus 를 이용하는 컴퓨팅 디바이스에서 제공될 때, SLIMbus 표준은 이들 데이터 채널들이 최적의 오디오 충실도를 제공하도록 목적지 측에서 어떻게 정렬될 수 있는지를 해결하지 못한다. 따라서, SLIMbus 표준은 오디오 충실도에서의 대응하는 증가들과 함께 관련 채널 정렬을 제공하는 것에 의해 개선될 수도 있다.
상세한 설명에 개시된 양태들은 멀티-오디오 채널 정렬 방식들을 포함한다. 특히, 본 개시의 양태들은 오디오 소스에서 다수의 관련 오디오 채널들에 걸친 오디오 샘플들의 어큐뮬레이션을 위하여 제공한다. 관련 오디오 채널들은 이들의 상호관련성 (interrelatedness) 을 나타내고, 모든 관련된 오디오 채널들이 송신할 데이터를 가질 때, 관련 오디오 채널들이 타임 슬롯의 주어진 세그먼트 윈도우 내에 있도록, 소스가 시리얼 저전력 인터-칩 미디어 버스 (Serial Low-power Inter-chip Media Bus; SLIMbus) 의 타임슬롯들 상에 데이터를 릴리즈한다. 이 어큐뮬레이션은 모든 세그먼트 윈도우의 바운더리에서 반복된다. 이와 유사하게, 어큐뮬레이션은 오디오 싱크에서 수행될 수도 있다. 오디오 싱크 내의 컴포넌트들은 모든 관련 싱크들로부터의 상태 신호들이 미리 정의된 임계값들에 도달함을 나타내는 경우에만 수신된 데이터를 판독할 수도 있다. 이러한 어큐뮬레이션 옵션들을 제공하는 것에 의해, 오디오 충실도가 다수의 오디오 데이터 채널들에 걸쳐 유지된다.
이와 관련하여, 일 양태에서, 오디오 스트림을 제어하는 방법이 정의된다. 본 방법은 오디오 스트림으로부터의 제 1 오디오 채널과 연관된 제 1 데이터를 오디오 서비스에서 제 1 포트에 제공하는 단계를 포함한다. 본 방법은 또한 오디오 스트림으로부터의 제 2 오디오 채널과 연관된 제 2 데이터를 오디오 소스에서의 제 2 포트에 제공하는 단계를 포함한다. 본 방법은 제 1 포트에서, 제 1 선입선출 (first in, first out; FIFO) 레지스터에서의 제 1 데이터를 어큐뮬레이트하는 단계를 더 포함한다. 본 방법은 또한 제 2 포트에서, 제 2 FIFO 레지스터에서의 제 2 데이터를 어큐뮬레이트하고 동일한 채널 레이트들에서 동작하도록 제 1 포트 및 제 2 포트를 프로그래밍하는 단계를 포함한다. 본 방법은 제 1 오디오 채널 및 제 2 오디오 채널에서의 등가의 오디오 샘플들이 그룹핑되어 시분할 포맷에서 세그먼트 윈도우 바운더리에 대응하는 세그먼트 윈도우에 위치가능하게 되도록, 세그먼트 윈도우 바운더리에서, 제 1 및 제 2 FIFO 레지스터들을 드레인하는 단계를 더 포함한다.
다른 양태에서, 오디오 스트림을 제어하는 방법이 정의된다. 본 방법은 오디오 스트림으로부터의 제 1 오디오 채널과 연관된 제 1 데이터를 슬레이브 오디오 소스에서의 제 1 포트에 제공하는 단계를 포함한다. 본 방법은 또한 오디오 스트림으로부터의 제 2 오디오 채널과 연관된 제 2 데이터를 슬레이브 오디오 소스에서의 제 2 포트에 제공하는 단계를 포함한다. 본 방법은 제 1 포트에서, 제 1 FIFO 레지스터에서의 제 1 데이터를 어큐뮬레이트하고, 제 2 포트에서, 제 2 FIFO 레지스터에서의 제 2 데이터를 어큐뮬레이트하는 단계를 더 포함한다. 본 방법은 동일한 채널 레이트들에서 동작하도록 제 1 및 제 2 포트들을 프로그래밍하는 단계를 더 포함한다. 본 방법은 또한, 제 1 오디오 채널 및 제 2 오디오 채널에서의 등가의 오디오 샘플들이 그룹핑되어 시분할 포맷에서 세그먼트 윈도우 바운더리에 대응하는 세그먼트 윈도우에 위치가능하게 되도록, 세그먼트 윈도우 바운더리에서, 제 1 및 제 2 FIFO 레지스터들을 드레인하는 단계를 더 포함한다.
다른 양태에서, 오디오 스트림을 제어하는 방법이 정의된다. 본 방법은 마스터 오디오 싱크에서의 제 1 포트에서 오디오 버스로부터 제 1 오디오 채널과 연관된 제 1 데이터를 수신하는 단계를 포함한다. 본 방법은 또한, 마스터 오디오 싱크에서의 제 2 포트에서 오디오 버스로부터 제 2 오디오 채널과 연관된 제 2 데이터를 수신하는 단계를 포함한다. 본 방법은 제 1 포트에서, 제 1 FIFO 레지스터에서의 제 1 데이터를 어큐뮬레이트하는 단계를 더 포함한다. 본 방법은 또한 제 2 포트에서, 제 2 FIFO 레지스터에서의 제 2 데이터를 어큐뮬레이트하는 단계를 포함한다. 본 방법은 또한 동일한 채널 레이트들에서 동작하도록 제 1 및 제 2 포트들을 프로그래밍하는 단계를 포함한다. 본 방법은 제 1 FIFO 레지스터에서의 제 1 카운트를 제 1 미리정의된 임계값과 비교하는 단계를 더 포함한다. 본 방법은 제 1 카운트가 제 1 미리정의된 임계값을 초과하면 제 1 준비 신호를 설정하는 단계를 포함한다. 본 방법은 또한 제 2 FIFO 레지스터에서의 제 2 카운트를 제 2 미리정의된 임계값과 비교하는 단계를 포함한다. 본 방법은 제 2 카운트가 제 2 미리정의된 임계값을 초과하면 제 2 준비 신호를 설정하는 단계를 더 포함한다. 본 방법은 또한 제 1 준비 신호 및 제 2 준비 신호가 설정되면 제 1 및 제 2 FIFO 레지스터들의 컨텐츠들을 판독하는 것을 허용하는 단계를 포함한다.
다른 양태에서, 오디오 스트림을 제어하는 방법이 개시된다. 본 방법은 슬레이브 오디오 싱크에서의 제 1 포트에서 오디오 버스로부터 제 1 오디오 채널과 연관된 제 1 데이터를 수신하는 단계를 포함한다. 본 방법은 또한 슬레이브 오디오 싱크에서의 제 1 포트에서 오디오 버스로부터 제 1 오디오 채널과 연관된 제 1 데이터를 수신하는 단계를 포함한다. 본 방법은 제 1 포트에서, 제 1 FIFO 레지스터에서의 제 1 데이터를 어큐뮬레이트하는 단계를 더 포함한다. 본 방법은 또한 제 2 포트에서, 제 2 FIFO 레지스터에서의 제 2 데이터를 어큐뮬레이트하는 단계를 포함한다. 본 방법은 또한 동일한 채널 레이트들에서 동작하도록 제 1 및 제 2 포트들을 프로그래밍하는 단계를 포함한다. 본 방법은 제 1 FIFO 레지스터에서의 제 1 카운트를 제 1 미리정의된 임계값과 비교하는 단계를 더 포함한다. 본 방법은 제 1 카운트가 제 1 미리정의된 임계값을 초과하면 제 1 준비 신호를 설정하는 단계를 포함한다. 본 방법은 또한 제 2 FIFO 레지스터에서의 제 2 카운트를 제 2 미리정의된 임계값과 비교하는 단계를 포함한다. 본 방법은 제 2 카운트가 제 2 미리정의된 임계값을 초과하면 제 2 준비 신호를 설정하는 단계를 더 포함한다. 본 방법은 또한 제 1 준비 신호 및 제 2 준비 신호가 설정되면 제 1 및 제 2 FIFO 레지스터들의 컨텐츠들을 판독하는 것을 허용하는 단계를 포함한다.
도 1 은 오디오 엘리먼트들을 갖는 예시적인 모바일 단말기의 블록도이다.
도 2 는 외부 오디오 시스템을 구동하는 예시적인 모바일 단말기의 블록도이다.
도 3 은 연관된 컴포넌트들을 갖는 SLIMbus 의 간략화된 다이어그램이다.
도 4 는 SLIMbus 컴포넌트들 내의 포트들 및 2 개의 컴포넌트들 사이에 연장되는 SLIMbus 의 간략화된 블록도이다.
도 5 는 관련된 오디오 채널들이 SLIMbus 상에서 단일의 세그먼트 윈도우 내에 어떻게 제공되는지의 간략화된 타이밍 다이어그램이다.
도 6 은 본 개시의 예시적 양태에 따라 오디오 소스 컴포넌트 내의 엘리먼트들의 간략화된 블록도이다.
도 7 은 본 개시의 예시적 양태에 따라 오디오 싱크 컴포넌트 내의 엘리먼트들의 간략화된 블록도이다.
도 8 은 관련 채널들을 어큐뮬레이트 및 송신하는 소스에 대한 프로세스의 흐름도이다.
도 9 는 관련 채널들을 수신 및 어큐뮬레이트하는 싱크에 대한 프로세스의 흐름도이다.
도 10 은 슬레이스 소스로부터 데이터를 풀링하는 마스터 싱크와 연관된 예시적인 프로세스의 흐름도이다.
도 11 은 마스터 소스로부터 데이터를 풀링하는 슬레이브 싱크와 연관된 예시적인 프로세스의 흐름도이다.
도 12 는 마스터 싱크에 데이터를 푸싱하는 슬레이브 소스와 연관된 예시적인 프로세스의 흐름도이다.
도 13 은 마스터 싱크에 데이터를 푸싱하는 슬레이브 소스와 연관된 예시적인 프로세스의 흐름도이다.
이하 도면들을 참조하여, 본 개시의 수개의 예시적인 양태들이 기술된다. 단어 "예시적인" 은 "예, 사례, 또는 예시의 역할을 하는" 을 의미하는 것으로 본원에서 이용된다. "예시적인" 것으로 본원에서 설명된 임의의 양태는 반드시 다른 양태들에 비해 바람직하거나 유리한 것으로 해석될 필요는 없다.
상세한 설명에 개시된 양태들은 멀티-채널 오디오 정렬 방식들을 포함한다. 특히, 본 개시의 양태들은 오디오 소스에서 다수의 관련 오디오 채널들에 걸친 오디오 샘플들의 어큐뮬레이션을 위하여 제공한다. 관련 오디오 채널들은 이들의 상호관련성을 나타내고, 모든 관련된 오디오 채널들이 송신할 데이터를 가질 때, 관련 오디오 채널들이 타임 슬롯의 주어진 세그먼트 윈도우 내에 있도록, 소스가 SLIMbus 의 타임슬롯들 상에 데이터를 릴리즈한다. 이 어큐뮬레이션은 모든 세그먼트 윈도우의 바운더리에서 반복된다. 이와 유사하게, 어큐뮬레이션은 오디오 싱크에서 수행될 수도 있다. 오디오 싱크 내의 컴포넌트들은 모든 관련 싱크들로부터의 상태 신호들이 미리 정의된 임계값들에 도달함을 나타내는 경우에만 수신된 데이터를 판독할 수도 있다. 이러한 어큐뮬레이션 옵션들을 제공하는 것에 의해, 오디오 충실도가 다수의 오디오 데이터 채널들에 걸쳐 유지된다.
본 개시와 연관된 예시적인 방법들 및 프로세스들을 처리하기에 앞서, 이러한 방법들 및 프로세스들이 구현될 수도 있는 하드웨어 엘리먼트들의 개요가 도 1 내지 도 7 을 참조하여 제공된다. 예시적인 프로세스들은 도 8 및 도 9 를 참조하여 제공된다.
이와 관련하여, 도 1 은 모바일 단말기 (10) 의 일 예를 예시한다. 모바일 단말기 (10) 가 구체적으로 예시되지만, 멀티-채널 오디오를 위한 시간 분할 듀플렉싱 버스를 채용하는 다른 프로세서 기반 시스템들이 또한, 본 개시의 양태들로부터 유익할 수도 있다. 이 예에서, 모바일 단말기 (10) 는 각각이 하나 이상의 프로세서들 (14) 을 포함하는 하나 이상의 중앙 프로세싱 유닛들 (CPU들)(12) 을 포함한다. 프로세서들 (14) 은 오디오 프로세싱을 다루는 하나 이상의 애플리케이션 프로세서들을 포함할 수도 있다. CPU(들)(12) 은 일시적으로 저장된 데이터에 대한 고속 액세스를 위하여 프로세서(들)(14) 에 커플링된 캐시 메모리 (16) 를 가질 수도 있다. CPU(들)(12) 은 시스템 버스 (18) 에 커플링되며, 모바일 단말기 (10) 내에 포함된 디바이스들을 상호커플링할 수 있다. 잘 알려진 바와 같이, CPU(들)(12) 은 시스템 버스 (18) 상에서 어드레스, 제어, 및 데이터 정보를 교환함으로써 이들 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(12) 은 메모리 유닛들 (22(0)-22(N)) 에 액세스하도록 메모리 제어기 (20) 에 버스 트랜잭션 요청들을 통신할 수 있다. 도 1 에 도시되어 있지 않지만, 다수의 시스템 버스들 (18) 이 제공될 수 있고, 여기에서 각각의 시스템 버스 (18) 는 상이한 패브릭을 구성한다. 이와 마찬가지로, 예시적 양태에서, 시스템 버스들 (18) 중 하나는 오디오를 위한 시리얼 저전력 인터-칩 미디어 버스 (Serial Low-power Inter-chip Media Bus; SLIMbus) 일 수도 있다. 다른 예시적인 양태에서, SLIMbus 는 하나 이상의 입력 디바이스들 (예를 들어, 마이크로폰) 및 하나 이상의 출력 디바이스들 (예를 들어, 스피커) 에 대하여 제공될 수도 있다.
다른 디바이스들은 시스템 버스 (18) 에 접속될 수 있다. 도 1 에 예시된 바와 같이, 이들 디바이스들은 메모리 제어기 (20) 및 메모리 유닛들 (22(0)-22(N)) 을 포함하는 메모리 시스템, 하나 이상의 입력 디바이스들 (24), 하나 이상의 출력 디바이스들 (26), 하나 이상의 네트워크 인터페이스 디바이스들 (28), 및 하나 이상의 디스플레이 제어기들 (30) 을 예로서 포함할 수도 있다. 입력 디바이스(들)(24) 은 입력 키들, 스위치들, 마이크로폰들, 음성 프로세서들 등을 포함하지만 이들에 제한되지 않는 임의의 유형의 입력 디바이스를 포함할 수 있다. 입력 디바이스 (24) 가 마이크로폰인 이벤트에서, 이는 SLIMbus 에 접속될 수도 있다. 출력 디바이스(들)(26) 은 오디오 이를 테면, 스피커들, 비디오 이를 테면 비쥬얼 표시기들 등을 포함하지만 이들에 제한되지 않는 임의의 유형의 출력 디바이스를 포함할 수 있다. 출력 디바이스 (26) 가 스피커인 이벤트에서, 이는 SLIMbus 에 접속될 수도 있다. 네트워크 인터페이스 디바이스(들)(28) 은 네트워크 (32) 에 데이터를 그리고 네트워크로부터 데이터를 교환하는 것을 허용하도록 구성된 임의의 디바이스들일 수 있다. 네트워크 (32) 는 유선 또는 무선 네트워크, 사설 또는 공용 네트워크, 근거리 네트워크 (LAN), 광역 네트워크 (WAN), 무선 근거리 네트워크 (WLAN) 및 인터넷을 포함하지만 이들에 제한되지 않는 임의의 유형의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(28) 은 임의의 유형의 원하는 통신 프로토콜을 지원하도록 구성될 수 있다.
CPU(들)(12) 은 또한, 하나 이상의 디스플레이들 (34) 에 전송된 정보를 제어하도록 시스템 버스 (18) 를 통하여 디스플레이 제어기(들)(30) 에 액세스하도록 구성될 수도 있다. 디스플레이 제어기(들)(30) 은 디스플레이(들)(34) 에 적절한 포맷으로 디스플레이되도록 정보를 프로세싱하는 하나 이상의 비디오 프로세서들 (36) 을 통하여 디스플레이될 디스플레이(들)(34) 에 정보를 전송한다. 디스플레이(들)(34) 은 CRT (cathode ray tube), LED (light emitting diode) 디스플레이, LCD (liquid crystal display), 플라즈마 디스플레이 등을 포함하지만 이들에 제한되지 않는 임의의 유형의 디스플레이를 포함할 수 있다.
모바일 단말기 (10) 가 SLIMbus 에 의해 커플링되는 복수의 스피커들 및/또는 복수의 마이크로폰들을 포함할 수도 있지만, 모바일 단말기 (10) 는 이를 테면, 도킹 스테이션을 통하여 (또는 무선으로) 외부 사운드 시스템에 커플링될 수도 있다. 이와 관련하여, 도 2 는 도킹 스테이션 (42) 과 연관된 모바일 단말기 (10) 를 갖는 5.1 채널 서라운드 사운드 시스템 (40) 을 예시한다. 도킹 스테이션 (42) 은 중앙 스피커 (44) 를 포함할 수도 있고 리어 스피커들 (48(L) 및 48(R)) 뿐만 아니라 프론트 스피커들 (46(L) 및 46(R)) 및 서브-우퍼 (50) 에 커플링할 수도 있다. 잘 이해할 바와 같이, 각각의 스피커 (44, 46(L), 46(R), 48(L), 및 48(R)) 및 서브우퍼 (50) 는 별도의 오디오 채널을 가질 수도 있다. 스피커들 (44, 46(L), 46(R), 48(L), 및 48(R)) 및 서브-우퍼 (50) 의 출력이 적절하게 정렬될 때, 청취자 (52) 는 높은 오디오 충실도를 경험할 수도 있다.
오디오 컴포넌트들이 모바일 단말기 (10)(또는 다른 프로세서 기반 디바이스) 또는 외부 시스템의 내부에 있는지의 여부와 무관하게, 모바일 단말기 (10)(또는 다른 프로세서 기반 디바이스) 는 오디오 컴포넌트들, 이를 테면, 모뎀들, 코덱들 및/또는 애플리케이션들 프로세서들 사이에서 오디오 데이터를 이동시키기 위해 SLIMbus 를 포함할 수도 있다. 이와 관련하여, 간략화된 오디오 시스템 (60) 은 도 3 에 예시되어 있다. 간략화된 오디오 시스템 (60) 은 컴포넌트들로서 SLIMbus 통신 버스 (66) 에 통신적으로 커플링된 마스터 (62)(종종, 마스터 디바이스로 지칭되지만, "디바이스"가 종종 추가적인 함축된 의미들을 갖기 때문에 이하에서는 "마스터"로서 지칭된다) 및 슬레이브 디바이스들 (64(1)-64(4)) 을 포함할 수도 있다. 예시적 양태에서, 슬레이브 디바이스들 (64(1)-64(4)) 은 마이크로폰들, 스피커들, 또는 다른 오디오 디바이스들일 수도 있다. 마스터 (62) 는 애플리케이션 프로세서, 코덱 또는 모뎀일 수도 있고 2 개의 신호들: 공통 클록 와이어 (70) 를 통하여 통신되는 클록 신호 (68) 와 공통 데이터 와이어 (74) 상에서 통신되는 데이터 신호 (72) 를 이용하여 슬레이브 디바이스들 (64(1)-64(4)) 과 통신한다. 단지 4 개의 슬레이브 디바이스들 (64(1)-64(4)) 이 도 3 에 예시되어 있지만, 더 많거나 더 적은 컴포넌트들이 SLIMbus 통신 버스 (66) 에 커플링될 수도 있음을 알아야 한다. 마스터 (62) 는 프로세서와 연관된 메모리에 저장된 연관 소프트웨어를 갖춘 하드웨어 구현된 프로세서일 수도 있는 제어 시스템 (control system; CS)(76) 이 연관되어 있을 수도 있다. 예시적인 양태에서, 제어 시스템 (76) 은 마스터 (62) 의 시스템 온 칩 (system on a chip; SoC) 의 부분이다. 대안의 예시적 양태에서, 제어 시스템 (76) 은 모바일 단말기 (10) 의 CPU (12) 와 연관될 수도 있다. 추가의 예시적 양태들에서, 슬레이브 디바이스들 (64(1)-64(4)) 각각은 개별적인 슬레이브 제어 시스템 (78(1)-78(4)) 을 갖는다.
간략화된 오디오 시스템 (60) 내의 각각의 컴포넌트들은 상이한 오디오 채널들에 각각이 할당될 수도 있는 다수의 포트들을 포함할 수도 있음을 알아야 한다. 이 배열들의 예시적 양태들이 도 4 에 예시되어 있다. 구체적으로, 오디오 시스템 (80) 은 제 1 컴포넌트 (82(1)) 및 제 2 컴포넌트 (82(2)) 를 포함할 수도 있다. 제 1 컴포넌트 (82(1)) 는 복수의 포트들 (84) 을 포함할 수도 있고, 포트들 중 84(m) 및 84(n) 가 예시되어 있다. 이와 유사하게, 제 2 컴포넌트 (82(2)) 는 복수의 포트들 (84) 을 포함할 수도 있고, 포트들 중 84(x) 및 84(y) 이 예시되어 있다. 포트들 (84) 은 오디오 채널들 (86) 을 수신한다. 구체적으로, 포트 (84(m)) 는 제 1 오디오 채널 (86(1)) 을 수신하고 포트 (84(n)) 는 제 2 오디오 채널 (86(2)) 을 수신한다. 직렬화기 (예시되지 않음) 는 오디오 데이터를 어셈블하고 오디오 데이터를 데이터 와이어 (74) 상에 위치시킨다. 제 2 컴포넌트 (82(2)) 는 데이터를 추출하여 적절한 포트 (84) 에 데이터를 패싱하기 위해 직렬화해제기 (예시되지 않음) 를 이용한다. 이 예에서, 제 1 오디오 채널 (86(1)) 에 대한 데이터는 포트 (84(x)) 에 패스되고 제 2 오디오 채널 (86(2)) 에 대한 데이터는 포트 (84(y)) 에 패스된다. 포트들 (84) 은 적절한 신호 프로세싱 블록들 (88(1) 및 88(2)) 에 별도의 오디오 채널들 (86(1) 및 86(2)) 을 패스한다.
본 개시의 예시적 양태들은 관련 오디오 채널들 (86) 에 대한 오디오 데이터를 어큐뮬레이트하고 개별적인 관련 오디오 채널들 (86) 에 대한 대응하는 샘플들을 공통 데이터 와이어 (74) 상에서 TDM 신호 내의 세그먼트 윈도우로 위치시키기 위해 제공한다. 이와 관련하여, 도 5 는 채널 샘플들 (s11 및 s12) 이 제 1 오디오 채널 (86(1)) 중에서 샘플링되고 채널 샘플들 (s21 및 s22) 이 제 2 오디오 채널 (86(2)) 중에서 샘플링되는 신호 플로우 (90) 의 예시를 제공한다. 동일한 일반 샘플링 포인트로부터의 샘플들은 동일한 세그먼트 윈도우 (92) 에서의 공통 데이터 와이어 상에 어큐뮬레이트되고 위치된다. 어큐뮬레이션은 모든 세그먼트 윈도우 바운더리에서 행해진다. 제 2 컴포넌트 (82(2)) 는 공통 데이터 와이어 (74) 상에서 데이터를 직렬화하고 샘플들을 리어셈블한다. 리어셈블된 샘플들 (94) 은 수신기에서 정렬된다.
소스에서 정렬 샘플들을 얻기 위해, 선입선출 (first in, first out; FIFO) 레지스터들이 각각의 포트에서 이용될 수도 있다. 도 6 은 소스 내의 FIFO 레지스터들의 블록도를 제공한다. 이 예에서, 소스는 제 1 컴포넌트 (82(2)) 이다 (그리고 또한 마스터 (62) 일 수도 있다). 제 1 컴포넌트 (82(1)) 는 CS (76) 일 수도 있는 제어 시스템을 포함한다. 도 6 에 프로세서로서 예시되어 있지만, 일부 다른 신호 프로세싱 엔티티로 대체될 수도 있고 여전히 CS (76) 일 수도 있음을 알아야 한다. CS (76) 는 다이렉트 메모리 액세스 (DMA) 모듈 (100) 과 통신한다. DMA 로서 예시되어 있지만, 일부 다른 데이터 페치 엔티티가 이용될 수도 있음을 알아야 한다. DMA 모듈 (100) 은 제 1 오디오 채널 (86(1)) 및 제 2 오디오 채널 (86(2)) 을 생성한다. 제 1 오디오 채널 (86(1)) 은 포트 (84(m)) 에서 FIFO (102) 에 제공된다. 직렬화기 (병렬 투 직렬 (Parallel to Serial; P2S)) 는 FIFO (102) 의 출력을 취하고 직렬화된 신호를 멀티플렉서 (multiplexer; MUX)(106) 에 패스한다. 이와 유사하게, 제 2 오디오 채널 (86(2)) 은 포트 (84(n)) 에서 FIFO (108) 에 제공된다. 직렬화기 (110) 는 FIFO (108) 의 출력을 취하고 직렬화된 신호를 MUX (106) 에 패스한다. 클록 와이어 (70) 로부터의 클록 신호들은 필요에 따라 또는 원하는 바에 따라 포트들 (84) 에 제공된다. TDM 제어 신호는 데이터 와이어 (74) 상에 개별적인 샘플을 두기 위해 MUX (106) 를 제어한다. 신호들은 포트들 (84) 로부터, 세그먼트 윈도우 로직 (116) 에 의해 제어되는 스위치들 (112, 114) 을 통하여 MUX (106) 로 패스된다. 사용시, FIFO들 (102, 108) 은 개별적인 오디오 채널들 (86) 에 대한 데이터를 수집하고 (또는 어큐뮬레이트하고), 미리 정해진 양의 데이터가 어큐뮬레이트되었을 때 플래그 또는 상태 표시자를 설정한다. 모든 관련 채널들이 충분한 데이터 어큐뮬레이션을 표시할 때에 기초하여, 세그먼트 윈도우 로직 (116) 이 데이터를 MUX (106) 로 릴리즈한다. 이 방식으로, 오디오 채널들 (86) 의 관련 샘플들에 대한 데이터가 데이터 와이어 (74) 상의 동일한 세그먼트 윈도우로 끝난다. 따라서, 어큐뮬레이션이 초기화 후에 각각의 세그먼트에서 샘플 정렬을 제공한다. 이 정렬은 오디오 충실도를 개선하는 것을 돕는다.
수신 측 상에서, 샘플 및 위상 정렬 양쪽은 오디오 충실도를 개선하도록 돕는 것이 바람직할 수도 있다. 이러한 수신측 컴포넌트들의 구조는 도 7 을 참조하여 제공된다. 오디오 데이터는 디멀티플렉서 (DEMUX; 120) 에서 데이터 와이어 (74) 로부터 수신되고, 디멀티플렉서는 수신된 신호를 스플릿하고 스플릿된 신호들 (122(x) 및 122(y)) 을 개별적인 포트들 (84(x), 84(y)) 로 제공한다. 포트들 (84) 은 또한 클록 와이어 (70) 로부터 클록 신호 (68) 를 수신한다. 포트 (84(x)) 는 FIFO (126(x)) 와 연관된 직렬화해제기 (직렬 투 병렬 (serial to parallel; S2P))(124(x)) 에서 스플릿 신호 (122(x)) 를 수신한다. FIFO (126(x)) 는 에러 생성 로직 (128(x)) 에 상태 메시지를 그리고 비교기 (130(x)) 에 카운트를 제공한다. 비교기 (130(x)) 는 카운트를 워터마크 (또는 다른 미리 정의된 임계값)(132(x)) 와 비교하고, 비교에 기초하여 준비 신호 (134(x)) 를 출력한다 (즉, 카운트가 워터마크 (132(x)) 를 초과하면 준비 신호 (134) 가 인에이블된다). 에러 생성 로직 (128(x)) 은 에러 신호를 에러 버스 (136) 에 선택적으로 제공한다. 준비 신호 (134(x)) 는 준비 버스 (138) 에 제공된다.
도 7 을 참조하여 보면, 본 개시의 예시적 양태들은 멀티-채널 그룹의 채널들 중 어느 것이 에러 조건, 이를 테면, 언더플로우 또는 오버플로우 조건을 갖는지를 알기 위해 에러 버스 (136) 상의 정보를 평가하는 것에 의해 에러 처리를 수행한다. 에러 조건이 있으면, 본 개시의 예시적 양태는 스트림이 복구되거나 또는 다른 정정 액션이 취해질 때까지 채널을 중지하고 널 데이터를 대체한다. 정정 액션이 취해질 때, 스트림은 그룹으로서 복원 또는 복구된다.
도 7 을 계속 참조하여 보면, 포트 (84(x)) 는 또한 제 1 비교기 (142(x)) 및 제 2 비교기 (144(x)) 에 대한 상태를 설정하는 그룹핑 레지스터 (140(x)) 를 포함한다. 제 1 비교기 (142(x)) 는 준비 버스 (138) 로부터 신호들을 수신한다. 제 2 비교기 (144(x)) 는 에러 버스 (136) 로부터 신호들을 수신한다. 비교기들 (142(x), 144(x)) 의 비교에 기초하여, 스위치들 (146(x), 148(x)) 은 클록 (150) 으로부터 FIFO (126(x)) 로 클록 신호를 제공하도록 개방 또는 폐쇄된다. 클록 신호가 FIFO (126(x)) 에 제공되는지의 여부에 기초하여, 데이터는 FIFO (126(x)) 로부터 신호 프로세싱 블록 (152(x)) 으로 추가 프로세싱 (예를 들어, 스피커로의 패스) 을 위하여 풀링된다. 클록 (150) 으로부터의 클록 신호들은 또한 신호 프로세싱 블록들 (152(x) 및 152(y)) 로 패스된다. FIFO (126(x)) 및 FIFO (126(y)) 에 이용된 동일 클록 신호로 신호 프로세싱 블록들 (152(x) 및 152(y)) 을 클록킹하는 것에 의해, 샘플 정렬이 보존되고 오디오 충실도가 개선된다.
도 7 을 계속 참조하여 보면, 포트 (84(y)) 는 (y) 로 지정되는 경우일지라도, 유사한 기능들을 수행하는 유사한 엘리먼트들을 갖는다. 워터마크 (132) 의 값들 및 그룹핑 레지스터 (140) 에서의 정보는 필요에 따라 또는 원하는 바에 따라 프로그래밍 엔티티 또는 메시지 제어에 의해 프로그래밍될 수도 있다.
구조의 이 백드롭에 대항하여, 제 1 컴포넌트 (82(1)) 에서의 관련 포트들이 어떻게 링크되는지를 예시하는 예시적 프로세스 160 이 제공된다. 예시된 바와 같이, 제 1 컴포넌트 (82(1)) 는 소스 컴포넌트이다. 프로세스 160 은 제어 시스템 (76) 이 2 개 (또는 그 이상) 의 오디오 채널들을 통하여 전달되도록 오디오 데이터를 모으는 것 (블록 162) 에서 시작한다. 제어 시스템 (76) 및 DMA (100) 는 제 1 채널 오디오 데이터로 포트(m) 의 FIFO (102) 를 사전충전한다 (블록 164). 그 후, 제어 시스템 (76) 및 DMA (100) 는 제 2 채널 오디오 데이터로 포트(n) 의 FIFO (108) 를 사전충전한다 (블록 166). 관리자 디바이스 (도시 생략) 는 동일한 채널 레이트 (예를 들어, 48 kHz) 로 이루어지도록 포트들 (84) 을 프로그래밍한다 (블록 168).
도 8 을 게속 참조하여 보면, 관리자 디바이스는 동시에 양쪽 포트들 (84) 상에서 채널을 활성화한다 (블록 170). 2 개의 포트들 (84) 로부터의 2 개의 오디오 채널들의 주어진 넘버링된 샘플은 동일한 세그먼트 윈도우에 파퓰레이트하게 된다 (블록 172). 이것이 데이터의 끝이라고 관리자가 결정하면 (블록 174), 프로세스는 주지된 바와 같이 반복하거나 또는 블록 174 가 긍정적으로 응답하면 포트들을 종료하고 재설정한다 (블록 176).
도 9 는 수신 측 상에서 채널을 링크하기 위한 예시적 기법을 예시하는 프로세스 180 을 예시한다. 즉, 제 2 컴포넌트 (82(2)) 는 싱크 컴포넌트이다. 이와 관련하여, 프로세스 180 은 프로세서가 워터마크 (132(x)) 및 포트(x) 에 대한 그룹핑 레지스터 (140(x)) 를 프로그래밍하는 것으로 시작한다 (블록 182). 프로세서는 워터마크 (132(y)) 및 포트(포트( 대한 그룹핑 레지스터 (140(y)) 를 프로그래밍한다 (블록 184). 프로세서는 제 2 컴포넌트 (82(2)) 에 있을 수도 있거나 또는 제 1 컴포넌트 (82(1)) 에 있을 수도 있고 프로그래밍은 데이터 와이어 (74) 를 따라 전송된 메시지들에 의해 실시될 수도 있음을 주지해야 한다.
도 9 를 계속 참조하여 보면, 관리자 디바이스 (도시 생략) 는 동일한 채널 레이트로 포트들 (84(x) 및 84(y)) 을 프로그래밍할 수도 있다 (블록 186). 관리자 디바이스는 동시에 양쪽 포트들 상에서 채널을 활성화한다 (블록 188). 다양한 일들이 발생할 수도 있다. 제 1 인스턴스에서, FIFO 126(x) 는 충전되기 시작하고, 준비 신호 (134(x)) 도 역시 지속적으로 업데이트된다 (블록 190). 준비 신호 (134(x)) 는 준비 버스 (138) 를 통하여 포트 (84(y)) 에 패스된다. 제 2 인스턴스에서, FIFO 126(y) 는 충전되기 시작하고, 준비 신호 (134(y)) 도 역시 지속적으로 업데이트된다 (블록 192). 준비 신호 (134(y)) 는 준비 버스 (138) 를 통하여 포트 (84(x)) 로 패스된다. 동시에, 클록 (150) 은 턴온되고 포트들 (84(x) 및 84(y)) 및 다른 신호 프로세싱 블록들 (152(x) 및 152(y)) 에 제공된다 (블록 194). 모든 수반되는 포트들이 준비를 시그널링하면 (블록 196), 포트들 (84(x) 및 84(y)) 이 준비를 시그널링할 때 판독 클록이 FIFO (126(x) 및 126(y)) 로 진행한다 (블록 198).
도 9 를 계속 참조하여 보면, 포트들 (84(x) 및 84(y)) 이 데이터 와이어 (74) 로부터의 데이터로 계속해서 충전되게 되고 (블록 200) 그리고 양쪽 오디오 채널들의 동일한 넘버링된 샘플은 FIFO (126(x) 및 126(y)) 로부터 개별적인 신호 프로세싱 블록들 (152(x) 및 152(y)) 로 동시에 풀링된다 (블록 202). 제어기는 임의의 포트로부터의 에러 신호가 있는지를 알기 위해 체크한다 (블록 204). 에러가 있으면, 제어기는 양쪽 FIFO (126(x) 및 126(y)) 의 판독을 디스에이블하고 프로세스 중재를 대기한다 (블록 206). 블록 204 에서 에러가 없으면, 제어기는 오디오 데이터의 끝이 있는지를 알도록 체크한다 (블록 208). 끝이 있다면, 프로세스 180 은 종료한다 (블록 210). 그렇지 않으면, 프로세스 180 은 표시된 대로 반복한다.
상술한 설명이 데이터를 어큐뮬레이트하여 멀티-채널 오디오 스트림들의 채널 정렬을 촉진한다는 것의 지지하에 일반 개념들을 고려하고 있지만, 소스 및 싱크들의 마스터/슬레이크 특성에 의존하여 이것이 구현될 수도 있는 여러 가능한 방식들이 존재한다. 즉, 소스는 마스터 또는 슬레이브일 수도 있고, 유사하게 싱크들은 마스터들 또는 슬레이브들일 수도 있다. 또한, 소스는 데이터를 푸시할 수도 있고 싱크는 데이터를 풀링할 수도 있다. 이들 상이한 변형들의 예시적 양태들이 도 10 내지 도 13 에 제공된다.
이와 관련하여, 도 10 은 소스가 슬레이브이고, 마스터 싱크가 슬레이브 소스로부터 데이터를 풀링하는 경우의 예시적 프로세스 220 을 예시한다. 프로세스 220 에서, 데이터의 플로우 레이트는 마스터 싱크에 의해 결정되고 송신 소스 FIFO 레지스터로 패스된다. 따라서, 리셋 (블록 222) 후에 버스 포트가 아이들 상태에 놓이는 경우 (블록 224), 컴포넌트들은 버스 채널이 인에이블되었는지 여부를 모니터링한다 (블록 226). 이 응답이 부정적이면, 프로세스 220 은 주지된 바와 같이 반복한다. 버스 채널이 인에이블되었다면, 프로세스 220 은 이분한다.
도 10 을 계속 참조하여 보면, 초기에, 버스 포트는 액티브 상태에 놓인다 (블록 228). 제어 시스템 (78) 은 채널이 세그먼트 윈도우 바운더리에 있는지를 결정한다 (블록 230). 블록 230 에 대한 응답이 아니오 이면, 프로세스 220 은 포트 데이터가 준비 상태이기 전에 버스 포트가 활성인 것을 인지한다 (블록 232). 그러나, 블록 230 에 대한 응답이 예 이면, 제어 시스템 (78) 은 모든 관련 채널들이 워터마크 레벨에 있는지를 알도록 체크한다 (블록 234). 블록 234 에 대한 응답이 아니오 이면, 프로세스는 포트 데이터가 준비 상태이기 전에 버스 포트가 활성인 것을 인지한다 (블록 232). 그러나, 블록 234 에 대한 응답이 예 이면, 버스 포트는 스타트업하고 데이터 준비 상태를 표시한다 (블록 236).
도 10 을 계속 참조하여 보면, 포트 데이터가 이용가능하기 전에 버스 포트가 액티트 상태임을 인지한 후 (블록 232), 제어 시스템 (78) 은 송신기가 송신 타임 슬롯이 도달되었는지를 결정한다 (블록 238). 블록 238 에 대한 응답이 아니오 이면, 프로세스 220 은 블록 230 으로 복귀한다. 그러나, 블록 238 에 대한 응답이 예 이면, 송신기는 프리젠스가 없다는 널 데이터를 출력하고 (블록 240), 이 널 데이터는 외부 버스에 제공된다 (블록 242). 채널이 디스에이블되었는지를 제어 시스템 (78) 이 결정하는 동안 널 데이터는 계속된다 (블록 244). 블록 244 에 대한 응답이 아니오 이면, 프로세스는 내부 데이터 싱크 앞에서 버스가 시작하면 (블록 246) 임의의 적절한 에러 처리를 갖는 블록 230 으로 복귀한다. 그러나, 블록 244 에 대한 응답이 예 이면, 포트는 셧다운 상태에 진입하고 (블록 248) 프로세스는 블록 224 로 복귀한다.
도 10 을 계속 참조하여 보고 블록 236 으로 복귀하여, 제어 시스템 (78) 은 송신된 타임슬롯이 도달되었는지를 결정한다 (블록 250). 블록 250 에 대한 응답이 아니오 이면 결정이 반복한다. 에러가 있다면, 에러 신호가 에러 버스에 제공되고, 에러 상태는 표시된다 (블록 252). 블록 252 의 에러 상태로부터, 포트는 셧다운 상태에 진입하고 (블록 248), 프로세스는 블록 224 로 복귀한다. 블록 250 에서의 에러가 없고 타임슬롯이 도달되면, 소스는 프리젠스 상태 세트를 갖는 제 1 유효 데이터를 출력하고 (블록 254) 데이터는 외부 버스에 전송된다 (블록 242). 프로세스 220 은 송신 타임슬롯이 도달되었는지의 여부의 결정으로 진행한다 (블록 256). 블록 256 에 대한 응답이 아니오 이면, 프로세스 220 은 주지된 바와 같이 반복한다. 블록 256 에 대한 응답이, 에러가 발생하였다는 것이면, 프로세스 220 은 이전에 설명된 바와 같이 에러 상태에 진입한다 (블록 252). 블록 256 에 대한 응답이 예 이고 송신 타임슬롯이 도달되면, 제어 시스템 (78) 은 이 송신 타임슬롯에 대한 유효 데이터를 표시하도록 소스에 의해 데이터-존재 "P" 버스 태그 세트를 보상하기 위해 싱크에 의해 버스 상의 마스터 싱크 데이터-표시, 즉, 샘플 요청 "SRQ" 태그 세트가 있는지를 결정한다 (블록 258). SRQ 가 데이터를 풀링하는 싱크에 의해 풀-프로토콜에서 설정되는 동안, 데이터 스트로브 ("STR") 태그가 설정될 수도 있다. 에러가 있으면, 에러 상태가 표명되고 (블록 252), 포트는 셧다운 상태에 진입하고 (블록 248), 프로세스는 이전에 설명된 바와 같이, 블록 224 로 복귀한다. 블록 258 에 대한 응답이 아니오 이면, 소스는 데이터 출력을 연기 또는 스킵한다 (블록 260). 블록 258 에 대한 응답이 예 이면, 유효 데이터가 출력된다 (블록 262). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 264). 블록 264 에 대한 응답이 아니오 이면, 프로세스 220 은 주지된 바와 같이 블록 256 으로 복귀한다. 블록 264 에 대한 응답이 예 이면, 포트는 셧다운 상태에 진입하고 (블록 248) 프로세스는 이전에 설명된 바와 같이 블록 224 로 복귀한다.
도 10 을 계속 참조하여 보고 블록 226 으로 돌아가면, 소스는 또한 내부 데이터 소스가 인에이블되었는지를 결정한다 (블록 266). 블록 266 에 대한 응답이 아니오 이면, 프로세스 220 는 예시된 바와 같이 루프한다. 블록 266 에 대한 응답이 예이면, 내부 소스는 데이터 스타트업 상태에 진입한다 (블록 268). 소스는 전송할 내부 데이터 소스 요청이 있는지를 결정한다 (블록 270). 블록 270 에서, 에러가 있으면, 에러 상태가 표명되고 (블록 252), 포트는 셧다운 상태에 진입하고 (블록 248), 프로세스는 이전에 설명된 바와 같이, 블록 224 로 복귀한다. 블록 270 에 대한 응답이 아니오 이면, 프로세스 220 는 예시된 바와 같이 루프한다. 블록 270 에 대한 응답이 예 이면, 소스는 멀티-채널 그룹에서의 모든 관련 채널들이 워터마크에 또는 워터마크 위에 있는지를 결정한다 (블록 272). 에러가 검출되면, 에러 상태가 표명되고 (블록 252), 포트는 셧다운 상태에 진입하고 (블록 248), 프로세스는 이전에 설명된 바와 같이, 블록 224 로 복귀한다. 블록 272 에 대한 응답이 아니오 이면, 데이터는 무시된다 (블록 274). 그러나, 블록 272 에 대한 응답이 예 이면, 유효 데이터가 입력되고 확인응답 (ACK) 응답이 생성된다 (블록 276). 그 후 데이터는 외부 소스로부터 풀링된다 (블록 278). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 280). 블록 280 에 대한 응답이 아니오 이면, 프로세스는 주지된 바와 같이, 블록 270 으로 루프 백한다. 블록 280 에 대한 응답이 예 이면, 포트는 셧다운 상태에 진입하고 (블록 248) 프로세스는 블록 224 로 복귀한다.
도 11 은 슬레이브 싱크가 마스터 소스로부터 데이터를 풀링하는 예시적 양태와 연관된 프로세스 290 의 플로우차트를 나타낸다. 이와 관련하여, 프로세스 290 은 리셋으로 시작하고 (블록 292) 버스 포트는 아이들 상태에 진입한다 (블록 294). 프로세스 290 은 버스 채널이 인에이블되었는지를 결정한다 (블록 296). 블록 296 이 부정적인 한, 프로세스 290 은 표시된 바와 같이 루프된다. 버스 채널이 인에이블되었다면, 버스 포트는 액티브 상태에 진입한다 (블록 298). 프로세스는 내부 데이터 싱크가 인에이블되었는지를 결정한다 (블록 300). 블록 300 이 부정적인 한, 프로세스 290 은 표시된 바와 같이 루프된다. 내부 데이터 싱크가 인에이블되었다면, 프로세스 290 은 이분한다.
도 11 을 계속 참조하여 보면, 프로세스 290 은 내부 싱크가 데이터 스타트업 상태에 진입하는 것으로 계속된다 (블록 302). 제어 시스템 (78) 은 모든 관련된 채널들이 지정된 워터마크 레벨에 있는지를 결정한다 (블록 304). 블록 304 에 대한 응답이 부정적이면, 내부 데이터 싱크는 널 데이터 상태에 진입한다 (블록 306). 제어 시스템 (78) 은 내부 데이터 싱크 요청이 있는지를 결정한다 (블록 308). 블록 308 에 대한 응답이 아니오 이면, 프로세스 290 는 표시된 바와 같이 루프 백한다. 블록 308 에 대한 응답이 예 이고 내부 데이터 싱크 요청이 있으면, 널 데이터가 출력된다 (블록 310). 이 데이터는 내부 싱크에 제공된다 (블록 312). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 314). 블록 314 에 대한 응답이 부정적이면, 프로세스는 표시된 바와 같이 루프 백한다. 블록 314 에 대한 응답이 긍정적이면, 프로세스 290 는 포트 셧다운 상태로 진행하고 (블록 316), 프로세스 290 은 표시된 바와 같이 아이들 상태에서의 버스 포트로 복귀한다 (블록 294). 내부 데이터 싱크가 시작하기전에 버스가 시작하면 에러 처리가 발생할 수도 있다.
도 11 을 계속 참조하여 보면, 블록 304 에 대한 응답이 예 이고, 채널들이 워터마크 레벨에서 또는 그 위에 있으면, 데이터 싱크는 스타트업 상태에 진입한다 (블록 318). 제어 시스템 (78) 은 내부 데이터 싱크 요청이 있는지를 결정한다 (블록 320). 내부 데이터 싱크 요청이 없는 한, 프로세스 290 은 표시된 바와 같이 루프 백한다. 블록 320 에서, 내부 데이터 싱크 요청이 있으면, 소스는 유효 데이터를 출력한다 (블록 322). 이 데이터는 내부 싱크에 제공된다 (블록 324). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 326). 블록 326 에 대한 응답이 부정적이면, 프로세스 290 은 표시된 바와 같이 블록 320 으로 루프 백한다. 블록 326 에 대한 응답이 예 이면, 채널은 디스에이블되고, 포트는 셧다운 상태로 진입하고 (블록 316), 이전에 설명된 바와 같이, 버스 포트가 아이들 상태에 있는 것으로 루프 백한다 (블록 294). 블록 320 에서 내부 데이터 싱크 요청과 연관된 에러가 있으면, 이전에 설명된 바와 같이, 싱크는 에러 상태에 진입하고 (블록 328) 포트는 셧다운 상태로 진입한다 (블록 316).
도 11 및 블록 300 을 계속 참조하여 보면, 내부 싱크가 데이터 스타트업 상태에 진입함과 동시에, 버스 포트가 스타트업하고 버스 포트가 데이터 준비 상태에 있음을 표시한다 (블록 330). 제어 시스템 (78) 은 데이터가 세그먼트 윈도우 바운더리에 있는지를 결정한다 (블록 332). 블록 332 에 대한 응답이 부정적인 한 (그리고 에러가 없는 한), 프로세스 290 는 표시된 바와 같이 루프 백한다. 에러가 있으면, 프로세스 (290) 는 이전에 논의된 바와 같이 에러 상태에 진입한다 (블록 328). 블록 332 에 대한 응답이 예 이고 데이터가 세그먼트 윈도우 바운더리에 있다면, 제어 시스템 (78) 은 모든 관련 채널들이 워터마크에 있거나 그 위에 있는지를 결정한다 (블록 334). 다시, 에러가 있으면, 프로세스 (290) 는 이전에 논의된 바와 같이 에러 상태에 진입한다 (블록 328). 블록 334 에 대한 응답이 부정적이면, 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 336). 에러가 있으면, 프로세스 (290) 는 이전에 논의된 바와 같이 에러 상태에 진입한다 (블록 328). 에러가 없다면, 송신 타임슬롯들이 도달되지 않는 한, 프로세스 290 는 표시된 바와 같이 루프한다. 송신 타임슬롯이 도달되었다면, 데이터는 무시되고 버스 샘플 요청 버스 태그 비트 (SRQ) 가 싱크에 의해 표명되지 않는다 (블록 338). 그러나, 블록 334 이 긍정으로 응답되면 (즉, 관련 채널들이 워터마크에 또는 그 위에 있다면), 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 340). 에러가 있으면, 프로세스 290 은 이전에 논의된 바와 같이 에러 상태에 진입한다 (블록 328). 에러가 없고 송신 타임슬롯이 도달되지 않는 한, 프로세스 290 은 표시된 바와 같이 루프한다. 송신 타임슬롯이 도달되면, 유효 데이터가 입력되고, 소스로부터의 데이터 프리젠스를 확인응답하도록 SRQ 태그 비트가 싱크에 의해 표명된다 (블록 342). 데이터는 버스로부터 풀링된다 (블록 344). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 346). 블록 346 에 대한 응답이 부정적이면, 프로세스 290 는 표시된 바와 같이 블록 332 로 복귀하고, 그렇지 않으면, 이전에 논의된 바와 같이 포트는 셧다운 상태에 진입한다 (블록 316).
도 12 는 슬레이브 소스가 마스터 싱크로부터 데이터를 푸시하는 예시적 양태와 연관된 프로세스 350 의 플로우차트를 나타낸다. 프로세스 350 는 리셋으로 시작하고 (블록 352) 버스트 포트는 아이들 상태에 진입한다 (블록 354). 제어 시스템 (78) 은 버스 채널이 인에이블되었는지를 결정한다 (블록 356). 버스 채널이 인에이블되지 않은 한, 프로세스 350 는 표시된 바와 같이 루프한다. 버스 채널이 인에이블되었다면, 프로세스 350 은 이분한다. 일 경로를 추종하면, 버스 포트는 액티브 상태에 진입한다 (블록 358). 제어 시스템 (78) 은 데이터가 세그먼트 바운더리 윈도우에 있는지를 결정한다 (블록 360). 블록 360 에 대한 응답이 아니오 이면, 버스 포트가 이용가능하기 전에 버스 포트는 액티브 상태이다 (블록 362). 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 364). 블록 364 에 대한 응답이 아니오 이면, 프로세스 350 은 표시된 바와 같이, 블록 360 으로 루프 백한다. 블록 364 에 대한 응답이 예 이면, 프리젠스 표시가 전송됨이 없이 널 데이터가 출력되고 (블록 366), 외부 버스에 데이터가 제공된다 (블록 368). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 370). 채널이 디스에이블되지 않았다면, 프로세스 350 은 표시된 바와 같이 블록 360 으로 복귀한다. 채널이 디스에이블되었다면, 포트는 셧다운 상태에 진입하고 (블록 372) 그리고 나서 표시된 바와 같이 블록 354 로 복귀한다.
도 12 를 계속 참조하여 보고 블록 360 으로 복귀하면, 블록 360 이 긍정적으로 응답되면, 제어 시스템 (78) 은 모든 관련 채널들이 워터마크 레벨에 있는지를 결정한다 (블록 374). 블록 374 에 대한 응답이 부정적이면, 프로세스 350 은 표시된 바와 같이 블록 362 으로 진행한다. 블록 374 에 대한 응답이 긍정적이면, 버스 포트는 데이터가 준비 상태인 스타트업 상태로 진입한다 (블록 376). 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 378). 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 송신 타임슬롯이 도달되지 않는 한, 프로세스 350 은 표시된 바와 같이 루프한다. 송신 타임슬롯이 도달되면, 유효 데이터가 프리젠스 상태 세트, 즉 버스 프리젠스 ("P") 태그 및 STR 태그 세트를 갖고 출력된다 (블록 382). 데이터는 외부 버스로 전송된다 (블록 368). 제어 시스템 (78) 은 데이터가 세그먼트 윈도우 바운더리에 있는지를 결정한다 (블록 384). 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 에러가 없다면, 그리고 세그먼트 윈도우 바운더리가 도달되지 않은 한, 프로세스 350 은 표시된 바와 같이 루프한다. 세그먼트 윈도우 바운더리가 도달되면, 제어 시스템 (78) 은 모든 관련 채널들이 워터마크 레벨에 또는 그 위에 있는지를 결정한다 (블록 386). 다시, 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 에러가 없고 채널들이 모두 워터마크 레벨 위에 있는 것은 아니라면, 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 388). 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 에러가 없고 송신 타임슬롯이 도달되지 않는 한, 프로세스 350 은 표시된 바와 같이 루프한다. 송신 타임슬롯이 도달되면, 소스는 프리젠스 세트 없이, 즉 버스 P 태그 또는 STR 태그 세트 없이 널 데이터를 출력한다 (블록 390). 널 데이터는 외부 버스로 출력된다 (블록 392). 에러가 없고 모든 관련 채널들이 워터마크 레벨 위에 있으면, 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 394). 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 에러가 없고 송신 타임슬롯이 도달되었다면, 소스는 프리젠스 상태 세트, 즉 버스 P 태그 및 STR 태그 세트를 갖고 널 데이터를 출력한다 (블록 396). 데이터는 외부 버스로 출력된다 (블록 392). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 398). 블록 398 에 대한 응답이 부정적이면, 프로세스 350 은 표시된 바와 같이 블록 384 로 복귀한다. 채널이 디스에이블되었다면, 포트는 이전에 표시된 바와 같이 셧다운 상태에 진입한다 (블록 372).
도 12 를 계속 참조하여 보고 블록 356 으로 돌아가면, 동시에 제어 시스템 (78) 은 내부 데이터 소스가 인에이블되는지를 결정한다 (블록 400). 블록 400 에 대한 응답이 부정적이면, 프로세스 350 은 표시된 바와 같이 루프한다. 내부 데이터 소스가 인에이블되면, 내부 소스는 데이터 스타트업 상태에 진입한다 (블록 402). 제어 시스템 (78) 은 내부 데이터 소스가 전송할 요청을 갖는지를 결정한다 (블록 404). 에러가 있으면, 프로세스 350 은 에러 상태에 진입하고 (블록 380), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 372). 에러가 없고 블록 404 에 대한 응답이 부정적이면, 프로세스 350 은 표시된 바와 같이 루프한다. 전송할 요청이 있다면, 내부 데이터 소스는 유효 데이터를 입력한다 (블록 406). 데이터는 내부 데이터 소스로부터 온다 (블록 408). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 410). 블록 410 에 대한 응답이 부정적이면, 프로세스 350 은 블록 404 로 복귀한다. 블록 410 에 대한 응답이 긍정적이면, 포트는 이전에 논의된 바와 같이 셧다운 상태에 진입한다 (블록 372).
도 13 은 마스터 소스가 슬레이브 싱크로부터 데이터를 푸시하는 예시적 양태와 연관된 프로세스 420 의 플로우차트를 나타낸다. 프로세스 420 는 리셋으로 시작하고 (블록 422) 버스트 포트는 아이들 상태에 진입한다 (블록 424). 제어 시스템 (78) 은 버스 채널이 인에이블되었는지를 결정한다 (블록 426). 버스 채널이 인에이블되지 않은 한, 프로세스 420 은 표시된 바와 같이 루프한다. 버스 채널이 인에이블되었다면, 버스 포트는 액티브 상태에 진입한다 (블록 428). 제어 시스템 (78) 은 내부 데이터 싱크가 인에이블되었는지를 결정한다 (블록 430). 블록 430 이 부정적인 한, 프로세스 420 은 표시된 바와 같이 루프된다. 블록 430 에 대한 응답이 긍정적이면, 프로세스 420 은 이분한다.
도 13 을 계속 참조하여 보면, 프로세스 420 은 내부 싱크가 데이터 스타트업 상태에 진입하는 것으로 계속된다 (블록 432). 제어 시스템 (78) 은 모든 관련된 채널들이 워터마크 레벨에 있는지를 결정한다 (블록 434). 블록 434 에 대한 응답이 부정적이면, 데이터 싱크는 널 데이터 상태에 진입한다 (블록 436). 제어 시스템 (78) 은 내부 데이터 싱크 요청이 있는지를 결정한다 (블록 438). 블록 438 에 대한 응답이 부정적이면, 프로세스 420 은 표시된 바와 같이 블록 434 로 루프 백한다. 블록 438 에 대한 응답이 긍정적이면, 널 데이터가 (블록 440) 내부 싱크로 출력된다 (블록 442). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 444). 블록 444 에 대한 응답이 아니오 이면, 프로세스 420 은 표시된 바와 같이, 블록 434 로 루프 백한다. 블록 444 에 대한 응답이 예 이면, 포트는 셧다운 상태에 진입하고 (블록 446) 프로세스는 블록 424 로 복귀한다.
도 13 을 참조하여 보면, 블록 434 에 대한 응답이 예 이면, 데이터 싱크가 스타트업 상태에 진입한다 (블록 448). 제어 시스템 (78) 은 내부 데이터 싱크 요청이 있는지를 결정한다 (블록 450). 에러가 있으면, 프로세스 420 은 에러 상태에 진입하고 (블록 452), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 446). 에러가 없고 블록 450 에 대한 응답이 부정적이면, 프로세스 (420) 는 표시된 바와 같이, 블록 450 으로 루프백한다. 에러가 없고 블록 450 에 대한 응답이 긍정적이면, 제어 시스템 (78) 은 모든 관련 채널들이 워터마크 레벨에 있는지, 또는 이 레벨을 초과하는지를 결정한다 (블록 454). 에러가 있으면, 프로세스 420 은 에러 상태에 진입하고 (블록 452), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 446). 에러가 없고 블록 454 에 대한 응답이 부정적이면, 프로세스 420 은 출력을 스킵한다 (블록 456). 블록 454 에 대한 응답이 긍정적이면, 유효 데이터가 전송되고 ACK 응답이 제공된다 (블록 458). 데이터는 내부 싱크에 제공된다 (블록 460). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 462). 블록 462 에 대한 응답이 부정적이면, 프로세스 420 은 표시된 바와 같이 블록 450 으로 루프 백한다. 블록 462 에 대한 응답이 긍정적이면, 포트는 이전에 논의된 바와 같이 셧다운 상태에 진입한다 (블록 446).
도 13 을 계속 참조하여 보면, 블록 430 이후, 프로세스 420 는 또한 버스 포트가 스타트업되게 하고 데이터 준비 상태에 진입한다 (블록 464). 제어 시스템 (78) 은 송신 타임슬롯이 도달되었는지를 결정한다 (블록 466). 에러가 있으면, 프로세스 420 은 에러 상태에 진입하고 (블록 452), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 446). 에러가 없고 블록 466 에 대한 응답이 부정적이면, 프로세스 420 은 표시된 바와 같이 루프한다. 블록 466 에 대한 응답이 긍정적이고, 송신 타임슬롯이 도달되면, 그 후 데이터 소스는 이 송신 타임슬롯에 대한 유효 데이터가 존재함을 표시하기 위해 유효 샘플 요청 스트로브 (STR) 태그 및 연관된 데이터-존재 P 태그를 표명할 것이다 (블록 468). 에러가 있으면, 프로세스 420 은 에러 상태에 진입하고 (블록 452), 그리고 나서, 포트는 이전에 논의된 바와 같이 셧다운 상태로 진입한다 (블록 446). 에러가 없고 블록 468 에 대한 응답이 부정적이면, 데이터 입력 슬롯이 스킵된다 (블록 470). 블록 468 에 대한 응답이 긍정적이면, 유효 데이터는 입력된다 (블록 472). 데이터는 버스 소스 데이터로부터 수신된다 (블록 474). 제어 시스템 (78) 은 채널이 디스에이블되었는지를 결정한다 (블록 476). 채널이 디스에이블되지 않았다면, 프로세스 420 은 표시된 바와 같이 블록 466 으로 루프백한다. 채널이 디스에이블되었다면, 포트는 이전에 논의된 바와 같이 셧다운 상태에 진입한다 (블록 446).
도 10 내지 도 13 이 슬레이브 제어 시스템 (78) 이 무엇을 행하는지로부터 제시되어 있지만, 본 개시의 예시적 양태들은 마스터 제어 시스템 (76) 에 대한 이들 개념들로 확장되는 것으로 이해되어야 함을 주지해야 한다. 또한, 언제 스타트업이 되는지를 정의하기 위해 워터마크를 이용하는 개념은 슬레이브와 마스터 양쪽에 제공된다. 샘플별 기반으로 SRQ/STR 또는 프리젠스를 표명하기 위해 워터마크를 이용하는 개념은 슬레이브 측에 공통이지만 마스터 측에서도 또한 알아낼 수 있는 오디오 시간 기준에 대한 근접성을 추정한다.
위에 시사되어 있는 바와 같이, 본원에 개시된 양태들에 따른 멀티-채널 오디오 정렬 방식들은 임의의 프로세서 기반 디바이스 내에 제공되거나 또는 통합될 수도 있다. 예들은 비제한적으로, 셋톱박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정된 위치확인 데이터 유닛, 모바일 위치확인 데이터 유닛, 모바일 폰, 셀룰라 폰, 컴퓨터, 포터블 컴퓨터, 데스크톱 컴퓨터, 개인 휴대 정보 단말기 (PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 포터블 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크 (DVD) 플레이어, 및 포터블 디지털 비디오 플레이어를 포함한다. 임의의 이러한 디바이스가 본 개시의 양태들로부터 이점을 취할 수도 있지만, 본 개시는 SLIMbus 프로토콜에 따라 동작하는 디바이스들에 이용하기에 특히 잘 적응된다.
당해 기술 분야의 당업자는 또한 본원에 개시된 양태들과 연계하여 설명된 다양한 예증적인 논리 블록들, 모듈들, 회로들, 및 알고리즘들이 전자 하드웨어, 메모리에 또는 다른 컴퓨터 판독가능 매체에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행된 명령들, 또는 이들 양자의 조합으로서 구현될 수도 있음을 또한 알 수 있을 것이다. 본원에 설명된 디바이스들은 예들로서, 임의의 회로, 하드웨어 컴포넌트, 집적 회로 (IC), 또는 IC 칩에서 채택될 수도 있다. 본원에 개시된 메모리는 임의의 유형 또는 사이즈의 메모리일 수도 있으며, 임의의 유형의 원하는 정보를 저장하도록 구성될 수도 있다. 이러한 상호교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들을 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 이러한 기능성이 어떻게 구현되는지는 전체 시스템에 부여되는 특정 애플리케이션, 설계 선택들 및/또는 설계 제약들에 의존한다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들이 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다.
본 개시에서 개시된 양태들과 연계하여 설명된 여러가지 예증적인 논리 블록들, 모듈들, 및 회로들은 본원에서 개시된 기능들을 수행하도록 설계된, 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 통상적인 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다.
본원에 개시된 양태들은 하드웨어에서, 그리고 하드웨어에 저장된 명령들로 구현될 수도 있고, 예를 들어, RAM(Randdom Access Memory), 플래시 메모리, ROM (Read Only Memory), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), 레지스터, 하드디스크, 탈착가능 디스크, CD-ROM, 또는 당해 기술에 공지된 임의의 다른 형태의 저장 매체 내에 있을 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되어, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있다. 대안에서, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 있을 수도 있다. ASIC 는 원격 스테이션 내에 있을 수도 있다. 대안에서, 프로세서 및 저장 매체는 원격 스테이션, 기지국 또는 서버에 개별 컴포넌트들로서 있을 수도 있다.
또한, 본원의 예시적인 양태들의 어느 것에서 설명된 동작 단계들은 예들 및 논의를 제공하기 위해 설명된 것임을 주지해야 한다. 설명된 동작들은 예시된 시퀀스들 이외에 상이한 다수의 시퀀스들로 수행될 수도 있다. 또한, 단일 동작 단계로 설명된 동작들은 복수의 상이한 단계들로 실제 수행될 수도 있다. 추가로, 예시적인 양태들에서 논의된 하나 이상의 동작 단계들은 결합될 수도 있다. 흐름도에서 예시된 동작 단계들은 당해 기술분야의 당업자에 자명한 바와 같이, 다수의 상이한 변경들을 겪을 수도 있음이 이해되어야 한다. 당업자라면, 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 사용하여 표현될 수도 있음을 이해할 것이다. 예를 들면, 상기 설명을 통해 참조될 수도 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 입자들, 이들의 임의의 조합에 의해 표현될 수도 있다.
앞서의 본 개시물의 설명은 당업자들이 개시를 행하거나 이용하는 것을 가능하게 하기 위해 제공된다. 본 개시의 다양한 수정들이 당업자들에게 쉽게 자명할 것이고, 본원에 정의된 일반적인 원리들은 본 개시의 사상 또는 범위를 벗어나지 않으면서 다양한 변형들에 적용될 수도 있다. 따라서, 본 개시는 본원에 설명된 예들 및 설계들로 제한되지 않으며, 본원에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위가 부여되어야 한다.

Claims (16)

  1. 오디오 스트림을 제어하는 방법으로서,
    오디오 스트림으로부터의 제 1 오디오 채널과 연관된 제 1 데이터를 마스터 오디오 소스에서의 제 1 포트에 제공하는 단계;
    상기 오디오 스트림으로부터의 제 2 오디오 채널과 연관된 제 2 데이터를 상기 마스터 오디오 소스에서의 제 2 포트에 제공하는 단계;
    상기 제 1 포트에서, 제 1 선입선출 (first in, first out; FIFO) 레지스터에 상기 제 1 데이터를 어큐뮬레이트하는 단계;
    상기 제 2 포트에서, 제 2 FIFO 레지스터에 상기 제 2 데이터를 어큐뮬레이트하는 단계;
    동일한 채널 레이트들에서 동작하도록 상기 제 1 및 제 2 포트들을 프로그래밍하는 단계; 및
    상기 제 1 오디오 채널 및 상기 제 2 오디오 채널에서의 등가의 오디오 샘플들이 그룹핑되어 시분할 포맷에서 세그먼트 윈도우 바운더리에 대응하는 세그먼트 윈도우에 위치가능하게 되도록, 상기 세그먼트 윈도우 바운더리에서, 상기 제 1 및 제 2 FIFO 레지스터들을 드레인하는 단계를 포함하는, 오디오 스트림을 제어하는 방법.
  2. 제 1 항에 있어서,
    상기 마스터 오디오 소스로부터 슬레이브 오디오 싱크로 상기 제 1 데이터를 푸싱하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  3. 제 1 항에 있어서,
    상기 마스터 오디오 소스로부터 슬레이브 오디오 싱크에 의해 상기 제 1 데이터가 풀링되는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  4. 제 1 항에 있어서,
    에러 조건을 검출하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  5. 제 4 항에 있어서,
    상기 에러 조건을 검출한 후에 상기 마스터 오디오 소스로부터 널 데이터를 출력하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 데이터 및 상기 제 2 데이터가 미리 정의된 워터마크 레벨을 초과하는지를 검출하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  7. 제 6 항에 있어서,
    상기 제 1 데이터 또는 상기 제 2 데이터가 상기 미리 정의된 워터마크 레벨을 초과하지 않는다면 데이터 출력을 스킵하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  8. 오디오 스트림을 제어하는 방법으로서,
    오디오 스트림으로부터의 제 1 오디오 채널과 연관된 제 1 데이터를 슬레이브 오디오 소스에서의 제 1 포트에 제공하는 단계;
    상기 오디오 스트림으로부터의 제 2 오디오 채널과 연관된 제 2 데이터를 슬레이브 오디오 소스에서의 제 2 포트에 제공하는 단계;
    상기 제 1 포트에서, 제 1 선입선출 (FIFO) 레지스터에 상기 제 1 데이터를 어큐뮬레이트하는 단계;
    상기 제 2 포트에서, 제 2 FIFO 레지스터에 상기 제 2 데이터를 어큐뮬레이트하는 단계;
    동일한 채널 레이트들에서 동작하도록 상기 제 1 및 제 2 포트들을 프로그래밍하는 단계; 및
    상기 제 1 오디오 채널 및 상기 제 2 오디오 채널에서의 등가의 오디오 샘플들이 그룹핑되어 시분할 포맷에서 세그먼트 윈도우 바운더리에 대응하는 세그먼트 윈도우에 위치가능하게 되도록, 상기 세그먼트 윈도우 바운더리에서, 상기 제 1 및 제 2 FIFO 레지스터들을 드레인하는 단계를 포함하는, 오디오 스트림을 제어하는 방법.
  9. 제 8 항에 있어서,
    상기 슬레이브 오디오 소스로부터 마스터 오디오 싱크로 상기 제 1 데이터를 푸싱하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  10. 제 8 항에 있어서,
    상기 슬레이브 오디오 소스로부터 마스터 오디오 싱크에 의해 상기 제 1 데이터가 풀링되는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  11. 제 8 항에 있어서,
    에러 조건을 검출하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  12. 제 11 항에 있어서,
    상기 에러 조건을 검출한 후에 상기 슬레이브 오디오 소스로부터 널 데이터를 출력하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  13. 제 8 항에 있어서,
    상기 제 1 데이터 및 상기 제 2 데이터가 미리 정의된 워터마크 레벨을 초과하는지를 검출하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  14. 제 13 항에 있어서,
    상기 제 1 데이터 또는 상기 제 2 데이터가 상기 미리 정의된 워터마크 레벨을 초과하지 않는다면 데이터 출력을 스킵하는 단계를 더 포함하는, 오디오 스트림을 제어하는 방법.
  15. 오디오 스트림을 제어하는 방법으로서,
    마스터 오디오 싱크에서의 제 1 포트에서 오디오 버스로부터 제 1 오디오 채널과 연관된 제 1 데이터를 수신하는 단계;
    상기 마스터 오디오 싱크에서의 제 2 포트에서 상기 오디오 버스로부터 제 2 오디오 채널과 연관된 제 2 데이터를 수신하는 단계;
    상기 제 1 포트에서, 제 1 선입선출 (FIFO) 레지스터에 상기 제 1 데이터를 어큐뮬레이트하는 단계;
    상기 제 2 포트에서, 제 2 FIFO 레지스터에 상기 제 2 데이터를 어큐뮬레이트하는 단계;
    동일한 채널 레이트들에서 동작하도록 상기 제 1 및 제 2 포트들을 프로그래밍하는 단계;
    상기 제 1 FIFO 레지스터에서의 제 1 카운트를 제 1 미리정의된 임계값과 비교하는 단계;
    상기 제 1 카운트가 상기 제 1 미리정의된 임계값을 초과하면 제 1 준비 신호를 설정하는 단계;
    상기 제 2 FIFO 레지스터에서의 제 2 카운트를 제 2 미리정의된 임계값과 비교하는 단계;
    상기 제 2 카운트가 상기 제 2 미리정의된 임계값을 초과하면 제 2 준비 신호를 설정하는 단계; 및
    상기 제 1 준비 신호 및 상기 제 2 준비 신호가 설정되면 상기 제 1 및 제 2 FIFO 레지스터들의 컨텐츠들이 판독되는 것을 허용하는 단계를 포함하는, 오디오 스트림을 제어하는 방법.
  16. 오디오 스트림을 제어하는 방법으로서,
    슬레이브 오디오 싱크에서의 제 1 포트에서 오디오 버스로부터 제 1 오디오 채널과 연관된 제 1 데이터를 수신하는 단계;
    상기 슬레이브 오디오 싱크에서의 제 2 포트에서 상기 오디오 버스로부터 제 2 오디오 채널과 연관된 제 2 데이터를 수신하는 단계;
    상기 제 1 포트에서, 제 1 선입선출 (FIFO) 레지스터에 상기 제 1 데이터를 어큐뮬레이트하는 단계;
    상기 제 2 포트에서, 제 2 FIFO 레지스터에 상기 제 2 데이터를 어큐뮬레이트하는 단계;
    동일한 채널 레이트들에서 동작하도록 상기 제 1 및 제 2 포트들을 프로그래밍하는 단계;
    상기 제 1 FIFO 레지스터에서의 제 1 카운트를 제 1 미리정의된 임계값과 비교하는 단계;
    상기 제 1 카운트가 상기 제 1 미리정의된 임계값을 초과하면 제 1 준비 신호를 설정하는 단계;
    상기 제 2 FIFO 레지스터에서의 제 2 카운트를 제 2 미리정의된 임계값과 비교하는 단계;
    상기 제 2 카운트가 상기 제 2 미리정의된 임계값을 초과하면 제 2 준비 신호를 설정하는 단계; 및
    상기 제 1 준비 신호 및 상기 제 2 준비 신호가 설정되면 상기 제 1 및 제 2 FIFO 레지스터들의 컨텐츠들이 판독되는 것을 허용하는 단계를 포함하는, 오디오 스트림을 제어하는 방법.
KR1020177012852A 2014-11-14 2015-10-09 멀티-채널 오디오 할당 방식들 KR20170086498A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/541,577 US20160142455A1 (en) 2014-11-14 2014-11-14 Multi-channel audio alignment schemes
US14/541,577 2014-11-14
PCT/US2015/054863 WO2016076990A1 (en) 2014-11-14 2015-10-09 Multi-channel audio alignment schemes

Publications (1)

Publication Number Publication Date
KR20170086498A true KR20170086498A (ko) 2017-07-26

Family

ID=54365366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177012852A KR20170086498A (ko) 2014-11-14 2015-10-09 멀티-채널 오디오 할당 방식들

Country Status (6)

Country Link
US (1) US20160142455A1 (ko)
EP (1) EP3219111A1 (ko)
JP (1) JP2018500799A (ko)
KR (1) KR20170086498A (ko)
CN (1) CN107113501A (ko)
WO (1) WO2016076990A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11166101B2 (en) * 2015-09-03 2021-11-02 Dolby Laboratories Licensing Corporation Audio stick for controlling wireless speakers
CN107465783B (zh) * 2017-09-20 2019-07-12 Oppo广东移动通信有限公司 主板以及移动终端
KR20220021218A (ko) * 2020-08-13 2022-02-22 삼성전자주식회사 전자 장치 및 이의 제어 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3185863B2 (ja) * 1997-09-22 2001-07-11 日本電気株式会社 データ多重化方法および装置
EP1901489B1 (en) * 2006-09-13 2014-11-05 Yamaha Corporation Network system and audio signal processor
GB0820920D0 (en) * 2008-11-14 2008-12-24 Wolfson Microelectronics Plc Codec apparatus
US8549203B2 (en) * 2010-10-29 2013-10-01 Qualcomm Incorporated Multi-protocol bus interface device
US9258250B2 (en) * 2011-04-14 2016-02-09 Qualcomm Incorporated Dynamic data channel scheduling
US9929972B2 (en) * 2011-12-16 2018-03-27 Qualcomm Incorporated System and method of sending data via a plurality of data lines on a bus
KR101388945B1 (ko) * 2012-04-06 2014-04-24 주식회사 아이덴코아 비동기 복수의 디지털 신호의 전송방법

Also Published As

Publication number Publication date
EP3219111A1 (en) 2017-09-20
WO2016076990A1 (en) 2016-05-19
JP2018500799A (ja) 2018-01-11
US20160142455A1 (en) 2016-05-19
CN107113501A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
US11287842B2 (en) Time synchronization for clocks separated by a communication link
CN108885880B (zh) 用于处置音频流中的静默的系统和方法
US10339089B2 (en) Enhanced communications over a universal serial bus (USB) type-C cable
US20130268706A1 (en) System on chip for enhancing quality of service and method of controlling the same
TW201523271A (zh) 於嵌入式記憶體中提供命令佇列
US10560780B2 (en) Phase alignment in an audio bus
KR20180015638A (ko) 클록 관리를 통한 전력 감소
KR20170086498A (ko) 멀티-채널 오디오 할당 방식들
EP3189442B1 (en) Multi-channel audio communication in a serial low-power inter-chip media bus (slimbus) system
US9229841B2 (en) Systems and methods for detecting errors and recording actions on a bus
EP3191971B1 (en) Bridging strongly ordered write transactions to devices in weakly ordered domains, and related apparatuses, methods, and computer-readable media
US20160142454A1 (en) Multi-channel audio alignment schemes
JP6066224B2 (ja) 修正された高速同期式シリアルインターフェース(hsi)プロトコルデバイスを動作させるための方法および電子デバイス
US7370125B2 (en) Stream under-run/over-run recovery
WO2017105723A1 (en) Audio bus interrupts
WO2018013335A1 (en) Flow control protocol for an audio bus
US20190065431A1 (en) Providing zero-overhead frame synchronization using synchronization strobe polarity for soundwire extension buses
US20200356505A1 (en) Multiple masters connecting to a single slave in an audio system
JP2018513578A (ja) 全帯域幅通信バス