Article View: comp.arch
Article #2181Re: How Caches Work
From: Roy Smith
Date: Mon, 11 Sep 1989 15:20
Date: Mon, 11 Sep 1989 15:20
31 lines
1782 bytes
1782 bytes
> SUM = 0.0
> DO 10 I = 1, 1000000
> SUM = SUM + VEC(I)
> 10 CONTINUE
>
> A data cache is *no use at all* for this problem. You will get a
> cache miss on every data access.
Well, not quite. True, you're going to miss on all the VEC(I)
references, but you should hit on all the I and SUM references. Rewrite
the loop as follows (and no, I don't care if I got the test-at-the-top or
test-at-the-bottom backwards)
10 IF (I .GT. 1000000) GOTO 20 # fetch I
I = I + 1 # fetch I, store I
SUM = SUM + VEC(I) # fetch I, fetch SUM, store SUM
GOTO 10
20 CONTINUE
and you can count 4 data fetches (as pseudo-commented above), all of which
should be cache hits. This far outnumbers the 1 cache miss per loop due to
the main data array accesses. Some FORTRAN compilers have even been known
to put constants in memory and refer to them indirectly; if that is true
here, you get another two cache hits for the 1 and the 1000000. You could
argue, of course, that I and SUM might be in registers, but that's a whole
other argument.
--
Roy Smith, Public Health Research Institute
455 First Avenue, New York, NY 10016
{att,philabs,cmcl2,rutgers,hombre}!phri!roy -or- roy@alanine.phri.nyu.edu
"The connector is the network"
Technical Details
Message-ID:
<3985@phri.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!brutus.cs.uiuc.edu!apple!sun-barr!rutgers!phri!royReferences:
<21936@cup.portal.com> <1082@cernvax.UUCP> <16306@watdragon.waterloo.edu> <RANG.89Sep10184900@derby.cs.wisc.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!brutus.cs.uiuc.edu!apple!sun-barr!rutgers!phri!roy From: roy@phri.UUCP (Roy Smith) Newsgroups: comp.arch Subject: Re: How Caches Work Message-ID: <3985@phri.UUCP> Date: 11 Sep 89 15:20:11 GMT References: <21936@cup.portal.com> <1082@cernvax.UUCP> <16306@watdragon.waterloo.edu> <RANG.89Sep10184900@derby.cs.wisc.edu> Reply-To: roy@phri.UUCP (Roy Smith) Organization: Public Health Research Inst. (NY, NY) Lines: 31