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

