NORD-10
Encyclopedia
NORD-10 was a medium-sized general-purpose 16-bit
minicomputer
designed for multilingual time-sharing
applications and for real-time
multiprogram systems, produced by Norsk Data
. It was introduced in 1973. The later follow up model, NORD-10/S, introduced in 1975, introduced cache
, paging
, and other miscellaneous improvements.
The CPU had a microprocessor, which was defined in the manual as a portmanteau of "microcode processor" - not to be confused with the then nascent microprocessor. The CPU additionally contained instructions, operator communication, bootstrap loaders, and hardware test programs, that were implemented in a 1K ROM
.
The microprocessor also allowed for customer specified instructions to be built in. NORD-10 had a memory management system with hardware paging extending the memory size from 64 to 256K 16-bit words and two independent protecting systems, one acting on each page and one on the mode of instructions. The interrupt system had 16 program levels in hardware, each with its own set of general-purpose registers.
Note: Much of the following information is taken from a document written by Norsk Data introducing the NORD-10. Some information, particularly about the memory system, may not be accurate for the later NORD-10/S.
s. The last 8 positions in the rack were used for I/O devices operated by program control, such as the console Teletype, punched paper tape
and punched card
reader and punch, line printer, display, operator's panel, and the real time clock.
The NORD-10 had 160 registers, of which 128 were available to programs, 8 on each of the 16 program levels. 6 of those registers were general registers, one was the program counter
, and the other contained status information. Floating point
operations were standard. The instructions could operate on 5 different formats, a bit
, an 8-bit byte
, 16-bit words, 32-bit double words, and 48-bit floating point words.
could take up to eight 8K modules. It was possible to extend the NORD-10's physical address space beyond 64K up to a maximum of 256K 16-bit words. The paging
system translated a 16-bit virtual address
into an 18-bit physical address
.
The hardware paging system made it possible for one user to write programs up to 64K (virtual memory), and only parts of the program to be present in physical memory at any time (using dynamic memory allocation). The paging system divided memory into 1K pages. The 4 page index tables were found in a 256 word extremely fast memory block. The calculation of a physical address resulted in no appreciable delay in the effective memory cycle time.
The NORD-10 had two independent protection systems. Each individual page could be protected against being read from, written into (type data or type instructions), or against reading of instructions. In addition, there was a system which divided the pages into four different categories, called rings. The rings
had a priority from 0 to 3. A program on a lower ring was never allowed to access the pages on a higher ring. Programs which ran on rings 2 and 3 could use the whole NORD-10 instruction set, while programs on rings 0 and 1 only had a limited instruction set available. The different rings were displayed on the operator's panel. For example, ring 0 (USER) may have held a user program, while compilers and assemblers ran in ring 1 (PROTECTED USER). The bulk of the operating system could run in ring 2 (SYSTEM), and the kernel in ring 3 (PROTECTED SYSTEM). If one attempted to execute privileged instructions in ring 0 or 1, or attempts were made to accessed a protected page, a hardware status interrupt
would automatically be generated on program level 14 indicating the error.
system for all external devices. The bus system was divided into groups, and a great deal of effort had been made to ensure that no device would be able to jam the bus system in the case of malfunction. Each group had its own controller which in addition to functioning as an electronic switch for the bus system, could also change priority for the whole group. All interconnections between the cards were done with multilayer printed circuit
backwiring boards
, and all I/O
interface
had the same standard form. The system could therefore be extended or reconfigured by plugging in new or shifting around the existing interface cards. The position of the device interface in the card rack determined the interrupt priority
of the device. In DMA
transfers the device would send a "REQUEST". The CPU would answer with a "GRANT" signal, which would be passed from device to device until it came to the device which initiated the "REQUEST", and transfer to the memory could take place. When two or more devices request a DMA request simultaneously to the CPU had the highest priority. One memory cycle later the next DMA along the chain would be allowed to send data, and so on, until a higher priority device again sent a REQUEST. This meant that many DMA devices could use the same bus system at the full data transfer rate. It was not necessary to establish a "master-slave" connection. The transfer was one 16-bit word/850 nanoseconds, or 2.2MB/s.
The printed backplane of the I/O bus was modular in groups of 8 interface slots. Interfaces for mass storage
s as disk
, drum
, magtape
, etc., were built with one interface card to be plugged at the appropriate place in the bus system, the remaining control cards (6-7) were placed in one of the backplane modules.
. The levels running could be shown on the front panel
by pressing the button ACTIVE LEVELS. Levels 0 through 9 were used for programs. Internal hardware status interrupts were assigned to level 14, whilst level 15 was reserved for extremely fast user interrupts (this was colloquially called the "Synchrotron level", since the only program ever to have used it was the program controlling the synchrotron
at CERN
)
Levels 10, 11, 12, and 13 were reserved for external devices. Each device had its own unique identification vector. In all 2048 such vectors were available. The "IDENT" instruction determined which device was giving an interrupt. The identification of an interrupt took 1.7 microseconds, including the time taken to enable and disable the registers.
, SINTRAN III
. The minimum configuration for SINTRAN III included a standard NORD-10 with 8K of core
.
With NORD-TSS all users could simultaneously run any of the systems FORTRAN IV, BASIC, MAC Assembler, NODAL
, NORD-PL, or QED
.
by NODAF http://nodaf.no/index.php/NORD-10.5_progress_log and Trondheim
by Norwegian University of Science and Technology
.
Its predecessor was the NORD-1
and its successor the NORD-100
.
16-bit
-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...
minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...
designed for multilingual time-sharing
Time-sharing
Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...
applications and for real-time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...
multiprogram systems, produced by Norsk Data
Norsk Data
Norsk Data was a computer manufacturer located in Oslo, Norway. Existing from 1967 to 1992, it had its most active period in the years from the early 1970s to the late 1980s...
. It was introduced in 1973. The later follow up model, NORD-10/S, introduced in 1975, introduced cache
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
, paging
Paging
In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...
, and other miscellaneous improvements.
The CPU had a microprocessor, which was defined in the manual as a portmanteau of "microcode processor" - not to be confused with the then nascent microprocessor. The CPU additionally contained instructions, operator communication, bootstrap loaders, and hardware test programs, that were implemented in a 1K ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...
.
The microprocessor also allowed for customer specified instructions to be built in. NORD-10 had a memory management system with hardware paging extending the memory size from 64 to 256K 16-bit words and two independent protecting systems, one acting on each page and one on the mode of instructions. The interrupt system had 16 program levels in hardware, each with its own set of general-purpose registers.
Note: Much of the following information is taken from a document written by Norsk Data introducing the NORD-10. Some information, particularly about the memory system, may not be accurate for the later NORD-10/S.
The CPU
The CPU consisted of a total 24 printed circuit boardPrinted circuit board
A printed circuit board, or PCB, is used to mechanically support and electrically connect electronic components using conductive pathways, tracks or signal traces etched from copper sheets laminated onto a non-conductive substrate. It is also referred to as printed wiring board or etched wiring...
s. The last 8 positions in the rack were used for I/O devices operated by program control, such as the console Teletype, punched paper tape
Punched tape
Punched tape or paper tape is an obsolete form of data storage, consisting of a long strip of paper in which holes are punched to store data...
and punched card
Punched card
A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions...
reader and punch, line printer, display, operator's panel, and the real time clock.
The NORD-10 had 160 registers, of which 128 were available to programs, 8 on each of the 16 program levels. 6 of those registers were general registers, one was the program counter
Program counter
The program counter , commonly called the instruction pointer in Intel x86 microprocessors, and sometimes called the instruction address register, or just part of the instruction sequencer in some computers, is a processor register that indicates where the computer is in its instruction sequence...
, and the other contained status information. Floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
operations were standard. The instructions could operate on 5 different formats, a bit
Bit
A bit is the basic unit of information in computing and telecommunications; it is the amount of information stored by a digital device or other physical system that exists in one of two possible distinct states...
, an 8-bit byte
Byte
The byte is a unit of digital information in computing and telecommunications that most commonly consists of eight bits. Historically, a byte was the number of bits used to encode a single character of text in a computer and for this reason it is the basic addressable element in many computer...
, 16-bit words, 32-bit double words, and 48-bit floating point words.
The memory
The memory system of the first NORD-10s were built up of 8K 16-bit modules housed in a special memory rack. One 19-inch rack19-inch rack
A 19-inch rack is a standardized frame or enclosure for mounting multiple equipment modules. Each module has a front panel that is wide, including edges or ears that protrude on each side which allow the module to be fastened to the rack frame with screws.-Overview and history:Equipment designed...
could take up to eight 8K modules. It was possible to extend the NORD-10's physical address space beyond 64K up to a maximum of 256K 16-bit words. The paging
Paging
In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...
system translated a 16-bit virtual address
Virtual address
In computer technology, a virtual address is an address identifying a virtual, i.e. non-physical, entity.-Description:The term virtual address is most commonly used for an address pointing to virtual memory or, in networking, when referring to a virtual network address...
into an 18-bit physical address
Physical address
In computing, a physical address, also real address, or binary address, is the memory address that is represented in the form of a binary number on the address bus circuitry in order to enable the data bus to access a particular storage cell of main memory.In a computer with virtual memory, the...
.
The hardware paging system made it possible for one user to write programs up to 64K (virtual memory), and only parts of the program to be present in physical memory at any time (using dynamic memory allocation). The paging system divided memory into 1K pages. The 4 page index tables were found in a 256 word extremely fast memory block. The calculation of a physical address resulted in no appreciable delay in the effective memory cycle time.
The NORD-10 had two independent protection systems. Each individual page could be protected against being read from, written into (type data or type instructions), or against reading of instructions. In addition, there was a system which divided the pages into four different categories, called rings. The rings
Ring (computer security)
In computer science, hierarchical protection domains, often called protection rings, are a mechanism to protect data and functionality from faults and malicious behaviour . This approach is diametrically opposite to that of capability-based security.Computer operating systems provide different...
had a priority from 0 to 3. A program on a lower ring was never allowed to access the pages on a higher ring. Programs which ran on rings 2 and 3 could use the whole NORD-10 instruction set, while programs on rings 0 and 1 only had a limited instruction set available. The different rings were displayed on the operator's panel. For example, ring 0 (USER) may have held a user program, while compilers and assemblers ran in ring 1 (PROTECTED USER). The bulk of the operating system could run in ring 2 (SYSTEM), and the kernel in ring 3 (PROTECTED SYSTEM). If one attempted to execute privileged instructions in ring 0 or 1, or attempts were made to accessed a protected page, a hardware status interrupt
Interrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
would automatically be generated on program level 14 indicating the error.
I/O system and Bus Architecture
The NORD-10 was equipped with a common busComputer bus
In computer architecture, a bus is a subsystem that transfers data between components inside a computer, or between computers.Early computer buses were literally parallel electrical wires with multiple connections, but the term is now used for any physical arrangement that provides the same...
system for all external devices. The bus system was divided into groups, and a great deal of effort had been made to ensure that no device would be able to jam the bus system in the case of malfunction. Each group had its own controller which in addition to functioning as an electronic switch for the bus system, could also change priority for the whole group. All interconnections between the cards were done with multilayer printed circuit
Printed circuit board
A printed circuit board, or PCB, is used to mechanically support and electrically connect electronic components using conductive pathways, tracks or signal traces etched from copper sheets laminated onto a non-conductive substrate. It is also referred to as printed wiring board or etched wiring...
backwiring boards
Backplane
A backplane is a group of connectors connected in parallel with each other, so that each pin of each connector is linked to the same relative pin of all the other connectors forming a computer bus. It is used as a backbone to connect several printed circuit boards together to make up a complete...
, and all I/O
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
interface
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
had the same standard form. The system could therefore be extended or reconfigured by plugging in new or shifting around the existing interface cards. The position of the device interface in the card rack determined the interrupt priority
Interrupt priority level
The interrupt priority level is a part of the current system interrupt state, which indicates the interrupt requests that will currently be accepted...
of the device. In DMA
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....
transfers the device would send a "REQUEST". The CPU would answer with a "GRANT" signal, which would be passed from device to device until it came to the device which initiated the "REQUEST", and transfer to the memory could take place. When two or more devices request a DMA request simultaneously to the CPU had the highest priority. One memory cycle later the next DMA along the chain would be allowed to send data, and so on, until a higher priority device again sent a REQUEST. This meant that many DMA devices could use the same bus system at the full data transfer rate. It was not necessary to establish a "master-slave" connection. The transfer was one 16-bit word/850 nanoseconds, or 2.2MB/s.
The printed backplane of the I/O bus was modular in groups of 8 interface slots. Interfaces for mass storage
Mass storage
In computing, mass storage refers to the storage of large amounts of data in a persisting and machine-readable fashion. Devices and/or systems that have been described as mass storage include tape libraries, RAID systems, hard disk drives, magnetic tape drives, optical disc drives, magneto-optical...
s as disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...
, drum
Drum memory
Drum memory is a magnetic data storage device and was an early form of computer memory widely used in the 1950s and into the 1960s, invented by Gustav Tauschek in 1932 in Austria....
, magtape
Magnetic tape
Magnetic tape is a medium for magnetic recording, made of a thin magnetizable coating on a long, narrow strip of plastic. It was developed in Germany, based on magnetic wire recording. Devices that record and play back audio and video using magnetic tape are tape recorders and video tape recorders...
, etc., were built with one interface card to be plugged at the appropriate place in the bus system, the remaining control cards (6-7) were placed in one of the backplane modules.
The Interrupt System
The NORD-10 had a multiprogram system with 16 priority program levels. Each program level had its own set of registers, including a program counter and a status wordProgram status word
The Program status word is an IBM System/360 architecture and successors control register which performs the function of a Status register in other architectures, and more....
. The levels running could be shown on the front panel
Front panel
A front panel was used on early electronic computers to display and allow the alteration of the state of the machine's internal registers and memory. The front panel usually consisted of arrays of indicator lamps, toggle switches, and push buttons mounted on a sheet metal face plate...
by pressing the button ACTIVE LEVELS. Levels 0 through 9 were used for programs. Internal hardware status interrupts were assigned to level 14, whilst level 15 was reserved for extremely fast user interrupts (this was colloquially called the "Synchrotron level", since the only program ever to have used it was the program controlling the synchrotron
Synchrotron
A synchrotron is a particular type of cyclic particle accelerator in which the magnetic field and the electric field are carefully synchronised with the travelling particle beam. The proton synchrotron was originally conceived by Sir Marcus Oliphant...
at CERN
CERN
The European Organization for Nuclear Research , known as CERN , is an international organization whose purpose is to operate the world's largest particle physics laboratory, which is situated in the northwest suburbs of Geneva on the Franco–Swiss border...
)
Levels 10, 11, 12, and 13 were reserved for external devices. Each device had its own unique identification vector. In all 2048 such vectors were available. The "IDENT" instruction determined which device was giving an interrupt. The identification of an interrupt took 1.7 microseconds, including the time taken to enable and disable the registers.
System Software
The NORD-10 was delivered with a time-shared system, NORD-TSS, and a real-time multitasking operating systemOperating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
, SINTRAN III
SINTRAN III
SINTRAN III was a real-time, multitasking, multi-user operating system used with Norsk Data computers from 1974. Unlike its predecessors SINTRAN I and II, it was entirely written by Norsk Data....
. The minimum configuration for SINTRAN III included a standard NORD-10 with 8K of core
Magnetic core memory
Magnetic-core memory was the predominant form of random-access computer memory for 20 years . It uses tiny magnetic toroids , the cores, through which wires are threaded to write and read information. Each core represents one bit of information...
.
With NORD-TSS all users could simultaneously run any of the systems FORTRAN IV, BASIC, MAC Assembler, NODAL
NODAL
Nodal is a protein that in humans is encoded by the NODAL gene. It is a member of the TGF beta superfamily. Like many other members of this superfamily, it is involved in cell differentiation...
, NORD-PL, or QED
QED (text editor)
QED is a line-oriented computer text editor that was developed by Butler Lampson and L. Peter Deutsch for the Berkeley Timesharing System running on the SDS 940. It was implemented by L...
.
Known remaining systems
There are several NORD-10 and NORD-10/S systems known to remain, many of which are in near-operational condition, and several are in the care of NODAF. Restorations of systems are planned in both OsloOslo
Oslo is a municipality, as well as the capital and most populous city in Norway. As a municipality , it was established on 1 January 1838. Founded around 1048 by King Harald III of Norway, the city was largely destroyed by fire in 1624. The city was moved under the reign of Denmark–Norway's King...
by NODAF http://nodaf.no/index.php/NORD-10.5_progress_log and Trondheim
Trondheim
Trondheim , historically, Nidaros and Trondhjem, is a city and municipality in Sør-Trøndelag county, Norway. With a population of 173,486, it is the third most populous municipality and city in the country, although the fourth largest metropolitan area. It is the administrative centre of...
by Norwegian University of Science and Technology
Norwegian University of Science and Technology
The Norwegian University of Science and Technology , commonly known as NTNU, is located in Trondheim. NTNU is the second largest of the eight universities in Norway, and, as its name suggests, has the main national responsibility for higher education in engineering and technology...
.
Its predecessor was the NORD-1
NORD-1
The NORD-1 was Norsk Data's first minicomputer. It was the first commercially available computer made in Norway.It was a 16-bit system, developed in 1967. The first NORD-1 installed was at the heart of a complete ship system aboard the M/S Taimyr, a Japanese-built cargo liner...
and its successor the NORD-100
NORD-100
The NORD-100 was a 16-bit minicomputer series made by Norsk Data, introduced in 1979. It shipped with the SINTRAN operating system, and the architecture was based on, and backwards compatible with, the NORD-10 line....
.