タグ

Programmingとoldに関するUSAGI-WRPのブックマーク (2)

  • 演算力は無限になっとる

    Living in the Era of Infinite Computing Power めちゃカンタンな計算が、昔は遅かったんや。8bitプロセッサーで一万回ループしようとおもたらな、内側256回ループする外側で40回ループしたほうが速かったんや。16bitの加算と比較を行うために複数の命令を使わんでもええからや。 掛け算と割り算が、昔は遅かったんや。そもそも、そんな計算するCPU命令なんてなかったんやで。掛け算のオペランドの片方が定数やったら、加算とビットシフトに分解できるんやが(Nに44を掛けるには、N 左シフト 5 + N 左シフト 3 + N 左シフト 2や)、まあ、世の中そんなに都合よういってくれへんわな。 浮動小数点数が、昔は遅かったんや。FPU以前、浮動小数点数の計算はめちゃめちゃ遅いソフトウェアで行われていたんや。はじめのハードウェアは、マシなんはマシやったが、そんなす

  • カンタンなんがええのにワケわからへんもんをつくる

    We Who Value Simplicity Have Built Incomprehensible Machines 8086のAAA命令っちゅうやつは、まあ昔はよかったんや。1970年代は、二進化十進数、つまり一バイトで二桁を表す必要がある時代やった。BCDって何がそんなにええんや? おっきな数字が、マルチバイトの掛け算とか割り算とかせえへんでもカンタンに表示できるんや。加算した後はASCII化(ASCII Adjust After Addition)やからAAAっちゅうわけで、x86ハードウェアに三十年以上前から居座っとる。そこらにあるi7プロセッサーは全部、AAAをマイクロコードでエミュレートしとる。 Cライブラリ関数のmemcpyっちゅうやつも、まあ昔はよかったんや。memmoveはそこそこ早くて、もうちょいと器用なやっちゃ。コピー元とコピー先がオーバーラップする場合でもちゃん

  • 1