annotate www/architectures.html @ 1522:95a720e694a6

Switch x86_64 from nptl back to pthreads. This isn't the correct fix but uClibc apparently never tested nptl on x86-64, and one of the assembly files doesn't support PIC.
author Rob Landley <rob@landley.net>
date Thu, 10 May 2012 22:03:22 -0500
parents d4eb237dcc6f
children 2ae38e4a36db
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
881
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 <html>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
2 <title>Target architectures</title>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
3 <body>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
4
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
5 <!--#include file="header.html" -->
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
6
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
7 <hr /><h1><a name="arm" \><center>ARM</center></h1>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
8
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
9 <p>The ARM processor is popular in the embedded space because it has the best
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
10 power consumption to performance ratio, meaning it has the longest battery
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
11 life and smallest amount of heat generated for a given computing task.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
12
1341
d4eb237dcc6f Many typos, spotted by Alan Post.
Rob Landley <rob@landley.net>
parents: 1109
diff changeset
13 <h2>Processor vs architecture</h2>
881
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
14
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
15 <p>Although ARM hardware has many different processor designs with varying
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
16 clock speeds, cache sizes, and integrated peripherals, from a software
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
17 perspective what matters is ARM
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
18 <a href=http://www.arm.com/products/CPUs/architecture.html>architectures</a>, which are the different
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
19 instruction sets a compiler can produce. The architecture names have a "v"
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
20 in them and the processor designs don't, so "ARM922T" is a hardware processor
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
21 design which implements the "ARMv4T" software instruction set.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
22
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
23 <p>The basic architectures are numbered: ARMv3, ARMv4, ARMv5, ARMv6, and
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
24 ARMv7. An ARMv5 capable processor can run ARMv4 binaries, ARMv6 can run ARMv5,
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
25 and so on. Each new architecture is a superset of the old ones, and the main
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
26 reason to compile for newer platforms is efficiency: faster speed and better
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
27 battery life. (I.E. they work about like i386, i486, i586, and i686 do in
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
28 the x86 world. Recompiling ARMv4 code to ARMv5 code provides about a 25%
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
29 speedup on the same hardware.)</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
30
1341
d4eb237dcc6f Many typos, spotted by Alan Post.
Rob Landley <rob@landley.net>
parents: 1109
diff changeset
31 <p>The oldest architecture this compatibility goes back to is ARMv3 (which
881
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
32 introduced 32-bit addressing), but that hardware is now obsolete. (Not just no
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
33 longer being sold, but mostly cycled out of the installed base.) The oldest
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
34 architecture still in use is "ARMv4", which should run on any ARM hardware
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
35 still in use today (except ARMv7M, which is ARM in name only).</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
36
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
37 <h2>Architecture extensions</h2>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
38
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
39 <p>ARM architectures can have several instruction set extensions, indicated
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
40 by letters after the ARMv# part. Some (such as the letter "E" denoting the
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
41 "Jazelle" bytecode interpreter, which provides hardware acceleration for
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
42 running Java bytecode) can safely be ignored if you're not using them, and
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
43 others are essentially always there in certain architectures (such as the DSP
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
44 extension signified by the letter "E" which always seems to be present in
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
45 ARMv5). But some are worth mentioning:</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
46
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
47 <p>The "Thumb" extension (ARMv4T) adds
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
48 a smaller instruction set capable of fitting more code in a given amount
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
49 of memory. Unfortunately thumb instructions sometimes run more slowly, and
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
50 the instruction set isn't complete enough to implement a kernel, so they
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
51 supplement rather than replace the conventional ARM instruction set. Note
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
52 that all ARMv5 and later processors include Thumb support by default, only
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
53 ARMv4T offers it as an extension. Also, a new "Thumb2" fixes most of the
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
54 deficiencies of the original Thumb, and is part of the ARMv7 architecture.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
55
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
56 <p>The VFP (Vector Floating Point) coprocessor provides hardware floating
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
57 point acceleration. There are some older hardware floating point options,
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
58 and some newer ones backwards compatible with VFP, but in general you can
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
59 treat a chip as either "software floating point" or "VFP".</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
60
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
61 <p>The other detail is "l" vs "b" for little-endian and big-endian.
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
62 In theory ARM can do both (this is a compiler distinction, not a hardware
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
63 distinction), but in practice little-endian is almost universally
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
64 used on ARM, and most boards are wired up to support little-endian only even if
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
65 the processor itself can theoretically handle both.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
66
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
67 <p>So for example, "armv4tl" is ARMv4 with Thumb extensions, little endian.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
68
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
69 <h2>Application Binary Interface</h2>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
70
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
71 <p>Linux initially implemented a somewhat ad-hoc ABI for ARM with
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
72 <a href=http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Why-ARMs-EABI-matters/>poor
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
73 performance and several limitations</a>, and when ARM got around to documenting
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
74 a new one the main downside was that it was incompatible with the old
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
75 binaries.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
76
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
77 <p>So ARM has two ABIs that can run on the same hardware, the old one is
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
78 called OABI and the new one is
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
79 <a href=http://wiki.debian.org/ArmEabiPort>EABI</a>. (This is a bit like
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
80 the way BSD binaries won't run under Linux even though the hardware's the
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
81 same, or the long ago switch from
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
82 <a href=http://www.linuxjournal.com/article/1059>aout to ELF</a> executable
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
83 formats.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
84
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
85 <p>The oldest hardware that can run EABI is ARMv4T, so ARMv4 hardware
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
86 without the Thumb extensions still has to use OABI. (The kernel, C
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
87 library, and compiler must all agree which ABI is in use or the binaries
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
88 won't run.)</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
89
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
90 <h2>Further Reading</h2>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
91
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
92 <p>In theory the best reference for ARM processors is the
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
93 <a href=http://www.arm.com>website of ARM Limited</a>, but unfortunately
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
94 they make it somewhat hard to find information about their
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
95 <a href=http://www.arm.com/products/CPUs/ARM920T.html>older products</a>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
96 and <a href=http://www.arm.com/products/CPUs/families/ARM7Family.html>many
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
97 of their pages</a> are more concerned with advertising their newest products
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
98 than giving the requested information. Wikipedia may be less frustrating,
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
99 and occasionally even accurate.</p>
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
100
890
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
101 <hr /><h1><a name="m68k" \><center>Motorola 68000</center></h2>
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
102 <hr /><h1><a name="mips" \><center>Mips</center></h1>
1109
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
103 <P ALIGN=LEFT>Originally the acronym MIPS stood for: Microprocessor
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
104 without Interlocked Pipeline Stages. The phrase describes a RISC
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
105 architecture design goal of the Stanford University team led by John
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
106 L. Hennessy in 1981. It is also a <A HREF="http://www.mips.com/media/files/mips_trademark.pdf">registered
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
107 trademark</A> of MIPS Technologies, Inc.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
108 <P ALIGN=LEFT>During the first two decades, the company's main
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
109 business was the production of complete processors. During the most
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
110 recent decade, the company's main business has been the licensing of
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
111 their processor architecture for inclusion into products of other
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
112 firms.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
113 <P ALIGN=LEFT>The MIPS processor core designs of MIPS Technologies,
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
114 Inc. have a significant portion of the custom silicon market place.
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
115 This is a result of the <A HREF="http://www.mips.com/customers/licensees/">number
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
116 of licensees</A> that use the MIPS processor core design as a
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
117 component of their own products. Their component cores are used in
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
118 silicon designs of all sizes, from Smart Cards to complex SoC (System
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
119 on Chip) parts.
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
120 </P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
121 <P ALIGN=LEFT>The major point that the company emphasizes about their
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
122 designs is through-put performance versus silicon area. One of Dr.
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
123 Hennessy's original objectives. Dr. Hennessy is now the 10th
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
124 president of Stanford University.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
125 <P ALIGN=LEFT>The official version of this summary can be found at
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
126 <A HREF="http://mips.com/" NAME="mips.com">the company website.</A></P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
127 <H2>Processors vs Cores</H2>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
128 <P>During the first two decades, the company built complete
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
129 processors. They also licensed their processor designs to other
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
130 manufacturers. Here, “processors” can be thought of as some
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
131 device that you plug or solder onto a circuit board. These complete
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
132 devices where predominately revision 1 MIPS architecture.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
133 <P>During the most recent decade the company licensed others to
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
134 include their Intellectual Property (processor core designs) into the
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
135 products of those other companies. Here, “cores” can be thought
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
136 of as include files that a silicon designer plugs into their design
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
137 system.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
138 <P>These core designs are available to the MIPS licensees as sets of
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
139 features. The licensee of MIPS can mix and match the feature sets to
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
140 suit their own design goals. These core designs are predominately
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
141 the revision 2 MIPS architecture.
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
142 </P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
143 <P>This can be a great advantage to the licensee; they only spend
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
144 silicon area on the features their design needs. At the same time
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
145 this can be a great headache to anyone who is trying to match
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
146 compiler code generation to whatever collection of features are
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
147 present on a specific device.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
148 <P>Also a great headache even to the authors of software build
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
149 systems. With a MIPS Technology device, the authors of the build
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
150 system can not simply say: “Look at the model number and insert
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
151 that model number into configuration file xyz”. Some other means
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
152 of guiding the build system user is required and often build systems
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
153 don't even try.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
154 <H2>Compilers vs Features</H2>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
155 <P>Here is where the above headache begins to be felt.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
156 <P>On the bright side, MIPS Technologies provides their licensees
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
157 reference software materials. This includes a MIPS designed system
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
158 boot loader that can report all the key facts about the core it is
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
159 running on at power-up time. Not all licensees use this system boot
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
160 loader but many do use it.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
161 <P>The boot loader report or the output report of a similar hardware
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
162 feature detection program is your best guide to knowing what compiler
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
163 options you should be using for your build system. It will at least
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
164 identify the base architecture by name or number.</P>
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
165 <P>In general, you want to select the overall architecture option
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
166 that matches the base architecture design. That should (if the
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
167 compiler your using is at all sane) get you code that will run at
f5b13cbc77d7 Michael S. Zick wrote up some mips documentation for the architectures page.
Rob Landley <rob@landley.net>
parents: 890
diff changeset
168 least well enough to discover all of the hardware details.</P>
890
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
169 <hr /><h1><a name="ppc" \><center>PowerPC</center></h1>
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
170 <hr /><h1><a name="sh4" \><center>Super Hitachi</center></h1>
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
171 <hr /><h1><a name="sparc" \><center>Sparc</center></h1>
368cdbe5b0ee Update www/header.html to include more information.
Rob Landley <rob@landley.net>
parents: 881
diff changeset
172 <hr /><h1><a name="x86" \><center>x86</center></h1>
881
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
173
0da87d1ef528 Update the web page. Put the left-side nav bar back, move about page to "about.html" and make news.html the default index. Add architectures page. Note that IRC discussion is now on #edev.
Rob Landley <rob@landley.net>
parents:
diff changeset
174 <!--#include file="footer.html" -->