DSP 실수연산이 이렇게 클럭을 많이 잡아먹는줄 몰랐다.
DWORD 포인터의 덧셈연산이 9클럭을 잡아먹는데, 실수 걍 덧셈은 141클럭인가를 잡아먹는다.
이게 무슨일인가??
DSP는 실수연산용 칩이라고 알고있었던 나에게는 상당한 충격이 아닐 수 없다.
이실장님과 고민한끝에 일단 실수 연산을 클럭이 적게드는 정수연산으로 변환시키자는 방안이 나왔는데, 고민한 결과 다음과같이 나왔다.
첫번째는 소수점을 다 버리더라도 실수를 정수로 캐스팅한다음에 정수연산을 하는 방법이다. 이 방법은 1.9를 1로 만들어버리기 때문에 크게 좋은방법은 아닌듯 하다.
둘째는 내가 고정소수점 연산의 형식을 강제로 추출해서 가수는 가수끼리 지수는 지수끼리 더하는 방법이다. 이방법 역시 굉장히 빡시고 쉽게 되리라고 생각하지 않는다.
셋째는 가장 간단하고 쉬운 방법인데, 연산하는 실수 테이블 자체를 * 1000같은걸 해서 정수 테이블로 수정하고 나머지 연산들도 정수연산으로 바꾸는 것이다. 사실 MP3 디코더 역시 실수를 다시 정수로 변환하는 과정이 마지막에 있기때문에, 이방법을 이
용하면 마지막 과정은 / 1000 으로 간단히 해결할 수 있으므로 괜찮은 방법인거 같다.
일단 시도해 보도록하자.
홧팅이다 @0@/~~
DWORD 포인터의 덧셈연산이 9클럭을 잡아먹는데, 실수 걍 덧셈은 141클럭인가를 잡아먹는다.
이게 무슨일인가??
DSP는 실수연산용 칩이라고 알고있었던 나에게는 상당한 충격이 아닐 수 없다.
이실장님과 고민한끝에 일단 실수 연산을 클럭이 적게드는 정수연산으로 변환시키자는 방안이 나왔는데, 고민한 결과 다음과같이 나왔다.
첫번째는 소수점을 다 버리더라도 실수를 정수로 캐스팅한다음에 정수연산을 하는 방법이다. 이 방법은 1.9를 1로 만들어버리기 때문에 크게 좋은방법은 아닌듯 하다.
둘째는 내가 고정소수점 연산의 형식을 강제로 추출해서 가수는 가수끼리 지수는 지수끼리 더하는 방법이다. 이방법 역시 굉장히 빡시고 쉽게 되리라고 생각하지 않는다.
셋째는 가장 간단하고 쉬운 방법인데, 연산하는 실수 테이블 자체를 * 1000같은걸 해서 정수 테이블로 수정하고 나머지 연산들도 정수연산으로 바꾸는 것이다. 사실 MP3 디코더 역시 실수를 다시 정수로 변환하는 과정이 마지막에 있기때문에, 이방법을 이
용하면 마지막 과정은 / 1000 으로 간단히 해결할 수 있으므로 괜찮은 방법인거 같다.
일단 시도해 보도록하자.
홧팅이다 @0@/~~
'OS Kernel' 카테고리의 다른 글
[DSP] 으음.. ㅡ_ㅡ.. 이럴수가... (0) | 2004.09.20 |
---|---|
[DSP] 음냥.. Assembly가 적혀있는 책을 구했다. @0@/~ (0) | 2004.09.19 |
[DSP] 결국은 Assembly의 바다로 ㅡ0ㅠ/~~ (0) | 2004.09.16 |
[DSP] 인도가 소프트웨어가 많이 발달했다고 하던데... (0) | 2004.09.14 |
[DSP] DSP의 실수 계산은 무지 빠른 것이었다. @0@/~~ (0) | 2004.09.11 |