자료실

뒤로가기
제목

[PIC 프로그래밍] 3. PIC 프로그래밍시 반드시 알아야 할 사항 - MCU 설계구조(폰노이만, 하버드, RISC, CISC)

작성자 가치창조기술(ip:)

작성일 2011-08-08 18:59:07

조회 2311

평점 0점  

추천 추천하기

내용

MCU내부 구조

모든 MCU는 기본적으로 하버드구조 혹은 폰노이만 구조, 두 가지중 한가지의 설계구조를 가지고 있습니다.

이 두가지 구조의 차이는 CPU와 메모리사이에서 데이터를 어떻게 교환하느냐하는 방법인데 차례대로 살펴보겠습니다.

 

VON-NEUMANN ARCHITECTURE

 

VON-NEUMANN ARCHITECTURE

 

위의 그림에서도 보이지만 폰노이만 구조를 사용하는 MCU는 8bit 데이타버스와 오직 한개의 메모리 블럭만을 사용합니다. 8개의 라인을 통해서만 데이터 교환이 이루어지기때문에 bus에 부하가 걸리고 통신속도는 매우 느리며 비효율적으로 됩니다. CPU는 명령을 읽거나, 혹은 메모리에 데이터를 읽기쓰기를 하거나 한번에 둘중 하나의 명령만을 수행할 수 있습니다.

 

 

HARVARD ARCHITECTURE

 

HARVARD ARCHITECTURE

 

하버드 구조를 사용하는 MCU들은 두개의 데이터 버스를 가지고 있습니다. 한개의 버스는 8비트이며 CPU를 RAM에 연결하고, 다른 하나는 12, 14, 혹은 16비트이며 CPU를 ROM에 연결합니다. 따라서 CPU는 인스트럭션과 데이터를 동시에 엑세스할수 있습니다. 모든 RAM 메모리는 8비트이기때문에 모든 데이터는 8비트 데이터버스로 교환이 가능합니다. 프로그램 작성시에는 8비트 데이터만 신경을 쓰면 됩니다. 즉 프로그램에서 변경하거나 다루는 데이터는 모두 8비트입니다. MCU용 프로그램은 MCU 내부의 ROM에 저장이 되는데, ROM 메모리는 8비트를 가지고 있는 것이 아니라 12, 14, 혹은 16비트를 가지고 있습니다. 여기서 8비트로 빼고 남은 4, 6, 8비트에는 CPU가 8비트 데이터를 가지고 무엇을 해야할지 알려주는 인스트럭션이 있습니다.

하버드 구조의 장점은 다음과 같습니다.:

 

  • 프로그램상의 모든 데이터는 1바이트(8비트)이다. 프로그램을 읽는 데이터버스가 따로 있기때문에 인스트럭션과 데이터를 동시에 읽을 수 있다. 인스트럭션과 데이터를 동시에 읽을 수 있기때문에 모든 인스트럭션은 싱글 싸이클 인스트럭션이다. 2 cycle Jump인스트럭션 제외.
  • 프로그램(ROM 데이터)과 임시 데이터(RAM 데이터)가 분리 되어 있기 대문에 CPU는 두개의 인스트럭션을 동시에 실행시킬 수 있다.
  • 폰노이만 구조를 사용할때는 프로그램에 의해 얼마나 많은 메모리가 차지되고 있는지 알수 없습니다. 기본적으로 대부분의 프로그램 인스트럭션은 두개의 메모리 영역을 차지하는데 하나는 무엇을 해야할지를 알려주는 정보이며, 다른 하나는 어떤 데이터를 가지고 해야할지를 알려주는 정보입니다. 하버드 구조에서는 프로그램 버스가 1 바이트 더 커서 인스트럭션과 데이터를 같이 포함할 수 있습니다. (예. 메모리 위치 + 프로그램 인스트럭션 위치)

 

INSTRUCTION SET

 

INSTRUCTION SET

 

MCU가 이해하는 모든 인스트럭션을 인스트럭션 셋이라고 이야기합니다. 어셈블리어로 프로그램을 만들때, 실행되는 순서로 인스트럭션을 적습니다. 그리고 사용할 수 있는 인스트럭션의 숫자는 제조사에 따라 아래와 같이 제한 되어 있습니다.

 

RISC (REDUCED INSTRUCTION SET COMPUTER)

 

RISC에서는 MCU는 더하기, 빼기, 복사하기 등의 아주 기본적인 연산들만을 인식하고 실행합니다. 좀더 복잡한 연산들은 이러한 기본연산을 조합하여 수행합니다. 예를 들어 곱하기는 더하기를 여러번 하여서 처리할 수 있습니다. 명령어가 적기 때문에 아주 빨리 랭귀지를 배울수 있고 MCU는 빠르게 명령을 실행할 수 있습니다.

 

CISC (COMPLEX INSTRUCTION SET COMPUTER)

 

CISC는 RISC와 반대됩니다. MCU는 200여개가 넘는 인스트럭션을 인식할 수 있으며, 빨리 처리 할 수 있습니다. 하지만 모든 명령어를 다 배우기가 쉽지 않다는 단점이 있습니다.

 

어떻게 올바른 선택을 할 것인가?

 

MCU기반의 장치를 디자인하기 전에 아래와 같이 몇가지 생각을 해보아야 할 것들이 있습니다.

  • 동작을 위해서 몇개의 입력/출력 라인이 필요한가?
  • 릴레이 on/off와 같이 간단한 동작이 필요한가 아니면 좀더 복잡한 연산이 필요한가?
  • 시리얼통산, ADC와 같은 모듈이 필요한가?
  • 얼마나 많은 장치를 생산한 계획인가?

 

많은 MCU와 이러한 질문들은 보면 모든 것이 약간 헷갈려보이지만, 제조사를 선택하고 모델을 선택하고 하나씩 하나씩 공부해나가다 보면 어느순간 다른 모델의 MCU도 금방 이해하고 다룰수 있게 될 것입니다.

 

가치창조기술

www.ubiquitics.co.kr

www.vctec.co.kr

 

 

MCU 개발용 보드

제품특징

  • PIC, dsPIC, PIC24, PIC32MX, AVR, PSoC, 8051, ARM 마이크로프로세서 지원
  • 프로그래머 및 ICD 디버거가 개발보드에 내장되어 있어 경제적
  • COG/LCD/GLCD 장착
  • MCU의 모든 핀들은 개발보드상의 인터페이스 핀에 연결되어 있음
  • 개발보드상의 DIP스위치를 이용하여 개발보드를 설정
  • MCU 핀에 LED 및 푸시버튼이 보드상에 연결되어 있음
  • 즉시 사용가능한 다양한 예제 지원
  • 마이크로일렉트로니카 컴파일러 지원
  • 다양한 개발용 악세사리를 개발보드상에 연결하여 사용이 가능

제품군:

제품군 설명
Microchip PIC

Microchip PIC용 개발보드 제품군

Microchip dsPIC Microchip dsPIC용 개발보드 제품군
Microchip dsPIC24-33 Microchip dsPIC24-dsPIC33용 개발보드 제품군
Microchip PIC32MX Microchip PIC32MX용 개발보드 제품군
Atmel AVR 및 XMega Atmel AVR 및 XMega용 개발보드 제품군
Cypress PSoC Cypress PSoC용 개발보드 제품군
Atmel 8051 Atmel 8051용 개발보드 제품군
NXP ARM NXP ARM용 개발보드 제품군
GPS 개발보드 GPS 개발보드 제품군
MCU 컴파일러

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원
  • 편리하고 직관적인 IDE환경
  • 500개 이상의 라이브러리 함수지원으로 개발시간 절약
  • 다양한 개발용 툴 지원
  • mikroProg 하드웨어 In-Circuit Debugging 지원
  • 즉시 사용가능한 예제 지원

제품 모델:

제품 설명
PIC용 컴파일러 Microchip PIC용 컴파일러
AVR용 컴파일러 Atmel AVR용 컴파일러
dsPIC30/33 및 PIC24용 컴파일러 Microchip dsPIC30/33 및 PIC24용 컴파일러
PIC32용 컴파일러 Microchip PIC32용 컴파일러
8051용 컴파일러 Atmel 및 Silicon Labs 8051용 컴파일러

개발용 악세사리보드

제품특징

  • 악세사리보드로 다양한 MCU와 주변장치의 기능을 테스트
  • 통신/저장/시간측정/디스플레이/측정/오디오/전원공급/기타 등의 악세사리보드
  • Mikroelektronika 개발보드에 연결하여 사용 가능
  • 즉시 사용 가능한 예제 제공

제품군:

제품군 설명
통신용 보드 통신용 악세사리보드
스토리지 보드 스토리지용 악세사리보드
시간측정용 보드 시간측정용 악세사리보드
디스플레이 보드 디스플레이용 악세사리보드
센서 및 측정보드 센서 및 측정용 악세사리보드
오디오 및 보이스 보드 오디오 및 보이스용 악세사7리보드
전원제어보드 전원제어용 악세사리보드
기타보드 릴레이, RFID, 센서 등의 다양한 악세사리보드

MCU 개발용 키트

제품특징

  • PIC, dsPIC, PIC24, PIC32, AVR, 8051 마이크로프로세서 지원 개발용 키트
  • 개발에 필요한 개발보드, 컴파일러 및 악세사리보드 포함
  • 개발용 키트 묶은 구매로 개별구매보다 저렴

제품군:

Part Number 모델 설명
PIC 개발용 키트 Microchip PIC 개발용 키트
dsPIC30 개발용 키트 Microchip dsPIC30 개발용 키트
dsPIC33-PIC24 개발용키트 Microchip dsPIC33-PIC24 개발용 키트
AVR 및 XMega 개발용키트 Atmel AVR 및 XMega 개발용 키트

8051 개발

용 키트

Atmel 및 Silicon Labs 8051 개발용 키트    

 

첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

등록된 댓글이 없습니다.

댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

관리자에게만 댓글 작성 권한이 있습니다.