具有宽寄存器组体系结构的分组处理器的制作方法

文档序号:6566589阅读:231来源:国知局
专利名称:具有宽寄存器组体系结构的分组处理器的制作方法
具有宽寄存器组体系结构的分组处理器
背景技术
分组处理器被用在路由器、交换机、服务器、个人计算机(PC)等中 以在诸如互联网之类的分组交换网络中处理和路由分组。分组处理器通常 需要调度对所接收到的分组的处理和在分组处理完成之后的分组输出。分 组处理器所接收和发送的分组流量的类型和数量不断地变化。因而,这些 调度操作对于公平且高效地处理分组来说至关重要。
在分组处理器中存在高效地实现分组调度的问题。基于硬件的方法可 以非常快速地操作,但是往往不灵活并且成本高。例如,可能需要整个专 用集成电路来用于分组调度操作。
对灵活的解决方案(例如无需对ASIC改版就可以改变其算法/功能的 方案)的需要强烈地促动着开发基于软件的解决方案。但是,由于需要大 量的连续逻辑操作,使得用于调度操作的基于软件的解决方案运行得非常 慢。
这些多方面的处理要求又由于用于分组调度的大型数据结构而变得更 加复杂。在一些软件实现方式中,这些数据结构可能超过1000位宽。即
使利用可替代的调度结构(例如日历),诸如调度状态之类的项目对于分 组处理器中通常使用的寄存器来说仍然太宽。当然,在中央处理单元
(CPU)或者甚至是网络处理单元(NPU)上,获取、更新和存储这种大 型数据结构的任务可能成本很高。
用在调度数据结构中的多个字段也未与用在分组处理器中的寄存器堆 (register file)很好地对应。例如,这些不同的字段可能不具有8、 16或 32位的位长。这迫使分组处理器执行许多数据排列和掩码操作以准备调度 数据用于后续处理。
目前缺少的是提供运行速度比当前的软件方案快很多而成本低于以前 的硬件方法的廉价又灵活的解决方案的中间的处理体系结构。本发明解决
了与现有技术相关联的这个问题及其它问题。

发明内容
宽寄存器组(WRS)被用在分组处理器中以提高某些分组处理操作的 性能。WRS中的寄存器具有比用于主要的分组处理操作的主寄存器更宽的 位长。宽逻辑单元被配置为对宽寄存器组执行逻辑操作,并且在一种实现
方式中包括专门配置用于分组调度操作的硬件基元(primitive)。专用的 互锁机构被额外用于协调多个处理器或线程对相同的宽寄存器地址位置的 访问。
WRS产生比以前的硬件解决方案廉价得多并且具有比以前的软件解决 方案更好的性能的调度引擎。WRS提供小型、紧凑、灵活和可縮放的调度 子系统,并且通过使用较廉价的存储器同时与其它使用共享存储器可以忍 受较长的存储器延迟。结果得到了一种基于处理需求的新的分组处理体系 结构,其具有很宽范围的成本/性能点。
根据下面参考附图对本发明优选实施例的详细描述,将更容易明白本 发明的前述和其它目的、特征和优点。


图l是包括宽寄存器组(WRS)的分组处理元件的框图。 图2是更详细地示出WRS的框图。
图3是示出用在宽寄存器逻辑单元中的硬件基元的示例的框图。
图4是宽寄存器互锁机构。
图5是使用WRS的分组处理器的框图。
具体实施例方式
图1示出了用在多线程分组处理元件(PPE) 110中的宽寄存器组 (WRS) 12的框图。WRS 12可以被用在需要处理正常宽度的数据和一定 量的较宽宽度的数据的任何处理设备中。WRS 12包括宽寄存器堆32,该 宽寄存器堆32包括每个都比主寄存器堆24中的寄存器宽的多个宽寄存器。
主寄存器堆24被用于PPE 110中最主要的操作,并且宽寄存器堆32 被用于访问某些数据结构并执行不能在主寄存器堆24中被高效处理的特 定操作。WRS 12还包括宽算术逻辑单元(ALU) 34,其对不能被主ALU 26高效地执行的宽寄存器堆32中的内容进行宽逻辑操作。例如,宽ALU 34可以对宽寄存器堆32中的不同字段或子字段执行多个并行的逻辑操 作。
宽寄存器堆32中的寄存器通过按其本身的大小一次性读取大型数据 结构,极大地减少了访问主存储器115的成本。宽ALU 34中的硬件基元 随后可以对宽寄存器堆32中的条目执行操作,其处理成本是主ALU 26的 处理成本的几分之一。WRS 12的这些特征极大地提高了传统的基于软件 的分组处理系统的性能。
PPE 110包括操作多个线程52的中央处理单元(CPU)核心50。在这 个实施例中,每个线程52具有相关联的数据缓存(DCACHE) 54,其包 括标签和缓存控制器54A,并且共享DCACHE数据阵列54B。线程52还 共享相同的指令缓存(ICACHE) 56。其它缓存配置也是可能的,其中线 程52都访问相同的DCACHE 54,或者每个线程具有单独的ICACHE 56。 DCACHE 54和ICACHE 56都可以通过资源互连108访问主存储器115和 全局分组存储器(GPM) 104。
在一个实施例中,ICACHE 56也可以通过L-2缓存112访问主存储器 115,并且DCACHE 54可以直接访问主存储器115。当然,其它存储器配 置也是可能的,其中DCACHE 54通过L-2缓存112访问主存储器115, 或者ICACHE 56直接访问主存储器115。
图2更详细地示出了 WRS 12。在一个示例中,主寄存器堆24包括32 X32位宽的寄存器,并且宽寄存器堆32包括16X512位宽的寄存器。但 是,这只是一个示例,并且可以使用任意数目或具有任何位长的寄存器。
线程52 (图1)之一根据优选地每个线程的程序计数器18来启动指 令获取14。依照指令获取14,来自ICACHE 56的指令被CPU核心50 (图1)解码、排队并分派到指令队列22中。解码后的指令21和相关联
的线程标识符23随后被用于控制主寄存器堆24或宽寄存器堆32中的操作。
根据解码后的指令21,主ALU 26可以针对主寄存器堆24中的数据 或指令产生地址、执行支路解析等。主寄存器堆24中的内容可以经数据 缓存54通过线路30从主存储器115载入,或者可以来自指令队列22。可 替代地,主寄存器可以直接从主存储器115载入。来自主ALU 26的结果 随后被经数据缓存54输出到主存储器115,或者被发送回主寄存器堆24 以进一步处理。
被发送给宽WRS 12的解码后的指令21被用于控制对宽寄存器堆32 中的内容执行的逻辑操作。WRS 12可以一次性将整个宽数据结构31从主 存储器115读到宽寄存器堆32中。宽寄存器缓存35可以可选地被提供用 于缓存来自主存储器115 (图1)的数据。宽ALU 34处理宽寄存器堆32 中的内容,并且随后将结果发送到主存储器115或者发送回宽寄存器堆32 以进一步处理。宽ALU 34包括可以被用于加快特定的分组处理操作(例 如调度)的专用的硬件基元。
数据路径25被提供在主寄存器堆24和宽ALU 34之间。这允许宽 ALU 34将来自WRS 12中的宽寄存器操作的结果发送给主寄存器堆24以 完成可以由主ALU 26高效地处理的某些判决、排列、掩码任务等。数据 路径25还允许主寄存器堆24中的内容(或者其部分内容)被移到宽寄存 器堆32的一部分中。
图2中的不同元件可以针对由图1中的PPE 110操作的每个线程52进 行复制。例如,存在与每个线程52相关联的一个或多个宽寄存器32A-32N。每个宽寄存器32A-32N具有字段33,该字段33包含用于相关联的 线程52的线程标识符。也可以存在针对每个线程52的单独的程序计数器 18、指令队列22、数据缓存54和主寄存器堆24。其它元件(例如 ICACHE 56、主ALU 26、宽ALU 34和宽寄存器缓存35)可以被由同一 PPE 110操作的所有线程52共享。当然,存在可以针对不同的分组处理应 用而变化的设计选择。分组调度
用于调度分组的控制结构可能非常大且复杂。例如,最小速率、最大 速率和过大速率可能与不同的分组流相关联。每个分组可以具有用于确定 分组处理器的操作顺序的这些和其它相关联的参数,例如时间戳、优先级 字段等。每当分组被调度算法所选择时,所有这些状态信息都要被更新。 如果分组处理器使用基于分层树的调度算法,则在每次分组选择之后,这 个控制结构必须针对树结构中的每一层被更新。自然地,这些调度操作是 处理密集型的。
WRS 12可以被配置为高效地处理这些处理密集的调度操作中的一
些。另外,宽寄存器堆32允许调度数据结构中不同的大小不固定的字段 同时从主存储器115被载入相同的宽寄存器堆32中。这样就不需要单独 地顺序将大小不固定的数据载入主寄存器堆24中并且随后将空值填入未 使用的寄存器位中。宽ALU 34随后可以比主ALU 26更快速地对被载入 宽寄存器堆32中的数据结构进行操作。宽ALU 34可以对这些调度任务进 行操作,同时使用主ALU 26并行地执行其它分组处理任务。
还应当注意,包含WRS 12的PPE 110或使用WRS 12进行诸如调度 之类的操作的其它处理器配置可以不同于用于其它主要分组处理的其它 PPE 110。调度PPE IIO或使用WRS 12的其它调度处理器配置可以具有不 同的结构、到主存储器115的不同路径,或者可以使用不同于用于主要分 组处理的PPE 110的主存储器。WRS 12可以与需要宽寄存器操作的主分 组处理器或调度处理器中的任一个结合使用。
硬件基元
图3示出了可以实现在宽ALU 34中以加快调度操作的硬件基元中的 一些的一个示例。宽寄存器堆32中的宽寄存器32A可以加载有调度数据 结构的一部分,该调度数据结构具有与不同类型的调度数据相关联的多个 字段60。在该示例中,每个字段60与存储在分组处理器中的调度队列中 的不同分组相关联。可以存在任意数目N的字段60。字段60中的值被用 在调度算法中以确定接下来由线程52处理哪些分组或者接下来调度哪些
分组以在网络130 (图5)上传送。
在该示例中,字段60分别包括关键字/类型子字段62和时间戳子字段 64。子字段62或64中的值在调度操作期间可能需要被分类以确定进行处 理或从分组处理器输出的下一个分组。关键字子字段62可以标识相关联 的分组的类别。例如,关键字子字段62可以标识高优先级分组,低优先 级分组或针对特定群组的最小速率分组条目等。时间戳子字段64可以与 分组已被排队在分组处理器中的相对时间量相关联。
在该示例中,在关键字字段62中具有最小值的分组可以比具有较大 关键字值的分组具有更高的调度优先级。在时间戳子字段64中具有最小 值的分组可以比在时间戳子字段64中具有较大值的分组具有更高的调度 地位。在该示例中,时间戳子字段64和关键字子字段62中的值的组合被 用于确定进行调度操作的下一个相关联的分组。
宽ALU 34中的逻辑基元65包括识别关键字子字段62中的最小关键 字值的比较器66。另一比较器68识别时间戳子字段64中的最小时间戳 值。控制逻辑70根据从比较器66接收的最小关键字值和从比较器68接收 的最小时间戳值确定字段60之一中的获胜关键字和时间戳的组合。控制 逻辑70经被连接到每个关键字子字段62和时间戳子字段64的多路复用器 72选择获胜的关键字/时间戳对。类似地,控制逻辑70经多路复用器74选 择与被选择的关键字和时间戳值71相关联的索引73。
然后,获胜的关键字和时间戳值71与相关联的索引值73 —起可以由 宽ALU 34发送回宽寄存器堆32以进一步更新或者进行进一步的调度判 决。注意,来自宽ALU34的结果71和73也可以被发送给主寄存器堆24 以进一步处理。这允许可以在主寄存器堆24中由主ALU 26高效处理的特 定操作与WRS 12所执行的宽寄存器操作相互混合。这进而给调度操作增 加了硬件和软件的灵活性。
在一个典型的操作中,主ALU 26和主寄存器堆24被用于寻址存储器 以找到主寄存器堆24和宽寄存器堆32。当主ALU 26和主寄存器堆24是 最佳的存储器寻址操作时,这可能会更加有效。
分类基元65提供存储在宽寄存器32A中的分类数据结构中的分类、
更新等所需要的逻辑功能。宽寄存器32A的较大位长允许所有不同的字段
60和子字段62和64—次性地从主存储器115中更高效地读取。例如,关 键字子字段62中的值可以是5位宽的,而时间戳子字段64中的值可以是 14位宽的。所有这些不同的子字段可以同时被载入宽寄存器32A中,而不 需要每个字段被单独载入例如32位宽的主寄存器堆24中,并且随后被掩 码并移位以适应5位或14位。
当然,这只是一个示例,并且其它逻辑基元65也可以被包括在宽 ALU 34中。例如,宽ALU 34也可以包括移位操作78,其可以被用于加 快对宽寄存器32A中的数据结构中的不同字段的更新。宽ALU 34中的其 它基元可以包括速率更新基元,其根据相关联分组的大小和数据速率来更 新时间戳值。其它插入和提取基元可以被用于从主寄存器堆24中提取任 意边界上的数据并将该数据插入宽寄存器堆32中的不同字段中。例如, 插入和提取基元命令可以包括以下命令
INSERT MainReg 3 =〉 WideReg 2[17:48];
EXTRACT WideReg 7[13:19] =〉 MainReg 12 插入命令将32位主寄存器3的内容载入宽寄存器2中的比特位置17:48 内。提取命令将宽寄存器7中的比特位置13:19的内容载入主寄存器12的 最低七位比特位置中。
如上所述,需要少量计算的操作可以仍由主ALU26来执行。这提供 了改变某些调度操作所必需的灵活性,同时仍然可加快WRS 12中的处理 以用于强力基元操作。宽ALU 34中的硬件基元被优选地设计为普通的, 并且不强加任何处理算法。
例如,在图3的WRS 12中实现的分类基元可以固定用于被分类的每 个条目的类型/关键字子字段62和时间戳子字段64的大小,但是不限定类 型/关键字子字段62的意义或管理时间戳更新的规则。固定时间戳子字段 64的大小只决定了速率准确性、粒度和范围这些不可能随时间有很大改变 的参数。可以使子字段62和64足够大以适应所预期的和将来的使用。
宽寄存器互锁
可能需要防止多个线程同时访问相同的宽寄存器数据结构。例如,分
组处理器不能使两个入队(enqueue)(或者甚至是入队和出队 (dequeue))同时更新相同的调度条目。对于大多数情况,CPU核心50 (图1)对数据结构进行操作所需要的时间很短,并且主存储器115的延
迟很大。因而,也可能需要使得线程能够访问宽寄存器32中先前被另一
线程所使用的数据结构,而不需要等待另一线程将内容载回到主存储器
115中。
WRS 12可以可选地维护互锁系统,互锁系统跟踪主存储器115中的 当前在宽寄存器堆32中被特定线程使用的地址。向主存储器115的宽寄 存器读取可以被"锁定"(放入记分板)或不被锁定(允许多线程读 取)。如果第二线程52试图读取被锁定的地址位置,则向主存储器115 的读取被抑制并且相反地被添加到链路-列表表格中。
当第一线程52写回主存储器地址时,数据可以被直接发送到与第二 等待线程52相关联的宽寄存器32。这可以停止试图读取已被使用的宽寄 存器存储器地址的任何线程,但是一旦第一线程释放该地址,就将使等待 线程得到宽寄存器的更新后的内容。这可以提供比等待主存储器115更短 的延迟,并且允许针对不同CPU核心50的操作并行地进行并且只根据需 要进行阻断。
图4示出了互锁机构如何结合WRS 12使用以进一步提高处理效率。 宽寄存器堆内容可寻址存储器(WRF CAM) 80包含用于主存储器115 (图1)中当前在宽寄存器堆32中被使用的数据的地址。在一种实现方式 中,对于每个宽寄存器32, CAM 80中存在可用的一个条目。如果例如每 个线程有16个宽寄存器,则CAM 80将具有的条目数是线程数的16倍。 当然,这只是一个示例,也可以使用其它配置。
CAM 80中的每个条目存储特定的宽寄存器32可能拥有(锁定)的主 存储器地址。例如,宽寄存器读操作81首先访问CAM 80。如果在CAM 80中没有找到读操作81中的宽寄存器地址,则与读操作81相关联的线程 52将数据返回到与该线程相关联的宽寄存器32。例如,每个宽寄存器32 可具有相关联的线程标识符33 (图2)。从主存储器115读取的内容被存
储在与发起读操作81的线程52相对应的宽寄存器堆32中。
线程52通过将用于读操作81的地址输入到CAM 80中未被使用的条 目来建立锁定数据结构。然后,索引表格84被用于将CAM 80所产生的 命中索引映射到与当前使用该地址的寄存器/线程相关联的链路-列表表格 86中的条目。
更详细地说,第一宽寄存器/线程X可能当前正在访问主存储器115 中的特定地址一l。另一宽寄存器/线程Y可能试图访问主存储器115中的 相同地址—1。第一宽寄存器/线程X先前将地址J输入到CAM80的条目3 中。当寄存器/线程Y试图读取地址—1时,在CAM 80的条目3中发生匹 配。CAM80将命中索引83输出到索引表格84。
索引表格84的输出85指向当前寄存器/线程X所拥有的链路-列表表 格86中的条目91。第二宽寄存器/线程Y将指针PTR—Y输入到链路-列表 表格86中的条目91的下一字段87。指针PTR—Y指向宽寄存器/线程Y所 拥有的链路-列表表格86中的条目93。在完成了对地址—1的处理之后,宽 寄存器/线程X可以改变索引表格84以使命中索引83指向寄存器/线程Y 的链路-列表表格86中的条目93。这表明寄存器/线程Y目前"拥有"存 储器地址一l。 一旦宽寄存器/线程X释放了对地址—1的控制,宽寄存器/线 程Y就可以自由地将宽寄存器X的内容拷贝到宽寄存器Y中。
第三宽寄存器/线程Z可能在寄存器/线程X仍然拥有地址一1时试图访 问相同地址—1 。宽寄存器/线程Z将看到链路-列表表格86中已经被寄存器 /线程条目Y所占据的条目91的下一字段87。因此,宽寄存器/线程Z将 相关联的指针PTR一Z输入条目91的尾字段88中,并且将相同的指针 PTR一Z输入到条目93的下一字段87中。对于访问相同地址—1的每个额外 的宽寄存器/线程,重复上述过程。
使用与表格84和86相映射的第二级索引提供了更快的指针更新,而 无需修改CAM 80中的条目。例如,在宽寄存器/线程X结束使用地址一l 之后,索引表格84中针对命中索引83的指针PTR—X可以被变为指向 PTR—Y。链路-列表表格86目前被更新,将地址—1的所有者变为宽寄存器/ 线程Y,而无需修改CAM80的内容。这提供了更快的互锁更新,因为访
问CAM80相对较慢。
图5示出了实现WRS 12的多线程分组处理器100的一个示例。分组 101被分组处理器100接收,并且通常经多路复用器102存储在全局分组 存储器(GPM) 104中。在接收到分组之后,GPM 104建立相关联的分组 句柄数据结构,并且随后将分组加入到由锁定管理器和重定序器120操作 的流锁定队列中。在接收到来自锁定管理器120的回复之后,GPM 104指 示分发器106将分组101分配到分组处理元件(PPE) 110。
PPE 110通过资源互连108处理GPM 104中的分组。PPE 110也可以 使用第2级(L2)缓存112、动态随机访问存储器(DRAM)控件114和 查找控件116来访问外部存储器115。外部的三重内容可寻址存储器 (TCAM ) 119也可以由PPE 110通过资源互连108和TCAM控制器118 来访问。在一个实施例中,PPE110是多线程的。但是,下面所描述的一 些特征可以用具有或不具有多线程能力的任何普通的处理单元来执行。
PPE 110在它们已经完成了处理分组时通知锁定管理器120。 PPE 110 随后可自由地开始处理其它分组。在被PPE 110处理之后,分组继续留在 GPM 104中,并且可以以离散的不相邻的形式存储在GPM 104中。汇集 机构122负责将分组离散的部分重新汇集和组装在一起。锁定管理器120 与汇集机构122 —起工作来确定被组装的分组123从GPM 104发送的最终 顺序。
在以上示例中,PPE 110可以使用WRS 12执行缓冲、排队和调度操 作中的一些或全部。但是在替代实施例中,缓冲、排队、调度(BQS)存 储器控制器124对分组进行排队、调度和使分组出队,从而使PPE110不 用负担这个耗时的任务。在该替代实施例中,BQS 124可以具有类似于图 1中的上述PPE但不同于用于正常分组处理的分组处理元件110的经修改 的PPE。在另一实施例中,BQS 124可以只具有如上所述采用WRS 12的 一个或多个CPU核心50 (图l)。
外部存储器125被BQS 124用作分组缓冲器,用于存储不同的到达和 主处理操作之间的分组等等。再循环路径132被BQS 124用于将分组重新 循环回GPM 104以由PPE IIO进一步处理。可替代地,WRS 12可以被实
现在BQS 124中。
图1中所示的PPE 110的通用多线程体系结构包括如图2中所示的一 组主通用寄存器和接在主寄存器组的一侧上的专用宽寄存器组12。提供指 令以将正常宽度的数据片段(例如具有任意排列的32位长)移到宽寄存 器和通用寄存器之间。在替代实施例中,BQS 124可以包含利用宽寄存器 组12来执行某些调度任务的一个或多个CPU核心50。
提供了用于对宽寄存器进行专用硬件辅助操作的指令,例如将去往/来 自主存储器115的宽寄存器载入并存储在宽位长单元中的专用存储器访问 指令。注意,整个宽寄存器不一定都被使用。图4中的上述跟踪逻辑可以 被用于指示宽寄存器的哪些部分是"脏的"(修改过的)并且需要被写回 到主存储器115中。
提供对主存储器115的非常宽的访问(例如一次访问16字节或32字 节的缓存线)的存储器系统在很大程度上辅助了宽寄存器组12。对存储器 的并行访问允许多个突出(outstanding)操作。可选地,图2中所示的宽 寄存器缓存35允许更快地获得被频繁访问的宽寄存器位置。这对于高速 调度来说是有用的,因为它们的数据具有较低的延迟,导致用于处理它们 的重复速率较低。
就芯片面积而言,WRS体系结构12使用了分组处理器100的芯片面 积中的很小一部分。其足够小以使得调度子系统可以被结合在很多地方。 最后,因为可以使用廉价/较慢的"体"存储器(例如DRAM),所以对 这种体系结构的可縮放能力的限制很少。只有对基于存储器的延迟和并行 调度可以被使用的程度的性能的限制。
WRS 12可以被用于实现和提高几乎任何调度算法的性能,包括曰 历、分类树、令牌桶、分层排队构架(HQF)、模块化QoS CLI (MQC)、优先级传播等。宽寄存器可以实现用于分层调度器的硬件分类 辅助或用于更传统的基于互联网操作系统(IOS)日历的方法的日历辅 助。可以实现各种其它硬件辅助,例如速率更新。存在很多备用方式来构 建宽寄存器自身以及宽寄存器缓存35。
各种其它硬件辅助,例如控制分组缓冲器的直接存储器访问(DAM)
读/写的能力,使得同一微引擎处理入队/出队过程以及调度过程。宽寄存 器组12的宽度和对它们进行操作的硬件基元的细节可以针对特定的实现 方式进行裁剪。实现方式不必是多线程的,或者多线程可以用各种方式实 现。
上述系统可以使用执行一些或全部操作的专用处理器系统、微控制 器、可编程逻辑器件或微处理器。上述操作中的一些可以用软件来实现, 并且其它操作可以用硬件来实现。
为了方便,操作被描述为各个互相连接的功能块或者不同的软件模 块。但是,这不是必需的,并且可能存在这些功能块或模块被等同地汇集 到没有清楚边界的单一逻辑器件、程序或操作中的情形。在任何情况下, 灵活接口的功能块和软件模块或特征都可以在硬件或软件中由其自身实现 或者结合其它操作来实现。
己经在本发明的优选实施例中描述并示出了本发明的原理,应当清楚 在不脱离这些原理的情况下,可以在布置和细节方面修改本发明。申请人 要求所有的修改和改变都落在所附权利要求书的精神和范围内。
权利要求
1.一种宽寄存器处理单元,包括宽寄存器组,所述宽寄存器组被配置为响应于指令并且包含具有比主寄存器组中所支持的位长更宽的位长的数据;以及宽处理单元,所述宽处理单元被配置为对所述宽寄存器组中的内容执行逻辑操作,并且与用于处理所述主寄存器组中的内容的主处理单元相独立地操作。
2. 根据权利要求1所述的处理单元,包括指令队列,该指令队列选择性地将解码后的指令发送给所述宽寄存器组和所述主寄存器组。
3. 根据权利要求1所述的处理单元,其中所述宽寄存器组包括具有 不同的相关联的线程标识符的各个宽寄存器。
4. 根据权利要求1所述的处理单元,其中来自所述主寄存器组的输 出被耦合到所述主处理单元和所述宽处理单元,并且所述宽处理单元的输 出被耦合到所述主寄存器组和所述宽寄存器组。
5. 根据权利要求4所述的处理单元,包括被耦合在主存储器和所述 宽寄存器组之间的宽寄存器缓存。
6. 根据权利要求1所述的处理单元,包括中央处理核心,该中央处 理核心通过多个不同的线程控制所述主寄存器组和所述宽寄存器组。
7. 根据权利要求1所述的处理单元,其中所述宽寄存器组中的宽寄 存器包括多个字段,这些字段包含与不同的相关联分组相关联的值。
8. 根据权利要求7所述的处理单元,其中所述多个字段各自包含子 字段,这些子字段用来存储用于执行分组调度操作的分组标识符和分组时 间戳。
9. 根据权利要求8所述的处理单元,其中所述宽处理单元包括逻辑 处理元件,这些逻辑处理元件并行地操作以对所述子字段中的分组标识符 和分组时间戳分类。
10. 根据权利要求1所述的处理单元,包括互锁机构,该互锁机构提 供对不同线程和相关联的宽寄存器所使用的相同存储器位置的有序的排他 访问。
11. 根据权利要求IO所述的处理单元,其中所述互锁机构包括内容可寻址存储器(CAM),该内容可寻址存储器包含当前正被所述线程和所述相关联的宽寄存器访问的地址。
12. —种用于在分组处理器中执行宽寄存器堆操作的方法,包括 向主寄存器组发送与第一组主逻辑操作相关联的指令,以使用主逻辑单元处理数据;以及向宽寄存器组发送与第二组宽位长的逻辑操作相关联的指令,以使用 宽逻辑单元进行处理。
13. 根据权利要求12所述的方法,包括与所述指令一起发送线程标识符以标识所述宽寄存器组中的特定寄存器。
14. 根据权利要求12所述的方法,包括利用所述宽逻辑单元并行地 处理所述宽寄存器中的不同字段。
15. 根据权利要求12所述的方法,使用宽寄存器缓存来存储被所述 宽寄存器组或所述宽逻辑单元访问的数据。
16. 根据权利要求12所述的方法,包括 标识第一线程和第一相关联的宽寄存器当前使用的地址; 禁止所有其它线程使用相同的地址;以及在所述第一线程完成了对所述相关联的第一宽寄存器中的内容的处理 之后,允许其它线程和其它相关联的宽寄存器访问所述地址。
17. 根据权利要求16所述的方法,包括使用链接-列表表格来标识等 待访问所述相同地址的多个线程,并且在当前线程完成了对所述相同地址 的访问之后更新所述链接-列表表格以指向所述等待线程中的下一个线程。
18. 根据权利要求12所述的方法,包括 操作分组处理元件中的多个线程以处理分组; 执行调度所述分组的处理和输出的调度操作;向所述宽寄存器组发送与所述调度操作相关联的指令和数据;以及 将来自所述宽寄存器组的结果发送到所述主寄存器组以完成所述调度 操作。
19. 一种网络处理设备,包括操作处理分组的一个或多个线程的一个或多个处理元件;被所述线程用来对所述分组执行主要的逻辑操作的主寄存器组和主算 术单元;以及具有比所述主寄存器组更宽的位长的宽寄存器组和用于对包含在所述 宽寄存器组中的数据执行第二组操作的宽算术单元。
20. 根据权利要求19所述的网络处理设备,包括使用所述宽寄存器组和所述宽算术单元来执行用于确定接下来由所述网络处理设备处理或传 送哪些分组的调度操作。
21. 根据权利要求19所述的网络处理设备,包括互锁机构,该互锁机构控制不同线程对与所述宽寄存器组中的数据相关联的相同地址的访 问。
22. —种用于在分组处理器中执行宽寄存器堆操作的系统,包括用于向主寄存器组发送与第一组主逻辑操作相关联的指令以使用主逻辑单元处理数据的装置;以及用于向宽寄存器组发送与第二组宽位长的逻辑操作相关联的指令以使 用宽逻辑单元进行处理的装置。
23. 根据权利要求22所述的系统,包括用于标识第一线程和第一相关联的宽寄存器当前使用的地址的装置; 用于禁止所有其它线程使用相同地址的装置;以及 用于在所述第一线程完成了对所述相关联的第一宽寄存器中的内容的 处理之后允许其它线程和其它相关联的宽寄存器访问所述地址的装置。
全文摘要
宽寄存器组(WRS)被用在分组处理器中以提高某些分组处理操作的性能。WRS中的寄存器具有比用于主要的分组处理操作的主寄存器更宽的位长。宽逻辑单元被配置为对宽寄存器组执行逻辑操作,并且在一种实现方式中,包括专门配置用于分组调度操作的硬件基元。专用的互锁机构被额外用于协调多个处理器或线程对相同的宽寄存器地址位置的访问。WRS产生比以前的硬件解决方案廉价得多并且具有比以前的软件解决方案更好的性能的调度引擎。WRS提供小型、紧凑、灵活和可缩放的调度子系统,并且通过使用较廉价的存储器同时与其它使用共享存储器可以忍受较长的存储器延迟。结果得到了一种基于期望的调度需求的新的分组处理体系结构,其具有很宽范围的成本/性能点。
文档编号G06F15/00GK101194245SQ200680004055
公开日2008年6月4日 申请日期2006年2月14日 优先权日2005年3月2日
发明者厄尔·T·科亨 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1