WO2015137543A1 - 소프트웨어 기반의 초음파 이미징 시스템 - Google Patents

소프트웨어 기반의 초음파 이미징 시스템 Download PDF

Info

Publication number
WO2015137543A1
WO2015137543A1 PCT/KR2014/002198 KR2014002198W WO2015137543A1 WO 2015137543 A1 WO2015137543 A1 WO 2015137543A1 KR 2014002198 W KR2014002198 W KR 2014002198W WO 2015137543 A1 WO2015137543 A1 WO 2015137543A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
channel
host
region
end unit
Prior art date
Application number
PCT/KR2014/002198
Other languages
English (en)
French (fr)
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 CN201480077182.0A priority Critical patent/CN106102584B/zh
Priority to EP14885705.5A priority patent/EP3117774B1/en
Priority to US15/125,805 priority patent/US10420536B2/en
Priority to PCT/KR2014/002198 priority patent/WO2015137543A1/ko
Priority to JP2016574881A priority patent/JP2017508582A/ja
Priority to KR1020167001589A priority patent/KR101911734B1/ko
Publication of WO2015137543A1 publication Critical patent/WO2015137543A1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/56Details of data transmission or power supply
    • A61B8/565Details of data transmission or power supply involving data transmission via a network
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/44Constructional features of the ultrasonic, sonic or infrasonic diagnostic device
    • A61B8/4483Constructional features of the ultrasonic, sonic or infrasonic diagnostic device characterised by features of the ultrasound transducer
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/52Devices using data or image processing specially adapted for diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/5207Devices using data or image processing specially adapted for diagnosis using ultrasonic, sonic or infrasonic waves involving processing of raw data to produce diagnostic data, e.g. for generating an image
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/52017Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00 particularly adapted to short-range imaging
    • G01S7/52079Constructional features
    • G01S7/52082Constructional features involving a modular construction, e.g. a computer with short range imaging equipment
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B8/00Diagnosis using ultrasonic, sonic or infrasonic waves
    • A61B8/46Ultrasonic, sonic or infrasonic diagnostic devices with special arrangements for interfacing with the operator or the patient
    • A61B8/461Displaying means of special interest

Definitions

  • This embodiment relates to an ultrasonic imaging system. More specifically, it relates to a software-based ultrasound imaging system that improves data transfer, memory access, and the like.
  • the ultrasound imaging system is widely used in the medical field for obtaining information inside the object by using a reflection signal inside the object on which the ultrasound is projected.
  • Ultrasound imaging systems are complex electronic systems that require multichannel ultrasound signal acquisition and real-time processing.
  • digital beamforming is the most computationally intensive functional block in ultrasonic imaging systems, and has been traditionally designed with hard-wired structures (eg, ASICs, FPGAs).
  • parallel-core processors such as General-Purpose GPU (GPGPU), and Many Integrated Core (MIC) attempts have been made to implement these functions as software. have.
  • This software-based ultrasound imaging system processes ultrasound data obtained in real time using a host device based on an operating system that operates in essentially non-real time. Design is important.
  • the present embodiment has a main object to provide a software-based ultrasound imaging system and a method for generating an ultrasound image using the same, which improves data transmission, a memory approach, and the like.
  • the bus data when transferring channel data from the front end unit to the host PC, is transferred to the system memory of the host PC without additional memory through bus mastering of the data bus. Send directly.
  • the destination address of the data for each channel is controlled so that the channel data is stored in the system memory in the order of the transducer elements.
  • the host PC pages-locks some area of the system memory and transfers channel data directly to the area where the front end unit is page-locked.
  • the address information of the page-locked area is linked to the front end unit and the parallel core processor, thereby allowing simultaneous access of the front end unit and the GPU.
  • the host PC can page-lock some other area of system memory and use it to store the output of any one of the image generation processes for the channel data.
  • the host PC can use the page-locked areas of system memory as cine memory.
  • the host PC uses the multi-threaded processing scheme of the parallel core processor in performing at least one subprocess of the processes for forming the ultrasound image.
  • the parallel core processor in order to increase the processing speed of the parallel core processor, when copying the data between the system memory and the local memory of the parallel core processor, the data is divided and copied by asynchronous transmission, but the data copying and data processing are overlapped. use.
  • an ultrasonic diagnostic apparatus including a front end unit electrically connected to a transducer and a host PC processing channel data received from the front end unit via a data bus, wherein the host PC Includes a system memory, one or more parallel core processors, and a central processing unit (CPU) to page-lock a region (hereinafter referred to as a 'first region') in the system memory;
  • the front end unit transmits the channel data to the first region in a direct memory access (DMA) manner, and the parallel core processor accesses the first region in a DMA manner to generate an ultrasound image.
  • DMA direct memory access
  • an A / D converter for converting the RF signal transmitted in real time from the transducer into a digital signal, and the output of the A / D converter Buffer data buffered for each channel and data per channel buffered in the buffer memory in a round-robin manner to generate a data packet with a maximum payload size of a data bus, Regardless, a front end unit including a processing circuit for transmitting to a page-locked area on the system memory of the host PC is provided.
  • the host PC of the ultrasonic diagnostic apparatus including a front end unit electrically connected to the transducer, and a host PC for processing channel data received from the front end unit via a data bus. And a main memory (Central Processing Unit) for page-locking a system memory, at least one parallel core processor, and a predetermined area (hereinafter referred to as a 'first area') in the system memory.
  • the front end unit transmits the channel data to the first region in a direct memory access (DMA) manner, and the parallel core processor accesses the first region in a DMA manner to generate an ultrasound image.
  • DMA direct memory access
  • an ultrasound diagnostic apparatus including a front end unit electrically connected to a transducer and a host PC for processing channel data received from the front end unit via a data bus generates an ultrasound image.
  • the host PC page-locks a certain area of the system memory (hereinafter referred to as 'first area'), and the front end unit acquires the channel data using the transducer.
  • Direct Memory Access DMA Direct Memory Access
  • a computer-readable recording medium storing instructions, when executed in a computer including a system memory, a central processing unit (CPU) and a parallel core processor, causes the computer to execute.
  • Page-lock a predetermined area of the system memory (hereinafter referred to as a 'first area'); Performing a process for generating an ultrasound image for channel data transmitted in a direct memory access (DMA) manner to the first region from a front end unit connected via a data bus;
  • Computer-readable instructions including instructions for causing the parallel core processor to approach the first region in a DMA manner to perform at least some of the processes for generating an ultrasound image in a multi-thread processing manner; Provides a possible recording medium.
  • DMA direct memory access
  • the present embodiment provides a method and architecture for efficiently transmitting, processing, and storing channel data in a software-based ultrasound imaging system.
  • the front-end unit directly transfers channel data to system memory through bus mastering without involvement of the CPU on the host PC, thereby minimizing time delay due to data transfer.
  • the sample values for each channel are stored in a sorted form in the order of the transducer elements, thereby increasing the coalescing of the data and thus the channel at the host PC.
  • the data is divided and transmitted by asynchronous transmission, but the data transmission and data processing are overlapped to be performed at the same time, thereby completely hiding the latency of the data copy after the operation of the GPU. .
  • the GPU may be more efficiently used in the process of reconstructing the ultrasound image by loading a previously stored data file into the page-locked space of the system memory.
  • FIG. 1 is a block diagram schematically illustrating an ultrasonic imaging system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram schematically illustrating a configuration of a front end unit according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a channel data transmission method of a front end unit according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an arrangement of channel data stored on a system memory of a host PC.
  • FIG. 5 is a block diagram schematically illustrating a configuration of a host PC according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating a data copying and processing method of a GPU according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an ultrasonic data processing method of a host PC when operating in real time according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating a real-time operating method of the ultrasonic imaging system according to an exemplary embodiment of the present invention.
  • FIGS. 9A and 9B are diagrams illustrating an ultrasonic data processing method of a host PC when operating in non-real time according to an embodiment of the present invention.
  • FIGS. 10A and 10B are flowcharts illustrating an ultrasound data processing method of a host PC when operating in non-real time, according to an embodiment of the present invention.
  • FIG. 1 is a block diagram schematically illustrating an ultrasonic imaging system according to an embodiment of the present invention.
  • the ultrasound imaging system is electrically connected to the ultrasound transducer 110 and the display device 140.
  • the ultrasound imaging system includes a front end unit 120 and a host PC 130.
  • the front end unit 120 generates an electrical driving signal to be applied to the ultrasonic transducer based on the control signal transmitted from the host PC 130.
  • the ultrasonic transducer 210 is used to transmit an electrical driving signal provided by the front end unit 120 to an object by converting the ultrasonic signal, and receives the reflected signal of the ultrasonic signal transmitted from the object to generate an electrical signal (that is, , RF signal).
  • RF' is a term commonly used in the art, which means the frequency of ultrasonic waves (typically 0.5 to 100 Mhz), but the rights of the present invention are not limited by this expression.
  • an ultrasonic transducer includes hundreds (eg, 128 and 256) elements.
  • the RF signal may be acquired for each scan line or may be obtained on a frame basis using plane waves or divergence waves.
  • the RF signal may be used to generate a 2D or 3D image of the ROI in the object.
  • the front end unit 120 converts an RF signal, which is an analog signal, into a digital signal, and transmits the converted digital signal to the host PC 130 through bus mastering for a data bus (eg, a PCI Express bus).
  • DMA transfers to the system memory.
  • RF signals are low-pass filtering, anti-alias filtering, pulse compression, and band-pass filtering before or after they are converted to digital signals. ), IQ demodulation, decimation, etc. may be applied, but even in this case, the minimally processed ultrasound data is stored in the system memory.
  • the front end unit 120 may be implemented in the probe or host PC 130 in a variety of ways, or may be configured independently of them.
  • the front end unit 120 may be implemented in the probe by a board-to-board (BTB) connection, and may be inserted into a main board of the host PC 130 in a plug-in manner.
  • BTB board-to-board
  • the front end unit 120 may be located outside the host PC 130 and connected to the host PC 130 through a data bus.
  • the host PC 130 controls the front end unit 120 to acquire ultrasound data, and process the acquired ultrasound data to drive software used to generate an ultrasound image.
  • the ultrasonic imaging system having the above-mentioned configuration simplifies the front end unit composed of dedicated hardware, while easily modifying the software to easily apply a new mode or a new beamforming method in addition to well-known modes such as B mode and M mode. can do. That is, before and after the development of the ultrasound imaging system, portions of the software can be easily modified to meet the various requirements of the user. As a result, the development of the ultrasonic imaging system is easy, and the function expansion of the ultrasonic imaging system is easier.
  • FIG. 2 is a block diagram schematically illustrating a configuration of a front end unit according to an embodiment of the present invention.
  • the front end unit 120 includes a transmitter 210, a receiver 220, and a front end processing circuit 230.
  • the front end unit 120 may further include other components according to its function, but a description of a configuration that may obscure the gist in describing a data transmission method to a host PC, which is one of the features of the present invention. Will be omitted.
  • the transmitter 210 generates an electric driving signal to be applied to the transducer 110 based on the control signal transmitted from the host PC 130 through the front end processing circuit 230.
  • the transmitter 210 is illustrated as being included in the front end unit 220, but may be configured independently of the front end unit 220.
  • the receiver 220 may include a receiver circuit, N A / D converters, and N buffer memories.
  • the reflected signal Echo from the object is converted into an electrical signal (ie, an RF signal) in the transducer 110, and the receiving circuit receives the RF signal from the transducer 110.
  • the A / D converter is used to convert an analog RF signal, which is an output of a receiving circuit, into a digital signal.
  • the digital signal i.e., the sample value per channel
  • the digital signal i.e., the sample value per channel
  • the front end processing circuit 230 obtains address information regarding the page-locked area on the system memory from the host PC 130 connected through the data bus.
  • the address information may be a physical address of the page-locked region or a virtual address mapped to the physical address, that is, a logical address.
  • the front end processing circuit 230 directly transmits channel-specific sample values buffered in the buffer memory 223 to the system memory of the host PC 130 through bus mastering for the data bus. That is, the front end processing circuit 230 uses DMA technology.
  • the data bus may use an appropriate high speed bus technology that can guarantee real time transmission.
  • the data bus 550 may be implemented as a PCI Express (PCI-E) bus.
  • the front end processing circuit 230 includes a DMA controller for DMA transfer of channel-specific sample values buffered in the buffer memory to the system memory of the host PC 130 via the data bus, and to the buffer memory.
  • the control unit may control to perform DMA transfer to the DMA controller when the sample values of a predetermined size are buffered.
  • the front end unit 120 may include low-pass filtering, anti-alias filtering, and pulse compression before or after converting the RF signal into a digital signal. Pre-processing such as pulse compression, band-pass filtering, IQ demodulation, and decimation may be performed. Accordingly, data transmitted to the system memory of the host PC 130 may have various formats according to a pre-processing method performed by the front end unit 120. For example, when the front end processing circuit 230 is configured to perform IQ demodulation, baseband demodulated IQ data may be transmitted to the system memory.
  • 'channel data' data transmitted to the system memory of the host PC will be referred to as 'channel data'.
  • FIGS. 3 and 4 is a diagram illustrating a channel data transmission method of a front end unit according to an exemplary embodiment of the present invention
  • FIG. 4 is a diagram illustrating an arrangement of channel data stored on a system memory of a host PC.
  • the channel-specific sample values which are outputs of the A / D converter, are buffered in the buffer memory for each channel of the receiver 220 in the FIFO method.
  • the front end processing circuit 230 generates a data packet in a round-robin manner for each channel buffer and transmits the data packet to the system memory of the host PC 130. That is, data packets are sequentially generated for each channel.
  • the front end processing circuit 230 generates a data packet based on Max_Payload_Size determined according to the protocol of the data bus, and transmits the data packet generated to a destination address of each channel in the system memory.
  • the front end processing circuit 230 obtains address information regarding the page-locked area on the system memory from the host PC 130 in advance.
  • the address information may be a physical address of the page-locked region or a virtual address mapped to the physical address, that is, a logical address.
  • the front end processing circuit 230 allocates a destination address where sample values included in each data packet are stored.
  • the destination address is assigned such that sample values are stored in a contiguous address space for each channel.
  • the destination address for each channel is allocated to be stored in order from the start index of the memory array, and to be returned to the first index part at the last index and stored again from the first area (ie, stored in a circular manner).
  • the channel data is stored in the system memory in a sorted form for each channel (or element) upon transmission.
  • sample values of respective channels in the longitudinal direction and sample values of the same channel in the transverse direction are sequentially recorded in the address space on the system memory.
  • the channel data is stored in a contiguous memory address space for each channel.
  • the above transmission method and the channel data storage form in the system memory according to the above increase the coalescing of the data, thereby improving the efficiency of memory access during the operation of the channel data in the host PC 130, for example, the beamforming operation. Let's do it.
  • FIG. 5 is a block diagram schematically illustrating a configuration of a host PC according to an embodiment of the present invention.
  • the host PC 130 may include a central processing unit (CPU) 510, a graphics processing unit (GPU) 520, and a GPU memory. 525, system memory 530, and bridge chip 540.
  • CPU central processing unit
  • GPU graphics processing unit
  • bridge chip 540 system memory 530
  • the host PC 130 may further include other components according to its function, a description of a configuration that may obscure the gist in describing a method of processing channel data, which is one of the features of the present invention, will be described. It will be omitted.
  • the following configuration of the host PC 130 is only an exemplary embodiment of the present invention, the configuration of the host PC 130 used in the practice of the present invention is not limited to the illustrated configuration.
  • the bridge chip 540 is electrically connected to the front end unit 120 via the data bus 550.
  • the bridge chip 540 is electrically connected to the CPU 510, the system memory 530, and the GPU 520.
  • the bridge chip 540 may be, for example, a north-bridge chip, and may include various I / O devices (eg, one or more mass storage devices such as hard disk drives, human-machine interface devices, communication adapters such as Ethernet adapters, CDs). -Can support expansion buses for connecting ROMs, DVDs, etc.).
  • the data bus may use an appropriate high speed bus technology capable of transmitting channel data in real time.
  • the data bus 550 may be implemented as a PCI Express (PCI-E) bus.
  • PCI-E PCI Express
  • the CPU 510 may be a processor, such as those manufactured by Intel Corporation or other suppliers, which are well known to those skilled in the art.
  • System memory 530 may be a number of Dynamic Random Access Memory (DRAM) devices.
  • GPU 520 may be disposed on a graphics card, while CPU 510 and system memory 530 may be located on the motherboard of host PC 130.
  • the graphics card including the GPU 520 is typically a data printed circuit board (PCB) to which the GPU 520 is attached.
  • PCB data printed circuit board
  • GPU 520 may be included in a motherboard.
  • the illustrated host PC 130 may include a plurality of GPUs. These GPUs may each be located on separate graphics cards, and in some embodiments some GPUs may be located on the motherboard.
  • a GPU is largely composed of multiple streaming multi-processors and off-chip memory, and a streaming multiprocessor includes a plurality of stream processors and an on-chip memory. Memory).
  • the bridge chip 540 is illustrated as being electrically connected to the CPU 510, the GPU 520, and the system memory 530, but in some embodiments, the host PC 130 may be connected to the host PC 130.
  • GPU 520 is electrically connected directly to CPU 510 and memory 530, and GPU 520 is configured to be electrically connected to front end processing circuit 230 directly via data bus 550. Can be.
  • the CPU 510 and the GPU 520 of the host PC 130 may be designed in a single die to be configured as a single chip integrated type in which the system memory 530 is shared. Can be. This configuration has advantages in terms of latency, data processing speed, and the like.
  • a General Purpose GPU GPU
  • MIC Multiple Integrated Core
  • the CPU 510 of the host PC 130 controls the front end unit 120 to obtain channel data, and the channel data in real time or non-real time (eg, cine loop) using the GPU.
  • the software is then used to process and generate an ultrasound image.
  • the CPU 510 controls the operations of the transmitter 210 and the receiver 220 through the front end processing circuit 230 so that the front-end unit 120 uses the transducer 110 to channel data. Control to obtain.
  • the CPU 510 controls the GPU 520 to perform a process for forming an image in a multi-threaded manner on the acquired ultrasound scan data in order to generate the ultrasound image data.
  • the system memory 530 is configured to page-lock a memory block (first area) 531 of a certain size by the CPU 510 to store channel data received from the front end unit 120. do. That is, paging is prohibited in the first area 531 in which the channel data is stored, and the corresponding memory space always exists only in the system memory. Page-locked memory is sometimes referred to as pinned memory.
  • the system memory 530 may be page-locked by another memory block 532 having a predetermined size.
  • the second region 532 stores data in which additional processing such as beamforming is performed on the channel data stored in the first region (ie, beamformed data, I / Q data, etc.).
  • another memory block of the system memory 530 may store software executed by the CPU 510.
  • the CPU 510 may include a first area, which is a page-locked memory block, required for the front-end processing circuit 226 to store channel data in the system memory 530 in a direct mom access (DMA) manner. Address information relating to 531 is provided to the front-end processing circuit 226. In addition, the CPU 510 provides the GPU 520 with address information of the first area 531 necessary for the GPU to acquire channel data stored in the first area 531 of the system memory 530 in a DMA manner. . In addition, the CPU 510 provides the GPU 520 with address information of the second area required to store a result of the GPU performing processing on the channel data.
  • DMA direct mom access
  • the front-end processing circuit 226 and the GPU 520 based on the address information of the first area 531 obtained from the CPU 510, without the intervention of the CPU 510, the page-locked first area You can access at the same time.
  • the address information may be a physical address of the page-locked region or a virtual address mapped to the physical address, that is, a logical address.
  • page-locked memory allows for faster memory access than pageable memory. That is, the front end unit 120 and the GPU 520 can DMA access the page-locked memory without CPU intervention, thereby eliminating the need for additional data copying and operation such as data copying to the CPU buffer.
  • FIG. 6 is a diagram illustrating a data copying and processing method of a GPU according to an embodiment of the present invention.
  • the host PC may selectively process only some of the channel data stored in the first area on the system memory.
  • the ultrasound imaging system can use the maximum available pulse repetition frequency (PRF) to obtain sufficient channel data beyond the real-time processing capability of the host PC on the first area of the system memory.
  • PRF pulse repetition frequency
  • the host PC selectively processes only a part of the host PC instead of processing all the channel data acquired on the first area of the system memory in order to maintain the real time processing.
  • channel data beyond the real-time processing capability of the host PC can be effectively utilized in non-real time operation. That is, in a cine loop operation where the host PC has (almost) no real time processing or frame rate restriction, all host data stored on the first area of the system memory, or at least a greater amount of channel data than real time processing, are received. Can be processed.
  • GPUs are used to perform digital beamforming, the most computationally intensive function in ultrasonic imaging systems. Since the GPU used to perform the image forming process is a multi-core parallel processing unit, each step of the image forming process can be divided into a plurality of subprocesses, and the subprocesses can be assigned to different cores and processed simultaneously. have.
  • the data In order to process data on system memory using the GPU, the data must be copied to the GPU's off-chip memory (Global Memory). Once data is copied from system memory to the global memory of the GPU, multiprocessors within the GPU access the data on the global memory for processing.
  • data copy from the system memory to the global memory of the GPU has a high latency, which is due to the limited bandwidth of the data bus. For example, a PCI-E 2.0 ⁇ 16 bus is limited to a maximum bandwidth of 8GB / s. The same high latency is also a problem when transferring the results processed by the GPU to system memory.
  • the GPU does not start the operation after copying the entire data (e.g., data constituting a scan line or frame) from system memory to the local memory (global memory) of the GPU. Rather, the entire data is divided into blocks (see (b) of FIG. 6), and the copying and operation of the divided blocks are overlapped. That is, as illustrated in (c) of FIG. 6, the operation starts based on the first received data block and the copy of the second data block starts. Since memory copying typically requires less execution time than GPU operations, the time required to copy data between the system memory and the memory of the graphics card can be completely hidden within the GPU operations.
  • the entire data e.g., data constituting a scan line or frame
  • the entire data is divided into blocks (see (b) of FIG. 6), and the copying and operation of the divided blocks are overlapped. That is, as illustrated in (c) of FIG. 6, the operation starts based on the first received data block and the copy of the second data block starts. Since memory copying typically requires less execution time than GPU operations, the time
  • the global memory of the GPU is operated as a so-called 'ping-pong memory'. That is, the global memory of the GPU may be operated with a plurality of buffers.
  • FIG. 6C a simultaneous copy simultaneous execution method using the global memory of the GPU as two buffers is illustrated. GPU operations are performed on data in another buffer while copying the next data into one buffer. Such simultaneous copying can reduce the overhead time required for copying data between memories. Furthermore, if only a minimum ping-pong memory size is secured, it is possible to divide the frame data of a large size, thereby efficiently using a limited amount of GPU memory. This simultaneous copy simultaneous execution method is equally applicable to the case where the result calculated by the GPU is transferred to the system memory (FIG. 6 (d)).
  • the entire data (for example, data constituting the scan line or frame) is divided into several blocks for processing (copying and calculating) (see FIG. 6 (b)),
  • the division of data needs to be different depending on the acquisition method of channel data stored in the first area of the system memory.
  • the channel ultrasound is transmitted to acquire channel data for each scan line.
  • the block to be divided is preferably composed of a set of scan lines in one frame.
  • the size of each block may be determined according to the scan depth, the number of scan lines, the ensemble, the frame rate, and whether the real-time / non-real-time operation is performed.
  • the block to be divided is preferably composed of a set of one or more frames.
  • the size of each block may be determined according to the scan depth, the number of scan lines, the ensemble, the frame rate, the number of frames to be synthesized, and whether real-time / non-real-time operation is performed.
  • the operation result may be adjusted when outputting to the system memory.
  • the memory access speed decreases in the order of On-chip Registers, On-chip Shared Memory, and Off-chip Global Memory. Therefore, it is desirable to limit the use of the slowest global memory to storing input data and output data of the beamforming process.
  • a faster shared memory is used for storing intermediate results in the beamforming process, and the fastest registers are preferably allocated to hold temporary results in a lower step of beamforming. Memory allocation in this manner can be applied to other subprocesses of the image forming process in addition to beamforming.
  • FIGS. 7 and 8 are diagram illustrating an ultrasonic data processing method of a host PC when operating in real time according to an embodiment of the present invention
  • FIG. 8 is a flowchart illustrating a real-time operating method of the ultrasonic imaging system according to an embodiment of the present invention. to be. The method shown in FIGS. 7 and 8 is based on the embodiments of the ultrasonic imaging system described above.
  • the CPU 510 page-locks a memory block (first area) of a predetermined size in the system memory 530 and transfers address information of the memory block to the front-end unit and the GPU. do.
  • the CPU 510 page-locks another memory block (second area) of a predetermined size in the system memory 530 and transfers address information of the corresponding memory block to the GPU (S810).
  • the front end unit and the GPU can simultaneously DMA access the first region, and the GPU can DMA access the second region.
  • the address information may be a physical address of the page-locked region or a virtual address mapped to the physical address.
  • the transducer array transmits the ultrasonic signal according to the driving signal provided by the transmitter (S820).
  • the transmitted ultrasound signal may be in the form of a focused beam, plane wave, or divergence wave for each scan line.
  • the transducer array receives the reflected signal of the ultrasonic signal transmitted to the object, and converts it into an electrical signal (ie, an RF signal).
  • the RF signal is digitized and temporarily buffered in N buffer memories (S830).
  • the RF signal is low-pass filtering, anti-alias filtering, pulse compression, band-pass filtering, and IQ demodulation. Demodulation, decimation, and the like may be applied. Low-pass filtering or anti-alias filtering may be performed.
  • the front end processing circuit refers to the physical address of the first region on the system memory transferred from the host PC, and transmits the channel data buffered in the buffer memory to the destination address in the first region via the data bus.
  • a round-robin method is applied to the outputs of the N buffer memories to generate a data packet.
  • the destination address is allocated such that channel data is stored in a contiguous address space for each channel (S840).
  • the CPU controls the GPU to perform at least one sub-process (eg, digital beamforming) among the processes for forming the ultrasound image in a multi-threaded processing manner (S850 to S870).
  • the GPU accesses the first area of the system memory 530 in a DMA manner, and copies the channel data stored in the first area to its local memory (S850).
  • the GPU performs additional processing such as receive beamforming on the channel data according to the signal processing pipeline (S860).
  • the GPU may DMA transfer a result of at least one step in the signal processing pipeline (eg, beamformed data, I / Q data on which IQ demodulation has been performed) to a second area of the system memory ( S870).
  • the GPU uses a Concurrent Copy and Execution method when performing processes S850 to S870.
  • FIGS. 9A to 10B are diagrams illustrating an ultrasonic data processing method of a host PC when operating in a non-real time operation according to an embodiment of the present invention, and FIGS. 10A and 10B operate in a non real time operation according to an embodiment of the present invention.
  • 1 is a flowchart illustrating a method of processing ultrasound data of a city host PC.
  • the ultrasound imaging system may play back an ultrasound image including information about an object, which is about a few seconds or several tens of seconds before, according to a user's input signal while generating an ultrasound image in real time. It provides a loop function.
  • cine loop memory stores data on which some processing (eg, beamforming, IQ demodulation, etc.) on channel data has been performed or data generated for display.
  • some processing eg, beamforming, IQ demodulation, etc.
  • the information to be played back is limited by a specific processing method at the time of storage. This is because the processed data stored in the cine loop memory is in a state in which some information is removed from the channel data by the operation mode and the parameters at the time of storage.
  • the ultrasonic imaging system can overcome the limitations of the conventional cine loop method by using the system memory of the host PC as the cine loop memory. That is, in this embodiment, the ultrasonic data stored in the first area and / or the second area of the system memory is used as the cine loop data.
  • channel data stored in a first area of a system memory is used as cine loop data will be described with reference to FIGS. 9A and 10A.
  • the host PC switches to the cine loop operation according to a user's specific input during real-time image generation (S1010).
  • the GPU accesses a first area of the system memory 530 in a DMA manner, and selectively copies channel data of sections for reconstructing an image to its local memory (S1020).
  • S1020 when copying channel data, it is also possible to selectively copy only the scan line data corresponding to the ROI input from the user, not the entire frame data of the sections to be reconstructed.
  • the GPU performs additional processing such as beamforming on the copied channel data according to the signal processing pipeline (S1030).
  • the GPU may perform processing by applying different operation modes, processing techniques, and application parameters than when entering the cine loop, and as a result, may overcome the limitations of the conventional cine loop scheme.
  • the efficient system memory approach of the GPU applied in the real time operation may be used as it is in the cine loop operation. It has the advantage that it can.
  • data stored in the second area of the system memory is used as the cine loop data
  • data in which additional processing such as beamforming is performed on the channel data is stored in the second region.
  • the host PC switches to the cine loop operation according to a user's specific input during real-time image generation (S1060).
  • the GPU accesses a second area in which the additional processing data, such as beamforming of the system memory 530, is stored in a DMA manner to selectively copy data of sections to be reconstructed into its local memory.
  • processing after the previously performed processing on the copied data may be performed (S1080).
  • FIG. 9A and FIG. 10A is limited in that the information to be played back is limited by a specific processing method at the time when the information to be played back is stored in the second area of the system memory (the limitation of the conventional cine loop method). Unlike this, it has the advantage that the GPU's efficient system memory approach applied in real time operation can be used for cine loop operation.
  • each process is described as being sequentially executed, but this is merely illustrative of the technical spirit of the exemplary embodiment of the present invention.
  • one of ordinary skill in the art to which an embodiment of the present invention belongs may execute the order described in each embodiment in a manner that does not depart from the essential characteristics of the embodiment of the present invention, or execute one or more processes in parallel.
  • the above-described embodiments are not limited to the time-series order because they may be variously modified and modified.
  • the ultrasound image generating method described in the above embodiments may be implemented as computer readable codes on a computer readable recording medium.
  • the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. That is, the computer-readable recording medium may be a magnetic storage medium (for example, ROM, floppy disk, hard disk, etc.), an optical reading medium (for example, CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet Storage medium).
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • transducer 120 front end unit
  • transmitter 220 receiver
  • first region 532 second region
  • bridge chip 550 data bus

Abstract

소프트웨어 기반의 초음파 이미징 시스템을 개시한다. 본 실시예의 일 측면에 의하면, 소프트웨어 기반의 초음파 이미징 시스템에서 채널 데이터(또는 Raw 데이터)를 효율적으로 전송, 처리 및 저장할 수 있는 방법 및 아키텍처를 제공한다.

Description

소프트웨어 기반의 초음파 이미징 시스템
본 실시예는 초음파 이미징 시스템에 관한 것이다. 보다 상세하게는, 데이터 전송, 메모리 접근 방식 등을 개선한 소프트웨어 기반의 초음파 이미징 시스템에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
초음파 이미징 시스템은 초음파를 투사한 대상체 내부의 반사 신호를 이용하여 대상체의 내부의 정보를 얻기 위한 의료 분야에서 널리 이용되고 있다. 초음파 이미징 시스템은 다채널 초음파 신호 획득 및 실시간 처리를 필요로 하는 복잡한 전자 시스템이다. 특히, 디지털 빔포밍은 초음파 이미징 시스템에서 가장 연산 집약적 기능블록으로서, 전통적으로 하드와이어드(hard-wired) 구조(예컨대, ASICs, FPGA)로 설계되었다. 근래에 소프트웨어 프로세싱, 특히 범용 GPU(General-Purpose GPU: GPGPU), 다중내장코어(Many Integrated Core: MIC) 등과 같은 병렬 코어 프로세서의 급속한 발전으로 인해, 이러한 기능들을 소프트웨어로서 구현하기 위한 시도가 이루어지고 있다.
이러한 소프트웨어에 기반한 초음파 이미징 시스템은 본질적으로 비실시간으로 동작하는 운영체제에 기반한 호스트 장치를 이용하여 실시간으로 획득되는 초음파 데이터를 처리한다는 점에서, 실시간 처리를 담보할 수 있는 초음파 데이터의 전송, 처리 방식의 설계가 중요하다.
본 실시예는, 데이터 전송, 메모리 접근 방식 등을 개선한 소프트웨어 기반의 초음파 이미징 시스템 및 이를 이용한 초음파 이미지 생성 방법을 제공하는 데 주된 목적이 있다.
본 발명의 일부 실시예에서, 프런트 엔드 유닛에서 채널 데이터를 호스트 PC로 전송 시, 데이터 버스에 대한 버스 마스터링(Bus Mastering)을 통해, 추가적인 메모리를 거치치 않고 호스트 PC의 시스템 메모리로 채널 데이터를 직접 전송한다. 또한, 각 채널별 데이터의 목적지 주소를 제어하여, 채널 데이터가 트랜스듀서 엘리먼트 순서로 정렬된 상태로 시스템 메모리에 저장되게 한다.
본 발명의 일부 실시예에서, 호스트 PC는 시스템 메모리의 일부 영역을 페이지-락(Page-Lock)하고, 프런트 엔드 유닛이 페이지-락된(Page-Locked) 영역에 채널 데이터를 직접 전송한다. 페이지-락된(Page-Locked) 영역의 주소 정보는 프런트 엔드 유닛 및 병렬코어 프로세서에 연동되어, 프런트 엔드 유닛과 GPU의 동시 접근이 가능하게 된다. 또한, 호스트 PC는 시스템 메모리의 다른 일부 영역을 페이지-락하고, 상기 채널 데이터에 대한 이미지 생성 프로세스들 중 어느 한 단계의 결과물을 저장하는 데 사용할 수 있다. 호스트 PC는 시스템 메모리의 페이지-락된(Page-Locked) 영역들을 시네 메모리로 사용할 수 있다.
본 발명의 일부 실시예에서, 호스트 PC는 초음파 이미지를 형성하기 위한 프로세스들 중 적어도 하나의 하위 프로세스를 수행함에 있어서 병렬코어 프로세서의 멀티-스레드 처리 방식을 이용한다. 또한, 병렬코어 프로세서의 처리 속도를 높이기 위해, 시스템 메모리와 병렬코어 프로세서의 로컬 메모리와의 데이터 복사시, 비동기 전송으로 데이터를 분할하여 복사하되, 데이터 복사와 데이터 처리가 오버랩되어 수행되는 스트림 기법을 사용한다.
본 실시예의 일 측면에 의하면, 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치에 있어서, 상기 호스트 PC는 시스템 메모리와, 하나 이상의 병렬 코어 프로세서와, 상기 시스템 메모리 내의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 메인 프로세서(Central Processing Unit: CPU)를 포함하고, 상기 프런트 엔드 유닛은 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 상기 제1 영역에 상기 채널 데이터를 전송하고, 상기 병렬 코어 프로세서는 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하는 것을 특징으로 하는 초음파 진단 장치를 제공한다.
본 실시예의 다른 측면에 의하면, 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛에 있어서, 상기 트랜스듀서로부터 실시간으로 전송되는 RF 신호를 디지털 신호로 변환하는 A/D 컨버터와, 상기 A/D 컨버터의 출력을 채널별로 버퍼링하는 버퍼 메모리와, 상기 버퍼 메모리에 버퍼링되는 채널별 데이터를 Round-Robin 방식으로, 데이터 버스의 최대 페이로드 크기(Max Payload Size)로 데이터 패킷을 생성하여, 호스트 PC의 데이터 요청과 무관하게, 상기 호스트 PC의 시스템 메모리 상의 페이지-락된(Page-locked) 영역에 전송하는 처리회로를 포함하는 프런트 엔드 유닛을 제공한다.
본 실시예의 또다른 측면에 의하면, 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치의 호스트 PC에 있어서, 시스템 메모리와, 하나 이상의 병렬 코어 프로세서와, 상기 시스템 메모리 내의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 메인 프로세서(Central Processing Unit: CPU)를 포함하고, 상기 프런트 엔드 유닛은 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 상기 제1 영역에 상기 채널 데이터를 전송하고, 상기 병렬 코어 프로세서는 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하는 것을 특징으로 하는 호스트 PC를 제공한다.
본 실시예의 또다른 측면에 의하면, 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치가 초음파 이미지를 생성하는 방법에 있어서, 호스트 PC가 시스템 메모리의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 과정과, 프런트 엔드 유닛이 트랜스듀서를 이용하여 채널 데이터를 획득하는 과정과, 상기 프런트 엔드 유닛이 상기 제1 영역에 상기 채널 데이터를 전송하는 과정과, 상기 호스트 PC에 포함된 메인 프로세서 및 병렬 코어 프로세서를 이용하여, 상기 채널 데이터에 대해 초음파 이미지를 생성하기 위한 프로세스를 수행하는 과정을 포함하되, 상기 프런트 엔드 유닛 및 병렬 코어 프로세서는 직접 메모리 액세스(Direct Memory Access: DMA) 방식을 통해 상기 제1 영역에 동시에 접근 가능한 것을 특징으로 하는, 초음파 이미지 생성 방법을 제공한다.
본 실시예의 또다른 측면에 의하면, 명령어들을 저장하는 컴퓨터로 판독 가능한 기록 매체로서, 시스템 메모리와 메인 프로세서(Central Processing Unit: CPU)와 병렬 코어 프로세서를 포함하는 컴퓨터에서 실행되는 경우, 상기 컴퓨터로 하여금, 상기 시스템 메모리의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하게 하고; 데이터 버스를 통해 연결되는 프런트 엔드 유닛으로부터 상기 제1 영역에 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 전송되는 채널 데이터에 대해 초음파 이미지를 생성하기 위한 프로세스를 수행하게 하되; 상기 병렬 코어 프로세서가 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하도록 하는 명령어를 포함하는 컴퓨터로 판독 가능한 기록 매체를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 소프트웨어 기반의 초음파 이미징 시스템에서 채널 데이터를 효율적으로 전송, 처리 및 저장할 수 있는 방법 및 아키텍처를 제공한다.
또한, 프런트 엔드 유닛이 호스트 PC상의 CPU의 관여없이, 버스 마스터링을 통해 시스템 메모리로 채널 데이터를 직접 전송함에 따라, 데이터 전송에 따른 시간 지연을 최소화한다.
또한, 프런트 엔드 유닛으로부터 시스템 메모리로의 채널 데이터 전송과 동시에, 각 채널별 샘플값들이 트랜스듀서 엘리먼트 순서로 정렬된 형태로 저장되므로, 데이터의 코어레싱(Coalescing)을 증가시켜, 호스트 PC에서의 채널 데이터에 대한 연산, 예컨대 빔포밍 연산시 메모리 접근의 효율성을 향상시킨다.
또한, GPU의 로컬 메모리와 시스템 메모리 간의 데이터 복사시, 비동기 전송으로 데이터를 분할하여 전송하되, 데이터 전송과 데이터 처리가 오버랩되어 동시에 수행되도록 함으로써, 데이터 복사의 레이턴시를 GPU의 연산 뒤에 완전히 숨길 수 있다.
또한, 시스템 메모리의 페이지-락된 공간을 시네 메모리로 이용함으로써, 기 저장된 데이터 파일을 시스템 메모리의 페이지-락된 공간에 로드(Load)하여 초음파 이미지를 재구성하는 과정에서 GPU를 보다 효율적으로 활용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 초음파 이미징 시스템을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 프런트 엔드 유닛의 구성을 개략적으로 도시한 블럭도이다.
도 3은 본 발명의 일 실시예에 따른 프런트 엔드 유닛의 채널 데이터 전송 방식을 도식화한 도면이다.
도 4는 호스트 PC의 시스템 메모리 상에 저장된 채널 데이터의 정렬 형태를 도식화한 도면이다.
도 5는 본 발명의 일 실시예에 따른 호스트 PC의 구성을 개략적으로 도시한 블럭도이다.
도 6은 본 발명의 일 실시예에 따른, GPU의 데이터 복사 및 처리 방법을 도식화한 도면이다.
도 7은 본 발명의 일 실시예에 따른 실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도식화한 도면이다.
도 8은 본 발명의 일 실시예에 따른 초음파 이미징 시스템의 실시간 동작 방법을 도시한 흐름도이다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 비실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도식화한 도면이다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른 비실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도시한 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 일 실시예에 따른 초음파 이미징 시스템을 개략적으로 도시한 블록도이다.
도 1에 도시된 바와 같이, 초음파 이미징 시스템은 초음파 트랜스듀서(110) 및 디스플레이 장치(140)에 전기적으로 연결된다. 초음파 이미징 시스템은 프런트 엔드 유닛(120) 및 호스트 PC(130)를 포함한다.
프런트 엔드 유닛(120)은 호스트 PC(130)로부터 전송된 제어신호를 기초로 초음파 트랜스듀서에 인가될 전기적 구동신호를 생성한다. 초음파 트랜스듀서(210)는 프런트 엔드 유닛(120)에 의해 제공되는 전기적 구동신호를 초음파 신호를 변환하여 대상체에 송신하는 데 이용되며, 대상체로부터 송신한 초음파 신호의 반사 신호를 수신하여 전기적 신호(즉, RF 신호)로 변환한다. 'RF'는 당해 기술분야에서 통상적으로 사용되는 용어로서, 초음파의 주파수(통상적으로 0.5 내지 100 Mhz)를 의미하지만, 이 표현에 의하여 본 발명의 권리가 제한되는 것은 아니다.
한편, 도 1에서는 수 개의 엘리먼트(Element)들만이 예시되어 있지만, 일반적으로 초음파 튜랜스듀서는 수백 개(예컨대, 128, 256개)의 엘리먼트들을 포함한다. 잘 알려진 바와 같이, RF 신호는 스캔 라인별로 획득되거나 평면파(Plane Wave) 혹은 발산파(Divergnet Wave)를 이용하여 프레임 단위로 획득될 수도 있다. 또한, RF 신호는 대상체 내 관심영역의 2차원 영상 혹은 3차원 영상을 생성하기 위해 이용될 수 있다.
프런트 엔드 유닛(120)은 아날로그 신호인 RF 신호를 디지털 신호로 변환하고, 데이터 버스(예컨대, PCI Express 버스)에 대한 버스 마스터링(Bus Mastering)을 통해, 변환된 디지털 신호를 호스트 PC(130)의 시스템 메모리에 DMA 전송한다. RF 신호는 디지털 신호로 변환되기 전 또는 변환된 후에, 저주파 필터링(Low-pass Filtering), 안티-엘리어싱 필터링(Anti-aliaing Filtering), 펄스 압축(Pulse Compression), 대역통과 필터링(Band-pass Filtering), IQ 복조(IQ Demodulation), 데시메이션(Decimation) 등의 프로세싱이 적용될 수 있으나, 이러한 경우라도 최소의 프로세싱을 거친 초음파 데이터가 시스템 메모리에 저장된다.
프런트 엔드 유닛(120)은 다양한 방법으로 프로브 또는 호스트 PC(130) 내에 구현될 수 있으며, 이들과 독립적으로 구성될 수도 있다. 예컨대, 프런트 엔드 유닛(120)은 BTB(Board-to-Board) 접속으로 프로브 내에 구현될 수 있으며, 호스트 PC(130)의 메인 보드에 플러그-인 방식으로 삽입된 형태일 수 있다. 물론, 프런트 엔드 유닛(120)은 호스트 PC(130)의 외부에 위치하여, 데이터 버스를 통해 호스트 PC(130)와 연결될 수도 있다.
호스트 PC(130)는 프런트 엔드 유닛(120)을 제어하여 초음파 데이터를 획득하고, 획득한 초음파 데이터를 프로세싱하여 초음파 이미지를 생성하는 데 사용되는 소프트웨어를 구동한다.
전술한 구성을 갖는 초음파 이미징 시스템은 전용 하드웨어로 구성되는 프런트 엔드 유닛을 단순화하는 한편, 소프트웨어의 수정을 통해 B모드, M모드 등과 같이 잘 알려진 모드들 외에 다른 새로운 모드나 새로운 빔포밍 방식을 손쉽게 적용할 수 있다. 즉, 초음파 이미징 시스템의 개발 전후에 걸쳐, 사용자의 다양한 요구 사항을 충족하기 위해 소프트웨어의 일부가 용이하게 수정될 수 있다. 결과적으로, 초음파 이미징 시스템의 개발이 용이하고, 초음파 이미징 시스템의 기능 확장이 보다 용이한 장점을 가진다.
도 2는 본 발명의 일 실시예에 따른 프런트 엔드 유닛의 구성을 개략적으로 도시한 블럭도이다.
도 2에 도시된 바와 같이, 프런트 엔드 유닛(120)은 송신부(210), 수신부(220) 및 프런트 엔드 처리 회로(230)를 포함한다. 여기서, 프런트 엔드 유닛(120)은 그 기능에 따라 다른 구성요소를 더 포함할 수 있으나, 본 발명의 특징들 중 하나인 호스트 PC로의 데이터 전송 방식을 설명하는데 있어서 요지를 흐릴 수 있는 구성에 대한 설명은 생략하기로 한다.
송신부(210)는 프런트 엔드 처리 회로(230)를 통해 호스트 PC(130)로부터 전송된 제어신호를 기초로, 트랜스듀서(110)에 인가될 전기적 구동신호를 생성한다. 본 실시예에서는 송신부(210)가 프런트 엔드 유닛(220)에 포함된 것으로 예시하고 있으나, 프런트 엔드 유닛(220)과 독립적으로 구성되는 것도 가능하다.
수신부(220)는 수신회로, N개의 A/D 컨버터 및 N개의 버퍼 메모리를 포함할 수 있다. 대상체로부터의 반사 신호(Echo)는 트랜스듀서(110)에서 전기적 신호(즉, RF 신호)로 변환되고, 수신회로는 트랜스듀서(110)로부터 RF 신호를 수신한다. A/D 컨버터는 수신회로의 출력인 아날로그 형태의 RF 신호를 디지털 신호로 변환하는 데 사용된다. A/D 컨버터의 출력인 디지털 신호(즉, 채널별 샘플값)는 N개의 버퍼 메모리에 채널별로 일시적으로 버퍼링된다.
프런트 엔드 처리 회로(230)는 데이터 버스를 통해 연결된 호스트 PC(130)로부터 시스템 메모리 상의 페이지-락(Page-lock)된 영역에 관한 주소(Address) 정보를 획득한다. 여기서, 주소 정보는 페이지-락된 영역의 물리적 주소(Physical Address) 또는 물리적 주소와 매핑된 가상 주소(Virtual Address) 즉, 논리적 주소일 수 있다. 프런트 엔드 처리 회로(230)는 버퍼 메모리(223)에 버퍼링되는 채널별 샘플값들을, 데이터 버스에 대한 버스 마스터링(Bus Mastering)을 통해, 호스트 PC(130)의 시스템 메모리로 직접 전송한다. 즉, 프런트 엔드 처리 회로(230)는 DMA 기술을 이용한다. 데이터 버스는 실시간 전송을 담보할 수 있는 적절한 고속 버스 기술이 사용될 수 있다. 예컨대, 데이터 버스(550)는 PCI-E(PCI Express) 버스로 구현될 수 있다. 본 발명의 일 실시형태에서, 프런트 엔드 처리 회로(230)은 데이터 버스를 통해 버퍼 메모리에 버퍼링된 채널별 샘플값들을 호스트 PC(130)의 시스템 메모리에 DMA 전송하기 위한 DMA 컨트롤러와, 버퍼 메모리에 일정 크기의 샘플값들이 버퍼링되면 DMA 컨트롤러에 대해 DMA 전송을 수행하도록 제어하는 제어부를 포함할 수 있다.
일부 실시예에서, 프런트 엔드 유닛(120)에서는 RF 신호를 디지털 신호로 변환하기 전 또는 변환한 후에, 저주파 필터링(Low-pass Filtering), 안티-엘리어싱 필터링(Anti-aliaing Filtering), 펄스 압축(Pulse Compression), 대역통과 필터링(Band-pass Filtering), IQ 복조(IQ Demodulation), 데시메이션(Decimation) 등의 전처리(Pre-processing)를 수행할 수도 있다. 따라서, 호스트 PC(130)의 시스템 메모리로 전송되는 데이터는 프런트 엔드 유닛(120)에서 수행되는 전처리(Pre-processing) 방식에 따라 다양한 포맷을 가질 수 있다. 예컨대, 프런트 엔드 처리 회로(230)가 IQ 복조를 수행하도록 구성되는 경우, 시스템 메모리에는 기저대역(Baseband)으로 복조된 IQ 데이터가 전송될 수 있다. 이하에서는, 호스트 PC의 시스템 메모리로 전송되는 데이터를 '채널 데이터(Channel Data)'라고 지칭하기로 한다.
이하에서는 도 3 및 도 4를 참조하여, 프런트 엔드 유닛(120)이 호스트 PC(130)의 시스템 메모리에 채널 데이터를 전송하는 방법을 보다 상세히 설명하기로 한다. 도 3은 본 발명의 일 실시예에 따른 프런트 엔드 유닛의 채널 데이터 전송 방식을 도식화한 도면이고, 도 4는 호스트 PC의 시스템 메모리 상에 저장된 채널 데이터의 정렬 형태를 도식화한 도면이다.
앞서 살펴본 바와 같이, 수신부(220)의 각 채널별 버퍼 메모리에는 A/D 컨버터의 출력인 채널별 샘플값들이 FIFO 방식으로 버퍼링된다. 프런트 엔드 처리 회로(230)는 각 채널별 버퍼에 대해 라운드-로빈(Round-Robin) 방식으로 데이터 패킷을 생성하여 호스트 PC(130)의 시스템 메모리에 전송한다. 즉, 각 채널마다 순차적으로 데이터 패킷이 생성된다. 이때, 프런트 엔드 처리 회로(230)는 데이터 버스의 프로토콜에 따라 정해지는 Max_Payload_Size를 기준으로 데이터 패킷을 생성하고, 시스템 메모리 내의 각 채널별 목적지 주소(Destination Address)로 생성된 데이터 패킷을 전송한다.
프런트 엔드 처리 회로(230)는 사전에 호스트 PC(130)로부터 시스템 메모리 상의 페이지-락(Page-lock)된 영역에 관한 주소(Address) 정보를 획득한다. 여기서, 주소 정보는 페이지-락된 영역의 물리적 주소(Physical Address) 또는 물리적 주소와 매핑된 가상 주소(Virtual Address), 즉 논리적 주소일 수 있다. 위 주소 정보를 기초로, 프런트 엔드 처리 회로(230)는 각 데이터 패킷에 포함된 샘플값들이 저장될 목적지 주소를 할당한다. 목적지 주소는 샘플값들이 채널별로 연속된 주소공간에 저장되도록 할당된다. 덧붙여, 채널별 목적지 주소는 메모리 배열의 시작 인덱스부터 차례대로 저장되도록, 또한 마지막 인덱스에서는 다시 처음의 인덱스 부분으로 되돌려져 처음 영역부터 다시 저장되도록(즉, 순환 방식으로 저장되도록) 할당된다. 위와 같은 목적지 주소의 제어를 통해, 채널 데이터는 전송과 동시에 각 채널(또는 엘리먼트)별로 정렬된 형태로 시스템 메모리에 저장된다. 도 4를 참고하면, 시스템 메모리상의 주소 공간에는 종방향으로 각 채널별 샘플값들이, 횡방향으로 동일 채널의 샘플값들이 순차적으로 기록된다. 즉, 채널 데이터는 각 채널별로 연속된 메모리 주소공간에 저장된다.
위와 같은 전송 방식 및 그에 따른 시스템 메모리 상의 채널 데이터 저장 형태는 데이터의 코어레싱(Coalescing)을 증가시켜, 호스트 PC(130)에서의 채널 데이터에 대한 연산, 예컨대 빔포밍 연산시 메모리 접근의 효율성을 향상시킨다.
도 5는 본 발명의 일 실시예에 따른 호스트 PC의 구성을 개략적으로 도시한 블럭도이다.
도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 호스트 PC(130)는 중앙 처리 장치(Central Processing Unit: CPU; 510), 그래픽 처리 장치(Graphics Processing Unit: GPU; 520), GPU 메모리(525), 시스템 메모리(530) 및 브리지 칩(540)을 포함한다. 여기서, 호스트 PC(130)는 그 기능에 따라 다른 구성요소를 더 포함할 수 있으나, 본 발명의 특징들 중 하나인 채널 데이터를 프로세싱하는 방식을 설명하는데 있어서 요지를 흐릴 수 있는 구성에 대한 설명은 생략하기로 한다. 또한, 이하의 호스트 PC(130)의 구성들은 본 발명의 예시적인 실시예에 불과하며, 본 발명의 실시에 이용되는 호스트 PC(130)의 구성이 예시된 구성들로 한정되는 것은 아니다.
브리지 칩(540)은 데이터 버스(550)를 통해 프런트 엔드 유닛(120)에 전기적으로 연결된다. 또한, 브리지 칩(540)은 CPU(510), 시스템 메모리(530) 및 GPU(520)에 전기적으로 연결된다. 브리지 칩(540)은, 예컨대 노스-브리지 칩일 수 있으며, 다양한 I/O 장치들(예를 들어, 하드 디스크 드라이브 같은 하나 이상의 대용량 저장 장치, 휴먼-머신 인터페이스 장치, 이더넷 어댑터와 같은 통신 어댑터, CD-ROM, DVD 등)을 접속시키는 확장 버스들을 지원할 수 있다. 데이터 버스는 채널 데이터를 실시간으로 전송할 수 있는 적절한 고속 버스 기술이 사용될 수 있다. 예컨대, 데이터 버스(550)는 PCI-E(PCI Express) 버스로 구현될 수 있다.
CPU(510)는, 당업자들에게 널리 공지되어 있는, Intel Corporation 또는 다른 공급자들에 의해 제조된 것들과 같은, 프로세서일 수 있다. 시스템 메모리(530)는 다수의 DRAM(Dynamic Random Access Memory) 디바이스들일 수 있다. GPU(520)는 그래픽 카드에 배치될 수 있는 한편, CPU(510) 및 시스템 메모리(530)는 호스트 PC(130)의 마더보드에 배치될 수 있다. GPU(520)를 포함하는 그래픽 카드는 통상적으로 GPU(520)가 부착된 데이터 PCB(Printed Circuit Board)이다. 다른 일부 실시예들에서, GPU(520)는 마더보드에 포함될 수 있다. 예시된 호스트 PC(130)는 복수의 GPU들을 포함할 수도 있다. 이러한 GPU들은 각각이 별도의 그래픽 카드들에 배치될 수 있으며, 일부 실시예들에서 일부 GPU들이 마더보드에 배치될 수도 있다. 일반적으로, GPU는 크게 여러 개의 스트리밍 멀티프로세서(Streaming Multi-processor)와 오프칩 메모리(Off-chip Memory)로 구성되며, 스트리밍 멀티프로세서는 복수의 스트림 프로세서(Stream Processor)와 온칩 메모리(On-chip Memory) 등으로 구성된다.
도 5에 도시된 실시예에서는, 브리지 칩(540)이 CPU(510), GPU(520) 및 시스템 메모리(530)에 전기적으로 연결되는 것으로 예시하였지만, 일부 실시예들에서는 호스트 PC(130)의 GPU(520)가 직접적으로 CPU(510) 및 메모리(530)에 전기적으로 연결되고, GPU(520)가 직접적으로 데이터 버스(550)를 통해 프런트 엔드 처리 회로(230)에 전기적으로 연결되도록 구성될 수 있다. 또한, 다른 일부 실시예들에서는 호스트 PC(130)의 CPU(510) 및 GPU(520)가 싱글 다이(Single Die)에 설계되어 시스템 메모리(530)를 공유하는 형태의 싱글칩 집적 형태로 구성될 수 있다. 이러한 구성은 레이턴시, 데이터 처리속도 등의 측면에서 장점을 가진다. 일부 실시예들에서 범용 GPU(General Purpose GPU: GPGPU)가 GPU(520)로서 사용될 수 있으며, 다른 일부 실시예들에서는 다중내장코어(Many Integrated Core: MIC)가 GPU(520)의 대용으로 사용될 수도 있다.
전술한 구성을 기초로, 호스트 PC(130)의 CPU(510)는 프런트 엔드 유닛(120)을 제어하여 채널 데이터를 획득하고, GPU를 이용하여 실시간 또는 비실시간(예컨대, 시네 루프)으로 채널 데이터를 프로세싱하여 초음파 이미지를 생성하게 하는 데 사용되는 소프트웨어를 구동한다. 다시 말해, CPU(510)는 프런트 엔드 처리 회로(230)를 통해 송신부(210) 및 수신부(220)의 동작을 제어함으로써, 프런트-엔드 유닛(120)이 트랜스듀서(110)를 이용하여 채널 데이터를 획득하도록 제어한다. 또한, CPU(510)는 GPU(520)가 초음파 이미지 데이터를 생성하기 위해, 획득한 초음파 스캔 데이터에 멀티-스레드 처리 방식으로 이미지 형성을 위한 프로세스를 수행하도록 제어한다.
1. 사전 설정
시스템 메모리(530)는, CPU(510)에 의해, 일정 크기의 메모리 블럭(제1 영역; 531)이 프런트 엔드 유닛(120)으로부터 수신되는 채널 데이터의 저장을 위해 페이지-락(Page-lock) 된다. 즉, 채널 데이터가 저장되는 제1 영역(531)은 페이징(Paging)이 금지되고, 해당 메모리 공간은 항상 시스템 메모리에만 있게 된다. 페이지-락된 메모리를 고정 메모리(Pinned memory)라고 지칭하기도 한다. 또한, 시스템 메모리(530)는 일정 크기의 다른 메모리 블럭(제2 영역; 532)이 페이지-락(Page-lock) 될 수 있다. 제2 영역(532)은 제1 영역에 저장된 채널 데이터에 대해 빔포밍 등 추가적인 프로세싱이 수행된 데이터(즉, 빔포밍된 데이터, I/Q 데이터 등)가 저장된다. 물론, 시스템 메모리(530)의 또다른 메모리 블럭에는 CPU(510)에 의해 수행되는 소프트웨어가 저장될 수 있다.
CPU(510)는 프런트-엔드 처리 회로(226)가 채널 데이터를 직접 메모리 접근(Direct Momory Access: DMA) 방식으로 시스템 메모리(530)에 저장하는 데 필요한, 페이지-락된 메모리 블럭인 제1 영역(531)에 관한 주소(Address) 정보를 프런트-엔드 처리 회로(226)에 제공한다. 또한, CPU(510)는 GPU가 DMA 방식으로 시스템 메모리(530)의 제1 영역(531)에 저장된 채널 데이터를 획득하는 데 필요한 제1 영역(531)의 주소 정보를 GPU(520)에게 제공한다. 또한, CPU(510)는 GPU가 채널 데이터에 대해 프로세싱을 수행한 결과를 저장하는 데 필요한 제2 영역의 주소 정보를 GPU(520)에게 제공한다. 이로써, 프런트-엔드 처리 회로(226) 및 GPU(520)는 CPU(510)으로부터 획득한 제1 영역(531)의 주소 정보를 기초로, CPU(510)의 개입없이, 페이지-락된 제1 영역에 동시에 접근할 수 있다. 여기서, 주소 정보는 페이지-락된 영역의 물리적 주소(Physical Address) 또는 물리적 주소와 매핑된 가상 주소(Virtual Address), 즉 논리적 주소일 수 있다. 실시간 처리가 중요한 초음파 이미징에 있어서, 페이지-락된 메모리는 페이징가능한(pageable) 메모리보다 빠른 메모리 접근을 가능하게 한다. 즉, 프런트 엔드 유닛(120) 및 GPU(520)는, CPU의 개입없이, 페이지-락된 메모리에 DMA 접근할 수 있고, 그로 인해 CPU 버퍼로의 데이터 복사 등 추가적인 데이터 복사, 연산이 불필요하게 된다.
이하에서는, 도 6을 참조하여, GPU가 시스템 메모리 상의 초음파 데이터를 복사하고 처리하는 방식을 설명하기로 한다. 도 6은 본 발명의 일 실시예에 따른, GPU의 데이터 복사 및 처리 방법을 도식화한 도면이다.
2. 채널 데이터의 선택적 처리
도 6의 (a)를 참조하면, 실시간 동작 또는 비실시간 동작(예컨대, 시네 루프 동작)에서, 호스트 PC는 시스템 메모리상의 제1 영역에 저장된 채널 데이터 중 일부만을 선별적으로 프로세싱을 수행할 수 있다. 예컨대, 초음파 이미징 시스템은 최대로 이용가능한 펄스 반복 주파수(PRF: Pulse Repetition Frequency)를 이용하여, 시스템 메모리의 제1 영역 상에 호스트 PC의 실시간 처리능력을 넘어서는 충분한 채널 데이터를 획득할 수 있다. 이 경우, 호스트 PC는 실시간 처리를 유지하기 위하여, 시스템 메모리의 제1 영역상에 획득되는 모든 채널 데이터를 처리하는 대신에, 일부만을 선별적으로 처리한다. 이와 같이, 호스트 PC의 실시간 처리 능력을 넘어서는 채널 데이터는 비실시간 동작에서 효과적으로 활용될 수 있다. 즉, 호스트 PC는 실시간 처리나 프레임율(Frame Rate)에 대한 제한이 (거의) 없는 시네 루프 동작에서, 시스템 메모리의 제1 영역상에 저장된 모든 채널 데이터 또는 적어도 실시간 처리보다 많은 양의 채널 데이터를 처리할 수 있다.
3. GPU의 데이터 복사 및 연산
GPU는 초음파 이미징 시스템에서 가장 연산 집약적 기능인 디지털 빔포밍을 수행하는 데 사용된다. 이미지 형성 프로세스를 수행하는 데 사용되는 GPU가 멀티 코어로 구성된 병렬 처리 장치이기 때문에, 이미지 형성 프로세스의 각 단계는 복수의 하위 프로세스로 분할될 수 있으며, 하위 프로세스들은 다른 코어에 할당되어 동시에 처리될 수 있다.
GPU를 이용하여 시스템 메모리 상의 데이터를 프로세싱하기 위해서는 해당 데이터가 GPU의 오프칩 메모리(전역 메모리: Global Memory)로 복사되어야 한다. 일단 데이터가 시스템 메모리로부터 GPU의 전역 메모리로 복사되면, GPU 내의 멀티프로세서들은 프로세싱을 위해 전역 메모리 상의 데이터에 접근한다. 여기서, 시스템 메모리로부터 GPU의 전역 메모리로의 데이터 복사는 높은 레이턴시(Latency)를 가지는데, 이러한 메모리 복사는 데이터 버스의 제한된 대역폭에 기인한다. 예컨대 PCI-E 2.0×16 버스는 최대 대역폭이 8GB/s로 제한된다. GPU에서 프로세싱된 결과를 시스템 메모리에 전송하는 경우에도 동일하게 높은 레이턴시가 문제된다.
이를 고려하여, 본 발명의 일부 실시예에서, GPU는 시스템 메모리로부터 GPU의 로컬 메모리(전역 메모리)로 전체 데이터(예컨대, 스캔 라인 또는 프레임을 구성하는 데이터)를 복사하고 나서 연산을 시작하는 것이 아니라, 오히려, 데이터 전체를 여러 블록들로 분할하고(도 6의 (b) 참조), 분할된 블럭들의 복사와 연산을 오버랩시켜 수행한다. 즉, 도 6의 (c)에 예시된 바와 같이, 첫 번째로 받은 데이터 블럭을 기초로 연산을 시작함과 동시에 두 번째 데이터 블럭의 복사를 시작한다. 통상 메모리 복사가 GPU 연산보다 더 적은 수행 시간이 필요하기 때문에, 시스템 메모리와 그래픽 카드의 메모리 간의 데이터 복사에 필요한 시간은 GPU 연산 속에 완전히 숨겨질 수 있다.
이러한 동시 복사 동시 수행 (Concurrent Copy and Execution) 방식을 적용하는 경우에, GPU의 전역 메모리는 이른바 '핑퐁 메모리(Ping-pong Memory)'로 운용된다. 즉, GPU의 전역 메모리는 복수 개의 버퍼로 운용될 수 있다. 도 6의 (c)에는 GPU의 전역 메모리를 2 개의 버퍼로 운용하는 동시 복사 동시 수행 방식이 예시되어 있다. 하나의 버퍼에 다음번 데이터를 복사하는 동안 다른 하나의 버퍼 내의 데이터에 대해 GPU 연산이 수행된다. 이와 같은 동시 복사 동시 수행을 통해, 메모리 간 데이터 복사에 소요되는 오버헤드 시간을 줄일 수 있다. 더욱이, 최소한의 핑퐁 메모리 사이즈만 확보된다면 큰 사이즈의 프레임 데이터를 분할 처리할 수 있으므로, 제한적 용량의 GPU 메모리를 효율적으로 사용할 수 있게 된다. 이러한 동시 복사 동시 수행 방식은 GPU에서 연산된 결과를 시스템 메모리에 전송하는 경우(도 6의 (d))에도 동일하게 적용된다.
한편, 동시 복사 동시 수행 방식을 적용하기 위해서는, 전체 데이터(예컨대, 스캔 라인 또는 프레임을 구성하는 데이터)를 여러 블록들로 분할하여 처리(복사 및 연산)하는데(도 6의 (b)참조), 데이터의 분할은 시스템 메모리의 제1 영역에 저장된 채널 데이터의 획득 방식에 따라 달리할 필요가 있다. 예컨대, 집속 초음파를 송신하여 스캔 라인별로 채널 데이터를 획득하는 경우에는, 분할 처리되는 블록은 하나의 프레임 내의 스캔 라인들의 집합으로 구성되는 것이 바람직하다. 이때, 각 블록의 크기는 스캔 깊이(Scan Depth), 스캔 라인(Scanline)의 수, 앙상블(Ensenble), 프레임율(Frame Rate), 실시간/비실시간 동작 여부 등에 따라 결정될 수 있다. 평면파를 이용하여 채널 데이터를 획득하는 경우에는, 분할 처리되는 블록은 하나 이상의 프레임의 집합으로 구성되는 것이 바람직하다. 이때, 각 블록의 크기는 스캔 깊이, 스캔 라인의 수, 앙상블, 프레임율, 합성할 프레임의 수, 실시간/비실시간 동작 여부 등에 따라 결정될 수 있다. 한편, GPU의 데이터 복사 및 연산 순서가 스캔 라인 또는 앙상블(Ensenble)의 순서와 일치하지 않는 경우에는, 연산 결과를 시스템 메모리로 출력시 조정될 수 있다.
GPU 메모리에서, 메모리 접근 속도는 온-칩 레지스터(On-chip Registers), 온-칩 공유 메모리(On-chip Shared Memory), 오프-칩 전역 메모리(Off-chip Global Memory) 순으로 감소한다. 따라서, 가장 느린 전역 메모리의 이용은 빔포밍 과정의 입력 데이터 및 출력 데이터를 저장하는 것에 제한하는 것이 바람직하다. 또한, 보다 빠른 공유 메모리(Shared Memory)는 빔포밍 과정에서 중간 결과물의 저장에 사용되고, 가장 빠른 레지스터(Registers)은 빔포밍의 하위 스텝 내의 임시 결과들을 보유하는 데 할당되는 것이 바람직하다. 이러한 방식의 메모리 할당은 빔포밍 외에도 이미지 형성 과정의 다른 하위 프로세스에도 적용될 수 있다.
4. 실시간 동작
이하에서는, 도 7 및 도 8을 참조하여, 초음파 이미징 시스템의 실시간 동작을 설명하기로 한다. 도 7은 본 발명의 일 실시예에 따른 실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도식화한 도면이고, 도 8은 본 발명의 일 실시예에 따른 초음파 이미징 시스템의 실시간 동작 방법을 도시한 흐름도이다. 도 7 및 도 8에 도시된 방법은 전술한 초음파 이미징 시스템의 실시예들에 기초한다.
사전에, CPU(510)는 시스템 메모리(530) 내의 일정 크기의 메모리 블럭(제1 영역)을 페이지-락(Page-lock)하고, 해당 메모리 블록의 주소 정보를 프런트-엔드 유닛 및 GPU에게 전달한다. 또한, CPU(510)는 시스템 메모리(530) 내의 일정 크기의 다른 메모리 블럭(제2 영역)을 페이지-락 하고, 해당 메모리 블록의 주소 정보를 GPU에게 전달한다(S810). 이들 주소 정보를 이용하여, 프런트 엔드 유닛과 GPU가 제1 영역에 동시에 DMA 접근이 가능하며, GPU가 제2 영역에 DMA 접근 가능하게 된다. 앞서 설명한 바와 같이, 주소 정보는 페이지-락된 영역의 물리적 주소(Physical Address) 또는 물리적 주소와 매핑된 가상 주소(Virtual Address)일 수 있다.
다음으로, 트랜스듀서 어레이는 송신부에 의해 제공되는 구동 신호에 따라 초음파 신호를 송신한다(S820). 이때, 송신되는 초음파 신호는 스캔 라인별로 포커스된 집속빔(Focused Beam), 평면파(Plane Wave) 혹은 발산파(Divergnet Wave) 형태일 수 있다.
다음으로, 트랜스듀서 어레이는 대상체에 송신된 초음파 신호의 반사 신호를 수신하고, 이를 전기적 신호(즉, RF 신호)로 변환한다. RF 신호는 디지털화되어 N개의 버퍼 메모리에 일시적으로 버퍼링된다(S830). RF 신호는 디지털 변환을 전후하여 저주파 필터링(Low-pass Filtering), 안티-엘리어싱 필터링(Anti-aliaing Filtering), 펄스 압축(Pulse Compression), 대역통과 필터링(Band-pass Filtering), IQ 복조(IQ Demodulation), 데시메이션(Decimation) 등의 프로세싱이 적용될 수 있다. 저주파 필터링(Low-pass Filing)이나 안티-엘리어싱 필터링(Anti-aliaing Filtering)을 거칠 수 있다.
다음으로, 프런트 엔드 처리 회로는 호스트 PC로부터 전달된 시스템 메모리 상의 제1 영역의 물리적 주소를 참고하여, 데이터 버스를 통해, 버퍼 메모리에 버퍼링된 채널 데이터를 제1 영역 내의 목적지 주소로 송신한다. 이때, N개의 버퍼 메모리의 출력에 대해 라운드-로빈 방식을 적용하여, 데이터 패킷을 생성한다. 목적지 주소는 채널 데이터가 채널별로 연속된 주소공간에 저장되도록 할당된다(S840).
다음으로, CPU는 GPU로 하여금, 초음파 이미지를 형성하기 위한 프로세스들 중 적어도 하나의 하위 프로세스(예컨대, 디지털 빔포밍)를 멀티-스레드 처리 방식으로 수행하도록 제어한다(S850~S870). GPU는 시스템 메모리(530)의 제1 영역에 DMA 방식으로 접근하여, 제1 영역에 저장된 채널 데이터를 자신의 로컬 메모리로 복사한다(S850). GPU는 신호처리 파이프라인에 따라, 채널 데이터에 대해 수신 빔포밍 등 추가적인 프로세싱을 수행한다(S860). GPU는 신호처리 파이프라인에서의 적어도 어느 한 단계의 결과물(예컨대, 빔포밍된 데이터, IQ 복조(IQ Demodulation)을 수행한 I/Q 데이터 등)를 시스템 메모리의 제2 영역에 DMA 전송할 수 있다(S870). 특히, GPU는 S850~S870 과정을 수행시, 동시 복사 동시 수행(Concurrent Copy and Execution) 방식을 이용한다.
5. 비실시간 동작
이하에서는, 도 9a 내지 도 10b을 참조하여, 본 발명의 일 실시예에 따른 초음파 이미징 시스템의 비실시간 동작을 설명하기로 한다. 도 9a 및 도 9b는 본 발명의 일 실시예에 따른 비실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도식화한 도면이고, 도 10a 및 도 10b는 본 발명의 일 실시예에 따른 비실시간으로 동작시 호스트 PC의 초음파 데이터 처리 방법을 도시한 흐름도이다.
일반적으로, 초음파 이미징 시스템은 실시간으로 초음파 이미지를 생성하는 도중에, 사용자의 입력신호에 따라, 이전의 수 초 또는 수십 초 전의 대상체에 대한 정보를 포함된 초음파 영상을 플레이백(Playback)할 수 있는 시네 루프 기능을 제공한다. 통상적으로 시네 루프 메모리에는 채널 데이터에 대한 일부 프로세싱(예컨대, 빔포밍, IQ 복조 등)이 수행된 데이터 또는 디스플레이를 위해 생성된 데이터가 저장된다. 이러한 종래의 시네 루프 방식에서는, 플레이백(Playback) 되는 정보가 저장 당시의 특정 프로세싱 방식에 의해 제한적일 수밖에 없다. 왜냐하면, 시네 루프 메모리에 저장되는 프로세싱된 데이터는, 저장 당시의 동작 모드 및 파라미터들에 의해, 채널 데이터로부터 일부 정보가 제거된 상태이기 때문이다.
본 실시예에 따른 초음파 이미징 시스템은 호스트 PC의 시스템 메모리를 시네 루프 메모리로 사용함으로써 종래의 시네 루프 방식이 가지는 제한을 극복할 수 있다. 즉, 본 실시예에서 시스템 메모리의 제1 영역 및/또는 제2 영역에 저장된 초음파 데이터가 시네 루프용 데이터로 사용된다.
먼저, 도 9a 및 도 10a를 참조하여, 시스템 메모리의 제1 영역에 저장된 채널 데이터를 시네 루프용 데이터로 사용하는 실시예를 설명한다.
호스트 PC는 실시간 이미지 생성 도중에 사용자의 특정 입력에 따라 시네 루프 동작으로 전환한다(S1010). 시네 루프 동작시, GPU는 시스템 메모리(530)의 제1 영역에 DMA 방식으로 접근하여, 이미지를 재구성할 구간들의 채널 데이터를 자신의 로컬 메모리로 선택적으로 복사한다(S1020). 특히, 채널 데이터 복사시, 재구성할 구간들의 프레임 데이터를 전체가 아닌 사용자로부터 입력된 관심 영역에 대응되는 스캔 라인 데이터들만을 선택적으로 복사하는 것도 가능하다. GPU는 신호처리 파이프라인에 따라, 복사된 채널 데이터에 대해 빔포밍 등 추가적인 프로세싱을 수행한다(S1030). 특히, GPU는 시네 루프 진입 당시와는 다른 동작 모드, 프로세싱 기법, 적용 파라미터들을 적용하여 프로세싱을 수행할 수 있으며, 그 결과 종래의 시네 루프 방식이 가지는 제한을 극복할 수 있다. 더욱이, 본 실시예에 따르면, 별도의 메모리가 아니라, 실시간 동작 시에 사용되는 시스템 메모리를 시네 루프 메모리로 사용함으로써, 실시간 동작시에 적용되는 GPU의 효율적인 시스템 메모리 접근 방식을 시네 루프 동작에도 그대로 이용할 수 있다는 장점이 있다.
다음으로, 도 9b 및 도 10b를 참조하여, 시스템 메모리의 제2 영역에 저장된 데이터를 시네 루프용 데이터로 사용하는 실시예를 설명한다. 전술한 바와 같이, 제2 영역에는 채널 데이터에 대해 빔포밍 등 추가적인 프로세싱이 수행된 데이터가 저장되어 있다.
호스트 PC는 실시간 이미지 생성 도중에 사용자의 특정 입력에 따라 시네 루프 동작으로 전환한다(S1060). 시네 루프 동작시, GPU는 시스템 메모리(530)의 빔포밍 등 추가적인 프로세싱이 수행된 데이터가 저장된 제2 영역에 DMA 방식으로 접근하여, 이미지를 재구성할 구간들의 데이터를 자신의 로컬 메모리로 선택적으로 복사하고(S1070), 복사된 데이터에 기 수행된 프로세싱 이후의 프로세싱을 수행할 수도 있다(S1080). 본 실시예는 플레이백(Playback) 되는 정보가 시스템 메모리의 제2 영역에 저장될 당시의 특정 프로세싱 방식에 의해 제한적일 수밖에 없다는 점(종래의 시네 루프 방식의 제한)에서는 도 9a 및 도 10a의 실시예와 상이하나, 실시간 동작시에 적용되는 GPU의 효율적인 시스템 메모리 접근 방식을 시네 루프 동작에도 그대로 이용할 수 있다는 장점을 그대로 가진다.
이상의 실시예들에서 각 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 각 실시예들에 기재된 순서를 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 전술한 실시예들은 시계열적인 순서로 한정되는 것은 아니다.
한편, 전술한 실시예들로 설명된 초음파 이미지 생성 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
(부호의 설명)
110: 트랜스듀서 120: 프런트 엔드 유닛
130: 호스트 PC 140: 디스플레이 장치
210: 송신부 220: 수신부
230: 프런트 엔드 처리 회로 510: CPU
520: GPU 530: 시스템 메모리
531: 제1 영역 532: 제2 영역
540: 브리지 칩 550: 데이터 버스

Claims (54)

  1. 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치에 있어서,
    상기 호스트 PC는
    시스템 메모리;
    하나 이상의 병렬 코어 프로세서; 및
    상기 시스템 메모리 내의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 메인 프로세서(Central Processing Unit: CPU)를 포함하고,
    상기 프런트 엔드 유닛은 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 상기 제1 영역에 상기 채널 데이터를 전송하고,
    상기 병렬 코어 프로세서는 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하는 것을 특징으로 하는 초음파 진단 장치.
  2. 제1항에 있어서,
    상기 프런트 엔드 유닛 및 상기 병렬 코어 프로세서는,
    상기 제1 영역의 주소 정보를 이용하여, 상기 제1 영역에 동시에 접근가능한 것을 특징으로 하는 초음파 진단 장치.
  3. 제2항에 있어서,
    상기 제1 영역의 주소 정보는,
    상기 제1 영역의 물리적 주소(Physical Address) 또는 상기 물리적 주소와 매핑(Mapping)되는 논리적 주소(Logical Address)인 것을 특징으로 하는 초음파 진단 장치.
  4. 제1항에 있어서,
    상기 프런트 엔드 유닛은,
    상기 채널 데이터에 대해 채널별로 데이터 패킷을 생성하고, 채널별 데이터가 상기 제1 영역 내에 연속된 주소공간에 저장되도록 각 데이터 패킷의 목적지 주소를 할당하는 것을 특징으로 하는 초음파 진단 장치.
  5. 제4항에 있어서,
    상기 프런트 엔드 유닛은,
    상기 데이터 버스의 최대 페이로드 크기(Max Payload Size)를 기준으로, 상기 채널 데이터에 채널별로 라운드-로빈(Round-Robin) 방식을 적용하여 데이터 패킷을 생성하는 것을 특징으로 하는 초음파 진단 장치.
  6. 제1항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 프로세스 수행시, 상기 제1 영역에 저장되는 채널 데이터를 여러 블록으로 분할하고, 분할된 블록들을 동시 복사 동시 수행 (Concurrent Copy and Execution) 방식으로 처리하는 것을 특징으로 하는 초음파 진단 장치.
  7. 제6항에 있어서,
    상기 채널 데이터를 분할하는 기준은,
    상기 채널 데이터의 획득시 사용한 초음파 송신 방식에 따라 달리하는 것을 특징으로 하는 초음파 진단 장치.
  8. 제6항에 있어서,
    상기 초음파 송신 방식이 집속 초음파를 이용하는 것인 경우에, 각 블록은 하나 이상의 스캔 라인 데이터의 집합으로 구성되는 것을 특징으로 하는 초음파 진단 장치.
  9. 제8항에 있어서,
    상기 블록의 크기는
    스캔 깊이(Scan Depth), 스캔 라인(Scanline)의 수, 앙상블(Ensenble), 프레임율(Frame Rate) 및 실시간/비실시간 동작 여부 중 적어도 어느 하나에 따라 결정되는 것을 특징으로 하는 초음파 진단 장치.
  10. 제6항에 있어서,
    상기 초음파 송신 방식이 평면파를 이용하는 것인 경우에, 각 블록은 복수의 프레임 데이터의 집합으로 구성되는 것을 특징으로 하는 초음파 진단 장치.
  11. 제10항에 있어서,
    상기 블록의 크기는
    스캔 깊이, 스캔 라인의 수, 앙상블, 프레임율, 합성할 프레임의 수 및 실시간/비실시간 동작 여부 중 적어도 어느 하나에 따라 결정되는 것을 특징으로 하는 초음파 진단 장치.
  12. 제1항에 있어서,
    상기 초음파 진단 시스템은,
    상기 호스트 PC의 실시간 처리능력을 넘어서는 채널 데이터를 획득하는 것을 특징으로 하는 초음파 진단 장치.
  13. 제12항에 있어서,
    상기 초음파 진단 장치가 실시간 처리 방식으로 동작하는 경우에,
    상기 병렬 코어 프로세서는 상기 제1 영역에 저장되는 채널 데이터 중 일부만을 선별적으로 프로세싱하는 것을 특징으로 하는 초음파 진단 장치.
  14. 제12항에 있어서,
    상기 초음파 진단 장치가 시네 루프 동작시,
    상기 병렬 코어 프로세서는 상기 제1 영역에 저장되는 모든 채널 데이터 또는 적어도 실시간 처리 방식으로 동작하는 경우보다 많은 양의 채널 데이터를 프로세싱하는 것을 특징으로 하는 초음파 진단 장치.
  15. 제1항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 초음파 이미지를 생성하기 위한 프로세스들 중 어느 한 단계의 결과물을 상기 시스템 메모리의 제2 영역에 DMA 전송하는 것을 특징으로 하는 초음파 진단 장치.
  16. 제15항에 있어서,
    상기 초음파 진단 장치는,
    시네 루프 동작 시, 상기 시스템 메모리의 상기 제1 영역 및/또는 상기 제2 영역을 시네 메모리로 사용하는 것을 특징으로 하는 초음파 진단 장치.
  17. 제1항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 프로세스 수행 시, 입력 데이터 및 출력 데이터를 저장하는 것으로 오프-칩 메모리(Off-chip Memory)의 이용을 제한하는 것을 특징으로 하는 초음파 진단 장치.
  18. 제1항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 프로세스 수행 시, 온칩 메모리(On-chip Memory)를 중간 결과물의 저장에 이용하는 것을 특징으로 하는 초음파 진단 장치.
  19. 제1항에 있어서,
    상기 병렬 코어 프로세서는
    GPU(Grapic Processor Unit), 범용GPU(General-Purpose GPU: GPGPU) 및 다중내장코어(Many Integrated Core: MIC) 중 어느 하나인 것을 특징으로 하는 초음파 진단 장치.
  20. 제1항에 있어서,
    상기 프런트 엔드 유닛은,
    FPGA(Field Programmable Gate Array)인 것을 특징으로 하는 초음파 진단 장치.
  21. 제1항에 있어서,
    상기 프런트 엔드 유닛은,
    주변기기 형태로 상기 호스트 PC에 통합된 것임을 특징으로 하는 초음파 진단 장치.
  22. 제1항에 있어서,
    상기 프런트 엔드 유닛은,
    BTB(Board-to-Board) 접속으로 프로브 내에 통합된 것을 특징으로 하는 초음파 진단 장치.
  23. 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛에 있어서,
    상기 트랜스듀서로부터 실시간으로 전송되는 RF 신호를 디지털 신호로 변환하는 A/D 컨버터;
    상기 A/D 컨버터의 출력을 채널별로 버퍼링하는 버퍼 메모리; 및
    상기 버퍼 메모리에 버퍼링되는 채널별 데이터를 Round-Robin 방식으로 스케줄링하여, 호스트 PC의 데이터 요청과 무관하게, 데이터 버스를 통해 상기 호스트 PC의 시스템 메모리 상의 페이지-락된(Page-locked) 영역에 전송하는 처리회로
    를 포함하는 프런트 엔드 유닛.
  24. 제23항에 있어서,
    상기 처리회로는,
    상기 호스트 PC로부터 상기 페이지-락된 영역의 주소 정보를 획득하는 것을 특징으로 하는 프런트 엔드 유닛.
  25. 제23항에 있어서,
    상기 처리회로는,
    상기 호스트 PC와 연결된 데이터 버스에 대한 버스 마스터링(Bus Mastering)을 통해, 채널별로 데이터 패킷을 생성하여, 상기 시스템 메모리 상의 페이지-락된 영역 내의 목적지 주소로 전송하는 것을 특징으로 하는, 프런트 엔드 유닛.
  26. 제25항에 있어서,
    상기 목적지 주소는,
    채널별 데이터가 연속된 주소 공간에 저장되도록 할당되는 것을 특징으로 하는 프런트 엔드 유닛.
  27. 제23항에 있어서,
    상기 RF 신호는,
    디지털 신호로 변환되기 전 또는 후에, 저주파 필터링(Low-pass Filtering), 안티-엘리어싱 필터링(Anti-aliaing Filtering), 펄스 압축(Pulse Compression), 대역통과 필터링(Band-pass Filtering), IQ 복조(IQ Demodulation) 및 데시메이션(Decimation) 중 적어도 일부를 포함하는 전처리(Pre-processing)가 적용되는 것을 특징으로 하는 프런트 엔드 유닛.
  28. 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치의 호스트 PC에 있어서,
    시스템 메모리;
    하나 이상의 병렬 코어 프로세서; 및
    상기 시스템 메모리 내의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 메인 프로세서(Central Processing Unit: CPU)를 포함하고,
    상기 프런트 엔드 유닛은 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 상기 제1 영역에 상기 채널 데이터를 전송하고,
    상기 병렬 코어 프로세서는 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하는 것을 특징으로 하는 호스트 PC.
  29. 제28항에 있어서,
    상기 채널 데이터는,
    상기 프런트 엔드 유닛의 전송과 동시에, 채널별로 상기 제1 영역 내의 연속된 주소공간에 저장되는 것을 특징으로 하는 호스트 PC.
  30. 제28항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 프로세스 수행시, 상기 제1 영역에 저장되는 채널 데이터를 여러 블록으로 분할하고, 분할된 블록들을 동시 복사 동시 수행 (Concurrent Copy and Execution) 방식으로 처리하는 것을 특징으로 하는 호스트 PC.
  31. 제30항에 있어서,
    상기 채널 데이터를 분할하는 기준은,
    상기 채널 데이터의 획득시 사용한 초음파 송신 방식에 따라 달리하는 것을 특징으로 하는 호스트 PC.
  32. 제30항에 있어서,
    상기 초음파 송신 방식이 집속 초음파를 이용하는 것인 경우에, 각 블록은 하나 이상의 스캔 라인 데이터의 집합으로 구성되는 것을 특징으로 하는 호스트 PC.
  33. 제30항에 있어서,
    상기 초음파 송신 방식이 평면파를 이용하는 것인 경우에, 각 블록은 복수의 프레임 데이터의 집합으로 구성되는 것을 특징으로 하는 호스트 PC.
  34. 제28항에 있어서,
    상기 초음파 진단 장치가 실시간 처리 방식으로 동작하는 경우에,
    상기 병렬 코어 프로세서는 상기 제1 영역에 저장되는 채널 데이터 중 일부만을 선별적으로 프로세싱하는 것을 특징으로 하는 호스트 PC.
  35. 제28항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 초음파 이미지를 생성하기 위한 프로세스들 중 어느 한 단계의 결과물을 상기 시스템 메모리의 제2 영역에 DMA 전송하는 것을 특징으로 하는 호스트 PC.
  36. 제35항에 있어서,
    상기 초음파 진단 장치는,
    시네 루프 동작 시, 상기 시스템 메모리의 상기 제1 영역 및/또는 상기 제2 영역을 시네 메모리로 사용하는 것을 특징으로 하는 호스트 PC.
  37. 트랜스듀서에 전기적으로 연결되는 프런트 엔드 유닛과, 상기 프런트 엔드 유닛으로부터 데이터 버스를 통해 수신되는 채널 데이터를 처리하는 호스트 PC를 포함하는 초음파 진단 장치가 초음파 이미지를 생성하는 방법에 있어서,
    호스트 PC가 시스템 메모리의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하는 과정;
    프런트 엔드 유닛이 트랜스듀서를 이용하여 채널 데이터를 획득하는 과정;
    상기 프런트 엔드 유닛이 상기 제1 영역에 상기 채널 데이터를 전송하는 과정; 및
    상기 호스트 PC에 포함된 메인 프로세서 및 병렬 코어 프로세서를 이용하여, 상기 채널 데이터에 대해 초음파 이미지를 생성하기 위한 프로세스를 수행하는 과정;
    을 포함하되,
    상기 프런트 엔드 유닛 및 병렬 코어 프로세서는 직접 메모리 액세스(Direct Memory Access: DMA) 방식을 통해 상기 제1 영역에 동시에 접근 가능한 것을 특징으로 하는, 초음파 이미지 생성 방법.
  38. 제37항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  39. 제37항에 있어서,
    상기 프런트 엔드 유닛은,
    상기 채널 데이터에 대해 채널별로 데이터 패킷을 생성하고, 채널별 데이터가 상기 제1 영역 내에 연속된 주소공간에 저장되도록 각 데이터 패킷의 목적지 주소를 할당하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  40. 제37항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 프로세스 수행시, 상기 제1 영역에 저장되는 채널 데이터를 여러 블록으로 분할하고, 분할된 블록들을 동시 복사 동시 수행 (Concurrent Copy and Execution) 방식으로 처리하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  41. 제40항에 있어서,
    상기 채널 데이터를 분할하는 기준은,
    상기 채널 데이터의 획득시 사용한 초음파 송신 방식에 따라 달리하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  42. 제40항에 있어서,
    상기 초음파 송신 방식이 집속 초음파를 이용하는 것인 경우에, 각 블록은 하나 이상의 스캔 라인 데이터의 집합으로 구성되는 것을 특징으로 하는 초음파 이미지 생성 방법.
  43. 제40항에 있어서,
    상기 초음파 송신 방식이 평면파를 이용하는 것인 경우에, 각 블록은 복수의 프레임 데이터의 집합으로 구성되는 것을 특징으로 하는 초음파 이미지 생성 방법.
  44. 제37항에 있어서,
    상기 초음파 진단 장치가 실시간 처리 방식으로 동작하는 경우에,
    상기 병렬 코어 프로세서는 상기 제1 영역에 저장되는 채널 데이터 중 일부만을 선별적으로 프로세싱하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  45. 제37항에 있어서,
    상기 병렬 코어 프로세서는,
    상기 초음파 이미지를 생성하기 위한 프로세스들 중 어느 한 단계의 결과물을 상기 시스템 메모리의 제2 영역에 DMA 전송하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  46. 제45항에 있어서,
    상기 초음파 진단 장치는,
    시네 루프 동작 시, 상기 시스템 메모리의 상기 제1 영역 및/또는 상기 제2 영역을 시네 메모리로 사용하는 것을 특징으로 하는 초음파 이미지 생성 방법.
  47. 명령어들을 저장하는 컴퓨터로 판독 가능한 기록 매체로서, 시스템 메모리와 메인 프로세서(Central Processing Unit: CPU)와 병렬 코어 프로세서를 포함하는 컴퓨터에서 실행되는 경우, 상기 컴퓨터로 하여금,
    상기 시스템 메모리의 일정 영역(이하 '제1 영역'이라 칭함)을 페이지-락(page-lock)하게 하고;
    데이터 버스를 통해 연결되는 프런트 엔드 유닛으로부터 상기 제1 영역에 직접 메모리 액세스(Direct Memory Access: DMA) 방식으로 전송되는 채널 데이터에 대해 초음파 이미지를 생성하기 위한 프로세스를 수행하게 하되;
    상기 병렬 코어 프로세서가 상기 제1 영역에 DMA 방식으로 접근하여, 초음파 이미지를 생성하기 위한 프로세스들 중 적어도 일부를 멀티-스레드 처리(Multi-Thread Processing) 방식으로 수행하도록 하는 명령어를 포함하는 컴퓨터로 판독 가능한 기록 매체.
  48. 제47항에 있어서,
    상기 채널 데이터는,
    상기 제1 영역에 채널별로 연속된 주소공간에 저장된 것임을 특징으로 하는, 컴퓨터로 판독 가능한 기록 매체.
  49. 제47항에 있어서,
    상기 병렬 코어 프로세서로 하여금, 상기 프로세스 수행시, 상기 제1 영역에 저장되는 채널 데이터를 여러 블록으로 분할하고, 분할된 블록들을 동시 복사 동시 수행 (Concurrent Copy and Execution) 방식으로 처리하도록 제어하는 명령어를 더 포함하는 컴퓨터로 판독 가능한 기록 매체.
  50. 제49항에 있어서,
    상기 초음파 송신 방식이 집속 초음파를 이용하는 것인 경우에, 각 블록은 하나 이상의 스캔 라인 데이터의 집합으로 구성되는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  51. 제49항에 있어서,
    상기 초음파 송신 방식이 평면파를 이용하는 것인 경우에, 각 블록은 복수의 프레임 데이터의 집합으로 구성되는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  52. 제47항에 있어서,
    실시간 처리 방식으로 동작시, 상기 병렬 코어 프로세서로 하여금, 상기 제1 영역에 저장되는 채널 데이터 중 일부만을 선별적으로 프로세싱하도록 제어하는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  53. 제47항에 있어서,
    상기 병렬 코어 프로세서로 하여금, 상기 초음파 이미지를 생성하기 위한 프로세스들 중 어느 한 단계의 결과물을 상기 시스템 메모리의 제2 영역에 DMA 전송하도록 제어하는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  54. 제53항에 있어서,
    시네 루프 동작 시, 상기 초음파 진단 장치로 하여금, 상기 시스템 메모리의 상기 제1 영역 및/또는 상기 제2 영역을 시네 메모리로 사용하도록 제어하는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2014/002198 2014-03-14 2014-03-14 소프트웨어 기반의 초음파 이미징 시스템 WO2015137543A1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201480077182.0A CN106102584B (zh) 2014-03-14 2014-03-14 基于软件的超声波成像系统
EP14885705.5A EP3117774B1 (en) 2014-03-14 2014-03-14 Software-based ultrasound imaging system
US15/125,805 US10420536B2 (en) 2014-03-14 2014-03-14 Software-based ultrasound imaging system
PCT/KR2014/002198 WO2015137543A1 (ko) 2014-03-14 2014-03-14 소프트웨어 기반의 초음파 이미징 시스템
JP2016574881A JP2017508582A (ja) 2014-03-14 2014-03-14 ソフトウェア基盤の超音波イメージングシステム
KR1020167001589A KR101911734B1 (ko) 2014-03-14 2014-03-14 소프트웨어 기반의 초음파 이미징 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2014/002198 WO2015137543A1 (ko) 2014-03-14 2014-03-14 소프트웨어 기반의 초음파 이미징 시스템

Publications (1)

Publication Number Publication Date
WO2015137543A1 true WO2015137543A1 (ko) 2015-09-17

Family

ID=54071973

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/002198 WO2015137543A1 (ko) 2014-03-14 2014-03-14 소프트웨어 기반의 초음파 이미징 시스템

Country Status (6)

Country Link
US (1) US10420536B2 (ko)
EP (1) EP3117774B1 (ko)
JP (1) JP2017508582A (ko)
KR (1) KR101911734B1 (ko)
CN (1) CN106102584B (ko)
WO (1) WO2015137543A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788941A (zh) * 2016-09-28 2019-05-21 柯惠有限合伙公司 用于超声成像设备的cpu和gpu处理并行化的系统和方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6724797B2 (ja) * 2017-01-13 2020-07-15 コニカミノルタ株式会社 超音波診断装置、および、その制御方法
EP3651653A1 (en) * 2017-07-10 2020-05-20 SuperSonic Imagine Operatively adaptive ultrasound imaging system
US11436525B2 (en) * 2017-12-01 2022-09-06 Deepwave Digital, Inc. Artificial intelligence radio transceiver
CN109992205B (zh) * 2019-03-27 2020-06-02 无锡海斯凯尔医学技术有限公司 数据存储的装置、方法及可读存储介质
DE102019124811B4 (de) 2019-09-16 2021-05-12 H-Next Gmbh Ultraschallsystem und bildgebendes Ultraschallverfahren
CN110720949B (zh) * 2019-11-12 2020-10-30 无锡海斯凯尔医学技术有限公司 基于超声检测系统的生物体征检测方法
CN111239745A (zh) * 2019-12-31 2020-06-05 飞依诺科技(苏州)有限公司 波束合成处理方法、装置、计算机设备和存储介质
CN113381830B (zh) * 2021-04-22 2023-06-16 聚融医疗科技(杭州)有限公司 基于超声系统实现fpga同步器的实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015079A1 (en) * 1999-06-22 2004-01-22 Teratech Corporation Ultrasound probe with integrated electronics
JP2012011193A (ja) * 2010-06-30 2012-01-19 General Electric Co <Ge> 超音波データ処理方法及びシステム
JP2012020127A (ja) * 2010-07-12 2012-02-02 General Electric Co <Ge> 超音波システム内のデータ伝送を制御するための方法及びシステム
JP2012187418A (ja) * 2005-04-14 2012-10-04 Verasonics Inc ピクセル指向処理による超音波画像処理システム
KR20120125076A (ko) * 2011-05-06 2012-11-14 서강대학교산학협력단 직교 비선형 코드를 이용한 초음파 영상 생성 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526163B1 (en) * 1998-11-23 2003-02-25 G.E. Diasonics Ltd. Ultrasound system with parallel processing architecture
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US20040083311A1 (en) * 2002-06-05 2004-04-29 James Zhuge Signal processing system and method
US7985585B2 (en) * 2004-07-09 2011-07-26 Viacyte, Inc. Preprimitive streak and mesendoderm cells
US8220334B2 (en) * 2006-11-10 2012-07-17 Penrith Corporation Transducer array imaging system
US8395631B1 (en) 2009-04-30 2013-03-12 Nvidia Corporation Method and system for sharing memory between multiple graphics processing units in a computer system
JP5413103B2 (ja) * 2009-09-30 2014-02-12 ミツミ電機株式会社 アンテナ装置
TWI378255B (en) 2009-09-30 2012-12-01 Pai Chi Li Ultrasonic image processing system and ultrasonic image processing method thereof
US9398898B2 (en) * 2011-02-23 2016-07-26 Siemens Medical Solutions Usa, Inc. Multiple beam spectral doppler in medical diagnostic ultrasound imaging
JP5827847B2 (ja) * 2011-09-16 2015-12-02 日立アロカメディカル株式会社 超音波診断装置
JP6049371B2 (ja) * 2011-11-09 2016-12-21 東芝メディカルシステムズ株式会社 超音波診断システム
KR101629701B1 (ko) 2011-12-29 2016-06-14 알피니언메디칼시스템 주식회사 초음파 진단을 위한 송수신 신호를 이용한 초음파 영상 형성 방법과 그를 위한 고강도 집속 초음파 치료 장치
US8792295B2 (en) 2012-01-31 2014-07-29 General Electric Company Method and system for monitoring a transducer array in an ultrasound system
CN102750132B (zh) * 2012-06-13 2015-02-11 深圳中微电科技有限公司 多线程虚拟流水线处理器的线程控制和调用方法及其处理器
US8619800B1 (en) * 2012-12-20 2013-12-31 Unbound Networks Parallel processing using multi-core processor
CN105188847A (zh) 2013-02-28 2015-12-23 爱飞纽医疗机械贸易有限公司 焦点位置的确认方法及用于其的超声波医疗装置
US20150374342A1 (en) 2013-02-28 2015-12-31 Alpinion Medical Systems Co., Ltd. Method for focal point compensation, and ultrasonic medical apparatus therefor
WO2014178457A1 (ko) 2013-04-30 2014-11-06 알피니언메디칼시스템 주식회사 영상 확대 방법과 그를 위한 초음파 의료 장치
US9332966B2 (en) * 2014-02-04 2016-05-10 General Electric Company Methods and systems for data communication in an ultrasound system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015079A1 (en) * 1999-06-22 2004-01-22 Teratech Corporation Ultrasound probe with integrated electronics
JP2012187418A (ja) * 2005-04-14 2012-10-04 Verasonics Inc ピクセル指向処理による超音波画像処理システム
JP2012011193A (ja) * 2010-06-30 2012-01-19 General Electric Co <Ge> 超音波データ処理方法及びシステム
JP2012020127A (ja) * 2010-07-12 2012-02-02 General Electric Co <Ge> 超音波システム内のデータ伝送を制御するための方法及びシステム
KR20120125076A (ko) * 2011-05-06 2012-11-14 서강대학교산학협력단 직교 비선형 코드를 이용한 초음파 영상 생성 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788941A (zh) * 2016-09-28 2019-05-21 柯惠有限合伙公司 用于超声成像设备的cpu和gpu处理并行化的系统和方法
EP3518781A4 (en) * 2016-09-28 2020-06-17 Covidien LP SYSTEM AND METHOD FOR PARALLELIZING CPU AND GPU PROCESSING FOR ULTRASONIC IMAGING DEVICES

Also Published As

Publication number Publication date
EP3117774A4 (en) 2017-11-15
KR101911734B1 (ko) 2018-10-25
KR20160029803A (ko) 2016-03-15
EP3117774A1 (en) 2017-01-18
CN106102584A (zh) 2016-11-09
EP3117774B1 (en) 2019-01-30
US10420536B2 (en) 2019-09-24
US20170000464A1 (en) 2017-01-05
CN106102584B (zh) 2019-06-21
JP2017508582A (ja) 2017-03-30

Similar Documents

Publication Publication Date Title
WO2015137543A1 (ko) 소프트웨어 기반의 초음파 이미징 시스템
JP4607405B2 (ja) ローカルi/oバスに近接するブリッジでの入出力(i/o)アドレス変換
CN112035389B (zh) 一种plb-axi总线转换桥及其工作方法
WO2007023975A1 (ja) マルチプロセッサ、ダイレクトメモリアクセスコントローラ、及びシリアルデータ送受信装置
JP2005222543A (ja) バスシステム
KR101289011B1 (ko) 데이터 워드들의 스트림의 처리를 위한 디바이스
CN109032973A (zh) Icb总线系统及协议
KR100864834B1 (ko) 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
KR20010062770A (ko) 데이터 전송 장치
CN112416855B (zh) 一种基于树状片上网络的数据采集处理片上系统
JPH1040215A (ja) Pciバス・システム
CN115168264A (zh) 一种跨时钟域的apb总线桥及其方法
RU2419139C1 (ru) Программируемое устройство цифровой обработки сигналов
CN113596469A (zh) 一种软硬结合且高效传输的视频解码方法
KR960006507B1 (ko) 컴퓨터 시스템, 시스템 확장장치, 버스 결합장치 및 버스 신호 전송방법
RU2402807C1 (ru) Устройство цифровой обработки сигналов
JP3620173B2 (ja) アドレス変換回路及びマルチプロセッサシステム
JP3776513B2 (ja) 画像処理装置
Ammendola et al. Architectural improvements and technological enhancements for the APEnet+ interconnect system
JP2003245278A (ja) 超音波診断装置
WO2015080316A1 (ko) 초음파 영상 재구성을 위한 데이터 처리 방법 및 장치
WO2015041380A1 (ko) 고조파 영상 형성 방법과 그를 위한 초음파 의료 장치
JP2982301B2 (ja) コンピュータ装置
KR20020051545A (ko) 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법
JP2010152604A (ja) 情報処理装置及び画像データ記録システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14885705

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20167001589

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2016574881

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2014885705

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 15125805

Country of ref document: US

Ref document number: 2014885705

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE