JP2000298652A - Multiprocessor - Google Patents
MultiprocessorInfo
- Publication number
- JP2000298652A JP2000298652A JP11106052A JP10605299A JP2000298652A JP 2000298652 A JP2000298652 A JP 2000298652A JP 11106052 A JP11106052 A JP 11106052A JP 10605299 A JP10605299 A JP 10605299A JP 2000298652 A JP2000298652 A JP 2000298652A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- shared
- processors
- operation unit
- arbitration circuit
- 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.)
- Withdrawn
Links
Landscapes
- Advance Control (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】この発明は、複数のプロセッ
サを実装したマルチプロセッサに関するものである。特
に、単一のLSI上に複数のプロセッサを実装した1チ
ップマルチプロセッサにおいて、複数のプロセッサで回
路を共有することによりLSI面積を抑えつつ、複数の
プロセスを効率よく実行することが可能なマルチプロセ
ッサに関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor equipped with a plurality of processors. In particular, in a one-chip multiprocessor in which a plurality of processors are mounted on a single LSI, a multiprocessor capable of efficiently executing a plurality of processes while suppressing an LSI area by sharing a circuit among the plurality of processors. It is about.
【0002】[0002]
【従来の技術】単一のプロセッサからなるシングルプロ
セッサ上で複数の処理を実行する手段として代表的なも
のに、OS(基本ソフトウェア)をベースにおき、OS
上で各種アプリケーションを実行するというものがあ
る。OSはあるプログラムの処理単位(以後、プロセス
と呼ぶ)に分けて各アプリケーションを実行する。同時
に1つのプロセッサ上で実行できるプロセスは1つであ
るため、ある時間毎に実行するプロセスを細かく切り替
えることによって、あたかも複数のプロセスを同時に実
行しているかのように見せている。2. Description of the Related Art A typical means for executing a plurality of processes on a single processor including a single processor is based on an OS (basic software).
There are those that execute various applications on the above. The OS executes each application in units of processing of a certain program (hereinafter, referred to as processes). Since only one process can be executed on one processor at a time, it is as if multiple processes are being executed at the same time by finely switching the processes to be executed every certain time.
【0003】図9は、2つのプロセスが時分割で実行さ
れているときの、プロセッサ上で動作している処理の様
子を示したもので、4001、4002はそれぞれ異な
る2つのプロセス プロセスA、プロセスBを示し、4
003は、2つのプロセスの切り替え(以後、「プロセ
ススイッチ」という)のために必要な処理を示してい
る。プロセスを時分割で切り替える一般的な手段として
は、タイマーからの割り込みを利用する方法がある。例
えば、タイマーからの割り込み回数をカウントしてお
き、あらかじめ決められたあるカウント値に達したら、
プロセススイッチを行うようにする。プロセススイッチ
では、プロセッサの視点から見た場合には、切り替える
前に実行していたプロセスに関するデータ(プログラム
カウンタ(PC)値、スタックポインタアドレス、汎用
レジスタ、プログラム状態語(PSW)中の必要な情報
など)のメモリへの待避、切り替え先のプロセスに関す
るデータ(PC値、スタックポインタ、汎用レジスタ、
PSW内の情報など)のデータメモリからのリストアが
行われる。そのため、プロセススイッチが実行される
と、プロセッサでは数十〜数百の命令が実行されること
になり、次のプロセスへの切り替えに時間を要し、高速
処理が図れないという問題があった。FIG. 9 shows a state of processing running on a processor when two processes are executed in a time-division manner. 4001 and 4002 denote two different processes A and 400, respectively. B, 4
Reference numeral 003 indicates processing necessary for switching between two processes (hereinafter, referred to as “process switch”). A general method for switching processes in a time-division manner is to use an interrupt from a timer. For example, count the number of interrupts from the timer, and when it reaches a predetermined count value,
Perform a process switch. In the process switch, from a processor's point of view, necessary information in a process (a program counter (PC) value, a stack pointer address, a general-purpose register, and a program state word (PSW)) related to a process executed before switching is performed. Save to memory, data (PC value, stack pointer, general-purpose register,
Restoration of the information in the PSW from the data memory is performed. Therefore, when the process switch is executed, several tens to several hundreds of instructions are executed in the processor, so that it takes time to switch to the next process, and high-speed processing cannot be performed.
【0004】この問題を解決し、種々の処理を高速に実
行する手法の1つとして、マルチプロセッサシステムが
ある。これは、必要とされる処理を、複数のプロセッサ
に分散して並列に処理することによって、高速化を計る
ものである。近年のLSI集積技術は、このマルチプロ
セッサシステムを単一のLSI上に実装することを可能
にし、マルチプロセッサシステムを安価に実現すること
を可能にした。しかし、マルチプロセッサは、高速処理
が図れる一方で、複数のプロセッサが各々命令メモリ等
のハードウェア・リソースを有するため面積的に不利と
いう問題点がある。この問題を解決する手段として、例
えば、特開昭62−24356で開示された1チップマ
イクロコンピュータがある。特開昭62−24356で
は、特にROM、RAMを共用することにより面積的に
有利にするとともに、各プロセッサでのROM、RAM
をアクセスするタイミングをずらすことにより効率的に
プログラムを実行することが可能なマルチプロセッサシ
ステムについて開示している。[0004] As one of the techniques for solving this problem and executing various processes at high speed, there is a multiprocessor system. In this technique, required processing is distributed to a plurality of processors and processed in parallel to increase the processing speed. Recent LSI integration technology has made it possible to mount this multiprocessor system on a single LSI, and to realize a multiprocessor system at low cost. However, while the multiprocessor can achieve high-speed processing, there is a problem that a plurality of processors each have hardware resources such as an instruction memory, which is disadvantageous in area. As means for solving this problem, for example, there is a one-chip microcomputer disclosed in Japanese Patent Application Laid-Open No. 62-24356. In Japanese Patent Application Laid-Open No. Sho 62-24356, in particular, ROM and RAM are shared to make the area more advantageous, and the ROM, RAM
Discloses a multiprocessor system capable of executing a program efficiently by shifting the timing of accessing.
【0005】[0005]
【発明が解決しようとする課題】以上のように、従来の
単一のプロセッサで複数のプロセスを実行する際には、
プロセススイッチが発生してしまう。このため、ユーザ
からは実際には必要としない処理に対して、時間を消費
してしまうことになり、高速処理が実現できないという
問題がある。マルチプロセッサでは、各プロセッサで実
行するプロセスを分けることにより、上記の問題を解決
することが可能であるが、それぞれのプロセッサが独立
してハードウェア・リソースを持つため、面積的に不利
との問題点があった。この点につき、従来はROM、R
AMといったメモリを共有する手段を採用していたが、
近年のプロセッサの省面積要求に対して、このメモリの
共有のみでは十分とはいえず、更なる省面積化を実現す
るマルチプロセッサ技術が望まれていた。そこで、この
発明は上記のような問題点を解決するためになされたも
ので、複数のプロセスが実行されるときにも効率よく実
行することができ、かつ省面積なプロセッサを実現する
ことを目的とする。As described above, when a plurality of processes are executed by a conventional single processor,
Process switch occurs. For this reason, the user consumes time for processing that is not actually needed, and there is a problem that high-speed processing cannot be realized. In a multiprocessor, the above problem can be solved by dividing the processes executed by each processor. However, since each processor has independent hardware resources, the area is disadvantageous. There was a point. In this regard, ROM, R
We used a means to share memory such as AM,
In response to recent demands for processor area savings, sharing this memory alone is not sufficient, and there has been a demand for a multiprocessor technology that achieves further area savings. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to realize a processor which can be efficiently executed even when a plurality of processes are executed and which saves area. And
【0006】[0006]
【課題を解決するための手段】この発明に係るマルチプ
ロセッサは、複数のプロセッサと複数のプロセッサから
共有されるメモリ、更には複数のプロセッサから共有さ
れる演算器を備えるものであり、メモリ、及び演算器は
同時期には一つのプロセッサからのみアクセスされるよ
うに調停する手段を備えるものである。具体的には、以
下の特徴を有する。A multiprocessor according to the present invention includes a plurality of processors and a memory shared by the plurality of processors, and further includes a computing unit shared by the plurality of processors. The arithmetic unit is provided with means for arbitrating so that only one processor accesses the arithmetic unit at the same time. Specifically, it has the following features.
【0007】命令コードを記憶する命令メモリと、被演
算データや演算結果を記憶するデータメモリと、演算器
を内部に含まない複数のプロセッサと、プロセッサから
の制御データに従って演算を行う演算器とを持ち、前記
命令メモリ、前記データメモリ、及び前記演算器は、複
数の前記プロセッサによって共有され、それぞれ同時期
には多くとも一つの前記プロセッサのみからアクセスさ
れるようにする手段を持つことを特徴とする。[0007] An instruction memory for storing instruction codes, a data memory for storing data to be operated on and operation results, a plurality of processors not including an operation unit, and an operation unit for performing operations in accordance with control data from the processors. The instruction memory, the data memory, and the arithmetic unit are shared by a plurality of the processors, and have means for accessing each of them at the same time by at most one processor only. I do.
【0008】一定の期間ごとに、命令メモリ、データメ
モリ、及び、演算器を使用することが可能なプロセッサ
を切り替える手段を持つことを特徴とする。[0008] The present invention is characterized in that it has means for switching an instruction memory, a data memory, and a processor that can use an arithmetic unit at regular intervals.
【0009】[0009]
【発明の実施の形態】実施の形態1.図1、図2はこの
発明の実施の一形態を示す1チップマルチプロセッサの
構成図である。説明を簡単にするため、ここではプロセ
ッサが2つの場合を例にとって説明する。図において、
1は命令コードを記憶する命令メモリ、2は、被演算デ
ータや命令の実行結果などを記憶するデータメモリ、3
は命令コードに従って命令を実行するプロセッサ#0で
あり、内部に演算器を含んでいない。4はプロセッサ#
1であり、プロセッサ#0(3)と同様に内部に演算器
を含んでいない。5は調停回路であり、命令メモリ1、
データメモリ2及び演算器6をどちらのプロセッサが使
用するかを決定する。つまり、調停回路5は、共有メモ
リ(命令メモリ及びデータメモリ)のみならず、演算器
6の使用についても調停する。6は演算器であり、演算
命令を実行する際に必要となる加算器や乗算器などを含
む。また、演算器はプロセッサ#0(3)及びプロセッ
サ#1(4)に共有されている。301、401はメモ
リアクセス部であり、命令コードを命令メモリ1から読
み出す(フェッチする)ときや、ロード/ストア命令に
おいて、レジスタとメモリ間でデータ転送を行うとき
に、命令メモリ1やデータメモリ2に対してアクセスを
行う。302、402は命令デコーダ部であり、読み出
した(フェッチした)命令コードをデコードし、適切な
制御信号を命令実行部303、403や調停回路5に伝
える。303、403は命令実行部であり、命令デコー
ダ部302や調停回路から送出された制御信号に従っ
て、演算器6に制御信号や必要なデータを送出したり、
演算器6が実行した演算結果をラッチして汎用レジスタ
320、420に書込んだりする。また、310、41
0は制御レジスタであり、現在実行中のプログラムの次
に読み出す(フェッチする)命令コードの命令メモリ1
上のアドレスを保持するプログラムカウンタや、プロセ
ッサの状態などの情報を保持するプログラムステータス
ワード等から構成される。320、420は汎用レジス
タであり、演算結果データや被演算データなどを一時的
に保持するレジスタから構成される。図1では、命令メ
モリ1、データメモリ2、及び演算器6が共通のバスを
介してプロセッサ#0(3)とプロセッサ#1(4)に
接続している構成を示してしている。図2においては、
演算器6は、命令メモリ1、データメモリ2とは別のバ
スを介して各プロセッサに接続されている。図1の構成
ではバスを共通にするため、バスの数を減少させること
ができるとのメリットがある。一方で、図1では、バス
が共通するためデータの送受信が混み合うとのデメリッ
トがあり、図2の構成は演算器6と共有メモリ(命令メ
モリ及びデータメモリ)で使用するバスを別にしている
のでデータ送受信が円滑に行えるとのメリットがある。
これらの構成は、プロセッサの使用目的や使用条件等に
よって選択することができる。DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiment 1 1 and 2 are block diagrams of a one-chip multiprocessor showing an embodiment of the present invention. For simplicity of description, a case where there are two processors will be described here as an example. In the figure,
1 is an instruction memory for storing an instruction code, 2 is a data memory for storing data to be operated and execution results of an instruction, and 3
Is a processor # 0 that executes an instruction according to an instruction code, and does not include an arithmetic unit inside. 4 is processor #
1, which does not include an arithmetic unit inside similarly to the processor # 0 (3). 5 is an arbitration circuit, which stores instruction memory 1,
It is determined which processor uses the data memory 2 and the arithmetic unit 6. That is, the arbitration circuit 5 arbitrates not only for the shared memory (the instruction memory and the data memory) but also for the use of the arithmetic unit 6. Reference numeral 6 denotes an arithmetic unit, which includes an adder, a multiplier, and the like required when executing an arithmetic instruction. The arithmetic unit is shared by the processors # 0 (3) and # 1 (4). Reference numerals 301 and 401 denote memory access units which are used to read (fetch) an instruction code from the instruction memory 1 or to transfer data between a register and a memory in a load / store instruction. Access to Instruction decoders 302 and 402 decode the read (fetched) instruction code and transmit an appropriate control signal to the instruction execution units 303 and 403 and the arbitration circuit 5. Reference numerals 303 and 403 denote instruction execution units that send control signals and necessary data to the arithmetic unit 6 in accordance with control signals sent from the instruction decoder unit 302 and the arbitration circuit.
The calculation result executed by the calculator 6 is latched and written to the general-purpose registers 320 and 420. Also, 310, 41
Reference numeral 0 denotes a control register, which is an instruction memory 1 of an instruction code to be read (fetched) next to the currently executing program.
It is composed of a program counter that holds the above address, a program status word that holds information such as the state of the processor, and the like. 320 and 420 are general-purpose registers, each of which is a register that temporarily holds operation result data, operation target data, and the like. FIG. 1 shows a configuration in which the instruction memory 1, the data memory 2, and the arithmetic unit 6 are connected to the processors # 0 (3) and # 1 (4) via a common bus. In FIG.
The arithmetic unit 6 is connected to each processor via a bus different from the instruction memory 1 and the data memory 2. 1 has a merit that the number of buses can be reduced because the buses are shared. On the other hand, in FIG. 1, there is a demerit that data transmission and reception are crowded because the bus is common, and the configuration of FIG. 2 is different from the bus used for the arithmetic unit 6 and the shared memory (instruction memory and data memory). Therefore, there is an advantage that data transmission and reception can be performed smoothly.
These configurations can be selected according to the purpose of use and the use conditions of the processor.
【0010】図3は、プロセッサ#0(3)及びプロセ
ッサ#1(4)における演算命令のパイプラインの構成
を示したもので、4段のパイプラインから構成されてい
る。図3において、20は命令を読み出す(フェッチす
る)期間(以下、「IFステージ」という)であり、2
1は、命令をデコードする期間(以下「Dステージ」と
いう)であり、22は、デコードした命令を実行する期
間(以下「Eステージ」という)であり、23は、演算
した結果をレジスタに書き戻す期間(以下、「Wステー
ジ」という)である。次に動作について説明するが、プ
ロセッサ#0(3)もプロセッサ#1(4)も基本的な
動作は同じなので、特にことわりがない限り、プロセッ
サ#0(3)に関して説明していく。IFステージ20
では、PCカウンタが示すアドレスにある命令コードを
メモリアクセス部301を経由して命令メモリ1から読
み出す。次に、Dステージ21では、読み出した命令コ
ードを命令デコーダ部302にてデコードし、デコード
結果を命令実行部303に送出する。このとき、実行す
る命令コードが演算命令の場合には、調停回路5に対し
て、次のステージで演算器6へのアクセスを行う旨のリ
クエスト信号を送出する。そして、Eステージ22で
は、命令デコーダ部302から出力された制御信号、及
び、調停回路5からのアクセスを許可することを意味す
るアクノーリッジ信号に従って、演算器6に対して被演
算データ及び演算の種別を示す制御コードを送出する。
演算器6では、受け取ったデータ及び制御コードに従っ
て演算を行った後、命令実行部303に演算結果を送出
する。最後に、Wステージ23では、命令実行部303
は、演算器6から受け取った演算結果を、汎用レジスタ
320に書込む。調停回路5では、プロセッサ#0
(3)、プロセッサ#1(4)が命令メモリ1、データ
メモリ2、演算器6の各リソースを使用するときの調停
を行う。リソースを使用する側のプロセッサは、調停回
路5に対して、使用する各リソースに応じたリクエスト
信号を送出し、それを受け取った調停回路5は、使用の
許可を意味するアクノーリッジ信号を、使用を許可する
プロセッサに対して送出する。調停回路5では、各リソ
ースに対して、先にリクエスト信号を出したプロセッサ
に対して、アクノーリッジ信号を送出するが、複数のプ
ロセッサから同時期にリクエスト信号が送出されたとき
には、優先度に従ってアクノーリッジ信号を送出し、他
方のプロセッサに対してはアクセスを拒絶する信号を送
出する。この優先度の付け方に関しては、例えば、固定
にしてもよいし、順番に各プロセッサ間で優先度が変る
ようにしてもよい。FIG. 3 shows a configuration of a pipeline of operation instructions in the processors # 0 (3) and # 1 (4), which is composed of four stages of pipelines. In FIG. 3, reference numeral 20 denotes a period during which an instruction is read (fetched) (hereinafter, referred to as an “IF stage”).
Reference numeral 1 denotes a period during which the instruction is decoded (hereinafter, referred to as “D stage”), reference numeral 22 denotes a period during which the decoded instruction is executed (hereinafter, referred to as “E stage”), and reference numeral 23 denotes a result of the operation written in the register. This is the period of return (hereinafter, referred to as “W stage”). Next, the operation will be described. Since the basic operations of the processor # 0 (3) and the processor # 1 (4) are the same, the processor # 0 (3) will be described unless otherwise specified. IF stage 20
Then, the instruction code at the address indicated by the PC counter is read from the instruction memory 1 via the memory access unit 301. Next, in the D stage 21, the read instruction code is decoded by the instruction decoder unit 302, and the decoded result is sent to the instruction execution unit 303. At this time, if the instruction code to be executed is an arithmetic instruction, a request signal for accessing the arithmetic unit 6 in the next stage is sent to the arbitration circuit 5. Then, in the E stage 22, the arithmetic unit 6 receives the data to be operated and the operation based on the control signal output from the instruction decoder unit 302 and an acknowledge signal indicating that the access from the arbitration circuit 5 is permitted. A control code indicating the type is transmitted.
The arithmetic unit 6 performs an operation in accordance with the received data and control code, and then sends the operation result to the instruction execution unit 303. Finally, in the W stage 23, the instruction execution unit 303
Writes the calculation result received from the calculator 6 into the general-purpose register 320. In the arbitration circuit 5, the processor # 0
(3) Arbitration when the processor # 1 (4) uses the resources of the instruction memory 1, the data memory 2, and the arithmetic unit 6 is performed. The processor using the resource sends a request signal corresponding to each resource to be used to the arbitration circuit 5, and upon receiving the request signal, the arbitration circuit 5 uses the acknowledgment signal indicating permission of use. Is sent to the processor that permits it. The arbitration circuit 5 sends an acknowledgment signal to the processor that has issued the request signal first for each resource. It sends a NORID signal and sends a signal to the other processor to deny access. The priority may be fixed, for example, or the priority may be changed between the processors in order.
【0011】図4は、プロセッサ#0(3)、プロセッ
サ#1(4)で、それぞれ異なる一連の演算命令を実行
したときのパイプラインの様子を示したものである。3
0、32、34は、プロセッサ#0(3)において、こ
の順番に実行される一連の演算命令であり、31、3
3、35は、プロセッサ#1(4)において、この順番
に実行される一連の演算命令である。プロセッサ#0
(3)、プロセッサ#1(4)から同時期に命令メモリ
1のリクエスト信号を調停回路5に対して出力し、調停
回路5はプロセッサ#0(3)に対してアクノーリッジ
信号を返したため、プロセッサ#1(4)側で実行され
る演算命令31のIFステージは、プロセッサ#0
(3)側の演算命令30のIFステージが完了するまで
待たされ、2クロックサイクル分続いている。同様に、
プロセッサ#0(3)で実行される演算命令32も、プ
ロセッサ#1(4)で実行される演算命令31のIFス
テージが完了するまで待たされるために2クロックサイ
クル分続き、以下、演算命令33、34、35に関して
も同様である。次に、演算命令32のEステージにおい
ては、プロセッサ#0(3)は調停器5からアクノーリ
ッジ信号を受けて演算器6を使用しているが、演算処理
に2クロックサイクル要している。このため、演算命令
32のEステージと演算命令33のEステージとが重複
することになる。この場合プロセッサ#1(4)は、演
算器6へアクセスするためのリクエスト信号を調停回路
5に対し送出するが、演算器6は既にプロセッサ#1
(0)により使用されているためプロセッサ#1(4)
のリクエストは拒絶され、演算命令32のEステージが
完了するまで待たされる。このため、プロセッサ#1
(4)の演算命令33のEステージは2クロックサイク
ル分続き、以下、演算命令34,35に関しても同様に
2クロックサイクル続くことになる。FIG. 4 shows the state of the pipeline when the processor # 0 (3) and the processor # 1 (4) execute a series of different operation instructions. 3
0, 32, and 34 are a series of operation instructions executed in this order in the processor # 0 (3).
Reference numerals 3 and 35 are a series of operation instructions executed in this order in the processor # 1 (4). Processor # 0
(3) Since the processor # 1 (4) outputs a request signal of the instruction memory 1 to the arbitration circuit 5 at the same time, and the arbitration circuit 5 returns an acknowledge signal to the processor # 0 (3). The IF stage of the operation instruction 31 executed on the processor # 1 (4) side is the processor # 0
It waits until the IF stage of the (3) side operation instruction 30 is completed, and continues for two clock cycles. Similarly,
The operation instruction 32 executed by the processor # 0 (3) also lasts for two clock cycles because it waits until the IF stage of the operation instruction 31 executed by the processor # 1 (4) is completed. , 34, and 35. Next, in the E stage of the operation instruction 32, the processor # 0 (3) receives the acknowledge signal from the arbitrator 5 and uses the operation unit 6, but the operation process requires two clock cycles. For this reason, the E stage of the operation instruction 32 and the E stage of the operation instruction 33 overlap. In this case, the processor # 1 (4) sends a request signal for accessing the arithmetic unit 6 to the arbitration circuit 5, but the arithmetic unit 6 has already sent the processor # 1.
Processor # 1 (4) because it is used by (0)
Is rejected and waits until the E stage of the operation instruction 32 is completed. Therefore, processor # 1
The E stage of the operation instruction 33 of (4) lasts for two clock cycles, and thereafter, the operation instructions 34 and 35 also continue for two clock cycles.
【0012】図5は、本実施の形態における1チップマ
ルチプロセッサにおいて、2つのプロセスを実行したと
きの様子を示したものである。41は、プロセッサ#0
(3)で、42は、プロセッサ#1(4)でそれぞれ実
行されているプロセスを示す。また、40はシングルプ
ロセッサにおいて時分割制御により同様の処理を実行し
たときの様子を示しており、41、42との比較のため
に示している。この実施の形態における1チップマルチ
プロセッサでは、複数のプロセッサが使用するリソース
の競合が発生した場合に、対応するパイプラインステー
ジが延びるため、プロセスA(4001)、プロセスB
(4002)とも単体では処理時間が長くなっている
が、競合しないとき、あるいは、命令メモリ、データメ
モリ、演算器を使用しないステージに関しては2つのプ
ロセッサで並列に処理を実行することが可能であるた
め、また、プロセススイッチ4003が発生しないた
め、総合的な処理時間は大幅に短縮されている。また、
本発明の調停回路はメモリのみならず、演算器6につい
ての調停も行うことができるため、各プロセッサで演算
器6を共有することができる。この結果、各プロセッサ
が演算器を内部に搭載するときに比べて大幅に面積を減
少させることができる。特に、多数のプロセッサが配置
される場合には省スペース化に大きく貢献することにな
る。FIG. 5 shows a state in which two processes are executed in the one-chip multiprocessor according to the present embodiment. 41 is processor # 0
In (3), reference numeral 42 denotes a process being executed by each of the processors # 1 (4). Reference numeral 40 denotes a state when the same processing is executed by time-division control in a single processor, and is shown for comparison with 41 and 42. In the one-chip multiprocessor according to the present embodiment, when contention for resources used by a plurality of processors occurs, the corresponding pipeline stage is extended, so that the process A (4001) and the process B
Although the processing time is long with (4002) alone, it is possible to execute the processing in parallel by two processors when there is no competition or when the instruction memory, the data memory, and the operation unit are not used. Therefore, since the process switch 4003 does not occur, the overall processing time is greatly reduced. Also,
Since the arbitration circuit of the present invention can perform arbitration not only for the memory but also for the arithmetic unit 6, the arithmetic unit 6 can be shared by the processors. As a result, the area can be significantly reduced as compared with the case where each processor has an arithmetic unit therein. In particular, when a large number of processors are arranged, this greatly contributes to space saving.
【0013】以上のように、複数のプロセスを実行した
ときにプロセススイッチが発生せずに効率よく処理を実
行することができ、またメモリや演算器を複数のプロセ
ッサで共用するように構成したので、省スペースな1チ
ップマルチプロセッサを実現することができる。As described above, when a plurality of processes are executed, a process can be efficiently executed without causing a process switch, and a memory and an arithmetic unit are configured to be shared by a plurality of processors. Thus, a space-saving one-chip multiprocessor can be realized.
【0014】実施の形態2.以上の実施の形態1では、
複数のプロセッサに共用されているリソース(命令メモ
リ1、データメモリ2、演算器6)を各プロセッサが使
用する際に、調停回路に対してリクエストを出し、調停
回路から使用を許可されたプロセッサが、目的のリソー
スを使用するようにしたものであるが、次に一定の時間
間隔でリソースを使用することができるプロセッサを切
り替えるようにする場合の実施の形態を示す。この実施
の形態では、調停回路5はタイマーカウンタを持ち、あ
る一定時間間隔毎にリソースを使用することを許可する
プロセッサを切り替える。つまり、命令メモリ1、デー
タメモリ2のみならず、演算器6についても、使用する
プロセッサを時間ごとに切り替えるものである。図6
は、この実施の形態におけるプロセッサと調停回路との
信号の送受信の動作を説明するためのブロック図で、
7、8は、調停回路5からそれぞれプロセッサ#0
(3)、プロセッサ#1(4)に出力される制御信号で
あり、9、10は、それぞれプロセッサ#0(3)、プ
ロセッサ#1(4)から調停回路5に出力される制御信
号である。制御信号7、8は、それぞれのプロセッサに
対して、現在リソースを使用することを許可するか否か
を示す信号であり、制御信号9、10は、それぞれのプ
ロセッサが、現在、リソースを使用しているか否かを示
す信号である。Embodiment 2 FIG. In the first embodiment,
When each processor uses resources (instruction memory 1, data memory 2, and arithmetic unit 6) shared by a plurality of processors, it issues a request to the arbitration circuit, and the processor permitted to use by the arbitration circuit In this embodiment, a target resource is used, and a processor which can use the resource at a predetermined time interval is switched next. In this embodiment, the arbitration circuit 5 has a timer counter, and switches the processor that is permitted to use the resource at certain time intervals. That is, not only the instruction memory 1 and the data memory 2 but also the arithmetic unit 6 switches the processor to be used every time. FIG.
Is a block diagram for explaining the operation of transmitting and receiving signals between the processor and the arbitration circuit in this embodiment,
7 and 8 are processors # 0 from the arbitration circuit 5, respectively.
(3) Control signals output to the processor # 1 (4), and 9 and 10 are control signals output to the arbitration circuit 5 from the processors # 0 (3) and # 1 (4), respectively. . The control signals 7 and 8 are signals indicating whether or not each processor is permitted to use the current resource. The control signals 9 and 10 indicate that each processor is currently using the resource. It is a signal indicating whether or not it is running.
【0015】次に動作について説明する。タイマーカウ
ンタがある一定の値に達するとタイマーカウンタはリセ
ットされ再びカウントを開始するとともに、調停回路5
は、プロセッサ#0(3)に対して制御信号7をアサー
トする。プロセッサ#0(3)は、制御信号7がアサー
トされると、調停回路5に対して、制御信号9をアサー
トする。このとき、制御信号8、10はネゲートされた
ままである。さらにタイマーカウンタが再びある一定の
値に達するとタイマーカウンタは再びリセットされ、調
停回路5は、プロセッサ#0(3)に対する制御信号7
をネゲートする。プロセッサ#0(3)は、制御信号7
がネゲートされると、現在、処理中の命令を一時停止し
て、リソースの使用をやめるとともに、制御信号9をネ
ゲートする。調停回路5は、制御信号9がネゲートされ
ると、制御信号8をアサートし、プロセッサ#1(4)
に対してリソースを使用することを許可する。プロセッ
サ#1(4)は、制御信号8がアサートされると、制御
信号10をアサートし再び制御信号8がネゲートされる
まで、処理を実行する。以下、同様にして、プロセッサ
#0とプロセッサ#1が交互にある時間間隔毎に処理を
実行していく。図7は、本実施の形態におけるパイプラ
インを示している。IF、D、E、Wの各ステージ及び
30、31、32、33、34、35の各演算命令は実
施の形態1.の場合と同様である。一定時間ごとにプロ
セッサ#0(3)とプロセッサ#1(4)が交互に共有
リソース(命令メモリ1、データメモリ2、演算器6)
を使用し、一方のプロセッサが共有リソースを使用して
いる間は、他方のプロセッサは共有リソースを使用して
いない。図8は、この実施の形態における1チップマル
チプロセッサにおいて、2つのプロセスを実行している
ときの様子を示したものである。43は、プロセッサ#
0(3)で、44は、プロセッサ#1(4)でそれぞれ
実行されているプロセスを示す。また、40はシングル
プロセッサにおいて時分割制御により同様の処理を実行
したときの様子を示しており、41、42との比較のた
めに示している。4004は、一方のプロセッサが動作
している間に他方が処理を一時停止している期間であ
る。この実施の形態の場合、2つのプロセス自体を処理
するのに要する時間は、単一のプロセッサで実行した場
合と同一であるが、プロセススイッチが発生しないた
め、総合的な処理時間は短くなっている。以上のよう
に、一定時間毎に、動作するプロセッサを切り替えるよ
うに構成したため、プロセススイッチが発生せずに、効
率よく処理を実行することが可能である。また、各プロ
セッサからのリソース使用の要求の競合が発生しないた
め、調停回路、及び、プロセッサのタイミング制御を単
純な回路で実現することが可能である。また、一時停止
しているプロセッサに対してはクロックの供給を止める
などして、消費電力を低減させることが可能である。Next, the operation will be described. When the timer counter reaches a certain value, the timer counter is reset and starts counting again.
Asserts the control signal 7 to the processor # 0 (3). When the control signal 7 is asserted, the processor # 0 (3) asserts the control signal 9 to the arbitration circuit 5. At this time, the control signals 8, 10 remain negated. Further, when the timer counter again reaches a certain value, the timer counter is reset again, and the arbitration circuit 5 sends the control signal 7 to the processor # 0 (3).
To negate. Processor # 0 (3) outputs control signal 7
Is negated, the instruction currently being processed is temporarily stopped, the use of the resource is stopped, and the control signal 9 is negated. When the control signal 9 is negated, the arbitration circuit 5 asserts the control signal 8 and the processor # 1 (4)
Allows to use resources. When the control signal 8 is asserted, the processor # 1 (4) asserts the control signal 10 and executes processing until the control signal 8 is negated again. Hereinafter, in a similar manner, the processor # 0 and the processor # 1 alternately perform the processing at certain time intervals. FIG. 7 shows a pipeline according to the present embodiment. Each stage of IF, D, E, W and each operation instruction of 30, 31, 32, 33, 34, 35 are the same as those in the first embodiment. Is the same as The processor # 0 (3) and the processor # 1 (4) alternately share resources (instruction memory 1, data memory 2, arithmetic unit 6) at regular intervals.
And while one processor is using the shared resource, the other processor is not using the shared resource. FIG. 8 shows a state where two processes are executed in the one-chip multiprocessor according to the present embodiment. 43 is a processor #
At 0 (3), 44 indicates a process being executed by processor # 1 (4), respectively. Reference numeral 40 denotes a state when the same processing is executed by time-division control in a single processor, and is shown for comparison with 41 and 42. Reference numeral 4004 denotes a period during which one processor is operating and the other is temporarily suspended. In the case of this embodiment, the time required to process the two processes themselves is the same as when the processes are executed by a single processor, but since no process switch occurs, the overall processing time is reduced. I have. As described above, the configuration is such that the operating processor is switched at regular intervals, so that the process can be executed efficiently without the occurrence of a process switch. In addition, since contention for resource use requests from the processors does not occur, the arbitration circuit and the timing control of the processors can be realized by simple circuits. Further, it is possible to reduce the power consumption by stopping the supply of the clock to the suspended processor.
【0016】[0016]
【発明の効果】以上のように、この発明の1チップマル
チプロセッサによれば、複数のプロセスを実行したとき
にプロセススイッチが発生せずに効率よく処理を実行す
ることができ、またメモリのみならず演算器をも複数の
プロセッサで共用するように構成したので、省スペース
な1チップマルチプロセッサを実現することが可能であ
る。また、メモリのみならず演算器についても、タイマ
ーにより一定時間間隔で、使用するプロセッサを完全に
切り替えるので、効率よく処理を実行することができる
省スペースな1チップマルチプロセッサを、容易に実現
することが可能である。As described above, according to the one-chip multiprocessor of the present invention, when a plurality of processes are executed, processing can be executed efficiently without causing a process switch. In addition, since the arithmetic unit is configured to be shared by a plurality of processors, a space-saving one-chip multiprocessor can be realized. Further, not only the memory but also the arithmetic unit is completely switched at regular time intervals by a timer, so that a space-saving one-chip multiprocessor that can execute processing efficiently can be easily realized. Is possible.
【図1】 この発明の1チップマルチプロセッサを示す
ブロック図。FIG. 1 is a block diagram showing a one-chip multiprocessor of the present invention.
【図2】 この発明の1チップマルチプロセッサを示す
ブロック図。FIG. 2 is a block diagram showing a one-chip multiprocessor of the present invention.
【図3】 この発明の1チップマルチプロセッサにおけ
る演算命令のパイプライン図。FIG. 3 is a pipeline diagram of operation instructions in the one-chip multiprocessor of the present invention.
【図4】 この発明の1チップマルチプロセッサにおい
て、2つのプロセッサで同時に演算命令を実行したとき
のパイプライン図。FIG. 4 is a pipeline diagram when an operation instruction is simultaneously executed by two processors in the one-chip multiprocessor of the present invention.
【図5】 この発明の実施の形態1における1チップマ
ルチプロセッサにおいて、2つのプロセスを実行したと
きの動作図。FIG. 5 is an operation diagram when two processes are executed in the one-chip multiprocessor according to the first embodiment of the present invention;
【図6】 この発明の実施の形態2における1チップ
マルチプロセッサにおける調停回路およびプロセッサの
構成図。FIG. 6 is a configuration diagram of an arbitration circuit and a processor in a one-chip multiprocessor according to a second embodiment of the present invention.
【図7】 この発明の1チップマルチプロセッサにお
いて、2つのプロセッサで同時に演算命令を実行したと
きのパイプライン図。FIG. 7 is a pipeline diagram when two processors simultaneously execute an operation instruction in the one-chip multiprocessor of the present invention.
【図8】 この発明の実施の形態2における1チップ
マルチプロセッサにおいて、2つのプロセスを実行した
ときの動作図。FIG. 8 is an operation diagram when two processes are executed in the one-chip multiprocessor according to the second embodiment of the present invention;
【図9】 従来の単一のプロセッサにおいて、2つの
プロセスを実行したときの動作図。FIG. 9 is an operation diagram when two processes are executed in a conventional single processor.
【符号の説明】 1 命令メモリ、2 データメモリ、3 プロセッサ#
0、301 メモリアクセス部、302 命令デコーダ
部、303 命令実行部、4 プロセッサ#1、401
メモリアクセス部、402 命令デコーダ部、403
命令実行部、5 調停回路、6 演算器、20 パイ
プラインのIFステージ、21 パイプラインのDステ
ージ、22 パイプラインのEステージ、23 パイプ
ラインのWステージ、30〜35 演算命令、40〜4
4 プロセス処理、4001 プロセスA、4002
プロセスB、4003 プロセススイッチ、4004
動作一時停止期間。[Description of Signs] 1 instruction memory, 2 data memory, 3 processor #
0, 301 memory access unit, 302 instruction decoder unit, 303 instruction execution unit, 4 processor # 1, 401
Memory access unit, 402 instruction decoder unit, 403
Instruction execution unit, 5 arbitration circuit, 6 arithmetic unit, 20 pipeline IF stage, 21 pipeline D stage, 22 pipeline E stage, 23 pipeline W stage, 30-35 operation instruction, 40-4
4 Process processing, 4001 Process A, 4002
Process B, 4003 Process switch, 4004
Operation suspension period.
Claims (7)
ッサから使用される共有演算器と、前記複数のプロセッ
サのうち一のプロセッサが前記共有演算器を使用してい
る間は他のプロセッサが前記共有演算器を使用できない
ように制御する調停回路を備えることを特徴とするマル
チプロセッサ。1. A plurality of processors, a shared operation unit used by the plurality of processors, and another processor shared by the other processors while one of the plurality of processors uses the shared operation unit. A multiprocessor comprising an arbitration circuit for controlling an arithmetic unit to be unusable.
前記共有演算器の使用を許可する信号を前記一のプロセ
ッサに送出するとともに、前記他のプロセッサの前記共
有演算器の使用を拒絶する信号を前記他のプロセッサに
送出することを特徴とする請求項1記載のマルチプロセ
ッサ。2. The arbitration circuit sends a signal permitting use of the shared operation unit of the one processor to the one processor, and rejects use of the shared operation unit of the other processor. 2. The multiprocessor according to claim 1, wherein the multi-processor sends the data to the other processor.
できる前記一のプロセッサと前記他のプロセッサとを一
定時間ごとに切り替えることを特徴とする請求項1記載
のマルチプロセッサ。3. The multiprocessor according to claim 1, wherein the arbitration circuit switches between the one processor capable of using the shared arithmetic unit and the other processor at regular time intervals.
ッサから使用される共有演算器と、前記複数のプロセッ
サから使用される共有メモリと、前記複数のプロセッサ
のうち一のプロセッサが前記共有演算器を使用している
間は他のプロセッサが前記共有演算器を使用できないよ
うに制御するとともに前記複数のプロセッサのうち一の
プロセッサが前記共有メモリを使用している間は他のプ
ロセッサが前記共有メモリを使用できないように制御す
る調停回路を備えることを特徴とするマルチプロセッ
サ。4. A plurality of processors, a shared operation unit used by the plurality of processors, a shared memory used by the plurality of processors, and one processor of the plurality of processors stores the shared operation unit. While using it, control is performed so that another processor cannot use the shared arithmetic unit, and while one of the plurality of processors is using the shared memory, another processor uses the shared memory. A multiprocessor comprising an arbitration circuit for controlling use of the multiprocessor.
については前記一のプロセッサの前記共有演算器の使用
を許可する信号を前記一のプロセッサに送出するととも
に、前記他のプロセッサの前記共有演算器の使用を拒絶
する信号を前記他のプロセッサに送出し、前記共有メモ
リの使用については前記一のプロセッサの前記共有メモ
リの使用を許可する信号を前記一のプロセッサに送出す
るとともに、前記他のプロセッサの前記共有メモリの使
用を拒絶する信号を前記他のプロセッサに送出すること
を特徴とする請求項4記載のマルチプロセッサ。5. The arbitration circuit sends, to the one processor, a signal permitting use of the shared operation unit of the one processor with respect to use of the shared operation unit, and sets the shared processor of the other processor to use the shared operation unit. A signal for refusing use of a computing unit is sent to the other processor, and a signal for allowing use of the shared memory of the one processor is sent to the one processor for use of the shared memory, and 5. The multiprocessor according to claim 4, wherein a signal for rejecting use of the shared memory by one processor is sent to the other processor.
については前記共有演算器を使用できる前記一のプロセ
ッサと前記他のプロセッサとを一定時間ごとに切り替
え、前記共有メモリの使用については前記共有メモリを
使用できる前記一のプロセッサと前記他のプロセッサと
を一定時間ごとに切り替えることにより制御することを
特徴とする請求項4記載のマルチプロセッサ。6. The arbitration circuit switches at regular intervals between the one processor and the other processor that can use the shared operation unit for use of the shared operation unit, and the arbitration circuit determines the use of the shared memory. 5. The multiprocessor according to claim 4, wherein control is performed by switching the one processor and the other processor that can use a shared memory at regular intervals.
とが前記共有メモリと前記複数のプロセッサとの間の接
続と別個に接続されていることを特徴とする請求項4記
載のマルチプロセッサ。7. The multiprocessor according to claim 4, wherein said shared operation unit and said plurality of processors are separately connected to a connection between said shared memory and said plurality of processors.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11106052A JP2000298652A (en) | 1999-04-14 | 1999-04-14 | Multiprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11106052A JP2000298652A (en) | 1999-04-14 | 1999-04-14 | Multiprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000298652A true JP2000298652A (en) | 2000-10-24 |
Family
ID=14423863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11106052A Withdrawn JP2000298652A (en) | 1999-04-14 | 1999-04-14 | Multiprocessor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000298652A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003005957A (en) * | 2001-06-25 | 2003-01-10 | Pacific Design Kk | Data processor and method for controlling the same |
JP2004078495A (en) * | 2002-08-15 | 2004-03-11 | Sony Corp | Non-contact ic card |
US7254688B2 (en) | 2002-09-11 | 2007-08-07 | Nec Electronics Corporation | Data processing apparatus that shares a single semiconductor memory circuit among multiple data processing units |
US7346881B2 (en) | 2002-05-13 | 2008-03-18 | Tensilica, Inc. | Method and apparatus for adding advanced instructions in an extensible processor architecture |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
JP2009026135A (en) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | Multi-processor device |
JP2010049500A (en) * | 2008-08-21 | 2010-03-04 | Toshiba Corp | Pipeline arithmetic processor and control system equipped with pipeline arithmetic processor |
US7937559B1 (en) | 2002-05-13 | 2011-05-03 | Tensilica, Inc. | System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes |
US7971026B2 (en) | 2007-04-24 | 2011-06-28 | Kabushiki Kaisha Toshiba | Information processing apparatus and access control method |
-
1999
- 1999-04-14 JP JP11106052A patent/JP2000298652A/en not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003005957A (en) * | 2001-06-25 | 2003-01-10 | Pacific Design Kk | Data processor and method for controlling the same |
US7346881B2 (en) | 2002-05-13 | 2008-03-18 | Tensilica, Inc. | Method and apparatus for adding advanced instructions in an extensible processor architecture |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US7937559B1 (en) | 2002-05-13 | 2011-05-03 | Tensilica, Inc. | System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes |
JP2004078495A (en) * | 2002-08-15 | 2004-03-11 | Sony Corp | Non-contact ic card |
US7254688B2 (en) | 2002-09-11 | 2007-08-07 | Nec Electronics Corporation | Data processing apparatus that shares a single semiconductor memory circuit among multiple data processing units |
US7971026B2 (en) | 2007-04-24 | 2011-06-28 | Kabushiki Kaisha Toshiba | Information processing apparatus and access control method |
JP2009026135A (en) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | Multi-processor device |
JP2010049500A (en) * | 2008-08-21 | 2010-03-04 | Toshiba Corp | Pipeline arithmetic processor and control system equipped with pipeline arithmetic processor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5721931A (en) | Multiprocessing system employing an adaptive interrupt mapping mechanism and method | |
US5535417A (en) | On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes | |
EP2463781B1 (en) | Interrupt distribution scheme | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US5168568A (en) | Delaying arbitration of bus access in digital computers | |
US7546444B1 (en) | Register set used in multithreaded parallel processor architecture | |
KR100932359B1 (en) | Switch matrix system with multiple bus arbitrations per cycle with high frequency mediator | |
US20080091920A1 (en) | Transferring data between registers in a RISC microprocessor architecture | |
US5892956A (en) | Serial bus for transmitting interrupt information in a multiprocessing system | |
JPH0743697B2 (en) | Digital computer system | |
US11360809B2 (en) | Multithreaded processor core with hardware-assisted task scheduling | |
JPS62243058A (en) | Control method of interruption for multi-processor system | |
EP1125194B1 (en) | Processing arrangements | |
US6263395B1 (en) | System and method for serial interrupt scanning | |
EP0685798A2 (en) | Interrupt controllers in symmetrical multiprocessing systems | |
US20240211020A1 (en) | Processor micro-architecture, soc chip and low-power-consumption intelligent device | |
US5752043A (en) | Interrupt control system provided in a computer | |
JP2009238001A (en) | Computer system | |
JP2000298652A (en) | Multiprocessor | |
US6496517B1 (en) | Direct attach of interrupt controller to processor module | |
US5923887A (en) | Interrupt request that defines resource usage | |
WO2007037930A2 (en) | PERFORMING AN N-BIT WRITE ACCESS TO AN MxN-BIT-ONLY PERIPHERAL | |
CN111258769B (en) | Data transmission device and method | |
JPH10283304A (en) | Method and system for processing interruption request | |
WO2001025941A1 (en) | Multiprocessor computer systems with command fifo buffer at each target device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051011 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060704 |