[go: up one dir, main page]

JP2007219816A - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

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
Application number
JP2006039348A
Other languages
Japanese (ja)
Inventor
Hideo Maejima
英雄 前島
Kunio Uchiyama
邦男 内山
Akira Yamada
朗 山田
Shiyuudo Mizuno
秀導 水野
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.)
Semiconductor Technology Academic Research Center
Original Assignee
Semiconductor Technology Academic Research Center
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 Semiconductor Technology Academic Research Center filed Critical Semiconductor Technology Academic Research Center
Priority to JP2006039348A priority Critical patent/JP2007219816A/en
Publication of JP2007219816A publication Critical patent/JP2007219816A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multiprocessor system capable of performing a onnection control between processors by a standard OS. <P>SOLUTION: This multiprocessor system is provided with: a master processor 31A having an interrupt function; at least one slave processor 31B-31C having the interrupt function; a shared memory 35; and a shared bus 34. A program for making the master and slave execute processing is stored in a shared memory, and the master executes the OS, and transmits thread processing to be executed by the slave to the slave in the form of functions, and the slave loads the thread processing program from the shared memory, and notifies the end of the execution. This multiprocessor system is also provided with an inter-processor connection circuit 32 and a bus arbitration circuit 33. The thread transmission notification in the salve and the thread processing end in the master are operated by using the interrupt function. <P>COPYRIGHT: (C)2007,JPO&INPIT

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) processor 11 constituted by a normal CPU and coprocessors 12A to 12C operating under the control of the master processor 11. FIG. Only the master processor 11 executes the processing of the operating system (OS) stored in the main memory 13, and each of the coprocessors 12A to 12C is not appropriate to be performed by the master processor 11 such as floating point arithmetic or input / output processing. Execute the process. When the master processor 11 causes any of the coprocessors 12 </ b> A to 12 </ b> C to perform processing, the master processor 11 sends a command designating execution of the processing to the corresponding coprocessor via the command / data transfer bus 14. Each coprocessor decodes the command sent on the command / data transfer bus 14 and receives the necessary data. In FIG. 1A, the coprocessors 12A to 12C cannot directly access the main memory 13, but a coprocessor that performs input / output processing or the like can directly access the main memory 13 via the same bus as the master processor. It is configured as follows.

各コプロセッサが行う処理は固定されており、各コプロセッサは特定の処理を高速に実行するように構成されている。例えば、浮動小数点演算を行うコプロセッサは浮動小数点演算処理のみを行い、入出力処理を行うコプロセッサは入出力処理のみを行う。コプロセッサは、処理量は多いが特定の処理を繰り返す処理に使用されるので、処理シーケンスなどはハードウエアで規定されているものが多い。しかし、プログラムを必要とする複雑な処理を実行するコプロセッサが用いられる場合には、各コプロセッサ内に、プログラムメモリを設ける場合もある。この場合、プログラムメモリは、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 main memory 13 by a DMA operation when the system starts up. is there. Although the program PG may be loaded from the main memory 13 to the coprocessor via the master processor and the command / data bus 14, it is directly loaded when the coprocessor is directly connected to the main memory 13. . In any case, after the system is started, the program stored in the program memory of the coprocessor is not rewritten.

コマンドで指定された処理が終了したコプロセッサは、マスタプロセッサ11に処理の終了を報告する。この処理の終了報告は、コマンド/データバス14を介して行われる場合もあるが、図示のように割込み処理によってマスタプロセッサ11に処理終了を報告する場合もある。   The coprocessor that has completed the process specified by the command reports the end of the process to the master processor 11. This process completion report may be made via the command / data bus 14, but as shown, the process completion may be reported to the master processor 11 by an interrupt process.

図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 memory 23 via the shared bus and bus arbitration circuit 22. The processors 21A to 21D respectively execute programs PG0 to PG3 that are predetermined to be executed by each processor under the OS arranged in the shared memory 23. The contention of access to the shared memory 23 that occurs during execution of the OS and program in each processor is arbitrated by the shared bus and bus arbitration circuit 22, and synchronization and communication between the processors may be part of the OS area in the shared memory 23 or in advance. This is done through a defined shared area. The interrupt function in each processor is used for controlling input / output devices belonging to each processor. Accordingly, the program activation of each processor is performed by an interrupt from the input / output device and a semaphore in a part of the OS area in the shared memory 23 or a predetermined shared area.

なお、図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.

米国特許第5003466号U.S. Pat. No. 5,003466 米国特許第5361362号US Pat. No. 5,361,362

従来のマルチプロセッサシステムでは、複数のプロセッサへの処理(スレッド(小プログラム))の割当てにはオペレーティングシステム(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 processors 31 </ b> A to 31 </ b> E, an interprocessor connection circuit 32, a bus arbitration circuit 33, a shared bus 34, and a shared memory 35. Each processor individually has a cache memory or the like, but is not shown here. Of the above components, the portion excluding the shared memory 35 is mounted on one chip, and is a multi-core chip. The shared memory 35 can be provided in the same chip. Conversely, any combination of the processors 31A to 31E, the processor connection circuit 32, and the bus arbitration circuit 33 can be mounted on a plurality of chips. .

プロセッサ31A〜31Eは、すべて同じ構成で、通常のマイクロプロセッサと同様の構成を有しており、共有バス34を介して共有メモリ35と接続するバス(アドレスバス及びデータバス)0〜4と、これらのバスが共有バス34の占有権を獲得するための信号であるバス制御0〜4(breq0〜4,back0〜4)と、割込み信号(ireq0〜4,iack0〜4)と、周辺機器などとの接続バス(ibus0〜4)と、を有する。   The processors 31A to 31E all have the same configuration and the same configuration as a normal microprocessor, and buses (address bus and data bus) 0 to 4 connected to the shared memory 35 via the shared bus 34, Bus control 0-4 (breq0-4, back0-4), interrupt signals (ireq0-4, iack0-4), peripheral devices, etc., which are signals for these buses to acquire the exclusive right of the shared bus 34 And a connection bus (ibus 0 to 4).

プロセッサ31A〜31Eのうちの1個(ここではプロセッサ31A)が、マスタプロセッサとして動作し、他のプロセッサ(ここではプロセッサ31B〜31E)はスレーブプロセッサとして動作する。マスタプロセッサ31Aは、プロセッサ間接続回路32を介して、スレーブプロセッサ群31B〜31Eへのスレッド(小プログラム)処理の起動を行う。スレーブプロセッサ群31B〜31Eは、スレッド処理が終了すると、プロセッサ間接続回路32を介して、マスタプロセッサ31Aに対して該当スレッドの終了通知を行う。この間、プロセッサ31A〜31Eのうち動作中のものは、バス調停回路33の調停に基づいて、共有バス34を介して共有メモリ35へのアクセスを行う。同時に複数のスレーブプロセッサに対してスレッド処理を割当てることができるが、説明を簡単にするために、以下スレーブプロセッサ31Bに対してスレッド処理が割当てられるとして説明する。   One of the processors 31A to 31E (here, the processor 31A) operates as a master processor, and the other processors (here, the processors 31B to 31E) operate as slave processors. The master processor 31A activates thread (small program) processing to the slave processor groups 31B to 31E via the inter-processor connection circuit 32. When the thread processing ends, the slave processor groups 31B to 31E notify the master processor 31A of the end of the corresponding thread via the inter-processor connection circuit 32. During this time, the operating one of the processors 31A to 31E accesses the shared memory 35 via the shared bus 34 based on the arbitration of the bus arbitration circuit 33. Although thread processing can be assigned to a plurality of slave processors at the same time, in order to simplify the explanation, it will be described below that thread processing is assigned to the slave processor 31B.

マスタプロセッサ31Aは、接続バスibus0を介して所望のデータをプロセッサ間接続回路32に送出し、プロセッサ間接続回路32はこのデータを割込み信号ireq1〜4(ここではireq1)に変換して、対応するスレーブプロセッサ31Bに起動をかける。この割込み信号を受信したスレーブプロセッサ31Bは、割込み信号応答信号iack1により、マスタプロセッサ31Aからの起動の受信を、プロセッサ間接続回路32を介してマスタプロセッサ31Aに通知する。次に、スレーブプロセッサ31Bは、割込み処理を開始し、実行すべきスレッド処理に関する情報(プログラム、データ)を共有メモリ35上の所定のアドレスから読み出し、これを使用して割当てられたスレッド処理を実行する。   The master processor 31A sends desired data to the inter-processor connection circuit 32 via the connection bus ibus0, and the inter-processor connection circuit 32 converts this data into interrupt signals ireq1 to 4 (here, ireq1) and corresponds. The slave processor 31B is activated. The slave processor 31B that has received the interrupt signal notifies the master processor 31A of reception of activation from the master processor 31A via the inter-processor connection circuit 32 by the interrupt signal response signal iack1. Next, the slave processor 31B starts interrupt processing, reads information (program, data) related to thread processing to be executed from a predetermined address on the shared memory 35, and executes the assigned thread processing using this information. To do.

次に、スレーブプロセッサ31Bがスレッド処理の実行を終了した場合、スレーブプロセッサ31Bは、接続バスibus1を介して一定のデータをプロセッサ間接続回路32に送出し、プロセッサ間接続回路32はこのデータを割込み信号ireq0に変換して、マスタプロセッサ31Aに割込みをかける。この割込み信号を受信したマスタプロセッサ31Aは、割込み(受信応答)信号iack0により、マスタプロセッサ31Aにおける終了受信をプロセッサ間接続回路32を介してスレーブプロセッサ31Bに通知する。次に、マスタプロセッサ31Aは、終了処理、例えば、次のスレッド処理の起動などを行う。ここではスレーブプロセッサ31Bにスレッド処理を割当てる場合を例として説明したが、他のスレーブプロセッサ31C〜31Eにスレッド処理を割当てる場合も、それぞれのスレーブプロセッサが有する接続バスibus2〜4を使用して同様の処理を行う。   Next, when the slave processor 31B finishes executing the thread processing, the slave processor 31B sends out certain data to the interprocessor connection circuit 32 via the connection bus ibus1, and the interprocessor connection circuit 32 interrupts this data. The signal is converted into the signal ireq0, and the master processor 31A is interrupted. Receiving this interrupt signal, the master processor 31A notifies the slave processor 31B of the completion reception in the master processor 31A via the inter-processor connection circuit 32 by the interrupt (reception response) signal iac0. Next, the master processor 31A performs an end process, for example, the start of the next thread process. Here, the case where thread processing is assigned to the slave processor 31B has been described as an example. However, when thread processing is assigned to the other slave processors 31C to 31E, the connection buses ibus 2 to 4 included in the respective slave processors are used. Process.

この間、マスタプロセッサ31A及びスレーブプロセッサ31B〜31Eは、待機中のものを除いて、バス制御信号0〜4(breq0〜4,back0〜4)により、バス調停回路34を介して、共有バス占有権の調停を受けて、バス0〜4を通じて共有バス34に接続され、共有メモリ35を必要に応じて順次アクセスする。   During this time, the master processor 31A and the slave processors 31B to 31E, except for those waiting, share the shared bus occupation right via the bus arbitration circuit 34 by the bus control signals 0 to 4 (breq0 to 4, back0 to 4). In response to the arbitration, the buses 0 to 4 are connected to the shared bus 34 and sequentially access the shared memory 35 as necessary.

図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 master processor 31A in the embodiment. As illustrated, the master processor 31A includes an arithmetic unit 41, an address conversion unit 42, a cache memory 43, a memory interface 44, and a control unit 45 that controls the above components. Based on the control of the control unit 45, the address of the instruction word to be executed by the program counter in the arithmetic unit 41 is sent to the address conversion unit 42 and converted into a physical address. If there is an instruction word corresponding to this physical address in the cache memory 43, the instruction word is read from the cache memory 43 and stored in the instruction register in the control unit 45 via the data port and instruction port of the arithmetic unit 41. The The control unit 45 controls components such as the arithmetic unit 41 according to the contents of the instruction register. In this process, if there is no corresponding instruction word in the cache memory, the shared memory 35 is accessed by the address bus via the memory interface 44, and the portion including this instruction word is transferred to the cache memory 43 through the data bus. Load it. In this case, loading is performed after securing the bus occupation right of the shared bus 34 connected to the shared memory 35 by the bus control 0 signal.

また、演算ユニット41からの周辺バスibus0は、スレーブプロセッサ31B〜31Eの起動及び割当てたスレッドの終了のためのデータ設定に使用される。   Further, the peripheral bus ibus0 from the arithmetic unit 41 is used for data setting for starting the slave processors 31B to 31E and ending the assigned thread.

また、マスタプロセッサ31Aにおける割込み端子は、割込み信号0、割込み信号Nという具合に、複数の外部機器からの割込みを受け付けられるように複数存在するが、ここで示した割込み信号0は、スレーブプロセッサ31B〜31Eからのスレッド処理の終了報告を受けるために使用される。他の割込み信号Nは、例えば、図1の(A)に示したような接続されるコプロセッサ用に使用することが可能である。   In addition, there are a plurality of interrupt terminals in the master processor 31A so that interrupts from a plurality of external devices such as an interrupt signal 0 and an interrupt signal N can be received. The interrupt signal 0 shown here is a slave processor 31B. Used to receive a thread processing end report from ~ 31E. Other interrupt signals N can be used, for example, for a connected coprocessor as shown in FIG.

図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 other slave processors 31C to 31E have the same configuration, and the configuration is also the configuration of the master processor 31A shown in FIG. The same.

図示のように、スレーブプロセッサ31Bは、演算ユニット51と、アドレス変換ユニット52と、キャッシュメモリ53と、メモリ・インターフェース54と、以上の構成要素を制御する制御ユニット55と、を有する。制御ユニット55の制御に基づき、演算ユニット51内にあるプログラムカウンタにより実行すべき命令語のアドレスがアドレス変換ユニット52に送出されて物理アドレスに変換される。この物理アドレスに対応する命令語がキャッシュメモリ53内にあれば、命令語はそこから読み出され、演算ユニット51のデータポート及び命令ポートを経由して、制御ユニット55内の命令レジスタに記憶される。この命令レジスタの内容に応じて、制御ユニット55は、演算ユニット51などの構成要素を制御する。この過程で、キャッシュメモリに該当する命令語が存在しない場合には、メモリ・インターフェース54を介して、アドレスバスにより共有メモリ35をアクセスし、データバスを通じてこの命令語を含む部分をキャッシュメモリ53にロードする。この場合、バス制御1信号により、共有メモリ35に接続された共有バス34のバス占有権を確保した上でロードを行う。   As illustrated, the slave processor 31B includes an arithmetic unit 51, an address conversion unit 52, a cache memory 53, a memory interface 54, and a control unit 55 that controls the above components. Based on the control of the control unit 55, the address of the instruction word to be executed by the program counter in the arithmetic unit 51 is sent to the address conversion unit 52 and converted into a physical address. If the instruction word corresponding to the physical address is in the cache memory 53, the instruction word is read from the cache memory 53 and stored in the instruction register in the control unit 55 via the data port and instruction port of the arithmetic unit 51. The The control unit 55 controls components such as the arithmetic unit 51 in accordance with the contents of the instruction register. In this process, if there is no corresponding instruction word in the cache memory, the shared memory 35 is accessed by the address bus via the memory interface 54, and the portion including this instruction word is transferred to the cache memory 53 through the data bus. Load it. In this case, loading is performed after securing the bus occupation right of the shared bus 34 connected to the shared memory 35 by the bus control 1 signal.

また、演算ユニット51からの周辺バスibus1は、マスタプロセッサ31Aへのスレッドの終了通知のために割込みを発生するデータ設定に使用される。   The peripheral bus ibus1 from the arithmetic unit 51 is used for data setting for generating an interrupt for notifying the master processor 31A of the end of the thread.

また、スレーブプロセッサ31Bにおける割込み端子は、外部機器からの割込みを受け付ける必要がなく、マスタプロセッサ31Aからのスレッド処理の起動を受けるために割込み信号1だけが使用される。さらに、スレーブプロセッサ31Bで実行されるスレッド処理が物理アドレス空間に限定されるようにすれば、アドレス変換ユニット42は不要となる。   Further, the interrupt terminal in the slave processor 31B does not need to accept an interrupt from an external device, and only the interrupt signal 1 is used to receive the start of thread processing from the master processor 31A. Furthermore, if the thread processing executed by the slave processor 31B is limited to the physical address space, the address translation unit 42 becomes unnecessary.

図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 inter-processor connection circuit 32 in the embodiment, FIG. 6 is a block diagram of the master interrupt circuit 61 that constitutes the inter-processor connection circuit 32, and FIG. 7 is a startup process that constitutes the master interrupt circuit 61. FIG. 8 is a configuration diagram of the circuit 63, FIG. 8 is a configuration diagram of the termination processing circuit 64 that configures the master interrupt circuit 61, and FIG. 9 is a configuration diagram of the slave interrupt circuit 62 that configures the inter-processor connection circuit 32. The inter-processor connection circuit 32 will be described with reference to FIGS.

図5に示すように、プロセッサ間接続回路32は、マスタプロセッサ31Aに接続されるマスタ割込み回路61と、スレーブプロセッサ31B〜31Eにそれぞれ接続されるスレーブ割込み回路62B〜62Eと、を有する。この構成では、プロセッサ間の接続のための信号線は、プロセッサ当たり4本で済むので、配線数の増加は少ない。   As shown in FIG. 5, the inter-processor connection circuit 32 includes a master interrupt circuit 61 connected to the master processor 31A and slave interrupt circuits 62B to 62E connected to the slave processors 31B to 31E, respectively. In this configuration, since only four signal lines are required for connection between processors, the number of wirings is not increased.

それぞれの回路の動作を、マスタプロセッサによるスレーブプロセッサへのスレッド処理の起動時と、スレーブプロセッサからマスタプロセッサへのスレッド処理の終了時に分けて説明する。スレッド処理の起動・終了は、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 slave processor 31B. .

まず、スレッド起動時の動作を説明する。マスタプロセッサ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 master processor 31A sends desired data (data assigned by the thread processing to the slave processor 31B) to the master interrupt circuit 34 via the peripheral bus ibus0. In response to this, the master interrupt circuit 34 sends an activation interrupt signal ireq1 to the slave processor 31B. When the slave processor 31B receives the activation interrupt signal ireq1, the slave processor 31B starts an interrupt process, and a signal iack1 for notifying the master processor 31A of acceptance of the activation interrupt signal ireq1 is transmitted to the master interrupt circuit 61. The master processor 31A reads the reception of the signal iack1 in the master interrupt circuit 61 through ibus0, thereby confirming that the activation of the thread processing in the slave processor 31B has been received.

一方、スレーブプロセッサ31Bは、信号iack1をマスタ割込み回路61に送出した後、共有メモリ35の所定のアドレスから実行すべきスレッド処理に必要な情報(プログラム及びデータ)を読み出して、キャッシュメモリ53にロードする。もし、すでにキャッシュメモリ53に必要な情報がロードされていれば(例えば、前回使用したのと同じ場合)、この動作は不要である。そして、ロードした情報に基づいてスレッド処理を実行する。実行中に更にプログラムやデータが必要になれば適宜共有メモリ35にアクセスして入手し、処理結果はキャッシュメモリ53に記憶し、処理が終了した時や途中で出力する必要が生じた時には、適宜共有メモリ35にアクセスして出力する。   On the other hand, the slave processor 31B sends the signal iack1 to the master interrupt circuit 61, reads information (program and data) necessary for thread processing to be executed from a predetermined address in the shared memory 35, and loads it into the cache memory 53. To do. If necessary information is already loaded in the cache memory 53 (for example, in the same case as previously used), this operation is unnecessary. Then, thread processing is executed based on the loaded information. If further programs or data are needed during execution, the shared memory 35 is accessed and obtained as appropriate, and the processing results are stored in the cache memory 53. When processing is completed or when it becomes necessary to output during processing, The shared memory 35 is accessed and output.

次に、スレッド処理の終了時の動作を説明する。スレーブプロセッサ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 slave processor 31B sends certain data for generating an interrupt to the master processor 31A to the slave interrupt circuit 62B via the peripheral bus ibus1. The slave interrupt circuit 62B sends an end interrupt signal ireq1 to the master interrupt circuit 61 according to this data. When receiving the end interrupt signal ireq1, the master interrupt circuit 61 sends an interrupt signal ireq0 to the master processor 31A. The master processor 31A starts interrupt processing in response to the interrupt signal ireq0, checks the register of the master interrupt circuit 61 via the bus ibus0, and knows that the thread processing of the slave processor 31B has ended. Then, the master processor 31A sends an interrupt reception signal iack0 to the master interrupt circuit 61. In response to this, the master interrupt circuit 61 sends a signal iack1 to the corresponding slave interrupt circuit 62B. The slave processor 31B reads this via ibus1 to know that the notification of the end of the thread processing to the master processor 31A has succeeded. On the other hand, the master processor 31A starts the process for terminating the thread after sending out the interrupt reception signal iack0.

図6に示すように、マスタ割込み回路61は、図7に示す起動処理回路63と、図8に示す終了処理回路64とで構成される。   As shown in FIG. 6, the master interrupt circuit 61 includes a start processing circuit 63 shown in FIG. 7 and an end processing circuit 64 shown in FIG.

図7に示すように、起動処理回路63は、起動要求レジスタ65と、起動完了レジスタ66とで構成される。これらのレジスタは8ビット構成で、スレーブプロセッサが4個のため、そのうちの下位4ビットを使用するが、スレーブプロセッサの個数に応じて使用するビット数をibus0のビット幅まで増加させることが可能であり、更に増加させる必要である場合には、複数のレジスタを配置することも可能である。従って、本実施例では、マスタプロセッサが1個、スレーブプロセッサが4個の構成となっているが、例えばスレーブプロセッサを255個以上も受ける構成も可能である。   As shown in FIG. 7, the activation processing circuit 63 includes an activation request register 65 and an activation completion register 66. These registers are 8 bits, and there are 4 slave processors, so the lower 4 bits are used. The number of bits used can be increased to the bit width of ibus0 according to the number of slave processors. If there is a need for further increase, a plurality of registers can be arranged. Therefore, in this embodiment, the configuration is one master processor and four slave processors. However, for example, it is possible to receive 255 or more slave processors.

図7の起動処理回路63においては、マスタプロセッサ31Aが、バスibus0を介して起動すべきスレーブプロセッサ(31B〜31Eのいずれか)に対応するビット位置に”1”を立てた所望のデータを起動要求レジスタ65に書込む。例えば、スレーブプロセッサ31Bのみを起動する場合には、8ビットデータとして”00000001”を書き込み、すべてのスレーブプロセッサを起動する場合には、8ビットデータとして”00001111”を書込む。上位4ビットは、対応するスレーブプロセッサが存在しないため”0000”としてある。   In the activation processing circuit 63 of FIG. 7, the master processor 31A activates desired data with “1” set in the bit position corresponding to the slave processor (any one of 31B to 31E) to be activated via the bus ibus0. Write to request register 65. For example, when only the slave processor 31B is activated, “00000001” is written as 8-bit data, and when all slave processors are activated, “000011111” is written as 8-bit data. The upper 4 bits are set to “0000” because there is no corresponding slave processor.

上記のような書き込み動作により、スレーブプロセッサ31Bのみが起動する場合、起動割込み信号のうち、対応する信号ireq1のみが”1”となり、スレーブプロセッサ31Bに割込み信号として送出される。スレーブプロセッサ31Bは、信号ireq1を受け取ると起動処理を開始すると共に、起動要求に対する返答信号iack1を送出する。この返答信号iack1は、起動完了レジスタ66に読み込まれ、これをマスタプロセッサ31Aがibus0を介して読み込み、このレジスタの内容が”00000001”であることから、スレーブプロセッサ31Bへの起動が成功したことを知る。   When only the slave processor 31B is activated by the write operation as described above, only the corresponding signal ireq1 among the activation interrupt signals becomes “1” and is sent to the slave processor 31B as an interrupt signal. When the slave processor 31B receives the signal ireq1, the slave processor 31B starts the activation process and sends a response signal iack1 to the activation request. This response signal iack1 is read into the activation completion register 66, and the master processor 31A reads it through ibus0. Since the contents of this register is “00000001”, it indicates that the activation to the slave processor 31B was successful. know.

なお、起動要求レジスタ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 master processor 31A.

図8に示すように、終了処理回路64は、終了報告レジスタ67と、終了完了レジスタ68とで構成される。これらのレジスタは8ビット構成で、そのうちの下位4ビットを使用するが、起動処理回路と同様に、任意のビット幅を使用することが可能である。   As shown in FIG. 8, the end processing circuit 64 includes an end report register 67 and an end completion register 68. These registers have an 8-bit configuration, and the lower 4 bits are used, but any bit width can be used as in the activation processing circuit.

図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 termination processing circuit 64 of FIG. 8, slave interrupt circuits 62B to 62E attached to the slave processors 31B to 31E send signals irq1 to 4 indicating the termination of the thread processing to the termination report register 67. The signals irq1 to irq4 are further input to the OR circuit 69, and an interrupt signal ireq0 is sent to the master processor 31A accordingly. With this interrupt, the master processor 31A enters an interrupt operation and reads the contents of the end report register 67 via ibus0. For example, when only the slave processor 31B notifies the end, “00000001” is read as 8-bit data, and when all the slave processors notify the end, “00001111” is displayed as the 8-bit data. Is read. The upper 4 bits are set to “0000” because there is no corresponding slave processor.

スレーブプロセッサ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 slave processor 31B, only the corresponding signal irq1 among the end interrupt signals becomes “1” by the read operation as described above, and is sent to the master processor 31A as an interrupt signal. When the master processor 31A receives the signal ireq0, the master processor 31A starts an end process, sends a reply signal iack0 to the interrupt, and writes “00000001” to the end completion register 68 via the ibus0. The response signal iak1 to irq1 is sent to the corresponding slave processors 31B to 31E by the output of the end completion register 68 and the AND circuits 70B to 70E. Thus, the slave processor 31B knows that the thread end notification has been correctly received by the master processor 31A.

なお、終了要求レジスタ67の内容は、マスタプロセッサ31Aの割込みインターフェース規定を守る必要があるので、適当なタイミングでリセットされる。   Note that the contents of the termination request register 67 are reset at an appropriate timing because it is necessary to comply with the interrupt interface specification of the master processor 31A.

図9に示すように、スレーブ割込み回路62は、終了報告レジスタ71と、受付完了レジスタ72と、から構成される。これらのレジスタは、8ビット構成で、その下位1ビットを使用する例を示している。   As shown in FIG. 9, the slave interrupt circuit 62 includes an end report register 71 and an acceptance completion register 72. These registers have an 8-bit configuration and show an example in which the lower 1 bit is used.

スレーブプロセッサ31B〜31Eは、スレッド処理が終了すると、終了をマスタプロセッサ31Aに通知して、マスタプロセッサ31Aが終了処理に入る必要がある。スレーブプロセッサ31B〜31Eは、独立に同様の動作が行われるので、以下においては、スレーブプロセッサ31Bから終了通知を行う場合について説明する。   When the thread processing ends, the slave processors 31B to 31E notify the master processor 31A of the end, and the master processor 31A needs to enter the end processing. Since the slave processors 31B to 31E perform the same operation independently, a case where the end notification is given from the slave processor 31B will be described below.

まず、スレーブプロセッサ31Bは、ibus1を介して終了報告レジスタ71に”00000001”を書込む。これにより、終了割込み信号irq1がマスタ割込み回路61に送出される。その後のマスタ割込み回路61及びマスタプロセッサ31Aの動作についてはすでに説明したので、ここでは省略する。終了報告がマスタプロセッサ31Aで受け付けられると、マスタ割込み回路61を介して受付返答信号iak1がスレーブ割込み回路62に送出され、スレーブ割込み回路62はこの信号を受付完了レジスタ72の最下位ビットに”1”を設定する。   First, the slave processor 31B writes “00000001” to the end report register 71 via ibus1. As a result, the end interrupt signal irq1 is sent to the master interrupt circuit 61. Since the subsequent operations of the master interrupt circuit 61 and the master processor 31A have already been described, they are omitted here. When the completion report is accepted by the master processor 31A, an acceptance response signal iak1 is sent to the slave interrupt circuit 62 via the master interrupt circuit 61, and the slave interrupt circuit 62 sends this signal to the least significant bit of the acceptance completion register 72 as “1”. "Is set.

スレーブプロセッサ31Bは、ibus1を通じて受付完了レジスタ72を読み込み、その内容が”00000001”であれば、終了通知信号irq1に対する返答信号iak1が返信されたかを知る。これにより、スレーブプロセッサ31Bは、スレッド終了通知が正しくマスタプロセッサ31Aに受信されたことを知る。   The slave processor 31B reads the reception completion register 72 through ibus1, and if the content is “00000001”, the slave processor 31B knows whether a response signal iaak1 to the end notification signal irq1 has been returned. Thereby, the slave processor 31B knows that the thread end notification has been correctly received by the master processor 31A.

以上のように、マスタプロセッサ31Aとスレーブプロセッサ31B〜31Eは、前記した構成を有していれば、これにプロセッサ間接続回路を付加することにより所望のマルチプロセッサ機能を果たすことができる。したがって、マスタプロセッサ31Aとスレーブプロセッサ31B〜31E、さらにスレーブプロセッサ31B〜31Eそれぞれの命令体系が異なる場合においても同様に動作させることができる効果を有する。
以上で、プロセッサ間接続回路32の説明を終了する。次に、バス調停回路33を説明する。
As described above, if the master processor 31A and the slave processors 31B to 31E have the above-described configuration, a desired multiprocessor function can be achieved by adding an interprocessor connection circuit thereto. Therefore, the master processor 31A and the slave processors 31B to 31E and the slave processors 31B to 31E can be operated in the same manner even when the instruction systems are different.
This is the end of the description of the inter-processor connection circuit 32. Next, the bus arbitration circuit 33 will be described.

図10の(A)は、実施例のバス調停回路33の構成を示す図である。この回路は、マスタプロセッサ31A及び4個のスレーブプロセッサ31B〜31Eからのバス制御0〜4の信号の間のバス占有権を調停する。   FIG. 10A is a diagram illustrating a configuration of the bus arbitration circuit 33 according to the embodiment. This circuit arbitrates bus occupancy between the bus control signals 0 to 4 from the master processor 31A and the four slave processors 31B to 31E.

このバス調停回路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 bus arbitration circuit 33 performs arbitration based on an arbitration method called a round robin method, but is not limited to this. Since the bus arbitration circuit 33 always accepts the signals breq0 to breq4 requesting the occupation of the shared bus 34, the five flip-flops (FF00-40) 81A to 81E triggered by the clock signal clk0 and the priority of the bus occupation right 5 for giving an occupancy right when the output of a set of five FFs (FF01-41) 82A to 82E and two corresponding FFs of FF81A to 81E and FF82A to 82E is "1" Each AND circuit 83A-83E is comprised. As for the input / output terminals of the ten flip-flops (FFij), terminals other than the illustrated S and R terminals of the FFs 82A to 82E are shown in FIG.

実施例のマルチプロセッサシステムが電源投入により立ち上がる時に、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 FF 82A, and R (to set “0” to the FFs 82B to 82E. Input to the (Reset) terminal. As a result, immediately after the start of the multiprocessor system, the master processor 31A has the highest priority bus occupation right. In this state, when the bus request signal breq0 is sent from the master processor 31A, the output of the FF 81A becomes “1”, and the output of the FF 82A is already “1”, so the AND circuit 83A causes the bus occupation permission signal back0. Becomes “1”, and the master processor 31 A occupies the shared bus 34. The master processor 31A occupies the shared bus 34 when the bus 0 (address bus, data bus) is activated by a bus drive signal sent from the control unit 45 of FIG. 3 to the memory interface 44.

この間、スレーブプロセッサ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 slave processors 31B to 31E, and even if the outputs of the FFs 81B to 81E are “1”, the outputs of the FFs 82B to 82E are “0”, so the AND circuits 83B to 83E occupy the bus. The permission signals back1 to back4 are “0”, and the buses 1 to 4 are not active in the slave processors 31B to 31E, so that the slave processors 31B to 31E are disconnected from the shared bus 34.

マスタプロセッサ31Aのバス占有が終了すると、クロックclkmにより、FF82A〜82Eがトリガーされ、FF82Aの出力がFF82Bの入力に、以下前段のFFの出力が後段のFFの入力に、そしてFF82Eの出力がFF82Aの入力に接続されているので、FF82Bの出力が”1”に、FF82Aの出力が”0”となり、バス占有の優先権はFF82B、すなわちスレーブプロセッサ31Bに移る。このようにして、共有バス34を占有するたびに優先権を隣接する未占有のプロセッサに移していくことにより、プロセッサ間で均等な共有バスの占有が行える。   When the master processor 31A occupies the bus, the clock clkm triggers the FFs 82A to 82E, the output of the FF 82A becomes the input of the FF 82B, the output of the previous FF becomes the input of the subsequent FF, and the output of the FF 82E becomes FF 82A. Therefore, the output of the FF 82B becomes “1”, the output of the FF 82A becomes “0”, and the bus occupation priority shifts to the FF 82B, that is, the slave processor 31B. In this way, each time the shared bus 34 is occupied, the priority is transferred to the adjacent unoccupied processor, so that the shared bus can be evenly shared among the processors.

なお、図示していないが、バス占有権を有するプロセッサに隣接するプロセッサが共有バスの占有を要求していない場合には、さらにそのプロセッサに隣接するプロセッサへと占有権を移すという方法をとることもある。また、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 slave processors 31B to 31E while the main program in the application program is being executed by the master processor 31A, (1) it is executed by a function call. When a function call occurs, (2) control is transferred to the OS (operating system), and (3) control is transferred to a master management program that manages the idle state of the slave processor and the like together with function processing. Thereafter, one of the slave processors 31B to 31E is selected, and (4) the slave processor 31B is activated by the inter-processor connection circuit 32, for example. At this point, the master processor 31A can continue the main program of the application program.

スレーブプロセッサ31Bは、スレーブ管理プログラムを実行し、(5)スレッド起動情報の読み込み、(6)読み込んだ起動情報により対応するスレッド#nの実行を行う。   The slave processor 31B executes the slave management program, and (5) reads the thread activation information and (6) executes the thread #n corresponding to the read activation information.

次に、スレッド#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 memory 35. When this is completed, the process returns to (7) the slave management program, and (8) this Execution of the program passes control to the master management program through the inter-processor connection circuit. The master management program performs a procedure for releasing the terminated slave processor 31B. The thread execution result in the slave processor 31B is read from the predetermined location in the shared memory 35 at the time specified in the main program and used. When a plurality of thread processes are executed, the execution results of the respective thread processes may be read and processed after all the thread processes are completed.

図12は、実施例のマルチプロセッサシステムにおける、マスタプロセッサ31Aからスレーブプロセッサ31B、31Cへのスレッド処理の割当てを説明する図である。ここでは、スレーブプロセッサ31B、31Cが空き状態にあり、スレーブプロセッサ31D、31Eがすでに他のスレッド処理を実行しているとする。   FIG. 12 is a diagram illustrating thread processing assignment from the master processor 31A to the slave processors 31B and 31C in the multiprocessor system according to the embodiment. Here, it is assumed that the slave processors 31B and 31C are in an empty state, and the slave processors 31D and 31E are already executing other thread processes.

図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 thread processes 1 to 4 in the program are allocated to the slave processors 31B to 31E. FIG. 12B shows a slave management table showing slave processor management by the master management software shown in FIG.

マスタプロセッサ31Aが、プログラム中の関数thread create()を実行する場合、関数処理のため、まずOSにリンクし、関数thread create()の実行過程で、マスタ管理ソフトウエアの管理下にあるスレーブ管理テーブルを用いて、スレーブプロセッサ31B〜31Eへのスレッド処理の割当てを以下のように行う。スレーブ管理テーブルは、”0”の時に空き状態を、”1”の時に動作中を示すとする。スレーブ管理テーブルは、マルチプロセッサシステムの立ち上がり時に該当するメモリ番地に、”0”を書込むことにより初期化される。   When the master processor 31A executes the function thread create () in the program, for function processing, the master processor 31A first links to the OS, and in the course of executing the function thread create (), slave management under the management of the master management software. Using the table, thread processing is assigned to the slave processors 31B to 31E as follows. It is assumed that the slave management table indicates an empty state when “0” and indicates that it is operating when “1”. The slave management table is initialized by writing “0” to the corresponding memory address when the multiprocessor system starts up.

(1)スレーブ管理テーブルの初期状態
初期状態は、スレーブプロセッサ31B、31Cが共に空き状態で、スレーブプロセッサ31D、31Eは他のスレッド処理をすでに実行中であるとする。空き状態が”0”の時には、タスク番号、スレッド番号は無意味であるため、テーブル中には”−”が示されている。
(1) Initial state of slave management table In the initial state, it is assumed that both the slave processors 31B and 31C are empty and the slave processors 31D and 31E are already executing other thread processes. When the free state is “0”, the task number and thread number are meaningless, so “−” is shown in the table.

(2)スレッド1の割当て
スレーブプロセッサ31B、31Dが空き状態であることがわかると、マスタ管理ソフトウエアは、スレーブプロセッサ31Bを確保し、空き状態を示す該当メモリ番地に”1”を書込む。さらに、割当てるスレッド1のタスク番号(仮に”5”)、そのスレッド番号”1”を該当メモリ番地に書き込み、スレーブプロセッサ31Bに前述したように起動割込みをかける。これにより、スレーブ管理テーブルは図12の(B)のように変化する。
(2) Allocation of thread 1 When the slave processors 31B and 31D are found to be free, the master management software secures the slave processor 31B and writes “1” to the corresponding memory address indicating the free state. Furthermore, the task number of the thread 1 to be allocated (assuming “5”) and the thread number “1” are written in the corresponding memory address, and the activation interrupt is applied to the slave processor 31B as described above. As a result, the slave management table changes as shown in FIG.

(3)スレッド2の割当て
(2)と同様に、スレーブプロセッサ31Cにスレッド2を割当てるため、空き状態に”1”、タスク番号に”5”、スレッド番号に”2”を書き込み、スレーブプロセッサ31Cに起動割込みをかける。以後、スレーブプロセッサには空きがないため、マスタプロセッサ31Aは、スレッド番号3以上のスレッド処理は、動作中のスレーブプロセッサ31B〜31Eのいずれかが実行中のスレッド処理を終了するまで待ち状態となる。これにより、スレーブ管理テーブルは図12の(B)のように変化する。この状態で、マスタプロセッサ31Aで他の処理を必要としない場合に、マスタプロセッサ31Aをスリープ状態とすることが可能となる。
(3) Allocation of thread 2 As in (2), in order to allocate thread 2 to the slave processor 31C, “1” is written in the idle state, “5” is written in the task number, and “2” is written in the thread number. A start interrupt. Thereafter, since there is no free space in the slave processor, the master processor 31A waits for the thread processing of the thread number 3 or more until one of the operating slave processors 31B to 31E finishes the thread processing being executed. . As a result, the slave management table changes as shown in FIG. In this state, when the master processor 31A does not require other processing, the master processor 31A can be put in the sleep state.

(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 master processor 31A writes “0” in the free state portion of the corresponding processor in the slave management table, and if there is a waiting thread process (here thread 3), (2) Or, in the same manner as in (3), the thread 3 in the waiting state is allocated.

以上説明したように、本発明のマルチプロセッサシステムは、標準のプロセッサ、及び標準の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.

マルチプロセッサシステムの従来例の概略構成を示す図である。It is a figure which shows schematic structure of the prior art example of a multiprocessor system. 本発明の実施例のマルチプロセッサシステムの全体構成を示す図である。1 is a diagram showing an overall configuration of a multiprocessor system according to an embodiment of the present invention. 実施例のマルチプロセッサシステムにおけるマスタプロセッサの構成を示す図である。It is a figure which shows the structure of the master processor in the multiprocessor system of an Example. 実施例のマルチプロセッサシステムにおけるスレーブプロセッサの構成を示す図である。It is a figure which shows the structure of the slave processor in the multiprocessor system of an Example. 実施例のマルチプロセッサシステムにおけるプロセッサ間接続回路の構成を示す図である。It is a figure which shows the structure of the connection circuit between processors in the multiprocessor system of an Example. 実施例のマルチプロセッサシステムのプロセッサ間接続回路におけるマスタ割込み回路の構成を示す図である。It is a figure which shows the structure of the master interruption circuit in the inter-processor connection circuit of the multiprocessor system of an Example. 実施例のマスタ割込み回路における起動処理回路の構成を示す図である。It is a figure which shows the structure of the starting process circuit in the master interruption circuit of an Example. 実施例のマスタ割込み回路における終了処理回路の構成を示す図である。It is a figure which shows the structure of the completion | finish processing circuit in the master interruption circuit of an Example. 実施例のマルチプロセッサシステムのプロセッサ間接続回路におけるスレーブ割込み回路の構成を示す図である。It is a figure which shows the structure of the slave interrupt circuit in the inter-processor connection circuit of the multiprocessor system of an Example. 実施例のマルチプロセッサシステムのバス調停回路の構成を示す図である。It is a figure which shows the structure of the bus arbitration circuit of the multiprocessor system of an Example. 実施例のマルチプロセッサシステムにおけるメモリアクセスと関連させたソフトウエア動作を説明する図である。It is a figure explaining the software operation linked | related with the memory access in the multiprocessor system of an Example. 実施例のマルチプロセッサシステムにおけるスレッド処理の割当て動作を説明する図である。It is a figure explaining the allocation operation | movement of the thread process in the multiprocessor system of an Example.

符号の説明Explanation of symbols

31A マスタプロセッサ
31B〜31E スレーブプロセッサ
32 プロセッサ間接続回路
33 バス調停回路
34 共有バス
35 共有メモリ
31A Master processor 31B to 31E Slave processor 32 Inter-processor connection circuit 33 Bus arbitration circuit 34 Shared bus 35 Shared memory

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.
前記少なくとも1個のスレーブプロセッサは、前記スレッド処理が終了した後スリープ状態になる請求項1に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the at least one slave processor enters a sleep state after the thread processing is completed. 前記マスタプロセッサは、前記起動要求後、前記スレッド処理が終了するまで待ち状態の場合にスリープ状態になる請求項1に記載のマルチプロセッサシステム。   2. The multiprocessor system according to claim 1, wherein the master processor enters a sleep state when the master processor is in a waiting state until the thread processing is completed after the activation request. 前記マスタプロセッサと前記少なくとも1個のスレーブプロセッサは、同じ構成を有する請求項1に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the master processor and the at least one slave processor have the same configuration. 前記マスタプロセッサと前記少なくとも1個のスレーブプロセッサは、異なる構成を有する請求項1に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the master processor and the at least one slave processor have different configurations. 前記マスタプロセッサと前記少なくとも1個のスレーブプロセッサは、1チップに設けられている請求項1から5のいずれか1項に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 1, wherein the master processor and the at least one slave processor are provided in one chip. 前記1チップには、前記共有メモリも設けられている請求項6に記載のマルチプロセッサシステム。   The multiprocessor system according to claim 6, wherein the shared memory is also provided in the one chip.
JP2006039348A 2006-02-16 2006-02-16 Multiprocessor system Pending JP2007219816A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (19)

* Cited by examiner, † Cited by third party
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