温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Keystone
构架
C66x
内核
异常
处理
方法
洪泽
敬请登录网站在线投稿(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内核中断控制器和芯片的中断处理控制器实现一个系统异常处理的方法,能够准确、快速地定位系统运行出错的地方。最后,以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 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 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 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 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 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 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已经在航空航天、图像处理中得到广泛应用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 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 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 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等外设均需要系统中断事件,而每个外设产生的事件往往不止一个中断事件,比如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 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 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)、内核不可屏蔽异常中断(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