The 603 is a model of PowerPC processor under the AIM alliance (Apple/IBM/Motorola). The 603 was not known for having impressive performance and the processor appears to have been mostly used for low-cost or portable applications.
The 603e improves performance over the 603 with the expansion and enhancement of the L1 cache. Clock speeds of the 603e typically reached 200MHz.
The 603ev is an improved version of the 603e and allowed for clock speeds up to 300MHz.
Unlike the PowerPC 601, which has a unified cache, the PowerPC 603 has separate caches for instructions and data. This can lead to cache coherency problems in applications that mix code and data. In the Macintosh Operating System, the Code Fragment Manager loads almost all native code to ensure that the code is suitable for execution. If your code is loaded by the Code Fragment Manager, you don’t have to worry about cache coherency. If, however, your application generates code in memory for execution, problems can arise. Examples include compilers that generate code for immediate execution and interpreters that translate code in memory for execution. For such cases, you can use the call MakeDataExecutable to notify the Macintosh Operating System that data is subject to execution. This call is defined in OSUtils.h.