The hardware-based distribution of the interrupts, described above, is referred to as "receive-side scaling" (RSS). Purely software implementations also exist, such as the receive packet steering (RPS) and receive flow steering (RFS). Further performance improvements can be achieved by routing the interrupt requests to the CPUs or cores executing the applications that are the ultimate destinations for network packets that generated the interrupts. This technique improves Locality of reference and results in higher overall performance, reduced latency and better hardware utilization because of the higher utilization of CPU caches and fewer required context switches. Examples of such implementations are the RFS and Intel "Flow Director".