by: Motokawa, Keiko; Nishiyama, Hiroyasu; Kikuchi, Sumio;

Memory access optimizing method

The present invention provides a memory access optimizing method which judges an access method suitable for each of memory accesses and executes the preload optimization and prefetch optimization, according to the judgement result, for an architecture equipped with a prefetch mechanism to write the data on a main storage device into a cache memory and a preload mechanism to write the data on the main storage device into a register without writing it into the cache memory. The memory access method judging step analyzes whether or not there is a designation of a memory access method by a user. Moreover, the memory access method judging step investigates whether or not the data are already in a cache memory, whether or not the data compete with other data for a cache, whether or not the data are to be referred to again later, and whether or not the data fulfill the restriction on register resources.

Tape threading mechanism Pet waste disposal system
Drive coupling and clutches Framing form and clamp
Pot broach rings Refrigerator pan assembly
Wide-angle lens

What is claimed is:

1. For use in an architecture including a prefetch mechanism for writing data on a main storage device to a cache memory, and a preload mechanism for not writing the data on said main storage device to said cache memory, but loading directly the data into a register, a memory access optimizing method of outputting a code utilizing both of said prefetch mechanism and said preload mechanism, said method comprising:

an access method judgement step of judging which of load for writing directly data from said cache memory to said register, prefetch for loading the data from said cache memory after having written the data to

said cache memory, or preload is applied to the associated one of memory accesses on a program;

a step of generating a preload code for a reference which has been judged to be the preload in said access method judgement step; and

a step of generating a prefetch code for a reference which has been judged to be the prefetch in said access method judgement step,

said access method judgement step having:

a step of analyzing the designation of an access method in said program,

wherein for the reference which has been designated as either the prefetch or the preload by the analysis, an access method is judged in accordance with said designation.

2. A memory access optimizing method according to claim 1, wherein the designation of said access method is carried out in loop unit within a program source or a compiler command line, and also is carried out with an array name, or an array element to be prefetched or preloaded.

3. For use in an architecture including a prefetch mechanism for writing data on a main storage device to a cache memory, and a preload mechanism for not writing the data on said main storage device to said cache memory, but loading directly the data into a register, a memory access optimizing method of outputting a code utilizing both of said prefetch mechanism and said preload mechanism, said method comprising:

an access method judgement step of judging which of load, prefetch or preload should be applied to the associated one of memory accesses on a program;

a step of generating a preload code for a reference which has been judged to be preloaded in said access method judgement step; and

a step of generating a prefetch code for a reference which has been judged to be the prefetch in said access method judgement step,

wherein said access method judgement step is to carry out the judgement based on the situation of utilization of cache memory or register resources.

4. A memory access optimizing method according to claim 3, wherein said access method judgement step includes:

a step of judging a stride indicating a reference distance of the memory access between successive iterations in number of elements; and

a step of determining a reference stride value as the reference for a stride value for judging an access method,

wherein the prefetch is selected for the reference in which the stride is equal to or smaller than the reference stride value, while the preload is selected for other references in order to carry out the judgement.

5. A memory access optimizing method according to claim 4, wherein said step of determining a reference stride value performs the determination on the basis of data size which is written to the cache memory through one time of prefetch, and data size to which one time of memory access refers.

6. A memory access optimizing method according to claim 3, wherein said access method judgement step has a step of analyzing a re-reference made to the same cache line between the memory accesses;

if a re-reference is present to the data which is to be executed previously, the load is selected;

if a re-reference is present to the data which is to be executed later, the prefetch is selected; and

if a re-reference is not present, the preload is selected in order to carry out the judgement.

7. A memory access optimizing method according to claim 3, wherein said access method judgement step has a step of analyzing cache competition between the memory accesses; and

for the data which competes with other data for cache when the prefetch is selected as the access method, the preload is selected in order to carry out the judgement.

8. A memory access optimizing method according to claim 3, wherein said access method judgement step has a step of judging the situation of occupation of the register for the memory access in the loop when the preload is selected as the access method; and

when the situation of occupation of the register fulfills predetermined conditions, the prefetch is selected to carry out the judgement.

9. A memory access optimizing method according to claim 6, wherein said step of analyzing a re-reference made to the same cache line between the memory accesses includes:

a step of analyzing a re-reference between the references which belong to the same loop; and

a step of analyzing a re-reference between the references between the difference loops,

said step of analyzing a re-reference between the references between the difference loops further includes:

a step of analyzing the sum of the reference ranges of the memory access for which either the prefetch or the load within the loop to be executed previously is selected; and

a step of analyzing the sum of the reference ranges of the memory access within the loop to be executed later.


logo
Stretch-wrapped package, process and apparatus

Structure of angular rate sensor

Tape tensioning apparatus

Model house

Method of making field emitters

Flexible pipe joint system

Shoe tongue accessory

Wireless control device

Display device

Certain 5,6-dihydro-prostacyclin analogs

Backwashing-type filtering apparatus

Base for roadway marker

In-situ control system for atomization

Automobile window shield and covering

Automatic insulating tape wrapping apparatus

Ergonomic arm support

Cord adjusters

Power-off brake with manual release

Tape measure

Angularly adjustable snowboard binding mount

Steering system for vehicles

Spa cover lift

Recompression staged evaporation system

Drill pipe tong retaining apparatus

Golf course

Bis(alkyleneoxybenzophenone) ultraviolet light absorbers

Wind energy conversion device

Handle bag of plastic film

Automotive air conditioner

Hammer drills for making boreholes

Card holding device

Trailer hitch alignment device

Nozzle inner radius inspection system

Electrical circuit tester

Combine header grain catch pans

Compact electric asymmetry brake

Hydraulically operated engine valve system

Wireless telecommunication digital receiver

Foreign matter detecting device

Compressible packages for infusible substances

Locking hole punch

High-temperature, non-catalytic, infrared heater

Memory access optimizing method

Surveillance system and method

Dipyrromethene metal chelate compounds

Electrophotographic x-ray device

Statistical weighing

Bearing system with water exclusion

Withstand-voltage tire

Distributed crossbar switch architecture

Photoreactive suturing of biological materials

Wrap-back test system and method

Radiating device for hyperthermia

Extended moment arm anti-spin device

Diesel engine with mechanical governor

Process for preparing catalysts

Power muscle stimulator

Shielded cable cutting device

Method for producing resist structures

Modified asphalt hydraulic sealer

Photographic camera

Tubular grafts from purified submucosa

Yarn texturing nozzle

Lifting mechanism

Keypad scanning security system

Singulator for document feeder

Low-temperature fluidity improver

Process for separating dichlorocumene isomer

Device for use in diagnosis

Steam generator arrangement

Tricyclic 5-HT.sub.3 receptor antagonists

Droppable airborne buoy

Coal carbonization and/or gasification plant

Memory protection circuit

Dental post system

Phase shift demodulator

Programmable operator's console

Circuit interlock arrangement

Vibration isolation system

Cooling device

Flexible textile spindle assembly

Stump cutter

Clip

Power source device

Swine feeding apparatus