基于地址窗口的处理器推测访问过滤装置及其过滤方法

文档序号:6597473阅读:232来源:国知局
专利名称:基于地址窗口的处理器推测访问过滤装置及其过滤方法
技术领域
本发明属于计算机体系结构中处理器技术领域,特别涉及处理器访问过滤装置及
其过滤方法。
背景技术
提高单周期执行完成的指令数(IPC)可以提高处理器的处理性能,为此现代处理 器采用了众多体系结构优化技术,如高速缓存(Cache)、多发射、乱序执行、推测执行等。其 中推测执行技术,可以根据编译器或程序员提供的程序静态特征以及处理器在执行过程中 收集的程序动态行为这两方面信息,在程序执行流尚未明确之时,推测出下一步最可能进 入的执行流,提前进行执行。在推测正确的情况下,处理器可以更早地执行完更多的指令, 从而提高了处理器的执行性能。 但是,也存在推测错误的情况,此时处理器会在本不应该执行的指令流上取指令 或读写数据。这些操作一旦在处理器内部的高速缓存(Cache)不命中,就会引起对处理器 外部的访问。 一般的设计考虑中,写访问请求一旦达到处理器接口则无法撤消,故对于写操 作通常有严格考虑,其必须在明确不被撤销的情况下方可发送到处理器接口。推测执行的 写操作在状态确认之前必须在处理器内部等待,需要消耗大量存储资源且降低流水线执行 效率。另一方面,读操作则不必如此严格处理,因为普通情况下读操作不会改变处理器的状 态,所以推测路径上的取指和取数操作通常在状态未确认前即可发送到处理器接口上。
上述实现方式在构建计算机系统时会遇到困难,因为系统中集成的众多设备中, 某些设备会有一些地址访问的盲区,即在属于该设备的连续地址访问空间中存在若干小段 地址,对这些小段地址的访问,设备将不做任何响应。存在这种设备访问盲区的系统,一旦 运行其上的软件访问到这些设备访问盲区,系统将极可能进入死机状态。推测执行的指令 流,因此动态产生,程序员无法控制其执行过程,在推测执行指令流上产生的处理器对外访 问可能落在系统的设备盲区内,从而导致系统异常死机。 解决上述异常死机问题可以用软件方式解决,也可以用硬件方式解决。软件解决 方式主要是在可能产生危害推测地址的代码处增加冗余代码以消除其影响,但是这样做需 要解决易错代码定位和代码修改验证两大挑战,对于现有愈加庞杂的软件而言,这种解决 方式实际操作难度大。硬件解决的方式可以修改设备处理逻辑,使其不存在访问盲区;也可 以在系统访问设备的数据通路上添加访问监听过滤逻辑,将处理器发出的对于访问盲区的 访问屏蔽掉。修改设备处理逻辑意味着淘汰大量已有设备,而系统访问设备数据通路的修 改也牵涉到系统设计的诸多环节。 综上所述,针对设备访问盲区所引发的系统运行隐患,需要发明一种新机制以最 小的代价对其进行有效处理。

发明内容
本发明的目的是提供一种基于地址窗口的处理器推测访问过滤装置及其过滤方法,通过在处理器内部完成对于非法推测访问的过滤处理,而不用系统的额外处理开销。
为实现上述发明目的,本发明采用如下技术方案
—种基于地址窗口的处理器推测访问过滤装置,包括
地址窗口配置部件,用于存储一条或多条地址窗口配置信息; 访问判定部件,用于根据所述地址窗口配置部件中存储的地址窗口配置信息,判 断访问是否落在地址窗口配置信息所设定的地址窗口内; 访问过滤器,用于根据访问判定结果,将访问地址落在地址窗口内的访问过滤。
进一步地,所述地址窗口配置部件中的地址窗口配置信息以表的形式组织。
进一步地,所述地址窗口配置信息以全相联查找表的形式组织,全相联查找表的 每一项对应一条地址窗口配置信息;每条地址窗口配置信息包含若干域,这些域用于写入 使能控制信息和地址窗口的数据信息,每条所述地址窗口配置信息包括使能域、首地址域、 窗口容量域三个域。
本发明还提供一种基于地址窗口的处理器推测访问过滤方法,包括如下步骤
步骤(10):过滤窗口配置步骤,将需要过滤访问的地址窗口信息写入到地址窗口 配置信息中; 步骤(20):访问判定步骤,对于传送到处理器外部接口的访问请求,判断其访问 地址是否落在地址窗口范围内; 步骤(30):访问过滤步骤,将访问地址落在地址窗口内的访问过滤。 进一步地,所述步骤中的地址窗口配置信息以全相联查找表的形式组织,全相联
查找表的每一项对应一条地址窗口配置信息,每条所述地址窗口配置信息包括使能域、首
地址域、窗口容量域;所述首地址域中存储的首地址为物理地址。 进一步地,存在两条所述地址窗口配置信息中的对应的地址空间重叠。
进一步地,所步骤(20)具体为,将地址窗口配置信息进行逐条解析,获得各个地
址窗口的范围,对所有处理器对外访问的地址,判断其是否落在地址窗口的范围内; 所述步骤(20)中判断其是否落在地址窗口的范围内的步骤具体为,将待判定访
问地址分别与地址窗口配置信息表中各项的首地址、地址掩码逐位相与,若其分别与某项
的首地址和地址掩码逐位相与的两个结果一致,则待判定访问地址落在该项地址窗口的范
围内,该访问判定结果成立,将判定结果将被附加到被判定的访问上; 所步骤(20)中,在一个时钟周期内并行完成访问地址与地址窗口配置信息表中 各项的判定。 进一步地,所述步骤(30)具体为,检查每一个到达处理器对外接口上的访问,对
于判定结果成立的访问,屏蔽其对于处理器外部接口的驱动,同时在接口结果返回队列中
记录下来,等到该访问之前的访问结果均从接口返回后,返回处理器内部的伪响应。 进一步地,所述伪响应的响应时序关系与正常读访问请求响应时序相同,并且响
应的地址信息对应该被过滤访问。 进一步地,在所述步骤(10)中信息的写入通过硬件固化或软件配置两种方式获 得。 进一步地,所述软件配置方式包含专用寄存器方式和内存映射方式; 所述内存映射方式中,处理器将一块事先定义好的地址区域标记成地址窗口配置专用,随后对该地址区域的访问对应到地址窗口配置信息表; 所述专用寄存器方式包括直接将断点信息表存于若干制定专用寄存器和利用制定专用寄存器作为读写接口对处理器内部存储进行操作这两种方式; 所述利用制定专用寄存器作为读写接口对处理器内部存储进行操作具体包括,定义地址接口寄存器和数据接口寄存器,所述地址窗口配置信息表中的每个域均有唯一编址,将对每个域的读写转化为对一段连续空间特定地址的读写
本发明具有以下优点 1、将推测访问的过滤机制实现在处理器内部,简化了系统解决设备访问盲区问题的复杂度; 2、采用表的形式管理地址过滤窗口信息,且允许软件配置,不仅增加了地址过滤窗口信息的扩展性,也使得地址过滤窗口的配置更加灵活。
以下结合附图及实施例进一步说明本发明。


图1为本发明实施例一基于地址窗口的处理器推测访问过滤装置结构示意 图2为本发明实施例二基于地址窗口的处理器推测访问过滤方法流程示意图。
具体实施方式
实施例一 如图1所示, 一种基于地址窗口的处理器推测访问过滤装置,包括
地址窗口配置部件l,存储有一条或多条地址窗口配置信息; 访问判定部件2,根据所述地址窗口配置部件1中存储的地址窗口配置信息,判断访问是否落在地址窗口配置信息所设定的地址窗口内; 访问过滤器3,根据访问判定结果,将访问地址落在地址窗口内的访问过滤。
其中,所述地址窗口配置部件1中的地址窗口配置信息以表的形式组织,组成地址窗口配置信息表。本实施例中优选采用以全相联查找表的形式组织,全相联查找表的每一项对应一条地址窗口配置信息。 其中,每条地址窗口配置信息包含若干域,这些域用于写入使能控制信息和地址窗口的数据信息。其中,使能控制信息用于表示该条地址窗口配置信息是否用于推测访问的过滤。地址窗口的数据信息用以描述一个地址窗口特征的数据信息,其描述了一段封闭的连续地址空间。 如图1所示,本实施例中每条地址窗口配置信息包括使能域11、首地址域12、窗口容量域13三个域,通过首地址域12中的首地址与窗口容量域13中的地址空间大小来描述一段封闭连续的地址空间,该地址空间对应地址窗口 。 其中,两条所述地址窗口配置信息中的对应的地址空间可以重叠。这样可以组织成更为复杂的地址空间形式。 其中,所述访问判定部件2将地址窗口配置部件的地址窗口配置信息进行逐条解析,获得各个地址窗口的范围,对所有处理器对外访问的地址,判断其是否落在地址窗口的范围内。本实施例中判定方式为,将待判定访问地址分别与地址窗口配置信息表中各项的首地址、地址掩码逐位相与,若其分别与某项的首地址和地址掩码逐位相与的两个结果一
致,则表明待判定访问地址落在该项地址窗口的范围内,该访问判定结果成立。 其中,所述访问判定部件2在一个时钟周期内并行完成与地址窗口配置信息表中
各项的判定。并将判定结果将被附加到被判定的访问上,用于指导访问过滤器3的后续操作。 其中,所述访问过滤器3检查每一个到达处理器对外接口上的访问,对于判定结 果成立的访问,访问过滤器3屏蔽其对于处理器外部接口的驱动,同时在接口结果返回队 列中记录下来。等到该访问之前的访问结果均从接口返回后,访问过滤器3返回处理器内 部的伪响应。该伪响应只需要响应时序关系等同于正常读访问请求响应时序,并且响应的 地址信息对应该被过滤访问即可,其它信息诸如返回数据无需特殊考虑,本实施例中均设 为0。 实施例二 如图2所示, 一种基于地址窗口的处理器推测访问过滤方法,采用上述实施例一 的过滤装置,包括如下步骤 步骤10 :过滤窗口配置步骤,将需要过滤访问的地址窗口信息写入到地址窗口配 置信息中,写入过程无顺序要求; 步骤20 :访问判定步骤,对于传送到处理器外部接口的访问请求,判断其访问地 址是否落在地址窗口范围内; 步骤30 :访问过滤步骤,将访问地址落在地址窗口内的访问过滤。 其中,所述步骤10中的地址窗口配置信息以全相联查找表的形式组织,全相联查
找表的每一项对应一条地址窗口配置信息。 其中,在所述步骤10中每条地址窗口配置信息包括使能域11、首地址域12、窗口 容量域13三个域,所述使能域11用于表示该条地址窗口配置信息是否用于推测访问的过 滤,首地址域12中用于存储的首地址信息,窗口容量域13用于存储的地址空间大小信息, 首地址信息和地址空间大小信息描述一段封闭连续的地址空间,该地址空间对应过滤的地 址窗口。本实施例中,将地址空间的大小限制为2的幂次,并且首地址是大小的整数倍。具 体地,地址窗口的数据信息包括一个32位的首地址域12以及一个32位的地址掩码域13, 其中地址掩码域13中存放的数值为以连续1起始的后续连续0的二进制比特串,其连续 1的个数k即表示该窗口的大小为2的k次方字节。例如,首地址为0x007f0100,掩码为 0xffffff00,表示从地址0x007f0100至0x007f01ff大小为256字节的连续地址空间。所 述首地址域12中的地址为物理地址。
其中,所述首地址域12中的地址为物理地址。 其中,两条所述地址窗口配置信息中的对应的地址空间可以重叠。 所步骤20具体为,将地址窗口配置信息进行逐条解析,获得各个地址窗口的范
围,对所有处理器对外访问的地址,判断其是否落在地址窗口的范围内。本实施例中判定方
式为,将待判定访问地址分别与地址窗口配置信息表中各项的首地址、地址掩码逐位相与,
若其分别与某项的首地址和地址掩码逐位相与的两个结果一致,则表明待判定访问地址落
在该项地址窗口的范围内,该访问判定结果成立,并将判定结果将被附加到被判定的访问
上,用于指导访问过滤。。
所步骤20中,在一个时钟周期内并行完成访问地址与地址窗口配置信息表中各 项的判定。 所述步骤30具体为,检查每一个到达处理器对外接口上的访问,对于判定结果成 立的访问,屏蔽其对于处理器外部接口的驱动,同时在接口结果返回队列中记录下来。等到 该访问之前的访问结果均从接口返回后,返回处理器内部的伪响应。该伪响应的响应时序 关系与正常读访问请求响应时序相同,并且响应的地址信息对应该被过滤访问,其它信息 诸如返回数据无需特殊考虑,本实施例中均设为0。 其中,在所述步骤10中信息的写入可以通过硬件固化和软件配置两种方式获得, 且这两种方式可以同时存在。 其中,所述硬件固化方式中,地址窗口配置信息在每次上电之后由硬件自动填入 到地址窗口信息配置表中。这里固化的地址窗口配置信息可以任意指定,在本实施例中全 相联查找表的每一项的使能控制信息均设置为0。而软件配置方式保证用户可以根据系统 中设备的变动情况灵活调整地址过滤窗口配置。 其中,所述软件配置方式又可包含专用寄存器方式和内存映射方式。当使用内存 映射方式时,处理器将一块事先定义好的地址区域标记成地址窗口配置专用,这样随后对 该地址区域的访问即直接对应到地址窗口配置信息表。 其中,所述专用寄存器方式又可进一步划分为直接将断点信息表存于若干制定专 用寄存器,以及利用制定专用寄存器作为读写接口对处理器内部存储进行操作这两种不同 的方式。在本实施例中采用后一种方式,具体来说,定义两个专用寄存器,其一为地址接口 寄存器,另一为数据接口寄存器。地址窗口配置信息表中的每个域均有唯一编址,从而对每 个域的读写转化为对一段连续空间特定地址的读写。以写操作为例,程序首先将待访问域
的地址写入到地址接口寄存器中,随后将欲写入的数据写入到数据接口寄存器中,随后地
址窗口配置部件将根据这两个寄存器中的信息更新地址窗口配置信息表中指定域的内容。 下面举两个具体的实施例子,通过地址窗口信息的配置以及访问过滤的例子来进
一步说明本发明提到的基于地址窗口的处理器推测访问过滤实现方案。 例1、设置两个地址窗口 第一个范围是0x00401300 0x004013ff,第二个范围是
0x04002080 0x040020ff。在配置时将这两个地址窗口的配置信息存放于地址窗口配置
信息表的第一项和第二项。对于第一项来说,其首地址、地址掩码与窗口使能三个域从o至
2依次编址。第二项的三个域从3至5依次编址。以设置第一个窗口的首地址域为例,先对 专用控制寄存器(地址接口专用寄存器)写入O,即将第一项地址域的地址写入,随后对专 用控制寄存器(数据接口专用寄存器)写入0x00401300,这样地址窗口信息配置表的第一 项即被设置为0x00401300。重复这样的过程直至待设置的两窗口余下的信息均设置完毕。
例2、假定地址窗口配置信息表中共有三项内容(1)首地址0x00401200,地址掩 码0xffffff00,使能1 ; (2)首地址0x04003e80,地址掩码0xffffff80,使能0 ; (3)首地址 0x001f7c00,地址掩码OxfffffeOO,使能1。现有一推测执行路径上的取指,其物理地址为 0x001f7c04,该访问在cache中不命中,故触发处理器对地址0x001f7c04的访问。该访问 通过访问判定部件时,根据地址窗口配置信息表各项使能域信息,与第(1)项与第(3)项地 址掩码逐位相与,得到结果均为0x001f7c00。又因这两项自身首地址与地址掩码逐位相与 结果分别为0x00401200、0x001f7c00,经过比较发现访问落在第(3)项所示的地址窗口范
8围内,该访问被标记上过滤判定结果成立。访问过滤器在该访问即将传送至处理器接口时,对其进行检查,发现需要过滤该访问。访问过滤器立即屏蔽其对于处理器接口的访问,同时在接口结果返回队列中记录下来。等到该访问之前的访问结果均从接口返回后,访问过滤器返回给处理器内部一个满足返回时序的伪响应。 以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
权利要求
一种基于地址窗口的处理器推测访问过滤装置,其特征在于包括地址窗口配置部件(1),用于存储一条或多条地址窗口配置信息;访问判定部件(2),用于根据所述地址窗口配置部件(1)中存储的地址窗口配置信息,判断访问是否落在地址窗口配置信息所设定的地址窗口内;访问过滤器(3),用于根据访问判定结果,将访问地址落在地址窗口内的访问过滤。
2. 根据权利要求1所述的基于地址窗口的处理器推测访问过滤装置,其特征在于所述地址窗口配置部件(1)中的地址窗口配置信息以表的形式组织。
3. 根据权利要求2所述的基于地址窗口的处理器推测访问过滤装置,其特征在于所述地址窗口配置信息以全相联查找表的形式组织,全相联查找表的每一项对应一条地址窗口配置信息;每条地址窗口配置信息包含若干域,这些域用于写入使能控制信息和地址窗口的数据信息,每条所述地址窗口配置信息包括使能域(11)、首地址域(12)、窗口容量域(13)三个域。
4. 一种基于地址窗口的处理器推测访问过滤方法,其特征在于包括如下步骤步骤(10):过滤窗口配置步骤,将需要过滤访问的地址窗口信息写入到地址窗口配置信息中;步骤(20):访问判定步骤,对于传送到处理器外部接口的访问请求,判断其访问地址是否落在地址窗口范围内;步骤(30):访问过滤步骤,将访问地址落在地址窗口内的访问过滤。
5. 根据权利要求4所述的基于地址窗口的处理器推测访问过滤方法,其特征在于所述步骤(10)中的地址窗口配置信息以全相联查找表的形式组织,全相联查找表的每一项对应一条地址窗口配置信息,每条所述地址窗口配置信息包括使能域(11)、首地址域(12)、窗口容量域(13),所述首地址域(12)中存储的首地址为物理地址。
6. 根据权利要求5所述的基于地址窗口的处理器推测访问过滤方法,其特征在于存在两条所述地址窗口配置信息中的对应的地址空间重叠。
7. 根据权利要求6所述的基于地址窗口的处理器推测访问过滤方法,其特征在于所步骤(20)具体为,将地址窗口配置信息进行逐条解析,获得各个地址窗口的范围,对所有处理器对外访问的地址,判断其是否落在地址窗口的范围内;所述步骤(20)中判断其是否落在地址窗口的范围内的步骤具体为,将待判定访问地址分别与地址窗口配置信息表中各项的首地址、地址掩码逐位相与,若其分别与某项的首地址和地址掩码逐位相与的两个结果一致,则待判定访问地址落在该项地址窗口的范围内,该访问判定结果成立,将判定结果将被附加到被判定的访问上;所步骤(20)中,在一个时钟周期内并行完成访问地址与地址窗口配置信息表中各项的判定。
8 根据权利要求7所述的基于地址窗口的处理器推测访问过滤方法,其特征在于所述步骤(30)具体为,检查每一个到达处理器对外接口上的访问,对于判定结果成立的访问,屏蔽其对于处理器外部接口的驱动,同时在接口结果返回队列中记录下来,等到该访问之前的访问结果均从接口返回后,返回处理器内部的伪响应。
9. 根据权利要求8所述的基于地址窗口的处理器推测访问过滤方法,其特征在于所述伪响应的响应时序关系与正常读访问请求响应时序相同,并且响应的地址信息对应该被过滤访问。
10.根据权利要求4至9中任一权利要求所述的基于地址窗口的处理器推测访问过滤方法,其特征在于在所述步骤(10)中信息的写入通过硬件固化或软件配置两种方式获得。 所述软件配置方式包含专用寄存器方式和内存映射方式;所述内存映射方式中,处理器将一块事先定义好的地址区域标记成地址窗口配置专 用,随后对该地址区域的访问对应到地址窗口配置信息表;所述专用寄存器方式包括直接将断点信息表存于若干制定专用寄存器和利用制定专 用寄存器作为读写接口对处理器内部存储进行操作这两种方式;所述利用制定专用寄存器作为读写接口对处理器内部存储进行操作具体包括,定义地 址接口寄存器和数据接口寄存器,所述地址窗口配置信息表中的每个域均有唯一编址,将 对每个域的读写转化为对一段连续空间特定地址的读写。
全文摘要
基于地址窗口的处理器推测访问过滤装置及其过滤方法,所述装置包括地址窗口配置部件,用于存储地址窗口配置信息;访问判定部件,用于根据所述地址窗口配置部件中存储的地址窗口配置信息,判断访问是否落在地址窗口配置信息所设定的地址窗口内;访问过滤器,用于根据访问判定结果,将访问地址落在地址窗口内的访问过滤。所述地址窗口配置信息以全相联查找表的形式组织。本发明将推测访问的过滤机制实现在处理器内部,简化了系统解决设备访问盲区问题的复杂度;并且采用表的形式管理地址过滤窗口信息,且允许软件配置,不仅增加了地址过滤窗口信息的扩展性,也使得地址过滤窗口的配置更加灵活。
文档编号G06F11/00GK101763292SQ20101003433
公开日2010年6月30日 申请日期2010年1月18日 优先权日2010年1月18日
发明者徐翠萍, 李祖松, 汪文祥, 郝守青 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1