통상적인 소프트웨어 감정의 경우는 소스 코드 또는 부가 프로그램 코드에 제한하여 그 유사도 또는 완성도의 정도를 확인하는 반면에 임베디드 시스템 또는 임베디드 소프트웨어의 감정에서는 그 범위가 소프트웨어 코드로 국한되지 않고 하드웨어 영역과 그 기능적인 면까지 확대되는 경향이 있습니다. 감정 대상의 영역을 중심으로 나누어 보면 임베디드 시스템의 감정은 다음의 4가지의 형태로 분류될 수 있습니다.
1)
하드웨어 감정 : 하드웨어 설계 언어 프로그래밍 또는 SoC 설계 내역
2)
임베디드 시스템 감정 : 하드웨어와 소프트웨어가 결합된 시스템 전체
3)
플랫폼 탑재 펌웨어 감정 : 사용 하드웨어에 기반을 둔 펌웨어 소프트웨어
4)
응용 소프트웨어 감정 : 통상적인 소프트웨어 감정
1.
하드웨어 감정의 경우는 하드웨어의 설계나 제작이 소프트웨어로 구현된 경우입니다. VHDL 등의 하드웨어 설계 언어를 통해서 제작하고자 하는 임베디드 시스템의 특화된 기능용 하드웨어에 대한 칩의 설계가 구현되어 있는 경우, 코어 또는 칩의 기능을 수행할 수 있는 회로 모듈의 설계 내역을 담은 IP를 통해서 SoC 형태로 임베디드 시스템의 하드웨어가 제작되는 경우 등이 해당합니다. VHDL 등으로 작성된 하드웨어 설계 프로그램은 일반적인 소프트웨어로 동작하는 것이 아니라 하드웨어로 구현하기 위한 회로 정보와 하드웨어가 담게 될 기능을 검증하기 위한 시뮬레이션 정보를 같이 담고 있는 프로그램입니다. 이에 대한 최종 생산물은 마이크로프로세서에 탑재되어 동작하는 실행파일이 아니라 하드웨어 칩 또는 시스템 설계가 됩니다.
SoC를 통해 임베디드 하드웨어를 제작할 때 라이선스를 획득한 여러 코어를 모아 한 개의 칩으로 제작할 경우에 대한 설계 소프트웨어도 이에 해당합니다. SoC의 경우 기능별 코어는 이미 기능의 검증이 끝난 하드웨어 설계가 VHDL의 형태로 제공되나, 여러 코어를 결합하는 과정에서 각 코어가 원활하게 서로 연동하여 잘 동작하는지를 확인하는 통합 절차가 필요합니다.
SoC를 통한 임베디드 시스템의 제작에는 하드웨어의 설계뿐만 아니라 소프트웨어 IP도 동시에 제공받는 경우가 많은데, ARM 코어와 무선 네트워크 공유기의 기능이 있는 네트워크용 코어를 결합하여 단일 칩으로 만드는 경우에 무선네트워크용 코어의 제공자는 최종 시스템에서 탑재될 운영체제에 적합한 네트워크용 코어의 디바이스 드라이버도 함께 제공합니다.
2.
임베디드 시스템 감정은 감정 사항이 소프트웨어뿐만 아니라 하드웨어까지 포함하는 경우입니다. 많은 경우에 임베디드 시스템이 기능을 하기 위해서는 먼저 필요한 센서로부터 정보를 얻어야 하고 제어를 위한 장치를 구동하기 위해 엑츄에이터와의 인터페이스를 가져야 합니다. 이러한 하드웨어 인터페이스 때문에 연동하기 위한 소프트웨어는 하드웨어에 대해서 종속될 수밖에 없습니다. 이렇게 하드웨어 종속성이 강한 소프트웨어의 감정은 통상적으로 하드웨어의 설계에 대한 감정도 함께 진행됩니다. 감정 대상물은 주로 완제품이거나 또는 특정 기능용 모듈의 형태로 존재하며 소프트웨어는 완제품이나 모듈개발을 위한 일부로써 존재합니다. 감정을 위한 증거 제출물은 하드웨어 보드, 시스템 사양서 및 회로도, 소프트웨어 등인 경우가 많으며 소프트웨어가 완전한 소스코드 형태가 아니라 바이너리코드 또는 일부분만 제출되어 컴파일을 통해 바이너리코드와 연계여부와 시스템 내부에서의 동작 여부를 확인할 수 없는 경우가 많습니다.
3.
플랫폼 탑재 펌웨어 감정은 감정 대상물이 휴대 전화 또는 유무선 공유기와 같은 특정 응용에 한정된 시스템에 탑재되는 소프트웨어의 감정인 경우에 해당합니다. 위 임베디드 시스템의 감정과는 다르게 감정 대상물이 하드웨어 영역이 거의 포함되지 않고 소프트웨어만이 그 대상입니다. 이때 플랫폼은 주로 SoC 또는 칩 제조사에서 제공되는 기본 설계를 이용하여 임베디드 시스템의 하드웨어가 구성되기 때문에 하드웨어 설계가 공지의 기술 또는 제3자의 지재권이므로 분쟁의 대상이 될 수 없어 감정 대상에서 제외됩니다.
물론 유사도 비교의 경우 플랫폼 하드웨어의 등가성이나 호환성여부는 검토되어야 합니다. 펌웨어의 개발 과정은 공개소프트웨어와 플랫폼 제공자가 제공하는 소프트웨어를 서로 결합하여 구성하므로 당사자가 창작한 소프트웨어의 비율이 작게 됩니다. 이와 같은 경우에는 소프트웨어의 코드도 중요하지만 개발 노력이 대부분 시스템 구성, 소프트웨어 아키텍처, 다수의 소프트웨어 모듈의 결합, 통합과 검증과 디버깅 작업으로 이루어지는 시스템 통합 작업에 집중됩니다. 동일 칩 세트 또는 동일 플랫폼을 사용할 경우 실제 탑재되는 코드 또는 그것의 소스코드의 유사도는 높을 수밖에 없으므로, 유사도 감정에서 시스템 통합에 대한 고찰도 반드시 포함되어야 합니다.
4.
응용 소프트웨어 감정은 감정 대상물이 일반 프로그램과 마찬가지로 공용화된 플랫폼 또는 컴퓨터, 예를 들어 안드로이드, iOS, Win-CE 등과 같이 임베디드 전용 운영체제를 탑재한 컴퓨터 시스템에서 운용 가능 하도록 만들어진 소프트웨어일 경우입니다. 이러한 소프트웨어는 데스크톱용 프로그램과 그 구조나 소프트웨어 개발 측면에서 거의 유사하며 하드웨어 종속성이 없으므로 일반 소프트웨어와 동일한 감정이 진행됩니다. 다만 임베디드 시스템의 목적이 실시간 동작이 필요한 경우라면 실시간 동작을 위한 소프트웨어 구조에 대한 창작성이 인정될 수 있으므로 실시간 동작을 위한 설계 또는 구현에 대한 내용을 감정 결과에 반영될 수 있습니다.
정회목 변호사
댓글 없음:
댓글 쓰기