Ex Parte Eichenberger et alDownload PDFPatent Trial and Appeal BoardSep 23, 201411339591 (P.T.A.B. Sep. 23, 2014) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE UNITED STATES DEPARTMENT OF COMMERCE United States Patent and Trademark Office Address: COMMISSIONER FOR PATENTS P.O. Box 1450 Alexandria, Virginia 22313-1450 www.uspto.gov APPLICATION NO. FILING DATE FIRST NAMED INVENTOR ATTORNEY DOCKET NO. CONFIRMATION NO. 11/339,591 01/25/2006 Alexandre E. Eichenberger AUS920050823US1 9145 50170 7590 09/24/2014 IBM CORP. (WIP) c/o WALDER INTELLECTUAL PROPERTY LAW, P.C. 17304 PRESTON ROAD SUITE 200 DALLAS, TX 75252 EXAMINER BULLOCK JR, LEWIS ALEXANDER ART UNIT PAPER NUMBER 2199 MAIL DATE DELIVERY MODE 09/24/2014 PAPER Please find below and/or attached an Office communication concerning this application or proceeding. The time period for reply, if any, is set in the attached communication. PTOL-90A (Rev. 04/07) UNITED STATES PATENT AND TRADEMARK OFFICE ____________ BEFORE THE PATENT TRIAL AND APPEAL BOARD ____________ Ex parte ALEXANDRE E. EICHENBERGER and JOHN KEVIN O’BRIEN ____________ Appeal 2012-003050 Application 11/339,591 Technology Center 2100 ____________ Before ALLEN R. MacDONALD, CARLA M. KRIVAK, and JEFFREY S. SMITH, Administrative Patent Judges. SMITH, Administrative Patent Judge. DECISION ON APPEAL Appeal 2012-003050 Application 11/339,591 2 STATEMENT OF THE CASE This is an appeal under 35 U.S.C. § 134(a) from the Examiner’s final rejection of claims 1 and 21–34. We have jurisdiction under 35 U.S.C. § 6(b). We affirm. Representative Claim 1. A method, in a data processing system comprising a processor, for performing a scalar operation, comprising: identifying, by the processor, the scalar operation in source code; generating, by the processor, an expression tree for the scalar operation, wherein the expression tree has leaf nodes corresponding to scalar operands of the scalar operation; determining, by the processor, an alignment of the scalar operands in respective registers that store the scalar operands; propagating, by the processor, the alignment of the scalar operands up the expression tree; annotating, by the processor, the expression tree based on the propagation of the alignment of the scalar operands up the expression tree, wherein annotating the expression tree based on the propagation of the alignment comprises annotating selected nodes of the expression tree to identify shift operations to be performed with respect to the selected nodes, wherein the shift operations are determined with reference to all other shift operations within a given region of the source code by means of an optimization process which attempts to find a minimum number of the shift operations within the given region of the source code, wherein the optimization process determines common sub-expressions of scalar operations, and wherein the shift operations are selected such that for a number of instances of the common sub-expressions a same shift operation is utilized; and Appeal 2012-003050 Application 11/339,591 3 generating, by the processor, executable code for the scalar operation based on the expression tree and the alignment of the scalar operands, wherein generating the executable code for the scalar operation includes inserting, by the processor, shift instructions into the executable code based on the alignment of the scalar operands. Prior Art Alexander E. Eichenberger et al., Vectorization for SIMD Architectures with Alignment Constraints, ACM SIGPLAN Notices, Vol. 39, No. 6, 82–93 (May 2004) (“Eichenberger”). Examiner’s Rejections Claims 1 and 21–34 stand rejected under 35 U.S.C. § 102(b) as being anticipated by Eichenberger. ANALYSIS We adopt the findings of fact from the Final Rejection and Examiner’s Answer as our own. We agree with the Examiner that claims 1 and 21–34 are anticipated by Eichenberger for the reasons given in the Examiner’s Answer. We highlight the following for emphasis. Appellants contend Eichenberger does not describe “wherein the shift operations are determined with reference to all other shift operations within a given region of the source code by means of an optimization process which attempts to find a minimum number of the shift operations within the given region of the source code” as recited in claim 1. App. Br. 7. According to Appellants, Eichenberger does not disclose determining shift operations with reference to all other shift operations within a given region of the source code. App. Br. 8–13. Appellants further contend Eichenberger does not Appeal 2012-003050 Application 11/339,591 4 disclose an optimization process which attempts to find a minimum number of shift operations within a given region of source code. Reply Br. 2–6. The Examiner finds the lazy-shift and dominant-shift policies of Eichenberger describe the disputed limitation of claim 1. Ans. 6. Eichenberger describes a lazy-shift policy as improving an eager-shift policy by delaying stream shifts as long as two constraints are satisfied. In this case, rather than performing two or three shift operations, only the result of the add needs to be shifted. Eichenberger, 87. A dominant-shift policy further reduces the number of shift operations by shifting register streams to the most dominant stream offset in the graph. Id. Appellants find support for the disputed limitation of claim 1 on page 17 of Appellants’ Specification (App. Br. 3), which states: There may be more than one way to choose an alignment and operand to shift. This choice can be made arbitrarily, in a simple compiler, or it may be made with reference to all other shifts within some given region of code, such as a loop, by means of an optimization process which attempts to find a minimum number of shifts within the region. For example, common sub-expressions of scalar operations may be determined and shift operations may be selected such that for some number of instances of the common sub-expression the same shift may be utilized. Spec. 17:7–16. The scope of the claimed “shift operations are determined with reference to all other shift operations within a given region of the source code by means of an optimization process which attempts to find a minimum number of the shift operations within the given region of the source code,” when read in light of page 17 of Appellants’ Specification, encompasses determining common sub-expressions of scalar operations and Appeal 2012-003050 Application 11/339,591 5 selecting shift operations such that for some number of instances of the common sub-expression, the same shift may be utilized. Appellants have not provided persuasive evidence or argument to distinguish the lazy-shift and dominant-shift policies of Eichenberger, which utilize the same shift for common sub-expressions, from “shift operations are determined with reference to all other shift operations within a given region of the source code by means of an optimization process which attempts to find a minimum number of the shift operations within the given region of the source code” as recited in claim 1. We sustain the rejection of claim 1 under 35 U.S.C. § 102. Appellants do not provide arguments for separate patentability of claims 21–34, which fall with claim 1. DECISION The rejection of claims 1 and 21–34 under 35 U.S.C. § 102(b) as being anticipated by Eichenberger is affirmed. No time period for taking any subsequent action in connection with this appeal may be extended under 37 C.F.R. § 1.136(a). See 37 C.F.R. § 41.50(f). AFFIRMED msc Copy with citationCopy as parenthetical citation