比例道
| フロントページ | 新着 | 一覧 |
<-domain ijino tamedesu

diary/20061003

小6少女自殺

同じ日に2本エントリーするのは初めてだが,書かずにはいられなかった.今日の朝日新聞夕刊に昨年9月に北海道で自殺した小学6年生の少女の遺書が掲載された.遺書に記された幼い字とその切実な内容に涙が止まらなかった.
多数で弱いものを攻撃するのは人として最も恥ずべき行為だ.いじめに加わったクラスメートはひとりひとりは罪の意識は薄い上に,法的には罰するすべもないので,このまま何のおとがめもないまま暮らしていくのだろう.でも,彼らが人殺しであることは事実なのだ.一人で殺人を犯せば罪で,大勢で囲み殺せば無実とは,殺された方にしてみれば決して納得できないだろう.法律の限界がここにある.近代国家の条件として法治が必要であり,人治では近代国家たり得ないという論説があるが,その論理には綻びがあるようだ.大岡裁きをするほどの知恵も人情もある人は珍しいから人治では間違いが起こる.そこでマニュアルを定めて誰でも人を裁けるようにしようというのが法治の趣旨であるが,これで本当に良いのか.法律に甘えて裁く方の心構えがどんどん堕落していないか.間違いの無い人治を目指し,それに向かって一生の間厳しく精進し続ける人に人治を任せた方が良いのではないかと考えてしまう.そうすれば,法律にひっかからないように悪事やずるをする連中への抑止効果となるのではないかと思う.

Z80プログラミング

携帯電話用プログラム高速化の面倒を見ることがある.ARM用コンパイラのコード展開が読み切れずに苦労している.アセンブラで書きたいところだが,私がずっと面倒を見るのではないのでそうもいかない.アセンブラは6800/6809/Z80/8086/80286/TIC3x/TIC5xと使ってきた.6800/6809/Z80までは小さいプログラムは脳内アセンブラで直接マシン語で書き下していた.CPUの設計がエレガントだと思ったのはモトローラの680x系だが,工夫しがいがあったのはZ80だ.A-HL,IX,IYの各レジスタの機能が違い,同じ命令でも所要クロックが違う.変数をどのレジスタに割り当てるかで,できあがったプログラムの性能が大きく変わる.パズルのようで面白かった.またマニアは気付いていたがIX,IYレジスタ用のプレアンビルをDE,HLレジスタ用の命令にくっつけると,CPUの仕様には記載されていないが動く命令があった.DE,HLレジスタに比べて4サイクル余分に所要クロックが増えるので使いこなしが難しかったが,それでもメモリアクセスよりは速いので中頻度でアクセスする変数に利用すると性能が向上する.またこれは正規な仕様だが裏レジスタへの切り替えが1サイクルで行えるので,同時にアクセスしない変数をグルーピングしてそれぞれを表レジスタと裏レジスタに割り振ると劇的な性能向上ができた.こういう最適化はコンパイラで自動化するのは難しいので,コンパイラ屋にはレジスタの性質が同じRISCっぽいモトローラ系が扱い易く,その考え方を進めて行ったのが68000やPowerPCの流れだ.
CISC系であるZ80は兵隊(レジスタ)の個性が強いので各兵隊に合わせた使いこなしができないと軍(CPU)の勝利は望めない.例えて言えば兵器体系がばらばらだったドイツ軍,日本軍,ジオン軍だ.RISC系である680xはレジスタがみんな同じなので,運用は数の配分だけで済む.軍の運用をマニュアル化,数値化し易いので管理しやすい.これは米軍,連邦軍に相当する.指揮官にとって采配のふるいがいがあるのは前者の方だ.
昨年度までのCPUはRISC全盛の感があったが,機械的な最適化では性能向上が頭打ちになることが問題となったため,CISCのエッセンスを使ったCore 2 Duoが今年発表され成功をおさめている.ただし,この路線を続けるのはタフな道のりになる.CISCの性能を発揮できるのは有能な指揮官(この場合はCPU設計者とコンパイラ設計者)がいる場合に限られるからだ.Core 2 Duoを作ったイスラエルのチームは優秀だが,これは担当者に依存していることだ.その担当者がいつか消えたときはCore系の発展は暗礁に乗り上げるだろう.