WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Intelligent controller accessed through addressable virtual space    
United States Patent6493811   
Link to this pagehttp://www.wikipatents.com/6493811.html
Inventor(s)Blades; Jerry A. (Broomfield, CO), Dewey; Matthew C. (Broomfield, CO), Thompson; Bruce A. (Golden, CO), Van Maren; David J. (Fort Collins, CO), Wilson; James M. (Superior, CO)
AbstractFile operations on files in a peripheral system are controlled by an intelligent controller with a file processor. The files are accessed as if the intelligent controller were an addressable virtual storage space. This is accomplished first by communicating controller commands for the intelligent controller through read/write commands addressed to a Command Region of a virtual storage device. The controller commands set up a Mapped Data Region in the virtual storage device for use in controlling data transfer operations to and from the peripheral system. With the Mapped Data Regions set up, blocks of data are transferred between the host and the intelligent controller in response to read/write commands addressed to the Mapped Data Region of the virtual storage device. In an additional feature of the invention file operations are communicated between host and controller through a device driver at the host and a device emulator at the intelligent controller. If the address in the device write/read command is pointing to the Command Region of the virtual storage device, a Command Region process interprets and implements the controller operation required by the controller command embedded in the device write/read command. One of these controller commands causes the Command Region processor to map a requested file to a Mapped Data Region in the virtual storage device. If the address detected by the detecting operation is in a Mapped Data Region, a Mapped Data Region process is called. The Mapped Data Region process reads or writes requested data of a file mapped to the Mapped Data Region addressed by the read/write command. This mapped file read or write is accomplished as a transfer of data over a data path separate from a control path. In an additional feature of the invention, the data transfer between host system and intelligent controller is accomplished by performing a direct memory access transfer of data.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6493811
Intelligent controller accessed through addressable virtual space - US Patent 6493811 Drawing
Intelligent controller accessed through addressable virtual space
Inventor     Blades; Jerry A. (Broomfield, CO) , Dewey; Matthew C. (Broomfield, CO) , Thompson; Bruce A. (Golden, CO) , Van Maren; David J. (Fort Collins, CO) , Wilson; James M. (Superior, CO)
Owner/Assignee     Computer Associated Think, Inc. (Islandia, NY)
Patent assignment
All assignments
Publication Date     December 10, 2002
Application Number     09/233,979
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 20, 1999
US Classification     711/203 711/111 711/112 711/147 711/148 711/202 711/6
Int'l Classification    
Examiner     Nguyen; Than
Assistant Examiner    
Attorney/Law Firm     Cooper & Dunham LLP
Address
Parent Case     This application claims the benefit of provisional application Ser. No. 60/072,582 filed Jan. 26, 1998, the contents of which are herein incorporated by reference.
Priority Data    
USPTO Field of Search     711/147 711/148 711/118 711/203 711/147 711/148 711/114 711/6 707/10 707/101 710/52
Patent Tags     intelligent controller accessed through addressable virtual space
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5463772
Thompson et al.

Oct,1995

[0 after 0 votes]
5357614
Pattisam et al.

Oct,1994

[0 after 0 votes]
5262875
Mincer et al.

Nov,1993

[0 after 0 votes]
5218685
Jones

Jun,1993

[0 after 0 votes]
5126739
Whiting et al.

Jun,1992

[0 after 0 votes]
5077737
Leger et al.

Dec,1991

[0 after 0 votes]
5001628
Johnson et al.

Mar,1991

[0 after 0 votes]
4918588
Barrett et al.

Apr,1990

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. Mass storage system controller apparatus receiving requests for access to files in a data storage system and managing access to the files in the data storage system, the data storage system having a plurality of storage devices and the requests being addressed to the data storage system as a single virtual storage device having addressable Command Regions allocated to controller commands and addressable Mapped Data Regions allocated for data storage, said apparatus comprising: a file system to manage access to files in the data storage system, said file system having a processor functioning as a Command Region processor and functioning as a Mapped Data Region processor; and a disk emulator responding as a disk drive device to write/read commands and passing the write/read commands addressed to Command Regions of the virtual storage device to the Command Region processor, the write/read commands addressed to Command Regions containing controller commands for the file system, the Command Region processor responding to controller commands in the write/read commands and processing the controller commands to control files in the data storage system, said disk emulator responding as a disk drive device to write/read commands and passing write/read commands addressed to a Mapped Data Region of the virtual storage device to the Mapped Data Region processor, and the Mapped Data Region processor responding to a write/read command with a Mapped Data Region address and transferring data to or from the data storage system for files mapped to the Mapped Data Region address, wherein the controller commands includes a map command with map arguments for a Mapped Data Region and said Command Region processor responds to the map command and map arguments, and maps files in the data storage system to the Mapped Data Regions.

2. The apparatus of claim 1 wherein the file system comprises a paging system for managing direct memory access transfers of data, and the apparatus further comprises: buffers set up by the Mapped Data Region processor for direct memory access transfers of data in a file, said paging system performing a direct memory access transfer of data through said buffers for files mapped to the Mapped Data Region address in the write/read command with the Mapped Data Region address.

3. The apparatus of claim 1 and further comprising: a host computing system, wherein the host computing system generates the request for access to the data storage system.

4. The apparatus of claim 1 wherein the plurality of storage devices comprise a plurality of disk drives and a memory with cache, and when the data requested in a read command with a Mapped Data Region address is in cache, said paging system performs a direct memory access transfer of data from cache.

5. The apparatus of claim 1 wherein the request is from another mass storage system control apparatus and the apparatus of claim 1 is one of the plurality of storage devices in the data storage system managed by said another mass storage system control apparatus.

6. A method providing write/read access to a data storage system through a virtual storage device, said method comprising: communicating storage system control commands through write/read commands to a Command Region of the virtual storage device, said control commands setting up a Mapped Data Region in the virtual storage device for use in data transfer operations to and from the data storage system; detecting an address in the write/read command; selecting a Command Region process if the address is in the Command Region of the virtual storage device; processing storage system control commands with the Command Region process to map a file in the data storage system to a Mapped Data Region in the virtual storage device; and transferring data to and from the data storage system through write/read commands to the Mapped Data Region of the virtual storage device.

7. The method of claim 6 wherein said transferring data step further comprises: selecting a Mapped Data Region process if the address detected by said detecting step is in a Mapped Data Region; processing write/read operations to read or write data in a file mapped to the Mapped Data Region addressed by the write/read command so as to transfer data in the file mapped to the Mapped Data Region from or to the data storage system.

8. The method of claim 6 wherein the virtual storage device is a virtual disk drive, the read/write commands are disk drive write/read commands, and said method further comprises: emulating a disk drive to handle the disk drive write/read commands whereby the communicating step communicates storage system control commands through the write/read commands and the transferring step transfers files mapped to a Mapped Data Region addressed by a write/read command.

9. The method of claim 8 wherein the requests for access to the data storage system originate at a host computing system.

10. The method of claim 9 wherein a plurality of disk drives are connected to the data storage system, and said data storage system has a memory with cache and said transferring data step further comprises: direct memory access transfer of files from one or more of the plurality of disk drives from or to the cache and then from or to the cache to the host computing system.

11. The method of claim 7 wherein said processing write/read operations step further comprises: getting data transfer buffers in the data storage system; and performing a direct memory access transfer from a storage device in the data storage system to or from the data transfer buffers.

12. A peripheral system controller for controlling file operations on a plurality of peripheral devices in response to file operation requests to the peripheral system, said controller comprising: means for providing an addressable virtual storage device and responding to storage device write/read commands to the peripheral system as if the peripheral system is a virtual storage device; first means for processing controller commands embedded in the write/read commands received by the controller and addressed to a first region of the virtual storage device; said first means in response to a controller command for performing file control operations in the peripheral system; and second means in response to a write/read command addressed to the second region of the virtual storage device for transferring data to or form a file in the peripheral system, wherein, said first means in response to a controller map command defines a second region of the virtual storage device and maps a file to the second region, and said second means in response to a write/read command addressed to the second region of the virtual storage device transfers data to or from the file mapped to the second region addressed in the write/read command.

13. The controller apparatus of claim 12, further comprising: a host computing system for generating the file operation requests for the peripheral system: means in the host computing system for communicating access commands of a type required by the virtual storage device provided by said providing means.

14. The controller apparatus of claim 12, further comprising: a plurality of host computing systems, each host computing system generating file operation requests for the peripheral system; driving means in each host computing system for communicating access commands for the virtual storage device; and wherein said providing means is a plurality of providing means, at least one providing means matching each type of driving means in the plurality of host computing systems.

15. The controller apparatus of claim 12 wherein said providing means comprises a disk drive emulator and the addressable virtual storage device comprises a virtual disk drive.

16. The controller apparatus of claim 12 wherein said providing means comprises a memory emulator and the addressable virtual storage device comprises a virtual memory.

17. The controller apparatus of claim 12, wherein the file operation requests include storage operations and printing operation, and said peripheral system comprises: means for storing data from a storage operation request; and means for printing data from a printing operation request.

18. An intelligent controller having a processor for performing file control operations and data transfer operations in response to file operation requests to the controller, said intelligent controller comprising: an emulator for emulating an addressable virtual storage device; said virtual storage device having a plurality of command regions for virtual storage of controller command data including controller commands and control information; said processor in the intelligent controller receiving controller commands and control information embedded in virtual storage device write commands and executing the controller commands in accordance with the control information; said virtual storage device having a plurality of data regions for virtual storage of file data; and said processor in the intelligent controller receiving virtual storage device write/read commands addressed to data regions and transferring data over a data path separate from a control path for the virtual storage device write/read commands.

19. The intelligent controller of claim 18, further comprising: a protocol module working with said emulator detecting when the virtual storage device write/read command is addressed to a command region and calling said processor to act as a command region processor; and said command region processor executing the controller command in the write/read command addressed to the command region.

20. The intelligent controller of claim 19 wherein the controller command is a map command and said command region processor executes the map command to map the location of a file to a data region in the virtual storage device.

21. The intelligent controller of claim 19 wherein said protocol module works with said emulator for detecting when the virtual storage device write/read command is addressed to a data region and calling said processor to act as a data region processor; and said data region processor in response to the write/read command addressed to the data region transferring data addressed in the data region.

22. The intelligent controller of claim 20 wherein said protocol module works with said emulator for detecting when the virtual storage device write/read command is addressed to a data region and calling said processor to act as a data region processor; and said data region processor in response to the write/read command addressed to the data region transferring data addressed in the data region.

23. In an intelligent controller having a processor, a method for performing file control operations and data transfer operations in response to file operation requests to the controller, said method comprising: emulating an addressable virtual storage device, said virtual storage device having a plurality of command regions for virtual storage of controller command data including controller commands and control information and having a plurality of data regions for virtual storage of file data; receiving controller commands and control information embedded in virtual storage device write commands; executing the controller commands in accordance with the control information; receiving virtual storage device write/read commands addressed to data regions; and transferring data, requested in the virtual storage device write/read commands addressed to a data region, over a data path separate from a control path for the virtual storage device write/read commands.

24. The method of claim 23 wherein said step of receiving controller commands and control information comprises: detecting a virtual storage device write command addressed to a command region; and collecting the controller command and control information embedded in the virtual storage device write command addressed to the command region.

25. The method of claim 24 wherein the controller command is a map command and said executing step maps a location of a file to a data region in the virtual storage device.

26. The method of claim 24 further comprising: detecting when the virtual storage device write/read command is addressed to a data region and calling said step of transferring data.

27. The method of claim 25 further comprising: detecting when the virtual storage device write/read command is addressed to a data region and calling said step of transferring data.

28. A computer program storage medium readable by a computing system and encoding a computer program including computer executable code for executing a computer process for providing write/read access to a data storage system through a virtual storage device, said computer program storage medium comprising: code for communicating storage system control commands through write/read commands to a Command Region of the virtual storage device, said control commands setting up a Mapped Data Region in the virtual storage device for use in data transfer operations to and from the data storage system; and code for detecting an address in the write/read command; code for selecting a Command Region process if the detected address is in the Command Region of the virtual storage device; code for processing storage system control commands with the Command Region process to map a file in the data storage system to a Mapped Data Region in the virtual storage device; and code for transferring data to and from the data storage system through write/read commands to the Mapped Data Region of the virtual storage device.

29. The computer program storage medium of claim 28 wherein said code for transferring further comprises: code for selecting a Mapped Data Region process if the detected address is in a Mapped Data Region; code for processing write/read operations to read or write data in a file mapped to the Mapped Data Region addressed by the write/read command so as to transfer data in the file mapped to the Mapped Data Region from or to the data storage system.

30. The computer program storage medium of claim 29 wherein said code for processing write/read operations further comprises: code for getting data transfer buffers in the data storage system; and code for performing a direct memory access transfer from a storage device in the data storage system to or from the data transfer buffers.

31. A computer program product for executing a computer process in an intelligent controller for a data storage system, said computer program product being loadable into the intelligent controller and encoding a program of instructions causing the intelligent controller to perform file control operations and data transfer operations in response to file operation requests to the controller, said computer program product comprising: instructions for emulating an addressable virtual storage device, said virtual storage device having a plurality of command regions for virtual storage of controller command data including controller commands and control information and having a plurality of data regions for virtual storage of file data; instructions for receiving controller commands and control information embedded in virtual storage device write commands addressed to a command region; instructions for executing the controller commands in accordance with the control information: instructions for receiving virtual storage device write/read commands addressed to a data region; and instructions for transferring data, requested in the virtual storage device write/read commands addressed to a data region, over a data path separate from a control path for the virtual storage device write/read commands.

32. The computer program product of claim 31 wherein said instructions for receiving controller commands and control information comprise: instructions for detecting a virtual storage device write command addressed to a command region; and instructions for collecting the controller command and control information embedded in the virtual storage device write command addressed to the command region.

33. The computer program product of claim 32, wherein the controller command is a map command and said instructions for executing maps a location of a file to a data region in the virtual storage device.

34. The computer program product of claim 32 further comprising: instructions for detecting when the virtual storage device write/read command is addressed to a data region and calling said instructions for transferring data.

35. The computer program product of claim 33 further comprising: instructions for detecting when the virtual storage device write/read command is addressed to a data region and calling said instructions for transferring data.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to an intelligent controller having a control path and a data path to the controller separately accessed through addressable virtual space. The invention also relates to a computer peripheral system architecture and a control system protocol capable of communicating commands, messages, control information and data between a peripheral system and one or more host computers in a manner independent of the type of peripheral devices and the type of host computers.

2. Description of the Related Art

Computing systems having a peripheral system.connected to the host through a controller are of course well known. Particularly, computing systems having a large mass storage system connected as a part of a virtual file system are known. Such a system has been implemented with a computing system having a peripheral system adapter in a virtual file system connected through a SCSI (Small Computing System Interface) bus to a peripheral file system containing the mass storage system. The peripheral system adapter provides the interface between the virtual file system and the host and the peripheral file system. The host system is a UNIX system. As is well known, the virtual file system protocol, along with entities in the virtual file system being identified as "vnodes," allows the virtual file system to incorporate multiple types of file systems into a virtual file system that appears to the host as a single system.

The system calls at the host are converted to vnode file commands at the virtual file system. The vnode file commands, along with embedded data in each command, are passed to the peripheral file system. The peripheral file system converts the vnode file commands to driver commands, and executes the commands to handle the data passed with the vnode file commands.

The problem with communicating with the peripheral file system through vnode file commands with embedded data is that the communication is quite limited compared to the capability of the peripheral file system. File systems are designed to optimize data transfer operations as in DMA (Direct Memory Access) operations. By communicating vnode commands with embedded data between the peripheral file system and the host, the embedded data is neither block-aligned nor page-aligned. Aligning this data to appropriate boundaries, so that it is useable, requires an extra copy step. Also, by communicating the data embedded in the vnode commands, the handling of the data requires all the overhead associated with processing commands. This is in stark contrast to DMA operations where data with proper page blocks is transferred directly between memory and disk drive.

What is needed is a mass storage system controller and a communication protocol between the virtual file system at the host and the storage system controller so that commands from the host to the controller are standard commands, and data can be presented back to the host in a proper form to be passed in a DMA operation.

SUMMARY OF THE INVENTION

Partial Summary of Features

In accordance with this invention, the above problems have been solved by providing access to data in a peripheral system controlled by an intelligent controller, and this access is provided as if the intelligent controller were an addressable virtual storage space. This is accomplished first by communicating controller commands for the intelligent controller through read/write commands addressed to a Command Region of a virtual storage device.

The controller commands set up a Mapped Data Region in the virtual storage device for use in data transfer operations to and from the peripheral system. With the Mapped Data Regions set up, blocks of data are transferred between the host and the intelligent controller through read/write commands addressed to the Mapped Data Region of the virtual storage device.

In an additional feature of the invention, file operations are communicated between host and controller through a device driver at the host and a device emulator at the intelligent controller. If the address in the device write/read command is pointing to the Command Region of the virtual storage device, a Command Region process interprets and implements the controller operation required by the controller command embedded in the device write/read command. One of these controller commands causes the Command Region process to map a requested file or file portion to a Mapped Data Region in the virtual storage device. If the address detected in the device write/read command is in a Mapped Data Region, a Mapped Data Region process is called. The Mapped Data Region process reads or writes a requested file or file portion mapped to the Mapped Data Region addressed by the read/write command. This mapped file read or write is accomplished as a transfer of data separate from the transfer of commands.

In an additional feature of the invention, the data transfer between host system and intelligent controller is accomplished by performing a direct memory access transfer of data.

Utility and Advantages

This invention provides a new architecture to allow multiple computers with different operating systems to share data and storage at storage speeds. Many of the limitations of today's storage devices can be eliminated with this new architecture. Further, this architecture is able to integrate new ideas and functionality without disruption of the existing behavior or causing significant impact to the operating system itself

When multiple host computers attempt to access the storage system, all unused storage space is available to any host connected. The storage space is not prepartitioned among hosts. Hosts are allocated storage as needed. If one host needs the storage, it can use any or all of the available space. If a host deletes a file, that space is available to any other host. This dynamic storage sharing operates automatically and transparently. Also, it does not matter what type of host is connected to the storage system controller so multiple types of hosts may be connected to the same intelligent controller.

Data can be shared by multiple hosts, and this data sharing is at the storage level. Two hosts connected to the same storage can copy, move, or access each other's data at the storage level. Each host has access to any file written by any host. When one user writes a file, that file is available to any other user on any other host, given the correct permissions. All this is done without burdening any other computer or any network connecting the host computers.

This invention provides an intelligent controller capable of dynamic storage sharing and true data sharing to block level devices. The advantages of such a combined system are enormous. Any server, no matter what operating system it is running, can access and modify files written by any other server, no matter its operating system, directly at storage interface speeds. No copy need be involved. Any server can use any available storage. No longer are administrators required to unload data from a RAID device, reconfigure the partitions to add more storage to a full partition, and then reload the data, all while the data is inaccessible by users.

Storage Area Networks (SAN) will benefit most from the architecture of this invention. Dissimilar servers can be connected to the SAN and share data and storage. Storage can be added to the network independent of the hosts. Any existing addressable storage can remain on the same interconnect, albeit with the same limitations.

The invention is storage technology independent. Storage technology vendors can develop and support storage devices with vastly different characteristics with the same host integration. RAID, optical DVD towers, jukeboxes, etc., can all have the same interface to the host computer. This means storage vendors can release technology independent of operating system schedules to get solutions to their customers sooner.

The invention allows capacity to be added seamlessly without the need to bring the system down for a long reconfiguration process. Existing data does not need to be offloaded then reloaded when the capacity is added. . After new space is added, it is available to any host. Any file can become larger and any directory can hold more files.

Other features, utilities and advantages of the invention will be understood by those of ordinary skill in the art after referring to the complete written description of the preferred embodiments of the invention in conjunction with the following drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows a first preferred embodiment of the invention where the intelligent controller is a mass storage system controller connected to a single host and the peripheral system is a storage system with a plurality of disk drive devices.

FIG. 2 is a map of virtual storage space 20 of a virtual random access, addressable storage device which is the storage space perceived by the host.

FIG. 3 is a diagram indicating the flow of commands and data between host and intelligent controller through the virtual storage space 20.

FIG. 4. illustrates the logical operations performed by the host file system in executing a read/write request from the virtual file system 68 in FIG. 1.

FIG. 5 shows the logical operations performed by the CR write/read operation 29 or module 37 in FIG. 4 as it writes and reads controller command data to/from Command Regions in virtual storage space 20.

FIG. 6 shows the logical operations performed by the MDR write/read module 39 in FIG. 4 as it write and reads to/from Mapped Data Regions in virtual space 20 to control data transfers.

FIG. 7 illustrates the division of processing operations at the processor in the intelligent controller based on detection of the I/O command address to the virtual storage space 20.

FIG. 8 illustrates the logical operations performed by the intelligent controller in processing commands passed from the host in a disk-drive write command.

FIG. 9 illustrates the logical intelligent controller in processing a write file command to write data to the storage system in FIG. 1.

FIG. 10 illustrates the logical operations performed by the intelligent controller in processing a read file command to read data from the storage system in FIG. 1.

FIG. 11 shows another preferred embodiment of the invention where virtual storage device is any device with addressable space such as a disk device, memory, etc.

FIG. 12 shows another preferred embodiment of the invention where a plurality of hosts are connected to the intelligent controller through a variety of device drivers and emulators and through a variety of channels.

DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION

The embodiments of the invention described herein are implemented as logical operations in an intelligent controller for operating with one or more host computing systems. The logical operations of the present invention are implemented (1) as a sequence of computer-implemented steps running on a computer processor in the intelligent controller, and (2) as interconnected machine modules within the intelligent controller. The implementation is a matter of choice, dependent on the performance requirements of the intelligent controller implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps or modules.

FIG. 1 illustrates the system architecture of a host system 10 and an intelligent controller, such as a mass storage system controller (MSSC) 12, according to a first preferred embodiment of the invention. The host system is connected to the mass storage system controller through a conventional disk driver 14 across a SCSI channel or fibre channel 16. MSSC 12 is a computing system and is implemented as a personal computer or workstation computer, such as those based on any of the INTEL-compatible processor designs, or various other processor designs. Intelligent controller or MSSC 12 may also be implemented as a computing system board having a processor and memory and with the board mounted in the frame of a host computer. Alternatively, MSSC 12 may be mounted separately as a standalone computer located remotely from the host. Host 10 might be a large standalone computing system, or a network of host stations all sharing the MSSC 12. Also, host 10 might be a server station in a network of stations for the distributed processing of information.

Disk driver 14 uses standard commands for raw disk I/O (input/output); the commands are DASD protocol commands designed for a disk device with which the disk driver is designed to work. Also, in the preferred embodiment, the channel is a SCSI channel, Fibre Channel or various other versions of SCSI or Fibre Channel. Other types of channels may be used such as SSA (serial storage architecture) and SCSI on IP (Internet protocol). Of course, the disk driver, in addition to following the DASD protocol for the type of disk device it works with, must also follow the channel protocol over which its commands are being passed. In any case, the disk driver is generating raw disk I/O commands which are being used as a communication link to the mass storage system controller. There are no unusual or unique commands required in the communication between host and mass storage system controller. From the perspective of the host file system 18, disk driver 14 is driving a virtual disk 20 (FIG. 2) with a capacity of several terabytes. The size of the virtual disk is only limited by the ability of the host system to address it.

In FIG. 2, the virtual disk 20 is divided into regions with each such region containing a sequential number of blocks in a block-addressable space. A block may be defined to encompass any amount of space; as used herein a block refers to the smallest size of addressable space usually in a random access storage device. Such a space is known as a sector in a disk storage device. Sectors are typically 512 bytes, but they might be other sizes, such as 256 bytes, 1024 bytes, 2048 bytes, etc. depending on the disk device.

The virtual disk 20 in the preferred embodiment is organized into four types of addressable regions--a first Bypass Region 26, a Command Region (CR) 32, a Mapped Data Region (MDR) 30 and a second Bypass Region 28. The first Bypass Region 26, based on the protocol for the virtual disk 20, is defined as being at the beginning of the virtual disk, and the second Bypass Region space 28 is similarly defined as being at the end of the virtual disk. There are "x" number of blocks in a Bypass Region. In the preferred embodiment a Bypass Region is about 1 MB. A Command Region 32 has "m" number of sequential blocks and there are "n" number of Command Regions. The "m" number of sequential blocks for a Command Region is a matter of design choice and depends upon the amount of command information to be conveyed as will be described shortly. Likewise the number "n" of Command Regions is not fixed, but eventually the control protocol of the embodiments of the invention must know where to find Command Regions on the virtual disk. All remaining addressable space on the virtual disk 20 is available to the Mapped Data Regions 30. Each Mapped Data Region (MDR) has "p" number of sequential blocks and there are "q" number of possible Mapped Data Regions. The virtual disk space consumed by all of the Command Regions (m multiplied by n) plus all of the Mapped Data Regions (p multiplied by q) plus both of the Bypass Regions (x multiplied by 2) can not exceed the total virtual disk space.

In the preferred embodiment of the invention, CR space 22 follows the first Bypass Region 26. MDR space 24, i.e., space available to be mapped into MDRs, extends from the end of the CR space 22 to the start of the second Bypass Region space 28. Other locations for CRs and MDRs may be specified, and these regions may even be scattered randomly about the virtual disk. However, as will be described hereinafter, the range of space allocated to CRs and MDRs is used by the processor in the intelligent controller so the location of space for CRs or for MDRs is either predefined or tracked by the processor in the intelligent controller.

The size of a Mapped Data Region is preferably 128 MB (Megabytes), but this size is a matter of design choice for the storage system. Other choices might include 64 MB, 256 MB, 512 MB or other sizes that are not necessarily a power of 2. The choice of size for a Mapped Data Region is made with storage system performance in mind. The MDR size should be large enough to encompass very large files. There is software overhead for mapping and unmapping each MDR, so larger MDRs incur less overhead for large files. However, more, smaller MDRs can be used within a given virtual space and thus may accommodate more files being simultaneously read from and written to. Accordingly, the system designer will select a size for Mapped Data Regions with this trade off in mind.

CR space 22 in the preferred embodiment is the range of addressable space containing all the Command Regions (CRs) 32. In the first preferred embodiment of FIG. 1 and as shown in FIG. 2, each CR has nine sectors 34 with 512 bytes per sector. The first CR is a Finite State Machine CR (FSM CR) 32A. The FSM CR is used to bootstrap communications between the host and the Mass Storage System Controller (MSSC). All remaining CRs 32 in CR space 22 are written-in, or read-out by, disk driver 14 (FIG. 1) as a communication link to pass file processing commands from the host file system 18 to the file processor in mass storage system controller 12.

As discussed earlier, the mass storage system controller is an intelligent controller having a processor. The processor operates as various processing agents depending upon the detected address in the read/write command passed from the host file system through the disk driver to the mass storage system controller. When there is a read command from the host that is addressed to FSM CR 32A, the processor acting as the file system, or control system, at the mass storage system controller initiates a response to identify itself to the host file system that it is a file system controller and not simply a disk drive. The host file system then picks up that it is working with the MSSC file system and not simply a disk drive. The host file system then operates to build disk I/O read/write commands with MSSC file system commands embedded in the read write commands. These read/write commands are addressed to CRs 32 in the range of CR space 22 of the virtual disk 20.

The number, size and location of the regions and spaces making up the virtual disk 20 are discussed above for the first preferred embodiment of the invention in FIGS. 1-3. Depending on different uses of the invention, other sizes and locations may be used as a matter of design choice. Also more regions and spaces may be defined. As will be explained hereinafter, organizing a virtual disk to have Command Regions and Mapped Data Regions facilitates the separate flow of commands and data between host and mass storage system controller. Accordingly, commands are used to set up the mass storage system for data transfer operations such as DMA operations, and the DMA operations are used to rapidly transfer data between the mass storage system and the host.

As shown in FIG. 1, there are three paths in host 10 between disk driver 14 and the host file system 18. Control path 36 carries controller commands with control information to be passed to the Mass Storage System Controller (MSSC) 12 for action, or carries controller status returned to the host file system 18. Data path 38 is a high-capacity channel for passing pages of data, as in DMA transfers of data, between MSSC 12 and cache/memory 40 in host 10. The third path through message daemon 44 is for messages, particularly error messages associated with errors in writing or reading of data by file system 46 in MSSC 12.

The Mass Storage System Controller commands and control information on control path 36 are written-in, or read-from, a Command Region (CR) 32 in the CR space 22 (FIG. 2) of the virtual disk 20. These read/write operations for the control path have all of the normal processing overhead associated with raw disk I/O. For example, each write operation is followed by a read operation to return status information about the execution of the command sent to the MSSC file system 46 during the write operation. The controller commands for use by file system 46 of the MSSC 12 are written to CR space 32 for execution by command processors in MSSC. Controller file system commands passed from host file system 18 to the MSSC file system 46 via CR space 32 are, for example: connect/disconnect, filename lookup, mkdir/rmdir (make directory/remove directory), rddir (read directory), map/unmap MDRs, and map/unmap CRs.

For example, a controller map command is used to set up Mapped Data Regions (MDRs) for data transfers. The data paths 17, 38 and 54 are for passing pages of data between memory 40 and memory 42 by way of DMA transfers. Data paths 58 and 66 are for DMA transfers of data between disk devices 64 and memory 42. The capability of performing a DMA transfer is set up by the writing and reading of map controller commands through the Command Regions 32 to define addressable space in an MDR for a file containing the pages. While DMA transfers use hardware to perform the data transfer-operation in this preferred embodiment, alternative data transfer processes that can be used include programmed I/O and coherent memory. Programmed I/O uses a software controlled processor to perform the data transfers. Coherent memory is a process where a write to a first location immediately shows up at another location. In any data transfer process, the transfer is controlled through an MDR in the preferred embodiments of the invention.

In the DMA transfer of pages of data through data path 38, there is no path provided for error messages indicating an error. Error conditions in the execution of controller commands sent to the controller via the Command Regions 32 are returned to the host during the read status operation which immediately follows the command write operation. However, at the operation level of DMA transfers, there is no read status operation. Accordingly, message daemon 44 provides an error message path between the host and the MSSC so that if there is an error, the host will receive back a message indicating there was an error in a read or write data operation.

As explained above, disk driver 14 is talking to MSSC 12 using DASD protocol, raw I/O disk drive read/write commands as if the MSSC was a disk drive. In effect, the flow between disk driver 14 and MSSC 12 is a communication link using DASD protocol. Therefore, the first layer of operations at MSSC 12 is disk emulation. Disk emulator module 48 interfaces with the raw disk I/O commands from disk driver 14 to respond as a disk device to the disk driver. One significant advantage in using the disk driver and DASD protocol as a communication link is that disk emulator module 48 is easily reprogrammed to emulate other disk devices working potentially on other interfaces with the host system. Also, in new computing system designs, disk drivers are among the earliest drivers provided for new systems. Therefore, the mass storage system will be available to the new system by only reprogramming the disk emulator module to work with the new disk driver.

Disk emulator 48 receives from disk driver 14 the DASD protocol communication containing the controller commands and arguments. Together, the controller command and arguments, or control information, are referred to herein as controller command data. Protocol module 50 includes the command processors and function objects called by the logical operations described herein to process controller command data. The controller commands with arguments (controller command data) pass over control path 52 to file system 46. The page reads and writes, as DMA transfers, pass over high capacity data path 54 from/to cache and memory 42. The third path is the error message path controlled by message daemon 44 to read error messages from the paging system 47 if an error occurs. The message daemon path is also used for other communic