JP2765831B2 - Data processing device - Google Patents

Data processing device

Info

Publication number
JP2765831B2
JP2765831B2 JP61251760A JP25176086A JP2765831B2 JP 2765831 B2 JP2765831 B2 JP 2765831B2 JP 61251760 A JP61251760 A JP 61251760A JP 25176086 A JP25176086 A JP 25176086A JP 2765831 B2 JP2765831 B2 JP 2765831B2
Authority
JP
Japan
Prior art keywords
microprogram
page fault
address
checkpoint
execution
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.)
Expired - Lifetime
Application number
JP61251760A
Other languages
Japanese (ja)
Other versions
JPS63106850A (en
Inventor
伸一郎 山口
秀和 松本
忠秋 坂東
洋一 平山
隆行 森岡
壮一 高谷
幸雄 川本
寿之 井手
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61251760A priority Critical patent/JP2765831B2/en
Priority to DE3735828A priority patent/DE3735828C2/en
Priority to US07/111,618 priority patent/US5003458A/en
Publication of JPS63106850A publication Critical patent/JPS63106850A/en
Priority to US07/674,398 priority patent/US5146569A/en
Application granted granted Critical
Publication of JP2765831B2 publication Critical patent/JP2765831B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロプログラム制御によるデータ処理に
係り、特にページフオールト割込処理終了後、命令の実
行途中から処理を再開するのに好適な、データ処理装置
に関するものである。 〔従来の技術〕 マイクロプログラム制御によるデータ処理装置におい
て、ページフオールト再開処理方式の1つが特開昭53-8
4540号に示されている。ここには、命令の実行途中にペ
ージフオールトが発生した場合、命令の実行途中にペー
ジフオールト割込が発生したことを示す割込情報フラグ
をセツし、プログラムの実行状態を示すプログラムステ
ータスワードと、命令の実行途中の内部レジスタの内容
をメモリ領域にに退避し、ページフオールト処理終了
後、メモリ領域内の該プログラムステータスワードに従
つて、命令を再開するようにしていた。 これらのメモリ領域への退避・回復情報は、いずれも
ページフオールト割込が発生した時点の情報であつた。 しかし、ページフオールト割込を検出するマイクロプ
ログラムアドレスと、処理を再開するマイクロプログラ
ムアドレスが異なる場合には、ページフオールト割込が
発生した時点の情報によつて処理を再開することはでき
なかつた。 〔発明が解決しようとする問題点〕 上記従来の技術では、ページフオールト割込が発生し
た時点の情報によつて、命令実行途中の処理中断及び再
開を行うことが、非常に困難な場合も発生してくる。 たとえば、高性能なコンピユータでのメモリデータを
読出す場合、メモリ起動をかけるマイクロプログラム
と、メモリアクセス終了待ちを行うマイクロプログラム
は異なる。ページフオールト割込は、メモリアクセス終
了待ちを行う際に検出する。このような高性能コンピユ
ータでは、ページフオールト処理終了後の命令再開は、
メモリ起動をかけるマイクロプログラムに戻らなければ
ならない。 さらにまた、パイプライン制御を行う計算機において
は、ユニツト間の情報転送の手順が絡んでおり、メモリ
起動をかけた所に戻つても再開がうまくゆかない場合が
ある。このような場合には、マイクロプログラム記述者
が、再開アドレスを適切に設定することにより、再開す
ることが可能となる。これはソフトウエアの分野では、
謂ゆるチエツクポイントと言われている方法であり、ペ
ージフオールトが起つた時、チエツクポイントマイクロ
プログラムアドレスに戻る方法である。 本発明の目的は、ページフオールト処理終了後の命令
再開を、チエツクポイントマイクロプログラムアドレス
に基づいたアドレス(以下チエツクポイントアドレスと
称す)から行うことが可能なデータ処理装置を提供する
ことにある。 〔問題点を解決するための手段〕 本発明は、ページフォールトを発生させるオペレシー
ションよりも前のステップにチェックポイントを設定し
たマイクロプログラムを有してデータの処理を行うデー
タ処理装置において、上記マイクロプログラムの実行中
に上記ページフォールトが発生すると上記チェックポイ
ントから上記マイクロプログラムの実行を再開するのに
必要なレジスタの内容を格納する主記憶装置と、上記主
記憶装置とは独立したデータ処理部であって、上記マイ
クロプログラムの実行に伴って上記チェックポイントの
検出を行なうデコード部と、上記デコード部によって上
記チェックポイントが検出される毎に上記チェックポイ
ントが示す上記マイクロプログラムのアドレスを格納す
るアドレスレジスタと、ページフォールトの発生によっ
てページフォールトの処理を行ない、ページフォールト
の処理終了後、上記主記憶装置に格納したレジスタの内
容を上記レジスタへ復帰するページフォールト処理部
と、上記ページフォールトが発生したときにアドレスレ
ジスタに格納されていた上記チェックポイントが示すア
ドレスよりマイクロプログラムの実行を再開するマイク
ロプログラム実行再開部とからなるデータ処理部とを具
備したことを特徴とする。 〔作用〕 実行中のマイクロプログラムの指定により、現在実行
中のマイクロプログラムアドレス或いはこのアドレスの
次のアドレスを、第1のレジスタに格納することと、ペ
ージフオールト処理終了後、命令の実行途中から処理を
再開する場合、メモリに退避した該第1のレジスタの内
容を、命令を再開するためのマイクロプログラムアドレ
スとして用いるようにした。 これによつて、命令再開は、チエツクポイントマイク
ロプログラムアドレスから始められる。 〔実施例〕 以下、本発明の実施例を図を用いて説明する。 第2図は、本発明を適用したマイクロプログラム制御
によるデータ処理装置の実施例の全体構成を示すブロツ
ク図である。該データ処理装置は、主記憶装置(略称M
M)200,MM200を制御する装置(略称MCU)205,命令を解
読するユニツト(略称IU)210,命令を実行するユニツト
(略称FU)215から構成される。 第2図において、MM200は命令及びこの命令が扱うデ
ータを記憶する装置である。 MCU205は、MM200へのデータの読出し及び書込みを行
い、この際発生するページフオールト割込を検出し、信
号線10を介してEU215へページフオールト発生の信号を
送出する。IU210は、MM200からMCU205を介して命令を取
込み、解読して、命令を実行するための情報をEU215へ
送出する。EU215は、IU210からの情報を取込み、信号機
12及び14によつてメモリ内データのアドレスとメモリへ
の起動をMCU205へ送出し、MCU205から信号線16を介して
メモリアクセス終了信号を取込んだ後、信号線18を介し
てメモリ内のデータを取込み、命令の実行を開始する。
また、メモリアクセス終了信号と同時に、MCU205から信
号線10を介してページフオールト割込発生信号を取込ん
だならば、命令を実行途中で中断し、ページフオールト
処理を行う。 本発明は、マイクロプログラムの実行制御方式に係
り、これは第3図で示すEU215に特徴がある。これによ
り第3図を詳しく説明する。 第3図は、EU215の詳細ブロツク図である。EU215は、
マイクロプログラム制御部(略称ECONT)300,メモリデ
ータ退避レジスタ(略称OBR)305,プログラムの命令実
行状態を示すプログラムステータスワード(略称PSW)3
10,ワードレジスタ等のマイクロプログラム実行時の内
部レジスタ(略称INTR)315,演算器(略称ALU)320,メ
モリ上に存在するデータのアドレスを格納するレジスタ
(略称MAR)325,メモリへの書込みデータを格納するレ
ジスタ(略称MWR)330から構成される。 第3図において、MAR325は、信号線12を介してメモリ
内データのアドレスをMCU205へ送出し、ECONT300は信号
線14を介してメモリへの起動信号を送出する。 ECONT300はMCU205からのメモリアクセス終了信信号を
信号線16を介して受取り、OBR305の、信号線18を介して
セツトされているメモリ内データを用いて、命令の実行
を行う。MCU205からの信号線10を介してページフオール
ト割込発生信号を取込むと、命令の実行を中断し、PSW3
01,INTR315等の情報をMWR330,信号線20を介してメモリ
領域へ退避し、ページフオールト処理を行う。 EU215の中で、マイクロプログラム制御部であるECONT
300が、本発明に特に関係するため、第1図により詳し
く説明する。 ECONT300は、マイクロプログラムのアドレスを生成す
る回路(略称MAGEN)100,マイクロプログラムのアドレ
スをインクリメントする回路(略称INC)110,マイクロ
プログラムのアドレスを示すレジスタ(略称CSAR)115,
マイクロプログラムを格納するRAM(略称WCS)120,WCS1
20から取込んだマイクロ命令を一時格納するレジスタ
(略称WCSOUT)125,マイクロ命令を各制御部へ分配する
レジスタ(略称MIR)130,常時、CSARの値をセーブして
いるレジスタ(略称S-CSAR)135,S-CSAR135の内容をマ
イクロプログラムの指定により格納するレジスタ(MACS
AR)140,MACSAR140の入力データを選択するセレクタ
(略称SEL)145,MCU205からのページフオールト割込信
号10を、マイクロプログラムの指定により取込む回路
(略称PE)155,MIR130からのマイクロプログラムを解読
するデコーダ(略称MPDEC)160から構成される。 第1図においてMAGEN100で生成されたマイクロプログ
ラムのアドレスは、CSAR115を介し、WCS120からマイク
ロ命令を読出し、WCSOUT125にセツトされる。又、CSAP1
15の内容は、S-CSAR135へ、WCSOUT125と同じタイミング
でセツトされる。 ここで、主に第1図を用いて、マイクロ命令がメモリ
データ読出し制御時の、各制御部の動作を説明する。 第4図はマイクロプログラムの流れ図を示したもので
ある。メモリ起動の処理500に先行してマイクロプログ
ラム記述者により、ページフオールト発生後の命令実行
再開に影響を与えない適切なアドレスに設定されたチェ
ックポイント400の処理があり、メモリアクセス終了待
ちの処理600において、ページフオールトの有無が検出
される。 チエツクポイント400の処理においては、マイクロプ
ログラムの指定により、再開するマイクロプログラムア
ドレスを第1図のMACSAR140へ書込む。これはMPDEC160
により、マイクロプログラムでチエツクポイントが指定
したことをデコードして、書込み可能信号ENABLE150を
出力することによつて実行される。 マイクロプログラムアドレスは、S-CSAR135から信号
線30,セレクタSEL145及び信号線32を介してMACSAR140へ
格納される。第5図はマイクロプログラムのフオーマツ
トの一例を示したものであつて、OPはマイクロプログラ
ムオペレーシヨンで、演算や転送のマイクロオペレーシ
ヨンを指定する。RA,RBは、演算や転送に使用するレジ
スタを指定するフイールド、DEST,CCONTは、演算結果
を、どこへ格納するか(例えばメモリアドレスレジス
タ;MAR,メモリ書込みレジスタ;MWR等)指定するフイー
ルド、STCONTは演算結果のステータスの生成方法を指定
するフイールドである。FFCONTは、各種のフリツプフロ
ツプ等のセツト,リセツトを指定する信号,MEXはメモリ
起動及び終了待ちを指定するフイールド、BCONTは、分
岐方法の指定,BAは分岐アドレスの指定フイールドであ
る。この中で、本発明には、FFCONT,MEX,BCONTが関係す
る。FFCONTでは、前述したチエツクポイントを指定す
る。本指定がある時に、MPDEC160からENABLE150が出力
され現在実行中のマイクロプログラムアドレスを、MACS
AR140に退避する。 また、MEXフイールドをMPDEC160でデコードし、メモ
リ起動信号14およびメモリアクセス終了待ち信号34を出
力する。またFFCONTは、EUバスから信号線40を介して再
開アドレスを、MACSARにセツトするための選択信号42と
しても使用する。 さて、第4図のマイクロプログラムの流れにおいて、
メモリ起動500の処理においては、メモリ起動信号が信
号線14を介してMCU205へ送出され、メモリのアクセスが
終了すると、メモリアクセス終了信号が信号線16を介し
てPF155へ保持される。 以後、ページフオールト割込が命令実行途中に発生し
た場合の、命令の中断,再開について説明する。 i)ページフオールト割込み検出。 MCU205がページフオールト割込を検出すると、メモリ
アクセス終了信号と一緒にページフオールト割込発生信
号も、信号線16及び10を介して取込まれ、PE155に保持
される。 第4図のマイクロプログラムの流れにおいて、マイク
ロプログラムがメモリアクセス終了待ち600を出力する
と、MPDEC160によつて解読され、メモリアクセス待ちで
あることが、信号線34を介し、PE155へ送出される。 第6図は、ページフオールト割込の検出をマイクロプ
ログラムの指定により行う流れ図である。メモリアクセ
ス終了信号とページフオールト割込発生信号を、すでに
取込んでいる場合について明する。この時、マイクロプ
ログラムがメモリアクセス終了待ちを信号線34を介して
出力すると、PF155は、MAGEN100がページフオールト処
理マイクロプログラム先頭アドレスを生成することを指
定する信号を、信号線36を介して送出する。 第4図のマイクロプログラムの流れにおいて、メモリ
アクセス待ち600のクイクロプログラムで、ページフオ
ールト割込が発生したことを検出すると、MAGEN100は、
ページフオールト処理マイクロプログラム先頭アドレス
を生成し、ページフオールト処理マイクケプログラムが
実行される。 ii)メモリ領域への内部情報の退避。 第7図は、第3図内PSW310の詳細図である。ページフ
オールト割込が発生すると実行中の命令は中断され、PS
W310の1ワード目の中断表示ビツトに1をセツトし、退
避情報をスタツクに積んでいく。この様子を、第4図70
0〜740に示している。 まず、プログラムの実行状態を示すPSW310の内容をAL
U320,MWR330及び信号線20を介してメモリ領域に退避す
る。 次に、チエツクポイントマイクロプログラムアドレス
が入つているMACSAR140の内容を、信号線28,ALU320,MWR
330及び信号線20を介してメモリ領域に退避する。その
次に、内部レジスタであるINTR315の内容をALU320,MWR3
30及び信号線20を介してメモリ領域内に退避する。 上記メモリ領域内の退避状態は、第8図に詳細に示し
てある。 iii)メモリ領域からの内部情報の回復。 まず、メモリ領域内に退避したPSW310の内容をOBR305
を介して取込み、表示ビツトのチエツクを行い、PSWに
格納する。 この場合、表示ビツトは「1」であるから、MACSAR14
0及びINTR315を回復しなければならないことがわかる。 メモリ領域内に退避したMACSAR140の内容をMACSAR140
へ回復する時、該回復を指定するマイクロプログラムを
MPDEC160によつて解読し、信号線42を介してSEL145に送
出する。該信号線42から回復指定信号を取込んだSEL145
は、MACSAR140の入力として、信号線40を選択し、信号
線32を介して、MACSAR140に格納する。 メモリ領域内に退避したINTR315の内容も、同様にし
て、INTR315に回復する。 iv)命令の再開。 マイクロプログラム先頭アドレスとしてMACSAR140の
内容を選択することを指定するマイクロプログラムをMP
DEC160でデコードする。 MAGEN100へ該デコード結果を信号線44を介して送出す
ることによつて、MAGEN100は、マイクロプログラム先頭
アドレスとして、MACSAR140の内容を示す信号線46を選
択し、CSAP115へ送出する。 これによつて、ページフオールト割込が発生する以前
に、MACSAR140に格納してあつたチエツクポイントマイ
クロプログラムアドレスから、命令を再開することが可
能になる。 なお、上記実施例では、チエツクポイントとメモリ起
動は、独立に指定できるようになつているが、メモリ起
動を指定するマイクロプログラムから必ず再開できるよ
うにマイクロプログラムを作成することが可能であれ
ば、チエツクポイントは、メモリ起動の時とすることも
可能である。 この場合には、メモリ起動をMPDEC160でデコードした
時に、現在実行中のマイクロプログラムアドレスをMACS
AR140に格納すればよい。 更に、上記実施例では、メモリからチエツクポイント
アドレスを、回復する場合、MACSAR140を介して行つて
いるが、MACSAR140とは別に、レジスタを設け、このレ
ジスタを介してCSAP115に回復するようにしても、チエ
ツクポイントアドレスからの命令の再開実行が可能とな
る。 更にまた、上記実施例では、チエツクポイントを指定
したアドレスをチエツクポイントアドレスとして退避す
るようになつているが、次に実行するマイクロプログラ
ムのアドレスを退避する方が容易な場合がある。この時
には、チエツクポイントを指定するマイクロプログラム
は、再開すべきマイクロプログラムのひとつ前に実行さ
れるようにし、チエツクポイントアドレスとしては実行
中のマイクロプログラムアドレスの次のアドレスとな
る。 〔発明の効果〕 本発明によれば、ページフオールト割込が発生する以
前に、チエツクポイントマイクロプログラムアドレスを
退避する手段と、ページフオールト処理終了後、該チエ
ツクポイントマイクロプログラムアドレスからの命令を
再開する手段を設けることによつて、ページフオールト
が発生しても、予め指定した任意のチエツクポイントア
ドレスからの処理再開を可能にした。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to data processing by microprogram control, and is particularly suitable for resuming processing from the middle of instruction execution after completion of page fault interrupt processing. The present invention relates to a data processing device. 2. Description of the Related Art In a data processing apparatus controlled by a microprogram, one of page fault resumption processing methods is disclosed in
No. 4540. When a page fault occurs during the execution of an instruction, an interrupt information flag indicating that a page fault interrupt has occurred during the execution of the instruction is set, and a program status word indicating the execution state of the program is set. Then, the contents of the internal register during the execution of the instruction are saved in the memory area, and after the page fault processing is completed, the instruction is restarted according to the program status word in the memory area. The save / restore information for these memory areas is information at the time when the page fault interrupt occurs. However, if the microprogram address for detecting the page fault interrupt is different from the microprogram address for restarting the process, the process cannot be restarted based on the information at the time when the page fault interrupt occurred. Was. [Problems to be Solved by the Invention] In the above-mentioned conventional technology, it may be extremely difficult to interrupt and restart processing during instruction execution based on information at the time of occurrence of a page fault interrupt. Comes up. For example, when reading memory data with a high-performance computer, a microprogram for starting memory and a microprogram for waiting for completion of memory access are different. The page fault interrupt is detected when waiting for the end of memory access. In such a high-performance computer, the instruction restart after the end of the page fault processing is
You have to go back to the microprogram that initiates the memory. Furthermore, in a computer that performs pipeline control, the procedure of information transfer between units is involved, and there is a case where restarting does not work even when returning to the place where memory was activated. In such a case, the microprogram writer can set the restart address appropriately to restart. This is in the software field,
This is a method called a so-called loose check point, and is a method of returning to a check point microprogram address when a page fault occurs. SUMMARY OF THE INVENTION It is an object of the present invention to provide a data processing apparatus capable of restarting an instruction after a page fault process is completed from an address based on a checkpoint microprogram address (hereinafter referred to as a checkpoint address). [Means for Solving the Problems] The present invention relates to a data processing apparatus which performs data processing by using a microprogram in which a checkpoint is set at a step before an operation for generating a page fault. When the page fault occurs during the execution of the microprogram, a main storage device for storing the contents of registers necessary for restarting the execution of the microprogram from the checkpoint, and a data processing unit independent of the main storage device An address for storing an address of the microprogram indicated by the checkpoint each time the checkpoint is detected by the decoding unit; and a decoding unit for detecting the checkpoint as the microprogram is executed. Registers and page faults And a page fault processing unit for returning the contents of the register stored in the main storage device to the register after completion of the page fault processing, and an address register when the page fault occurs. And a data processing unit comprising a microprogram execution resuming unit for resuming the execution of the microprogram from the address indicated by the stored checkpoint. [Operation] According to the designation of the microprogram being executed, the address of the microprogram currently being executed or the address following this address is stored in the first register. When the processing is restarted, the contents of the first register saved in the memory are used as a microprogram address for restarting the instruction. Thus, instruction restart can be started from the checkpoint microprogram address. Embodiment An embodiment of the present invention will be described below with reference to the drawings. FIG. 2 is a block diagram showing the overall configuration of an embodiment of a data processing device based on microprograms to which the present invention is applied. The data processing device includes a main storage device (abbreviated as M
M) 200, a device (abbreviated MCU) 205 for controlling the MM 200, a unit (abbreviated IU) 210 for decoding instructions, and a unit (abbreviated FU) 215 for executing instructions. In FIG. 2, an MM 200 is a device for storing an instruction and data handled by the instruction. The MCU 205 reads and writes data from and to the MM 200, detects a page fault interrupt generated at this time, and sends a signal for generating a page fault to the EU 215 via the signal line 10. The IU 210 fetches an instruction from the MM 200 via the MCU 205, decodes the instruction, and sends information for executing the instruction to the EU 215. EU215 takes in information from IU210,
The addresses of the data in the memory and the activation to the memory are sent to the MCU 205 according to 12 and 14, and the memory access end signal is fetched from the MCU 205 via the signal line 16, and then the data in the memory is transferred via the signal line 18. And start executing the instruction.
If a page fault interrupt generation signal is fetched from the MCU 205 via the signal line 10 at the same time as the memory access end signal, the instruction is interrupted during execution and page fault processing is performed. The present invention relates to a microprogram execution control method, which is characterized by EU215 shown in FIG. FIG. 3 will now be described in detail. FIG. 3 is a detailed block diagram of EU215. EU215
Microprogram control unit (abbreviation: ECONT) 300, memory data save register (abbreviation: OBR) 305, program status word (abbreviation: PSW) 3 that indicates the instruction execution status of the program
10, micro-program execution such as word register, internal register (abbreviation INTR) 315, computing unit (abbreviation ALU) 320, register (abbreviation MAR) 325 for storing the address of data existing in memory, data written to memory (Abbreviated as MWR) 330. In FIG. 3, the MAR 325 sends the address of data in the memory to the MCU 205 via the signal line 12, and the ECONT 300 sends an activation signal to the memory via the signal line 14. The ECONT 300 receives the memory access end signal from the MCU 205 via the signal line 16 and executes the instruction using the data in the memory of the OBR 305 set via the signal line 18. When the page fault interrupt generation signal is received via the signal line 10 from the MCU 205, the execution of the instruction is interrupted and the PSW3
Information such as 01, INTR315 is saved to the memory area via the MWR 330 and the signal line 20, and page fault processing is performed. ECONT, a microprogram control unit in EU215
Since 300 is particularly relevant to the present invention, it will be described in more detail with reference to FIG. The ECONT 300 includes a circuit for generating a microprogram address (abbreviated MAGEN) 100, a circuit for incrementing the microprogram address (abbreviated INC) 110, a register indicating the microprogram address (abbreviated CSAR) 115,
RAM (abbreviation WCS) 120, WCS1 for storing microprogram
A register (abbreviated WCSOUT) 125 for temporarily storing microinstructions fetched from 20, a register (abbreviated MIR) 130 for distributing microinstructions to each control unit, and a register (abbreviated S-CSAR) that always saves the CSAR value ) 135, a register that stores the contents of S-CSAR135 as specified by the microprogram (MACS
AR) 140, a selector (abbreviation SEL) 145 for selecting input data of MACSAR 140, a circuit (abbreviation PE) 155 that takes in the page fault interrupt signal 10 from the MCU 205 by specifying a microprogram, and a microprogram from the MIR130. It comprises a decoder (abbreviated MPDEC) 160 for decoding. In FIG. 1, the microprogram address generated by the MAGEN 100 is read out from the WCS 120 via the CSAR 115 and set in the WCSOUT 125. Also, CSAP1
The contents of 15 are set to S-CSAR 135 at the same timing as WCSOUT125. Here, the operation of each control unit when the microinstruction is in the control of reading the memory data will be described mainly with reference to FIG. FIG. 4 shows a flowchart of the microprogram. Prior to the memory start processing 500, there is a checkpoint 400 set by the microprogram writer at an appropriate address that does not affect the resumption of instruction execution after a page fault has occurred. At 600, the presence or absence of a page fault is detected. In the process of the check point 400, the microprogram address to be restarted is written in the MACSAR 140 of FIG. 1 according to the designation of the microprogram. This is MPDEC160
Is executed by decoding the designation of the check point by the microprogram and outputting the write enable signal ENABLE150. The microprogram address is stored in the MACSAR 140 from the S-CSAR 135 via the signal line 30, the selector SEL145, and the signal line 32. FIG. 5 shows an example of the format of a microprogram. The OP is a microprogram operation, which specifies a microoperation for calculation or transfer. RA and RB are fields specifying registers to be used for calculation and transfer, DEST and CCONT are fields specifying where to store the calculation results (for example, memory address register; MAR, memory write register; MWR, etc.) STCONT is a field that specifies how to generate the status of the operation result. FFCONT is a signal for designating the setting and reset of various flip-flops, etc., MEX is a field for designating a memory start and end wait, BCONT is a branch method designation, and BA is a branch address designation field. Among them, the present invention involves FFCONT, MEX, and BCONT. In FFCONT, the above-mentioned check point is specified. When this is specified, ENABLE150 is output from MPDEC160 and the currently executing microprogram address is
Evacuate to AR140. Further, the MEX field is decoded by the MPDEC 160, and the memory start signal 14 and the memory access end wait signal 34 are output. FFCONT is also used as a selection signal 42 for setting the restart address from the EU bus via the signal line 40 to MACSAR. Now, in the flow of the microprogram in FIG.
In the process of the memory start 500, a memory start signal is sent to the MCU 205 via the signal line 14, and when the memory access ends, a memory access end signal is held in the PF 155 via the signal line 16. Hereinafter, interruption and resumption of an instruction when a page fault interrupt occurs during instruction execution will be described. i) Page fault interrupt detection. When the MCU 205 detects the page fault interrupt, the page fault interrupt generation signal is also received via the signal lines 16 and 10 together with the memory access end signal, and is held in the PE 155. In the flow of the microprogram shown in FIG. 4, when the microprogram outputs a memory access completion wait 600, it is decoded by the MPDEC 160 and the fact that the memory access is waiting is sent to the PE 155 via the signal line 34. FIG. 6 is a flowchart for detecting a page fault interrupt by specifying a microprogram. The case where the memory access end signal and the page fault interrupt generation signal have already been fetched will be described. At this time, when the microprogram outputs a memory access completion wait via the signal line 34, the PF 155 sends a signal via the signal line 36 specifying that the MAGEN 100 generates the page fault processing microprogram head address. I do. In the micro program flow of FIG. 4, when detecting that a page fault interrupt has occurred in the micro program waiting for memory access 600, MAGEN 100
A page fault processing microprogram start address is generated, and the page fault processing microprogram is executed. ii) Saving the internal information to the memory area. FIG. 7 is a detailed view of the PSW 310 in FIG. If a page fault interrupt occurs, the instruction being executed is interrupted and PS
The interruption display bit of the first word of W310 is set to 1, and the evacuation information is stacked on the stack. Fig. 4 70
0 to 740. First, the contents of PSW310 indicating the execution status of the program
Save to the memory area via U320, MWR330 and signal line 20. Next, the contents of the MACSAR 140 containing the checkpoint microprogram address are transferred to the signal line 28, ALU320, MWR
Save to the memory area via 330 and the signal line 20. Next, the contents of the internal register INTR315 are stored in ALU320, MWR3
It is saved in the memory area via 30 and the signal line 20. The save state in the memory area is shown in detail in FIG. iii) Recovery of internal information from the memory area. First, the contents of the PSW310 saved in the memory area are
And checks the display bit and stores it in the PSW. In this case, since the display bit is “1”, MACSAR14
It can be seen that 0 and INTR315 must be recovered. MACSAR140 saves the contents of MACSAR140 saved in the memory area.
When restoring to
The signal is decoded by the MPDEC 160 and transmitted to the SEL 145 via the signal line 42. SEL145 which takes in the recovery designation signal from the signal line 42
Selects the signal line 40 as an input of the MACSAR 140, and stores it in the MACSAR 140 via the signal line 32. The contents of the INTR 315 saved in the memory area are similarly restored to the INTR 315. iv) Instruction resumption. A microprogram that specifies that the contents of MACSAR140 should be selected as the microprogram start address
Decode with DEC160. By sending the decoding result to MAGEN 100 via signal line 44, MAGEN 100 selects signal line 46 indicating the contents of MACSAR 140 as the microprogram head address and sends it to CSAP 115. This makes it possible to restart the instruction from the checkpoint microprogram address stored in the MACSAR 140 before the page fault interrupt occurs. In the above embodiment, the checkpoint and the memory activation can be specified independently. However, if it is possible to create a microprogram so that the microprogram specifying the memory activation can always be restarted, The check point may be at the time of memory activation. In this case, when the memory start is decoded by MPDEC160, the currently executing microprogram address is MACS
What is necessary is just to store it in AR140. Further, in the above embodiment, when the checkpoint address is recovered from the memory, the recovery is performed via the MACSAR 140, but a register is provided separately from the MACSAR 140, and the CSAP 115 may be recovered via this register. The instruction can be restarted and executed from the check point address. Further, in the above embodiment, the address specifying the check point is saved as the check point address. However, it may be easier to save the address of the microprogram to be executed next. At this time, the microprogram designating the checkpoint is executed immediately before the microprogram to be restarted, and the checkpoint address is the next address of the microprogram address being executed. According to the present invention, a means for saving a checkpoint microprogram address before a page fault interrupt occurs, and an instruction from the checkpoint microprogram address after the page fault processing is completed. By providing a means for resuming, even if a page fault occurs, processing can be resumed from an arbitrary check point address specified in advance.

【図面の簡単な説明】 第1図は本発明に特に係わる部分の詳細ブロツク図、第
2図は本発明に適用するデータ処理装置全体を示すブロ
ツク図、第3図は本発明に係わる詳細ブロツク図、第4
図はマイクロプログラムの流れ図、第5図はマイクロプ
ログラムのフオーマツトの一例を示す図、第6図は、第
1図内に存在する回路の動作を示す流れ図、第7図は第
3図内に存在するレジスタの詳細図、第8図はメモリ領
域内の詳細図である。 145……セレクタ、310,315,140……レジスタ、100,150,
155……制御回路、38,40,44,16,10,34,14……信号線。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a detailed block diagram of a portion particularly related to the present invention, FIG. 2 is a block diagram showing the entire data processing apparatus applied to the present invention, and FIG. 3 is a detailed block diagram according to the present invention. Figure, 4th
FIG. 5 is a flowchart of the microprogram, FIG. 5 is a diagram showing an example of the format of the microprogram, FIG. 6 is a flowchart showing the operation of the circuit existing in FIG. 1, and FIG. FIG. 8 is a detailed view of a register in the memory area. 145 …… Selector, 310,315,140 …… Register, 100,150,
155: Control circuit, 38, 40, 44, 16, 10, 34, 14 ... Signal lines.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂東 忠秋 日立市久慈町4026番地 株式会社日立製 作所日立研究所内 (72)発明者 平山 洋一 日立市久慈町4026番地 株式会社日立製 作所日立研究所内 (72)発明者 森岡 隆行 日立市大みか町5丁目2番1号 株式会 社日立製作所大みか工場内 (72)発明者 高谷 壮一 日立市大みか町5丁目2番1号 株式会 社日立製作所大みか工場内 (72)発明者 川本 幸雄 日立市久慈町4026番地 株式会社日立製 作所日立研究所内 (72)発明者 井手 寿之 日立市大みか町5丁目2番1号 株式会 社日立製作所大みか工場内 (56)参考文献 特開 昭53−54540(JP,A) 特開 昭55−28190(JP,A)   ────────────────────────────────────────────────── ─── Continuation of front page    (72) Inventor Tadaaki Bando               4026 Kuji-cho, Hitachi City Hitachi, Ltd.               Inside the Hitachi Research Laboratory (72) Inventor Yoichi Hirayama               4026 Kuji-cho, Hitachi City Hitachi, Ltd.               Inside the Hitachi Research Laboratory (72) Inventor Takayuki Morioka               5-2-1 Omikacho, Hitachi City Stock Association               Omika Plant of Hitachi, Ltd. (72) Inventor Soichi Takatani               5-2-1 Omikacho, Hitachi City Stock Association               Omika Plant of Hitachi, Ltd. (72) Inventor Yukio Kawamoto               4026 Kuji-cho, Hitachi City Hitachi, Ltd.               Inside the Hitachi Research Laboratory (72) Inventor Toshiyuki Ide               5-2-1 Omikacho, Hitachi City Stock Association               Omika Plant of Hitachi, Ltd.                (56) References JP-A-53-54540 (JP, A)                 JP-A-55-28190 (JP, A)

Claims (1)

(57)【特許請求の範囲】 1.ページフォールトを発生させるオペレシーションよ
りも前のステップにチェックポイントを設定したマイク
ロプログラムを有してデータの処理を行うデータ処理装
置において、 上記マイクロプログラムの実行中に上記ページフォール
トが発生すると上記チェックポイントから上記マイクロ
プログラムの実行を再開するのに必要なレジスタの内容
を格納する主記憶装置と、 上記主記憶装置とは独立したデータ処理部であって、上
記マイクロプログラムの実行に伴って上記チェックポイ
ントの検出を行なうデコード部と、上記デコード部によ
って上記チェックポイントが検出される毎に上記チェッ
クポイントが示す上記マイクロプログラムのアドレスを
格納するアドレスレジスタと、ページフォールトの発生
によってページフォールトの処理を行ない、ページフォ
ールトの処理終了後、上記主記憶装置に格納したレジス
タの内容を上記レジスタへ復帰するページフォールト処
理部と、上記ページフォールトが発生したときにアドレ
スレジスタに格納されていた上記チェックポイントが示
すアドレスよりマイクロプログラムの実行を再開するマ
イクロプログラム実行再開部とからなるデータ処理部と を具備したことを特徴とするデータ処理装置。 2.特許請求の範囲第1項において、 上記ページフォールトを発生させるオペレーションは、
メモリのアクセスに関するオペレーションであることを
特徴とするデータ処理装置。 3.特許請求の範囲第1項又は第2項において、 上記マイクロプログラムで上記メモリアクセスに関する
オペレーションを指定したことを検出したときに上記チ
ェックポイントが示すアドレスを上記アドレスレジスタ
に格納することを特徴とするデータ処理装置。 4.特許請求の範囲第1項において、 上記アドレスレジスタの内容を上記主記憶装置に格納す
ることを特徴とするデータ処理装置。 5.特許請求の範囲第1項において、 上記マイクロプログラムには、上記チェックポイントが
示すアドレスを格納するか否かを指定するフィールドを
有し、上記マイクロプログラムの実行中に上記フィール
ドの内容が上記チェックポイントが示すアドレスを格納
するものであれば、上記チェックポイントが示すアドレ
スを上記アドレスレジスタに格納することを特徴とする
データ処理装置。 6.特許請求の範囲第1項において、 上記チェックポイントから上記マイクロプログラムの実
行を再開するのに必要なレジスタの内容には、上記ペー
ジフォールトが発生したか否かを示すフラグを有し、上
記マイクロプログラムの実行中に上記ページフォールト
が発生したならば上記フラグをセットし、上記ページフ
ォールトの処理終了後、上記フラグがセットされている
ならば、上記チェックポイントが示すアドレスから上記
マイクロプログラムの実行を再開することを特徴とする
データ処理装置。
(57) [Claims] In a data processing apparatus that processes data with a microprogram having a checkpoint set at a step before an operation that causes a page fault, the above-described check is performed when the page fault occurs during execution of the microprogram. A main storage device for storing the contents of the registers necessary for resuming the execution of the microprogram from a point; and a data processing unit independent of the main storage device, wherein the check is performed along with the execution of the microprogram. A decoding unit for detecting a point; an address register for storing an address of the microprogram indicated by the checkpoint each time the checkpoint is detected by the decoding unit; and a page fault process for generating a page fault. No page fault processing unit that restores the contents of the register stored in the main storage device to the register after the end of the page fault processing, and the check point stored in the address register when the page fault occurs. A data processing unit comprising: a microprogram execution resuming unit for resuming the execution of the microprogram from the indicated address. 2. In claim 1, the operation of causing a page fault is:
A data processing device, which is an operation related to memory access. 3. 3. The data according to claim 1, wherein the address indicated by the checkpoint is stored in the address register when it is detected that the operation related to the memory access is specified by the microprogram. Processing equipment. 4. 2. The data processing device according to claim 1, wherein the contents of the address register are stored in the main storage device. 5. 2. The method according to claim 1, wherein the microprogram has a field for specifying whether or not to store an address indicated by the checkpoint, and the content of the field is stored in the checkpoint during execution of the microprogram. A data processing device that stores the address indicated by the checkpoint in the address register if the address indicated by the checkpoint is stored. 6. 2. The method according to claim 1, wherein the contents of a register necessary for resuming the execution of the microprogram from the checkpoint include a flag indicating whether or not the page fault has occurred. If the page fault occurs during the execution of the above, the flag is set, and after the completion of the page fault processing, if the flag is set, the execution of the microprogram is resumed from the address indicated by the checkpoint. A data processing device characterized in that:
JP61251760A 1986-10-24 1986-10-24 Data processing device Expired - Lifetime JP2765831B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP61251760A JP2765831B2 (en) 1986-10-24 1986-10-24 Data processing device
DE3735828A DE3735828C2 (en) 1986-10-24 1987-10-22 Method for resuming instruction execution after an interruption in a microprocessor-controlled data processing device
US07/111,618 US5003458A (en) 1986-10-24 1987-10-23 Suspended instruction restart processing system based on a checkpoint microprogram address
US07/674,398 US5146569A (en) 1986-10-24 1991-03-25 System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61251760A JP2765831B2 (en) 1986-10-24 1986-10-24 Data processing device

Publications (2)

Publication Number Publication Date
JPS63106850A JPS63106850A (en) 1988-05-11
JP2765831B2 true JP2765831B2 (en) 1998-06-18

Family

ID=17227513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61251760A Expired - Lifetime JP2765831B2 (en) 1986-10-24 1986-10-24 Data processing device

Country Status (1)

Country Link
JP (1) JP2765831B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63251681A (en) * 1987-04-03 1988-10-19 株式会社東郷製作所 Pipe holder

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5384540A (en) * 1976-12-29 1978-07-26 Fujitsu Ltd Data processing unit
JPS5528190A (en) * 1978-08-22 1980-02-28 Nippon Telegr & Teleph Corp <Ntt> Microprogram control system

Also Published As

Publication number Publication date
JPS63106850A (en) 1988-05-11

Similar Documents

Publication Publication Date Title
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
US4841439A (en) Method for restarting execution interrupted due to page fault in a data processing system
JPH1021074A (en) Interruption control system, processor, and computer system
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JP2522158B2 (en) Program debugging method for multiprocessor system
JPS6250934A (en) Interrupting control system of processor
JP2765831B2 (en) Data processing device
EP0212132A1 (en) Method and digital computer for recovering from errors
US5673391A (en) Hardware retry trap for millicoded processor
JPH056281A (en) Information processor
US6550005B1 (en) Mechanism for recovery from termination of a program instruction due to an exception in a pipeland processing system
JP2671160B2 (en) Exception handling method
JPH0133856B2 (en)
JP2562838B2 (en) Processor and store buffer control method
JPH05165663A (en) Data processor
JP2564290B2 (en) Instruction restart processing method and apparatus
JP3029355B2 (en) Single-step instruction execution method
JPH0554141B2 (en)
JPH0531777B2 (en)
JPH04106652A (en) Exceptional treatment system
JPH06295252A (en) Computer
JPS58166454A (en) Data processor
JP2002189603A (en) Computer and controlling method thereof
JPH0264815A (en) Disk cache control system
JPS6149695B2 (en)