Generalizing data streams to overcome differences in word...

Electrical computers and digital processing systems: multicomput – Computer-to-computer protocol implementing – Computer-to-computer data framing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C712S300000

Reexamination Certificate

active

06434625

ABSTRACT:

TECHNICAL FIELD
The present invention relates generally to the field of data processing and more particularly to a receiver of data from a sender being able to interpret the sender's native data structure layout.
BACKGROUND OF THE INVENTION
Since their inception, the basic components of computers are still the same: a computer processor and a memory. A computer processor is the active component of the computer system and manipulates data retrieved from the computer's memory to process tasks, programs, or processes assigned to the computer system. Computer memory stores information used by the computer and works in much the same way as the memory of a person. For example, just as people memorize lists, poetry and events, a computer system stores words, numbers, pictures, etc. in its several memories. Similarly, specialized hardware within a computer processor reads and interprets information from computer memory analogous to a human reading and interpreting printed words. Moreover, just as the arrangement of words on a page is important to human readers, the arrangement of information in the computer's memory is important to the computer system. For example, words in English are written from left to right, words in Hebrew are written from right to left, and words in Japanese are written top to bottom and right to left. One arrangement is not better than the other, it is only different. Similarly, bits are arranged in different formats in a computer system and, for the most part, one arrangement is not better than another which permits many approaches to organizing information in computer systems. Computer system designers have thus developed different schemes for organizing computer data.
The basic building block of all computer data is the bit, any number of which, usually a multiple of two, may comprise a byte and any number of bytes, again usually a multiple of two, may comprise a word. In the examples provided herein, a byte of data is eight bits. Four bytes or thirty-two bits of data is a word; a half-word is two bytes or sixteen bits; and a double word is eight bytes or sixty-four bits. One such difference of data representation exists for two particular forms of computer data called floating point information and binary integer information: big endian and little endian. If a binary number is implemented using. four eight bit bytes, little endian presents the low order eight bits first whereas big endian has the high order eight bits first. Illustrated in
FIG. 1
are examples of the big and little endian formats of a byte, a half-word, and a word. The decimal integer one hundred twenty four (124) can be represented in hexadecimal notation as 7C and is one byte of computer data. As shown in
FIG. 1
, there is no difference in the byte order between little endian and big endian formats for the integer 124. The next integer, fifty thousand (50,000), however, comprises two bytes or is a half word. In hexadecimal notation, the little endian format of the integer is 50 C3, whereas in the big endian format, the integer is represented as C3 50. The differences in endian format is illustrated even more vibrantly for larger integers, e.g., one billion, which is a word of data. In little endian format, one billion is represented as hexadecimal 00 CA 9A 3B and in big endian, it is represented as 3B 9A CA 00. The little endian arrangement is used in computer processors by INTEL Corporation were incorporated into IBM PC and compatible personal computers. The big endian arrangement was adopted by other computer systems such as those manufactured by APPLE Corporation having processors designed by MOTOROLA and IBM Corporations.
In the past, the choice of endian format was not a significant problem because computers seldom interchanged data or did so in ways that were not dependent upon binary data formats. As the networking of computers increased, however, the endian problem became more severe because operating systems, programming languages, and computer architectures maintain a preference for a particular endian format. For example, and as is known all too well, persons who used IBM PC or compatible computers with the Intel processors could not generally share computer programs and information with persons who had APPLE Macintosh computers, and vice versa. Large corporations which used both types of computers found it difficult to distribute information among employees. Some businesses, moreover, found that they could not easily share information with suppliers or buyers whose computers did not have the same data format. Consequently, computer software developers devoted additional time and resources to develop multiple versions of the same software to support different types of computer data formats and different computer systems.
The explosive growth of stand-alone computers used in businesses and homes in conjunction with the world wide web now demands that there be compatibility between the different types of operating and computer systems. In today's computing environment, a program on one machine or in one language may analyze data from another machine or in another language on the same machine. Each machine and/or application program may have not only have a different endian format but also its own peculiar data dependencies. Thus, it is not uncommon for two different computers to want to exchange data over a network wherein the computers have different processors, different data representations and different operating systems.
Today data is transferred through computer networks using formal and rigidly defined protocols. Protocol information is often defined by international standards such as the ISO/OSI protocol stack, CCITT recommendations for data communications and telephony, IEEE 802 standards for local area networking and ANSI standards. Other examples include the TCP/IP protocol stack, defined by the U.S. Department of Defense, plus other military and commercial data processing standards such as the U.S. Navy SAFENET standard, the Xerox Corporation XNS protocol suite, the Sun Microsystems NFS protocol, and compression standards for HDTV and other video formats. In these formats byte order and other features of the data structure layout are fixed. But the problem of data transfer between or among different systems is only exacerbated by these rigid protocols because now data transfer is not only constrained by computer processor formats, operating systems, and programming languages but also data transfer protocols. For many environments, this is not a satisfactory solution.
Endianness, which is just byte order, has already been discussed but actually is only one aspect of data structure layout or data dependency. Some computer languages have abstractions called integers which represent a multi-byte binary number, and pointers which contain a memory address, both of which may vary in size. For example, in C standard, the relational sizes of integers and pointer addresses are presented below:
size of (short)≦size of (int)≦size of (long)≦size of (longlong)
size of (void*)−undefined
In several defacto standards, the sizes of integer types and pointers differ according to the table below:
word
short
int
long
longlong
pointer
(bits)
(bytes)
(bytes)
(bytes)
(bytes)
(bytes)
16 bits
2
2
4
8
2 or 4
32 bits
2
4
4
8
4
64 bits(a)
2
4
4
8
8
64 bits(b)
2
4
8
8
8
Java
2
4
8
not applicable
not applicable
AS/400
2
4
4
8
16 
“Rounding” rules comprise yet another local data dependency or feature of data structure layouts. Many languages have data “records” or “structures” to indicate a logical, and sometimes physical, aggregation of related data. Some data records have a more favorable bit alignment in a given machine for better performance. Many languages allow the declared aggregation of data items to have extra storage inserted between them to achieve favorable alignment. In C/C++, for example, whether and when to do round up/down is determined by each compiler. Such aggregations are typically called by the C keyword “struct.”
It is possi

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Generalizing data streams to overcome differences in word... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Generalizing data streams to overcome differences in word..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Generalizing data streams to overcome differences in word... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2943927

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.