2011-07-29 2 views
2

나는 내년 (전기 및 컴퓨터 공학) 다음 학기에있을 것이며 임베디드 시스템 또는 하드웨어 디자인에서 졸업 프로젝트를 찾고 있습니다. 교수님은 현재 시스템을 검색하고 하드웨어/소프트웨어 코드를 사용하여 시스템을 개선하라고 권유했으며, VHDL 또는 Verilog로 전용 하드웨어를 사용하여 시스템을 수행 할 수있는 "자동화 된 라이센스 플레이트 인식 시스템"의 예를 보여 주셨습니다. 더 나은.HW/SW codesign이 특정 응용 프로그램에 유용 할 경우 어떻게 알 수 있습니까?

나는 약간의 수색을했고, 시스템이 잘 작동 하는지를 보여주는 몇 개의 youtube 비디오를 발견했다.

개선의 여지가 있는지 알 수 없습니다. 특정 알고리즘이나 시스템이 느리고 codesign의 혜택을 누릴 수 있는지 어떻게 알 수 있습니까?

답변

2

특정 알고리즘이나 시스템이 느리고 코드 세트의 에 도움이되는지 확인하는 방법?

많은 경우, 이것은 많은 양의 경험 또는 더 많은 양의 시스템 모델링 및 분석으로 만 답변되는 구조적 질문입니다. 다른 경우에는 봉투 뒷면에 5 분이 걸리면 특수화 된 보조 프로세서가 몇 주 동안의 작업을 추가하지만 성능은 향상되지 않는다는 것을 알 수 있습니다.

하드 케이스의 예는 최신 휴대 전화 프로세서입니다. TI OMAP5430을 살펴보십시오. 다양한 유형의 프로세서가 최소 10 개 (PowerVR 블록 만 여러 개의 실행 단위를 가짐) 및 수십 개의 전체 사용자 정의 주변 장치를 가지고 있다는 점에 주목하십시오. '메인'CPU에서 무언가를 오프로드하려는 경우, 잠재적 인 버스 대역폭/실리콘 면적/타임 투 마켓 비용이 고려되어야합니다.

쉬운 경우는 교수님의 언급처럼 될 수 있습니다. DSP/GPU/FPGA는 2D 컨볼 루션 (convolution)과 같은 이미지 프로세싱 작업을 CPU보다 훨씬 빠르게 수행합니다. 그러나 파일 관리와 같은 '하우스 키핑'작업은 FPGA를 다루는 것이 아닙니다.

귀하의 경우, 귀하의 교수가 귀하가 '실제'무언가를하길 기대한다고 생각하지 않습니다. 그가 찾고있는 것이 CPU/GPU/DSP가 잘되고 있는지, 사용자 정의 하드웨어가 잘되어 있는지에 대한 이해입니다. those in bioinformatics과 같은 흥미로운 틈새 문제를 찾아 볼 수 있습니다.

+0

BLAST는 매우 흥미로 웠습니다. – Ahmed

2

codesign이 무엇인지 모르겠지만 전에 Verilog를 사용했습니다. 나는 단순한 이미지 (또는 신호) 처리 작업이 이러한 임베디드 시스템을위한 좋은 후보라고 생각한다. 왜냐하면 많은 시간 동안 대량의 데이터를 실시간 처리 (바람직하게는 SIMD 연산)하기 때문이다.

우리의 두뇌가 우리를 놀라 울 정도로 복잡한 처리를하지만 실제로는 매우 어렵 기 때문에 이미지 처리 작업이 종종 쉽게 보입니다. 이러한 도전은 이전에 그러한 시스템이 구현 된 것이 아니라 중요한 것입니다. 나는 Hough 변환 (일반화 된 것보다 선과 원에 대해 먼저 - 이미지 처리에서 느린 알고리즘으로 간주 됨)을 구현하고 일부 실시간 분할을 수행합니다. 그것이 진화함에 따라 도전 과제가 될 것이라고 나는 확신한다.

+0

감사합니다. :). 참으로 도움이되는 대답. – Ahmed

0

프로젝트가 끝나면 성능 비교를 위해 소프트웨어 버전과 하드웨어 버전의 알고리즘을 만드는 것이 좋습니다. 개발 시간 등을 비교해 볼 수도 있습니다. 이렇게하면 프로젝트를 더욱 과학적이고 도움이 될 것입니다. 맹목적으로 생각하는 하드웨어는 소프트웨어보다 빠르며 좋은 생각이 아니므로 프로파일 링이 중요합니다.

+0

무한한 시간이 있다고 가정 할 때 이것은 모두 좋은 것입니다. :) – unkulunkulu

2

파티셔닝이 데이터 흐름을 볼 때 가장 먼저해야 할 일."서브 알고리즘"이 들어 맞는 블록 다이어그램을 데이터의 출입과 함께 그립니다. 한 도메인에서 다른 도메인으로 많은 양의 데이터를 이동해야 할 때마다 문제의 일부를 분할의 다른 쪽으로 이동 시키려고합니다.

예를 들어 가장자리 감지를 수행 한 후 임계 값과 비교 한 다음 더 많은 처리를 수행하는 이미지 처리 파이프 라인을 생각해보십시오. 에지 검출의 출력은 각 픽셀에 하나씩 16 비트 부호있는 값이됩니다. 최종 출력은 바이너리 이미지입니다 (비트 세트는 "중요한"가장자리가 어디에 있는지 나타냅니다).

하나 (분명히 순진하지만 요점을 짓는다) 구현은 하드웨어에서 가장자리 감지를 수행하고, 가장자리 이미지를 소프트웨어로 전송 한 다음 임계 값을 전송하는 것일 수 있습니다. 이는 16 비트 값의 전체 이미지를 "나누기"를 통해 전달하는 것과 관련이 있습니다.

하드웨어에서도 임계 값을 적용하는 것이 좋습니다. 그런 다음 8 "1 비트 픽셀"/ 바이트를 이동할 수 있습니다. (또는 심지어 그것을 실행 길이 인코딩).

현명한 대역폭 파티션이 있으면 각 도메인에 맞는 블록이 해당 도메인에 적합한 지 또는 다른 파티션을 고려해야하는지 알아야합니다.

1

일반적으로 HW/SW codesign은 의 비용이 일 때 유용합니다.

이 개 주요 비용 요소는 임베디드 시스템에 있습니다

  • 개발
  • 생산

당신의 생산량이 더 높은, 더 중요한은 생산 비용, 개발 비용 비용 비용이 덜 중요해진다.

오늘날 소프트웨어를 개발하는 것이 하드웨어보다 어렵습니다. 즉, 오늘날 codesign-solution의 개발 비용은 더 높아질 것입니다. 이는 대용량 생산에 주로 유용함을 의미합니다. 그러나 오늘날 FPGA를 (또는 이와 유사한) 코드 닝이 필요하며 비용이 많이 든다.

즉, 두 솔루션이 모두 다른 요구 사항을 충족한다고 가정 할 때 필요한 FPGA의 비용이 문제 유형 (CPU, GPU, DSP 등)에 대한 기존 솔루션보다 낮을 경우 codesign이 유용합니다. FPGA는 오늘날 값이 비싸기 때문에 고성능 시스템의 경우가 대부분입니다.

기본적으로 시스템이 높은 볼륨으로 생성되고 고성능 장치 인 경우 시스템을 코드화해야합니다.

이것은 약간 단순화되어 10 년 내에 거짓이 될 수 있습니다. 고급 사양에서 HW/SW 합성에 대한 지속적인 연구가 진행되고 있으며 + FPGA 가격이 떨어지고 있습니다. 즉, 약 10 년 후에는 많은 코드가 임베디드 시스템에서 유용하게 사용될 수 있습니다.

관련 문제