DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to amendment filed on 10/06/2025.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 08/15/2025 was filed after the mailing date of the non-final Office action on 07/09/2025. The submission is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Response to Amendment
By this amendment, claims 1, 4, 8-9, 12, and 16-17 are amended. Therefore, claims 1-20 are pending. Any objections and rejections not repeated below is withdrawn due to Applicant's amendment.
Response to Arguments
Applicant's arguments filed 10/06/2025 have been fully considered. Applicant argues in substance:
Assuming, arguendo, these asserted equivalencies are accurate, it is respectfully submitted that the Office still has failed to establish the disclosure of certain features recited by claim 1, namely that "the scheduling period includes a slack time to allow for variances in a cadence at which each virtual function submits jobs for execution and a size of jobs submitted for execution." That is, even if it is assumed, arguendo, that the number of requests/jobs submitted by a virtual function is the "cadence" specified by claim 1 and that "the size of the requests in units of bytes" is the "size of jobs" specified by claim 1, the Office has not shown that Check discloses that time slice of Check (as alleged "scheduling period") includes a slack time to allow for variances in these aspects, that is, to allow for variances in "the number of requests submitted" or "the size of the request in units of bytes". In fact, the Office has failed to identify exactly what constitutes the recited "slack time" and how it is included in the "time slice" of Check in any manner. As such, the Office fails to establish a prima facie case of anticipation of at least this feature of claim 1.
Moreover, Check in fact fails to contemplate any form of "slack time" for the time slice, much less the particular slack time feature recited by claim 1. To illustrate, the Specification of the present application provides that "Scheduler module circuitry defines a scheduling period as the sum of per-virtual function time partitions plus an additional period of time referred to herein as 'slack time'." Present Application, para. [0013](emphasis added). Thus, neither the cited passages of Check nor any other passage of Check contemplate any concept of having such a slack time included in the time slice. Consequently, Check fails to disclose at least the recited feature of "wherein the scheduling period includes a slack time to allow for variances in ... " as recited by claim 1. Independent claims 9 and 17 likewise recite this feature, and thus Check fails to disclose this feature of claims 9 and 17 as well.
As Check fails to contemplate at least one feature of each of claims 1, 9, and 17, Check fails to anticipate each of claims 1, 9, and 17. Check likewise fails to anticipate each of claims 2-6, 8, 10-14,16, and 18-20 at least by virtue of their respective dependencies from claims 1, 9, or 17. Moreover, these claims recite additional novel features.
With regard to point (a), this Office Action reopens this application. Thus, Konik et al. Pub. No. US 2014/0173614 Al (hereafter Konik) has been utilized to cure the stated deficiencies of independent claims 1, 9, and 17. Therefore, the independent claims 1, 9, and 17 and their respective dependent claims are rejected for the reasons in this Office Action’s 103 rejection below.
To illustrate, dependent claim 2 recites the additional features of "wherein preventing execution comprises: scheduling a first virtual function to execute a first plurality of jobs after a second virtual function in response to submission of the first plurality of jobs exceeding an expected cadence and submission of a second plurality of jobs by the second virtual function not exceeding the expected cadence." Dependent claims 10 and 15 recite similar subject matter …
Thus, the Office again equates "cadence at which each virtual function submits jobs for execution" with a "number of requests [jobs]". However, contrary to the Office's assertions, Check fails to disclose a determination of" a cadence at which each virtual function submits jobs for execution" and thus fails to disclose that a virtual function has an expected cadence in this regard, and consequently also necessarily fails to disclose the particular features of claims 2, 10, and 15 …
It is respectfully submitted that the interpretation of "the number of requests sent by the virtual function" as "a cadence at which each virtual function submits jobs for execution" is inconsistent with the broadest reasonable interpretation and therefore is improper. One of ordinary skill in the art would appreciate that the term "cadence" refers to a form of "frequency." See, for example, the Present Application at paragraph [0014] ("The GPU monitors jobs submitted for execution by virtual functions within a scheduling period to determine if the jobs are being submitted within an expected cadence, or frequency.") …
See also Present Application, paragraph [0030]("In other embodiments, the virtual functions 210-213 submit jobs at different cadences (e.g., some virtual functions submit jobs at 30 fps [frames per second], and some virtual functions submit jobs at 60 fps) …
The specification's use of "cadence" as referring to a form of frequency of submission, and thus including a time aspect, is consistent with the general use of the term "cadence". For example, the Merriam-Webster Dictionary provides a definition of "cadence" as "a regular and repeated pattern of activity". See, e.g., Merriam-Webster Dictionary Online (https://www.merriam-webster.com/dictionary/cadence). Similarly, the Oxford English Dictionary provides a definition of "cadence" as "The measure or beat of music, dancing, or any rhythmical movement; e.g. of marching." See, e.g., Oxford English Dictionary Online (https ://www.oed.com/ dictionary/ cadence_ n ?tl =true&tab=meaning_ and_ use). However, the Office's proffered interpretation, that of simply the number of requests sent, fails to embody any sense of frequency or, more simply, a time component in any manner. As such, one of ordinary skill in the art, having both the Specification at hand and general knowledge of the meaning of "cadence" available, would not find that a "number of requests submitted" to be with the plain and ordinary meaning of "cadence." As such, interpretation of Check's "number of requests submitted" as a "cadence" is not consistent with the broadest reasonable interpretation of the term "cadence", and therefore is improper. The Office has not identified any other aspect of Check that could serve as the recited "cadence" or "expected cadence", and thus the Office has not established that Check discloses the above-identified features of claims 2, 10, and 15, nor in fact does Check do so.
With regard to point (b), Examiner respectfully disagrees with Applicant that the term “cadence” is limited to Applicant’s specification. As Applicant stated in arguments, BRI is used to determine the meaning of interpretation of the term “cadence”. As cadence has a plain meaning similar to “frequency”, the number of requests submitted by a virtual function for its given time slice is interpreted by the Examiner to be the cadence (as stated in prior art Check). In addition, Examiner has interpreted expected cadence to be the number of requests which is further indicated by the number of credits given to a virtual function for its given time slice. Thus, Examiner’s BRI is consistent with the plain meaning of the term, “cadence”, because Applicant’s claims do not define the breadth nor scope of the term, “cadence”. Therefore, independent claims 1, 9, and 17 and their respective dependent claims are rejected for the reasons in this Office Action’s 103 rejection below. Argument has not been found to be persuasive.
As another example, dependent claim 4 has been amended and presently recites the additional features of "assigning a job size credit to a first virtual function if a size of jobs submitted by the first virtual function is smaller than an expected job size, wherein the job size credit is carried forward to a subsequent scheduling period immediately following the scheduling period during which the job size credit is assigned for use by the virtual function." Dependent claim 12 has been likewise amended and presently recites similar features. Support for these amendments is found, for example, in paragraph [0039] of the Present Application. In rejecting original claim 4, the Office asserts that Check discloses that "[a]ll virtual functions are allotted time budgets Gob size credit) which is reset after each time slice (scheduling period) to be used again in the next time slice (next scheduling period")." Office Action, pp. 6 and 7. As noted by the Office, Check teaches that the allotted time budgets are reset after each time slice. Nowhere does Check contemplate that any form of job size credit can be carried forward to the next time slice. As such, Check fails to anticipate the features presently recited by claims 4 and 12.
With regard to point (c), due to Applicant’s amendments, Kruglick Pub. No. US 2015/0046923 Al has been utilized to cure the stated deficiencies of dependent claims 4 and 12. Therefore, dependent claims 4 and 12 are rejected for the reasons in this Office Action’s 103 rejection below.
Claims 7 and 15 depend from claims 1 and 9, respectively. As explained above, Check fails to disclose each and every feature of claims 1 or 9. Further, the Office does not assert that Bert discloses or suggests, individually or in combination with Check, those features of claim 1 or 9 which Check fails to contemplate, nor does Bert in fact do so. Thus, Bert does not remedy the deficiencies of Check with respect to claims 1 and 9. Accordingly, the cited references, individually and in combination, fail to disclose or render obvious the features of dependent claims 7 and 15. In addition, these dependent claims recite additional novel and non-obvious features.
With regard to point (d), this Office Action reopens this application. Thus, Konik et al. Pub. No. US 2014/0173614 Al (hereafter Konik) has been utilized to cure the stated deficiencies of independent claims 1, 9, and 17. Therefore, the independent claims 1, 9, and 17 and their respective dependent claims are rejected for the reasons in this Office Action’s 103 rejection below.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-3, 5-6, 8-11, 13-14, and 16-20 are rejected under 35 U.S.C. 103 as being unpatentable over Check et al. Pub. No. US 2016/0147687 Al (hereafter Check) in view of Konik et al. Pub. No. US 2014/0173614 Al (hereafter Konik).
Regarding claim 1, Check teaches a method comprising: allocating a plurality of time partitions within a scheduling period to a plurality of virtual functions for execution of jobs at a parallel processor … in at least one of a cadence at which each virtual function submits jobs for execution and a size of jobs submitted for execution ([0005] “…assigning a time budget to each of a plurality of virtual functions in an SRIOV environment … within a time slice. A plurality of requests issued by the plurality of virtual functions are selected by a computer processor…”, [0028] “…In that case, the priority arbiters 130 may allow the virtual function 110 to send two requests of 500 bytes each or 100 requests of ten bytes each…”, Note: The time budget is the time partition, the time slice is the scheduling period, the requests are the jobs, the cadence is the number of requests (jobs) sent by the virtual function, and the size of the requests are in units of bytes in the referenced example); and preventing execution of any jobs that exceed an allocated time partition for a virtual function of the plurality of virtual functions ([0041] “…For example, a priority arbiter 130 may opt not to add to its request queue those requests that come from virtual functions 110 that have used up their time budgets or have used up their credits within the current time slice. In this manner, the time budgets and credits may be enforced.”, Note: The time budget is the time partition, and the requests are the jobs).
It is further noted that although Check fails to directly teach wherein the scheduling period includes a slack time to allow for variances, Check implies a slack time within a time slice ([0020] “…time budgets needs not fill the time slice to capacity, and remaining cycles may be assigned to the virtual functions 110 as needed during a time slice.”, [0023] “…a virtual function 110 may request an operation, which may be estimated to take five thousand cycles, when that virtual function 110 has six thousand cycles remaining in its time budget. An engine 120 may start executing the operation in a current time cycle, and the operation may end up taking 20,000 cycles. The operation may be allowed to run to completion in the current time slice, but this takes the virtual function 110 significantly over its time budget…”, [0034] “…the arbitration system 100 may allow the first virtual function 110 to complete its requested work, so long as the other customers get what they paid for…”, [0038] “…Thus, the arbitration system 100 may reallot a virtual function's unused cycles of a time slice. This reallotment may occur in various ways … the unused cycles may be divided equally or near-equally among the remaining virtual functions 110 … In the case of reallotment, even virtual functions 110 with no more credits remaining in the current time slice may be allowed one or more additional sessions with the engines 120 if allotted additional cycles in the current time slice.”, Note: Time that virtual functions exceed their given time slices is the slack time).
In analogous art Konik teaches wherein the scheduling period includes a slack time to allow for variances ([0044] “If the determination at block 425 is true, then an automatic extension of the expiration time is allowed, so control continues to block 430 where the first virtual machine 150 changes the expiration time 314 by an adjustment amount to a new expiration time to be sufficiently further in the future, so as to allow the first virtual machine 150 to complete the task before the new expiration time.”, Note: A virtual machine similar to a virtual function allows extensions to its given expiration time, and the new expiration time subtracted from the previous expiration time of the virtual machine is interpreted to be the slack time).
It would have been obvious to a person having ordinary skill in the art prior to the
effective filing date of the claimed invention to have modified Check to incorporate the teachings of Konik to complete tasks even when a given time has exceeded (Konik [0052] “In this way, tasks may be completed even though the execution of virtual machines automatically expire.”).
Regarding claim 2, Check and Konik teach the method of claim 1, and Check further teaches wherein preventing execution comprises: scheduling a first virtual function to execute a first plurality of jobs after a second virtual function in response to submission of the first plurality of jobs exceeding an expected cadence and submission of a second plurality of jobs by the second virtual function not exceeding the expected cadence ([0031] “Each credit may correspond to the quantity of times a virtual function 110 may access the engines 120. More specifically, each time a request issued by a virtual function 110 is given processing attention by an engine 120 or a processing session with an engine 120, one credit is used up…”, [0041] “…For example, a priority arbiter 130 may opt not to add to its request queue those requests that come from virtual functions 110 that have used up their time budgets or have used up their credits within the current time slice. In this manner, the time budgets and credits may be enforced.”, Note: The requests are the jobs, and when a virtual function exceeds its expected cadence (number of requests indicated by the number of credits given to the virtual function for each time slice (scheduling period)), all its requests (jobs) afterwards are not added to the request queue, and therefore, all other virtual functions that do not exceed their expected cadences will process their requests before the requests of the virtual function that exceeded its expected cadence).
Regarding claim 3, Check and Konik teach the method of claim 1, and Check further teaches further comprising: scheduling a first virtual function to execute a first plurality of jobs after a second virtual function in response to the first plurality of jobs exceeding an expected job size and a second plurality of jobs submitted by the second virtual function not exceeding the expected job size ([0027] “…In other words, each virtual function 110 may be assigned a size budget, indicating the amount of data allowed to be consumed by requests from that virtual function 110 within a single time slice.”, [0029] “…if a virtual function 110 has 100 bytes left in its time budget and tries to make a request of 5000 bytes, the priority arbiters 130 may allow this and deliver that request to the engines 120, but may then disallow future requests from that virtual function 110 within the current time slice.”, Note: The size budget is the expected job size. When a virtual function exceeds its size budget, all its requests (jobs) afterwards are disallowed until the next time slice (scheduling period), and therefore, all other virtual functions that do not exceed their size budgets will still be allowed to process requests before the disallowed requests of the virtual function that exceeded its size budget).
Regarding claim 5, Check and Konik teach the method of claim 1, and Check further teaches further comprising: maintaining a first level list and a second level list, the first level list including a first virtual function submitting a first plurality of jobs that are within an expected cadence and that do not take longer to execute than an expected job size, and the second level list including a second virtual function not included on the first level list ([0041] “Each priority arbiter 130 may place requests from the virtual functions 110 on its queue in a selective manner, and these selections may be based on the time budgets and credits of the virtual functions 110. For example, a priority arbiter 130 may opt not to add to its request queue those requests that come from virtual functions 110 that have used up their time budgets or have used up their credits within the current time slice. In this manner, the time budgets and credits may be enforced.”, [0031] “Each credit may correspond to the quantity of times a virtual function 110 may access the engines 120. More specifically, each time a request issued by a virtual function 110 is given processing attention by an engine 120 or a processing session with an engine 120, one credit is used up…”, [0029] “…if a virtual function 110 has 100 bytes left in its time budget and tries to make a request of 5000 bytes, the priority arbiters 130 may allow this and deliver that request to the engines 120, but may then disallow future requests from that virtual function 110 within the current time slice.”, Note: Requests (jobs) of virtual functions that exceed their expected cadences (number of requests indicated by the number of credits given to the virtual function for each time slice (scheduling period)) and size budgets (expected job sizes) are not added to the request queue (first level list) for processing. Therefore, this check above also separates these other requests into a group (second level list) that does not comply with the condition above); and scheduling the first plurality of jobs for a virtual function in the first level list prior to scheduling a second plurality of jobs for a virtual function in the second level list ([0040] “…When a request reaches the top, or front, of the queue, the priority arbiter 130 may deliver that request to the engine 120.”, [0041] “…For example, a priority arbiter 130 may opt not to add to its request queue those requests that come from virtual functions 110 that have used up their time budgets or have used up their credits within the current time slice. In this manner, the time budgets and credits may be enforced.”, Note: All requests (jobs) not added to the request queue (first level list) are not processed in the current time slice (scheduling period), and therefore, all other requests from virtual functions that comply with the condition will be processed before those requests from virtual functions that do not comply).
Regarding claim 6, Check and Konik teach the method of claim 5, and Check further teaches further comprising: bypassing scheduling the second plurality of jobs for the virtual function in the second level list within a current scheduling period ([0041] “…For example, a priority arbiter 130 may opt not to add to its request queue those requests that come from virtual functions 110 that have used up their time budgets or have used up their credits within the current time slice. In this manner, the time budgets and credits may be enforced.”, Note: All requests (jobs) not added to the request queue (first level list) are not processed and therefore bypass scheduling in the time slice (scheduling period)).
Regarding claim 8, Check and Konik teach the method of claim 1, and Check further teaches further comprising: allowing a virtual function with remaining time within the allocated time partition and not having completed a job within the scheduling period to submit the job if the parallel processor is idle ([0038] In some instances, it may be the case that one or more of the virtual functions 110 complete whatever work they need done prior to using their full time budget in the current time slice. In that case, one or more cycles would remain unused if not reassigned, and unused cycles may be wasteful when other virtual functions 110 have pending unfinished requests. Thus, the arbitration system 100 may reallot a virtual function's unused cycles of a time slice … the unused cycles may be divided equally or near-equally among the remaining virtual functions 110…”, Note: The time budget is the time partition, and the time slice is the scheduling period).
Regarding claim 9, Check further teaches a processing system, comprising: a parallel processor; and scheduler module circuitry configured to ([0055] “The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.”, [0047] “…The processor 405 may be any custom made or commercially available processor…”, [0056] “…A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se…”). The other limitations are substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 10, it is a machine claim whose limitations are substantially the same as those of claim 2. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 11, it is a machine claim whose limitations are substantially the same as those of claim 3. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 13, it is a machine claim whose limitations are substantially the same as those of claim 5. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 14, it is a machine claim whose limitations are substantially the same as those of claim 6. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 16, it is a machine claim whose limitations are substantially the same as those of claim 8. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 17, Check further teaches a server, comprising: a parallel processor configured to … scheduler module circuitry configured to ([0055] “The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.”, [0047] “…The processor 405 may be any custom made or commercially available processor…”, [0056] “…A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se…”). The other limitations are substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 18, it is an article of manufacture claim whose limitations are substantially the same as those of claim 2. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 19, it is an article of manufacture claim whose limitations are substantially the same as those of claim 3. Accordingly, it is rejected for substantially the same reasons.
Regarding claim 20, it is an article of manufacture claim whose limitations are substantially the same as those of claim 5. Accordingly, it is rejected for substantially the same reasons.
Claims 4 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Check et al. Pub. No. US 2016/0147687 Al (hereafter Check) in view of Konik et al. Pub. No. US 2014/0173614 Al (hereafter Konik) as applied to claims 1-3, 5-6, 8-11, 13-14, and 16-20 above, and further in view of Kruglick Pub. No. US 2015/0046923 Al.
Regarding claim 4, Check and Konik teach the method of claim 1.
Check and Konik fail to teach further comprising: assigning a job size credit to a first virtual function if a size of jobs submitted by the first virtual function is smaller than an expected job size, wherein the job size credit is carried forward to a subsequent scheduling period immediately following the scheduling period during which the job size credit is assigned for use by the first virtual function in the subsequent scheduling period.
In analogous art Kruglick teaches further comprising: assigning a job size credit to a first virtual function if a size of jobs submitted by the first virtual function is smaller than an expected job size, wherein the job size credit is carried forward to a subsequent scheduling period immediately following the scheduling period during which the job size credit is assigned for use by the first virtual function in the subsequent scheduling period ([0029] “During execution of modified dispatch cycle 130, a particular virtual machine 105 may enter a wait state. A wait state may be, for example, a state in which virtual machine 105 remains idle until an input is received. When a virtual machine 105 enters a wait state, virtual machine manager 120 may be configured to cause an exit from waiting virtual machine 105 to virtual machine manager 120. Virtual machine manager 120 may pass access to core 104 to the next consecutive virtual machine 105 of modified dispatch cycle 130. Waiting virtual machine 105 may receive a processing credit corresponding to the remaining time allotted for the waiting virtual machine in modified dispatch cycle 130. Prior to the completion of modified dispatch cycle 130, virtual machine manager 120 may pass access to core 104 back to waiting virtual machine 105 for an amount of time corresponding to the processing credit.”, Note: A virtual machine similar to a virtual function is allocated execution time, a processing credit is the job size credit which is given when the virtual machine is idle with remaining time still allocated (the remaining time is the expected job size), and the virtual machine uses the processing credit and at the beginning of the next modified dispatch cycle (next scheduling period)).
It would have been obvious to a person having ordinary skill in the art prior to the
effective filing date of the claimed invention to have modified Check and Konik to incorporate the teachings of Kruglick to increase processing speed of the virtualized environment (Kruglick [0030] “Among other possible benefits, a system in accordance with the disclosure may reduce the number of DVFS switches in a virtualized environment. As DVFS switching takes time, reducing the number of DVFS switches may increase processing speed by reducing lag…”).
Regarding claim 12, it is a machine claim whose limitations are substantially the same as those of claim 4. Accordingly, it is rejected for substantially the same reasons.
Claims 7 and 15 are rejected under 35 U.S.C. 103 as being unpatentable over Check et al. Pub. No. US 2016/0147687 Al (hereafter Check) in view of Konik et al. Pub. No. US 2014/0173614 Al (hereafter Konik) as applied to claims 1-3, 5-6, 8-11, 13-14, and 16-20 above, and further in view of Bert et al. Pub. No. US 2014/0229941 Al (hereafter Bert).
Regarding claim 7, Check and Konik teach the method of claim 1, and Check further teaches wherein the scheduling period is a first scheduling period of a plurality of scheduling periods, the method further comprising ([0019] “…The execution time of the engines may thus be made up of multiple time slices, one after the other…”, Note: The time slices are the scheduling periods).
Check and Konik fail to teach scheduling a first virtual function after a
second virtual function if a first number of a first plurality of jobs submitted by the first virtual function within the plurality of scheduling periods is more than a second number of a second plurality of jobs submitted by the second virtual function within the plurality of scheduling periods.
In analogous art Bert teaches scheduling a first virtual function
after a second virtual function if a first number of a first plurality of jobs submitted by the first virtual function within the plurality of scheduling periods is more than a second number of a second plurality of jobs submitted by the second virtual function within the plurality of scheduling periods ([0034] “…A user
may want to give a higher priority to a particular virtual function, so that the particular virtual function will be the first virtual function to process commands … For example, if VMl (virtual machine 1) has 256 maximum process commands and VM2 has 128 maximum process commands, the user can set a first number of process commands (e.g., 16 process commands) for VF1, and a second number of process commands (e.g., 8 commands) for VF2. Also, in this example, VMl has priority over VM2, so VMl will pull 16 process commands from VF1 and then priority shifts to VF2 to process 8 process commands…”, Note: A virtual function with more commands (jobs) can be processed after another virtual function that has less commands when a user gives that virtual function with less commands a higher priority to process).
It would have been obvious to a person having ordinary skill in the art prior to the
effective filing date of the claimed invention to have modified Check and Konik to incorporate the teachings of Bert to process commands of a particular virtual function before another virtual function (Bert [0034] “…A user may want to give a higher priority to a particular virtual function, so that the particular virtual function will be the first virtual function to process commands…”).
Regarding claim 15, it is a machine claim whose limitations are substantially the same as those of claim 7. Accordingly, it is rejected for substantially the same reasons.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. In particular, US 20140245300 A1 is cited because it discloses allocating credits to virtual functions.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JUSTIN CHE-CHUN TONG whose telephone number is (703)756-1737. The examiner can normally be reached Monday-Thursday: 7:30 AM to 6:00 PM ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Y Blair can be reached on (571)270-1014. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J.C.T./Examiner, Art Unit 2196
/APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196