'임베디드'에 해당되는 글 4건

  1. 2021.04.14 SiP vs SoC
  2. 2011.06.28 ARM cp15 register에 관련된 용어들
  3. 2011.06.11 ARM 프로세스 모드 - 시스템 모드 -
  4. 2011.04.30 cache thrashing
임베디드2021. 4. 14. 05:40

System-in-a-Package (SiP)

- 여러개의 integrated circuit 로 이뤄졌으며, 공간제약이나 시스템 단순화 등의 이유로 패키징화 됨

- 패키지안에는 DRAM, flash memory, processor등이 내부적으로 연결되어 있으며, stack up되어 있거나, 동일레이어에 배치됨

 

System-on-a-Chip (SoC)

- 보통 프로세서, 메모리, 저장메모리 등의 마이크로컨트롤러 계열로 이뤄졌으며, 경우에 따라 커스터마이징이 가능함.

- SiP와 다른 점은 SiP는 IC의 집합체로 하나의 패키징을 이룬다면, SoC는 그러한 기능등을 하나의 칩에 통합시켜 넣는다는 점이 다름.

 

'임베디드' 카테고리의 다른 글

ARM cp15 register에 관련된 용어들  (0) 2011.06.28
ARM 프로세스 모드 - 시스템 모드 -  (0) 2011.06.11
cache thrashing  (0) 2011.04.30
Posted by code cat
임베디드2011. 6. 28. 10:59

 CP15 용어

Term

Abbreviation

Description

Unpredictable

UNP

read했을 때 돌아오는 data가 unpredictable함을 나타냄 

write했을 때, 이로 인해 발생할 수 있는 behavior가 unpredictable함을 나타냄 

Undefined

UND

cp15에 접근하는 명렁어 중, UND라고 표시된 명령어들은 undefined instruction trap에 걸림. 

Should Be Zero

SBZ

write할 때, 모든 bit field가 0 이여야 함. 

Should Be One

SBO

write할 때, 모든 bit field가 1 이여야 함.







'임베디드' 카테고리의 다른 글

SiP vs SoC  (0) 2021.04.14
ARM 프로세스 모드 - 시스템 모드 -  (0) 2011.06.11
cache thrashing  (0) 2011.04.30
Posted by code cat
임베디드2011. 6. 11. 01:47

프로세서 익셉션이 일어 났을때, 현재 PC값은 LR에 복사가 되고, CPSR은 SPSR로 복사가 됩니다.  그 후에 CPSR은 어떤 익셉션이냐에 따라서 변할 것이고, PC도 익셉션 핸들러를 돌리기 위해 익셉션에 맞게 정의된 주소로 바뀝니다. 

 

그후, ARM의 서브루틴 콜(BL)은 서브루틴으로 뛰기 전에 r14에 리턴할 주소를, PC값을 바꾸기 전에 복사해놓고, 서브루틴에서 돌아올때는 PC에 r14값을 넘겨줍니다.  그러므로 지금 일어난 익셉션을 핸들하고 있는  현 ARM 모드는 같은 종류의 익셉션이 일어낳지 않도록 해야 합니다.(안 그러면 서브루틴 리턴 주소가 익셉션 리턴 주소로 덮어씌어질테니까요)

 

ARMv4이전까지는 익셉션 코드에서 서브루틴콜을 피하거나 권한모드에서 유저모드로 들어가서 처리했는데, 전자는 너무 제한적이고, 후자는 태스크가 필요한 권한을 가지지 못할 수도 있다는 문제가 있습니다.  그래서 ARM v4 이후에서는 시스템 모드라는 걸 지원해서 이러한 문제를 해결했습니다.  시스템 모드는, 유저모드에 있는 레지스터를 공유할 수 있는 권한모드이기 때문입니다.

 

비슷한 얘기지만 인터럽트 핸들러를 재진입시에도 시스템 모드를 사용해서 문제를 해결 할 수 있습니다.  ARV v4이전까지는 Supervisor 모드로 들어가야 했습니다.

'임베디드' 카테고리의 다른 글

SiP vs SoC  (0) 2021.04.14
ARM cp15 register에 관련된 용어들  (0) 2011.06.28
cache thrashing  (0) 2011.04.30
Posted by code cat
임베디드2011. 4. 30. 23:51
Cache thrashing

프로그램의 의해 자주 필요한 두개 이상의 데이터들이 같은 캐시 어드레스에 맵핑 될 때 일어난다. 이 중 하나의 데이터라도 encached가 될 때마다 다른 필요한 데이터를 오버라이트 해, 캐시 미스 및 데이터 재사용여부를 손상시킨다.

출처: http://docs.hp.com/en/B3909-90015/ch02s01.html

한편 어떤 프로세서가 다른 프로세서의 캐시에 있는 데이터를 조작할 경우, 그 프로세서는 캐시를 비우거나 갱신해야 하며 프로세서가 캐시를 동기화시킬 때 캐시 무효화(invalidation)는 일어나며 이런 계속적인 캐시 무효화는  cache trashing 이라고 하며 시스템의 성능을 저하시킨다.

출처: 리눅스 커널 심층 분석 2판. p 207

'임베디드' 카테고리의 다른 글

SiP vs SoC  (0) 2021.04.14
ARM cp15 register에 관련된 용어들  (0) 2011.06.28
ARM 프로세스 모드 - 시스템 모드 -  (0) 2011.06.11
Posted by code cat