Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/MLRISC/Doc/instructions.html
ViewVC logotype

View of /sml/trunk/src/MLRISC/Doc/instructions.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 409 - (download) (as text) (annotate)
Fri Sep 3 00:21:52 1999 UTC (19 years, 10 months ago) by monnier
File size: 2887 byte(s)
Initial revision
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="GENERATOR" CONTENT="Mozilla/4.07 [en] (X11; I; Linux 2.2.7 i686) [Netscape]">
</HEAD>
<BODY bgcolor="#FFFFFF">

<CENTER>
<H1>
<FONT COLOR="#aa0000">Instructions</FONT></H1></CENTER>
<h2> Introduction </h2>

  Instructions in MLRISC are implemented as abstract datatypes and
must satisfy the signature 
<a href="../instructions/instructions.sig" target=code> INSTRUCTIONS </a>,
defined as follows:

<pre>
signature INSTRUCTIONS =
sig
   structure C        : <a href="cells.html">CELLS</a>
   structure Constant : <a href="constants.html">CONSTANT</a>

   type operand   
   type ea         
   type instruction 
end
</pre>

Here, the <tt>operand</tt> is used to represent operands
and <tt>ea</tt> is used to represent effective addresses.

<h3> Predication </h3>
   For architectures that have full <font color="#ff0000">predication</font> 
built-in, such as the C6xx or IA-64, the instruction set should be
extended to satisfy the signature 
<a href="../instructions/pred-instructions.sig" target=code> PREDICATED_INSTRUCTIONS </a>,
defined as follows:
<pre>
signature PREDICATED_INSTRUCTIONS =
sig
   include INSTRUCTIONS
   
   type predicate  

end
</pre>
This basically says that the type that is used to represent a predicate
can be implemented however the client wants.  This flexibility
is quite important since the predication model differs substantially
from architecture to architecture.
</pre>

<h3> VLIW </h3>
   VLIW architectures differ from superscalars in that
resource assignments are statically determined at compile time.
We distinguish between two different types of resources, namely
<font color="#ff0000">functional units</font> and
<font color="#ff0000">data paths</font>.  The latter type is particularly
important for clustered architectures.
The signature
<a href="../instructions/vliw-instructions.sig" target=code> VLIW_INSTRUCTIONS </a> is
used to describe instructions:
<pre>
signature VLIW_INSTRUCTIONS =
sig

   include INSTRUCTIONS
   structure FU : <a href="../instructions/funits.sig" target=code>FUNITS</a>
   structure DP : <a href="../instructions/datapaths.sig" target=code>DATAPATHS</a>
end
</pre>
The signature <tt>FUNITS</tt> is used to describe functional unit
resources, while the signature <tt>DATAPATHS</tt> is used to describe
data paths.

<h3> Predicated VLIW </h3>

Finally, instructions sets for predicated VLIW/EPIC machines should match
the signature 
<a href="../instructions/pred-vliw-instructions.sig" target=code> 
PREDICATED_VLIW_INSTRUCTIONS </a>:
<pre>
signature PREDICATED_VLIW_INSTRUCTIONS =
sig
   include VLIW_INSTRUCTIONS
   type predicate
end
</pre>

<HR>
    <FONT SIZE="-2">
<ADDRESS>
<A HREF="mailto:leunga@cs.nyu.edu">Allen Leung</A></ADDRESS>
<BR>

</BODY>
</HTML>

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0