throbber
APPLICATION ELEMENTS
`See MPEP chapter 600 concernin utili patent application contents.
`r+J Fee Transmittal Form (e.g., PTO/SB/17)
`1. L:.J
`(Submzt an ongmal and a duplicate for fee proce:.!>rng}
`f"+7 Applicant claims small entity status.
`2· L±J See 37 CFR 1.27.
`[Total Pages ~
`Specification
`3. G]
`(preferred arrangement set forth below)
`- Descriptive title of the invention
`- Cross Reference to Related Applications
`- Statement Regarding Fed sponsored R & D
`- Reference to sequence listing, a table,
`or a computer program listing appendix
`- Background of the Invention
`- Brief Summary of the Invention
`- Brief Description of the Drawings (jf filecf)
`- Detailed Description
`- Claim(s)
`- Abstract of the Disclosure
`4. [!] Drawing(s) (35 U.S.C. 113)
`5. Oath or Declaration
`(cid:143)
`a. EJ Newly executed (original or copy)
`Copy from a prior application (37 CFR 1.63 (d))
`(for continuation/divisional with Box 18 completed)
`i. 0 DELETION OF INVENTOR(S)
`
`[ Total Sheets
`
`[ Total Pages
`
`00
`D
`
`b.
`
`Signed statement attached deleting inventor(s)
`named in the pnor appltcatIon, see 37 CFR
`1 63(d)(2) and 1 33(b)
`
`Application Data Sheet. See 37 CFR 1.76
`
`(when there is an assignee)
`
`Attorney
`
`b. Specification Sequence Listing on:
`i. D CD-ROM or CD-R (2 copies); or
`ii. D paper
`c. D Statements verifying identity of above copies
`ACCOMPANYING APPLICATION PARTS
`9. D Assignment Papers (cover sheet & document(s))
`(cid:143) 37 CFR 3.73(b) Statement D Power of
`10•
`11. D English Translation Document (if applicable)
`(cid:143) Information Disclosure D Copies of IDS
`13.(cid:143)
`12·
`14.EB
`15.(cid:143)
`16.(cid:143)
`17.(cid:143)
`
`Citations
`
`Statement (IDS)/PTO-1449
`Preliminary Amendment
`Return Receipt Postcard (MPEP 503)
`(Should be specifically itemized)
`Certified Copy of Priority Document(s)
`(if foreign priority is claimed)
`Nonpublication Request under 35 U.S.C. 122
`(b)(2)(B)(i). Applicant must attach form PTO/SB/35
`or its equivalent.
`.............................................. ..
`Other:
`
`(o -ti-- 0
`
`\
`
`Approved for use through 10/31/2002 0MB 0651-00321-<
`U.S. Patent and Trademark Office; U S DEPARTMENT OF COMMERCEll,c-,;Ji
`
`_
`
`;;-
`M
`
`On/ for new nonprovisional applications under 37 CFR 1.53 b
`
`PTO/SB/05 {03-01) 0 =
`Please type a plus sign{+) ms1de this box - - . 0
`Under the Paperwork Reduction Act of 1995, no persons are required to respond to a collection of information unless it displays a valid 0MB control number .• ~ =~
`-~ =~
`1203
`UTILITY
`Attome Docket No.
`PATENT APPLICATION
`a-.:....:.Fi=-=-rs;:...:.t1:,;_,;nv=-'en;.:..:.toi'-'-r~_....____,__,H_an_.,-_gy--.-o-,-o-.K=-i_m.;-.,-----,-,--......-~
`=---'--'-D-=is=k=S=y_s=-t-=em::.....:_pA=da=pte,_,__1d_to_Be_Di_re_c_t1y_,,,c:::::,
`TRANSMITTAL
`Title Attached to NetworK
`l-
`Ex ress Mail Label No. ~-rg43 7 'if 'i O 8 f L\
`Assistant Commissioner for Patents
`Box Patent Application
`Washin ton, DC 20231
`
`ADDRESS TO:
`7. D CD-ROM or CD-R in duplicate, large table or
`Computer Program (Appendix)
`8. Nucleotide and/or Amino Acid Sequence Submission
`(if applicable, all necessary)
`
`a. D Computer Readable Form (CRF)
`
`6. D
`18. If a CONTINUING APPLICATION, check appropriate box, and supply the requisite information below and in a preliminary amendment,
`or in an Application Data Sheet under 37 CFR 1. 76:
`D1v1s1onal D
`D Continuation D
`Contmuat1on-m-part (CIP}
`
`of pnor appl1cat1on No ..
`
`Group ArtUntt
`Exammer________
`Priorapplrcat10nmformat10n·
`For CONTINUATION OR DIVISIONAL APPS only; The entire disclosure of the prior application, from which an oath or declaration is supplied under
`Box Sb, is considered a part of the disclosure of the accompanying continuation or divisional application and is hereby incorporated by reference.
`The incorporation can only be relied upon when a portion has been inadvertently omitted from the submitted application parts.
`
`D
`
`Customer Number or Bar Code Label
`
`or ~ Co"espondence address below
`
`Name
`
`Address
`
`City
`
`Country
`
`Chung K. Ko
`1263 Lakeside Dr. #2190
`
`Sunnyvale
`U.S.A.
`
`CA
`State
`Telephone 408-655-4678
`
`Zip Code 94085
`08-7 49-078
`
`Fax
`
`Name (Print/Type)
`
`Registration No. (Attorney/Agent)
`
`Date
`Signature
`0 '
`Burden Hour Statement This form Is estimated to take 0.2 hours to complete Time will vary depending upon the needs of the individual ase Any omments on
`the amount of time you are required to complete this form should be sent to the Chief Information Officer, U.S Patent and Trademark Office, Washington. DC
`20231. DO NOT SEND FEES OR COMPLETED FORMS TO THIS ADDRESS SEND TO Assistant Commissioner for Patents, Box Patent Application.
`Washington, DC 20231
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 1
`
`

`

`PTO/SB/17 (10-01)
`Approved for use through 10/31/2002. 0MB 0651-0032
`U.S. Patent and Trademark Office; U.S. DEPARTMENT OF COMMERCE
`Under the Paoerwork Reduction Act of 1995 no oersons are reauired to resoond to a collection of information unless it disolavs a valid 0MB control number.
`~
`Complete if Known
`
`r
`
`FEE TRANSMITTAL
`for FY 2002
`
`Patent fees are subJect to annual revision.
`
`\.... TOTAL AMOUNT OF PAYMENT
`
`I ($) 1333.oo
`
`METHOD OF PAYMENT
`The Commissioner is hereby authorized to charge
`indicated fees and credit any overpayments to:
`
`1 ·
`
`Account
`
`Number~:::::::::::::::::::::::::::::::~
`
`Account
`Name
`
`._ _______________ ___.
`
`I
`I
`
`Application Number
`
`Filing Date
`
`First Named Inventor
`
`Examiner Name
`
`Group Art Unit
`
`October 9 2001
`Han-avoo Kim
`
`Attorney Docket No.
`
`1LU.5
`
`FEE CALCULATION (continued)
`3. ADDITIONAL FEES
`Small
`Large
`Entity
`Entity
`Fee
`Fee Fee Fee
`Code ($) Code
`($)
`65 Surcharge - late filing fee or oath
`105 130 205
`
`Fee Description
`
`127
`
`50 227
`
`25 Surcharge - late provisional filing fee or
`cover sheet
`
`139 130 139 130 Non-English specification
`
`Fee Paid
`
`147 2,520 147 2,520 For filing a request for ex parte reexaminatIon1-----1
`112 920* 112 920* Requesting publication of SIR prior to
`Examiner action
`113 1,840* 113 1,840* Requesting publication of SIR after
`Examiner action
`Extension for reply within first month
`Extension for reply within second month
`
`115 110 215
`116 400 216 200
`
`55
`
`106 330
`
`107 510
`
`108 740
`114 160
`
`214
`
`Fee Description
`
`Fee Paid
`
`117 920 217 460
`
`Extension for reply within third month
`
`118 1,440 218 720
`
`Extension for reply within fourth month
`
`128 1,960 228 980
`
`Extension for reply within fifth month
`
`119 320 219 160
`120 320 220 160
`121 280 221 140
`138 1,510 138 1,510
`
`Notice of Appeal
`Filing a brief in support of an appeal
`Request for oral hearing
`Petition to institute a public use proceeding
`
`Petition to revive - unavoidable
`
`(cid:143)
`Deposit I
`Deposit I
`(cid:143) Charge Any Additional Fee Required
`(cid:143)
`2. (cid:143)
`
`Under 37 CFR 1.16 and 1.17
`Applicant claims small enbty status
`See 37 CFR 1 27
`Payment Enclosed:
`
`(cid:143) Credit card D Money
`
`Ii]
`
`Check
`
`Order
`FEE CALCULATION
`1. BASIC FILING FEE
`Large Entity Small Entity
`Fee Fee Fee Fee
`Code ($) Code ($)
`201 ~ Utility filing fee
`101 740
`206 165 Design filing fee
`207 255 Plant filing fee
`208 370 Reissue filing fee
`80 Provisional filing fee
`
`D Other
`
`SUBTOTAL (1) ! ($) 370.00 I
`
`140 110 240
`
`55
`
`2. EXTRA CLAIM FEES
`
`Fee from
`Ext~ims ~ Fee Paid
`x~~ 5851
`[]:fil
`-20··=
`Total Claims
`x[AD~ 3Z8 I
`Independent
`r-;r;'il
`L.....1..."-.1 -3**=
`Claims
`c=:t~
`I
`Multiple Dependent
`
`141 1,280 241 640
`
`PetIt1on to revive - unintentional
`
`142 1,280 242 640
`143 460 243 230
`144 620 244 310
`122 130 122 130
`
`Utility issue fee ( or reissue)
`Design issue fee
`Plant issue fee
`
`Petitions to the Commissioner
`
`Large Entity Small Entity
`Fee Fee Fee Fee
`Code ($) Code~
`203 kx.
`18
`103
`84
`102
`104 280
`
`Fee Description
`
`Claims in excess of 20
`
`Independent claims in excess of 3
`202 ~
`204 140
`Multiple dependent claim, if not paid
`
`109
`
`84
`
`209 42
`
`110
`
`18
`
`210
`
`9
`
`** Reissue independent claims
`over original patent
`
`** Reissue claims in excess of 20
`and over original patent
`
`SUBTOTAL (2)
`
`I($)963.oo 1
`
`.. or number previously paid, if greater; For Reissues, see above
`
`123
`
`50 123
`
`50
`
`126 180 126 180
`
`Processing fee under 37 CFR 1.17(q)
`Submission of Information Disclosure Stmt
`
`581
`
`40 581
`
`40
`
`Recording each patent assignment per
`property (times number of properties)
`
`146 740 246 370
`
`149 740 249 370
`
`Filing a submission after final re1ectIon
`(37 CFR § 1.129(a))
`For each add1t1onal invention to be
`examined (37 CFR § 1.129(b))
`
`179 740 279 370
`
`Request for Continued Examination (RCE)
`
`169 900 169 900
`
`Request for expedited examination
`of a design application
`
`Other fee (specify) _____________ -;;a=---====~
`I
`!{$) 0.00
`SUBTOTAL (3)
`
`*Reduced by Basic Filing Fee Paid
`
`SUBMITTED BY
`Name (Printffype)
`
`Signature
`
`Chung K. Ko
`
`42,753
`
`Complete (if appflcable)
`Telephone 408-655-678
`Date
`
`, t)
`
`0
`
`m may become public. Credit card information should not
`be included on this form. Provide credit card information and authorization on PTO-2038.
`Burden Hour Statement: This form is estimated to take 0.2 hours to complete. Time will vary depending upon the needs of the individual case. Any comments on
`the amount of time you are required to complete this form should be sent to the Chief Information Officer, U.S. Patent and Trademark Office, Washington, DC
`20231. DO NOT SEND FEES OR COMPLETED FORMS TO THIS ADDRESS. SEND TO: Assistant Commissioner for Patents, Washington, DC 20231.
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 2
`
`

`

`Express Mailing No. T=Ti43 71gi O ~'8 US
`ChungK. Ko
`
`1263 Lakeside Drive #2190
`Sunnyvale, California 94085
`Reg.# 42,753
`Tel: 408-655-4678
`
`Fax:408-749-0782
`
`Date:
`
`October 9, 2001
`
`To:
`
`Re:
`
`Assistant Commissioner for Patents
`Box Patent Application
`Washington, DC 20231
`Tel: 800-786-9199
`
`Utility Patent Application
`Title: Disk System Adapted to Be Directly Attached to Network
`Docket No. 1203
`Inventor.-: Han-gyoo Kim
`
`Dear Sir or Madam:
`
`Enclosed please find
`(1) utility patent application
`(2) executed inventor declaration
`(3) cover sheet for utility patent application
`(4) fee transmittal sheet
`(5) a self-stamped post card to be returned
`(6) a check of $..l.i}J_ (small entity)
`
`Thank you very much for your attention.
`
`Sincerely,
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 3
`
`

`

`DISK SYSTEM ADAPTED TO BE DIRECTLY ATTACHED
`
`TO NETWORK
`
`Inventor: Han-gyoo Kim
`
`REIATED APPLICATION
`
`This application claims the benefit of co-pending U.S. Provisional Application
`
`Ser. No. 60/240,344, filed October 13, 2000, entitled "Disk System Adapted to Be
`
`Directly Attached to Network."
`
`BACKGROUND OF THE INVENTION
`
`Technical Field
`
`This invention in general relates to computer systems. More specifically, this
`
`invention relates to a disk system or interface that can be directly attached to a network.
`
`Description of the Related Art
`
`As the Internet becomes popular, the amount of data that needs to be stored has
`
`drastically increased. Especially, there is a high demand for a high-capacity disk drive
`
`to store multimedia data.
`
`For example, a demand for a disk system having a disk
`
`capacity of terabytes per server is not unusual.
`
`A tape drive or a CD drive may be used to store such amount of data, but its
`
`performance and user convenience are not matched to those of a hard disk drive.
`
`However, increasing the capacity of a hard disk in a conventional server system presents
`
`some problems.
`
`There are NAS (Network Attached Storage) products that can be connected to
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 4
`
`

`

`a network, usually Ethernet, to provide a pre-configured disk capacity along with
`
`integrated system/storage management using the NFS (Network File System) protocol,
`
`the CIFS (Common Internet File System) protocol, or both on top of the IP protocol
`
`used on the Internet. The primary purpose of these protocols is to exchange files
`
`between independently operating computers. Therefore, the client using the NAS for
`
`file access experiences the difference between its local storage and the storage in the
`
`NAS systems.
`
`The NAS is basically a stripped-down version of a file server having mainly
`
`the functions of storing and retrieving files. Accordingly, increasing a disk capacity
`
`using a NAS product amounts to adding a separate file server in practice, which
`
`presents many shortcomings. Since an NAS disk is not seen as a local disk to the
`
`client, the installation, movement, and administration of an NAS disk should be done
`
`only through the operating system and software offered as part of the NAS system. An
`
`NAS disk is installed in the inside bus of the NAS system, leading to a limitation to the
`
`number of disks that can be installed. Since the NAS system has a hard disk under its
`
`own operating system, the client cannot use an arbitrary file system to access the hard
`
`disk. Further, the NAS system requires an IP address. Overall, not only the
`
`installation and administration costs per disk are more expensive than those of a local
`
`disk, but also user convenience is severely restricted.
`
`There is SAN (Storage Area Network) that uses the Fibre Channel technology.
`
`To use the devices connected to a SAN, a special-type of switch is needed. For
`
`example, Fiber Channel uses a Fibre Channel hub or a Fibre Channel switch. The
`
`SAN has some shortcomings. Typically, a separate file server is used.
`
`In general, the
`
`SAN equipment is expensive, and so is the administration cost of the SAN system
`
`2
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 5
`
`

`

`because, for example, it often requires an administrator with a specialized knowledge on
`
`the system.
`
`Therefore, there is a need for an interface that allows a disk system to be
`
`directly attached to a network, while still being accessed like a local disk without the
`
`need of adding an additional file server or special equipment.
`
`SUMMARY OF THE INVENTION
`
`It is an object of the present invention to provide a disk system that can be
`
`directly attached to a network connecting to a host without going through a network file
`
`system.
`
`Another object is to provide a disk system that can be recognized and used as a
`
`local disk to a host without requiring additional facility such as an additional file server,
`
`a special switch, or even an IP address, if appropriate.
`
`Still another object of the present invention is to provide a disk system that can
`
`be conveniently connected to a server without much intervention of network/server
`
`administration.
`
`Yet another object is to provide a low-cost disk system, many of which can be
`
`plugged into existing network ports to readily satisfy a disk capacity demand.
`
`Further object is to provide an interface that allows a device attachable to a bus
`
`to be plugged into a network port.
`
`The foregoing and other objects are accomplished by providing a network(cid:173)
`
`attached disk (NAD) system that includes an NAD device for receiving a disk access
`
`command from a host through a network, a device driver at the host for controlling the
`
`NAD device through the network, where the device driver recognizes the NAD device
`
`3
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 6
`
`

`

`as a local device. The host may run the UNIX or Windows family of operating
`
`systems. The NAD device includes a disk for storing data, a disk controller for
`
`controlling the disk, and a network adapter for receiving a disk access command from
`
`the host through a network port.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of an environment where a network-attached disk
`
`(NAD) system of the present invention is used.
`
`FIG. 2 is an illustration of how multiple NAD devices may be accessed by
`
`multiple hosts through a network.
`
`FIG. 3 is an example of how multiple NAD devices are accessed by multiple
`
`hosts.
`
`FIG. 4 is another example of how each disk inside an NAD may be treated as a
`
`separate disk.
`
`FIG. 5 is an illustration of how a block device driver, specifically an NAD
`
`device driver, is registered and unregistered under the UNIX operating system.
`
`FIG. 6 is an illustration of the relation among the directory, device file, device
`
`driver, and device.
`
`FIG. 7 is an illustration of how a request function directly issues a command to
`
`a device.
`
`FIG. 8 is an illustration of how a request function activates a device accessing
`
`thread.
`
`FIG. 9 is a block diagram of a local disk system and that of an NAD device
`
`running under UNIX.
`
`4
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 7
`
`

`

`FIG. 10 is an illustration of a device searching thread for identifying the
`
`attached NAD devices and for providing the NAD information to the NAD device
`
`management program.
`
`FIGS. llA and llB are examples of network connections made between an
`
`NAD device driver and its corresponding NAD device using a connection setting thread.
`
`FIG. 12 is an illustration of a method of implementing an NAD device driver,
`
`using a device accessing thread.
`
`FIG. 13 is an illustration of a method of implementing an NAD device driver,
`
`without using a device accessing thread.
`
`FIG. 14 is an example of an NAD device construction.
`
`FIG. 15 is a functional block diagram of an NAD controller.
`
`FIG. 16 is a simplified state transition diagram of a state machine used by the
`
`main controller of an NAD controller.
`
`FIG. 17 is an illustration of how a disk inside an NAD device may be divided
`
`into disk partitions to which a device driver is assigned.
`
`FIG. 18 is an illustration of how separate NAD device drivers may be
`
`generated so that a physically single disk can be assessed by different file systems.
`
`FIG. 19 is an illustration of how the NAD system can recognize physically
`
`separate, several NAD disks as a logically single disk.
`
`FIGS. 20A and 20B are illustrations of the hierarchies of the disk driver layers
`
`in the conventional disk system and the NAD system under the Windows 2000
`
`operating system.
`
`FIG. 21 is an illustration of a network environment where the NAD system of
`
`the present invention is used in the Windows 2000 operating system.
`
`5
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 8
`
`

`

`FIG. 22 is an example of a device stack created in the Windows 2000 operating
`
`system.
`
`FIG. 23A is an illustration of the flow of IRP, SRB, and CDB in a conventional
`
`disk system in the Windows 2000 operating system.
`
`FIG. 23B is an illustration of the flow of IRP, SRB and COB in an NAO
`
`system in the Windows 2000 operating system.
`
`FIG. 24 is an illustration of NDIS (Network Device Interface Specification) in
`
`the Windows 2000 operating system.
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`FIG. 1 shows an environment where the present invention is used. A host 100
`
`has a file system 101, which may contain a local disk device driver 102 that controls a
`
`local disk 104 connected to an internal system bus 103. A local device is defined as a
`
`device inside a standard-alone system as opposed to a network device connected to a
`
`network. Local devices are directly connected to a system bus often through an
`
`adapter called a host bus adapter allowing the host to communicate with the devices
`
`without going through any network, whereas network devices are not directly connected
`
`to a system bus, rather connected through an interface called a network interface card
`
`(NIC) installed on system bus. The local disk 104 may be a conventional IDE
`
`(Integrated Drive Electronics) disk or SCSI (Small Computer System Interface) disk.
`
`The file system 101 also contains a network-attached disk (NAD) device driver
`
`105 of the present invention that controls an NAO device 108 connected through a
`
`network adapter device driver 106 and a network 107 such as Ethernet. The NAO
`
`device 108 of the present invention contains one or more disks 109. The network 107
`
`6
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 9
`
`

`

`is an existing general-purpose network for carrying storage traffic as well as other
`
`application traffic. This so called "front-end" network for carrying general-purpose
`
`network traffic is distinguished from a "back-end" network dedicated to storage such as
`
`that used in the conventional Storage Area Network (SAN) scheme.
`
`The present invention features two main components: one is the NAD device
`
`driver 105 at the host and the other is the NAD device 108 attached to the network.
`
`FIG. 2 shows an example of how multiple NAD devices are accessed by
`
`multiple hosts through a network. NAD device #1 123 with disk(l,1) 126 and NAD
`
`device #2 124 with disk(2,l) 127 and disk(2,2) 128 are accessed by Host #1 120
`
`through a network 122, while NAD device #3 125 with disk(3,l) 129, disk(3,2) 130,
`
`disk(3,3) 131 is accessed by Host #2 121 through the same network 122.
`
`Each disk appears to the host as if it is a local disk to connected to the system
`
`bus of the host so that each disk can be dynamically installed or removed. The present
`
`invention achieves this by creating a virtual host bus adapter in purely software means
`
`that recognizes an NAD device as if it is connected to the system bus although there is
`
`no physical host bus adapter connected the NAD.
`
`This is distinguished from the
`
`conventional Network Area Storage (NAS) scheme where a NAS device connected
`
`through the NIC is still recognized as an independent file server connected to a network.
`
`The Open Systems Interface (OSI) model defines 7 layers of protocols: a
`
`physical layer for electrical interface definitions, a data link layer for communication
`
`using data frames, a network layer for routing packets from one end to another, a
`
`transport layer for dividing messages into packets, a session layer for establishing
`
`communication session, a presentation layer for data presentation format, and an
`
`application layer for application programs. The present invention uses a data link
`
`7
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 10
`
`

`

`layer protocol to contain storage commands into data link frames. Because the NAD
`
`device is not acting as an independent devices to the host, there is no need to use a
`
`network address such as IP address.
`
`Since the specific configuration of the hosts and the disk systems can be
`
`dynamically changed, user convenience and portability is preserved as in the case of
`
`using a local disk. There is virtually no restriction to the number of disk systems that
`
`can be attached to the network, thus providing an unlimited disk storage capacity for a
`
`host.
`
`FIG. 3 shows another example of how multiple NAD devices are accessed by
`
`multiple hosts through a network. NAD device #1143, NAD device #2 145, and NAD
`
`device #5 147 are accessed by Host #1 140 through a network 142, while NAD device
`
`#2 144 and NAD device #4 146 are accessed by Host #2 141 through the same network
`
`142.
`
`The disks contained in an NAD may be treated as separate disks so that each of
`
`them can be independently accessed by a host. FIG. 4 shows an example of treating
`
`each disk inside an NAD device as separate disks. Disk(l,l) 166 inside NAD device
`
`#1 163, disk(2,2) 168 inside NAD device #2, and disk(3,2) 170 inside NAD device #2
`
`are accessed by Host #1 160 through a network 122 while disk(2,1) 167 inside NAD
`
`device #2 164 and disk (3,1) 169 and disk (3,3) 171 inside NAD device #3 165 are
`
`accessed by Host #2 161 through the same network 162. Note that disk (2,1) 167 and
`
`disk (2,2) 168, inside NAD device #2 164, are independently accessed by Host #1 160
`
`and Host #2 161 respectively.
`
`Block Device Driver
`
`8
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 11
`
`

`

`An embodiment of the NAD system will be explained with an example running
`
`the UNIX family of operating systems although other operating systems such as
`
`Windows may also be used.
`
`Each block device for block data storage, such as a disk device, is assigned a
`
`major device number to distinguish among different kinds of block devices, and a minor
`
`device number to distinguish among same kinds of block devices.
`
`In UNIX, each
`
`device is accessed through a device file, which provides an interface for accessing the
`
`real device. Device files are usually generated in advance, each with a major device
`
`number and a minor device number as well as information on a block device driver.
`
`The purpose of the device driver is to handle the requests made by the kernel
`
`with respect to a device. The device driver isolates device-specific codes to provide a
`
`consistent interface for the kernel.
`
`In order to activate the operation of a device driver,
`
`a device file and device driver routines must be prepared, after which the functions of
`
`the driver routines must be registered so that the operating system such as UNIX can
`
`understand their availability. This is usually done by passing the major number
`
`assigned to the device and the functions of the driver routines as parameters.
`
`Registration and Unregistration of Block Device Driver
`
`Once a block device driver is registered by passing the device's major device
`
`number and the driver functions as parameters, it may be unregistered by passing the
`
`major number.
`
`Table 1 lists the functions used to either register or deregister a device driver.
`
`9
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 12
`
`

`

`Functions
`
`Register_ blkdevO
`
`Unregister_ blkdev()
`
`[Table 1]
`
`Description
`
`-
`
`register a driver by taking a major
`
`number and driver functions as parameters
`
`- unregister a driver by taking a major
`
`number
`
`Table 2 lists the general functions used by the local driver and the NDA driver.
`Description
`
`Driver Function
`
`Read()
`
`write()
`
`ioctl()
`
`openO
`
`release()
`
`fsync()
`
`- used to read data in the device
`
`- used to write data in the device
`
`- used to change a particular value of a
`to control
`for a driver or
`structure
`input/output with respect to a device
`- used to initialize a driver
`
`- used to eliminate a driver
`
`- used to reflect the content of buffer cache
`
`to the real device driver
`
`check_ media_ change()
`
`- used to sense a change in the device
`
`condition
`
`revalidate()
`
`- used to update device managed by the
`
`deriver and device driver itself
`
`[Table 2)
`
`Table 3 lists examples of the driver functions specific to the IDE local disk
`
`driver and the NAD driver.
`
`Driver Function
`
`IDE Local Driver Function NAD Driver Function
`
`10
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 13
`
`

`

`read()
`
`write()
`
`ioctl()
`
`open()
`
`Release()
`
`fsync()
`
`ide_read()
`
`ide_write()
`
`ide _ioctl()
`
`ide_open()
`
`ide _release()
`
`ide _ fsync()
`
`netdisk _read()
`
`netdisk _ write()
`
`netdisk _ioctl()
`
`netdisk _ open()
`
`netdisk _release()
`
`netdisk _ fsync()
`
`check_ media_ change()
`
`ide _check_ media_ change() netdisk _check_ media_ change()
`
`revalidate()
`
`ide _revalidate()
`
`netdisk _ide _revalidate()
`
`[Table 3]
`
`FIG. 5 shows an example where a block device driver, specifically an NAD
`
`device driver, is registered and unregistered.
`
`Initially, an IDE device driver 181 with
`
`major device #3 is created as well as some null device drivers such as major device #0
`
`180 and major device #n 182. Major device #60, 183, the NAD device driver that is
`
`assigned a major device number of 60, is registered by using a device registration
`
`function of register_blkdev(60, fops) 185. Later the NAD device driver is de(cid:173)
`
`registered into major device #60 184, a null device driver, by using a device de(cid:173)
`
`registration function of unregister_blkdev(60) 186. The figure shows that NAD device
`
`driver of the present invention is installed in the same way as the existing block device
`
`drivers.
`
`Use of Block Device
`
`Once a block device driver is registered and its device file is generated,
`
`read/write is done to the device file to access the real device. The device file, however,
`
`is not directly called by the user, rather called after being mounted to the file system.
`
`Before being mounted, each block device file must be formatted according to a
`
`11
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 14
`
`

`

`particular file system. Since the NAD device driver of the present invention is
`
`prepared in the same way as a conventional local disk driver, the set of I/O commands
`
`used to format a conventional local disk can also be used to format a disk in the NAD
`
`device.
`
`In addition, since NAD devices are controlled in the device driver level, they
`
`can be formatted in a required format independent of the file system used.
`
`FIG. 6 shows the relation among the directory, device file, device driver, and
`
`device. The left side shows attachment of a conventional local disk system where a
`
`device file 201 mounted on a directory 200 is used by a local disk device driver 202 to
`
`control a local disk 203. The right side shows an NAD system of the present invention
`
`where a device file 204 mounted on the directory 200 is used by an NAD device driver
`
`205 to control a NAD device 207 through a local area network (LAN) 206 such as
`
`Ethernet. The two relations are similar except that the NAD device is accessed
`
`through the network.
`
`Structure of Block Device Driver
`
`Each block device driver has an I/O request queue to store the 1/0 requests to
`
`the device. The stored requests may be re-scheduled for the purpose of improving the
`
`performance. Besides the 1/0 request queue, each block device driver needs a request
`
`function to process the I/O requests in the queue.
`
`FIG. 7 shows a situation where the request function directly issues a command
`
`to a block device. An NAD device driver 220, using a device 222 and a file system
`
`223, has a queue 224 that stores 1/0 requests 225 through 228. The NAD device
`
`driver 220 has a request function 229 that issues a command to the NAD device 221 by
`
`12
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 15
`
`

`

`taking a currently processed request 225.
`
`FIG. 8 shows a situation where the request function 229, instead of directly
`
`issuing a command, activates a device accessing thread 230 so that the device accessing
`
`thread 230 can issue a command based on the information in the request queue. A
`
`thread refers to a single use of a program that can handle multiple users.
`
`Constitution of Local Disk System and NAD System
`
`FIG. 9 shows the constitution of a conventional local disk system and that of
`
`the NAD system operating under UNIX. Under a file system 260, a conventional local
`
`disk 264 attached to a local bus 263 is accessed by a conventional local disk device
`
`driver 261 through a bus interface 262. Under the same file system 260, an NAD
`
`device 272 with a disk 273, attached to a network 271, is accessed by an NAD device
`
`driver 265 through a network interface including a network protocol stack 266, a
`
`network adapter device driver 267, a bus interface 268, and a network adapter 270.
`
`Since an NAD device is to be used like a local disk, the conventional local disk
`
`system and an NAD system of the present invention share a basic structure. The
`
`difference is that since an NAD system must communicate with an NAD device through
`
`a network, a protocol stack is added for network communication.
`
`The NAD driver
`
`delivers an 1/0 command to an NAD device through a network adapter and receives a
`
`response from the NAD device.
`
`When an NAD device is accessed, either DMA (Direct Memory Access) or
`
`PIO (Programmed Input/Output) may be used. A conventional disk device driver
`
`operates in a DMA mode by issuing a DMA 1/0 command to a local disk with a starting
`
`buffer address and a byte transfer count. The local disk then takes over the data
`
`13
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1009, p. 16
`
`

`

`transfer, after which it interrupts the CPU. Similarly, the NAD device driver may be
`
`implemented to operate in a DMA mode by having the NAD device driver deliver an
`
`I/O command to an NAD device, which then completes the data transfer, after which it
`
`interrupts the CPU.
`
`The conventional disk driver operates in a PIO mode by the CPU transferring
`
`data directly through data registers of the disk device until a particular data block is
`
`processed. Similarly, the NAD driver may be implemented to operate in a PIO mode
`
`by having the NAD device driver deliver a command to an NAD device and continue to
`
`transm

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket