Python Interpreter question.

Tim Roberts timr at probo.com
Thu Sep 9 08:28:45 CEST 2004


"Terry Reedy" <tjreedy at udel.edu> wrote:
>
>Would you be shocked to also learn that humanly programmed languages are 
>generally not compiled to actual machine code, but, as I understand it, to 
>multibyte code which invokes subroutines written in actual machine code, 
>which is usually called microcode.  One can, I believe, think of Pentiums 
>and Athlons, for instance, as hardware interpreters or emulators of what is 
>now mostly the virtual 386 machine (plus extensions).  Intel and AMD can 
>change the real machine code as they please as long as they properly 
>emulate the 386, as seen from the programmer view.  Whether the 386 machine 
>was ever a real machine or whether it was also microcoded, I do not know.

This has changed over time.  The 386, 486, and Pentium are partly
microcoded.  The complicated instructions are in microcode, but the most
common instructions are hardwired.  This results in many non-intuitive
situations in which a single, complicated instruction would take longer
than a sequence of two or three simpler instructions.

Starting with the PentiumPro, all instructions are chopped into
"micro-operations", the pieces of which can be executed out of order.  This
renders instruction timing practically impossible...
-- 
- Tim Roberts, timr at probo.com
  Providenza & Boekelheide, Inc.



More information about the Python-list mailing list