• Please review our updated Terms and Rules here

Unibus DATI vs DATIP

Activmaker

Experienced Member
Joined
Apr 3, 2018
Messages
66
Location
Paris, France
Hi,

I am reading the unibus Specifications 1979. I understood the difference between DATI and DATI/P. My question is : How the processor knows if it need to do a DATI or DATI/P ?. I understood that DATI/P is used with core memory for example, but for bipolar memory DATI/P is not necessary. So, I am wondering how the system choose ?
 

Activmaker

Experienced Member
Joined
Apr 3, 2018
Messages
66
Location
Paris, France
I finally found the answer to this question. I am stupid boy ;) . The answer is microcode of course. DATI / DATIP doesn't depends on memory kind (Core, bipolar), but the kind memory access ! Read for DATI , Read Modify Write for DATIP , and it depends of the instruction currently executed by processor.
 

AK6DN

Veteran Member
Joined
Aug 23, 2010
Messages
1,013
Location
Silicon Valley USA
Hi,

I am reading the unibus Specifications 1979. I understood the difference between DATI and DATI/P. My question is : How the processor knows if it need to do a DATI or DATI/P ?. I understood that DATI/P is used with core memory for example, but for bipolar memory DATI/P is not necessary. So, I am wondering how the system choose ?

The processor will do a DATIP (vs DATI) when it knows the transaction will be followed by a DATO(B) to the exact same address.
So, for example, INC, DEC, etc that read a location, modify it, and write it back will do a DATIP/DATO(B) sequence.
Instructions that read and then write to different addresses (like MOV) will to a DATI/DATO(B) sequence since the read and write addresses will likely differ.
Other instructions that do just a read (like TST) will do only a DATI.
And others like CLR will do only a DATO(B) [altho some cpus did a needless DATIP and tossed the data, to simplify the logic/microcode].

CPUs do not change the sequence depending on the type of memory (core vs bipolar, etc). The fact that a DATIP is used is just an optimization that the slave can use to respond quicker (ie, core memory not doing a writeback) since a DATIP will always be followed by a DATO(B) to the same address, by definition.
 
Top