From LinuxMIPS
Jump to navigationJump to search

The MIPS 34K is a member of MIPS' family of MIPS32 processors. It is the first MIPS processor supporting multithreaded execution according to the MT ASE specification.

Linux support

Linux implements several code models based on the MT ASE which can be choosen at kernel configuration time:


or Virtual SMP uses the processor's VPEs to implement virtual processors. In currently available configurations of the 34K processor this allows for a dual processor. Both processors will share the same primary caches and each will obtain the half of the TLB for its own exclusive use. For a layman this model can be described as similar to what Intel calls Hyperthreading. At some point MIPS marketing decided to renamed to SMVP but the renaming hasn't caught on as of yet.


is presenting the available TCs of the core as processors to Linux. On currently available 34K processors this means a Linux system will see up to 5 processors. The implementation of the SMTC kernel differs significantly from VSMP. It was found that SMTC cannot efficiently coexist in the same kernel binary with other modes of multiprocessor support, so enabling SMTC is a compile time decision. The choice between VSMP and SMTC is a bit delicate as it is affected by clockspeed, memory speed, the specific workload and other factors. As such the choice should not be made on an evaluation board such as the Malta but preferably on the final target hardware.Kevin Kissel's presentation[1] provides further details.


is based on a normal Linux uniprocessor kernel. Instead of presenting additional VPEs as processors to the kernel it allows loading of an application program built with MIPS SDE into kernel space where this application will run on a secondary VPE undisturbed by the Linux kernel.

Support for all three code models is available in linux-2.6.16-stable branch of linux-mips.org's git repository and kernel.org kernels 2.6.17 and newer.