【Cortex-】 やっぱARMっしょ part10 【AxRxMx】©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ARMデバイス、ARMボードについて組込系ARM全般のスレ
時代は「やっぱARMっしょ」
省電力ニーズの高まりを背景に海外チップベンダーはもとより国内勢も参戦
ホビーとしてのマイコンからスマートデバイス用プロセッサまで
ARMコアを持つチップやボードのラインナップは今まさに百花繚乱
【前スレ】
【Cortex-】 やっぱARMっしょ 9 【AxRxMx】
http://wc2014.2ch.net/test/read.cgi/denki/1399381482/ >>444
> 実際、ARM 32bitのMIPS/MHzは良くないし。
https://en.wikipedia.org/wiki/Instructions_per_second
↑に載ってる表を見ても各ARM製品と近い時代のMIPSや
Alpha、PowerPCと比べても特に劣ってるようには見えんけど
何を根拠にそう言ってんの? >>444
> レジスタが少ないと指定ビットが減らせられ、Tumbo命令セットに一役買い、バイナリ長を減らせらた。
> …てな俺の認識。
スマン、まるでわかってない人だったか。 >>446
それはあったり前。
ここは電気・電子板だからなw RISCの多くは演算はレジスタ-レジスタ間でしか行えない
ARMも同じく演算はレジスタ-レジスタ間でしかできない
x86などのCISCはレジスタ-レジスタ間およびレジスタ-メモリ間で演算ができるので
RISCよりレジスタが節約できる設計
32bitのARMはレジスタ間でしか演算ができないのに実質13本しかレジスタがない
(R13はスタックポインタ、R14はリンクレジスタ、R15はプログラムカウンタなので)
あまりにも少なすぎるということ
その方が組み込みには向いてるが、
現在のスマホのようなGHzのクロックで数GBのメモリでぶん回すには貧弱なアーキテクチャ
それはARM自身も認識してたからこそ64bitアーキテクチャで大幅にレジスタを増やした メモリーレジスタ間での演算を可能にするとアーキテクチャ的に大変なの?
命令とかは直交性失わせずに増やせそうだけど >>452
RISCって、なんの略語だか知ってる? > 32bitのARMはレジスタ間でしか演算ができないのに実質13本しかレジスタがない
じっさいコンパイラが吐いたコードみればそんなもんで足りてる場合が
多いんだよなあ。
足りない場合でもアクセス頻度が高いものからレジスタに割り付けるから
性能への影響は大きいものではないし。 関数の呼び出しは速くなると思うよ
レジスタ渡しできる引数の数が増える
パフォーマンス面ではそれよりも
64bitのARMがSIMD命令で倍精度浮動小数点演算に対応したのと
暗号化命令が追加されたのが一番大きい
それとSIMD命令がIEEE754に準拠したので
科学技術計算に対応できるようになったこと 最近のGCCはARMv7-Aを指定してアセンブラ出力すると
Unifiedアセンブラを出力するようになってるね
Thumb-2を指定した方がコードサイズが短くなるので有利
ARMv7-AではAndroidでもUbuntuでもThumb-2がデフォルトだよね >>453
それは名前の説明であって、もとの質問になってないだろ
コストがあまり変わらないならメモリとレジスタの間の演算だってできた方が
便利なんだから。
どれくらい変わるのか、レジスタ間だけの演算することで効率がどれくらい
変わるのか聞いてるわけで。
バカのくせにドヤ顔すんなよ。 >>452
メモリアクセスに時間が掛かるから効率的なパイプライン動作をかんがえると難しいのかと。
ttp://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0363fj/Chdjccac.html
ここ読むとLDR命令でメモリから読み込んだレジスタは次命令にさえ更新が間に合わずレイテンシが発生しています。 それに、メモリアドレスをどう指定するのか?って問題もある
間接にしろ、それが平均命令長を大きくする方向になるのならば
メモリ帯域やらキャッシュ容量にも影響を与える訳で
レジスタ数とメモリアドレス指定と命令長との関係は難しい話だし〜 >>457
おいおい、逆切れかよw
>>458>>459氏が解説書いてくれたから読んどけ。 >>458
> 効率的なパイプライン動作をかんがえると難しいのかと。
これ読んで思い出した。
懐かしの AMD K6ー3のデータシートが、すっげ〜よ。面白かった。(モチ英文)
CISCの代表であるx86命令から、どの命令をそのまま内部RISCに実行させ、どの命令をテーブルからオペコードを引くのか。
メモリアクセスが必要な命令なら、どう分解してどうパイプラインに流し込むのか。
これがデータシートか?って思える位の、内部動作が事細かに解説してある。
K6のアーキテクチャの美しさと、x86命令が厄介さがよくわかる。 まあ、外野の人間が思いつくような事は中の人がとうに検討済みだろうな 足りないときは1024レジスタあっても足りないから16で十分
メモリを直接演算対象にすると固定長命令にならんし
命令コードが少し縮んだところで実行時間は変わらんし ワークステーションやサーバ向けに開発されたRISC CPUの多くが
汎用レジスタ数が32本、そのうち1本はゼロレジスタ
CPU設計の専門家がいろいろ検討した結果がこれ
だからいろいろな理由があるのだろう
CPU設計の素人の我々が考えてもしょうがない
ARMはもともと16bit長の命令のThumbが出てからモバイルで普及したCPU
価格面から16bitのメモリバスを扱えなかったモバイル機器で普及した
だから32bitのARMの命令セットはモバイル向けに特化する形で拡張されてきた
しかし、Cortex-A15からARMはサーバ向けも意識するようになり
4GB以上のメモリも扱えるように
Large Physical Address Extension (LPAE)が実装されるようになった
64bitのARMは主にスマホ、タブレット向けだが
サーバ向でも通用するように設計されたから
ARMv8-Aのようなアーキテクチャになった
32bitARM → モバイル向け、小規模な組み込み向け
64bitARM → スマホ、タブレット、サーバ、スパコン向け
もともと想定されてる用途が違う
こんな記事も出てきてる。
SVEは64bit命令でのみサポートされる新しいベクトル命令
ARMの新ベクトル命令「SVE」、ポスト京に採用へ
http://eetimes.jp/ee/articles/1608/25/news036.html x86に慣れてるとARMのレジスタが足りないとは思えない 初心者です、少し教えてください
STMBee 基板と ST-Link/v2 を使おうとしています (STMBeeのDFUは使わないので消去しました)
VCP(USB仮想COM)を使う設定をしたいのですが、インストールがうまくいきません
STのサイトから STM32 Virtual COM Port Driver VCP_V1.4.0_Setup.exe をダウンロードしてインストール
Windows のデバイスマネージャーを見ても ポート(COM/LPT) の所にアイコンが出てこない、認識できていないのかな
ST-Link/v2をつないでも認識しません
プロパティをたどると、「このデバイスを開始できません。 (コード 10)」 とメッセージがあります
試したPC Windows7 32bit , Windows10 64bit
USB端子側(STMBee)から何か情報を送らないと認識しないのでしょうか >>464
> CPU設計の専門家がいろいろ検討した結果がこれ
その時に使えるプロセス・外部メモリ・コスト・テクノロジーで、レジスタ数は変わる。
32本が最適だとは限らない。 スマホ、タブレットで64bitはいらないと思います。 >>469
ワークステーション向けに開発されたRISCプロセッサの多くが32本だからね
ざっと調べてみたがこれら全部32本
POWER、MIPS、SPARC、DEC Alpha、PA-RISC、Apollo PRISM、i860、MC88000
(SPARCはレジスタウインドウで多数のレジスタを持ち
ソフトウェアからアクセスできるレジスタの32本のうち、
関数コールでレジスタの一部が自動的に切り替わる構造)
これだけのRISC CPUのレジスタが32本なのは理由があるんだろう >>472
> これだけのRISC CPUのレジスタが32本なのは理由があるんだろう
レジスタ指定ビットを、5ビット幅にしたから。そんだけ。 レジスタの数が2の乗数ってのはなんか適当感があるというか、コンパイラとかの
作成するルーチンの粒度みたいなものでこれだけあれば十分みたいな数はもっと
半端な数であってもおかしくなさそう。
レジスタ増えました、と急に倍とか4倍って根拠あるのかと思うよね。
じゃあもっと増やしたらどこまでリニアに性能上がっていくのかな、と。
メインメモリ分のレジスタがある巨大CPUの特許とる >>474
レジスタを操作する命令コードは少なくともレジスタ数ぶんのビット幅を使う。
32個のレジスタを指定するには5ビット必要。仮に24個だとしても5ビット必要。 >>474
> レジスタの数が2の乗数ってのはなんか適当感があるというか
>>473 の言うように命令中のレジスタ指定の関係が大きい
半端な数にすることもできる(10以上だと違う命令と解釈するとか)けど構造複雑になって使いにくいだけだし コンパイラとかじゃわからないけど、素でブートアップルーチンとかOSカーネルとかアセンブラで
書いていると「あー、ここでもう一つレジスタあったら」とかよくあることなの? >>477
昔アセンブラ使ってた時は何回か経験したわ メリットとデメリットがあるのに命令幅の都合だけで決める馬鹿はなかなかいない。 >>471
>スマホ、タブレットで64bitはいらないと思います。
そうでもない。最近はソフトを組む能力の無い℃素人がプログラムしてるから
メモリは食うはCPU時間は食うわで、CPUの能力が生かせてない。
やってる事はたいした事無いんだけどなwww おじいちゃん、今はメモリもいっぱいあるしクロックも高いんだからプログラムは
保守性の方が大事なのよ >>481
℃素人なんだから保守性が高いプログラムなんて書けないだろうwww
メモリもクロックもCPUも贅沢三昧でバッテリが1日持たないような
携帯端末しか無い世の中だが、能力が無いんだからしょうがないなwww >おじいちゃん、今はメモリもいっぱいあるしクロックも高いんだから
この板の住人とは思えない発言だな。これがゆとりか。iPhoneのスペックぐらいググれよ。
ただでさえモバイル向けのARMはクロック当たりの性能がインテルの1/4以下なのに。 このスレに限らず℃爺さんには触れてはいけないとあれほど・・・ ショボいiPhoneやiPadの性能で、これを高性能、贅沢三昧と言ってしまう頭の弱さには呆れる。
LINEとツイッターしか使ってない℃馬鹿だね。 煽りだけとかそりゃ反論できないよな。1GBや2GBで贅沢、使いきれないって℃素人PGだからな。
だいたいメモリの食うコードの書き方ってなんだよ。今はなんでもライブラリ呼ぶだけじゃねーか。
それが64bit化したら速くなるのかよw だいたい32bitARMが糞遅かったはの32bitだからじゃねーだろw
ARMでコード書いたことないのか。ほんとARM℃素人がなんでこんなとこにいるかね。 2Gしかメモリを乗せられない32ビットで2GBを使うアプリが贅沢じゃないのかwww
すげー基地外が居たもんだwww > 2Gしかメモリを乗せられない32ビットで2GBを使うアプ
なにかほんといろいろ勘違いしてて怖い。絶対プログラム書いたことない℃素人だわ。 >>483
>ただでさえモバイル向けのARMはクロック当たりの性能がインテルの1/4以下なのに。
iPhoneやQualcommのSnapdragon 820の独自コアは
普通の整数命令はそこまで遅くないぞ
いつの時代のARMの話してるんだ? iPhone 6s Plus
http://browser.primatelabs.com/geekbench3/3515465
Single-Core Score 2521
ARM @ 1.85 GHz 1 processor, 2 cores
http://browser.primatelabs.com/geekbench3/6243002
Single-Core Score 7156
Intel Core i7-6700K @ 4.01 GHz 1 processor, 4 cores, 8 threads
2521 / 1.85 = 1362.7027027027027
7156 / 4.01 = 1784.5386533665837
1784.5386533665837 / 1362.7027027027027 = 1.309558313656557 >>476
レジスタのビット数だって、2のn乗である必然性はないんだよね。 samsung Galaxy S7 Edge
https://browser.primatelabs.com/geekbench3/7219580
Single-Core Score 2220
ARMv8 @ 1.79 GHz 1 processor, 8 cores
http://browser.primatelabs.com/geekbench3/6243002
Single-Core Score 7156
Intel Core i7-6700K @ 4.01 GHz 1 processor, 4 cores, 8 threads
2220 / 1.79 = 1240.2234636871508
7156 / 4.01 = 1784.5386533665837
1784.5386533665837 / 1240.2234636871508 = 1.4388847700568401 ID:gr67FQ8氏はARMのこといろいろ詳しそうだけど妙な決めつけでいろいろ変な発言
するのが残念。 >>493
2のn乗では無くて4の倍数になってる。 >>497
どうだろう? 例えば彼(彼女)はNEONのコードを書いたことありそうだけどあんたはなさ
そう。 >>502
で?
使ったこと無い癖に無理すんなよ℃素人www >>503
で?
君が無知なのは変わらんけど? w >>504
お前馬鹿だろwww
最近の世の中のプロセッサが4ビットの倍数になってるのに
MC14500B持ち出して何が言いたいんだwww
僕ちゃん詳しいってかwww
℃素人バカスwww >>496
>2のn乗では無くて4の倍数になってる。
4の倍数ってことは12とか28とかもあるの? >>506
12bitワードのコンピュータってのは結構作られている
DECのPDP-8とか著名なのもあったりするんだな、これがw >>505
こいつ本当の馬鹿だな
2^nなら、n>1なら必ず4の倍数だし、n.>2なら必ず8の倍数になるわ。こいつ学校で指数計算を理解できなかったのか。
たがらと言って32bitCPUだからってアドレスバスは32本とは限らないし、64bitCPUだからってアドレスバスが64本出てるとは限らない。データバスもな。 >>506
12はある。TLCS12を使ったことがある。
28は知らない
但し、12は元々キャラクタマシン(ASCIIを1度に読み書きできる6ビット)
の流れを汲む。当時のADが12ビットだったからと言う理由もある。BCDなら3桁だね。
4ビットは4004に始まる十進1桁を表現出来るからだが、4で割り切れないコンピュータだと
BCDをパックするのに不便だからありえない。
その上、上位互換を作るなら倍倍にしないと不便だから4,8,16,32,64,128となるのは必然。
リレーの置き換えを狙ったMC14500持ち出すおば加算には理解出来ないだろうけどw >>508
頭悪すぎwww
そんな理由でビット数が決まってる訳じゃないw
℃素人って想像で知ったかするんだなwww レジスタ幅やアドレス、データバスの幅が決まる理由なんて一言も書いてないが。2^nの性質について説明しただけ。
自分の大発見が実は中学生にも笑われるレベルだったからって興奮するなよw >>505
> MC14500B持ち出して何が言いたいんだwww
お前のバカさを言いたいだけ w
そもそもワード長が4の倍数でないマシンなんていくらでもあるし
https://ja.m.wikipedia.org/wiki/36%E3%83%93%E3%83%83%E3%83%88 >>511
単なる歴史的事実を知らない癖に知ったかしたいだけだろうにw
聞かれても無いのに>>507みたいな誰でも知ってるような事をしゃしゃり出て
書いちゃう辺りに性癖wがもろ出てて笑えるwww >>512
で、それは今でも駆逐されずに主流なのかいwww >>514
> 単なる歴史的事実を知らない癖に知ったかしたいだけだろうにw
お前のことな w >>515
安価もまともに付けられないのかwww
それともわざと?wwwwww >>513
なるほどBCDが4bit区切りが都合がいいからか。CPU設計者はたぶんそんなこと微塵も考えてないよ。
8bit=1byteが定着してそんなアホなこと考慮しなくても勝手にその制約満たされるからな。
それに32bitの次は36bitとか40bitとかありえないでしょ。上位互換関係なくセンス悪すぎ。
むしろデータバスの制約を考慮すると32bit、64bitが自然。SDRAMは64bit幅だから。
おまえコボラーだろ? >>516
今でも駆逐されずに主流なのかい ⇒ 歴史的事実を知らないバカ
の流れも理解できてないのかよ w >>517
> それに32bitの次は36bitとか40bitとかありえないでしょ。
ありえないと、決めつけは良くないなぁ。
事実、NECのメインフレーム ACOSは36bit機だよ。 >8bit=1byteが定着してそんなアホなこと考慮しなくても勝手にその制約満たされるからな。
6ビットでなく8ビットが定着したのが4ビットの倍数だから。
>CPU設計者はたぶんそんなこと微塵も考えてないよ。
だから知ったかすんなってwww
Hキャリービットは誰が作ったんだよwww 36は4の倍数じゃ無いとかw
ID:8R89zE+Gってアホだな。 >>507
DSPだと24bitとか48bitとか56bitとか。 >>517
SDRAMが64bit?
モジュールの話? >>522
リンク先も読めないバカ w
より小型のマシンは18ビットワードを使用し、ダブルワードが36ビットとなった。
PDP-1/PDP-9/PDP-15
EDSAC は17ビットを「短語(short word)」、35ビットを「長語(long word)」とする、これと似たアーキテクチャであった。 >>512を読み返せば読み返すほど
ID:8R89zE+Gの馬鹿さ加減で笑えるwww >>517
もう一つ、インテルが32bit延命の為にIAー32に導入したのが36bitアドレッシング。
ただ使われる様になる前に、AMD x64アーキがメジャーになってしまい、黒歴史になったw
> むしろデータバスの制約を考慮すると32bit、64bitが自然。SDRAMは64bit幅だから。
それはDIMMの規格であって、SDRAMのバス幅ではないよ。
SDRAMそのものは未に8bitと16bit幅。
グラフィクスになると、3色だから親和性がいい24bitが基本。 >>520
やっぱりでたなCOBOL専用機。
現行機が36bitじゃないってことはやはりセンスが無かったんだよ。
そもそもそんなセンスがないもの作れるってことはすべて独自仕様カスタムみたいなもの。
標準化された規格がない時代だからできること。制約が要件のみの開発。 >>527
言い返せなくてバカとしか言えなくなったのか w
哀れだな >>528
グラフィクスでもCPUバスに合わせる為に8ビットアルファチャネルを追加して
32ビットにしたりするけどな。
そもそもグラフィック自体、各色16ビットとか浮動小数点で扱う時代になって来たし。 >>528
PenProの頃だから延命じゃないし、PAEは今でも使われてるよ。nxビット使うときはPAE必須だし。
おれも未だに32bitOSで32GBメモリ積んで使ってる。
amd64もPAEを多段に拡張してそのまま使ってるから、PAEオンにしないとlongモードには移行できない。 >>533
あや、そんなに古かったんだ。
これは俺の認識間違いだわ(汗) 映画なのですが、集団ストーカー・電磁波犯罪被害の内容にそっくりです。
暇があったら、見て下さい。
クリープゾーン : マインド・コントロール
https://www.amazon.co.jp/dp/B0000ESKVY/ref=nosim/?tag=nicovideo07_st1-22&creative=380333&creativeASIN=B0000ESKVY&linkCode=asn&ascsubtag=7_vi_B0000ESKVY_sm7584036_u!OBx1[[HcA]_1471948674_a08163 今の32bitのUbuntuはPAE必須だな
Windowsと違って32bitでも4GB以上のメモリを扱える
Linuxはカーネルでドライバを用意してるのでそれができる
デスクトップ向けのWindowsがPAEにフル対応しなかったのは
ドライバもPAEに対応しなければ4GB以上のメモリを扱えなかったからだろう
今の64bit Windowsの普及を考えればマイクロソフトの判断は正しかった Macは8G、16Gと際限なくメモリを増やしちゃうけど、なんかWindowsは4Gでいいや、とそのままだな。 メインメモリ6GBのスマホ
64bitに移行して正解だった
最上位モデルは6GBメモリ搭載、6.8型モデルも――
ASUS、「ZenFone 3」シリーズ3機種を発表
http://www.itmedia.co.jp/mobile/articles/1605/30/news144.html ワード長を9bitの倍数にしとくとパリティとか色々と使えて便利〜 Pythonだとちょっとした計算プログラムでも64bit版の方が1.5倍くらい速い
Pythonだと64bitの方が有利
Pythonは整数型が多倍長演算だからなのかな 4倍精度浮動小数点演算は64bitの方が32bitより倍速い
桁数の多い演算は64bitの方が有利 > 4倍精度浮動小数点演算は64bitの方が32bitより倍速い
4倍精度浮動小数点演算の速度が性能に影響するような用途なら
ソフト演算なんかせんだろ。 ■ このスレッドは過去ログ倉庫に格納されています