スライド 1

Similar documents

計算機アーキテクチャ


COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

main.dvi

main.dvi

Microsoft PowerPoint - NxLecture ppt [互換モード]

ソフトウェア基礎技術研修

< コンピュータの基本的仕組み > コンピュータは, クロック信号と呼ばれる周期的な論理信号に同期し, 主記憶装置に記憶され ている命令を, 以下の手順で読み込み, 実行することにより動作している. 命令読み込み Instruction Fetch 命令解読 Decode 命令実行 Executio

PowerPoint プレゼンテーション

コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

ex05_2012.pptx

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

<4D F736F F F696E74202D20837D E838D B835E82CC926190B682C694AD B93C782DD8EE682E890EA97705D>

PowerPoint プレゼンテーション

コンピュータの仕組み(1)ハードウェア

ソフトウェア基礎技術研修

ソフトウェア基礎技術研修

Microsoft PowerPoint - ProcML-12-3.ppt

TRAVENTY CG V 動作検証報告書

ic3_cf_p1-70_1018.indd

計算機アーキテクチャ

PowerPoint プレゼンテーション

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

Microsoft PowerPoint - Lecture ppt [互換モード]

情報科学概論

PowerPoint Presentation

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo

Microsoft PowerPoint - Sol7 [Compatibility Mode]

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

2nd-1.dvi

プロセッサ・アーキテクチャ

Microsoft PowerPoint - OS07.pptx

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

FFTSS Library Version 3.0 User's Guide

SmartLMSユーザーズガイド<講師編>

Magic Desktop

konicaminolta.co.jp PageScope Net Care

アセンブラ入門(CASL II) 第3版

Microsoft PowerPoint ppt

Raspberry Pi BF BF BF Raspberry Pi PC USB HDMI OS SD SD OS Raspberry Pi Model B MicroUSB MicroSD OS SD GPIO HDMI USB LAN Raspberry Pi MicroUSB MicroSD

Microsoft Word - SmartManager User's Manual-2 3 0_JP.docx

untitled

Microsoft PowerPoint - NxLec ppt

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

橡Webcamユーザーガイド03.PDF

Running FileMaker Pro 8 on Citrix Presentation Server


Transcription:

東北大学工学部機械知能 航空工学科 2019 年度クラス C D 情報科学基礎 I 5. 命令セットアーキテクチャ ( 教科書 6.1 節, 6.2 節 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/

計算機の基本構成 メモリ プロセッサ データ領域 データデータデータ load store レジスタ PC プログラム領域 命令命令命令 演算器 (ALU) 2

計算機の基本動作 プロセッサは, メモリのプログラム領域から命令をアドレス順に読み出して実行する 演算は ALU (Arithmetic Logic Unit) が行う 必要に応じて, メモリとプロセッサ内のレジスタとの間でデータを移動する 演算を行うには, 少なくとも瞬時にはプロセッサ内でデータを記憶しておく必要がある 最近のほとんどのプロセッサは, メモリ内のデータではなくレジスタ内のデータを演算の対象とする ( メモリはプロセッサに対して遅いため ) load: メモリ レジスタ store: メモリ レジスタ PC (Program Counter) と呼ばれる特殊レジスタに, 次に実行する命令のアドレスが保存されている PC の内容は命令実行ごとに更新される 3

命令セットアーキテクチャ プロセッサが実行できる命令の集合を命令セット (instruction set) と呼ぶ. 実際には, プログラムから使用できるレジスタの種類, メモリアドレスの指定方法なども含めて命令セットと呼ぶのが通常である ソフトウェアから見たときに, そのプロセッサがどんなものであるかは, 命令セットによって決まる. この観点から見たアーキテクチャを命令セットアーキテクチャ (Instruction Set Architecture: ISA) と呼ぶ それに対し, ある命令セットアーキテクチャをどのような回路でどのような動作タイミングで実現するかという観点から見たアーキテクチャをマイクロアーキテクチャと呼ぶ 同じ ISA に対して多数のマイクロアーキテクチャがあり得る 4

命令セットアーキテクチャの例 x86 (IA-32, i386) いわゆる PC 用の CPU で採用.PC 以外にも広く利用される. PowerPC 以前の Macintosh.PlayStation 3,Xbox 360,Nintendo Wii SPARC Sun Microsystems のワークステーション, 各種組み込み機器 MIPS Silicon Graphics,Sony, NEC のワークステーション, 初代 PlayStation,Nintendo 64,PSP, 各種組込み機器, 携帯機器など ARM 携帯機器 携帯電話の多く, ゲームボーイアドバンス,Nintendo DS, DSi, Nintendo Switch SuperH (SH) 各種組み込み機器, 携帯機器, セガサターン, ドリームキャスト 注 : 厳密な命令セットアーキテクチャ名としては, さらに細かく分類される ( 例えば MIPS I, MIPS II, MIPS32, MIPS64 ) 5

歴史的な経緯 当初は, 計算機の設計と具体的な製品は 1 対 1 対応 IBM System/360 (1964) で, 統一的なアーキテクチャによる 計算機ファミリ の概念が現れる 初の商用マイクロプロセッサ Intel 4004 (1971) 以降, 計算機本体とは独立の 部品 としてプロセッサを扱えるようになる ( 計算機メーカとプロセッサメーカの分離 ) 1980 年代頃,RISC への転回 RISC (Reduced Instruction Set Computer): 命令セットを簡素化し, 回路を単純化することで高速化 CISC (Complex Instruction Set Computer): RISC に対して従来のアーキテクチャをこう呼んだ 6

IBM System/360 http://upload.wikimedia.org/wikipedia/commons/8/8d/bundesarchiv_b_145_bild-f038812-0014%2c_wolfsburg%2c_vw_autowerk.jpg コンピュータアーキテクチャ という概念をおそらく最初に明確に導入した商用計算機. オペレーティングシステム (OS) を最初に導入した商用計算機でもある 7

intel 4004 (American History Museum) Busicom 141-PF (Intel Museum, Santa Clara) 8

intel 4004 http://news.com.com/1971+intel+4004+processor/2009-1006_3-6038974-3.html 9

マイクロプロセッサの系譜 (CISC) Intel ZiLOG Motorola MOS 1971 1972 4004 8008 4-bit 8-bit Apple II ファミリーコンピュータ 1974 1976 8080 Z80 PC-8801 MSX 6800 6502 1978 1979 1980 1986 1993 2006 8086 80286 80386 6809 68000 68020 Pentium (RISCの影響) 68060 Pentium Pro (PowerPCへ移行) Core 16-bit IBM PC/AT 32-bit FM-7, FM-77 Macintosh Sun 1 10

マイクロプロセッサの系譜 (RISC) 1982 1983 1984 1985 1986 1988 1991 1994 1995 2010 カリフォルニア大バークレイ校 RISC I RISC II Sun Microsystems SPARC SuperSPARC UltraSPARC Acorn ARM1 ARM2 スタンフォード大 / MIPS MIPS R2000 Apple / IBM / Motorola R3000 IBM POWER ARM6 R4000 PowerPC 601 ARM7 R8000 PowerPC 604 MIPS32 1074K UltraSPARC T3 Cortex-A15 PowerPC A2 日立 SH-1 SH-2 SH-3 SH-4 11

ゲーム機用プロセッサ 任天堂ファミリーコンピュータ (1983), NEC PC エンジン (1987): 6502 セガマーク III (1985): Z80 セガメガドライブ (1988): 68000 + Z80 任天堂スーパーファミコン (1990): 65C816 (6502 の後継 ) セガサターン (1994): SH-2 ソニー PlayStation (1994): MIPS R3000 任天堂 NINTENDO64 (1996): MIPS R4300 セガドリームキャスト (1998): SH-4 ソニー PlayStation2 (2000): EmotionEngine (MIPS R5900 ベース ) 任天堂ゲームキューブ (2001): PowerPC 750 マイクロソフト Xbox (2001): Mobile Celeron (Pentium III ベース ) マイクロソフト Xbox 360 (2005): Xenon (PowerPC ベース ) ソニー PlayStation3 (2006): Cell (PowerPC ベース ) 任天堂 Wii (2006): Broadway (PowerPC ベース ) 任天堂 Wii U (2010): Espresso (Power ベース ) ソニー PlayStation4 (2013): AMD Jaguar (x86 ベース ) マイクロソフト Xbox One (2013): AMD Jaguar (x86 ベース ) 任天堂 Switch (2017): NVIDIA Tegra X1 (ARM Cortex-A57/A53 ベース ) 12

携帯電話 タブレット端末用プロセッサ Qualcomm SnapDragon (ARM) Apple A (ARM) HiSilicon Kirin (ARM) Samsung Exynos (ARM) MediaTek Helio (ARM) NVIDIA Tegra (ARM) Intel Atom (x86) 13

MIPS アーキテクチャ この講義では,MIPS I アーキテクチャを取り上げて計算機の動作を学ぶ 現代的なアーキテクチャの基本形ともいえる構成 組み込み機器を中心に, 世界中で使われている 世界中の大学の講義で取り上げられている 特徴 32 本 32 ビット汎用レジスタ 32 ビット ALU 32 ビットのメモリアドレス空間 PC は汎用レジスタとは別に存在 ( 勝手にロード ストアできない ) 14

MIPS の構造 PC 次 PC 計算 命令デコーダ レジ選ス択タ mux 32x32 ビットレジスタ メモリ mux 制御回路 演算選択 32 ビット ALU アドレス (32 ビット ) データ (8, 16, 32 ビット ) mux は選択回路 15

( 参考 ) MIPS シミュレータ SPIM 参考書 ( パターソン ヘネシー ) でも紹介されているシミュレータ SPIM を使うと,MIPS の動作を確認することができる. http://spimsimulator.sourceforge.net/ UNIX, MacOS, Windows で動作 最低限の動かし方 : File Reinitialize and Load File でアセンブリ言語ファイルを開く Simulator Run/Continue (F5) で実行 あるいは Simulator Single Step (F10) で 1 行ずつ実行講義に対応したサンプルプログラム : http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 16

プログラムの表示 syscall まではシステムが用意した初期化コード レジスタの表示 メモリ値の表示 17

SPIM に読み込ませるアセンブリ言語ファイルの例.text.globl main main: addu $sp, $sp, -0x1000 li $t0, 1 sw $t0, 0($sp) おまじない. 自分のプログラムは main ラベルから始める. レジスタやメモリ等の初期化. わからなくても気にしない. ### ### addu $t0, $sp, 4 lw $t1, 0($sp) sll $t1, $t1, 2 addu $t0, $t0, $t1 or $t2, $zero, 300 sw $t2, 0($t0) addu $sp, $sp, 0x1000 jr $ra 講義中の説明で理解して欲しい部分. main の終了. 18

シミュレータのインストールが面倒な人向け https://cpulator.01xz.net/ Architecture: MIPS32r5 (no delay slots) System: MIPS (no delay slots) SPIM アセンブリ言語のエディタウィンドウの main: の次の行以降に, サンプルコードの main: の次の行以降の内容を貼り付ける Compile and Load (F5 キー ) Step Into (F2 キー ) で 1 行ずつ実行 鏡慎吾 ( 東北大学 ): 計算機工学 2017 (5) 19