Sử dụng ngôn ngữ HDL mô phỏng MIPS PIPELINE

37 1.2K 2
Sử dụng ngôn ngữ HDL mô phỏng MIPS PIPELINE

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sử dụng ngôn ngữ HDL mô phỏng MIPS PIPELINE

GVHD: Th.s Tạ Kim Huệ Mục lục Phần 1: Giới thiệu ý tưởng và xác định chỉ tiêu kỹ thuật của kiến trúc MIPS Pepiline 1.1 Phân tích nhu cầu và đặc điểm nổi bật trong kiến trúc MIPS Pipeline  Giới thiệu chung về kiến trúc MIPS- nhu cầu cần thiết cho sự ra đời của kiến trúc MIPS pipeline * MIPS : Microprocessor without Interlocked Pipeline Stage là một kiến trúc vi xử lý được phát triển bởi hãng MIPS Technologies và là kiến trúc chiếm đến 1/3 số lượng chip sản xuất trên nền kiến trúc RISC. * Bộ xử lí MIPS đầu tiên được nghiên cứu vào năm 1981 với mục đích 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 ( pileline instructions). Thiết kế theo pipeline làm giảm đáng kể thời gian rảnh rỗi của CPU khi thực hiện liên tiếp các câu lệnh. * Khó khăn trong quá trình tìm hiểu thiết kế: theo phương pháp đường ống lệnh nó yêu cầu một khóa đồng bộ (interlocks) được cài đặt để chắc chắn rằng các câu 1 GVHD: Th.s Tạ Kim Huệ lệnh chiếm nhiều chu kì đồng hồ để thực hiện sẽ dừng đường ống lại để nạp nhiều dữ liệu hơn. Những khóa đồng bộ này cần một thời gian lớn để cài đặt và được cho là rào cản chính trong việc tăng tốc độ xử lí trong tương lai. * Yêu cầu đặt ra trong quá trình thiết kế: yêu cầu tất cả các câu lệnh phải được hoàn thành trong 1 chu kì xung nhịp nhờ thế lạo bỏ được sự cần thiết của khóa đồng bộ. Thiết kế này đã loại bỏ được một số câu lệnh hữu dụng, đáng kể nhất là các lệnh nhân, 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 lên rõ rệt vì các vi xử lý có thể chạy ở xung nhịp lớn hơn rất nhiều. * Lịch sử phát triển sau đó: * Thiết kế đầu tiên ra đời vào năm 1985: R2000 sau đó phát triển tiếp R3000 vào năm 1998. Những CPU 32bit 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  Đặc điểm nổi bật-nguyên tắc thiết kế trong kiến trúc MIPS pipeline * 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 (32bit) * Í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 trong 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ế đòi hỏi sự thỏa hiệp * Ba loại chỉ thị định dạng 2 GVHD: Th.s Tạ Kim Huệ * Nguyên tắc hoạt động của Pipeline * Chia nhỏ các lệnh thành các giai đoạn đường ống * Bắt đầu lệnh tiếp theo trước khi lệnh hiện tại kết thúc.  Lên ý tưởng cho đề tài * Mục đích là thiết kế một chip MIPS pipeline bằng ngôn ngữ mô tả Verilog HDL.  Các sản phẩm đã có trên thị trường (Các công trình bài báo nghiên cứu đã có và có liên quan). Các dòng vi xử lý thương mại MIPS đã được sản xuất: R2000 R3000 R4000. Ngoài ra còn các họ R4200, R4300, VR4300, R4300i, R4600 “Orion”, R4700 “Orion”, R5650, R5000, R5000FTU, RM7000, RM9000 Các bộ xử lý này được sử dụng rất rộng rãi : Các máy Nitendo 64, Cisco routers, WebTV set-top Box (Hiện nay là Micrisoft TV)…R8000( 1994),R10000 (1995),R16000, R16000A, R6000.  Các chỉ tiêu kỹ thuật của sản phẩm Các bộ xử lí sẽ chỉ xử lí được tập các lệnh thuộc về kiến trúc bộ lệnh của nó (tức là các lệnh đã được định sẵn trong bộ xử lí đó). Vì thế các hệ thống nhúng và một số loại siêu máy tính thuộc về kiến trúc bộ lệnh MIPS thì chỉ có thể thực hiện các chương trình thuộc kiến trúc bộ lệnh này (tức là chỉ thực thi được các chương trình viết bằng bộ lệnh MIPS). Đó là lí do chúng ta cần nghiên cứu về MIPS. Đến năm 1995 thì MIPS10000 ra đời đã mang lại thành công lớn cho sự phát triển về công nghệ MIPS.Trong khuôn khổ của đề tài này, chúng ta hi vọng đạt được một cái nhìn tổng quát nhất về kiến trúc MIPS để từ đó phát triển hơn. Nên sản phẩm tạo ra chỉ mang những chức năng cơ bản nhất của MIPS.  Chức năng sản phẩm Mục đích của bản thiết kế, nhằm tạo ra một bộ xử lý MIPS, nhằm tăng đột xuất hiệu năng thông qua sử dụng đường ống lệnh (pipeline instructions). Thiết kế pipeline 3 GVHD: Th.s Tạ Kim Huệ làm giảm đáng kể thời gian rảnh rỗi của CPU khi thực hiện liên tiếp các câu lệnh. Bộ xử lý này chỉ có khả năngthực hiện được một số lệnh cơ bản. Kiến trúc tập lệnh này hộ trợ thực hiện: * Các phép toán số học: cộng, trừ, nhân… * Truy cập bộ nhớ với 2 chỉ thị: lw, sw. * Lưu trữ, đọc và ghi byte dữ liệu * Lệnh dịch, logic số học, nhảy (có điều kiện và không có điều kiện).  Thông số đầu vào,ra Thông s ố Ý nghĩa Input clk Tín hiệu đồng hồ hệ thống reset Tín hiệu reset không đồng bộ instruction Mã lệnh readData Dữ liệu vào Output writeData Dữ liệu ra aluOut Dữ liệu ra của khối ALU selectWidth Chọn số bit của dữ liệu đọc và ghi PC Địa chỉ lệnh tiếp theo memWrite Tín hiệu Write Enable memRead Tín hiệu Read Enable 1.2.Sơ đồ cấu trúc bản thiết kế 4 GVHD: Th.s Tạ Kim Huệ Hình 1.1. Sơ đồ tổng quát MIPS pipeline  Phân tích các thành phần cấu tạo. Khác với chip Single-cycle khi các lệnh đều được thực hiện xong trong một chu kì máy, chip pipeline chia một câu lệnh ra thành 5 bước (steps): * Nạp lệnh và cập nhập giá trị PC (Instruction Fetch – IF) * Đọc thanh ghi và giải mã lệnh ( Intruction Decode – ID) * Thực hiện lệnh R, tính địa chỉ bộ nhớ(Execution – EX) * Đọc hoặc ghi dữ liệu trên bộ nhớ dữ liệu (Memory access –MEM) * Ghi kết quả vào tệp thanh ghi (Write back – WB) Câu lệnh sau không cần đợi câu lệnh trước hoàn tất mới bắt đầu thực hiện mà mỗi step sẽ được thực hiện liên tiếp, do đó cải thiện đáng kể về tốc độ thực hiện các chương trình Các bước thực hiện một câu lệnh: * Đọc lệnh từ bộ nhớ ( Instruction Fetch – IF) * Sử dụng địa chỉ lưu trong thanh ghi PC để giải mã ra mã máy của câu lệnh tiếp theo và lưu vào thanh ghi trung gian IF/ID. * Giá trị PC được cộng thêm 4 và lưu vào thanh ghi trung gian IF/ID * Giải mã lệnh và đọc các thanh ghi (Intruction Decode – ID) 5 GVHD: Th.s Tạ Kim Huệ * Sử dụng mã máy của câu lệnh lưu trong thanh ghi IF/ID làm đầu vào cho khối Regfile * Khối Control sử dụng phần opcode của mã máy của câu lệnh để giải mã thành các tín hiệu điều khiển, ngoài tín hiệu SignEx được sử dụng cho khối mở rộng, các tín hiệu khác được lưu vào thanh ghi trung gian ID/EX * Đọc các thanh ghi Rs, Rt từ bộ thanh ghi và lưu vào thanh ghi trung gian ID/EX * Khối mở rộng sử dụng tín hiệu SignEx từ khối Control để mở rộng dấu hay mở rộng zero của 16 bit thấp của mã máy thành 32 bit và lưu vào thanh ghi ID/EX * Địa chỉ các thanh ghi Rs, Rt, Rd được lưu vào thanh ghi ID/EX * Tính toán kết quả của câu lệnh hoặc địa chỉ (Execution – EX) * Khối ALU sử dụng các đầu vào đã được lưu trong thanh ghi ID/EX để tính toán và lưu kết quả vào thanh ghi trung gian EX/MEM * Một bộ mux được dùng để lựa chọn thanh ghi đích từ 2 thanh ghi Rt, Rd và lưu địa chỉ vào thanh ghi EX/MEM * Địa chỉ mới của PC sau câu lệnh BNE cũng được tính toán trong khối này. Một số bộ mux được dùng để lựa chọn giá trị mới cho PC từ các câu lệnh rẽ nhánh BNE, J, JR. * Các tín hiệu điều khiển MemWrite, MemtoReg và RegWrite được lưu tiếp vào thanh ghi EX/MEM * Đọc hoặc ghi dữ liệu trên bộ nhớ dữ liệu ( Memory access – MEM) * Sử dụng kết quả tính toán từ khối ALU và tín hiệu điều khiển MemWrite từ thanh ghi EX/MEM để thực hiện đọc hoặc ghi vào bộ nhớ dữ liệu. Kết quả đọc ghi vào thanh ghi trung gian MEM/WB. * Các giá trị đầu ra của ALU, địa chỉ thanh ghi đích cùng với 2 tín hiệu điều khiển MemtoReg và RegWrite được ghi lại vào thanh ghi MEM/WB * Ghi kết quả vào thanh ghi ( Write back – WB) * Sử dụng tín hiệu MemtoReg từ thanh ghi MEM/WB để lựa chọn dữ liệu cần ghi vào thanh ghi. * Sử dụng địa chỉ thanh ghi đích và tín hiệu cho phép ghi RegWrite để thực hiện công việc ghi dữ liệu vào bộ thanh ghi. 6 GVHD: Th.s Tạ Kim Huệ Phần 2.Phân tích cấu trúc  Phân chia chức năng Trong quá trình thiết kế, MIPS được chia thành các khối, cụ thể chức năng và phân chia các khối như sau: 2.1.Chức năng khối Instruction Memory * Dùng để lưu trữ lệnh dưới dạng mã máy (nhị phân). * Kích thước mỗi lệnh khi dịch ra mã máy là 32 bits, tốn 32 bits để lưu trữ. * Đầu vào bộ nhớ lệnh là địa chỉ lệnh cần lấy, đầu ra là mã máy của câu lệnh tương ứng lấy được. 7 GVHD: Th.s Tạ Kim Huệ Hình 2.2: Khối Instruction Memory * Khối bộ nhớ lệnh Instruction Mem chỉ có một cổng đọc , khối này nhận một đầu vào địa chỉ 32 bit A và đầu ra là dữ liệu RD 32 bit (dữ liệu ở đây là lệnh của chương trình). * Khối MUX 2-1, thực hiện chức năng chon tín hiệu đầu vào cho bộ đếm chương trình PC * Khối tăng PC, để đếm địa chỉ trong quá trình nạp lệnh 8 GVHD: Th.s Tạ Kim Huệ * Đầu vào của bộ nhớ lệnh chính là đầu ra của bộ đếm chương trình Program Counter PC. Bộ đếm chương trình là một thanh ghi 32 bit, đầu ra của khối này PCF trỏ tới lệnh hiện tại. Đầu vào PC’ là địa chỉ của lệnh tiếp theo cần thực thi. * * Khối Data Mem có một cổng đọc hoặc ghi. Nếu tín hiệu cho phép ghi WE=1 thì dữ liệu WD sẽ được viết vào bộ nhớ dữ liệu tại địa chỉ tương ứng A tại sườn lên của xung clock. Nếu WE =0 dữ liệu sẽ được đọc ra RD. 2.2.Chức năng khối Register File Hình 2.3: Register File * Tệp thanh ghi fie gồm 32 thanh ghi, mỗi thanh ghi 32 bit. Khối này có 2 cổng đọc và 1 cổng ghi. Hai cổng đọc nhận các đầu vào địa chỉ 5 bit (ứng với 32 thanh ghi) A1, A2. Đầu ra là dữ liệu RD1, RD2 tương ứng với các đầu vào địa chỉ A1, A2. * Cổng ghi nhận đầu vào địa chỉ A3 (5 bit ) và đầu vào của dữ liệu cần ghi 32 bit WD3. * Ngoài ra còn có các tín hiệu clock và đầu vào cho phép ghi Write Enable WE. Nếu tín hiệu WE ở mức cao 1, dữ liệu WD3 sẽ được ghi vào trong thanh ghi file tương ứng tại sườn lên của xung clock. 9 GVHD: Th.s Tạ Kim Huệ 2.3.Chức năng khối ALU và ALU control Hình 2.4: ALU * Khối ALU có 2 đầu vào là các toán hạng SrcA và SrcB 32 bit, một đầu ra ALUResult 32 bit. Ngoài ra ALU còn có một đầu vào điều khiển ALUControl 4 bit để xác định các phép toán cần thực hiện. ALUControl ALU Operation 0000 AND 0001 OR 0010 ADD 0011 XOR 0100 NOR 0101 Not use 0110 SUB 0111 SLT 1000 SLL 1001 SRL 1010 SRA 1011…1111 Not use 10 [...]... sánh đánh giá thiết kế sử dụng kỹ thuật pipeline với các thiết kế khác So sánh, đánh giá các thiết kế đơn xung nhịp, đa xung nhịp, kỹ thuật pipeline dựa trên các tiêu chí về tốc độ xung đồng hồ, hiệu quả sử dụng chu kỳ đồng hồ, hiệu năng,diện tích thiết kế và lưu lượng của bộ xử lý:  Thiết kế đơn xung nhịp (Single Cycle MIPS) : * Ưu điểm: Đơn giản và dễ hiểu * Nhược điểm: Sử dụng chu kì đồng hồ không... 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 19 GVHD: Th.s Tạ Kim Huệ Hình 3.16 Datapath thiết kế đa xung nhịp  Thiết kế MIPS dựa trên kỹ thuật pipeline Hình 3.17 Sơ đồ khối thiết kế MIPS pipeline Thiết kế MIPS dựa trên kỹ thuật pipeline (Kỹ thuật đường ống) là phương pháp kết hợp ưu điểm của hai phương pháp trên: Quy tắc: * Chia việc thực hiện lệnh thành 5 giai đoạn, tại một... opcode, tuy nhiên các lệnh loại R phải sử dụng thêm trường funct để xác định các phép toán ALU * Như trên hình vẽ, khối Control Unit tính toán hầu hết các tín hiệu điều khiển như:MemtoRegD,MemWriteD,BranchD,ALUSrcD,RegDstD,RegWriteD,MemRe adD, ALUSelectShilfD, ALUControlD Tất cả các tín hiệu điều khiển này được đưa vào thanh ghi trạng thái * Khối ALU Decoder sử dụng trường Funct[5-0] và 2 bit Op để... cho các lệnh giả Chứa giá trị trả về của hàm Chứa các tham số cho hàm Chứa dữ liệu tạm thời Thanh ghi lưu trữ, dành riêng cho các chương trình con Thanh ghi tạm thời Dành riêng cho kernel, không được sử dụng Con trỏ toàn cục Con trỏ stack Con trỏ khung Chứa địa chỉ trả về * Khối thanh ghi file gồm 2 cổng đọc và một cổng ghi * Các cổng đọc: * * * A1, A2 là các đầu vào địa chỉ 5 bit (32 thanh ghi) RD1,... PC + 4 + SignImm x 4 * Khi lệnh rẽ nhánh xảy ra PCBranch được tính bằng cách dịch trái SignImm 2 bit và sau đó cộngvới PCPlus4 * Hai thanh ghi nguồn được so sánh qua việc tính hiệu của chúng SrcASrcB sử dụng ALU Nếu 2 thanh ghi bằng nhau thì cờ zero =1 Ngoài ra đối với lệnh rẽ nhánh beq thì 31 GVHD: Th.s Tạ Kim Huệ tín hiệu điều khiển Branch=1, ALUControl =110 vì vậy ALU thực hiện phép trừ SrcASrcB... RegisterFile 0 0 MEM 1 1 Mã Verilog cho tín hiệu lựa chọn ForwardAD=(RsD!=0)&&(RsD==WriteRegM)&&RegWriteM; ForwardBD=(RtD!=0)&&(RtD==WriteRegM)&&RegWriteM; 35 GVHD: Th.s Tạ Kim Huệ Kết quả tổng hợp và mô phỏng Thực hiện chương trình dưới bằng code đã viết: STT 1 2 Mã ASM addi $1,$0,1 PC 0 Mã máy 20010001 addi $2,$0,5 4 20020005 3 addi $3,$0,0 8 20030000 4 add $4,$1,$0 12 00202020 5 lw $6,0($3) max =... Giải thích lệnh 11 beq $7,$1,end_if hơn max thì thực hiện lặp, 40 10270001 12 addi $6,$5,0 ngược lại thì gán cho max 44 20A60000 13 End if: j loop end: sw $6,4($3) 48 52 08000005 AC660004 14 Kết quả mô phỏng : 36 ... thể được chia sẻ trong cùng một chu kì động hồ Hình 3.14 Biểu đồ thời gian thiết kế đơn xung nhịp 18 GVHD: Th.s Tạ Kim Huệ Hình 3.15.Datapath thiết kế đơn xung nhịp  Thiết kế đa xung nhịp (Multi-Cycle MIPS) : Chia lệnh thành các phần thực hiện IF, ID, EX, MEM, WB Mỗi pha thực hiện trong 1 chu kì xung nhịp * Ưu điểm: Thời gian thực hiện 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... do đó dữ liệu được ghi vào thanh ghi Việc ghi dữ liệu diễn ra vào cuối sườn lên của xung clock * Trong khi lệnh lw đang được thực thi bộ xử lý sẽ tính toán địa chỉ của lệnh tiếp theo PC’ Trongkiến trúc MIPS, mỗi lệnh 32 bit vì vậy địa chỉ lệnh tiếp theo sẽ là PC + 4 * Địa chỉ của lện tiếp theo được ghi vào thanh ghi PC tại sườn lên của xung clock tiếp theo 28 GVHD: Th.s Tạ Kim Huệ Hình 4.28 Xác định... ALUO Ý nghĩa 11 GVHD: Th.s Tạ Kim Huệ p 000 001 010 011 100 101 110 111 Add Subtract Look at func field And Or Xor Not use Set less than 2.5.Chức năng khối Data Memory Hình 2.7: Data Memory 2.6.Kỹ thuật pipeline và xử lý xung đột Hình 2.8.Hazard unit  Xung đột cấu trúc * Nguyên nhân xảy ra xung đột: Do các lệnh được thực hiện đồng thời, tại cùng 1 chu kì, hai lệnh khác nhau có thể cùng truy cập đến 1 . trúc MIPS Pepiline 1.1 Phân tích nhu cầu và đặc điểm nổi bật trong kiến trúc MIPS Pipeline  Giới thiệu chung về kiến trúc MIPS- nhu cầu cần thiết cho sự ra đời của kiến trúc MIPS pipeline * MIPS. của MIPS.  Chức năng sản phẩm Mục đích của bản thiết kế, nhằm tạo ra một bộ xử lý MIPS, nhằm tăng đột xuất hiệu năng thông qua sử dụng đường ống lệnh (pipeline instructions). Thiết kế pipeline. kế sử dụng kỹ thuật pipeline với các thiết kế khác So sánh, đánh giá các thiết kế đơn xung nhịp, đa xung nhịp, kỹ thuật pipeline dựa trên các tiêu chí về tốc độ xung đồng hồ, hiệu quả sử dụng

Ngày đăng: 21/08/2015, 16:38

Từ khóa liên quan

Mục lục

  • Phần 1: Giới thiệu ý tưởng và xác định chỉ tiêu kỹ thuật của kiến trúc MIPS Pepiline

    • 1.1 Phân tích nhu cầu và đặc điểm nổi bật trong kiến trúc MIPS Pipeline

    • 1.2.Sơ đồ cấu trúc bản thiết kế

    • Phần 2.Phân tích cấu trúc

      • 2.1.Chức năng khối Instruction Memory

      • 2.2.Chức năng khối Register File

      • 2.3.Chức năng khối ALU và ALU control

      • 2.4.Chức năng khối Control Unit

      • 2.5.Chức năng khối Data Memory

      • 2.6.Kỹ thuật pipeline và xử lý xung đột

      • 2.7.Các khối chức năng khác

      • Phần 3. So sánh đánh giá thiết kế sử dụng kỹ thuật pipeline với các thiết kế khác

      • Phần 4.Thiết kế mạch

      • Kết quả tổng hợp và mô phỏng

      • Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan