Multi-core processors and network

  Multi-core architecture is increasingly common, this paper focuses on the multi-core network processor with the relationship. Broadly speaking, the high-end network processors typically have multiple micro-engine ME, can also be seen as a multi-core architecture, but in high-end network processor architecture is rather special, not the usual X86, ARM, MIPS, ARC, and so on.

  Currently, there are as ARC based on a common architecture, high-end network processor, performance can achieve duplex 400Gbps. It is a multi-core multi-threaded. 16 (clusters) * 16 (cores) * 16 (hardware threads)

  NP resources:

    1.16 clusters, clusters each with 16 cores, 16 threads per core. That is a total of 256 cores, 4096 Ge hw threads

    CMEM memory & data cache 2.16KB program for CTOP

    3.16MB IMEM (internal memory) for storing code, look-up tables, data, stored messages, etc.

    4.48G DDR3

    5.2 * 128 PMU queues of jobs (sub-network, the exchange side)

  Each core feature

    1.7 water, each thread has its own set of RF (0-31), and other shared unit ALU

    2. The instruction cache, data cache

    3. Other MMU, Timer, Interrupt Controller, etc.

  Multithreading the Feature , each core is multi-threaded, multi-threaded actually time share through multi-threaded hidden large delay operations such as table lookup:

    1. Support four outstanding transactions, run parallel to support multiple transactions

     Such as: copy and find packet header table simultaneously. When the switch two actions are completed time of execution threads.

    2. Thread the switch as long as there is a cycle

    3. To provide synchronization api, after performing a long opeartion performs explicit thread switch

    4 also asynchronous api

       Thread scheduling

    Each core is equipped with a MTM (multi-threaded Manager). MTM is responsible for managing job status, managing context switching, MTM is the decision to switch performs the actual switching instruction is CTOP carried out. MTM is responsible for switching threads to disable / halt / cold / warm state. CTOP thread switching from "warm", "hot" to "hot", "cold".

    MTM assign a new entry in the active transaction scoreboadrd for a new job request.

    MTM sends a request to MSU (msu a cluster level), MSU response jobid.

    MTM save jobid

    MTM will be eligible thread marked cold

    CTOP request thread execution

    MTM warm state is scheduled thread

    CTOP handover execution threads (thread scheduling instructions provided CTOP)

 

       

Guess you like

Origin www.cnblogs.com/keenxu/p/10923313.html