Tải bản đầy đủ (.ppt) (41 trang)

Phần mềm mô phỏng vi xử lý PCSpim and emu8086

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (862.82 KB, 41 trang )

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ễ.

×