campbell@sauron.Columbia.NCR.COM (Mark Campbell) (06/06/90)
I'm looking for information on the write-allocate policies (i.e., whether to write-allocate or not) on write-back caches. I'm in the middle of a heated debate concerning whether it is better to ***not*** write-allocate, specifically in a second-level write-back cache that we're designing. I simply don't have time to do the modeling/simulation that would prove or disprove this (in addition to not having what I consider to be adequate traces) and am looking for references and/or examples in support of either mechanism. I don't believe that these examples have to be from second-level caches -- first- level cache examples would be good also. One specific question that has come up during this is whether the RS/6000 supports write-allocate -- if I could get an answer to this it would at least start me on my way. Thanks. -- Mark Campbell mark.campbell@ncrcae.Columbia.NCR.COM
davec@nucleus.amd.com (Dave Christie) (06/07/90)
In article <2175@sauron.Columbia.NCR.COM> campbell@sauron.UUCP (Mark Campbell) writes: >I'm looking for information on the write-allocate policies >(i.e., whether to write-allocate or not) on write-back caches. >I'm in the middle of a heated debate concerning whether it is >better to ***not*** write-allocate, specifically in a >second-level write-back cache that we're designing. Wellllll, it depends. Which is better is probably fairly application dependent, and you didn't give any clues as to the intended environment (a high-powered cash register, perhaps? :-) :-) Sorry, engineers from NCR probably may be rather tired of such jokes...). If it's general-purpose, more significant factors might be design complexity/cost, rather than performance, since whatever you choose will win on some applications and loose on others, but probably not by a whole lot. I personally would pay more attention to complexity/ cost, unless I had data that I felt was representative of my target environment and showed a clear win. Good luck finding such data from an outside source! Some things to consider: If your memory system wouldn't otherwise have to handle single-word writes, write allocate may keep it somewhat simpler, handling only cache line transfers. A particular coherency scheme (if needed) may influence the decision. Is the cache locked up while refill occurs? If so, it may be best not to refill until you definitely need the data, to avoid impacting subseqent accesses unnecessarily. This is more important for a first level cache, but can be significant for large line sizes usually used for second-level caches. It also depends on the relative frequencies of loads and stores. Just my opinions..... As I said, good luck finding outside _data_ , rather than opinions, that gives you a warm feeling. >One specific question that has come up during this is whether >the RS/6000 supports write-allocate -- if I could get an answer >to this it would at least start me on my way. Don't know for sure, but since refill doesn't delay subsequent accesses, I would guess they might do write allocate. I'm sure someone else knows for sure. -------------------------- Dave Christie Remember, only your hairdresser knows for sure....