[go: up one dir, main page]

JPS6054048A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS6054048A
JPS6054048A JP16141783A JP16141783A JPS6054048A JP S6054048 A JPS6054048 A JP S6054048A JP 16141783 A JP16141783 A JP 16141783A JP 16141783 A JP16141783 A JP 16141783A JP S6054048 A JPS6054048 A JP S6054048A
Authority
JP
Japan
Prior art keywords
instruction
data
address
signal
output
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
JP16141783A
Other languages
English (en)
Other versions
JPH056703B2 (ja
Inventor
Shinya Kimura
真也 木村
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
Nippon Electric Co 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP16141783A priority Critical patent/JPS6054048A/ja
Publication of JPS6054048A publication Critical patent/JPS6054048A/ja
Publication of JPH056703B2 publication Critical patent/JPH056703B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔発明の属する技術分野〕 本発明は情報処理装置、特に命令先取り制御を行なう情
報処理装置に関する。
〔従来技術〕
コンピュータの高速化技法の1つとして、命令の先取り
制御がある。ノイマン型コンピュータの特徴に次に実行
される命令は現在実行中の命令のアドレスの次のアドレ
スにある命令である確率が非常に高いことがあげられる
。命令の先取り制御はこの特徴を利用し、外部バスの空
き時間中にシーケンシャルに命令フェッチを行ない、内
部のバッファに蓄えておくことで、命令フェッチに要す
る時間を減すことを目的としている。
第1図は命令先取り機構を有する従来のコンピュータの
ブロック図である。第1図に示す命令先取り機構を有す
る従来のコンピュータは、データ処理部2とバス制御部
1とから構成される。命令ポインタ(以下IPと略す)
11は次にメモリからフェッチする命令のアドレスを保
持するレジスタである。データ・ポインタ(以下DPと
略す)12はデータ処理部2からデータ・アドレス・バ
ス23を通して送られるメモリ・アドレスを保持するレ
ジスタである。IPJ ]とDP12の出力はマルチプ
レクサ13全通してアドレス・バス14へ出力される。
インクリメンタ−(INCJ15は、命令フェッチ後に
IPI 1の値を次のアドレスを指すように増加させる
ための演算回路である。IPI 1の入力は、プログラ
ム・シーケンス制御命令、たとえばジャンプ命令などが
実行された場合にデータ処理部2がら命令アドレスバス
22を介して供給される新しいアドレス値とインクリメ
ンタ15の出方とでありこれらはマルチフ。
レクサ(MPX)16によりその中の1つが選択される
。インストラクション・バッファ(lN5T BTJF
)17は、先取りされた命令を蓄えておくための高速メ
モリであり命令バス21全通しデータ処理部2へ命令が
転送される。キュー・リード・カウンタ(以下Q RC
と略す)18とキュー・ライト・カウンタ(以下QWC
と略す)19とはインストラクション・バッファ17を
待ち行列構造として使用するためのカウンタである。デ
ータ処理部2からは、プログラム・シーケンス制御命令
が実行すれた場合にQl(、C18とQWC19をリセ
ットするためのキューカウンタ・リセット信号2oが出
力される。メモリとデータ処理部2とのデータ送受は、
メモリ・データ・レジスタ(MDR)111 ト内部デ
ータ・バス112,113を経由し、デマルチプレクサ
110を通して行なわれる。
以上に示した構成で命令先取り制御が可能である。とこ
ろが命令先取り制御を行なっているコンピュータにおい
て、命令先取り制御を行なっていないコンピュータのエ
ミュレーションをする場合。
命令の自己修正を行なっているプログラムの実行を忠実
に再現できない。つまり、修正を加えようとする命令が
すでにコンピュータ内に先取りされている場合には修正
前の命令を実行してしまい。
本来実行されるべき命令と異なってしまう。
この欠点を除去する1つの方法として、命令の先取りを
行わない方法がある。しかしこの方法では命令フェッチ
に要する時間が命令実行時間に加えられることになりパ
フォーマンスの大幅な低下を来たすという欠点がある。
またこの欠点を除去する第2の方法として、まずメモリ
へ書込もうとするアドレスのデータがインストラクショ
ンバッファにすでに先取りされているか否かを判断し、
先取りされている場合には。
インストラクションバッファ内の先取りされた命令も書
換えることにより、自己修正した命令を実行する方式が
ある。この方式を第1図に示したコンピュータに応用す
ると、メモリへのデータ書込みの際にS IP’llと
DP12の差とQWC19とQRCl 8の差の比較を
行ない、前者の差が後者の差以下の場合には、QWC1
9から前者の差を減じ、その結果の指し示すインストラ
クションバッファの命令も書換え、前者の差が後者の差
より大きい場合にはインストラクションバッファ内の命
令書換えは行なわないことにより実現できる。
このために必要となるハードウェアとしては、2つの減
算器、比較器及び2つのマルチプレクサが必要となる。
ところが命令の自己修正を行なう割合は小さく、かつ自
己修正を受ける前の命令がインストラクションバッファ
にフェッチされでいる確率は非常に小さい。従って第2
の方法ではハードウェアの増加量が多くなり1価格性能
比の低下を来たすという欠点がある。
〔発明の目的〕
本発明の目的は、ハードウェアの増加量が少なく、性能
の低下を十分小さく押えたうえで、命令先取り機構を有
するコンピュータで命令先取り機構を有しないコンピュ
ータ上のプログラムを命令の自己修正も含めて忠実にエ
ミュレートすることができる情報処理装置を提供するこ
とにある。
〔発明の構成〕
本発明の装置は、命令先取り制御を行なう情報処理装置
において、先取りする命令のアドレスを記憶しておく第
1の記憶手段と、データ・アクセスのメモリのアドレス
を記憶しておく第2の記憶手段と、先取りした命令を記
憶しておく第3の記憶手段と、前記第1の記憶手段の出
力と前記第2の記憶手段の出力とを入力とし減算を行な
う減算手段と前記減算手段の出力の供給をうけこれと予
め定めた値との比較を行ない前記減算手段の出力が前記
予め定めた値以内のときには自己修正命令フェッチ済信
号を発生する比較手段と、前記自己修正命令フェッチ済
信号とメモリへのデータ書込み要求信号との供給に応答
し前記第3の記憶手段の初期設定を行なう初期設定手段
とを含んで構成される。
〔実施例の説明〕
次に図面を参照して本発明の詳細な説明する。
第2図は本発明の一実施例を示すもので命令先取り機構
を有し、かつ命令先取り機構を有しないコンピュータの
プログラムを忠実にエミュレート可能にする自己修正命
令フェッチ済検出部を含んだコンピュータのブロック図
である。
第2図のコンピュータはデータ処理部3とバス制御部4
と自己修正命令フェッチ済み検出部(以下SMIPFD
と略す)5とより構成される。バス制御部4は従来の命
令先取り機構を有する第1図のコンピュータのバス制御
部1と同等の機能を有している。8MIPFD5は減算
器(SUB)51゜比較器(CMP)52.ANDゲー
ト53から構成される。
減算器51はバス制御部4の中の命令ポインタ41(以
下IP41と略す)の出力バス411とデータポインタ
42(以下DP42と略す)の出力バス412とを入力
としそれぞれの差を計算し、減算結果を出力バス54へ
出力する。
比較器52はIF51とDP42との減算結果を入力し
、インストラクションバッファ(INSTBUF)47
に蓄えうる命令の数の最大数(予め比較器52内に用意
されている)との比較を行ないメモリへ書き込んだデー
タがインストラクション・バッファ47にすでにフェッ
チされている場合(後述のように前記0I1.算結果が
上述最大数以下の場合)に自己修正命令フェッチ済み信
号55(以下S M I P F信号と略す)を供給す
る。
ANDゲート53はSMIPF信号55とデータ処理部
3から発せられるデータ書き込み要求信号31とを入力
し、インストラクション・バッファイニシャライズ信号
56を供給する。
インストラクション・バッファイニシャライズ信号56
を受けとったデータ処理部3は次に実行する命令のアド
レスをバス32.マルチプレクサ46を通してIF41
へ転送する。また、インストラクション・バッファ・イ
ニシャライズ信号56は、ORゲート6を通してキュー
・リード・カウンタ48とキュー・ライト・カウンタ4
9のイニシャライズ信号410となり、インストラクシ
ョン・バッファの初期化を行なう。ORゲート6のもう
1つの入力信号はプログラム・シーケンス制御命令が実
行された場合にデータ処理部3から出力されるキューカ
ウンタ・イニシャライズ信号30である。
減算器51は、IF41及びDP42のビット幅と等い
データの減算が可能でIF51の値からDP42の値を
減する回路である。
比較器52は、減算器51の出力とインストラクション
・バッファ47に蓄えうる命令数との比較を行なう。い
ま、インストラクション・バッファ47にN個の命令を
蓄積することが可能であるならば減算器51の出力の値
が1以上N以下の場合にSMIPF信号55が供給され
る。
第3図にアドレスバスの幅が16ビツトで、Nが4の場
合の比較器52の一実施例を示す。ADOからAD]、
5は減算結果出力バス54の各信号線である。
負論理の13人力ANDゲート71は減算結果出力バス
上のデータの上位13ビツトが総てOであることを検知
する。
ANDゲート72.ANリゲー)73.ANDゲート7
4は減算結果出力バス54上のデータの下位3ビツトが
0. 5. 6と7であることをそれぞれ検知する。
従ってNORゲート75の出力は、減算結果出力バス5
4の下位3ビツトが1から4であることを検知すること
になる。よってA N Dゲート76の出力であるSM
IPF信号55は減算結果出力バス54上のデータが1
から4の場合にのみ供給される。
、君4図にはデータ処理部3からデータ書込み要求が発
生し、その書込みアドレスのデータがバス制御部4内の
インストラクション・バッファ47にすでにフェッチさ
れている場合のタイミングチャートを示しである。
まず始めにデータ処理部3からDP42ヘデータ書込み
を行ないたいアドレスを書込む。(T1期間)この動作
によりIF51とDP42の差が1以上でかつインスト
ラクション・バッファ47の最大命令蓄積数以下となり
SMIPF信号55が供給される。次にデータ処理部3
からデータ・ライト要求31が出力される。(T2期間
)これによってインストラクション・バッファ・イニシ
ャライズ信号56が供給され、キュー・リード・カウン
タ48とキュー・ライト・カウンタ49がイニシャライ
ズされ、インストラクション・バッファ47は空となる
。次にT3期間ではメモリ・ライト信号が供給される。
またデータ処理部3からは次に実行すべき命令のアドレ
スがIF51へ転送され命令プリフェッチのための用意
が完了する。
従ってこれ以降バスに空が生じると命令フェッチし、イ
ンストラクション・バッファ47に命令を蓄えていき、
修正された命令も再フェツチされることになり、命令先
取りを行なっていないコンピュータのプログラムを忠実
にエミュレートすることが可能となる。
次にもう1つの実施例として、マイクロ・プロセッサに
応用した場合を第5図に示す。このマイクロプロセッサ
(IN置社の8086相当の機能を有す)は、命令キュ
ーを有し、さらにセグメント・レジスタを用いダイナミ
ック・リロケーションを可能にしている。このため、バ
ス制御部9にはセグメント・レジスタとセグメント内オ
フセット値の加算を行なうための加算器がデータ処理部
内の算術論理ユニットとは別に用意されている。
(8086マイクロプロセツサについてはUnited
Satates Patent Pat、 No、 4
,363+091 Title”Extended A
ddress、 Single and Multip
leBit Microprocessor”及びll
New Opt ionsfrom big chip
s”IEEEapectruH+ MARCH1979
pp28−34に示されている。)第5図の例は、前記
マイクロプロセッサのバス制御部9の加算器を減算もで
きる加減算器910とし、物理アドレス生成時には加算
器として、命令の自己修正の検出時には減算器として時
分割に使用することでハードウェアの共有を行ない、さ
らに比較器911を追加したものである。
第5図に示す構成で命令先取り方式を採用していないマ
イクロプロセッサ(IN置社の8080相当の如きマイ
クロプロセッサ)のプログラムのエミュレーションを行
なう場合、セグメント・レジスタ群913の中のC8(
コード・セグメント)とDS(データ・セグメント)は
、あらかじめ同一値に設定しておく。バス制御部9はデ
ータ処理部8からのデータ書込み要求により物理アドレ
スの生成を加減算器910で行ない、データ書込みサイ
クルを開始する。定数発生器95は第1図。
第2図のインフレメンタに相当する回路である。
データ書込みの行なわれている間の加減算器910の空
き時間においてはIF91とDP92の減算を行ないそ
の結果と既定値(命令キュー97の最大格納数であり比
較器911内に用意されている)とを比較器911で比
較し、命令キュー97に現在データを書込もうとするア
ドレスの旧データがフェッチされている場合にのみキュ
ー・制御部912に対してキュー・カウンタのイニシャ
ライズ信号914を送る。イニシャライズ信号914を
受けたキュー・制御部912はQRC9BとQWC99
のイニシャライズを行なう。これにより命令キュー97
内は命令が空となり、再フェツチが行なわれ、自己修正
した命令が命令キュー97にフェッチされ命令先取り方
式を採用していないマイクロプロセッサのプログラムを
忠実にエミュレーションすることが可能である。
〔発明の効果〕
本発明には以上説明したように、命令ポインタとデータ
・ポインタの差を計算する減算器と既定値との比較lに
より自己修正命令の再フェツチの必要性を検出しその場
合にのみ再フェツチを行なうことにより命令先取りを行
なわないコンピュータのプログラムを忠実にかつ性能の
低下を十分小さくエミュレーションすることができると
いう効果がある。
【図面の簡単な説明】
第1図は命令先取り機構を有する従来のコンピュータの
ブロック図、第2図は自己修正命令フェッチ済み検出部
を含んだ命令先取り機構を有するコンピュータのブロッ
ク図、第3図は比較器の一実施例%第4図は再フェツチ
の発生するタイミングを示した図、第5図はマイクロプ
ロセツサによる実施例を示した図である。 1・・・・・・バス制御部。 11・・・・・・命令ポインタ、12・・・・・・デー
タポインタ、13・・・・・・マルチプレクサ、14・
・・・・・アドレスバス、15・・・・・・インクリメ
ンタ、16・・・・・・マルチプレクサ、17・・・・
・・インストラクション・バッファ、18・・・・・・
キュー・リード・カウンタ、19・・・・・・キュー・
ライト・カウンタ、110・・・・・デマルチプレクサ
、111・・・・・・メモリ・データ・レジスタ。 112・・・・・・内部データ・バス、113・・・・
・・内部データ・バス、 2・・・・・・データ処理部。 20・・・・・・キュー・カウンタ・リセット信号、 
。 21・・・・・・命令バス、22・・・・・・命令アド
レス・バス。 23・・・・・・データ・アドレス俸バス。 3・・・・・・データ処胛部、 30・・・・・・キュー・カウンタ・イニシャライズ信
号、31・・・・・・データ・書込み要求信号、32・
・曲命令・アドレス・バス、33・曲データ・アドレス
畳バス、 4・・・・・・バス制御部。 41・・・・・・命令ポインタ、42・曲・データ・ポ
イ7り、46・・・・・・マルチプレクサ、47・・曲
インストラクション・バッファ、48・・・・・・キュ
ー・リード・カウンタ、49・・・・・・キュー・ライ
ト・カウンタ、41O・・・・・・イニシャライズ信号
、411・・・・・・出力バス、412・・・・・・出
力ハス、 5・・・・・・自己修正命令フェッチ済み検出部。 51・・・・・・減算器、52・・・・・・比較器、5
3・・・・・・ANDゲート、54・・・・・・減算結
果出力バス、55・・・・・・自己修正命令フェッチ済
み信号、56・・・・・・インストラクション・バッフ
ァ・イニシャライズ信号、6・・・・・・ORゲート。 8・・・・・・データ処理部。 9・・・・・・バス制御部、 91・・・・・・命令ポインタ、92・・・・・・デー
タ・ポインタ、93・・・・・・アドレス・データ・ラ
ッチ、94・・・・・・アドレス・データ・バス、95
・・・・・・定数発生器、96・・・・・・マルチプレ
クサ、97・・・・・・命令キュー、98・・・・・・
キュー・リード・カウンタ、99・・・・・・キュー・
ライト・カウンタ、910・・・・・・加減算器、91
1・・・・・・比較器、912・・・・・・キュー制御
部、913・・・・・・セグメント・レジスタ群、91
4・・・・・・イニシャライズ信号。 \・・・、ノ“・″ \\−ノ

Claims (1)

  1. 【特許請求の範囲】 命令先取り制御を行なう情報処理装置において。 先取りする命令のアドレスを記憶しておく第1の記憶手
    段と。 データ・アクセスのメモリのアドレスを記憶しておく第
    2の記憶手段と。 先取りした命令を記憶しておく第3の記憶手段と、 前記第1の記憶手段の出力と前記第2の記憶手段の出力
    とを入力とし減算を行なう減算手段と、前記減算手段の
    出力の供給をうけこれと予め定めた値との比較を行ない
    前記減算手段の出力が前記予め定めた値以内のときには
    自己修正命令フェッチ済信号を発生する比較手段と、 前記自已修正命令フェッチ済信号とメモリへのデータ書
    込み要求信号との供給に応答し前記第3の記憶手段の初
    期設定を行なう初期設定手段とを含み前記七〇期設定が
    あったときには新たに命令先取り制御を行なうことを特
    徴とする情報処理装置17.
JP16141783A 1983-09-02 1983-09-02 情報処理装置 Granted JPS6054048A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16141783A JPS6054048A (ja) 1983-09-02 1983-09-02 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16141783A JPS6054048A (ja) 1983-09-02 1983-09-02 情報処理装置

Publications (2)

Publication Number Publication Date
JPS6054048A true JPS6054048A (ja) 1985-03-28
JPH056703B2 JPH056703B2 (ja) 1993-01-27

Family

ID=15734698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16141783A Granted JPS6054048A (ja) 1983-09-02 1983-09-02 情報処理装置

Country Status (1)

Country Link
JP (1) JPS6054048A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001504957A (ja) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5582356A (en) * 1978-12-15 1980-06-21 Toshiba Corp Pre-fetch control system
JPS56118150A (en) * 1980-02-25 1981-09-17 Toshiba Corp Operation control device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5582356A (en) * 1978-12-15 1980-06-21 Toshiba Corp Pre-fetch control system
JPS56118150A (en) * 1980-02-25 1981-09-17 Toshiba Corp Operation control device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
US7840776B1 (en) 1996-08-22 2010-11-23 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
US8055877B1 (en) 1996-08-22 2011-11-08 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
JP2001504957A (ja) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置

Also Published As

Publication number Publication date
JPH056703B2 (ja) 1993-01-27

Similar Documents

Publication Publication Date Title
US9436471B2 (en) Efficient recording and replaying of non-deterministic instructions in a virtual machine and CPU therefor
CA1325288C (en) Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5278961A (en) Physical address to logical address translator for memory management units
US5961637A (en) Split branch system utilizing separate set branch, condition and branch instructions and including dual instruction fetchers
US6530076B1 (en) Data processing system processor dynamic selection of internal signal tracing
JP2539199B2 (ja) デジタルプロセッサ制御装置
US7451298B2 (en) Processing exceptions from 64-bit application program executing in 64-bit processor with 32-bit OS kernel by switching to 32-bit processor mode
CN104978284B (zh) 处理器子程序高速缓冲存储器
WO1990014629A2 (en) Parallel multithreaded data processing system
US5263153A (en) Monitoring control flow in a microprocessor
IE970146A1 (en) A data processing system having a self-aligning stack¹pointed and method therefor
US5717909A (en) Code breakpoint decoder
JP2816146B2 (ja) 回路動作テスト装置
US4028670A (en) Fetch instruction for operand address calculation
JPS6054048A (ja) 情報処理装置
US6032235A (en) Memory initialization circuit
US4212058A (en) Computer store mechanism
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPH0385636A (ja) 命令先行制御装置
JP2994280B2 (ja) 計算機システムの性能評価方法
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH04302329A (ja) マイクロ処理システム
JPS63240634A (ja) 情報処理装置
JPH0447851B2 (ja)
JPH01189728A (ja) 命令プリフェッチアドレスの更新回路