In order to understand the question, imagine a simple situation. Alice tells Bob that her CPU's frequency is X Hz. Bob does not take her word for it. Bob can not meet with Alice and check what frequency her processor really has. Can Bob send her a soft program that accurately determines the frequency of Alice's CPU? Is such a program possible or not in principle?
In these days of superscalar, multicore, virtualisation, power scaling, managed operating systems, and so on, what does "CPU frequency" even mean?
Note that it may be possible for Alice to convince Bob that she has compute power capable of performing X operations of a known type in a given time, as you find in a proof-of-work system. If it is a problem for which parallel algorithms are believed not to be feasible, he may be convinced that it happened on a single compute device, and not (say) a cloud or cluster.
But for all Bob knows, Alice may have an asynchronous device which doesn't even have a clock speed.
In certain very specific situations, you might be able to use software-based attestation. See, e.g., the following seminal paper:
- Pioneer: Verifying Code Integrity and Enforcing Untampered Code Execution on Legacy Systems. Arvind Seshadri, Mark Luk, Adrian Perrig, Leendert van Doorn, and Pradeep Khosla. Originally in SOSP 2005.
Roughly speaking, it tries to prove that Alice's processor is at least as fast as claimed (but the actual guarantees are more interesting and the properties and assumptions are more complex). Read the paper for details to see if it is what you are looking for.