Monday, August 4, 2008

Software is found to be a machine, again

A recent IEEE article: The claimed invention .... is not a disembodied mathematical concept which may be characterized as an "abstract idea", but rather a specific machine to produce a useful, concrete and tangible result. To some, this is a bit awkward, in that most software, when loaded into a microprocessor, doesn't reconfigure the physical architecture of the microprocessor to make it more "specific". I have mentioned software-machine philosophy in a previous post, and, here it is, picked with a fine tooth comb. The flow of electrons through the microprocessor is made more specific and useful, but the microprocessor architecture itself is no more specific with software loaded. Reflecting decades of engineering, the cover paper in the August 2008 issue of IEEE Computer magazine makes this literally true, in a sense - when you load the software, part of the physical architecture is altered, creating a more specific machine. The paper is titled "Warp processing: dynamic translation of binaries to FPGA circuits" (by the way, anyone who argues 35 USC 101 and software without mentioning FPGAs is a brain-dead idiot). The abstract is: Warp processing dynamically and transparently transforms an executing microprocessor's binary kernels into customized field-programmable gate array circuits, commonly resulting in 2X to 100X speedup over executing on microprocessors. A new architecture and set of dynamic CAD tools demonstrate warp processing's potential. Warp processing is: "In warp processing, a compute platform transparently performs FPGA circuit compilation as a program's binary executes on a microprocessor - that is, dynamically." A computer program - an algorithm - an information processing method has its structure converted to a specific hardware digital circuit as the gate arrays connections are reset - there really is a specific hardware circuit - that is the computer program. If you attached quantum dot lasers to the switching gates of the FPGA as the computer program was loaded, you could physically see the specific machine being created. One sentence from the article: "In contrast, field programmable gate array software bits represent a circuit to be mapped onto an FPGA's configurable logic fabric." which no one in the engineering world will disagree with, a sentence completely compatible with common sense. However, many strive to fabricate explanations in this context of why software is/is-not non-functional descriptive bits (not patentable), a circuit (patentable), mathematical logic (not patentable), and/or a machine/fabric (patentable). They have to lie to make these equivalences into non-equivalences to find something unpatentable. For engineering, no such explanations are needed. But to the strange views of software patent critics (see below) and PTO management, such explanations can only be done by lying about science and engineering. Issued FPGA patents are as much literal examples just like this System level applications of adaptive computing technology: U.S. Patent 7,404,170, Real-time implementation of field programmable gate arrays in hyperspectral imaging U.S. Patent 7,366,326 - Is firmware - hardware, software, or software hardware? The engineering world doesn't care. Only people who don't understand the science and engineering care. One of the biggest obscenities of 35 USC 101 caselaw and written briefs is the near complete absence of citations to any of the science and engineering literature that can resolve this issue once and for all . This legal arrogance to ignore science and engineering in decisions involving science/engineering law is why still now incompetent PTO management is forcing use to argue these issues.


FPGA Blog said...

Interesting comment

Kelly W. said...

Tangentially, but how timely!