마이크로컨트롤러의 Program memory(Flash memory)와 Data memory(SRAM) 비교

Program memory(Flash memory)는 
비휘발성 메모리(Non-Volatile)이고, 

Data memory(SRAM)은 
휘발성 메모리(Volatile)입니다.

비휘발성 메모리(Non-Volatile)

전원이 입력되지 않아도 
데이터가 사라지지 않고 저장할 수 있는 메모리입니다.

주변에서 볼 수 있는 
SD 카드, SSD 메모리, HDD메모리, CD, DVD와 같은 
저장매체와 비슷하다고 생각할 수 있습니다.

마이크로컨트롤러에서는 Flash memory라고 부르며 
데이터를 저장할 수 있는 크기는 
수백 Bytes에서 수 MBytes까지 다양합니다.

일반적으로 마이크로컨트롤러의 핀수가 적거나 
기능이 적을수록 
Program memory(Flash memory)의 크기가 작고,
마이크로컨트롤러의 핀수가 크고 기능이 많을수록 Program memory(Flash memory)의 크기가 큽니다.

휘발성 메모리(Volatile)

전원이 입력되지 않으면 데이터가 사라집니다. 
통상 전원이 입력되었을 때 
초기 값은 Unknown상태입니다.

Unknown상태는 
SRAM의 각 비트값이 '1'이 될 수도 있고
'0'이 될 수 있음을 의미합니다.

따라서 전원이 입력되었을 때 
반드시 SRAM의 데이터를 초기화해야 합니다.

일반적으로 마이크로컨트롤러의 핀수가 적거나 
기능이 적을수록 Data memory(SRAM)의 크기가 작고,
마이크로컨트롤러의 핀수가 크고 기능이 많을수록 Data memory(SRAM)의 크기가 커지게 됩니다.


Data memory(SRAM)의 크기는 
Program memory(Flash memory)에 비하여 
약 1/10이하로 내장되는 경우가 대부분입니다.

단, 영상이나 이미지처리를 목적으로 만들어진 
마이크로컨트롤러는 
Data memory(SRAM)이 
Program memory(Flash memory)에 비하여 
크게 내장된 경우도 있습니다.

또는 영상이나 이미지를 저장하기 위해 
Data memory(SRAM)이외에 DDR메모리가 
별도로 내장하기도 합니다.

Posted by KennyShin
,