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ệ
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
2. Phần mềm PCSpim
II. Emu8086.
4
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.
5
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.
6
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.
7
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.
8
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
9
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
10
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
11
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.
12
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ề
13
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ả
14
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
15
Các lệnh số học và logic
16
Các lệnh so sánh
17
Các lệnh rẽ nhánh có đkiện
18
Các lệnh thao tác hằng số
19
Các lệnh nhảy
20
Các lệnh chuyển DL
21
Các lệnh nhân chia
22
Các lệnh ngoại lệ và ngắt
23
Các dịch vụ hệ thống
24
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.
25
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ễ.