From 80a26a3e39874dab7c0b51cd5ce0258039494e30 Mon Sep 17 00:00:00 2001 From: Djordje Kovacevic Date: Tue, 25 Sep 2012 11:49:41 -0500 Subject: [PATCH] MEM: Put memory system document into doxygen --- src/Doxyfile | 2 +- src/doc/memory_system.doxygen | 278 ++++++++++++++++++++++++++++ src/doxygen/images/gem5_MS_Fig1.PNG | Bin 0 -> 4004 bytes src/doxygen/images/gem5_MS_Fig2.PNG | Bin 0 -> 7281 bytes src/doxygen/images/gem5_MS_Fig3.PNG | Bin 0 -> 30751 bytes src/doxygen/images/gem5_MS_Fig4.PNG | Bin 0 -> 5351 bytes src/doxygen/images/gem5_MS_Fig5.PNG | Bin 0 -> 7324 bytes src/doxygen/images/gem5_MS_Fig6.PNG | Bin 0 -> 16516 bytes src/doxygen/images/gem5_MS_Fig7.PNG | Bin 0 -> 8626 bytes src/doxygen/images/gem5_MS_Fig8.PNG | Bin 0 -> 17209 bytes src/doxygen/images/gem5_MS_Fig9.PNG | Bin 0 -> 16453 bytes src/mem/cache/cache.hh | 2 +- src/mem/cache/mshr.hh | 1 + src/mem/cache/tags/lru.hh | 1 + src/mem/coherent_bus.hh | 1 + src/mem/simple_mem.hh | 1 + 16 files changed, 284 insertions(+), 2 deletions(-) create mode 100644 src/doc/memory_system.doxygen create mode 100755 src/doxygen/images/gem5_MS_Fig1.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig2.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig3.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig4.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig5.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig6.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig7.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig8.PNG create mode 100755 src/doxygen/images/gem5_MS_Fig9.PNG diff --git a/src/Doxyfile b/src/Doxyfile index ed4245dd2..2dc1f4112 100644 --- a/src/Doxyfile +++ b/src/Doxyfile @@ -459,7 +459,7 @@ EXAMPLE_RECURSIVE = NO # directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = +IMAGE_PATH = doxygen/images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program diff --git a/src/doc/memory_system.doxygen b/src/doc/memory_system.doxygen new file mode 100644 index 000000000..061a289ee --- /dev/null +++ b/src/doc/memory_system.doxygen @@ -0,0 +1,278 @@ +# Copyright (c) 2012 ARM Limited +# All rights reserved +# +# The license below extends only to copyright in the software and shall +# not be construed as granting a license to any other intellectual +# property including but not limited to intellectual property relating +# to a hardware implementation of the functionality of the software +# licensed hereunder. You may use the software subject to the license +# terms below provided that you ensure that this notice is replicated +# unmodified and in its entirety in all distributions of the software, +# modified or unmodified, in source code or in binary form. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer; +# redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution; +# neither the name of the copyright holders nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Author: Djordje Kovacevic + +/*! \page gem5MemorySystem Memory System in gem5 + + \tableofcontents + + The document describes memory subsystem in gem5 with focus on program flow + during CPU’s simple memory transactions (read or write). + + + \section gem5_MS_MH MODEL HIERARCHY + + Model that is used in this document consists of two out-of-order (O3) + ARM v7 CPUs with corresponding L1 data caches and Simple Memory. It is + created by running gem5 with the following parameters: + + configs/example/fs.py --caches --cpu-type=arm_detailed --num-cpus=2 + + Gem5 uses Memory Objects (MemObject) derived objects as basic blocks for + building memory system. They are connected via ports with established + master/slave hierarchy. Data flow is initiated on master port while the + response messages and snoop queries appear on the slave port. The following + figure shows the hierarchy of Memory Objects used in this document: + + \image html "gem5_MS_Fig1.PNG" "Memory Object hierarchy of the model" width=3cm + + \section gem5_CPU CPU + + It is not in the scope of this document to describe O3 CPU model in details, so + here are only a few relevant notes about the model: + + Read access is initiated by sending message to the port towards DCache + object. If DCache rejects the message (for being blocked or busy) CPU will + flush the pipeline and the access will be re-attempted later on. The access + is completed upon receiving reply message (ReadRep) from DCache. + + Write access is initiated by storing the request into store buffer whose + context is emptied and sent to DCache on every tick. DCache may also reject + the request. Write access is completed when write reply (WriteRep) message is + received from DCache. + + Load & store buffers (for read and write access) don’t impose any + restriction on the number of active memory accesses. Therefore, the maximum + number of outstanding CPU’s memory access requests is not limited by CPU + Memory Object but by underlying memory system model. + + Split memory access is implemented. + + The message that is sent by CPU contains memory type (Normal, Device, Strongly + Ordered and cachebility) of the accessed region. However, this is not being used + by the rest of the model that takes more simplified approach towards memory types. + + \section gem5_DCache DATA CACHE OBJECT + + Data Cache object implements a standard cache structure: + + \image html "gem5_MS_Fig2.PNG" "DCache Memory Object" width=3cm + + Cached memory reads that match particular cache tag (with Valid & Read + flags) will be completed (by sending ReadResp to CPU) after a configurable time. + Otherwise, the request is forwarded to Miss Status and Handling Register + (MSHR) block. + + Cached memory writes that match particular cache tag (with Valid, Read + & Write flags) will be completed (by sending WriteResp CPU) after the same + configurable time. Otherwise, the request is forwarded to Miss Status and + Handling Register(MSHR) block. + + Uncached memory reads are forwarded to MSHR block. + + Uncached memory writes are forwarded to WriteBuffer block. + + Evicted (& dirty) cache lines are forwarded to WriteBuffer block. + + CPU’s access to Data Cache is blocked if any of the following is true: + + - MSHR block is full. (The size of MSHR’s buffer is configurable.) + + - Writeback block is full. (The size of the block’s buffer is + configurable.) + + - The number of outstanding memory accesses against the same memory cache line + has reached configurable threshold value – see MSHR and Write Buffer for details. + + Data Cache in block state will reject any request from slave port (from CPU) + regardless of whether it would result in cache hit or miss. Note that + incoming messages on master port (response messages and snoop requests) + are never rejected. + + Cache hit on uncachable memory region (unpredicted behaviour according to + ARM ARM) will invalidate cache line and fetch data from memory. + + \subsection gem5_MS_TAndDBlock Tags & Data Block + + Cache lines (referred as blocks in source code) are organised into sets with + configurable associativity and size. They have the following status flags: + - Valid. It holds data. Address tag is valid + - Read. No read request will be accepted without this flag being set. + For example, cache line is valid and unreadable when it waits for write flag + to complete write access. + - Write. It may accept writes. Cache line with Write flags + identifies Unique state – no other cache memory holds the copy. + - Dirty. It needs Writeback when evicted. + + Read access will hit cache line if address tags match and Valid and Read + flags are set. Write access will hit cache line if address tags match and + Valid, Read and Write flags are set. + + \subsection gem5_MS_Queues MSHR and Write Buffer Queues + + Miss Status and Handling Register (MSHR) queue holds the list of CPU’s + outstanding memory requests that require read access to lower memory + level. They are: + - Cached Read misses. + - Cached Write misses. + - Uncached reads. + + WriteBuffer queue holds the following memory requests: + - Uncached writes. + - Writeback from evicted (& dirty) cache lines. + + \image html "gem5_MS_Fig3.PNG" "MSHR and Write Buffer Blocks" width=6cm + + Each memory request is assigned to corresponding MSHR object (READ or WRITE + on diagram above) that represents particular block (cache line) of memory + that has to be read or written in order to complete the command(s). As shown + on gigure above, cached read/writes against the same cache line have a common + MSHR object and will be completed with a single memory access. + + The size of the block (and therefore the size of read/write access to lower + memory) is: + - The size of cache line for cached access & writeback; + - As specified in CPU instruction for uncached access. + + In general, Data Cache model distinguishes between just two memory types: + - Normal Cached memory. It is always treated as write back, read and write + allocate. + - Normal uncached, Device and Strongly Ordered types are treated equally + (as uncached memory) + + \subsection gem5_MS_Ordering Memory Access Ordering + + An unique order number is assigned to each CPU read/write request(as they appear on + slave port). Order numbers of MSHR objects are copied from the first + assigned read/write. + + Memory read/writes from each of these two queues are executed in order (according + to the assigned order number). When both queues are not empty the model will + execute memory read from MSHR block unless WriteBuffer is full. It will, + however, always preserve the order of read/writes on the same + (or overlapping) memory cache line (block). + + In summary: + - Order of accesses to cached memory is not preserved unless they target + the same cache line. For example, the accesses #1, #5 & #10 will + complete simultaneously in the same tick (still in order). The access + #5 will complete before #3. + - Order of all uncached memory writes is preserved. Write#6 always + completes before Write#13. + - Order to all uncached memory reads is preserved. Read#2 always completes + before Read#8. + - The order of a read and a write uncached access is not necessarily + preserved - unless their access regions overlap. Therefore, Write#6 + always completes before Read#8 (they target the same memory block). + However, Write#13 may complete before Read#8. + + + \section gem5_MS_Bus COHERENT BUS OBJECT + + \image html "gem5_MS_Fig4.PNG" "Coherent Bus Object" width=3cm + + Coherent Bus object provides basic support for snoop protocol: + + All requests on the slave port are forwarded to the appropriate master port. Requests + for cached memory regions are also forwarded to other slave ports (as snoop + requests). + + Master port replies are forwarded to the appropriate slave port. + + Master port snoop requests are forwarded to all slave ports. + + Slave port snoop replies are forwarded to the port that was the source of the + request. (Note that the source of snoop request can be either slave or + master port.) + + The bus declares itself blocked for a configurable period of time after + any of the following events: + - A packet is sent (or failed to be sent) to a slave port. + - A reply message is sent to a master port. + - Snoop response from one slave port is sent to another slave port. + + The bus in blocked state rejects the following incoming messages: + - Slave port requests. + - Master port replies. + - Master port snoop requests. + + \section gem5_MS_SimpleMemory SIMPLE MEMORY OBJECT + + It never blocks the access on slave port. + + Memory read/write takes immediate effect. (Read or write is performed when + the request is received). + + Reply message is sent after a configurable period of time . + + \section gem5_MS_MessageFlow MESSAGE FLOW + + \subsection gem5_MS_Ordering Read Access + + The following diagram shows read access that hits Data Cache line with Valid + and Read flags: + + \image html "gem5_MS_Fig5.PNG" "Read Hit (Read flag must be set in cache line)" width=3cm + + Cache miss read access will generate the following sequence of messages: + + \image html "gem5_MS_Fig6.PNG" "Read Miss with snoop reply" width=3cm + + Note that bus object never gets response from both DCache2 and Memory object. + It sends the very same ReadReq package (message) object to memory and data + cache. When Data Cache wants to reply on snoop request it marks the message + with MEM_INHIBIT flag that tells Memory object not to process the message. + + \subsection gem5_MS_Ordering Write Access + + The following diagram shows write access that hits DCache1 cache line with + Valid & Write flags: + + \image html "gem5_MS_Fig7.PNG" "Write Hit (with Write flag set in cache line)" width=3cm + + Next figure shows write access that hits DCache1 cache line with Valid but no + Write flags – which qualifies as write miss. DCache1 issues UpgradeReq to + obtain write permission. DCache2::snoopTiming will invalidate cache line that + has been hit. Note that UpgradeResp message doesn’t carry data. + + \image html "gem5_MS_Fig8.PNG" "Write Miss – matching tag with no Write flag" width=3cm + + The next diagram shows write miss in DCache. ReadExReq invalidates cache line + in DCache2. ReadExResp carries the content of memory cache line. + + \image html "gem5_MS_Fig9.PNG" "Miss - no matching tag" width=3cm + +*/ diff --git a/src/doxygen/images/gem5_MS_Fig1.PNG b/src/doxygen/images/gem5_MS_Fig1.PNG new file mode 100755 index 0000000000000000000000000000000000000000..ed0f11fb3ea5773847db7e68aa4851036ebadaac GIT binary patch literal 4004 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 Zutg2gC#+d*`sf=Cn48!bHy}Ol{tMChepmni literal 0 HcmV?d00001 diff --git a/src/doxygen/images/gem5_MS_Fig2.PNG b/src/doxygen/images/gem5_MS_Fig2.PNG new file mode 100755 index 0000000000000000000000000000000000000000..a6dac40c331c3686ba4e5769b470f544ed1801bb GIT binary patch literal 7281 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 literal 0 HcmV?d00001 diff --git a/src/doxygen/images/gem5_MS_Fig3.PNG b/src/doxygen/images/gem5_MS_Fig3.PNG new file mode 100755 index 0000000000000000000000000000000000000000..68c72fc74f65008f4c272a7050e272245b98d013 GIT binary patch literal 30751 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 HF!28YtazSN literal 0 HcmV?d00001 diff --git a/src/doxygen/images/gem5_MS_Fig4.PNG b/src/doxygen/images/gem5_MS_Fig4.PNG new file mode 100755 index 0000000000000000000000000000000000000000..2e535d03f8d02fc7a5ca53f95feb1abefa0b7898 GIT binary patch literal 5351 zcmcgwXH-*Nvkp~6N+1YIM`=nEkVJ^mNe~32E0JP=&=Q(}(xi6~kWMJlL201`A|N6G zl->?U!1z#8-2ecf z5G1d==qSln=|15m`9bl*0ImwC?B`x1JJfb6Iw}AFF8<2da~iVGZ>?#d0|5940|0@c z0Kf?u3S0#MJnsMi>sA1OLOKAz;hObP|2_b~X8TZG#pspArg>E=n-Xa0#n%+gMZHS( z8;P2N@t-F+ly7(kvfTgTIL@D#E`KR%k(+^)VCh)`Ei-z1k>sK9ZMiZqJ4Z{1;OSy2 zRGV}$yRfhzdj_E3ccr8h1pj9-pu0+CPR8yeCn!_U0fJrt14;dD*INJ-Hego(T~-)C zX6mVCLGBjI6PBsX&CScud}B`)!>ydFSO5S5ZX?E;5MeT;4V>pGQwcXm4O5U-mJCri zBbCmc+YNyp6L=hD7*68HYZi&fNY#AL?_(`tz^R}U&va}oY^pS{Lb~2q(#8F00`^+k z2fO+2S0H0MT13JzXL z9w3Sb(cSx}PkYhrJJ+2yiX%Szyo<`!ikgm;yxB$J$iT5hixy^|*ev9DC3owgp8wCT z)jpqFGgrh#6DQuh{q>$?R?tP=`$dA#Nb1BYulC#0m`qC_6{E;B>Ilpo>Mpp66|j`lG=SkY*M?2|PXe zXk#j2N(B3#yo2NO3w1K?unda4%a1bzBAt?XgK@zDl+o(WXwVewC^z)!jdyyKAv#H` zz*6EZHT2sjQGw3$Ye{$3|H}s=3im)691~7Ms3=1VmZ`qJxblwN6Q@k~p+NA6d?OBG z#K}x-B?@(^fwu+eCg{VYU5E7n$jt3$nS@~<1RPj$+fr!dM6*M6M zGcH9;74slRY_R)Ra7*+&#MCPjsB={`LG=>u|B{+WnrZP(>w%tuBR^vyE;}n`Pv>FP z!`b37PWLb%iW9`sND1v#e!O@!{wEu<=jww<367e+lQ5Ed7!$H53|;$L0RJp6gyb$T zRc;w6VMly04S9N#MP>P(tQ_TI3GM{A4@6_=$K zc?I>HF-7&09k7K0bTKi!E*0BVarFILMMd3sAj!yG&CE&TvPi67P} zH7jJ4=HEaeX>{dq_LINw@oyo*yMVQq`!9K0U!UhUF`a)vfATwKt;q}j63$7l)E%B> zPc{m}{%%~JTJjA7*86v;H{nx*{3(1GH8o@Z%UnLkhugE^jjtvjw}qNNu0o$1)_5sB zEX2}FryL!U2eBS|Q8c^OO&*IwYfhu~AA`ygF(c}5bZK5Sxk-GDfXHNgP2L+1%jxjg zH6d~bpSAitmD@^_;oSg8QgsRIn-EKoTH(M?|M;Po%Ub_mtiyv^&*5$xG`N^ z$+zbL)c2By#;9 zcv&(2jj`?y-^)(Sb)edCb*m9#|GRaKiI!4N=>>Qp>yt(A^4OAAMfjBksr85!o1F9@ zxumv5_c6uIJ%^9Oeely5&M!Z*dF{WR%QQTel31V;w)bP2;m=4Hsmmu-bqE_nK4HrG zn*T`)9SfokmVQQj6$U&&)6YrrR_DK+ID zYuZX*YMqw|idy0x{#T;7xsnqtNS{N0BC#2Ej+bsSskj-==*Yvgd;6W{+YM&fV+I!! zgz8Hh?;U$Ci%8Ty4o|wBJypK6YQ)xC9M#I=-VN zJNlXo>m4wlw^y3>MiJLl*5tVaKf)MX5_a4@B&8s=;ateR3ysKDt*Gdq3r_Mn`zXpCuXA zM}u_SSrg>j0M<+eYwD($&GnmPxK@+s^%~Rw?W;x4IP6PFzi)xkEA^QVxolTH z(R|6XF~S>|*YTWpeUa5uG*V$lZDKV^`)ky_AH;fnk+epUcdkkwMBX))6o%?5w?QUU z--{4GQ&aS}WmKGSNz&3$M+*ROS3`Jt4#NS&aRgC%7D=a!?sy09Y9R;q+1+{@u2BLJ z(yK#mF62Oq2KTN6In#u}$77m{9B^Uj@{9TZDxt7<9C}*bl3v351n{d?16Nc1({d}L;a(fl{6?iQ zn(@vNLBDRlfsEZ)nzob!4`^Y#&?2Z6_Bn#**A-J;MLD_}as0;MC)pcBb}_K2F|VGO zHm?hdg5k`_c=6tkA4UuMF~$palbOaJ^HY+8?V@#&Ai~7!wT#*EEIzK(%qg;*8k)$L z>$5!|>U=6p+CCi~Ro8`f^$Mnbe0Db{xBPZ$)Ep1zY_@8pCd3}YyVy?;m64Q#gph6& zEF>Gw{h;|3>DrRLvYPVEYORIPm>hp2O$@&8Gce+b*HQeT7UhA!C@c1E_*Z zf{T9K3y`pPK66HBYkP&0(CEW%JAMOQ*S5}aG(K)}Yjor=f8?;65gEh5bvg<;OS{P~ zkj)%Xgh$KBeCn1V;G|x z+v{XT`606LEIgeD+dPsYFkb(V;6&yY+OjiyF3$Js+N8mr)_^~}fM<4+{P@v8P%xR% ziAM9YWK#RabFSSwl0qi_i_^n+GId=X{R*i(yEupb_ti(Vs~8y#j)%Z^jmFXr3ecmm z203(A>g4X#)~LoF01=L*Q1P2% zsd~3v&+8*d2G%)2-g{lYR{}U};UzpXmIhB{@DU`YpkGf!psxa+bwL$0mbfoLiR=+r z2RUh%Bk=d7=Zebde3C0!|0wt!_xZY=Nv2;grGtk|m$#$!EnlYfyn2(pzc1~};N`XF z|0C`=<5NO|M1fbMNOCu;4PFhHl@58E!FT!dYt!g!cV!*g&$@p{9nQb{8syf&)ccz) z^C0MQdFwC6*EzhW!w{&0v(sj@jLaMPuV}Z%3=`09x@eVJ(3dn61@DN(?HKf9xAyeoWw%XP3mzP$_p;vv zqZ5dUw8)tDzPe1u_r|y=A*@;Cw|T>=t#Y;Zq~~rkkK~v;72HLtbr+oAE^!|zn9C=? zfs4{XqV5z9Cj0)Htx5{j z<(=ACfb_8M;|SmMODtyG%Xzwz`VqmUR7%NliiFUt$Pt~oKC)WBwR++KI;3XXvfHO- zJ4{X=q#JbHtjmwzt)7_z5%Cw(wpl~YO zCbf92eAMRg?#hhI((KF(YKwbo_XYsB)B*W&8o|uhjBILcjo%3u-scD4#y~L+f-{TZ zbtdLn2h4QHsraWC?9ODd-4pL~z{`*S350v_zvUV>qYl3c4kF!V=)NPEGo3Jgn{l}R zxe6Le0quDvLKgeA`~x%0#8jU7Ri?jEJ%+X#9}YxdSfm&777y0PKKOJ+ByOs|t0tAg zq92&>Y@TSm8yfytO-ju@!R>ZZ>{c*)`DUY8$C+ zmeA}c#Y=SuPolxnY<3u*UbIX|Y4l)K=^ePO|LSNoOf-1H%XZa9%6yFRX3b1?9g4V& z-}hR-Wjm2DeRWA#nq!oc$X;|}=B#gGOGt=huUjd%Y)-b__%JBKoJxAa&gEV*Tz1gB zh}p$_F@F`-fiK(@r6kI|4+BHtv)(9Kdm86`?5&Nh;8#hpSXeW~f`c`C$atm%eo!PB z3*Q<*cURaoI^LV{Yfke0wG2csc+ot*lC1Ref;V^KsIsS14$CL!l;CI&bGqULUdGgt z#>deHeFfIDC9KlakxqtzU^l9I#D4lj=e*PNxnzED%ifEFJ&%BK=+>ub`gn=JGP64K zQaKc93Wd|LrrUxklo>Lv47TDX9@<7?M63$DrALX5B1bD`Q@1{d^L^oKi{jB7fP2!a zBw~o0ZLdu$Alb|p`1ofrUccM$cIU?1oo4sKfm4%g1%3FruyXQ59U{ZbIP9!)9K4&E z)+K-G&- z9YTUYAixW|`*z>^{q~>SoVjQ2opWdAoA1ndWvH)BLB>o5001a-bu^6u0Q^$i|K~t_ z+^-PwS2FH`=Vz>~0jM2k-Np?FUDO||0{{)Fx3Km^xG|@rj`3pvAcP+Ph>8OM&T*os zEdU@u901s{0|4%20|0k?^4g7*0035IT}^e9Qs}XBboVuSwLdX+gNL1(Dv9J9!5ZF?+9|ssM2zDoDp*a4^B>~&(;n^Rry%0j z|D14hL!5jk`OZJ4|8tsrEQtt0HRQN_U6A~l&8g){$|th%e6>B6>io2vayi0pDnheg zS6v0cW)ByKjb<7w0mfmFFcR*3X+M_x2Y@p*8*Li!GlWcjHisZac?ptsk4* z&WWqMZ^ji8ADO}vcWoip2PX>?x2)k%wEEHcyKM2+&SugC@M`i1BupM6{?Lj!G(1+Q z3p*vxnNfQfwYS)=05g~kR?l=L+SncaY@bstUKVf1X9D|ZH{(O8jqZ418uOAotV+;L zaG+}XP#v=%ICP8*Y)37Z=#!j}Y%H|~VsH&otrOq$LNp6@W` zGBev1+WMN2^h!?DA*S`UwC1}SsjQt22ukK@8{=dpFa951&T$Hkg{`4*1*_|icSx}ly*M=`OQ9q(4oT}Q&?v+>GJ<_9}*%|@A-&d%7(qi+m zix<-U!sxM_g^Q?JFc+d&^p14XU|u9GwI1l&x9wXB_usdk#U-B^>-520S*k3axq@I) z#wS!?i5_D%$X7?2@M9*wwpo-5P**KTM##u^iBt*S8M2&h-{0Bev!7&16so87?@P}O zR_YneOqeciiSS|wQcnN0G&k`>lO8sq`3g_(lEuJcH?g-T0ydkrtXBH@6BC=rjLWG( zKwFEm*Al&aj!XfIOZj8WwrlTiy>D_;oh4b`C7GQ9^FbHn0o3bc<<(}t=#tDlKa^s( zERLI^D1J6PGu!=H;iFmm%$wCT6CJ?M&e!yHxZQz+VyJlAXhOy4FBz)@H@S2tKfy&? zRKua(5T>+`?00of$5rynLDsvAa+Hw|sMjiPzo{k>ApeL_V}7#`iz>@yviF;n3*b-c z>|`@McPJ>NTm$2c{mX9+@IDzDCfH!3v3U>#>am%vJwgR^>68D2ZL76fc`hIxGt9%7 z{*u4TOXAy7egR=6a}lCpniEm-dHh2*de8-gQf8ObX8_zvuYvr*`=Wzq5(ohsn_SdtxW1%|(Ao1-R0?r% zk9xwmVZhp^KV>1d5@Jw;|1izO!`mRh(Cn#kotC^TJZPc>E0{wJsr~qC=9_sEU!MY=CqP_hMN`U0VF}rbSam~?v z#{_C)8)K>Jp)zjNq;FGyKR|zcBRL`giFk^qu;t8oK>Dq+S)>r_zudTuVD5ftR-^c) z_s$*DtAX#CdGlGSRxa%v`+)0U47-MJ2<3*Cd20bD>fm3= z^7-%p+RGN$DLHbgbyrGJ$wHp3g9On*xgh?&TvhLsCT`mNLqqA~rYWYrtmi}z?Kdd8Clf7NUdqpqw_QyM=JkI&B_8bN^P| z2{u>e?*yXXos!H+d3QW&wsqC=zDftT^_4!w{!Xz`mZ*`9@C!e&%dmA2cbPgzWHW_U4tMh){uowFLbp4Pb<5T7`W$hThn2UJJKrXIWjM}EJeacb@& z_xe=Z&>G4TDp@b^6c?eLwHxSTwjw1#`1mj+=qSUH(f6e&CadmI?*Vu+pL}olb|Lo5 z9f(yW^gcuYQAb+1*K-w1Lbb*Oe+w1f{TZBWmJg*d?VY1b3Xh$oGo}lOiW;hn85IhZ zW%U%hwnIWM4mz^L!0guL^evMF-oHCB=eu=sWa)d4m5|d0s$IcHMY@y5TUu1075Xri zc%733cFy=uh7tWbcIJ(SDpEaZ?HZV{2A&6uVas!de#SsDgxniK=LfeCQUs4c1!8tO ze#UW=@!F}fG4wGS814Rv7Nx>4=$x)tfmmP(Ft(0`#a*9Fy%3v_-c#*b80H*xbH{FK z;08NAtUhrOm(uuJz26IP829v?`;o>4u5+j0-2zZDgJtl!Z>JGrVjl} z=NP5OZ69W3wd(m@Vb$l_K46&dPxT`nNcYqW!Y`xr3m&3eBlD>N{Q_kvs|aTmp4?IWC)w&DfD;~TBIaZfWv z=$RU;L<4jZcp!yh3ouwd8RrSrZIhW%?X(s>`F&3Dt}88;RS*)HRvZM<0!5OPvGbzl zzq%OYD=CzV3p$ffrD+&~x(Qdq#5fwd4WyN%kG(BzuWKS@_X$TX`_~!X)hO|ne2XJ< zi$e*^H>3ltl&6P|7+zo2U71qzax=e-y73C1k$BFFpi9iBZjLFroh_;gIvxTw%-K|* z?l2Pg^;UEY$PvrqY3gptRsSHYdv=f3L67xub6$FDC1hoP;zi%(njx^KRWj;Bn8 z-NXmn>d+5z|IZuY;Xd3_laVA^q(Tuc&& zQYdove}6%9=Acd8OAO(Vczthr?Ce1Rx5OA=w6Zy7bH_XQEnPp;%tPh~%B<5BjoHsC zx~tg}_0*p&jqg*}N@|3NSYJ|1sNc`Lb*n&z;}+Om1qgP!%0{L16@;J6XMrOso>VWv zd+2s1_PML*G$1lopn_28G>v*Z1RM?*zB2T1QrW3eKi*$#K~lFqRJQoF*XL($ao|fa zBY}v-9u307&|_lVSk&2(BN3fNzkYR#p$ZtOOG6Bnlby+-@}T(VwuS2>3?4&}CHT*M&Q2Qspp(!BY)CNK+@kxK?NOm9o$W%yqY zB=BvsNyWqYPG zUY&?Xm`_zlfhegXlk5n2r%#NKO#XLA$cLA5PINH%O6PzTE-4(rNRfQ{n7e|i4kq7X z-VY`6M-}6>#;Ocu+Uax9^R&O%kA0-b)o;aN<8?=xhRjj2FxLzJ5wj^M^tt4N{d#38 zZ!sgP0;QMuQ_1t4Y6ZO>0kSV@R}DGsRbF`(8X}RMUz$vSh+ijLFHkx(123F|OlbuP zpBhJuGD*;B!{N)e#1DH6*e)+F_GF%K4W1K*EII(|J~gx%Rz}Yx&irYA>L(5z-gyY* zi~4gwm9=|*(v-fDBXngMuIy$1ot#f|on=AxZ-s6NgDvwTOz(klz!Qv=l9qpO*b#!X(NQdDzWkdVbV zqO#6Y$fG~uMbK!Py}Koc7D2TRnxoWlDV*GL>9^YJ%Xp-;)B+tk%roP1CZq zb{FH?;6naSyQ_{u!i88zY^Sy$4rr+eIj z^I7|d*ztjr5|jRdQ919b0A^JBbLkblw1z6|ZEdCP*eA}U3j%wqjysC~%?#O6s@z}2 zlu}pj9Zsz#tW=FGeN-fH8@isq{Of;T+$Ub%ev`O28B|7$%<#O=dx!Mxd76R{$EiiE zK9s}1RJQio-oXyu{wn}Qr%w^_Wot#h!^+`R9jjJX2%I}9$B)rGDaZ8@Kf5s3f49IH z!Vz@v?sS}LAOG})OxMI#EB@?-vl=`_+~qc!q<{Fw@elgq(vmTolVH%jw>pi+Y^iFy zPPX>SwTJvCv*&%3Mf-5I^X*Hx}A{8wkHpN?ZVd7CS^%^WXfd})FuYWF1@}3QyrKHg>WbG9j?yu zJbR~6&xR1rVsTdf1AgNJ)tnU@+xhDFW=kJ5eB}}VOSDgOOqALR2_CH1D2hj=9--Mk zr*XegCf~E=7bMIzRzY_4hPlDR-OeR;v$7V$O`XZB^)W61PL3V3F;-0;%?-51SRpE$ zirMWvWjb84nOx1sMz>#TU}k89rVZY#3@bxO$D0oR;`sLxR;n-QV=2r*WB*Bg$RNAV?UGs?gMXH(kgCV7Z;K zbI?GpX7l6>J)ycD>OW(DAtxtiiscItIf^p8qV=A9sP|gjwJqV5YzZ|zOn_D&zB^NlB2!U_?{Q+T9sjKxSN7#c~`XcwUm13&#|@t zJ!NS5I0D66H$YvR$dgp|sYmYw$CZdY2_!Ty6nVB4I=E6jTJvax@#XX? zmr9Nqj%86gchEt=+)Vo00VL2OtH97RuLQfY3G%m80+bU+@n5}**CTj7AcY%~65jZc ztN{_HMhc_|^!N0C(~LPH#Ja-i3g~LZ`b4wfcMT+2oA{j{X8K)p!jW=UFJqjp#Bzm- zv`E?MC6iekiYnfzr7sQ@wg^Hipo{sxsogHnD)CR-485%)JJq zh;?W?3q8>Mgo$}jnDkP)D`_Lhma-mXsuw^518Wu){v^oW__=;%e_Xb!!<{R zP#kaaU>WaPOiR+G#YIqq#ads&iK|88$KmN%A1N`~xxclA=`|xzTEi7+| zo=$gQ@8DI0bk@Y%K7K*?QvzW!v>0|&8ehd9$V?rv9dF9ZqVy@yRw)>17Yi6(m?FSM z)n}f$_c-oc3*rzhr@FV<`{X5KcsJDg$67?NQkMgV*7hZ5gj%ThQYu61(vEJ}6ZF|< zZ-ac4MEoLq=V?*?Ht@Y%tG-G#6M4j6&*JiD$b*xjC!UiL35KZAIv@Aw>*AR++o`UX zXf3mQU6y|L6meyCyA#}RXAJZ$!!k$h2^9MegsDr6CFY6ho5j>+&SIt6`)3iiAPx#>%11X4E>Ucy2)9%6#01()~;$eIFDTh zpZqaNE*+AVL=~{|Ryb;=ywEP|Y2|gFe#DPCosaVLdD@Kvoz_mb5Ps@H6#{~NcKgHT zu#6i@Rn>3Jp&G&Z^1813s=cG*IngUfE*fxvaD;J)4X~W!<{{@6>gF%iKm`GeI2ihw@9|j)SFjDQlJAHiFFjuG%{D)nmFgdC zYw6R1r6?KdVgVb`bAQ&sQ7M1C)#Fk6u-eMj)8 zPG3fZArq96)#CqIA_W3RUr$S2QdKoDHQc`KO9BS@SY$s{!i9o^Q#Sjx-t@$U8y}>* zz?&-V(Q9$a`j&2P9j;($L>1{p9rRp?I~2`O@UVO!;{`Ji|NA{8D|{@LuId#*hV2nu zM6Hktn)TLTZdScdc8FoyyFN2P-Blq+S z4UdgcbOfOqFGGP+^Cg3#uIj5*RaGtCaMUbVS|EO95>mHv{r49*^VUH1_1-+L)dDm% ze%-J_pk6HM8=vS?QDq-=*0Wn!vbu@e4{+SFki+oD_dn6d6c)73d`Dj^$uG0Vd0>{Y zg#*kb%Zs><1Bk_!GSnE`FS)}>BP-WPuUNCeyBg4y}Xv&*&tTJ*8dp1wpz8E=s)H}r^4ENSzE4BR(5x?#9>Id;9jPcMqMJ_6T-mfS@8@Eh{%*BG zS1@XwKS1@NXGKNDUkp2puZ_c;3=cXvT}yz73E~vqxjj7NxQ6*0DKZ>kcZ3ao6N4CF zJsHK|1PcYq?1S&Va83FQ{YE;A;7LHsJeI77cnvR6pQ{)Z$ryWC3FcnL+!SwDA)uzOK z;JOKRuZH*oPe}2XW>zL?QD$a3=R?j6eJGorqKaL~Hz9V;2aIMS_j0LkHhl$mu|F4+ zTTIVv6`<-mr-Mh#gLN%`*^3mW)nR;w>!#vRY*a=c~V!`X z1Nrbrvk$h6UhGbCF^~VQB>f9nSDjl+ugv3+uc%n!-dxwfP@3*mB&2HdFJZ*aTG=&kKGiDjsX$}tdZr^_2MxfC9Ua0exum`(5 zU(8(>kar`)SSBLg3DVL(HCdP5I2`V!(s|kT_3_}lc+`iV@*0>&(NgXi|Hhf8#!w=F zSSy(`cv)BI?Z#x2yKC9)YLXGpir4wtY@xp*BV5LPQ_I}?DQtwI3qA&>P_&*C!BNDy z(`zX%u8z5GiyJ3x7$iAm)C;L4iXsb8cl7jgdO--dKY7dv$JLx|SFFVa2^UQwq%BjR z?v;Ma+bfX2iXQ8gfsE<_$|3AteEsy^_`V)`^}VB?b*Cb#1>)pyFZfG> zK?QD2Jdg=``EA5kVoJyz7>6@j`^_JcO?$M|Lc+ezZ)|E{pn6Vl{$j)WS=*syYGBel zNpUBV^~o)JITd4-=I^*3fk*D|%|DK8HUhu=t*>JZRi?>wKm~$64?PtW(!~O`{M>=f zyNC_Wi}uf{hAADp?Y) zEO5FZGFV2}Qapdu8SMM@Lk=mk+(yoDq)wQlFsycHl7}3M!*g6m!Y7^W03oK$os$9< zjk2Po9r>F%QIa(wf;+alaS6|y_Qvk8dCo0_cNuo$ZKrt@yJ2m9j_XoC$0$8a6|krL zni>Z0uNoXG(PA95Ts9G$q4toghtpMV)<3|lWc=nK8MZ3m6*a#??0y%PvM=g0sfC4w zHyrw`;=C^f_Rb8t!Otn+66eKFy44BNFKopJ4C>2rk$aw-Hh)j)h^RJ)}2cTF+!`q zWAsNC7Zq4m4wt@^VD}BCGPkTp!+~yvsS|{=6?XGsY)pT literal 0 HcmV?d00001 diff --git a/src/doxygen/images/gem5_MS_Fig6.PNG b/src/doxygen/images/gem5_MS_Fig6.PNG new file mode 100755 index 0000000000000000000000000000000000000000..05c16fb0c459b042030c908578d77b4124cfe219 GIT binary patch literal 16516 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 literal 0 HcmV?d00001 diff --git a/src/doxygen/images/gem5_MS_Fig8.PNG b/src/doxygen/images/gem5_MS_Fig8.PNG new file mode 100755 index 0000000000000000000000000000000000000000..ec03512590bbeefbe1ce4318cd0ba5ba858344a7 GIT binary patch literal 17209 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 z PSCe1SPWrpo#-D_q0DXRdcBob!jk+m%qCJtpBn?%Jby$B0;_}70t>JU|S=?n}p z5#YE(IDq<-?f+4lG^_;K*qtA=D4o|u2EUZaEM1m}RSb6CwoT@{gXrq_^h~XO6Dy?# zYiI6%C4{@GzLwE*4$;lm{|^WN%9y&K!=+MP(E6Rb>Llo$TYsA+INBji1w;$ zFw{iy9L2l_z(A3N4`?oC@B*}jSYjVV9`VATlisa~$~R76KIvt`oK@_C!@ROw$@ky; zQ-J}5sh8(}_hkqEUbTKYWu`X=ehGlLK>sZXqk?4v@8i4+`b3p^4E|yNMID1)H;R}J zbD(0CsL>7n!%c`Ysq4O3#cIp{0_QFn2rmO4i@$%vQNazDAfq=aoE{J?@2wCr(>q@T zP}V1c5}ncu%Kt~JjVVB@saO+$LZkD+apyaJN)x5-f|l2BKju(j&}*WOCD8GyMA5XG zLKMKQT18t6wN$XxeQ{EGRp*a$O6$tYLdwX z23oL&92v&w=gac|J(dgIfuhImmnVDaLY8IwUu{Kop4?j~-IM{8PvYX8!1Pi$m<(Xg z_dV$o*CW|>d;lBB1oXad>16voJRORlUQ;ogkN*NC1R742hT#{0y#0avU7$^!_2%^o z5(2MB^xm7tA1{7_rICpXU_M=k=I2fTV0g?s3i`j@1?uPwbN0xADwv4}!5aTXm*Zal zdy(A#*oOGPHgv-(0+@0mwmWpG{}Vu$1uJ1tZ46MlSEO-=E`grz+GGG${Vf3kV;FrG zS!+B3pk+i11TKZv2aXFb8KAED|5?cg6!f_5ObQeQw7Gp!08(tH%jS)w|9tXY1Okq? zQ!Q?Uay)@`2e$@ap8Wm&oi}6Ya*~alK$?oG5S)_Ok;xu*s@)(_AV0Bf(0K($AzwZ1 zU}p#6Be4=e>~7M49H+K%GBGT}4~D>VZ}G{{h{f Bm8Jjy literal 0 HcmV?d00001 diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index 9bdbd3456..3c34c10f7 100644 --- a/src/mem/cache/cache.hh +++ b/src/mem/cache/cache.hh @@ -64,7 +64,7 @@ class BasePrefetcher; /** * A template-policy based cache. The behavior of the cache can be altered by * supplying different template policies. TagStore handles all tag and data - * storage @sa TagStore. + * storage @sa TagStore, \ref gem5MemorySystem "gem5 Memory System" */ template class Cache : public BaseCache diff --git a/src/mem/cache/mshr.hh b/src/mem/cache/mshr.hh index 7920ad717..87e561ac7 100644 --- a/src/mem/cache/mshr.hh +++ b/src/mem/cache/mshr.hh @@ -47,6 +47,7 @@ class MSHRQueue; /** * Miss Status and handling Register. This class keeps all the information * needed to handle a cache miss including a list of target requests. + * @sa \ref gem5MemorySystem "gem5 Memory System" */ class MSHR : public Packet::SenderState, public Printable { diff --git a/src/mem/cache/tags/lru.hh b/src/mem/cache/tags/lru.hh index bb1420f71..7938fcc3c 100644 --- a/src/mem/cache/tags/lru.hh +++ b/src/mem/cache/tags/lru.hh @@ -50,6 +50,7 @@ class CacheSet; /** * A LRU cache tag store. + * @sa \ref gem5MemorySystem "gem5 Memory System" */ class LRU : public BaseTags { diff --git a/src/mem/coherent_bus.hh b/src/mem/coherent_bus.hh index a28b388d5..8941d0271 100644 --- a/src/mem/coherent_bus.hh +++ b/src/mem/coherent_bus.hh @@ -63,6 +63,7 @@ * The coherent bus can be used as a template for modelling QPI, * HyperTransport, ACE and coherent OCP buses, and is typically used * for the L1-to-L2 buses and as the main system interconnect. + * @sa \ref gem5MemorySystem "gem5 Memory System" */ class CoherentBus : public BaseBus { diff --git a/src/mem/simple_mem.hh b/src/mem/simple_mem.hh index 4f7af864b..f201709c2 100644 --- a/src/mem/simple_mem.hh +++ b/src/mem/simple_mem.hh @@ -58,6 +58,7 @@ * an configurable throughput and latency, potentially with a variance * added to the latter. It uses a QueueSlavePort to avoid dealing with * the flow control of sending responses. + * @sa \ref gem5MemorySystem "gem5 Memory System" */ class SimpleMemory : public AbstractMemory { -- 2.30.2