Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS

pdf 8 trang phuongnguyen 50
Bạn đang xem tài liệu "Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfnghien_cuu_fpga_trong_thiet_ke_cpu_32_bit_theo_kien_truc_mip.pdf

Nội dung text: Nghiên cứu FPGA trong thiết kế CPU 32 bit theo kiến trúc MIPS

  1. NGHIÊN CỨU FPGA TRONG THIẾT KẾ CPU 32 BIT THEO KIẾN TRÚC MIPS RESEARCH FPGA IN DESIGNING A CPU 32 BIT WITH MIPS ARCHITECTURE Võ Văn Trung Trường Cao Đẳng Công Thương Thành Phố Hồ Chí Minh TÓM TẮT Bài báo này có nhiệm vụ nghiên cứu FPGA trong việc thiết kế CPU 32 bit theo kiến trúc MIPS. Lõi vi xử lý được thiết kế theo kiến trúc 5 tầng đường ống và bao gồm các ngoại như là: TIMER, UART, GPIO.Mỗi lệnh được thực hiện trong một chu kỳ máy. Bộ tập lệnh tương thích với vi xử lý RISC. Tác giả sử dụng ngôn ngữ verilog để viết chương trình cho hệ thống, mô phỏng trên phần mềm modelsim và kiểm tra trên kít FPGA. Từ khóa: FPGA, thiết kế CPU, kiến trúc MIPS, kiến trúc pipeline. ABSTRACT This paper is research FPGA in designing a CPU 32 bit with MIPS architecture . The processor core is designed with 5 stages pipeline architecture and includes the peripheral such as: TIMER,UART,GPIO. Each instruction is executed in one machine cycle and it is entire compatible with instruction set of RISC. Author using hardware description verilog languages to write program the system simulation on modelsim and check on kit FPGA. Keywords: FPGA, designing a CPU, MIPS architecture, pipeline architecture. I.GIỚI THIỆU đời của Trung tâm Đào tạo và Thiết kế Vi Mạch (ICDREC). Trong bối cảnh ngành Ngành công nghiệp điện tử Việt Nam công nghiệp thiết kế vi mạch nước nhà vốn rất nhỏ bé so với các nước trên thế đang trên đà phát triển. Tác giả muốn giới, các sản phẩm điện tử mới chỉ dừng lại nghiên cứu công nghệ FPGA để thiết kế ở công việc lắp ráp mà người ta quen gọi là CPU 32 bit theo kiến trúc MIPS với các công nghệ Tuốc-nơ-vít. Sản xuất trong ngoại vi hỗ trợ kèm theo gồm nước chủ yếu là nhập linh kiện, công Uart,Timer,Gpio được đề cập trong bài báo nghiệp phụ trợ kém phát triển, có chăng thì này [3]. sản xuất các sản phẩm đơn giản, hàm lượng chất xám tích lũy nghèo nàn, giá trị II.PHƯƠNG PHÁP NGHIÊN CỨU VÀ gia tăng thấp. Ngành thiết kế vi mạch chỉ CÁCH THIẾT KẾ mới bắt đầu hình thành trong những năm trở lại đây (từ năm 2007 đến nay) với sự ra 1.Phương pháp nghiên cứu 1
  2. Phân tích hoạt động của vi xử lý bắt đầu 2.1.2.Các lệnh loại I với từng nhóm lệnh riêng lẻ. Ví dụ như: nhóm R, nhóm I, nhóm J sẽ chọn ra 1 lệnh I-type để thực hiện và làm dần cho các lệnh khác đến khi xây dựng xong chức năng cho tất op rs rt address offset cả các lệnh. 6bit 5bit 5bit 16bit Ghép các đường dữ liệu của từng nhóm Bảng 2. Một số lệnh loại I lệnh lại với nhau, nếu các đường tín hiệu xảy ra cùng đưa đến cho 1 đầu vào thì cần ADDI ADDIU ANDI ORI XORI BEQ chèn thêm các mạch chọn lựa đầu vào trong các trường hợp này. Kết quả là BNE LUI LW SW SLTI SLTIU đường dữ liệu cho tất cả các lệnh hoạt Lệnh loại I thường làm việc với các giá động trong 1 chu kỳ xung clock. trị trực tiếp được gán thông qua mã lệnh. Chia đường dữ liệu đơn chu kỳ thành các Nhóm này cũng bao gồm 2 lệnh lệnh truy tầng đường ống dữ liệu. xuất đến bộ nhớ là lw (đọc) và sw (ghi). Đối với lệnh loại I, trong mã lệnh luôn bao 2.Cách thiết kế gồm một toán hạng là giá trị hằng số truyền trực tiếp thông qua các bit thấp của 2.1.Nhóm tập lệnh theo kiến trúc MIPS mã lệnh chương trình. Giá trị tức thời này 2.1.1.Các lệnh loại R là hằng số tính toán khi lệnh sử dụng là các lệnh tính toán, là địa chỉ offset khi là lệnh R-type rẽ nhánh, là địa chỉ offset bộ nhớ khi là lệnh truy cập bộ nhớ [5 ]. op rs rt rd shamt funct 2.1.3. Các lệnh loại J 6bit 5bit 5bit 5bit 5bit 6bit Bảng 1. Một số lệnh loại R J-type op jump address 6bits 26 bits ADD ADDU SUB SUBU AND OR XOR Bảng 3. Một số lệnh loại J NOR JR MFHI MFLO MTHI MTLO MULT J JAL JALR MULTU SLL SRL SRA SLT SLTU Các lệnh loại R chỉ làm việc với các thanh ghi toán hạng từ ngõ vào, tính toán kết quả Đối với các lệnh nhảy, chương trình sẽ và lưu đến thanh ghi đích khi kết thúc lệnh. luôn luôn chuyển đến địa chỉ PC mới do Tùy theo mỗi lệnh mà số lượng toán hạng lệnh chỉ ra. Địa chỉ rẽ nhánh đến chỉ thay đầu vào có thể là một, hai, hoặc không có đổi trong 28 bit thấp của PC, 4 bit trọng số toán hạng nào. Và tương tự, thanh ghi đích cao của PC sẽ được giữ lại do địa chỉ cần dùng trong một số lệnh, và không truyền vào từ lệnh nhảy chỉ gồm có 26 bit trong các trường hợp khác [ 5 ]. và được dịch trái 2 bit thành 28 bit [ 5]. 2
  3. 2.2. Thiết kế 5 tầng đường ống. IF: thực hiện nạp mã lệnh chương trình từ bộ nhớ chương trình Kỹ thuật Pipeline là một kỹ thuật vào ra song song.Nó giúp cho toàn bộ thông ID: giải mã các mã lệnh và tạo ra lượng của tải được tăng lên. tín hiệu điều khiển tương ứng Khi sử dụng chu kỳ clock không hiệu quả EX: thực hiện chức năng của các – chu kỳ clock phải được định thời để phù mã lệnh và trả về kết quả tính toán hợp với lệnh chậm nhất. Đặc biệt khó giải MEM: thực hiện các thao tác quyết đối với các lệnh phức tạp như là nhân số dấu chấm động [2 ]. đọc/ghi đến bộ nhớ dữ liệu của chương trình. Chỉ có lệnh 5 tầng đường ống của CPU Load/Sotre có thể tác động đến nội dung của khối này WB: ghi lại các kết quả tính toán hoặc xử lý đến tập thanh ghi của vi xử lý 2.3.2. Đơn vị điều khiển ALU Hình 1. Cơ chế đường ống Khi thực thi tính toán giá trị cho các lệnh theo các toán tử, thì tương ứng với mỗi toán tử ALU phải đối xử và tạo ra kết 2.3. CPU 32 bit quả khác nhau. Để chọn lựa toán tử thực hiện thì cần có khối điều khiển ALU để 2.3.1. CPU 32 bit với 5 tầng xác định tại một thời điểm, toán tử nào Định hướng là thiết kế CPU theo kiến trúc đang được xử lý [3 ]. RISC có sử dụng kỹ thuật thiết kế đường Bảng 4. Giá trị tín hiệu điều khiển ALU ống. Thiết kế sẽ chia thành 5 tầng như sơ đồ khối bên dưới Đầu vào điều khiển Chức năng ALU 0000 and 0001 or 0010 xor 0011 nor 0110 cộng 1110 trừ 1111 thiết lập bằng 1 khi Hình 2. Sơ đồ khối tổng quát CPU 32 bit nhỏ hơn Thông tin về các tầng đường ống: 3
  4. dùng chọn lựa chức năng tính toán của ALU [3,4]. Việc điều khiển ALU sử dụng nhiều mức giải mã. Instr[3] Instr[2] Đơn vị điều khiển chính tạo ra các bit Instr[1] Instr[0] ALUOp ALUOp. 1 ALUOp0 Đơn vị điều khiển ALU tạo ra các bit ALUcontrol ALUcontrol. Mỗi toán tử sẽ có một giá trị 3 ALUcontrol bit nhị phân riêng biệt với nhau. 2 ALUcontrol Bảng 5. Tín hiệu điều khiển ALUcontrol 1 ALUcontrol0 Inst funct ALUO Action ALUcontr r op p ol lw xxxxx 00 add 0110 Hình 3. Mạch điều khiển các tín hiệu x ALUControl sw xxxxx 00 add 0110 x beq xxxxx 01 subtra 1110 Instr[31] x ct Instr[30] Instr[29] Instr[28] add 10000 10 add 0110 Instr[27] Instr[26] 0 subt 10001 10 subtra 1110 0 ct R-type lw sw beq RegDst and 10010 10 and 0000 ALUSrc 0 MemtoReg RegWrite or 10010 10 or 0001 MemRead 1 MemWrite Branch xor 10011 10 xor 0010 ALUOp1 0 ALUOp0 nor 10011 10 nor 0011 1 Hình 4. Mạch tổ hợp khối điều khiển chính slt 10101 10 slt 1111 0 2.3.3. Thiết kế các Module cho các tầng CPU Như vậy, các tín hiệu sau khi sắp xếp ta Xây dựng được vi xử lý 32 bit hỗ trợ xử sẽ có bảng bên dưới. Tín hiệu chọn lựa sẽ lý theo kỹ thuật đường ống. Số lượng tập gồm có các bit chức năng là sáu bit thấp lệnh MIPS hỗ trợ là 31 lệnh. Trong đó, các của mã lệnh instruction[5:0], và hai lệnh bao gồm cả 3 loại R, I, và J giúp cho ALU_op[1:0]. Kết quả ngõ ra sẽ là 4 bit việc lập trình các chương trình có để đáp ứng được. 4
  5. Các ngoại vi được thiết kế và lập trình điều khiển trên phần mềm Quartus và được viết chương trình để thực nghiệm trên kit Altera. III. KẾT QUẢ MÔ PHỎNG VÀ THỰC Hình 5. Các khối chức năng CPU thiết kế NGHIỆM Việc thiết kế bản CPU 32 bit phải trãi qua 1.Kết quả mô phỏng 5 tầng ,trong mỗi tần có những khối con. Do đó cần phải lập trình các modul riêng lẽ 1.1. Nhóm lệnh R của từng tầng sau đó tiến hành biên dịch và tổng hợp trên phần mềm quartus II [ 1 ]. Hình 8. Kết quả mô phỏng lệnh R Hình 6. 5 tầng của CPU khi được thiết kế 1.2. Nhóm lệnh I và biên dịch 2.3.4. Phần cứng trên FPGA Hệ thống gồm có lõi vi xử lý, bộ nhớ và các ngoại vi cơ bản như GPIO, Timer , Uart MCU ROM Timer Core UART GPIO FPGA Hình 9. Kết quả mô phỏng lệnh I 1.3. Nhóm lệnh J Hình 7. Mô hình phần cứng trên FPGA 5
  6. Hình 10. Kết quả mô phỏng lệnh J IV. .KẾT LUẬN 2. Kết quả thực nghiệm Bài báo đã nêu ra cách thiết kế 1 CPU 2.1. Thực nghiệm với bộ timer 32 bit về cơ bản tương thích với tập lệnh của MIPS đáp ứng được một số chức năng chính với việc vận dụng kiến thức về FPGA. CPU thiết kế với 5 tầng có các ngoại vi: Uart,Timer ,GPIO. Đã tiến hành lập trình và mô phỏng các nhóm lệnh,và cho ra kết quả đúng như mong đợi với phần mềm ModelSim. Bài báo thành công trong việc tự thiết kế 2.2. Thực nghiệm với bộ Uart các modul ngoại vi gồm Uart,Timer,GPIO và tác giả đã tự xây dựng lưu đồ giải thuật, tiến hành viết chương trình kiểm tra theo lưu đồ cho các ngoại vi của CPU đem lại kết quả đúng khi thực hiên trên kit FPGA DE2 Của Alteral. Tuy nhiên tác giả chỉ tập trung vào thiết kế lõi CPU 32 bit bám sát theo kiến trúc tập lệnh MIPS,đồng thời tiến hành lập trình mô phỏng các lệnh chính của Mips là I,J,R.Đồng thời viết một số ngoại vi cơ bản như Uart,Timer,GPIO. Vì thế,nếu muốn sử 2.3. Thực nghiệm điều khiển led dụng vào các ứng dụng trong hệ thống điều khiển tốt hơn,phần cứng gọn hơn thì cần 6
  7. phải thực hiện thêm những ngoại vi [3]. Nguyễn Minh Chánh, Phân tích-thiết sau:Giao tiếp SPI, I2C Ngắt , kế lõi vi xử lý 8 bit kiểu RISC và kiểm tra thực nghiệm trên FPGA, Đại Học Sư Phạm Kỹ Thuật TPHCM,2009 TÀI LIỆU THAM KHẢO [4]. M. Abd-El-Barr and H. El-Rewini, [1]. Tài liệu thực hành vi mạch số Fundamentals of computer organization HDL,ĐHBK TPHCM,tháng 09,năm 2009. and architecture. Hoboken, New Jersey, Canada: John Wiley & Sons, Inc, 2005. [2]. Kiến trúc máy tính và hợp ngữ,khoa CNTT ,ĐHKH Tự Nhiên Tp.HCM. [5]. 3031-kien-truc-bo-lenh-mips.htm Thông tin liên hệ tác giả chính (người chịu trách nhiệm bài viết): Họ tên: Võ Văn Trung Đơn vị: GV.TG ,Trường Cao Đẳng Công Thương TPHCM Điện thoại: 01694480499 E mail: vovantrungspkt@gmail.com Xác nhận của giảng viên hướng dẫn (Ký và ghi rõ họ tên) TS. Nguyễn Minh Ngọc 7
  8. BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.