How to program an intel CPU

Ola.

I would like to ask to people with some notion over it, at very high level terms, how intel CPUs programming works.

One easily can find slides with assembler for x086 processor. But does modern Intel CPUs works the same way? Can I to plug a cpu in a breadbord or have to use a special socket? Other hardware is needed?

Looking at the RS catalogue one can find some intel cpu, a part of the Atom line in a so called FCBGA8 package (437 pin!).

Just my little curiosity :slight_smile:

Saludos.

Marco.
Marco

Theoretically you could insert them in a breadboard but it will not be very usefull. Plus you would need a breadboard with very small spacing :wink:
The x86 based CPU's are so complicated that programming them the way we do with Arduino is not going to work.
You need loads of RAM and storage memory to be able to do things the way you want to.

One easily can find slides with assembler for x086 processor. But does modern Intel CPUs works the same way?

Yes, basically. Modern CPUs have a bunch of added instructions and modes and memory management and stuff, but you can write program pretty much the same way you did back on the original IBM PC. In fact, I've done it recently. Most PC boards even emulate most of the ancient hardware.

Can I to plug a cpu in a breadbord or have to use a special socket? Other hardware is needed?

Most desktop-class CPU chips requires a set of three chips. The CPU itself, a "Northbridge" chip that is essentially a memory bus controller, and a "Southbridge" chip that does most of the standard IO. These days each of these has a couple hundred pins, so it's a bit past most "breadboard" capabilities.

I don't know that anyone has recently tried to build a minimalist x86 system with a full-scale CPU. No one seems very interested in running a 2GHz CPU at a couple MHz with tiny memory, given that you can buy an OTS product that does a lot more for $100...

It does look like there are still older smaller versions of x86 CPUs being made and sold. Digikey has an Intersil 80c88 and a bunch of 80186-class chips listed.

There is some speculation that with the original x86 instruction set patents expiring soon, there might be a flood of x86-compatible chips showing up from ... everywhere (possibly including microcontroller versions.) But I haven't seen this actually happening yet...

x86 based CPU's are so complicated that programming them the way we do with Arduino is not going to work.
You need loads of RAM and storage memory to be able to do things the way you want to.

I disagree. A "small" x86 microcontroller with (say) 128K of flash and 16K of RAM (similar to some mid-range ARMs) would be a very interesting product, capable of competing directly with AVR/Arduino if priced appropriately, and programmable using pretty much similar tools (gcc, etc.) So far, Intel only seems interested in attacking the highest-end ARM chips (with the "Atom" line.)

Let me put it otherwise:
x86 instructionset based uC's are overkill for simple embedded systems.
Ofcourse you can use a 'small' x86 uC but it would use more energy without using even half it's capability.

With that, the x86 instruction set is actually highly inefficient. In the past I have worked with a large number of different architectures (Sun Sparc, DEC Alpha, Power PC) and all of them are faster in the applications written for them.
The reason that x86has become the standard and so popular is that it is capable of doing a broad variety of things at quite some speed.
An example, I owned a DEC Alpha 166mhz workstation, with 512MB RAM.
Next to that I had a Pentium 3, 650MHZ with 1GB of RAM.
Booting Windows NT4 on both, switched on at the same time.
The Alpha would boot nearly twice as fast.
But when both where started up and I would run an application like Office, the P3 would blow it's socks off.

Same goes with the ARM cores that are widely used in tablets, smartphones, etc. They are efficient in some tasks, simpler tasks, but when it comes to running full blown systems an x86 system will always be better in use.
But don't try running them off of a small (phone sized) battery, it will drain it in a heartbeat.

Yes it is possible using them like we do with the AVR chips but don't go looking at efficiency :slight_smile:

Intel-based motherboards are very similar to Arduino. But ATmega chips are microcontrollers, they are equiped with some Flash, ROM and RAM memories on-chip. This is a System-On-a-Chip architecture.
Intel 80x86 chips are CPU. To make a board you will need to use some companion chip called chipset. Also you should be add fast ROM and RAM. All of this is very difficult to solder at home. Much cheaper is to go to computer hardware shop and to buy a motherboard there.
I've got one :slight_smile:

Vanyamba:
All of this is very difficult to solder at home. Much cheaper is to go to computer hardware shop and to buy a motherboard there.
I've got one :slight_smile:

Are you able to do things like blink a led? Is it difficult to load a program in a ROM?

:slight_smile:

merci pour toute ces précision Richard!

marcz:

Vanyamba:
All of this is very difficult to solder at home. Much cheaper is to go to computer hardware shop and to buy a motherboard there.
I've got one :slight_smile:

Are you able to do things like blink a led? Is it difficult to load a program in a ROM?

:slight_smile:

Ofcourse you can. An x86 CPU can do everything an Arduino can do.
However, why buy a CPU and support hardware that will cost you 10 times more(and that is a very conservative estimate) than an ATMega chip with some capacitors, and also will cost you hours and hours and more hours to get running properly, while you can do those things with an Arduino in 15 minutes or less.

er
and then why post it in an Arduino forum?!? :roll_eyes:

This is general discussion, so everything goes :wink:

Does anybody know a reliable CPU throttling program/applet for a Intel Pentium 4 (3.0 GHz)?