close
티루트 . 처음 . 목록 . 전시 . 앨범 . 찾기 . 일정 . 방명록 . 흔적



+ 최근 글

[t:/] - 최근 글

  • ` 구글 크롬 OS의 미래.. (4)
  • ` 지름 유전자는 실제로 존재한다..
  • ` 촌지와 학원비와 스트레스.. (2)
  • ` 서울숲 가는 다리.. (2)
  • ` 궁리..
  • ` qt 4.6 beta build note..
  • ` qt RGB32 강제로 박기..
  • ` 153,000KM 차계부. (2)
  • ` 라디오 가가.. (2)
  • ` apt-get proxy 타고넘기..



  • + 최근 댓글

    [t:/] - 최근 댓글

  • ` 다음 100불까지 100만년 *dawnsea
  • ` 님 짱~ 가르침 얻고 갑니다.. (근데 옆에 광고... *vividian
  • ` 구글 크롬 OS 사용자 면역력이 일반인보다 높다는... *dawnsea
  • ` 기대하고 들어왔는데... 연관업체 주식을 사야될... *vividian
  • ` 개 *dawnsea
  • ` 개드립 치아라 *dawnsea
  • ` 오오 말로만 듣던 Seouler(서울아~들) 였군요 *앤디
  • ` 그런 개 유치한 교육조차 하지 않는 일선학교들의 *앤디
  • ` 보통 운전자보다도 안 밟는 스타일입니다만 (절대... *dawnsea
  • ` 아자씨 몸매가 쭉쭉빵빵이네 *vividian



  • + 최근 방명록

  • ` ToShare.kr. dawnsea 17:02
  • ` http://lezhin.com/420. dawnsea 11/19
  • ` http://www.ted.com/talks/la.... dawnsea 11/17
  • ` http://www.referenceclub.co.... dawnsea 11/16
  • ` http://convergeddevices.net.... dawnsea 11/13
  • ` http://golang.org/. dawnsea 11/12
  • ` http://www.whitebird.co.kr/.... dawnsea 11/12
  • ` http://www.youtube.com/watc.... dawnsea 11/12
  • ` http://uremon.com/life_graph/. dawnsea 11/10
  • ` http://www.youtube.com/watc.... dawnsea 11/09



  • + 최근 엮인글

  • ` 리더십. *[t:/]
  • ` 카리스마란. *[t:/]
  • ` dawnsea의 생각 *dawnsea's me2DAY
  • ` dawnsea의 생각 *dawnsea's me2DAY
  • ` (사진) 삼양목장의 가을 *서울비 블로그
    ARM 참고자료.
    2009/03/20 01:16



    옛날에 풋풋한(?) 여대생이 내 홈피에 질문을 올렸길래.
    소상히 설명해줬던 자료 복구.


    그리고 그녀는 우리네 아름이들이 다들 그렇듯.
    고마웡~♥ 한 마디를 하는 둥 마는 둥 남기고 부잣집 아들 철수랑 동해바다로 놀러갔다. OK?


    난 이해가 안 가는게 옆방에 여대가 MT오면 거기로 왜가냐.
    공대생의 재빠른 리얼 초고속 연산이라면.

    1. (광고속에 나오는) 아름이는 예쁘다.
    2. 옆 방에 왔다는 여대생의 물수준은 아직 모른다.
    3. 과 친구들이 죄다 옆 방으로 가기 시작했다.
    4. 내가 이 방을 지키면 나는 아름이와 단 둘이 된다.

    이것이 공대생임.

    OK?






    ---- 2.


    그림 12-13 을 봅시다.
    나머지 연산을 사용한 경우 컴파일후 어셈블러에서 6명령어를 쓰고 있습니다. 

    C 레벨에서는 더 간단해 보이지만 어셈레벨로 보자면 IF 명령으로 때운 아래 케이스가 더욱 더 효율적입니다.
    컴파일 후 명령어 개수가 4개로 줄었습니다.

    더군다나 가장 최악의 명령인 bl 명령이 빠졌습니다.
    점프문들은 ARM 내부에 파이프를 깨버리기 때문에 효율이 떨어집니다.
    반복적으로 사용되면 낭비가 큽니다.
    그리고 bl __rt_udiv 는 ADS 컴파일러에서 제공하는 내부 라이브러리를 호출한 것입니다.
    사이즈도 커지고, __rt_udiv 안에서 뭔가 잔뜩 하고 오겠죠.
    느리고, 큽니다.
    펌웨어 레벨에서 늘 그렇듯이 printf 류의 코드를 자체 제공 라입을 붙이기 시작하면 느리고 커집니다.
    위에서는 게다가 점프하기 위해서 복귀 주소를 저장하고 복귀하는 명령이 위 아래로 있네요.




    ----3.

    파이프라인이란?
    3개에서 5개정도 명령어를 미리 해석해놓고 있다가 바로바로 펑펑 실행한다고 생각하면 됩니다.
    마이크로프로세서 구조에서 배웠으리라 예상됩니다.
    인스트럭션 패치 -> 인스트럭션 익스큐트 .. 등등 나오는 부분.
    근데 이것이 B 계열 점프문을 쓰면 깨져버립니다.
    새로 파이프에 채워넣어야 되요.
    counter 1 의 경우 stmdb, add, mov, bl 4줄까지 파이프에 채워진 상태로 실행이 되지만,
    bl 이후 어디로 점프할지 예측하기 어렵기 때문에 파이프는 깨지게 됩니다.
    단, arm 11 의 경우 이러한 분기를 효과적으로 예측하는 구조가 포함되어 있긴 합니다.
     




    ----4.

    sinh 의 문제입니다.
    임베디드 프로세서에서는 효율의 문제가 큽니다. 보통 FPU 도 없죠.
    이런 경우 sin 과 같은 계산은 굉장이 낭비를 유발하는 함수가 됩니다.
    따라서 미리 계산된 값을 테이블에 넣어두고 유사값을 찾아내도록 만듭니다.
    양 두 점의 평균값을 구하는 보간까지 적용하기도 합니다.
    이 과정에서 당연히 정밀도는 떨어집니다.
    또한 스위치 - 케이스문도 IF 문의 덩어리인데 이것도 테이블 룩업 방식으로 바꿀 수 있습니다.
    속도는 메모리에서 찾는 그 속도로 끝납니다.
    IF - ELSE 문이 주렁주렁 길어지는 경우 최악의 경우 N회의 비교를 해야 한다면,
    테이블 룩업으로는 무조건 한 방에 끝나죠. 성능에도 도움되지만 전력도 덜 먹습니다.
    따라서 MP3P 같은 경우 무자비한 테이블 룩업을 쓰기도 하고..
    당연히 음질열화가 발생하기도 합니다.



    ----5.

    그 밑에 func (void) 는 뭘하는 건지 모르겠지만. 그냥 메모리를 읽고 쓰는 함수네요.
    포인터 공부좀 하시면 그냥 이해 됩니다.
    0x30000100 위치에 0x12345678 을 쓰고
    0x30000200 에 저장된 값을 읽어서 리턴합니다. 내부 레지스터 조작도 이런 방식으로 하고 별 건 아니에요.



    ---6.

    inw 함수도 역시 메모리를 읽어내는 함수입니다.
    여기서 volatile 의 용도를 보여주고 있습니다. 여기서는 굳이 안 써도 될 것 같습니다만.
    volatile 이 선언되지 않으면 컴파일러 최적화 과정에서 예상치 못한 일들이 일어날 가능성이 있습니다.
    이 키워드는 휘발성 범위를 설정합니다.
    이건 네이버에서 찾으면 수두룩 나올 듯. 펌웨어 개발자들은 상습적으로 쓰죠.

    ---7.

    그 밑에 func1 - func2 내용은 ARM 개발중 intermedia 짬뽕 섞어쓰기를 다루고 있습니다.
    ARM 명령어 보다 thumb 명령어가 코스트가 쌉니다.
    thumb 명령어는 16비트 단위라서 메모리가 절약되고, 리얼뷰로 빌드한다면 성능까지도 개선됩니다.
    이건 좀 복잡한 문제라서 스킵.
    여튼 이걸 이렇게 섞어 쓸 수가 있는데 컴파일러가 코드를 어떻게 생성해주는지 보여준 내용이네요.



    이상.

    dawnsea
    2009/03/20 01:16 2009/03/20 01:16
    tag : IT에세이, 임베디드
    댓글.4 / 엮인글 / HanRSS 구독
    엮인글 주소 :: http://keeptalk.cafe24.com/tc/trackback/1424
    1. kaijew 2009/03/20 09:53  X  O

      와~ 친절하시네요~ (ㅋㅋ)

      • └ dawnsea 2009/03/20 12:09  X

        ㅋㅋ

    2. 린 2009/03/23 02:03  X  O

      10여년쯤 전을 회상해보면_
      정말 다들 옆방으로 가던데요_ ㅋ

      • └ dawnsea 2009/03/23 08:16  X

        아름이셨군요 ㅠ.ㅠ

    다음
    이전

    1 ... 310 311 312 313 314 315 316 317 318 ... 1531
    dawnsea’s Blog is powered by Textcube 1.7.8 : Con moto / Designed by dawnsea / rss feed / A1052253.T295.Y323