Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!rutgers!mephisto!purdue!mentor.cc.purdue.edu!l.cc.purdue.edu!cik
From: cik@l.cc.purdue.edu (Herman Rubin)
Newsgroups: comp.arch
Subject: Re: int x int -> long for * (or is it 32x32->64)
Summary: It's not all that bad
Keywords: arithmetic,arbitrary precision,benchmark,modular arithmetic
Message-ID: <2559@l.cc.purdue.edu>
Date: 15 Sep 90 11:49:03 GMT
References: <3984@bingvaxu.cc.binghamton.edu> <41425@mips.mips.COM> <41497@mips.mips.COM>
Organization: Purdue University Statistics Department
Lines: 40
Xref: dummy dummy:1
X-OldUsenet-Modified: added Xref
In article <41497@mips.mips.COM>, mash@mips.COM (John Mashey) writes:
> In article <2118@charon.cwi.nl> dik@cwi.nl (Dik T. Winter) writes:
........................
> 1) If divide follows the same, regular decoding structure as everything
> else, and if the dividend specifies the first of 2 registers (to get 64
> bits), consider the consequences, assuming it was div dividend,divisor
> 1a) Either you need even/odd register pair (to get
> dividend and dividend|1
> OR you need an extra adder (used by nothing else) to get
> dividend and dividend+1
> 1b) It becomes the ONLY instruction that needs to fetch 3 32-bit
> registers as inputs.....
There is another instruction, badly needed in many applications, which
has the same problems; that is double-register shift by an arbitrary
amount. Also, extract field and insert field would benefit greatly
from this.
Alternatively, this could be done in the floating point units, which
already have even more complexity. None of the people wanting to use
these instructions for arithmetic care that the address-and-loop-control
unit is used for fo good arithmetic operations.
........................
> a) Integer multiply/divide takes up a nontrivial (not huge,
> but you can certainly see it on the layout) chunk of space.
> b) All of this stuff really just barely fit on the original R2000
> in 2micron CMOS, and if you look at the layour again, you'll find that
> the right side of the chip is a regular stack of 32-bit wide
> datapaths, except the mul/div unit sticks out a few more bits.
The floating point unit already has this and more.
--
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907
Phone: (317)494-6054
hrubin@l.cc.purdue.edu (Internet, bitnet) {purdue,pur-ee}!l.cc!cik(UUCP)