17.05.2015 Views

~ National ~ Semiconductor - Al Kossow's Bitsavers

~ National ~ Semiconductor - Al Kossow's Bitsavers

~ National ~ Semiconductor - Al Kossow's Bitsavers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.0 Remote Interface and Arbitration System (Continued)<br />

Latched Write<br />

This mode executes a write without waiting the Remote<br />

Processor-XACK isn't normally taken low. The complete<br />

flow chart for the Latched Write mode is shown in Figure 33.<br />

Until a Remote Write is initiated (RAE*REM-WR true), the<br />

state machine (RASM) loops in state RSA. If the BCP CPU<br />

needs to access Data Memory at this time (and LOCK is<br />

high), it can still do so. A local access is requested by the<br />

Timing Control Unit asserting the Local Bus Request<br />

(LCL-BREQ) signal. A local bus grant will be given by RASM<br />

if the buses are not being used (as is the case in RSA).<br />

RASM will move into RSs on the next clock after<br />

RAE*REM-WR is asserted. XACK is not taken low<br />

and therefore the RP is not waited. The state machine will<br />

loop in RSs until the RP terminates its write cycle-until<br />

RAE*REM-WR is no longer true. The external address and<br />

data latches are typically latched on the trailing edge of<br />

REM-WR. A local bus request will still be serviced in this<br />

state.<br />

Next, RASM enters RSc and WR-PEND is asserted to prevent<br />

overwrite of the external latches. Since the RP has<br />

completed its write cycle, another write or read can happen<br />

at any time. Any Remote Read cycle (RAE*REM-RD) or<br />

Remote Write cycle (RAE*REM-WR) occurring after the<br />

state machine enters RSc will take XACK low. A local access<br />

initiated before or during this state must be completed<br />

before RASM can move to RSo. Once RSo is entered,<br />

though, no further local bus requests will be granted until<br />

the BCP enters the Termination Phase. If the BCP CPU initiates<br />

a Data Memory Access after RSc, the Timing Control<br />

Unit will be waited and the BCP CPU will remain in state<br />

T Wr, until the RASM enters RSH.<br />

On the first clock where there is no local bus request the<br />

state machine enters RSE. WR-PEND and LCL continue to<br />

be asserted in this state and the data and instruction wait<br />

state counters, iow and ilW, are loaded from [DW2-0] and<br />

[IW1-0], respectively, in {DCR}. Any remote accesses now<br />

occurring will take XACK low and wait the Remote Processor.<br />

The state machine will move into one of several states on<br />

the next clock, depending on the state of CMD and<br />

[MS1-0]. WR-PEND and LCL are still asserted in all the<br />

possible next states. If CMD is high, the access is to {RIC}<br />

and the next state will be RSF1. The path from AD to {RIC}<br />

opens in this state.<br />

The five other next states all have CMD low and depend on<br />

the Memory Select bits. If [MS1-0] is 10 or 11 the state<br />

machine will enter either RSF2 or RSF3 and the low or high<br />

bytes of the Program Counter, respectively, will be loaded.<br />

[MS1-0] = 00 designates a Data Memory access and<br />

moves RASM into RSF4. WRITE will be asserted in this<br />

state and A and AD continue to be at TRI-STATE. This allows<br />

the Remote Processor to drive the Data Memory address<br />

and data for the write. Since DMEM is subject to wait<br />

states, RSF4 is looped upon until all the wait states have<br />

been inserted.<br />

The last possible Memory Selection is Instruction Memory,<br />

[MS1-0] = 01. The two possible next states for IMEM depend<br />

on if RASM is expecting the low byte or high byte.<br />

Instruction words are accessed low byte then high byte and<br />

RASM powers up expecting the low Instruction byte. The<br />

internal flag that keeps track of the next expected Instruction<br />

byte is called the High Instruction Byte flag (HIB). If HIB<br />

is low, the next state is RSF5 and the low instruction byte is<br />

written Into the holding register, ILAT. If HIB is "I", the high<br />

instruction byte is moved to 115-8 and the value in ILAT is<br />

moved to 17 -0. At the same time IWR rises and the write to<br />

Instruction Memory is begun. An IMEM access, like a<br />

DMEM access, is subject to wait states and these states will<br />

be looped on until all programmed instruction memory wait<br />

states have been inserted.<br />

<strong>Al</strong>l the RSF states converge to a single decision box that<br />

tests WAIT. If WAIT is low then the state machine loops<br />

back to RSF, otherwise RASM will move on to RSG. LCL<br />

and WR-PEND are still asserted in this state but the actions<br />

specific to the RSF states have ended (i.e. WRITE will no<br />

longer be asserted).<br />

The next CPU-CLK moves RASM into RSH, the last state in<br />

the state machine. LCL is no longer asserted, but<br />

WR-PEND is still low. XACK will be taken low if a Remote<br />

Access is initiated. If the just completed access was to<br />

IMEM, HIB will be switched. <strong>Al</strong>so, the PC will be incremented<br />

if the high byte was written. A local access will be granted<br />

if LCL-BREQ is asserted in this state.<br />

If another Remote Write is pending, the state machine takes<br />

the path to RSs where that write will be processed. A pending<br />

Remote Read will return to the RSA in either the Buffered<br />

or Latched Read sections (not shown in Figure 33) of<br />

the state machine. And if no Remote Access is pending, the<br />

machine will loop in RSA until the next access is initiated.<br />

In Figure 35, the BCP is executing the first of two Data<br />

Memory writes when REM-WR goes low. The BCP takes no<br />

action until REM-WR goes back high, latching the data and<br />

making a remote access request. The BCP responds to this<br />

by taking WR-PEND low. At the end of the first instruction<br />

although the BCP begins its second write by taking ALE<br />

high, RASM now takes control of the bus and deasserts<br />

LCL at the end of T 1. A one T -state delay is built into this<br />

transfer to ensure that WRITE has been deasserted before<br />

the data bus is switched. Timing Control Unit is now waited,<br />

inserting remote access wait states, T Wr, as RASM takes<br />

over.<br />

The remote address is permitted one T -state to settle on the<br />

BCP address bus before WRITE goes low. WRITE then returns<br />

high one T-state plus the programmed Data Memory<br />

wait state, T Wd later, having satisfied the memory access<br />

time, and one T -state later LCL is reasserted, transferring<br />

bus control back to the BCP.<br />

In this example, REM-WR goes low again during the remote<br />

write cycle which, since WR-PEND is still low, causes XACK<br />

to go low to wait the Remote Processor. XACK and<br />

WR-PEND go back high at the same time as LCL goes low,<br />

allowing the second data byte to be latched on the next<br />

trailing edge of REM-WR.<br />

The BCP is now shown executing a local memory write, with<br />

remote data still pending in the latch. At the end of this<br />

instruction, the BCP begins executing a series of internal<br />

operations which do not require the bus. RASM therefore<br />

takes over and, without waiting the Timing Control Unit, executes<br />

the Remote Write.<br />

2-163

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!