This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Patent on aligned memcpy



Mike wrote about a patent, which appears to be US number 5706483, which
claims:

We claim: 

1. A method of transferring bytes of a data block from a
source to a destination in byte and word-addressable memory, the
method comprising the following steps: 

* fetching, from a starting address of the source in memory, a number
of data block bytes that the starting address is apart from a
word-aligned address of memory;

* fetching, from successive word-aligned addresses of the source,
words of data block bytes;

* writing, to a starting address of the destination in memory for the
data block bytes, a number of bytes corresponding to bytes fetched
from the source, which number the starting destination address is
apart from a word-aligned address of the memory; and

* writing, to successive word-aligned addresses of the destination,
words corresponding to words fetched from the source.

[and other dependent and similar claims.]

The filing information is:
ASSIGNEES: Microsoft Corporation, Redmond, WA
ISSUED: Jan. 6 , 1998  FILED: Dec. 13, 1994

and refers to:
"Device Driver Adaption Guide" Microsoft Corporation, 1992; Chapters
1, 2 & 10.

This patent is typical of many software patents, in that it's junk.
This is what the LPF was talking about when they said that finding
prior art for software is not something the patent office is good at.

>From sysdeps/generic/memcopy.h in the glibc distribution:

/* memcopy.h -- definitions for memory copy functions.  Generic C version.
   Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
   Contributed by Torbjorn Granlund (tege@sics.se).
...
/* The strategy of the memory functions is:

     1. Copy bytes until the destination pointer is aligned.

     2. Copy words in unrolled loops.  If the source and destination
     are not aligned in the same way, use word memory operations,
     but shift and merge two read words before writing.

     3. Copy the few remaining bytes.


So, if anyone wants to contest it...

-- 
Geoffrey Keating <geoffk@ozemail.com.au>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]