新命令のTSXを理解するには
トランザクションの概念を理解する必要があり
Haswellで追加された新命令に、「TSX」命令というものがある(関連記事)。TSX命令を理解するためには、まず「トランザクション」という概念を理解する必要がある。
例えば、Windowsの「メモ帳」を2つ起動して、同じテキストファイルを開き、それぞれが別の部分を編集したとする(図2)。まずメモ帳1が赤い部分を書き換えて保存。ついでメモ帳2が青い部分を書き換えて保存した。さてこの場合どうなるか? メモ帳1から書き換えた赤い部分は、その後メモ帳2が書き換える際に上書きされてしまい、メモ帳1が編集する前の状態に戻ってしまっているはずだ。これがお互いに何もしていない、つまり「トランザクションがない」状態である。
これでは当然不便なので「他のユーザーがテキストを開いている場合は、書き込みできるようには開かない」という「排他制御」が登場した。右の画像は同じテキストファイルを「秀丸エディタ」で二重に開こうとした場合に表示される警告ダイアログであるが、こうしてファイル単位で管理するのが、言ってみれば「粗粒度」の管理である。
この方法は確実ではあるが、一度に複数のスレッドがテキストファイルを同時に開こうとした場合、最初に開いたスレッドだけが書き込み可能で、続くスレッドは全部読み出しオンリーになってしまうため不便である。だが図2のように、2つのスレッドがまったく異なる部分を書き換えることがはっきりしているなら、テキストファイル単位ではなく、行単位での読み書きを制御するほうが便利だ。
テキストファイルでは現実的ではないが、例えばデータベースソフトの場合、「データベースファイル」という大きな塊の中が、細かく「レコード」という記録単位に分かれており、「クライアント1」と「クライアント2」が、それぞれ同時に読み書きを行なえるようになっている(図3)。ファイル単位で制御しようという場合、例えば「1ファイル/1行」に制限してファイル数を猛烈に増やす、ということで似た形の実装は可能だが、面倒なので普通こういうことはしない。こうした管理方式を、先ほどの「粗粒度」の管理に対して、「細粒度」の管理と呼ぶ。
この連載の記事
-
第768回
PC
AIアクセラレーター「Gaudi 3」の性能は前世代の2~4倍 インテル CPUロードマップ -
第767回
PC
Lunar LakeはWindows 12の要件である40TOPSを超えるNPU性能 インテル CPUロードマップ -
第766回
デジタル
Instinct MI300のI/OダイはXCDとCCDのどちらにも搭載できる驚きの構造 AMD GPUロードマップ -
第765回
PC
GB200 Grace Blackwell SuperchipのTDPは1200W NVIDIA GPUロードマップ -
第764回
PC
B100は1ダイあたりの性能がH100を下回るがAI性能はH100の5倍 NVIDIA GPUロードマップ -
第763回
PC
FDD/HDDをつなぐため急速に普及したSASI 消え去ったI/F史 -
第762回
PC
測定器やFDDなどどんな機器も接続できたGPIB 消え去ったI/F史 -
第761回
PC
Intel 14Aの量産は2年遅れの2028年? 半導体生産2位を目指すインテル インテル CPUロードマップ -
第760回
PC
14nmを再構築したIntel 12が2027年に登場すればおもしろいことになりそう インテル CPUロードマップ -
第759回
PC
プリンター接続で業界標準になったセントロニクスI/F 消え去ったI/F史 -
第758回
PC
モデムをつなぐのに必要だったRS-232-CというシリアルI/F 消え去ったI/F史 - この連載の一覧へ