Nghiên Cứu Trình Biên Dịch Cho MIPS Core 32 Bit

Khóa luận nghiên cứu quy trình biên dịch cho MIPS core 32 bits và hiện thực giai đoạn PR, cung cấp kiến thức sâu sắc về kỹ thuật máy tính.

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2022

75
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. CHƯƠNG 1: TÌNH HÌNH NƯỚC NGOÀI

1.1. Tình hình trong nước

1.2. Lý do chọn đề tài

2. CHƯƠNG 2: SƠ LƯỢC VỀ KIẾN TRÚC TẬP LỆNH MIPS 32 BIT

2.1. Quan điểm lịch sử

2.2. Giới thiệu về kiến trúc MIPS 32 bit

2.3. Các thành phần của kiến trúc bộ lệnh MIPS 32 bit

2.3.1. Kiến trúc tập lệnh (ISA)

2.3.2. Kiến trúc tài nguyên phân quyền (PRA)

2.3.3. Các thành phần mở rộng tùy chọn cho ứng dụng (ASE)

2.3.4. Câu lệnh được người dùng định nghĩa (UDIS)

2.3.5. Đồ hình truyền dữ liệu

2.3.6. Kiến trúc lệnh và tập thanh ghi trong MIPS

2.3.6.1. Thanh ghi CPU
2.3.6.2. Thanh ghi chương trình (PC)
2.3.6.3. Các thanh ghi lệnh
2.3.6.4. Quy ước sử dụng các thanh ghi
2.3.6.5. Dữ liệu trong thanh ghi FPU

2.3.7. Cách thức đánh địa chỉ

2.3.8. Tập lệnh của MIPS

2.3.8.1. Các định dạng lệnh cơ bản
2.3.8.2. Các lệnh cơ bản trong MIPS

2.3.9. Quản lý bộ nhớ

2.3.10. Sự phát triển của kiến trúc

2.4. Trình biên dịch và các công cụ trong trình biên dịch

2.4.1. Khái niệm và các loại trình biên dịch

2.4.2. Phân tích thiết kế hệ thống

2.4.3. Mô tả môi trường biên dịch

2.4.4. Các quá trình có trong môi trường biên dịch cho MIPS32

2.4.5. Thành phần môi trường biên dịch

2.4.6. Xây dựng môi trường biên dịch cho MIPS 32 BIT

2.4.7. Xây dựng toolchain trên kernel Linux

2.4.8. Tích hợp toolchain vào công cụ Eclipse

3. CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM VÀ KIỂM THỬ

3.1. Kết quả từ môi trường biên dịch

3.2. Kịch bản kiểm thử và kết quả kiểm thử

3.2.1. Kịch bản kiểm thử

3.2.2. Kết quả kiểm thử với công cụ Mars 4

3.2.3. So sánh với trình biên dịch Compiler Explorer

4. CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

LỜI CAM ĐOAN

LỜI MỞ ĐẦU

Tóm tắt

I. Tổng quan về Nghiên Cứu Trình Biên Dịch Cho MIPS Core 32 Bit

Nghiên cứu trình biên dịch cho MIPS Core 32 Bit là một lĩnh vực quan trọng trong ngành công nghệ thông tin. MIPS (Microprocessor without Interlocked Pipeline Stages) là một kiến trúc vi xử lý phổ biến, được sử dụng rộng rãi trong các thiết bị nhúng và máy tính. Việc phát triển trình biên dịch hiệu quả cho MIPS không chỉ giúp tối ưu hóa hiệu suất mà còn nâng cao khả năng tương thích với các ngôn ngữ lập trình cao cấp.

1.1. Giới thiệu về Kiến Trúc MIPS 32 Bit

Kiến trúc MIPS 32 Bit cung cấp một bộ hướng dẫn mạnh mẽ, cho phép thực thi các lệnh một cách hiệu quả. Kiến trúc này hỗ trợ nhiều ứng dụng từ vi điều khiển đến máy chủ, nhấn mạnh tính linh hoạt và khả năng mở rộng.

1.2. Tầm Quan Trọng của Trình Biên Dịch

Trình biên dịch đóng vai trò quan trọng trong việc chuyển đổi mã nguồn từ ngôn ngữ lập trình cao cấp sang mã máy. Điều này giúp tối ưu hóa hiệu suất và đảm bảo rằng các ứng dụng có thể chạy trên MIPS Core một cách hiệu quả.

II. Thách Thức Trong Nghiên Cứu Trình Biên Dịch Cho MIPS

Mặc dù MIPS Core có nhiều ưu điểm, nhưng việc phát triển trình biên dịch cho nó cũng gặp phải nhiều thách thức. Các vấn đề như tối ưu hóa mã, quản lý bộ nhớ và tương thích ngược là những yếu tố cần được xem xét kỹ lưỡng.

2.1. Vấn Đề Tối Ưu Hóa Mã

Tối ưu hóa mã là một trong những thách thức lớn nhất trong việc phát triển trình biên dịch. Cần phải đảm bảo rằng mã được biên dịch không chỉ chính xác mà còn hiệu quả về mặt hiệu suất.

2.2. Quản Lý Bộ Nhớ

Quản lý bộ nhớ trong MIPS là một yếu tố quan trọng. Việc sử dụng hiệu quả các thanh ghi và bộ nhớ có thể ảnh hưởng lớn đến hiệu suất của ứng dụng.

III. Phương Pháp Phát Triển Trình Biên Dịch Cho MIPS Core 32 Bit

Để phát triển một trình biên dịch hiệu quả cho MIPS Core 32 Bit, cần áp dụng các phương pháp và công cụ hiện đại. Việc xây dựng môi trường biên dịch và tích hợp các thư viện là rất quan trọng.

3.1. Xây Dựng Môi Trường Biên Dịch

Xây dựng môi trường biên dịch cho MIPS Core bao gồm việc cài đặt các công cụ như GCC và Binutils. Điều này giúp tạo ra một nền tảng vững chắc cho việc biên dịch mã nguồn.

3.2. Tích Hợp Các Thư Viện Cần Thiết

Tích hợp các thư viện cần thiết vào môi trường biên dịch giúp tối ưu hóa quá trình biên dịch và đảm bảo rằng các lệnh MIPS có thể được thực thi một cách chính xác.

IV. Ứng Dụng Thực Tiễn Của Trình Biên Dịch MIPS

Trình biên dịch cho MIPS Core 32 Bit có nhiều ứng dụng thực tiễn trong các lĩnh vực như vi điều khiển, thiết bị nhúng và phát triển phần mềm. Việc sử dụng trình biên dịch hiệu quả có thể cải thiện đáng kể hiệu suất của các ứng dụng.

4.1. Ứng Dụng Trong Thiết Bị Nhúng

Trong thiết bị nhúng, trình biên dịch giúp tối ưu hóa mã để tiết kiệm tài nguyên và năng lượng, điều này rất quan trọng trong các ứng dụng yêu cầu hiệu suất cao.

4.2. Kết Quả Nghiên Cứu

Kết quả nghiên cứu cho thấy rằng việc tối ưu hóa trình biên dịch có thể cải thiện hiệu suất của MIPS Core lên đến 30%, điều này chứng tỏ tầm quan trọng của việc phát triển trình biên dịch.

V. Kết Luận và Hướng Phát Triển Tương Lai

Nghiên cứu trình biên dịch cho MIPS Core 32 Bit mở ra nhiều cơ hội mới trong lĩnh vực công nghệ thông tin. Hướng phát triển tương lai có thể bao gồm việc cải tiến các thuật toán tối ưu hóa và phát triển các công cụ mới.

5.1. Hướng Phát Triển Mới

Hướng phát triển mới có thể tập trung vào việc cải tiến các thuật toán tối ưu hóa mã, giúp trình biên dịch hoạt động hiệu quả hơn.

5.2. Tương Lai Của MIPS Core

MIPS Core có tiềm năng lớn trong tương lai, đặc biệt là trong các ứng dụng nhúng và vi điều khiển. Việc phát triển trình biên dịch sẽ đóng vai trò quan trọng trong việc khai thác tiềm năng này.

10/07/2025

Trích đoạn nội dung tài liệu

Chương 1. Tình hình nước ngoài. Tình hình trong nước. LY do chon chẽ.

Tu nao nh cố ẽẽẽ.-22¿+2VE+++t222EEE+ttEEESzrrtrrrecree 6 2. Sơ lược về kiến trúc tập lệnh MIPS 32 bit. Quan điểm lịch sử. Giới thiệu về kiến trúc MIPS 32 bit.

Các thành phần của kiến trúc bộ lệnh MIPS 32 bit. _ Kiến trúc tập lệnh (ISA). Kiến trúc tài nguyên phân quyền(PRA). Các thành phan mở rộng tùy chon cho ứng dụng(ASE).

Câu lệnh được người dùng định nghĩa(UDIS). Đồ hình truyền đữ liệu. Kiến trúc lệnh và tập thanh ghi trong MIPS. Thanh ghi CPU.

Thanh ghi chương trình(PC). Các thanh ghi lệnh. Quy ước sử dụng các thành hi. Dữ liệu trong thanh ghi FPU.

Cách thức đánh dia chỉ. Tập lệnh của MIIPS. Các định dạng lệnh cơ bản. Các lệnh cơ bản trong MIPS.

Quan lý bộ nhớ. Sự phát triển của kiến trúc. Trình biên dịch và các công cụ trong trình biên dịch. Khái niệm và các loại trình biên dịch.see-cxves«eecxvee SO 2.

Các loại trình biên dịch. PHÂN TÍCH THIẾT KE HE THÓNG. Mô tả môi trường biên dịch. Các quá trình có trong môi trường biên dịch cho MIPS32.

Thành phan môi trường biên dich. Xây dựng môi trường biên dich cho MIPS 32 BIT. Xay dung toolchain trên kernel Linux. _ Tích hợp toolchain vào công cụ EcÏipse.

| KET QUA THỰC NGHIỆM VÀ KIEM THỬ. Kết quả từ môi trường biên dịch. Kịch bản kiểm thử và kết quả kiểm thử. _ Kịch bản kiểm thử.

Kết quả kiểm thử với công cụ Mars 4. So sánh với trình biên dịch COMPILER EXPLORER. KÉT LUẬN VÀ HƯỚNG PHÁT TRIẺN. Hướng phát triển.eceeeeeeereererrrrerrerrrrrrrrre 64 DANH MỤC HÌNH Hình 1.1: Giao diện của Mars 4.2: Giao diện của Compiler Explorer.1: Kiến trúc phan cứng của một MIPS 32 bit cơ bản.2: Các lệnh MIPS 32 cơ bản.3: Sơ đồ truyền dữ liệu của MIPS32.4: Quy ước các thanh gÌh1.5: Phân bồ trong thanh ghi của các lệnh.6: Ý nghĩa của các trường trong thanh ghi.7: Lệnh nap ghl.----ss-s-+s<+xxEE xà HH Hà Hàng nà HH nnhườt 26 Hình 2.8: Các lệnh số học kiểu Immediate.9: Các lệnh số học kiểu toán HIữm.10: Các lệnh nhân và Chia.------ ¿5 c5c+Sc++tsecsErsersertersertsrtsrksrrsrrsersersrrssrk 27 Hình 2.11: Các lệnh nhãy và rẻ nhánh.12: Ví dụ về không có pipeline.14: Đường dữ liệu trong DID€ÌIT€.--e«--ssc5s<esetskeerketkkeirrkrrtkeiirkrrrree 35 Hình 2.15: Sự phát trién của kiến trúc MIPS.16: Sơ đồ biên dịch cơ DAM.1: Các bước có trong môi trường biên dịch cơ bản.2: Môi trường biên dịch cho IMIIPS32.3: Nguyên lý vận hành của LInIK€T.- ---ssc-5s<esetskeEEketkkeierkrtkeiirkrrrree 44 Hình 3.4: Các thư viện và phiên bản được sử dụng.-----cc-cxeeeerseerxee 46 Hình 3.5: Lưu trữ các thư VIỆN.-- c5 s55 Ssccs+tereEstttrErsrksrktrsrrsrkrrsrrrkrrsrrsrerrkrrsrkee 48 Hình 3.6: Cài đặt công cu gece và các thư viện trên Ïinux.7: Cai đặt ØlIDC.----cs-ccxe+crrxtrrkrtkrrtrrtirtkrirtrtirtrrrrrrtirrrkrtrrirrrrrerrrrierrree 49 Hinh 3.8: Cai dat kernel] LImuX 07 .9: Cai dat Binutils.10: Tích hợp toolchain vào ECÏIDSe.1: Chương trình C++ được dùng trong quá trình biên dịch.2: Kết quả biên dich từ Eclipse.3:Kịch bản kiểm thử.4: Công cụ COMPILER EXPLORER dùng dé so sánh.5: Công cu Mars 4.5 dùng dé kiểm thử.6: Kết quả biên dịch của chương trình cộng .7:Kiém thử trên Mars 4.5 của chương trình cộng .8:Biên dịch cho chương trình phép nhân.‹---cc+csscccsvccesecseecseee 55 Hình 4.9: Kiểm thử trên Mars 4.5 cho chương trình phép nhân.10:Biên dịch cho chương trình If-eÌS€.-cc--©cccesesecxeerrrrrvsrrrrreerre 56 Hình 4.11: Kiểm thử trên Mars 4.5 cho chương trình is else.12:Biên dịch cho chương trình switch CaSe.13: Kiểm thử trên Mars 4.5 cho chương trình Switch case.14:Biên dịch cho chương trình ÍOF.15: Kiểm thử trên Mars 4.5 cho chương trình for.16:Bién dịch cho chương trình whIÏe.-------cse<cccssrerxeerrrxerxrxerrrreeree 59 Hình 4.17: Kiểm thử trên Mars 4.5 cho chương trình while.18:Biên dịch cho chương trình ham COH.---ssc5ssscxesercvsrsrxeerrrssree 60 Hình 4.19: Kiểm thử trên Mars 4.5 cho chương trình hàm con.20: Ví dụ chương trình biên dịch có chứa hàm local của trình biên dịch.21:So sánh về thời gian của hai trình biên dịch.22: Ví dụ về sự khác nhau ở các địa chỉ lưu trữ.23: So sánh kết quả nhị phân của COMPILER EXPLORER (trai), 901050000.

63 DANH MỤC BANG Bảng 2.1: Tap thanh ghi 200567221177 .2: Số dau chấm động chính sát GM.3: Số dấu cham động chính sát kép.----¿- ¿2+ ©+++++zx++xxezxesres 19 Bảng 2.4: Số dấu cham động chính sát kép.---¿- ¿+ ©+++++zx++xx+zxesres 19 Bảng 2.- -- 5 G111 HH TH HH HH re 30 Bảng 2.8: Di chuyền dữ liệu.--2-- 25522222 22+2EE2EEE2EEEEEEEEESEErErkerrrerkrervee 31 DANH MỤC TỪ VIET TAT Chữ viết tắt Chữ tường minh GCC GNU Compiler Collection MPFR Multiple-Precision Floating-Point GMP GNU Multiple Precision MPC Multiple-Precision Comple GLIBC GNU Library C CPU Central Processing Unit ISL Interger Set Libary GLOOG Chunky Loop Generator MIPS Microprocessor Without Interlocked Pipeline Stages GNU GNU's Not Unix PRA Privileged Resource Architecture ASE Modules and Application Specific Extensions UDIs User Defined Instructions FPU Floating Point Unit ALU Arithmetic and Logic Unit SIMD Single Instruction Multiple Data MT Multi-Threading DSP Digital Signal Processing EVA Enhanced Virtual Addressing ISA Instruction Set Architecture TOM TAT KHÓA LUẬN Khóa luận “ Nghiên cứu quá trình biên dịch cho Mips core 32 bit” là khóa luận nghiên cứu tập trung tìm hiểu xây dựng hoàn chỉnh quá trình biên dịch cho Mips core 32 bits trên kernel của linux, ứng dụng các thư viện và các công cụ dé xây dựng môi trường biên dịch hoàn chỉnh từ chương trình bật cao C++ thành Assembly và từ Assembly thành mã nhị phân từ đó Mips core có thé vận thành theo chương trình đã được biên dịch. Trong nghiên cứu này ,nhóm đã quyết định thực hiện 3 phần chính. Phần đầu nhóm tìm hiểu về các thư viện cần có đề biên dịch thành công đoạn mã C++ thành Assembly sau đó là tìm cách liên kết chúng với nhau đề chúng có thể hoạt động được với nhau từ đó xây dựng chúng trên kernel của linux dé tạo thành một môi trường có thé biên dịch. Phan tiếp theo xây dựng công cụ Binutils trên môi trường dé chuyên Assembly thành kết quả cuối cùng đó là đoạn mã nhị phân là đầu vào của Mips core dé nó có thé hoạt động.

Phần cuối cùng là tích hợp môi trường đã được xây dựng vào một editor cụ thé là Eclipse dé quá trình biên dịch được tự động hóa và dé dàng thiết kế mã C++ hơn. Tinh hình nước ngoài Ngày nay trong ngành công nghiệp bán dẫn chúng ta không còn xa lạ gì với Mips core. Các nước trên thé giới đang chạy đua về mặc công nghệ và cải tiễn Mips nhăm nâng cao hiệu suât và ứng dụng của nó. Nhằm nâng cao hiệu suất và tối đa hóa tính ứng dụng của Mips một phần không thê thiếu trong vận hành cũng như kiểm thử chức năng của chip đó là quá trình biên dịch hiện nay trên thế giới đã có những công cụ biên dịch cho mips có độ hoàn thiện cao như Mars 4.

MARS, Mips Assembly và Runtime Simulator, sẽ lắp ráp và mô phỏng việc thực thi các chương trình hợp ngữ MIPS. Nó có thể được sử dụng từ một dòng lệnh hoặc thông qua môi trường phát triển tích hợp (IDE). MARS được viết bằng Java và yêu cầu ít nhất Bản phát hành 1.5 của Môi trường chạy Java J2SE (JRE) để hoạt động. Nó được phân phối dưới dạng tệp JAR thực thi.

Trang chủ của MARS là http://www. Tài liệu này có sẵn dé in ở đó. Ké từ Phiên bản 4.0, MARS lắp ráp và mô phỏng 155 lệnh cơ bản của tập lệnh MIPS-32, khoảng 370 lệnh giả hoặc biến thể lệnh, 17 chức năng syscall chủ yếu dành cho bảng điều khiển và tệp I / O được định nghĩa bởi SPIM và thêm 22 syscalls. cho các mục đích sử dụng khác như đầu ra MIDI, tạo số ngẫu nhiên và hơn thế nữa.

Chúng được liệt kê trong các tab trợ giúp riêng biệt. Compiler Explorer là công cụ biên dịch được phát triển và tài trợ bởi Intel, Solids Sands. Ihome/benjamin/Documents/workspace/rars/examples/bottless - RARS 1.1 -+* |e) ——_ Elle Edit Bun Settings Tools Help | @|®| i3. +l ool (x F-) ‘Name umber | a 5 1 3 3 H é 5 7 test < 4 min 7 ° # Save state to free up s8, sĩ, and ra for use s he aati tps sp.

16 bị i he skip) a 2 se s0Btep) h hà he TẤN : a H is 16 © call printhitemplote, x. 1-1) for @-<n «100 ad 1z ity 30, 89. bt lễ tam 16, ts ae 17 20. 1 EI Bì w 20, 2 H Bí = lu E = ine 2 » 2 # Load state 28 1!w - ra,12(sg).

HƠI x s Wo Hang) bị bì HH “n6 bì 3 EA Fa= ie 0 5 § exit (99) vith cove @ 3 Ui a7, 93 3 > bầu 7 break = H rg 3 Column: 1%) Show Line Numbers “Messages| Run JO | FoF the val Take one dovn pass it around, 68 Bottles of beer on the vail of the wall, 8 2 ane down pass it around, 97 battles of beer on the vall around, 96 battles of beer on the vall 1, 96 bottles of beer around, $5 bottles of beer on the vall » 95 bottlers of beer, around, 94 bottles of beer on the wall bottles of & LU, 9 bottles of beer, Take ane dovn pass 1t around, 83 bottles of beer on the vall bottles of of beer, Take one dovn pats it around, 92 bottles of beer on the vall bottles of es of heer. Take ane don pass it around, 61 bottles af beer on the vall bottles of beer SL bottles of beer. Take one dovn it around, 90 bottles of beer on the vatL [bo bottles of beer of S0 bottles af beer. Take ane dovn pass it around, 82 bottles of beer on the vall E9 bottles 0 & bottles of beer.

Take one down pass it around, 68 bottles of beer on the vall E8 bottle: #8 bottles of beer. Take ane dovn pass it around, 67 bottles af beer on the vall E7 bottles of beer of beer, Take one dovn pass it around, B5 bottles of beer on the vall [Bs bottles of bee af beer, Take ane dovn pass 1% around, 65 bottles of beer on the vall fis bottles of beer of the wal of beer, Take ane dovn pass it around, 64 bottles of beer on the vall [aa nasties af heer nf the wall B4 hatsles af heat Take. ane smn ass i2 armind #2 battles nf heer nthe xa}1 Hình 1.1: Giao diện của Mars 4. Mơre* [Support avert in C++ with fncude <-> +] | spsintel ASA | share~ Policies ~ ee cae = x | MPffSeS (øjf--.

cauetff OSWBiere+) x a sng-ormal #1with MiPSipee 54 (e) X Dutput of MIPS góc 54 (el) (Compiler #1) ox he er eee = Ì MIPS gee 5.4 (el ^ @ Compiler optic | | A7 CWraplines >Arguments 495tdin A> [Wnaplines ee nan z Seas edior retinal vi 2 using namespace std; L using namespace std; 3 int mginQ( Fe ane maing) ¢ A | 3 | tne man, sa; ' uy. JES ine mt = 3, —. : COUR Kista 9iiS6E34/200@56P6161/5<<( _ Bs MIFSE# 900 54 °' B cout €€ "sum of entered numbers is: " << (numi + nunz ; MIPS gec 5.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ