用于清洗电子设备内的链表的电路和设备的制作方法

文档序号:6462271阅读:113来源:国知局
专利名称:用于清洗电子设备内的链表的电路和设备的制作方法
技术领域
本发明一般涉及信息电子设备领域,并且更具体地涉及清洗(purging)电 子设备内的链表。
背景技术
在包括在硬件中实现的链表的系统中,很可能清洗链表。典型地,链表 清洗以链表的头部的指针开始。随后,链表中每个节点的指针在它们被清洗 后,放置在自由块(freeblock)列表中。目前,当存在多个可清洗链表的点并且 仅有两个读取端口可用来遍历链表时,不存在有效清洗链表的清洗机制。通 常,两个读取端口为用于RAM或寄存器阵列的最大读取端口数。当前的链表 清洗系统不提供用于接收多个头指针并且然后尽可能快地以那些头指针开始 清洗链表的有效的清洗机制。因而,存在克服如上所述的现有技术的问题的需要。发明内容简要地,根据本发明,公开用于同时查询向量的两端的电路和网络设备。 该电路包括至少一个输入端,用于接收头指针的向量。存储锁存器包括两个 输入端和一个输出端,其中第一输入端接收头指针的向量。第一优先级解码 器包括输入端和输出端,其中该第 一优先级解码器的输入端从存储锁存器接 收头指针的向量。第一优先级解码器从所述向量的第一端遍历头指针的向量, 以识别该向量中的一个有效位。第一反向模块,包括输入端和输出端,其中 该输入端也从存储锁存器接收头指针的向量。第二优先级解码器包括输入端 和输出端。第二优先级解码器的输入端从第一反向模块接收头指针的向量。 从第一反向模块接收的头指针的向量为以反向顺序在至少一个输入端处接收 的头指针的向量。第二优先级解码器从头指针的反向向量的第一端遍历从第 一反向模块接收的头指针的向量,以识别该向量中的一个有效位。在另一实施例中,公开了连网设备。该网络设备包括存储器和通信耦合至存储器的处理器。该连网设备也包括用于同时查找向量的两端的电路。该 电路通信耦合至存储器和处理器。该电路包括至少一个输入端,用于接收头 指针的向量。存储锁存器包括两个输入端和一个输出端,其中第一输入端接 收头指针的向量。第一优先级解码器包括输入端和输出端,其中该第一优先 级解码器的输入端从存储锁存器接收头指针的向量。第一优先级解码器从所 述向量的第一端遍历头指针的向量,以识别该向量中的一个有效位。第一反 向模块包括输入端和输出端,其中该输入端也从存储锁存器接收头指针的向 量。第二优先级解码器包括输入端和输出端。第二优先级解码器的输入端从 第 一反向模块接收头指针的向量。从第 一反向模块接收的头指针的向量为以 反向顺序在至少一个输入端处接收的头指针的向量。第二优先级解码器从头 指针的反向向量的第 一端遍历从第 一反向模块接收的头指针的向量,以识别 该向量中的 一个有效位。本发明的一个优势在于,提供向量遍历(traverse)电路,其可同时从两端 遍历向量以识别两个有效位。在链表的环境中,有效位可以是指向不同的链 表的指针,其被链表步进器(walker)用来同时遍历两个不同的链表。向量 遍历过程将遍历向量的时间减少至多两倍。


附图与下面的详细描述一起并入并且形成说明书的一部分,用于进一步 示出各种实施例和说明各种原理以及与本发明相关的各种优势,其中贯穿分离的#见图,同样的参考数字指示相同的或功能类似的元件。 图1为根据本发明的实施例的向量遍历电路的示意图; 图2为示出根据本发明的实施例的头指针指向不同链表的框图; 图3为根据本发明的一个实施例的优先级解码器的示意图; 图4为示出才艮据本发明的实施例的、在一个时钟周期中A^两端遍历向量的处理的时序图;图5为根据本发明的实施例的链表清洗电路的示意图;以及 图6为根据本发明的实施例的信息处理系统的框图。
具体实施方式
如需要的,在此公开本发明的详细实施例;然而,应当理解,公开的实施例仅是本发明的示例,本发明可以以各种形式具体化。因而,在此公开的 具体结构和功能的细节不被解释为是限制性的,而仅仅解释为权利要求的基 础并且解释为教导本领域普通技术人员将本发明以不同方式应用在实际任何适当的具体结构中的典型基础。此外,在此使用的术语和短语并非意图限定;相反的,是为了提供发明的可理解的描述。如在此使用的术语"一个"定义为一个或多于一个。如在此使用的术语多 个定义为两个或多于两个。如在此使用的术语另一个定义为至少第二个或更 多。如在此使用的术语包括和/或具有定义为包含(即,开放性语言)。如在 此使用的术语耦合定义为连接,尽管不需要直接地并且不需要机械地连接。 如在此使用的术语程序、软件应用等定义为设计用来在计算机系统上执行的 指令序列。程序、计算机程序或软件应用可包括子程序、函数、过程、对象方法、对象实现、可执行应用、小应用程序(applet)、小服务程序(servlet)、源 代码、目标代码、共享库/动态负载库和/或其它设计为在计算机系统上执行的 指令序列。向量遍历电^各图1示出向量遍历电路100的示意图。在一个实施例中,向量遍历电路 100位于连网设备中。然而,这仅仅是一个例子而非限制。向量遍历电路100 利用优先级解码器和反向优先级解码器并发地识别向量中的一个或多个有效 位。换句话说,向量遍历电路100同时遍历向量的每一端,以在单个时钟周 期中识别一个或多个有效位。本发明的一个优势在于在位向量中识别两个有: 效位的时间减少至多2倍。应该注意到,在链表的环境中,以下的描述使用 向量遍历电路100,其是存储在存储器中的数据的逻辑组织。链表是在计算 机编程中公知的基本数据结构。术语链表由向在这一 自参考数据类型中的相 同类型的另一数据的链接或指针得到。然而,本发明不限于链表。在一个实施例中,向量为一元阵列。图1示出了一个或多个耦合至各自 的解码器的源。例如,源A(例如,道(lane)O清洗指针)102耦合至解码器A 108, 源B(例如,道1清洗指针)104耦合至解码器B 110,以及源N(例如,道 N-l清洗指针)106耦合至解码器N 112。每个源102、 104、 106提供头指针(例如,7位值)到所述源希望包被清洗的链表中。换句话说,头指针指向 链表的头部。电^各100同时从源102、 104、 106的一个或多个接收数据。图 2示出图示来自源的头指针的结构图。如可由图2看出的,来自源A102的头指针202指向第一链表208的头部。来自源B 104的头指针204指向第二链 表210的头部。类似的,来自源N106的头指针206指向第三链表212的头部。回来参考图1,每个源102、 104、 106传递其数据(例如头指针)到各个解 码器環、110、 112中。每个解码器108、 110、 112的输出作为到或门114 的输入。或门获得每个解码器108、 110、 112的输出并且将它们或在一起。 或门114的输出用于设置锁存器116的向量,所述锁存器116存储指向需要 清洗的链表的头部向量。在一个实施例中,由可包括多于一个值的置位-复位 锁存器116输出128位向量。认识到在图1中为了简化仅仅示出代表128位 的1位的一个置位-复位锁存器116是很重要的。其它127位将并行地形成至 图1的电路。锁存器向量并行地通过两个相同的优先级解码器118、 120,其 中一个使信号在输入端122和输出端124上均反向,因此第二优先级解码器 120的优先级机制与第一个118的相反。例如,图4示出如何能够通过本发明遍历锁存器116的向量,该向量代 表指向需要清洗的链表的解码的指针。在第一时钟周期Tp第一优先级解码 器118遍历向量116的MSB 402。同时,第二优先级解码器120遍历向量116 的LSB404。已经发现了这两个有效位402、 404,它们通过随后将描述的逻辑 由锁存器116复位,导致状态T2。现在在该状态中,408和406将被复位, 导致状态T3。在状态T3中,两个优先级解码器指示412并且在此这是唯一 的有效输出。注意到, -假如两个优先级解码器118、 120产生不同结果154,则两个结 果都认为是有效的。假如两个优先级解码器118、 120产生相同结果,则仅有 一个结果是有效的(并且通过156门截止),并且如果两个来自优先级解码器 118、 120的结果都未能产生有效位,那么结果都不是有效的。只有有效位可 编码回到指针中去,该指针可由链表步进器用作进入链表的指针。回来参考图1,优先级解码器118、 120的结果(在给定时钟周期中当前 遍历的位的值)每一个分别传到编码器126、 128。编码器126、 128编码优 先级解码器118、 120的结果,以用作链表结构中的指针。在链表步进器134 的指针端口 130、 132接收编码器126、 128的输出。而且分别在或门136、 138接收优先级解码器118、 120的输出作为输入。或门136、 138对优先级 解码器118、 120的输出进行或操作并且发送该输出至链表步进器134的各个"有效,,端口 140、 142。"有效,,端口 140、 142 4企查指针的有效性。链表步进器134是使用从优先级解码器118、 120接收的指针、以使一次 同时遍历两个链表以清洗列表的元素的电路。例如,链表步进器的指针端口 130、 132每一个可接收指针,其中每个指针指向两个不同的链表。链表步进 器134使用这些指针来识别每个链表的起点,以开始清洗每个链表的元素。 一旦元素已经被清洗,则其对应的存储器被添加至自由存储块池。如可见的,本发明的优势在于可以/人两端同时遍历向量以识别两个有效 位。在链表的环境中,有效位可以是不同的链表中的指针,其被链表步进器 使用以同时遍历两个不同链表。该向量遍历过程将遍历向量的时间减少了至 多2倍。应该注意,电路100可以比通过链表步进器134遍历链表更快地接收源 数据。例如,在一些情形中,可能花费许多时钟周期来遍历链表。因而,在 电路100中提供选通机制。例如,图1示出第一与门144也接收来自第一优 先级解码器118的输出,并且还从链接步进器134上的第一忙(busy)端口 148接收数据。第二与门也接收来自第二优先级解码器120的输出并且还从 链表步进器134处的第二忙端口 150接收数据。每个与门144、 146的输出为第三或门152的输入。第三或门152的输出 为置位_复位锁存器116处的复位端口的输入。这确保置位-复位锁存器使 优先级解码器保持在当前位直到链表步进器134指示准备接收新的值。例如, 在链表步进器134完成遍历至少一个链表后,它指示它已经获得提供给它的 值并且清除锁存器向量中的对应的位。图5非常详细地示出了链表步进器134。图5示出了连接到存储器506 的读取端口 504的多路转换器(MUX) 502,例如静态随机存取存储器模块。 多路转换器502采用来自优先级解码器118、 120的新头指针、有效指针以及 来自数据输出端口 508的输出作为输入。在一个实施例中,来自数据输出端 口 508的数据为下一指针和尾标位(tailbit)。图5还示出了置位-复位锁存器510,其采用来自数据输出端口 508的有 效指针信号和尾标信号作为输入。置位-复位锁存器510的输出被上面讨论 的与门144、 146用作为忙信号,以指示什么时候链表步进器134可以处理来 自解码器118、 120的另一指针。置位-复位锁存器的输出还将已经从链表释 放的存储器推进自由块存储池。示例的信息处理系统图6为示出信息处理系统600的具体视图的框图。在一个实施例中,信 息处理系统600基于适于执行本发明的示例性实施例的适当配置的处理系 统。任何适当配置的处理系统能够类似地被本发明的实施例用作信息处理系 统600,例如,个人计算机、工作站等。信息处理系统600包括计算机602。计算机602具有通信连接至主存储 器606 (例如,易失性存储器)的处理器604、非易失性存储器接口 608、终 端接口 610、网络适配器硬件612以及向量遍历电路100。系统总线614使这 些系统元件互连。非易失性存储器接口 608用于将例如数据存储设备616的 海量存储设备连接至信息处理系统600。数据存储设备的一种具体类型为计 算机可读介质,例如CD驱动器,其可以用来从/向CD或DVD 618或软盘(未 示出)读取/存储数据。另一种类型的数据存储设备为配置为支持例如NTFS 型文件系统操作的数据存储设备。在一个实施例中,主存储器606包括一个或多个链表210、 212、 214。 如上面描述的,通过链表步进器134遍历和清洗链表。尽管示出为位于存储 器606中,这些元件可以以信息处理系统600内的硬件来实现。在另一实施 例中,信息处理系统600利用传统虚拟寻址机制以允许程序好象它们已经存 取大的、单个存储实体(此处称作计算机存储器)那样运转,而不是存取多个、 较小存储实体(例如主存储器606以及数据存储设备616)。注意到,在此使 用的术语"计算机系统存储器"整体地指示信息处理系统600的整个虚拟存储 器。尽管对于计算机602仅示出 一个CPU 604,具有多个CPU的计算机系统 可以等效地使用。本发明的实施例进一步并入每个包括分离的、充分编程的 微处理器的接口,所述微处理器用于从CPU604的卸载处理。终端接口 610 用于直接连接一个或多个终端626至计算机602,以向计算机602提供用户 接口。这些终端626可以是非智能或充分可编程工作站,并用于允许系统管 理员和用户与瘦客户端通信。这些终端626也能够由连接至计算机602并且 由包括在终端I/F610中的终端接口硬件控制的用户界面和外围设备组成,所 述终端I/F610包括视频适配器和用于键盘、指示设备等的接口 。根据实施例,操作系统可包括在主存储器606中并且适于多任务操作系 统,例如Linux、 UNIX、 Windows XP和Windows Server操作系统。本发明的实施例能够使用任何其它适合的搡作系统、或内核、或其它适合的控制软 件。本发明的一些实施例利用体系结构,例如面向对象的框架机制,其允许 操作系统(未示出)元件的指令可以在位于客户机内的任何处理器上执行。网络适配器硬件612用于向网络628提供接口 。本发明的实施例能够适配为 利用包括现代模拟和/或数字技术的任何数据通信连接或经由未来网络连接 才几制来工作。尽管在完全功能性计算机系统的环境中描述了本发明的示例性实施例, 但本领域技术人员将意识到,实施例能够通过软盘(例如软盘618)、 CD ROM 或其它形式的可记录介质或通过任何类型的电子传送机制作为程序产品来分 发。非限制示例上述电路是集成电路芯片的设计的一部分。该芯片设计以编程语言创建, 并且存储在计算机存储介质中(例如磁盘、磁带、物理硬驱动器或者例如在 存储器存取网络中的虚拟硬驱动器)。如果设计者不制造芯片或用于制造芯片 的光刻掩膜,设计者通过物理手段(例如,通过提供存储设计的存储介质的 副本)或电子地(例如,通过因特网)将作为结果的设计直接或间接地发送 至那些实体。然后存储的设计转换成对于制造光刻掩膜合适的格式(例如, GDSII),其典型地包括正在讨论的将在晶片上形成的芯片设计的多个副本。 光刻掩膜用于定义将被刻蚀或经过其它处理的晶片区域(和/或在其上的层)。如上所述的方法用在集成电路芯片的制造中。作为结果的集成电路芯片可以由制造者以未加工晶片形式(也就是,作 为具有多个未封装芯片的单个晶片)作为棵芯片,或以封装形式来分发。在后者的情形中,芯片安装在单个芯片封装中(例如,塑料载体,具有粘附到 母板或其它较高级别的载体的导线)或安装在多芯片封装中(例如具有任一 个或两个表面互连或掩埋互连的陶瓷载体)。在任何情形中,该芯片随后同其 它芯片、离散电路元件,和/或其它信号处理设备集成,作为(a)中间产品 例如母板或(b)最终产品的一部分。最终产品可以是任何包括集成电路芯片 的产品,范围从玩具和其它低端应用至具有显示器、键盘或其它输入设备以 及中央处理器的高级的计算机产品。如本领域普通技术人员公知的,本发明能够以硬件或软件或以硬件和软 件的结合生产。然而,在一个实施例中,发明以软件实现。根据结合优选实施例公开的发明原理的系统或方法可在单个计算机系统中生产或可以布置在 通过如本领域普通技术人员公知的任何合适的手段互连的分布计算机系统 中,所述单个计算机系统具有用于执行描述的或根据权利要求要求的各个功 能或步骤的分离的元件或手段或结合公开的或权利要求要求的任何功能或步 骤的性能的 一个或多个元件或手段。根据结合优选实施例公开的发明原理,发明以及发明原理不限于任何特 定类型的计算机系统,而是如本领域普通技术人员公知的,可以由任何布置 为执行描述的功能和描述的方法步骤的通用计算机使用。发明不限于任何特 定的计算机程序或逻辑或语言或指令,而是如本领域普通技术人员公知的, 可以由任何这种合适的程序、逻辑或语言、或指令来实践。尽管已经公开了本发明的具体实施例,本领域普通技术人员应理解,可 在不脱离本发明的精神和范围的情况下,对具体实施例作出改变。因而,本 发明的范围不限制于具体实施例,并且意图是附加权利要求覆盖在本发明的 范围之内的任何及所有应用、修改及具体化。
权利要求
1.一种用于同时查找向量的两端的电路,该电路包括至少一个输入端,用于接收头指针的向量;存储锁存器,包括两个输入端和一个输出端,其中第一输入端接收头指针的向量;第一优先级解码器,包括输入端和输出端,其中该第一优先级解码器的输入端从存储锁存器接收头指针的向量,其中该第一优先级解码器从头指针的向量的第一端遍历所述向量,以识别该向量中的一个有效位;第一反向模块,包括输入端和输出端,其中该输入端也从存储锁存器接收头指针的向量;以及第二优先级解码器,包括输入端和输出端,其中该第二优先级解码器的输入端从第一反向模块接收头指针的向量,其中从第一反向模块接收的头指针的向量为以反向顺序在所述至少一个输入端处接收的头指针的向量,并且其中该第二优先级解码器从头指针的反向向量的第一端遍历从第一反向模块接收的头指针的向量,以识别该向量中的一个有效位。
2、 权利要求1的电路,其中所述第一优先级解码器和所述第二优先级解 码器的每一个在一个时钟周期内遍历完整的头指针的向量。
3、 权利要求1的电路,其中所述第一优先级解码器包括耦合至第一编码 器的输入端的输出端,其中该第一优先级解码器输出识别的有效位至该第一 编码器。
4、 权利要求3的电路,其中所述第一编码器基于从第一优先级编码器接 收的识别的有效位而生成指针,其中该指针指向第一链表的起始点,并且其 中该指针传递给链表清洗电路的第 一输入端。
5、 权利要求4的电路,其中第二编码器基于从第二反向模块接收的识別 的有效位而生成指针,其中该指针指向第二链表的起始点,并且其中该指针 传递给链表清洗电路的第二输入端。
6、 权利要求1的电路,其中所述第二优先级解码器的输出端耦合至第二 反向模块,其中该第二反向模块输出从第二优先级编码器接收的识别的有效 位至第二编码器。
7、 权利要求l的电路,其中该电路进一步包括用于对两个或更多头指针的向量一起进行或操作的第一或门,其中该第一或门包括耦合至存储锁存器 的输出。
8、 权利要求7的电路,其中该第一或门的输出用于清除指示不再有效的 有效指针的位。
9、 权利要求1的电路,其中所述存储锁存器的第二输入端从链表清洗电 ^各接收指示"忙"和"就绪"之一的状态的信号。
10、 权利要求1的电路,其中所述第一优先级解码器的输出和所述第二 优先级解码器的输出^皮;险测为实质上类似,从而导致该第二优先级解码器的 输出无效,并且其中响应于该第一优先级解码器的输出和该第二优先级解码 器的输出被^r测为无效,不对该第一优先级解码器的输出和该第二优先级解 码器的输出采取行动。
11、 一种连网设备,该连网设备包括 存储器;通信耦合至存储器的处理器;和通信耦合至存储器和处理器、用于同时查找向量的两端的电路,该电踏 包括至少一个输入端,用于接收头指针的向量;存储锁存器,包括两个输入端和一个输出端,其中第一输入端接收 头指针的向量;第一优先级解码器,包括输入端和输出端,其中该第一优先级解码 器的输入端从存储锁存器接收头指针的向量,其中该第一优先级解码器 从头指针的向量的第一端遍历所述向量,以识别该向量中的一个有效位;第一反向模块,包括输入端和输出端,其中该输入端也从存储锁存 器接收头指针的向量;以及第二优先级解码器,包括输入端和输出端,其中该第二优先级解码 器的输入端从第 一反向模块接收头指针的向量,其中从第一反向模块接 收的头指针的向量为以反向顺序所述在至少一个输入端处接收的头指针 的向量,并且其中该第二优先级解码器从头指针的反向向量的第一端遍 历从第一反向模块接收的头指针的向量,以识别该向量中的一个有效 位。
12、 权利要求11的连网设备,其中所述第一优先级解码器和所述第二优先级解码器的每一个在一个时钟周期内遍历完整的头指针的向量。
13、 权利要求ll的连网设备,其中所述第一优先级解码器包括耦合至第 一编码器的输入端的输出端,其中该第 一优先级解码器输出识别的有效位至 该第一编码器。
14、 权利要求13的连网设备,其中所述第一编码器基于从第一优先级编 码器接收的识别的有效位而生成指针,其中该指针指向第一链表的起始点, 并且其中该指针传递给链表清洗电路的第 一输入端。
15、 权利要求ll的连网设备,其中所述第二优先级解码器的输出端耦合 至第二反向模块,其中该第二反向模块输出从第二优先级编码器接收的识别 的有效位至第二编码器。
16、 权利要求15的连网设备,其中所述第二编码器基于从第二反向模块 接收的识别的有效位而生成指针,其中该指针指向第二链表的起始点,并且 其中该指针传递给链表清洗电路的第二输入端。
17、 权利要求11的连网设备,其中该电路进一步包括用于对两个或更多 头指针的向量一起进行或操作的第一或门,其中该第一或门包括耦合至存储 锁存器的输出。
18、 权利要求17的连网设备,其中该第一或门的输出用于清除指示不再 有效的有效指针的位。
19、 权利要求11的连网设备,其中所述存储锁存器的第二输入端从链表 清洗电路接收指示"忙"和"就绪"之一的状态的信号。
20、 权利要求ll的连网设备,其中所述第一优先级解码器的输出和所述 第二优先级解码器的输出被检测为实质上类似,从而导致该第二优先级解码 器的输出无效,并且其中响应于该第一优先级解码器的输出和该第二优先级 解码器的输出^皮^r测为无效,不对该第 一优先级解码器的输出和该第二优先 级解码器的输出采取行动。
全文摘要
公开了一种用于同时查找向量的两端的电路。该电路包括至少一个用于接收头指针的向量的输入端。存储锁存器的第一输入端接收头指针的向量。第一优先级解码器的输入端从存储锁存器接收头指针的向量。第一优先级解码器从向量的第一端遍历头指针的向量,以识别向量中的一个有效位。第一反向模块的输入端也从存储锁存器接收头指针的向量。第二优先级解码器的输入端从第一反向模块接收头指针的向量(以反向顺序)。第二优先级解码器从反向向量的第一端遍历从第一反向模块接收的向量,以识别向量中的一个有效位。
文档编号G06F12/02GK101251829SQ20081009208
公开日2008年8月27日 申请日期2008年1月3日 优先权日2007年1月3日
发明者托德·A·斯特雷德, 斯科特·H·里德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1