• 検索結果がありません。

Microsoft PowerPoint - ar10_08.ppt

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - ar10_08.ppt"

Copied!
9
0
0

読み込み中.... (全文を見る)

全文

(1)

コンピュータアーキテクチャ(8)

2010/11/24

山内担当クラス

10/11/24 ar10_08 802

前回まで

„ CPUの大まかな仕組を理解した „ 構成要素は何か? „ 汎用レジスタ・プログラムカウンタ ALUとは何か、など „ 命令はどのように実行されるか „ 命令の実行サイクルはどういうものか „ CPI・MIPSとは何か „ 命令について理解した „ 命令(語)の構成要素は何か „ オペランドとは何か、2オペランドとは 何か „ 様々なアドレッシングモードを説明せよ „ COMET IIの命令の動作は何か „ COMET IIの機械 命令でプログラ ミングできる „ 変数・定数 „ 参照・更新 „ 代入文 „ 条件分岐(if文) „ ループ(for文) „ 配列のアクセス „ 参照・更新 などを使ったプログラ ムを書ける 10/11/24 ar10_08 803

今回 ~

CPU周りの最後

„

いろいろな設計思想(考え方)を理解する

„

ハーバードアーキテクチャ (教4.1)

„

RISC と CISC (教4.2)

„

ワイヤードロジック と マイクロプログラム

(教

6.2と6.3)

10/11/24 ar10_08 804

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

„ 命令とデータを別のメモリにおいて „ 転送経路も、それぞれに設けた (命令用バス・データ用バス) ⇒ 転送上の隘路(ボトルネック)を回避できる „ 命令とデータを同じ線の上で転送すると太さが足りず 転送が待たされることが起こりえる(隘路) ⇒ その代り、回路が複雑になる+メモリ容量の融通がない CPU メインメモリ 命令 データ CPU 命令用 メモリ データ用 メモリ ノイマン型 ハーバードアーキテクチャ 命令用 バス データ 用バス

(2)

10/11/24 ar10_08 805

どちらがいいか? そういう問題でない

ノイマン型

vs ハーバード

原理単純 やや複雑 命令・データ間のメモリ どちらかの用途に限定 の融通が可能 するので融通不可 転送ボトルネック有り得る ボトルネック解消の方向 (CPUのアクセス要求量と、転送性能とのバランス なので、一概に問題があるとは言えない) 10/11/24 ar10_08 806

キャッシュ(

11回目)導入で話が変る

„

教図

4.2 ⇒ CPUからのアクセスは分離

メインメモリは1つ(融通可)

CPU 命令用 キャッシュメモリ データ用 キャッシュメモリ 命令用 バス データ 用バス メイン メモリ 高速転送 比較的低速 メイン メモリ バス CPUチップ内 10/11/24 ar10_08 807

例)

„

4.1.2 制御用マイコンでの例

„ プログラム半固定(単用途・作込んだら変更無し) „ データは量限定で、汎用レジスタ+定数で足りる ⇒ 完全にメモリを分離 „

Pentium等普通のパソコンCPUでのキャッシュ

„ Core i7 980X Extreme Edition (Gulftown) 6コア

キャッシュ L1: データ・命令それぞれ32KB、 L2: 256KB (コアごとに1つ) L3: 12MB (6コアで共有) クロック 3.33/3.6GHz、 QPI 6.5GT、 TPD 130W 10/11/24 ar10_08 808

RISC vs CISC

„

RISC = Reduced Instruction Set Computer

„ Reducedな (縮退した)

Instruction Set (命令セットを持つ) Computer

„

命令が

„ 単純で „ 命令の実行する内容が簡単 ~ 「複雑なことは複数 の命令を組み合わせてやればいい」 „ 命令の形も簡単 ~ 長さ固定・命令解析も簡単 „ その結果 „ 回路が簡単 ⇒ 1チップに載る(当時の技術レベル) „ 高速 ~ 回路が簡単だから

(3)

10/11/24 ar10_08 809

RISC vs CISC

„

CISC = Complex Instruction Set Computer

„

歴史的な背景がある (

1980年ごろ)

„ Intel 8086('78)に始まるマイクロプロセッサの発展 „ 当初はLSIチップに搭載できるトランジスタ数が少なく、 複雑な回路が載せられなかった。 „ 他方で、命令は(互換性要求も加わって)複雑化してきた x86では互換性要求が非常に強い⇒新命令追加へ „ ⇒ これに反対する考え方としてRISCが登場した „ Intel 80x86は、CISC命令セットを継続 vs たとえばMIPSはRISC命令セットの汎用CPUチップ を提供した (その他にも幾つか市場に現れた) 10/11/24 ar10_08 810

RISC vs CISC 比較すると?

命令数が増え、長くなる 比較的短くなる プログラム長 最適化の工夫余地大 工夫余地どちらかというと小 コンパイラ 固定長(命令によらず同じ) 可変長(命令によって異なる) 命令長 比較的短期に済む 長くなり勝ち 開発期間 少ない 多い 命令種類 どちらかというと導入容易 どちらかというと導入難しい ハードの 高速化手法 回路規模小⇒1チップ化楽 回路規模大⇒1チップ化し難い チップ化 高速化できる 周波数上げにくい クロック 単純・少量 複雑・大量 回路 1命令の動作単純 1命令の動作複雑 命令内容 RISC CISC 10/11/24 ar10_08 811

(脱線)

RISCの汎用レジスタ数は多い

„

CISCのIntel x86 は8つ(浮動小数点用は別)

RISCのMIPSは32個(浮動小数点にも使う)

RISCのPowerPCは32個(+浮動用32個)

„

RISCだと(命令が単純なので)1つの命令

で終わらず、途中結果を保持しておく必要

„

が、一般に、メモリへの読み・書きはレジスタ

に比べて遅い (メモリは

CPUチップの外)

„

で、途中結果保持のためには汎用レジスタが

多いほうが有利

10/11/24 ar10_08 812

RISC vs CISC 論争

„

更に半導体技術向上 高速化+大規模化

„

RISCが一方的に有利というわけでもない

„ 市場を見よ 他の要因もあり(命令互換性) „

Pentiumなどでは一部CISC命令をRISC動作

に変換して実行(マイクロプログラム~後述)

„ つまり、ハード的にはRISC的、命令体系はCISC的 „

「区別が困難になってきている」(教p42)

„ 区別する意味もなくなってきている?

(4)

10/11/24 ar10_08 813

制御アーキテクチャ(教6章)

„

CPU内の「制御部」の作り方の議論

„

ポイント:

布線論理(ワイヤードロジック) vs

プログラム論理(マイクロプログラム)

„

ワイヤードロジック:

配線論理(=回路)によって制御機構を作る

„

マイクロプログラム:

配線論理+プログラムによって作る

10/11/24 ar10_08 814

(脱線) 順序回路

(ワイヤードロジックのベース)

„

順序回路

„ 内部状態と入力で、出力が決まる回路 „ 内部状態は、過去の入力を反映する „

状態遷移(図・表など)として描かれる

1 2 3 入力1/出力なし 入力1/出力なし 入力1/出力1 初期状態 1 2 3 1 2 3 入力 出力 10/11/24 ar10_08 815

(脱線)順序回路の例

図は,150 円のジュースを販売する自動販売機の状態遷移において, 状態を “Si”,遷移条件を“X / Y + Z ”で表したものである。 S0”を初期状態とする。 ここで,X は入力を示し,使用可能な硬貨は 50 円と 100 円だけ であり,一度に1枚だけ投入できる。 Y は出力を示し,*は何も出力されないことを表す。 また,Z は X と Y による付帯条件“釣銭”を表し,釣銭がない 場合は記述しない。例えば,“100/ジュース+50”は, 100円硬貨を投入するとジュースが出て,釣銭が50円であることを表す 50/ジュース S0 S1 S2 100/* 50/* 50/* 100/ジュース+50 100/ジュース 10/11/24 ar10_08 816

(脱線)順序回路の動作 同期vs非同期

„

同期式回路

„ クロック信号で回路全体が「同期」 =「せーの」で状態が変化する „

非同期式回路

„ 入力があると状態が変化する „

一般に

„ 同期式の方が安定(信号遅延などの問題除外) „ クロックより高速にはならない „

コンピュータ=殆どの部分が同期式

(5)

10/11/24 ar10_08 817 状 態 レジスタ 関数F 入力 出力 クロック

(脱線)同期式ハードウェアの作り方

„

「状態」を、レジスタ(フリップフロップの列)に

保持する(2進)値で表す

„ 例:S0=00、 S1=01、 S2=10 3状態なら2桁必要 „

(入力+前の状態)⇒(次の状態+出力)と

なる2進の関数Fを用意し、下のように繋ぐ

10/11/24 ar10_08 818

ワイヤードロジック制御

„

制御を順序回路で行う

„ 命令読出⇒解読⇒実行 ⇒次の命令 の手順の制御 ↓ 状態遷移として実現 „ 他の部分(演算部・メモリ) への信号を出す CPU メモリ 命令 命令 命令 命令 プログラム 制御部 PC 制御 命令 データ データ データ データ 演算部 レジスタ ALU 解読 10/11/24 ar10_08 819

マイクロプログラム制御

„

制御をプログラムの

形で実現する

„ 「マイクロプログラム」 (マイクロ命令) (マイクロ命令メモリ) „ ハードウェアサポート „ マイクロ命令解釈 „ マイクロ命令実行 „ 入換え可能 ⇒異なるCPUの模擬 「エミュレーション」 PC内容をメモリアドレスとして送出 メモリ読出してIRレジスタに格納 IRのOP部分でテーブルジャンプ LD命令: オペランドから実効アドレス計算 実効アドレスをメモリへ送出 メモリ読み出してレジスタに格納 割込みをチェックする (PCを1つ進める) ST命令: 以下略 いい加減なサンプル 10/11/24 ar10_08 820

マイクロプログラム制御の背景

„

万能のコアにしたい(ハード設計1回だけ)

⇒ 特定のCPUのエミュレーション

„

設計期間の短縮

„ マイクロプログラムのデバッグ+再ロードの方が ハードの作り直しよりはるかに早い „

「シリーズ化」の実現

„ IBM 360/370では、ハイエンドはワイヤード(高速)、 ローエンドはマイクロプログラム(低速・廉価)として、 同一の命令セットを実現した ← ソフトの互換性 „

CISC命令は複雑なので、マイクロプログラムで

„ 多データ処理とか、込み入った処理とか

(6)

10/11/24 ar10_08 821

ワイヤード

vsマイクロプログラム

少なくできる (小さくできる・廉価) 多い(大きくなる・高価) ハード量 短い (バグ・修正の サイクルが短い) 長い (バグ・修正の サイクルが長い) 設計期間 容易 (プログラムを延ばす) 対応が大変 (ハード量増える) 複雑な命令 プログラム書直しで容易 再度設計で大変 修正・改良 遅い 早い 命令 処理速度 マイクロプログラム ワイヤード 10/11/24 ar10_08 822

まとめ

„

ハーバード・アーキテクチャとは何か

理解したか・説明できるか?

„

RISCとは何か、CISCとは何か?

RISCの考え方を説明できるか?

RISC vs CISCの利害得失を説明できるか

„ 現在、RISCをそれほど議論しないのはなぜか? „

ワイヤードロジック・マイクロプログラムとは何か

マイクロプログラムの考え方を説明できるか

利害得失を説明できるか

10/11/24 ar10_08 823

(脱線)ディジタル回路

„

組合せ回路=

„ 現時点の入力だけで出力が決まる回路 = 出力は過去の(入力)履歴に依存しない „

順序回路=

„ ~~~でない回路 = 出力が過去の(入力)履歴に依存する „

例: 入力

x, y、 出力z として

„ z = x ∧ y や z = ((x∧y)∨(¬x∧¬y)) は 組合せ 回路 (現在のx,yで決まる。過去の履歴に依存しない) 10/11/24 ar10_08 824

(脱線)組合せ論理回路

„

組合せ回路 = 要するに論理式と思えばよい

„

入力の論理値(

0/1)の組合せパターンで

出力(

0/1)が決まる

„ だから、真理値表によって記述できる „

ハードウェアの実現=ANDやOR素子を接続

„

理論: ~情報数理IA・IB、「離散数理」

12章

„ 加法標準形 形と定理12.8 „ 最簡化とカルノ図表

(7)

10/11/24 ar10_08 825

(脱線)順序回路①

„

例: ジュースの自動販売機

„ ジュースは150円 50円玉と100円玉を受付ける お釣りが出る 100円玉を2回 ⇒ ジュースと50円 „

入力:

50円玉が来た、100円玉が来た

出力: ジュース(有無)とお釣り

50円(有無)

„

現在の入力だけでは出力は決まらない

„ 50円玉が来た 既に100円入っていればジュースを出す 初めてなら、更に入力があるのを待つ 10/11/24 ar10_08 826

(脱線)順序回路②

„

例: ジュースの自動販売機の続き

„

入力「

50円玉」への応答は

„ 既に100円玉1回、又は50円玉2回が来ていれば ジュースを出す(お釣りは無し) „ そうでなければ、次の入力を待つ „

入力「100円玉」への応答は

„ 既に50円玉1回、ならジュースを出す(お釣り無し) „ 既に100円玉1回、ならジュースとお釣り50円 „ そうでなければ、次の入力を待つ „

(正しいかな? 自分でもよく考えてみよう)

10/11/24 ar10_08 827

(脱線)順序回路③

„

自動販売機例のポイント:

„

動作は今迄の入力が何かに依存する

⇒ 「組合せ回路」とは性質が違うものである

⇒ 「順序回路」

(sequential circuirt)

とか「順序論理」とかと呼ぶ

„

今までにどのような入力があったかを

(何らかの形で)覚えておく必要がある

„ 「状態」として覚えておく 10/11/24 ar10_08 828

(脱線)順序回路④

„

自動販売機の状態

„ 「何も入っていない」「既に50円」「既に100円」 „ 「既に150円」は、不要(覚えておかなくていい) 出力(ジュース・お釣りは無し)を出して 「何も入っていない」の状態に戻ればいいから „ 「既に100円」を、50円玉入力が2回と100円1回と 分けて覚えておくか? 不要 どちらも次のステップの動作が同じだから 次に50円玉が来ればジュース+釣り無し 次に100円玉が来ればジュース+50円釣り „ なので、状態は3つあればいい

(8)

10/11/24 ar10_08 829

(脱線)順序回路⑤

„

状態が、入力が来ると「遷移(せんい)する」

„ 「何も入っていない」状態で 入力「50円玉」が来ると、「既に50円」状態へ移る „ 「何も入っていない」状態で 入力「100円玉」が来ると「既に100円」状態へ移る „ 「既に50円」状態で 入力「50円玉」が来ると「既に100円」状態へ移る „ 「既に50円」状態で、入力「100円玉」が来ると 出力「ジュース+釣り無し」を出して 「何も入っていない」状態へ移る (以下略) 10/11/24 ar10_08 830

(脱線)順序回路⑥

„

状態の遷移の状況を図に描く ⇒ 状態遷移図

„ 状態を○で描き、中に状態の名前を入れる 名前は何でも良いが、状態をよく表すものが良い „ 状態の間の遷移(移り変わり)を矢印で結ぶ 矢印は状態の移る向きを表す 矢印のわきに、①遷移を起こす入力と、 ②遷移の結果出る出力、を書いておく 状態A 状態B 入力x/出力p 入力y/出力q 左図は 状態Aにあるとき入力xが来ると 出力pを出して状態Bに遷移し 状態Bにあるとき入力yが来ると 出力qを出して状態Aに遷移する ことを示す 例 10/11/24 ar10_08 831

(脱線)順序回路⑦

„

ジュース販売機の状態遷移図を描け

10/11/24 ar10_08 832

(脱線)順序回路⑧

„

状態遷移図からハードウェアを作る

„ 状態に、N桁の2進数を割当てる „ Nは、状態の数Sを表すのに十分な桁数 Sが2~3なら2桁、Sが4~7なら3桁など „ 図のような回路を考える „ 状態を表すN桁のレジスタ „ 直前の状態(N桁2進数)と外部入力から 次の状態と出力を求める回路 „ 「次の状態+出力」を求める 「組合せ回路」を設計する 組合せ 回 路 外部 入力 外部 出力 レ ジ ス タ

(9)

10/11/24 ar10_08 833

(脱線)順序回路⑨

„

レジスタ(=メモリ)と組合せ回路から

任意の状態遷移図を実現できる

„

過去の入力(や状態遷移)を覚えている

のがレジスタ(メモリ)の役目

„

コンピュータでは枠組みが違うが

考え方は同じ ~

メモリは過去のことを覚えているもの

(ALUは組合せ回路)

参照

関連したドキュメント

これまた歴史的要因による︒中国には漢語方言を二分する二つの重要な境界線がある︒

「主体的・対話的で深い学び」が求められる背景 2030 年の社会を見据えて 平成 28(2016)年

(※)Microsoft Edge については、2020 年 1 月 15 日以降に Microsoft 社が提供しているメジャーバージョンが 79 以降の Microsoft Edge を対象としています。2020 年 1

・大都市に近接する立地特性から、高い県外就業者の割合。(県内2 県内2 県内2/ 県内2 / / /3、県外 3、県外 3、県外 3、県外1/3 1/3

口腔の持つ,種々の働き ( 機能)が障害された場 合,これらの働きがより健全に機能するよう手当

ERROR  -00002 認証失敗または 圏外   クラウドへの接続設定及びア ンテ ナ 接続を確認して ください。. ERROR  -00044 回線未登録または

歴史的にはニュージーランドの災害対応は自然災害から軍事目的のための Civil Defence 要素を含めたものに転換され、さらに自然災害対策に再度転換がなされるといった背景が

1989 年に市民社会組織の設立が開始、2017 年は 54,000 の組織が教会を背景としたいくつ かの強力な組織が活動している。資金構成:公共