multi-core rtos 조건

백창우 2012.08.21 17:59 조회 수 : 7191

6년 전에 여기 게시판에 올렸던 내용인데,

이번에 애들 가르킬 일이 있어 정리 하는 김에 혹시 필요하신 분이 계실까봐 다시 게시판에 정리 해봅니다.


=======================================================


1. MPSoC RTOS를 위한 선결조건

a. 모든 lock은 core간 상호 배재하기 위해 spin lock으로 바꾼다.

b. interrupt는 MPSoC Processor 마다 틀리기 때문에 ISR 정책을 새로이 정의한다.


1.a 조건만 성립되면 일단 MPSoC에 동작하는 RTOS가 만들어진다. 그렇지만 최적화 되지 않았기 때문에 MPSoC RTOS라고 보기는 힘들다.

1.b 조건을 성립하면 interrupt 처리가 가능해진다.



2. MPSoC RTOS를 위한 최적화

a. cache 관련 최적화

ㄱ. scheduling시 cache affinity 

L. locality 적용

- 기본 programming 모델이 multi-thread 모델임으로 thread간 cache hit ratio를 높이게 디자인


b. lock 관련 최적화

ㄱ. 되도록 lock 없게 설계

-- ex: http://www.iamroot.org/xe/14496

ㄴ. R/W lock, RCU 구현

ㄷ. 새로운 개념의 lock을 설계할때 해당 lock들의 동시 접근성을 높이는 기법을 전제로 구현

ㄹ. lock granularity를 fine grained로 설계


c. resource 관련 최적화

ㄱ. percpu, percore, array-cache

ㄴ. memory management 설계시 memory latency 고려 (local memory 활용)


d. scheduling algorithm

ㄱ. load balancing

ㄴ. load unbalancing

ㄷ. pfair 계열 scheduling

ㄹ. epdf, dfs

ㅁ. slack 관련 scheduling


e. core partitioning (ex: cgroup)

ㄱ. scheduling 관련

ㄴ. memory management : NUMA 관련

ㄷ. logical partitioning

ㄹ. many core (context switch less)


f. I/O & IRQ

ㄱ. BUS lock 제거

ㄴ. irq affinity
ㄷ. irq load balancing

ㄹ. local irq issue

ㅁ. inter-processor comminication


g. 기타.

- cache coherency protocol

- atomic operation

- barrier



삼성 S5PV310

- GIC (Generic Interrupt Controller) : local interrupt controller?

- SGI (Software Generated Interrupt) : inter-processor comminication

- swi wfi (sgi에 해당) -> core1 부팅주소



=======================================================


다른 최신 기법에 대해 알고 계신분은 키워드 형태로 추가해주시면 좋을것 같습니다.



번호 제목 글쓴이 날짜 조회 수
공지 [공지] IAMROOT 19차 커널 스터디 오리엔테이션 (zoom 접속 안내) [5] 문c(문영일) 2022.05.07 886
공지 [공지] IAMROOT 18차 커널 스터디 오리엔테이션 안내 [마감] [2] 문c(문영일) 2021.05.17 1250
공지 커널 스터디를 위한 문c 가이드입니다. [10] 문c(문영일) 2021.04.27 6483
1057 2008년 계획들은 세우셨나요? [6] 백창우 2007.12.20 4162
1056 세미나 후기...^^ 박은병 2007.12.31 3919
1055 세미나 너무나도 잘 들었습니다. 신철수 2007.12.31 3945
1054 새해 복 많이 받으세요. [1] 백창우 2008.01.01 4398
1053 가입인사겸 새해 인사드립니다. [2] 이상철 2008.01.01 4544
1052 새해 복 많이 받으세요~ㅎ 김범영 2008.01.01 4212
1051 위키가 정말 좋긴 좋네요. [3] 백창우 2008.01.06 4367
1050 안녕하세요 오랫만입니다 :) [4] 김강년 2008.01.08 3762
1049 2.6 kernel "linux kernel의 이해" 정독 스터디 모집합니다. [27] 백창우 2008.01.09 4087
1048 "리눅스 커널의 이해" 정독 스터디 [3] 백창우 2008.01.09 6879
1047 커널에 관련된 논문은 어디서 찾으세요? [4] 김기오 2008.01.10 4730
1046 리눅스 커널 정리 문서를 만들었습니다. [1] 백창우 2008.01.10 4450
1045 그런데 여러분 누가 누구인지 좀 아십니까? [2] 백창우 2008.01.10 3899
1044 wiki에 접기 기능은 없을까요? [1] 김성준 2008.01.11 4932
1043 위키 대문은 자동으로 변경이 안되네요. [3] 김기태 2008.01.12 4829
1042 SVN 서버가 이상합니다. [3] 김기태 2008.01.13 5558
1041 Kernel 2.6.23의 엄청난 변화 [5] 백창우 2008.01.13 8077
1040 SVN 서버 /home이 full 입니다. [4] 김기태 2008.01.14 4794
1039 파일시스템 스터디 모집합니다. [3] 원민수 2008.01.14 4623
1038 새로운 서버가 설치 되었습니다. [14] 백창우 2008.01.16 6197
XE Login