CacheMInterface.rose
Last edited by: Barth, July 27, 1984 5:35:07 pm PDT
Last edited by: Curry, February 1, 1985 9:18:18 am PST
Library CacheMInterfaceMCAMDriver, CacheMInterfaceMRAMDriver, CacheMInterfaceMEntryCtl, CacheMInterfaceMSequencer, CacheMInterfaceMPads, CacheMInterfaceMROM;
CELLTYPE "MInterface"
PORTS[
Timing and housekeeping interface
PhA, PhB<BOOL,
Vdd, Gnd<BOOL,
PadVdd, PadGnd<BOOL,
Main memory interface
MCmdAB=EnumType["Dragon.MBusCommands"],
MDataAB=INT[32],
MParityAB=BOOL,
MNShared=BOOL,
MNError>BOOL,
MRq>BOOL,
MNewRq>BOOL,
MGnt<BOOL,
Serial debugging interface
All the following signals change during PhA and propagate during the remainder of PhA and PhB, giving an entire clock cycle for them to propagate throughout the machine. Each user must receive them into a latch open during PhB. The effects of changes are intended to happen throughout the following PhA, PhB pair.
ResetAB<BOOL,
DHoldAB<BOOL, -- must be high before testing
DShiftAB<BOOL, -- shift the shift register by 1 bit if ~DNSelect
DExecuteAB<BOOL, -- interpret the content of the shift register if ~DNSelect
DNSelectAB<BOOL, -- if high, hold but don't Execute or Shift
DDataInAB<BOOL, -- sampled during each PhB that DShift is asserted
DDataOutAB=BOOL, -- changes during each PhA following a PhB that DShift is asserted, continues to be driven through the PhB following the PhA it changes
Buffered timing and housekeeping interface
PhAb, nPhAb, PhBb, nPhBb>BOOL,
Resetb>BOOL,
CAM interface
CAMPage, nCAMPage=SWITCH[24]-(Special XPhobic),
CAMBlock, nCAMBlock=SWITCH[4]-(Special XPhobic),
RAM access
PBitsB, nPBitsB=SWITCH[132]-(Special XPhobic),
MBitsA, nMBitsA=SWITCH[132]-(Special XPhobic),
Cell control
nVQMatchB, nQuadSharedB=BOOL,
nRQMatchA=BOOL,
nPageDirtyB, nMapValidB=BOOL,
nRealBlockMatchA, nVirtualBlockMatchB=BOOL,
QValidA, nQValidA, QSharedA, nQSharedA, QMasterA, nQMasterA=BIT-(Special XPhobic),
MQSelBA, MatchQSelBA>INT[4], nQDirtyB=INT[4],
RPValidBitA, nRPValidBitA, RPDirtyBitA, nRPDirtyBitA, VPValidBitA, nVPValidBitA=BIT-(Special XPhobic),
ForceAllDataSelectsBA>BOOL,
CellAdrBA, nCellAdrBA>INT[7],
SelOrphanAdrBA, SelMapAdrBA, SelVPBA, SelRPVictimBA, SelRPDecoderBA, SelRealDataBA, SelDecodeBA>BOOL,
FinishSharedStoreAB>BOOL,
SenseRMatchB, SenseVictimA, SelPageFlagsBA>BOOL,
P control <=> M control
MDoneAB, MHeldAB>BOOL,
MFaultAB>EnumType["Dragon.PBusFaults"],
PCmdToMAB<EnumType["Dragon.PBusCommands"],
PAdr2831AB<INT[4],
DriveVirtualPageAdrBA, DriveVirtualBlockAdrBA>BOOL,
StartWordMachineBA>BOOL
]
Expand
Internal main memory interface
MCmdIn:EnumType["Dragon.MBusCommands"];
MCmdOutAB:EnumType["Dragon.MBusCommands"];
MCmdDriveC:BOOL;
MDataI:INT[32];
MParityI:BOOL;
MDataDriveC:BOOL;
MSharedSense:BOOL;
MNSharedDriveHighC:BOOL;
MNSharedDriveLowC:BOOL;
MNErrorDriveLow:BOOL;
MRqIBA:BOOL;
MNewRqIBA:BOOL;
MNewRqEnableC:BOOL;
MGntSenseA:BOOL;
CAM driver ROM interface
CAMRegSenseMDataIB, ACAMRegDriveCAMBitsA, BCAMRegDriveCAMBitsAB, FormAddressBA, PageDriveMDataIA, BlockDriveMDataIA:BOOL;
RAM ROM interface
DriveMBitsA, DriveMBitsNoMatchA, SenseMBitsA, DriveMDataIA, SenseMDataIB, DrivePBitsB, SensePBitsB:BOOL;
Sequencer ROM interface
SuppressPSampleAB, MIsDoneAB, SetWantWSA, CheckFaultsAB, SenseSharedB, ReleaseMBusBA, ForceIdleAB, DoneAB, ForceSlaveBA, SenseReadyBA, MDataIToFaultsB, MapBitsToMDataIA, ACheckParityA, BCheckParityB, SampleRealMatchA, MCmdDriveA, MDataDriveA, DriveSharedHighA, DriveSharedLowA, MasterEnableMBusDriveAB, MCmdDriveToDataTransportAB, MCmdDriveToNoOpAB:BOOL;
Entry Control ROM interface
SetSharedA, ResetMasterA, SetRPDirtyVPValidA, FlagLatchB, SetFlagsA, IncrementVictimBA, IncrementMAdrCtrB, ZeroMAdrCtrB, SampleDirtyBitsB, DeleteDirtyBitB, VictimSelectBA, RefreshToDecoderBA, IfGrantThenGetAdrElseRefreshToDecoderBA, FetchAddressBA, DirtyBitsToMQSelBA, SamplePAdr2831B, SampleMAdr2831B, Adr2829ToMQSelBA, AddressBitsToMDataIA, VictimAddressBitsToMDataIA, SelectRPBA, SelectVPVictimOrOrphanBA, SelectRealDataBA, SelVictimOrOrphanBA, RefreshIfRefVirtualBA, SenseVictimBA:BOOL;
Control steel wool
GetAdrCmdBA:EnumType["CacheOps.PreFetchAdrCmd"];
IsCleanBA, LatchSharedBA, MasterBA, MatchRealQuadAB, MatchRealBlockAB, ContinueBA:BOOL;
OneDirtyBA, SomeDirtyBA, MDataDriveDelayedA:BOOL;
ROMSequenceBA:INT[7];
ROMSlaveBA:BOOL;
ROMCycleBA:INT[7];
MAdr3031BA:INT[2];
MRamRegParityOut:BOOL;
mCAMDriver: MCAMDriver[];
mRAMDriver: MRAMDriver[];
mEntryCtl: MEntryCtl[];
mSequencer: MSequencer[];
mPads: MPads[];
mROM: MROM[]
ENDCELLTYPE