I-cache consistancy (WAS: Mixing virtual and real machine ...)

pardo@cs.washington.edu (David Keppel)
Thu, 24 Mar 1994 03:48:22 GMT

          From comp.compilers

Related articles
Mixing virtual and real machine code in an interpreter graham@pact.srf.ac.uk (1994-03-16)
Re: Mixing virtual and real machine code in an interpreter nickh@harlequin.co.uk (1994-03-22)
I-cache consistancy (WAS: Mixing virtual and real machine ...) pardo@cs.washington.edu (1994-03-24)
| List of all articles for this month |

Newsgroups: comp.compilers
From: pardo@cs.washington.edu (David Keppel)
Keywords: interpreter, design
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: 94-03-039 94-03-089
Date: Thu, 24 Mar 1994 03:48:22 GMT

nickh@harlequin.co.uk (Nick Haines) writes:
>[Many machines have separate instruction and data caches, but also
> provide an OS routine to invalidate the instruction cache (or some
> part thereof); used when creating (during compilation) or moving
> (during GC) code objects.]


Yes, most systems provide a mechanism for ensuring I-cache consistancy.
That raises the question ``how do you make use of it?''


Sometimes the `flush' is provided directly by a hardware instruction,
sometimes by an OS routine; in addition the interface may be the same from
machine to machine, but individual platforms may have e.g., different
cache sizes and thus different `best' flushing strategies depending on
whether you're changing a little bit of code or a lot.


For a more detailed analysis and a portable interface that hides machine
dependencies while optimizing around details of both the hardware and the
size of the region being flushed see (blowing my own horn again...):


%A David Keppel
%T A Portable Interface for On-The-Fly Instruction Space Modification
%J Proceedings of the Fourth International Conference on
Architectural Support for Programming Languages and Operating Systems
(ASPLOS-IV)
%D April 1991
%P 86-95


The implementation for a few machines is available via anonymous ftp:
`ftp.cs.washington.edu' (128.95.1.4) in `pub/pardo/fly-1.0..tar.Z'. (Be
sure to do the transfer in binary mode.)


;-D on ( Destruction caches ) Pardo
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.