Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
================================================================================
Note 30.0 PMI on KDJ11-B and MSV11-J No replies
FURILO::GIORGETTI 587 lines 21-AUG-1985 23:13
--------------------------------------------------------------------------------
+---------------+ +-----------------+
| d i g i t a l | | uNOTE # 030 |
+---------------+ +-----------------+
+----------------------------------------------------+-----------------+
| Title: The Private Memory Interconnect | Date: 28-Jun-85 |
| between the KDJ11-B and the MSV11-J | |
+----------------------------------------------------+-----------------+
| Originator: Peter Kent | Page 1 of 10 |
+----------------------------------------------------+-----------------+
Purpose
-------
This MicroNote describes the Private Memory Interconnect on the
MicroPDP-11/83 system. It is not intended to be a design guide for PMI,
since no devices other than the CPU and memory will make use of it.
General Description
-------------------
A MicroPDP-11/83 system consists of the KDJ11-B CPU and one or more
MSV11-J memories in a Q-bus backplane. The slots used for the CPU and
memory use the CD interconnect. In a MicroPDP-11/83 configuration, the
first 1 or 2 slots in a BA23 backplane (an 8 slot backplane with the
first 3 slots Q/CD) are reserved for MSV11-J memory. The CPU is put in
the third slot. The mechanical design of the signal pathways between
the CPU and memory were designed to prevent accidental interference
between the PMI and other devices that might be placed adjacent to the
CPU and memory. It is possible to have a single 2 Mb board in slot 1
followed by the CPU in slot 2. Putting the CPU after the memory ends
the PMI because the PMI signals from the CD side of the CPU board are
only on the component side of the CPU board.
"Private Memory Interconnect" is the addition of 14 unique signals to
the Q-bus. These new signals use the CD part of the backplane in a
Q-bus system for communications between the KDJ11-B CPU and one or two
MSV11-J memories. Only the CPU and memory may communicate over this bus
(hence PRIVATE). The Q-bus Data/Address lines are used for passsing
data and addresses between the CPU and memory. All other Q-bus
transactions proceed as before.
The PDP-11/84 Unibus system uses the KTJ11-B Unibus Adaptor, KDJ11-B
CPU, and one or two MSV11-J memories. No Q-bus devices may be
configured with the PDP-11/84 system. Five of the PMI signals are used
only with Unibus systems. All communications between Unibus devices and
the KTJ11-B occur according to the Unibus protocol. The KTJ11-B
provides the interface between PMI and Unibus protocols. This MicroNote
does not explain the details of the Unibus and PMI interaction.
227
uNOTE # 030
Page 2 of 10
What is PMI?
------------
To understand PMI it is necessary to describe some of the bus cycles
used by PMI and compare them with ordinary Q-bus cycles. There are 4
PMI cycles used in the MicroPDP-11/83 system:
DATI - Data word input. This cycle is used to read one or more 16
bit words from memory by the CPU.
DATIP - Data word input pause. This cycle is used to read one or
more 16 bit words from memory by the CPU. It is often used to
perform a read/modify/write cycle.
DATO - Data word ouput. This cycle is used to write a 16 bit word
to memory by the CPU.
DATOB - Data byte output. This cycle is used to write a byte to
memory by the CPU.
The KDJ11-B does not perform Block Mode reads or writes with memory.
Certain other Q-bus devices (such as the RDRX1 and RQDX2 controllers and
RQC25) perform Block Mode DMA with MSV11-P,MSV11-Q,AND MSV11-M memories.
The CPU monitors Block Mode transactions to keep its cache in order, but
it has no control over such transfers once it has relinquished control
of the bus to those devices.
REFERENCES
PMI signal definitions are listed at the end of this
MicroNote. All other signal definitions are as given in
the Microcomputer Products Handbook (EB 26078-41) or
Microsystems Handbook (EB 26085-41).
TWTBT, a Q-bus signal, is used somewhat differently during a PMI
transaction than during a normal Q-bus transaction. See the definitions
section for an explanation of this signal.
228
uNOTE # 030
Page 3 of 10
NOTE
Few timing relationships are given here because it is
not necessary for a basic understanding of PMI. The
relationships that are given are a comparison to Q-bus
only. The prefix "T" refers to bus driver input and "R"
refers to bus receiver output. This helps to
distinguish between the device which issues a particular
signal and that of the receiver of the signal. If the
prefix "B" is used, it denotes a general term for the
signal on the bus without regard for its timing relation
with respect to sender or receiver (i.e. BSYNCH).
Address part of cycle
---------------------
The address portion of the MicroPDP-11/83 PMI cycles is the same for all
4 PMI cycles. It is listed here first and the description of the other
cycles follow.
1. For the first part of the cycle, the CPU gates ADDR, BBS7 (if the
I/O page is referenced), TWTBT, and TPBYT onto the Q-bus. The
combination of TWTBT and TPBYT (PMI signal) determine what type of
PMI transaction will take place - see Table 1 below. These signals
are asserted for a brief period after the assertion of TPBCYC.
Table 1
-------
BWTBT L PBYT L Description
H H DATI or DATBI Cycle
H L DATIP Cycle
L H DATO Cycle
L L DATOB Cycle
As noted above, Q-bus signals such as TWTBT are used differently
during a PMI cycle. TWTBT is not normally used during a DATI cycle,
for example.
2. Next, memory issues TPSSEL after receiving RADDR and RBS7. The CPU
receives RPSSEL. This part of the cycle indicates that the memory
is responding.
229
uNOTE # 030
Page 4 of 10
3. If the CPU was the previous bus master and the previous cycle was a
Q-bus cycle, then the CPU must not assert TPBCYC or TSYNC until
after the negation of TSYNC and after the negation of RRPLY. If the
cycle was an interrupt service cycle, then the CPU must wait until
after the negation of RRPLY. This stipulation allows for other
Q-bus devices equal access to the bus. Also, if another Q-bus
device was previously bus master, then the CPU must not asssert
TPBCYC or TSYNC until after the negation of RSYNC - this is to make
sure RRPLY is negated long enough as per Q-bus protocol.
4. Now, if RPSSEL is asserted and if RPUBMEM is negated, the PMI master
proceeds with a PMI cycle. The negation of RPUBMEM indicates no
that no Unibus memory is responding - in other words a Q-bus PMI
cycle. Here is where the diffe- rence between Q-bus cycles and PMI
cycles becomes visible.
5. The CPU asserts TPBCYC after gating TADDR, TBS7, TPBYT, and TWTBT
onto the bus. The PMI master continues to gate TADDR, TBS7, and
TWTBT after the assertion of TPBCYC.
6. If at this point RPSSEL is negated, the system will revert to a
normal Q-bus cycle.
This describes the address portion of the PMI cycle for Q-bus only
systems.
DATI
----
When the CPU (KDJ11-B) is accessing memory for a PMI Data In Cycle, it
transfers 2 words. This takes advantage of the KDJ11-B restart overhead
to load a second 16-bit word into the cache on the CPU module. Listed
below equivalent Q-bus cycles are compared with PMI cycles under "Timimg
Comparisons". For the read cycle, 2 data words (one after another) are
latched into the MSV11-J data gate array and both words are placed on
the bus. Interestingly enough, either word may be selected to be placed
on the bus first. If the odd word is placed on the bus first, it is
followed by the preceding even word. For example, if a word at address
17362 is selected to be placed on the bus first, the next word
transferred will be from address 17360. If the even word is selected to
be placed on the bus first, the next odd word is then transferred
second. For example, if a word at address 17360 is selected to be
placed on the bus first, the next odd word is then transferred second.
For example, if a word at address 17360 is selected to be placed on the
bus, the next word transferred will be at address 17362.
230
uNOTE # 030
Page 5 of 10
Using the MSV11-J memory as a normal Q-bus memory (disabling the PMI by
putting it after the CPU in the bus) and performing a read cycle, 2
words will be latched into the data gate array. However, only one word
is placed on the Q-bus.
1. At this point the address portion of the cycle is over. The memory
gates TDATA onto the bus after the assertion of RPBCYC.
2. Immediately after RPBCYC the memory enables the parity signals
TPHBPAR and TPLBPAR.
3. Memory asserts TPRDSTB immediately after the reception of RPBCYC.
4. The strobe signal TPRDSTB is negated by memory after the reception
of RPBCYC.
5. The memory gates the second data word onto the bus after TPRDSTB is
negated. Shortly after the parity in- formation is sent. Another
advantage is realized here: the second data word is transmitted
without the need of any further signals between the CPU and memory.
6. If the CPU has read 2 words, it negates TPBCYC after latching the
second data word.
7. After the negation of RPBCYC memory removes TDAT from the bus.
It becomes evident that there is an essential difference between normal
Q-bus transactions and PMI transactions. Q-bus transactions are all
based on handshaking. During a DATI Q-bus transaction, the memory
responds with BRPLY after BDIN from the processor. There must be the
signal between each device that the transaction has taken place. During
a PMI DATI transaction, there is only a strobe signal from the memory
saying that it is ready for the data. The only further communication
between the memory and CPU is the actual data transfer. Only upon the
transmission of the second possible data word is parity information sent
along with the second data word. No other memory-CPU signalling occurs.
231
uNOTE # 030
Page 6 of 10
KDJ11-B MSV11-J
------- -------
Address Memory
--------------
o Gate Address
onto Address Lines ---------+
o Combination of |
TPBYT and TWTBT |
result in DATI Cycle +------> Decode Address
o Assert BBS7 if Address --------------
is in I/O Page +------- o TPSSEL asserted shows
| Memory is Selected
PMI Cycle Assertion <---------+
-------------------
o TPBCYC Indicates PMI Cycle
deasserts Address, BBS7 ------+
TPBYT,TWTBT Signals |
Address part of +-------> Data
cycle is finished ----
o TDATA, TPHBPAR, TPLBPAR
(Data and Parity) is
asserted onto Data Lines
o Memory strobes CPU by
Asserting TPRDSTB to tell
CPU Data is on the Bus
o The strobe signal
TPRDSTB is deasserted
+------- o The second data word and
| parity info are put on
PMI Cycle End <----------------+ the Data Lines
-------------
o CPU deasserts TPBCYC
to end PMI Cycle -------------+ Data
| ----
+------> o Memory removes
data from Bus
Timing Comparisons
------------------
At this point it would be interesting to make some timing comparisons
between Q-bus and PMI DATI transactions. Considering a Q-bus DATI
transaction, the cycle time (timing from BSYNCH to TRPLY ignoring
addressing time) is 510 ns for MSV11-M. The MSV11-M was chosen because
its cycle time does not include the ECC overhead of the MSV11-J. Add to
this 320 ns access time and this totals 830 ns to transfer 1 word from
memory to CPU. Now, if 2 words are to be transferred in this manner,
add another 300 ns due to delay between RRPLY and TSYNCH in order for
other Q-bus devices access to the bus. This results in 1130 ns total
232
uNOTE # 030
Page 7 of 10
for a 2 word transfer using MSV11-M parity memory.
The MSV11-J memory access time is 417 ns. This is the time from RPBCYC
to PRDSTB. Fifty eight ns later, at the trailing edge of PRDSTB, the
CPU receives the second data word. This means that PMI is approx. 2.5
times faster than Q-bus on 2 word reads from memory to CPU. Remember,
this also accounts for the time the ECC requires to do its modified
Hamming code versus the MSV11-M parity check. For each 18 bits of
MSV11-J memory there are 6 bits used for ECC. This accounts for the
space needed on the MSV11-J for 2 Mb of memory whereas 4 Mb is possible
on the MSV11-Q on the same size board.
DATO (DATOB)
------------
The CPU uses DATO to transfer a single word (or byte for a DATOB cycle)
to memory. The address portion of the cycle is the same as for the DATI
and is described above.
1. The CPU determines what type of cycle (DATO or DATOB) by logically
combining TWTBT and TPBYT. During the address portion of the cycle,
these signals were used to indicate which type of PMI cycle was
selected.
2. Memory asserts TRPLY after RPBCYC.
3. After the assertion of TPBCYC, data is gated onto the bus by the
CPU.
4. The CPU asserts TPWTSTB after data is gated onto the bus.
5. Memory asserts TPSBFUL after RPWTSTB.
6. The CPU deasserts TPBCYC after negating TWTSTB.
7. The memory waits before it can accept another PMI cycle (or Q-bus
cycle) - then it deasserts TRPLY.
8. Memory negates TPSBFUL before it can accept another PMI (or Q-bus
cycle).
233
uNOTE # 030
Page 8 of 10
KDJ11-B MSV11-J
------- -------
Address Memory
--------------
o Gate Addresses onto
Address Lines
o Combination of TPBYT
and TWTBT Result in
DATO Cycle
o Assert BBS7 if Address ------+
is in the I/O Page |
+-------> Decode Address
--------------
PMI Cycle Assertion +-------- o TPSSEL Shows
------------------- | Memory is address
o Assertion of TPBCYC <-------+ selected
indicates PMI Cycle
o CPU deasserts Address, BBS7,
TPBYT, TWTBT Signals -
Address Portion of Cycle ---+ Memory Responding
is finished | -----------------
+-------> o After reception of
RPBCYC, memory sends
Data TRPLY to CPU
----
o TDATA, TPHBPAR, TPLBPAR
(Data and Parity) is put
onto the Data Lines
o CPU then strobes the Reception of Data
Memory by asserting TPWTSTB --+ -----------------
+-------> o Memory asserts TPSBFUL
after reception of
+-------- RPWTSTB
|
PMI Cycle End <-------------+
-------------
o CPU deasserts TPBCYC
to indicate current Memory Cycle End
PMI Cycle is finished -------+ ----------------
+-------> o Memory waits for other
devices to claim Bus
before it can accept
another PMI Cycle - then
deasserts TRPLY
o Memory must negate
TPSBFUL before another
PMI Cycle can begin
234
uNOTE # 030
Page 9 of 10
Timing Comparisons
------------------
Here is a comparison of a Q-bus DATO cycle with a PMI DATO cycle.
Looking at a Q-bus DATO transaction, the cycle time (timing from RSYNCH
to TRPLY) for MSV11-M is 550 ns. Comparing this to the MSV11-J DATO
cycle, the result of 223 ns is obtained. This figure is arrived at as
follows: 38 ns access time for the memory + 80 ns TPBCYC to TDATA + 75
ns TPWTSTB after data is on the bus + 30 ns to hold TPWTSB. Again the
speed advantage of PMI transactions over normal Q-bus transactions is
about 2.5 to 1.
DATIP
-----
The PMI Data In Pause cycle is identical to the DATI cycle except that
TPBYT is asserted with TADDR to indicate that the next cycle
(immediately following the current cycle) will be a data out cycle to
the same address.
PMI and Q-bus signal definitions
--------------------------------
Eight of the PMI signals are used in an MicroPDP-11/83 system, therefore
only those will be defined here. One Q-bus signal, BWTBT, is defined
here because it is used differently than during normal Q-bus
transactions.
PBYT L PMI Byte. When the CPU gates address onto the bus, it asserts
this signal with BWTBT to indicate the type of bus cycle (see
Table 1 above).
PBCYC L PMI bus cycle. The CPU asserts this signal at the start of
a PMI cycle and negates it at the end of that cycle.
PRDSTB L PMI read strobe. Memory asserts and negates this signal to
control data transfers during DATI cycles. The CPU latches
the received first word data on the negating edge of this
signal. The second word is latched after that without further
signalling.
PWTSTB L PMI Write Strobe. The CPU asserts this signal after gating
data onto the bus. The memory latches the data into its
write buffer after the leading edge of this pulse.
PSSEL L PMI slave selected. Memory asserts this signal whenever it
decodes its address on the Q-bus.
235
uNOTE # 030
Page 10 of 10
PHBPAR L PMI high byte data parity. This signal is generated by PMI
memory during DATI cycles and provides odd parity for the high
byte data on the Q-bus.
PLBPAR L PMI low byte data parity. This signal is generated by PMI
memory during DATI cycles and provides even parity for the low
byte data.
PSBFUL L PMI memory buffer full. Memory asserts this signal during a
write cycle indicating that its write buffer is full and that
it cannot respond to another cycle request.
Q-bus signal
------------
BWTBT L Write byte (PMI write indication). In Q-bus systems, this
signal is used for Q-bus write cycles. For PMI transactions, the
CPU gates this signal with PBYT to indicate the type of PMI cycle.
See Table 1 above.
References
----------
Microcomputer Products Handbook EB-26078-41
Microsystems Handbook EB-26085-41
MSV11-M User Guide EK-MSV1M-UG-001
MSV11-Q User Guide EK-MSV1Q-UG-002
MSV11-J User Guide EK-MSV1J-UG-001
236