KR20080114015A - Data processing apparatus and data processing method - Google Patents

Data processing apparatus and data processing method Download PDF

Info

Publication number
KR20080114015A
KR20080114015A KR1020070063150A KR20070063150A KR20080114015A KR 20080114015 A KR20080114015 A KR 20080114015A KR 1020070063150 A KR1020070063150 A KR 1020070063150A KR 20070063150 A KR20070063150 A KR 20070063150A KR 20080114015 A KR20080114015 A KR 20080114015A
Authority
KR
South Korea
Prior art keywords
data file
byte
order
information
reference information
Prior art date
Application number
KR1020070063150A
Other languages
Korean (ko)
Other versions
KR101437962B1 (en
Inventor
정주영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070063150A priority Critical patent/KR101437962B1/en
Priority to US12/139,666 priority patent/US8510318B2/en
Publication of KR20080114015A publication Critical patent/KR20080114015A/en
Application granted granted Critical
Publication of KR101437962B1 publication Critical patent/KR101437962B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/768Data position reversal, e.g. bit reversal, byte swapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A data processing apparatus and a data processing method are provided to improve program developing efficiency by applying one program to all the systems without respect to byte orders of the systems. A data processing method comprises the following steps. Order information included in a data file is read according to one byte order of a pair of byte orders(S201). The read order information is compared with reference information(S202). When the read order information is the same as the reference information, the data file is read(S203).

Description

데이터 처리 장치 및 데이터 처리 방법{DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD}DATA PROCESSING APPARATUS AND DATA PROCESSING METHOD}

도 1은 종래 기술에 따라 데이터 파일을 인코딩하는 과정의 일례를 도시한 흐름도이고,1 is a flowchart illustrating an example of a process of encoding a data file according to the prior art;

도 2는 종래 기술에 따라 데이터 파일을 인코딩하는 과정의 다른 예를 도시한 흐름도이고,2 is a flowchart illustrating another example of a process of encoding a data file according to the prior art;

도 3은 종래 기술에 따라 데이터 파일을 디코딩하는 과정의 일례를 도시한 흐름도이고,3 is a flowchart illustrating an example of a process of decoding a data file according to the prior art;

도 4는 본 발명의 일실시예에 의한 데이터 처리 장치의 구성을 도시한 블록도이고,4 is a block diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention;

도 5는 본 발명의 일실시예에 의한 데이터 처리 장치의 인코딩 동작을 도시한 흐름도5 is a flowchart illustrating an encoding operation of a data processing apparatus according to an embodiment of the present invention.

도 6은 본 발명의 일실시예에 의한 데이터 처리 장치의 디코딩 동작을 도시한 흐름도이다.6 is a flowchart illustrating a decoding operation of a data processing apparatus according to an embodiment of the present invention.

*도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

100: 데이터 처리 장치      101: 메모리100: data processing unit # 101: memory

102: 프로세서              103: 프로그램 저장부102: processor # 103: program storage unit

본 발명은 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다. 더욱 상세하게는, 본 발명은 데이터가 기록되어 있는 순서가 다양한 데이터 파일을 처리하는 데이터 처리 장치 및 데이터 처리 방법에 관한 것이다.The present invention relates to a data processing apparatus and a data processing method. More specifically, the present invention relates to a data processing apparatus and a data processing method for processing a data file in which the data is recorded in various orders.

PC와 같은 범용 컴퓨터 시스템(general purpose computer system), 프린터 등과 같은 임베디드 시스템(embedded system) 등을 포함하는 데이터 처리 장치(이하, 간략히 "시스템"이라고도 함)는 데이터가 저장되는 메모리(computer memory)와, 메모리에 저장된 데이터를 읽거나(read), 읽어 낸 데이터를 처리하거나(process), 처리된 데이터를 메모리에 기록하는(write) 프로세서(computer processor)를 구비한다.A data processing device (hereinafter, simply referred to as a "system") including a general purpose computer system such as a PC, an embedded system such as a printer, and the like may include a computer memory in which data is stored; And a processor that reads the data stored in the memory, processes the read data, or writes the processed data into the memory.

통상적으로, 프로세서가 메모리에 데이터를 기록할 때 바이트 단위(예컨대, 16-bit의 경우 2 바이트)로 데이터를 기록하는데, 메모리의 어드레스에 대하여 데이터의 바이트를 어떠한 순서로 기록할 것인지에 관한 방식(이하, "바이트 순서(byte order)"라 함)이 정해져 있다. 이러한 바이트 순서의 대표적인 예로서, 빅 엔디안(big-endian)과, 리틀 엔디안(little-endian)을 들 수 있다. 빅 엔디안은 최상위 비트(most significant bit)부터 부호화되어 저장되며, 리틀 엔디안은 최하위 비트(least significant bit)부터 부호화되어 저장된다.Typically, when a processor writes data to memory, it writes data in byte units (e.g., 2 bytes for 16-bit), in which order the bytes of data are written in order relative to the address of the memory , "Byte order" is defined. Representative examples of such byte order include big-endian and little-endian. The big endian is encoded and stored from the most significant bit, and the little endian is encoded and stored from the least significant bit.

이러한 바이트 순서는 프로세서의 속성이며, 단지 하나의 시스템에 대해서만 프로그래밍한다면 바이트 순서가 문제될 경우는 거의 없다. 하지만, 네트워크 프로그래밍 등의 경우와 같이, 바이트 순서가 서로 다른 시스템 간 데이터를 주고받는 경우에는 바이트 순서가 중요한 문제가 된다.This byte order is an attribute of the processor, and if you are programming for only one system, byte order is rarely a problem. However, as in the case of network programming, the byte order becomes an important problem when exchanging data between systems having different byte orders.

이러한 문제를 해결하기 위하여 종래 기술에 의하면, 데이터 파일의 파일 포맷으로서 특정 바이트 순서만을 사용하도록 지정해 두거나, 데이터 파일의 헤더에 기록 시 사용된 바이트 순서를 명시하도록 하는 방법 등이 이용되고 있다.In order to solve such a problem, according to the related art, a method of specifying only a specific byte order as a file format of a data file, or specifying a byte order used when writing in a header of the data file is used.

구체적으로, 데이터 파일의 기록 시(이하, "인코딩"이라 함), 특정 바이트 순서가 지정된 경우에는, 도 1에 도시된 바와 같이, 먼저, 시스템은 해당 데이터 파일에서 미리 지정된 바이트 순서를 확인한다(S11). 그 결과, 지정된 바이트 순서가 리틀 엔디안이면(S12), 시스템은 리틀 엔디안 방식으로 데이터 파일을 기록한다(S13). 만일, 단계 S12에서, 지정된 바이트 순서가 리틀 엔디안이 아니면, 시스템은 빅 엔디안 방식으로 데이터 파일을 기록한다(S14).Specifically, when writing a data file (hereinafter referred to as "encoding"), when a specific byte order is specified, as shown in FIG. 1, first, the system checks a predetermined byte order in the data file ( S11). As a result, if the specified byte order is little endian (S12), the system writes the data file in little endian manner (S13). If, in step S12, the designated byte order is not little endian, the system records the data file in a big endian manner (S14).

다른 예로서, 데이터 파일의 헤더에 바이트 순서를 명시하는 경우에는, 도 2에 도시된 바와 같이, 먼저, 시스템은 자신의 바이트 순서가 무엇인지를 확인하다(S21). 그 결과, 시스템의 바이트 순서가 리틀 엔디안이면(S22), 시스템은 데이터 파일의 헤더의 첫 두 바이트에 "II"을 기록한다(S23). 만일, 단계 S12에서, 시스템의 바이트 순서가 리틀 엔디안이 아니면, 시스템은 헤더의 첫 두 바이트에 "MM"을 기록한다(S24).As another example, when specifying the byte order in the header of the data file, as shown in FIG. 2, first, the system checks what the byte order is (S21). As a result, if the byte order of the system is little endian (S22), the system writes " II " in the first two bytes of the header of the data file (S23). If, in step S12, the byte order of the system is not little endian, the system writes "MM" in the first two bytes of the header (S24).

한편, 이렇게 인코딩된 데이터 파일을 읽을 때(이하, "디코딩"이라 함)에는, 상기 두 경우 모두, 도 3에 도시된 바와 같이, 먼저, 시스템은 데이터 파일의 바이 트 순서를 확인한다(S31). 단계 S31에서, 파일 포맷에 의해 특정 바이트 순서가 지정된 경우에는 시스템은 그 지정된 바이트 순서를 확인하며, 데이터 파일의 헤더에 바이트 순서가 명시된 경우에는, 당해 헤더의 첫 두 바이트를 한번에 읽어 내어, 그것이 "II"인지 "MM"인지 여부를 확인한다.On the other hand, when reading the encoded data file (hereinafter referred to as "decoding"), in both cases, as shown in Figure 3, first, the system checks the byte order of the data file (S31). . In step S31, if a specific byte order is specified by the file format, the system checks the designated byte order, and when the byte order is specified in the header of the data file, the first two bytes of the header are read at once, and it is " II "or" MM ".

단계 S31에서의 확인 결과, 데이터 파일의 바이트 순서가 리틀 엔디안이면(S32), 시스템은 자신의 바이트 순서를 확인한다(S34). 단계 S34에서의 확인 결과, 시스템의 바이트 순서가 리틀 엔디안이면(S36), 시스템은 데이터 파일의 바이트순서의 전환없이 그대로 데이터 파일을 읽어 낸다(S39). 만일, 단계 S34에서의 확인 결과, 시스템의 바이트 순서가 리틀 엔디안이 아니면(S36), 시스템은 데이터 파일의 바이트순서를 빅 엔디안으로 전환하여 데이터 파일을 읽어 낸다(S38).As a result of the confirmation in step S31, if the byte order of the data file is little endian (S32), the system checks its own byte order (S34). As a result of the check in step S34, if the byte order of the system is little endian (S36), the system reads the data file as it is without changing the byte order of the data file (S39). If the check result in step S34 indicates that the byte order of the system is not little endian (S36), the system switches the byte order of the data file to big endian to read the data file (S38).

한편, 단계 S31에서의 확인 결과, 데이터 파일의 바이트 순서가 리틀 엔디안이 아니면(S32), 데이터 파일의 바이트 순서가 빅 엔디안인지 여부를 확인하여(S33), 빅 엔디안이 아니면 오류인 것으로 판단하고 처리한다(S40).On the other hand, as a result of the check in step S31, if the byte order of the data file is not little endian (S32), it is checked whether the byte order of the data file is big endian (S33), and if it is not big endian, it is determined that it is an error and is processed. (S40).

단계 S31에서의 확인 결과, 데이터 파일의 바이트 순서가 빅 엔디안이면(S33), 시스템은 자신의 바이트 순서를 확인한다(S35). 단계 S35에서의 확인 결과, 시스템의 바이트 순서가 리틀 엔디안이면(S36), 시스템은 데이터 파일의 바이트순서를 리틀 엔디안으로 전환하여 데이터 파일을 읽어 내고(S38), 그렇지 않으면 데이터 파일의 바이트순서의 전환없이 그대로 데이터 파일을 읽어 낸다(S39).As a result of the checking in step S31, if the byte order of the data file is big endian (S33), the system checks its own byte order (S35). As a result of the check in step S35, if the byte order of the system is little endian (S36), the system switches the byte order of the data file to little endian to read the data file (S38), otherwise it switches the byte order of the data file. The data file is read as it is (S39).

이와 같이, 종래 기술에 의하면, 데이터 파일의 인코딩 시에는, 데이터 파일 혹은 시스템의 바이트 순서를 확인하여, 반드시 이에 맞도록 데이터 파일을 기록해 야 한다. 또한, 디코딩의 경우에는, 데이터 파일 및 시스템 모두의 바이트 순서를 확인하여, 이에 맞게끔 데이터 파일을 읽어야 한다.As described above, according to the related art, when encoding a data file, it is necessary to check the byte order of the data file or the system, and record the data file accordingly. Also, in the case of decoding, the byte order of both the data file and the system must be checked and the data file read accordingly.

따라서 이러한 종래 기술에 의한 바이트 순서 처리는 데이터 파일 및/또는 시스템의 바이트 순서를 반드시 확인하는 과정이 요구되므로 데이터 처리의 면에서 효율적이지 못한 문제가 있다.Therefore, the byte order processing according to the related art requires a process of necessarily checking the byte order of the data file and / or the system, and thus there is a problem in that it is not efficient in terms of data processing.

또한, 종래 기술에 의하면, 시스템의 바이트 순서를 확인하여야 하므로, 하나의 프로그램을 개발함에 있어서 각 시스템에 맞는 프로그램을 일일이 작성하여야 하는데, 이 또한 매우 비효율적이어서 문제가 된다.In addition, according to the prior art, it is necessary to check the byte order of the system, so in developing one program, a program suitable for each system must be prepared, which is also very inefficient and becomes a problem.

본 발명은 상기 문제점을 해결하기 위한 것으로서, 데이터 파일의 바이트 순서 처리가 효율적인 데이터 처리 장치 및 데이터 처리방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a data processing apparatus and a data processing method in which byte order processing of a data file is efficient.

또한, 본 발명은, 프로그램 설계의 효율이 향상되도록 데이터 파일의 바이트 순서 처리가 개선된 데이터 처리 장치 및 데이터 처리방법을 제공하는 것을 목적으로 한다.It is also an object of the present invention to provide a data processing apparatus and a data processing method in which the byte order processing of a data file is improved so that the efficiency of program design is improved.

상기 목적을 달성하기 위하여, 본 발명은, 한 쌍의 바이트 순서 중 어느 하나의 바이트 순서에 따라 데이터 파일에 포함된 순서 정보를 읽는 단계와; 상기 읽혀진 순서 정보를 정해진 기준 정보와 비교하는 단계와; 상기 순서 정보와 상기 기준 정보가 일치하면 상기 데이터 파일을 읽어 내는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법을 제공한다.In order to achieve the above object, the present invention includes the steps of reading the order information contained in the data file according to any one of the byte order of the pair of byte order; Comparing the read order information with predetermined reference information; And reading out the data file when the order information and the reference information coincide with each other.

상기 데이터 파일을 읽어 내는 단계에서는, 상기 순서 정보와 상기 기준 정보가 일치하지 않으면 상기 데이터 파일의 바이트 순서를 전환하여 상기 데이터 파일을 읽어 낼 수 있다.In the reading of the data file, if the order information and the reference information do not coincide, the data file may be read by switching the byte order of the data file.

상기 한 쌍의 바이트 순서는 리틀 엔디안 및 빅 엔디안을 포함할 수 있다.The pair of byte orders may include little endian and big endian.

상기 순서 정보 및 기준 정보는 서로 다른 2바이트 이상의 16진수 값을 포함할 수 있다.The order information and the reference information may include two or more different hexadecimal values.

상기 데이터 처리 방법은, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최상위 바이트와 일치하면, 상기 데이터 파일이 빅 엔디안 방식에 의해 기록된 것으로, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최하위 바이트와 일치하면, 상기 데이터 파일이 리틀 엔디안 방식에 의해 기록된 것으로 결정하는 단계를 더 포함할 수 있다.In the data processing method, when the first byte of the order information matches the most significant byte of the reference information, the data file is recorded by a big endian method, and the first byte of the order information is the lowest of the reference information. If it matches a byte, the method may further include determining that the data file has been written in a little endian manner.

상기 데이터 처리 방법은, 상기 결정하는 단계에서 결정된 엔디안 방식을 표시하는 단계를 더 포함할 수 있다. 상기 순서 정보는 상기 데이터 파일의 헤더에 포함될 수 있다.The data processing method may further include displaying an endian scheme determined in the determining. The order information may be included in a header of the data file.

본 발명의 상기 목적은, 데이터 처리 장치에 있어서, 한 쌍의 바이트 순서 중 어느 하나의 바이트 순서에 따라 기록된 데이터 파일로서, 상기 바이트 순서에 관한 순서 정보를 포함하는 데이터 파일이 저장되는 메모리와; 상기 메모리에 저장된 상기 순서 정보와, 정해진 기준 정보를 비교하여, 상기 순서 정보와 상기 기준 정보가 일치하면 상기 데이터 파일을 읽어 내는 프로세서를 포함하는 것을 특징으 로 하는 데이터 처리 장치에 의해서도 달성될 수 있다.The above object of the present invention is a data processing apparatus, comprising: a memory in which a data file recorded in a byte order of a pair of byte orders is stored, the data file including order information relating to the byte order; And a processor for comparing the order information stored in the memory with the predetermined reference information and reading out the data file when the order information and the reference information coincide with each other. .

상기 프로세서는, 상기 순서 정보와 상기 기준 정보가 일치하지 않으면 상기 데이터 파일의 바이트 순서를 전환하여 상기 데이터 파일을 읽어 낼 수 있다.The processor may read the data file by switching the byte order of the data file if the order information and the reference information do not match.

상기 프로세서는, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최상위 바이트와 일치하면, 상기 데이터 파일이 빅 엔디안 방식에 의해 기록된 것으로, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최하위 바이트와 일치하면, 상기 데이터 파일이 리틀 엔디안 방식에 의해 기록된 것으로 결정할 수 있다.If the first byte of the order information matches the most significant byte of the reference information, the processor records the data file in a big endian manner, and the first byte of the order information corresponds to the least significant byte of the reference information. If there is a match, it can be determined that the data file has been written in a little endian manner.

상기 데이터 처리 장치는, 표시부를 더 포함하며, 상기 프로세서는 상기 결정된 엔디안 방식을 상기 표시부에 표시할 수 있다.The data processing apparatus may further include a display unit, and the processor may display the determined endian scheme on the display unit.

이하, 첨부된 도면을 참조하여 본 발명의 일실시예에 관하여 상세히 설명한다. 도 4는 본 발명의 일실시예에 의한 데이터 처리 장치(100)의 구성을 도시한 블록도이다. 데이터 처리 장치(100; 이하, 간략히 "시스템"이라고도 함)는 데이터가 저장되는 메모리(101)와, 메모리(101)에 저장된 데이터를 읽거나, 읽어 낸 데이터를 처리하거나, 처리된 데이터를 메모리(101)에 기록하는 프로세서(102)를 포함한다.Hereinafter, with reference to the accompanying drawings will be described in detail an embodiment of the present invention. 4 is a block diagram showing the configuration of a data processing apparatus 100 according to an embodiment of the present invention. The data processing apparatus 100 (hereinafter, also referred to as a "system") may include a memory 101 in which data is stored, a data stored in the memory 101, a read data, a read data, or a processed data. A processor 102 for writing to the device 101.

메모리(101)는 RAM 등으로 구현될 수 있으며, 프로세서(102)는 CPU 등으로 구현될 수 있다. 데이터 처리 장치(100)는 PC와 같은 범용 컴퓨터 시스템, 프린터 등과 같은 임베디드 시스템 등으로 구현될 수 있다. 메모리(101)에 저장되는 데이터는 파일 형식을 가질 수 있다(이하, 이러한 형식의 데이터를 "데이터 파일"이라 한다).The memory 101 may be implemented with a RAM or the like, and the processor 102 may be implemented with a CPU or the like. The data processing apparatus 100 may be implemented as a general-purpose computer system such as a PC, an embedded system such as a printer, or the like. The data stored in the memory 101 may have a file format (hereinafter, such data is referred to as a "data file").

프로세서(102)는 메모리(101)에 데이터 파일을 기록하거나 메모리(101)로부터 데이터 파일을 읽어낼 때 바이트 단위(예컨대, 16-bit의 경우 2 바이트)로 이를 수행할 수 있다. 프로세서(102)에 있어서는, 메모리의 어드레스(101)에 대하여 데이터 파일의 바이트 데이터를 어떠한 순서로 기록하고, 어떠한 순서로 읽을 것인지에 관한 바이트 순서가 정해질 수 있다. 예컨대, 프로세서(102)의 바이트 순서는 빅 엔디안 또는 리틀 엔디안일 수 있다.The processor 102 may perform this in byte units (eg, 2 bytes in case of 16-bit) when writing a data file to or reading a data file from the memory 101. In the processor 102, a byte order regarding which order the byte data of the data file is written and the order of reading the byte data of the data file to the address 101 of the memory can be determined. For example, the byte order of processor 102 may be big endian or little endian.

본 발명의 일실시예에 있어서는, 데이터 파일을 메모리(101)에 기록하거나 메모리(101)로부터 데이터 파일을 읽어 냄에 있어서, 시스템 혹은 데이터 파일이 어떤 바이트 순서에 해당하는지 여부를 확인할 필요가 없다. 단지, 특정 정보를 미리 정해 두고, 인코딩 시에는 이를 데이터 파일에 기록하는 것만으로, 디코딩 시에는 그 정보가 미리 정해진 또 다른 정보와 같은지 아닌지 여부만을 확인하면 된다.In one embodiment of the present invention, when writing a data file to or from the memory 101, it is not necessary to check which byte order the system or data file corresponds to. It is only necessary to determine specific information in advance, and to record it in a data file at the time of encoding, and to confirm whether or not the information is the same as another predetermined information at the time of decoding.

보다 구체적으로, 리틀 엔디안을 사용하는 시스템에서 예컨대 "0x5678"을 기록하는 경우, 물리적으로는 메모리의 어드레스 순서에 따라 첫 번째 바이트에는 "0x78"이, 두 번째 바이트에는 "0x56"이 기록된다. 이렇게 기록된 데이터가 동일한 바이트 순서인 리틀 엔디안 시스템에서 읽혀질 때는, 역시 마찬가지로 "0x5678"로 읽히기 때문에, 당해 데이터 파일에 대한 아무런 변화 없이 그대로 읽어 내어 이용할 수 있다.More specifically, in the case of writing "0x5678" in a system using little endian, "0x78" is recorded in the first byte and "0x56" in the second byte according to the address order of the memory. When the recorded data is read in the little endian system in the same byte order, it is also read as "0x5678", so that it can be read and used as it is without any change to the data file.

반면, 리틀 엔디안 방식으로 기록된 데이터가 다른 바이트 순서인 빅 엔디안을 사용하는 시스템에서 읽혀질 때는, "0x7856"으로 읽혀지기 때문에, 이 경우에는 데이터 파일의 바이트 순서를 전환하여 읽어야 데이터의 정확한 값을 이용할 수 있 게 된다. 또한, 바이트 순서가 역인 경우에도 마찬가지이다. 이와 같은 원리를 이용한 본 발명의 일실시예를 보다 구체적으로 설명하면 다음과 같다.On the other hand, when data written in little-endian manner is read in a system using a big-endian, which is a different byte order, it is read as "0x7856". It will be possible. The same is also true when the byte order is reversed. Hereinafter, an embodiment of the present invention using the above principle will be described in more detail.

프로세서(102)는 메모리(101)에 데이터 파일을 기록할 때, 즉, 데이터 파일의 인코딩 시에는, 데이터 파일에 미리 정해진 순서 정보를 삽입하여 기록한다. 순서 정보는 서로 다른 2 바이트 이상의 16진수 값일수 있다. 예컨대, 16진수 값 은 "0x5678"일 수 있다. 순서 정보는 데이터 파일의 헤더의 첫 두 바이트에 위치할 수 있다. 이러한 본 발명의 일실시예에 의한 데이터 처리 장치(100)의 인코딩 동작(S101)을 도 5의 흐름도로 도시하였다.The processor 102 inserts and records predetermined order information into the data file when recording the data file in the memory 101, that is, when encoding the data file. The order information may be a hexadecimal value of two or more different bytes. For example, the hexadecimal value may be "0x5678". The order information can be located in the first two bytes of the header of the data file. The encoding operation S101 of the data processing apparatus 100 according to the exemplary embodiment of the present invention is illustrated in the flowchart of FIG. 5.

한편, 프로세서(102)는 메모리(101)로부터 데이터 파일을 읽을 때, 즉, 데이터 파일의 디코딩 시에는, 메모리(101)에 저장된 데이터 파일의 순서 정보와, 미리 정해진 기준 정보를 비교하여, 순서 정보와 기준 정보가 일치하면 바이트 순서의 전환없이 데이터 파일을 읽어 내고, 순서 정보와 기준 정보가 일치하지 않으면 데이터 파일의 바이트 순서를 전환하여 데이터 파일을 읽어 낸다.On the other hand, when the processor 102 reads the data file from the memory 101, that is, when decoding the data file, the processor 102 compares the order information of the data file stored in the memory 101 with predetermined reference information, and the order information. If and the reference information match, the data file is read without changing the byte order. If the order information and the reference information do not match, the data file is read by switching the byte order of the data file.

기준 정보는 순서 정보와 동일한 내용의 정보로서, 서로 다른 2 바이트 이상의 16진수 값일 수 있다. 예컨대, 순서 정보가 "0x5678"이면, 기준 정보도 "0x5678"이 된다. 기준 정보는 미리 저장될 수 있는데, 도 4에 도시된 바와 같이, 은 데이터 처리 장치(100)는 기준 정보가 저장되는 프로그램 저장부(103)를 더 포함할 수 있다. 프로그램 저장부(103)는 ROM과 같은 비휘발성메모리일 수 있다.The reference information is information having the same content as the order information and may be different hexadecimal values of two or more bytes. For example, when the order information is "0x5678", the reference information is also "0x5678". The reference information may be stored in advance. As shown in FIG. 4, the silver data processing apparatus 100 may further include a program storage unit 103 in which the reference information is stored. The program storage 103 may be a nonvolatile memory such as a ROM.

도 6은 본 발명의 일실시예에 의한 데이터 처리 장치(100)의 디코딩 동작을 도시한 흐름도이다. 도 6에 도시된 바와 같이, 먼저, 프로세서(102)는 메모리(101) 에 저장된 데이터 파일의 순서 정보로서 헤더의 첫 두 바이트를 한 번에 읽어 낸다(S201).6 is a flowchart illustrating a decoding operation of the data processing apparatus 100 according to an embodiment of the present invention. As shown in FIG. 6, first, the processor 102 reads the first two bytes of the header at once as order information of a data file stored in the memory 101 (S201).

프로세서(102)는 읽어 낸 헤더의 첫 두 바이트를 미리 정해진 기준정보와 비교하여 일치 여부를 확인한다(S202 및 S204). 만일, 읽어 낸 헤더의 첫 두 바이트가 기준정보와 일치하면(S202), 프로세서(102)는 당해 데이터 파일의 바이트 순서를 전환하지 않고 데이터 파일을 그대로 읽어 낸다(S203).The processor 102 compares the first two bytes of the read header with predetermined reference information to confirm whether they match (S202 and S204). If the first two bytes of the read header match the reference information (S202), the processor 102 reads the data file as it is without changing the byte order of the data file (S203).

만일, 읽어 낸 헤더의 첫 두 바이트가 기준정보와 일치하지 않으면(S202), 프로세서(102)는 헤더의 첫 두 바이트가 기준정보인 두 바이트의 역전된 상태인지 여부를 확인한다(S204). 단계 S204에서는, 예컨대, 기준정보의 16진수 값은 "0x5678"인데, 헤더의 첫 두 바이트는 "0x7856"으로 읽혀지는 경우이거나, 그 역인 경우가 발생될 수 있다. 이러한 경우는, 데이터 파일이 기록된 방식은 리틀 엔디안인데, 시스템은 빅 엔디안인 경우이거나, 그 역인 경우가 된다.단계 S204에서, 헤더의 첫 두 바이트가 기준정보인 두 바이트의 역전된 상태인 것으로 판단되면, 프로세서(102)는 당해 데이터 파일의 바이트 순서를 다른 바이트 순서로 전환하여 데이터 파일을 읽어 낸다(S205). 단계 S205에서는, 예컨대, 데이터 파일이 기록된 방식은 리틀 엔디안인데, 시스템은 빅 엔디안인 경우, 데이터 파일의 바이트 순서를 빅 엔디안으로 전환하는 경우가 있을 수 있다. 물론 그 반대의 경우도 가능하다.한편, 단계 S204에서, 헤더의 첫 두 바이트가 기준정보인 두 바이트의 역전된 상태가 아닌 것으로 판단되면, 프로세서(102)는 오류인 것으로 판단하여 처리한다(S206). 이러한 경우는, 순서 정보와 기준 정보가 동일한 값으로 미리 정해진 경우가 아닐 수 있다.If the first two bytes of the read header do not match the reference information (S202), the processor 102 checks whether the first two bytes of the header are inverted state of the two bytes of the reference information (S204). In step S204, for example, the hexadecimal value of the reference information is "0x5678", and the first two bytes of the header may be read as "0x7856" or vice versa. In this case, the manner in which the data file is written is little endian, and the system is either big endian or vice versa. In step S204, it is assumed that the first two bytes of the header are inverted two bytes of reference information. If determined, the processor 102 switches the byte order of the data file to another byte order and reads the data file (S205). In step S205, for example, the manner in which the data file is recorded is little endian, but if the system is big endian, there may be a case where the byte order of the data file is switched to big endian. Of course, the reverse case is also possible. In the meantime, if it is determined in step S204 that the first two bytes of the header are not the inverted state of the two bytes as reference information, the processor 102 determines that an error is processed (S206). ). In this case, the order information and the reference information may not be predetermined.

도 4를 다시 참조하면, 본 발명의 일실시예에 의한 프로세서(102)는 명령 단위의 코드로 이루어진 프로그램을 실행하여 동작할 수 있다. 이러한 프로그램은 프로그램 저장부(103)에 저장될 수 있다. 프로그램 저장부(103)에 저장된 프로그램의 전부 또는 일부는 메모리(101)에 로드되어 프로세서(102)에 의해 읽혀짐으로써 실행될 수 있다. 프로그램은 프로세서(102)가 도 4 내지 도 6과 관련하여 설명된 바와 같은 동작을 수행하도록 하는 코드를 포함한다. 이 경우, 기준 정보는 코드의 일부로서 구현될 수 있다.Referring back to FIG. 4, the processor 102 according to an embodiment of the present invention may operate by executing a program consisting of code in an instruction unit. Such a program may be stored in the program storage 103. All or part of a program stored in the program storage 103 may be loaded into the memory 101 and read by the processor 102 to be executed. The program includes code that causes the processor 102 to perform an operation as described in connection with FIGS. 4-6. In this case, the reference information may be implemented as part of the code.

상기한 바와 같이, 본 발명의 일실시예에 의하면, 데이터를 기록하거나 읽어 냄에 있어서, 시스템 및/또는 데이터 파일이 어떠한 바이트 순서에 해당하는지를 알 필요가 없는 장점이 있다. 이에 따라, 시스템은 데이터를 보다 효율적으로 기록하거나 읽어 낼 수 있다.As described above, according to one embodiment of the present invention, there is an advantage in that it is not necessary to know which byte order the system and / or data file corresponds to in writing or reading data. As a result, the system can record or read data more efficiently.

또한, 시스템의 프로그래밍 시, 시스템의 바이트 순서를 고려할 필요가 없기 때문에, 하나의 프로그램만을 개발하면 시스템의 바이트 순서에 관계없이 모든 시스템에 적용할 수 있게 되어, 프로그램 개발 효율이 향상된다.In addition, when programming a system, it is not necessary to consider the byte order of the system. If only one program is developed, it can be applied to all systems regardless of the byte order of the system, thereby improving program development efficiency.

한편, 본 발명의 일실시예에 의하면, 시스템 및/또는 데이터 파일이 어떠한 바이트 순서에 해당하는지를 알 필요가 없다는 것이지, 데이터 파일의 바이트 순서를 알 수가 없다는 것은 아니다. 본 발명의 일실시예에 의하더라도, 데이터 파일이 어떠한 바이트 순서에 따라 기록되었는지를 알고자 하는 경우에는, 순서 정보의 2이상의 바이트 중 첫 번째 바이트와, 기준 정보의 최상위 바이트("0x5678"의 경우 "0x56"에 대응) 또는 최하위 바이트("0x5678"의 경우 "0x78"에 대응)와의 일치 여부에 따라 데이터 파일의 바이트 순서를 결정할 수 있다. 예컨대, 순서 정보의 첫 번째 바이트가 "0x56"이면 빅 엔디안 시스템에 의해 기록된 데이터인 것으로 판단할 수 있고, 그것이 "0x78"이면 리틀 엔디안 시스템에 의해 기록된 데이터인 것으로 판단할 수 있다.On the other hand, according to one embodiment of the present invention, it is not necessary to know which byte order the system and / or data file corresponds to, but it does not mean that the byte order of the data file is unknown. Even in accordance with an embodiment of the present invention, when it is desired to know in what byte order the data file is written, the first byte of two or more bytes of the order information and the most significant byte of the reference information ("0x5678") The byte order of the data file can be determined according to whether or not it matches "0x56" or the least significant byte (or "0x78" in the case of "0x5678"). For example, if the first byte of the order information is "0x56", it may be determined that the data is recorded by the big endian system, and if it is "0x78", it may be determined that the data is recorded by the little endian system.

이와 같은 판단에 의해 결정된 엔디안 방식은 소정의 표시부(도시 안됨)를 통하여 표시될 수 있다. 표시부는 데이터 처리 장치(100)에 포함되는 것으로서 프로세서(102)에 의해 제어되는 LCD패널 등으로 구현될 수 있다.The endian system determined by the determination may be displayed through a predetermined display unit (not shown). The display unit is included in the data processing apparatus 100 and may be implemented as an LCD panel controlled by the processor 102.

이상, 바람직한 실시예를 통하여 본 발명에 관하여 상세히 설명하였으나, 본 발명은 이에 한정되는 것은 아니며 특허청구범위 내에서 다양하게 실시될 수 있다.As mentioned above, the present invention has been described in detail through preferred embodiments, but the present invention is not limited thereto and may be variously implemented within the scope of the claims.

상기한 바와 같이, 본 발명에 의하면, 데이터를 기록하거나 읽어 냄에 있어서, 시스템 및/또는 데이터 파일이 어떠한 바이트 순서에 해당하는지를 알 필요가 없기 때문에, 데이터를 보다 효율적으로 기록하거나 읽어 낼 수 있다.As described above, according to the present invention, since it is not necessary to know what byte order the system and / or data file correspond to when recording or reading data, data can be recorded or read more efficiently.

또한, 본 발명에 의하면, 시스템의 프로그래밍 시, 시스템의 바이트 순서를 고려할 필요가 없기 때문에, 하나의 프로그램만을 개발하면 시스템의 바이트 순서에 관계없이 모든 시스템에 적용할 수 있게 되어, 프로그램 개발 효율이 향상된다.In addition, according to the present invention, when programming a system, it is not necessary to consider the byte order of the system. Therefore, if only one program is developed, the system can be applied to all systems regardless of the byte order of the system, thereby improving program development efficiency. do.

Claims (14)

한 쌍의 바이트 순서 중 어느 하나의 바이트 순서에 따라 데이터 파일에 포함된 순서 정보를 읽는 단계와;Reading order information contained in the data file according to any one byte order of the pair of byte orders; 상기 읽혀진 순서 정보를 정해진 기준 정보와 비교하는 단계와;Comparing the read order information with predetermined reference information; 상기 순서 정보와 상기 기준 정보가 일치하면 상기 데이터 파일을 읽어 내는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.And reading out the data file when the order information and the reference information coincide with each other. 제1항에 있어서,The method of claim 1, 상기 데이터 파일을 읽어 내는 단계에서, 상기 순서 정보와 상기 기준 정보가 일치하지 않으면 상기 데이터 파일의 바이트 순서를 전환하여 상기 데이터 파일을 읽어 내는 것을 특징으로 하는 데이터 처리 방법.In the step of reading the data file, if the sequence information and the reference information do not match, changing the byte order of the data file to read the data file. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 한 쌍의 바이트 순서는 리틀 엔디안 및 빅 엔디안을 포함하는 것을 특징으로 하는 데이터 처리 방법.And the pair of byte sequences include little endian and big endian. 제3항에 있어서,The method of claim 3, 상기 순서 정보 및 기준 정보는 서로 다른 2바이트 이상의 16진수 값을 포함하는 것을 특징으로 하는 데이터 처리 방법.And the order information and the reference information include two or more different hexadecimal values. 제4항에 있어서,The method of claim 4, wherein 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최상위 바이트와 일치하면, 상기 데이터 파일이 빅 엔디안 방식에 의해 기록된 것으로, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최하위 바이트와 일치하면, 상기 데이터 파일이 리틀 엔디안 방식에 의해 기록된 것으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.If the first byte of the order information matches the most significant byte of the reference information, the data file is recorded by a big endian method, and if the first byte of the order information matches the least significant byte of the reference information, And determining that the data file has been recorded by a little endian scheme. 제5항에 있어서,The method of claim 5, 상기 결정하는 단계에서 결정된 엔디안 방식을 표시하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 방법.And displaying the endian scheme determined in the determining step. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 순서 정보는 상기 데이터 파일의 헤더에 포함된 것을 특징으로 하는 데이터 처리 방법.The order information is included in a header of the data file. 데이터 처리 장치에 있어서,In the data processing apparatus, 한 쌍의 바이트 순서 중 어느 하나의 바이트 순서에 따라 기록된 데이터 파일로서, 상기 바이트 순서에 관한 순서 정보를 포함하는 데이터 파일이 저장되는 메모리와;A data file recorded according to any one byte order of a pair of byte orders, the memory file storing a data file including order information about the byte order; 상기 메모리에 저장된 상기 순서 정보와, 정해진 기준 정보를 비교하여, 상기 순서 정보와 상기 기준 정보가 일치하면 상기 데이터 파일을 읽어 내는 프로세서를 포함하는 것을 특징으로 하는 데이터 처리 장치.And a processor for comparing the order information stored in the memory with predetermined reference information and reading the data file when the order information and the reference information match. 제8항에 있어서,The method of claim 8, 상기 프로세서는, 상기 순서 정보와 상기 기준 정보가 일치하지 않으면 상기 데이터 파일의 바이트 순서를 전환하여 상기 데이터 파일을 읽어 내는 것을 특징으로 하는 데이터 처리 장치.And the processor reads the data file by switching the byte order of the data file if the order information and the reference information do not match. 제8항 또는 제9항에 있어서,The method according to claim 8 or 9, 상기 한 쌍의 바이트 순서는 리틀 엔디안 및 빅 엔디안을 포함하는 것을 특징으로 하는 데이터 처리 장치.And the pair of byte sequences include little endian and big endian. 제10항에 있어서,The method of claim 10, 상기 순서 정보 및 기준 정보는 서로 다른 2바이트 이상의 16진수 값을 포함하는 것을 특징으로 하는 데이터 처리 장치.And the order information and the reference information include two or more different hexadecimal values. 제11항에 있어서,The method of claim 11, 상기 프로세서는, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최상위 바이트와 일치하면, 상기 데이터 파일이 빅 엔디안 방식에 의해 기록된 것으 로, 상기 순서 정보의 첫 번째 바이트가 상기 기준 정보의 최하위 바이트와 일치하면, 상기 데이터 파일이 리틀 엔디안 방식에 의해 기록된 것으로 결정하는 것을 특징으로 하는 데이터 처리 장치.If the first byte of the order information matches the most significant byte of the reference information, the processor indicates that the data file is recorded by a big endian method, and the first byte of the order information is the least significant byte of the reference information. And determine that the data file has been written in a little endian manner. 제12항에 있어서,The method of claim 12, 표시부를 더 포함하며,Further comprising a display, 상기 프로세서는 상기 결정된 엔디안 방식을 상기 표시부에 표시하는 것을 특징으로 하는 데이터 처리 장치.And the processor displays the determined endian scheme on the display unit. 제8항 또는 제9항에 있어서,The method according to claim 8 or 9, 상기 순서 정보는 상기 데이터 파일의 헤더에 포함된 것을 특징으로 하는 데이터 처리 장치.And the order information is included in a header of the data file.
KR1020070063150A 2007-06-26 2007-06-26 Data processing apparatus and data processing method KR101437962B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070063150A KR101437962B1 (en) 2007-06-26 2007-06-26 Data processing apparatus and data processing method
US12/139,666 US8510318B2 (en) 2007-06-26 2008-06-16 Data processing apparatus and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070063150A KR101437962B1 (en) 2007-06-26 2007-06-26 Data processing apparatus and data processing method

Publications (2)

Publication Number Publication Date
KR20080114015A true KR20080114015A (en) 2008-12-31
KR101437962B1 KR101437962B1 (en) 2014-09-15

Family

ID=40161924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070063150A KR101437962B1 (en) 2007-06-26 2007-06-26 Data processing apparatus and data processing method

Country Status (2)

Country Link
US (1) US8510318B2 (en)
KR (1) KR101437962B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972821B2 (en) * 2010-12-23 2015-03-03 Texas Instruments Incorporated Encode and multiplex, register, and decode and error correction circuitry
US10025555B2 (en) * 2016-08-31 2018-07-17 Mettler-Toledo, LLC Byte order detection for control system data exchange

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689695A (en) * 1993-11-30 1997-11-18 Texas Instruments Incorporated Conditional processor operation based upon result of two consecutive prior processor operations
US5864716A (en) * 1994-01-07 1999-01-26 Cirrus Logic, Inc. Tagged data compression for parallel port interface
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
JPH09307857A (en) * 1996-05-17 1997-11-28 Sony Corp Image signal processing unit and image signal processing method
US6829695B1 (en) * 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
US6944350B2 (en) * 1999-12-17 2005-09-13 Utah State University Method for image coding by rate-distortion adaptive zerotree-based residual vector quantization and system for effecting same
US7649943B2 (en) * 2000-04-21 2010-01-19 Microsoft Corporation Interface and related methods facilitating motion compensation in media processing
JP3505482B2 (en) * 2000-07-12 2004-03-08 株式会社東芝 Encryption device, decryption device, extended key generation device, extended key generation method, and recording medium
JP3906895B2 (en) * 2000-11-28 2007-04-18 富士ゼロックス株式会社 Image information processing apparatus and computer-readable recording medium
US7174561B2 (en) * 2001-04-13 2007-02-06 Emc Corporation MPEG dual-channel decoder data and control protocols for real-time video streaming
US7110941B2 (en) * 2002-03-28 2006-09-19 Microsoft Corporation System and method for embedded audio coding with implicit auditory masking
US20030185301A1 (en) * 2002-04-02 2003-10-02 Abrams Thomas Algie Video appliance
US6895489B2 (en) * 2002-08-07 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for operating in endian independent mode
US7308146B2 (en) * 2002-09-30 2007-12-11 Canon Kabushiki Kaisha Digital video compression
DE10345454A1 (en) * 2003-09-30 2005-04-28 Infineon Technologies Ag Private key generator for access to storage device e.g. chip card, has page pre-key calculating device and determines private key based on pre-key and word address
US7188928B2 (en) * 2004-05-27 2007-03-13 Silverbrook Research Pty Ltd Printer comprising two uneven printhead modules and at least two printer controllers, one of which sends print data to both of the printhead modules
US7397959B1 (en) * 2005-01-04 2008-07-08 Smith Micro Software, Inc. Detection and recompression of embedded compressed data inside existing data streams
US7453889B2 (en) * 2005-02-02 2008-11-18 Texas Instruments Incorporated Interoperability of ADPCM encoded voice communications

Also Published As

Publication number Publication date
US8510318B2 (en) 2013-08-13
US20090006485A1 (en) 2009-01-01
KR101437962B1 (en) 2014-09-15

Similar Documents

Publication Publication Date Title
CN101763903B (en) Flash memory controller, error correction code controller therein, and the methods and systems thereof
KR100531192B1 (en) Non-volatile memory control method
KR900008767B1 (en) Portable electronic device
TW445452B (en) Semiconductor storage device and data management method therefor
US8117172B2 (en) Compact encoding methods, media and systems
JP2004524636A (en) Improved error correction scheme for use in flash memory, allowing bit changes
US7904674B2 (en) Method for controlling semiconductor memory device
JP3990423B2 (en) Coding data access program instructions
KR101437962B1 (en) Data processing apparatus and data processing method
EP3057100B1 (en) Memory device and operating method of same
US7958345B2 (en) Method for adjusting setup default value of BIOS and main board thereof
US20140214434A1 (en) Method for processing sound data and circuit therefor
US8510614B2 (en) Bad block identification methods
US11669392B2 (en) Non-volatile memory
JP2007052558A (en) Flash memory rewrite device, flash memory rewrite method and flash memory rewrite program
KR100951331B1 (en) Address offset generation within a data processing system
JP4868979B2 (en) Portable electronic device and IC card
US20240211348A1 (en) Method for managing data stored in a page within a memory element
KR100608774B1 (en) Error processing method for mobile phone file system
CN118012663A (en) Data processing method, device, electronic equipment and storage medium
JP4601968B2 (en) IC card and IC card program that eliminates data integrity check
CN113297014A (en) Method and device for identifying capacity of memory to be tested, electronic equipment and storage medium
JP4240381B2 (en) Control device maintenance device
CN117666964A (en) Data coding synthesis storage method, system and storage medium
CN115543876A (en) Method and device for verifying address decoding function, electronic equipment and medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170725

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 6