7월, 2011의 게시물 표시

Android Emulator Start Error

안드로이드 에뮬레이터 AVD를 실행할 때 다음과 같은 메세지가 나올 때가  있다. invalid command-line parameter: Files. ~~~blah blah~~~ 이 경우는 AVD의 경로를 제대로 잡지 못하는 경우이므로 경로 사이에 들어간 한글 문자가 있다면 AVD를 옮겨 없애주도록 한다. 혹은 64-bit windows를 사용할 경우에는 preference에서 sdk 위치를 Program Files(x86)에서 PROGRA~2와 같은 방식 (호랑이 담배먹던 시절 도스에서 치던 방식)으로 바꿔주면 정상작동한다

Dell Streak Battery Charger

이미지
스트릭 배터리 충전기 본체의 15번 pin (High-Current +5v in)이 부러지는 바람에 충전을 할 수가 없었다. 그래서 KT tech에 전화했더니 pin이 부러진 것은 메인보드를 '유상'교체해야 하며 또 그 메인보드도 지금 국내에 물량이 없어서 한달여 정도 기다려야 한다고 했다. 일단은 사제 배터리 충전기(이것도 정품이 없다는..)를 구매해서 사용하라는 말을 해서 찾아보니 그렇게 비싸진 않은데 마트에서 팔지도 않을 것 같고 인터넷으로 사려니 배송도 한참 걸릴것 같아서 일단은 골판지와 안쓰는 충전기를 사용해서 하나 만들었다..... 찾아보니 부품 완전교체는 델에서 아예 내려온 지시라고 하는데, 아니 무슨 pin 하나 부러졌다고 보드 전체를 교체한다는 것인지 이것은 좀 어불성설이 아닌가?? 그냥 pin을 약간 extend해서 아다리만 맞게 해주거나 pin만 교체하거나 하면 해결될 것 같은데 connect module만 교체하는 것도 아니고 메인보드 전체를 교체해야 된다니 좀 그렇다 쇼폰케어는 들어놨지만 그래도 5만원돈이 저 pin 하나 부러진 것 때문에....

Multiplier. 3

이미지
Multiplier에 대해선 final posting이 될듯!! 64-bits Kogge-Stone adder를 구현하여 이를 radix-4 Booth encoded 64-bits multiplier에 적용하였다. (KSA를 만들면서 64비트 32비트 각각 스테이지를 하나씩 빼먹고서 며칠동안 완전 헤맸......) 크기는 위와 같다. 졸라 크긴 하다. 다들 수업때 하는 5-stage pipelined MIPS processor 하나 만들면 저만큼 될텐데 -_- output port까지의 delay는 위와 같다. 약 40ns정도에서 연산이 완료됨을 알 수 있다. level 4에서 얻어지는 게 65비트이므로 64-bits KSA에 HA 하나를 연결하여 level 5가 마무리된다. 사실 기대했던 것만큼 많이 delay가 줄진 않았는데 뭐 40ns면 훈훈하지 않나 싶....... 그리고 KSA를 만들 때 현재는 최종적으로 black cell과 gray cell을 따로 module화하여 instance하는 방식으로 structural하게 구현되어 있는데, 코드도 너무 길고 해서 그냥 게이트 레벨로 썼더니 한페이지도 안 넘었다. 근데 그런데 똑같은 로직인데 delay가 90ns에 육박해버렸다 그래서 다시 instance하여 쓰니까 24ns에서 귀결 이건 뭐 왜그런지 모르겠다 게이트레벨로 쓰니깐 신서사이즈를 잘하는지 사이즈는 많이 줄던데 안드로메다행이 되버리니....

Kogge-Stone Adder

이미지
왜인지 정확히는 잘 모르겠지만 나는 굉장히 arithmetic unit에 집착하는 편인 것 같다. 사실 processor의 설계 면에서 봤을 때는 arithmetic unit의 algorithm이나 efficiency는 전체 processor의 성능에 그렇게 큰 영향을 미친다고 볼 수 없기 때문에 (뭐 single cycle CPU라면 얘기가 다르겠지만...) 굉장한 뻘짓이긴 하다만 사실 이것만큼 재밌는 분야가 없는 것 같기도... 여하튼, 오늘의 포스팅은 Kogge-Stone adder인데, 요거는 Peter M. Kogge 횽과 Harold S. Stone 횽이 1973년도에  Kogge, P. & Stone, H.  "A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations" .  IEEE Transactions on Computers , 1973,  C-22 , 783-791 요기서 제기된 이론이 되겠따. 위는 32-bits Kogge-Stone adder의 구조. 하이튼, 잡설 생략하고 톡까놓고 말해보자면 "가장 빠른 adder로 간주된다." 보통 prefix adder는 세 가지 갈래로 나뉘는데 속도↑ ------------------- 크기↓ KSA          HKA          BKA 요렇게 나뉘고 여기서 hybrid adder라던가 하는 것이 등장한다. Ladner-Fischer adder나 공부할때 많이 참조했던 UCA Oklobdzija 교수님 adder라던가 하는 것도 세부 분류라고 볼 수 있다. (현재 비마관 휴게실인데 에어콘물이 졸라 꼴꼴거려서 불안해하고있다) ...

Multiplier. 2

32-bits Radix-4 booth encoded multiplier를 구현했다. compressor를 사용하여 만들어졌으며 현재는 최종적으로 32-bits Ladner-Fischer adder 2개를 연결하여 연산된다. booth encoding을 하기 전보다 크기는 약 1/6정도 증가하였으며 2's complement bits의 음수 연산이 가능하게 되었다. output port까지의 propagation delay는 49ns 정도이며  원래 구성하였던 multiplier와 차이는 없다. 이를 optimization하기 위해서 일단은 64-bits adder들의 비교 및 삽입이 우선적으로 필요하게 되었으며 compressor를 사용하였을 때 carry가 ripple되는 구간이 현재 4-bits CLA 혹은 32-bits LFA로 구성되어 있으므로 이를 변경해 보는것을 시행하여 보도록 하겠다.

Multiplier

이미지
저번에 썼듯이, Multiplier를 booth encoding하지 않아서 음수의 multiplication을 수행하지 못했다. 그래서 radix-4 booth encoding을 (8을 하고싶었으나 +3a 가 안드로메다로...) 했더니 이건뭐 거의 3/2 정도 delay가 더 컸다. 문제는 increment subtract를 위해서 not gate를 통과시킨 후에 +1 을 해주는 데 있어서 레알 +1 을 하니깐 -_- 그래서 그 carry들도 tree에 다 구겨넣었다. 그러니 delay는 1ns정도(_-_) 원래의 multiplier보다 빠르...ㄴ건가? 더할 수들이 반으로 줄었는데 왜! 왜! 왜! (스테이지 수가 똑같자나...._-_) not gate가 또 문제가 되는지도 모르겠다 하이튼 결과값이 제대로 안나올게 뻔하니 오늘은 디버그모드