Memory 란 무엇인가.
bios에 전원이 들어와서 MBR 에서 부트로더를 메모리에 적재 시키면 부트로더는 메모리 Rom, Ram을 휘젓고 다니며 init 프로그램을 실행시켜 리눅스 커널을 동작 시킨다.
부트로더가 Rom 과 Ram 을 휘젓고 다닌다고 하였는데 사실은 블럭을 이동하며 실행된다.
우선 Memory의 구조를 이해해야 하는데,
위와 같이 간단하게 살펴보자면, Rom 은 비활성 Flash Memory 이며, Ram 은 휘발성 Memory 이다.
먼저, XIP 를 이해해야 하는데 XIP(excute in place) 로 Random access 가 가능하며, 메모리 상에서 직접 code, program 을 실행 할 수 있다는 것을 의미한다.
Ram 은 모두 xip 가 지원되며, Rom 에서는 Nor 만 xip 가 지원된다.
sram 은 가장 비싸며, 가만히 있어도 알아서 된다고 생각해도 된다.
dram 은 시간이 오래 지속 될 경우 data가 증발 될 수 있다. 그러므로 주기적으로 전기적인 신호를 주어야 한다.
psram 은 가짜 sram 으로 자동으로 전기적 신호를 주는 dram 이다.
sdram 과 ddr sdram 은 동기, 비동기 의 차이가 있다.
Nor 의 경우 xip 가 지원되며, 이전에는 psram + nor 조합으로 nor 에 code, psram 에 data 로 Memory 가 구성되었으나, 최근에는 대용량을 필요로해서 (ddr) sdram + nand 조합을 추구하는 추세이다. 결국 nand 는 단지 저장용이고 nand 를 sdram 에 복사해 주어야 하므로 개발자 입장에서는 손이 많이 가는 작업일 수 밖에 없다.
만일 (ddr) sdram + nand 조합의 경우 부트로더를 실행해 주어야 하는데 xip 를 지원하지 않는 nand 에서 어떻게 실행이 되냐고 궁금해 할 수 있다. 그 해답은 power 가 on 되면 먼저 rom type을 check 하게 되고, nand 일 경우 첫 번째 block 의 부트로더를 internal Ram 에 올라가고, 부트로더는 nand 두번째 block 이후에 들어있는 프로그램을 sdram 에 모두 복사를 하게 된다. 부트로더는 sdram 의 시작 주소로 점프하게 되며, 그 이후는 nor flash 와 동일하다.
'OS > Linux' 카테고리의 다른 글
Putty, Tera Term VT 사용 (1) | 2020.04.09 |
---|---|
Arm 에 대하여 (0) | 2020.03.18 |
APM 및 게시판 설치하기 (0) | 2020.03.14 |
Network Manager (0) | 2020.03.14 |
웹 서버 설치 및 사용해보기 (0) | 2020.03.14 |