Difference between revisions of "NORD-10"

From Computer History Wiki
Jump to: navigation, search
(The NORD-10/S model used solid state memory)
(16-bit Norwegian cat.)
 
(2 intermediate revisions by one other user not shown)
Line 7: Line 7:
 
| year introduced = 1973
 
| year introduced = 1973
 
}}
 
}}
The '''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, including solid state memory (instead of core), thus the '/S'.
 
  
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, were implemented in a 1K [[Read-only memory|ROM]].
+
The '''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, including solid state memory (instead of [[core memory|core]]), thus the '/S'.
  
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.  
+
The [[Central Processing Unit|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 [[instruction]]s, operator communication, [[bootstrap]] loaders, and [[hardware]] test [[program]]s, were implemented in a 1K [[Read-only memory|ROM]].
  
''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 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 [[word]]s 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 register]]s.
 +
 
 +
''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 ==
  
The CPU consisted of a total 24 [[printed circuit board]]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 [[punched tape|tape]] and [[punch card|card]] reader and punch, line printer, display, operator's panel, and the [[real time clock]].
+
The CPU consisted of a total 24 [[printed circuit board]]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 [[paper tape|tape]] and [[punched card|card]] reader and punch, line printer, display, operator's panel, and the [[real time clock]].
  
The NORD-10 had 160 [[processor registers|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. It was also possible to order a 32-bit floating point option instead of the 48-bit one.
+
The NORD-10 had 160 [[register]]s, 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. It was also possible to order a 32-bit floating point option instead of the 48-bit one.
  
 
==The memory==
 
==The memory==
  
The [[Random access memory|memory]] system of the first NORD-10s were built up of 8K 16-bit modules housed in a special memory rack. One [[19-inch rack]] 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 [[main memory|memory]] system of the first NORD-10s were built up of 8K 16-bit modules housed in a special memory rack. One [[19-inch rack]] 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 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 [[Ring (computer security)|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.
+
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 [[ring]]s 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.
  
 
==I/O system and Bus Architecture==
 
==I/O system and Bus Architecture==
  
The NORD-10 was equipped with a common [[Computer bus|bus]] system for all [[Peripheral device|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 board|printed circuit]] [[Backplane|backwiring boards]], and all [[Input/output|I/O]] [[Interface (computer science)|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 level|interrupt priority]] of the device. In [[Direct memory access|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 issued a DMA request simultaneously the device nearest the CPU thus 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 NORD-10 was equipped with a common [[bus]] system for all external [[peripheral|device]]s. 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 [[device controller|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 board|printed circuit]] [[Backplane|backwiring boards]], and all [[Input/output|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 level|interrupt priority]] of the device. In [[Direct Memory Access|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 issued a DMA request simultaneously the device nearest the CPU thus 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 [[Hard disk|disk]], [[Drum memory|drum]], [[Magnetic Tape|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 printed backplane of the I/O bus was modular in groups of 8 interface slots. Interfaces for [[secondary storage|mass storage]] such as [[disk]], [[drum]], [[Magnetic tape|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 Interrupt System==
 
==The Interrupt System==
Line 43: Line 44:
 
==System Software==
 
==System Software==
  
The NORD-10 was delivered with a time-shared system, [[NORD-TSS]], and a real-time multitasking [[operating system]], [[SINTRAN III]]. The minimum configuration for SINTRAN III included a standard NORD-10 with 8K of [[Magnetic core memory|core]].  
+
The NORD-10 was delivered with a time-shared system, [[NORD-TSS]], and a real-time [[multi-tasking]] [[operating system]], [[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 programming language|BASIC]], MAC [[Assembly language#Assembler|Assembler]], [[NODAL]], [[NORD-PL]], or [[QED (text editor)|QED]].
+
With NORD-TSS all users could simultaneously run any of the systems [[FORTRAN|FORTRAN IV]], [[BASIC]], MAC [[Assembly language|Assembler]], [[NODAL]], [[NORD-PL]], or [[QED]].
  
 
==Known remaining systems==
 
==Known remaining systems==
Line 58: Line 59:
  
 
[[Category:Norsk Data Hardware]]
 
[[Category:Norsk Data Hardware]]
 +
[[Category: 16-bit Computers]]

Latest revision as of 12:52, 11 July 2023


NORD-10
Nord-10.jpeg
A pair of NORD-10/S minicomputers
Manufacturer: Norsk Data
Year Introduced: 1973
Word Size: 16 bit


The 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, including solid state memory (instead of core), thus the '/S'.

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, 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.

The CPU

The CPU consisted of a total 24 printed circuit boards. 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 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. It was also possible to order a 32-bit floating point option instead of the 48-bit one.

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 rack 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.

I/O system and Bus Architecture

The NORD-10 was equipped with a common bus 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 issued a DMA request simultaneously the device nearest the CPU thus 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 such 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 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 word. 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 "Synchroton level", since the only program ever to have used it was the program controlling the synchroton 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.

System Software

The NORD-10 was delivered with a time-shared system, NORD-TSS, and a real-time multi-tasking operating system, 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.

Known remaining systems

There are several known NORD-10 and NORD-10/S system 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 Oslo by NODAF [1] and Trondheim by NTNU.

Its predecessor was the NORD-1 and its successor the ND-100.

Sources

"Inside NORD-10", by Cand. Real. Jan Aske Børresen for A/S Norsk Data-Elektronikk, ND-nytt