1# Copyright (c) 2013 ARM Limited 2# All rights reserved 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license 9# terms below provided that you ensure that this notice is replicated 10# unmodified and in its entirety in all distributions of the software, 11# modified or unmodified, in source code or in binary form. 12# 13# Redistribution and use in source and binary forms, with or without 14# modification, are permitted provided that the following conditions are 15# met: redistributions of source code must retain the above copyright 16# notice, this list of conditions and the following disclaimer; 17# redistributions in binary form must reproduce the above copyright 18# notice, this list of conditions and the following disclaimer in the 19# documentation and/or other materials provided with the distribution; 20# neither the name of the copyright holders nor the names of its 21# contributors may be used to endorse or promote products derived from 22# this software without specific prior written permission. 23# 24# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 27# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 28# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 30# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35# 36# Authors: Andrew Bardsley 37# 38# minor.pic: Pipeline appearance of the Minor pipeline for minorview 39 40# Markup of the pipeline blocks. 41# '>' and '<' are connecting arrows. 42# '/', ':' and '\' mark multi-line arrows. 43# All other (non-space) character rectangles are the shapes of the 44# corresponding blocks below the markup. 45 46<<< 47 IPIPIPIPIPIPIPIPIP LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS KKKKKKKKKK 48 IP IP LS LS KK KK 49 IPiririr-\itititIP LSimimim drdrdr-\dtdtdtdt sbsbsbsbsbsbLS KK KK 50 IPiririr-/itititIP LSimimim drdrdr-/dtdtdtdt sbsbsbsbsbsbLS KK KK 51 IPIPIPIPIPIPIPIPIP LSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLSLS KK KK 52 KK KK 53 KK KK 54 acacac sasasasasasasasa EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE KK KK 55 acacac sasasasasasasasa EE EE KK KK 56 EEscscscscscscscscscscscscscscscscscscscEE KK KK 57 EEscscscscscscscscscscscscscscscscscscscEE KK KK 58 EE EE KK KK 59 F1F1F1F1-\1212-\F2F2F2F2-\2D2D-\DDDD-\DEDE-\EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE KK KK 60 F1 F1 :1212 :F2 F2 :2D2D :DDDD :DEDE :EEiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqiqEE KK KK 61 F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EE EE KK KK 62 F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi f0f0f0f0f0f0f0f0f0f0f0 ccccEE KK KK 63 F1fefeF1 :1212 :F2fifiF2 :2D2D :DDDD :DEDE :EEEiEiEiEi f0f0f0f0f0f0f0f0f0f0f0 ccccEE KK KK 64 F1fefeF1 :1212 :F2fifiF2-/2D2D-/DDDD-/DEDE-/EEEiEiEiEi f1f1f1f1f1f1f1f1f1f1f1 ccccEE KKKKKKKKKK 65 F1fefeF1 :1212 :F2fifiF2 DDDD EEEiEiEiEi f1f1f1f1f1f1f1f1f1f1f1 ccccEE 66 F1fefeF1-/1212-/F2fifiF2 DDDD EEEiEiEiEi f2f2f2f2f2f2f2f2f2f2f2 ccccEE 67 b2b2-\F1fefeF1 -\F2fifiF2 DDDD EEEiEiEiEi f2f2f2f2f2f2f2f2f2f2f2 ccccEE-\b1b1 68 b2b2-/F1fefeF1 -/F2fifiF2 DDDD EEEiEiEiEi f3f3f3f3f3f3f3f3f3f3f3 ccccEE-/b1b1 69 F1fefeF1/-2121/-F2fifiF2 DDDD EEEiEiEiEi f3f3f3f3f3f3f3f3f3f3f3 ccccEE 70 F1F1F1F1\-2121\-F2F2F2F2 DDDD EEEiEiEiEi f4f4f4f4f4f4f4f4f4f4f4 ccccEE 71 EEEiEiEiEi f4f4f4f4f4f4f4f4f4f4f4 ccccEE 72 FiFiFiFi DiDiDiDi EE f5f5f5f5f5f5f5f5f5f5f5 ccccEE 73 Fi Fi Di Di EE f5f5f5f5f5f5f5f5f5f5f5 ccccEE 74 FiFiFiFi DiDiDiDi EE f6f6f6f6f6f6f6f6f6f6f6 ccccEE 75 EE f6f6f6f6f6f6f6f6f6f6f6 ccccEE 76 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 77>>> 78 79# Macros for block type appearance. Macros are expanded in the 'block' 80# lines below and can include other macros. 81# 82# Attributes are name=value pairs. 83# Available names (and valid values); 84# 85# shape: {fifo, box, openBottom} 86# stripDir: {vert, horiz} 87# stripOrd: {RL, LR} 88# decoder: {insts, lines, branch, dcache, counts} 89# border: {thin, mid, thick} 90# dataElement: <name> 91# hideId: ({T, S, P, L, F, E})* 92# name: <string> 93# colours: ({U, B, -, E, R, F, r, w, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9})* 94# type: {key, block} 95 96# macro fifo: shape=fifo stripDir=vert 97macro fifo: shape=openBottom stripDir=horiz stripOrd=RL border=mid 98macro fu: decoder=insts border=mid name="" nameLoc=left 99# macro back: decoder=back border=mid dataElement=space name="" 100macro prediction: decoder=branch border=mid dataElement=prediction name="" 101macro forward: border=mid name="" 102macro dcache: fifo decoder=dcache dataElement=addr 103macro icache: fifo decoder=lines 104macro cacheFrame: stripDir=vert decoder=frame blankStrips=5 \ 105 dataElement=in_tlb_mem 106macro activity: decoder=counts shorten=2 border=mid 107macro inputBuffer: name="inputBuffer" fifo 108macro seqNum: decoder=counts border=mid 109macro streamFrame: decoder=frame stripDir=vert dataElement=streamSeqNum 110macro predictionFrame: decoder=frame stripDir=vert dataElement=predictionSeqNum 111 112# Block descriptions: 113# description ::= <char>: <unit-name-in-trace> 114# ( {<macro-name>, <name>=<value> )* 115# name ::= ? alphanumeric name with dots ? 116# value ::= "(<char-except-">)*", <char-except-' '>* } 117 118Fi: fetch2.inputBuffer0 inputBuffer decoder=lines 119Di: decode.inputBuffer0 inputBuffer decoder=insts hideId=E 120Ei: execute.inputBuffer0 inputBuffer stripDir=horiz decoder=insts border=mid 121F1: fetch1 streamFrame blankStrips=11 name="Fetch1" 122fe: fetch1 decoder=lines border=thin name="Line" 123F2: fetch2 predictionFrame blankStrips=11 name="Fetch2" 124fi: fetch2 decoder=insts border=thin name="Insts" 125DD: decode decoder=insts name="Decode" 126EE: execute streamFrame blankStrips=21 name="Execute" 127cc: execute decoder=insts name="Commit" border=mid 12812: f1ToF2 forward decoder=lines 12921: f2ToF1 prediction 1302D: f2ToD forward decoder=insts hideId=E 131DE: dToE forward decoder=insts 132b1: eToF1 forward decoder=branch 133b2: eToF1 forward decoder=branch 134IP: fetch1 cacheFrame name="Fetch queues" 135LS: execute.lsq cacheFrame name="LSQ" 136ir: fetch1.requests icache name="Requests" 137it: fetch1.transfers icache name="Transfers" 138dr: execute.lsq.requests dcache name="Requests" 139dt: execute.lsq.transfers dcache name="Transfers" 140sb: execute.lsq.storeBuffer dcache name="Store buffer" 141KK: _ type=key colours="UB-ERFrw0123456789" 142f0: execute.fu.0 fu shorten=2 name=Int 143f1: execute.fu.1 fu shorten=2 name=Int 144f2: execute.fu.2 fu shorten=2 name=Mul 145f3: execute.fu.3 fu shorten=2 name=Div 146f4: execute.fu.4 fu shorten=2 name=Float 147f5: execute.fu.5 fu shorten=2 name=Mem 148f6: execute.fu.6 fu shorten=2 name=Misc 149iq: execute.inFlightInsts0 fifo decoder=insts name="inFlightInsts" 150im: execute.inFUMemInsts0 fifo decoder=insts name="inFU..." 151sc: execute.scoreboard0 name="scoreboard" decoder=indexedCounts \ 152 dataElement=busy border=mid name="scoreboard" strips=38 stripelems=3 153sa: activity dataElement=stages activity name="Stage activity" 154ac: activity dataElement=activity decoder=counts border=mid name="Activity" 155