[커널 17차 2조] 7주차

2020.10.10 22:02

sardinelee 조회 수:351

 

일시 : 2020.10.10 (토) 15:00 ~ 19:30

장소 : 온라인(Zoom)

참여자 : 이정아, 조재훈, 조성현 (3인)

 

학습내용 :
코드로 알아보는 ARM 리눅스 커널(모기향책): p.28~p.50

 

- 인터럽트 핸들링 및 장치

https://patents.google.com/patent/KR20160014647A/ko

 

- MMU의 TLB란?
MMU가 가상메모리 주소와 실제 메모리 주소 사이의 변환을 위해 참조하는 변환참조버퍼.
(Translation Lookaside Buffer)
https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EA%B4%80%EB%A6%AC_%EC%9E%A5%EC%B9%98

이 보조기억장치에 원하는 변환 정보가 없을 때에는 더 느린 다른 방법으로 페이지 변환 정보를 얻어오는데 이 페이지 변환 정보가 담겨있는 자료구조를 페이지 테이블(Page Table)

 

- PIPT란
Physically Indexed, Physically Tagged.
 그 외 VIVT와 VIPT가 있음.
VIVT는 가상주소로 캐시에 접근시 캐시 동기화 문제가 많고
PIPT는 TLB miss 발생 시 성능 저하될 우려가 있다.
VIPT는 PIPT대비 빠르고 VIVT 대비 address aliasing 검출이 가능함.
https://m.blog.naver.com/PostView.nhn?blogId=ghduddks&logNo=221054875883&categoryNo=10&proxyReferer=&proxyReferer=https:%2F%2Fwww.google.com%2F


- 변환 테이블 == 페이지 테이블

 

- invalid entry의 역할
 페이지 테이블의 한 종류. 테이블 디스크립터, 테이블 엔트리, 블록 엔트리, invalid 엔트리 4가지가 있으며 invalid 엔트리는 모든 레벨에서 사용되며 유효한지 아닌지에 따라 뒤의 X0로 값을 표현한다.

 

- inner와 outer의 의미
inner와 outer은 공유가능한 domain을 설정할 때 나오는 부분으로 inner은 L1캐시, outer은 L2캐시를 의미한다.
https://stackoverflow.com/questions/22316859/what-is-the-definition-of-outer-and-inner-in-armv7

 

- normal memory
일반적인 가상 메모리 주소 공간을 의미

 

- unprivileged와 privileged의 의미
UXN은 1로 설정 시 유저레벨이 다음 레벨의 테이블에서 실행 코드에 대한 주소 변환을 하지 못하게 한다는 것.
PXN은 1로 설정 시 커널 레벨이 다음 레벨의 테이블에서 실행코드에 대한 주소 변환을 하지 못하게 한다는 것.
unprivileged는 여기서 유저레벨을, privileged는 커널 레벨로 추정됨.

 

-SCR_EL3.CIF는?
EL3으로 라우팅되는 SCL_EL3익셉션.

 

-라우팅 된다?
https://community.arm.com/developer/ip-products/system/f/embedded-forum/9082/how-interrupts-are-routed-in-el3-el2-el1-mode

 

-메모리 타입
 - normal : 데이터를 저장하는 일반 메모리 타입
 - device : 디바이스 I/O

 

- strongly-ordered
 - strongly-ordered : 순차적으로 접근하는 메모리 타입
 - 반대어 : weakly-ordered

 

- write-back 과 write-through
 - write-back : 기록 요청 시 캐시만 갱신.
   : 메인 메모리와 불일치 상태를 dirty 라고 함.
 - write-through : 기록 요청 시 캐시와 외부 메모리 둘 다 갱신하는 것.

 

 

XE Login