JPH10149341A - Asymmetric single-chip dual multiprocessor matching and synchronization - Google Patents
Asymmetric single-chip dual multiprocessor matching and synchronizationInfo
- Publication number
- JPH10149341A JPH10149341A JP22410597A JP22410597A JPH10149341A JP H10149341 A JPH10149341 A JP H10149341A JP 22410597 A JP22410597 A JP 22410597A JP 22410597 A JP22410597 A JP 22410597A JP H10149341 A JPH10149341 A JP H10149341A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- register
- vector
- instruction
- vector processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 多重処理装置の同期化を単純化させる統合マ
ルチプロセッサ構造を開示する。
【解決手段】 多重処理装置は、一般用プロセッサ及び
単一命令複数データ方式を有するベクトルプロセッサ1
20から構成されている。前記ベクトルプロセッサ12
0内のすべての多重並列処理装置は、命令を同時的に処
理する。一般用プロセッサ110は、ベクトルプロセッ
サ120を制御し、また前記ベクトルプロセッサ120
を作動させることによって、プログラムフロー内にポー
クを形成させる。前記2個のプロセッサ110,120
は、制御プロセッサがベクトルプロセッサ120を停止
させるまで、または例外事項が発生する時まで、または
前記ベクトルプロセッサ120がそのプログラムを随行
し遊休状態に入るまで、並列的に分離されたプログラム
を実行する。
An integrated multiprocessor structure for simplifying synchronization of a multiprocessor is disclosed. A multiprocessor includes a general processor and a vector processor having a single instruction multiple data system.
20. The vector processor 12
All multi-parallel processors in 0 process instructions simultaneously. The general-purpose processor 110 controls the vector processor 120 and the vector processor 120.
Is activated to form pork in the program flow. The two processors 110 and 120
Executes the parallel separated program until the control processor stops the vector processor 120, or when an exception occurs, or the vector processor 120 follows the program and enters an idle state.
Description
【0001】[0001]
【発明の属する技術分野】本願発明は、1996年8月
19日付で米国に出願され、現在係留中の“マルチメデ
ィア信号プロセッサの、単一命令複数データ処理”の部
分連続出願である。本発明はマルチプロセッサに関し、
特に並列的に実行される別個プログラムスレッド(progr
am thread)を整合化または同期化させるためのシステム
及び方法に関する。FIELD OF THE INVENTION The present invention is a partial continuation application for "single instruction, multiple data processing of a multimedia signal processor", filed in the United States on August 19, 1996 and currently pending. The present invention relates to a multiprocessor,
In particular, separate program threads (progr
systems and methods for coordinating or synchronizing am thread).
【0002】[0002]
【従来の技術】マルチプロセッサは、作業を完成するた
めお互いに協力し作動する複数のプロセッサを含む。相
対的に単純なマルチプロセッサシステムは、80386
プロセッサのようなコプロセッサ(co-processor)及び、
80387数学コプロセッサのような浮動小数点プロセ
ッサ(floating point processor)を含んでいる。このよ
うなシステムにおいて、プロセッサが浮動小数点作動を
必要とする命令を受けた時、前記プロセッサは、前記命
令を実行するコプロセッサを作動させる。80387プ
ロセッサのような数学コプロセッサは、命令が指示され
るか、もしくは浮動小数点命令の間で遊休状態にある場
合、単一命令を実行することに多くの限界がある。ま
た、前記コプロセッサによって提供される処理能力(pr
ocessing power)を増大させることにも多い限界があ
る。2. Description of the Related Art A multiprocessor includes a plurality of processors working together to complete a task. A relatively simple multiprocessor system is 80386
A co-processor, such as a processor, and
Includes a floating point processor such as the 80387 math coprocessor. In such a system, when the processor receives an instruction that requires floating point operation, the processor activates a coprocessor that executes the instruction. Math coprocessors such as the 80387 processor have many limitations in executing a single instruction when the instruction is directed or idle between floating point instructions. Also, the processing capacity (pr) provided by the coprocessor
There are many limitations to increasing the ocessing power.
【0003】分離され実行されるが、プログラムスレッ
ドを整合させる2個またはそれ以上の同一プロセッサを
含んでいる他のマルチプロセッサ方式も使用されてい
る。しかし、このようなマルチプロセッサ方式は、プロ
グラムスレッドの一部分を完成するために必要とする時
間が可変的であるので、プログラムスレッドを整合また
は同期化状態に維持すること、例えばプログラムスレッ
ドの間に結果を通過させることが困るようになる。例え
ば、キャッシュ ヒット(cache hit)及びミス(miss)、そ
して命令従属の変数が実行経路を遅延でき、命令を随行
することに必要なサイクル数が変化できる。従って、他
のプログラムスレッドでの命令シーケンスがたまに相互
に同期化されない問題が生じられる。[0003] Other multiprocessor schemes have also been used that execute separately but include two or more identical processors that coordinate program threads. However, such multiprocessor schemes vary the time required to complete a portion of the program thread, thus maintaining the program threads in a consistent or synchronized state, e.g., To pass through. For example, cache hits and misses, and instruction dependent variables can delay the execution path and change the number of cycles required to follow an instruction. Therefore, there is a problem that the instruction sequences in other program threads are sometimes not synchronized with each other.
【0004】適切な同期化を維持するため、プログラム
スレッドが相互に同期化され得るように、プロセッサ間
に連結されたハードウェアがプロセッサを遅延させたり
遊休させる。複数個の同一プロセッサを有するシステム
において、それぞれのプログラムスレッドは、自分を遅
延させたり、他のプログラムを遅延させる役割を果た
す。このようなシステムは、複雑な同期化ハードウェア
を有している場合が多く、プログラムスレッドの同期化
及び整合を維持するため、複雑なソフトウェアを必要と
する。このような複雑な同期化方式を有するハードウェ
アは、統合システム内のチップのサイズを大型化させ
る。また、複雑な同期化は、ソフトウェアの発展を一層
長期化させて困難にする。[0004] To maintain proper synchronization, hardware coupled between the processors delays or idles the processors so that the program threads can be synchronized with each other. In a system having a plurality of identical processors, each program thread plays a role of delaying itself or delaying another program. Such systems often have complex synchronization hardware and require complex software to maintain program thread synchronization and alignment. Hardware having such a complicated synchronization scheme increases the size of a chip in an integrated system. Also, complex synchronization makes software development longer and more difficult.
【0005】[0005]
【発明が解決しようとする課題】従って、本発明は従来
の問題点を解消するためのもので、その目的は、高度の
処理動力を提供し、内蔵された多数の分離されたプログ
ラムスレッドが互換性を有し、単純な方式でプログラム
を同期化且つ整合させることができるマルチプロセッサ
システムを提供することにある。SUMMARY OF THE INVENTION Accordingly, the present invention is directed to overcoming the problems in the prior art, which aims to provide a high degree of processing power and to allow multiple embedded program threads to be compatible. It is an object of the present invention to provide a multiprocessor system which has a characteristic and can synchronize and match programs by a simple method.
【0006】[0006]
【課題を解決するための手段】本発明の一実施例によれ
ば、2個のプロセッサを含む非対称プログラム制御型の
統合マルチプロセッサが提供される。制御プロセッサと
命名される第1プロセッサは連続的にプログラムスレッ
ドを実行し、コプロセッサと命名される第2プロセッサ
上の第2プログラムスレッドを実行または停止させる。
両プロセッサは、同期化のための通信を容易にする拡張
レジスタセットを共用する。前記制御プロセッサは、後
で作動されるプログラムスレッドのためコプロセッサの
初期化が可能になるように、コプロセッサのレジスタに
接近する。前記コプロセッサは回路を持たず、また第1
プロセッサの制御または接近のために回路を要しない。According to one embodiment of the present invention, there is provided an integrated asymmetric program-controlled multiprocessor including two processors. The first processor, named the control processor, runs the program thread continuously, causing the second program thread on the second processor, named the coprocessor, to run or stop.
Both processors share an extension register set that facilitates communication for synchronization. The control processor accesses the coprocessor registers so that initialization of the coprocessor is possible for a program thread to be activated later. The coprocessor has no circuitry and the first
No circuitry is required to control or access the processor.
【0007】前記プロセッサは、非対称命令セット及び
構造を有する。例えば、制御プロセッサはコプロセッサ
のレジスタを読み取ったり書き込むめの命令語、前記拡
張レジスタに接近するための命令語、コプロセッサを開
始させるための命令語、及び前記コプロセッサを中断さ
せるための命令語を実行する。前記コプロセッサは、前
記拡張レジスタに接近するための命令を実行するが、前
記制御プロセッサのレジスタには接近できない。プログ
ラムスレッドを終了するコプロセッサ命令は前記拡張レ
ジスタ内において前記コプロセッサが遊休状態であるこ
とを示す状態フラグをセットさせることによって、プロ
グラムスレッドの信号移行をインタラプトを介して前記
制御プロセッサに伝送する。[0007] The processor has an asymmetric instruction set and structure. For example, the control processor may read or write a register of the coprocessor, a command to access the extension register, a command to start the coprocessor, and a command to interrupt the coprocessor. Execute The coprocessor executes an instruction to access the extension register, but cannot access the control processor register. The coprocessor instruction to terminate the program thread transmits a signal transition of the program thread to the control processor via an interrupt by setting a status flag in the extension register indicating that the coprocessor is idle.
【0008】前記制御プロセッサは、前記拡張レジスタ
をポーリング(polling)するか、または前記コプロセッ
サが移行されたタスク(task)を有する時を判断するた
め、インタラプトメカニズム(interrupt mechanism)を
使用する。また、前記拡張レジスタ内の同期化フラグ
は、前記制御プロセッサまたは前記コプロセッサによっ
てポーリングされることにより、他のプロセッサがプロ
グラムスレッドを連続的に実行するための必要条件を備
えているか否かを判断できるようにする。ポーリングを
使用することによって、前記制御プロセッサ及びコプロ
セッサは、前記コプロセッサを停止させずに同期化が可
能である。拡張レジスタ内のフラグをテスト及びセット
可能な特殊制御プロセッサ命令は、同期化のためのポー
リングを容易にする。[0008] The control processor polls the extension register or uses an interrupt mechanism to determine when the coprocessor has a transitioned task. The synchronization flag in the extension register is polled by the control processor or the coprocessor to determine whether or not another processor has a necessary condition for continuously executing a program thread. It can be so. By using polling, the control processor and coprocessor can be synchronized without stopping the coprocessor. Special control processor instructions that can test and set flags in the extension register facilitate polling for synchronization.
【0009】本発明の一実施例によると、前記制御プロ
セッサは、一般用プロセッサであり、前記コプロセッサ
は単一命令複数データ方式を有するベクトルプロセッサ
である。本発明は、同期化機能を実行する場合に非効率
的に表れた計算能力を、前記ベクトルプロセッサによっ
て高度化でき、同期化を実現させる制御プロセッサがベ
クトルプロセッサが有しているデータ経路より狭いデー
タ経路を有することができるので、非常に効率的であ
る。本発明による実施例の二重プロセッサ構造は、ベク
トルプロセッサ内の多重処理装置を使用し、広範囲のデ
ータ経路も処理できる高度の処理能力を提供し、2個の
別個のプログラムスレッドが互換性を有することがで
き、制御プロセッサを介して優先的に供給されるソフト
ウェア同期化を単純化させることができる。According to one embodiment of the present invention, the control processor is a general purpose processor, and the coprocessor is a vector processor having a single instruction multiple data system. According to the present invention, the computational power that appears inefficiently when performing the synchronization function can be enhanced by the vector processor, and the control processor that realizes the synchronization has a smaller data path than the data path of the vector processor. It is very efficient because it can have a path. The dual processor structure of an embodiment according to the present invention uses a multiprocessor in a vector processor, provides a high degree of processing power capable of processing a wide range of data paths, and is compatible with two separate program threads. Software synchronization, which is preferentially provided via the control processor, can be simplified.
【0010】[0010]
【発明の実施の形態】以下、添付図面に基づき本発明の
実施の形態について説明し、図面全体を通し同一部分に
は同一な符号を使用する。本発明の一実施の形態として
示したマルチプロセッサは、並列的にそれぞれ分離され
たプログラムスレッドを実行する一組のプロセッサを含
む。実行の制御及び同期化は非対称的に遂行され、一つ
のプロセッサは主プロセッサまたは制御プロセッサとな
り、他のプロセッサは従プロセッサまたは被制御プロセ
ッサとなる。前記制御プロセッサは、連続的なプログラ
ムスレッドを実行するが、前記連続的なプログラムスレ
ッドは、前記被制御プロセッサ上の第2並列プログラム
スレッドを実行させることによって、並列処理命令を下
すようになる。前記被制御プロセッサが第2プログラム
スレッドを完了し遊休状態にある時、前記第2プログラ
ムスレッドは、前記プログラムスレッドに組み合わせら
れる。前記被制御プロセッサの命令セットは、実行時に
第2プログラムスレッドを終了し、割り込み要求を制御
プロセッサに伝送することによって、第2プログラムス
レッドが完了されたことを示す命令を含む。Embodiments of the present invention will be described below with reference to the accompanying drawings, and the same reference numerals are used for the same portions throughout the drawings. The multiprocessor described as an embodiment of the present invention includes a set of processors executing program threads that are separated in parallel. Execution control and synchronization is performed asymmetrically, with one processor becoming the main or control processor and the other becoming the slave or controlled processor. The control processor executes a continuous program thread, and the continuous program thread issues a parallel processing instruction by executing a second parallel program thread on the controlled processor. When the controlled processor has completed the second program thread and is idle, the second program thread is combined with the program thread. The instruction set of the controlled processor includes instructions indicating that the second program thread has been completed by terminating the second program thread during execution and transmitting an interrupt request to the control processor.
【0011】情報は流通経路を通しプログラムスレッド
の間を通過することができる。前記流通経路は下記のと
おりである:プロセッサの共用アドレス空間及びメモ
リ、被制御プロセッサが遊休状態の時、制御プロセッサ
が接近できる被制御プロセッサのレジスタセット及び両
プロセッサに接近できる“拡張”レジスタ。前記拡張レ
ジスタの一例としては、前記被制御プロセッサによって
セッティングされ、固有の作動が完了されたことを表わ
す1つ以上のフラグビットがある。また他のフラグビッ
トは、前記被制御プロセッサが優先的に始まったタスク
を実行中の状態であるか、または遊休状態であるかを表
わす。前記フラグビットを使用することによって、前記
制御プロセッサのプログラムスレッドは、待機ループ(w
ait loop)を含むことができる。前記待機ループは、前
記被制御プロセッサからの結果が備えられているか否か
を判断するため、フラグビットをポーリングする。前記
被制御プロセッサは、一般的に自分の固有プログラムス
レッド内にソフトウェア同期化を必要としない。従っ
て、ソフトウェアの同期化は、最も小さいオーバーヘッ
ド(overhead)のみが必要となる。[0011] Information can pass between program threads through a distribution channel. The distribution paths are as follows: a shared address space and memory of the processor, a register set of the controlled processor which the control processor can access when the controlled processor is idle, and an "extended" register which can access both processors. One example of the extension register is one or more flag bits set by the controlled processor to indicate that a specific operation has been completed. The other flag bits indicate whether the controlled processor is executing a task started with priority or is in an idle state. By using the flag bit, the control processor's program thread
ait loop). The wait loop polls a flag bit to determine if a result from the controlled processor is available. The controlled processor generally does not require software synchronization within its own program thread. Thus, software synchronization requires only minimal overhead.
【0012】図1は、本発明の一実施の形態として示し
たマルチプロセッサ100のブロックダイアグラムを示
している。マルチプロセッサ100は、一般用プロセッ
サ110及びモノリチック(monolithic)半導体チップに
統合されるベクトルプロセッサ120とを含む。一般用
プロセッサ110とベクトルプロセッサ120とは、S
RAM160、190、ROM170及び、キャッシュ
制御部180とを有するキャッシュサブシステム130
を通し、マルチプロセッサ100の他のオンチップ(on-
chip)要素に連結されている。マルチプロセッサ100
は、SRAM160を一般用プロセッサ110用の命令
キャッシュ162及びデータキャッシュ164の形態に
配列し、SRAM190を、ベクトルプロセッサ120
用192及び194に配列する。SRAM160、19
0の部品は、スクラッチパッドメモリを、一般用プロセ
ッサ110及びベクトルプロセッサ120の共用アドレ
ス空間内に交叉的に形成させる。FIG. 1 shows a block diagram of a multiprocessor 100 shown as an embodiment of the present invention. The multiprocessor 100 includes a general-purpose processor 110 and a vector processor 120 integrated on a monolithic semiconductor chip. The general processor 110 and the vector processor 120
Cache subsystem 130 including RAMs 160 and 190, ROM 170, and cache control unit 180
Through the other on-chip (on-
chip) element. Multiprocessor 100
Arranges the SRAM 160 in the form of an instruction cache 162 and a data cache 164 for the general-purpose processor 110, and stores the SRAM 190 in the vector processor 120.
192 and 194. SRAM 160, 19
The zero component causes the scratch pad memory to be formed alternately in the shared address space of the general purpose processor 110 and the vector processor 120.
【0013】オンチップROM170は、一般用プロセ
ッサ110及びベクトルプロセッサ120のためのデー
タ及び、ファームウェア(firmware)を有し、キャッシュ
によって接近され得る。ROM170は、一般的にリセ
ット及び初期化順次、自己テスト診断順序、そしてイン
タラプト及び例外処理物を含んでいる。本発明の一実施
例において、マルチプロセッサ100は、マルチメディ
アで信号処理のために使用されるもので、本明細書で
は、マルチメディア信号プロセッサまたはMSPとして
も命名される。本発明の一実施の形態によると、ROM
170は、サウンドカードエミュレーションのためのサ
ブルーチン、モデム信号処理のためのサブルーチン、一
般電話機能のためのサブルーチン、2−D及び3−Dグ
ラフィックサブルーチンライブラリー、及びMPEG−
1、MPEG−2、H.261、H.263、G.72
8、そしてG.723のような、オーディオ及びビデオ
エンコーディング及びデコーディング規格のためのサブ
ルーチンライブラリーを追加で含む。The on-chip ROM 170 has data and firmware for the general purpose processor 110 and the vector processor 120 and can be accessed by a cache. ROM 170 generally includes a reset and initialization sequence, a self-test diagnostic sequence, and interrupt and exception handling. In one embodiment of the present invention, the multiprocessor 100 is used for signal processing in multimedia, and is also referred to herein as a multimedia signal processor or MSP. According to one embodiment of the present invention, a ROM
170 is a subroutine for sound card emulation, a subroutine for modem signal processing, a subroutine for general telephone functions, a 2-D and 3-D graphic subroutine library, and an MPEG-
1, MPEG-2, H.264. 261, H .; 263, G.R. 72
8, and G. It additionally includes a subroutine library for audio and video encoding and decoding standards, such as 723.
【0014】1996年8月19日付で米国の特許庁に
出願された、“マルチメディア信号プロセッサにおける
マルチプロセッサの作動(Multiprocessor Operation in
a Multimedia Signal Processor”という名称の発明
は、マルチメディアでマルチプロセッサを使用すること
を追加で記載している。前記発明の全体的な内容は、本
明細書で参照として記載される。キャッシュサブシステ
ム130は、一般用プロセッサ110とベクトルプロセ
ッサ120とを2個のシステムバス140、150に連
結し、一般用プロセッサ110、ベクトルプロセッサ1
20、及び前記2つのシステムバス140、150に結
合された装置のための、キャッシュ及びスイッチングス
テーションとして作動する。システムバス150は、シ
ステムバス140より高いクロック周波数で作動する。
システムバス150は、それぞれ外部ローカルメモリの
ためのインターフェースを提供するメモリコントローラ
ー158、ローカルバスインターフェース156、DM
A(direct memory access)コントローラー154、及び
装置インターフェース152、そしてホストコンピュー
ターのローカルバス、直接メモリー接近、及びA/D、
D/A変換機のような高速装置に連結されている。シス
テムタイマー142、UART(universal asynchronou
s receiver transceiver)144、ビットストリームプ
ロセッサ146、及びインタラプトコントローラー14
8のような低速装置は、システムバス140に連結され
ている。本発明で参照として記載される“マルチメディ
ア信号プロセッサにおけるマルチプロセッサの作動”と
いう名称の発明には、前記キャッシュサブシステム13
0の作動そして、一般用プロセッサ110及びベクトル
プロセッサ120がキャッシュサブシステム130とシ
ステムバス140及びシステムバス150を通して接近
する例示装置について詳述されている。[0014] filed with the United States Patent Office on August 19, 1996, entitled "Multiprocessor Operation in Multimedia Signal Processors."
The invention entitled "a Multimedia Signal Processor" additionally describes the use of a multiprocessor in multimedia. The general contents of said invention are described herein by reference. 130 connects the general processor 110 and the vector processor 120 to two system buses 140 and 150, and connects the general processor 110 and the vector processor 1 to each other.
20 and acts as a cache and switching station for the devices coupled to the two system buses 140,150. System bus 150 operates at a higher clock frequency than system bus 140.
The system bus 150 includes a memory controller 158 that provides an interface for an external local memory, a local bus interface 156, and a DM bus.
A (direct memory access) controller 154 and device interface 152, and a local bus of the host computer, direct memory access, and A / D,
It is connected to a high-speed device such as a D / A converter. System timer 142, UART (universal asynchronou)
s receiver transceiver) 144, bit stream processor 146, and interrupt controller 14
A low speed device such as 8 is connected to the system bus 140. The invention entitled "Multiprocessor Operation in a Multimedia Signal Processor", which is described by reference in the present invention, includes the cache subsystem 13
The operation of the general processor 110 and the vector processor 120 will now be described in detail with respect to an exemplary device in which the general purpose processor 110 and the vector processor 120 access the cache subsystem 130 via the system bus 140 and the system bus 150.
【0015】1996年8月19日付で米国に出願され
た“ビデオデータ処理用の装置及び方法”という題下の
発明は、MPEG規格に一致し、可変的な長さを有する
ビットストリームを、エンコーディング及びデコーディ
ングするためのビットストリームプロセッサ146を開
示している。前記発明もまた、その全体的な内容が本明
細書に参照として記載される。一般用プロセッサ110
及びベクトルプロセッサ120は、分離されたプログラ
ムスレッドを実行し、固有のタスクをより効果的に実行
できるように、相互に異なる構造を有している。一般用
プロセッサ110は、実時間(real-time)作動システ
ム、一般用プロセッサ110及びベクトルプロセッサ1
20のための例外ルーチン、及び多い反復計算を必要と
しない工程を優先的に実行する。一般用プロセッサ11
0はまた、ベクトルプロセッサ120の初期化、開始、
及び停止を制御する。ベクトルプロセッサ120は、マ
ルチメディア工程に常用されるデータブロック上で反復
処理することを含む、数処理作業(number crunching)を
主に実行する。The invention filed in the United States on August 19, 1996, entitled "Apparatus and Method for Video Data Processing" encodes a bit stream having a variable length in accordance with the MPEG standard. And a bitstream processor 146 for decoding. Said invention is also described in its entirety herein by reference. General-purpose processor 110
The vector processor 120 and the vector processor 120 have different structures so as to execute the separated program threads and execute the specific tasks more effectively. The general processor 110 includes a real-time operating system, a general processor 110 and a vector processor 1.
Exceptional routines for 20 and those steps that do not require a lot of iterative calculations are preferentially performed. General processor 11
0 is also the initialization, start,
And stop. The vector processor 120 mainly performs number crunching, including iterative processing on data blocks commonly used in multimedia processes.
【0016】図2は、一般用プロセッサ110とベクト
ルプロセッサ120間の相互作用を例示するブロックダ
イアグラムを示している。一般用プロセッサ110は、
制御ロジックを有する命令デコーダー260、実行デー
タ経路270、記録レジスタ280、及び読出レジスタ
290を含む。一般用プロセッサ110は、一般的なス
カラーデータ値を有する。図2の実行データ経路270
で、レジスタファイル272は、32ビットデータレジ
スタセット及び状態レジスタセットを含んでおり、処理
装置276は32ビットまでの大きさを有するオペラン
ドを操作するための32ビットバスを有する。実施例に
おいて、一般用プロセッサ110は、40MHzで作動
し、ARM7プロセッサの構造に符合する32ビットR
ISCプロセッサである。ARM7RISCプロセッサ
の構造及び命令セットは、アドバンス リスク マシーン
株式会社(Advance RISC Machines Ltd.)から入手可能
な、文書番号ARM DDI 0010Gである“ARM
7DMデータシート”に詳細に記載されている。前記A
RM7DMデータシートは、本明細書に参照として記載
される。別添Aは、一般用プロセッサ110とベクトル
プロセッサ120との間の相互作用または、実施例に記
載されたキャッシュサブシステム130のためのARM
7命令の拡張子を表している。FIG. 2 shows a block diagram illustrating the interaction between general purpose processor 110 and vector processor 120. The general processor 110 includes:
It includes an instruction decoder 260 having control logic, an execution data path 270, a recording register 280, and a read register 290. The general purpose processor 110 has a general scalar data value. Execution data path 270 in FIG.
The register file 272 includes a 32-bit data register set and a status register set, and the processing unit 276 has a 32-bit bus for operating operands having a size of up to 32 bits. In an embodiment, the general purpose processor 110 operates at 40 MHz and has a 32-bit R that conforms to the architecture of an ARM7 processor.
An ISC processor. The structure and instruction set of the ARM7 RISC processor is "ARM DDI 0010G," document number ARM DDI 0010G, available from Advance RISC Machines Ltd.
7DM data sheet ". A.
The RM7DM data sheet is described herein by reference. Appendix A describes the interaction between the general purpose processor 110 and the vector processor 120 or the ARM for the cache subsystem 130 described in the embodiment.
Represents the extension of 7 instructions.
【0017】図2の実施の形態において、ベクトルプロ
セッサ120は、SIDM(singleinstruction multipl
e data)構造を有し、命令取出し装置(instruction fetc
h unit)210、デコーダー220、スケジューラー2
30、実行データ経路240、及び積載/貯蔵装置(L
SU)250とを含む。命令取出し装置210は、命令
及びブランチのようなプロセスフロー制御命令を引出
す。デコーダー220は、命令取出し装置210から到
着する順序によって、サイクル当り1つの命令をデコー
ドし、スケジューラー230内のFIFO234に伝達
される命令によってデコードされるフィールド値を記録
する。スケジューラー230内のイッシュコントロール
ロジック232は、作動を完了するために実行データ経
路240及び、積載/貯蔵装置(LSU;250)に記
録されるフィールド値を選別する。実行データ経路24
0は、ベクトルデータまたはスカラーデータを操作する
論理/算術命令を実行する。積載/貯蔵装置(LSU)
250は、一般用プロセッサ110及びベクトルプロセ
ッサ120の共用アドレス空間に接近する積載/貯蔵命
令を実行する。例外コントロールロジック215は、命
令取出し装置210、デコーダー220、及びスケジュ
ーラー230に結合されており、ベクトルプロセッサ命
令のデコーディングまたは実行が例外事項を引き起こす
場合、一般用プロセッサ110にインタラプトを印加す
る。In the embodiment shown in FIG. 2, the vector processor 120 has a single instruction multipl
e data) structure, and an instruction fetch unit (instruction fetc
h unit) 210, decoder 220, scheduler 2
30, the execution data path 240, and the loading / storage device (L
SU) 250. The instruction fetch unit 210 fetches process flow control instructions such as instructions and branches. The decoder 220 decodes one instruction per cycle according to the order of arrival from the instruction fetch unit 210, and records the field values decoded by the instruction transmitted to the FIFO 234 in the scheduler 230. The issue control logic 232 in the scheduler 230 selects the execution data path 240 and the field values recorded in the load / store unit (LSU; 250) to complete the operation. Execution data path 24
0 executes logical / arithmetic instructions that operate on vector data or scalar data. Loading / Storage Unit (LSU)
The 250 executes a load / store instruction that accesses the shared address space of the general processor 110 and the vector processor 120. The exception control logic 215 is coupled to the instruction fetch unit 210, the decoder 220, and the scheduler 230, and applies an interrupt to the general processor 110 when decoding or execution of the vector processor instruction causes an exception.
【0018】実施の形態において、実行データ経路24
0は、8個の32ビット浮動小数点装置、8個の36ビ
ット整数乗算器、及び8個の36ビット算出論理装置
(ALUs)を含む並列処理装置246を有する。それ
ぞれの36ビット整数乗算器は、36ビットデータ要素
上で1回の演算を遂行することができ、16ビットデー
タ要素上で2回の演算を同時的に遂行することができ、
8ビットまたは9ビットデータ要素上で4回の演算を同
時的に遂行することができる。並列処理装置246は、
288ビットベクトルオペランド及び、32ビットスカ
ラーオペランドを処理する。実行データ経路240のた
めのレジスタファイル242は、ベクトルレジスタ24
4を有している。ベクトルプロセッサ120の内の大部
分のデータ経路は、32個の8ビットまたは9ビットデ
ータ要素、16個の16ビット要素または、8個の32
ビット要素の同時的な操作を支持するため、288また
は576ビットの幅を有する。SIMD構造により、ベ
クトルプロセッサ120内の並列処理装置246は、同
一な命令を同時的に実行し完了できる。In the embodiment, the execution data path 24
0 has a parallel processing unit 246 that includes eight 32-bit floating point units, eight 36-bit integer multipliers, and eight 36-bit arithmetic logic units (ALUs). Each 36-bit integer multiplier can perform one operation on the 36-bit data element, and can perform two operations on the 16-bit data element simultaneously,
Four operations can be performed simultaneously on 8-bit or 9-bit data elements. The parallel processing device 246 includes:
Process 288 bit vector operands and 32 bit scalar operands. The register file 242 for the execution data path 240 stores the vector register 24
Four. Most of the data paths within the vector processor 120 are 32 8 bit or 9 bit data elements, 16 16 bit elements or 8 32 bit elements.
It has a width of 288 or 576 bits to support simultaneous operation of bit elements. With the SIMD structure, the parallel processing unit 246 in the vector processor 120 can execute and complete the same instruction simultaneously.
【0019】ベクトルプロセッサ120は、実施例で8
0MHzで作動するパイプライン式RISCエンジンか
ら構成されている。ベクトルプロセッサ120のレジス
タは、特殊用レジスタ245、復帰アドレススタック
(図示されていない)、32ビットスカラーレジスタ2
43、二バンクからなるベクトルレジスタ244、及び
2個のダブル−サイズ(すなわち、576ビット)ベク
トルアキュムレーターレジスタ(図示せず)を含む。レ
ジスタファイル242は、0乃至31の範囲を有する5
ビットレジスタ数により命令語内で識別される32個の
スカラーレジスタ、及び32個のベクトルレジスタの二
バンク内に編制される64個の288ビットベクトルレ
ジスタを含む。The vector processor 120 has eight
It consists of a pipeline RISC engine operating at 0 MHz. The registers of the vector processor 120 include a special register 245, a return address stack (not shown), a 32-bit scalar register 2
43, two banks of vector registers 244, and two double-sized (ie, 576 bits) vector accumulator registers (not shown). Register file 242 has a range of 0 to 31
It includes 32 scalar registers identified in the instruction word by the number of bit registers, and 64 288 bit vector registers organized in two banks of 32 vector registers.
【0020】それぞれのベクトルレジスタは、1ビット
バンク数(0または1)及び、0乃至31の範囲を有す
る5ビットベクトルレジスタ数により識別される。大部
の命令語は、ベクトルプロセッサ120の特殊用レジス
タ(VCSR)に貯蔵されている制御ビット(CBAN
K)により表示されるとおり、作動中のバンク内のベク
トルレジスタのみに接近可能である。第2制御ビット
(VEC64)は、省略時(default)によるレジスタ数
がそれぞれのバンクから1つのレジスタを含むダブルサ
イズベクトルレジスタを表しているか否かを表示する。
命令語構文は、ベクトルレジスタを表わすレジスタ数
を、スカラーレジスタを表すレジスタ数から区別する。
また命令語構文は、ベクトルレジスタを表わすレジスタ
数を、特殊用レジスタを表わすレジスタ数から区別す
る。Each vector register is identified by a 1-bit bank number (0 or 1) and a 5-bit vector register number ranging from 0 to 31. Most of the instructions are controlled by control bits (CBAN) stored in a special register (VCSR) of the vector processor 120.
As indicated by K), only the vector registers in the active bank are accessible. The second control bit (VEC64) indicates whether the default number of registers represents a double size vector register containing one register from each bank.
The instruction syntax distinguishes the number of registers representing a vector register from the number of registers representing a scalar register.
The instruction syntax distinguishes the number of registers representing a vector register from the number of registers representing a special register.
【0021】ベクトルレジスタ244は、それぞれプロ
グラミングできる大きさのデータ要素に分割され得る。
例えば、288ビットベクトルレジスタは、32個の8
ビットまたは9ビットの整数データ要素、16個の32
ビット整数データ要素、または8個の32ビット整数デ
ータ要素、または32個の浮動小数点データ要素とを保
有することができる。ダブル−サイズレジスタの形態で
論理結合されている2個のベクトルレジスタは、2倍程
度のデータ要素を有するベクトルの貯蔵ができる。本発
明の実施の形態によると、セッティング制御ビットVE
C64は、ベクトルプロセッサ120を、ダブルサイズ
(576ビット)がベクトルレジスタ用の設定値となる
モードVEC64に位置させる。1996年8月19日
付の米国の特許庁に出願された“マルチメディア信号プ
ロセッサにおける単一命令複数データ処理方式”という
名称の発明は、本実施例のベクトルプロセッサ120に
関連した構造及び命令語セットを追加で説明している。
前記発明は、本明細書で参考として記載される。The vector register 244 may be divided into data elements of a programmable size.
For example, a 288 bit vector register has 32 8
Bit or 9 bit integer data element, 16 32
It may have a bit integer data element, or eight 32-bit integer data elements, or 32 floating point data elements. Two vector registers logically connected in the form of a double-size register can store a vector having about twice as many data elements. According to the embodiment of the present invention, the setting control bit VE
The C64 positions the vector processor 120 in the mode VEC64 in which the double size (576 bits) is the set value for the vector register. The invention entitled "Single Instruction Multiple Data Processing Method in Multimedia Signal Processor" filed with the U.S. Patent Office on Aug. 19, 1996 has a structure and instruction word set related to the vector processor 120 of this embodiment. Is additionally explained.
The invention is described herein by reference.
【0022】マルチプロセッサ100はまた、一般用プ
ロセッサ110とベクトルプロセッサ120とに接近可
能な、32ビット拡張レジスタ115セットを含む。拡
張レジスタ115は、特権拡張レジスタ及び使用者拡張
レジスタを含む。前記特権拡張レジスタは、マルチプロ
セッサ100のための一般的な作動モードを制御したり
表示したりする。前記使用者拡張レジスタは、一般用プ
ロセッサ110及びベクトルプロセッサ120とによっ
て実行されるプログラムスレッドを同期化させるレジス
タを含む。実施例において、前記使用者拡張レジスタ
は、ベクトルプロセッサ状態フラグ(VPSTATE)
及び同期化フラグ(VASYNC)を含む。前記状態フ
ラグ(VPSTATE)は、2個の値(VP_RUN及
びVP_IDLE)を有し、ベクトルプロセッサ120
がプログラムスレッドを実行しているかまたは、遊休状
態であるか否かを表わす。実施例において、ベクトルプ
ロセッサ120は、拡張レジスタ(VASYNC)をそ
の自分の特殊用レジスタと見なしており、ベクトルプロ
セッサ命令語、例えばVMOVのような命令語は、レジ
スタ(VASYNC)を読出または記録するための接近
を可能にする。他の命令語は、特殊用拡張レジスタに必
ず接近するようになっている。Multiprocessor 100 also includes a set of 32-bit extension registers 115 accessible to general purpose processor 110 and vector processor 120. The extension register 115 includes a privilege extension register and a user extension register. The privilege extension register controls and indicates a general operation mode for the multiprocessor 100. The user extension register includes a register that synchronizes a program thread executed by the general processor 110 and the vector processor 120. In one embodiment, the user extension register includes a vector processor status flag (VPSTATE).
And a synchronization flag (VASYNC). The status flag (VPSTATE) has two values (VP_RUN and VP_IDLE), and the vector processor 120
Is running a program thread or is idle. In an embodiment, the vector processor 120 regards the extension register (VASYNC) as its own special register, and a vector processor instruction, for example, an instruction such as VMOV, reads or records the register (VASYNC). Allows access. Other instruction words always approach the special extension register.
【0023】例えば、VCINTまたはVCJOINの
ような命令語、または例外(EXCEPTION)を発生させるそ
の他の命令語は、例外のためにプログラムスレッドが完
了、停止された場合、状態フラグ(VPSTATE)を
VP_IDLE状態に変化させる。拡張レジスタのベク
トルプロセッサ状態フラグ(VPSTATE)及び同期
化フラグ(VASYNC)は、一般用プロセッサ110
及びベクトルプロセッサ120がレジスタを同時的に読
出できるように、2個のポートを有している。ベクトル
プロセッサ120がVP_IDLE状態にある時、一般
用プロセッサ110は、ベクトルプロセッサ120のス
カラーレジスタ及び、特殊用レジスタを読出または記録
することができる。しかし、ベクトルプロセッサ120
がVP_RUN状態の間、ベクトルプロセッサ120の
レジスタを読出または記録する一般用プロセッサ110
の結果値は明確でない。一般用プロセッサ110用AR
M7命令語セットの拡張子は、拡張レジスタ115に接
近する命令語(MFER及びMTER)及び、ベクトル
プロセッサ120のスカラーレジスタ及び特殊用レジス
タに接近する命令語(MFVP及びMTVP)を含む。
条件命令語(TESTSET)は拡張レジスタを読出
し、既存条件が満足された状態の場合、拡張レジスタの
ビット30を1にセッティングする。命令語(TEST
SET)は、同期化ポイントを表し得るように、ベクト
ルプロセッサ120により消去される値を読出し、次の
同期化ポイントを備え得るようにビット30をリセッテ
ィングさせることによって、使用者/生産者の同期化を
容易にする。For example, a command such as VCINT or VCJOIN, or another command that causes an exception (EXCEPTION), sets the status flag (VPSTATE) to the VP_IDLE state when the program thread is completed or stopped due to the exception. To change. The vector processor status flag (VPSTATE) and the synchronization flag (VASYNC) of the extension register are stored in the general processor 110.
And two ports so that the vector processor 120 can read the registers simultaneously. When the vector processor 120 is in the VP_IDLE state, the general processor 110 can read or record the scalar register and the special register of the vector processor 120. However, the vector processor 120
Reads or records the registers of the vector processor 120 during the VP_RUN state.
Is not clear. AR for general processor 110
The extensions of the M7 instruction set include the instructions (MFER and MTER) approaching the extension register 115 and the instructions (MFVP and MTVP) approaching the scalar and special registers of the vector processor 120.
The condition command (TESTSET) reads the extension register and sets bit 30 of the extension register to 1 if the existing condition is satisfied. Command word (TEST
SET) reads the value erased by the vector processor 120 so that it can represent a synchronization point, and resets bit 30 to provide the next synchronization point, thereby synchronizing the user / producer. To facilitate.
【0024】一般用プロセッサ110は、命令語STA
RTVP及びINTVPを実行し、ベクトルプロセッサ
120を作動及び停止でき、前記において言及したとお
り、ベクトルプロセッサ120のスカラーレジスタ及び
特殊用レジスタに接近できる。これとは対照的に、ベク
トルプロセッサ120は、一般用プロセッサ110を作
動及び停止させることができず、一般用プロセッサ11
0のレジスタに接近することができない。このような一
般用プロセッサ110及びベクトルプロセッサ120間
の非対称的な制御分割は、一般用プロセッサ110及び
ベクトルプロセッサ120の同期化を単純にする。本発
明の一面によると、ベクトルプロセッサ120は遊休状
態になる毎に、一般用プロセッサ110にインタラプト
要請信号を発生させる。例えば、一般的なプログラムス
レッドの末尾でベクトルプロセッサ120は、インタラ
プト要請信号を発生させ、ベクトルプロセッサ120を
VP_IDLE状態にする命令語(VCJOINまたは
VCINT)を実行する。一般用プロセッサ110は結
果を伝送し、ベクトルプロセッサ120を再作動させる
ために、インタラプト操作ルーチンを使用することがで
きる。従って、インタラプト操作者は、一般用プロセッ
サ110及びベクトルプロセッサ120を同期化でき
る。The general-purpose processor 110 has a command word STA.
It can perform RTVP and INTVP, activate and deactivate the vector processor 120, and access the scalar and special registers of the vector processor 120, as mentioned above. In contrast, the vector processor 120 cannot activate and deactivate the general purpose processor 110 and the general purpose processor 11
Cannot access the zero register. Such asymmetric control division between the general purpose processor 110 and the vector processor 120 simplifies the synchronization of the general purpose processor 110 and the vector processor 120. According to an aspect of the present invention, the vector processor 120 generates an interrupt request signal to the general purpose processor 110 every time the vector processor 120 enters an idle state. For example, at the end of a general program thread, the vector processor 120 generates an interrupt request signal and executes a command (VCJOIN or VCINT) for setting the vector processor 120 to the VP_IDLE state. The general purpose processor 110 can use the interrupt handling routine to transmit the results and restart the vector processor 120. Accordingly, the interrupt operator can synchronize the general processor 110 and the vector processor 120.
【0025】1996年8月19日付で米国の特許庁に
出願された“引き数の授受(Argument Passing)及び、ソ
フトウェアインタラプトを操縦するためのシステム及び
方法”(System and Method for Handling Software Int
errupts with Argument Passingという名称の発明と、
“非対称マルチプロセッサで、インタラプト及び例外事
象(event)を操縦するためのシステム及び方法(System a
nd Method for Handling Interrupts and Exception Ev
ents in an Asymmetric Multiprocessor Architectur
e”という名称の発明は、本発明の実施例に記載されて
いるとおりの例外及びインタラプトの処理に関して記述
している。前記発明の全体的な内容は、本明細書で参照
として記載される。ポーリングプロセスは、インタラプ
ト操作に代わって同期化することに使用される。図3の
本発明の一実施例による二重スレッドプロセス300の
一例を表わす流れ図である。ベクトルプロセッサ120
でプログラムスレッドを始める前、前記一般用プロセッ
サ110は、レジスタ(VPSTATE)値を決定する
段階310及び320とを備える待機ループ315を実
行することによって、前記ベクトルプロセッサ120が
作動状態であるか、または遊休状態であるかを決定す
る。前記マルチプロセッサ100が作動し始まるかリセ
ットされてから、または前記ベクトルプロセッサ120
が例外状況を発生させる命令を実行してから、前記ベク
トルプロセッサ120は遊休状態となる。"System and Method for Handling Software Int" filed with the United States Patent Office on August 19, 1996, "Argument Passing and Software Interrupts".
an invention named errupts with Argument Passing,
“System and method for handling interrupts and events in asymmetric multiprocessors
nd Method for Handling Interrupts and Exception Ev
ents in an Asymmetric Multiprocessor Architectur
The invention entitled "e" describes the handling of exceptions and interrupts as described in the embodiments of the invention. The general content of said invention is described herein by reference. The polling process is used to synchronize on behalf of an interrupt operation, and is a flow diagram illustrating an example of a dual threaded process 300 according to one embodiment of the present invention of Figure 3. Vector processor 120.
Before starting the program thread at, the general processor 110 executes a waiting loop 315 comprising steps 310 and 320 for determining a register (VPSTATE) value, so that the vector processor 120 is active or Determine if you are idle. After the multiprocessor 100 is started or reset, or the vector processor 120
Executes an instruction that causes an exceptional situation, then the vector processor 120 goes into an idle state.
【0026】“マルチプロセッサで効果的に内容を貯蔵
及び復旧する方法”(Efficient Saving and Restoring
in Multiprocessors)という名称で、1996年8月1
9日付で米国に特許出願された発明は、プロセッサ11
0、120で使用可能な内容変更方法を開示し、全体的
に本願で参照する。前記内容の貯蔵方法において、ベク
トルプロセッサ120は、拡張レジスタ(VIMSK)
のフラグビット(CSE)がセットされると、内容貯蔵
サブルーチンに進行する条件付けの内容貯蔵命令語(V
CCS)を周期的に実行する。前記内容貯蔵サブルーチ
ンが終結される時、前記ベクトルプロセッサ120は、
命令語(VSCINTまたはVCJOIN)を実行し、
VP_IDLE状態に入ることができる。従って、好ま
しい内容貯蔵方法では、一般用プロセッサ110がフラ
グビット(CSE)をセッティングし、ベクトルプロセ
ッサ120が待機ループ315でのように、遊休状態に
なることを待つ。"Efficient Saving and Restoring"
in Multiprocessors), August 1, 1996
The invention filed in the United States on the 9th is a processor 11
The content modification methods usable at 0, 120 are disclosed and are referred to throughout the present application. In the method of storing the contents, the vector processor 120 includes an extension register (VIMSK).
When the flag bit (CSE) is set, the content storage command (V
CCS) is executed periodically. When the content storage subroutine is terminated, the vector processor 120
Execute a command (VSCINT or VCJOIN),
The VP_IDLE state can be entered. Thus, in the preferred content storage method, the general purpose processor 110 sets the flag bit (CSE) and waits for the vector processor 120 to enter an idle state, as in the wait loop 315.
【0027】一般用プロセッサ110は、待機ループ3
15で待機し、前記ベクトルプロセッサ120が遊休状
態になるまで、拡張レジスタ(VPSTATE)をポー
リングし続ける。一応、前記ベクトルプロセッサ120
が遊休状態になると、一般用プロセッサ110は段階3
30を実行し、新しいプログラムスレッド用のベクトル
プロセッサ120をセットアップする。段階330で、
前記一般用プロセッサ110は、前記ベクトルプロセッ
サのプログラムカウンターの特殊レジスタ(VPC)
に、プログラムアドレスを記録する。前記プロセッサ1
10はまた、パラメータをベクトルプロセッサ120に
送るために、ベクトルプロセッサ120の他のスカラー
レジスタ及び特殊レジスタに記録できる。前記ベクトル
プロセッサ120が初期化されると、前記一般用プロセ
ッサ110は、命令語(STARTVP)が段階345
でプログラムスレッドを実行するベクトルプロセッサ1
20を作動させる段階340を実行する。命令語(ST
ARTVP)は、レジスタ(VPSTATE)をVP_
RUN状態にセッティングし、前記ベクトルプロセッサ
120は、VP_RUN値を読出し命令を引出し実行す
る。この時、一般用プロセッサ110は、前記プロセッ
サ110、120が並列で作動できるように、そのプロ
グラムスレッドを実行し続ける。The general-purpose processor 110 executes the standby loop 3
Wait at 15 and continue polling the extension register (VPSTATE) until the vector processor 120 is idle. First, the vector processor 120
Is idle, the general purpose processor 110 proceeds to step 3
Execute 30 to set up the vector processor 120 for the new program thread. At step 330,
The general processor 110 is a special register (VPC) of a program counter of the vector processor.
Record the program address. The processor 1
The 10 can also record parameters in other scalar and special registers of the vector processor 120 for sending to the vector processor 120. When the vector processor 120 is initialized, the general processor 110 sends an instruction (STARTVP) to step 345.
Processor 1 that executes a program thread by using
Step 340 of activating 20 is performed. Command word (ST
ARTVP) sets the register (VPSTATE) to VP_
After setting to the RUN state, the vector processor 120 reads out the VP_RUN value, extracts and executes the instruction. At this time, the general-purpose processor 110 continues to execute its program thread so that the processors 110 and 120 can operate in parallel.
【0028】過程300で、一般用プロセッサ110
は、続けてそのプログラムスレッドを実行するが段階3
80は、ベクトルプロセッサ120からの結果と同期化
されなければならない。そのプログラムスレッドを実行
するベクトルプロセッサ120は、段階355における
結果を完了し、段階375における実行を中止させる段
階365における命令語(VCINTまたはVCJOI
N)を実行する。段階355の後で段階380が発生し
得るようにするために、前記一般用プロセッサ110
は、段階360及び370とを含む待機ループを実行
し、ベクトルプロセッサ120が遊休状態となるまで待
機する。前記ベクトルプロセッサ120が段階365を
実行する前、前記一般用プロセッサ110が段階360
に至ることも、1つの可能な順序である。この場合、前
記一般用プロセッサ110は、前記ベクトルプロセッサ
120が遊休状態となるまで、反復的に命令360及び
370とを実行する。また、前記一般用プロセッサ11
0が段階360に至る前、前記プロセッサ120が段階
365を遂行することも可能な順序である。この場合
は、前記一般用プロセッサ110が段階360及び37
0とを同時に遂行する。At step 300, the general purpose processor 110
Continues to execute its program thread, but in step 3
80 must be synchronized with the result from the vector processor 120. The vector processor 120 executing the program thread completes the result in step 355 and causes the instruction (VCINT or VCJOI) in step 365 to abort execution in step 375.
N). In order for step 380 to occur after step 355, the general processor 110
Executes a wait loop including steps 360 and 370, and waits until the vector processor 120 is idle. Before the vector processor 120 performs step 365, the general purpose processor 110 performs step 360.
Is also one possible order. In this case, the general processor 110 repeatedly executes the instructions 360 and 370 until the vector processor 120 enters an idle state. Further, the general processor 11
Before 0 reaches step 360, the processor 120 may perform step 365. In this case, the general processor 110 determines in steps 360 and 37
And 0 are performed simultaneously.
【0029】段階380では、前記一般用プロセッサ1
10が結果を操作し、他のSTARTVP命令で、前記
ベクトルプロセッサ120を単純に初期化し、再開始さ
せる。その以前のプログラムスレッド用の内容スイッチ
がある場合は、前記一般用プロセッサ110は、以前に
貯蔵された内容を復旧し、インタラプトされたプログラ
ムスレッドを再開始させるサブルーチンの住所として、
前記ベクトルプロセッサ120を初期化することができ
る。In step 380, the general processor 1
10 manipulates the result and simply initializes and restarts the vector processor 120 with another STARTVP instruction. If there is a content switch for the previous program thread, the general processor 110 may restore the previously stored content and restart the interrupted program thread as a subroutine address:
The vector processor 120 can be initialized.
【0030】図4は、本発明の一実施の形態として示し
た同期化のためにポーリングを使用する二重スレッド過
程400のまた他の例を図示する。前記過程400は、
図3に図示された過程300で記載されたとおり始ま
る。特に、一般用プロセッサ110は、前記ベクトルプ
ロセッサ120が遊休状態となるまで待機ループ315
で待機し、いずれベクトルプロセッサ120が段階34
5でプログラムスレッドを実行させ始めるかによって、
段階340で前記ベクトルプロセッサ120を開始させ
る。過程400で、前記一般用プロセッサ110は、前
記一般用プロセッサ110が段階480を実行する前、
前記ベクトルプロセッサ120が段階355の結果を完
成することを要請する。過程400は、前記ベクトルプ
ロセッサ120が段階455の実行に従う遊休状態に入
らず、レジスタ(VPSTATE)が同期化に使用され
ないという点で、過程300とは異なる。その代わり
に、ループ460は、段階480及び355を同期化す
るために、拡張レジスタ(VASYNC)をポーリング
する。FIG. 4 illustrates yet another example of a dual threading process 400 that uses polling for synchronization, as shown in one embodiment of the present invention. The step 400 includes:
It begins as described in the process 300 illustrated in FIG. In particular, the general-purpose processor 110 executes a standby loop 315 until the vector processor 120 enters an idle state.
And the vector processor 120 eventually returns to step 34.
Depending on whether to start running the program thread at 5
In step 340, the vector processor 120 is started. In step 400, before the general processor 110 performs step 480,
The vector processor 120 requests that the result of step 355 be completed. Step 400 differs from step 300 in that the vector processor 120 does not enter an idle state according to the execution of step 455 and the register (VPSTATE) is not used for synchronization. Instead, loop 460 polls the extension register (VASYNC) to synchronize stages 480 and 355.
【0031】ループ460で、第1段階462は拡張レ
ジスタ(VASYNC)を読出する。好ましい実施の形
態で、前記一般用プロセッサ110は拡張レジスタを読
出し、前記レジスタのフラグビット(ビット<30>)
をセッティングする命令(TESTSET)を利用し、
拡張レジスタを読出することができる。レジスタ数15
が命令(TESTSET)の受信先として利用される場
合、前記フラグビットは、前記一般用プロセッサ110
の状態レジスタにあるZビット(ゼロビット)に伝送さ
れる。過程400は、段階355が完了されたことを知
らせるため、前記フラグビットを消去するベクトルプロ
セッサに依存するので、段階355は、命令468が状
態ビットZが0(zero)でない場合、段階462に
再ブランチングすることによって完了されたか否かを決
定する。前記フラグビットが0の場合は、前記一般用プ
ロセッサ110は、段階480に移動し過程を遂行し続
ける。段階462で命令語(TESTSET)を利用す
ると、拡張レジスタ(VASYNC)内のフラグビット
がループ460と同一な将来の同期化ループのために自
動にリセットされる長所がある。In a loop 460, a first step 462 reads the extension register (VASYNC). In a preferred embodiment, the general processor 110 reads an extension register and sets a flag bit (bit <30>) of the extension register.
Using the instruction to set (TESTSET),
The extension register can be read. Number of registers 15
Is used as the destination of the instruction (TESTSET), the flag bit is
Is transmitted to the Z bit (zero bit) in the status register. Since the process 400 relies on a vector processor to clear the flag bit to signal that step 355 has been completed, step 355 returns to step 462 if the instruction 468 does not have the status bit Z equal to zero. Determine whether it is completed by branching. If the flag bit is 0, the general processor 110 moves to step 480 and continues to perform the process. Using the command (TESTSET) in step 462 has the advantage that the flag bit in the extension register (VASYNC) is automatically reset for the same future synchronization loop as the loop 460.
【0032】制御プロセッサ命令語(VPSTART)
は、ベクトルプロセッサ命令語(VCJOIN)を利用
して、図1のマルチプロセッサ100は、典型的な並列
実行と順次実行プログラミングを支持する。図5及び図
6は、典型的な並列実行の2つの場合を示している。図
5で、一般用プロセッサ110は、ベクトルプロセッサ
120用の実行スレッド520を分岐させる命令ストリ
ーム510を実行する。命令語(STARTVP;51
2)は、前記ベクトルプロセッサ120が命令の引出を
始めるターゲットアドレスを規定する。従って、ベクト
ルプロセッサ120によって実行される第1命令522
が命令512の後を従い、一般用プロセッサン110に
よって実行される命令に対して並列に遂行される。一般
用プロセッサ110は、図3及び図4とを参照し、上述
したとおりの待機ループ514に到着するまで、その命
令ストリームを実行し続ける。前記ベクトルプロセッサ
120はレジスタ(VASYNC)をクリアーし、前記
ベクトルプロセッサ120を遊休状態に置く命令(VC
JOIN;524)に到着するまで、その命令ストリー
ムを実行する。(また他の実施例で)、前記ベクトルプ
ロセッサ120は、前記一般用プロセッサ110にイン
タラプトを要請し、前記一般用プロセッサ110によっ
て実行されるインタラプトハンドラーは、レジスタ(V
PSTATE)をクリアーする。図5で、前記一般用プ
ロセッサ110は、前記ベクトルプロセッサ120が命
令語VCJOIN524に到達する前、待機ループ51
4に到達し、前記一般用プロセッサ110のスピンは、
前記ベクトルプロセッサ120がその与えられた仕事を
完了するまで待機する。Control processor instruction word (VPSTART)
Utilizing the vector processor instruction word (VCJOIN), the multiprocessor 100 of FIG. 1 supports typical parallel execution and sequential execution programming. 5 and 6 show two cases of typical parallel execution. In FIG. 5, the general-purpose processor 110 executes an instruction stream 510 that causes the execution thread 520 for the vector processor 120 to branch. Command word (STARTVP; 51)
2) specifies a target address at which the vector processor 120 starts fetching instructions. Therefore, the first instruction 522 executed by the vector processor 120
Follows the instruction 512 and is performed in parallel with the instruction executed by the general purpose processor 110. The general purpose processor 110 continues to execute its instruction stream until it reaches the wait loop 514 as described above with reference to FIGS. The vector processor 120 clears a register (VASYNC) and places an instruction (VC
Execute the instruction stream until it arrives at JOIN (524). In another embodiment, the vector processor 120 requests an interrupt from the general processor 110, and the interrupt handler executed by the general processor 110 stores a register (V
Clear (PSTATE). In FIG. 5, before the vector processor 120 reaches the command VCJOIN 524, the general processor 110 waits for a standby loop 51.
4 and the general processor 110 spins:
Wait until the vector processor 120 completes its assigned task.
【0033】選択的に、図6の図示のように、前記ベク
トルプロセッサ120は命令ストリーム540を完了
し、前記一般用プロセッサ110が待機ループ534に
到達する前、命令542から始まって命令VCJOIN
に終結する。この場合、一般用プロセッサ110は、ス
ピン待機することに時間を消費するがその代わりに待機
ループ524を通過する。しかし、前記ベクトルプロセ
ッサ120は、前記一般用プロセッサ110がベクトル
プロセッサを再開始させる時、命令VCJOIN564
が待機ループ524の後に実行される時点から遊休状態
となる。Optionally, as shown in FIG. 6, the vector processor 120 completes the instruction stream 540 and before the general processor 110 reaches the wait loop 534, starting at instruction 542 and executing the instruction VCJOIN.
Ends in In this case, the general-purpose processor 110 spends time waiting for the spin, but instead passes through the waiting loop 524. However, when the general processor 110 restarts the vector processor, the vector processor 120 executes the instruction VCJOIN564.
Is idle from the point in time that is executed after the standby loop 524.
【0034】並列プログラミングパラダイムは、前記一
般用プロセッサ110上で、スカラー部分に対し並列に
計算を実行する間、マルチスレッド型の並列プログラム
がベクトルプロセッサ120の力を利用するので、高度
の性能を提供する。プロセッサ110、120間のデー
タ交換は、前記一般用プロセッサ110によって遂行さ
れる待機ループによって表示される同期化ポイントから
発生する。前記ベクトルプロセッサ120にスピン待機
は要求されない。図7は、図1のマルチプロセッサ10
0用の典型的な順次実行プログラミングを示している。
典型的な順次実行プログラミングでは、一般用プロセッ
サ110が命令語STARTVP552として実行スレ
ッドを分岐し、すぐ待機ループ554に入る。前記一般
用プロセッサ110は、前記ベクトルプロセッサ120
が命令562から命令VCJOIN564へのプログラ
ムシーケンス560を完了するまで、ループ554で待
機する。前記ベクトルプロセッサ120が命令VCJO
IN564を遂行し遊休状態となると、前記一般用プロ
セッサ110は、待機ループ554から抜け出て、命令
562から命令564に順次に従う実行命令を始める。
前記典型的な順次実行プログラミングは、典型的な並列
実行プログラミングに比して効果的でないが、論理的に
より簡単である。The parallel programming paradigm provides a high level of performance because a multi-threaded parallel program utilizes the power of the vector processor 120 while performing calculations on the scalar portion in parallel on the general purpose processor 110. I do. The data exchange between the processors 110, 120 originates from a synchronization point indicated by a waiting loop performed by the general purpose processor 110. No spin waiting is required for the vector processor 120. FIG. 7 shows the multiprocessor 10 of FIG.
1 illustrates a typical sequential programming for zero.
In typical sequential execution programming, the general purpose processor 110 branches the execution thread as the instruction word STARTVP 552 and immediately enters the waiting loop 554. The general processor 110 includes the vector processor 120.
Waits in a loop 554 until it completes the program sequence 560 from instruction 562 to instruction VCJOIN 564. The vector processor 120 executes the instruction VCJO
After performing IN564 and entering the idle state, the general purpose processor 110 exits the standby loop 554 and starts executing instructions sequentially following instructions 562 to 564.
The typical sequential execution programming is less effective than the typical parallel execution programming, but is logically simpler.
【0035】図7の典型的な順次実行プログラミングま
たは、図6の典型的な並列実行上の変化は、前記一般用
プロセッサ110の雄一な機能が前記ベクトルプロセッ
サ120を開始させ、インタラプトと例外状況を操作す
る一方、前記ベクトルプロセッサ120が全プログラム
を実行することができるようにする。このような変化
は、前記ベクトルプロセッサ120が前記一般用プロセ
ッサ110の2倍の作動周波数で作動し、前記一般用プ
ロセッサ110よりずっと強力な典型的な実施例で有用
である。本発明を、特定の好ましい実施例に関連して図
示し説明したが以下の特許請求の範囲による本発明の精
神や分野を離脱しない限度内で、本発明が多様に改造及
び変化され得るということは、当業界の通常の知識を有
する者は容易に分かる。A change in the exemplary sequential execution programming of FIG. 7 or the exemplary parallel execution of FIG. 6 is that the unique function of the general processor 110 causes the vector processor 120 to start, causing interrupts and exceptional situations. While operating, the vector processor 120 is able to execute the entire program. Such a change is useful in exemplary embodiments where the vector processor 120 operates at twice the operating frequency of the general purpose processor 110 and is much more powerful than the general purpose processor 110. While the invention has been illustrated and described with respect to certain preferred embodiments, it will be understood that the invention is capable of various modifications and changes within the spirit and scope of the invention as defined by the following claims. Is readily apparent to those of ordinary skill in the art.
【0036】[0036]
【実施例1】実施例において、プロセッサ110は、A
RM7プロセッサ用の標準規格に適合した一般用プロセ
ッサである。ARM7プロセッサの詳細な内容及び命令
語セットに関しては、ARM7データシート(文書番号
ARM7 DDI 0020C、1994年12月発刊)
を参照する。ARM7命令語セットに対する拡張子は、
ベクトルプロセッサ120を作動及び停止させ;同期化
のための状態のようなベクトルプロセッサの状態をテス
トし;ベクトルプロセッサ120内のレジスト間にある
データを、一般用プロセッサ110内のレジスタまたは
拡張レジスタに伝送することによって、一般用プロセッ
サ110をベクトルプロセッサ120と相互作用させ
る。一般レジスタとベクトルレジスタ間の伝送を可能に
するためには、ローカルメモリのような媒介貯蔵所が必
要である。表1は、ベクトルプロセッサ120及びキャ
ッシュサブシステム130との相互作用を開示するため
の、一般用プロセッサ110用のARM7命令語セット
に対する拡張子を示している。Embodiment 1 In an embodiment, the processor 110 is
This is a general processor conforming to the standard for the RM7 processor. For details of the ARM7 processor and the instruction set, refer to the ARM7 data sheet (document number ARM7 DDI 0020C, published in December 1994).
See The extension for the ARM7 instruction set is
Activate and deactivate the vector processor 120; test the state of the vector processor, such as the state for synchronization; transmit data between registers in the vector processor 120 to registers or extension registers in the general purpose processor 110 By doing so, the general processor 110 interacts with the vector processor 120. To enable transmission between the general register and the vector register, an intermediate storage such as a local memory is required. Table 1 shows the extensions to the ARM7 instruction set for the general purpose processor 110 to disclose the interaction with the vector processor 120 and the cache subsystem 130.
【0037】[0037]
【表1】 [Table 1]
【0038】表2はARM7例外目録を示している。こ
れは間違った命令語(faulting instruction)を実行する
前、検出及び記録される。例外ベクトルアドレスは、1
6進法で与えられる。Table 2 shows the ARM7 exception list. This is detected and recorded before executing the wrong faulting instruction. The exception vector address is 1
Given in hexadecimal.
【0039】[0039]
【表2】 [Table 2]
【0040】次に、ARM7命令語セットに対する拡張
子構文を説明する。ARM7構造は、コプロセッサイン
ターフェースのための3個の命令語形式を提供する: 1.コプロセッサデータ(CDP)形式 2.コプロセッサデータ伝送(LDC/STC)形式 3.コプロセッサレジスタ伝送(MRC/MCR)形式 CDP形式命令語はARM7プロセッサであって、バッ
ク(back)通信しない作業に使用される。表3は、前記C
DP形式命令語のフィールドを定義している。Next, the extension syntax for the ARM7 instruction set will be described. The ARM7 structure provides three instruction formats for the coprocessor interface: 1. Coprocessor data (CDP) format 2. Coprocessor data transmission (LDC / STC) format Coprocessor Register Transfer (MRC / MCR) Format The CDP format command is an ARM7 processor and is used for tasks that do not communicate back. Table 3 shows that the C
Defines the field of DP format command.
【0041】[0041]
【表3】 [Table 3]
【0042】コプロセッサデータ伝送形式(LDC/S
TC)は、コプロセッサレジスタのサブセットを、メモ
リからまたはメモリに直接積載または貯蔵する。ARM
7プロセッサは、単語住所を供給し、前記コプロセッサ
はデータを供給または受け入れ、伝送される単語の数を
制御する。表4はLDC/STC形式内のフィールドを
定義している。 Coprocessor data transmission format (LDC / S
TC) loads or stores a subset of coprocessor registers from or directly to memory. ARM
The seven processors supply word addresses, and the coprocessor supplies or accepts data and controls the number of words transmitted. Table 4 defines the fields in the LDC / STC format.
【0043】[0043]
【表4】 [Table 4]
【0044】コプロセッサレジスタ伝送形式(MRC、
MCR)は、ARM7レジスタとコプロセッサレジスタ
間に直接に情報を通信させるために使用される。表5は
MRC/MCR形式を有する命令語のフィールドを定義
している。 Coprocessor register transmission format (MRC,
MCR) is used to communicate information directly between ARM7 registers and coprocessor registers. Table 5 defines the fields of the instruction word having the MRC / MCR format.
【0045】[0045]
【表5】 [Table 5]
【0046】拡張ARM命令語 拡張ARM命令語は下記のとおりである:キャッシュ(キャッシュ作業) 形式:LDC/STC L=0;CRn=OPc;CP#=1111. アッセンブリー構文: STC{cond} p15、cOpc、<Addr
ess> キャッシュ{cond} Opc、<Address
> ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}であり、Opc={0,1,
2,3}である。命令キャッシュのため、LDC/ST
C形式のフィールドCRnは、オペコード(opcod
e;Opc)を指定する。従って、前記オペコードの十
進法表記を第1構文内で行う場合は、文字‘c’が数字
の前に添加される(すなわち、0の代わりにc0を使
用)。これに関しては、アドレスモード構文用ARM7
データシートを参照すればよい。説明 :命令キャッシュは、Condが真(true)の場合の
み実行される。フィールドOpc<3:0>は下記の作
業を表わす。 Extended ARM Command The extended ARM command is as follows: Cache (cache work) type: LDC / STC L = 0; CRn = OPc; CP # = 1111. Assembly syntax: STC {cond} p15, cOpc, <Addr
ess> Cache \ cond \ Opc, <Address
> Where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv} and Opc = {0, 1,
It is 2,3}. LDC / ST for instruction cache
The C format field CRn contains an opcode (opcode).
e; Opc). Thus, when the decimal notation of the opcode is performed in the first syntax, the letter 'c' is added before the number (ie, use c0 instead of 0). In this regard, ARM7 for address mode syntax
Refer to the data sheet. Description : The instruction cache is only executed if Cond is true. Field Opc <3: 0> represents the following operations.
【0047】[0047]
【表6】 [Table 6]
【0048】EAの計算法に関しては、ARM7データ
シートを参照する。 例外:ARM7保護違反INTVP(Interrupt Vector Processor;インタラプ
トベクトルプロセッサ) 形式:CDP ここにおいて、Opc=0001; 0; CP#=01
11;そしてCRn、CRd、CP及びCRmは使用さ
れない。 アッセンブラー構文:CDP{cond}p7、1、c
0、c0、c0 ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}である。ビット19:12、
7:15及び3:0はリザーブされる。For the calculation method of EA, refer to the ARM7 data sheet. Exception: ARM7 protection violation INTVP (Interrupt Vector Processor)
Vector processor) format: CDP where Opc = 0001; 0; CP # = 01
11; and CRn, CRd, CP and CRm are not used. Assembler syntax: CDP \ cond \ p7, 1, c
0, c0, c0 where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}. Bits 19:12,
7:15 and 3: 0 are reserved.
【0049】説明:Condが真の場合、命令INTV
Pは、ベクトルプロセッサに停止命令を伝達する。一実
施例において、命令INTVPは、ビットCSEをセッ
ティングさせる。このようなビットCSEのセッティン
グは、ベクトルプロセッサがその現在の文脈を貯蔵して
から停止し、次いでベクトルプロセッサが条件文脈貯蔵
命令VCCSを実行せねばならないことを表わすもので
ある。ARM7プロセッサは、ベクトルプロセッサの停
止状態を待たず、継続的に次の命令を実行する。ARM
7プロセッサは、MFER使用−待機ループを実行する
ことによって、ベクトルプロセッサが前記INTVP命
令以降停止されたか否かを判断する。前記INTVP命
令は、ベクトルプロセッサが既にVP_IDLE状態に
ある場合は、何等の影響を及ぼさない。Description: If Cond is true, the instruction INTV
P transmits a stop instruction to the vector processor. In one embodiment, instruction INTVP causes bit CSE to be set. The setting of such a bit CSE indicates that the vector processor must store its current context and then stop, and then execute the store conditional context instruction VCCS. The ARM7 processor continuously executes the next instruction without waiting for the halt state of the vector processor. ARM
The 7 processor executes the MFER use-wait loop to determine whether the vector processor has been stopped since the INTVP instruction. The INTVP instruction has no effect if the vector processor is already in the VP_IDLE state.
【0050】例外:ベクトルプロセッサの使用不能MFER(拡張レジスタからの移動) 形式:MRC ここにおいて、Opc=010;L=1 CRn=C
P; CP#=0111;CPは使用されない; CRm
=ER。 アッセンブラー構文: MRC{cond} p7、2、Rd、cP、cER、
O MFER{cond}Rd、RNAME ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}、Rd={r0,...,r1
5}、P{0,1}、ER={0,....,15}、
そしてRNAMEは拡張レジスタを言及する。Exception: Unusable MFER (movement from extension register) of vector processor Form: MRC where Opc = 010; L = 1 CRn = C
P; CP # = 0111; CP not used; CRm
= ER. Assembler syntax: MRC {cond} p7, 2, Rd, cP, cER,
O MFER {cond} Rd, RNAME where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}, Rd = {r0,. . . , R1
5}, P {0,1}, ER = {0,. . . . , 15},
RNAME then refers to the extension register.
【0051】説明:命令語MFERはCondが真の場
合のみ実行される。以下、表7に記載されたP:ER<
3:0>により定義される拡張レジスタ(ER)から出
力されるデータは、ARM7レジスタ(Rd)に移動さ
れる。Description: The instruction word MFER is executed only when Cond is true. Hereinafter, P: ER <described in Table 7
The data output from the extension register (ER) defined by 3: 0> is moved to the ARM7 register (Rd).
【0052】[0052]
【表7】 [Table 7]
【0053】例外:使用者モード途中でPERxに接近
しようとする場合の保護違反MFVP(ベクトルレジスタからの移動) 形式:MRC/MCR ここにおいて、Opc=001;L=1;CP#=01
11;そしてCPは使用されない。 アッセンブラー構文: MRC{cond}p7、Rd、CRn、cRm、O MFVP{cond}Rd、RNAME ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}、Rd={r0,...,r1
5}、CRn={c0,....,c15}、CRm=
{c0,....,c15}そして、RNAMEはベク
トルプロセッサ内のスカラーまたは特殊用レジスタを言
及する。Exception: Protection violation MFVP (movement from vector register) when trying to approach PERx in the middle of user mode: MRC / MCR where Opc = 001; L = 1; CP # = 01
11; and no CP is used. Assembler syntax: MRC {cond} p7, Rd, CRn, cRm, OMFVP {cond} Rd, RNAME where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}, Rd = {r0,. . . , R1
5}, CRn = {c0,. . . . , C15}, CRm =
{C0,. . . . , C15} and RNAME refers to a scalar or special purpose register in the vector processor.
【0054】説明:命令語MFVPは、Condが真の
場合のみ実行される。CRn<1:0>:CRm<3:
0>により定義されるベクトルプロセッサのスカラーレ
ジスタ、または特殊用レジスタから出力されるデータ
は、ARM7レジスタ(Rd)に移動される。ビットC
Rn<1:0>:CRm<3:0>はリザーブされる。
表8は、CRn<1:0>:CRm<3:0>から、ベ
クトルプロセッサ内のスカラーレジスタ(SR0−SR
15)及び、特殊用レジスタ(SP0−SP15)への
マッピングを示している。Description: The instruction MFVP is executed only when Cond is true. CRn <1: 0>: CRm <3:
The data output from the scalar register of the vector processor defined by 0> or the special register is moved to the ARM7 register (Rd). Bit C
Rn <1: 0>: CRm <3: 0> are reserved.
Table 8 shows that, from CRn <1: 0>: CRm <3: 0>, a scalar register (SR0-SR
15) and mapping to special registers (SP0-SP15).
【0055】[0055]
【表8】 [Table 8]
【0056】SR0は、常に32ビットのゼロを読出
し、SR0に記録することは無視される。 例外:ベクトルプロセッサ使用不能MTER(拡張レジスタへの移動) 形式:MRC/MCR ここにおいて、Opc=010;L=0;CRn=c
P;CP#=0111;CPは使用されない。CRm=
ER。 アッセンブラー構文: MRC{cond}p7、2、Rd、Cp、cER、O MFER{cond}Rd、RNAME ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}、Rd={r0,...,r1
5}、P={0,1}、ER={0,....,1
5}、そしてRNAMEはレジスタ連想記号(すなわ
ち、PER0)を言及する。SR0 always reads 32 bits of zero, and recording in SR0 is ignored. Exception: Vector processor unavailable MTER (move to extension register) Format: MRC / MCR where Opc = 010; L = 0; CRn = c
P; CP # = 0111; CP is not used. CRm =
ER. Assembler syntax: MRC {cond} p7,2, Rd, Cp, cER, O MFER {cond} Rd, RNAME where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}, Rd = {r0,. . . , R1
5}, P = {0,1}, ER = {0,. . . . , 1
5}, and RNAME refers to the register associative symbol (ie, PER0).
【0057】説明:命令語MFERは、Condが真の
場合のみ実行される。ARM7レジスタ(Rd)からの
データは、前記表A9の図示のとおり、P;ER<3:
0>によって定義される拡張レジスタ(ER)に移動す
る。 例外:使用者モード途中でPERxに接近しようとする
場合の保護違反MTVP(ベクトルレジスタへの移動) 形式:MRC/MCR ここにおいて、Opc=1;L=0;CP#=011
1;そしてCPは使用されない。Description: The instruction word MFER is executed only when Cond is true. The data from the ARM7 register (Rd) is P; ER <3:
0> move to the extension register (ER) defined by Exception: Protection violation MTVP (movement to vector register) when trying to approach PERx in the middle of user mode: MRC / MCR where Opc = 1; L = 0; CP # = 011
1; and no CP is used.
【0058】アッセンブラー構文: MRC{cond}p7、1、Rd、CRn、cRm、
O MFVP{cond}RNAME、Rd ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}、Rd={r0,...,r1
5}、CRN={c0,....c15}、CRm=
{c0,....,c15}、そしてRNAMEはレジ
スタ連想記号(すなわち、SP0またはVCSR)を言
及する。Assembler syntax: MRC {cond} p7,1, Rd, CRn, cRm,
O MFVP {cond} RNAME, Rd where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}, Rd = {r0,. . . , R1
5}, CRN = {c0,. . . . c15}, CRm =
{C0,. . . . , C15}, and RNAME refer to the register associative symbol (ie, SP0 or VCSR).
【0059】説明:命令語MTVPは、Condが真の
場合のみ実行される。ARM7レジスタ(Rd)からの
データは、ベクトルプロセッサのスカラー/特殊用レジ
スタCRn<1:0>:CRm<3:0>に移動され
る。CRn:CRmからベクトルプロセッサのスカラー
及び特殊用レジスタへのマッピングは、前記表A10に
図示されている。 例外:ベクトルプロセッサ使用不能PFTCH(先取り) 形式:LDC/STC ここにおいて、N=0;L=1;CRn=0010;C
P#=1111 アッセンブラー構文: LDC{cond}p15、2、<アドレス> PFTCH{cond}<アドレス> ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}アドレスモード構文に関して
は、ARM7データシートを参照する。Description: The instruction MTVP is executed only when Cond is true. The data from the ARM7 register (Rd) is moved to the scalar / special registers CRn <1: 0>: CRm <3: 0> of the vector processor. The mapping from CRn: CRm to the scalar and special registers of the vector processor is illustrated in Table A10 above. Exception: Unusable vector processor PFTCH (prefetch) Format: LDC / STC where N = 0; L = 1; CRn = 0010; C
P # = 1111 Assembler syntax: LDC {cond} p15, 2, <address> PFTCH {cond} <address> where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
For the t, le, al, nv @ address mode syntax, refer to the ARM7 data sheet.
【0060】説明:命令語PFTCHは、Condが真
の場合のみ実行される。EAによって指定されるキャッ
シュラインは、ARM7データキャッシュで先取られ
る。EAの計算法に関しては、ARM7データシートを
参照する。 例外:なしSTARTVP(開始ベクトルプロセッサ) 形式:CDP形式 ここにおいて、Opc=0000;CP#=0111;
そしてCRn、CRd、CP及びCRmは使用されな
い。 アッセンブラー構文: CDP{cond}p7、0、c0、c0、c0 STARTVP{cond} ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}アドレスモード構文に関して
は、ARM7データシートを参照する。Description: The instruction word PFTCH is executed only when Cond is true. The cache line specified by the EA is prefetched in the ARM7 data cache. For the calculation of EA, refer to the ARM7 data sheet. Exception: None STARTVP (start vector processor) format: CDP format where Opc = 0000; CP # = 0111;
And CRn, CRd, CP and CRm are not used. Assembler syntax: CDP {cond} p7,0, c0, c0, c0 STARTVP {cond} where cond = {eq, ne, cs, cc, cc
mi, pl, vs, vc, hi, ls, ge, lt, g
For the t, le, al, nv @ address mode syntax, refer to the ARM7 data sheet.
【0061】説明:命令語STARTVPは、Cond
が真の場合のみ実行される。命令語STARTVPは、
ベクトルプロセッサで実行開示信号を伝達し、自動にV
ISRC<vjp>及びVISRC<vip>を消去す
る。ARM7プロセッサは、ベクトルプロセッサの実行
開始を待たず、次の命令語を連続的に実行する。前記ベ
クトルプロセッサは、このような命令語が実行される
前、好ましい状態に初期化される。命令語STARTV
Pは、ベクトルプロセッサが既にVP_RUN状態にあ
る場合は、影響を及ぼさない。Explanation: The instruction word STARTVP is a command
Is executed only if is true. The instruction word STARTVP is
The execution signal is transmitted by the vector processor, and V
Erase ISRC <vjp> and VISRC <vip>. The ARM7 processor continuously executes the next instruction word without waiting for the execution of the vector processor to start. The vector processor is initialized to a preferred state before such an instruction is executed. Command STARTTV
P has no effect if the vector processor is already in the VP_RUN state.
【0062】例外:ベクトルプロセッサ使用不能TESTSET(テストセット) 形式:MRC/MCR ここにおいて、Opc=000;L=1;CRn=0;
CP#=0111;CRm=ER;そしてCPは使用さ
れない。 アッセンブラー構文: MRC{cond}p7、0、Rd、c0、cER、O TESTSET{cond}Rd、RNAME ここにおいて、cond={eq,ne,cs,cc,
mi,pl,vs,vc,hi,ls,ge,lt,g
t,le,al,nv}、Rd={r0,...,r1
5}、ER={0,....,15}、そしてRNAM
Eはレジスタ連想記号(すなわち、UER1またはVA
SYNC)を言及する。Exception: Vector processor unusable TESTSET (test set) format: MRC / MCR where Opc = 000; L = 1; CRn = 0;
CP # = 0111; CRm = ER; and no CP is used. Assembler syntax: MRC {cond} p7,0, Rd, c0, cER, O TESTSET {cond} Rd, RNAME where cond = {eq, ne, cs, cc,
mi, pl, vs, vc, hi, ls, ge, lt, g
t, le, al, nv}, Rd = {r0,. . . , R1
5}, ER = {0,. . . . , 15}, and RNAM
E is the register associative symbol (ie, UER1 or VA
SYNC).
【0063】説明:命令語TESTSETは、Cond
が真の場合のみ実行される。命令語TESTSETは拡
張レジスタ(UERx)の内容を、一般用レジスタ(R
D)に復旧させ、前記拡張レジスタ(UERx<30
>)を1にセッティングさせる。もしARM7レジスタ
15が受信レジスタとして指定されると、短い待機ルー
プが供給され得るように、UERx<30>がレジスタ
(CPSR)のビット(Z)に復旧する。 例外:無しDescription: The command word TESTSET is equivalent to Cond
Is executed only if is true. The instruction word TESTSET stores the contents of the extension register (UERx) in the general register (R
D) and restore the extension register (UERx <30
>) Is set to 1. If ARM7 register 15 is designated as a receive register, UERx <30> restores bit (Z) of the register (CPSR) so that a short wait loop can be provided. Exception: None
【0064】[0064]
【実施例2】本実施例は、命令語VCINT、VCJO
IN、ALC VMOVに関して記述している。本発明
の実施例で、これの命令語は、ベクトルプロセッサが制
御プロセッサに対する同期化を支持するために使用され
る。関連出願として、前記に言及したとおりの1996
年8月19日付で米国に出願された“マルチメディア信
号プロセッサにおける単一命令複数データ処理”では、
ベクトルプロセッサのための全体的な命令語セットが記
述されている。命令作業は、Cプログラミング言語とし
て定義される構造を使用するものとして定義される。VCINT(条件的なインタラプトARM7) [Embodiment 2] In this embodiment, the command words VCINT and VCJO are used.
IN, ALC Describes VMOV. In an embodiment of the invention, these instructions are used by the vector processor to support synchronization to the control processor. As a related application, 1996 as referred to above
"Single Instruction Multiple Data Processing in Multimedia Signal Processor," filed in the United States on August 19,
An overall instruction set for a vector processor is described. Instruction work is defined as using a structure defined as the C programming language. VCINT (conditional interrupt ARM7)
【0065】[0065]
【表9】 [Table 9]
【0066】アッセンブラー構文: VCINT.cond #ICODE ここにおいて、cond={un,lt,eq,le,
gt,ne,ge,ov} 説明:もしCondが真であれば、実行を停止し、イン
タラプトが可能になると、ARM7プロセッサをインタ
ラプトさせる。 作動: 条件:((Cond==VCSR[SO,GT,EQ,
LT])l(Cond==un)) {VISR<vip>=1; VIINS=[VCINT.cond#ICODE命
令]; VEPC=VPC; (VIMSK<vie>==1)信号ARM7インタラ
プト; VP_STATE−−VP_IDLE;} 他のVPC=VPC+4; 例外;VCINTインタラプトVCJOIN(ARM7タスクとの条件的な連合) Assembler syntax: VCINT. cond #ICODE where cond = {un, lt, eq, le,
gt, ne, ge, ov} Description: If Cond is true, stop execution and, if interrupts are enabled, cause the ARM7 processor to interrupt. Operation: Condition: ((Cond == VCSR [SO, GT, EQ,
LT]) 1 (Cond == un)) {VISR <vip> = 1; VIINS = [VCINT. VEPC = VPC; (VIMSK <vie> == 1) signal ARM7 interrupt; VP_STATE--VP_IDLE;} Other VPC = VPC + 4; Exception; VCINT interrupt VCJOIN (conditional association with ARM7 task)
【0067】[0067]
【表10】 [Table 10]
【0068】アッセンブラー構文: VCJOIN.cond #Offset ここにおいて、cond={un,lt,eq,le,
gt,ne,ge,ov} 説明:もしCondが真であれば、実行を停止し、イン
タラプトが可能になると、ARM7プロセッサをインタ
ラプトさせる。 作動:Assembler syntax: VCJOIN. cond #Offset where cond = {un, lt, eq, le,
gt, ne, ge, ov} Description: If Cond is true, stop execution and, if interrupts are enabled, cause the ARM7 processor to interrupt. Actuation:
【0069】条件:((Cond==VCSR[SO,
GT,EQ,LT])l(Cond==un)) {VISR<vjp>=1; VIINS=[VC.JOIN.cond#Offse
t命令]; VEPC=VPC; (VIMSK<vje>==1)信号ARM7インタラ
プト; VP_STATE−−VP_IDLE;} 他のVPC=VPC+4; 例外;VCJOINインタラプトVMOV(移動) Condition: ((Cond == VCSR [SO,
GT, EQ, LT]) l (Cond == un)) {VISR <vjp> = 1; VIINS = [VC. JOIN. cond # Offse
t Instruction]; VEPC = VPC; (VIMSK <vje> == 1) signal ARM7 interrupt; VP_STATE - VP_IDLE;} other VPC = VPC + 4; exception; VCJOIN interrupt VMOV (movement)
【0070】[0070]
【表11】 [Table 11]
【0071】アッセンブラー構文: VMOV.dt Rb、Rd ここにおいて、dt={b、b9、h,w,f}、Rd
及びRbはレジスタの名称を示す。接尾語.w及び.f
は、同一作業を示す。 補助モード:int8(b)、int9(b9)、in
t16(h)及びint32(w) 説明:レジスタ(Rb)の内容はレジスタ(Rd)に移
動される。フィールドグループは表12に定義されてい
る通りの、ソース及び受信レジスタを示す。Assembler syntax: VMOV. dt Rb, Rd where dt = {b, b9, h, w, f}, Rd
And Rb indicate the name of the register. Suffix. w and. f
Indicates the same operation. Auxiliary mode: int8 (b), int9 (b9), in
t16 (h) and int32 (w) Description: The contents of register (Rb) are moved to register (Rd). The field groups indicate source and receive registers as defined in Table 12.
【0072】[0072]
【表12】 [Table 12]
【0073】表12で、レジスタグループの表記は下記
のとおりである: VR: 作動中のバンクベクトルレジスタ VRA: 代替バンクベクトルレジスタ SR: スカラーレジスタ SP: 特殊用レジスタ RASR: 復旧アドレススタック(stack)レジスタ VAC: ベクトルアキュムレータレジスタ(表B.5
参照) ベクトルレジスタは、命令語VMOVによりスカラーレ
ジスタに移動可能ではないが、命令語VEXTRTによ
っては移動可能である。 表13は、VACレジスタの数エンコーディングを定義
している。In Table 12, the notation of register groups is as follows: VR: Bank vector register in operation VRA: Alternative bank vector register SR: Scalar register SP: Special register RASR: Recovery address stack (stack) register VAC: Vector accumulator register (Table B.5)
(See Reference.) The vector register cannot be moved to the scalar register by the instruction word VMOV, but can be moved by the instruction word VEXTRT. Table 13 defines the number encoding of the VAC registers.
【0074】[0074]
【表13】 [Table 13]
【0075】作動: Rd=Rb 例外;VCSRまたはVISRCに例外状態ビットをセ
ッティングすることは、対応例外を招くことができる。 プログラミングノート:命令語VMOVは、要素マスク
(element mask)により影響されない。前記代替バンク概
念がVEC64モード内にないので、命令語VMOV
は、VEC64モード内の代替バンクレジスタに、また
は代替バンクレジスタから移動することには使用されな
い。Operation: Rd = Rb exception; setting an exception status bit in VCSR or VISRC can result in a corresponding exception. Programming Note: Command VMOV is Element Mask
Not affected by (element mask). Since the alternative bank concept is not in the VEC64 mode, the instruction word VMOV
Is not used to move to or from the alternate bank register in VEC64 mode.
【0076】[0076]
【発明の効果】前記ような本発明によると、高度の処理
動力を提供し、内蔵した多数の分離されたプログラムス
レッドが互換性を有し、単純な方式でプログラムを同期
化または整合できるマルチプロセッサシステムを提供す
ることができるようになる。According to the present invention, a multiprocessor that provides a high degree of processing power, has a large number of built-in separated program threads compatible, and can synchronize or match programs in a simple manner. System can be provided.
【図1】 本発明の一実施の形態として示したマルチプ
ロセッサのブロックダイアグラムである。FIG. 1 is a block diagram of a multiprocessor shown as an embodiment of the present invention.
【図2】 本発明の一実施の形態として示した制御プロ
セッサとベクトルプロセッサとの間のインターフェース
を示すブロックダイアグラムである。FIG. 2 is a block diagram showing an interface between a control processor and a vector processor shown as an embodiment of the present invention.
【図3】 本発明の一実施の形態として示した並列プロ
グラムスレッドを同期化させる方法を示すフローダイア
グラムである。FIG. 3 is a flow diagram illustrating a method for synchronizing parallel program threads according to an embodiment of the present invention.
【図4】 本発明の一実施の形態として示した並列プロ
グラムスレッドを同期化させる他の方法を示すフローダ
イアグラムである。FIG. 4 is a flow diagram illustrating another method of synchronizing parallel program threads according to an embodiment of the present invention.
【図5】 図1のマルチプロセッサ用の並列ソフトウェ
ア方式及び、順次ソフトウェア方式を示す図面である。FIG. 5 is a diagram illustrating a parallel software method and a sequential software method for the multiprocessor of FIG. 1;
【図6】 図1のマルチプロセッサ用の並列ソフトウェ
ア方式および、順次ソフトウェア方式を示す図面であ
る。FIG. 6 is a diagram illustrating a parallel software system and a sequential software system for the multiprocessor of FIG. 1;
【図7】 図1のマルチプロセッサ用の並列ソフトウェ
ア方式および、順次ソフトウェア方式を示す図面で在
る。FIG. 7 is a diagram showing a parallel software system and a sequential software system for the multiprocessor of FIG. 1;
100: マルチプロセッサ 110: 一般用プロセッサ 115: 拡張レジスタ 120: ベクトルプロセッサ 130: キャッシュサブシステム 140: システムバス 142: システムタイマー 146: ビットストリームプロセッサ 148: インタラプトコントローラー 150: システムバス 154: DMAコントローラー 156: ローカルバスインタフェース 180: キャッシュコントロール 244: ベクトルレジスタ 245: 特殊用レジスタ 246: 並列処理装置 260: 命令デコーダー 270: 実行データ経路 272: レジスタファイル 276: 処理装置 280: 記録レジスタ 290: 読出レジスタ 100: Multiprocessor 110: General Processor 115: Extension Register 120: Vector Processor 130: Cache Subsystem 140: System Bus 142: System Timer 146: Bitstream Processor 148: Interrupt Controller 150: System Bus 154: DMA Controller 156: Local Bus interface 180: Cache control 244: Vector register 245: Special register 246: Parallel processing unit 260: Instruction decoder 270: Execution data path 272: Register file 276: Processing unit 280: Record register 290: Read register
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ル・トロン・ングイェン アメリカ合衆国・カリフォルニア・ 95030・モンテ・セレノ・ダニエル・プレ イス・15095 ──────────────────────────────────────────────────の Continued on front page (72) Inventor Le Tron Nguyen United States of America California 95030 Monte Sereno Daniel Place 15095
Claims (14)
ーケンスを実行するための第1状態及び遊休状態となる
第2状態に作動可能な第2プロセッサ;及び前記第1及
び第2プロセッサが接近できるように、前記第1及び第
2プロセッサに結合され、前記第2プロセッサが前記第
1状態にあるか、または第2状態にあるかを示す値を貯
蔵するレジスタを備えることを特徴とする統合マルチプ
ロセッサ。1. a first processor; a second processor operable in a first state for executing a sequence of program instructions and a second state in an idle state; and the first and second processors being accessible. And a register coupled to the first and second processors and storing a value indicating whether the second processor is in the first state or the second state. .
しない所定の幅を有するオペランドを操作できるように
する第1実行データ経路を含み、前記第2プロセッサは
第2最大幅を超過しない所定の幅を有するオペランドを
操作することができるようにする第2実行データ経路を
含んでおり、前記第2最大幅は前記第1最大幅より大き
いことを特徴とする請求項1記載の統合マルチプロセッ
サ。2. The method according to claim 1, wherein the first processor includes a first execution data path for operating an operand having a predetermined width that does not exceed a first maximum width, and the second processor includes a first execution data path that does not exceed a second maximum width. 2. The integrated multiprocessor of claim 1, further comprising a second execution data path for enabling operands having a width of ?????, wherein said second maximum width is greater than said first maximum width. .
数個の処理装置を含むことを特徴とする請求項2記載の
統合マルチプロセッサ。3. The integrated multiprocessor according to claim 2, wherein the second processor includes a plurality of processing units operated in parallel.
タ方式を有することを特徴とする請求項3記載の統合マ
ルチプロセッサ。4. The integrated multiprocessor according to claim 3, wherein said second processor has a single instruction multiple data system.
て、第1プロセッサに第1プログラムスレッドを実行す
る段階;前記第1プロセッサによって実行される命令に
対応し、第2プロセッサに第2プログラムスレッドを開
示させる段階;前記第1プログラムスレッド内のループ
を実行させる段階であって、ループ内で前記第1及び第
2プロセッサによって接近可能なレジスタを、前記第1
プロセッサで読む段階;前記第2プロセッサが前記第2
プログラムスレッドの少なくとも第1部分を完了したこ
とを示す値を前記レジスタに記録する段階;及び前記第
2プロセッサが前記第2プログラムスレッドの前記第1
部分を完了したことを示す前記値を前記第1プロセッサ
が読むことに対応し、前記ループから抜け出る段階を備
えることを特徴とする方法。5. A method of operating a multiprocessor, the method comprising: executing a first program thread on a first processor; causing a second processor to disclose a second program thread in response to an instruction executed by the first processor. Executing a loop in the first program thread, wherein the register accessible by the first and second processors in the loop is stored in the first program thread.
Reading on a processor; wherein the second processor is
Recording a value in the register indicating completion of at least a first portion of the program thread; and wherein the second processor
Responsive to the first processor reading the value indicating that a portion has been completed, comprising exiting the loop.
ログラムスレッドの前記第1部分が既に完了された場
合、前記第1プログラムスレッドの一部分を実行させる
段階を追加で備えることを特徴とする請求項5記載の方
法。6. The method of claim 1, further comprising the step of executing a portion of the first program thread when the first portion of the second program thread has been completed after exiting the loop. 5. The method according to 5.
動状態であるか遊休状態であるか否かを示す値を貯蔵す
ることを特徴とする請求項5記載の方法。7. The method of claim 5, wherein the register stores a value indicating whether the second processor is active or idle.
ムスレッドの実行を停止させ、前記第2プロセッサを遊
休状態にする命令語を実行する過程で、前記値を前記レ
ジスタに記録することを特徴とする請求項7記載の方
法。8. The method of claim 2, wherein the second processor stops execution of the second program thread and records the value in the register during a process of executing a command to put the second processor in an idle state. The method of claim 7, wherein
スタに記録してから前記第2プログラムスレッドを継続
的に実行することを特徴とする請求項5記載の方法。9. The method of claim 5, wherein the second processor records the value in the register and continuously executes the second program thread.
ッサより狭いデータ経路を備えることを特徴とする請求
項5記載の方法。10. The method of claim 5, wherein said first processor has a narrower data path than said second processor.
ータ方式を有することを特徴とする請求項10記載の方
法。11. The method of claim 10, wherein said second processor has a single instruction multiple data scheme.
構造を有することを特徴とする請求項11記載の方法。12. The method of claim 11, wherein the first processor has a general purpose structure.
前記値を記録することを特徴とする請求項5記載の方
法。13. Prior to executing said loop,
The method according to claim 5, wherein the value is recorded.
前に1次的に実行され、前記値を記録した後まで反復さ
れることを特徴とする請求項5記載の方法。14. The method of claim 5, wherein the execution of the loop is performed primarily before recording the value and is repeated until after recording the value.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US703,434 | 1996-08-26 | ||
US08/703,434 US5978838A (en) | 1996-08-19 | 1996-08-26 | Coordination and synchronization of an asymmetric, single-chip, dual multiprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10149341A true JPH10149341A (en) | 1998-06-02 |
Family
ID=24825374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22410597A Pending JPH10149341A (en) | 1996-08-26 | 1997-08-20 | Asymmetric single-chip dual multiprocessor matching and synchronization |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10149341A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024495B2 (en) * | 2001-03-30 | 2006-04-04 | Omron Corporation | Programmable controller |
-
1997
- 1997-08-20 JP JP22410597A patent/JPH10149341A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024495B2 (en) * | 2001-03-30 | 2006-04-04 | Omron Corporation | Programmable controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100267091B1 (en) | Coordination and synchronization of an asymmetric single-chip dual multiprocessor | |
US5752071A (en) | Function coprocessor | |
US6003129A (en) | System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture | |
KR100236527B1 (en) | Single instruction multiple data processing using multiple banks of vector registers | |
JP2834837B2 (en) | Programmable controller | |
US6865663B2 (en) | Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode | |
JP3569014B2 (en) | Processor and processing method supporting multiple contexts | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US4729094A (en) | Method and apparatus for coordinating execution of an instruction by a coprocessor | |
JPH11154144A (en) | Method and device for interfacing processor to coprocessor | |
JPH0816870B2 (en) | System for draining the instruction pipeline | |
JPH0215369A (en) | Method and apparatus for executing instruction of vector processing system | |
JPH10149297A (en) | System and method for handling software interrupts with passing arguments | |
JP2004171573A (en) | Coprocessor extension architecture built using a novel split instruction transaction model | |
US4731736A (en) | Method and apparatus for coordinating execution of an instruction by a selected coprocessor | |
JP2000029737A (en) | Processor having real-time outer instruction insertion for debugging functions | |
US4750110A (en) | Method and apparatus for executing an instruction contingent upon a condition present in another data processor | |
US5021991A (en) | Coprocessor instruction format | |
EP0525831B1 (en) | Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor. | |
US4758950A (en) | Method and apparatus for selectively delaying an interrupt of a coprocessor | |
US4914578A (en) | Method and apparatus for interrupting a coprocessor | |
KR100267089B1 (en) | Single Instruction Multiple Data Processing Combining Scalar / Vector Operations | |
US4821231A (en) | Method and apparatus for selectively evaluating an effective address for a coprocessor | |
US4994961A (en) | Coprocessor instruction format | |
Kawano et al. | Fine-grain multi-thread processor architecture for massively parallel processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050520 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050620 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20051209 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080526 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080626 |