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}