JP2007219816A - Multiprocessor system - Google Patents
Multiprocessor system Download PDFInfo
- Publication number
- JP2007219816A JP2007219816A JP2006039348A JP2006039348A JP2007219816A JP 2007219816 A JP2007219816 A JP 2007219816A JP 2006039348 A JP2006039348 A JP 2006039348A JP 2006039348 A JP2006039348 A JP 2006039348A JP 2007219816 A JP2007219816 A JP 2007219816A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- slave
- master
- master processor
- multiprocessor system
- 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
- 238000012545 processing Methods 0.000 claims abstract description 99
- 230000006870 function Effects 0.000 claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 3
- 230000004913 activation Effects 0.000 claims description 28
- 230000026676 system process Effects 0.000 claims 1
- 239000002674 ointment Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 29
- 238000001994 activation Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
本発明は、マルチプロセッサシステムに関し、特に複数のプロセッサのうちの1個がマスタプロセッサとして、残りのプロセッサがスレーブプロセッサとして動作するマルチプロセッサシステムに関する。 The present invention relates to a multiprocessor system, and more particularly to a multiprocessor system in which one of a plurality of processors operates as a master processor and the remaining processors operate as slave processors.
コンピュータシステムにおいて、複数のプロセッサを設けて並行して処理を進めることにより、処理速度を向上することが従来から行われている。 2. Description of the Related Art Conventionally, in a computer system, a processing speed is improved by providing a plurality of processors and proceeding in parallel.
図1の(A)は、通常のCPUなどで構成される主(マスタ)プロセッサ11と、マスタプロセッサ11の制御により動作するコプロセッサ12A〜12Cと、を有するコプロセッサ方式のマルチプロセッサの概略構成図である。マスタプロセッサ11のみが主メモリ13に記憶されたオペレーティングシステム(OS)の処理を実行し、コプロセッサ12A〜12Cは浮動小数点演算や入出力処理などのマスタプロセッサ11で行うのが適当でないそれぞれの特定の処理を実行する。マスタプロセッサ11は、コプロセッサ12A〜12Cのいずれかに処理を行わせる時には、コマンド/データ転送バス14を通じて対応するコプロセッサにその処理の実行を指定するコマンドを送出する。各コプロセッサは、コマンド/データ転送バス14上に送出されたコマンドを解読して、必要なデータを受信する。図1の(A)では、コプロセッサ12A〜12Cは、直接主メモリ13にはアクセスできないが、入出力処理などを行うコプロセッサは、マスタプロセッサと同じバスを介して直接主メモリ13にアクセスできるように構成されている。
FIG. 1A shows a schematic configuration of a coprocessor type multiprocessor having a main (master)
各コプロセッサが行う処理は固定されており、各コプロセッサは特定の処理を高速に実行するように構成されている。例えば、浮動小数点演算を行うコプロセッサは浮動小数点演算処理のみを行い、入出力処理を行うコプロセッサは入出力処理のみを行う。コプロセッサは、処理量は多いが特定の処理を繰り返す処理に使用されるので、処理シーケンスなどはハードウエアで規定されているものが多い。しかし、プログラムを必要とする複雑な処理を実行するコプロセッサが用いられる場合には、各コプロセッサ内に、プログラムメモリを設ける場合もある。この場合、プログラムメモリは、ROMなどの不揮発性メモリを用いることが多いが、SRAMやDRAMなどの揮発性メモリを用い、システムの立ち上がり時に、DMA動作により主メモリ13からプログラムPGをロードする場合もある。主メモリ13からコプロセッサへのプログラムPGのロードは、マスタプロセッサ及びコマンド/データバス14を介して行う場合もあるが、コプロセッサが直接主メモリ13に接続されている場合には直接ロードされる。いずれにしろ、システムが立ち上がった後は、コプロセッサのプログラムメモリに記憶されたプログラムが書き換えられることはない。
The processing performed by each coprocessor is fixed, and each coprocessor is configured to execute specific processing at high speed. For example, a coprocessor that performs floating point arithmetic performs only floating point arithmetic processing, and a coprocessor that performs input / output processing performs only input / output processing. A coprocessor has a large amount of processing, but is used for a process that repeats a specific process, so that a processing sequence is often defined by hardware. However, when a coprocessor that executes a complicated process that requires a program is used, a program memory may be provided in each coprocessor. In this case, a non-volatile memory such as a ROM is often used as the program memory. However, a volatile memory such as an SRAM or a DRAM may be used, and the program PG may be loaded from the
コマンドで指定された処理が終了したコプロセッサは、マスタプロセッサ11に処理の終了を報告する。この処理の終了報告は、コマンド/データバス14を介して行われる場合もあるが、図示のように割込み処理によってマスタプロセッサ11に処理終了を報告する場合もある。
The coprocessor that has completed the process specified by the command reports the end of the process to the
図1の(A)に示した従来例のように、特定の処理を行うように特化したコプロセッサを組み合わせるのではなく、複数個の同じプロセッサと共有メモリを組み合わせたSMP(Symmetric Multi-Processor)方式のマルチプロセッサシステムも提案されている。図1の(B)は、SMP方式のマルチプロセッサシステムの概略構成を示す図である。 As in the conventional example shown in FIG. 1A, a SMP (Symmetric Multi-Processor) in which a plurality of the same processors and a shared memory are combined, instead of combining coprocessors specialized to perform specific processing. ) Type multiprocessor system has also been proposed. FIG. 1B is a diagram showing a schematic configuration of an SMP multiprocessor system.
すべてのプロセッサ21A〜21Dは、等価な関係にあり、共有メモリ23に共有バス及びバス調停回路22を介して接続されている。プロセッサ21A〜21Dは、それぞれ、共有メモリ23に配置されるOSの下で、あらかじめ各プロセッサでの実行が決められているプログラムPG0〜PG3を実行する。各プロセッサでのOS、プログラム実行時に生じる共有メモリ23へのアクセスの競合は、共有バス及びバス調停回路22により調停され、プロセッサ間の同期や交信は共有メモリ23内のOS領域の一部またはあらかじめ定められた共有領域を通じて行う。また、個々のプロセッサでの割込み機能は、それぞれに所属する入出力機器などの制御に用いられる。従って、個々のプロセッサのプログラム起動は、入出力機器からの割込み、及び共有メモリ23内のOS領域の一部またはあらかじめ定められた共有領域でのセマフォにより行われる。
All the processors 21 </ b> A to 21 </ b> D have an equivalent relationship, and are connected to the shared
なお、図1の(B)の構成で、各プロセッサが実行するプログラムを固定せずに、付加状況に応じて動的にタスクを割当てる場合もある。更に、図1の(B)のマルチプロセッサ構成に、図1の(A)のコプロセッサ方式の構成を加えた構成も可能である。 In the configuration shown in FIG. 1B, there is a case where tasks are dynamically allocated according to the addition situation without fixing the program executed by each processor. Further, a configuration in which the configuration of the coprocessor system of FIG. 1A is added to the multiprocessor configuration of FIG.
本発明は、各プロセッサの実行する処理内容が固定されない、図1の(B)に示すような構成を対象とする。 The present invention is directed to a configuration as shown in FIG. 1B in which the processing content executed by each processor is not fixed.
従来のマルチプロセッサシステムでは、複数のプロセッサへの処理(スレッド(小プログラム))の割当てにはオペレーティングシステム(OS)が強く関与している。通常のコンピュータシステムで広く使用される標準OSは、マルチプロセッサシステムには対応していない非マルチ対応である。そのため、図1の(B)に示した従来のマルチプロセッサシステムでは、マルチ専用のOSを使用する必要があった。しかし、マルチ専用OSは、複雑で大規模であるため、民生用携帯情報機器などに装備するのに適していない。 In a conventional multiprocessor system, an operating system (OS) is strongly involved in assigning processes (threads (small programs)) to a plurality of processors. A standard OS widely used in ordinary computer systems is non-multi compatible that does not support multi-processor systems. Therefore, in the conventional multiprocessor system shown in FIG. 1B, it is necessary to use a multi-dedicated OS. However, since the multi-dedicated OS is complicated and large-scale, it is not suitable for mounting on consumer portable information devices.
その上、図1の(B)の従来のマルチプロセッサシステムでは、すべてのプロセッサがOSの処理を実行する必要があるため、メモリ規模も増大すると共に、プログラムが複数のプロセッサに振り分けられて実行されることを想定したプログラミングも必要となり、ソフトウエア生産性が低いという問題があった。 In addition, in the conventional multiprocessor system of FIG. 1B, since all the processors need to execute the processing of the OS, the memory size increases and the program is distributed to a plurality of processors and executed. Programming is also required, and software productivity is low.
また、マルチ対応OSは標準OSとは互換性がないため、標準OS用の既存のソフトウエアが使用できないといった問題もあった。 In addition, since the multi-compatible OS is not compatible with the standard OS, there is a problem in that existing software for the standard OS cannot be used.
本発明は、上記問題点に鑑みてなされたものであり、民生用携帯情報機器に向けて、現在広く普及している簡易な標準OSによりプロセッサ間の接続制御を行えるようにしたマルチプロセッサシステムの実現を目的とする。 The present invention has been made in view of the above problems, and is directed to a multiprocessor system in which connection control between processors can be performed for a portable information device for consumer use by a simple standard OS currently widely used. The purpose is realization.
本発明のマルチプロセッサシステムは、図1の(B)に示したような複数のプロセッサが共有メモリにアクセスし、各プロセッサは共有メモリに格納されたOS及びプログラムをロードして動作を行い、プロセッサの処理内容が固定されないマルチプロセッサシステムである。そして、本発明のマルチプロセッサシステムは、上記目的を実現するため、複数のプロセッサのうちの1つがマスタプロセッサとして動作し、他のプロセッサはスレーブプロセッサとして動作し、マスタプロセッサのみがOSの処理を実行し、マスタプロセッサは関数によりスレーブプロセッサへのスレッド処理の割当てを行い、マスタプロセッサとスレーブプロセッサ間の起動要求及び処理終了の通知は各プロセッサの割込み機能を利用して行う。これにより、従来の標準OSがそのまま使用できる。 In the multiprocessor system of the present invention, a plurality of processors as shown in FIG. 1B access a shared memory, and each processor loads an OS and a program stored in the shared memory to perform an operation. This is a multiprocessor system whose processing content is not fixed. In order to achieve the above object, the multiprocessor system of the present invention has one of a plurality of processors operating as a master processor, the other processors operating as slave processors, and only the master processor executes OS processing. Then, the master processor assigns thread processing to the slave processor by a function, and the activation request between the master processor and the slave processor and the notification of the end of processing are performed using the interrupt function of each processor. Thereby, the conventional standard OS can be used as it is.
すなわち、本発明のマルチプロセッサシステムは、割込み機能を有するマスタプロセッサと、割込み機能を有する少なくとも1個のスレーブプロセッサと、共有メモリと、前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが、前記共有メモリにアクセスするための共有バスと、を備えるマルチプロセッサシステムであって、前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが処理を実行するためのプログラムは、前記共有メモリに記憶されており、当該マルチプロセッサシステムのオペレーティングシステム処理は、前記マスタプロセッサにより実行され、前記マスタプロセッサは、前記少なくとも1個のスレーブプロセッサで実行するスレッド処理プログラムを示すデータを含むスレッド処理関数を生成して、前記スレッド処理関数の起動要求を前記少なくとも1個のスレーブプロセッサのいずれかに送信し、前記少なくとも1個のスレーブプロセッサは、前記起動要求を受信すると、前記共有メモリに記憶された前記スレッド処理プログラムをロードして処理を行い、前記マスタプロセッサに前記スレッド処理の終了を通知し、前記マスタプロセッサから前記少なくとも1個のスレーブプロセッサへの前記起動要求の送信、及び前記少なくとも1個のスレーブプロセッサから前記マスタプロセッサへの前記スレッド処理の終了通知を行うプロセッサ間接続回路と、前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが、前記共有メモリにアクセスする時の調停を行うバス調停回路と、を更に備え、前記プロセッサ間接続回路から前記少なくとも1個のスレーブプロセッサへの前記スレッド処理関数の起動要求の送信通知は、前記少なくとも1個のスレーブプロセッサの前記割込み機能を利用して行われ、前記プロセッサ間接続回路から前記マスタプロセッサへの前記スレッド処理の前記終了通知は、前記マスタプロセッサの前記割込み機能を利用して行われることを特徴とする。 That is, the multiprocessor system of the present invention includes a master processor having an interrupt function, at least one slave processor having an interrupt function, a shared memory, the master processor and the at least one slave processor, the shared memory A shared bus for accessing the computer, and a program for executing processing by the master processor and the at least one slave processor is stored in the shared memory, The operating system processing of the processor system is executed by the master processor, and the master processor has a thread processing function including data indicating a thread processing program to be executed by the at least one slave processor. The thread processing function activation request is transmitted to any one of the at least one slave processor. When the at least one slave processor receives the activation request, the thread processing function activation request is stored in the shared memory. Loads a thread processing program to perform processing, notifies the master processor of the end of the thread processing, transmits the start request from the master processor to the at least one slave processor, and the at least one slave An inter-processor connection circuit for notifying the completion of the thread processing from a processor to the master processor, and a bus arbitration circuit for arbitrating when the master processor and the at least one slave processor access the shared memory; And further comprising an interprocessor connection The thread processing function activation request transmission notification from the path to the at least one slave processor is performed using the interrupt function of the at least one slave processor, and the master processor The completion notification of the thread processing is performed using the interrupt function of the master processor.
本発明によれば、標準OSを使用してマルチプロセッサシステムが構成できるようになる。 According to the present invention, a multiprocessor system can be configured using a standard OS.
少なくとも1個のスレーブプロセッサは、スレッド処理が終了した後、すなわち処理を行わない時にはスリープ状態になることにより、消費電力を低減できる。さらに、マスタプロセッサにおいても、スレーブプロセッサへのスレッド割当て後にスレーブプロセッサでのスレッド処理待ち、すなわち処理を行わない時にはスリープ状態になることにより、消費電力をより低減できる。 At least one slave processor can reduce power consumption by entering a sleep state after thread processing is completed, that is, when processing is not performed. Further, even in the master processor, the power consumption can be further reduced by waiting for thread processing in the slave processor after assigning the thread to the slave processor, that is, in the sleep state when no processing is performed.
各プロセッサの処理内容は固定されず、共有メモリに格納されたOS及びプログラムにより決定されるので、マスタプロセッサと少なくとも1個のスレーブプロセッサは、同じ構成を有することも、異なる構成を有することも可能であるが、実際にシステムを構成する上では、同じ構成を有することが望ましい。 Since the processing contents of each processor are not fixed and are determined by the OS and the program stored in the shared memory, the master processor and at least one slave processor can have the same configuration or different configurations. However, in actually configuring the system, it is desirable to have the same configuration.
高集積化が進められているので、マスタプロセッサと少なくとも1個のスレーブプロセッサを1チップに設けてマルチコア構成にすることも可能であり、更に共有メモリを同じチップに設けることも可能である。 Since high integration is being promoted, it is possible to provide a master processor and at least one slave processor on a single chip to have a multi-core configuration, and it is also possible to provide a shared memory on the same chip.
本発明によれば、マルチ機能を有さない標準OSを使用してマルチプロセッサシステムが実現でき、標準OSとの互換性が得られると共に、マスタプロセッサにおける管理ソフトウエアだけで柔軟性の高いスケジューリング機能を実現できるので、ソフトウエア生産性が低下しない。 According to the present invention, a multiprocessor system can be realized by using a standard OS that does not have a multi-function, and compatibility with the standard OS can be obtained, and a highly flexible scheduling function can be achieved only by management software in the master processor. Therefore, software productivity does not decrease.
図2は、本発明の実施例のマルチプロセッサシステムの全体構成を示すブロック図である。図示のように、本システムは、5個のプロセッサ31A〜31Eと、プロセッサ間接続回路32と、バス調停回路33と、共有バス34と、共有メモリ35と、を有する。各プロセッサは、個別にキャッシュメモリなどを有しているが、ここでは図示を省略している。上記の構成要素のうち、共有メモリ35を除く部分は、1個のチップに実装されており、マルチコア方式のチップとなっている。なお、共有メモリ35を同一チップ内に設けることも可能であり、逆に各プロセッサ31A〜31E、プロセッサ接続回路32、バス調停回路33の任意の組合せを複数のチップに実装することも可能である。
FIG. 2 is a block diagram showing the overall configuration of the multiprocessor system according to the embodiment of the present invention. As illustrated, the system includes five
プロセッサ31A〜31Eは、すべて同じ構成で、通常のマイクロプロセッサと同様の構成を有しており、共有バス34を介して共有メモリ35と接続するバス(アドレスバス及びデータバス)0〜4と、これらのバスが共有バス34の占有権を獲得するための信号であるバス制御0〜4(breq0〜4,back0〜4)と、割込み信号(ireq0〜4,iack0〜4)と、周辺機器などとの接続バス(ibus0〜4)と、を有する。
The
プロセッサ31A〜31Eのうちの1個(ここではプロセッサ31A)が、マスタプロセッサとして動作し、他のプロセッサ(ここではプロセッサ31B〜31E)はスレーブプロセッサとして動作する。マスタプロセッサ31Aは、プロセッサ間接続回路32を介して、スレーブプロセッサ群31B〜31Eへのスレッド(小プログラム)処理の起動を行う。スレーブプロセッサ群31B〜31Eは、スレッド処理が終了すると、プロセッサ間接続回路32を介して、マスタプロセッサ31Aに対して該当スレッドの終了通知を行う。この間、プロセッサ31A〜31Eのうち動作中のものは、バス調停回路33の調停に基づいて、共有バス34を介して共有メモリ35へのアクセスを行う。同時に複数のスレーブプロセッサに対してスレッド処理を割当てることができるが、説明を簡単にするために、以下スレーブプロセッサ31Bに対してスレッド処理が割当てられるとして説明する。
One of the
マスタプロセッサ31Aは、接続バスibus0を介して所望のデータをプロセッサ間接続回路32に送出し、プロセッサ間接続回路32はこのデータを割込み信号ireq1〜4(ここではireq1)に変換して、対応するスレーブプロセッサ31Bに起動をかける。この割込み信号を受信したスレーブプロセッサ31Bは、割込み信号応答信号iack1により、マスタプロセッサ31Aからの起動の受信を、プロセッサ間接続回路32を介してマスタプロセッサ31Aに通知する。次に、スレーブプロセッサ31Bは、割込み処理を開始し、実行すべきスレッド処理に関する情報(プログラム、データ)を共有メモリ35上の所定のアドレスから読み出し、これを使用して割当てられたスレッド処理を実行する。
The
次に、スレーブプロセッサ31Bがスレッド処理の実行を終了した場合、スレーブプロセッサ31Bは、接続バスibus1を介して一定のデータをプロセッサ間接続回路32に送出し、プロセッサ間接続回路32はこのデータを割込み信号ireq0に変換して、マスタプロセッサ31Aに割込みをかける。この割込み信号を受信したマスタプロセッサ31Aは、割込み(受信応答)信号iack0により、マスタプロセッサ31Aにおける終了受信をプロセッサ間接続回路32を介してスレーブプロセッサ31Bに通知する。次に、マスタプロセッサ31Aは、終了処理、例えば、次のスレッド処理の起動などを行う。ここではスレーブプロセッサ31Bにスレッド処理を割当てる場合を例として説明したが、他のスレーブプロセッサ31C〜31Eにスレッド処理を割当てる場合も、それぞれのスレーブプロセッサが有する接続バスibus2〜4を使用して同様の処理を行う。
Next, when the
この間、マスタプロセッサ31A及びスレーブプロセッサ31B〜31Eは、待機中のものを除いて、バス制御信号0〜4(breq0〜4,back0〜4)により、バス調停回路34を介して、共有バス占有権の調停を受けて、バス0〜4を通じて共有バス34に接続され、共有メモリ35を必要に応じて順次アクセスする。
During this time, the
図3は、実施例におけるマスタプロセッサ31Aの構成を示す図である。図示のように、マスタプロセッサ31Aは、演算ユニット41と、アドレス変換ユニット42と、キャッシュメモリ43と、メモリ・インターフェース44と、以上の構成要素を制御する制御ユニット45と、を有する。制御ユニット45の制御に基づき、演算ユニット41内にあるプログラムカウンタにより実行すべき命令語のアドレスがアドレス変換ユニット42に送出されて物理アドレスに変換される。この物理アドレスに対応する命令語がキャッシュメモリ43内にあれば、命令語はそこから読み出され、演算ユニット41のデータポート及び命令ポートを経由して、制御ユニット45内の命令レジスタに記憶される。この命令レジスタの内容に応じて、制御ユニット45は、演算ユニット41などの構成要素を制御する。この過程で、キャッシュメモリに該当する命令語が存在しない場合には、メモリ・インターフェース44を介して、アドレスバスにより共有メモリ35をアクセスし、データバスを通じてこの命令語を含む部分をキャッシュメモリ43にロードする。この場合、バス制御0信号により、共有メモリ35に接続された共有バス34のバス占有権を確保した上でロードを行う。
FIG. 3 is a diagram illustrating the configuration of the
また、演算ユニット41からの周辺バスibus0は、スレーブプロセッサ31B〜31Eの起動及び割当てたスレッドの終了のためのデータ設定に使用される。
Further, the peripheral bus ibus0 from the
また、マスタプロセッサ31Aにおける割込み端子は、割込み信号0、割込み信号Nという具合に、複数の外部機器からの割込みを受け付けられるように複数存在するが、ここで示した割込み信号0は、スレーブプロセッサ31B〜31Eからのスレッド処理の終了報告を受けるために使用される。他の割込み信号Nは、例えば、図1の(A)に示したような接続されるコプロセッサ用に使用することが可能である。
In addition, there are a plurality of interrupt terminals in the
図4は、実施例におけるスレーブプロセッサ(B)31Bの構成を示す図であり、他のスレーブプロセッサ31C〜31Eも同様の構成を有し、その構成は図3に示したマスタプロセッサ31Aの構成とも同じである。
FIG. 4 is a diagram showing the configuration of the slave processor (B) 31B in the embodiment, and the
図示のように、スレーブプロセッサ31Bは、演算ユニット51と、アドレス変換ユニット52と、キャッシュメモリ53と、メモリ・インターフェース54と、以上の構成要素を制御する制御ユニット55と、を有する。制御ユニット55の制御に基づき、演算ユニット51内にあるプログラムカウンタにより実行すべき命令語のアドレスがアドレス変換ユニット52に送出されて物理アドレスに変換される。この物理アドレスに対応する命令語がキャッシュメモリ53内にあれば、命令語はそこから読み出され、演算ユニット51のデータポート及び命令ポートを経由して、制御ユニット55内の命令レジスタに記憶される。この命令レジスタの内容に応じて、制御ユニット55は、演算ユニット51などの構成要素を制御する。この過程で、キャッシュメモリに該当する命令語が存在しない場合には、メモリ・インターフェース54を介して、アドレスバスにより共有メモリ35をアクセスし、データバスを通じてこの命令語を含む部分をキャッシュメモリ53にロードする。この場合、バス制御1信号により、共有メモリ35に接続された共有バス34のバス占有権を確保した上でロードを行う。
As illustrated, the
また、演算ユニット51からの周辺バスibus1は、マスタプロセッサ31Aへのスレッドの終了通知のために割込みを発生するデータ設定に使用される。
The peripheral bus ibus1 from the
また、スレーブプロセッサ31Bにおける割込み端子は、外部機器からの割込みを受け付ける必要がなく、マスタプロセッサ31Aからのスレッド処理の起動を受けるために割込み信号1だけが使用される。さらに、スレーブプロセッサ31Bで実行されるスレッド処理が物理アドレス空間に限定されるようにすれば、アドレス変換ユニット42は不要となる。
Further, the interrupt terminal in the
図5は実施例におけるプロセッサ間接続回路32の構成図であり、図6はプロセッサ間接続回路32を構成するマスタ割込み回路61の構成図であり、図7はマスタ割込み回路61を構成する起動処理回路63の構成図であり、図8はマスタ割込み回路61を構成する終了処理回路64の構成図であり、図9はプロセッサ間接続回路32を構成するスレーブ割込み回路62の構成図である。図5から図9を参照してプロセッサ間接続回路32を説明する。
FIG. 5 is a block diagram of the
図5に示すように、プロセッサ間接続回路32は、マスタプロセッサ31Aに接続されるマスタ割込み回路61と、スレーブプロセッサ31B〜31Eにそれぞれ接続されるスレーブ割込み回路62B〜62Eと、を有する。この構成では、プロセッサ間の接続のための信号線は、プロセッサ当たり4本で済むので、配線数の増加は少ない。
As shown in FIG. 5, the
それぞれの回路の動作を、マスタプロセッサによるスレーブプロセッサへのスレッド処理の起動時と、スレーブプロセッサからマスタプロセッサへのスレッド処理の終了時に分けて説明する。スレッド処理の起動・終了は、4個のスレーブプロセッサのうちの複数のスレーブプロセッサに対して可能であるが、ここでは説明を簡単にするために、スレーブプロセッサ31Bにスレッド処理が割当てられるとして説明する。
The operation of each circuit will be described separately when the master processor starts thread processing to the slave processor and when thread processing from the slave processor to the master processor ends. The start / end of thread processing can be performed for a plurality of slave processors among the four slave processors. Here, for simplicity of explanation, it is assumed that thread processing is assigned to the
まず、スレッド起動時の動作を説明する。マスタプロセッサ31Aは、周辺バスibus0を介して所望のデータ(スレーブプロセッサ31Bにスレッド処理が割当てるデータ)をマスタ割込み回路34に送出する。これに応じて、マスタ割込み回路34は、起動割込み信号ireq1をスレーブプロセッサ31Bへ送出する。スレーブプロセッサ31Bは、この起動割込み信号ireq1を受信すると割込み処理を開始し、起動割込み信号ireq1の受付をマスタプロセッサ31Aに通知するための信号iack1がマスタ割込み回路61に送出される。マスタプロセッサ31Aは、マスタ割込み回路61における信号iack1の受付をibus0を介して読み込むことにより、スレーブプロセッサ31Bにおけるスレッド処理の起動が受け付けられたことを確認する。
First, the operation at the time of thread activation will be described. The
一方、スレーブプロセッサ31Bは、信号iack1をマスタ割込み回路61に送出した後、共有メモリ35の所定のアドレスから実行すべきスレッド処理に必要な情報(プログラム及びデータ)を読み出して、キャッシュメモリ53にロードする。もし、すでにキャッシュメモリ53に必要な情報がロードされていれば(例えば、前回使用したのと同じ場合)、この動作は不要である。そして、ロードした情報に基づいてスレッド処理を実行する。実行中に更にプログラムやデータが必要になれば適宜共有メモリ35にアクセスして入手し、処理結果はキャッシュメモリ53に記憶し、処理が終了した時や途中で出力する必要が生じた時には、適宜共有メモリ35にアクセスして出力する。
On the other hand, the
次に、スレッド処理の終了時の動作を説明する。スレーブプロセッサ31Bは、割当てられたスレッド処理が終了すると、周辺バスibus1を介してマスタプロセッサ31Aに割込みを発生するための一定のデータをスレーブ割込み回路62Bに送出する。スレーブ割込み回路62Bは、このデータに応じて、マスタ割込み回路61への終了割込み信号ireq1を送出する。マスタ割込み回路61は、この終了割込み信号ireq1を受けると、マスタプロセッサ31Aに対して割込み信号ireq0を送出する。マスタプロセッサ31Aは、割込み信号ireq0に応じて割込み処理を開始し、バスibus0を介してマスタ割込み回路61のレジスタを確認して、スレーブプロセッサ31Bのスレッド処理が終了したことを知る。そして、マスタプロセッサ31Aは、割込み受信信号iack0をマスタ割込み回路61に送出する。マスタ割込み回路61は、これに応じて対応するスレーブ割込み回路62Bに信号iack1を送出する。スレーブプロセッサ31Bは、ibus1を介してこれを読み込むことにより、マスタプロセッサ31Aへのスレッド処理の終了の通知が成功したことを知る。一方、マスタプロセッサ31Aは、割込み受信信号iack0の送出を行ったあと、スレッド終了のための処理を開始する。
Next, the operation at the end of thread processing will be described. When the assigned thread processing is completed, the
図6に示すように、マスタ割込み回路61は、図7に示す起動処理回路63と、図8に示す終了処理回路64とで構成される。
As shown in FIG. 6, the master interrupt
図7に示すように、起動処理回路63は、起動要求レジスタ65と、起動完了レジスタ66とで構成される。これらのレジスタは8ビット構成で、スレーブプロセッサが4個のため、そのうちの下位4ビットを使用するが、スレーブプロセッサの個数に応じて使用するビット数をibus0のビット幅まで増加させることが可能であり、更に増加させる必要である場合には、複数のレジスタを配置することも可能である。従って、本実施例では、マスタプロセッサが1個、スレーブプロセッサが4個の構成となっているが、例えばスレーブプロセッサを255個以上も受ける構成も可能である。
As shown in FIG. 7, the
図7の起動処理回路63においては、マスタプロセッサ31Aが、バスibus0を介して起動すべきスレーブプロセッサ(31B〜31Eのいずれか)に対応するビット位置に”1”を立てた所望のデータを起動要求レジスタ65に書込む。例えば、スレーブプロセッサ31Bのみを起動する場合には、8ビットデータとして”00000001”を書き込み、すべてのスレーブプロセッサを起動する場合には、8ビットデータとして”00001111”を書込む。上位4ビットは、対応するスレーブプロセッサが存在しないため”0000”としてある。
In the
上記のような書き込み動作により、スレーブプロセッサ31Bのみが起動する場合、起動割込み信号のうち、対応する信号ireq1のみが”1”となり、スレーブプロセッサ31Bに割込み信号として送出される。スレーブプロセッサ31Bは、信号ireq1を受け取ると起動処理を開始すると共に、起動要求に対する返答信号iack1を送出する。この返答信号iack1は、起動完了レジスタ66に読み込まれ、これをマスタプロセッサ31Aがibus0を介して読み込み、このレジスタの内容が”00000001”であることから、スレーブプロセッサ31Bへの起動が成功したことを知る。
When only the
なお、起動要求レジスタ65の内容は、マスタプロセッサ31Aの割込みインターフェース規定を守る必要があるので、適当なタイミングでリセットされる。
Note that the contents of the activation request register 65 are reset at an appropriate timing because it is necessary to comply with the interrupt interface specification of the
図8に示すように、終了処理回路64は、終了報告レジスタ67と、終了完了レジスタ68とで構成される。これらのレジスタは8ビット構成で、そのうちの下位4ビットを使用するが、起動処理回路と同様に、任意のビット幅を使用することが可能である。
As shown in FIG. 8, the
図8の終了処理回路64においては、スレーブプロセッサ31B〜31Eに付属するスレーブ割込み回路62B〜62Eが、スレッド処理の終了を知らせる信号irq1〜4を終了報告レジスタ67に送出する。この信号irq1〜4はさらにOR回路69に入力され、それに応じてマスタプロセッサ31Aに割込み信号ireq0が送出される。この割込みにより、マスタプロセッサ31Aは、割込み動作に入り、ibus0を介して終了報告レジスタ67の内容を読み込む。例えば、スレーブプロセッサ31Bのみが終了を通知している場合には、8ビットデータとして”00000001”が読み込まれ、すべてのスレーブプロセッサが終了を通知している場合には、8ビットデータとして”00001111”が読み込まれる。上位4ビットは、対応するスレーブプロセッサが存在しないため”0000”としてある。
In the
スレーブプロセッサ31Bのみの終了通知の場合、上記のような読み込み動作により、終了割込み信号のうち、対応する信号irq1のみが”1”となり、マスタプロセッサ31Aに割込み信号として送出される。マスタプロセッサ31Aは、信号ireq0を受け取ると終了処理を開始すると共に、割込みに対する返答信号iack0を送出し、終了完了レジスタ68にibus0を介して”00000001”を書込む。終了完了レジスタ68の出力とAND回路70B〜70Eにより、対応するスレーブプロセッサ31B〜31Eにirq1に対する返答信号iak1を送出する。これにより、スレーブプロセッサ31Bは、スレッド終了通知がマスタプロセッサ31Aに正しく受信されたことを知る。
In the case of an end notification of only the
なお、終了要求レジスタ67の内容は、マスタプロセッサ31Aの割込みインターフェース規定を守る必要があるので、適当なタイミングでリセットされる。
Note that the contents of the
図9に示すように、スレーブ割込み回路62は、終了報告レジスタ71と、受付完了レジスタ72と、から構成される。これらのレジスタは、8ビット構成で、その下位1ビットを使用する例を示している。
As shown in FIG. 9, the slave interrupt
スレーブプロセッサ31B〜31Eは、スレッド処理が終了すると、終了をマスタプロセッサ31Aに通知して、マスタプロセッサ31Aが終了処理に入る必要がある。スレーブプロセッサ31B〜31Eは、独立に同様の動作が行われるので、以下においては、スレーブプロセッサ31Bから終了通知を行う場合について説明する。
When the thread processing ends, the
まず、スレーブプロセッサ31Bは、ibus1を介して終了報告レジスタ71に”00000001”を書込む。これにより、終了割込み信号irq1がマスタ割込み回路61に送出される。その後のマスタ割込み回路61及びマスタプロセッサ31Aの動作についてはすでに説明したので、ここでは省略する。終了報告がマスタプロセッサ31Aで受け付けられると、マスタ割込み回路61を介して受付返答信号iak1がスレーブ割込み回路62に送出され、スレーブ割込み回路62はこの信号を受付完了レジスタ72の最下位ビットに”1”を設定する。
First, the
スレーブプロセッサ31Bは、ibus1を通じて受付完了レジスタ72を読み込み、その内容が”00000001”であれば、終了通知信号irq1に対する返答信号iak1が返信されたかを知る。これにより、スレーブプロセッサ31Bは、スレッド終了通知が正しくマスタプロセッサ31Aに受信されたことを知る。
The
以上のように、マスタプロセッサ31Aとスレーブプロセッサ31B〜31Eは、前記した構成を有していれば、これにプロセッサ間接続回路を付加することにより所望のマルチプロセッサ機能を果たすことができる。したがって、マスタプロセッサ31Aとスレーブプロセッサ31B〜31E、さらにスレーブプロセッサ31B〜31Eそれぞれの命令体系が異なる場合においても同様に動作させることができる効果を有する。
以上で、プロセッサ間接続回路32の説明を終了する。次に、バス調停回路33を説明する。
As described above, if the
This is the end of the description of the
図10の(A)は、実施例のバス調停回路33の構成を示す図である。この回路は、マスタプロセッサ31A及び4個のスレーブプロセッサ31B〜31Eからのバス制御0〜4の信号の間のバス占有権を調停する。
FIG. 10A is a diagram illustrating a configuration of the
このバス調停回路33は、ラウンドロビン方式と呼ばれる調停方式に基づいて調停を行うが、これに限定されるものではない。バス調停回路33は、共有バス34の占有を要求する信号breq0〜4を常時受け付けるため、クロック信号clk0によりトリガーされる5個のフリップフロップ(FF00−40)81A〜81Eと、バス占有権の優先度を示す5個のフリップフロップ(FF01−41)82A〜82Eと、FF81A〜81EとFF82A〜82Eの対応する2個のFFの組の出力が”1”の場合に占有権を与えるための5個のAND回路83A〜83Eから構成される。なお、10個のフリップフロップ(FFij)の入出力端子について、FF82A〜82Eの図示したS及びR端子以外の端子を図10(B)に示す。
The
実施例のマルチプロセッサシステムが電源投入により立ち上がる時に、reset信号が、FF82Aに”1”をセットするためにS(セット)端子に入力し、FF82B〜82Eに”0”をセットするためにR(リセット)端子に入力する。これにより、マルチプロセッサシステムの立ち上がり直後は、マスタプロセッサ31Aが最優先のバス占有権を有することになる。この状態で、マスタプロセッサ31Aからバス要求信号breq0が送出されると、FF81Aの出力が”1”となり、すでにFF82Aの出力も”1”になっているため、AND回路83Aによりバス占有許可信号back0は”1”となり、マスタプロセッサ31Aが共有バス34を占有する。マスタプロセッサ31Aによる共有バス34の占有は、図3の制御ユニット45からメモリ・インターフェース44に送出されるバス駆動信号によって、バス0(アドレスバス、データバス)がアクティブになることによって行われる。
When the multiprocessor system of the embodiment starts up by turning on the power, the reset signal is input to the S (set) terminal to set “1” to the
この間、スレーブプロセッサ31B〜31Eからのバス要求信号があり、FF81B〜81Eの出力が”1”であっても、FF82B〜82Eの出力は”0”であるので、AND回路83B〜83Eによりバス占有許可信号back1〜4は”0”となっており、スレーブプロセッサ31B〜31Eではバス1〜4はアクティブとはならないので、スレーブプロセッサ31B〜31Eは共有バス34からは切り離されている。
During this time, there is a bus request signal from the
マスタプロセッサ31Aのバス占有が終了すると、クロックclkmにより、FF82A〜82Eがトリガーされ、FF82Aの出力がFF82Bの入力に、以下前段のFFの出力が後段のFFの入力に、そしてFF82Eの出力がFF82Aの入力に接続されているので、FF82Bの出力が”1”に、FF82Aの出力が”0”となり、バス占有の優先権はFF82B、すなわちスレーブプロセッサ31Bに移る。このようにして、共有バス34を占有するたびに優先権を隣接する未占有のプロセッサに移していくことにより、プロセッサ間で均等な共有バスの占有が行える。
When the
なお、図示していないが、バス占有権を有するプロセッサに隣接するプロセッサが共有バスの占有を要求していない場合には、さらにそのプロセッサに隣接するプロセッサへと占有権を移すという方法をとることもある。また、FIFO(First In First Out)を使用してバス占有を要求した順に優先権を割当てる方法や、マスタプロセッサが優先権を管理する方法などの各種の変形例も可能である。 Although not shown, when the processor adjacent to the processor having the bus occupation right does not request the occupation of the shared bus, a method of transferring the occupation right to the processor adjacent to the processor is taken. There is also. Various modifications such as a method of assigning priority in the order in which bus occupancy is requested using FIFO (First In First Out) and a method of managing priority by the master processor are also possible.
図11は、本実施例のマルチプロセッサにおけるソフトウエア動作を、各部へのアクセスに関連させて説明する図である。 FIG. 11 is a diagram for explaining the software operation in the multiprocessor of this embodiment in relation to access to each unit.
まず、応用プログラムにおけるメインプログラムをマスタプロセッサ31Aで実行中に、スレーブプロセッサ31B〜31Eのいずれかにスレッド処理を要求する場合、(1)関数コールによりこれを実行する。関数コールが発生すると、(2)制御がOS(オペレーティングシステム)に渡され、(3)関数処理と共にスレーブプロセッサの空き状態などを管理するマスタ管理プログラムに制御が移る。その後、スレーブプロセッサ31B〜31Eのいずれかが選択され、(4)プロセッサ間接続回路32により、例えばスレーブプロセッサ31Bが起動される。この時点で、マスタプロセッサ31Aは応用プログラムのメインプログラムの続行が可能となる。
First, when thread processing is requested to any of the
スレーブプロセッサ31Bは、スレーブ管理プログラムを実行し、(5)スレッド起動情報の読み込み、(6)読み込んだ起動情報により対応するスレッド#nの実行を行う。
The
次に、スレッド#nの終了の際に、実行結果のデータを共有メモリ35のスレッドごとに割当ててある所定の場所に書き込み、これが終了すると、(7)スレーブ管理プログラムに戻り、(8)このプログラムの実行によりプロセッサ間接続回路を通じて、マスタ管理プログラムに制御が渡される。マスタ管理プログラムは、終了したスレーブプロセッサ31Bを解放する手続きを行う。スレーブプロセッサ31Bにおけるスレッド実行結果は、メインプログラム中で指定される時期に、共有メモリ35中の前記所定の場所から読み出し、これを利用する。複数のスレッド処理が実行された場合、すべてのスレッド処理が終了した後に、それぞれのスレッド処理の実行結果を読み出し、処理する場合もある。
Next, when the thread #n is terminated, the execution result data is written in a predetermined location assigned to each thread in the shared
図12は、実施例のマルチプロセッサシステムにおける、マスタプロセッサ31Aからスレーブプロセッサ31B、31Cへのスレッド処理の割当てを説明する図である。ここでは、スレーブプロセッサ31B、31Cが空き状態にあり、スレーブプロセッサ31D、31Eがすでに他のスレッド処理を実行しているとする。
FIG. 12 is a diagram illustrating thread processing assignment from the
図12の(A)は、C言語でプログラムされた1つのアプリケーションタスク(プログラムA)と、そのプログラム中の複数のスレッド処理1〜4をスレーブプロセッサ31B〜31Eに割当てる様子を示している。また、図12の(B)は、図11に示したマスタ管理ソフトウエアによるスレーブプロセッサ管理の様子をスレーブ管理テーブルにより示したものである。
FIG. 12A shows a state in which one application task (program A) programmed in C language and a plurality of
マスタプロセッサ31Aが、プログラム中の関数thread create()を実行する場合、関数処理のため、まずOSにリンクし、関数thread create()の実行過程で、マスタ管理ソフトウエアの管理下にあるスレーブ管理テーブルを用いて、スレーブプロセッサ31B〜31Eへのスレッド処理の割当てを以下のように行う。スレーブ管理テーブルは、”0”の時に空き状態を、”1”の時に動作中を示すとする。スレーブ管理テーブルは、マルチプロセッサシステムの立ち上がり時に該当するメモリ番地に、”0”を書込むことにより初期化される。
When the
(1)スレーブ管理テーブルの初期状態
初期状態は、スレーブプロセッサ31B、31Cが共に空き状態で、スレーブプロセッサ31D、31Eは他のスレッド処理をすでに実行中であるとする。空き状態が”0”の時には、タスク番号、スレッド番号は無意味であるため、テーブル中には”−”が示されている。
(1) Initial state of slave management table In the initial state, it is assumed that both the
(2)スレッド1の割当て
スレーブプロセッサ31B、31Dが空き状態であることがわかると、マスタ管理ソフトウエアは、スレーブプロセッサ31Bを確保し、空き状態を示す該当メモリ番地に”1”を書込む。さらに、割当てるスレッド1のタスク番号(仮に”5”)、そのスレッド番号”1”を該当メモリ番地に書き込み、スレーブプロセッサ31Bに前述したように起動割込みをかける。これにより、スレーブ管理テーブルは図12の(B)のように変化する。
(2) Allocation of
(3)スレッド2の割当て
(2)と同様に、スレーブプロセッサ31Cにスレッド2を割当てるため、空き状態に”1”、タスク番号に”5”、スレッド番号に”2”を書き込み、スレーブプロセッサ31Cに起動割込みをかける。以後、スレーブプロセッサには空きがないため、マスタプロセッサ31Aは、スレッド番号3以上のスレッド処理は、動作中のスレーブプロセッサ31B〜31Eのいずれかが実行中のスレッド処理を終了するまで待ち状態となる。これにより、スレーブ管理テーブルは図12の(B)のように変化する。この状態で、マスタプロセッサ31Aで他の処理を必要としない場合に、マスタプロセッサ31Aをスリープ状態とすることが可能となる。
(3) Allocation of
(4)スレッド終了処理
スレーブプロセッサのいずれかでスレッド処理が終了すると、スレーブプロセッサは、スレッド終了割込みを発生させる共にスリープ状態になる。スレーブプロセッサからのスレッド終了割込みにより、マスタプロセッサ31Aはスレーブ管理テーブルの対応するプロセッサの空き状態部分に”0”を書き込み、待機しているスレッド処理(ここではスレッド3)があれば、(2)又は(3)と同様にして、待ち状態にあったスレッド3を割当てる。
(4) Thread end processing When thread processing ends in one of the slave processors, the slave processor generates a thread end interrupt and enters a sleep state. Due to the thread end interrupt from the slave processor, the
以上説明したように、本発明のマルチプロセッサシステムは、標準のプロセッサ、及び標準のOSを使用して、マルチプロセッサシステムが容易に構成でき、処理速度を向上させることができる。 As described above, the multiprocessor system of the present invention can be easily configured using a standard processor and a standard OS, and the processing speed can be improved.
以上、本実施例のマルチプロセッサシステムを説明したが、各種の変形例があり得るのはいうまでもない。 Although the multiprocessor system of this embodiment has been described above, it goes without saying that various modifications can be made.
本発明は、マルチプロセッサシステムに適用可能であり、特に1チップに複数のプロセッサを搭載したマルチコア型チップを使用した小型機器への応用に適している。 The present invention can be applied to a multiprocessor system, and is particularly suitable for application to a small device using a multicore chip in which a plurality of processors are mounted on one chip.
31A マスタプロセッサ
31B〜31E スレーブプロセッサ
32 プロセッサ間接続回路
33 バス調停回路
34 共有バス
35 共有メモリ
Claims (7)
割込み機能を有する少なくとも1個のスレーブプロセッサと、
共有メモリと、
前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが、前記共有メモリにアクセスするための共有バスと、を備えるマルチプロセッサシステムであって、
前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが処理を実行するためのプログラムは、前記共有メモリに記憶されており、
当該マルチプロセッサシステムのオペレーティングシステム処理は、前記マスタプロセッサにより実行され、
前記マスタプロセッサは、前記少なくとも1個のスレーブプロセッサで実行するスレッド処理プログラムを示すスレッド処理関数を生成して、前記スレッド処理関数を実行するための起動要求を前記少なくとも1個のスレーブプロセッサのいずれかに送信し、
前記少なくとも1個のスレーブプロセッサは、前記起動要求を受信すると、前記共有メモリに記憶された前記スレッド処理プログラムをロードして処理を行い、前記マスタプロセッサに前記スレッド処理の終了を通知し、
前記マスタプロセッサから前記少なくとも1個のスレーブプロセッサへの前記起動要求の送信、及び前記少なくとも1個のスレーブプロセッサから前記マスタプロセッサへの前記スレッド処理の終了通知を行うプロセッサ間接続回路と、
前記マスタプロセッサ及び前記少なくとも1個のスレーブプロセッサが、前記共有メモリにアクセスする時の調停を行うバス調停回路と、を更に備え、
前記プロセッサ間接続回路から前記少なくとも1個のスレーブプロセッサへの前記起動要求の送信通知は、前記少なくとも1個のスレーブプロセッサの前記割込み機能を利用して行われ、
前記プロセッサ間接続回路から前記マスタプロセッサへの前記スレッド処理の前記終了通知は、前記マスタプロセッサの前記割込み機能を利用して行われることを特徴とするマルチプロセッサシステム。 A master processor having an interrupt function;
At least one slave processor having an interrupt function;
Shared memory,
A multiprocessor system, wherein the master processor and the at least one slave processor include a shared bus for accessing the shared memory,
A program for the master processor and the at least one slave processor to execute processing is stored in the shared memory,
The operating system process of the multiprocessor system is executed by the master processor,
The master processor generates a thread processing function indicating a thread processing program to be executed by the at least one slave processor, and sends a start request for executing the thread processing function to any one of the at least one slave processor. To
Upon receiving the activation request, the at least one slave processor loads the thread processing program stored in the shared memory to perform processing, notifies the master processor of the end of the thread processing,
An inter-processor connection circuit that transmits the start request from the master processor to the at least one slave processor, and notifies the end of the thread processing from the at least one slave processor to the master processor;
A bus arbitration circuit that performs arbitration when the master processor and the at least one slave processor access the shared memory;
The transmission notification of the activation request from the inter-processor connection circuit to the at least one slave processor is performed using the interrupt function of the at least one slave processor,
The multiprocessor system, wherein the end notification of the thread processing from the inter-processor connection circuit to the master processor is performed using the interrupt function of the master processor.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006039348A JP2007219816A (en) | 2006-02-16 | 2006-02-16 | Multiprocessor system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006039348A JP2007219816A (en) | 2006-02-16 | 2006-02-16 | Multiprocessor system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2007219816A true JP2007219816A (en) | 2007-08-30 |
Family
ID=38497054
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006039348A Pending JP2007219816A (en) | 2006-02-16 | 2006-02-16 | Multiprocessor system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2007219816A (en) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101169774A (en) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | Multi-processor system, sharing control device and slave processor starting method |
| WO2010016169A1 (en) * | 2008-08-07 | 2010-02-11 | 日本電気株式会社 | Multiprocessor system and method for controlling the same |
| JP2010140146A (en) * | 2008-12-10 | 2010-06-24 | Fujitsu Ltd | Multi-core processor, control method thereof, and information processing device |
| JP2010182096A (en) * | 2009-02-05 | 2010-08-19 | Nec Corp | Program parallel execution system and program parallel execution method on multi-core processor |
| WO2011058657A1 (en) * | 2009-11-16 | 2011-05-19 | 富士通株式会社 | Parallel computation device, parallel computation method, and parallel computation program |
| JPWO2011148920A1 (en) * | 2010-05-26 | 2013-07-25 | 日本電気株式会社 | Multiprocessor system, execution control method, execution control program |
| CN103699444A (en) * | 2013-12-17 | 2014-04-02 | 华为技术有限公司 | CPU (central processing unit) hot plug implementing method and device |
| JP2017507398A (en) * | 2014-01-06 | 2017-03-16 | ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company | Vehicle having multiple user interface operating domains |
| JP2022177954A (en) * | 2021-05-19 | 2022-12-02 | 株式会社ユニバーサルエンターテインメント | game machine |
| JP2022177955A (en) * | 2021-05-19 | 2022-12-02 | 株式会社ユニバーサルエンターテインメント | game machine |
-
2006
- 2006-02-16 JP JP2006039348A patent/JP2007219816A/en active Pending
Cited By (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101169774A (en) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | Multi-processor system, sharing control device and slave processor starting method |
| CN101169774B (en) * | 2007-11-22 | 2023-12-22 | 中兴通讯股份有限公司 | Multiprocessor system, sharing control device and method for starting slave processor |
| WO2010016169A1 (en) * | 2008-08-07 | 2010-02-11 | 日本電気株式会社 | Multiprocessor system and method for controlling the same |
| CN102112972A (en) * | 2008-08-07 | 2011-06-29 | 日本电气株式会社 | Multiprocessor system and method for controlling same |
| JP5360061B2 (en) * | 2008-08-07 | 2013-12-04 | 日本電気株式会社 | Multiprocessor system and control method thereof |
| US8583845B2 (en) | 2008-08-07 | 2013-11-12 | Nec Corporation | Multi-processor system and controlling method thereof |
| JP2010140146A (en) * | 2008-12-10 | 2010-06-24 | Fujitsu Ltd | Multi-core processor, control method thereof, and information processing device |
| JP2010182096A (en) * | 2009-02-05 | 2010-08-19 | Nec Corp | Program parallel execution system and program parallel execution method on multi-core processor |
| JP5321691B2 (en) * | 2009-11-16 | 2013-10-23 | 富士通株式会社 | Parallel computing device, parallel computing method, and parallel computing program |
| US8549261B2 (en) | 2009-11-16 | 2013-10-01 | Fujitsu Limited | Parallel computing apparatus and parallel computing method |
| WO2011058657A1 (en) * | 2009-11-16 | 2011-05-19 | 富士通株式会社 | Parallel computation device, parallel computation method, and parallel computation program |
| JPWO2011148920A1 (en) * | 2010-05-26 | 2013-07-25 | 日本電気株式会社 | Multiprocessor system, execution control method, execution control program |
| US9164951B2 (en) | 2010-05-26 | 2015-10-20 | Nec Corporation | Multiprocessor system, execution control method and execution control program |
| CN103699444A (en) * | 2013-12-17 | 2014-04-02 | 华为技术有限公司 | CPU (central processing unit) hot plug implementing method and device |
| JP2017507398A (en) * | 2014-01-06 | 2017-03-16 | ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company | Vehicle having multiple user interface operating domains |
| JP2022177954A (en) * | 2021-05-19 | 2022-12-02 | 株式会社ユニバーサルエンターテインメント | game machine |
| JP2022177955A (en) * | 2021-05-19 | 2022-12-02 | 株式会社ユニバーサルエンターテインメント | game machine |
| JP7278632B2 (en) | 2021-05-19 | 2023-05-22 | 株式会社ユニバーサルエンターテインメント | game machine |
| JP7360192B2 (en) | 2021-05-19 | 2023-10-12 | 株式会社ユニバーサルエンターテインメント | gaming machine |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2007219816A (en) | Multiprocessor system | |
| US10241946B2 (en) | Multi-channel DMA system with command queue structure supporting three DMA modes | |
| US5261109A (en) | Distributed arbitration method and apparatus for a computer bus using arbitration groups | |
| JP5137171B2 (en) | Data processing device | |
| US20100125717A1 (en) | Synchronization Controller For Multiple Multi-Threaded Processors | |
| CN101566957A (en) | Information processing system and task execution control method | |
| JP2012038293A5 (en) | ||
| JP5578713B2 (en) | Information processing device | |
| JP2024515055A (en) | Seamlessly integrated microcontroller chip | |
| JP3519182B2 (en) | Information processing system, bus arbiter, and bus control method | |
| US6892266B2 (en) | Multicore DSP device having coupled subsystem memory buses for global DMA access | |
| JP2004326462A (en) | Multiprocessor system | |
| US20060136640A1 (en) | Apparatus and method for hardware semaphore | |
| KR20160056382A (en) | System on chip having semaphore function and emplementing method thereof | |
| KR100708096B1 (en) | How to adjust the bus system and its execution order | |
| JP2008033893A (en) | Multiprocessor system and access right setting method in multiprocessor system | |
| JPH0635849A (en) | Method of controlling usage of bus and computer-system | |
| US20020057711A1 (en) | External bus arbitration technique for multicore DSP device | |
| US6708259B1 (en) | Programmable wake up of memory transfer controllers in a memory transfer engine | |
| JP2010092101A (en) | Information processor | |
| JP4818820B2 (en) | Bus system, bus slave and bus control method | |
| JP2002342266A (en) | Data processor | |
| JPS63310060A (en) | multiprocessor system | |
| JP2007102447A (en) | Arithmetic processing unit | |
| JP2002278923A (en) | Bus system, bus control system and bus converter |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080317 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080805 |