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

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

  • リトルエンディアンとセグメント方式
    • by Anonymous Coward

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

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

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

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

        • by Anonymous Coward on 2009年06月18日 18時01分 (#1589476)

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

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

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

          80286については以下のページが詳しいのでご覧ください。80286が保護仮想アドレスモードから実アドレスモードへ移行できない理由もお分かりかと思います。
          http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%86%E3%82%AF%E3%8... [wikipedia.org]

          親コメント

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...