[go: up one dir, main page]

JPS5858666A - Data processor - Google Patents

Data processor

Info

Publication number
JPS5858666A
JPS5858666A JP56156193A JP15619381A JPS5858666A JP S5858666 A JPS5858666 A JP S5858666A JP 56156193 A JP56156193 A JP 56156193A JP 15619381 A JP15619381 A JP 15619381A JP S5858666 A JPS5858666 A JP S5858666A
Authority
JP
Japan
Prior art keywords
data
address
memory
cache
access
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.)
Granted
Application number
JP56156193A
Other languages
Japanese (ja)
Other versions
JPS6113261B2 (en
Inventor
Tadaaki Bando
忠秋 坂東
Yasushi Fukunaga
泰 福永
Yoshinari Hiraoka
平岡 良成
Hidekazu Matsumoto
松本 秀和
Toshiyuki Ide
井手 寿之
Takeshi Kato
猛 加藤
Tetsuya Kawakami
河上 哲也
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
Hitachi Industry and Control Solutions Co Ltd
Original Assignee
Hitachi Engineering Co Ltd
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 Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP56156193A priority Critical patent/JPS5858666A/en
Priority to US06/320,934 priority patent/US4481573A/en
Priority to CA000390161A priority patent/CA1173567A/en
Priority to EP81109719A priority patent/EP0052370B1/en
Priority to DE8181109719T priority patent/DE3176512D1/en
Publication of JPS5858666A publication Critical patent/JPS5858666A/en
Publication of JPS6113261B2 publication Critical patent/JPS6113261B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To shorten an effective memory access time, by possessing one of plural processors with a cache memory accessed by an imaginary address, and holding an address converting device in common by all processors. CONSTITUTION:In case when an I unit 43 accesses an instruction word to be executed, if its instruction word exists on an instruction cache 41, it is sent to the I unit 43 through a bus 45. Unless it exists, an imaginary address of the instruction word is sent out to a memory controller 12 through a common bus 50, the imaginary address is converted to a physical address, and a main memmory 10 is accessed through a memory bus 11. An obtained data (instruction) is sent to the instruction cache 41 and the I unit 43, and to an E unit 44, ''what to do'' is instructed. Subsequently, a necessary data is collected from a data cache 42, operate-processed, and stored in the main memory 10.

Description

【発明の詳細な説明】 本発明は複数のプロセッサが1つの主記憶装置(以下主
メモリと略称する)全共用するデータ処理装置に関する
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a data processing device in which a plurality of processors all share one main memory (hereinafter abbreviated as main memory).

ここ心複数のプロセッサのうち、少なくとも1つは、命
令を実行するために仮想アドレスでメモリアクセスを行
うプロセッサであり、ここでは、このプロセッサをジョ
ブプロセッサと称している。
At least one of the plurality of processors is a processor that accesses memory using a virtual address in order to execute instructions, and this processor is herein referred to as a job processor.

また、少なくとも1つは、補助記憶装置とも称される外
部記憶装置(以下外部メモリと略称する)との入出力を
行うために、゛仮想アドレスでメモリアクセスを行うプ
ロセッサであり、ここでは、このプロセッサをファイル
プロセッサと称している。
In addition, at least one is a processor that performs memory access using a virtual address in order to perform input/output with an external storage device (hereinafter referred to as external memory), which is also called an auxiliary storage device. The processor is called a file processor.

また、ジョブプロセッサには、仮想アドレスで、 メモ
リアクセスされるキャラツユメモリが設′けられている
The job processor is also equipped with character memory that is accessed using virtual addresses.

更に、本発明におけるデータ処理装置は、各プロセッサ
から共通に使用され、仮想アドレスを物理アドレスに変
換するアドレス変換装置を有するものである。
Further, the data processing device according to the present invention includes an address translation device that is commonly used by each processor and converts a virtual address into a physical address.

本発明は、このようなデータ処理装置において、□ファ
イルプロセッサが主メモリの内容を書き換え(ページの
ロールイン、ロールアウト)時ニ、アドレス変換テーブ
ルを更新するために生ずる問題、即チ、キャッシュメモ
リが主メモリのコピーであるという従来の考え方がくず
れることがら生ずる問題を解決するようにしたデータ処
理装置に関する。
The present invention addresses problems that occur when the file processor updates the address translation table when rewriting the contents of the main memory (page roll-in, page roll-out) in such a data processing device. The present invention relates to a data processing device that solves problems caused by the collapse of the conventional concept that memory is a copy of main memory.

まず、本発明の背景を詳細に説明する。First, the background of the present invention will be explained in detail.

1つの主メモリを複数のプロセッサが共用するデータ処
理装置は、一般にマルチプロセッサシステムと称されて
いる。
A data processing device in which one main memory is shared by multiple processors is generally referred to as a multiprocessor system.

従来のマルチプロセッサシステムでは、一般に、シング
ルコンヒュータのコスト/ハーフオーマクスを圧迫しな
い形で、マルチシステム構成を可能としてきた。そのた
め、プロセッサ台数が、2台程度では、最適な構成であ
ったが、プロセッサ台数が更に増加すると、相互の干渉
が大きくなり、ハードウェア構成が大きくなりすぎると
いう問題があった。
Conventional multiprocessor systems generally allow multisystem configuration without imposing the cost/half-over-maximum cost of a single computer. Therefore, when the number of processors is about two, it is an optimal configuration, but as the number of processors increases further, there is a problem that mutual interference increases and the hardware configuration becomes too large.

マルチプロセッサシステムにおいて、解決しなければな
らない問題の1つに仮想記憶方式がある。
One of the problems that must be solved in multiprocessor systems is the virtual memory system.

仮想記憶方式は、良く知られているが、これは、主メモ
リと外部メモリとを見掛は上、一体のものとみなし、プ
ロセッサから要求された情報が主メモリ内になく、外部
メモリにある場合には、主メモリの比較的使われていな
い一部分の情報を外部メモリに転送し、要求された情報
を外部メモリから主メモリへ転送するのを自動的にシス
テムが行うものである。           ・主メ
モリの情報を外部メモリに転送することをロールアウト
、逆に、外部メモリの情報を主メモリへ転送することを
ロールインと称している。
The well-known virtual memory system assumes that main memory and external memory are apparently one unit, and that the information requested by the processor is not located in main memory but in external memory. In some cases, the system automatically transfers information from relatively unused portions of main memory to external memory and transfers requested information from external memory to main memory. - Transferring information from main memory to external memory is called rollout, and conversely, transferring information from external memory to main memory is called rollin.

このような、ロールイン、ロールアウトの制御とは、そ
れぞれページと称される1つの単位に分割されて使用さ
れている。
Such roll-in and roll-out controls are used by being divided into units called pages.

各ページに対応して、そのページが現在主メモリ上にあ
るかどうか、またある場合は、それに対応する主メモリ
の物理アドレス(実アドレスとも称されている)がいく
らであるかの情ぎが、変換テーブル上、に置かれている
For each page, information about whether the page is currently in main memory and, if so, what the corresponding physical address (also known as the real address) in main memory is. , placed on the conversion table.

プロセッサからのメモリアクセス時のアドレスは、仮想
アドレスで与えられ、その上位アドレス部テ変換テーブ
ルが索引され、物理アドレスへの変換が行なわれる。
The address when the processor accesses the memory is given as a virtual address, and the upper address part of the address is looked up in a translation table to be translated into a physical address.

このような、変換テーブルは、仮想アドレスのページ数
分だけ必要となシ、必要なメモリ容量が大きくなシ、そ
のため、容量の削減を図ろうとして変換テーブルをセグ
メントテーブルと、ページテーブルの、ような2レベル
のアドレス変換を実施するものが多い。
Such a translation table is required for the number of virtual address pages and requires a large amount of memory. Therefore, in an attempt to reduce the capacity, the translation table is divided into a segment table and a page table. Many of them perform two-level address translation.

変換テーブルは、上記したように、メモリ容量を多く必
要とするので、一般には、・主メモリ上に置かれている
。そのため、プロセッサからのメモリアクセスがある毎
に、主メモリの阜換テーブルをチェックしていたのでは
、1つのメモリアクセス要求に、対して必ず3回以上の
メモリアクセスが発生し、オーバーヘッドが無視できな
い。
As mentioned above, the conversion table requires a large memory capacity, so it is generally placed on the main memory. Therefore, if the main memory conversion table is checked every time there is a memory access from the processor, one memory access request will always result in three or more memory accesses, and the overhead cannot be ignored. .

そこで、仮想記憶方式をとるプロセッサには、TLBと
称される高速バッファを設けているものが多く、この高
速バッファには最近使用された仮想アドレスに対応した
物理アドレスが記憶されている。
Therefore, many processors that use a virtual memory system are equipped with a high-speed buffer called TLB, and this high-speed buffer stores a physical address corresponding to a recently used virtual address.

これによれば、プロセッサからのメモリアクセスが発生
すると、まず、TLBの中に、対応するア+゛レスがな
いかどうかがチェックされ、存在する場合には、アドレ
ス変換のための、変換テーブルのメモリアクセスが必要
でなく、アドレス変換のオーバーヘッドは少なくてアク
、セス可能となる。
According to this, when a memory access occurs from a processor, it is first checked whether there is a corresponding address in the TLB, and if there is, a translation table is created for address translation. No memory access is required, and the overhead of address translation is small, allowing access.

このような、TLBを含んだアドレス変換装置は、従来
は、プロセッサ毎におかれ、プロセッサ内の制御装置の
手助けを借りて仮想制御方式を実現していた。
Conventionally, such an address translation device including a TLB was placed in each processor, and a virtual control method was realized with the help of a control device within the processor.

一方、性能を上げるためには、キャツ/ユメモリと呼ば
れる高速メモリを各プロセッサに設けることが一般的に
なっている。このキャッシュメモリは、主メモリの一部
の写しで、通常、主メモリよりも5〜10倍高速なもの
として設計されている。
On the other hand, in order to improve performance, it has become common to provide each processor with a high-speed memory called memory. This cache memory is a copy of a portion of main memory and is typically designed to be 5 to 10 times faster than main memory.

プロセッサからのメモリアクセスは、まずキャッシュに
該当するものがあるか否かのチェックを行い、あれば、
その内容を返送し、なければ主メモリをアクセスするこ
とになる。
When accessing memory from the processor, it is first checked to see if there is a corresponding item in the cache, and if there is,
The contents will be sent back, and if not, the main memory will be accessed.

ところで、仮想記憶方式で、キャッシュメモリを有する
場合には、従来、プロセッサから見てTLB、キャツン
ユメモリ、主メモリの順で接続されていた。これは、キ
ャツンユメモリは、実記憶である主メモリの写しである
という考え方に基づくもので、キャッシュメモリのアク
セスは、物理アドレスに変換してから行なわなければな
らなかった。
By the way, when using a virtual memory system and having a cache memory, conventionally, the TLB, the memory, and the main memory are connected in this order from the perspective of the processor. This is based on the idea that the cache memory is a copy of the main memory, which is real memory, and the cache memory had to be accessed after being converted to a physical address.

このような、従来方式には、次のような問題点がある。Such conventional methods have the following problems.

第1の問題点は、実効的なメモリアクセス時間が長くな
ることである。
The first problem is that the effective memory access time becomes longer.

この理由は、プロセッサからキャッシュメモリをアクセ
スする場合に、必ずTLBを通らなければならないから
である。すなわち、プロセッサからの仮想アドレスを、
’f’LBにより物理アドレスに変換してからキャッシ
ュメモリをアクセスすることになるからである。
The reason for this is that when accessing the cache memory from the processor, the access must always go through the TLB. In other words, the virtual address from the processor is
This is because the cache memory is accessed after converting it into a physical address using 'f'LB.

第2の問題点は、TLBが全プロセッサに必要なため、
プロセッサの数が増えた場合、それにつれてハードウェ
ア物量が大きくなるばかりでなく、TLBのずれを修正
しなければならず、これが複雑になっていることである
The second problem is that TLB is required for all processors.
When the number of processors increases, not only does the amount of hardware increase accordingly, but it is also necessary to correct TLB deviations, which increases complexity.

TLBのずれの修正は、あるプロセッサが、ページをス
ワップした時に、変換テーブル、TLBのエントリーを
更新するが、当該プロセッサのみでなく、他のプロセッ
サにもその旨を連絡して、該当部分をクリヤしなければ
ならない。
To correct TLB misalignment, when a processor swaps a page, it updates the translation table and TLB entry, but it must notify not only that processor but also other processors and clear the corresponding part. Must.

これは、一般に’I’ L、13  purge (’
l’ranslationLookaside f3u
ffer purge )と称され、−r A/ fプ
ロセッサを構成する場合の1つの重要なポイントとなっ
ている。
This is generally 'I' L, 13 purge ('
l'ranslation Lookaside f3u
-r purge), and is one of the important points when configuring the -r A/f processor.

第3の問題点は、一般のジョブプロセッサはメモリをア
クセスする場合、仮想アドレスを用いるが、入出カプロ
セッサは、TLBを持たないため、物理アドレスでアク
セスすることから生ずるもので、両者で、アドレスの受
は渡しをする際に変換が必要となるためにオーバーヘッ
ドが増加することである。
The third problem arises from the fact that general job processors use virtual addresses when accessing memory, but input/output processors do not have a TLB and therefore access using physical addresses. The disadvantage of this is that conversion is required when passing, which increases overhead.

第4の問題点は、第2の問題点と類似しているが、マル
チプロセッサでなくても、高度なパイプライン制御をす
るプロセッサでは命令をアクセスするユニットとオペラ
ンドをアクセスするユニットは別々で、各々にキャッジ
−メモリを持ち、高速化を図ることが行なわれるが、こ
の際にも、従来方式では、TLBを各ユニットに持たな
ければならなくなり、ハードウェア量が増大するという
ことである。
The fourth problem is similar to the second problem, but even if it is not a multiprocessor, in a processor that uses advanced pipeline control, the unit that accesses instructions and the unit that accesses operands are separate. Each unit has a cache memory to increase speed, but in this case too, in the conventional system, each unit must have a TLB, which increases the amount of hardware.

このような問題点を解決するために、キャッシュメモリ
を仮想アドレスでアクセスし、ヒツトしない場合のみア
ドレス変換を行うやυ方が、特開昭49−53339号
公報の中に示されている。これによればキャッシュメモ
リをアクセスする場合に毎回アドレス変換を行う必要が
なくなって、高速tかしながら、この公報には、本方式
は次の欠点があるために、採用できないことを指摘して
いる。それは、 (1)2つの異なった仮想アドレスが同一の物理アドレ
スを参照する場合、うまくゆかない。゛これはある仮想
アドレスの内容を書き変えた時に同一の物理アドレスを
示す別の仮想アドレスで指定されるキャッシュメモリの
内容が書き変っていなければならないためである。
In order to solve this problem, Japanese Patent Laid-Open No. 49-53339 discloses a method in which the cache memory is accessed using a virtual address and address translation is performed only when there is no hit. Although this method eliminates the need to perform address translation every time the cache memory is accessed and is fast, the publication points out that this method cannot be adopted because it has the following drawbacks. There is. It does not work if: (1) two different virtual addresses refer to the same physical address; This is because when the contents of a certain virtual address are rewritten, the contents of the cache memory specified by another virtual address indicating the same physical address must also be rewritten.

(2)ページあ名いはセグメントテーブルの内容を書き
変える場合に、キャッシュの無効化をするためめスキャ
ンが必要である。
(2) When rewriting the contents of a page nickname or segment table, a special scan is required to invalidate the cache.

(3)  ストレニジキーは物理アドレスに対応してい
るために、プロテクションチェックが不可能となる。
(3) Since the strain key corresponds to a physical address, protection checks are impossible.

の3点である。There are three points.

特開昭56−38649号公報にも、同様に、キャッシ
ュメモリを仮想アドレスでアクセスする方法が示されて
いるが、上記の問題点の解決法は触れられていない。
Japanese Unexamined Patent Publication No. 56-38649 similarly discloses a method of accessing a cache memory using a virtual address, but does not mention a solution to the above problem.

ま次、特開昭55−142476号公報には、アドレス
変換装置を複数のプロセッサで共有する方式が示されて
いる。これによれば、複数のプロセッサで共有するため
に、マルチプロセッサ構成時に、経済性を実現できると
い は、キャッシュメモリは示されていない。
Next, Japanese Patent Laid-Open No. 55-142476 discloses a system in which an address translation device is shared by a plurality of processors. According to this document, the cache memory is not shown to be economical in a multiprocessor configuration because it is shared by a plurality of processors.

本発萌は、複数のプロセッサがあシ、その中の少なくと
もひとつのプロセッサが、仮想アドレスでアクセスする
キャッシュメモリを持ち、ナトレス変換装置は全プロセ
ッサで共有する構成に適用されるものである。
The present invention is applied to a configuration in which there are multiple processors, at least one of which has a cache memory that is accessed using a virtual address, and the Natres conversion device is shared by all processors.

このような構成の目的は、アドレス変換装置に    
The purpose of such a configuration is to
.

要するハード量を削減した上で、実効メモリアクセで時
間の短縮がはかることにある。
The purpose is to reduce the amount of hardware required and to shorten the time required for effective memory access.

他の目的は、−T!3L間の一致化制御のような複雑な
処理が不要な方式を提供することである。
The other purpose is -T! The object of the present invention is to provide a method that does not require complicated processing such as matching control between 3Ls.

他の目的は、入出カプロセッサなどからも仮想アドレス
でメモリをアクセスできる方式を提供し、アドレスの一
元管理を0指する砿のである。
Another purpose is to provide a method that allows input/output processors to access memory using virtual addresses, and to centralize address management.

他の目的は、パイプライン制、御を行う複数のユニット
から成る計算機において、高速かつ経済的な、メモリ制
御方式を実現することである。
Another purpose is to realize a fast and economical memory control method in a computer consisting of multiple units that perform pipeline control.

しかしながらこの方式の最大の問題点は、特開昭49−
53339にも指摘されている工うに、主メモリのペー
ジあるいはセグメントチー、プルを書換えた場合に、キ
ャッシュメモリには、これが伝わらず、キャッシュメモ
リの内容が主メモリの状態を正しく反映しなくなること
である。
However, the biggest problem with this method is that
The problem pointed out in 53339 is that when a main memory page or segment key or pull is rewritten, this is not transmitted to the cache memory, and the contents of the cache memory no longer correctly reflect the state of the main memory. be.

本発明の目的は、この問題点を解決したデータ処理装置
を提供することである。
An object of the present invention is to provide a data processing device that solves this problem.

次に、前述した特開昭49−’533’39号公報に指
摘されている問題点について、本発明でどう解決してい
るかの考え方を説明する。
Next, the concept of how the present invention solves the problems pointed out in the above-mentioned Japanese Patent Laid-Open No. 49-'533'39 will be explained.

まず第1の問題である2つの仮想アドレスが同一の物理
アドレスを示すことができないとい、うこ場合に必要で
あるが、多重仮想記憶が必要となる゛第1の要因は、ア
ドレスを指定するピット長が24ビット程度と小さく仮
想空間が2”=16Mega程度でサイズが不十分であ
る場合に必要となったもので、2” = 4 Giga
 、 248==256Teraもの大きな仮想空間を
サポートできれば、多重仮想記憶のニーズは少ない。ま
た共面のサブルーチンや、データを異なる仮想アドレス
でアクセスすることは、土リヤ管理も複雑となるために
、良い方法とは言えない。従って、全てのプログラム。
The first problem is that two virtual addresses cannot indicate the same physical address, which is necessary in this case, but multiple virtual memory is required. This was necessary when the length was small, about 24 bits, and the virtual space was insufficient, at about 2" = 16 Mega, so 2" = 4 Giga.
If a virtual space as large as 248==256 tera can be supported, there is little need for multiple virtual memories. Furthermore, coplanar subroutines or accessing data using different virtual addresses is not a good method because it complicates real estate management. Therefore, all programs.

データはユニークなアドレスを割付けられる単一仮想記
憶の場合は、これは問題点とはならない。
In the case of a single virtual memory where data is assigned a unique address, this is not a problem.

次に第2の問題は、キャッシュを仮想アドレスでアクセ
スする場合の本質的なことであるが、これを少し詳細に
説明する。アドレス変換テーブルを更新するのは、(i
)あるプログラム実行中にミッシングページフォールト
が発生し、必要なページをロールインする、場合、ある
いは、空エリヤを作るためにあるページをロールアウト
する場合之、(11)プログラム1生成して、ある仮想
アドレスに割な場合に、キャッシュメモリには、既にロ
ールアウトして主メモリにはないデータが残っていたシ
、新しいプログラムが生成されたのに、以前のプログラ
ムがキャッシュメモリに残っていたりするこ、キャッシ
ュには、既に ロールアウトされた情報が残っているという点は、キャ
ッシュメモリは、外部4モリも加えた空間で、  のキ
ャッシュと考えれば良く、既にロールアウトされた情報
を読出せても不都合は生じない。
Next, the second problem, which is essential when accessing a cache using a virtual address, will be explained in some detail. To update the address translation table, (i
) If a missing page fault occurs during the execution of a program and you roll in the necessary page, or if you roll out a page to create an empty area, (11) Generate program 1 and If the virtual address is too small, the cache memory may contain data that has already been rolled out and is not in main memory, or the previous program may remain in the cache memory even though a new program has been generated. The fact that information that has already been rolled out remains in the cache means that the cache memory is a space including the external 4 memory, and can be thought of as a cache, and information that has already been rolled out can be read. There will be no inconvenience.

逆に主メモリのサイズが、キャラ たけ増える訳で、本方式の利点と言うこともできる。主
メモリに書込もうとした時には、ストアスツシュメモリ
では、書込毎に毎回 キャッシュと主メモリの両方を更新するために、毎回ア
ドレス変換装置を通シ、ここで該ページが主メモリ上に
あるか否かチェックされる。従って、ロールアウトされ
たページを使いながら実行しているプログラムは、読出
しで、キャッシュがヒラ −トしている限シ続行し、キ
ャツンユミスか、あるいは、主メモリ書込が起った時に
、ページフォールトが発生することになる。ここでアド
レス変換装置に於けるチェックとは、ページの状態には
(a)主メモリ上に存在する、(b)ベージング中、(
C)主メモリ上に存在しないの3つの状態があシ、一般
のプロセッサは、(a)の時のみアクセスが可能で、外
部メモリとの転送を行うファイルプロセッサは(b)の
時にもアクセスが可能であシ、この規則に合っているか
否かのチェックである。
Conversely, the main memory size increases by the number of characters, which can be said to be an advantage of this method. When an attempt is made to write to main memory, the store memory passes through an address translation device each time the page is in main memory in order to update both the cache and main memory for each write. It is checked whether or not. Therefore, a program running using rolled out pages will continue as long as the cache is flush on a read, and will either miss or cause a page fault when a main memory write occurs. will occur. Here, the check in the address translation device means that the state of the page is (a) existing in main memory, (b) during paging, (
C) There are three states: not present in main memory.A general processor can access the file only in (a), and a file processor that transfers to external memory cannot access it even in (b). This is a check to see if it is possible and meets this rule.

ページフォールトが発生した場合には、キャッシュメモ
リ内の該当するブロックは無効化されるため、以後はキ
ャッシュでヒツトしない。尚、リードアクセス時にペー
ジフォールトが発生した場合、には、該ブロックをキャ
ッシュに書込まないように制御する。
When a page fault occurs, the corresponding block in the cache memory is invalidated, so it will no longer be hit in the cache. Note that if a page fault occurs during read access, the block is controlled not to be written to the cache.

次に、今まで実行していたプログラムが完了し    
   ゛・て、同一の仮想アドレスに新たにプログラム
が生成される場合には、外部メモリから転送されるのが
普通であるが、この場合、外部メモリからの転送中に、
キャッシュを無効化する手段を設けることによって解決
される。具体的には、外部メモリからの主メモリへの転
送は、仮想アドレスで行い、このアドレスをキャッシュ
メモリは監視しておいて、もしもキャッシュメモリ内に
該当するブロックがあれば無効化を行うものである。
Next, the program you have been running will complete.
・When a new program is generated at the same virtual address, it is normally transferred from external memory, but in this case, during transfer from external memory,
The problem is solved by providing a means to invalidate the cache. Specifically, transfers from external memory to main memory are performed using virtual addresses, and this address is monitored by the cache memory, and if there is a corresponding block in the cache memory, it is invalidated. be.

次に第3のプロテクトの問題であるが、プロテクトは、
物理アドレスよシも、仮想アドレスの方が、プログラム
毎にユニークなストレージキイを割当てることが可能で
あシ、良い方法であると考えられる。但し書込みは、必
ずアドレス変換装置を通るために書込みプロテクトは必
ずチェックされる。書込みプロテクトエラーが検出され
た時には、キャッシュメモリの対応するブロックは無効
化され、キャッシュメモリに書込んだデータが使用され
ないようにする。実行プロテクトは、メモリの読出しの
ために、キャッシュ内に該当するものがあれば、ここで
返送しアドレス変換装置を経由しないために工夫が必要
である。本発明では、キャッシュメモリを命令キャッシ
ュとデータキャッシュに分離した例を示しているが、こ
の例では、実行プロテクトエラーが発生した場合にはキ
ャッシュメモリに入孔ないように制御している。
Next is the third issue of protection.
Virtual addresses are considered to be a better method than physical addresses because they allow a unique storage key to be assigned to each program. However, since writing always passes through an address translation device, write protection is always checked. When a write protection error is detected, the corresponding block in the cache memory is invalidated to prevent the data written to the cache memory from being used. Execution protection needs to be devised so that if there is a corresponding item in the cache, it is returned here and does not go through the address translation device for reading the memory. In the present invention, an example is shown in which the cache memory is separated into an instruction cache and a data cache, but in this example, if an execution protection error occurs, the cache memory is controlled so as not to be intruded.

以上で、本発明の、従来問題点とされていた項目に対す
る解決法が理解できたと思われるが、本発明はマルチプ
ロセッサに於ける問題点をも同様な方法で解決している
。従来のマルチプロセッサ構成で、アドレス変換テーブ
ルを簀き換えた場合には、他のプロセッサに対して指令
を送って他のプロセッサが所有するTLBの無効化(T
LBpurge )を行っていた。これによって、以前
のプログラムがキャッシュメモリに残っていてもTLB
を無効化することによって、該当するキャッシュメモリ
は使用しないようにできたわけである。本発明が適用さ
れるマルチプロセッサに於ては、あるプロセッサがアド
レス変換テ、−プルを書換えた時に他のプロセッサのキ
ャッシュメモリが、主メモリと一致しなくなる点が問題
であるが、前述のように、外部メモリからの転送を仮想
アドレスで行い、キャッシュメモリでは、この仮想アド
レスを監視しておいて、該当するブロックがキャッシュ
メモリ内にあれば、無効化を行うことによって解決して
いる。
From the above, it is believed that the method of solving the problems of the present invention in the past has been understood, but the present invention also solves the problems in multiprocessors in a similar manner. In a conventional multiprocessor configuration, when the address translation table is rearranged, a command is sent to other processors to invalidate TLBs owned by other processors.
LB purge). This allows the TLB to be updated even if the previous program remains in cache memory.
By invalidating the cache memory, the corresponding cache memory can be prevented from being used. In a multiprocessor to which the present invention is applied, the problem is that when one processor rewrites the address translation table, the cache memory of another processor no longer matches the main memory. The solution is to transfer from the external memory using a virtual address, monitor this virtual address in the cache memory, and invalidate the corresponding block if it is in the cache memory.

以下、本発明の一実施例を図面を参照して詳細第1図は
本発明が適用されるデータ処理装置の全体構成の一例を
示す図である。
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing an example of the overall configuration of a data processing apparatus to which the present invention is applied.

第1図において、10はプログラムおよびデータを格納
する主メモリで、メモリバス11.メモリコントローラ
(MCU)12を介して共通ノ(ス50に接続されてい
る。
In FIG. 1, 10 is a main memory for storing programs and data, and a memory bus 11. It is connected to a common node 50 via a memory controller (MCU) 12.

几は、主メモリ10に格納されるべきプログラムおよび
データを格納する外部メモリで、外部メモリバス21.
ファイルプロセッサ(FCP )22を介して共通バス
50に接続されている。
几 is an external memory that stores programs and data to be stored in the main memory 10, and is connected to an external memory bus 21.
It is connected to a common bus 50 via a file processor (FCP) 22.

30は入出カプロセッサ(IOP>であり、図示しない
各種入出力装置とのデータ転送の制御を行う0 40は、ジョブプロセッサ(JOBP>でおり、ここで
は1つだけを示しているが、プログラム(命ジョブプロ
セッサ40は、命令キャラ7−’41゜データキャッシ
ュ42.Iユニット43およヒEユニットによシ構成さ
れ、命令キャッシュ41と■ユニット43はバス45で
接続され、データキャッシュ42とEユニット44はバ
ス46で接続され、■ユニツ°)[3とEユニット44
はバス47で接続されている。
30 is an input/output processor (IOP), which controls data transfer with various input/output devices (not shown); 40 is a job processor (JOBP), only one of which is shown here; The life job processor 40 is composed of an instruction character 7-'41 degree data cache 42, an I unit 43, and an H E unit. The units 44 are connected by a bus 46, and ■Units°)[3 and E unit 44
are connected by bus 47.

このように、ファイルプロセッサ22.入出カプロセッ
サ30およびジョブプロセッサ40は、いずれも共通バ
ス50に接続され、メモリコントローラ12を介して主
メモリ10をアクセス可能になっている。
In this way, file processor 22. The input/output processor 30 and the job processor 40 are both connected to a common bus 50 and can access the main memory 10 via the memory controller 12.

ジョブプロセッサ4は、■ユニット43とEユニット4
4でパイプラインー処理をするもので、前述の如くそれ
ぞれのユニットに対して命令キャラ(シュ41とデータ
キャッシュ44を有スル。
The job processor 4 includes ■ unit 43 and E unit 4
4 performs pipeline processing, and as mentioned above, each unit has an instruction cache 41 and a data cache 44.

尚プログラム(命令)が扱うデータはオペラン    
 ドとも呼ばれ、このデータキャラツユのことをオペラ
ンドキャッシュと呼ぶ場合がある。
The data handled by the program (instruction) is an operan.
This data cache is also called an operand cache.

次に実行すべき命令語をエユニット43がアクセスする
場合、まず、命令キャッシュ41上にその命令語が存在
するか否かチェックされ、存在する場合には、゛そのデ
ータが命令語としてバス4−5を介してエユニット43
へ送られる。存在しない場合は、命令語の仮想アドレス
を共通バス50を介してメモリコントローラ12へ送出
する。
When the emunit 43 accesses the instruction word to be executed next, it is first checked whether the instruction word exists on the instruction cache 41, and if it exists, ``the data is transferred to the bus as an instruction word. -5 via unit 43
sent to. If it does not exist, the virtual address of the command is sent to the memory controller 12 via the common bus 50.

メモリコントローラ12では、仮想アドレスを物理アド
レスに変換してメモリバス11を介して主メモリ10を
アクセスする。得られたデータ(命令)は、共通バス5
0.を介して、命令キャッシュ41へ送られ、さらにバ
ス45t−介してエユニット43へ送られ、■ユニット
43で処理されると同時に、命令キャッシュ41へ貯わ
見られる。
The memory controller 12 converts the virtual address into a physical address and accesses the main memory 10 via the memory bus 11. The obtained data (commands) are transferred to the common bus 5.
0. It is sent to the instruction cache 41 via the bus 45t, and is further sent to the e-unit 43 via the bus 45t, where it is processed by the unit 43 and at the same time stored in the instruction cache 41 for viewing.

■ユニット43では、この得られた命令を解読し、Eユ
ニット44に対して「何を為すべきか」を指示する。E
ユニット44は、この指令に基づき、必要なデータを内
部のレジスタやデータキャッシュ42から(データキャ
ッシュ42上にない場合は、命令キャッシュと同様に主
メモリ10から)集め、演算処理し、その結果を内部の
レジタ10に結果を格納する際には、該当する位置のデ
ータが既にデータキャッシュ42内に取込まれて次に共
通バス50の構成例について説明する。
(2) The unit 43 decodes the obtained command and instructs the E unit 44 "what to do." E
Based on this command, the unit 44 collects necessary data from the internal registers and data cache 42 (if it is not on the data cache 42, from the main memory 10 as well as the instruction cache), performs arithmetic processing, and outputs the results. When storing the result in the internal register 10, the data at the corresponding position has already been taken into the data cache 42. Next, an example of the configuration of the common bus 50 will be described.

共通バス50は第2図に示す様に、実際に情報を転送す
るのに使用される起動バス55.データバス56’l応
答バス57と、これらのバス55〜57をそれぞれどの
プロセッサあるいはメモリコントローラが使用するかを
決めるのに必要な起動バス占有要求線51.データバス
占有要求−線52゜応答バス占有要求線53とインタロ
ック信号線54を含んでおシ、時分割で使用される。
The common bus 50, as shown in FIG. 2, is an activation bus 55. which is used to actually transfer information. A data bus 56'l response bus 57, and an activation bus occupancy request line 51. which is necessary to determine which processor or memory controller will use each of these buses 55-57. The data bus occupancy request line 52, which includes a response bus occupancy request line 53 and an interlock signal line 54, is used in a time-sharing manner.

各バス55〜57の情報の中味は次の通シである。The contents of the information on each bus 55 to 57 are as follows.

(1)起動バス55 (a)  アドレス (b)  アクセスの種類(例えばリードアクセスであ
るか/ライトアクセスであるか、また何バ(C)  ア
クセスキー(MCU12で行うプロテ、クンヨンチェッ
クに使用する。) (2)  データバス56 (a)  ライトデータ (b)  リードデータ (3)応答バス57 (a)  終了信号           、(b) 
 リタニンコード(アクセス中に、発生したエラー及び
ページフォールトの情報) などである。
(1) Start-up bus 55 (a) Address (b) Type of access (for example, read access/write access, and number of access keys (C)) Access key (used for protection and check performed by the MCU 12). ) (2) Data bus 56 (a) Write data (b) Read data (3) Response bus 57 (a) End signal, (b)
These include return code (information about errors and page faults that occurred during access), etc.

これらのバス55〜57が、どの様に使用されるかを第
3図で示す。
FIG. 3 shows how these buses 55-57 are used.

この図で示される様に1 (i)  aのリード要求とbのリード応答(ii) 
 aのリード要求とdのライト応答OiD  cのライ
ト要求とdのライト応答の3つの組み合せの転送が、同
一のタイムスロットで同時に可能となる。
As shown in this figure, 1 (i) a's read request and b's read response (ii)
It is possible to simultaneously transfer three combinations of a read request for a and a write response for d, OiD, a write request for c, and a write response for d in the same time slot.

次にバス55〜57の使用の様子を第4図で示す。この
図では、タイムスロット0でJOBP40がMCU12
にメモリリード起動をかけ、それに対するリードデータ
がタイムスロットN、!:N+1で返されて来てお9、
了たタイムスロット1でl0P30がMCU12にメモ
リライト起動をかけ、それに対する応答−がタイムスロ
ットN+2で返されている。この様に共通バス50では
、起動と応答を分離した、いわゆるスプリット転送を行
う。また、主メモリ10は複数のメモリアクセスを処理
出来る構成とならている。
Next, FIG. 4 shows how the buses 55 to 57 are used. In this figure, JOBP40 is set to MCU12 in time slot 0.
Memory read activation is applied to time slot N, !, and the read data for it is time slot N,! :N+1 was returned and 9,
In the completed time slot 1, the l0P30 activates the memory write to the MCU 12, and a response - is returned in the time slot N+2. In this manner, the common bus 50 performs so-called split transfer in which activation and response are separated. Furthermore, the main memory 10 is configured to be able to process multiple memory accesses.

以上、述べてきたバス55〜57の転送を行うに当って
、その前に占有制御を行う必要がある。
Before performing the transfer of the buses 55 to 57 described above, it is necessary to perform occupancy control.

これは転送を希望するプロセッサやメモリコントローラ
が、転送の1タイムスロツト前に、転送に使用するバス
に対する占有要求51〜53を出し、これに対して優先
順位を付けて転送を許可すると  □な方法が考えられ
るが、ここではその詳細につい       ゛ては省
略する。ただし、応答による占有要求は、起動による占
有要求よグ優先レベルを上げる。というのは、起動によ
る占有要求によって応答が返せない事態になると、メモ
リコントローラ上で起動の処理が詰まってしまい、デッ
ドロック状態となるからである。例えば、本実施例の場
合、第3図に示すbのデータリード応答と、Cのデータ
ライト起動による占有要求が競合した場合には前者が優
先される。
This is a method in which the processor or memory controller that wishes to transfer issues occupancy requests 51 to 53 for the bus to be used for transfer one time slot before the transfer, gives priority to these requests, and permits the transfer. is possible, but we will omit the details here. However, a response request for occupancy has a higher priority level than an activation request. This is because if a response cannot be returned due to an occupancy request due to activation, the activation process becomes stuck on the memory controller, resulting in a deadlock state. For example, in the case of this embodiment, if there is a conflict between the data read response b shown in FIG. 3 and the occupancy request caused by the data write activation of C, the former is given priority.

以上の占有制御の様子を簡略化して第5図に示している
。タイムスロットOではJOBP40とl0P30がリ
ード起動をしようとして、各々が起動バス占有要求51
を、出している。この内、JOBP40の方がl0P3
0よシ優先レベルが高いものとすると、タイムスロット
1でJOBP 40は起動バス55を使用゛してリード
の起動を行い、同時に占有要求を止める。一方、l0P
30は占有が許可されなかったので、タイムスロット1
でも起動バス占有要求51を出したままとする。このス
ロット1では、JOBP40からの占有要求がなくなる
ので、タイムスロット2でl0P30はリード起動が可
能となる。
The above occupancy control is shown in a simplified manner in FIG. In time slot O, JOBP40 and l0P30 attempt to perform read activation, and each requests activation bus occupancy request 51.
is being issued. Among these, JOBP40 is l0P3
Assuming that the priority level is higher than 0, JOBP 40 uses the activation bus 55 to activate the read in time slot 1, and at the same time stops the occupancy request. On the other hand, l0P
30 was not allowed to be occupied, so time slot 1
However, the startup bus occupancy request 51 continues to be issued. In slot 1, there is no occupancy request from JOBP 40, so in time slot 2, l0P30 can start reading.

のプロセッサからのアクセスを排除して、すなわ也イン
タロックして主メモリ10をアクセスする場合には、起
動バス55を他のプロセッサに使用させない様にする。
When accessing the main memory 10 by excluding access from another processor, that is, by also interlocking, the startup bus 55 is prevented from being used by other processors.

というのは、起動バス55を占有することで、他のプロ
セッサから今後発生する起動を排除し、また既に主メモ
リ10内で処理中のメモリ起動に対しては、データバス
56.応答バス57を使用して応答を返すことを可能に
するためである。もし、これらめ応答が返せないと、メ
モリコントローラ12上で起動の処理が詰まってしまい
、デッドロック状態になってしまうから′ニニ。わ。z
<、(55゜、。7.。−3,6明する。メモリコント
ローラ12をインタロックしてアクセスしようとするプ
ロセッサは、第6図に示す様に起動バス占有要求51が
受付けられ1、起動バス55に情報を転送するタイムス
ロットで、起動バス55を占有していることを示すイン
タロック信号54t′出す。そして、この信号により他
のプロセッサからの起動バス占有要求51が受付けられ
ない様に制御する。これは例えば第7図の回路によって
実現され外この図では、各占有要求51〜53の優先判
定回路61は各プロセッサごとに分散して持ち、インタ
ロック信号線54はオープン・コレクタの信号線として
いる。まず、インタロックの信号54が出てない場合は
、各占有要求51〜53を優先判定回路61でチェック
し、自分の出した起動バス占有要求51の優先度が一番
高い場合には、アンドゲート62.オアゲート63を通
して起動バス5゛5の占有許可信号64が出る。従って
、このプロセッサは次のタイム。ッ、−C1起動2,7
.5に対し工情報。転送が可能である。また、この際プ
ロセッサからインタロック要求償号65が出されている
と、アンドゲート68を昇してJ−にフリップフロップ
66がセットされ、インタロック信号54が出力される
。こ・のインタロック信号54は、インタロック解除信
号67が出されるまで出力されておシ、この間このプロ
セッサは起動バス55を占有したままとなる。次に、他
のプロセッサからインタロック信号54が出されている
場合には、アンドゲート62で優先判定回路61の出力
が禁止されるので、起動バス占有許可信号64が出ない
ため、起動バス55が使用できず、従ってメモリ起動も
出来ない。
This is because by occupying the activation bus 55, future activations from other processors are excluded, and for memory activations that are already being processed in the main memory 10, the data bus 56. This is to enable the response bus 57 to be used to return a response. If these responses cannot be returned, the startup process will get stuck on the memory controller 12, resulting in a deadlock situation. circle. z
<, (55°, .7..-3,6 Explanation.A processor that attempts to interlock and access the memory controller 12 receives a startup bus occupancy request 51 as shown in FIG. 6, and starts up. In the time slot for transferring information to the bus 55, an interlock signal 54t' indicating that the startup bus 55 is occupied is generated.This signal prevents startup bus occupancy requests 51 from being accepted from other processors. This is realized, for example, by the circuit shown in FIG. First, if the interlock signal 54 is not output, each of the occupancy requests 51 to 53 is checked by the priority determination circuit 61, and the activation bus occupancy request 51 issued by itself has the highest priority. In this case, the activation bus 5'5 occupancy permission signal 64 is output through the AND gate 62 and the OR gate 63.Therefore, this processor is activated at the next time.
.. Engineering information for 5. Transfer is possible. At this time, if the interlock request signal 65 is output from the processor, the AND gate 68 is raised, the flip-flop 66 is set to J-, and the interlock signal 54 is output. This interlock signal 54 is output until the interlock release signal 67 is issued, and during this time, this processor continues to occupy the startup bus 55. Next, when the interlock signal 54 is issued from another processor, the output of the priority determination circuit 61 is prohibited by the AND gate 62, and the activation bus occupancy permission signal 64 is not output, so that the activation bus 55 cannot be used, and therefore memory cannot be started.

次にMC0,12について説明する。Next, MC0 and MC12 will be explained.

MCU12は、通常のメモリアクセスの処理の他、仮想
アドレスから物理アドレスへのアドレス変換や、グロテ
クシヨン−のチェックヲ行う。
In addition to normal memory access processing, the MCU 12 performs address translation from virtual addresses to physical addresses and checks for growth.

また、各プロセッサ間で共通に使用され、高いスループ
ットが要求されるため、リード処理とライト処理は、第
8図(λ> 、”’、 (’El ”>に示すように、
いくつかのステージ■〜■又は■′〜■′に分かれてお
シ、複数個のアクセスを第8図(C)に示すようにオー
バラップさせて処理出来るようになっている。
In addition, since they are commonly used between processors and require high throughput, read processing and write processing are performed as shown in FIG.
The process is divided into several stages (1) to (2) or (2) to (2), and multiple accesses can be processed in an overlapping manner as shown in FIG. 8(C).

第9図は、¥CUI 2の構成の一例を示したも   
  ゛のであるが、第8図(A)、CB)に示した各処
理ステージでは次のような動作を行う。
Figure 9 shows an example of the configuration of ¥CUI 2.
However, in each processing stage shown in FIGS. 8(A) and 8(CB), the following operations are performed.

(A):リード処理ステージの動作 ■ 共通バス50からリード起動受信 起動バス55上の仮想アドレス(VA)、アクセスの種
類(FUN)、アクセスキー′(AKEY)を共通バス
受信用レジスタ71に取込む。
(A): Operation of the read processing stage ■ The virtual address (VA), access type (FUN), and access key' (AKEY) on the read activation reception activation bus 55 are transferred from the common bus 50 to the common bus reception register 71. It's crowded.

■ アドレス変換とグロテクションチェックアドレス変
換装置75によシ、仮想アドレス(VA’)で示される
ページが、主メモリ10にあるか否かの判定を行い、あ
る場合には物理アドレス(PA)に変換する。ない場合
は、いわゆるページフォールトとなる。
■ Address translation and protection check The address translation device 75 determines whether the page indicated by the virtual address (VA') exists in the main memory 10, and if so, converts it to the physical address (PA). Convert to If there is no such page, it will be a so-called page fault.

また、この時グロテクションチェック回路。Also, at this time there is a grote protection check circuit.

76で、そのアクセスが許可されているものか否かの判
定を行う。
At 76, a determination is made whether the access is authorized.

このアドレス変換装置75とプロ“チクジョンチェック
回路76については、後で詳細に述べる。
The address translation device 75 and the programming check circuit 76 will be described in detail later.

これらのグロテクションチェックの結果と、ページフォ
ールト情報は、他のエラー情報と共種類(FUNC’j
や物理アドレス(PA)と共にアクセスレジスタ72に
セットされる。
The results of these gross protection checks and page fault information are the same as other error information (FUNC'j
and the physical address (PA) in the access register 72.

■ メモリリード起動 アクセスレジスタ72にあるアクセスに1ラーやページ
フォールドが発生していない場合には、メモリコントロ
ーラ“77が、アクセスレジスタ72上の物理アドレス
(PA)で、主メモリ10にメモリ起動151をかけ、
主メモリ10がその起動を受取つ穴ら、アクキスの種類
(FUNC)とリターンコード(几C)を一時起憶レジ
スタフ3へ移す。
■ If no error or page fold occurs in the access to the memory read start access register 72, the memory controller 77 writes the memory start 151 to the main memory 10 at the physical address (PA) on the access register 72. Apply
When the main memory 10 receives the activation, it transfers the access type (FUNC) and return code (几C) to the temporary storage register 3.

また、アクセスレジスタ72にあるアクセスが、既に−
ラーやヘージフーーートの発生を示している場合には、
メモリ起動をせず、前i己の情報を一時記憶レジスタフ
3へ移す。    ′■ リードデータ受信とデータ、
応答バス占有要求 主メモリ10i4らメモリバス11を介してリードデー
タ154を受取ると共に、アクセスの種類(FUNC)
とリターンコード(几C)を共通バス送出用レジスタ7
4へ移ス。
Also, the access in the access register 72 has already been -
If it indicates the occurrence of ra or hegefut,
Move the previous information to the temporary storage register 3 without activating the memory. ′■ Read data reception and data,
Response bus occupancy request Main memory 10i4 receives read data 154 via memory bus 11, and also receives access type (FUNC)
and return code (几C) to common bus sending register 7.
Move to 4.

一方、共通バス50に対してはデータバス占有要求52
と応答バス占有要求53を出力する。
On the other hand, a data bus occupancy request 52 is issued to the common bus 50.
and outputs a response bus occupancy request 53.

■ リードデータ、応答バス転送 ■の占有要求52.53が受付けられたら、リードデー
タ(154)をバス155を介してデータバス56に転
送し、また、終了信号とリターン=I−)”(RC)を
バス156を介して応答バス57に転送し、それぞれア
クセス元のプロセッサに返す。
■ Read data, response bus transfer ■ When the occupation request 52.53 of ■ is accepted, the read data (154) is transferred to the data bus 56 via the bus 155, and the end signal and return = I-)'' (RC ) are transferred to the response bus 57 via the bus 156 and returned to the accessing processor.

(B)ニライト処理ステージの動作 ■′共通バス50からライト起動受信 起動バス55上の仮想アドレス(VA)、アクセスの[
Q’(FUNC)、アクセスキー(AKEY)及びデー
タバス56上のライトデータ(WD)を共通バス受信用
゛レジスタ71に取込む。
(B) Operation of the second write processing stage■'The virtual address (VA) on the write activation reception activation bus 55 from the common bus 50, the access [
Q' (FUNC), access key (AKEY), and write data (WD) on the data bus 56 are taken into the common bus reception register 71.

■′ アドレス変換とプロテクションチェックライトデ
ータ(WD)をアクセスレジスタ72にセットすること
を除いて、リード処理ステージ(A)の■と同じ動作を
する。
(2) The same operation as (2) in the read processing stage (A) is performed except for address conversion and setting protection check write data (WD) in the access register 72.

■′メモリライト起動 ライトデータ(WD)153を主メモリ10に転送する
ことを除いて、リード処理ステージ(4,)の■と同じ
である。
(2) The process is the same as (2) in the read processing stage (4,) except that the memory write activation write data (WD) 153 is transferred to the main memory 10.

■′応答バス占有要求 アクセスの種類(FUNC)とリターンコード(几C)
を共通バス送出用レジスタ74へ移す。
■'Response bus occupancy request access type (FUNC) and return code (几C)
is transferred to the common bus sending register 74.

一方、共通バス50に対しては、応答バス占有要求53
を出力する。
On the other hand, for the common bus 50, the response bus occupancy request 53
Output.

■′応答バス転送 ■′の占有要求53が受付けられたら、終了信号とリタ
ーンコード(RC)をバス156を介して応答バス57
に転送し、アクセス元のプロセッサに返す。
■'Response bus transfer■'When the occupation request 53 is accepted, the end signal and return code (RC) are sent to the response bus 57 via the bus 156.
and return it to the processor from which it was accessed.

以上の様に、リードとライトの処理は各ステージに分け
られてお夛、異なるアクセスの処理の異       
“□なる番号のステージはミ第8図(’C)に示す様に
並行して処理可能である。この図では、共通バス50か
ら(イ)4 BYte リード起動、(ロ)4 BYt
eライト起動、(ハ)16 BYte ’)−ド起動を
、それぞれタイムスロット0,1.2で受取って処理し
ている。
As mentioned above, read and write processing is divided into each stage, and different access processing is performed.
The stages numbered □ can be processed in parallel as shown in Figure 8 ('C).
The e-write activation and (c)16 BYte')-de activation are received and processed in time slots 0 and 1.2, respectively.

そしてタイムスロット2の場合を見ると、(イ)のメモ
リリード起動■と、(ロ)のアドレス変換とプロテクシ
ョンのチェック■′と、Cつの共通バスからのリード起
動受信■を並行して行っている。ここで、(ハ)の16
 Byteリードは(イ)の4 BYteリードに比べ
て、■〜■のステージを4回繰り返しているが、これは
4 B)’teを単位としたメモリインタリープを行っ
ているためである。以下、これについて説明する。
Looking at the case of time slot 2, (a) memory read activation ■, (b) address translation and protection check ■', and read activation reception from C common buses ■ are performed in parallel. There is. Here, (c) 16
Compared to the 4 BYte read in (a), the Byte read repeats the stages (■) to (■) four times, and this is because memory interleaps are performed in units of 4 B)'te. This will be explained below.

第10図は主メモリ10の構成の一例を示した図であシ
、メモリボード(MB)14 (14a 〜14d)は
4 BYteのデータ幅で構成され、各メモリボード1
4a、14b、14C,14dは4Byte単位に付加
されたアドレスの下位2 bitが00.01,10.
11であるデータを持っている。そして16 BYte
のデータは、4 Byteずつのデータがメモリボード
14a、14b、14C。
FIG. 10 is a diagram showing an example of the configuration of the main memory 10. The memory boards (MB) 14 (14a to 14d) are configured with a data width of 4 BYte, and each memory board 1
4a, 14b, 14C, 14d, the lower 2 bits of the address added in 4-byte units are 00.01, 10.
I have data that is 11. and 16 BYte
The data is 4 bytes each for the memory boards 14a, 14b, and 14C.

14d上にあるため、16Byteリードではメモリボ
ード14で競合をおこすこと無く、第8図(C)の様に
連続してメモリボードを起動しく リードデータを読み
出して来ることが可能となる。
14d, when reading 16 Bytes, there is no conflict on the memory board 14, and the memory board can be activated and the read data can be read out in succession as shown in FIG. 8(C).

この様な16 Byte +忙ドは、主にキャッシュミ
ス時にキャッシュメモリへデータを送るブロック転送に
使用される。
Such 16 Bytes + busy data is mainly used for block transfer to send data to the cache memory in the event of a cache miss.

■ユニット43やEユニット44が命令キャッシュ41
やデータキャッシュ42をアクセスする場合。は、16
]3yteよりもつと小さな単位(この例では4 BY
teとする。)で行うので、この16Byteリ一ド時
にはエユニット43やEユニット44が必要とした4 
BYteのデータが残りのデータより早く渡される様に
制御し、アクセス時間を、第10図(B)   ・ のどとくアドレスに応じて、MCU12から起動をかけ
るメモリボード14の順番を変更すれば良い。
■Unit 43 and E unit 44 are instruction cache 41
or when accessing the data cache 42. is 16
] Unit smaller than 3 byte (in this example, 4 BY
Let it be te. ), so when reading this 16 Byte, the 4 required by E unit 43 and E unit 44 is
By controlling the BYte data to be delivered earlier than the rest of the data, the access time can be changed as shown in FIG. 10 (B). The order of the memory boards 14 to be activated from the MCU 12 can be changed depending on the throat address.

次に、アドレス変換とプロテクションチェックにつ伝て
詳細に説明する。
Next, address translation and protection checking will be explained in detail.

第11図は、第9図のアドレス変換装置75を中心とし
て更に詳細に示した構成図であり、第12図は、アドレ
ス変換の動作フローを示したものである。
FIG. 11 is a block diagram mainly showing the address translation device 75 of FIG. 9 in more detail, and FIG. 12 shows the operation flow of address translation.

仮想アドレスから物理アドレスへの変換テーブル130
は、そのメモリ容量が大きいので、主メモリ10の一部
に置かれている。しかし、メモリアクセスが発生するた
びに、仮想アドレスを物理アドレスに変換するために、
主メモリ10をアクセスしていてはオーバーヘッドが大
きくなるため、最近アクセスしたアドレス変換情報を格
納しておくTLBIIOがMCU12に設けられている
Virtual address to physical address translation table 130
is placed in a part of the main memory 10 because of its large memory capacity. But every time a memory access occurs, to convert the virtual address to a physical address,
Since accessing the main memory 10 causes a large overhead, the MCU 12 is provided with a TLBIIO that stores recently accessed address translation information.

TLBIIOには、アドレス変換テーブル130の内、
最近使用されたべ−ジの内容が格納されており、高速に
アドレス変換が行なえるようになっている。TLBII
Oにおける各ページの内容は、有効ピット(V)111
.コネクト(C)ピット112、仮想アドレスの二部(
VPA)113.物理アドレスの一部(PPA)114
.実行グロテクションビツ) (BP)115およびス
トレージキー(8に、EY ) 116からなッテイル
。vヒツト111とCピット112は、該当ページの現
在の状態を示し、vビット111が「0」の場合は、T
LBlloの該当ページの内容が有効なデータでない(
無効)と、とを示す。
TLBIIO includes the address translation table 130,
The contents of recently used pages are stored, allowing high-speed address translation. TLBII
The contents of each page in O are valid pits (V) 111
.. Connect (C) pit 112, the second part of the virtual address (
VPA)113. Part of physical address (PPA) 114
.. (BP) 115 and storage key (8, EY) 116. The v hit 111 and the C pit 112 indicate the current state of the corresponding page, and if the v bit 111 is "0", the T
The content of the corresponding page in LBllo is not valid data (
invalid) and.

vビット111とCピット112が共に「1」の場合は
、該当ページが、現在主メモリ10と外部メモリ20と
の間で転送されていること、すなワチ、ベージング中で
あることを示し、vビット111が「1」で、Cビット
112が「0」の場合は、該当ページが主メモリ10に
あシ、メモリアクセス可能なことを示している。
When both the v bit 111 and the C pit 112 are "1", this indicates that the corresponding page is currently being transferred between the main memory 10 and the external memory 20, that is, it is being paged; When the v bit 111 is "1" and the C bit 112 is "0", this indicates that the corresponding page is in the main memory 10 and memory access is possible.

このように、ベージング中である状態を付加しているの
は、ベージングを行っているエリアをFCP22からの
ベージングアクセス以外のアクセスができないようにす
多ためである。
The reason why the paging-in-progress state is added in this way is to prevent accesses other than paging access from the FCP 22 to the area where paging is being performed.

本システムでは、仮想アドレスから物理アドレスへのア
ドレス変換を1.MCU1’2で、各プロセ   −□
ツサに共通に行なわせているので、FCP22によりベ
ージングを行なっているアクセスであっても、同じアド
レス変換装置75を経由することになり、そのベージン
グ中のエリアを他のプロセッサがアクセスすることを許
可すると、データの破壊や喪失につながる。従って、上
記した如く、vビット111とCピット112が共に「
1」を示している場合には、FcP22からのベージン
グアクセスのみ許可することにより、上記の不都合を解
決しているのである。
In this system, address conversion from virtual address to physical address is performed in 1. In MCU1'2, each process -□
Since this is common to all processors, even accesses that are being paged by the FCP 22 will go through the same address translation device 75, allowing other processors to access the area that is being paged. This will lead to data corruption or loss. Therefore, as mentioned above, both the v bit 111 and the C pit 112 are "
1", the above-mentioned inconvenience is solved by allowing only paging access from the FcP 22.

次に仮想アドレスの一部(VPA)113は、TLBI
IOでアドレス変換を行う際に、該当する仮想アドレス
(VA)の変換対がTLBIIOに登録されているか否
かをチェックするためのものであシ、また、物理アドレ
スの一部(PPA)114はTLBIIOに変換対があ
った時に、物理アドレス(P A 、>を作成するため
のものである。
Next, part of the virtual address (VPA) 113 is the TLBI
When performing address translation in IO, this is to check whether the translation pair of the corresponding virtual address (VA) is registered in TLBIIO. This is for creating a physical address (P A , >) when there is a translation pair in TLBIIO.

仮想アドレス(VA)は、セグメントアドレス(8A)
121.ページアドレス(PA)122.ページ内アド
レス(DISP>123からなり、上記の物理アドレス
の一部(PPA)114は、ページ内アドレスCDl5
P)123と連なって物理アドレス実行プロテクション
ピット115(EP)は、データに対し誤まって命令読
出し、実行することを防ぐためのものであシ、プロテク
ションチェック回路76でこのピットが「1」のエリア
に対して命令読出しすると実行プロテクトエラーとなる
Virtual address (VA) is segment address (8A)
121. Page address (PA) 122. It consists of an intra-page address (DISP>123), and the above physical address part (PPA) 114 is an intra-page address CDl5.
Physical address execution protection pit 115 (EP) connected to P) 123 is to prevent erroneous instruction reading and execution for data. If an instruction is read from the area, an execution protection error will occur.

従って本構成例の様に、JOBP 40で命令キャ′ツ
シュ41とデータキャッシュ42が分れている場合には
、命令キャッシュ41からのこのエリア” に対するア
クセスは、釜で実行プロテクトエラーストレージキー(
SKEY)lieは、ライトプロテクションを行うため
のもので、要求元プロセッサから転送されてきたアクセ
スキー(AKEY)と共にプロテクションチェック回路
76によシ、ライドアクセ哀が許可されるか、禁止され
るかを調べられ、後者の場合はライトプロテクトエラー
とアクセスキー(AKEY)は、この様に8KEY11
6とめ比較によるライトプロテクトエラーのチェックに
使う他、ECP22からのベージングアクセスか否かの
情報や、命令読出しであるか否かの情報を含んでおり、
これらのプロテクトチェックにも使用する。
Therefore, as in this configuration example, when the instruction cache 41 and data cache 42 are separated in the JOBP 40, access to this area from the instruction cache 41 is executed in the pot using the protect error storage key (
SKEY) is used to perform write protection, and together with the access key (AKEY) transferred from the requesting processor, the protection check circuit 76 determines whether write access is permitted or prohibited. In the latter case, the write protect error and the access key (AKEY) are 8KEY11 like this.
In addition to being used to check for write protection errors by comparison, it also contains information on whether or not it is a paging access from the ECP22 and information on whether or not it is an instruction read.
Also used for these protection checks.

次に、変換過程を、第12図のフローチャートを参照し
て順次説明する。
Next, the conversion process will be sequentially explained with reference to the flowchart of FIG.

メモリアクセスの種類は大きく次の2つに分けられる。Types of memory access can be broadly divided into the following two types.

すなわち、 (1)  一般のプロセッサによるメモリアクセス(2
)FCP22によるベージング時のメモリアクヤ′x 
 。
In other words, (1) Memory access by a general processor (2)
)Memory acquisition during basing with FCP22'x
.

の2つである。この(1)、(2)のアクセスの区別は
、アクセスキーAKEY上にあシ、信号線140を経由
してアドレス変換コントローラ125に伝えられる。
There are two. This distinction between accesses (1) and (2) is transmitted to the address conversion controller 125 via the signal line 140 on the access key AKEY.

まず、一般的な(1)の場合のメモリアクセスのアドレ
スバスやアクセスの許可の判定について説明する。
First, the address bus for memory access and determination of access permission in the general case (1) will be explained.

あるプロセッサ(JOBP40又はl0P30)から出
力された仮想アドレスは、共通バス50を経由してMC
U12内の共通バス受信用レジスタ71内の仮想アドレ
スレジスタ120にセットされる。この仮想アドレスレ
ジスタ120にセットされた仮想アドレスは、セグメン
トアドレス(SA)121及びベージアドレス(PA)
122の一部分120−2をアドレスとしてまずTLB
lloをアクセスする。これによシ読み出されたTLB
IIOのエントリのVピッ、ト111およびCビット1
12は、アドレス変換コントローラ125に伝えられ、
そのパターンにより、その後の処理が次の■〜■のよう
に3つに分かれる。
A virtual address output from a certain processor (JOBP40 or l0P30) is sent to the MC via the common bus 50.
It is set in the virtual address register 120 in the common bus reception register 71 in U12. The virtual address set in this virtual address register 120 is a segment address (SA) 121 and a page address (PA).
122 part 120-2 as an address, TLB
Access llo. The TLB read by this
IIO entry V pit, bit 111 and C bit 1
12 is communicated to the address translation controller 125,
Depending on the pattern, the subsequent processing is divided into three steps as shown in (1) to (2) below.

これは、第12図のフローのステップ(FO!5)に相
当している。
This corresponds to step (FO!5) in the flow of FIG.

■ Vビット111−0.Cビット112=oの時。■ V bit 111-0. When C bit 112=o.

これは、第12図で、「0,0」と表示してところであ
シ、前述した如<、TLBIIOの該当ベージ(エント
リ)は無効であシ、主メモリ10上      ゛の変
換テーブル130を読み出す。(FIO)どの時、すな
わち、TLBミス時の詳細な動作は後述する。
This is shown in FIG. 12 by displaying "0, 0", but as mentioned above, the corresponding page (entry) in TLBIIO is invalid, and the conversion table 130 in main memory 10 is read out. . (FIO) The detailed operation when a TLB miss occurs will be described later.

■ Vビット111=1.Cピッ)112=1(7)時
■ V bit 111=1. C beep) 112=1(7) o'clock.

第12図でII、、IJ0時であるが、この時、仮想ア
ドレスの一部分120−1とTLBIIOの仮想アドレ
スの一部分VPA113iコンパレータ124で比較し
た結果、一致し、TLBヒツト信号141が出力されて
いれば(F2O3)、該当ベージは現在ベージング中で
あることを示しているので、そのメモリアクセスを禁止
し、アドレス変換コントローラ125よりミッシングベ
ージフォールト信号142を出力する。(F45)TL
Bヒツト信号141が出力されていない時は、TLBミ
スであるので■と同様に、主メモリ10上の変換テーブ
ル130を読み出す。(FIO)■ v−ビア)111
=1’、Cピッ)112=(1)時。
In FIG. 12, it is time II, IJ0, and at this time, the virtual address part 120-1 and the virtual address part VPA113i of TLBIIO are compared by the comparator 124, and they match, and the TLB hit signal 141 is output. For example (F2O3), since it indicates that the corresponding page is currently being paged, its memory access is prohibited and the missing page fault signal 142 is output from the address translation controller 125. (F45)TL
When the B hit signal 141 is not output, it is a TLB miss, and the conversion table 130 on the main memory 10 is read out in the same manner as in (2). (FIO) ■ v-via) 111
= 1', C beep) 112 = (1) time.

第12図で、「1.O」の時であるが、まず、TLBヒ
ツト信号141がチェックされ、(F2O)出力されて
いない時は、グロテクショ/チェック回路76からのプ
ロテクトエラー信号143をチェックし、エラーが発生
していなければ、仮想アドレスレジスタ120のページ
内アドレス部123とTLB11′o上の物理アドレス
の一部114を連結して物理アドレスをセレクタ128
を介しアクセスレジスタ72上に作成し、その物理アド
レスをメモリアドレスバス152に送り、主メモリ10
をアクセスするためメモリコントローラ77よシンモリ
起動信号151を出力する。(F2O)次に(2)のF
CP22によるベージング時のメモリアクセスについて
説明する。
In FIG. 12, at the time of "1.O", the TLB hit signal 141 is checked first, and if it is not output (F2O), the protect error signal 143 from the gross protection/check circuit 76 is checked. , if no error has occurred, the selector 128 concatenates the in-page address field 123 of the virtual address register 120 and the part 114 of the physical address on the TLB 11'o to select the physical address.
, and sends its physical address to memory address bus 152 to access main memory 10.
In order to access the memory controller 77, the memory controller 77 outputs the simulator activation signal 151. (F2O) Next, F of (2)
Memory access during paging by the CP 22 will be explained.

FCP22よ多出力された仮想アドレスは、共通バス5
0を経由してMCU12内の仮想アドレスレジスタ12
0に’セットされる。
The virtual addresses output from the FCP22 are transferred to the common bus 5.
0 to the virtual address register 12 in the MCU 12
Set to 0.

この場合も、まずTLB110′f:アクセスし、アク
セスしたTLBIIOのエントリのVビット111ノに
よシ、先程と同 様にその後の処゛理が3つに分かれる。
In this case as well, the TLB 110'f: is first accessed, and the subsequent processing is divided into three parts as before, depending on the V bit 111 of the accessed TLBIIO entry.

■ veノット11=O,、Cビット112=0の時。■ When ve knot 11=O, C bit 112=0.

主メモリ10の変換テーブル130の読み出し■ Vビ
ット111=1.いビット112=1の時。
Read conversion table 130 in main memory 10 ■ V bit 111 = 1. When bit 112=1.

この時、TLBヒツト信号141がチェックされる。(
F30)TLBヒツトを示していれば、アクセスレジス
タ72上で作成された物理アドレスで主メモリ10をア
クセスする。(F40)TLBヒツト信号が出ていない
場合は、主メモリ10の変換テーブル130を読み出す
。(FIO)■ Vビア)=1.Cビニ7ト112=0
(7)時TLBヒツト信号141がチェック亭れる。
At this time, the TLB hit signal 141 is checked. (
F30) If it indicates a TLB hit, access the main memory 10 using the physical address created on the access register 72. (F40) If the TLB hit signal is not output, the conversion table 130 in the main memory 10 is read. (FIO) ■ V via) = 1. C vinyl 7to112=0
(7) The TLB hit signal 141 is checked.

(F215) TLBヒツト信号141が出ている時は、禁止区域をア
クセスしていることになるので、FCP′ 22にエラ
ーを知らせる。(F220)次に、TLBミスの場合の
、主メモリ10上の変換テーブル130を読み出す時の
処理を説明する。
(F215) When the TLB hit signal 141 is output, it means that a prohibited area is being accessed, so an error is notified to the FCP' 22. (F220) Next, the process of reading the conversion table 130 on the main memory 10 in the case of a TLB miss will be described.

変換テーブル130nよテーブルに必要なメモ、り容量
を減らすため、アドレス変換に必要な情報を有するペー
ジテーブル132と、そのページテーブル132の先頭
アドレスを保持するセグメントテーブル131から成る
。TLBミス時には1、まずセグメントテーブルの先頭
アドレスを保持するレジスタ126 (STOR>の内
容と、仮想アドレスレジスタ120のセグメントアドレ
ス(SA)121をアゲ−127で加算して物理アドレ
スを作シ、それでセグメントテーブル131の該当する
位置の内容をリードデータバス155上に読み出して来
る。このデータには、ページテーブル132の先頭アド
レスが保持されておシ、この値と、仮想アドレスレジス
タ1200ベージアト7* (PA)122をアダー1
27で加算してアドレスを作シ、ページテーブル132
から変換に必要な情報を読み出す。(、F’I O) このページテーブル132に:は、Mビットの他、TL
B110内の、Vピット111と仮想アドレス    
 ′の一部113(VPA)を除く情声を含んでおり、
このMビットとCビットがリードデータバス155の一
部155−1を介してアドレス変換占ントローラ125
に入力され、これらのビットパターンによシ次の様な処
理を取る。
In order to reduce the memory capacity required for the conversion table 130n, it consists of a page table 132 having information necessary for address conversion and a segment table 131 holding the start address of the page table 132. When a TLB miss occurs, it is set to 1.First, the contents of the register 126 (STOR> that holds the start address of the segment table) and the segment address (SA) 121 of the virtual address register 120 are added to create a physical address, and then the segment The contents of the corresponding position in the table 131 are read onto the read data bus 155. This data holds the start address of the page table 132, and this value and the virtual address register 1200 ) 122 to adder 1
27 to create the address, page table 132
Read the information necessary for conversion from . (, F'I O) In this page table 132: In addition to the M bit, the TL
V pit 111 and virtual address in B110
' Contains emotional voices except for part 113 (VPA),
These M bits and C bits are transferred to the address conversion controller 125 via a portion 155-1 of the read data bus 155.
The following processing is performed based on these bit patterns.

■ Mビット二〇、Cビット=00時 該当ページは主メモリ10上に無く、外部メモリ20上
にあることを示しておシ、′このページのアクセス要求
に対してはミッシングページフォールト信号142を出
して、該当プロセッサにページフォールトを知らせる。
■ When M bit 20 and C bit = 00, it indicates that the corresponding page is not in the main memory 10 but in the external memory 20, and 'missing page fault signal 142 is sent in response to an access request for this page. to notify the relevant processor of the page fault.

(F45) ■ Mピット二〇、Cビット=1の時 該当ビットは現在ページング中であることを示している
ので、FCP22以外のメモリアクセスに対してはその
メモリアクセスを禁止し、ミツ7ングベージフオールト
信号142を出す。(F45)FCP22からのメモリ
アクセスの場合は、!I’LB110に登豐してアクセ
スを行う、、(F20)OMピット=1.Cビット二〇
の時 読み出されたリードデータの一部155−2と仮想アド
レスの一部120−1、及びVビット「1」がTLBl
loに登録され、(F20)V、C以上述べたように、
アドレス変換装置75゛は、各プロセッサからの仮想ア
ドレスによるメモリアクセスに対し、仮想アドレスから
物理アドレスへのアドレス変換を集中して実施すること
が可能でアドレス変換の制御が単純となる。
(F45) ■ When the M pit is 20 and the C bit = 1, the corresponding bit indicates that paging is currently in progress, so memory access other than FCP22 is prohibited, and the M7 page is disabled. A fault signal 142 is issued. (F45) In case of memory access from FCP22,! Climb to I'LB110 and access, (F20) OM pit=1. Part 155-2 of the read data read when the C bit is 20, part 120-1 of the virtual address, and the V bit "1" are TLB1.
registered in lo, (F20) V, C As mentioned above,
The address translation device 75' can centrally perform address translation from virtual addresses to physical addresses for memory accesses from virtual addresses from each processor, thereby simplifying control of address translation.

また、FCP22からのアクセスと、他のプロセッサか
らのアクセスとの制御方式を変更することによシ、ペー
ジング中のページに対する他のプロセッサからのアクセ
スを禁止することが可能で、データの保全が゛可能とな
る。
In addition, by changing the control method for access from the FCP 22 and access from other processors, it is possible to prohibit access from other processors to the page being paged, which improves data integrity. It becomes possible.

次に、ミッシングページフォールト時の動作について説
明する。
Next, the operation at the time of a missing page fault will be explained.

ページフォールト信号を要求元プロセッサが受取った時
には、その時に実行していたタスクを中断し、要求した
アドレスを−含むページを主メモリ10にロードするた
めに、FCP22に起動をか・ける。FCP22はこの
起動を受けて、該当ページを読み出し、これが完了する
と終了割込みを発生する。この時には必要なページは主
メモリ10上にロールインされているために、前記中断
されたタスクを再開する。このタスクが中断されている
間、当該プロセッサは他のタスクを実行する。
When a page fault signal is received by the requesting processor, it interrupts the task it is currently executing and activates FCP 22 to load the page containing the requested address into main memory 10. In response to this activation, the FCP 22 reads the corresponding page, and when this is completed, generates an end interrupt. At this time, since the necessary pages have been rolled into the main memory 10, the interrupted task is resumed. While this task is suspended, the processor performs other tasks.

次に命令キャッシュ41とデータキャッシュ42につい
て説明する。第13図は命令キャッシュ41の構成例を
示した図である。主メモリ1゜からコピーして来たデー
タが岑ヤッンユデータ部81−■上にあシ、そのデータ
のアドレスがディレクトリイ82−Iと無効化ディレク
トリイ83−■にあシ、またこれらが有効か否かを示す
情報が有効ビットレジスタ84−Iにある。ディレクト
リイ82−Iと無効化ディレクトリイ83−Iの内容は
同じであシ、性能を高めるため分けである。前薯はIユ
ニット43がアクセスしたデータがキャッシュデータ部
81−Iにあるか否かのチェックに使用し、後者は他の
プロセッサが主メモリ10に書込んだデータがキャッシ
ュデータ部81−■に取込まれている場合に、既にその
データは古くなっているので無効化しなければならない
(これを無効化処理と呼ぶ)が、そのためのチェックに
使用する。
Next, the instruction cache 41 and data cache 42 will be explained. FIG. 13 is a diagram showing an example of the configuration of the instruction cache 41. The data copied from the main memory 1° is located on the data section 81-■, and the addresses of the data are located in the directory 82-I and invalidation directory 83-■, and are these valid? Information indicating whether or not this is the case is in the valid bit register 84-I. The contents of the directory 82-I and the invalidation directory 83-I are the same, but they are separated to improve performance. The former is used to check whether the data accessed by the I unit 43 is in the cache data section 81-I, and the latter is used to check whether the data written to the main memory 10 by another processor is in the cache data section 81-■. If the data has been imported, it is already old and must be invalidated (this is called invalidation processing), but this is used to check for this purpose.

次に、この命令キャラ゛ 説明する。なお、命令キャッシュ41はデータキャッジ
′L42とは異なシ、ライトアクセスは処理第14図は
リードアクセスのキャッシュミス時のフロー、第15図
は無効化処理のフローを示している。
Next, this command character will be explained. Note that the instruction cache 41 is different from the data cache 'L42; write access processing is shown in FIG. 14, which shows the flow when a read access cache miss occurs, and FIG. 15, which shows the invalidation processing flow.

(1)リードアクセス(第14図参照)■ エユニット
43から起動信号91−工が来たら、仮想アドレス92
−■の一部、ここではビット(18−27)でディレク
トリイ82−Iと有−工の内容を読み出し、デ イレクトリイ82−Iの内容と仮想アドレス92−■の
ビット(0−17)をコンパレータ160−Iで一致チ
ェックを行い、またその内容をパリティチェッカー16
1−Iでチェックする。そし      ・てコンパレ
ータ160−Iが一致を示シ、パリティエラーが発生し
てなく、かつ有効ビットレジスタ84−Iが有効である
ことを示しているならば、ゲート169−Iを介してキ
ャツシュヒツト信号170−Iが命令キャッシュコント
ローラ162−Iに出され、命令キャッシュコントロー
ラ162−Iは、仮想アドレスのビット(18−29)
でアクセスされたキャッシュデータ部81−Iの内容を
、リードデータバ ■ユニット43に対して終了信号93−Iを返す。
(1) Read access (see Figure 14) ■ When the activation signal 91- is received from the unit 43, the virtual address 92
Part of -■, here bits (18-27), read the contents of directory 82-I and data, and read the contents of directory 82-I and bits (0-17) of virtual address 92-■. The comparator 160-I performs a match check, and the contents are checked by the parity checker 16.
Check with 1-I. Then, if the comparator 160-I indicates a match, no parity error has occurred, and the valid bit register 84-I indicates that it is valid, the cache hit signal 170 is output via the gate 169-I. -I is issued to instruction cache controller 162-I, and instruction cache controller 162-I selects bits (18-29) of the virtual address.
An end signal 93-I is returned to the read data bar unit 43 for the contents of the cache data section 81-I accessed in the above.

■ キャッシュミスの場合は、命令キャッシュコントロ
ーラ162−Iは、起動バス占有要求51を出す。
(2) In the case of a cache miss, the instruction cache controller 162-I issues an activation bus occupancy request 51.

■ 占有要求51が許可されたら、ゲート85−Iを開
き、起動バス55に仮想アドレス(VA)。
(2) When the occupancy request 51 is granted, the gate 85-I is opened and the virtual address (VA) is transferred to the startup bus 55.

アクセスの種゛類(FUNC)、アクセスキー(AKE
Y)を転送する。なお、このアクセスキー(AKEY)
には命令読み出しであることを付加する。
Access type (FUNC), access key (AKE)
Transfer Y). In addition, this access key (AKEY)
Add that it is an instruction read.

■ セット信号172−Iによシ、仮想アドレスのビッ
ト(θ〜17)をディレクトサイ82−■、無効化ディ
レクトリイ83−Iへ書き込み、■をセットする。本処 からデータバス56を介して、 リードデータ(RD)が、また応答バス57を介して終
了信号とリターンコード(アクセス中に発生したエラー
及びページフォールトの情報)(RC)が送られてきた
らレジスタ86−Iにラッチする6MCU12の説明で
も述べたように、最初に送られて来たデニタは、■ユニ
ット43がアクセスしたデータであるので、リターンコ
ード(RC)が次の(1)〜(3)の状態を示している
時、(第14図(B)に示す条件(イ)成立時、)は、
■ユニット43に終了信号93−Iとリードデータ94
−Iとリターンコード95−工を返す。  □(1) 
 No  Error  (x −)−力発生してない
時)(2)  page pault  (ページフォ
ールトが発生した時、) (3)SOftEr′ror(ソフトによるエーラー、
例えばグロテクションエラーが発生したりまた、)(a
rd Error  (ハードが原因CD、x−ラー)
の場合は、再度主メモリ10を特徴とする特許によって
、救える場合が多いので、リトライを行う。この為、上
記の信号を返さないが、リトライ回数が規定回数を越え
に場合、すなわち、リトライオーバーの場合には、エラ
ー報告を行うために、上記の信号を返す。そして、主メ
モリ10から読み出して来たリードデータをキャッシュ
データ部81−■に書き込む。
(2) According to the set signal 172-I, the bits (θ to 17) of the virtual address are written to the directory directory 82-2 and the invalidation directory 83-I, and the bit (2) is set. When read data (RD) is sent from this center via the data bus 56, and an end signal and return code (information on errors and page faults that occurred during access) (RC) are sent via the response bus 57. As mentioned in the explanation of the 6MCU12 latched in the register 86-I, the first data sent is the data accessed by the unit 43, so the return code (RC) is one of the following (1) to ( 3), (when condition (a) shown in FIG. 14 (B) is satisfied),
■ End signal 93-I and read data 94 to unit 43
-I and return code 95-work are returned. □(1)
No Error (x −) - when no force is generated) (2) page pault (when a page fault occurs) (3) SOftEr'ror (software error,
For example, if a protection error occurs or if
rd Error (CD caused by hardware, x-ler)
In this case, the patent that features the main memory 10 can often be saved, so a retry is performed. For this reason, the above signal is not returned, but if the number of retries exceeds the specified number, that is, in the case of retry over, the above signal is returned in order to report an error. Then, the read data read from the main memory 10 is written into the cache data section 81-■.

■、■、■ MCU12から送られてくる残りのリード
データをキャッシュデータ部81−Iに書込む。■のス
テージで既にエユニット43に対しては終了信号93−
Iを戻しであるので、この間、■ユニット43は別な動
作が可能である。■の段階ではこれに加えて、■〜■の
ステージでエラーやページフォールトが発生したかをチ
ェックし、発生してない場合には命令キャッシュ41の
動作を止める。
■, ■, ■ Write the remaining read data sent from the MCU 12 to the cache data section 81-I. The end signal 93- has already been sent to the e-unit 43 at stage (3).
Since I is returned, during this time, unit 43 can perform other operations. In addition to this, in stage (2), it is checked whether an error or page fault has occurred in stages (2) to (2), and if no error or page fault has occurred, the operation of the instruction cache 41 is stopped.

■ エラーやページフォールトが発生している場合には
、■のステージでセットした有効ビットレジスタ84−
Hに対し、命令キャッシュコントローラ162−Iよシ
有効ビットクリア信号171−Iを出して、クリアしキ
ャッシュデータ部81−Hの該当データを使用出来ない
様にする。また、■のステージで)(ard ライオーバしてない場合には(第14図(B)に示す条
件に)成立)、リトライを行うため■のステージに飛ぶ
■ If an error or page fault has occurred, the valid bit register 84-
The instruction cache controller 162-I outputs a valid bit clear signal 171-I to the instruction cache controller 162-I to clear the valid bit so that the corresponding data in the cache data section 81-H cannot be used. In addition, at stage (2) (if ard has not been overridden (the condition shown in FIG. 14(B)) is satisfied), the process jumps to stage (2) to perform a retry.

以上がリードアクセスの処理手順でる2が、先程述べた
坪にキャッシュ(命令、データキャッシュ共)では、い
わゆる無効化処理が必要となる。
The above is the read access processing procedure (2), but in the case of the above-mentioned cache (both instruction and data cache), so-called invalidation processing is required.

以下、その手順を説明する。The procedure will be explained below.

(2)無効化処理(第15図参照) ■ 起動バス55転送中の仮想アドレス(VA)とアク
セスの種類(FUNC)を毎回レジスタ87に取込む。
(2) Invalidation processing (see FIG. 15) ■ The virtual address (VA) and type of access (FUNC) being transferred by the activation bus 55 are taken into the register 87 each time.

■ 上記仮想アドレスのピット(18−27)で、無効
化ディレクトリイ83.Iの内容を読出し、無効化する
必要があるか否かを無効化判定回路165−Iでチェッ
クすると共に、6そのアドレスのピット(18−27)
をレジスタ88−■にセットする。
■ At the pit (18-27) of the above virtual address, invalidate directory 83. The invalidation determination circuit 165-I reads out the contents of I and checks whether or not it needs to be invalidated.
is set in register 88-■.

■ そして無効化が必要な場合は、レジスタ88−■の
アドレスで該当の有効ピット84−Iをクリアする。こ
のため無効化判定回路165−工から有高ビットクリア
信号171−Iを出す。
(2) If invalidation is required, the corresponding valid pit 84-I is cleared using the address of the register 88-2. For this reason, the invalidation determination circuit 165-I outputs a high bit clear signal 171-I.

次に無効化が必要な場合を詳細に説明する。まず、無効
化起動バス55から取込んだアクセスの種類(FUNC
)がライトアクセスを示し、それが他方からのものであ
る時行う。そして、−次に示す条件のいずれかを満たし
た時に無効化を行う。
Next, cases in which invalidation is necessary will be explained in detail. First, the type of access (FUNC) taken in from the invalidation startup bus 55
) indicates a write access and it is from the other side. Then, invalidation is performed when any of the following conditions is met:

(a)  レジスタ87−Iのアドレスのピット(18
−27)で無効化ディレクトリイ83−Iを読出し、そ
の内容とアドレスのピット(0−17)をコ/パレータ
163−Iで比較し、一致した時。
(a) Register 87-I address pit (18
-27) reads the invalidation directory 83-I, and compares its contents with the address pits (0-17) using the co/parator 163-I, and they match.

Φ)無効化ディレクトソイ83−工を読出した際に、パ
リティチェッカ164−Iでパリティエラーが検出され
た時。
Φ) When a parity error is detected by the parity checker 164-I when reading the invalidation directory 83-I.

(C)  無効化ディレクトリイ83−IをJOBP4
内で使用している時。(■にチェックが出来ないため) 以上無効化処理について述べたが、次に(1)のり−1
,無効化ディレクトソイ83−Iヘアドレスを書込み、
有効ピットレジスタ84−Iをセットしなければならな
い理由を明らかにする。
(C) Invalidate directory 83-I to JOBP4
When used indoors. (Because ■ cannot be checked) I have described the invalidation process above, but next (1) Glue-1
, write the address to the invalidation directory 83-I,
The reason why the valid pit register 84-I must be set will be explained.

第16図はリードアクセスがキャッシュミスになシ、主
メモリ10をリードに行く場合と、主メモリlOに対し
て他からライトアクセスが行われ  −た場合のキャッ
シュの無効化処理が競合した時に、各部分がどの様に使
用されるかをタイムチャートで示している。無効化処理
については斜線で示してあシ、それぞれタイムスロット
1と3で起動バス55.データバス56を転送中の≧イ
トアクセスに対して、タイムスロット2と4で無効化デ
ィレクト、リイ83−Iのチェックを行い、タイムスロ
ット3と5の前半で有効ビットレジスタ84−■をクリ
アし無効化している。一方、キャッシュミスとなったり
−ドア′クセスは、タイムスロット2で起動バス55に
アドレスを転送しているので、主メモリ10へのアクセ
スの順番としては、タイクセスよシ後で、タイムスロッ
ト3で起動バス55を転送中のライトアクセスよシ前と
なる。従ってキャッシュと主メモリ10のデータの一致
を保つためには、ライトアクセスが無効化ディレクトリ
イ83−Iをチェックするタイムスロット2と4の間で
、キャッシュミスを起こしたリードアクセスのアドレス
を無効化ディレクトクイ83−工に書込まなければなら
ないし、またチェックの一■を無効化する タイムスロット3と5の間で、有効ビットレジスタ84
−Iをセットする必要がある。これらの制御が必要な理
由は、主メモリ10で複数のメモリアクセスを同時に処
理しているからである。
FIG. 16 shows that when a read access does not result in a cache miss, and there is a conflict between cache invalidation processing when going to read the main memory 10 and when a write access is made from another to the main memory 10, A time chart shows how each part is used. The invalidation process is indicated by diagonal lines, and the startup bus 55. For ≧ite access during data bus 56 transfer, the invalidation directory 83-I is checked in time slots 2 and 4, and the valid bit register 84-■ is cleared in the first half of time slots 3 and 5. It is disabled. On the other hand, if a cache miss occurs, the access to the door transfers the address to the startup bus 55 in time slot 2, so the order of access to the main memory 10 is after the access in time slot 3. This occurs before a write access is made while the startup bus 55 is being transferred. Therefore, in order to keep the data in the cache and main memory 10 consistent, the address of the read access that caused the cache miss must be invalidated between time slots 2 and 4 when the write access checks the invalidation directory 83-I. Between timeslots 3 and 5, the valid bit register 84 must be written to the direct register 83 and also invalidates the check bit 84.
-I needs to be set. These controls are necessary because the main memory 10 processes multiple memory accesses simultaneously.

なお本構成例では、アドレス情報を2ケ所、す82−I
と無効化ブイレフ トリイ83−Iに持っているため、無効化ディレクトリ
イ83−Iの方しか上記の制約を受けないが、ナイレク
トリイを1ケ所に持つ場合は、当然上記の制約を受ける
In this configuration example, the address information is stored in two places, 82-I
Since the invalidation directory 83-I has the invalidation directory 83-I, only the invalidation directory 83-I is subject to the above restrictions, but if the directory is located in one location, the above restrictions naturally apply.

次にデータキャッシュ42について説明する。Next, the data cache 42 will be explained.

第17図はデータキャッシュ42の構成例を示した図で
あシ、無効化処理の回路1sa−Dは命令キャッシュ4
1と同じであるため省略しである。
FIG. 17 is a diagram showing an example of the configuration of the data cache 42, and the invalidation processing circuits 1sa-D are the instruction cache 42.
It is omitted because it is the same as 1.

尚第13図と第17図で、サフィックスが違うだけのも
のは相当物である。第13図の命令キャラ   −ンユ
ではサフィックスに■、第17図のデータキャッシュで
はサフィックスにDを使用している。
In addition, in FIG. 13 and FIG. 17, the only difference in suffix is that they are equivalent. The instruction character string shown in FIG. 13 uses the suffix ``■'', and the data cache shown in FIG. 17 uses the suffix D.

クセスをサポートしなければならない点であシ、このラ
イトアクセス時間を短縮するために共通バス送出用バッ
ファ89−Dを設け、ライト時には仮想アドレス92−
D、ライトデータ95−D。
In order to shorten this write access time, a common bus sending buffer 89-D is provided, and when writing, a virtual address 92-D is provided.
D. Write data 95-D.

制御m報96 ffDをこのバッファ89−Dにセット
しただけで、終了信号93−DをEユニット様に制御し
ている。
By simply setting the control m-report 96 ffD in this buffer 89-D, the end signal 93-D is controlled like the E unit.

次に、このデータキャッシュ42の動作につい    
  ′て゛説明する。但し、リードアクセスの処理は命
令キャッシュ41と同じであるので省略する。
Next, regarding the operation of this data cache 42,
'I'll explain. However, since the read access processing is the same as that of the instruction cache 41, the description thereof will be omitted.

(3)ライトアクセス(第18図参照)。(3) Write access (see Figure 18).

■ Eユニット44から起動信号91−Dが来たら、仮
想アドレス92−D、ライトデータ95−D、制御情報
96−D(アクセスの種類、アクセスキー等)を共通ノ
(ス送出用)(ソファ89−Dにセットし、Eユニット
44に対して終了信号93−Dを返す。この際、ディレ
クトリイ82−りと有効ピットレジスタ84−Dをチェ
ックしキャツシュヒツト(信号170−Dが出てる)な
らば、キャッシュデータ部81の仮、想アドレスのピッ
)(18−271で示される位置にデータを書込む。 
       − ■ データキャッシュコントローラ162−Dよシ起動
バス占有要求51.データノ(ス占有要求52を出す。
■ When the activation signal 91-D comes from the E unit 44, the virtual address 92-D, write data 95-D, and control information 96-D (access type, access key, etc.) are sent to the common node (for sending out the sofa). 89-D and returns an end signal 93-D to the E unit 44. At this time, check the directory entry 82- and the valid pit register 84-D, and if the cache hit (signal 170-D is output). For example, data is written to the position indicated by the virtual address 18-271 in the cache data section 81.
- ■ Data cache controller 162-D activation bus occupancy request 51. A data node (space occupancy request 52) is issued.

■ 両方の占有要求が許可されたら、ゲート85−Dを
開き起動バス55に仮想アドレス(VA)、アクセスの
種類(FUNC)、アクセスキー(AKEY)を転送し
、データノくス56にはライトデータを転送する。
■ When both occupancy requests are granted, open the gate 85-D and transfer the virtual address (VA), access type (FUNC), and access key (AKEY) to the startup bus 55, and write data to the data node 56. Transfer.

■ MCU12から応答バス57全通して終了信号とリ
ターンコードが送られてきたらレジスタ86−Dにラッ
チする。そしてリターンコードをチェックし、エラーや
ページフォールトを起こしてない時には共通バス送出用
バッファ89−Dからそのアクセスを取シ除き1.処理
を終了する。一方、第14図(B)に示した■の条件、
すなわち)(ard Erro’r  が発生しかつリ
トライオーバしてない時には、リトライを行うため■の
ステージに飛ぶ。
(2) When the end signal and return code are sent from the MCU 12 through the entire response bus 57, they are latched into the register 86-D. Then, the return code is checked, and if no error or page fault has occurred, the access is removed from the common bus sending buffer 89-D.1. Finish the process. On the other hand, the condition of ■ shown in FIG. 14(B),
That is, if ard Error occurs and the retry is not over, the process jumps to stage 2 to perform a retry.

■ 上記以外の場合には、共通バス送出用バッファ89
−Dのアドレスで有効ピットレジスタ84−Dをクリア
すると共に、Eユニット44に対して工2−.ページフ
ォールトの発生を報告す由は、例えばプロテクションエ
ラーの場合は、書込んではならないキャッシュデータ部
81−Dのデータに対して、既に■のステージで書込み
を行っているためである。
■ In cases other than the above, the common bus sending buffer 89
-D address clears the valid pit register 84-D, and also sends the E unit 44 to the address 2-. The reason for reporting the occurrence of a page fault is that, in the case of a protection error, for example, data in the cache data section 81-D, which should not be written, has already been written at stage (3).

尚データキャッシュ42から主メモリ10にうイト起動
したアドレスも起動バス65からデータキャッシュのレ
ジスタ87−D(無効化処理の回路180−Dに含まれ
ている)にセントされるが、それに対しては、自分自身
が出したものであるからデータキャッシュコントローラ
162−Dヨ、jp無効化処理の回路180−Dに対し
て信号173−りを送り無効化を行なわない様に制御す
る。命令キャッシュ41はライトアクセスは行なわない
ので、この信号173−Dに相当するものはない。
It should be noted that the address booted from the data cache 42 to the main memory 10 is also sent from the boot bus 65 to the data cache register 87-D (included in the invalidation processing circuit 180-D); Since this is generated by the data cache controller 162-D, the data cache controller 162-D sends a signal 173- to the JP invalidation processing circuit 180-D to control the data cache controller 162-D so as not to perform invalidation. Since the instruction cache 41 does not perform write access, there is no equivalent to this signal 173-D.

以上詳細に説明したように、本発明によれば、複数のプ
ロセッサがちシ、その中の少なくとも1つのプロセッサ
は仮想アドレスでアクセスするキャッシュメモリを持ち
、アドレス変換装置を全プロセッサで共有する構成のデ
ータ処理装置が実現
As described in detail above, according to the present invention, there are a plurality of processors, at least one of which has a cache memory that is accessed using a virtual address, and an address translation device is shared by all the processors. Processing equipment realized

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

第1図は、本発明が適用されるデータ処理装置の全体構
成を示した図、第2図は第1図の共通/(スの構成例を
示した図、第3図はアクセスごとに共通バスのどの部分
を使用するかを示した図、第4図は共通バスの使用例を
示す図、第5図は共通バスの占有制御の様子を示した図
、第6図はイン    、タロツク信号が出ている時の
共通バスの占有制御の様子を示した図、第7図は占有制
御回路の構成例を示した図、第8図(A)〜(、、C)
はMCUでの処理フローの例及びMCUで複数のアクセ
スをオーバーランプさせて処理していることを示した図
、第9図はMCUの構成例を示した図、第10図(、A
 ) 、、、(,13)はメモリボードの構成例及び1
6Byteリ一ド時のデータ返送の順番を示した図、第
11図はTLBによるアドレス変換装置を示した図、第
12図はアドレス変換のフローを示した図、第13図は
命令キャッシュの構成例を示した図、第14図はキャッ
シュへのリードアクセス時の処理フローの説明図、第1
5図はキャッシュ無効化の処理フローの説明図、第16
図はキャッシュ各部分の使用タイミングの〒を示した図
、       □第17図はデータキャッシュの構成
例を示した図、第18図はライトアクセスの処理フロー
の説明図である。 10・・・主記憶装置、12・・・メモリアクセスコン
トローラ、20・・・外一部記憶装置、22・・・ファ
イルプロセッサ、30・・・入出カプロセッサ、40・
・・ジョブプロセッサ、41・・・命令キャッシュ、4
2・・・データキャッシュ、43・・・エユニット、4
4・・・Eユニット、50・・・共通バス、75・・・
アドレス変換製筒t(jJ 1− −                 uvJz
図 憤 3図 01よイリこ用 第6図 7747aント (Cノ 、イ、イ07.リート・[=ζヨ[=[コツdコロコ七
戸=]=ココ)=]!$tlt  図 (AI Re t?y 第  tS   国 第  18 図 第1頁の続き @発 明 者 加藤猛 日立事大みか町5丁目2番1号 株式会社日立製作所犬みか工場 内 0発 明 者 河上哲也 日立市幸町3丁目2番1号日立 エンジニアリング株式会社内 0出 願 人 日立エンジニアリング株式会社日立市幸
町3丁目2番1号
FIG. 1 is a diagram showing the overall configuration of a data processing device to which the present invention is applied, FIG. 2 is a diagram showing an example of the configuration of the common / Figure 4 shows an example of how the common bus is used; Figure 5 shows how the common bus is controlled; Figure 6 shows the input and tarlock signals. 7 is a diagram showing an example of the configuration of the occupancy control circuit, and FIG. 8 (A) to (,,C)
is a diagram showing an example of the processing flow in the MCU and how multiple accesses are processed by overlapping the MCU, FIG. 9 is a diagram showing an example of the configuration of the MCU, and FIG. 10 (,A
) , , (,13) are memory board configuration examples and 1
Figure 11 shows the order of data return when reading 6 bytes, Figure 11 shows the address translation device using TLB, Figure 12 shows the flow of address translation, and Figure 13 shows the structure of the instruction cache. A diagram showing an example, Figure 14 is an explanatory diagram of the processing flow at the time of read access to the cache, Figure 1
Figure 5 is an explanatory diagram of the processing flow of cache invalidation, No. 16
The figure shows the usage timing of each part of the cache, □Figure 17 shows an example of the configuration of the data cache, and Figure 18 is an explanatory diagram of the write access processing flow. DESCRIPTION OF SYMBOLS 10... Main memory device, 12... Memory access controller, 20... External partial storage device, 22... File processor, 30... Input/output processor, 40...
...Job processor, 41...Instruction cache, 4
2...Data cache, 43...E unit, 4
4...E unit, 50...Common bus, 75...
Address conversion cylinder t (jJ 1- - uvJz
Figure 3 Figure 01 Yo Iriko Figure 6 7747a (Cノ, I, I07. Reet・[=ζYO[=[Kotd d Koroko Shichinohe=]=Here)=]! $tlt Figure (AI Ret?y No. tS Country No. 18 Figure 1 page continued @ Inventor Takeshi Kato Hitachi Omika-cho 5-2-1 Inumika Factory, Hitachi, Ltd. Inventor Tetsuya Kawakami 3-2-1 Saiwai-cho, Hitachi City Hitachi Engineering Co., Ltd. 0 applicants Hitachi Engineering Co., Ltd. 3-2-1 Saiwai-cho, Hitachi City

Claims (1)

【特許請求の範囲】 1、プログラムおよびデータを格納する主記憶装置と、
主記憶装置に格納されるべきプログラムおよびデータを
格納する外部記憶装置と、命令を実行するために主記憶
装置に対して仮想アドレスでメモリアクセスを行う少な
くとも1つのジョブプロセッサと、主記憶装置と外部記
憶装置間でのグ、ログラムおよびデータの入出力を行う
ために上記。 憶装置に対して仮想アドレスでメモリアクセスを行うフ
ァイルプロセッサと、該主記憶装置に接続されるもので
あって、各プロセッサから共通に使用され、仮想アドレ
スを物理アドレスに変牟するアドレス変換装置を含むメ
モリアクセスコントローラを有し、該ジョブプロセッサ
は、仮想アドレスでアクセスされるキャッシュメモリを
有し、該キャッシュメモリは、該ファイルプロセッサが
主記憶装置への書き込みを行う場合の仮想アドレスを受
取り、この仮想アドレスに対応するデータブロックを保
持している場合、当該データブロックを使用できないよ
うにする無効化処理手段を含むデータ処理装置。 2、キャッシュメモリは、主記憶装置の一部のコピーを
保持するデータ部と、該データ部に格納された主記憶装
置上の仮)1アドレスを保持するディレクトリイ部と、
該仮想アドレスが有効か否かを表示する有効表示部と、
ファイルプロセッサから送られてくる仮想アドレスをラ
ッチするラツチレ”ジスタと、該ラッチレジスタにラッ
チされた仮想アドレスと該ディレクトリイ部に保持され
た仮想アドレス°を比較する比較手段を有し、比較結果
に―じて該有効表示部をクリアするように・している特
許請求の範囲第1項記載のデータ処理装置。 3、アドレス変換装置は、仮想アドレスに対応す   
 ゛る物理アドレスが主記憶装置上にあるか否かを判定
し、この判定結果をアクセス要求を出したプロセッサに
連絡する手段を有する特許請求の範囲第  ゛1項記載
のデータ処理装置。 4、ジョブプロセッサ、ファイルプロセッサ、メモリア
クセスコントローラは共通バスに接続されている特許請
求の範囲第1項記載のデータ処理装置。 5、キャッシュメモリは、共通バスに接続され、共通バ
ス上の仮想アドレスを受取るようになっている特許請求
の範囲第4項記載のデータ処理装置。
[Claims] 1. A main storage device that stores programs and data;
an external storage device that stores programs and data to be stored in the main storage device; at least one job processor that performs memory access using virtual addresses to the main storage device to execute instructions; The above for inputting and outputting programs, programs, and data between storage devices. A file processor that performs memory access to a storage device using a virtual address, and an address conversion device that is connected to the main storage device and is commonly used by each processor and converts a virtual address into a physical address. the job processor has a cache memory accessed by virtual addresses; the cache memory receives virtual addresses when the file processor writes to main storage; A data processing device including, when holding a data block corresponding to a virtual address, invalidation processing means for making the data block unusable. 2. The cache memory includes a data section that holds a copy of a part of the main storage device, and a directory section that holds a temporary address on the main storage device that is stored in the data section.
a validity display section that displays whether the virtual address is valid;
It has a latch register that latches the virtual address sent from the file processor, and a comparison means that compares the virtual address latched in the latch register with the virtual address held in the directory section, and the comparison result is 3. The data processing device according to claim 1, wherein the data processing device clears the valid display section when the valid display section is cleared.3.
2. The data processing device according to claim 1, further comprising means for determining whether or not the physical address exists on the main storage device, and communicating the result of this determination to the processor that has issued the access request. 4. The data processing device according to claim 1, wherein the job processor, file processor, and memory access controller are connected to a common bus. 5. The data processing device according to claim 4, wherein the cache memory is connected to a common bus and receives virtual addresses on the common bus.
JP56156193A 1980-11-17 1981-10-02 Data processor Granted JPS5858666A (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP56156193A JPS5858666A (en) 1981-10-02 1981-10-02 Data processor
US06/320,934 US4481573A (en) 1980-11-17 1981-11-13 Shared virtual address translation unit for a multiprocessor system
CA000390161A CA1173567A (en) 1980-11-17 1981-11-16 Shared virtual address translation unit for a multiprocessor system
EP81109719A EP0052370B1 (en) 1980-11-17 1981-11-16 A virtual storage data processing system
DE8181109719T DE3176512D1 (en) 1980-11-17 1981-11-16 A virtual storage data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56156193A JPS5858666A (en) 1981-10-02 1981-10-02 Data processor

Publications (2)

Publication Number Publication Date
JPS5858666A true JPS5858666A (en) 1983-04-07
JPS6113261B2 JPS6113261B2 (en) 1986-04-12

Family

ID=15622400

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56156193A Granted JPS5858666A (en) 1980-11-17 1981-10-02 Data processor

Country Status (1)

Country Link
JP (1) JPS5858666A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60221851A (en) * 1984-02-17 1985-11-06 エヌ・ベ−・フイリツプス・フル−イランペンフアブリケン Data processor and memory access controller used therefor
JPH01280860A (en) * 1988-05-06 1989-11-13 Hitachi Ltd Multiprocessor system with multiport cache memory
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60221851A (en) * 1984-02-17 1985-11-06 エヌ・ベ−・フイリツプス・フル−イランペンフアブリケン Data processor and memory access controller used therefor
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
JPH01280860A (en) * 1988-05-06 1989-11-13 Hitachi Ltd Multiprocessor system with multiport cache memory
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching

Also Published As

Publication number Publication date
JPS6113261B2 (en) 1986-04-12

Similar Documents

Publication Publication Date Title
US4481573A (en) Shared virtual address translation unit for a multiprocessor system
US5802582A (en) Explicit coherence using split-phase controls
US4400770A (en) Cache synonym detection and handling means
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
JP3102495B2 (en) Virtual memory management method
US7620954B2 (en) Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors
JPH0743670B2 (en) Store-through cache management system
WO1988006760A2 (en) Central processor unit for digital data processing system including write buffer management mechanism
JPH0576060B2 (en)
JP2004054931A (en) System and method for memory migration in distributed memory multiprocessor system
JP3814521B2 (en) Data processing method and apparatus
JP4577729B2 (en) System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache
JPH0519176B2 (en)
JPS5858666A (en) Data processor
CA1290861C (en) Computer system architecture implementing split instruction and operand cache line-pair-state management
JP2813182B2 (en) Multiprocessor computer multifunction device
JPH055137B2 (en)
JPS5864690A (en) Control method for cash memory
JPH0715667B2 (en) Data processing device
JPH056706B2 (en)
JPH03230238A (en) Cache memory control system
JPS6138504B2 (en)
JPS6153747B2 (en)
JP2844679B2 (en) Access control method and information processing device
JP3381080B2 (en) Exclusive control method that can interrupt processing