2023. 11. 29. 23:48 devel/etc
Tricore 1.6 아키텍쳐 공부#2
Interrupt System
자 이제 가장 중요한 인터럽트의 시작이다
얘네는 또 지들만의 고유한 용어를 사용한다.
Service Request Nodes(SRNs)
Service Request는 특이하게도 interrupt request 혹은 DMA request로 정의 된다.
Conventional architectures generally take a long time to service interrupt requests, and they are normally handled by loading a new Program Status (PS) from a vector table in data memory. In the TriCore architecture, service requests jump to vectors in code memory to reduce response time. The entry code for the ISR is a block within a vector of code blocks. Each code block provides an entry for one interrupt source.
이 부분 잘 이해가 안가는데?
인터럽트 핸들러 들어가는 prologue/epilogue쪽 코드가 단순한 branch로 구성되어 있고 program status는 변경되지 않는다는 의미일까? 이건 타겟보드 혹은 컴파일된 바이너리의 어셈레벨 진행되는 코드를 보고 내용을 추가해야 할 것 같다.
이전 내용에서는 CSA(Context Save Areas)가 있어서 save/restore context를 할 수 있다고 했는데 여기에 interrupt가 포함되는 거 아닌가? 그러면 기존의 conventional architecture랑 동일한 게 아닌감?
이 부분관련해서는 내용 추가가 필요할 것 같다.
Interrupt Priority
중요한 부분이다. 당연히 interrupt의 nested를 지원한다.
ICU(Interrupt Control Unit) 은 어떤 인터럽트 소스가 승리할 지(처리될지) arbitration 을 하는데 이건 당연히 prioriryt number based로 진행 된단다.
각 인터럽트 타입들은(Service Request) 당연히 Priority Number랑(SRPN) assign이 되어있다.
interrupt pirority는 255 level
너무 졸려서 더이상 진행 불가
나머지 내용은 다음에 이어서 추가 작성하는 걸로......
Figure 5-1 Block Diagram of a Typical TriCore Interrupt System 관한 내용을 리뷰하고 있었음
'devel > etc' 카테고리의 다른 글
Tricore 1.6 아키텍쳐 공부#1 (0) | 2023.09.13 |
---|---|
집에서 숯불구이 해본 후기 - 결론: 하지마 (1) | 2023.05.28 |
메인보드 구매할 때 블루투스 기능이 과연 필요할까? (0) | 2022.01.09 |
텐키리스 키보드 사용 짧은 후기(개발자) (0) | 2022.01.09 |
윈도우에서 배치파일, makefile로 빌드 시스템 구축하기 (0) | 2021.02.16 |