P4C
The P4 Compiler
Loading...
Searching...
No Matches
JBayMauPowerSpec Class Reference

#include <power_spec.h>

Inheritance diagram for JBayMauPowerSpec:
[legend]

Public Member Functions

double get_absolute_max_power_threshold () const override
 
int get_concurrent_latency_contribution () const override
 
int get_cycles_to_issue_credit_to_pmarb () const override
 
double get_deferred_ram_read_power () const override
 
double get_deferred_ram_write_power () const override
 
int get_deparser_max_phv_valid () const override
 
int get_deparser_throughput_scaling_starts () const override
 
double get_excess_power_threshold () const override
 
double get_map_ram_read_power () const override
 
double get_map_ram_write_power () const override
 
int get_mau_corner_turn_delay () const override
 
double get_max_power () const override
 
int get_min_required_egress_mau_latency () const override
 
int get_pmarb_cycles_from_receive_credit_to_issue_phv_to_mau () const override
 
double get_ram_read_power () const override
 
double get_ram_scaling_factor () const override
 
double get_ram_write_power () const override
 
double get_tcam_scaling_factor () const override
 
double get_tcam_search_power () const override
 
double get_voltage_scaling_factor () const override
 
- Public Member Functions inherited from MauPowerSpec
virtual int get_action_latency_contribution () const
 
virtual int get_base_delay () const
 
virtual int get_base_predication_delay () const
 
virtual int get_meter_lpf_delay () const
 
virtual int get_selector_delay () const
 
virtual int get_stateful_delay () const
 
virtual int get_tcam_delay () const
 

Detailed Description

Most of these numbers are currently based on library models, not measurements. This will be re-visited once more measurements have been procured. When a number was not available, we defaulted to Tofino's unscaled value.

Member Function Documentation

◆ get_absolute_max_power_threshold()

double JBayMauPowerSpec::get_absolute_max_power_threshold ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_concurrent_latency_contribution()

int JBayMauPowerSpec::get_concurrent_latency_contribution ( ) const
inlineoverridevirtual

For computing latency contribution of a MAU stage. There is no concurrent dependency type for for Tofino2. In such cases, use an action dependency.

Implements MauPowerSpec.

◆ get_cycles_to_issue_credit_to_pmarb()

int JBayMauPowerSpec::get_cycles_to_issue_credit_to_pmarb ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_deferred_ram_read_power()

double JBayMauPowerSpec::get_deferred_ram_read_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_deferred_ram_write_power()

double JBayMauPowerSpec::get_deferred_ram_write_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_deparser_max_phv_valid()

int JBayMauPowerSpec::get_deparser_max_phv_valid ( ) const
inlineoverridevirtual

FIXME: Do not currently know these numbers, or whether they will be relevant. Since they are not needed currently for Tofino2, leave them at 0.

Implements MauPowerSpec.

◆ get_deparser_throughput_scaling_starts()

int JBayMauPowerSpec::get_deparser_throughput_scaling_starts ( ) const
inlineoverridevirtual

For scaling MAU power based on deparser throttling. Currently, deparser scaling does not apply to Tofino2. If it does eventually, update this value. For now, it is given a value that is greater than the maximum possible latency (30 cycles * 20 stages)

Implements MauPowerSpec.

◆ get_excess_power_threshold()

double JBayMauPowerSpec::get_excess_power_threshold ( ) const
inlineoverridevirtual

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

Implements MauPowerSpec.

◆ get_map_ram_read_power()

double JBayMauPowerSpec::get_map_ram_read_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_map_ram_write_power()

double JBayMauPowerSpec::get_map_ram_write_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_mau_corner_turn_delay()

int JBayMauPowerSpec::get_mau_corner_turn_delay ( ) const
inlineoverridevirtual

There is no imposed corner-turn latency for Tofino2, as there is no corner to turn.

Implements MauPowerSpec.

◆ get_max_power()

double JBayMauPowerSpec::get_max_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_min_required_egress_mau_latency()

int JBayMauPowerSpec::get_min_required_egress_mau_latency ( ) const
inlineoverridevirtual

There is currently no minimum egress pipeline latency for Tofino2.

Implements MauPowerSpec.

◆ get_pmarb_cycles_from_receive_credit_to_issue_phv_to_mau()

int JBayMauPowerSpec::get_pmarb_cycles_from_receive_credit_to_issue_phv_to_mau ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_ram_read_power()

double JBayMauPowerSpec::get_ram_read_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_ram_scaling_factor()

double JBayMauPowerSpec::get_ram_scaling_factor ( ) const
inlineoverridevirtual

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

Implements MauPowerSpec.

◆ get_ram_write_power()

double JBayMauPowerSpec::get_ram_write_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_tcam_scaling_factor()

double JBayMauPowerSpec::get_tcam_scaling_factor ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_tcam_search_power()

double JBayMauPowerSpec::get_tcam_search_power ( ) const
inlineoverridevirtual

Implements MauPowerSpec.

◆ get_voltage_scaling_factor()

double JBayMauPowerSpec::get_voltage_scaling_factor ( ) const
inlineoverridevirtual

Implements MauPowerSpec.