프로그램 메모리란

프로그램 메모리는 PIC의 기능을 실현하기 위한 프로그램 그 자체를 저장하는 메모리로, ROM(Read Only Memory)로 되어 있다. 이 메모리에 써넣을 때는 "PIC 라이터"가 사용된다.



프로그램 메모리의 구조

프로그램 메모리의 맵은 아래 그림과 같이 되어 있으며, 프로그램 카운터(PC)가 13비트의 길이이므로, 최대 8kB의 메모리 공간을 직접 취급할 수 있다.





어드레스의 문제와 해결법

전체 8kB나 되는 공간을 준비할 수는 있지만, 위 그림의 하측에 나타낸 바와 같이 GOTO나 CALL 등의 명령으로 어드레스할 수 있는 공간은 명령의 어드레스 리터럴부가 11비트밖에 없으므로 2kB의 범위밖에 할 수 없다. 이 문제를 해결하기 위해, "PAGE"라고 하는 개념이 생겨났다. 이 PAGE란 아래 그림에 나타낸 바와 같은 동작을 한다.

즉, 8kB를 2kB 단위의 "PAGE라고 하는 4개의 단위로 나누어지고, 그리고 "PCLATH" 레지스터를 추가하여 설치, pc의 상위 비트로 추가하고, 명령의 어드레스 리터럴 11비트에 이 PCLATH를 더하여 합게 13비트의 어드레스 길이로 하고 있다. 이렇게 해서 goto 명령이나 call 명령도 직접 8Kb의 메모리 공간을 취급할 수 있게 된다.

'MCU > AVR과 그 응용 정리' 카테고리의 다른 글

[AVR 구조] 데이터 메모리 구조  (0) 2015.06.08
[AVR 구조] 1. 메모리 구조  (0) 2015.06.08
[AVR 구조] I/O PORT  (0) 2015.06.07
[AVR 구조] ROM의 종류  (0) 2015.06.07
Posted by 나무길 :