[ibis-macro] Re: Unanswered question from last week.

  • From: Walter Katz <wkatz@xxxxxxxxxx>
  • To: "David Banas" <DBanas@xxxxxxxxxx>, <ibis-macro@xxxxxxxxxxxxx>
  • Date: Wed, 16 Apr 2014 14:13:06 -0400 (EDT)

David,

 

I see your point. And yes I agree that there should be a reserved
parameter that puts the Tx in Manual, Auto and Co-Optimization mode:

 

(Tx_Optimization_Mode (List "Manual" "Auto" "Co-Optimize") (Usage In)
(Type String) (Description

"Manual:             Tx Equalization will be based on Tx parameter inputs

AMI_Init will not alter the Tx equalization

AMI_GetWave will not alter the Tx equalization

  Auto:                   Tx Equalization will be based on impulse
response input to AMI_Init

AMI_GetWave will not alter the Tx equalization

  Co-Optimize     Initial Tx Equalization will be based on Tx parameter
inputs

AMI_Init will not alter the Tx equalization

AMI_GetWave will alter the Tx equalization based on inputs to
AMI_GetWave"))

 

    

Walter

 

From: David Banas [mailto:DBanas@xxxxxxxxxx] 
Sent: Wednesday, April 16, 2014 1:40 PM
To: Walter Katz; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

Likewise.

-db

 

 

From: Walter Katz [mailto:wkatz@xxxxxxxxxx] 
Sent: Wednesday, April 16, 2014 10:05 AM
To: David Banas; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

David,

 

See my responses below.

 

Walter

 

From: David Banas [mailto:DBanas@xxxxxxxxxx] 
Sent: Wednesday, April 16, 2014 12:35 PM
To: Walter Katz; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

Hi Walter,

 

Thanks for your response.

Please, see my replies in-line, below.

 

Thanks,

-db

 

 

From: Walter Katz [mailto:wkatz@xxxxxxxxxx] 
Sent: Wednesday, April 16, 2014 4:34 AM
To: David Banas; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

David,

 

Suppose a user sets up a simulation with Tx tap coefficients -.15,.85,0.
for taps -1, 0 and 1 respectively.

[David Banas] Ok.

 

And then suppose the Tx AMI_Init function changed the tap settings to
-.2,.75,-.05. 

[David Banas] I will suppose no such thing. If the user has manually set
tap weights, then he is operating the model in "manual" mode and there
should be no danger of the model changing anything without his knowledge.
In the scenario I was proposing, the user is in complete control of how
the Tx model operates. If he wants to set the taps himself, he uses
"manual" mode; if he wants the Tx model to take a SWAG at it, he uses
"auto" mode; if he wants the Tx to participate in some sort of
co-optimization training algorithm, he puts it in that mode, etc.

<WMK> Exactly so. The Tx model needs a method to be in Manual or Auto
Mode. I claim that Manual mode is the same as co-optimization mode, the Tx
model is told what to do - either by the user selecting tap values or the
Rx model selecting tap values.

[David Banas] I disagree. I believe, at least, three modes are required. I
don't think my users would appreciate putting my model in "manual" mode,
only to find out that the EDA tool thought it knew better and instructed
the model to change the tap weights the user had set. If the user directs
the model to operate in "manual" mode, then it better operate in manual
mode.

 

There is no requirement in the spec that the Tap parameter be an InOut, so
if it was an In, how does the user know that the tap coefficients have
changed?

And if they have changed, what have they changed to? How does the user
know how to program his BIOS to optimize the operation of the channel?

[David Banas] Although I have no objection to changing the type of the tap
weight parameters to InOut, I suppose he could read the simulation log. It
might be reasonable to expect that a model which exerts any control over
the tap weights be expected to report their final values in the msg
parameter of the AMI_Init() call, for instance.

<WMK> We should use (Usage InOut), this is exactly what InOut was designed
for. The EDA tool needs to know how the Tx is changing Tap Index or Tap
Coefficients. This will become evident when I will show how the flows I
described in the last slide of Tuesdays presentation. For example, the Rx
may choose a specific set of Tx tap coefficients, but the Tx DLL will need
to determine what Index setting are closest to these coefficients, and
then determine the actual tap coefficients that the Tx can use.

[David Banas] As I said, I have no objection to the tap weights being of
type InOut.

 

Even if the Tap was InOut, and it reported to the user what the change was
the user is going to get a performance result using -.2,.75,-.05. which
will give him a more open eye at the input to the Rx but a worse eye at
the output of the Rx.

 

Your response, very importantly, included the following "and if the user
has opted to NOT use the Tx model 'co-opt' mode, but rather to use some
'auto' feature of the Tx model". So you are saying that the Tx model NEEDS
a 'auto feature that can be turned on and off.

[David Banas] Nope. I'm saying that, if the Tx model happens to offer such
an operational mode to its user as a convenience, then its only obligation
is tell the user what tap weights it set, not the tool.

<WMK> The DLL tells the user through the tool. To support the various
flows in the last slide of Tuesday's presentation the Tx DLL must
communicate with the tool. For example, for PCIe time domain
co-optimization, the Tx GetWave must tell the Rx GetWave what the tap
coefficients are in order for the Rx GetWave backchannel to recommend a
changed set of tap coefficients. Note that 802.3KR backchannel sends
increments to the taps, while PCIe sends tap coefficient values.

[David Banas] You're tending to collapse each one of these points into the
co-optimization context. Please, stay aware that there are, at least, 3
different modes of operation we need to support, going forward:

1.       "Manual" - The user selects that tap weights, and nothing else
should change them.

2.       "Auto" - Some convenience feature in the model helps the user
choose the tap weights, based solely upon the channel impulse response. No
co-optimization is assumed or supported.

3.       "Co-optimize" - The Tx model supports a full-blown
co-optimization protocol, accepting tap weight adjustment commands from
the Rx, via the EDA tool, and reporting back its tap weights to the Rx,
via the EDA tool. (The term "tap weights", as used here, is intended to be
generic; it could mean: index, increment, value, etc.)

 

This is exactly what I said when I said for Redriver Tx and for Tx
involved in co-optimization.

[David Banas] But, I'm suggesting that an "auto" mode might have utility
for the user, completely outside of any re-driver or co-optimization
context. It might just be a nice convenience feature model makers add, in
order to assist their users "narrow the parameter space". And let's,
please, be careful about potentially legislating away a model maker's
ability to provide such a convenience.

<WMK> Many Rx models today have manual and auto settings. There are very
few Tx models that have an auto capability, and the one that I am aware of
does not have a switch to turn it on or off. If a Tx model is going to
support backchannel and co-optimization, and if it has an auto/manual
capability, the user (or tool) needs to be able to be able to set the
model to manual. If we want the tool to do this automatically we do need
to legislate a standard way of setting auto/manual. 

[David Banas] Then, let's make sure we provide the user of a Tx model a
way of indicating to the EDA tool that he actually wants the Tx model to
take part in co-optimization. Let's not allow the EDA tool to presume that
it knows better than the user how the Tx model should be used. Let's have
a third option for the operational mode of the Tx, "co-opt.", so that, if
the user sets the Tx to "manual" mode, he can actually count on it
operating in manual mode. That is, he can actually count on nothing else
altering the tap weights he has selected.

 

I suggested a reserved parameter to turn the Tx self-optimization on and
off. So we either force the user to read the Tx Model users guide to
figure this out, or use a reserved parameter. In any case I believe the
user should control this, and not leave it solely up to the Tx model to
make this decision as you suggested in your question.

[David Banas] On this point (i.e. - The user should be in control of how
the model operates.), I think we're in violent agreement.

<WMK> I agree, but if the user is requesting backchannel or
co-optimization then we should make it reliable that the Tx be put into
"manual" mode automatically. I will be proposing one way to do this next
week, but there may be other ways as well. If we were talking about
controlling the Rx the problem is very complicated, but for Tx the problem
is very simple since there is only one IC vendor that I am aware of that
is delivering Tx models that do this.

[David Banas] So, I agree with the first half of your first sentence (the
important part being, "if the user is requesting."), and completely
disagree with the second half. The Tx should never be put into a mode the
user did not intend. If the user wants the Tx to participate in
co-optimization, then he will put the Tx into "co-optimization" mode. If
he wants manual control of the tap weights, then he will put the Tx into
"manual" mode and set the tap weights. And, if he does this, he certainly
doesn't want the EDA tool thinking that it knows better than him and
pulling the Tx model out of "manual" mode and putting it into
"co-optimize" mode. If he wants the Tx to participate in co-optimization,
he will say so.

 

Walter

 

From: David Banas [mailto:DBanas@xxxxxxxxxx] 
Sent: Tuesday, April 15, 2014 5:17 PM
To: Walter Katz; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

I think my original question is more true to my intended inquiry, than
either alternative you propose.

 

And, understand that the case I'm envisioning is one in which the user
doesn't want EDA tool driven co-optimization to occur. (Otherwise, he'd do
that.)

In such an instance, and if the user has opted to NOT use the Tx model
'co-opt' mode, but rather to use some 'auto' feature of the Tx model, in
which that model chooses the optimum FIR coefficients based solely upon
the channel impulse response and not expecting to take part in any Tx/Rx
co-optimization, why must the Tx AMI_Init() function alert the EDA tool
that it has done so?

(Mike M., that is what you were suggesting; right?)

 

Thanks,

-db

 

 

From: Walter Katz [mailto:wkatz@xxxxxxxxxx] 
Sent: Tuesday, April 15, 2014 1:29 PM
To: David Banas; ibis-macro@xxxxxxxxxxxxx
Subject: RE: [ibis-macro] Unanswered question from last week.

 

David,

 

Your statement is not quite correct. I think the statement should be:

 

Why must the Tx .ami file tell the EDA tool, if it assisted the user in
choosing "optimum" tap weights?

or

Why must the Tx .ami file tell allow the EDA tool to tell the Tx
AMI_Init() to assist the user in choosing "optimum" tap weights?

 

The reason for letting the EDA tool know what the Tx AMI_Init() function
is doing (or controlling what the Tx AMI_Init() function is doing is
important in co-optimization, particularly in the statistical flow. The Rx
AMI_Init needs to know the Tx equalization used to generate the input to
the Rx AMI_Init, and when the Rx AMI_Init returns an optimized Tx tap
coefficients, the Tx AMI_Init function needs to be called with these
coefficients, and the Tx AMI_Init must use the equalization for these tap
coefficients.

 

Does this answer your question?

 

Walter

 

 

From: ibis-macro-bounce@xxxxxxxxxxxxx
[mailto:ibis-macro-bounce@xxxxxxxxxxxxx] On Behalf Of David Banas
Sent: Tuesday, April 15, 2014 2:30 PM
To: ibis-macro@xxxxxxxxxxxxx
Subject: [ibis-macro] Unanswered question from last week.

 

Hi all,

 

I asked a question, at the end of Walter's presentation last week, which I
don't think was ever answered. So, I'd like to ask it, again:

 

Why must the Tx AMI_Init() function tell the EDA tool, if it assisted the
user in choosing "optimum" tap weights?

 

(How, for instance, is this use case different than the user relying on,
say, MATLAB to help him find optimum tap weights and setting those
MATLAB-prescribed values in the AMI model, by hand?)

 

Thanks,

-db

 

 

  _____  


Confidentiality Notice.
This message may contain information that is confidential or otherwise
protected from disclosure. If you are not the intended recipient, you are
hereby notified that any use, disclosure, dissemination, distribution, or
copying of this message, or any attachments, is strictly prohibited. If
you have received this message in error, please advise the sender by reply
e-mail, and delete the message and any attachments. Thank you.

 

  _____  


Confidentiality Notice.
This message may contain information that is confidential or otherwise
protected from disclosure. If you are not the intended recipient, you are
hereby notified that any use, disclosure, dissemination, distribution, or
copying of this message, or any attachments, is strictly prohibited. If
you have received this message in error, please advise the sender by reply
e-mail, and delete the message and any attachments. Thank you.

 

  _____  


Confidentiality Notice.
This message may contain information that is confidential or otherwise
protected from disclosure. If you are not the intended recipient, you are
hereby notified that any use, disclosure, dissemination, distribution, or
copying of this message, or any attachments, is strictly prohibited. If
you have received this message in error, please advise the sender by reply
e-mail, and delete the message and any attachments. Thank you.

 

  _____  


Confidentiality Notice.
This message may contain information that is confidential or otherwise
protected from disclosure. If you are not the intended recipient, you are
hereby notified that any use, disclosure, dissemination, distribution, or
copying of this message, or any attachments, is strictly prohibited. If
you have received this message in error, please advise the sender by reply
e-mail, and delete the message and any attachments. Thank you.

Other related posts: