580 likes | 594 Views
システム LSI 工学 第 12 回 PC, WDM/BIOS, PCI バス, TCP/IP, UDP. 関根 優年. Personal Computer への変遷. 大型計算機→小型計算機( VAX11)→Engineering Working Machine(EWS)→PC(MAC,IBM)→Laptop EWS(TOSHIBA)→PC(NEC9801). IBM Computer System 360. Wikipedia から引用. 360/65 の操作パネル VAX-11/730 @1982.
E N D
システムLSI工学第12回PC,WDM/BIOS,PCI バス,TCP/IP, UDP 関根 優年
Personal Computerへの変遷 大型計算機→小型計算機(VAX11)→Engineering Working Machine(EWS)→PC(MAC,IBM)→Laptop EWS(TOSHIBA)→PC(NEC9801)
IBM ComputerSystem360 Wikipediaから引用
360/65の操作パネル VAX-11/730@1982 DIGITAL Computing Timelineから引用 Wikipediaから引用
EWS,WS EWS全盛期を代表するモデルのひとつ、SunのSPARCstation シリコングラフィックス(SGI) の ワークステーション、Octane Wikipediaから引用 Wikipediaから引用
Personal Computer IBM PC5150Macintosh 128k transparency
Personal Computer Osborne 1, 1981, $1795 PC9801, 1982, 298,000円(本体のみ) 14インチ(別売 215,000円) 8インチ(388,000円)及び5インチ接続可(オプション)
現在の電子機器の構成 • PCから必要な部分を抜き出して使用 • プロセッサ+メモリ+周辺機器 • PC関連部品は安価に入手が可能であるため • WEB/LAN/無線(Bluetooth)との接続を用意 • USBによる外部機器との接続 • WINDOWS/MAC/LINUX • どれかのOSの一部を使用 • ASICとFPGAが混在
今後の電子機器は ??? • Tablet型端末+クラウド • デスクトップ→NoteBook→NETBook • Net上のコンテンツを見るだけの機器 • PCの機能が不要なユーザーが多い • 高性能+高機能 • 自動車 • 安全運転、ネットからの情報 • ロボット • 介護、監視など • パーソナル・スパコン
計算機の構成 Central Processing Unit(CPU)+Main Memory(MM)+記憶装置+入力装置(Key Board)+出力装置(Console)+周辺装置 • CPU:8086→80286/386/486→Pentium→Now
Personal Computer:OS,etc. • OS:Apple(M68000)→MAC, UNIXのPC版,VAX11系統,リニア・アドレッシング, X window機能を当初から実現 • IBM-AT系統:CPM→ DOS(CPM類似) Disk Operating System WINDOWS(2.0/3.0 文字を使ったWindowを実現)→ Windows95/98/NT→win2000/XP→VISTA/7 仮想化に苦労
Personal Computer • リソースの全てをアドレスでアクセス • 大型機の仮想記憶機能を初期に導入 • メモリ空間を分割し小領域に分ける • カーネル領域とユーザー領域に分ける • IO空間(初期は周辺装置に割り当て)→メモリ空間と一体化
MSDOS.SYS/IO.SYS/BIOS • Basic IO System(BIOS) DOS/vで整備 • CPUのINT命令で実現 • AHに命令コード,ALに データを設定して INT 割り込みコード で実行する. • 例:文字゛!゛をスクリーンに表示 mov ah, 0x0a mov al, '!' int 0x10
割り込みテーブル • Interrupt table • INT(0x10); ビデオ関係 • INT(0x11); 周辺機器リストの取得 † • INT(0x12); 使用可能メモリのサイズ取得 † • INT(0x13); ディスク関係 • INT(0x14); シリアルポート • INT(0x15); その他のサービス • INT(0x16); キーボード関係 † • NT(0x17); パラレルポート † • INT(0x18); ROM-BASICを起動 † • INT(0x19); 再起動 • INT(0x1a); 時間関係 †
PC-BUS • CPUから周辺装置を • 周辺装置を統一して利用したい • 接続の仕方も同一にしたい => 一つの場所に取り付ける • BUSをアクセスする,周辺装置もBUSをアクセスする • バスに繋がった全ての装置がBUSの状態を監視する. 共通バス • 接続装置が増加→バスを階層化する→BUS Bridge
PC-BUS • Industry Standard Architecture(ISA) • Extended ISA(EISA) • CPUのローカルバスを引き出したもの(16bit 10MHz程度), バス・ブリッジに移行して標準化 • Micro Channel Architecture(MCA) • Peripheral Component Interface(PCI) • 32ビット,33MHz • 1993 PCI2.0 2000 PCI 2.3 • CARD BUS は PCI をカード用に流用 • 2002 PCI Express 1.0(parallel → Serial)
ファイル・システム/デバイス・ドライバー • UNIX/ファイル・システム→周辺装置に対しても流用 • 周辺装置の入出力もファイルへのRead/Writeと同じ様にする • Open/Close→周辺装置のAttach/Detach • デバイス・ドライバー • IOCONTROL()で統一: READ,WRITE • カーネル領域のバッファーから周辺デバイス間でデータを送受信 • 送信アドレス//RW//バッファ・アドレス/データ・サイズ • Window Device Model(WDM)
ハードへのアクセスを一元管理 ret = DeviceIoControl( handle, HM_IOCTL_GET_ATTR, param, sizeof( HM_ATTR ), attr, aSize, &rSize, NULL );
PCIバス • Initiator側の動作 • FRAME:バス占有を通知 • 他のデバイスはTargetとしてバスを読む • AD:アドレスとデータとを共有 • アドレスをFRAMEに同期して送出 • C/BE:命令をFRAMEに同期して送出、その後データ-のバイト・イネーブルとして使用 • IRDY: セットしてデータを送出 • Target側の応答信号 • Devsel:自分のアドレスの時、通知 • TRDY:TargetがInitiatorからの要求完了を通知
PCIバス プロトコル a: configuration read
PCI バースト・アクセス • 連続したアドレスへのデータ転送 • TRDYが下がったまま
仮想メモリ空間でのシステム・アプリの使用領域仮想メモリ空間でのシステム・アプリの使用領域
Application Program Interface (API) • アプリソフトからハードを隠蔽 • 単にアドレスを指定してアクセスしたい • 全てのアドレスをOSが管理 • OSとの手続きを簡素化 • Win32 ライブライを仕様 • メッセージでOSとやり取りをする • 回路が仮想化した場合 • 仮想回路をアクセス、APIと矛盾する
Local Area Network(LAN) • アドレスが一意に定まれば,通信可 • MAC(カード)アドレス:48bit,octet表現 • 05-B4-54-60-54-34, 15:C5:65:71:65:45 等と書く • 最初の24bit:ベンダーID ← OUI(Organizationally Unique Identifier)) • 次の8ビット:機種ID • 最後の16ビット:シリアルID • 一つのOUI,残り24ビットで1677万個の製品IDが可能
ネットワーク用語 • パケット: • 送信先のアドレスなど制御情報+データの小さなまとまり • パケット通信:データをパケットに分割して送受信する通信方式 • MACアドレス: • & ネット上で,各ノードを識別するネット機器固有の物理アドレス • MACとはMulti Access Controlの略. • IPアドレス : • IPネットに接続されたコンピュータ/通信機器1台1台に割り振られた識別番号変更可能 • ポート番号: • インターネット上の通信において,複数の相手と同時に接続を行なうためにIPアドレスの下に設けられたサブアドレス 0-65535まで利用できる.単にポートと略されることもある.
TCP/IPの基本知識その1 • 送信側:各層でヘッダーを付けていく。データをパケット化。 • ヘッダーに記録されている情報:アプリ(ポート)番号、IP、MAC。 • 受信側:各層でヘッダーを外す。
OSI参照モデル • Open System Interconnection:
OSI参照モデル • アプリケーション層 • データ通信を利用した様々なサービスを提供. • プレゼンテーション層 • セッション層からのデータを変換,上位層から送られてくるデータを通信に適した形式に変換等を行う. • セッション層 • 通信プログラム同士がデータ送受信を行なうための仮想的な経路(コネクション)の確立や解放を行う. • トランスポート層 • 相手まで確実に効率よくデータを届けるためのデータ圧縮や誤り訂正,再送制御などを行う.
OSI参照モデル • ネットワーク層 • 相手までデータを届けるための通信経路の選択や,通信経路内のアドレス(住所)の管理を行う. • データリンク層 • 通信相手との物理的な通信路を確保し,通信路を流れるデータのエラー検出などを行う. • 物理層 • データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ.ピンの形状やケーブルの特性なども物理層で定められる
TCP/IP • IPアドレス • 32ビット, (例) 192.168.0.1 • Domain Name System(DNS) • 人が読める文字列とIPアドレスとを対応 • TCP • プロトコル・スタック • Transmission Control Protocol(TCP) Internet Protocol(IP)
3 4 1 2 TCP/IPの基本知識その2 • 転送層のTCPプロトコルの特徴: • 受信側の確認応答 • 窓の仕組み 送信中 次の送信 窓外 送信済み 確認を待つ • 再整理
イーサネット • OSI参照モデルでは物理層とデータリンク層が対象 • IMACアドレスは世界中で一意に決る
プロトコル・スタックとカプセル化 IPデータグラム TCPセグメント
ソケット? • アプリプログラムからアクセス • TCPソケット >TCPポート >TCP>IP • TCP:1~65535 、 UDP:1~65535 • OSレベルでIOCONTROLに置き換え • Network 機器へアクセスする int socket(int protocolFamily, int type, int protokol) client: connect, send, recv server: bind, listen, accept
SRAMへのアクセス • SRAMのアクセスはとても容易
SRAM module SRAM(input clk, reset, we, input [7:0] data, input [3:0]addr, output [7:0] out); reg [7:0] mem[0:16]; reg [7:0] oR=0; assign out = oR; always @(posedge clk)begin if(we)begin mem[addr] <= data; end else begin oR <= mem[addr]; end end endmodule
DRAMの構造 • 絶縁分離したポリシリコン中に電荷を保存