[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPS62242255A - Information processor - Google Patents

Information processor

Info

Publication number
JPS62242255A
JPS62242255A JP61085190A JP8519086A JPS62242255A JP S62242255 A JPS62242255 A JP S62242255A JP 61085190 A JP61085190 A JP 61085190A JP 8519086 A JP8519086 A JP 8519086A JP S62242255 A JPS62242255 A JP S62242255A
Authority
JP
Japan
Prior art keywords
data
processing
dereference
block
memory
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
JP61085190A
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 JP61085190A priority Critical patent/JPS62242255A/en
Publication of JPS62242255A publication Critical patent/JPS62242255A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE:To performs the dereference processing at high speed by introducing a dereference flag indicating the prefetch of data and using the inspection result of the tag part of a data processing block and the state of the dereference flag. CONSTITUTION:A branch control block 7 controls so as to invalidate a mistake occurrence signal from a cache memory 2 and an address converting buffer 4 according to the inspection result of the tag part by the data processing block 5 and the state of the dereference flag 6. Namely, when the dereference flag 6 is turned on and when the inspection result of the tag part by the data processing block 5 is pointer data and when the dereference flag 6 is turned off, the mistake generating signal is effective and during other period, it is invalid. by neglecting this mistake occurrence signal, a trap to an unnecessary swap processing or an address converting processing resulting from a memory access in which a value part such as integer data generated during the data prefetch processing is treated as a logical address.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、知識情報処理の分野で注目されている高レベ
ルプログラミング言語プロローグ(Pr。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention is directed to the high-level programming language Prologue (Pr), which is attracting attention in the field of knowledge information processing.

log)等の言語処理に有効なタグ付データ表現を内部
データ表現として使用する情報処理装置に関するもので
ある。
The present invention relates to an information processing apparatus that uses a tagged data expression effective for language processing such as log) as an internal data expression.

〔従来の技術〕[Conventional technology]

プロローグ等の近年の高レベルプログラミング言語は、
複数セルからなるデータタイプと他のデータと同じ値を
持つことを表現するポインタを備えている。第2図はプ
ロローグにおいて、複数セルから成るデータタイプの代
表例である構造体データタイプの内部データ表現例であ
る。構造体は、構造体基と構造体の要素から成るデータ
タイプである。図中、20は構造体“大箱”のデータブ
ロック、21は構造体“中箱”のデータブロック、22
は構造体“小箱”のデータブロックである。23はデー
タタイプを示すタグ部で、24はデータ値を示すバリュ
ー部である。構造体の内部データ表現は、第1セルに構
造体の要素数、第2セルに構造体基、第3セル以降に要
素を格納する。さらに、第2図の例の様に、要素が構造
体であっても構わない。
Recent high-level programming languages such as Prolog are
It has a data type consisting of multiple cells and a pointer that indicates that it has the same value as other data. FIG. 2 is an example of internal data expression of a structure data type, which is a typical example of a data type consisting of a plurality of cells, in the prologue. A structure is a data type that consists of a structure base and structure elements. In the figure, 20 is a data block of the structure "large box", 21 is a data block of the structure "middle box", 22
is a data block of the structure “small box”. 23 is a tag section indicating the data type, and 24 is a value section indicating the data value. The internal data representation of the structure stores the number of elements of the structure in the first cell, the structure base in the second cell, and the elements in the third and subsequent cells. Furthermore, as in the example shown in FIG. 2, the elements may be structures.

構造体“中箱(小箱(リンゴ、ナシ)、ミカン)”の第
1要素は、第2図の内部データ表現では、構造体“小箱
(リンゴ、ナシ)”のデータブロック22へのポインタ
である。
In the internal data representation of FIG. 2, the first element of the structure “Medium box (small box (apples, pears), oranges)” is a pointer to the data block 22 of the structure “Small box (apples, pears)”. It is.

第3図は、変数X、Y、Zが同じ値を持つことをポイン
タで実現した内部データ表現である。図中、タグ部34
の“unb”は未定義データ、タグ部35と36の“r
ef″はポインタ・データを表している。変数Zをアク
セスすると、セル33をアクセスし、タグ部36を検査
する。タグ部36を検査した結果、セル33がポインタ
と判明し、セル32ヲアクセスする。同様にして、セル
32のタグ部35を検査した結果、セル31をア・クセ
スし、そのタグ部34を検査し、変数Zが未定義だと判
明する。このように、変数Zのアクセスで発生したポイ
ンタ・データを辿ったデータアクセス処理をディリファ
レンス処理と呼ぶ。
FIG. 3 is an internal data representation in which variables X, Y, and Z have the same value using pointers. In the figure, tag section 34
"unb" is undefined data, "r" in tag parts 35 and 36
ef" represents pointer data. When variable Z is accessed, cell 33 is accessed and tag section 36 is inspected. As a result of inspecting tag section 36, cell 33 is found to be a pointer, and cell 32 is accessed. Similarly, as a result of checking the tag part 35 of the cell 32, accessing the cell 31 and checking the tag part 34 reveals that the variable Z is undefined. Data access processing that follows pointer data generated during access is called dereference processing.

変数Zのアクセスで発生したディリファレンス処理の処
理フローを第4図に示す0図中、40はセル33をアク
セスする処理ステップ、41はタグ部36を検査する処
理ステップ、42はセル32をアクセスする処理ステッ
プ、43はタグ部35を検査する処理ステップ、44は
セル31をアクセスする処理ステップ、45はタグ部3
4を検査する処理ステップである。
FIG. 4 shows the processing flow of the dereference processing that occurred when accessing the variable Z. In the diagram, 40 is a processing step for accessing the cell 33, 41 is a processing step for inspecting the tag section 36, and 42 is a processing step for accessing the cell 32. 43 is a processing step for inspecting the tag section 35 , 44 is a processing step for accessing the cell 31 , 45 is a processing step for inspecting the tag section 3
This is a processing step for inspecting 4.

このように、セルのアクセス後に、必ず、タグ部を検査
する必要がある為、1個のポインタ・データの処理に2
ステツプの処理時間が必要である。
In this way, it is necessary to check the tag part after accessing a cell, so two points are required to process one pointer data.
Step processing time is required.

ディリファレンス処理を高速化する手段として、従来は
、メモリから読み出したデータのタグ部の検査をデータ
バス上で行う方法がある。この方法を第1の従来技術と
呼ぶ。
Conventionally, as a means to speed up dereference processing, there is a method of inspecting the tag portion of data read from memory on a data bus. This method is called the first conventional technique.

第1の従来技術では、セルのアクセスとタグ部の検査を
同じステップ内で行う。したがって、1個のポインタ・
データの処理を1ステツプの処理時間で終了する。第1
の従来技術を使用した情報処理装置の構成を第5図に示
す。図中、lはデータと機械語プログラムを格納する主
記憶ブロック、2は主記憶ブロック1上のデータ・アク
セスを高速化する為のバッファメモリであるキャッシュ
メモリ、3は主記憶ブロック1上のデータを指定する論
理アドレスを保持するメモリアドレス・レジスタ、4は
メモリアドレス・レジスタ3が保持する論理アドレスと
論理アドレスに対応した主記憶ブロック1のアクセスで
使用する物理アドレスの対を保持するバッファメモリで
あるアドレス変換バッファ、5は主記憶ブロック1から
読み出したデータに対する算術論理演算及びタグ部の検
査を行うデータ処理プロレフ、11はキャッシュメモリ
2及びアドレス変換バッファ4及びデータ処理ブロック
5の状態でマイクロプログラムの分岐要求信号を発生す
る分岐制御ブロック、8は分岐制御ブロック11が出力
する分岐要求信号に従いマイクロプログラムの実行シー
ケンスを制御するマイクロシーケンス制御ブロック、9
はメモリアドレス・レジスタ3の入力選択用データセレ
クタ、10はデータバスである。
In the first conventional technique, cell access and tag part inspection are performed in the same step. Therefore, one pointer
Data processing is completed in one step of processing time. 1st
FIG. 5 shows the configuration of an information processing apparatus using the conventional technology. In the figure, l is a main memory block that stores data and machine language programs, 2 is a cache memory that is a buffer memory for speeding up data access on main memory block 1, and 3 is data on main memory block 1. 4 is a buffer memory that holds a pair of the logical address held by the memory address register 3 and the physical address used in accessing the main memory block 1 corresponding to the logical address. An address conversion buffer 5, a data processing proref for performing arithmetic and logical operations on data read from the main memory block 1 and checking of the tag part; 11, a microprogram in the state of the cache memory 2, address conversion buffer 4, and data processing block 5; 8 is a microsequence control block that controls the execution sequence of the microprogram in accordance with the branch request signal output from the branch control block 11; 9;
1 is a data selector for input selection of the memory address register 3, and 10 is a data bus.

このような情報処理装置において、データはキャソシュ
メモリ2から読み出され、データバス10を通り、メモ
リアドレス・レジスタ3とデータ処理ブロック5へ送ら
れる。同時に、データのタグ部はデータバス10から直
接分岐制御ブロック11へ送られ、タグ部の検査を行う
In such an information processing device, data is read from the cache memory 2, passes through the data bus 10, and is sent to the memory address register 3 and data processing block 5. At the same time, the tag portion of the data is sent directly from the data bus 10 to the branch control block 11, where the tag portion is checked.

もう1つのディリファレンス処理を高速化する手段とし
て、タグ部の検査処理と並行して、タグ部を検査中のデ
ータのバリュー部を論理アドレスとして扱い、データの
先取りを行う方法がある。
Another method for speeding up the dereference processing is to pre-fetch data by treating the value part of the data whose tag part is being tested as a logical address, in parallel with the tag part testing process.

この方法を第2の従来技術と呼ぶ。This method is called the second conventional technique.

第2の従来技術では、タグ部の検査結果がポインタ・デ
ータである場合を想定したデータ先取りを行う。データ
先取りに使用する論理アドレスは、タグ部を検査中のデ
ータのバリュー部である。第2の従来技術を使用して第
3図の変数Zをアクセスする場合のパイプライン処理の
流れを第6図に示す。図中、60.61.62.63は
データ先取り処理、64、65.66はタグ部検査処理
である。
In the second conventional technique, data is pre-fetched on the assumption that the inspection result of the tag part is pointer data. The logical address used for data prefetching is the value part of the data whose tag part is being checked. FIG. 6 shows the flow of pipeline processing when the variable Z in FIG. 3 is accessed using the second conventional technique. In the figure, 60, 61, 62, and 63 are data prefetching processes, and 64, 65, and 66 are tag part inspection processes.

第1ステツプで、セル33の読み込み処理60を行う。In the first step, a cell 33 reading process 60 is performed.

第2ステツプでは、第1ステツプで読み込んだデータの
タグ部検査処理64を行う。さらに、並行して、第1ス
テツプで読み込んだデータのバリュー部を論理アドレス
として扱い、データの先取り処理61−を行う。タグ部
検査処理64の結果がポインタ・データの検出であるか
ら、第3ステツプでは、第2ステツプで先取りしたデー
タのタグ部検査処理65を行う。この様に、幾つかのポ
インタ・データで構成されたチェインを辿るディリファ
レンス処理が、1個のポインタ・データ当たり平均lス
テップの処理時間で済む。
In the second step, tag part inspection processing 64 of the data read in the first step is performed. Furthermore, in parallel, the value part of the data read in the first step is treated as a logical address, and data prefetching processing 61- is performed. Since the result of the tag part inspection process 64 is the detection of pointer data, in the third step, the tag part inspection process 65 of the data prefetched in the second step is performed. In this way, dereference processing that follows a chain made up of several pieces of pointer data takes an average processing time of l steps per piece of pointer data.

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

第1の従来技術を使用したディリファレンス処理の高速
化は、lステップでキャッシュメモリのアクセス、タグ
部の検査、次のステップで実行するマイクロ命令の読み
出しを行う。この為、lステップの時間が長くなる。す
なわち、プロセッサのサイクル時間が長くなり、レジス
タからレジスタへの単純なデータ転送処理が遅くなるこ
とが問題になっていた。
To speed up the dereference processing using the first conventional technique, in one step, the cache memory is accessed, the tag part is inspected, and the microinstruction to be executed in the next step is read. Therefore, the time for l step becomes longer. In other words, the problem is that the cycle time of the processor becomes longer, and simple data transfer processing from one register to another becomes slower.

第2の従来技術は、データの先取りを行う為に、ポイン
タであると確認する前のデータのバリュー部を使用した
メモリアクセスを行う。したがって、整数データ等のバ
リュー部を使用したメモリアクセスを行う可能性が存在
する。整数データ等のバリュー部を使用したメモリアク
セスは、キャッシュメモリのミス、アドレス変換バッフ
ァのミスを引き起こす可能性が大きい。キャッシュメモ
リのミス、アドレス変換バッファのミスが発生するとス
ワップ処理、アドレス変換処理ルーチンが起動され、キ
ャッシュメモリにミス・データを含むブロックをスワツ
ピングしたり、キャッシュ・ミスの原因となった論理ア
ドレスから物理アドレスを求める変換を行う。しかし、
整数データ等のバリュー部を使用したメモリアクセスが
原因となって発生したスワップ処理、アドレス変換処理
は、不要な処理であり、プロセッサの処理能力の浪費と
なる。この為、データの先取りで改善した処理速度を悪
化させ、期待した性能の向上が得られないことが問題に
なっていた。
In the second conventional technique, in order to prefetch data, memory access is performed using the value part of the data before it is confirmed to be a pointer. Therefore, there is a possibility of performing memory access using a value part such as integer data. Memory access using a value part such as integer data has a high possibility of causing a cache memory error or an address translation buffer error. When a cache memory miss or an address translation buffer miss occurs, swap processing and address translation processing routines are activated to swap the block containing the miss data to the cache memory, or to swap the block containing the miss data into the physical memory from the logical address that caused the cache miss. Performs a conversion to obtain an address. but,
Swap processing and address conversion processing caused by memory access using value parts such as integer data are unnecessary processing and waste the processing power of the processor. For this reason, the problem was that the processing speed that had been improved by pre-fetching data deteriorated, and the expected performance improvement could not be obtained.

〔発明の目的〕[Purpose of the invention]

本発明の目的は、ポインタ・データの出現で発生したデ
ィリファレンス処理を高速化すると共に、従来の汎用計
算機が備えていたレジスタからレジスタへの単純なデー
タ転送処理等の処理速度低下を低減する情報処理装置を
提供することにある。
The purpose of the present invention is to speed up the dereference processing that occurs due to the appearance of pointer data, and to reduce the slowdown in processing speed such as simple data transfer processing from register to register, which is provided in conventional general-purpose computers. The purpose of this invention is to provide a processing device.

〔問題点を解決するための手段〕[Means for solving problems]

本発明の情報処理装置は、データタイプを示すタグ部及
びデータ値を示すバリュー部から構成されるデータと機
械語プログラムとを格納する主記憶ブロックと、前記主
記憶ブロック上のデータ・アクセスを高速化する為のバ
ッファメモリであるキャッシュメモリと、前記主記憶ブ
ロック上のデータを指定する論理アドレスを保持するメ
モリアドレス・レジスタと、前記メモリアドレス・レジ
スタが保持する論理アドレスと論理アドレスに対応した
前記主記憶ブロックのアクセスで使用する物理アドレス
の対を保持するバッファメモリであるアドレス変換バッ
ファと、前記主記憶ブロックから読み出したデータに対
する算術論理演算及びタグ部の検査を行うデータ処理ブ
ロックと、データの先取り処理中であることを示すディ
リファレンス・フラグと、前記キャッシュメモリ及び前
記アドレス変換バッファ及び前記データ処理ブロック及
び前記ディリファレンス・フラグの状態でマイクロプロ
グラムの分岐要求信号を発生する分岐制御ブロックと、
前記分岐制御ブロックが出力する分岐要求信号に従いマ
イクロプログラムの実行シーケンスを制御するマイクロ
シーケンス制御ブロックとを備え、前記ディリファレン
ス・フラグがオフの状態で前記キャッシュメモリがミス
した場合はスワップイン・トラップを発生し、前記キャ
ッシュメモリ及び前記アドレス変換バッファが共にミス
した場合はアドレス変換トラップを発生し、前記ディリ
ファレンス・フラグがオンの状態では前記データ処理ブ
ロックが特定のデータタイプを前記タグ部の検査で検出
した場合のみスワップイン・トラップ及びアドレス変換
トラップ要因の検出を有効とし、前記データ処理ブロッ
クがその他のデータタイプを検出した場合はスワップイ
ン・トラップ及びアドレス変換トラップ要因の検出を無
効とすることを特徴とする。
The information processing device of the present invention includes a main memory block that stores data and a machine language program, which is composed of a tag section indicating a data type and a value section indicating a data value, and a main memory block that can perform high-speed data access on the main memory block. a cache memory that is a buffer memory for storing data on the main memory block, a memory address register that holds a logical address that specifies data on the main memory block, and a logical address held by the memory address register and the logical address corresponding to the logical address. an address conversion buffer that is a buffer memory that holds pairs of physical addresses used in accessing the main memory block; a data processing block that performs arithmetic and logical operations on data read from the main memory block and checks the tag section; a dereference flag indicating that prefetch processing is in progress; a branch control block that generates a microprogram branch request signal in the state of the cache memory, the address translation buffer, the data processing block, and the dereference flag;
and a microsequence control block that controls the execution sequence of a microprogram according to a branch request signal output by the branch control block, and a swap-in trap is generated when the cache memory misses while the dereference flag is off. occurs, and if both the cache memory and the address translation buffer miss, an address translation trap is generated, and when the dereference flag is on, the data processing block detects a specific data type by checking the tag section. The detection of swap-in traps and address translation trap causes is enabled only when detected, and the detection of swap-in traps and address translation trap causes is disabled when the data processing block detects other data types. Features.

〔作用〕[Effect]

第2の従来技術は、レジスタからレジスタへの単純なデ
ータ転送処理の処理速度の低下を回避し、かつ、ディリ
ファレンス処理におけるポインタ・データ1個当たりの
処理に要する平均処理時間を1ステツプに短縮する。し
かし、データの先取り処理の為に、整数データ等のバリ
ュー部を論理アドレスとして使用するメモリアクセスが
発生する。
The second conventional technology avoids a decrease in the processing speed of simple data transfer processing from register to register, and reduces the average processing time required for processing one piece of pointer data in dereference processing to one step. do. However, in order to pre-fetch data, a memory access using a value part such as integer data as a logical address occurs.

この整数データ等のバリュー部を使用するメモリアクセ
スが原因となり、キャッシュメモリのスワップ処理やア
ドレス変換処理へのトラップが発生する。このスワップ
処理やアドレス変換処理は不要な処理で、プロセッサの
処理能力の浪費である。
This memory access using the value part such as integer data causes a trap in cache memory swap processing or address conversion processing. This swap processing and address translation processing are unnecessary processing and waste the processing power of the processor.

本発明の情報処理装置では、データの先取り処理中を示
すディリファレンス・フラグを導入し、データ処理ブロ
ックのタグ部検査結果とディリファレンス・フラグの状
態を使用することでスワップ処理やアドレス変換処理へ
のトラップを禁止可能にし、ポインタ・データ以外のデ
ータのバリュー部を使用するメモリアクセスで発生する
可能性のあるスワップ処理やアドレス変換処理等の不要
な処理を回避可能にする。
In the information processing device of the present invention, a dereference flag is introduced to indicate that data is being prefetched, and swap processing and address conversion processing are performed by using the inspection result of the tag part of the data processing block and the state of the dereference flag. traps can be prohibited, and unnecessary processing such as swap processing and address conversion processing that may occur in memory access using the value part of data other than pointer data can be avoided.

データ先取り処理において、基本的に、タグ部の検査結
果がポインタ・データである場合は、先取りしたデータ
を使用する。すなわち、データ先取り処理のメモリアク
セスで発生するスワップ処理やアドレス変換処理は必要
な処理である。タグ部の検査結果がポインタ・データ以
外の場合は、先取りしたデータは不要である。すなわち
、データ先取り処理のメモリアクセスで発生するスワッ
プ処理やアドレス変換処理は不要である。
In the data prefetching process, basically, if the inspection result of the tag part is pointer data, the prefetched data is used. That is, swap processing and address conversion processing that occur during memory access in data prefetch processing are necessary processing. If the inspection result of the tag section is other than pointer data, the pre-fetched data is unnecessary. That is, swap processing and address conversion processing that occur during memory access in data prefetch processing are unnecessary.

ディリファレンス・フラグがオンの状態で、データ処理
ブロックによるタグ部検査結果がポインタ・データ以外
の場合は、スワップ処理やアドレス変換処理へのトラッ
プを禁止する。この禁止機能により不要な処理の回避を
可能とし、データ先取りの効果を高めている。
If the dereference flag is on and the result of the tag section check by the data processing block is other than pointer data, trapping to swap processing or address conversion processing is prohibited. This prohibition function makes it possible to avoid unnecessary processing and enhances the effectiveness of data prefetching.

〔実施例〕〔Example〕

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

第1図は、本発明の一実施例である情報処理装置である
。図中、1はデータと機械語プログラムを格納する主記
憶ブロック、2は主記憶ブロック1上のデータ・アクセ
スを高速化する為のバッファメモリとして動作するキャ
ッシュメモリ、3は主記憶ブロック1上のデータを指定
する論理アドレスを保持するメモリアドレス・レジスタ
、4はメモリアドレス・レジスタ3が保持する論理アド
レスと論理アドレスに対応した主記憶ブロック1のアク
セスで使用する物理アドレスの対を保持するバッファメ
モリであるアドレス変換バッファ、5は主記憶ブロック
lから読み出したデータに対する算術論理演算及びタグ
部の検査を行うデータ処理ブロック、6はデータの先取
り処理中であることを示すディリファレンス・フラグ、
7はキャッシュメモリ2及びアドレス変換バッファ4及
びデータ処理ブロック5及びディリファレンス・フラグ
6の状態でマイクロプログラムの分岐要求信号を発生す
る分岐制御ブロック、8は分岐制御ブロック7が出力す
る分岐要求信号に従いマイクロプログラムの実行シーケ
ンスを制御するマイクロシーケンス制御ブロック、9は
メモリアドレス・レジスタ3の入力選択用データセレク
タ、10はデータバスである。
FIG. 1 shows an information processing device that is an embodiment of the present invention. In the figure, 1 is a main memory block that stores data and machine language programs, 2 is a cache memory that operates as a buffer memory to speed up data access on main memory block 1, and 3 is a main memory block on main memory block 1. A memory address register 4 holds a logical address that specifies data, and a buffer memory 4 holds a pair of the logical address held by the memory address register 3 and the physical address used to access the main memory block 1 corresponding to the logical address. 5 is a data processing block that performs arithmetic and logical operations on data read from the main memory block l and checks the tag section; 6 is a dereference flag indicating that data prefetch processing is in progress;
7 is a branch control block that generates a microprogram branch request signal in the states of the cache memory 2, address conversion buffer 4, data processing block 5, and dereference flag 6; 8 is a branch control block that generates a branch request signal output from the branch control block 7; A microsequence control block controls the execution sequence of the microprogram, 9 is a data selector for selecting an input of the memory address register 3, and 10 is a data bus.

このような情報処理装置において、主記憶ブロック1が
保持するデータはデータタイプを示すタグ部とデータ値
を示すバリュー部から構成されているものとする。キャ
ッシュメモリ2から読み出したデータは、データバス1
0を通り、データ処理ブロック5へ送る。同時に、次の
ステップでデータの先取り処理を行う為、キャッシュメ
モリ2から読み出したデータのバリュー部を、データバ
ス10を通し、メモリアドレス・レジスタ入力データセ
レクタ9を通し、メモリアドレス・レジスタ3にセット
する。さらに、次のステップからデータ先取り処理を開
始するので、ディリファレンス・フラグ6をセットする
。次のステップでは、データ処理ブロック5が前のステ
ップで受は取ったデータのタグ部を検査し、検査結果を
分岐制御ブロック7へ送る。一方、メモリアドレス・レ
ジスタ3にセットしたデータのバリュー部を使用し、キ
ャッシュメモリ2からデータを読み出す。すなわち、デ
ータの先取りを行う。この時、キャッシュメモリ2がミ
スした場合に備え、アドレス変換バッファ4をアクセス
し、メモリアドレス・レジスタ3が保持する論理アドレ
スに対応した物理アドレスの読み出しを試みる。特に、
データ先取り処理を行う為、論理アドレスをバリュー部
に持たない整数データ等のバリュー部を使用したメモリ
アクセスを行う可能性が大きく、キャッシュメモリ2の
ミス及びアドレス変換バッファ4のミスが発生する可能
性が大きい。
In such an information processing device, it is assumed that the data held by the main memory block 1 is composed of a tag section indicating the data type and a value section indicating the data value. The data read from cache memory 2 is transferred to data bus 1.
0 and is sent to the data processing block 5. At the same time, in order to pre-fetch data in the next step, the value part of the data read from the cache memory 2 is passed through the data bus 10, passed through the memory address register input data selector 9, and set in the memory address register 3. do. Furthermore, since the data prefetching process is started from the next step, the dereference flag 6 is set. In the next step, the data processing block 5 inspects the tag part of the data received in the previous step and sends the inspection result to the branch control block 7. On the other hand, data is read from the cache memory 2 using the value part of the data set in the memory address register 3. In other words, data is prefetched. At this time, in case the cache memory 2 misses, the address translation buffer 4 is accessed and an attempt is made to read the physical address corresponding to the logical address held in the memory address register 3. especially,
Since data prefetch processing is performed, there is a high possibility that memory access will be performed using the value part such as integer data that does not have a logical address in the value part, and there is a possibility that a mistake in the cache memory 2 and a mistake in the address translation buffer 4 will occur. is large.

キャッシュメモリ2からのミス発生信号、アドレス変換
バッファ4からのミス発生信号、ディリファレンス・フ
ラグ6の・状態及びデータ処理ブロック5によるタグ部
の検査結果は、分岐制御ブロック7へ送り、マイクロプ
ログラムの分岐制御の判定に使用する。分岐制御ブロッ
ク7は、データ処理ブロック5によるタグ部検査結果と
、ディリファレンス・フラグ6の状態で、キャッシュメ
モIJ 2とアドレス変換バッファ4からのミス発生信
号′を無効とする制御を行う。すなわち、ディリファレ
ンス・フラグ6のオン状態は、データの先取り処理中を
示すから、ディリファレンス・フラグ6がオン状態で、
かつ、データ処理ブロック5によるタグ部の検査結果が
ポインタ・データである場合と、ディリファレンス・フ
ラグ6がオフ状態の場合とがキャッシュメモリ2とアド
レス変換バッファ4からのミス発生信号が有効な期間で
ある。
The miss occurrence signal from the cache memory 2, the miss occurrence signal from the address translation buffer 4, the state of the dereference flag 6, and the inspection result of the tag section by the data processing block 5 are sent to the branch control block 7, and the result is sent to the branch control block 7, where the microprogram is executed. Used for branch control decisions. The branch control block 7 performs control to invalidate the miss occurrence signal ' from the cache memory IJ 2 and the address translation buffer 4 based on the tag part inspection result by the data processing block 5 and the state of the dereference flag 6. That is, when the dereference flag 6 is on, it indicates that data is being prefetched, so when the dereference flag 6 is on,
In addition, when the inspection result of the tag section by the data processing block 5 is pointer data and when the dereference flag 6 is in the OFF state, the error occurrence signal from the cache memory 2 and the address translation buffer 4 is valid. It is.

他の期間は、キャッシュメモリ2とアドレス変換バッフ
ァ4からのミス発生信号が無効となる。分岐制御ブロッ
ク7によるキャッシュメモリ2とアドレス変換バッファ
4からのミス発生信号の無視により、データ先取り処理
中に発生した整数データ等のバリュー部を論理アドレス
として扱ったメモリアクセスが原因で発生する不要なス
ワップ処理又はアドレス変換処理へのトラップを除去で
きる。
During other periods, the miss occurrence signals from the cache memory 2 and address translation buffer 4 are invalid. By ignoring miss occurrence signals from the cache memory 2 and address translation buffer 4 by the branch control block 7, unnecessary errors occur due to memory accesses that treat the value part of integer data etc. that occurred during data prefetch processing as a logical address. Traps to swap or address translation processing can be removed.

第7図は、従来の情報処理装置がデータ先取りを使用し
たディリファレンス処理をパイプライン化した場合の処
理フローである。第1処理ステツプ70で、最初のセル
からデータを読み出し、第2処理ステツプ71で読み出
したデータのタグ検査とバリュー部を使用したデータの
先取りを行う。第3処理ステツプはタグ検査の結果とキ
ャッシュメモリ及びアドレス変換バッファの状態により
6方向に分岐する。第1は、タグがポインタ・データを
表わすリファレンスで、かつ、キャッシュメモリがヒツ
トした場合の処理ステップ72で、第2ステツプ71で
先取りしたデータのタグ部を検査し、バリュー部を使用
したデータの先取りを行う。第2は、タグがポインタ・
データを表わすリファレンスで、かつ、キャッシュメモ
リがミスし、かつ、アドレス変換バッファがヒツトした
場合の処理ステップ73で、キャッシュメモリに対する
スワップ処理を行う。第3は、タグがリファレンスで、
かつ、キャッシュメモリとアドレス変換バッファがミス
した場合の処理ステップ74で、主記憶ブロック・アク
セスに使用する物理アドレスを求めるアドレス変換処理
を行う。第4は、タグがリファレンス以外で、かつ、キ
ャッシュメモリがヒツトした場合の処理ステップ75で
、アクセスしたデータの処理を行う。第5は、リファレ
ンス以外で、かつ、キャッシュ・ミス、かつ、アドレス
変換バッファがヒツトした場合の処理ステップ76で、
データの先取りは不要になったにもかかわらず、データ
先取り処理で発生したキャッシュ・ミスに対するスワッ
プ・イン処理を行う。第6は、リファレンス以外で、か
つ、キャッシュメモリとアドレス変換バッファがミスし
た場合の処理ステップ77で・データの先取りが不要に
なったにもかかわらず、データ先取り処理で発生したキ
ャッシュメモリとアドレス変換バッファのミスに対する
アドレス変換処理を行う。
FIG. 7 is a processing flow when a conventional information processing apparatus pipelines dereference processing using data prefetching. In a first processing step 70, data is read from the first cell, and in a second processing step 71, the tag of the read data is inspected and the data is prefetched using the value part. The third processing step branches in six directions depending on the result of tag inspection and the states of the cache memory and address translation buffer. The first step is when the tag is a reference representing pointer data and the cache memory is hit. In the processing step 72, the tag part of the data prefetched in the second step 71 is inspected, and the value part is used to check the data. Be proactive. Second, the tag is a pointer
In a processing step 73 when the reference representing data is a miss in the cache memory and the address translation buffer is a hit, a swap process is performed on the cache memory. Third, the tag is a reference,
In addition, in processing step 74 when there is a miss between the cache memory and the address translation buffer, address translation processing is performed to obtain a physical address to be used for main memory block access. Fourth, in processing step 75 when the tag is other than a reference and the cache memory is hit, the accessed data is processed. The fifth step is processing step 76 when there is a hit other than the reference, there is a cache miss, and there is a hit in the address translation buffer.
Even though data prefetching is no longer necessary, swap-in processing is performed for cache misses that occur during data prefetching processing. The sixth is processing step 77 when there is a miss between the cache memory and the address translation buffer in cases other than reference.Even though data prefetching is no longer necessary, the cache memory and address translation that occurred in the data prefetching process are Performs address translation processing for buffer misses.

さらに、処理ステップ72で先取りされたデータのタグ
検査の結果とキャッシュメモリ及びアドレス変換バッフ
ァの状態により6方向に分岐する。
Further, in processing step 72, the process branches in six directions depending on the result of tag inspection of the prefetched data and the states of the cache memory and address translation buffer.

処理ステップ78は処理ステップ73と同様のスワップ
処理であり、処理ステップ79は処理ステップ74と同
様のアドレス変換処理であり、処理ステップ80は処理
ステップ75と同様のデータ処理であり、処理ステップ
81は処理ステップ76と同様のスワップ処理であり、
処理ステップ82は処理ステップ77と同様のアドレス
変換処理である。
Processing step 78 is swap processing similar to processing step 73, processing step 79 is address conversion processing similar to processing step 74, processing step 80 is data processing similar to processing step 75, and processing step 81 is This is a swap process similar to process step 76,
Processing step 82 is an address conversion process similar to processing step 77.

以上の処理フローにおいて、処理ステップ76゜77及
び処理ステップ81.82は不要な処理を行うステップ
で、性能低下の原因となる。
In the above processing flow, processing steps 76 and 77 and processing steps 81 and 82 are steps that perform unnecessary processing and cause performance degradation.

第8図に、本実施例の情報処理装置でデータ先取りを使
用したディリファレンス処理をパイプライン処理化した
場合の処理フローを示す。この処理フローにおいて、第
7図の処理ステップと同じ処理ステップには同一の番号
を付して示した。本実施例の情報処理装置による処理の
フローによれば、従来の情報処理装置を使用した場合に
性能低下の原因となっていた処理ステップ76、77と
処理ステップ81.82が除去され、ディリファレンス
処理の処理速度が改善されていることがわかる。
FIG. 8 shows a processing flow when dereference processing using data prefetching is converted into pipeline processing in the information processing apparatus of this embodiment. In this processing flow, the same processing steps as those in FIG. 7 are indicated with the same numbers. According to the processing flow of the information processing apparatus of this embodiment, processing steps 76 and 77 and processing steps 81 and 82, which caused performance deterioration when using a conventional information processing apparatus, are removed, and dereference is performed. It can be seen that the processing speed has been improved.

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

本発明の情報処理装置は、ポインタ・データを辿ったデ
ータアクセス処理であるディリファレンス処理を高速化
する為に、ディリファレンス処理の基本処理であるデー
タのアクセスとデータタイプの検査の2個の処理を行う
データ・アクセス・ステージとデータタイプの検査ステ
ージの2ステージから成るパイプライン処理化し、デー
タの先取りによる処理の高速化を実現すると共に、デー
タ先取り処理中を示すディリファレンス・フラグを導入
し、従来の情報処理装置では問題になっていたデータ先
取りに使用するメモリアドレスに整数データ等のバリュ
ー部が使用されることが原因となるスワップ処理やアド
レス変換処理への不要なトラップを禁止可能とし、ディ
リファレンス処理の処理速度が向上する。
In order to speed up dereference processing, which is data access processing that follows pointer data, the information processing device of the present invention performs two processes, data access and data type inspection, which are the basic processes of dereference processing. We have implemented a pipeline process that consists of two stages: a data access stage that performs data processing, and a data type inspection stage, and achieved faster processing by prefetching data, as well as introducing a dereference flag that indicates when data prefetching is in progress. It is possible to prevent unnecessary traps in swap processing and address conversion processing caused by the use of value parts such as integer data in memory addresses used for data prefetching, which has been a problem with conventional information processing devices. The processing speed of dereference processing is improved.

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

第1図は、本発明の情報処理装置の一実施例の構成図、 第2図は、高レベルプログラミング言語プロローグの構
造体データの内部データ表現を示す図、第3図は、変数
x、y、zが同じ値である状態の時の内部データ表現を
示す図、 第4図は、第3図の変数Zをアクセスした時の処理フロ
ーを示す図、 第5図は、従来の情報処理装置の構成図、第6図は、デ
ィリファレンス処理をパイプライン処理化した時のタイ
ミングチャートを示す図、第7図は従来の情報処理装置
を使用して、ディリファレンス処理をパイプライン処理
化した場合の処理フローを示す図、 第8図は、本発明の情報処理装置を使用してディリファ
レンス処理をパイプライン処理化した場合の処理フロー
を示す図である。 l・・・主記憶ブロック 2・・・キャッシュメモリ 3・・・メモリアドレス・レジスタ 4・・・アドレス変換バッファ 5・・・データ処理ブロック 6・・・ディリファレンス・フラグ 7・・・分岐制御ブロック 8・・・マイクロシーケンス制御ブロック9・・・メモ
リアドレス・レジスタ入力データセレクタ 代理人弁理士   岩  佐  義  幸第1図 方@(′P箱(小箱(リシコ゛、ナシ)、ミカン)、カ
キ、クリ〕第3図 も4図 第6図
FIG. 1 is a block diagram of an embodiment of an information processing device of the present invention. FIG. 2 is a diagram showing internal data representation of structure data of a high-level programming language prologue. FIG. 3 is a diagram showing variables x, y. , z are the same value, Figure 4 is a diagram showing the processing flow when variable Z in Figure 3 is accessed, Figure 5 is a conventional information processing device Figure 6 is a diagram showing a timing chart when dereference processing is pipelined, and Figure 7 is a diagram showing the timing chart when dereference processing is pipelined using a conventional information processing device. FIG. 8 is a diagram showing a processing flow when dereference processing is pipelined using the information processing apparatus of the present invention. l... Main memory block 2... Cache memory 3... Memory address register 4... Address translation buffer 5... Data processing block 6... Dereference flag 7... Branch control block 8...Microsequence control block 9...Memory address/register input data selector Yoshiyuki Iwasa Patent attorney 1st figure @('P box (small box (Rishiko), pear), oyster, [Cli] Figure 3 also Figure 4 Figure 6

Claims (1)

【特許請求の範囲】[Claims] (1)データタイプを示すタグ部及びデータ値を示すバ
リュー部から構成されるデータと機械語プログラムとを
格納する主記憶ブロックと、前記主記憶ブロック上のデ
ータ・アクセスを高速化する為のバッファメモリである
キャッシュメモリと、前記主記憶ブロック上のデータを
指定する論理アドレスを保持するメモリアドレス・レジ
スタと、前記メモリアドレス・レジスタが保持する論理
アドレスと論理アドレスに対応した前記主記憶ブロック
のアクセスで使用する物理アドレスの対を保持するバッ
ファメモリであるアドレス変換バッファと、前記主記憶
ブロックから読み出したデータに対する算術論理演算及
びタグ部の検査を行うデータ処理ブロックと、データの
先取り処理中であることを示すディリファレンス・フラ
グと、前記キャッシュメモリ及び前記アドレス変換バッ
ファ及び前記データ処理ブロック及び前記ディリファレ
ンス・フラグの状態でマイクロプログラムの分岐要求信
号を発生する分岐制御ブロックと、前記分岐制御ブロッ
クが出力する分岐要求信号に従いマイクロプログラムの
実行シーケンスを制御するマイクロシーケンス制御ブロ
ックとを備え、前記ディリファレンス・フラグがオフの
状態で前記キャッシュメモリがミスした場合はスワップ
イン・トラップを発生し、前記キャッシュメモリ及び前
記アドレス変換バッファが共にミスした場合はアドレス
変換トラップを発生し、前記ディリファレンス・フラグ
がオンの状態では前記データ処理ブロックが特定のデー
タタイプを前記タグ部の検査で検出した場合のみスワッ
プイン・トラップ及びアドレス変換トラップ要因の検出
を有効とし、前記データ処理ブロックがその他のデータ
タイプを検出した場合はスワップイン・トラップ及びア
ドレス変換トラップ要因の検出を無効とすることを特徴
とする情報処理装置。
(1) A main memory block for storing data and a machine language program consisting of a tag section indicating the data type and a value section indicating the data value, and a buffer for speeding up data access on the main memory block. A cache memory that is a memory, a memory address register that holds a logical address specifying data on the main memory block, a logical address held by the memory address register, and access to the main memory block corresponding to the logical address. an address conversion buffer that is a buffer memory that holds pairs of physical addresses used in the main memory block; a data processing block that performs arithmetic and logical operations on data read from the main memory block and checks the tag section; a branch control block that generates a microprogram branch request signal in the state of the cache memory, the address translation buffer, the data processing block, and the dereference flag; and a microsequence control block that controls the execution sequence of the microprogram according to the output branch request signal, and when the cache memory misses while the dereference flag is off, a swap-in trap is generated and the cache If both the memory and the address translation buffer miss, an address translation trap is generated, and when the dereference flag is on, swapping is performed only when the data processing block detects a specific data type by checking the tag section. Information processing characterized in that detection of in-trap and address translation trap causes is enabled, and when the data processing block detects other data types, detection of swap-in traps and address translation trap causes is disabled. Device.
JP61085190A 1986-04-15 1986-04-15 Information processor Pending JPS62242255A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61085190A JPS62242255A (en) 1986-04-15 1986-04-15 Information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61085190A JPS62242255A (en) 1986-04-15 1986-04-15 Information processor

Publications (1)

Publication Number Publication Date
JPS62242255A true JPS62242255A (en) 1987-10-22

Family

ID=13851732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61085190A Pending JPS62242255A (en) 1986-04-15 1986-04-15 Information processor

Country Status (1)

Country Link
JP (1) JPS62242255A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278640A (en) * 1986-05-27 1987-12-03 Fujitsu Ltd Data retrieving system
US4897669A (en) * 1988-10-14 1990-01-30 Fuji Xerox Co., Ltd. Thermal transfer recording media

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5940387A (en) * 1982-08-31 1984-03-06 Toshiba Corp Virtual storage control system
JPS6155736A (en) * 1984-08-27 1986-03-20 Hitachi Ltd Prologue machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5940387A (en) * 1982-08-31 1984-03-06 Toshiba Corp Virtual storage control system
JPS6155736A (en) * 1984-08-27 1986-03-20 Hitachi Ltd Prologue machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278640A (en) * 1986-05-27 1987-12-03 Fujitsu Ltd Data retrieving system
US4897669A (en) * 1988-10-14 1990-01-30 Fuji Xerox Co., Ltd. Thermal transfer recording media

Similar Documents

Publication Publication Date Title
US7689867B2 (en) Multiprocessor breakpoint
KR100421749B1 (en) Method and apparatus for implementing non-faulting load instruction
JP2001507151A (en) Gate storage buffers for advanced microprocessors.
JP2001504957A (en) Memory data aliasing method and apparatus in advanced processor
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
JPH0527143B2 (en)
US5819067A (en) Computer system configured to translate a computer program into a second computer program prior to executing the computer program
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
JP3130446B2 (en) Program conversion device and processor
EP0592404B1 (en) Apparatus and method for providing a stall cache
US7627740B2 (en) Methods and apparatus for dynamic prediction by software
JP2004538556A (en) Non-processing operation processing in multiple instruction set systems
JPS62242255A (en) Information processor
JP3652956B2 (en) Emulation device
US5822607A (en) Method for fast validation checking for code and data segment descriptor loads
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
US5815729A (en) Method and apparatus for on the fly descriptor validation
US7983894B2 (en) Data processing
CN114580329A (en) A real-time debugging method of digital signal processor chip
CN111954865A (en) Apparatus and method for pre-fetching data items
JP3739556B2 (en) Information processing device
Azevedo Filho et al. Scalar processing overhead on SIMD-only architectures
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH07182165A (en) Processing method/device for instruction with committing condition
JPH0248733A (en) Information processor