SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Bài tập lớn kiến trúc máy tính 2013
1
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
====o0o====
BÁO CÁO
BÀI TẬP LỚN KIẾN TRÚC MÁY TÍNH
ĐỀ TÀI:
THIẾT KẾ MIPS 32 BIT
STT Họ và tên MSSV Lớp
1 Nguyễn Quang Hiếu 20101516 ĐT1
2 Phạm Trọng Đồng 20101026 ĐT1
3 Lý Đức Vượng 20102591 ĐT1
4 Lê Hồng Nhung 20101969 ĐT4
Hà Nội, 12/2013
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Bài tập lớn kiến trúc máy tính 2013
2
Mục Lục
A.Lời mở đầu.......................................................................................................................3
B. Nội dung thực hiện..........................................................................................................4
I. Tổng quan về MIPS ......................................................................................................4
1.Đặc điểm kĩ thuật.......................................................................................................4
2. Lịch sử dòng xử lý MIPS..........................................................................................5
3. Các dòng vi xử lý thương mại MIPS đã sản xuất.....................................................5
4. Kiến trúc bộ lệnh.......................................................................................................6
5. Phân loại MIPS.........................................................................................................7
6. Ưu nhược, điểm của MIPS .......................................................................................8
7. Ứng dụng ..................................................................................................................9
II.Nội dung thực hiện .......................................................................................................9
1.Yêu cầu thực hiện ......................................................................................................9
2.Sơ đồ khối..................................................................................................................9
3.Giải quyết xung đột..................................................................................................16
III.Kết quả ......................................................................................................................25
1. Sơ đồ testbench.......................................................................................................25
2. Test code, kiểm thử xung đột..................................................................................25
3. Các phương án giải quyết mở rộng: .......................................................................27
4. Hướng phát triển:....................................................................................................28
C.Kết luận..........................................................................................................................29
Bài tập lớn kiến trúc máy tính 2013
3
A.Lời mở đầu
Trong quá trình phát triển của công nghệ máy tính, con người đã chế tạo ra hàng
ngàn loại máy tính khác nhau. Rất nhiều trong số những máy tính này đã bị quên lãng đi,
chỉ một số ít còn được nhắc lại cho đến ngày nay. Đó là các máy tính với những ý tưởng
thiết kế và nguyên lý hoạt động độc đáo tạo nên một tầm ảnh hưởng lớn đến các máy tính
thế hệ sau nó. Việc tìm hiểu về kiến trúc máy tính giúp chúng ta có những kiến thức cơ
bản để hiểu nguyên lí và cấu tạo của máy, tạo tiền đề để phát triển tạo ra những thế hệ
máy tính tối ưu hơn trong tương lai. Kiến trúc MIPS được sử dụng rỗng rãi trong các
dòng máy tính đồ họa silicon, các hệ thống nhúng, các thiết bị điện tử…..Chính bởi vậy,
nhóm chúng em đã quyết định làm đề tài thực hiện thiết kế MIPS 32bit với chức năng
cơ bản.
Do trình độ cũng như kiến thức còn hạn chế nên bài tập lớn chắc chắn còn nhiều
sai sót, mong cô góp ý để kiến thức và kỹ năng môn học ngày càng hoàn thiện hơn.
Bài tập lớn kiến trúc máy tính 2013
4
B. Nội dung thực hiện
I. Tổng quan về MIPS
MIPS (Microprocessor without Interlocked Pipeline Stages)
Là kiến trúc bộ tập lệnh RISC phát triển bởi MIPS Technologies. Ban đầu kiến trúc MIPS
là 32bit, và sau đó là phiên bản 64 bit. Nhiều sửa đổi của MIPS, bao gồm MIPS I, MIPS
II, MIPSIII, MIPSIV, MIPSV, MIPS32 và MIPS64.
Phiên bản hiện tại là MIPS32 và MIPS64.
Cũng có một vài tuỳ chọn mở rộng, baogồm MIPS-3D (1 tập lệnh đơn giản các câu lệnh
SIMD về dấu chấm động để thực hiện các tác vụ về đồ họa 3D), MIPS16e (khả năng nén
vi lệnh để tiết kiệm không gian bộ nhớ) và MIPS MT (MultirTheading) kiến trúc đa
luồng mới được bổ xung cho hệ thống.
1.Đặc điểm kĩ thuật
Năm 1981, một nhóm các nhà nghiên cứu thuộc đại học Stanford do John L. Hennessy đứng
đầu đã bắt đầu một công trình nghiên cứuvề bộ xử lý MIP đầu tiên. Khái niệm cơ bản là
nhằm tăng đột xuất hiệu năng thông qua sử dụng một đường ống lệnh
(pipelineinstructions), một công nghệ đã được biết đến từ lâu nhưng lại khó phát triển.
Thông thường một đường ống sẽ mở rộng việc chạy một câu lệnh thành vài bước, bắt đầu
thực hiện “bước một” của câu lệnhtrước khi câu lệnh trước hoàn thành. Trong khi đó, thiết
kế truyền thống yêu cầu phải đợi cho đến khi một câu lệnh hoàn thành mới được chạy
câu lệnh tiếp theo.Thiết kế theo pipeline làm giảm đáng kể thời gian dành của CPU khi
thực hiện liên tiếp các câu lệnh.
Mặc dù thiết kế này đã loại trừ một số câu lệnh hữu dụng, đáng kể nhất như là các lệnh
nhân và chia yêu cầu nhiều bước, nhưng nó cho thấy hiệu suất tổng thể của hệ thống tăng
Bài tập lớn kiến trúc máy tính 2013
5
lên rõ rệt bởi vì các vi xử lý có thể chạy ở xung nhịp lớn hơn rất nhiều. Tuy nhiên việc loại
bỏ các câu lệnh trên lại không được các nhà thiết kế thời bấy giờ ủng hộ. Rất nhiều ý kiến
cho rằng thiết kế kiểu đường ống lệnh sẽ không tồn tại được ,nếu chỉ thay một lệnh nhân
phức tạp bằng nhiều lệnh cộng đơn giản thì làm sao hệ thống có thể nhanh hơn được. Tuy
nhiên đã cho thấy tốc độ thuộc về thiết kế đường ống,chứ không phải theo câu lệnh
2. Lịch sử dòng xử lý MIPS
Năm 1984, Hennessy rời trường đại học Stanford để thành lập công ty MIPS Computer
System.Họ cho ra đời thiết kế đầu tiên là R2000 vào năm 1985, sau đó phát triển R3000
vào năm 1998. Những CPU 32 bit này tồn tại trong suốt những năm 1980, và được sử
dụng chủ yếu trong các dòng máy chủ SGI.
Năm 1991 MIPS cho ra đời bộ vi xử lý 64 bit đầu tiên R4000.Tuy nhiên MIPS gặp khó
khăn trong tài chính trong khi tung sản phẩm này ra thị trường. Thiết kế này rất quan
trọng đối với SGI-một trong những khách hàng của MIPS lúc bấy giờ, vì thế SGI đã mua
lại công ty vào năm 1992 để bảo vệ thiết kế không bị mất đi. Từ đó MIPS trở thành một
công ty con của SGI và được biết đến bởi tên MIPS Technologies
3. Các dòng vi xử lý thương mại MIPS đã sản xuất
- R2000 : Xuất hiện trên thị trường vào năm 1985, được bổ sung thêm nhiều câu lệnh
mới, có thể được khởi tạo ở chế độ big-endian hay little-endian, có 32 thanh ghi 32bit
, một trong số đó đảm nhiệm việc xử ý các ngoại lệ và bẫy , trong nhưng không có thanh
ghi mã điều kiện. R2000 cũng hỗ trợ tới 4 bộ xử lý khi 3 bộ còn lại sử dụng cho mục đích
khác.
- R3000 :bổ xung thêm 32kB cho bộ nhơ Cache (và sớm được đưa lên 64kB) cho các
lệnh và dữ liệu, kèm theo đó là cơ chế Cache coherency hỗ trợ cho nhiều bộ xử lý.R3000
cũng bao gồm MMU tính năng phổ biến của họ CPUs kỷ nguyên này
Bài tập lớn kiến trúc máy tính 2013
6
- R4000 :Được đưa ra năm 1991,mở rộng tập lệnh MIPS để hỗ trợ đầy đủ kiến trúc 64bit,
chuyển FTU vào main để tạo ra một hệ thống chip đơn lẻ, xử lý với tốc độ lên đến
100Mhz
- R8000 :Ra đời năm 1994,là thiết kế MIPS siêu vô hướng (superscala) đầu tiên,cho phép
xử lý 2 ALU và 2 phép tính nhớ mỗi chu kỳ.Thiết kế này hỗ trợ tới 6 chip và 4MB cache
mở rộng
- R10000 :Ra đời năm 1995,là thiết kế chip đơn lẻ,chạy với tốc độ cao hơn R8000,có
32kb cache chính cho câu lệnh và dữ liệu
- Ngoài ra còn có R6000,R1 6000,R1 6000A…
4. Kiến trúc bộ lệnh
4.1. Nguyên tắc thiết kế bộ lệnh MIPS
 Tính đơn giản quan trọng hơn tính quy tắc (Simplicity favors regularity)
 Chỉ thị kích thước cố định(32 bit)
 Ít định dạng chỉ thị (3 loại định dạng)
 Mã lệnh ở vị trí cố định(6 bit đầu)
 Nhỏ hơn thì nhanh hơn
 Số chỉ thị giới hạn
 Số thanh ghi giới hạn
 Số chế độ địa chỉ giới hạn
 Tăng tốc các trường hợp thông dụng
 Các toán hạng số học lấy từ thanh ghi (máy tính dựa trên cơ chế load-store)
 Các chỉ thị có thể chứa toán hạng trực tiếp
 Thiết kế tốt đòi hỏi sự thỏa hiệp
 3 loại định dạng chỉ thị
4.2. Một số lệnh trong MIPS
MIPS chỉ cần hỗ trợ 32 thanh ghi là đủ, đánh số từ $0-$31
Bài tập lớn kiến trúc máy tính 2013
7
Mỗi thanh ghi có kích thước 32bit(4 byte). Để đơn giản và dễ dàng trong việc truy xuất
bộ nhớ, tất cả các lệnh đều có chiều dài 32 bit.
• MIPS đã hỗ trợ các nhóm lệnh xử lý dữ liệu:
- Lệnh số học
- Lệnh luận lý
- Lệnh nạp lưu dữ liệu
Ngoài các lệnh xử lý dữ liệu, máy tính còn phải hộ trợ các lệnh điều khiển quá trình thực
thi các lệnh…
4.3. Nguyên tắc lưu dữ liệu trong bộ nhớ
MIPS lưu dữ liệu trong bộ nhớ theo nguyên tắc Alignment Restriction, nghĩa là các đối
tượng lưu trong bộ nhớ phải bắt đầu tại địa chỉ là bội số của kích thước đối tượng.
Như vậy, từ nhớ phải bắt đầu tại địa chỉ là bội số của 4.
MIPS lưu trữ dữ liệu trong bộ nhớ theo nguyên tắc Big Endian, nghĩa là đối với giá trị có
kích thước lớn hơn 1 byte thì byte sẽ lưu tại địa chỉ thấp.
5. Phân loại MIPS
 Đơn xung nhịp: Thiết kế, xử lí 1 lệnh trong vòng 1 chu kì.
o Ưu điểm:
 Đơn giản và dễ hiểu
o Nhược điểm:
 Sử dụng chu kỳ đồng hồ không hiệu quả – chu kỳ đồng hồ được đặt theo lệnh
chậm nhất.
 Các lệnh phức tạp như lệnh nhân dấu phẩy động: Tốn diện tích thiết kế vì cần
nhân đôi một số khối chức năng (VD. bộ cộng) vì chúng không thể được chia
sẻ trong cùng 1 chu kỳ đồng hồ
 Đa xung nhịp:Chia lệnh thành các pha thực hiện: IF, ID, EX, MEM, WB. Mỗi pha thực
hiện trong 1 chu kỳ xung nhịp.
o Ưu điểm:
Bài tập lớn kiến trúc máy tính 2013
8
 Thời gian thực hiện (= số pha) của mỗi lệnh được điều chỉnh tùy thuộc độ phức
tạp của lệnh.
 Các khối chức năng được chia sẻ giữa các pha khác nhau của lệnh do một khối
chức năng cụ thể không cần trong toàn bộ các pha thực hiện của lệnh
o Nhược điểm:
 Các lệnh thực hiện liên tiếp nhau.
 Lệnh trước được thực hiện xong mới đến lệnh sau vì vậy xuất hiện khoảng thời
gian rỗi giữa các khâu.
 Pipeline
o Ưu điểm:
 Kĩ thuật pipeline được đưa ra để tận dụng những thời gian rỗi giữa các khâu.
 Kĩ thuật pipeline sẽ làm tăng tốc độ vi xử lí.
6. Ưu nhược, điểm của MIPS
 Ưu điểm:
 Bộ xử lý truy xuất thanh ghi nhanh nhất (hơn 1 tỉ lần trong 1 giây) vì thanh ghi
là một thành phần phần cứng thường nằm chung mạch với bộ xử lý.
 CPU không phải đợi để thực hiện các tiến trình đơn mà thực hiện cùng lúc
nhiều tiến trình, do đó chu kì của tiến trình được thông suốt
 Không gian bộ nhớ của máy được giải phóng nhiều hơn do khả năng nén vi
lệnh để làm chương trình nhỏ hơn
 Khuyết điểm:
 Do thanh ghi là một thành phần phần cứng nên số lượng cố định và hạn chế.
Do đó, sử dụng phải khéo léo và phức tạp
Bài tập lớn kiến trúc máy tính 2013
9
7. Ứng dụng
Thiết kế MIPS được sử dụng rộng rãi trong các dòng máy tính đồ họa silicon,các hệ
thống nhúng như TiVo thế hệ 2,các thiết bị sử dụng hệ điều hành Windows CE,Cisco
routes và các máy chơi game console như Nitendo 64,Sonyplaystation
II.Nội dung thực hiện
1.Yêu cầu thực hiện
 MIPS 32 bit thực hiện các lệnh cơ bản +, -, and, or, not, lw, sw, beq.
 Thực hiện bằng ngôn ngữ mô tả phần cứng Verilog HDL.
 Giải quyết được các xung đột cơ bản trong MIPS pipeline.
2.Sơ đồ khối
2.1 Sơ đồ khối tổng quát:
Đây là khối xử lý chính của Mips 32 bit.
o Đầu vào :
 Instr[31:0] : Mã lệnh được lấy từ bộ nhớ lệnh
 ReadData[31:0] : Dữ liệu được đọc ra từ bộ nhớ dữ liệu.
Bài tập lớn kiến trúc máy tính 2013
10
o Đầu ra :
 MemWrite : Tín hiệu điều khiển phát ra để yêu cầu ghi vào bộ nhớ dữ liệu.
 ALUOut[31:0] : Dữ liệu sau khi tính toán từ bộ ALU
 WriteData[31:0] : Dữ liệu được ghi vào bộ nhớ dữ liệu.
 PC[31:0] : Tín hiệu PC đi vào bộ nhớ lệnh.
2.2 Thiết kế chi tiết:
Sau đây em xin liệt kê vai trò của một số khối quan trọng của bộ vxl MIPS
a) Khối Control Unit :
Là khối sinh ra các tín hiệu điều khiển cho con Mips khi có lệnh của bên ngoài đưa
vào dưới dạng mã lệnh.
Đầu vào : Op[5:0] , Funct[ 5:0] lấy từ mã lệnh.
Zero lấy từ đầu ra của khối ALU
Đầu ra : Các tín hiệu để điều khiển các khối khác là :
+) Tín hiệu đưa dữ liệu từ bộ nhớ ra thanh ghi Memtoreg
+) Tín hiệu Regwrite, Memwrite
+) Tín hiệu chọn ALUSrc, PCSrc, RegDst,
Bài tập lớn kiến trúc máy tính 2013
11
+) Tín hiệu ALUControl
b) Khối Register File :
Là khối thanh ghi của con Mips. Đầu vào sẽ là địa chỉ của các thanh ghi đưa vào từ
mã lệnh và dữ liệu quay về thanh ghi từ giai đoạn WB. Đầu ra sẽ là dữ liệu nằm
trong thanh ghi mà địa chỉ lệnh trỏ tới.
Đầu vào : +) RegwriteW : tín hiệu cho phép đọc mã lệnh tương ứng vào
thanh ghi qua WB
+) Mã lệnh tương ứng của Rs, Rt : InstrD[25:21], InstrD[20:16]
+) Dữ liệu trả về WriteRegW[4:0] và tín hiệu kết quả ResultW
Đầu ra : Dữ liệu được đọc trong 2 thanh ghi mà mã lệnh truy cập tới địa chỉ của nó
Readdata1, Readdata2
c) Khối ALU : Là khối phục vụ nhiệm vụ tính toán.
Đầu vào : +) Tín hiệu chọn loại tính toán : cộng, trừ, nhân, chia : ALUControl được
sinh ra từ ControlUnit
+) Dữ liệu được đọc từ 2 thanh ghi trong tập thanh ghi Register file
Readdata1, Readdata2 32 bit
Đầu ra: +) Dữ liệu ra sau khi được tính toán ALUOut 32 bit.
+) Tín hiệu Zero sử dụng trong lệnh rẽ nhánh beq, bne.
Bài tập lớn kiến trúc máy tính 2013
12
d) Khối SignExt :
Khối được sử dụng với nhiệm vụ chuyển đổi dữ liệu dịch từ 16 bit trong mã lệnh
thành 32 bit để thực hiện cho nhiệm vụ tính toán.
Đầu vào : Dữ liệu dịch được lấy trong 16 bit cuối của mã lệnh Instr[15:0]
Đầu ra : Dữ liệu dich được chuyển thành 32 bit bằng cách lấy 16 bit đầu bằng bit thứ 16
và 16 bit cuối là Instr[15:0]. y[31:0] = [16(Instr[15]), Instr[15:0]].
Từ các khối trên và một số khối logic cơ bản khác ta xây dựng được bộ MIPS đa
xung nhịp như hình vẽ
Bài tập lớn kiến trúc máy tính 2013
13
Ở đa xung nhịp ta chia lệnh thành 5 giai đoạn IF, ID, EX, MEM, WB. Mỗi giai đoạn được
thực hiện trong một chu kỳ. Trong sơ đồ gồm có các khối chính như là khối Control Unit,
khối Register File, khối ALU, khối SignExt.
2.3. Sơ đồ khối Pipelined.
Từ MIPS đa xung nhịp chúng ta tiến hành pipeline bộ vi xử lý bằng cách thêm
vào các thanh ghi trạng thái IFID, IDEX, EXMEM, MEMWB, PC. Các thanh ghi sẽ thực
hiện nhiệm vụ chuyển tiếp dữ liệu giữa các khâu
a) Stage IFID : Thanh ghi giữa 2 giai đoạn IF và ID. Thanh ghi gồm 64 bit dữ liệu bao gồm
32 bit tín hiệu điều khiển control signals, 32 bit tín hiệu dữ liệu của PC
Đầu vào : +) Tín hiệu clock và reset
Bài tập lớn kiến trúc máy tính 2013
14
+) Tín hiệu để điều chỉnh thanh ghi ghi hoặc dừng ghi bao gồm IF_Flush,
ID_stall
+) Dữ liệu sau khi qua giai đoạn IF : [32:0]IF_Instruction , [32:0]IF_PCAdd4
Đầu ra : +) Dữ liệu chuẩn bị vào giai đoạn ID : [32:0]ID_Instruction, [32:0]ID_PCAdd4
b) Stage IDEX stage : Thanh ghi giữa 2 giai đoạn ID và EX. Thanh ghi chuyển tiếp 118 bit
dữ liệu bao gồm 64 bit dữ liệu của 2 thanh ghi, 32 bit dữ liệu dịch, 15 bit mã lệnh của Rs,
Rt, Rd và 7 bit lưu tín hiệu điều khiển.
Đầu vào : +) Tín hiệu clock,reset.
+) Tín hiệu điều khiển được lưu lại ID_RegWrite, ID_MemtoReg,
ID_MemWrite, ID_ALUControl[2:0], ID_ALUSrc,ID_ RegDst.
+) Dữ liệu 32 bit đọc từ 2 thanh ghi SrcA, SrcB, dữ liệu dịch 32 bit
SignExtlmm.
+) Bit trong mã lệnh thể hiện Rs, Rt, Rd 5 bit.
+) Tín hiệu để xử lý xung đột FlushE.
Đầu ra : +) Tín hiệu điều khiển được lấy ra cho giai đoạn tính toán EX_RegWrite,
EX_MemtoReg, EX_MemWrite, EX_ALUControl[2:0], EX_ALUSrc, EX_RegDst.
+) Dữ liệu 32 bit đọc từ 2 thanh ghi SrcA, SrcB, dữ liệu dịch 32 bit SignExtlmm
cho giai đoạn EX.
+) Bit trong mã lệnh thể hiện Rs, Rt, Rd 5 bit.
c) Stage EXMEM stage : Thanh ghi giữa 2 giai đoạn EX và MEM. Thanh ghi chuyển tiếp 72
bit dữ liệu bao gồm 32 bit dữ liệu ra từ khối ALU, 32 bit dữ liệu để ghi vào bộ nhớ, 5 bit
mã lệnh quay trở lại thanh ghi và 3 bit lưu tín hiệu điều khiển.
Đầu vào : +) Tín hiệu clock, reset.
+) Tín hiệu điều khiển được lưu lại EX_RegWrite, EX_MemtoReg,
EX_MemWrite.
+) Dữ liệu 32 bit lấy ra từ bộ tính toán ALU và dữ liệu 32 bit dùng để lưu trữ
vào bộ nhớ EX_WriteDataa
Bài tập lớn kiến trúc máy tính 2013
15
+) Bit mã lệnh quay trở lại tệp thanh ghi 5 bit
Đầu ra : +) Tín hiệu điều khiển công việc ghi và đọc trong bộ nhớ.
+) Dữ liệu 32 bit lưu trữ vào bộ nhớ M_WriteData, dữ liệu 32 bit từ bộ ALU
M_ALUOut
+) Bit mã lênh quay trở lại tệp thanh ghi 5 bit.
d) Stage MEMWB : Thanh ghi giữa 2 giai đoạn MEM và WB. Thanh ghi chuyển tiếp 71 bit
dữ liệu bao gồm 32 bit dữ liệu được đọc ra từ bộ nhớ, 32 bit dữ liệu tính toán từ bộ ALU
quay trở lại tệp thanh ghi, 5 bit mã lệnh quay về thanh ghi và 2 bit lưu tín hiệu điều khiển.
Đầu vào : +) Tín hiệu clock, reset.
+) Tín hiệu điều khiển M_RegWrite, M_MemtoReg.
+) Tín hiệu dữ liệu 32 bit đọc ra từ bộ nhớ M_ReadData và dữ liệu kết quả từ bộ
ALU 32 bit M_ALU_Result.
+) Bit mã lệnh quay về thanh ghi 5 bit.
Đầu ra : +) Tín hiệu điều khiển M_RegWrite, M_MemtoReg.
+) Tín hiệu dữ liệu 32 bit đọc ra từ bộ nhớ M_ReadData và dữ liệu kết quả từ bộ
ALU 32 bit WB_ALU_Result.
+) Bit mã lệnh quay về thanh ghi.
e) Stage PC : Thanh ghi lưu trữ giá trị của PC cho lệnh tiếp theo. Thanh ghi PC là thanh ghi
32 bit lưu giá trị của tín hiệu PC.
Đầu vào : +) Tín hiệu clock,reset
+) Tín hiệu PC 32bit.
+) Tín hiệu để xử lý xung đột StallF
Đầu ra : +) Tín hiệu ra PCF 32 bit để đưa vào IMEM( Instruction Memory).
f) Khối Hazard : Dùng để xử lý xung đột gặp phải trong con Mips pipelined. Khi xảy ra các
hiện tượng xung đột thì sẽ có tín hiệu báo xung đột về khối Hazard và từ đấy sẽ phát các
tín hiệu để điều khiển các thanh ghi sao cho xử lý được các xung đột xảy ra.
Đầu vào : +) Các bit mã lệnh của các thanh ghi [4:0] rsD, rtD, rsE, rtE.
Bài tập lớn kiến trúc máy tính 2013
16
+) Bit mã lệnh trả về thanh ghi [4:0] WriteRegE, WriteRegM, WriteRegW.
+) Các tín hiệu điều khiển BranchD, MemtoRegE, MemtoRegM, RegWriteM,
RegWriteW, RegWriteM.
Đầu ra : +) Các tín hiệu điều khiển các thanh ghi để xử lí xung đột StallF, StallD,
ForwardAD, ForwardBD, FlushE, [1:0] ForwardAE, [1:0] ForwardBE.
3.Giải quyết xung đột
3.1. Các loại xung đột và phương pháp khắc phục:
3.1.1. Xung đột cấu trúc
a) Đặt vấn đề
Xung đột cấu trúc xảy ra khi 2 lệnh cùng cố gắng sử dụng 1 nguồn tại cùng 1 thời điểm.
Ví dụ như tại 1 thời điểm có 2 lệnh cố gắng ghi và đọc dữ liệu từ tập thanh ghi thì tại thời
điểm đó xung đột xảy ra.
b) Hướng giải quyết
Có 2 phương pháp để có thể khắc phục được dạng xung đột này
- Thực hiện chờ
- Ghi ở chu kì lên và tiến hành đọc ở chu kì xuống
Trong bài này ta lựa chọn phương pháp thứ 2 vì mang lại hiệu năng cao hơn
Bài tập lớn kiến trúc máy tính 2013
17
3.1.2. Xung đột dữ liệu:
a) Đặt vấn đề
Xung đột dữ liệu xảy ra khi toán hạng nguồn của lệnh chưa kịp thời được cập nhật
ở những câu lệnh phía trước đó
Ví dụ có đoạn lệnh sau:
I1: add $s0, $s2, $s3
I2: and $t0, $s0, $s1
I3: or $t1, $s4, $s0
I4: sub $t2, $s0, $s5
1 2 3 4 5 6 7 8
I1 IF ID EX MEM WB
I2 IF ID EX MEM WB
I3 IF ID EX MEM WB
I4 IF ID EX MEM WB
Bài tập lớn kiến trúc máy tính 2013
18
Đoạn mã hợp ngữ trên xảy ra xung đột khi $s0 được sử dụng ở lệnh I2 nhưng chưa
được cập nhật giá trị $s0 tính được ở lệnh I1. Bởi $s0 chỉ có thể được cập nhật ở khâu
WB của I1 (Sau chu kì thứ 5) nhưng để thực hiện được lệnh I2 theo sơ đồ trên thì cần kết
quả cập nhật ở khâu ID (Chu kì thứ 3)
Tương tự lệnh I3 cũng sẽ gặp xung đột như lệnh I2 do kết quả $s0 chưa được cập
nhật. Đến lệnh I4 muốn WB của I1 và ID của I4 cùng diễn ra, vậy để kịp cập nhật được
kết quả $s0 thì cần phải đọc và ghi trong cùng chu kì
b) Hướng giải quyết
Giải quyết xung đột dữ liệu bằng phương pháp chuyển tiếp
Phương pháp chuyển tiếp là phương pháp chuyển tiếp kết quả từ khâu MEM hoặc WB về
khâu EX. Để thực hiện phương pháp này ta thêm bộ dồn kênh vào trước bộ ALU. Tín
hiệu điều khiển lựa chọn nguồn toán hạng cho bộ dồn kênh sẽ được tính toán bởi khối
Hazard Detection. Bộ dồn kênh sẽ chuyển tiếp kết quả từ khâu (MEM hoặc WB) nếu
khâu đó thỏa mãn những điều kiện sau:
- Lệnh ở khâu đó thực hiện hành động viết vào thanh ghi
- Toán hạng đích ở khâu đó trùng với toán hạng nguồn ở khâu EX
- Nếu ở cả khâu MEM và WB đều có toán hạng đích trùng toán hạng nguồn ở EX
thì ưu tiên lựa chọn chuyển tiếp từ khâu MEM vì kết quả tính toán ở khâu MEM là
khâu được cập nhật gần nhất
Bài tập lớn kiến trúc máy tính 2013
19
3.1.3. Xung đột đọc bộ nhớ dữ liệu:
a) Đặt vấn đề
Xung đột bộ nhớ dữ liệu xảy ra khi toán hạng đích chưa kịp được cập nhật dữ liệu
từ bộ nhớ ra để thực hiện câu lệnh tiếp theo.
Ví dụ xét đoạn lệnh
I1: lw $s0, 40($0)
I2: and $t0, $s0, $s1
I3: or $t1, $s4, $s0
I4: sub $t2, $s0, $s5
1 2 3 4 5 6 7 8
I1 IF ID EX MEM WB
I2 IF ID EX MEM WB
I3 IF ID EX MEM WB
I4 IF ID EX MEM WB
Bài tập lớn kiến trúc máy tính 2013
20
Lệnh lw không thể hoàn thành việc đọc xong dữ liệu cho đến chu kì 4, vậy giá trị
của $s0 chưa thể được cập nhật.
b) Hướng giải quyết
Vậy để có thể giải quyết được xung đột trong trường hợp này chúng ta có thể thực
hiện phương pháp chờ.
Bằng cách đợi 1 chu kì như trên hình vẽ, dữ liệu của $s0 có thể được
chuyển tiếp để cập nhật được giá trị của $s0 kịp nạp vào khâu EX của lệnh I2. Đến
chu kì thứ 5 thì $s0 đã kịp thời được cập nhật.
Để thực hiện được việc chờ ta tiến hành thêm tín hiệu Stall vào các thanh
ghi pipeline( PC và IF/ID). Ban đầu các thanh ghi cập nhật giá trị đầu ra mỗi khi
có sườn lên clock, khi Stall xảy ra các thanh ghi pipeline giữ nguyên giá trị.
Ngoài ra, đồng thời với tiến hành Stall ở IF/ID và PC, ta còn tiến hành xóa thanh
ghi E để tránh việc dữ liệu sẽ bị chuyển tiếp một cách liên tục làm sai lệch kết quả
tính toán.
3.1.4. Xung đột điều khiển
a) Đặt vấn đề
Xung đột về điều khiển xảy ra khi thực hiện các lệnh rẽ nhánh. Khi 1 lệnh
rẽ nhánh xảy ra, nó sẽ k biết lệnh tiếp theo phải nạp là lệnh nào bởi tại thời điểm
nạp lệnh chưa xác định được kết quả của lệnh rẽ nhánh đó.
Bài tập lớn kiến trúc máy tính 2013
21
Có 2 phương pháp để chống xung đột trong trường hợp này
o Làm chậm rẽ nhánh: Tiến hành chờ cho đến khi hết xung đột
o Dự đoán rẽ nhánh: Tiến hành nạp các lệnh kế tiếp, đến khi có kết quả của
lệnh rẽ nhánh bắt đầu xét xem rẽ nhánh đúng hay sai. Nếu đúng thì tiếp tục
thực hiện, nếu sai thực hiện xóa hết kết quả tính toán của các lệnh sai.
b) Hướng giải quyết
Trong nội dung bài ta tiến hành theo phương pháp dự đoán rẽ nhánh vì
phương pháp này cho hiệu năng cao hơn
Theo hình vẽ trên, nếu dự đoán rẽ nhánh sai sẽ phải xóa đi 3 lệnh làm giảm hiệu
năng của MIPS. Để tăng hiệu năng của phương pháp này, ta tiến hành dự đoán rẽ nhánh
sớm, nếu rẽ nhánh có sai cũng chỉ phải xóa đi 1 lệnh, cải thiện hiệu năng cho MIPS.
Bài tập lớn kiến trúc máy tính 2013
22
Để tiến hành rẽ nhánh sớm, ta thêm 1 bộ so sánh vào đầu ra của tập thanh ghi. Vậy
kết quả của phép rẽ nhánh sẽ có sau khâu ID chứ không phải chờ đến khâu MEM theo
phương pháp thông thường
Bài tập lớn kiến trúc máy tính 2013
23
Thực hiện phương pháp so sánh sớm dẫn đến 1 xung đột khác khi mà toán hạng
nguồn ở lệnh rẽ nhánh lại trùng với toán hạng đích ở những lệnh phía trước mà chưa kịp
ghi vào thanh ghi. Nếu kết quả của toán hạng đang ở khâu MEM, ta tiến hành phương
pháp chuyển tiếp dữ liệu từ khâu MEM về mỗi khi phát hiện có xung đột. Các bộ dồn
kênh sẽ tiếp tục được sử dụng trong trường hợp này . Bộ dồn kênh sẽ được điều khiển
bằng tín hiệu ForwardAD và ForwardBD lấy từ khối Hazard Detection. Biểu thức logic
của chúng được cho dưới đây:
ForwardAD = (rsD != 0) AND (rsD == WriteRegM) AND RegWriteM
ForwardBD =(rtD != 0) AND (rtD == WriteRegM) AND RegWriteM
Nếu gặp phải trường hợp phía trước rẽ nhánh là câu lệnh lw hoặc kết quả toán
hạng vẫn đang chỉ ở khâu EX thì khi đó ta phải chờ 1 chu kì để kết quả tính toán được
sẵn sàng. Dưới đây là biểu thức logic
StallF = StallD = FlushE = lwstall OR branchstall
branchstall = BranchD AND RegWriteE AND (WriteRegE == rsD OR WriteRegE == rtD) OR
BranchD AND MemtoRegM AND (WriteRegM == rsD OR WriteRegM == rtD)
Bài tập lớn kiến trúc máy tính 2013
24
Sau 3 tiến trình giải quyết xung đột ta thu được sơ đồ cuối có dạng như hình vẽ
dưới
Bài tập lớn kiến trúc máy tính 2013
25
III.Kết quả
1. Sơ đồ testbench
Hình 3:Sơ đồ TESTBENCH của bộ vi sử lý MIPS
2. Test code, kiểm thử xung đột
Nạp file memfile.dat chứa mã lệnh dạng hexa vào testbench và thực hiện bởi MIPS.
Kết quả thực hiện chương trình như sau:
main: addi $2, $0, 5
addi $3, $0, 12
addi $7, $3, _9
or $4, $7, $2
and $5, $3, $4
add $5, $5, $4
beq $5, $7, end
slt $4, $3, $4
beq $4, $0, around
addi $5, $0, 0
around: slt $4, $7, $2
add $7, $4, $5
Bài tập lớn kiến trúc máy tính 2013
26
sub $7, $7, $2
sw $7, 68($3)
lw $2, 80($0)
addi $2, $0, 1
end: sw $2, 84($0)
Ta tính được số chu kì/lệnh: CPI = 20/16
Ta vào register file để xem kết quả thực hiện.Kết quả hiển thị trên trình mô phỏng đúng
với kết quả mong đợi khi đã giải quyết được xung đột.
Kết quả:
Giải quyết được bốn dạng xung đột cơ bản:
-Xung đột cấu trúc
-Xung đột đọc bộ nhớ dữ liệu
-Xung đột dữ liệu
-Xung đột điều khiển
Bằng cách sử dung 3 phương pháp giải quyết xung đột là :
- Forwarding
Bài tập lớn kiến trúc máy tính 2013
27
- Stall
- Branch Pridiction
3. Các phương án giải quyết mở rộng:
Thuật toán Tomasulo được đưa ra vào năm 1967 bởi Robert Tomasulo làm việc
cho hang IBM.Ý tưởng của thuật toán là sử dụng địa chỉ Tag và bit trạng thái để đánh dấu
các thanh ghi, qua đó biết được thanh ghi đó đang bận hay rỗi để sử dụng cho phù hợp.
Định biểu (Schedualing): Sử dụng các vector trạng thái và bảng đặt chỗ
(reservation table) để dánh dấu các trạng thái của các tầng pipeline.Từ đó xác định được
số chu kỳ cần đưa dữ liệu vào để tránh xung đột.
Các kĩ thuật pipelining mới:
Superpipelining: (Siêu ống dẫn)
-Được sử dụng trong dòng VXL MIPS R4000.
-Tăng số tầng Pipeline từ 5 lên 8 tầng.
-Thời gian xử lý n lệnh: T superpiplining = t + (n - 1) * t /8
Tốc độ vi xử lý tăng đáng kể so với kỹ thuật Pipeline 5 tầng, nhưng cũng vì số
tầng tăng mà khả năng xảy ra xung đột cũng cao hơn
Các VXL hiện đại bắt đầu từ d.ng Pen IV sử dụng kỹ thuật ống dẫn
đôi (Dual Pipelining) để tăng tốc độ lên gấp nhiều lần so với kỹ thuật
Pipeline thông thường.
Bài tập lớn kiến trúc máy tính 2013
28
Có thể lấy ví dụ đơn giản khi ta tính toán phép tính 14 * 47 + 5122, nếu là kỹ thuật
pipeline thông thường vẫn phải mất 3 bước là tính 5122, sau đó tính 14 * 27, rồi cuối
cùng cộng 2 kết quả đó lại. Nhưng với kỹ thuật ống dẫn đôi, 2 phép tính 5122 và 14 *
47 được thực hiện cùng 1 lúc trên 2 pipeline khác nhau => giảm được 1 công đoạn thực
hiện tính toán.
4. Hướng phát triển:
-Thiết kế thêm lệnh cho bộ xử lý MIPS
-Thêm tín hiệu ready cho bộ nhớ đọc và ghi
-Mở rộng giải quyết hazard.
-Thêm bộ nhân và bộ chia cho MIPS
-Tối ưu hóa diện tích MIPS
-Áp dụng các kĩ thuật mới vào thiết kế MIPS
Bài tập lớn kiến trúc máy tính 2013
29
C.Kết luận
Sau kì học vừa qua, nhóm em đã hoàn thành bài tập lớn với đề tài thiết kế MIPS
32 bit thực hiện được những lệnh cơ bản. Đề tài thiết kế MIPS là đề tài mang tính thực tế
cao, giúp chúng em thêm hiểu về cấu trúc của bộ vi sử lý MIPS, hỗ trợ cho việc học môn
kiến trúc máy tính.
Quá trình thực hiện bài tập lớn đã giúp chúng em tích lũy thêm được nhiều kinh
nghiệm thiết kế phần cứng.Rèn luyện tư duy phần cứng ,thêm hiểu rõ về bộ vi xử lý rất
thông dụng trên thị trường. Đặc biệt hơn cả, quá trình này cũng giúp chúng em rèn luyện
kĩ năng làm việc nhóm hiệu quả.
Chúng em xin gửi lời cảm ơn chân thành đến cô giáo Tạ Thị Kim Huệ đã giúp
chúng em hoàn thành đề tài này.

Más contenido relacionado

La actualidad más candente

Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)lieu_lamlam
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcducmanhkthd
 
Hệ điều hành (chương 1)
Hệ điều hành (chương 1)Hệ điều hành (chương 1)
Hệ điều hành (chương 1)realpotter
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Nguyễn Công Hoàng
 
Lý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngLý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngTiêu Cơm
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương NamTran Van Cuong
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐỗ Đức Hùng
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Nhóc Nhóc
 
thuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu sothuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu soKimkaty Hoang
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderhoamonkhach
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngJojo Kim
 
Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanhPhan Duy
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)kikihoho
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Nhóc Nhóc
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueKali Back Tracker
 

La actualidad más candente (20)

Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao học
 
Hệ điều hành (chương 1)
Hệ điều hành (chương 1)Hệ điều hành (chương 1)
Hệ điều hành (chương 1)
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
Giáo trình Phân tích và thiết kế giải thuật - CHAP 1
 
Lý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh HoàngLý Thuyết Đồ Thị_Lê Minh Hoàng
Lý Thuyết Đồ Thị_Lê Minh Hoàng
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
 
Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05Kiến trúc máy tính và hợp ngữ bài 05
Kiến trúc máy tính và hợp ngữ bài 05
 
thuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu sothuc hanh xu ly tin hieu so
thuc hanh xu ly tin hieu so
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
 
Slide he dieu hanh
Slide he dieu hanhSlide he dieu hanh
Slide he dieu hanh
 
chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)chuong 5. do thi (phan 1)
chuong 5. do thi (phan 1)
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Luận văn: Bài toán ổn định hóa hệ phương trình điều khiển phi tuyến
Luận văn: Bài toán ổn định hóa hệ phương trình điều khiển phi tuyếnLuận văn: Bài toán ổn định hóa hệ phương trình điều khiển phi tuyến
Luận văn: Bài toán ổn định hóa hệ phương trình điều khiển phi tuyến
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thue
 

Destacado

Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhHa Nguyen
 
Kiem chung vi_mach_report_update
Kiem chung vi_mach_report_updateKiem chung vi_mach_report_update
Kiem chung vi_mach_report_updateĐũa Mốc
 
C2 to chuc he thong pc
C2 to chuc he thong pcC2 to chuc he thong pc
C2 to chuc he thong pcquyen08021995
 
Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08Nhóc Nhóc
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngHuyen Pham
 
Kiến trúc máy tính
Kiến trúc máy tínhKiến trúc máy tính
Kiến trúc máy tínhLE The Vinh
 
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebook
Giáo trình kiến trúc máy tính i   chương 4  mạch logic số - tài liệu, ebookGiáo trình kiến trúc máy tính i   chương 4  mạch logic số - tài liệu, ebook
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebookNguyễn Cảnh Sang
 
đồ áN tốt nghiệp đường ống lvhieu k55
đồ áN tốt nghiệp đường ống lvhieu k55đồ áN tốt nghiệp đường ống lvhieu k55
đồ áN tốt nghiệp đường ống lvhieu k55Hieu Le
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựAskSock Ngô Quang Đạo
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuLê Minh
 

Destacado (12)

Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tính
 
Kiem chung vi_mach_report_update
Kiem chung vi_mach_report_updateKiem chung vi_mach_report_update
Kiem chung vi_mach_report_update
 
Bao cao mon_ky_thuat_vi_xu_ly
Bao cao mon_ky_thuat_vi_xu_lyBao cao mon_ky_thuat_vi_xu_ly
Bao cao mon_ky_thuat_vi_xu_ly
 
Pipelining In computer
Pipelining In computer Pipelining In computer
Pipelining In computer
 
C2 to chuc he thong pc
C2 to chuc he thong pcC2 to chuc he thong pc
C2 to chuc he thong pc
 
Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08Kiến trúc máy tính và hợp ngữ bài 08
Kiến trúc máy tính và hợp ngữ bài 08
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Kiến trúc máy tính
Kiến trúc máy tínhKiến trúc máy tính
Kiến trúc máy tính
 
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebook
Giáo trình kiến trúc máy tính i   chương 4  mạch logic số - tài liệu, ebookGiáo trình kiến trúc máy tính i   chương 4  mạch logic số - tài liệu, ebook
Giáo trình kiến trúc máy tính i chương 4 mạch logic số - tài liệu, ebook
 
đồ áN tốt nghiệp đường ống lvhieu k55
đồ áN tốt nghiệp đường ống lvhieu k55đồ áN tốt nghiệp đường ống lvhieu k55
đồ áN tốt nghiệp đường ống lvhieu k55
 
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sựXây dựng cơ sở dữ liệu trong quản lý nhân sự
Xây dựng cơ sở dữ liệu trong quản lý nhân sự
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệu
 

Similar a 249340669 bao-cao-ktmt

Kiến Trúc Luân Phiên
Kiến Trúc Luân PhiênKiến Trúc Luân Phiên
Kiến Trúc Luân PhiênThieu Mao
 
2. Phan cung may tinh.ppt
2. Phan cung may tinh.ppt2. Phan cung may tinh.ppt
2. Phan cung may tinh.ppthangdong15
 
Tongquanktmt
TongquanktmtTongquanktmt
TongquanktmtTung Luu
 
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tin
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tinKiến trúc bộ lệnh - Trường ĐH Công nghệ thông tin
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tinlunoxs2akeno
 
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinhQuang Nguyễn Thái
 
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Man_Ebook
 
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máy
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máyTài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máy
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máyHauNguyen41364
 
chuong1_gioi thieu ve .he thong VLSI.ppt
chuong1_gioi thieu ve .he thong VLSI.pptchuong1_gioi thieu ve .he thong VLSI.ppt
chuong1_gioi thieu ve .he thong VLSI.pptSangL72
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...nataliej4
 
Bai01tongquanvephancungmaytinh 121223194355-phpapp01
Bai01tongquanvephancungmaytinh 121223194355-phpapp01Bai01tongquanvephancungmaytinh 121223194355-phpapp01
Bai01tongquanvephancungmaytinh 121223194355-phpapp01Pj Yêu
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử líHong Phuoc Nguyen
 
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdfĐồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdfNuioKila
 
Embedded linux edited
Embedded linux editedEmbedded linux edited
Embedded linux editedNguyễn Anh
 
BTL - NMĐT - Nhóm 4 - MT1405
BTL - NMĐT - Nhóm 4 - MT1405BTL - NMĐT - Nhóm 4 - MT1405
BTL - NMĐT - Nhóm 4 - MT1405Nhok Ly
 
Giao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iGiao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iPhi Phi
 
BTL-NMDT_GROUP4
BTL-NMDT_GROUP4BTL-NMDT_GROUP4
BTL-NMDT_GROUP4Nhok Ly
 
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdf
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdfĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdf
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdfMan_Ebook
 

Similar a 249340669 bao-cao-ktmt (20)

Kiến Trúc Luân Phiên
Kiến Trúc Luân PhiênKiến Trúc Luân Phiên
Kiến Trúc Luân Phiên
 
Risc
RiscRisc
Risc
 
Bao cao vdk_va_pic
Bao cao vdk_va_picBao cao vdk_va_pic
Bao cao vdk_va_pic
 
2. Phan cung may tinh.ppt
2. Phan cung may tinh.ppt2. Phan cung may tinh.ppt
2. Phan cung may tinh.ppt
 
Tongquanktmt
TongquanktmtTongquanktmt
Tongquanktmt
 
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tin
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tinKiến trúc bộ lệnh - Trường ĐH Công nghệ thông tin
Kiến trúc bộ lệnh - Trường ĐH Công nghệ thông tin
 
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinh
 
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
 
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máy
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máyTài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máy
Tài liệu chuyển ngôn ngữ máy mô tả các hoạt động trên máy
 
chuong1_gioi thieu ve .he thong VLSI.ppt
chuong1_gioi thieu ve .he thong VLSI.pptchuong1_gioi thieu ve .he thong VLSI.ppt
chuong1_gioi thieu ve .he thong VLSI.ppt
 
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
TÀI LIỆU ĐÁP ÁN VÀ CÂU HỎI KIỂM TRA, SÁT HẠCH KIẾN THỨC CHUYÊN NGÀNH.Tuyển dụ...
 
Bai01tongquanvephancungmaytinh 121223194355-phpapp01
Bai01tongquanvephancungmaytinh 121223194355-phpapp01Bai01tongquanvephancungmaytinh 121223194355-phpapp01
Bai01tongquanvephancungmaytinh 121223194355-phpapp01
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
 
Bai Tap Vi Xu Ly
Bai Tap Vi Xu LyBai Tap Vi Xu Ly
Bai Tap Vi Xu Ly
 
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdfĐồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
 
Embedded linux edited
Embedded linux editedEmbedded linux edited
Embedded linux edited
 
BTL - NMĐT - Nhóm 4 - MT1405
BTL - NMĐT - Nhóm 4 - MT1405BTL - NMĐT - Nhóm 4 - MT1405
BTL - NMĐT - Nhóm 4 - MT1405
 
Giao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan iGiao trinh tin dai cuong kiem phan i
Giao trinh tin dai cuong kiem phan i
 
BTL-NMDT_GROUP4
BTL-NMDT_GROUP4BTL-NMDT_GROUP4
BTL-NMDT_GROUP4
 
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdf
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdfĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdf
ĐỒ ÁN MÔN HỌC HỆ THỐNG NHÚNG MẠNG KHÔNG DÂY - Contiki OSreport.pdf
 

249340669 bao-cao-ktmt

  • 1. Bài tập lớn kiến trúc máy tính 2013 1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ====o0o==== BÁO CÁO BÀI TẬP LỚN KIẾN TRÚC MÁY TÍNH ĐỀ TÀI: THIẾT KẾ MIPS 32 BIT STT Họ và tên MSSV Lớp 1 Nguyễn Quang Hiếu 20101516 ĐT1 2 Phạm Trọng Đồng 20101026 ĐT1 3 Lý Đức Vượng 20102591 ĐT1 4 Lê Hồng Nhung 20101969 ĐT4 Hà Nội, 12/2013 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
  • 2. Bài tập lớn kiến trúc máy tính 2013 2 Mục Lục A.Lời mở đầu.......................................................................................................................3 B. Nội dung thực hiện..........................................................................................................4 I. Tổng quan về MIPS ......................................................................................................4 1.Đặc điểm kĩ thuật.......................................................................................................4 2. Lịch sử dòng xử lý MIPS..........................................................................................5 3. Các dòng vi xử lý thương mại MIPS đã sản xuất.....................................................5 4. Kiến trúc bộ lệnh.......................................................................................................6 5. Phân loại MIPS.........................................................................................................7 6. Ưu nhược, điểm của MIPS .......................................................................................8 7. Ứng dụng ..................................................................................................................9 II.Nội dung thực hiện .......................................................................................................9 1.Yêu cầu thực hiện ......................................................................................................9 2.Sơ đồ khối..................................................................................................................9 3.Giải quyết xung đột..................................................................................................16 III.Kết quả ......................................................................................................................25 1. Sơ đồ testbench.......................................................................................................25 2. Test code, kiểm thử xung đột..................................................................................25 3. Các phương án giải quyết mở rộng: .......................................................................27 4. Hướng phát triển:....................................................................................................28 C.Kết luận..........................................................................................................................29
  • 3. Bài tập lớn kiến trúc máy tính 2013 3 A.Lời mở đầu Trong quá trình phát triển của công nghệ máy tính, con người đã chế tạo ra hàng ngàn loại máy tính khác nhau. Rất nhiều trong số những máy tính này đã bị quên lãng đi, chỉ một số ít còn được nhắc lại cho đến ngày nay. Đó là các máy tính với những ý tưởng thiết kế và nguyên lý hoạt động độc đáo tạo nên một tầm ảnh hưởng lớn đến các máy tính thế hệ sau nó. Việc tìm hiểu về kiến trúc máy tính giúp chúng ta có những kiến thức cơ bản để hiểu nguyên lí và cấu tạo của máy, tạo tiền đề để phát triển tạo ra những thế hệ máy tính tối ưu hơn trong tương lai. Kiến trúc MIPS được sử dụng rỗng rãi trong các dòng máy tính đồ họa silicon, các hệ thống nhúng, các thiết bị điện tử…..Chính bởi vậy, nhóm chúng em đã quyết định làm đề tài thực hiện thiết kế MIPS 32bit với chức năng cơ bản. Do trình độ cũng như kiến thức còn hạn chế nên bài tập lớn chắc chắn còn nhiều sai sót, mong cô góp ý để kiến thức và kỹ năng môn học ngày càng hoàn thiện hơn.
  • 4. Bài tập lớn kiến trúc máy tính 2013 4 B. Nội dung thực hiện I. Tổng quan về MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) Là kiến trúc bộ tập lệnh RISC phát triển bởi MIPS Technologies. Ban đầu kiến trúc MIPS là 32bit, và sau đó là phiên bản 64 bit. Nhiều sửa đổi của MIPS, bao gồm MIPS I, MIPS II, MIPSIII, MIPSIV, MIPSV, MIPS32 và MIPS64. Phiên bản hiện tại là MIPS32 và MIPS64. Cũng có một vài tuỳ chọn mở rộng, baogồm MIPS-3D (1 tập lệnh đơn giản các câu lệnh SIMD về dấu chấm động để thực hiện các tác vụ về đồ họa 3D), MIPS16e (khả năng nén vi lệnh để tiết kiệm không gian bộ nhớ) và MIPS MT (MultirTheading) kiến trúc đa luồng mới được bổ xung cho hệ thống. 1.Đặc điểm kĩ thuật Năm 1981, một nhóm các nhà nghiên cứu thuộc đại học Stanford do John L. Hennessy đứng đầu đã bắt đầu một công trình nghiên cứuvề bộ xử lý MIP đầu tiên. Khái niệm cơ bản là nhằm tăng đột xuất hiệu năng thông qua sử dụng một đường ống lệnh (pipelineinstructions), một công nghệ đã được biết đến từ lâu nhưng lại khó phát triển. Thông thường một đường ống sẽ mở rộng việc chạy một câu lệnh thành vài bước, bắt đầu thực hiện “bước một” của câu lệnhtrước khi câu lệnh trước hoàn thành. Trong khi đó, thiết kế truyền thống yêu cầu phải đợi cho đến khi một câu lệnh hoàn thành mới được chạy câu lệnh tiếp theo.Thiết kế theo pipeline làm giảm đáng kể thời gian dành của CPU khi thực hiện liên tiếp các câu lệnh. Mặc dù thiết kế này đã loại trừ một số câu lệnh hữu dụng, đáng kể nhất như là các lệnh nhân và chia yêu cầu nhiều bước, nhưng nó cho thấy hiệu suất tổng thể của hệ thống tăng
  • 5. Bài tập lớn kiến trúc máy tính 2013 5 lên rõ rệt bởi vì các vi xử lý có thể chạy ở xung nhịp lớn hơn rất nhiều. Tuy nhiên việc loại bỏ các câu lệnh trên lại không được các nhà thiết kế thời bấy giờ ủng hộ. Rất nhiều ý kiến cho rằng thiết kế kiểu đường ống lệnh sẽ không tồn tại được ,nếu chỉ thay một lệnh nhân phức tạp bằng nhiều lệnh cộng đơn giản thì làm sao hệ thống có thể nhanh hơn được. Tuy nhiên đã cho thấy tốc độ thuộc về thiết kế đường ống,chứ không phải theo câu lệnh 2. Lịch sử dòng xử lý MIPS Năm 1984, Hennessy rời trường đại học Stanford để thành lập công ty MIPS Computer System.Họ cho ra đời thiết kế đầu tiên là R2000 vào năm 1985, sau đó phát triển R3000 vào năm 1998. Những CPU 32 bit này tồn tại trong suốt những năm 1980, và được sử dụng chủ yếu trong các dòng máy chủ SGI. Năm 1991 MIPS cho ra đời bộ vi xử lý 64 bit đầu tiên R4000.Tuy nhiên MIPS gặp khó khăn trong tài chính trong khi tung sản phẩm này ra thị trường. Thiết kế này rất quan trọng đối với SGI-một trong những khách hàng của MIPS lúc bấy giờ, vì thế SGI đã mua lại công ty vào năm 1992 để bảo vệ thiết kế không bị mất đi. Từ đó MIPS trở thành một công ty con của SGI và được biết đến bởi tên MIPS Technologies 3. Các dòng vi xử lý thương mại MIPS đã sản xuất - R2000 : Xuất hiện trên thị trường vào năm 1985, được bổ sung thêm nhiều câu lệnh mới, có thể được khởi tạo ở chế độ big-endian hay little-endian, có 32 thanh ghi 32bit , một trong số đó đảm nhiệm việc xử ý các ngoại lệ và bẫy , trong nhưng không có thanh ghi mã điều kiện. R2000 cũng hỗ trợ tới 4 bộ xử lý khi 3 bộ còn lại sử dụng cho mục đích khác. - R3000 :bổ xung thêm 32kB cho bộ nhơ Cache (và sớm được đưa lên 64kB) cho các lệnh và dữ liệu, kèm theo đó là cơ chế Cache coherency hỗ trợ cho nhiều bộ xử lý.R3000 cũng bao gồm MMU tính năng phổ biến của họ CPUs kỷ nguyên này
  • 6. Bài tập lớn kiến trúc máy tính 2013 6 - R4000 :Được đưa ra năm 1991,mở rộng tập lệnh MIPS để hỗ trợ đầy đủ kiến trúc 64bit, chuyển FTU vào main để tạo ra một hệ thống chip đơn lẻ, xử lý với tốc độ lên đến 100Mhz - R8000 :Ra đời năm 1994,là thiết kế MIPS siêu vô hướng (superscala) đầu tiên,cho phép xử lý 2 ALU và 2 phép tính nhớ mỗi chu kỳ.Thiết kế này hỗ trợ tới 6 chip và 4MB cache mở rộng - R10000 :Ra đời năm 1995,là thiết kế chip đơn lẻ,chạy với tốc độ cao hơn R8000,có 32kb cache chính cho câu lệnh và dữ liệu - Ngoài ra còn có R6000,R1 6000,R1 6000A… 4. Kiến trúc bộ lệnh 4.1. Nguyên tắc thiết kế bộ lệnh MIPS  Tính đơn giản quan trọng hơn tính quy tắc (Simplicity favors regularity)  Chỉ thị kích thước cố định(32 bit)  Ít định dạng chỉ thị (3 loại định dạng)  Mã lệnh ở vị trí cố định(6 bit đầu)  Nhỏ hơn thì nhanh hơn  Số chỉ thị giới hạn  Số thanh ghi giới hạn  Số chế độ địa chỉ giới hạn  Tăng tốc các trường hợp thông dụng  Các toán hạng số học lấy từ thanh ghi (máy tính dựa trên cơ chế load-store)  Các chỉ thị có thể chứa toán hạng trực tiếp  Thiết kế tốt đòi hỏi sự thỏa hiệp  3 loại định dạng chỉ thị 4.2. Một số lệnh trong MIPS MIPS chỉ cần hỗ trợ 32 thanh ghi là đủ, đánh số từ $0-$31
  • 7. Bài tập lớn kiến trúc máy tính 2013 7 Mỗi thanh ghi có kích thước 32bit(4 byte). Để đơn giản và dễ dàng trong việc truy xuất bộ nhớ, tất cả các lệnh đều có chiều dài 32 bit. • MIPS đã hỗ trợ các nhóm lệnh xử lý dữ liệu: - Lệnh số học - Lệnh luận lý - Lệnh nạp lưu dữ liệu Ngoài các lệnh xử lý dữ liệu, máy tính còn phải hộ trợ các lệnh điều khiển quá trình thực thi các lệnh… 4.3. Nguyên tắc lưu dữ liệu trong bộ nhớ MIPS lưu dữ liệu trong bộ nhớ theo nguyên tắc Alignment Restriction, nghĩa là các đối tượng lưu trong bộ nhớ phải bắt đầu tại địa chỉ là bội số của kích thước đối tượng. Như vậy, từ nhớ phải bắt đầu tại địa chỉ là bội số của 4. MIPS lưu trữ dữ liệu trong bộ nhớ theo nguyên tắc Big Endian, nghĩa là đối với giá trị có kích thước lớn hơn 1 byte thì byte sẽ lưu tại địa chỉ thấp. 5. Phân loại MIPS  Đơn xung nhịp: Thiết kế, xử lí 1 lệnh trong vòng 1 chu kì. o Ưu điểm:  Đơn giản và dễ hiểu o Nhược điểm:  Sử dụng chu kỳ đồng hồ không hiệu quả – chu kỳ đồng hồ được đặt theo lệnh chậm nhất.  Các lệnh phức tạp như lệnh nhân dấu phẩy động: Tốn diện tích thiết kế vì cần nhân đôi một số khối chức năng (VD. bộ cộng) vì chúng không thể được chia sẻ trong cùng 1 chu kỳ đồng hồ  Đa xung nhịp:Chia lệnh thành các pha thực hiện: IF, ID, EX, MEM, WB. Mỗi pha thực hiện trong 1 chu kỳ xung nhịp. o Ưu điểm:
  • 8. Bài tập lớn kiến trúc máy tính 2013 8  Thời gian thực hiện (= số pha) của mỗi lệnh được điều chỉnh tùy thuộc độ phức tạp của lệnh.  Các khối chức năng được chia sẻ giữa các pha khác nhau của lệnh do một khối chức năng cụ thể không cần trong toàn bộ các pha thực hiện của lệnh o Nhược điểm:  Các lệnh thực hiện liên tiếp nhau.  Lệnh trước được thực hiện xong mới đến lệnh sau vì vậy xuất hiện khoảng thời gian rỗi giữa các khâu.  Pipeline o Ưu điểm:  Kĩ thuật pipeline được đưa ra để tận dụng những thời gian rỗi giữa các khâu.  Kĩ thuật pipeline sẽ làm tăng tốc độ vi xử lí. 6. Ưu nhược, điểm của MIPS  Ưu điểm:  Bộ xử lý truy xuất thanh ghi nhanh nhất (hơn 1 tỉ lần trong 1 giây) vì thanh ghi là một thành phần phần cứng thường nằm chung mạch với bộ xử lý.  CPU không phải đợi để thực hiện các tiến trình đơn mà thực hiện cùng lúc nhiều tiến trình, do đó chu kì của tiến trình được thông suốt  Không gian bộ nhớ của máy được giải phóng nhiều hơn do khả năng nén vi lệnh để làm chương trình nhỏ hơn  Khuyết điểm:  Do thanh ghi là một thành phần phần cứng nên số lượng cố định và hạn chế. Do đó, sử dụng phải khéo léo và phức tạp
  • 9. Bài tập lớn kiến trúc máy tính 2013 9 7. Ứng dụng Thiết kế MIPS được sử dụng rộng rãi trong các dòng máy tính đồ họa silicon,các hệ thống nhúng như TiVo thế hệ 2,các thiết bị sử dụng hệ điều hành Windows CE,Cisco routes và các máy chơi game console như Nitendo 64,Sonyplaystation II.Nội dung thực hiện 1.Yêu cầu thực hiện  MIPS 32 bit thực hiện các lệnh cơ bản +, -, and, or, not, lw, sw, beq.  Thực hiện bằng ngôn ngữ mô tả phần cứng Verilog HDL.  Giải quyết được các xung đột cơ bản trong MIPS pipeline. 2.Sơ đồ khối 2.1 Sơ đồ khối tổng quát: Đây là khối xử lý chính của Mips 32 bit. o Đầu vào :  Instr[31:0] : Mã lệnh được lấy từ bộ nhớ lệnh  ReadData[31:0] : Dữ liệu được đọc ra từ bộ nhớ dữ liệu.
  • 10. Bài tập lớn kiến trúc máy tính 2013 10 o Đầu ra :  MemWrite : Tín hiệu điều khiển phát ra để yêu cầu ghi vào bộ nhớ dữ liệu.  ALUOut[31:0] : Dữ liệu sau khi tính toán từ bộ ALU  WriteData[31:0] : Dữ liệu được ghi vào bộ nhớ dữ liệu.  PC[31:0] : Tín hiệu PC đi vào bộ nhớ lệnh. 2.2 Thiết kế chi tiết: Sau đây em xin liệt kê vai trò của một số khối quan trọng của bộ vxl MIPS a) Khối Control Unit : Là khối sinh ra các tín hiệu điều khiển cho con Mips khi có lệnh của bên ngoài đưa vào dưới dạng mã lệnh. Đầu vào : Op[5:0] , Funct[ 5:0] lấy từ mã lệnh. Zero lấy từ đầu ra của khối ALU Đầu ra : Các tín hiệu để điều khiển các khối khác là : +) Tín hiệu đưa dữ liệu từ bộ nhớ ra thanh ghi Memtoreg +) Tín hiệu Regwrite, Memwrite +) Tín hiệu chọn ALUSrc, PCSrc, RegDst,
  • 11. Bài tập lớn kiến trúc máy tính 2013 11 +) Tín hiệu ALUControl b) Khối Register File : Là khối thanh ghi của con Mips. Đầu vào sẽ là địa chỉ của các thanh ghi đưa vào từ mã lệnh và dữ liệu quay về thanh ghi từ giai đoạn WB. Đầu ra sẽ là dữ liệu nằm trong thanh ghi mà địa chỉ lệnh trỏ tới. Đầu vào : +) RegwriteW : tín hiệu cho phép đọc mã lệnh tương ứng vào thanh ghi qua WB +) Mã lệnh tương ứng của Rs, Rt : InstrD[25:21], InstrD[20:16] +) Dữ liệu trả về WriteRegW[4:0] và tín hiệu kết quả ResultW Đầu ra : Dữ liệu được đọc trong 2 thanh ghi mà mã lệnh truy cập tới địa chỉ của nó Readdata1, Readdata2 c) Khối ALU : Là khối phục vụ nhiệm vụ tính toán. Đầu vào : +) Tín hiệu chọn loại tính toán : cộng, trừ, nhân, chia : ALUControl được sinh ra từ ControlUnit +) Dữ liệu được đọc từ 2 thanh ghi trong tập thanh ghi Register file Readdata1, Readdata2 32 bit Đầu ra: +) Dữ liệu ra sau khi được tính toán ALUOut 32 bit. +) Tín hiệu Zero sử dụng trong lệnh rẽ nhánh beq, bne.
  • 12. Bài tập lớn kiến trúc máy tính 2013 12 d) Khối SignExt : Khối được sử dụng với nhiệm vụ chuyển đổi dữ liệu dịch từ 16 bit trong mã lệnh thành 32 bit để thực hiện cho nhiệm vụ tính toán. Đầu vào : Dữ liệu dịch được lấy trong 16 bit cuối của mã lệnh Instr[15:0] Đầu ra : Dữ liệu dich được chuyển thành 32 bit bằng cách lấy 16 bit đầu bằng bit thứ 16 và 16 bit cuối là Instr[15:0]. y[31:0] = [16(Instr[15]), Instr[15:0]]. Từ các khối trên và một số khối logic cơ bản khác ta xây dựng được bộ MIPS đa xung nhịp như hình vẽ
  • 13. Bài tập lớn kiến trúc máy tính 2013 13 Ở đa xung nhịp ta chia lệnh thành 5 giai đoạn IF, ID, EX, MEM, WB. Mỗi giai đoạn được thực hiện trong một chu kỳ. Trong sơ đồ gồm có các khối chính như là khối Control Unit, khối Register File, khối ALU, khối SignExt. 2.3. Sơ đồ khối Pipelined. Từ MIPS đa xung nhịp chúng ta tiến hành pipeline bộ vi xử lý bằng cách thêm vào các thanh ghi trạng thái IFID, IDEX, EXMEM, MEMWB, PC. Các thanh ghi sẽ thực hiện nhiệm vụ chuyển tiếp dữ liệu giữa các khâu a) Stage IFID : Thanh ghi giữa 2 giai đoạn IF và ID. Thanh ghi gồm 64 bit dữ liệu bao gồm 32 bit tín hiệu điều khiển control signals, 32 bit tín hiệu dữ liệu của PC Đầu vào : +) Tín hiệu clock và reset
  • 14. Bài tập lớn kiến trúc máy tính 2013 14 +) Tín hiệu để điều chỉnh thanh ghi ghi hoặc dừng ghi bao gồm IF_Flush, ID_stall +) Dữ liệu sau khi qua giai đoạn IF : [32:0]IF_Instruction , [32:0]IF_PCAdd4 Đầu ra : +) Dữ liệu chuẩn bị vào giai đoạn ID : [32:0]ID_Instruction, [32:0]ID_PCAdd4 b) Stage IDEX stage : Thanh ghi giữa 2 giai đoạn ID và EX. Thanh ghi chuyển tiếp 118 bit dữ liệu bao gồm 64 bit dữ liệu của 2 thanh ghi, 32 bit dữ liệu dịch, 15 bit mã lệnh của Rs, Rt, Rd và 7 bit lưu tín hiệu điều khiển. Đầu vào : +) Tín hiệu clock,reset. +) Tín hiệu điều khiển được lưu lại ID_RegWrite, ID_MemtoReg, ID_MemWrite, ID_ALUControl[2:0], ID_ALUSrc,ID_ RegDst. +) Dữ liệu 32 bit đọc từ 2 thanh ghi SrcA, SrcB, dữ liệu dịch 32 bit SignExtlmm. +) Bit trong mã lệnh thể hiện Rs, Rt, Rd 5 bit. +) Tín hiệu để xử lý xung đột FlushE. Đầu ra : +) Tín hiệu điều khiển được lấy ra cho giai đoạn tính toán EX_RegWrite, EX_MemtoReg, EX_MemWrite, EX_ALUControl[2:0], EX_ALUSrc, EX_RegDst. +) Dữ liệu 32 bit đọc từ 2 thanh ghi SrcA, SrcB, dữ liệu dịch 32 bit SignExtlmm cho giai đoạn EX. +) Bit trong mã lệnh thể hiện Rs, Rt, Rd 5 bit. c) Stage EXMEM stage : Thanh ghi giữa 2 giai đoạn EX và MEM. Thanh ghi chuyển tiếp 72 bit dữ liệu bao gồm 32 bit dữ liệu ra từ khối ALU, 32 bit dữ liệu để ghi vào bộ nhớ, 5 bit mã lệnh quay trở lại thanh ghi và 3 bit lưu tín hiệu điều khiển. Đầu vào : +) Tín hiệu clock, reset. +) Tín hiệu điều khiển được lưu lại EX_RegWrite, EX_MemtoReg, EX_MemWrite. +) Dữ liệu 32 bit lấy ra từ bộ tính toán ALU và dữ liệu 32 bit dùng để lưu trữ vào bộ nhớ EX_WriteDataa
  • 15. Bài tập lớn kiến trúc máy tính 2013 15 +) Bit mã lệnh quay trở lại tệp thanh ghi 5 bit Đầu ra : +) Tín hiệu điều khiển công việc ghi và đọc trong bộ nhớ. +) Dữ liệu 32 bit lưu trữ vào bộ nhớ M_WriteData, dữ liệu 32 bit từ bộ ALU M_ALUOut +) Bit mã lênh quay trở lại tệp thanh ghi 5 bit. d) Stage MEMWB : Thanh ghi giữa 2 giai đoạn MEM và WB. Thanh ghi chuyển tiếp 71 bit dữ liệu bao gồm 32 bit dữ liệu được đọc ra từ bộ nhớ, 32 bit dữ liệu tính toán từ bộ ALU quay trở lại tệp thanh ghi, 5 bit mã lệnh quay về thanh ghi và 2 bit lưu tín hiệu điều khiển. Đầu vào : +) Tín hiệu clock, reset. +) Tín hiệu điều khiển M_RegWrite, M_MemtoReg. +) Tín hiệu dữ liệu 32 bit đọc ra từ bộ nhớ M_ReadData và dữ liệu kết quả từ bộ ALU 32 bit M_ALU_Result. +) Bit mã lệnh quay về thanh ghi 5 bit. Đầu ra : +) Tín hiệu điều khiển M_RegWrite, M_MemtoReg. +) Tín hiệu dữ liệu 32 bit đọc ra từ bộ nhớ M_ReadData và dữ liệu kết quả từ bộ ALU 32 bit WB_ALU_Result. +) Bit mã lệnh quay về thanh ghi. e) Stage PC : Thanh ghi lưu trữ giá trị của PC cho lệnh tiếp theo. Thanh ghi PC là thanh ghi 32 bit lưu giá trị của tín hiệu PC. Đầu vào : +) Tín hiệu clock,reset +) Tín hiệu PC 32bit. +) Tín hiệu để xử lý xung đột StallF Đầu ra : +) Tín hiệu ra PCF 32 bit để đưa vào IMEM( Instruction Memory). f) Khối Hazard : Dùng để xử lý xung đột gặp phải trong con Mips pipelined. Khi xảy ra các hiện tượng xung đột thì sẽ có tín hiệu báo xung đột về khối Hazard và từ đấy sẽ phát các tín hiệu để điều khiển các thanh ghi sao cho xử lý được các xung đột xảy ra. Đầu vào : +) Các bit mã lệnh của các thanh ghi [4:0] rsD, rtD, rsE, rtE.
  • 16. Bài tập lớn kiến trúc máy tính 2013 16 +) Bit mã lệnh trả về thanh ghi [4:0] WriteRegE, WriteRegM, WriteRegW. +) Các tín hiệu điều khiển BranchD, MemtoRegE, MemtoRegM, RegWriteM, RegWriteW, RegWriteM. Đầu ra : +) Các tín hiệu điều khiển các thanh ghi để xử lí xung đột StallF, StallD, ForwardAD, ForwardBD, FlushE, [1:0] ForwardAE, [1:0] ForwardBE. 3.Giải quyết xung đột 3.1. Các loại xung đột và phương pháp khắc phục: 3.1.1. Xung đột cấu trúc a) Đặt vấn đề Xung đột cấu trúc xảy ra khi 2 lệnh cùng cố gắng sử dụng 1 nguồn tại cùng 1 thời điểm. Ví dụ như tại 1 thời điểm có 2 lệnh cố gắng ghi và đọc dữ liệu từ tập thanh ghi thì tại thời điểm đó xung đột xảy ra. b) Hướng giải quyết Có 2 phương pháp để có thể khắc phục được dạng xung đột này - Thực hiện chờ - Ghi ở chu kì lên và tiến hành đọc ở chu kì xuống Trong bài này ta lựa chọn phương pháp thứ 2 vì mang lại hiệu năng cao hơn
  • 17. Bài tập lớn kiến trúc máy tính 2013 17 3.1.2. Xung đột dữ liệu: a) Đặt vấn đề Xung đột dữ liệu xảy ra khi toán hạng nguồn của lệnh chưa kịp thời được cập nhật ở những câu lệnh phía trước đó Ví dụ có đoạn lệnh sau: I1: add $s0, $s2, $s3 I2: and $t0, $s0, $s1 I3: or $t1, $s4, $s0 I4: sub $t2, $s0, $s5 1 2 3 4 5 6 7 8 I1 IF ID EX MEM WB I2 IF ID EX MEM WB I3 IF ID EX MEM WB I4 IF ID EX MEM WB
  • 18. Bài tập lớn kiến trúc máy tính 2013 18 Đoạn mã hợp ngữ trên xảy ra xung đột khi $s0 được sử dụng ở lệnh I2 nhưng chưa được cập nhật giá trị $s0 tính được ở lệnh I1. Bởi $s0 chỉ có thể được cập nhật ở khâu WB của I1 (Sau chu kì thứ 5) nhưng để thực hiện được lệnh I2 theo sơ đồ trên thì cần kết quả cập nhật ở khâu ID (Chu kì thứ 3) Tương tự lệnh I3 cũng sẽ gặp xung đột như lệnh I2 do kết quả $s0 chưa được cập nhật. Đến lệnh I4 muốn WB của I1 và ID của I4 cùng diễn ra, vậy để kịp cập nhật được kết quả $s0 thì cần phải đọc và ghi trong cùng chu kì b) Hướng giải quyết Giải quyết xung đột dữ liệu bằng phương pháp chuyển tiếp Phương pháp chuyển tiếp là phương pháp chuyển tiếp kết quả từ khâu MEM hoặc WB về khâu EX. Để thực hiện phương pháp này ta thêm bộ dồn kênh vào trước bộ ALU. Tín hiệu điều khiển lựa chọn nguồn toán hạng cho bộ dồn kênh sẽ được tính toán bởi khối Hazard Detection. Bộ dồn kênh sẽ chuyển tiếp kết quả từ khâu (MEM hoặc WB) nếu khâu đó thỏa mãn những điều kiện sau: - Lệnh ở khâu đó thực hiện hành động viết vào thanh ghi - Toán hạng đích ở khâu đó trùng với toán hạng nguồn ở khâu EX - Nếu ở cả khâu MEM và WB đều có toán hạng đích trùng toán hạng nguồn ở EX thì ưu tiên lựa chọn chuyển tiếp từ khâu MEM vì kết quả tính toán ở khâu MEM là khâu được cập nhật gần nhất
  • 19. Bài tập lớn kiến trúc máy tính 2013 19 3.1.3. Xung đột đọc bộ nhớ dữ liệu: a) Đặt vấn đề Xung đột bộ nhớ dữ liệu xảy ra khi toán hạng đích chưa kịp được cập nhật dữ liệu từ bộ nhớ ra để thực hiện câu lệnh tiếp theo. Ví dụ xét đoạn lệnh I1: lw $s0, 40($0) I2: and $t0, $s0, $s1 I3: or $t1, $s4, $s0 I4: sub $t2, $s0, $s5 1 2 3 4 5 6 7 8 I1 IF ID EX MEM WB I2 IF ID EX MEM WB I3 IF ID EX MEM WB I4 IF ID EX MEM WB
  • 20. Bài tập lớn kiến trúc máy tính 2013 20 Lệnh lw không thể hoàn thành việc đọc xong dữ liệu cho đến chu kì 4, vậy giá trị của $s0 chưa thể được cập nhật. b) Hướng giải quyết Vậy để có thể giải quyết được xung đột trong trường hợp này chúng ta có thể thực hiện phương pháp chờ. Bằng cách đợi 1 chu kì như trên hình vẽ, dữ liệu của $s0 có thể được chuyển tiếp để cập nhật được giá trị của $s0 kịp nạp vào khâu EX của lệnh I2. Đến chu kì thứ 5 thì $s0 đã kịp thời được cập nhật. Để thực hiện được việc chờ ta tiến hành thêm tín hiệu Stall vào các thanh ghi pipeline( PC và IF/ID). Ban đầu các thanh ghi cập nhật giá trị đầu ra mỗi khi có sườn lên clock, khi Stall xảy ra các thanh ghi pipeline giữ nguyên giá trị. Ngoài ra, đồng thời với tiến hành Stall ở IF/ID và PC, ta còn tiến hành xóa thanh ghi E để tránh việc dữ liệu sẽ bị chuyển tiếp một cách liên tục làm sai lệch kết quả tính toán. 3.1.4. Xung đột điều khiển a) Đặt vấn đề Xung đột về điều khiển xảy ra khi thực hiện các lệnh rẽ nhánh. Khi 1 lệnh rẽ nhánh xảy ra, nó sẽ k biết lệnh tiếp theo phải nạp là lệnh nào bởi tại thời điểm nạp lệnh chưa xác định được kết quả của lệnh rẽ nhánh đó.
  • 21. Bài tập lớn kiến trúc máy tính 2013 21 Có 2 phương pháp để chống xung đột trong trường hợp này o Làm chậm rẽ nhánh: Tiến hành chờ cho đến khi hết xung đột o Dự đoán rẽ nhánh: Tiến hành nạp các lệnh kế tiếp, đến khi có kết quả của lệnh rẽ nhánh bắt đầu xét xem rẽ nhánh đúng hay sai. Nếu đúng thì tiếp tục thực hiện, nếu sai thực hiện xóa hết kết quả tính toán của các lệnh sai. b) Hướng giải quyết Trong nội dung bài ta tiến hành theo phương pháp dự đoán rẽ nhánh vì phương pháp này cho hiệu năng cao hơn Theo hình vẽ trên, nếu dự đoán rẽ nhánh sai sẽ phải xóa đi 3 lệnh làm giảm hiệu năng của MIPS. Để tăng hiệu năng của phương pháp này, ta tiến hành dự đoán rẽ nhánh sớm, nếu rẽ nhánh có sai cũng chỉ phải xóa đi 1 lệnh, cải thiện hiệu năng cho MIPS.
  • 22. Bài tập lớn kiến trúc máy tính 2013 22 Để tiến hành rẽ nhánh sớm, ta thêm 1 bộ so sánh vào đầu ra của tập thanh ghi. Vậy kết quả của phép rẽ nhánh sẽ có sau khâu ID chứ không phải chờ đến khâu MEM theo phương pháp thông thường
  • 23. Bài tập lớn kiến trúc máy tính 2013 23 Thực hiện phương pháp so sánh sớm dẫn đến 1 xung đột khác khi mà toán hạng nguồn ở lệnh rẽ nhánh lại trùng với toán hạng đích ở những lệnh phía trước mà chưa kịp ghi vào thanh ghi. Nếu kết quả của toán hạng đang ở khâu MEM, ta tiến hành phương pháp chuyển tiếp dữ liệu từ khâu MEM về mỗi khi phát hiện có xung đột. Các bộ dồn kênh sẽ tiếp tục được sử dụng trong trường hợp này . Bộ dồn kênh sẽ được điều khiển bằng tín hiệu ForwardAD và ForwardBD lấy từ khối Hazard Detection. Biểu thức logic của chúng được cho dưới đây: ForwardAD = (rsD != 0) AND (rsD == WriteRegM) AND RegWriteM ForwardBD =(rtD != 0) AND (rtD == WriteRegM) AND RegWriteM Nếu gặp phải trường hợp phía trước rẽ nhánh là câu lệnh lw hoặc kết quả toán hạng vẫn đang chỉ ở khâu EX thì khi đó ta phải chờ 1 chu kì để kết quả tính toán được sẵn sàng. Dưới đây là biểu thức logic StallF = StallD = FlushE = lwstall OR branchstall branchstall = BranchD AND RegWriteE AND (WriteRegE == rsD OR WriteRegE == rtD) OR BranchD AND MemtoRegM AND (WriteRegM == rsD OR WriteRegM == rtD)
  • 24. Bài tập lớn kiến trúc máy tính 2013 24 Sau 3 tiến trình giải quyết xung đột ta thu được sơ đồ cuối có dạng như hình vẽ dưới
  • 25. Bài tập lớn kiến trúc máy tính 2013 25 III.Kết quả 1. Sơ đồ testbench Hình 3:Sơ đồ TESTBENCH của bộ vi sử lý MIPS 2. Test code, kiểm thử xung đột Nạp file memfile.dat chứa mã lệnh dạng hexa vào testbench và thực hiện bởi MIPS. Kết quả thực hiện chương trình như sau: main: addi $2, $0, 5 addi $3, $0, 12 addi $7, $3, _9 or $4, $7, $2 and $5, $3, $4 add $5, $5, $4 beq $5, $7, end slt $4, $3, $4 beq $4, $0, around addi $5, $0, 0 around: slt $4, $7, $2 add $7, $4, $5
  • 26. Bài tập lớn kiến trúc máy tính 2013 26 sub $7, $7, $2 sw $7, 68($3) lw $2, 80($0) addi $2, $0, 1 end: sw $2, 84($0) Ta tính được số chu kì/lệnh: CPI = 20/16 Ta vào register file để xem kết quả thực hiện.Kết quả hiển thị trên trình mô phỏng đúng với kết quả mong đợi khi đã giải quyết được xung đột. Kết quả: Giải quyết được bốn dạng xung đột cơ bản: -Xung đột cấu trúc -Xung đột đọc bộ nhớ dữ liệu -Xung đột dữ liệu -Xung đột điều khiển Bằng cách sử dung 3 phương pháp giải quyết xung đột là : - Forwarding
  • 27. Bài tập lớn kiến trúc máy tính 2013 27 - Stall - Branch Pridiction 3. Các phương án giải quyết mở rộng: Thuật toán Tomasulo được đưa ra vào năm 1967 bởi Robert Tomasulo làm việc cho hang IBM.Ý tưởng của thuật toán là sử dụng địa chỉ Tag và bit trạng thái để đánh dấu các thanh ghi, qua đó biết được thanh ghi đó đang bận hay rỗi để sử dụng cho phù hợp. Định biểu (Schedualing): Sử dụng các vector trạng thái và bảng đặt chỗ (reservation table) để dánh dấu các trạng thái của các tầng pipeline.Từ đó xác định được số chu kỳ cần đưa dữ liệu vào để tránh xung đột. Các kĩ thuật pipelining mới: Superpipelining: (Siêu ống dẫn) -Được sử dụng trong dòng VXL MIPS R4000. -Tăng số tầng Pipeline từ 5 lên 8 tầng. -Thời gian xử lý n lệnh: T superpiplining = t + (n - 1) * t /8 Tốc độ vi xử lý tăng đáng kể so với kỹ thuật Pipeline 5 tầng, nhưng cũng vì số tầng tăng mà khả năng xảy ra xung đột cũng cao hơn Các VXL hiện đại bắt đầu từ d.ng Pen IV sử dụng kỹ thuật ống dẫn đôi (Dual Pipelining) để tăng tốc độ lên gấp nhiều lần so với kỹ thuật Pipeline thông thường.
  • 28. Bài tập lớn kiến trúc máy tính 2013 28 Có thể lấy ví dụ đơn giản khi ta tính toán phép tính 14 * 47 + 5122, nếu là kỹ thuật pipeline thông thường vẫn phải mất 3 bước là tính 5122, sau đó tính 14 * 27, rồi cuối cùng cộng 2 kết quả đó lại. Nhưng với kỹ thuật ống dẫn đôi, 2 phép tính 5122 và 14 * 47 được thực hiện cùng 1 lúc trên 2 pipeline khác nhau => giảm được 1 công đoạn thực hiện tính toán. 4. Hướng phát triển: -Thiết kế thêm lệnh cho bộ xử lý MIPS -Thêm tín hiệu ready cho bộ nhớ đọc và ghi -Mở rộng giải quyết hazard. -Thêm bộ nhân và bộ chia cho MIPS -Tối ưu hóa diện tích MIPS -Áp dụng các kĩ thuật mới vào thiết kế MIPS
  • 29. Bài tập lớn kiến trúc máy tính 2013 29 C.Kết luận Sau kì học vừa qua, nhóm em đã hoàn thành bài tập lớn với đề tài thiết kế MIPS 32 bit thực hiện được những lệnh cơ bản. Đề tài thiết kế MIPS là đề tài mang tính thực tế cao, giúp chúng em thêm hiểu về cấu trúc của bộ vi sử lý MIPS, hỗ trợ cho việc học môn kiến trúc máy tính. Quá trình thực hiện bài tập lớn đã giúp chúng em tích lũy thêm được nhiều kinh nghiệm thiết kế phần cứng.Rèn luyện tư duy phần cứng ,thêm hiểu rõ về bộ vi xử lý rất thông dụng trên thị trường. Đặc biệt hơn cả, quá trình này cũng giúp chúng em rèn luyện kĩ năng làm việc nhóm hiệu quả. Chúng em xin gửi lời cảm ơn chân thành đến cô giáo Tạ Thị Kim Huệ đã giúp chúng em hoàn thành đề tài này.