Ich begebe mich vermutlich auf's Glatteis, aber ich hoffe, größtenteils richtige Antworten zu geben. Das Thema ist ziemlich komplex.
Zunächst muss man zwischen Befehls- und Datencache unterscheiden. Im Befehlscache landet das auszuführende Programm, im Datencache die Daten, mit denen das Programm arbeiten soll.
Der Datencache ist relativ simpel. Da ist alles drin, womit das Programm gerade arbeitet. Fehlt etwas, werden Daten aus dem RAM nachgeladen. Oft ist es dabei so, dass mehr als eigentlich gerade benötigt wird, kopiert wird. Der Grund liegt darin, dass die "überflüssigen" Daten in einem der nächsten Programmschritte wichtig sein könnten (d. h. es gibt eine gewisse Wahrscheinlichkeit dafür).
Der Befehlscache ist etwas anders organisiert. Hier wirken Compiler-Optimierungen. Programme werden dadurch teils so "verpackt", dass zusammengehörige Funktionseinheiten zusammen in den Cache passen. Das macht die .exe zwar größer, weil Funktionen eventuell mehrfach vorhanden sind, beschleunigt aber die Ausführung, da die CPU weniger oft Zeugs aus der .exe nachladen muss.
Weiterhin gibt es da noch die Pipeline und die Sprungvorhersage. Die Pipeline beinhaltet die nächsten Programmschritte, die auszuführen sind. Stell dir das wie ein Fließband vor. Je nachdem, wie ein Programm arbeitet (Schleifen, Verzweigungen; beides wird durch Sprünge innerhalb des Programmcodes dargestellt), kann es passieren, dass der Inhalt der Pipeline ungültig wird, da jetzt etwas ganz Anderes zu verarbeiten ist. Die Pipeline muss dann aus dem Befehlscache neu gefüttert werden. Es gibt einen intelligenten Algorithmus in der CPU, die das Verwerfen und Neubeladen steuert: Die Sprungvorhersage. Die Compiler optimieren die Programme so, dass die Sprungvorhersage effektiver das Verhalten des Programms erkennen und Daten aus dem Cache rechtzeitig in die Pipeline kopieren kann.
Du siehst, das Thema ist nicht ganz so einfach. Offenbar haben die Wissenschaftler aus der News an der Firmware einer CPU geschraubt, sodass die Caches öfter die richtigen Daten parat halten, als es bisher der Fall war.
Softwareentwickler müssen eigentlich nicht viel tun, außer die Compiler an die veränderte Firmware anpassen.
Aber wie schon geschrieben wurde, wird hier eine ziemlich spezielle Architektur verwendet. Man muss erst mal schauen, ob man die Forschungsergebnisse auf x86-kompatible CPUs übertragen kann.