Stream processing is becoming increasingly important with a wide variety of applications ranging from mobile devices to high-definition interactive television. Stream processing involves capture, storage, manipulation and transmission of stream data such as 2-D graphics, network packets, audio objects, and full-motion video.
In order to meet the various requirements on the stream processing applications, a flexible and yet powerful solution based on the embedded processor architecture is presented. The key motivation is reuse of existing general-purpose processor platform. To enhance the stream processing capabilities without modifications on the internal processor cores, a processor connection scheme and a smart buffer structure are proposed.
A serial connection of multiple processors increases overall throughput with minimum global wire connections. Due to the producer-consumer locality of stream processing this topology can be applied to most of the stream processing applications. The proposed architecture provides data relay to support applications with complex data flow. The serial connection and kernel locality of stream processing also provides a programmer with easy-to-develop solution without introducing any new programming models and compiler techniques.
A smart buffer provides various memory addressing modes supporting various data types required in the stream processing. The internal address generation logic of the smart buffer mitigates the processor’s burden of memory address calculation. The simulation result shows that the proposed buffer structure reduces instruction count by four processor instructions in accessing memory compared to the conventional structure.
The proposed architecture is implemented in a 0.18㎛ CMOS technology. This processor operates at the maximum frequency of 200MHz with four processing cores included.
점점 더 높은 성능이 요구되고 있는 임베디드 시스템의 성능을 만족하기 위한 방안으로 스트림 프로세싱이 최근 주목을 받고 있다. 스트림 프로세싱은 수행하여야 할 알고리즘을 여러 개의 커널 연산으로 나누고 각 커널을 서로 다른 프로세서에 할당하여 전체적인 성능을 높이기 위한 방법으로 각 커널에 필요한 입출력 데이터를 스트림 형태로 표현하고 있다.
이러한 스트림 프로세싱을 위하여 이 논문에서는 프로세서를 효율적으로 연동하기 위한 방안을 제시하고 있는데, 데이터 스트림을 효율적으로 처리하기 위하여 스마트 버퍼를 제안하고 있다. 제안된 스마트 버퍼는 커널 간을 연결하는 역할과 스트림 데이터를 저장하기 위한 역할을 하고 있는데, 단순한 저장 장소의 역할 뿐만 아니라 주소를 계산하는 기능도 가지고 있다. 데이터를 저장하는 커널과 사용하는 커널 간에 데이터 접근 방식이 다른 경우 주소 계산을 스마트 버퍼가 처리하도록 하여 커널을 처리하는 프로세서의 부담을 줄일 수 있다.
제안된 스마트 버퍼를 사용하는 스트림 프로세서 아키텍처는 0.18㎛ CMOS 공정에서 설계되었으며, 4개의 프로세서 코어를 사용하였을 때 최대 200MHz의 동작 주파수를 갖는다.