MICRONOTES
================================================================================
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