본문 바로가기

MMU

linux kernel 의 memory mapping 함수 정리 vaddr* = __ioremap(paddr, size) : paddr 로 시작하는 size만큼의 address 를 PA에서 VA로 mapping 한다. mmu page table에 이 range가 등록된다. vaddr* = phys_to_virt(paddr) paddr* = virt_to_phys(vaddr) : 이미 mmu page table에 등록된 range에서 찾아서, paddr 과 vaddr을 변환해 준다. 등록안된 addr에 대해서는 fail 할 것이다. 더보기
[armv8] ESL_EL2 분석 - stage2 data abort 아래는 stage2 mmu에서 data abort가 발생했을때 확인된 ESR_EL2 를 분석한 내용이다. ESR (Hexadecimal format, 'q' or 'Q' : Terminate): 0x93830006 2 2 2 1 1 8 4 0 6 2 8 4 0 ----------------------------------------- 1001 0011 1000 0011 0000 0000 0000 0110 ----------------------------------------- ============================================================== Exception from a Data Abort from a lower exception level ========.. 더보기
arm sysmmu 와 mmu 의 차이 core ---(mmu stage 1)--> (mmu stage 2)--> DRAM peripheral --(sys mmu stage 1) --> (sysmmu stage 2) --> DRAM 더보기
ARM 의 TLB 운용에 대한 간단 정리 ARM 의 TLB 운용에 대해서 읽어본것들을 정리 하였습니다.내용은 arm 사이트의 있는 내용을 조악하게 번역한 수준입니다.도움이 될것 같아서 사이트에 올립니다. 각 키워드 중심으로 보시면 됩니다. set-associative regionlockdown regionMicroTLBMainTLBpage walkTLB miss 내용은 ARM coretex A9 기준입니다. TLB 에 들어있는 매칭 table 들을 TLB entry 라고 한다.ARM Main TLB 는 set-associative region 과 lockdown region 이 있다. - Invalidate TLB operations 는 set-associative region 에 이는 TLB entry 들만 무효화 한다. - .. 더보기
리눅스커널의메모리관리 원문 : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1641 linux virtual memory 에 대한 너무 좋은 강좌 꼭 한번 읽어보시길 Step by Step 커널 프로그래밍 강좌③ 리눅스커널의메모리관리 지난 호에 우리는 커널 모듈 프로그래밍에 관한 기본적인 것들을 살펴보았다. 이번 호 에서는 지난 번 모듈 프로그래밍에 이어 커널에서 가장 흔히 사용하는 함수 중의 하나 인 kmalloc을 통해 커널에서 시스템의 메모리를 어떻게 관리하는지 알아보기로 한다. 글 _ 김민찬 KLDP 멤버, 전문 프로그래머 연재 순서 ① 커널 프로그래밍 환경 구축하기와 특징 ② 모듈 구현하기 ③ 리눅스 커널의 메모리 관리 ④ 커널.. 더보기
Device Driver - memory mapping 원문 : http://vincenthanna.springnote.com/pages/2267520?print=1 Device Driver - memory mapping 가상 주소와 MMU 간단한 시스템은 물리 주소만으로도 동작할 수 있다. 그러나 다중프로세스를 지원하고 각 프로세스에 대해 메모리 공간을 보호해야 하는 운영체제는 물리 주소만으로 구현하기는 어렵다. MMU는 프로세서에 전달되는 주소를 다른 주소로 변환한다. 그래서 프로세서가 메모리에 접근하는 주소가 메모리에 직접 전달되는 것이 아니라 먼저 MMU에 전달되고, MMU는 변환 테이블을 참고해 이 주소를 실제 물리 주소로 변환해 전달한다. 이때 프로세서가 MMU에 가상 주소를 전달하면, MMU가 이 가상 주소를 해석하여 나온 물리 주소를 실제 메모.. 더보기
arm cache 의 속성과 셋팅 (2) = Cache System = Write strategy 1. Write- through All write are passed to main memory immediately Processor slow down to main memory speed during write cpu ↔ cache ↔ Main memory요 때, Write Through와 Write Back이라는 용어가 난무하는데요, Write Through라는 용어는 쓰루 패스와 마찬가지로 Memory에 뭔가를 쓸 때 그 값이 Cache위에 올라와 있는 값일 경우에 곤란하겠죠. Cache와 Memory값이 다르면 안되니까요. Write Through를 쓰게 되면 Cache와 Memory에 모두 Update를 같이 해버리는 거지요. 간편한 S.. 더보기
MMU 의 section register 의 의미 원문 : http://wabar.tistory.com/tag/TLB MMU의 등장 배경 초창기의 프로그래머는 물리주소를 직접 사용하여 프로그래밍을 하였었죠. 우리가 아는 OS 중에 DOS와 같은 것은 논리주소를 사용하지 않죠. 현재는 대부분의 OS가 가상메모리를 제공하므로 논리주소가 필요합니다. 가상메모리의 개념이 만들어지게 된 과정은 역시 효율적 자원의 활용이라는 인간의 욕구가 시발입니다. 컴퓨터의 프로그램은 결국 CPU에 의해서 순차적으로 실행이 되므로 CPU가 필요로 하는 프로그램의 코드는 한 시점에 일부만 메모리에 존재해도 된다는 것을 인식하게 되었죠. 이는 물리적으로 작은 메모리를 설치한 컴퓨터에서 이 메모리보다 큰 프로그램을 실행시키고 싶은 필요에 의해 나왔죠. 메모리 가상화를 위해 나온 기술.. 더보기