This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Patent on aligned memcpy
- To: mrs at wrs dot com
- Subject: Re: Patent on aligned memcpy
- From: Geoff Keating <geoffk at ozemail dot com dot au>
- Date: Thu, 20 Aug 1998 17:57:14 +1000
- CC: egcs at cygnus dot com
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>