JPH08339341A - Selection method for main storage page - Google Patents

Selection method for main storage page

Info

Publication number
JPH08339341A
JPH08339341A JP7143791A JP14379195A JPH08339341A JP H08339341 A JPH08339341 A JP H08339341A JP 7143791 A JP7143791 A JP 7143791A JP 14379195 A JP14379195 A JP 14379195A JP H08339341 A JPH08339341 A JP H08339341A
Authority
JP
Japan
Prior art keywords
page
size
storage device
area
pages
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
JP7143791A
Other languages
Japanese (ja)
Inventor
Yoshifumi Takamoto
良史 高本
Hitoshi Tsunoda
仁 角田
喜久雄 ▲高▼橋
Kikuo Takahashi
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 JP7143791A priority Critical patent/JPH08339341A/en
Publication of JPH08339341A publication Critical patent/JPH08339341A/en
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

PURPOSE: To shorten the time needed for a page acquisition processing, etc., when an input/output buffer is assigned to a disk storage that performs the fast transfer of data as for a computer which contains the disk storage of a different type from a main storage composed of pages of different sizes. CONSTITUTION: At the point of time a disk array device 111 or an ordinary disk storage 20 are enabled to transfer the data requested by an OS, when requests an OS the OS is requested to acquire an input/output buffer, the OS uses with preference the page of a large size included in its resource area 302BR when the device 20 that issued the buffer acquisition request performs the fast transfer of data and also the size of the requested buffer is larger than the large page. In other cases, the OS uses the small pages of the area 302BR to secure the requested buffer.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、主記憶が異なるサイズ
のページから構成されている場合に、外部記憶装置との
データの入出力にオペレーティングシステム(OS)が
使用するバッファに領域に割り当てるべきページを選択
する方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention should allocate an area to a buffer used by an operating system (OS) for inputting / outputting data to / from an external storage device when the main storage is composed of pages of different sizes. Regarding how to select a page.

【0002】[0002]

【従来の技術】一般的なコンピュータシステムは、プロ
セッサと2次記憶装置から構成されている。主として使
用される2次記憶装置は磁気ディスク装置である。
2. Description of the Related Art A general computer system comprises a processor and a secondary storage device. The secondary storage device that is mainly used is a magnetic disk device.

【0003】現在、ディスク記憶装置の容量の伸び率は
極めて高いが、メカニカルな動作を伴う磁気ディスク装
置の性能はプロセッサ性能の伸び率ほど高くない。その
課題を解決する方式として、ディスクアレイが提案され
た。D.Patterson、G.Gibson、and R.H.Kartzらによる"A
Case for Redundant Arrays of Inexpensive Disks(RA
ID)、in ACM SIGMOD Conference、Chicago、 IL"、 PP.
109-116 (June 1988)(以下、第1の参考文献と呼ぶ)
では、複数のディスクドライブにデータを分散して配置
することでディスク内に格納されたデータへのアクセス
時間を短縮し、かつパリティあるいはECCと呼ばれる
冗長データを格納することで信頼性も高めるRAIDと
いうディスクアレイの構成技術が紹介されている。つま
り、アレイディスクでは、複数のディスクドライブに対
して並列に入出力を行うので、データの読み出しあるい
は書き込みは高速となり、また、ディスクドライブに障
害が発生したときでもパリティと障害ディスクドライブ
以外のデータから、障害ディスクドライブのデータを回
復することができる。
At present, the capacity growth rate of the disk storage device is extremely high, but the performance of the magnetic disk device accompanied by mechanical operation is not as high as the processor performance growth rate. A disk array has been proposed as a method for solving the problem. "A by D. Patterson, G. Gibson, and RH Kartz
Case for Redundant Arrays of Inexpensive Disks (RA
ID), in ACM SIGMOD Conference, Chicago, IL ", PP.
109-116 (June 1988) (hereinafter referred to as the first reference)
In RAID, the data is distributed to a plurality of disk drives to shorten the access time to the data stored in the disk, and the redundant data called parity or ECC is also stored to improve reliability. Disk array configuration technology is introduced. In other words, array disks perform parallel I / O to multiple disk drives, so reading or writing data is faster, and even when a disk drive fails, parity and data other than the failed disk drive are used. Can recover failed disk drive data.

【0004】より具体的には、上記文献では、データの
格納方法によりRAIDレベルを複数に分類している。
そのうち、製品で多く使用されるRAIDレベルは、R
AID1、RAID3、RAID5である。RAID1
はミラーリングであり、2台のディスクに同一データを
格納することでディスクの障害に対する信頼性を高めて
いる。読み出し時には、2台のディスクの内どちらか早
いほうのディスクから読むことで単一ディスクに比べ高
速である。RAID3は、単一データをビットあるいは
バイト毎にストライピングすることで、データ転送性能
を向上可能である。RAID5は入出力ブロックを単位
として複数のディスクにストライピングを行うレベルで
ある。RAID3では単一入出力要求を小さな単位でス
トライピングするのに対し、RAID5はそれよりも大
きな単位でストライピングを行う。RAID3は単一ユ
ーザの入出力を高速化することが主な目的であるが、R
AID5は複数ユーザの入出力を並列に実行することが
主な目的である。従って、RAID3は特に大規模なデ
ータ入出力が要求されるマルチメディアや科学技術計算
に用いられる。RAID5は多数ユーザのサービスを行
うオンライン・トランザクションたデータベース処理に
用いられる。
More specifically, in the above literature, the RAID levels are classified into a plurality of RAID levels according to the data storage method.
Among them, the RAID level that is often used in products is R
AID1, RAID3, and RAID5. RAID1
Is mirroring, and the reliability of a disk failure is improved by storing the same data in two disks. When reading, the speed is higher than that of a single disk by reading from whichever of the two disks is faster. RAID 3 can improve data transfer performance by striping single data bit by bit or byte by byte. RAID 5 is a level at which striping is performed on a plurality of disks in units of input / output blocks. RAID 3 strips single I / O requests in small units, whereas RAID 5 strips in larger units. The main purpose of RAID3 is to speed up I / O for a single user.
The main purpose of AID5 is to execute input / output of multiple users in parallel. Therefore, RAID 3 is used for multimedia and scientific / technical calculations that require particularly large-scale data input / output. RAID 5 is used for online transaction database processing that provides services for many users.

【0005】一方、OSは仮想記憶機能を持っている。
仮想記憶機能は、当面必要のない主記憶メモリ内のデー
タやプログラムを一時的に外部の大容量ディスク装置に
出力し、すぐにメモリ(主記憶)を必要とするプログラ
ムに使用させることで、仮想的に大容量のメモリに見せ
る機能である。この動作はページングやスワッピングと
呼ばれる。OSはディスク装置やディスクアレイ装置の
データ入出力時には、必要な容量の仮想記憶領域と主記
憶領域を取得する。この取得の単位をページと呼ぶ。言
い替えると主記憶はページと呼ばれる複数の単位領域か
ら構成されている。前記ページングやスワッピングはこ
のページを単位として行われる。ページサイズを越える
大容量のデータ入出力時には、複数のページを取得する
必要がある。さらに、OSはディスク入出力時に前記ペ
ージの固定処理も行う。ページ固定は、仮想記憶に割り
当てられた主記憶メモリを入出力が終了するまで、他の
プログラムに剥奪されないようにする処理である。前記
ページングやスワッピングはディスクの入出力とは独立
に行われる動作である。ページ固定処理を行わないと、
データを主記憶に転送している最中にその領域を他のプ
ログラムに割り当ててしまう問題が発生する。これを回
避するために、OSが管理する主記憶管理テーブルにペ
ージ固定ビットを設け、このビットが立っている間はO
Sはページを剥奪しないようにする機構を設けている。
このページ固定も各ページ毎に管理されるため、多数の
ページをいずれかのプログラムに新に割り当てた場合、
これらのページに渡る固定処理が必要になる。
On the other hand, the OS has a virtual memory function.
The virtual memory function temporarily outputs data and programs in the main memory that are not needed for the time being to an external large-capacity disk device, and immediately uses them in a program that requires memory (main memory). This is a function that makes it look like a large capacity memory. This operation is called paging or swapping. The OS acquires a virtual storage area and a main storage area of a required capacity when inputting / outputting data to / from a disk device or a disk array device. The unit of this acquisition is called a page. In other words, the main memory is composed of a plurality of unit areas called pages. The paging and swapping are performed in units of this page. It is necessary to acquire multiple pages when inputting / outputting a large amount of data that exceeds the page size. Further, the OS also performs the page fixing process when the disk is input / output. The page fixing is a process of preventing the main memory allocated to the virtual memory from being stripped by another program until the input / output ends. The paging and swapping are operations performed independently of disk input / output. If you do not fix the page,
There is a problem that the area is allocated to another program while transferring the data to the main memory. In order to avoid this, a page fixed bit is provided in the main memory management table managed by the OS, and O is set while this bit is set.
S has a mechanism to prevent the page from being stripped.
This page fixing is also managed for each page, so when a large number of pages are newly assigned to any program,
Fixed processing across these pages is required.

【0006】J.Bradley Chenらによる"A Simulating Ba
sed Study of TLB Performance",19th International S
ymposium on COMPUTER ARCHTECTURE, PP. 114-123 (199
2)(以下、第2の参考文献と呼ぶ)では、ユーザがワー
ク領域として使用するメモリ領域の割当時に、プロセッ
サのTLBが管理するページサイズを可変にし、複数の
アプリケーションについて、プロセッサからアクセスさ
れる命令とデータのヒット率をシミュレーションした結
果が述べられている。ページサイズを変えたとき、プロ
セッサの命令ヒット率が変化し、アプリケーションによ
って最適なページサイズが存在することが述べられてい
る。
[A Simulating Ba by J. Bradley Chen et al.
sed Study of TLB Performance ", 19th International S
ymposium on COMPUTER ARCHTECTURE, PP. 114-123 (199
In 2) (hereinafter referred to as the second reference), when the user allocates a memory area used as a work area, the page size managed by the TLB of the processor is made variable, and a plurality of applications are accessed from the processor. The results of simulating instruction and data hit rates are described. It is stated that when the page size is changed, the instruction hit ratio of the processor changes, and the optimum page size exists depending on the application.

【0007】アプリケーションの命令やデータの参照時
にキャッシュにヒットするかどうかで、プロセッサの処
理性能が変化することが述べられている。この変化をペ
ージサイズから考察している。アプリケーションによっ
て、命令やデータの参照特性は異なる。命令やデータア
クセスがメモリアドレスに対しシーケンシャルでかつ大
容量の領域参照あるほど、ページサイズは大きいほうが
プロセッサ処理性能は高くなる。プロセッサは、命令や
その命令が参照するデータの参照/更新時には必ず仮想
記憶アドレスを実記憶アドレスに変換するため、ページ
サイズが大きいほうがこの変換処理回数が少なくてすむ
ことによる。
It is described that the processing performance of the processor changes depending on whether or not the cache is hit when the instruction or data of the application is referred to. This change is considered from the page size. Different applications have different reference characteristics for instructions and data. The larger the page size is, the higher the processor processing performance becomes, as the instruction and the data access are sequential with respect to the memory address and refer to the large-capacity area. This is because the processor always converts the virtual memory address to the real memory address when referring to / updating the instruction and the data referred to by the instruction, so that the larger the page size is, the smaller the number of times of this conversion processing is required.

【0008】[0008]

【発明が解決しようとする課題】しかるに、現在の商用
計算機では、単一のサイズのページ、例えば、4KBの
大きさのページからなるメモリを使用している。したが
って、上記第2の参考文献に記載の事項から処理速度を
考慮すると、従来からすでに使用されているサイズ、例
えば4KBより大きいサイズ、例えば16KB、のペー
ジを有する主記憶を使用することが望ましい。しかし、
このような計算機で走行されているプログラムの中に
は、元のサイズ4KBのページを有する計算機でしか正
常に動作しないプログラムもある。したがって、計算機
に大きいサイズのページを導入するには、従来からすで
に使用されているサイズ、例えば4KB、のページ加え
て、それより大きいサイズ、例えば16KB、のページ
も混在するように、主記憶を構成することが望ましい。
However, current commercial computers use a memory composed of a single page size, for example, a 4 KB page size. Therefore, considering the processing speed from the matters described in the above-mentioned second reference, it is desirable to use the main memory having a page of a size already used in the past, for example, a size larger than 4 KB, for example, 16 KB. But,
Among the programs running on such a computer, there are programs that normally operate only on a computer having an original size of 4 KB pages. Therefore, in order to introduce a page of a large size into a computer, in addition to a page of a size already used, for example, 4 KB, a page of a larger size, for example, 16 KB, is mixed in the main memory. It is desirable to configure.

【0009】従来技術では、ディスク入出力時のデータ
領域管理は、たとえば、"UNIX 4.3BSDの設計と実装",
ページ198からページ200、丸善株式会社、1991年発行
(以下、第3の参考文献と呼ぶ)に述べられている。こ
こでは、例えばユーザがディスクからデータを読み込む
場合、まずデータを格納するためのユーザ領域を確保す
る。その後、OSに対してディスク入力要求を発行する
とOSはディスク装置に対して入力要求を発行する。デ
ィスクが、要求されたデータを読み出したとき、その要
求を発行したホストを制御するOSに対して、このディ
スク装置からのデータ読み出しの完了を示す割り込みを
発生する。信号データを一時的に格納するためのバッフ
ァをOS内部に取得する。このバッファは、OSが管理
するメモリ領域の一部に確保される。このOSが管理す
るメモリ領域はリソース領域とも呼ばれ、システムが起
動する時に一定量確保され、処理の必要に応じて確保ま
たは解放が行われる。この割り込みにあたり、ディスク
記憶装置は読み出したデータの総量をOSに通知し、O
Sはこの通知されたデータ量に応じて、主記憶に確保す
るバッファの大きさを決定する。
In the prior art, data area management at the time of input / output of a disk is performed by, for example, "design and implementation of UNIX 4.3BSD",
Pages 198 to 200, Maruzen Co., Ltd., 1991 (hereinafter referred to as the third reference). Here, for example, when a user reads data from a disc, first, a user area for storing the data is secured. After that, when a disk input request is issued to the OS, the OS issues an input request to the disk device. When the disk reads the requested data, an interrupt indicating the completion of the data reading from the disk device is generated to the OS controlling the host that issued the request. A buffer for temporarily storing signal data is acquired inside the OS. This buffer is secured in a part of the memory area managed by the OS. The memory area managed by the OS is also called a resource area, and a certain amount is secured when the system is activated, and the memory area is secured or released according to the necessity of processing. Upon this interruption, the disk storage device notifies the OS of the total amount of read data,
The S determines the size of the buffer secured in the main memory according to the notified data amount.

【0010】このような異なるサイズのページを有する
主記憶を使用した計算機に、通常のディスク記憶装置と
アレイディスク装置とを接続した場合、次の問題があ
る。
When a normal disk storage device and an array disk device are connected to a computer using a main memory having pages of different sizes, there are the following problems.

【0011】上述のごとく、異なるサイズ、例えば、4
KBと16KB、のページを含む主記憶を有する計算機
において、このバッファ領域を構成するページとして、
このバッファのサイズが大きいとき、具体的には、例え
ば、16KB以上のときには、このバッファを構成する
頁の総数が少なくなる方が、それらの頁に関する、ペー
ジ確保処理、ページ固定処理に要する時間が少なくて済
むことが期待される。したがって、いずれかのディスク
記憶装置が要求するバッファのサイズが、大きい方のペ
ージサイズ、16KB以上のときには、大きい方のペー
ジ、16KBのページをこのバッファ領域に割り当てる
方が望ましい。しかし、16KBページの総数が限定さ
れているために、無制限に16KBページをいずれのデ
ィスク記憶装置からのデータ転送にも割り当てると、1
6KBページが不足することが予想される。すなわち、
上記第3の参考文献の第198頁から第200頁に述べ
られている通り、ユーザが確保する入出力バッファ領域
と、OSがディスク等の入出力時に一時的にリソース領
域に確保する入出力バッファとは同一ではない。既に述
べた通り、リソース領域はシステムが管理しており、多
数のユーザからの要求により共有されるメモリ領域であ
る。したがって、このリソースが有効に利用されるよう
に、ディスク記憶装置から要求された、バッファに割り
当てるページのサイズを選択することが望ましい。
As mentioned above, different sizes, eg 4
In a computer having a main memory including pages of KB and 16 KB, as pages forming this buffer area,
When the size of this buffer is large, specifically, for example, 16 KB or more, the smaller the total number of pages constituting this buffer, the shorter the time required for page securing processing and page fixing processing for those pages. Expected to be small. Therefore, when the size of the buffer required by any of the disk storage devices is larger than the page size of 16 KB or larger, it is desirable to allocate the larger page or page of 16 KB to this buffer area. However, since the total number of 16 KB pages is limited, unlimited allocation of 16 KB pages to data transfer from any disk storage device would result in 1
6KB pages are expected to run out. That is,
As described on page 198 to page 200 of the third reference, the input / output buffer area secured by the user and the input / output buffer temporarily secured in the resource area by the OS at the time of input / output of the disk or the like Is not the same as. As described above, the resource area is a memory area managed by the system and shared by requests from many users. Therefore, it is desirable to select the size of the page allocated in the buffer requested by the disk storage device so that this resource can be effectively used.

【0012】すなわち、ディスク等の外部装置のデータ
転送速度は、数メガバイト/秒から数100メガバイト
/秒まで装置に依存して大きく変わる。同じサイズのバ
ッファでも、それを使用するディスク記憶装置のデータ
転送速度が低い程、そのバッファが専有される時間が長
くなる。この結果、逆に、転送速度が大きいディスク記
憶装置が要求したバッファに対して、大きなページを割
り当てることが出来なくなり、結果として、より小さい
サイズのページを割り当てることになる。
That is, the data transfer rate of an external device such as a disk varies greatly from several megabytes / second to several hundred megabytes / second depending on the apparatus. For a buffer of the same size, the lower the data transfer rate of the disk storage device that uses it, the longer the buffer is occupied. As a result, conversely, it becomes impossible to allocate a large page to the buffer requested by the disk storage device having a high transfer rate, and as a result, a smaller size page is allocated.

【0013】この結果、本来高速なデータ転送が期待さ
れるディスク記憶装置に対して、Yほり多くのページを
割り当ていることになり、これらのページの確保処理お
よびページ固定処理に要する時間が増大する。
As a result, a large number of Y pages are allocated to the disk storage device, which is originally expected to transfer data at high speed, and the time required to secure these pages and fix the pages increases. .

【0014】[0014]

【課題を解決するための手段】本発明では、主記憶に接
続された複数のディスク記憶装置の内、データ転送速度
が相対的に大きいディスク記憶装置から要求されたバッ
ファには、そのサイズが所定値、例えば最大ページサイ
ズ、以上のときには、相対的に大きなサイズのページを
優先して使用し、データ転送速度が相対的に小さなディ
スク記憶装置から要求されたバッファには、そのサイズ
が所定値以上の場合でも、より小さなサイズのページを
優先して使用する。
According to the present invention, of a plurality of disk storage devices connected to a main memory, a buffer requested by a disk storage device having a relatively high data transfer rate has a predetermined size. When the value is, for example, the maximum page size or more, the page of a relatively large size is preferentially used, and the buffer requested by the disk storage device having a relatively low data transfer rate has a size of a predetermined value or more. Even in case of, preferentially use the smaller size page.

【0015】要求されたバッファサイズが、上記所定
値、例えば、最大ページサイズより小さいときには、そ
のバッファサイズに依らないで、最少サイズのページを
そのバッファに使用する。
When the requested buffer size is smaller than the above-mentioned predetermined value, for example, the maximum page size, the smallest size page is used for the buffer regardless of the buffer size.

【0016】[0016]

【作用】ディスクアレイ装置のように高速にデータ転送
可能な装置と主記憶装置の間で大規模なデータを入出力
する時に、大ページサイズの領域を使用することによ
り、この高速なデータ転送に対するオーバヘッドとな
る、領域の確保処理と領域の開放処理などの処理に要す
る時間を削減でき、高速なデータ転送という特徴を損な
うことが少ない。
When a large-scale data is input / output between a device capable of high-speed data transfer, such as a disk array device, and a main storage device, a large page size area is used to realize the high-speed data transfer. It is possible to reduce the time required for processing such as area reservation processing and area release processing, which is an overhead, and the characteristic of high-speed data transfer is not impaired.

【0017】[0017]

【実施例】以下、本発明に係る主記憶ページ選択方法を
図面に示し実施例を参照してさらに詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The main memory page selection method according to the present invention will be described in detail below with reference to the embodiments shown in the drawings.

【0018】図1は、本発明による主記憶ページ選択方
法を適用する計算機システムの概略構成図を示したもの
である。10はCPUであり、101は主記憶装置であ
り、111はディスクアレイ装置であり、複数のディス
ク装置112から構成されている。20は通常の、単一
ドライブを有するディスク記憶装置である。本実施例
は、ディスクアレイ装置111は高速にデータを転送で
きるディスク記憶装置であり、20はそれより低速なデ
ータ転送を行うディスク記憶装置である。
FIG. 1 is a schematic block diagram of a computer system to which the main memory page selection method according to the present invention is applied. 10 is a CPU, 101 is a main storage device, 111 is a disk array device, and is composed of a plurality of disk devices 112. 20 is a conventional, single drive, disk storage device. In this embodiment, the disk array device 111 is a disk storage device that can transfer data at high speed, and 20 is a disk storage device that transfers data at lower speed.

【0019】図の主記憶装置101内には、本実施例で
使用する主たるプログラムを示す。これらのプログラム
は、ユーザプログラム102とOS209とよりなる。
OSには、さらに仮想記憶管理プログラム103、主記
憶管理プログラム104、入出力管理プログラムが含ま
れる。ユーザプログラム102は、OS以外のプログラ
ムを示し、2次記憶装置に対する入出力要求を発行す
る。仮想記憶管理プログラム103と主記憶管理プログ
ラム104は、共に仮想記憶機能を実現するために必要
なプログラムである。仮想記憶管理プログラム103は
ユーザプログラム102のメモリ確保要求に対し、仮想
記憶領域の確保/開放等を行なう。主記憶管理プログラ
ム104は、ハードウェアである主記憶メモリの確保/
開放を行なう。入出力管理プログラム110は、ディス
ク装置などの2次記憶装置の入出力を制御するプログラ
ムである。
A main program used in this embodiment is shown in the main memory 101 of the figure. These programs include the user program 102 and the OS 209.
The OS further includes a virtual memory management program 103, a main memory management program 104, and an input / output management program. The user program 102 indicates a program other than the OS and issues an input / output request to the secondary storage device. The virtual memory management program 103 and the main memory management program 104 are both necessary programs for realizing the virtual memory function. The virtual memory management program 103 reserves / releases a virtual memory area in response to a memory reservation request from the user program 102. The main memory management program 104 secures / maintains a main memory which is hardware /
Open. The input / output management program 110 is a program for controlling input / output of a secondary storage device such as a disk device.

【0020】仮想記憶管理プログラム103内の入出力
領域管理プログラム106は、ユーザプログラム102
がディスクアレイ入出力要求を発行するために、仮想記
憶領域の取得を要求した時に実行される。主記憶管理プ
ログラム103内のページサイズ選択プログラム108
は、複数の主記憶ページサイズを持つシステムで、ディ
スクアレイ装置111のように高速な入出力が要求され
る場合は、大きなページサイズの主記憶領域を割り当
て、そうでない場合は、小さなページサイズの主記憶領
域を割り当てる動作を行なう。
The input / output area management program 106 in the virtual memory management program 103 is a user program 102.
Is issued when a virtual storage area acquisition request is issued to issue a disk array I / O request. Page size selection program 108 in main memory management program 103
Is a system having a plurality of main memory page sizes, and when high-speed input / output is required like the disk array device 111, a main memory area having a large page size is allocated, and otherwise, a small page size is used. Performs an operation to allocate a main memory area.

【0021】一般にディスクアレイには、データやパリ
ティの格納方法により複数の種類があるが、本実施例で
は、それらのいずれも使用可能である。それらの主な種
類は次の通りである。RAID1はミラーリングであ
り、2台のディスクに同一データを格納することでディ
スクの障害に対する信頼性を高めている。読み出し時に
は、2台のディスクの内どちらか早いほうのディスクか
ら読むことで単一ディスクに比べ高速である。RAID
3は、単一データをビットあるいはバイト毎にストライ
ピングすることで、データ転送性能を向上可能である。
RAID5は入出力ブロックを単位として複数のディス
クにストライピングを行うレベルである。RAID3で
は単一入出力要求を小さな単位でストライピングするの
に対し、RAID5はそれよりも大きな単位でストライ
ピングを行う。RAID3は単一ユーザの入出力を高速
化することが主な目的であるが、RAID5は複数ユー
ザの入出力を並列に実行することが主な目的である。従
って、RAID3は特に大規模なデータ入出力が要求さ
れる画像等を処理するマルチメディアや科学技術計算に
用いられる。RAID5は多数ユーザのサービスを行う
オンライン・トランザクションたデータベース処理に用
いられる。以上のなかで、特に本実施例が有効なタイプ
はRAID3である。RAID3は、単一データを必ず
複数のディスク装置にストライピングするため、ディス
クアレイのタイプの中では転送性能を高速化しやすい特
徴を持つ。
Generally, there are a plurality of types of disk arrays depending on the storage method of data and parity, but in the present embodiment, any of them can be used. The main types of them are: RAID 1 is mirroring, and the same data is stored in two disks to improve reliability against disk failure. When reading, the speed is higher than that of a single disk by reading from whichever of the two disks is faster. RAID
In No. 3, by striping single data bit by bit or byte by byte, the data transfer performance can be improved.
RAID 5 is a level at which striping is performed on a plurality of disks in units of input / output blocks. RAID 3 strips single I / O requests in small units, whereas RAID 5 strips in larger units. The main purpose of RAID 3 is to speed up the input / output of a single user, while the main purpose of RAID 5 is to execute the input / output of a plurality of users in parallel. Therefore, the RAID 3 is used for multimedia processing and scientific / technical calculation for processing images and the like which require particularly large-scale data input / output. RAID 5 is used for online transaction database processing that provides services for many users. Among the above, the type in which this embodiment is particularly effective is RAID3. RAID 3 has a feature that it is easy to speed up the transfer performance among the disk array types because RAID 3 always strips a single data to a plurality of disk devices.

【0022】(仮想記憶と実記憶の割り当ての概要)図
2,3は、仮想記憶領域301と主記憶領域101のペ
ージ構造を示す。図2はディスクアレイ装置111から
入出力を行なう場合の仮想記憶領域301と主記憶領域
101へのページ構造である。また図3は、ディスクア
レイ装置111より低速なデータ転送を行うディスク記
憶装置20から入出力を行なう場合の仮想記憶領域30
1と主記憶領域101へのページ構造である。
(Outline of Allocation of Virtual Memory and Real Memory) FIGS. 2 and 3 show page structures of the virtual memory area 301 and the main memory area 101. FIG. 2 shows a page structure to the virtual storage area 301 and the main storage area 101 when inputting / outputting from the disk array device 111. Further, FIG. 3 shows a virtual storage area 30 when inputting / outputting from the disk storage device 20 which transfers data at a lower speed than the disk array device 111.
1 and the page structure to the main storage area 101.

【0023】仮想記憶領域301は、本実施例では、同
一のサイズの複数の小ページに分かれている。箇々で
は、このページのサイズは4KBとする。主記憶領域1
01は、このサイズを有する小ページと、これらより大
きいサイズ、例えば、16KBの大ページに分かれてい
る。このように主記憶領域101が大ページを有するの
は、大ページを使用する方が、OSが管理すべきページ
の総数が減らせるためである。主記憶領域101が小ペ
ージを含むのは、従来の小ページを使用するユーザプロ
グラムをこの計算機システムで実行可能にするためであ
る。仮想記憶領域301は、ユーザプログラムが利用で
きる領域301Aと、OSが利用できる領域301Bに
分かれている。主記憶領域101も同様に、ユーザプロ
グラムが利用できる領域302Aと、OSが利用できる
領域302Bに分かれている。
In this embodiment, the virtual storage area 301 is divided into a plurality of small pages of the same size. In individual terms, the size of this page is 4KB. Main storage area 1
01 is divided into a small page having this size and a large page having a size larger than these, for example, 16 KB. The reason why the main storage area 101 has a large page is that the use of a large page can reduce the total number of pages to be managed by the OS. The main storage area 101 includes a small page in order to allow a user program using a conventional small page to be executed by this computer system. The virtual storage area 301 is divided into an area 301A that can be used by the user program and an area 301B that can be used by the OS. Similarly, the main storage area 101 is also divided into an area 302A that can be used by the user program and an area 302B that can be used by the OS.

【0024】図2,3において、307と308は、仮
想記憶領域301に設けられ、ユーザプログラムが要求
した二つの入出力バッファ領域を示す。本実施例では、
ユーザプログラムからの要求にしたがって、その要求が
指定する大きさのバッファ領域が確保される。また、3
03と304は、これらの二つの仮想の入出力バッファ
領域に対して割り当てられた主記憶領域上の入出力バッ
ファ領域を示す。これらのバッファ領域は、主記憶領域
内のユーザプログラムに解放された領域302Aに形成
される。本実施例では、仮想の入出力バッファ307
は、実の大ページのサイズ16KBより小さい大きさ、
例えば8Kバイトの大きさであると仮定すると、この仮
想の入出力バッファ307には、実の二つの4KBペー
ジからなる実の入出力バッファ領域303が割り当てら
れる。仮想の入出力バッファ308は、実の大ページの
サイズ16KB以上の大きさ、例えば、64KBの大き
さであると仮定すると、この仮想の入出力バッファ30
8には、実の4つ16KBページからなる実の入出力バ
ッファ領域303が割り当てられる。
2 and 3, reference numerals 307 and 308 denote two input / output buffer areas provided in the virtual storage area 301 and requested by the user program. In this embodiment,
According to the request from the user program, a buffer area of the size designated by the request is secured. Also, 3
Reference numerals 03 and 304 denote input / output buffer areas on the main storage area allocated to these two virtual input / output buffer areas. These buffer areas are formed in the area 302A released to the user program in the main storage area. In this embodiment, the virtual input / output buffer 307
Is smaller than the actual large page size of 16 KB,
Assuming that the size is 8 Kbytes, for example, a real I / O buffer area 303 including two real 4 KB pages is allocated to the virtual I / O buffer 307. Assuming that the virtual input / output buffer 308 has a size of a real large page of 16 KB or more, for example, 64 KB, the virtual input / output buffer 30.
A real input / output buffer area 303 composed of four real 16 KB pages is allocated to the area 8.

【0025】このように本実施例では、ユーザが要求し
た仮想の入出力バッファに対して、そのサイズが大きい
ときには、大ページからなる実の入出力バッファ領域が
割り当てられる。このようにして、本実施例では、ユー
ザプログラムが要求したバッファのサイズが大きいとき
に、それに割り当てられる実のバッファ領域を構成する
ページ数が少なくなるようにしている。仮想記憶領域3
01や主記憶領域302はページと呼ばれる単位で確保
/開放が行なわれる。従って大規模な領域を確保する場
合には、確保するバイト数/ページサイズ(回)のペー
ジ取得処理を必要とする。したがって、ページ数が少な
いほど、ユーザプログラムが要求した入出力バッファを
構成するページの取得あるいはページ固定に要する時間
を短縮できる。
As described above, in this embodiment, when the size of the virtual input / output buffer requested by the user is large, an actual input / output buffer area consisting of a large page is allocated. In this way, in this embodiment, when the size of the buffer requested by the user program is large, the number of pages forming the actual buffer area allocated to it is reduced. Virtual storage area 3
01 and the main storage area 302 are secured / released in units called pages. Therefore, in order to secure a large-scale area, it is necessary to perform a page acquisition process of securing the number of bytes / page size (times). Therefore, the smaller the number of pages, the shorter the time required to acquire or fix the pages forming the input / output buffer requested by the user program.

【0026】図2,3に示した、他の入出力バッファ3
09 A,309B,310A,310Bは、ユーザプ
ログラムが要求した入出力動作をディスクアレイ装置1
11または通常のディスク記憶装置20が実行した後、
データをOSに転送可能になった時点でOSに要求した
ときにOSが確保した入出力バッファ領域の例を示す。
これらのバッファは、ユーザプログラムが要求したデー
タをディスク記憶装置から読み出したデータを、ユーザ
プログラムに対して割り当てた実の入出力バッファ30
3あるいは304へデータを転送する前に一時的にOS
209内に格納するために使用される。これらのOS内
のバッファ309 A,309Bあるいは310A,3
10Bは、OS利用領域302B内のリソース領域30
2BRに確保される。
Another input / output buffer 3 shown in FIGS.
09A, 309B, 310A, 310B perform the input / output operation requested by the user program.
11 or a normal disk storage device 20 executes,
An example of an input / output buffer area secured by the OS when a request is made to the OS when data can be transferred to the OS is shown.
These buffers are the actual input / output buffers 30 in which the data read from the disk storage device by the data requested by the user program are assigned to the user program.
OS temporarily before transferring data to 3 or 304
Used for storage in 209. The buffers 309A, 309B or 310A, 3 in these OSs
10B is the resource area 30 in the OS usage area 302B.
Reserved to 2BR.

【0027】入出力バッファ310A,310Bは、ユ
ーザプログラムが要求した入出力動作をアレイディスク
記憶装置111が実行した後、データをOSに転送可能
になった時点でOSに要求したときにOSが確保した、
OSが管理する入出力バッファ領域の例を示す。本実施
例では、OSは、ディスク記憶装置111または20が
要求したバッファを確保するに当り、そのディスク記憶
装置が、高速にデータ転送を行えるアレイディスク装置
であるときには、そのディスク記憶装置が要求したバッ
ファのサイズが大ページのサイズ以上であるか否かを判
別し、もし、その要求サイズが、大ページサイズ以上で
あるときには、大ページを優先的にそのバッファに使用
する(図2入出力バッファ310B)。もし、その要求
サイズが、大ページサイズより小さいときには、小ペー
ジを優先的に使用する(図2入出力バッファ310
A)。一方、バッファを要求したディスク記憶装置が、
高速にデータ転送を行えない通常のディスク装置である
ときには、そのディスク記憶装置が要求したバッファが
大ページのサイズ以上であるか否かに依らず、小ページ
を優先的にそのバッファに使用する(図3入出力バッフ
ァ309 A,309B)。
The input / output buffers 310A and 310B are secured by the OS when the array disk storage device 111 executes the input / output operation requested by the user program and then when the data can be transferred to the OS when the OS requests the OS. did,
An example of an input / output buffer area managed by the OS is shown. In the present embodiment, when the OS secures the buffer requested by the disk storage device 111 or 20, when the disk storage device is an array disk device capable of high-speed data transfer, the OS requests the disk storage device. It is determined whether or not the size of the buffer is equal to or larger than the size of the large page, and if the requested size is equal to or larger than the size of the large page, the large page is preferentially used for the buffer (I / O buffer in FIG. 2). 310B). If the requested size is smaller than the large page size, the small page is preferentially used (I / O buffer 310 in FIG. 2).
A). On the other hand, the disk storage device that requested the buffer
When the disk device is a normal disk device that cannot transfer data at high speed, the small page is preferentially used for the buffer regardless of whether the buffer requested by the disk storage device is larger than the size of the large page (( (Figure 3 I / O buffers 309A, 309B).

【0028】一般に、16KBページにより構成された
バッファ領域310は、4KBページを使用して構成さ
れたバッファ領域309よりページ数が少ないので、そ
れらのページの取得処理と固定処理に要する時間が少な
くて済む。本実施例では、高速なデータ転送を実行でき
るアレイディスクが要求したバッファ領域に、これらの
大ページを優先的に使用する。これにより、アレイディ
スク装置による高速なデータ転送の転送開始までの時間
を増大しないようにしている。もともと、リソース領域
302BRは、システムが起動される時に確保されるメ
モリ領域であり、システムに対し一つしか存在せず、こ
の領域を複数のユーザや入出力要求が共有して使用する
ことになる。そのため、一定量のメモリを効率的に使用
する必要がある。この領域は、ユーザが利用可能な主記
憶領域302Aより小さい領域であるため、大ページの
数も有限である。したがって、本実施例では、このよう
な限定された大ページが低速のデータ転送により長時間
専有されないように、大ページを割り当ているディスク
記憶装置を限定している。それにより、システム全体の
データ転送速度が低下しないようにしている。
In general, since the buffer area 310 configured by 16 KB pages has a smaller number of pages than the buffer area 309 configured by using 4 KB pages, the time required for the acquisition processing and the fixed processing of those pages is small. I'm done. In this embodiment, these large pages are preferentially used in the buffer area requested by the array disk capable of executing high-speed data transfer. As a result, the time taken to start high-speed data transfer by the array disk device is prevented from increasing. Originally, the resource area 302BR is a memory area secured when the system is started up, and there is only one for the system, and a plurality of users and input / output requests share and use this area. . Therefore, it is necessary to use a certain amount of memory efficiently. Since this area is smaller than the main storage area 302A available to the user, the number of large pages is also finite. Therefore, in this embodiment, the disk storage device to which the large page is allocated is limited so that such a limited large page is not occupied for a long time due to low-speed data transfer. This prevents the data transfer rate of the entire system from decreasing.

【0029】(入出力処理の詳細)図4は、ユーザプロ
グラム201のディスクアレイ装置111あるいは通常
ディスク記憶装置20からデータを入力する動作の例を
示している。
(Details of Input / Output Processing) FIG. 4 shows an example of an operation of inputting data from the disk array device 111 or the normal disk storage device 20 of the user program 201.

【0030】ステップ202では、通常のディスク記憶
装置20内のファイル207Aあるいはディスクアレイ
装置111内のファイル207Bを読み込むに先だっ
て、仮想記憶上の入出力バッファ領域の取得をOSに要
求する。この要求に応答して、OS内の仮想記憶割り当
てプログラム105では、入出力管理プログラム106
が、例えば、図2に示した領域307あるいは308を
取得する。
In step 202, before reading the file 207A in the normal disk storage device 20 or the file 207B in the disk array device 111, the OS is requested to acquire the input / output buffer area on the virtual storage. In response to this request, the virtual memory allocation program 105 in the OS causes the input / output management program 106
However, for example, the area 307 or 308 shown in FIG. 2 is acquired.

【0031】図5は、仮想記憶領域管理リスト407を
示している。このリストは、仮想記憶管理プログラム1
03が仮想ページをユーザプログラムが要求したバッフ
ァに割り当てるのに使用する。このリストは、未使用領
域を示すリスト401と使用中の領域を示すリスト40
2から構成される。リストはページ単位に一つのデータ
構造を持っている。データ構造は、次のページへのポイ
ンタ403、ページ番号404、ページサイズ指定40
6等が格納される。未使用領域を示すリスト401と使
用中の領域を示すリスト402のデータ構造は同一であ
る。
FIG. 5 shows the virtual storage area management list 407. This list shows the virtual memory management program 1
03 is used to allocate virtual pages to the buffer requested by the user program. This list includes a list 401 showing unused areas and a list 40 showing areas in use.
It consists of two. The list has one data structure per page. The data structure is a pointer 403 to the next page, a page number 404, and a page size designation 40.
6 and the like are stored. The data structure of the list 401 showing the unused area and the list 402 showing the area in use is the same.

【0032】ページサイズ指定406は、主記憶領域3
02を割り当てるページサイズを指定する。主記憶割り
当てプログラム107は本フィールドを参照すること
で、どのページサイズを割り当てるか決定することがで
きる。仮想記憶領域を新たに確保する場合は、未使用領
域リストから要求ページ分をリストから外し、使用中領
域リストに追加することで実現する。
The page size designation 406 is performed in the main storage area 3
Specify the page size to allocate 02. The main memory allocation program 107 can determine which page size is allocated by referring to this field. When a new virtual storage area is secured, it is realized by removing the requested page from the unused area list and adding it to the used area list.

【0033】図4に戻り、ステップ203ではファイル
207の読み込み準備のためにファイルオープンコマン
ドをOSに発行する。このオープンコマンドに対してO
Sがファイルオープン処理を行い、ファイル207Aあ
るいは207Bが通常ディスク記憶装置20あるいはデ
ィスクアレイ装置111のどこに格納されているかとい
った情報をOSよりユーザプロセス102に通知する。
Returning to FIG. 4, in step 203, a file open command is issued to the OS in preparation for reading the file 207. O for this open command
S performs a file open process, and the OS notifies the user process 102 of information such as where the file 207A or 207B is normally stored in the disk storage device 20 or the disk array device 111.

【0034】ステップ204では、実際にファイル20
7Aあるいは207Bをステップ202で取得したバッ
ファ領域303または304に格納する読み出し要求を
OSに発行する。このとき、OSは、この要求に応答し
て、そのファイル要求で要求された読み出し動作の実行
を指示する入出力コマンドをディスクアレイ装置111
または通常のディスク記憶装置20に対して発行する。
In step 204, the file 20 is actually
A read request for storing 7A or 207B in the buffer area 303 or 304 acquired in step 202 is issued to the OS. At this time, in response to this request, the OS issues an input / output command for instructing execution of the read operation requested by the file request to the disk array device 111.
Alternatively, it is issued to the normal disk storage device 20.

【0035】このコマンドを実行したアレイディスク記
憶装置111あるいは通常のディスク記憶装置20は、
要求されたデータをOSに転送可能な状態になると、O
Sにデータ転送要求割り込みを送出し、バッファの取得
を要求する。OSはOS内のリソース領域302BRに
一時的にバッファ310または309を後に詳述する方
法で取得する。これにより取得したバッファ310また
は309に対して、アレイディスク記憶装置111ある
いは通常のディスク記憶装置20はデータを転送可能に
なる。バッファ310または309にデータが格納され
ると、OSはユーザが取得した領域307あるいは30
8に対してデータ転送を開始する。しかし、この時点で
は領域307あるいは308の主記憶領域が取得されて
いないためページフォールトが発生し、主記憶領域の取
得を主記憶割り当てプログラム107に要求し後に詳述
する方法で取得する。以上の動作により、ユーザはアレ
イディスク記憶装置111あるいは通常のディスク記憶
装置20内のデータを参照することが可能になる。
The array disk storage device 111 or the normal disk storage device 20 that executed this command
When the requested data can be transferred to the OS, O
A data transfer request interrupt is sent to S to request buffer acquisition. The OS temporarily acquires the buffer 310 or 309 in the resource area 302BR in the OS by a method described in detail later. Thus, the array disk storage device 111 or the normal disk storage device 20 can transfer data to the acquired buffer 310 or 309. When the data is stored in the buffer 310 or 309, the OS displays the area 307 or 30 acquired by the user.
Data transfer to 8 is started. However, at this point in time, a page fault occurs because the main storage area of the area 307 or 308 has not been acquired, and the main storage allocation program 107 is requested to acquire the main storage area, and the main storage area is acquired by the method described in detail later. With the above operation, the user can refer to the data in the array disk storage device 111 or the normal disk storage device 20.

【0036】ステップ205では、ファイルクローズに
よってディスク入出力のために取得した資源を開放す
る。
In step 205, the resources acquired for the disk input / output by the file close are released.

【0037】(OS内バッファ領域用のページサイズの
選択の詳細)本実施例では、前述のステップ204の後
に、OSが、このバッファ309あるいは310を取得
するときに、それらのバッファに使用するページのサイ
ズを、データ読み出しを行った装置が高速にデータ転送
を実行するアレイディスク装置であるかあるいはそうで
ない通常のディスク記憶装置であるかに応じて選択する
ようになっている。以下、その詳細を図9を参照して説
明する。
(Details of Selection of Page Size for Buffer Area in OS) In this embodiment, the page used in the buffer when the OS acquires this buffer 309 or 310 after step 204 described above. Is selected according to whether the device that has read the data is an array disk device that performs high-speed data transfer or an ordinary disk storage device that does not. The details will be described below with reference to FIG.

【0038】図9は、主記憶割り当てプログラム107
の処理フローを示している。
FIG. 9 shows the main memory allocation program 107.
The processing flow of is shown.

【0039】主記憶割り当てプログラム107は、前述
のステップ204の後にディスク記憶装置から発行され
るデータ転送要求割り込み701またはページフォール
ト710により起動される。
The main memory allocation program 107 is activated by the data transfer request interrupt 701 or page fault 710 issued from the disk storage device after step 204 described above.

【0040】ステップ702ではこの割り込みを契機と
する主記憶領域割り当ての受け付け・解析処理を行う。
その後、ページサイズ選択プログラム108を起動す
る。
In step 702, main memory area allocation acceptance / analysis processing triggered by this interrupt is performed.
Then, the page size selection program 108 is activated.

【0041】このプログラム108では、ステップ70
9において、この割り込みがリソース領域の確保を要求
するか否かを判定する。
In this program 108, step 70
At 9, it is determined whether or not this interrupt requests the reservation of the resource area.

【0042】この割り込みの発行元を、上記データ転送
要求割り込み時にステータスとして格納されるディスク
装置の識別子(システムID)をもとに解析可能であ
る。この割り込みの発行元が、ディスク記憶装置である
ときには、この割り込みは、リソース領域の確保を要求
すると判定する。
The issuer of this interrupt can be analyzed based on the disk device identifier (system ID) stored as the status at the time of the data transfer request interrupt. When the issuer of this interrupt is the disk storage device, it is determined that this interrupt requires the reservation of the resource area.

【0043】その結果、この割り込みがリソース領域の
確保を要求するとき、ステップ703では、この割り込
みを発行したディスク記憶装置が高速転送可能な装置か
否かを判定する。この判定は上記割り込み発行元の識別
子と図11に示す、OSが管理する2次記憶装置のテー
ブルにより判定される。このテーブルには、システム内
の種々のディスク記憶装置に割り当てられたシステムI
D(901)に対応して、その種類902と、その装置
のデータ転送速度903が格納されている。ステップ7
03では、具体的には、割り込み発行元のデータ転送速
度が所定値、例えば、10以上であるか否かを判定し、
10以上であれば、高速転送装置と判定する。この判定
方法に代わり、ディスク記憶装置の種類902に基づい
て、割り込み発行元がアレイディスク記憶装置であるか
を判定し、もしそうであるときには、高速転送装置判定
する方法でもよい。割り込み発行元が高速転送可能なデ
バイスであるときには、ステップ708に進む。そうで
なければ、ステップ706に進む。
As a result, when this interrupt requests the reservation of the resource area, in step 703 it is judged whether the disk storage device which issued this interrupt is a device capable of high speed transfer. This judgment is made based on the identifier of the interrupt issuing source and the table of the secondary storage device managed by the OS shown in FIG. This table contains the system I assigned to the various disk storage devices in the system.
The type 902 and the data transfer rate 903 of the device are stored corresponding to D (901). Step 7
In 03, specifically, it is determined whether the data transfer rate of the interrupt issuing source is a predetermined value, for example, 10 or more,
If it is 10 or more, it is determined to be a high-speed transfer device. Instead of this determination method, it may be determined whether the interrupt source is an array disk storage device based on the disk storage device type 902, and if so, a high speed transfer device determination method. When the interrupt source is a device capable of high-speed transfer, the process proceeds to step 708. Otherwise, go to step 706.

【0044】ステップ708ではさらに割り当て要求が
大容量かどうかを判定する。この判定は、割り込み要求
に付随して割り込み要求元のディスク記憶装置から指定
されるデータ転送量に基づいて判定する。本実施例で
は、データ転送量が、所定値。例えば、大ページサイズ
以上のときには、大容量転送要求と判断する。
In step 708, it is further determined whether the allocation request has a large capacity. This determination is made based on the data transfer amount specified by the disk storage device that is the source of the interrupt request in association with the interrupt request. In this embodiment, the data transfer amount is a predetermined value. For example, when the page size is larger than the large page size, it is determined that the large capacity transfer request is made.

【0045】大容量の入出力要求であると判定される
と、ステップ704に進む。そうでなければステップ7
06に進む。ステップ704は、ディスクアレイに対す
る入出力時に実行され、主記憶領域中の大ページサイズ
の確保を行うために、後述する大ページサイズの空きリ
スト503(図7)をサーチする。ここで空きがあれ
ば、ステップ705に進み、後述する使用中リスト50
4(図7)に追加することで高速転送可能なデバイス用
に割り当てたことになる。また、2種類以上のページサ
イズを有するシステムでは、最も小さなページサイズ以
外のページを選択することで本実施例の効果を出すこと
ができる。
If it is determined that the input / output request has a large capacity, the process proceeds to step 704. Otherwise, step 7
Proceed to 06. Step 704 is executed at the time of input / output to / from the disk array, and searches a large page size free list 503 (FIG. 7) described later in order to secure a large page size in the main storage area. If there is a space here, the process proceeds to step 705 and the in-use list 50 to be described later.
4 (FIG. 7), it is assigned for a device capable of high-speed transfer. In a system having two or more page sizes, the effect of this embodiment can be obtained by selecting a page other than the smallest page size.

【0046】ステップ706では、基本的に、後述する
小ページサイズの空きリスト501(図7)をサーチす
る。小ページサイズの空きが見つかれば、後述する使用
中リスト502(図7)に追加し、領域の確保を行う。
この処理により、高速転送可能なディスクアレイ装置等
に対する入出力時には、優先的に大ページサイズが割り
当てられるため、ページ割り当て処理の負荷が軽くする
ことができる。さらに、大容量の入出力要求であって
も、性能の低いデバイスへは小ページサイズを割り当て
ることで、リソース領域を効率的に使用することができ
るようになる。
In step 706, basically, a small page size empty list 501 (FIG. 7) described later is searched. If a small page size vacancy is found, it is added to the in-use list 502 (FIG. 7) described later to secure the area.
By this processing, a large page size is preferentially allocated at the time of input / output to / from a disk array device or the like capable of high-speed transfer, so that the load of the page allocation processing can be reduced. Further, even if a large-capacity input / output request is made, a small page size is allocated to a device having low performance, so that the resource area can be used efficiently.

【0047】ステップ711はページフォールトによる
主記憶割り当て要求かどうか判定を行なう。この判定
は、リソース領域の判定と同様に割り込みのステータス
を参照することで可能である。ステップ712では主記
憶を大ページサイズか小ページサイズのどちらに割り当
てるかを判定する。この判定には図5の空き仮想記憶領
域管理リストを参照することにより可能である。図5ポ
インタ402は仮想記憶を取得しているページのリスト
を示している。ページフォールトの割り込みステータス
から、どこの仮想記憶ページがページフォールトを起こ
したかを判断することができる。この情報をもとにポイ
ンタ402から仮想記憶のリストをサーチしページフォ
ールトを起こしたページを求める。リスト中にはページ
サージが記述されたフィールド406があり、このフィ
ールドに大ページサイズか小ページサイズのどちらを割
り当てるかが記述されている。このフィールドへは仮想
記憶領域を新たに割り当てる時、仮想記憶領域の大きさ
を判断し領域が所定の値より大きければ大ページサイズ
の割り当て要求を格納し、そうでなければ小ページサイ
ズの割り当て要求を格納する。つまり、主記憶領域は仮
想記憶領域より後で取得されるため、仮想記憶領域を割
り当てる際、仮想記憶割り当てプログラム105があら
かじめ割り当てたい主記憶ページサイズをフィールド4
06に格納する。このフィールドを参照することで、図
9ステップ712の判断を行なうことができる。その結
果、大ページサイズの取得要求であればステップ704
へ、小ページサイズの取得要求であればステップ706
を実行する。この処理により、ユーザの取得した入出力
バッファ(図4入出力バッファ303,304)を取得
する容量により、所定の値より大きければ大ページサイ
ズへ小さければ小ページサイズの主記憶領域に割り当て
ることが可能になる。主記憶のページ管理の詳細は以降
で説明する。
In step 711, it is determined whether the request is a main memory allocation request due to a page fault. This determination can be made by referring to the interrupt status, as in the resource area determination. In step 712, it is determined whether to allocate the main memory to the large page size or the small page size. This determination can be made by referring to the free virtual storage area management list in FIG. The pointer 402 in FIG. 5 indicates a list of pages from which virtual memory is acquired. From the page fault interrupt status, it can be determined which virtual memory page caused the page fault. Based on this information, the virtual memory list is searched from the pointer 402 to find the page in which the page fault has occurred. In the list, there is a field 406 describing page surge, and it is described whether a large page size or a small page size is assigned to this field. When a virtual storage area is newly allocated to this field, the size of the virtual storage area is determined, and if the area is larger than a predetermined value, a large page size allocation request is stored. Otherwise, a small page size allocation request is stored. To store. That is, since the main memory area is acquired after the virtual memory area, when allocating the virtual memory area, the virtual memory allocation program 105 sets the main memory page size to be allocated in advance in the field 4
It is stored in 06. By referring to this field, the judgment in step 712 in FIG. 9 can be made. As a result, if it is a large page size acquisition request, step 704.
If it is a small page size acquisition request, step 706.
To execute. By this processing, depending on the capacity of the input / output buffer (input / output buffers 303 and 304 in FIG. 4) acquired by the user, it can be allocated to the large page size if it is larger than a predetermined value and to the main storage area of small page size if it is smaller. It will be possible. Details of main memory page management will be described later.

【0048】(主記憶のページの管理)図6は、主記憶
管理リスト群1105を示している。ポインタリスト1
100は2つの主記憶管理リストへのポインタを含む。
一つは、ユーザが確保可能なユーザ領域主記憶管理リス
ト1103へのポインタ1101であり、もう一つはリ
ソース領域リスト1104へのポインタ1102であ
る。リソース領域は、ユーザが直接割り当てることはな
く、OSがシステム動作に必要な時に割り当てる領域で
ある。1101、1102はOSが主記憶の割り当て/
解放時に用途に応じて切り換えて使用する。
(Management of Main Memory Page) FIG. 6 shows a main memory management list group 1105. Pointer list 1
100 includes pointers to two main memory management lists.
One is a pointer 1101 to a user area main memory management list 1103 that can be secured by the user, and the other is a pointer 1102 to a resource area list 1104. The resource area is an area which is not directly allocated by the user but is allocated by the OS when it is necessary for system operation. 1101 and 1102 are OS main memory allocation /
When releasing, switch according to the application.

【0049】図7は、ユーザが割り当てることができる
主記憶領域管理リスト1103を示している。501は
小ページサイズ領域の空きリストへのポインタ、502
は小ページサイズ領域の使用中リストへのポインタが格
納されている。503は大ページサイズ領域の空きリス
トへのポインタ、504は大ページサイズ領域の使用中
リストへのポインタが格納されている。リストはページ
単位に一つのデータ構造を持っている。リストのデータ
構造は、次のページへのポインタ505、ページ固定ビ
ット506、ページ番号507等が格納される。未使用
領域を示すリスト501、503と、使用中の領域を示
すリスト502、504のデータ構造は同一である。主
記憶領域を新たに確保する場合は、未使用領域リスト5
01、503から要求ページ分をリストから外し、使用
中領域リスト502、504に追加することで実現す
る。使用中リスト502、504の中で、ページ固定ビ
ット506が立っているページは、OSが剥奪すること
はない。
FIG. 7 shows the main storage area management list 1103 that can be assigned by the user. 501 is a pointer to a free list in the small page size area, 502
Stores a pointer to the in-use list of the small page size area. Reference numeral 503 stores a pointer to a free list in the large page size area, and reference numeral 504 stores a pointer to a busy list in the large page size area. The list has one data structure per page. The list data structure stores a pointer 505 to the next page, a page fixed bit 506, a page number 507, and the like. The data structures of the lists 501 and 503 indicating unused areas and the lists 502 and 504 indicating areas in use are the same. When a new main storage area is to be reserved, the unused area list 5
This is realized by removing the requested pages from 01 and 503 from the list and adding them to the in-use area lists 502 and 504. In the busy lists 502 and 504, the OS does not strip a page for which the page fixing bit 506 is set.

【0050】図8は、リソース領域の主記憶領域管理リ
スト1104を示している。構造は図7と同等である。
1201は小ページサイズ領域の空きリストへのポイン
タ、1202は小ページサイズ領域の使用中リストへの
ポインタが格納されている。1203は大ページサイズ
領域の空きリストへのポインタ、1204は大ページサ
イズ領域の使用中リストへのポインタが格納されてい
る。リストはページ単位に一つのデータ構造を持ってい
る。リストのデータ構造は、次のページへのポインタ1
205、ページ固定ビット1206、ページ番号120
7等が格納される。未使用領域を示すリスト1201、
1203と、使用中の領域を示すリスト1202、12
04のデータ構造は同一である。主記憶領域を新たに確
保する場合は、未使用領域リスト1201、1203か
ら要求ページ分をリストから外し、使用中領域リスト1
202、1204に追加することで実現する。使用中リ
スト1202、1204の中で、ページ固定ビット12
06が立っているページは、OSが剥奪することはな
い。
FIG. 8 shows the main storage area management list 1104 of the resource area. The structure is the same as in FIG.
Reference numeral 1201 stores a pointer to a free list of the small page size area, and 1202 stores a pointer to a busy list of the small page size area. Reference numeral 1203 stores a pointer to a free list in the large page size area, and 1204 stores a pointer to a busy list in the large page size area. The list has one data structure per page. List data structure is pointer 1 to the next page
205, page fixed bit 1206, page number 120
7 etc. are stored. A list 1201 showing unused areas,
1203 and lists 1202, 12 showing areas in use
The data structure of 04 is the same. To newly secure the main storage area, the requested pages are removed from the unused area lists 1201 and 1203, and the used area list 1
It is realized by adding to 202 and 1204. Page fixed bit 12 in the busy list 1202, 1204
The OS does not strip the page on which 06 is set.

【0051】図10は、ページ固定処理のフローを示し
ている。ページ固定は、ディスク装置などの2次記憶装
置に対するデータ転送時に、OSによって主記憶領域の
ページが剥奪されることを防ぐ。ステップ801では、
ページ固定を行うべきページをサーチする。ステップ8
02では、主記憶領域の使用中リストのページ固定ビッ
ト506をONにする。この操作を取得したバッファ領
域分行うことで、ページ固定が完了する。
FIG. 10 shows a flow of page fixing processing. The page fixing prevents the OS from stripping pages in the main storage area during data transfer to a secondary storage device such as a disk device. In step 801,
Search the page that should be fixed. Step 8
In 02, the page fixed bit 506 of the in-use list of the main storage area is turned on. The page fixing is completed by performing this operation for the acquired buffer area.

【0052】[0052]

【発明の効果】本発明によれば、高速なディスクアレイ
装置のデータ転送速度を向上させるソフトウェア制御が
可能になる。
According to the present invention, software control for improving the data transfer rate of a high speed disk array device becomes possible.

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

【図1】本発明によるページ選択処理を実行する計算機
システムの概略構成図。
FIG. 1 is a schematic configuration diagram of a computer system that executes page selection processing according to the present invention.

【図2】仮想記憶領域と主記憶領域の関係を示す図。FIG. 2 is a diagram showing a relationship between a virtual storage area and a main storage area.

【図3】仮想記憶領域と主記憶領域の関係を示す図。FIG. 3 is a diagram showing a relationship between a virtual storage area and a main storage area.

【図4】ユーザプログラムのフローチャート。FIG. 4 is a flowchart of a user program.

【図5】仮想記憶領域管理リストを示す図。FIG. 5 is a diagram showing a virtual storage area management list.

【図6】主記憶領域管理リストへのポインタを示す図。FIG. 6 is a diagram showing a pointer to a main storage area management list.

【図7】ユーザ領域主記憶管理リストを示す図。FIG. 7 is a diagram showing a user area main memory management list.

【図8】リソース領域の主記憶領域の管理リストを示す
図。
FIG. 8 is a diagram showing a management list of a main storage area of a resource area.

【図9】主記憶管理プログラムのページサイズ選択プロ
グラムのフローチャート。
FIG. 9 is a flowchart of a page size selection program of the main memory management program.

【図10】主記憶領域のページ固定処理のフローチャー
ト。
FIG. 10 is a flowchart of a page fixing process for the main storage area.

【図11】OSが管理する二次記憶装置管理テーブルを
示す図。
FIG. 11 is a diagram showing a secondary storage device management table managed by the OS.

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】異なるサイズを有する複数のページにより
構成された主記憶装置と、複数の二次記憶装置とを有
し、いずれかの二次記憶装置から要求されたデータ転送
要求に応答して、その2次記憶装置と上記主記憶装置と
の間のデータ転送に使用するバッファ領域を該主記憶上
に確保し、確保されたバッファ領域を介して、上記いず
れかの2次記憶装置と上記主記憶装置との間のデータ転
送を行う計算機システムにおいて、 上記いずれかの2次記憶装置の転送速度が相対的に大き
いとき、該主記憶装置を構成する複数のページの内、相
対的にサイズの大きな空きページを、相対的にサイズの
小さい空きページより優先して該バッファ領域に使用
し、 上記いずれかの2次記憶装置の転送速度が相対的に小さ
いとき、該主記憶装置を構成する複数のページの内、相
対的にサイズの小さなページを、相対的にサイズの大き
な空きページより優先して該バッファ領域に使用する主
記憶ページ選択方法。
1. A main storage device comprising a plurality of pages having different sizes, and a plurality of secondary storage devices, responding to a data transfer request requested from any one of the secondary storage devices. , A buffer area used for data transfer between the secondary storage device and the main storage device is secured in the main storage, and the secondary storage device of any one of the above and the main storage device is secured via the secured buffer region. In a computer system that transfers data to and from a main storage device, when the transfer speed of any of the above secondary storage devices is relatively high, the size of the plurality of pages constituting the main storage device is relatively large. Large empty pages are used in the buffer area in preference to relatively small empty pages, and the main storage device is configured when the transfer speed of any of the above secondary storage devices is relatively low. Compound Of the page, a small page of relatively size, main memory page selection method used in the buffer region in preference to large free pages relatively size.
【請求項2】上記いずれかの2次記憶装置の転送速度が
相対的に大きく、該いずれかの2次記憶装置がバッファ
領域のサイズが所定値より小さい場合には、該主記憶装
置を構成する複数のページの内、相対的にサイズの小さ
空きなページを該バッファ領域に使用し、 上記いずれかの2次記憶装置の転送速度が相対的に大き
く、該バッファ領域のサイズが所定値より小さい場合に
は、該主記憶装置を構成する複数のページの内、相対的
にサイズの小さ空きなページを、相対的にサイズの大き
な空きページより優先して該バッファ領域に使用し、 上記いずれかの2次記憶装置の転送速度が相対的に小さ
いときには、該いずれかの2次記憶装置がバッファ領域
のサイズが所定値以上か否かに依らないで、該主記憶装
置を構成する複数のページの内、相対的にサイズの小さ
なページを該バッファ領域に使用する請求項1記載の主
記憶ページの選択方法。
2. When the transfer speed of any one of the secondary storage devices is relatively high and the size of the buffer area of each of the secondary storage devices is smaller than a predetermined value, the main storage device is configured. Of the plurality of pages to be used, a free page having a relatively small size is used for the buffer area, the transfer speed of any one of the secondary storage devices is relatively high, and the size of the buffer area is larger than a predetermined value. When the size is small, among the plurality of pages forming the main storage device, a relatively small-sized empty page is used in the buffer area in preference to a relatively large-sized empty page. When the transfer rate of the secondary storage device is relatively low, the secondary storage device does not depend on whether or not the size of the buffer area is equal to or larger than a predetermined value, and a plurality of main storage devices are configured. Within the page Method of selecting the main memory page of claim 1 wherein the use of small pages relatively size in the buffer area.
【請求項3】上記所定値は、最大ページサイズに等しい
請求項2記載の主記憶ページ選択方法。
3. The main memory page selecting method according to claim 2, wherein the predetermined value is equal to a maximum page size.
JP7143791A 1995-06-12 1995-06-12 Selection method for main storage page Pending JPH08339341A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7143791A JPH08339341A (en) 1995-06-12 1995-06-12 Selection method for main storage page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7143791A JPH08339341A (en) 1995-06-12 1995-06-12 Selection method for main storage page

Publications (1)

Publication Number Publication Date
JPH08339341A true JPH08339341A (en) 1996-12-24

Family

ID=15347080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7143791A Pending JPH08339341A (en) 1995-06-12 1995-06-12 Selection method for main storage page

Country Status (1)

Country Link
JP (1) JPH08339341A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164129A (en) * 2011-02-07 2012-08-30 Canon Inc Buffer cache management method, buffer cache management device and program
JP2013210919A (en) * 2012-03-30 2013-10-10 Nec Corp Replication device, replication method, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164129A (en) * 2011-02-07 2012-08-30 Canon Inc Buffer cache management method, buffer cache management device and program
JP2013210919A (en) * 2012-03-30 2013-10-10 Nec Corp Replication device, replication method, and program

Similar Documents

Publication Publication Date Title
JP3431972B2 (en) Virtual disk system
US8190846B2 (en) Data management method in storage pool and virtual volume in DKC
US5881311A (en) Data storage subsystem with block based data management
US7213165B2 (en) Host I/O performance and availability of a storage array during rebuild by prioritizing I/O requests
US6122685A (en) System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
US6341342B1 (en) Method and apparatus for zeroing a transfer buffer memory as a background task
US7882136B2 (en) Foresight data transfer type hierarchical storage system
US6009481A (en) Mass storage system using internal system-level mirroring
KR100439675B1 (en) An efficient snapshot technique for shated large storage
US7032070B2 (en) Method for partial data reallocation in a storage system
US5802345A (en) Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts
JPH0458051B2 (en)
JPS60147855A (en) Memory managing apparatus
JPH0578857B2 (en)
JPH0566621B2 (en)
JPH06236322A (en) Cache system for disk array
US20100306463A1 (en) Storage system and its controlling method
JPH09231015A (en) Storage device and its system
JPH06332625A (en) Data multiplexing method for file and data processing system
EP2466446B1 (en) Storage system, method, and program, comprising a plurality of storage devices
JPH0776950B2 (en) Data processing method and device
Muppalaneni et al. A multi-tier RAID storage system with RAID1 and RAID5
JP2008135055A (en) Computer system and secondary storage device
JPH0863394A (en) Storage device system and controlling mathod for storage device
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees