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)