JPH07168694A - プロセッサおよびそれを用いたデータ処理システム - Google Patents

プロセッサおよびそれを用いたデータ処理システム

Info

Publication number
JPH07168694A
JPH07168694A JP5313014A JP31301493A JPH07168694A JP H07168694 A JPH07168694 A JP H07168694A JP 5313014 A JP5313014 A JP 5313014A JP 31301493 A JP31301493 A JP 31301493A JP H07168694 A JPH07168694 A JP H07168694A
Authority
JP
Japan
Prior art keywords
data
compressed
storage device
page
interrupt
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
JP5313014A
Other languages
English (en)
Inventor
Osamu Nishii
修 西井
Noriharu Hiratsuka
憲晴 平塚
Junichi Nishimoto
順一 西本
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 JP5313014A priority Critical patent/JPH07168694A/ja
Priority to KR1019940033680A priority patent/KR950020156A/ko
Publication of JPH07168694A publication Critical patent/JPH07168694A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 データ処理システムにおいて、磁気ディスク
等の二次記憶装置に格納される圧縮形式のプログラムを
実行する場合に、圧縮復元処理のため実行開始時に起こ
る待ち時間を小さく抑え、同時に全く使用されないプロ
グラムの復元処理を省略する。 【構成】 仮想記憶機構のページ単位に該当ページが圧
縮状態にあるか否かのビット情報を、主記憶装置のペー
ジテーブルエントリ内に設ける。圧縮状態にあるデータ
へのアクセスが起こった場合は、アドレス変換バッファ
TLBの圧縮ビット425の読み出し結果に基づき、割
り込み制御ユニット411は割り込みを発生して、圧縮
データを復元する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセッサおよびそれを
用いたデータ処理システムに関し、特にデータの圧縮お
よび復元の機能を有するものに関する。
【0002】
【従来の技術】データ圧縮の技術的現状については、
「日経エレクトロニクス」1993年5月10日号第9
3頁−第104頁に記載してある。データ圧縮とは元の
データに冗長度が高い時に、その冗長度を検出して、よ
り小容量のデータに変換するものである。該文献によれ
ば、計算機の二次記憶装置(磁気ディスク等)に格納する
データ(一般にデータファイルと言う単位で管理され
る)、やプロセッサ間のネットワーク(通信路)を介して
転送するデータ集合に対して圧縮処理が用いられてい
る。このデータ圧縮を用いることによって、二次記憶装
置の容量をより広く使用できることや、ネットワークの
通信時間を小さくできることなどの利点がある。尚、デ
ータ圧縮にはロスのない(完全に復元可能な)データ圧縮
と、ロスのある(完全な復元は不可能な)データ圧縮があ
るが、本発明の議論はロスのないデータ圧縮を想定す
る。
【0003】一方、データ圧縮プログラムは、計算機で
現在広く供給されている。例えば、ワークステーション
・スパーク・ステーション2(Sparc Station 2)で100,0
00行の ######abc(リターン) (######=1-100000, 数字は右ずめ、余白にはスペース
を入れる)からなる1,000,000バイトの磁気ディスク上の
ファイルに、”compress”と言う圧縮プログラムを適用
すると、このファイルは273,892バイトのファイルに圧
縮される(すなわち、4分の1程度の容量に圧縮でき
る)。また、その処理時間は4秒である。一方、”uncom
press”と言う圧縮復元プログラムを前記273,892バイト
の圧縮されたファイルに行うと、元の1,000,000バイト
のファイルが復元できる。また、その処理時間は8秒で
ある。
【0004】一方、プロセッサの記憶の保護機構に関す
る従来技術が、「PAリスク1.1・アーキテクチャ・命
令セット・参照マニュアル」、第3-1頁から第3-12頁、
第4-18頁から第4-25頁、1990年(PA-RISC 1.1 Architect
ure and Instruction Set Reference Manual, pp. 3.1-
3.12, pp. 4.18-4.25, 1990)に記載されている。また、
多くのプロセッサで、記憶保護機構は仮想記憶機構と一
体化されて用意されている。実メモリはページ単位に管
理されるが、仮想記憶機構を用いることによって、任意
の物理ページ(実メモリでアドレスづけされるページ)
は、任意の論理ページと対応付けすることができる。こ
のマニュアル第3-1頁では、ページとは4キロバイトの
大きさをもつと規定されている。また、このマニュアル
の3-4頁には、仮想記憶機構のために用いられるTLB
(トランスレーション・ルックアサイド・バッファ)と言
う論理アドレスから物理アドレスへの変換用のバッファ
記憶装置が記載されている。従って、このTLBは、仮
想記憶機構と記憶保護機構との両方の働きをはたす。ま
た、記憶保護機構を用いることにより、例えば次のこと
ができる。ある任意のページについて、命令に対するア
クセス権を保持していないプログラムからの命令コード
の実行を禁止できる。例えば、このマニュアルでは第3-
11頁の表に示されるように、該当ページのタイプ・バリ
ュー(Type value)を2進数の100にすると、特権レベ
ル2(PL2)より小さな特権レベル、および特権レベル
1(PL1)より大きい特権レベルでの命令実行は許され
ない。ここで、Type value、PL1、PL2は、TLB
に設定される値である。また、特権レベルとはプログラ
ムの権限を示す0、1、2、3の整数値である。従っ
て、ある任意のページについて、データに対するアクセ
ス権を保持していないプログラムからのデータアクセス
を禁止できる。例えば、このマニュアルでは第3-11頁の
表に示されるように、該当ページのType valueを2進数
の011にすると、PL1より大きい特権レベルでのデー
タリードアクセス、およびPL2より大きい特権レベルで
のデータライトアクセスは許されない。
【0005】一般に許可されない命令アクセスやデータ
アクセスが行われた場合、割り込みが起こり、制御が特
定の番地の割り込み処理ルーチンに移る。尚、マシンの
差異により割り込みをトラップ、例外とも呼ぶこともあ
る。例えば、このマニュアルでは第4-20頁に示されるよ
うに、命令に対するアクセス権を保持していないプログ
ラムからの命令コードを実行しようとの試みがなされた
場合、Instruction memory protection trap(命令メモ
リ保護トラップ、割り込み番号7)が発生すると記載さ
れている。また、このマニュアルの第4-23頁に示される
ように、データに対するアクセス権を保持していないプ
ログラムからのデータアクセスを実行しようとの試みが
なされた場合に、Data memory protection trap/Unalig
ned data reference trap(データメモリ保護トラップ/
非整合データ参照トラップ、割り込み番号18)が発生
すると記載されている。それらの割り込み処理ルーチン
は、最上位ソフトウェア(オペレーティング・プログラ
ム)によって提供される。許可されないアクセスに対す
る割り込み処理ルーチンの内容は、(ソフトウェアゆえ
任意に定められるが)典型的には、該当ユーザプログラ
ムを終了させるなどの措置をとる処理となっており、そ
の場合は、結果として、プログラムのアクセスが達成さ
れずに終わる。
【0006】また、このニュアル第3-5頁にはTLBの
ビットとして、Eビット、Tビット、Dビット、Bビッ
トが記載されている。Eビットは、TLBエントリの有
効ビットである。Tビットは、ページ参照トラップ・ビ
ットであり、T=1なるページをデータアクセスすると
トラップが発生すると記載されている。Dビットはダー
ティー・ビットであり、ソフトウェア・TLBミス処理
されるプロセッサでは、D=0なるページにライトまた
はセマフォア・アクセスするとトラップが発生すると記
載されている。Bビットはブレーク・ビットであり、B
=1なるページのデータを改変するアクセスを行うと、
トラップが発生すると記載されている。データを改変す
る命令としては、代表的にはストア命令(マシンレジス
タからメモリへのデータ転送)が挙げられる。
【0007】
【発明が解決しようとする課題】上記従来の技術を用い
て圧縮処理を行う場合の問題を、以下、例を挙げて説明
する。第1は、二次記憶装置に圧縮されたファイルとし
て格納されているプログラムを実行する場合である。二
次記憶装置とは、フロッピー磁気ディスク、固定磁気デ
ィスク(ハードディスク)、光ディスク等をさす。この場
合には従来、次の方法がとられている。 手順1:圧縮復元プログラムを実行して、該当ファイル
を復元する。その実行結果(通常形式のファイル)は、二
次記憶装置におかれる。 手順2:該通常形式のファイルを主記憶装置に配置(ロ
ーディング)する。 手順3:プログラムの実行を開始する。 ただし、手順1の結果生成された通常形式のファイルを
二次記憶装置に置くことを省略して、主記憶装置に直接
配置すると言う小改良も可能であろう。第2は、二次記
憶装置に圧縮されたファイルとして格納されている十分
大きいデータベース等のデータファイルにアクセスする
場合であり、その処理は、 手順1:圧縮復元プログラムを実行し、該当ファイルの
復元する。その実行結果(通常形式のファイル)は二次記
憶装置におかれる、 手順2:アクセスを開始する、 となる。そこで、以上2つの事項をまとめて、圧縮され
たファイルをアクセスする場合と称する。
【0008】まず従来の技術を用いる場合の1番目の問
題は、圧縮復元の処理がシステムの応答時間に及ぼす悪
影響である。上記従来の技術を用いると、二次記憶装置
内に存在する圧縮されたファイルをアクセスする場合
に、ファイル全体の圧縮復元の処理がまず行われる。そ
の後に、当初のアクセスが開始することになる。そのこ
とを第1の例であるプログラムの命令実行のケースで表
現すると、プログラムがスタートする前に圧縮復元の処
理がまず行われるため、そこに待ち時間が生じることで
ある。先の例を適用すると1,000,000バイトのプログラ
ムを実行開始する時に、数秒の待ち時間が生じる。特に
この待ち時間は、ディスプレイを使用する対話式コンピ
ュータシステムではユーザの操作に対する即時の応答性
(即応性)の点から好ましくないものである。その逆に応
答性の目的からファイルの復元処理を完全に行わない時
点でプログラムの実行を開始すると、圧縮状態のデータ
は値として正しくないために、誤った命令、あるいはデ
ータを使用して処理する危険性があり、計算機としては
許されない処理が行われる。上記従来の技術を用いる場
合の2番目の問題は、本来不要な圧縮復元処理を行うこ
とがある点である。第1、第2の例で従来の技術を用い
る場合アクセス前にファイル全体を圧縮復元する。その
結果プログラム終了まで1回もアクセスされずに終わっ
た命令ないしはデータをも圧縮復元するが、これらのデ
ータの復元処理は本来不要なものであり、余分な圧縮復
元がかかっている。
【0009】従って、本発明の1つの目的は二次記憶装
置に圧縮されたファイルとして格納されているプログラ
ムを実行する場合実行開始時に生じていた該当ファイル
全体の圧縮復元処理時間に起因する待ち時間を小さく抑
さえることである。本発明の他の1つの目的は従来の技
術を用いる場合生じていたプログラム終了まで1回もア
クセスされずに終わった命令ないしはデータをも圧縮復
元するための処理時間を不要にして、その分高速な処理
を実現することである。
【0010】
【課題を解決するための手段】上記目的を達成する本発
明の代表的な実施形態は、主記憶装置のデータの一部で
ある単位ブロック長毎に圧縮状態にあるか否かを示すビ
ット情報を設けることが特徴である。この単位ブロック
長とは、記憶保護機構の1ページあるいは複数ページの
大きさをとる。またプロセッサがTLBを有し、適当な
ソフトウェアと組み合わせて制御することにより、圧縮
状態にあるデータにアクセスが行われることが割り込み
を引き起こすように一貫して制御する。
【0011】
【作用】本発明の代表的な実施形態では、圧縮されたデ
ータを圧縮された形式のまま単位ブロック長毎に主記憶
装置に配置し、プログラムの実行を開始することが可能
である。圧縮された命令/データをアクセスする時に、
すなわち、ビット情報が圧縮状態を示した時にTLBの
出力結果に基づき計算機の割込を起こし、強制的にプロ
グラムの実行を特定の番地に移す。その特定の番地から
始まるプログラム(割り込み処理ルーチンと呼ぶ)が該当
領域の圧縮復元処理を行う。その後割り込みを起こした
プログラム実行状態に復旧する。以上の手続きにより当
該プログラムは圧縮復元された正しい命令/データにア
クセスできる。TLBの出力情報が圧縮状態を示した時
に計算機の割込を起こし、強制的にプログラムの実行を
特定の番地に移すことにより、圧縮状態にあり、値が正
しくない命令、またはデータへのアクセスは割り込みに
より成功しない。このことは計算機が正しくない命令、
またはデータを使用して計算することを防止する。ま
た、割り込み処理ルーチンと呼ぶ該当領域の圧縮復元処
理を行うことにより、該当割り込み処理の終了時には、
圧縮は復元され、主記憶装置の値は正しいものとなって
いる。
【0012】
【実施例】本発明の実施例による情報処理システムの全
体図を図1に示す。101はデータプロセッサであるC
PU(中央処理装置)、102は主記憶装置、103はI
/Oアダプタ、104はDMA(Direct Memory Access)
コントローラ、105は固定磁気ディスク(ハードディ
スク)装置、106はCD−ROM装置であり、固定磁
気ディスク装置105とCD−ROM装置106とは二
次記憶装置である。107はCPUバスであり、CPU
101と、主記憶装置102と、I/Oアダプタ103
と、DMAコントローラ104とが接続されている。1
08はI/Oバスであり、I/Oアダプタ103と、ハ
ードディスク装置105、CD−ROM装置106とが
接続されている。
【0013】主記憶装置102のマッピング(各番地の
用いられ方)を図2に示す。この図2に示すように、主
記憶装置102はユーザ領域201とページエントリテ
ーブル領域202とを含んでいる。ユーザ領域201は
16メガバイトの大きさである。このユーザ領域201
は、仮想記憶機構を用いてアクセスされる。この仮想記
憶機構では、主記憶装置102はページと呼ばれる単位
で管理される。ページは4,096バイトからなる。ユ
ーザプログラムは、CPU101内の部のTLBを用い
てのみ、領域201にアクセスできる。ページエントリ
テーブル領域202は64キロバイトの大きさであり、
ユーザ領域201に仮想記憶を用いてアクセスするため
に必要な情報が202の中に格納される。ページエント
リテーブルについては、仮想記憶計算機では周知の事実
なので説明は省略する。各ページの圧縮に関する情報
は、各ページのダーティービット、ページ参照ビットが
従来おかれているのと同様にページエントリテーブル領
域202に中におかれる。
【0014】図1の装置で主記憶装置102のうちユー
ザ領域201のある時点でのデータの様子を図3に示
す。この図3では、網かけ部の301、302は、圧縮
された1ページ分のデータを示す。そのデータはページ
の先頭から置かれ、その容量は1ページよりも小さい。
斜線部の303は、圧縮されていない通常状態の1ペー
ジ分のデータを示している。304はデータのそれぞれ
のページについて、データが圧縮状態にあるか否かを示
す1ビットのフラグすなわちビット情報である。データ
が圧縮状態にあるか否かを示すこのビット情報304
は、物理的には主記憶装置102のページテーブルエン
トリ202中に存在している。
【0015】図1に示したプロセッサ101の内部に存
在するアドレス変換バッファTLBおよびその周辺の回
路のブロック構成図を、図4に示す。401〜408は
TLBの1エントリの要素を示し、401は非キャッシ
ュビット、402はページ参照トラップ・ビット、40
3はダーティ・ビット、404はブレーク・ビット、4
05は圧縮ビット、406はエントリ有効ビットで、4
07は論理ページ番号のタグ部分、408は物理ページ
番号である。409は一致比較器、410は2入力AN
Dゲートであり、入力信号の論理積を出力する。411
は割り込み制御ユニットである。尚、このTLBの圧縮
ビット405は、データが圧縮状態にあるか否かを主記
憶装置内部で示す図3に示したビット情報304の写し
である。本TLBは命令アクセス/データアクセス共用
であり、命令アクセスの時には401、402、40
3、404は機能しない。420はアクセスアドレス信
号線であり、プロセッサ101の内部のアドレス発生器
(図示せず)からの命令アクセス/データアクセスに関す
る論理アドレスを伝達する。あるアクセスが行われると
アクセスアドレス信号線420のアクセスアドレスに従
ってこのTLBがアクセスされ、非キャッシュビット4
01、ページ参照トラップ・ビット402、ダーティ・
ビット403、ブレーク・ビット404、圧縮ビット4
05、エントリ有効ビット406、論理ページ番号のタ
グ部分407、物理ページ番号408がそれぞれ信号線
421、422、423、424、425、426、4
27、428に読み出される。物理ページ番号のタグ部
分427とアクセスアドレス信号線420のアクセスア
ドレスのタグ部分とが一致比較器409で比較され、そ
の一致比較の結果はさらにANDゲート410に伝えら
れる。一致比較器409が一致を示し、有効ビット40
6の値426が1の時にのみ信号線429が1となる。
この信号線429は、TLBヒット条件を示す。信号線
422、423、424、425、429の信号は、割
り込み制御ユニット411に伝達される。割り込み制御
ユニット411はまた、現在のTLBアクセスが命令ア
クセスであることの通知線430の信号と、現在のTL
Bアクセスがデータアクセスであることの通知線431
の信号とをも受け取っている。割り込み制御ユニット4
11は、いずれの割り込みもおこらない場合には実行命
令アドレス432に(分岐も含めた)逐次処理を行う場合
の命令アドレスを出力し、いずれかの割り込みがおこる
場合には実行命令アドレス432に割り込み処理を行う
場合の特定の命令アドレスを出力する。
【0016】この図4のTLBの割り込み制御ユニット
411による割り込み処理を、特に圧縮ビット405の
みに着目して表現すると次のようになる。命令アクセス
とデータアクセスの両方について、もし出力した圧縮ビ
ットの値425が1ならば圧縮割り込みを発生する(0
なら割り込みを発生しない)。図5に、1回の割り込み
処理の前後の命令実行のタイミング図を示す。図5にお
いてx方向は、時間の進行を示す。501は、各時点で
実行される命令の命令アドレス(16進数)を示す。50
2は、主記憶装置102のユーザ領域201の中の第0
ページから第3ページの圧縮状態を示す。同様に503
は主記憶装置102のユーザ領域201の中の第4ペー
ジの圧縮状態を示し、504は主記憶装置102のユー
ザ領域201の中の第5ページ以降のページの圧縮状態
を示す。斜線部509は該当ページが圧縮されていない
通常状態にあることを示し、網かけ部510は該当ペー
ジが圧縮状態にあることを示す。また1ページの大きさ
は16進数で1000に相当するので、番地3000−
3FFCは第3ページに、番地4000−4FFCは第
4ページに属する。プログラムは番地0より順次カウン
トアップされ、期間505の先頭部で3FF8番地の実
行に至っている。期間505では第0ページから第3ペ
ージ(502)は圧縮されていない状態にあり、第4ペー
ジ以降のページ(503、504)は圧縮状態にある。期
間506では命令の4000番地の実行に至る。400
0番地は第4ページに属する。第4ページは期間506
では圧縮状態にあり、そのため主記憶装置102の40
00番地のデータは、正しい命令語ではない。しかしC
PU101内部で4000番地の命令を取得する処理に
おいてTLBの圧縮ビットの出力425が1を示すこと
により、CPU101内部で割り込みが発生する。その
割り込みが発生した結果、取得命令の番地432を割り
込み処理用の番地に分岐する。圧縮割り込み処理の番地
はマシン内部の割り込み先頭レジスタと割り込み番号に
よって決定される。本ケースでは1313700番地に
分岐する。期間507の間で1313700番地より1
3139A8番地まで命令実行が行われるがこれらの命
令実行によって第4ページの圧縮復元処理が行われる。
ここで行われる圧縮復元処理とは主記憶装置のユーザ領
域201上の1ページ分の圧縮されたデータを入力と
し、該データを圧縮復元し、その結果得られた通常状態
のデータをもとの201上の1ページの領域におくこと
をいう。そのフローチャートは図6で詳しく説明する。
その結果期間507の終わりの時点で第4ページのデー
タは(圧縮されていない)通常の内容となっている。13
139A8番地の命令は「割り込み処理からの復帰命
令」であり、本割り込みを引き起こした4000番地に
分岐する効果を有する。期間508で4000番地、4
004番地、4008番地の命令が実行される。期間5
08では第0ページから第4ページ(502、503)は
圧縮されていない状態にあり、第5ページ以降のページ
(504)は圧縮状態にある。尚、期間508の中の命令
取得処理においてはTLBの圧縮ビットの出力425が
0を示すことによって、期間506の時とは異なりCP
U101内部での割り込みが発生しない。
【0017】図6に圧縮割り込みの時に行われる処理、
すなわち期間507で行われる処理プログラムの処理フ
ローを示す。 601:スタート。処理602へ。 602:プロセッサ101の内部のマシンレジスタの一
部を主記憶装置102に退避する。処理603へ。 603:1ページ分の圧縮されたデータを通常形式に復
元する。尚、この復元処理の時にはTLBを使用せずに
アクセスを行い、再度の割り込みを発生させない。処理
604へ。 604:そのページのページテーブルの圧縮ビット(主
記憶装置102中のページエントリテーブル領域202
内に存在する)を、1から0に変更する。処理605
へ。 605:TLBの圧縮ビット405のうち割り込みを発
生する時アクセスされた列のものを1から0に変更す
る。処理606へ。 606:処理602で退避した情報を主記憶装置102
からマシンレジスタに復元する。処理607へ。 607:割り込みを起こした処理に復旧する。これは割
り込みからの復帰命令によって達成される。処理608
へ。 608:処理終わり。
【0018】図7に二次記憶装置105、106に格納
されている時の圧縮データのデータ形式を示す。このデ
ータ形式は特に本実施例に適したものである。701は
2バイトのデータ長フィールドであり、701の内容は
引き続く可変長のフィールド702のデータ長を示す。
702はデータフィールドであり、1ページ分のデータ
が圧縮されて格納されている。702は図3では30
1、303に相当する。703は2バイトのデータ長フ
ィールド、704はデータフィールドであり、701、
702と同様である。
【0019】図8は二次記憶装置上のデータを主記憶装
置に配置するローディングプログラムの処理フローチャ
ートを示したものである。ローディングとはハードディ
スク装置105、あるいはCDーROM装置106の二
次記憶装置内に格納されているデータを、主記憶装置1
02に転送することをいう。圧縮を考慮せず単純にデー
タを二次記憶装置105、106から、主記憶装置に転
送する動作は公知の事実であるため、特に図8のフロー
に明示されていない。その動作について説明すると第1
にCPU101からDMAコントローラ104に転送コ
マンドを送出し、続いて、DMAコントローラ104か
らI/Oアダプタ103を経由して、データ読み出し要
求が二次記憶装置105、106に伝えられる。二次記
憶装置105、106からデータがI/Oアダプタ10
3を経由してCPUバス107に伝えられ、DMAコン
トローラ104はそのデータの到着と同時に主記憶装置
102に書き込み制御信号を発行し、結果として二次記
憶装置105、106のデータの主記憶装置102への
転送が達成される。フローチャートの内容を以下に示
す。 801:スタート。処理802へ。 802:変数iを0に設定する。処理803へ。 803:圧縮されたデータのデータ長フィールド値n(i)
(図7の701、703)を4096と比較する。n(i)が
4096より大きければ処理806へ。さもなければ処
理804へ。 804:圧縮されたデータのデータフィールド値d(i)
(図7の702、704)を圧縮されたまま主記憶装置1
02に配置する。処理805へ。 805:主記憶装置102のページテーブルの該当ペー
ジに対する圧縮ビット304(202内に存在する)を1
にセットする。処理808へ。 806:圧縮されたデータのデータフィールドd(i)を
圧縮復元して主記憶装置102に配置する。圧縮復元さ
れたデータの大きさは当然ながら4,096バイトであ
る。処理807へ。 807:ページテーブルの該当ページに対する圧縮ビッ
ト304(202内に存在する)を0にセットする。処理
808へ。 808:現在処理中のフィールドが最終フィールドか否
か検査する。最終フィールドならば処理810へ。さも
なければ処理809へ。 809:変数iに1を加える。処理803へ。 810:処理の終わり。 時として圧縮されたデータは、元のデータよりも大きい
ことがある。もし仮にローディングプログラムが処理8
03の判定結果に関わらず処理804、処理805のパ
スを進んだとすると、圧縮されたデータは元のデータよ
りも大きい時、圧縮されたデータは主記憶装置に収まり
きらず、そのために余分な別の記憶領域を必要とすると
いう欠点がある。803の判定と分岐をおこなうことに
よって圧縮されたデータが元のデータよりも大きい時に
はローディングプログラムが圧縮復元を行うので余分な
別の記憶領域を設ける必要がなくすむという利点があ
る。
【0020】図9に本発明を使用した別の情報処理シス
テムでの処理中のある時点での主記憶装置の様子を示
す。図9では圧縮データはページサイズの2倍を単位と
して管理される。901、902は圧縮されたデータで
ある。圧縮されたデータは2倍のページ境界を先頭とし
て配置される。各ページ毎に配置を収める必要がないこ
とに注意されたい。この例では第iページで圧縮を要因
とする割り込みが起こった時には第iページを含む2倍
のページ境界上の2ページのデータを圧縮復元する(数
値例:第1005ページで割り込みが起こった時には第
1004ページと第1005ページを圧縮復元す
る。)。図6の圧縮復元処理ルーチンが複数のページを
圧縮復元するよう変更することは容易である。903、
905は通常状態のデータである。904は圧縮状態を
示すビットである。
【0021】以上本発明の実施例を説明したが、本発明
は上記の具体的な実施例に限定されるものではなく、そ
の基本的な技術思想の範囲内で種々の変形が可能であ
る。例えば、以上の実施例ではプロセッサ101内部の
TLBの圧縮ビット405を設けたが、実現方法は圧縮
ビットに限定されるものではなく、圧縮状態のデータに
アクセスした場合、アクセスが成功せず、割込を発生す
ることができるならば他の実現方法でもよい。別な一例
としては、圧縮状態のデータに関する論理アドレスから
物理アドレスへのアドレス変換の情報はTLBに決して
存在しないようにすれば、圧縮状態のデータへのアクセ
スする場合TLBミスを起こし、さらにTLBミスによ
って起こる割り込みルーチンが、主記憶装置102のペ
ージテーブルに存在する圧縮状態の有無を示すビット情
報を判定して、ある場合には圧縮復元処理を行うという
方法をとれば、前記マニュアルに記載されたプロセッサ
でも実現可能である。
【0022】また別な一例としては命令アクセスのみが
行われるページに限れば、例えば圧縮状態のページに対
してはデータアクセス権を2進数の100に、PL2フ
ィールド=2、PL1フィールド=1に設定すれば前記
マニュアルに記載されたプロセッサでも実現可能であ
る。また別な一例としてはデータアクセスのみが行われ
るページに限れば、例えば圧縮状態のページに対しては
Tビット=1に設定すれば前記マニュアルに記載された
プロセッサでも実現可能である。その中で本実施例に示
した圧縮状態に独立した状態ビット405と割り込みを
わりあてることにより、割り込みの原因の数が減少する
ので、処理ルーチンの処理を簡易にすることができ、ペ
ージテーブルとTLBのデータの対応づけを容易にし、
また従来の割り込み要因と混在させるために起こるプロ
グラム処理の難点が全くないことが利点である。圧縮状
態のフラグの管理方法に関してはページエントリテーブ
ルに限られるものではなく、他の方法も可能である。
【0023】
【発明の効果】本発明によれば圧縮されたプログラムを
実行する場合には、または圧縮されたデータファイルを
アクセスする場合でも、圧縮復元処理はページ(ないに
は複数ページ)単位に行われる。そのため従来の方法で
問題となったファイル全体を圧縮復元する時に生じる待
ち時間が小さい。例えばプログラムファイルの場合には
プログラム実行開始時の待ち時間が少なくてすみ、シス
テムの応答時間を良好にすると言う効果が有る。またプ
ログラム終了まで1回もアクセスされずに終わった命令
/データを圧縮復元する必要がない。先に述べた不要な
圧縮復元処理のために処理時間を費やさずに済むと言う
効果が有る。
【図面の簡単な説明】
【図1】本発明の実施例による情報処理システムの全体
図である。
【図2】図1の主記憶装置102のマッピングを示す図
である。
【図3】図1の主記憶装置102の主記憶装置102の
うちユーザ領域201のある時点でのデータの様子を示
す図である。
【図4】図1のプロセッサ101内部のTLBおよびそ
の周辺回路の構成図である。
【図5】本発明の実施例の情報処理システムによる1回
の割り込み処理の前後の命令実行のタイミング図であ
る。
【図6】本発明の実施例の情報処理システムによる圧縮
状態を検知した時に実行する割り込み処理ルーチンの処
理フローである。
【図7】図1の二次記憶装置105、106に格納され
た圧縮されたデータのデータ形式である。
【図8】図1の二次記憶装置105、106から主記憶
装置102へローディングするプログラムの実行フロー
チャートである。
【図9】本発明の他の実施例による情報処理システムで
のプログラムでの実行途中の主記憶装置のデータの様子
である。
【符号の説明】
101…CPU、102…主記憶装置、103…I/O
アダプタ、104…DMAコントローラ、105…ハー
ドディスク装置、106…CD−ROM装置、107…
CPUバス、108…I/Oバス、201…ユーザ領
域、202…ページ・テーブル・エントリ領域、30
1、302…圧縮されたデータ、303…圧縮されてい
ない通常状態のデータ、304…圧縮状態を示すフラ
グ、401…非キャッシュ・ビット、402…ページ参
照トラップ・ビット、403…ダーティ・ビット、40
4…ブレーク・ビット、405…圧縮ビット、406…
エントリ有効ビット、407…論理ページ番号のタグ部
分、408…物理ページ番号、409…一致比較器、4
10…2入力ANDゲート、411…割り込み制御ユニッ
ト、420…アクセス論理アドレス、421…非キャッ
シュビットの読み出し値、422…ページ参照トラップ
ビットの読み出し値、423…ダーティビットの読み出
し値、424…ブレークビットの読み出し値、425…
圧縮ビットの読み出し値、426…エントリ有効ビット
の読み出し値、427…論理ページ番号のタグ部分の読
み出し値、428…物理ページ番号の読み出し値、42
9…ヒット信号、430…命令アクセス指示信号、43
1…データアクセス指示信号、432…計算機の次の命
令の実行アドレス、501…実行命令の番地、502…
第0から第3ページの圧縮に関する状態、503…第4
ページの圧縮に関する状態、504…第5ページ以降の
圧縮に関する状態、505、506、508…期間、5
07…割り込みによって起動される処理の処理期間、5
09…圧縮されていないことを示す図柄、510…圧縮
されていることを示す図柄、601…処理の始まり、6
02、603、604、605、606、607…処
理、608…処理の終わり、701、703…データ長
フィールド、702、704…データフィールド、80
1…処理の始まり、802、803、804、805、
806、807、808、809…処理、810…処理
の終わり 901、902…圧縮されたデータ、903、905…
圧縮されていない通常状態のデータ、904…圧縮状態
を示すフラグ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムの主記憶装置および二
    次記憶装置とバスを介して接続され、論理アドレスを物
    理アドレスに変換するトランスレーション・ルックアサ
    イド・バッファを有するプロセッサであって、 上記二次記憶には少なくとも圧縮されたデータが存在す
    ることが可能であり、 上記主記憶装置には圧縮されたデータと圧縮されていな
    いデータの両方が存在することが可能であり、 上記主記憶装置のデータの一部に対して一定の大きさに
    分割された各々についてデータが圧縮された状態にある
    か否かを示すビット情報を上記トランスレーション・ル
    ックアサイド・バッファと上記主記憶装置との一方が保
    持し、 上記ビット情報が圧縮状態にあることを示すデータに対
    してアクセスが行われた時に、上記ビット情報に応答し
    て割り込みを発生する割り込み制御ユニットを具備する
    ことを特徴とするプロセッサ。
  2. 【請求項2】上記割り込みによって上記主記憶装置のデ
    ータの圧縮を復元する処理を起動し、さらに該圧縮復元
    処理の後に割り込みを起こしたプログラム実行状態に復
    旧することを特徴とする請求項1に記載のプロセッサ。
  3. 【請求項3】論理アドレスを物理アドレスに変換するト
    ランスレーション・ルックアサイド・バッファを有する
    プロセッサと、該プロセッサとバスを介して接続される
    主記憶装置および二次記憶装置とからなるデータ処理シ
    ステムであって、 上記二次記憶には少なくとも圧縮されたデータが存在す
    ることが可能であり、 上記主記憶装置には圧縮されたデータと圧縮されていな
    いデータの両方が存在することが可能であり、 上記主記憶装置のデータの一部に対して一定の大きさに
    分割された各々についてデータが圧縮された状態にある
    か否かを示すビット情報を上記トランスレーション・ル
    ックアサイド・バッファと上記主記憶装置との一方が保
    持し、 上記ビット情報が圧縮状態にあることを示すデータに対
    してアクセスが行われた時に、上記ビット情報に応答し
    て割り込みを発生する割り込み制御ユニットを上記プロ
    セッサが具備することを特徴とするデータ処理システ
    ム。
  4. 【請求項4】上記割り込みによって上記主記憶装置のデ
    ータの圧縮を復元する処理を起動し、さらに該圧縮復元
    処理の後に割り込みを起こしたプログラム実行状態に復
    旧することを特徴とする請求項1に記載のデータ処理シ
    ステム。
JP5313014A 1993-12-14 1993-12-14 プロセッサおよびそれを用いたデータ処理システム Pending JPH07168694A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5313014A JPH07168694A (ja) 1993-12-14 1993-12-14 プロセッサおよびそれを用いたデータ処理システム
KR1019940033680A KR950020156A (ko) 1993-12-14 1994-12-12 프로세서 및 그것을 사용한 데이타 처리시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5313014A JPH07168694A (ja) 1993-12-14 1993-12-14 プロセッサおよびそれを用いたデータ処理システム

Publications (1)

Publication Number Publication Date
JPH07168694A true JPH07168694A (ja) 1995-07-04

Family

ID=18036194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5313014A Pending JPH07168694A (ja) 1993-12-14 1993-12-14 プロセッサおよびそれを用いたデータ処理システム

Country Status (2)

Country Link
JP (1) JPH07168694A (ja)
KR (1) KR950020156A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895476B2 (en) 2006-12-12 2011-02-22 Fujitsu Limited Data relay device, storage device and data-relay method
JP2014513366A (ja) * 2011-05-03 2014-05-29 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
US10120692B2 (en) 2011-07-28 2018-11-06 Qualcomm Incorporated Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895476B2 (en) 2006-12-12 2011-02-22 Fujitsu Limited Data relay device, storage device and data-relay method
JP2014513366A (ja) * 2011-05-03 2014-05-29 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
JP2016149148A (ja) * 2011-05-03 2016-08-18 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US10120692B2 (en) 2011-07-28 2018-11-06 Qualcomm Incorporated Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form

Also Published As

Publication number Publication date
KR950020156A (ko) 1995-07-24

Similar Documents

Publication Publication Date Title
US5864859A (en) System and method of compression and decompression using store addressing
JP2650675B2 (ja) マルチモードマイクロプロセッサにおいてプログラムを実行する方法及びオペレーティングシステム
US6199126B1 (en) Processor transparent on-the-fly instruction stream decompression
US6658549B2 (en) Method and system allowing a single entity to manage memory comprising compressed and uncompressed data
US9053018B2 (en) Compressed memory page selection based on a population count of a dataset
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
CN100394405C (zh) 用于变化内存压缩机器的方法和装置
US5836013A (en) Method and apparatus for compressing system read only memory in a computing system
CN116841920A (zh) 用于执行存储器压缩的系统和方法
US20020049871A1 (en) Method and system for virtual memory compression in an embedded system
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JP2005509946A (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US5805930A (en) System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
JPH1021089A (ja) 対応する厳密例外機構を有するディジタル・コンピュータ上での遅延例外のエミュレート
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US5363502A (en) Hot stand-by method and computer system for implementing hot stand-by method
US5764944A (en) Method and apparatus for TLB invalidation mechanism for protective page fault
US4747044A (en) Direct execution of software on microprogrammable hardware
US4991083A (en) Method and system for extending address space for vector processing
EP3903193A1 (en) Compressing data for storage in cache memories in a hierarchy of cache memories
US5051894A (en) Apparatus and method for address translation of non-aligned double word virtual addresses
US5996062A (en) Method and apparatus for controlling an instruction pipeline in a data processing system
JPH07168694A (ja) プロセッサおよびそれを用いたデータ処理システム
US8082402B2 (en) System and method for using virtual memory for redirecting auxiliary memory operations