Thiết kế và demo MIPS trên t&d bench
MỤC LỤC LỜI NÓI ĐẦU 4 1.Tổng quan về MIPS 1 1.1. Lịch sử phát triển 1 1.2. Kiến trúc tập lệnh MIPS 2 1.2.1.Các thanh ghi 2 1.2.2.Kiến trúc tập lệnh 3 1.3. Nguyên tắc thiết kế MIPS 4 2.Tổng quan về T&D Bench 5 2.1. Giới thiệu 5 2.2. Phương pháp thiết kế 6 2.3. Phạm vi ứng dụng của T&D Bench 7 2.3.1.Mô hình von Neumann 7 2.3.2.Mạch tổ hợp và mạch tuần tự 8 2.3.3.Giới thiệu về tập lệnh và cấu trúc của bộ vi xử lý Neander 9 3.Mô phỏng MIPS bằng T&D Bench 9 3.1. Khởi tạo chương trình 9 3.2. Mô hình Neander: 10 3.2.1.Sơ đồ khối: 10 3.2.2.Cấu trúc tập lệnh 12 3.2.3.Các bit trạng thái của ALU 12 3.2.4.Mô phỏng Neander bằng T&D Bench: 13 3.3. Pipelined MIPS 13 3.3.1.Sơ đồ khối 13 3.3.2.Tập lệnh 15 3.3.3.Mô phỏng Pipelined MIPS bằng T&D Bench 15 3.4. rISA (Reduced Bit-Width Instruction Set Architecture) 18 KẾT LUẬN 19 TÀI LIỆU THAM KHẢO 20 MỤC LỤC HÌNH VẼ Hình 2.1: Sơ đồ khối tổng quát của 1 mạch tổng hợp 8 Hình 2.2: Sơ đồ của 1 mạch tuần tự được tạo nên từ phần tử mạch tổ hợp và các phần tử nhớ 9 Hình 3.1: Sơ đồ khối của bộ xử lý Neander 11 Hình 3.2: Mô phỏng Neander với T&D Bench 13 Hình 4.3: Năm pha của pipelined MIPS 14 Hình 3.4: Pipelined MIPS 16 Hình 3.5: Nonpipelined MIPS I – Đa xung nhịp 17 Hình 3.6: Mô phỏng rISA bằng T&D Bench 18 MỤC LỤC BẢNG BIỂU Bảng 1.1: Các thanh ghi đa năng 2 Bảng 2.1: Ba lớp tài nguyên của T&D Bench 7 Bảng 3.1: Cấu trúc tập lệnh của Neander 12 Bảng 3.2: Tập lệnh trong pipelined MIPS 15 LỜI NÓI ĐẦU Ngày nay với sự phát triển mạnh mẽ của khoa học kỹ thuật từ lý thuyết đến ứng dụng, con người càng quan tâm hơn đến việc nghiên cứu các cách thức để áp dụng thành công các công nghệ mới vào cuộc sống. Công đoạn mô phỏng là một trong những bước quan trọng nhất trong quá trình tạo ra một sản phẩm hoàn thiện. Đối với môn Kiến trúc máy tính, việc hiểu và nắm rõ cách thức hoạt động của các bộ xử lý như Neander hay LC-3,… và về tập lệnh MIPS là điều rất quan trọng và cần thiết, và phần mềm T&D Bench sẽ là một công cụ hữu ích để giúp chúng em thực hiện điều đó. Nhóm sinh viên chúng em xin gửi lời cảm ơn chân thành tới thầy giáo Nguyễn Đức Minh đã tận tình giúp đỡ nhóm em trong quá trình tìm hiểu phần mềm. Nhóm 02 – K53 1. Tổng quan về MIPS 1.1. Lịch sử phát triển • 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. Cuối những năm 1990, 1/3 số lượng chip RISC(Reduced Instruction Set Computer ) được sản xuất dựa trên kiến trúc MIPS. • 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ứu về bộ xử lý MIPS đầu tiên. • Năm 1984, Hennessy rời Đại học Stanford để thành lập công ty MIPS Computer System. Họ đã cho ra đời thiết kế đầu tiên vào năm 1985 là R2000 sau đó phát triển tiếp 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. • Thiết kể MIPS được sử dụng rất 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ệ các th iết bị sử dụng hệ điều hành Windows CE, Ciscoroutes và các máy chơi game console như Nitendo 64, Sony Playstation, Play Station Portable… • Kiến trúc MIPS ban đầu là một hệ thống xử lý 32 bit (thanh ghi mở rộng 32 bit và các đường dẫn) trong khi các phiên bản sau này là hệ thống 64 bit. Đã có rất nhiều hiệu chỉnh trong các tập lệnh của MIPS, từ MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS 32 vàMIPS 64. Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 1 Hiện nay tồn tại 2 phiên bản là MIPS 32 (cho các hệ thống 32 bit) và MIPS 64 (cho các hệ thống 64 bit). 1.2. Kiến trúc tập lệnh MIPS 1.2.1. Các thanh ghi • MIPS hỗ trợ 32 thanh ghi đánh số từ $0 - $31, mỗi thanh ghi có kích thước là 32 bit. o Trong đó, 8 thanh ghi thường được sử dụng để thực hiện các phép tính được đánh số $16 - $23. • Thanh ghi đa năng: 32 thanh. Số Tên Ý nghĩa $0 $zero Hằng số 0 $1 $at Assembler Temporary $2 -> $3 $v0 » $v1 Giá trị trả về của hàm hoặc biểu thức $4 -> $7 $a0 » $a3 Các tham số của hàm $8 -> $15 $t0 » $t7 Thanh ghi tạm (không giữ giá trị trong quá trình gọi hàm) $16 -> $23 $s0 » $s7 Thanh ghi lưu trữ (giữ giá trị trong suốt quá trình gọi hàm) $24 -> $25 $t8 » $t9 Thanh ghi tạm $26 -> 27 $k0 » $k1 Dự trữ cho nhân HĐH $28 $gp Con trỏ toàn cục (global pointer) $29 $sp Con trỏ Stack $30 $fp Con trỏ Frame $31 $ra Địa chỉ trả về Bảng 1.1: Các thanh ghi đa năng • Thanh ghi dấu phẩy động: 32 thanh, có tên từ $f0 -> $f31. • Thanh ghi HI và LO: Thao tác nhân của MIPS có kết quả chứa trong 2 thanh ghi HI và LO. Bit 0-31 thuộc LO và 32-63 thuộc HI. Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 2 Đặc điểm Đóng vai trò như các biến trong ngôn ngữ lập trình cấp cao. Tuy nhiên, chúng khác với biến ở chỗ: trong khi biến chỉ lưu trữ đúng kiểu dữ được khai báo trước, còn thanh ghi thì không phân biệt kiểu dữ liệu (chúng đơn thuần chỉ là một dãy bit). – Đây là phần cứng nên số lượng của chúng là có hạn. Tuy nhiên, tốc độ xử lí là rất cao. 1.2.2. Kiến trúc tập lệnh Kiến trúc bộ lệnh bao gồm 3 loại cấu trúc: R-Format, I-Fomat và J-Format. a. Cấu trúc R-Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 opcode rs rt rd shamt funct 6 5 5 5 5 6 Trong đó: o opcode : Cho biết đây là thao tác gì. o funct : Kết hợp với trường opcode để xác định cần làm gì. Ví dụ: Khi trường opcode cho biết đây là lệnh dịch bit thì bộ xử lí sẽ nhìn vào trường funct để biết đây là dịch bíttrái hay dịch bit phải. o shamt: Trường này chỉ được sử dụng khi thực hiện lệnh dịch bit. Nó chứa số bit cần dịch. o rs (Source Register): Chứa địa chỉ thanh ghi nguồn thứ nhất. o rt (Target Register): Chứa địa chỉ thanh ghi nguồn thứ hai. o rd (Destination Register): Chứa địa chỉ thanh ghi đích. Lưu ý: Mỗi trường rs, rt, rd có 5 bit, chứa vừa đủ số từ 0 » 31 biểu diễn được địa chỉ của 32 thanh ghi. b. Cấu trúc I-Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 opcode rs rt imediate 6 5 5 16 Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 3 Trong đó: o opcode: Cho biết đây là thao tác gì. o rs và rt: Chứa địa chỉ các thanh ghi cần so sánh. o imediate: Tên của nhãn cần nhảy tới. 2^16 => có thể nhảy được 0 -> 65,534 c. Cấu trúc J-Format 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 opcode target address 6 26 Trong đó: o opcode: Cho biết đây là thao tác gì. o target address: Chứa địa chỉ cần nhảy tới. 1.3. Nguyên tắc thiết kế MIPS • Tính đơn giản quan trọng hơn tính quy tắc (Simplicity favors regularity) Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 4 • 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 2. Tổng quan về T&D Bench 2.1. Giới thiệu Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 5 [...]... với việc giảm thiểu mức tiêu hao năng lượng của phần cứng • Mô phỏng rISA với T&D Bench: Hình 3.6: Mô phỏng rISA bằng T&D Bench Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 18 KẾT LUẬN Qua những mô phỏng và thiết kế MIPS với T&D Bench nêu trên, có thể thấy rằng đây là một phần mềm hữu ích trong việc giảng dạy và nghiên cứu, cũng như là công cụ tuyệt vời để sinh viên thực hành Do đây là... beq, bltz, bgtz, blez, bne Bảng 3.2: Tập lệnh trong pipelined MIPS 3.3.3 Mô phỏng Pipelined MIPS bằng T&D Bench Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 15 Hình 3.4: Pipelined MIPS Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 16 Hình 3.5: Nonpipelined MIPS I – Đa xung nhịp Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 17 3.4 rISA (Reduced Bit-Width... xếp (Stack Machine) • acesMIPS: Bộ xử lý loại VLIW - Khởi tạo 1 chương trình trong T&D Bench: 1) Vào Command Prompt bằng lệnh cmd trong Run 2) Thay đường dẫn từ C:\ sang thư mục cài đặt T&D Bench 3) Chạy T&D Bench: gõ: • simula vmips: mô phỏng MIPS I • simula vmipsmulti: mô phỏng MIPS đa xung nhịp • simula vmips: mô phỏng rISA • simula vneander: mô phỏng bộ xử lý Neander 4) Vào File/Load Program 5)... bytes lệnh và thanh ghi tổng 3 Mô phỏng MIPS bằng T&D Bench 3.1 - Khởi tạo chương trình T&D Bench được thiết kế để mô phỏng các mô hình bộ xử lý sau: • Neander • LC-3: Một bộ xử lý khác với cùng mục đích ứng dụng như Neander, được mô tả trong cuốn sách [1] • MIPS I: pipedlined processor với kiến trúc tập lệnh RISC, gồm 2 phiên bản là đơn xung nhịp và đa xung nhịp Simulate and Design MIPS with T&D Bench. .. Design MIPS with T&D Bench – Group 02 – K53 Page 12 1) 2) 3) 4) neg: được set nếu ngõ ra của ALU nhỏ hơn 0 zero: : được set nếu ngõ ra của ALU bằng 0 ovf: không xóa (khác bit carry) carry: không xóa 3.2.4 Mô phỏng Neander bằng T&D Bench: - Từ cmd gõ simula vneander để T&D Bench chạy mô hình Neander Ở hình dưới chương trình được load là mult.asm Hình 3.2: Mô phỏng Neander với T&D Bench 3.3 Pipelined MIPS. ..• T&D Bench (Teach and Design WorkBench) là một công cụ do Sandro Neves Soares thuộc phòng thí nghiệm WCAE, Universidade de Caxias do Sul, Brasil phát triển • Mô hình xử lý pipeline của MIPS trong T&D Bench đã được mở rộng để hỗ trợ một kiến trúc phổ biến được gọi là rISA, như một phần trong khuôn khổ nghiên cứu của Universidade de Caxias do Sul (Brasil) • T&D Bench là một công cụ nhanh và đơn... biệt, gọi là các macros Các macros được Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 6 cung cấp bởi môi trường phần mềm để mô hình hóa nên các cơ chế kiến trúc phức tạp và chuyên biệt khác nhau Thư viện thành phần, TDSDL và các macro tạo nên 3 lớp tài nguyên mô hình (layers of modelling resources) trong phương pháp thiết kế T&D Bench: MACROS Datapath macros Instructions related macros... queues macros macros T&D- SDL DESCRIPTION LANGUAGE Micro-architecture specifications Instruction set specifications Timing specifications COMPONENT LIBRARY FPUs ALUs Memories Register banks … Bảng 2.1: Ba lớp tài nguyên của T&D Bench 2.3 Phạm vi ứng dụng của T&D Bench Trong phạm vi giáo dục, T&D Bench được sử dụng để minh họa cho các chủ đề sau: 2.3.1 Mô hình von Neumann 1) Dùng để thiết kế vi xử lý 2) Không... thiết kế vi xử lý 2) Không phân biệt vùng nhớ dữ liệu và chương trình Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 7 3) Quá trình tương tác với lệnh hay với dữ liệu đều dùng chung 1 bus và memory 2.3.2 Mạch tổ hợp và mạch tuần tự a Mạch tổ hợp (Combinational Circuit): • Ngõ ra chỉ phụ thuộc vào các biến ở ngõ vào mà không phụ thuộc vào trạng thái trước đó của mạch Hình 2.1: Sơ đồ khối... phụ thuộc vào tổ hợp các ngõ vào mà còn phụ thuộc vào trạng thái của ngõ ra trước đó, ta nói mạch tuần tự có tính nhớ Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 8 • Mạch tuần tựđược chia làm 2 loại: Đồng bộ (Synchronous) và Không đồng bộ (Asynchronous) Hình 2.2: Sơ đồ của 1 mạch tuần tự được tạo nên từ phần tử mạch tổ hợp và các phần tử nhớ 2.3.3 Giới thiệu về tập lệnh và cấu trúc . của MIPS, từ MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS 32 v MIPS 64. Simulate and Design MIPS with T&D Bench – Group 02 – K53 Page 1 Hiện nay tồn tại 2 phiên bản là MIPS 32 (cho các. 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. • Thiết. công ty MIPS Computer System. Họ đã cho ra đời thiết kế đầu tiên vào năm 1985 là R2000 sau đó phát triển tiếp 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