JPH06175916A - アドレス生成処理方法 - Google Patents

アドレス生成処理方法

Info

Publication number
JPH06175916A
JPH06175916A JP32833292A JP32833292A JPH06175916A JP H06175916 A JPH06175916 A JP H06175916A JP 32833292 A JP32833292 A JP 32833292A JP 32833292 A JP32833292 A JP 32833292A JP H06175916 A JPH06175916 A JP H06175916A
Authority
JP
Japan
Prior art keywords
address
area
task
absolute
offset
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
JP32833292A
Other languages
English (en)
Other versions
JP3120606B2 (ja
Inventor
Kazuya Nomura
和哉 野村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32833292A priority Critical patent/JP3120606B2/ja
Publication of JPH06175916A publication Critical patent/JPH06175916A/ja
Application granted granted Critical
Publication of JP3120606B2 publication Critical patent/JP3120606B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 計算機における主記憶の保全に関し、タスク
のアドレス障害によるシステム破壊が生じないようにし
た、アドレス生成処理方法を目的とする。 【構成】 所与のベースアドレスにオフセットアドレス
を加算して絶対アドレスを生成してタスク領域にアクセ
スする場合において、各該タスクは、該タスク領域の先
頭絶対アドレスを越えず、割当領域内であり、且つ該割
当領域の末尾の絶対アドレスから、該オフセットアドレ
スの最大値だけ若い絶対アドレスを越えない値を、該ベ
ースアドレスとして指定され(1)、該ベースアドレスと
該タスク領域の該先頭絶対アドレスとの差を先頭オフセ
ットアドレスとして指定され(2)、該タスクが該主記憶
領域へアクセスする場合に、該先頭オフセットアドレス
に所要のタスク領域内相対オフセットアドレスを加算し
た値を該ベースアドレスに加算して絶対アドレスを生成
する(3)ように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機において実行さ
れるタスクについて、主記憶領域の記憶保全のために、
アクセスを管理するためのアドレス生成処理方法に関す
る。
【0002】
【従来の技術】計算機において、例えば処理データ幅が
16ビット単位であり、主記憶の領域が1メガバイト(1メ
ガバイト=1024キロバイト、1キロバイト=1024バイ
ト) まである場合等に、主記憶にアクセスする場合に主
記憶領域のバイト位置を指定するアドレス (以下に絶対
アドレスという)には当然20ビットを要するので、その
ような絶対アドレスを生成するために次のような構成を
用いる場合がある。
【0003】即ち図2に示すように、16ビットのセグメ
ントアドレスとオフセットアドレスを、それぞれセグメ
ントレジスタ及びオフセットレジスタに保持し、アドレ
ス生成機構は、セグメントレジスタの内容を16倍(即ち
4ビット左(上位方向)にシフト)して20ビットのベー
スアドレスとし、このベースアドレスにオフセットアド
レスを加算して20ビットの絶対アドレスを生成する。
【0004】又計算機で1個以上のタスクを実行する場
合に、主記憶領域は例えば図3に示すように、システム
領域及びエラー処理ルーチン領域がシステムによって確
保され、その間の記憶領域が各タスクにタスク領域を割
り当てるための割当領域とされる。
【0005】ここで、公知のようにシステム領域は、オ
ペレーティングシステムの各種管理プログラム、システ
ム管理情報、割込ベクタテーブル等を保持し、エラー処
理ルーチン領域は、オペレーティングシステムでエラー
を検出した場合等に、エラーを処置するために必要なプ
ログラムを、その計算機のシステム構成に応じて保持す
るものであり、図3の例は128 キロバイトの主記憶を実
装するシステムで、システム領域を絶対アドレス00000
から039FF(16進表示、以下も同様)、エラー処理ルーチ
ン領域を絶対アドレス1F000 から1FFFF までにとり、中
間の絶対アドレス03A00から1EFFFまでを割当領域とす
る。
【0006】タスクを発生する場合には、オペレーティ
ングシステムの管理プログラムが、そのタスクに必要な
大きさの領域を割当領域から切り出し、当タスクのタス
ク領域として割り当てる。
【0007】前記のようなアドレス構成の計算機の場合
に、例えば各タスク領域は16ビットのオフセットアドレ
スでアドレシング可能な64キロバイト以内に制限され、
割当領域を16バイト境界でタスク領域に割り当てて、タ
スク領域の先頭絶対アドレスをベースアドレスとするよ
うに、先頭絶対アドレスの下位4ビットを除いた16ビッ
トがセグメントアドレスとしてセグメントレジスタに設
定される。
【0008】即ち、図3の例のようにタスクA〜Cのタ
スク領域を取った場合に、図の左側のセグメントアドレ
スの欄に示すようにセグメントアドレスが指定される。
オフセットアドレスは0から始まる。
【0009】タスク領域にはタスクを実行するプログラ
ムをロードする領域とデータ領域が設けられ、タスクの
処理実行によってアクセスされる。タスクが処理を実行
して発生する主記憶アドレスは、16ビットのタスク領域
内相対アドレスであり、そのアドレスによって主記憶に
アクセスする場合には、相対アドレスを前記オフセット
アドレスとし、セグメントアドレスをシフトしたベース
アドレスに前記のように加算して絶対アドレスを生成す
る。
【0010】
【発明が解決しようとする課題】前記のように最大のタ
スク領域を64キロバイトに制限するシステムの場合に、
各タスクが必要とするタスク領域は一般に64キロバイト
より小さい。
【0011】従ってシステムは、必要な大きさを満足す
る最小の大きさの領域を割当領域から切り出して、各タ
スク領域とし、要求に応じて、できるだけ多数のタスク
領域を割り当てることができるように管理する。
【0012】そのように64キロバイトより小さいタスク
領域を割り当てた場合にも、ベースアドレスを基準とし
て64キロバイトの範囲の絶対アドレスの生成は可能であ
るので、もしタスクが何らかの原因で、誤ってタスク領
域を越えるオフセットアドレスを生成すると、割り当て
られたタスク領域を越えてアクセスが行われる。
【0013】そのアクセスで書込みが行われると、自身
のタスク領域外を変更するので、何らかの異常状態の要
因となる可能性がある。特に、そのタスク領域が図3の
タスクA等のようにエラー処理ルーチン領域に近接して
いる場合には、エラー処理ルーチンを書き換えてしま
い、システムの正常なエラー処理が保証できなくなるの
で、その影響がすべてのタスクに及ぶ可能性がある。
【0014】本発明は、タスクのアドレス障害によるシ
ステム破壊が生じないようにした、アドレス生成処理方
法を目的とする。
【0015】
【課題を解決するための手段】図1は、本発明の構成を
示す処理の流れ図である。図はアドレス生成処理方法の
処理の流れであって、一定ビット長の絶対アドレスでア
クセスされる主記憶領域の中に、連続した割当領域を設
け、該割当領域内の連続領域をタスク領域として各タス
クに割り当て、該タスクは当該タスク領域で実行され、
該タスク領域へアクセスする場合に、所与のベースアド
レスにオフセットアドレスを加算して該絶対アドレスを
生成し、該ベースアドレスは該絶対アドレスと同じビッ
ト長で表され、該オフセットアドレスは該ベースアドレ
スより短い一定ビット長で表される計算機の、該タスク
領域のアクセスに関する処理である。
【0016】各該タスクは、該タスク領域割当の場合
に、該タスク領域の先頭絶対アドレスを越えず、該割当
領域内であり、且つ該割当領域の末尾の絶対アドレスか
ら、該オフセットアドレスを表すビット長で表される最
大値だけ若い絶対アドレスを越えない値を、該ベースア
ドレスとして指定される(処理ステップ1)。
【0017】又、該ベースアドレスと該タスク領域の該
先頭絶対アドレスとの差を、該タスク領域の先頭オフセ
ットアドレスとして指定される(処理ステップ2)。該
タスクが該主記憶領域へアクセスするための絶対アドレ
スを生成する場合に、該先頭オフセットアドレスに所要
のタスク領域内相対オフセットアドレスを加算した値を
該オフセットアドレスとして、該ベースアドレスに加算
する(処理ステップ3)。
【0018】
【作用】本発明のアドレス生成処理方法により、例えば
オフセットアドレスを16ビット、即ち16進表示で0000か
らFFFFとした場合に、各タスク領域はベースアドレス+
オフセットアドレス0000から始まるのではない。
【0019】本発明では、一般に0000でない先頭オフセ
ットアドレスを設けて、タスク領域はベースアドレス+
先頭オフセットアドレスから始まるようにする。このよ
うにして、ベースアドレス+0000〜FFFFが割当領域を越
えてシステムの領域(前記システム領域及びエラー処理
ルーチン領域等)を指示する値にならないように、ベー
スアドレスの値を定める。
【0020】従って、タスクに誤ったオフセットアドレ
スを発生する何らかのエラーが生じたとしても、その結
果システムの領域を不当に書き換えるような事故の発生
は防ぐことができる。
【0021】
【実施例】例えば計算機は前記のようにセグメントアド
レスを16倍したベースアドレスに、16ビットのオフセッ
トアドレスを加算して絶対アドレスを生成し、又主記憶
は例えば図3に示したようにシステム領域とエラー処理
ルーチン領域に挟まれた領域をタスク領域のための割当
領域とするシステムであるとして、実施例を説明する。
【0022】この場合に、本発明によりタスク領域のた
めのベースアドレスは割当領域内にあり、且つベースア
ドレスにオフセットアドレスの最大値FFFF(10進で6553
5)を加えて得る絶対アドレスが割当領域を越えないよう
に制御するから、割当領域は当然少なくとも64キロバイ
ト(65536バイト)より小さくしてはならないことは明ら
かである。
【0023】従って、システムに必要なシステム領域と
エラー処理ルーチン領域を取った後に、少なくとも64キ
ロバイトの割当領域が残るように、十分な大きさの主記
憶を実装したシステム構成として、割当領域を定めてお
く。
【0024】図4は、以上の前提のもとに、本発明の処
理の流れの一詳細例を示す図である。システムの管理プ
ログラムは、管理のために割当領域先頭アドレスHEAD、
割当領域末尾アドレスTAIL、及び割当領域末尾アドレス
TAILからオフセットアドレスの最大値FFFFを減じた値LI
MIT を保持する。前記の割当領域の大きさの条件からHE
AD≦LIMIT であることは明らかである。
【0025】又、主記憶領域の要求及び割当はすべて16
バイトを最小単位として、16バイト境界で行われるもの
とする。図4は、タスクを起動するためにシステムの管
理プログラムがタスク領域を割り当て、タスクにベース
アドレスとなるセグメントアドレスと、タスク領域の先
頭オフセットアドレスとを渡すための処理であって、先
ず処理ステップ10で、割当領域内の空き領域先頭アドレ
スとLIMITの大きさを比較する。なお、空き領域先頭ア
ドレスは初め、割当領域先頭アドレスHEADの値に初期設
定されているものとする。
【0026】比較の結果、空き領域先頭アドレスがLIMI
T 以下であれば、処理ステップ11で空き領域先頭アドレ
スを、タスク領域のベースアドレスとし、処理ステップ
12で先頭オフセットアドレスを0にする。
【0027】処理ステップ13で空き領域先頭アドレス
に、要求のタスク領域の大きさを加算して、空き領域先
頭アドレスを更新し、処理ステップ14で新しい空き領域
先頭アドレスを割当領域末尾アドレスTAILと比較する。
【0028】比較の結果、新空き領域先頭アドレスをTA
ILを越えていれば、タスク領域の割当ができないので、
割当不能の処置を行う適当な処理に入る。新空き領域先
頭アドレスをTAILを越えていなければ、タスク領域割当
成功であるので、処理ステップ15で前記で決定したタス
ク領域のベースアドレスの上位16ビットをセグメントア
ドレスとし、前記で決定した先頭オフセットアドレスと
共にタスクに渡して処理を終わる。
【0029】処理ステップ10で、空き領域先頭アドレス
がLIMIT より大きいければ、処理ステップ16でLIMIT を
タスク領域のベースアドレスとし、処理ステップ17で空
き領域先頭アドレスからLIMIT を減じた差を先頭オフセ
ットアドレスとし、前記と同様に処理ステップ13以下の
処理を行う。
【0030】タスクは、以上のようにして渡されるセグ
メントアドレスを使用し、オフセットアドレスを加算し
て絶対アドレスを生成するが、その場合に常にタスクの
プログラムが発行するオフセットアドレスに先頭オフセ
ットアドレスを加えた結果を、絶対アドレス生成のため
のオフセットアドレスとする。
【0031】以上の処理の結果、例えば図3に示したタ
スク領域の割当におけるセグメントアドレス及び先頭オ
フセットアドレスが図の右側の各欄に示すように設定さ
れる。即ち、この例の場合に、割当領域は前記のように
絶対アドレス03A00〜1EFFFであるので、LIMIT=1EFFF-FF
FF=0F000であり、タスクA及びBのタスク領域先頭は何
れもLIMIT より大きいので、LIMIT をベースアドレスと
され、且つ図示のように、0でない先頭オフセットアド
レスが指定される。
【0032】従ってタスクA及びタスクBが何らかの暴
走をして、16ビットのオフセットアドレスがどのような
値になっても、エラー処理ルーチン領域にアクセスする
ことはできない。
【0033】
【発明の効果】以上の説明から明らかなように本発明に
よれば、計算機において、タスクのアドレス障害による
メモリ破壊によっても、システム破壊を生じないという
著しい工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成を示す処理の流れ図
【図2】 絶対アドレスの生成を説明する図
【図3】 主記憶領域の割当を説明する図
【図4】 本発明実施例の処理の流れ図
【符号の説明】
1〜3、10〜17 処理ステップ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 一定ビット長の絶対アドレスでアクセス
    される主記憶領域の中に、連続した割当領域を設け、該
    割当領域内の連続領域をタスク領域として各タスクに割
    り当て、該タスクは当該タスク領域で実行され、該タス
    ク領域へアクセスする場合に、所与のベースアドレスに
    オフセットアドレスを加算して該絶対アドレスを生成
    し、該ベースアドレスは該絶対アドレスと同じビット長
    で表され、該オフセットアドレスは該ベースアドレスよ
    り短い一定ビット長で表される計算機の、該タスク領域
    のアクセスにおいて、 各該タスクは、該タスク領域割当の場合に、該タスク領
    域の先頭絶対アドレスを越えず、該割当領域内であり、
    且つ該割当領域の末尾の絶対アドレスから、該オフセッ
    トアドレスを表すビット長で表される最大値だけ若い絶
    対アドレスを越えない値を、該ベースアドレスとして指
    定され(1)、 該ベースアドレスと該タスク領域の該先頭絶対アドレス
    との差を、該タスク領域の先頭オフセットアドレスとし
    て指定され(2)、 該主記憶領域へアクセスするための絶対アドレスを生成
    する場合に、該先頭オフセットアドレスに所要のタスク
    領域内相対オフセットアドレスを加算した値を該オフセ
    ットアドレスとして、該ベースアドレスに加算する(3)
    ように構成されていることを特徴とするアドレス生成処
    理方法。
JP32833292A 1992-12-09 1992-12-09 アドレス生成処理方法 Expired - Fee Related JP3120606B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32833292A JP3120606B2 (ja) 1992-12-09 1992-12-09 アドレス生成処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32833292A JP3120606B2 (ja) 1992-12-09 1992-12-09 アドレス生成処理方法

Publications (2)

Publication Number Publication Date
JPH06175916A true JPH06175916A (ja) 1994-06-24
JP3120606B2 JP3120606B2 (ja) 2000-12-25

Family

ID=18209053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32833292A Expired - Fee Related JP3120606B2 (ja) 1992-12-09 1992-12-09 アドレス生成処理方法

Country Status (1)

Country Link
JP (1) JP3120606B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524140A (ja) * 2006-01-17 2009-06-25 エヌエックスピー ビー ヴィ 領域保護装置、命令セット、及びメモリ領域を保護する方法
US10185651B2 (en) 2014-04-10 2019-01-22 Hewlett Packard Enterprise Development Lp Relocating a virtual address in a persistent memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524140A (ja) * 2006-01-17 2009-06-25 エヌエックスピー ビー ヴィ 領域保護装置、命令セット、及びメモリ領域を保護する方法
US10185651B2 (en) 2014-04-10 2019-01-22 Hewlett Packard Enterprise Development Lp Relocating a virtual address in a persistent memory

Also Published As

Publication number Publication date
JP3120606B2 (ja) 2000-12-25

Similar Documents

Publication Publication Date Title
EP0213843B1 (en) Digital processor control
US5852738A (en) Method and apparatus for dynamically controlling address space allocation
CA1266532A (en) Method to share copy on write segment for mapped files
US5144551A (en) Computer memory management method utilizing segmentation and protection techniques
US6061773A (en) Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5481688A (en) Information processing system having an address translation table loaded with main/expanded memory presence bits
US5873127A (en) Universal PTE backlinks for page table accesses
US5835961A (en) System for non-current page table structure access
JPH0552540B2 (ja)
JPS6136667B2 (ja)
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
US4961135A (en) Translation lookaside buffer control system
US6889296B2 (en) Memory management method for preventing an operating system from writing into user memory space
JP3120606B2 (ja) アドレス生成処理方法
KR930009092B1 (ko) 가상 메모리 어드레싱을 채택한 데이타 처리 시스템에서의 페이지 프레임 교체 장치 및 방법
JPH113105A (ja) プログラマブルコントローラのプログラミング装置
JPS6220583B2 (ja)
KR100315500B1 (ko) 메모리할당방법
JPS595496A (ja) メモリプロテクト方式
JPS6035694B2 (ja) 主記憶保護方式
JPH0378052A (ja) 仮想記憶管理方式
JP2969776B2 (ja) データ識別方式
JP2982134B2 (ja) 主記憶装置の割り当てサイズ決定方法
JPH052669A (ja) デイジタルカウンタ記憶方式
JPH0934788A (ja) アドレス変換装置及びアドレス変換方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000919

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071020

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081020

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081020

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101020

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101020

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111020

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees