임베디드시스템의 감정에는 범용 하드웨어가 아닌 특수한 목적을 가지는 특정 마이크로프로세서 기반의 마이크로 컨트롤러와 그 주변 장치, 그리고 특정 목적을 위해 설계된 전자 회로로 구성되는 감정대상물인 경우가 많습니다. 이런 경우에는 감정 요청이 소프트웨어에 국한되어 있다하더라도 전체 시스템을 구성하는 컨트롤러의 내장 프로그램의 유사성뿐 만 아니라 하드웨어의 유사성을 동시에 판단해야 합니다.
유사도 감정에서 두 마이크로컨트롤러 시스템의 호환성이 확보되지 않으면 소프트웨어 감정 또는 임베디드 시스템에 대한 감정이 의미가 없어질 수 있습니다. 예를 들면, 바이너리코드가 감정대상이라면 양 시스템에서 OP(명령)코드 간의 호환성이 있는 마이크로프로세서를 모두 사용하고 있어야할 것입니다.
완성도 감정에서는 완성도 여부를 평가하기 위해서는 초기 설계와 그 구현방법이 타당성이 있어야 이후의 설계와 구현의 진행 절차에 대한 감정이 진행될 수 있습니다.
(1)
마이크로 컨트롤러의 설계 방법
특정목적에 사용하기 위하여 마이크로프로세서를 이용한 컨트롤러는 일반적으로 컨트롤러의 전반적인 기능을 구체화하는 컨트롤러 설계 단계, 관련 하드웨어, 소프트웨어의 설계 단계를 거쳐 개발됩니다. 컨트롤러 설계에는 목적을 충족할 수 있는 성능과 규격을 달성하기 위해서 그 동작 원리와 이론적 근거에 통하여 여러가지 방법들을 조합하게 됩니다. 이렇게 제어 기능을 수행하기 위한 구성요소들이 정해지고 하드웨어와 소프트웨어의 각 역할이 정의됩니다.
하드웨어 설계는 일반적으로 구체적인 개별 제어회로의 설계와 이들을 결합하여 전체 제어 동작을 실행할 수 있도록 하는 제어 시스템 설계 단계로 진행됩니다. 개별 제어회로 설계에는 요구되는 기능에 맞는 회로의 설계가 필요한데, 주로 제어 대상에 대한 증폭, 비교와 스위칭을 위한 아날로그 회로들과 이러한 회로의 기준이 되는 각종 기준 전압, 전류 발생 장치들에 대한 설계가 진행됩니다. 제어 시스템 설계단계는 마이크로프로세서를 중심으로 하는 디지털 제어 시스템의 전체 구성을 설계합니다. 여기서는 각 제어기능에 따라 설계된 아날로그 회로와 그 출력결과를 디지털 데이터로 바꾸어주거나 디지털 신호로부터 아날로그 회로에 맞는 신호로 바꾸어주는 AD, DA 컨버터와 각종 제어 신호, 검출 신호를 직접 컨트롤러에 전달하는 인터페이스들이 설계됩니다. 이렇게 구성된 장치를 결합하여 최종 마이크로컨트롤러 시스템을 구성합니다.
제어 소프트웨어는 일반적으로 제어기 설계, 소프트웨어 아키텍처, 코드 구현의 3단계로 구현됩니다. 소프트웨어 아키텍처를 설계하기 위해서는 제어기 설계에서 정해진 각 구성 요소들이 하드웨어와 연동되어 제어 동작을 수행할 수 있도록 각 제어의 흐름을 규정하고 각 구성 요소들이 서로 유기적으로 잘 동작할 수 있도록 상호 작용 등에 대한 규칙을 설정합니다. 마지막으로 코드 구현 단계에서는 정의된 제어 기능이 가능하도록 마이크로프로세서를 탑재한 컨트롤러플랫폼과 하드웨어에 맞도록 프로그램을 구현합니다.
(2)
감정 대상에 대한 분석
하드웨어적 요소에 대해서는 컨트롤러의 전반적인 하드웨어 구조 그리고 세부 제어를 진행하는 각종 부가 회로의 유사성을 검토합니다. 회로의 유사성은 그 동작 원리나 기능이 비슷한 구성 요소를 양 시스템에서 찾아 각 동작 원리, 회로 구성 방법과 사용된 소자의 규격 등을 고려하여 정성적으로 파악하여 그 유사성을 살핍니다. 즉, 회로의 유사성은 정량적인 값으로 나타내기 어려우므로 회로의 각 구성 요소를 기능별로 묶어 몇 개의 영역으로 나누고 회로의 동작원리와 사용 소자의 종류나 소자의 용량 값 등에 대한 유사성을 정성적으로 파악하여 유사성이 있는지의 여부만을 측정하게 됩니다. 개별 소자와 단위 회로망의 구성은 공지의 기술일지라도 그것이 복합적으로 결합되어 특정 기능을 수행하는 회로망을 구성할 경우에는 그 회로망은 특수성이 있는 회로로 볼 수 있습니다.
소프트웨어 부분은 소프트웨어 구조와 프로그램 코드 영역으로 나누어 그 유사 여부를 판단합니다. 소프트웨어 구조에 대한 유사도는 제어동작의 흐름을 판단하기 위해 각 단위 모듈의 제어 요소와 함수 호출 구조를 비교합니다. 일반적으로 제어기의 기본 기능이 동일한 경우라도 각 제어 모듈 내의 제어 흐름과 프로그램의 구조는 각 시스템마다 상당한 차이가 날 수 있습니다. 특히, 기능별 제어모듈 내의 함수호출 구조를 분석하면 그 차이를 명확히 파악할 수 있습니다.
감정 자료에 완전한 실행파일을 생성할 수 있는 부가 정보, 장치의 기능, 제어 동작, 제어대상물에 대한 구체적인 규격서가 있다면 함수의 호출구조를 분석할 수 있고 컨트롤러의 동작의 유사성 및 소프트웨어의 구조적 유사성을 판단하는 데에 비교적 용이합니다. 그러나 그렇지 않다면 컨트롤러의 제어흐름과 해당 함수모듈의 동작을 완전히 파악하기는 어렵습니다.
소프트웨어 구조는 각 함수의 명칭, 전달 인자, 함수 내부변수, 부함수의 호출 등을 통해 제어 흐름을 서로 비교하고 소프트웨어 구조도 비교하여 유사성을 어느 정도 판단할 수 있습니다. 소프트웨어 부분에 대한 공지의 기술 여부는 제출된 소프트웨어의 프로그램 코드의 일부가 널리 알려진 오픈 소스의 범주에 해당하는지 여부를 근거로 판단합니다.
(3)
유사도 측정에 대한 기준
컨트롤러를 구성하는 하드웨어와 소프트웨어의 내용 그리고 제어 동작을 위한 회로 구성을 비교하여 서로 다르다면 유사성 여부를 측정하는 관점에서 두 개의 컨트롤러는 서로 다른 것으로 봐야 하고 유사도도 없는 것으로 볼 수 있습니다.
마이크로 컨트롤러에 대한 감정은 두 컨트롤러 자체의 유사도 비교가 그 대부분을 차지하며, 외적으로 볼 때 제어 동작이 서로 어느 정도 호환성이 있다고 판단되는 컨트롤러의 제어프로그램에 대한 유사도 측정이 직접적인 감정 요구사항이 되는 경우가 대부분입니다. 이 때에 제어 동작은 서로 비슷하더라도 서로 다른 하드웨어 구성을 가지는 마이크로 컨트롤러에 들어있는 소프트웨어에 대한 유사도 비교는 하드웨어의 동일함 또는 등가 변환에 의해 동일한 회로로 변환가능한 경우 등을 제외하면 그 의미가 없는 경우가 많습니다. 따라서 직접적인 유사도 측정의 대상이 임베디드 컨트롤러에 탑재된 프로그램 코드 또는 그에 상응하는 원시 코드라 할지라도 유사도 감정에서는 제어 환경 요소, 하드웨어, 그리고 시스템 소프트웨어, 제어 알고리즘의 기술적 타당성 또는 상호 유사도가 반드시 선행되어야 합니다. 결국 전체 시스템에 대한 유사도 비교를 위해 시스템의 구성 요소인 하드웨어와 소프트웨어의 유사성을 모두 판단해야 합니다.
하드웨어는 그 유사한 정도를 정량적인 값으로 측정하기 어려우므로 회로를 기능별로 묶어 몇 개의 영역으로 나누고 해당 영역에 속하는 회로의 동작 원리와 사용 능동 소자 (IC, 트랜지스터)의 종류나 수동 소자의 용량 값 등에 대한 유사성을 정성적으로 파악해야 합니다. 감정 대상물의 회로 또는 회로도를 바탕으로 일반적인 임베디드 하드웨어의 구성 형식과 설계 단계를 고려하여 크게 아날로그 회로와 디지털 회로의 두 영역을 기준으로 나누고, 각 영역에 포함된 회로를 기능별로 묶어 다시 세부 기능별 영역으로 나누어 각 영역별로 유사성 여부를 파악합니다.
소프트웨어 영역에 대해서는 소프트웨어 구조와 프로그램 코드의 영역에서 각각 유사성을 판단하고 가중치를 고려하여 전체 시스템에 대한 유사도를 검토합니다.
정회목 변호사
댓글 없음:
댓글 쓰기