110259SAndrew.Bardsley@arm.com# Copyright (c) 2013 ARM Limited 210259SAndrew.Bardsley@arm.com# All rights reserved 310259SAndrew.Bardsley@arm.com# 410259SAndrew.Bardsley@arm.com# The license below extends only to copyright in the software and shall 510259SAndrew.Bardsley@arm.com# not be construed as granting a license to any other intellectual 610259SAndrew.Bardsley@arm.com# property including but not limited to intellectual property relating 710259SAndrew.Bardsley@arm.com# to a hardware implementation of the functionality of the software 810259SAndrew.Bardsley@arm.com# licensed hereunder. You may use the software subject to the license 910259SAndrew.Bardsley@arm.com# terms below provided that you ensure that this notice is replicated 1010259SAndrew.Bardsley@arm.com# unmodified and in its entirety in all distributions of the software, 1110259SAndrew.Bardsley@arm.com# modified or unmodified, in source code or in binary form. 1210259SAndrew.Bardsley@arm.com# 1310259SAndrew.Bardsley@arm.com# Redistribution and use in source and binary forms, with or without 1410259SAndrew.Bardsley@arm.com# modification, are permitted provided that the following conditions are 1510259SAndrew.Bardsley@arm.com# met: redistributions of source code must retain the above copyright 1610259SAndrew.Bardsley@arm.com# notice, this list of conditions and the following disclaimer; 1710259SAndrew.Bardsley@arm.com# redistributions in binary form must reproduce the above copyright 1810259SAndrew.Bardsley@arm.com# notice, this list of conditions and the following disclaimer in the 1910259SAndrew.Bardsley@arm.com# documentation and/or other materials provided with the distribution; 2010259SAndrew.Bardsley@arm.com# neither the name of the copyright holders nor the names of its 2110259SAndrew.Bardsley@arm.com# contributors may be used to endorse or promote products derived from 2210259SAndrew.Bardsley@arm.com# this software without specific prior written permission. 2310259SAndrew.Bardsley@arm.com# 2410259SAndrew.Bardsley@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2510259SAndrew.Bardsley@arm.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2610259SAndrew.Bardsley@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2710259SAndrew.Bardsley@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2810259SAndrew.Bardsley@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2910259SAndrew.Bardsley@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3010259SAndrew.Bardsley@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3110259SAndrew.Bardsley@arm.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3210259SAndrew.Bardsley@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3310259SAndrew.Bardsley@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3410259SAndrew.Bardsley@arm.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3510259SAndrew.Bardsley@arm.com# 3610259SAndrew.Bardsley@arm.com# Authors: Andrew Bardsley 3710259SAndrew.Bardsley@arm.com# 3810259SAndrew.Bardsley@arm.com# minor.pic: Pipeline appearance of the Minor pipeline for minorview 3910259SAndrew.Bardsley@arm.com 4010259SAndrew.Bardsley@arm.com# Markup of the pipeline blocks. 4110259SAndrew.Bardsley@arm.com# '>' and '<' are connecting arrows. 4210259SAndrew.Bardsley@arm.com# '/', ':' and '\' mark multi-line arrows. 4310259SAndrew.Bardsley@arm.com# All other (non-space) character rectangles are the shapes of the 4410259SAndrew.Bardsley@arm.com# corresponding blocks below the markup. 4510259SAndrew.Bardsley@arm.com 4610259SAndrew.Bardsley@arm.com<<< 4710259SAndrew.Bardsley@arm.com IPIPIPIPIPIPIPIPIP LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS KKKKKKKKKK 4810259SAndrew.Bardsley@arm.com IP IP LS LS KK KK 4910259SAndrew.Bardsley@arm.com IPiririr-\itititIP LSimimim drdrdr-\dtdtdtdt sbsbsbsbsbsbLS KK KK 5010259SAndrew.Bardsley@arm.com IPiririr-/itititIP LSimimim drdrdr-/dtdtdtdt sbsbsbsbsbsbLS KK KK 5110259SAndrew.Bardsley@arm.com IPIPIPIPIPIPIPIPIP LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS KK KK 5210259SAndrew.Bardsley@arm.com KK KK 5310259SAndrew.Bardsley@arm.com KK KK 5410259SAndrew.Bardsley@arm.com acacac sasasasasasasasa EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE KK KK 5510259SAndrew.Bardsley@arm.com acacac sasasasasasasasa EE EE KK KK 5610259SAndrew.Bardsley@arm.com EEscscscscscscscscscscscscscscscscscscscEE KK KK 5710259SAndrew.Bardsley@arm.com EEscscscscscscscscscscscscscscscscscscscEE KK KK 5810259SAndrew.Bardsley@arm.com EE EE KK KK 5910259SAndrew.Bardsley@arm.com F1F1F1F1-\1212-\F2F2F2F2-\2D2D-\DDDD-\DEDE-\EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE KK KK 6010259SAndrew.Bardsley@arm.com F1 F1 :1212 :F2 F2 :2D2D :DDDD :DEDE :EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE KK KK 6110259SAndrew.Bardsley@arm.com F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EE EE KK KK 6210259SAndrew.Bardsley@arm.com F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi f0f0f0f0f0f0f0f0f0f0f0 ccccEE KK KK 6310259SAndrew.Bardsley@arm.com F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi f0f0f0f0f0f0f0f0f0f0f0 ccccEE KK KK 6410259SAndrew.Bardsley@arm.com F1fefeF1 :1212 :F2fifiF2-/2D2D-/DDDD-/DEDE-/EEEiEiEiEi f1f1f1f1f1f1f1f1f1f1f1 ccccEE KKKKKKKKKK 6510259SAndrew.Bardsley@arm.com F1fefeF1 :1212 :F2fifiF2 DDDD EEEiEiEiEi f1f1f1f1f1f1f1f1f1f1f1 ccccEE 6610259SAndrew.Bardsley@arm.com F1fefeF1-/1212-/F2fifiF2 DDDD EEEiEiEiEi f2f2f2f2f2f2f2f2f2f2f2 ccccEE 6710259SAndrew.Bardsley@arm.com b2b2-\F1fefeF1 -\F2fifiF2 DDDD EEEiEiEiEi f2f2f2f2f2f2f2f2f2f2f2 ccccEE-\b1b1 6810259SAndrew.Bardsley@arm.com b2b2-/F1fefeF1 -/F2fifiF2 DDDD EEEiEiEiEi f3f3f3f3f3f3f3f3f3f3f3 ccccEE-/b1b1 6910259SAndrew.Bardsley@arm.com F1fefeF1/-2121/-F2fifiF2 DDDD EEEiEiEiEi f3f3f3f3f3f3f3f3f3f3f3 ccccEE 7010259SAndrew.Bardsley@arm.com F1F1F1F1\-2121\-F2F2F2F2 DDDD EEEiEiEiEi f4f4f4f4f4f4f4f4f4f4f4 ccccEE 7110259SAndrew.Bardsley@arm.com EEEiEiEiEi f4f4f4f4f4f4f4f4f4f4f4 ccccEE 7210259SAndrew.Bardsley@arm.com FiFiFiFi DiDiDiDi EE f5f5f5f5f5f5f5f5f5f5f5 ccccEE 7310259SAndrew.Bardsley@arm.com Fi Fi Di Di EE f5f5f5f5f5f5f5f5f5f5f5 ccccEE 7410259SAndrew.Bardsley@arm.com FiFiFiFi DiDiDiDi EE f6f6f6f6f6f6f6f6f6f6f6 ccccEE 7510259SAndrew.Bardsley@arm.com EE f6f6f6f6f6f6f6f6f6f6f6 ccccEE 7610259SAndrew.Bardsley@arm.com EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 7710259SAndrew.Bardsley@arm.com>>> 7810259SAndrew.Bardsley@arm.com 7910259SAndrew.Bardsley@arm.com# Macros for block type appearance. Macros are expanded in the 'block' 8010259SAndrew.Bardsley@arm.com# lines below and can include other macros. 8110259SAndrew.Bardsley@arm.com# 8210259SAndrew.Bardsley@arm.com# Attributes are name=value pairs. 8310259SAndrew.Bardsley@arm.com# Available names (and valid values); 8410259SAndrew.Bardsley@arm.com# 8510259SAndrew.Bardsley@arm.com# shape: {fifo, box, openBottom} 8610259SAndrew.Bardsley@arm.com# stripDir: {vert, horiz} 8710259SAndrew.Bardsley@arm.com# stripOrd: {RL, LR} 8810259SAndrew.Bardsley@arm.com# decoder: {insts, lines, branch, dcache, counts} 8910259SAndrew.Bardsley@arm.com# border: {thin, mid, thick} 9010259SAndrew.Bardsley@arm.com# dataElement: <name> 9110259SAndrew.Bardsley@arm.com# hideId: ({T, S, P, L, F, E})* 9210259SAndrew.Bardsley@arm.com# name: <string> 9310259SAndrew.Bardsley@arm.com# colours: ({U, B, -, E, R, F, r, w, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9})* 9410259SAndrew.Bardsley@arm.com# type: {key, block} 9510259SAndrew.Bardsley@arm.com 9610259SAndrew.Bardsley@arm.com# macro fifo: shape=fifo stripDir=vert 9710259SAndrew.Bardsley@arm.commacro fifo: shape=openBottom stripDir=horiz stripOrd=RL border=mid 9810259SAndrew.Bardsley@arm.commacro fu: decoder=insts border=mid name="" nameLoc=left 9910259SAndrew.Bardsley@arm.com# macro back: decoder=back border=mid dataElement=space name="" 10010259SAndrew.Bardsley@arm.commacro prediction: decoder=branch border=mid dataElement=prediction name="" 10110259SAndrew.Bardsley@arm.commacro forward: border=mid name="" 10210259SAndrew.Bardsley@arm.commacro dcache: fifo decoder=dcache dataElement=addr 10310259SAndrew.Bardsley@arm.commacro icache: fifo decoder=lines 10410259SAndrew.Bardsley@arm.commacro cacheFrame: stripDir=vert decoder=frame blankStrips=5 \ 10510259SAndrew.Bardsley@arm.com dataElement=in_tlb_mem 10610259SAndrew.Bardsley@arm.commacro activity: decoder=counts shorten=2 border=mid 10710259SAndrew.Bardsley@arm.commacro inputBuffer: name="inputBuffer" fifo 10810259SAndrew.Bardsley@arm.commacro seqNum: decoder=counts border=mid 10910259SAndrew.Bardsley@arm.commacro streamFrame: decoder=frame stripDir=vert dataElement=streamSeqNum 11010259SAndrew.Bardsley@arm.commacro predictionFrame: decoder=frame stripDir=vert dataElement=predictionSeqNum 11110259SAndrew.Bardsley@arm.com 11210259SAndrew.Bardsley@arm.com# Block descriptions: 11310259SAndrew.Bardsley@arm.com# description ::= <char>: <unit-name-in-trace> 11410259SAndrew.Bardsley@arm.com# ( {<macro-name>, <name>=<value> )* 11510259SAndrew.Bardsley@arm.com# name ::= ? alphanumeric name with dots ? 11610259SAndrew.Bardsley@arm.com# value ::= "(<char-except-">)*", <char-except-' '>* } 11710259SAndrew.Bardsley@arm.com 11811567Smitch.hayenga@arm.comFi: fetch2.inputBuffer0 inputBuffer decoder=lines 11911567Smitch.hayenga@arm.comDi: decode.inputBuffer0 inputBuffer decoder=insts hideId=E 12011567Smitch.hayenga@arm.comEi: execute.inputBuffer0 inputBuffer stripDir=horiz decoder=insts border=mid 12110259SAndrew.Bardsley@arm.comF1: fetch1 streamFrame blankStrips=11 name="Fetch1" 12210259SAndrew.Bardsley@arm.comfe: fetch1 decoder=lines border=thin name="Line" 12310259SAndrew.Bardsley@arm.comF2: fetch2 predictionFrame blankStrips=11 name="Fetch2" 12410259SAndrew.Bardsley@arm.comfi: fetch2 decoder=insts border=thin name="Insts" 12510259SAndrew.Bardsley@arm.comDD: decode decoder=insts name="Decode" 12610259SAndrew.Bardsley@arm.comEE: execute streamFrame blankStrips=21 name="Execute" 12710259SAndrew.Bardsley@arm.comcc: execute decoder=insts name="Commit" border=mid 12810259SAndrew.Bardsley@arm.com12: f1ToF2 forward decoder=lines 12910259SAndrew.Bardsley@arm.com21: f2ToF1 prediction 13010259SAndrew.Bardsley@arm.com2D: f2ToD forward decoder=insts hideId=E 13110259SAndrew.Bardsley@arm.comDE: dToE forward decoder=insts 13210259SAndrew.Bardsley@arm.comb1: eToF1 forward decoder=branch 13310259SAndrew.Bardsley@arm.comb2: eToF1 forward decoder=branch 13410259SAndrew.Bardsley@arm.comIP: fetch1 cacheFrame name="Fetch queues" 13510259SAndrew.Bardsley@arm.comLS: execute.lsq cacheFrame name="LSQ" 13610259SAndrew.Bardsley@arm.comir: fetch1.requests icache name="Requests" 13710259SAndrew.Bardsley@arm.comit: fetch1.transfers icache name="Transfers" 13810259SAndrew.Bardsley@arm.comdr: execute.lsq.requests dcache name="Requests" 13910259SAndrew.Bardsley@arm.comdt: execute.lsq.transfers dcache name="Transfers" 14010259SAndrew.Bardsley@arm.comsb: execute.lsq.storeBuffer dcache name="Store buffer" 14110259SAndrew.Bardsley@arm.comKK: _ type=key colours="UB-ERFrw0123456789" 14210259SAndrew.Bardsley@arm.comf0: execute.fu.0 fu shorten=2 name=Int 14310259SAndrew.Bardsley@arm.comf1: execute.fu.1 fu shorten=2 name=Int 14410259SAndrew.Bardsley@arm.comf2: execute.fu.2 fu shorten=2 name=Mul 14510259SAndrew.Bardsley@arm.comf3: execute.fu.3 fu shorten=2 name=Div 14610259SAndrew.Bardsley@arm.comf4: execute.fu.4 fu shorten=2 name=Float 14710259SAndrew.Bardsley@arm.comf5: execute.fu.5 fu shorten=2 name=Mem 14810259SAndrew.Bardsley@arm.comf6: execute.fu.6 fu shorten=2 name=Misc 14911567Smitch.hayenga@arm.comiq: execute.inFlightInsts0 fifo decoder=insts name="inFlightInsts" 15011567Smitch.hayenga@arm.comim: execute.inFUMemInsts0 fifo decoder=insts name="inFU..." 15111567Smitch.hayenga@arm.comsc: execute.scoreboard0 name="scoreboard" decoder=indexedCounts \ 15210259SAndrew.Bardsley@arm.com dataElement=busy border=mid name="scoreboard" strips=38 stripelems=3 15310259SAndrew.Bardsley@arm.comsa: activity dataElement=stages activity name="Stage activity" 15410259SAndrew.Bardsley@arm.comac: activity dataElement=activity decoder=counts border=mid name="Activity" 155