Ex Parte YoderDownload PDFBoard of Patent Appeals and InterferencesFeb 22, 201010832758 (B.P.A.I. Feb. 22, 2010) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE __________ BEFORE THE BOARD OF PATENT APPEALS AND INTERFERENCES __________ Ex parte MICHAEL E. YODER __________ Appeal 2009-005866 Application 10/832,758 Technology Center 2100 __________ Decided: February 22, 2010 __________ Before JAY P. LUCAS, THU A. DANG, and STEPHEN C. SIU, Administrative Patent Judges. SIU, Administrative Patent Judge. DECISION ON APPEAL STATEMENT OF THE CASE This is a decision on appeal under 35 U.S.C. § 134(a) from the Examiner’s rejection of claims 1, 6-14, 19-27, and 30-36. Claims 2-5, 15- 18, 28, and 29 are canceled. We have jurisdiction under 35 U.S.C. § 6(b). We affirm. Appeal 2009-005866 Application 10/832,758 2 Invention The invention relates to “various approaches for allocating memory objects in a non-uniform memory access (NUMA) system” (Spec. 3, ¶ [0006]). Independent claim 1 is illustrative: 1. A processor-implemented method for allocating memory objects in a non-uniform memory access (NUMA) system, wherein the NUMA system includes a plurality of nodes, and each node includes at least one processor coupled to a memory subsystem via a local bus, and the NUMA system includes an interleave memory, comprising: establishing at least one instance of a data structure of a first type including a plurality of locality definitions, wherein each instance of the first type data structure has an associated set of program-configurable attributes used in controlling allocation of memory objects via the instance of the first type data structure, and each locality definition being selectable via a locality identifier and designating a memory subsystem in the NUMA system; in response to a request from a processor in the NUMA system for allocation of memory objects via the instance of the first type data structure and specifying a locality identifier, allocating to the processor memory objects from the memory subsystem designated by the locality definition as referenced by the locality identifier; in response to a request from a processor for allocation of memory objects via an instance of the first type data structure and not specifying a locality identifier, allocating to the processor memory objects from the Appeal 2009-005866 Application 10/832,758 3 memory subsystem that is in the node of the requesting processor; establishing at least a first instance of a data structure of a second type including a single locality definition, wherein each instance of the second type data structure has an associated set of program-configurable attributes used in controlling allocation of memory objects via the first instance of the second type data structure, and the single locality definition of the first instance references a memory subsystem in a node; in response to a request from a processor in the NUMA system for allocation of memory objects via the first instance of the second type data structure, allocating to the processor memory objects from the memory subsystem referenced by the single locality definition consistent with attributes of the first instance of the data structure of a second type; maintaining in each instance of the first type and second type data structures, respective lists of free memory objects for each node in the NUMA system for allocation requests; establishing at least a second instance of the data structure of the second type, wherein the single locality definition of the second instance references the interleave memory in the NUMA system; and in response to a request from a processor in the NUMA system for allocation of memory objects via the second instance, allocating to the processor memory objects from interleave memory consistent with attributes of the second instance of the data structure of the second type. Appeal 2009-005866 Application 10/832,758 4 References The Examiner relies upon the following references as evidence in support of the rejections: Fung US 4,924,375 May 8, 1990 Stevens US 6,336,177 B1 Jan. 1, 2002 Roger L. Adema and Carla S. Ellis, Memory Allocation Constructs to Complement NUMA Memory Management, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing, pp. 878-885 (Dec. 1991) (“Adema”). Rejections Claims 1, 6-14, 19-27, and 30-36 are rejected under 35 U.S.C. § 103(a) as being unpatentable over Stevens, Adema, and Fung. ISSUE 1 The Examiner finds that “Stevens discloses selecting a locality definition that specifies a specific I/O [input/output] device to have a strong affinity to [while] Fung teaches that interleave memory is useful in replacing general memory” (Ans. 10). Appellant submits that Stevens and Fung would not have taught or suggested “interleave memory [that can] be one locality definition in combination with the claimed single and multiple locality definitions” (App. Br. 7-8). Issue: Did Appellant demonstrate that the Examiner erred in concluding that Stevens and Fung would have taught or suggested use of Appeal 2009-005866 Application 10/832,758 5 interleave memory as a locality definition when allocating memory in a NUMA system? ISSUE 2 The Examiner interprets “the phrasing ‘maintaining in each instance of the . . . data structures’ as requiring the instances of the data structures maintain or somehow update / manage the free lists” (Ans. 12). Appellant argues that “for each of Adema’s free lists, the memory that is referenced is the memory available on that respective node” (App. Br. 10). Issue: Did Appellant demonstrate that the Examiner erred in concluding that Stevens, Adema, and Fung would have taught or suggested maintaining in data structures lists of free memory objects for nodes in a NUMA system? ISSUE 3 The Examiner finds that “Adema discloses that the USAlloc system will try to allocate memory on the node on which it is invoked, and if that fails . . . then it attempts to allocate memory from nearby nodes” (Ans. 14- 15). Appellant argues that there is “clearly no ‘effective’ adding of memory blocks from one free list to another followed by removal” (App. Br. 12). Issue: Did Appellant demonstrate that the Examiner erred in concluding that Stevens and Adema would have taught or suggested adding memory objects from a designated memory subsystem to a free list in Appeal 2009-005866 Application 10/832,758 6 response to the free list having an insufficient number of memory objects to satisfy a first request? ISSUE 4 The Examiner finds that “Adema discloses a request being able to be completed when it does not specify a locality parameter, and that the request will just attempt to allocate memory from the instant node” (Ans. 15). The Examiner also finds that if the node “had an interleave memory, then the request to allocate memory that didn’t have a locality parameter would potentially receive memory allocated from an interleave memory” (Ans. 16). Appellant submits that Adema’s “UsAlloc function is for allocating memory, not for establishing the data structure used in controlling allocation of memory” (App. Br. 13). Appellant further argues that “there is no suggestion that if no locality is specified in a request, the response is to establish a locality definition that references interleave memory” (id.) Issue: Did Appellant demonstrate that the Examiner erred in concluding that Stevens, Adema, and Fung would have taught or suggested creating an instance of a data structure for controlling allocation of memory objects, the data structure including a single locality definition that references interleave memory, in response to a creation request that does not specify a locality identifier? FINDINGS OF FACT The following Findings of Fact (FF) are shown by a preponderance of the evidence. Appeal 2009-005866 Application 10/832,758 7 1. Stevens teaches that “by specifying MLDs [memory locality domains] and MLDSETs [MLD sets], rather than physical memory nodes, application programs can be executed on different computer systems regardless of the particular node configuration and physical node topology employed by the system” (col. 2, ll. 45-49). 2. Stevens teaches an MLD 802 with a radius of 0 (fig 8), indicating “that no network hops are required to access memory from a thread attached to its center node” (col. 9, ll. 25-27). 3. Fung teaches interleaving sequential pages of memory “between memory banks so that memory accesses which are a page apart will be to two different memory banks” (abstract). 4. Adema teaches a “Uniform System [that] maintains a singly-linked list of blocks of available memory (a ‘free list’) for each node in the cluster” (p. 880). 5. Adema teaches that “[w]hen UsAlloc is called, the Uniform System first attempts to allocate memory on the node on which UsAlloc is being invoked. If unsuccessful, UsAlloc then tries to allocate the memory elsewhere by examining the free list of each node in the cluster” (p. 880). Appeal 2009-005866 Application 10/832,758 8 PRINCIPLES OF LAW Claim interpretation “In the patentability context, claims are to be given their broadest reasonable interpretations. . . . [L]imitations are not to be read into the claims from the specification.” In re Van Geuns, 988 F.2d 1181, 1184 (Fed. Cir. 1993) (citations omitted). A claim meaning is reasonable if one of ordinary skill in the art would understand the claim, read in light of the specification, to encompass the meaning. See In re American Academy of Science Tech Center, 367 F.3d 1359, 1364 (Fed. Cir. 2004). Any special meaning assigned to a term “must be sufficiently clear in the specification that any departure from common usage would be so understood by a person of experience in the field of the invention.” Multiform Desiccants Inc. v. Medzam Ltd., 133 F.3d 1473, 1477 (Fed. Cir. 1998). Obviousness The question of obviousness is resolved on the basis of underlying factual determinations including (1) the scope and content of the prior art, (2) any differences between the claimed subject matter and the prior art, and (3) the level of skill in the art. Graham v. John Deere Co., 383 U.S. 1, 17- 18 (1966). One cannot show nonobviousness by attacking references individually where the rejections are based on combinations of references. In re Merck & Co., Inc., 800 F.2d 1091, 1097 (Fed. Cir. 1986). Appeal 2009-005866 Application 10/832,758 9 ANALYSIS Issue 1 Appellant disputes the Examiner’s conclusion that Stevens and Fung would have taught or suggested the claimed use of interleave memory as a locality definition. We find Appellant’s arguments unpersuasive. Stevens teaches the use of MLDs by application programs, abstracting the particular node configurations and physical node topologies of different system (FF 1). An MLD can have a radius of 0, indicating that the memory to use is local to a node (FF 2). Fung teaches interleaving of memory between memory banks (FF 3). Appellant suggests the use of interleave memory as an MLD would not have been obvious to an artisan because Fung described interleave memory well before the time of the Stevens disclosure (App. Br. 10). However, Appellant offers no evidence, other than chronology, to show that an artisan would think it necessary to detail the types of memory that could be used with Stevens’ teachings. Furthermore, we agree with the Examiner’s undisputed finding that “Stevens is primarily concerned with the overall framework of the multiprocessing system” (Ans. 12). Therefore, we conclude that Stevens and Fung would have taught or suggested use of interleave memory (as taught by Fung) as a locality definition (interleave memory on a node referenced by an MLD with radius 0) when allocating memory in a NUMA system (as taught by Stevens). For at least these reasons, we conclude that Appellant has not sustained the requisite burden on appeal in providing arguments or evidence Appeal 2009-005866 Application 10/832,758 10 persuasive of error in the Examiner’s 35 U.S.C. § 103(a) rejection of claims 1, 6-14, and 19-27. Issue 2 Appellant argues that the Examiner erred in concluding that Stevens, Adema, and Fung would have taught or suggested maintaining in data structures lists of free memory objects for nodes in a NUMA system. We find Appellant’s arguments unpersuasive. Appellant submits “that the claim language does indicate that the free lists are ‘in’ the data structures” (Reply Br. 3). However, the Examiner’s interpretation of maintaining—somehow updating or managing—is reasonably broad (Ans. 12). Stevens teaches allocation of memory using MLDs and MLDSETs (FF 1) while Adema teaches maintenance of free lists for nodes (FF 4). Using an MLD or MLDSET to allocate memory would affect the free memory on nodes identified by the MLD or MLDSET. Therefore, Stevens and Adema would have taught or suggested maintaining (affecting through use of) in data structures (MLDs and MLDSETs) lists of free memory objects for nodes in a NUMA system (lists of free memory on identified nodes). For at least these reasons, we conclude that Appellant has not sustained the requisite burden on appeal in providing arguments or evidence persuasive of error in the Examiner’s 35 U.S.C. § 103(a) rejection of claims 1, 6-14, 19-27, and 30-36. Appeal 2009-005866 Application 10/832,758 11 Issue 3 Appellant and the Examiner disagree on the implications of Adema’s USAlloc system. We agree with the Examiner’s findings and conclusion. When a memory cannot be allocated on a node in Adema, the Uniform System attempts to allocate memory from other nodes (FF 5). Furthermore, Adema maintains a list of blocks of available memory (FF 4). This would have taught or suggested to an artisan the steps of maintaining a free list, including obtaining memory resources when necessary. Therefore, Adema would have taught or suggested adding memory objects (allocating memory) from a designated memory subsystem (a node) to a free list (maintaining a free list) in response to the free list having an insufficient number of memory objects to satisfy a first request (allocating in response to in sufficient memory resources). For at least these reasons, we conclude that Appellant has not sustained the requisite burden on appeal in providing arguments or evidence persuasive of error in the Examiner’s 35 U.S.C. § 103(a) rejection of claims 8-11, 21-24, and 34-36. Issue 4 Appellant challenges the Examiner’s conclusion that Stevens, Adema, and Fung would have taught or suggested use of interleave memory as a default locality identifier. We find Appellant’s arguments unpersuasive. Stevens teaches data structures (MLDs) to manage memory allocation in a NUMA system (FF 1). An MLD can have a radius of 0, and thus point to memory on a single node (FF 2). Adema teaches allocating from memory Appeal 2009-005866 Application 10/832,758 12 local to a memory allocation requestor by default (FF 5). Fung teaches interleave memory (FF 3). These references would have taught or suggested creating an instance of a data structure for controlling allocation of memory objects (MLDs), the data structure including a single locality definition (with a radius of 0) that references interleave memory (the node having interleave memory), in response to a creation request that does not specify a locality identifier (i.e., a default locality as taught by Adema). For at least these reasons, we conclude that Appellant has not sustained the requisite burden on appeal in providing arguments or evidence persuasive of error in the Examiner’s 35 U.S.C. § 103(a) rejection of claims 12, 25, and 31. CONCLUSIONS OF LAW Based on the findings of facts and analysis above, we conclude that Appellant has not demonstrated: 1. that the Examiner erred in concluding that Stevens and Fung would have taught or suggested use of interleave memory as a locality definition when allocating memory in a NUMA system (Issue 1); 2. that the Examiner erred in concluding that Stevens, Adema, and Fung would have taught or suggested maintaining in data structures lists of free memory objects for nodes in a NUMA system (Issue 2); 3. that the Examiner erred in concluding that Stevens and Adema would have taught or suggested adding memory objects from a Appeal 2009-005866 Application 10/832,758 13 designated memory subsystem to a free list in response to the free list having an insufficient number of memory objects to satisfy a first request (Issue 3); and 4. that the Examiner erred in concluding that Stevens, Adema, and Fung would have taught or suggested creating an instance of a data structure for controlling allocation of memory objects, the data structure including a single locality definition that references interleave memory, in response to a creation request that does not specify a locality identifier (Issue 4). DECISION We affirm the Examiner’s decision rejecting claims 1, 6-14, 19-27, and 30-36 under 35 U.S.C. § 103(a). No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a)(1)(iv). AFFIRMED msc HEWLETT-PACKARD COMPANY Intellectual Property Administration 3404 E. Harmony Road Mail Stop 35 FORT COLLINS CO 80528 Copy with citationCopy as parenthetical citation