This is where the BIN Hackers and definition junkies discuss the inner workings of the EEC code and hardware. General tuning questions do not go here. Only technical/hardware-specific/code questions and discussions belong here.

Moderators: EDS50, cgrey8, 2Shaker, Jon 94GT

Post Reply
cprhodin
Gear Head
Posts: 7
Joined: Mon Apr 30, 2012 4:32 am

Memory bus waveforms

Post by cprhodin » Sat Sep 15, 2012 9:45 pm

I thought some of you might find these useful. I've recorded and converted to vcd the waveforms of an LA3 and PE EEC-IV coming out of reset. You can download a free viewer from http://gtkwave.sourceforge.net/.

You can discover a lot of information about the memory bus by examining these files. Some interesting observations:

1) The bus does support byte reads from odd addresses.
2) There's no easy way to tell whether the second byte of a read is being latched and used by the CPU.


Chris
You do not have the required permissions to view the files attached to this post.

cprhodin
Gear Head
Posts: 7
Joined: Mon Apr 30, 2012 4:32 am

Re: Memory bus waveforms

Post by cprhodin » Sun Sep 16, 2012 8:19 pm

In the LA3 file You can see an interrupt being taken at 17689 us. The vector fetched is at 0x201A and the ISR address is 0x3733. The first byte fetched from the ISR is at 17693 us.

There's an MULU instruction from 17760 us to 17767 us or 7 us with the LA3 12 MHz clock. The multiply and divide instructions are the longest idle bus periods you'll see.

At 3059 us you can see a byte being fetched from an even address (0x760C). You can see the data read is 0x9F and that the data bus then changes to 0x4C. At 3063 us you can see a byte fetched from the next address (0x760D). In this case the data read is 0x4C and that the data bus then changes to 0x9F. I see this as proof the DAR simply flips the LSb after ever strobe.

Chris

User avatar
cgrey8
Administrator
Posts: 11304
Joined: Fri Jun 24, 2005 5:54 am
Location: Acworth, Ga (Metro Atlanta)
Contact:

Re: Memory bus waveforms

Post by cgrey8 » Mon Sep 17, 2012 7:02 am

cprhodin wrote:...I see this as proof the DAR simply flips the LSb after ever strobe...
I'm not getting that. Your use of a little b in LSb suggested initially you meant bit, not byte. Is that a typo? If so, are you saying that when odd addresses are requested, it returns the word in opposite byte order?

If that's the case, then that's interesting info as it would make sense for the bus to return the byte the EEC is most interested in. In the case of an odd-byte request, it would certainly speed things up to send the odd byte 1st and just to fill the window send the even byte following particularly if the EEC was just going to ignore the even byte in the 1st place. That would free the internal processor to go ahead and start using the byte despite the memory controller still having to deal with the strobe out of the 2nd byte.
...Always Somethin'

89 Ranger Supercab, 331 w/GT40p heads, ported Explorer lower, Crane Powermax 2020 cam, FMS Explorer (GT40p) headers, aftermarket T5 'Z-Spec', GUFB, Moates QuarterHorse tuned using BE&EA

Member V8-Ranger.com

cprhodin
Gear Head
Posts: 7
Joined: Mon Apr 30, 2012 4:32 am

Re: Memory bus waveforms

Post by cprhodin » Tue Sep 18, 2012 5:31 am

I was referring to the least significant bit of the data address register. This is the only bit that changes when strobed, unlike the slave program counter that counts up. The ROM adapter designs I've seen assume this to be the case and the waveforms show the assumption to be true.


Chris

User avatar
cgrey8
Administrator
Posts: 11304
Joined: Fri Jun 24, 2005 5:54 am
Location: Acworth, Ga (Metro Atlanta)
Contact:

Re: Memory bus waveforms

Post by cgrey8 » Tue Sep 18, 2012 7:00 am

I'm still not getting it. If you are seeing a transition from 0x9F to 0x4C, that's not a change of only the LSB. 0x9E and 0x9F would be a change of the LSB. Like I said, I'm not getting what it is you are trying to say.
...Always Somethin'

89 Ranger Supercab, 331 w/GT40p heads, ported Explorer lower, Crane Powermax 2020 cam, FMS Explorer (GT40p) headers, aftermarket T5 'Z-Spec', GUFB, Moates QuarterHorse tuned using BE&EA

Member V8-Ranger.com

User avatar
EFI-Unlimited
Professional Tuner/Shop Owner
Posts: 198
Joined: Thu Dec 13, 2007 1:17 am
Location: Tampa, FL

Re: Memory bus waveforms

Post by EFI-Unlimited » Thu Sep 20, 2012 10:41 pm

cgrey8 wrote:I'm still not getting it. If you are seeing a transition from 0x9F to 0x4C, that's not a change of only the LSB. 0x9E and 0x9F would be a change of the LSB. Like I said, I'm not getting what it is you are trying to say.
9f and 4c are the presented data, not the DAR tArget address. What he is saying, is if you load the DAR with 0x760C, and then infinitaly toggle the strobe line, with each toggle, the presented data will switch between 0x9F and 0x4C, which is the data located at addresses 0x760C and 0x760D.

This is how I have always understood it to work.

Brian
EFI-Unlimited

User avatar
cgrey8
Administrator
Posts: 11304
Joined: Fri Jun 24, 2005 5:54 am
Location: Acworth, Ga (Metro Atlanta)
Contact:

Re: Memory bus waveforms

Post by cgrey8 » Fri Sep 21, 2012 6:59 am

EFI-Unlimited wrote:...9f and 4c are the presented data, not the DAR tArget address. What he is saying, is if you load the DAR with 0x760C, and then infinitaly toggle the strobe line, with each toggle, the presented data will switch between 0x9F and 0x4C, which is the data located at addresses 0x760C and 0x760D...
Ok, to expound on this, if you make a call for 0x760D, does this mean that 0x4C (what's in 0x760D) is given 1st, followed by 0x9f (what's in 0x760C)? So I can make byte-size requests of RAM and I don't have to suffer through receiving the even byte I didn't ask for or want? If so, I can see how that is a time-saver and info I wasn't aware of.
...Always Somethin'

89 Ranger Supercab, 331 w/GT40p heads, ported Explorer lower, Crane Powermax 2020 cam, FMS Explorer (GT40p) headers, aftermarket T5 'Z-Spec', GUFB, Moates QuarterHorse tuned using BE&EA

Member V8-Ranger.com

User avatar
EFI-Unlimited
Professional Tuner/Shop Owner
Posts: 198
Joined: Thu Dec 13, 2007 1:17 am
Location: Tampa, FL

Re: Memory bus waveforms

Post by EFI-Unlimited » Fri Sep 21, 2012 11:04 am

cgrey8 wrote:
EFI-Unlimited wrote:...9f and 4c are the presented data, not the DAR tArget address. What he is saying, is if you load the DAR with 0x760C, and then infinitaly toggle the strobe line, with each toggle, the presented data will switch between 0x9F and 0x4C, which is the data located at addresses 0x760C and 0x760D...
Ok, to expound on this, if you make a call for 0x760D, does this mean that 0x4C (what's in 0x760D) is given 1st, followed by 0x9f (what's in 0x760C)? So I can make byte-size requests of RAM and I don't have to suffer through receiving the even byte I didn't ask for or want? If so, I can see how that is a time-saver and info I wasn't aware of.
Not sure if the CPU supports that, but the memory logic appears to.

Brian
EFI-Unlimited

ender11
Gear Head
Posts: 58
Joined: Fri Jan 06, 2012 10:14 am
Location: Krasnoyarsk, Russia

Re: Memory bus waveforms

Post by ender11 » Sat Sep 22, 2012 3:55 pm

250ns & 400ns STB period. interesting. different freq of cpu?

cprhodin
Gear Head
Posts: 7
Joined: Mon Apr 30, 2012 4:32 am

Re: Memory bus waveforms

Post by cprhodin » Sun Sep 30, 2012 2:46 am

Right, the PE computer has a 7.5 MHz crystal and the LA3 has a 12 MHz. At 3 clocks per bus cycle that's:

1 / (7.5 MHz / 3) = 400 ns
1 / (12 MHz / 3) = 250 ns

Chris

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests