Binyamin Dissen wrote:
I wonder why MVCP or MVCS should require millicode.

Is it because the length and key are in registers?

Instruction complexity is certainly one reason why an instruction might be implemented in millicode. But, there are other, less obvious reasons.

Chip "real estate" is a big factor. The designers are always looking for logic they can offload into millicode to make room for more "important" things. They run various workloads through an simulator that counts all of the instructions used. Those that are infrequently used have a much better chance of millicode reimplementation that do those that are executed often.

It's an unfortunate, circular, self-fulfillment. Millicoded instructions execute slowly. Software developers and compiler writers avoid using slow instructions. Infrequently used instructions get implemented in millicode...

Here at PSI, we ended up rewriting many routines that had worked for decades because TR/TRT went from an ultra-fast, hardware implementation to a slow, millicode implementation. For short strings, we found that TR/TRT could be replaced by a loop of equivalent hardware-implemented instructions that ran considerably faster! Apparently, the "new" workloads IBM used for their modeling don't use TR/TRT very often. :-(

--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to