이 책의 내용 및 특징
지난 20년 이상 동안 임베디드 시스템은 소비재와 산업재 그리고 군용 장비 등의 보이지 않는 수많은 부분에 통합되어 제공되어 왔다. 그러나 오늘날의 임베디드 컴퓨팅은 더 이상 단순한 장치 제어에 국한되지 않으며, 빠른 실시간 속도와 초저전력을 소비하면서 정교한 작업을 수행하고 있다.
고성능 임베디드 컴퓨팅은 최신 임베디드 컴퓨팅 시스템의 설계를 위해 고유한 정량적 접근법을 취한다. 즉, 성능, 전력 및 에너지 소비, 비용을 위한 정량적인 목표를 달성할 수 있도록 설계 목표를 정한다. 우리 생활 곳곳에 있는 실세계 애플리케이션들은 이 책이 관련 업계 종사자 및 연구자 그리고 학생들을 위해 왜 가치 있는 자료인지를 증명해 줄 것이다.
주요 내용은 다음과 같다.
■ 휴대폰, 프린터, 디지털 비디오와 같은 실세계 임베디드 애플리케이션들의 예제와, TI C5000 시리즈 DSP, 프리스케일 스타코어(Freescale Starcore) 프로세서, TI OMAP 다중 프로세서 등과 같은 아키텍처를 포함한다.
■ 구성 가능한 프로세서, 실시간 및 전력 소비를 위한 소프트웨어 최적화, 혼합형 다중 프로세서, 임베디드 미들웨어를 포함한 임베디드 컴퓨팅의 고급 주제들을 다룬다.
■ 네트워크, 재구성 가능 시스템, 하드웨어-소프트웨어 공동 설계, 보안, 프로그램 분석에 대한 깊이 있는 검토를 제공한다.
이 책의 구성
■ 1장은 나머지 장들을 위한 몇 가지 중요한 배경 지식을 제공한다. 그리고 임베디드 컴퓨팅의 중심에 있는 일련의 주제들을 정의하며, 방법론과 설계 목표를 살펴본다. 그리고 계산 모델을 조사하는데, 이것은 애플리케이션의 특성을 참조하기 위한 토대로 사용된다. 이 장에서는 이 책 전체에 걸쳐 사용되는 몇 가지 용어에 대한 배경 지식을 제공하기 위해 임베디드 컴퓨팅에 의존하는 몇 가지 중요한 애플리케이션도 살펴본다.
■ 2장은 임베디드 시스템에서 사용되는 서로 다른 형식의 프로세서들을 살펴본다. 전압 조정과 같은 프로세서의 성능 튜닝 기법과, 임베디드 CPU에서의 프로세서 메모리 계층구조의 역할도 살펴본다. 코드 압축과 버스 인코딩과 같은 임베디드 CPU 최적화에 사용되는 기법과 프로세서들을 시뮬레이션하기 위한 기법들을 살펴본다.
■ 3장은 프로그램에 대해서 공부한다. 코드의 품질을 결정하는 데 도움이 되는 컴파일 처리의 배경이 첫 번째 주제이다. 우리는 메모리 시스템 최적화에 많은 시간을 할애하는데, 메모리 동작은 성능과 에너지 소비에서 결정적인 요인으로 작용하기 때문이다. 또한 시뮬레이션과 최악 실행 시간 분석 모두를 포함하는 성능 분석을 살펴본다. 그리고 컴퓨팅 모델이 어떻게 프로그래밍 모델과 언어에 영향을 미치는지에 대해서도 다룬다.
■ 4장은 다중 프로세스 시스템으로 이동한다. 언어 설계와 스케줄링 메커니즘 사이의 상호작용을 포함한 스케줄링 알고리즘을 검토하고 비교한다. 그리고 운영체제 구조와 운영체제에 의해 입는 오버헤드에 대해서 평가한다. 그리고 다중 프로세스 시스템의 작동을 검증하기 위한 방법에 대해서도 살펴본다.
■ 5장은 다중 프로세서 아키텍처에 치중한다. 밀접하게 결합한 다중 프로세서들과 차량에서 사용되는 물리적으로 분산된 시스템을 모두 살펴본다. 아키텍처와 그들의 구성요소(프로세서, 메모리, 네트워크)를 설명한다. 또한 다중 프로세서 설계를 위한 방법론도 살펴본다.
■ 6장은 다중 프로세서를 위한 소프트웨어를 살펴보고, 이들을 위한 스케줄링 알고리즘을 검토한다. 또 다중 프로세서에서 동적인 자원 할당을 위한 미들웨어 아키텍처를 연구한다.
■ 7장은 하드웨어와 소프트웨어의 공동 설계에 치중한다. 임베디드 애플리케이션과 목표 아키텍처를 특성화하는 데 사용되어 온 여러 모델을 살펴본다. 그리고 공동 합성(co-synthesis)을 위한 광범위한 알고리즘들을 다루고, 이 알고리즘에 의해 사용되는 모델과 가정들을 비교한다.