데이터 메모리란?

데이터 메모리는 프로그램 메모리와는 독립적으로 갖추어져 있는 read/write 가능한 데이터 저장 전용의 메모리로, PIC의 특징인 아키텍처의 하나로 되어 있다. 이 데이터 메모리는 다음과 같은 두 종류로 나누어져 있으며, 어느 것이나 read/write를 할 수 있다.


Special Function Register (SFR)

CPU의 기능 동ㅇ작을 지정하거나, 주변 디바이스의 기능, 동작을 지정하기 위한 레지스터이다.


General Purpose Register (GPR)

범용의 데이터 에리어로 사용하며, 변수나 버퍼로 사용한다.




데이터 메모리의 구조

데이터 메모리는 128바이트 단위로 하는 최대 4개의 "Bank"로 구성되어 있다. 또, 각 에리어는 "직접 어드레싱"과 "간접 어드레싱"의 2계통으로 액세스할 수 있다. 이 액세스를 위한 어드레스 구조는 아래 그림과 같이 되어 있다.


직접 어드레싱의 경우

이 경우는 "STATUS" 레지스터에 있는 2비트의 Bank 지정용의 비트 RP0, RP1과 명령의 OP 코드내 F 레지스터를 사용한다.



간접 어드레싱의 경우

이 간접 어드레싱이란 FSR 레지스터에 어드레스를 설정하고, INDF 레지스터를 경유하여 간접적으로 데이터 메모리의 read/write를 하는 방법이다. 이 경우의 어드레스는 "STATUS" 레지스터에 있는 IRP 비트와 FSR의 최상위 비트의 2비트로 Bank를 지정한다.


.



출처 : http://www.ktechno.co.kr/pictech/memframe.html


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

[AVR 구조] 2. 프로그램 메모리 구조  (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 나무길 :

프로그램 메모리란

프로그램 메모리는 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 나무길 :

메모리는 크게 나누어 "프로그램 메모리", "데이터 메모리", "스택 메모리", "EEPROM 메모리" 4종류가 있다. 이 차이는 아래 표와 같다.

 메모리의 명칭

기능 

모리 사이즈, 기타 

프로그램 메모리 

실행되는 프로그램 그 자체를 저장하는 메모리. page의 개념으로 2kB 단위로 구절할 수 있다.

시리즈에 따라 다르다.

0.5kB, 1kB, 2kB, 4kB, 8kB 의 종류가 있다. "Page"의 개념 

데이터 메모리  

Special Function Register(FSR) : 주변기기의 제어, 플래그로 사용

General Purpose RAM(GPR) : 유저가 자유로이 사용할 수 있는 변주 및 데이터 에리어 Bank의 개념으로 128바이트 단위로 간접 어드레싱이 가능

시리즈에 따라 다르다.

64, 96, 128, 192, 256 종류가 있다.

"Bank"의 개념 

 스택 메모리

서브루틴이나 인터럽트시의 복귀버지의 저장용 메모리. 8레벨의 깊이로 프로그램으로는 액세스할 수 없다. 

CALL, RETURN, RETFIE, RETLW 명령 사용만 

EEPROM 

독립적으로 준비된 비휘발성 메모리로 전원이 OFF된 동안에도 지워지지 않는다. 전용의 FSR을 사용하여 간접 어드레싱한다. 

현재는 16F84 등, 미소한 종류가 있을 뿐이지만, 순차 추가 개발이 될 예정. 




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

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