JP2007172311A - Processor - Google Patents
Processor Download PDFInfo
- Publication number
- JP2007172311A JP2007172311A JP2005369442A JP2005369442A JP2007172311A JP 2007172311 A JP2007172311 A JP 2007172311A JP 2005369442 A JP2005369442 A JP 2005369442A JP 2005369442 A JP2005369442 A JP 2005369442A JP 2007172311 A JP2007172311 A JP 2007172311A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- task
- unit
- executed
- information
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
本発明は、プロセッサにかかり、特に複数のプロセッサが複数のオペレーティングシステムによって動作するマルチプ方式のプロセッサに関する。 The present invention relates to a processor, and more particularly to a multiple processor in which a plurality of processors are operated by a plurality of operating systems.
特定の装置に用いられるプロセッサは、組込みシステムと呼ばれている。近年では、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサを採用することが望まれている。 A processor used in a specific device is called an embedded system. In recent years, multiprocessors and multithread processors are often employed in embedded systems. The use of a multiprocessor is advantageous for reducing the clock of the device and improving the response. In particular, in a portable device, it is advantageous to reduce power consumption, and therefore it is desired to employ a multiprocessor.
ところで、新たに開発したプロセッサが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。 By the way, it takes time and cost to determine whether or not a newly developed processor operates normally. For this reason, in the field of software, if a processor with a proven track record as a result of use can be diverted, it is desirable to divert it. Therefore, when an embedded system is made into a multiprocessor, there is a demand for diverting the previously used single processor software.
シングルプロセッサをマルチプロセッサに流用する従来技術として、例えば、特許文献1がある。特許文献1の発明は、μITRON(登録商標)をベースにしたシングルプロセッサ用のオペレーティングシステムをマルチプロセッサに移植するものである。
しかしながら、上記した特許文献1の発明は、マルチプロセッサのシステムをSMP(Symmetric Multi Processor)型のみのプロセッサで構築すると、シングルプロセッサの資産であるアプリケーションの移植作業の作業量が膨大になるという欠点がある。一方、マルチプロセッサを機能分散型のオペレーティングシステムのみで動作させた場合、複数のプロセッサを並列的に動作させることが困難である。 However, the above-described invention of Patent Document 1 has a drawback in that when a multiprocessor system is constructed with only a SMP (Symmetric Multi Processor) type processor, the amount of work of porting an application, which is a single processor asset, becomes enormous. is there. On the other hand, when a multiprocessor is operated only by a function distribution type operating system, it is difficult to operate a plurality of processors in parallel.
また、複数のプロセッサを並列的に動作させるためには、複数のオペレーティングシステムを動作させることが考えられる。しかし、従来技術では、複数のオペレーティングシステムをマルチプロセッサ上で動作させることは考えられていなかった。従来のシングルプロセッサの技術では、複数のオペレーティングシステムを動作させる場合にオペレーティングシステムを動的に切替える。このため、オペレーティングシステム切替えのためのロス時間が発生することになる。 In order to operate a plurality of processors in parallel, it is conceivable to operate a plurality of operating systems. However, in the prior art, it has not been considered to operate a plurality of operating systems on a multiprocessor. In the conventional single processor technology, when operating a plurality of operating systems, the operating systems are dynamically switched. For this reason, a loss time for switching the operating system occurs.
本発明は、以上の点に鑑みて行われたものであって、従来のシングルプロセッサに使用されていたオペレーティングシステムをマルチプロセッサに流用し、マルチプロセッサに含まれるプロセッサを複数のオペレーティングシステムによって並列に動作させることができるプロセッサを提供することを目的とする。 The present invention has been made in view of the above points, and an operating system used in a conventional single processor is diverted to a multiprocessor, and the processors included in the multiprocessor are parallelized by a plurality of operating systems. An object is to provide a processor that can be operated.
以上の課題を解決するため、本発明のプロセッサは、第1オペレーティングシステムによってタスクを実行する第1プロセッサ及び第2オペレーティングシステムによってタスクを実行する第2プロセッサと、前記第1プロセッサによって実行されるタスク、前記第2プロセッサによって実行されるタスクにかかるタスク情報を他のタスクとの間で授受するタスク情報通信手段と、を備えることを特徴とする。 In order to solve the above problems, a processor of the present invention includes a first processor that executes a task by a first operating system, a second processor that executes a task by a second operating system, and a task that is executed by the first processor And task information communication means for exchanging task information concerning a task executed by the second processor with another task.
このような発明によれば、複数のプロセッサが互いに異なるOSを使ってタスクを処理する場合にもタスク間通信することができる。このため、1のプロセッサに組み込まれる複数のプロセッサを別個のOSを使って並列に動作させることができる。したがって、本発明のプロセッサは、複数のプロセッサを組み合わせ、かつ各々のプロセッサのOSとして実績のあるOSを使用して動作させることができる。このような本発明は、従来のシングルプロセッサに使用されていたオペレーティングシステムをマルチプロセッサに流用し、マルチプロセッサに含まれるプロセッサを複数のオペレーティングシステムによって並列に動作させることができるプロセッサを提供することができる。 According to such an invention, inter-task communication can be performed even when a plurality of processors process tasks using different OSs. Therefore, a plurality of processors incorporated in one processor can be operated in parallel using separate OSs. Therefore, the processor of the present invention can be operated by combining a plurality of processors and using a proven OS as the OS of each processor. The present invention provides a processor capable of diverting an operating system used for a conventional single processor to a multiprocessor and allowing the processors included in the multiprocessor to operate in parallel by a plurality of operating systems. it can.
また、本発明のプロセッサは、前記タスク情報通信手段が、前記第1オペレーティングシステムによって実行されるタスク間、前記第2オペレーティングシステムによって実行されるタスク間でタスク情報を授受することを特徴とする。
このような発明によれば、一のOSによって実行されるタスク同士でタスク間通信が可能になる。この発明は、タスクの内容やプロセッサの構成等に応じてタスク間通信を行うタスクの範囲を任意に設定することを可能にする。
The processor according to the present invention is characterized in that the task information communication means exchanges task information between tasks executed by the first operating system and between tasks executed by the second operating system.
According to such an invention, inter-task communication is possible between tasks executed by one OS. The present invention makes it possible to arbitrarily set a range of tasks for performing inter-task communication according to task contents, processor configuration, and the like.
また、本発明のプロセッサは、前記タスク情報通信手段が、前記第1オペレーティングシステムによって実行されるタスクと前記第2オペレーティングシステムによって実行されるタスクとの間でタスク情報を授受することを特徴とする。
このような発明によれば、複数のOSの間でタスク間通信が可能になる。この発明は、タスクの内容やプロセッサの構成等に応じてタスク間通信を行うタスクの範囲を任意に設定することを可能にする。
The processor according to the present invention is characterized in that the task information communication means exchanges task information between a task executed by the first operating system and a task executed by the second operating system. .
According to such an invention, inter-task communication can be performed between a plurality of OSs. The present invention makes it possible to arbitrarily set a range of tasks for performing inter-task communication according to task contents, processor configuration, and the like.
また、本発明のプロセッサは、前記タスク情報通信手段が、前記第1オペレーティングシステム、前記第2オペレーティングシステムを識別する識別情報を前記タスク情報に付与することによってタスク情報が授受されるタスクの範囲を設定することを特徴とする。
また、本発明のプロセッサは、前記タスク情報通信手段が、前記第1プロセッサ、前記第2プロセッサのいずれもが情報の読み取り及び書込みが可能な記憶領域を備えることを特徴とする。
このような発明によれば、第1プロセッサ、第2プロセッサが記憶領域を介して互いに通信することができる。この発明は、比較的簡単な構成によって本発明のプロセッサを実現することを可能にする。
In the processor of the present invention, the task information communication means assigns identification information for identifying the first operating system and the second operating system to the task information, so that the task information can be transmitted and received. It is characterized by setting.
The processor according to the present invention is characterized in that the task information communication means includes a storage area in which both the first processor and the second processor can read and write information.
According to such an invention, the first processor and the second processor can communicate with each other via the storage area. The present invention makes it possible to implement the processor of the present invention with a relatively simple configuration.
また、本発明のプロセッサは、前記第1プロセッサ、第2プロセッサのうちのいずれかが対称型マルチプロセッサであって、他方が機能分散型プロセッサを構成することを特徴とする。
このような発明によれば、対称型マルチプロセッサ、機能分散型プロセッサを組み合わせてマルチプロセッサを構成し、組み合わされたプロセッサを各々従前のマルチプロセッサ対応OS、シングルプロセッサ用OSを使って動作させることができる。
The processor according to the present invention is characterized in that one of the first processor and the second processor is a symmetric multiprocessor, and the other constitutes a function distribution type processor.
According to such an invention, it is possible to configure a multiprocessor by combining a symmetric multiprocessor and a function-distributed processor, and to operate the combined processor using a conventional multiprocessor-compatible OS and a single processor OS. it can.
以下、図を参照して本発明に係るプロセッサの一実施の形態を説明する。なお、本実施形態は、本実施形態のプロセッサを、携帯電話に適用される組込みシステムとして構成したものとする。
図1は、本発明にかかる携帯電話1の機能構成を示すブロック図である。図1において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、バッファ40と、無線部50と、IrDA(Infrared Data Association)部60と、オーディオ(Audio)部70と、タイマ(Timer)80と、USB(Universal Serial Bus)インターフェース部90と、キー(KEY)操作部100と、LCD(Liquid Crystal Display)110と、カメラ(Camera)部120を含んで構成され、CPU10、フラッシュROM20、メモリ30及びバッファ40は、バスによって接続されている。また、無線部50、IrDA部60、オーディオ部70、タイマ80、USBインターフェース部90、キー操作部100、LCD110及びカメラ部120は、CPU10と直接接続されている。
Hereinafter, an embodiment of a processor according to the present invention will be described with reference to the drawings. In the present embodiment, it is assumed that the processor of the present embodiment is configured as an embedded system applied to a mobile phone.
FIG. 1 is a block diagram showing a functional configuration of a mobile phone 1 according to the present invention. In FIG. 1, a mobile phone 1 includes a CPU (Central Processing Unit) 10, a
CPU10は、複数のタスクを並列的に処理しながら携帯電話1全体を制御するもので、キー操作部100から入力される各種の指示信号に応じて、フラッシュROM30に記憶されたオペレーティングシステムプログラム(OS:Operating System)や各種アプリケーションプログラムを読み出して実行したり、無線部50、オーディオ部70あるいはカメラ部120等の周辺チップから入力される割込み信号に応じて、割込みハンドラを実行したりする。
The
例えば、CPU10は、アプリケーションにより生成されたタスクを並行して処理する。さらに、周辺チップから割込み信号が入力された場合、割込みハンドラを実行することにより、割込みに対応するプログラムを実行する。なお、アプリケーションによる処理は、OSのタスクスケジューラによって管理されるタスクとして実行されるため、OSのサービスコールを呼び出すことができ、一方、割込み処理は、タスクスケジューラによって管理されない処理(非タスク処理)である。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
For example, the
Further, the
図2は、CPU10の内部構成を示すブロック図である。図2において、CPU10は、複数の単位プロセッサP0〜P3と、割込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。なお、ハードウェアセマフォ部13は、いずれかの単位プロセッサにOSになる権利であるセマフォ(本実施形態ではハードウェアセマフォと記す)を付与する構成である。
FIG. 2 is a block diagram showing an internal configuration of the
単位プロセッサ0〜3は、このうちのいずれかが対称型マルチプロセッサ(以降SMP)を構成し、他が機能分散型プロセッサとなる。SMPとは、複数のプロセッサが同等な立場で処理を分担するマルチプロセッサである。本来、SMPでは、タスクがどのプロセッサで実行されるかを意識する必要がない。一方、機能分散型プロセッサとは、例えば通信制御、イメージ処理といった特定の処理に特化して動作するシングルプロセッサである。機能分散型プロセッサでは、タスクの割込みもプロセッサごとに処理される。 One of the unit processors 0 to 3 constitutes a symmetric multiprocessor (hereinafter referred to as SMP), and the other becomes a function distributed processor. SMP is a multiprocessor in which a plurality of processors share processing from an equivalent standpoint. Originally, in SMP, it is not necessary to be aware of which processor the task is executed on. On the other hand, the function-distributed processor is a single processor that operates specifically for specific processing such as communication control and image processing. In the function-distributed processor, task interrupts are processed for each processor.
本実施形態では、単位プロセッサP0、単位プロセッサP3が機能分散型プロセッサであって、単位プロセッサP1、単位プロセッサP2がSMP5を構成するものとする。
SMPと機能分散型プロセッサとが混在する本実施形態のプロセッサは、後述するように、プロセッサが複数種類のOSを有している。このため、ハードウェアセマフォ部13には複数のハードウェアセマフォがある。単位プロセッサP0〜P3は、各々自身に対応するOSを取得する。
In this embodiment, the unit processor P0 and the unit processor P3 are function distributed processors, and the unit processor P1 and the unit processor P2 constitute the SMP5.
As will be described later, the processor of this embodiment in which SMP and function-distributed processors coexist has a plurality of types of OSs. For this reason, the
また、本実施形態のプロセッサは、単位プロセッサP0〜P3の共有エリアとなるメモリ30と、メモリ30を制御するメモリ制御部12とを備えている。本実施形態では、メモリ30及びメモリ制御部12をタスク情報通信手段として使用し、タスクの実行状態を示す情報(タスク情報)を単位プロセッサP0〜P3間で授受する。メモリ制御部12のうち、特にタスク情報の授受にかかる構成を、タスク調停部210として示す。また、メモリ30のうちのタスク情報の授受に使用される領域をインターフェイスエリア220として示す。
なお、タスク調停部210、インターフェイスエリア220によるタスク情報の授受については後に詳述する。
Further, the processor of the present embodiment includes a
Note that task information exchange by the
次に、単位プロセッサP0〜P3の内部構成について説明する。単位プロセッサP0〜P3は同様に構成されているため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサP0は、フェッチ部101と、デコード部102と、ALU(Arithmetic and Logical Unit)103と、レジスタファイル104と、プログラム制御部105とを含んで構成される。フェッチ部101は、後述するプログラム制御部105のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部102に出力する。
Next, the internal configuration of the unit processors P0 to P3 will be described. Since the unit processors P0 to P3 are configured similarly, the internal configuration of the unit processor P0 will be described as a representative.
The unit processor P0 includes a fetch
デコード部102は、フェッチ部101によって入力された命令コードをデコードし、デコード結果(命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等)をALU103に出力する。
ALU103は、デコード部102によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル104に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部105に出力する。
The
The
レジスタファイル104は、ロード命令によってメモリ30から読み出されたデータや、ALU103の演算結果であるデータを記憶するレジスタ群である。
プログラム制御部105は、単位プロセッサP0全体を制御するものであり、単位プロセッサP0のステータス(例えば、割込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタ(PC)とを含んで構成される。そして、プログラム制御部105は、単位プロセッサP0が割込み処理に移行する時点で、PSRの値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
The
The
また、プログラム制御部105は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、先ず、ハードウェアセマフォの取得結果を受け取り、ステータスレジスタにおけるハードウェアセマフォの取得結果を示す領域(以下、「セマフォ取得結果レジスタ」という。)に取得に成功したことを示すフラグ(OSへの移行が許可されたことを示すフラグ)を更新する。一方、セマフォ取得に失敗した場合、取得に失敗したことを示すフラグ(OSへの移行が拒否されたことを示すフラグ)が書き込まれた場合、ハードウェアセマフォの取得を一旦停止し、待機状態から離脱する。
In addition, when a hardware semaphore acquisition request is output by a task being executed, the
さらに、プログラム制御部105は、追出し禁止フラグ106を備えている。追出し禁止フラグ106は、指定された単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ106を1にすることによって現在単位プロセッサにあるタスクが他のタスクに切替えられることが禁止される。単位プロセッサにおけるタスクの追出しが禁止された状態を以降ロック状態とも記す。
Furthermore, the
割込み制御部11は、無線部50等の周辺チップから割込み信号が入力された場合に、割込み信号を調停した上で、所定の割込み信号を単位プロセッサP0に出力する。メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出し及び書込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
When an interrupt signal is input from a peripheral chip such as the
ハードウェアセマフォ部13は、排他制御を実現する機構を有し、単位プロセッサP0〜P3からセマフォ取得要求があったとき、既にセマフォが獲得されている状態であれば新たな要求に対して、セマフォの獲得失敗を通知する。一方、それ以前にセマフォが獲得された状態でなければ、セマフォ取得成功の通知を単位プロセッサに返答する機能を有している。
The
すなわち、本実施形態では、ハードウェアセマフォを取得した単位プロセッサだけがOSを占有してタスクの処理を実行する権利を得る。このため、単位プロセッサP0〜P3のうちのいずれか1つだけがOSに移行できるので、OS同士の競合を防止する排他制御を実現できる。そして、OSによって使用されるメモリ30の所定の領域が同時にアクセスされたために処理が中断する等の不具合を防ぐことができる。
また、本実施形態では、追出し禁止フラグ106によってタスクが追出されることをOSのサービスコール終了まで禁止することができる。
That is, in this embodiment, only the unit processor that has acquired the hardware semaphore obtains the right to execute the task processing while occupying the OS. For this reason, since only one of the unit processors P0 to P3 can shift to the OS, exclusive control for preventing competition between the OSs can be realized. Then, it is possible to prevent problems such as interruption of processing because a predetermined area of the
In the present embodiment, the
さらに、本実施形態では、排他制御の実行中、プロセッサによる割込み処理の実行を禁止する。本実施形態では、割込み処理の実行禁止を割込み制御部11によって行っている。すなわち、割込み制御部11は、単位プロセッサP0〜P3のステータスが書き込まれるステータスレジスタ(図示せず)を備えている。ステータスレジスタのステータスを「割込み否」に設定することにより、割込み制御部11は、所望の単位プロセッサに対する割込み処理を禁止することができる。
Furthermore, in the present embodiment, execution of interrupt processing by the processor is prohibited during execution of exclusive control. In the present embodiment, the interrupt
図3は、本実施形態でいうSMPにおける単位プロセッサの結合を例示した図である。図3(a)、(b)に示したSMPは、いずれも複数の単位プロセッサPuを、メモリを共有するように結合して構成されている。(a)に示した構成は、マルチプロセッサと呼ばれている構成であって、(b)に示した構成はマルチスレッドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演算器を共有している点で単位プロセッサPuは密に結合しているという。なお、本実施形態のプロセッサは、SMPとしてマルチプロセッサ、マルチスレッドプロセッサのいずれを採用しても構成可能である。 FIG. 3 is a diagram illustrating the coupling of unit processors in the SMP referred to in the present embodiment. Each of the SMPs shown in FIGS. 3A and 3B is configured by coupling a plurality of unit processors Pu so as to share a memory. The configuration shown in (a) is a configuration called a multiprocessor, and the configuration shown in (b) is called a multithread processor. The multi-thread processor is said to be tightly coupled to the unit processor Pu in that it shares an arithmetic unit more than the multi-processor. Note that the processor of the present embodiment can be configured by adopting either a multiprocessor or a multithread processor as the SMP.
図4(a)に示すように、SMPは、マルチプロセッサに対応するマルチプロセッサ対応OS401によって複数のユーザタスクt1〜t3を並列に処理する。また、機能分散型プロセッサでは、(b)に示すように、個々のプロセッサがOS部によって複数のタスク(タスク群)を割込みによって処理している(例えばOS部403aが割込ハンドラ402を使ってユーザタスク群t11に含まれる複数のタスクを処理する)。
As shown in FIG. 4A, the SMP processes a plurality of user tasks t1 to t3 in parallel by the multiprocessor-
本実施形態のプロセッサは、複数の単位プロセッサの一部を結合してマルチプロセッサを構成している。このため、プロセッサ内でSMPと機能分散型プロセッサとが混在することになり、SMPはマルチプロセッサ対応OS401によって動作する。機能分散プロセッサは、OS部403a等によって動作する。したがって、本実施形態のプロセッサ上では、複数のOSが動作することになる。プロセッサが複数のOSによって動作する状態を図5に示す。
The processor of this embodiment forms a multiprocessor by combining a part of a plurality of unit processors. For this reason, the SMP and the function distribution type processor coexist in the processor, and the SMP is operated by the
このような本実施形態では、単位プロセッサ0及び単位プロセッサ3が第1オペレーティングシステムであるOS部403a、403cによってタスクを実行する第1プロセッサに相当する。また、SMP5を構成する単位プロセッサ1、単位プロセッサ2が第2オペレーティングシステムであるマルチプロセッサ対応OS401によってタスクを実行する第2プロセッサに相当する。
また、前記したように、本実施形態では、タスク調停部210が、単位プロセッサ0、単位プロセッサ3によって実行されるタスク、単位プロセッサ1、単位プロセッサ2によって実行されるタスクにかかるタスク情報を他のタスクとの間で授受している。
In this embodiment, the unit processor 0 and the
In addition, as described above, in this embodiment, the
次に、本実施形態のプロセッサのタスク調停について説明する。
本実施形態のプロセッサは、タスク間通信によってタスク情報を他のプロセッサと授受し、タスクを調停する。タスク間通信は、一般的にイベントフラグ、セマフォ、メッセージキュー、メールボックス等によって実行される。なお、本実施形態のプロセッサは、上記した手法のうちイベントフラグによってタスク間通信をするものとする。ただし、本実施形態は、このような構成に限定されるものでなく、いずれのタスク間通信の方法を採用しても実現可能である。
Next, task arbitration of the processor of this embodiment will be described.
The processor according to the present embodiment exchanges task information with other processors through inter-task communication, and arbitrates tasks. Communication between tasks is generally executed by an event flag, a semaphore, a message queue, a mailbox or the like. In addition, the processor of this embodiment shall perform communication between tasks by an event flag among the methods mentioned above. However, the present embodiment is not limited to such a configuration, and can be realized by adopting any inter-task communication method.
イベントフラグによるタスク間通信は、タスク情報の送信元となるプロセッサが、処理の要求先となるプロセッサへの命令(コマンド)、要求先プロセッサを特定するためのID情報、命令を実行するためのデータ等をタスク情報としてインタフェースエリアに書き込みを行う事で送信する。一方、タスク情報を受け取ったプロセッサは、コマンドの実行結果を示すデータ、終了コードをタスク情報としてインタフェースエリアに書き込みを行う事で返信する。なお、要求元のプロセッサは、要求先のプロセッサが書き込みを行うインタフェースエリアの状態フラグが終了状態になるまでポーリング等によって待機する。 Inter-task communication by event flag is performed by a processor that is a task information transmission source, an instruction (command) to a processor that is a processing request destination, ID information for specifying the request destination processor, and data for executing the instruction. Etc. as task information and sent to the interface area. On the other hand, the processor that has received the task information returns it by writing the data indicating the execution result of the command and the end code as task information to the interface area. The request source processor waits by polling or the like until the status flag of the interface area to which the request destination processor performs writing ends.
本実施形態では、OSの識別情報を付与することによってタスク情報が授受されるタスクの範囲を設定している。すなわち、タスク間通信は、従来よりサービスコール内でタスクのIDを指定して行われている。本実施形態は、タスクのIDを拡張し、タスクに加えてタスクを処理するプロセッサが使用するOSをも指定するIDを設定する。IDを受け取ったプロセッサ内のOS部は、IDに基づいて他のOSを使用するプロセッサ宛に情報を送信すると判断した場合にのみインタフェースエリアに情報を書込み、プロセッサ割込みを発生させる。 In the present embodiment, the range of tasks to which task information is exchanged is set by adding OS identification information. That is, inter-task communication is conventionally performed by specifying a task ID in a service call. In this embodiment, the ID of the task is extended, and an ID that also specifies the OS used by the processor that processes the task is set in addition to the task. The OS unit in the processor that has received the ID writes information in the interface area and generates a processor interrupt only when it is determined to transmit information to a processor that uses another OS based on the ID.
このようなIDの設定は、例えば、IDを上位16ビット、下位16ビットに分け、下位16ビットによって従来通りタスクを識別する番号を表す。また、上位16ビットによってクラス名(タスクを処理するプロセッサが使用するOSの識別番号)を表すことによって実現可能である。
OSの識別情報は、例えば、OS部403a、403c、マルチプロセッサ対応OS401固有の数字によって表すことができる。本実施形態では、OS部403aに「1」、OS部403cに「3」、マルチプロセッサ対応OS401に「2」の数字を割り当てる。なお、OS識別番号の定義は、システム初期のパラメータの設定によって可能である。パラメータの設定は、例えば、ブート処理によって可能である。
Such ID setting represents, for example, a number for dividing a ID into upper 16 bits and lower 16 bits, and identifying a task as usual by the lower 16 bits. Further, it can be realized by expressing the class name (the identification number of the OS used by the processor that processes the task) by the upper 16 bits.
The OS identification information can be represented by numbers unique to the
クラス名に識別情報「1」が付与されていた場合、タスク情報は、OS部403aを使って動作する単位プロセッサP0で実行されるタスク間で通信される。また、クラス名に識別情報「2」が付与されていた場合、タスク情報は、マルチプロセッサ対応OS401を使って動作する単位プロセッサP1、P2で実行されるタスク間で通信される。さらに、クラス名に識別情報「3」が付与されていた場合、タスク情報は、OS部403cを使って動作する単位プロセッサP3で実行されるタスク間で通信される。
When the identification information “1” is added to the class name, the task information is communicated between tasks executed by the unit processor P0 that operates using the
このような識別情報の指定は、タスクの種別によって決定する。すなわち、本実施形態のプロセッサで実行されるタスクには、プロセッサ上で動作するOS以外のOSからメッセージを受信できないタスクと、他のOSからのメッセージを受信できるタスクとがある。他のOSからメッセージを受信可能なタスクをOS間ネットワークタスク、他のOSからメッセージを受信できるタスクをOS内ローカルタスクと記す。 The designation of such identification information is determined by the type of task. That is, the tasks executed by the processor of this embodiment include a task that cannot receive a message from an OS other than the OS that runs on the processor, and a task that can receive a message from another OS. A task that can receive a message from another OS is referred to as an inter-OS network task, and a task that can receive a message from another OS is referred to as an intra-OS local task.
OS間ネットワークタスクは、SMP、機能分散型プロセッサにおいていずれの単位プロセッサとも通信可能である。OS内ローカルタスクは、SMPにおいて単位プロセッサP1、P2間でのみ通信可能であって、機能分散型プロセッサにおいては各プロセッサで実行されるタスク同士でのみ通信ができる。
上記した条件の下、本実施形態は、OS間ネットワークタスクのタスク情報に対し、通信したいプロセッサが使用するOSを示す任意の識別情報を付与する。また、OS内ローカルタスクのタスク情報には、通信可能なプロセッサが使用するOSを示す識別情報を付与し、通信の範囲を指定する。
The inter-OS network task can communicate with any unit processor in an SMP or function distributed processor. The local task in the OS can be communicated only between the unit processors P1 and P2 in SMP, and in the function distributed processor, communication can be performed only between tasks executed by each processor.
Under the above-described conditions, in the present embodiment, arbitrary identification information indicating the OS used by the processor to be communicated is added to the task information of the inter-OS network task. Further, identification information indicating an OS used by a communicable processor is assigned to the task information of the local task in the OS, and a communication range is designated.
図6は、本実施形態のタスク情報が授受されるインターフェイスエリア220を説明するための図である。図示したエリアには、状態フラグを書き込むための状態フラグエリア601、コマンドを書き込むためのコマンドエリア602、通信が終了したことを示す終了情報エリア606がある。このうち、状態フラグエリア601が、インターフェイスエリア220を表している。状態フラグエリアに設定される内容として、例えば、次のものが挙げられる。
FIG. 6 is a diagram for explaining an
・アイドリング中(IDLE中) 初期状態を示すものであって、要求元タスクが終了状態を認識したとき設定する。
・要求中:処理の要求元タスク(OS)が処理を要求時に設定する。
・実行中:処理の実行先タスク(OS)が処理を受付け時に設定する。
・終了状態:処理を実行したタスク(OS)が処理を終了時に設定する。
• During idling (IDLE) Indicates the initial state and is set when the requesting task recognizes the end state.
Requesting: The requesting task (OS) of the process sets the process when requested.
-During execution: Set when a process execution destination task (OS) receives a process.
End state: Set when the task (OS) that executed the process ends.
コマンドエリア602には、コマンドIDが書き込まれるエリア603、リソースIDが書き込まれるエリア604、データエリア605がある。コマンドIDとは、例えば、書込み要求や読み込み要求等をコード化して示す情報である。リソースIDは、コマンドIDが何の要求のIDかを特定する情報であって、例えば、イベントフラグの発生、セマフォの取得、メッセージキュー等をコード化して示している。また、データエリア605は、コマンドに必要なデータを補足するためのエリアであって、例えば、書込みエリアポインタや書込みエリアポインタが書き込まれる。
The
終了情報エリア606は、実行先タスク(OS)でコマンド実行した際の情報を示すためのエリアであって、例えば、正常終了したことやエラーコード等が書き込まれる。
以上の構成により、本実施形態のタスク調停部210、インターフェイスエリア220は、OS部403a、403c、マルチプロセッサ対応OS401によって実行されるタスク間でタスク情報を授受することができる。また、タスク調停部210、インターフェイスエリア220は、OS部403a、403c間、さらにはOS部403a、403cによって実行されるタスクとマルチプロセッサ対応OS401によって実行されるタスクとの間でタスク情報を授受することができる。
The
With the above configuration, the
また、本実施形態は、1、2、3の識別情報を付すことに限定されるものでない。他の識別情報として、例えば、識別情報0を設定してもよい。識別情報0は、いずれのタスクのタスク情報にあっても、タスクを実行した単位プロセッサが使用するOS内で通信することを示すものである。このように構成すれば、単位プロセッサは、タスク情報に付与された識別情報から指定されたOSや単位プロセッサP0〜P3を判別することなく、短時間のうちに通信の範囲を判定することができる。 Further, the present embodiment is not limited to attaching identification information of 1, 2, and 3. As other identification information, for example, identification information 0 may be set. The identification information 0 indicates that communication is performed within the OS used by the unit processor that executed the task, regardless of the task information of any task. With this configuration, the unit processor can determine the communication range in a short time without determining the OS or the unit processors P0 to P3 specified from the identification information given to the task information. .
図7は、要求先の単位プロセッサに対する割込みについて説明するための図である。図7において、タスク間通信によってタスク情報を送信する(処理を要求する)単位プロセッサを要求元プロセッサと記す。また、処理を要求された単位プロセッサを要求先プロセッサと記す。
要求元プロセッサは、インターフェイスエリア220にタスク情報を書き込むことによってタスク通信をする。そして、要求先プロセッサに対する割込み処理を実行する。要求先プロセッサは、割込み要求を受け付けるか否かを判定し、受け付ける場合には現在実行されているタスクを一時的に終了する。そして、タスクを終了したことを示すタスク情報をインターフェイスエリアに書き込む。
FIG. 7 is a diagram for explaining an interrupt to the requested unit processor. In FIG. 7, a unit processor that transmits task information (requests processing) by inter-task communication is referred to as a requesting processor. A unit processor that is requested to process is referred to as a requested processor.
The requesting processor performs task communication by writing task information in the
図8、図9は、以上述べた本実施形態のプロセッサの動作のうち、タスク間通信にかかる動作を説明するためのフローチャートである。このうち、図8は、要求元プロセッサの動作を示したフローチャートである。また、図9は、要求先のプロセッサの動作を説明するためのフローチャートである。
図8に示すように、要求元プロセッサは、要求先プロセッサで行われているタスクに対する要求をインターフェイスエリア220に設定する。設定は、インターフェイスエリア220にタスク情報を書き込むことによって行われる(S701)。そして、要求先のプロセッサに割込み要求をし(S702)、インターフェイスエリア220に書き込まれているタスク情報がタスクの終了を示すものになったか否かをポーリングして判断する(S703)。
FIG. 8 and FIG. 9 are flowcharts for explaining operations related to inter-task communication among the operations of the processor of the present embodiment described above. Among these, FIG. 8 is a flowchart showing the operation of the requesting processor. FIG. 9 is a flowchart for explaining the operation of the requested processor.
As shown in FIG. 8, the requesting processor sets a request for a task being performed by the requesting processor in the
タスク情報が終了を示す状態になったと判断された場合(S703:Yes)、要求元プロセッサは、インターフェイスエリア220の終了情報エリアに自身のタスク通信が終了したことを示すタスク情報を書き込む(S704)。
なお、要求元プロセッサは、インターフェイスエリア220に設定した要求が自装置のOSに対応するタスクに宛てたものである場合、ローカルタスク宛の通信として扱うために割込みが発生しない。
If it is determined that the task information is in a state indicating termination (S703: Yes), the requesting processor writes task information indicating that its own task communication is terminated in the termination information area of the interface area 220 (S704). .
If the request set in the
一方、要求先プロセッサは、割込みの要求を受けた場合、図9に 示したように、割込みから復帰時のために、割込み発生時のレジスタを退避させる(S901)。そして、タスク情報に含まれるコマンドやタスクID等をチェックし(S902)この結果、適正に受け付けられないものであった場合(S902:NG)、インターフェイスエリア220にエラーが発生したことを書き込む(S909)。そして、退避したレジスタのデータを、割込みが発生する以前の状態に復元し(S910)、割込み発生以前に実行されていたタスクの処理を続行する(S911)。 On the other hand, when receiving the interrupt request, the requested processor saves the register at the time of occurrence of the interrupt for returning from the interrupt as shown in FIG. 9 (S901). Then, the command, task ID, etc. included in the task information are checked (S902). As a result, if the command is not properly accepted (S902: NG), the fact that an error has occurred is written in the interface area 220 (S909). ). Then, the saved register data is restored to the state before the occurrence of the interrupt (S910), and the processing of the task executed before the occurrence of the interrupt is continued (S911).
また、ステップS902において、コマンドやタスクID等が適正に受け付けられたと判断された場合(S902:OK)、要求先プロセッサは、要求されたタスクをコマンドキュー及びREADYキューに登録する(S903)。そして、タスクスイッチを発生するか否かを判定する判定処理を実行する(S904)。
ステップS905の判定の結果、タスクスイッチする場合(S905:Yes)、割込み発生前に実行されていたタスクのコンテキストを退避させる(S912)。また、タスクの終了が正常に終了したことをインターフェイスエリア220に書き込むことによって設定する(S913)。さらに、READYキューに登録したタスクのコンテキストを取り出し(S914)、タスクコンテキストを切替える(S915)。
If it is determined in step S902 that the command, task ID, and the like have been properly received (S902: OK), the requested processor registers the requested task in the command queue and the READY queue (S903). Then, a determination process for determining whether or not to generate a task switch is executed (S904).
As a result of the determination in step S905, when task switching is performed (S905: Yes), the context of the task executed before the occurrence of the interrupt is saved (S912). In addition, it is set by writing in the
このような本実施形態によれば、SMP及び機能分散プロセッサを任意に組み合わせて1つのマルチプロセッサを構成することができる。そして、この際、SMP、機能分散型プロセッサを、それぞれ従来から使用されていたOSによって動作させることができる。このため、SMP、機能分散プロセッサを組み合わせたマルチプロセッサに特化した新たなアプリケーションを構築する必要がない。したがって、本実施形態は、プロセッサの信頼性を高めると共に、開発にかかるコストを抑えてプロセッサの普及に寄与することができる。 According to the present embodiment as described above, one multiprocessor can be configured by arbitrarily combining SMPs and function distributed processors. At this time, the SMP and the function-distributed processor can each be operated by an OS that has been conventionally used. For this reason, it is not necessary to construct a new application specialized for a multiprocessor combining an SMP and a function distributed processor. Therefore, this embodiment can contribute to the spread of processors by improving the reliability of the processors and suppressing the development cost.
5 SMP 11 割込み制御部、12 メモリ制御部、13 ハードウェアセマフォ部、30 メモリ、210 タスク調停部、220 インターフェイスエリア、401 マルチプロセッサ対応OS、403a,403b,403c OS部、601 状態フラグエリア、602 コマンドエリア、603、604、605 エリア、606 終了情報エリア、P0,P1,P2,P3 単位プロセッサ
5
Claims (6)
前記第1プロセッサによって実行されるタスク、前記第2プロセッサによって実行されるタスクにかかるタスク情報を他のタスクとの間で授受するタスク情報通信手段と、
を備えることを特徴とするプロセッサ。 A first processor executing a task with a first operating system and a second processor executing a task with a second operating system;
Task information communication means for exchanging task information related to a task executed by the first processor and a task executed by the second processor with another task;
A processor comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005369442A JP2007172311A (en) | 2005-12-22 | 2005-12-22 | Processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005369442A JP2007172311A (en) | 2005-12-22 | 2005-12-22 | Processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007172311A true JP2007172311A (en) | 2007-07-05 |
Family
ID=38298792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005369442A Pending JP2007172311A (en) | 2005-12-22 | 2005-12-22 | Processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007172311A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163527A (en) * | 2008-01-08 | 2009-07-23 | Hitachi Ltd | Information processing system for distributing load between operating systems |
-
2005
- 2005-12-22 JP JP2005369442A patent/JP2007172311A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009163527A (en) * | 2008-01-08 | 2009-07-23 | Hitachi Ltd | Information processing system for distributing load between operating systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3976065B2 (en) | Multiprocessor system and program for causing computer to execute interrupt control method of multiprocessor system | |
US6938253B2 (en) | Multiprocessor communication system and method | |
KR100588790B1 (en) | Method and apparatus for acting on subsequent command processing in data processor | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US20030086300A1 (en) | FPGA coprocessing system | |
US20070074214A1 (en) | Event processing method in a computer system | |
JP2006243865A (en) | Processor and information processing method | |
WO2010067492A1 (en) | Multiprocessor system and multiprocessor exclusive control adjustment method | |
KR20100053593A (en) | Mechanism for broadcasting system management interrupts to other processors in a computer system | |
JP2007219816A (en) | Multiprocessor system | |
JP4033215B2 (en) | Multiprocessor system and program for causing computer to execute control method of multiprocessor system | |
US20180267829A1 (en) | Method for configuring an it system, corresponding computer program and it system | |
JP2007172311A (en) | Processor | |
JP6106986B2 (en) | Arithmetic processing device, information processing device and interrupt control method | |
JP6757489B2 (en) | Multimodal interface | |
US7702836B2 (en) | Parallel processing device and exclusive control method | |
US7043565B1 (en) | System and method for transferring data over an external transmission medium | |
JP2007172145A (en) | Processor, and program for making computer execute boot processing method | |
JP5017784B2 (en) | Processor and interrupt processing control method applied to the processor | |
JP3661478B2 (en) | Interrupt processing apparatus and interrupt notification method | |
JP4389797B2 (en) | Processor and information processing method | |
CN115794324A (en) | Task processing method and device and storage medium | |
JP2009217375A (en) | Inter-multiprocessor communication method | |
JP2001337839A (en) | Multifunction card |