パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

昔のコンピュータにあった、致命的なデザインミス」記事へのコメント

  • by suzushiro (30819) on 2009年06月18日 12時57分 (#1589021)
    リトルエンディアンとセグメント方式
    • by nekopon (1483) on 2009年06月18日 13時06分 (#1589049) 日記
      リトルエンディアンが致命的なら、「PDP バイトオーダ」は…なんと表現される?
      親コメント
      • by oku (4610) on 2009年06月20日 15時37分 (#1590705) 日記

        VAX も Alpha もリトルエンディアンでしたよね。

        # 大昔、確か SUN だったと思うけど、
        # 他社製のプロセッサにエンディアン切り替え機能があるのを指して、
        # 「他社にはエンディアンの異なるレガシー製品をサポートする必要があるからです」
        # とかどこかに書いていたような。

        親コメント
        • by Anonymous Coward

          6800はビッグエンディアンだが、68系と言われることもある6502はリトルエンディアンだしね。

          16032とV60もリトルエンディアン。
          TRONチップは、本人はリトルエンディアンでやりたかったらしいが産業界からの反発によりビッグエンディアンに。
          ARMもリトルエンディアンだったが、アップルからの要請によりビッグエンディアンに対応。
          http://www.tronshow.org/2009/j/exhibitor/01/index.html [tronshow.org]

          SPARC,PAはビッグエンディアン。

          MIPSは最初からバイエンディアンかな?DECStation3100(R2000です)はリトルエンデ

    • by masaru_al (15915) on 2009年06月18日 13時14分 (#1589058)

      8086のセグメント方式は納得ですが、リトルエンディアンがそんなに致命的な方式とは思えないがなぁ。

      親コメント
    • by Anonymous Coward

      セグメント方式がダメなのではなくて、セグメントサイズの上限が64KBしかなかったことが問題でしょう。
      現代のCPUでもセグメントに類する機構が存在することは珍しくありません。セグメントではなくGlobal Pointerとか呼ばれてるだけで。むしろ一切存在しないのはx64くらい。

      • by SteppingWind (2654) on 2009年06月18日 15時11分 (#1589250)

        セグメント方式がダメなのではなくて、セグメントサイズの上限が64KBしかなかったことが問題でしょう。

        あれって今想像するに, コンカレントCP/M [wikipedia.org]みたいに1プロセスあたり64KBの空間(それで十分だと思っていた)を並列して効果的に動かすための機構として想定していたんじゃないかと思います. まさか単一のプログラムが64kBを超えるコードやデータを取り扱うことは無い. 一般プログラマが直接セグメントを管理することはなく, OSにまかせるものだと.

        誤算だったのは, 8086用OSにセグメント管理を効率的にこなせるような高級なものが広まらなかったってことと, 画像処理みたいなメモリ空間を要求する用途が急激に広がったってことでしょうね.

        親コメント
        • by Anonymous Coward

          > まさか単一のプログラムが64kBを超えるコードやデータを取り扱うことは無い.

          単一の64KBを越えるメモリブロックを取り扱うことはない、ですね。8086でもESを用いた任意の外部メモリブロックへのアクセスが想定されています。

          80x86のセグメント方式は、大型計算機などでポピュラーだったものがiAPX432経由で取り込まれたものです。(iAPX432も64KBセグメントでした)

          80286については以下のページが詳しいのでご覧ください。80286が保護仮想アドレスモードから実アドレスモードへ移行できない理由もお分

        • 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。
          今見れば、セグメントもオフセットも絶対的に足りていないような気がします。
          • by Anonymous Coward
            > 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。

            80386で32ビット(4GB)セグメントが導入されましたが。セグメントサイズが64KB単位になり悲しく思いました。
            初期のlinuxでも80386のセグメントが使われていました。現在の32ビット版Windowsでもセグメントは使われています。

            > 今見れば、セグメントもオフセットも絶対的に足りていないような気がします。

            今から見れば、どんな設計にもケチをつけられますよ。だから当時の致命的なデザインミスかどうかの話をしているわけで。
            • by Anonymous Coward
              > 指定できるセグメントが16ビット分しかないので、あっというまに使い切ってしまいますし。

              セレクタの仮想化は容易ですし、4GBセグメントがあれば1プロセスが64KBセグメントをたくさん使うということもなくなりますので、セレクタのスラッシングの心配は不要だと思いますよ。

              ※セレクタはオープンしているファイルハンドルにおおむね対応します。
    • by Anonymous Coward
      んなのよりも凶悪なのがCell。
      なしてMSBがbit0なん?ぜってーIBMだ!こんなわけわかなこと考えやがったのは!!

      #Cellのエンディアンがビッグなのかリトルなのか未だにわからん…
      • by nekopon (1483) on 2009年06月19日 9時19分 (#1589869) 日記
        Cell 自身はビッグエンディアンですよ。(PowerPC そのものは両対応ですが、Cell では固定してます)
        親コメント
      • by Anonymous Coward
        > なしてMSBがbit0なん?ぜってーIBMだ!こんなわけわかなこと考えやがったのは!!

        大きいことはいいことだ
        アメリカの伝統

        そういえば、MZ2000のVRAMは画面の左がbit0でした。つまり他機種と逆。
      • by Anonymous Coward
        ビッグエンディアンなら、MSBがbit0で普通でしょ
    • by Anonymous Coward
      むしろビッグエンディアンの方が致命的だと思われます。
      やりこめばやりこむほど、問題が噴出します。
      ビッグエンディアンが便利になるのはビットフィールド的操作の時だけです。
      セグメントが問題であるところは否定しません。

ソースを見ろ -- ある4桁UID

処理中...