Phần mềm mô phỏng VXL PCSpim – Emu8086
Bạn đang xem 20 trang mẫu của tài liệu "Phần mềm mô phỏng VXL PCSpim – Emu8086", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- phan_mem_mo_phong_vxlpcspim_emu8086.ppt
Nội dung text: Phần mềm mô phỏng VXL PCSpim – Emu8086
- Phần mềm mô phỏng VXL PCSpim – Emu8086 Giảng viên: Nguyễn Thành Kiên Bộ môn Kỹ thuật máy tính Khoa Công nghệ thông tin – ĐHBK HN
- Nội dung trình bày I. PCSpim. 1. Kiến trúc MIPS 2. Phần mềm PCSpim II. Emu8086. 2
- Nội dung trình bày I. PCSpim. 1. Kiến trúc MIPS 2. Phần mềm PCSpim II. Emu8086. 3
- Nộ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. 4
- 1.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. 5
- 1.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 ◼ Giải pháp: ◼ Sử dụng nhiều thanh ghi cho kết quả trực tiếp và biến chương trình. ◼ Sử dụng bộ nhớ cached để tăng tốc truy cập bộ nhớ liên tiếp. ◼ Sử dụng kiến trúc Pipeline ◼ Tập lệnh đơn giản. Các bộ VXL RISC: MIPS, Sun SPARC. 6
- Giớ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. 7
- 1.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 8
- 1.2. Lịch sử dòng xử lý MIPS ◼ Sau đó, các dòng XL MIPS liên tục được cải tiến và nâng cấp. ◼ Dòng mới nhất hiện nay là MIPS R16000, đạt tốc độ 800MHz, 64KB cache lệnh, 64KB cache dữ liệu 9
- 1.3. Kiến trúc MIPS 1.3.1. Tập thanh ghi MIPS R3000 1.3.2. Tập lệnh MIPS R3000 10
- 1.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. 11
- 1.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 $t0-$t7 $8-$15 Thanh ghi tạm $s0-$s7 $16-$23 Thanh ghi lưu trữ $t8-$t9 $24-$25 Thanh ghi tạm $k0-$k1 $26-$27 Dự trữ cho nhân OS $gp $29 Con trỏ toàn cục $sp $30 Con trỏ stack $fp $31 Con trỏ frame $ra $32 Địa chỉ trả về 12
- 1.3.2.Tập lệnh MIPS R3000 ◼ Các lệnh của R3000 chia 3 loại: R, I, J. Mỗi lệnh = 6 bit mã lệnh + các DL khác. ◼ Lệnh loại I: ◼ Lệnh loại R: ◼ Lệnh loại J: ◼ Khía cạnh thực hiện lệnh: ◼ Lệnh thật ◼ Lệnh giả 13
- 1.3.2.Tập lệnh MIPS R3000 ◼ Các lệnh số học và logic ◼ Các lệnh so sánh ◼ Các lệnh rẽ nhánh và nhảy ◼ Các lệnh nạp, lưu và di chuyển dữ liệu ◼ Các lệnh xử lý ngoại lệ ◼ Các lệnh đối với dấu phảy động 14
- Các lệnh số học và logic 15
- Các lệnh so sánh 16
- Các lệnh rẽ nhánh có đkiện 17
- Các lệnh thao tác hằng số 18
- Các lệnh nhảy 19
- Các lệnh chuyển DL 20
- Các lệnh nhân chia 21
- Các lệnh ngoại lệ và ngắt 22
- Các dịch vụ hệ thống 23
- 1.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. 24
- 1.4. Hazards ◼ Các loại Hazard: ◼ Structure hazard: Một số thao tác không thể được kết hợp với nhau do vấn đề phần cứng. ◼ Data hazard: Kết quả của một phép toán cần dùng đến một kết quả trước đó nhưng chưa sẵn sàng. ◼ Control hazard: Một lệnh rẽ nhánh được thực thi với trễ. 25
- 1.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 26
- 1.4. Hazards ◼ Giải quyết vấn đề Hazard ◼ Stalls ◼ Giải quyết vấn đề data & control hazard. ◼ Forwarding 27
- Nội dung trình bày I. PCSpim. 1. Kiến trúc MIPS 2. Phần mềm PCSpim II. Emu8086. 28
- 2. 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 29
- Giớ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) 30
- Đặ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. 31
- Giao 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 32
- 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 33
- 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 34
- 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 ◼ Cấu trúc chương trình PCSpim 35
- Nội dung trình bày I. PCSpim. 1. Phần mềm PCSpim 2. Bộ xử lý MIPS II. Emu8086. 36
- Emu8086 ◼ 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. 37
- Đặ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 38
- Giao diện phần mềm Emu8086 Cửa sổ debug Cửa sổ source code Màn hình 39
- Kế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. 40
- Kế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. 41