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