의료 소프트웨어 개발 번역

 

의료 소프트웨어 개발 번역에 대해서 알아 보겠습니다(영어번역)

 

의료 소프트웨어 개발 번역

의료 소프트웨어 개발 번역(영어 원본)

The role of embedded software developers has become increasingly important in the innovation of medical technology. Embedded processors used in many medical systems these days need to handle high levels of computational complexity in real-time and at low power. For example, innovative digital signal processors (DSPs) from Texas Instruments (TI) have enabled diagnostic systems that achieve higher resolution image scans and provide caregivers access to key clinical data in real time. This ability to meet the processing constraints of medical systems is not only a function of the inherent parallelism in TI’s KeyStone architecture but also a function of how well software developers are able to leverage its advanced architecture: multiple cores, rapid data paths, high-speed peripherals and other features. To that end, TI has created a solid software development ecosystem to enable the quick and easy development of optimized medical applications that fully utilize TI’s high-performance KeyStone-based system-on-chip (SoC).

Medical Software Development on KeyStone™ Processors
Getting started
A typical development environment consists of a host computer with TI tools installed on it and an Eclipse-based Code Composer Studio™ (CCS) IDE. CCS IDE has been designed as a one-stop shop that allows code editing, simulation and running/debugging on evaluation modules (EVMs), all within a single environment. The host computer and EVM are connected via an emulator that can provide advanced trace and debug capabilities. Instrumentation, profiling and visualization tools are useful features within CCS IDE that can be leveraged by developers to fine-tune their applications. TI’s free Multicore Software Development Kit (MCSDK) incorporates the core software building blocks, including platform software, a real-time operating system SYS/BIOS™, the Linux operating system for ARM®, processors low-level drivers, high-level APIs and algorithm libraries, all in one package. Out-of-box demonstration applications and examples are part of the MCSDK and are a great starting point for developers. These enable developers to learn how to leverage APIs within the MCSDK to create an application that runs on multiple cores and takes advantage of the various hardware features within KeyStone-based processors.
Development tools
With the foundational software building blocks available with the MCSDK, developers can focus their attention on algorithm innovation. Often addressing new clinical needs translates into the research and implementation of novel algorithms that differentiate a medical product and create new intellectual property. A programmable processor, like a DSP, provides innovators the flexibility of trying various approaches in software before deciding on what works best. To give developers a kick start, TI has released multiple algorithm libraries like DSPLIB, MATHLIB and IMGLIB that include commonly-used signal-processing, math and imageprocessing functions optimized for TI’s DSPs. Codecs for many video, audio and speech applications that have been optimized for various TI platforms can be accessed at the TI codec page. For medical imaging developers, there is the Software Toolkit for Medical Imaging (STK-MED), which includes optimized building blocks for ultrasound and optical coherence tomography applications. These include functions for B-Mode processing, Doppler signal processing, scan conversion, cubic spline interpolation, FFT and IFFT, and magnitude and log computation. Since the algorithm source code is available as part of STK‐MED, developers are able to easily extend these functions to create customized modules to differentiate their medical systems.

Testing and validating
Software developers also play a critical role in collecting validation data for the 510(k) or PMA submission to the Food and Drug Administration (FDA) for device clearance or approval. In medical-imaging systems, for example, developers may need to prove the accuracy and integrity of each signal-processing block, showing that the device’s final image output is accurate and bit-exact to the expected output. TI’s STK-MED incorporates test projects and reference test vectors for the included algorithms. These projects showcase an example for developers using TI’s CCS environment and integrated software tools to design their own validation tests for output accuracy and performance profiling.

Debug and trace tools can also be very useful in the testing and validation phase, and throughout the software development life cycle. For TI’s KeyStone-based processors, the CToolsLib provides the ability to do core trace and system trace. Core trace provides program counter and instruction timing and the ability to monitor core memory accesses and core events for the DSP. System trace provides multicore application instrumentation, including core visibility and processing relative to the entire system, as well as correlation between traces. The fault management library enables applications to store DSP register data upon any fault detection. The Multicore System Analyzer, which is integrated into CCS IDE, can also be used as a real-time tool to analyze, visualize and profile application performance and behavior.
System-level implementation
Once algorithms have been implemented, the next step is to integrate them together in a system-level implementation that maps the complete signal chain on the target embedded device. Resource management, inter-processor communication and data movement techniques are some of the important considerations during this stage. TI provides software components for its KeyStone-based SoCs that can be used to achieve these goals. Some of these include the resource management low level drivers (LLDs), inter-processor communication (IPC) package and enhanced direct memory access LLD, which are part of the MCSDK, as well as the framework components library with its Codec Engine interface that allows algorithms to easily plug-and-play together. Developers might also want to leverage high-speed interfaces like PCI Express, HyperLink, Gigabit Ethernet or Serial RapidIO® (SRIO) to move data across devices. They can also leverage the Multicore Navigator to transport data between dedicated memories within a device. Again the MCSDK incorporates relevant LLDs and usage examples for each of these peripherals.
To appreciate the scalability and ease-of-use of these software components, let’s look at the IPC software package as an example. IPC APIs enable communication between threads that either run on the same core, on different cores or on different devices. There are various possibilities with IPC transports: for communication between cores that reside on the same device there’s either shared memory transport or navigator transport. For communication between cores across two devices one might want to use the SRIO interface. What’s great about IPC from the developer’s perspective is the ability to use the same set of APIs irrespective of the transport underneath. In a heterogeneous system like TI’s KeyStone II family, with ARM on one side and DSP on the other side, IPC APIs can be used on the DSP side, and corresponding APIs can be used on the ARM side.
How developers leverage each core and map functions within a multicore embedded device is another aspect of system-level implementation. Two typical models are functional parallelization and data parallelization. To explain the difference, let’s use ultrasound and optical coherence tomography as examples. For an ultrasound system’s mid-end processing, one might choose to implement B-mode processing on one DSP core, Doppler processing on another DSP core, scan conversion on a third DSP core and provide display and user interface functionality via an ARM core. This corresponds to a functional parallelization strategy. In the case of optical coherence tomography, each frame of input data could be sliced and divided across multiple DSP cores and processed through the same set of algorithms: background subtraction, resampling, FFT,
TI’s Medical Imaging Demo Application Starter (MIDAS) software package implements the ultrasound and optical coherence tomography signal chain described above on TI’s KeyStone-based C6678 processor. MIDAS leverages the algorithm modules from STK-MED and uses the MCSDK and other software components to realize a system-level implementation that meets real-time constraints. This serves as a great reference for developers to see an example of how medical algorithms can be integrated together to realize a complete signal processing flow on TI’s embedded processors. (See Figure 2.)

의료 소프트웨어 개발 번역(한국어 번역본)

의학 테크놀로지의 혁신에서 임베디드 소프트웨어 개발자의 역할이 매우 중요해졌습니다. 오늘날 다양한 의학 시스템에 사용되는 임베디드 프로세서는 고난위의 계산 복잡도를 낮은 전력에 실시간으로 처리해야 합니다. 예를 들어, 텍사스 인스투루머트(TI)사의 혁신적인 디지털신호처리기(DSP)를 통해 진단 처리시스템의 더 높은 해상도 이미지 스캔이 가능해졌고 환자를 돌보는 사람들은 실시간으로 주요 임상 데이터를 제공받을 수 있게 되었습니다. 의료 시스템의 프로세싱 제약을 뛰어넘는 이 기술은 TI의 키스톤 아키텍쳐의 내재 병렬성 기능일 뿐만 아니라 이를 통해 소프트웨어 개발자들은 TI의 고급 아키텍쳐 (다중 코어, 급속 데이터 패스, 고속 주변기기 등)를 잘 활용할 수 있습니다. TI는 튼튼한 소프트웨어 개발 에코시스템을 구축하여 TI의 고성능 키스톤기반 시스템온칩(SoC)을 십분 활용한 최적의 의료 애플리케이션을 빠르고 쉽게 개발할 수 있도록 하였습니다.
키스톤 프로세서™를 활용한 의료 소프트웨어 개발
키스톤 프로세서™를 활용한 의료 소프트웨어 개발
시작하기
일반적으로 개발환경은 TI 툴이 설치된 호스트 컴퓨터와 이클립스 기반의 코드 컴포저 스튜디오™ (CCS) IDE로 구성되어 있습니다. CCS IDE는 코드 편집, 시뮬레이션, 평가 모듈 (EVMs)상의 러닝/디버깅이 가능한 원스톱 숍입니다. 호스트 컴퓨터와 EVM은 향상된 트레이스 및 디버깅 기술을 제공하는 에뮬레이터를 통해 연결됩니다. 인스트루먼테이션 프로파일링과 비주얼 툴은 개발자들이 애플리케이션을 미세 조정할 수 있는 CCS IDE내의 유용한 성능입니다. TI의 무료 멀티코어 소프트웨어 개발 키트(MCSDK)는 플랫폼 소프트웨어, 실시간운영시스템 SYS/BIOS™, ARM®을 위한 리눅스 운영 시스템, 프로세서 로우레벨드라이버, 하이레벨 API와 알고리즘 라이브러리 등의 코어 소프트웨어 빌딩 블록 모두를 한 패키지에 담았습니다. 독창적인 데모 애플리케이션과 예제는 MCSDK의 일부이며 개발자들에게 굉장히 훌륭한 시작점입니다. 이를 통해 개발자들은 MCSDK내의 API를 활용하여 멀티코어에서 구동되는 애플리케이션을 만들 수 있고 키스톤기반 프로세서의 다양한 하드웨어 기능의 혜택을 누리실 수 있습니다.
개발 툴
MCSDK와 기본적 소프트웨어빌딩블록으로 개발자들은 알고리즘 이노베이션에 치중할 수 있습니다. 새로운 임상 요구를 충족하는 과정에서 리서치 및 의료 제품을 차별화하는 노블 알고리즘의 실행을 개발하고 새로운 지적재산을 창출합니다. 디지털신호처리기(DSP) 같이 프로그래밍 가능한 프로세서를 통해 이노베이터는 소프트웨어에 다양히 접근하여 최적의 소프트웨어를 찾을 수 있습니다. 개발자들의 킥 스타트를 위해 TI는 널리 사용되는 시그널 프로세싱, 수학, TI의 디지털신호처리기(DSP)에 최적화된 이미지프로세싱 기능을 포함한 DSPLIB, MATHLIB, IMGLIB 같은 멀티플 알고리즘 라이브러리를 출시했습니다. TI 코덱 페이지에서 다양한 TI 플랫폼에 최적화된 여러 비디오, 오디오, 스피치 애플리케이션의 코덱들을 만나볼 수 있습니다. 메디컬이미징개발자들은 메디컬 이미징을 위한 소프트웨어 툴키트(STK-MED)를 이용하여 초음파 및 광간섭단층촬영 애플리케이션에 최적화된 빌딩 블록을 이용할 수 있습니다. 모드 프로세싱, 도플러 시그널 프로세싱, 주사 변환, 큐빅 스플라인 보간법, FFT 및 IFFT, 매그니튜드 및 로그 컴퓨테이션 기능 등을 이용할 수 있습니다. STK-MED의 일부로 알고리즘 소스 코드를 사용할 수 있기 때문에 개발자들은 이런 기능들을 쉽게 확장하여 맞춤형 모듈을 만들어 의학 시스템을 차별화 할 수 있습니다.
테스팅 및 확인
소프트웨어 개발자들은 또한 510(k) 혹은 PMA 서브미션에 관한 확인 데이터를 수집하여 미국 식품의약국(FDA)의 디바이스 클리어런스나 허가를 받는 데 중요한 역할을 합니다. 예를 들어 메디컬이미징시스템은 디바이스의 마지막 이미지 산출이 정확하고 예상된 산출에 거의 근접하다는 사실 증명을 위해 시그널 프로세싱 블록 각각의 정확성과 정밀성을 입증해야 합니다. TI의 STK-MED는 포함된 알고리즘을 위한 테스트 프로젝트와 레퍼런스 테스트 벡터를 내포합니다. 이들 프로젝트는 개발자들이 TI의 CCS 환경 및 통합된 소프트웨어 툴을 사용하여 산출 정확도 및 성능 분석을 위해 고유의 확인 테스트를 설계하는 사례를 선보였습니다.
디버그 및 트레이스 툴은 또한 테스팅 및 확인 과정, 소프트웨어 개발 생명 주기 과정에 매우 유용할 수 있습니다. TI의 키스톤 기반 프로세서의 경우, CToolsLib은 코어 트레이스 및 시스템 트레이스가 가능합니다. 코어 트레이스는 프로그램 카운터, 인스트럭션 타이밍, 디지털신호처리기(DSP)를 위한 코어 메모리 접근 및 코어 이벤트를 모니터 할 수 있는 기술을 제공합니다. 시스템 트레이스는 트레이스간의 상관성 및 전체 시스템에 연관된 코어 비지빌리티 및 프로세싱을 포함한 멀티코어 애플리케이션 인스투루먼테이션을 제공합니다. 장애관리 라이브러리를 통해 애플리케이션은 DSP 레지스터 데이터를 어느 폴트 디텍션에든지 저장할 수 있습니다. CCS IDE에 통합된 멀티코어 시스템 아날라이저는 또한 애플리케이션 성능 및 구동을 실시간으로 분석하고 시각화하며 프로파일할 수 있습니다.
시스템 수준 구현
알고리즘이 실행되면 다음 단계는 이 둘을 시스템 수준 구현 내에 통합하여 타겟 임베디드 디바이스에 완전한 시그널 체인을 연결시키는 것입니다. 리소스 매니지먼트, 인터프로세서 커뮤니케이션 및 데이터 이동 기술은 이 단계에서 가장 중요한 사항입니다. TI는 키스톤기반 SoC에 소프트웨어 컴포넌트를 제공하여 위 작업들을 실현합니다. 리소스매니지먼트로우레벨드라이버(LLDs), 인터프로세서커뮤니케이션(IPC) 패키지 및 MCSDK의 일부인 향상된 디렉트메모리어세스 LLD 및 알고리즘이 쉽게 플러그앤드플레이될 수 있도록 도와주는 코덱 엔진 인터페이스와 프레임워크 컴포넌트 라이브러리 등이 작업의 예입니다. 개발자는 또한 PCI 익스프레스, 하이퍼링크, 기가비트 이터넷 혹은 데이터를 다른 디바이스로 옮길 수 있는 시리얼 RapidIO® (SRIO) 같은 고속 인터페이스를 활용할 수 있습니다. 뿐만 아니라 멀티코어 네비게이터를 활용하여 디바이스 내에서 전용 메모리 사이에 데이터를 전송할 수 있습니다. MCSDK는 또 각각 주변기기들을 위한 관련 LLD 및 사용예제를 포함합니다.
이 소프트웨어 컴포넌트들의 범위성과 사용의 편리성을 살펴보기 위해 IPC 소프트웨어 패키지를 예로 들어보겠습니다. IPC API는 같은 코어나 다른 코어 혹은 다른 디바이스 상의 스레드 사이의 커뮤니케이션이 가능합니다. IPC전송은 다양한 방식으로 가능합니다. 공유 메모리 전송 혹은 네비게이터 전송을 통해 동일 디바이스 상에 존재하는 코어 간의 커뮤니케이션이 가능합니다. 두 디바이스 사이에 코어간 커뮤니케이션을 원한다면 SRIO 인터페이스를 사용하면 됩니다. 개발자 입장에서 IPC가 훌륭한 이유는 바로 하위 전송과 상관 없이 같은 API를 사용할 수 있다는 점입니다. TI의 키스톤 II 패밀리같이 한 쪽엔 ARM 그리고 다른 쪽에는 DSP를 둔 이질시스템에서는 IPC API가 DSP 쪽에서 사용될 수 있고 해당 API는 ARM 쪽에 사용될 수 있습니다.
개발자가 멀티코어 임베디드 디바이스 내에서 각각의 코어를 활용하고 기능을 연결할 수 있다는 점은 시스템 수준 구현의 또 다른 장점입니다. 대표적 모델로는 기능적 병렬화와 데이터 병렬화가 있습니다. 차이점 설명을 위해 초음파와 광간섭단층영상을 예로 들어보겠습니다.
초음파 시스템의 미드엔드 프로세싱을 위해 여러분은 한 DSP 코어에서 B모드 프로세싱을 실행하고 다른 DSP 코어에서는 도플러 프로세싱을 실행하며, 세 번째 DSP 코어에는 주사변환을 사용하고 ARM 코어를 통해 디스플레이 및 유저 인터페이스를 사용할 것입니다. 이는 기능적 병렬화 전략에 해당합니다. 광간섭단층영상의 경우에는 각각의 입력 데이터 프레임이 여러 DSP 코어에 걸쳐 잘라지고 나뉘어지며 같은 알고리즘 세트(배경제거, 리샘플링, FFT, 각각 코어에 구동되는 강도 계산 및 로그 압축)를 통해 처리됩니다. 이것이 데이터 병렬화의 예입니다.
TI의 메디컬 이미징 데모 애플리케이션 스타터 (MIDAS) 소프트웨어 패키지는 위에 묘사된 초음파 및 광간섭 단층 영상 시그널 체인을 실행합니다. MIDAS는 STK-MED로부터 알고리즘 모듈을 활용하고 MCSDK와 다른 소프트웨어 컴포넌트를 사용하여 실시간 제약을 뛰어넘는 시스템 수준 구현을 실현합니다. 이를 통해 개발자는 알고리즘을 함께 통합하여 TI 임베디드 프로세서에서 완전한 시그널 프로세싱 플로우를 실현할 수 있습니다. (그림2를 참조하세요.)

.

이상 텍사스 인스트루먼트에서 의뢰한 의료 소프트웨어 개발 번역(영어번역)의 일부를 살펴 보았습니다. 
번역은 기버 번역