POW unit是提供一下重要功能的处理器。
Work Queueing
Work是在work-queue entry中描述的,而它不是由hardware unit产生就是有core software产生。CN58XX集成了数据包输入硬件创建a work-queue entry并且为每个到达的数据包submints work..coresoftware 能够船舰work-queue entries并且subnit work sa desired.CN58的PKO,PCI,TIM,DFA硬件单元也能够在完成操作和指令后submit core software创建的work-queue entries。
POW implements8个input work-queue.不同的work-queues能够应用到不同级别的服务。The POW hardware implements static and weighte-dround-robin priorities programmably on a core-by-core basis.
Input work-queue在必要时可以大于DRAM甚至无穷大。
Work Scheduling / Descheduling
Core software从POW请求work。POW为core选择work并且返回一个只想work-queue entries的指针来像core描述这个work。这为cores和coherent memory bus减轻了不少的压力。
在POW硬件支持group时所有work并不是equal的了。每个work都有一个相关的group identifier。A configuration variable for each core specifies the groups that the associated core will accept when it requests work.这个configuration variable 是一个16比特的bitmask,每个group一个bit,这样就能组合所有的groups。如果core不accept与该work相关的group,POW不会schedule a piece of this work 。
即使所有的core都用同样的POW,但是group能够提供一种方法在不同的core上实现不同的功能。例如,包处理可以pipelined from one group of cores to another group of cores,让first group完成第一阶段的工作,下一个group完成下阶段的工作。
A core能够deschedule一个work。当core deschedule当前运行的程序时,POW会稍后reschedule 它。The POW hardware reschedules previously descheduled work at higher priority than it schedules new work from an input queue. Deschedule can be useful in a number of circumstances:
● It can transfer work from one core group to another. This is one mechanism to implement “work pipelining”