공대생의 일기/2010年2010. 12. 22. 16:15

2010년 4월 26일


1. 임베디드 시스템 개요

(1)임베디드 시스템에서 주로 마이크로 컨트롤러를 사용하는 이유는?

➡ 단일 직접회로 내에 프로세서, 메모리, 일부 I/O 장치가 들어 있기 때문에 마이크로 컨트롤러를 사용한다.

(2)시스템 온칩에 대하여 설명하시오

➡ 각각 별개의 칩으로 존재하던 마이크로프로세서, 메모리, 입출력회로 등의 컴포넌트를 하나의 칩에 직접하는 것을 의미한다.

(3)임베디드 소프트웨어의 특징을 설명하시오.

➡ 실시간으로 처리한다. 고도의 신뢰성으로 오작동 및 작동 중지가 없어야 한다. 최적화 기술지원으로 경량화 저적력자원 자원이 효율적으로 관리 되어야 한다. 특정 목적 및 전용 소프트웨어를 개발해야한다. 네트워크 및 멀티미디어 처리기능을 지원해야 한다.

(4)임베디드 미들웨어에 대하여 설명하시오.

➡ 각기 분리된 2개의 프로그램 사이에서 매개 및 연결 역할을 하는 프로그램이다. 주로 복잡한 이기종 환경에서 응용프로그램과 운영체제 환경간에 원만한 통신을 이룰 수 있게 해주는 소프트웨어이다. 개발환경제공, 자원관리, 기기제어, 데이터 전송처리 등의 기능을 가지고 있다.

(5) 임베디드 운영체제의 분류에 대하여 설명하시오.

➡ 독립형 운영체제 / 전용 운영체제- 특정기능만 수행하도록 설계 되었다. 실시간 운영체제 - 실시간 동작을 운영한다. 범용 운영체제 - 응용프로그램을 작성하는 방법으로 다양한 목적과 기능을 가지는 경우에 사용한다.

 

2. 임베디드 시스템 개발과정

(1) 프로세서의 선정에 필요한 조건에 대하여 설명하시오.

● 필요한 인터페이스 : 프로세서는 외부와 연결되어 상호작용을 하므로 외부와의 인터페이스를 제어하고 데이터 처리 능력을 가지고 있어야 한다. 이것은 프로세서의 성능을 의미한다.

● 필요한 메모리 : 메모리 용량을 잘못한 경우 제작비용의 상승 또는 재설계 해야 하는 문제가 발생한다.

-RAM : Buffer, stack, FIFO 등의 크기를 포함한다.
-ROM : ROM의 크기는 프로그램 코드외 변환 테이블의 크기에 달려 있다.

● 필요한 입출력 : 외부 핀들은 입출력 용도로 사용될 수 있다. 따라서 시스템에서 상태 또는 센서의 입력, 제어 출력 등의 필요한 입출력 수에 따라 결정될 수 있다.

● 필요한 인터럽트 : 프로세서에서 외부장치와의 데이터 입출력은 주로 인터럽트로 수행된다.

● 실시간 처리 기능 : 프로세서의 처리속도와 밀접한 관련이 있으며, 인터럽트의 처리능력, 메모리 접근 속도 등도 고려되어야 한다.

● 개발환경 : 새로운 프로세서를 선택하는 것은 새로운 개별도구 및 환경을 구축하고 사용하는 것이다.

 

(2)운영체제를 선정할 때 고려해야 할 사항

➡ 프로세서, 실시간 성능, 예산에 대한 요구사항

 

(3)ICE(In-Circuit Emulator ) 란 무엇인가를 설명하시오.

➡ 프로세서와 나머지 시스템 간의 상호작용 정보를 가로채서 보여주는 장비이다.


(4)디버거에 있는 디버거 기능에 대하여 설명하시오.

➡ BDM 과 JTAG 디버거가 있는데 프로세서의 특별한 핀을 통해 프로세서 자체에 내장된 기능을 사용하는 디버깅 장치이다.

 

(5) 임베디드 시스템의 중요한 특징은?

➡ H/W 와 S/W 사이의 상호 밀접한 관련성을 가지므로 시스템 개발시 동시에 개발이 진행되어야 한다.

  

3. 임베디드 하드웨어

(1) 마이크로프로세서와 마이크로컨트롤러의 차이점에 대하여 설명하시오.

● 마이크로프로세서 : 일반적으로 프로세서를 한 개의 칩으로 구현된 것이며 데이터 처리 부분과 제어부분을 가진 코어를 의미한다. 명령어 처리 능력을 가진 부분만 구현하여 명령어를 최대한 빠르게 수행하는 것을 목적으로 개별 되었다.

● 마이크로컨트롤러 : 명령어를 처리하는 프로세서 코어 이외에 메모리, 입출력장치들 까지 한 칩에 되어 있으며, 코어의 기능 보다는 여러 응용분야에서 필요한 주변기기들이 칩내에 있으므로 개발에서 칩의 수를 줄일 수 있다.

 

(2)임베디드 시스템에서 마이크로컨트롤러를 쓰는 이유를 설명하시오.

① 하나의 부품으로 여러 부품을 대신할 수 있어 저비용 구현이 가능하다.

② 패키지화 가능하여 성능이 향상된다.

③ 신호들이 내부에서 동작하기 때문에 빠른 동작속도를 가진다.

④ 낮은 잡음신호 방출한다.

 

(3) RISC 구조 프로세서의 특징을 설명하시오.

 

RISC (Reduce...)

명령어

대다수가 레지스터를 대상으로 하는 명령어

명령어 형식

고정식

데이터 형식

정수, 부동소수점

레지스터

16개 이상 범용

명령 주기

최소 실행주기 지향

구현방식

Hardwired 방식

단점

컴파일러의 설계가 어려움

 
(4)메모리를 사용할 때 고려되는 특성들에 대해서 설명하시오.

접근성, 쓰기용이성, 휘발성, 프로그램 가능성, 비트 당 가격

 

(5) SRAM과 DRAM의 차이점을 설명하시오.

 

Static RAM

Dynamic RAM

구성

플립플롭으로 구성된 기억장치

전원이 있으면 계속 기억 유지

커패시터로 구성된 기억장치

일정한 주기로 재 기억시킨다.

사용

고속처리가 요구되는 기억장치

주기억장치로 사용

장점

처리속도가 고속이다.

임의 접근 방식

특수목적 기억장치로 사용

회로가 간단, 소비전력이 적다

집적도가 높다

가격이 저렴하다.

단점

소비전력이 크고, 직접도가 낮다

가격이 고가이다.

처리속도가 늦다

일정주기로 재생해야 한다.

 

(6) 플래시 메모리에 대한 특징을 설명하시오.

플래시 메모리에는 NOR형과 NAND형이 있다. NAND 형은 프로그램 소거가 빠르지만, 쓰기에서 바이트 단위 처리가 불가능하며, 일반메모리처럼 단순하게 데이터 버스와 어드레스 버스를 사용하여 읽을 수 없어 소프트웨어적인 작업을 수행해야 하므로 번거러울 뿐 아니라, 별도의 실행코드 저장용 메모리 영역을 필요로 한다.

NOR형은 읽기, 쓰기가 바이트 단위가 가능하지만, 쓰기/지우기가 느리다는 단점이 있다.

 

(7)가상메모리에 대해 설명하시오.

각 프로그램에서 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다. 프로세서는 실행할 명령과 데이터를 읽기/쓰기를 위해 주소정보와 제어신호를 생성한다. MMU는 주소정보가 메모리 장치 영역인가를 검사하고 가능하면 물리주소로 변환하여 메모리제어기로 정보를 전달한다.메모리제어기는 주소정보를 이용하여 메모리장치를 선택하고 해당 메모리장치에 신호를 발생시킨다.

 

(8)입출력 인터페이스에 대해 설명하시오

다양한 물리적인 장치와 전자적인 장치의 동기화, 신호의 변환, 입출력장치와 프로세서의 처리속도차이, 데이터와 메모리의 워드형식차이등을 해결한다.

(9)입출력제어기기에 대해 설명하시오,

데이터의 버퍼링, 제어신호의 논리적변환, 제어신호의 물리적변환, 오류제어 등의 기능을 수행한다.

 

4. 임베디드 시스템 개발환경

(1) 교차 개발환경에 대해 설명하시오.

호스트 시스템과 타깃 시스템의 프로세서가 다른 경우에 소스 프로그램의 컴파일은 호스트 시스템에서 수행되므로 호스트시스템에는 타깃 시스템에서 실행되는 기계어 코드를 생성할 수 있는 개발환경을 말한다.

 

(2) 오브젝트 파일의 정보에 대하여 설명하시오.

● 배치 가능한 오브젝트 파일 : 링크를 쉽게 할 수 있는 2진코드와 데이터를 가지고 있으며, 실행 파일을 만들거나 공유 오브젝트파일을 생성하기 위하여 다른 오브젝트 파일과 결합될 수 있는 형태의 파일

● 실행 가능한 오브젝트 파일 : 실행 가능한 2진 코드와 데이터를 가지고 있으며, 메모리로 직접로드웨어 실행될 수 있는 형태의 파일

● 공유 오브젝트 파일 : 재배치 가능한 오브젝트 파일의 특별한 타입으로, 두 개의 환경에서 링크에 적합한 형태의 2진코드와 데이터를 가지고 있으며, 로드할 때나 실행할 때 동적으로 메모리로 로드되고 링크될 수 있는 파일

 

(3) 사용자 섹션을 정의 하여 메모리를 매핑하는 이유를 설명하시오.

모듈업그레이드 / 메모리크기 제한/ 데이터 보호를 위해 메모리에 매핑한다.

 

(4) 링커 명령파일에 대하여 설명하시오.

MEMORY 지시문 : 타깃 시스템의 메모리 맵을 나타낼 때 사용한다.

SECTION 지시문 : 심볼 해결 과정에 링커가 사용할 메모리 주소를 개발자가 원하는 곳으로 설정하는데 사용한다.

 

(5)개발과정에서 생성된 실행이미지를 전송하는 방법을 설명하시오.

ROM에 전체 이미지를 직접 프로그램 하는 방법

직렬 또는 네트워크 케이블 연결을 통하여 이미지를 다운로드하는 방법

JTAG 또는 BDM 인터페이스를 통하여 이미지를 다운로드 하는 방법

 

(6)임베디드 모니터에 대하여 설명하시오.

타깃 시스템 공급업자가 평가보드를 위하여 제공하는 응용프로그램이다. 초기화 작업을 한다. (주변장치 초기화, 메모리 초기화, 인터럽트 초기화 수행)

 

(7)ON CHIP 디버깅

반도체 칩 업체에서 제공하는 기능으로 고가 장비인 ICE 나 타깃 시스템 없이도 마이크로프로세서와 시스템 자원을 직접접근할 수 있는 것으로 BDM, JTAG을 가리킨다.

 

(8)부트로더에 대하여 설명하시오.

시스템 부트, 이미지 다운로드, 시스템 초기화를 수행하는 코드라 정의 할 수 있다.

부트스트랩의 과정 : 타깃 시스템에 전원이 들어오면 프로세서는 0번지에 들어있는 명령(리셋벡터)을 실행하면 0x00100h번지로 점프하게 되고 이곳에 있는 시작 촟기화 코드로 실행권한이 넘어간다.

 

(10) 초기화 화정에 대하여 설명하시오.

① 리셋벡터에서 수행을 시작

② 프로세서 레지스터에 적절한 값을 설정하여 안정한 상태로 유지

③ 인터럽트와 캐시를 비 활성화

④ 메모리 관련 사항을 초기화

 

5. 임베디드 운영체제

(2)마이크로커널의 특징

프로세스 관리와 메모리관리 기능을 분리시켜 나누어놓은 구조로 클라이언트-서버 운영체제라고도 한다. 추가의 기능이 동적으로 부가될 수 있으므로 규모가 크고 디버깅이 가능한 구조이다. 클라이언트와 서버 기능에 대하여 분리된 메모리 공간을 가지므로 보안성이 좋다.

(3) 임베디드 운영체제의 기술 동향

풍부한 네트워크 솔루션제공

임베디드 기기에 적합한 GUI 지원

멀티미디어의 기능의 확장

모바일 디바이스를 위한 저저력지원

풍부한 하드웨어 지원을 통한 빠른 적용성

원도우 GUI기반의 편리한 사용자 인터페이스를 제공하는 개발도구

특정제품에 대하여 하드웨어에서 응용까지 플랫폼 솔루션 제공

 

(4) 임베디드 시스템에서 리눅스를 적용하는 이유

-모든 소스가 공개된 운영체제 이다. 커널 및 전 계층에 대하여 프로그램 변경 및 수정이 가능하다.

-안정적이며 기능이 검증되어 있다.

-강력한 멀티태스킹, 네트워킹을 지원한다.

-최적화된 작고 안정된 운영체제를 만들어 사용할 수 있다.

-개발환경이 기본적으로 제공된다

-개발비용 및 사용료가 거의 들지 않는다

-다양한 장치를 사용하기 위해 드라이버가 제공된다.

 

(5)임베디드에서 기술적으로 해야할 연구과제는 무엇인가?

- 저전력시스템 개발

-효율적인 메모리관리 기술

-GUI 연구 및 개발

-안전적 시스템 소프트웨어 개발

-실시간 보안

-부분 시스템으로서의 임베디드 시스템

 

(6) 리눅스 커널의 구성에 대해서 설명하시오.

프로세스 관리

프로세스의 생성 및 소멸

프로세스 간의 통신

CPU 스케줄링 동기화

제한된 자원에 대한 다중 프로세서의 효율적인 관리 기법 제공

  

Posted by 검지발가락♡