Find the answer to your Linux question:
Results 1 to 3 of 3

Thread: microcode ?

Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1

    microcode ?

    I have been reading about microcode updating / revision for an intel cpu processsor

    I never had to do this just bios revision to give my bios a few extra features. ( some of these features allow you to have new int commands to use ....)

    I am curious if I do this on one of my old computers will this update just take care of bugs in the cpu like foof bug ...etc

    Or can this beable to allow you more asm instructions to use.
    ( I am think that it can if a bios revision can allow you new functions maybe a cpu revision can allow you new asm commands)

    Like can it give you say SSE4 , or 5 instructions on a pentium 4 with SSE 3.

    I hope you are understanding what I am wondering about.
    If a processor microcode update can ever give you add asm instructions to use. Or is it just to improve a processor's known flaw or performance issue's with processor pipelineing ... etc

    Can it change the way protected mode works thru the GDT or LDT priviliage... i.e how the processor physically works to check permissions to data segments ,...etc

    Basically I am not sure the extent of what revisioning processor microcode can do on an x86 or x64 processor?
    How much control can it modify in the cpu, can it allow you to emulate x64 instructions on a 32bit machine. (or maybe you can only do it with virtual software)
    Can it change the way the cpu operates in different modes like real , protected mode , vm mode , system mangement mode, long mode for x64....etc (maybe provide an extra mode )
    Can it allow you to change the processors way of pipelineing instructions , speed of access of cache (or how it access it algorithm used)

    Has anybody out their done anything with this stuff and know the extent of what microcode code do?
    Last edited by sam111; 03-02-2012 at 07:51 AM.

  2. #2
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    I can be found either 40 miles west of Chicago, in Chicago, or in a galaxy far, far away.
    The microcode is not asm code per se. It is very low-level machine code that is used to control the operations of the CPU. It would only be changed in order to fix some significant bug in the processor implementation, such as the old floating point divide problem that was in an early pentium processor. See this wikipedia article for more information about that issue: Pentium FDIV bug - Wikipedia, the free encyclopedia

    However, a lot of such problems require replacing the CPU, and cannot be repaired by updating the microcode. In fact, most microprocessors cannot have their microcode updated because it is part of the chip's mask. Some minicomputers had updateable microcode because it was stored in a ROM or EPROM apart from the processor chip itself. In any case, it is unlikely that you will ever have to update the microcode of a current generation processor.

    That said, it is NOT uncommon to update the BIOS which is currently stored in flash memory. However, bear in mind that BIOS/FLASH instructions, while important, ARE NOT the CPU's microcode. Here is the wikipedia article on that: Microcode - Wikipedia, the free encyclopedia
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  3. #3
    I know this by reading.
    I just was wondering to what extent microcode could modify the processor.

    For example , the hardware / circuits that are built in to the processor cann't be modified unless you physically create a new chip/ fabricate a new chip.

    Microcode runs on top of the circuits and cann't modify physical circuits but it could modify what pulses go down what circuits ,...etc

    I am curious to know what is hard wired that cann't be changed with any microcode.
    And what can be changed with microcode?

    For example is it possible to add new instructions to a processor by changing/updateing its microcode?
    Can the way segment selectors work with different processor modes be changed by microcode ?
    Can the way cache L1, L2 ,L3 ,...etc work be changed by microcode ?
    If updating microcode fix bugs what type of bugs can it fix just instructions or timing,pipelineing , ... ?

    Question 2
    Who has the ability to create valid microcode updates for a cpu? Just the manufacturers like intel , amd , mips guys , arm ,...etc cpu makers.
    Or is their a way that anybody can down load an IDE and develop microcode that they can install using an int 15 with a cpuid with wrmsr/rdmsr ,...etc to check things out/write microcode...
    Has anybody out their had any experience with this stuff because I feel like the answer I got was just stuff I could find online or knew anyway.

    Quote: we cannot changed with software the configuration of circuits and wires to day (only the pulses down them) but some day programmable matter may break this barrior .

    Then you see software is not limited to just hardware ability and the oppisite can occur.
    Simple their is no limits just the limit that math/logic/proof implies under a given set of axioms/rules.

    Now that I think about it SSE versions could only theoratically be updated with microcode if the registers exist xmms registers exist (well at least in todays way goes) cann't create hardware from software yet.

    But I am still wondering about the extent of microcode and weather somebody could develop his own with vaild checksums ,...etc
    Last edited by sam111; 03-04-2012 at 02:25 AM.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts