CN102667745B - 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 - Google Patents

多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 Download PDF

Info

Publication number
CN102667745B
CN102667745B CN201080052247.8A CN201080052247A CN102667745B CN 102667745 B CN102667745 B CN 102667745B CN 201080052247 A CN201080052247 A CN 201080052247A CN 102667745 B CN102667745 B CN 102667745B
Authority
CN
China
Prior art keywords
tone data
composite tone
data
stored
audio
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201080052247.8A
Other languages
English (en)
Other versions
CN102667745A (zh
Inventor
笹川贤太郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN102667745A publication Critical patent/CN102667745A/zh
Application granted granted Critical
Publication of CN102667745B publication Critical patent/CN102667745B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10638First-in-first-out memories [FIFO] buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/1074Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control involving a specific threshold value
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10814Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun

Abstract

多核系统2包括在第一处理器核61上操作并且向用于DMA传输的缓冲器63存储作为混合音频数据的合成音频数据的主系统程序610、在第二处理器62上操作的待机程序620以及顺序存储从所述用于DMA传输的缓冲器63传输的所述合成音频数据并且播放所存储的合成音频数据的音频输出单元64。在被存储到所述用于DMA传输的缓冲器63的所述合成音频数据的存储量没有达到根据被存储到所述音频输出单元64的所述合成音频数据的存储量确定的预定数据量时,所述待机系统程序620接管和执行由所述主系统程序610执行的所述合成音频数据的所述混合和所述存储。

Description

多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序
技术领域
本发明涉及多核系统、多核系统的控制方法以及存储程序的非暂态可读介质。
背景技术
已经研发了包括由多核构成的用于嵌入用途的多个CPU(中央处理单元)核的处理器(MPU:微处理单元)。这些处理器被形成在包括外围设备的一个芯片上。操作多核CPU上的几个不同OS(操作系统)的技术是已知的。进而,向多个CPU核通知单个中断请求(IRQ:中断请求)的方式被已知是MPU的功能。而且,能够配置MPU以根据寄存器设置向哪一个CPU核分配哪一个中断请求。
此外,例如如图8中所示,经由I2S(IC间的声音)总线从MPU50内的CPU向ADAC(音频DAC)51传输音频数据的技术是已知的。音频数据例如是PCM(脉冲编码调制)音频。注意到,I2S是由PHILIPS(注册商标)制造的、形成音频数据的接口设备的串行通信格式。在I2S标准中,能够经由I2S总线向ADAC 51输出PCM音频和压缩音频(例如μ-law和ADPCM)。而且,在图8中,I2C(集成电路间)总线是用于由PHILIPS(注册商标)研发的设备控制的串行总线。ADAC 51将音频数据转换为立体声音频。DAC是D/A转换器。经由扬声器播放从ADAC 51输出的模拟音频(立体声)。
此外,包括FIFO(先进先出)缓冲器的I2S设备是已知的。这样的I2C设备使存储到FIFO缓冲器的音频数据出列,并且经由I2S总线将其输出到ADAC。然后,在从FIFO缓冲器出列并减小的数据尺寸达到诸如4、8、16和32字节的边界时,存在能够生成中断(以下将其称为“FIFO边界中断”)的IS2设备。通常,该中断用于PIO(编程的输入/输出)传输。
发明内容
技术问题
本发明的申请人公开了用于在先前递交的日本专利申请No.2009-190103中的单个多核CPU上操作多个OS的技术。当在这些多个OS之间共享I2C设备时,即使在控制I2S设备的OS由于内核恐慌、冻结等等而被禁用时,该技术也能够使能其它OS控制I2C设备。这通过简单配置防止了声音跳跃。
这里,参照图9A和图9B说明在日本专利申请No.2009-190103中公开的技术。图9A示出了音频数据和处理的流。主系统侧的OS利用DMA传输完成中断作为触发进行操作,并且执行音频数据的音频混合处理以及DMA传输请求处理。然后,音频混合处理之后的音频数据被用DMA方式传输到FIFO。
然而,在主系统侧的OS被禁用时,DMA传输请求处理将不在某一时间内被执行。因此,生成I2S运行下错误。因此,在DMA传输间隔(表明从生成DMA传输完成中断直到生成I2S运行下错误的时间)超出所述某一时间时,FIFO变为空并且生成声音跳跃。
因此,在该技术中,在执行音频数据到被包括在I2S设备中的FIFO的DMA传输之后,多个OS接收DMA(直接存储器访问)传输中断。待机侧的OS利用DMA传输完成中断作为触发进行操作,并且设置HW(硬件)定时器。进而,主系统侧的OS执行音频数据的音频混合处理以及DMA传输请求处理,并且取消HW定时器。因此,能够检测到主系统侧的OS由HW定时器的超时而被禁用。然后,在HW定时器超时时,其表明主系统侧的OS被禁用。因此,进行从主系统侧的OS到待机系统侧的OS的切换,并且继续音频混合处理和DMA传输请求处理,这防止使FIFO缓冲器排空并且防止生成声音跳跃。
如目前为止所描述的,在该技术中,检测到主系统侧的OS被禁用的待机系统侧的OS代替主系统侧的OS继续所述音频混合处理等等。而且,该技术使能用于执行音频混合处理等等的DMA传输中断线程的处理方法以便不生成待根据DMA传输完成中断的接收选择的I2S运行下错误。
具体地说,将取决于音频混合处理时间的长度以及DMA传输间隔(≈I2S运行下错误生成时间)选择模式A和B的处理方法之一。注意到,能够根据实现环境的规范计算音频混合处理时间和DMA传输间隔。实现环境的规范例如是FIFO缓冲器级的数量、音频采样频率、DMA传输尺寸以及I2S设备的CPU时钟。
参照图9B说明模式A和B的选择条件。图9B示出了在模式A和B的选择条件下音频混合处理时间和I2S运行下错误生成时间之间的关系。
在满足选择条件“DMA传输间隔>(音频混合处理时间×2)”时,选择模式A。模式A在音频混合处理之后执行DMA传输开始请求处理。即,在满足该条件时,其在主系统的OS的音频混合处理之后在不取消HW定时器的情况下被切换到待机系统的OS,并且即使在待机系统的OS执行音频混合处理之后开始DMA传输时,也能够在I2S运行下错误生成时间逝去之前执行DMA传输。
在满足选择条件“DMA传输间隔≤(音频混合处理时间×2)”时,选择模式B。模式B在DMA传输开始请求处理之后执行音频混合处理。即,在满足该条件时,其在主系统的OS的音频混合处理之后在不取消HW定时器的情况下被切换到待机系统的OS,并且当在待机系统的OS执行音频混合处理之后开始DMA传输时,在I2S运行下错误生成时间逝去之后执行DMA传输。
在满足模式B时,在音频混合处理之前执行DMA传输开始请求处理。因此,如图10中所示,音频数据以一个分组(DMA传输尺寸)被预读取和制备。具体地说,音频数据被双重缓冲。然而,在模式B中,音频数据以一个分组被预读取。因此,存在的问题在于,在通过执行图片声音同步的视频播放器播放视频时,在实际被播放的音频数据和被识别为待由音频播放器播放的音频数据之间存在一个分组间隙,并且图片声音同步的精确度降低。
这里,参照图11更加详细地说明该问题。图11图示了在主系统侧的OS是OS 72并且待机系统侧的OS是OS 71时的情况。OS 71包括混合计数器712。OS 72包括混合计数器722。首先,在主系统侧的OS 72上操作的应用程序721(附图中被缩写为“APP”)使音频数据入列到声音队列82。应用程序721例如播放包括48,000Hz采样频率的16比特立体声音频的视频。进而,应用程序721例如以(1024/48000)秒的间隔以4096字节为单位传输音频数据。
在待机系统侧的OS 72上操作的应用程序711(附图中被缩写为“APP”)使音频数据入列到声音队列81。然后,在主系统侧的OS72上操作的软件混合器723混合从声音队列81和82出列的音频数据。软件混合器723将混合的音频数据作为用于DMA传输的音频数据存储到用于DMA传输的缓冲器73。被存储到用于DMA传输的缓冲器73的音频数据被传输到I2S设备的FIFO 74。然后,由ADAC 75播放从FIFO 74出列的音频数据。
如目前为止提及的,软件混合器723将从多个应用程序输出的具有不同采样频率和量化比特率的音频数据转换为单段音频数据。而且,每次在混合音频数据时,软件混合器723将用于被混合和生成的音频数据的样本数量的混合样本数量计数器722的计数器值加起来。
在主系统侧的OS 72上操作的应用程序721通过参照混合样本数量计数器722的计数器值执行音频数据的传输间隔的计算以及图片声音同步。即,在执行图片声音同步并且播放视频时,应用程序721播放与混合音频数据的样本数量相对应的图像。因此,在如在模式B中以一个分组预读取音频数据并且执行混合的处理方法中,在所播放的图像和被实际输出的音频之间存在大的间隙,并且图片声音同步的精确度降低。
为了解决上面提及的问题,本发明的目的在于提供一种能够在抑制图片声音同步的精确度的降低的同时防止生成声音跳跃的多核系统、多核系统的控制方法以及程序。
技术方案
在本发明的第一示例性方面中,一种多核系统包括在第一处理器核上操作、混合第一和第二音频数据并且将所混合的合成音频数据存储到用于DMA传输的缓冲器的主系统程序,在第二处理器核上操作并且作为所述主系统程序的待机系统操作的待机系统程序,以及顺序存储从所述用于DMA传输的缓冲器传输的所述合成音频数据并且播放所存储的合成音频数据的音频输出装置,其中在被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量没有达到根据被存储到所述音频输出装置的所述合成音频数据的存储量确定的预定数据量时,所述待机系统程序接管并且执行由所述主系统程序执行的所述合成音频数据的所述混合和所述存储。
在本发明的第二示例性方面中,一种多核系统的控制方法包括以下步骤:由在第一处理器核上操作的主系统程序混合第一和第二音频数据并且将所混合的合成音频数据存储到用于DMA传输的缓冲器,由音频输出装置顺序存储从所述用于DMA传输的缓冲器传输的所述合成音频数据并且播放所存储的合成音频数据,由在第二处理器核上操作并且作为所述主系统程序的待机系统操作的待机系统程序评估被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量是否达到根据被存储到所述音频输出装置的所述合成音频数据的存储量确定的预定数据量,并且在评估达到所述预定数据量时,由所述待机系统程序接管并且执行由所述主系统程序执行的所述合成音频数据的所述混合和所述存储。
在本发明的第三示例性实施例中,一种存储作为在处理器核上的主系统程序的待机系统操作的与所述主系统程序不同并且使所述处理器核执行以下步骤的程序的非暂态可读介质,所述步骤包括:评估被存储到用于DMA传输的缓冲器的合成音频数据的存储量是否达到根据被存储到音频输出装置的所述合成音频数据的存储量确定的预定数据量,其中所述合成音频数据被传输到音频输出装置并且由混合第一和第二音频数据的所述主系统程序获得,所述音频输出装置顺序存储被传输的所述合成音频数据并且播放所存储的合成数据,并且所述用于DMA传输的缓冲器存储所述合成音频数据,以及在评估达到所述预定数据量时接管和执行由所述主系统程序执行的所述合成音频数据的所述混合和所述存储。
技术效果
通过上面提及的本发明的示例性方面的每一个示例性方面,能够提供一种能够在抑制图片声音同步的精确度降低的同时防止生成声音跳跃的多核系统、多核系统的控制方法和程序。
附图说明
图1是示出根据本发明示例性实施例的多核系统的硬件配置的概述的框图;
图2是示出根据本发明示例性实施例的多核系统的硬件配置的概述的框图;
图3是示出根据本发明示例性实施例的多核系统的功能配置的框图;
图4是示出根据本发明示例性实施例的FIFO边界中断的次数与阈值之间关系的视图;
图5是用于说明根据本发明示例性实施例在其中主系统侧的OS正常操作的状态下的音频混合处理和DMA传输处理的顺序图;
图6是用于说明根据本发明示例性实施例在其中主系统侧的OS被禁用的状态下的音频混合处理和DMA传输处理的顺序图;
图7是用于说明根据本发明示例性实施例的关于声音队列的参数的视图;
图8是用于说明与本发明相关的技术的视图;
图9A是示出与本发明相关的技术的音频数据和处理的流的视图;
图9B是示出与本发明相关的技术的音频数据和处理的流的视图;
图10是用于说明与本发明相关的技术的音频混合处理和DMA传输开始请求处理的处理方法的视图;以及
图11是用于说明与本发明相关的技术的图片声音同步精确度问题的视图。
具体实施方式
首先参照图1说明根据本发明示例性实施例的多核系统的概述。图1是示出根据该示例性实施例的多核系统的硬件配置的概述的框图。
多核系统2包括处理器核61和62、用于DMA传输的缓冲器63以及音频输出单元64。
处理器核61操作作为主系统操作的程序610。
处理器核62操作作为待机系统操作的程序620。
用于DMA传输的缓冲器63存储由程序61和62混合的合成音频数据。
音频输出单元64顺序存储从用于DMA传输的缓冲器63传输的合成音频数据并且播放所存储的合成音频数据。
程序610混合第一和第二音频数据并且将混合的合成音频数据存储到用于DMA传输的缓冲器63。程序61是作为主系统操作的程序。
程序620作为主系统程序的待机系统操作。
接下来说明根据本发明示例性实施例的多核系统的处理的概述。
主系统的程序610混合第一和第二音频数据并且将混合的合成音频数据存储到用于DMA传输的缓冲器63。然后,在被存储到用于DMA传输的缓冲器63的合成音频数据达到某一数据量时,被存储到用于DMA传输的缓冲器63的合成音频数据被传输到音频输出单元64。音频输出单元64顺序存储从用于DMA传输的缓冲器63传输的合成音频数据并且播放所存储的合成音频数据。
待机系统的程序620评估被存储到用于DMA传输的缓冲器63的合成音频数据的存储量是否达到根据被存储到音频输出单元64的合成音频数据的存储量确定的预定数据量。然后,在还没有达到预定数据量时,其接管并且执行由主程序610执行的合成音频数据的混合和存储。
接下来参照图2和图3说明根据本发明示例性实施例的多核系统。图2是示出根据该示例性实施例的多核系统的硬件配置的框图。
如图2中所示,多核系统1包括用于嵌入的MPU 10、音频输出设备20以及SDRAM(同步动态随机访问存储器)30。SDRAM用作外部共享存储器。
MPU 10是将多核CPU和外围设备(I2S设备13、I2C设备14以及DMAC 15)集成在一个芯片上的IC(集成电路)。CPU 11和12分别包括一个或者多个CPU核。例如,在包括四个CPU核的多核CPU中,CPU 11包括一个CPU核并且CPU 12包括三个CPU核。进而,CPU 11和12可以由多个多核CPU构成。CPU核等效于处理器核61和62。
MPU 10在多核CPU上操作多个OS。OS 110在CPU 11上操作。OS 120在CPU 12上操作。注意到,OS 110和OS 120是不同种类的OS。例如,可以存在其中OS 110是诸如μITRON的实时OS并且OS 120是高度功能嵌入式OS的组合。高度功能嵌入式OS例如是嵌入式Linux(注册商标)和Windows CE(注册商标)等等。
应用程序111(附图中被缩写为“APP”)和作为设备驱动器的声音驱动器112在OS 110上操作。从应用程序111输出的音频数据被输入到声音驱动器112。进而,应用程序121、122和123(在附图中分别被缩写为“APP”),声音服务器124以及作为设备驱动器的声音驱动器125在OS 120上操作。从应用程序121和应用程序122输出的音频数据被输入到声音服务器124。从声音服务器124输出的音频数据以及从应用程序123输出的音频数据被输入到声音驱动器125。
I2S设备13经由I2S总线(I2S总线)向ADAC&AMP 21传输音频数据。I2S设备13是一个设备。I2S设备13包括FIFO 131。I2S设备13将音频数据存储到FIFO 131。这里,I2S设备13将立体声PCM处理为音频数据。
I2C设备14是用于设备控制的串行总线。使用I2C设备14以便执行从被包括在ADAC中的寄存器的读取和到该寄存器的写入。
DMAC(DMA控制器)15控制在MPU 10外侧连接的SDRAM 30与其它设备之间的DMA传输。这里,使用DMAC 15的一个信道执行从SDRAM 30上的OS 40之间的共享存储器到I2S设备13的FIFO131的音频数据的传输。
注意到,在该示例性实施例中说明了通常OS 120侧的声音驱动器125执行音频混合处理和外围设备(I2S设备13、I2C设备14以及DMAC 15)的控制。
音频输出设备20包括ADAC&AMP 21和扬声器22。ADAC&AMP 21构成音频输出设备20的外部接口。ADAC&AMP 21将经由I2S总线传输的音频数据转换为模拟信号并且将其放大。ADAC&AMP 21使用扬声器22播放模拟信号。I2S设备13和音频输出单元20等效于音频输出单元64。
SDRAM 30是经由总线在MPU 10外侧连接的易失性存储器(RAM)。在SDRAM 30中确保了作为在OS 40之间的共享存储器的在MPU 10的OS之间共享的存储器空间。
在OS 40之间的共享存储器中,设置声音队列(声音队列41、声音队列42以及声音队列43)以及用于DMA传输的缓冲器44。声音队列是存储由应用程序输出的音频数据的环形缓冲器。与用于输出音频数据的应用程序的数量相对应的队列被创建为声音队列。这里,创建与OS 110的应用程序111、OS 120的声音服务器124以及OS 120的应用程序123相对应的三个声音队列(声音队列41、声音队列42以及声音队列43)。利用音频混合处理执行声音队列(声音队列41、声音队列42以及声音队列43)的音频数据,并且然后将其存储到用于DMA传输的缓冲器44。注意到,可以使用除了环形缓冲器的入列装置组成声音队列。
图3是示出根据该示例性实施例的多核系统的功能配置的框图。图3示出了图2中示出的声音驱动器112被划分为高级应用I/F单元113和驱动器核单元114。进而,其示出了声音驱动器125被划分为高级应用I/F单元126和驱动器核单元127。高级应用I/F单元113包括采样速率转换功能116。高级应用I/F单元126包括采样速率转换功能130。
高级应用I/F单元113将从应用程序111输出的音频数据存储到OS 40之间的共享存储器内侧的声音队列41。此时,高级应用I/F单元113的采样速率转换功能116在必要时对从应用程序111接收的音频数据执行采样速率的转换以及量化比特率的转换。高级应用I/F单元113将所转换的音频数据存储到OS 40之间的共享存储器内侧的声音队列41。
高级应用I/F单元126将从声音服务器124和应用程序123输出的音频数据存储到OS 40之间的共享存储器内侧的声音队列42和43。此时,高级应用I/F单元126的采样速率转换功能130对从声音服务器124和应用程序123接收的音频数据执行采样速率的转换以及量化比特率的转换。高级应用I/F单元126将所转换的音频数据存储到OS 40之间的共享存储器中的声音队列42和43。采样速率转换功能116和130例如将48kHz 23比特音频转换为44.1kHz 16比特音频。
驱动器核单元114和127混合被存储到OS 40之间的共享存储器的每一个声音队列的音频数据。驱动器核单元114和127使用DMA传输将音频混合处理之后的音频数据传输到I2S设备13的FIFO 131。注意到,在该示例性实施例中,作为声音驱动器112和125的一部分并且执行音频混合处理以及I2S设备13和I2C设备14的控制的功能单元被定义为驱动器核单元114和125。进而,音频混合处理表明混合从在每一个OS上操作的多个应用程序输出的音频数据并且作为单段音频数据复制到用于DMA传输的区域(用于DMA传输的缓冲器44)的处理。
在该示例性实施例中,在系统操作时仅多个OS中的一个OS(主系统)的驱动器核单元操作。其它OS(待机系统)的驱动器核单元通常处于空闲状态。仅在主系统侧的OS具有内核恐慌或者冻结时待机系统才操作。注意到,主系统表明包括在正常时间操作的驱动器核单元的系统。待机系统表明包括在主系统侧被禁用时操作的驱动器核单元的系统。这里,主系统和待机系统是用于声音播放功能(声音驱动器的部分功能)的主系统和待机系统并且不必表明该主系统OS和待机系统OS。即,待机系统侧的OS表明包括作为关于声音播放功能的待机系统的功能的OS。
软件混合器128是由驱动器核单元127调用的功能。软件混合器128混合被存储到每一个声音队列的音频数据。软件混合器128将所混合的音频数据存储到用于DMA传输的缓冲器44。
公共中断控制单元16向每一个CPU核分配中断请求(IRQ)。基本上,公共中断控制单元16被包括以作为MPU 10内侧的硬件功能。注意到,在公共中断控制单元16没有被作为MPU 10内侧的硬件功能安装时,其能够被实施为软件功能。
被输入到公共中断控制单元16的中断请求是在完成音频数据的DMA传输时由DMAC 15发出的DMA传输完成中断以及由I2S设备13发出的FIFO边界中断。当自从生成DMA传输完成中断以来在某一时间内不存在DMA传输请求时,I2S设备13的FIFO 131的缓冲器变为空并且生成I2S运行下错误。
驱动器管理单元115是由待机系统侧的OS的中断处理程序调用的功能组。驱动器管理单元115执行HW定时器17的设置、FIFO边界中断的开/关的设置以及将使用主系统的驱动器核单元的操作切换到使用待机系统的驱动器核单元的操作的切换处理。注意到,HW定时器17表明被包括在MPU 10中的硬件定时器。
接下来说明根据本发明示例性实施例的多核系统的操作。
在执行从SDRAM 30到FIFO 131的DMA传输之后,多个OS 110和120接收DMA传输完成中断。在主系统侧的OS 120正常操作时,所接收的DMA传输完成中断到达DMA传输完成中断线程129。然后,DMA传输完成中断线程129利用音频数据的DMA传输完成中断作为触发进行操作并且执行音频数据的音频混合处理以及DMA传输请求处理。然后,在音频混合处理之后被存储到用于DMA传输的缓冲器44的音频数据被从SDRAM 30用DMA方式传输到FIFO131。
注意到,关于音频混合处理和DMA传输开始请求处理的处理顺序,根据在主系统侧的OS 120中音频混合处理时间与I2S运行下错误之间的关系选择模式A和模式B中的一个。
在满足选择条件“DMA传输间隔>(音频混合处理时间×2)”时,选择模式A。然后,在模式A中,按照在音频混合处理之后执行DMA传输开始请求处理的顺序执行所述处理。即,在这种情况下,在DMA传输开始请求处理之前执行音频混合处理。
在满足选择条件“DMA传输间隔≤(音频混合处理时间×2)”时,选择模式B。然后,在模式B中,按照在DMA传输开始请求处理之后执行音频混合处理的顺序执行所述处理。即,在这种情况下,在音频混合处理之前执行DMA传输开始请求处理。进而,为了预读取音频数据的一个分组(作为DMA传输尺寸)以执行DMA传输,要求音频的双重缓冲处理。
而且,在该示例性实施例中,在满足选择条件“音频混处理时间<DMA传输间隔≤(音频混合处理时间×2)”时,即使在满足选择条件“DMA传输间隔≤(音频混合处理时间×2)”时,也选择模式A。具体地说,模式B的选择条件精确地为“音频混合处理时间≥DMA传输间隔”并且“DMA传输间隔≤(音频混合处理时间×2)”。
接下来说明根据本发明示例性实施例的多核系统的主系统侧的OS 120的监视功能。首先说明在满足选择条件“DMA传输间隔>(音频混合处理时间×2)”时选择模式A的情况和选择模式B的情况。
在这种情况下,在待机系统侧的OS 110接收DMA传输完成中断时,由被包括在待机系统侧的OS 110中的中断处理程序操作的驱动器管理单元115设置HW定时器17。然后,在DMA传输完成中断达到主系统侧的OS 120的DMA传输完成中断线程129时,DMA传输完成中断线程129取消设置HW定时器17。因此,在DMA传输完成中断没有达到主系统侧的OS 120的DMA传输完成中断线程129时,设置HW定时器17将不被取消并且将超时。因此,能够根据是否存在HW定时器17的超时监视主系统侧的OS 120的禁用操作。
接下来说明在选择条件“音频混合处理时间<DMA传输间隔≤(音频混合处理时间×2)”时选择模式A的情况。
在这种情况下,在待机系统侧的OS 110接收DMA传输完成中断时,由被包括在待机系统侧的OS 110中的中断处理程序操作的驱动器管理单元115允许由I2S设备13接收FIFO边界中断。进而,在待机系统侧的OS 110接收FIFO边界中断时,驱动器管理单元115评估被存储到用于DMA传输的缓冲器44的音频数据的样本数量是否到达预定阈值。作为该评估的结果,在音频数据的样本数量没有达到根据被存储到FIFO 131的音频数据的样本数量计算的预定阈值时,驱动器管理单元115执行将使用主系统的驱动器核单元127的操作切换到使用待机系统的驱动器核单元114的操作的切换处理。
这里,预定阈值是如下基准值,该基准值用于评估能够完成剩余音频混合处理和DMA传输请求处理的执行的样本数量的音频数据是否被存储到用于DMA传输的缓冲器44直到使被存储到FIFO131的全部剩余音频数据出列。即,在被存储到用于DMA传输的缓冲器44的音频数据的样本数量达到预定阈值时,即使在从那时起执行剩余的音频混合处理和DMA传输请求处理时,也不将生成I2C运行下错误。
能够例如通过参照FIFO 131的寄存器识别被存储到FIFO 131的音频数据的样本数量。进而,能够根据生成FIFO边界中断的次数获得从FIFO 131出列的音频数据的尺寸。而且,能够根据该尺寸获得从FIFO 131出列的音频数据的样本数量。因此,能够根据生成FIFO边界中断的次数计算被存储到FIFO 131的音频数据的样本数量。
这里,在操作被切换到待机系统的驱动器核单元114时,待机系统侧的驱动器核单元114接管并且执行一部分由主系统侧的驱动器核单元127执行的音频混合处理。待机系统的驱动器核单元114能够参照被存储到用于DMA传输的缓冲器44的音频数据的样本数量识别由主系统侧的驱动器核单元127混合的音频数据的样本数量。然后,能够根据被存储到声音队列41、42和43的音频数据识别被接管以开始混合的音频数据。注意到,被存储到用于DMA传输的缓冲器44的音频数据的样本数量能够由将值存储到OS 40之间的共享存储器的软件混合器128识别或者能够通过对被存储到用于DMA传输的缓冲器44的音频数据的样本数量进行计数来识别。
接下来参照图4说明阈值的示例。图4是示出FIFO边界中中断的次数与阈值之间关系的视图。
图4是示出作为多核系统1的操作规范在音频采样频率为大约48000Hz、I2S运行下错误生成时间为1200μs、音频混合处理时间为700μs并且DMA传输单元为1024个样本时确定的阈值的示例。大约48000Hz的值是由以MPEG(移动图像专家组)视频等等输出的音频使用的频率。FIFO 131图示了在级的数量为64级并且要求150μs(1/48000Hz≈18.75μs以传输一个级)以传输八级的数据时的情况。这里,一个样本的音频数据被存储在一个级中。而且,混合的音频数据的尺寸应该为四个字节。即,其图示了只要在被存储到FIFO 131的音频数据以32(四个字节×八级)字节降低时就生成FIFO边界中断的情况。
在图4中,“FIFO边界中断的次数”表明自从接收DMA传输完成中断以来的中断次数。而且,“生成FIFO边界中断的时间”表明自从接收DMA传输完成中断以来的时间。注意到,能够根据被存储到FIFO 131的音频数据的样本数量以及音频采样频率计算阈值。
例如,在生成第七FIFO边界中断时,FIFO 131的剩余样本数量为八个样本。因此,能够计算出,在用于传输八个样本的150μs逝去之后将存在I2S运行下错误。这里,在生成第七边界中断时,在期望值是利用150μs的限额完成DMA传输单元的样本数量的音频数据的混合时,1024个样本的音频数据需要被存储到用于DMA传输的缓冲器44。在这种情况下,如图4中所示,将阈值设置为“1024”。
如图4中所示,驱动器管理单元115通过使能参照根据FIFO 131的剩余样本的数量以及音频采样频率计算阈值的公式以及根据FIFO131的剩余样本的数量识别阈值的表格能够识别该阈值。该公式或者表格能够通过被包括在驱动器管理单元115以及OS 40之间的共享存储器中而由驱动器管理单元15参照。
接下来参照图5和图6说明在检测主系统侧的OS 120的禁用操作时驱动器核单元的切换操作。首先,参照图5说明在主系统侧的OS 120正常操作时在接收DMA传输完成中断之后的处理。图5是用于说明在其中主系统侧的OS 120正常操作的状态下音频混合处理和DMA传输处理的顺序图。注意到,尽管如图3中所示经由公共中断控制单元16向驱动器管理单元115输出FIFO边界中断,但是图5和图6省去了该点。
首先,在MPU 10接收DMA传输完成中断时,公共中断控制单元16向多个CPU核传输中断请求(IRQ)(S101)。
接下来,在从公共中断控制单元16接收中断请求(IRQ)时,在待机系统侧的OS 110上操作的驱动器管理单元115向I2S设备13输出FIFO边界中断开始请求(S102)。响应于FIFO边界中断开始请求的输出,I2S设备13开始输出FIFO边界中断。
接下来,响应于FIFO边界中断的输出,驱动器管理单元115获得被存储到用于DMA传输的缓冲器44的音频数据的样本数量。驱动器管理单元115评估所获得的样本数量是否达到阈值(S103)。在样本数量达到阈值时,由于主系统侧的驱动器核127正常操作并且执行音频混合处理,因此驱动器管理单元115将不向待机系统的驱动器核单元114切换操作。
接下来,在音频混合处理正常结束时,主系统侧的驱动器核单元127向I2S设备输出FIFO边界中断停止请求(S104)。响应于FIFO边界中断停止请求的输出,I2S设备13停止FIFO边界中断的输出。
接下来,参照图6说明在主系统侧的OS 120被禁用时使用待机系统侧的OS继续执行音频混合处理和DMA传输处理的处理。图6是用于说明在其中主系统侧的OS 120被禁用的状态下音频混合处理和DMA传输处理的顺序图。注意到,由于图6中示出的S201和S202的处理与图5中示出的S101和S101的处理相同,因此这里省去对其的说明。
驱动器管理单元115响应于FIFO边界中断的输出获得被存储到DMA传输缓冲器的音频数据的样本数量。驱动器管理单元115评估所获得的样本数量是否达到阈值(S203)。这里,在图6中,在主系统侧的OS 120被禁用时,不执行音频混合处理并且样本的数量将不达到阈值。由于在样本数量没有达到阈值时主系统侧的驱动器核单元127并不正常操作,因此驱动器管理单元115向待机系统的驱动器核单元114切换操作。具体地说,驱动器管理单元115请求待机系统侧的驱动器核单元114开始音频混合处理。然后,待机系统侧的驱动器核单元114开始音频混合处理。
在操作被切换之后,待机系统的驱动器核单元114向I2S设备输出FIFO边界中断停止请求(S204)。响应于FIFO边界中断停止请求的输出,I2S设备13停止FIFO边界中断的输出。然后,自从主系统侧的OS 120被禁用以来,待机系统的驱动器核单元114接管音频数据的音频混合处理。
这里,参照图7说明自从主系统侧的OS 120被禁用以来接管音频数据的音频混合处理的处理。
如图7中所示,在该示例性实施例中,除了通用环形缓冲器的参数(前面和后面)之外,向每个声音队列(环形缓冲器)添加参数前面2。这里,前面是用于由主系统侧的驱动器核单元127使用的出列的参数。进而,后面是用于由每个OS的高级应用I/F单元126和113使用的入列的参数。而且,前面2是用于由待机系统侧的驱动器核单元114使用的出列的参数。
参数前面2用于在音频混合处理期间主系统侧的OS 120被禁用时维持音频数据的一致性。例如,在待机系统侧的OS 110空闲的同时,在DMA传输开始请求之后,主系统侧的驱动器核单元127使用I2S设备13的FIFO 131中的第一完全中断的生成作为触发对于DMA传输的次数计数前面2。注意到,前面2的计数方法并不局限于此,而是可以使用更加简单的方法。例如,其可以是其中在线程存在处主系统侧的DMA传输完成中断线程计数前面2的配置。即,可以禁止和执行I2S设备13的FIFO 131中的完全中断。
在主系统侧的OS 120正常操作时,DMA传输完成中断线程129从由前面表明的位置使音频数据出列(由图7中的阴影表明的部分)。使用前面对该出列处理进行计数。即,每次在使音频数据出列时对于所出列的音频数据的样本数量计数前面。接下来,主系统侧的驱动器核单元127使用调用的软件混合器功能执行从声音队列输出的多段音频数据的音频混合处理。随后,在音频混合处理之后被存储到用于DMA传输的缓冲器44的音频数据被从SDRAM 30用DMA方式传输到I2S设备13的FIFO 131。这里,使用前面2对DMA传输的次数进行计数。即,在执行DMA传输的任何时候,对于用DMA方式传输的音频数据的样本数量计数前面2。
因此,在主系统侧的OS 120正常操作时,前面2在前面之后并且在前面从与前面2相同的位置开始之后发生改变。另一方面,在主系统侧的OS 120被禁用时,途中的音频数据的出列停止并且前面的计数停止。此外,由于通过主系统侧的OS 120变为被禁用将不执行DMA传输,因此前面2的计数停止并且前面2的位置将不被更新。
这里,如图7中所示,假设其中在主系统侧的OS 120被禁用并且前面和前面2停止时,切换的待机系统侧的驱动器核单元114开始使用被调用的软件混合器功能从由前面表明的位置使音频数据出列的情形。在这种情形下,在从使用前面表明的位置开始音频数据的出列时,可能丢失的音频数据将被出列,并且不能够确保音频数据的一致性。因此,在主系统侧的OS 120被禁用并且前面和前面2停止时,切换的待机系统侧的驱动器核单元114开始使用所调用的软件混合器功能从由前面2表明的位置使音频数据出列。然后,由于能够在主系统侧的OS 120被禁用之前从音频数据开始出列,因此能够确保在切换之前和之后音频数据的一致性。
这里,在满足选择条件“音频混合处理时间<DMA传输间隔≤(音频混合处理时间×2)”并且选择模式A时,参照用于DMA传输的缓冲器44对于被存储到该用于DMA传输的缓冲器44的音频数据的样本数量减一计数前面2。然后,从由前面2表明的位置开始音频数据的出列。
这里,在被存储到用于DMA传输的缓冲器44的音频数据中可能丢失的音频数据将是在结束处由主系统侧的驱动器核单元127音频混合并且存储的音频数据。因此,如上所述,在待机系统侧的驱动器核单元114中,通过从在结束处由主系统侧的驱动器核单元127音频混合和存储的音频数据接管和执行音频混合处理,能够确保在切换之前和之后音频数据的一致性。即,待机系统侧的驱动器核单元114从声音队列41、42和43的位置中在由被存储到用于DMA传输的缓冲器44的音频数据的存储量表明的位置之前至少一个样本的位置接管和执行音频混合处理。
进而,如上所述,通过接管和执行音频混合处理的待机系统侧的驱动器核单元114,在从主系统侧切换到待机系统侧之前和之后经过的音频混合处理时间能够是几乎一个音频混合处理时间。因此,即使在满足条件“音频混合处理时间<DMA传输间隔≤(音频混合处理时间×2)”的情况下选择模式A时,也能够在不生成I2S运行下错误的情况下从主系统侧切换到待机系统。
此外,在其被切换到待机系统侧的OS 110时,在通过禁止从先前是主系统侧的驱动器核单元127的DMA寄存器访问,当前作为主系统侧的待机系统侧的驱动器核单元114执行音频混合处理的同时,确保了音频数据的一致性。例如,待机系统侧的驱动器管理单元110临时将由主系统侧的OS 120识别的共享存储器(SDRAM 30)上的外围设备(I2S设备13和DMAC 15)的基础地址改变到诸如SDRAM30上的未使用空间的无效地址。然后,能够禁止在被切换之前已经是主系统的OS 120到寄存器的访问。
根据目前为止说明的该示例性实施例,在对于多个OS之间的音频输出共享I2S总线的配置中,即使在一个OS的操作停止时,也能够防止来自其它OS侧的音频输出被中断。此时,即使在满足“音频混合处理时间<DMA传输间隔≤(音频混合处理时间×2)”时,也能够通过不降低图片声音同步精确度的模式A从主系统切换到待机系统。因此,在抑制图片声音同步精确度降低的同时能够防止生成声音跳跃。
进而,根据该示例性实施例,通过仅参照被存储到OS之间的共享存储器的音频数据的样本数量,能够在待机系统接收FIFO边界中断时要求是否从主系统切换到待机系统的评估。因此,将不降低处理速度。
而且,在该示例性实施例中,允许FIFO边界中断的时段是对于每个几十毫秒的DMA传输周期中几百μs数量级的时段。因此,对待机系统侧的性能存在非常小的影响。
而且,在该示例性实施例中,声音驱动器被划分为高级应用I/F单元和驱动器核单元,并且采样速率转换功能被包括在高级应用I/F单元中。因此,即使在仅禁用主系统侧的驱动器核单元时,也能够继续主系统的高级应用I/F单元中的采样速率转换处理。因此,通过将音频混合处理的执行切换到待机系统的驱动器核单元能够继续和播放由主系统侧的OS生成的音频数据。
注意到,本发明并不局限于上面的示例性实施例而是能够在本发明的范围内进行适当修改。例如,尽管作为示例说明了其中MPU10包括两个OS 110和120的情况,但是本发明并不局限于此。具体地说,MPU 10可以包括三个或者更多OS。在这种情况下,存在待机系统侧的多个OS。
执行在上面提及的主系统和待机系统中的操作的程序能够被存储和提供到使用任何类型的非暂态计算机可读媒介的计算机。非暂态计算机可读媒介包括任何类型的有形存储媒介。非暂态计算机可读媒介的示例包括磁存储媒介(例如软盘、磁带、硬盘驱动等等)、光学磁存储媒介(例如磁光盘)、CD-ROM(压缩盘只读存储器)、CD-R(压缩盘可记录)、CD-R-W(压缩盘可重写)以及半导体存储器(诸如掩模ROM、PROM(可编程ROM)、EPROM(可擦除PROM)、闪存ROM、RAM(随机访问存储器)等等)。可以使用任何类型非暂态计算机可读媒介向计算机提供程序。暂态计算机可读媒介的示例包括电信号、光学信号以及电磁波。暂态计算机可读媒介可以经由有线通信线路(例如电线和光纤)或者无线通信线路向计算机提供程序。
本发明要求享有2009年11月18日在日本专利局递交的日本专利申请No.2009-262545的优先权并且基于该专利申请,这里以引用的方式结合该申请的全部内容。
附图标记列表
1多核系统
10和50MPU
11和12CPU
13 I2S设备
14 I2C设备
15DMA控制器
16公共中断控制单元
17HW定时器
20音频输出设备
21和51ADAC&AMP
22扬声器
30SRAM
40OS之间的共享存储器
41、42、43、81和82声音队列
44、63和73用于DMA传输的缓冲器
61和62处理器核
64音频输出单元
71、72、110和120OS
74和131FIFO
75ADAC
111、121、122、123、711和721应用
112、125声音驱动器
113、126高级应用I/F单元
114、127驱动器核单元
115驱动器管理单元
116和130采样速率转换功能
124声音服务器
128软件混合器
129DMA传输中断线程
610和620程序
712和722混合的样本数量计数器

Claims (11)

1.一种多核系统,包括:
在第一处理器核上操作、混合第一和第二音频数据并且将所混合的合成音频数据存储到用于DMA传输的缓冲器的主系统单元;
在第二处理器核上操作并且作为所述主系统单元的待机系统操作的待机系统单元;以及
顺序存储从所述用于DMA传输的缓冲器传输的所述合成音频数据并且播放所存储的合成音频数据的音频输出单元,
其中在被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量没有达到根据被存储到所述音频输出单元的所述合成音频数据的存储量确定的预定数据量时,所述待机系统单元接管并且执行由所述主系统单元执行的所述合成音频数据的所述混合和所述存储。
2.根据权利要求1的多核系统,其中每次在被存储到所述音频输出单元的所述合成音频数据的存储量降低预定单位时,所述待机系统单元评估被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量是否达到根据被存储到所述音频输出单元的所述合成音频数据的降低量确定的预定阈值,并且在没有达到所述预定阈值时,所述待机系统单元接管并且执行由所述主系统单元执行的所述合成音频数据的所述混合和所述存储。
3.根据权利要求1的多核系统,其中所述音频输出单元包括使从所述用于DMA传输的缓冲器传输的所述合成音频数据入列并且要被播放的所述合成音频数据被从其出列的FIFO缓冲器。
4.根据权利要求3的多核系统,其中
每次在被存储到所述FIFO缓冲器的所述合成音频数据被出列预定单位时,所述音频输出单元向所述待机系统单元输出FIFO边界中断,并且
所述待机系统单元评估被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量是否达到根据被存储到所述FIFO缓冲器的所述合成音频数据的存储量确定的预定阈值,并且在没有达到所述预定阈值时,所述待机系统单元接管并且执行由所述主系统单元执行的所述合成音频数据的所述混合和所述存储。
5.根据权利要求4的多核系统,进一步包括向所述FIFO缓冲器传输被存储到所述用于DMA传输的缓冲器的所述合成音频数据的DMA控制器,并且在所述传输完成时,所述DMA控制器向所述待机系统单元输出DMA传输完成中断,其中
所述待机系统单元根据来自所述DMA控制器的所述DMA传输完成中断向所述音频输出单元输出使能所述FIFO边界中断的输出的FIFO边界中断开始请求,并且
在完成所述合成音频数据的所述混合和所述存储时,所述主系统单元输出禁用所述FIFO边界中断到所述音频输出单元的所述输出的FIFO边界中断停止请求。
6.根据前述权利要求1的多核系统,其中
所述主系统单元包括第一操作系统和在所述第一操作系统上操作的第一声音驱动器,
所述待机系统单元包括第二操作系统和在所述第二操作系统上操作的第二声音驱动器,并且
所述第二声音驱动器接管和执行由所述第一声音驱动器执行的所述合成音频数据的所述混合和所述存储。
7.根据权利要求6的多核系统,进一步包括存储所述第一音频数据的第一环形缓冲器以及存储所述第二音频数据的第二环形缓冲器,其中
所述主系统单元的所述声音驱动器从所述第一和所述第二环形缓冲器顺序获得所述第一和所述第二音频数据,并且
在接管和执行所述合成音频数据的所述混合和所述存储时,所述第二声音驱动器从位于所述第一和所述第二环形缓冲器的位置中由被存储到所述DMA缓冲器的所述合成音频数据的存储量表明的位置之前至少一个样本的位置接管和执行所述第一和所述第二音频数据的所述混合和所述存储。
8.根据权利要求7的多核系统,其中
所述主系统单元进一步包括生成所述第一音频数据的第一应用程序,
所述待机系统单元进一步包括生成所述第二音频数据的第二应用程序,
所述第一声音驱动器包括转换由所述第一应用程序生成的所述第一音频数据的采样速率并且将其存储到所述第一环形缓冲器的接口单元以及执行所述合成音频数据的所述混合和所述存储的驱动器核单元,
所述第二声音驱动器包括转换由所述第二应用程序生成的所述第二音频数据的采样速率并且将其存储到所述第二环形缓冲器的接口单元以及执行所述合成音频数据的所述混合和所述存储的驱动器核单元。
9.根据权利要求1的多核系统,其中
所述音频输出单元包括I2S设备以及包括DA转换器的音频输出设备,
所述I2S设备包括使从所述用于DMA传输的缓冲器传输的所述合成音频数据入列并且使要被播放的所述合成音频数据从其出列的FIFO缓冲器,并且
所述音频输出设备将被从所述FIFO缓冲器出列的所述合成音频数据转换为模拟信号并且对其进行播放。
10.一种多核系统的控制方法,包括:
由在第一处理器核上操作的主系统程序混合第一和第二音频数据并且将所混合的合成音频数据存储到用于DMA传输的缓冲器;
由音频输出装置顺序存储从所述用于DMA传输的缓冲器传输的所述合成音频数据并且播放所存储的合成音频数据;
由在第二处理器核上操作并且作为所述主系统程序的待机系统操作的待机系统程序评估被存储到所述用于DMA传输的缓冲器的所述合成音频数据的存储量是否达到根据被存储到所述音频输出装置的所述合成音频数据的存储量确定的预定数据量;并且
在评估未达到所述预定数据量时,由所述待机系统程序接管并且执行由所述主系统程序执行的所述合成音频数据的所述混合和所述存储。
11.一种待机系统,包括:
用于评估被存储到用于DMA传输的缓冲器的合成音频数据的存储量是否达到根据被存储到音频输出装置的所述合成音频数据的存储量确定的预定数据量的装置,所述合成音频数据被传输到音频输出装置并且通过混合第一和第二音频数据的所述主系统程序获得,所述音频输出装置顺序存储被传输的所述合成音频数据并且播放所存储的合成数据,并且所述用于DMA传输的缓冲器存储所述合成音频数据;以及
用于在评估未达到所述预定数据量时接管和执行由所述主系统程序执行的所述合成音频数据的所述混合和所述存储的装置。
CN201080052247.8A 2009-11-18 2010-08-04 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序 Expired - Fee Related CN102667745B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009-262545 2009-11-18
JP2009262545 2009-11-18
PCT/JP2010/004911 WO2011061878A1 (ja) 2009-11-18 2010-08-04 マルチコアシステム、マルチコアシステムの制御方法及びプログラムが格納された非一時的な可読媒体

Publications (2)

Publication Number Publication Date
CN102667745A CN102667745A (zh) 2012-09-12
CN102667745B true CN102667745B (zh) 2015-04-08

Family

ID=44059366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080052247.8A Expired - Fee Related CN102667745B (zh) 2009-11-18 2010-08-04 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序

Country Status (4)

Country Link
US (1) US8892230B2 (zh)
JP (1) JP5382133B2 (zh)
CN (1) CN102667745B (zh)
WO (1) WO2011061878A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI643185B (zh) * 2017-04-26 2018-12-01 瑞昱半導體股份有限公司 音訊處理裝置及方法
CN109313566A (zh) * 2017-12-27 2019-02-05 深圳前海达闼云端智能科技有限公司 一种虚拟机的音频播放方法及其装置、移动终端

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5382133B2 (ja) * 2009-11-18 2014-01-08 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法及びプログラム
US9236064B2 (en) * 2012-02-15 2016-01-12 Microsoft Technology Licensing, Llc Sample rate converter with automatic anti-aliasing filter
JP6122135B2 (ja) * 2012-11-21 2017-04-26 コーヒレント・ロジックス・インコーポレーテッド 分散型プロセッサを有する処理システム
CN104516779B (zh) * 2013-09-27 2020-03-24 联想(北京)有限公司 一种系统切换方法及芯片
US20160283438A1 (en) * 2013-12-23 2016-09-29 Hu Tiger Chen System-on-a-chip (soc) including hybrid processor cores
US10467696B1 (en) * 2015-07-31 2019-11-05 Integral Development Corp. Timing mechanisms to enhance the security of online networks
JP6695955B1 (ja) 2018-11-27 2020-05-20 レノボ・シンガポール・プライベート・リミテッド 信号処理装置、制御方法、及びプログラム
DE102019203130A1 (de) * 2019-03-07 2020-09-10 Continental Automotive Gmbh Nahtlose Audioübergabe in einem Mehrprozessor-Audiosystem
CN111258937B (zh) * 2020-01-23 2021-08-03 烽火通信科技股份有限公司 一种环式链表dma的传输方法及系统
CN111338998B (zh) * 2020-02-20 2021-07-02 深圳震有科技股份有限公司 基于amp系统的flash访问处理方法及装置
CN111427806A (zh) * 2020-03-23 2020-07-17 深圳震有科技股份有限公司 一种双核amp系统共用串口的方法、存储介质及智能终端
CN111427817B (zh) * 2020-03-23 2021-09-24 深圳震有科技股份有限公司 一种amp系统双核共用i2c接口的方法、存储介质及智能终端
CN115696173A (zh) * 2022-09-14 2023-02-03 合肥杰发科技有限公司 一种芯片、车用音源播放方法、车载设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241589A (zh) * 2006-11-27 2008-08-13 西门子公司 带有快速图像处理设备的图像处理系统以及图像处理方法
CN101303687A (zh) * 2008-06-03 2008-11-12 浙江大学 一种嵌入式异构多核体系片上通信的实现方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357511A (en) * 1993-03-22 1994-10-18 Peak Audio, Inc. Distributed processing in a digital audio mixing network
JP3193525B2 (ja) * 1993-05-31 2001-07-30 キヤノン株式会社 情報処理装置
EP0786121B1 (fr) * 1994-10-12 2000-01-12 Touchtunes Music Corporation Systeme de reproduction audio-visuelle numerique intelligent
US5850628A (en) * 1997-01-30 1998-12-15 Hasbro, Inc. Speech and sound synthesizers with connected memories and outputs
JPH11196386A (ja) * 1997-10-30 1999-07-21 Toshiba Corp コンピュータシステムおよびクローズドキャプション表示方法
US7725897B2 (en) 2004-11-24 2010-05-25 Kabushiki Kaisha Toshiba Systems and methods for performing real-time processing using multiple processors
FR2849327A1 (fr) * 2002-12-20 2004-06-25 St Microelectronics Sa Procede et dispositif de decodage audio/video, circuit pilote video et boitier decodeur l'incorporant
US7529467B2 (en) * 2004-02-28 2009-05-05 Samsung Electronics Co., Ltd. Storage medium recording text-based subtitle stream, reproducing apparatus and reproducing method for reproducing text-based subtitle stream recorded on the storage medium
JP4605700B2 (ja) 2004-07-28 2011-01-05 武蔵精密工業株式会社 歯車の歯面における歯すじの修正方法
JP2006085386A (ja) 2004-09-15 2006-03-30 Sony Corp 情報処理装置および方法、並びにプログラム
US7774512B2 (en) * 2005-02-08 2010-08-10 Sony Computer Entertainment Inc. Methods and apparatus for hybrid DMA queue and DMA table
EP1905178A4 (en) * 2005-07-15 2010-09-29 Mattel Inc INTERACTIVE ELECTRONIC DEVICE HAVING DIGITAL AND ANALOGUE DATA LINKS
US7590772B2 (en) * 2005-08-22 2009-09-15 Apple Inc. Audio status information for a portable electronic device
US7814166B2 (en) * 2006-01-27 2010-10-12 Sony Computer Entertainment Inc. Methods and apparatus for virtualizing an address space
US8037221B2 (en) * 2008-01-16 2011-10-11 International Business Machines Corporation Dynamic allocation of DMA buffers in input/output adaptors
JP2009190103A (ja) 2008-02-13 2009-08-27 Hitachi High-Tech Control Systems Corp 半導体搬送装置
US20090248300A1 (en) * 2008-03-31 2009-10-01 Sony Ericsson Mobile Communications Ab Methods and Apparatus for Viewing Previously-Recorded Multimedia Content from Original Perspective
JP4683116B2 (ja) * 2008-11-12 2011-05-11 ソニー株式会社 情報処理装置、情報処理方法、情報処理プログラムおよび撮像装置
JP5099090B2 (ja) 2009-08-19 2012-12-12 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ
WO2011027302A1 (en) * 2009-09-02 2011-03-10 Plurality Ltd. Associative distribution units for a high flow-rate synchronizer/scheduler
JP5382133B2 (ja) * 2009-11-18 2014-01-08 日本電気株式会社 マルチコアシステム、マルチコアシステムの制御方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241589A (zh) * 2006-11-27 2008-08-13 西门子公司 带有快速图像处理设备的图像处理系统以及图像处理方法
CN101303687A (zh) * 2008-06-03 2008-11-12 浙江大学 一种嵌入式异构多核体系片上通信的实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI643185B (zh) * 2017-04-26 2018-12-01 瑞昱半導體股份有限公司 音訊處理裝置及方法
CN109313566A (zh) * 2017-12-27 2019-02-05 深圳前海达闼云端智能科技有限公司 一种虚拟机的音频播放方法及其装置、移动终端

Also Published As

Publication number Publication date
US20120221134A1 (en) 2012-08-30
JP5382133B2 (ja) 2014-01-08
US8892230B2 (en) 2014-11-18
WO2011061878A1 (ja) 2011-05-26
CN102667745A (zh) 2012-09-12
JPWO2011061878A1 (ja) 2013-04-04

Similar Documents

Publication Publication Date Title
CN102667745B (zh) 多核系统、多核系统的控制方法以及在非暂态可读介质中存储的程序
EP2469415B1 (en) Multi-core system, control method of multi-core system, and multiprocessor
US8838863B2 (en) Resource controlling with dynamic priority adjustment
CN102736999B (zh) 音频数据输入设备和音频数据输出设备
US8230138B2 (en) Memory control device, data processor, and data read method
US9330033B2 (en) System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8949845B2 (en) Systems and methods for resource controlling
US10169273B2 (en) Forced compression of single I2C writes
EP0973093A2 (en) Method of and apparatus for processing information, and providing medium
US7861012B2 (en) Data transmitting device and data transmitting method
JP5375650B2 (ja) マルチコアシステム、マルチコアシステムの制御方法及びプログラム
CN114328350A (zh) 一种基于axi总线的通讯方法、装置以及介质
CN108628573B (zh) 一种支持多类型音频信号输入的方法和装置
US20080188968A1 (en) Sound data processing apparatus
KR100460994B1 (ko) 직접 메모리 액세스 기능을 구비한 광대역 입출력 장치 및그 방법
CN102290050B (zh) 一种传输音频数据的方法及装置
CN113127001B (zh) 一种代码编译过程监控方法、装置、设备和介质
CN117636895A (zh) 一种语音数据获取方法、装置、设备和介质
JP2004094970A (ja) データ転送装置
JPS6045866A (ja) 割込み制御方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150408

Termination date: 20190804

CF01 Termination of patent right due to non-payment of annual fee