# ND-500

The ND-500 was a 32-bit superminicomputer delivered in 1981 by Norsk Data priced from £75,000 for the base model. It relied on a ND-100 to do housekeeping tasks and run the OS, SINTRAN III. A configuration could feature up to four ND-500 CPUs in a shared-memory configuration.

## System architecture

The ND-500 combined a 32-bit system based on one or more Nord-500 or ND-500 processors with a ND-100 minicomputer responsible for input/output handling, job scheduling, management of the ND-500 system, and providing a multi-user environment based on the SINTRAN III/VS operating system. This arrangement largely preserved the general architecture of systems based on the preceding Nord-5 and Nord-50 models, and in keeping with those models, the 32-bit component of the ND-500 was aimed at "simulation, numerical analysis and scientific" workloads.
The ND-500 processor employed split data and instruction caches, running with a 110 nanosecond cycle time, along with similarly separated memory management units, thus permitting access to a full 32-bit address space for both program instructions and data. A total 32 MB of physical memory was supported. Physical memory was shared between the ND-100 and ND-500 systems, exposed in a "multiport" arrangement, with the ND-500 having two paths to this RAM, the ND-100 having one path, and the direct memory access hardware having its own path. A prefetch processor was used to decode instructions fetched from memory, to populate the execution pipeline, and to initiate memory accesses for referenced addresses. This processor operated concurrently with the arithmetic logic unit.

## Processor architecture

The instruction set of the ND-500, featuring "184 basic instruction codes" specialised by several data types and addressing modes, along with "few and specialized" registers, lent itself to an instruction encoding of only one or two bytes, albeit with the potential for several accompanying operands, up to 256 in number. Operands could be from one to nine bytes in length, and thus the documentation for the ND-500 notes, "The shortest instructions are one byte long, the longest may be several thousand bytes long."$^{:117}$ This contrasted strongly with the design of the CPU in its predecessor, the Nord-50, which featured 32-bit instructions in only three formats and the availability of 64 general-purpose registers.
The ND-500 processor provides only four 32-bit registers for use as integer accumulators or index registers, I$_1$ through I$_4$, and four 32-bit registers for use as floating-point accumulators, A$_1$ through A$_4$, each extended by one of four extension registers, E$_1$ through E$_4$, to provide 64-bit registers for double-precision floating-point operations. Base registers B and R provide access to local variables and record storage respectively. Several other special-purpose registers are provided such as the program counter (P), link or subroutine return address (L), top-of-stack (TOS), plus registers related to trap handling, processor status, and process characteristics. Of the 50 documented registers in the ND-500, several are reserved for use by the processor's microprogram.
Thus, in its selection of registers, the ND-500 processor more strongly resembles the ND-100 which, at each priority level, provides a single accumulator (A), index register (X), base register (B), extension register (D), program counter (P), link register (L), along with a temporary register (T) mostly used for floating-point operations, and a status register (STS). Unlike the ND-500, the ND-100 preserves the fixed-size, 16-bit instruction format of the earlier Nord-10 series, but like the ND-500, the ND-100 processor is microprogrammed.$^{:2–1,2–6,3–1}$
Promotional materials for the ND-500 emphasised the "highly symmetric" or orthogonal instruction set, permitting the use of all addressing modes with all instruction types and with all data types, providing memory-to-memory instructions able to retrieve operands, perform computational operations, and store results. Such materials claimed a higher code density than most 16-bit computers despite the 32-bit nature of the ND-500 processor.$^{:5}$

## Hardware implementations

In its first incarnation, the ND-500 was built using TTL integrated circuits, just as the Nord-50 had been. The floating-point processor featured in the ND-500 reportedly consisted of 579 integrated circuits and used a combinatorial approach to support the execution of 64-bit multiplication operations in 480 nanoseconds. Norsk Data claimed a Whetstone benchmark rating of 1.4 to 1.8 million single-precision Whetstone instructions per second for the ND-500.
The ND-500 architecture lived through four distinct implementations. Each implementation was sold under a variety of different model numbers.
ND also sold multiprocessor configurations, naming them ND-580/n and an ND-590n, where n represented the number of CPUs in a given configuration, 2, 3, or 4.

### ND-500/1

Sold as the ND-500, ND-520, ND-540, and ND-560.

### ND-500/2

Sold as the ND-570, ND-570/CX, and ND-570/ACX.
The ND-500/CX series upgraded the ND-500 range during 1984, introducing the ND-530/CX, ND-550/CX, ND-560/CX and ND-570/CX in a range of different product variants, including the compact model III for the lower-end products. Advertised performance figures were given as 0.6, 1.3, 2.1 and 3.3 million Whetstone instructions per second for the respective products.

### ND-505

The ND-505 was a version of the ND-500 machine with 29 bit addressing space. Pins were essentially snipped on the backplane, removing its status as a superminicomputer, allowing it to legally pass the CoCom embargo in force at the time and be exported to the Eastern Bloc.

### Samson

Sold as the ND-5200, ND-5400, ND-5500, ND-5700, and ND-5800. The ND-120 CPU line, which constituted the ND-100 side of most ND-5000 computers, was named Delilah. As the 5000 line progressed in speed, the dual-arch ND-100/500 configuration increasingly became bottlenecked by all input/output (I/O) having to go through the ND-100.
The ND-5700, ND-5800 and ND-5900 were introduced in 1987 as high-end models, employing "state-of-the-art CMOS gate array technology" to reduce the footprint of the CPU implementation, replacing the 24 circuit boards required in the previous ND-500 architecture models. The ND-5900 was a multi-CPU model featuring two, three or four CPUs. Performance varied between the models, with the ND-5700 delivering half the performance of the ND-5800, and with the ND-5900 models respectively delivering two, three and four times the performance of the ND-5800. Pricing for the models started at $400,000 for the ND-5700, reaching $1.53 million for the four-CPU ND-5900.
Later models were introduced at the low end of the range in the form of the ND-5000 Compact series, aimed at small and medium-size companies and featuring a cabinet size with "modest dimensions", "occupying less than a square metre of floor space", and designed for a conventional office environment, as opposed to a dedicated machine room. Offered as the ND-5200 Compact, ND-5400 Compact, ND-5500 Compact and ND-5700 Compact, supporting smaller amounts of memory than the earlier ND-5000 models, performance of the high-end ND-5700 Compact was around that of the conventional ND-5700 model.
The Compact series generally offered a reported 0.5 to 3.5 million Whetstone instructions per second across the different models. Norsk Data claimed that this was "the world's largest compatible range" of computers, or perhaps the industry's range with broadest performance characteristics across compatible models, with the top-end ND-5900 Model 4 delivering a claimed 26 million Whetstone instructions per second.

### Rallar

Sold as the ND-5830 and ND-5850. The Rallar processor consisted of two main VLSI gate arrays, KUSK (En: Jockey) and GAMP (En: Horse).
In 1988, with the introduction of Norsk Data's Extended System Architecture, this being the company's open systems strategy, two models of the ND-5000 ES (Extended Server) product were unveiled: the low-end Model S as an "affordable supermini in micro format", and the more powerful Model C as a departmental server based on the ND-5800 SE processor, yielding an almost two-fold performance improvement over earlier products.
Alongside these newer ND-5000-based models, the company also introduced the ND-5100/xi system. Despite adherence to the existing naming convention, this was actually a system based on the Intel 80386 running SCO Xenix System V, offered in 14 different configurations. This inconsistent branding persisted with the incorporation of the ND-5000 technology into Norsk Data's Uniline range, consisting of three models based on the Intel 80386 having the Uniline 10, 20 and 40 designations, alongside the Uniline 35, 45 and 55 models based on the ND-5000.$^{:6}$
From 1990, upgrades were offered for ND-5000 models having the Uniline or ND-5000 ES designation to deliver an upgraded system with Uniline 88/20C specifications, thus becoming a system based on the Motorola 88000 architecture running a Unix implementation provided by UniSoft. Apart from the low-end Uniline 88/17Jr model based on the Data General Aviion 3200 which ran DG/UX, the Uniline 88 range was developed by the Norsk Data spin-off, Dolphin Server Technology.$^{:54,56,59,62}$

## Software

LED was a programmer's source-code editor by Norsk Data running on the ND-500 computers running Sintran III. It featured automatic indenting, pretty-printing of source code, and integration with the compiler environment. It was sold as an advanced alternative to PED. Several copies exist, and it is installed on the NODAF public access ND-5700.
In 1984, Norsk Data contracted Logica to undertake a project to port Unix Berkeley Software Distribution (BSD) 4.2 to the ND-500/CX, this being described as Logica's first attempt to port BSD 4.2 despite "extensive experience with Microsoft's Xenix". A C compiler from Luleå University College in Northern Sweden was used. The goal was to port Unix BSD to the ND-500 and use the ND-100 running Sintran-III as the front end. Thus, all I/O had to go through the ND-100 which proved very inefficient. For example, running vi on the ND-500 brought the ND-100 to its knees. The purpose of the effort was so that ND could sell the 500 to the European Organization for Nuclear Research (CERN), who were buying VAXes from Digital Equipment Corporation. But the ND-500 was unable to meet CERN's goals. Although the ND-500 processor was very fast for its time, it couldn't compete with the superior VAX I/O architecture.
With the launch of the ND-5000 Compact models in 1987, Norsk Data promised the later availability of a POSIX-compliant Unix system running concurrently with Sintran on the main ND-5000 processor, as opposed to running within Sintran, persisting with the use of Sintran on the front-end ND-100 series processor. These models also incorporated the Motorola 68020 as input/output controllers.