inst_dep_record.proto revision 11247
111247Sradhika.jagtap@ARM.com// Copyright (c) 2013 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
3811247Sradhika.jagtap@ARM.com// Put all the generated messages in a namespace
3911247Sradhika.jagtap@ARM.compackage ProtoMessage;
4011247Sradhika.jagtap@ARM.com
4111247Sradhika.jagtap@ARM.com// Packet header for the o3cpu data dependency trace. The header fields are the
4211247Sradhika.jagtap@ARM.com// identifier describing what object captured the trace, the version of this
4311247Sradhika.jagtap@ARM.com// file format, the tick frequency of the object and the window size used to
4411247Sradhika.jagtap@ARM.com// limit the register dependencies during capture.
4511247Sradhika.jagtap@ARM.commessage InstDepRecordHeader {
4611247Sradhika.jagtap@ARM.com  required string obj_id = 1;
4711247Sradhika.jagtap@ARM.com  optional uint32 ver = 2 [default = 0];
4811247Sradhika.jagtap@ARM.com  required uint64 tick_freq = 3;
4911247Sradhika.jagtap@ARM.com  required uint32 window_size = 4;
5011247Sradhika.jagtap@ARM.com}
5111247Sradhika.jagtap@ARM.com
5211247Sradhika.jagtap@ARM.com// Packet to encapsulate an instruction in the o3cpu data dependency trace.
5311247Sradhika.jagtap@ARM.com// The required fields include the instruction sequence number, whether it
5411247Sradhika.jagtap@ARM.com// is a load, and whether it is a store. The request related fields are
5511247Sradhika.jagtap@ARM.com// optional, namely address, size and flags. These exist only if the
5611247Sradhika.jagtap@ARM.com// instruction is a load or store. The dependency related information includes
5711247Sradhika.jagtap@ARM.com// a repeated field for order dependencies, a repeated field for register
5811247Sradhika.jagtap@ARM.com// dependencies and the computational delay with respect to the dependency
5911247Sradhika.jagtap@ARM.com// that completed last. A weight field is used to account for committed
6011247Sradhika.jagtap@ARM.com// instructions that were filtered out before writing the trace and is used
6111247Sradhika.jagtap@ARM.com// to estimate ROB occupancy during replay. An optional field is provided for
6211247Sradhika.jagtap@ARM.com// the instruction PC.
6311247Sradhika.jagtap@ARM.commessage InstDepRecord {
6411247Sradhika.jagtap@ARM.com  required uint64 seq_num = 1;
6511247Sradhika.jagtap@ARM.com  required bool load = 2;
6611247Sradhika.jagtap@ARM.com  required bool store = 3;
6711247Sradhika.jagtap@ARM.com  optional uint64 addr = 4;
6811247Sradhika.jagtap@ARM.com  optional uint32 size = 5;
6911247Sradhika.jagtap@ARM.com  optional uint32 flags = 6;
7011247Sradhika.jagtap@ARM.com  repeated uint64 rob_dep = 7;
7111247Sradhika.jagtap@ARM.com  required uint64 comp_delay = 8;
7211247Sradhika.jagtap@ARM.com  repeated uint64 reg_dep = 9;
7311247Sradhika.jagtap@ARM.com  optional uint32 weight = 10;
7411247Sradhika.jagtap@ARM.com  optional uint64 pc = 11;
7511247Sradhika.jagtap@ARM.com}
76