JP2014027595A - Acoustic signal processing method and audio signal processing system - Google Patents

Acoustic signal processing method and audio signal processing system Download PDF

Info

Publication number
JP2014027595A
JP2014027595A JP2012168291A JP2012168291A JP2014027595A JP 2014027595 A JP2014027595 A JP 2014027595A JP 2012168291 A JP2012168291 A JP 2012168291A JP 2012168291 A JP2012168291 A JP 2012168291A JP 2014027595 A JP2014027595 A JP 2014027595A
Authority
JP
Japan
Prior art keywords
acoustic signal
virtual machine
audio
signal processing
interface
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.)
Pending
Application number
JP2012168291A
Other languages
Japanese (ja)
Inventor
Akihiro Miwa
明宏 三輪
Takuro Sone
卓朗 曽根
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2012168291A priority Critical patent/JP2014027595A/en
Publication of JP2014027595A publication Critical patent/JP2014027595A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Circuit For Audible Band Transducer (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a technology for implementing acoustic signal processing which ensures required low latency while suppressing an increase in costs.SOLUTION: A computer device 1 comprises a management OS 131 which constructs a first virtual machine VM 1 and a second virtual machine VM 2 by using a virtualizing support component 132, and starts up a first OS 111 of a real time OS on the first virtual machine VM 1 and a second OS 121 of a versatile OS on the second virtual machine VM 2. Acoustic signal processing requiring low latency is performed according to an acoustic signal processing engine 112 on the first OS 111. Acoustic signal processing and processing related to a GUI are performed according to an audio edition application 122 on the second OS 121. A transmission path using a shared memory region 33 is constructed between the first virtual machine VM 1 and the second virtual machine VM 2. Acoustic signals are transmitted/received between the first virtual machine VM 1 and the second virtual machine VM 2 through the transmission path.

Description

本発明は、音響信号処理の技術に関する。   The present invention relates to a technique for acoustic signal processing.

音響信号処理を行う装置として、例えば、音響信号の調整やミキシング等を行うディジタルオーディオミキサーが知られている(例えば、特許文献1参照)。特許文献1に記載のようなディジタルオーディオミキサーでは、複数のDSP(Digital Signal Processor)で低レイテンシ(処理に伴う待ち時間が予め定められた閾値以下であることを、以下「低レイテンシ」という)が求められる音響信号処理を行い、低レイテンシが求められない音響信号処理やGUI(Graphical User Interface)の表示制御等の他の処理はCPUで行う構成が採用されている。   As an apparatus that performs acoustic signal processing, for example, a digital audio mixer that performs adjustment and mixing of acoustic signals is known (see, for example, Patent Document 1). In a digital audio mixer as described in Patent Document 1, a plurality of DSPs (Digital Signal Processors) have low latency (that the waiting time associated with processing is equal to or less than a predetermined threshold is hereinafter referred to as “low latency”). A configuration is adopted in which the CPU performs other processing such as acoustic signal processing that is required and acoustic signal processing that does not require low latency and GUI (Graphical User Interface) display control.

また、パーソナルコンピュータ等の汎用装置において実行されるプログラムによりDAW(Digital Audio Workstation)システムを実現する技術が知られている。DAWシステムにおいては、汎用装置にてGUIの表示制御等を含む種々の処理を実行し、音響信号処理は外部に接続したDSP又は汎用装置上で動作するソフトウェアで実行される。   A technique for realizing a DAW (Digital Audio Workstation) system by a program executed in a general-purpose device such as a personal computer is known. In the DAW system, various processes including GUI display control and the like are executed by a general-purpose device, and the acoustic signal processing is executed by a DSP connected to the outside or software operating on the general-purpose device.

特開平8−125466号公報JP-A-8-125466

ところで、DSPは信号処理に特化したプロセッサであり、ボタン・フェーダ等への操作応答等の割込信号に対応する処理や画面表示処理などはCPUで行う必要がある。そのため、DSPにて音響信号処理を行う場合、レイテンシが保証される反面、ハードウェアコストが大きくなってしまったり、システム構成が複雑化してしまったりするという問題がある。また、上記汎用装置上で動作するソフトウェアで音響信号処理も行う場合、Windows(登録商標)等の汎用OSおよび当該OS上にて動作するソフトウェアを用いることが一般的であるが、汎用OSでは上記の割込処理の影響で信号処理のレイテンシが保証されない場合がある。そのため、汎用装置上で動作するソフトウェアで音響信号処理も行う場合は、リアルタイム性が求められる音響信号処理には適さない。汎用装置にて所謂リアルタイムOSおよび当該OS上で動作するソフトウェアを用いればレイテンシを保証することは可能であるが、Window等の汎用OSにて動作するよう作成された既存のソフトウェア(Cubase(登録商標)等)はそのままでは用いることはできず、ソフトウェアの変更や新規作成を行う必要がある。   Incidentally, the DSP is a processor specialized in signal processing, and processing corresponding to an interrupt signal such as an operation response to a button / fader or the like, screen display processing, and the like must be performed by the CPU. For this reason, when the acoustic signal processing is performed by the DSP, the latency is guaranteed, but there is a problem that the hardware cost is increased and the system configuration is complicated. When performing acoustic signal processing using software that operates on the general-purpose device, it is common to use a general-purpose OS such as Windows (registered trademark) and software that operates on the OS. In some cases, the latency of signal processing is not guaranteed due to the influence of interrupt processing. For this reason, when acoustic signal processing is also performed by software operating on a general-purpose device, it is not suitable for acoustic signal processing that requires real-time properties. Although it is possible to guarantee the latency by using a so-called real-time OS and software operating on the OS in a general-purpose device, existing software (Cubese (registered trademark)) created to operate on a general-purpose OS such as Windows is available. ) Etc.) cannot be used as they are, and it is necessary to change the software or create a new one.

本発明は上述の背景に鑑みてなされたものであり、ハードウェアやソフトウェアのコストの増大を抑えつつ、シンプルな構成で音響信号処理に求められる低レイテンシを保証する技術を提供することを目的とする。   The present invention has been made in view of the above-described background, and an object thereof is to provide a technique for guaranteeing low latency required for acoustic signal processing with a simple configuration while suppressing an increase in hardware and software costs. To do.

上述した課題を解決するために、本発明は、リソースとして少なくともプロセッサおよびメモリを有するコンピュータにて行われる音響信号処理方法であって、前記プロセッサが、前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する仮想機械構築ステップと、前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築するインタフェース構築ステップと、前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する出力ステップと、前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む書込ステップと、前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する読出ステップと、前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する入力ステップとを備える音響信号処理方法を提供する。   In order to solve the above-described problem, the present invention provides an acoustic signal processing method performed by a computer having at least a processor and a memory as resources, wherein the processor uses the resource to execute a first virtual machine and a first virtual machine. A virtual machine construction step for constructing two virtual machines, a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine An interface construction step, an output step of outputting an acoustic signal to the first interface in the first virtual machine, and an acoustic signal output from the first virtual machine to the first interface in the memory. A writing step of writing, and reading out the written acoustic signal from the memory to read the second input signal; A reading step of outputting to the face, in the second virtual machine, to provide an acoustic signal processing method comprising an input step of inputting an acoustic signal from said second interface.

上記の音響信号の処理方法の好ましい態様において、前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、前記プロセッサが、前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力するステップと、前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行するステップと、を備え、前記プロセッサは、前記出力ステップにおいて前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力ステップにおいて前記第2のインタフェースから前記信号処理された音響信号を入力する、という構成が採用されてもよい。   In a preferred aspect of the above-described acoustic signal processing method, the resource includes an audio interface that receives an acoustic signal from an external device connected to the computer, and the processor includes the audio interface in the first virtual machine. And a step of performing signal processing on the input acoustic signal in the first virtual machine, wherein the processor performs the signal processing in the output step. A configuration may be employed in which the received acoustic signal is output to the first interface, and the signal-processed acoustic signal is input from the second interface in the input step.

また、上記の音響信号の処理方法の好ましい態様において、前記プロセッサは複数のプロセッサコアを含み、前記プロセッサは、前記仮想機械構築ステップにおいて、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する、という構成が採用されてもよい。   Further, in a preferred aspect of the above-described acoustic signal processing method, the processor includes a plurality of processor cores, and the processor, in the virtual machine construction step, converts the first virtual machine to the first processor among the resources. A configuration may be employed in which the second virtual machine is constructed using a second processor core among the resources by constructing using a core and the audio interface.

また、本発明は、リソースとして少なくともプロセッサおよびメモリを有するコンピュータの前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する手段と、前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築する手段と、前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する手段と、前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む手段と、前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する手段と、前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する手段とを備えたことを特徴とする音響信号処理システムを提供する。   Further, the present invention provides means for constructing a first virtual machine and a second virtual machine using the resources of a computer having at least a processor and a memory as resources, and outputs an acoustic signal from the first virtual machine. Means for constructing a first interface and a second interface for inputting an acoustic signal to the second virtual machine; and means for outputting an acoustic signal to the first interface in the first virtual machine; Means for writing the acoustic signal output by the first virtual machine to the first interface into the memory; means for reading the written acoustic signal from the memory and outputting it to the second interface; The second virtual machine includes means for inputting an acoustic signal from the second interface. Providing sound signal processing system.

上記の音響信号処理システムの好ましい態様において、前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力する手段と、前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行する手段と、を備え、前記出力する手段は前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力する手段は前記第2のインタフェースから前記信号処理された音響信号を入力する、という構成が採用されてもよい。   In a preferred aspect of the above acoustic signal processing system, the resource includes an audio interface that receives an acoustic signal from an external device connected to the computer, and is received by the audio interface in the first virtual machine. Means for inputting an acoustic signal; and means for executing signal processing on the inputted acoustic signal in the first virtual machine, wherein the means for outputting outputs the acoustic signal subjected to the signal processing to the first virtual machine. A configuration may be employed in which the means for outputting and inputting to the interface inputs the acoustic signal subjected to the signal processing from the second interface.

また、上述の音響信号処理システムの好ましい態様において、前記プロセッサは複数のプロセッサコアを含み、前記仮想機械を構築する手段は、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する、という構成が採用されてもよい。   Moreover, in a preferable aspect of the above-described acoustic signal processing system, the processor includes a plurality of processor cores, and the means for constructing the virtual machine includes the first virtual machine among the resources and the first processor core. An arrangement may be employed in which the second virtual machine is constructed using an audio interface and the second virtual machine is constructed using a second processor core among the resources.

本発明によれば、ハードウェアやソフトウェアのコストの増大を抑えつつ、求められる低レイテンシを保証する音響信号処理が実現される。   According to the present invention, it is possible to realize acoustic signal processing that guarantees the required low latency while suppressing an increase in hardware and software costs.

本発明のコンピュータ装置のハードウェア構成の一例を示すブロック図The block diagram which shows an example of the hardware constitutions of the computer apparatus of this invention 本発明のコンピュータ装置の機能的構成の一例を示すブロック図The block diagram which shows an example of a functional structure of the computer apparatus of this invention 本発明のコンピュータ装置のソフトウェアの論理的構成の一例を示すブロック図The block diagram which shows an example of the logical structure of the software of the computer apparatus of this invention 本発明のコンピュータ装置のブート処理の流れを示すフローチャートThe flowchart which shows the flow of the boot process of the computer apparatus of this invention 共有メモリ領域へのアクセス内容を説明するための図Diagram for explaining access contents to shared memory area 本発明のコンピュータ装置の構成例を説明するための図The figure for demonstrating the structural example of the computer apparatus of this invention 本発明のコンピュータ装置の構成例を説明するための図The figure for demonstrating the structural example of the computer apparatus of this invention

1.構成
以下、図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の実施形態に係るコンピュータ装置1のハードウェア構成の一例を示すブロック図である。コンピュータ装置1は例えばパーソナルコンピュータ等の汎用的なコンピュータ装置であり、本発明に係る音響信号処理を行う。コンピュータ装置1は、プロセッサ10、メモリ20、オーディオI/F40、その他のデバイス50を有し、これら各部がバス60を介して接続されている。プロセッサ10は、例えばCPUであり、4つのプロセッサコア101,102,103,104からなるマルチコア・プロセッサである。プロセッサ10がメモリ20に記憶されているコンピュータプログラムを読み出して実行することにより、コンピュータ装置1の各部を制御する。メモリ20は、ROM、RAM、フラッシュメモリ、HDD、光学ドライブ等を適宜組み合わせて構成される。
1. Configuration Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an example of a hardware configuration of a computer apparatus 1 according to the embodiment of the present invention. The computer apparatus 1 is a general-purpose computer apparatus such as a personal computer, and performs acoustic signal processing according to the present invention. The computer apparatus 1 includes a processor 10, a memory 20, an audio I / F 40, and other devices 50, and these units are connected via a bus 60. The processor 10 is, for example, a CPU, and is a multi-core processor including four processor cores 10 1 , 10 2 , 10 3 , and 10 4 . The processor 10 reads out and executes the computer program stored in the memory 20 to control each unit of the computer apparatus 1. The memory 20 is configured by appropriately combining ROM, RAM, flash memory, HDD, optical drive, and the like.

オーディオI/F40は、デジタル音響信号を入出力するデータ入出力部である。オーディオI/F40は、Ethernet(登録商標)、USB(Universal Serial Bus)、IEEE1394などの伝送路を介して、デジタル音響信号を汎用のオーディオ伝送プロトコル(例えば、CobraNet(登録商標),EtherSound(登録商標),Dante(登録商標)等)に従って入出力する。また、PCIe(PCI Express)などのプロセッサのバスをそのまま延長した形式で入出力を行ってもよい。また、他の形式で音響信号の入出力を行ってもよい。また、オーディオI/F40は、複数チャンネルの音響信号の入出力を行うものであってもよい。オーディオI/F40は、クロック発信源を備え、このクロック発信源から発信されるクロックに同期してデータの入出力を行う。その他のデバイス50は、図示しない各種デバイス(キーボード、マウス、タッチパネル等の操作入力デバイスやディスプレイ等の出力デバイス、あるいは他の装置と通信を行う通信デバイス等)との間でデータの入出力を行うI/Fであり、必要に応じて適宜実装される。   The audio I / F 40 is a data input / output unit that inputs and outputs digital audio signals. The audio I / F 40 transmits a digital audio signal to a general audio transmission protocol (for example, CobraNet (registered trademark), EtherSound (registered trademark) via a transmission path such as Ethernet (registered trademark), USB (Universal Serial Bus), IEEE 1394, or the like. ), Dante (registered trademark), etc.). Further, input / output may be performed in a form in which a processor bus such as PCIe (PCI Express) is extended as it is. Moreover, you may input / output an acoustic signal with another format. In addition, the audio I / F 40 may perform input / output of sound signals of a plurality of channels. The audio I / F 40 includes a clock transmission source and inputs / outputs data in synchronization with a clock transmitted from the clock transmission source. The other device 50 inputs and outputs data with various devices (not shown) (operation input devices such as a keyboard, mouse, and touch panel, output devices such as a display, or communication devices that communicate with other devices). It is I / F and is appropriately mounted as necessary.

メモリ20には、第1のOS(Operating System)プログラムPRG1と、第2のOSプログラムPRG2と、管理OSプログラムPRG3と、信号処理エンジンプログラムPRG4と、オーディオ編集アプリケーションプログラムPRG5等の、各種のコンピュータプログラムが記憶されている。第1のOSプログラムPRG1は、リアルタイムOSである第1のOSのプログラムである。第2のOSプログラムPRG2は、汎用OSである第2のOSのプログラムである。管理OSプログラムPRG3は、第1のOS及び第2のOSを管理するOS(以下「管理OS」という)のプログラムである。信号処理エンジンプログラムPRG4は、低レイテンシが求められる音響信号処理を行うアプリケーションを実現するためのプログラムである。すなわち、信号処理エンジンプログラムPRG4は、従来のディジタルオーディオミキサー等においてDSP等の専用のプロセッサで実行されていた音響信号処理を行うアプリケーションを実現するためのプログラムである。オーディオ編集アプリケーションプログラムPRG5は、低レイテンシが必ずしも求められない音響信号の編集や記録あるいはミキシング操作等の各種処理を行うアプリケーションを実現するためのプログラムである。なお、メモリ20には、図示した以外にも、第1のOS又は第2のOS上で動作する他のプログラムや各種データが記憶されるが、図1においては、図面が煩雑になるのを防ぐためその図示を省略している。
なお、本明細書では、説明の便宜上、応答遅延に対する管理・制御機能を有し「所定の処理命令に対する応答遅延が所定の時間内に完了することが保証できるOS」を「リアルタイムOS」と呼び、「応答遅延にバラつきが生じるなど応答遅延に対する管理・制御機能が無いか当該管理・制御能力に乏しいOS」を「汎用OS」と呼ぶ。
The memory 20 includes various computer programs such as a first OS (Operating System) program PRG1, a second OS program PRG2, a management OS program PRG3, a signal processing engine program PRG4, and an audio editing application program PRG5. Is remembered. The first OS program PRG1 is a program of the first OS that is a real-time OS. The second OS program PRG2 is a program of a second OS that is a general-purpose OS. The management OS program PRG3 is a program for an OS (hereinafter referred to as “management OS”) that manages the first OS and the second OS. The signal processing engine program PRG4 is a program for realizing an application that performs acoustic signal processing that requires low latency. That is, the signal processing engine program PRG4 is a program for realizing an application for performing acoustic signal processing that has been executed by a dedicated processor such as a DSP in a conventional digital audio mixer or the like. The audio editing application program PRG5 is a program for realizing an application that performs various processes such as editing, recording, or mixing operation of an acoustic signal for which low latency is not necessarily required. The memory 20 stores other programs and various data that run on the first OS or the second OS in addition to those shown in the figure. However, in FIG. 1, the drawing becomes complicated. In order to prevent this, the illustration is omitted.
In this specification, for convenience of explanation, an “OS that has a management / control function for response delay and can guarantee that the response delay for a predetermined processing instruction is completed within a predetermined time” is referred to as a “real-time OS”. , “An OS that does not have a management / control function for response delay such as a variation in response delay or lacks management / control capability” is referred to as a “general-purpose OS”.

次に、図2に示すブロック図を参照しながら、コンピュータ装置1の機能的構成の一例について説明する。コンピュータ装置1においては、リソースが仮想化され、2台の仮想機械VM1、VM2が構築される。仮想機械VM1では第1のOS111が稼動し、仮想機械VM2では第2のOS121が稼動する。仮想化は管理OS131と仮想化支援コンポーネント132により提供される。なお、仮想化技術としては公知の技術を適宜採用することが可能であり、本明細書では仮想化技術に関する詳細な説明は省略する。また、図2においては図面が煩雑になるのを防ぐためNIC(Network Interface Card)等の一部のリソースの図示を省略している。   Next, an example of a functional configuration of the computer apparatus 1 will be described with reference to the block diagram shown in FIG. In the computer apparatus 1, resources are virtualized and two virtual machines VM1 and VM2 are constructed. In the virtual machine VM1, the first OS 111 operates, and in the virtual machine VM2, the second OS 121 operates. Virtualization is provided by the management OS 131 and the virtualization support component 132. Note that a well-known technique can be appropriately employed as the virtualization technique, and detailed description of the virtualization technique is omitted in this specification. Further, in FIG. 2, illustration of some resources such as a NIC (Network Interface Card) is omitted in order to prevent the drawing from becoming complicated.

続いて、図2に示される各構成部を説明する。リソース群RS10に含まれるリソースはコンピュータ装置1が実際に備えるリソースである。メモリ34は、コンピュータ装置1が有するメモリ20等の記憶資源のうちコンピュータ装置1が各種処理を実行する上で一時的にデータ等を保持するためのRAM等である。管理OS131は複数のOSを管理するハイパーバイザである。仮想化支援コンポーネント132は、管理OS131の上で動作し、コンピュータ装置1の備えるプロセッサ10、メモリ20、オーディオI/F40等の各種リソースを仮想化し、コンピュータ装置1を、第1のOS111によって制御される第1の仮想機械VM1と、第2のOS121によって制御される第2の仮想機械VM2として機能させるコンポーネントである。   Next, each component shown in FIG. 2 will be described. Resources included in the resource group RS10 are resources that the computer device 1 actually includes. The memory 34 is a RAM or the like for temporarily storing data or the like when the computer apparatus 1 executes various processes among the storage resources such as the memory 20 of the computer apparatus 1. The management OS 131 is a hypervisor that manages a plurality of OSs. The virtualization support component 132 operates on the management OS 131, virtualizes various resources such as the processor 10, the memory 20, and the audio I / F 40 included in the computer apparatus 1, and the computer apparatus 1 is controlled by the first OS 111. The first virtual machine VM1 and the second virtual machine VM2 controlled by the second OS 121.

本実施形態の仮想化において、仮想化支援コンポーネント132はリソース群RS10に含まれるリソースのうち、プロセッサコア101及び102、メモリ34に含まれる第1のメモリ領域31、オーディオI/F40を、各々、仮想的なリソースであるプロセッサコア10V1及び10V2、メモリ31V、オーディオI/F40Vとして第1の仮想機械VM1にアサインする。以下、互いに対応する物理的なリソースと仮想的なリソースには同じ数字の符号を付すとともに、それらを区別するために仮想的なリソースには「オーディオI/F40V」のように、数字の符号の後に「V」を付加するものとする。また、仮想化支援コンポーネント132は仮想的なオーディオI/Fである仮想オーディオI/F331(後述)を第1の仮想機械VM1にアサインする。第1の仮想機械VM1にアサインされたこれらの仮想的なリソースはリソース群RS11を構成する。 In the virtualization of this embodiment, the virtualization support component 132 includes, among the resources included in the resource group RS10, the processor cores 10 1 and 10 2 , the first memory area 31 included in the memory 34, and the audio I / F 40. The processor cores 10V 1 and 10V 2 that are virtual resources, the memory 31V, and the audio I / F 40V are assigned to the first virtual machine VM1, respectively. In the following, physical resources and virtual resources corresponding to each other are given the same numerical symbols, and in order to distinguish them, the virtual resources are numbered like “Audio I / F 40V”. It is assumed that “V” is added later. Further, the virtualization support component 132 assigns a virtual audio I / F 331 (described later), which is a virtual audio I / F, to the first virtual machine VM1. These virtual resources assigned to the first virtual machine VM1 constitute a resource group RS11.

また、仮想化支援コンポーネント132はリソース群RS10に含まれるリソースのうち、プロセッサコア103及び104、メモリ34に含まれる第2のメモリ領域32、その他のデバイス50を、各々、仮想的なリソースであるプロセッサコア10V3及び10V4、メモリ32V、その他のデバイス50Vとして第2の仮想機械VM2にアサインする。また、仮想化支援コンポーネント132は仮想的なオーディオI/Fである仮想オーディオI/F332(後述)を第2の仮想機械VM2にアサインする。第2の仮想機械VM2にアサインされたこれらの仮想的なリソースはリソース群RS12を構成する。 Further, the virtualization support component 132 includes the processor cores 10 3 and 10 4 , the second memory area 32 included in the memory 34, and the other devices 50 among the resources included in the resource group RS 10. processor core 10V 3 and 10V 4 is, be assigned to the second virtual machine VM2 as a memory 32V, other devices 50 V. Further, the virtualization support component 132 assigns a virtual audio I / F 332 (described later), which is a virtual audio I / F, to the second virtual machine VM2. These virtual resources assigned to the second virtual machine VM2 constitute a resource group RS12.

第1のOS111は第1のOSプログラムPRG1に従い第1の仮想機械VM1上で実行されるリアルタイムOSであり、例えばUbuntu Studioである。また、第2のOS121は第2のOSプログラムPRG2に従い第2の仮想機械VM2上で実行される汎用OSであり、例えばWindows(登録商標)である。第1のOS111は、第1の仮想機械VM1に対し通常のコンピュータ装置に対するものと同様の処理を指示する。また、第2のOS121は、第2の仮想機械VM2に対し通常のコンピュータ装置に対するものと同様の処理を指示する。仮想化支援コンポーネント132は第1のOS111のリソース群RS11に対する指示および第2のOS121のリソース群RS12に対する指示を必要に応じてフックし、必要に応じてそれらの指示に含まれるアドレス番号やポート番号等のリソースを識別する情報の変換等を行う。例えば、物理的なリソース群RS10に含まれるメモリ34のうちアドレスAm〜Am+n-1(「A」に付された下付文字はアドレス番号を示し、mおよびnは任意の自然数)のメモリ空間を持つ第2のメモリ領域32が、アドレスA0〜An-1のメモリ空間を持つメモリ32Vとして第2の仮想機械VM2にアサインされている場合を想定する。この場合、例えば第2のOS121がメモリ32VのアドレスAx(ただし、xは0≦x≦n−1を満たす任意の自然数)に対するデータの読み書きの指示を行うと、仮想化支援コンポーネント132はその指示をフックし、アドレスAxをアドレスAx+mに変換し、メモリ34のアドレスAx+m(第2のメモリ領域32のアドレス)に対しデータの読み書きを実行する。このような仮想化支援コンポーネント132の役割により、第1のOSプログラムPRG1および第2のOSプログラムPRG2は、通常のコンピュータ装置上で実行されるものに何らの変更を要しない。
また、仮想化支援コンポーネント132は伝送用バッファ(後述)として使用される共有メモリ領域を確保する。なお、管理OS131は仮想機械VM2とリソースを共用しているものとする。
The first OS 111 is a real-time OS executed on the first virtual machine VM1 according to the first OS program PRG1, and is, for example, Ubuntu Studio. The second OS 121 is a general-purpose OS executed on the second virtual machine VM2 in accordance with the second OS program PRG2, and is, for example, Windows (registered trademark). The first OS 111 instructs the first virtual machine VM1 to perform the same processing as that for a normal computer device. Further, the second OS 121 instructs the second virtual machine VM2 to perform the same processing as that for a normal computer device. The virtualization support component 132 hooks the instruction to the resource group RS11 of the first OS 111 and the instruction to the resource group RS12 of the second OS 121 as necessary, and the address number and port number included in those instructions as necessary. The information for identifying the resource is converted. For example, in the memory 34 included in the physical resource group RS10, addresses A m to A m + n-1 (subscripts attached to “A” indicate address numbers, and m and n are arbitrary natural numbers). Is assumed to be assigned to the second virtual machine VM2 as the memory 32V having the memory space of addresses A 0 to A n−1 . In this case, for example, when the second OS 121 gives an instruction to read / write data to the address A x of the memory 32V (where x is an arbitrary natural number satisfying 0 ≦ x ≦ n−1), the virtualization support component 132 instructing hooks, converts the address a x to the address a x + m, the address of the memory 34 a x + m (address of the second memory region 32) to execute the reading and writing of data. Due to the role of the virtualization support component 132, the first OS program PRG1 and the second OS program PRG2 do not require any change in what is executed on a normal computer device.
Also, the virtualization support component 132 reserves a shared memory area used as a transmission buffer (described later). It is assumed that the management OS 131 shares resources with the virtual machine VM2.

第1のOS111は上述したようにリアルタイムOSであり、低レイテンシが保証され、所定の処理命令に対する応答遅延が所定の時間内に行われる。この実施形態では、第1のOS111上では、信号処理エンジンプログラムPRG4に従い音響信号処理エンジン112が実行される。音響信号処理エンジン112は、オーディオI/F40V等から入力されたオーディオ信号に信号処理を施し、この信号処理されたオーディオ信号をオーディオI/F40V等に対して出力する。これにより第1の仮想機械VM1では入力される音響信号に対する音響信号処理を低レイテンシにて行うことができる。   As described above, the first OS 111 is a real-time OS, guaranteeing low latency, and delaying a response to a predetermined processing command within a predetermined time. In this embodiment, the acoustic signal processing engine 112 is executed on the first OS 111 in accordance with the signal processing engine program PRG4. The acoustic signal processing engine 112 performs signal processing on the audio signal input from the audio I / F 40V or the like, and outputs the signal-processed audio signal to the audio I / F 40V or the like. As a result, the first virtual machine VM1 can perform the acoustic signal processing on the input acoustic signal with low latency.

一方、第2のOS121は上述したように汎用OSであり、汎用OSで動作する一般的なソフトウェアプログラムがそのまま第2のOS121上で実行される。この実施形態では、第2のOS121上では、オーディオ編集アプリケーションプログラムPRG5に従いオーディオ編集アプリケーション122(例えばCubase(登録商標)等)が実行される。また、この実施形態では、ユーザの操作に応じてマウス、キーボード、タッチパネル等の操作入力デバイスからコンピュータ装置1に入力される割込信号は、その他のデバイス50Vを介して全て第2のOS121に供給される。従って、ユーザの操作に応じた割り込み処理等が、第1のOS111において実行される処理に影響を与えることはない。なお、音響信号処理エンジン112は第1のOS111上で動作するソフトウェアプログラムであれば行う音響処理の種別等は限定されず、同様に、オーディオ編集アプリケーション122は第2のOS121上で動作するソフトウェアプログラムであれば行う音響処理の種別等は限定されない。また、音響信号処理エンジン112およびオーディオ編集アプリケーション122は各種エフェクト等の音響処理機能を追加および削除可能としたプラグイン形式のモジュールに従い音響処理を実行するものであってもよい。   On the other hand, the second OS 121 is a general-purpose OS as described above, and a general software program that runs on the general-purpose OS is directly executed on the second OS 121. In this embodiment, an audio editing application 122 (for example, Cubase (registered trademark)) is executed on the second OS 121 in accordance with the audio editing application program PRG5. In this embodiment, all interrupt signals input to the computer apparatus 1 from operation input devices such as a mouse, a keyboard, and a touch panel in accordance with user operations are supplied to the second OS 121 via the other devices 50V. Is done. Therefore, an interrupt process or the like according to a user operation does not affect the process executed in the first OS 111. The acoustic signal processing engine 112 is not limited as long as it is a software program that operates on the first OS 111, and similarly, the audio editing application 122 is a software program that operates on the second OS 121. If so, the type of acoustic processing to be performed is not limited. Further, the sound signal processing engine 112 and the audio editing application 122 may execute sound processing according to a plug-in module in which sound processing functions such as various effects can be added and deleted.

本実施形態において、音響信号処理エンジン112に従い動作する第1の仮想機械VM1とオーディオ編集アプリケーション122に従い動作する第2の仮想機械VM2との間の音響信号の伝送は、仮想オーディオI/F331および仮想オーディオI/F332を介して行われる。図3は、第1の仮想機械VM1と第2の仮想機械VM2との間で行われる音響信号の伝送の仕組みを説明するために、コンピュータ装置1が有するリソースと上記各仮想機械上にて実行されるソフトウェアコンポーネントとのうち信号の伝送に関与する部分を示した図である。   In the present embodiment, the transmission of the acoustic signal between the first virtual machine VM1 that operates according to the acoustic signal processing engine 112 and the second virtual machine VM2 that operates according to the audio editing application 122 is performed by the virtual audio I / F 331 and the virtual This is performed via the audio I / F 332. FIG. 3 illustrates the resources of the computer device 1 and the above-described virtual machines in order to explain the mechanism of transmission of the acoustic signal performed between the first virtual machine VM1 and the second virtual machine VM2. It is the figure which showed the part which is concerned with transmission of a signal among software components to be performed.

図3において、第1の仮想機械VM1上で実行されるオーディオI/Oドライバ116はオーディオI/F40V(図2参照)による音響信号の入出力を制御するドライバであり、例えばALSA(Advanced Linux(登録商標) Sound Architecture)やASIO(Audio Stream Input Output)等のコンポーネントである。オーディオI/Oドライバ116が制御するオーディオI/F40VはオーディオI/F40が仮想化されたものであり、オーディオI/F40には通信ケーブル等の伝送路2を介して外部のオーディオ機器等が接続される。従って、音響信号処理エンジン112はオーディオI/Oドライバ116を用いて、外部のオーディオ機器等との間で伝送路2を介した通常の音響信号の送受信を行うことができる。   In FIG. 3, an audio I / O driver 116 executed on the first virtual machine VM1 is a driver that controls input / output of an acoustic signal by the audio I / F 40V (see FIG. 2). For example, ALSA (Advanced Linux ( Components such as (registered trademark) Sound Architecture) and ASIO (Audio Stream Input Output). The audio I / F 40V controlled by the audio I / O driver 116 is a virtualized audio I / F 40. An external audio device or the like is connected to the audio I / F 40 via a transmission path 2 such as a communication cable. Is done. Therefore, the acoustic signal processing engine 112 can transmit and receive a normal acoustic signal via the transmission path 2 with an external audio device or the like using the audio I / O driver 116.

第1の仮想機械VM1が備える仮想オーディオI/Oドライバ119は仮想オーディオI/F331による音響信号の入出力を制御するドライバである。同様に、第2の仮想機械VM2が備える仮想オーディオI/Oドライバ129は仮想オーディオI/F332による音響信号の入出力を制御するドライバである。   The virtual audio I / O driver 119 included in the first virtual machine VM1 is a driver that controls input / output of acoustic signals by the virtual audio I / F 331. Similarly, the virtual audio I / O driver 129 included in the second virtual machine VM2 is a driver that controls input / output of acoustic signals by the virtual audio I / F 332.

メモリAPI133およびメモリAPI134は、仮想オーディオI/F331および仮想オーディオI/F332を構成しており、各仮想機械からメモリ34に対してデータの読み書きを行うためのインタフェースである。仮想オーディオI/Oドライバ119は音響信号処理エンジン112から音響信号の入出力の指示を受けると、メモリAPI133を用いて、メモリ34上に確保されている伝送用バッファである共有メモリ領域33に対する音響信号の読み書きを行う。同様に、仮想オーディオI/Oドライバ129はオーディオ編集アプリケーション122から音響信号の入出力の指示を受けると、メモリAPI134を用いて、伝送用バッファである共有メモリ領域33に対する音響信号の読み書きを行う。その結果、第1の仮想機械VM1と第2の仮想機械VM2との間で、共有メモリ領域33を用いた音響信号用の伝送路3が構築される。なお、この実施形態では、オーディオI/F40が音響信号の伝送におけるクロックマスタとなり、オーディオI/F40のクロック発信源が発するクロックに同期して、コンピュータ装置1と外部機器との間の音響信号の伝送、および、伝送路3を介した第1の仮想機械VM1と第2の仮想機械VM2との間の音響信号の伝送がなされる。仮想オーディオI/F331はオーディオI/F40のクロック発信源が発したクロックと同期し、当該クロックは伝送路3を介して仮想オーディオI/F331から仮想オーディオI/F332に伝搬され、仮想オーディオI/F332は当該クロックに同期する。   The memory API 133 and the memory API 134 constitute a virtual audio I / F 331 and a virtual audio I / F 332, and are interfaces for reading / writing data from / to the memory 34 from each virtual machine. When the virtual audio I / O driver 119 receives an instruction to input / output an acoustic signal from the acoustic signal processing engine 112, the virtual audio I / O driver 119 uses the memory API 133 to generate an acoustic for the shared memory area 33 that is a transmission buffer secured on the memory 34. Read and write signals. Similarly, when the virtual audio I / O driver 129 receives an instruction to input / output an acoustic signal from the audio editing application 122, the virtual audio I / O driver 129 uses the memory API 134 to read / write the acoustic signal to / from the shared memory area 33 that is a transmission buffer. As a result, the acoustic signal transmission path 3 using the shared memory area 33 is constructed between the first virtual machine VM1 and the second virtual machine VM2. In this embodiment, the audio I / F 40 becomes a clock master in the transmission of the acoustic signal, and the acoustic signal between the computer apparatus 1 and the external device is synchronized with the clock generated by the clock transmission source of the audio I / F 40. Transmission and transmission of an acoustic signal between the first virtual machine VM1 and the second virtual machine VM2 via the transmission path 3 are performed. The virtual audio I / F 331 is synchronized with the clock generated by the clock source of the audio I / F 40, and the clock is propagated from the virtual audio I / F 331 to the virtual audio I / F 332 via the transmission path 3. F332 is synchronized with the clock.

仮想オーディオI/Oドライバ119および129は、データの読み書き先が通常のオーディオI/F40が仮想化されたものではなく、共有メモリ領域に対しデータの読み書きを指示するメモリAPIである点を除き、既存のオーディオI/Oドライバ(例えば、オーディオI/Oドライバ116)と同様に構成することができる。具体的には、第1のOS111およびその上で動作する音響信号処理エンジン112からみると、オーディオI/Oドライバ116を介して外部のオーディオ機器等との通信接続が確立されており、仮想オーディオI/Oドライバ119を介して第2の仮想機械VM2との通信接続が確立されていると認識されるだけである。また、第2のOS121およびその上で動作するオーディオ編集アプリケーション122からみると、仮想オーディオI/Oドライバ129を介して第1の仮想機械VM1との通信接続が確立されていると認識されるだけである。従って、仮想オーディオI/Oドライバ119および129は、ALSAやASIO等の任意の仕様あるいは規格等に準拠して構成することができる。このように、各OSおよびそれらのOS上で動作しているソフトウェアコンポーネントからすれば、通常の通信ケーブル等を用いた伝送路(例えば伝送路2)を介した外部機器との間のデータ伝送と、共有メモリ領域33を用いた伝送路3を介した仮想機械間のデータ伝送とで異なる処理実装を行う必要が無い。   The virtual audio I / O drivers 119 and 129, except that the data read / write destination is not a virtual audio I / F 40, but a memory API that instructs the shared memory area to read / write data, It can be configured in the same manner as an existing audio I / O driver (for example, the audio I / O driver 116). Specifically, when viewed from the first OS 111 and the acoustic signal processing engine 112 operating on the first OS 111, a communication connection with an external audio device or the like is established via the audio I / O driver 116, and virtual audio is established. It is only recognized that a communication connection with the second virtual machine VM2 is established via the I / O driver 119. Further, when viewed from the second OS 121 and the audio editing application 122 operating on the second OS 121, it is only recognized that the communication connection with the first virtual machine VM1 is established via the virtual audio I / O driver 129. It is. Therefore, the virtual audio I / O drivers 119 and 129 can be configured based on any specification or standard such as ALSA or ASIO. In this way, according to each OS and software components operating on those OSs, data transmission with an external device via a transmission line (for example, transmission line 2) using a normal communication cable or the like is possible. There is no need to implement different processing for data transmission between virtual machines via the transmission path 3 using the shared memory area 33.

2.動作
2−1.ブート処理
次に、コンピュータ装置1の動作を説明する。図4は、利用者によってコンピュータ装置1の電源がONされた際に実行されるブート処理のフローチャートである。利用者によってコンピュータ装置1の電源がONされると、管理OS131が起動する(ステップS1)。管理OS131は、仮想化支援コンポーネント132を構築し(ステップS2)、ハードウェアの仮想化の準備を行う。次いで、管理OS131はメモリ20から設定ファイル等を読み出す(ステップS3)。この設定ファイルには、構築する仮想機械の数や、確保する共有メモリ領域のサイズ、各仮想機械に割り当てるリソース(プロセッサコア、I/F、メモリ領域等)の定義等が含まれる。管理OS131は、設定ファイルに従って共有メモリ領域33を確保する(ステップS4)とともに、第1の仮想機械VM1、第2の仮想機械VM2を構築する(ステップS5)。具体的には、ステップS5において、プロセッサコア101、102、103、104を各仮想機械にアサインする処理、I/Fを介したデバイス等からの割り込みリクエストを対応する仮想機械のプロセッサコアにアサインする処理、メモリAPI133および134が共有メモリ領域33にアクセスするためのアドレスマップや割り込みリクエストを準備する処理等が行われる。その結果、リソース群RS10に含まれる、コンピュータ装置1が実際に備えるリソースが仮想化され、リソース群RS11およびリソース群RS12に含まれる、仮想的なリソースが提供される。
2. Operation 2-1. Next, the operation of the computer apparatus 1 will be described. FIG. 4 is a flowchart of a boot process executed when the computer device 1 is powered on by the user. When the computer device 1 is turned on by the user, the management OS 131 is activated (step S1). The management OS 131 constructs the virtualization support component 132 (step S2) and prepares for hardware virtualization. Next, the management OS 131 reads a setting file and the like from the memory 20 (step S3). This setting file includes the number of virtual machines to be constructed, the size of the shared memory area to be secured, the definition of resources (processor core, I / F, memory area, etc.) allocated to each virtual machine, and the like. The management OS 131 secures the shared memory area 33 according to the setting file (step S4) and constructs the first virtual machine VM1 and the second virtual machine VM2 (step S5). Specifically, in step S5, a process of assigning the processor cores 10 1 , 10 2 , 10 3 , 10 4 to each virtual machine, a processor of the virtual machine corresponding to an interrupt request from a device or the like via the I / F Processing for assigning to the core, processing for preparing an address map and an interrupt request for the memory APIs 133 and 134 to access the shared memory area 33, and the like are performed. As a result, the resources actually included in the computer device 1 included in the resource group RS10 are virtualized, and virtual resources included in the resource group RS11 and the resource group RS12 are provided.

次いで、管理OS131は第1のOS111と第2のOS121の起動を指示する(ステップS6)。管理OS131の指示に従い、第1のOS111と第2のOS121はそれぞれの設定に従って起動処理を行う(ステップS7)。その後、管理OS131はこれらのOSの監視を行う。   Next, the management OS 131 instructs the first OS 111 and the second OS 121 to start (step S6). In accordance with the instruction from the management OS 131, the first OS 111 and the second OS 121 perform a startup process according to their settings (step S7). Thereafter, the management OS 131 monitors these OSs.

2−2.仮想機械間におけるデータ伝送処理
次に、共有メモリ領域33を用いて構築される伝送路3を介した仮想機械間のデータ伝送に伴う動作について説明する。以下の説明では、第1のOS111および第2のOS121は24bit/96kHzの音響信号を処理するものとする。第1のOS111側においては、リアルタイムにデータ伝送が行われ、第1のOS111側のレイテンシとしては2ms(192サンプル分の時間)が設定されているものとする。一方、第2のOS121側においては割り込み等により各種処理や読み/書きが第1のOS111側と同等の時間内には完了しない場合があるため、第2のOS121側のレイテンシとして、第2のOS121の通常の稼動状況であれば問題なく応答できる時間として、第1のOS111側のレイテンシの8倍である16ms(1536サンプル分の時間)が設定されているものとする。
2-2. Data Transmission Processing Between Virtual Machines Next, an operation associated with data transmission between virtual machines via the transmission path 3 constructed using the shared memory area 33 will be described. In the following description, it is assumed that the first OS 111 and the second OS 121 process a 24-bit / 96 kHz acoustic signal. It is assumed that data transmission is performed in real time on the first OS 111 side, and 2 ms (time corresponding to 192 samples) is set as the latency on the first OS 111 side. On the other hand, on the second OS 121 side, various processes and reading / writing may not be completed within the same time as the first OS 111 side due to an interrupt or the like. Therefore, as the latency on the second OS 121 side, Assume that 16 ms (a time corresponding to 1536 samples), which is eight times the latency on the first OS 111 side, is set as a time during which the OS 121 can respond without any problem in a normal operating state.

第1のOS111は仮想オーディオI/Oドライバ119のために、レイテンシ2ms分の音響信号を蓄積できるだけのサイズ、すなわち、24×96000×(2/1000)=4608bit/chのバッファをメモリ31V上に確保する。また、第2のOS121は、仮想オーディオI/Oドライバ129のために、その8倍の36864bit/chのバッファをメモリ32V上に確保する。なお、第1のOS111および第2のOS121が確保するこれらのバッファはダブルバッファ構成であってもよい。その場合、それらのバッファに要するメモリ領域のサイズは倍となる。以下の説明では、第1のOS111側及び第2のOS121側の各々における伝送単位を「フレーム」と呼ぶ。従って、第1のOS111側のフレームのデータサイズは192サンプル分のサイズ(4608bit)であり、第2のOS121側のフレームのデータサイズはその8倍の1536サンプル分のデータサイズ(36864bit)である。また、説明の便宜上、共有メモリ領域33を第1のOS111側のフレームのデータサイズに区分した各々を「ブロック」と称する。従って、ブロックのサイズは第1のOS111のフレームのサイズと同一であり、この場合、192サンプル分のサイズ(4608bit)である。   For the virtual audio I / O driver 119, the first OS 111 has a buffer of a size that can store an acoustic signal corresponding to a latency of 2 ms, that is, a buffer of 24 × 96000 × (2/1000) = 4608 bits / ch on the memory 31V. Secure. The second OS 121 reserves a buffer of 36864 bits / ch on the memory 32V for the virtual audio I / O driver 129, which is eight times that of the buffer. Note that these buffers reserved by the first OS 111 and the second OS 121 may have a double buffer configuration. In that case, the size of the memory area required for these buffers is doubled. In the following description, a transmission unit on each of the first OS 111 side and the second OS 121 side is referred to as a “frame”. Therefore, the data size of the frame on the first OS 111 side is a size of 192 samples (4608 bits), and the data size of the frame on the second OS 121 side is 8 times the data size of 1536 samples (36864 bits). . For convenience of explanation, each of the shared memory area 33 divided into data sizes of frames on the first OS 111 side is referred to as a “block”. Therefore, the block size is the same as the frame size of the first OS 111, and in this case, the size is 192 samples (4608 bits).

また、ブート処理において、管理OS131が読み出す設定ファイルには共有メモリ領域33として確保すべきメモリのサイズが定義されており、管理OS131はこれに従って共有メモリ領域33を確保する。ブート処理において確保された共有メモリ領域33には、仮想オーディオI/F331から仮想オーディオI/F332への音響信号の第1の伝送用バッファと、仮想オーディオI/F332から仮想オーディオI/F331への音響信号の第2の伝送用バッファ(以下、第1の伝送用バッファおよび第2の伝送用バッファを区別しない場合これらを総称して「伝送用バッファ」と呼ぶ)とが設けられる。上述したように、伝送用バッファは、第1のOS111側の仮想オーディオI/Oドライバ119と、第2のOS121側の仮想オーディオI/Oドライバ129の両方が、同期してデータの読み書きを行うことによりデータ伝送を行うために用いられる。そのため、双方の伝送が破綻することがないよう、伝送用バッファのサイズは仮想オーディオI/Oドライバ119用に確保されるバッファのサイズと仮想オーディオI/Oドライバ129用に確保されるバッファのサイズの公倍数以上である必要があり、メモリリソースの有効利用の観点から、それらの最小公倍数であることが望ましい。この場合、管理OS131により共有メモリ領域33上に確保される第1の伝送用バッファおよび第2の伝送用バッファのサイズは各々36864bit/chとなる。なお、伝送用バッファはダブルバッファ構成であってもよい。その場合、それらのバッファに要するメモリ領域のサイズは倍となる。   In the boot process, the size of the memory to be secured as the shared memory area 33 is defined in the setting file read by the management OS 131, and the management OS 131 secures the shared memory area 33 accordingly. The shared memory area 33 secured in the boot process includes a first transmission buffer for acoustic signals from the virtual audio I / F 331 to the virtual audio I / F 332, and a virtual audio I / F 332 to the virtual audio I / F 331. A second transmission buffer for acoustic signals (hereinafter referred to collectively as “transmission buffer” when the first transmission buffer and the second transmission buffer are not distinguished from each other) is provided. As described above, in the transmission buffer, both the virtual audio I / O driver 119 on the first OS 111 side and the virtual audio I / O driver 129 on the second OS 121 side read and write data synchronously. This is used for data transmission. For this reason, the size of the transmission buffer is the size of the buffer reserved for the virtual audio I / O driver 119 and the size of the buffer reserved for the virtual audio I / O driver 129 so that both transmissions do not fail. Must be equal to or greater than the common multiple of the number, and is preferably the least common multiple of them from the viewpoint of effective use of memory resources. In this case, the sizes of the first transmission buffer and the second transmission buffer secured on the shared memory area 33 by the management OS 131 are each 36864 bits / ch. The transmission buffer may have a double buffer configuration. In that case, the size of the memory area required for these buffers is doubled.

次いで、第1の仮想機械VM1と第2の仮想機械VM2との間のデータ伝送処理が行われる際に伝送用バッファに対しデータの読み書きが行われる様子を説明する。図5はダブルバッファとして構成された1ch分の伝送用バッファに対するデータの読み書き位置の一例を示した図である。図5において、A面およびB面はダブルバッファの各面を示している。A面およびB面は各々、図5において0〜15の番号で示される16個のブロック(以下、「ブロック[0]」のようにいう)と、flgで示される通知用のフラグ領域を含んでいる。ブロック[0]〜[7]は第1の伝送用バッファであり、ブロック[8]〜[15]は第2の伝送用バッファである。なお、図5において、d[i]は時刻t=iのタイミングで第1のOS111側から書き込まれたデータを示し、w[i〜i+7]は時刻t=i〜i+7の期間中の何れかのタイミングで第2のOS121側から書き込まれたデータを示している。ここで時刻tは第1の仮想機械VM1が伝送用バッファに読み書きを行うフレームのサイズ(2ms)を単位時間とした時刻である。   Next, how data is read from and written to the transmission buffer when data transmission processing between the first virtual machine VM1 and the second virtual machine VM2 is performed will be described. FIG. 5 is a diagram showing an example of a data read / write position with respect to a transmission buffer for one channel configured as a double buffer. In FIG. 5, A side and B side show each side of the double buffer. Each of the A side and the B side includes 16 blocks (hereinafter referred to as “block [0]”) indicated by numbers 0 to 15 in FIG. 5 and a notification flag area indicated by flg. It is out. Blocks [0] to [7] are first transmission buffers, and blocks [8] to [15] are second transmission buffers. In FIG. 5, d [i] indicates data written from the first OS 111 side at time t = i, and w [i to i + 7] is any of the periods from time t = i to i + 7. Data written from the second OS 121 side at the timing shown in FIG. Here, the time t is a time in which the size (2 ms) of the frame in which the first virtual machine VM1 reads / writes to / from the transmission buffer is used as a unit time.

フラグ領域flgは、A面とB面のいずれに現在データが読み書きされているかを示すフラグを格納する領域である。フラグ領域flgに値「0」が格納されている場合、そのフラグは第1のOS111がB面にデータの読み書きを行っており、第2のOS121がA面にデータを読み書き可能であることを示す。一方、フラグ領域flgに値「1」が格納されている場合、そのフラグは第1のOS111がA面にデータの読み書きを行っており、第2のOS121がB面にデータを読み書き可能であることを示す。第1のOS111側の処理として、フラグ領域flgのフラグは第1のOS111によりA面もしくはB面の最後のブロックへのデータの読み書きが完了した時点で、メモリAPI133を用いてフラグ領域flgのフラグの値を更新する。管理OS131はフラグ領域flgのフラグを監視しており、フラグの更新が行われると第2のOS121に対し、更新後のフラグに応じた面に対するデータの読み書きの開始を通知する。その結果、第1のOS111と第2のOS121との間で同じブロックに対するデータの読み書きが同時期に発生することはない。   The flag area flg is an area for storing a flag indicating whether data is currently being read or written on the A side or the B side. When the value “0” is stored in the flag area flg, the flag indicates that the first OS 111 is reading / writing data on the B side and the second OS 121 is capable of reading / writing data on the A side. Show. On the other hand, when the value “1” is stored in the flag area flg, the first OS 111 reads / writes data from / to the A side and the second OS 121 can read / write data from / to the B side. It shows that. As processing on the first OS 111 side, the flag in the flag area flg is set by using the memory API 133 when the first OS 111 completes reading and writing of data to the last block on the A side or B side. Update the value of. The management OS 131 monitors the flag in the flag area flg. When the flag is updated, the management OS 131 notifies the second OS 121 of the start of data reading / writing on the surface corresponding to the updated flag. As a result, data reading / writing with respect to the same block does not occur at the same time between the first OS 111 and the second OS 121.

図5(a)〜(e)の各々は、時刻tのタイミングにおける伝送用バッファの状態を示し、白抜きの矢印が第1のOS111側によるデータの読み書きの領域を、また斜線の矢印が第2のOS121側によるデータの読み書きの領域を示している。例えば、時刻t=16のタイミング(図5(a))において、フラグ領域flgには「1」が格納されており、第1のOS111はA面のブロック[0]にデータを書き込むとともに、A面のブロック[8]からデータを読み出す。次の時刻t=17のタイミング(図5(b))において、第1のOS111はA面のブロック[1]にデータを書き込むとともに、A面のブロック[9]からデータを読み出す。このように、第1のOS111側ではフレーム単位で読み書き対象のブロック位置を移動させながらA面に対するデータの読み書きが時刻t=23まで繰り返される。   Each of FIGS. 5A to 5E shows the state of the transmission buffer at the timing t, and the white arrow indicates the data read / write area on the first OS 111 side, and the hatched arrow indicates the first. 2 shows a data read / write area by the OS 121 side. For example, at the timing of time t = 16 (FIG. 5A), “1” is stored in the flag area flg, and the first OS 111 writes data to the block [0] on the A side and Read data from surface block [8]. At the next timing t = 17 (FIG. 5B), the first OS 111 writes data to the A-side block [1] and reads data from the A-side block [9]. As described above, on the first OS 111 side, the reading / writing of data with respect to the A surface is repeated until time t = 23 while moving the block position to be read / written in units of frames.

上記のように、第1のOS111によりA面に対するデータの読み書きが行われている時刻t=16〜23の間、第2のOS121側では仮想オーディオI/Oドライバ129から供給されるクロックに同期した第2のOS121側のフレームの期間内(16ms)に、B面に対するデータの読み書きが行われる。第2のOS121のフレームのサイズは第1のOS111のフレームのサイズの8倍であるため、第2のOS121側では8ブロック分のデータがまとめて読み書きされる。   As described above, the second OS 121 is synchronized with the clock supplied from the virtual audio I / O driver 129 during the time t = 16 to 23 when data is read from and written to the A plane by the first OS 111. During the frame period (16 ms) on the second OS 121 side, data is read from and written to the B side. Since the size of the frame of the second OS 121 is eight times the size of the frame of the first OS 111, data for eight blocks are collectively read and written on the second OS 121 side.

第1のOS111側では、時刻t=23のタイミングにおいてA面のブロック[7]に対するデータの書き込みとA面のブロック[15]からのデータの読み出しが完了すると、メモリAPI133が用いられてフラグ領域flgのフラグの値が「0」に書き換えられる。このフラグの更新に応じて、管理OS131は第2のOS121に対し、データの読み書き対象をB面からA面に変更するように通知する。   On the first OS 111 side, when the writing of data to the A-side block [7] and the reading of the data from the A-side block [15] are completed at time t = 23, the memory API 133 is used to set the flag area. The value of the flag of flg is rewritten to “0”. In response to this flag update, the management OS 131 notifies the second OS 121 to change the data read / write target from the B side to the A side.

その後、時刻t=24のタイミング(図5(c))において、第1のOS111はB面のブロック[0]にデータを書き込むとともに、B面のブロック[8]からデータを読み出す。以降、第1のOS111側ではフレーム毎に読み書き対象のブロック位置を移動しながらB面に対するデータの読み書きが時刻t=31のタイミング(図5(d))まで繰り返される。また、第2のOS121側では、時刻t=24〜31の期間内に、A面に対するデータの読み書きが行われる。   Thereafter, at the timing of time t = 24 (FIG. 5C), the first OS 111 writes data into the block [0] on the B surface and reads data from the block [8] on the B surface. Thereafter, on the first OS 111 side, the reading / writing of data with respect to the B surface is repeated until the timing of time t = 31 (FIG. 5D) while moving the block position to be read / written for each frame. On the second OS 121 side, data is read from and written to the A plane within a period of time t = 24 to 31.

第1のOS111側では、時刻t=31のタイミングにおいてB面のブロック[7]に対するデータの書き込みとB面のブロック[15]からのデータの読み出しが完了すると、メモリAPI133が用いられてフラグ領域flgのフラグの値が「1」に書き換えられる。このフラグの更新に応じて、管理OS131は第2のOS121に対し、データの読み書き対象をA面からB面に変更するように通知する。その後、図5(e)に示されるように、第1のOS111および第2のOS121によるデータの読み書きの対象面が再び変更され、時刻t=16〜31までと同様の処理が以降繰り返される。   On the first OS 111 side, when the writing of data to the B-side block [7] and the reading of data from the B-side block [15] are completed at time t = 31, the memory API 133 is used to set the flag area. The value of the flag of flg is rewritten to “1”. In response to the update of the flag, the management OS 131 notifies the second OS 121 to change the data read / write target from the A side to the B side. After that, as shown in FIG. 5E, the data reading / writing target planes by the first OS 111 and the second OS 121 are changed again, and the same processing from time t = 16 to 31 is repeated thereafter.

3.構成例
第1の仮想機械VM1と第2の仮想機械VM2とは1つの統合されたシステムとして機能させることができる。この場合、各種処理は要求される低レイテンシの程度に応じて、第1の仮想機械VM1で動作する第1のOS111と第2の仮想機械VM2で動作する第2のOS121との間で適宜分担して行われることが望ましい。例えば、マイクから入力した音響信号の周波数特性を調整してスピーカから出力する等、信号処理の結果を直ちにユーザにフィードバックする必要のある処理(即時性を要する処理)をリアルタイムOSである第1のOS111で実行し、マイクから入力した音響信号をオーディオデータファイルとして保存する等の即時性を要しない処理を汎用OSである第2のOS121で実行されるよう構成することが望ましい。以下にそのようなOS間の処理分担の構成例を示す。
3. Configuration Example The first virtual machine VM1 and the second virtual machine VM2 can function as one integrated system. In this case, various processes are appropriately shared between the first OS 111 operating on the first virtual machine VM1 and the second OS 121 operating on the second virtual machine VM2 according to the required low latency level. It is desirable to be done as follows. For example, the first real-time OS is a process that requires immediate feedback of the signal processing result to the user (process that requires immediacy), such as adjusting the frequency characteristics of an acoustic signal input from a microphone and outputting the result from a speaker. It is desirable to configure the second OS 121, which is a general-purpose OS, to execute processing that does not require immediacy, such as saving an audio signal input from a microphone as an audio data file. A configuration example of such processing sharing between OSs is shown below.

3−1.構成例1
図6は第1のOS111上で音響信号処理エンジン112がミキシング等の処理を施した音響信号を、第2のOS121上でオーディオ編集アプリケーション122が記録するように構成したコンピュータ装置1における音響信号の処理の流れを示した図である。
3-1. Configuration example 1
FIG. 6 shows the acoustic signal of the computer apparatus 1 configured such that the audio editing application 122 records on the second OS 121 the acoustic signal processed by the acoustic signal processing engine 112 on the first OS 111. It is the figure which showed the flow of the process.

図6において、外部機器(マイク等)から複数チャンネルの音響信号が同時にオーディオI/Oドライバ116に入力される(S101)と、オーディオI/Oドライバ116は入力された音響信号を音響信号処理エンジン112に供給する(S102)。   In FIG. 6, when audio signals of a plurality of channels are simultaneously input from an external device (such as a microphone) to the audio I / O driver 116 (S101), the audio I / O driver 116 converts the input audio signal into an audio signal processing engine. 112 (S102).

音響信号処理エンジン112は、供給された音響信号に対して周波数特性の調整やミキシング等の信号処理を施した後、仮想オーディオI/Oドライバ119に供給する(S103)。仮想オーディオI/Oドライバ119は供給された音響信号を出力する。仮想オーディオI/Oドライバ119から出力された音響信号は共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ129に入力される(S104)。仮想オーディオI/Oドライバ129は入力された音響信号をオーディオ編集アプリケーション122に供給する(S105)。オーディオ編集アプリケーション122は供給された音響信号(すなわち第1の仮想機械VM1から伝送されてきた音響信号)をメモリ32Vに記録(すなわち録音)する。   The acoustic signal processing engine 112 performs signal processing such as frequency characteristic adjustment and mixing on the supplied acoustic signal, and then supplies it to the virtual audio I / O driver 119 (S103). The virtual audio I / O driver 119 outputs the supplied acoustic signal. The acoustic signal output from the virtual audio I / O driver 119 is input to the virtual audio I / O driver 129 via a transmission path constructed using the shared memory area 33 (S104). The virtual audio I / O driver 129 supplies the input acoustic signal to the audio editing application 122 (S105). The audio editing application 122 records (that is, records) the supplied acoustic signal (that is, the acoustic signal transmitted from the first virtual machine VM1) in the memory 32V.

3−2.構成例2
図7は、オーディオ編集アプリケーション122において再生された音響信号を音響信号処理エンジン112においてマイク等の外部機器から入力される音響信号とミキシング等した後、アンプ等の外部機器に出力するように構成したコンピュータ装置1における音響信号の処理の流れを示した図である。
3-2. Configuration example 2
FIG. 7 shows a configuration in which an acoustic signal reproduced by the audio editing application 122 is mixed with an acoustic signal input from an external device such as a microphone in the acoustic signal processing engine 112 and then output to an external device such as an amplifier. FIG. 6 is a diagram illustrating a flow of processing of an acoustic signal in the computer apparatus 1.

図7において、外部機器(マイク等)から音響信号がオーディオI/Oドライバ116に入力される(S201)。オーディオI/Oドライバ116は入力された音響信号を音響信号処理エンジン112に供給する(S202)。同時に、オーディオ編集アプリケーション122は、メモリ32Vに記憶されている音響信号を読み出して再生する。オーディオ編集アプリケーション122によって再生された音響信号は、仮想オーディオI/Oドライバ129に供給され(S301)、共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ119に伝送され(S302)、音響信号処理エンジン112に供給される(S303)。   In FIG. 7, an acoustic signal is input from an external device (such as a microphone) to the audio I / O driver 116 (S201). The audio I / O driver 116 supplies the input acoustic signal to the acoustic signal processing engine 112 (S202). At the same time, the audio editing application 122 reads out and reproduces the acoustic signal stored in the memory 32V. The acoustic signal reproduced by the audio editing application 122 is supplied to the virtual audio I / O driver 129 (S301) and transmitted to the virtual audio I / O driver 119 via a transmission path constructed using the shared memory area 33. (S302) and supplied to the acoustic signal processing engine 112 (S303).

音響信号処理エンジン112は、ステップS202においてオーディオI/Oドライバ116から供給される音響信号とステップS303において仮想オーディオI/Oドライバ119から供給される音響信号とをミキシングし、ミキシングした音響信号をオーディオI/Oドライバ116と仮想オーディオI/Oドライバ119とに供給する(S401)。オーディオI/Oドライバ116に供給された音響信号は外部機器(アンプ等)に出力される(S402)。一方、仮想オーディオI/Oドライバ119に供給された音響信号は、共有メモリ領域33を用いて構築された伝送路を介して仮想オーディオI/Oドライバ129に伝送され(S403)、オーディオ編集アプリケーション122に供給される(S404)。オーディオ編集アプリケーション122は、仮想オーディオI/Oドライバ129から供給される音響信号をメモリ32Vに記録(すなわち録音)する。   The acoustic signal processing engine 112 mixes the acoustic signal supplied from the audio I / O driver 116 in step S202 and the acoustic signal supplied from the virtual audio I / O driver 119 in step S303, and converts the mixed acoustic signal into an audio. The data is supplied to the I / O driver 116 and the virtual audio I / O driver 119 (S401). The acoustic signal supplied to the audio I / O driver 116 is output to an external device (such as an amplifier) (S402). On the other hand, the acoustic signal supplied to the virtual audio I / O driver 119 is transmitted to the virtual audio I / O driver 129 via a transmission path constructed using the shared memory area 33 (S403), and the audio editing application 122 (S404). The audio editing application 122 records (that is, records) the acoustic signal supplied from the virtual audio I / O driver 129 in the memory 32V.

以上説明したように本実施形態では、コンピュータ装置上で各々独立して動作する複数のOSのうち少なくとも一方をリアルタイムOSとし、リアルタイムOS上で低レイテンシの保証が求められる音響信号処理が行われ、他のOSにおいて即時性が求められない音響信号処理やGUI処理等が行われる。その結果、DSP等のプロセッサを用いる場合と比較し低コストで低レイテンシが求められる音響信号処理が実現される。その際、OSおよびOS上で動作するアプリケーションは既存のものをそのまま用いることができるため、それらの開発コストも要しない。   As described above, in the present embodiment, at least one of a plurality of OSs that operate independently on a computer device is a real-time OS, and acoustic signal processing that requires guarantee of low latency is performed on the real-time OS. Acoustic signal processing, GUI processing, and the like that do not require immediateness in other OSs are performed. As a result, it is possible to realize acoustic signal processing that requires low latency and low latency compared to the case of using a processor such as a DSP. At that time, the OS and applications running on the OS can be used as they are, so that development costs are not required.

4.変形例
以上の実施形態は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。尚、以下の変形例は適宜組み合わせられてもよい。
4). Modifications The above embodiment can be variously modified within the scope of the technical idea of the present invention. Examples of these modifications are shown below. The following modifications may be combined as appropriate.

上述の実施形態では、第1のOS111をリアルタイムOSとし、低レイテンシが求められる信号処理をリアルタイムOS上で実行される音響信号処理エンジン112にて行うものとしたが、リアルタイム用途に対応できる程度処理の応答速度が速いなど、音響信号処理に要求されるレイテンシが達成できる場合には、第1のOS111を第2のOS121と同様の汎用OSとしてもよい。   In the above-described embodiment, the first OS 111 is the real-time OS, and the signal processing that requires low latency is performed by the acoustic signal processing engine 112 that is executed on the real-time OS. The first OS 111 may be a general-purpose OS similar to the second OS 121 when the latency required for the acoustic signal processing can be achieved, for example, when the response speed of the first OS 111 is high.

また、上述の実施形態では、第1のOS111と第2のOS121とに各々異なるプロセッサコアをアサインし、第1のOS111と第2のOS121とは、それぞれアサインされた異なるプロセッサコア上で実行される構成が採用されているが、第1のOS111と第2のOS121に対するプロセッサコアのアサインの方法はこれに限られない。例えば、管理OSが時分割等により同じプロセッサコアを第1のOS111と第2のOS121にアサインする構成が採用されてもよい。   Further, in the above-described embodiment, different processor cores are assigned to the first OS 111 and the second OS 121, and the first OS 111 and the second OS 121 are executed on different assigned processor cores. However, the method of assigning the processor core to the first OS 111 and the second OS 121 is not limited to this. For example, a configuration in which the management OS assigns the same processor core to the first OS 111 and the second OS 121 by time division or the like may be employed.

また、上述の実施形態では、管理OS131は第2の仮想機械VM2にアサインされたプロセッサコアやメモリ領域等のリソースを共用するものとしたが、管理OS131は汎用OS上で動作するハイパーバイザに限られず、コンピュータ装置1のハードウェア上で直接動作するハイパーバイザとして構成されてもよい。また、管理OS131が利用するリソースは第2のOS121が利用するリソースに限られず、第1のOS111が利用するリソースを管理OS131が共用する構成や、他のいずれのOSにも利用されていないリソースを管理OS131が専有する構成が採用されてもよい。あるいは、第1のOS111または第2のOS121のいずれかが管理OS131としての機能を具備するホストOSとして構成し、他方のOSをホストOSにより管理されるゲストOSとして構成してもよい。ただし、第1の仮想機械VM1はプロセッサコアの一部を専有する等、第1のOS111にて実行される音響信号処理の応答遅延の発生を防ぐことが望ましい。   In the above-described embodiment, the management OS 131 shares resources such as a processor core and a memory area assigned to the second virtual machine VM2, but the management OS 131 is not limited to a hypervisor that operates on a general-purpose OS. Instead, it may be configured as a hypervisor that directly operates on the hardware of the computer apparatus 1. Further, the resource used by the management OS 131 is not limited to the resource used by the second OS 121, but the resource used by the first OS 111 is shared by the management OS 131, or the resource is not used by any other OS. May be employed by the management OS 131. Alternatively, either the first OS 111 or the second OS 121 may be configured as a host OS having a function as the management OS 131, and the other OS may be configured as a guest OS managed by the host OS. However, it is desirable to prevent the occurrence of a response delay in the acoustic signal processing executed by the first OS 111, for example, the first virtual machine VM1 occupies a part of the processor core.

また、上述の実施形態では、コンピュータ装置1において2つの仮想機械が実現される構成が採用されているが、実現される仮想機械の数は3以上であってもよい。従って、それらの仮想機械上で実行されるOSの数もまた、3以上であってもよい。この場合、共有メモリ領域を利用した仮想伝送路3を各仮想機械間それぞれに設けることが望ましい。また、ひとつの仮想機械上で複数のOSが動作してもよい。   In the above-described embodiment, a configuration in which two virtual machines are realized in the computer apparatus 1 is employed, but the number of virtual machines to be realized may be three or more. Accordingly, the number of OSs executed on these virtual machines may also be three or more. In this case, it is desirable to provide the virtual transmission path 3 using the shared memory area between the virtual machines. A plurality of OSs may operate on one virtual machine.

また、上述の実施形態では、コンピュータ装置1のプロセッサ10はプロセッサコアを4つ備えるものとしたが、コンピュータ装置1のプロセッサが備えるプロセッサコアの数は限定されず、複数の仮想機械のそれぞれに1又は複数のプロセッサコアが割り当てられるものであればよい。   In the above-described embodiment, the processor 10 of the computer apparatus 1 includes four processor cores. However, the number of processor cores included in the processor of the computer apparatus 1 is not limited, and 1 for each of a plurality of virtual machines. Or what is necessary is just to be able to allocate a plurality of processor cores.

また、上述の実施形態では、第1の仮想機械VM1および第2の仮想機械VM2は、起動後常時、仮想化支援コンポーネント132の制御下にあることが想定されているが、仮想化処理が完了後は第1の仮想機械VM1および第2の仮想機械VM2の一方もしくは両方が、仮想化支援コンポーネント132を迂回して直接リソースにアクセスする構成が採用されてもよい。この場合、管理OS131の介入が無い分、一般的に処理速度が速くなる。   In the above-described embodiment, it is assumed that the first virtual machine VM1 and the second virtual machine VM2 are always under the control of the virtualization support component 132 after startup, but the virtualization process is completed. Thereafter, a configuration in which one or both of the first virtual machine VM1 and the second virtual machine VM2 bypass the virtualization support component 132 and directly access the resource may be employed. In this case, since there is no intervention of the management OS 131, the processing speed is generally increased.

また、上述の実施形態では、共有メモリ領域33上に確保された物理的に同一の伝送用バッファを第1のOS111および第2のOS121が共用する構成が採用されている。共有メモリ領域33を用いた伝送路の構築の方法はそれに限られない。例えば、管理OS131が共有メモリ領域33上に第1のOS111用のバッファと第2のOS121用のバッファを独立して確保し、管理OS131がそれらのバッファ間でデータをコピーすることによりOS間のデータの共有を実現する構成など、他の構成が採用されてもよい。   In the above-described embodiment, a configuration is adopted in which the first OS 111 and the second OS 121 share the physically same transmission buffer secured on the shared memory area 33. The method of constructing a transmission path using the shared memory area 33 is not limited to that. For example, the management OS 131 independently secures a buffer for the first OS 111 and a buffer for the second OS 121 on the shared memory area 33, and the management OS 131 copies data between these buffers so that the OSs Other configurations such as a configuration for sharing data may be adopted.

また、上述の実施形態では、伝送用バッファに対する第1のOS111および第2のOS121によるデータの読み書きの制御としては、第1のOS111により更新されるフラグを管理OS131が監視し、フラグの更新に応じて第2のOS121に対し通知を行う構成が採用されている。管理OS131による伝送用バッファの制御の方法はこれに限られず、例えば管理OS131が第1のOS111および第2のOS121の伝送用バッファに対するデータの読み書き位置を監視し、一方のOSにより所定の領域に対するデータの読み書きが完了すると、他方のOSに対しその領域に対するデータの読み書きを開始するように通知する方法、あるいは、管理OSを介さず、共有メモリ内に同期用のデータを配置し、第1のOS111および第2のOS121がそれぞれこの同期用のデータをポーリングすることでOS間の同期をとる方法など、他の方法が採用されてもよい。   In the above-described embodiment, as control of data reading / writing by the first OS 111 and the second OS 121 with respect to the transmission buffer, the management OS 131 monitors the flag updated by the first OS 111 and updates the flag. Accordingly, a configuration in which notification is given to the second OS 121 is employed. The method of controlling the transmission buffer by the management OS 131 is not limited to this. For example, the management OS 131 monitors the read / write position of data in the transmission buffer of the first OS 111 and the second OS 121, and one OS controls a predetermined area. When the data read / write is completed, a method of notifying the other OS to start data read / write to the area, or the synchronization data is arranged in the shared memory without using the management OS, and the first Other methods such as a method in which the OS 111 and the second OS 121 respectively synchronize the OSs by polling the synchronization data may be adopted.

また、上述の実施形態では、第1の仮想機械VM1においてはオーディオI/F40Vを発信源とするクロック信号が、また第2の仮想機械VM2においては仮想オーディオI/F332から供給されるクロック信号が処理の同期に利用される構成が採用されているが、各仮想機械がいずれのクロック信号を処理の同期に利用するかは任意に変更可能である。例えば、第1の仮想機械VM1がオーディオI/F40Vを介してデータの送受信を行う外部のオーディオ機器等から受け取るクロック信号を処理の同期に用いる構成が採用されてもよい。   In the above-described embodiment, the first virtual machine VM1 has a clock signal originating from the audio I / F 40V, and the second virtual machine VM2 has a clock signal supplied from the virtual audio I / F 332. Although a configuration used for processing synchronization is adopted, it can be arbitrarily changed which clock signal each virtual machine uses for processing synchronization. For example, a configuration in which the first virtual machine VM1 uses a clock signal received from an external audio device or the like that transmits and receives data via the audio I / F 40V for processing synchronization may be employed.

また、上述の実施形態では、第1のOS111および第2のOS121に従い伝送用バッファに読み書きされるデータのサイズは各OSにおいて設定されている音響信号の処理単位であるフレームのサイズであるものとしたが、伝送用バッファに読み書きするデータのサイズはフレームのサイズと異なってもよい。例えば、第2のOS121に従い伝送用バッファに読み書きされるデータのサイズを、第1のOS111に従い伝送用バッファに読み書きされるデータのサイズ(第1のOS111におけるフレームサイズ)と同一にしてもよい。その場合、例えばメモリAPI134が、仮想オーディオI/Oドライバ129のバッファ(36864bit)から2msのクロック周期毎に4608bitずつデータを読み出し、伝送用バッファにそれらのデータを書き込むように構成すればよい。ただし、上述の実施形態のように第2のOS121が汎用OSである場合、ジッタの発生防止の観点からは、伝送用バッファへのデータの読み書きのサイズは大きい方が望ましい。   Further, in the above-described embodiment, the size of data read / written to / from the transmission buffer according to the first OS 111 and the second OS 121 is the size of a frame that is a sound signal processing unit set in each OS. However, the size of data read from or written to the transmission buffer may be different from the frame size. For example, the size of data read / written to / from the transmission buffer according to the second OS 121 may be the same as the size of data read / written from / to the transmission buffer according to the first OS 111 (frame size in the first OS 111). In this case, for example, the memory API 134 may be configured to read data from the buffer (36864 bits) of the virtual audio I / O driver 129 by 4608 bits every clock cycle of 2 ms and write the data to the transmission buffer. However, when the second OS 121 is a general-purpose OS as in the above-described embodiment, it is desirable that the size of data read / write to the transmission buffer is larger from the viewpoint of preventing the occurrence of jitter.

また、上述の実施形態では、第1の仮想機械VM1と第2の仮想機械VM2との間で双方向にデータを送受信する場合について説明したが、これに限らず、どちらか一方向のデータ伝送を行う構成であってもよい。例えば、仮想オーディオI/F331および332が、第1の仮想機械VM1から第2の仮想機械VM2へのデータ伝送のみを実現するものであってもよい。   In the above-described embodiment, a case has been described in which data is transmitted and received bidirectionally between the first virtual machine VM1 and the second virtual machine VM2. However, the present invention is not limited to this, and data transmission is performed in either direction. The structure which performs this may be sufficient. For example, the virtual audio I / Fs 331 and 332 may realize only data transmission from the first virtual machine VM1 to the second virtual machine VM2.

なお、本発明は、プログラム以外に、本発明にかかるプログラムに従いコンピュータが行う処理の方法や、本発明にかかるプログラムがコンピュータに読み取り可能に記録された記録媒体も提供する。また、本発明にかかるプログラムは、記録媒体に記録されてユーザに提供される以外に、インターネット等のネットワークを介して端末装置にダウンロードされることでユーザに提供されてもよい。また、本発明は、本発明にかかるプログラムに従って動作する音響信号処理装置も提供する。   In addition to the program, the present invention also provides a method of processing performed by the computer according to the program according to the present invention and a recording medium on which the program according to the present invention is recorded so as to be readable by the computer. In addition to being recorded on a recording medium and provided to the user, the program according to the present invention may be provided to the user by being downloaded to a terminal device via a network such as the Internet. The present invention also provides an acoustic signal processing apparatus that operates according to the program according to the present invention.

本発明にかかるプログラムに従って動作する音響信号処理装置は、第1のOS111、第2のOS121、管理OS131がEPROM等にユーザにより書き換え不可能に記憶され、装置の起動に伴いそれらのOSが起動して音響信号処理装置が構築される組み込みシステムとして構成されてもよい。また、この場合において、第1のOS111や第2のOS121上で実行されるアプリケーションプログラム(音響信号処理エンジン112、オーディオ編集アプリケーション122等)がEPROM等にユーザにより書き換え不可能に記憶されている構成が採用されてもよい。   In the acoustic signal processing device that operates according to the program according to the present invention, the first OS 111, the second OS 121, and the management OS 131 are stored in an EPROM or the like in a non-rewritable manner by the user. It may be configured as an embedded system in which the acoustic signal processing device is constructed. In this case, the application program (the acoustic signal processing engine 112, the audio editing application 122, etc.) executed on the first OS 111 or the second OS 121 is stored in the EPROM or the like in a non-rewritable manner by the user. May be adopted.

1…コンピュータ装置、2,3…伝送路、10…プロセッサ、20…メモリ、34…メモリ、40…オーディオI/F、50…その他のデバイス、60…バス、111…第1のOS、112…音響信号処理エンジン、116…オーディオI/Oドライバ、119…仮想オーディオI/Oドライバ、132…仮想化支援コンポーネント、131…管理OS、121…第2のOS、122…オーディオ編集アプリケーション、129…仮想オーディオI/Oドライバ、133…メモリAPI、134…メモリAPI、331…仮想オーディオI/F、332…仮想オーディオI/F。 DESCRIPTION OF SYMBOLS 1 ... Computer apparatus, 2, 3 ... Transmission path, 10 ... Processor, 20 ... Memory, 34 ... Memory, 40 ... Audio I / F, 50 ... Other devices, 60 ... Bus, 111 ... 1st OS, 112 ... Acoustic signal processing engine, 116 ... audio I / O driver, 119 ... virtual audio I / O driver, 132 ... virtualization support component, 131 ... management OS, 121 ... second OS, 122 ... audio editing application, 129 ... virtual Audio I / O driver, 133 ... Memory API, 134 ... Memory API, 331 ... Virtual audio I / F, 332 ... Virtual audio I / F.

Claims (6)

リソースとして少なくともプロセッサおよびメモリを有するコンピュータにて行われる音響信号処理方法であって、前記プロセッサが、
前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する仮想機械構築ステップと、
前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築するインタフェース構築ステップと、
前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する出力ステップと、
前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む書込ステップと、
前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する読出ステップと、
前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する入力ステップと
を備える音響信号処理方法。
An acoustic signal processing method performed by a computer having at least a processor and a memory as resources, wherein the processor
A virtual machine construction step of constructing a first virtual machine and a second virtual machine using the resource;
An interface construction step of constructing a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine;
An output step of outputting an acoustic signal to the first interface in the first virtual machine;
Writing the acoustic signal output by the first virtual machine to the first interface into the memory;
A reading step of reading the written acoustic signal from the memory and outputting it to the second interface;
An acoustic signal processing method comprising: an input step of inputting an acoustic signal from the second interface in the second virtual machine.
前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、
前記プロセッサが、
前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力するステップと、
前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行するステップと、
を備え、
前記プロセッサは、前記出力ステップにおいて前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力ステップにおいて前記第2のインタフェースから前記信号処理された音響信号を入力する
請求項1に記載の音響信号処理方法。
The resource includes an audio interface for receiving an acoustic signal from an external device connected to the computer,
The processor is
Inputting an acoustic signal received at the audio interface in the first virtual machine;
Executing signal processing on the input acoustic signal in the first virtual machine;
With
2. The processor outputs the signal-processed acoustic signal to the first interface in the output step, and inputs the signal-processed acoustic signal from the second interface in the input step. 3. Acoustic signal processing method.
前記プロセッサは複数のプロセッサコアを含み、
前記プロセッサは、前記仮想機械構築ステップにおいて、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する
請求項2に記載の音響信号処理方法。
The processor includes a plurality of processor cores;
In the virtual machine construction step, the processor constructs the first virtual machine using the first processor core and the audio interface among the resources, and configures the second virtual machine among the resources. The acoustic signal processing method according to claim 2, wherein the acoustic signal processing method is constructed using two processor cores.
リソースとして少なくともプロセッサおよびメモリを有するコンピュータの前記リソースを用いて第1の仮想機械と第2の仮想機械を構築する手段と、
前記第1の仮想機械から音響信号を出力する第1のインタフェース、および、前記第2の仮想機械へ音響信号を入力する第2のインタフェースを構築する手段と、
前記第1の仮想機械において、前記第1のインタフェースに音響信号を出力する手段と、
前記第1の仮想機械が前記第1のインタフェースに出力した音響信号を前記メモリに書き込む手段と、
前記書き込まれた音響信号を前記メモリから読み出して前記第2のインタフェースへ出力する手段と、
前記第2の仮想機械において、前記第2のインタフェースから音響信号を入力する手段と
を備えたことを特徴とする音響信号処理システム。
Means for constructing a first virtual machine and a second virtual machine using the resources of a computer having at least a processor and a memory as resources;
Means for constructing a first interface for outputting an acoustic signal from the first virtual machine, and a second interface for inputting the acoustic signal to the second virtual machine;
Means for outputting an acoustic signal to the first interface in the first virtual machine;
Means for writing to the memory an acoustic signal output by the first virtual machine to the first interface;
Means for reading the written acoustic signal from the memory and outputting it to the second interface;
An acoustic signal processing system, comprising: means for inputting an acoustic signal from the second interface in the second virtual machine.
前記リソースは、前記コンピュータに接続された外部装置から音響信号を受信するオーディオインタフェースを含み、
前記第1の仮想機械において、前記オーディオインタフェースにて受信された音響信号を入力する手段と、
前記第1の仮想機械において、前記入力した音響信号に対する信号処理を実行する手段と、
を備え、
前記出力する手段は前記信号処理された音響信号を前記第1のインタフェースに出力し、前記入力する手段は前記第2のインタフェースから前記信号処理された音響信号を入力する
請求項4に記載の音響信号処理システム。
The resource includes an audio interface for receiving an acoustic signal from an external device connected to the computer,
Means for inputting an acoustic signal received at the audio interface in the first virtual machine;
Means for performing signal processing on the inputted acoustic signal in the first virtual machine;
With
The sound according to claim 4, wherein the output means outputs the signal processed acoustic signal to the first interface, and the input means inputs the signal processed acoustic signal from the second interface. Signal processing system.
前記プロセッサは複数のプロセッサコアを含み、
前記仮想機械を構築する手段は、前記第1の仮想機械を前記リソースのうち第1のプロセッサコアと前記オーディオインタフェースとを用いて構築し、前記第2の仮想機械を前記リソースのうち第2のプロセッサコアを用いて構築する
請求項5に記載の音響信号処理システム。
The processor includes a plurality of processor cores;
The means for constructing the virtual machine constructs the first virtual machine by using the first processor core and the audio interface among the resources, and constructs the second virtual machine by using a second of the resources. The acoustic signal processing system according to claim 5, wherein the acoustic signal processing system is constructed using a processor core.
JP2012168291A 2012-07-30 2012-07-30 Acoustic signal processing method and audio signal processing system Pending JP2014027595A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012168291A JP2014027595A (en) 2012-07-30 2012-07-30 Acoustic signal processing method and audio signal processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012168291A JP2014027595A (en) 2012-07-30 2012-07-30 Acoustic signal processing method and audio signal processing system

Publications (1)

Publication Number Publication Date
JP2014027595A true JP2014027595A (en) 2014-02-06

Family

ID=50200828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012168291A Pending JP2014027595A (en) 2012-07-30 2012-07-30 Acoustic signal processing method and audio signal processing system

Country Status (1)

Country Link
JP (1) JP2014027595A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017130809A (en) * 2016-01-20 2017-07-27 ティアック株式会社 Control apparatus
JP2018535468A (en) * 2015-09-21 2018-11-29 レインボー ロボティックスRainbow Robotics GPOS-linked real-time robot control system and real-time device control system using the same
KR102094707B1 (en) * 2018-10-10 2020-03-30 임창수 audio data processing apparatus by use of virtual channels and virtual drivers
JP2020162175A (en) * 2020-06-29 2020-10-01 ティアック株式会社 Control apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018535468A (en) * 2015-09-21 2018-11-29 レインボー ロボティックスRainbow Robotics GPOS-linked real-time robot control system and real-time device control system using the same
JP2017130809A (en) * 2016-01-20 2017-07-27 ティアック株式会社 Control apparatus
KR102094707B1 (en) * 2018-10-10 2020-03-30 임창수 audio data processing apparatus by use of virtual channels and virtual drivers
JP2020162175A (en) * 2020-06-29 2020-10-01 ティアック株式会社 Control apparatus

Similar Documents

Publication Publication Date Title
US8972984B2 (en) Methods and systems for virtualizing audio hardware for one or more virtual machines
CN109739618B (en) Virtual machine migration method and device
US9514507B2 (en) Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware
US8533713B2 (en) Efficent migration of virtual functions to enable high availability and resource rebalance
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
EP3627319B1 (en) Display resource scheduling method and device for embedded system
US7454756B2 (en) Method, apparatus and system for seamlessly sharing devices amongst virtual machines
US9135079B2 (en) Dynamically assigning a portion of physical computing resource to logical partitions based on characteristics of executing logical partitions
US9063793B2 (en) Virtual server and virtual machine management method for supporting zero client by providing host interfaces from classified resource pools through emulation or direct connection modes
WO2017124842A1 (en) Method and device for taking screenshots
US8954993B2 (en) Local message queue processing for co-located workers
US11561813B2 (en) Server support for multiple audio/video operating systems
US20210224100A1 (en) Virtual machine migration using multiple, synchronized streams of state data
US10659534B1 (en) Memory sharing for buffered macro-pipelined data plane processing in multicore embedded systems
GB2525003A (en) Data Processing Systems
CN109753346B (en) Virtual machine live migration method and device
JP2014027595A (en) Acoustic signal processing method and audio signal processing system
WO2019119315A1 (en) Input processing method and apparatus based on multiple operating systems, and electronic device
WO2018205267A1 (en) Input device implementation method and implementation apparatus thereof
WO2020220790A1 (en) Data processing method, apparatus, and device
WO2023173516A1 (en) Data exchange method and apparatus, and storage medium and electronic device
JP2014195178A (en) Information processing device, transmission control method, and transmission control program
CN112218140A (en) Video synchronous playing method, device, system and storage medium
US10789082B2 (en) Execution of multiple operating systems without rebooting
US10241821B2 (en) Interrupt generated random number generator states