lOMoARcPSD| 59285474
1
MSSV: 22521296
Họ tên: Đỗ Duy Tân
CE119-Lab06
1. Thực hành
- Tìm hiểu chức năng của các vùng COMMANDS, EXECTION OPTIONS
VISUALIZATION OPTIONS, EXECUTION STATUS, SCHEMA
LAYOUT và mô tả chức năng của từng vùng?
Trả lời:
- Vùng COMMANDS cung cấp các chức năng thiết yếu ể quan lý chương
trình và giám sát quá trình thực thi trong gia lập WebRISCV, trong ó có:
+ Load Program : Nơi ể tải chương trình ể thực thi
+ Pipeline in New Window: Mở trạng thái và tiến trình pipeline trong cửa sổ
mới
+ System Reset: Đưa toàn bộ hệ thống về mặc ịnh ban ầu
+ Excute All: Chạy toàn bộ lệnh
+ Step Forward: Chạy từng lệnh
+ Step Back: Lùi một lệnh
- Vùng EXECUTIONOPTIONS là vùng cho phép người dùng cấu hình các
tùy chọn liên quan ến quá trình thực thi chương trình, trong ó có:
+ Architecture: Chọn kiến trúc RISC-V ược sử dụng trong quá trình gia lập.
Trong ó có hai lựa chọn là RV64IM hỗ trợ kiến trúc 64 bit và RV32IM hỗ trợ
kiến trúc 32 bit
+ Forwaring: Bật tắt tính năng data forwarding ( xem trước) trong pipeline. Có
các tùy chọn như activated và deactivated.
+ Branch Hazard Handling: Cấu hình cách hệ thống xử lý branch hazards (xung
ột do rẽ nhánh). Trong ó có hai tùy chọn là Flush Instruction (Loại bỏ các lệnh
trong pipeline khi phát hiện rẽ nhánh sai) và Stall Pipeline (Tạm dừng pipeline
cho ến khi quyết ịnh rẽ nhánh ược xác ịnh.)
- Vùng VISUALIZATIONOPTIONS là khu vực cho phép người dùng tùy
chỉnh các cách hiển thị và trực quan hóa dữ liệu trong WebRISCV, trong ó
có: + Popup Elements on Hover: Khi ược kích hoạt ( ánh dấu), người dùng
có thể xem thông tin chi tiết về các thành phần trong trình gia lập bằng cách
di chuột qua các phần tử.
+ Show Data Path: Hiển thị ường truyền dữ liệu (data path) trong kiến trúc
pipeline.
+ Show Control Path: Hiển thị ường truyền iều khiển (control path) trong kiến
trúc pipeline.
lOMoARcPSD| 59285474
2
- Vùng EXECUTIONSTATUS hiển thị trạng thái hiện tại của quá trình thực
thi một chương trình, trong ó có:
+ Vùng thể hiện trạng thái chương trình và hiển thị số chu kỳ ã thực thi +
Execution table: Bang này liệt kê các giai oạn trong quá trình thực thi của
một lệnh (instruction) trong kiến trúc máy tính.
+ Console: là một cửa sổ giao diện hoặc một khu vực hiển thị thông tin liên
quan ến quá trình thực thi, như các thông báo, lỗi hoặc kết qua.
+ Ngoài ra còn có các vùng Data Memory ( bộ nhớ) và Register (thanh ghi) ể ta
có thể theo dõi quá trình truy xuất.
- Vùng SCHEMALAYOUT là một biểu diễn trực quan của kiến trúc vi xử lý.
Nó cho thấy cách các thành phần khác nhau của một CPU tương tác với
nhau ể thực thi các lệnh máy tính
- Tại vùng COMMAND chọn Load Program và chạy các chương trình trong
Example List, chạy từng bước chương trình và quan sát sự thay ổi tại các
vùng, vẽ lưu ồ các lệnh thực thi theo pipeline và chụp lại hình khi chạy ến
câu lệnh cuối cùng của từng chương trình? Trả lời:
lOMoARcPSD| 59285474
3
- Dựa vào các chương trình trong Example List thực thi chương trình ở phần
Bài tập bên dưới (nộp lại code và hình sau khi chạy xong chương trình).
2. Bài tập
Viết chương trình ASM trên trang web mô phỏng kiến trúc RISC-V yêu cầu nhập vào
mã số sinh viên và in ra màn hình tổng các chữ số trong mã số sinh viên. Vì mã số
sinh viên không lưu ược trong 1 thanh ghi hoặc một số int nên cần phải lưu các số
trong mã số sinh viên vào các phần tử trong một mảng A trong bộ nhớ và ọc bộ nhớ
lên ể thực hiện việc tính tổng. Nếu chữ số ở hàng ơn vị của tổng >=5 thì in ra chữ
“TÀI” ngược lại thì in ra chữ “XỈU”.
lOMoARcPSD| 59285474
4
.data in: .asciz "Nhap ma so sinh
vien: " ina: .asciz "Tai" inb: .asciz
"Xiu" inc: .asciz "Tong chu so: "
number: .word 0
.text addi s0,
x0, 8 addi s3,
x0, 5 la a0, in
addi a7, x0, 4
ecall la t0,
number loop:
lw t1, 0(t0)
addi a7, x0, 5
ecall add s2,
s2, a0 addi s1,
s1, 1 beq s1,
s0, exit addi t0,
t0, 4 j loop
exit: slt s4, a0,
s3 beq s4, x0,
else la a0, inb
addi a7, x0, 4
ecall j end
else: la a0, ina
addi a7, x0, 4
ecall end: la
a0, inc addi a7,
lOMoARcPSD| 59285474
5
x0, 4 ecall add
a0, x0, s2 addi
a7, x0, 1 ecall

Preview text:

lOMoAR cPSD| 59285474 1 MSSV: 22521296 Họ tên: Đỗ Duy Tân CE119-Lab06 1. Thực hành
- Tìm hiểu chức năng của các vùng COMMANDS, EXECTION OPTIONS
VISUALIZATION OPTIONS, EXECUTION STATUS, SCHEMA
LAYOUT và mô tả chức năng của từng vùng? Trả lời:
- Vùng COMMANDS cung cấp các chức năng thiết yếu ể quan lý chương
trình và giám sát quá trình thực thi trong gia lập WebRISCV, trong ó có:
+ Load Program : Nơi ể tải chương trình ể thực thi
+ Pipeline in New Window: Mở trạng thái và tiến trình pipeline trong cửa sổ mới
+ System Reset: Đưa toàn bộ hệ thống về mặc ịnh ban ầu
+ Excute All: Chạy toàn bộ lệnh
+ Step Forward: Chạy từng lệnh
+ Step Back: Lùi một lệnh
- Vùng EXECUTIONOPTIONS là vùng cho phép người dùng cấu hình các
tùy chọn liên quan ến quá trình thực thi chương trình, trong ó có:
+ Architecture: Chọn kiến trúc RISC-V ược sử dụng trong quá trình gia lập.
Trong ó có hai lựa chọn là RV64IM hỗ trợ kiến trúc 64 bit và RV32IM hỗ trợ kiến trúc 32 bit
+ Forwaring: Bật tắt tính năng data forwarding ( xem trước) trong pipeline. Có
các tùy chọn như activated và deactivated.
+ Branch Hazard Handling: Cấu hình cách hệ thống xử lý branch hazards (xung
ột do rẽ nhánh). Trong ó có hai tùy chọn là Flush Instruction (Loại bỏ các lệnh
trong pipeline khi phát hiện rẽ nhánh sai) và Stall Pipeline (Tạm dừng pipeline
cho ến khi quyết ịnh rẽ nhánh ược xác ịnh.)
- Vùng VISUALIZATIONOPTIONS là khu vực cho phép người dùng tùy
chỉnh các cách hiển thị và trực quan hóa dữ liệu trong WebRISCV, trong ó
có: + Popup Elements on Hover: Khi ược kích hoạt ( ánh dấu), người dùng
có thể xem thông tin chi tiết về các thành phần trong trình gia lập bằng cách
di chuột qua các phần tử.
+ Show Data Path: Hiển thị ường truyền dữ liệu (data path) trong kiến trúc pipeline.
+ Show Control Path: Hiển thị ường truyền iều khiển (control path) trong kiến trúc pipeline. lOMoAR cPSD| 59285474 2
- Vùng EXECUTIONSTATUS hiển thị trạng thái hiện tại của quá trình thực
thi một chương trình, trong ó có:
+ Vùng thể hiện trạng thái chương trình và hiển thị số chu kỳ ã thực thi +
Execution table: Bang này liệt kê các giai oạn trong quá trình thực thi của
một lệnh (instruction) trong kiến trúc máy tính.
+ Console: là một cửa sổ giao diện hoặc một khu vực hiển thị thông tin liên
quan ến quá trình thực thi, như các thông báo, lỗi hoặc kết qua.
+ Ngoài ra còn có các vùng Data Memory ( bộ nhớ) và Register (thanh ghi) ể ta
có thể theo dõi quá trình truy xuất.
- Vùng SCHEMALAYOUT là một biểu diễn trực quan của kiến trúc vi xử lý.
Nó cho thấy cách các thành phần khác nhau của một CPU tương tác với
nhau ể thực thi các lệnh máy tính
- Tại vùng COMMAND chọn Load Program và chạy các chương trình trong
Example List, chạy từng bước chương trình và quan sát sự thay ổi tại các
vùng, vẽ lưu ồ các lệnh thực thi theo pipeline và chụp lại hình khi chạy ến
câu lệnh cuối cùng của từng chương trình? Trả lời: lOMoAR cPSD| 59285474 3
- Dựa vào các chương trình trong Example List thực thi chương trình ở phần
Bài tập bên dưới (nộp lại code và hình sau khi chạy xong chương trình). 2. Bài tập
Viết chương trình ASM trên trang web mô phỏng kiến trúc RISC-V yêu cầu nhập vào
mã số sinh viên và in ra màn hình tổng các chữ số trong mã số sinh viên. Vì mã số
sinh viên không lưu ược trong 1 thanh ghi hoặc một số int nên cần phải lưu các số
trong mã số sinh viên vào các phần tử trong một mảng A trong bộ nhớ và ọc bộ nhớ
lên ể thực hiện việc tính tổng. Nếu chữ số ở hàng ơn vị của tổng >=5 thì in ra chữ
“TÀI” ngược lại thì in ra chữ “XỈU”. lOMoAR cPSD| 59285474 4
.data in: .asciz "Nhap ma so sinh
vien: " ina: .asciz "Tai" inb: .asciz
"Xiu" inc: .asciz "Tong chu so: " number: .word 0 .text addi s0, x0, 8 addi s3, x0, 5 la a0, in addi a7, x0, 4 ecall la t0, number loop: lw t1, 0(t0) addi a7, x0, 5 ecall add s2, s2, a0 addi s1, s1, 1 beq s1, s0, exit addi t0, t0, 4 j loop exit: slt s4, a0, s3 beq s4, x0, else la a0, inb addi a7, x0, 4 ecall j end else: la a0, ina addi a7, x0, 4 ecall end: la a0, inc addi a7, lOMoAR cPSD| 59285474 5 x0, 4 ecall add a0, x0, s2 addi a7, x0, 1 ecall