JPS62144256A - 2-address port memory system - Google Patents

2-address port memory system

Info

Publication number
JPS62144256A
JPS62144256A JP60284310A JP28431085A JPS62144256A JP S62144256 A JPS62144256 A JP S62144256A JP 60284310 A JP60284310 A JP 60284310A JP 28431085 A JP28431085 A JP 28431085A JP S62144256 A JPS62144256 A JP S62144256A
Authority
JP
Japan
Prior art keywords
address
data
memory
cache
miss
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
JP60284310A
Other languages
Japanese (ja)
Inventor
Shinichi Habata
幅田 伸一
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP60284310A priority Critical patent/JPS62144256A/en
Publication of JPS62144256A publication Critical patent/JPS62144256A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To reduce the deterioration of the processing speed when a cache mistake occurs by deciding the cache hit and miss of two logic addresses at a time and at the same time giving accesses individually to plural memory banks. CONSTITUTION:When the data matching processing is carried out by a processor 400, the two logic addresses sent to address registers 210 and 220 of a cache memory 100 from data access units 410 and 420 undergo the decision for the cache hit and miss through an address arrays 230. When both logic addresses have a hit, the hit data is delivered to the processor 400 from a data array 250. When one of both addresses has the hit and the other has the miss, the hit data is delivered to the processor 400 from the array 250 and at the same time a data block including the miss data is sent to the processor 400 from a main memory 300 via the array 250.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、情報処理装置のメモリシステムに関し、特に
データのマツチングなどに見られる2個のデータを同時
にアクセスする処理を高速化する為に2個のアドレス入
力ポートを備える2アドレスポート・メモリシステムに
関するものである。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a memory system for an information processing device, and in particular, to speed up the process of accessing two pieces of data simultaneously, such as in data matching. The present invention relates to a two-address port memory system with two address input ports.

〔従来の技術〕[Conventional technology]

高レベル・プログラミング言語Prologなどを使用
した記号処理において、データのマツチング機能は記号
処理の処理速度に大きな影響を与える基本機能である。
In symbolic processing using a high-level programming language such as Prolog, the data matching function is a basic function that greatly affects the processing speed of symbolic processing.

データのマツチングは、マツチングの対象である2個の
データをアクセスし、データ・タイプを調べ、データ値
の比較又は変数への代入を行なう。しかし、単純に見え
るデータのマツチングも、文字列やリストなどの複数要
素から成るデータ・タイプの存在と、変数同士のマツチ
ングで発生する2個の変数をポインタで結びつけるパイ
ンディングによるポインタチェインの存在とが、データ
・アクセスとデータ・タイプの検査回数を増加させる。
Data matching involves accessing two pieces of data to be matched, checking the data types, and comparing data values or assigning them to variables. However, even the seemingly simple matching of data is complicated by the existence of data types consisting of multiple elements, such as strings and lists, and the existence of pointer chains caused by binding, which connects two variables using pointers, which occur when matching variables. increases the number of data accesses and data type checks.

この為に、記号処理の全処理時間におけるデータのマツ
チングに要する処理時間が占める割合が大きくなってい
る。さらに、データをマツチングする為に要求されるデ
ータ・アクセス回数の増加は、メモリシステムへのアク
セス要求回数の増加につながる。このことは、プロセッ
サの高速化だけでは、メモリシステムの処理速度がネッ
クとなる為に、全体の処理速度の向上に限界があること
を意味している。このメモリシステムのボトルネックを
解消する手段として、プロセッサ側に高速バッファ・メ
モリであるキャッシュ・メモリを使用している。
For this reason, the processing time required for data matching occupies a large proportion of the total processing time for symbol processing. Furthermore, an increase in the number of data accesses required to match data leads to an increase in the number of access requests to the memory system. This means that there is a limit to improving the overall processing speed by simply increasing the speed of the processor, since the processing speed of the memory system becomes a bottleneck. As a means to eliminate this bottleneck in the memory system, a cache memory, which is a high-speed buffer memory, is used on the processor side.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

プロセッサ側にキャッシュ・メモリを付加する従来の方
法は、処理に必要なデータがキャッシュ・メモリに存在
している限り、プロセッサでの高速処理が可能である。
The conventional method of adding a cache memory to the processor side allows the processor to perform high-speed processing as long as the data necessary for processing exists in the cache memory.

しかし、処理に必要なデータがキャッシュ・メモリに存
在しない場合は、メモリシステムのアクセス速度が遅い
為、処理速度が低下する。したがって、キャッシュ・メ
モリ上に必要とするデータが存在する確率が処理速度に
与える影響は大きい。必要とするデータがキャッシュ・
メモリ上に存在する確率を高める為には、短時間内で必
要とするデータがメモリ領域上で局所的に固まっている
ことが望ましい。古くから使用されているプログラミン
グ言語FORTRANやC0BOLなどでは、動的アク
セスデータがメモリ領域上に局所的に固まっているデー
タの局所性があった。
However, if the data required for processing does not exist in the cache memory, the access speed of the memory system is slow, so the processing speed decreases. Therefore, the probability that the required data exists in the cache memory has a large effect on the processing speed. The data you need is cached.
In order to increase the probability that data exists in memory, it is desirable that data required within a short period of time be locally consolidated in the memory area. Programming languages such as FORTRAN and C0BOL that have been used for a long time have data locality in which dynamically accessed data is locally fixed in a memory area.

高レベル・プログラミング言語Prologでは、変数
のマツチングによるボンタチェインの生成が頻繁に発生
する為、処理に必要なデータはメモリ領域上に広範囲に
わたって点在する傾向が従来の高級言語よりも強い。し
たがって、データの局所性がより少ない為に、キャッシ
ュ・メモリ上に必要とするデータが存在しないキャッシ
ュ・ミスの頻度が高くなる。キャッシュ・ミス時には、
必要とするデータをメイン・メモリからキャッシュ・メ
モリに転送するスワップ・イン処理が必要な為、プロセ
ッサは停止し必要なデータがアクセス可能となるまで待
機する。このプロセッサ停止時間は、キャッシュ・ミス
発生の頻度が増加すると、全体の処理時間に与える影響
も大きくなるという問題点がある。
In the high-level programming language Prolog, since Bontachains are frequently generated by matching variables, there is a stronger tendency for data required for processing to be scattered over a wide range of memory areas than in conventional high-level languages. Therefore, since the locality of data is less, the frequency of cache misses in which the required data does not exist in the cache memory increases. On a cache miss,
Since a swap-in process is required to transfer the required data from the main memory to the cache memory, the processor stops and waits until the required data becomes accessible. This processor stop time has a problem in that as the frequency of cache misses increases, the effect it has on the overall processing time also increases.

本発明の目的は、高レベル・プログラミング言語pro
logにおけるデータのマツチングを高速化する為に、
2個のアドレス入力ポートを備え、プロセッサからのマ
ツチング対象データ2個のアクセス要求を同時に受は付
は可能とし、さらにアクセス要求のあったデータが2個
ともヒツトした場合は従来のプロセッサ側にキャッシュ
・メモリを備えた装置と同等の処理速度でヒツト・デー
タを出力し、アクセス要求のあったデータの1個がヒツ
トで他の1個がミスの場合はヒツト・データの出力とミ
ス・データの処理を並列実行し、アクセス要求のあった
データが2個ともミスした場合は2個のミス・データの
処理をオーバラップすることでキャッシュ・ミス時の処
理速度低下を小さくすることのできる2アドレスポート
・メモリシステムを提供することにある。
The purpose of the invention is to develop a high-level programming language pro
To speed up data matching in log,
Equipped with two address input ports, it is possible to receive access requests from the processor for two pieces of data to be matched at the same time, and if both pieces of data requested to be accessed are matched, the data is cached on the conventional processor side. - Outputs hit data at the same processing speed as a device equipped with memory, and if one of the requested data is a hit and the other is a miss, the hit data and miss data are output. Two addresses that can execute processing in parallel and, if both requested data misses, overlap the processing of the two missed data to minimize the processing speed drop in the event of a cache miss. The purpose is to provide a port memory system.

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

本発明は、キャッシュ・メモリとメイン・メモリから成
る2アドレスポート・メモリシステムにおいて、前記キ
ャッシュ・メモリは、アドレス入力ポートを備えた第1
アドレス・レジスタと、アドレス入力ポートを備えた第
2アドレス・レジスタと、前記第1アドレス・レジスタ
と前記第2アドレス・レジスタが保持する2個の論理ア
ドレスに対するキャッシュのヒット・ミス判定を同時処
理するアドレス・アレイと、前記アドレス・アレイが行
なったキャッシュのヒット・ミス判定に基づき前記第1
アドレス・レジスタと前記第2アドレス・レジスタが保
持する2個の論理アドレスからヒツト処理用とミス処理
用の2種類の論理アドレスを決定するアドレス選択ユニ
ットと、前記キャッシュ・メモリがミスした時のリプレ
ースメント処理を制御するキャッシュ制御ユニットとを
備え、前記メイン・メモリは、前記キャッシュ・メモリ
がミスした時にミスしたデータを含むデータの管理単位
であるデータ・ブロックを前記メイン・メモリから前記
キャッシュ・メモリへ転送する制御を行なうメイン・メ
モリ制御ユニットと、前記キャッシュ制御ユニットから
のメイン・メモリ・アクセス要求を複数個受は付は可能
にする複数のメモリ・バンクとを備え、前記アドレス・
アレイが前記第1アドレス・レジスタと前記第2アドレ
ス・レジスタが保持する2個の論理アドレスに対するキ
ャッシュのヒット・ミス判定を同時に行ない、一方がヒ
ツトし他方がミスした時に、前記アドレス・アレイと前
記アドレス選択ユニットにより前記キャッシュ・メモリ
と前記メイン・メモリへ同時にアクセスを開始し、及び
、両方がミスした時に、前記メイン・メモリを構成する
前記複数メモリ・バンクへのアクセスを同時に処理する
ことを特徴としている。
The present invention provides a two-address port memory system consisting of a cache memory and a main memory, wherein the cache memory has a first address input port and a main memory.
simultaneous processing of cache hit/miss determination for two logical addresses held by an address register, a second address register having an address input port, the first address register and the second address register; an address array and the first cache based on the cache hit/miss determination made by the address array;
an address selection unit that determines two types of logical addresses for hit processing and miss processing from the two logical addresses held by the address register and the second address register; and a replacement unit when the cache memory misses. and a cache control unit that controls processing, and the main memory is configured to transfer a data block, which is a data management unit including the missed data, from the main memory to the cache memory when the cache memory misses. A main memory control unit that controls transfer, and a plurality of memory banks that can receive a plurality of main memory access requests from the cache control unit, and
The array simultaneously performs cache hit/miss determination for two logical addresses held by the first address register and the second address register, and when one hits and the other misses, the address array and the second address register The address selection unit simultaneously starts accessing the cache memory and the main memory, and when both miss, simultaneously processing accesses to the plurality of memory banks forming the main memory. It is said that

〔作用〕[Effect]

proIQgにおけるデータのマツチングは、常に、2
個のデータをアクセスする。この2個のデータ・アクセ
スは並列処理が可能で、一方のデータ・アクセスがキャ
ッシュ・ミスによりアクセス処理を一時中断した状態で
も、他方のデータ・アクセスを継続することが処理の高
速化に有効である。
Data matching in proIQg always consists of 2
access data. These two data accesses can be processed in parallel, and even if one data access is temporarily interrupted due to a cache miss, continuing the other data access is effective in speeding up processing. be.

したがって、同時に2個のデータ・アクセス要求を受は
付け、2個のデータ・アクセスに対するキャッシュのヒ
ット・ミス判定が可能なアドレス・アレイと、同時にア
クセス可能な複数のメモリ・バンクで構成したメイン・
メモリとを備えることで、2個のデータ・アクセス要求
が共にヒツトした場合は予めハードウェアで設定してい
る順序でヒツト・データをプロセッサに出力し、2個の
データ・アクセス要求の1個がヒツトで他の1個がミス
した場合はヒツト・データのプロセッサへの出力とミス
・データを含むデータ・ブロックのスワップ・イン処理
を並列処理することでキャッンユ・ミスによるプロセッ
サ停止時間を短縮し、2個のデータ・アクセス要求が共
にキャッシュ・ミスとなりかつ2個のミス・データが同
一メモリ・バンクに存在する場合は予めハードウェアで
設定している順序でミス・データを含むデータ・ブロッ
クのスワップ・イン処理を実行し、2個のデータ・アク
セス要求が共にキャッシュ・ミスとなりかつ2個のミス
・データが異なるメモリ・バンクに存在する場合は2個
のミス・データを含むデータ・ブロックのスワップ・イ
ン処理をオーバラップすることでキャッシュ・ミスによ
るプロセッサ停止時間を短縮することを可能にしている
Therefore, the main memory consists of an address array that can accept two data access requests at the same time and can determine cache hit/miss for two data accesses, and multiple memory banks that can be accessed simultaneously.
By providing a memory, when two data access requests are both hit, the hit data is output to the processor in the order set in advance by the hardware, and one of the two data access requests is If a hit causes a miss in the other one, the output of the hit data to the processor and the swap-in processing of the data block containing the miss data are processed in parallel, reducing the processor stoppage time due to a catch miss. If two data access requests both result in cache misses and the two miss data exist in the same memory bank, swap the data blocks containing the miss data in the order set in advance by hardware.・Execute in processing, and if two data access requests result in cache misses and the two miss data exist in different memory banks, swap the data block containing the two miss data. - By overlapping in-processing, it is possible to reduce processor stoppage time due to cache misses.

〔実施例〕〔Example〕

本発明の実施例について図面を参照して詳細に説明する
Embodiments of the present invention will be described in detail with reference to the drawings.

第1図は、本発明の2アドレスポート・メモリシステム
の構成図である。図中、100はキャッシュ・メモリ、
300はメイン・メモリであり、メイン・メモリを構成
するメモリ・バンクが4個よりなる例を示している。メ
イン・メモリ100において、210と220はデータ
のマツチングなど同時に2個のデータ・アクセスを必要
とする外部処理部がデータ・アクセスを行なう為の2個
の論理アドレスを格納するアドレス・レジスタAとアド
レスレジスタBであり、それぞれ入力ポートを備えてい
る。
FIG. 1 is a block diagram of a two-address port memory system of the present invention. In the figure, 100 is a cache memory,
300 is a main memory, and an example is shown in which the main memory is composed of four memory banks. In the main memory 100, 210 and 220 are address registers A and 220 that store two logical addresses for data access by an external processing unit that requires two data accesses at the same time, such as data matching. These are registers B, each having an input port.

230はアドレス・レジスタA210とアドレス・レジ
スタB220が保持する2個の論理アドレスに対するキ
ャッシュのヒット・ミス判定を同時処理するアドレス・
アレイである。240はアドレス・アレイ230が行な
ったキャッシュのヒット・ミス判定に基づきアドレス・
レジスタA210 とアドレス・レジスタB220が保
持する2個の論理アドレスからヒツト処理用とミス処理
用の2種類の論理アドレスを決定するアドレス選択ユニ
ットである。250はデータを保持するデータ・アレイ
である。260はアドレス・アレイに対してリプレース
メント情報を与えるリプレースメント制御部である。2
70はミス処理時のアドレス変換処理を高速化する為に
論理アドレスと物理アドレスのペアを記憶するアドレス
変換情報バブファである。280はキャッシュ・メモ1
川OOがミスした時のメイン・メモリ300からの転送
データ登録などキャッシュ・ミス時のリプレースメント
処理を制御するキャッシュ制御ユニットである。
230 is an address register that simultaneously processes cache hit/miss determination for two logical addresses held by address register A 210 and address register B 220.
It is an array. 240 determines the address based on the cache hit/miss determination made by the address array 230.
This is an address selection unit that determines two types of logical addresses, one for hit processing and one for miss processing, from two logical addresses held by register A 210 and address register B 220. 250 is a data array that holds data. 260 is a replacement control unit that provides replacement information to the address array. 2
Reference numeral 70 denotes an address translation information buffer that stores pairs of logical addresses and physical addresses in order to speed up address translation processing when a mistake occurs. 280 is cache memo 1
This is a cache control unit that controls replacement processing when a cache miss occurs, such as registering transfer data from the main memory 300 when the OO misses.

メイン・メモリ300において、310はキャッシュメ
モリ100がミスした時にミスしたデータを含むデータ
の管理単位であるデータ・ブロックをメイン・メモリ3
00からキャッシュ・メモリ100へ転送する制御を行
なうメイン・メモリ制御ユニットである。320.33
0.340.350はキャッシュ制御ユニット280が
メイン・メモ1月00のアクセスを要求してからデータ
・ブロックの最初のデータを受は取るまでのキャッシュ
・メモ1月00が待機を強制されるアクセス時間を短縮
する為にキャッシュ制御ユニット280からのメイン・
メモリ・アクセス要求を複数個受は付は可能にするメモ
リ・バンクである。なお図中、IOおよび20はアドレ
ス・バス、30ハコントロール・バス、40はf−タ・
ハス、50はメモリ・アドレス・バス、60はメモリ・
コントロール・バス、70はメモリ・データ・バスであ
る。
In the main memory 300, a data block 310, which is a unit of data management including the missed data when the cache memory 100 misses, is stored in the main memory 3.
This is a main memory control unit that controls the transfer from 00 to cache memory 100. 320.33
0.340.350 is an access in which cache memo January 00 is forced to wait after the cache control unit 280 requests access to main memo January 00 until the first data of the data block is received. To save time, the main
A memory bank that allows multiple memory access requests to be accepted. In the figure, IO and 20 are address buses, 30 are control buses, and 40 are f-ta.
50 is the memory address bus, 60 is the memory address bus,
Control bus 70 is a memory data bus.

第2図は、第1図の2アドレスポート・メモリシステム
を使用した情報処理装置の構成例である。
FIG. 2 shows an example of the configuration of an information processing device using the two-address port memory system shown in FIG.

400はデータのマツチングを高速処理するプロセッサ
部で、このプロセッサ部400は、データのマツチング
を処理するマツチング・ユニット430と、マツチング
対象データのアクセスを行なうデータアクセス・ユニッ
ト410.420とから構成されている。
400 is a processor unit that processes data matching at high speed, and this processor unit 400 is composed of a matching unit 430 that processes data matching, and data access units 410 and 420 that access data to be matched. There is.

次に、第2図の情報処理装置の動作を説明することによ
って本実施例の動作を説明する。プロセッサ部400上
でデータのマツチング処理を行なう場合、データアクセ
ス・ユニット410.420は、マツチングの対象であ
るデータをアクセスする為、アドレス・バス10と20
を介して、データ格納先の論理アドレスをキャッシュ・
メモリ100のアドレス・レジスタA210 ト822
0へ送る。アドレス・レジスタA210とB220に書
き込まれた論理アドレスは、アドレス・アレイ230に
送られて、アドレス・アレイ230によってキャッシュ
のヒット・ミス判定が行なわれる。
Next, the operation of this embodiment will be explained by explaining the operation of the information processing apparatus shown in FIG. When performing data matching processing on the processor section 400, the data access units 410 and 420 use the address buses 10 and 20 to access the data to be matched.
The logical address of the data storage destination is cached via
Address register A210 of memory 100 822
Send to 0. The logical addresses written in address registers A 210 and B 220 are sent to address array 230, and cache hit/miss determination is performed by address array 230.

以下、それぞれの場合に分けて説明する。Each case will be explained separately below.

2個の論理アドレスが共にヒツトした場合アドレス・レ
ジスタA210と8220が保持する論理アドレスが共
にヒツトした場合は、最初にアドレス・アレイ230が
アドレス選択ユニット240ヲ使用してアドレス・レジ
スタΔ210が保持する論理アドレスをデータ・アレイ
250に送る。この結果、アドレス・レジスタA210
が指定するデータがデータ・アレイ250からデータ・
ハス40を介してプロセッサ部400に出力される。次
に、アドレス・アレイ230はアドレス選択ユニット2
40にアドレス・レジスタB220が保持する論理アド
レスを選択しデータ・アレイ250へ送る様に指示する
。この結果、データ・アレイ250はアドレス・レジス
タB220が指定するデータをデータ・バス40を介し
てプロセッサ部400へ出力する。
If two logical addresses both hit If the logical addresses held by address registers A 210 and 8220 both hit, address array 230 first uses address selection unit 240 to select the address held by address register Δ 210. Send the logical address to data array 250. As a result, address register A210
The data specified by
It is output to the processor section 400 via the lotus 40. Address array 230 then addresses address selection unit 2
40 to select the logical address held by address register B 220 and send it to data array 250. As a result, data array 250 outputs the data specified by address register B 220 to processor section 400 via data bus 40.

第3図は上記の様子を示すタイミングチャートである。FIG. 3 is a timing chart showing the above situation.

図中、600はアドレス・レジスタA210側の処理を
示し、700はアドレス・レジスタB220側の処理の
流れを示す。610と710はプロセッサ部400がア
ドレス・レジスタA210と8220へ論理アドレスを
セットするステップである。620と720はアドレス
・アレイ230がキャッシュのヒット・ミス判定を行な
うステップである。630はアドレス・レジスタA21
0が指定したデータをデータ・アレイ250が出力する
ステップである。730はデータ・アレイ250がアド
レス・レジスタA210の指定するデータを出力してい
る為に、アドレス・レジスタB220が指定するデータ
の出力を停止する待機状態のステツブを示す。740は
アドレス・レジスタB220が指定するデータをデータ
・アレイ250が出力するステップである。
In the figure, 600 indicates the processing on the address register A 210 side, and 700 indicates the flow of processing on the address register B 220 side. Steps 610 and 710 are steps in which the processor section 400 sets logical addresses in the address registers A210 and 8220. 620 and 720 are steps in which the address array 230 performs cache hit/miss determination. 630 is address register A21
0 is a step in which the data array 250 outputs the specified data. 730 indicates a standby state step in which the data array 250 is outputting the data specified by the address register A 210, so outputting the data specified by the address register B 220 is stopped. 740 is a step in which the data array 250 outputs the data specified by the address register B220.

なお第3図において、Lはアドレス・レジスタΔ210
又はアドレス・レジスタB220が論理アドレスをセッ
トするステップを示し、Dはアドレス・アレイ230が
キャッシュのヒット・ミス判定を行なうステップを示し
、Aは指定されたデータをデータ・アレイ250が出力
するステップを示し、Wは待機状態のステップを示して
いる。
In addition, in FIG. 3, L is the address register Δ210
Alternatively, address register B 220 indicates a step in which a logical address is set, D indicates a step in which address array 230 performs cache hit/miss determination, and A indicates a step in which data array 250 outputs designated data. , and W indicates a step in a standby state.

2個の論理アドレスの一方がヒツト、他方がミスの場合 アドレス・レジスタA210と8220が保持する2個
の論理アドレスの1個がヒツトで他の1個がミスの場合
は、アドレス・アレイ230がヒツト・データとミス・
データの処理を同時に開始する。
When one of the two logical addresses is a hit and the other is a miss If one of the two logical addresses held by address registers A 210 and 8220 is a hit and the other one is a miss, the address array 230 Human data and mistakes
Start processing data at the same time.

ヒツト・データに対する処理はアドレス・アレイ230
がアドレス選択ユニット240にヒツトしたデータの論
理アドレスを選択し、データ・アレイ250へ送る様に
指示する。この結果、データ・アレイ250はヒツト・
データを出力する。この時、アドレス・アレイ230 
はコントロールハス30にヒツト・データを指定してい
るアドレス・レジスタの識別番号を出力し、プロセッサ
部400がヒツト・データを正しく受は取る様に指示す
る。
Address array 230 processes human data.
instructs address selection unit 240 to select the logical address of the hit data and send it to data array 250. As a result, data array 250
Output data. At this time, address array 230
outputs the identification number of the address register specifying the hit data to the control bus 30, and instructs the processor section 400 to correctly receive the hit data.

ミス・データに対する処理はアドレス・アレイ230が
アドレス選択ユニット240にミスしたデータの論理ア
ドレスを選択させ、アドレス変換情報バッファ270へ
送る様に指示する。さらに、アドレス・アレイ230は
アドレス選択ユニット240への指示と同時に、キャッ
シュ制御ユニット280にミス・データを含むデータ・
ブロックのスワップ・イン処理を要求する。この結果、
アドレス変換情報バッファ270はミス・データの論理
アドレスから物理アドレスへの変換を行ない、物理アド
レスをメモリ・アドレス・バス50を介してメイン・メ
モリ300のメイン・メモリ制御ユニット310へ送る
。さらに、物理アドレスの送信と同時にキャッシュ制御
ユニット280がメモリ・コントロール・バス60を介
してメモリ告IIf卸ユニット310ヘメイン・メモリ
のアクセスを要求する。物理アドレスとメイン・メモリ
のアクセス要求を受は取ったメイン・メモリ制御ユニッ
) 310 は物理アドレスに対応したメモリ・バンク
へ物理アドレスを送り、ミス・データを含むデータ・ブ
ロックのアクセスを開始する。メモリ・バンクのアクセ
スはメイン・メモリ制御ユニット310が制御し、メモ
リ・バンクがデータ出力可能となると、メイン・メモリ
制御ユニット310カキヤツシユ制御ユニツト280を
介してアドレス・アレイ230にミス・データを含むデ
ータ・ブロックのアクセスが可能であることを通知する
。この結果、アドレス・アレイ230はアドレス選択ユ
ニット240にミス・データの論理アドレスをデータ・
アレイ250へ送る様に指示する。この後、メモリ・バ
ンクからメモリ・データ・バス70を介してデータ・ア
レイ250へのデータのブロック転送が始まる。最後の
データがデータ・アレイ250へ書き込まれる時に、ア
ドレス・アレイ230はリプレースメント制御部260
のリプレースメント情報に従い、新たにキャッシュ・メ
モリ100に格納されたブロックに対応するアドレスの
保持等の処理を行なう。メモリ・バンクからデータ・ア
レイ250へ最初のデータを転送する時には、このデー
タを要求したプロセッサ部400にも同時にデータを送
ることで、プロセッサ部400のデータ待ち時間を短縮
する。
To process the missed data, the address array 230 instructs the address selection unit 240 to select the logical address of the missed data and send it to the address translation information buffer 270. Further, address array 230 simultaneously instructs address selection unit 240 to send data, including miss data, to cache control unit 280.
Requests block swap-in processing. As a result,
Address translation information buffer 270 performs the translation of the miss data from a logical address to a physical address and sends the physical address via memory address bus 50 to main memory control unit 310 of main memory 300 . Further, at the same time as sending the physical address, the cache control unit 280 requests access to the main memory of the memory report IIf wholesale unit 310 via the memory control bus 60. After receiving the physical address and the main memory access request, the main memory control unit 310 sends the physical address to the memory bank corresponding to the physical address and starts accessing the data block containing the missed data. Access to the memory bank is controlled by the main memory control unit 310, and when the memory bank is ready to output data, the main memory control unit 310 transfers data including miss data to the address array 230 via the cache control unit 280. - Notify that the block can be accessed. As a result, address array 230 assigns the logical address of the missed data to address selection unit 240.
Instruct to send to array 250. Thereafter, block transfer of data from the memory bank to data array 250 via memory data bus 70 begins. When the last data is written to data array 250, address array 230 is written to replacement controller 260.
In accordance with the replacement information, processing such as holding the address corresponding to the block newly stored in the cache memory 100 is performed. When the first data is transferred from the memory bank to the data array 250, data waiting time of the processor section 400 is reduced by simultaneously sending the data to the processor section 400 that requested the data.

第4図はアドレス・レジスタA210側がキャッシュ・
ミスした時の処理の流れを示す夕、イミング・チャート
である。610と710(まプロセッサ部400がアド
レス・レジスタA210と8220へ論理アドレスをセ
ットするステップである。620と720はアドレス・
アレイ230がキャッシュのヒット・ミス判定を行なう
ステップである。640はアドレス変換情報バッファ2
70がアドレス・レジスタ3220側の論理アドレスを
物理アドレスへ変換するステップである。740はアド
レス・レジスタB220が指定するデータをデータ・ア
レイ250が出力するステップである。650はキャッ
シュ制御ユニット280がメイン・メモリ制御ユニット
310にアクセス要求を行なうステップである。650
と同じステップにアドレス・レジスタ3220側は次の
データのアクセスを聞始する。660はメモリ・バンク
・アクセスで生じる待機ステップである。630はミス
・データがデータ・アレイ250とプロセッサ部400
へ転送されるステップである。670はミス・データを
含むデータ・ブロックの残りのデータをデータ・アレイ
250 に書き込むステップである。一方、730はメ
モリ・バンクから送られて来るデータをデータ・アレイ
250へ書き込むことにより、アドレス・レジスタB2
20側がデータ・アレイ250を使用できない為に発生
する待機ステップである。670と730が重なってい
るのは偶然である。
In Figure 4, the address register A210 side is cached.
This is a timing chart showing the flow of processing when a mistake is made. 610 and 710 (This is a step in which the processor section 400 sets logical addresses in address registers A210 and 8220. 620 and 720 are steps in which the processor unit 400 sets logical addresses in address registers A210 and 8220.
This is a step in which the array 230 performs cache hit/miss determination. 640 is address translation information buffer 2
70 is a step of converting the logical address on the address register 3220 side into a physical address. 740 is a step in which the data array 250 outputs the data specified by the address register B220. 650 is a step in which the cache control unit 280 issues an access request to the main memory control unit 310. 650
At the same step, the address register 3220 side starts listening for access to the next data. 660 is a wait step that occurs with memory bank access. 630, the miss data is sent to the data array 250 and the processor section 400.
This is the step to be transferred to. 670 is a step of writing the remaining data of the data block containing the miss data to the data array 250. On the other hand, 730 writes the data sent from the memory bank to data array 250 to write address register B2.
This is a standby step that occurs because the data array 250 cannot be used on the 20 side. It is a coincidence that 670 and 730 overlap.

なお、第4図において、Tは論理アドレスを物理アドレ
スに変換すステップ、Rはメイン・メモリにアクセス要
求を行なうステップ、Sはミス・データを含むデータ・
ブロックの残りのデータをデータ・アレイ250に書き
込むステップである。
In FIG. 4, T is a step for converting a logical address into a physical address, R is a step for requesting access to the main memory, and S is a step for data including miss data.
This is the step of writing the remaining data of the block to data array 250.

L、D、W、Aは第3図と同様のステップである。L, D, W, and A are the same steps as in FIG.

2個の論理アドレスが共にミスした場合アドレス・レジ
スタA210と8220が保持する2個の論理アドレス
が共にミスした場合は、アドレス・レジスタA210側
からミス・データの処理を開始する。ミス・データの処
理は、前述した1個がヒツトし、他の1個がミスした場
合に行なったミス・データの処理と同じである。この時
の処理の流れは、2個のミス・データが同一のメモリ・
バンク上に存在する場合と異なるメモリ・バンク上に存
在する場合とで異なる。
When two logical addresses both miss If two logical addresses held by address registers A210 and 8220 both miss, processing of the missed data is started from the address register A210 side. The processing of miss data is the same as the processing of miss data performed when one hit and the other miss, as described above. The processing flow at this time is that two pieces of miss data are stored in the same memory.
It differs depending on whether it exists on a bank or a different memory bank.

第5図は2個のミス・データが同一メモリ・バンク上に
存在する時の処理の流れを示すタイミングチャートであ
る。ステップ640でアドレス・レジスタA210上の
論理アドレスが物理アドレスへ変換される。この時、ア
ドレス・レジスタB 220 側は、アドレス変換情報
バッファ270が使用中の為の待機ステップ730とな
る。ステップ650ではアドレス・レジスタA210側
がメイン・メモリのアクセス要求を行なう。この時、ア
ドレス・レジスタB220側は、アドレス変換情報バッ
ファ270が使用可となったのでステップ750で論理
アドレスから物理アドレスへの変換を行なう。760は
アドレス・レジスタA210側がメイン・メモリのアク
セスを行なっている為に発生したアドレス・レジスタB
220側の待機ステップである。770はアドレス・レ
ジスタA210側がメモリ・バンクから最後のデータを
データ・アレイに書き込む操作と同時にアドレス・レジ
スタB220側がメイン・メモリのアクセス要。
FIG. 5 is a timing chart showing the flow of processing when two pieces of miss data exist on the same memory bank. At step 640, the logical address on address register A 210 is translated to a physical address. At this time, the address register B 220 side enters a standby step 730 because the address translation information buffer 270 is in use. In step 650, the address register A 210 side requests access to the main memory. At this time, the address register B 220 side performs translation from a logical address to a physical address in step 750 since the address translation information buffer 270 has become available. 760 is address register B that occurred because address register A210 accessed the main memory.
This is a standby step on the 220 side. 770 indicates that the address register A 210 side writes the last data from the memory bank to the data array, and at the same time the address register B 220 side accesses the main memory.

求を行なうステップである。This is the step of making a request.

第6図は2個のミス・データが異なるメモリ・バンク上
に存在する時の処理の流れを示すタイミングチャートで
ある。メモリ・バンクは各々1つのアクセス要求を受は
付は可能で、他のメモリ・バンクがアクセス要求に対す
る処理中でも自分自身が現在処理を行なっていなければ
、そのメモリ・バンクへのアクセス要求を受は付けるこ
とができる。2個のミス・データが同一メモリ・バンク
上に存在する時との違いは、メモリ・ハングが異なる為
に、アドレス・レジスタB220側のメイン・メモリ・
アクセス要求がアドレス・レジスタA210側のメイン
・メモリ・アクセス要求を行なったステップ650の次
のステップ770で実行できることである。この結果、
メモリ・バンクのアクセスによる待機ステップ660と
790を重ねることができ、キャッシュ・ミス時の処理
速度低下を軽減している。
FIG. 6 is a timing chart showing the flow of processing when two pieces of miss data exist on different memory banks. Each memory bank can accept one access request, and a memory bank cannot accept an access request to that memory bank if it is not currently processing the access request while another memory bank is processing the access request. Can be attached. The difference from when two pieces of miss data exist on the same memory bank is that the memory hang is different, so the main memory on the address register B220 side
The access request can be executed in step 770 following step 650 in which the main memory access request on the address register A 210 side is made. As a result,
Waiting steps 660 and 790 due to memory bank access can be overlapped, reducing the reduction in processing speed when a cache miss occurs.

なお第5図および第6図において、L、、D、W。In addition, in FIGS. 5 and 6, L, , D, and W.

A、T、R,Sは、第3図および第4図と同様のステッ
プである。
A, T, R, and S are the same steps as in FIGS. 3 and 4.

〔発明の効果〕     □ 本発明の2アドレスポート・メモリシステムによれば、
データのマツチングとポインタチェインを多用する記号
処理において、メモリ使用領域の広域化によるキャッシ
ュ・メモリのヒツト率低下が情報処理装置の処理速度低
下を引き起こしている問題に対して、データのマツチン
グが2個のデータ間で行なわれることに着目し、2個の
アドレス入力ポートを備え、同時に2個の論理アドレス
に対するキャッシュのヒット・ミス判定を行なうアドレ
ス・アレイと、個々にアクセス可能なメモリ・バンクを
複数個使用して構成したメイン・メモリを使用すること
で、キャッシュ・ミス時のデータ転送速度低下を改善し
、データのマッチングなど2個のデータを同時に処理対
象とする処理の高速化が可能になる。
[Effects of the Invention] □ According to the 2-address port memory system of the present invention,
In symbolic processing that makes extensive use of data matching and pointer chains, two data matching methods are used to address the problem of a decline in the cache memory hit rate due to the widening of the memory area, which causes a slowdown in the processing speed of information processing equipment. Focusing on the fact that data is processed between data, we developed an address array that has two address input ports, simultaneously performs cache hit/miss determination for two logical addresses, and multiple memory banks that can be accessed individually. By using a main memory configured with 2 pieces of data, it is possible to improve the data transfer speed drop in the event of a cache miss and speed up processing that processes two pieces of data at the same time, such as data matching. .

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

第1図は、本発明の2アドレスポート・メモリシステム
の構成図、 第2図は本発明の2アドレスポート・メモリシステムを
使用した情報処理装置の構成図、第3図は2系統のアク
セス要求が共にヒツトした時の処理の流れを示すタイミ
ング・チャート、第4図はA系統がミスし、B系統がヒ
ツトした時の処理の流れを示すタイミング・チャート、
第5図はA、B両系統がミスし、かつ、2個のミス・デ
ータが同一メモリ・バンクに存在する場合の処理の流れ
を示すタイミングチャート、第6図はA、B両系統がミ
スし、かつ、2個のミス・データが異なるメモリバンク
に存在する場合の処理の流れを示すタイミングチャート
である。 10.20  ・・・・・・ アドレス・バス30  
・・・・・・・・・・・・ コントロール・バス40 
 ・・・・・・・・・・・・ データ・バス50  ・
・・・・・・・・・・・ メモリ・アドレス・バス60
  ・・・・・・・・・・・・ メモリ・コントロール
・バス70  ・・・・・・・・・・・・ メモリ・デ
ータ・バス100・・・・・・・・・・・・ キャッシ
ュ・メモリ210 、220・・・ アドレス・レジス
タ230・・・・・・・・・・・・ アドレス・アレイ
240・・・・・・・・・・・・ アドレス選択ユニッ
ト250・・・・・・・・・・・・ データ・アレイ2
60・・・・・・・・・・・・ リプレースメント制御
部270・・・・・・・・・・・・ アドレス変換情報
バッファ280・・・・・・・・・・・・ キャッシュ
制御ユニット310・・・・・・・・・・・・ メイン
・メモリ制御ユニット320〜350・・・ メモリ・
バンク400・・・・・・・・・・・・ プロセッサ部
410 、420・・・ データ・アクセス・ユニット
430・・・・・・・・・・・・ マツチング・ユニッ
ト代理人 弁理士  岩 佐 義 幸 第1図 第2図
FIG. 1 is a block diagram of a two-address port memory system of the present invention, FIG. 2 is a block diagram of an information processing device using the two-address port memory system of the present invention, and FIG. 3 is a block diagram of two systems of access requests. Fig. 4 is a timing chart showing the flow of processing when system A misses and system B hits.
Figure 5 is a timing chart showing the processing flow when both A and B systems miss and two pieces of miss data exist in the same memory bank. Figure 6 is a timing chart when both A and B systems miss. 12 is a timing chart showing the flow of processing when two pieces of miss data exist in different memory banks. 10.20 Address bus 30
・・・・・・・・・・・・ Control bus 40
・・・・・・・・・・・・ Data bus 50 ・
・・・・・・・・・・・・ Memory address bus 60
・・・・・・・・・・・・ Memory control bus 70 ・・・・・・・・・・・・ Memory data bus 100 ・・・・・・・・・・・・ Cache Memories 210, 220... Address register 230... Address array 240... Address selection unit 250... ... Data array 2
60...... Replacement control unit 270... Address translation information buffer 280... Cache control unit 310・・・・・・・・・・・・ Main memory control unit 320 to 350... Memory・
Bank 400... Processor section 410, 420... Data access unit 430... Matching unit agent Patent attorney Yoshi Iwasa Figure 1 Figure 2

Claims (1)

【特許請求の範囲】[Claims] (1)キャッシュ・メモリとメイン・メモリから成る2
アドレスポート・メモリシステムにおいて、前記キャッ
シュ・メモリは、アドレス入力ポートを備えた第1アド
レス・レジスタと、アドレス入力ポートを備えた第2ア
ドレス・レジスタと、前記第1アドレス・レジスタと前
記第2アドレス・レジスタが保持する2個の論理アドレ
スに対するキャッシュのヒット・ミス判定を同時処理す
るアドレス・アレイと、前記アドレス・アレイが行なっ
たキャッシュのヒット・ミス判定に基づき前記第1アド
レス・レジスタと前記第2アドレス・レジスタが保持す
る2個の論理アドレスからヒット処理用とミス処理用の
2種類の論理アドレスを決定するアドレス選択ユニット
と、前記キャッシュ・メモリがミスした時のリプレース
メント処理を制御するキャッシュ制御ユニットとを備え
、前記メイン・メモリは、前記キャッシュ・メモリがミ
スした時にミスしたデータを含むデータの管理単位であ
るデータ・ブロックを前記メイン・メモリから前記キャ
ッシュ・メモリへ転送する制御を行なうメイン・メモリ
制御ユニットと、前記キャッシュ制御ユニットからのメ
イン・メモリ・アクセス要求を複数個受け付け可能にす
る複数のメモリ・バンクとを備え、前記アドレス・アレ
イが前記第1アドレス・レジスタと前記第2アドレス・
レジスタが保持する2個の論理アドレスに対するキャッ
シュのヒット・ミス判定を同時に行ない、一方がヒット
し他方がミスした時に、前記アドレス・アレイと前記ア
ドレス選択ユニットにより前記キャッシュ・メモリと前
記メイン・メモリへ同時にアクセスを開始し、及び、両
方がミスした時に、前記メイン・メモリを構成する前記
複数メモリ・バンクへのアクセスを同時に処理すること
を特徴とする2アドレスポート・メモリシステム。
(1) Consisting of cache memory and main memory2
In the address port memory system, the cache memory includes a first address register with an address input port, a second address register with an address input port, and a first address register and the second address register. - an address array that simultaneously processes cache hit/miss determination for two logical addresses held by the register; and an address array that simultaneously processes cache hit/miss determination for two logical addresses held by the register; an address selection unit that determines two types of logical addresses for hit processing and miss processing from two logical addresses held by two address registers; and a cache control that controls replacement processing when the cache memory misses. The main memory includes a main memory unit that controls the transfer of a data block, which is a data management unit including missed data when the cache memory misses, from the main memory to the cache memory. - a memory control unit and a plurality of memory banks capable of accepting a plurality of main memory access requests from the cache control unit, the address array including the first address register and the second address;・
Cache hit/miss determination is performed simultaneously for two logical addresses held by registers, and when one hits and the other misses, the address array and the address selection unit select the cache memory and the main memory. A two-address port memory system characterized in that accesses are started at the same time, and when both fail, accesses to the plurality of memory banks constituting the main memory are processed simultaneously.
JP60284310A 1985-12-19 1985-12-19 2-address port memory system Pending JPS62144256A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60284310A JPS62144256A (en) 1985-12-19 1985-12-19 2-address port memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60284310A JPS62144256A (en) 1985-12-19 1985-12-19 2-address port memory system

Publications (1)

Publication Number Publication Date
JPS62144256A true JPS62144256A (en) 1987-06-27

Family

ID=17676882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60284310A Pending JPS62144256A (en) 1985-12-19 1985-12-19 2-address port memory system

Country Status (1)

Country Link
JP (1) JPS62144256A (en)

Similar Documents

Publication Publication Date Title
US9128818B2 (en) Memory mapping in a processor having multiple programmable units
US6202107B1 (en) Host controller interface descriptor fetching unit
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
US20020144027A1 (en) Multi-use data access descriptor
US5696937A (en) Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
JP2000010901A (en) Disk array controller
JPH08263424A (en) Computer system
JPH02255932A (en) Multi-processor system
JP3266470B2 (en) Data processing system with per-request write-through cache in forced order
US6604185B1 (en) Distribution of address-translation-purge requests to multiple processors
JPS62144256A (en) 2-address port memory system
GB2352145A (en) Prevention of bottlenecking in data transfers
JPH04120652A (en) Parallel processors
GB2037466A (en) Computer with cache memory
US6593931B1 (en) Method and apparatus for improving system memory bandwidth utilization during graphics translational lookaside buffer cache miss fetch cycles
JPH0210450A (en) Prefetch control system for cache memory
JPS6266350A (en) Cache memory
KR0145932B1 (en) Dma controller in high speed computer system
JP2001229074A (en) Memory controller and information processor and memory control chip
JPH02178750A (en) Address conversion processing system
JPH0520192A (en) Cache memory store system
JPH02226447A (en) Computer system and memory access therefor
JPS61221845A (en) Producing system for invalidated address of buffer memory
JPH03241442A (en) Store buffer control system
JP2000010900A (en) Disk array controller and disk array