OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_47/] [or1ksim/] [cpu/] [common/] [stats.h] - Blame information for rev 1782

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 cvs
/* stats.h -- Header file for stats.c
2
   Copyright (C) 1999 Damjan Lampret, lampret@opencores.org
3
 
4
This file is part of OpenRISC 1000 Architectural Simulator.
5
 
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2 of the License, or
9
(at your option) any later version.
10
 
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
GNU General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
19
 
20
#define DSTATS_LEN      3000
21
#define SSTATS_LEN      300
22
#define FSTATS_LEN      200
23 535 markom
#define RAW_RANGE       1000
24 2 cvs
 
25 30 lampret
/* Used by safe division - increment divisor by one if it is zero */
26
#define SD(X) (X != 0 ? X : 1)
27
 
28 2 cvs
struct dstats_entry {
29 535 markom
        int  insn1;
30
        int  insn2;
31 2 cvs
        int  cnt_dynamic;
32
        int  depend;
33
};
34
 
35
struct sstats_entry {
36 535 markom
        int  insn;
37 2 cvs
        int  cnt_dynamic;
38
};      /* single stats */
39
 
40
struct fstats_entry {
41
        enum insn_type insn1;
42
        enum insn_type insn2;
43
        int  cnt_dynamic;
44
        int  depend;
45
};      /* functional units stats */
46
 
47
struct bpbstat {
48
        int hit;
49
        int miss;
50
        int correct;
51
        int incorrect;
52
};
53
 
54
struct bticstat {
55
        int hit;
56
        int miss;
57
};
58
 
59
struct mstats_entry {
60 535 markom
        int byteadd;
61
        int bf[2][2];  /* [taken][fwd/bwd] */
62
        int bnf[2][2]; /* [taken][fwd/bwd] */
63 2 cvs
        struct bpbstat bpb;
64
        struct bticstat btic;
65
};      /* misc units stats */
66
 
67 6 lampret
struct cachestats_entry {
68
        int readhit;
69
        int readmiss;
70
        int writehit;
71
        int writemiss;
72
};      /* cache stats */
73
 
74 77 lampret
struct immustats_entry {
75
        int fetch_tlbhit;
76
        int fetch_tlbmiss;
77
        int fetch_pagefaults;
78
};      /* IMMU stats */
79
 
80
struct dmmustats_entry {
81 65 lampret
        int loads_tlbhit;
82
        int loads_tlbmiss;
83
        int loads_pagefaults;
84
        int stores_tlbhit;
85
        int stores_tlbmiss;
86
        int stores_pagefaults;
87 77 lampret
};      /* DMMU stats */
88 65 lampret
 
89 6 lampret
struct raw_stats {
90
        int reg[64];
91
        int range[RAW_RANGE];
92
};      /* RAW hazard stats */
93
 
94 1244 hpanther
/* Renamed mstats to or1k_mstats because Mac OS X has a lib function called mstats */
95
extern struct mstats_entry or1k_mstats;
96 2 cvs
extern struct sstats_entry sstats[SSTATS_LEN];
97
extern struct dstats_entry dstats[DSTATS_LEN];
98
extern struct fstats_entry fstats[FSTATS_LEN];
99 6 lampret
extern struct cachestats_entry ic_stats;
100
extern struct cachestats_entry dc_stats;
101 77 lampret
extern struct immustats_entry immu_stats;
102
extern struct dmmustats_entry dmmu_stats;
103 6 lampret
extern struct raw_stats raw_stats;
104 2 cvs
 
105
extern int check_depend();
106 535 markom
extern void addsstats(int item, int cnt_dynamic);
107
extern void adddstats(int item1, int item2, int cnt_dynamic, int depend);
108 2 cvs
extern void addfstats(enum insn_type item1, enum insn_type item2, int cnt_dynamic, int depend);
109
extern void initstats();
110
extern void printstats();

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.