한국어판 ARM System Developer's Guide

Andrew N. Sloss, Chris Wright, Dominic Symes 저 / 씨랩시스 역

이 책은 개발자들의 관점에서, 특히 소프트웨어에 초점을 맞추어 ARM 코어의 동작 과정에 대해 이해하기 쉽게 설명하고 있다. C와 어셈블리어로 효율적인 ARM 소프트웨어를 작성하는 방법과 그 코드를 최적화시키는 방법에 대해서도 다루고 있다. 책 전반에 걸쳐 설명되어 있는 예제 소스 코드들은 상용 제품에 바로 적용될 수도 있고, 제품 소프트웨어를 빠르게 개발하기 위한 템플릿으로 사용될 수도 있다.


도서 상세

분야: [데이터베이스 & 빅데이터, 시스템 운영]

출간일: Feb 28, 2005

페이지: 0

도서정가: 38,000 원

ISBN: 9788955508390

부가 정보


출판사 서평


지난 10년 동안 ARM 아키텍처는 세계에 가장 널리 퍼져 있는 프로세서 중 하나가 되었다. 약 20억 개 이상의 ARM 프로세서가 모바일 폰에서부터 자동 브레이크 시스템에 이르기까지 다양한 제품들 속에 집적되어 사용되고 있다. 반도체 회사와 제품 설계 회사에 근무하는 개발자들의 월드와이드 커뮤니티에는 많은 하드웨어 엔지니어, 시스템 설계자, 소프트웨어 개발자들이 참여하고 있지만, 현재까지도 ARM 기반의 시스템을 위한 시스템 및 소프트웨어를 개발하기 위해 필요한 것들에 대해서 직접적으로 언급한 책은 하나도 없었다. 

이 책은 ARM 명령어 세트와 Thumb 명령어 세트, 인텔의 XScale 프로세서, ARM 아키텍처의 버전별 차이에 대해서도 다루고 있다. 또한 DSP 알고리즘을 어떻게 구현하는가에 대한 설명과 익셉션 및 인터럽트 핸들러, ARM 코어에 적용된 캐시 기술, 효율적인 메모리 관리 기술 등에 대해서도 설명하고 있다. 마지막 장에서는 ARMv6를 기준으로, DSP와 미디어 처리 기능이 향상된 최근의 명령어 세트의 변화 추이를 살펴봄으로써 ARM 아키텍처의 미래에 대해 알아본다.

< 이 책의 특징>

- 시스템 및 소프트웨어 관점에서 ARM 코어를 설명 
- ARM 개발자들에게 필요한 깊이 있는 지식과 풍부한 ARM 소프트웨어 개발 경력을 갖춘 개발자들의 저서
- 실무에 적용 가능한 실행 코드에 대한 자세한 설명. 출판사 웹사이트(www.mkp.com/companions/1558608745) 에서도 다운로드 가능
- 간단한 임베디드 운영체제 포함
- 컴파일러, 예제소스, 기타 실습을 위한 관련자료를 ㈜씨랩시스 홈페이지(www.clabsys.com)에서 제공

● 부록 CD-ROM에 대하여
CD 책에 수록된 예제 소스들, GNU Software Tools (GCC v3.4.2/GDB v6.0), ArmDown v3.3, Training Kit

저자 소개

Andrew N. Sloss : 1987년부터 ARM 프로세서를 사용하기 시작했다. ARM 프로세서 기반으로 다양한 어플리케이션을 개발함으로써 폭넓은 경험을 쌓았는데, ARM2, ARM3 프로세서를 이용하여 최초의 중국어와 이집트 상형문자를 위한 편집 시스템을 디자인하기도 하였다. 그는 6년 전부터 ARM사의 미국 영업부 소속으로 근무하고 있다.

Chris Wright : 현재 영국 캠브리지, ARM 사의 소프트웨어 엔지니어로서, 1995년부터 ARM 기반의 임베디드 소프트웨어를 담당하고 있다. 1989년에 처음으로 ARM 기반으로 프로그래밍을 시작하였는데 특히 알고리즘과 최적화 기법에 관심이 많다. ARM에 소속되기 전에는 상용의 일반 ARM 소프트웨어를 다루었다.

Dominic Symes : 1980년 초, 그는 Lockheed Advanced Marine Systems에서 임베디드 시스템을 시작했다. 그곳에서 근무하는 동안, 그는 인텔 8051 계열의 마이크로 컨트롤러를 사용하여 조그만 소프트웨어 컨트롤 시스템을 만들었다. Lockheed Palo Alto 연구소와 Dow Jones Telerate의 소프트웨어 개발 그룹에서 오랫동안 일을 하다가, 최근 몇 년간은 ARM사의 고객 지원 그룹에 소속되어, ARM 기반으로 새로운 제품을 개발하는 파트너 회사들에게 교육과 기술 지원을 제공하는 업무를 담당하였다.


역자 소개

씨랩시스 : ㈜씨랩시스는 2002년 설립된 사이버 랩(Cyber Lab)을 그 전신으로 하고 있으며, 2004년 법인 설립을 하면서 ㈜씨랩시스(CLabSys : Cyber Lab System)로 회사명을 변경하였다.

Chapter 01 ARM 임베디드 시스템 
1.1 RISC의 특징 2
1.2 ARM 프로세서의 특징 4
1.3 ARM 하드웨어 임베디드 시스템 아키텍처 6
1.4 소프트웨어 계층 구조 12
1.5 요약 정리 16

Chapter 02 ARM 프로세서 개요 
2.1 범용 레지스터 22
2.2 CPSR 레지스터 23
2.3 파이프라인 32
2.4 ARM 프로세서에서의 익셉션 35
2.5 캐시 메모리와 코프로세서 36
2.6 아키텍처 버전 40
2.7 ARM 프로세서의 버전별 특징 42
2.8 요약 정리 48

Chapter 03 32비트 ARM 명령어 
3.1 데이터 처리 명령어 55
3.2 분기 명령어 66
3.3 로드-스토어 명령어 67
3.4 SWI 명령어 82
3.5 PSR 명령어 84
3.6 상수값 로드 87
3.7 ARMv5E 89
3.8 조건부 실행 93
3.9 요약 정리 94

Chapter 04 16비트 Thumb 명령어 
4.1 Thumb 모드에서의 레지스터 101
4.2 ARM-Thumb 인터워킹 101
4.3 무조건 분기 명령어 104
4.4 데이터 처리 명령어 105
4.5 단일-레지스터 전송 명령어 107
4.6 다중-레지스터 전송 명령어 109
4.7 스택 명령어 110
4.8 소프트웨어 인터럽트 명령어 111
4.9 요약 정리 112

Chapter 05 최적화된 C 프로그래밍 
5.1 C 컴파일러에 대한 다양한 오해 114
5.2 적절한 데이터형의 선택 117
5.3 속도 향상을 고려한 C 루프문 126
5.4 ATPCS에서의 레지스터 매핑 134
5.5 서브루틴 호출시 매개변수 처리 137
5.6 포인터 앨리어싱 142
5.7 구조체 145
5.8 비트필드 149
5.9 비정렬 데이터와 엔디안 152
5.10 나눗셈 157
5.11 부동소수점 167
5.12 인라인 함수 및 인라인 어셈블리 167
5.13 이식성 문제 171
5.14 요약 정리 173

Chapter 06 ARM 어셈블리 코드 작성 및 최적화 방안 
6.1 어셈블리 코드 작성 177
6.2 최적화 도구 183
6.3 명령어의 스케줄링 184
6.4 적절한 레지스터의 선택 192
6.5 조건 분기 명령어의 활용 203
6.6 최적의 루프문 구현 206
6.7 비트 조작 215
6.8 효율적인 조건 분기 223
6.9 비정렬 데이터의 처리 227
6.10 요약 정리 230

Chapter 07 어셈블리 코드를 이용한 원형함수의 최적화 
7.1 배정밀도 정수 곱셈 235
7.2 정수 정규화와 CLZ 239
7.3 나눗셈 245
7.4 제곱근 269
7.5 초월함수 : LOG, EXP, SIN, COS 272
7.6 엔디안 반전과 비트 연산 279
7.7 포화와 라운딩 연산 285
7.8 난수 생성 287
7.9 요약 정리 288

Chapter 08 디지털 신호 처리 
8.1 디지털 신호의 표현 293
8.2 ARM에서의 DSP 소개 303
8.3 FIR 필터 317
8.4 IIR 필터 332
8.5 이산 푸리에 변환 341
8.6 요약 정리 353

Chapter 09 익셉션과 인터럽트 처리
9.1 익셉션 핸들링 356
9.2 인터럽트 364
9.3 인터럽트 처리 방법 374
9.4 요약 정리 410

Chapter 10 펌웨어 
10.1 펌웨어와 부트로더 414
10.2 예 : Sandstone 420
10.3 요약 정리 427

Chapter 11 임베디드 운영체제 
11.1 기본 컴포넌트 430
11.2 예 : SLOS 432
11.3 요약 정리 450

Chapter 12 캐 시 
12.1 메모리 계층 구조와 캐시 메모리 455
12.2 캐시 아키텍처 459
12.3 캐시 정책 470
12.4 코프로세서 15와 캐시 476
12.5 캐시 메모리의 플러시와 클린 477
12.6 캐시 락다운 499
12.7 캐시와 소프트웨어 성능 514
12.8 요약 정리 515

Chapter 13 메모리 보호 장치(MPU) 
13.1 보호 영역 522
13.2 MPU, 캐시, 쓰기 버퍼의 초기화 525
13.3 MPU 시스템의 예 540
13.4 요약 정리 550

Chapter 14 메모리 관리 장치(MMU) 
14.1 MPU에서 MMU로 이동 553
14.2 가상 메모리의 동작 방법 554
14.3 ARM MMU 563
14.4 페이지 테이블 564
14.5 변환 참조 버퍼 570
14.6 도메인과 메모리 접근권한 574
14.7 캐시와 쓰기 버퍼 577
14.8 코프로세서 15와 MMU 설정 578
14.9 고속 문맥전환 확장(FCSE) 581
14.10 예 : 간단한 가상 메모리 시스템 586
14.11 mmuSLOS 614
14.12 요약 정리 614

Chapter 15 ARM 아키텍처의 미래 
15.1 ARMv6에서의 DSP 및 SIMD 명령어 618
15.2 ARMv6에서 지원하는 시스템 엔진과 멀티프로세서 629
15.3 ARMv6의 특징 633
15.4 향후 새로운 기술 635
15.5 요약 정리 637

Appendix A ARM과 Thumb 어셈블리 명령어 
A.1 부록 사용법 640
A.2 표기법 641
A.3 Arm 명령어와 Thumb 명령어 목록(알파벳 순) 645
A.4 ARM 어셈블러 퀵 레퍼런스 696
A.5 GNU 어셈블러 퀵 레퍼런스 708

Appendix B ARM과 Thumb 명령어 인코딩 
B.1 ARM 명령어 세트 인코딩 714
B.2 Thumb 명령어 세트 인코딩 715
B.3 프로그램 상태 레지스터 722

Appendix C 프로세서와 아키텍처 
C.1 ARM 명명법 724
C.2 코어와 아키텍처 724

Appendix D 명령어 실행 사이클 
D.1 명령어 실행 사이클 표 사용하기 728
D.2 ARM7TDMI 명령어 실행 사이클 730
D.3 ARM9TDMI 명령어 실행 사이클 731
D.4 StrongARM1 명령어 실행 사이클 733
D.5 ARM9E 명령어 실행 사이클 734
D.6 ARM10E 명령어 실행 사이클 736
D.7 인텔 XScale 명령어 실행 사이클 738
D.8 ARM11 명령어 실행 사이클 740

Appendix E 참고서적 
E.1 ARM 관련 서적 748
E.2 알고리즘 관련 서적 748
E.3 메모리와 캐시 아키텍처 관련 서적 748
E.4 운영체제 관련 서적 749