Difference between revisions of "Xerox Alto"

From Computer History Wiki
Jump to: navigation, search
m (avoid redir)
m (External links: Add a few)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The '''Alto''', built by [[Xerox]]' [[Xerox PARC]] laboratory, was a ground-breaking and extremely influential [[personal computer]] - in fact, all contemporary personal computers are descendants of the Alto.
+
The '''Alto''', built by [[Xerox]]' [[Xerox PARC]] laboratory, was a ground-breaking and extremely influential [[personal computer]] - in fact, all contemporary personal computers are effectively descendants of the Alto.
  
The Alto was novel in that each machine had a [[bit-mapped display]], allowing the creation of a [[graphical user interface]], and was also attached to a high-speed network, the [[Ethernet]], also invented at PARC. In addition to the [[keyboard]], users could use a [[mouse]] to interact with applications.
+
The Alto was novel, for its time, in that each machine had a [[bit-mapped display]], allowing the creation of a [[graphical user interface]], and was also attached to a high-speed [[local area network|LAN]], the then-new [[Ethernet]], also invented at PARC. In addition to the [[keyboard]], users could use a [[mouse]] to interact with applications.
  
The [[Central Processing Unit|CPU]] was [[microcode]]d, built out of [[Transistor-transistor logic|TTL]], and could emulate several different CPUs - the basic [[Read-only memory|ROM]] more or less emulated a [[Data General]] [[Nova]]. The CPU did not support [[Direct Memory Access|DMA]]; rather, it had provision for up to 16 micro-[[task]]s, which did all bulk [[input/output]].
+
Xerox attempted to commercialize the lessons of the Alto, in the [[Xerox Star]], but it was not a commercial success. Other companies, including [[International Business Machines|IBM]] ([[hardware]]), [[Microsoft]] ([[software]]) and [[Apple]] (both) did manage to produce successful products along the lines pioneered by the Alto.
  
Altos all had a 1.25Mbyte [[disk]] drive from [[Diablo Systems]] (the same drive as in the [[RK0x disk drive|RK02 disk drive]]); Alto-based [[file server]]s used [[Trident]] disk drives.
+
Of course, everyone now lives in the world pioneered by the Alto.
  
Xerox attempted to commercialize the lessons of the Alto, in the [[Xerox Star]], but it was not a commercial success. Other companies, including [[IBM]] ([[hardware]]), [[Microsoft]] ([[software]]) and [[Apple]] (both) did manage to produce succesful products along the lines pioneered by the Alto.
+
==Details==
 +
 
 +
The Alto's 16-bit-wide [[Central Processing Unit|CPU]] was [[microcode]]d (which resulted in it being called the machine's '[[microprocessor]]', although that term did not at the time have the meaning that it does now). As a result, it could emulate several different CPUs. It was built out of [[Transistor-transistor logic|TTL]], and the microprocessor's [[clock]] rate was 170 nsec. The CPU was implemented as 5 [[printed circuit board|PCBs]] which plugged into a common [[backplane]], along with four PCBs for [[main memory]] (in a 64KW [[address space]] of 16-bit [[word]]s), and those for [[device controller]]s such as the [[disk]], display, and Ethernet.
 +
 
 +
There were two different versions, the Alto I and Alto II, which were almost identical; the latter was a re-engineered version of the former. The biggest difference was that the Alto II could have a maximum of 256 KW of memory, using [[bank switching]], compared to the 64KW of the Alto I (although in actuality, limited use was made of the extended memory). Data in the memory of an Alto I was protected with [[parity]]; the Alto II used [[error-correcting code|ECC]], with 6 bits plus a parity bit per double-word. Also, all Altos had 1KW of [[Read-only memory|ROM]] microcode (microcode words were 32 bits wide), and eventually also 1KW of writeable [[Random Access Memory|RAM]] microcode memory. (The basic ROM microcode more or less emulated a [[Data General]] [[Nova]].) Some Alto IIs supported a second 1KW of PROM microcode; others had three 1KW banks of microcode RAM.
 +
 
 +
The Alto provided several paths for [[input/output]]. For the highest speeds [[peripheral]]s, the CPU did not support [[Direct Memory Access|DMA]]; rather, such devices ([[disk]], display, LAN) connected to the CPU's main [[bus]]. The processor then had provision for up to 16 prioritized microcode [[task]]s, some of which were dedicated to particular devices, and did bulk I/O; a timer task handled others, such as the mouse. A [[Program Counter|PC]] per priority level allowed zero-overhead switching between [[execute|execution]] of [[microcode|microinstructions]] at different priority levels when the hardware called for another one to be active. ([[Emulator|Emulation]] of the Alto's native [[instruction set]] was assigned to the lowest priority level.)
 +
 
 +
Slower devices (keyboard, etc) could be attached to the machine's memory bus, allowing their [[register]]s to appear in the memory address space, for access by [[programmed I/O]]; the last two 'pages' (nothing to do with [[virtual memory]], which the Alto did not support) of memory address space, 512 words, were dedicated to this. Finally, a [[parallel interface|parallel port]], connected to the CPU's memory control board, allowed miscellaneous slow devices (e.g. slow [[printer]]s) to be connected.
 +
 
 +
Altos all had a 1.25Mbyte cartridge [[disk]] [[drive]] from [[Diablo Systems]] (the same drive as in the [[RK02/03 disk drive|RK02 disk drive]]); the Alto-based Interim File System (IFS) [[file server]]s used [[Trident]] disk drives.
 +
 
 +
==See also==
 +
 
 +
* [[Alto-1822 Interface]]
 +
 
 +
==External links==
 +
 
 +
* [http://bwl-website.s3-website.us-east-2.amazonaws.com/38a-WhyAlto/Abstract.html Why Alto] - the famous Xerox internal memorandum by [[Butler Lampson]] that started the Alto ball rolling
 +
* [http://www.bitsavers.org/pdf/xerox/alto/ Hardware documentation] - also contains some high-level software documentation
 +
** Charles P. Thacker, Edward M. McCreight, [http://www.bitsavers.org/pdf/xerox/alto/memos_1974/Alto_A_Personal_Computer_Dec74.pdf Alto - A Personal Computer System] December, 1974 - a [http://gordonbell.azurewebsites.net/Computer_Structures_Principles_and_Examples/csp0565.htm later version] was re-printed in ''Computer Structures: Principles and Examples'', second edition, editors Daniel P. Siewiorek, C. Gordon Bell and Allen Newell, McGraw-Hill, 1981, pp. 549-572
 +
** [http://www.bitsavers.org/pdf/xerox/alto/memos_1978/The_Alto_Users_Primer_Jun78.pdf The Alto User's Primer]
 +
** [http://www.bitsavers.org/pdf/xerox/alto/memos_1979/A_Field_Guide_to_Alto-Land_Apr79.pdf A Field Guide to Alto-Land]
 +
** [http://www.bitsavers.org/pdf/xerox/alto/Alto_Hardware_Manual_Aug76.pdf ALTO: A Personal Computer System Hardware Manual] August 1976
 +
<!-- ** [http://www.bitsavers.org/pdf/xerox/alto/memos_1979/Alto_Hardware_Manual_May79.pdf Alto: A Personal Computer System Hardware Manual] May, 1979 -->
 +
** [http://www.bitsavers.org/pdf/xerox/alto/AltoHWRef.part1.pdf Alto: A Personal Computer System Hardware Manual - part 1] May, 1979
 +
** [http://www.bitsavers.org/pdf/xerox/alto/AltoHWRef.part2.pdf Alto: A Personal Computer System Hardware Manual - part 2] May, 1979
 +
** [http://www.bitsavers.org/pdf/xerox/alto/schematics/01a_INTRO.pdf Alto II Documentation]
 +
** [http://www.bitsavers.org/pdf/xerox/alto/ifs_trident/ IFS and the Trident disk controller]
 +
*** [http://www.bitsavers.org/pdf/xerox/alto/ifs_trident/TriconDoc.pdf Trident disk for the Alto]
 +
**** [https://xeroxalto.computerhistory.org/_cd8_/altodocs/tfs.tty!2 Software and Utilities for Trident Disks]
 +
* [https://xeroxalto.computerhistory.org/ Xerox PARC Alto filesystem archive]
 +
** [https://xeroxalto.computerhistory.org/xerox_alto_file_system_archive.html A walk through the archive: people and software]
 +
** [https://xeroxalto.computerhistory.org/cross_reference.html Cross reference by file name]
 +
* [https://spectrum.ieee.org/xerox-alto 50 Years Later, We're Still Living in the Xerox Alto's World] - an excellent history from the [[IEEE]]
 +
* [https://spectrum.ieee.org/the-xerox-alto-struts-its-stuff-on-its-40th-birthday The Xerox Alto Struts Its Stuff on Its 40th Birthday]
 +
* [https://www.newyorker.com/magazine/2011/05/16/creation-myth Creation Myth] - [[Steve Jobs]] meets the Alto
 +
 
 +
===Recent restoration of an Alto===
 +
 
 +
* [http://www.righto.com/search/label/alto alto] - Ken Shirriff's blog entries about things Alto
 +
** [http://www.righto.com/2016/06/y-combinators-xerox-alto-restoring.html Y Combinator's Xerox Alto: restoring the legendary 1970s GUI computer] - contains a good overview of the hardware
 +
** [http://www.righto.com/2016/06/restoring-y-combinators-xerox-alto-day.html Restoring Y Combinator's Xerox Alto, day 1: Power supplies and disk interface]
 +
** [http://www.righto.com/2016/07/restoring-y-combinators-xerox-alto-day.html Restoring Y Combinator's Xerox Alto, day 2: Repairing the display]
 +
** [http://www.righto.com/2016/07/restoring-y-combinators-xerox-alto-day_11.html Restoring Y Combinator's Xerox Alto, day 3: Inside the disk drive]
 +
** [http://www.righto.com/2016/07/restoring-y-combinators-xerox-alto-day_31.html Restoring Y Combinator's Xerox Alto, day 4: What's running on the system]
 +
** [http://www.righto.com/2016/09/xerox-alto-restoration-day-5-smoke-and.html Restoring YCombinator's Xerox Alto day 5: Microcode tracing with a logic analyzer]
 +
** [http://www.righto.com/2016/09/restoring-ycombinators-xerox-alto-day-6.html Restoring YCombinator's Xerox Alto day 6: Fixed a chip, data read from disk]
 +
** [http://www.righto.com/2016/09/restoring-ycs-xerox-alto-day-7.html Restoring a Xerox Alto day 7: experiments with disk and Ethernet emulators]
 +
** [http://www.righto.com/2016/09/restoring-ycs-xerox-alto-day-8-it-boots.html Restoring a vintage Xerox Alto day 8: it boots!]
 +
** [http://www.righto.com/2016/10/restoring-ycs-xerox-alto-day-9-tracing.html Restoring YC's Xerox Alto day 9: tracing a crash through software and hardware]
 +
** [http://www.righto.com/2016/10/restoring-ycs-xerox-alto-day-10-new.html Restoring YC's Xerox Alto day 10: New boards, running programs, mouse problems]
 +
** [http://www.righto.com/2018/03/a-1970s-disk-drive-that-wouldnt-seek.html A 1970s disk drive that wouldn't seek: getting our Xerox Alto running again]
  
 
[[Category: Workstations]]
 
[[Category: Workstations]]
 +
[[Category: Xerox]]

Latest revision as of 01:48, 18 November 2024

The Alto, built by Xerox' Xerox PARC laboratory, was a ground-breaking and extremely influential personal computer - in fact, all contemporary personal computers are effectively descendants of the Alto.

The Alto was novel, for its time, in that each machine had a bit-mapped display, allowing the creation of a graphical user interface, and was also attached to a high-speed LAN, the then-new Ethernet, also invented at PARC. In addition to the keyboard, users could use a mouse to interact with applications.

Xerox attempted to commercialize the lessons of the Alto, in the Xerox Star, but it was not a commercial success. Other companies, including IBM (hardware), Microsoft (software) and Apple (both) did manage to produce successful products along the lines pioneered by the Alto.

Of course, everyone now lives in the world pioneered by the Alto.

Details

The Alto's 16-bit-wide CPU was microcoded (which resulted in it being called the machine's 'microprocessor', although that term did not at the time have the meaning that it does now). As a result, it could emulate several different CPUs. It was built out of TTL, and the microprocessor's clock rate was 170 nsec. The CPU was implemented as 5 PCBs which plugged into a common backplane, along with four PCBs for main memory (in a 64KW address space of 16-bit words), and those for device controllers such as the disk, display, and Ethernet.

There were two different versions, the Alto I and Alto II, which were almost identical; the latter was a re-engineered version of the former. The biggest difference was that the Alto II could have a maximum of 256 KW of memory, using bank switching, compared to the 64KW of the Alto I (although in actuality, limited use was made of the extended memory). Data in the memory of an Alto I was protected with parity; the Alto II used ECC, with 6 bits plus a parity bit per double-word. Also, all Altos had 1KW of ROM microcode (microcode words were 32 bits wide), and eventually also 1KW of writeable RAM microcode memory. (The basic ROM microcode more or less emulated a Data General Nova.) Some Alto IIs supported a second 1KW of PROM microcode; others had three 1KW banks of microcode RAM.

The Alto provided several paths for input/output. For the highest speeds peripherals, the CPU did not support DMA; rather, such devices (disk, display, LAN) connected to the CPU's main bus. The processor then had provision for up to 16 prioritized microcode tasks, some of which were dedicated to particular devices, and did bulk I/O; a timer task handled others, such as the mouse. A PC per priority level allowed zero-overhead switching between execution of microinstructions at different priority levels when the hardware called for another one to be active. (Emulation of the Alto's native instruction set was assigned to the lowest priority level.)

Slower devices (keyboard, etc) could be attached to the machine's memory bus, allowing their registers to appear in the memory address space, for access by programmed I/O; the last two 'pages' (nothing to do with virtual memory, which the Alto did not support) of memory address space, 512 words, were dedicated to this. Finally, a parallel port, connected to the CPU's memory control board, allowed miscellaneous slow devices (e.g. slow printers) to be connected.

Altos all had a 1.25Mbyte cartridge disk drive from Diablo Systems (the same drive as in the RK02 disk drive); the Alto-based Interim File System (IFS) file servers used Trident disk drives.

See also

External links

Recent restoration of an Alto