What does MIO.EN mean?

A student writes:

	Hi Patt,

Hmmn.  Have not been addressed that way since I hung out with
my buddies on the street corner, with a pack of cigarettes rolled
up in the short-sleeve of my T-shirt.  ...but, whatever makes you
comfortable, I guess.  

	I thought MIO.EN was the control signal that determined 
	whether our memory
	access operation was an I/O access (1) or a memory access (0). 

Nope!  MIO.EN differentiates a mem_or_I/O access in the *current clock
cycle* from the absence of a mem_or_I/O access in the *current clock cycle*.

	However, on
	your control struction diagram you have a logic circuit feeding a mux
	controlled by MIO.EN which determines the value of MDR. 

I don't know where you got the term "control struction diagram." Based on
the context, I assume you are talking about the Data Path.

Yes, MIO.EN exactly determines the source of the MDR.  If MIO.EN is 1,
the processor is processing a load (i.e., a mem_or_I/O activity) during the
current clock cycle, so the output of the INMUX is sourced to the MDR.  If 
MIO.EN is 0, then the processor is loading MDR from the bus.  No memory or
I/O activity is taking place during this clock cycle.

	Is my
	understanding wrong? And does a YES on MIO.EN select the 
	bus output or the output from memory.

	Thanks,
	<<name withheld to protect ...>

My response to your question is geared to your understanding of the data path 
and its control.  Note that in Lab3 (see Clarification #3), we are not 
requiring you to deal with memory-mapped I/O.  Therefore, instead of the 
ADDR.CTL.LOGIC determining whether MEM.EN or one of the I/O device control 
registers should be set, you can simply hard-wire the control signal MIO.EN 
to MEM.EN.  If we required you to implement memory-mapped I/O, then the 
ADDR.CTL.LOGIC would determine which control signals should be asserted, 
based of course, on the address in the MAR and the presence of MIO.EN.

Finally: In Lab 3 you still need to specify MIO.EN for controlling the mux you 
asked about.  In some clock cycles it will source the bus, and in other
clock cycles it will source the output of INMUX.  Part of your job is 
determining when it does each.

Good luck finishing Lab #3.

Yale Patt