JPH0528090A - Memory controller - Google Patents

Memory controller

Info

Publication number
JPH0528090A
JPH0528090A JP17813691A JP17813691A JPH0528090A JP H0528090 A JPH0528090 A JP H0528090A JP 17813691 A JP17813691 A JP 17813691A JP 17813691 A JP17813691 A JP 17813691A JP H0528090 A JPH0528090 A JP H0528090A
Authority
JP
Japan
Prior art keywords
data
memory
bus
cpu
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP17813691A
Other languages
Japanese (ja)
Inventor
Yushi Fukuchi
雄史 福地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP17813691A priority Critical patent/JPH0528090A/en
Publication of JPH0528090A publication Critical patent/JPH0528090A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To reduce the load of a memory bus and to improve the efficiency of memory access by providing a local data memory accessed by each processor and a data bus connecting each processor and the local data memory independently of each other and dividing access areas by data. CONSTITUTION:A multiprocessor system is provided with two main storage devices, and only data shared among processors is accessed in one main storage device 2a, and the other local data memory 2b consists of a multiple port memory, and only local data for peculiar use of each processor is accessed in this memory 2b. When a program A is first executed in a CPU 1a, the CPU 1a outputs a bus request signal to a control signal bus 3b in the case of shared data. A bus control circuit 4 outputs a use permission signal of an address data bus 3a if any other CPU does not use it. The memory 2b is directly accessed in the case of local data.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明はマルチプロセッサシス
テムにおけるメモリ制御装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory controller in a multiprocessor system.

【0002】[0002]

【従来の技術】従来技術の構成を説明する。図2と図3
は例えば”High−Performance Com
puter Architecture”(Harol
dS.Stone著、1987年 Addison W
esley発行、pp.299−303)に記述されて
いるような従来のマルチプロセッサシステムの構成図で
ある。図2において、1a、1b、1c、1dはそれぞ
れCPUを示し、2は主記憶装置である。また3aは、
CPU1a、1b、1c、1dと主記憶装置2との間で
データ及び、アドレスの転送を行なうアドレスデータバ
スであり、3bは、CPU1a、1b、1c、1dとバ
ス制御回路4との間でバスの獲得のための制御信号の転
送をする制御信号バスである。また3は、アドレスデー
タバス3aと制御信号バス3bからなるメモリバス、4
は、どのCPUがメモリバス3を使うかを制御するバス
制御回路である。図3において、図2と同番号同符号は
図2に記載のものと同じ機能を持つ。また、5a、5
b、5c、5dは上記CPU1a、1b、1c、1dが
専用でデータを記憶するローカルメモリである。
2. Description of the Related Art The structure of the prior art will be described. 2 and 3
For example, "High-Performance Com
putter Architecture "(Harol
dS. Stone, 1987 Addison W
Issued by esley, pp. 299-303) is a block diagram of a conventional multiprocessor system. In FIG. 2, 1a, 1b, 1c, and 1d denote CPUs, and 2 denotes a main storage device. 3a is
An address data bus for transferring data and addresses between the CPUs 1a, 1b, 1c, 1d and the main memory 2, and 3b is a bus between the CPUs 1a, 1b, 1c, 1d and the bus control circuit 4. Is a control signal bus for transferring control signals for acquisition of Further, 3 is a memory bus composed of an address data bus 3a and a control signal bus 3b, 4
Is a bus control circuit that controls which CPU uses the memory bus 3. 3, the same reference numerals as those in FIG. 2 have the same functions as those shown in FIG. Also, 5a, 5
Reference numerals b, 5c, and 5d denote local memories dedicated to the CPUs 1a, 1b, 1c, and 1d to store data.

【0003】つぎにこの従来の回路構成のものの動作を
説明する。ここでは、複数のプログラムがタイムシェア
リングで動作する4台のプロセッサからなるマルチプロ
セッサシステム上で、たとえば、Prog1という1つ
のプログラムが3台のCPUで並列実行される場合を考
える。このときProgは3つの処理単位(タスク)に
分割され、分割された3つのタスクは3台のCPUで並
列に実行されているものとする。Prog1を3つに分
割したタスクをそれぞれProg1(a)、Prog1
(b)、Prog1(c)とする。なお、この時このマ
ルチプロセッサ上ではProg1の他にProg2、P
rog3、...もProg1と同時にタイムシェアリ
ングで実行されているものとする。このプログラムを複
数の処理単位(タスク)に分割した場合、それぞれのタ
スク内で使われるデータは、(1)そのタスク内だけで
使うデータ(ローカルデータ)と、(2)複数のタスク
で共通に使うデータ(共有データ)の2種類に分けられ
る。
The operation of this conventional circuit configuration will be described below. Here, consider a case in which, for example, one program called Prog1 is executed in parallel by three CPUs on a multiprocessor system consisting of four processors in which a plurality of programs operate in time sharing. At this time, Prog is divided into three processing units (tasks), and the three divided tasks are assumed to be executed in parallel by three CPUs. Tasks obtained by dividing Prog1 into three are Prog1 (a) and Prog1
(B) and Prog1 (c). At this time, on this multiprocessor, in addition to Prog1, Prog2, P
log3 ,. . . Is assumed to be executed at the same time as Prog1 by time sharing. When this program is divided into multiple processing units (tasks), the data used in each task is (1) data used only within that task (local data), and (2) common to multiple tasks. There are two types of data (shared data) used.

【0004】図3で示すような従来例では、(1)ロー
カルデータも、(2)共有データのいずれもが、共有メ
モリ2上におかれ、各CPUは全てのデータを共有メモ
リ2からアクセスする。また図4で表すような従来例で
は、(1)ローカルデータは各CPUのローカルメモリ
5a、5b、5c、5d上に記憶され、(2)共有デー
タは共有メモリ2に記憶される。そして、各CPUはロ
ーカルデータをアクセスする時はそれぞれのCPUに接
続されたローカルメモリからアクセスし、共有データを
アクセスする時には全てのCPUが共有メモリ2からア
クセスする。ここで、一つの例として、Prog1
(a)が最初にCPU1a上で実行され、タイムスライ
スの時間が来るか、あるいはその他の理由で、一度実行
を休止され、CPU1a上では他のプログラムが実行さ
れ、Prog1(a)はCPUが空くのを待っている状
態になり、その後、他のCPU1bが空いたため、CP
U1b上で再びProg1(a)の実行を再開する場合
を例にして、図3と図4の従来例の動作を説明する。
In the conventional example as shown in FIG. 3, both (1) local data and (2) shared data are placed on the shared memory 2, and each CPU accesses all the data from the shared memory 2. To do. In the conventional example as shown in FIG. 4, (1) local data is stored in the local memories 5a, 5b, 5c, 5d of each CPU, and (2) shared data is stored in the shared memory 2. Then, each CPU accesses from the local memory connected to each CPU when accessing the local data, and all the CPUs access from the shared memory 2 when accessing the shared data. Here, as an example, Prog1
(A) is first executed on the CPU 1a, and the execution of the program is suspended once due to the time slice, or for some other reason, another program is executed on the CPU 1a, and the CPU of the Prog 1 (a) becomes free. It becomes a state of waiting for the
The operation of the conventional example shown in FIGS. 3 and 4 will be described by taking as an example the case where the execution of Prog1 (a) is restarted on U1b.

【0005】図2の従来例の場合、CPU1a上でPr
og1(a)の実行が開始されると、Prog1(a)
のデータはローカルデータも共有データも共有メモリ2
上に記憶される。このとき、CPU1aが必要なデータ
をアクセスする場合、そのデータがローカルデータであ
っても、共有データであっても、CPU1aは制御信号
バス3bにバス要求信号を出す。バス制御回路4はその
信号を受け取り、他のCPUがアドレスデータバス3a
を使っているかどうか調べる。他のCPUがアドレスデ
ータバス3aを使っていなければバス制御回路4はCP
U1aに対してバスの使用許可信号をだす。CPU1a
はバスの使用許可信号を受け取ると、アドレスデータバ
ス3aにデータのアドレスを出し、主記憶装置2のデー
タにアクセスする。他のCPUがアドレスデータバス3
aを使っている場合にはCPU1aはアドレスデータバ
ス3aが空くまで待ち、メモリバス3aが空いたら、ア
ドレスデータ3aにデータのアドレスを出し、主記憶装
置2のデータにアクセスする。
In the case of the conventional example of FIG. 2, Pr is set on the CPU 1a.
When execution of og1 (a) is started, Prog1 (a)
Data is shared memory both local data and shared data 2
Remembered above. At this time, when the CPU 1a accesses necessary data, the CPU 1a issues a bus request signal to the control signal bus 3b regardless of whether the data is local data or shared data. The bus control circuit 4 receives the signal, and another CPU receives the address data bus 3a.
Check if you are using. If no other CPU is using the address data bus 3a, the bus control circuit 4
A bus use permission signal is issued to U1a. CPU1a
When receiving the bus use permission signal, outputs the data address to the address data bus 3a and accesses the data in the main memory device 2. Other CPU is address data bus 3
When using a, the CPU 1a waits until the address data bus 3a becomes free, and when the memory bus 3a becomes free, outputs the data address to the address data 3a and accesses the data in the main memory device 2.

【0006】次にProg1(a)が休止状態に入り、
CPU1aでは他のプログラムが実行され、Prog1
(a)が空きCPU待ちの状態になったとする。その
後、CPU1bが空き、Prog1(a)がCPU1b
上での実行権を得、CPU1b上で実行を再開した場合
のCPU1bのメモリアクセスは、Prog1(a)の
データはすべて共有メモリ上にあるので、実行を休止す
る前と同様に行なわれる。図2の従来例では全てのデー
タを共有メモリ2上に記憶していて、全てのCPUが全
てのデータを一つの共有メモリからアクセスするため、
アドレスデータバスの使用頻度が高くなる。そのため、
CPUの数が増えたり、大量のデータを処理するプログ
ラムを複数のプロセッサで同時に行なうと、アドレスデ
ータバスの転送速度がCPUの実行速度に追い付かなく
なり、CPUがアドレスデータバスが空くのを待つ時間
が長くなり、効率が悪くなる。
Next, Prog1 (a) enters the hibernation state,
Another program is executed by the CPU 1a, and Prog1
It is assumed that (a) is in a state of waiting for an empty CPU. After that, CPU1b is empty, Prog1 (a) is CPU1b
When the execution right is obtained and the execution is resumed on the CPU 1b, the memory access of the CPU 1b is performed in the same manner as before the execution is suspended because all the data of Prog1 (a) is in the shared memory. In the conventional example of FIG. 2, all data is stored in the shared memory 2, and all CPUs access all data from one shared memory.
The frequency of use of the address data bus increases. for that reason,
When the number of CPUs increases or a program that processes a large amount of data is simultaneously executed by a plurality of processors, the transfer speed of the address data bus cannot keep up with the execution speed of the CPU, and the CPU waits for the address data bus to become free. Longer and less efficient.

【0007】図3の従来例はこのような状況を改善する
ために、タスクが固有に使用するローカルデータは各C
PUに接続されたローカルメモリに記憶させ、アドレス
データバスを使わずにアクセスできるようにし、タスク
間で共通に使用するデータのみを共有メモリ2に置くこ
とによって、アドレスデータバスの使用頻度を少なくす
るものである。
In the conventional example of FIG. 3, in order to improve such a situation, the local data uniquely used by the task is each C
The frequency of use of the address data bus is reduced by storing it in the local memory connected to the PU so that it can be accessed without using the address data bus and by placing only the data commonly used between tasks in the shared memory 2. It is a thing.

【0008】図3の従来例の場合の動作を説明する。C
PU1a上でProg1(a)の実行が開始されると、
Prog1(a)のデータがローカルデータはCPU1
aに隣接して設けられた共有メモリ5a上に記憶され、
共有データは共有メモリ2上に記憶される。このとき、
CPU1aが必要なデータをアクセスする場合、そのデ
ータがローカルデータならば、ローカルメモリ5aから
直接データをアクセスし、アクセスするデータが共有デ
ータならば、CPU1aは制御信号バス3bにバス要求
信号を出す。バス制御回路4はその信号を受け取り、他
のCPUがアドレスデータバス3aを使っているかどう
か調べる。他のCPUがアドレスデータバス3aを使っ
ていなければバス制御回路4はCPU1aに対してバス
の使用許可信号をだす。CPU1aはバスの使用許可信
号を受け取ると、アドレスデータバス3aにデータのア
ドレスを出し、主記憶装置2のデータにアクセスする。
他のCPUがアドレスデータバス3aを使っている場合
にはCPU1aはアドレスデータバス3aが空くまで待
ち、アドレスデータバス3aが空いたら、アドレスデー
タバス3aにデータのアドレスを出し、主記憶装置2の
データにアクセスする。
The operation of the conventional example shown in FIG. 3 will be described. C
When execution of Prog1 (a) is started on PU1a,
The data of Prog1 (a) is the local data of CPU1.
a is stored on a shared memory 5a provided adjacent to a,
The shared data is stored in the shared memory 2. At this time,
When the CPU 1a accesses necessary data, if the data is local data, the data is directly accessed from the local memory 5a, and if the data to be accessed is shared data, the CPU 1a issues a bus request signal to the control signal bus 3b. The bus control circuit 4 receives the signal and checks whether another CPU is using the address data bus 3a. If another CPU is not using the address data bus 3a, the bus control circuit 4 issues a bus use permission signal to the CPU 1a. When the CPU 1a receives the bus use permission signal, it issues the address of the data to the address data bus 3a and accesses the data in the main memory device 2.
When another CPU is using the address data bus 3a, the CPU 1a waits until the address data bus 3a becomes free, and when the address data bus 3a becomes free, outputs the address of the data to the address data bus 3a, Access the data.

【0009】次にProg1(a)が休止状態に入り、
CPU1aでは他のプログラムが実行され、Prog1
(a)が空きCPU待ちの状態になったとする。その
後、CPU1bが空き、Prog1(a)がCPU1b
上での実行権を得、CPU1b上で実行を再開した場合
のCPU1bのメモリアクセスは、共有データに関して
は共有メモリ2上に記憶されているため、実行を休止す
る前と同様に行なわれる。しかし、ローカルデータにア
クセスする場合は、Prog1(a)のローカルデータ
は実行を休止する前に実行されていたCPU1aに接続
されたローカルメモリ5a上に記憶されているため、C
PU1bが空いた場合でもProg1(a)はCPU1
aが空くまで待ち続ける。そして、CPU1aが空いた
らCPU1a上で実行を再開して、ローカルメモリ5a
からデータをアクセスするか、あるいは、CPU1bで
実行を再開し、ローカルメモリ5aから、ローカルメモ
リ5bにデータを転送してから、ローカルメモリ5b上
のメモリにアクセスする。
Next, Prog1 (a) enters the rest state,
Another program is executed by the CPU 1a, and Prog1
It is assumed that (a) is in a state of waiting for an empty CPU. After that, CPU1b is empty, Prog1 (a) is CPU1b
When the execution right is obtained and the execution is resumed on the CPU 1b, the memory access of the CPU 1b is performed in the same manner as before the execution is suspended because the shared data is stored in the shared memory 2. However, when the local data is accessed, the local data of Prog1 (a) is stored in the local memory 5a connected to the CPU 1a that was being executed before the execution was paused, and therefore C
Prog1 (a) is CPU1 even if PU1b is empty
Continue to wait until a becomes available. When the CPU 1a becomes available, the execution is resumed on the CPU 1a and the local memory 5a
From the local memory 5a, or the CPU 1b restarts the execution, transfers the data from the local memory 5a to the local memory 5b, and then accesses the memory on the local memory 5b.

【0010】[0010]

【発明が解決しようとする課題】従来の、マルチプロセ
ッサシステムにおけるメモリアクセス装置は以上のよう
に構成されているので、図2の従来例の場合、主記憶装
置2へのアクセスがそれほど頻繁に起らないときはアド
レスデータバス3aを他のCPUが使っていない確率の
方が高い。このためメモリバスの使用許可を得るために
待たされることはあまりない。しかし、CPUの数が多
い場合や、複数のCPUが速に大量のデータを処理する
ような場合には主記憶装置2に対するアクセスが頻繁に
起るため、アドレスデータバス3aの使用頻度が高くな
る。このためメモリバスの使用許可を得るために待たさ
れる確率が高くなり、性能が低下するという課題があっ
た。
Since the conventional memory access device in the multiprocessor system is configured as described above, in the case of the conventional example of FIG. 2, access to the main memory device 2 occurs so frequently. If not, there is a higher probability that the address data bus 3a is not used by another CPU. Therefore, it is not often necessary to wait for the permission to use the memory bus. However, when the number of CPUs is large or when a plurality of CPUs process a large amount of data at a high speed, the main memory device 2 is frequently accessed, so that the frequency of use of the address data bus 3a increases. .. Therefore, there is a problem in that the probability of waiting for obtaining permission to use the memory bus increases, and the performance decreases.

【0011】また、図3の従来例の場合、ローカルなデ
ータをプロセッサのローカルメモリにおくことにより、
図2の従来例よりはアドレスデータバスの使用頻度を押
えることができる。しかし、タイムシェアリングシステ
ムにおいては、一度休止したタスクが再実行される時
に、休止前に使用していたローカルデータが記憶されて
いるプロセッサでしか再実行できない場合は、たとえ他
のプロセッサが稼動できる状態でも、もとのプロセッサ
が空くまで待ち続けなければならず、プロセッサの負荷
に偏りができて効率が悪くなる。また、一度休止したタ
スクが再実行される時に、休止前に使用していたローカ
ルデータが記憶されているプロセッサ以外でも実行でき
る場合でも、休止する前に実行されていたプロセッサの
ローカルメモリから再実行するプロセッサのローカルメ
モリへデータをコピーする必要が生じるため、効率が悪
くなるという課題があった。
Further, in the case of the conventional example of FIG. 3, by placing local data in the local memory of the processor,
The frequency of use of the address data bus can be suppressed as compared with the conventional example of FIG. However, in a time-sharing system, when a task that has once been paused is re-executed, if it can be re-executed only by the processor that stores the local data that was used before the pause, another processor can operate. Even in the state, it is necessary to keep waiting until the original processor becomes free, and the load on the processor is biased, resulting in poor efficiency. Also, when a task that was once paused is re-executed, it can be re-executed from the local memory of the processor that was executing before sleep even if it can be executed by a processor other than the one that stores the local data that was used before sleep. There is a problem in that the efficiency becomes poor because it is necessary to copy the data to the local memory of the processor.

【0012】この発明は上記のような課題を解消するた
めになされたもので、タイムシェアリングシステムで動
作するマルチプロセッサシステム上で、並列処理を行う
時に、メモリバスの負荷を軽減し、各プロセッサの負荷
の偏りや、ローカルメモリ間のデータの転送をなくし、
効率の良いメモリアクセスが可能な装置を得ることを目
的とする。
The present invention has been made to solve the above problems, and reduces the load on the memory bus when performing parallel processing on a multiprocessor system operating in a time sharing system to reduce the load on each processor. Eliminates load imbalance and data transfer between local memories,
An object is to obtain a device capable of efficient memory access.

【0013】[0013]

【課題を解決するための手段】この発明に係るメモリ制
御装置は、プロセッサが共有する主記憶装置と、各プロ
セッサと主記憶装置とを結ぶデータバス1の他に、各プ
ロセッサがそれぞれアクセスするローカルデータ用メモ
リと、各プロセッサとローカルデータ用メモリとを結ぶ
別の複数のデータバス2を設け、プロセッサ間で共通に
使用する共有データは主記憶装置に、各プロセッサがも
っぱら使用するデータはローカルデータ用メモリに記憶
し、さらにこのローカルデータ用メモリは各プロセッサ
からアクセスできる構成とした。
A memory control device according to the present invention includes a main memory device shared by processors, a data bus 1 connecting each processor and the main memory device, and a local memory accessed by each processor. A data memory and a plurality of separate data buses 2 for connecting each processor and a local data memory are provided. Shared data commonly used by the processors is stored in the main storage device, and data exclusively used by each processor is the local data. It is stored in a memory for local data, and the memory for local data can be accessed by each processor.

【0014】[0014]

【作用】この発明におけるメモリ制御装置は、各プロセ
ッサが共有データをアクセスする時はそのために設けら
れた主記憶装置をアクセスし、各プロセッサがもっぱら
使用するデータをアクセスする時はローカルデータ用メ
モリを別のデータバス2経由でアクセスするよう制御す
る。
In the memory control device according to the present invention, when each processor accesses the shared data, the main storage device provided for the shared data is accessed, and when each processor exclusively accesses the data, the local data memory is used. The access is controlled via another data bus 2.

【0015】[0015]

【実施例】【Example】

実施例1.以下、この発明の一実施例を図について説明
する。図1は、この発明の一実施例を示す構成図であ
る。図1において、1a、1b、1c、1dはそれぞれ
CPUを示し、2a、2bは主記憶装置であり、2bは
多重ポートメモリで構成されている。主記憶装置2aに
は共有データ、多重ポートメモリ2bにはローカルデー
タが記憶される。3aは、CPU1a、1b、1c、1
dと主記憶装置2aとの間でデータ及び、アドレスの転
送を行なうアドレスデータバスである。3bは、CPU
1a、1b、1c、1dとバス制御回路4との間でバス
の獲得のための制御信号の転送をする制御信号バスであ
る。3cは、CPU1a、1b、1c、1dと主記憶装
置2bとの間でデータ及び、アドレスの転送を行なうた
めに新らしく設けたアドレスデータバスであり、3は、
アドレスデータバス3a、3cと制御信号バス3bから
なるメモリバスを表している。また4は、どのCPUが
アドレスデータバス3aを使うかを制御するバス制御回
路である。
Example 1. An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of the present invention. In FIG. 1, reference numerals 1a, 1b, 1c, and 1d denote CPUs, 2a and 2b are main storage devices, and 2b is a multiport memory. Shared data is stored in the main memory 2a and local data is stored in the multi-port memory 2b. 3a is a CPU 1a, 1b, 1c, 1
An address data bus for transferring data and addresses between d and the main storage device 2a. 3b is a CPU
It is a control signal bus for transferring a control signal for bus acquisition between 1a, 1b, 1c, 1d and the bus control circuit 4. Reference numeral 3c is an address data bus newly provided for transferring data and addresses between the CPUs 1a, 1b, 1c, 1d and the main storage device 2b.
A memory bus including address data buses 3a and 3c and a control signal bus 3b is shown. A bus control circuit 4 controls which CPU uses the address data bus 3a.

【0016】多重ポートメモリは複数のメモリポートを
持ち、複数のメモリバスと接続できる。そしてその構造
上からも、メモリからの読出しはすべてのメモリバスか
ら同時読出しが出来る。メモリへの書き込みは、それぞ
れのメモリバスから異なるアドレスへの同時書き込みは
可能である。勿論、同じメモリアドレスに同時に書き込
みは出来ず、どれかのメモリバスから選択して書き込む
ことになる。本発明においては、図1の接続となってい
て、それぞれのローカルメモリへの書き込みは異なるア
ドレスであり、読み出しはプログラム毎なので、異なる
プロセッサが異なるバスを使って同時に読出すことはな
く、あるプログラムについてはどれか一つのプロセッサ
からのアクセスしかない。このように、多重ポートメモ
リは複数のプロセッサの保護のもとに、それぞれのアド
レス領域を参照することが出来る。
The multi-port memory has a plurality of memory ports and can be connected to a plurality of memory buses. Due to its structure, reading from the memory can be performed simultaneously from all the memory buses. As for writing to the memory, simultaneous writing to different addresses from each memory bus is possible. Of course, it is not possible to write to the same memory address at the same time, and it is necessary to select and write from one of the memory buses. In the present invention, the connection shown in FIG. 1 is used, and writing to each local memory is performed at different addresses, and reading is performed for each program. Therefore, different processors do not simultaneously read using different buses, and a certain program For, there is only access from one of the processors. In this way, the multi-port memory can refer to each address area under the protection of a plurality of processors.

【0017】つぎに動作について説明する。この発明に
おけるメモリ制御装置は主記憶装置を2個設け、1つの
主記憶装置2aにはプロセッサ間で共通に使用する共有
データのみをアクセスさせ、もう1つの主記憶装置2b
は多重ポートメモリで構成され、各プロセッサが固有に
使うローカルデータのみをアクセスするように制御す
る。動作例として、従来例の説明とおなじ場合を説明す
る。即ち、Prog1(a)が最初にCPU1a上で実
行され、タイムシェアリングの時間が来るか、あるいは
その他の理由で、一度実行を休止し、空いているCPU
待ちの状態になる。ついで、CPU1a上では他のプロ
グラムが実行され、次に他のCPU1bが空いたため、
CPU1b上で再びProg1(a)の実行を再開する
場合について説明する。
Next, the operation will be described. The memory control device according to the present invention is provided with two main storage devices, and one main storage device 2a is made to access only shared data commonly used by processors, and the other main storage device 2b is accessed.
Is a multi-port memory, and controls each processor to access only the local data that it uses. As an operation example, a case similar to the description of the conventional example will be described. That is, the Prog1 (a) is first executed on the CPU1a, and the execution of the CPU is temporarily suspended due to the time sharing time or other reasons.
It will be in a waiting state. Then, another program is executed on the CPU 1a, and the other CPU 1b becomes free next time.
A case where the execution of Prog1 (a) is restarted on the CPU 1b will be described.

【0018】この場合、データが共有データの場合は、
CPU1aは制御信号バス3bにバス要求信号を出す。
バス制御回路4はその信号を受け取り、他のCPUがア
ドレスデータバス3aを使っているかどうか調べる。他
のCPUがアドレスデータバス3aを使っていなければ
バス制御回路4はCPU1aに対してバスの使用許可信
号をだす。CPU1aはバスの使用許可信号を受け取る
と、アドレスデータバス3aにデータのアドレスを出
し、主記憶装置2aのデータにアクセスする。他のCP
Uがアドレスデータバス3aを使っている場合には、C
PU1aはアドレスデータバス3aが空くまで待つ。ア
ドレスデータバス3aが空いたら、アドレスデータバス
3aにデータのアドレスを出し、主記憶装置2aのデー
タにアクセスする。
In this case, if the data is shared data,
The CPU 1a issues a bus request signal to the control signal bus 3b.
The bus control circuit 4 receives the signal and checks whether another CPU is using the address data bus 3a. If another CPU is not using the address data bus 3a, the bus control circuit 4 issues a bus use permission signal to the CPU 1a. When the CPU 1a receives the bus use permission signal, it issues a data address to the address data bus 3a and accesses the data in the main memory 2a. Other CP
If U is using the address data bus 3a, then C
The PU 1a waits until the address data bus 3a becomes empty. When the address data bus 3a becomes free, the address of the data is output to the address data bus 3a to access the data in the main memory 2a.

【0019】アクセスするデータがローカルデータの場
合は、メモリとバスが共有データの場合と異なってい
る。しかも、ローカルデータを置いてある主記憶装置2
bは多重ポートメモリで構成されているので、アドレス
データバス3cの空きを調べることなく多重ポートメモ
リ2bにアクセスする。次にProg(a)が休止状態
に入り、CPU1aでは他のプログラムが実行され、P
rog1(a)が空きCPU待ちの状態になったとす
る。その後、CPU1bが空き、Prog1(a)がC
PU1b上での実行権を得、CPU1b上で実行を再開
した場合のCPU1bのメモリアクセスは、Prog1
(a)のデータはローカルデータも共有データもすべて
のCPUから対等にアクセスできる主記憶装置2a、多
重ポートメモリ2b上にあるので、CPU1aの動作と
は関係なく、実行を休止する前と同様に行なわれる。つ
まり、バスの使用頻度が抑えられ、かつローカルデータ
のメモリアクセスとCPUとの関係の制約がないので処
理時間に待ちがなくなり、演算が速くなる。
When the data to be accessed is local data, it differs from the case where the memory and the bus are shared data. Moreover, the main storage device 2 in which the local data is stored
Since b is composed of a multi-port memory, the multi-port memory 2b is accessed without checking the availability of the address data bus 3c. Next, Prog (a) enters the hibernation state, another program is executed in the CPU 1a, and P
It is assumed that log1 (a) is in a state of waiting for an empty CPU. After that, CPU1b is empty, Prog1 (a) is C
When the execution right on the PU 1b is obtained and the execution is restarted on the CPU 1b, the memory access of the CPU 1b is
Since the data in (a) is on the main storage device 2a and the multi-port memory 2b where both the local data and the shared data can be equally accessed by all the CPUs, it is the same as before the execution is suspended regardless of the operation of the CPU 1a. Done. That is, the frequency of use of the bus is suppressed, and there is no restriction on the relationship between the memory access of local data and the CPU, so that there is no waiting time in the processing time, and the operation speed becomes faster.

【0020】実施例2.上記実施例ではCPU数が4つ
のマルチプロセッサ構成で、主記憶装置の分割数を2つ
にした場合の例を示したが、CPU数が5つ以上の場合
でも、同様のシステム構成で本発明が提示した機能を有
することが出来る。
Example 2. In the above-described embodiment, an example is shown in which the number of CPUs is four and the number of divisions of the main storage device is two. However, even when the number of CPUs is five or more, the present invention has the same system configuration. Can have the functions presented by.

【0021】実施例3.また、上記実施例ではローカル
データを置くメモリ装置に、マルチポートメモリを使用
したが、これを通常のシングルポートのメモリに置き換
えても、効率はある程度低下するが、同様の機能をもた
せることができる。この場合には、メモリバス2は1本
であるので、バス使用権の確立のためにメモリバス1と
同様の操作が必要である。この動作は共有データとメモ
リバス1の関係の部分で既に述べたのでここでは省略す
る。ローカルデータ用メモリに通常の主記憶装置と同様
構成のシングルポートのメモリを用いた場合は、バス占
有の制約だけがはたらき、プロセッサの制約は多重ポー
トメモリの場合と同様にない。
Example 3. Further, in the above-mentioned embodiment, the multi-port memory is used as the memory device for storing the local data. However, if the memory is replaced with a normal single-port memory, the efficiency is lowered to some extent, but the same function can be provided. .. In this case, since there is only one memory bus 2, the same operation as that for the memory bus 1 is required to establish the bus use right. This operation has already been described in the relation between the shared data and the memory bus 1 and will not be described here. When a single-port memory having the same configuration as a normal main memory is used as the local data memory, only the bus occupancy constraint works, and the processor constraint is not the same as in the multi-port memory.

【0022】実施例4.また、上記実施例では主記憶装
置の数を2つとしたが、主記憶装置の数を3つ以上にし
て、そのうちいくつかを共有メモリを置くための主記憶
装置として使い、残りをローカルメモリを記憶するため
の記憶装置として使うこともできる。
Example 4. Further, although the number of main storage devices is two in the above embodiment, the number of main storage devices is three or more, some of which are used as main storage devices for placing a shared memory, and the rest are local memories. It can also be used as a storage device for storing.

【0023】[0023]

【発明の効果】以上のようにこの発明によれば、各プロ
セッサが共有する主記憶装置と、プロセッサと主記憶装
置を結ぶデータバス1の他に、各プロセッサがそれぞれ
アクセスするローカルデータ用メモリと、各プロセッサ
とローカルデータ用メモリを結ぶ別のデータバス2を設
け、データによりアクセスする領域を分けたので、効率
の良いデータアクセスが可能となり、処理時間が短縮さ
れる効果がある。
As described above, according to the present invention, in addition to the main storage device shared by the processors, the data bus 1 connecting the processors and the main storage device, the local data memory accessed by each processor is provided. Since another data bus 2 that connects each processor to the local data memory is provided and the area to be accessed by data is divided, efficient data access is possible and the processing time is shortened.

【図面の簡単な説明】[Brief description of drawings]

【図1】この発明の一実施例を示す構成図である。FIG. 1 is a configuration diagram showing an embodiment of the present invention.

【図2】従来のマルチプロセッサ・システムのメモリ制
御装置の構成図である。
FIG. 2 is a configuration diagram of a memory control device of a conventional multiprocessor system.

【図3】従来のマルチプロセッサ・システムの他のメモ
リ制御装置の構成図である。
FIG. 3 is a configuration diagram of another memory control device of the conventional multiprocessor system.

【符号の説明】[Explanation of symbols]

1a、1b、1c、1d CPU 2a 主記憶装置 2b ローカルデータ用メモリ 3a データバス1 3b データバス2 1a, 1b, 1c, 1d CPU 2a Main storage device 2b Local data memory 3a Data bus 1 3b Data bus 2

Claims (1)

【特許請求の範囲】 【請求項1】 複数のプロセッサが共有する主記憶装置
と、 上記複数のプロセッサと主記憶装置を結ぶ共通のデータ
バス1と、 上記各プロセッサがそれぞれにアクセスするローカルデ
ータ用メモリと、 上記各プロセッサと上記ローカルデータ用メモリを結ぶ
上記データバス1とは別の複数のデータバス2とを設
け、 複数のプロセッサ間で共通に使用する共通データはデー
タバス1経由で上記共有する主記憶装置に、 各プロセッサがもっぱら使用するデータはデータバス2
経由で対応する上記ローカルデータ用メモリにアクセス
させる手段を備えたメモリ制御装置。
Claim: What is claimed is: 1. A main memory device shared by a plurality of processors, a common data bus 1 connecting the plurality of processors and the main memory device, and local data for each processor to access. A memory and a plurality of data buses 2 different from the data bus 1 connecting the processors to the local data memory are provided, and common data commonly used by a plurality of processors is shared via the data bus 1. The data used exclusively by each processor is the data bus 2
A memory control device comprising means for accessing the corresponding local data memory via the memory.
JP17813691A 1991-07-18 1991-07-18 Memory controller Pending JPH0528090A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17813691A JPH0528090A (en) 1991-07-18 1991-07-18 Memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17813691A JPH0528090A (en) 1991-07-18 1991-07-18 Memory controller

Publications (1)

Publication Number Publication Date
JPH0528090A true JPH0528090A (en) 1993-02-05

Family

ID=16043284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17813691A Pending JPH0528090A (en) 1991-07-18 1991-07-18 Memory controller

Country Status (1)

Country Link
JP (1) JPH0528090A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731969B1 (en) * 2005-06-28 2007-06-25 엠텍비젼 주식회사 Method and apparatus for sharing memory through a plurality of routes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731969B1 (en) * 2005-06-28 2007-06-25 엠텍비젼 주식회사 Method and apparatus for sharing memory through a plurality of routes

Similar Documents

Publication Publication Date Title
JPS5924462B2 (en) Shared memory access control method
JPH04306748A (en) Information processor
US20210200467A1 (en) Signalling for heterogeneous memory systems
KR950010529B1 (en) Memory sharing for communicaiton between processors
JP2561261B2 (en) Buffer storage access method
US6282144B1 (en) Multi-ported memory with asynchronous and synchronous protocol
JPH0528090A (en) Memory controller
US7240144B2 (en) Arbitration of data transfer requests
JPS60173655A (en) Memory system of multiprocessor
JPS6153747B2 (en)
JPH0589027A (en) Write buffer provided with monitoring function
JPH05257903A (en) Multiprocessor system
JP3219422B2 (en) Cache memory control method
JPS6257050A (en) Common memory device
JPH07160655A (en) Memory access system
JPS60134956A (en) Information processing system
JPH0351943A (en) Sharing system for high/low speed bus lines
JPS6349815B2 (en)
JP3063501B2 (en) Memory access control method
JP2976417B2 (en) Multiprocessor system
JPS6379161A (en) Semiconductor memory device
JPH04117697A (en) Multiport memory circuit
JPH05324533A (en) Dual port memory device
JPS6386062A (en) Priority control system for main memory access in multi-processor system
JPH01154272A (en) Multiprocessor device