Upload
lamkiet
View
239
Download
17
Embed Size (px)
Citation preview
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông
Page 1
Bài 2. Hoạt động của kỹ thuật đường ống (Bài thí nghiệm này được biên soạn dựa trên các bài thí nghiệm của Jan Eric Larsson, Mats Brorsson
và Tobias Harms [4])
1 Mục đích
Trong bài thí nghiệm này sinh viên sẽ tìm hiểu bộ xử lý MIPS có sử dụng kỹ thuật đường ống (eng.
pipeline).
2 Công cụ
Bài thí nghiệm sử dụng bộ phần mềm MIPSIT [1] để mô phỏng hoạt động của bộ xử lý có sử dụng kỹ
thuật đường ống.
3 Lý thuyết
Sinh viên cần nắm rõ về kiến trúc tập lệnh MIPS và cấu trúc bộ xử lý dùng kỹ thuật đường ống (bài
giảng chương 2). Sách tham khảo [3].
Sinh viên cần hiểu các nguyên l{ cơ bản của kỹ thuật đường ống, các vấn đề xung đột dữ liệu (eng.
data hazard), xung đột điều khiển (eng. control/branch hazard), các phương pháp giải quyết xung
đột như chuyển tiếp (eng. forwarding), rẽ nhánh chậm (eng. delayed branch).
4 Thực hiện
4.1 Cài đặt và làm quen với phần mềm
Tải bộ công cụ MIPSIT từ địa chỉ: https://sites.google.com/site/fethutca/my-
forms/MipsICT.zip?attredirects=0&d=1.
Giải nén tệp “MipsICT.zip” và chạy tệp nhận được “MipsICT.exe” để chương trình tự giải nén vào thứ
mục: “C:\MipsIT”. Nghiên cứu bài báo giới thiệu về phần mềm [2].
Trong bộ chương trình MIPSIT, ta sẽ sử dụng 2 chương trình MIPSITStudio và mipspipe2000:
1) MIPSITStudio là môi trường lập trình và biên dịch phần mềm cho bộ xử l{ MIPS. Chương trình cho
phép người dùng lập trình bằng ngôn ngữ C/Assembly và biên dịch thành mã máy để nạp vào bộ
phát triển MIPS hoặc để mô phỏng bộ xử lý. Gọi MIPSITStudio bằng cách chạy tệp “C:\MipsIT\bin\
MipsIt.exe” (Hình 1). Chú ý, khi gọi MIPSITStudio, thông báo lỗi “Failed to open com port” có thể bỏ
qua bằng việc bấm nút “OK”.
Trước khi thực hiện việc xây dựng chương trình, cần kiểm tra đường dẫn đến trình biên dịch và
đường dẫn đến các tệp thư viện và tệp include .h (Hình 2).
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông
Page 2
Hình 1. Môi trường lập trình cho bộ xử lý MIPS
Hình 2. Xác định đường dẫn trình biên dịch, đường dẫn thư viện và tệp include.
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông
Page 3
2) mipspipe2000 là chương trình mô phỏng hoạt động đường dữ liệu (eng. datapath) của bộ xử lý
MIPS sử dụng kỹ thuật đường ống. Gọi chương trình bằng cách chạy tệp
“C:\MipsIT\bin\mipspipe2000.exe”. (Hình 3)
Hình 3. Chương trình mô phỏng đường ống bộ xử lý MIPS
4.2 Bộ xử lý đường ống thực hiện 1 lệnh số học, logic
4.2.1 Bước 1. Chuẩn bị chương trình hợp ngữ.
Tạo một đề án hợp ngữ (eng. assemble project) trong môi trường MIPSITStudio (Hình 4). Đặt tên đề
án này là Bai2-1. Chọn thư mục để lưu là “C:\MipsIt\Projects\Bai2-1”. Tạo một tệp chương trình hợp
ngữ với tên “bai2-1.s” (Hình 5).
Hình 4. Tạo một project mới trong môi trường MIPSITStudio.
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông
Page 4
Hình 5. Tạo thêm một tệp chương trình hợp ngữ trong đề án.
Soạn thảo đoạn mã hợp ngữ vào tệp chương trình như Hình 6. Biên dịch đề án bằng cách lựa chọn
menu “Build -> Build Bai2-1” hoặc phím F7. Tệp kết quả biên dịch dưới dạng mã nhị phân là
“C:\MipsIT\Projects\Bai2-1\Objects\Bai2-1.out”. Tệp này sẽ được dùng làm tệp đầu vào cho chương
trình mô phỏng.
Hình 6. Chương trình bai2-1.s
4.2.2 Bước 2. Mô phỏng.
Mô phỏng bộ xử l{ MIPS đường ống. Chạy phần mềm mô phỏng “C:\MipsIT\bin\mipspipe2000.exe”.
a. Nạp tệp mô tả cấu trúc đường dữ liệu của bộ xử lý MIPS bằng menu “File->Load Pipeline…”
và lựa chọn tệp “C:\MipsIT\S-script\s.dit” (Hình 7).
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông
Page 5
Hình 7. Nạp tệp mô tả cấu trúc bộ xử lý.
b. Nạp chương trình đã được biên dịch ở Bước 2 bằng menu “File->Open” và lựa chọn tệp
“C:\MipsIT\Projects\Bai2-1\Objects\Bai2-1.out”. Hiện thị cửa sổ thanh ghi và cửa sổ nội
dung bộ nhớ bằng menu “View->Registers” và “Menu->Memory”. Nội dung các thanh ghi có
thể được thay đổi trực tiếp trên cửa sổ thanh ghi (Hình 8).
Hình 8. Thực hiện mô tả cấu trúc bộ xử lý MIPS đường ống.
c. Mô phỏng từng bước hoạt động của bộ xử lý khi nó thực hiện chương trình đã nạp (Sử dụng
phím Step trên thanh công cụ). Trả lời các câu hỏi dưới đây. Chú { mỗi bước mô
phỏng tương ứng với 1 chu kz đồng hồ.
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông Page 6
1
2
3 4
5
6
7
8 9
11
10 1312
14
1
2
34
5
6
7
8 9
11
10 1312
14
Hình 9. Số thứ tự các tín hiệu cần quan sát.
Câu 1. Điền vào bảng dưới đây giá trị các tín hiệu và thời điểm (theo chu kz đồng hồ) và giai đoạn
đường ống (eng. pipeline stage) thực hiện lệnh khi tín hiệu đó thay đổi giá trị khác 0? Các tín hiệu
cần quan sát được đánh số thứ tự như Hình 9. Trong bảng, giá trị của PC, Readdata được điền sẵn
làm mẫu.
add t0, s0, s1
TT Tín hiệu Giá trị Giai đoạn đường ống Chu kỳ đồng hồ
1 PC 8002 0000 IF 1
2 Readdata 0211 4020 IF 1
3 Readregister1
4 Readregister2
5 Readdata1
6 Readdata2
7 ALUInp1
8 ALUInp2
9 ALUresult
10 Writedata
11 MemWBresult
12 MemWrite
13 WBData
14 RegWrite
Bảng 1. Tín hiệu cho lệnh cộng 2 thanh ghi.
Câu 2. Kết quả thực hiện lệnh cộng sẽ xuất hiện ở thanh ghi toán hạng đích sau bao nhiêu chu kz?
……………………………………………………………………………………………………………………………………………………………. Sau 5 chu kỳ
Bài thí nghiệm Kiến trúc máy tính 2 2010
Khoa Điện tử- Viễn thông Page 7
…………………………………………………………………………………………………………………………………………………………….
Câu 3. Thay lệnh cộng trong chương trình bằng các lệnh số học khác (sub, addi), biên dịch lại chương trình
và thực hiện lại việc mô phỏng. Việc thực hiện các lệnh số học khác nhau khác nhau ở giai đoạn pipeline
nào?
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
…………………………………………………………………………………………………………………………………………………………….
4.3 Bộ xử lý đường ống thực hiện lệnh lw, sw.
4.3.1 Bước 1. Chuẩn bị chương trình.
Tạo một đề án mới với tên “Bai2-2” trong môi trường MIPSITStudio. Thêm tệp chương trình “Bai2-
2.s” như Hình 10 dưới đây vào đề án và biên dịch nó thành tệp thực hiện tương tự Mục 4.2.1. Chú
ý, chương trình có khai báo 1 biến Test với giá trị 1.
Hình 10. Chương trình hợp ngữ, cửa sổ bộ nhớ và cửa sổ thanh ghi minh họa lệnh lw.
4.3.2 Bước 2. Mô phỏng
Mô phỏng chương trình hợp ngữ bằng bộ mô phỏng “mipspipe2000” tương tự Bước 2 của Mục
4.2.2. Chú ý, biến Test của chương trình sẽ được đặt ở địa chỉ 80020020 sau các lệnh NOP. Do đó, để
nạp đúng nội dung biến Test vào thanh ghi t0, ta cần đặt giá trị của thanh ghi r4/a0 bằng 80020020
như Hình 10 (phần đánh dấu đỏ). Trả lời các câu hỏi.
Câu 4. Điền vào bảng dưới đây giá trị các tín hiệu và thời điểm (theo chu kz đồng hồ) và giai đoạn
đường ống (eng. pipeline stage) thực hiện lệnh khi tín hiệu đó thay đổi giá trị khác 0? Các tín hiệu
cần quan sát được đánh số thứ tự như Hình 9. Trong bảng, giá trị của PC, Readdata được điền sẵn
làm mẫu.
Việc thực hiện khác nhau ở giai đoạn ID và EXE