« 2018年2月 | トップページ | 2018年4月 »

2018年3月

2018/03/25

デジカメが欲しい

自分が使っている一眼レフデジカメCANON EOS 40Dも気がついたら10年経っていました。
故障もせず、よく働いてくれていますが、さすがに最新の機種に比べるとスペックも大きく見劣りしますし、そろそろ買い換えたくなってきました。
一番の不満は感度がISO1600(拡張で3200)までしかないため、暗くなってくるとシャッタースピードを落とさざるを得ず、盛大な手振れ・被写体振れを量産してしまうことです。

前から、次に買い換えるならフルサイズと思っていましたが、フルサイズ機は高価で、レンズも買い換え・買い足しが必要です。
逆に、ミラーレス機も気になっています。小さくて手軽に持ち出せるので、ちょっとした散歩にも持っていけそうです。レンズの買い換え・買い足しが必要なのはフルサイズ機と同じですが、フルサイズ機に比べれば選択肢が少なく、しかも高価なレンズが少ないので、諦めるという意識をあまり持たずに済みそうです。

現行機がCANONなので、次もおそらくCANONということになり、気になっているのはフルサイズ機ではEOS 6D Mark2、ミラーレス機ではEOS M100とEOS kiss Mです。撮影スタイルとしてファインダが欲しいので、EOS M100よりはEOS kiss Mのほうになりますが、小ささと値段ではEOS M100です。

ちょっと悩んでみます。こういうときが一番楽しいんですよね。


| | コメント (0) | トラックバック (0)

2018/03/24

命令セットアーキテクチャを考える(番外編) 条件付き分岐

前の記事で、RISC Vの条件分岐命令について書きました。
今度はopenRISCについても調べてみました。
https://raw.githubusercontent.com/openrisc/doc/master/openrisc-arch-1.2-rev0.pdf

openRISCでは、条件分岐はbf(Branch if Flag)命令とbnf(Branch if Not Flag)命令があります。特殊レジスタのF(flag)ビットによって、分岐するかどうかを決めるようです。
ではFビットはどうやってセットされるかというと、さまざまな(※)Set Flag命令があり、条件分岐前に、sf*命令を使ってFビットをセットまたはクリアしておいて、bfまたはbnf命令で分岐する、という仕組みになります。

※ sf*命令には、大小イコール比較、符号付き/なし、第二オペランドがレジスタ/即値などのバリエーションがあります。

条件分岐以外にも、Fビットの値によってRaまたはRbの値がRdにセットされるという、cmov(Conditional MOVe)命令もあります。使い方によっては、分岐しないでパイプラインの乱れがなくてよさそうです。

例えば、先日の記事のmax/min命令相当の処理ならば、分岐命令を使わずに以下のように2命令で実装できます。
sfgts Ra,Rb : set flag greater than signed
cmov Rd,Ra,Rb : conditional move

| | コメント (0) | トラックバック (0)

自作PCの電源交換

午前中から秋葉原に出かけて、PC用電源を買ってきて交換しました。何事もなくPCが立ち上がりました。良かったです。
古い電源に貼ってあったシールによると、2007年2月製造のようです。10年以上経過しているのでしかたないですね。ここまで良く働いてくれました。

久しぶりに秋葉原まで行きましたが、ずいぶんと雰囲気が変わってました。駅前のもとの青果市場跡には大きなビルができているし、アニメやゲーム関係のお店が増えて、PCパーツのお店はガクンと減った感じです。PC自作というのがあまり流行っていないようで、ちょっと寂しかったですね。そういう自分も、パーツを交換するのは故障したときだけ、という状態ですから、文句をいう筋合いではないですが。

| | コメント (0) | トラックバック (0)

2018/03/21

自作PCの電源が逝った

自作PCが気付いたら電源が落ちていて、再起動しようとしても電源が入りません。何となくプラスチック類の焼けたような匂いもします。おそらく電源が逝ってしまったに違いありません。

自宅にいて就寝中でもないというタイミングで、発火発煙というような事態にならなくて不幸中の幸いでした。

今週末は試合もないので、電源を買ってきて交換しようと思います。

| | コメント (0) | トラックバック (0)

命令セットアーキテクチャを考える(番外編) 特殊レジスタの汎用レジスタへの割り当て

汎用レジスタが64本もあるので、特殊レジスタを汎用レジスタ番号に割り当てたらどうでしょうか。

とは言っても、他のアーキテクチャにあるような、乗除算専用のMHI/MLOレジスタや、ループカウント用のカウントレジスタのようなものは、私の考えたアーキテクチャにはなく、命令のオペランドで汎用レジスタを使用するようになっています。また、スタックポインタレジスタのようなものもありません。

残りのPC(プログラムカウンタ)とCCR(コンディションコードレジスタ)を汎用レジスタに割り当てたらどうだろうかというところです。

PCを汎用レジスタ番号に割り当てると、分岐命令のPCモードがシンプルになります。これがこの番外編の一番目の動機です。


二番目の動機であるCCRについては、RISC Vアーキテクチャを参考に考えてみました。
https://riscv.org/specifications/

RISC Vの条件分岐命令では、汎用レジスタのRs1とRs2(私のシリーズでの記述ではRsとRtに相当)の比較結果によって分岐するかどうかを決定します。CCRのような特殊レジスタを使いません。この方法では、比較と条件分岐が1命令になっているため、比較、条件分岐という2命令よりもコンパクトになります。
また、条件分岐命令とは別にSLT(set Less Than)/SLTU(Set Less Than Unsigned)命令やFLT(Floating-point Less Than)やFLE(Floating-point Less Equal)命令があり、汎用レジスタ同士、浮動小数点レジスタ同士の比較結果を汎用レジスタに設定することができます。これらの命令と組み合わせることにより(実行ステップは増えますが)より柔軟な条件分岐が実現できます。
RISC Vの仕様書には、以下のような説明(注釈)が書いてあります。

The conditional branches were designed to include arithmetic comparison operations between two registers (as also done in PA-RISC and Xtensa ISA), rather than use condition codes (x86, ARM, SPARC, PowerPC), or to only compare one register against zero (Alpha, MIPS), or two registers only for equality (MIPS). This design was motivated by the observation that a combined compare-and-branch instruction fits into a regular pipeline, avoids additional condition code state or use of a temporary register, and reduces static code size and dynamic instruction fetch traffic. Another point is that comparisons against zero require non-trivial circuit delay (especially after the move to static logic in advanced processes) and so are almost as expensive as arithmetic magnitude compares. Another advantage of a fused compare-and-branch instruction is that branches are observed earlier in the front-end instruction stream, and so can be predicted earlier. There is perhaps an advantage to a design with condition codes in the case where multiple branches can be taken based on the same condition codes, but we believe this case to be relatively rare.

私の考えた条件分岐命令は、CCRのビット演算で柔軟に分岐できるように考えましたが、ハードウェア的には実装が面倒かもしれないと思い始めました。自分はハードウェアのことはわかりませんが、おそらく面倒でしょう。

それでは、私の考えたCCRに汎用レジスタ番号を割りつけたらどうでしょうか。そうすれば、CCR(汎用レジスタのうちの1本)に対するビット演算と、RISC V風の条件分岐命令で、柔軟な分岐が実現できます。
また、CCRのビットのうち、例外処理的なビットと、正負/零を示すビットを別の汎用レジスタ番号を割り当てれば、もっとシンプルになるかもしれません。

| | コメント (0) | トラックバック (0)

命令セットアーキテクチャを考える(番外編) max/min命令

命令コードのビットパターンに余裕があればですが、max命令/min命令を追加したいと思っています。

max [v] [b|h|w|d] Rs,{Rt|=imm},Rd

・RsとRtまたは即値を比較して小さくない方をRdにセットする。
・Rdにセットされる値に応じてCCRがセットされる。

基本的な命令を組み合わせて実現すると、以下のようなコードになります。
分岐命令が入るので、あまり好ましくありません。

mv Rs,Rd
comp Rs,Rt
bgt next
mv Rt,Rd
next *

min [v] [b|h|w|d] Rs,{Rt|=imm},Rd

・RsとRtまたは即値を比較して大きくない方をRdにセットする。


実は、max命令があれば、min命令はなくても、以下のように実現できます。3命令必要になりますが。
逆にmin命令があれば、max命令を実現できます。
また、キャリーやオーバーフローを考慮すると機械命令レベルではもうちょっと複雑になります。

min(a,b) = a + b - max(a,b)
max(a,b) = a + b - min(a,b)


整数データの場合、比較を行うので、符号付きと符号なしデータを命令コードレベルで区別する必要があります。

maxu [v] [b|h|w|d] Rs,{Rt|=imm},Rd
minu [v] [b|h|w|d] Rs,{Rt|=imm},Rd

水平演算命令も欲しいところです。

hmax [b|h|w|d] Rs,{Rt|=imm},Rd
hmin [b|h|w|d] Rs,{Rt|=imm},Rd
hmaxu [b|h|w|d] Rs,{Rt|=imm},Rd
hminu [b|h|w|d] Rs,{Rt|=imm},Rd

当然、整数演算だけでなく浮動小数点演算も欲しくなります。

fmax [v] [b|h|w|d] Rs,{Rt|=imm},Rd
fmin [v] [b|h|w|d] Rs,{Rt|=imm},Rd
fhmax [b|h|w|d] Rs,{Rt|=imm},Rd
fhmin [b|h|w|d] Rs,{Rt|=imm},Rd

命令コードのビットパターンに余裕がないので、レジスタ本数を32本(5bit)に減らさないと無理ですね。

| | コメント (0) | トラックバック (0)

2018/03/18

風間監督へ恩返し vs名古屋戦@トヨタ

私にとって初のトヨタスタジアムです。立派なスタジアムでした。
Img_9254s

グランパス一家にも会えました。(ピンボケ、手振れで申し訳ありません)
Img_9268s

交代出場後、ファーストタッチでゴール。
YOSHIメーターは180(スノボの技風に「ワンエイティ」と勝ってに読んでます)に到達しました。
あと20ゴール、フロンターレで獲りましょう。
Img_9346s

風間監督に恩返しできました。
風間(元フロンターレ)監督と鬼木監督はなにを話していたのでしょうか。
Img_9376s

| | コメント (0) | トラックバック (0)

2018/03/11

等々力初勝利 vs G大阪戦

CKのこぼれ球をネットが決めた1点目。
良いネットが継続しました。早い時間にゴールを決めて気分が良かったからでしょうか。
交代は自分から申し出たように見えましたが、大丈夫かな。

阿部ちゃんのクロスを家長さんが決めた恩返しゴール。
選手紹介時に阿部ちゃんと家長にG大阪のサポーターから盛大なブーイングをいただきましたが、発奮材料になってしまったようです。

フロンパークでは動物園をやっていて、うさぎ繋がりでミッフィもやってきてくれました。
Img_8994s
大好物のニンジンを両チームキャプテンにプレゼント。
Img_9004sjpg

| | コメント (0) | トラックバック (0)

2018/03/03

FRIDAY ホーム開幕戦 vs湘南@等々力

ホーム開幕戦は金曜開催のため、FRIDAYと銘打っていろいろイベントが行われていたようです。
自分は仕事からキックオフ少し前に駆けつけたためイベントを楽しむことはできませんでしたが、トドロキFRIDAYは入手しました。袋とじまでついていて、紙質も上等な本格的なものでした。

始球式は元プロ野球選手の川崎憲次郎さん。単に川崎つながりとのこと。本人もそのようにおっしゃってました。
野球らしく、キャッチャー フロン太、バッター カブレラ、審判 コムゾーがゴール前(審判はゴールライン後ろ)に並びました。蹴るものと思っていたら、まさかの手で投げ込みました。さすが、元ピッチャーです。

Kimg0816s

その後、川崎さんは地元大分で「川崎漁業組合」というCATV番組を持っているほどの釣り好きとのことで、川崎さんからキャプテンの悠に巨大な鯛が贈呈されました。「鯛を獲る」でタイトルという、フロンターレらしさ。

フロンターレ釣り部の名誉会長か顧問に就任していただければいいのではないでしょうか。

| | コメント (0) | トラックバック (0)

« 2018年2月 | トップページ | 2018年4月 »