1. Trang chủ
  2. » Giáo án - Bài giảng

Tìm hiểu phần mềm mô phỏng PCSPIM

15 492 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 174,5 KB

Nội dung

LỜI MỞ ĐẦU Ngày nay con người của chúng ta đang sống với sự phát triển mạnh mẽ của khoa học và công nghệ, kèm theo với sự ra đời của máy tính, ngành công nghệ thông tin đã ra đời giúp c

Trang 1

CÔNGTHƯƠNG TẬP ĐOÀN DỆT MAY VIỆT NAM TRƯỜNG CAO ĐẲNG KINH TẾ-KỸ THUẬT VINATEX

KHOA CÔNG NGHỆ THÔNG TIN

KIẾN TRÚC MÁY TÍNH

ĐỀ TÀI: TÌM HIỂU PHẦN MỀM MÔ PHỎNG PCSPIM

GVHD:

NHÓM THỰC HIỆN:

TP.HỒ CHÍ MINH 06/2011

Trang 2

LỜI MỞ ĐẦU

Ngày nay con người của chúng ta đang sống với sự phát triển mạnh mẽ của khoa học và công nghệ, kèm theo với sự ra đời của máy tính, ngành công nghệ thông tin đã ra đời giúp cho con người tổ chức khai thác và sử dụng có hiệu quả các nguồn tài nguyên thông tin cũng như mọi tiềm năng trong tất cả các hoạt động của chúng ta.Bộ môn học kiến trúc máy tính là một ứng dụng của công nghệ thông tin

nó đã giúp chúng ta hiểu rõ hơn về lịch sử phát triển của máy tính các biến đổi cơ bản của hệ thống số, các bảng mã thông dụng , tập lệnh, các tác vụ mà máy tính có thể thực hiện…Để hổ trợ cho việc học tập cũng như nghiên cứu, phần mềm PCSpim

đã ra đời Đây là một phần mềm mô phỏng giúp cho người học dễ dàng thực hiện các thao tát trên nó dể dàng hơn so với máy tính thật nhất là việc nghiên cứu và phát triển các bộ vi xử lý Nhằm giúp các bạn hiểu rõ hơn phần nào về hoạt động cũng như cấu trúc phần mềm này chúng em chọn nghiên cứu đề tài :”Tìm hiểu phần mềm

mô phỏng PCSPIM” cho bài tiểu luận của mình Vì lý do thời gian cũng như kiến thức có hạn nên bài tiểu luận còn nhiều thiếu sót, rất mong nhận được ý kiến đóng góp của quý thầy cô cũng như các bạn

Trang 3

Lời mở đầu

Nội dung

Tổng quan về phần mềm mô phỏng PC SPIM

Đặc điểm Spim

Giao diện PCSpim

Các thao tác với PCSpim

Cấu trúc chương trình PCSpim

Cú pháp hợp ngữ assembler

System calls

Các lệnh và chương trình trong PCSPIM

Chương trình minh họa

MỤC LỤC

Trang 4

Giới thiệu chung về PCSpim(MIPS)

PCSPIM là phần mềm mô phỏng có thể chạy chương trình cho MIPS R2000/R3000RISC computer (MIPS là viết tắt của Microprocessor without Interlocked Pipeline Stages, là kiến trúc bộ tập lệnh RISC phát triển bới MIPS Technologies) do giáo

sư James Laurus khoa Khoa học máy tính, trường đại học University of Wisconsin-Madison thực hiện SPIM có thể đọc và thực hiện các file chứa ngôn ngữ assembly SPIM là bản chất chứa trong hệ thống để chạy các chương trình chứa gỡ rối và giao diện

để phục vụ hệ điều hành

Sự phát triển của môi trường SPIM được sử dụng phát triển phần mềm cho các nền tảng phần cứng cũng như cho các mô phỏng khác nhau.Phần mềm mô phỏng có thể cung cấp môi trường lập trình làm việc tốt hơn máy thực tế Ví dụ SPIM có giao diện window tốt có thể sửa được hầu hết các lổi máy tính thực tế SPIM là công cụ hữu hiệu cho việc học phần cứng máy tính và chương trình có thể chạy trên nó vì nó thực hiện bằng phần mềm, có thể dễ dàng chỉnh sửa, thêm câu lệnh mới, xây dựng hệ thống mới như bộ đa xử

lý, hoặc chọn dữ liệu đơn giản

Sự mô phỏng máy ảo của MIPS: với tập lệnh MIPS hầu hết các máy tính RISC khó có thể lập trình trực tiếp.Sự khó khăn có thể được giải quyết từ khi những máy tính được thiết kế để lập trình bằng ngôn ngữ bậc cao và giao diện thiết kế cho trình biên dịch, không phải người lập trình.Hơn thế nữa nó vẫn giống với phần cứng hiện tại

Spim có nhiều phiên bản khác nhau hoạt động trên nhiều nền tảng hÖ ®iÒu hµnh:

 Unix, Linux và Mac OS X có 2 phiên bản:

 Spim: thao tác trên giao diện terminal đơn giản

 Xspim: thao tác trên cửa sổ đồ họa

 Microsoft Windows có 2 phiên bản:

 Spim: thao tác trên giao diện terminal đơn giản

 PCSpim: thao tác trên cửa sổ đồ họa của Windows

(PCSpim 7.2.1 - Windows XP)

Trang 5

Đặc điểm của Spim:

 Cho phép đọc và thực thi các mã chương trình viết bằng ngôn ngữ Assembly cho các bộ xử lý MIPS32

 Cung cấp trình gỡ lỗi

 Cung cấp 1 tập các dịch vụ tối thiểu của 1 hệ điều hành (system call)

 Hỗ trợ tốt cho nghiên cứu hoạt động mô phỏng 1 bộ VXL

 Được sử dụng làm thực hành cho môn KTMT ở rất nhiều trường đại học trên thế giới

Giao diện phần mềm PCSpim

Bao gồm cửa sổ chính và cửa sổ console

Cửa sổ chính bao gồm:

• Phần trên cùng hiển thị nội dung của 32 thanh ghi của CPU và FPU Nội dung sẽ tự động cập nhật khi chương trình hợp ngữ chạy

• Phần dưới kế tiếp hiển thị mã của chương trình ở dạng hợp ngữ, dạng mã máy (số hex cột thứ 2 từ trái qua), và địa chỉ tương ứng của mỗi lệnh (cột đầu tiên bên trái)

• Phần dưới kế tiếp hiển thị dữ liệu khai báo trong chương trình hợp ngữ (ví dụ:

mảng hay chuỗi) và dữ liệu trong vùng ngăn xếp khi chương trình hợp ngữ được

thực thi

• Phần dưới cùng hiển thị các thông tin phụ của SPIM, thông tin về lỗi nếu có

Chương trình hợp ngữ muốn chạy được phải được load trước Đế load chương trình hợp ngữ (ở dạng một file có đuôi mở rộng là *.asm hay *.s), thực hiện thao tác File menu -> Open -> chọn file chứa chương trình cần load Để tạo file *.asm, chúng ta có thể dùng các chương trình soạn thảo thô như Notepad, Notepad++, EditPlus…

Trang 6

Cửa sổ Console đầu hiển thị ra của bộ xử lý

Sau khi chương trình hợp ngữ đã được load, chúng ta có thể thực hiện chạy chương trình

và quan sát sự thay đối giá trị các thanh ghi, các ô nhớ, vị trí và lệnh đang được thực thi

… Các tác vụ chạy chương trình ở trong Simulator menu Các bước để chạy và quan sát quá trình chạy của chương trình hợp ngữ trên PCSpim:Chọn Simulator -> Breakpoints… (hoặc nhấn

Ctrl+B) Cửa sổ hiện ra điền vào textbox Address giá trị 0x00400000, chọn Add

Vùng thanh ghi trong CPU và FDU

Lệnh: đ/c + mã lệnh + lệnh gợi nhớ

Bộ nhớ chương trình + Stack Thông báo của PCSpim

Trang 7

•Chọn Simulator -> Go (hoặc nhấn F5) Điền giá trị 0x00400000 vào texbox Starting Address,

chọn OK Giá trị của thanh ghi PC lúc này là

0x00400000

•Chọn Simulator -> Single Step (hoặc nhấn

F10) để chạy từng dòng lện trong chương trình

Chúng ta có thể quan sát kết quả thực hiện

thông qua giá trị của các thanh ghi, các ô nhớ

liên quan

Cách khác để chạy chương trình nguồn:

Simularor -> SetValue…, cửa sổ hiện ra, điền

vào textbox Register Name giá trị PC, điền vào

textbox Value giá trị 0x00400000 Sau đó nhấn F10 để chạy từng bước hay F5 để chạy cho đến khi gặp breakpoints

Các thao tác với PCSpim

• Load mã assembly (*.s)

• Mô phỏng hoạt động

• Chế độ debug

 Chạy từng lệnh

 Chạy N lệnh

 Chạy chương trình

• Breakpoint

• Cho phép xem giá trị các thanh ghi

Trang 8

Cấu trúc chương trình PCSpim

File mã nguồn assembly là các file text có chứa phần khai báo dữ liệu và mã chương trình

Các khai báo dữ liệu:

Được đặt trong phần chương trình với khai báo data

Dùng để khai báo tên các biến sử dụng trong chương trình

Mã chương trình

Được đặt trong phần chương trình với khai báo text

Chứa mã lệnh của chương trình

Điểm bắt đầu đặt tại nhãn main:

Điểm kết thúc nằm sau lời gọi hệ thống để thoát

Chú thích

Trong 1 dòng, mọi ký hiệu đặt sau dấu # đều được coi là chú thích và được bỏ qua khi dịch mã nguồn

.data

(Khai báo hằng và biến.)

text # Main (must be global)

globl main

main: (Bắt đầu chương trình.)

li $v0, 10 # Syscall to exit

syscall

Trang 9

Cú pháp chơng trình hợp ngữ assembler

Chú thích trong ngôn ngữ assembler bắt đầu bằng kí hiệu # Mọi kí hiệu sau dấu #

đợc bỏ qua trong chơng trình dịch

Xác định kí tự gồm cả chữ và số một cách tuần tự, dấu gạch chân ( _ ), dấu chấm (.) mà không bắt đầu bằng chữ số

Ký tự đợc đóng mở bằng dấu ngoặc kép (“) Kí tự đặc biệt giống nh quy ớc trong C:

Newline \n Tab \t Quote \”

Spim tích hợp tập nhỏ của hớng dẫn assembler cung cấp bởi MIPS assembler:

.align n : sắp thẳng hàng số lợng đã cho giới hạn ranh giới 2n byte

.ascii str : lu trữ string trong bộ nhớ, không có giá trị trả về rỗng

.asciiz str : lu trữ string trong bộ nhớ, giá trị trả về bằng rỗng

.byte b1,…,bn : lu trữ n giá trị byte liên tiếp trong bộ nhớ

.data <addr> : theo dữ liệu nên đợc lu trữ trong đoạn dữ liệu Nếu không bắt buộc, items

có thể lu trữ bắt đầu bằng địa chỉ addr

.double d1,…,dn: Lu trữ n số thực dấu chấm động chính xác double tuần tự trong bộ nhớ .extern sym size : trình bày số lợng đã cho đợc lu trữ trong sym là kích cõ byte lớn và là

kí hiệu toàn cục Câu lệnh này cho phép assembler để lu trữ số lợng đã cho trên đoạn dữ liệu phân chia có hiệu quả khi truy nhập vào thanh ghi $gp

.float f1,…,fn : lu trữ số thực với độ chính xác đơn tuần tự trong bộ nhớ

.globl sym : trình bày kí tự sym là toàn cục và có thể đợc tham chiếu từ file khác

.half h1,…,hn : lu trữ n -16 bit số lợng tuần tự trong bộ nhớ

.kdata <addr> : dòng dữ liệu nên đợc lu trữ trong nhân đoạn dữ liệu Nếu addr không bắt buộc, items đợc lu trữ bắt đầu bằng địa chỉ addr

Trang 10

.ktext <addr> : item tiếp theo đợc đặt vào trong nhân của đoạn văn bản Trong SPIM, những iems này có thể chỉ là câu lệnh hoặc các từ ( nh word đợc chỉ huy ở vị trí thâp hơn) Nếu không bắt buộc, items có thể lu trữ bắt đầu bằng địa chỉ addr

.space n : phân phối n byte không gian trong đoạn hiện hành

.text <addr> : items tiêp theo đợc đặt vào trong đoạn văn bản của ngời sử dụng

.word w1,…,wn :lu trữ n 32 bít số lợng tuần tự trong bộ nhớ

System calls:

SPIM cung cấp tập lệnh phục vụ hệ điều hành gọi là lệnh system call (syscall) Để yêu cầu phục vụ, chơng trình load mã gọi hệ thống vào trong tranh ghi $v0 và các đối số vào thanh ghi $a0….$a3 (hoặc là $f12 cho giá trị số thực dấu chấm động Lời gọi hệ thống (system calls) trả lại giá trị đặt kết quả vào thanh ghi $v0 (hoặc $f0 để cho kết quả

số thực dấu chấm động) Ví dụ, in “the answer = 5”, sử dụng lệnh:

.data

Str: asciiz “the answer = “

.text

li $v0, 4 #system call code for print_str

la $a0, str #address of string to print

syscall#print the string

li $v0, 1 #system call code for print_int

li $a0, 5 #interger to print

syscall #print it

print_int : đa số nguyên qua và in nó trên cửa sổ console

print_float : in số thực dấu chấm đơn

Trang 11

print_double : in số loại double.

print_string : lệnh qua con trỏ để trả về giá trị null, nó đợc viết trên cửa sổ console

read_int,read_float, và read_double đọc toàn bộ dòng vào bao gồm cả dòng mới.read_string : có nhiều sematics nh trong th viện thờng lệ của Unix fgets

Cỏc bộ tập lệnh và chương trỡnh trong PCSPIM

1.Cỏc tập lệnh luận lý:

And ori nor

Andi xor sll

Or xori srl

Thiết lập cỏc tham số trong menu Simulator -> Settings:

Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed

Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF

2.Cỏc lệnh số học:

Thiết lập cỏc tham số trong menu Simulator -> Settings:

Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed

Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF

Cỏc lệnh thao tỏc bộ nhớ :

Add addu div multu

Addi sub divu mfhi

Addiu subu mult mflo

Trang 12

Lb lui sb

Lbu lw sh

Lh lhu sw

Thiết lập các tham số trong menu Simulator -> Settings:

Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed,Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF

3.Các lệnh nhảy:

Thiết lập các tham số trong menu Simulator -> Settings:

Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed

Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF

4.Các lệnh xử lý chuổi, mảng:

Thiết lập các tham số trong menu Simulator -> Settings:

Bare Machine ON, Allow Pseudo Instructions OFF, Load Trap File OFF, Delayed

Branches ON, Delayed Loads ON, Mapped IO OFF, Quiet OFF

5.Ngoài ra còn có các tập lệnh và chương trình như:lệnh mã giả mở rộng, các chương trình xử lý xuất nhập, dùng stack tính toán biểu thức, gọi hàm đơn giản, gọi hàm dùng stack, quản lý biến cục bộ và gọi hàm sử dụng stack pointer và frame pointe.

J bne slti

Beq bltz sltu

Bgez slt sltiu

Add div mflo slt,slti

Addi divu mult sltu,sltiu

Addiu j multu sra

Addu lb nor srl

And lbu or sub

Andi lh ori subu

Beg lhu sb sw

Bgez lui sh xor

Bltz lw sll xori

Bne mfhi

Trang 13

Ch¬ng tr×nh nguån minh häa:

.data

szChao: asciiz "Xin chao cac ban\n"

szYeucaunhap: asciiz "Moi ban nhap vao so nguyen (Enter de ket thuc):" szKetqua: asciiz "Ket qua phep cong:"

szCRLF: asciiz "\n"

.text

.globl main

main:

# Buoc 1: Dua thong bao xin chao

li $v0,4

la $a0,szChao

syscall

Lap:

# Thong bao nhap 1 so

li $v0,4

la $a0,szYeucaunhap

syscall

# Doc gia tri, cat vao thanh ghi $s0

li $v0,5

syscall

Trang 14

move $s0,$v0

# Tinh nhan doi

addu $a0,$s0,$s0

# Dua ra man hinh

li $v0,1

syscall

li $v0,4

la $a0,szCR

syscall

li $v0,11

li $a0,97

syscall

jal Lap

li $v0, 10 # Syscall to exit syscall

Trang 15

Kết luận

PCSpim là một trong số những phần mềm mô phỏng các bộ xử lý được sử dụng rộng rãi nhất tại các trường trên thế giới Ưu điểm lớn nhất của phần mềm này là sự đơn giản trong cách thực hiện rất phù hợp cho mục đích học tập và nghiên cứu

Hiện nay trên thế giới có rất nhiều khóa học sử dụng phần mềm này để bổ trợ cho quá trình học tập Một số môn học sử dụng hai phầm mềm này là kiến trúc máy tính, ngôn ngữ Assembly, các hệ thống vi xử lý

Việc ứng dụng và khai thác hai phần mềm này sẽ bổ trợ cho các môn học về máy tính, nhằm nâng cao kiến thức cũng như kinh nghiệm của người học

Các bạn có thể download chương trình tại:

http://www.cs.wisc.edu/~larus/SPIM/pcspim.zip

Ngoài ra các bạn có thể download tài liệu về Mips tại:

http://www.mediafire.com/?sodotdmlcny

Ngày đăng: 07/12/2016, 15:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w