Difference between revisions of "MASSBUS"

From Computer History Wiki
Jump to: navigation, search
(Add Data Bus)
m (+Category)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''MASSBUS''' was a high-speed I/O [[bus]] devised by [[DEC]], and used to connect DEC systems to high-speed disk drives and tape controllers such as the [[RP04]], [[RP06]], [[TM02]] and [[TM03]].
+
The '''MASSBUS''' was a high-speed [[input/output|I/O]] [[bus]] devised by [[Digital Equipment Corporation|DEC]], and used to connect DEC systems to high-speed [[disk]] [[drive]]s and [[magnetic tape|tape]] controllers such as the [[RP04 disk drive|RP04]], [[RP06 disk drive|RP06]], [[TM02]] and [[TM03]].
  
The fact that the MASSBUS connects to disk '''drives''' and tape '''controllers''' causes terminological difficulties, since there is also a 'controller' to connect the MASSBUS to the host computer. Hence, the term 'entity' will be used in this article to refer, generically, to things connected to the MASSBUS. A single MASSBUS can contain up to 8 entities.
+
Two major goals of using a common I/O bus were:
  
A variety of controllers existed to connect MASSBUS devices to various kinds of DEC systems: the [[RH10]] for the [[PDP-10]], the [[RH20]] for the [[KL10]], the [[RH11]] for the [[UNIBUS]] (usually on a [[PDP-11]]), the [[RH70]] for the [[PDP-11/70]], the [[RH750]] for the VAX-11/75x, and the [[RH780]] for the [[Synchronous Backplane Interconnect]] bus found on VAX-11/78x, VAX 86xx, etc.
+
* to allow a single [[device controller]] to handle multiple different [[peripheral]]s;
 +
* to allow DEC's main computer families (initially the [[PDP-10]] and [[PDP-11]]; later also the [[VAX]]en) to share a common set of peripherals.
 +
 
 +
The basic concept was suggested by [[Gordon Bell]] in July, 1972, and a committee of DEC engineers was formed to produce the first version of the specification, which came out in August.
 +
 
 +
The fact that the MASSBUS connects to disk '''drives''' and tape '''controllers''' causes terminological difficulties, since there is also a 'controller' to connect the MASSBUS to the host computer. Hence, the term 'device' will be used in this article to refer, generically, to things connected to the MASSBUS (other than the controller in the host system). A single MASSBUS can contain up to 8 devices.
 +
 
 +
A variety of controllers existed to connect a MASSBUS to various kinds of DEC systems: the [[RH10 MASSBUS controller|RH10]] for the [[PDP-10]], the [[RH20 MASSBUS controller|RH20]] for the [[KL10]], the [[RH11 MASSBUS controller|RH11]] for the [[UNIBUS]] (usually on a [[PDP-11]]), the [[RH70 MASSBUS controller|RH70]] for the [[PDP-11/70]], the [[RH750 Massbus Adapter‎‎|RH750]] for the [[VAX-11/750]], and the [[RH780 Massbus Adapter‎‎|RH780]] for the [[Synchronous Backplane Interconnect]] bus found on [[VAX-11/780|VAX-11/78x]], VAX 86xx, etc.
 +
 
 +
The [[PDP-15]] could also connect to MASSBUS devices via the [[UNICHANNEL 15 System|UC15 Unichannel]], but this used a [[PDP-11/05]] acting as a slave to the PDP-15 via shared memory, and also an RH11 on the -11/05's UNIBUS.
 +
 
 +
In the MASSBUS system, most device-specific [[register]]s (e.g. 'current [[cylinder]]' for disk drives) are actually in the device; the MASSBUS interface to the host computer only contains registers such as [[main memory]] transfer [[address]] and transfer word counts.
  
 
==Internal details==
 
==Internal details==
  
The MASSBUS contained two separate sections (effectively, separate busses): an asynchronous control section (the 'Control Bus'), and a synchronous data transfer section (the 'Data Bus'). The two sections operate completely independently.
+
The MASSBUS contained two separate sections (effectively, separate busses): an [[asynchronous]] control section (the 'Control Bus'), and a [[synchronous]] data transfer section (the 'Data Bus'). The two sections operate completely independently.
  
The control section is used to allow the [[CPU]] access to device registers implemented in the devices. The data section is 18 (optionally 16) bits wide, to allow use with both DEC's 36-bit and 16-bit (later 32-bit) architectures.
+
The control section is used to allow the [[Central Processing Unit|CPU]] access to device registers implemented in the devices. The data section is 18 (optionally 16) bits wide, to allow use with both DEC's 36-bit and 16-bit (later 32-bit) architectures.
  
 
===Control Bus lines===
 
===Control Bus lines===
Line 15: Line 26:
 
The Control Bus contains the following signals:
 
The Control Bus contains the following signals:
  
* Control Lines 0:15 - used to transfer control data
+
* Control Lines (C 0:15) - used to transfer control data
* Control Lines Parity
+
* Control Lines Parity (CPA)
* Drive Select 0:2 - selects the entity
+
* Drive Select (DS 0:2) - selects the entity
* Register Select 0:4
+
* Register Select (RS 0:4)
* Controller to Drive - direction of transfer
+
* Controller to Drive (CTOD) - direction of transfer
* Demand - set by the controller to initiate a transfer
+
* Demand (DEM) - set by the controller to initiate a transfer
* Transfer - acknowledgement from the entity
+
* Transfer (TRA) - acknowledgement from the entity
* Attention - set by an entity to notify the controller
+
* Attention (ATTN) - set by an entity to notify the controller
* Initialize - set by the controller
+
* Initialize (INIT) - set by the controller
* MASSBUS Fail - set by the controller to indicate power loss
+
* Power Fail (FAIL) - set by the controller to indicate power loss
 +
 
 +
The first two are bi-directional; all the others are from controller to entity, except for TRA and ATTN.
  
 
===Data Bus lines===
 
===Data Bus lines===
Line 30: Line 43:
 
The Data Bus contains the following signals:
 
The Data Bus contains the following signals:
  
* Data Lines 0:18 - used to transfer control data
+
* Data Lines (D 0:17) - used to transfer data
* Data Lines Parity
+
* Data Lines Parity (DPA)
* Sync Clock - on write, a request from the entity for data to be sent; on read, notification from the entity that data is ready
+
* Sync Clock (SCLK) - on write, a request from the entity for data to be sent; on read, notification from the entity that data is ready
* Write Clock - on write, notification from the controller that data is ready
+
* Write Clock (WCLK) - on write, notification from the controller that data is ready
* Run - a signal from the controller to start a transfer
+
* Run (RUN) - a signal from the controller to start a transfer
* End of Block - a signal from the entity to indicate the end of a transfer
+
* End of Block (EBL) - a signal from the entity to indicate the end of a transfer
* Exception - a signal from the entity to indicate that an error has occurred during a transfer
+
* Exception (EXC) - a signal from the entity to indicate that an error has occurred during a transfer
* Occupied - set by an entity to indicate that it is using the Data Bus
+
* Occupied (OCC) - set by an entity to indicate that it is using the Data Bus
 +
 
 +
The first two and EXC are bi-directional; all the others are from entity to controller, except for WCLK and RUN.
 +
 
 +
==External links==
 +
 
 +
* [http://www.bitsavers.org/pdf/dec/standards/DEC_STD_159_Massbus_Specificaton.pdf DEC STD 159] - MASSBUS Specification
 +
* [http://www.bitsavers.org/pdf/dec/disc/rm05/EK-RMADA-TD-001_Oct80.pdf RM MASSBUS Adapter Technical Description Manual] (EK-RMADA-TD-001)
 +
* [http://simh.trailing-edge.com/docs/massbusmystery.pdf A Massbus Mystery]
 +
 
 +
[[Category: MASSBUS]]
 +
[[Category: DEC Buses]]
 +
[[Category: DEC Documentation Errors]]
 +
[[Category: DEC Interface Standards]]

Latest revision as of 20:36, 2 December 2023

The MASSBUS was a high-speed I/O bus devised by DEC, and used to connect DEC systems to high-speed disk drives and tape controllers such as the RP04, RP06, TM02 and TM03.

Two major goals of using a common I/O bus were:

The basic concept was suggested by Gordon Bell in July, 1972, and a committee of DEC engineers was formed to produce the first version of the specification, which came out in August.

The fact that the MASSBUS connects to disk drives and tape controllers causes terminological difficulties, since there is also a 'controller' to connect the MASSBUS to the host computer. Hence, the term 'device' will be used in this article to refer, generically, to things connected to the MASSBUS (other than the controller in the host system). A single MASSBUS can contain up to 8 devices.

A variety of controllers existed to connect a MASSBUS to various kinds of DEC systems: the RH10 for the PDP-10, the RH20 for the KL10, the RH11 for the UNIBUS (usually on a PDP-11), the RH70 for the PDP-11/70, the RH750 for the VAX-11/750, and the RH780 for the Synchronous Backplane Interconnect bus found on VAX-11/78x, VAX 86xx, etc.

The PDP-15 could also connect to MASSBUS devices via the UC15 Unichannel, but this used a PDP-11/05 acting as a slave to the PDP-15 via shared memory, and also an RH11 on the -11/05's UNIBUS.

In the MASSBUS system, most device-specific registers (e.g. 'current cylinder' for disk drives) are actually in the device; the MASSBUS interface to the host computer only contains registers such as main memory transfer address and transfer word counts.

Internal details

The MASSBUS contained two separate sections (effectively, separate busses): an asynchronous control section (the 'Control Bus'), and a synchronous data transfer section (the 'Data Bus'). The two sections operate completely independently.

The control section is used to allow the CPU access to device registers implemented in the devices. The data section is 18 (optionally 16) bits wide, to allow use with both DEC's 36-bit and 16-bit (later 32-bit) architectures.

Control Bus lines

The Control Bus contains the following signals:

  • Control Lines (C 0:15) - used to transfer control data
  • Control Lines Parity (CPA)
  • Drive Select (DS 0:2) - selects the entity
  • Register Select (RS 0:4)
  • Controller to Drive (CTOD) - direction of transfer
  • Demand (DEM) - set by the controller to initiate a transfer
  • Transfer (TRA) - acknowledgement from the entity
  • Attention (ATTN) - set by an entity to notify the controller
  • Initialize (INIT) - set by the controller
  • Power Fail (FAIL) - set by the controller to indicate power loss

The first two are bi-directional; all the others are from controller to entity, except for TRA and ATTN.

Data Bus lines

The Data Bus contains the following signals:

  • Data Lines (D 0:17) - used to transfer data
  • Data Lines Parity (DPA)
  • Sync Clock (SCLK) - on write, a request from the entity for data to be sent; on read, notification from the entity that data is ready
  • Write Clock (WCLK) - on write, notification from the controller that data is ready
  • Run (RUN) - a signal from the controller to start a transfer
  • End of Block (EBL) - a signal from the entity to indicate the end of a transfer
  • Exception (EXC) - a signal from the entity to indicate that an error has occurred during a transfer
  • Occupied (OCC) - set by an entity to indicate that it is using the Data Bus

The first two and EXC are bi-directional; all the others are from entity to controller, except for WCLK and RUN.

External links