具有板上数据搜索能力的存储器模块和方法以及使用这种存储器模块的基于处理器的系统的制作方法

文档序号:6498402阅读:238来源:国知局
专利名称:具有板上数据搜索能力的存储器模块和方法以及使用这种存储器模块的基于处理器的系统的制作方法
技术领域
本发明涉及存储装置,并且尤其涉及包含存储装置、并具有在存储器模块内搜索存储装置中所存储的数据的能力的存储器模块。
背景技术
基于处理器的系统,如计算机系统,使用存储装置如DRAM(动态随机存取存储器)装置来存储处理器所存取的指令和数据。这些存储装置典型地用作计算机系统中的系统存储器。在典型计算机系统中,处理器通过存储器控制器与系统存储器进行通信。处理器发布存储器请求,该存储器请求包括诸如读命令的存储器命令、以及指明要从中读取数据或指令的位置的地址。存储器控制器利用该命令和地址来产生应用于系统存储器的适当的命令信号以及行和列地址。响应于这些命令和地址,数据在系统存储器和处理器之间被传送。存储器控制器常常是系统控制器的一部分,系统控制器也包括用于将处理器总线连接到扩展总线如PCI(外围部件互联)总线的总线桥电路。
虽然存储装置的操作速度已不断增加,但是这种操作速度的增加没有跟上处理器操作速度的增加。存储器控制器操作速度的增加也落后于处理器操作速度的快速增加。存储器控制器和存储装置的较低速度常常限制了计算机系统可以运行的速度。
计算机系统的操作速度也受到增加了从系统存储装置读取数据所需时间的等待时间问题的限制。更具体地说,当存储装置读命令被耦合到系统存储装置如SDRAM(同步动态随机存取存储器)装置时,只有在几个时钟周期的延迟之后,所读取的数据才从SDRAM装置输出。因此,虽然SDRAM装置能够以高数据速率同步输出猝发数据,但是最初提供数据时的延迟可以大大降低使用这种SDRAM装置的计算机系统的操作速度。
上述问题对使用这种存储装置的基于处理器的系统的操作的不利影响在很大程度上取决于系统所执行的操作的性质。对于对存储器高度敏感的操作,即频繁的读和写操作,上述问题对基于处理器的系统的操作速度可以是很不利的。例如,基于处理器的系统如计算机系统能够执行“数据挖掘”操作的速度基本上是处理器能够存取数据的速度的函数,在这种操作期间数据典型地存储在系统存储器中。在数据挖掘操作中,处理器寻找系统存储器中所存储的特定数据内容,如特定的号码或单词。处理器通过重复取得数据项、然后将所取得的每个数据项与作为搜索主题的数据内容进行比较,来执行该功能。每当取得数据项时,处理器都必须输出读存储器命令和存储器地址,它们都必须被耦合到系统存储器。然后,处理器必须等待直到系统存储装置输出所读取的数据、并将所读取的数据耦合到处理器。作为典型地为DRAM装置的系统存储装置的长等待时间的结果,系统存储器可能花几个时钟周期来响应读存储器命令和地址、以及将所读取的数据项输出到处理器。当必须搜索大量数据时,数据挖掘可能需要相当长时间。
提高存储装置操作速度以提供更快的存储器敏感操作(如数据挖掘)的一种方法是,使用通过存储器集线器连接到处理器的多个存储装置。在存储器集线器体系结构中,系统控制器或存储器集线器控制器连接到几个存储器模块,每个存储器模块都包括连接到几个存储装置的存储器集线器。存储器集线器在控制器和存储装置之间高效地路由存储器请求和响应。使用该体系结构的计算机系统可能具有更高的数据带宽,因为当某一存储装置正在响应先前的存储器存取的时候,处理器可以访问另一存储装置。例如,当系统中的某一存储装置正准备将所读取的数据提供给处理器时,处理器可以向系统中的另一存储装置发出读数据请求。使用存储器集线器体系结构的计算机系统的操作效率,允许系统比其中处理器访问几个存储装置中每个存储装置的系统快得多地执行存储器敏感操作,如数据挖掘。
虽然在执行存储器敏感操作如数据挖掘时,存储器集线器体系结构允许处理器更快地存取系统存储装置,但是存储器集线器体系结构没有消除重复取数据操作中的固有问题。结果,即使当计算机系统使用具有存储器集线器体系结构的系统存储器,存储器敏感操作如数据挖掘也可能仍然需要相当长时间。
因此,需要一种通过避免大量重复存储器读操作的需要、来允许处理器以快得多的速率执行数据挖掘的系统和方法。

发明内容
一种存储器模块,包括存储装置和存储器集线器。存储器集线器包括链路接口以及连接到链路接口和存储装置的数据挖掘模块。数据挖掘模块用于通过链路接口接收至少一个搜索数据项。然后,数据挖掘模块重复地将读存储器请求耦合到存储装置,并且存储装置通过将读数据输出到数据挖掘模块来作出响应。然后,数据挖掘模块将读数据和搜索数据进行比较,以确定是否存在数据匹配。如果存在数据匹配,则当数据匹配发生时或者在数据匹配被存储在结果存储器中之后,从存储器模块耦合数据匹配指示。


图1所示为,在其中可以实现本发明实施例的存储器集线器体系结构中的具有存储器模块的计算机系统的框图。
图2所示为,根据本发明实施例的、供可以用于图1的计算机系统或其它基于处理器的系统中的存储器模块之用的存储器集线器的框图。
图3所示为,图2的存储器集线器中所使用的数据挖掘模块的一个实施例的框图。
图4所示为,根据本发明另一实施例的、供可以用于图1的计算机系统或其它基于处理器的系统中的存储器模块之用的存储器集线器的框图。
具体实施例方式
本发明的实施例涉及具有在内部执行数据挖掘操作的能力的存储器集线器模块。以下阐述某些细节,以提供对本发明各种实施例的充分理解。然而,对于本领域技术人员,显然可以在没有这些特殊细节的情况下实施本发明。在其它情况下,没有详细示出众所周知的电路、控制信号及定时协议,以避免不必要地使本发明不清楚。
图1示出了根据本发明一个实施例的计算机系统100。计算机系统100包括处理器104,处理器104用于执行各种计算功能,如执行特定软件来执行特定计算或任务。处理器104包括处理器总线106,处理器总线106通常包括地址总线、控制总线和数据总线。处理器总线106典型地连接到典型地为SRAM(静态随机存储器)的高速缓冲存储器108。最后,处理器总线106连接到有时也被称为总线桥的系统控制器110。
系统控制器110用作其它各种部件到处理器104的通信路径。更具体地说,系统控制器110包括典型地连接到图形控制器112的图形端口,图形控制器112又连接到视频终端114。系统控制器110也连接到一个或多个输入设备118,如键盘或鼠标,以允许操作者与计算机系统100交互。典型地,计算机系统100也包括一个或多个通过系统控制器110连接到处理器104的输出设备120,如打印机。典型地,一个或多个数据存储装置124也通过系统控制器110连接到处理器104,以允许处理器104存储数据或从内部或外部存储介质(未示出)获取数据。典型的存储装置124的例子包括硬盘和软盘、盒式磁带以及CD-ROM(只读光盘存储器)。
系统控制器110包括连接到几个存储器模块130a、b、…n的存储器集线器控制器128,这些存储器模块130用作计算机系统100的系统存储器。存储器模块130优选地通过高速链路134连接到存储器集线器控制器128,高速链路134可以是光或电通信路径、或其它某种类型的通信路径。如果高速链路134被实现为光通信路径,则光通信路径可以是一条或多条光纤的形式。在这种情况下,存储器集线器控制器128和存储器模块将包括连接到光通信路径的光输入/输出端口或分开的输入和输出端口。存储器模块130被显示为以多点配置方式连接到存储器集线器控制器128,其中单条高速链路134连接到所有存储器模块130。然而,应该理解,也可以使用其它拓扑结构。例如,可以使用点对点连接配置,其中单独的高速链路(未示出)用于将每个存储器模块130连接到存储器集线器控制器128。也可以使用开关拓扑结构,其中存储器集线器控制器128通过开关(未示出)来选择性地连接到每个存储器模块130。可使用的其它拓扑结构对本领域技术人员将是显而易见的。
每个存储器模块130都包括用于控制对8个存储装置148的存取的存储器集线器140,在图1所示例子中,这8个存储装置148是SDRAM(同步动态随机存取存储器)装置。然而,可以使用更少或更多数量的存储装置148,并且也可以使用不同于SDRAM装置的存储装置。存储器集线器140通过总线系统150连接到每个系统存储装置148,总线系统150通常包括控制总线、地址总线和数据总线。然而,也可以使用其它总线系统,如使用共享命令/地址总线的总线系统。
图2示出了根据本发明一个实施例的可用作图1的存储器集线器140的存储器集线器200。存储器集线器200被显示为连接到4个存储装置240a-d,在该例子中这4个存储装置240a-d是常规的SDRAM装置。在替换实施例中,存储器集线器200连接到4组不同的存储装置,而不仅仅是4个不同的存储装置240a-d,其中每一组典型地具有多个存储装置。然而,为了举例的目的,存储器集线器200被显示为连接到4个存储装置240a-d。应该理解,对存储器集线器200的必要更改、更多或更少数量的存储装置、或者提供多组存储器,都在本领域普通技术人员的知识范围内。
存储器集线器200中还包括链路接口210a-d,链路接口210a-d可用于将存储器集线器200连接到相应的处理器或其它存储器存取装置。在图1所示的实施例中,只使用一个存储器存取装置,因此只使用一个链路接口210a。存储器集线器200也包括用于将存储器集线器200所处的存储器模块连接到其它存储器模块(未示出)的链路接口212a-d。图1的实施例中没有使用这些链路接口212a-d。在任何情况下,链路接口210a-d和212a-d都优选地分别连接到第一高速数据链路220和第二高速数据链路222。如前面参考图1所讨论的,可以利用光或电通信路径或其它某种类型的通信路径来实现高速数据链路220、222。链路接口210a-d和212a-d是常规的,并且包括用于向高速数据链路220和222传送数据、命令和地址信息以及从高速数据链路220、222传送数据、命令和地址信息的电路。众所周知,这种电路包括本领域逻辑上公知的发送器和接收器。应该理解,本领域普通技术人员足以理解对链路接口210a-d和212a-d进行更改以便与特定类型的通信路径一起使用,并且可以在不脱离本发明范围的情况下对链路接口210a-d和212a-d进行这种更改。例如,如果利用光通信路径来实现高速数据链路220和222,则链路接口210a-d和212a-d将包括可以把通过光通信路径耦合的光信号转换成电信号的光输入/输出端口。
链路接口210a-d和212a-d包括允许存储器集线器140以多种配置与系统存储器连接的电路。例如,可以通过使每个存储器模块经由任一链路接口210a-d或212a-d连接到存储器集线器控制器128,来实现如图1所示的多点配置。作为选择,可以通过使存储器模块串联连接来实现点对点或菊花链配置。例如,链路接口210a-d可用于连接第一存储器模块,并且链路接口212a-d可用于连接第二存储器模块。连接到处理器或系统控制器的存储器模块将通过一组链路接口连接到该处理器或系统控制器,并通过另一组链路接口进一步连接到另一存储器模块。在本发明一个实施例中,存储器模块的存储器集线器200以点对点配置连接到处理器,其中没有其它装置连接到处理器104和存储器集线器200之间的连接上。由于以下几个原因,包括较低电容、反射信号的较少线不连续性、以及较短的信号路径,使这种类型的互连在处理器104和存储器集线器200之间提供了更好的信号耦合。
链路接口210a-d和212a-d通过由总线214表示的多条总线和信号线连接到开关260。总线214是常规的,并且包括写数据总线和读数据总线,虽然作为选择可以提供单条双向数据总线,以通过链路接口210a-d和212a-d在两个方向上耦合数据。本领域普通技术人员应该理解,总线214只是作为示例提供的,总线214可以包括更少或更多的信号线,如进一步包括可用于维持高速缓存一致性的请求线和监听线。
开关260进一步连接到4个存储器接口270a-d,这4个存储器接口270a-d又分别连接到存储装置240a-d。通过分别为每个存储装置240a-d提供分开且独立的存储器接口270a-d,存储器集线器200避免了典型地在单通道存储器体系结构情况下发生的总线或存储器组冲突。开关260通过由总线274表示的多条总线和信号线连接到每个存储器接口。总线274包括写数据总线、读数据总线以及请求线。然而,应该理解,作为选择可以使用单条双向数据总线或其它某种类型的总线系统来代替分开的写数据总线和读数据总线。而且,总线274可以包括比前面所述的信号线更多或更少的信号线。
在本发明的实施例中,每个存储器接口270a-d都特别适合于它所连接的存储装置240a-d。更具体地说,每个存储器接口270a-d特别适于提供和接收分别通过它所连接的存储装置240a-d收到和产生的特定信号。而且,存储器接口270a-d能够和在不同时钟频率下操作的存储装置240a-d一起操作。结果,存储器接口270a-d把处理器104与在存储器集线器200和连接到存储器集线器200的存储装置240a-d之间的接口处可能发生的变化隔开,并且它提供一种可以与存储装置240a-d交互的更加可控的环境。
连接链路接口210a-d、212a-d和存储器接口270a-d的开关260可以是多种常规或以下开发的开关中的任何开关。例如,开关260可以是能够以多种配置同时将链路接口210a-d、212a-d和存储器接口270a-d相互连接的交叉开关。开关260也可以是一组不提供和交叉开关一样的连通级别、但是相反能够将链路接口210a-d和212a-d的某些或全部连接到每个存储器接口270a-d上的多路复用器。开关260也可以包括用于确定哪些存储器存取应该接收优于其它存储器存取的优先级的仲裁逻辑(未示出)。执行该功能的总线仲裁是本领域技术人员所周知的。
进一步参考图2,存储器接口270a-d的每一个都包括各自的存储器控制器280、各自的写缓冲器282、各自的高速缓冲存储器单元284和各自的数据挖掘模块290。存储器控制器280通过向它所连接的存储装置240a-d提供控制、地址和数据信号,并从它所连接的存储装置240a-d接收数据信号,来执行和常规存储器控制器一样的功能。然而,存储器控制器280所发送和接收的信号的性质将和存储装置240a-d所适于发送和接收的信号的性质相对应。高速缓冲存储器单元284包括高速缓冲存储器的正常部件,包括如本领域所周知的标记存储器、数据存储器、比较器等。写缓冲器282和高速缓冲存储器单元284中使用的存储装置可以是DRAM装置、SRAM(静态随机存取存储器)装置、其它类型的存储装置或这三种装置的组合。此外,这些存储装置的任一或全部以及高速缓冲存储器单元284中使用的其它部件可以是嵌入式装置或独立装置。
每个存储器接口270a-d中的写缓冲器282都用于在为读请求服务时,存储写请求。在这种系统中,即使写请求所针对的存储装置忙于为先前的写或读请求服务,处理器104也能够向系统存储装置240a-d发出写请求。写缓冲器282优选地积累从开关260收到的、可能和读请求交替的几个写请求,随后在没有任何介入读请求的情况下按顺序将它们应用于每个存储装置240a-d。通过以这种方式流水线输送写请求,能够更有效地处理它们,因为避免了读/写转换中固有的延迟。缓冲写请求以允许为读请求服务的能力也能够大大减少存储器读等待时间,因为可以与读请求时间顺序无关地给读请求以第一优先级。
在每个存储器接口270a-d中使用的高速缓冲存储器单元284,在数据最近从存储装置240a-d被读出、或者被写入存储装置240a-d的情况下,允许处理器104接收响应于针对各系统存储装置240a-d的读命令的数据,而不用等待存储装置240a-d提供这种数据。因而,高速缓冲存储器单元284减少了系统存储装置240a-d的读等待时间,以使计算机系统的存储带宽最大化。类似地,处理器104能够将写数据存储在高速缓冲存储器单元284中,然后在相同的存储器接口270a-d中的存储器控制器280将写数据从高速缓冲存储器单元284传送给它所连接的系统存储装置240a-d的时候,执行其它功能。
数据挖掘模块290通过总线292连接到开关260,并连接到存储装置240a-d中的各个存储装置。数据挖掘模块290接收要在各个存储装置240a-d中搜索的数据。搜索数据通过相应链路接口210a-d和开关260,从处理器或其它存储器存取装置(图2中未示出)被耦合(couple)到数据挖掘模块290。被耦合到数据挖掘模块290的搜索数据可以是单一数据项,如单词或数字,或几个不同的数据项。数据挖掘模块290使读数据项重复地从相应存储装置240a-d被读出,然后数据挖掘模块290将每个读数据项和搜索数据进行比较,并将每个肯定比较结果通过开关260和链路接口210a-d耦合到处理器或其它存储器存取装置。作为选择,可以将几个肯定比较结果保存在存储装置中。例如,可以在相应存储装置240a-d中的所有数据都已被搜索之后,传送几个搜索数据项的结果数据。然后,将所保存的结果数据同时传送给处理器或其它存储器存取装置。从数据挖掘模块290传送的结果数据优选地是肯定比较的读数据在相应存储装置240a-d中的存储地址。然而,如果搜索了多个数据项,则结果数据优选地包括指示找到了哪个搜索项的数据。例如,几个结果数据项的每一项都可以包括与存储装置240a-d中发现搜索数据项的地址成对地找到的搜索数据项。
存储器集线器200中还可以包括通过总线298连接到开关260的DMA(直接存储器存取)引擎296。DMA引擎296使存储器集线器200能够在没有处理器104介入的情况下,将数据块从系统存储器中的一个位置移到系统存储器中另一位置。总线298包括多条常规总线和信号线,如地址、控制、数据总线等,用于处理系统存储器中的数据传送。可以通过DMA引擎296来实现本领域普通技术人员所周知的常规DMA操作。DMA引擎296能够读取系统存储器中的链接列表,以便在没有处理器介入的情况下执行DMA存储器操作,由此使处理器104和带宽受限系统总线免于执行存储器操作。DMA引擎296也可以包括例如为系统存储装置240a-d的每一个提供多通道DMA操作的电路。这种多通道DMA引擎是本领域所周知的,并且可以利用常规技术来实现。
虽然在图2中数据挖掘模块290a-d被显示为直接连接到相应存储装置240a-d,但是可以使用其它配置。例如,数据挖掘模块290a-d可以连接到相应存储器控制器280a-d,使得由存储器控制器280a-d来发出读请求,并且所得到的读数据或者直接被耦合到数据挖掘模块290a-d,或者通过存储器控制器280a-d被耦合到数据挖掘模块290a-d。
图3示出了可以用作图2的数据挖掘模块290的数据挖掘模块300的一个实施例。数据挖掘模块300包括DMA引擎302,DMA引擎302很象存储器模块200(图2)中的DMA引擎296那样操作,以便在不使用处理器的情况下从存储装置240a-d传送数据以及向存储装置240a-d传送数据。DMA引擎302连接到总线292,并且优选地通过链路接口210a-d之一和开关260、利用处理器或其它存储器存取装置(图3中未示出)来配置。例如,DMA引擎302可以接收用于指定要搜索的存储器地址范围的信息。然后,DMA引擎302将信号耦合到存储器序列发生器306,使存储器序列发生器306为一系列顺序进行的读操作产生适当定时的信号存储器命令和地址信号。作为选择,DMA引擎302可以将信号应用于相应的存储器控制器280,并且存储器控制器280为一系列顺序进行的读操作产生命令和地址信号。
与用于读操作的命令和地址信号怎样产生无关,每个读操作都导致读数据项被返回给数据挖掘模块300。然而,在开始读操作之前,一个或多个搜索数据项从处理器或其它存储器存取装置(图3中未示出)被耦合,并被存储在搜索数据存储器314中。然后,搜索数据存储器314不断将搜索数据输出到一个或多个比较器320。数据挖掘模块300中所包括的比较器320的数目优选地和搜索数据存储器314中所存储的搜索数据项的数目相对应。在图3所示的数据挖掘模块中,搜索数据存储器314存储三个搜索数据项,因此有三个比较器320a-c,每个比较器都接收搜索数据存储器314中所存储的搜索数据项之一。然而,如前所述,搜索数据存储器314中所存储的搜索数据项的数目和所提供的比较器320的数目可根据需要改变。而且,即使存储器314中存储了几个搜索数据项,也可以使用单个比较器320。在这种情况下,搜索数据存储器314将顺序地将每个搜索数据项耦合到单个比较器320,并将实施对该数据项的搜索。然而,该方法是不太令人希望的,因为每当搜索新数据项时,都将需要重复读取存储装置240中存储的所有数据。
从相应存储装置240a-d收到的每个数据项都被传送给所有比较器320a-c。然后,每个比较器320a-c对读数据项及其相应搜索数据项进行比较,并且如果匹配,则输出击中指示。在图3所示的数据挖掘模块300实施例中,每个击中指示都包括用于识别存在击中的搜索数据项的信息。击中指示被耦合到结果存储器330,结果存储器330可以是SRAM(随机存取存储器)装置。结果存储器330也连接到DRAM序列发生器306,以接收被传送给相应存储装置240a-d的地址。然后,结果存储器330存储用于识别搜索数据项以及被击中的读数据地址的信息。作为选择,在处理器或其它存储器存取装置能够识别存储器中每一地址所存储的读数据的情况下,结果存储器330可以不必存储用于识别存在击中的搜索数据项的信息。
当相应存储装置240a-d的地址空间中的所有地址都已被搜索时,结果存储器330将其内容通过总线292输出到处理器或其它存储器存取装置,该总线292通过开关260连接到链路接口210a-d之一。
图4示出了根据本发明的存储器集线器350的另一个例子。存储器集线器350也可以用作图1的计算机系统100中的存储器集线器140。存储器集线器350和图2所示的存储器集线器200的不同之处主要在于,利用单个数据挖掘模块300来为存储器集线器350所连接的所有存储装置240a-d服务。因此,只为整个存储器集线器350提供一个数据挖掘模块300,而不是为图2的存储器集线器200中的4个存储器接口270a-d的每一个都提供数据挖掘模块300。然而,存储器集线器350的其它所有部件都和图2的存储器集线器200中的相应部件一样,并且以和图2的存储器集线器200中的相应部件一样的方式操作。因此,为了简明起见,将不再重复对它们的结构和操作进行说明。
存储器集线器350中的单个数据挖掘模块300通过开关260连接到所有链路接口210a-d和所有存储装置240a-d。数据挖掘模块300以基本上和它在存储器集线器200中一样的操作方式,在存储器集线器350中进行操作。然而,不允许同时搜索存储装置240a-d,而是按顺序分别搜索存储装置240a-d的每一个。
由以上描述应该理解,虽然在此为说明起见而描述了本发明的特定实施例,但是可以在不背离本发明的精神和范围的情况下对本发明进行各种修改。因此,本发明不受除所附的权利要求书以外的限制。
权利要求
1.一种用于供存储装置使用的存储器集线器,该存储器集线器包括链路接口,用于接收存储器请求;连接到所述链路接口的存储装置接口,该存储装置接口输出写存储器请求和写数据,该存储装置接口还输出读存储器请求并接收响应于此的读数据;以及连接到所述链路接口的数据挖掘模块,该数据挖掘模块用于通过所述链路接口接收至少一个搜索数据项,以便重复地使读存储器请求从所述存储器集线器被输出、接收响应于每个所述读存储器请求的读数据、以及将所收到的读数据和所述至少一个搜索数据项进行比较。
2.根据权利要求1所述的存储器集线器,进一步包括多个链路接口、多个存储装置接口以及用于选择性地连接所述多个链路接口之一和所述多个存储装置接口之一的开关。
3.根据权利要求1所述的存储器集线器,其中所述数据挖掘模块用于产生所述读存储器请求并从所述存储器集线器输出所述读存储器请求。
4.根据权利要求1所述的存储器集线器,其中所述数据挖掘模块包括连接到所述链路接口的直接存储器存取引擎,该直接存储器存取引擎用于产生所述读存储器请求;连接到所述链路接口的搜索数据存储器,用于接收和存储所述至少一个搜索数据项;以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,每个比较器都被连接以从所述搜索数据存储器接收相应的搜索数据项,并且被连接以接收所述读数据,该比较器用于将所述读数据与所述相应的搜索数据项进行比较,并且如果匹配则提供击中指示。
5.根据权利要求4所述的存储器集线器,其中所述比较器的输出连接到所述链路接口,以便将所述击中指示耦合到该链路接口。
6.根据权利要求4所述的存储器集线器,其中所述数据挖掘模块进一步包括连接到所述直接存储器存取引擎的存储装置序列发生器,该存储装置序列发生器为每个所述读请求产生一组命令和地址信号。
7.根据权利要求4所述的存储器集线器,其中所述搜索数据存储器存储多个所述搜索数据项,并且其中所述数据挖掘模块包括在数量上与所述搜索数据存储器中所存储的搜索数据项的数量相对应的多个比较器。
8.根据权利要求4所述的存储器集线器,进一步包括连接到所述比较器的输出以便存储由每个所述比较器产生的每个所述击中指示的结果存储器。
9.根据权利要求8所述的存储器集线器,其中所述结果存储器用于存储与导致每个所述击中指示的所述读数据相对应的存储装置地址。
10.根据权利要求9所述的存储器集线器,其中所述结果存储器进一步用于与每个所述存储装置地址一起存储相应的搜索数据项。
11.根据权利要求1所述的存储器集线器,其中所述链路接口、存储装置接口和数据挖掘模块被制造为公共半导体衬底上的集成电路。
12.一种存储器模块,包括多个存储装置;以及存储器集线器,该存储器集线器包括链路接口,用于接收对至少一个所述存储装置进行存取的存储器请求;连接到所述链路接口和所述存储装置的存储装置接口,该存储装置接口将写存储器请求和写数据耦合到所述存储装置,该存储装置接口还将读存储器请求耦合到所述存储装置并从所述存储装置耦合读数据;以及连接到至少一个所述存储装置的数据挖掘模块,该数据挖掘模块用于通过所述链路接口来接收至少一个搜索数据项,以便重复地使读存储器请求从所述存储器集线器被输出、接收响应于每个所述读存储器请求的读数据、以及将所收到的读数据与所述至少一个搜索数据项进行比较。
13.根据权利要求12所述的存储器模块,其中所述数据挖掘模块用于产生所述读存储器请求并从所述存储器集线器输出该读存储器请求。
14.根据权利要求12所述的存储器模块,其中所述存储器集线器进一步包括多个链路接口、连接到相应的存储装置的多个存储装置接口、以及用于选择性地连接所述多个链路接口之一和所述多个存储装置接口之一的开关。
15.根据权利要求14所述的存储器模块,其中为每个所述存储装置接口提供所述数据挖掘模块之一,每个所述数据挖掘模块都连接到所述相应的存储装置接口所连接的存储装置。
16.根据权利要求14所述的存储器模块,其中所述存储器模块包括通过所述开关连接到每个所述存储装置接口的单个数据挖掘模块。
17.根据权利要求12所述的存储器模块,其中所述数据挖掘模块包括连接到所述链路接口的直接存储器存取引擎,该直接存储器存取引擎用于产生要耦合到所述存储装置的所述读存储器请求;连接到所述链路接口的搜索数据存储器,用于接收和存储至少一个搜索数据项;以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,每个比较器都被连接以从所述搜索数据存储器接收相应的搜索数据项,并且被连接以从所述存储装置接收所述读数据,该比较器用于将所述读数据与所述相应的搜索数据项进行比较,并且如果匹配则提供击中指示。
18.根据权利要求17所述的存储器模块,其中所述比较器的输出连接到所述链路接口,以便将所述击中指示耦合到该链路接口。
19.根据权利要求17所述的存储器模块,其中所述数据挖掘模块进一步包括连接到所述直接存储器存取引擎和所述存储装置的存储装置序列发生器,该存储装置序列发生器为每个所述读请求产生一组要耦合到所述存储装置的命令和地址信号。
20.根据权利要求17所述的存储器模块,其中所述搜索数据存储器存储多个所述搜索数据项,并且其中所述数据挖掘模块包括在数量上与所述搜索数据存储器中所存储的搜索数据项的数量相对应的多个比较器。
21.根据权利要求17所述的存储器模块,进一步包括连接到所述比较器的输出以便存储由每个所述比较器产生的每个所述击中指示的结果存储器。
22.根据权利要求21所述的存储器模块,其中所述结果存储器用于存储存储装置地址,该存储装置地址指示导致每个所述击中指示的所述读数据在所述存储装置中的存储位置。
23.根据权利要求22所述的存储器模块,其中所述结果存储器进一步用于与每个所述存储装置地址一起存储相应的搜索数据项,该相应的搜索数据项与相应的地址处所存储的读数据匹配。
24.根据权利要求12所述的存储器模块,其中所述多个存储装置包括多个同步随机存取存储器装置。
25.根据权利要求12所述的存储器模块,其中所述链路接口、存储装置接口和数据挖掘模块被制造为公共半导体衬底上的集成电路。
26.根据权利要求25所述的存储器模块,其中所述公共半导体衬底进一步包括所述存储装置。
27.一种存储器模块,包括存储装置;以及存储器集线器,该存储器集线器包括链路接口,用于接收对所述存储装置进行存取的存储器请求;连接到所述链路接口和所述存储装置的存储装置接口,该存储装置接口将写存储器请求和写数据耦合到所述存储装置,该存储装置接口还将读存储器请求耦合到所述存储装置并从所述存储装置耦合读数据;连接到所述链路接口的直接存储器存取引擎,该直接存储器存取引擎用于产生要耦合到所述存储装置的所述读存储器请求;连接到所述链路接口的搜索数据存储器,用于接收和存储至少一个搜索数据项;以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,每个比较器都被连接以从所述搜索数据存储器接收相应的搜索数据项,并且被连接以从所述存储装置接收所述读数据,该比较器用于将所述读数据与所述相应的搜索数据项进行比较并且如果匹配则提供击中指示。
28.根据权利要求27所述的存储器模块,其中所述存储器模块包括多个存储装置,并且其中所述存储器集线器进一步包括多个链路接口、连接到相应的存储装置的多个存储装置接口、以及用于选择性地连接所述多个链路接口之一和所述多个存储装置接口之一的开关。
29.根据权利要求27所述的存储器模块,其中所述比较器的输出连接到所述链路接口,以便将所述击中指示耦合到该链路接口。
30.根据权利要求27所述的存储器模块,其中所述数据挖掘模块进一步包括连接到所述直接存储器存取引擎和所述存储装置的存储装置序列发生器,该存储装置序列发生器为每个所述读请求产生一组要耦合到所述存储装置的命令和地址信号。
31.根据权利要求27所述的存储器模块,其中所述搜索数据存储器存储多个搜索数据项,并且其中所述存储器集线器包括在数量上与所述搜索数据存储器中所存储的搜索数据项的数量相对应的多个比较器。
32.根据权利要求27所述的存储器模块,进一步包括连接到所述比较器的输出以存储由每个所述比较器产生的每个所述击中指示的结果存储器。
33.根据权利要求27所述的存储器模块,其中所述结果存储器用于存储存储装置地址,该存储装置地址指示导致每个所述击中指示的读数据在所述存储装置中的存储位置。
34.根据权利要求33所述的存储器模块,其中所述结果存储器进一步用于与每个所述存储装置地址一起存储相应的搜索数据项,该相应的搜索数据项与相应的地址处所存储的读数据匹配。
35.根据权利要求27所述的存储器模块,其中所述多个存储装置包括多个同步随机存取存储器装置。
36.根据权利要求27所述的存储器模块,其中所述链路接口、存储装置接口、直接存储器存取引擎、搜索数据存储器以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,被制造为公共半导体衬底上的集成电路。
37.根据权利要求36所述的存储器模块,其中所述公共半导体衬底进一步包括所述存储装置。
38.一种基于处理器的系统,包括具有处理器总线的处理器;连接到所述处理器总线的系统控制器,该系统控制器具有系统存储器端口和外围设备端口;连接到所述系统控制器的所述外围设备端口的至少一个输入设备;连接到所述系统控制器的所述外围设备端口的至少一个输出设备;连接到所述系统控制器的所述外围设备端口的至少一个数据存储装置;以及连接到所述系统控制器的所述系统存储器端口的存储器模块,该存储器模块包括多个存储装置;以及存储器集线器,该存储器集线器包括链路接口,用于接收对至少一个所述存储装置进行存取的存储器请求;连接到所述链路接口和所述存储装置的存储装置接口,该存储装置接口将写存储器请求和写数据耦合到所述存储装置,该存储装置接口还将读存储器请求耦合到所述存储装置并从所述存储装置耦合读数据;以及连接到至少一个所述存储装置的数据挖掘模块,该数据挖掘模块用于通过所述链路接口接收至少一个搜索数据项,以便重复地使读存储器请求从所述存储器集线器被输出、接收响应于每个所述读存储器请求的读数据、以及将所收到的读数据与所述至少一个搜索数据项进行比较。
39.根据权利要求38所述的基于处理器的系统,其中所述数据挖掘模块用于产生所述读存储器请求并从所述存储器集线器输出所述读存储器请求。
40.根据权利要求38所述的基于处理器的系统,其中所述存储器集线器进一步包括多个链路接口、连接到相应的存储装置的多个存储装置接口、以及用于选择性地连接所述多个链路接口之一和所述多个存储装置接口之一的开关。
41.根据权利要求40所述的基于处理器的系统,其中为每个所述存储装置接口提供所述数据挖掘模块之一,每个所述数据挖掘模块都连接到相应的存储装置接口所连接的所述存储装置。
42.根据权利要求40所述的基于处理器的系统,其中所述存储器模块包括通过所述开关连接到每个所述存储装置的单个数据挖掘模块。
43.根据权利要求38所述的基于处理器的系统,其中所述数据挖掘模块包括连接到所述链路接口的直接存储器存取引擎,该直接存储器存取引擎用于产生要耦合到所述存储装置的所述读存储器请求;连接到所述链路接口的搜索数据存储器,用于接收和存储所述至少一个搜索数据项;以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,每个比较器都被连接以从所述搜索数据存储器接收相应的搜索数据项,并且被连接以从所述存储装置接收所述读数据,该比较器用于将所述读数据与所述相应的搜索数据项进行比较,并且如果匹配则提供击中指示。
44.根据权利要求43所述的基于处理器的系统,其中所述比较器的输出连接到所述链路接口,以便将所述击中指示耦合到该链路接口。
45.根据权利要求43所述的基于处理器的系统,其中所述数据挖掘模块进一步包括连接到所述直接存储器存取引擎和所述存储装置的存储装置序列发生器,该存储装置序列发生器为每个所述读请求产生一组要耦合到所述存储装置的命令和地址信号。
46.根据权利要求43所述的基于处理器的系统,其中所述搜索数据存储器存储多个所述搜索数据项,并且其中所述数据挖掘模块包括在数量上与所述搜索数据存储器中所存储的搜索数据项的数量相对应的多个比较器。
47.根据权利要求43所述的基于处理器的系统,进一步包括连接到所述比较器的输出以便存储由每个所述比较器产生的每个所述击中指示的结果存储器。
48.根据权利要求47所述的基于处理器的系统,其中所述结果存储器用于存储存储装置地址,该存储装置地址指示导致每个所述击中指示的读数据在所述存储装置中的存储位置。
49.根据权利要求48所述的基于处理器的系统,其中所述结果存储器进一步用于与每个所述存储装置地址一起存储相应的搜索数据项,该相应的搜索数据项与相应的地址处所存储的读数据匹配。
50.根据权利要求38所述的基于处理器的系统,其中所述多个存储装置包括多个同步随机存取存储器装置。
51.根据权利要求38所述的基于处理器的系统,其中所述链路接口、存储装置接口和数据挖掘模块被制造为公共半导体衬底上的集成电路。
52.根据权利要求51所述的基于处理器的系统,其中所述公共半导体衬底进一步包括所述存储装置。
53.一种基于处理器的系统,包括具有处理器总线的处理器;连接到所述处理器总线的系统控制器,该系统控制器具有系统存储器端口和外围设备端口;连接到所述系统控制器的所述外围设备端口的至少一个输入设备;连接到所述系统控制器的所述外围设备端口的至少一个输出设备;连接到所述系统控制器的所述外围设备端口的至少一个数据存储装置;以及连接到所述系统控制器的所述系统存储器端口的存储器模块,该存储器模块包括存储装置;以及存储器集线器,该存储器集线器包括链路接口,用于接收对所述存储装置进行存取的存储器请求;连接到所述链路接口和所述存储装置的存储装置接口,该存储装置接口将写存储器请求和写数据耦合到所述存储装置,该存储装置接口还将读存储器请求耦合到所述存储装置并从所述存储装置耦合读数据;连接到所述链路接口的直接存储器存取引擎,该直接存储器存取引擎用于产生要耦合到所述存储装置的所述读存储器请求;连接到所述链路接口的搜索数据存储器,用于接收和存储至少一个搜索数据项;以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,每个比较器都被连接以从所述搜索数据存储器接收相应的搜索数据项,并且被连接以从所述存储装置接收所述读数据,该比较器用于将所述读数据与所述相应的搜索数据项进行比较,并且如果匹配则提供击中指示。
54.根据权利要求53所述的基于处理器的系统,其中所述存储器模块包括多个存储装置,并且其中所述存储器集线器进一步包括多个链路接口、连接到相应的存储装置的多个存储装置接口、以及用于选择性地连接所述多个链路接口之一和所述多个存储装置接口之一的开关。
55.根据权利要求53所述的基于处理器的系统,其中所述比较器的输出连接到所述链路接口,以便将所述击中指示耦合到该链路接口。
56.根据权利要求53所述的基于处理器的系统,其中所述数据挖掘模块进一步包括连接到所述直接存储器存取引擎和所述存储装置的存储装置序列发生器,该存储装置序列发生器为每个所述读请求产生一组要耦合到所述存储装置的命令和地址信号。
57.根据权利要求53所述的基于处理器的系统,其中所述搜索数据存储器存储多个所述搜索数据项,并且其中所述存储器集线器包括在数量上与所述搜索数据存储器中所存储的搜索数据项的数量相对应的多个比较器。
58.根据权利要求53所述的基于处理器的系统,进一步包括连接到所述比较器的输出以便存储由每个所述比较器产生的每个所述击中指示的结果存储器。
59.根据权利要求58所述的基于处理器的系统,其中所述结果存储器用于存储存储装置地址,该存储装置地址指示导致每个所述击中指示的读数据在所述存储装置中的存储位置。
60.根据权利要求59所述的基于处理器的系统,其中所述结果存储器进一步用于与每个所述存储装置地址一起存储相应的搜索数据项,该相应的搜索数据项与相应的地址处存储的读数据匹配。
61.根据权利要求53所述的基于处理器的系统,其中所述多个存储装置包括多个同步随机存取存储器装置。
62.根据权利要求53所述的基于处理器的系统,其中所述链路接口、存储装置接口、直接存储器存取引擎、搜索数据存储器以及用于所述搜索数据存储器中所存储的每个搜索数据项的比较器,被制造为公共半导体衬底上的集成电路。
63.根据权利要求62所述的基于处理器的系统,其中所述公共半导体衬底进一步包括所述存储装置。
64.一种用于搜索位于存储器模块中的存储装置中所存储的搜索数据项的方法,该方法包括将至少一个搜索数据项传送给所述存储器模块;在所述存储器模块内存储所述至少一个搜索数据项;顺序地启动所述存储器模块中的多个读存储器请求;顺序地将所述读存储器请求耦合到所述存储装置;在所述存储器模块处接收响应于每个所述读存储器请求的读数据;将所收到的读数据与所述存储器模块内的至少一个搜索数据项进行比较,以确定是否存在数据匹配;产生响应于每个数据匹配的结果指示;以及从所述存储器模块耦合所述结果指示。
65.根据权利要求64所述的方法,其中所述产生响应于每个数据匹配的结果指示的处理包括提供存储装置地址,该存储装置地址指示导致每个所述数据匹配的读数据在所述存储装置中的存储位置。
66.根据权利要求65所述的方法,其中所述产生响应于每个数据匹配的结果指示的处理进一步包括,与每个存储装置地址一起提供匹配的相应搜索数据项。
67.根据权利要求64所述的方法,进一步包括,在从所述存储器模块耦合所述结果指示之前存储响应于每个数据匹配的结果指示。
68.一种用于在具有处理器的基于处理器的系统中搜索位于存储器模块中的系统存储装置中所存储的搜索数据项的方法,所述处理器连接到具有系统存储器端口的系统控制器,该方法包括将至少一个搜索数据项从所述处理器耦合到所述存储器模块;将所述至少一个搜索数据项存储在所述存储器模块中;顺序地从所述存储器模块内启动多个读存储器请求;将所述读存储器请求耦合到所述存储装置;从所述存储装置耦合响应于每个所述读存储器请求的读数据;将所述读数据与所述存储器模块内的所述至少一个搜索数据项进行比较,以确定是否存在数据匹配;产生响应于每个数据匹配的结果指示;以及将所述结果指示从所述存储器模块耦合到所述处理器。
69.根据权利要求68所述的方法,其中所述产生响应于每个数据匹配的结果指示的处理包括提供存储装置地址,该存储装置地址指示导致每个所述数据匹配的读数据在所述存储装置中的存储位置。
70.根据权利要求69所述的方法,其中所述产生响应于每个数据匹配的结果指示的处理进一步包括,与每个存储装置地址一起提供匹配的相应搜索数据项。
71.根据权利要求68所述的方法,进一步包括,在将所述结果指示从所述存储器模块耦合到所述处理器之前,存储所述存储器模块中响应于每个数据匹配的结果指示。
72.根据权利要求68所述的方法,其中所述将所述读存储器请求耦合到所述存储装置的处理以及从所述存储装置耦合所述读数据的处理完全在所述存储器模块内执行。
全文摘要
一种存储器模块,包括连接到存储器集线器的几个存储装置。该存储器集线器包括连接到相应处理器的几个链路接口、连接到相应存储装置的几个存储器接口、以及将任一链路接口连接到任一存储器接口的交叉开关。每个存储器接口都包括存储器控制器、写缓冲器、读高速缓冲存储器和数据挖掘模块。数据挖掘模块包括搜索数据存储器,该搜索数据存储器连接到链路接口、以便接收和存储至少一个搜索数据项。比较器从存储装置接收读数据以及搜索数据。然后,比较器将读数据与相应搜索数据项进行比较,并且如果匹配则提供击中指示。
文档编号G06F17/30GK1875356SQ200480031821
公开日2006年12月6日 申请日期2004年8月6日 优先权日2003年8月28日
发明者约瑟夫·M·杰德洛 申请人:米克伦技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1