You (originally) asked how we identify the algorithm, and I would like to suggest that the focus of functionalism in general, and computational theory of mind (CTM) in particular, are functions, not algorithms; here is an excerpt from the SEP essay on Functionalism:
Functionalism in the philosophy of mind is the doctrine that what makes something a mental state of a particular type does not depend on its internal constitution, but rather on the way it functions, or the role it plays, in the system of which it is a part.
Now, I would like to go over some definitions corresponding to computation; here is how Peter Smith defines the Church-Turing thesis in his book An Introduction to Godel's Theorems, (p. 315):
The Church–Turing Thesis: The effectively computable total numerical functions are the μ-recursive/Turing-computable functions.
and the class of effectively computable functions (p. 15) (note that effectively does not mean efficiently):
A one-place total function f : Δ → Γ is effectively computable iff
there is an algorithm which can be used to calculate, in a finite
number of steps, the value of the function for any given input from
the domain Δ.
and finally, his definition for an algorithm (p. 14):
An algorithm is a set of step-by-step instructions (instructions which are pinned down in advance of their execution), with each small step clearly specified in every detail (leaving no room for doubt as to what does and what doesn’t count as executing the step, and leaving no room for chance). The idea, then, is that executing an algorithm (i) involves an entirely determinate sequence of discrete step-by-small-step procedures (where each small step is readily executable by a very limited calculating agent or machine). (ii) There isn’t any room left for the exercise of imagination or intuition or fallible human judgement. Further, in order to execute the algorithm, (iii) we don’t have to resort to outside ‘oracles’ (i.e. independent sources of information), and (iv) we don’t have to resort to random methods (coin tosses).
So, the main point of an algorithm is that it is can be specified in terms of steps that are small enough or so called mechanical; sometimes an algorithm is specified in very abstract terms (for example pseudo code in CS books) but under the assumption that in principle each abstract step can be specified in small enough steps if we bother to fill in the gaps.
therefore, and in response to your question about hardware vs. software level of abstractions, I think it doesn't really matter what is going on at these levels, as long as we understand that in principle, there is a level in there that satisfied the criterion for an algorithm. for example, a high level language, may be too abstract to count as a specification of an algorithm in the above sense, and the hardware level may also fail to satisfy our requirement since it relies on occult quantum mechanical phenomena, but the level of machine language, somewhere in between, is probably good enough.
Now, back to functions: it seems that functionalists believe that the mind can be explained in terms of functions and that according to CTM, these functions are effectively computable.
For example, In Absent Qualia, Fading Qualia, Dancing Qualia, Chalmers advocates a principle he calls the principle of organizational invariance, which involves such concepts as the functional organization of the brain and functional isomorphs; he acknowledges your concern that a system may be analyzed at different levels of organization and writes that:
any system that has the same functional organization at a fine enough grain will have qualitatively identical conscious experiences.
and by fine enough he means:
fine enough to determine the behavioral capacities and dispositions of a cognitive system.
Shameless plug: I raise some objections to his arguments in http://philpapers.org/archive/AIDYAO.pdf - comments would be appreciated.
Note that the particular algorithms to compute these functions are practically irrelevant.
As for Yudkowski's belief in mind uploading, that belief is quite common among functionalists. A lot of people, including Chalmers, Marvin Minsky, and Google's Ray Kurzweil, believe that.