31ビット
[Wikipedia|▼Menu]
.mw-parser-output .sidebar{width:auto;float:right;clear:right;margin:0.5em 0 1em 1em;background:#f8f9fa;border:1px solid #aaa;padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:75%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:720px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}.mw-parser-output .side-headbg-left{text-align:left}.mw-parser-output .side-headbg-w15em{width:15em}.mw-parser-output .side-headbg-w16em{width:16em}.mw-parser-output .side-headbg-w22em{width:22em}.mw-parser-output .side-headbg-w150px{width:150px}.mw-parser-output .side-headbgr-top-image-default{padding:0;line-height:0.4em}.mw-parser-output .side-headbg .sidebar-pretitle{padding-top:0.2em}.mw-parser-output .side-headbg .sidebar-pretitle-with-top-image{padding-top:0.2em}.mw-parser-output .side-headbg .sidebar-title{background:#ccf;padding:0.2em 0.4em 0.2em}.mw-parser-output .side-headbg .sidebar-title-with-pretitle{background:#ccf;padding:0.2em 0.4em 0.2em}.mw-parser-output .side-headbg .sidebar-heading{background:#ddf;padding:0.2em 0.4em 0.2em}.mw-parser-output .side-headbg .sidebar-content{padding:0.3em 0.4em 0.6em}.mw-parser-output .side-headbg .sidebar-content-with-subgroup{padding:0.3em 0.4em 0.6em}.mw-parser-output .side-headbg .sidebar-above{padding:0;line-height:0.4em}.mw-parser-output .side-headbg .sidebar-below{background:#ddf;padding-top:0.3em}.mw-parser-output .sidebar-headbg .sidebar-navbar{padding-top:0.4em}

プロセッサ
4ビット ? 8ビット ? 12ビット ? 16ビット ? 18ビット ? 24ビット ? 31ビット ? 32ビット ? 36ビット ? 48ビット ? 60ビット ? 64ビット ? 128ビット
アプリケーション
16ビット ? 32ビット ? 64ビット
データサイズ
ニブル ? オクテット ? バイト ? ワード

31ビット(: 31-bit)は、連続した31個(桁)のビット(4(ただし1ビットをリザーブ)オクテット)であり、バイナリで最大2,147,483,648(2G)までの数を表現できる。

「31ビットアーキテクチャ」とは、整数型メモリアドレス、その他のデータサイズなどが、最大31ビット幅のアーキテクチャである。

「31ビットCPU」(プロセッサ演算装置)とは、31ビットサイズのレジスタアドレスバスデータバスを持つCPU(プロセッサ、演算装置)である。

31ビットアーキテクチャ

31ビットのコンピューティングアーキテクチャは、恐らく31ビットアドレッシングのみであり、最も有名で有用なひとつである。1983年IBMメインフレーム用のSystem/370-XA (S/370-XA) アーキテクチャを発表し、従来のモデルの24ビットアドレッシングからの拡張として31ビットアドレッシングを発表した。これによりアドレス空間は128倍広がり、プログラムは従来の上限の16MBよりも、更に「上」を使用できるようになった。

従来のSystem/360や初期のSystem/370アーキテクチャでは、アドレスは常に32ビットワードに記憶されたが、アドレッシングは24ビットであり、マシンはワード中の上位1バイトを無視していた。S/370-XAの拡張により、無視されるバイトは無くなった。

移行は巧妙だった。アセンブリ言語のプログラムにはこれ以前の約20年の間、アドレスを含むワード(ポインタ)中の上位1バイトが、アドレスとしてはマシンに無視されることを活用し、タグなどに使用しているものがあった(またLISPなどでも、言語処理系を実装するのに同様の技巧が使われる場合がある)。32ビット化してしまうとその技巧が全く使えなくなる。そこでIBMは移行の負担を最小とするため、以下の2形式のアドレッシングをサポートすることを選択した。

最上位ビットがオンならば、続く31ビット全てがアドレスとして使われる拡張されたアドレッシング

最上位ビットがオフならば、従来通り下位の24ビットのみがアドレスとして使われる互換アドレッシング

最上位バイトの全ビットを使っているプログラムでなければ、最上位ビットをオフにして、先頭1バイトの残る7ビットを従来同様の別の目的で使う事ができた。31ビットアドレッシングへの修正は、最上位ビットをオンにセットすれば良かった。

1990年代にIBMは後継の 370/ESA アーキテクチャを発表し、後に 390/ESA、ESA/390、S/390となったが、この31ビットの仮想記憶とアドレッシング・モード・フラグによる進化を保持し続けた。これらの後のアーキテクチャでは、2GB を超える物理メモリーや、2GBまでの複数のアドレス空間の同時稼働がサポートされた。2009年現在では、この複数31ビットのアーキテクチャはアドレス空間が狭くなったため、あまり多くのプログラムでは使用されていない。

このため2000年にIBMは、IBM zSeries モデル900と同時に、64ビットz/Architectureシステムを発表し、アドレス空間の2GBの壁(バリヤー)を撤廃した。このz/Architectureでは、S/370-XAでの移行方法とは異なり、最上位の1ビットを従来のコードとの判別用にリザーブしない。しかしz/Architectureは、24ビットや31ビットのコードと互換性を維持し、これらを新しい64ビットのコードと同時に稼働できる。

Linuxでは1999年に、既存の32ビットデータ / 31ビットアドレッシングのハードウェア用に、最初のLinux/390 がリリースされたが、初期のメインフレーム用Linuxアプリケーションは、z/Architecture以前のモードでコンパイルされ、31ビットアドレッシングの制約を受けた。この制約は、現在の64ビットのハードウェア、64ビットのLinux on zSeries、64ビットのLinuxアプリケーションの組み合わせでは、消滅した。しかし64ビットのLinuxディストリビューションでは、現在でも31ビットプログラムをサポートしている。

IBMの31ビットアーキテクチャでは、拡張記憶(expanded storage)をサポートし、31ビットのコードが(主記憶装置とは別に)追加のメモリーを使用することができた。しかしどのインスタンスも最大2GBの作業アドレススペースであった。31ビットのLinuxは、2GBを超えるメモリーをRAMディスクのようにアサインすることができる。
UCS-4

(詳細はUTF-32#歴史を参照)UnicodeのUCS-4は、32ビットではなく31ビットのコードとしていた。これも最上位ビットを特別の目的に用い、他の形式との共用の際の便宜のためであった。
関連項目

CPU

CPU#ビット幅

プロセッサ

メインフレーム

System/360

System/370

System z










CPUテクノロジー
アーキテクチャ

ISA: CISC

EDGE

EPIC

MISC(英語版)

OISC

RISC

VLIW

ZISC(英語版)

ハーバード・アーキテクチャ

ノイマン型

4ビット

8ビット

12ビット

16ビット

18ビット

24ビット

31ビット

32ビット

36ビット

48ビット

60ビット

64ビット

128ビット

並列処理


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:18 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef