111807Snikos.nikoleris@arm.com// Copyright (c) 2013,2017 ARM Limited
211247Sradhika.jagtap@ARM.com// All rights reserved
311247Sradhika.jagtap@ARM.com//
411247Sradhika.jagtap@ARM.com// The license below extends only to copyright in the software and shall
511247Sradhika.jagtap@ARM.com// not be construed as granting a license to any other intellectual
611247Sradhika.jagtap@ARM.com// property including but not limited to intellectual property relating
711247Sradhika.jagtap@ARM.com// to a hardware implementation of the functionality of the software
811247Sradhika.jagtap@ARM.com// licensed hereunder.  You may use the software subject to the license
911247Sradhika.jagtap@ARM.com// terms below provided that you ensure that this notice is replicated
1011247Sradhika.jagtap@ARM.com// unmodified and in its entirety in all distributions of the software,
1111247Sradhika.jagtap@ARM.com// modified or unmodified, in source code or in binary form.
1211247Sradhika.jagtap@ARM.com//
1311247Sradhika.jagtap@ARM.com// Redistribution and use in source and binary forms, with or without
1411247Sradhika.jagtap@ARM.com// modification, are permitted provided that the following conditions are
1511247Sradhika.jagtap@ARM.com// met: redistributions of source code must retain the above copyright
1611247Sradhika.jagtap@ARM.com// notice, this list of conditions and the following disclaimer;
1711247Sradhika.jagtap@ARM.com// redistributions in binary form must reproduce the above copyright
1811247Sradhika.jagtap@ARM.com// notice, this list of conditions and the following disclaimer in the
1911247Sradhika.jagtap@ARM.com// documentation and/or other materials provided with the distribution;
2011247Sradhika.jagtap@ARM.com// neither the name of the copyright holders nor the names of its
2111247Sradhika.jagtap@ARM.com// contributors may be used to endorse or promote products derived from
2211247Sradhika.jagtap@ARM.com// this software without specific prior written permission.
2311247Sradhika.jagtap@ARM.com//
2411247Sradhika.jagtap@ARM.com// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2511247Sradhika.jagtap@ARM.com// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2611247Sradhika.jagtap@ARM.com// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2711247Sradhika.jagtap@ARM.com// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2811247Sradhika.jagtap@ARM.com// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2911247Sradhika.jagtap@ARM.com// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3011247Sradhika.jagtap@ARM.com// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3111247Sradhika.jagtap@ARM.com// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3211247Sradhika.jagtap@ARM.com// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3311247Sradhika.jagtap@ARM.com// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3411247Sradhika.jagtap@ARM.com// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3511247Sradhika.jagtap@ARM.com//
3611247Sradhika.jagtap@ARM.com// Authors: Radhika Jagtap
3711247Sradhika.jagtap@ARM.com
3811807Snikos.nikoleris@arm.comsyntax = "proto2";
3911807Snikos.nikoleris@arm.com
4011247Sradhika.jagtap@ARM.com// Put all the generated messages in a namespace
4111247Sradhika.jagtap@ARM.compackage ProtoMessage;
4211247Sradhika.jagtap@ARM.com
4311247Sradhika.jagtap@ARM.com// Packet header for the o3cpu data dependency trace. The header fields are the
4411247Sradhika.jagtap@ARM.com// identifier describing what object captured the trace, the version of this
4511247Sradhika.jagtap@ARM.com// file format, the tick frequency of the object and the window size used to
4611247Sradhika.jagtap@ARM.com// limit the register dependencies during capture.
4711247Sradhika.jagtap@ARM.commessage InstDepRecordHeader {
4811247Sradhika.jagtap@ARM.com  required string obj_id = 1;
4911247Sradhika.jagtap@ARM.com  optional uint32 ver = 2 [default = 0];
5011247Sradhika.jagtap@ARM.com  required uint64 tick_freq = 3;
5111247Sradhika.jagtap@ARM.com  required uint32 window_size = 4;
5211247Sradhika.jagtap@ARM.com}
5311247Sradhika.jagtap@ARM.com
5411247Sradhika.jagtap@ARM.com// Packet to encapsulate an instruction in the o3cpu data dependency trace.
5511252Sradhika.jagtap@ARM.com// The required fields include the instruction sequence number and the type
5611252Sradhika.jagtap@ARM.com// of the record associated with the instruction e.g. load. The request related
5711252Sradhika.jagtap@ARM.com// fields are optional, namely address, size and flags. The dependency related
5811252Sradhika.jagtap@ARM.com// information includes a repeated field for order dependencies and register
5911252Sradhika.jagtap@ARM.com// dependencies for loads, stores and comp records. There is a field for the
6011252Sradhika.jagtap@ARM.com// computational delay with respect to the dependency that completed last. A
6111252Sradhika.jagtap@ARM.com// weight field is used to account for committed instruction that were
6211252Sradhika.jagtap@ARM.com// filtered out before writing the trace and is used to estimate ROB
6311252Sradhika.jagtap@ARM.com// occupancy during replay. An optional field is provided for the instruction
6411252Sradhika.jagtap@ARM.com// PC.
6511247Sradhika.jagtap@ARM.commessage InstDepRecord {
6611252Sradhika.jagtap@ARM.com  enum RecordType {
6711252Sradhika.jagtap@ARM.com    INVALID = 0;
6811252Sradhika.jagtap@ARM.com    LOAD = 1;
6911252Sradhika.jagtap@ARM.com    STORE = 2;
7011252Sradhika.jagtap@ARM.com    COMP = 3;
7111252Sradhika.jagtap@ARM.com  }
7211247Sradhika.jagtap@ARM.com  required uint64 seq_num = 1;
7311252Sradhika.jagtap@ARM.com  required RecordType type = 2 [default = INVALID];
7411253Sradhika.jagtap@ARM.com  optional uint64 p_addr = 3;
7511252Sradhika.jagtap@ARM.com  optional uint32 size = 4;
7611252Sradhika.jagtap@ARM.com  optional uint32 flags = 5;
7711252Sradhika.jagtap@ARM.com  repeated uint64 rob_dep = 6;
7811252Sradhika.jagtap@ARM.com  required uint64 comp_delay = 7;
7911252Sradhika.jagtap@ARM.com  repeated uint64 reg_dep = 8;
8011252Sradhika.jagtap@ARM.com  optional uint32 weight = 9;
8111252Sradhika.jagtap@ARM.com  optional uint64 pc = 10;
8211253Sradhika.jagtap@ARM.com  optional uint64 v_addr = 11;
8311253Sradhika.jagtap@ARM.com  optional uint32 asid = 12;
8411252Sradhika.jagtap@ARM.com}