블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
  • total
  • today
  • yesterday
03-30 00:00
1.1 RISC의 특징
  1) RISC
    - 매우 빠른 속도로 한 클럭 안에 실행될 수 있는 간결하면서도 막강한 명령어들을 가지고 있는 아키텍처
    - 하드웨어에 의해 수행되는 명령어들의 복잡도를 줄이는 것이 목표(S/W의 유연성과 복잡성 감소)
    - 컴파일러에 더욱 의존함
  2) 설계 방식
    - 명령어 : 상대적으로 적은 수의 명령어군, 일정한 길이 가짐
    - 파이프라인 : 병렬로 실행될 수 있는 작은 단계로 쪼개져 실행
    - 레지스터 : 거대한 레지스터군
    - Load-Store 아키텍쳐 : 레지스터 활용하여 메모리 액세스 감소
  3) 더욱 단순화되어 더 빠른 클럭으로 동작

1.2 ARM 프로세서의 특징
  - 배터리 전력 요구
  - 코드의 고집적도 : 비용이나 물리적인 크기의 제약으로 제한된 메모리를 가지고 있기 때문
  - 속도가 느린 저가격의 메모리 소자 사용
  - 프로세서 내분에 하드웨어 디버그 기술 포함
  - 순수한 RISC 아키텍처를 채택하고 있지는 않음(임베디드 시스템에 국한되어 있기 때문) : 속도가 아닌 전체적으로 효율적인 시스템 성능 및 전력 소모에 근원

1.2.1 임베디드 시스템을 위한 명령어 세트
  1) 가변 사이클로 실행되는 명령어
  2) 복잡한 명령어 처리를 위한 인라인 배럴 시프터(Inline Barrel Shifter) : 명령어에 의해 사용되기 전에 그 입력 레지스터 중의 하나를 미리 처리
  3) 16비트 Thumb 명령어 : 16비트 or 32비트 명령어로 실행
  4) 조건부 실행
  5) DSP 확장 명령어 : 빠른 16x16비트의 곱셈 처리를 지원하기 위해 디지털 신호 처리(DSP) 확장 명령어 추가
 
1.3 ARM 하드웨어 임베디드 시스템 아키텍쳐
  - ARM 프로세서 : 임베디드 디바이스 제어, 원하는 동작 특성에 맞게 선택하여 사용
  - 컨트롤러 : 주요 기능을 담담하는 블록(인터럽트 컨트롤러, 메모리 컨트롤러 등)
  - 주변 장치 : 칩 외부로 입출력 기능 제공
  - 버스 : 주변 장치간의 통신 담당

1.3.1 ARM 버스 기술 : 칩 내부 버스 사용
  1) 종류
    - 버스 마스터 : 다른 디바이스로 데이터를 전송할 수 있는 논리 장치
    - 버스 슬레이브 : 버스 마스터로부터 전송 요청이 있을 때에만 동작
  2) 버스 아키텍처 구성
    ① 전기적인 특성과 버스폭(16, 32, 64비트)을 담당하는 물리적인 단계
    ② 프로토콜 처리 단계

1.3.2 AMBA(Advanced Microcontroller Bus Architecture) 버스 프로토콜
  - ASB(ARM System Bus), APB(ARM Peripheral Bus), AHB(ARM High Performance Bus)
  - 사용성과 타임 투 마켓 향상
  - AHB : 한방향에 집중된 멀티플레스 버스 기반, 많은 데이터량 처리(64, 128비트폭 지원), 매우 빠른 속도
    1) 오리지날 AHB : 한번에 하나의 버스 마스터만 활성화
    2) Multi-layer AHB : 동시에 여러 개의 버스 마스터를 활성화 상태로 만듦, 멀티프로세서 시스템에 적합
    3) AHB-lite : AHB 버스의 하위셋으로 하나의 버스 마스터로 한정, 표준 AHB 버스의 모든 특성을 요구하지 않는 디자인
    ※ AHB와 Multi-layer AHB는 동일한 프로토콜을 지원하지만 연결 방식이 서로 다르다.

1.3.3 메모리
  1) 메모리 계층 구조
    - 캐시 : 일반적인 성능 향상은 가져오지만 실시간 시스템 응답에는 도움을 주지 못함(임베디드 포함)
    - 주메모리 : 별도 외부의 칩 사용
    - 보조 기억 장치 : 가장 크고 느린 메모리 형태
  2) 메모리폭 : 한 번에 액세스할 수 있는 비트의 수
    - 전체적인 성능 대 가격비에 직접적인 영향, Thumb 명령어 사용을 통해 개선 가능
  3) 메모리의 종류
    - ROM(Read-Only Memory)
    - 플래시롬
    - DRAM(Dynamic Random Access Memory) : 리프레시 작업을 해주어 데이터를 지속적으로 충전 필요
    - SRAM(Static Random Access Momory) : 리프레시 작업 필요 없음
    - SDRAM(Synchronous Dynamic Random Access Memory) :프로세서 버스와 동기화하여 동작

1.3.4 주변 장치
  1) 메모리 컨트롤러 : 다양한 유형의 메모리를 프로세서 버스에 연결해주는 역할
  2) 인터럽터 컨트롤러 : 주변 장치나 디바이스가 실행되려고 할 때, 프로세서에게 인터럽트를 발생
    - 표준 인터럽터 컨트롤러 : 서비스 요청 시, 그 인터럽트 신호를 프로세서 코어에 보냄, 디바이스 비트맵 레지스터 이용
    - 벡터 인터럽트 컨트롤러(VIC) : 인터럽트에 우선 순위 부여, 핸들러 주소 살펴본 후 높은 우선순위인 경우만 프로세서에게 인터럽트 신호 보냄

1.4 소프트웨어 계층 구조
  1) 초기화 코드 : 리셋 이후 운영체제가 실행될 수 있는 상태로 만들어주는 역할
    - 설정 코드 : OS 이미지를 부팅할 수 있도록 타겟 플랫폼을 설정하는 일 담당
    - 진단 코드 : 순서대로 처리하고 있는지 확인하기 위해 하드웨어 시스템 테스트, 문제 찾음
    - 부팅 코드 : 이미지를 로드한 후 그 이미지로 제어권을 넘겨주는 작업(PC를 이미지의 시작 위치로 이동)
    - 메모리 리매핑 : 전원이 공급되면 초기화 곧바로 실행되어야 하기 때문
  2) 운영체제
    - 시스템 리소스 조직(주변 장치, 메모리 처리 시간 등)
    - RTOS : 이벤트에 대한 반응 시간을 보장해야만 함, hard/soft 구분, 일반적으로 보조 저장 장치 불필요
    - 플랫폼 OS: 규모가 크고 실시간성을 요하지 않는 어플리케이션 관리 → MMU 필요, 보조 저장 장치 필요
  3) 어플리케이션 : 환경 제어(어플리케이션을 스케줄링)
posted by lepoussin