Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

STM8S Discoveryその3

先週末のことになりますが、F1をたまたま見ました。いつの間にかシューマッハが復帰しているのには驚きましたが、なによりレーシングカーが異様にカッコ悪い。orz
こんなことでいいのでしょうか・・・

それはともかく、STM8S Discoveryの続きです。いい加減買えよ、750円なんだから、とツッコミまれそうですが。。。

I/Oの類はリファレンスマニュアル(RM0016)
http://www.st.com/stonline/products/literature/rm/14587.pdf

に載ってます。実際にはSTが提供するライブラリを使うことなるのと思うのであまり細かいところまでは見なくてもいいのでしょうが、400ページ以上なので、まだほんとに斜めに読んだだけ。

内部のアーキテクチャに関する考察(というか妄想)も、主に通勤中に続けています。
3ステージのパイプラインで、2サイクル目がデータメモリのフェッチ、3サイクル目が同書き込みだと仮定します。すると、データメモリの書き込みを伴う命令の直後にデータメモリの読み出しを伴う命令が来る場合、データの読み出しと書き込みが同じサイクルになります。両方同時に行うことは技術的に不可能ではないですが、このようなメモリは回路規模が大きくなるので(一般的には)嫌われます。また、同じアドレスに対して読み書きした場合どう扱うかも悩ましいです。
なにが言いたいかというと、上記のような場合、おそらく自動的にストールサイクルが挿入され、読み出しは1サイクル余計にかかるのではないかと思います。(データブックには記述は見当たりませんけど)
いわゆる「ストールサイクルあり」タイプのパイプライン処理でしょう。

PICもいいですが、秋月のライターでもそこそこの値段しますので、性能的にも、PIC16を圧倒してますから、いまからちょこちょこっとCでプログラム書いて遊ぶとか、教育用にはむしろよいかも。
STマイクロが、(どう考えても原価われに思える)Discovery KITを永く供給してくれることが前提ですけど…


スポンサーサイト

STM8S Discoveryその2

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


それはともかく、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でも作ってみようかな… 



STM8S Discovery (2)

普通の人にはなじみないですが、STマイクロという欧州の半導体メーカーがあります。昔はSGS-トムソンと言っていてその前身は、SGSというイタリアの半導体メーカーとトムソンというフランスの半導体メーカーです。今回、調べてみて始めて知ったのですがSGSは「Società generale di semiconduttori 」だったそうです。「Società generale」は「会社」の意味でしょうから、直訳すると「半導体の会社」という、大胆な名前だったわけです。
まあ、TSMC、IBM、GMとかもかなりですけど…
---
それはともかく、秋月に「STM8S Discovery」なるものを売っているのを見つけました。開発ソフトとかは、Webからダウンロードですが、SWIMという1線式のデバッグ用インターフェース(JTAGみたいなもののようです)でデバッグもできるのに、750円。Webを見てると、エンベッデドショーでタダで配っていたみたいですね。STM8Sというプロセッサはまったくしらないのでちょっと調べてみました。

Discovery キットのトップページ

Discovery キットのマニュアル
パキッと折ったあとも、残りは他の開発のときに使えるようです。

STM8Sの関連情報一覧はここ
フリーのソフトウェアライブラリもぱっと見にはよくできてるし、フリーCコンパイラもあります(コードサイズに制限はある)

STM8S105xx自体のマニュアル
UART,Timer,A/D,I2C位はついているし、プログラムエリアは32Kもあるし、データ用のフラッシュROM1K、RAMも2K(スタック教養)もありますね。

130nmで製造されているらしいけど、妙にクロックが遅い(16MHz、24MHz)。1GHzで動かせ、とは言いませんが、100MHz位でてもおかしくないような気がします。Flashメモリが激遅いのかもしれない。

DigiKeyでみると100個の時の単価は、$2.30位。Discoveryキットの値段がいかに安価に設定されているかわかります。




FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。