- 1 名前:デフォルトの名無しさん [2005/09/06(火) 17:13:46 ]
- まったり逝きましょう。
ハード寄りの話も大歓迎です。 道具話も楽しくやれるならやってくらさい。 この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね! 過去ログ 制御系なら俺に聞いてもいいぜ(7) pc8.2ch.net/test/read.cgi/tech/1109102528/ 制御系なら俺に聞いてもいいぜ(6) fun.kz/test/read.cgi/tech/1099574832/ (新タイプミラー) 制御系なら俺に聞いてもいいぜ(5) fun.kz/test/read.cgi/tech/1079102543/ (新タイプミラー) 制御系なら俺に聞いてもいいぞ(4) pc5.2ch.net/test/read.cgi/tech/1068869894/ (行方不明) 制御系なら俺に聞いてもいいぞ(3) pc2.2ch.net/tech/kako/1059/10594/1059488975.html 制御系なら俺に聞いてもいいぞ(2) pc2.2ch.net/tech/kako/1038/10380/1038094914.html 制御系なら、俺に聞け! pc3.2ch.net/tech/kako/1002/10021/1002176627.html 関連過去ログ ●●●くみこの組み込み相談室●●● pc3.2ch.net/tech/kako/988/988084737.html
- 508 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 04:59:05 ]
- ACサーボモータのサーボアンプなんかの中じゃ、
SH4クラスのCPUつかってるよ。 それくらいの速度じゃないと間に合わんだろ。 転流の制御とか、電流ループの制御周期は100マイクロ秒くらいじゃなかったっけ? 最近は、エンコーダ解像度もかなり高くなってきてるし、 そのほか通信タスクやデータ取得用タスクなんかも走らせなきゃならんだろうし。 数年前見た安川のサーボアンプの中がたしかSH4だたような・・・
- 509 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 05:45:05 ]
- 3MHzの8085まだ使ってます。 615KHzの8bitの製品も今作ってます。
>性能比:命令ごとのクロック数まで見なくても、基本クロックとバス幅と パイプラインとの積ぐらいの比率じゃないでしょうか?
- 510 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 07:44:37 ]
- パソコンのCPUは1クロックで数命令実行する能力がる
またバスは64ビットあり、1ワードは32ビットもある。32bitの加算が1命令で出来る 掛算も1命令で出来る 普通のマイコンがそこらの家電装置の中のマイコンだとすると バスは8とか4bit ワードサイズもそれに同じ、加算するだけで4とか8サイクルかかる。 掛け算はソフトで実現だから100サイクル近くかかる クロックが同じとしたって50倍近い処理能力差がある
- 511 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 07:52:21 ]
- 価格差1000倍なら納得。
- 512 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 07:54:39 ]
- で SH-4 とか DSP は1命令1サイクルに近づけている
SHは命令サイズをバス幅より小さくする事 DSPは命令とデータX,Yでバスを別ける事で それを実現しようとしている。 もちろん命令キャッシュも採用される事が多い さらに掛算を少ない命令サイクルで実現する機能も付いている。 ただし、パソコンのように、掛算が使い易いわけじゃない。 少なくともレイテンシがかかる場合が多い その間に他の命令を実行させる等の工夫が必要になる それでも普通のパソコンのCPUと比べると1〜2桁は処理速度が落ちるのが現状だね
- 513 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 08:00:14 ]
- >>511
今の手に入る8bitマイコンの代表のPICなんかは 200円程度で手にはいる 200*1000=20万円・・・・パソコン一式買っておつりがくる値段だね PICと性能比べたら1万倍以上の性能差があるわけで 例: PIC RAM 512 パソコン512M PIC 4MHz パソコン 2G Hz
- 514 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:45:10 ]
- >>508
電流ループの制御もマイコン制御でやっているのかい? シングルプロセッサで通信タスクとかも走らせていたらけっこう難しそう
- 515 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:50:25 ]
- もうマイコンなんて使わないですべてペンティアム4いっぱい貼り付けてやればいいじゃないか
適材適所だの値段だの考えるな
- 516 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 10:53:02 ]
- >>508
> 数年前見た安川のサーボアンプの中がたしかSH4だたような・・・ 手元にある安川のサーボアンプの中身を今見てみたら V853 uPD70F3025A-33 だった 安川と言えばSHだと思っていたのでちょっと意外
- 517 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:00:06 ]
- >>507
針が回転してるだろ モーターが入って無くてどうやって回るんだよ しねよ
- 518 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:21:54 ]
- まあモータと言えばモータか、ステッピングモータの一種だな
でもどっちかいうと単なるソレノイドだが
- 519 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 12:37:57 ]
- 「モーター+ラック&ピニオンでリニアモーターだ」
くらい強引な飢餓す。
- 520 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 12:38:53 ]
- おいおい、ステッピングモータはモーターそのものだろ。
〜といえば、どころじゃないよ。 馬鹿じゃねえのw
- 521 名前:デフォルトの名無しさん [2006/03/10(金) 12:39:44 ]
- ベクトル制御みたいな高速演算が要求されるものは
ハードでやればいいのに マイコンで演算させるメリットって何?
- 522 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 12:40:46 ]
- モーターのスペルはmotorであってrotatorじゃないよw
- 523 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 14:02:03 ]
- >>521
柔軟性、コスト
- 524 名前:名無し募集中。。。 mailto:sage [2006/03/10(金) 14:48:59 ]
- メレックのmcc05にコマンド送るだけでモーターが回るけど?
- 525 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 14:56:39 ]
- メレックのmcc05ってなに?
- 526 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 16:03:06 ]
- >>515
Pentiumは演算は早いだろうが、 割り込みのディレイやジッタが大きかったり、 キャッシュが効いたときと効かなかったときの実行サイクルの差がでかかったり、 チップセット使わないと、外部バスにデバイスつなげるのが困難だたり、 致命的なのは発熱だな。 とマジレスしてみる。
- 527 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 16:45:36 ]
- でも 32bitで内部クロック1GHz 内蔵RAM64K 内蔵フラッシュ 640kbyte で
16pin-DIPソケットなマイコンが100円ショップで売ってたらいいな
- 528 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 19:45:51 ]
- >>526
相対評価と絶対評価の区別がついてないなw それともWindowsだけがx86のネイティブな姿だと激しく勘違いしているか。 >>527 なにが「でも」なのか意味わからんなw
- 529 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:14:11 ]
- パッケージの背中が32x128dotの液晶表示器になってて、
32798水晶振動子内蔵で USB2インターフェイス内蔵で簡単にパソコンに繋げて
- 530 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:28:09 ]
- うーん。15万ぐらいかな
- 531 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:32:55 ]
- >>529
>32798水晶振動子内蔵で そんなもの要らない。
- 532 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:40:19 ]
- スマン32768だったよ。
- 533 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:50:37 ]
- 32768個のクリスタル?
- 534 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 20:57:33 ]
- いや、Hz タイムベースに使うのと背中の液晶表示機の駆動クロックに使う
消費電流は 32K水晶だけなら単3電池駆動で5年くらいのが欲しい。 そしてPLLで任意倍率のクロックが作れるといいなあ
- 535 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:14:50 ]
- 1チップMSX2+でおk
- 536 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:25:36 ]
- じゃ背中に 320x240dotのパネルを積んだ PLCC パッケージの MSX2+ で USB マスタでPCから書き込み出来るというのをお願い
- 537 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:56:40 ]
- ピッ
- 538 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 23:44:35 ]
- Interface 6月号を買おうよ
なんかついてくるらしいよ
- 539 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 01:24:49 ]
- >>524
> メレックのmcc05にコマンド送るだけでモーターが回るけど? 何かと思ったけどこれか www.melec-inc.com/a1202/a1202f01r2.pdf 1軸のパルスジェネレータか しょぼいな
- 540 名前:名無し募集中。。。 mailto:sage [2006/03/11(土) 01:45:25 ]
- パルスジェネレーターにしては高性能だと思うけど?
- 541 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 02:40:18 ]
- >>540
1軸だから当たり前と言えば当たり前だけど直線補間もないし このクラスのパルスジェネレータはどれも似たり寄ったり 差があるとしたら原点復帰モードが充実してることと絶対値指定ができることだけど これはどちらもソフトで簡単に対処できること FPGAで自分で作ってもどうにかなってしまう 差のつけようのない枯れた分野だね
- 542 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 04:40:26 ]
- >>527みたいなマイコンを\100ショップで売っててもハード屋さんは怖くて誰も使わないと思う。
秋葉で8085買い漁るのに疲れたらしく、MB91F36なる32bit使えるかい?とお客に聞かれた。 その辺に転がってるボードパクってuart端子だけつなげたいらしい。そりゃ使えますともさ。 あまりにもオーバースペックで笑ってしまうけど。トロンOS積まなくちゃ使えないんだよ。 高々4.8KのシリアルI/Oやるのに10倍の規模のソフトになっちゃうし。
- 543 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 04:50:48 ]
- >トロンOS積まなくちゃ使えないんだよ
んなこたぁない。 あと、トロンOSって、具体的に言ってくれよ、B-TRONか?w
- 544 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 05:01:30 ]
- ITRONですがな、もちろん。私以外にも早起きの方がいらっしゃいますね。
いや、もちろん裸でも使えるのは知ってますけど、たいていコンパイラと一緒に押し付けられる。
- 545 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 06:59:37 ]
- この前 ダイソーの100円ショップで ヤニ入りハンダ コテと ハンダ吸取器を見た。 100円じゃなかったけどね
- 546 名前:名無し募集中。。。 mailto:sage [2006/03/11(土) 15:46:25 ]
- >>541
よく知らないんだなってことは判った
- 547 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 16:29:26 ]
- >>546
で、何を知ってるの? チミは
- 548 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 19:22:02 ]
- ハンダ吸い取り器が\100はすごいな。・・あ、\100じゃなかったみたいね。でも安そう。
- 549 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 19:22:46 ]
- 100円なら超欲しいな! ・・・でも100円じゃないならちょっとなぁ・・・
- 550 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 19:26:53 ]
- 210円だそうだ
k-tai.impress.co.jp/cda/article/todays_goods/27892.html
- 551 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 07:21:57 ]
- 210円ハンダ吸取器は結構使える ポンプ式のも持ってるがすぐ詰まるし吸取り力が今一つ、
さらにヒータが暖まるまでの時間がロスだったので、最近コレばっかり使ってる
- 552 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 01:39:43 ]
- 突然すみません。質問なのですが、
よくメモリデバイスの仕様に書かれている、16ビットデバイスとか32ビットデバイス というのはどういう意味なのでしょうか? 16ビットデバイス=16ビット単位でしかアクセスできないデバイス のことだと思っていたのですが、実はバイトでもアクセスできたりして いまいち意味がわかりません。 もしかしてバス幅のこと?
- 553 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 03:27:20 ]
- バス幅でいいとおもう。たいていの奴は16/32ならバイトアクセスも可能だけど、
たまに16/32オンリーというのもあるね。そのかわり速いとか。
- 554 名前:552 mailto:sage [2006/03/17(金) 18:11:03 ]
- >>553
レスありがとうございます。 容量4MビットのSRAMのデータシートを読んでみたところ、 2Mワードx16bitと書いてあるものの、データバス幅が16bitになっていることと、 256kx8bitのSRAMではデータバス幅が8bitであることを確認しました。 バス幅で間違いないようですね。 ところで普通、 2Mワードx16bit(容量4Mビット)のデバイスが使用するアドレスの幅(制御ソフトから見えるアドレス空間)は a) 4M(1番地につき1バイト) b) 2M(1番地につき) のどちらなのでしょう? なぜこんなことが疑問なのかというと、 16ビットデバイスに対して奇数番地をアドレスバスで指定したら、 メモリはどう振舞うのかを考えたところ、もしかしたら16ビットデバイスというのは アドレス1番地につき2バイトのデータを保持できるのではないか、と思ったからです。 考え方めちゃくちゃですかね?
- 555 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 18:29:58 ]
- >>554
どっちになるかはプロセッサによる。 DSPのようにワード単位にアドレスが割られるものと 汎用CPUのように、アドレスは1byte単位でバイトアクセスフラグが付くタイプがある
- 556 名前:デフォルトの名無しさん [2006/03/18(土) 21:14:15 BE:164012235- ]
- すみません。三菱のシーケンサーでフレーミングエラーって出ます。
フレーミングエラーって何のことですか? どうすれば先に進めますか?教えてください。
- 557 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:39:25 ]
- TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
- 558 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 21:41:57 ]
- >>556
そんなの業者に聞いてくれよ。 RS232CならボーレートかSTOPが合ってないんじゃないの?
- 559 名前:デフォルトの名無しさん [2006/03/18(土) 22:10:25 ]
- >>558
それが休みなんでつ。 このままでは帰れません。 どうしたらいいですか?
- 560 名前:デフォルトの名無しさん mailto:sage [2006/03/18(土) 22:17:12 ]
- >フレーミングエラーとは調歩同期(ASYNC)において、ストップビットのあるべき位置に
>ストップビットがなかった(論理0だった)場合に表示されます。フレーミングエラーが >頻繁に表示される場合は、データ長、パリティビットの有無などの設定が間違っている可能性があります。 ボーレート、データ長、パリティ、ストップビット長の設定を確認すること
- 561 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 13:25:14 ]
- >>558
シーケンサの型名も書いてない時点で「ネタ / どあほ」のいずれかだろ。 無視しろ。
- 562 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 13:50:32 ]
- 俺的には>>561のように何も生産的な発言をしない(まあむしろできないと思われるが)
くせに口調だけ尊大な奴こそ無視したいけどなw だいいち、(まあググればわかるようなことではあるが)>>556の質問内容からすれば 具体的な機種名が必要とはちょっと思えないんだが。
- 563 名前:オレモナ〜 mailto:sage [2006/03/19(日) 14:08:28 ]
- > 無視したいけどなw
無視しとけばいいじゃん。 できないのは、厨房だからですか?
- 564 名前:552 mailto:sage [2006/03/19(日) 18:50:19 ]
- >>555
私の意図したのは汎用プロセッサのことなので、 a) 4M(1番地につき1バイト) という認識であっていたのですね。 具体的には(プロセッサがビッグエンディアンの場合) *(unsigned long*)0x8000 = 0xaabbccdd; としたあと、 unsigned char tmp; tmp = *(unsigned char*)0x8001; とするとtmpの中身は0xbbということなんですね。 今まで、メモリが2Mワードx16ビットの場合は、もしかしたら tmpの中身は0xccになるのではないか、と疑っていました。 (1アドレスにつき2バイト保持できるRAMだと思っていた) 自分の理解が正しかったと安心できました(^^) ありがとうございます。
- 565 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 19:04:13 ]
- >>564
なんかこう、実メモリアドレス空間とバス幅とメモリ配置について思いっきり勘違いしている悪寒。 1ビット幅のメモリを使う場合、通常バス幅のメモリを並べる。 8ビット幅のメモリを使う場合、通常バス幅の1/8のメモリを並べる。 以下同様に。 16ビット幅のメモリを使う場合と32ビット幅のメモリを使う場合も同様なので、 仮に0番地のメモリにアクセスしたときにはメモリの最初のワードにアクセスする。 しかし、2番地のメモリにアクセスしたときには前者は2番目のワード、後者は最初のワードにアクセスする点が異なる。 ちなみに、1ビット幅のメモリを使い、0番地にアクセスすると8個のメモリの最初のワードにアクセスすることになるわけだ。 #だからこそDRAMカードはメモリチップがずらっと並ぶわけで。
- 566 名前:オレモナ〜 mailto:sage [2006/03/19(日) 23:01:33 ]
- >>565
> しかし、2番地のメモリにアクセスしたときには前者は > 2番目のワード、後者は最初のワードにアクセスする点 > が異なる。 はぁ? 32bitメモリとか書いてるから、プロセサも最低 32bit 幅だと思うが、2番地のアクセスだと前者 (=16bit メモ リ) でも、(0番地アクセスとは違うメモリチップだけど) 最初のワードがアクセスされると思うけど。 32bit ⇒ 16bit のバスサイジングでもやってるのか?
- 567 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 23:18:36 ]
- >>566
その通り。別のチップの最初のワードだね。
- 568 名前:556と559 [2006/03/19(日) 23:31:38 BE:699782988- ]
- >>556
>>559 です。 すみませんでした。昨日は急いでいて説明が不足してましたが、 実は私の弟が制御の仕事していて現場にネットがないので フレーミングエラーって何か調べて、と珍しく電話がありました. 自分なりにあれこれ検索を続け、ヒットした内容をそれぞれ伝えましたが、 それが役立つ情報かどうか、読んでいる私にはさっぱりわかりませんでした。 検索中、ヒットしたここに辿り着き、皆様に頼らせていただきました. 時々、2ちゃんねらーでしたが、こんなスレがあることもはじめて知りました。 こんな難しいことを話し合っている皆様すごいです。 今、弟に昨日の確認をしたところ、 一応エラーの表示はでるものの、動作しているそうです。 いつも深夜まで残業漬けの弟を、一人暮らしの部屋だけど 早く帰宅させたかった、制御素人の姉でした。 お騒がせし、そして大変お世話になりまして、皆様ありがとうございました。^o^
- 569 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 23:35:54 ]
- まったく解決になってないわけだが。
- 570 名前:デフォルトの名無しさん mailto:sage [2006/03/19(日) 23:54:41 ]
- >>562
> 何も生産的な発言をしない まさに、>>562 の発言がそうなわけだが w
- 571 名前:デフォルトの名無しさん [2006/03/20(月) 00:17:52 ]
- ハードはつくらないの?
- 572 名前:552 mailto:sage [2006/03/20(月) 01:10:48 ]
- >>565
>>566 >>567 私、まだわかってないみたいですね・・・ 皆さんのアドバイスを元に私なりに整理してみました。 添削していただけると幸いです。 前提条件(簡単化のため) プロセッサがサポートするバイトオーダー: ビッグエンディアン プロセッサが使用可能なデータバス幅 : 16bit プロセッサに接続しているメモリのデータバス幅 : 16bit メモリのスペック:2Mワードx16bit (容量4Mbit) このシステムで使用したいメモリの総容量: 4Mbit この前提条件の場合、プロセッサには1個のメモリが接続される構成となる。(メモリとプロセッサのデータバス幅が同じなので) また、 このメモリの0番地からプロセッサが16bitリードすると、メモリの最初のワードが読み込まれる。 2番地からプロセッサが16bitリードすると、2番目のワードが読み込まれる。 1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。 (プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話) さらに unsigned char tmp; *(unsigned long*)0x0000 = 0xaabbccdd; tmp = *(unsigned char*)0x0001; をするとtmpの中身は0xbbということになる。(メモリの最初のワードから読み出される) そして、 この場合、プロセッサが使用可能な物理メモリ空間の大きさは512k(4M / 8) どんなもんでしょうか?
- 573 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 01:15:28 ]
- どうみてもめちゃくちゃです。
本当に(ry
- 574 名前:552 mailto:sage [2006/03/20(月) 01:26:07 ]
- そうですか・・・まだぜんぜんだめですか・・・
どの辺がとくにだめでしょう・・・? (`・ω・´)
- 575 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 01:46:19 ]
- いや、こういっちゃ何だが偉そうに回答している人間の方もよく分かってないと思われるw
もっとシンプルに考えればいいんだよ。 プログラマは普通ハードウェアがどんな実装をされているか、まで考える必要はない。 そのための抽象化でしょ。 1つのメモリアドレスにには1バイトのデータが割り当てられる。 データバスが何ビットだろうと、バイト単位のアクセスがRead-Write-Modifyで 実現されていようが、バスの8本だけを使う方法で実現されていようが、そんなことは無関係に。 ただそれだけのことでしょ。
- 576 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 02:01:35 ]
- >>575
よくわかってないだろお前
- 577 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 07:34:41 ]
- >>572
SRAMにはバイト単位のアクセス許可(16ビットの上位8bitだけ下位8bitだけを有効にする) が付いてる事が多いから、そうだとすると >1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。 >(プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話) は可能だけど、 そうじゃない場合には無理だね。 > メモリのスペック:2Mワードx16bit (容量4Mbit) は 容量が32Mbitか 4Mbyteかの間違いか 256Kワードx16bit (容量4Mbit) >この場合、プロセッサが使用可能な物理メモリ空間の大きさは512k(4M / 8) を成立させるには 256Kワードx16bit (容量4Mbit) が正解なのだろう
- 578 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 08:21:08 ]
- マンドクセから、チップとコントローラの仕様によって変わってくる、ってことにしようぜ
- 579 名前:552 mailto:sage [2006/03/20(月) 20:37:59 ]
- >>575
そうですよね。 ソフトから見た場合、1アドレスには1バイト割り当てられるという理解で良いんですね。 (ハード屋さんがアドレスバスの接続を間違えたりしなければ) >>577 >SRAMにはバイト単位のアクセス許可(16ビットの上位8bitだけ下位8bitだけを有効にする) >が付いてる事が多いから、そうだとすると 私がデータシートを読んだSRAMも、確かにLowerByteとUpperByteを区別してデータを取り出せる仕様になってました。 >>1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。 >>(プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話) >は可能だけど、 そうじゃない場合には無理だね。 自分で書いておいてナンなんですけど、これって2回のバストランザクションが発生しますね。 (アドレスバスには0番地しか出ていないから、1番地の上位ハーフワードを同時には取り出せない) こういうのはコンパイラ&アセンブラがうまいこと2回のバイトリードに振り分けるんでしょうね。 >256Kワードx16bit (容量4Mbit) が正解なのだろう そうです。間違えてました。すみません。(めちゃくちゃってこのことか・・・) いやー、おかげさまですっきりしました。 何度もありがとうございました(^^)
- 580 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 21:19:28 ]
- アラインされてないメモリアクセスを、2回に分割するのはCPUだろ。
アクセスするアドレスがアラインされているかいないかをコンパイラ・ アセンブラ・リンカが知ることの出来ないケースがあるから。 CPUがサポートしてなかったら、バスエラー。
- 581 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 21:30:36 ]
- >>580
> アラインされてないメモリアクセスを、2回に分割するのはCPUだろ。 そうなの? > アクセスするアドレスがアラインされているかいないかをコンパイラ・ > アセンブラ・リンカが知ることの出来ないケースがあるから。 具体的にはどんなケースでしょ?
- 582 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 21:43:52 ]
- a.c: int *foo(){ return (int*)0x12345; }
b.c: int bar(){ return *foo(); }
- 583 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 21:44:29 ]
- x86系のCPUは奇数番地からのワードread/writeを2つのバイトアクセスにCPUが別けてくれる
他の多くのCPUは奇数番地からのワードアクセスでは例外を出すだけ どうしてもそれでアクセスしたいなら自分で例外内でバイト2つに別けるとかするのだろうが そんな仕掛けをわざわざ入れてる奴はみた事がない。 コンパイラが自動的に奇数番地からのワードアクセスを バイトアクセスにしてくれるのも見た事がない。
- 584 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 22:09:45 ]
- このスレのレベルだと、>>582 が >>581 の答えとわ
かってない奴が多そうな予感。
- 585 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 22:10:37 ]
- >>583
OSレベルでなんとかしてくれることもある。 ttp://www.linux.or.jp/JF/JFdocs/LinuxAlpha-FAQ-1.html >不整列アクセス(Unaligned access): > 他の RISC CPU と同様に、Alpha でもメモリのアクセスに際しては 自然境界に整列している必要があります。 >例えば、メモリから 4 バイトの整数を読み込む場合には、先頭のアドレスが 4 の倍数となっている必要があります。 >同様に、8 バイトの整数を読み込む場合には、8 の倍数のアドレスから読み込む必要があります。 >もし、CPU が正常に整列していないワードをアクセスする場合には、 CPU はカーネルにトラップをかけて警告を出力します。 >そしてカーネルは、不整列アクセスをエミュレートし、何事もなかったかのようにユーザプロセスを実行します >(ただし実行速度は大幅に落ちます)。
- 586 名前:デフォルトの名無しさん mailto:sage [2006/03/25(土) 16:14:39 ]
- >>584
もっと人間を信じろ。そこまでアホばかりではない。
- 587 名前:デフォルトの名無しさん mailto:sage [2006/03/25(土) 17:04:45 ]
- >>586
だが、信じすぎてはいけない。そんなに賢い人間はそうはいない。
- 588 名前:デフォルトの名無しさん [2006/03/30(木) 01:32:26 ]
- GCCで、特定のメモリ範囲だけを使わないメモリマップを作りたいのだがどうしたらいい?
その領域に、ダミーの変数なり関数を配置しておけばOKだと思うのだけど・・・。
- 589 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 01:45:59 ]
- >>588
つLDスクリプト
- 590 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 04:11:11 ]
- 変数ならアクセスしなきゃいいだけだが、関数だとその番地にロードされるコードができるね。
「ロードすらしてはいけない」なら関数はだめだな。 俺もCPUのバグレポートで「この番地は使ってはいけない」所には使わない変数を配置した。
- 591 名前:デフォルトの名無しさん mailto:sage [2006/03/30(木) 22:09:01 ]
- なんで入出力って非同期転送にならないんでしょうか?ウエイト入れるくらいならキューにしちゃえばいいのに。
なんでウエイト入れなきゃなんないんですか?
- 592 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 00:49:53 ]
- >>591
ヒント:キャパシタ
- 593 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 06:04:12 ]
- >>591 巨視的な世界での電圧の変化って、ピュー太の内部CLKと比べると充分に遅いから、
っていう理解じゃだめ?
- 594 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 13:31:53 ]
- >>591
相手が遅いから 制御系レベルの入出力とデバイスドライバレベルの入出力がごっちゃになってるんじゃないかという前提で、 相手が早いのか遅いのか、同期で読まなくちゃならないのかバッファリングして読んでもいいのかが決まってない世界が制御系。
- 595 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 20:07:49 ]
- なんか凄いな。いつから皆さんエスパーになったのよ?w
俺には>>591は説明不足の舌足らずな質問にしか見えんが。 端的にいって意味不明ですけど。
- 596 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 20:30:48 ]
- それは君の経験不足に起因していると思うよ
しなくていい経験というのもあるから、不足というと語弊があるかもしれんが
- 597 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 20:44:34 ]
- いや凄いってのは当然皮肉なんですがw
仮に591読んで「意味が分かる」とすればそれこそ経験不足でしょ。 自分の妄想や思い込みを抑えて、謙抑的に書いてあることを書いてあるままに 読み取る訓練ができてないんだよそりゃ、悪いけどw
- 598 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 20:58:22 ]
- ゆとり教育の想像力低下を危惧すべきだな。
- 599 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:23:18 ]
- 想像と妄想とは違うよw
確かに、591の文章の意味を想像することはできる。 しかし、入出力、非同期、キュー、ウェイト、などという一般的過ぎることばだけでは、 何についてのどのレイヤーの話をしているのか全く分からない。 可能性は無限に「想像」可能、といっていい。 それを勝手に「ああそのことね…」なんて早とちりして回答するのは 妄想以外のなんでもないよ。
- 600 名前:デフォルトの名無しさん mailto:sage [2006/03/31(金) 21:36:52 ]
- 確かに君は経験豊富なようだ。
ただし煽られる側のな。
- 601 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 00:05:18 ]
- もっと書いてくれれば答えガイがある質問かもしれん。
ぱっと見では勘違い電波質問にしか見えんが。 俺の受けた電波は、タイミングチャートを見たことも無い 間違って組み込みやらされてるPGから発信されたものだといっている
- 602 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 00:05:29 ]
- まとめると、入出力は非同期転送にできるし、キューを使いたければ使えば
いいってことだな。
- 603 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:09:12 ]
- つーか3/32に見えるな、エイプリールフールってことかいね。
- 604 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:17:49 ]
- でスレ呼んでみたが・・・
確かにひどいなこれは。聞いたことある名詞を適当に並べて、 とりあえず接続詞を入れてみましたってな文章だな。
- 605 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:32:23 ]
- >>597
何も分かってないか只の釣りだということが読み取れるから 基礎を講釈してるんだろ
- 606 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:37:34 ]
- I/Oは、CPUの動作している高速なサイクルじゃ、バスにぶら下がってる外部入出力装置が認識できる電位まで立ち上がる事が出来ないんだよ。
だから十分にWAITを入れて電位がHigh(Low)に達するまで待たなきゃならんの。 たとえキューを使おうが、非同期にしようが、I/Oで保持する信号の変化を待つ為にWAIT入れなきゃ行けない。
- 607 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:39:55 ]
- 超高速な世界から見たら、配線コードそのものがコンデンサーみたいな物だからなぁ・・・。
- 608 名前:デフォルトの名無しさん mailto:sage [2006/03/32(土) 01:46:49 ]
- >>606
答えになってないなw 仮に591の質問の意図が君の思っているとおりであるとしても。 I/Oで保持する信号の変化を待つ為にWAIT入れなきゃ行けない。 それはその通り。 「だから」CPUとI/Oの間にキューが入れば、非同期でできるのになんで、と聞いているのに。
|

|