Computer Architecture

Slides:



Advertisements
Similar presentations
1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
Advertisements

C 언어 Sun Moon University 1 of 25 C 언어 : 강의소개 강의실 : 산 211 담당교수 : 고경철 ( 정보통신공학과 ) 사무실 : 산학협력관 105B 면담시간 : 수업후 1 시간
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
Chapter 9. 컴퓨터설계기초 9-1 머리말 9-2 데이터 처리장치 (Datapath)
Ubiquitous Computing Lab NS-3 Basic 박성진
Sequence Control -Introduction-
Linux/UNIX Programming APUE (The Environment of a UNIX Process)
MIPS Programing Model 및 프로그램
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
9장 가로채기(Interrupt) Slide 1 (of 15).
기본 컴퓨터 프로그래밍 Lecture #6.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
알기 쉽게 해설한 Java 8th edition
강좌 개요 2009년 1학기 컴퓨터의 개념 및 실습.
Operating Systems Overview
컴퓨터구조 – 중간시험 (답안지) 부분점수 (사소한 실수면 -1)
Install & Simulation VLSI 시스템 설계
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
3장 MPU 내부구조 Slide 1 (of 28).
컴퓨터 구조학 정보보호학과.
공학기초설계 Youn-Hee Han 강의 소개 & MinGW & gcc 공학기초설계 Youn-Hee Han
Power Java 제4장 자바 프로그래밍 기초.
PXA255-FPGA 장비 개요 및 실습 Lecture #9.
Kasimov C언어 세미나 1st.
제4장. 제어 유니트 4.1 제어 유니트의 기능 4.2 제어 유니트의 구조 4.3 마이크로 명령어의 형식
7장 마이크로프로세서의 명령어수행과 주소지정 방식 Slide 1 (of 29).
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
PowerPC ABI 김종화.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
Chapter 7. Pentium Processor
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
Geek-OS Project 정영진
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
4장. 컴퓨터 구조에 대한 두 번째 이야기 작성자: 윤성우.
제 1장 시스템 소프트웨어의 개요.
임베디드 소프트웨어 설계.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Chapter 4 The Von Neumann Model.
제1장 시스템 소프트웨어의 개요 컴퓨터시스템 및 하드웨어 구성 컴퓨터의 구성과 기능 시스템프로그램의 개요
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
Computer System Architecture
A Web-Based Little Man Computer Simulator
운영체제 (Operating Systems) (Memory Management Strategies)
모두가 행복한 교육, 미래를 여는 창의인재 2015 개정교육과정 서울숭인초등학교 교사 이소정.
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Operating System Multiple Access Chatting Program using Multithread
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Hello, Python! #3 <부제: 코딩은 혼자하는 것이다>
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
GDB - GNU Debugger 김진용.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture #5 제4장. 제어 유니트.
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
컴퓨터구조 강의소개 정보통신공학과 한성대학교.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
차트 만들기 p.307 미리 x축의 항목과, 데이터 계열의 이름이 나타날 수 있도록 지정하는 것이 편리하다.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Lecture 7 7-Segment LED controller using u-controller
4-1. 명령어 형식.
Presentation transcript:

Computer Architecture SPIM Simulator June-Hyun Moon

LIST SPIM Definition Multiple versions Memory Layout PCSPIM Example Homework

SPIM Definition SPIM은 MIPS R2000/R3000 프로세서들을 위해 작성되어진 프로그램을 실행시키기 위한 소프트웨어 시뮬레이터 SPIM은 어셈블리 언어나 MIPS의 실행할 수 있는 파일들을 읽고 즉시 실행할 수 있다. SPIM은 자체 포함된 시스템 디버거 약간 운영체제 시스템과 같은 서비스들

SPIM of Multiple versions Command-line-driven program 알파벳과 숫자로 이루어 진다. XSPIM X-windows environment Much easier program to learn PCSPIM Windows version of SPIM

Memory Layout . . . 0x7FFFFFFF Stack segment Data that Instruction operate on . . . Instruction Data segment 0x10000000 Text segment 0x00400000 Reserved

PCSPIM Download and Install Windows 기능 레지스터 출력 텍스트 세그먼트 데이터와 스택 세그먼트 Go Single step Multiple steps Breakpoint

PCSPIM Download Downloading PCSPIM http://www.cs.wisc.edu/~larus/spim.html

Executable File Install

Source Code Install Step 1

Source Code Install Step 2

Source Code Install Step 3 F7 - Compile

Source Code Install Step 4 Ctrl + F5 Program Run

Windows Register display Text segments Data segments SPIM messages

General-purpose registers Windows Register display MIPS CPU와 FPU안에 있는 모든 레지스터의 값을 보여준다. General-purpose registers

Windows Text segments PCSPIM이 실행될 때, 자동으로 로드되어지는시스템 코드와 자신의 프로그램으로 부터 명령어들을 출력한다. [0x00400000] 0x8fa40000 lw $4, 0($29) ; 89 : lw $a0, 0($sp) memory address of instruction Source code in assembly file Instruction`s numerical encoding Line number in assembly file Instruction`s mnemonic description

Windows Data segments (Data and stack segments) SPIM messages 프로그램의 스택에 있는 데이터와 자신의 프로그램의 메모리 안에 로드되는 데이터를 출력한다. SPIM messages error 메시지를 보여준다.

Simulator Function Load File → Open 어셈블리 파일을 선택한다. Go Simulator → Go 결과가 콘솔에 출력된다. Single step Simulator → Single Step 한번에 하나의 명령어가 실행된다. Multiple step Simulator → Multiple Step 한번에 주어진 명령어의 수만큼 실행된다. Breakpoint Simulator → Breakpoint 특정 명령어를 실행하기 전에 프로그램을 멈춘다.

Function - Load

Function - Go

Function - Go

Function – Single step

Function – Single step One step

Function – Multiple step

Function – Multiple step Two step

Function - breakpoint

Function - breakpoint

Function - breakpoint

Example Sum .text # text section .globl main # call main by SPIM main: la $t0, value # load address 'value' into $t0 lw $t1, 0($t0) # load word 0(value) into $t1 lw $t2, 4($t0) # load word 4(value) into $t2 lw $t3, 8($t0) # load word 8(value) into $t3 again: beqz $t2, End # t2가 0이면 End로 가고 아니면 다음으로 내려간다 add $t1, $t1, 1 # t1의 값을 하나씩 증가시킨다 add $t3, $t3, $t1 # t3에 t1을 더해 t3에 넣으며 같은 누적한다 sub $t2, $t2, 1 # t2의 값을 하나씩 감소시킨다 j again # again으로 이동시켜 루프를 돌린다 End: sw $t3, 8($t0) # store word $t3 into 8($t0) li $v0, 4 la $a0, msg1 syscall li $v0, 1 move $a0, $t3 .data # data section value: .word 0, 100, 0 # data for addition msg1: .asciiz "SUM of 0~100 Number=>" Sum

System calls System Calls (syscall) Method Example) OS-like services Method Load system call code into register $v0 Load arguments into registers $a0…$a3 After call, return value is in register $v0 Example) li $v0, 4 # print string la $a0, msg1 syscall li $v0, 1 # print integer move $a0, $t3 msg1 = "SUM of 0~100 Number=>“ , $t3 = 5050

System calls