Bài giảng Kiến trúc máy tính - Tuần 11: Bộ xử lý processor (Tiếp theo)

KIẾN TRÚC MÁY TÍNH  
Tuần 11  
BỘ XỬ LÝ  
PROCESSOR  
(Tiếp theo)  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
1
BỘ XỬ LÝ  
Mục đích:  
Hiểu cơ chế thực thi lệnh và các quy ước về thiết kế  
logic  
Thiết kế Datapath với 8 lệnh cơ bản cho một bộ xử lý và  
cách hiện thực thiết kế này.  
Slide tham khảo từ:  
1. Computer Organization and Design: The Hardware/Software Interface,  
Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth  
Edition, 2011.  
2. NUS, Singapore  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
2
BỘ XỬ LÝ  
1. Giới thiệu  
2. Nhắc lại các quy ước thiết kế logic  
3. Xây dựng đường dữ liệu (datapath) đơn giản  
4. Hiện thực datapath đơn chu kỳ  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
3
Hiện thực datapath  
1. Inputs của khối “Registers”, “Control” “Sign-extend”  
03/2017  
4
Datapath với đầy đủ dữ liệu input cho từng khối  
Hiện thực datapath  
1. Inputs của khối “Registers”, “Control” “Sign-extend”  
MUX có  
thêm 0  
và 1 ở  
các ngõ  
vào ???  
????  
03/2017  
5
Datapath với đầy đủ dữ liệu input cho từng khối  
Hiện thực datapath  
Trường op (hay opcode) luôn chứa bits từ 31:26.  
Hai thanh ghi dùng để đọc trong tất cả các lệnh luôn luôn là rs và rt, tại vị trí bits  
từ 25:21 và 20:26.  
Thanh ghi nền cho lệnh load và store luôn là rs và tại vị trí bits 25:21.  
16 bits offset cho beq, lw sw thì luôn tại vị trí 15:0.  
Các thanh ghi đích dùng để ghi kết quả vào ở hai vị trí: Với lw, thanh ghi đích  
tại vị trí bits từ 20:16 (rt), trong khi với nhóm lệnh logic và số học, thanh ghi  
đích ở vị trí 15:11 (rd). Vì vậy, một multiplexer cần sử dụng ở đây để lựa chọn  
thanh ghi nào sẽ được ghi.  
6
Hiện thực datapath  
Datapath với đầy đủ dữ liệu input cho từng khối  
03/2017  
7
Hiện thực datapath  
2. Khối “ALU Control”  
????  
03/2017  
8
Hiện thực datapath  
Bộ ALU của MIPS gồm 6 chức năng tính toán dựa trên 4 bits điều khiển đầu vào:  
Tùy thuộc vào từng nhóm lệnh mà ALU sẽ thực hiện 1 trong 5 chức năng đầu (NOR sẽ  
được dùng cho các phần khác)  
Với các lệnh load word store word, ALU sử dụng chức năng ‘add’ để tính toán  
địa chỉ của bộ nhớ  
Với các lệnh thuộc nhóm logic và số học, ALU thực hiện 1 trong 5 chức năng  
(AND, OR, subtract, add, set on less than), tùy thuộc vào giá trị của trường funct  
(6 bits) trong mã máy lệnh.  
Với lệnh nhảy nếu bằng, ALU thực hiện chức năng ‘subtract’ để xem điều khiện  
bằng đúng không.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
9
Hiện thực datapath  
Như vậy, để sinh ra 4 bits điều khiển ALU, một trong số các cách hiện thực thể sử  
dụng thêm một khối điều khiển “ALU Control”  
“ALU Control” nhận input là 6 bits từ trường funct của mã máy, đồng thời dựa vào 2 bits  
ALUOp” được sinh ra từ khối “Control” để sinh ra output là 4 bits điều khiển ALU, theo  
quy tắc như bảng sau:  
Một gợi ý để sinh ra 4 bits điều khiển ALU dựa vào trường “opcodetrường “funct” của  
mã máy.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
10  
Hiện thực datapath  
Bảng sự thật: Từ quy tắc hoạt động, bảng sự thật gợi ý cho khối “ALU Control” như  
sau  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
11  
Hiện thực datapath  
3. Khối điều khiển chính “Control”  
???  
03/2017  
12  
Hiện thực datapath  
Các tín hiệu điều  
Tác động khi ở mức  
Tác động khi ở mức cao  
khiển  
thấp  
RegDst  
Thanh ghi đích cho thao tác  
ghi sẽ từ thanh ghi rt (bits từ  
20:16)  
Thanh ghi đích cho thao tác ghi sẽ từ thanh ghi rd (bits từ 15:11)  
RegWrite  
Khối “Registers” chỉ thực hiện Ngoài chức năng đọc, khối “Register” sẽ thực hiện thêm chức năng  
mỗi chức năng đọc thanh ghi  
ghi. Thanh ghi được ghi là thanh ghi có chỉ số được đưa vào từ ngõ  
“Write register” dữ liệu dùng ghi vào thanh ghi này được lấy từ  
ngõ “Write data”  
ALUSrc  
Branch  
Input thứ hai cho ALU đến từ  
“Read data 2” của khối  
“Registers”  
Input thứ hai cho ALU đến từ output của khối “Sign-extend”  
Cho biết lệnh nạp vào không  
phải “beq”. Thanh ghi PC  
nhận giá trị là PC + 4  
Lệnh nạp vào là lệnh “beq”, kết hợp với điều kiện bằng thông qua  
cổng AND nhằm xác định xem lệnh tiếp theo có nhảy đến địa chỉ mới  
hay không. Nếu điệu kiện bằng đúng, PC nhận giá trị mới từ kết quả  
của bộ cộng “Add”  
MemRead  
MemWrite  
(Không)  
(Không)  
Khối “Data register” thực hiện chức năng đọc dữ liệu. Địa chỉ dữ liệu  
cần đọc được đưa vào từ ngõ “Address” nội dung đọc được xuất ra  
ngõ “Read data”  
Khối “Data register” thực hiện chức năng ghi dữ liệu. Địa chỉ dữ liệu  
cần ghi được đưa vào từ ngõ “Address” nội dung ghi vào lấy từ  
ngõ “Write data”  
MemtoReg  
Giá trị đưa vào ngõ “Write  
data” đến từ ALU  
Giá trị đưa vào ngõ “Write data” đến từ khối “Data memory”  
03/2017  
13  
Tác động của các tín hiệu điều khiển  
Hiện thực datapath  
Giá trị các tín hiệu điều khiển tương ứng với mỗi lệnh như sau:  
Khối “Control” trong datapath nhận input là 6 bits từ trường “opcode” của mã  
máy, dựa vào đó các tín hiệu điều khiển được sinh ra tương ứng như bảng.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
14  
Hiện thực datapath  
Bảng sự thật khối “Control”:  
Bảng sự thật khối “Control”  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
15  
Hiện thực datapath  
3. Khối điều khiển chính “Control”  
???  
03/2017  
16  
Hiện thực datapath  
3. Khối điều khiển chính “Control”  
03/2017  
17  
Hiện thực datapath  
Hiện thực bộ xử đơn chu kỳ (Single-cycle implementation hay single  
clock cycle implementation): là cách hiện thực sao cho bộ xử đáp ứng thực  
thi mỗi câu lệnh chỉ trong 1 chu kỳ xung clock đòi hỏi chu kỳ xung clock  
phải bằng thời gian của lệnh dài nhất.  
Cách hiện thực bộ xử như đã trình bày trên là cách hiện thực đơn chu kỳ:  
Lệnh dài nhất lw, gồm truy xuất vào “Instruction memory”, “Registers”, “ALU”,  
“Data memory” và quay trở lại “Registers”, trong khi các lệnh khác không đòi hỏi tất  
cả các công đoạn trên chu kỳ xung clock thiết kế phải bằng thời gian thực thi lệnh  
lw.  
Mặc hiện thực bộ xử đơn chu kỳ có CPI = 1 nhưng hiệu suất rất kém, vì  
một chu kỳ xung clock quá dài, các lệnh ngắn đều phải thực thi cùng thời gian  
với lệnh dài nhất.  
vậy, Hiện thực đơn chu kỳ hiện tại không còn được sử dụng (hoặc chỉ  
thể chấp nhận cho các tập lệnh nhỏ)  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
18  
Xem lại Datapath với từng nhóm lệnh  
03/2017  
19  
Các đường đlà các đường hoạt động khi lệnh thuộc nhóm logic và số học thực thi  
Xem lại Datapath với từng nhóm lệnh  
03/2017  
20  
Các đường đlà các đường hoạt động khi lệnh lw thực thi  
Tải về để xem bản đầy đủ
pptx 24 trang yennguyen 12/04/2022 5480
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Tuần 11: Bộ xử lý processor (Tiếp theo)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptxbai_giang_kien_truc_may_tinh_tuan_11_bo_xu_ly_processor_tiep.pptx