JPS59502044A - Detection of sequential data streams - Google Patents

Detection of sequential data streams

Info

Publication number
JPS59502044A
JPS59502044A JP50006984A JP50006984A JPS59502044A JP S59502044 A JPS59502044 A JP S59502044A JP 50006984 A JP50006984 A JP 50006984A JP 50006984 A JP50006984 A JP 50006984A JP S59502044 A JPS59502044 A JP S59502044A
Authority
JP
Japan
Prior art keywords
data
host computer
cache
stored
disk
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
JP50006984A
Other languages
Japanese (ja)
Inventor
ドツド・ピ−・デ−ビツド
ブリツケンスタツフ・ロナルド・エル
コウルソン・リチヤ−ド・エル
モレノ・ロバ−ト・ジエイ
トレ−ド・ブライアン・イ−
Original Assignee
ストレ−ジ・テクノロジ−・コ−ポレ−ション
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 ストレ−ジ・テクノロジ−・コ−ポレ−ション filed Critical ストレ−ジ・テクノロジ−・コ−ポレ−ション
Priority claimed from PCT/US1983/001772 external-priority patent/WO1984002014A1/en
Publication of JPS59502044A publication Critical patent/JPS59502044A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。 (57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 逐次データ流の検出 関連出願の相互参照 この出願は、1981年11月27日に申請された審査中の通し番号第325, 350号の一部継続出願である。[Detailed description of the invention] Detection of sequential data streams Cross-reference of related applications This application is under examination serial number 325 filed on November 27, 1981. This is a continuation in part of No. 350.

発明の分野 この発明は、データの記憶と管理の分野に関する。特にこの発明は、ホストコン ピュータによって長期間の記憶装置から請求された特定のデータセットが一連の そうしたセットの一部であるかどうかを検出し、この決定に応じ適切な動作を行 う方法に関するものである。field of invention This invention relates to the field of data storage and management. In particular, this invention A particular data set retrieved from long-term storage by a computer is Detect if it is part of such a set and take appropriate action based on this determination. It is about how to do it.

発明の背景 近年のデータ処理システムは一般に、演算及び論理装置と処理中のデータ及び命 令を含む主メモリ装置から成るホストコンピュータ、別の時間に用いるデータ及 び処理命令を記憶するだめの長期間用記憶手段を備えている。IBM社の機器を 用いたシステムでは、長期間の記憶手段が1′チヤネル″によってホストコンピ ュータへ接続されている。ホストコンピュータが特定のデータセント又はレコー ドを必要とすると、同コンピュータがチャネルを介し長期間記憶手段へ指令を発 し、次いでその記憶手段が磁気ディスクやテープのメモリ媒体等記憶されている 任意の媒体上の該当データを突き当め、そこからチャネルを介しホストコンピュ ータの主メモリ内へ読込む。長期間記憶手段からデータを検索するのに必要なか なシ長い時間が、ホストコンピュータの処理量又は利用に制限を課している。特 にデータセントの最初の記憶場所、例えばデ1スク上に記憶された最初の記憶場 所の読取/書込ヘッドに対する物理的並置は、無駄な時間を要する。一方データ の実際の読取シは、比較的迅速に進行する。ホストコンピュータの使用における 上記ロスを最小限化するため、ホストコンピュータは一般に、一連のデータ請求 を発し、長期間用のディスク又はテープメモリからデータが検索されている間に 別のタスクを行う。しかし、こうした“キューイング″が行なわれても、データ へのアクセスに必要な時間によるホストコンピュータでのがなシな計算時聞損と 、キューイングプロセスに関連したソフトウェアのオーバーヘッドは避けられな い。この点は当該分野で尚未解決な問題として残っておシ、本発明の目的はキュ ーイング時間を減じてホストコンピュータの処理量を向上させることにある。Background of the invention Modern data processing systems typically include arithmetic and logic units and the data and instructions being processed. A host computer consists of a main memory device containing instructions, data and and long-term storage means for storing processing instructions. IBM equipment In the system used, long-term storage is connected to the host computer by 1' channel. connected to a computer. If the host computer has a specific data center or record When the computer requires a code, it sends a command to long-term storage via a channel. Then, the storage means is a memory medium such as a magnetic disk or tape. Locate the relevant data on any medium and send it from there to the host computer via a channel. into the main memory of the data. Is it necessary to retrieve data from long-term storage? The long time limits the throughput or utilization of the host computer. Special the first storage location of the data center, e.g. the first storage location stored on the disk. Physical juxtaposition of read/write heads in place is time consuming. data on the other hand The actual reading of the file proceeds relatively quickly. In the use of host computers To minimize the above losses, the host computer generally uses a series of data requests. while data is being retrieved from long-term disk or tape memory. Do another task. However, even with this “queuing”, data Due to the time required to access the , the software overhead associated with the queuing process is unavoidable. stomach. This point remains an unresolved problem in the field, and the purpose of the present invention is to The objective is to reduce the processing time of the host computer and improve the throughput of the host computer.

従来、ホストコンピュータ(以上ポストと略称)から発せられた” S E E  K”指令の対象である全データを取巻いて物理的に記憶されたデータを、ディ スクメモリからアクセス速度がはるかに速い固体(SS)メモリへ6移す(st agirLg) ”ことによシ、キューイング時間を減じることが提案されてい る。固体メモリはホストに対して外部、っまシボストからのチャネルの外側に位 置する。従って、ホストが次のREAD”指令ヲ発すると、このとき捜すべきデ ータはすでに高速の固体メモリ中に含まれておシ、はy瞬間的にホストへ供給さ れ得る。しかし、ホストによってアクセスされるレコードを取巻く全てのデータ セットが上記のごとくホスト外部の固体メモリ内へ読込まれると、キューイング の問題は完全に解消されず、データがキャッシュ(cache)メモリへ読込ま れる間に消費されるチャネルとディレクタ(direct oγ)の使用時間が 、データセットをディスク上で位置指定しヘッドに並置するのに必要な実際の待 ち(1atency)時間に追加される。Conventionally, "SE" emitted from a host computer (abbreviated as post) Physically stored data surrounding all the data that is subject to the K” command is 6. Transfer from disk memory to solid-state (SS) memory, which has much faster access speeds (st agirLg)” In particular, it has been proposed to reduce the queuing time. Ru. Solid-state memory is external to the host, located outside the channel from the server. place Therefore, when the host issues the next "READ" command, the data to be searched at this time is The data is already contained in high-speed solid-state memory and is instantaneously provided to the host. It can be done. However, all data surrounding the record accessed by the host Once the set is read into solid state memory external to the host as described above, the queuing The problem is not completely resolved and the data is read into cache memory. Channel and director (direct oγ) usage time consumed while , the actual wait required to locate the data set on disk and collocate it to the head. It is added at 1 latency time.

更に、ホストコンピュータでデータをアクセスするには一般に2つの方法がある 。つまシ、所定データセット内の全データがホストによって一時に請求されるか 、又はホストが必要なデータセットの各部について個別の請求を発する。最初の 場合、システムへのキャッシュメモリの追加は性能の向上をもたらさず、各入出 力請求を満たすのに1つの待ち時間が必要となる。Additionally, there are generally two ways to access data on a host computer. . Is all data in a given data set claimed by the host at once? , or the host issues separate requests for each portion of the dataset required. the first If adding cache memory to the system does not improve performance, each input/output One waiting period is required to satisfy the power request.

2番目の場合、個々のホスト命令はテープやディスクドライブ等物理レコードの アクセス継続部分へ一般に向けられる一連の命令の一部であり、データセットの 各部に応答するのに待ち時間がかかる。この点から、データセットの継続部分が 高速の固体キャッシュメモリへ読込まれれば、合計待ち時間は1回のアクセス動 作に要する分にまで低減し得る。従って、データセットの別の部分に対するその 後の請求は、2回目及び継続した物理的アクセス動作を含まずに、固体メモリか ら直接溝たすことができる。つまシ、以後の” S E E K ”指令を予期 してデータがキャッシュされていれば、それをすぐに使える。このため、ホスト コンピュータでなされたデータ請求がそうした一連の請求の一部であるかどうか を決める手、段を設けるのが望ましい。In the second case, individual host instructions are stored on physical records such as tape or disk drives. It is part of a sequence of instructions that are generally directed to the access continuation part of the data set. It takes a long time to respond to each part. From this point, the continuation part of the dataset is If read into a fast solid-state cache memory, the total latency is reduced to one access operation. It can be reduced to the amount required for production. Therefore, its The latter claim does not include the second and subsequent physical access operations, and It can be directly grooved. Tamashi, anticipating the subsequent “SEEK” command. If the data is cached, you can use it immediately. For this reason, the host whether the computer-made data request is part of a series of such requests; It is desirable to have a means or step for deciding.

勿論、請求された特定のデータセットがそうした一連のセットの一部であるかど うかを示す信号をホストコンピュータから発することも不可能でなく、現在発表 されている一部のシステム(はその特徴を有する。こうすれば勿論、長期間のデ ータ記憶手段からキャッシュメモリへ以後のレコードを6移す”かどうかに関す る決定が簡単化される。しかし、(IBM社のほとんどのコンピュータ製品等) 商業上重要な既存の多くの計算システムは、上記の信号を発しない。又、上記信 号を発するべくこれらのコンピュータ、特にオ投し−ティンダシステム、を変更 することは、そのような変更を正しく行うのが困難で、コンピュータのユーザに とって一般的でないため望ましくない。Of course, whether the particular data set requested is part of such a set It is not impossible for the host computer to emit a signal indicating whether the Some systems that have been whether to move subsequent records from the data storage means to the cache memory decision making is simplified. However, (most of IBM's computer products, etc.) Many existing computing systems of commercial importance do not emit the above signals. Also, the above belief Modify these computers, especially the O-Tinda system, to issue the Making such changes can be difficult to make correctly and can be difficult for computer users to do. It is not desirable because it is not very common.

従って、効率的なキャッシングに従わないデータは従来と同じ方法で処理する一 方、ホストコンピュータから成された特定のデータ請求が同じデータセットに向 けられる一連の請求の一部であるかどうか(そうならデータセットの以後の部分 がキャッシュされる)を決める改良された手段と方法を用い、データのキャッシ ング機能をもつと効率化することが望ましい。Therefore, data that is not subject to efficient caching can be handled in the same way as before. However, certain data requests made from the host computer are directed to the same data set. whether it is part of a series of claims that are covered (if so, subsequent parts of the dataset). cached data) using improved means and methods for determining It is desirable to improve efficiency by having a management function.

本発明の更なる目的は、データセットの逐次部分をホストコンピュータシステム の処理量が向上するように、ホストへの変更を必要とせずキャッシュできるシス テムを提供することにある。A further object of the invention is to transfer sequential portions of the data set to a host computer system. A system that allows caching without requiring changes to the host to improve throughput. The aim is to provide

本発明の更に別の目的は、捜すべきデータレコードがそうした一連のレコードの 一部であるかどうかを検出するだめの手段及び方法で、記憶検出器によって処理 される゛チャネルプログラム内に含まれた情報を用いることで、本発明の方法の 実施を簡単且つ比較的安価に行えるようにする手段及び方法を提供することにる る。Yet another object of the invention is that the data record to be searched is one of a series of such records. Means and methods for detecting whether or not a part is processed by a memory detector The method of the present invention can be implemented by using the information contained in the channel program that is The purpose is to provide means and methods that make implementation simple and relatively inexpensive. Ru.

本発明の更なる目的は、特定のデータセットに割当てられるキヤノンユ内の領域 がそこから自動的に指定解除(デアロケ−5 ト)でき、再使用のため記憶スに一部をフリーとするような方法を提供すること にある。A further object of the invention is to provide an area within a canon that is allocated to a particular data set. is automatically unspecified from there (Deallocation-5 (g)) and provide a method for freeing a portion of the storage space for reuse. It is in.

発明の概要 本発明は、長期間のデータ記憶手段からホストコンピュータへ読取られる各デー タレコードを調べることによって、当分野の要求及び本発明の上記目的を満たす ものである。負の標識、つまシ捜すべきレコードが長期間記憶手段に一緒に格納 された一連のレコードゝの1つでないことを示す符号、を発するのに、(通常の )チャネルプログラムに含まれた制御信号が使われる。Summary of the invention The present invention provides a method for each data read from a long-term data storage means to a host computer. By examining the data record, the needs in the art and the above objectives of the present invention are met. It is something. Negative indicators indicate that the records to be searched for are stored together in long-term storage. (the usual ) control signals included in the channel program are used.

こうした指標が長期間記憶手段からホストコンピュータへの所定レコードゝの検 索中に見い出されないと、継続するレコード8がキャッシュされる。ホストコン ピュータからの各継続する”読取”請求を受取ると、その請求がレコードのキャ ッシュされたトラックを保持しているダイレフトリと比較され、可能であればホ ストの請求はキャッシュから満たされる。特に好ましい実施例では、所定のディ スクトラック上の最初のレコード8がディスク記憶装置からホストへ読取られ且 つ最初のレコードが所定トラック上の一連のレコードの一部でないことを示す標 識が検出されないと、その所定トラック上のデータがキャッシュされる。次いで 残シのトラックにあるデータがホストコンピュータによって要求されると、再び ホストに干渉することなく、所定トラックに絖く次のトランクがキャッシュされ る。例えば、すぐ前に満たされたのと等しいサイズの次のデータ請求を満たすの に不充分な未読取バイトしかないときは、トラックを°゛前移動(presta ged)”することもできる。These indicators can be used to retrieve a given record from long-term storage to a host computer. If not found during the search, the continuing record 8 is cached. host con As each successive “read” request from a computer is received, the request is cached for the record. is compared to the directory holding the edited track and, if possible, the home directory. Strike claims are met from cash. In a particularly preferred embodiment, the predetermined The first record 8 on the disk track is read from disk storage to the host and An indicator that the first record is not part of a set of records on a given track. If no identification is detected, the data on that given track is cached. then When the data in the remaining tracks is requested by the host computer, it will be re-entered. The next trunk for a given track is cached without interfering with the host. Ru. For example, to satisfy the next data request of equal size to the one filled immediately before. If there are insufficient unread bytes, move the track forward (presta). ged)” can also be done.

更に好ましい実施例では、コンピュータシステムの設置時又はその後の時期に、 幾つかのディスクパック、つまり磁気記憶ディスクの物理アセンブリ、が実質上 ランダムなデータセットを含むようにされる一方、その他のディスクパックは主 に逐次なデータセットを格納するようにされる。これらディスクパックの1つに 格納されたデータをホストが請求すると、更なるデータのキャッシングが望まし いかどうか決めるのに、異った制御シーケンスを辿れる。例えば、アクセス請求 が実質上ランダムと見なされるディスクパックに対し成されると、比較的少量の データがキャッシュへ移され、これは請求がシーケンスの1つである場合に有利 である。又請求が主に逐次なレコードを含むと見なされるディスクパックに対し 成されると、キャッシングが望ましいとの決定に応じかなシ多量のデータをキャ ッシュ本発明は、添付の図面を参照すればいっそう明解に理解されるであろう: 第1図は本発明がその一部を形成するシステムの概略図を表わす; 第2〜5.8及び9図は本発明による決定プロセスのフローチャートを表わす; 及び 第6.7図は本発明による性能の改善をグラフ的に示す。In a further preferred embodiment, at the time of installation of the computer system or at a later time, Several disk packs, physical assemblies of magnetic storage disks, are The other disk packs are mainly is configured to store sequential datasets. One of these disc packs Once the stored data is claimed by the host, caching of further data becomes desirable. Different control sequences can be followed to decide whether to For example, access request is done on a disk pack that is considered virtually random, a relatively small amount of Data is moved to cache, which is advantageous if the request is one of a sequence It is. and for disc packs where the claim is deemed to contain primarily sequential records. Once the data is cached, it may be necessary to cache large amounts of data depending on the decision that caching is desirable. The present invention will be more clearly understood with reference to the accompanying drawings: FIG. 1 represents a schematic diagram of the system of which the present invention forms part; Figures 2-5.8 and 9 represent flowcharts of the decision process according to the invention; as well as Figure 6.7 graphically illustrates the performance improvement according to the present invention.

好適実施例の説明 本発明による逐次データ流の検出方法は、特に198.1年11月27日に申請 された審査中の出願通し番号筒325,346号の課題であるキヤノンユメモリ バツフアドサブシステム内で動作するように設計された。上記審査中出願の課題 であシ且つ本発明がその一部を形成するキャッシュメモリバッファドサブシステ ムの主な目的は、ホストコンピュータが実際にデータを要求する前に、遅いアク セスの長期間磁気記憶装置から速いアクセスの一般にンリッドステートのメモリ へデータを読込むととによって、ホストから与えられる” S E E K ” 命令を実施するように必要な待ち時間を節約することにある。これにより、その 後キャッシュ記録が要求されたとき、物理遅延を必要としない。逐次アクセスさ れる記録シーケンスの実際に一部であるレコードだけが固体メモリへ移される、 つまシ゛キャッシュ″されることが望ましいのは明らかである。一方、データの キャッシングは、捜すべきはy全てのレコードが実際に、例えば90%のオーダ ーで逐次的な場合にのみ有益な効果をもたらす。DESCRIPTION OF THE PREFERRED EMBODIMENT The method for detecting a sequential data stream according to the invention was filed in particular on November 27, 198.1. Canon Memory, which is the subject of application serial number 325,346, which is currently under examination. Designed to work within the buffer subsystem. Issues of the above-mentioned application under examination a cache memory buffered subsystem of which the present invention forms a part; The main purpose of the system is to slow down slow access before the host computer actually requests the data. Generally unlid-state memory for fast access from long-term magnetic storage “S E E K” given by the host by reading data to The purpose is to save the waiting time required to carry out orders. This allows that No physical delay is required when a post-cache record is requested. sequential access Only those records that are actually part of the recorded sequence are moved to solid-state memory; It is clear that it is desirable for data to be cached. Caching should be looking to ensure that all records are actually on the order of, say 90%. have a beneficial effect only sequentially.

これは、一般の市販システムに当てはまらない。従って、レコードが一連のレコ ードの一部であるかを検出し、それらだけをキャッシュする何らかの手段を設け る必要がある。本発明は、その決定を行う手段を提供する。This is not the case with typical commercial systems. Therefore, a record is a set of records. have some way of detecting which files are part of the code and caching only those It is necessary to The present invention provides the means to make that determination.

前記したように、本発明の好ましい実施例では、所定の請求が一連の請求の一部 であることかはつきシ決定されなくても、一部のデータが移される。シミュレー ションテストの結果は、統計的ベースで、上記の方法が性能の改善をもたらすこ とを示なIBM、t−”−ティングシステム下で動作するIBM370シリーズ 機器、とプラグ互換可能な既存メモリシステムへの付属物として動作するキャッ シュバッファドサブシステム内で動作するように設計されている。前記審査中出 願のシステムの概略レイアウトを第1図に示す。図中、ホストコンピュータ10 が、12で概略的に示したチャネルインターフェイスを介して指令とデータを送 り又そこからデータを受取る。アクセスすべきデータが14等のディスクドライ ブ上に格納される場合、アクセス指令はそれを制御モジュール18の制御に適し た形へ変換する記憶ディレクタ16へ送られ、制御モジュール18がディスクド ライブ14の実際の移動、例えばディスク等に対する読取/書込ヘットゝの半径 方向の移動を制御する。以上述べたシステムは従来通シである。前記審査中出願 の発明で加えられたのは、固体キャッシュメモリ22とどのデータがディスク1 4からキャッシュメモリ22へ移されるべきデータを決定するキャッシュ管理器 24とから成シ、20で概略的に示したキャッシュメモリサブシステムである。As noted above, in a preferred embodiment of the invention, a given claim is part of a series of claims. Some data will be transferred even if it is not determined whether it is the case or not. simulation The results of the application tests demonstrate, on a statistical basis, that the above method results in improved performance. The IBM 370 series operating under the IBM t-”-ting system The cap operates as an adjunct to an existing memory system that is plug-compatible with the device. Designed to work within the Schbuffered subsystem. The said examination creampie A schematic layout of the proposed system is shown in FIG. In the figure, a host computer 10 transmits commands and data via a channel interface schematically shown at 12. and receive data from it. The data to be accessed is a 14th grade disk drive. If the access command is stored on the control module 18, the access command and the control module 18 converts the data into a disk drive. The actual movement of the live 14, e.g. the radius of the read/write head relative to the disk, etc. Control directional movement. The system described above is conventional. The above-mentioned application under examination What was added with the invention of a cache manager that determines data to be moved from 4 to cache memory 22; 24, and a cache memory subsystem shown schematically at 20.

つまシ、以下詳述する本発明の方法を実施するのはキャッシュ管理器24である 。It is the cache manager 24 that implements the method of the present invention, which will be described in detail below. .

ホストコンピュータ10がディスク記憶装置14からデータを得ようと捜す場合 、同コンピュータがいわゆる゛チャネルプログラム″′の処理で、記憶ディレク タへ作用するはっきり定義された” S E E K ”指令をチャネル12を 介して出力し、制御モジュール18で挿すべきデータへアクセスする。次いで、 捜されたデータが制御モジュール18と記憶ディレクタ18を通り、チャネルイ ンターフェイス12を介してホスト10へ送られる。データの実際の読み書きは 、チャネルインターフエイス9 自体と同様、「制御装置へのI10インター7エイスチヤネル」IBM発行GA 22−6974−4という題の書類でIBMによって定義された、5EEK指令 を含むチャネルプログラムの下で行われる。、当業者には明らかなように、この はっきシ定義されたプロトコールはチャネルプログラムに、更に他のデータ読み 書き用の追加命令を含ませるのを可能とする。例えば、所定のデータセットがデ ィスク上の幾つか異ったロケーション、例えば幾つか異った゛′シリンダ″に格 納され、それらロケーションがディスクタンクの中心軸から異る距離だけ離間し たデータ記憶領域であるなら、チャネルプログラム中に’CYLINDESEE K”が入れられる。そして、制御モジュールと記憶ディレクタが、ヘッドを捜す べき新たなシリンダへアクセスさせ、読取動作を継続せしめる。同様の命令がH EAD 5EEK指令を含む。つまシ、従来技術で一般的なように、記憶ディレ クタはチャネルプログラム中で出会うそうした追加の゛′埋込み”指令に従う。When the host computer 10 seeks to obtain data from the disk storage device 14 , the same computer uses the so-called ``channel program'' to access the storage directory. channel 12 with clearly defined “SEEEK” commands that act on the The control module 18 accesses the data to be outputted and inserted through the control module 18. Then, The retrieved data passes through the control module 18 and storage director 18 to the channel input. is sent to the host 10 via the interface 12. The actual reading and writing of data is , channel interface 9 as well as "I10 Inter7 Eighth Channel to Control Unit" published by IBM GA 5EEK Directive, defined by IBM in the document entitled 22-6974-4. is carried out under channel programs including. , as is clear to those skilled in the art, this A clearly defined protocol can be used for channel programs as well as for other data readings. Allows for the inclusion of additional instructions for writing. For example, if a given dataset is be stored in several different locations on the disk, e.g. in several different ``cylinders''. the locations are spaced different distances from the center axis of the disk tank. 'CYLINDESEE' during the channel program. K” is entered.Then the control module and storage director look for the head. The new cylinder to be accessed is accessed and the reading operation is continued. A similar command is H Includes EAD 5EEK directive. storage direc- tor, as is common in the prior art. The vector complies with any such additional "embedding" directives it encounters in the channel program.

本発明のシステムはホストに対し非常に望ましく6ソフトウエア上透明″且つ゛ プラグ互換可能″で、ホストの変更を必要としないため、それらの命令に従い続 ける。一方≧ヤソジュ管理器は、チャネルプログラムの実行中ディレクタから受 取った情報を調べ、ホストから命令された実際の動作の完了後追加ノデータがデ ィスクからキャッシュへ移されるべきかどうかを決めるだめの手段を有する。す なわち、キャッシュ管理器24が記憶ディレクタを通過するチャネル指令を調べ 、上記した”CYLINDER5EEK”、”HEAD 5EEK”等の命令を 確かめる。データが逐次の性質でないm−この点は後で更に詳しく見るm−こと を示す指示を受取らないと、所定トランク上に格納された全データ(つまシディ スクの一面上におけるデータ記憶領域の完全1回転長に対応)のキャッシュへの 読取りを継続する。次いでホストが残シのトランクを要求すると、キャッシュ管 理器がこれを検知し、ホストに干渉することなく次のトラックを同様にキャッシ ュへ移し、以下これが繰返される。、尚、こ〜で“次のトラック”とは同一トラ ック面の最後に物理的に隣接していなくともよい。ディスクシステムの構成に応 じ、次のトラック″は通常シーク及び待ち両遅延時間を節約するためディスクス タック中最後のものの上又は下のトランクを指すが、全く異ったディスク面に位 置してもよい。The system of the present invention is highly desirable and 6 software transparent to the host. Plug-compatible” and does not require host changes, so you can continue to follow those instructions. Let's go. On the other hand, the ≧Yasoju manager receives information from the director during channel program execution. The captured information is examined and additional data is downloaded after the actual operation commanded by the host is completed. has a means of determining whether it should be moved from disk to cache. vinegar That is, the cache manager 24 examines the channel commands passing through the storage director. , commands such as “CYLINDER5EEK” and “HEAD 5EEK” mentioned above. confirm. The data is not sequential in nature - we will see this point in more detail later If no instruction is received indicating that all data stored on a given trunk (corresponding to the length of one complete rotation of the data storage area on one side of the disk) Continue reading. When the host then requests the remaining trunk, the cache management The controller detects this and caches the next track in the same way without interfering with the host. This process is then repeated. , by the way, the "next track" is the same track. It does not have to be physically adjacent to the end of the dock surface. Depending on the configuration of your disk system. Similarly, the next track is usually stored on the disk to save both seek and wait delay time. Refers to the trunk above or below the last one in the tack, but located on a completely different disc surface. You may place

従って、キャッシュ管理器が読取チャネルプログラムの全体を通じチャネル指令 を調べる一方、次のトラックが移されるべきかどうかに関する実際の決定は請求 の完了時、つまシ通常の°′チャネルプログラム”の終了時に成される。このた め本発明は、ホストとは独立に、キャッシュ管理器24によって成される追加の 決定に関連している。すなわち、記憶ディレクタ16がキャッシュ管理器24へ 、続くトラックを移すのが望ましいかどうかに関する決定をキャッシュ管理器2 4が行うのを可能とする一定の情報又は′°統計″を報告する。現時点で好まし い実施例において、これらの統計は以下の各項を含む:1、トランク上の最初の レコードが処理されたレコードゝ中にあったか? 2、トラック上の最後のレコードが処理されたレコード中にあったか? 3゜ ” End of File ”レコードゝが処理されたレコード中にあ ったか? 4、チャネルプログラムが、キャッシュに対して又はディスク記憶装置へ直接い ずれで処理されたか?5 キャッシュ又はディスクの読取エラーに遭遇したか? 6 チャネルプログラム中で埋込みヘッド又はシリンダシーク指令に遭遇したか ? 7、 チャネルプログラム中、書込指令が生じたか?8、チャネルプログラム中 、どれ位多くのレコードがトラックで処理されたか?及び 9、 どれ位長くレコード8が処理されたか?上記したように、チャネルプログ ラムの実行後に移し変えを成すかどうかに関する決定には基本的に2種類ある。Therefore, the cache manager is responsible for channel commands throughout the read channel program. while the actual decision as to whether the next truck should be moved is This is done at the end of the normal channel program. Therefore, the present invention provides additional information that is performed by the cache manager 24 independently of the host. related to decisions. That is, the storage director 16 sends information to the cache manager 24. , the cache manager 2 makes a decision as to whether it is desirable to move the following track. 4. Report certain information or '°statistics' that allows In a preferred embodiment, these statistics include the following terms: 1. The first Was the record among the records processed? 2. Was the last record on the track among the records processed? 3゜    End of File ゜record is in the processed record. Did you? 4. The channel program accesses the cache or directly to disk storage. Was it processed out of sync? 5. Did you encounter a cache or disk read error? 6. Did you encounter an embedded head or cylinder seek command in the channel program? ? 7. Did a write command occur during the channel program? 8.Channel program in progress , how many records were processed on the track? as well as 9. How long was record 8 processed? As mentioned above, the channel program There are basically two types of decisions regarding whether or not to make a transfer after running a ram.

第1に、チャネルプログラムが記憶ディレクタからディスクドライブへ直接処理 される場合、つま9非キヤツシユ記録が読取られた場合、残りのトラックがキャ ッシュへ移されるべきかどうかの問いが生ずる。チャネルプログラムがキャッシ ュへ処理された場合、つまりチャネルプログラムで捜すべきデータがキャツンユ 内で実際に見い出された場合、第2の問いが生ずる。この場合の問いとは、次の ディスクトラック全体をキャッシュへ″前移動(presta3e) ”するの が望ましいかどうかである。上記統計のうち次のものは、移動及び前移動の両方 についてデータをキャノシュ不能とする:エラー、ホワイト指令又は”Eyl、 d、ofF”le ”レコード。これらは全て、ディスクトランク上の次のレコ ードゝが読取られているのと同じデータセットの必ずしも一部でないこと、又は システムの一部が誤動していることを示すので、キャッシングが望ましいことの 反対指示である。First, the channel program processes directly from the storage director to the disk drive. If a non-cached record is read, the remaining tracks are cached. The question arises whether it should be transferred to a school. Channel programs are cached If the data to be searched by the channel program is If actually found within, a second question arises. In this case, the question is: Move the entire disk track to cache (presta3e) The question is whether or not it is desirable. Of the above statistics, the following are for both movement and forward movement. Make data uncanochable for: errors, white directives, or "Eyl," d, ofF"le" record. All of these are the next records on the disk trunk. the code is not necessarily part of the same data set that is being read, or Caching is desirable because it indicates that some part of the system is malfunctioning. This is a counterindication.

埋込シーク指令も統計の一部と見なされるが、これらは発明の実施例に応じ幾分 異って扱われる。先に簡単に触れたように。Embedded seek commands are also considered part of the statistics, but these vary somewhat depending on the implementation of the invention. treated differently. As briefly mentioned earlier.

現時点で好ましい本発明の好ましい実施例では、一定の各ディスクドライブが主 に逐次なデータセット又は主にランダムなデータセットを含むように決められる 。いずれの場合にも、ある程度キャッシングが改善される。例えばランダムの場 合、ホストは一時に所定データセット内の全データを必ずしも要求しなくてよい ため、ディスクパックへREAD指令が向けられたとき、制限されたキャッシン グを行うのに望ましい。チャネルプログラムの処理中に°’CYLINDER5 EEK”指令に出会うと、逐次データセットでも恐らくディスクパック上の複数 シリンダにわたって延びることはないため、キャッシングが望ましいことを反対 表示する。しかし、チャネルプログラムで捜すべき次のレコードが前回に読取ら れたのと同じシリンダ内にあることを示す’HEAD 5EEK ”は、ランダ ムなデータセットにおいてもキャッシングが望ましいことの反対指示とは見なさ れない。In the presently preferred embodiment of the invention, each disk drive is determined to contain sequential or primarily random data sets. . In either case, caching is improved to some extent. For example, a random place In some cases, the host does not necessarily need to request all the data in a given data set at once. Therefore, when a READ command is directed to the disk pack, the restricted caching desirable for conducting °’CYLINDER5 during channel program processing EEK” directive, even sequential datasets will probably have multiple files on the disk pack. does not extend across the cylinder, which makes caching undesirable indicate. However, the next record to look for in the channel program was read last time. 'HEAD 5EEK' indicates that it is in the same cylinder as the lander. This should not be considered a counterindication that caching is desirable even for large datasets. Not possible.

ディスク・ξツクが逐次データを含むらしいと見なされるとき、HEAD 5E EK及びCYLINDER5EEK両指令は異って扱われる。逐次データの場合 、以後のデータセントが同一シリンダで処理されないという保証がないため、H EAD 5EEK とCYLINDER5EEK は共にキャッシングを反対表 示する。When the disk ξ is considered to contain sequential data, HEAD 5E Both the EK and CYLINDER5EEK commands are treated differently. For sequential data , since there is no guarantee that subsequent data cents will not be processed in the same cylinder, H Both EAD 5EEK and CYLINDER 5EEK have opposite caching Show.

ランダムなディスクパンクの場合、キャッシングは実質上逐次性と関係なく行わ れるため、HEAD 5EEK はキャッシングを除外しない。キャッシュされ るデータ量は、直接的な利益をもたらさない不要なキャッシングのインノξクト を最小限とするように、わざと小さく保たれる。In the case of random disk punctures, caching is done virtually without regard to sequentiality. HEAD 5EEK does not exclude caching. cached The amount of data that is intentionally kept small to minimize the

第2図は、各読取動作の完了時っまシチャネルプログラムの完了時28、主に逐 次データセントを含むと見なされるディスクパックに関して行われる決定プロセ スを示す。ディレクタによって保持された統計について、統計のいずれがレコー ドの移動を不能にするかどうかを決定する検査がまずブロック3oで示すように 行われ、と又では前掲統計のうち°′非移動”指示である第3及び5〜7項のい ずれかの存在が決定される。それらの指示があると、データは32で示すように 移動されない。そうした指示力゛ないと、前回のアクセスがディスクからホスト へ直接酸されたものかどうか又は動作がキャッシュからホストへ成されたのかど うかという次の問いが、決定ブロック34に示すように生ずる。動作がディスク からホストへのものだった場合(ブロック34に対する”N○″の答え)、トラ ック上の最初のレコードが読取られたかどうか、及び38138バイト(特定モ デルのディスクドライブの2トラツク上に格納されるバイトの最大数)よシ少い バイトが36で示すように読取られたかどうか見るためデータが調べられる。そ うなら、少くともトラックの残りが38で移動される。第3b図に関連して後述 するように、一定の状況下では更に数個のトラックが移動される。FIG. 2 shows that at the completion of each read operation, the main The decision process made regarding which disk packs are considered to contain the following datacents: Indicates the For statistics maintained by the director, which of the statistics are recorded? A test is first performed to determine whether movement of the card is disabled, as shown in block 3o. 3 and 5 to 7, which are instructions for 'non-movement' in the above-mentioned statistics. The existence of either is determined. With those instructions, the data will be as shown at 32. Not moved. Without such directive power, the previous access was from the disk to the host. whether the operation was performed directly from the cache to the host. The next question arises as shown at decision block 34. operation is disk to the host (“N○” answer to block 34), the whether the first record on the disk was read and 38138 bytes (specific The maximum number of bytes stored on a Dell disk drive's two tracks is less. The data is examined to see if bytes have been read as shown at 36. So If so, at least the remainder of the track is moved by 38. See below in connection with Figure 3b. Under certain circumstances, several more tracks may be moved so that

ブロック34に戻シ、前回の動作がキャッシュからホストへで、一連のレコード が正しく検出されキャッシュされたことが示されると、次のトランクの前移動が 望しいがどうかの問いが生ずる。つまシ決定ズロック40で、特定のディスク装 置上に格納された記録について前移動が許されるかどうが問われる。Returning to block 34, the previous operation was from cache to host, and a series of records indicates that it has been successfully discovered and cached, the next trunk forward move is The question arises as to whether this is desirable or not. With Tsumashi Determination Lock 40, certain disk installations The question is whether forward movement is allowed for records stored on the computer.

これによシシステム設計者は、一定のディスク装置に格納されたデータがキャッ シュされるのを防ぐこと、っまシ設計者がランダムであると知っているデータに ついて一定のディスクを節約することができる。例えば、通常可動ヘッドディス クドライズよシ待ち時間が小さいいわゆるパ固定ヘンドディスク”は、一般に逐 次データセット用に使われない。前移動が許されないと、移動しないという決定 が簡単に成される。前移動が可能なら、前移動が望ましいかどうかをキャッシュ 管理器24(第1図)が決める。例えば、この決定では42に示すように、同じ サイズの次のデータ請求を満たすのに必要なバイトがキャッシュ内の読取領域に 残っているかどうかを考慮する。同じく、管理器が所定請求で請求されたレコー ドの長さを調べ、トラックの残りよシ多く、又は続く1つ以上の同様な請求がキ ャッシュへ移されたデータで満たされないと思われたなら、続く1つよシ多くト ラックを移動させる。両条件が満たされると、第3α図に関連して述べる前移動 サブルーチンへ44で入る。This allows system designers to ensure that data stored on a given disk device is cached. data that the designers know to be random. You can save a certain amount of disk space. For example, typically movable head disks So-called "fixed hand disks" with lower latency than Kudryz are generally Not used for next dataset. Decision not to move if forward movement is not allowed is easily accomplished. If forward movement is possible, cache whether forward movement is desirable. The manager 24 (FIG. 1) decides. For example, in this decision, the same The bytes needed to satisfy the next data request of size are available in the read area in the cache. Consider whether there are any left. Similarly, the management device records the records requested in the predetermined request. Check the length of the track and find out if there are more or more similar charges than the rest of the track. If you feel that the data moved to the cache is not enough, try the next one or more. Move the rack. When both conditions are met, the forward movement described in relation to Figure 3α The subroutine is entered at 44.

第3α、3b図は、移動又は前移動されるべきトラック数がいかに決められるか を示す。いずれの場合にも、移動又は前移動されるべきトランク数はチャネルプ ログラムの実施中に読取られるバイト数に比例する。こ〜で、請求が長くなれば なるほど、以後の請求も長くなる可能性が強まると仮定されている。Figures 3a and 3b show how the number of tracks to be moved or pre-moved is determined. shows. In either case, the number of trunks to be moved or pre-moved is proportional to the number of bytes read during the execution of the program. If the bill takes longer because of this... Indeed, it is assumed that there is a strong possibility that subsequent claims will also be longer.

つまり、第3α図で6000より少いバイトが読取られると1トランクが前移動 され、6000〜12000間のバイトが読取られると2トラツクが前移動され る一方、バイトの総数が12000と38138の間だと、3トラツクが移動さ れる。In other words, if fewer than 6000 bytes are read in Figure 3α, one trunk is moved forward. When bytes between 6000 and 12000 are read, two tracks are moved forward. On the other hand, if the total number of bytes is between 12000 and 38138, 3 tracks will be moved. It will be done.

(上記のごとく、数”38138 ”は当業者にとり一般型ディスクトゝライブ の2デイスクトラツク上に格納されるバイトの最大数として認識されている)。(As mentioned above, for those skilled in the art, the number "38138" means a general disk drive. 2 (recognized as the maximum number of bytes stored on a disk track).

従って、2トラツクを合計する1つの請求が成されると、3トラツクがキャッシ ュへ前移動され、待ち時間のイナルティを生ずることなく、同様の以後の請求が 確実に満だきれるようにする。特定動作で読取られるバイトの合計数が2トラツ クつまfi 381.38バイトより太きいと、キャッシュへの前移動は成され ない。この長さのキャッシング請求を満たすことは、他で有効に費し得るディレ クタとキャッシュ管理器のかなりな動作時間を費すため、上記の点は当然に帰結 される。Therefore, when one claim is made that totals two tracks, three tracks are added to the cash similar future claims without incurring any latency penalty. Make sure you are satisfied. The total number of bytes read in a particular operation is 2 If the width is larger than 381.38 bytes, the forward movement to the cache will not be completed. do not have. Fulfilling a cash advance request of this length takes time that could be better spent elsewhere. The above points are a natural consequence of the considerable operating time of the processor and cache manager. be done.

第3b図は、移動に関する同様の計算を示している。チャイルプログラムの実行 中に読取された合計バイトが4500より少いと、1トラツクが移動され;45 00と9000間だと2トラツク、9000と38138間だと3トランクがそ れぞれ移動される。Figure 3b shows a similar calculation for movement. Executing a child program If the total bytes read during is less than 4500, one track is moved; 45 Between 00 and 9000 there are 2 tracks, and between 9000 and 38138 there are 3 trunks. Each will be moved.

尚、キャッシュに格納されたデータの各トランクに用いたトラックを保つことが 重要であるため、データがもはやキャッシュ内に格納される必要がなくなると、 そのデータに割当てられていた″フレーム″−一つまシキャッシュメモリの領域 −一が゛デアロケート(指定解除)″され、空フレームのプールへ戻せるように なる。デアロケーションは、(第4図に関連して述べる)データ記憶ス(−スを フリーとし、データの完全性を確実とする(第5図)ために行われる。第4図は 、デアロケーション動作で行われる動作のフローチャートを示す。このフローチ ャートは50で、″’EOFレコードゝ読取られたか?′”という問いで始まる 。EOF(エンドゝ・オブ・ファイル)レコード、つまり所定データファイル中 の最後のレコードが読取られれば、それ以上の移動を行うのは望ましくなく、又 それ以上のデータの使用も見込まれないのは明らかである。従って、そのトラッ クに割当てられていたフレームが52でデアロケートされる。Note that it is possible to keep track of the data used for each trunk of data stored in the cache. When data no longer needs to be stored in cache because it is important, ``Frame'' allocated to that data - an area of cache memory −1 is now “deallocated” and can be returned to the pool of empty frames. Become. Deallocation refers to data storage space (discussed in conjunction with Figure 4). This is done to ensure free data integrity and data integrity (Figure 5). Figure 4 is , shows a flowchart of operations performed in a deallocation operation. This flowch The chart starts at 50 with the question “Was the EOF record read?” . EOF (end of file) record, i.e. in a given data file Once the last record of It is clear that no further use of the data is expected. Therefore, the track The frame allocated to the block is deallocated at 52.

同じく、トラックの最終レコードが読取られたことの指示が58で認められると 、先行フレームつまり現トラックのアドレスマイナス1からのデータを含むフレ ームに格納されているデータケ保存する必要がないので、それが60で示すよう にデアロケートされる。Similarly, if the indication that the last record of the track has been read is acknowledged at 58. , the previous frame, that is, the frame containing data from address minus 1 of the current track. Since there is no need to save the data stored in the system, it is indicated by 60. is deallocated to.

第4図に示したデアロケーションサブルーチンの実行は、前述のごとくデータの 完全性を目的としたデアロケーションを制御する第5図のサブルーチンに引継が れる。つまシ例えば、ホストが70でキャツンユトラックへ書込みするなら、書 込動作に対応するデータは格納されたキャッシュ領域がもはや有効なデータを含 まないのでデアロケートされるべきことが明らかである。決定ブロック72〜8 0は、書込動作の指示でどれだけのキャッシュがデアロケートされるべきかを示 す。例えば、72で埋込シークに出会うと、シリンダが74でデアロケートされ る。マルチトラック動作、つまり一連のトラックへ書込みが成される動作が76 で生ずると、そのI・ランクレンジが78でデアロケートされる。さもなければ 、書込みの生じた単一トラックが80で単純にデアロケートされる。チャネルプ ログラムが読取動作だけを実行した場合、つまシプロンク70の決定が負の結果 だと、キャッシュ読取エラーが読取中に検出されたかどうかが82で単に調べら れる。検出されたら、欠陥メモリ要素がそこに含まれるという仮定に従い、その フレームが84で永久的にデアロケートされる。The execution of the deallocation subroutine shown in Figure 4 involves the data allocation as described above. The subroutine in Figure 5, which controls deallocation for completeness purposes, takes over. It will be done. For example, if the host writes to a cat track with 70, the write The data corresponding to the read operation is stored in the cache area that no longer contains valid data. It is clear that it should be deallocated since it is not available. Decision blocks 72-8 0 indicates how much cache should be deallocated on a write operation. vinegar. For example, if an embedded seek is encountered at 72, the cylinder is deallocated at 74. Ru. A multi-track operation, that is, an operation in which writing is performed on a series of tracks, is 76 , its I-rank range is deallocated at 78. Otherwise , the single track on which the write occurred is simply deallocated at 80. Channelp If the program performs only read operations, the determination of the prong 70 results in a negative result. Then 82 simply checks whether a cache read error was detected during the read. It will be done. Once detected, it is assumed that the defective memory element is contained therein. The frame is permanently deallocated at 84.

第8図は、主にランダムだが一部逐次的な可能性のあるデータセットを含むと見 込まれるディスクパック上に格納されたデータがキャッシングされる場合の、現 時点で好ましい本発明の実施例で成される決定プロセスのフローチャートを示す 。全ての読取請求に応じて一定量のデータがキャッシュされ、キャッシュされた データ量は、それで実現された待ち時間の節約分をデータの移動で費されたディ レクタの時間に対し計量することによって決められる。こNで、移動が見込まれ るデータの量は1フルトラツクである。データ請求が事実上ランダムなものにな ったとしても、この方法は無用にキャッシュされたデータによってシステムに不 当な負担をかけず、性能の改善をもたらすことができる。トラックサイズを19 にバイト、合計キャッシュスペースを12mバイトと仮定したコンピュータモデ リングは、改善の存在を示している。モジュールは86で、いずれかの非移動指 示がオンかどうかを問うことから始lる;オ/なら、移動は行われない。合計読 取バイトが6,000よシ大きいと、このサイズのデータブロックはキャッシン グにかなりのディレクタ時間を費すため、移動は行われない。トラックは90で 移動される。トラックのレコード″1が92で読取られたら、“逐次可能性″フ ラグが94で立てられる。このフラグが立つと、前移動の決定が次に成される。Figure 8 is considered to contain a data set that is mainly random but may be partially sequential. The current 1 shows a flowchart of the decision process made in a preferred embodiment of the invention at a point in time; . A certain amount of data is cached and cached in response to every read request. The amount of data is determined by the amount of time saved in latency compared to the amount of time spent moving the data. It is determined by weighing against the time of the rector. Due to this N, movement is expected. The amount of data is one full track. Data requests have become virtually random. Even if the This can improve performance without imposing any significant burden. truck size 19 computer model assuming a total cache space of 12MB. A ring indicates the presence of improvement. The module is 86 and any non-moving finger Begin by asking whether the indicator is on; if so, no movement is performed. total reading If the bytes taken are larger than 6,000, data blocks of this size will not be cached. The move is not done because it takes a significant amount of director time to log. The truck is 90 will be moved. If track record ``1'' is read at 92, the ``Sequential Possibility'' flag is The rug is erected at 94. Once this flag is raised, a forward move decision is then made.

これを第9図に示す。96では、現トラックのアトゝレス−2(CTA−2)を 有するトラック、つまシロ下考慮中のものよシ2トラック前のトラック、を通常 の読取シーケンスでデアロケートする試みが成される。98でこれが可能で、連 続する3トラツクが読取られたことを指示すると、シーケンスが続いているもの と再び仮定し、次のトラックアト8レス、トラックCTA+1が100で前移動 される。デアロケーションは、逐次ディスクパックに関連して前述したのとはg 同じように、ランダムなディスクパックからキャッシュされたデータについて成 される。上記のごとく、現トラックのアトゝレス−2のデアロケーションは96 で成され、第5図に関連して前述したデータ完全性のデアロケーションルーチン も、特にキャッシュ読取エラーに関して行われる。This is shown in FIG. In 96, the current truck Atres-2 (CTA-2) If you have a track, the one under consideration is two tracks earlier than the one you are considering, usually An attempt is made to deallocate in the read sequence. This is possible with 98, and If you indicate that three consecutive tracks have been read, the sequence continues. Assuming again, the next track atres is 8, the track CTA+1 is 100, and it moves forward. be done. Deallocation is different from that discussed above in connection with sequential disk packs. Similarly, we can create data cached from random disk packs. be done. As mentioned above, the address-2 deallocation of the current truck is 96. and the data integrity deallocation routine described above in connection with FIG. This is also done specifically regarding cache read errors.

更に、審査中の通し番号筒325,351号、名称「キャッシュメモリス投−ス の適応範囲区分」及び同じ名称で審査中の一部継続出願通し番号筒 号、 申請 (代理人書類ASTC−166)によれば、移動すべきデータへのフレームアロ ケーションに従い、ランダムなディスクパックについてのデアロケーションが成 されることにも注意。上記発明では、第8.9図に関連して述べた方法に基づき キャッシュされたランダムデータが最終的に、使われなかったことから簡単にデ アロケートされる。Furthermore, the serial number tube No. 325,351 under examination, the name “cache memory throw 'Applicable scope classification' and partial continuation application serial number under examination with the same name, application According to (Agency Document ASTC-166), frame allocations to the data to be moved are The deallocation is successful for random disk packs according to the application. Also be careful about what happens. In the above invention, based on the method described in connection with FIG. 8.9, Eventually, the cached random data can be easily deleted because it was never used. Allocated.

第2〜5及び8〜9図の70−チャートは当業者によれば、キャッシュ管理制御 プログラム内のサブプログラムとして動作するように設計されたものであること が理解されよう。特に、上記した本発明の方法は、本発明の譲受人であるストレ ージ・テクノロジー社のモデル8890デイスクコントローラ内で動作するよう に設計されている。従って、第2−5図に示した決定シーケンスは、チャネルプ ログラムが実行される度に行われるサメプログラムとして構成される。本発明の 方法を実施できる方法は他にも数多くめる。例えば、直前に読取られたレコード がトラックの開始である場合のみ移動を考慮し、トランクの終りでのみ前移動を 考慮してもよい。当業者なら、その他多くの工夫が可能なことを理解できよう。The 70-charts in Figures 2-5 and 8-9 are described by those skilled in the art as cache management controls. be designed to operate as a subprogram within a program; will be understood. In particular, the method of the invention described above is applicable to Works within the Age Technology Model 8890 Disk Controller It is designed to. Therefore, the decision sequence shown in Figure 2-5 is It is structured as a shark program that runs every time the program is executed. of the present invention There are many other ways in which the method can be implemented. For example, the most recently read record Consider movement only when is the start of the track, and forward movement only at the end of the trunk. May be considered. Those skilled in the art will appreciate that many other modifications are possible.

現時点で好ましい実施例において、発明の決定容量は、記憶ディレクタ装置内に 物理的に支持されたフロッピーディスク上へ永久的に書込まれ、ディレクタがオ ンする毎に固体RAFiヘコピーされるマイクロコートゝで与えられる。これは キャッシュ管理機能を行うため、既存の記憶ディレクタプロセッサと動作接続さ れる。In the presently preferred embodiment, the determined capacity of the invention is within the storage director device. Permanently written to a physically supported floppy disk, when the director is turned on. It is provided with a microcoat that is copied onto the solid-state RAFi each time it is loaded. this is Operates with existing storage director processors to perform cache management functions. It will be done.

第6.7図は、本発明のキャッシングサブシステムで得られる性能の改善をグラ フ的捉示している。両図は、システム性能のコンピュータシミュレ〜ジョンで生 じたデータを表わしたもの。個々のジョブに関するテストはかなりな性能上の利 点が実現されることを示しているが、本願の申請時点で比較し得る実データは得 られてない。これらの結果は、データがディスクトランクを単位としてキャッシ ュされ、モデル化の目的上ディスクトランクが4レコードを含むように概念的に 定義された好ましい実施例と関連している。Figure 6.7 graphically illustrates the performance improvements obtained with the caching subsystem of the present invention. It shows a certain perspective. Both figures were generated from a computer simulation of system performance. A representation of data. Testing on individual jobs can provide significant performance benefits. However, no comparable actual data were available at the time of filing this application. I haven't been able to do it. These results indicate that data is cached in units of disk trunks. conceptually so that the disk trunk contains 4 records for modeling purposes. Related to the defined preferred embodiments.

第6図は、入出力指令応答時間対アクセスされているデータのブロックサイズを 示す。パ入出力(Ilo)時間”は、データ使用可能時点で使用し得ないI10 パスの成分に基くロスタイムである” RP Sミスタイム”の他、所定ディス クの特定部分が読み/書きヘッドに並置されるのに必要な時間及び読み/書きヘ ッドが(可動ヘッドを用いたディスクトランクで)ディスクに対し半径方向に移 動するのに必要な時間を含む。シ〜りと待ちの両遅延は、ブロックサイズに対し 独立である。しかし、長いブロックはそれだけ長い書込み又は読取シ時間を要す るため、入出力転送時間とRPSミスタイムは共にブロックサイズの増大につれ て増加する。第6図の曲線A%従来システムつまシキャッシュが存在しないシス テムの平均応答時間をグラフ的に表わしている。ブロックが長くなるにつれ、平 均応答時間も長くなっている。極短サイズのブロックでも待ち及びアクセス時間 が必要なので、到達最小時間はゼロにならない。Figure 6 shows input/output command response time versus block size of data being accessed. show. "Parameter input/output (Ilo) time" is I10 that cannot be used at the time when data is available. In addition to “RP S miss time,” which is loss time based on pass components, The amount of time required for a particular portion of the track to be juxtaposed to the read/write head and The head is moved radially relative to the disk (with a disk trunk using a movable head). Includes the time required to move. Both wait and wait delays are relative to block size. It is independent. However, long blocks require longer write or read times. Therefore, both I/O transfer time and RPS miss time increase as block size increases. increases. Curve A% in Figure 6: Conventional system: System without cache A graphical representation of the system's average response time. As the block becomes longer, it becomes flat. The average response time is also longer. Waiting and access times even for extremely short blocks is required, so the minimum arrival time will not be zero.

第6図の曲線Bは、全ての入出力請求の受信で請求されたものよシ大きいデータ 部分をキャッシングして;つまり、逐次的と思われる請求及びランダムと思われ る請求の間を区別しないことで得られた改善を示す。小さいブロックサイズにつ いては、待ち時間が著しく減じるため、入出力時間が改善されている。Curve B in Figure 6 shows data that is larger than that requested in the receipt of all input/output requests. caching portions; i.e. charges that appear to be sequential and charges that appear to be random; shows the improvement achieved by not distinguishing between claims. For small block sizes I/O times are improved by significantly reducing latency.

しかし、非逐次的でも、つまシランダムな請求に応じてもデータがキャッシュさ れ、ディレクタの不利用による追加の時間を資すという事実は、大きいブロック に関する平均入出力時間が非キャッシュサブシステムの場合よシ長くなることを 意味する。However, data is not cached in response to non-sequential or even random requests. The fact that a large block The average I/O time for means.

21 従って曲線Bは、その平均入出力時間が曲線Aの非キャッシュ装置と比べ、ブロ ックサイズの増大につれ長くなることを示している。21 Therefore, curve B has an average I/O time that is slower than that of curve A, which is a non-cache device. It shows that the length increases as the block size increases.

第6図の曲線Cは、逐次的と思われるデータとそうでないデータ間を有効に区別 した本発明で得られる改善を示す。ランダムにアクセスされるデータ、つまシ逐 次的と認められないデータはキャッシュされないので、ランダムデータは曲線A で表わした従来技術と同じ入出力アクセス時間を有する。逐次データをキャッシ ングして得られる改善は、ブロック長がかなり長くなυ、前述のごとく待ちが実 際に必要な読み/書き時間よシ有意でなくなる地点へ達するまで、曲線Cが曲線 Aを下回る点にある。Curve C in Figure 6 effectively distinguishes between data that appears to be sequential and data that is not. The improvements obtained with the present invention are shown below. Randomly accessed data, Since data that is not recognized as next is not cached, random data is curve A. It has the same input/output access time as the conventional technology expressed by . Caching sequential data The improvement obtained by Curve C continues to curve until a point is reached where the required reading/writing time becomes insignificant. It is at a point below A.

第7図は、ホストから要求された逐次的データの比率(チ)を関数として平均入 出力時間を示したもの。全曲線が比較的ビジーなシステムを仮定している。曲線 Aは同じく、非キャッシュディスクシステムの性能を示す。このシステムでは逐 次及びランダムにアクセスされるデータ間が区別されていないため、曲線Aはは y平らである。曲線Bは、全請求データがキャッシュされるキャッシュシステム を表わす。これは、よシ少いランダムゲータが不要にキャッシュされるにつれ有 利にキャッシュされる逐次データの比率が上昇するため、逐次データ比率の上昇 にともなう入出力時間の著しい減少を示しておシ、性能は入出力時間の低下で反 映されているように改善される。しかし、性能の向上が実現される前に、逐次的 データの比率が極めて高くならねばならない。曲線Cは同じく、逐次的と見なさ れるデータのみがキャッシュされる本発明のキャッシュメモリサブシステムにお ける入出力時間を示す。図示の全面的な性能改善は、キャッシュシステムが逐次 データの場合にのみ使われ、ランダムデータのキャッシングでディレクタ時間が 無駄に費されないという事実に基いている。Figure 7 shows the average input as a function of the proportion of sequential data requested by the host (ch). Shows the output time. All curves assume a relatively busy system. curve Similarly, A indicates the performance of a non-cache disk system. This system Since there is no distinction between next and randomly accessed data, curve A is y is flat. Curve B is a caching system where all billing data is cached. represents. This is common as less random gators are cached unnecessarily. The sequential data ratio increases because the ratio of sequential data that is cached increases. It shows a significant decrease in input/output time with Improved as shown. However, before performance improvements are realized, successive The data ratio must be extremely high. Curve C is also considered sequential. The cache memory subsystem of the present invention caches only the data stored in the cache. Indicates the input/output time. The overall performance improvement shown in the figure is due to the fact that the cache system caching of random data takes up director time. It is based on the fact that it is not wasted.

本発明を実施する方法の一例として付録Aを添付し、本発明の方法の“擬似コー ド”翻訳を参考として最尾に付す。この擬似コードは、専門プログラマ−以外の 人でもプログラムを理解できるように、実際のマイクロコートゝ命令とト5キュ メンタリノートの両方を含む。” Ghinookpγolog anti p seu、tiocodeCOn、υentioqs”というタイトルの書類を付 録A−tとして添付し、擬似コートゝ言語を説明する。付録Aは、°“F、nd 、−Ghaルn、elprogram Processing”というタイトル のマイクロコートゝモジュールを記している。これはプログラム機能の一般的説 明から始まシ、動作説明には記憶ディレクタからその動作のため必要とされるビ ット、各サブルーチン及び必要な各レジスタの定義が含まれている。プログラム の大部分はライン01820(4頁)から始まシ、例えばライン02170〜0 2370等の実際のマイクロコード命令と、これに先行する例えばライン198 0〜2150等次のマイクロコードで成される決定の主題を記した英語の説明で 構成されている。図示のマイクロコードは全ての管理機能を果し、必要に応じて 各サブルーチンを呼出す。例えば、第5図に関連して上述したデータ完全性のサ ブルーチン用テアロケーンヨンは、付録Aのライン2440〜2470テ呼出さ れる。実際のサメルーチンは付録已に付しである。このうち例えば、第5図のボ ックス80で表わされた決定゛キャッシュ読取エラー″に対応するステップは、 マイクロコードBのライン1500〜1570における英語説明とライン159 0〜1730のマイクロコートゝに示されている。Appendix A is attached as an example of a method of carrying out the invention and includes a “pseudo code” of the method of the invention. The pseudo code is attached at the end for reference. The actual microcode commands and five code commands are used so that even humans can understand the program. Contains both mental notes. ” Ghinookpγolog antip with a document titled “seu, tiocodeCON, υentioqs”. It is attached as a record A-t and explains the pseudo code language. Appendix A contains °“F,nd , -Ghaln, titled "elprogram Processing" The microcoat module is described. This is a general theory of program functions. Starting from the beginning, the operation description includes the bits required for the operation from the storage director. It contains the definitions of each set, each subroutine, and each necessary register. program The majority of the 2370, followed by the actual microcode instruction, e.g. line 198. 0 to 2150, etc., with an explanation in English of the subject of the decision made in the following microcodes: It is configured. The microcode shown performs all management functions and Call each subroutine. For example, the data integrity support described above in connection with FIG. Call lines 2440 to 2470 in Appendix A for blue tin calls. It will be done. The actual shark routine is in the appendix. For example, the box in Figure 5 The steps corresponding to the decision "cache read error" represented by box 80 are as follows: English explanation for lines 1500-1570 of microcode B and line 159 0 to 1730 microcoat.

当業者であれば、添付したEnd−Channel Programの文書に基 き、本発明のプロセスを困難々〈実施し得るであろう。A person skilled in the art would understand based on the attached End-Channel Program document. The process of the invention may be difficult to implement.

本発明の理解に係わるその他審査中の出願を、次のものを含めてこ又に付す;固 体キャッシュメモリ22内に構成されるメモ+l x−!:−スの組織化を論じ たCou、1son等の1981年11月27日申請で審査中の通し番号′第3 25,351、名称「キャッシュメモリススースの適応領域区分」及び 申請で 上記出願の一部継続出願通し番号第 号(代理人書類番号ASTC−166)。Other pending applications relating to the understanding of the present invention are attached hereto, including: Memo +l x-! configured in the body cache memory 22! :-discusses the organization of Serial number '3' currently under review in the application filed on November 27, 1981 by Cou, 1son, etc. 25,351, with the title “Cache memory space applicability area classification” and the application. Partial continuation of the above application serial number (Agent's document number ASTC-166).

キャッシュ管理器で行われるエラー管理及び回収機能は、こNに参考として付す B11ckenstaff等の1981年11月27日申請で審査中の通し番号 第325.287、名称「エラー制御用のデータバス再構成」で論じられている 。又、MOrerLO等の1981年11月27日申請で審査中の通し番号第3 25,288号、名称「メモリサシシステム用キャッシュバッファの制御」及び  申請で上記出願の一部継続出願通し番号第 号(代理人書類番号ASTC−1 64)も関連しており、これらはディスク装置とキャッシュ上の各記憶位置間に 2ける正確な対応をいかに維持するかを論じている。The error management and collection functions performed by the cache management device are attached here for reference. Serial number under review for application dated November 27, 1981 such as B11ckenstaff 325.287, entitled ``Data Bus Reconfiguration for Error Control'' . In addition, serial number 3, which is under review in the November 27, 1981 application of MOrerLO etc. No. 25,288, entitled “Control of cache buffer for memory sash system” and Partial continuation application serial number of the above application (proxy document number ASTC-1) 64) are also related, and these are between the disk device and each storage location on the cache. It discusses how to maintain accurate correspondence between the two.

当業者であれば、当分野の要求且つ前述した本発明の目的を着り干、ディスクレ コードの逐次性を決定するだめの方法が以上で説明されたことを理解し得るであ ろう。更に、本発明の実施しそれに応じて改善し得る数多くの方法が存在するこ と、従って上記の開示は発明を限定するものとしてでなく、単にその例示として 見なすべきであることも理解されよう。発明は、以下の請求の範囲によって更に 正確に限定される。Those skilled in the art will be able to fully understand the requirements of the field and the objectives of the invention as described above. It should be understood that the method for determining seriality of code has been explained above. Dew. Furthermore, it is understood that there are numerous ways in which the invention can be implemented and improved upon accordingly. and, therefore, the above disclosure is not intended as a limitation on the invention, but merely as an illustration thereof. It will also be understood that this should be considered. The invention is further defined by the following claims. EXACTLY LIMITED.

27 o’tos〜Mj 14”tl、o トQ:l (h O+ l’u (Y53  LMOhco O’t OS +’J (n5 LI”t’、OL−01)  (ThO+ (’t、l mj(TJ (’4 iY’l (’l’+ (’T ’l iY’l ill (’4σTmMjj5jjj 町jjj才「uOLl ”+u>u’i 「uOLjT■r10t、o’−0’−0’−0’、08 29 ωChOHN(’i+r1n%Dt−0zOr@C’Jn:Vr$トCDQ’+ O?C’JmMV’+’、DトQDChO−〜(イ)nヰZZ町ζジ;2 ζい いいいいいいいいい℃℃℃[F]℃℃℃ψψψトトト+−4++5r−1sr+ ++s r−1−己r++++−呂一+−t r−t ++ r(r−を呂S  S−S r@−8呂H0 (’n4Ll+1℃トのo’to+〜my uw ωωのの0’t(ho’tc h o>cto’t■o’t o’t 。27 o’tos~Mj 14”tl, otoQ:l (h O+ l’u (Y53 LMOhco O’t OS +’J (n5 LI”t’, OL-01) (ThO+('t, l mj(TJ('4 iY'l('l'+('T 'l iY'l ill ('4σTmMjj5jjj ”+u>u’i “uOLjT■r10t, o’-0’-0’-0’, 08 29 ωChOHN('i+r1n%Dt-0zOr@C'Jn:Vr$toCDQ'+ O? C'JmMV'+', D to QDChO-~ (a) no ZZ town ζji; 2 ζi Good, good, good ℃℃℃[F]℃℃℃ψψψTototo+-4++5r-1sr+ ++s r-1-self r++++-Roichi +-t r-t ++ r(r- to RoS S-Sr@-8roH0 ('n4Ll+1℃to'o'to+~my uw ωω's 0't(ho'tc h o>cto’t■o’t o’t.

トドh トトトe−0:l CDωωの の r−t r−t +−呂呂++  +−1+−1r−ls++八n”へs lY’150 00℃ 0ヘロく−1− 国; へm〜 声色〜へ ロト ρ国Oくく国 Hm−く 〜へ −いへ くmζ mm町町 Hへn町い℃トのO’t Or−1〜n;いψトωOOH〜 n;いい トのC ry OSへ000000000 + + + S + 、−1,−I I−+ + S l’J OJ○J C’J OJ+’IJ (’IJ (’J l’J ○J α]l’T’l IYIm5い℃トのch o +へn; い [F]  トの■OH〜n町い(トのOOm IYI (n m ffi m m j j  j 5 j j j 55 j in u’) ln Ln 11”t LI ’M Ll”t ln in Lnlj+7’JOJOJCJ○J(”JN(’ 11t’1JNIN(’J (14F’t、l OJf’uOJ(’IJOJ( ’IJ(’JOJOJOJNoJO,l○J33 Hへ(Yl zいψ トの G’t OSへnζい℃トの○OS〜m ;い ℃ ト’−01.0ψ ℃℃−θ$ ’、0 トドt−トh トトトトトの■のの  のの のの〜へ〜 へN〜 〜へ へ代〜へ〜へ〜〜〜〜〜へ〜〜〜 〜〜 〜 〜u+ll1l+ olsト00rn Oocm へTax、0O(n 0O( ihい 1hい薗 凶01b Ct+t’nい いm 困0国 !。いく0−( ト)OtlI:l h〇四 国の1) 0口 四H国 氏O田トの −m口ζ  (OH1,000のq い−〜 い。05 0+〜m−rLl’)1.0 ト のCI’yC) r、ltNms−ffi  IJ)ト〜〜〜へ〜へ〜〜 〜〜m σyrビnσYη σlηロrイnσビn σ賀Yビn ηMl’l”l グs rn n’+σ1tY1 σ冒ηの いO Hへ n;いいトのO’l Or−1〜薗ζ い(トのいOH〜 nζい0)  α’1jjj jjjjjjj 11”tば)ば)Lntn Ll’%LnLI ThLIMnlj)ljl IJフ ℃−フ(Dm t’nn”+nコmnコm mmnコmmnコmnコαビn rnrru’nmmrnrn m lY’l( 1”l(Tコor”+国rx、< ○()O’l 0OOOOWh 5 0Ct 、Lへ薗へ 田O℃ 匡0(n口 島島氏 hOSl”’I<−(< 4トー  国ト< < S t−ト ○ Ot’nL′l’1Ilf1Bpj yH○ イ HOQCD (”l匈へ4037 特表昭59−502044 (12) 9 付録A−1 CC: CH工N0OK Group DATE: 11/14/80 LATEST REVISION: 08/1 2/82この設計メモは、キャッシュバッファサブシステム用マイクロコードの 開発でChinookマイクロコードグループによって使われる規則をトゝキュ メント化する。これら規則の説明は2つの部分に分けられる;プロローグコート 8と擬似コートゞ。Todo h Tototo e-0:l CDωω's r-t r-t +-Roro++ +-1+-1r-ls++8n"s lY'150 00℃ 0HERoku-1- country; to m~ tone of voice~ Lotto ρ country Okuku country Hm-ku ~to −Iheku mζ mm town town C to H ry to OS 000000000 + + + S +, -1, -I I-+ + S l’J OJ○J C’J OJ+’IJ (’IJ (’J l’J ○J α] l’T’l IYIm5 ℃ トのch o + へ n; To's ■OH ~ n town (To's OOm IYI (n m ffi m m j j  j 5 j j j 55 j in u’) ln Ln 11”t LI ’M Ll”t ln in Lnlj+7’JOJOJCJ○J(”JN(’ 11t’1JNIN(’J (14F’t, l OJf’uOJ(’IJOJ( 'IJ('JOJOJOJNoJO, l○J33 To H To'-01.0ψ ℃℃-θ$', 0 Todot-toh Tototototo's■nono Nononono to ~ to N to ~ to he to ~ to ~ to ~ ~ to ~ ~ ~ ~ ~ ~ ~u+ll1l+olsto00rn Oocm Tax, 0O(n 0O( ih 1h izono bad 01b Ct+t’n i m trouble 0 country! . Iku0-( OTLI: L H〇 Shikoku 1) 0 -mouth 4 H -kun Otato -M -mouth ζ (OH1,000 q-~i.05 0+~m-rLl') 1.0 CI'yC) r, ltNms-ffi IJ) To~~~~~~~~~m σyrbinnσYη σlηroirinσbin O To H n; Iito's O'l Or-1~Sonoζi (TonoiOH~nζi0) α’1jjj 11”tba)Lntn Ll’%LnLI ThLIMnlj)ljl IJ ℃−ふ(Dm t’nn”+nCommncom mmn ko mmn ko mn ko αbi n rnrru’nmmrnrn m lY’l( 1”l (T or” + country rx, < ○()O’l 0OOOOWh 5 0Ct , L to Sono 田OC 匡0(n口 Mr. Shimajima hOSl"'I<-(<4to) Country To HOQCD (4037 to “l 匈 Special publication 1984-502044 (12) 9 Appendix A-1 CC: CH Engineering N0OK Group DATE: 11/14/80 LATEST REVISION: 08/1 2/82 This design memo describes the microcode for the cache buffer subsystem. Share the rules used by the Chinook microcode group in development. Mention it. The explanation of these rules is divided into two parts; the prologue code 8 and pseudo court.

第1図は、新たなマイクロコードモジュールの作成時に使われるプロローグスケ ルトンを示す。エンジニアが、モジュールを設計するにつれて各セクションを埋 める。モジュールの設計後、それは設計検討プロセスで検討される。これがD  1 tステップである。次いで擬似コードが書かれ、同じく設計検討プロセスで 検討される。これが!II’ステップ。擬似コードが検討承認された後、実際の マイクロコードが書かれる。擬似コードがコメントラインとしてブロックに閉じ 込められ、擬似コートゝの各ブロック毎のマイクロコードが擬似コートゝブロッ クの直下に置かれる。次いで、マイクロコードが検討及び/又はシミュレートさ れる。これが“工2’ステップ。設計と実行のこの方法に従うことによって、侍 られたモジュールは自己ドキュメント化する。設計の全ステップは、そのモジュ ールに関する41 完成リスト中にトゝキュメント化される。Figure 1 shows the prologue schedule used when creating a new microcode module. Showing Luton. Engineers fill in each section as they design the module. Melt. After a module is designed, it is considered in the design review process. This is D This is 1t step. Pseudocode is then written and also in the design review process. Will be considered. This is! II' step. After the pseudocode is reviewed and approved, the actual Microcode is written. Pseudocode closed in block as comment line The microcode for each block of the pseudo code is stored in the pseudo code block. placed directly under the The microcode is then examined and/or simulated. It will be done. This is the “Engine 2” step. By following this method of design and execution, you can Modules that are created are self-documenting. Every step of the design is 41 regarding rules Documented in completed list.

*Mi59−502044 (13) IH引■蒼餐簀11畳1■餐旧■旧罎曇 END OF 5PEC工F工CA’ I’工ONS III蒼蒼1■蒼蒼牙1■蒼プロローグ規則 以下の説明で、プロローグスケルトン中の各セクションの使用法を記す。*Mi59-502044 (13) IH pull ■ Blue dining room 11 tatami mats 1 ■ Dining old ■ Old Qinggu END OF 5PEC engineering F engineering CA' I’Kou ONS III Ao Ao 1 ■ Ao Ao Ga 1 Ao Prologue Rules The following explanations describe how to use each section in the prolog skeleton.

1)&MOD3 TITLEl)BI このラインは2つの機能を果す:&MOD3はアセンブラで無視されるが、モジ ュールがchinook 設計仕様へ組込まれるとき、chinθo、k スフ リップ制御ファイルで使われる。1)&MOD3 TITLEL)BI This line serves two functions: &MOD3 is ignored by the assembler, but When the module is incorporated into the chinook design specification, chinθo, k suf Used in rip control files.

TITLEは、このモジュール用リスト出力の各員へタイトルを割当てるだめア センブラによって使われる。大文字jB+(及び′A・)は、スケルトン内へ入 れる場合の便宜上のもの。TITLE is an application that assigns a title to each member of the list output for this module. Used by Sembla. The capital letter jB+ (and 'A・) is entered into the skeleton. This is for convenience when

2)MODULE NAMEはこのモジュールに割当てられた1〜8字の名称で 、本モジュールを呼出す他のモジュールによって使われるラベルと通常同じであ る。2) MODULE NAME is the 1-8 character name assigned to this module. , which is usually the same label used by other modules that call this module. Ru.

3)MODULE TITLE は、モジュールが何のためかを記すモジュール の実際のタイトル。3) MODULE TITLE is a module that describes what the module is for. actual title.

4)MODULE 0WNERは、このモジュールの設計と実行に責任のあるエ ンジニアの名前又はイニシアルである。4) MODULE 0WNER is the editor responsible for the design and execution of this module. The engineer's name or initials.

Mod、u、le ownerの情報は、マイクロコードが最終的に公表される とき削除される。Mod, u, le owner information will be released when the microcode is finally released. will be deleted when.

5)FUNCTIONAL DESCRIPTIONは、モジュールが何を為す かの英語の説明である。これは、コーラ−に与えられる主な機能全ての説明を含 む。各機能がいかに実施されるかの詳細は与えない(次のセクション参照)。こ のセクションの最終パラグラフには、本モジュールへ直接送られ且つそこから戻 される・ξラメータのハイレ(ル説明が含まれる。入出力のもつと包括的な概念 を、と又での/ξミラメータパッセージより詳細な概念と混同しないこと。この 1例は次の通り:テキストの1ラインをビデオ表示管へ出力するモジュールが作 成される。入力パラメータは、テキスト自体か又はテーブルに格納されたメツセ ージへのポインタ。モジュールの出力は、ビデオ管に表示されるテキストのライ ンである。但シ、コーラ−へ戻されるいずれのパラメータであってもならない。5) FUNCTIONAL DESCRIPTION is what the module does. This is the English explanation. This includes a description of all the main functions provided to the caller. nothing. Details of how each function is implemented are not given (see next section). child The last paragraph of the section contains information that is sent directly to and returned from this module. Contains high-level explanations of ξ parameters. Comprehensive concepts of input and output is not to be confused with the more detailed concept of the /ξ mirameter passage in Tomata. this An example is as follows: A module is created that outputs a line of text to a video display tube. will be accomplished. The input parameter can be the text itself or a message stored in a table. A pointer to the page. The output of the module is a line of text displayed on the video tube. It is. However, it must not be any parameter that is returned to the caller.

この場合、コーラ−へ戻されるパラメータがない′旨を72ラグラフを記述する 。又先行パラグラフが、本モジュールの機能はテキストの所定ラインをビデオ表 示管へ表示することにある旨を記述する。In this case, write a 72-graph to indicate that there are no parameters returned to the caller. . Also, if the preceding paragraph is Describe that the information is to be displayed on the display.

6)OPERATIONAL DESCRIPTION は、モジュールがいか にその機能を果すかの説明である。0perationclDescrすtio nは、モジュールの基本70−(又は構造)の概観をリーダーに与えること。( 上〜で避けるべき傾向は、詳しくなシすぎて続く擬似コードの単調な繰シ返しに ならないことである。0perational Descr、1ptionから 擬似コート8、マイクロコードへと進むにつれ、詳しさのレベルが一般に上昇す るという基本概念に留意のこと。6) OPERATIONAL DESCRIPTION This is an explanation of how it performs its function. 0operationclDescrstio n to give the reader an overview of the basics 70-(or structure) of the module. ( The tendency to avoid in the above is too much detail, resulting in monotonous repetition of pseudocode. It must not happen. From 0perimental Descr, 1ption The level of detail generally increases as you progress through pseudocode 8 and microcode. Please keep in mind the basic concept of

7)SPECIAL C0N5IDERATI○NSは、このモジュールの設計 又は実行に影響を及ぼす制約、条件又は情報のあいまい箇所を記すセクションで ある。7) SPECIAL C0N5IDERATI○NS is the design of this module or in a section that describes ambiguous constraints, conditions, or information affecting performance. be.

8)ENTRY P○INT(S):これはモジュールへの全エントリ点に関す るラベル名のリストと、各エントリ点に関するう45 ベル名のリストと、各エントリ毎に特有な入力パラメータの対応した説明を含む 。これらの説明は、必要ならビットレベルにまで立至シ、又パラメーターがいか に転送されるか(例えば、パステーブル又は特有の内部レジスタを介して等)を モジュールのユーザへ告げる。8) ENTRY P○INT(S): This is for all entry points to the module. A list of label names for each entry point and a list of label names for each entry point. Contains a list of bell names and corresponding descriptions of input parameters specific to each entry. . These descriptions can be taken down to the bit level if necessary, and how the parameters are handled. (e.g. via a path table or specific internal registers, etc.) Tell users of the module.

9)NORMAL EXIT(S):このセクションは、本モジュールからのエ グジットでエラーエグジットでないものに関するライル名のリストを含む。望ま しくは、大部分のモジュールからのエグジットは1つだけで、それがコーラ−へ のリターンであること。通常エグジットがコーラ−へのリターンなら、このエン トリの名称欄に1Cα1ler ’の語を入れること。各エグジット毎の出力( リターン)−ξラメータの説明も入れ、上記入力バラメーターのものと同じレベ ルの詳しさとする。9) NORMAL EXIT (S): This section is for exiting from this module. Contains a list of Lyle names for exits that are not error exits. desire In fact, there is only one exit from most modules, and that goes to the caller. be the return of If the normal exit is a return to the caller, this en- Enter the word 1Cα1ler in the bird name column. Output for each exit ( Return) - ξ parameter is also included, and the level is the same as that of the input parameter above. The details shall be as follows.

10) ERROREXIT(S):このセクションは、エラーエグジットのリ ストと各エグジット毎のエラーの1ライン説明を含む。パラメータが通過すると 、それらがエラー説明の下に書込まれる。10) ERROREXIT (S): This section is used to reset error exits. Contains a one-line description of the strike and error for each exit. When the parameter passes , they will be written under the error description.

11) ROUTINES USED:このセクションは、本モジュールで呼出 される全ルーチン名のリストである。各使用ルーチンのタイトルも含まれる。入 出力パラメータは、被呼出しルーチンのプロローグで記されるので、こ〜には含 まれない。11) ROUTINES USED: This section is called by this module. This is a list of all routine names. The title of each used routine is also included. Enter Output parameters are written in the called routine's prologue, so they are not included here. It doesn't happen.

12) DATA 5TRUCTURES :は、このモジュールで使われる全 テーブル又はその他のデータ構造のリストである。各データ構造のタイトルも含 む。更に、タイトルの最後のカッコ内にテーブルタイトルの3又は4文字から成 る略記を入れるのが有用である。この略記は変数定義用に擬似コードでも使える (擬似コード規則の変数セクション参照)。12) DATA 5TRUCTURES: is all the information used in this module. A list of tables or other data structures. Also includes the title of each data structure. nothing. In addition, the table title consists of 3 or 4 characters in parentheses at the end of the title. It is useful to include an abbreviation for This abbreviation can also be used in pseudocode for variable definitions. (See the Variables section of Pseudocode Rules).

13) 工NTERNAL REGS:このセクションは、現在マイクロプロセ ッサ設計に特有なもので、本モジュールによって影響される現在主グループの内 部レジスタを説明する。モジュールがIRQをインクレメントし、現在グループ に影響を及ぼさないなら、このセクションに″現在グループ影響されず″と記す こと。13) Engineering NTERNAL REGS: This section currently contains the microprocessor specific to the server design and currently within the main group affected by this module. The registers are explained below. The module increments the IRQ and now the group If it does not affect the group, write "Currently not affected by group" in this section. thing.

14) EXTERNAL REGS:このセクションは、本モジュールによる 外部レジスタの使用法を説明する。使われる各外部レジスタの説明(又はタイト ル)は、説明欄の下にリストアツブされる。14) EXTERNAL REGS: This section is based on this module. Explain how to use external registers. A description (or tight description) of each external register used. ) will be restored under the description field.

15) ENTRY arLd EXIT IRG:このセクションは、本モジ ュールが呼出されるとき工RG(内部レジスタグループ)の見込値がどうなるか 、及び本モジュールが退出されるときその値がどうなるかを定義する。15) ENTRY arLd EXIT IRG: This section What happens to the expected value of the engineering RG (internal register group) when the module is called? , and what its value will be when this module is exited.

1s) CHANGE ACTIVITY :は、設計、実行及びデバグの各段 階を通過するモジュールの進行をドキュメント化するセクションである。このセ クションに書込まない傾向がある。1s) CHANGE ACTIVITY: Each stage of design, execution, and debugging This is the section that documents the progression of the module through the floors. This center There is a tendency not to write to the action.

しかし、このセクションは埋められれば、次のプロジェクトを企画するとき、プ ロジェクトマネージャに有用な情報を与えることができる。Change Ac tivityの最終項目は、システムのテストへ入った後モジュールに変更が成 される毎に使われる。これは、初期の設計プロセスが完了した後に生じたモジュ ールへの変更をチャート化する有用な方法である。However, once this section is filled out, you can use it as a template when planning your next project. It can provide useful information to project managers. Change Ac The final item in tivity is to confirm that changes have been made to the module after the system has entered testing. used every time. This refers to modules that arise after the initial design process is completed. This is a useful way to chart changes to the rules.

上田e各セクションへ書込むべき時点に関する最終注二“D1′検討の前に、l 5pecial Con、s乙derationを通じた全セクションへ書込む べきこと。′11′検討の前に、Routines Used とData E 3trrcturesの両セクションへ書込むべきこと。ChangeActi vityセクションは、該当する事件又は変更が成されたとき明確に書込まれる べきこと。残シのセクションは、実際のマイクロコードが書かれたときに埋めら れるべきこと。Ueda e Before considering the final note 2 "D1' on when to write in each section, l 5special Con, write to all sections through s O deration What you should do. '11' Before considering, Routines Used and Data E What should be written to both sections of 3trrctures. ChangeActi The vity section is clearly written when the relevant incident or change is made. What you should do. The remaining sections are filled in when the actual microcode is written. What should be done.

擬似コートゞ規則(PsEUDo−GOOD C0NVENTI○NS)擬似コ ードの書込みは発展が困難な分野である。擬似コードは、プロローグの動作説明 とマイクロコード自体間の橋渡しとされる。擬似コードを一般的にし過ぎるか、 又は個々に詳しくし過ぎる傾向が見られる。一般的過ぎると、動作説明の繰返し となシ、“Il’ 検討者が設計を申し分なくチェックする上で充分な詳細さを 含まない。一方詳し過ぎると、マイクロモードの繰返しとなり、あまりに詳しい 内容を含むので、リーダーは戸惑ってしまい1代りに実際のマイクロコードを見 ることになる。これら両極端間のちょうど中間を保つのがコツである。Pseudo Court Rules (PsEUDo-GOOD C0NVENTI○NS) Pseudo Coat Writing code is a difficult area to develop. The pseudocode explains how the prolog works and the microcode itself. Either make the pseudocode too general, or Or there is a tendency to give too much detail to each individual. If it is too general, the explanation of the operation will be repeated. Tonashi, “Il” Provide sufficient detail for reviewers to check the design satisfactorily. Not included. On the other hand, if it is too detailed, it becomes a repetition of micro mode, and it is too detailed. The reader may be confused and have to look at the actual microcode instead. That will happen. The trick is to stay right in the middle between these two extremes.

CHINOOKプロジェクトで使われる擬似コード言語は、以下の擬似コード用 制御キーワードから成る。キーワードの目的は2つある:第1に、マイクロコー ド間の一致が達成される。他人のコードが各自のコードと似ていれば、それを理 解するのがはるかに容易である。第2に、決定、ループ及びリンケージ用の標準 規則を用いることで、モジュールははるかて明確な構成となる。The pseudocode language used in the CHINOOK project is the following pseudocode language: Consists of control keywords. The purpose of the keywords is twofold: first, microcode agreement between the codes is achieved. If someone else's code is similar to your own, try to understand it. much easier to understand. Second, standards for decisions, loops and linkages. By using rules, modules have a much clearer structure.

A final philosophical note ニーrイクO:I− )’ができるだけ似て擬似コート9に従わないか、又はマイクロコートゞがプロ ジェクトのデバグ段階時に変更されるが、擬似コードが更新されないと、価値の ないものになり、理解上の混乱とエラーを実際に招いてしまう。A final philosophical note knee r go O: I- )’ is as similar as possible and does not follow pseudo-coat 9, or the micro-coat is changes during the debugging phase of the project, but if the pseudocode is not updated, no value is lost. This actually leads to confusion and errors in understanding.

擬似コードの規則は次の通シ: l)擬似コードのキーワードは大文字としなければいけない。The rules for pseudocode are as follows: l) Pseudocode keywords must be capitalized.

2個のキーワー)#が一緒に現われるときは(END−THEN )。When two keywords) # appear together (END-THEN).

それらがハイフンでつながれる。They are hyphenated.

2)擬似コードは3番目の欄から始まり、ネスティングの各レベルは2スイース だけ字下げされる。2) Pseudocode starts from the third column, each level of nesting is 2 sweets will be indented.

3)コメントと擬似コードにおけるSgt及び工n1tiα1izeワードの使 用は、しばしばあいまいになる。Re5tの使用は一般に′非作動(又はゼロ) 状態rする1意味として受取られる一方、Set又は工n1tiaハzeの使用 は筆者にとってしばしば同−事を意味するのに、リーグにより異って解釈され得 る。もう少し明確にすれば、このような混乱は避けられる。例えば: Not−’Qashe Motie’ 7ラグを立てるSet the ’Ca che Mode’ flagBLLt・−3et the ’Gache M ode’ flag on。3) Use of Sgt and Engineering n1tiα1ize words in comments and pseudocode The usage is often ambiguous. Use of Re5t is generally 'inactive (or zero) While the state r is taken as one meaning, the use of Set or engineering often mean the same thing to me, but can be interpreted differently depending on the league. Ru. A little more clarity would avoid this confusion. for example: Not-'Qashe Motie' Set the 'Ca che Mode’ flagBLLt・-3et the’Gache M ode' flag on.

Not−8tatus Tahleを初期化■n1tialize the 5 tattbs ’fableBu、t・・E3tatus Table fゼo (XOO)に初期化工rLitialize the 5tatLLs Tab le to zgros(XOO) NO6・・・プリントバッファを初期化Bu、t・・・プリントバッファをブラ ンク(XIO)へ初期化 4)変数は全て次のいずれか A) ’terrLpretu、rn code’等、−重引用符で囲む(これ は単ワード変数を可能とする)、又は B) Temp−Retu、rnJC;ode等、ハイ77で結び、各ワードの 最初のアルファベットを大文字とする。Initialize Not-8tatus Tahl ■n1tialize the 5 tattbs'fableBu, t...E3tatus Table fzeo (XOO) Initialize the 5tatLLs Tab le to zgros(XOO) NO6... Initialize print buffer Bu, t... Blank print buffer Initialize to link (XIO) 4) All variables are one of the following A) 'terrLpretu, rn code' etc. - Enclose in double quotation marks (this allows single word variables), or B) Temp-Retu, rnJC; ode, etc., connect with high 77 and each word Capitalize the first letter.

フラッグは、書式に従うがflagという語を含むが、あるいは変数名の後にb itという語が続く、例えば“stγeczmingactive’flag父 はStreamirLg−Active−Bit 0注:変数のネーミングにつ いて、どちらの規則も許容可能。但し、全モジュール内で一貫すること。Flags follow the format but include the word flag or b after the variable name. followed by the word it, e.g. “stγeczmingactive’flag” is StreamirLg-Active-Bit 0 Note: Regarding variable naming Both rules are acceptable. However, it must be consistent within all modules.

変数名は、モジュール内で最初て使ゎれるとき、どこから来たかを指示すること によって更に変更される。例えば:Tag−Ccde(local) =局所限 定変数Tag−C,ode (L) =局所限定変数Tag−Crode(ir Lput) =本モジュールへ入る変数T(ZダーCode (I) 一本モジ ュールへ入る変数Tag−Qode(ou、tput) =本モジュールから出 る変数Tαg−Code (0) =本モジュールから出る変数Tag−Cod e(GST) =プoo−グのData Strvcctwreセクション内に 対応した略記を 持つ、テーブル中に存在する一 般的変数 0 以下に擬似キーワードを列挙し、その後に使用例を示す。擬似コート9の主な利 点の1つは、コードを小さい結合単位へ分離することにある。つまシ、擬似コー ドは’Do”END’グループを使ってコート9をブロック化するように設計さ れている。The first time a variable name is used within a module, it should indicate where it came from. further modified by For example: Tag-Ccde(local) = local limit Constant variable Tag-C, ode (L) = locally limited variable Tag-Crode (ir Lput) = Variable T (Z Dar Code (I) Ippon Moji that enters this module Variable Tag-Qode (ou, tput) that enters the module = Output from this module Variable Tαg-Code (0) = Variable Tag-Cod output from this module e(GST) = Data in the Strvcctwre section of the program Corresponding abbreviation have, one that exists in the table general variables 0 Pseudo keywords are listed below, followed by usage examples. Main benefits of pseudo court 9 One of the points is to separate the code into smaller binding units. Tsumashi, pseudo-ko Do is designed to block court 9 using the 'Do'END' group. It is.

F THEN(NULL) ELSE(NULL) THEN−D。F THEN(NULL) ELSE(NULL) THEN-D.

END−THEN ELSE−D。END-THEN ELSE-D.

END−ELSE 決定は全て、“IF’のキーワードで始まらねばならない。擬似コードの次の部 分は、どんなアクションが行われるかに依る。END-ELSE All decisions must begin with the “IF” keyword.The next part of the pseudocode The amount of time depends on what action is taken.

例えば、テストの正レッグが1個の擬似命令からのみ成るなら、“THEN’と いう形のコードが使われる。レッグが2又はそれよシ多くの擬似命令から成るな り、“THEN−Do”END−THEN’の形が使われる。For example, if the positive leg of the test consists of only one pseudo-instruction, "THEN" A code of the form is used. The legs consist of two or more pseudo-instructions. The forms “THEN-Do” and “END-THEN” are used.

キーワー)”NULL は、擬似コードを完成させるのに使われるが、ブランチ で使われる可能性がある以外、実際のコードでは現われない。テストがある1つ の条件下で成され、アクションが他の条件下で行われる場合、THEN レッグ がゼロとなり、THEN NULL記述が使われねばならない。ELSEレッグ がゼロなら、ELSE NULLのステー)メントがオプションとなる。NUL L はキーワー)T HE N又はELSF、の一部でないが、アクションが行 われる。従って、ハイフンでは結ばれない。Keyword) “NULL” is used to complete the pseudocode, but the branch It does not appear in actual code, except where it may be used. one with a test If the action is performed under other conditions, THEN leg is zero and the THEN NULL description must be used. ELSE leg If is zero, the ELSE NULL statement is optional. NUL L is not part of the keyword) THE N or ELSF, but the action is be exposed. Therefore, they cannot be connected with a hyphen.

ループ(LOOPS) Do−WHILE END−WHILE DO−UNTIL END−UNTIL ループは数種類の方法でコード化される。いずれにせよ、ループからのエグジッ トに関するチェックが、ループの始めか終りで成される。終りで成されれば、ル ープは必ず少くとも1同突行される。、DO−WHILEは始めでチェックし、 Do−UNTILは終シでチェックする。Loops (LOOPS) Do-WHILE END-WHILE DO-UNTIL END-UNTIL Loops can be coded in several ways. In any case, the exit from the loop A check is made at the beginning or end of the loop. If it is done at the end, le At least one group is always charged. , DO-WHILE is checked at the beginning, Do-UNTIL is checked at the end.

3番目のループは条件に応じてスピンし、その条件が来るが又は去るかを待つ1 ワードゞループである。これらは、キーワーrWAIT を使ってコード化され る一4番目のループは、プロダクトのデバグ段階中に使われるlワードループで ある。これは、生じるべきでなく、高価につくため通常コード化されもしない内 部の論理問題を検出するのに使われる。テスト段階時にこれらの問題を見い出す 試みのため。The third loop spins depending on the condition and waits for that condition to come or go. It's a word loop. These are coded using the keyword rWAIT. The fourth loop is an l-word loop used during the debugging phase of the product. be. This should not occur and is expensive so it is usually not coded. Used to detect logical problems in sections. Discover these issues during the testing phase For an attempt.

キーワー)1’HALT が使われる。HAL前記述は、テスト段階時に1ワー ドループを生じるマクロの実行をもたらす。プロダクトが移されると、マクロは NOP又は−膜化回収ルーチンへ変更し得る。Keyword) 1'HALT is used. The HAL pre-description requires one word during the testing phase. This results in macro execution causing droop. When the product is transferred, the macro Changes may be made to NOP or -film collection routines.

Examples: WA工T for tag valicl to riseルーチング(ROU TING) Keywords : ELECT WHEN Do−WHEN END−WHEN OTHERWISE(NULL) Do−OTHERWISE END−OTHERWISE END−8ELECT この擬似コートゝのケースフオームは、5ELECT、WHEN。Examples: WA engineering T for tag validl to rise routing (ROU TING) Keywords: ELECT WHEN Do-WHEN END-WHEN OTHERWISE (NULL) Do-OTHERWISE END-OTHERWISE END-8ELECT The case form of this pseudo coat is 5ELECT, WHEN.

0THERWXSE のキーワードを使う。選択するものが多くあるとき、1つ のオプションだけを選ぶのに使われる。キーワー1−’WHEN は処理を必要 とするオプションを選ぶのに使われる一方、キーワード○THERWISEはセ レクト構造の終りで残りの又は無効のオプションをキャッチするのに使われる。Use the keyword 0THERWXSE. When there are many choices, choose one Used to select only options. Keyword 1-'WHEN requires processing The keyword ○THERWISE is used to select the option to Used to catch remaining or invalid options at the end of a rect structure.

5ELECT構造内では、キーワード90THERWISEを使わねばならない 。Within the 5ELECT structure, the keyword 90THERWISE must be used. .

OTHERWISEで何らアクションがとられなければ、0THERWISE  NULLの記述を使わねばならない。If no action is taken on OTHERWISE, 0THERWISE A NULL description must be used.

2つのオプションしかなければ、簡単なIF、THEN、ELSE 構造で充分 。1個より多いオプションが可能なら、IF、ヌルELSEを含む、T HE  N 構造が使える。If there are only two options, a simple IF, THEN, ELSE structure is sufficient. . If more than one option is possible, IF, including null ELSE, THE N structure can be used.

Example: 連結(LINKAGE) RECEIVE: TRANSFEB (PAPIM LIST:) INCLUDE ETURN これらのキーワードは、モジュールをブロックするか又は制御を別のモジ一−ル へ移すのて使われる。キーワー)’CALL上のPASS 及びRECEIVE  フィールドは、インターフェイスを狭めるように設計される。どのパラメータ が交換されるかを必ず正確(で記述できること。Example: Linkage RECEIVE: TRANSFEB (PAPIM LIST:) INCLUDE ETURN These keywords block the module or transfer control to another module. It is used after being moved to. Keyword)’PASS and RECEIVE on CALL Fields are designed to narrow the interface. which parameter Be sure to be able to accurately describe what will be exchanged.

モジュール又はサブルーチンが要求され更にリターンが見込てれるとさ、キーワ ードCALL が使われる。リターンが見込まれないと、キーワー)”TRAN SFEBが使われる。TRANSFER中f;、、Re5tal 、 工dle  )li−プヘ戻るTRANSFER制御又は中央エラー回収ハンl’ラーへの エラーエグジット等特殊な状況下でのみ、T P! A l\l5FERは使う べきこと。キーワード−’PARM LISTはオプショナルで、TRANSF ER中にパラメータが通されるとさに使われる。When a module or subroutine is requested and a return is expected, the keyword CALL is used. If no return is expected, the key word) “TRAN” SFEB is used. TRANSFER middle f;,, Re5tal, engineering dle ) Return to li-p TRANSFER control or to central error recovery handler Only under special circumstances such as error exit, TP! A l\l5FER is used What you should do. Keyword-'PARM LIST is optional, TRANSF Used when parameters are passed during ER.

キーワード’INcLUDEは、コードインラインのセグメントをモジュール内 へ含めるのに使スフれる。各セグメントは、モジュールを小さい局所結合ユニッ トヘパッケージするためのものである。これらは1箇所でのみ要求されるので、 サブルーチンの代りに使われる。アドレッシングとアセンブラの制限から、CH 工N0OKシステム中のセグメントはBALR命令を使って実行される。The keyword ’INcLUDE puts a segment of code inline inside a module. It can be used to include. Each segment transforms the module into a small locally connected unit. It is for packaging. These are only required in one place, so Used instead of subroutine. Due to addressing and assembler limitations, CH Segments in the engineering NOOK system are executed using BALR instructions.

Example: 工NCLUDE the read frame id segment〜(’ T’+51f’)’、0 トI11 ON Or−1+N IY15 Ll”1 1.0 ト(1) O’t 0 S N Mj ln1.D I−のOOH〜m ζい冒トのcrto+〜n;いCトの(hor−1〜(ト)5いリドのCh O r−1へnζ0JOJ(”l (Y’I 0)0)(”l a)a)(’I C ”’+ C):r −: :r −3−If 二T:r −7−? −3’ u )ハ)ハ)+4”1 u”t tr’tμ)ば)ぽ)u)’−0’Jフ()() ()*****************、**************** ****いリドのOz Or−t〜m;い(トのo”to呂へ(fijいψトの O”l CI H〜n;い0トの01.0 u 1.01j)’−Dトトトトト トトトトトのののののωののののo″t cyXcr’t o’t os C% GOOOOSへ釦町 ℃トのO’AOSへnコいいトのo’t OF−1へm; いψトの。OS〜薗町00000 000C+5Sr−1r−1r−1r−1+ s++Nll’JN(’IJII(Nl〜HM ty+ (Y’l MS Hr @ A r@ + S ? r@ r−1? r@ S r@r@ r@ +− 1r@ r@ t@ A S r@ A t@ S A r@ A r@ r− 1r@ +−1r@い(トのω(1−1〜mζ い℃トωOO−〜mζい℃トの (1’to+〜m町の℃トnσImmM55+ jj −r−rjjj u’) 11”1LnLハ1.I’■ru凸1.1”I V■rt 1.0 (ハD’− C1ljl ℃℃’、。Example: NCLUDE the read frame id segment~(’ T'+51f')', 0 I11 ON Or-1+N IY15 Ll"1 1.0 (1) O’t 0 S N Mj ln1. DI-'s OOH~m ζ blasphemous crto + ~ n; to r-1 nζ0JOJ ("l (Y'I 0) 0) ("l a) a) ('I C ”’+C):r-::r-3-If 2T:r-7-?-3’u ) C) C) +4”1 u”t tr’tμ) B) Po) u)’-0’Jfu()() ()********************************** ****Oz Oz Or-t~m; O"l CI H~n; 01.0u 1.01j)'-D tototototononononoωnonononoo″t cyXcr’t o’t os C% GOOOOS to Button Town, to O'AOS, to OF-1; Not ψt. OS~Sonocho 00000 000C+5Sr-1r-1r-1r-1+ s++Nll’JN(’IJII(Nl~HM ty+(Y’l MS Hr @Ar@+S? r@r-1? r@S r@r@r@+- 1r@ r@ t @ A S r @ A t @ S A r @ A r @ r- 1r@+-1r@i (ω(1-1~mζ) ℃ωOO-~mζ (1'to+~m town's ℃tonnσImmM55+ jj - r-rjjj u') 11"1LnL 1.I'■ru Convex 1.1"I V■rt 1.0 (HaD'- C1ljl ℃℃’,.

r@ r@ r@ r@ r−I 1−1 +−4S r@ @ S S r@  r@ HS S ? S r@ r@ r@ S r@ Hr@ r@ +− 1r@ +−1@ +−I S■ch OS〜 mζい℃トのO’t O+〜n ζいψトのOt、o t、o トトトl’−トドトドL’−トのののののののの ωのr@ S S S + r−I S r−1r@ r@ W−+−I S  r@ A r@ Hr@ r@ t@ r@Or@CJ (’i3W’−DトC DChOS〜m jffi+jlト0:lo’to+In’15ffi■0s( N(1’t O’tCI’1ChO’tOMhO’lO000000000r+ r−1r−1sr−1r−1r−1r@ r@ @ ++ +−1+−I S  F−1r@ S〜 〜〜〜 〜〜〜〜〜〜〜〜〜〜〜〜へQ 0011”t Q 〜0−00へ N〜 0〜 OOロ f’s”171.f) 田〜O四国−い  困Oρ トロ a氏 声色の H国co zト< sm<< htso ωO+ −4(l’i l:LLI”to 口国x codト1’nmトh tpso  u”to rnrn zr−1u> +−1z6 +O+OjN+QjS OjL j taO−〜QロHロ○ρ 島島四 い L<<C00M1lYlr−N’nOHトドQIb co CD (Oj 0J OJ N (’J○ rnmOJ −r第1図 第4図 第6図 第7図 50 60 70 80 頭 % 逼次ゴー7 第8図 第9図 第1頁の続き 0発 明 者 モレノ・ロバート・ジェイアメリカ合衆国コロラド州80303 ボールダー・ホルムズ・ブレイス5169r@r@r@r@r-I 1-1 +-4S r@@S S r@ r@HS S? S r@ r @ r @ S r @ Hr @ r @ +- 1r@+-1@+-I S■ch OS~mζ ℃とのO't O+~n ζ ψ TO's Ot, ot, o TOTOTO L'-TODOTODO L'-TONONONONONONO ω's r@S S S + r-I S r-1r@ r@ W-+-I S r@A r@Hr@r@t@r@Or@CJ (’i3W’-DtoC DChOS~m jffi+jlto0:lo’to+In’15ffi■0s( N(1’t O’tCI’1ChO’tOMhO’lO000000000r+ r-1r-1sr-1r-1r-1r@ r@@ ++ +-1+-I S F-1r@S~~~~~~~~~~~~~~~~~Q 0011”t Q ~To 0-00 N~ 0~ OOro f’s”171.f) Den~O Shikoku-i Trouble Oρ Toro Mr. A's tone of voice H country coz t<sm<<htso ωO+ -4(l’i l:LLI” to mouth country x cod to 1’nm to h tpso u"to rnrn zr-1u>+-1z6 +O+OjN+QjS OjL j taO-~QroHro○ρ Island island four L<<C00M1lYlr-N’nOH Todo QIb co CD (Oj 0J OJ N (’J○ rnmOJ -rFig. 1 Figure 4 Figure 6 Figure 7 50 60 70 80 heads % Tsuji Go 7 Figure 8 Figure 9 Continuation of page 1 0 shots by Moreno Robert Jay Colorado, USA 80303 Boulder Holmes Brace 5169

Claims (1)

【特許請求の範囲】 1.演算及び論理装置と主メモリ手段を含むホストコンピュータ更に長期間の記 憶手段を備えたクラスのコンピュータシステムにおける動作効率を上昇するため の方法で:移動が効率の上昇をもたらすという指示に応じ、上記ホストコンピュ ータによって要求されていないデータを上記長期間記憶手段から、上記長期間記 憶手段とホストコンピュータの間に介設された固体メモリ手段へ移動する段階か ら成シ、上記指示が、先に要求されたデータが逐次データ流の一部でないという 標識を調べることによって得られ、上記移動が上記標識の存在しないときにのみ 行われる方法。 2、前記枦識が、追加のデータを連続した配憶位置以外から読取られるようにす る指令から成る請求の範囲第1項の方法。 3、前記データが論理トラックへと構成されたディスクドライズ媒体上に格納さ れ、前記標識が存在ぜず且つ先に読取られた前記データが上記論理トラックの1 つのスタート部分を含む場合にのみ、前記移動が行われる請求の範囲第1項の方 法。 4 前記長期間データ記憶手段が、前記ディスクの同心円トラック上にデータが 格納されているディスクトゝライズ手段から成り、前記移動が全1トラツクにつ いて一時に行われ、先に移動されたトラックがホストコンピュータから要求され るにつれて継続するトラックがキャッシュへ移動される請求の範囲第1項の方法 。 5、チャネル手段を介し長期間のデータ記憶手段へ接続されたホストコン上0ユ ータを備え、該ホストコンピュータが長期間1 記憶手段に格納された特定のデータレコードを要求する指令を発するようなデー タ処理システムの効率を向上させるための方法で: 特定のデータレコードをシークするホストコンピュータから発せられた各指令に ついて、その要求されたデータが上記チャネル外側の固体メモリ手段中に格納さ れているかどうかを調べ。 上記データが固体メモリ手段中に格納されていたら、上記データをホストコンピ ュータベ伝送する段階;上記データが固体メモリ手段中に格納されてなければ、 上記長期間データ記憶手段上のそのデータへアクセスして、それを上記チャネル 手段を経ホストコンピュータへ転送し、更に上記データを長期間データ記憶手段 からホストコンピュータへ転送する指令のシーケンスを調べ、上記レコード4が そうした一連のレコードの1つであるかどうかを決定する段階:及び上記レコー ドが一連中の1つであることを上記決定が指示したら、ホストコンピュータから 要求されることを予期して、上記一連中の次のレコードヲ長期間記憶手段から固 体メモリ手段へ読取る段階;から成る方法。 6、所定レコードが一連中の1つであることの指示が、前記データがその一連中 の一部であることを示す標識用の前記指令を調べることによって得られる請求の 範囲第5項の方法。 7、前記データが磁気ディスクドライブ手段に格納され、ディスクがトラック状 に構成され、所定レコードがそうした一連のレコードの一部でないことを示す前 記標識が、同一ディスクの同一トラック上にないレコードがホストコンピュータ へ供給されることを指示する指令から成る請求の範囲第6項の方法。 8.前記レコードゞが長期間記憶手段に格納され、該長期間記憶手段がトラック 状に構成されてデータを格納するディスクドライブ手段から成り、前記データが 長期間記憶手段から固体メモリ手段へトラック訪に読取られる請求の範囲第5項 の方法。 9、長期間磁気配憶手段とそれよシ速いアクセスの固体メモリ手段を備えた配置 手段におけるデジタルデータの記憶制御方法で、上=a固体メモリ手段が、ホス トコンピュータ手段によって上記データが要求される見込みという指示に応じ、 長期間記憶手段に格納されていたデータを含むようにされ、該指示が長期間記憶 手段に格納されたデータをホストコンピュータ手段から先に要求した指令を調べ ることで得られる方法。 10、前記調べが、先に請求されたデータを読取る指令が長期間記憶手段へ逐次 的に格納されていない別のデータを読取る命令を含んでいたかどうか決定するこ とから成る請求の範囲第9項の方法。 11、ホストコンピュータとデータ記憶サブシステムを備え、該ホ/()コンピ ュータがチャネルによってデータ記憶サブシステムへ接続されているデータ処理 システムで、上記データ記憶サブシステムが: 上記チャネルへ接続されるディレクタ;該ディレクタへ接続される制御モジュー ル:及び該制御モジュールへ接続されるディスクドライブ手段;から成り; 上記チャネルがデータ記憶サブシステムの制御のためにディレクタへ信号を転送 し、ホストコンピュータから成された特定データのアクセス請求が上記ディスク のうち1個の一部へ向けられた一連のそうした請求の1つであることを示す信号 を上記信号が含み; 上記データ記憶サブシステムが更に: データ記憶用の固体キャッシュメモリ手段で、該キャツンユメモリ手段がデータ 路によって上記ディレクタへ接続され、該データ路を経てキャッシュがディスク ドライブ手段から受取シ可能で、更にホストコンピュータへの伝送のためディレ クタを介し上記チャネルへデータを出力可能であること;及び上記キャッシュメ モリ手段の動作を制御するためのキャッシュ管理手段で、該キャッシュ管理手段 がデータアクセス動作の実行中にチャネルを介しホストコンピュータからディレ クタへ転送された信号のシーケンスを調べ、特定のデータアクセ側求が上記ディ スクの1つの単一領域へ向けられた一連のそうしたデータアクセス請求の1つで あるかどうかを上記の信号から決定し、更に特定のデータアクセス請求がディス ク上の単一領域へ向けられた一連のそうした要請の1つであるという決定に、応 じ、ホストコンピュータによって要求されていないデータを上記ディスクからデ ィレクタを介し記憶用の固体フィッシュへコe−せしめること:から成る方法。 12、所定シリーズのデータ流指令を長期間メモリサブシステムへ出力する型の ホストコンピュータと該サブシステム間におけるデータ流の制御方法で、上記所 定シリーズのデータ流指令が、特定のデータ請求が一連のそうした請求の1つで あることを示す指示を含まず、上記サブシステムがディスクビライブ手段、制御 モジュール手段、記憶ディレクタ手段、固体キャッシュメモリ手段及びキャッシ ュ管理手段を備えたものにおいて:ホストコンピュータから出力された上記所定 シリーズの指令に応答する段階; 上記シリーズの指令を調べ、いずれか1つのデータ請求が一連のそうした請求の 1つと成るかどうかを調べる段階:上記決定の結果と関わりなく各データ請求に 応じて、ホストコンピュータから要求されていない第1量のデータをディスクド ライブ手段からキャッシュメモリ手段へ移動させる段階;及び 上記請求が一連のそうした請求のの1つと成ることを上記決定が示した々ら、比 較的大きい第2量のデータを上記ディスクドライブ手段からキャッシュメモリ手 段へ移動させる段階;から成る方法。 13、前記第1量のデータが最大限1デイスクトラツクに対応し、前記第2量の データが少くとも1つのディストラックに対応している請求の範囲第12項の方 法。 14 ホストコンピュータへ接続されるキャッシュメモリサブシステムの制御方 法において、該サブシステムが:固体キャッシュ記憶手段とキャッシュ管理手段 から成シ、該キャッシュ管理手段がホストコンピュータと記憶ディレクタ間で転 送される信号を調べ、該ディレクタを介し磁気データ記憶手段からキャッシュ記 憶手段へ及び該ディレクタを介しキャッシュ記憶手段からホストコン上0ユータ ヘ向かうデータの流れを5 制御するためのキャッシュ制御信号を出力し、上記キャッシュ管理手段がホスト コンピュータの読取った請求を満たす間にホストコンピュータから出力された制 御信号を調べ、該請求を満たした後、該請求が一連のこうした請求の1つである かどうかの決定を上記制御信号から行い、もしそうなら、ホストコンピュータに よるそのような追加データの請求を見込んで、ホストコンピュータから要求され ていない追加データのキャッシュ記憶手段への流れを制御する方法。[Claims] 1. The host computer, including its arithmetic and logic units and main memory means, also provides long-term storage. To increase the operating efficiency of a class of computer systems equipped with storage means. In the manner of: The host computer data unrequested by the computer from said long-term storage means. Is it the stage of moving to a solid state memory means interposed between the storage means and the host computer? configuration, the above instructions indicate that the previously requested data is not part of the sequential data stream. Obtained by examining the sign, and the above movement is only when the above sign is not present. The way it is done. 2. The constraint allows additional data to be read from non-consecutive storage locations. The method of claim 1, comprising a directive to: 3. The data is stored on a disk drive medium organized into logical tracks. and the indicator is not present and the previously read data is in one of the logical tracks. The method according to claim 1, wherein the movement is performed only when the starting portion includes two start portions. Law. 4. The long-term data storage means stores data on concentric tracks of the disk. It consists of a stored disc toning means, and the said movement is carried out on one whole track. This is done at one time and the previously moved track is requested from the host computer. The method of claim 1, wherein successive tracks are moved to the cache as the track progresses. . 5. 0 units on the host computer connected via channel means to long-term data storage means. If the host computer is equipped with a data that issues a command requesting a particular data record stored in a storage means. In a way to improve the efficiency of data processing systems: For each command issued by the host computer that seeks a particular data record and the requested data is stored in solid state memory means outside said channel. Check to see if it is. If the above data is stored in solid state memory means, the above data can be transferred to the host computer. computer transmission step; if the data is not stored in solid state memory means; accessing that data on said long-term data storage means and transmitting it to said channel; transfer the data to a host computer, and store the above data as a long-term data storage device. Check the sequence of commands transferred from to the host computer, and find that the above record 4 determining whether the record is one of a set of such records; and If the above decision indicates that the code is one of a series, then from the host computer The next record in the series is frozen from long-term storage in anticipation of being requested. a method comprising the steps of: reading into a body memory means; 6. An indication that a given record is one of a series indicates that the data is one of a series. of claims obtained by examining the said directive for signs indicating that it is part of the Method of scope item 5. 7. The data is stored in a magnetic disk drive means, and the disk is in the form of a track. is configured to indicate that a given record is not part of such a set of records. If the record is not on the same track on the same disk, the host computer 7. The method of claim 6, further comprising an instruction to be supplied to the computer. 8. The record is stored in a long-term storage means, and the long-term storage means is tracked. comprising disk drive means configured to store data, said data being Claim 5 Read from the long-term storage means to the solid-state memory means on a track visit. the method of. 9. Arrangements with long term magnetic storage means and faster access solid state memory means. A method for controlling the storage of digital data in a means, in which the solid-state memory means In response to instructions that the said data is likely to be requested by computer means; The instruction is configured to include data previously stored in long-term storage means, and the instructions are stored in long-term storage means. Examining previously requested commands from the host computer means data stored in the means A method that can be obtained by 10. The command to read the previously requested data is sequentially stored in the long-term storage means. Determine whether the instruction contained an instruction that reads other data that is not stored in the The method of claim 9, comprising: 11, comprising a host computer and a data storage subsystem; data processing where a computer is connected to a data storage subsystem by a channel In the system, the data storage subsystems listed above are: Director connected to the above channel; Control module connected to the director a disk drive means connected to the control module; The above channels forward signals to the director for control of the data storage subsystem Requests for access to specific data made by the host computer may be sent to the above disk. A signal indicating that one of a series of such claims is directed to one part of The above signal includes; The above data storage subsystem further: solid state cache memory means for storing data; A data path connects the cache to the director, and the cache is connected to the disk via the data path. Receiveable from drive means and further directed to a directory for transmission to a host computer. be able to output data to the above channel via the Cache management means for controlling the operation of the memory means, the cache management means receives instructions from the host computer over the channel while performing data access operations. The sequence of signals transferred to the In one of a series of such data access requests directed to one single area of the Determine from the above signals whether a particular data access request is In response to the decision to be one of a series of such requests directed at a single area on the Similarly, data not requested by the host computer may be removed from the disk. A method comprising: transferring the liquid to a solid storage fish through a director. 12. A type of device that outputs a predetermined series of data flow commands to the long-term memory subsystem. A method for controlling data flow between a host computer and the subsystem, which A fixed series of Data Flow Directives will ensure that a particular data request is one in a series of such requests. does not contain any instructions indicating that the subsystem is module means, storage director means, solid state cache memory means and cache In a device equipped with a management means: the above prescribed information output from the host computer. The stage of responding to series directives; Examine the above series of Directives and find that any one data request is part of a series of such requests. Step to find out whether it becomes one: regardless of the outcome of the above decision Accordingly, the first amount of data not requested by the host computer is transferred to the disk drive. moving from the live means to the cache memory means; and As the above decision shows that the above claim constitutes one of a series of such claims, A relatively large second amount of data is transferred from the disk drive means to the cache memory. A method comprising the steps of: 13. The first amount of data corresponds to one disk track at most, and the second amount of data corresponds to at most one disk track. Claim 12, wherein the data corresponds to at least one diss track Law. 14. How to control the cache memory subsystem connected to the host computer In the law, the subsystems include: solid state cache storage means and cache management means. The cache management means transfers between the host computer and the storage director. The signals sent are checked and the data stored in the cache is stored from the magnetic data storage means via the director. storage means and from the cache storage means on the host computer via the director. The flow of data towards The above cache management means outputs a cache control signal for controlling the host. Controls output from the host computer while fulfilling computer-read requests After examining the control signal and satisfying the claim, the claim is one of a series of such claims. A determination is made from the above control signals whether the host computer requested by the host computer in anticipation of requests for such additional data by A method of controlling the flow of additional data to the cache storage means.
JP50006984A 1982-11-15 1983-11-14 Detection of sequential data streams Pending JPS59502044A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US441901FREGB 1982-11-15
PCT/US1983/001772 WO1984002014A1 (en) 1982-11-15 1983-11-14 Detection of sequential data stream

Publications (1)

Publication Number Publication Date
JPS59502044A true JPS59502044A (en) 1984-12-06

Family

ID=22175572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50006984A Pending JPS59502044A (en) 1982-11-15 1983-11-14 Detection of sequential data streams

Country Status (1)

Country Link
JP (1) JPS59502044A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58155464A (en) * 1981-11-27 1983-09-16 ストレ−ジ・テクノロジ−・コ−ポレ−シヨン Detection of sequential data stream

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58155464A (en) * 1981-11-27 1983-09-16 ストレ−ジ・テクノロジ−・コ−ポレ−シヨン Detection of sequential data stream

Similar Documents

Publication Publication Date Title
WO1984002014A1 (en) Detection of sequential data stream
US4468730A (en) Detection of sequential data stream for improvements in cache data storage
CN101410797B (en) Method, device and system for transactional memory in out-of-order processors
JP2830218B2 (en) Failure handling method for disk controller with cache
US4800483A (en) Method and system for concurrent data transfer disk cache system
JP3273254B2 (en) Fast, high-performance, defect-tolerant, error-correctable storage system for binary computers
CN101023414B (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US7225431B2 (en) Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US4428064A (en) Controlling buffered peripheral subsystems
KR100243853B1 (en) Method and apparatus for an improved memory architecture
US8028284B2 (en) Data processing system and program for transferring data
US4040034A (en) Data security system employing automatic time stamping mechanism
US4290103A (en) System and method for achieving buffer memory coincidence in a multiprocessor system
EP1235154B1 (en) Cache memory system
US5960453A (en) Word selection logic to implement an 80 or 96-bit cache SRAM
CN101458725B (en) Microcontroller chip and debug method thereof
US7051191B2 (en) Resource management using multiply pendent registers
US5717956A (en) System for batch processing of commands by emulating command string and record format if the string detector detects command is of a specified command string
EP0473314B1 (en) Peripheral data processing system control apparatus
US20020169933A1 (en) Scalble memory
JPH09509515A (en) Data processing system exception recovery
RU2183850C2 (en) Method of performance of reading operation in multiprocessor computer system
JPS59502044A (en) Detection of sequential data streams
KR20010006774A (en) Method and apparatus for implementing automatic cache variable update
US20080282050A1 (en) Methods and arrangements for controlling memory operations