JP2007156557A - Parallel processor - Google Patents

Parallel processor Download PDF

Info

Publication number
JP2007156557A
JP2007156557A JP2005346951A JP2005346951A JP2007156557A JP 2007156557 A JP2007156557 A JP 2007156557A JP 2005346951 A JP2005346951 A JP 2005346951A JP 2005346951 A JP2005346951 A JP 2005346951A JP 2007156557 A JP2007156557 A JP 2007156557A
Authority
JP
Japan
Prior art keywords
instruction
execution unit
operation mode
processor
nop
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
JP2005346951A
Other languages
Japanese (ja)
Inventor
Kenta Yasufuku
健太 安福
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005346951A priority Critical patent/JP2007156557A/en
Publication of JP2007156557A publication Critical patent/JP2007156557A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the using efficiency of the instruction memory of parallel processors which allows a plurality of processors to operate in parallel according to an extended instruction. <P>SOLUTION: An operation mode and instruction length are designated by a branch instruction, and an instruction fetch/instruction data supply unit 500 is controlled based on the operation mode information and the instruction length information so that when a core processor 200 operates, it is not necessary to embed any non-operation(NOP) instruction to non-operating core processor #1(300) and/or core processor #2(400) in an instruction memory 100, and that even when a processor 1 is put in a parallel operation mode, it is not necessary to embed the NOP instruction to the non-parallel operating core processor #1(300) and/or core processor #2(400) in the instruction memory 100. Furthermore, it is possible to improve the using efficiency of the instruction memory 100 by selecting the instruction of instruction length capable of designating the parallel operation of the core processor #1(300) and/or core processor #2(400) in a range necessary for processing under an extended instruction. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、拡張命令によって複数のプロセッサを並列動作させる並列プロセッサに関する。特に、単一のプロセッサ動作による処理モードと複数のプロセッサの並列動作による処理モードにおける命令について、命令メモリの利用効率を向上させるための技術に関する。   The present invention relates to a parallel processor in which a plurality of processors are operated in parallel by an extension instruction. In particular, the present invention relates to a technique for improving instruction memory utilization efficiency for instructions in a processing mode by a single processor operation and a processing mode by a parallel operation of a plurality of processors.

近年では、電子機器にプロセッサを組み込んで高性能化が図られているが、このような電子機器に求められる処理能力が年々高くなってきることから、組み込みプロセッサ自身の処理能力も、年々高いものが求められるようになってきている。このため、最近の組み込みプロセッサには、命令レベルの並列度(ILP:Instruction Level Parallelism)を向上させるスーパースカラ・アーキテクチャや、超長命令語(VLIW:Very Long Instruction Word)アーキテクチャなどの手法を採用しているものがある。   In recent years, high performance has been achieved by incorporating a processor in an electronic device. However, since the processing capability required for such an electronic device is increasing year by year, the processing capability of the embedded processor itself is also increasing year by year. Has come to be required. For this reason, techniques such as a superscalar architecture that improves instruction level parallelism (ILP) and a very long instruction word (VLIW) architecture are adopted for recent embedded processors. There is something that is.

一方、組み込みプロセッサが実装される機器側では、機器のコストを低減させることと、機器の電力消費を低減させることが求められている。このため、組み込みプロセッサにスーパースカラ・アーキテクチャを採用した場合、命令の依存関係を命令実行時にチェックする機構と、動的に実行順序を制御する機構などが必要となって、回路が複雑化してチップサイズが大きくなってコストアップとなり、また消費電力が高くなる課題がある。また、組み込みプロセッサにVLIWアーキテクチャを採用した場合、同時並列に実行する命令がない時には該当する命令スロットに対して、データ処理などを行わせない無操作(NOP:No OPeration)命令を配置する必要がある為、命令メモリの利用効率が低下する課題があった。   On the other hand, on the device side where the embedded processor is mounted, it is required to reduce the cost of the device and reduce the power consumption of the device. For this reason, when the superscalar architecture is adopted for the embedded processor, a mechanism for checking the dependency relation of instructions at the time of instruction execution and a mechanism for dynamically controlling the execution order are required. There is a problem that the size is increased, the cost is increased, and the power consumption is increased. Further, when the VLIW architecture is adopted for the embedded processor, it is necessary to arrange a no operation (NOP) instruction that does not perform data processing or the like in the corresponding instruction slot when there is no instruction to be executed simultaneously in parallel. For this reason, there is a problem in that the use efficiency of the instruction memory is lowered.

これに対して、命令区切り情報を設けて、命令を可変長として命令メモリの利用効率向上を図ったVLIWアーキテクチャのプロセッサ技術が知られている(例えば、特許文献1参照。)。   On the other hand, a processor technology of the VLIW architecture in which instruction delimiter information is provided and the instruction memory is variable length to improve the use efficiency of the instruction memory is known (see, for example, Patent Document 1).

更に、VLIWアーキテクチャのプロセッサに動作モードを設けて、単一のプロセッサが動作するモードでは命令処理を行わない他のプロセッサに対するNOP命令を命令メモリに配置不要として、命令メモリの利用効率向上を図る技術が知られている(例えば、特許文献2参照。)。
特開2001−100997号公報 (第3−4頁、図3) 特許第3616556号公報 (第4−11頁、図3)
Further, a technique for improving the use efficiency of the instruction memory by providing an operation mode in the processor of the VLIW architecture so that the NOP instruction for the other processor that does not perform the instruction processing is not arranged in the instruction memory in the mode in which the single processor operates. (For example, refer to Patent Document 2).
JP 2001-100997 A (page 3-4, FIG. 3) Japanese Patent No. 3616556 (page 4-11, FIG. 3)

しかしながら、前記特許文献1に開示される各命令に命令区切り情報を付加する方法では、処理命令以外の情報が命令メモリに配置されるため命令メモリの利用効率が低下する問題がある。また、前記特許文献2に開示される並列プロセッサは、単一プロセッサが動作するモードでは、他のプロセッサに対するNOP命令を不要として命令利用効率向上を図ることができる。しかし、処理用途に適した複数種類のプロセッサを内蔵して、それらのプロセッサを適宜並列動作させて消費電力の低下と処理性能の向上を実現するようにした並列プロセッサでは、多ビットの拡張命令で並列動作を指示する場合に、動作させないプロセッサに対するNOP命令が必要となり、命令メモリの利用効率が低下する課題があった。   However, the method of adding instruction delimiter information to each instruction disclosed in Patent Document 1 has a problem that the use efficiency of the instruction memory is lowered because information other than the processing instruction is arranged in the instruction memory. Further, the parallel processor disclosed in Patent Document 2 can improve instruction use efficiency by eliminating the need for NOP instructions for other processors in a mode in which a single processor operates. However, a parallel processor that incorporates multiple types of processors suitable for processing applications and operates them in parallel as appropriate to reduce power consumption and improve processing performance. When a parallel operation is instructed, a NOP instruction is required for a processor that is not operated, and there is a problem in that the use efficiency of the instruction memory is reduced.

本発明は、上記課題を解決するためになされたもので、動作モードを設けてVLIW動作モード時の拡張命令の命令長を可変として、命令メモリの利用効率の高い並列プロセッサを提供することを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a parallel processor having a high instruction memory utilization efficiency by providing an operation mode and changing the instruction length of an extended instruction in the VLIW operation mode. And

上記目的を達成するために、本発明の並列プロセッサは、少なくとも第1および第2のプロセッサで構成され、各プロセッサで実行される命令を同一サイクルにおいて並列にパイプライン処理する並列プロセッサであって、前記第1のプロセッサに設けられる第1の命令実行部および命令フェッチ供給部と、前記第2のプロセッサに設けられる第2の命令実行部と、前記第1の命令実行部およびまたは前記第2の命令実行部で実行される命令を記憶する命令メモリとを備え、前記命令フェッチ供給部は、前記命令メモリから前記命令を読み出すためのアドレスを指定するカウンタ手段と、前記命令メモリから読み出した前記命令を保持する命令バッファ手段と、前記命令メモリの読出し動作に応じて前記第1の命令実行部および前記第2の命令実行部を動作させる第1の動作モードと、前記第2の命令実行部を動作させる第2の動作モードの制御情報を出力する動作モード制御手段と、所定ビット長のNOP命令を生成するNOP命令生成手段と、前記動作モード制御手段からの前記動作モードの制御情報に基づいて、前記第1の動作モードの場合は、前記第1の命令実行部に前記命令バッファ手段からの前記命令の一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給するとともに、前記第2の命令実行部に前記命令の残りの一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給し、前記第2の動作モードの場合は、前記命令バッファ手段からの前記命令の一部又は全部を前記第2の命令実行部に供給する命令供給手段とを具備することを特徴とする。    In order to achieve the above object, a parallel processor of the present invention is a parallel processor that includes at least a first processor and a second processor and pipelines instructions executed in each processor in parallel in the same cycle, A first instruction execution unit and an instruction fetch supply unit provided in the first processor; a second instruction execution unit provided in the second processor; the first instruction execution unit and / or the second An instruction memory for storing instructions to be executed by the instruction execution unit, wherein the instruction fetch supply unit includes counter means for designating an address for reading the instructions from the instruction memory, and the instructions read from the instruction memory Instruction buffer means for holding the first instruction execution unit and the second instruction in response to a read operation of the instruction memory. A first operation mode for operating the execution unit; an operation mode control means for outputting control information for the second operation mode for operating the second instruction execution unit; and a NOP instruction for generating a NOP instruction having a predetermined bit length Based on the control information of the operation mode from the generation unit and the operation mode control unit, in the case of the first operation mode, a part of the instruction from the instruction buffer unit is sent to the first instruction execution unit. And an instruction consisting of the remaining part of the instruction and the NOP instruction from the NOP instruction generation means to the second instruction execution unit. And in the second operation mode, an instruction supply means for supplying a part or all of the instructions from the instruction buffer means to the second instruction execution section. The features.

本発明によれば、拡張命令によって複数のプロセッサを並列動作させる並列プロセッサにおいて、動作させないプロセッサに供給する無操作(NOP)命令を命令メモリに埋め込むことを不要とするとともに、並列動作時の拡張命令の命令長を可変とすることで高い処理性能が必要な関数の処理では複数のプロセッサを並列動作させることができ、また他の関数では、必要に応じた数のプロセッサを並列動作させるような命令長の命令を選択してプログラムを記述したことで、命令メモリの利用効率の高い並列プロセッサを提供することができる。   According to the present invention, in a parallel processor in which a plurality of processors are operated in parallel by an extension instruction, it is not necessary to embed a no-operation (NOP) instruction to be supplied to a processor that is not operated in the instruction memory, and an extension instruction during parallel operation In the processing of functions that require high processing performance by making the instruction length variable, multiple processors can operate in parallel, and in other functions, instructions that operate as many processors as necessary in parallel By selecting a long instruction and describing a program, it is possible to provide a parallel processor with high instruction memory utilization efficiency.

以下、本発明の実施例を説明する。   Examples of the present invention will be described below.

本発明の第1の実施例を、図1乃至図6を参照して説明する。   A first embodiment of the present invention will be described with reference to FIGS.

図1は、第1の実施例に係る並列プロセッサを内蔵したプロセッサのブロック図である。図2は、並列プロセッサを動作させる「拡張命令」の命令フォーマットを示す図である。図3は、「拡張命令」を含む命令列を示す図である。図4は、命令メモリ上の「拡張命令」の配置状況を示す図である。図5は、パイプラインプロセッサのステージ構成を示す図である。図6は命令フェッチ・命令供給ユニットの構成を示すブロック図である。   FIG. 1 is a block diagram of a processor incorporating a parallel processor according to the first embodiment. FIG. 2 is a diagram showing an instruction format of an “extended instruction” for operating the parallel processor. FIG. 3 is a diagram illustrating an instruction sequence including an “extended instruction”. FIG. 4 is a diagram showing a state of arrangement of “extension instructions” on the instruction memory. FIG. 5 is a diagram showing a stage configuration of the pipeline processor. FIG. 6 is a block diagram showing the configuration of the instruction fetch / instruction supply unit.

図1に示すプロセッサ1は、命令メモリ100を内蔵し、例えばコアプロセッサ200とコプロセッサ#1(300)とコプロセッサ#2(400)とから構成される並列プロセッサである。そして、コアプロセッサ200が単独で動作するコア動作モードと、コアプロセッサ200とコプロセッサ#1(300)およびまたはコプロセッサ#2(400)が連携して、1つのVLIWプロセッサとして動作するVLIW(並列)動作モードを有する。   The processor 1 shown in FIG. 1 is a parallel processor that includes an instruction memory 100 and includes, for example, a core processor 200, a coprocessor # 1 (300), and a coprocessor # 2 (400). Then, the core operation mode in which the core processor 200 operates alone, and the VLIW (parallel) in which the core processor 200 and the coprocessor # 1 (300) and / or the coprocessor # 2 (400) operate as one VLIW processor. ) It has an operation mode.

命令メモリ100は、コアプロセッサ200がデコードし実行する「基本命令」と、コアプロセッサ200とコプロセッサ#1(300)およびまたはコプロセッサ#2(400)がデコードし実行する「拡張命令」から構成される(オブジェクト)プログラムを記憶する。プログラムは、図示しないがプロセッサ1に接続された外部記憶装置から命令メモリ100に適宜ロードされる。   The instruction memory 100 includes “basic instructions” that are decoded and executed by the core processor 200 and “extended instructions” that are decoded and executed by the core processor 200 and the coprocessor # 1 (300) and / or the coprocessor # 2 (400). Stored (object) program. Although not shown, the program is appropriately loaded into the instruction memory 100 from an external storage device connected to the processor 1.

コアプロセッサ200は、命令メモリ100へ次に実行する命令のメモリアドレスを出力して命令を読込み(フェッチ)、読込んだ命令をコアプロセッサ200とコプロセッサ#1(300)およびまたはコプロセッサ#2(400)に供給する命令フェッチ・命令データ供給ユニット500と、命令フェッチ・命令データ供給ユニット500の動作制御情報を記憶する制御情報記憶部600と、読込んだ命令をデコード実行するデコード実行部700とからなるパイプライン構成のプロセッサである。   The core processor 200 outputs the memory address of the next instruction to be executed to the instruction memory 100 to read (fetch) the instruction, and read the read instruction to the core processor 200 and the coprocessor # 1 (300) and / or the coprocessor # 2. An instruction fetch / instruction data supply unit 500 to be supplied to (400), a control information storage unit 600 for storing operation control information of the instruction fetch / instruction data supply unit 500, and a decode execution unit 700 for decoding and executing the read instruction. Is a pipeline processor consisting of

命令フェッチ・命令データ供給ユニット500は、次に実行する命令のメモリアドレスを生成または選択して命令メモリ100に出力して命令を読込む。この時、制御情報記憶部600からの制御情報がコア動作モードであれば命令メモリ100から読込む命令は「基本命令」であり、コアプロセッサ200のデコード実行部700に「基本命令」を供給する。   The instruction fetch / instruction data supply unit 500 generates or selects a memory address of an instruction to be executed next, outputs it to the instruction memory 100, and reads the instruction. At this time, if the control information from the control information storage unit 600 is the core operation mode, the instruction read from the instruction memory 100 is the “basic instruction”, and the “basic instruction” is supplied to the decode execution unit 700 of the core processor 200. .

また、制御情報記憶部600からの制御情報が並列動作モードであれば、命令メモリ100から読込む前記制御情報で指定されるサイズ(長さ)の命令は「拡張命令」であり、その「拡張命令」のコプロセッサ用の命令フィールド(コプロ)の内容に基づく命令をコプロセッサ#1(300)のデコード実行部710およびまたはコプロセッサ#2(400)のデコード実行部720に供給する。同時に、当該「拡張命令」にコアプロセッサ200用の命令フィールド(コア)が含まれれば、その命令フィールドの内容に基づく命令をコアプロセッサ200のデコード実行部700に供給する。   If the control information from the control information storage unit 600 is the parallel operation mode, the instruction of the size (length) specified by the control information read from the instruction memory 100 is an “extended instruction”. The instruction based on the contents of the instruction field (co-pro) for the coprocessor of “instruction” is supplied to the decode execution unit 710 of the coprocessor # 1 (300) and / or the decode execution unit 720 of the coprocessor # 2 (400). At the same time, if the “extended instruction” includes an instruction field (core) for the core processor 200, an instruction based on the contents of the instruction field is supplied to the decode execution unit 700 of the core processor 200.

制御情報記憶部600には、デコード実行部700で実行された命令によって設定されるプロセッサ1の動作モードや、コアプロセッサ200やコプロセッサ#1(300)およびまたは#2(400)で実行される拡張命令の命令長の制御情報が記憶され、プロセッサ1の命令読出し動作において命令フェッチ・命令データ供給ユニット500に制御情報を出力する。なお、電源投入やリセット信号などで制御情報記憶部600の記憶内容は初期化されて、基本命令を読込み実行するコア動作モードの制御情報を出力するが、割込み信号などに基づく割込み処理で記憶内容が初期化される場合は、制御情報記憶部600の記憶内容が図示していない特定の記憶部に保存されて、割込み処理からの復帰が可能なように構成されている。   The control information storage unit 600 is executed by the operation mode of the processor 1 set by the instruction executed by the decode execution unit 700, the core processor 200, the coprocessor # 1 (300), and / or # 2 (400). Control information of the instruction length of the extended instruction is stored, and the control information is output to the instruction fetch / instruction data supply unit 500 in the instruction read operation of the processor 1. The stored contents of the control information storage unit 600 are initialized by power-on, reset signal, etc., and the control information of the core operation mode for reading and executing the basic instruction is output. However, the stored contents by the interrupt processing based on the interrupt signal etc. Is initialized, the storage contents of the control information storage unit 600 are stored in a specific storage unit (not shown) so that the process can be returned from the interrupt process.

デコード実行部700は、命令フェッチ・命令データ供給ユニット500から供給される命令をデコードし実行する。この命令には、一般的な組込みプロセッサが有する命令が含まれていて、デコード実行部700は、プロセッサ1内に設けられているデータポートやデータメモリとの間の読出しや書込みやデータ演算処理などを行う。それ以外に、プロセッサ1のプログラム処理順序や処理状態を制御する各種レジスタやフラグなどの記憶部との間の読出しや書込み等を行う。   The decode execution unit 700 decodes and executes the instruction supplied from the instruction fetch / instruction data supply unit 500. This instruction includes an instruction of a general embedded processor, and the decode execution unit 700 reads / writes data from / to a data port or data memory provided in the processor 1, data arithmetic processing, etc. I do. In addition to this, reading and writing are performed with respect to the storage unit such as various registers and flags for controlling the program processing order and processing state of the processor 1.

コプロセッサ#1(300)のデコード実行部710とコプロセッサ#2(400)のデコード実行部720は、コアプロセッサ200の命令フェッチ・命令データ供給ユニット500から供給される命令をデコードし実行する。このような構成とすることで、プロセッサ1は、プロセッサ1が実装される機器の用途に適した特定のデータ処理を実行する(例えば、データ処理を高速、高精度、低消費電力で実現するような回路を有するコプロセッサを用いて)プロセッサを実現する。   The decode execution unit 710 of the coprocessor # 1 (300) and the decode execution unit 720 of the coprocessor # 2 (400) decode and execute an instruction supplied from the instruction fetch / instruction data supply unit 500 of the core processor 200. With such a configuration, the processor 1 executes specific data processing suitable for the application of the device on which the processor 1 is mounted (for example, to realize data processing at high speed, high accuracy, and low power consumption). The processor is realized (using a coprocessor having a simple circuit).

なお、図示しないが、コプロセッサ#1(300)およびまたは#2(400)は、コアプロセッサ200へ割込みなどの信号を出力する他に、コアプロセッサ200からコプロセッサ#1(300)およびまたは#2(400)内のレジスタなどへのデータ入出力が可能なバスで接続されている。また、以下の説明では各コプロセッサは32ビット長の命令を読込み動作するものとする。   Although not shown, the coprocessor # 1 (300) and / or # 2 (400) outputs a signal such as an interrupt to the core processor 200, and also from the core processor 200 to the coprocessor # 1 (300) and / or #. 2 (400) is connected by a bus capable of inputting / outputting data to / from a register or the like. In the following description, it is assumed that each coprocessor reads and operates a 32-bit instruction.

図2に示す命令メモリ100に記憶される「拡張命令」の命令フォーマットは、命令長が異なるタイプと、命令フィールド構成が異なるタイプとが存在する。例えば、命令F1a(800)と命令F2a(810)は、命令長が32ビットの拡張命令フォーマットである。また、命令F1b(820)と命令F2b(830)は、命令長が64ビットの拡張命令フォーマットである。   The instruction format of the “extended instruction” stored in the instruction memory 100 shown in FIG. 2 includes a type having a different instruction length and a type having a different instruction field configuration. For example, the instruction F1a (800) and the instruction F2a (810) are extended instruction formats having an instruction length of 32 bits. The instruction F1b (820) and the instruction F2b (830) are extended instruction formats having an instruction length of 64 bits.

さらに、命令F1a(800)と命令F1b(820)の拡張命令フォーマットは、「コア」命令フィールドと「コプロ」命令フィールドによって構成されていて、この内の「コア」命令フィールドにコアプロセッサ200がデコード実行する命令がセットされる。これにより、コアプロセッサ200とコプロセッサ#1(300)およびまたは#2(400)とで同時並列にデータ処理などを行わせることができる。   Further, the extended instruction format of the instruction F1a (800) and the instruction F1b (820) includes a “core” instruction field and a “co-pro” instruction field, and the core processor 200 decodes the “core” instruction field. The instruction to be executed is set. As a result, the core processor 200 and the coprocessors # 1 (300) and / or # 2 (400) can simultaneously perform data processing and the like.

これに対し、命令F2a(810)と命令F2b(830)の拡張命令フォーマットは、「コプロ」命令フィールドのみで構成されていて、そのフィールドにコプロセッサ#1(300)のデコード実行部710およびまたはコプロセッサ#2(400)のデコード実行部720でデコードし実行される命令がセットされる。   On the other hand, the extended instruction format of the instruction F2a (810) and the instruction F2b (830) includes only a “co-pro” instruction field, and the decoding execution unit 710 of the coprocessor # 1 (300) and / or An instruction to be decoded and executed by the decode execution unit 720 of the coprocessor # 2 (400) is set.

次に、図6に示す命令フェッチ・命令データ供給ユニット500の詳細な構成について説明する。命令フェッチ・命令データ供給ユニット500は、プログラムカウンタ510、メモリ要求制御ユニット520、命令バッファ530、命令データ供給ユニット540、NOP命令生成回路550、命令長・動作モード制御回路560、加算回路570、選択回路580等から構成されている。   Next, a detailed configuration of the instruction fetch / instruction data supply unit 500 shown in FIG. 6 will be described. Instruction fetch / instruction data supply unit 500 includes program counter 510, memory request control unit 520, instruction buffer 530, instruction data supply unit 540, NOP instruction generation circuit 550, instruction length / operation mode control circuit 560, addition circuit 570, selection A circuit 580 and the like are included.

プログラムカウンタ510は、プロセッサ1が次に読出す命令のアドレスを記憶していて命令メモリ100と加算回路570に読出しアドレスを出力する。メモリ要求制御ユニット520は、プロセッサ1の命令フェッチ動作において、命令メモリ100へ命令フェッチ要求を出力する。なお、プロセッサ1では命令フェッチ動作において、制御ユニットや信号の図示を省略するが命令バッファ530が命令メモリ100から読出された命令を入力し、プログラムカウンタ510が選択回路580の出力を次の読み出すアドレスとして入力するように制御される。命令バッファ530は、命令メモリ100から読込んだ命令を保持し命令データ供給ユニット540に出力する。NOP命令生成回路550は、生成したNOP命令を命令データ供給ユニット540に出力する。   Program counter 510 stores the address of the instruction to be read next by processor 1 and outputs the read address to instruction memory 100 and addition circuit 570. The memory request control unit 520 outputs an instruction fetch request to the instruction memory 100 in the instruction fetch operation of the processor 1. In the instruction fetch operation of the processor 1, although the control unit and signals are not shown, the instruction buffer 530 inputs an instruction read from the instruction memory 100, and the program counter 510 reads the output of the selection circuit 580 next. As input. The instruction buffer 530 holds the instruction read from the instruction memory 100 and outputs it to the instruction data supply unit 540. The NOP instruction generation circuit 550 outputs the generated NOP instruction to the instruction data supply unit 540.

命令データ供給ユニット540は、命令バッファ530から入力した命令およびまたはNOP命令生成回路550からのNOP命令をコアプロセッサ200、コプロセッサ#1(300)およびまたは#2(400)に出力する。命令長・動作モード制御回路560は、制御情報記憶部600からの指令に基づいて命令データ供給ユニット540の命令長および動作モードを制御し、また、命令長情報は加算回路570にも出力する。加算回路570は、命令長・動作モード制御回路560からの命令長情報を受けてプログラムカウンタ510のアドレス値に所定値を加算して次の読出しアドレスを生成して選択回路580に出力する。選択回路580は、加算回路570からのアドレスとデコード実行部700から出力される分岐先アドレスが入力され、デコード実行部700から出力される分岐成立情報に基づいて次の読出しアドレスを1つ選択してプログラムカウンタ510に出力する。   The instruction data supply unit 540 outputs the instruction input from the instruction buffer 530 and / or the NOP instruction from the NOP instruction generation circuit 550 to the core processor 200, coprocessor # 1 (300) and / or # 2 (400). The instruction length / operation mode control circuit 560 controls the instruction length and operation mode of the instruction data supply unit 540 based on an instruction from the control information storage unit 600, and also outputs the instruction length information to the addition circuit 570. The adder circuit 570 receives the instruction length information from the instruction length / operation mode control circuit 560, adds a predetermined value to the address value of the program counter 510, generates a next read address, and outputs the next read address to the selection circuit 580. The selection circuit 580 receives the address from the adder circuit 570 and the branch destination address output from the decode execution unit 700, and selects one next read address based on the branch establishment information output from the decode execution unit 700. To the program counter 510.

次に、図3乃至図6を参照しながら、命令メモリ100から読み出した命令を各プロセッサに供給する命令フェッチ・命令データ供給ユニット500の動作の詳細を説明する。   Next, the details of the operation of the instruction fetch / instruction data supply unit 500 that supplies an instruction read from the instruction memory 100 to each processor will be described with reference to FIGS.

図3に示すプログラムシーケンスを構成するプログラムは、「基本命令」または「拡張命令」を用いて記述され、プロセッサ1のコアプロセッサ200とコプロセッサ#1(300)およびまたは#2(400)で実行処理される。   The programs constituting the program sequence shown in FIG. 3 are described using “basic instructions” or “extended instructions” and executed by the core processor 200 of the processor 1 and the coprocessors # 1 (300) and / or # 2 (400). It is processed.

なお、このプログラムの「基本命令2」は、命令で指定するレジスタの内容が分岐先アドレスであり、動作モードをコア動作モードから並列動作モードに変更するサブルーチン分岐命令(JSRV)である。また、分岐先アドレスとなるレジスタの内容の中で分岐先アドレス指定に使用されない最下位ビットを用いて、分岐先アドレスの「拡張命令」の命令長を指定する。即ち、分岐命令の分岐先アドレス中の最下位ビットが「1」の場合、分岐先アドレスの「拡張命令」は64ビット長(図2の命令F1bまたはF2b)のタイプであり、また前記最下位ビットが「0」の場合、分岐先アドレスの「拡張命令」は32ビット長(図2の命令F1aまたはF2a)のタイプである。   The “basic instruction 2” of this program is a subroutine branch instruction (JSRV) for changing the operation mode from the core operation mode to the parallel operation mode, with the contents of the register designated by the instruction being the branch destination address. In addition, the instruction length of the “extended instruction” of the branch destination address is specified using the least significant bit that is not used for specifying the branch destination address in the contents of the register serving as the branch destination address. That is, when the least significant bit in the branch destination address of the branch instruction is “1”, the “extended instruction” of the branch destination address has a 64-bit length (instruction F1b or F2b in FIG. 2) and the least significant bit. When the bit is “0”, the “extended instruction” of the branch destination address is a 32-bit type (instruction F1a or F2a in FIG. 2).

更に、このプログラム例では「基本命令2」の分岐先アドレス中の最下位ビットが「1」となるように「基本命令1」より前の命令で設定しているので、分岐先アドレスの「拡張命令1」以降の命令の命令長は64ビットのタイプとなる。   Furthermore, in this program example, since the least significant bit in the branch destination address of “basic instruction 2” is set to “1”, the instruction before “basic instruction 1” is set. The instruction length of the instruction after "instruction 1" is a 64-bit type.

ここで、分岐命令の分岐先アドレス中の最下位ビットを用いて分岐先の「拡張命令」の命令語長を指定してもプログラム実行で混乱がない理由は、命令メモリ100が8ビット(バイト)単位でアドレスが付与され、最短の命令長の基本命令が16ビットのプロセッサでは、一般的に、命令がロードされるアドレスは偶数番地となるように制限するからで、分岐先アドレスの最下位ビットはアドレス指定で使用されないためである。   Here, even if the instruction word length of the “extended instruction” at the branch destination is specified using the least significant bit in the branch destination address of the branch instruction, the instruction memory 100 has 8 bits (bytes). ) In a processor in which an address is assigned in units and the basic instruction with the shortest instruction length is 16 bits, generally, the address at which the instruction is loaded is limited to an even address. This is because the bit is not used for addressing.

図4に示す命令メモリ100上の命令の配置の状況は、図3で示したプログラムシーケンスを機械語に変換して、命令メモリ100にロードした時の様子を示す。   The instruction arrangement state on the instruction memory 100 shown in FIG. 4 shows a state when the program sequence shown in FIG. 3 is converted into a machine language and loaded into the instruction memory 100.

次に、「基本命令1」を命令メモリ100から読込む時の動作から説明する。プロセッサ1は、例えば図5(A)に示す5段のパイプライン構成のプロセッサであるとし、さらに説明を簡単にするため、「基本命令1」の読込み時にデコード実行部700で実行されている命令と図3に示される「基本命令2」以外の「基本命令」および「拡張命令」は、分岐動作を伴う命令でなく、また、以下の動作説明の期間に割込みなども発生しないものとする。   Next, the operation when the “basic instruction 1” is read from the instruction memory 100 will be described. The processor 1 is assumed to be a processor having a five-stage pipeline configuration shown in FIG. 5A, for example, and in order to further simplify the description, an instruction executed by the decode execution unit 700 when the “basic instruction 1” is read. The “basic instruction” and the “extended instruction” other than “basic instruction 2” shown in FIG. 3 are not instructions accompanied by a branch operation, and an interrupt or the like does not occur during the following operation explanation period.

図5(A)の第1のサイクルで、命令フェッチ・命令データ供給ユニット500のプログラムカウンタ510にアドレス値「0x100」(0xは16進表示であることを示す)がセットされ、このプログラムカウンタ510のアドレス値が命令メモリ100に出力され、続いてメモリ要求制御ユニット520から命令メモリ100へ読出し信号がフェッチ要求として出力される。   In the first cycle of FIG. 5A, an address value “0x100” (0x indicates hexadecimal display) is set in the program counter 510 of the instruction fetch / instruction data supply unit 500, and this program counter 510 The address value is output to the instruction memory 100, and then a read signal is output from the memory request control unit 520 to the instruction memory 100 as a fetch request.

これにより命令メモリ100は、0x100番地の内容を命令バッファ530に出力し、命令バッファ530は「基本命令1」を読込む。   As a result, the instruction memory 100 outputs the contents at the address 0x100 to the instruction buffer 530, and the instruction buffer 530 reads “basic instruction 1”.

次に、命令データ供給ユニット540は、この時制御情報記憶部600から出力される動作モード情報がコア動作モードであるため、命令バッファ530に読込まれた「基本命令1」を、コアプロセッサ200のデコーダ実行部700に供給するとともに、NOP命令生成回路550で生成されたNOP命令(無操作命令)をコプロセッサ#1(300)のデコード実行部710およびコプロセッサ#2(400)のデコード実行部720に供給する。   Next, since the operation mode information output from the control information storage unit 600 at this time is the core operation mode, the instruction data supply unit 540 converts the “basic instruction 1” read into the instruction buffer 530 into the core processor 200. The NOP instruction (non-operation instruction) generated by the NOP instruction generation circuit 550 is supplied to the decoder execution unit 700, and the decode execution unit 710 of the coprocessor # 1 (300) and the decode execution unit of the coprocessor # 2 (400) 720.

命令長・動作モード制御回路560は、「基本命令1」を読込む時、動作モードがコア動作モードで、かつ「基本命令1」の命令長が16ビット(2バイト)であるため、加算回路570へ「2」を加える命令長情報を出力する。そして、加算回路570でプログラムカウンタ510のアドレス値に「2」を加えたアドレス値「0x102」が生成される。このアドレス値は、デコード実行部700で実行されている命令が分岐命令でないので選択回路580を介してプログラムカウンタ510に入力され、命令バッファ530への「基本命令1」の読込み動作とともにプログラムカウンタ510に書込まれ、次に読込む命令のメモリアドレスとして命令メモリ100に出力される。   When reading “basic instruction 1”, the instruction length / operation mode control circuit 560 is the core operation mode and the instruction length of “basic instruction 1” is 16 bits (2 bytes). Instruction length information for adding “2” to 570 is output. Then, the adder circuit 570 generates an address value “0x102” by adding “2” to the address value of the program counter 510. This address value is input to the program counter 510 via the selection circuit 580 because the instruction being executed by the decode execution unit 700 is not a branch instruction, and the program counter 510 is read together with the operation of reading “basic instruction 1” into the instruction buffer 530. Is output to the instruction memory 100 as the memory address of the next instruction to be read.

次に、図5(A)の第2サイクルで、第1サイクルと同様に、命令メモリ100の「0x102」番地から命令バッファ530に読込まれた「基本命令2」は命令フェッチ・命令データ供給ユニット500から、コアプロセッサ200のデコーダ実行部700に供給されるとともに、NOP命令生成回路550で生成されたNOP命令をコプロセッサ#1(300)のデコード実行部710およびコプロセッサ#2(400)のデコード実行部720に供給される。また同様に加算回路570で生成されたアドレス値「0x104」は、デコード実行部700でデコードされ実行されている「基本命令1」が分岐命令でないので選択回路580を介してプログラムカウンタ510にセットされ、そのアドレス値が命令メモリ100に出力される。   Next, in the second cycle of FIG. 5A, as in the first cycle, “basic instruction 2” read from the address “0x102” in the instruction memory 100 to the instruction buffer 530 is an instruction fetch / instruction data supply unit. 500 is supplied to the decoder execution unit 700 of the core processor 200 and the NOP instruction generated by the NOP instruction generation circuit 550 is sent to the decode execution unit 710 of the coprocessor # 1 (300) and the coprocessor # 2 (400). The data is supplied to the decoding execution unit 720. Similarly, the address value “0x104” generated by the addition circuit 570 is set in the program counter 510 via the selection circuit 580 because “basic instruction 1” decoded and executed by the decode execution unit 700 is not a branch instruction. The address value is output to the instruction memory 100.

次に、図5(A)の第3サイクルで、命令メモリ100の「0x104」番地から命令バッファ530に読込まれた「基本命令3」は命令フェッチ・命令データ供給ユニット500から、コアプロセッサ200のデコーダ実行部700に供給されるとともに、NOP命令生成回路550で生成されたNOP命令をコプロセッサ#1(300)のデコード実行部710およびコプロセッサ#2(400)のデコード実行部720に供給される。同時に、デコード実行部700は第2サイクルで読込まれた「基本命令2」(JSRV)を、デコード(命令解釈)し実行する。   Next, in the third cycle of FIG. 5A, “basic instruction 3” read from the address “0x104” of the instruction memory 100 to the instruction buffer 530 is transferred from the instruction fetch / instruction data supply unit 500 to the core processor 200. In addition to being supplied to the decoder execution unit 700, the NOP instruction generated by the NOP instruction generation circuit 550 is supplied to the decode execution unit 710 of the coprocessor # 1 (300) and the decode execution unit 720 of the coprocessor # 2 (400). The At the same time, the decode execution unit 700 decodes (interprets) the “basic instruction 2” (JSRV) read in the second cycle and executes it.

この「基本命令2」(JSRV)は、条件分岐命令でなく分岐が成立する分岐命令であるので、デコード実行部700は、基本命令2が指定するレジスタ(通常コアプロセッサ200の汎用レジスタ)に記憶された値(ここでは「0x409」とする)を分岐先アドレスとし、分岐成立であることを分岐成立情報として命令フェッチ・命令データ供給ユニット500に出力する。この時選択回路580は、分岐先アドレスとしてレジスタの値「0x409」の最下位ビットを「0」としたアドレス値「0x408」が入力され、選択回路580の選択制御入力には分岐成立が入力される。これにより選択回路580は、次の読出しアドレスとして分岐先アドレス「0x408」をプログラムカウンタ510に出力する。分岐先アドレス「0x408」は、命令バッファ530への「基本命令3」の読込み動作とともにプログラムカウンタ510に書込まれ、次に読込む命令のメモリアドレスとして命令メモリ100に出力される。また、制御情報記憶部600の動作モードの制御情報はコア動作モードから並列動作モードに変更されるとともに、制御情報記憶部600の命令長制御情報にはレジスタに記憶された分岐先アドレスの最下位ビットの値(ここでは「1」)が書込まれる。   Since this “basic instruction 2” (JSRV) is not a conditional branch instruction but a branch instruction in which a branch is established, the decode execution unit 700 stores it in a register designated by the basic instruction 2 (usually a general-purpose register of the core processor 200). The determined value (here, “0x409”) is used as a branch destination address, and branch establishment information is output to the instruction fetch / instruction data supply unit 500 as branch establishment information. At this time, the selection circuit 580 receives the address value “0x408” in which the least significant bit of the register value “0x409” is “0” as the branch destination address, and the branch establishment is input to the selection control input of the selection circuit 580. The As a result, the selection circuit 580 outputs the branch destination address “0x408” to the program counter 510 as the next read address. The branch destination address “0x408” is written to the program counter 510 together with the read operation of “basic instruction 3” to the instruction buffer 530, and is output to the instruction memory 100 as the memory address of the next instruction to be read. In addition, the control information of the operation mode of the control information storage unit 600 is changed from the core operation mode to the parallel operation mode, and the instruction length control information of the control information storage unit 600 includes the lowest address of the branch destination address stored in the register. The value of the bit (here “1”) is written.

分岐が成立する分岐命令が実行されたので、第3サイクルで命令メモリ100から読込まれデコード実行部700に供給された「基本命令3」のパイプライン動作は、キャンセル(破棄)される。また、このサブルーチン分岐命令は、サブルーチンからの復帰の動作が正常に行えるよう、サブルーチン命令の実行において一般的に知られた動作であるプログラムカウンタ510のアドレス値などの保存動作を行う他に、サブルーチン分岐命令実行時の動作モードと命令長の情報の保存動作も行なう。サブルーチンからの復帰動作は復帰命令(RET)で行ない、この復帰命令は、プログラムカウンタ510に保存したアドレス値を設定するなどの一般的に知られた復帰動作の他に、制御情報記憶部600に保存した動作モードと命令長の情報を設定する。このようにすることで、復帰動作後に実行するサブルーチン分岐命令の直後の命令は、サブルーチン分岐命令実行時の動作モード、命令長で実行される。   Since the branch instruction that establishes the branch is executed, the pipeline operation of “basic instruction 3” read from the instruction memory 100 and supplied to the decode execution unit 700 in the third cycle is canceled (discarded). The subroutine branch instruction performs an operation of storing the address value of the program counter 510, which is a generally known operation in the execution of the subroutine instruction, so that the return operation from the subroutine can be normally performed. The operation mode and instruction length information is saved when the branch instruction is executed. The return operation from the subroutine is performed by a return instruction (RET). This return instruction is stored in the control information storage unit 600 in addition to a generally known return operation such as setting an address value stored in the program counter 510. Set the saved operation mode and instruction length information. In this way, the instruction immediately after the subroutine branch instruction to be executed after the return operation is executed in the operation mode and instruction length when the subroutine branch instruction is executed.

次に、第4サイクルで、命令フェッチ・命令データ供給ユニット500は、第3サイクルで設定された命令長64ビットの並列動作モードで動作して、命令メモリ100の「0x408」番地からの「拡張命令1」を命令バッファ530に読込む。この読込んだ「拡張命令1」の命令フォーマットは図2のF1bタイプであるので、命令データ供給ユニット540は、16ビット長の「コア」フィールドに基づく命令を、コアプロセッサ200のデコード実行部700に供給するとともに、48ビット長の「コプロ」フィールドに基づく命令を、コプロセッサ#1(300)のデコード実行部710およびコプロセッサ#2(400)のデコード実行部720に供給する。   Next, in the fourth cycle, the instruction fetch / instruction data supply unit 500 operates in the parallel operation mode of the instruction length of 64 bits set in the third cycle, and the “expansion” from the address “0x408” of the instruction memory 100 is performed. Read instruction 1 ”into instruction buffer 530. Since the instruction format of the read “extended instruction 1” is the F1b type in FIG. 2, the instruction data supply unit 540 converts the instruction based on the 16-bit length “core” field into the decode execution unit 700 of the core processor 200. And an instruction based on the 48-bit “co-pro” field is supplied to the decode execution unit 710 of the coprocessor # 1 (300) and the decode execution unit 720 of the coprocessor # 2 (400).

ここで、前記命令データ供給ユニット540は、制御情報記憶部600からの命令長と動作モードの制御情報に基づき、命令バッファ530から読込んだ命令を命令供給制御に必要な範囲でデコード(解釈)し、読込んだ命令の命令フィールドとNOP命令生成回路550の出力とを組み合わせて命令データを生成する機能があり、デコード回路および選択(セレクタ)回路から構成されている。   Here, the instruction data supply unit 540 decodes (interprets) the instruction read from the instruction buffer 530 within a range necessary for instruction supply control based on the instruction length from the control information storage unit 600 and the control information of the operation mode. The instruction field of the read instruction and the output of the NOP instruction generation circuit 550 are combined to generate instruction data, and includes a decoding circuit and a selection (selector) circuit.

前記「拡張命令1」は、コプロセッサ#1(300)とコプロセッサ#2(400)にそれぞれ個別に命令を指定するタイプの命令のため、命令データ供給ユニット540は、「コプロ」フィールドの上位24ビットにNOP命令生成回路550からの8ビットのNOP命令(全て「0」)を付加して、32ビット長の命令データを生成してコプロセッサ#1(300)に供給する。同様に、「コプロ」フィールドの下位24ビットに8ビットのNOP命令を付加して32ビット長の命令データを生成してコプロセッサ#2(400)に供給する。   The “extended instruction 1” is a type of instruction that individually designates instructions to the coprocessor # 1 (300) and the coprocessor # 2 (400). An 8-bit NOP instruction (all “0”) from the NOP instruction generation circuit 550 is added to 24 bits to generate 32-bit instruction data and supply it to the coprocessor # 1 (300). Similarly, an 8-bit NOP instruction is added to the lower 24 bits of the “co-pro” field to generate 32-bit instruction data, which is supplied to the coprocessor # 2 (400).

次に、第4サイクルで「拡張命令1」を読込む時、制御情報記憶部600には次の動作モードが並列動作モードで命令長が64ビット(8バイト)であることが記憶されている。これを受けて命令長・動作モード制御回路560は、加算回路570に「8」を加算する命令長情報を出力する。これにより、加算回路570は、プログラムカウンタ510からのアドレス値に「8」を加えたアドレス値「0x410」を生成し、選択回路580を介してプログラムカウンタ510にセットする。そして、命令バッファ530への「拡張命令1」の読込み動作とともに、プログラムカウンタ510から次に読込む命令のメモリアドレスとして命令メモリ100に出力される。   Next, when “extension instruction 1” is read in the fourth cycle, the control information storage unit 600 stores that the next operation mode is the parallel operation mode and the instruction length is 64 bits (8 bytes). . In response to this, the instruction length / operation mode control circuit 560 outputs instruction length information for adding “8” to the adder circuit 570. As a result, the adder circuit 570 generates an address value “0x410” obtained by adding “8” to the address value from the program counter 510, and sets it in the program counter 510 via the selection circuit 580. Then, along with the operation of reading “extended instruction 1” to the instruction buffer 530, the program counter 510 outputs the instruction address to the instruction memory 100 as the memory address of the next instruction to be read.

次に、第5サイクルで第4サイクルと同様に、命令フェッチ・命令データ供給ユニット500が動作して命令メモリ100の「0x410」番地から「拡張命令2」が命令バッファ530に読込まれる。読込んだ「拡張命令2」の命令フォーマットが、図2のF2bタイプであるので、命令データ供給ユニット540は、NOP命令生成回路550からの16ビット長のNOP命令をコアプロセッサ200のデコード実行部700に供給するとともに、64ビット長の「コプロ」フィールドに基づく2つの命令をそれぞれコプロセッサ#1(300)、#2(400)のデコード実行部710、720に供給する。   Next, in the fifth cycle, as in the fourth cycle, the instruction fetch / instruction data supply unit 500 operates to read “extended instruction 2” from the address “0x410” of the instruction memory 100 into the instruction buffer 530. Since the instruction format of the read “extended instruction 2” is the F2b type of FIG. 2, the instruction data supply unit 540 decodes the 16-bit length NOP instruction from the NOP instruction generation circuit 550 to the decode execution unit of the core processor 200. And two instructions based on the 64-bit long “co-pro” field are supplied to the decode execution units 710 and 720 of the coprocessors # 1 (300) and # 2 (400), respectively.

即ち「拡張命令2」は、コプロセッサ#1(300)とコプロセッサ#2(400)にそれぞれ個別に命令を指定するタイプの命令のため、命令データ供給ユニット540は、64ビットの「コプロ」フィールドの上位32ビットを命令データとしてコプロセッサ#1(300)に供給し、その下位32ビットを命令データとしてコプロセッサ#2(400)に供給する。   That is, since the “extended instruction 2” is a type of instruction that individually designates instructions to the coprocessor # 1 (300) and the coprocessor # 2 (400), the instruction data supply unit 540 has a 64-bit “copro”. The upper 32 bits of the field are supplied as instruction data to the coprocessor # 1 (300), and the lower 32 bits are supplied as instruction data to the coprocessor # 2 (400).

次に、第5サイクルの「拡張命令2」を読込む時、制御情報記憶部600には動作モードが並列動作モードで命令長が8バイトであることが記憶されている。これを受けて命令長・動作モード制御回路560は、加算回路570に「8」を加える命令長情報を出力する。これにより加算回路570は、プログラムカウンタ510のアドレス値に「8」を加えたアドレス値「0x418」を生成し選択回路580を介してプログラムカウンタ510にセットする。そして、命令バッファ530への「拡張命令2」の読込み動作とともに、プログラムカウンタ510から次に読込む命令のメモリアドレスが命令メモリ100に出力される。   Next, when the “extension instruction 2” of the fifth cycle is read, the control information storage unit 600 stores that the operation mode is the parallel operation mode and the instruction length is 8 bytes. In response to this, the instruction length / operation mode control circuit 560 outputs instruction length information for adding “8” to the adder circuit 570. As a result, the adder circuit 570 generates an address value “0x418” obtained by adding “8” to the address value of the program counter 510, and sets it in the program counter 510 via the selection circuit 580. Then, along with the operation of reading “extended instruction 2” into the instruction buffer 530, the memory address of the instruction to be read next is output from the program counter 510 to the instruction memory 100.

次に、第6サイクルで第4サイクルと同様に、命令フェッチ命令・データ供給ユニット500が動作して、命令メモリ100の「0x418」番地から「拡張命令3」が命令バッファ530に読込まれる。読込んだ「拡張命令3」の命令フォーマットが、図2のF1bタイプであるので、命令データ供給ユニット540は、16ビット長の「コア」フィールドに基づく命令を、コアプロセッサ200のデコード実行部700に供給するとともに、48ビット長の「コプロ」フィールドに基づく命令を、コプロセッサの#1(300)、#2(400)のデコード実行部710、720に供給する。   Next, in the sixth cycle, as in the fourth cycle, the instruction fetch instruction / data supply unit 500 operates and “extended instruction 3” is read from the address “0x418” of the instruction memory 100 into the instruction buffer 530. Since the instruction format of the read “extended instruction 3” is the F1b type in FIG. 2, the instruction data supply unit 540 converts the instruction based on the 16-bit length “core” field into the decode execution unit 700 of the core processor 200. And an instruction based on the 48-bit “co-pro” field is supplied to the decode execution units 710 and 720 of the coprocessors # 1 (300) and # 2 (400).

前記「拡張命令3」は、「拡張命令1」と同様に、コプロセッサ#1(300)とコプロセッサ#2(400)にそれぞれ個別に命令を指定するタイプの命令のため、命令データ供給ユニット540は、「コプロ」フィールドの上位24ビットにNOP命令生成回路550からの8ビットのNOP命令パターンを付加して、32ビット長の命令データを生成してコプロセッサ#1(300)に供給する。同様に、「コプロ」フィールドの下位24ビットに8ビットのNOP命令パターンを付加して、32ビット長の命令データを生成してコプロセッサ#2(400)に供給する。   The “extended instruction 3” is an instruction data supply unit because it is a type of instruction that individually designates an instruction to the coprocessor # 1 (300) and the coprocessor # 2 (400), similarly to the “extended instruction 1”. 540 adds the 8-bit NOP instruction pattern from the NOP instruction generation circuit 550 to the upper 24 bits of the “co-pro” field, generates 32-bit instruction data, and supplies it to the coprocessor # 1 (300). . Similarly, an 8-bit NOP instruction pattern is added to the lower 24 bits of the “co-pro” field to generate 32-bit instruction data, which is supplied to the coprocessor # 2 (400).

上述では、並列動作モード時の各プロセッサへの命令供給状況を64ビット長の「拡張命令」を用いた例で説明したが、プロセッサ1は、「基本命令2」の分岐命令JSRVの分岐アドレスの最下位ビットを「0」として、32ビット長の「拡張命令」を用いて並列動作プログラムを作成することができる。   In the above description, the instruction supply status to each processor in the parallel operation mode has been described by using the example of the 64-bit “extended instruction”. However, the processor 1 determines the branch address of the branch instruction JSRV of the “basic instruction 2”. By setting the least significant bit to “0”, a parallel operation program can be created using an “extended instruction” having a 32-bit length.

32ビット長の「拡張命令」が読込まれる時、命令フェッチ・命令データ供給ユニット500は、図2に示すF1aタイプまたはF2aタイプから「コプロ」フィールドが16ビット長または32ビット長であると判断する。したがって、命令フェッチ・命令データ供給ユニット500は、16ビット長の時はNOP命令生成回路550からの16ビットのNOP命令パターンを付加し、32ビット長の時はその32ビットの命令をコプロセッサの一方(例えば、コプロセッサ#1(300))に供給し、他方のコプロセッサ(例えば、コプロセッサ#2(400))にNOP命令生成回路550からの32ビットのNOP命令を供給するように動作する。   When a 32-bit “extended instruction” is read, the instruction fetch / instruction data supply unit 500 determines that the “co-pro” field is 16 bits or 32 bits long from the F1a type or F2a type shown in FIG. To do. Therefore, the instruction fetch / instruction data supply unit 500 adds the 16-bit NOP instruction pattern from the NOP instruction generation circuit 550 when it is 16 bits long, and sends the 32-bit instruction of the coprocessor when it is 32 bits long. Supply to one (eg, coprocessor # 1 (300)) and operate to supply the other coprocessor (eg, coprocessor # 2 (400)) with a 32-bit NOP instruction from the NOP instruction generation circuit 550 To do.

上述の説明では、プロセッサ1の動作モードを変更する命令としてサブルーチン分岐命令を用いている。これは、以下のようなプログラムシーケンス列において、動作モード変更を分岐命令でない命令1で行わせると問題が生じるからである。   In the above description, a subroutine branch instruction is used as an instruction for changing the operation mode of the processor 1. This is because a problem arises when the operation mode is changed by an instruction 1 that is not a branch instruction in the following program sequence sequence.

: :
命令1 基本命令
命令2 基本命令
命令3 拡張命令
命令4 拡張命令
: :
上記プログラムシーケンス例で、例えば5段のパイプライン構成のプロセッサでは、上述の説明と同様に第1サイクルで読込まれた「命令1」の基本命令が第2サイクルでデコードされ実行されて動作モード制御レジスタ書込まれるが、命令の読込み動作モードが切り替わるのは第3サイクルからとなる。第2サイクルで読込まれる「命令2」は、基本命令として読込まれ、続く第3サイクルにおいて「命令3」が拡張命令として読込まれて、第4サイクルに「命令3」がコプロセッサを含めてデコードされ並列動作が行われる。
::
Instruction 1 Basic instruction Instruction 2 Basic instruction Instruction 3 Extended instruction Instruction 4 Extended instruction::
In the example of the above program sequence, for example, in a processor having a five-stage pipeline configuration, the basic instruction of “instruction 1” read in the first cycle is decoded and executed in the second cycle to control the operation mode, as described above. The register is written, but the instruction read operation mode is switched from the third cycle. “Instruction 2” read in the second cycle is read as a basic instruction, “Instruction 3” is read as an extension instruction in the subsequent third cycle, and “Instruction 3” includes a coprocessor in the fourth cycle. Decoded and parallel operation is performed.

しかしながら、パイプライン構成のプロセッサでは性能向上のため、パイプラインステージ数を増加させることが行われる。例えば、メモリアクセスに時間を要するシステムで用いられるプロセッサでは、パイプラインステージ構成を図5(A)の5段構成から図5(B)に示すような7段構成としてサイクルタイムを短くして性能向上が図られる。   However, in a pipelined processor, the number of pipeline stages is increased to improve performance. For example, in a processor used in a system that requires time for memory access, the pipeline stage configuration is changed from a five-stage configuration shown in FIG. 5A to a seven-stage configuration shown in FIG. Improvement is achieved.

低速のメモリを用いるために、プロセッサのパイプライン構成を7段構成に変更すると、5段構成のパイプラインプロセッサとは異なり、第1サイクルで読込まれた動作モード変更命令の「命令1」がデコードされ実行されるのは第3サイクルであり、動作モードが変更されるのは、第4サイクルからとなる。このため、第3サイクルで読込まれる「命令3」は、拡張命令ではなく基本命令として読込まれることになり、オブジェクトレベルでの互換性が失われる問題が生じる。   If the processor pipeline configuration is changed to a seven-stage configuration in order to use a low-speed memory, unlike the five-stage pipeline processor, “instruction 1” of the operation mode change instruction read in the first cycle is decoded. The third cycle is executed and the operation mode is changed from the fourth cycle. For this reason, the “instruction 3” read in the third cycle is read as a basic instruction rather than an extension instruction, causing a problem that compatibility at the object level is lost.

上述した第1の実施例のように、動作モード変更をサブルーチン分岐命令で行わせるようにすることで、並列動作制御プログラム部分を関数のように記述することができて、プログラム記述の見通しが良くなるだけでなく、オブジェクトレベルでの互換性を維持することができる。   As in the first embodiment described above, the operation mode is changed by the subroutine branch instruction, so that the parallel operation control program part can be described like a function and the prospect of program description is good. In addition, compatibility at the object level can be maintained.

更にまた、以上のように命令が供給されて並列プロセッサが動作するため、並列プロセッサで無操作のプロセッサに対応したNOP命令を命令メモリに配置する必要がなく、さらに、複数のコプロセッサを同時並列に動作させて、高い処理性能が要求されるプログラムと一方のコプロセッサを動作させることで処理性能が達成できるプログラムが混在する時に、適切な命令長の拡張命令を選択してプログラムを記述できるので、命令メモリの利用効率の高い並列プロセッサを提供できる。   Furthermore, since instructions are supplied as described above and the parallel processor operates, it is not necessary to place a NOP instruction corresponding to a non-operating processor in the parallel processor in the instruction memory, and a plurality of coprocessors can be simultaneously parallelized. When a program that requires high processing performance and a program that can achieve processing performance by operating one coprocessor are mixed, the program can be described by selecting an extension instruction with an appropriate instruction length. A parallel processor with high instruction memory utilization efficiency can be provided.

なお、上記説明では、分岐命令の分岐先アドレス中の最下位ビットで、分岐先の「拡張命令」の命令長を指定するとしたが、命令長を指定する分岐命令(例えば、32ビット長の場合はJSRV32、64ビット長の場合はJSRV64)を定義して、分岐先の「拡張命令」の命令長を指定するようにしてもよい。   In the above description, the least significant bit in the branch destination address of the branch instruction specifies the instruction length of the branch destination “extended instruction”. However, a branch instruction that specifies the instruction length (for example, a 32-bit length) May be defined as JSRV32, or JSRV64 in the case of a 64-bit length, and specify the instruction length of the “extended instruction” at the branch destination.

更になお、上記説明では、64ビット長の拡張命令のコプロフィールドを2つのコプロセッサに供給する時、「コプロ」フィールドを均等に分割して、不足部分はNOP命令パターンを付加してそれぞれ32ビット長の命令を供給するとしたが、コプロセッサ#1(300)とコプロセッサ#2(400)の処理機能や命令指定内容などに応じて「コプロ」フィールドを異なる長さに分割して必要な長さの各コプロセッサ用の命令を生成して供給するようにしてもよい。また、32ビット長の拡張命令の場合、一方のコプロセッサに動作指定命令を供給するとしたが、「コプロ」フィールドを分割して、2つのコプロセッサにそれぞれ命令として供給してもよく、更にまた2つのコプロセッサに個別の命令を供給するとしたが、2つのコプロセッサに同じ内容の命令を供給するようにしてもよい。    Furthermore, in the above description, when supplying a co-profile of a 64-bit extended instruction to two co-processors, the “co-pro” field is divided evenly, and the NOP instruction pattern is added to the shortage portion to 32 bits each. Although a long instruction is supplied, the “co-pro” field is divided into different lengths according to the processing functions of the coprocessor # 1 (300) and the coprocessor # 2 (400), the instruction designation contents, etc. The instructions for each coprocessor may be generated and supplied. In the case of an extended instruction having a 32-bit length, an operation designation instruction is supplied to one coprocessor. However, the “co-pro” field may be divided and supplied to two coprocessors as instructions. Although individual instructions are supplied to the two coprocessors, instructions having the same contents may be supplied to the two coprocessors.

次に、本発明の第2の実施例に係る並列プロセッサを、図7乃至図9を参照して説明する。図7は、第2の実施例に係るプロセッサ2のブロック図である。図8は、その命令フェッチ・命令供給ユニット501の構成を示すブロック図である。図9は、制御情報記憶部601に設定される命令供給パターン情報の構成を示す図である。   Next, a parallel processor according to a second embodiment of the present invention will be described with reference to FIGS. FIG. 7 is a block diagram of the processor 2 according to the second embodiment. FIG. 8 is a block diagram showing the configuration of the instruction fetch / instruction supply unit 501. FIG. 9 is a diagram illustrating a configuration of command supply pattern information set in the control information storage unit 601.

図8に示す第2の実施例に係る命令フェッチ・命令供給ユニット501においては、上記第1の実施例に係るプロセッサ1の命令フェッチ・命令データ供給ユニット500と同一部分には同一符号を付し、詳細な説明を省略する。   In the instruction fetch / instruction supply unit 501 according to the second embodiment shown in FIG. 8, the same parts as those in the instruction fetch / instruction data supply unit 500 of the processor 1 according to the first embodiment are denoted by the same reference numerals. Detailed description will be omitted.

この第2の実施例のプロセッサ2と命令フェッチ・命令データ供給ユニット501が、第1の実施例のプロセッサ1と命令フェッチ・命令データ供給ユニット500と異なる点は、制御情報記憶部601に命令供給パターン情報を記憶しておき、制御情報記憶部601から命令フェッチ・命令データ供給ユニット500に命令長、動作モード情報に加えて命令供給パターン情報が出力される構成としている点である。即ち、命令長・動作モード・命令供給パターン制御回路561から命令データ供給ユニット541に命令長、動作モード情報に加えて命令供給パターン情報が入力される。   The difference between the processor 2 and the instruction fetch / instruction data supply unit 501 of the second embodiment from the processor 1 and the instruction fetch / instruction data supply unit 500 of the first embodiment is that an instruction is supplied to the control information storage unit 601. The pattern information is stored, and the instruction supply pattern information is output from the control information storage unit 601 to the instruction fetch / instruction data supply unit 500 in addition to the instruction length and operation mode information. That is, the command length / operation mode / command supply pattern control circuit 561 receives command supply pattern information in addition to the command length and operation mode information to the command data supply unit 541.

このプロセッサ2では、並列動作モードとなる以前の命令で、制御情報記憶部601に命令供給パターン情報を設定する。命令供給パターン情報は、図9に示すようにコプロセッサ毎に2ビット長フィールドから構成される。並列動作モード時、命令データ供給ユニット541は、拡張命令の「コプロ」フィールドの値を命令供給パターンに従って命令として構成して、コプロセッサ#1(300)のデコード実行部710、およびコプロセッサ#2(400)のデコード実行部720に供給する。   In the processor 2, the instruction supply pattern information is set in the control information storage unit 601 with the instruction before entering the parallel operation mode. The instruction supply pattern information is composed of a 2-bit length field for each coprocessor as shown in FIG. In the parallel operation mode, the instruction data supply unit 541 configures the value of the “co-pro” field of the extended instruction as an instruction according to the instruction supply pattern, and performs the decode execution unit 710 of the coprocessor # 1 (300) and the coprocessor # 2. (400) to the decode execution unit 720.

例えば、各コプロセッサに対応した命令供給パターンが「00」である時は、NOP命令生成回路550で生成されたNOP命令がそれぞれのコプロセッサのデコード実行部に供給される。また、各コプロセッサに対応した命令供給パターンが「01」である時は、拡張命令の「コプロ」フィールドの分割された後半のパターンと不足のビット数のNOP命令パターンから構成される命令が各コプロセッサのデコード実行部に供給される。また、各コプロセッサに対応した命令供給パターンが「10」である時は、拡張命令の「コプロ」フィールドの分割された前半のパターンと不足のビット数のNOP命令パターンから構成される命令が各コプロセッサのデコード実行部に供給される。また、各コプロセッサに対応した命令供給パターンが「11」である時は、拡張命令の「コプロ」フィールド全体と不足のビット数のNOP命令パターンから構成される命令が各コプロセッサのデコード実行部に供給されるように命令データ供給ユニット541が制御される。   For example, when the instruction supply pattern corresponding to each coprocessor is “00”, the NOP instruction generated by the NOP instruction generation circuit 550 is supplied to the decode execution unit of each coprocessor. Further, when the instruction supply pattern corresponding to each coprocessor is “01”, each instruction composed of the divided latter half pattern of the “copro” field of the extended instruction and the NOP instruction pattern having an insufficient number of bits Supplied to the decode execution unit of the coprocessor. Further, when the instruction supply pattern corresponding to each coprocessor is “10”, each instruction composed of the divided first half pattern of the “copro” field of the extended instruction and the NOP instruction pattern having an insufficient number of bits Supplied to the decode execution unit of the coprocessor. When the instruction supply pattern corresponding to each coprocessor is “11”, an instruction composed of the entire “copro” field of the extended instruction and the NOP instruction pattern having an insufficient number of bits is a decode execution unit of each coprocessor. The command data supply unit 541 is controlled so as to be supplied to.

このように、コプロセッサ#1(300)およびコプロセッサ#2(400)への命令供給を柔軟に制御できるため、拡張命令は、内蔵したコプロセッサの個数分のコプロフィールドを設ける必要がなくなり、更にどちらか一方のコプロセッサを動作させて並列動作させるような場合は、コプロフィールドをそれぞれのコプロセッサ用の命令として使用することができて、命令メモリの利用効率の高い並列プロセッサを提供できる。   As described above, since the instruction supply to the coprocessor # 1 (300) and the coprocessor # 2 (400) can be flexibly controlled, it is not necessary to provide coprofiles corresponding to the number of built-in coprocessors. Further, when either one of the coprocessors is operated and operated in parallel, the coprofiled can be used as an instruction for each coprocessor, and a parallel processor with high use efficiency of the instruction memory can be provided.

本発明は、上記実施例に限定されるものではなく、発明の要旨を逸脱しない範囲で、種々、変形して実施できることは勿論である。   The present invention is not limited to the above-described embodiments, and it is needless to say that various modifications can be made without departing from the spirit of the invention.

例えば、無操作のプロセッサにNOP命令生成して供給するのではなく、命令実行を停止させる信号を供給するようにしてもよい。このようにすれば、命令メモリの利用効率が高いだけでなく、コプロセッサへの命令供給回路およびデコード回路などの動作を停止させることができて、低消費電力のプロセッサを提供できる。   For example, a signal for stopping instruction execution may be supplied instead of generating and supplying a NOP instruction to a non-operating processor. In this way, not only the use efficiency of the instruction memory is high, but also the operation of the instruction supply circuit, the decode circuit, etc. to the coprocessor can be stopped, and a low power consumption processor can be provided.

本発明によるプロセッサの第1の実施例の構成を示すブロック図。The block diagram which shows the structure of the 1st Example of the processor by this invention. 第1の実施例の拡張命令のフォーマットを示す図。The figure which shows the format of the extension instruction | indication of a 1st Example. 第1の実施例の拡張命令を含む命令列を示す図。The figure which shows the command sequence containing the extended command of 1st execution example. 第1の実施例の命令メモリ上の命令の配置を示す図。The figure which shows arrangement | positioning of the instruction | command on the instruction | command memory of a 1st Example. 第1の実施例のパイプラインプロセッサのステージ構成を示す図。The figure which shows the stage structure of the pipeline processor of a 1st Example. 本発明による第1の実施例の命令フェッチ・命令データ供給ユニットの構成を示すブロック図。1 is a block diagram showing a configuration of an instruction fetch / instruction data supply unit according to a first embodiment of the present invention; FIG. 本発明によるプロセッサの第2の実施例の構成を示すブロック図。The block diagram which shows the structure of the 2nd Example of the processor by this invention. 本発明による第2の実施例の命令フェッチ・命令データ供給ユニットの構成を示すブロック図。The block diagram which shows the structure of the instruction fetch and instruction data supply unit of 2nd Example by this invention. 第2の実施例の制御情報記憶部601に設定される命令供給パターン情報の構成を示す図。The figure which shows the structure of the command supply pattern information set to the control information storage part 601 of 2nd Example.

符号の説明Explanation of symbols

1、2 並列プロセッサ
100 命令メモリ
200 コアプロセッサ
300 コプロセッサ#1
400 コプロセッサ#2
500、501 命令フェッチ・命令データ供給ユニット
510 プログラムカウンタ
520 メモリ要求制御ユニット
530 命令バッファ
540、541 命令データ供給ユニット
550 NOP命令生成回路
560 命令長・動作モード制御回路
561 命令長・動作モード・命令供給パターン制御回路
570 加算回路
580 選択回路
600、601 制御情報記憶部
700、710、720 デコード実行部
1, 2 Parallel processor 100 Instruction memory 200 Core processor 300 Coprocessor # 1
400 coprocessor # 2
500, 501 Instruction fetch / instruction data supply unit 510 Program counter 520 Memory request control unit 530 Instruction buffer 540, 541 Instruction data supply unit 550 NOP instruction generation circuit 560 Instruction length / operation mode control circuit 561 Instruction length / operation mode / instruction supply Pattern control circuit 570 Adder circuit 580 Select circuit 600, 601 Control information storage unit 700, 710, 720 Decode execution unit

Claims (5)

少なくとも第1および第2のプロセッサで構成され、各プロセッサで実行される命令を同一サイクルにおいて並列にパイプライン処理する並列プロセッサであって、
前記第1のプロセッサに設けられる第1の命令実行部および命令フェッチ供給部と、
前記第2のプロセッサに設けられる第2の命令実行部と、
前記第1の命令実行部およびまたは前記第2の命令実行部で実行される命令を記憶する命令メモリとを備え、
前記命令フェッチ供給部は、
前記命令メモリから前記命令を読み出すためのアドレスを指定するカウンタ手段と、
前記命令メモリから読み出した前記命令を保持する命令バッファ手段と、
前記命令メモリの読出し動作に応じて前記第1の命令実行部および前記第2の命令実行部を動作させる第1の動作モードと、前記第2の命令実行部を動作させる第2の動作モードの制御情報を出力する動作モード制御手段と、
所定ビット長のNOP命令を生成するNOP命令生成手段と、
前記動作モード制御手段からの前記動作モードの制御情報に基づいて、前記第1の動作モードの場合は、前記第1の命令実行部に前記命令バッファ手段からの前記命令の一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給するとともに、前記第2の命令実行部に前記命令の残りの一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給し、前記第2の動作モードの場合は、前記命令バッファ手段からの前記命令の一部又は全部を前記第2の命令実行部に供給する命令供給手段と
を具備することを特徴とする並列プロセッサ。
A parallel processor configured by at least a first processor and a second processor, and executing pipeline processing of instructions executed by the processors in parallel in the same cycle;
A first instruction execution unit and an instruction fetch supply unit provided in the first processor;
A second instruction execution unit provided in the second processor;
An instruction memory for storing instructions executed by the first instruction execution unit and / or the second instruction execution unit;
The instruction fetch supply unit
Counter means for designating an address for reading the instruction from the instruction memory;
Instruction buffer means for holding the instruction read from the instruction memory;
A first operation mode for operating the first instruction execution unit and the second instruction execution unit in response to a read operation of the instruction memory; and a second operation mode for operating the second instruction execution unit. Operation mode control means for outputting control information;
NOP instruction generation means for generating a NOP instruction having a predetermined bit length;
Based on the control information of the operation mode from the operation mode control means, in the case of the first operation mode, a part of the instruction from the instruction buffer means and the NOP instruction are sent to the first instruction execution unit. Supplying an instruction comprising the NOP instruction from the generating means, and supplying an instruction comprising the remaining part of the instruction and the NOP instruction from the NOP instruction generating means to the second instruction execution unit; In the second operation mode, a parallel processor comprising: an instruction supply means for supplying a part or all of the instructions from the instruction buffer means to the second instruction execution unit.
前記命令フェッチ供給部は、
分岐命令により前記動作モード制御手段の前記制御情報を設定し、前記分岐命令により規定される分岐先アドレスの一部に含まれる命令長を指定する情報に従って前記第1および第2の動作モードにおける前記命令の命令長を切り替えることを特徴とする請求項1に記載の並列プロセッサ。
The instruction fetch supply unit
The control information of the operation mode control means is set by a branch instruction, and the first and second operation modes in the first and second operation modes according to information specifying an instruction length included in a part of a branch destination address defined by the branch instruction. 2. The parallel processor according to claim 1, wherein the instruction length of the instruction is switched.
前記命令フェッチ供給部は、
分岐先の命令の命令長を指定する分岐命令により前記動作モード制御手段の前記制御情報を設定し、前記分岐命令により指定される命令長を指定する情報に従って前記第1および第2の動作モードにおける前記命令の命令長を切り替えることを特徴とする請求項1に記載の並列プロセッサ。
The instruction fetch supply unit
The control information of the operation mode control means is set by a branch instruction that specifies the instruction length of the branch destination instruction, and the first and second operation modes are set according to the information that specifies the instruction length specified by the branch instruction. The parallel processor according to claim 1, wherein the instruction length of the instruction is switched.
少なくとも第1、第2および第3のプロセッサで構成され、各プロセッサで実行される命令を同一サイクルにおいて並列にパイプライン処理する並列プロセッサであって、
前記第1のプロセッサに設けられる第1の命令実行部および命令フェッチ供給部と、
前記第2のプロセッサに設けられる第2の命令実行部と、
前記第3のプロセッサに設けられる第3の命令実行部と、
前記第1の命令実行部、前記第2の命令実行部およびまたは前記第3の命令実行部で実行される命令を記憶する命令メモリとを備え、
前記命令フェッチ供給部は、
前記命令メモリから前記命令を読み出すためのアドレスを指定するカウンタ手段と、
前記命令メモリから読み出した前記命令を保持する命令バッファ手段と、
前記命令メモリの読出し動作に応じて前記第1の命令実行部および前記第2の命令実行部およびまたは前記第3の命令実行部を動作させる第1の動作モードと、前記第2の命令実行部および第3の命令実行部を動作させる第2の動作モードの制御情報を出力する動作モード制御手段と、
所定ビット長のNOP命令を生成するNOP命令生成手段と、
前記動作モード制御手段からの前記動作モードの制御情報に基づいて、前記第1の動作モードの場合は、前記第1の命令実行部に前記命令バッファ手段からの前記命令の一部を供給するとともに、前記第2およびまたは前記第3の命令実行部に前記命令の残りの一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給し、前記第2の動作モードの場合は、前記命令バッファ手段からの前記命令の一部を前記第2の命令処理部に供給し前記命令の残りを前記第3の命令実行部に供給する命令供給手段と
を具備することを特徴とする並列プロセッサ。
A parallel processor configured by at least a first, a second and a third processor and pipelined in parallel in the same cycle for instructions executed by each processor;
A first instruction execution unit and an instruction fetch supply unit provided in the first processor;
A second instruction execution unit provided in the second processor;
A third instruction execution unit provided in the third processor;
An instruction memory for storing instructions executed by the first instruction execution unit, the second instruction execution unit, and / or the third instruction execution unit;
The instruction fetch supply unit
Counter means for designating an address for reading the instruction from the instruction memory;
Instruction buffer means for holding the instruction read from the instruction memory;
A first operation mode for operating the first instruction execution unit and the second instruction execution unit and / or the third instruction execution unit in accordance with a read operation of the instruction memory; and the second instruction execution unit. And an operation mode control means for outputting control information of the second operation mode for operating the third instruction execution unit,
NOP instruction generation means for generating a NOP instruction having a predetermined bit length;
Based on the control information of the operation mode from the operation mode control means, in the case of the first operation mode, a part of the instruction from the instruction buffer means is supplied to the first instruction execution unit. , Supplying the second and / or the third instruction execution unit with an instruction comprising the remaining part of the instruction and the NOP instruction from the NOP instruction generation means, and in the case of the second operation mode, And a command supply means for supplying a part of the instructions from the instruction buffer means to the second instruction processing section and supplying the remainder of the instructions to the third instruction execution section. Processor.
少なくとも第1および第2のプロセッサによって構成され、各プロセッサで実行される命令を同一サイクルにおいて並列にパイプライン処理する並列プロセッサであって、
前記第1のプロセッサに設けられた第1の命令実行部および命令フェッチ供給部と、
前記第2のプロセッサに設けられた第2の命令実行部と、
前記第1の命令実行部およびまたは前記第2の命令実行部で実行される命令を記憶する命令メモリとを備え、
前記命令フェッチ供給部は、
前記命令メモリから前記命令を読み出すためのアドレスを指定するカウンタ手段と、
前記命令メモリから読み出した前記命令を保持する命令バッファ手段と、
前記命令メモリの読出し動作に応じて前記第1の命令実行部および前記第2の命令実行部を動作させる第1の動作モードと、前記第2の命令実行部を動作させる第2の動作モードの動作モード制御情報と、前記第1および第2の命令実行部に前記命令を供給する方法を規定するパターン制御情報とを出力する制御手段と、
所定ビット数のNOP命令を生成するNOP命令生成手段と、
前記制御手段からの前記動作モード制御情報および前記パターン制御情報に基づいて、前記第1の動作モードの場合は、前記第1の命令実行部に前記命令バッファ手段からの前記命令の一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給するとともに、前記第2の命令実行部に前記命令の残りの一部と前記NOP命令生成手段からの前記NOP命令とからなる命令を供給し、前記第2の動作モードの場合は、前記命令バッファ手段からの前記命令の一部又は全部を前記第2の命令実行部に供給する命令供給手段と
を具備することを特徴とする並列プロセッサ。
A parallel processor configured by at least a first and a second processor and pipelined in parallel in the same cycle for instructions executed by each processor;
A first instruction execution unit and an instruction fetch supply unit provided in the first processor;
A second instruction execution unit provided in the second processor;
An instruction memory for storing instructions executed by the first instruction execution unit and / or the second instruction execution unit;
The instruction fetch supply unit
Counter means for designating an address for reading the instruction from the instruction memory;
Instruction buffer means for holding the instruction read from the instruction memory;
A first operation mode for operating the first instruction execution unit and the second instruction execution unit in response to a read operation of the instruction memory; and a second operation mode for operating the second instruction execution unit. Control means for outputting operation mode control information and pattern control information defining a method of supplying the instruction to the first and second instruction execution units;
NOP instruction generation means for generating a NOP instruction having a predetermined number of bits;
Based on the operation mode control information and the pattern control information from the control means, in the case of the first operation mode, a part of the instructions from the instruction buffer means and the part of the instructions from the instruction buffer means An instruction consisting of the NOP instruction from the NOP instruction generation means is supplied, and an instruction consisting of the remaining part of the instruction and the NOP instruction from the NOP instruction generation means is supplied to the second instruction execution unit. And in the second operation mode, a parallel processor comprising: an instruction supply means for supplying a part or all of the instructions from the instruction buffer means to the second instruction execution unit. .
JP2005346951A 2005-11-30 2005-11-30 Parallel processor Pending JP2007156557A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005346951A JP2007156557A (en) 2005-11-30 2005-11-30 Parallel processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005346951A JP2007156557A (en) 2005-11-30 2005-11-30 Parallel processor

Publications (1)

Publication Number Publication Date
JP2007156557A true JP2007156557A (en) 2007-06-21

Family

ID=38240882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005346951A Pending JP2007156557A (en) 2005-11-30 2005-11-30 Parallel processor

Country Status (1)

Country Link
JP (1) JP2007156557A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034189A (en) * 2009-07-30 2011-02-17 Renesas Electronics Corp Stream processor and task management method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011034189A (en) * 2009-07-30 2011-02-17 Renesas Electronics Corp Stream processor and task management method thereof

Similar Documents

Publication Publication Date Title
EP0968463B1 (en) Vliw processor processes commands of different widths
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP2816248B2 (en) Data processor
JP4986431B2 (en) Processor
EP2015174B1 (en) Microprogrammed processor having multiple processor cores using time-shared access to a microprogram control store
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
US6950926B1 (en) Use of a neutral instruction as a dependency indicator for a set of instructions
CN108139911B (en) Conditional execution specification of instructions using conditional expansion slots in the same execution packet of a VLIW processor
JP3781519B2 (en) Instruction control mechanism of processor
EP1378824A1 (en) A method for executing programs on multiple processors and corresponding processor system
JP4800582B2 (en) Arithmetic processing unit
JP2009526300A (en) Instruction set for microprocessors
JP2007156557A (en) Parallel processor
US9201657B2 (en) Lower power assembler
US20150095616A1 (en) Data processor
JP2003005954A (en) Data processor and method for controlling the same
JP5068529B2 (en) Zero-overhead branching and looping in time-stationary processors
JPH11282674A (en) Processor
US20110225395A1 (en) Data processing system and control method thereof
JP5644571B2 (en) Processor
JP3729142B2 (en) Parallel processing unit
JP2008040658A (en) Information processor and method for increasing information processing speed
JP2002163104A (en) Microcomputer
JP2004005738A5 (en)
JP2004005738A (en) Data processor, and instruction set expansion method