2014-09-14 4 views
0

최소한의 전력으로 프로그램을 실행하는 옵션이있는 임베디드 'C'코드 컴파일을 만들고 싶습니다. 기존 컴파일러는 속도 나 크기를 최적화합니다. 이것은 각각이 차지 펌프 에너지를 토글하기 때문에 컴파일러가 주소 및 데이터 라인 모두에서 로직 토글 수를 최적화한다는 것을 의미합니다.컴파일러 C 코드, 저전력을 위해 최적화

+5

당신에게 좋은 점은 무엇입니까? – EWit

+0

컴파일러는 주어진 코드로만 많은 작업을 수행 할 수 있습니다. 코드를 최적화하여 더 많은 전력을 줄일 수 있습니다. 불필요한 계산과 I/O를 덜 사용합니다. –

+0

출발점으로, 32에서 0으로 셀 수있는 프로그램이 있고 필요한 에너지를 줄이려고합니다. 아래의 프로그램 2는 최하위 비트가 처리되지 않으므로 마이크로 프로세서 주변의 전력 손실을 분산시킵니다! LSB 스 래싱이 없기 때문에 아마도 5Ghz에서 50Ghz로 CPU 클럭 속도를 높일 수 있습니다! 프로그램 1 For (x = 32; x! = 0; x--); 프로그램 2 - 같은 것. x = 0x80000000; (x) - 게리 33 분 전 – gary

답변

0

(에너지 최적화를위한 자신 만의 C 컴파일러를 개발할 때 그 일을 잘 수행해야 함) 행운을 빈다. 그럴 경우 아마도 MELT을 사용하여 GCC을 사용자 정의 할 수 있습니다.

MAGEEC 프로젝트도 참조하십시오. 하지만 필자는 조만간 컴파일러가 저전력을 위해 마법적이고 자동으로 최적화 될 것으로 기대해서는 안된다. 그것은 전체 프로그램 최적화되어야합니다. (보조, 반자동, 최적화가 필요할 수도 있음).

많은 하드웨어 장치에서 대부분의 전력은 CPU가 소비하는 대부분의 전력입니다. 예를 들어, 스마트 폰에서 가장 많은 에너지를 먹는 것은 화면과 통신입니다 (따라서이를 최적화해야합니다). 사실, 주파수를 낮춰야 할 것입니다 (일부 애플리케이션에 따라).

0

귀하의 하드웨어가 얼마나 최근인지에 따라 훌륭한 목표와 실용적인 방법입니다. 저는 오래된 하드웨어에 대해 많은 것을 할 수 있다고 생각하지 않습니다. 나는 또한 누설 전류를 최소화하기 위해 로직 토글을 최적화한다고 생각하지 않는다. 당신의 프로그램이 매우 단순하고 아주 작지 않은 한 많은 것을 얻게 될 것이다. 상당한 이익을 얻을 수 있다는 것을 확인한 실험을 해봤습니까?

최신 하드웨어를 사용하는 경우 프로세서 및 주변 장치와 관련하여 전원 최적화를위한 컴파일러를 만들 수 있습니다. 최신 프로세서 및 주변 장치는 에너지 보존 상태를 유지합니다. 이러한 상태를 활용하고 에너지 사용량을 크게 줄이기 위해 코드를 다시 작성할 수 있습니다. 또한 환경을 고려해야합니다. 휴대 전화와 같이 임베디드 시장을 겨냥한 모바일 프로세서가 유휴 상태에서 프로세서의 에너지 사용량을 줄이는데 큰 진보를 이루었을지라도,이 프로세서는 주요 에너지 소비량입니다.

나는 에너지 효율성을 위해 소프트웨어 응용 프로그램을 작성하는 방법에 대한 주제로 프레젠테이션을 제공합니다. 아직 게시되지 않았기 때문에 전달할 수 없습니다. 앞으로 몇 달 동안 동일한 주제에 대한 일련의 블로그를 작성하고 싶습니다. 인텔 소프트웨어 웹 사이트를보고 싶다면 소프트웨어 및 에너지 효율성에 대한 다른 글을 읽었습니다. 주의 사항으로, 대부분의 에너지 관련 작업은 Intel GP 및 HPC 프로세서에서 수행되었습니다. 이 원칙은 인텔 모바일 프로세서 및 모바일 및 저전력 임베디드 시장을 겨냥한 기타 최신 프로세서 아키텍처에도 여전히 적용됩니다.