アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
20年前の議論 (スコア:3, 興味深い)
32bitっていっても何ギガもメモリ積めるわけじゃないし、スピードも80286と変わらないし80386って何なの?っていってたの思い出しました。あの時も80286が80386が必要な領域を侵しているから性能を上げないようにしているだのなんだのと。
たぶん、そのうちItaniumの後継の後継あたりが主流になるのかも。
Re:20年前の議論 (スコア:2, 参考になる)
流石に 64bit は DB やビデオ編集くらいしか使い道思いつかないけど、
6.5万や3.2万毎に桁上がり処理、64KB毎のデータ分割処理なんて想像したくもない。
TomOne
Re:20年前の議論 (スコア:1)
それより問題は64KB境界の方ですね。nearとfarを使い分ける環境になんかもう戻りたくないです。
ところで、64bitだと大容量ファイルをメモリにマップできるだけのアドレス空間があるのでちまちまとfread64やfseek64で読み出す必要がなくなって便利だな、とか思うわけですが(まさか16EBを超えることは…)
64bitプログラミングに慣れた頃、32bitの不便さに気づくのではないかと思います。
愚かさによって説明できるものを悪意のせいにしてはならない
Re: (スコア:0)
昔から不思議だったことに、nearやfarに苦しんでいる人が異様に多いということがあります。
FM11やMSX2も論理アドレス空間は64KBで、それより多い物理メモリを積んでいて、メモリマッパーでアクセスしますが、
6809やZ80は糞CPUだという悪口は聞いたことがありません。
みんなそういうものだと思っていたのではないかと思います。
8086も実はそういうものなんですが、どうして8086の場合だけリニアアドレッシングのできない糞というさんざんな評価をされるんでしょう。
みんな誤解しています。8086はやればできる子じゃないんです。
いわれのない叩かれ方をする8086が不憫でなりません。
Re:20年前の議論 (スコア:1)
68000のような他の16bitCPUと比べると、アドレッシングが複雑になって使い勝手が悪かったんです。
Z80や6809は「CPU」が元々16bitアドレッシングしかできないものですし、一緒にはできないでしょ。
当時の8bitパソコンでは、64KBのメモリ空間は狭すぎて何らかの方法で拡張してましたが、
複雑で低機能なバンク切り替えを採用している機種に比べれば、MSXなんかはかなり洗練されてた方だと思います。
使い勝手の悪いメモリマップはそれなりに愚痴られていたかな。
もし、これらの8bitCPUと同世代で、「物理アドレスは16bitあるけど、アドレスはセグメントとオフセットの2要素組で指定する」ような8bitCPUがあったとしたら、CPUの仕様についても、かなり酷評されたんじゃないかな。
#絶対番地が使えない仕様の6502って感じ?
Re:20年前の議論 (スコア:1)
16bitCPUで、16bitを超えるアドレッシングを実現していたからです。
16bitのアドレッシングしかできないなら、「16bitを超えるアドレッシングの仕様」についての文句なんて出てこないでしょう。
> 8086も「CPUが元々」16bitリニアアドレッシングできませんよ。
「16bitリニアアドレッシングしかできない」の書き間違い? 8086は16bitのリニアアドレッシングはできますね。
で、16bitを超えるアドレッシングの実現については、
MSXなど: CPUは16bitのアドレッシングしかできない。バンク切り替えなどのCPU外の機能によって、16bitを超えるノンリニアなアドレッシング機能を実現
8086: CPU自身が、16bitのリニアなアドレッシングをベースに、16bitを超えるノンリニアなアドレッシングを実現している
68000: CPU自身が 16bitを超えるリニアなアドレッシングを実現している。
となっているわけで、その16bitを超えるアドレッシングの仕様について文句たれてるんですから、文句を言う先は「MSXの周辺回路設計仕様」もしくは「8086の設計仕様」でしょう。
「MSXのバンク切り替えはリニアじゃないので使いにくい。Z80のアドレッシング仕様は腐ってる」なんて文句は矛先がずれてるでしょ。
> Z80にはメモリ空間とI/O空間のそれぞれ独立した16bitアドレス空間がありましたが、「リニアアドレッシングできない」と叩かれていた覚えはついぞありません。
そりゃあ、「VRAMがメモリ空間の後半とI/O空間の前半に連続して配置」されてるような設計のパソコンがあったりしたら、
「どうしてVRAM全体をリニアにアドレッシングできないんだ」って文句を言う人は出るでしょうけど、
そんなメモリ空間とI/O空間を「同じ目的の連続した領域」として使うような設計のパソコンなんて見たことないですからね。
アドレッシング空間全体がリニアにアクセスできなくても
プログラムの要求仕様として「一度にアクセスしたい領域」がリニアアドレッシングの範囲に収まってるなら困らない。
バンク切り替えでもセグメントでも構わない。
8086でも、smallモデルで収まるようなプログラムを作ってるうちは、結構使いやすいんですよね。
「一度にアクセスしたい領域」全体をリニアにアドレッシングできなくなったら、とたんに不便になるんです。
まあ、そもそもそういう「16bit超のリニアアドレッシングが欲しくなる状況」で「8086を使ってる」時点で「CPUの選択を間違えてるだろ」という問題はあると思いますが。
Re: (スコア:0)
1980年ころに市場に出回っていた16bit CPUがこれくらいだから。
パーソナルコンピュータというカテゴリーのCPUに使われて、
あらゆるタイプのアプリに使用され、一部で64KB以上の
まとまったデータ領域(配列やらグラフィックスやら)を
「多数のプログラマ」から要求されたCPUだから。
Z8000はヤマハが使っていたけど、あの音楽用コンピュータで
アプリを書く人なんてほんの僅かでしょう。
文句を言っても聞く人がいないから、後世にも残らない。
> 8086も「CPUが元々」16bitリニアアドレッシングできませんよ。
意味不明。
セグメントレジスタをい
Re: (スコア:0)
>知ったかぶりの思い込みの激しい連中...
x86系パソコンにMS-DOSを売りまくっていたゲイツですら "brain-damaged" と切り捨てた
80286のことなんか、みんなもう思い出したくもないんだよ。そのへんの事情を分かってやれよ。
いいかげんACで多量に内容の薄い文章読まされるのも苦痛だしな。
Re: (スコア:0)
> 1980年ころに市場に出回っていた16bit CPUがこれくらいだから。
ああ、他のアーキテクチャを何も知らない無知が故の批判ですか。
> > 8086も「CPUが元々」16bitリニアアドレッシングできませんよ。
> 意味不明。
すみません。16bitリニアアアドレッシング「しか」できませんよ、の間違いです。
長いけど、ここだけ引用すると、
> 「なんで16ibt CPUなのに8bitと同じことをやらないとだめなんだ?」
> という声となっただけだよ。
8086にはその設計目標が
Re: (スコア:0)
> 16bitCPUで、16bitを超えるアドレッシングを実現していたからです。
68000(と16032)は他の16bitプロセッサに比べても特別にリッチです。
特別にリッチなものが、さも一般的であるかのように語るのはいかがなものかと思いますが。
> そりゃあ、「VRAMがメモリ空間の後半とI/O空間の前半に連続して配置」されてるような設計のパソコンがあったりしたら、
あ、あなたも同じことを言ってる。
わたしはX1ユーザーで、VRAMはI/O空間にあったのですが、VRAMとバックストアへの描画ルーチンが共用化できずに悲しい思いをしたことがありま
Re: (スコア:0)
8086は劣っているというのはナンセンスだと思います。
それよりも、
68000の数年後に倍以上のトランジスタを使って作られた80286が、
68000より劣っていることのほうを問題にすべきでしょう。
ソフトウェア的に16ビットの8086や80286と、
ソフトウェア的に32ビットの68000を比較する時点で変ですがね。
Re: (スコア:0)
> 80286のことなんか、みんなもう思い出したくもないんだよ。そのへんの事情を分かってやれよ。
どういう事情か知らないけど、思い出したくはないがコメントする(それも一行)という心理は理解しかねます。
しかもコメントの内容も間違ってるし。
> いいかげんACで多量に内容の薄い文章読まされるのも苦痛だしな。
あなたに限らず、反論ができなくなって捨てゼリフを吐くというパターンもどうかと思います。
ここは議論する場所であって、捨てゼリフOKな場所ではありません。(たぶん)
反論なら稚拙でも馬鹿にしませんし、歓迎しますよ。
Re:20年前の議論 (スコア:1)
更に言うとこの場合、8086と比較すべきなのはおなじ16bitプロセッサである68000でしょう。あちらは24bitメモリ空間をリニアにアクセス出来たので、「同じ16bitプロセッサの癖に8086は……」となったわけです。
さすがに判ってるだろうと思うけれど念のため書いておくと、68000/010はACUが16bitなので16bitプロセッサです。データレジスタやアドレスレジスタが32bitになっていてもそんなの関係ありません。そして68020以降でACUが32bitになったから(つまり内部回路が全て32bit処理を行えるようになったので)、68020以降は32bitプロセッサとなりました。
ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
Re: (スコア:0)
64ビットならファイルを丸々メモリマップ・・・ (スコア:0)
実際にやってみればわかります。