P4C
The P4 Compiler
Loading...
Searching...
No Matches
MauPowerSpec Class Referenceabstract

#include <power_spec.h>

Inheritance diagram for MauPowerSpec:
[legend]

Public Member Functions

virtual double get_absolute_max_power_threshold () const =0
 
virtual int get_action_latency_contribution () const
 
virtual int get_base_delay () const
 
virtual int get_base_predication_delay () const
 
virtual int get_concurrent_latency_contribution () const =0
 
virtual int get_cycles_to_issue_credit_to_pmarb () const =0
 
virtual double get_deferred_ram_read_power () const =0
 
virtual double get_deferred_ram_write_power () const =0
 
virtual int get_deparser_max_phv_valid () const =0
 
virtual int get_deparser_throughput_scaling_starts () const =0
 
virtual double get_excess_power_threshold () const =0
 
virtual double get_map_ram_read_power () const =0
 
virtual double get_map_ram_write_power () const =0
 
virtual int get_mau_corner_turn_delay () const =0
 
virtual double get_max_power () const =0
 
virtual int get_meter_lpf_delay () const
 
virtual int get_min_required_egress_mau_latency () const =0
 
virtual int get_pmarb_cycles_from_receive_credit_to_issue_phv_to_mau () const =0
 
virtual double get_ram_read_power () const =0
 
virtual double get_ram_scaling_factor () const =0
 
virtual double get_ram_write_power () const =0
 
virtual int get_selector_delay () const
 
virtual int get_stateful_delay () const
 
virtual int get_tcam_delay () const
 
virtual double get_tcam_scaling_factor () const =0
 
virtual double get_tcam_search_power () const =0
 
virtual double get_voltage_scaling_factor () const =0
 

Detailed Description

Copyright (C) 2024 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

SPDX-License-Identifier: Apache-2.0 This class encapsulates MAU power-related elements of the target device model, such as the measured or modeled power consumption of a read and/or write of each memory type in the MAU. In general, raw power estimates should not be exposed to the end user, other than the final total. Instead, a unitless normalized value should be used. Since power needs MAU stage latency information (for Tofino at least), MAU stage cycle latencies are also represented here.

Member Function Documentation

◆ get_base_delay()

virtual int MauPowerSpec::get_base_delay ( ) const
inlinevirtual

For computing MAU stage latencies (number of clock cycles).

◆ get_concurrent_latency_contribution()

virtual int MauPowerSpec::get_concurrent_latency_contribution ( ) const
pure virtual

For computing latency contribution of a MAU stage.

Implemented in JBayMauPowerSpec, and TofinoMauPowerSpec.

◆ get_deparser_max_phv_valid()

virtual int MauPowerSpec::get_deparser_max_phv_valid ( ) const
pure virtual

Implemented in JBayMauPowerSpec.

◆ get_deparser_throughput_scaling_starts()

virtual int MauPowerSpec::get_deparser_throughput_scaling_starts ( ) const
pure virtual

For scaling MAU power based on deparser buffer depth. The deparser limits how many PHVs may be traversing the MAU pipeline simultaneously.

Implemented in JBayMauPowerSpec, and TofinoMauPowerSpec.

◆ get_excess_power_threshold()

virtual double MauPowerSpec::get_excess_power_threshold ( ) const
pure virtual

The additional power given when –disable-power-check is provided at the command line.

Implemented in JBayMauPowerSpec, and TofinoMauPowerSpec.

◆ get_mau_corner_turn_delay()

virtual int MauPowerSpec::get_mau_corner_turn_delay ( ) const
pure virtual

Implemented in JBayMauPowerSpec.

◆ get_min_required_egress_mau_latency()

virtual int MauPowerSpec::get_min_required_egress_mau_latency ( ) const
pure virtual

For enforcing minimum latency (where appropriate).

Implemented in JBayMauPowerSpec, and TofinoMauPowerSpec.

◆ get_ram_scaling_factor()

virtual double MauPowerSpec::get_ram_scaling_factor ( ) const
pure virtual

Memory access power consumption (in Watts) Note that these numbers are not to be made available in any user-facing form.

Implemented in JBayMauPowerSpec, and TofinoMauPowerSpec.

◆ get_voltage_scaling_factor()

virtual double MauPowerSpec::get_voltage_scaling_factor ( ) const
pure virtual

Implemented in TofinoMauPowerSpec.