1、 敬请登录网站在线投稿(t o u g a o.m e s n e t.c o m.c n)2 0 2 3年第4期 1 3 K e y s t o n e I I构架的C 6 6 x内核异常处理方法洪泽,陈振娇,强小燕(中国电子科技集团公司第五十八研究所,无锡 2 1 4 0 7 2)摘要:在K e y s t o n e I I构架的多核异构S o C应用中,系统异常处理必不可少,处理异常问题的能力也是衡量系统稳定性的一个重要标准。本文以高性能S o C TM S 3 2 0 C 6 6 AK 2 H的C 6 6 x内核为基础,利用C 6 6 x内核中断控制器和芯片的中断处理控制器实现一个系
2、统异常处理的方法,能够准确、快速地定位系统运行出错的地方。最后,以D S P核0使用E DMA 3模块非法访问共享内存M S MC为例,验证系统异常处理方法的可行性。经测试,该异常处理方法准确有效。关键词:K e y s t o n e I I;TM S 3 2 0 C 6 6 AK 2 H;C 6 6 x内核;异常处理中图分类号:T P 6 0 1 文献标识码:AM e t h o d o f C 6 6 x K e r n e l E x c e p t i o n H a n d l i n g B a s e d o n K e y s t o n e I I A r c h i t
3、e c t u r eH o n g Z e,C h e n Z h e n j i a o,Q i a n g X i a o y a n(C h i n a E l e c t r o n i c s T e c h n o l o g y G r o u p C o r p o r a t i o n N o.5 8 R e s e a r c h I n s t i t u t e,W u x i 2 1 4 0 7 2,C h i n a)A b s t r a c t:S y s t e m e x c e p t i o n h a n d l i n g i s e s s e
4、 n t i a l i n t h e m u l t i-c o r e h e t e r o g e n e o u s S o C a p p l i c a t i o n o f K e y s t o n e I I a r c h i t e c t u r e,a n d t h e a b i l i-t y t o h a n d l e e x c e p t i o n p r o b l e m s i s a l s o a n i m p o r t a n t s t a n d a r d t o m e a s u r e s y s t e m s t
5、 a b i l i t y.B a s e d o n t h e C 6 6 x c o r e o f t h e h i g h-p e r f o r m-a n c e S o C TM S 3 2 0 C 6 6 AK 2 H,t h i s p a p e r u s e s t h e C 6 6 x c o r e i n t e r r u p t c o n t r o l l e r a n d t h e c h i p i n t e r r u p t p r o c e s s i n g c o n t r o l l e r t o i m p l e m
6、 e n t a s y s t e m e x c e p t i o n h a n d l i n g m e t h o d,w h i c h c a n a c c u r a t e l y a n d q u i c k l y l o c a t e t h e p l a c e w h e r e t h e s y s t e m r u n s i n c o r r e c t l y.F i n a l l y,t h e D S P c o r e 0 u s e s t h e E DMA 3 m o d u l e t o i l l e g a l l y
7、 a c c e s s t h e s h a r e d m e m o r y M S MC a s a n e x a m p l e t o v e r i f y t h e f e a s i b i l i t y o f t h e s y s t e m e x c e p t i o n h a n d l i n g m e t h o d.T h e t e s t r e s u l t s s h o w t h a t t h e e x c e p t i o n h a n d l i n g m e t h o d i s a c c u r a t e
8、a n d e f f e c t i v e.K e y w o r d s:K e y s t o n e I I;TM S 3 2 0 C 6 6 AK 2 H;C 6 6 X c o r e;e x c e p t i o n h a n d l i n g0 引 言T I公司推出的 TM S 3 2 0 C 6 6 AK 2 H(以下简称6 6 AK)多核异构S o C采用先进的 K e y s t o n e I I架构,集成了千兆以太网、万兆以太网、P C I e、E DMA 3等多个高速主设备,可实现多功能、高复杂算法的应用。目前6 6 AK已经在航空航天、图像处理中得到广泛应
9、用1。6 6 AK芯片功能极其强大,在使用过程中不可避免地会遇到系统运行不稳定的问题。例如,系统运行一段时间后,E DMA 3模块发生异常,不能有效搬运数据,并且该现象不能稳定复现。这时系统异常处理机制就显得非常重要,该机制可以在系统运行发生异常时,快速定位到问题发生位置并记录当前的错误状态2-4。K e y s t o n e I I架构芯片6 6 AK具备实现异常处理机制的能力。异常处理机制由两部分构成:C 6 6 x内核中断控制器(I N T C)和芯片中断处理控制器(C I C)。外部设备产生的异常中断由 I N T C模块和C I C模块进行路由,最终到C P U的异常处理中断5。1
10、 C 6 6 x内核中断C 6 6 x内核C P U可以接收4种中断信号(如图1所示):复位信号、NM I(不可屏蔽)中断信号、可屏蔽中断信号(I N T 4 I N T 1 5)和可屏蔽异常中断信号(E X C E P)。一个复杂的处理器芯片,中断源仅有1 5个是远远不够的,无法满足用户对复杂功能的需求6。而C 6 6 x内核在C o r e-p a c中集成了中断控制器(I N T C),能够响应1 2 8个系统中断,可以处理更多的中断源。1 2 8个系统中断通过路由映射到1 2个可屏蔽中断和异常中断。C 6 6 x的C o r e p a c中断控制器中还集成了一个E x c e p-t
11、 i o n C o m b i n e r控制器,用于把异常事件合成路由到可屏蔽异常中断信号(E X C E P)上。E x c e p t i o n C o m b i n e r控制器可以把系统中断事件41 2 7中的若干个合成到E v e n t#0、E v e n t#1、E v e n t#2、E v e n t#3,对于合成的系统中断事件是“或”的关系,即如果把3 6、3 7、3 8系统中断事件集成到E v e n t#1上,那么只要其中的一个系统中断事件发生,E v e n t#1就发生中断。1 4 M i c r o c o n t r o l l e r s&E m b
12、e d d e d S y s t e m s 2 0 2 3年第4期w w w.m e s n e t.c o m.c n 图1 C o r e p a c中断控制器图2 系统异常中断路由路径2 C I C中断路由虽然K e y s t o n e I I的C 6 6 x内核C o r e p a c能够处理1 2 8个系统中断事件(其中1 2 4个有直接的物理意义,系统事件03是合成结果),但是绝大部分是内部的DMA、QM S S等模块产生的事件,这是远远不够用户使用的。因为K e y s t o n e I I的诸多外设事件同样需要中断去实现及时处理,比如以太网、E D-MA 3等外设均
13、需要系统中断事件,而每个外设产生的事件往往不止一个中断事件,比如E DMA 3模块中有全局中断和8个影子中断均需要相应的中断号7。而C I C模块就起到了桥梁功能,完成外设中断事件到C o r e p a c的路由。需要注意的是,C I C模块一般是C o r e p a c的1 2 8个系统中断事件之外的中断事件使用的8。6 6 AK内部有C I C 0、C I C 1、C I C 2。每个C I C负责的事件不同,C I C 0负责外设事件到C o r e p a c的路由,C I C 1和C I C 2负责外设事件到E DMA 3或者H y p e r L i n k控制器的路由。以C
14、I C 0为例,3个C I C的路由机制其实是一样的,只是目的地不同。系统中断通过C I C 0输入经过路由输出主机中断(H o s t I n t e r r u p t)。C I C 0能够接收的系统中断有2 0 8个,并将这些系统中断路由到某一个主机中断(H o s t I n t e r r u p t)上,这些系统中断均是“或”的关系。而主机中断又与C o r e p a c的I N T C模块的系统中断一一对应。例如主机中断的第2 6个中断事件号对应的是C I C_OUT(6 9+1 0*N)。系统异常中断路由路径如图2所示,6 6 AK外设有多个异常中断,如E DMA 3模块的T
15、 C传输错误中断0、1、2、3等。外设的这些系统中断输入到C I C 0模 块,C I C 0进 行 重 新 映 射 生 成 主 机 中 断(E V E N T 4E V E N T 1 2 7)进 入 到C 6 6 x内 核 的C o r e p a c模块,然后由E x c e p t i o n C o m b i n e r模块进行结合,最后路由映射到C P U的可屏蔽异常中断信号(E X C E P)上。3 异常处理系统机制3.1 异常处理系统设计C 6 6 x内核的异常处理共有4种类型:外部可屏蔽异 常 中 断(E X F)、外 部 不 可 屏 蔽 异 常 中 断(N X F)、内
16、核不可屏蔽异常中断(I X F)及软件异常中断(S X F)9。当异常产生时,可以通过读异常标志寄存器(E F R)来知道产生的异常中断的具体类型,并执行相应的中断服务程序。C 6 6 x内核的异常中断映射代码如下:g p C G EM_r e g s-E X PMA S K0=(1E X PMA S K1=0 x F F F F F F F F;g p C G EM_r e g s-E X PMA S K2=0 x F F F F F F F F;g p C G EM_r e g s-E X PMA S K3=(1(C S L_C 6 6 X_C O R_I N T E R R-9 6)|(1(C S L_C 6 6 X_C O R_I DMA E R R-9 6)|(1(C S L_C 6 6 X_C O R_MDMA E R R-9 6)|(1(C S L_C 6 6 X_C O R_PMC_E D-9 6)|(1(C S L_C 6 6 X_C O R_UMC_E D 2-9 6)|(1(C S L_C 6 6 X_C O R_S Y S_CMP A-9 6)|(1(C S L