JPH04123234A - Process scheduling system and memory control system for multiprocessor - Google Patents

Process scheduling system and memory control system for multiprocessor

Info

Publication number
JPH04123234A
JPH04123234A JP2245209A JP24520990A JPH04123234A JP H04123234 A JPH04123234 A JP H04123234A JP 2245209 A JP2245209 A JP 2245209A JP 24520990 A JP24520990 A JP 24520990A JP H04123234 A JPH04123234 A JP H04123234A
Authority
JP
Japan
Prior art keywords
processor
multiprocessor
memory
cpu
page
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
JP2245209A
Other languages
Japanese (ja)
Inventor
Shinichiro Yamaguchi
伸一郎 山口
Tadashi Kamiwaki
正 上脇
Masahiko Saito
雅彦 齊藤
Yoshiki Kobayashi
芳樹 小林
Hirokazu Kasashima
広和 笠嶋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2245209A priority Critical patent/JPH04123234A/en
Publication of JPH04123234A publication Critical patent/JPH04123234A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To improve the access speed of a processor by allowing a process scheduler to allocate respective processors to respective processes in accordance with the output of a determining means for calculating a candidate process to be executed by using process allocation information stored in a process allocation information storing means. CONSTITUTION:A process control table 50 is provided with plural process allocation information storing means 52 to 56 for storing a list of a main memory 23 having programs or data for operating respective processes and the determining means 57 for calculating a candidate process to be executed next by using the process allocation information and the process scheduler allocates a processor to the calculated process in accordance with the output of the means 57. Thereby, CPUs 20A, 20B having the most programs or data relating to the processes can be allocated to the processes. Consequently, an average memory access time can be shortened and a practical processor access speed can be improved.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、CPU (中央処理装置)に備えた共有メモ
リ型マルチプロセッサのプロセススケジューリングに係
り、特に共有メモリをそれぞれのプロセッサの近傍に分
散配置し、システム全体の性能向上を図るのに好適なマ
ルチプロセッサのプロセススケジューリング方式及びメ
モリ管理方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to process scheduling of a shared memory type multiprocessor provided in a CPU (Central Processing Unit), and in particular to distributed arrangement of shared memory near each processor. The present invention also relates to a multiprocessor process scheduling method and memory management method suitable for improving the performance of the entire system.

〔従来の技術〕[Conventional technology]

従来のマルチプロセッサのプロセススケジューリング方
式においては、計算機に要求される計算能力が益々増大
するにつれて、複数のプロセッサによって並列処理を行
うマルチプロセッサ方式が知られている。この中で複数
のプロセッサが1つのメモリを共有する共有メモリ型マ
ルチプロセッサが汎用性の高いものと言われている。
In conventional multiprocessor process scheduling methods, as the computing power required of computers continues to increase, multiprocessor methods are known in which parallel processing is performed by a plurality of processors. Among these, a shared memory type multiprocessor in which multiple processors share one memory is said to be highly versatile.

一般に共有メモリ型マルチプロセッサは、プロセッサ、
共有メモリ及びI10装置等が1つの共有バスを介して
接続されており、各プロセッサは共有バスを経由してメ
モリアクセスを行う。このため、共有バスが全体のボト
ルネックとなり易いことが知られている。そこで通常、
各プロセッサにキャッシュメモリを設けて共有バスへの
アクセス低減を行っている。
In general, shared memory multiprocessors are processors,
A shared memory, an I10 device, etc. are connected via one shared bus, and each processor accesses the memory via the shared bus. For this reason, it is known that the shared bus tends to become an overall bottleneck. So usually,
Each processor is provided with a cache memory to reduce access to the shared bus.

このキャッシュメモリは、共有バスへのアクセス低減だ
けでなく、平均メモリアクセス時間の短縮効果もあるた
め、システム性能を左右する重要な要素である。そこで
このキャッシュメモリを有効に活用するため、特開昭6
2−115567号公報等の発明がなされている。
This cache memory not only reduces access to the shared bus but also reduces the average memory access time, so it is an important element that affects system performance. Therefore, in order to make effective use of this cache memory,
Inventions such as Japanese Patent No. 2-115567 have been made.

しかしながら、キャッシュメモリは、本来、小容量・高
速メモリであり、共通バスのアクセス低減又はメモリア
クセス時間の根本的短縮を達成できることを保障するも
のではない。特にプロセッサの動作周波数が高くなって
高性能化すると、キャツシュヒツト時のペナルティが問
題となってくる。すなわち、キャツシュヒツトした時と
ミスヒツトした時のメモリアクセス時間差が大きくなっ
て、少しでもミスヒツト率が上がると平均メモリアクセ
ス時間がひどく悪化する結果を招くようになる。
However, cache memory is originally a small capacity, high speed memory, and does not guarantee that it will be possible to reduce common bus accesses or fundamentally shorten memory access time. In particular, as the operating frequency of processors increases and performance increases, the penalty at cache hit becomes a problem. That is, the difference in memory access time between a cache hit and a miss increases, and if the miss rate increases even a little, the average memory access time will deteriorate significantly.

これを解決する方式が、ローカルメモリ(分散された主
メモリ)を持ったマルチプロセッサである。一般にロー
カルメモリは、プロセッサの近傍、例えば同一プリント
板上に配置されるため、ローカルメモリアクセス時の電
気的遅延時間も少なく1、かつ共有バスを使用しないた
め、高速なメモリアクセスを保障できる。この方式の欠
点の一つは、他のローカルメモリへのアクセスが発生し
た場合、そのアクセス時間が長くなることである。これ
は、共有バスを経由して共有メモリをアクセスする通常
のマルチプロセッサと全く同じ状況と理解できる。特開
昭62−115567号公報では、キャッシュメモリの
ヒツト率を高めるためのソフトウェアの改良点を示して
いるが、ローカルメモリを持ったマルチプロセッサにお
ける自プロセッサ用ローカルメモリへアクセスを集中さ
せる方式については考慮されていなかった。
The solution to this problem is a multiprocessor with local memory (distributed main memory). Generally, local memory is placed near the processor, for example on the same printed board, so the electrical delay time when accessing the local memory is small1, and since a shared bus is not used, high-speed memory access can be ensured. One of the drawbacks of this method is that when access to other local memories occurs, the access time becomes longer. This can be understood to be exactly the same situation as a normal multiprocessor that accesses shared memory via a shared bus. Japanese Patent Application Laid-Open No. 62-115567 describes improvements to software for increasing the cache memory hit rate, but does not discuss a method for concentrating access to the local memory of its own processor in a multiprocessor with local memory. It wasn't taken into account.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

従来のマルチプロセッサのプロセススケジューリング方
式にあっては、キャッシュメモリを使用してもミスヒツ
ト率が上ってメモリアクセス時間が悪化したり、他のロ
ーカルメモリへのアクセス時間が長くなったり、または
自プロセッサ用ローカルメモリへのアクセスを集中させ
る方式について考慮されていない等の問題点があった。
In conventional multiprocessor process scheduling methods, even if cache memory is used, the miss rate increases and memory access time deteriorates, access time to other local memory becomes longer, or the self-processor There were problems such as no consideration was given to a method for concentrating access to local memory.

本発明の目的は、分散された主メモリを有する各プロセ
ッサが、実行するプログラム又はデータをできる限り分
散された主メモリ内に納まるように、プログラムを配置
したマルチプロセッサのプロセススケジューリング方式
及びメモリ管理方式を提供することにある。
An object of the present invention is to provide a process scheduling method and a memory management method for a multiprocessor in which programs are arranged so that each processor having a distributed main memory stores programs or data to be executed within the distributed main memory as much as possible. Our goal is to provide the following.

また本発明の他の目的は、それぞれのプロセッサで実行
するプログラム又はデータをできる限り分散された主メ
モリ内に納まるように、システムに要求できるインター
フェイスを持ったスケジューラを提供することにある。
Another object of the present invention is to provide a scheduler having an interface that can request a system to store programs or data to be executed by each processor in distributed main memories as much as possible.

そして本発明の他の目的は、他のプロセッサの有する主
メモリをアクセスした時これを検出し、一定量のメモリ
を他のプロセッサの主メモリから。
Another object of the present invention is to detect when the main memory of another processor is accessed, and to extract a certain amount of memory from the main memory of the other processor.

自プロセッサの主メモリに一括転送して、以後共有バス
を経由した他のプロセッサの主メモリへのアクセスが発
生しないようにするメモリ管理方式を提供することにあ
る。
An object of the present invention is to provide a memory management method that performs bulk transfer to the main memory of its own processor and prevents access to the main memory of other processors via a shared bus thereafter.

〔課題を解決するための手段〕[Means to solve the problem]

前記の目的を達成するために、本発明に係るマルチプロ
セッサのプロセススケジューリング方式は、複数のプロ
セッサと、それぞれのプロセッサに共有される主メモリ
とよりなる複数のCPUを備え、それぞれのプロセッサ
は、内設するプロセッサと他のプロセッサとの間を接続
する通信路を経由して互いのメモリをアクセス自在とし
、プロセススケジューラがプロセス管理テーブルに従っ
て実行可能状態のプロセスにいずれかのプロセッサを割
り当てるマルチプロセッサのプロセススケジューリング
方式において、プロセス管理テーブルは、それぞれのプ
ロセスを動作させるプログラム又はデータを有する主メ
モリのリストを格納するプロセス割り当て情報格納手段
と、そのプロセス割り当て情報を用いて次に実行すべき
候補プロセスを算出する決定手段とを有し、決定手段の
出力に従ってプロセススケジューラがプロセスにプロセ
ッサを割り当てる構成とする。
In order to achieve the above object, a multiprocessor process scheduling method according to the present invention includes a plurality of CPUs each consisting of a plurality of processors and a main memory shared by each processor, and each processor has an internal memory. A multiprocessor process in which each processor can freely access each other's memory via a communication path connecting the processor and other processors, and a process scheduler assigns any processor to a process in an executable state according to a process management table. In the scheduling method, the process management table includes a process allocation information storage means that stores a list of main memory containing programs or data for operating each process, and a process allocation information that calculates a candidate process to be executed next. and determining means, and the process scheduler allocates processors to processes according to the output of the determining means.

そしてプロセス割り当て情報格納手段は、それぞれのC
PU内の主メモリにマツピングされかつそれぞれのプロ
セスに用いるページ数を、それぞれのCPUごとに格納
しである構成である。
The process allocation information storage means is for each C
The configuration is such that the number of pages mapped to the main memory within the PU and used for each process is stored for each CPU.

また、決定手段は、プロセススケジューラが動作中のC
PU内の主メモリにプログラム又はデータの全てが保持
されている実行可能プロセスを候補として算出する構成
である。
Further, the determining means is the C in which the process scheduler is operating.
This configuration calculates executable processes whose programs or data are all held in the main memory within the PU as candidates.

さらに、決定手段は、プロセススケジューラが動作中の
CPU内の主メモリに最も多くのプログラム又はデータ
が保持されている実行可能プロセスを候補として算出す
る構成でもよい。
Furthermore, the determining means may be configured such that the process scheduler calculates as a candidate an executable process in which the largest number of programs or data are held in the main memory of the CPU in operation.

そして、複数のプロセッサと、それぞれのプロセッサに
共有される主メモリとよりなる複数のCPUを備え、そ
れぞれのプロセッサは、内設するプロセッサと他のプロ
セッサとの間を接続する通信路を経由して互いのメモリ
をアクセス自在とし、プロセススケジューラがプロセス
管理テーブルに従って実行可能状態のプロセスにいずれ
かのプロセッサを割り当てるマルチプロセッサのプロセ
ススケジューリング方式において、プロセス管理テーブ
ルは、それぞれのプロセスに割り当てるプロセッサを予
め指定するプロセス割り当て情報格納手段と、そのプロ
セス割り当て情報を用いて次に実行すべき候補プロセス
を算出する決定手段とを有し、決定手段の出力に従って
プロセススケジューラがプロセスにプロセッサを割り当
てる構成でもよい。
It is equipped with a plurality of CPUs consisting of a plurality of processors and a main memory shared by each processor. In a multiprocessor process scheduling method in which mutual memory is freely accessible and a process scheduler assigns any processor to a process in an executable state according to a process management table, the process management table specifies in advance the processor to be assigned to each process. The present invention may be configured to include a process allocation information storage means and a determining means for calculating a candidate process to be executed next using the process allocation information, and a process scheduler allocates a processor to a process according to the output of the determining means.

また、プロセス割り当て情報格納手段は、それぞれのプ
ロセスに割り当てるプロセッサの識別子を保持している
構成である。
Further, the process allocation information storage means is configured to hold identifiers of processors allocated to each process.

さらに決定手段は、プロセススケジューラが動作中のプ
ロセッサを指定している実行可能なプロセスを候補とし
て算出する決定手段は、プロセススケジューラが動作中
のプロセッサを指定している実行可能なプロセスを候補
として算出する構成でもよい。
Further, the determining means calculates as candidates an executable process for which the process scheduler specifies a running processor.The determining means calculates as a candidate an executable process for which the process scheduler specifies a running processor. A configuration may also be used.

そして複数のプロセッサと、それぞれのプロセッサに共
有される主メモリとよりなる複数のCPUを備え、それ
ぞれのCPUは、内設するプロセッサと他のプロセッサ
との間を接続する通信路を経由して互いのメモリをアク
セス自在とするマルチプロセッサのメモリ管理方式にお
いては、他のCPUの主メモリをアクセスしたことを検
出してアクセスを発生したCPUのプロセッサに通知す
る外部アクセス検出手段と、外部アクセス検出手段の出
力をオペレーティングシステムに伝達する伝達手段と、
伝達手段の出力に従ってアクセス対象領域のページを自
CPU内の主メモリに転送するページ転送手段とを有す
る構成とする。
It is equipped with a plurality of CPUs consisting of a plurality of processors and a main memory shared by each processor, and each CPU can communicate with each other via a communication path connecting the internal processor and other processors. In a memory management system for a multiprocessor that allows access to the memory of another CPU, an external access detection means detects that the main memory of another CPU is accessed and notifies the processor of the CPU that has generated the access, and an external access detection means a communication means for communicating the output of the to the operating system;
and page transfer means for transferring the page of the access target area to the main memory within its own CPU in accordance with the output of the transfer means.

そして外部アクセス検出手段は、ページ転送手段の動作
中に外部アクセスの検出を行わない構成である。
The external access detection means is configured not to detect external access while the page transfer means is operating.

また、ページ転送手段は、アクセス対象領域のページを
有するCPUにアクセス対象領域を無効化する要求を発
し、CPUは、要求に従ってアクセス対象領域の有効フ
ラグを落す構成である。
Further, the page transfer means is configured to issue a request to invalidate the access target area to the CPU that has the page of the access target area, and the CPU drops the valid flag of the access target area in accordance with the request.

さらに、伝達手段は、アクセス対象領域のページ管理テ
ーブルの伝達許可フラグが有効な場合にかぎり動作する
構成である。
Furthermore, the transmission means is configured to operate only when the transmission permission flag of the page management table of the access target area is valid.

〔作用〕[Effect]

本発明のマルチプロセッサのプロセススケジューリング
方式によれば、メモリ管理の最小単位であるページに対
して、どのプロセッサのメモリに属しているかの識別子
を付したため、プロセスのスケジューリングを行うスケ
ジューラがこれを解釈して、次に実行しようとするプロ
セスに関するページをすべて有するか、あるいは最も多
く有するプロセッサをこのプロセスに割り当てる。
According to the multiprocessor process scheduling method of the present invention, each page, which is the smallest unit of memory management, is given an identifier indicating which processor's memory it belongs to, so that the scheduler that schedules processes can interpret this. Then, the processor that has all or the most pages for the next process to be executed is assigned to this process.

そしてメモリアクセス時にこのアクセスが自プロセッサ
内メモリに対するものか否かを検出する手段を設けたた
め、他プロセツサ内のメモリに対するものである時は、
バスエラーとしてプロセッサに通知される。そして、プ
ロセッサは、所謂ページフォールトと似た処理を行って
、他プロセツサ内のメモリの当該ページを自プロセッサ
内のメモリの空きページに転送し、メモリアクセスを再
開する。
Then, when accessing memory, a means is provided to detect whether or not this access is to the memory in the own processor, so if the access is to the memory in another processor,
The processor is notified as a bus error. Then, the processor performs processing similar to a so-called page fault, transfers the page in the memory in the other processor to a free page in the memory in its own processor, and resumes memory access.

〔実施例〕〔Example〕

本発明の一実施例を第1図を参照しながら説明する。 An embodiment of the present invention will be described with reference to FIG.

第1図に示すように、CPU、(中央処理装置)20は
、複数のプロセッサ21と、それぞれプロセッサ21に
共有される主メモリ(分散された主メモリ)23を有し
ている。現行の実装技術を用いれば、標準的なプリント
板1枚に実装できる程度のものであり、プロセッサ21
は、モトローラ社のMC68020等の仮想メモリを実
現できるものである。メモリ管理装置i (MMU)2
2は、仮想メモリ空間と物理メモリ空間とをページ単位
(本実施例では4KB)に分割して、これらの対応関係
を保持しかつLMS23 (分散された主メモリ)にお
かれているアドレス変換テーブルを管理する。そして、
プロセッサ21から出力される仮想アドレスをアドレス
変換テーブルに従って物理アドレスに変換し、まずキャ
ッシュメモリを検索する。また、ページに対してライト
プロテクトやその他のプロテクションがかけられていれ
ば、アドレス変換時にこれを検査し、プロテクションエ
ラー発生時には、バスエラーとして信号線25を経由し
てプロセッサ21に通知する。LMS23は、CPU2
OA内のプロセッサ21により信号線26を経由して共
有され、外部のCPU2OBからは、バス信号線28及
びバスインターフェイス装置24を経由して共有される
。バス信号線28は、通常の金属線又は光ファイバーの
ようなものでもよい。信号線27(通信路)27は、C
PU2OA、2OB間で通信を行うための信号線であり
、プロセッサのメモリ空間上にマツピングされた特定の
アドレス(図示しない)をアクセスすることにより、自
CPUから出力されている信号線27をオン状態にする
ことができる。そして自CPUに対する信号線27がオ
ンすると、バスインターフェイス24によってプロセッ
サへの割込み信号27Aに変換され、プロセッサ21に
通知される。本実施例では、CPU個別に信号線27を
設定しているが、信号線の本数を減らすためエンコ〜、
ドした形にすることも可能である。
As shown in FIG. 1, a CPU (central processing unit) 20 has a plurality of processors 21 and a main memory (distributed main memory) 23 shared by each of the processors 21. If current mounting technology is used, it can be mounted on a single standard printed circuit board, and the processor 21
can realize a virtual memory such as Motorola's MC68020. Memory management unit i (MMU) 2
2 is an address translation table that divides the virtual memory space and the physical memory space into page units (4 KB in this example), maintains the correspondence between them, and is stored in the LMS 23 (distributed main memory). Manage. and,
The virtual address output from the processor 21 is converted into a physical address according to the address conversion table, and the cache memory is first searched. Further, if write protection or other protection is applied to the page, this is checked during address conversion, and when a protection error occurs, it is notified to the processor 21 via the signal line 25 as a bus error. LMS23 is CPU2
It is shared by the processor 21 in the OA via the signal line 26, and shared by the external CPU 2OB via the bus signal line 28 and the bus interface device 24. The bus signal line 28 may be a conventional metal wire or an optical fiber. The signal line 27 (communication path) 27 is C
This is a signal line for communication between PU2OA and PU2OB, and by accessing a specific address (not shown) mapped in the memory space of the processor, the signal line 27 output from the own CPU is turned on. It can be done. When the signal line 27 to the CPU itself is turned on, it is converted into an interrupt signal 27A to the processor by the bus interface 24, and the processor 21 is notified. In this embodiment, the signal line 27 is set for each CPU, but in order to reduce the number of signal lines,
It is also possible to make it into a curved shape.

すべてのCPUに共有される主メモリ(GMS)29と
LMS23との相違は、プロセッサから見た時のアクセ
ス時間が異っている点である。1つのCPU2OA内の
プロセッサ21からLMS23へのアクセス時間が最も
速く、その次に任意のプロセッサ21から0MS29へ
のアクセス時間が速い。そして他のCPU2OBからL
MS23へのアクセス時間が最も遅い。
The difference between the main memory (GMS) 29 shared by all CPUs and the LMS 23 is that the access times seen from the processor are different. The access time from the processor 21 in one CPU2OA to the LMS 23 is the fastest, and the access time from any processor 21 to the 0MS 29 is the second fastest. And from other CPU2OB
The access time to MS23 is the slowest.

第2図は、物理メモリ空間3oにおけるLMS領域31
と0MS領域32のマツピング状態を示している。この
実メモリは4KBを1ページに分割し、一連番号31A
、31Bをつけて管理する。
FIG. 2 shows the LMS area 31 in the physical memory space 3o.
This shows the mapping state of the 0MS area 32. This real memory is divided into 1 page of 4KB, and the serial number is 31A.
, 31B and manage it.

本実施例では、各LMS領域31A、31Bが連続した
物理アドレスを割り当てられているが、将来LMS領域
が拡張されることを考えて、実装されるLMSより大き
い物理メモリ空間を予め確保しておくことも可能である
。この場合、未実装の物理メモリ空間をアクセスすると
、MMUによってメモリアクセスエラーが発生する。
In this embodiment, consecutive physical addresses are assigned to each LMS area 31A and 31B, but considering that the LMS area will be expanded in the future, a physical memory space larger than the LMS to be implemented is secured in advance. It is also possible. In this case, if an unimplemented physical memory space is accessed, a memory access error will occur due to the MMU.

第3図は、MMUが管理するアドレス変換テーブルの1
エントリーを示しており、物理メモリの1ページと1対
1に対応している。バリッドV(Valid bit)
 35は値が1の時、本エントリーが有効な値を保持し
ていることを示し、ページ番号P F N (Page
 Frarae Number) 3 Gは、本エント
リーが管理しているページの番号を示す。M(Modi
fid bit) 37は、値が1の時に本ページに書
き込みがあったことを示す。S (Superviso
rProtection) 38は、スーパーバイザモ
ード(OA用特権モード)のみのアクセスが許されてい
るか否かを示す。値が1の時にスーパーバイザだけがア
クセス可能なページであることを示している。スーパー
バイザのアクセスが否がは、図示しないプロセッサから
の出力信号線によって判別可能である。W(Write
 Protection)41は、ライトプロテクショ
ンを示すビットであり1本ビットが1であるページに対
して書き込みを行うと、ライトプロテクションエラーが
検出され、バスエラーとしてプロセッサに通知される。
Figure 3 shows one of the address translation tables managed by the MMU.
It shows an entry and corresponds one-to-one with one page of physical memory. Valid bit
35 indicates that this entry holds a valid value when the value is 1, and the page number P F N (Page
3 G indicates the number of the page managed by this entry. M (Modi
fid bit) 37 indicates that a write has been made to this page when the value is 1. S (Superviso
rProtection) 38 indicates whether access only in supervisor mode (OA privilege mode) is permitted. A value of 1 indicates that the page can only be accessed by supervisors. Whether the supervisor has accessed or not can be determined by an output signal line from a processor (not shown). W(Write
Protection) 41 is a bit indicating write protection, and when writing is performed on a page in which one bit is 1, a write protection error is detected and notified to the processor as a bus error.

RC(Refer−ence Control) 42
は、本ページに対するメモリアクセスの来歴を記録して
いるフィールドであり、ページをメモリからディスク装
置等の2次記憶に移す時の判定基準となる。
RC (Reference Control) 42
is a field that records the history of memory accesses to this page, and serves as a criterion when transferring a page from memory to secondary storage such as a disk device.

# M E M (Local Main Stora
ge Number) 43(R刷子)は、本ページが
存在しているCPUの番号を示すフィールドである。第
1図に示すMMU22は、自CPU番号を保持している
CPUID120の出力と本フィールドとを比較して、
アクセスが自CPU内のLMSに対するものか、他のC
PUのLMSに対するものかを判定し、他のCPUに対
するアクセスの時は、疑似ページフォールトを発生(後
述)して、プロセッサにバスエラーどして通知される。
#MEM (Local Main Stora
ge Number) 43 (R brush) is a field indicating the number of the CPU where this page exists. The MMU 22 shown in FIG. 1 compares this field with the output of the CPU ID 120 that holds its own CPU number.
Is the access to the LMS within its own CPU or to another CPU?
It is determined whether the access is to the LMS of the PU, and if the access is to another CPU, a pseudo page fault is generated (described later) and the processor is notified as a bus error.

但しこのフォールトは、抑止ビットI (Main S
torage Access FaultInh−ib
it) 44によって抑止可能である2本実施例では、
CPU台数が4台のため、#MEM43は3ビツトあれ
ばよく、この内○OOから100を各CPUに対応させ
、111は特別にGMSを示すものとして用いる。L 
(Page 1.ock) 45は、ページに対するア
クセスがロックされているか否かを示す。ロックされて
いる時は、ロックが解除されるまでそのページに対する
アクセスは保留される。
However, this fault is suppressed by the suppression bit I (Main S
storageAccessFaultInh-ib
it) In this example, it is possible to suppress by 44:
Since the number of CPUs is 4, #MEM43 only needs to be 3 bits, of which 00 to 100 are made to correspond to each CPU, and 111 is used to specifically indicate GMS. L
(Page 1.ock) 45 indicates whether access to the page is locked. When a page is locked, access to that page is suspended until the page is unlocked.

第4図は、MMUに含まれるバスエラー検出回路の詳細
構成図である。ANDゲート123゜ORゲート124
とFOR(排他的論理和)ゲート125とよりなる外部
アクセス検出手段及びインバータ126が図示されてい
る。アクセス識別信号121は、プロセッサから出力さ
れるリード/ライトの信号であり、CUP番号120と
選択したページテーブルエントリーの各フィールドから
得られる値39〜45とが図示されている。信号線12
2は、パリティエラー、アドレスオーバ、ページフォー
ルト等の他の要因で発生するバスエラーを伝える信号線
である。本検出回路は、プロセッサが外部メモリアクセ
スを要求し、MMUがアドレス変換を行うごとに動作す
る。そしてエラーが検出されるとバスエラー信号の伝達
手段25をオンして、プロセッサに通知し、図示しない
エラー要因フラグをオンする。
FIG. 4 is a detailed configuration diagram of a bus error detection circuit included in the MMU. AND gate 123°OR gate 124
External access detection means consisting of a FOR (exclusive OR) gate 125 and an inverter 126 are shown. The access identification signal 121 is a read/write signal output from the processor, and shows a CPU number 120 and values 39 to 45 obtained from each field of the selected page table entry. Signal line 12
A signal line 2 conveys bus errors caused by other factors such as parity errors, address overflows, and page faults. This detection circuit operates every time the processor requests external memory access and the MMU performs address translation. When an error is detected, the bus error signal transmission means 25 is turned on to notify the processor, and an error factor flag (not shown) is turned on.

第5図は、バスエラー検出回路であり、各種バスエラ〜
が検出された後のソフトウェアのエラー処理を示したフ
ローチャートである。要因判定部分131〜134は、
要因フラグを検索することで判定が完了する。ライトプ
ロテクトエラー処理135は、不正なライトアクセスの
場合は、アクセスを発生したプロセスを中断する時の処
理を行ったり、コピーオンライト方式を採る場合は、本
処理の中で新しいページの作成(コピー)を行う。
Figure 5 shows the bus error detection circuit, and shows various bus error detection circuits.
3 is a flowchart showing software error processing after detection of the error. The factor determination parts 131 to 134 are
The determination is completed by searching for the factor flag. In the case of an illegal write access, the write protect error processing 135 performs processing to interrupt the process that caused the access, or in the case of a copy-on-write method, creates a new page (copy )I do.

リードプロテクトエラー処理137が図示される。Read protection error processing 137 is illustrated.

本実施例では詳細な処理フローを記してないが、コピー
オンライト方式を採り、子プロセスが、親が実行されて
いるCPUとは別のCPUで実行された場合、共有する
ページに対して子プロセスがリードアクセスを行った時
にリードプロテクトエラーが発生する。そして、本処理
内で親プロセスが実行されているCPUのLMSより、
リードプロテクションエラーを発生したアドレスを含む
ページを転送(コピー)する。
Although the detailed processing flow is not described in this example, if the copy-on-write method is adopted and the child process is executed on a CPU different from the CPU on which the parent process is executed, the child A read protection error occurs when a process performs read access. Then, from the LMS of the CPU where the parent process is being executed within this process,
Forward (copy) the page containing the address that caused the lead protection error.

自CPU以外のLMSをアクセスした時に生じる疑似ペ
ージフォールト処理136の詳細フローを第6図に示す
。自CPU内のLMSに空きページがあるか否かを判定
する(140)。存在した場合は、疑似ページフォール
トアドレスを含むページ(転送ページ)をロック、即ち
そのページのページテーブルエントリー40のLビット
をオンする(141)。そして、プロセッサ間の第1図
に示す通信線27を使って、全プロセッサに対して、当
該ページテーブルエントリーを含むTLB(アドレス変
換バッファ)の無効化と転送ページのデータを保持する
キャッシュメモリの無効化を要求する(142)。その
後転送ページを自CPU内のLMSに転送(143)し
て、転送先のページに対応するページテーブルエントリ
ー40の内容を更新する(144)。最後に転送先ペー
ジに対応するページテーブルエントリー40のVビット
をオフして、そのページを無効化する(145)。なお
(141)〜(145)はページ転送手段を構成する。
FIG. 6 shows a detailed flow of the pseudo page fault processing 136 that occurs when an LMS other than the own CPU is accessed. It is determined whether or not there is a free page in the LMS within the own CPU (140). If it exists, the page (transfer page) containing the pseudo page fault address is locked, that is, the L bit of the page table entry 40 of that page is turned on (141). Then, using the communication line 27 shown in FIG. 1 between the processors, the TLB (address translation buffer) containing the page table entry is invalidated and the cache memory holding the data of the transferred page is invalidated for all processors. (142). Thereafter, the transfer page is transferred to the LMS within the own CPU (143), and the contents of the page table entry 40 corresponding to the transfer destination page are updated (144). Finally, the V bit of the page table entry 40 corresponding to the transfer destination page is turned off to invalidate the page (145). Note that (141) to (145) constitute a page transfer means.

一方、LMS内に空きページがなく、GMSにある場合
は、LMS用の1ページをGMSに転送(147〜15
2)して空きページを作成後、前記と同様に転送ページ
を自LMSに転送する。ここで、GMS内にも空きペー
ジがない時は、以後のアクセスで疑似ページフォールト
が頻発することを避けるため、ページテーブルエントリ
ーのエビットをオンして、フォールト発生を抑止する。
On the other hand, if there is no free page in LMS and there is one in GMS, transfer one page for LMS to GMS (147-15
2) After creating a free page, transfer the transfer page to the own LMS in the same manner as above. Here, when there is no free page in the GMS, in order to avoid frequent occurrence of pseudo page faults in subsequent accesses, the ebit of the page table entry is turned on to suppress the occurrence of faults.

以上が分散した主メモリを持つマルチプロセッサシステ
ムでのメモリ管理方式である。
The above is the memory management method for a multiprocessor system with distributed main memory.

次に最適なCPUにプロセスを割り当てる方式について
説明する。
Next, a method for allocating a process to an optimal CPU will be explained.

マルチプロセッサにおいて、プロセスに対してどのプロ
セッサを割り当てるかと言うことは、オペレーティング
システムの重要なプロセス管理上の仕事である。通常オ
ペレーティングシステムは、プロセス選択の基準となる
プロセスごとの各種データをプロセス管理テーブルと言
った形で管理する。なお、ここでプロセスと呼んでいる
のは、プロセッサを割り当てる最小単位のことであり、
同義語としてタスクがある。また、スケジューリングの
単位と言う意味では、米国カーネギ・メロン大学で開発
されたMACHと呼ばれるオペレーティングシステムで
のスレッドも同等のものと考えて良い。これの場合は、
プロセス管理テーブルをそれぞれ、タスク管理テーブル
、スレッド管理テーブルと読み替えれば良い。
In a multiprocessor, deciding which processor to allocate to a process is an important process management task for the operating system. Normally, an operating system manages various types of data for each process, which serve as criteria for process selection, in the form of a process management table. Note that the term "process" here refers to the smallest unit to which processors are allocated.
Task is a synonym. Furthermore, in the sense of a unit of scheduling, threads in an operating system called MACH developed at Carnegie Mellon University in the United States can be considered equivalent. In this case,
The process management table can be read as a task management table and a thread management table, respectively.

第7図は、プロセス管理テーブル50の内容を示したも
のである。プロセス管理テーブルには、プロセスの状態
51の他に優先度等の種々のデータが含まれるが、本実
施例では、その全てを記憶していない。52〜56はプ
ロセス割り当て情報格納手段を構成し、52は本プロセ
スで使用中のメモリの内、CPUのLMSに割り当てら
れているページ数を保持している。ここでページとは物
理メモリを4KBごとに分割したものであり、メモリ管
理の最小単位である。52〜55は、それぞれCPU2
oB〜20D内(7) L M S ニ関するものであ
り、56はGMSに関する同等の情報を保持している。
FIG. 7 shows the contents of the process management table 50. The process management table includes various data such as priority in addition to the process status 51, but in this embodiment, not all of this is stored. 52 to 56 constitute process allocation information storage means, and 52 holds the number of pages allocated to the LMS of the CPU in the memory being used by this process. Here, a page is a physical memory divided into 4 KB units, and is the minimum unit of memory management. 52 to 55 are CPU2, respectively.
(7) in oB to 20D relates to LMS, and 56 holds equivalent information regarding GMS.

決定手段57は、スケジューリングの種類を指定するフ
ィールドであり、詳細は第8図で説明する。58は、優
先度では、次に実行されるべき権利を持ちながらもスケ
ジューリング制御子57の指定により、プロセッサ割り
当てを見送った回数を保持するフィールドであり、プロ
セッサが割り当てられるごとに、0に再設定する。
The determining means 57 is a field for specifying the type of scheduling, and the details will be explained in FIG. 8. 58 is a field that holds the number of times processor allocation was postponed due to the specification of the scheduling controller 57 even though it had the right to be executed next in terms of priority, and is reset to 0 every time a processor is allocated. do.

59は、見送りカウンタの上限値を示すフィールドであ
る。60は、本プロセッサに割り当てるプロセッサの指
定を行うフィールドであり、本フィールドを使用するか
否かは、スケジューリング制御子57で決まる。
59 is a field indicating the upper limit value of the send-off counter. 60 is a field for specifying a processor to be assigned to this processor, and whether or not this field is used is determined by the scheduling controller 57.

これらの各フィールートにプログラムから任意の値を設
定するシステムコールのフローを第9図に示す、、70
〜72でそれぞれ引数の値を要求プロセッサ番号60、
スケジューリング制御子57、見送りカウンタしきい値
59に設定する。なお、システムコールを発行しないと
きは、スケジューリング制御子57等の値は、子プロセ
スに継承される。
Figure 9 shows the system call flow for setting arbitrary values to each of these feel routes from a program.
~72 requests the value of the argument respectively Processor number 60,
The scheduling controller 57 and send-off counter threshold value 59 are set. Note that when no system call is issued, the values of the scheduling controller 57 and the like are inherited by the child process.

第8図にスケジューリング制御子(決定手段)の詳細を
示す。制御コードOは、従来型のスケジューリングを要
求するものである。即ち現時点で最も優先度の高いプロ
セスを次に実行するプロセスとして、プロセッサを与え
るものである。制御コード1〜7の意味は、それぞれ第
8図に示す通りである。ここで候補プロセスと言うのは
、次に実行すべきプロセスとして、実行待ちプロセスの
リストから選択したプロセスのことであり、スケジュー
リング制御子の条件に合致すれば、正式に次に実行すべ
きプロセスとしてプロセッサが与えられる。
FIG. 8 shows details of the scheduling controller (determining means). Control code O requests conventional scheduling. In other words, the process with the highest priority at the moment is given to the processor as the next process to execute. The meanings of control codes 1 to 7 are as shown in FIG. 8, respectively. Here, a candidate process is a process selected from the list of waiting processes to be executed next, and if it matches the conditions of the scheduling controller, it will be officially selected as the process to be executed next. given a processor.

第10図は、第7図に示したプロセス管理テーブルを使
ってプロセスのスケジューリングを行う時の処理フロー
を示す、まず実行可能プロセスのリストが空か否かを調
べる(10)。空なら当然何もせず終了し、実行可能プ
ロセスが発生するまで、図示しない所でアイドル状態に
なる。リストが空でない時は、最も優先度の高いプロセ
スを候補プロセスとして選択する(11)。そして、ス
ケジューリング制御子に従って、候補プロセスを検査し
て(12)(後述)、条件に合っている;ら次に実行す
るプロセスとして、本スヶジューングプログラムを実行
しているプロセッサを与;る。また条件に合わない時は
、見送りカウンタ(インクリメントした後、次の候補プ
ロセスを退去する。第11図から第14図に、候補プロ
セス。
FIG. 10 shows a processing flow when scheduling processes using the process management table shown in FIG. 7. First, it is checked whether the list of executable processes is empty (10). If it is empty, it naturally ends without doing anything and remains in an idle state (not shown) until an executable process is generated. When the list is not empty, the process with the highest priority is selected as a candidate process (11). Then, according to the scheduling controller, the candidate process is inspected (12) (described later), and if it meets the conditions, the processor executing this scheduling program is designated as the next process to be executed. . If the conditions are not met, the send-off counter is incremented and then the next candidate process is exited. FIGS. 11 to 14 show candidate processes.

検査の詳細フローを示す。制御コードが0の時化直ちに
ディスパッチ要求フラグ(即ちプロセッヵ割り当て要求
フラグ)をオンする。本フラグがオンした場合、候補プ
ロセスが条件に合ったと判淀される(90)。制御コー
ドがO以外の時は、それぞれの判定処理を行う(82,
83,84゜86.87,88)。第12図にスケジュ
ーリング制御子コードが1又は5の場合を示す。この場
合、候補プロセスに割り当てられているメモリノ全てが
、本LMS又はGMSに存在する時が(9o)、あるい
は、これらの条件に合わないため、アマりにも長く待た
されて見送り回数がしきい値を超えた時に(92)、デ
ィスパッチ要求フラグがオンされ(91)、その他の時
は、ディスパッチが見られる(93)。制御コートが2
又は6.3又は7の場合も第13.14図に示すように
、第12図とほぼ同し処理を行う。
The detailed flow of the inspection is shown. When the control code is 0, the dispatch request flag (ie, processor allocation request flag) is immediately turned on. If this flag is turned on, it is determined that the candidate process meets the conditions (90). When the control code is other than O, the respective determination processing is performed (82,
83, 84° 86. 87, 88). FIG. 12 shows a case where the scheduling control code is 1 or 5. In this case, all the memory nodes allocated to the candidate process exist in this LMS or GMS (9o), or because these conditions are not met, the number of times the candidate process is turned off is reached the threshold. When the value is exceeded (92), the dispatch request flag is turned on (91), and at other times, dispatch is seen (93). 2 control coats
Alternatively, in the case of 6.3 or 7, as shown in FIG. 13.14, almost the same processing as in FIG. 12 is performed.

このようなスケジューリングを行うことにより、最も多
くデータを持つCPUを、プロセスに割り当てることが
可能となり、メモリアクセス時間の短縮、バス負荷の低
減を行うことができる。
By performing such scheduling, it is possible to allocate the CPU with the most data to the process, thereby shortening memory access time and reducing bus load.

〔発明の効果〕〔Effect of the invention〕

本発明のマルチプロセッサのスケジューリング方式によ
れば、プロセスに関するプログラムあるいはデータを最
も多く有するCPUを、プロセスに割り当てることがで
きるため、平均メモリアクセス時間の短縮が可能となり
、実質的なプロセッサのアクセス速度が向上する。また
バス負荷を軽減できるため、システム全体のボトルネッ
クを解消して、性能を向上できる効果がある。
According to the multiprocessor scheduling method of the present invention, the CPU that has the most programs or data related to the process can be assigned to the process, which makes it possible to shorten the average memory access time and increase the actual access speed of the processor. improves. Additionally, since the bus load can be reduced, bottlenecks in the entire system can be eliminated and performance can be improved.

また本発明によれば、プログラムの実行につれて、他の
CPU内のデータを自CPUに転送できるため、次第に
性能を向上させる効果がある。
Further, according to the present invention, as the program is executed, data in other CPUs can be transferred to the own CPU, which has the effect of gradually improving performance.

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

第1図は本発明の一実施例を示す構成図、第2図は物理
空間メモリを示す図、第3図はアドレス変換テーブルの
1エントリーを示す図、第4図はバスエラー検出回路を
示す構成図、第5図は第4図のフローを示す図、第6図
は疑似ページフォールト処理のフローを示す図、第7図
はプロセス管理テーブルの内容を示す図、第8図はスケ
ジューリング制御子の内容を示す図、第9図はシステム
コールのフローを示す図、第10図は第7図の処理フロ
ーを示す図、第11図〜第14図は候補プロセスの検査
フローを示す図である。 20A、20B−=CPU(中央処理装置)21・・・
プロセッサ、 22・・・MMU(メモリ管理装置)、23・・・LM
S27・・・通信路、29・・・GMS (主メモリ)
FIG. 1 is a block diagram showing an embodiment of the present invention, FIG. 2 is a diagram showing a physical space memory, FIG. 3 is a diagram showing one entry of an address translation table, and FIG. 4 is a bus error detection circuit. Configuration diagram, Figure 5 shows the flow of Figure 4, Figure 6 shows the flow of pseudo page fault processing, Figure 7 shows the contents of the process management table, and Figure 8 shows the scheduling controller. FIG. 9 is a diagram showing the flow of system calls, FIG. 10 is a diagram showing the processing flow of FIG. 7, and FIGS. 11 to 14 are diagrams showing the inspection flow of candidate processes. . 20A, 20B-=CPU (central processing unit) 21...
Processor, 22...MMU (memory management unit), 23...LM
S27...Communication path, 29...GMS (main memory)
.

Claims (1)

【特許請求の範囲】 1、複数のプロセッサと、それぞれのプロセッサに共有
される主メモリとよりなる複数のCPUを備え、それぞ
れのプロセッサは、内設するプロセッサと他のプロセッ
サとの間を接続する通信路を経由して互いのメモリをア
クセス自在とし、プロセススケジューラがプロセス管理
テーブルに従って実行可能状態のプロセスにいずれかの
プロセッサを割り当てるマルチプロセッサのプロセスス
ケジューリング方式において、プロセス管理テーブルは
、それぞれのプロセスを動作させるプログラム又はデー
タを有する主メモリのリストを格納するプロセス割り当
て情報格納手段と、そのプロセス割り当て情報を用いて
次に実行すべき候補プロセスを算出する決定手段とを有
し、該決定手段の出力に従って前記プロセススケジュー
ラがプロセスにプロセッサを割り当てることを特徴とす
るマルチプロセッサのプロセススケジューリング方式。 2、プロセス割り当て情報格納手段は、それぞれのCP
U内の主メモリにマツピングされかつそれぞれのプロセ
スに用いるページ数を、それぞれのCPUごとに格納し
てあることを特徴とする請求項1記載のマルチプロセッ
サのプロセススケジューリング方式。 3、決定手段は、プロセススケジューラが動作中のCP
U内の主メモリにプログラム又はデータの全てが保持さ
れている実行可能プロセスを候補として算出することを
特徴とする請求項1記載のマルチプロセッサのプロセス
スケジューリング方式。 4、決定手段は、プロセススケジューラが動作中のCP
U内の主メモリに最も多くのプログラム又はデータが保
持されている実行可能プロセスを候補として算出するこ
とを特徴とする請求項1記載のマルチプロセッサのプロ
セススケジューリング方式。 5、複数のプロセッサと、それぞれのプロセッサに共有
される主メモリとよりなる複数のCPUを備え、それぞ
れのプロセッサは、内設するプロセッサと他のプロセッ
サとの間を接続する通信路を経由して互いのメモリをア
クセス自在とし、プロセススケジューラがプロセス管理
テーブルに従って実行可能状態のプロセスにいずれかの
プロセッサを割り当てるマルチプロセッサのプロセスス
ケジューリング方式において、プロセス管理テーブルは
、それぞれのプロセスに割り当てるプロセッサを予め指
定するプロセス割り当て情報格納手段と、そのプロセス
割り当て情報を用いて次に実行すべき候補プロセスを算
出する決定手段とを有し、該決定手段の出力に従って前
記プロセススケジューラがプロセスにプロセッサを割り
当てることを特徴とするマルチプロセッサのプロセスス
ケジューリング方式。 6、プロセス割り当て情報格納手段は、それぞれのプロ
セスに割り当てるプロセッサの識別子を保持しているこ
とを特徴とする請求項5記載のマルチプロセッサのスケ
ジューリング方式。 7、決定手段は、プロセススケジューラが動作中のプロ
セッサを指定している実行可能なプロセスを候補として
算出する決定手段は、プロセススケジューラが動作中の
プロセッサを指定している実行可能なプロセスを候補と
して算出することを特徴とする請求項5記載のマルチプ
ロセッサのプロセススケジューリング方式。 8、複数のプロセッサと、それぞれのプロセッサに共有
される主メモリとよりなる複数のCPUを備え、それぞ
れのCPUは、内設するプロセッサと他のプロセッサと
の間を接続する通信路を経由して互いのメモリをアクセ
ス自在とするマルチプロセッサのメモリ管理方式におい
て、他のCPUの主メモリをアクセスしたことを検出し
て該アクセスを発生したCPUのプロセッサに通知する
外部アクセス検出手段と、該外部アクセス検出手段の出
力をオペレーティングシステムに伝達する伝達手段と、
該伝達手段の出力に従ってアクセス対象領域のページを
自CPU内の主メモリに転送するページ転送手段とを有
することを特徴とするマルチプロセッサのメモリ管理方
式。 9、外部アクセス検出手段は、ページ転送手段の動作中
に外部アクセスの検出を行わないことを特徴とする請求
項8記載のマルチプロセッサのメモリ管理方式。 10、ページ転送手段は、アクセス対象領域のページを
有するCPUに該アクセス対象領域を無効化する要求を
発し、前記CPUは、該要求に従って前記アクセス対象
領域の有効フラグを落すことを特徴とする請求項8記載
のマルチプロセッサのメモリ管理方式。 11、伝達手段は、アクセス対象領域のページ管理テー
ブルの伝達許可フラグが有効な場合にかぎり動作するこ
とを特徴とする請求項8記載のマルチプロセッサのメモ
リ管理方式。
[Claims] 1. A plurality of CPUs consisting of a plurality of processors and a main memory shared by each processor, each processor having a connection between its internal processor and other processors. In a multiprocessor process scheduling method in which mutual memory is freely accessible via a communication path and the process scheduler allocates one of the processors to an executable process according to the process management table, the process management table A process allocation information storage means for storing a list of main memories having programs or data to be executed, and a determining means for calculating a candidate process to be executed next using the process allocation information, and an output of the determining means. A multiprocessor process scheduling method, wherein the process scheduler allocates processors to processes according to the following. 2. The process allocation information storage means stores each CP
2. The multiprocessor process scheduling system according to claim 1, wherein the number of pages mapped to the main memory in the U and used for each process is stored for each CPU. 3. The determining means is the CP on which the process scheduler is operating.
2. The multiprocessor process scheduling method according to claim 1, wherein executable processes whose programs or data are all held in the main memory of U are calculated as candidates. 4. The determining means is the CP on which the process scheduler is operating.
2. The multiprocessor process scheduling method according to claim 1, wherein an executable process whose main memory in U has the largest number of programs or data is calculated as a candidate. 5. Equipped with a plurality of CPUs consisting of a plurality of processors and a main memory shared by each processor, each processor has a communication path that connects the internal processor and other processors In a multiprocessor process scheduling method in which mutual memory is freely accessible and a process scheduler assigns any processor to a process in an executable state according to a process management table, the process management table specifies in advance the processor to be assigned to each process. The process scheduler has a process allocation information storage means and a determining means for calculating a candidate process to be executed next using the process allocation information, and the process scheduler allocates a processor to a process according to the output of the determining means. A multiprocessor process scheduling method. 6. The multiprocessor scheduling method according to claim 5, wherein the process allocation information storage means holds an identifier of a processor to be allocated to each process. 7. The determining means calculates as candidates an executable process for which the process scheduler specifies an operating processor.The determining means calculates as a candidate an executable process for which the process scheduler specifies an operating processor. 6. The multiprocessor process scheduling method according to claim 5, wherein the multiprocessor process scheduling method is calculated. 8.Equipped with a plurality of CPUs consisting of a plurality of processors and a main memory shared by each processor, each CPU has a communication path that connects the internal processor and other processors In a memory management method for a multiprocessor that allows mutual memory to be freely accessed, external access detection means detects access to the main memory of another CPU and notifies the processor of the CPU that has generated the access; a communication means for communicating the output of the detection means to the operating system;
1. A multiprocessor memory management system, comprising page transfer means for transferring pages of an access target area to a main memory within its own CPU in accordance with an output of said transfer means. 9. The multiprocessor memory management system according to claim 8, wherein the external access detection means does not detect external access while the page transfer means is operating. 10. The page transfer means issues a request to the CPU having the page of the access target area to invalidate the access target area, and the CPU drops the valid flag of the access target area in accordance with the request. The multiprocessor memory management method according to item 8. 11. The multiprocessor memory management system according to claim 8, wherein the transmission means operates only when the transmission permission flag of the page management table of the access target area is valid.
JP2245209A 1990-09-14 1990-09-14 Process scheduling system and memory control system for multiprocessor Pending JPH04123234A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2245209A JPH04123234A (en) 1990-09-14 1990-09-14 Process scheduling system and memory control system for multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2245209A JPH04123234A (en) 1990-09-14 1990-09-14 Process scheduling system and memory control system for multiprocessor

Publications (1)

Publication Number Publication Date
JPH04123234A true JPH04123234A (en) 1992-04-23

Family

ID=17130252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2245209A Pending JPH04123234A (en) 1990-09-14 1990-09-14 Process scheduling system and memory control system for multiprocessor

Country Status (1)

Country Link
JP (1) JPH04123234A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262071A (en) * 1994-03-16 1995-10-13 Toshiba Corp Data base system and load distribution control method
JP2006508459A (en) * 2002-11-29 2006-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション High-performance lock management for flash copy in n-way shared storage systems
JP2009510613A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント SPU task manager for cell processors
JP2009510611A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Cell processor method and apparatus
JP2009510614A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Cell processor method and apparatus
JP2009230764A (en) * 2009-07-06 2009-10-08 Univ Waseda Multiprocessor system
JP2010211259A (en) * 2009-03-06 2010-09-24 Nec Corp Virtual machine system, information processor, resource management method, program and recording medium
JP2010244469A (en) * 2009-04-09 2010-10-28 Ntt Docomo Inc Distributed processing system and distributed processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958552A (en) * 1982-09-28 1984-04-04 Fujitsu Ltd Slowdown control system
JPS6448164A (en) * 1987-08-19 1989-02-22 Fujitsu Ltd Processing end interrupt control system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958552A (en) * 1982-09-28 1984-04-04 Fujitsu Ltd Slowdown control system
JPS6448164A (en) * 1987-08-19 1989-02-22 Fujitsu Ltd Processing end interrupt control system

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262071A (en) * 1994-03-16 1995-10-13 Toshiba Corp Data base system and load distribution control method
JP2006508459A (en) * 2002-11-29 2006-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション High-performance lock management for flash copy in n-way shared storage systems
JP2009510613A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント SPU task manager for cell processors
JP2009510611A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Cell processor method and apparatus
JP2009510614A (en) * 2005-09-27 2009-03-12 株式会社ソニー・コンピュータエンタテインメント Cell processor method and apparatus
JP4712877B2 (en) * 2005-09-27 2011-06-29 株式会社ソニー・コンピュータエンタテインメント Task manager for parallel processors
JP2010211259A (en) * 2009-03-06 2010-09-24 Nec Corp Virtual machine system, information processor, resource management method, program and recording medium
JP2010244469A (en) * 2009-04-09 2010-10-28 Ntt Docomo Inc Distributed processing system and distributed processing method
JP2009230764A (en) * 2009-07-06 2009-10-08 Univ Waseda Multiprocessor system

Similar Documents

Publication Publication Date Title
JP6944983B2 (en) Hybrid memory management
US10552337B2 (en) Memory management and device
US10210092B1 (en) Managing cache access and streaming data
KR100403658B1 (en) Method and apparatus for selecting thread switch events in a multithreaded processor
US5659798A (en) Method and system for initiating and loading DMA controller registers by using user-level programs
US7624257B2 (en) Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads
US8521982B2 (en) Load request scheduling in a cache hierarchy
US8271989B2 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
US6871264B2 (en) System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
KR101455899B1 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
EP0239181B1 (en) Interrupt requests serializing in a virtual memory data processing system
US8572624B2 (en) Providing multiple quiesce state machines in a computing environment
US9063794B2 (en) Multi-threaded processor context switching with multi-level cache
US11237985B2 (en) Controlling allocation of entries in a partitioned cache
JPH04123234A (en) Process scheduling system and memory control system for multiprocessor
US12019554B2 (en) Smart prefetching for remote memory
US10366013B2 (en) Caching structure for nested preemption
US20130262790A1 (en) Method, computer program and device for managing memory access in a multiprocessor architecture of numa type
CN113176950A (en) Message processing method, device, equipment and computer readable storage medium
JPH0738168B2 (en) Data processing device
JPH04332030A (en) Disk memory device