CN1636197A - 通过定序数据值并允许有界总量虚假数据感知命令的装置和方法 - Google Patents
通过定序数据值并允许有界总量虚假数据感知命令的装置和方法 Download PDFInfo
- Publication number
- CN1636197A CN1636197A CNA028190130A CN02819013A CN1636197A CN 1636197 A CN1636197 A CN 1636197A CN A028190130 A CNA028190130 A CN A028190130A CN 02819013 A CN02819013 A CN 02819013A CN 1636197 A CN1636197 A CN 1636197A
- Authority
- CN
- China
- Prior art keywords
- counter
- value
- data value
- relevant data
- sequence
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Optical Radar Systems And Details Thereof (AREA)
- Storage Device Security (AREA)
Abstract
一种用于控制外围设备的系统和方法。本发明涉及在考虑到序列中有界量的虚假数据的情况下,利用设备地址调用定序来控制活动的存储器总线外围设备。
Description
发明背景
本发明涉及对外围设备的控制。更具体来说,本发明涉及在考虑到序列中有界量的虚假数据的情况下利用独立的设备地址调用定序(sequencing)来控制存储器总线外围设备。
在对提高计算机速度和效率的不断追求中,设计人员有时利用专用设备来处理为之专门设计这些设备的活动。例如,视频卡(图形加速器)常常被用来在不牺牲计算机总体性能的情况下改善计算机系统显示视频图像的能力。它们让计算机的中央处理单元(CPU)在视频卡处理图像计算的同时执行其它命令。
另一个例子与用于加密和解密的专用设备有关。随着越来越多的信息通过因特网传输,安全性已经变成越来越普遍的问题。现有技术中用加密技术来防止对经因特网传输的数据的擅自截获。一种数据加密的公共协议的例子是安全套接层(SSL-Security SocketsLayer)(SSL 2.0,1995年2月9日修改)。当启动一个SSL会话(session)时,服务器把它的“公”钥转发给用户的浏览器,浏览器用其来将一个随机生成的“私”钥向回发送到服务器,以为该会话进行一次密钥交换。SSL是由Netscape公司开发的,已经与其它协议和验证方法一起被因特网工程任务组(IETF)合并到一个称作传输层安全(TLS-Transport Layer Security)的新协议中(TLS 1.0,1999年修改)。
诸如在SSL中所用的加密/解密协议,是计算量非常大的。编码和解码信息的过程占用中央处理单元(CPU)的大量宝贵处理资源。除了加密/解密和视频处理外,其它要进行密集计算的活动和重复性过程都从专用外围设备处理中受益。
在诸如为加密/解密提供存储器总线上的专用设备(存储器总线外围设备)时,设备需要是活动的(active)并且还要是能够从CPU接收命令的。因此需要一种通过提供专用的、活动的存储器总线外围设备来把CPU从对计算密集型活动分担的责任中解脱开来的系统。进一步需要改善CPU与该专用的、活动的存储器总线外围设备之间的通信。
附图说明
图1提供现有技术中典型的存储器总线的图示;
图2说明按照本发明原理的活动的存储器总线外围设备的操作;
图3提供表示按照本发明原理的动态总线外围设备的总线切换的过程的流程图;
图4提供按照本发明原理在用于触发“取总线”(Get Bus)命令的顺序地址调用中使用的地址单元的示例;
图5a提供表示按照本发明原理的、利用对在“相关”数据值的序列内交织的虚假数据的预定容许量来检测数据值序列的说明性时间图;
图5b提供按照本发明原理的、如果被图5a的装置看见的一项被改变时结果的改变的说明;
图5c提供按照本发明原理的、超越(overtaking)和吸取正在进行中的初级命令序列分析的次级并行序列分析的说明;
图6提供按照本发明原理的数据值序列检测器的总体示意图。
具体实施方式
图1提供现有技术中典型的存储器总线的图示。微处理器芯片组102(主机)使用一个或多个存储器模块104,例如双列直插存储器模块。主机102一般通过公共存储器总线与存储器模块通信。换言之,每个存储器模块看到在存储器总线106上传送的所有地址、控制和数据信号。主机能通过利用一系列的“芯片选择”线(总线)108来确定哪个存储器模块要接收一条消息。在图1中,提供一系列的芯片选择“总线”108。例如在一个DIMM中,每个芯片选择总线108要向该模块的前端提供一个芯片选择,并向该模块的后端提供一个芯片选择。每个芯片选择线108与一个特定存储器模块108相关联。有效的(asserted)芯片选择线108规定哪个存储器模块要接收当前在存储器总线106上传输的数据。
图2表示按照本发明原理的活动的存储器总线外围设备的操作。在本发明一个实施例中,用现场可编程门阵列202来加速各种计算密集型任务(诸如加密和解密)。FPGA 202针对通过并行处理单元等而具有与其用途(加密/解密)相关联的重复性计算的最佳性能而被配置。在一个实施例中,将FPGA 202安置在PC-100(注册DIMM设计规范(修订版1.2))或PC-133(注册DIMM设计规范(修订版1.1))的存储器总线206上的DIMM槽中。在一个实施例中,板上SDRAM(同步动态随机存取存储器)210在主计算机208和FPGA 202之间被共享,主计算机208将其看作是普通存储器(例如类似于存储器模块204)。共享是通过总线开关(switch)212切换主机208和FPGA 202之间到板上SDRAM 210的地址/数据/控制连接而实现的。在一个实施例中,在任何给定时刻,或者主机208或者FPGA 202可访问板上SDRAM 210。总线开关212对这个板上SDRAM 210总线的切换,由主机208请求,但是直接由FPGA 202控制。在一个实施例中,主机208必须能够向FPGA 202发送两种命令:“把SDRAM总线切换到主机”和“把SDRAM总线切换到FPGA”。从主机的角度看,这可分别称为“取总线”(get bus)和“发总线”(put bus)。
在一个实施例中,用信号抽头(signal tap)215将FPGA 202连接到主机的存储器总线206上的地址和控制信号以及装置214的芯片选择,而不管板上SDRAM总线开关连接的是哪个设备,这样它就能监测由主机208驱动的值。在一个实施例中,由于受尺寸限制,FPGA 202没有足够的引脚来监测数据线。因此,在这种情况下不监测数据信号。
发送“取总线”命令的一种潜在方法是让主机208读取或写板上SDRAM 210的存储器中的两个相应的触发地址的其中之一。通过监测地址和控制信号,FPGA 202能检测到“取总线”命令的触发地址何时被访问,并相应地切换总线。然而,在采用纠错码(ECC-ErrorCorrection Code)存储器的系统上,这可能导致问题。当主机208发出“取总线”命令时,假定主机208是不与板上SDRAM 210的存储器连接的。如果芯片组208试图读板上SDRAM 210的存储器,它将读到无效数据或“垃圾”—无论什么值都会作为以前驱动的值(电容或电荷泄漏)的结果而碰巧出现在存储器总线206的数据和奇偶校验线上—这会产生一个ECC错误,具有可能是终止的后果。系统可能断定存储器(装置214)有故障,因而完全关掉与存储器的通信。在有些系统上,即使是由中央处理单元(CPU)请求的一个写也可能产生芯片组208的一个读,例如芯片组208从几个单元读,修改所请求的一些数据,然后将其全部写回。ECC因此可能检测到虚假的错误,从而产生问题。
鉴于这些潜在的问题,可能有必要通过其它手段来触发总线开关212。在一个实施例中,主机208不是写到板上SDRAM的存储器204以触发一个“取总线”,而是写到系统的存储器总线206上的另一个DIMM 204上的存储器,FPGA 202通过监测存储器总线206的地址信号而检测到它,存储器总线206的地址信号在芯片组208、装置214(SDRAM 210、总线开关212和FGPGA 202)和其它DIMM(存储器模块)204之间被共享。在一个实施例中,由于芯片选择信号216(一般地)不在各个DIMM的214、204之间被共享,装置214不能断定除它自己214以外的哪个存储器模块204(或该模块的哪一端)正在被访问。另外,由于此存储器模块204与彼存储器模块204在存储器总线地址线选择行、存储体(bank)、列的具体用法上不同,装置214可能不能够准确地断定正在被访问的存储器模块204(从保留的2KB开始的,下文解释)内的偏移是什么。在一个实施例中,所能依赖的是把8个最低有效总线地址线用作8个最低有效列地址位。在一个实施例中,使用64位数据字,装置214能断定以2KB为模的什么物理地址正在被访问。例如,它能断定某个访问曾是对物理地址2048*N+1224个字节的,N是某个未知值。在这个例子中,装置214的信息是1224个字节或153个64位存储单元的偏移(offset)。这规定仅8位的信息。如果FPGA 202在每次有进入2KB(存储器的保留区)的偏移被看到时执行一个“取总线”请求,它就可能以频繁地、并非想要的次数这样做,不仅被有意的“取总线”命令所触发,也被操作系统或软件应用程序进行的无关的存储器访问所触发。在一个实施例中,为了最小化这种意外的“取总线”切换,通过不仅写到单一的地址,还写到一序列的地址,而使命令中的信息量得到增加。在一个实施例中,通过仔细地选择该序列,使其足够长,能使芯片组208随机执行匹配该序列的存储器访问变得不大可能。
在一个实施例中,无需为“发总线”命令利用一序列的地址调用。因为主机208在“发总线”命令的时刻是与装置的SDRAM 210连接的,写到装置的SDRAM 210上的一个单一地址是没有问题的。在这样一个命令之后,FPGA 202把总线切换到它自己。
在一个实施例中,在命令序列(“相关”)值之间很可能有一个或多个不是命令序列的一部分的值(“非相关”值)会出现在存储器总线206上。这是因为存储器总线206可能同时被用于其它操作。在一个实施例中,芯片组102的每个存储器访问—无论是由CPU、外围设备直接存储器存取访问(DMA)还是芯片组102自己生成的—都在最低有效8个地址位中产生某个8位值,而在该装置试图发送“取总线”命令序列期间可能出现几个这样的访问,由此在命令序列的连续各项之间引入虚假的8位值。在一个实施例中,如果FPGA 202一旦错过一条“取总线”,这会导致大问题,因为该装置然后会在主机208不与该SDRAM 210连接的时候执行许多以该装置的SDRAM 210为目标的存储器操作。相比之下,如果FPGA 202错误地将SDRAM 210总线切换到主机208—尽管“取总线”序列根本没有被发送也以为看到了“取总线”序列,则唯一的后果是性能的某种丧失,这是因为,“取总线”命令终归要被发送,之后事情将回归正常。因此,在一个实施例中,在允许太多的中间虚假数据值方面的出错可能更好。
图3提供表示按照本发明原理的动态总线外围设备的总线切换的过程的流程图。在本发明一个实施例中,总线开关处于缺省位置302,提供板上SDRAM与FPGA之间的通信。在一个实施例中,当主机想要访问装置的存储器304(为了加密/解密等)时,就给系统加“旋转-锁”(例如引起无限循环),禁止尽可能多的中断,并建立对访问存储器尽可能排它的和尽可能不可中断的执行优先级306。在一个实施例中,主机尽可能快地写到在保留的2KB中的预定的地址序列308。由于该装置所看到的地址是基于64位数据字的,序列中的每个地址是按8字节的不同的倍数的偏移。在一个实施例中,一个有效的8个偏移的序列如下所示:1028、464、1736、1056、408、1840、1256和704个字节。在一个实施例中,为了FPGA检测“取总线”命令序列,在每个相应的时钟边沿对来自系统的存储器总线的八条最低有效地址线监测。在一个实施例中,将这些八位与通过将主机所用的字节偏移除以8而确定的命令序列值比较。对应于上面提供的序列,这些值是151、58、217、132、51、230、157和88。在一个实施例中,以前看到的那部分命令序列被监测,当整个序列都被感知时把开关切换到主机。
在一个实施例中,“旋转-锁”然后被去除,中断再次被允许310。在一个实施例中,系统等待一定的时期,以允许FPGA检测命令序列312,并把SDRAM总线切换到主机316。在一个实施例中,这个时期大约是5微秒。地址调用序列感知的过程进一步在下文中针对图5和6作解释。
在一个实施例中,板上SDRAM然后被主机装入用于加密/解密(或任何用途的)数据318。在一个实施例中,主机然后进行预定的一系列地址调用,以触发“发总线”320。数据然后被转发到FPGA,以便能进行计算活动(诸如加密/解密)322。在一个实施例中,在被加密/解密等活动后,数据被返回到SDRAM以便保存起来324。主机然后通过适当的顺序地址调用触发一个“取总线”326(与前面的306-316相同)。在一个实施例中,FPGA感知这个顺序地址调用,于是把总线切换到主机328。在一个实施例中,在等待发生切换后330、332,主机从SDRAM读取并利用改变了的(例如加密/解密了的)数据334。
图4提供按照本发明原理在用于触发“取总线”命令的顺序地址调用中使用的地址单元的示例。在一个实施例中,主机402按预定序列写(或读)板外(off-board)存储器的保留区中特定的预定存储器地址单元而启动一个“取总线”命令。
在一个实施例中,为在内核和驱动程序加载期间启动系统,在软件中在(除了装置406以外的一些DIMM 410、411、412上的)2KB边界上的物理单元保留存储器的至少2KB。在一个实施例中,在该装置的偏移下保留最高的1MB。在一个实施例中,接着,该存储器保留区被设定为“不可高速缓存的”(uncachable),使得对它的写被立即执行。
在一个实施例中,因为装置406看不见芯片选择408,它不知道主机的给定的地址正参考的是DIMM 410、411、412中的哪一个。因此,在一个实施例中,地址调用之间的区别特征是进入保留区中的深度,而不管调用旨在参考的是DIMM 410、411、412中的哪一个。如前文所述,该序列的地址调用是只对一个DIMM 410、411、412还是对多个DIMM 410、411、412,并不要紧。
在一个实施例中的一个假定的地址调用序列中,对第三DIMM 412中的一个特定地址进行第一存储器调用413。在一个实施例中,然后对第二DIMM 411中的一个特定存储器地址进行第二存储器调用414,然后对第一DIMM 410中的一个特定单元进行第三存储器调用415。最后,在一个实施例中,对第三DIMM 412中的一个特定单元进行第四存储器调用416。一旦感知完整的序列,装置406就进行切换。如下文解释的那样,在本发明一个实施例中,装置容忍命令序列中有一些数量的虚假值。因此,可以在“相关”数据值的序列内交织着存在一定数量的、即“N”个“非相关”数据值而不阻碍命令序列的识别。
如前文所述,在一个实施例中,在不影响结果的情况下,这个序列的所有地址调用都可以指向相同的DIMM 410、411、412。唯一的差别是哪个芯片选择408被使能。因为装置406看不到芯片选择408,不会对结果有任何改变。同一个序列的地址调用就导致“取总线”。
图5a提供表示按照本发明原理的、利用对在“相关”数据值的序列内交织的虚假数据的预定容许量来检测数据值序列的时间图。为了解释性的需要,为一个实施例提供一串简单的十进制值和19的“N”值。另外,用值“K”代表命令序列中的项数。在图5中,“K”等于5。
在一个实施例中,数据值序列检测器观察到一串数据值(地址调用等等)在地址总线上经过。在一个实施例中,监测器查找数据值(地址调用)的一个特定序列—例如“57961”,用于触发某个事件(“取总线”)。在一个实施例中,当识别到序列中的第一个值5时(502),第一计数器504复位到零(从“N+1”=20),开始为每个计时信号(时钟嘀嗒)递增一个单位,一直到过去了20个时钟嘀嗒(除非它在达到终止值“TC=20”之前由于遇到该第一个值而被复位并重新开始)。装置下一个遇到“3”。因为这个数据值不是“7”,而“7”是被要求作为该命令序列中的下一个值的,因此这个数据值被忽略。然后,在一个实施例中,装置遇到“7”(506)。在第一计数器504终止前(在第一计数器达到“N+1”=20之前)遇到命令序列中的第二个值(506)时,第二计数器508装载第一计数器504的值,这个时刻该值是“1”。因为装载该值的过程要用一个周期来执行(装载在随后的周期中完成),第二计数器508的递增比第一计数器504落后一步。在一个实施例中,第二计数器508也递增直到“N+1=20”。在一个实施例中,装置现在在第二计数器508终止之前查找序列中的第三个数据值。装置然后看到连续的两个“2”,然后是“3”。
在一个实施例中,装置然后遇到一个“5”(512)。因为“5”是第一数据值,该值被采用,于是第一计数器504被重新开始(510)。在一个实施例中,这就开始一个同时的(并行的)对命令序列的观察。在一个实施例中,提供并行分析的能力是为了防止在观察到一个不成功的(“假的”)序列的同时一个合法的序列经过却没有被识别出来。被监测的、在第一个“5”(502)处开始的系列不会在“N”个嘀嗒内完成该序列,那是有可能的。进一步的可能是,第二个“5”(512)开始的一个系列最终会在容限内完成该序列。如果第一计数器在看到一个重复的第一个值时不被重新开始,而允许并行系列分析,则该装置就有可能错过一个以第二个“5”(512)开始的有效序列。注意到在图5a中第一个“5”(502)的确开始一个有效的序列。
在一个实施例中,装置在“6”、“1”和“8”后识别到一个“9”(514)。这是第三个数据值,因此,第三计数器(513)装载第二计数器(508)的值—该值是“8”(下一个周期装载的),并开始随着每个时钟嘀嗒递增直到“N+1=20”。然后,在一个实施例中,在“4”、“8”和“3”之后,装置识别到“6”(520)。这是第四个值,因此,第四计数器(516)装载第三计数器(513)的值—该值此刻是“11”(下一个周期装载的),并开始递增直到“N+1=20”。
在一个实施例中,装置然后发现命令序列中的最后值“1”(526)。在一个实施例中,识别到“1”时,命令序列已经在允许的容限内被接收,因此事件触发(“取总线”)被装置528感知。
图5b提供按照本发明原理的、如果被图5a的装置看见的一项被改变—其中装置遇到“9”(514)(见图5a)而“9”(514)被替换为“3”(530)—时所产生的结果的说明。直到装置的序列识别中的该点,每个事情都相同。然而,在一个实施例中,由于装置遇不到在前面的例子中本当遇到的一个“9”,装置继续等待该“9”。在一个实施例中所提供的例子中,在第二计数器531的终止(532)之前遇不到“9”。因此,这个数据值系列(串)在此点已经证明不产生触发事件的命令序列(534)。
在一个实施例中,在识别到一个重复的第一数据值(“5”)时第一计数器(536)被重新开始(537),导致一个并行的数据值系列分析。在一个实施例中,有可能这个系列将在容限内产生一个有效的命令序列。这个并行的系列遇到其第二个数据值(“7”),并潜在地可能在计数器终止前遇到命令序列的其余部分。
图5c提供按照本发明原理的、超越和吸取正在进行中的初级命令序列分析的次级并行序列分析的说明。在一个实施例中,第一个值“5”(502)如前面的例子中那样被识别,然后,第二个值“7”(506)被识别。然后,在一个实施例中,识别“5”的一个重复(538)。如上所述,这就重新开始(510)第一计数器,开始一个并行的命令序列分析。在一个实施例中,这一直继续到遇到一个重复的第二个值(511)。在一个实施例中,这导致第二计数器装入(再次)第一计数器的(当前)值(519)。在这个时刻,这两条并行的序列检测线路(thread)有效地合二为一—原本会用原始的“7”(506)导致一个事件触发的被观察序列的任何继续,也将用被刷新(到一个较低值—提供更多的时间)的第二计数器(521)导致一个事件触发。在一个实施例中,每个计数器都能在相关联计数器终止或检测到完整序列之前在看到重复的值时以这种方式被刷新。并行的序列检测分析能有效地一直持续到“事件触发”。
图6提供按照本发明原理的数据值序列检测器的总体示意图。在一个实施例中,序列检测器搜索一个“K”个值的命令序列。在一个实施例中,输入数据602在被检测器使用之前在适当的时钟边沿604被记录。尽管图6中没有表示,但检测器的其他同步部件,计数器606、608、610、612使用相同的时钟604。
在一个实施例中,检测器除了使用所示的AND门(“与”门)614、616、618、620和倒相器622、624、626、628外,还使用K个比较器630、632、634、636、638和K-1个计数器606、608、610、612。比较器与命令序列的每个元素C1、C2......CK一一对应,当被记录的数据与对应的命令序列项匹配时,比较器输出“1”。 在一个实施例中,每个计数器606、608、610、612在其CE(计数器使能)输入640、642、644、646为高时,同步地从0到N+1按1向上计数,然后翻转到0。在一个实施例中,每个计数器606、608、610、612在其L输入648、650、652、654为高时(不管CE如何),同步地装入其D输入681、682、683、684上的值。另外,在一个实施例中,每个计数器606、608、610、612在其SET输入656、658、660、662为高时(不管CE如何),同步地设定到N+1。在一个实施例中,每个计数器606、608、610、612输出当前计数Q685、686、687、688。在一个实施例中,当计数器606、608、610、612保持终止计数(N+1)时,输出TC=1(终止计数)664、668、670、672。
在一个实施例中,第一个计数器606被地线690装入零。在一个替代实施例中,第一个计数器606利用同步“复位”(Reset)输入。在一个实施例中,命令序列检测的过程通过使的INIT(初始化)有效一个时钟周期676而开始。在一个实施例中,在下一个周期,所有K-1个计数器606、608、610、612将含有它们的终止计数N+1,并将输出TC=1(664、668、670、672)。在一个实施例中,由于每个计数器606、608、610、612的CE输入640、642、644、646都是其TC输出664、668、670、672的相反,因此每个计数器将保持在N+1并输出TC=1,直到它响应高L输入648、650、652、654而从其D输入681、682、683、684装入一个新值。在一个替代实施例中,如果应用能容忍靠近开始的假触发,这个初始化就能被跳过,就是说,计数器606、608、610、612最后将自己终止。
在一个实施例中,只要命令序列的第1个元素C1不被(第一个比较器630)记录,检测器中什么都不改变。当C1被记录时,第一个计数器606将在下一个周期装入“0”,随后让其输出TC=”0”。在一个实施例中,第一个计数器606然后将在接着的每个时钟周期推进1,并且如果在计数器终止之前没有重复出现该第一数据值,则在N+1周期停止在N+1的终止计数值。在一个实施例中,如果在第一个计数器606终止之前,命令序列的第2个元素C2被(第二个比较器632)记录,第二个计数器608将装入第一个计数器606的Q输出658,然后从该数开始计数到N+1。在一个实施例中,如果命令序列的其余项C3、C4......CK足够快就出现,计数将传播到最右边的计数器612,该计数器将在最后一个(最右边的)比较器(CK)638输出“1”时继续显示TC=0(672)(未终止的),然后触发器(TRIGGER)678将被有效。在一个实施例中,此时(可选地)可以重新使INIT 676有效,以复位检测器。
注意,在一个实施例中,如果命令序列出现,且没有间杂的虚假数据,则计数值“0”将从最左边的计数器606延及最右边的计数器612,而没有机会递增,且最右边的计数器612将在触发器(TRIGGER)678被有效的周期中显示Q=0(688)。如果在任何时刻一个单一的虚假项中断命令序列,则一个计数器或另一个606、608、610、612将递增到Q=1,然后下一个计数器装载,最右边的计数器612将在触发器678被有效时显示Q=1(688)。在一个实施例中,在触发器周期中最右边的计数器612的内容总体上反映间杂的虚假项的总数。因此,由于触发器678只能在最右边的计数器612保持在小于其终止计数(N+1)的期间被有效,所以触发器678的有效在一个实施例中意味着不多于“N”个虚假项中断过命令序列。
在一个实施例中,在一个计数从一个计数器传到下一个计数器606、608、610、612(从“左”计数器向“右”计数器)时,“左”计数器将继续其计数,而“右”计数器将随“左”计数器一起计数,右计数器比左计数器落后一个单位。这是因为,‘左’计数器在‘右’计数器装载的周期递增过。因此,在一个实施例中,如果对应于“右”计数器的命令序列项在“左”计数器再次装载或达到终止计数N+1之前再次出现,“右”计数器将装载其当前值加上1,这正是其无论如何本该递增到的值。因此在一个实施例中,(在可允许的总长度内的)命令序列的重复的内部项可能没有作用。然而,在一个实施例中,命令序列的第一项C1的再出现确实有作用。在一个实施例中,即使计数已经响应命令序列的若干项的出现而被向下传到第n个计数器,如上所述,第一计数器606也因C1的再出现而被复位。在一个实施例中,如果这个后面最后跟着C2、C3、......,一个新的计数一般将通过计数器链606、608、610、612传播,导致对另一个可能的触发序列的并行检测。如果实际上设法复位第n个计数器的数据序列正是虚假数据,检测器将不被欺骗—一个从“虚假的”触发序列的中间开始的“有效的”序列将有各种机会触发检测器。
在一个实施例中,这个检测器的结构对于无误地检测包含具有共N个间杂的虚假值的命令序列的触发序列是必需的。另外,在一个实施例中,要无误地检测触发序列,需要K-1个计数器。另外,检测器可能需要能够同时地考虑K-1个可能的虚假序列。
尽管本文专门解释和描述了几个实施例,然而应当明白,在不偏离本发明的精神和范围的情况下,本发明的修改和变体也被以上的教导所覆盖,并落入后附的权利要求书的范围内。
Claims (30)
1.一种感知事件触发命令的系统,该系统包含:
第一设备,用于在检测到一串数据值内的一个预定的相关数据值序列—所述数据值串包括所述相关数据值和若干个非相关数据值—时,如果所述数据值串包括在所述数据值串中的第一个和最后一个相关数据值之间的‘N’个或更少的非相关数据值,则感知所述命令。
2.如权利要求1所述的系统,进一步包含:一条用于在一条信号线和所述第一设备之间传送所述多个数据值的抽头线。
3.如权利要求2所述的系统,其中,所述事件包括在第一设备与一个第三设备之间的通信路径和信号线与第三设备之间的通信路径之间的切换。
4.如权利要求3所述的系统,其中第一设备是个逻辑设备,第三设备是个存储设备,所述数据值是存储单元。
5.如权利要求4所述的系统,其中,该逻辑设备是现场可编程门阵列(FPGA),该存储设备是同步动态随机存取存储器(SDRAM)。
6.如权利要求1所述的系统,其中,所述命令由一个数据值序列检测器感知。
7.如权利要求6所述的系统,其中,所述序列检测器包括多个值定序单元,每个数据值定序单元包括至少一个比较器,该比较器与至少一个有N+2个状态的计数器可通信地耦合,每个计数器有一个计数器值。
8.如权利要求7所述的系统,其中,每个值定序单元与相关数据值序列的一个不同的相关数据值相关联。
9.如权利要求8所述的系统,其中,在序列中的一个第一相关数据值被一个与第一相关数据值相关联的第一值定序单元识别时,一个相关联的第一计数器被设定到一个初始值并接收计时信号,使得
当所述第一计数器满时,所述第一计数器停止;和
在识别到一个随后的第一相关数据值后,所述第一计数器被复位并重新开始。
10.如权利要求9所述的系统,其中,在所述第一计数器不满期时当一个第二相关数据值被一个相关联的第二值定序单元识别时,一个相关联的第二计数器将其计数器值设定为第一计数器的计数器值,然后行进,使得
当所述第二计数器满时,所述第二计数器停止;和
在所述第一计数器不满期间在识别到一个随后的第二相关数据值时,所述第二计数器将其计数器值设定为低于所述第一计数器的计数器值一个单位。
11.如权利要求10所述的系统,其中,在所述第二计数器不满期间当一个第三相关数据值被一个相关联的第三值定序单元识别时,一个相关联的第三计数器将其计数器值设定为第二计数器的计数器值,然后行进,使得在所述第二计数器尚不满期间所述第三计数器满时,所述第三计数器将其计数器值设定为低于所述第二计数器的计数器值一个单位。
12.如权利要求10所述的系统,其中,在顺序识别所有其它相关数据值之后识别到序列中的最后一个相关数据值时,如果相关联的最后一个计数器的当前计数器值不是所述的终止值,则事件触发命令被感知。
13.如权利要求12所述的系统,其中,所述初始值等于零,所述终止值等于‘N+1’,所述第一计数器和第二计数器按递增而行进。
14.一种感知事件触发命令的方法,该方法包含:
在检测到一串数据值内的一个预定的相关数据值序列—所述数据值串包括所述相关数据值和若干个非相关数据值—时,如果所述数据值串包括在所述数据值串中的第一个和最后一个相关数据值之间的‘N’个或更少的非相关数据,则由一个第一设备感知到所述命令。
15.如权利要求14所述的方法,其中,一条抽头线用于在一条信号线和所述第一设备之间传送所述多个数据值。
16.如权利要求15所述的方法,其中,该事件包括在第一设备与一个第三设备之间的通信路径和信号线与第三设备之间的通信路径之间的切换。
17.如权利要求16所述的方法,其中第一设备是个逻辑设备,第三设备是个存储设备,所述数据值是存储单元。
18.如权利要求17所述的方法,其中,该逻辑设备是现场可编程门阵列(FPGA),该存储设备是同步动态随机存取存储器(SDRAM)。
19.如权利要求14所述的方法,其中,所述命令由一个数据值序列检测器感知。
20.如权利要求19所述的方法,其中,所述序列检测器包括多个值定序单元,每个数据值定序单元包括至少一个比较器,比较器与至少一个有N+2个状态的计数器可通信地耦合,每个计数器有一个计数器值。
21.如权利要求20所述的方法,其中,每个值定序单元与相关数据值序列的一个不同的相关数据值相关联。
22.如权利要求21所述的方法,其中,在序列中的一个第一相关数据值被一个与第一相关数据值相关联的第一值定序单元识别时,一个相关联的第一计数器被设定到一个初始值并接收计时信号,使得
当所述第一计数器满时,所述第一计数器停止;和
在识别到一个随后的第一相关数据值时,所述第一计数器被复位并重新开始。
23.如权利要求22所述的方法,其中,在所述第一计数器不满期间当一个第二相关数据值被一个相关联的第二值定序单元识别时,一个相关联的第二计数器将其计数器值设定为第一计数器的计数器值,然后行进,使得
当所述第二计数器满时,所述第二计数器停止;和
在所述第一计数器不满期间在识别到一个随后的第二相关数据值时,所述第二计数器将其计数器值设定为低于所述第一计数器的计数器值一个单位。
24.如权利要求23所述的方法,其中,在所述第二计数器不满期间当一个第三相关数据值被一个相关联的第三值定序单元识别时,一个相关联的第三计数器将其计数器值设定为第二计数器的计数器值,然后行进,使得在所述第二计数器尚不满期间所述第三计数器满时,所述第三计数器将其计数器值设定为低于所述第二计数器的计数器值一个单位。
25.如权利要求23所述的方法,其中,在顺序识别所有其它相关数据值之后识别到序列中的最后一个相关数据值时,如果相关联的最后一个计数器的当前计数器值不是所述的终止值,则事件触发命令被感知。
26.如权利要求25所述的方法,其中,所述初始值等于零,所述终止值等于‘N+1’,所述第一计数器和第二计数器按递增而行进。
27.一种由逻辑设备感知事件触发命令的系统,该系统包含:
一条在一个主机和至少一个第二设备之间传送多个存储单元的信号线;和
一个逻辑设备,与所述信号线相耦合,用于在检测到所述信号线上的一串存储单元内的一个预定的相关存储单元序列—所述存储单元串包括所述相关存储单元和若干个非相关存储单元—时,如果所述存储单元串包括在所述存储单元串中的第一个和最后一个相关存储单元之间的‘N’个或更少的非相关存储单元,则感知所述命令。
28.如权利要求27所述的系统,进一步包含一条用于在所述信号线和所述逻辑设备之间传送所述多个存储单元的抽头线。
29.如权利要求27所述的系统,其中,该事件包括在逻辑设备与一个存储设备之间的通信路径和信号线与存储设备之间的通信路径之间的切换。
30.如权利要求29所述的系统,其中,逻辑设备是现场可编程门阵列(FPGA),存储设备是同步动态随机存取存储器(SDRAM)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/967,539 | 2001-09-27 | ||
US09/967,539 US6918037B2 (en) | 2001-09-27 | 2001-09-27 | Method and apparatus for command perception by data value sequencing, allowing a bounded total amount of spurious data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1636197A true CN1636197A (zh) | 2005-07-06 |
Family
ID=25512947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028190130A Pending CN1636197A (zh) | 2001-09-27 | 2002-08-16 | 通过定序数据值并允许有界总量虚假数据感知命令的装置和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US6918037B2 (zh) |
EP (1) | EP1430404B1 (zh) |
CN (1) | CN1636197A (zh) |
AT (1) | ATE306690T1 (zh) |
AU (1) | AU2002329812A1 (zh) |
DE (1) | DE60206643T2 (zh) |
TW (1) | TW583580B (zh) |
WO (1) | WO2003027861A2 (zh) |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3629847A (en) * | 1970-06-23 | 1971-12-21 | Motorola Inc | Digital decoder |
US3760355A (en) * | 1972-03-08 | 1973-09-18 | Motorola Inc | Digital pattern detector |
AU482164B2 (en) * | 1972-11-13 | 1975-05-15 | Lm ERICSSON PTY. LTD | TIME DIVISION MULTIPLEXED Specification DIGITAL SWITCHING APPARATUS V |
US4388695A (en) | 1980-02-21 | 1983-06-14 | Timeplex, Inc. | Hardware memory write lock circuit |
DE3207040A1 (de) * | 1982-02-26 | 1983-09-08 | Siemens AG, 1000 Berlin und 8000 München | Vefahren und anordnung zum uebertragen von zeichen |
US4754420A (en) * | 1985-11-14 | 1988-06-28 | Hewlett-Packard Company | Digital data filter for local area network |
US5051947A (en) | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
US4727558A (en) * | 1987-02-12 | 1988-02-23 | Dallas Semiconductor Corporation | Method and apparatus for extracting a predetermined bit pattern from a serial bit stream |
JPH0786870B2 (ja) | 1988-04-15 | 1995-09-20 | 株式会社日立製作所 | コプロセツサのデータ転送制御方法およびその回路 |
DE4120398A1 (de) * | 1991-06-20 | 1993-01-07 | Standard Elektrik Lorenz Ag | Datenverarbeitungsanlage |
JP3259302B2 (ja) * | 1992-01-28 | 2002-02-25 | 株式会社日立製作所 | 出力信号復号方法および装置 |
US5237616A (en) | 1992-09-21 | 1993-08-17 | International Business Machines Corporation | Secure computer system having privileged and unprivileged memories |
JPH0651932U (ja) * | 1992-12-18 | 1994-07-15 | ミツミ電機株式会社 | インタフェース回路 |
US5377264A (en) * | 1993-12-09 | 1994-12-27 | Pitney Bowes Inc. | Memory access protection circuit with encryption key |
US5491698A (en) * | 1993-12-16 | 1996-02-13 | International Business Machines Corporation | Setting optimal boundary thresholds in a decoder for coded signal processing channels |
US5590159A (en) * | 1995-02-07 | 1996-12-31 | Wandel & Goltermann Technologies, Inc. | Digital data sequence pattern filtering |
US6092193A (en) * | 1997-05-29 | 2000-07-18 | Trimble Navigation Limited | Authentication of accumulated instrument data |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
US6155310A (en) | 1998-09-11 | 2000-12-05 | Sealy Technology Llc | Machinery for automated manufacture of formed wire innerspring assemblies |
US6522694B1 (en) * | 1998-10-09 | 2003-02-18 | Matsushita Electric Industrial Co., Ltd. | Programmable filter for removing stuffing bits from an MPEG-2 bit-stream |
US6249896B1 (en) | 1999-02-17 | 2001-06-19 | Lsi Logic Corporation | Error-tolerant sync detection for DVD optical disks using programmable sequence of sync marks |
-
2001
- 2001-09-27 US US09/967,539 patent/US6918037B2/en not_active Expired - Fee Related
-
2002
- 2002-08-16 AT AT02766063T patent/ATE306690T1/de not_active IP Right Cessation
- 2002-08-16 DE DE60206643T patent/DE60206643T2/de not_active Expired - Lifetime
- 2002-08-16 EP EP02766063A patent/EP1430404B1/en not_active Expired - Lifetime
- 2002-08-16 AU AU2002329812A patent/AU2002329812A1/en not_active Abandoned
- 2002-08-16 WO PCT/US2002/026799 patent/WO2003027861A2/en not_active Application Discontinuation
- 2002-08-16 CN CNA028190130A patent/CN1636197A/zh active Pending
- 2002-08-29 TW TW091119667A patent/TW583580B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1430404B1 (en) | 2005-10-12 |
EP1430404A2 (en) | 2004-06-23 |
US6918037B2 (en) | 2005-07-12 |
ATE306690T1 (de) | 2005-10-15 |
US20030061406A1 (en) | 2003-03-27 |
AU2002329812A1 (en) | 2003-04-07 |
DE60206643T2 (de) | 2006-07-06 |
DE60206643D1 (de) | 2005-11-17 |
WO2003027861A2 (en) | 2003-04-03 |
WO2003027861A3 (en) | 2003-11-13 |
TW583580B (en) | 2004-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6711700B2 (en) | Method and apparatus to monitor the run state of a multi-partitioned computer system | |
US10474471B2 (en) | Methods and systems for performing a replay execution | |
CN1024599C (zh) | 用以保持高速缓冲存储器完整性的方法与装置 | |
CN1069425C (zh) | 通用输入/输出端口的中断装置 | |
CN101495968A (zh) | 用于软件事务处理存储器系统的硬件加速 | |
JPS63188247A (ja) | メモリ・アクセス装置 | |
CN109558372B (zh) | 用于安全处理器的设备和方法 | |
RU2137182C1 (ru) | Выполнение инструкции обработки данных | |
US7418615B2 (en) | Universal timeout mechanism | |
CN109101662B (zh) | 区块生成方法、装置、设备及存储介质 | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
CN1173264C (zh) | 保护计算机的核心免受外部窜改的方法 | |
CN111277626B (zh) | 服务器升级方法、装置、电子设备及介质 | |
CN116450966A (zh) | 缓存访问方法及装置、设备、存储介质 | |
CN100359498C (zh) | 利用地址调用定序来控制有源存储器总线外围设备的方法与设备 | |
CN1500247A (zh) | 代理的验证功能单元块 | |
CN1636197A (zh) | 通过定序数据值并允许有界总量虚假数据感知命令的装置和方法 | |
EP0626650A1 (en) | Devices, systems and methods for implementing a Kanerva memory | |
US8516313B2 (en) | Shared error searching | |
US6901354B2 (en) | Method and apparatus for command perception by data value sequencing, allowing finite amount of unrelated interim data | |
US20240036762A1 (en) | Bloom filter integration into a controller | |
CN1900921A (zh) | 用于提高存储器处理速度的计算机系统和方法 | |
US11604651B2 (en) | Methods and devices for hardware characterization of computing devices | |
CN1154749A (zh) | 监视数字多处理器的方法 | |
SU736101A1 (ru) | Устройство дл прерывани программ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20050706 |