methods and apparatus for improving locality of reference through

29
(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)

Upload: tranphuc

Post on 14-Feb-2017

219 views

Category:

Documents


4 download

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