Outboard file cache system
First Claim
1. A data processing system comprising:
- a host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files and includes a file-identifier referencing one file of said one or more files and a logical offset referencing a selected portion of said one file, said host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said host processor;
an outboard file cache coupled to said input-output logic section of said host processor and responsive to said file access commands, wherein said outboard file cache provides cache storage for said one or more files and comprisesa cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files;
a file descriptor table, wherein said file descriptor table provides storage of file-identifiers and offsets which are indicative of portions of said one or more files which are present in said cache memory;
cache detection control interfaced with said file descriptor table and responsive to said file access commands, wherein said cache detection control detects whether said selected portion is present in said cache memory and provides a hit code if said selected portion is present in said cache memory; and
cache access control responsive to said hit code and interfaced with said cache memory, wherein said cache access control provides access to said selected portion of said one file if said hit code is provided.
9 Assignments
0 Petitions
Accused Products
Abstract
A system and method are described for caching files of data in a cache which is beyond the input/output boundary of a host. A host references a file with file access commands containing a logical file-identifier and a logical offset into the file. An outboard file cache coupled to the input/output section of the host receives the file access commands. The outboard file cache is transparent to users who program the host. Generation of input/output channel programs and mapping the data referenced to a physical address in secondary storage are eliminated when the referenced data is present in the cache. A file descriptor table in the outboard file cache identifies the logical portions of the logical files which are present in the cache. If the data referenced by the logical file-identifier and logical offset in a file access command is present in the outboard file cache, the data is transferred from the outboard file cache to the host memory. Otherwise, a miss status is returned to the host, and the host stages data from secondary storage to the outboard file cache. The outboard file cache further includes a lock table for storing file locks which inhibit access to selected files. In an outboard cache, excessive writes to a file are detected, the outboard cache having the first division for storage of selected portions of normal files, and a second division for storage of selected the second division is monitored and automatically converted to the first division when the storage used in the second division of cache memory falls below the periodic minimum.
252 Citations
37 Claims
-
1. A data processing system comprising:
-
a host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files and includes a file-identifier referencing one file of said one or more files and a logical offset referencing a selected portion of said one file, said host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said host processor; an outboard file cache coupled to said input-output logic section of said host processor and responsive to said file access commands, wherein said outboard file cache provides cache storage for said one or more files and comprises a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files; a file descriptor table, wherein said file descriptor table provides storage of file-identifiers and offsets which are indicative of portions of said one or more files which are present in said cache memory; cache detection control interfaced with said file descriptor table and responsive to said file access commands, wherein said cache detection control detects whether said selected portion is present in said cache memory and provides a hit code if said selected portion is present in said cache memory; and cache access control responsive to said hit code and interfaced with said cache memory, wherein said cache access control provides access to said selected portion of said one file if said hit code is provided. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A data processing system comprising:
-
a first host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files and includes a file-identifier referencing one file of said one or more files and a logical offset referencing a selected portion of said one file, wherein one of said file access commands is a lock command, said first host processor including an input-output logic section which provides an interface for input of data to said first host processor and output of data from said first host processor; a second host processor for issuing file access commands wherein said one or more files are accessible by each of said first and said second host processor, said second host processor including an input-output logic section which provides an interface for input of data to said second host processor and output of data from said second host processor; an outboard file cache coupled to said input-output logic section of said first host processor and coupled to said input-output logic section of said second host processor and responsive to said file access commands from said first host processor and said second host processor, wherein said outboard file cache provides cache storage for said one or more files; said outboard file cache comprising, a cache memory, wherein said cache memory provides random access storage for selectable portions of said one or more files; a file descriptor table, wherein said file descriptor table provides storage for file-identifiers and offsets which are indicative of portions of said one or more files which are present in said cache memory; cache detection control interfaced with said file descriptor table and responsive to said file access commands, wherein said cache detection control detects whether said selected portion is present in said cache memory and provides a hit code if said selectable portion is present in said cache memory; and cache access control responsive to said hit code and interfaced with said cache memory, wherein said cache access control provides access to said one or more requested segments if said hit code is provided. - View Dependent Claims (12, 13)
-
-
14. A data processing system comprising:
-
a host processor for issuing file access commands, wherein each file access command defines an operation to be performed on a selectable one of one or more files, said host processor including an input-output logic section which provides an interface for input of data to said host processor and output of data from said host processor, wherein each of said file access commands includes a file-identifier referencing one of said one or more files and an offset referencing a selected portion of said one file; an outboard file cache coupled to said input-output logic section of said host processor and responsive to said file access commands, wherein said outboard file cache provides cache storage for said one or more files; said outboard file cache comprising, a cache memory, wherein said cache memory provides random access storage for said one or more files; a file descriptor table for storage of file-identifiers and offsets which are indicative of portions of said one or more files which are present in said cache memory, wherein said file descriptor table further includes one or more stage-pending indicators for designating when portions of files are being staged; cache detection control interfaced with said file descriptor table and responsive to said file access commands, where in said cache detection control detects whether said selected portion of said one file is present in said cache memory, provides a hit code if said selected portion is present in said cache memory, provides a miss code if said selected portion is not present in said cache memory, and provides a resend code if a stage-pending indicator indicates that said selected portion is being staged to said cache memory; cache access control responsive to said hit code and interfaced with said cache memory, wherein said cache access control provides access to said selected portion of said one file if said hit code is provided; a secondary storage device responsively coupled to said input-output logic section of said host processor for storing said one or more files; staging means responsive to said miss code for reading said selected portion of said one file from said secondary storage device and writing said selected portion in said cache memory; and resend means responsive to said resend code for resending a file access command if said resend code is provided. - View Dependent Claims (15)
-
-
16. In a data processing system including a host processor having one or more instruction processors, primary storage, and an input-output section interfacing with devices external to the host processor, wherein the data processing system further includes one or more secondary storage devices and an outboard file cache, each coupled to the input-output section of the host processor, wherein the data accessible to the host processor is logically grouped into one or more files and the secondary storage devices provide storage for the one or more files, and the files are referenced by providing a file access command to the operating system of the host processor, a method for providing access to a selectable portion of the one or more files of data, comprising the steps of:
-
issuing a file access command to the outboard file cache, wherein the file access command includes a file-identifier and a file-relative-segment-offset, said file-identifier referencing a selected file, and said file-relative-segment-offset referencing a selected portion of said selected file; comparing the file access command to file-identifiers and file-relative-segment-offsets stored in the outboard file cache to detect whether said selected portion of said selected file is present in the outboard file cache; and providing access to said selected portion of said selected file if said selected portion is present in the outboard file cache. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A cache system responsive to data access commands issued by a host processor in a data processing system, wherein each of the data access commands designates an operation to perform on data addressed by the command and a data type indicating whether the data addressed by the command is resident data or replaceable data, wherein resident data presently stored in the cache is not subject to cache replacement and replaceable data presently stored in the cache is subject to cache replacement, the cache system comprising:
-
a cache memory; cache detection control responsive to a data access command, wherein said cache detection control detects whether the data addressed by the data access command is present in said cache memory, provides a hit code if the data addressed by the data access command is present in said cache memory, and provides a miss code if the data addressed by the data access command is not present in said cache memory; cache access control interfaced with said cache memory and responsive to said hit code, wherein said cache access control provides access to the data addressed by the data access command if said hit code is provided; cache replacement control responsive to said miss code and the data access command, wherein said cache replacement control selects a portion of said cache memory in which replaceable data is stored for storing the data addressed by the data access command if said miss code is detected and the data type in the data access command is replaceable data; and resident data storage control responsive to said miss code and the data access command, wherein said resident data storage control selects a portion of said cache memory in which is neither resident data nor replaceable data is stored for storing the data addressed by the data access command if said miss code is detected and the data type in the data access command is resident data. - View Dependent Claims (31, 32)
-
-
33. In a cache system responsive to data access commands issued by a host processor in a data processing system, wherein each of the data access commands designates an operation to perform on data addressed by the command and a data type indicating whether the data addressed by the command is resident data or replaceable data, wherein resident data presently stored in the cache is not subject to cache replacement and replaceable data presently stored in the cache is subject to cache replacement, a method of operating the cache system comprising the steps of:
-
detecting whether the data addressed by a data access command is present in the cache; providing access to the data addressed by the data access command if the data addressed is present in the cache; selecting a portion of the cache in which replaceable data is stored for storing the data addressed by the data access command if the data addressed is not present in the cache and the data type in the data access command is replaceable data; and selecting a portion of the cache in which is neither resident data nor replaceable data is stored for storing the data addressed by the data access command if the data addressed is not present in the cache and the data type in the data access command is resident data. - View Dependent Claims (34, 35, 36)
-
-
37. In a cache system responsive to data access commands issued by a host processor in a data processing system, wherein each of the data access commands designates an operation to perform on data addressed by the command and a replacement level indicating a relative priority for which the data addressed by the command is subject to cache replacement once the data addressed by the command is stored in memory of the cache system, a method of operating the cache system comprising the steps of:
-
detecting whether the data addressed by a data access command is present in the memory of the cache system; providing access to the data addressed by the data access command if the data addressed is present in the memory of the cache system; selecting a portion of the memory of the cache system in which data with the lowest replacement level is stored for storing the data addressed by the data access command if the data addressed is not present in the memory of the cache system; storing the data addressed by the data access command in said portion of the memory of the cache system from said selecting step; reading the replacement level from the data access command; associating the replacement level from the data access command with said portion of the memory of the cache system from said selecting step, whereby the data access command provides said replacement level; and decreasing replacement levels associated with portions of the memory of the cache system which are not selected for storing the data addressed by the data access command.
-
Specification