多核与网络处理器

  多核架构越来越普遍,本文主要介绍的是网络处理器跟多核的关系。广义上讲,中高端的网络处理器一般都有多个微引擎ME,也可以看作为多核的架构,只不过中、高端的网络处理器的架构是比较特殊的,不是通常的X86、ARM、MIPS、ARC等等。

  目前也有基于通用如ARC架构的高端网络处理器,性能能达到双工400Gbps。是多核多线程的实现。16(clusters)*16(cores)*16(hardware threads)

  NP资源:

    1.16个clusters,每个clusters有16个cores,每个core有16线程。即总共有256个cores,4096个hw threads

    2.16KB的CMEM memory & data cache用于CTOP程序

    3.16MB IMEM(internal memory)用于存放code,查找表,data,存放报文等

    4.48G DDR3

    5.2*128个PMU queues of jobs(分网络侧、交换侧)

  每个核feature

    1.7级流水,每个线程有各自的一套RF(0-31),共享ALU等单元

    2.指令cache、数据cache

    3.其它MMU、Timer、中断控制器等

  多线程feature,每个核是多线程的,多线程实际是time share的,通过多线程隐藏了大延时的操作如查表等:

    1.支持4个outstanding transactions,支持并行run多个事务

     如:报文头的copy和表的查找同时进行。当两个动作都完成的时间执行线程的切换。

    2.线程的切换只要有1个cycle

    3.提供同步api,执行一个long opeartion后会执行显式的线程切换

    4.也有异步api

       线程的调度

    每个核都配备一个MTM(多线程管理器)。MTM负责管理job的状态,管理上下文的切换,MTM是进行切换的决策,实际的切换指令的执行是CTOP进行的。MTM负责切换线程到disable/halt/cold/warm状态。CTOP切换thread从"warm"、"hot" to "hot" 、"cold"。

    MTM为新的job request在active transaction scoreboadrd中分配一个新的entry。

    MTM发送请求to MSU(msu是cluster级的),MSU响应jobid。

    MTM保存jobid

    MTM将有资格的线程标记成cold

    CTOP请求线程执行

    MTM调度thread为warm状态

    CTOP切换执行线程 (CTOP提供线程调度的指令)

       

猜你喜欢

转载自www.cnblogs.com/keenxu/p/10923313.html
今日推荐