- NS320xx
-
The 320xx or NS32000 was a series of microprocessors from National Semiconductor ("NS", "Natsemi"). They were likely the first 32-bit general-purpose microprocessors on the market, but due to a number of factors never managed to become a major player. The 320xx series was also used as the basis of the Swordfish series of microcontrollers.
Contents
Architecture
The processors had 8 general purpose 32-bit registers, plus a series of special-purpose registers:
- Frame pointer
- Stack pointer (one each for user and supervisor modes)
- Static base register, for referencing global variables
- Program counter
- A typical processor status register, with a low-order user byte and a high-order system byte.
(Additional system registers not listed.)
The instruction set was very much in the CISC model, with 2-operand instructions, memory-to-memory operations, flexible addressing modes, and variable-length byte-aligned instruction encoding. Addressing modes could involve up to two displacements and two memory indirections per operand.
Unlike some other processors, autoincrement of the base register was not provided; the only exception was a "top of stack" addressing mode that would pop sources and push destinations. Uniquely, the size of the displacement was encoded in its most significant bits: 0, 10 and 11 preceded 7-, 14- and 30-bit signed displacements. (Although the processors were otherwise consistently little-endian, displacements in the instruction stream were stored in big-endian order.)
General purpose operands were specified using a 5-bit field. To this could be added an index byte (specifying the index register and 5-bit base address), and up to 2 variable-length displacements per operand.
Beginnings: the 32016 and 32032
The first chip in the series was originally called 16032, later renamed 32016 to emphasize its 32-bit internals. It became available in the late 1970s, and may have been the first 32-bit chip to reach mass production and sale (at least according to National Semiconductor marketing).
The original 32016 had a 16-bit external databus, a 24-bit external address bus, and a full 32-bit instruction set. It also included a coprocessor interface which allows coprocessors such as FPUs and MMUs to be attached as peers to the main processor.
The instruction set was extremely complex but mostly regular, with a large set of addressing modes. It was somewhat similar in spirit to (but not compatible with) the popular DEC VAX minicomputer instruction set. The 32016 was also very similar to the Motorola 68000, which also used 32-bit internals with a 16-bit data bus and 24-bit address bus.
The 32032 was introduced in 1984. It was almost completely compatible, but featured a 32-bit data bus (although keeping the 24-bit address bus) for somewhat faster performance. There was also a 32008, which was a 32016 with a data bus cut down to 8-bits wide for low cost applications. It was philosophically similar to the MC68008, and equally unpopular.
National Semiconductor also produced related support chips like Floating Point Units (FPUs), Memory Management Units (MMUs), and Direct Memory Access (DMA) controllers. With the full set plus memory chips and peripherals, it was feasible to build a 32-bit computer system capable of supporting modern multi-tasking operating systems, something that had previously been possible only on expensive minicomputers and mainframes.
The 32332, 32532, Swordfish & Others
During the 1980s, successor chips called the NS32332 and NS32532 arrived, maintaining a good degree of compatibility, with much improved reliability and performance. By then the damage to reputation had been done, however, and these chips were (probably unjustly) ignored by most of the market.
In 1985, National Semi introduced the NS32332, which was a much improved version of the 32032. From the datasheet, the enhancements include "the addition of new dedicated addressing hardware (consisting of a high speed ALU, a barrel shifter and an address register), a very efficient increased (20 bytes) instruction prefetch queue, a new system/memory bus interface/protocol, increased efficiency slave processor protocol and finally enhancements of microcode." There was also a new NS32382 MMU, NS32381 FPU and the (very rare) NS32310 interface to a Weitek FPA.
In the Spring of 1987, National Semi introduced the NS32532. Running at 20-, 25- & 30-MHz, the NS32532 was an improved NS32332 with an integrated MMU and improved memory performance. Interestingly, there wasn't a new FPU; the NS32532 used the existing NS323381. The NS32532 was the basis of one of the few fully realized "public domain" hardware projects (that is, resulting in an actual, useful machine running a real operating system, in this case Minix or NetBSD), the PC532.
The Swordfish was the semi-mythical NS32732 (sometimes called NS32764), originally envisioned as the high performance successor to the NS32532. This program never came to the market, but derivatives aimed at embedded systems arrived circa 1990 (along with versions of the older NS32000 line for low cost products such as the NS32GX32, NS32CG16, NS32FV16, NS32FX161 and NS32FX164). These processors had some success in the laser printer and fax market, despite intense competition from AMD and Intel RISC chips.
Datasheets exist for an NS32132, apparently designed for multiprocessor systems, but there is no evidence that the processor was ever produced.
Machines Using the NS32000 Series
An few example machines using NS32000-series CPUs:
- Acorn Cambridge Workstation - NS32016 (with 6502 host)
- BBC Micro - NS32016 Second Processor [1] [2] [3]
- Whitechapel MG-1 - NS32016
- Whitechapel MG200 - NS32332
- Opus - NS16032 PC Add-On Board
- Sequent Balance - NS32016, NS32032 & NS32332 Multiprocessor
- ETH Zurich Ceres workstation - NS32532
- Heurikon VME532 - NS32532 VME Card (with cache)
- PC532 - NS32532
- Tolerant Systems Eternity Series - NS32032 w/ NS32016 I/O processor
- National Semiconductor ICM-3216 - NS32016
- National Semiconductor ICM-332-1 - NS32332 w/ NS32016 I/O processor
- National Semiconductor SYS32/20 - NS32016 PC Add-On Board w/ Unix
- Encore Multimax - NS32332 & NS32532 Multiprocessor
- Trinity College Workstation - NS32332
- Tektronix 6130 & 6250 Workstation - NS32016 & NS32032
- Siemens PC-MX2 - NS32016
- Siemens MX300-05/-10/-15/-30 - NS32332 (-05/-10) or NS32532 (-15/-30) under SINIX (MX300-55 and later use i486)
- Siemens MX500-75/-85 - NS32532 (2-8x CPUs; Sequent Boards / MX500-90 uses 2-12x i486)
- Compupro 32016 - NS32016 S-100 Card
- Symmetric Computer Systems S/375[4] - NS32016, used to cross develop 386BSD
- General Robotics Corp. Python - NS32032 & N32016 Q-Bus Card
- Teklogix 9020 network controller - NS32332
- Labtam 32032
Similarly named non-NS processors
The use of some variation on the number "32" was the obvious naming scheme for any series of 32-bit microprocessors. This leads to a certain amount of confusion and totally unrelated processors with similar names. For example:
- There was the WE32xxx microprocessor series made by Western Electric. This chipset was used in the AT&T 3B2 series of minicomputers.
- A very widespread series of DSPs by Texas Instruments is the TMS320 line (starting with the TMS32010).
None of these are related to the National Semiconductor NS32000 series.
References
- Trevor G. Marshall, George Scolaro and David L. Rand: The Definicon DSI-32 Coprocessor. Micro Cornucopia, Aug/September 1985,
- Trevor G. Marshall, George Scolaro and David L. Rand: The DSI-32 Coprocessor Board. Part 1, BYTE, August 1985, pp 120–136; Part 2, BYTE, September 1985, p 116.
External links
Datasheets
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
Categories:- Microprocessors
Wikimedia Foundation. 2010.