# Does linux use proccesor drivers

## Gankfest

Ok I've been fixing computers for a long time now, and have never known of a cpu driver until today... Maybe. I'm still skeptical and wanted to ask the true online gangsters Gentoo users who own hardcore. Are there really processor drivers for linux and what do they do.

----------

## didymos

Where did you hear about this and in what context? Things like microcode updation, power settings, or frequency scaling could be considered processor drivers.  I think AMD uses that terminology, but I'm not sure.  Never had an AMD CPU.

----------

## gerard27

Hi paradox,

What hardware would be running a cpu driver?

All drivers are run by the cpu!

An exception might be DMA but i'm not sure.

Microcode is part of some Intel processors.

I have microcode_ctl in my "boot runlevel"

This installs code into the processor,don't ask me where.

(I have a core2duo processor.)

But it is not a driver.

I think you could consider the kernel as a cpu driver.

Interesting question though.

Gerard.

----------

## Gankfest

The question came up, when I was helping someone on an AMD forum and he asked if he should update his cpu driver. I've never heard of a cpu driver before, so me and my friend argued about it for awhile. The questions wasn't pertaining to AMD , just processors drivers in general. Thanx for the replies!

----------

## Cyker

It depends what you mean by processor driver.

All operating systems down to DOS will Just Work on modern CPUs because all x86 CPUs implement the whole x86 architecture right down to the original 8086.

However, in order to take advantage of stuff like multiple pipelines, newer instructions, newer operating modes, the OS will need to 'know' about that stuff and been coded to take advantage of it. That could be described as the driver in abroad sense.

This is partially the case with SSE in older OS, where the extra functional unit only worked properly on multi-tasking OS' which supported it, otherwise the registers would not get saved during context switches.

IIRC, you can use it in DOS, if you're l33t enough with ASM, but you can't use in Win3.1-Win95, possibly Win98. I know Win98SE and up supports it 'tho.

This was one of the big plusses of MMX and 3DNow! over SSE back then - They used the FPU, so didn't need any special support, just a competent programmer  :Wink: 

This is another handy strength of Linux' open nature - The kernel devs just added support to the scheduler and boom, instant SSE support.

Regarding actual drivers, the only things I can think of that someone would realistically think of as a CPU driver are Windows things:

- Hot-pluggable CPUs, which do have a 'driver' of sorts to allow the hot-plugging to be done safely.

-CPU microcode updates (Essentially volatile CPU updates which have to be loaded each boot, or into the CMOS somewhere)

- PowerNow!/SpeedStep - AMD and Intel have 'drivers' for their CPUs to allow CnQ/PowerNow! and SpeedStep respectively to work properly. In Windows >2k, SpeedStep is built into the OS, but the AMD CnQ CPU driver is still needed for it to work properly AFAIK, ESPESCIALLY on dual-core systems, because weird timer problems can arise otherwise (A certain tsc skew error which several of us have experienced here I believe...)

Editeditedit:

Aha, here's the page I was thinking of: http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871,00.html

Just pick a CPU, and down the bottom there there will be some 'drivers', at least for Windows. Also, I was wrong about it fixing the tsc skew, there's another 'driver', or 'optimizer' for that.  :Razz: Last edited by Cyker on Tue Nov 27, 2007 9:15 pm; edited 2 times in total

----------

## John R. Graham

 *Cyker wrote:*   

> All operating systems down to DOS will Just Work on modern CPUs because all x86 CPUs implement the whole x86 architecture right down to the original 8086.

 Well, not exactly.  The original 8086 was a 16-bit CPU that didn't have a MMU and thus wassn't capable of running virtual memory OSs like Linux.  The first fully modern x86 was the 80386 and time is leaving it behind as well:  the latest glibc in the tree now requires features that first appeared in the 80486.

- John

----------

## Cyker

 *john_r_graham wrote:*   

>  *Cyker wrote:*   All operating systems down to DOS will Just Work on modern CPUs because all x86 CPUs implement the whole x86 architecture right down to the original 8086. Well, not exactly.  The original 8086 was a 16-bit CPU that didn't have a MMU and thus wassn't capable of running virtual memory OSs like Linux.  The first fully modern x86 was the 80386 and time is leaving it behind as well:  the latest glibc in the tree now requires features that first appeared in the 80486.
> 
> - John

 

Yeah, sorry, I'm not sure where I was going with that completely wrong paragraph... I put all the blame on sleep deprivation!  :Razz: 

----------

## John R. Graham

No problem.  That one hit pretty close to my own experience.  I still have the original 8086 data book from Intel, marked preliminary and dated 1979, on my bookshelf, old fogy that I am.   :Razz: 

-  John

----------

## timeBandit

 *john_r_graham wrote:*   

> No problem.  That one hit pretty close to my own experience.  I still have the original 8086 data book from Intel, marked preliminary and dated 1979, on my bookshelf, old fogy that I am.  

 

Holy hoary hardware, Batman!   :Shocked:   :Shocked: 

I thought I was the last dinosaur hanging on to a copy of that musty old thing...though mine is a final edition from around 1986 or so. Don't know why I keep it, it's not like anyone's going to ask the village elder to recount the legend of SCASB or the mystic lore of "based indexed plus displacement" addressing mode....   :Smile: 

Jeez I'm old. How fitting that this is my 1000th post.  :Neutral: 

----------

## John R. Graham

Congratz, Veteran.    :Very Happy: 

- John

----------

## timeBandit

 *john_r_graham wrote:*   

> Congratz, Veteran.   

 Hehe ... thanks. I  updated my avatar in honor of the milestone.  :Very Happy: 

----------

## Cyker

Avast! To the Bean and Bacon Megarocket my commie amigas! We must learn the secrets of REAL MODE (!!) from these dinos-^W-great, wise and beardy hackers!  :Mr. Green: 

----------

## saellaven

8086? I've got the "intel 8080/8085 Assembly Language Programming" manual. Complete with a code example for "software multiple and divide" using "repetitive addition or register shifting operations." What, you expected a MUL instruction on your CPU?

----------

## gerard27

@cyker,

http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871,00.html

Those are chipset drivers.

The chipset is a piece of hardware separate from the processor proper and 

it takes care of communication between the processor and the rest.

Like disk i/o pci etc.

Gerard.

----------

