methods and apparatus for improving locality of reference through
TRANSCRIPT
(12) United States Patent Stoutamire et al.
US006594678B1
(10) Patent N0.: (45) Date of Patent:
US 6,594,678 B1 Jul. 15, 2003
(54) METHODS AND APPARATUS FOR IMPROVING LOCALITY OF REFERENCE THROUGH MEMORY MANAGEMENT
(75) Inventors: David P. Stoutamire, San Juan Bautista, CA (US); Ste?'en Grarup, Los Altos, CA (US)
(73) Assignee: Sun Microsystems, Inc., Santa Clara, CA (US)
( * ) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 279 days.
(21) Appl. No.: 09/618,981
(22) Filed: Jul. 19, 2000
Related US. Application Data (60) Provisional application No. 60/174,744, ?led on Jan. 5,
2000.
(51) Int. Cl.7 .............................................. .. G06F 17/30
(52) US. Cl. .......................... .. 707/206; 707/7; 707/200
(58) Field of Search .......................... .. 707/102, 2, 103, 707/101, 100, 206, 205, 7, 200
(56) References Cited
U.S. PATENT DOCUMENTS
6,209,066 B1 * 3/2001 HolZle et al. ............. .. 711/153
6,321,240 B1 * 11/2001 Chilimbi et al. .. 707/102 6,330,556 B1 * 12/2001 Chilimbi et al. ............. .. 707/2
OTHER PUBLICATIONS
Chilimbi, TM, et al.: “Cache—Conscious Structure De?ni tion”, ACM SIGPLAN Notices, US, Association For Com puting Machinery, NeW York, vol. 34, No. 5, May 1999, pp13—24, XP000832667, ISSN: 0362—1340. .
Chilimbi, TM, et al.: “Using Generational Garbage Collec tion To Implement Cache—Conscious Data Placement”, ISMM ’98. International Symposium On Memory Manage ment, Vancouver, BC, Canada, vol. 34, No. 3, Oct. 17—19, 1998, pp. 37—48, XP000993595, SIGPLAN Notices, Mar. 1999, ACM, USA ISSN: 0362—1340.
Chilimbi, TM, et al.: “Cache—Conscious Structure Layout”, ACM SIGPLAN Notices, US, Association for Computing Machinery, NeW York, vol. 34, No. 5, May 1999, pp. 1—12, XP000832666, ISSN: 0362—1340.
Calder, B., et al.: “Cache—Conscious Data Placement”, ACM SIGPLAN Notices, US, Association for Computing Machin ery, NeW York, vol. 33, No. 11, Nov. 1, 1998, pp. 139—149, XP000787304, ISSN: 0362—1340.
* cited by examiner
Primary Examiner—Sanjiv Shah (74) Attorney, Agent, or Firm—Beyer Weaver & Thomas, LLP
(57) ABSTRACT
Methods and apparatus for creating a mechanism for rear ranging a plurality of objects in memory are disclosed. A frequency of accesses in memory of one or more ?elds associated With the plurality of objects With respect to one another during execution of a computer application are determined. A mechanism for rearranging the plurality of objects in the memory in accordance With the determined frequency of accesses in memory of data referenced by the one or more ?elds associated With the plurality of objects With respect to one another is then generated.
26 Claims, 19 Drawing Sheets
ANALYZE CONTROL FLOW OF A COMPUTER APPLICATION TO INSERT CODE IN THE
1116 COMPUTER APPLICATION THAT ENABLES COUNTS OF EACH PATH TAKEN AT RUNTIME
TO BE COMPUTED
COMPILE TIME I
FOR EACH PATH, COMPUTE NUMBER OF DEPENDENT REFERENCES OF EACH FIELD 1104 (WITH RESPECT TO OTHER FIELDS WITHIN THE SAME CLASS) TO PRODUCE A FIRST
TABLE FOR EACH CLASS (SEE FIG. 12)
I COMPUTE THE COUNTS OF EACH PATH TAKEN AT RUNTIME USING THE INSERTED coDE TO 1105 PRODUCE A SECOND TABLE FOR EACH CLASS N
(SEE FIG. 13)
I “15 COMBINE THE FIRST AND SECOND TABLES TO
OBTAIN NUMBER OF FIELD REFERENCES OF 1108 EACH FIELD (WITH RESPECT To OTHER N
FIELDS WITHIN THE SAME CLASS) DURING RUNTIME OVER ALL PATHS
(SEE FIG. 14)
RUNTIME
SORT FIELDS PER CLASS BY THE NUMBER OF FIELD REFERENCES OVER ALL PATHS FOR 1110
THAT CLASS "\J (SEE FIG. 15)
GENERATE GARBAGE COLLECTION CODE 1112 THAT TRAVERSES FIELDS OF OBJECTS IN N
MEMORY IN THE SORTED ORDER AND COPIES OBJECTS POINTED TO BY THE FIELDS
PERFORM GARBAGE COLLECTION “14 (SEE FIG. 17)
U.S. Patent Jul. 15,2003 Sheet 1 0f 19 US 6,594,678 B1
MARK AND SWEEP - 1ST PASS
root
108 N
FIG. 1A
MARK AND SWEEP - 2ND PASS
root
FIG. 1 B
03
U.S. Patent Jul. 15,2003 Sheet 2 0f 19 US 6,594,678 B1
200 \./-\
2% 204 206
root —-—> A B (3 D
V508
FIG. 2A
COPYING CARBAGE COLLECTION
200 \./-\
?ea 204 £061 root -—> A B D
FIG. 2B
U.S. Patent Jul. 15,2003 Sheet 3 0f 19 US 6,594,678 B1
300 \_/\
3% sqf- 306 OLD A B c D
H 308
FIG. 3A
M22
39A at‘ 3%
FIG. 3B
3% sg/sg 306
COPY2 A B
FIG. 3C
U.S. Patent Jul. 15,2003
OBJECT A 490
£2 494
OBJECT C 412
114
422
426
LOG OF MEMORY ACCESSES
OBJECT A
FIG. 48
Sheet 4 0f 19
FIG. 4A
US 6,594,678 B1
406 OBJECT B N
198 41° N
416 OBJECT D N
418
428
/ TEMPORAL REFERENCE
GRAPH
\ I B——D
FIG. 4C
U.S. Patent Jul. 15,2003 Sheet 5 0f 19 US 6,594,678 B1
500 50a OBJECTA N OBJECTB N
502 510 y N Z N
x \594 w r312 v N596
FIG. 5A
514 N
LOG OF MEMORY ACESSES
51L OBJECT FIELD R518 520\/\ A X N922
A Y
A x
A Y
FIG. 5B
524 TEMPORAL REFERENCE/NJ
GRAPE
x — ‘Y
FIG. 5C
U.S. Patent Jul. 15,2003 Sheet 6 6f 19 US 6,594,678 B1
60$
6% + \ £98
604 + “A +
610 + ~/
06 6k,~~ / +
FIG. 6A
PATH PROFILE
612
INSERTED CODE
FIG. 6B
U.S. Patent Jul. 15,2003 Sheet 7 0f 19 US 6,594,678 B1
CLASSA A300
702 / \ 704 “A Object A1 Object A2 N
706 $06 \_A - - 708 X. B Type X. B Type 708
FIG. 7A
710 /
712 R1 ~
714 / \ 716 A1 A2 N
FIG. 7B
718
720 722 724 / ,-/ 2-1 2-1
A17_02 rA27—04 -—> B1 -1
FIG. 7C
U.S. Patent Jul. 15,2003 Sheet 8 0f 19 US 6,594,678 B1
802
EXECUTE PROGRAM N
GENERATE A RECORD (E.G., PATH PROFILE OR LOG) OF 804
FIELD ACCESSES IN MEMORY /-\_/ AS THE PROGRAM EXECUTES
I REARRANGE OBJECTS IN MEMORY USING THE GENERATED RECORD SO
THAT OBJECTS HAVING FIELDS ACCESSED CLOSEZLY TOGETHER IN
TIME ARE STORED IN CLOSE PROXIMITY IN MEMORY (E.G., VIA
COPYING GARBAGE COLLECTION) SO THAT THE OBJECTS WILL
EVENTUALLY BE STORED IN THE SAME CACHE LINE WHEN DATA IS REMOVED FROM THE MEMORY INTO
THE CACHE
FIG. 8
806
U.S. Patent Jul. 15,2003 Sheet 9 0f 19 US 6,594,678 B1
06
FOR EACH CLASS, COUNT OCCURRENCES IN THE GENERATED RECORD OF
TEMPORALLY CLOSE REFERENCES OF 902 FIELDS WITH RESPECT TO ONE ANOTHER /\/
TO GENERATE FIELD ORDERING INFORMATION
I WITHIN EACH CLASS, SORT THE FIELDS IN 904 ACCORDANCE WITH THE FIELD ORDERING
INFORMATION
I DURING GARBAGE COLLECTION, FOR EACH
OBJECT TRAVERSE THE FIELDS IN ACCORDANCE WITH THE FIELD ORDERING x3065 INFORMATION ASSOCIATED WITH THE
CLASS OF THE OBJECT AND RECURSIVELY COPY OBJECTS POINTED TO BY EACH OF
THE SORTED FIELDS
FIG. 9
U.S. Patent Jul. 15,2003 Sheet 10 0f 19 US 6,594,678 B1
2%
1002V/\ A , Q “L010 1000
/\J 1006 A V 2 x 1008
B /\ 1004V/\1 Y __[_> \J
4000 1002V/\ A
81008 81010 1OO6V/\ X _
B Q 1004V? Y J’
FIG. 10
U.S. Patent
1116
8 COMPILE TIME
1118
RUNTIME
Jul. 15, 2003 Sheet 11 0f 19 US 6,594,678 B1
ANALYZE CONTROL FLOW OF A COMPUTER APPLICATION TO INSERT CODE IN THE COMPUTER APPLICATION THAT ENABLES
COUNTS OF EACH PATH TAKEN AT RUNTIME TO BE COMPUTED
1102 Z
I FOR EACH PATH, COMPUTE NUMBER OF DEPENDENT REFERENCES OF EACH FIELD (WITH RESPECT TO OTHER FIELDS WITHIN THE SAME CLASS) TO PRODUCE A FIRST
TABLE FOR EACH CLASS (SEE FIG. 12)
1104
I COMPUTE THE COUNTS OF EACH PATH TAKEN AT RUNTIME USING THE INSERTED CODE TO PRODUCE A SECOND TABLE FOR EACH CLASS
(SEE FIG. 13)
1106 "'\/
I COMBINE THE FIRST AND SECOND TABLES TO OBTAIN NUMBER OF FIELD REFERENCES OF EACH FIELD (WITH RESPECT TO OTHER
FIELDS WITHIN THE SAME CLASS) DURING RUNTIME OvER ALL PATHS
(SEE FIG. 14)
1108 Z
I SORT FIELDS PER CLASS BY THE NUMBER OF FIELD REFERENCES OvER ALL PATHS FOR
THAT CLASS (SEE FIG. 15)
1110 Z
I GENERATE GARBAGE COLLECTION CODE THAT TRAVERSES FIELDS OF OBJECTS IN
MEMORY IN THE SORTED ORDER AND COPIES OBJECTS POINTED TO BY THE FIELDS
I PERFORM GARBAGE COLLECTION
(SEE FIG. 17)
FIG. 11
U.S. Patent Jul. 15,2003 Sheet 12 0f 19 US 6,594,678 B1
/ 1104 1202
PATH 511 ‘N
1204 12Q6A #FIELD REFERENCES N
F'ELD ASSOCIATED WITH PATH
1210 1208 \A A.Y 2 N
1212 1214 V0 A.X 0 N
FIG. 12
U.S. Patent Jul. 15,2003 Sheet 13 0f 19 US 6,594,678 B1
1106
V/ 1304
1302 N N PATH
PATH COUNT
PATH 2 39
PATH 511 5105
FIG. 13
U.S. Patent Jul. 15,2003 Sheet 14 0f 19 US 6,594,678 B1
K1108 1402 1404
# FIELD REFERENCES FIELD DURING RUNTIME OVER
ALL PATHS
A Y (RESULT IF WOULD ' HAVE DONE LOG) 53
A.X 5
FIG. 14
U.S. Patent Jul. 15,2003 Sheet 15 0f 19 US 6,594,678 B1
F‘ 1110
FIELDS SORTED PER CLASS
1 502 1504 /\/
FIELD "\/ CLASS A 1506
1 X /\/
1508 2 Y /\J
$510 FIELD /\1912 CLASS B 1514
1516 2 W /'\/
FIG. 15
U.S. Patent Jul. 15,2003 Sheet 16 0f 19 US 6,594,678 B1
1612 1616 v“ CLASS A \/\ CLASS B
1614 FIELDX 1618 FIELDZ FIELD Y FIELD w
U_ ‘ L’ 1600
1602 1606 1608
k,\ L1 L“ OBJECT 1 OBJECT 2 OBJECT 3 HEADER HEADER HEADER
FIELD x > FIELD x > FIELD W
FIELD Yl —> FIELD Y FIELD z |
1604 1610
L.W L_\ OBJECT 4 OBJECT 5 HEADER HEADER
FIELD W > FIELD x
FIELD z FIELD Y
FIG. 16
U.S. Patent Jul. 15,2003 Sheet 17 0f 19
K1114 1700 _/
OBTAIN OBJECT POINTED TO
I DETERMINE CLASS OF THE OBTAINED IN
FIG. 17
US 6,594,678 B1
OBJECT
1708 1706 r)
COPY THE > N I OBJECT
MORE FIELDS TO BE POINTED T0 TRAVERSED
ASCERTAIN NEXT FIELD IDENTIFIED 1710 IN CLASS FIELD ’\/ ORDERING INFO.
DOES THE 1812 * RECURSIVE IDENTIFIED FIELD Y OBTAIN THE 1714
OF THE OBJECT POINT>__> SECOND N TO A SECOND OBJECT OBJECT? POINTED TO
U.S. Patent Jul. 15,2003 Sheet 18 0f 19 US 6,594,678 B1
1802 1808 f_J
MAIN MEMORY 8 CPU
1806 1808 1804 _J
S F 1810 1 A B CACHE
COPY
CACHE LINE
\> A B N 1812
FIG. 18
U.S. Patent Jul. 15,2003 Sheet 19 0f 19 US 6,594,678 B1
1902 1912
/
l/O
I 1904 1906 /
1910 PRIMARY ' ' STORAGE
SECONDARY 1908 STORAGE <_> NPROCESSORS /
<—— RAM
I 1914 /
NETWORK
FIG. 19