changeset 1600:e50c2b9588b8

Fluff out the architectures page.
author Rob Landley <rob@landley.net>
date Mon, 06 May 2013 00:29:57 -0500
parents e8d846fb56eb
children e958c89076c1
files www/architectures.html
diffstat 1 files changed, 321 insertions(+), 71 deletions(-) [+]
line wrap: on
line diff
--- a/www/architectures.html	Tue Apr 30 00:27:52 2013 -0500
+++ b/www/architectures.html	Mon May 06 00:29:57 2013 -0500
@@ -2,72 +2,31 @@
 <title>Target architectures</title>
 <body>
 
-http://www.fool.com/portfolios/rulemaker/2000/rulemaker000224.htm
+<!--#include file="header.html" -->
+
 <p>Thumbnail oversimplification of processors:</p>
 
-<b>Before Linux</b>
-
-<p>In the 1950's and 60's
-<a href=http://landley.net/history/mirror/interviews/olsen.html>mainframe
-and minicomputer</a> processors took up an entire circuit board. Unix
-started on these kind of systems, few of them remain in use today.</p>
-
-<p>In 1969 an <a href=http://landley.net/history/mirror/intel/Hoff.html>engineer
-at Intel</a> invented the first microprocessor, the Intel 4004, by being the
-first to squeeze all the functions of a CPU onto a single silicon "chip".
-As <a href=http://www.fool.com/CashKing/1998/CashKingPort980421.htm>transistor</a>
-<a href=http://www.fool.com/CashKing/1998/CashKingPort980422.htm>budgets</a>
-<a href=http://www.fool.com/CashKing/1998/CashKingPort980421.htm>increased</a>
-they upgraded the 4004's design into the 8008 and then the 8080, the chip
-inside coin-operated Space Invaders machines and the Mits Altair. The Altair
-was widely cloned to form the first family of microcomputers, which contained
-(and were named after) the S-100 bus, programed in Basic from
-a startup called Micro-soft, and ran an OS called
-<a href=http://landley.net/history/mirror/cpm/history.html>CP/M</a>
-from a startup called Digital Research.</p>
+<ul>
+<li>
+<h1>What processors does Aboriginal Linux currently support?</h1>
+<ul>
+<li><a href=#arm>ARM</a></li>
+<li><a href=#m68k>Motorola 68000</a></li>
+<li><a href=#mips>Mips</a></li>
+<li><a href=#ppc>PowerPC</a></li>
+<li><a href=#sh4>SH4</a></li>
+<li><a href=#sparc>Sparc</a></li>
+<li><a href=#x86>x86</a></li>
+</ul>
+<li><p><a href=#when>What processors are supported by Linux, and when was support added for each one?</a></p></li>
 
-<p><a href=http://landley.net/history/mirror/interviews/Faggin.html>One of the
-Intel engineers</a> left to form his own company that made an 8080
-clone called the Z80. But the main alternative to the 8080 was from
-some ex-motorola engineers who left form MOStek, the company
-that did the (much cheaper) 6502 processor, with its own instruction
-set. Motorola sued the escaped engineers for being better at it than they were,
-and in the end the engineers went back to Motorola and
-commodore bought the rest of the company to use these processors in the Vic 20
-(the first computer to sell a million units) and its successor the Commodore
-64 (even more popular). The 6502 also wound up running the Apple I and Apple II,
-and the first big home game console (the Atari 2600).</p>
-
-<p>In 1982 the march of Moore's Law drove the computing world to
-<a href=http://www.catb.org/~esr/writings/world-domination/world-domination-201.html>switch to 16 bits</a>, coinciding with the
-arrival of the IBM PC. It was based on Intel's 8086 (actually a variant called
-the 8088 that ran the same software but fit in cheaper 8-bit motherboards
-and took twice as many clock cycles to do anything).</p>
-
-<p>The main competitor to the 8086 was Motorola's 32-bit 68000 line of
-processors, used in just about everything except the PC (Macintosh, Amiga,
-Sun workstations...)
-Just as the 8086 was a sequel to the 8080, the 68k was a sequel to the 6502.
-
- got its own sequel
-in Motorola's 68000 processor. Motorola jumped straight to 32 bits, which had
-little advantage back when 64k was considered a lot of memory (and cost
-hundreds of dollars). The 68k powered Apple's Macintosh, Commodore's
-Amiga, Sun's unix workstations, and so on.</p>
-
-<p>The main competitor to the 8086 was Motorola's 32-bit 68000 line of
-processors, used in just about everything except the PC (Macintosh, Amiga,
-Sun workstations...)</p>
-
-<p>The 68000  Meanwhile Motorola
-promised the 68000
-Everybody else (macintosh, amiga)was based on Motorola's 68000 because they thought RISC
-would replace CISC. So the Macintosh
-
-<p>By the time IBM was looking around to do its PC the 
-<p>Then the Motorola 68000 was supposed to chdid the 68000 which was 
-
-<!--#include file="header.html" -->
+<li><p><a href=#where>Where did all these processors come from?</a></p>
+<ul>
+<li><b>Before Linux</b></li>
+<li><b>32 bits and RISC</b></li>
+<li><b>Mobile processors</b></li>
+</ul>
+</ul>
 
 <hr /><h1><a name="arm" \><center>ARM</center></h1>
 
@@ -175,7 +134,17 @@
 
 <hr /><h1><a name="m68k" \><center>Motorola 68000</center></h2>
 
-<p>Very popular in the 80's.
+<p>Very popular in the 80's, the first widely used 32-bit processor.
+It was in the original Apple Macintosh, the first Sun workstations, the
+Commodore Amiga, the Atari 800, and so on.</p>
+
+<p>Still trying to get QEMU to support it, the Aranym Atari emulator has
+run an Aboriginal M68k chroot but requires a different kernel config.
+In theory the q800 branch of git://gitorious.org/qemu-m68k/qemu-m68k is
+working on support for the last m68k macintosh model (supporting 256 megs
+of ram), but in practice it doesn't boot Linux yet.</p>
+
+<p>Coldfire is a nommu variant used in early handhelds.</p>
 
 <hr /><h1><a name="mips" \><center>Mips</center></h1>
 
@@ -214,9 +183,6 @@
 
 <p>The company's website talks about <a href=http://www.mips.com/customers/licensees/>their customers</a>.</p>
 
-
-</p>
-
 <hr /><h1><a name="ppc" \><center>PowerPC</center></h1>
 
 <p>Apple's original Macintosh computers used Motorola 68000 processors.
@@ -240,11 +206,295 @@
 and some supercomputers.
 These days the power architecture is maintained by <a href=http://power.org>a
 consortium.</a>
- and
+
+<hr /><h1><a name="sh4" \><center>SuperH</center></h1>
+
+<p>Japan's first major homegrown 32-bit processor architecture was widely
+used in the automotive industry, and wound up in the dreamcast gaming
+console. Often called "sh4", because although there were sh versions 1 through
+3 they didn't really make it out of Japan.</p>
+
+<p>Although sh4 is reasonably well supported by QEMU, Hitachi spun this
+processor design off into a seprate company called Renesas, which ranges
+from "confused" to "actively hostile" at the idea that anyone who isn't already
+a paying customer might be interested in this processor.</p>
+
+<hr /><h1><a name="sparc" \><center>Sparc</center></h1>
+
+<p>Created by Sun Microsystems as a replacement for the m68k, and mostly
+used in-house by them until they went out of business. (Fujitsu made some
+supercomputers with it, during the same period Alpha and iTanic were used in
+that space.) Oracle bought Sun's corpse, but according to James Gosling
+(creator of the Java programming language), they were more interested in
+the lawsuit potential than the technology.</p>
+
+<hr /><h1><a name="x86" \><center>x86</center></h1>
+
+<p>The standard PC architecture, in 32-bit and 64-bit flavors.</p>
+
+<p>The reason the x86 directory in Linux is newer than some other architectures
+is the 32-bit and 64-bit directories were merged together, and the date of
+the oldest commit in the directory is the merge. In reality, i386 was the
+original Linux architecture back in 1991.</p>
+
+<hr>
+
+<a name="when">
+<h1>What processors are supported by Linux, and when was support added
+for each one?</h1>
+
+<p>We can actually beat this information out of the <a href=http://landley.net/kdocs/fullhist>linux-fullhist</a> git repository, by doing:</p>
+<blockquote><p>
+cd arch && for i in *; do echo -en "$i\t" && git log $i | sed -n 's/^Date:[ \t]*//p' | tail -n 1 | awk '{print $2" "$3" "$5}'; done
+</p></blockquote>
+
+<p>Removing "Kconfig" and "um" (user mode linux, not a processor type),
+as of the 3.9 kernel this gives us:</p>
+
+<table>
+<tr><td>alpha</td><td>Nov 27 1994</td></tr>
+<tr><td>sparc</td><td>Dec 4 1994</td></tr>
+<tr><td>mips</td><td>Jan 12 1995</td></tr>
+<tr><td>m68k</td><td>Mar 7 1996</td></tr>
+<tr><td>arm</td><td>Jan 20 1998</td></tr>
+<tr><td>sh</td><td>Jun 30 1999</td></tr>
+<tr><td>ia64</td><td>Jan 4 2000</td></tr>
+<tr><td>s390</td><td>Mar 10 2000</td></tr>
+<tr><td>parisc</td><td>Oct 3 2000</td></tr>
+<tr><td>cris</td><td>Jan 30 2001</td></tr>
+<tr><td>um</td><td>Sep 11 2002</td></tr>
+<tr><td>h8300</td><td>Apr 17 2003</td></tr>
+<tr><td>m32r</td><td>Sep 16 2004</td></tr>
+<tr><td>frv</td><td>Jan 4 2005</td></tr>
+<tr><td>xtensa</td><td>Jun 23 2005</td></tr>
+<tr><td>powerpc</td><td>Sep 19 2005</td></tr>
+<tr><td>avr32</td><td>Sep 25 2006</td></tr>
+<tr><td>blackfin</td><td>May 6 2007</td></tr>
+<tr><td>x86</td><td>Oct 11 2007</td></tr>
+<tr><td>mn10300</td><td>Feb 8 2008</td></tr>
+<tr><td>microblaze</td><td>Mar 27 2009</td></tr>
+<tr><td>score</td><td>Jun 12 2009</td></tr>
+<tr><td>tile</td><td>May 28 2010</td></tr>
+<tr><td>unicore32</td><td>Feb 26 2011</td></tr>
+<tr><td>openrisc</td><td>Jun 4 2011</td></tr>
+<tr><td>c6x</td><td>Oct 4 2011</td></tr>
+<tr><td>hexagon</td><td>Oct 31 2011</td></tr>
+<tr><td>arm64</td><td>Mar 5 2012</td></tr>
+<tr><td>metag</td><td>Dec 5 2012</td></tr>
+<tr><td>arc</td><td>Jan 18 2013</td></tr>
+</table>
+
+<p>This doesn't quite tell the full story: the x86 and powerpc directories
+were created by merging together 32 bit and 64 bit versions of the same
+architectures: the i386 and x86_64 directories for x86, and the ppc and ppc64
+directories for powerpc. (A similar merge of arm and arm64 is expected when
+ARMv8 support stabilizes.)</p>
+
+<p>The resulting dates are when the merge happened,
+the corresponding architectures were added much earlier.</p>
+
+<a name="where">
+<h1>Where did all these processors come from?</h1>
+
+<b>Before Linux</b>
+
+<p>In the 1950's and 60's
+<a href=http://landley.net/history/mirror/interviews/olsen.html>mainframe
+and minicomputer</a> processors took up an entire circuit board. Unix
+started on these kind of systems, few of them remain in use today.</p>
+
+<p>In 1969 an <a href=http://landley.net/history/mirror/intel/Hoff.html>engineer
+at Intel</a> invented the first microprocessor, the Intel 4004, by being the
+first to squeeze all the functions of a CPU onto a single silicon "chip".
+As <a href=http://www.fool.com/CashKing/1998/CashKingPort980421.htm>transistor</a>
+<a href=http://www.fool.com/CashKing/1998/CashKingPort980422.htm>budgets</a>
+<a href=http://www.fool.com/CashKing/1998/CashKingPort980421.htm>increased</a>
+they upgraded the 4004's design into the 8008 and then the 8080, the chip
+inside coin-operated Space Invaders machines and the Mits Altair. The Altair
+was widely cloned to form the first family of microcomputers, which contained
+(and were named after) the S-100 bus, programed in Basic from
+a startup called Micro-soft, and ran an OS called
+<a href=http://landley.net/history/mirror/cpm/history.html>CP/M</a>
+from a startup called Digital Research.</p>
+
+<p><a href=http://landley.net/history/mirror/interviews/Faggin.html>One of the
+Intel engineers</a> left to form his own company that made an 8080
+clone called the Z80. But the main alternative to the 8080 was from
+some ex-motorola engineers who left form MOStek, the company
+that did the (much cheaper) 6502 processor, with its own instruction
+set. Motorola sued the escaped engineers for being better at it than they were,
+and in the end the engineers went back to Motorola and
+commodore bought the rest of the company to use these processors in the Vic 20
+(the first computer to sell a million units) and its successor the Commodore
+64 (even more popular). The 6502 also wound up running the Apple I and Apple II,
+and the first big home game console (the Atari 2600).</p>
+
+<p>The march of Moore's Law quickly drove the microcomputer world to
+<a href=http://www.catb.org/~esr/writings/world-domination/world-domination-201.html>move beyond 8 bit processors</a>. Moore's Law says that memory size doubles
+every 18 months, which quickly became a self-fulfulling prophecy hardware
+manufacturers used to manage inventory and schedule product releases.</p>
+
+<p>The first widely cloned microcomputer (the MITS Altair) was introduced in
+1975, and by the middle of the year established a range of 1-4 kilobytes of
+memory installed in altair compatible systems. (The original Altairs
+had only 256 bytes memory, but that wasn't enough and 1k expansion boards
+immediately became standard equipment. The first version of its standard
+de-facto standard programming language, Micro-soft basic, required 7k of
+memory to run but that was too expensive so they trimmed it down to run in
+4k.) From then on Moore's Law turned the old high end into the new low end
+every 3 years. (In 1978: 4-16k. In 1981, 16-64k.)</p>
+
+<p>These early microcomputers were called 8-bit machines because they had
+8-bit registers, storing values from 0 to 255. But they used pairs of registers
+to access memory, providing 16 bits (64k) of address space. That was enough for
+four 18-month Moore's Law doublings before the high end of the microcomputer
+address range hit the 64k address space limit in mid-1981.</p>
+
+<p>The result was a switch to 16-bit systems. IBM introduced its PC in
+August 1981, based on Intel's 8086 processor (actually a variant called
+the 8088 that ran the same software but fit in cheaper 8-bit motherboards
+and took twice as many clock cycles to do anything). True to form, it
+offered anywhere from 16k to 64k of memory preinstalled.</p>
+
+<p>The main competitor to the 8086 was Motorola's 32-bit 68000 line of
+processors, used in just about everything except the PC (Macintosh, Amiga,
+Sun workstations...) Just as the Intel's 8086 was a sequel to the 8080,
+the Motorola's 68k was a sequel to the 6502.</p>
+
+<p>Motorola skipped 16 bit registers and jumped straight to 32 bits, but back
+when 64k was as much memory as most high-end users could afford (costing
+hundreds of dollars) this provided no immediate market advantage. The 68k
+powered Apple's Macintosh (and several incompatible designs such as Commodore's
+Amiga and Sun's original unix workstations). But Apple successfully defended
+its hardware design in court, while IBM lost its court case
+against Compaq, spawning an army of clones that quickly marginalized the
+proprietary hardware designs and rendered the PC the standard computer.</p>
+
+<p>The 8086 also used pairs of registers to access memory, but it overlapped
+their address ranges so instead of 16+16=32 bits of address space, each
+"segment" started only 16 bits from the previous one (with a 64k offset that
+mostly redundantly accessed the same memory as other segments), providing
+16+4=20 bits of address space, for 1 megabyte. (The 640k limit of DOS was
+because the top third of the address range was reserved for I/O memory,
+starting with the video card's frame buffer.)</p>
+
+<p>The continuing advance of Moore's Law meant high-end PCs would collide
+with the 1 megabyte limit in 1987. To prepare for this, Intel introduced its
+own 32-bit processor, the 80386, in 1985. Unfortunately IBM had bought the
+entire first year's production run of Intel's previous processor (the 80286)
+to keep it out of the hands of the PC cloners, and Moore's Law quickly left
+IBM with a giant unsold pile of slow expensive processors. This delayed
+its introduction of new 32-bit PCs until the original cloner introduced
+the "Compaq Deskpro 386" and the rest of the clones followed that, leaving
+IBM's PCs in obscurity.</p>
+
+<b>32 bits and RISC</b>
+
+<p>In the 1980's and 90's, a
+<a href=http://www.fool.com/portfolios/rulemaker/2000/rulemaker000224.htm>new
+technology called RISC</a> led to a gold rush
+of processors hoping to take market share away from Intel. These risc designs
+came from three sources: start-up companies producing new RISC processors,
+surviving mainframe and minicomputer vendors redesigning their big iron to use
+microprocessors, and m68k users giving up on that design once Intel's move
+to 32 bits removed the only argument in its favor. (If m68k had lost out to
+16 bit x86, clearly it was even less interesting after the 386 came out.)</p>
+
+<p>RISC designs ("Reduced Instruction Set Computers") simplified processor
+instruction sets down to fixed-length instructions that only took one clock
+cycle. This led to more verbose machine code which took up more memory, but
+also meant that since you didn't have to execute the previous instruction
+to figure out where the next one started (because they're all the same size),
+processors could contain a second "execution core" looking over the shoulder
+of the first core to potentially execute the next instruction in the same
+clock cycle (if it didn't use the same registers, memory locations, or depend
+on processor flags set by the previous instruction). Once compilers
+advanced to produce instructions in non-interfering pairs, RISC processors
+added a third core to potentially execute a third instruction in the same
+clock cycle (if that one didn't interfere with the first two).</p>
+
+<p>Several processor manufacturers were convinced that RISC designs were
+superior to the older designs (which they called "CISC", for Complex
+Instruction Set Computers). The commodity PC had taken over the market,
+running a large installed base of CISC software, but the cloners were
+sure that during the 16 to 32 bit transition they could capture the market
+when everyone had to throw out their old software anyway.</p>
+
+<p>MIPS was one early RISC startup, created and commercialized
+by some university professors based on early RISC research. The ARM design
+came from a tiny start-up in the UK which made the Acorn Risc Machine and
+got a contract with the British Broadcasting Service to sell it as the "BBC
+Micro" in conjunction with BBC educational programming.</p>
+
+<p>At the other end of things, IBM engineers produced the Power minicomputer
+architecture, Hewlett Packard developed PA-RISC, Hitachi developed the
+SuperH (more commonly known as sh4), and Digital Equipment
+Corporation migrated its VAX minicomputers to their new Alpha processor
+(the first 64 bit processor).</p>
+
+<p>Sun Microsystems develop the Sparc processor to replace m68k, but the
+official successor to m68k came from a partnership between Apple, Motorola,
+and IBM, redesigning IBM's Power processor to produce PowerPC. (Apple's
+macintosh redesign brought its m68k vendor Motorola together with IBM,
+which at the time had the world's leading microchip manufacturing facilities.
+The 90's were a great decade for IBM's microprocessor manufacturing arm: first
+to replace microchips' traditional aluminum wiring with copper, first to layer
+"silicon on insulator" to improve power efficiency, first gigahertz
+processor...)</p>
+
+<p>When the PC market smoothly transitioned to the 80386,
+the RISC proponents were sure that better technology would eventually
+prevail over market forces. The 386 was an extension of the 8086 which was
+an extension of the 8080 which was an extension of the 8008. And the 386 wasn't
+just similar to previous designs to ease porting, it actually implemented a
+compatability mode to fully emulate the previous chip and run its software
+unmodified! Surely this long chain of backwards compatability that had
+accumulated customers for 20 years until it snowballed into market dominance
+had to collapse from accumulated complexity at some point?</p>
+
+<p>Next Intel came out with the 486, which introduced
+CPU cache, allowing for "clock doubling" and "clock tripling" to run the
+processor faster than the rest of the motherboard and execute loops of code
+in cache while the slower main memory delivered the next part of the program
+and stored the cached results of earlier computations. But the RISC proponents
+saw this as merely buying time, sure that RISC would still win the day.</p>
+
+<p>Then Intel introduced the Pentium, which translated CISC instructions
+into RISC internally. It could run as fast as RISC designs (executing two
+instructions per clock cycle) while remaining compatible with existing
+software.</p>
+
+<b>Mobile processors</b>
+
+<p>Intel did hit a bit of a wall at 1 gigahertz, and produced
+a horrible RISC-like design (itanium) as its planned 64 bit transition,
+but AMD filled the gap with other x86-compatible designs and a sane
+64 bit extension of the x86 architecture (x86-64), and Intel's customers forced
+it to adopt AMD's 64-bit design.</p>
+
+<p>Intel and AMD competed on two metrics: absolute performance, and the
+price to performance ratio. They tried to produce the fastest chips, and
+the fastest chip for the money.</p>
+
+<p>But in the late 90's laptop systems became a viable PC option, and
+in 2005 laptops outsold desktops. These systems are battery powered, and
+care about another metric: power consumption to performance ratio. The
+best performance for the battery life. In 2000 a startup called Transmeta
+(most widely known for employing Linus Torvalds in his first job out of
+college) proved that a processor consuming just 1 watt could provide
+reasonable performance. (Meanwhile Intel's itanium and Pentium 4 processors
+consumed around 90 watts, enough power to fry an egg on the heat sink.)</p>
+
+<p>The processor with the best power consumption to performance ratio was
+ARM, which came to dominate the cell phone and handheld systems. When those
+coverged into smartphones, arm retained its dominant position.</p>
+
+<p>Recently introduced processor designs attempted to compete with Arm, not
+Intel. Coldfire was a stripped down version of m68k, and new designs include
+blackfin, hexagon, tile, and so on. So far, these are doing as well against
+arm as the RISC gold rush did against x86.<p>
 
 
-<hr /><h1><a name="sh4" \><center>Super Hitachi</center></h1>
-<hr /><h1><a name="sparc" \><center>Sparc</center></h1>
-<hr /><h1><a name="x86" \><center>x86</center></h1>
+
 
 <!--#include file="footer.html" -->