[커널 20차] 18주차

2023.09.03 20:46

이민찬 조회 수:85

 

2023.09.02 (18주차) - 약 10명 참여

17.3.3 Instruction Synchronization Barrier (ISB)

Q: Out of order Excution

A1: 최적화를 위해서 말 그대로 명령어의 순서와 실행 순서가 다를 수 있다는 말

A2: 원리는 너무 low한 레벨이라 회로 설계하시는 분들이 보면 좋을 내용이라고 생각이 든다. 

https://www.yes24.com/Product/Goods/3858484

17.4 Shareability 도메인과 배리어 명령어 옵션

Q. DMB 명령어는 프로그래머가 직접 추가해주는 것인지? 아니면 컴파일러가 추가해주는 것인지?

A1: 프로그래머가 추가해주는 걸로 보인다. 컴파일러가 최적화하면서 명령어의 순서를 재정렬하는 것을 방지하기 위해 사용하는 명령어이기 때문이다.

A2: smp_mb() 

 

Q. Sharable 도메인에 추가되는 옵션이 로드, 스토어를 기준으로 하는데 그 이유는 무엇일까요?

A: 

 

Q. Outer sharable 도메인과 Full system 도메인의 차이가 무엇인가요?

A: 

17.5 배리어 명령어 사용 케이스 스터디

Q. DMB, DSB 차이

A: DMB는 로드, 스토어 명령어에 대해서 수행 순서 보장, DSB는 로드 스토어 이외의 명령어의 수행 순서도 보장한다. 

+) ISB는 파이프라인에 페치된 명령어를 flush 하는 방식, DSB는 stall 하는 방식

 

공유 내용.

실제로 메모리 shareabliity를 어떻게 설정하는 지가 궁금해서 조금 찾아봤는데..

Device 메모리는 무조건 outer shareable로 설정하는 것 같고,

Normal 메모리는 page table entry에 shareability 속성을 설정하는 것 같습니다.

VRdIJTQbIIOb3xeJjb2nkRrjeXx6dziO1EnetN_W

OrBi1s42-pfGUaDtgmW0nvOOYqCfChejK6qWEXI0

18.5 캐시 제어 레지스터

Q. 명령어 캐시와 데이터 캐시의 크기 차이

A: 

ZQbHESlugXHJxIuO_NDY2TWJbvduiLmameSlCTKG

 

Q. 캐시 라인이 dirty 상태로 마킹되어있을 때, invalidate를 수행해버리면 데이터의 불일치가 일어나는 이유는 무엇인가요?

A: 캐시 기록 정책에 따라서 캐시에 데이터를 가져와서 사용 후 변경이 일어났을 때, 바로 메모리에 반영하지 않을 수 있다. 이 때, dirty 상태라는 것은 캐시 데이터가 수정되었다는 것이다. 수정된 데이터가 메모리에 반영되지 않았는데 invalidate를 하면 데이터의 불일치가 일어난다.

18.1 캐시 소개

Q. 캐시 크기를 더 크게 하면 좋을 것 같은데 그렇지 않은 이유가 있을까요?

A: 캐시 용량과 접근 속도 사이에는 트레이드오프가 있다.

 

Q. 알고리즘 지역성에서 자료 구조를 순회하며 미리 로딩하는 것?

A: 이런 것이 있다 정도로 이해하고 넘어가면 될 것 같다. 실제로 어떻게 구현되어있는지, 구현된 시스템이 있는지는 잘 모르겠다. 

 

18.2 캐시의 기본 동작 원리

Q. 캐시 엔트리의 구성

A: 캐시 라인에 대한 메타 정보를 나타내는 Valid 비트, Dirty 비트, Set-way 등과 데이터를 가지고 있는 캐시 라인으로 구성된다. 

 

cf) 캐시의 크기를 이야기 할 때는 캐시 라인의 크기와 엔트리 수만 고려한다. (엔트리 수 x 캐시 라인 크기)  메타 정보를 나타내는 비트들은 오버헤드이다. 

 

Q: 그림이 의미하는 바

pm1WkIv4c1wvRnJUOkUqaFggS7-GAsESDzpWABLz

A: 주소가 주어졌을 때, 캐시 히트와 미스를 판단하고 히트라면 데이터에 어떻게 접근하는지를 의미한다. 인덱스를 통해서 캐시 라인에 접근하고, 해당 인덱스에 해당하는 태그램의 값과 주소의 태그 값을 비교해서 같다면 히트, 다르다면 미스이다. 히트라면 오프셋을 통해서 데이터의 위치를 특정한다. 

 

18.3 멀티 레벨 캐시

Q. Latency의 의미

A: https://en.wikipedia.org/wiki/Latency_(engineering)

 

19.2 MMU의 세부 동작

Q: 캐시에 접근하기 전에 물리 주소로 변환하는 이유?

A: 캐시에서 물리 주소를 사용하기 때문이다.

19.3 익셉션 레벨별 가상 주소 영역

Q: EL0, EL1에서 2단계 변환 시 Virtualization 변환 테이블이 필요한 이유?

A: 한 PC에서 여러 OS가 구동되는 경우에 해당된다. ex) 하이퍼바이저 

만약 그렇지 않다면 건너뛸 것이다. 

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 스터디 정리 노트 공간입니다. woos 2016.05.14 626
248 [커널 19차] 103 주차 Min 2024.04.28 4
247 [커널 20차] 48주차 무한질주 2024.04.25 22
246 [커널 19차] 102 주차 Min 2024.04.20 37
245 [커널 19차] 101 주차 Min 2024.04.13 63
244 [커널 19차] 100 주차 Min 2024.04.13 16
243 [커널 19차] 99 주차 Min 2024.03.30 82
242 [커널 19차] 98 주차 Min 2024.03.23 55
241 [커널 19차] 97 주차 Min 2024.03.16 50
240 [커널 19차] 96 주차 Min 2024.03.14 32
239 [커널 19차] 95 주차 [2] Min 2024.03.03 111
238 [커널 20차] 32주차 brw 2023.12.16 386
237 [커널 20차] 29주차 brw 2023.11.27 161
236 [커널 20차] 27주차 brw 2023.11.21 86
235 [커널 20차] 26주차 brw 2023.11.21 48
234 [커널 20차] 28주차 이민찬 2023.11.19 64
233 [커널 20차] 25주차 이민찬 2023.10.30 120
232 [커널 20차] 24주차 이민찬 2023.10.22 744
231 [커널 20차] 23주차 이민찬 2023.10.14 81
230 [커널 20차] 22주차 이민찬 2023.10.08 76
229 [커널 20차] 21주차 이민찬 2023.09.23 116
XE Login