JPH02133840A - Apparatus for discovering non-allotted memory page - Google Patents
Apparatus for discovering non-allotted memory pageInfo
- Publication number
- JPH02133840A JPH02133840A JP15480889A JP15480889A JPH02133840A JP H02133840 A JPH02133840 A JP H02133840A JP 15480889 A JP15480889 A JP 15480889A JP 15480889 A JP15480889 A JP 15480889A JP H02133840 A JPH02133840 A JP H02133840A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- processor
- bit map
- search
- memory
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 46
- 230000008569 process Effects 0.000 description 22
- 230000000694 effects Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 238000010845 search algorithm Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Abstract
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はデータ処理の分野に関し、特に計算機システム
においてメモリ・ページがどう割り振られているかを判
断する操作に関するものである6B、従来技術とその問
題点
ビット・マップは、計算機システムにおいてメモリ・ペ
ージの割り振り状態を表すデータを記憶するコンパクト
な方法である。割り振られていないページの位置は、所
定状態のビットの位置からアルゴリズムによって求める
ことができる、ビット・マップの状態を特徴づけるもの
として、未割り振りページの存在を示す状態にあるビッ
トの占有$ (densitylと分布をあげることが
できろ、。DETAILED DESCRIPTION OF THE INVENTION A. Field of Industrial Application The present invention relates to the field of data processing, and in particular to operations for determining how memory pages are allocated in a computer system. 6B. Prior Art and Its Related Art Problem Bit maps are a compact way to store data representing the allocation status of memory pages in a computing system. The position of an unallocated page can be determined by an algorithm from the position of a bit in a predetermined state. Can you give me the distribution?
ビット・マップを探索する方法はいくつかあるが、その
特徴は大きく2つに分けられる。一方はビット・マップ
を占める未割り振りページが少ないときに効率的であり
、他方はビット・マップの占有率が高いときに効率的で
ある。There are several ways to search a bit map, but their characteristics can be broadly divided into two. One is efficient when the bit map occupies few unallocated pages, and the other is efficient when the bit map occupies high.
メモリ探索機能について述べた記事や特許は多く、それ
ぞれ長所と欠点がある。There are many articles and patents describing memory search capabilities, each with their own advantages and disadvantages.
IBM TDB 1979年11月号、vOl、2
2、No、6.pp 2489〜90では、“並列テー
ブルを対象とする翻訳”(Parallel Tabl
e Directed Translationlと題
して、探索プロセスなどのベクトル操作を行なう方法が
述べられている。この方法は、複数のプロセッサを同時
に用いるもので、SIMD(単一命令111データ・ス
トリーム)型の並列プロセッサにおける探索引数を比較
することを唯一の基礎としている。並列式計算機式を使
用できる方法では、複数の結果を得るため、同檜かまた
は別種の複数の探索引数が同じテーブルで探索される。IBM TDB November 1979 issue, vOl, 2
2, No, 6. pp. 2489-90, “Translation for Parallel Tables”
e Directed Translation describes a method for performing vector operations such as search processes. This method uses multiple processors simultaneously and is solely based on comparing search arguments in SIMD (Single Instruction 111 Data Stream) parallel processors. In methods that can use parallel computing, multiple search arguments of the same or different types are searched in the same table to obtain multiple results.
この方法は特に、同じベクトル連係リストでの並列(p
)探索引数の同時翻訳であり、ベクトルは並列(p)プ
ロセッサ上で事前に2進値が配列された探索木をなす、
このため、各プロセッサはそ・れぞれ独立して、探索木
のコピーを一定の順序で再帰的に走査した結果と探索引
数を比較する必要がある。一致があれば、探索引数と翻
訳値の一致が示され、不一致の場合は、探索引数がそれ
ぞれノード値より大きいか小さいかを調べるため探索木
の左右いずれかの側が探索される。This method is particularly useful for parallelism (p
) is a simultaneous translation of the search arguments, and the vector forms a search tree with pre-ordered binary values on parallel (p) processors.
Therefore, each processor must independently compare the search argument with the result of recursively scanning copies of the search tree in a fixed order. A match indicates a match between the search argument and the translated value; otherwise, either the left or right side of the search tree is searched to see if the search argument is greater or less than the node value, respectively.
米国特許第4482956号は、複数の要素挿入ルーチ
ンと1つの削除ルーチンによって単一の連鎖待ち行列が
並行動作を行えることを取り上げている。ルーチンはm
uのプロセッサ上で非同期に同時に実行でき、一方で要
素を削除し、他方では1つ以上のアンカー指示要素を挿
入する。これは待ち行列解除ロックによって行われるが
、このロックは、要素を削除するプログラム・ルーチン
によってのみ調べられ、アンカー指示要素を(システム
/370の比較・スワップ命令を便って)待ち行列に挿
入するプログラム・ルーチンによっては調べられない。U.S. Pat. No. 4,482,956 addresses the ability of a single chained queue to operate in parallel with multiple element insertion routines and one deletion routine. The routine is m
can be executed asynchronously and simultaneously on u's processors, deleting an element on the one hand and inserting one or more anchor-directed elements on the other hand. This is done by a dequeue lock, which is examined only by program routines that delete elements and insert anchor-directed elements into the queue (via System/370 compare/swap instructions). Not examined by program routines.
米国特許第4639856号は、マルチプロセッサの計
算機システムにおいて使用するデュアル・ストリーム・
プロセッサについて述べている。このマルチプロセッサ
計算機システムには、少な(とも2つのプロセッサが含
まれる0両方のプロセッサに2つの機構があり、これは
いずれかのプロセッサが動作できなくなった場合に用い
られる。第1の機構は動作不能のプロセッサ内に置かれ
、その機能動作を維持する。第2の機構も動作不能プロ
セッサ内に置かれ、機能動作が可能な他方のプロセッサ
へ不足信号を送る。他方のプロセッサが不足信号を受け
ると、動作不能なプロセッサのキャッシュにある所要デ
ータを捜し出すことはできなくなる。むしろ他方のプロ
セッサは、それ自体のキャッシュにあるデータを捜し出
せない場合には、メイン・メモリにある所要データを探
す。U.S. Pat. No. 4,639,856 discloses a dual stream system for use in a multiprocessor computer system.
I'm talking about processors. This multiprocessor computer system has two mechanisms for both processors, which are used when one of the processors becomes inoperable. A second mechanism is located within the disabled processor and maintains its functional operation.A second mechanism is also located within the disabled processor and sends a shortage signal to the other processor that is capable of functional operation.The other processor receives the shortage signal. If the other processor cannot locate the data in its own cache, it will be unable to locate the required data in the cache of the inoperable processor.
C1問題点を解決するための手段
本発明の目的は、計算機システムに右けるメモリ・ペー
ジがどう割り振られているかを判断する手段を提供する
ことである。Means for Solving the C1 Problem An object of the present invention is to provide a means for determining how memory pages in a computer system are allocated.
本発明の目的は、一対のプロセッサによる競合探索によ
って、計算機システムにおけるメモリ・ページの割り振
りを判定する手段を提供することである。An object of the present invention is to provide means for determining memory page allocation in a computer system by searching for contention between a pair of processors.
本発明の目的は、計算機システムにおいてメモリ・ペー
ジ割り振り状態を示すビット・マップを探索する機構を
提供することである。このため−対のプロセッサによる
競合探索が行われる。各プロセッサは、最適化方式の異
なる探索手順により、メモリ内の未割り振りページを捜
し出す、先に捜し出したプロセッサは遅れをとったプロ
セッサに割込みをかけ、計算機システムにページの割り
振りを知らせる。遅れをとったプロセッサはビット・マ
ップとレジスタを更新する。It is an object of the present invention to provide a mechanism for searching a bit map indicating memory page allocation status in a computing system. Therefore, a competition search is performed between the pair of processors. Each processor searches for an unallocated page in memory using a search procedure using a different optimization method. The lagging processor updates its bit map and registers.
すなわち1本発明によるビット・マップの探索機能は、
様々な条件に最適な探索となるよう、最適化の方式が異
なる探索法によってビット・マップの並列探索を行なう
ものである。ここで述べるビット・マップ探索では、一
対の専用マイクロプロセッサのそれぞれが最適化方式の
異なる探索手順を取り、どちらが先に未割り振りページ
を示すビットを捜し出すかを競うものである。このよう
なビットを最初に捜し出したプロセッサは、敗れたプロ
セッサに割込みをかける。この敗れたプロセッサはビッ
ト位置を受は取り、ビット・マップと要約バッファの更
新を受は持つ、一方、勝ったプロセッサは空きページ位
置を算出してこのプロセッサより大型のシステムへ通知
する。In other words, the bit map search function according to the present invention is as follows:
Bit maps are searched in parallel using search methods with different optimization methods so that the search is optimal for various conditions. In the bit map search described here, each of a pair of dedicated microprocessors uses a search procedure with a different optimization method, and competes to see which one will first find a bit indicating an unallocated page. The first processor to locate such a bit will interrupt the losing processor. The losing processor takes the bit position and updates the bit map and summary buffer, while the winning processor calculates the free page position and notifies it to the larger system.
D、実施例
ビット・マップは、計算機システムで記憶ページの割り
振り状態を示すデータを記憶するコンパクトな手段であ
る0割り振られていないページの位置は、所定状態のビ
ットの位置からアルゴリズムによって求めることができ
る。ビット・マップの状態は、未割り振りページの存在
を示す状態にあるビットの占有率と分布によって表され
る。D. Embodiment A bit map is a compact means of storing data indicating the allocation status of storage pages in a computer system.The location of an unallocated page can be determined by an algorithm from the position of a bit in a given state. can. The state of the bit map is represented by the occupancy and distribution of bits in states indicating the presence of unallocated pages.
ビット・マップを探索する方法はい(つかあるが、その
特徴は大きく2つに分けられる。一方はビット・マップ
を占める未割り振りページが少ないときに効率的であり
、他方はビット・マップの占有率が高いときに効率的で
ある。There are several ways to search a bit map, but their characteristics can be broadly divided into two. One is efficient when there are few unallocated pages occupying the bit map, and the other is efficient when there are few unallocated pages occupying the bit map. is efficient when is high.
ビット・マップで、未割り振りページを示すビットの占
有率が高い場合、順次探索を行なえば所要状態にあるビ
ットを速く捜し出しやすい。このようなビットの占有率
がビット・マップにおいて低い場合、順次探索には普通
はかなりの時間がかかる。ビット・マップのデータを圧
縮すれば、情報は失われるが、要約形式に変換できる。In a bit map, if the occupancy rate of bits indicating unallocated pages is high, it is easy to quickly find bits in the desired state by sequentially searching. If the occupancy of such bits is low in the bit map, sequential searching typically takes a significant amount of time. Compressing bit map data results in loss of information, but it can be converted into a condensed form.
このような要約データは、一対のレジスタで表現できる
。各レジスタは複数のビットをもち、ビット数はビット
・マップの行数または列数に対応する6レジスタのビッ
トは、使用できるページを示す少なくとも1ビツトがビ
ット・マップの列か行にある場合にセットされる。探索
の対象となるビットがあるビット・マップの行か列を捜
すため、要約レジスタを検査する探索手順を設定できる
。この方法に必要なことは、一方の要約レジスタのビッ
トを検査することと、これに続いてビット・マップの1
行の内容を(順次に)検査することだけである。ビット
数がまばらであって、2行を探索してても有用なビット
が見つかりそうもない場合、この方法はビット・マップ
の順次探索よりも速い、要約レジスタを用いた探索手順
の2番目は、要約レジスタに行ビットと列ビットがある
ことによって示されるピット位置の全部が順次に探索さ
れるものである。この方法で探索される空間は、要約レ
ジスタにあるビット数の積と同じ大きさにすぎない、ビ
ット・マップの占有率が高くも低(もなければ、この方
法はビット・マップ全体の順次探索に匹敵する方法であ
る。Such summary data can be represented by a pair of registers. Each register has a number of bits, the number of bits corresponds to the number of rows or columns in the bit map.6 The bits in the register indicate an available page if at least one bit is in the column or row of the bit map. Set. A search procedure can be established that examines the summary register to find the row or column of the bit map that contains the bit to be searched. All this method requires is to examine the bits in one of the summary registers, followed by one bit in the bit map.
All it does is examine the contents of the rows (sequentially). If the number of bits is sparse and it is unlikely that useful bits will be found even after searching two rows, this method is faster than the sequential search through the bit map.The second search procedure using summary registers is , all of the pit locations indicated by the row and column bits in the summary register are to be searched sequentially. The space explored in this way is only as large as the product of the number of bits in the summary register. This is a method comparable to
記憶管理システムは、可能なら単一の集積回路として組
み込まれるのが慣例である。しかし、ここに示す実施例
では、システムの論理要素はそれぞれ大規模集積回路の
一部として組み込まれると想定している。もちろん論理
要素は個々の装置として、あるいは集積回路装置を組み
合わせても実施できる。It is customary for storage management systems to be implemented as a single integrated circuit whenever possible. However, the illustrated embodiment assumes that each of the logical elements of the system is incorporated as part of a large scale integrated circuit. Of course, the logic elements can be implemented as individual devices or in combination with integrated circuit devices.
サービスを受けるプロセッサすなわちコンテキスト・プ
ロセッサとして動作する中央処理装置(CPU)は、グ
ローバル・バスを介してシステム・メモリ(記憶機構)
に接続される。またローカル・バスを介してサブシステ
ムにも接続される。サブシステムはシステム・メモリ内
のページの割り振り状態を判定するものである。サブシ
ステムには2個のマイクロプロセッサが含まれる。The central processing unit (CPU), which operates as the serviced processor or context processor, accesses system memory (storage) via the global bus.
connected to. It is also connected to subsystems via local buses. The subsystem is responsible for determining the allocation status of pages within system memory. The subsystem includes two microprocessors.
各マイクロプロセッサにローカル・メモリ、2ボートの
ビット・マップ・メモリ、状況レポート用論理回路、X
レジスタ、及びYレジスタがある。Local memory for each microprocessor, 2 ports of bit map memory, status reporting logic,
There are a register and a Y register.
大きさがXビット × Xビット(ここでXとyの積は
、システム・メモリの各ページにつき1ビツトを得るの
に十分な大きさである)のビット・マップ・メモリは一
対のマイクロプロセッサに接続され、マイクロプロセッ
サは、サブシステムが組み込まれるCPUの内部バスに
接続される。A bit map memory of size X bits by X bits (where the product of The microprocessor is connected to the internal bus of the CPU in which the subsystem is embedded.
CPUはこの内部バスから、メモリ内の空きページのペ
ージ番号を読み出そうとする。ローカル・バスは割り振
りが解除されたメモリ・ページのページ番号などのデー
タをシステムに与えるためにも使用できる。ローカル・
バスのデータ・レポート・ライン(ページ数がこれを通
じて確約されることになるライン)に加え、システム状
況をCPUに伝え、CPUかもコマンドを受けるライン
が用いられる。cpuかものコマンドには、リセット、
初期設定、ビット・マップ探索開始、およびビット・マ
ップ・メモリ更新の各コマンドを使ってページが空いて
し)ることをマークすることができる。このシステムの
代表的な実施例では、状況レポートを少なくとも3本の
ラインで行えば、サブシステムの休止、探索中、データ
使用可能、システム障害、および空きページなしの各状
態が伝えられる。これらのラインは普通、両方のプロセ
ッサとサービス要求ラインからの状況情報を受ける論理
回路(の集合〕によって駆動され、サービス要求ライン
はこの情報から、状況レポート・ラインの正確な状態を
得る。The CPU attempts to read the page number of a free page in memory from this internal bus. The local bus can also be used to provide data to the system, such as page numbers of deallocated memory pages. local·
In addition to the data report line of the bus (the line through which page counts are committed), lines are used that convey system status to the CPU and that also receive commands from the CPU. The cpu commands include reset,
The initialize, start bitmap search, and update bitmap memory commands can be used to mark a page as empty. In a typical embodiment of the system, status reporting is performed on at least three lines to convey the following states of the subsystem: dormant, searching, data available, system failure, and no free pages. These lines are typically driven by logic circuits that receive status information from both processors and the service request line, from which the service request line derives the exact status of the status report line.
組み込まれるマイクロプロセッサは両方とも、長さがX
とYの一対の作業用レジスタへアクセスできる。レジス
タの内容は、lプロセッサが実行する探索アルゴリズム
を対象としたハードウェア支援機能である。したがって
、このプロセッサは各レジスタへ優先的にアクセスでき
る。ただし、ここでいうレジスタはアルゴリズムを示′
すための一例である。特定の支援ハードウェアやその他
の支援ハードウェアも、本発明の主旨から離れることな
く、他の探索アルゴリズムを高速に実行するために選択
できる。Both embedded microprocessors have length X
and Y can be accessed. The contents of the register are hardware support functions intended for the search algorithm executed by the processor. Therefore, this processor can preferentially access each register. However, the register here indicates the algorithm.
This is an example. Specific support hardware and other support hardware may also be selected to speed up execution of other search algorithms without departing from the spirit of the invention.
各マイクロプロセッサは、それにとってロー力力ルなメ
モリに記憶されたプログラムを実行することができる。Each microprocessor is capable of executing programs stored in memory that is low power to it.
このプログラムを変更する手段も備えられる。変更する
には、ローカル・メモリの重ね書きを行うか他のアクセ
ス可能なメモリにあるプログラムをプロセッサが実行す
るようにする。各プロセッサは、割り込みのための接点
を設ければ、ここから他方のプロセッサの実行に割り込
みをかけることができる。Means for modifying this program is also provided. Modifications can be made by overwriting local memory or by causing the processor to execute programs located in other accessible memory. Each processor can interrupt the execution of the other processor by providing an interrupt contact.
サブシステムのプロセッサは、電源投入時にビット・マ
ップ・メモリとx−Yレジスタの各ビットを、ページが
使用可能なことを示す状態にセットすることによって実
行を開始する。この例では、この状態を、“ON″すな
わち”l”とする、プロセッサはこの後、たとえばマツ
プの空きページのアドレスを見つけるため、コンテキス
ト・プロセッサからのコマンドを待つ状態に入る。The subsystem's processors begin execution at power-up by setting bit map memory and bits in the x-y registers to indicate that the page is available. In this example, this state is set to "ON" or "1", and the processor then enters a state in which it waits for a command from the context processor, for example to find the address of a free page in the map.
システムの動作を理解するにはプロセッサの探索アルゴ
リズムを知る必要がある。プロセッサ用に選ばれる探索
アルゴリズムは、ビット・マップの状態が変わっても最
大限高速に探索できるよう最適化される。空きページを
示すメモリ状態がビット・マップを占める割合は、概し
て、高いか低いかのいずれかである。この例では、第1
のプロセッサの探索アルゴリズムは簡単な順次探索であ
って、メモリの連続した各ビットの状態が調べられると
仮定する。一方、第2のプロセッサはX・Yレジスタを
使い、ビット・マップ状態の要約データを保つ、この要
約では、ビット−マツプのi番目の行のどれかのビット
が使用可能なページを示す場合、Yレジスタのi番目の
ビットはページ使用可能状態を示す、同様に、j番目の
列のどれかのビットが′″ON”にセットされれば、X
レジスタのj番目のビットは−ON”となる、第2プロ
セツサはこのようにハードウェアの支援を受けて探索を
行う、このときYレジスタが最初に調べられ、探索すべ
き行が捜し出される0次にXレジスタが調べられ、個々
のビットのどれを探索すべきかが決められる。ただし、
こういったアルゴリズムは参考のために選ばれたもので
ある、占有率の高いビット・マップと占有率の低いビッ
ト・マップの場合は、効率の面で明らかな違いがある7
他のアルゴリズムも本発明の主旨から離れることなく選
択することができる。To understand the operation of the system, it is necessary to know the search algorithm of the processor. The search algorithm chosen for the processor is optimized to perform the search as quickly as possible as the state of the bit map changes. Memory states indicating free pages generally occupy either a high or a low percentage of the bit map. In this example, the first
Assume that the processor's search algorithm is a simple sequential search, in which the state of each successive bit of memory is examined. Meanwhile, the second processor uses X and Y registers to maintain a summary data of the bit map state, in which if any bit in the i-th row of the bit map indicates an available page; The i-th bit of the Y register indicates page availability; similarly, if any bit in the j-th column is set to ``ON'', the
The jth bit of the register is -ON'', the second processor thus performs the search with the help of hardware, the Y register is examined first and the line to be searched is found. The X register is then examined to determine which of the individual bits to search, where:
These algorithms were chosen for reference; there is a clear difference in efficiency between high-occupancy bitmaps and low-occupancy bitmaps7.
Other algorithms may also be selected without departing from the spirit of the invention.
コマンド・ラインの状態が変わり、これが探索の開始を
示す場合、両方のプロセッサは、それぞれの探索アルゴ
リズムを表し、それぞれに記憶されたプログラムを実行
し始める。このコマンド・ラインとプロセッサ状態の変
化は、状況レポート論理回路によって符号化され、探索
の継続が示される。第1プロセツサは、そのプログラム
と歩調を合わせて直接ビット・マップへ行き、空きペー
ジのアドレスを示すビットを見つけ(ビット・マップは
lで占められているため)、第2プロセツサに割込をか
け見つかったビットの位置をページ番号に変換し、その
ページ番号をデータ・ラインにセットして、探索が完了
したことを状況制御論理回路に伝える。状況ラインの制
御論理回路は次に状況ラインを変えてデータが使用可能
なことを示す。When the state of the command line changes, indicating the start of a search, both processors begin executing their respective stored programs representing their respective search algorithms. This command line and processor state change is encoded by the status reporting logic to indicate continuation of the search. The first processor, in step with its program, goes directly to the bit map, finds the bit indicating the address of a free page (because the bit map is occupied by l), and interrupts the second processor. Converts the found bit position to a page number and sets the page number on the data line to signal the status control logic that the search is complete. The status line control logic then changes the status line to indicate that data is available.
第2プロセツサは第1プロセツサが探索を完了した時点
で要約レジスタを探索中だったため、空きページを見つ
けていない、第2プロセツサは、第1プロセツサからの
割り込みを受けた後、第1プロセツサがセットしたデー
タ・ラインの読み出しを行い、ビット・マップと要約レ
ジスタの両方の内容に変更を加えることで、見つかった
ページの割り振り状態(使用不可能であること)を反映
させる。The second processor was searching the summary register when the first processor completed its search, so it did not find any free pages.After receiving an interrupt from the first processor, the second processor reads the data line that was created and changes the contents of both the bit map and the summary register to reflect the allocation state (unavailability) of the page found.
ページの割り振りと割り振り解除のプロセスは、2個の
プロセッサの探索アルゴリズムによって探索が完了する
可能性がほぼ同じになるまで続き、どちらのプロセッサ
が先に捜し出すかは、ビット・マップ・メモリかどんな
状態にあるかに依存するものとする。場合によっては空
きページの番号に対する要求が出され、両方のプロセッ
サが競ってこれを探索する。この場合、第2のプロセッ
サによって処理される要約レジスタのデータが事実上空
き状態のビット・マップのビットを指し、第1プロセツ
サが空きページを示すビットを捜し出す前に第2のプロ
セッサがビットの状態を検証する場合には、第2プロセ
ツサが、第1プロセツサに割り込みをかけ、捜し出され
たページ番号な復号して確約(assertlする。一
方、第1プロセツサはこれと平行してビット・マップと
要約レジスタを更新する。このとき、要約レジスタは各
ビットが1である可能性が大きいことを示すだけで、実
際に1であることを示すのではないため、プロセッサは
ビット・マップ・エントリの状態を検証しなければなら
ない。The process of allocating and deallocating pages continues until the two processors' search algorithms have approximately the same probability of completing the search, and which processor searches first depends on the state of the bit map memory and It depends on whether the In some cases, a request is made for a number of free pages, which both processors race to find. In this case, the data in the summary register processed by the second processor points to a bit in the bit map that is effectively free, and the second processor determines the state of the bit before the first processor locates the bit indicating a free page. When verifying the page number, the second processor interrupts the first processor and decodes and asserts the retrieved page number.Meanwhile, the first processor in parallel Updates the summary register, where the processor updates the state of the bit map entry, since the summary register only indicates that each bit is likely to be 1, not that it is actually 1. must be verified.
事象が正常に進行中、ページの割り振りはコンテキスト
・プロセッサのオペレーティング・システムによって解
除される1割り振り解除は、(たとえば)第1プロセツ
サが最初にメモリ・マツプを、次に要約レジスタを更新
すれば、そのプロセッサによって続けられる。While events are proceeding normally, pages are deallocated by the operating system of the context processor.1 Deallocation means that if (for example) the first processor first updates its memory map and then its summary register, Continued by that processor.
使用可能なページがない場合、この状態をレジスタに“
ON“ビットがないことから先に判別するのは第2プロ
セツサである。第2プロセツサはこの判別の後、状況ラ
イン制御論理回路に通知し、論理回路は状況ラインのそ
の状態を符号化する、第1プロセツサはこの動作によっ
て停止することがある。この後、コンテキスト・プロセ
ッサのオペレーティング・システムが必要数のページの
割り振り解除を行う、一方のレジスタだけが“ON”ビ
ットのないことを示した場合、これはシステム障害を示
す。If there are no pages available, register this condition with “
It is the second processor that first determines from the absence of the ON" bit. After this determination, the second processor notifies the status line control logic, which encodes that state of the status line. The first processor may be halted by this operation.The context processor's operating system then deallocates the required number of pages if only one register indicates that it does not have an "ON" bit. , which indicates a system failure.
計算機システムではどの部分も障害を起こしつる。1[
のシステム・プロセッサの障害は、そのプロセッサの障
害によって起動される状況ライン論理回路によって通知
され、コマンドに応じた処理が開始される。この障害は
次に、状況ラインを介してレポートできる。ただし、こ
のシステムは、ある種のプロセッサ障害に対してはフェ
イル・ソフトである。これにより、動作が遅くなる場合
もあるが、連続動作が可能になる。Any part of a computer system can fail. 1[
A failure of a system processor is signaled by status line logic which is activated by the failure of that processor and begins processing in response to commands. This failure can then be reported via the status line. However, this system is fail-soft to certain processor failures. This allows continuous operation, although it may slow down the operation.
「リセット」コマンドが出されると1両方のプロセッサ
は停止し、コマンド作動可能(レディ)状態に戻る。「
初期設定」コマンドが出されると、両方のプロセッサは
それぞれ電源投入(順序)命令を実行し、これによって
ビット・マップは全ビットが”ON“にセットされる。When a "reset" command is issued, both processors are halted and returned to a command ready state. "
When the ``Initialize'' command is issued, both processors each execute a power-up (sequence) command, which causes the bit map to have all bits set to ``ON''.
以下、本発明について詳述する。第1図はシステムの汎
用ブロック図である。CPU 2 はグローバル・
バス6を介してシステム・メモリ4に接続される。DA
SD 8や端末lOなど他の装置もそれぞれチャネル
(CH)12と14を介してバス6に接続できる。シス
テム・メモリは扱いやすいサイズであればよいが、この
説明では32×32ページとした。各ページは4096
バイト(4キロバイト)である。The present invention will be explained in detail below. FIG. 1 is a general block diagram of the system. CPU 2 is a global
It is connected to system memory 4 via bus 6 . D.A.
Other devices such as SD 8 and terminal IO can also be connected to bus 6 via channels (CH) 12 and 14, respectively. The system memory can be any size that is easy to handle, but in this explanation it is assumed to be 32 x 32 pages. Each page is 4096
bytes (4 kilobytes).
システム・メモリ4のページの割り振り状態は、ローカ
ル・バス18を介してCPU 2に接続される。サブ
システム16に記憶される。CPU 2とサブシステム
16は単一の集積回路チツプ20上に形成するか、個別
装置または集積回路や装置を組み合わせて形成できる。The allocation status of pages of system memory 4 is connected to CPU 2 via local bus 18 . stored in subsystem 16; CPU 2 and subsystem 16 may be formed on a single integrated circuit chip 20, or may be formed as separate devices or in a combination of integrated circuits and devices.
第2図は第1図のサブシステム16の詳細ブロック図で
ある。ローカル・バス18はコマンド・バス22.デー
タ・バス24、状況バス26からなる。コマンド・バス
22はライン32.34を介してマイクロプロセッサ2
8.30につながり、ライン35を介して状況レポート
論理回路33につながる。データ・バス24はライン3
6と38を介してプロセッサ28.30に接続される。FIG. 2 is a detailed block diagram of subsystem 16 of FIG. Local bus 18 is connected to command bus 22. It consists of a data bus 24 and a status bus 26. Command bus 22 connects to microprocessor 2 via lines 32.34.
8.30 and via line 35 to status report logic 33. Data bus 24 is line 3
6 and 38 to the processor 28.30.
状況バス26はライン40を介して状況レポート論理回
路につながる6プロセツサ28と30は割込みライン4
2を介して接続され、各プロセッサはライン46.48
を介して2ボートのビット・マップ・メモリ44につな
がる。プロセッサ28はライン54.56を介してXレ
ジスタ50とYレジスタ52に、プロセッサ30はライ
ン58.60を介してXレジスタ50とYレジスタ52
につながる。プロセッサ28はローカル・メモリ62に
、プロセッサ30はローカル・メモリ64にそれぞれ接
続される。アクティビティ・コードとコード・ストロー
ブはプロセッサ28.30から、それぞれライン37と
39を介して論理回路33へ出される。Status bus 26 connects to status report logic via line 40. Processors 28 and 30 connect to interrupt line 4.
2, each processor is connected via line 46.48
to a two-vote bit map memory 44. Processor 28 connects X register 50 and Y register 52 via lines 54.56, and processor 30 connects X register 50 and Y register 52 via line 58.60.
Leads to. Processor 28 is connected to local memory 62, and processor 30 is connected to local memory 64. The activity code and code strobe are output from processor 28.30 to logic circuit 33 via lines 37 and 39, respectively.
ビット・マップ・メモリ44はサイズが32ビツトx3
2ビツトで、各ビットはシステム・メモリ4(第1図)
にある所定ページの割振り状態を示す、説明の便宜上、
本発明では次の取決を採用する。すなわち、メモリ44
の所定ビットが“l”の場合、システム・メモリ4の関
連ページは割り振られていない、逆にメモリ44の所定
ビットが“0“の場合、システム・メモリ4の関連ペー
ジは割り振られている。The bit map memory 44 is 32 bits x 3 in size.
2 bits, each bit in system memory 4 (Figure 1)
For convenience of explanation, the allocation status of a given page in
The present invention adopts the following arrangement. That is, the memory 44
If the predetermined bit of the memory 44 is "l", the associated page of the system memory 4 is not allocated; conversely, if the predetermined bit of the memory 44 is "0", the associated page of the system memory 4 is allocated.
Xレジスタ50とYレジスタ52はそれぞれ32ビツト
長である。レジスタ50.52の機能の説明については
第1O図を参照のこと。X register 50 and Y register 52 are each 32 bits long. See Figure 1O for a description of the function of registers 50,52.
ビット・マップ44°はわかりやすいよう4ビツト×4
ビツトとし、レジスタ50°、52°も同様にそれぞれ
4ビツトの長さとした6ビツト・マツプ44゛の行“0
“の少なくとも1ビツトが1であれば、Yレジスタ52
の一〇”位置にあるビットもlである。逆にビット・マ
ップ44°の行”o”のビットが図示のとおりすべて0
であれば、Yレジスタ52゛の“0″′位置にあるビッ
トも図示のとおり0である。Yレジスタ52の行位置1
.2.3で各ビットはlである。これはビット・マップ
44°の行1.2.3の少なくとも一つのビット位置が
0であることと対応する。Xレジスタ50゛ではビット
位置0は0である。これはビット・マップ44°の列0
でビット位置がそれぞれ0となっているからである。X
レジスタ50′の列位ff1l、2.3でビットはlで
ある。これはビット・マップ44°の列l、2.3の少
なくとも一つのビット位置に1があることと対応する。The bit map 44° is 4 bits x 4 for easy understanding.
Similarly, the registers 50° and 52° are each 4 bits long, and the row “0” of the 6-bit map 44 is
If at least one bit of " is 1, the Y register 52
The bit at position 10” is also l. Conversely, the bits in row “o” of bit map 44° are all 0 as shown in the figure.
If so, the bit at the "0"' position of the Y register 52' is also 0 as shown. Row position 1 of Y register 52
.. 2.3, each bit is l. This corresponds to at least one bit position in row 1.2.3 of bit map 44° being 0. In the X register 50', bit position 0 is 0. This is column 0 of bitmap 44°
This is because the bit positions are each 0. X
The bit at column position ff1l, 2.3 of register 50' is l. This corresponds to having a 1 in at least one bit position in column 1, 2.3 of bit map 44°.
プロセッサ28.30はそれぞれ、メモリ62.64に
記憶されたプログラムを実行し、システム・メモリ4(
第1図)の未開振りページを捜す。プロセッサ28は、
詳しくは第8図とあわせて述べるが、ビット・マップ4
4を探索することにより、占有率の高いビット・マップ
の探索に最適なプログラムを実行する。プロセッサ30
は、詳しくは第9図とあわせて述べるが、Xレジスタと
Yレジスタをそれぞれを探索すること、およびビット・
マ・ンプ44のビット位置の内容を検査することにより
、占有率の低いビット・マップの探索に最適なプログラ
ムを実行する。以下、これらプログラムの詳細をまとめ
る。Each processor 28.30 executes a program stored in a memory 62.64 and a system memory 4 (
Search for unopened pages in Figure 1). The processor 28 is
The details will be explained in conjunction with Figure 8, but bit map 4
By searching for bitmaps with a high occupancy rate, the optimal program is executed. processor 30
As will be described in detail in conjunction with FIG. 9, searching the X register and Y register respectively, and
By inspecting the contents of the bit positions in map 44, a program is executed that is optimal for searching for bit maps with low occupancy. The details of these programs are summarized below.
空きページが必要なとき、CPU 2 (第1図)
は、コマンド・ラインを適当なコードにセットすること
により、ビット、マツプ・メモリ44が示すとおりのシ
ステム・メモリ内のページの割振り状態を調べ始める。When a free page is needed, CPU 2 (Figure 1)
begins examining the allocation status of pages in system memory as indicated by bit map memory 44 by setting the command line to the appropriate code.
このコマンドに対する各プロセッサの応答は、状況レポ
ート論理回路33によって符号化される。これによりC
PU 2は、状況レポート論理回路33が示すプロ
セッサ28.30のアクティビイティに基づいたサブシ
ステムの応答性を決定することができる。CPU2から
コマンド・バス22を介してライン62にくるコマンド
はラッチ・バッファ65に保持され、同時にコマンド・
バス22からのライン66上にはコマンド・ストローブ
が加えられる。これはコマンド−ラインの状態が有効で
あることを示す、以下、これらのコマンドの性質をまと
める。Each processor's response to this command is encoded by status report logic 33. This allows C
The PU 2 may determine the responsiveness of the subsystem based on the activity of the processor 28.30 as indicated by the status reporting logic 33. Commands coming from CPU 2 via command bus 22 on line 62 are held in latch buffer 65, and at the same time commands are
A command strobe is applied on line 66 from bus 22. This indicates that the status of the command line is valid.The properties of these commands are summarized below.
アクティビティ・コードとコード・ストローブはプロセ
ッサ28からライン37に与えられ、また、これと同様
の接続手段がプロセッサ30からライン39に与えられ
る。保持(ラッチ)されるコマンドとアクティビティ・
コードはそれぞれライン68と70を介してアドレス・
デコーダ72に与えられる、これに応じてデコーダ72
はライン74に状況コード選択アドレスを出してメモリ
・マトリクス76に送る。マトリクスは与えられたアド
レス信号を受け、状況コードをライン76に出して出力
バッファ88に送る。バッファ88はライン90にサブ
システム状況レポート信号を出し、ライン90で状況レ
ポートが有効なことを示す状況ストローブを出して状況
バス26に送り、CPU 2に与える。The activity code and code strobe are provided on line 37 from processor 28, and similar connections are provided on line 39 from processor 30. Commands and activities that are held (latched)
The code is connected to the address via lines 68 and 70, respectively.
is applied to decoder 72 , and accordingly decoder 72
sends the status code selection address on line 74 to memory matrix 76. The matrix receives the applied address signal and outputs a status code on line 76 to an output buffer 88. Buffer 88 provides a subsystem status report signal on line 90 and a status strobe on line 90 to indicate that the status report is valid, on status bus 26 and to CPU 2.
第4図の表は、CPU 2から状況レポート論理回路
33ヘコマンド・バス35を介して与えられる代表的な
コマンド(全部ではないが)を示す、このようなコマン
ドとして、「アクティビティなしJ (000)、初
期設定(100)、[割振り解除J (010)、[
探索J (001)の4個を示した。後で述べるよう
に、リセット・コマンドは、2つ以上のコマンド・ライ
ンな“l”にセットするコマンドであれば、(この例の
ように簡略化していれば)どのようなコマンドによって
も示すことができる。The table of FIG. 4 shows typical (but not all) commands provided from the CPU 2 to the status report logic 33 via the command bus 35. Such commands include "No Activity J (000)". , Initialization (100), [Deallocation J (010), [
Search J (001) four items are shown. As explained later, a reset command can be indicated by any command that sets "l" on two or more command lines (as simplified as in this example). Can be done.
第5図は、どのコマンドが求められるかを判断するため
サブシステムの両プロセッサが実行するプログラムの流
れ図である9判断ブロック100でコマンド・バスが0
に等しいかどうか、つまり1アクテイビテイなし」コマ
ンドを示すかどうかが判断される。答えかYESなら1
分岐して100の入力に戻り、もう−度コマントが捜さ
れる。FIG. 5 is a flow diagram of the program executed by both processors of the subsystem to determine which command is required.
, ie, indicates a 1-no-activity command. If the answer is YES then 1
Branching back to input 100, another command is searched.
答えがNOなら、プロセスは判断ブロック102へ進み
、「探索開始」コマンドが受信されているかどうかの判
断が行なわれる。。答えがYESなら、104に示すよ
うにプロセッサ28.30によって探索が開始される。If the answer is NO, the process moves to decision block 102 where a determination is made whether a "Start Search" command has been received. . If the answer is YES, a search is initiated by processor 28.30 as shown at 104.
この詳細については第8図、第9図とあわせて述べる。The details will be described in conjunction with FIGS. 8 and 9.
答えがNoなら、プロセスは判断ブロック106へ進み
、コマンドが「割振り解除開始」かどうかの判断が行わ
れる。答えがYESなら、108に示すようにベージの
割振り解除が開始される。これについては第7図とあわ
せて詳述する。答えがNOなら、プロセスは判断ブロッ
ク110へ進み、コマンドが「初期設定」かどうかの判
断が行われる。答えがYESなら、112に示すように
初期設定プロセスが開始される。これについては第6図
に詳細を示す、答えがNoなら、114に示すようにl
IJ上セツトコマンドが処理される。If the answer is no, the process moves to decision block 106 where a determination is made whether the command is "Start Deallocation." If the answer is YES, page deallocation is initiated as shown at 108. This will be explained in detail in conjunction with FIG. If the answer is no, the process moves to decision block 110 where a determination is made as to whether the command is "initialize". If the answer is YES, the initialization process begins as shown at 112. Details of this are shown in Figure 6. If the answer is no, then
The IJ top set command is processed.
プロセッサの初期設定は、「初期設定」コマンドに応じ
てプロセッサ28と30に対して開始される。初期設定
プロセス112(第5図)の流れ図は第6図に示す、初
期設定プロセスは論理ブロック116から始まり、ブロ
ック118へ進む。Processor initialization is initiated for processors 28 and 30 in response to an "Initialize" command. A flow diagram of the initialization process 112 (FIG. 5) is shown in FIG.
ここでアクティビティ・コードがセットされ[初期設定
」が指示される0次に現在のアドレスが120に示すよ
うにx=0.y=0にセットされる、この後、122に
示すようにビット・マップのビット(x、y)が1にセ
ットされる。ステップ122では、第2図のXレジスタ
50とYレジスタ52もセットされる0次に124に示
すようにXの値が一つ増す、126ではx=Xかどうか
が判断される。ここでXはビット・マップの列数である
。答えがNoならプロセスは分岐して122へ戻り、1
26での答えがYESになるまで122.124.12
6が繰り返される。プロセスは次に128へ進み、ここ
でXは0にリセットされ、yは値が一つ増える。この後
1判断ブロック130へ進み、y=Yかどうかが判断さ
れる。ここでYはビット・マップの行数である。答えが
Noならプロセスは分岐して122,124へ戻り、判
断ブロック130の答えがYESになるまで126と1
28が繰り返される。YESの場合は全ビット位置が初
期設定されていることになる。アクティビイティ・コー
ドは次に、132に示すように「初期設定完了」にセッ
トされる。Here, the activity code is set and "initialization" is instructed.The current address is x=0.0 as shown at 120. y=0 is set, after which bit (x,y) of the bit map is set to 1 as shown at 122. At step 122, the X register 50 and Y register 52 in FIG. 2 are also set to zero, and the value of X is increased by one as shown at 124. At 126, it is determined whether x=X. where X is the number of columns in the bit map. If the answer is no, the process branches back to 122 and returns to 1
122.124.12 until the answer at 26 is YES
6 is repeated. The process then proceeds to 128 where X is reset to 0 and y is incremented by one value. The process then proceeds to decision block 130, where it is determined whether y=Y. where Y is the number of rows in the bit map. If the answer is no, the process branches back to 122, 124, 126 and 1 until the answer to decision block 130 is YES.
28 is repeated. If YES, all bit positions are initialized. The activity code is then set to "initialization complete" as shown at 132.
割振り解除プロセス108(第5図)の詳細はプロセッ
サ28.30について第7図に示した。Details of deallocation process 108 (FIG. 5) are shown in FIG. 7 for processor 28.30.
ここでは、ページの状況ビットがビット、マツプの位置
(x、y)にあって、そのページの割振りが解除される
ものとする。プロセッサ28についての割振り解除プロ
セスは134から始まる。136でアクティビイティ・
フラグはrページ割振り解除」にセットされる0次に1
38でビット・マップのビット(X%y)はlにセット
される。Here, it is assumed that the status bit of the page is at position (x, y) of the bit map, and the page is to be deallocated. The deallocation process for processor 28 begins at 134 . Activity at 136
The flag is set to ``page deallocation''.
At 38 bit map bit (X%y) is set to l.
プロセスは140で完了し、アクティビイティ・フラグ
は「Pl完了」にセットされる。The process completes at 140 and the activity flag is set to "Pl Complete."
プロセッサ30についての割振り解除プロセスは142
から始まる。144でアクティビイティ・フラグはFペ
ージ割振り解除」にセットされる0次に146でXレジ
スタのビット(X)はlにセットされる。148でYレ
ジスタのビット(y)はlにセットされる。プロセスは
150で完了し、アクティビティ・フラグはrP2完了
」にセットされる。The deallocation process for processor 30 is 142
start from. At 144, the activity flag is set to "Fpage Deallocation". Then at 146, the bit (X) of the X register is set to l. At 148, bit (y) of the Y register is set to l. The process completes at 150 and the activity flag is set to ``rP2 Completed''.
1探素開始」コマンド104(第5図)によりプロセッ
サ28.30は同時に探索手順を開始し、システム・メ
モリ4(第1図)にある未開振りページを捜す、先に述
べたように、この探索手順は最適化され、ビット・マッ
プ44(第2図)の状態が変わってもすばやい探索がで
きる。ビット・マップ44の占有率は、システム・メモ
リ4内の空きページを示すメモリ状態によって決まり、
高いか低いか、もしくはその中間である。The "start search element" command 104 (FIG. 5) causes the processors 28, 30 to simultaneously begin a search procedure to search for an unopened page in the system memory 4 (FIG. 1). The search procedure is optimized to allow quick searches even as the state of bit map 44 (FIG. 2) changes. The occupancy of the bit map 44 is determined by the memory state indicating free pages in the system memory 4;
High, low, or somewhere in between.
例として、第1プロセツサ28の探索プロセッサは、簡
易な順次探索によって占有率の高いビット・マップを探
索するよう最適化される。この順次探索では、ビット・
マップ・メモリ44の連続するビットそれぞれの状態が
調べられる。第8図にプロセッサ28の探索プロセスの
詳細を示す。By way of example, the search processor of the first processor 28 is optimized to search for highly occupied bit maps by a simple sequential search. In this sequential search, bits
The state of each successive bit of map memory 44 is examined. FIG. 8 shows details of the search process of processor 28.
例として、第2プロセツサ30の探索プロセスは、x、
Yレジスタ50.52(第2図)を用いて占有率の低い
ビット・マップを探索するよう最適化される1両レジス
タはビット・マップ44のビット・マップ状態の要約形
式を保つ、要約形式では、ビット・マップ44のi番目
の行のいずれかのビットがページの使用が可能なことを
示す場合、Yレジスタ52のi番目のビットはページが
使用可能という状態を示す、同様に、j番目の列のいず
れかのビットが1なら、Xレジスタ50のj番目のビッ
トはlである。よって、第2プロセツサ30はハードウ
ェアのサポートを受けて探索を実行し、Xレジスタ50
が調べられてビット・マップのどの列がそれぞれ便用可
能かがわかり、Yレジスタ52が調べられてこれらの列
のどの位置が使用可能かがわかる。プロセッサ30の探
索プロセスは第9図に詳しく示した。As an example, the search process of the second processor 30 may include x,
Y registers 50 and 52 (Figure 2) are optimized to search for low-occupancy bit maps. , if any bit in the i-th row of bit map 44 indicates that the page is available, then the i-th bit of Y register 52 indicates that the page is available; If any bit in the column is 1, the j-th bit of the X register 50 is l. Therefore, the second processor 30 executes the search with the support of the hardware, and the X register 50
are examined to determine which columns of the bit map are each available, and Y register 52 is examined to determine which locations of these columns are available. The search process of processor 30 is shown in detail in FIG.
以下に述べる探索プロセスは、占有率が高いか低いかい
ずれかのビット・マップの探索では、探索の確率にはっ
きりした違いがでるため例として選んだものである。他
の探索手順も本発明の主旨から離れることな〈実施でき
る。The search process described below was chosen as an example because there are distinct differences in search probabilities when searching bit maps with either high or low occupancy. Other search procedures may also be implemented without departing from the spirit of the invention.
上述のように、第1プロセツサ28(第2図)は、占有
率の高いビット・マップに最適な探索手順を取る。この
ような探索手順の代表例は、ビット・マップの順次探索
について第8図とあわせて説明する。同時に第10図と
第11図を参照すれば、第8図の流れ図を杷握しやすい
。As mentioned above, the first processor 28 (FIG. 2) takes a search procedure that is optimal for highly occupied bit maps. A typical example of such a search procedure will be described in conjunction with FIG. 8 regarding sequential search of a bit map. If you refer to FIGS. 10 and 11 at the same time, it will be easier to understand the flowchart in FIG. 8.
第1O図は、16ペ一ジ分のシステム・メモリ4°のマ
ツプであり、4×4のビット・マップ44°のページと
ビットの対応がわかるようにしている。4ビツトのXレ
ジスタ50°と4ビツトのYレジスタ52°も示した。FIG. 1O is a map of 4 degrees of system memory corresponding to 16 pages, and shows the correspondence between pages and bits of a 4.times.4 bit map 44 degrees. A 4-bit X register at 50° and a 4-bit Y register at 52° are also shown.
第1図、第2図の説明では32としたのに対して、ここ
で4ビツトのサイズとしたのは、第8図、第9図に対応
するビット・マップの探索手順を説明しやすくするため
である。ビット・マップ44゛は2進値の−1”で未開
振りページを示している。ビット・マップ位置の(2,
1)、(1,2)、(2,2)、(3,2)(3,3)
は2進値の“l“であり、それぞれ4°に示した未開振
り状態のシステム・メモリのページ9,6.10.14
.15に対応する。Xレジスタ50°の位置0は′″0
”で、ビット・マップ44°の列0にあるビット位置が
すべて“0”であることを示す、Xレジスタ50°の位
置l、2.3はそれぞれ“1″であり、ビット・マップ
44°の対応する列1.2゜3のそれぞれについて少な
くとも1つの位置が“l゛であることを示す、たとえば
、列lの位置(l、2)は“l”、列2の位置(2、l
)と(2,2)は“1″1列3の位置(3,2)と(3
,3)は“l−である、Yレジスタ52゛の位置0は“
0”であり、ビット・マップ44°の列0で全ビット位
置が“0″であることを示す。While the size was set to 32 in the explanation of Figures 1 and 2, the size is set to 4 bits here to make it easier to explain the search procedure for the bit map corresponding to Figures 8 and 9. It's for a reason. Bit map 44'' indicates an unopened page with a binary value of -1''. Bit map position (2,
1), (1,2), (2,2), (3,2) (3,3)
are the binary values “l” and are pages 9, 6, 10, and 14 of unopened system memory shown at 4 degrees, respectively.
.. Corresponds to 15. Position 0 of the X register 50° is '''0
”, indicating that the bit positions in column 0 of bit map 44° are all “0”, positions l, 2.3 of X register 50° are each “1”, and bit map 44° For example, the position (l, 2) in column l is "l", the position (2, l
) and (2,2) are "1" 1 row 3 position (3,2) and (3
, 3) is "l-," and position 0 of the Y register 52 is "
0", indicating that all bit positions in column 0 of bit map 44° are "0".
Yレジスタ52゛の位Ml、2,3はそれぞれ“l“で
、ビット・マップ44°の列1.2.3にある少なくと
も1つの位置が“1”であることを示す、たとえば、行
lの位置(2、l)は“l−1行2の位置(l、2)、
(2,2)(3,21は“l”、行3の位g1(3,3
)は′″l“である。Positions Ml, 2, 3 of Y register 52' are each "l" indicating that at least one position in column 1.2.3 of bit map 44° is "1", e.g., row l The position (2, l) is “l-1 row 2 position (l, 2),
(2, 2) (3, 21 is “l”, row 3 digit g1 (3, 3
) is ``l''.
第8図は、占有率の高いビット・マップに最適なプロセ
ッサ28(第2図)によるビット・マップの順次探索を
示す、この探索は同図の152から始まり、アクティビ
イティ・コードは1探素中」にセットされる(154)
、156で、XとyはそれぞれOにセットされ、これは
ビット・マップ44゛の位置(0,0)に対応する。1
58では、ビット・マップ44′のビット(0,0)が
“l”に等しいかどうかを判断する検査が行われる。ビ
ット・マップの位置(0,0)は“0“であるから答え
はNOとなる。これは第11図のステップAに相当する
0次に160で、Xは1つ増えてx+1、よってx=1
となる。x=Xかどうかが判断される。x=4であり、
ビット・マップ44°のXのサイズである。x=1なの
でXはXと等しくなく、ステップは158に戻る。ここ
でビット(x、y)はビット(I、0)になり。FIG. 8 shows a sequential search of the bit map by the processor 28 (FIG. 2), which is optimal for bit maps with high occupancy. set to ``Medium'' (154)
, 156, X and y are each set to O, which corresponds to position (0,0) of bit map 44'. 1
At 58, a test is made to determine whether bit (0,0) of bit map 44' is equal to "l". Since the position (0,0) of the bit map is "0", the answer is NO. This is the 0th order 160, which corresponds to step A in Figure 11, and X increases by 1 to x+1, so x=1
becomes. It is determined whether x=X. x=4,
The bit map is of size X of 44 degrees. Since x=1, X is not equal to X, and the step returns to 158. Here, bit (x, y) becomes bit (I, 0).
第11図のステップBに示すとおりである。ビット(1
,0)はビット・マップ44゛かられかるとおり“0″
′である。したがって探索は160へ進み、Xは1つ増
えて2となる。162ではX(=2)はX (=4)
ト等しくないため、158に戻り、ここでビット(x、
y)はビット(2,0)となり、第11図のステップC
が示すとおりである。ビット(2,0)はビット・マッ
プ44°かられかるとおり一〇”である、したがって探
索は160へ進み、Xの値は1つ増えて3となる162
でx(=3)はX (=4)と等しくないため、158
へ戻り、ここでビット(x、y)はビット(3,0)と
なる、第11図のステップDのとおりである。ビット・
マップかられかるとおり“0″である。したがって探索
は160へ進みXは1つ増えて4となる。162におい
てX(=4)は、第11図のステップEに示すとおりX
(=4)に等しい、ここで探索は164へ進み、Xは0
にセットされ、yは値が1つ増えてy=1となる。探索
が進んで、y=yかどうかが判断される。ここでY=4
すなわちビット・マップ44゜のYサイズである。この
例でy(=1)はY(=4)に等しくないため、探索は
158へ進み、ビット・ (x、y)は、第11図のス
テップFに示すとおりビット(0,1)となる、ビット
(0、l)はビット・マップ44°に示すとおり“0”
である、したがって探索は160へ進み、Xは値が1つ
増えてx=1となる。162ではx(=1)はX (=
4)と等しくないため、158に戻り、ビット(x、y
)は第11図のステップGに示すとおりビット(1,1
)となる、ビット(1゜1)はビット・マップ44°に
示すとおり“〇−なので、160に戻り、Xは1つ増え
て2となる。162においてx(=2)はX (=4)
に等しくないため、158に戻り、ビット(x、y)は
第11図のステップHに示すとおりビット(2゜l)と
なる、ビット(2,1)はビット・マップ44°に示す
とおり“l”である、これはシステム・メモリ・マツプ
4°の未割り振りページを示す、P2すなわちプロセッ
サ30(第2図)には168に示すとおり割込がかけら
れ、探索競争に負けたことが知らされる0次に170で
、データ・ラインはxY+yにセットされ、システム・
メモリにある使用できるページの番号が指示される。こ
の例では結果は(2)・ (4)+ (1)=9である
。システム・メモリ・マツプ4°が示すこの9ページは
ビット・マップ44°の位置(2、l)に対応している
。172でアクティビイティ・コードがセットされ、シ
ステム・メモリにある使用可能なページ(9)の番号が
データ・ラインにあることが指示される。ビット・マッ
プ44°の各位置が“0”の場合、これは使用可能なペ
ージがないことを示し、探索は最終的に166へ進み、
このときy (−4) =Y (=4)である、この後
、174に示すとおり、アクティビイティ・コードは[
使用可能ページなし」にセットされる。This is as shown in step B of FIG. Bit (1
, 0) is “0” as seen from bit map 44
′. Therefore, the search proceeds to 160 and X increases by 1 to 2. In 162, X (=2) is X (=4)
Since the bits (x,
y) becomes bit (2,0), and step C in Figure 11
As shown. Bit (2,0) is 10'' as seen from the bit map 44°, so the search proceeds to 160 and the value of X increases by 1 to 3, 162
Since x (=3) is not equal to X (=4), 158
11, where bits (x, y) become bits (3, 0), as in step D of FIG. bit·
As you can see from the map, it is "0". Therefore, the search proceeds to 160 and X increases by 1 to 4. 162, X (=4) is X as shown in step E of FIG.
(=4), now the search proceeds to 164, and X is 0
The value of y is increased by one and becomes y=1. As the search progresses, it is determined whether y=y. Here Y=4
That is, the Y size of the bit map is 44 degrees. In this example, y (=1) is not equal to Y (=4), so the search proceeds to 158, where bit (x, y) is equal to bit (0, 1) as shown in step F of Figure 11. , bit (0,l) is “0” as shown in bit map 44°
Therefore, the search proceeds to 160, where X increases by one value and becomes x=1. In 162, x (=1) is
4), so it returns to 158 and bits (x, y
) is the bit (1, 1
), the bit (1°1) is "〇-" as shown in the bit map 44°, so it returns to 160, and X increases by one and becomes 2. At 162, x (=2) becomes X (=4 )
is not equal to , so we go back to 158 and bit (x, y) becomes bit (2°l) as shown in step H of Figure 11, bit (2,1) becomes “ P2, processor 30 (FIG. 2), is interrupted as shown at 168 and is informed that it has lost the search race. At 170, the data line is set to xY+y and the system
The number of available pages in memory is indicated. In this example, the result is (2).(4)+(1)=9. The nine pages indicated by system memory map 4° correspond to location (2,l) in bit map 44°. An activity code is set at 172 to indicate that the number of available page (9) in system memory is on the data line. If each position of bit map 44° is "0", this indicates that there are no pages available, and the search will eventually proceed to 166,
At this time, y (-4) = Y (=4). After this, as shown at 174, the activity code is [
Set to ``No Pages Available''.
第9図は、ハードウェアのサポートを受けた、占有率の
低いビット・マップに最適な(プロセッサ30による)
ビット・マップ探索を示す、ハードウェアによるサポー
トは第1O図に示すとおりXレジスタ50゛とYレジス
タ52°で実現される。第9図では探索は176から始
まり、アクティビイティ・コードは178に示すとおり
「探索中」にセットされる。180でビットXとyはそ
れぞれ“0”にセットされる。これは第12図のステッ
プAに対応している。182においてXレジスタのビッ
ト(0)は“0“とわかるため、探索は184へ進みX
の値は1つ増えてx=1となる。186でx(=1)は
X (=4)に等しくないため、182に戻り、Xレジ
スタのビット(1)は、その位置lが“l”であるため
′0“に等しくないことがわかる。これはビット・マッ
プ44°の列lで少なくとも1つは“1”であることを
示す、188ではYレジスタのビット(0)が′″0”
に等しいかどうかが判断される。FIG. 9 shows the best fit for low-occupancy bitmaps with hardware support (by processor 30).
Hardware support, illustrating bit map searches, is implemented in the X register 50' and Y register 52' as shown in FIG. 1O. In FIG. 9, the search begins at 176 and the activity code is set to "Searching" as shown at 178. Bits X and y are each set to "0" at 180. This corresponds to step A in FIG. At 182, the bit (0) of the X register is found to be “0”, so the search proceeds to 184 and the X
The value of increases by one and becomes x=1. At 186, x (=1) is not equal to X (=4), so we return to 182 and find that bit (1) of the X register is not equal to '0' because its position l is 'l'. .This indicates that at least one is “1” in column l of bit map 44°.In 188, bit (0) of Y register is ``“0”
It is determined whether it is equal to or not.
これは列0の全ビット位置が“0”であることを意味す
る。これはまた第12図のステップBに対応する。探索
は190へ進み、yは値が1つ増えてy=lとなる。1
92でy(=l)はY (=4)に等しくないことがわ
かり、探索は188へ戻る。This means that all bit positions in column 0 are "0". This also corresponds to step B in FIG. The search proceeds to 190, where y increases by one value and becomes y=l. 1
At 92 it is found that y (=l) is not equal to Y (=4) and the search returns to 188.
Yレジスタのビット(1)は、位置lがl”なので“0
“に等しくないことがわかる。これは列lの少なくとも
1つの位置が“1”であることを示す、探索は次に19
4へ進み、ビット・マップ44°のビット(1,1)が
′1″かどうかが判断される。これは第12図のステッ
プCに対応する。ビット・マップの位ft(1,1)は
“0”なので答λはNOとなる0次に190へ戻り、y
は1つ増えて2となる7 192でyC=2)はY(=
4)に等しくないため、探索は188に戻り、Yレジス
タのビット(2)が“0“に等しいか判断される。ビッ
ト2は−1”なので答えはNOとなり、探索は194へ
進んで、ビット(1,2)が′l”に等しいかどうか判
断される。これは第12図のステップDに対応する。ビ
ット・マップ44°のビット(l、2)は”1”であり
、システム・メモリ・マツプ4°に未割り振りページの
あることを示す、196に示すとおり、PIすなわち第
2図のプロセッサ28に割り込みがかかってPIでは探
索できなかったことが知らされる。198ではデータ・
ラインがxY+yにセットされ、(1) ・ (4)
+ (2)=6となる。これはシステム・メモリマツプ
4°の6ページが未割り振り状態であることを示す、シ
ステム・メモリ・マツプ4°の6ページは、ビット・マ
ップ44゛の位置(1,2)に対応しているのがわかる
。200ではアクティビイティ・コードがセットされ、
使用可節なページの番号がデータ・ラインにセットされ
ていることが指示される。Xレジスタ50°のビット位
置がそれぞれ′0”の場合、使用可能なページのないこ
とを示し、探索は186から202へ進み、アクティビ
イティ・コードは「使用可能ページなし」にセットされ
る。Bit (1) of the Y register is “0” because position l is “l”.
This indicates that at least one position in column l is “1”, the search is then 19
4, it is determined whether bit (1,1) of bit map 44° is '1''. This corresponds to step C in FIG. 12. Bit map position ft(1,1) is “0”, so the answer λ is NO. Next, return to 190 and y
increases by one and becomes 2 7 At 192, yC=2) is Y(=
4), the search returns to 188 to determine if bit (2) of the Y register is equal to "0". Since bit 2 is -1'', the answer is NO and the search proceeds to 194 to determine whether bit (1,2) is equal to 'l''. This corresponds to step D in FIG. Bit (l,2) of bit map 44° is "1", indicating that there is an unallocated page in system memory map 4°, as shown at 196, in the PI or processor 28 of FIG. It is informed that the PI was unable to search due to an interruption. In 198, data
The line is set to xY+y, (1) ・ (4)
+(2)=6. This indicates that page 6 of system memory map 4° is unallocated. Page 6 of system memory map 4° corresponds to position (1, 2) of bit map 44°. I understand. At 200, the activity code is set;
Indicates that the number of available pages is set in the data line. If each bit position in the X register 50° is '0', indicating that there is no page available, the search proceeds from 186 to 202 and the activity code is set to 'no page available'.
Xレジスタは“1”でYレジスタは“l”でないことが
わかると、192か6204へ戻ることでエラーが指示
され、アクティビイティ・コードはエラーを示すようセ
ットされる。If the X register is found to be "1" and the Y register is not "l", an error is indicated by a return to 192 or 6204, and the activity code is set to indicate the error.
このサブシステムの資源は、第9図に示したものと類似
のハードウェア・サポートによる探索アルゴリズムを含
め、他の探索アルゴリズムでも利用できることが当業者
には明らかであろう、そのような他の探索アルゴリズム
の1例では、各プロセッサは、一方または他方のレジス
タを予備探索に使用する。同様に、第8図の順次探索は
、ステップ156の(x、y)を、m後に割り振られた
ページの次のページ番号に等しくなるようセットするこ
とによって改良することができる。このようなハードウ
ェアのサポートを伴う例あるいはその変形は、本発明の
主旨から離れるものではない。It will be apparent to those skilled in the art that the resources of this subsystem may be utilized by other search algorithms, including those with hardware support similar to those shown in FIG. In one example algorithm, each processor uses one or the other register for preliminary searches. Similarly, the sequential search of FIG. 8 can be improved by setting (x,y) in step 156 equal to the next page number of the page allocated after m. Examples or variations thereof involving such hardware support do not depart from the spirit of the present invention.
E、効果
本発明によれば、例えば一方のプロセッサをして未割振
ページが多い場合に適したビット・マップ探索を行わせ
るとともに、他方のプロセッサをして未割振ページが少
ない場合に適したビット・マップ探索を行わせることが
可能となり、もってコンピユータ・システムのパフォー
マンスを向上させることができる。E. Effect According to the present invention, for example, one processor performs a bit map search suitable for when there are many unallocated pages, and the other processor performs a bit map search suitable for when there are few unallocated pages. - It becomes possible to perform map searches, thereby improving the performance of the computer system.
第1図は計算機システムとサブシステムのブロック図で
ある。
第2図は第1図に概要を示したサブシステムの詳細ブロ
ック図である。
第3図は第2図に概要を示した状況レポート論理回路の
詳細ブロック図である。
第4図は本発明を実施する際に使用されるコマンドを簡
略に示した説明図である。
第5図は第4図のコマンドがサブシステムによってどう
区別されるかを示す流れ図である。
第6図はプロセッサをどのように初期設定するかを示す
流れ図である。
第7図はページの割り振りをどのように解除するかを示
す流れ図である。
第8図は本発明によるビット・マップの順次探索の詳細
を示す流れ図である。
第9図は本発明によるハードウェアのサポートを受けた
ビット・マップ探索の流れ図である。
第10図は、第8図と第9図に示したビット・マップの
競合探索の流れ図を把握するのに役立つよう、システム
・メモリ、ビット・マップ、およびXレジスタ、および
Yレジスタを表したものである。
第11図は第8図に示した探索手順のステップを示す説
明図である。
第12図は第9図に示した探索手順のステップを示す説
明図である。
2・・・・CPU、4・・・・システム・メモリ、6・
・・・グローバル・バス、16・・・・サブシステム、
18・・・・ローカル・バス、20・・・・集積回路チ
ップ、28.30・・・・プロセッサ、33・・・・状
況レポート論理回路、44・・・・2ポート・ビット・
メモリ50・・・・Xレジスタ、62.64・・・・ロ
ーカル・メモリ、108・・・・割り振り解除プロセス
、l12・・・・初期設定プロセス
出願人 インターナショナル・ビジネスマシーンズ・
コーポレーションFIG. 1 is a block diagram of the computer system and subsystems. FIG. 2 is a detailed block diagram of the subsystem outlined in FIG. 1. FIG. 3 is a detailed block diagram of the status report logic circuitry outlined in FIG. 2. FIG. 4 is an explanatory diagram briefly showing commands used when implementing the present invention. FIG. 5 is a flow diagram showing how the commands of FIG. 4 are differentiated by subsystem. FIG. 6 is a flow chart showing how to initialize the processor. FIG. 7 is a flow diagram illustrating how pages are deallocated. FIG. 8 is a flowchart illustrating details of the sequential search of a bit map in accordance with the present invention. FIG. 9 is a flow diagram of a hardware supported bit map search in accordance with the present invention. Figure 10 depicts the system memory, bit map, and X and Y registers to help you understand the bit map conflict search flowchart shown in Figures 8 and 9. It is. FIG. 11 is an explanatory diagram showing the steps of the search procedure shown in FIG. 8. FIG. 12 is an explanatory diagram showing the steps of the search procedure shown in FIG. 9. 2...CPU, 4...System memory, 6...
...Global bus, 16...Subsystem,
18...Local bus, 20...Integrated circuit chip, 28.30...Processor, 33...Status report logic circuit, 44...2 port bit...
Memory 50...X register, 62.64...Local memory, 108...Deallocation process, l12...Initialization process Applicant: International Business Machines
corporation
Claims (1)
発見用装置であって、 中央処理装置、 n個のメモリ・ページを含むメモリ(nは整数)、 nビットを含み、該nビットの各々が上記メモリ中の関
連するページの割振状態を表示するビット・マップを保
持する、ビット・マップ・メモリ上記ビット・マップの
nビットを調べて上記メモリ中の未割振ページを発見す
ることを、別個の方法で、競争しながら行う一対のプロ
セッサ、及び 上記一対のプロセッサの一方が上記メモリ中の未割振ペ
ージを発見した後、上記メモリ中の該発見された未割振
ページの位置を上記中央処理装置へ伝える手段 を具備する、未割振メモリ・ページ発見用装置。Claims: An apparatus for finding unallocated memory pages in a computer system, comprising: a central processing unit; a memory comprising n memory pages (where n is an integer); comprising n bits; bit map memories, each holding a bit map indicating the allocation status of an associated page in said memory; examining n bits of said bit map to discover unallocated pages in said memory; a pair of processors competing in a separate manner, and after one of the pair of processors discovers an unallocated page in the memory, the location of the discovered unallocated page in the memory is determined by the central processor; A device for finding unallocated memory pages, comprising means for communicating to the device.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US71817488A | 1988-07-12 | 1988-07-12 | |
| US718174 | 1988-07-12 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02133840A true JPH02133840A (en) | 1990-05-23 |
| JPH0623959B2 JPH0623959B2 (en) | 1994-03-30 |
Family
ID=24885107
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15480889A Expired - Lifetime JPH0623959B2 (en) | 1988-07-12 | 1989-06-19 | Device for unallocated memory page discovery |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0623959B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008192350A (en) * | 2007-02-01 | 2008-08-21 | Asahi Denso Co Ltd | Switch device |
-
1989
- 1989-06-19 JP JP15480889A patent/JPH0623959B2/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008192350A (en) * | 2007-02-01 | 2008-08-21 | Asahi Denso Co Ltd | Switch device |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0623959B2 (en) | 1994-03-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4951193A (en) | Parallel computer with distributed shared memories and distributed task activating circuits | |
| US6470380B1 (en) | Signal processing device accessible as memory | |
| US5734817A (en) | Method for making a data base available to a user program during data base recovery | |
| US5123101A (en) | Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss | |
| US6725336B2 (en) | Dynamically allocated cache memory for a multi-processor unit | |
| US5230045A (en) | Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus | |
| US7844802B2 (en) | Instructions for ordering execution in pipelined processes | |
| US5590379A (en) | Method and apparatus for cache memory access with separate fetch and store queues | |
| US5136500A (en) | Multiple shared memory arrangement wherein multiple processors individually and concurrently access any one of plural memories | |
| JP2776132B2 (en) | Data processing system with static and dynamic masking of information in operands | |
| US20230400985A1 (en) | Pim computing system and pim computation offloading method thereof | |
| US5898882A (en) | Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage | |
| GB2068155A (en) | Cache memory system | |
| JPH0529939B2 (en) | ||
| US6571316B1 (en) | Cache memory array for multiple address spaces | |
| US6745292B1 (en) | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors | |
| US5339397A (en) | Hardware primary directory lock | |
| KR102658600B1 (en) | Apparatus and method for accessing metadata when debugging a device | |
| JPH0371227A (en) | Sorting method | |
| US4992935A (en) | Bit map search by competitive processors | |
| JPS63132355A (en) | Memory controller | |
| US5832533A (en) | Method and system for addressing registers in a data processing unit in an indexed addressing mode | |
| JPH0727492B2 (en) | Buffer storage | |
| JPH02133840A (en) | Apparatus for discovering non-allotted memory page | |
| JP2000227872A (en) | Dynamic slot allocation and tracking method for request of plural memories |