//tips
Awesome!
「グリーは、8月6日、子会社のREALITYを中心として「メタバース事業」に参入することを発表した。今後2~3年で100億円規模の事業投資を行い、グローバルで数億ユーザーを目指す。」
https://gamebiz.jp/news/330787
//基本情報理解
高速化技術の一つにパイプライン処理があり、一つの命令を複数ステップに分割し、各ステージを平行に処理するもの。
先の命令の実行が完全に終了しないうちに次の命令を実行することで全体の実行時間を短縮する。
ただ、実際にはパイプライン処理が乱れる場合があり、それをハザードと呼ぶ。
(D+N-1)*P
D:命令を分けたステージの数
P:1ステージの実行に要する時間
N:命令数
VLIW方式ではコンパイルの段階で依存関係を調べ、並行実行が可能な複数の命令をまとめ、複数命令を同時に実行。
複数のCPUを並列に動作させることによって処理能力の向上を図るのがマルチプロセッサ方式で、構成方法や利用方法で分類があるが、その一つが結合方式による分類。メモリを共有するかしないかによって密結合と疎結合に分けられる。
ただ、同時に行うことができない依存関係のある命令が存在しているためプロセッサ数と全体の性能は比例関係にはならない。
高速化率は並列化が可能な部分の割合によって高速化率が決まるというもので、E=1/{1-r+(r/n)}
E:高速化率
N:プロセッサ台数
R:並列化による高速化可能な割合
と表される。
{1-r+(r/n)}の部分は全体1で並列化可能部分r、不可能部分1-rとすると並列化のよる高速化は1-rの部分に1/nをかければ得られるので、並列化実施後にかかる時間は(1-r)+r*1/nでこれを全体1に対して割ればよい。
CPUの性能を表す際に利用されるのがクロック周波数で、クロックとはコンピュータ内の動作のタイミングを取るための一定の周波数の信号のこと。信号の速さがクロック周波数で、単位は1秒間に10^6,10^9で表したMHz,GHzが使われる。
CPUは一つの命令を複数のステージに分けて実行し、その際にはクロック信号の下で動作が進められる。
クロック周波数が高いほどCPUの動作速度がはやく、命令は早くなる。ただ、命令によって必要なクロック数(CPI)が異なるため、命令実行時間は
クロックサイクル時間*CPI
または
クロック周波数の逆数*CPI
となる。
1命令の実行に5クロック要する命令を、クロック周波数が1GHzのCPUで実行すると
クロックサイクル時間=1/10^9
命令実行時間=1/10^9*5=5ナノ秒
となる。
半導体メモリの揮発性メモリにSRAMとDRAMがあり、SRAMはフリップフロップ回路を用いて記憶を行うキャッシュメモリなどに利用されるRAM。DRAMは蓄えた電荷で情報を記憶するコンデンサによって記憶を行う主記憶装置などに利用される。
電荷なので、コンデンサに蓄えた電荷が放電しきる前に電荷を再注入する必要がある。
揮発性メモリなので電源を切ると記録内容は消える。
不揮発性メモリには、電圧をかけることで何度も書き込みや消去が可能なフラッシュメモリがある。NAND型とNOR型があり、データの消去はページを複数まとめたブロック単位で行われる。
NAND型フラッシュメモリは速度が速く、集積度が高いため安価に大容量化でき、USBやSSD、携帯電話のメモリに使われる。
メモリの構造が論理回路に依存しているのか。
補助記憶装置に記録されているプログラムやデータは主記憶装置に読み込まれ、CPUはそのプログラムの命令を主記憶装置から取り出し実行する。
命令実行時にはCPUと主記憶装置との間でデータの読み書きが行われる。
一般に記憶装置は大容量なものほど低速になるので、階層化して擬似的に大容量でかつ高速である仕組みを作り上げる。
利用したいデータがキャッシュメモリに存在する確率をヒット率といい、これを用いて全体の実効アクセス時間を求める。
キャッシュメモリにない場合は大容量の記憶装置にアクセスせざるを得ない。
実効アクセス時間=TC*P+TM*(1-P)
TC:キャッシュメモリのアクセス時間
P:ヒット率
TM:主記憶のアクセス時間
小容量のキャッシュメモリの導入により主記憶装置へのアクセスを下げることで、全体の高速化を実現する。
キャッシュメモリ上のデータはいずれ主記憶に移されるが、データの書き込み処理が発生した場合にすぐ実行されるパターン(ライトスルー方式)とキャッシュメモリからそのデータが追い出される際に移すパターン(ライトバック方式)がある。
キャッシュメモリの追い出しタイミングは重要で最近最も利用されていないものを追い出し対象とするLRUアルゴリズムが利用されている。
CPUが複数あり、キャッシュメモリも複数搭載されるマルチプロセッサの場合はさらに複雑になり、各キャッシュメモリの内容を正しく保つ仕組みが実行される。
主記憶上のデータがキャッシュメモリ上のどのデータと対応付けられるのかも工夫されていて、主記憶のブロック番号とキャッシュのブロック番号を一致させるなどの方法をとっている。
主記憶へのアクセスへの高速化の手法として、他にもメモリインターリーブという方法があり、独立にアクセスできる複数のメモリバンクを設置する方法もある。
入出力インターフェースの管理手法には複数の方法があり、CPUが直接制御するもの、CPUを介さずに外部装置と主記憶装置との間でやりとりを完結させるもの、入出力専用の装置を介して外部装置と主記憶装置のデータを扱うものがある。
CPUがチャネルに開始命令を発行した後チャネルがチャネルプログラムによって入出力を行うためCPUに負担がかからない。
ストリーミング方式はこの手法を採用しており、補助記憶装置とのデータ転送において確認信号を待たずに次々データを送ることによって高速化を図っている。
インターフェースの規格はシリアルインターフェースとパラレルインターフェースに分類することができ、シリアルインターフェースは1本の信号線で1ビットずつ直列に伝送する方式。パラレルインターフェースは、複数の信号線を用いて同時に複数ビットを並列に伝送する方式。
現在ではUSBなどのシリアルインターフェースが主流。
ここでのUSBとは記憶装置のことではなく、キーボートマウスなどの機器の接続規格を表す。
PCにプラグを挿すだけで使える、プラグアンドプレイや電源が入っている状態で機器の着脱が行えるホットプラグに対応している。
システムの処理形態を確認していく、集中処理システムと分散処理システムがあるが、集中処理システムは情報資源や処理を一箇所に集中させたシステムで1台のホストコンピュータに端末を繋ぎ複数業務を行う形態が代表的。
処理の方式はデータエントリとトランザクションが中身の通信回線を経由して発生したトランザクションを即時に処理するオンライントランザクション処理となる。銀行でのお金の出し入れや座席予約など。
分散処理システムは、データや機能を各コンピュータに分散させ、利用者がネットワークを通じてすべてのシステム資源を共有しながら効率よく処理できるように構築されたシステム。
膨大なデータ処理や計算処理を短時間に行うハイパフォーマンスコンピューティングは複数のコンピュータを管理し、並列処理を行わせるグリッドコンピューティングや複数のコンピュータを連携させて高い処理能力・安全性を持つコンピュータシステムを構築することで実現されるクラスタリングにより実現される。
クラスタリングは障害の際に役に立ち、複数コンピュータで同一内容を処理できるようにしているので、一部に障害が起きても、システムを止めることなく、運用を継続できる。
他のコンピュータが提供する手続きを同一コンピュータにある手続きのように呼び出すことができる機能をRPCといい、呼び出す側と呼び出される側のプロセスがそれぞれ独立したプロセスとして動作するため異なるOSでも対応できる。
離れた場所のコンピュータにあるファイルを自分のコンピュータファイルのように呼び出せるのもRPCがベース。
コンピュータシステムの信頼性向上や高速化を実現する代表的なシステム構成や技術としてデュアルシステムがある。
同じ処理を行うシステムを2重に用意し処理結果を照合することで処理の正しさを確認するシステム。
デゥプレックスシステムは現用と待機系の2つの処理系を持つシステムで、主系でオンライン処理などの業務処理を行い、主系に障害が発生したら待機系に切り替え業務を続行する。
他にも災害を考慮し、バックアップサイトを設置しておき、コンピュータシステムの
機能を早期に回復される方法が取られる。
システム全体の信頼性を向上させようとする考え方は2つあり、一つは故障を前提とした冗長性の導入、二つ目は、システムの構成要素を故障しにくいものにするもの。
ストレージの仮想化とは、複数のストレージデバイスを論理的に結合して、それを一つのストレージとして扱う技術で、ストレージ資源を仮想化することによって、ストレージ資源を有効活用できる。
異なる性能のストレージを複数組み合わせて階層を作り、データ特性に応じて格納するストレージを変えると運用に手間がかかってしまうので、ストレージの自動階層化によって、アクセス頻度によって上位下位のストレージに振り分けている。
普段使用するサーバの仮想化とは、1台の物理サーバ上で複数の仮想的なサーバを動作させる技術で複数の物理サーバを1台に統合することが可能になる。