[P4-design] jargon: target, architecture, target architecture

Chris Dodd chris at barefootnetworks.com
Fri Oct 21 17:22:21 EDT 2016


I think "target" *is* the logical entity being targetted by the compiler --
the output of the compiler is something that will run on a particular
target.  The architecture affects the INPUT of the compiler -- it is the
sublanguage that the program is written in.  Once the compiler is done and
you have a target object file, it doesn't matter what architecture the P4
program that generated that object file was written for.

The term "Platform" is just to have a term for the "architecture+target"
combo that really only matters during a compile.

On Fri, Oct 21, 2016 at 1:22 PM, Gordon Brebner <Gordon.Brebner at xilinx.com>
wrote:

> I like the three-part rationale, and the remarks on P4 programs following
> it.  This all makes complete sense.
>
>
>
> My only comment – and I think that this is probably something dependent on
> personal background or context – is that I’d switch round the terms
> “target” and “platform”.  For me, “platform” suggests the actual physical
> technology, whereas “target” seems like the logical entity being targeted
> by the compiler.  But I seem to be in a minority of one so far …
>
>
>
> Gordon.
>
>
>
>
>
> *From:* Vladimir Gurevich [mailto:vag at barefootnetworks.com]
> *Sent:* Friday, October 21, 2016 11:35 AM
> *To:* Gordon Brebner <gjb at xilinx.com>
> *Cc:* Nate Foster <jnfoster at cs.cornell.edu>; p4-design at lists.p4.org
> *Subject:* Re: [P4-design] jargon: target, architecture, target
> architecture
>
>
>
> Hello Gordon,
>
>
>
> I propose we use the following terms:
>
>    - Target -- a specific hardware implementation capable of executing P4
>    programs
>    - Architecture -- a specific set of P4-programmable and non-P4
>    programmable components and interfaces between them (expressed as intrinsic
>    metadata)
>    - Platform -- A specific architecture implemented on a specific target
>
> P4 programs continue to be* target-independent*. In other words they do
> not care which specific hardware/software implements exact or ternary
> match, how exactly parser state transitions are implemented, etc., etc.
> This is quite similar to how programs written in traditional programming
> languages (C, C++, Fortran, etc.) are quite portable between Intel,
> PowerPC, ARM, etc.
>
>
>
> P4 programs are *architecture-dependent*. They will typically take
> advantage of the specific non-P4-programmable components, but using
> intrinsic metadata, exploiting available externs, etc. It might be possible
> to write P4 programs that are portable across (somewhat similar)
> architectures, but that would take an additional effort, porting layers
> (implemented, for example, using the preprocessor facilities) and, perhaps,
> sticking to the comon features only. This is quite similar to how programs,
> written in the traditional languages are OS- and library- dependent.
>
>
>
> P4 programs are thus compiled for a *platform*, meaning that the compiler
> should be acutely aware of both the target (i.e. the specific hardware) and
> the architecture.
>
>
>
> What do you think? We already use the terms "target" and "architecture"
> ("architecture model") in the spec and if that's OK I'll add "platform" and
> normalize usage.
>
>
>
> Thanks,
>
> Vladimir
>
>
>
> On Wed, Oct 19, 2016 at 12:44 PM, Gordon Brebner <
> Gordon.Brebner at xilinx.com> wrote:
>
> I hadn’t really given this much thought before, but it drew me to have a
> quick look at the (146, according to Word) uses of “target” in the draft
> spec.
>
>
>
> My interpretation of “target architecture” had hitherto been “the P4
> architecture that is the target of the compiler”, so “target” in use as an
> adjective in the same way as it’s used in “target audience” in the first
> paragraph of the spec.  This is subtly different from the interpretation
> below, which is “a P4 architecture on the target technology”.
>
>
>
> I’m okay with the suggested simplification below, with a slight preference
> for “P4 architecture” over just “architecture”, which could be a bit
> generic with the possible confusion Nate mentions.
>
>
>
> If I was going further, then I might put “technology” rather than
> “target”, and then ensure that any remaining uses of “target” added
> something helpful in context to indicate that the P4 architecture or the
> technology were the target of the P4 compilation.
>
>
>
> Gordon.
>
>
>
>
>
> *From:* P4-design [mailto:p4-design-bounces at lists.p4.org] *On Behalf Of *Nate
> Foster
> *Sent:* Wednesday, October 19, 2016 12:06 PM
> *To:* p4-design at lists.p4.org
> *Subject:* [P4-design] jargon: target, architecture, target architecture
>
>
>
> The current version of the P4_16 specification uses the term "target
> architecture" in a number of places. In discussions with people at
> Barefoot, we've been finding it's cleaner to simply refer to "target"
> (e.g., a software switch, FPGA, or ASIC) or "architecture" (a description
> of a set of P4-programmable parser and control blocks, externs, etc.) We've
> observed that while "target architecture" makes perfect sense grammatically
> -- "target" is an adjective that modifies "architecture" -- combing both
> terms into a single phrase actually seems to muddy the waters and cause
> confusion for many people, especially those new to the language and this
> particular distinction.
>
>
>
> One potential downside of using "architecture" is that what we call a
> "target" a hardware person might call an "architecture." We've been
> finessing this by saying "P4 architecture" or "architecture model" when
> there is the possibility of confusion.
>
>
>
> Do people have thoughts on this issue? If there are no objections, I would
> propose to revise the specification to eliminate "target architecture" in
> favor of "architecture" or "P4 architecture." (I've already sent Mihai a
> version of the spec with this change, but obviously this should be
> discussed within the group.)
>
>
>
> Cheers,
>
> N
>
>
>
> This email and any attachments are intended for the sole use of the named
> recipient(s) and contain(s) confidential information that may be
> proprietary, privileged or copyrighted under applicable law. If you are not
> the intended recipient, do not read, copy, or forward this email message or
> any attachments. Delete this email message and any attachments immediately.
>
>
> _______________________________________________
> P4-design mailing list
> P4-design at lists.p4.org
> http://lists.p4.org/mailman/listinfo/p4-design_lists.p4.org
>
>
>
>
> This email and any attachments are intended for the sole use of the named
> recipient(s) and contain(s) confidential information that may be
> proprietary, privileged or copyrighted under applicable law. If you are not
> the intended recipient, do not read, copy, or forward this email message or
> any attachments. Delete this email message and any attachments immediately.
>
>
> _______________________________________________
> P4-design mailing list
> P4-design at lists.p4.org
> http://lists.p4.org/mailman/listinfo/p4-design_lists.p4.org
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-design_lists.p4.org/attachments/20161021/27503fd9/attachment-0002.html>


More information about the P4-design mailing list