2008-08-09

Strategy, SoC memo C1(1)




Basic TOEFLが昨日ようやく終わりました。途中から何人かUSAに帰ったので、結果、最終日の受講生の状況がハーレム状態だったのが唯一の良い思い出です。一方で、まわりの受講生が全員高校生とはいえ、皆帰国子女だったので、readingの早さとかlisteningの把握力とか負けまくりだったのはつらい思い出 orz。ま、最後のテストではぼちぼちいい点数取れたので、よしということで。

今回、さらっとTOEFL iBTの概要を学んだだけだけど、やっぱstrategyは大事だね。readingとか、ITPの問題だったけど、普通に正答率2倍になったわ。Listeningも同じく、とりあえず正答率が5割を越えた。ただ、iBTのstrategyは本当にさらっとやっただけで、まだ勉強していないところもいっぱいあるらしい。実際、今までやってたのはR/Lだけだしね。

と、そんなこんなで、明日からはiBTのR/L standardとBasic Writingの授業開始です。今まで最年長だったけど、今度は社会人クラスなので最年少になるらしい。といっても特に変わらないと思うけど(帰国子女がいなくなる分、全体的にはレベルダウンするのかな)。まぁ、とにかく、ぼちぼち頑張ります。



----- SoC C1 (1) NOTE(途中) -----
レポート課題:C1章(2)No1 演習1,2 PP.69

1. プロセスモデルのOSとスレッドモデルのOSの特徴を説明せよ。
2. 4種類のOSの動作モデルと特徴を述べよ。




----- noteのまとめ -----
[C1章 組み込みソフトウェアの基礎(1)]
概要:組み込みシステムの特徴、ハードウェアの基礎知識、組み込みシステムとは何か、車を用いた事例

・Introduction
一般的にコンピュータ関連産業をIT産業と呼ばれているが、経済産業省では明確にIT産業とET産業に区別している。

IT:Information Technology
-> インターネット系情報サービス
Ex. 銀行のオンラインシステム、座席予約システム

ET: Embedded Technology
-> ある目的に専用化されたシステム。具体的には、汎用コンピュータ以外のコンピュータシステム。
Ex. i-Pod, 家電, 携帯(ただし,iアプリは汎用コンピュータ)

注:ロードして実行するプログラムは、組み込みソフトウェアではない!
Ex. java program, PDA
→このようなソフトウェアは、アプリケーションソフトウェアという方が適している。

しかし、言葉は生きているので、現在の定義がこの先も常に変わらないとは限らない。
→定義として覚えるのではなくイメージとして覚えた方が効率的。


・ET産業と特徴
- 厳しいリソースの制約
- 高い信頼性
→PCとは違った信頼性
cf. 回収経路が違う。
つまり、組み込みシステムに対するユーザの期待度が高い。
cf. windows XPがフリーズしても、ユーザには暗黙の諦めがある。
cf. i-Podがフリーズしたら、ユーザはクレームをつける。

・原因は何か?
ユーザはモノを使うとき、思い描いた動作するためにはどのように操作すればいいのか、という予測を行いモノを扱う。
この予測が期待値を左右する。よって、
-ET系は期待値が高い。
-PCに対しての諦め。
という差異が起こる。

Ex:リアルタイム性
→ある操作に対して、その操作が完了するまでどの程度時間がかかるか、という予測。
開発者は、この予測を正確に把握する必要がある。ただし、早ければよいということではない!


・では、組み込みシステムにはどのような厳しい要求があるのか?
1. 重大な欠陥にたいする賠償→めちゃくちゃ損害が大きい
Ex: Panasonicが10年前に行った欠陥ストーブの回収

2. 開発サイクルの短縮
6ヶ月未満が4割、1年〜6ヶ月が4割。
→8割の組み込みシステムは、1年未満のサイクルで製造されている。
→技術者はドMなので、やりがいを感じる(?)→デスマーチ(?)

大抵は、半期モデルとかで、6ヶ月単位でサイクルすることが大きい。
というか、実際にはこれ以上生産サイクルは縮まらない。しかし、ソフトウェアのソースコードの行数は年々増加している。
→そろそろ限界に達するので、何かしらの現象が起こる(?)

Q. 技術者に余裕をもたらすために、生産サイクルの単位をもっとゆとりを持たせられないのか?
A. ユーザがそれを求める限り、企業倫理的に無理。

結論:このような状況下で開発を成功させるのは無謀。実際にほとんどのプロジェクトが"成功"といえる水準に至っていない。
仮対策:以下に効率的なエンジニアリング手法を取り入れるかが重要。
ex. 過去の資産を活用、開発工程の管理




・組み込みソフトウェアの、HW的な違い
1. Sencorがある
2. Actuatorがある
3. I/Oが違う

Sencor:温度、変位、音、磁気、化学量、光度などに反応して電気信号に変換する素子
Actuator:センサの逆。電気信号を物理的、科学的変化に変換。
Ex:電磁ソレノイド、motor

・具体的な制御例(Case:直流Motor)
電力up→pulse幅down→早く回転する
電力down→pulse幅up→遅く回転する

motorだけとっても、制御の仕方は他にも、AC(Alternating Current)・stepping・sorvo・linerなどがある。

・他HW知識
Analog量とDegital量, Sampling Freq, AD transformation
→全部実験でやった奴。

・data圧縮
1. 可逆圧縮
→ZIP,LZH, GIF, PNG

2. 不可逆圧縮(圧縮率高い)
→MPEG, JPEG, AAC
→このため、動画では圧縮をする度に品質は落ちていく。(が、人間が感知できるほど気になる量ではないらしい。)

圧縮例:
1. Run Length

事例:動画圧縮
背景はあまり変わらないことが多いので、差分データのみ(動くモノのみ)を変化させるようにすれば、割と効率的に動く。
逆に言えば、桜が落ちるシーンや、潮の満ち引きがある海では、背景が頻繁に変わるので、あまり効果は期待できない。



・組み込みシステムで扱うOS(基本的にCAやOS、programing Cで勉強したこと)
内容:MPU内部における割り込みの動作、外部割り込みと内部割り込み、Big EndianとLittle Endian、←の性能比較、
MPUとデバイスとデバイスとでEndianが異なる場合の配線、キャッシュ(の動作)、周辺デバイス、レジスタ、RTOSを動作させるために必要なI/Oデバイス

(以下、上述の内容のうち、自分が知らなかったところだけを補足)
- NMI(Non Mashable Interrupt):停電等が起こってもいつでも割り込みで切るような仕組み
- BigEndian: 上位バイトから出力
- LittleEndian: 下位バイトから出力
→読み込みの時はBig Endianの方がよい。
- ではなぜLittle Endianが主流なのか?
→Little Endianは当初、計算機気のためではなく、電卓のために設計されたから。
→このため、現代でもその名残りとしてLittle Endian方式が主流となってしまった。

・BEとLEの利点
LE:数値の桁数が分からなくても解析できる
BE:メモリの内容が直感的にわかる。(人間の文字を読む順序と同じ)
→デバック時や、memory dumpで内容を把握するときに便利。
→LEの場合は、変換関数を通した後でレジスタの内容を出力する必要がある。

・なぜBEが良いと言われているのか?
→自然界のあらゆる現象は、すべてBig Endianと同じだから。
またLEの場合、ハードでバイトスワップしなくてはいけない。
→つまり、Busごとをごっそりswapする。

このような考えは、通常、IT産業では扱わない。

・キャッシュ
- write through: 書き込み時に、キャッシュメモリと実際のメモリに対して書き込みを行う
- write back: 書き込み時に、キャッシュメモリだけを書き換えて、実際のメモリに対しては書き込みを行わない(メモリはちょっと遠い位置にあるので)
使用例:ある程度write backでメモリを無視おき、write throughで今までの内容を一気に書き込む。
demerit:メモリに書くべき内容がかかれない危険性がある。

キャッシュは、当たれば早いが外れると極端に遅くなる。
→99.999%時間内に動作しても0.0001%間に合わない、では許されない。
→組み込みシステムでは、キャッシュを入れることにより、逆に遅くなることも有り得る。

0 件のコメント: