MIPSはこの先生きのこれる事が出来るか [無断転載禁止]©2ch.net

1774ワット発電中さん2016/05/02(月) 17:32:38.51ID:QMkHT/Xh
90年代後半にゲーム機で席巻するも00年代後半に猛烈なARMの巻き返しを受け
風前の灯のMIPSアーキテクチャを語るスレ

53774ワット発電中さん2017/04/15(土) 20:38:45.08ID:xE0/koy2
MIPSの%hi()や%lo()は癖があるね

%hi(value01)
   32bitの値の上位16bitを取り出す
%lo(value01)
   32bitの値の下位16bitを取り出す
ここで注意が必要なのは
・value01の15bit目が1の場合、
 %hi(value01)の値はvalue01の上位16bitの値に1を加えたものになる
 このように使うことで$4にvalue01の正しい値が入る模様
lui $4, %hi(value01)
addiu $4, $4, %lo(value01)

 addiu $4, $4, imm16はimm16が符号拡張されて$4に加算されるので
 そのための%hi()の値が調整されてる模様
 なぜかMIPSは符号拡張が好きみたい

54774ワット発電中さん2017/04/15(土) 20:39:53.13ID:xE0/koy2
64bitの場合は

%highest(value01)
64bitの値のbit48からbit63までの16bitを取り出す
%higher(value01)
64bitの値のbit32からbit47までの16bitを取り出す
%hi(value01)
64bitの値のbit16からbit31までの16bitを取り出す
%lo(value01)
64bitの値のbit0からbit15までの16bitを取り出す

ここでも注意が必要で
・value01の47bit目が1の場合、
 %highest(value01)はvalue01のbit48-63の16bit値に1を加えたものになる
・value01の31bit目が1の場合、
 %higher(value01)はvalue01のbit32-47の16bit値に1を加えたものになる
・value01の15bit目が1の場合、
 %hi(value01)はvalue01のbit16-31の16bit値に1を加えたものになる

64bitイミディエイトのロードは下記のようになる模様
lui $4, %highest(value01)
daddiu $4, $4, %higher(value01)
dsll $4, $4, 16
daddiu $4, $4, %hi(value01)
dsll $4, $4, 16
daddiu $4, $4, %lo(value01)

55774ワット発電中さん2017/04/15(土) 21:06:01.96ID:xE0/koy2
mips64r6では新しくdahi、datiが追加され下記のように
64bitイミディエイト値を読み込める模様
%highest()、%higher()、%hi()、%lo()の仕様はmips64r2と同じ

lui $4, %hi(value01)
dahi $4, %higher(value01)
dati $4, %highest(value01)
daddui $4, $4, %lo(value01)

注意:MIPS64R6はあまり使われない命令を削除し、新しい命令を追加したもので
MIPS64R5、MIPS64R3、MIPS64R2などとはバイナリ互換性はありません。

56774ワット発電中さん2017/04/18(火) 18:31:05.00ID:YFaFclpS
>>55
dadduiじゃなくてdaddiuですよ
dahiとdatiのオペランドも違ってます

lui $4,%hi(value01)
dahi $4,$4,%higher(value01)
dati $4,$4,%highest(value01)
daddiu $4,$4,%lo(value01)



>>50
mipsel-linux-gnu-asに-march=mips32r2をつけないとエラーがでますね

$ mipsel-linux-gnu-gcc -S -o test01.s test01.c
$ mipsel-linux-gnu-as -march=mips64r2 -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-gcc -o test01 test01.o

57774ワット発電中さん2017/04/18(火) 18:52:27.07ID:YFaFclpS
ミス
こうです

$ mipsel-linux-gnu-gcc -S -o test01.s test01.c
$ mipsel-linux-gnu-as -march=mips32r2 -a=test01.lst -o test01.o test01.s
$ mipsel-linux-gnu-gcc -o test01 test01.o

58774ワット発電中さん2017/04/18(火) 19:47:22.30ID:epCQHyiq
浮動小数みたいにメモリ経由じゃだめなん?

59774ワット発電中さん2017/04/18(火) 22:34:35.71ID:YFaFclpS
MIPS64R2のCコンパイラだと倍精度浮動小数点の値はこういう感じで読み込んでる
ld $2,%got_page(.LC1)($28)
ldc1 $f1,%got_ofst(.LC1)($2)
$28にはGOT(Global Offset Table)のアドレスを関数の冒頭で読み込んでる
MIPS64R2にはPC相対ロード命令がないから面倒になるね
あらかじめリテラルプールの先頭のアドレスをレジスタに読み込んでおいて
そこからのオフセットで読み込めばもっと効率よくなるね
MIPS32R6、MIPS64R6ではPC相対ロード命令が追加されてる

60774ワット発電中さん2017/04/29(土) 06:45:16.31ID:HJ7qszEI
>>59
MIPS64R2のコンパイラで通常のコンパイルをすると
グローバル変数は下記のように1命令で読み込んでるぞ
ld $4,%got_disp(test01)($28)

ただ、1つのオブジェクトファイルで参照できるグローバル変数の個数に制限があるようだ
int型だと約8000個まででそれを超えるとコンパイルは通るがリンク時にエラーが出る
あくまで1つのオブジェクトファイルから参照できるグローバル変数の数で
グローバル変数の宣言はもっと多くの数を宣言できるようだ

61774ワット発電中さん2017/04/29(土) 06:49:28.60ID:HJ7qszEI
あくまで一つのオブジェクトファイルから参照できる数の制限で
たとえば2つのC言語のソースa.cとb.cにわけてコンパイルして
a.o、b.oに分かれるようにしておけば
a.c、b.cはそれぞれ約8000個のグローバル変数を参照できるようだ

62774ワット発電中さん2017/04/29(土) 07:05:08.96ID:HJ7qszEI
あと、あくまで

ld $4,%got_disp(test01)($28)

で読み込んでるのはグローバル変数のアドレスだね

63774ワット発電中さん2017/06/20(火) 19:44:10.77ID:HzUei2fa
新MIPSコア、Mobileyeの「EyeQ5」に搭載へ
http://eetimes.jp/ee/articles/1706/20/news034.html

MobileyeのEyeQ 5に搭載のCPUコア、Imaginationが発表
http://techon.nikkeibp.co.jp/atcl/news/16/061607990/?ST=print
英Imagination Technologies社は、機能安全規格の対応に向けた64ビットCPUコア「MIPS I6500-F」を発表した。
同社の既存64ビットCPUコア「MIPS I6500」に、機能安全を確保するための各種仕様を追加したものである。

64774ワット発電中さん2017/07/20(木) 21:48:59.41ID:bC58O0y8
☆ 日本人の婚姻数と出生数を増やしましょう。そのためには、☆
@ 公的年金と生活保護を段階的に廃止して、満18歳以上の日本人に、
ベーシックインカムの導入は必須です。月額約60000円位ならば、廃止すれば
財源的には可能です。ベーシックインカム、でぜひググってみてください。
A 人工子宮は、既に完成しています。独身でも自分の赤ちゃんが欲しい方々へ。
人工子宮、でぜひググってみてください。日本のために、お願い致します。☆☆

65774ワット発電中さん2017/12/27(水) 13:55:25.55ID:22mySsTl
家で不労所得的に稼げる方法など
参考までに、
⇒ 『武藤のムロイエウレ』 というHPで見ることができるらしいです。

グーグル検索⇒『武藤のムロイエウレ』"

OCF1RPKZWQ

66774ワット発電中さん2018/01/11(木) 07:35:59.01ID:3ywVNp09
>>43
Linux 動かすレベルならARM で良いだろ。

67774ワット発電中さん2018/03/19(月) 06:19:15.20ID:/rubYDld
落ちるぞ

68774ワット発電中さん2018/03/21(水) 06:57:18.71ID:eYz/ks2k
MIPS64R6のgcc-7.2.0をビルドする時のメモ

どんなオプションを与えてもうまくコンパイルできないので
下のようにconfig.gccを書き換えてgccコンパイル時に実行するconfigureに与えるオプションに
--target=mipsisa64r6el-linux-gnuabi64を指定することでうまくコンパイルできた
gcc-6.4.0も同様にしてうまくコンパイルできた


gcc-7.2.0/gcc/config.gcc改変(gcc-7.2.0/gcc/config.gccの2103行目の
mipsisa64r6*-*-linux*)
の前に下の部分を追加)
mipsisa64r6*-*-linux-gnuabi64)
default_mips_abi=64
default_mips_arch=mips64r6
enable_mips_multilibs="yes"
;;

69774ワット発電中さん2018/03/21(水) 07:03:30.50ID:eYz/ks2k
上記でコンパイルしてできたMIPS64R6のgccでは-mnan=2008を指定する必要があるようだ
こんな感じ
mipsisa64r6el-linux-gnuabi64-gcc -mnan=2008 -o test01 test01.c -lm

70774ワット発電中さん2018/04/06(金) 22:07:40.42ID:61H2Ggfo
落ちるぞ

71774ワット発電中さん2018/04/21(土) 20:18:49.19ID:oZg5nFQ3
アセンブラでのコーディングは
ARMよりMIPSの方が好き
条件実行はいまいち使う率が少なくて
それよりもレジスタが多い方が使いやすい
分岐もディレイスロットでペナルティが少ないってのもある

32bitの話

72774ワット発電中さん2018/04/27(金) 15:48:26.66ID:HMnzkVdI
レジスタはMIPSの方が多いな
ARMのThumb-2と同じような高コード密度の命令セットのmicroMIPSなんてのもあるし

73774ワット発電中さん2018/04/27(金) 16:14:57.64ID:WYyxhzhN
いまポピュラーなMIPSって
Microchipの奴かな?他にある?

74774ワット発電中さん2018/04/27(金) 17:14:51.54ID:Gij4KkGH
無い

75774ワット発電中さん2018/04/29(日) 12:59:54.24ID:d2WYD48g
M6250を使ってみたいんだが
チップが無い

76774ワット発電中さん2018/05/01(火) 15:36:05.47ID:jXm46az1
MIPS32R6系のM-Classのチップはまだないようだな
MIPS32R6では命令が一新されててあまり使われない命令が削除されてたりするようで
MIPS32R5以前とバイナリ互換性がないからね
Microchipが採用するかどうかもわからない

77774ワット発電中さん2018/05/02(水) 15:23:34.02ID:3ZP8H2g4

78774ワット発電中さん2018/05/12(土) 05:03:55.57ID:xh0J4Yee
nanoMIPS32は命令長が16bit、32bitの他に極少数の48bitの命令がある命令セット

nanoMIPS32 Instruction Set TechnicalReference Manual
https://s3-eu-west-1.amazonaws.com/downloads-mips/I7200/I7200+product+launch/MIPS_nanomips32_ISA_TRM_01_01_MD01247.pdf

79774ワット発電中さん2018/05/12(土) 05:05:34.53ID:xh0J4Yee
nanoMIPS32の48bit命令

addiu rt, s32       レジスタと32bitイミディエイトの加算(ソースとディスティネーションが同じレジスタ)
addiu rt, gp, s32    グローバルポインタと32bitイミディエイトとの加算
addiupc rt, s32     PCとイミディエイトの加算
li rt, s32          32bitイミディエイトのロード
lwpc rt, addr      PC相対アドレス指定の32bitロード
swpc rt, addr      PC相対アドレス指定の32bitストア
lapc rt, addr       PC相対アドレスのロード(addiupcのエイリアス)

80774ワット発電中さん2018/05/12(土) 06:57:52.25ID:Txiazbh9
いいね!

81774ワット発電中さん2018/05/21(月) 09:38:16.68ID:+YPLsCwK
ユニークで個性的な確実稼げるガイダンス
暇な人は見てみるといいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

WCSBV

82774ワット発電中さん2018/06/17(日) 19:53:50.54ID:9ZdIGC5B
https://matsuri.5ch.net/test/read.cgi/i4004/1528299072/165n
> 165ナイコンさん2018/06/17(日) 19:14:30.45
> >>142
> MIPSはフラグレジスタがないという致命的な欠陥がある。キャリーフラグがないために桁あふれで例外を投げるため、
> PSのソフトのいくつかはこの致命的な欠陥仕様のためにフリーズするものがあることがソフト解析で分かっている。
> MIPSの仕様を知らず、Cの知識だけでコードを書くとこのようなバグを埋め込んでしまうのである。MIPSはCに向いてないと言えよう。

83774ワット発電中さん2018/06/17(日) 21:40:47.91ID:oZItUFgv
MIPS信者が昔のPC板の8bitCPUスレで暴れてます。

引き取りにきてください。

84774ワット発電中さん2018/06/17(日) 23:43:12.46ID:CbZ0Wx76
>>82を書いたヤツの方がヤバい

85774ワット発電中さん2018/06/17(日) 23:43:53.40ID:CbZ0Wx76
MIPSを知らずしてMIPS批判

86774ワット発電中さん2018/06/18(月) 01:07:56.20ID:ZcV9bv/E
え? フラグがないのはMIPSの欠陥だろ?

87774ワット発電中さん2018/06/18(月) 02:44:22.26ID:3VYNb2mL
やだぷー

88774ワット発電中さん2018/06/18(月) 05:05:06.53ID:ZcV9bv/E
あっちのスレ見てきた。惨いな。

誰だよ。キャリーフラグがないと速くなるとか嘘かまして逃げてる奴は。CPU設計したことないのかよ。

89774ワット発電中さん2018/06/18(月) 08:18:57.60ID:354EXwOM
今時フラグ信者か

90774ワット発電中さん2018/06/18(月) 08:39:06.96ID:ZcV9bv/E
こいつみんな大好き74283ディスりやがった。ゆるさねぇ。

91774ワット発電中さん2018/06/18(月) 08:53:54.63ID:zHTz+eGE
加算器を習いたての初心者が暴れてるのか

92774ワット発電中さん2018/06/18(月) 09:06:28.13ID:ZcV9bv/E
>>91
おまえさ。いいかげん8bitスレで暴れるの辞めろよ。
MIPSは腐っても32bitCPUだぞ。なんで相手が8bitCPUなんだよ。32bitCPUのプライドないのかよ?
もうMIPSは生き残れないかもしれないって生まれたこのスレだけがMIPSスレで唯一生き残ってる。この現実を受け止めろよ。

93774ワット発電中さん2018/06/18(月) 09:07:36.60ID:zHTz+eGE
人違いだ

94774ワット発電中さん2018/06/18(月) 09:19:22.24ID:zHTz+eGE
ごく普通の数やアドレスも1個のレジスタで表せない8bitCPUは欠陥
レジスタが少ないのは欠陥
リードモディファイライト命令が無いのは欠陥
非破壊演算が出来ない2オペランドアーキテクチャは欠陥
インオーダーでしか処理出来ないCPUは欠陥
SIMD命令が無いCPUは欠陥
単純な命令でも数クロックかかるCPUは欠陥
除算命令がないCPUは欠陥
固定長命令は欠陥
可変長命令は欠陥
アドレス変換機能がないCPUは欠陥

>>92に言わせると欠陥の無いCPUなんて無さそうだな

95774ワット発電中さん2018/06/19(火) 05:20:13.06ID:uDw8aB+G
では、一体誰があちらこちらの8bitスレでMIPSの普及活動してんだろうか。
MIPS屋=荒らし、になってるぞ。

96774ワット発電中さん2018/06/19(火) 14:32:37.04ID:faF2QrAJ
8bitとMIPSを比べちゃかわいそうだよな
回路規模を極端にケチって性能は二の次のマイコンと
アーキテクチャーで商売してるところ

MIPS命令は非常にきれい
ARMはもうちょっと実用寄り
x86はつぎはぎでぐちゃぐちゃだが性能は良い
PICはおもちゃ
AVRはきれいだけど所詮8bit

97774ワット発電中さん2018/06/19(火) 14:34:24.51ID:faF2QrAJ
マーケティング的にはMIPSは負け
ARMとx86の勝ち

98774ワット発電中さん2018/06/20(水) 10:13:24.16ID:jRAjzOpS
x86への開発リソース、あのぐちゃぐちゃを保守改良する努力は
人類挙げての無駄だったねと
振り返る日が来るだろうか

99774ワット発電中さん2018/06/20(水) 10:49:50.68ID:i9YobRBz
Intelの莫大な利益の再投資のおかげでセミコン産業は微細化を続けることができた。
その結果、消費電力は下がり、クロックは上昇を続け、4GHzを超えるCPUがたった2万円で買える時代になった。
その恩恵は人類社会システムのIT化を加速させとても便利になった。パソコンは普及し、ネットへの投資も加速。
さらには、ARM等も微細化タダ乗りして容易に高速化でき普及することに成功した。スマホの爆発的普及も忘れてはないだろう。

一方、MIPS信者は実現不可能な妄想ばかりで嘘をつき、
投資家を騙し、実装に何度も失敗し、IT界においてお荷物でしかなかった。
今更謝っても許してもらえるとは思わないがほんとに申し訳ない。

私たちはこのスレを最後に消えてなくなるので許してほしい。

100774ワット発電中さん2018/06/21(木) 17:27:59.35ID:jIHeawxr
米AIスタートアップのWave ComputingがMIPSを買収
〜非ノイマン型プロセッサを開発
https://pc.watch.impress.co.jp/docs/news/1128108.html

> Wave Computingは2018年3月に、
> MIPSの64bitマルチスレッドコアを同社の次世代「Dataflow Processing Unit (DPU)」に
> 採用することを発表(英文リリース)していた。
>
>  同社は非ノイマン型の「データフロー型コンピュートアーキテクチャ」を開発し、
> DPUと称するプロセッサを搭載した、機械学習の学習/推論処理に特化したシステムを販売している。
> 同社では、CPUやGPU、FPGAと比較して1,000倍高速な機械学習性能を謳う。
>
>  今回の買収により、MIPSの抱える350件以上の特許および
> 200件のライセンス供与をWave Computingが取得するかたちとなり、
> 買収後は、MIPSはIP事業部門として名前が残り、MIPS IPソリューションのライセンス事業は継続される。
>
>  Wave ComputingのCEOであるDerek Meyer氏は、
> 両社の技術を組み合わせることで、AIや深層学習に理想的な、
> 単一の「データセンター・ツー・エッジ」なプラットフォーム製品を開発/提供するとしている。

101774ワット発電中さん2018/06/27(水) 12:59:02.36ID:epwyoudQ
>>99
高性能MIPSがキャンセルされた最大の理由って
SGIがIntelのあ痛にうむ幻想に引っかかった事じゃね?

102774ワット発電中さん2018/06/27(水) 13:49:01.94ID:Dsk3o3NA
今はトランジスタが少ない代替コアはいくらでもある。組み込みはCPUコアを自由に選べる時代。
ICカードの中には6502が選ばれてるものすらある。PCではx86が使われ続けた理由は莫大なソフト資産を継承するため。
組み込みでは技術者は使い慣れたコアを使う傾向があるが、ARMと違って幸運なことにMIPSのソフト資産はほとんどないし、
MIPSしか使えない技術者もいない。つまり選ぶ理由が別にないのだ。
中には大学でMIPSを研究した輩が就職してMIPS採用する場合があるくらいだろう。
AIで別に向いてるわけでもないのにPythonが使われる理由と同じだ。
だが彼らは実務での開発経験がないためにたいてい納期は送れ、コストが莫大になる傾向がある。

103774ワット発電中さん2018/07/03(火) 22:02:39.03ID:TUeFXinq
YK5

新着レスの表示
レスを投稿する