アカウント名:
パスワード:
x64版Windowsで64bitコード←→32bitコード間の呼び出しができない(thunkがない)のは、Itanium版Windowsの仕様に合わせたから。そのせいで64bitコードと32bitコードをシームレスに実行できるAMD64のメリットがWindowsにおいては全く生かされていない。
言わばItaniumの負の遺産。後方互換性にこだわるMicrosoftのことだから、128bit版Windowsが出るまでこの仕様に悩まされそうorz
Windows NTでセグメントが使えない(少なくともユーザーモードのCプログラムから隠蔽されている)のがRISCプロセッサの負の遺産だとは思わないけどなあ。それは今だから言えることかもしれないけど、128bit版Windowsが出る頃になったらWOW64の仕様についてもやっぱり同じような感想を持つんじゃないかな。
いや, UNIXはセグメントありますよ. 例えば初期の VAX-11 [roguelife.org]のころからセグメンテーション機構を利用していますし, セグメンテーションバイオレーションなんてエラーはセグメント機構を使ったメモリ保護が無ければ出ようがないでしょう.
それに, セグメントの評判を落としたことにインテルの責が無いとは言えないでしょう. 386登場以前は1セグメントで取り扱えるアドレス空間が64k(16bit)に限られていて, ちょっとプログラムの規模が大きくなるとプロセス内でセグメントを動的に設定しなおすというアクロバティック
少々極論が過ぎるんじゃないかな。Itaniumが企画された当時、ハードウェアによる命令実行の並列性の向上はいずれ限界が来るだろうという予測はまあまあ妥当で、それを打開するためにVLIW、その改良であるEPICの採用に踏み切ったのは技術的にチャレンジだったと言えるでしょう。コストや8ビットのハード&ソフト互換性などの制約から、やむなく64k/セグメントを採用した8086とは質的にかなり違う。互換性をかなぐり捨てて、あまり例のないアーキテクチャを採用したわけですしね。残念ながら成功したとはいえないものの、それは結果論で、チャレンジがなければEPICやそれに類するアーキテクチャの限界も見えてこなかったわけだからその点だけでも意味無しとは言えんと思いますが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
最初のバージョンは常に打ち捨てられる。
64bit版Windowsのタコな仕様はItaniumのせい (スコア:2, 興味深い)
x64版Windowsで64bitコード←→32bitコード間の呼び出しができない(thunkがない)のは、Itanium版Windowsの仕様に合わせたから。
そのせいで64bitコードと32bitコードをシームレスに実行できるAMD64のメリットがWindowsにおいては全く生かされていない。
言わばItaniumの負の遺産。
後方互換性にこだわるMicrosoftのことだから、128bit版Windowsが出るまでこの仕様に悩まされそうorz
Re: (スコア:0)
Windows NTでセグメントが使えない(少なくともユーザーモードのCプログラムから隠蔽されている)のがRISCプロセッサの負の遺産だとは思わないけどなあ。
それは今だから言えることかもしれないけど、128bit版Windowsが出る頃になったらWOW64の仕様についてもやっぱり同じような感想を持つんじゃないかな。
Re: (スコア:0)
現在でもグーグルのNaClなどで活用されていますから、RISCプロセッサというよりもセグメントのないOSつまりUNIXの負の遺産ですね。
8086で、セグメントについての無知ゆえの勘違い思い込みからトラウマになった人が影響力を持ったからかもしれない。MSは一役買ってるな。DRとインテルは無罪。
Re: (スコア:3, 興味深い)
いや, UNIXはセグメントありますよ. 例えば初期の VAX-11 [roguelife.org]のころからセグメンテーション機構を利用していますし, セグメンテーションバイオレーションなんてエラーはセグメント機構を使ったメモリ保護が無ければ出ようがないでしょう.
それに, セグメントの評判を落としたことにインテルの責が無いとは言えないでしょう. 386登場以前は1セグメントで取り扱えるアドレス空間が64k(16bit)に限られていて, ちょっとプログラムの規模が大きくなるとプロセス内でセグメントを動的に設定しなおすというアクロバティック
Re:64bit版Windowsのタコな仕様はItaniumのせい (スコア:0)
少々極論が過ぎるんじゃないかな。Itaniumが企画された当時、ハードウェアによる
命令実行の並列性の向上はいずれ限界が来るだろうという予測はまあまあ妥当で、
それを打開するためにVLIW、その改良であるEPICの採用に踏み切ったのは技術的に
チャレンジだったと言えるでしょう。
コストや8ビットのハード&ソフト互換性などの制約から、やむなく64k/セグメントを
採用した8086とは質的にかなり違う。互換性をかなぐり捨てて、あまり例のない
アーキテクチャを採用したわけですしね。
残念ながら成功したとはいえないものの、それは結果論で、チャレンジがなければ
EPICやそれに類するアーキテクチャの限界も見えてこなかったわけだから
その点だけでも意味無しとは言えんと思いますが。