1056747 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

緑のボタンを押せ! Press the green button

緑のボタンを押せ! Press the green button

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Category

Keyword Search

▼キーワード検索

Archives

2024.04
2024.03
2024.02
2024.01
2023.12

Comments

 effelpist@ kilovermek.es effelpist &lt;a href=&quot; <small> <a href="http…
 Jun@ Re:「いっちゅう」さんのiEPG用ソフト入れてみた(09/15) TVdeIEPG Ver.1.2.1.0がリンク切れしてい…
 スター@ Re:hauppauge HD PVR 速報(08/25) スタービーチ <small> <a href="http://c…
 ASOBO@ Re:hauppauge HD PVR 速報 ASOBO攻略 <small> <a href="http:/…
 ハッピーメール@ Re:hauppauge HD PVR 速報 ハッピーメール <small> <a href="http:/…

Freepage List

Favorite Blog

まだ登録されていません
2010.03.10
XML
テーマ:電子工作(533)
カテゴリ:STM8

今週は、海外から外人が来ていて、彼らをつれてお客さん廻りで東へ西へと忙しいです。信じられないこととかも起きて「こいつらいつか殺してやる」と思ったりして、いい感じに珍道中になっています。


それはともかく、STM8S Discoveryの続きです。

 

プログラミングマニュアル(インストラクションセット)PM0044はここ
http://www.st.com/stonline/products/literature/pm/13590.pdf
にドキュメントがあります。ざっと眺めてみると、結構速い。アドレッシングモードは豊富。

72h,90h,91h,92hで始まる命令は(多くの場合)アドレッシングモードの変更のプレフィックスになっている。Z-80みたい。コードのコンパクションにはあまり向かない感じです。
ほとんどの命令は1クロックで実行できるけど間接アドレッシングを使うと4クロック程度まで落ちる。データバスが8ビットだから、仕方ないか。
ハーバードアーキテクチャで、インストラクションバスの幅は32ビット、命令長は最大5バイトなので、命令のコンパクションをするより、インストラクションバスのバンド幅を大きくし、相対的に大き目のコードメモリを積めばよい、という考え方のようです。

最大命令長が5バイトなので、8バイト分(2回分)を先読みすると考えると、分岐命令の際は2クロック分余計かかるのが、ストールサイクルになっているのでしょう。1クロック余計でもいいような気がするけど、なんでだろう。

乗除算命令がある。除算は可変サイクルで最大サイクル数が17と長いけど、実行中に割り込みを受け付けることができるので、大体アルゴリズムの想像はつくな・・・。
メモリーtoメモリーのMOV命令が1サイクルで実行できるということは、データメモリはR/Wで別にアドレッシングできるということかな(ゴージャス)

 あー、違うみたい。3ステージのパイプラインかな。1ステージ目は命令のデコードとインデックスまでのアドレス計算、2ステージ目で、データメモリのフェッチ、3ステージ目でデータメモリの書き込みをやるんじゃないかな…
分岐命令がいわゆるディレイドブランチになってないから、分岐の実施も3ステージ目になっているんじゃなかろうか?だとすると、分岐命令が3クロックなのも納得がいくような気がする。

1サイクルで実行できても不思議ない、インデックスレジスタをいじる命令も、2サイクルになっているのは、(次の命令の)2ステージ目に結果を反映させるため、1サイクル分はストールと考えるとだいたい納得がいく。

なかなか、面白い。ISSでも作ってみようかな… 






お気に入りの記事を「いいね!」で応援しよう

Last updated  2010.03.10 21:55:15
コメント(0) | コメントを書く
[STM8] カテゴリの最新記事



© Rakuten Group, Inc.