Difference between revisions of "MSV11-J memory module"

From Computer History Wiki
Jump to: navigation, search
(Add control register)
m (Link 'MicroNote')
 
(22 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
The '''MSV11-J''' (M8637) is a [[QBUS]]/[[Private Memory Interconnect|PMI]] [[Dynamic RAM|DRAM]] [[main memory]] card. As a PMI card, it uses the [[CD interconnect]]; it can therefore ''only'' be plugged into a [[QBUS#Backplanes|Q/CD backplane]]. '''''NOTE:''''' Plugging an MSV11-J card into a regular [[QBUS#Backplanes|Q/Q backplane]] will '''damage''' the MSV11-J.
 
The '''MSV11-J''' (M8637) is a [[QBUS]]/[[Private Memory Interconnect|PMI]] [[Dynamic RAM|DRAM]] [[main memory]] card. As a PMI card, it uses the [[CD interconnect]]; it can therefore ''only'' be plugged into a [[QBUS#Backplanes|Q/CD backplane]]. '''''NOTE:''''' Plugging an MSV11-J card into a regular [[QBUS#Backplanes|Q/Q backplane]] will '''damage''' the MSV11-J.
  
It has [[Error-correcting code|ECC]] which automagically corrects single-[[bit]] errors (at a slight penalty in response time when an error occurs), and detects double-bit errors. It holds 2 Mbytes when fully populated with 256Kx1 DRAM [[integrated circuit|chips]], or 1 Mbyte when half-populated (the only partially-filled configuration allowed). It supports block mode on both the QBUS and PMI.
+
It has [[Error-correcting code|ECC]] which automagically corrects single-[[bit]] errors (at a slight penalty in [[access time|response time]] when an error occurs), and detects double-bit errors. It holds 2 Mbytes when fully populated with 256Kx1 DRAM [[integrated circuit|chips]], or 1 Mbyte when half-populated (the only partially-filled configuration allowed). It supports block mode on both the QBUS and PMI.
  
Although it can function in QBUS-only mode (but see the note below about the -JB and -JC versions), it is really intended for use with a PMI-capable [[Central Processing Unit|CPU]], such as the [[KDJ11-B CPU|KDJ11-B]]. In systems such as the [[PDP-11/83]], where the primary [[Input/output|I/O]] [[bus]] is the QBUS, the card 'speaks' PMI to the CPU, and QBUS to the devices. In the [[PDP-11/84]], PMI is used for communication with both the CPU and the [[KTJ11-B UNIBUS adapter]].
+
Although it can function in QBUS-only mode (but see the note below about the -JB and -JC versions), it is really intended for use with a PMI-capable [[Central Processing Unit|CPU]], such as the [[KDJ11-B CPU|KDJ11-B]]. In systems such as the [[PDP-11/83]], where the primary [[Input/output|I/O]] [[bus]] is the QBUS, the card 'speaks' PMI to the CPU, and QBUS to the devices. In the [[PDP-11/84]], PMI is used for communication with both the CPU and the devices (via the [[KTJ11-B UNIBUS adapter]]).
  
The memory is arranged as 2 banks, each 16 data bits wide, with 6 additional bits for the ECC. One bank is used to hold [[word]]s at even locations, the other for those in odd; the banks are thus [[interleaved]]. A read cycle from the bus will start a read of both sides simultaneously, and so in PMI mode, the second word is already available once the first has been sent.
+
The memory is arranged as 2 banks, each 16 data bits wide, with 6 additional bits for the ECC. One bank is used to hold [[word]]s at even word locations, the other for those in odd; the banks are thus [[memory interleaving|interleaved]]. A read cycle from the bus will start a read of both sides simultaneously, and so in PMI mode, the second word is already available once the first has been sent.
  
 
On power-on, the system is frozen (via negation of the BPOK QBUS signal) while the entire memory is cleared, to prevent spurious ECC errors. For [[diagnostic]] purposes, the ECC can be disabled, and there are also means for the CPU to read/write the ECC bits directly.
 
On power-on, the system is frozen (via negation of the BPOK QBUS signal) while the entire memory is cleared, to prevent spurious ECC errors. For [[diagnostic]] purposes, the ECC can be disabled, and there are also means for the CPU to read/write the ECC bits directly.
Line 20: Line 20:
 
The -JB and -JC are earlier versions, which contain an error which prevents them working properly as QBUS memories (i.e. in the PDP-11/83); they are only usable in the PDP-11/84.
 
The -JB and -JC are earlier versions, which contain an error which prevents them working properly as QBUS memories (i.e. in the PDP-11/83); they are only usable in the PDP-11/84.
  
==Register==
+
==Odd factoids==
 +
 
 +
When used with a KDJ11-B, the [[bootstrap]] code in its EEPROMs insists that the ECC bits are all wholly functional, otherwise it will stop with an "Error 47 - Memory CSR Error". This happens even though the board will return correct values if the main data DRAMs are fine for the locations with bad ECC bits, and the code ''will'' accept boards with bad data bits!
 +
 +
When the board is in diagnostic mode, it displays an unusual error where some values (''exactly'' 25% of the 2^16) cannot be correctly written and read back. The values affected are consistent across several boards, so this is not due to component variation. The reason, and rationale (if it is not simply a bug), are currently unknown.
 +
 
 +
==Control Register==
  
 
Each board has a single control [[register]], which can be configured in the range 172100-172136.
 
Each board has a single control [[register]], which can be configured in the range 172100-172136.
  
In the register contents (below), all the bits can be read and written by software; most are cleared by power up and bus INIT, except the multi-function (address/CRC) bits. Bits which can only be modified by the [[CPU]] are shown in normal font, and those which can also be set by the [[hardware]] in ''italics''.
+
In the register contents (below), all the bits can be read and written by [[software]]; most are cleared by power up and bus INIT, except the multi-function (address/CRC) bits. Bits which can only be modified by the CPU are shown in normal font, and those which can also be set by the [[hardware]] in ''italics''.
  
 
{{16bit-header}}
 
{{16bit-header}}
| ''Uncorrected error'' || Extended address || Set inhibit mode || Reserved || colspan=7 | ''Multi-function'' || ''Single error'' || Inhibit mode pointer || Diagnostic mode || Disable Correction || Error indication  
+
| ''Uncorrected error'' || Extended address || Set inhibit mode || Reserved || colspan=7 | ''Multi-function'' || ''Single error'' || Inhibit mode pointer || Diagnostic mode || Disable correction || Error indication  
 
{{16bitoctal-bitout}}
 
{{16bitoctal-bitout}}
 +
 +
The multi-function field contents depend on what is being done; it is used to hold the address of an error; and also to read, and in diagnostic mode write, the ECC bits (called 'syndrome' when read, and 'check' when written).
 +
 +
When it holds the low address (the low/high choice is controlled by bit 14), it holds address bits 11 through 17; when it holds the high address, bits 21 through 18, and in register bit 9, address bit 1 (to tell which bank the error was in) - bits 11-10 are unused.
 +
 +
When it holds the ECC bits, this is the mapping from CSR bits to ECC bits:
 +
 +
{| class="wikitable"
 +
! CSR bit !! Syndrome!!| Check
 +
|-
 +
| 040 || CBx || Snx
 +
|-
 +
| 0100 || CB0 || Sn0
 +
|-
 +
| 0200 || CB1 || Sn1
 +
|-
 +
| 0400 || CB2 || Sn2
 +
|-
 +
| 01000 || CB4 || Sn4
 +
|-
 +
| 02000 || CB8 || Sn8
 +
|}
  
 
==Technical information==
 
==Technical information==
  
As far as is known, there are no engineering drawings extant for the MSV11-J. However, some technical information has been gathered on the board, and it is made available here.
+
As far as is known, there are no engineering drawings extant for the MSV11-J. However, some technical information, enough to [[repairing un-documented MOS memory boards|repair boards with faulty DRAM chips]], has been gathered on it, and that is made available here.
  
 
To start with, unlike other [[Digital Equipment Corporation|DEC]] boards, this board does not contain the ''Exx'' identification numbers for chips on the board. The following scheme has therefore been devised, to identify the DRAM chips for the bit to chip table below.
 
To start with, unlike other [[Digital Equipment Corporation|DEC]] boards, this board does not contain the ''Exx'' identification numbers for chips on the board. The following scheme has therefore been devised, to identify the DRAM chips for the bit to chip table below.
  
The DRAM chips are organized into four blocks; block 0 and 2 hold words in the even-numbered word bank, and 1 and 3 hold those in the odd-numbered word bank. With the component side of the board facing, and the metal insertion handle at the top, the pair of low-address blocks (0 and 1) are at the top of the card, and the optional pair of high-address blocks (2 and 3) are at the bottom.
+
The DRAM chips are organized into four blocks; blocks 0 and 2 hold words in the even-numbered word bank, and 1 and 3 hold those in the odd-numbered word bank. With the component side of the board facing, and the metal insertion handle at the top, the pair of low-address blocks (0 and 1) are at the top of the card, and the optional pair of high-address blocks (2 and 3) are at the bottom.
 +
 
 +
The low half of the even-numbered word bank (block 0) is on the right side (denoted with an 'R'), and the low half of the odd bank (block 1) on the left ('L'). (Confusingly, the high half has the sides reversed, so that block 2 is on the left, and 3 on the right.) There are three columns on each side (denoted '0'-'2', with the '0' column at the left of each group). Each column contains 17 chips (denoted '0'-'16', with '0' at the top).
  
The even-numbered word bank is on the right side (denoted with an 'R'), and the odd bank on the left ('L'). There are three columns on each side (denoted '0'-'2', with the '0' column at the left of each group). Each column contains 17 chips (denoted '0'-'16', with '0' at the top). Chips are identified as SCRr, where 'S' is the side ('L' or 'R'), C is the column, and 'Rr' is the row.
+
Chips are identified as SCRr, where 'S' is the side ('L' or 'R'), C is the column, and 'Rr' is the row. Note that not all the chips in this area are DRAM; for example, in block 1, chips L17, L27, L211, and L213 and up, are not DRAM.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
! Bit !! Block 0 !! Block 1 !! Block 2 !! Block 3
 
! Bit !! Block 0 !! Block 1 !! Block 2 !! Block 3
 
|-
 
|-
| 01 || R05 || L02 ||  
+
| 01 || R05 || L02 || L010 || R213
 
|-
 
|-
| 02 || R14 || L12 ||  
+
| 02 || R14 || L12 || L110 || R113
 
|-
 
|-
| 04 || R24 || L22 ||  
+
| 04 || R24 || L22 || L210 || R212
 
|-
 
|-
| 10 || R04 || L03 ||  
+
| 10 || R04 || L03 || L011 || R012
 
|-
 
|-
| 20 || R13 || L13 ||  
+
| 20 || R13 || L13 || L111 || R112
 
|-
 
|-
| 40 || R23 || L23 ||  
+
| 40 || R23 || L23 || L212 || R211
 
|-
 
|-
| 100 || R03 || L04 ||  
+
| 100 || R03 || L04 || L012 || R111
 
|-
 
|-
| 200 || R22 || L14 ||  
+
| 200 || R22 || L14 || L112 || R210
 
|-
 
|-
| 400 || R12 || L24 ||  
+
| 400 || R12 || L24 || L113 || R110
 
|-
 
|-
| 1000 || R02 || L05 ||  
+
| 1000 || R02 || L05 || L013 || R010
 
|-
 
|-
| 2000 || R21 || L15 ||  
+
| 2000 || R21 || L15 || L014 || R29
 
|-
 
|-
| 4000 || R11 || L25 ||  
+
| 4000 || R11 || L25 || L115 || R19
 
|-
 
|-
| 10000 || R01 || L06 ||  
+
| 10000 || R01 || L06 || L015 || R09
 
|-
 
|-
| 20000 || R20 || L16 ||  
+
| 20000 || R20 || L16 || L116 || R28
 
|-
 
|-
| 40000 || R10 || L26 ||  
+
| 40000 || R10 || L26 || L114 || R18
 
|-
 
|-
| 100000 || R00 || L07 ||  
+
| 100000 || R00 || L07 || L016 || R08
 
|-
 
|-
| CBx || R25 || L21 ||  
+
| CBx || R25 || L21 || L29 || R214
 
|-
 
|-
| CB0 || R27 || L00 ||  
+
| CB0 || R27 || L00 || L08 || R216
 
|-
 
|-
| CB1 || R26 || L10 ||  
+
| CB1 || R26 || L10 || L18 || R215
 
|-
 
|-
| CB2 || R16 || L20 ||  
+
| CB2 || R16 || L20 || L28 || R014
 
|-
 
|-
| CB4 || R06 || L01 ||  
+
| CB4 || R06 || L01 || L09 || R013
 
|-
 
|-
| CB8 || R15 || L11 ||  
+
| CB8 || R15 || L11 || L19 || R114
 
|}
 
|}
  
Note that not all the chips in this area are DRAM; for example, in block 1, chips L17, L27, L211, and L213 and up, are not DRAM.
+
''Note:'' When a DRAM chip is removed, if the affected memory location is then read, that bit will be ''high'' (1), not ''low'' (0); the affected input (apparently separate pins for the low and high banks) must float to 1 when there is no DRAM chip present to drive the input.
 +
 
 +
The following DRAM chips have been observed to be used: MT1259-12 (Micron Technologies), HM50256-15 (Hitachi), NEC 41256 (NEC Electronics), TMS4256-15NL (Texas Instruments), MB81256-15 (Fujitsu).
 +
 
 +
Note that some of these parts are 120 nsec parts, while others are 150 nsec; the faster parts do not seem to be necessary, or give any advantage.
  
 
==Markings==
 
==Markings==
Line 115: Line 149:
 
</pre>
 
</pre>
  
{{PDP-11}}
+
==Diagnostics==
 +
 
 +
The correct [[XXDP]] exerciser is '''VMJAB0''' which is specific to the MSV11-J and fully compatible boards, such as the [[Clearpoint]] [[QED1]]. '''VMSAC0''' should not be used with a MSV11-J.
 +
 
 +
During exercising with '''VMJAB0''', it is normal for the red ECC error light to pulse or flicker. It should not stay on.
 +
 
 +
[[AK6DN]] diagnostic '''MEMX''' will run correctly on the MSV11-J, but may take longer to expose faults, especially offboard faults that only occur during heavy loading, such as failing KDJ11 cache.
 +
 
 +
==See also==
 +
 
 +
* [[MSV11-R memory module]]
 +
<!--
 +
==Further reading==
 +
-->
 +
==External links==
 +
 
 +
* [http://www.bitsavers.org/pdf/dec/qbus/EK-MSV1J-UG_001_May85.pdf MSV11-J MOS Memory User's Guide] (EK-MSV1J-UG-001)
 +
* [http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/hardware/micronotes/numerical/micronote28.txt MSV11-Q/M/J Memory Comparisons] ([[MicroNote]] #28) - confirms that the -JB/-JC versions will not work reliably on the QBUS
 +
* [http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/hardware/micronotes/numerical/micronote30.txt Private Memory Management Between the KDJ11-B and the MSV11-J] (MicroNote #30)
 +
 
 +
[[Category: QBUS Memories]]
 +
[[Category: PMI Memories]]

Latest revision as of 02:12, 24 July 2024

M8637.jpg

The MSV11-J (M8637) is a QBUS/PMI DRAM main memory card. As a PMI card, it uses the CD interconnect; it can therefore only be plugged into a Q/CD backplane. NOTE: Plugging an MSV11-J card into a regular Q/Q backplane will damage the MSV11-J.

It has ECC which automagically corrects single-bit errors (at a slight penalty in response time when an error occurs), and detects double-bit errors. It holds 2 Mbytes when fully populated with 256Kx1 DRAM chips, or 1 Mbyte when half-populated (the only partially-filled configuration allowed). It supports block mode on both the QBUS and PMI.

Although it can function in QBUS-only mode (but see the note below about the -JB and -JC versions), it is really intended for use with a PMI-capable CPU, such as the KDJ11-B. In systems such as the PDP-11/83, where the primary I/O bus is the QBUS, the card 'speaks' PMI to the CPU, and QBUS to the devices. In the PDP-11/84, PMI is used for communication with both the CPU and the devices (via the KTJ11-B UNIBUS adapter).

The memory is arranged as 2 banks, each 16 data bits wide, with 6 additional bits for the ECC. One bank is used to hold words at even word locations, the other for those in odd; the banks are thus interleaved. A read cycle from the bus will start a read of both sides simultaneously, and so in PMI mode, the second word is already available once the first has been sent.

On power-on, the system is frozen (via negation of the BPOK QBUS signal) while the entire memory is cleared, to prevent spurious ECC errors. For diagnostic purposes, the ECC can be disabled, and there are also means for the CPU to read/write the ECC bits directly.

Four versions exist:

  • MSV11-JB, 1 Mbyte
  • MSV11-JC, 2 Mbyte
  • MSV11-JD, 1 Mbyte
  • MSV11-JE, 2 Mbyte

The -JB and -JC are earlier versions, which contain an error which prevents them working properly as QBUS memories (i.e. in the PDP-11/83); they are only usable in the PDP-11/84.

Odd factoids

When used with a KDJ11-B, the bootstrap code in its EEPROMs insists that the ECC bits are all wholly functional, otherwise it will stop with an "Error 47 - Memory CSR Error". This happens even though the board will return correct values if the main data DRAMs are fine for the locations with bad ECC bits, and the code will accept boards with bad data bits!

When the board is in diagnostic mode, it displays an unusual error where some values (exactly 25% of the 2^16) cannot be correctly written and read back. The values affected are consistent across several boards, so this is not due to component variation. The reason, and rationale (if it is not simply a bug), are currently unknown.

Control Register

Each board has a single control register, which can be configured in the range 172100-172136.

In the register contents (below), all the bits can be read and written by software; most are cleared by power up and bus INIT, except the multi-function (address/CRC) bits. Bits which can only be modified by the CPU are shown in normal font, and those which can also be set by the hardware in italics.


Uncorrected error Extended address Set inhibit mode Reserved Multi-function Single error Inhibit mode pointer Diagnostic mode Disable correction Error indication
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

The multi-function field contents depend on what is being done; it is used to hold the address of an error; and also to read, and in diagnostic mode write, the ECC bits (called 'syndrome' when read, and 'check' when written).

When it holds the low address (the low/high choice is controlled by bit 14), it holds address bits 11 through 17; when it holds the high address, bits 21 through 18, and in register bit 9, address bit 1 (to tell which bank the error was in) - bits 11-10 are unused.

When it holds the ECC bits, this is the mapping from CSR bits to ECC bits:

CSR bit Syndrome Check
040 CBx Snx
0100 CB0 Sn0
0200 CB1 Sn1
0400 CB2 Sn2
01000 CB4 Sn4
02000 CB8 Sn8

Technical information

As far as is known, there are no engineering drawings extant for the MSV11-J. However, some technical information, enough to repair boards with faulty DRAM chips, has been gathered on it, and that is made available here.

To start with, unlike other DEC boards, this board does not contain the Exx identification numbers for chips on the board. The following scheme has therefore been devised, to identify the DRAM chips for the bit to chip table below.

The DRAM chips are organized into four blocks; blocks 0 and 2 hold words in the even-numbered word bank, and 1 and 3 hold those in the odd-numbered word bank. With the component side of the board facing, and the metal insertion handle at the top, the pair of low-address blocks (0 and 1) are at the top of the card, and the optional pair of high-address blocks (2 and 3) are at the bottom.

The low half of the even-numbered word bank (block 0) is on the right side (denoted with an 'R'), and the low half of the odd bank (block 1) on the left ('L'). (Confusingly, the high half has the sides reversed, so that block 2 is on the left, and 3 on the right.) There are three columns on each side (denoted '0'-'2', with the '0' column at the left of each group). Each column contains 17 chips (denoted '0'-'16', with '0' at the top).

Chips are identified as SCRr, where 'S' is the side ('L' or 'R'), C is the column, and 'Rr' is the row. Note that not all the chips in this area are DRAM; for example, in block 1, chips L17, L27, L211, and L213 and up, are not DRAM.

Bit Block 0 Block 1 Block 2 Block 3
01 R05 L02 L010 R213
02 R14 L12 L110 R113
04 R24 L22 L210 R212
10 R04 L03 L011 R012
20 R13 L13 L111 R112
40 R23 L23 L212 R211
100 R03 L04 L012 R111
200 R22 L14 L112 R210
400 R12 L24 L113 R110
1000 R02 L05 L013 R010
2000 R21 L15 L014 R29
4000 R11 L25 L115 R19
10000 R01 L06 L015 R09
20000 R20 L16 L116 R28
40000 R10 L26 L114 R18
100000 R00 L07 L016 R08
CBx R25 L21 L29 R214
CB0 R27 L00 L08 R216
CB1 R26 L10 L18 R215
CB2 R16 L20 L28 R014
CB4 R06 L01 L09 R013
CB8 R15 L11 L19 R114

Note: When a DRAM chip is removed, if the affected memory location is then read, that bit will be high (1), not low (0); the affected input (apparently separate pins for the low and high banks) must float to 1 when there is no DRAM chip present to drive the input.

The following DRAM chips have been observed to be used: MT1259-12 (Micron Technologies), HM50256-15 (Hitachi), NEC 41256 (NEC Electronics), TMS4256-15NL (Texas Instruments), MB81256-15 (Fujitsu).

Note that some of these parts are 120 nsec parts, while others are 150 nsec; the faster parts do not seem to be necessary, or give any advantage.

Markings

On the board

M8637
Side 1
L1
50-15672-01 C1
Ga6618
2644711
2 MB Q,P-BUS MOS MEM
LPWR
TPB
D.V0

On the metal frame

P/N 1213113
M8637
EC

ASICs on board are 21-24404-01 and 21-22772-01

Diagnostics

The correct XXDP exerciser is VMJAB0 which is specific to the MSV11-J and fully compatible boards, such as the Clearpoint QED1. VMSAC0 should not be used with a MSV11-J.

During exercising with VMJAB0, it is normal for the red ECC error light to pulse or flicker. It should not stay on.

AK6DN diagnostic MEMX will run correctly on the MSV11-J, but may take longer to expose faults, especially offboard faults that only occur during heavy loading, such as failing KDJ11 cache.

See also

External links