CN102141904B - 支持中断屏蔽指令的数据处理器 - Google Patents
支持中断屏蔽指令的数据处理器 Download PDFInfo
- Publication number
- CN102141904B CN102141904B CN201110081597.3A CN201110081597A CN102141904B CN 102141904 B CN102141904 B CN 102141904B CN 201110081597 A CN201110081597 A CN 201110081597A CN 102141904 B CN102141904 B CN 102141904B
- Authority
- CN
- China
- Prior art keywords
- instruction
- interrupt mask
- interrupt
- data processor
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
一种支持中断屏蔽指令的数据处理器,包括指令提取单元、指令译码单元、指令执行单元、异常和中断处理单元,指令存储器中的指令集还包括中断屏蔽指令,中断屏蔽指令包括类型字段、起始字段与结束字段,数据处理器还包括:中断屏蔽控制器,用于检测指令执行单元发送的中断屏蔽指令信息和后续指令完成信息,将从相对当前中断屏蔽指令的起始位置开始到结束位置之间的指令序列产生中断屏蔽信息;指令执行单元的输出端连接中断屏蔽控制器,所述中断屏蔽控制器与所述异常和中断处理单元连接。本发明提供一种避免破坏架构、简化设计复杂度的支持中断屏蔽指令的数据处理器。
Description
技术领域
本发明涉及一种数据处理器。
背景技术
为了提高数据处理器的并发性和吞吐量,提高多进程间切换的效率引入了多线程处理器。多线程相比多进程最突出的一点是实现了资源的共享,从而极大提高了程序的运行效率。
多线程间的指令段或数据段的共享通过锁(lock)的方式完成。例如两个线程共享一个锁的情况,当一个线程获得该锁时,另一个线程一直处于等待状态直到该锁获得释放,从而保证了资源共享的准确性。对于最常用的spin lock而言,通常锁获得的过程需要执行两步操作:第一步,从存储器中获得该锁的状态;第二步,判断该锁是否处于空闲状态,如果为空闲状态,将存储器中该锁的状态改为工作状态这样就获得了锁,如果是工作状态,那就重新执行第一步操作,一直等待该锁为空闲状态。
在一个线程获得锁的过程中,如果另一个线程以中断的方式来竞争锁,这样就可能导致两个线程都认为自身是锁的独占者,从而产生错误。ARM采用增加一条原子操作指令(SWAP)的方式来解决这个问题,SWAP指令完成了寄存器值和存储器值的交换功能,中断请求在该指令执行前或者完成后得到响应,这样就避免了在一个线程获得锁为空闲状态还没来得及改写锁的状态时就响应中断的情况,从而保证了锁的独占性。但这种将两个相对独立的操作组合在一起构成一条指令会破坏原有处理器的架构,增加设计的复杂度。
发明内容
为了克服已有的数据处理器解决中断竞争锁的问题时破坏架构、增加设计复杂度的不足,本发明提供一种避免破坏架构、简化设计复杂度的支持中断屏蔽指令的数据处理器。
本发明解决其技术问题所采用的技术方案是:
一种支持中断屏蔽指令的数据处理器,包括:
指令提取单元,用于从指令存储器中读取指令发送到指令译码单元;
指令译码单元,用于对发送来的指令进行译码,译出指令的相关类型信息和操作数信息;
指令执行单元,用于根据指令译码结果做出相应的处理;
异常和中断处理单元,用于处理指令产生的异常和中断请求;
所述指令存储器中的指令集还包括中断屏蔽指令,所述中断屏蔽指令包括类型字段、起始字段与结束字段,其中,所述起始字段确定不响应中断的指令序列相对当前中断屏蔽指令的起始位置,所述结束字段确定所述不响应中断的指令序列相对当前中断屏蔽指令的结束位置;
所述数据处理器还包括:中断屏蔽控制器,用于检测指令执行单元发送的中断屏蔽指令信息和后续指令完成信息,将从相对当前中断屏蔽指令的起始位置开始到结束位置之间的指令序列产生中断屏蔽信息;
所述指令执行单元的输出端连接所述中断屏蔽控制器,所述中断屏蔽控制器与所述异常和中断处理单元连接。
进一步,所述中断屏蔽控制器包括:起始位置寄存器、结束位置寄存器、计数器、状态机和中断屏蔽标志位;起始位置寄存器保存指令序列的起始位置,结束位置寄存器保存指令序列的结束位置,计数器对中断屏蔽指令后完成的指令进行计数,中断屏蔽标志位指示了中断屏蔽是否成功执行,状态机控制计数器的操作和中断屏蔽标志位的设置。
再进一步,当中断屏蔽控制器检测到中断屏蔽指令进入执行单元时,分别将译码单元获得的起始位置信息存入起始位置寄存器,结束位置信息存入到结束位置寄存器中,启动计数器和状态机,计数器从零开始计数,状态机从空闲状态进入到工作状态,此后中断屏蔽指令完成。
更进一步,在状态机处于工作状态时,后续指令将逐一进入指令执行单元,指令执行单元正常完成一条指令时计数器增一,若检测到指令执行单元指令产生异常,计数器清零并同时状态机回到空闲状态,中断屏蔽功能失效。
当计数器与起始位置寄存器相同时,设置中断屏蔽标志位有效并同时产生中断屏蔽信号通知异常和中断处理单元屏蔽中断,此后处理器进入中断屏蔽状态;当计数器增加到与结束位置寄存器相同或者指令执行单元产生异常时,设置中断屏蔽标志位无效并产生中断屏蔽解除信号通知异常和中断处理单元,此后处理器重新进入中断响应状态。
指令译码单元译出中断屏蔽指令的类型信息、起始字段与结束字段,确定不响应中断指令序列的起始位置和结束位置。
本发明的技术构思为:通过设计中断屏蔽指令确定一组不响应中断的指令序列及提供带有中断屏蔽功能的数据处理器响应了多线程通信的需求。
本发明的有益效果主要表现在:避免破坏架构、简化设计复杂度。
附图说明
图1是中断屏蔽指令的一个示例图,其中,STR_IMM5——指定一组不响应中断的指令序列相对当前中断屏蔽指令的起始位置。
END_IMM5——指定一组不响应中断的指令序列相对当前中断屏蔽指令的结束位置;
图2是数据处理器的一个示例图;
图3是处理器核心的一部分的一个示例图;
图4是中断屏蔽控制器的一个示例图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种支持中断屏蔽指令的数据处理器,包括:
指令提取单元,用于从指令存储器中读取指令发送到指令译码单元;
指令译码单元,用于对发送来的指令进行译码,译出指令的相关类型信息和操作数信息;
指令执行单元,用于根据指令译码结果做出相应的处理;
异常和中断处理单元,用于处理指令产生的异常和中断请求;
所述指令存储器中的指令集还包括中断屏蔽指令,所述中断屏蔽指令包括类型字段、起始字段与结束字段,其中,所述起始字段确定不响应中断的指令序列相对当前中断屏蔽指令的起始位置,所述结束字段确定所述不响应中断的指令序列相对当前中断屏蔽指令的结束位置;
所述数据处理器还包括:中断屏蔽控制器,用于检测指令执行单元发送的中断屏蔽指令信息和后续指令完成信息,将从相对当前中断屏蔽指令的起始位置开始到结束位置之间的指令序列产生中断屏蔽信息;
所述指令执行单元的输出端连接所述中断屏蔽控制器,所述中断屏蔽控制器与所述异常和中断处理单元连接。
其中,指令译码单元译出中断屏蔽指令的类型信息、起始字段与结束字段,确定不响应中断指令序列的起始位置和结束位置。
图1给出了一种中断屏蔽指令的示例格式,在一个示例中,通过设计起始字段与结束字段,控制两者指示的区间内的若干指令不响应中断;其中,中断屏蔽指令的起始字段确定这组不响应中断的指令序列相对当前中断屏蔽指令的起始位置,中断屏蔽指令的结束字段确定这组不响应中断的指令序列相对当前中断屏蔽指令的结束位置。
在本发明的一个实施例中,中断屏蔽指令的起始与结束字段可以由通用寄存器的值确定。在本发明的另一个实施例中,中断屏蔽指令的起始和结束字段可以由所述指令码的立即数段确定。
参看图1,在本发明的一个实施例中,中断屏蔽指令IMASK的起始字段和结束字段分别是一个5位的立即数,从而确定的一组不响应中断的指令序列的指令数为1到32之间。
图2说明数据处理器10,在一个实施例中,数据处理器10包含处理器核心20,总线矩阵单元22、SRAM24、总线接口单元26和外部存储接口单元28。外部存储接口单元28和FLASH32相连接,总线接口单元26与总线30相连接。处理器核心20通过总线矩阵单元22访问SRAM24、总线接口单元26和外部总线接口单元28。
图3说明了图1处理器核心20的一部分。在一个实施例中,处理器核心20的一部分包括指令提取单元40、指令译码单元42、指令执行单元44、中断屏蔽控制器46和中断/异常处理单元48。指令提取单元40从总线矩阵单元22接受程序指令,经预处理发送到指令译码单元42,指令译码单元42根据发下来的指令译出对应的指令类型和操作数信息,对于中断屏蔽指令,指令译码单元42译出该指令有效信息和其两个操作数,一个表征一组不被中断打断的指令序列的相对于中断屏蔽指令的起始位置和结束位置。指令执行单元44根据指令译码单元42发下来的指令信息执行对应的操作,对于中断屏蔽指令,启动信息54启动中断屏蔽控制器46,指令的退休信息56控制中断屏蔽控制器46产生中断屏蔽信号58告知中断/异常处理单元48,中断信号50和指令执行单元44产生的异常信号52也分别告知中断/异常处理单元48。
图4说明了图2中断屏蔽控制器46,在一个实施例中,中断屏蔽控制器包括:起始位置寄存器60、结束位置寄存器62、计数器64、状态机66、中断屏蔽标志位68;起始位置寄存器60用来保存指令序列的起始位置80,结束位置寄存器62用来保存指令序列的结束位置82,计数器64用来对中断屏蔽指令后完成的指令进行计数,中断屏蔽标志位68指示了中断屏蔽是否成功执行,状态机66用来控制计数器64的操作和中断屏蔽标志位68的设置。当中断屏蔽控制器46检测到指令执行单元44正在处理一条中断屏蔽指令时,启动计数器64和状态机66,计数器64从零开始计数,状态机66从空闲状态进入到工作状态;在状态机处于工作状态时,若指令执行单元44正常完成一条指令,计数器64自增,若检测到指令执行单元44指令产生异常信号52,计数器64清零并同时状态机66回到空闲状态。当计数器64与起始位置寄存器60相同时,设置中断屏蔽标志位68并同时产生中断屏蔽信号58通知异常/中断处理单元48屏蔽中断;当计数器64增加到与结束位置寄存器62相同或者指令执行单元44产生异常时,产生中断屏蔽解除信号通知异常/中断处理单元48;同时指令执行单元44产生的异常信号52会清除中断屏蔽标志位68,标识中断屏蔽失败。
Claims (6)
1.一种支持中断屏蔽指令的数据处理器,包括:
指令提取单元,用于从指令存储器中读取指令发送到指令译码单元;
指令译码单元,用于对发送来的指令进行译码,译出指令的相关类型信息和操作数信息;
指令执行单元,用于根据指令译码结果做出相应的处理;
异常和中断处理单元,用于处理指令产生的异常和中断请求;
其特征在于:所述指令存储器中的指令集还包括中断屏蔽指令,所述中断屏蔽指令包括类型字段、起始字段与结束字段,其中,所述起始字段确定不响应中断的指令序列相对当前中断屏蔽指令的起始位置,所述结束字段确定所述不响应中断的指令序列相对当前中断屏蔽指令的结束位置;
所述数据处理器还包括:中断屏蔽控制器,用于检测指令执行单元发送的中断屏蔽指令信息和后续指令完成信息,将从相对当前中断屏蔽指令的起始位置开始到结束位置之间的指令序列产生中断屏蔽信息;
所述指令执行单元的输出端连接所述中断屏蔽控制器,所述中断屏蔽控制器与所述异常和中断处理单元连接。
2.如权利要求1所述的支持中断屏蔽指令的数据处理器,其特征在于:所述中断屏蔽控制器包括:起始位置寄存器、结束位置寄存器、计数器、状态机和中断屏蔽标志位;起始位置寄存器保存指令序列的起始位置,结束位置寄存器保存指令序列的结束位置,计数器对中断屏蔽指令后完成的指令进行计数,中断屏蔽标志位指示了中断屏蔽是否成功执行,状态机控制计数器的操作和中断屏蔽标志位的设置。
3.如权利要求2所述的支持中断屏蔽指令的数据处理器,其特征在于:当中断屏蔽控制器检测到中断屏蔽指令进入指令执行单元时,分别将指令译码单元获得的起始位置信息存入起始位置寄存器,结束位置信息存入到结束位置寄存器中,启动计数器和状态机,计数器从零开始计数,状态机从空闲状态进入到工作状态,此后中断屏蔽指令完成。
4.如权利要求2或3所述的支持中断屏蔽指令的数据处理器,其特征在于:在状态机处于工作状态时,后续指令将逐一进入指令执行单元,指令执行单元正常完成一条指令时计数器增一,若检测到指令执行单元指令产生异常,计数器清零并同时状态机回到空闲状态,中断屏蔽功能失效。
5.如权利要求2或3所述的支持中断屏蔽指令的数据处理器,其特征在于:当计数器记录的数值与起始位置寄存器保存的数值相同时,设置中断屏蔽标志位有效并同时产生中断屏蔽信号通知异常和中断处理单元屏蔽中断,此后数据处理器进入中断屏蔽状态;当计数器记录的数值增加到与结束位置寄存器保存的数值相同或者指令执行单元产生异常时,设置中断屏蔽标志位无效并产生中断屏蔽解除信号通知异常和中断处理单元,此后数据处理器重新进入中断响应状态。
6.如权利要求1~3之一所述的支持中断屏蔽指令的数据处理器,其特征在于:指令译码单元译出中断屏蔽指令的类型信息、起始字段与结束字段,确定不响应中断指令序列的起始位置和结束位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110081597.3A CN102141904B (zh) | 2011-03-31 | 2011-03-31 | 支持中断屏蔽指令的数据处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110081597.3A CN102141904B (zh) | 2011-03-31 | 2011-03-31 | 支持中断屏蔽指令的数据处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102141904A CN102141904A (zh) | 2011-08-03 |
CN102141904B true CN102141904B (zh) | 2014-02-12 |
Family
ID=44409448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110081597.3A Active CN102141904B (zh) | 2011-03-31 | 2011-03-31 | 支持中断屏蔽指令的数据处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102141904B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495724A (zh) * | 2011-11-04 | 2012-06-13 | 杭州中天微系统有限公司 | 一种加快存储指令执行效率的数据处理器 |
CN103440120B (zh) * | 2013-08-23 | 2016-05-18 | 万高(杭州)科技有限公司 | 电能计量信号处理器的指令译码屏蔽系统与方法 |
CN106775971B (zh) * | 2016-12-02 | 2020-01-31 | 杭州中天微系统有限公司 | 数据处理装置 |
CN106919366B (zh) * | 2017-02-15 | 2019-06-04 | 杭州中天微系统有限公司 | 实现堆栈自适应保护的处理器 |
WO2021128249A1 (zh) * | 2019-12-27 | 2021-07-01 | 深圳市大疆创新科技有限公司 | 处理器、任务响应方法、可移动平台、及相机 |
CN118113446A (zh) * | 2024-04-30 | 2024-05-31 | 浪潮电子信息产业股份有限公司 | 中断处理方法、装置及设备、存储介质和计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4409654A (en) * | 1980-03-07 | 1983-10-11 | Hitachi, Ltd. | Data processor adapted for interruption to an instruction stream |
CN86107934A (zh) * | 1985-11-27 | 1987-08-12 | 莫托罗拉公司 | 具有指令预取转向中断服务的数据处理器控制部件 |
CN201387606Y (zh) * | 2009-04-21 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 中断处理装置和物理连接状态翻转事件处理装置 |
-
2011
- 2011-03-31 CN CN201110081597.3A patent/CN102141904B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4409654A (en) * | 1980-03-07 | 1983-10-11 | Hitachi, Ltd. | Data processor adapted for interruption to an instruction stream |
CN86107934A (zh) * | 1985-11-27 | 1987-08-12 | 莫托罗拉公司 | 具有指令预取转向中断服务的数据处理器控制部件 |
CN201387606Y (zh) * | 2009-04-21 | 2010-01-20 | 北京星网锐捷网络技术有限公司 | 中断处理装置和物理连接状态翻转事件处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102141904A (zh) | 2011-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102141904B (zh) | 支持中断屏蔽指令的数据处理器 | |
US6928523B2 (en) | Synchronous signal producing circuit for controlling a data ready signal indicative of end of access to a shared memory and thereby controlling synchronization between processor and coprocessor | |
US8082426B2 (en) | Support of a plurality of graphic processing units | |
US8464035B2 (en) | Instruction for enabling a processor wait state | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
TW201032129A (en) | Technique for promoting efficient instruction fusion | |
US11604711B2 (en) | Error recovery method and apparatus | |
JP2014197408A (ja) | ロックインジケータを有するマルチスレッドプロセッサ | |
CN101236515B (zh) | 多核系统单核异常的恢复方法 | |
CN102214085B (zh) | 微型计算机和中断控制方法 | |
US20060168430A1 (en) | Apparatus and method for concealing switch latency | |
CN101183317A (zh) | 实时中断与多个进程状态同步的方法 | |
CN100555233C (zh) | 用于在多处理器系统中进行同步的方法和设备 | |
CN109284176B (zh) | 中断响应方法、装置及计算机可读存储介质 | |
JP2008146542A (ja) | マルチプロセッサシステム、プロセッサ装置及び例外処理方法 | |
CN109922014B (zh) | 一种交换机冷热启动判断方法及系统 | |
JP2735514B2 (ja) | プロセス状態管理方式 | |
WO2020150058A1 (en) | Method, apparatus, and electronic device for improving cpu performance | |
JP2005190038A (ja) | プロセッサの診断処理方法および診断処理プログラム | |
CN112416609A (zh) | 双核模式的模式配置方法及装置 | |
JPH0245838A (ja) | プログラム実行状態監視方法 | |
CN111767155A (zh) | 死锁检测方法、装置、设备及计算机可读存储介质 | |
CN117407182B (zh) | 一种基于Poll指令的进程同步方法、系统、设备及介质 | |
CN107967181A (zh) | 临界区的控制方法及装置 | |
CN113220541B (zh) | 一种多核处理器的内存巡检方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |