7
Bài thí nghim Kiến trúc máy tính 2 2010 Khoa Điện t- Vin thông Page 1 Bài 2. Hoạt động ca kthuật đường ng (Bài thí nghiệm này được biên son da trên các bài thí nghim ca Jan Eric Larsson, Mats Brorsson và Tobias Harms [4]) 1 Mục đích Trong bài thí nghim này sinh viên stìm hiu bxlý MIPS có sdng kthuật đường ng (eng. pipeline). 2 Công cBài thí nghim sdng bphn mm MIPSIT [1] để mô phng hoạt động ca bxlý có sdng kthuật đường ng. 3 Lý thuyết Sinh viên cn nm rõ vkiến trúc tp lnh MIPS và cu trúc bxlý dùng kthuật đường ng (bài ging chương 2). Sách tham kho [3]. Sinh viên cn hiểu các nguyên l{ cơ bản ca kthuật đường ng, các vấn đề xung đột dliu (eng. data hazard), xung đột điều khin (eng. control/branch hazard), các phương pháp giải quyết xung đột như chuyển tiếp (eng. forwarding), rnhánh chm (eng. delayed branch). 4 Thc hin 4.1 Cài đặt và làm quen vi phn mm Ti bcông cMIPSIT tđịa ch: https://sites.google.com/site/fethutca/my- forms/MipsICT.zip?attredirects=0&d=1 . Gii nén tp MipsICT.zipvà chy tp nhận được MipsICT.exeđể chương trình tự gii nén vào thmc: C:\MipsIT. Nghiên cu bài báo gii thiu vphn mm [2]. Trong bchương trình MIPSIT, ta sẽ sdụng 2 chương trình MIPSITStudio và mipspipe2000: 1) MIPSITStudio là môi trường lp trình và biên dch phn mm cho bxl{ MIPS. Chương trình cho phép người dùng lp trình bng ngôn ngC/Assembly và biên dịch thành mã máy để np vào bphát trin MIPS hoặc để mô phng bxlý. Gi MIPSITStudio bng cách chy tệp “C:\MipsIT\bin\ MipsIt.exe” (Hình 1). Chú ý, khi gi MIPSITStudio, thông báo lỗi “Failed to open com portcó thbqua bng vic bấm nút “OK”. Trước khi thc hin vic xây dựng chương trình, cn kiểm tra đường dẫn đến trình biên dch và đường dẫn đến các tệp thư viện và tp include .h (Hình 2).

Bài 2. Hoạt động của kỹ thuật đường ốngdocview1.tlvnimg.com/tailieu/2012/20121026/nguyenvanca2110/bai_2... · Bài thí nghiệm sử dụng bộ phần mềm MIPSIT

  • 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ỳ

Admin
Typewriter
10
Admin
Typewriter
2
Admin
Typewriter
11
Admin
Typewriter
2
Admin
Typewriter
1
Admin
Typewriter
5
Admin
Typewriter
Admin
Typewriter
Admin
Typewriter
ID
Admin
Typewriter
ID
Admin
Typewriter
WB
Admin
Typewriter
0000 0004
Admin
Typewriter
0000 0001
Admin
Typewriter
0000 0004
Admin
Typewriter
0000 0001
Admin
Typewriter
0000 0005
Admin
Typewriter
0000 0001
Admin
Typewriter
0000 0005
Admin
Typewriter
0
Admin
Typewriter
0000 0005
Admin
Typewriter
Admin
Typewriter
WB
Admin
Typewriter
MEM
Admin
Typewriter
MEM
Admin
Typewriter
MEM
Admin
Typewriter
ẼEXE
Admin
Typewriter
EXE
Admin
Typewriter
EXE
Admin
Typewriter
ID
Admin
Typewriter
ID
Admin
Typewriter
2
Admin
Typewriter
2
Admin
Typewriter
3
Admin
Typewriter
3
Admin
Typewriter
3
Admin
Typewriter
4
Admin
Typewriter
4
Admin
Typewriter
4
Admin
Typewriter
5

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