Phần mềm mô phỏng vi xử lý PCSpim emu8086
Trang 2Nội dung trình bày
I PCSpim
1 Kiến trúc MIPS
2 Phần mềm PCSpim
II Emu8086
Trang 3Nội dung trình bày
I PCSpim
1 Kiến trúc MIPS
2 Phần mềm PCSpim
II Emu8086
Trang 4Nội dung trình bày
I PCSpim
1 Kiến trúc MIPS
1.1 Lịch sử kiến trúc VXL 1.2 Lịch sử dòng xử lý MIPS 1.3 Kiến trúc MIPS
Kiến trúc tập thanh ghi Kiến trúc tập lệnh
1.4 Hazards
2 Phần mềm PCSpim
II Emu8086.
Trang 51.1 Lịch sử kiến trúc VXL
1980: CISC – Complex Instruction Set Computer
Tối thiểu hóa bộ nhớ lưu trữ lệnh bằng cách tăng tính phức tạp.
Thực hiện nhiều lệnh bậc cao hơn là chỉ thực hiện
1 thao tác.
Các lệnh thường có toán hạng trực tiếp từ bộ nhớ.
Có nhiều chế độ đánh địa chỉ khác nhau.
Thực hiện với cơ chế vi mã.
Các bộ VXL CISC: Digital VAX, Motorola MC
68000, Intel 8086, Pentium.
Trang 61.1 Lịch sử kiến trúc VXL
1990: RISC – Reduced Instruction Set Computer
Vấn đề: dung lượng bộ nhớ tăng nhanh, tốc độ VXL
chưa cao đủ đáp ứng trao đổi dữ liệu
Trang 7Giới thiệu chung
MIPS Microprocessor w/out Interlocked Pipeline Stage
là thiết kế bộ xử lý RISC 32/64 bit của hãng
MIPS Technology
Cuối thập niên 90, kiến trúc MIPS chiếm hơn 30% thị trường RISC.
Kiến trúc MIPS được sử dụng rộng rãi trong
các hệ nhúng, các thiết bị chạy hệ điều hành Windows CE, Cisco router và các thiết bị chơi game như Nintendo 64, Sony PlayStation,
PlayStation 2.
Trang 81.2 Lịch sử dòng xử lý MIPS
Năm 1981, một nhóm tại đại học Standford
do John L.Hennessy đứng đầu đã đưa ra
những thiết kế đầu tiên mở đầu cho những
thế hệ XL MIPS
Năm 1984, Hennessy đã rời đại học Standford
ra ngoài thành lập công ty MIPS Computer
System
Năm 1985, ra phiên bản MIPS đầu tiên R2000
Trang 101.3 Kiến trúc MIPS
1.3.1 Tập thanh ghi MIPS R3000
1.3.2 Tập lệnh MIPS R3000
Trang 111.3.1.Tập thanh ghi MIPS R3000
Tập các thanh ghi của R3000 bao gồm:
32 thanh ghi 32 bit = 31 thanh ghi đa năng + 1 thanh ghi đầu tiên là hằng số 0.
32 thanh ghi dấu phẩy động: $f0,$f1,…,$f31
(dùng thành cặp để biểu diễn số có thực độ chính xác kép).
Hai thanh ghi đặc biệt LO và HI - lưu trữ kết quả của phép nhân/chia Việc truy nhập nội dung các thanh ghi này sử dụng các câu lệnh đặc biệt VD: mflo, mfhi.
Trang 121.3.1.Tập thanh ghi MIPS R3000
Tên Số Ý nghĩa
$zero $0 Hằng số 0
$at $1 Assembler Temporary
$v0-$v1 $2-$3 Giá trị trả lại của hàm hoặc biểu thức
$a0-$a3 $4-$7 Các tham số của hàm
Trang 15Các lệnh số học và logic
Trang 16Các lệnh so sánh
Trang 17Các lệnh rẽ nhánh có đkiện
Trang 18Các lệnh thao tác hằng số
Trang 19Các lệnh nhảy
Trang 20Các lệnh chuyển DL
Trang 21Các lệnh nhân chia
Trang 22Các lệnh ngoại lệ và ngắt
Trang 23Các dịch vụ hệ thống
Trang 241.4 Hazards
Hazards là gì?
Hazards là hiện tượng xảy ra khi ống lệnh pipeline truy cập
1 tài nguyên mà nó chưa sẵn sàng hoặc sau 1 lệnh rẽ nhánh
VD:
addi $t0, $zero, 10 ; $t0 = $zero + 10 add $t1, $zero, $t0 ; $t1=$zero + $t0 MIPS có ống lệnh 5 bước: Fetch - Decode - Execute - Memory - Write back
Câu lệnh thứ hai sử dụng giá trị thanh ghi $t0 khi giải mã lệnh
(bước thứ hai trong ống lệnh)
Vấn đề là giá trị ($t0=10) chưa được ghi vào thanh ghi khi
giải mã lệnh thứ hai >> Giá trị $t1 sẽ không như mong muốn.
Trang 25 Control hazard: Một lệnh rẽ nhánh được thực thi với trễ.
Trang 261.4 Hazards
Các loại Data hazard:
Đọc sau khi ghi
add $t1, $zero, $zero addi $s0, $zero, 0xFF
sub $t0, $s0, $t1
Ghi sau khi đọc
Ghi sau khi ghi
add $t1, $zero, $zero addi $t1, $zero, 0xA
Trang 28Nội dung trình bày
I PCSpim
1 Kiến trúc MIPS
2 Phần mềm PCSpim
II Emu8086
Trang 292 Phần mềm PCSpim
Tổng quan về 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
Demo
Trang 30Giới thiệu chung về Spim(MIPS)
Spim là bộ phần mềm mã nguồn mở, mô phỏng hoạt
động của kiến trúc xử lý MIPS 32bit R2000/R3000
Do giáo sư James Larus khoa Khoa học máy tính, trường đại học University of Wisconsin-Madison thực hiện.
Spim có nhiều phiên bản khác nhau hoạt động trên nhiều nền tảng HĐH:
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 31Đặ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
Trang 32Giao diện phần mềm PCSpim
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
Cửa sổ chính
Cửa sổ Console đầu hiển thị ra của bộ XL
Trang 33Các thao tác với PCSpim
Trang 34Cấ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
Trang 35Cấu trúc chương trình PCSpim
Cấu trúc chương trình PCSpim
.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 36Nội dung trình bày
I PCSpim
1 Phần mềm PCSpim
2 Bộ xử lý MIPS
II Emu8086
Trang 37 Emu8086 là phần mềm mô phỏng vi xử
lý 8086 tích hợp sẵn trình biên dịch
8086 Assembler
Bộ mô phỏng chạy các chương trình
trên máy ảo mô phỏng phần cứng như màn hình, bộ nhớ, các thiết bị vào ra
Các thiết bị ngoại vi khá đa dạng và cho phép user tích hợp thêm vào
Trang 38Đặc điểm của Emu8086
Tích hợp sẵn trình biên dịch cho phép dịch
source code.
Cho phép mô phỏng hoạt động của bộ vi xử
lý 8086 và cho phép thực hiện chương trình trên bộ mô phỏng, cho phép xem các thanh ghi, cờ, xem và chỉnh sửa các ô nhớ trong khi chương trình đang chạy.
Cho phép mô phỏng các phần cứng ngoại vi như: màn hình, máy in, LED, mô tơ bước
Trang 39Giao diện phần mềm
Emu8086
Cửa sổ debug
Trang 40Kết luận
PCSpim và Emu8086 là hai trong số
những phần mềm mô phỏng các bộ XL đượ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 hai 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
Trang 41Kết luận
Hiện nay trên thế giới có rất nhiều khóa học
sử dụng hai 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à KTMT, Ngôn ngữ
Assembly, Các hệ thống VXL
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 sinh viên.