KR102011843B1 - 데이터 조합형식 변환방법, 장치 및 프로그램 - Google Patents

데이터 조합형식 변환방법, 장치 및 프로그램 Download PDF

Info

Publication number
KR102011843B1
KR102011843B1 KR1020180045355A KR20180045355A KR102011843B1 KR 102011843 B1 KR102011843 B1 KR 102011843B1 KR 1020180045355 A KR1020180045355 A KR 1020180045355A KR 20180045355 A KR20180045355 A KR 20180045355A KR 102011843 B1 KR102011843 B1 KR 102011843B1
Authority
KR
South Korea
Prior art keywords
bit combination
data
unit
type
conversion instruction
Prior art date
Application number
KR1020180045355A
Other languages
English (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 KR1020180045355A priority Critical patent/KR102011843B1/ko
Application granted granted Critical
Publication of KR102011843B1 publication Critical patent/KR102011843B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

컴퓨터가 사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터의 타입패턴을 추출하는 단계, 상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계를 포함하는, 데이터 조합형식 변환방법이 개시된다.

Description

데이터 조합형식 변환방법, 장치 및 프로그램 {METHOD, APPARATUS AND PROGRAM FOR TRANSFORMING DATA COMBINATION FORMAT}
본 발명은 데이터 조합형식 변환방법, 장치 및 프로그램에 관한 것이다.
클라이언트 서버 구조를 갖는 시스템에 있어서, 전송계층의 데이터 교환방식과 더불어 응용계층의 데이터 교환 방식은 그 응용 소프트웨어의 목적과 구조에 따라 매우 다양한 형식과 방법을 갖게 된다.
특히 특정 산업분야에서 사용하는 데이터의 형식에 관한 규약은 해당 데이터 형식을 생성하거나 사용하는 컴퓨팅 장치 사이의 산업표준 혹은 국제표준 등으로 정의되는 경우가 많으며, 그 규칙을 따르지 않을 경우 데이터의 교환이 불가능한 경우가 대부분이다.
그러나, 이러한 특정 산업분야내에서 통용되는 데이터의 비트조합형식과 교환 방식은 해당 특정 산업분야를 벗어난 타 산업분야 내에서의 데이터 교환 혹은 타산업분야간의 데이터 교환을 위해서는 사용할 수 없는 경우가 대부분이며, 데이터 교환을 가능케하기 위해서는 별도의 컴퓨팅 장치 및 실행 가능한 프로그램을 추가로 개발해야 하는 문제점이 있다.
본 발명이 해결하고자 하는 과제는 데이터 조합형식 변환방법, 장치 및 프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 데이터 조합형식 변환방법은, 컴퓨터가 사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터의 타입패턴을 추출하는 단계, 상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계를 포함한다.
또한, 상기 변환하는 단계는, 상기 변환지시서에 기초하여, 상기 제1 데이터로부터 하나 이상의 비트조합구조그룹을 식별하는 단계 및 상기 식별된 하나 이상의 비트조합구조그룹의 조합형식을 변환하는 단계를 포함할 수 있다.
또한, 상기 변환지시서는, 상기 사용자 정의 비트조합 영역의 비트조합구조그룹 조합형식에 대한 정보를 포함할 수 있다.
또한, 상기 하나 이상의 비트조합구조그룹 각각은 상기 하나 이상의 비트조합구조그룹의 종류를 나타내는 적어도 하나의 단위비트조합을 포함하고, 상기 단위비트조합은, 데이터 타입에 대한 정보를 나타내는 T-단위비트조합, 데이터 식별을 위한 이름을 나타내는 N-단위비트조합, 데이터의 값을 나타내는 V-단위비트조합, 데이터의 길이를 나타내는 L-단위비트조합, 데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합 및 단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합 중 하나인 것을 특징으로 할 수 있다.
또한, 상기 하나 이상의 비트조합구조그룹 각각은, 상기 L-단위비트조합을 포함하는 하나 이상의 L-비트조합구조그룹 및 상기 S-단위비트조합을 포함하는 하나 이상의 S-비트조합구조그룹을 포함할 수 있다.
또한, 상기 하나 이상의 비트조합구조그룹에 포함된 제1 비트조합구조그룹은, 상기 제1 비트조합구조그룹의 종류를 나타내는 제1 단위비트조합 및 상기 제1 단위비트조합의 길이를 나타내는 제1 L-비트조합구조그룹을 포함할 수 있다.
또한, 상기 제1 비트조합구조그룹은, 상기 제1 L-비트조합구조그룹의 길이를 나타내는 제2 L-비트조합구조그룹을 더 포함하고, 상기 변환지시서는, L-비트조합구조그룹의 반복횟수에 대한 정보를 포함할 수 있다.
또한, 상기 변환지시서는, 서로 다른 종류의 단위비트조합에 대한 연산을 수행하기 위하여 이용되는 하나 이상의 단위변환지시서를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 변환하는 단계는, 상기 제1 데이터에 포함된 제2 비트조합구조그룹의 종류에 대응하는 단위변환지시서를 호출하는 단계 및 상기 단위변환지시서를 이용하여 상기 제2 비트조합구조그룹에 대한 연산을 수행하는 단계를 더 포함할 수 있다.
또한, 상기 타입패턴을 추출하는 단계는, 타입패턴추출용 변환지시서를 호출하는 단계, 상기 타입패턴추출용 변환지시서를 이용하여 상기 제1 데이터의 타입패턴을 추출하는 단계 및 상기 추출된 타입패턴에 맵핑된 데이터 타입의 식별자를 추출하는 단계를 포함하고, 상기 변환지시서를 획득하는 단계는, 상기 추출된 식별자에 대응하는 변환지시서를 획득하는 단계를 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 일 면에 따른 데이터 조합형식 변환방법은, 컴퓨터가 시스템 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터를 변환할 타입패턴을 결정하는 단계, 상기 결정된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 사용자정의 비트조합 영역의 데이터로 변환하는 단계를 포함한다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 데이터 조합형식 변환장치는, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터의 타입패턴을 추출하는 단계, 상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계를 수행할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 일 면에 따른 데이터 조합형식 변환장치는, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 시스템 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터를 변환할 타입패턴을 결정하는 단계, 상기 결정된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 사용자정의 비트조합 영역의 데이터로 변환하는 단계를 수행한다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따라 하드웨어인 컴퓨터와 결합되어, 개시된 실시 예에 따른 데이터 조합형식 변환방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램이 제공된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
클라이언트-서버 구조 (Client-server architecture)를 갖는 컴퓨팅 환경은 전 산업영역에 있어서 활용되는 구조이다. 특히 클라이언트 디바이스에 센서 (Sensor)를 장착하거나 액츄에이터 (Actuator)를 장착하고 이를 이용하여 원격지의 정보를 수집하거나 혹은 클라이언트 디바이스를 원격조정하는 것은 특정산업분야에서는 이미 보편화된 활용방식이다.
특정 산업분야에서 활용하는 클라이언트 서버 컴퓨팅 환경을 타 산업군에서 사용하기 위해서는 그 주고 받는 데이터의 교환절차와 형식을 반드시 변경해주어야 하는 문제점이 있다. 이를 해결하기 위해서는 하드웨어 및 응용애플리케이션에 대한 변경 및 신규 개발과정이 필수적이며, 이러한 개발과정에 소요되는 시간과 비용은 서비스 혹은 제품의 원가 상승요인으로 작용하며 결과적으로 관련분야 시장의 확대를 저해하는 요소로 작용한다.
본 발명은 하나의 산업분야에서 클라이언트측과 서버측의 데이터 교환을 위해 사용되는 하드웨어 장치와 응용소프트웨어를 다른 산업분야에서 활용하기 위해 변경하는 경우 그 시간과 비용을 절감하기 위해, 데이터를 표현하는 비트조합형식에 대한 비트조합원형을 제시하고, 해당 비트조합원형에 대한 다양한 변환방법을 제시함으로써, 데이터의 비트조합형식 그 자체를 하나의 규격으로 표준화하여 사용하는 방식에 비해, 그 교환 가능한 데이터 형식의 다양성에 제한이 없으며, 또한 비트조합형식의 변환을 위한 방법의 규격화를 통해 일반적인 하드웨어 컴퓨팅 장치 및 실행가능한 프로그램의 작성에 소요되는 시간을 대폭 줄일 수 있는 효과가 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 데이터 조합형식 변환방법을 도시한 도면이다.
도 2는 사용자 정의 비트조합 영역의 데이터를 시스템 비트조합 영역의 데이터로 변환하는 일 예를 도시한 도면이다.
도 3은 일 실시 예에 따른 데이터의 비트조합 형식을 설명하기 위한 도면이다.
도 4는 비트조합구조그룹의 일 예를 도시한 도면이다.
도 5는 일 실시 예에 따른 비트조합형식 원형을 도시한 도면이다.
도 6은 일 실시 예에 따른 데이터 구조를 도시한 도면이다.
도 7a 내지 도 7c는 일 실시 예에 따른 비트조합형식의 변환 기능을 제공하는 방법 및 장치의 기능 구성과 데이터구조를 도시한 도면이다.
도 8은 일 실시 예에 따라 각각의 단위변환지시서에 따른 하나의 단위비트조합에 대한 변환과정을 도시한 흐름도이다.
도 9는 사용자정의 비트조합영역으로부터 시스템 비트조합영역으로의 변환을 위한 전체 과정을 도시한 흐름도이다.
도 10은 단위변환지시서를 작성하는 순서와 방법을 도시한 흐름도이다.
도 11은 시스템비트조합영역의 비트조합을 사용자정의비트조합영역으로 변환하는 과정을 나타낸 실시예를 도시한 흐름도이다.
도 12는 본 발명이 제시하는 비트조합 변환의 단계별 과정을 도시한 흐름도이다.
도 13은 일 실시 예에 따른 장치의 구성도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서, "컴퓨터"는 적어도 하나의 프로세서를 포함하는 컴퓨팅 장치를 모두 포함하는 것으로 이해된다. 예를 들어, 컴퓨터는 서버, 클라이언트, 데스크탑, 노트북, 태블릿PC, 스마트폰 등을 포함할 수 있으며, 이에 제한되지 않는다.
도 1은 일 실시 예에 따른 데이터 조합형식 변환방법을 도시한 도면이다.
도 1에 도시된 데이터 조합형식 변환방법은 컴퓨터에 의하여 수행되는 단계들을 시계열적으로 도시한 것이다. 이하에서는, 설명의 편의를 위하여 각 단계의 동작들을 컴퓨터가 수행하는 것으로 서술하나, 개시된 실시 예에 따른 각 단계들의 수행주체는 제한되지 않는다.
단계 S110에서, 컴퓨터는 사용자 정의 비트조합 영역(UDBCA: User Defined Bit Combination Area)의 제1 데이터를 획득한다.
단계 S120에서, 컴퓨터는 단계 S110에서 획득된 제1 데이터의 타입패턴을 추출한다.
단계 S130에서, 컴퓨터는 단계 S120에서 추출된 타입패턴에 대응하는 변환지시서를 획득한다.
단계 S140에서, 컴퓨터는 단계 S130에서 획득된 변환지시서에 기초하여 제1 데이터를 시스템 비트조합 영역(SBCA: System Bit Combination Area)의 데이터로 변환한다.
일 실시 예에서, 도 1에 도시된 데이터 조합형식 변환방법은 데이터를 디코딩하는 방법을 나타낸다.
다른 실시 예에서, 컴퓨터는 데이터를 인코딩하는 방법을 수행할 수 있다. 예를 들어, 컴퓨터는 시스템 비트조합 영역의 제1 데이터를 획득하고, 획득된 제1 데이터를 변환할 타입패턴을 결정하고, 결정된 타입패턴에 대응하는 변환지시서를 획득하고, 획득된 변환지시서에 기초하여 시스템 비트조합 영역의 제1 데이터를 사용자 정의 비트조합 영역의 데이터로 변환할 수 있다.
도 2는 사용자 정의 비트조합 영역의 데이터를 시스템 비트조합 영역의 데이터로 변환하는 일 예를 도시한 도면이다.
도 2를 참조하면, 사용자 정의 비트조합 영역(200)의 데이터(210)를 변환지시서(400)에 기초하여 시스템 비트조합 영역(300)의 데이터(310)로 변환하는 일 예가 도시되어 있다.
개시된 실시 예에서, 시스템 비트조합 영역(300)은 하드웨어 컴퓨팅 장치를 제조하는 제조사, 운영체제(OS)를 제조하는 제조사, 컴파일러 등을 제조하는 제조사에 의하여 데이터의 비트조합 형식이 규정되는 영역으로 정의한다. 즉, 시스템 비트조합 영역(300)은 컴퓨터가 인식하고 연산할 수 있는 데이터 형식이다.
일 실시 예에서, 시스템 비트조합 영역(300)은 데이터에 대한 컴퓨터의 정상적인 연산을 위해 제조사가 규정한 것으로서, 이는 컴퓨터의 정상적인 동작을 위하여 준수되어야 하고, 그 비트조합의 형식을 사용자나 프로그램 작성자가 임의로 변경할 수 없는 것으로 정의한다.
개시된 실시 예에서, 사용자정의 비트조합 영역(200)은 사용자에 의하여 임의로 정의된, 즉 시스템 비트조합 영역(300)과 상이한 규칙에 따라 데이터의 비트조합 형식이 규정된 영역이다. 즉, 사용자정의 비트조합 영역(200)은 시스템 비트조합 영역(300)과 달리 데이터의 비트조합 형식을 자유롭게 정의하고, 변경할 수 있는 비트조합 영역인 것으로 정의된다.
단, 사용자정의 비트조합 영역(200)에서 정의되어 있는 비트조합형식으로 기록된 데이터에 대해 사칙연산 및 조건연산 등과 같은 일반적인 연산을 위해, 해당 데이터의 비트조합형식을 현재 컴퓨터가 채택하고 사용하는 시스템 비트조합 영역(300)으로 변환해주어야 한다.
즉, 사용자정의 비트조합 영역(200)은 주로 물리적으로 분리되어 있는 두 컴퓨팅 장치 혹은 실행가능한 소프트웨어 프로그램 사이에 데이터를 주고 받기 위한 목적으로 활용되는 비트조합 영역이다.
일 실시 예에서, 하나의 운영체제를 기반으로 운영되는 하나의 컴퓨터의 시스템 비트조합 영역(300)에는 한 개의 비트조합 형식이 존재하는 것으로 정의되고, 사용자정의 비트조합 영역(200)에는 1개 이상, 복수개의 비트조합 형식이 존재할 수 있는 것으로 정의한다.
개시된 실시 예에서, 변환지시서(400)는 사용자정의 비트조합 영역(200)의 규칙, 즉 데이터의 비트조합 형식에 대한 정보를 포함하며, 컴퓨터는 변환지시서(400)에 기초하여 사용자정의 비트조합 영역(200)의 데이터(210)를 시스템 비트조합 영역(300)의 데이터(310)로 변환할 수 있다.
도 3은 일 실시 예에 따른 데이터의 비트조합 형식을 설명하기 위한 도면이다.
예를 들면, 일반적인 컴퓨팅 장치에 있어서 연산을 위해 사용하는 데이터의 타입은 정수(integer), 실수(real), 참 혹은 거짓으로 구분되는 불리언(boolean), 문자(character) 및 문자열(character string) 등을 포함하는 기본타입(primitive type)과, 1개 이상 복수의 기본타입 데이터로 구성되는 복합타입(complex type)이 있다. 복합타입은 또다른 복합타입 데이터를 기본타입 데이터와 함께 묶어 구성할 수 있는 데이터 타입으로, 예를 들어 구조(struct)나 클래스(class) 등을 포함할 수 있다.
일 실시 예에서, 비트조합(410, BC: Bit Combination)은 상기와 같은 데이터를 프로세서(중앙처리장치: CPU)가 연산을 위해 읽어들이거나, 혹은 주기억장치 및 보조기억장치, 네트워크 장치를 포함하는 입출력장치에 기록하기 위해서 사용하는, 1과 0으로 표현되는 비트(bit)의 묶음을 의미한다.
일 실시 예에서, 단위비트조합(420, BCE: Bit Combination Element)은 하나의 특정 데이터 타입에 속하는 데이터의 값을 비트조합으로 표현한 비트의 묶음을 의미한다.
일 실시 예에서, 비트조합구조(430, BCS: Bit Combination Structure) 는 1개 이상의 단위비트조합들이 갖는 값들의 상호작용으로 유의미한 정보를 갖는 비트의 묶음을 구성하는 경우를 의미한다.
또한, 단위비트조합(420)을 구성하는 비트의 나열방식 및 비트조합구조(430)를 구성하는 단위비트조합(420)의 나열방식 등 2가지 나열방식에 대한 규칙을 비트조합형식(BCF: Bit Combination Format)으로 정의한다.
이 때, 단위비트조합(420)을 구성하는 비트의 나열방식을 레벨 1 비트조합형식(Level 1 BCF)으로 정의하며, 비트조합구조를 구성하는 단위비트조합의 나열방식을 레벨 2 비트조합형식(Level 2 BCF)으로 정의한다.
예를 들어, 일반적인 정수타입의 데이터를 비트조합으로 기록하는 방법에는 빅 엔디안(Big endian) 방식과 리틀 엔디안(Little endian) 방식이 있으며, 빅 엔디안과 리틀 엔디안 방식은 모두 레벨 1 비트조합형식에 속한다.
예를 들어 십진수 1의 값을 갖고 있는 정수타입의 데이터를 빅엔디안 방식의 비트조합형식으로 표현할 경우 0x01의 단위비트조합으로 표현할 수 있다.
이 때 특정 단위비트조합의 시작을 표시하기 위한 또다른 단위비트조합의 값을 0xFF로 정의하고, 이를 이용해 0x01의 데이터를 표기할 경우, 상기 정수타입 데이터의 비트조합구조는 0xFF 0x01로 표현할 수 있다.
만일 상기 비트조합구조에 추가적으로 해당 비트조합이 정수타입의 비트조합임을 표기하기 위해 비트조합구조의 시작 지점에 INT 라는 문자열 타입의 단위비트조합을 추가할 경우, 비트조합구조는 0x49 0x4E 0x54 0xFF 0x01 로 표현할 수 있으며, 이는 한 개 이상의 단위비트조합의 묶음으로 비트조합구조를 나타내는 예이며, 이와 같이 한 개 이상의 단위비트조합의 구성으로 이루어지는 비트조합구조를 표현하는 방법에 있어서 단위비트조합의 배열에 관한 규칙을 레벨 2 비트조합형식으로 정의한다.
또한, 단위비트조합 또는 비트조합구조가 기본타입의 데이터를 표기하는 경우 이를 기본타입비트조합구조(PBCS: Primitive Bit Combination Structure)로 정의하며, 복합타입의 경우에는 이를 복합타입비트조합구조(CBCS: Complex bit Combination Structure)로 정의한다.
개시된 실시 예에 따르면, 단위비트조합(420)을 구성하는 바이트의 배열방식을 변환하거나, 단위비트조합(420)을 구성하는 비트의 배열방식을 변환하는 과정을 레벨 1 변환이라 정의하고, 비트조합구조(430)를 구성하는 단위비트조합(420)의 배열방식을 변환하는 과정을 레벨 2 변환으로 정의한다.
또한, 사용자정의 비트조합 영역(200)의 비트조합형식을 시스템 비트조합영역(300)으로 변환하는 과정을 디코딩으로 정의하며, 시스템 비트조합영역(300)의 비트조합형식을 사용자정의 비트조합영역(200)으로 변환하는 과정을 인코딩으로 정의한다.
일 실시 예에서, 사용자정의 비트조합 영역(200)으로부터 시스템 비트조합 영역(300)으로의 변환방법은 개시된 실시 예에 따라 정의된 고유의 비트조합형식 원형(Bit Combination Prototype)에 대한 사용자정의 비트조합 영역(200)으로부터 시스템 비트조합 영역(300)으로의 변환 및 그 역으로의 변환 방법으로 정의된다.
개시된 실시 예에 따른 단위비트조합(420)은 그 기록된 데이터의 용도에 따라, 데이터 타입에 대한 정보를 나타내는 T-단위비트조합(421), 데이터 식별을 위한 이름을 나타내는 N-단위비트조합(422), 데이터의 값을 나타내는 V-단위비트조합(423), 데이터의 길이를 나타내는 L-단위비트조합(424), 데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합(425) 및 단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합(426)을 포함한다.
비트조합구조그룹(440, BCSG: Bit Combination Structure Group)은 비트조합형식 원형을 구성하는 기본단위로서, 길이 및 조건정보를 포함하는 개념으로 이해된다. 길이 및 조건정보를 포함하는 비트조합구조그룹(LCI BCSG: Length and Condition Indicated Bit Combination Sturcture Group)은 이하에서 비트조합구조그룹으로 칭한다.
도 4는 비트조합구조그룹의 일 예를 도시한 도면이다.
도 4에 도시된 바와 같이, 비트조합구조그룹(500)은 길이 및 조건정보를 포함한다. 즉, 길이 정보를 나타내는 하나 이상의 L-비트조합구조그룹(520 및 540) 및 하나 이상의 S-비트조합구조그룹(510, 530 및 550)을 포함할 수 있다. 실시 예에 따라서, 하나 이상의 I-비트조합구조그룹(미도시)을 더 포함할 수 있다.
또한, 비트조합구조그룹(500)은 적어도 하나의 단위비트조합(560)을 포함한다. 단위비트조합(560)은 비트조합구조그룹(500)의 종류를 나타내며, 예를 들어 단위비트조합(560)이 T-단위비트조합인 경우 비트조합구조그룹(500)은 T-비트조합구조그룹이 된다.
마찬가지 방법으로, 비트조합구조그룹(500)은 단위비트조합(560)의 종류가 N-단위비트조합인 경우 N-비트조합구조그룹으로, V-단위비트조합인 경우 V-비트조합구조그룹으로, L-단위비트조합인 경우 L-비트조합구조그룹으로, I-단위비트조합일 경우 I-비트조합구조그룹으로, S-단위비트조합인 경우 S-비트조합구조그룹으로 명명된다.
각 비트조합구조그룹의 용도는 각각의 비트조합구조그룹에 속한 단위비트조합과 마찬가지로, T-비트조합구조그룹은 데이터의 타입에 관한 정보를 나타내고, N-비트조합구조그룹은 데이터의 이름에 관한 정보를 나타내고, V-비트조합구조그룹은 데이터의 값에 관한 정보를 나타내고, L-비트조합구조그룹은 다른 단위비트조합의 길이정보를 나타내는 비트조합구조그룹으로 사용하며, I-비트조합구조그룹 및 S-비트조합구조그룹은 I-단위비트조합과 S-단위비트조합이 갖는 용도인 조건문에 따라 상이하게 구성되는 비트조합구조 및 그 값에 상관없이 그 길이만큼의 연산을 건너뛰기 위한 용도로 각각 사용한다.
일 실시 예에서, L-비트조합구조그룹(540)은 단위비트조합(560)의 길이정보를 나타내기 위하여 사용되며, 길이정보를 하나의 숫자로 표현하는 경우 한 개의 L-비트조합구조그룹만이 사용될 수 있다. 예로, S-비트조합구조그룹(550)은 L-비트조합구조그룹(540)과 단위비트조합(560)사이에 위치하는 불필요한 데이터를 스킵하기 위하여 이용된다.
길이정보를 단위비트조합(560)의 시간지점과 종료지점으로 표현하는 경우 두 개의 L-비트조합구조그룹이 사용될 수 있고, 길이정보를 단위비트조합(560)의 시작과 종료지점을 표시하는 태그 혹은 분리자를 이용할 경우 한 개 혹은 두 개의 L-비트조합구조그룹을 이용하여 시작표시태그와 종료표시태그를 표시할 수 있다.
또한, 상술한 방법의 일부 또는 전부가 서로 혼용될 수 있다.
또한, 단위비트조합(560)의 길이를 나타내는 L-비트조합구조그룹(540) 또한 그 자체가 L-단위비트조합을 갖는 또 다른 비트조합구조그룹이며, 따라서 L-비트조합구조그룹(540)의 길이를 나타내기 위한 또 다른 L-비트조합구조그룹이 이용될 수 있으며, 이는 재귀적으로 반복될 수 있다.
따라서, L-비트조합구조그룹의 반복 횟수 또는 재귀적으로 반복되는 L-비트조합구조그룹의 기저(base)를 판단하기 위한 정보가 변환지시서에 포함되고, 컴퓨터는 변환지시서를 이용하여 하나 이상의 L-비트조합구조그룹으로부터 단위비트조합(560)의 길이정보를 획득할 수 있다.
또한, 도 4에 도시된 각 비트조합구조그룹들의 배열, 특히 L-비트조합구조그룹(520 및 540) 및 S-비트조합구조그룹(510, 530 및 550)들의 배열에 있어서, 각 비트조합구조그룹은 서로 중첩하여 배열될 수 있는 것으로 정의한다.
예를 들어, 도 4에 도시된 S-비트조합구조그룹(510)의 맨 마지막 단위비트조합은, 그 다음에 위치하는 L-비트조합구조그룹(520)의 마지막 단위비트조합보다 더 오른쪽에 위치할 수 있다.
이러한 중첩가능한 배치에 있어서 그 순서를 정하는 방법은, 각각의 비트조합구조그룹(510 내지 550)을 구성하는 첫 번째 단위비트조합의 위치를 기준으로 그 순서를 결정하는 것으로 정의할 수 있다.
도 5는 일 실시 예에 따른 비트조합형식 원형을 도시한 도면이다.
도 5를 참조하면, 하나의 데이터를 표현하는 비트조합구조의 구성에 있어서, 해당 데이터의 데이터 타입 정보와, 데이터의 식별을 위한 이름 정보 및 해당 데이터의 값을 나타내는 비트조합구조를 그 기본 구성요소로 정의한다.
데이터 교환을 위한 지금까지의 비트조합 형식에 있어서, 개시된 실시 예에 따른 기본구성요소 중 타입정보는 데이터를 주고 받는 양측이 해당 데이터의 타입에 관한 정보를 미리 알고 있을 경우, 이를 생략하는 것이 대부분이다.
이름정보 또한 데이터를 주고 받는 양측이 동일한 이름정보를 사용하는 것이 아닌 이상 서로 다른 이름을 부여할 수 있으므로, 생략되는 경우가 많다.
하지만, 이러한 타입정보와 이름을 생략하는 비트조합 형식은 실제 비트조합구조로 표현된 데이터의 타입정보와 이름정보의 결여로 인해 해당 데이터에 대한 사전 정보를 갖고 있지 않은 상대와의 데이터 교환을 불가능하게 하는 요소로 작용하는 경우도 있으며, 데이터교환을 위한 비트조합구조의 분석 및 이를 처리하는 실행 가능한 프로그램의 작성에 소요되는 시간과 비용이 기하급수적으로 증가하는 원인을 제공한다.
개시된 실시 예에서, 이러한 단점을 극복하기 위해 하나의 데이터를 포함하는 비트조합구조의 구성을 정형화되고 고정된 형식으로 정의하지 아니하고, 자유롭게 변화시켜 다양한 형식으로 정의할 수 있는 비트조합형식 원형의 형식과 구조로 정의하고, 더불어 비트조합형식의 정의과정중 의도적으로 생략된 정보들에 대한 보완방법을 포함하는, 자유롭고도 빠른 변환방법을 제시한다.
도 5에 도시된 바와 같이, 비트조합형식 원형(600)은 T-비트조합구조그룹(610), N-비트조합구조그룹(620) 및 V-비트조합구조그룹(630)을 포함한다. 일 실시 예에서, 비트조합형식 원형(600)은 I-비트조합구조그룹(미도시)을 더 포함할 수 있다. 일 실시 예에서, I-비트조합구조그룹은 비트조합형식 원형(600)의 구성조건을 나타낸다.
즉, 도 5를 참조하면 데이터에 대한 정보를 그 데이터의 타입정보, 식별을 위한 이름정보, 실제 데이터의 값에 관한 정보 및 비트조합형식 원형(600)의 전체 혹은 일부 구성을 조건에 따라 다르게 표현하도록 표시하는 용도로 사용하는 조건정보로 나누고, 이들을 조합함으로써 하나의 비트조합구조로 구성하는 원형을 나타낼 수 있다.
상술한 비트조합형식 원형(600)에 대한 내용은 기본타입비트조합구조(PBCS) 및 복합타입비트조합구조(CBCS)에 동일하게 적용될 수 있다.
예를 들어, 기본타입비트조합구조 및 복합타입비트조합구조는 T, N 및 V의 세 가지 비트조합구조그룹을 이용하여 표현될 수 있다. 예를 들어, T, N 및 V 비트조합구조그룹은 T-N-V, T-V-N, N-T-V, N-V-T, V-T-N, V-N-T 등 6가지 순서로 모두 배치가 가능하며, 이를 지시하는 I-비트조합구조그룹은 임의의 위치에 배치될 수 있다.
개시된 실시 예에 따른 종류의 비트조합구조그룹들을 이용하면, 대부분의 기본타입비트조합구조 및 복합타입비트조합구조를 정형화하여 표현하는 것이 가능하다.
예를 들어, 하나 이상의 기본타입비트조합구조 및 복합타입비트조합구조의 배열방식에 있어서, T-비트조합구조그룹, N-비트조합구조그룹 및 V-비트조합구조그룹은 아래와 같은 방법으로 다양하게 배치될 수 있다.
예를 들어, 복수의 기본타입비트조합구조 및 복합타입비트구조를 배열함에 있어서, 각각의기본타입비트조합구조 및 복합타입비트조합구조를 구성하는 T-비트조합구조그룹과 N-비트조합구조그룹 및 V-비트조합구조그룹의 순서를 모두 T-N-V 의 순서로 나열하는 방식을 TNVg라고 정의한다.
예를 들어 4개의 기본타입비트조합구조를 각각 [T1-N1-V1], [T2-N2-V2], [T3-N3-V3], [T4-N4-V4] 로 표기하고 나열하되, 이를 TNVg로 표현된 비트조합형식으로 표현할 경우, [T1-N1-V1] [T2-N2-V2] [T3-N3-V3] [T4-N4-V4] 로 표기가능함을 의미한다.
마찬가지로, TVNg는 각각의 T-비트조합구조그룹과 N-비트조합구조그룹 및 V-비트조합구조그룹의 순서를 T-V-N의 순서로 배열하는 방식을 의미하며, NTVg, NVTg, VTNg 및 VNTg는 각각 [N-T-V], [N-V-T], [V-T-N], [V-N-T]의 순서로 각 T-비트조합구조그룹과 N-비트조합구조그룹 및 V-비트조합구조그룹을 배치하는 경우를 의미한다.
다음으로 위의 경우와는 달리 기본타입비트조합구조 및 복합타입비트조합구조를 구성하는 3개의 각 비트조합구조그룹 단위로 묶어 배열하는 방식을 이하에서 설명한다.
기본타입비트조합구조 및 복합타입비트조합구조를 구성하는 3개의 비트조합구조그룹을 배열함에 있어서, 모든 기본타입비트조합구조 혹은 복합타입비트조합구조의 T-비트조합구조그룹과 N-비트조합구조그룹 및 V-비트조합구조그룹 별로 묶어 전체 비트조합구조를 배열하는 방식이 적용될 수 있고, 이때 각 비트조합구조그룹의 묶음을 Tg, Ng 및 Vg로 표시한다.
이러한 Tg, Ng 및 Vg에 대해, 각각을 순차적으로 나열하는 6가지 방식을 적용할 경우, Tg-Ng-Vg, Tg-Vg-Ng, Ng-Tg-Vg, Ng-Vg-Tg, Vg-Tg-Ng 및 Vg-Ng-Tg와 같은 6가지 형식으로 정의될 수 있다.
예를 들어 4개의 기본타입비트조합구조를 각각 [T1-N1-V1], [T2-N2-V2], [T3-N3-V3], [T4-N4-V4]로 표기하고 나열하되 이를 Tg-Ng-Vg로 표현된 비트조합형식으로 표현할 경우, [T1-T2-T3-T4] [N1-N2-N3-N4] [V1-V2-V3-V4] 로 표기가능함을 뜻한다.
다음으로, T-비트조합구조그룹과 N-비트조합구조그룹 및 V-비트조합구조그룹 등 3개의 비트조합구조그룹중 2개의 비트조합구조그룹을 하나로 묶어 나머지 하나의 비트조합구조그룹과 함께 표기하는 방식이 이용될 수 있다.
예를 들어, TNg 묶음은 T-비트조합구조그룹과 N-비트조합구조그룹의 묶음을 표시하며, Vg 는 V-비트조합구조그룹의 묶음을 의미한다.
이렇게 2개의 비트조합구조그룹을 묶는 방법과, 앞서 설명한 6개의 T-N-V 조합방식을 함께 적용하여, TNg-Vg, TVg-Ng, NTg-Vg, NVg-Tg, VTg-Ng, VNg-Tg, Tg-NVg, Tg-VNg, Ng-TVg, Ng-VTg, Vg-TNg 및 Vg-NTg와 같은 12개의 조합이 정의될 수 있다.
예를 들어, 앞서 예를 들었던 4개의 기본타입비트조합구조를 각각 [T1-N1-V1], [T2-N2-V2], [T3-N3-V3], [T4-N4-V4] 를 이용하여 TNg-Vg 형식으로 표현할 경우, [T1-N1] [T2-N2] [T3-N3] [T4-N4] [V1] [V2] [V3] [V4]의 형식으로 표기된다.
마지막으로, 한 개 이상 복수개의 기본타입비트조합구조 혹은 복합타입비트조합구조를 표기함에 있어서 앞서 설명한 여러가지 방식들 중 하나로 통일하는 것이 아니라 도5에서 설명한 모든 방식을 무작위로 혼용하는 방식인 ANY TNV GROUP 방식이 정의될 수 있다.
도 6은 일 실시 예에 따른 데이터 구조를 도시한 도면이다.
도 6에 도시된 데이터개체의 값(710)은 일반적인 시스템비트조합 영역의 데이터를 표현하기 위한 데이터구조이다.
앞서 설명한 바와 같이, 시스템 비트조합 영역의 데이터가 저장되는 형식 즉, 비트조합형식은 사용자 혹은 프로그램개발자가 수정 혹은 변경할 수 없는 형식이다.
반면, 사용자정의비트조합 영역의 비트조합형식은 사용자 혹은 프로그램 개발자가 임의로 그 형식을 결정하고 사용할 수 있는 것으로 정의한 바 있다.
개시된 실시 예에 따르면, 이러한 사용자정의비트조합 영역의 비트조합형식을 정의함에 있어서 데이터의 구성을 타입정보와 식별자정보 및 데이터의 값 등 3가지로 분류하였다.
도 6을 참조하면, 사용자정의비트조합 데이터구조는 시스템 비트조합영역에서의 연산을 위한 데이터구조인 사용자정의 기본형식데이터(730)와 사용자정의 복합형식데이터(750) 및 실제 데이터의 교환을 위해 사용하는 사용자정의 비트조합데이터(720 및 740) 등 2가지의 데이터구조로 구성된다.
즉, 사용자정의 비트조합데이터(720 및 740)는 시스템 비트조합영역으로 변환되거나 혹은 그 역으로의 변환결과를 담고 있는 데이터구조이다.
또한, 위의 사용자정의 비트조합데이터(720 및 740)를 레벨1 변환 및 레벨2 변환 과정을 포함하는 시스템 비트조합영역으로의 변환과정을 거쳐 그 데이터 값을 저장하기 위한 데이터구조는 사용자정의 기본형식데이터(730)와 사용자정의 복합형식데이터(750)이다.
사용자정의 기본형식 데이터(730)는 기본타입비트조합구조(PBCS)를 위한 사용자정의 기본형식 데이터(730) 와 복합타입비트조합구조(CBCS)를 위한 사용자정의 복합형식 데이터(750)로 구성된다.
각 데이터구조(730 및 750)는 데이터의 타입 정보를 기록하기 위한 데이터타입 식별자(732 및 752)와, 데이터의 개체를 식별하기 위한 데이터개체 식별자(734 및 754), 데이터의 실제 값을 기록하는 데이터개체의 값(736) 과 컨테이너(756) 데이터 요소와 더불어, 실제 각 데이터요소별 길이정보, 각 데이터요소의 시스템비트조합영역 내에서의 데이터 타입정보와 같은 정보를 기록하는 부가정보(738 및 758) 데이터 요소의 구성으로 정의된다.
컨테이너(756) 데이터요소는 복합형식의 데이터가 갖고 있는 하위레벨의 데이터요소들을 나열하기 위한 도구역할을 수행하는 데이터요소이며, 컨테이너(756) 데이터요소는 사용자정의 기본형식 데이터(730) 및 또 다른 사용자정의 복합형식 데이터(750)를 그 데이터 요소로 가질 수 있는 기능을 제공하는 데이터요소이다.
예를 들어, 컨테이너(756) 데이터요소는 일반적인 프로그래밍언어에 있어서 링크드 리스트(linked list) 혹은 배열(array) 등을 이용하여 손쉽게 구현될 수 있다.
도 7a 내지 도 7c는 일 실시 예에 따른 비트조합형식의 변환 기능을 제공하는 방법 및 장치의 기능 구성과 데이터구조를 도시한 도면이다.
변환오퍼레이션부(801)는 실제 사용자정의 비트조합영역의 비트조합형식을 시스템 비트조합영역의 비트조합형식으로 변환하거나, 혹은 그 역으로의 변환을 실행한다.
또한, 도 7a의 변환오퍼레이션부(801)는 하나의 단위비트조합에 대한 연산동작을 수행한다.
타입정보관리부(802)는 사용자정의 비트조합영역에 속하는 특정 비트조합구조에 대해, 해당 비트조합구조를 구성하는 바이트 혹은 비트 중, 해당 비트조합구조의 데이터 타입을 판별하기 위한 바이트 혹은 비트들을 선택하고 이들을 일련의 배열 형식으로 나열한 결과를 타입패턴 (type pattern)으로 정의할 때, 특정 타입패턴과 해당 타입패턴이 나타내는 데이터의 타입정보 식별자를 맵핑하여 저장한 후, 타입패턴을 인덱스값으로 주어 해당 타입패턴에 해당하는 데이터의 타입정보 식별자를 검색하는 기능을 수행한다.
또한, 역으로 특정 데이터 타입정보를 나타내는 식별자를 인덱스값으로 넘겨주어 그에 해당하는 타입패턴을 검색하는 기능도 제공하는 것으로 정의한다.
상기 사용자정의 비트조합영역으로부터 시스템 비트조합영역으로의 변환과정에 있어서 데이터의 타입에 관한 정보는 T-비트조합구조그룹의 T-단위비트조합의 값에 의해 판별되고 해당 정보를 보존하지만, 해당 정보는 해당 사용자정의 비트조합영역 내에서만 유의미하며, 현재 연산이 이루어지는 시스템 비트조합영역이나 혹은 기타 다른 사용자정의 비트조합영역에서는 무의미한 값이다.
또한 본 발명이 제안하는 변환방법의 대상은 1개 이상 복수개의 사용자정의 비트조합영역에 대한 변환과정이며, 이는 특정 사용자정의 비트조합영역의 데이터 타입 정의 방식에 완전히 독립적인 데이터 타입 지정 방식을 갖고 있어야 함을 뜻한다.
따라서, 본 발명은 사용자정의 비트조합영역을 구성하는 바이트 혹은 비트들로부터 임의의 바이트 혹은 비트를 추출하여 이들을 일련의 배열형식으로 나열한 결과를 타입패턴 (a type pattern) 이라 명명하고, 앞서 설명한 바와 같이, 그 타입패턴을 해당 비트조합구조의 데이터타입의 판별을 위한 기준으로 사용한다.
이는 특정 단위비트조합을 시스템 비트조합영역의 특정 타입으로 변환하고 그 값을 참조하여 해당 데이터 타입을 판별하는 것이 아니라, 특정 비트조합구조를 구성하는 바이트 혹은 비트들을 추출하여 이를 하나의 패턴으로 간주하고, 미리 저장해둔 해당 패턴과 동일한 패턴을 검색하여 해당 패턴에 해당하는 데이터 타입을 확인하는 방식이다.
도 7a의 변환지시서관리부(803)는 하나의 데이터 타입에 대한 사용자정의 비트조합영역으로부터 시스템 비트조합영역으로의 변환 혹은 그 역으로의 변환을 위해 변환오퍼레이션부(801)의 변환대상 비트조합구조에 대한 동작을 제어하는 변환지시서(805)를 저장 및 관리하는 기능을 수행한다.
즉, 변환오퍼레이션부(801)는 상기 타입정보관리부(802)에 타입패턴을 인가하여 그에 대응하는 데이터 타입의 식별자를 검색하여 추출하고, 그 결과를 변환지시서관리부(803)에 인가하여 해당 데이터 타입의 변환을 위한 변환지시서 (805)를 추출하고 이를 읽어들여 변환동작을 실행한다.
도 7a의 변환파라메터획득함수관리부(804)는 변환지시서(805) 및 단위변환지시서(806)를 구성하는 파라메터의 값을 변환지시서(805) 외부에서 실시간으로 획득하기 위한 함수를 작성하여 이를 등록한 후, 해당 함수의 식별자를 이용하여 함수를 호출하고 그 실행결과를 얻기 위한 기능을 제공한다.
미리 작성하여 등록해둔 함수는, 특정 파라메터값이 필요한 시점에 단위변환지시서(806)의 파라메터로 전달된 해당 획득함수의 식별자를 이용해 해당 함수를 호출하고, 이를 통해 해당 파라메터의 값을 실시간으로 획득하는 방법을 제공한다.
도7b의 변환지시서(805)는 위에 설명한바와 같이 특정 데이터타입의 비트조합에 대한 변환작업을 제어하기 위한 파라메터 값을 기록한 데이터구조이며, 해당 데이터구조는 1개 이상의 단위변환지시서(806)를 연속적으로 나열하여 구성하며, 해당 단위변환지시서(806)는 변환대상 비트조합구조를 구성하는 단위비트조합 (BCE)에 대한 변환연산을 제어하기 위한 파라메터로 구성되어 있다.
특정 단위변환지시서(807)는 조건연산을 진행하고, 해당 조건연산의 결과가 참 혹은 거짓에 따라 그 다음 연산을 수행하는 단위변환지시서를 다르게 지정할 수 있다.
도 7c의 임시저장소(808)는 변환오퍼레이션부(801) 의 연산 동작시 데이터를 임시로 저장하고 보관하기 위한 저장공간으로 사용하며, 임시저장소를 구성하는 복수의 저장구역(809)은 기본형식비트조합구조 혹은 복합형식비트조합구조 및 각각의 비트조합구조그룹 별로 구분하여 데이터를 보관하기 위해 사용하며 주로 1개의 단위변환지시서의 연산과정을 위해 사용하는 공간으로 정의한다.
해당 임시저장소는 하나의 변환지시서를 읽어들이는 시점에 그 공간을 확보하며, 해당 변환지시서에 따른 변환과정이 종료하는 시점 혹은 그 상위레벨의 변환지시서의 동작이 종료하는 시점까지 그 내용을 유지하는 것으로 정의한다.
저장구역(809 및 810)은 다음과 같은 데이터구조로 구성한다.
즉, 해당 저장구역에 대한 식별정보를 갖고 있는 저장구역식별자(811)와, 현재 연산을 진행중인 단위비트조합 혹은 비트조합구조그룹의 상위레벨 비트조합구조그룹 및 비트조합구조에 대한 정보를 담고 있는 상위레벨정보(812) 데이터, 연산의 시작위치, 연산에 소요된 길이정보 등 앞서 진행한 연산의 결과를 임시로 저장하고 있는 선행연산저장구역정보(813) 데이터, 현재 진행중인 연산을 시작한 위치정보 및 소요된 길이정보를 담고 있는 연산위치정보(814) 및 연산길이정보(815) 데이터, 조각화된 단위비트조합을 하나로 묶어내어 저장하고 관리하기 위한 조각병합저장정보(816) 데이터, T-단위비트조합, N-단위비트조합, V-단위비트조합, L-단위비트조합의 임시저장을 위해 사용하는 TNVL-BCE저장정보 데이터, 타입패턴을 구성하는 단위비트조합을 하나씩 추출하여 이를 저장하고 관리하는 타입패턴저장정보(818) 데이터로 구성된다.
일 실시 예에서, 타입처리용슬롯정보(819) 데이터는 복합형식비트조합구조가 그 하위레벨의 데이터 요소로 갖는 기본형식비트조합구조 혹은 또 다른 복합형식비트조합구조에 대한 변환을 위해 필요한 한 개 이상의 변환지시서들을 저장해두는 공간을 의미한다.
도 8은 일 실시 예에 따라 각각의 단위변환지시서에 따른 하나의 단위비트조합에 대한 변환과정을 도시한 흐름도이다.
도8에 나타낸 변환과정은 사용자정의 비트조합영역의 비트조합을 시스템 비트조합영역의 비트조합으로 변환하는 과정이며, 이러한 단위 오퍼레이션을 모든 단위비트조합에 대해 실행함으로써 하나의 기본형식비트조합구조 혹은 복합형식비트조합구조에 대한 변환과정을 완료하게 된다.
변환오퍼레이션부(801)는 읽어들인 단위변환지시서가 타입패턴의 추출을 지시하고 있는지를 확인하고(S901), 타입패턴의 추출을 지시하는 경우 타입패턴추출 변환지시서 호출(S902) 단계를 실행한다.
타입패턴추출용 변환지시서 호출 및 검색(S902) 단계에서 변환오퍼레이션부(801)는, 특정 비트조합구조에 대해, 해당 비트조합구조가 나타내는 데이터 타입을 판별하기 위한 일련의 단위비트조합들을 바이트 혹은 비트의 배열형식으로 나열하고, 이를 타입정보관리부(802)에 인가하고 검색하여 해당 데이터 타입의 식별자를 찾아낸 후, 그 식별자를 이용해 변환지시서관리부(803)로부터 해당 데이터타입에 대한 변환과정을 담고 있는 변환지시서를 검색하고 찾아낸다.
이를 위해, 해당 사용자정의 비트조합영역을 담당하는 타입패턴추출용 변환지시서를 호출하고, 이를 실행하여 해당 비트조합구조로부터 타입패턴을 추출하며, 추출한 타입패턴을 이용해 타입정보관리부로부터 해당 타입패턴과 맵핑되어 있는 데이터 타입의 식별자를 추출하고, 이를 이용해 변환지시서관리부(803)로부터 해당 데이터 타입 비트조합구조의 변환을 담당하는 변환지시서를 추출한다.
추출된 변환지시서는 변환오퍼레이션부(801)가 사용하는 임시저장소의 특정 저장구역에 저장하며, 하나의 변환지시서를 임시로 저장하는 공간을 슬롯(slot)으로 표기한다. 다음으로 상기 타입패턴의 추출여부를 확인(S901) 한 결과, 타입패턴의 추출을 필요로하지 않을 경우, 상위레벨확인 및 저장구역 지정 단계(S903)를 실행한다.
상위레벨확인 및 저장구역 지정 단계 (S903)에서, 변환오퍼레이션부(801)는, 단위변환지시서에 기록되어 있는 상위레벨의 기본형식비트조합구조 혹은 복합형식비트조합구조 및 비트조합구조그룹에 대한 종류와 식별자를 확인한다.
현재 연산의 대상이 되는 단위비트조합이 속하는 상위레벨의 비트조합구조그룹과 그 상위레벨의 비트조합구조그룹 혹은 비트조합구조의 식별자가, 직전 단위비트조합에 대한 연산수행 단계에서 기록해둔 상위레벨의 비트조합구조그룹과 그 상위레벨의 비트조합구조그룹 혹은 비트조합구조의 식별자와 같은지를 확인하고, 변경되었을 경우, 상위레벨의 비트조합구조 및 비트조합구조그룹에 대한 식별자와 최상위 레벨의 비트조합구조에 대한 식별자를 모두 확인하고, 해당 비트조합구조 및 비트조합구조그룹을 위해 확보한 저장소를 연산결과 임시저장을 위한 저장소로 지정한다.
만약 상기 비트조합구조 및 비트조합구조그룹에 대한 임시저장소내 저장구역의 지정이 이루어지지 않은 상태라면, 해당 비트조합구조 및 비트조합구조그룹에 대한 임시저장소 내의 저장구역을 새롭게 할당하고 지정하여 저장공간을 확보한다.
상기 저장공간의 확보를 위한 상위레벨 및 최상위레벨 비트조합구조 및 비트조합구조그룹에 대한 식별자의 지정 및 확인 과정은 모두 변환오퍼레이터에 의해 진행되며, 해당 식별자는 변환지시서의 작성 단계에서 고유 식별번호를 부여하는 것으로 정의한다.
다음으로 현재 단위변환지시서가 실제 연산을 담당하는 실 단위변환지시서를 호출하는 가상 단위변환지시서인지를 확인하고(S903), 가상 단위변환지시서일 경우에는 실 단위변환지시서 연산 단계 (S910)를 실행한다.
실 단위변환지시서 연산 단계(S910)는 파라메터로 전달된 단위변환지시서의 식별자를 이용하여, 해당 단위변환지시서를 찾아 이를 실행하는 단계이다.
실 단위변환지시서를 검색하여 실행하는 방식은, 복합형식비트조합구조를 구성하는 데이터 요소 즉, 하위레벨 기본형식비트조합구조 혹은 또 다른 복합형식비트조합구조의 배열에 있어서, 그 배열방식이 비트조합구조간의 경계가 없이 서로 중첩되어 있는 형태로 배열되어 있으며, 또한 각각의 하위레벨 비트조합구조의 순서 또한 고정되어 있지 않은 형식의 비트조합형식에 대한 변환에서 사용하는 방식이다.
한 개 이상의 하위레벨 비트조합구조에 대해 이들의 배열순서가 고정되어 있지 않거나 혹은 비트조합구조 사이의 경계가 뚜렷하지 않은 상태일 경우, 각 하위레벨 비트조합구조를 담당하는 변환지시서는 타입패턴추출용 변환지시서 호출 및 검색 단계(S902)를 통해 찾은 변환지시서를 구성하는 단위변환지시서들을 번갈아 호출하여 기동하는 방식으로 변환과정을 처리해야 한다.
즉, 예를들어 하나의 복합형식비트조합구조를 구성하는 2개의 기본형식비트조합구조가 있으며 이들을 각각 A, B 라는 식별자가 부여된 변환지시서를 이용하여 변환한다고 가정하며, 각 변환지시서를 구성하는 단위변환지시서의 식별자는 각각 A1, A2, … , Am과 B1, B2, … , Bn으로 정의되어 있다고 가정한다.
만약 하위레벨 비트조합구조의 순서가 고정되어 있지 않고 경우에 따라 달라지며, 또한 두 개의 비트조합구조의 경계는, 두 번째 비트조합구조의 첫번째 비트조합구조그룹의 단위비트조합이 첫 번째 비트조합구조의 첫 번째 비트조합구조그룹의 단위비트조합 바로 뒤에 위치하며, 두 번째 단위비트조합 또한 마찬가지 방식으로 위치한다고 가정한다.
위에 설명한 예에서, 하나의 복합형식비트조합구조를 구성하는 2개의 기본형식비트조합구조는 별도의 변환지시서로 그 변환과정을 제어하며, 각각의 변환지시서는 1개 이상의 단위변환지시서로 구성되어 있다.
각각의 단위변환지시서는 하나의 단위비트조합에 대한 연산을 담당하되, 각 단위변환지시서는 그 연산의 대상인 단위비트조합들의 위치를 실시간으로 획득하며, 특히 그 위치정보를 앞서 진행한 연산의 시작위치와 그 연산에 소모된 길이정보의 합산으로 획득하는 경우에는, 두 개의 변환지시서를 구성하는 단위변환지시서를 교대로 호출하고 기동시킴으로써, 서로 다른 변환지시서에 속하는 단위변환지시서를 교대로 배열한 경우에도 변환작업이 가능하게 된다.
따라서, 본 발명은, 그 순서와 위치가 가변적인 1개 이상 복수의 비트조합구조를 배열하고 이에 대한 변환을 담당하는 변환지시서를 호출하여 기동함에 있어서, 각 비트조합구조를 담당하는 변환지시서를 구성하는 단위변환지시서를 호출하여 연산을 수행토록 하는 또 다른 단위변환지시서를 가상 단위변환지시서로 정의하며, 해당 가상 단위변환지시서가 호출하는 실제 단위변환지시서를 실 단위변환지시서로 정의한다.
실 단위변환지시서의 연산에 있어서 그 연산 시작위치정보를 획득하는 방법이 단위변환지시서를 통해 전달되는 상수값일 경우, 가상 단위변환지시서가 실 단위변환지시서를 호출할 때 그 값을 전달하며, 실시간으로 그 값을 획득하는 함수의 식별자를 이용하여 호출하는 경우에도 해당 함수의 식별자를 가상 단위변환지시서가 실 단위변환지시서로 넘겨주며, 앞서 진행한 연산의 시작위치에 해당 연산에 소요된 길이정보를 더한 값을 현재 연산의 시작위치로 결정하는 경우에는, 가상 단위변환지시서가 현재 연산의 시작 위치를 계산하여 그 값을 상수값으로 실 단위변환지시서에 넘겨주는 방법과, 실제 이전 단계 연산의 시작위치와 연산에 소요된 길이정보를 직접 넘겨주어 그 위치를 계산토록 하는 방법이 있다.
다음으로, 현재 연산이 단위비트조합에 대한 읽기연산을 포함하는지의 여부를 확인하고, 포함하지 않을 경우에는 Non-BCE연산단계 (S909)를 수행하고, 포함하는 경우에는 BCE이동단계 (S906)를 진행한다.
Non-BCE연산단계 (S909)는 단위비트조합에 대한 연산을 수반하지 않으며, T-N-V 구조의 비트조합구조에 있어서 특정 단위비트조합 또는 특정 단위비트조합을 포함하는 비트조합구조그룹이 누락되어 있을 경우, 이에 대한 값의 생성 혹은 외부로부터의 획득 등의 과정을 진행하는 연산단계로 정의한다.
특히, 이러한 누락된 값을 생성하거나 외부로부터 획득하는 방법은 크게 2가지로 구성되며, 단위변환지시서에 그 값을 기록하여 상수값 (constant value)으로 넘겨주는 방법, 변환파라메터획득함수관리부(804)에 미리 등록하여둔 획득함수의 식별자를 단위변환지시서를 통해 넘겨주고, 변환오퍼레이션부가 해당 식별자를 통해 변환파라메터획득함수를 호출하여 실시간으로 해당 값을 획득하는 방법이 있다.
다음으로 BCE이동단계(S906)는, 도 6의 사용자정의비트조합데이터(720 및 740)를 구성하는 일련의 바이트 혹은 비트의 배열에 있어서, 단위비트조합을 읽어들이기 위한 오퍼레이션의 시작위치에 관한 정보를 확인하고 해당 위치로 이동하는 과정이다.
해당 위치값을 나타내는 단위는 바이트 단위, 비트 단위, 혹은 4개의 비트등과 같은 임의의 묶음으로 정의한다.
이러한 위치에 관한 정보를 획득하는 방법은 다음과 같은 3가지로 정의한다.
이전 단계의 단위비트조합연산 과정을 시작한 위치값에 이전 단계의 단위비트조합연산 과정에 소요된 길이값을 더해서 그 위치값을 획득하는 방법, 단위변환지시서에 기록한 상수값을 변환오퍼레이션부가 읽어들여 해당 위치값을 획득하는 방법, 실시간으로 변화하는 값을 획득하기 위해, 도7의 변환파라메터획득함수관리부(804)를 이용하여, 특정방식으로 연산시작위치를 획득하는 함수를 미리 등록해 두고, 해당 함수의 식별자를 단위변환지시서에 기록하여 전달하여 변환오퍼레이션부가 해당 함수를 호출하여 연산시작위치값을 획득하는 방법 등 3가지 방법이 있다.
변환오퍼레이션부(801)는 단위변환지시서에서 상기 위치에 관한 정보의 획득방법을 확인하고 이를 실행하여 해당 위치값을 획득하고 이동한다.
다음으로 BCE기본연산단계(S907)를 실행한다. BCE-기본연산단계에서는, BCE이동단계(S906)를 통해 이동한 현재 위치에서 해당 단위비트조합의 길이만큼의 읽기 연산을 실행하며, 읽어들인 단위비트조합에 대한 단순복사(hard copy) 연산 실행 여부를 확인하며, 필요할 경우 해당 단위비트조합을 단위변환지시서가 지정하는 저장소에 복사하여 저장하고, 읽어들인 단위비트조합에 대해 레벨1변환 실행 여부를 확인하며, 필요할 경우 레벨1변환을 실행한다.
상기 단위비트조합에 대한 읽기 연산을 실행함에 있어서, 그 길이에 관한 정보를 획득하는 방법은, 단위변환지시서에 기록하여 전달되는 값을 획득하는 방법, 앞선 단계에서 그 연산이 진행된, 현재 단위비트조합에 대한 길이정보를 담고 있는, L-단위비트조합의 값이 저장되어있는 저장구역의 식별자를 이용하여 해당 값을 획득하는 방법, 도 7a의 변환파라메터획득함수관리부(804)를 이용하여, 임의의 외부 지점으로부터 길이정보를 획득하는 함수를 미리 등록해 두고, 해당 함수의 식별자를 단위변환지시서에 기록하여 전달하며, 변환오퍼레이션부가 해당 함수를 호출하여 연산의 길이정보를 획득하는 방법 등 3가지 방법이 있다.
또한 상기 단순복사 연산은 추후 시스템 비트조합영역으로부터 사용자정의 비트조합영역으로의 변환시에도 그 값과 형식이 변하지 않는 단위비트조합 혹은 비트조합구조그룹 및 비트조합구조의 경우, 저장해둔 비트조합을 그대로 사용하기 위한 목적으로 사용된다.
다음으로 BCE-개별연산단계(S908)에서는, 그 연산의 대상이되는 단위비트조합의 종류에 따라S-단위비트조합의 경우 실행하는 S-BCE연산, 조각화된 조각의 경우 실행하는 조각병합처리연산, I-단위비트조합의 경우 실행하는I-BCE연산, L-단위비트조합의 경우 실행하는 L-BCE연산, T-단위비트조합 혹은 N-단위비트조합 혹은 V-단위비트조합일 경우 실행하는 T-BCE혹은N-BCE혹은 V-BCE연산 및 타입패턴추출연산 중 하나를 실행한다.
BCE개별연산단계(S908)에 있어서 해당 단위비트조합이 S-단위비트조합일 경우, 해당 단위비트조합의 길이만큼 이동하는 오퍼레이션을 진행하는 S-BCE연산을 BCE-개별연산단계로 실행한다.
이때 연산결과는 연산을 시작한 시작위치에 관한 정보와, 연산에 사용된 현재 단위비트조합의 길이에 관한 정보이며, 해당 연산결과를 미리 확보해둔 임시저장소의 저장구역에 저장한다.
만약 단위비트조합의 종류가 조각화된 단위비트조합일 경우에는 BCE-개별연산단계는 조각병합처리연산을 실행한다. 조각병합처리연산은 그 연산 결과를 저장함에 있어서, 현재 연산을 통해 읽어들이고 필요에 따라 레벨1변환을 실행한 결과는 하나의 단위비트조합을 구성하는 여러개의 조각들 중 하나이므로, 해당 조각들을 하나의 단위비트조합으로 병합하기 위해, 미리 정의되어 있는 임시저장소의 특정 저장구역내에 정의되어 있는 조각병합저장정보 데이터(816)에 해당 단위비트조합을 추가로 덧붙이는 오퍼레이션 (appending operation)을 진행한다.
이때 덧붙이는 위치는 기존 변수의 맨 끝에 덧붙이는 방법, 기존 변수의 맨 앞부분에 삽입하여 추가하는 방법, 특정 위치에 삽입하여 추가하는 방법이 있다.
상기 조각병합처리연산에 있어서 마지막 조각병합처리연산을 실행하였을 경우, 해당 결과를 사용자정의기본형식데이터(730) 혹은 사용자정의복합형식데이터(750)의 데이터 요소에 저장하는 시점은 모든 변환 오퍼레이션의 종료 직전에 저장하는 경우와 조각병합처리연산을 마지막으로 처리한 직후 등 2가지 경우로 정의한다.
만약 단위비트조합의 종류가 I-단위비트조합일 경우에는 I-BCE연산을 BCE-개별연산단계로 실행한다. I-BCE연산은 BCE-기본단계를 통해 읽어들인 단위비트조합의 값에 대해 조건값과의 비교를 포함하는 조건연산을 진행하고, 그 결과의 참(TRUE) 혹은 거짓(FALSE)을 저장구역에 저장하고, 변환오퍼레이션부는 그 결과에 따라 다음 이동해야 할 단위변환지시서의 식별자를 확인하고 이동한다.
상기 조건값과 조건연산의 종류를 결정하기 위한 파라메터들은 앞서 설명한 위치정보를 획득하는 방법과 마찬가지로, 단위변환지시서에 조건값과 조건연산의 종류를 나타내는 조건연산자를 직접 명기하여 상수값으로 넘겨주는 방법, 변환지시서에 조건값과 조건연산자를 실시간으로 획득하기 위한, 미리 등록되어있는 함수의 식별자를 기록하고, 변환오퍼레이션부가 이를 호출하여 조건값과 조건연산자를 획득하게 하는 방법이 있다.
조건값은 1개 혹은 2개의 값으로 주어지는 것으로 정의하며, 조건연산자에 따라 결정되는 조건연산의 종류는 I-단위비트조합의 값이 작은값보다 작은 경우, 작은값보다는 크면서 큰값보다는 작은 경우, 큰값보다 더 큰 경우, 작은값보다 작거나 같은 경우, 작은값보다 같거나 크고 큰값보다 작거나 같은 경우, 큰값보다 같거나 큰 경우, 작은값보다 같거나 크고 큰 값보다 작은 경우, 작은값보다 크고 큰값보다 작거나 같은 경우, 작은값과 같은 경우, 큰값과 같은 경우, 작은값보다 작거나 혹은 큰값보다 큰 경우, 작은값보다 작거나같으며 혹은 큰값보다 큰 경우, 작은값보다 작거나 같고 혹은 큰값보다 크거나 같은 경우, 작은값보다 작거나 혹은 큰값보다 같거나 큰 경우 등 모두 13가지의 경우로 정의한다.
만약 단위비트조합의 종류가 L-단위비트조합일 경우에는 L-BCE연산을 BCE-개별연산단계로 진행한다. L-BCE 연산은 BCE-기본연산단계(S907)를 통해 읽어들인 값을 저장구역의 TNVL-BCE저장정보데이터(817)에 저장하며, 해당 값을 길이정보로 활용해야 하는 단위비트조합에 대한 연산단계에서 저장구역의 식별자와 L-BCE저장정보 데이터의 식별자를 이용해 저장되어 있는 길이값을 사용한다.
만약 단위비트조합의 종류가 T-단위비트조합일 경우에는, 앞서 설명한 BCE-기본단계 연산을 실행하고 그 결과를TNVL-BCE저장정보데이터에 저장한다. 이렇게 TNVL-BCE저장정보데이터에 저장한 연산결과는, 추후 도 6의 사용자정의기본형식데이터(730) 의 데이터타입식별자(732) 데이터 요소에 저장하거나 혹은 도 6의 사용자정의복합형식데이터(750)의 데이터타입식별자(752) 혹은 컨테이너(756) 데이터 요소의 하위 데이터 요소로 생성되어 있는 데이터 요소(757)의 데이터타입식별자 데이터 요소에 저장하여 최종 연산을 완료한다.
만약 단위비트조합의 종류가 N-단위비트조합 혹은 V-단위비트조합일 경우에도, 앞서 설명한 T-단위비트조합의 경우와 동일한 절차의 연산을 진행하되, 연산결과의 최종 저장과정은, 그 결과를 저장하는 데이터구조의 데이터요소를 데이터개체식별자(734)와 데이터개체의 값(736) 데이터 요소 혹은 기본형식 혹은 복합형식(757)을 구성하는 또 다른 사용자정의 기본형식 데이터(730)의 데이터개체식별자(734)와 데이터개체의 값(736)에 저장한다.
만약 현재의 연산이 특정 비트조합구조에 대한 변환작업이 아닌, 해당 변환작업을 위해 필요한 비트조합구조가 속하는 데이터 타입을 판별하기 위한 과정일 경우, 타입패턴추출단계의 연산을 진행한다.
타입패턴추출단계의 연산은, 앞서 설명한 조각병합저장정보의 저장과정과 동일한 방식으로 현재의 단위비트조합을 타입패턴저장정보데이터(818)에 추가하여 저장하되, 그 방식은 앞서 저장한 값의 뒤에 덧붙여 추가하는 방식으로 저장한다.
도 9는 사용자정의 비트조합영역으로부터 시스템 비트조합영역으로의 변환을 위한 전체 과정을 도시한 흐름도이다.
사용자정의 비트조합영역의 비트조합구조가 속하는 데이터 타입을 판별해야 하며, 해당 데이터 타입의 변환동작을 제어하기 위해 작성되어 있는 변환지시서를 검색하기 위해, 해당 비트조합구조로부터 타입패턴을 추출하고 추출한 타입패턴으로 해당 데이터 타입에 맵핑되어 있는 변환지시서를 검색한다(S1001).
다음으로 해당 변환지시서를 구성하는 단위변환지시서를 하나씩 읽어들여 해당 단위변환지시서의 제어명령에 따라 변환작업을 진행하며(S1002), 이러한 단위변환지시서의 처리과정(S1002)을 마지막 단위변환지시서까지 진행한다(S1003).
도 10은 단위변환지시서를 작성하는 순서와 방법을 도시한 흐름도이다.
개시된 실시 예에서, 하나의 단위변환지시서는 하나의 단위비트조합에 대한 연산을 담당한다. 이는 단위비트조합을 읽어들이고 변환하는 단계와, 누락되어 있는 단위비트조합의 값을 생성하는 연산을 수반한다.
단위변환지시서의 작성을 위한 첫번째 단계로, 현재 작성중인 단위변환지시서가 특정 단위비트조합에 대한 연산을 수반하는지의 여부를 결정하고(S1101), 단위비트조합에 대한 연산을 수반하지 않을 경우에는 Non-BCE연산설정단계(S1110) 를 진행하며, 그렇지 않을 경우에는 해당 단위비트조합이 새로운 비트조합구조그룹 혹은 비트조합구조에 속하는지를 확인하는 신규 BCS(bit combination structure)확인단계(S1102) 를 실행한다.
Non-BCE연산설정단계(S1110)는 변환 대상인 비트조합구조와 이를 포함하는 T, N, V-비트조합구조그룹 중 일부 혹은 전부가 존재하지 않는 비트조합형식에 있어서, 그 값을 생성하거나 외부로부터 획득하여 지정하는 방식이다.
누락되어 있는 값을 획득하는 방법은2가지가 있으며, 단위변환지시서에 직접 기입하여 상수값을 전달하는 방법, 외부로부터 해당 값을 획득하는 함수를 등록해두고 해당 함수의 식별자를 전달하여 함수의 기동을 통해 그 값을 획득하게 하는 방법 등 2가지 방법중 하나를 선택하고 파라메터로 기록한다.
상기 외부로부터 해당 값을 획득하는 예는, 인가되는 비트조합구조가 컴퓨터 장치간의 통신을 통해 전송되고 해당 통신의 IP ADDRESS에 따라 그 값을 다르게 지정하는 경우 등이 있다.
다음으로 신규BCS확인단계(S1102) 에서, 현재 단위비트조합이 이전 연산단계에서 다루었던 단위비트조합이 속한 비트조합구조가 아니라, 새로운 비트조합구조 혹은 비트조합구조그룹에 속할뿐만 아니라 그 첫번째 단위비트조합이며, 해당 비트조합구조의 데이터 타입에 대한 타입패턴의 추출 작업이 필요한 상황이라면, 변환오퍼레이션부(801)가 타입패턴추출을 담당하는 변환지시서를 호출하여 새로운 비트조합구조에 대한 변환을 담당하는 변환지시서를 찾아내도록 설정하는 타입패턴추출설정단계(S1109)를 진행한다.
타입패턴추출설정단계(S1109)에 대한 설정작업을 진행하는 경우, 즉, 하나의 변환지시서를 구성하는 단위변환지시서를 작성하는 과정에 또 다른 변환지시서에 대한 검색을 진행토록 설정한다는 것은, 현재 작성중인 단위변환지시서가 한 개 이상의 기본형식비트조합구조 혹은 또 다른 복합형식비트조합구조를 그 하위레벨의 데이터요소로 갖고 있는 복합형식비트조합구조인 경우이다.
또한, 그 하위레벨 데이터 요소들인 기본형식비트조합구조 및 복합형식비트조합구조의 위치에 있어서, 각각의 비트조합구조의 경계가 뚜렷하지 않고 일부 시작과 끝이 서로 중첩되어 있는 형식이며, 하위레벨 데이터요소를 구성하는 비트조합구조의 순서가 고정되어 있지 않고 자유롭게 배열 될 수 있으며 경우에 따라서는 특정 하위레벨 데이터 요소가 생략될 수도 있는 경우임을 뜻한다.
단, 이러한 경우에도 상술한 T-N-V 구조에 대한 다양한 형식 또한 함께 준수하여야 한다. 따라서, 이러한 예외적 요인들을 모두 수용하기 위해서는 실시간으로 하위레벨 데이터 요소에 대한 데이터 타입을 판별하고 서로 중첩된 형식으로 배열된 하위레벨 데이터 요소에 대한 연산도 가능해야 한다.
다음으로 신규 BCS확인단계(S1102)에서 타입패턴의 추출과정을 필요로 하지 않는 경우라면, 상위레벨BCS, BCSG확인파라메터설정단계(S1103)를 실행한다.
이 단계에서는 변환오퍼레이션부(801)가 필요로하는 현재 단위비트조합이 속한 비트조합구조그룹 및 그 상위레벨의 비트조합구조그룹 혹은 비트조합구조에 대한 식별자가 파라메터로 전달되며, 이는 변환오퍼레이션부(801)의 연산에 있어서, 현재의 단위비트조합이 속한 비트조합구조그룹 및 기본형식비트조합구조 혹은 복합형식비트조합구조에 해당하는 임시저장소의 저장구역을 확보하고 그 결과를 저장하기 때문이다.
다음으로 BCE이동파라메터설정단계(S1104)를 진행한다. BCE이동파라메터설정단계(S1104)는 앞서 설명한 현재 단위비트조합의 위치를 획득하는 3가지 방법중 하나를 획득 방법으로 결정하고 이를 파라메터로 기록하는 과정이다.
다음으로 현재 작성중인 단위변환지시서가 또 다른 단위변환지시서를 호출하는 가상단위변환지시서인지를 확인하고(S1105), 실단위변환지시서를 호출하는 가상단위변환지시서일 경우에는 실 단위변환지시서 지정 단계(S1108)를 실행한다.
실 단위변환지시서는 도 7a의 변환지시서관리부(803)가 관리하는 특정 변환지시서의 특정 단위변환지시서를 가리킨다.
다음으로 BCE연산파라메터설정단계(S1106)는 앞서 도 8의 BCE기본연산단계(S906)와 BCE개별연산단계(S907) 에서 필요로 하는 파라메터를 설정하는 단계이다.
우선 BCE기본연산단계(S906)에서 필요로하는 단위비트조합의 길이정보를 획득하는 방법을 결정하여 이를 파라메터로 설정하며, 레벨 1 변환여부 및 변환 필요시 호출할 함수의 식별자를 파라메터로 기록한다.
다음으로 현재 단위변환지시서의 연산 종류를 S-BCE연산, 조각병합처리연산, I-BCE연산, L-BCE연산, T-BCE, N-BCE, V-BCE연산 및 타입패턴추출연산 중 하나로 결정하고 이를 파라메터로 기록한다.
위의 모든 연산이 공통으로 필요로하는 파라메터는 현재의 단위비트조합의 길이에 관한 정보이다. 단위비트조합의 길이정보는 단위변환지시서의 파라메터를 이용해 상수값으로 넘겨주는 방법, 해당 단위비트조합의 길이정보를 갖고 있는 L-비트조합구조그룹의 L-단위비트조합으로부터 읽어들이고 임시저장소 저장구역의 TNVL-BCE저장정보에 저장해둔 길이값을 사용하는 방법, 해당 길이정보를 외부로부터 획득하기 위해 미리등록해둔 획득함수의 식별자를 파라메터로 넘겨주고 이를 기동시켜 그 값을 획득하는 방법이 있다.
상술한 세 가지 방법 중 적절한 방법을 선택하고 이를 위한 파라메터 값을 설정한다. 또한, 각 연산의 종류별로 필요한 변환 파라메터를 아래와 같이 설정한다. S-BCE연산의 경우에는 건너뜀연산을 위한 단위비트조합의 길이 정보를 획득하는 방법을 위에서 설명한 3가지 방법중 하나로 결정하여 파라메터값을 설정하여 전달한다.
조각병합처리연산의 경우에는 BCE-기본단계를 위한 파라메터를 설정하고, 조각들을 병합하는 임시저장소내 저장구역의 조각병합저장정보 데이터의 식별자를 파라메터로 설정한다. 또한, 병합하기 위한 병합위치를 맨끝이나 맨 앞 혹은 중간의 특정 위치 등 3가지 방법중 하나로 결정하고 그에 해당하는 파라메터를 설정한다.
I-BCE연산의 경우에는 BCE-기본단계를 위한 파라메터를 설정하고, 읽어들인 단위비트조합과 비교하기 위한 조건값과 조건연산의 종류를 결정하는 조건연산자를 설정하되, 조건값과 조건연산자등 2개의 파라메터는 단위변환지서에 직접 기입하여 전달하는 방법과, 2개의 값을 획득하기 위한 함수의 식별자를 기입하여 전달하고 변환오퍼레이터가 이를 호출하여 획득하는 방법이 있다.
또한 위의 조건연산에 따른 결과의 참 혹은 거짓에 따라 분기하는 다음 단위변환지시서의 식별자를 설정한다.
L-BCE연산의 경우에는 BCE-기본단계를 위한 파라메터를 설정하고, 그 길이정보를 위에서 설명한 3가지 방법중 하나로 설정하며, 읽어들인 L-단위비트조합값의 용도 즉, 해당 단위비트조합의 값을 실제 자신의 길이정보로 사용하는 단위비트조합에 대한 연산을 제어하는 단위변환지시서의 길이정보의 획득시 사용하도록 해당 단위변환지시서의 파라메터 설정시점에 현재 값이 저장된 임시저장소의 저장구역 식별자를 설정한다.
T-BCE연산의 경우에는 BCE-기본단계 및 길이정보의 획득을 위한 파라메터를 설정하고, 해당 단위비트조합이 저장된 임시저장소의 저장구역에서 실제 도6의 데이터요소로 데이터를 옮겨 저장하는 시점을 파라메터 값으로 설정한다. 실제 데이터를 옮기는 시점은 단위변환지시서의 실행이 완료되는 시점 및 모든 단위변환지시서의 실행이 완료되는 시점 등 2가지 경우로 정의한다.
N-BCE연산과 V-BCE연산의 경우도 위의 T-BCE연산과 동일한 설정 과정을 진행한다. 타입패턴추출연산의 경우에도 위의 경우와 마찬가지로 BCE-기본단계 및 길이정보의 획득을 위한 파라메터를 설정한다.
도 11은 시스템비트조합영역의 비트조합을 사용자정의비트조합영역으로 변환하는 과정을 나타낸 실시예를 도시한 흐름도이다.
도 11의 변환과정은 도 7a의 변환오퍼레이션부(801)에 의해 실행되며, 그 실행을 위한 파라메터는 변환지시서를 구성하는 단위변환지시서를 통해 전달된다.
변환오퍼레이션부(801)는 사용자정의 비트조합영역으로부터 시스템 비트조합영역으로의 변환과 관련된 파라메터를 전달하는 변환지시서를 그 역방향으로의 변환에도 동일하게 사용하되, 서로 다른 파라메터가 필요할 경우에는 이들을 하나의 단위변환지시서의 서로 다른 데이터구조에 기록하여 전달한다.
본 발명이 사용하는 단위변환지시서의 데이터 구성은 후술한다.
우선 첫번째 단계로 현재 쓰기 연산을 실행해야 할 단위비트조합이 이전 연산과정의 단위비트조합과 서로 다른 비트조합구조그룹 혹은 비트조합에 속할 경우 즉, 현재 단위비트조합이 새로운 비트조합구조에 속하는 경우, 이는 현재 진행중인 연산이 복합형식비트조합구조 (CBCS)의 하위 레벨 데이터 요소에 대한 변환임을 뜻한다.
도 8의 타입패턴추출 필요 여부를 확인하는 단계(S902)에서와 마찬가지로, 새로운 비트조합구조가 시작하는 지점의 단위비트조합임을 뜻하는 것인지를 확인하고(S1201), 새로운 비트조합구조의 시작지점을 나타내는 경우, 해당 비트조합구조의 변환을 담당하는 변환지시서를 검색하고 이를 읽어들인다.
상기 변환지시서의 검색은, 도 6의 컨테이너(756) 데이터를 이용하여 사용자정의 복합형식데이터(750)의 하위 레벨 데이터요소로 존재하며, 현재 연산시점까지 사용자정의 비트조합영역의 비트조합으로 변환하기 위한 과정을 거치지 않은 데이터요소 중 임의의 순서로 결정한 데이터 요소의 변환을 담당하는 변환지시서이다.
만약 새로운 비트조합구조가 시작하는 지점의 단위비트조합임을 뜻하는 것인지를 확인하는 단계(S1201)에서, 새로운 비트조합구조가 시작하는 지점이 아닐 경우, 상위레벨확인 및 저장구역 지정단계(S1203)를 진행한다.
상기 상위레벨확인 및 저장구역 지정단계(S1203)는, 도 8에서 설명한 디코딩 과정과 마찬가지로, 현재 연산의 대상이 되는 단위비트조합이 속하는 상위레벨의 비트조합구조그룹과 그 상위레벨의 비트조합구조그룹 혹은 비트조합구조의 식별자가, 직전 단위비트조합에 대한 연산수행 단계에서 기록해둔 상위레벨의 비트조합구조그룹과 그 상위레벨의 비트조합구조그룹 혹은 비트조합구조의 식별자와 같은지를 확인하고, 변경되었을 경우, 상위레벨의 비트조합구조 및 비트조합구조그룹에 대한 식별자와 최상위레벨의 비트조합구조에 대한 식별자를 모두 확인하고, 해당 비트조합구조 및 비트조합구조그룹과 맵핑되는 사용자정의 기본형식 데이터(730) 및 사용자정의 복합형식데이터(750), 그리고 각 데이터구조의 하위레벨 데이터요소들을 확인한다.
이러한 확인과정의 목적은 인코딩과정을 위한 비트조합구조 즉, 도 6의 데이터 구조(730 및 750)가 변경되었거나 혹은 비트조합구조그룹 즉, 데이터구조의 하위 레벨 데이터 요소가 변경되었음을 뜻한다.
다음으로 현재의 단위비트조합에 대한 연산을 담당하는 단위변환지시서가 실제 연산을 담당하는 실 단위변환지시서를 호출하는 가상 단위변환지시서인지를 확인하고(S1204), 가상 단위변환지시서일 경우에는 디코딩과정과 마찬가지로, 실 단위변환지시서 연산 단계(S1210)를 진행한다.
다음으로, 현재 연산이 디코딩 단계에서 Non-BCE연산단계(S909)를 수행하는 것으로 설정되어 있을 경우, 이는 특정 데이터구조를 구성하는 데이터요소의 값을 단위비트조합으로 변환하지 않음을 의미하므로, 별도의 연산과정없이 곧바로 단위변환지시서에 대한 연산을 종료한다(S1209).
다음으로 Non-BCE이 아닐 경우(S1205), BCE이동단계(S1206)를 진행하며, 이는 디코딩단계와 동일한 방법으로 그 연산 위치에 관한 정보를 획득하는 단계이다.
다음으로 BCE 개별쓰기연산단계(S1207)를 진행한다.
인코딩과정의 BCE개별쓰기연산단계 (S1207)는 디코딩단계의 BCE개별연산단계 (S908)와 마찬가지로, S-BCE연산, 조각분리쓰기연산, I-BCE연산, L-BCE연산, T-BCE혹은N-BCE혹은 V-BCE연산 및 타입패턴추출연산 중 하나를 실행한다. 단, 조각분리쓰기연산은 디코딩단계의 조각병합처리연산을 대신하는 연산단계이다.
인코딩 과정에 있어서의S-BCE연산도 해당 단위비트조합의 길이만큼을 건너뛰는 연산만을 진행한다. 또한 인코딩 과정에서도 그 연산결과는 연산을 시작한 위치에 관한 정보와, 연산에 사용한 현재 단위비트조합의 길이에 관한 정보이며, 해당 연산결과를 미리 확보해둔 임시저장소의 저장구역에 저장한다.
다음으로 단위비트조합의 종류가 조각화된 단위비트조합일 경우에는 조각분리쓰기연산을 실행한다.
조각분리쓰기연산은 단위변환지시서를 통해 전달되어 있는 단위비트조합의 길이만큼의 비트조합을 특정 저장구역의 데이터로부터 읽어들여 쓰기 연산을 진행중인 사용자정의 비트조합데이터(720 및 740)로 쓰기 연산을 진행하되, 인코딩과정의 조각분리쓰기연산단계는 사용자정의 기본형식데이터(730) 혹은 사용자정의 복합형식데이터(750)를 구성하는 데이터 요소 중 하나에 대한 조각화 과정을 수반하며, 이는 조각화 대상 데이터 요소에 대해 그 원래의 길이보다 적은 길이로 나누어진 각 단위비트조합에 대한 읽기 연산을 통해 이루어진다.
이러한 조각화 연산의 시작 위치는 단위변환지시서에 명기하여 전달하는 방법과, 미리 등록해둔 획득 함수를 통해 그 시작위치와 읽기를 위한 길이정보를 획득하는 방법이 있다.
다음으로 인코딩과정에 있어서의 I-BCE연산은 단위변환지시서에 인코딩을 위한 별도의 파라메터를 설정하는 것으로 정의한다. 즉, 디코딩 과정에 있어서의 I-BCE 연산은 읽어들인 단위비트조합의 값에 대해 조건값과의 비교연산을 실행하고 그 결과의 참 혹은 거짓에 따라 다음 실행하는 단위변환지시서를 다르게 설정하는 연산이다.
따라서, 인코딩 과정의 I-BCE연산은 시스템비트조합영역에 속하는 특정 데이터의 값에 조건값과의 비교연산을 실행하고, 그 결과의 참 혹은 거짓에 따라 I-단위비트조합의 값을 상이하게 쓰게되며 또한 다음 실행할 단위변환지시서도 다르게 설정된다.
상기 조건연산에 있어서 디코딩과정의 I-BCE연산에서와 마찬가지로, 조건값은 1개 혹은 2개의 값으로 주어지는 것으로 정의하며, 조건연산자에 따라 결정되는 조건연산의 종류는 I-단위비트조합의 값이 작은값보다 작은 경우, 작은값보다는 크면서 큰값보다는 작은 경우, 큰값보다 더 큰 경우, 작은값보다 작거나 같은 경우, 작은값보다 같거나 크고 큰값보다 작거나 같은 경우, 큰 값보다 같거나 큰 경우, 작은값보다 같거나 크고 큰 값보다 작은 경우, 작은값보다 크고 큰값보다 작거나 같은 경우, 작은값과 같은 경우, 큰값과 같은 경우, 작은값보다 작거나 혹은 큰값보다 큰 경우, 작은값보다 작거나같으며 혹은 큰값보다 큰 경우, 작은값보다 작거나 같고 혹은 큰값보다 크거나 같은 경우, 작은값보다 작거나 혹은 큰값보다 같거나 큰 경우 등 모두 13가지의 경우로 정의한다.
다음으로 인코딩 단계에서의 L-BCE 연산은 해당 L-단위비트조합의 값을 그 길이정보로 사용하는 특정 단위비트조합의 길이를 그 값으로 적되, 단위변환지시서에 파라메터로 설정되어 전달된, 현재 L-단위비트조합의 값을 길이정보로 사용하는 데이터 요소의 식별자를 이용하여 해당 데이터 요소가 갖고 있는 값의 길이정보를 획득하며, 만약 현재의 L-단위비트조합이 속한 L-비트조합구조그룹의 차수 (order) 가 1보다 클 경우에는, 특정 데이터요소의 길이값을 저장하는 L-단위비트조합의 길이정보를 포함하는 또 다른 L-단위비트조합의 값으로 계산하는 등, 그 차수만큼의 길이정보 연산을 반복하여 그 값을 획득하고 이를 L-단위비트조합의 값으로 적는다.
다음으로 만약 현재의 단위변환지시서가 T-단위비트조합에 대한 인코딩과정을 가리키고 있다면, 단위변환지시서에 명기되어 있는 특정 데이터구조의 데이터 타입에 관한 정보를 갖고 있는 도6의 데이터타입식별자 데이터 요소(732 및 752)의 값을 T-단위비트조합으로 쓰는 쓰기 연산을 실행하되, 그 값의 길이정보는 앞선 경우와 마찬가지로, 단위변환지시서에 파라메터 값으로 설정되어 전달된 값을 길이값으로 사용하는 방법, 현재 T-단위비트조합에 선행하는 L-비트조합구조그룹에 속하는 L-단위비트조합이 존재하며 해당 비트조합의 값에 대한 쓰기 연산을 진행한 경우, 해당 비트조합의 값을 그 길이 정보로 사용하는 방법, 디코딩 과정과 마찬가지로 미리 작성하여 등록해둔 획득함수의 식별자를 단위변환지시서로 부터 읽어들이고 이 식별자를 호출하여 그 값을 획득하는 방법이 있다.
또한 해당 단위비트조합에 대한 역방향의 레벨1 변환이 필요한지의 여부를 확인하고, 필요할 경우 이를 실행하고 쓰기 연산을 진행한다.
만약 단위비트조합이 N-단위비트조합 혹은 V-단위비트조합일 경우에도 위의 T-단위비트조합의 경우와 동일한 방식의 연산을 진행하되, 변환의 대상이 되는 데이터 요소는 각각 도 6의 데이터개체식별자(734) 와 데이터개체의 값(736) 및 기본형식 및 복합형식(757) 데이터요소에 속하는 또 다른 데이터개체식별(734)와 데이터개체의 값(736) 데이터 요소이다.
이하에서는, 단위변환지시서를 구성하는 데이터 구조의 실시 예에 대하여 설명한다.
일 실시 예에서, 단위변환지시서는 unit-manifest-info 데이터요소, upper-level-bcsg-bcs-info 데이터요소, absent-bce-info 데이터요소, bce-operation-info 데이터요소, type-pattern-extraction-info 데이터요소, unit-manifest-link-info 데이터요소, fragment-bce-operation-info 데이터요소, conditional-bce-operation-info 데이터요소 및 manifest-info 데이터요소를 포함한다.
unit-manifest-info 데이터요소는 단위변환지시서를 식별하는 식별자이다.
upper-level-bcsg-bcs-info 데이터요소는 현재 연산이 진행중인 단위비트조합이 속하는 상위레벨의 비트조합구조그룹 및 비트조합구조에 관한 정보를 포함하는 데이터이다.
Upper-level-bcsg-bcs-info 데이터요소는 단위변환지시서를 작성하는 시점에, 그리고 변환지시서를 구성하는 모든 단위변환지시서에 해당 단위변환지시서가 처리하는 단위비트조합이 속한 상위레벨 비트조합구조 및 비트조합구조그룹에 관한 정보를 갖고 있는 데이터요소이다.
즉, Upper-level-bcsg-bcs-info 데이터요소는 현재의 단위비트조합이 속한 최상위레벨의 비트조합구조 및 그 하위레벨의 T-비트조합구조그룹, N-비트조합구조그룹, V-비트조합구조그룹과 이들 각각에 속한 T-단위비트조합, N-단위비트조합, V-단위비트조합에 대한 정보를 갖고 있으며, 해당 비트조합구조가 속하는 데이터 타입의 정보를 함께 갖고 있다.
Absent-bce-info 데이터요소는 Non-BCE연산에 관한 정보를 기록하는 데이터이다. Absent-bce-info 데이터요소에는 사용자정의 비트조합영역의 비트조합구조를 구성하는 비트조합구조그룹중 일부 혹은 전부가 존재하지 않을 경우 그 값을 획득하는 방법 및 획득을 위한 함수의 식별자 혹은 그 값이 기록되어 전달된다.
Bce-operation-info에는 사용자정의비트조합영역의 비트조합구조에 대한 읽기연산에 필요한 파라메터 값들이 설정되어 전달된다. 읽기연산에 필요한 파라메터는, 연산의 시작위치, 연산의 적용 길이, 비트마스크의 적용여부 및 비트마스크 값, 레벨1변환여부 및 레벨1변환을 위한 함수의 식별자 정보가 파라메터로 설정된다.
단, 앞서 도 8과 도 11에서 설명한바와 같이 단위변환지시서에는 특정 값을 직접 기입하여 전달하는 방법, 미리 등록해둔 획득함수의 식별자를 기입하여 넘겨주는 방법이 있다.
Type-pattern-extraction-info 데이터요소는 디코딩과정에 있어서, 새로운 비트조합구조가 시작하는 지점의 단위비트조합에 대한 타입패턴을 추출하고 이를 이용해 해당 비트조합구조의 데이터타입과 해당 비트조합구조의 변환을 담당하는 변환지시서를 검색하고 읽어들이기 위해 필요한, 타입패턴추출여부를 가리키는 데이터와 새롭게 검색하고 읽어들인 변환지시서를 임시로 저장하는 슬롯의 위치를 포함한다.
다음으로 unit-manifest-link-info 데이터요소는 가상 단위변환지시서가 호출하는 실 단위변환지시서의 식별자에 관한 정보를 기록하게 된다. Fragmented-bce-operation-info 데이터요소는 디코딩과정에 있어서, 조각화되어 있는 단위비트조합을 읽어들이고 이를 병합하기 위해 필요한 저장구역의 지정, 병합시점에 단위비트조합을 기존 저장구역의 비트조합 후미에 추가할 것인지 아니면 임의의 위치에 끼워넣을것인지를 지시하는 지시자 정보를 포함한다.
인코딩시에는 조각화하여 개별 단위비트조합으로 기록하기 위한 데이터요소 혹은 비트조합구조로부터 조각을 읽어들이기 위해 필요한 조각의 시작위치, 조각의 길이, 해당 조각에 대한 비트마스크 및 역 레벨1 변환 여부 및 획득함수에 관한 정보를 포함한다.
Conditional-bce-operation-info 데이터요소는 디코딩과정에 있어서 필요한, 읽어들인값과 비교할 비교대상값, 해당 비교대상값과의 비교를 위한 비교연산자의 종류, 그리고 비교연산의 결과가 참일 경우와 거짓일 경우 서로 다르게 분기하는 다음 연산의 대상이 되는 단위변환지시서의 식별자 정보를 포함한다.
위의 디코딩과정에 필요한 정보와 더불어, 인코딩과정에 필요한 별도의 정보를 함께 포함한다. 인코딩과정을 위한 정보는 읽어들인값과 비교할 비교대상값, 해당 비교대상값과의 비교를 위한 비교연산자의 종류 및 비교연산의 결과가 참일 경우와 거짓일 경우 서로 다르게 분기하는 다음 연산의 대상이 되는 단위변환지시서의 식별자 정보를 포함하되, 다음 연산의 대상이 되는 단위변환지시서는 디코딩과정에서 정의한 다음연산을 위한 단위변환지시서와 동일한 단위변환지시서로 참 거짓에 대한 분기를 가리키며, 읽어들이는 값은 시스템비트조합영역의 비트조합으로 표현된 도 6의 사용자정의기본형식데이터와 사용자정의복합형식데이터가 갖고 있는 데이터요소를 포함하는 임의의 데이터로 정의한다.
마지막으로 manifest-info 데이터 요소는 한 개 이상의 단위변환지시서로 구성되는 변환지시서의 식별자, 해당 변환지시서가 담당하는 사용자정의비트조합영역 및 시스템비트조합영역의 데이터 타입에 관한 정보를 포함한다.
도 12는 본 발명이 제시하는 비트조합 변환의 단계별 과정을 도시한 흐름도이다.
도 12(a)는 사용자정의 비트조합영역의 비트조합구조에 대해 해당 비트조합구조의 데이터 타입을 판별하기 위한 타입패턴의 추출을 담당하는 변환지시서를 작성하고 등록하며, 해당 비트조합구조에 대한 시스템비트조합영역으로의 변환을 담당하는 변환지시서를 작성하는 단계를 도시한 흐름도이다.
도 12(a)의 타입패턴추출용변환지시서작성단계(S1301)에서는 특정 사용자정의비트조합영역의 비트조합에 대해 해당 비트조합이 속한 데이터 타입의 판별을 위한 타입패턴을 추출하기 위한 변환지시서를 작성한다.
도 12(a)의 타입패턴추출용변환지시서등록단계(S1302)에서는 타입패턴을 인덱스로 하여 작성한 타입패턴 추출용 변환지시서를 변환지시서 관리부(803)에 등록한다.
도 12(a)의 타입별변환지시서작성단계(S1303)는 사용자정의 비트조합영역의 비트조합을 시스템 비트조합영역으로 변환하기 위해 사용하는 변환지시서를 작성하는 단계이다.
도 12(a)의 타입별변환지시서등록단계(S1304)는 상기 타입별변환지시서작성단계(S1303)에서 작성한 변환지시서를 변환지시서 관리부(803)에 등록하는 단계이다.
도 12(b)는 앞서 작성하고 등록해둔 타입패턴추출용변환지시서를 활용하여 사용자정의 비트조합영역의 비트조합을 시스템 비트조합영역의 비트조합으로 변환하는 과정을 도시한 흐름도이다.
도 12(b)의 타입패턴추출단계(S1311)는 타입패턴추출용변환지시서를 적용하여 임의의 비트조합으로부터 데이터 타입을 판별하기 위한 타입패턴을 추출하는 단계이다.
도 12(b)의 변환지시서검색단계(S1312)는 상기 타입패턴추출단계(S1311) 에서 추출한 타입패턴을 인덱스값으로 인가하여 해당 데이터 타입에 대한 변환과정을 기록한 변환지시서를 검색하는 단계이다.
도 12(b)의 타입별변환지시서적용단계(S1313)는 변환지시서검색단계(S1312) 에서 검색한 결과인 변환지시서를 적용하여 사용자정의 비트조합영역의 해당 비트조합을 시스템 비트조합영역으로 변환하는 과정이다.
도 12(c)는 시스템 비트조합영역의 비트조합을 사용자정의 비트조합영역의 비트조합으로 변환하는 과정을 단계별로 나타낸 그림이다.
도 12(c)의 데이터타입확인단계(S1321)는 시스템 비트조합영역의 비트조합 즉, 데이터구조의 인스턴스가 속한 데이터의 타입을 확인하는 단계이다.
대부분의 경우 시스템 비트조합영역에 속하는 비트조합의 데이터 타입의 구분은 해당 데이터의 타입을 나타내는 정보 즉, 도 6의 데이터타입 식별자(732 및 752) 혹은 부가정보(738 및 758) 데이터 요소가 갖고 있는 타입 정보를 이용하여 해당 데이터타입을 확인한다.
다음으로 이전 단계에서 확인한 데이터 타입 정보를 이용하여 변환지시서검색단계(S1322)를 진행하고, 검색결과로 획득한 변환지시서를 적용하여 변환대상 비트조합을 시스템 비트조합영역으로부터 사용자정의 비트조합영역으로 변환하는 타입별 변환지시서적용단계(S1323)를 진행한다.
도 13은 일 실시 예에 따른 장치의 구성도이다.
프로세서(102)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.
일 실시예에 따른 프로세서(102)는 메모리(104)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 12와 관련하여 설명된 데이터 조합형식 변환방법을 수행한다.
예를 들어, 프로세서(102)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 컴퓨터가 사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계, 상기 제1 데이터의 타입패턴을 추출하는 단계, 상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계 및 상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계를 포함하는, 데이터 조합형식 변환방법을 수행한다.
한편, 프로세서(102)는 프로세서(102) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(102)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(104)에는 프로세서(102)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(104)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100: 데이터 조합형식 변환장치
102: 프로세서
104: 메모리

Claims (14)

  1. 컴퓨터가 사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계;
    상기 제1 데이터의 타입패턴을 추출하는 단계;
    상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계; 및
    상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계; 를 포함하며,
    상기 변환하는 단계는,
    상기 변환지시서에 기초하여, 상기 제1 데이터로부터 하나 이상의 비트조합구조그룹을 식별하는 단계; 및
    상기 식별된 하나 이상의 비트조합구조그룹의 조합형식을 변환하는 단계; 를 포함하되,
    상기 하나 이상의 비트조합구조그룹 각각은 상기 하나 이상의 비트조합구조그룹의 종류를 나타내는 적어도 하나의 단위비트조합을 포함하고,
    상기 단위비트조합은,
    데이터 타입에 대한 정보를 나타내는 T-단위비트조합;
    데이터 식별을 위한 이름을 나타내는 N-단위비트조합;
    데이터의 값을 나타내는 V-단위비트조합;
    데이터의 길이를 나타내는 L-단위비트조합;
    데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합; 및
    단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합; 중 하나인 것을 특징으로 하는, 데이터 조합형식 변환방법.
  2. 삭제
  3. 제1 항에 있어서,
    상기 변환지시서는,
    상기 사용자 정의 비트조합 영역의 비트조합구조그룹 조합형식에 대한 정보를 포함하는, 데이터 조합형식 변환방법.
  4. 삭제
  5. 제1 항에 있어서,
    상기 하나 이상의 비트조합구조그룹 각각은,
    상기 L-단위비트조합을 포함하는 하나 이상의 L-비트조합구조그룹; 및
    상기 S-단위비트조합을 포함하는 하나 이상의 S-비트조합구조그룹; 을 포함하는 것을 특징으로 하는, 데이터 조합형식 변환방법.
  6. 제5 항에 있어서,
    상기 하나 이상의 비트조합구조그룹에 포함된 제1 비트조합구조그룹은,
    상기 제1 비트조합구조그룹의 종류를 나타내는 제1 단위비트조합; 및
    상기 제1 단위비트조합의 길이를 나타내는 제1 L-비트조합구조그룹; 을 포함하는, 데이터 조합형식 변환방법.
  7. 제6 항에 있어서,
    상기 제1 비트조합구조그룹은,
    상기 제1 L-비트조합구조그룹의 길이를 나타내는 제2 L-비트조합구조그룹; 을 더 포함하고,
    상기 변환지시서는,
    L-비트조합구조그룹의 반복횟수에 대한 정보를 포함하는, 데이터 조합형식 변환방법.
  8. 제1 항에 있어서,
    상기 변환지시서는, 서로 다른 종류의 단위비트조합에 대한 연산을 수행하기 위하여 이용되는 하나 이상의 단위변환지시서를 포함하는 것을 특징으로 하는, 데이터 조합형식 변환방법.
  9. 제8 항에 있어서,
    상기 변환하는 단계는,
    상기 제1 데이터에 포함된 제2 비트조합구조그룹의 종류에 대응하는 단위변환지시서를 호출하는 단계; 및
    상기 단위변환지시서를 이용하여 상기 제2 비트조합구조그룹에 대한 연산을 수행하는 단계; 를 더 포함하는, 데이터 조합형식 변환방법.
  10. 제1 항에 있어서,
    상기 타입패턴을 추출하는 단계는,
    타입패턴추출용 변환지시서를 호출하는 단계;
    상기 타입패턴추출용 변환지시서를 이용하여 상기 제1 데이터의 타입패턴을 추출하는 단계; 및
    상기 추출된 타입패턴에 맵핑된 데이터 타입의 식별자를 추출하는 단계; 를 포함하고,
    상기 변환지시서를 획득하는 단계는,
    상기 추출된 식별자에 대응하는 변환지시서를 획득하는 단계; 를 포함하는, 데이터 조합형식 변환방법.
  11. 컴퓨터가 시스템 비트조합 영역의 제1 데이터를 획득하는 단계;
    상기 제1 데이터를 변환할 타입패턴을 결정하는 단계;
    상기 결정된 타입패턴에 대응하는 변환지시서를 획득하는 단계; 및
    상기 변환지시서에 기초하여 상기 제1 데이터를 사용자정의 비트조합 영역의 데이터로 변환하는 단계; 를 포함하며,
    상기 변환하는 단계는,
    상기 변환지시서에 기초하여, 상기 제1 데이터로부터 하나 이상의 비트조합구조그룹을 식별하는 단계; 및
    상기 식별된 하나 이상의 비트조합구조그룹의 조합형식을 변환하는 단계; 를 포함하되,
    상기 하나 이상의 비트조합구조그룹 각각은 상기 하나 이상의 비트조합구조그룹의 종류를 나타내는 적어도 하나의 단위비트조합을 포함하고,
    상기 단위비트조합은,
    데이터 타입에 대한 정보를 나타내는 T-단위비트조합;
    데이터 식별을 위한 이름을 나타내는 N-단위비트조합;
    데이터의 값을 나타내는 V-단위비트조합;
    데이터의 길이를 나타내는 L-단위비트조합;
    데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합; 및
    단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합; 중 하나인 것을 특징으로 하는, 데이터 조합형식 변환방법.
  12. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    사용자 정의 비트조합 영역의 제1 데이터를 획득하는 단계;
    상기 제1 데이터의 타입패턴을 추출하는 단계;
    상기 추출된 타입패턴에 대응하는 변환지시서를 획득하는 단계; 및
    상기 변환지시서에 기초하여 상기 제1 데이터를 시스템 비트조합 영역의 데이터로 변환하는 단계; 를 수행하며,
    상기 변환하는 단계는,
    상기 변환지시서에 기초하여, 상기 제1 데이터로부터 하나 이상의 비트조합구조그룹을 식별하는 단계; 및
    상기 식별된 하나 이상의 비트조합구조그룹의 조합형식을 변환하는 단계; 를 포함하되,
    상기 하나 이상의 비트조합구조그룹 각각은 상기 하나 이상의 비트조합구조그룹의 종류를 나타내는 적어도 하나의 단위비트조합을 포함하고,
    상기 단위비트조합은,
    데이터 타입에 대한 정보를 나타내는 T-단위비트조합;
    데이터 식별을 위한 이름을 나타내는 N-단위비트조합;
    데이터의 값을 나타내는 V-단위비트조합;
    데이터의 길이를 나타내는 L-단위비트조합;
    데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합; 및
    단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합; 중 하나인 것을 특징으로 하는, 데이터 조합형식 변환장치.
  13. 하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    시스템 비트조합 영역의 제1 데이터를 획득하는 단계;
    상기 제1 데이터를 변환할 타입패턴을 결정하는 단계;
    상기 결정된 타입패턴에 대응하는 변환지시서를 획득하는 단계; 및
    상기 변환지시서에 기초하여 상기 제1 데이터를 사용자정의 비트조합 영역의 데이터로 변환하는 단계; 를 수행하며,
    상기 변환하는 단계는,
    상기 변환지시서에 기초하여, 상기 제1 데이터로부터 하나 이상의 비트조합구조그룹을 식별하는 단계; 및
    상기 식별된 하나 이상의 비트조합구조그룹의 조합형식을 변환하는 단계; 를 포함하되,
    상기 하나 이상의 비트조합구조그룹 각각은 상기 하나 이상의 비트조합구조그룹의 종류를 나타내는 적어도 하나의 단위비트조합을 포함하고,
    상기 단위비트조합은,
    데이터 타입에 대한 정보를 나타내는 T-단위비트조합;
    데이터 식별을 위한 이름을 나타내는 N-단위비트조합;
    데이터의 값을 나타내는 V-단위비트조합;
    데이터의 길이를 나타내는 L-단위비트조합;
    데이터의 연산 조건(condition)을 나타내는 지시자(indicator)로서 이용되는 I-단위비트조합; 및
    단위비트조합의 길이만큼 연산과정을 생략하고 다음 단위비트조합의 위치로 이동(skip)함을 나타내는 S-단위비트조합; 중 하나인 것을 특징으로 하는, 데이터 조합형식 변환장치.
  14. 하드웨어인 컴퓨터와 결합되어, 제1 항 또는 제11항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.
KR1020180045355A 2018-04-19 2018-04-19 데이터 조합형식 변환방법, 장치 및 프로그램 KR102011843B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180045355A KR102011843B1 (ko) 2018-04-19 2018-04-19 데이터 조합형식 변환방법, 장치 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180045355A KR102011843B1 (ko) 2018-04-19 2018-04-19 데이터 조합형식 변환방법, 장치 및 프로그램

Publications (1)

Publication Number Publication Date
KR102011843B1 true KR102011843B1 (ko) 2019-08-19

Family

ID=67807284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180045355A KR102011843B1 (ko) 2018-04-19 2018-04-19 데이터 조합형식 변환방법, 장치 및 프로그램

Country Status (1)

Country Link
KR (1) KR102011843B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070070213A (ko) * 2004-11-16 2007-07-03 모토로라 인코포레이티드 데이터 교환 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070070213A (ko) * 2004-11-16 2007-07-03 모토로라 인코포레이티드 데이터 교환 방법 및 시스템

Similar Documents

Publication Publication Date Title
US10831773B2 (en) Method and system for parallelization of ingestion of large data sets
JP5939123B2 (ja) 実行制御プログラム、実行制御方法および情報処理装置
US20130326478A1 (en) Version labeling in a version control system
CN110888720A (zh) 任务处理方法、装置、计算机设备及存储介质
WO2011111532A1 (ja) データベースシステム
US11461663B2 (en) Information processing apparatus, information processing method for image processing, and storage medium
US10394763B2 (en) Method and device for generating pileup file from compressed genomic data
CN112817657A (zh) 一种应用程序启动项加载方法、装置、系统及存储介质
CN108228912A (zh) 一种业务数据的处理方法及相关装置
JP2000029674A (ja) アプリケ―ションソフトウェア構成方法
CN108459846B (zh) 软件云定制方法及平台
KR102011843B1 (ko) 데이터 조합형식 변환방법, 장치 및 프로그램
CN115329753B (zh) 一种基于自然语言处理的智能数据分析方法和系统
JP2014225256A (ja) プログラム生成装置、プログラム生成装置の制御方法、およびプログラム
CN108090034B (zh) 基于集群的单证代码统一编码生成方法和系统
US20220207287A1 (en) System and Method of Clustering Machine Learning Flows
CN116028062A (zh) 目标代码的生成方法、npu指令的显示方法及装置
JP2006277282A (ja) モデル評価解析システムおよびモデル評価解析プログラム
JP3999949B2 (ja) 別名検索装置、別名検索方法及び別名検索用プログラム
Pinos et al. ATTA converter: software for converting data between ArcGIS and TerrSet
US11294878B2 (en) Using border data structure with index
JP2018116517A (ja) 開発支援装置、開発支援方法、およびプログラム
JP2010157165A (ja) 情報処理装置、情報処理方法、及びプログラム
WO2015030016A1 (ja) 非構造化データ処理システム、非構造化データ処理方法および記録媒体
CN117216090A (zh) 数据分析方法、装置、计算机设备及其存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant