inst_dep_record.proto revision 11252
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.
5311252Sradhika.jagtap@ARM.com// The required fields include the instruction sequence number and the type
5411252Sradhika.jagtap@ARM.com// of the record associated with the instruction e.g. load. The request related
5511252Sradhika.jagtap@ARM.com// fields are optional, namely address, size and flags. The dependency related
5611252Sradhika.jagtap@ARM.com// information includes a repeated field for order dependencies and register
5711252Sradhika.jagtap@ARM.com// dependencies for loads, stores and comp records. There is a field for the
5811252Sradhika.jagtap@ARM.com// computational delay with respect to the dependency that completed last. A
5911252Sradhika.jagtap@ARM.com// weight field is used to account for committed instruction that were
6011252Sradhika.jagtap@ARM.com// filtered out before writing the trace and is used to estimate ROB
6111252Sradhika.jagtap@ARM.com// occupancy during replay. An optional field is provided for the instruction
6211252Sradhika.jagtap@ARM.com// PC.
6311247Sradhika.jagtap@ARM.commessage InstDepRecord {
6411252Sradhika.jagtap@ARM.com  enum RecordType {
6511252Sradhika.jagtap@ARM.com    INVALID = 0;
6611252Sradhika.jagtap@ARM.com    LOAD = 1;
6711252Sradhika.jagtap@ARM.com    STORE = 2;
6811252Sradhika.jagtap@ARM.com    COMP = 3;
6911252Sradhika.jagtap@ARM.com  }
7011247Sradhika.jagtap@ARM.com  required uint64 seq_num = 1;
7111252Sradhika.jagtap@ARM.com  required RecordType type = 2 [default = INVALID];
7211252Sradhika.jagtap@ARM.com  optional uint64 addr = 3;
7311252Sradhika.jagtap@ARM.com  optional uint32 size = 4;
7411252Sradhika.jagtap@ARM.com  optional uint32 flags = 5;
7511252Sradhika.jagtap@ARM.com  repeated uint64 rob_dep = 6;
7611252Sradhika.jagtap@ARM.com  required uint64 comp_delay = 7;
7711252Sradhika.jagtap@ARM.com  repeated uint64 reg_dep = 8;
7811252Sradhika.jagtap@ARM.com  optional uint32 weight = 9;
7911252Sradhika.jagtap@ARM.com  optional uint64 pc = 10;
8011252Sradhika.jagtap@ARM.com}