用于管理装置的字节序模式的系统及方法

文档序号:6595668阅读:158来源:国知局
专利名称:用于管理装置的字节序模式的系统及方法
技术领域
本发明的实施例大体来说涉及数字数据处理,且更具体来说,在一些实施例中,涉及管理电子装置或系统的字节序模式。
背景技术
在计算领域中,型式辨识任务越来越具有挑战性。计算机之间传输不断变大的数据量,且用户希望识别的型式的数目日益增加。举例来说,垃圾邮件或恶意软件通常通过搜索数据串流中的型式(例如,特定短语或代码片段)来检测。型式的数目随着垃圾邮件及恶意软件的多样性而增加,因为可实施新型式以搜索新变体。搜索数据串流以找出这些型式中的每一者可形成计算瓶颈。通常,在接收到数据串流时,对其进行搜索以找出每一型式, 一次一个。在系统准备搜索数据串流的下一部分之前的延迟随着型式的数目增加。因此, 型式辨识可使数据的接收减慢。计算硬件(例如,执行上述型式辨识任务的硬件)可与若干个其它装置介接。举例来说,型式辨识硬件可耦合到各种处理器,例如,不同类型的微处理器。这些不同类型的微处理器可彼此不同地解释及存储数据序列。举例来说,一些微处理器或其它装置可以“大字节序”模式操作,其中将首先读取、存储及解释数据序列中的最高有效部分(例如,大字节序的字节次序模式中的最高有效字节)。其它微处理器或装置可以“小字节序”模式操作, 其中将首先读取、存储及解释所述数据序列中的最低有效部分(例如,小字节序的字节次序模式中的最低有效字节)。由于此类装置的适当发挥作用可依赖于其解释数据的次序,因此所述系统将通常经设计以经由硬件或软件翻译从此装置接收或正发送到此装置的数据。 然而,相信,由所述系统进行的此翻译增加系统设计成本且可影响系统性能。


图1描绘搜索数据串流的系统的实例;图2描绘图1的系统中的型式辨识处理器的实例;图3描绘图2的型式辨识处理器中的搜索项单元的实例;图4及图5描绘图3的搜索项单元搜索数据串流以找出单个字符;图6到图8描绘搜索数据串流以找出一词的包含数个搜索项单元的辨识模块;图9描绘经配置以搜索数据串流以并行找出两个词的辨识模块;图10到图12描绘根据规定具有相同前缀的多个词的搜索准则进行搜索的辨识模块;图13是根据一个实施例可以特定字节序模式操作的电子系统的框图;图14图解说明可与图13的电子系统通信且可在不同字节序模式之间切换的装置的实例;图15描绘根据一个实施例根据小字节序模式及大字节序模式中的每一者存储32 位值;
图16是根据一个实施例改变图14的装置的字节序模式的方法的流程图;图17描绘根据一个实施例图14的装置的状态寄存器的某些特征;且图18描绘根据一个实例图14的装置的控制寄存器的某些特征。
具体实施例方式图1描绘搜索数据串流12的系统10的实例。系统10可包含型式辨识处理器14, 其根据搜索准则16搜索数据串流12。每一搜索准则可规定一个或一个以上目标表达(即,型式)。短语“目标表达”是指型式辨识处理器14正在搜索的数据序列。目标表达的实例包含拼写某一词的字符序列、 详细说明基因的遗传碱基对序列、形成图像的一部分的图片或视频文件中的位序列、形成程序的一部分的可执行文件中的位序列或形成歌曲或口语短语的一部分的音频文件中的位序列。搜索准则可规定一个以上目标表达。举例来说,搜索准则可规定以字母序列“Cl” 开头的所有五个字母的词、以字母序列“Cl”开头的任一词、包含词“cloud”三次以上的段落等。可能目标表达集合的数目为任意大的,例如,可存在与数据串流可呈现的数据排列同样多的目标表达。搜索准则可以各种格式来表达,包含正则表达、简明地规定若干目标表达集合而不必列举每一目标表达的程序设计语言。每一搜索准则可由一个或一个以上搜索项构造而成。因此,搜索准则的每一目标表达可包含一个或一个以上搜索项且一些目标表达可使用共用搜索项。如本文中所使用, 短语“搜索项”是指在单个搜索循环期间所搜索的数据序列。所述数据序列可包含呈二进制格式或其它格式(例如,十进制、ASCII等)的多个数据位。所述序列可用单个数字或多个数字(例如,数个二进制数字)编码数据。举例来说,型式辨识处理器14可一次一个字符地搜索文本数据串流12,且搜索项可规定具有单个字符的集合,例如,字母“a”,字母“a” 或“ e ”,或规定具有所有单个字符的集合的通配符搜索项。搜索项可小于或大于规定字符(或数据串流所表达的信息的其它语义符一即,基本单位,例如,音符、遗传碱基对、10进制数字或子像素)的位的数目。举例来说,搜索项可为8个位且单个字符可为16个位,在此情况下,两个相连搜索项可规定单个字符。搜索准则16可由编译器18格式化以用于型式辨识处理器14。格式化可包含从所述搜索准则解构出搜索项。举例来说,如果数据串流12所表达的语义符大于所述搜索项, 那么所述编译器可将搜索准则解构成多个搜索项以搜索单个语义符。类似地,如果数据串流12所表达的语义符小于所述搜索项,那么编译器18可为每一单独语义符提供具有未使用位的单个搜索项。编译器18还可对搜索准则16进行格式化以支持型式辨识处理器14 本机不支持的各种正则表达运算子。型式辨识处理器14可通过评估来自数据串流12的每一新项来搜索数据串流12。 此处,词“项”是指可匹配搜索项的数据量。在搜索循环期间,型式辨识处理器14可确定当前所呈现的项是否匹配搜索准则中的当前搜索项。如果所述项匹配所述搜索项,那么使评估“前进”,即,将下一项与搜索准则中的下一搜索项进行比较。如果所述项不匹配,那么将下一项与搜索准则中的第一项进行比较,借此对搜索进行复位。可将每一搜索准则编译到型式辨识处理器14中的不同有限状态机中。所述有限状态机可并行运行,从而根据搜索准则16来搜索数据串流12。在前面的搜索项由数据串流12匹配时,所述有限状态机可步进穿过搜索准则中的每一连续搜索项,或如果所述搜索项未被匹配,那么所述有限状态机可开始搜索所述搜索准则的第一搜索项。型式辨识处理器14可在约相同时间(例如,在单个装置循环期间)根据数个搜索准则及其相应搜索项评估每一新项。所述并行有限状态机可各自在约相同时间接收来自数据串流12的项,且所述并行有限状态机中的每一者可确定所述项是否将所述并行有限状态机前进到其搜索准则中的下一搜索项。所述并行有限状态机可根据相对大数目的搜索准则(例如,多于100、多于1000或多于10,000)来评估项。由于其并行操作,因此其可将所述搜索准则应用到具有相对高带宽的数据串流12 (例如,大于或大体等于每秒64MB或每秒 128MB的数据串流1 而不会使所述数据串流减慢。在一些实施例中,搜索循环持续时间不随搜索准则的数目按比例缩放,因此搜索准则的数目对型式辨识处理器14的性能可几乎没有影响。当满足搜索准则时(即,在前进到最后一个搜索项且匹配其之后),型式辨识处理器14可将所述准则的满足报告给处理单元,例如,中央处理单元(CPU) 20。中央处理单元 20可控制型式辨识处理器14及系统10的其它部分。系统10可为搜索数据串流的各种系统或装置中的任一者。举例来说,系统10可为监视数据串流12的桌上型、膝上型、手持式或其它类型的计算机。系统10还可为网络节点,例如,路由器、服务器或客户端(例如,先前所述类型的计算机中的一者)。系统10可为某一其它类别的电子装置,例如,复印机、扫描仪、打印机、游戏控制台、电视、机顶视频分布或记录系统、电缆盒、个人数字媒体播放器、工厂自动化系统、汽车计算机系统或医疗装置。 (用来描述系统的这些各种实例的术语(如同本文中所使用的许多其它术语)可共享某些所指物,且如此不应仅根据所列举的其它物项来理解)。数据串流12可为用户或其它实体可希望搜索的各种类型的数据串流中的一者或一者以上。举例来说,数据串流12可为在网络上接收的数据串流,例如,在因特网上接收的包或在蜂窝式网络上接收的话音或数据。数据串流12可为从与系统10通信的传感器(例如,成像传感器、温度传感器、加速度计或类似物或其组合物)接收的数据。数据串流12可作为串行数据串流由系统10接收,其中数据是以具有意义的次序(例如,以在时间上、在词法上或在语义上有效的次序)被接收。或者,可并行地或无序地接收数据串流12,且接着 (例如)通过将在因特网上接收的包重新排序将数据串流12转换成串行数据串流。在一些实施例中,数据串流12可以串行方式呈现项,但可并行地接收表达所述项中的每一者的位。数据串流12可从系统10外部的源接收,或可通过询问存储器装置且由所存储的数据形成数据串流12来形成。取决于数据串流12中的数据的类型,设计者可选择不同类型的搜索准则。举例来说,搜索准则16可为病毒定义文件。可表征病毒或其它恶意软件,且可使用恶意软件的方面来形成指示数据串流12是否可能正在递送恶意软件的搜索准则。可将所得搜索准则存储于服务器上,且客户端系统的操作者可订阅将所述搜索准则下载到系统10的服务。由于会出现不同类型的恶意软件,因此可从所述服务器周期性地更新搜索准则16。所述搜索准则还可用来规定可在网络上接收的不合意内容,举例来说,不想要的电子邮件(通常称为垃圾邮件)或用户发现是令人反感的其它内容。
数据串流12可由对系统10正在接收的数据感兴趣的第三方来搜索。举例来说, 可针对在版权作品中出现的文本、音频序列或视频序列而监视数据串流12。可针对与刑事调查或民事诉讼有关或雇主感兴趣的言论而监视数据串流12。搜索准则16还可包含数据串流12中的若干型式,例如,在可由CPU 20或型式辨识处理器14寻址的存储器中,可对所述型式进行翻译。举例来说,搜索准则16可各自规定英语词,对于所述英语词,对应西班牙语词存储于存储器中。在另一实例中,搜索准则16可规定数据串流12的经编码版本,例如,MP3、MPEG4、FLAC、0gg Vorbis等,对于所述经编码版本,可得到数据串流12的经解码版本,或反之亦然。型式辨识处理器14可为与CPU 20 一起集成到单个组件(例如,单个装置)中或可形成为单独组件的硬件。举例来说,型式辨识处理器14可为单独集成电路。型式辨识处理器14可称为“协处理器”或“型式辨识协处理器”。图2描绘型式辨识处理器14的实例。型式辨识处理器14可包含辨识模块22及聚合模块对。辨识模块22可经配置以将所接收的项与搜索项进行比较,且辨识模块22与聚合模块M两者可协作以确定将项与搜索项匹配是否满足搜索准则。辨识模块22可包含行解码器观及多个特征单元30。每一特征单元30可规定一搜索项,且特征单元30的群组可形成形成搜索准则的并行有限状态机。特征单元30的组件可形成搜索项阵列32、检测阵列34及激活路由矩阵36。搜索项阵列32可包含多个输入导体37,其中的每一者可使特征单元30中的每一者与行解码器观通信。行解码器观可基于数据串流12的内容而在多个输入导体37当中选择特定导体。 举例来说,行解码器观可为1字节/256行解码器,其基于可表示一个项的所接收字节的值而激活256个行中的一者。1字节项0000 0000可对应于多个输入导体37当中的顶部行, 且1字节项1111 1111可对应于多个输入导体37当中的底部行。因此,取决于从数据串流 12接收到哪些项,可选择不同输入导体37。在接收到不同项时,行解码器观可去激活对应于先前项的行且激活对应于新项的行。检测阵列34可耦合到检测总线38,检测总线38将指示搜索准则的全部或部分满足的信号输出到聚合模块M。激活路由矩阵36可基于搜索准则中的已被匹配的搜索项的数目而选择性地激活及去激活特征单元30。聚合模块M可包含锁存器矩阵40、聚合路由矩阵42、阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48及初始化路由矩阵50。锁存器矩阵40可实施某些搜索准则的若干部分。一些搜索准则(例如,一些正则表达)仅计数匹配或匹配群组的第一次出现。锁存器矩阵40可包含记录是否已出现匹配的锁存器。所述锁存器可在初始化期间经清除,且在操作期间周期性地经重新初始化,因为经确定将满足或不可进一步满足搜索准则一即,较早搜索项可需要在可满足所述搜索准则之前被再次匹配。聚合路由矩阵42可类似于激活路由矩阵36地发挥作用。聚合路由矩阵42可在检测总线38上接收指示匹配的信号且可将所述信号路由到连接到阈值逻辑矩阵44的不同群组逻辑线53。聚合路由矩阵42还可将初始化路由矩阵50的输出路由到检测阵列34以在经确定将满足或不可进一步满足搜索准则时对检测阵列34的若干部分进行复位。阈值逻辑矩阵44可包含多个计数器,例如,经配置以递增计数或递减计数的32位计数器。阈值逻辑矩阵44可加载有初始计数且其可基于由辨识模块发信的匹配而从所述计数递增计数或递减计数。举例来说,阈值逻辑矩阵44可计数某一长度的文本中一词的出现数目。阈值逻辑矩阵44的输出可为到逻辑积矩阵46的输入。逻辑积矩阵46可选择性地产生“积”结果(例如,布尔逻辑(Boolean logic)中的“AND”函数)。逻辑积矩阵46可实施为正方形矩阵,其中输出积的数目等于来自阈值逻辑矩阵44的输入线的数目,或逻辑积矩阵46可具有数目不同于输出的输入。可将所得积值输出到逻辑和矩阵48。逻辑和矩阵48可选择性地产生和(例如,布尔逻辑中的“OR”函数)。逻辑和矩阵48也可为正方形矩阵,或逻辑和矩阵48可具有数目不同于输出的输入。由于所述输入为逻辑积,因此逻辑和矩阵48的输出可为逻辑积和(例如,布尔逻辑积和(SOP)形式)。逻辑和矩阵48的输出可由初始化路由矩阵50接收。初始化路由矩阵50可经由聚合路由矩阵42对检测阵列34及聚合模块M的若干部分进行复位。初始化路由矩阵50也可实施为正方形矩阵,或初始化路由矩阵50可具有数目不同于输出的输入。初始化路由矩阵50可响应于来自逻辑和矩阵48的信号且重新初始化型式辨识处理器14的其它部分(例如,在满足搜索准则或经确定不可进一步满足所述搜索准则时)。聚合模块M可包含输出缓冲器51,其接收阈值逻辑矩阵44、聚合路由矩阵42及逻辑和矩阵48的输出。聚合模块M的输出可在输出总线沈上从输出缓冲器51发射到 CPU 20(图1)。在一些实施例中,输出多路复用器可对来自这些组件42、44及48的信号进行多路复用且将指示准则的满足或搜索项的匹配的信号输出到CPU 20(图1)。在其它实施例中,可在不通过所述输出多路复用器发射所述信号的情况下报告来自型式辨识处理器14 的结果,此并非暗示也不可省略本文中所描述的任一其它特征。举例来说,可将来自阈值逻辑矩阵44、逻辑积矩阵46、逻辑和矩阵48或初始化路由矩阵50的信号在输出总线沈上并行发射到所述CPU。图3图解说明搜索项阵列32(图2)中的单个特征单元30的一部分(本文中称为搜索项单元讨的组件)。搜索项单元讨可包含输出导体56及多个存储器单元58。存储器单元58中的每一者可耦合到输出导体56及多个输入导体37当中的导体中的一者两者。 响应于其输入导体37被选择,存储器单元58中的每一者可输出指示其所存储值的值,从而通过输出导体56输出数据。在一些实施例中,多个输入导体37可称为“字线”,且输出导体 56可称为“数据线”。存储器单元58可包含各种类型的存储器单元中的任一者。举例来说,存储器单元 58可为易失性存储器,例如,具有晶体管及电容器的动态随机存取存储器(DRAM)单元。所述晶体管的源极与漏极可分别连接到所述电容器的板及输出导体56,且所述晶体管的栅极可连接到输入导体37中的一者。在易失性存储器的另一实例中,存储器单元58中的每一者可包含静态随机存取存储器(SRAM)单元。所述SRAM单元可具有输出,其通过受输入导体37中的一者控制的存取晶体管选择性地耦合到输出导体56。存储器单元58还可包含非易失性存储器,例如,相变存储器(例如,双向装置)、快闪存储器、硅-氧化物-氮化物-氧化物-硅(S0N0Q存储器、磁阻式存储器或其它类型的非易失性存储器。存储器单元58还可包含触发器,例如,由逻辑门制成的存储器单元。
图4及图5描绘操作中的搜索项单元M的实例。图4图解说明搜索项单元M接收不匹配所述单元的搜索项的项,且图5图解说明匹配。如图4所图解说明,搜索项单元M可经配置以通过将数据存储于存储器单元58 中来搜索一个或一个以上项。存储器单元58可各自表示数据串流12可呈现的项,例如,在图3中,每一存储器单元58表示单个字母或数字,以字母“a”开始且以数字“9”结束。表示满足搜索项的项的存储器单元58可经编程以存储第一值,且不表示满足搜索项的项的存储器单元58可经编程以存储不同值。在所图解说明的实例中,搜索项单元M经配置以搜索字母“b”。表示“b”的存储器单元58可存储1或逻辑高,且不表示“b”的存储器单元 58可经编程以存储0或逻辑低。为了将来自数据串流12的项与搜索项进行比较,行解码器观可选择耦合到表示所接收项的存储器单元58的输入导体37。在图4中,数据串流12呈现小写“e”。此项可由数据串流12以八位ASCII代码的形式呈现,且行解码器观可将此字节解释为行地址,从而通过给导体60通电而在其上输出信号。作为响应,由导体60控制的存储器单元58可输出指示存储器单元58所存储的数据的信号,且所述信号可由输出导体56传达。在此情况下,由于字母“e”并非由搜索项单元M规定的项中的一者,因此其不匹配搜索项,且搜索项单元M输出0值,从而指示未发现匹配。在图5中,数据串流12呈现字符“b”。同样,行解码器观可将此项解释为地址,且行解码器观可选择导体62。作为响应,表示字母“b”的存储器单元58输出其所存储值,在此情况下,其为1,从而指示匹配。搜索项单元M可经配置以一次搜索一个以上项。多个存储器单元58可经编程以存储1,从而规定与一个以上项匹配的搜索项。举例来说,表示小写字母“a”及大写字母“A” 的存储器单元58可经编程以存储1,且搜索项单元M可搜索任一项。在另一实例中,搜索项单元M可经配置以在接收到任一字符的情况下输出匹配。所有存储器单元58可经编程以存储1,使得搜索项单元讨可用作搜索准则中的通配符项。图6到图8描绘辨识模块22根据多项搜索准则进行搜索(例如,以找出一词)。 具体来说,图6图解说明辨识模块22检测词的第一字母,图7图解说明第二字母的检测,且图8图解说明最后一个字母的检测。如图6所图解说明,辨识模块22可经配置以搜索词“big”。图解说明三个邻近特征单元63、64及66。特征单元63经配置以检测字母“b”。特征单元64经配置以检测字母 “i”。特征单元66经配置以既检测字母“g”又指示搜索准则被满足。图6还描绘检测阵列34的额外细节。检测阵列34可包含特征单元63、64及66 中的每一者中的检测单元68。检测单元68中的每一者可包含存储器单元70 (例如,上述存储器单元类型中的一者(例如,触发器)),其指示特征单元63、64或66是活动还是不活动。检测单元68可经配置以将指示检测单元68是否为活动的信号输出到激活路由矩阵36 且已从其相关联搜索项单元M接收到指示匹配的信号。不活动特征单元63、64及66可忽视匹配。检测单元68中的每一者可包含具有来自存储器单元70及输出导体56的输入的 AND门。可将所述AND门的输出路由到检测总线38及激活路由矩阵36两者或者一者或另 “"者 ο
激活路由矩阵36又可通过向检测阵列34中的存储器单元70写入来选择性地激活特征单元63、64及66。激活路由矩阵36可根据搜索准则及接下来在数据串流12中搜索哪个搜索项来激活特征单元63、64或66。在图6中,数据串流12呈现字母“b”。作为响应,特征单元63、64及66中的每一者可在其输出导体56上输出指示存储于连接到导体62的存储器单元58 (其表示字母“b”) 中的值的信号。接着,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元63经配置以检测字母“b”且为活动的(如其存储器单元70所指示),因此特征单元63中的检测单元68可将指示搜索准则的第一搜索项已被匹配的信号输出到激活路由矩阵36。如图7所图解说明,在匹配第一搜索项之后,激活路由矩阵36可通过将1写入到下一特征单元64的检测单元68中的存储器单元70来激活所述特征单元。激活路由矩阵 36还可维持特征单元63的活动状态,以防下一项满足第一搜索项(例如,在接收到项序列 “bbig”的情况下)。在搜索数据串流12期间的一部分时间或大致所有时间期间,搜索准则的第一搜索项可维持于活动状态中。在图7中,数据串流12将字母“i”呈现给辨识模块22。作为响应,特征单元63、64 及66中的每一者可在其输出导体56上输出指示存储于连接到导体72的存储器单元58 (其表示字母“i”)中的值的信号。接着,检测单元56可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元64经配置以检测字母“i”且为活动的(如其存储器单元70所指示),因此特征单元64中的检测单元68可将指示其搜索准则的下一搜索项已被匹配的信号输出到激活路由矩阵36。接下来,激活路由矩阵36可激活特征单元66,如图8所图解说明。在评估下一项之前,可去激活特征单元64。举例来说,特征单元64可由其检测单元68在检测循环之间对其存储器单元70进行复位来去激活或激活路由矩阵36可去激活特征单元64。在图8中,数据串流12将项g”呈现给行解码器观,所述行解码器选择表示项g” 的导体74。作为响应,特征单元63、64及66中的每一者可在其输出导体56上输出指示存储于连接到导体74的存储器单元58 (其表示字母“g”)中的值的信号。接着,检测单元68 可各自确定其是否已接收到指示匹配的信号及其是否为活动的。由于特征单元66经配置以检测字母“g”且为活动的(如其存储器单元70所指示),因此特征单元66中的检测单元 68可将指示其搜索准则的最后一个搜索项已被匹配的信号输出到激活路由矩阵36。搜索准则的末端或搜索准则的一部分可由激活路由矩阵36或检测单元68来识别。这些组件36或68可包含指示其特征单元63、64或66是规定搜索准则的最后一个搜索项还是搜索准则的分量的存储器。举例来说,搜索准则可规定其中词“cattle”出现两次的所有句子,且辨识模块可将指示“cattle”在句子内的每一次出现的信号输出到聚合模块, 所述聚合模块可计数所述出现以确定所述搜索准则是否被满足。可在数个条件下激活特征单元63、64或66。特征单元63、64或66可为“始终活动”,此意味着其在整个或大致整个搜索期间保持活动。始终活动特征单元63、64或66的实例为搜索准则的第一特征单元(例如,特征单元63)。特征单元63、64或66可为“在请求时活动”,此意味着特征单元63、64或66在某一在先条件被匹配时(例如,在搜索准则中的前面搜索项被匹配时)为活动的。实例为在由图6到图8中的特征单元63请求时为活动的特征单元64及在由特征单元64请求时为活动的特征单元66。特征单元63、64或66可为“自激活的”,此意味着一旦其被激活,只要其搜索项被匹配其即激活其自身。举例来说,具有由任一数值数字匹配的搜索项的自激活特征单元可在序列“123456xy”中保持活动直到到达字母“X”为止。每当所述自激活特征单元的搜索项被匹配时,其即可激活搜索准则中的下一特征单元。因此,始终活动特征单元可由自激活特征单元及在请求时活动的特征单元形成。所述自激活特征单元可经编程而使所有其存储器单元58均存储1,且其可在每一项之后重复激活在请求时活动的特征单元。在一些实施例中,每一特征单元63、64及66可在其检测单元68中或在激活路由矩阵36中包含规定所述特征单元是否为始终活动的存储器单元,借此由单个特征单元形成始终活动的特征单元。图9描绘经配置以根据第一搜索准则75及第二搜索准则76并行进行搜索的辨识模块22的实例。在此实例中,第一搜索准则75规定词“big”,且第二搜索准则76规定词 “cab”。指示来自数据串流12的当前项的信号可在大体相同时间被传递到每一搜索准则75 及76中的特征单元。输入导体37中的每一者跨越搜索准则75及76两者。因此,在一些实施例中,搜索准则75及76两者可大体同时评估当前项。相信此会加速搜索准则的评估。 其它实施例可包含经配置以并行评估更多搜索准则的更多特征单元。举例来说,一些实施例可包含并行操作的100、500、1000、5000或10,000个以上特征单元。这些特征单元可大体同时评估数百个或数千个搜索准则。具有不同数目的搜索项的搜索准则可通过将更多或更少的特征单元分配到所述搜索准则来形成。简单搜索准则可消耗比复杂搜索准则更少的呈特征单元形式的资源。相信,相对于具有大数目的大体等同的核心的处理器(全部经配置以评估复杂搜索准则),此会减少型式辨识处理器14(图幻的成本。图10到图12描绘更复杂搜索准则的实例及激活路由矩阵36的特征两者。激活路由矩阵36可包含多个激活路由单元78,其群组可与特征单元63、64、66、80、82、84及86 中的每一者相关联。举例来说,所述特征单元中的每一者可包含5个、10个、20个、50个或 50个以上激活路由单元78。激活路由单元78可经配置以在搜索准则中前面的搜索项被匹配时将激活信号发射到下一搜索项。激活路由单元78可经配置以将激活信号路由到邻近特征单元或相同特征单元内的其它激活路由单元78。激活路由单元78可包含指示哪些特征单元对应于搜索准则中的下一搜索项的存储器。如图10到图12所图解说明,辨识模块22可经配置以根据比规定单个词的准则复杂的搜索准则进行搜索。举例来说,辨识模块22可经配置以搜索以前缀88开头且以两个后缀90或92中的一者结束的词。所图解说明的搜索准则规定依序以字母“C”及“1”开头且以字母序列“ap”或字母序列“oud”结束的词。此为规定多个目标表达(例如,词“clap” 或词“cloud”)的搜索准则的实例。在图10中,数据串流12将字母“C”呈现给辨识模块22,且特征单元63既活动又检测匹配。作为响应,激活路由矩阵36可激活下一特征单元64。激活路由矩阵36还可维持特征单元63的活动状态,因为特征单元63为搜索准则中的第一搜索项。在图11中,数据串流12呈现字母“1”,且特征单元64辨识匹配且为活动的。作为响应,激活路由矩阵36可将激活信号发射到第一后缀90的第一特征单元66及第二后缀92的第一特征单元82两者。在其它实例中,可激活更多后缀,或多个前缀可激活一个或一个以上后缀。接下来,如图12所图解说明,数据串流12将字母“O”呈现给辨识模块22,且第二后缀92的特征单元82检测匹配且为活动的。作为响应,激活路由矩阵36可激活第二后缀 92的下一特征单元84。在允许特征单元66变成不活动时,对第一后缀90的搜索可停止。 图10到图12所图解说明的步骤可继续通过字母“U”及“d”,或搜索可停止直到下一次前缀 88被匹配为止。图13是根据一个实施例的电子装置或系统的框图。通常由参考编号100指代的电子装置或系统可为具有图13中所描绘的组件中的一些组件或所有组件的各种类型的系统中的任一者。举例来说,在各种实施例中,系统100可包含各种计算机(例如,个人计算机、服务器或网络器具)、网络装置(例如,接入点、路由器或调制解调器)、个人记事本 (personal organizer)、蜂窝电话或类似物中的任一者。在一些实施例中,处理器102 (例如,微处理器)控制系统功能及请求的操作。系统100可包含电源104,举例来说,其可包含电池、AC电力适配器或DC电力适配器。取决于系统100执行的功能,可将各种其它装置耦合到处理器102。举例来说,可将输入装置106耦合到处理器102以接收来自用户的输入。输入装置106可包含用户接口,其可包含按钮、开关、键盘、光笔、鼠标、数字化器、话音辨识系统或若干个其它输入装置中的任一者。还可将显示器108耦合到处理器102以向用户提供信息。举例来说,显示器108 可包含IXD显示器、CRT显示器或LED。可将RF子系统/基带处理器110耦合到处理器102以提供无线通信能力。RF子系统/基带处理器110可包含耦合到RF接收器及RF发射器的天线(未展示)。此外,通信端口 112可适于在电子系统100与外围装置114之间提供通信接口。外围装置114可包含坞站、扩展槽或其它外部组件。在一些实施例中,外围装置114可提供型式辨识功能性,例如,以上关于图1到12所描述的功能性。可将处理器102耦合到各种类型的存储器装置以促进其操作。举例来说,处理器 102可连接到各种存储器装置,例如,易失性存储器116、非易失性存储器118或两者。易失性存储器116可包含各种存储器类型,例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或双倍数据速率(DDR)存储器的一代(例如,DDRU DDR2、DDR3等)。举例来说,非易失性存储器118可包含各种类型的存储器,例如,电可编程只读存储器(EPROM)或快闪存储器。另外,替代固态存储器存储装置或除固态存储器存储装置以外,非易失性存储器还可包含一个或一个以上光学或磁性存储装置,例如,磁带或磁盘驱动存储器。此存储媒体可包含可由处理器102执行以实现或执行众多功能(包含下文关于管理装置的字节序所论述的那些功能)的各种应用指令。在一些实施例中,系统100可与如图14中所大体图解说明的额外装置122通信。 在一些实施例中,额外装置122可为路由器、调制解调器或某一其它网络装置,但还构想出其它装置。系统100(或其组件)与装置122之间的通信可通过任一适合数据总线IM来实现。在一些实施例中,数据总线1 可包含(但不限于)同步动态随机存取存储器(SDRAM) 总线、DDR存储器总线(例如,DDRl总线、DDR2总线、DDR3总线等)或某一其它多字节并行总线。虽然在目前所图解说明的实施例中将装置122描绘为与系统100不同,但应注意,装置122与系统100 (或者装置122或系统100的各种组件)可集成到共用装置或系统中。举例来说,在一个实施例中,系统100可包含与包含调制解调器的装置122通信的计算机。然而,在另一实施例中,装置122可集成到计算机系统100中。装置122可包含核心逻辑模块1 及一个或一个以上寄存器128,所述两者协作以允许装置122执行其既定功能。举例来说,在一个实施例中,装置122可包含型式辨识装置,其中核心逻辑模块1 及寄存器1 尤其提供上文结合图1到图12所描述的功能性。如上大体所述,各种电子装置可根据大字节序模式或小字节序模式读取、写入及解释数据序列。虽然关于大字节序及小字节序的字节次序描述且图解说明本文中所提供的实例,但根据这些实例应了解,本发明技术还可应用于管理大字节序及小字节序的位次序、 字次序或类似物。在一个实施例中,核心逻辑模块1 包含寄存器接口 130,其使得能够根据各种装置字节序模式将数据写入到寄存器1 或从寄存器1 读取数据,可基于硬件输入或经由软件而选择所述装置字节序模式,如下文更详细地论述。在目前所图解说明的实施例中,输入/输出电路132经由数据总线IM促进装置122与系统100的组件之间的通信。同样应注意,装置122(或其组件)可与系统100分离或集成到系统100中,且应了解,输入/输出电路132可经配置以经由各种类型的内部或外部数据总线中的任一者通信,包含上述的那些并行总线。装置122可包含硬件输入引脚134,其经配置以将控制信号提供到核心逻辑模块 126或装置122的其它组件。此外,在一个实施例中,硬件输入引脚134可包含“字节序”输入引脚136以控制装置122的字节序模式。举例来说,装置122可经配置以在字节序输入引脚136上的信号为“低”(例如,连系至接地)的情况下以小字节序模式操作且在输入引脚136上的信号为“高”的情况下以大字节序模式操作。出于解释性目的,在图15中描绘将如何根据大字节序模式及小字节序模式中的每一者存储32位数据值142的实例。在本实例中,将值142以十六进制格式写为 OxOaObOcOd。为了存储此值,大字节序系统通常将在一个字节地址处存储最高有效字节 (艮P,0x0a),而其它字节(即,0X0b、0X0c、0X0d)将存储于连续增加的字节地址处,如表 144中大体所示。相反地,小字节序系统通常将在特定字节地址处存储最低有效字节(即, OxOd),且接着将根据其余字节的相对有效性在连续增加的字节地址处存储所述其余字节, 如表146中大体所示。由于大字节序及小字节序系统预期以不同次序写入、读取及解释顺序数据,因此如果系统100及装置122以彼此不同的字节序模式操作,那么从系统100或装置122中的一者发射的数据可被另一者错误解释。举例来说,在其中按顺序发送(例如,一次一个字节或一次一个位)值142的实施例中,大字节序装置122可首先在数据总线IM上发送值142 的OxOa分量(S卩,最高有效字节),随后依序为0X0b、0X0c及(接着)0x0d分量(其具有降低的有效性)。然而,如果系统100正以小字节序模式操作,那么其将首先接收OxOa分量但将此字节解释为最低有效字节(而非如大字节序装置122所解释的最高有效字节),且将 0x0b、0x0c及OxOd分量解释为增加的有效性(而非降低的有效性)。因此,在不进行某一形式的校正的情况下,大字节序装置122将已将所发送的数据解释为0X0a0b0C0d,但小字节序系统100将把所接收的数据解释为具有值0X0d0C0b0a。
在一些实施例中,装置122的寄存器接口 130可经配置以翻译在以不同字节序模式操作的系统100与装置122之间通信的数据。在一个实施例中,可根据如图16中所大体图解说明的方法148来管理装置122的字节序模式。方法148可大体包含存取装置122的一个或一个以上寄存器128的步骤150,且在步骤152中,确定装置122正以其操作的当前字节序模式,如下文关于图17及图18更详细地论述。一旦确定装置122的当前字节序模式,即可在步骤154中改变装置122的字节序模式,如下文也论述。在步骤150中所存取的一个或一个以上寄存器可包含根据一个实施例大体描绘于图17中的状态寄存器156。将状态寄存器156图解说明为32位寄存器,但将了解可完全根据本发明技术采用其它寄存器宽度。状态寄存器156包含32个位位置(位位置0到位位置31),每一者与能够存储相应数据位EO到E31的存储器单元相关联。在一个实施例中, 数据位EO到E31可以所图解说明的方式分组成字节158、160、162及164,且可以任何适合增量(例如,以1字节增量)被读取或写入。状态寄存器156的每一位位置及/或位位置群组可与特定特性或功能相关联。举例来说,位位置7可与装置122的当前字节序模式相关联,其中数据位E7的值经设定以指示当前装置字节序模式,如表166中所大体图解说明。在此实施例中,数据位E7可经设定为 “0”以指示所述装置正以小字节序模式操作,或可经设定为“1”以指示所述装置正以大字节序模式操作。如上文所论述,如果系统100及装置122正以相同字节序模式操作,那么可将字节158、160、162及164的数据发射到系统100,其将把数据位E7辨识为正存储于状态寄存器156的位位置7中。然而,如果系统100及装置122正以不同字节序模式操作,那么系统100在接收到所述数据之后将即刻以相反次序解释这些字节且使数据位E7与位位置31 相关联。因此,系统100读取来自装置122的状态寄存器156的位位置7中的数据位的尝试可在系统100及装置122就共用字节序模式达成一致的情况下准确地返回数据位E7,但在系统100及装置122在不同字节序模式下操作的情况下不会准确地返回数据位E7。因此,在一个实施例中,状态寄存器156在位位置31处包含重复的当前装置字节序模式位,如表168中所大体图解说明。以此方式,即使字节158、160、162及164的次序由系统100不同地(例如,以相反的有效性次序)解释,系统100读取位位置7的任何尝试也将返回数据位E7或数据位E31,其中的每一者等同地指示装置122的当前字节序模式。因此,不管字节次序的字节序的差异如何,系统100均可基于其读取位位置7中的数据位的值的尝试而检测装置122的字节序模式。类似地,在其它实施例中,可在又一些位位置中提供装置的当前字节序模式以计及其它类型的字节序,例如,位次序的字节序。如上所述,装置122及系统100以不同字节序模式操作可导致通信错误。此外,假如以第一字节序模式操作的系统100将尝试配置以不同字节序模式操作的装置122(例如, 通过向寄存器1 写入值),那么装置122可错误解释来自系统100的配置数据,从而致使装置122以与既定的方式相反的方式配置。因此,在一个实施例中,装置122经配置以通电或复位到允许读取状态寄存器156(例如,由系统100)而不必对所述装置执行任何配置写入的默认模式。此尤其促进系统100对装置122的字节序的提早确定,且通常促进装置122 的配置同时减小因不匹配的字节序所致的配置错误的可能性。将了解,状态寄存器156还可提供其它功能或特性的指示。在一些实施例中,装置 122的字节序可由硬件输入(本文中称为硬件字节序模式)或由软件输入(本文中称为软件字节序模式)控制,且状态寄存器156的其它位位置可指示当前控制方式的细节。举例来说,状态寄存器156的位位置四可经读取以确定装置122的字节序是正由硬件(例如,由输入引脚136)还是由软件寄存器位控制,如表170中所大体图解说明。在一个实施例中,所述控制软件寄存器位包含于不同寄存器中,例如,下文关于图18所论述的控制寄存器186, 但在其它实施例中此控制寄存器位可包含于状态寄存器156中。状态寄存器156的位位置观及30可经读取以分别确定软件及硬件字节序模式。 在此实施例中,数据位E7及E31的装置字节序模式在数据位似9被设定为“0”(指示装置字节序的硬件控制)的情况下将匹配E30,且在数据位E^被设定为“ 1,,(指示装置字节序的软件控制)的情况下将匹配数据位E28。状态寄存器156的其它数据位可用于其它功能或特性,或可保持未使用(或被保留以供将来使用),如表176及178中所大体图解说明。如上所述,装置122可为可配置的而以大字节序模式或小字节序模式中的任一者操作。在一些实施例中,寄存器接口 130基于选定装置字节序模式而提供去往装置122的数据输入及来自装置122的数据输出的硬件翻译。所述装置字节序模式可由到装置122的硬件输入(例如,经由字节序输入引脚136)、由到装置122的软件输入或两者选择。举例来说,装置122可在寄存器128中包含一个或一个以上寄存器位以用于为装置122选择字节序模式且用于指示所述装置字节序模式是将由硬件输入还是由软件输入控制。进一步举例来说,寄存器1 可包含具有此些寄存器位的控制寄存器186,如根据一个实施例在图18中所大体图解说明。出于解释性目的,控制寄存器186也被图解说明为 32位寄存器,但在其它实施例中可使用其它寄存器宽度。另外,应注意,尽管出于解释性目的而在本文中提供状态寄存器156及控制寄存器186的某些实例,但与这些寄存器的位位置相关联的各种特性及功能可在每一寄存器内改变、在不同寄存器之间切换或组合到单个寄存器中。所图解说明的控制寄存器186包含能够存储相应数据位FO到F31的32个位位置(位位置0到位位置31)。在本实施例中,将控制寄存器186的数据位分组成字节188、 190、192及194。这些数据字节可以1字节增量或以任何其它适合增量(例如,一个或一个以上位、一个或一个以上半字节的增量或多个字节的增量)写入到控制寄存器186或从控制寄存器186读取。如表196中所大体指示,在一个实施例中,可将数据位F29设定(例如,由系统 100)为“0”以致使装置的字节序模式由硬件输入控制(例如,基于字节序输入引脚136上的信号电平),或设定为“1”以致使装置的字节序模式由软件控制(例如,通过设定另一寄存器位以选择装置122的字节序模式)。举例来说,可将数据位设定为“0”以选择装置122的小字节序操作且可将数据位!^8设定为“1”以选择装置122的大字节序操作,如表198中所大体指示。在此实施例中,装置122可根据在数据位M9被设定为“0”的情况下由字节序输入引脚136上的信号控制的默认字节序模式来操作,但可通过将数据位F29 设定为“1”来越权控制此默认模式。控制寄存器186的其它数据位可用于控制其它功能, 或可保持未使用并被保留以供将来使用,如表200及202中所大体表示。另外,数据位M8 或寄存器128的其它数据位中的任一者可由软件驱动器、固件或系统100或装置122的其它软件自动设定,或可由用户经由此软件手动设定。由于一些实施例的寄存器接口 130可经配置以控制装置122的字节序模式,因此将了解,此些实施例在不需要系统100或某一其它装置执行所传递数据的软件或硬件翻译的情况下实现装置122与系统100之间的有效通信。此外,此些实施例通常可提供控制装置122的字节序的灵活方式,从而允许其结合大字节序系统或小字节序系统中的任一者有效地操作。 尽管可易于对本发明做出各种修改及替代形式,但已在图式中以实例方式展示了特定实施例并在本文中对所述特定实施例进行了详细描述。然而,应理解,并不打算将本发明限制于所揭示的特定形式。而是,本发明将涵盖归属于由以上所附权利要求书界定的本发明精神及范围内的所有修改、等效内容及替代方案。
权利要求
1.一种装置,其包括寄存器,其包括多个存储器单元,所述寄存器经配置以接收并存储多个数据位,其中所述装置的字节序模式由存储于所述寄存器的至少两个相应位位置中的至少两个数据位中的每一者表示;及输入/输出电路,其经配置以促进所述多个数据位从所述装置的传递。
2.根据权利要求1所述的装置,其中所述装置经配置以通电或复位到在不配置所述装置的情况下实现所述寄存器的读取的默认模式。
3.根据权利要求1所述的装置,其中所述至少两个相应位位置经配置以使得从所述装置接收所述多个数据位的组件能够在所述组件以第一字节序模式操作的情况下将所述至少两个等同数据位中的第一数据位辨识为表示所述装置的所述字节序模式,及/或在所述组件以第二字节序模式操作的情况下将所述至少两个等同数据位中的第二数据位辨识为表示所述装置的所述字节序模式。
4.根据权利要求3所述的装置,其中所述第一字节序模式为小字节序模式且所述第二字节序模式为大字节序模式。
5.根据权利要求1所述的装置,其中所述装置经配置以选择性地以两个不同字节序模式中的一者操作。
6.根据权利要求5所述的装置,其中所述装置经配置以响应于在所述装置的硬件输入上接收的信号而以所述两个不同字节序模式中的选定一者操作。
7.根据权利要求6所述的装置,其中所述装置经配置以实现对在所述硬件输入上接收的所述信号的软件越权控制。
8.根据权利要求7所述的装置,其包括存储器媒体,所述存储器媒体包含经配置以越权控制在所述硬件输入上接收的所述信号的可执行例程。
9.根据权利要求7所述的装置,其中所述装置经配置使得根据存储于所述寄存器的特定位位置中及/或额外寄存器的特定位位置中的软件越权控制数据位来实现所述软件越权控制。
10.根据权利要求9所述的装置,其中所述装置经配置使得在实现所述软件越权控制的情况下根据软件字节序选择位来控制所述装置的所述字节序模式。
11.根据权利要求10所述的装置,其中所述软件字节序选择位存储于所述额外寄存器的位位置中。
12.根据权利要求1所述的装置,其中所述输入/输出电路经配置以连接到数据总线。
13.根据权利要求12所述的装置,其中所述数据总线包含同步动态随机存取存储器总线、双倍数据速率存储器总线或某一其它多字节并行总线中的至少一者。
14.根据权利要求1所述的装置,其中所述装置包含型式辨识装置。
15.一种装置,其包括多个寄存器;及寄存器接口,其经配置以从所述多个寄存器读取数据并将数据写入到所述多个寄存器,其中所述寄存器接口经配置以选择性地以小字节序模式或大字节序模式中的一者操作。
16.根据权利要求15所述的装置,其包括字节序模式硬件引脚,其中所述寄存器接口经配置以基于在所述字节序模式硬件引脚上接收的信号而以默认字节序模式操作。
17.根据权利要求16所述的装置,其中所述装置经配置以使得能够越权控制所述默认字节序模式以使所述寄存器接口以不同于所述默认字节序模式的字节序模式操作。
18.根据权利要求17所述的装置,其中所述多个寄存器中的一寄存器包含用于控制所述默认字节序模式的越权控制的寄存器位。
19.根据权利要求15所述的装置,其中所述寄存器接口经配置以基于选定装置字节序模式而翻译从所述多个寄存器读取及/或写入到所述多个寄存器的数据。
20.—种系统,其包括处理器;存储装置,其包含存储于其中供所述处理器执行的应用指令;及额外装置,其通过数据总线以通信方式耦合到所述处理器;其中所述处理器及所述数据总线经配置以根据特定字节序模式操作且所述额外装置可配置而以所述特定字节序模式或不同字节序模式中的任一者操作,且其中所述系统经配置以将所述额外装置自动配置为以所述特定字节序模式操作。
21.根据权利要求20所述的系统,其包括包含所述处理器的计算机。
22.根据权利要求21所述的系统,其中所述额外装置包含以通信方式耦合到所述计算机的路由器或调制解调器中的至少一者。
23.根据权利要求21所述的系统,其中所述计算机包含所述存储装置。
24.根据权利要求21所述的系统,其中所述计算机包含所述额外装置。
25.根据权利要求20所述的系统,其中存储于所述存储装置内的所述应用指令包含用于检测所述额外装置的当前字节序模式的指令。
26.根据权利要求20所述的系统,其中存储于所述存储装置内的所述应用指令包含用于越权控制在所述额外装置的硬件引脚上输入的字节序模式选择信号的指令。
27.一种方法,其包括存取存储于装置的寄存器中的数据;及根据存储于所述寄存器中的多个字节序模式数据位中的至少一个字节序模式数据位来确定所述装置的字节序模式。
28.根据权利要求27所述的方法,其中确定所述装置的所述字节序模式包含经由处理器从所述所存取数据的字节序模式位位置读取所述至少一个字节序模式数据位。
29.根据权利要求观所述的方法,其中确定所述装置的字节序模式包含在所述所存取数据是根据第一字节序模式读取的情况下读取第一字节序模式数据位,或在所述所存取数据是根据第二字节序模式读取的情况下读取第二字节序模式数据位。
30.根据权利要求27所述的方法,其包括改变所述装置的所述字节序模式。
31.根据权利要求30所述的方法,其中改变所述装置的所述字节序模式包含经由软件越权控制默认字节序模式。
32.根据权利要求31所述的方法,其中越权控制默认字节序模式包含越权控制通过所述装置的硬件输入上的信号选择的默认字节序模式。
33.根据权利要求30所述的方法,其中改变所述装置的所述字节序模式包含根据存储于所述寄存器中或额外寄存器中的额外数据位的值来改变所述字节序模式。
34.根据权利要求33所述的方法,其包括经由软件驱动器、固件或其它软件自动设定所述额外数据位的所述值。
35.根据权利要求33所述的方法,其包括经由软件驱动器、固件或其它软件手动设定所述额外数据位的所述值。
全文摘要
本发明揭示用于管理字节序的系统、方法及装置。在一个实施例中,装置经配置以选择性地以大字节序操作模式或小字节序操作模式中的一者操作。所述装置可包含寄存器,其中所述装置的当前字节序模式指示于所述寄存器内的至少两个不同位位置中。所述至少两个不同位位置可经选择使得在所述装置及系统以相同字节序模式操作的情况下将由系统读取所述位位置中的一者中的数据位,而在所述装置及系统正以彼此不同的字节序模式操作的情况下将由所述系统读取所述所选位位置中的另一者中的数据位。在一些实施例中,所述装置的所述字节序模式可由硬件输入或软件输入控制。
文档编号G06F13/40GK102232216SQ200980148392
公开日2011年11月2日 申请日期2009年11月19日 优先权日2008年12月1日
发明者哈罗德·B·诺伊斯 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1