Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,96 MB
Nội dung
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ Bộ mơn: TIN HỌC CƠNG NGHIỆP BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: TÌM HIỂU VỀ KIẾN TRÚC CỦA ARM NHĨM 2: SINH VIÊN: 1: NGƠ QUANG KHÁ 2: NGUYỄN KHẮC SĨ 3: CAO THỊNH TỌA 4: NGUYỄN THỊ HỒNG NHUNG LỚP HP: 45Z Giáo viên hướng dẫn : TH.S PHÙNG THỊ THU HIỀN Thái Nguyên – 2012 ` TRƯỜNG ĐHKTCN Khoa Điện tử CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc BÀI TẬP LỚN Mơn học: Kiến trúc máy tính Bộ môn: Tin học công nghiệp Sinh viên thực : Ngô quang Cao thịnh tọa Nguyễn khắc sĩ Nguyễn thị hồng nhung Lớp HP:45Z Giáo viên hướng dẫn: TH.S PHÙNG THỊ THU HIỀN Ngày giao đề: Ngày hoàn thành: Tên đề tài : Tìm hiểu kiến trúc ARM Yêu cầu: -Mơ hình lập trình -Tập lệnh cấu trúc liệu -Quản lý nhớ -Ví dụ minh họa Thông qua phần Xác định yêu cầu Thông qua phần Lý thuyết P.Trưởng môn ThS Nguyễn Tuấn Linh Phân công nhiệm vụ thành viên: Thông qua phần Mô (nếu có), kết luận Đồng ý cho bảo vệ Giáo viên hướng dẫn ………………………… -Mơ hình lập trình: NGƠ QUANG KHÁ -Tập lệnh cấu trúc liệu: NGUYỄN KHẮC SĨ -Quản lý nhớ:CAO THỊNH TỌA -Ví dụ minh họa :NGUYỄN THỊ HỒNG NHUNG Ngoài nhiệm vụ phân cơng cụ thể người thành viên nhóm nhiệt tình giúp đỡ ,đưa góp ý để thành viên hồn thành phần cơng việc có hồn chỉnh báo cáo chung nhóm MỤC LỤC LỜI NĨI ĐẦU……………………………………………………………………………5 I) MƠ HÌNH LẬP TRÌNH………………………………………………………….… 1.1 Mơhình thiết kếARM……………………………………………………………… 1.2 Các ghi ARM……………………………………………………… …… II) TẬP LỆNH VÀ CẤU TRÚC DỮ LIỆU………………………………………… 10 2.1 Kiểu liệu…………………………………………………………………………10 2.2 Chế độ hoạt động………………………………………………………………… 10 2.3 Thực thi điều kiện… ………………………………………………………… 11 2.4 Ngắt phần mềm:……………………………………………………… .12 2.5 Lệnh xử lý liệu: ………………………………………………………………….14 2.6 lệnh cộng số học logic………………………………………………………… 14 2.7 Lệnh nhân: ………………………………………………………………… …… 15 2.8 Lệnh chuyển liệu: byte không dấu word: …………………….……………17 2.9 Lệnh chuyển liệu……………………………………………………………… 17 2.10 Lệnh chuyển liệu nhiều ghi:………………………………………… 19 2.11.Lệnh hoán đổi giá trị nhớ ghi: …………………………19 2.12 Lệnh chuyển giá trị từ ghi trạng thái vào ghi đa dụng: …….……19 2.13 Lệnh chuyển giá trị từ ghi đa dụng vào ghi trạng thái: …………… 20 2.14 Lệnh so sánh: … ………………………………………………………………… 21 2.15 Lệnh dịch……………………………………………………………… ……….…22 IV )QUẢN LÝ BỘ NHỚ………………………………………………………… …24 3.1)Vùng RAM…………………………………………………………………… …25 3.2Vùng ROM…………………………………………………………………… ….26 3.3EPROM/Flash………………………………………………………………… ….27 KẾT LUẬN ………………………………………………………………………….…28 TÀI LIỆU THAM KHẢO…………………………………………………………… 29 LỜI NÓI ĐẦU Kiến trúc ARM (tên gốc trước Advanced RISC Machines, Acorn Machine) loại kiến trúc vi xử lý 32-bit kiểu RISC (Reduced Instructions Set Computer Máy tính với tập lệnh đơn giản hóa), mơ hình nhớ theo kiến trúc Harvard (tuyến liệu tuyến lệnh tách riêng), mơ hình ghi theo kiến trúc Registry – Registry, phát triển tập đoàn ARM Technology, dùng rộng rãi thiết kế hệ thống nhúng Do có đặc điểm tiết kiệm lượng, nên CPU ARM chiếm ưu thị trường điện tử di động, nơi mà sản phẩm tiêu tốn lượng xem mục tiêu thiết kế hàng đầu Ngày nay, kiến trúc ARM kiến trúc CPU 32-bit dùng rộng rãi giới, ước tính 75% CPU 32-bit nhúng thuộc họ ARM ARM tìm thấy khắp nơi sản phẩm điện tử, từ thiết bị cầm tay (PDA, điện thoại di động, máy trò chơi cầm tay, …) thiết bị ngoại vi máy tính (ổ đĩa cứng, định tuyến …) Một nhánh tiếng họ ARM vi xử lý XScale * ARM7: GBA, iPod * ARM9: NDS, PSP, Sony Ericssion, BenQ * ARM11: Apple iPhone, Nokia N93, N800 Chúng em xin chân thành cảm ơn cô giáo Thạc sĩ PHÙNG THỊ THU HIỀN nhiệt tình giúp đỡ em trình nghiên cứu hoàn thành đề tài NHẬN XÉT (của giáo viên) ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… …………………………………………………………………………………………… I MƠ HÌNH LẬP TRÌNH 1.1 Mơ hình thiết kế ARM - Lõi xử lý Dạng đơn giản lõi xử lý gồm phần sau: ● Program Counter (PC): Bộ đếm chương trình: giữ địa lệnh ● Thanh ghi tich lũy(ACC):giữ giá trị liệu làm việc ● Đơn vị sử lý số học(ALU):thực thi lệnh nhị phân công trừ,gia tăng… ● Thanh ghi lệnh (IR): giữ tập lệnh thực thi Lõi xử lý MU0 phát triển lõi xử lý đơn giản, có tập lệnh dài 16 bit, với 12 bit địa bit mã hóa Cấu trúc tập lệnh lõi MU0 có dạng: 4Bits 12bits opcode S Hình1: Cấu trúc chuẩn cho tập lệnh MU0 - Mơ hình thiết kế đường truyền liệu đơn giản lõi xử lý MU0 mơ tả hình Việc thiết kế cấp chuyển đổi mức ghi (RTL): Bộ đếm chương trình (PC) đến tập lệnh cần thực thi, nạp vào ghi lệnh (IR), giá trị chứa IR đến vùng địa ô nhớ, nhận giá trị, kết hợp với giá trị chứa ghi tích lũy (ACC) qua đơn vị xử lý số học (ALU) để tạo giá trị mới, chứa vào ACC Mỗi lệnh vậy, tùy vào số lần truy cập ô nhớ mà tốn số chu kỳ xung nhịp tương đương Sau lệnh thực thi, PC tăng thêm Hình 2: Đường truyền liệu lõi xử lý MU0 1.2 Các ghi ARM Để phục vụ mục đích người dùng: r0 ÷ r14 15 ghi đa dụng, r15 ghi Program Counter (PC), ghi trạng thái chương trình tại(CPSR -Current Program Status Register) Các ghi khác giữ lại cho hệ thống (như ghi chứa ngắt) Các ghi ARM mô tả hình Hình 3: Mơ hình ghi ARM - Thanh ghi CPSR người dùng sử dụng chứa bit điều kiện - N: Negative - cờ bật bit cao kết xử lý ALU - Z: Zero - cờ bật kết cuối ALU - C: Carry - cờ bật kết cuối ALU lớn giá trị 32 bit tràn - V: Overflow - cờ báo tràn sang bit dấu - Thanh ghi SPSR (Save Program Status Register) dùng để lưu giữ trạng thái ghi CPSR thay đổi chế độ II TẬP LỆNH VÀ CẤU TRÚC DỮ LIỆU ARM: 2.1 Kiểu liệu: ARM hỗ trợ loại liệu: o bit có dấu khơng dấu o 16 bit có dấu khơng dấu o 32 bit có dấu khơng dấu Như phần đề cập, tóan tử ARM có 32 bit, vậy, làm việc với liệu ngắn hơn,các bit cao toán tử thay bit ‘0’ 2.2 Chế độ hoạt động: Bảng 1: Banger Bảng 2.3 Thực thi điều kiện: Điều kiện cần thực thi nằm bit cao lệnh Hình : vi trí bit điều kiện lệnh 32 bit Hình vị trí bit điều kiện hcir lệnh 32 bit Tổ hợp điều kiện định bit nằm ghi 2.7 Lệnh nhân: Có hai lệnh khác từ lệnh số học bình thường ,ở có hạn chế tốn hạng : Tất toán hạng đích phải đưa vào ghi đơn giản Ta sử dụng giá trị ghi dịch cho hai tốn hạng Đích tốn hạng phải khác ghi Cuối ,ta xác định rõ R15 đích 2.7 Mã hóa nhị phân: Hình : mã hóa nhị phân cho lệnh nhân 2.7.2 Phân tích: quy tắc: Giả lệnh hợp ngữ ghi từ 21-23 cho bảng sau: Bảng 4: giả lệnh hợp ngữ cho phép nhân MLA : Multiplication with Accumulate MLA , , , dest = (op_1 * op_2) + op_3 MLA thực MUL, trừ giá trị tốn hạng cơng vào kết Điều hữu ích cho chạy kết tổng MUL : Multiplication MUL , , dest = op_1 * op_2 MUL cung cấp 32 bit nhân số nguyên Nếu tốn hạng có dấu.nó giả định kết chứa dấu Ví dụ: DIM code% 12 P%=code% [ OPT MUL R2, R0, R1 MOV R0, R2 MOV PC, R14 ] REPEAT INPUT "Number : "A% INPUT "Number : "B% PRINT "Result : "+STR$(USR(code%))' UNTIL A% = END 2.8 Lệnh chuyển liệu: byte khơng dấu word: 2.8.1 Mã hóa nhị phân: Hình 8:Mã hóa nhị phân cho cấu trúc truyền liệu dạng byte không dấu word 2.8.2 Lệnh hợp ngữ: Dạng định số trước: LDRlSTR{}{B} Rd, [Rn, ]{!} Dạng định số sau: LDRlSTR{}{B}{T} Rd, [Rn], Dạng tương đối nhờ ghi PC: LDRlSTR{}{B} Rd, LABEL 2.9 Lệnh chuyển liệu: byte có dấu nửa word 2.9.1 Mã hóa nhị phân: Hình 9:mã hóa nhị phân chuyển liệu dạng byte có dấu nửa word 2.9.2 Chú thích: Bảng 5: Mã hóa loại liệu Bit S H cho biết loại liệu truyền quy ước bảng 2.9.3 Lệnh hợp ngữ: Định dạng số trước: LDR|STR{}H|SHI SB Rd, [Rn, ] { ! } Định dạng số sau: LDRlSTR{}H|SHlSB Rd, [Rn], 2.10 Lệnh chuyển liệu nhiều ghi: 2.10.1 Mã hóa nhị phân: Hình 10: mã hóa nhị phân lệnh chuyển liệu nhiều ghi 2.10.2 Chú thích: Danh sách ghi bao gồm mảng 16 bit thay cho 16 ghi từ R0 đến R15 U=1 địa tăng ngược lại, P=1, địa tăng trước ngược lại 2.10.3 Lệnh hợp ngữ: LDMISTM{} Rn{!}, 2.11 Lệnh hoán đổi giá trị nhớ ghi: 2.11.1 Mã hóa nhị phân: Hình 11mã hóa nhị phân lệnh đổi giá trị nhớ ghi 2.11.2 Chú thích: B=1=>load byte khơng dấu, B=0=>load word ô nhớ định địa Rn tới Rd, chứa giá trị từ Rm vào ô nhớ tương ứng Rd Rm ghi 2.11.3 Lệnh hợp ngữ: SWP{}{B} Rd, Rm,Rn Chú ý: +Thanhghi PC không dùng lệnh +Thanh ghi Rn phải khác với ghi Rm ghi Rd 2.12 Lệnh chuyển giá trị từ ghi trạng thái vào ghi đa dụng: 2.12.1 Mã hóa nhị phân: Hình 12: mã hóa nhị phân lệnh chuyển giá trị ghi trạng thái vào ghi đa dụng 2.12.2 Chú thích: R=1=>Rd=SPSR R=0=>Rd=CPSR 2.12.3 Lệnh hợp ngữ: MRS{} Rd, CPSR MRS{} Rd, SPSR Chú ý: +Chỉ truy cập giá trị SPSR nhờ lệnh +Khi chỉnh sửa giá trị CPSR SPSR phải ý bit không sử dụng 2.13 Lệnh chuyển giá trị từ ghi đa dụng vào ghi trạng thái: 2.13.1 Mã hóa nhị phân: Hình 13 :mã hóa nhị phân lệnh chuyển giá trị ghi đa dụng vào ghi trạng thái 2.13.2 Lệnh hợp ngữ: MSR{} CPSR_II, # MSR{}, SPSR_II, # MSR{} CPSR_, Rm MSR{} SPSR_, Rm - MSR –chuyển nội dung CPSR SPSR vào ghi - MSR- chuyển nội dung ghi tới CPSR tới SPSR Ví dụ: - Cho phép ngắt IRQ +) PRE cpsr =nzcvqIFt_SVC MRS r1,CPSR BIC r1,r1,#0x80 +) POST cpsr =nzcvqiFt_SVC Chú ý: +Người lập trình khơng thay đổi giá trị CPSR[23:0] +Tránh truy cập SPSR không thật cần thiết 2.14 Lệnh so sánh 2.14.1 CMN : So sánh với số âm CMn giống CMP ,trừ cho phép so sánh lại với giá trị âm nhỏ (logic khơng phải tốn hạng bậc hai) điều khó thành phần khác ,như tới cuối danh sách CMN , CMN status = op_1 - (- op_2) R0, #1 ; Compare R0 with -1 Vì để so sánh với -1 sử dụng : CMN R0, #1 ; Compare R0 with -1 2.14.2 CMP: so sánh CMP , status = op_1 - op_2 cmp cho phép bạn so sánh nội dung ghi với hanh ghi khác giá trị tức thời ,cập nhật trạng thái cờ phép điều kiện thực tác động chương trình ,nhưng khơng lưu trữ kết nơi ,thay ,cờ cập nhật riêng -cờ liên quan tới việc so sánh toán hạng toán hạng 2.14.3 TEQ : kiểm tra tương đương TEQ , Status = op_1 EOR op_2 TEQ tương tự với TST điều khác biệt tính tốn số học EOR AND Cách cung cấp cho thấy bits hai toán hạng giống Hoặc không ảnh hưởng tới cờ nhớ (không giống CMP) 2.14.4 TST : test bits TST , Status = op_1 AND op_2 TsT giống CMP không tạo kết để đặt vào ghi đích Thay thực hoạt đọng hai toán hạng ,kết phản ánh trạng thái cờ TST sử dụng để thấy đặt bit đặc biệt toán hạng liệu word để kiểm tra hai toán hạng bit mặt nạ sau kiểm tra ,cờ đặt phép toán ,or khác Giống CMP ,nó khơng quan trọng bạn quan tâm đến hậu tố S hay không TST R0, #%1 ; Test if bit zero is set in R0 2.15 Lệnh dịch Bộ xử lý ARM kết hợp dịch sử dụng với lệnh xử lý liệu (ADC, ADD, AND, BIC, CMN, CMP, EOR, MOV, MVN, ORR, RSB, SBC, SUB, TEQ, TST).ta sử dụng dịch để tác động đến giá trị đầu sựu hoạt động LDR/STR Có quy tắc cho cá dịch khác nhau: LSL dịch trái ASL dịch trái số học LSR dịch phải ASR dịch phải số học ROR quay phải RRX quay phải mở rộng ASL and LSL giống thay đổi cho tự 2.15.1 Dịch trái dịch trái số học Rx, LSL #n Rx, ASL #n Rx, LSL Rn or or or Rx, ASL Rn Nội dung Rx lấy dịch tới nhiều vị trí lượng n xác định.bit tín hiệu cuối điền với bit Xem xét ví dụ ; MOV MOV R1, #12 R0, R1, LSL#2 Môt lối ra, R0 48 Lệnh cấu trúc tổng R0 = #12, LSL#2 tương đương R0 = 12 >> shift 2.15.3 Dịch trái số học Rx, ASR #n Rx, ASR Rn or register = value >> shift 2.15.4Quay phải Rx, ROR #n Rx, ROR Rn or Quay phải tương tự với dịch phải,chỉ khác bít chuyển phải thay bên trái , bit xoay Quay phải mở rộng Rx, RRX Đây hoạt động ROR # 0, xoay bên phải – sựu khác biệt cờ dấu vi xử lý đước sử dụng để cung cấp 32 bit dịch chuyển III QUẢN LÝ BỘ NHỚ - Trong vi điều khiển ARM, nhớ nội có dạng nhớ như: SSRAM, SRAM, DRAM, EPROM/Flash Bản đồ nhớ Hinh 14: Sự phân tách hai trạng thái đồ nhớ Bản đồ nhớ có hai trạng thái: - Trạng thái Reset - Trạng thái thông thường: sau ánh xạ ghi định địa vào Trong cấu hình thơng thường (đã định địa chỉ), ký hiệu vùng RAM từ địa 0x0 đến 0x04000000 Trong cấu hình Reset, ROM ánh xạ vào khơng gian ký hiệu với khả truy cập RAM địa cao Khi truy cập vào không gian nhớ 0x10000000, xử lý hủy bỏ trường hợp ngoại lệ (sai địa chỉ) 3.1)Vùng RAM Vùng RAM chia thành bốn khối mơ tả hình Từ phần 16MB dành riêng cho DRAM, SRAM, SSRAM Hinh 15: Vùng RAM - Khối 16MB (khởi điểm 0x0) vùng ROM, có điểm ký hiệu tới cấu hình - sở ROM, có vùng xếp chồng lên RAM (trong cấu hình thơng thường) Bảng địa vùng RAM cấu hình thơng thường Reset mơ tả bảng 2sau: Bảng 6: Các địa vùng RAM Cấu hình thơng thường Cấu hình Reset Địa Địa tương ứng Địa Địa tương ứng 0x0000000 0x01000000 0x00000000 0x04000000 0x0000200 0x02002000 0x0008000 0x03080000 - Trong liên kết định địa chỉ, theo mặc định cấu hình Reset, EPROM Flash - đáy địa đồ nhớ Nếu ghi định địa ghi vào, tín hiệu định địa mức cao giải mã chuyển sang đồ nhớ thông thường, RAM Nếu hoạt động mà hệ thống khơng có EPROM hay Flash, muốn khởi động từ RAM, phải gỡ liên kết định địa Tín hiệu định địa ln mức cao, việc khởi động với SSRAM đáy địa đồ nhớ Các nhớ vùng RAM có chức năng: ❖ SSRAM Đồng SRAM (SSRAM) dùng để cung cấp nhớ chu kỳ đơn Thiết bị SSRAM tổ chức dạng 32KB x 32 bit Vùng sử dụng cho trình giới hạn thời gian, điều khiển ngắt SSRAM thường địa 0, cấu hình nhớ khơng bắt buộc ❖ SRAM SRAM dùng để thể giản đồ nhớ khác SRAM cho phép điều khiển bốn mức vật lý 128KB x bit để chia thành hai dãy logic mức 256KB Mỗi dãy logic định cấu hình 8, 16, 32 bit nhớ mở rộng SRAM mô nhớ hệ thống cách chèn xác số trạng thái chờ ❖ DRAM DRAM cung cấp: ● Hỗ trợ chế độ truy cập; ● Hỗ trợ bước chuyển byte, halfword word; ● Bộ điều khiển làm tươi DRAM; ● Tự động định lại cấu hình kích thước khối 3.2 Vùng ROM Có vùng dành riêng cho ROM Vùng ROM giống hai cấu hình thơng thường cấu hình Reset đồ nhớ, vùng ROM mô tả hình 17 Khi Reset vi điều khiển ARM, ROM xác định vị trí 0x0 chuyển sang trạng thái thơng thường RAM vị trí đồ địa 3.3 EPROM/Flash EPROM/Flash có hai dạng, cho bit nhớ mở rộng cho 16 bit nhớ mở rộng Các nhớ truy cập theo chuẩn EPROM theo chuẩn 5V Flash Hình 18 Mơ hình kiến trúc ARM KẾT LUẬN: So sánh với vi xử lý thời Intel 80286 hay Motorola 68020, ARM có số tính chất độc đáo sau: * Hầu hết tập lệnh thực thi có điều kiện, nhằm giảm thiểu việc rẽ nhánh phía đầu bù đắp cho việc thiếu dự đoán rẽ nhánh * Các thỉ lệnh số học thay mã điều kiện mong muốn * Có ghi dịch đóng thùng 32-bit, dùng mà ko có bất lợi việc thực với hầu hết thị số học tính tốn địa * Các chế định địa theo số mạnh * Có ghi liên kết cho lời gọi hàm nhanh chóng * Có hệ thống phụ ngắt hai mức ưu tiên đơn giản, nhanh, với việc chuyển nhóm ghi TÀI LIỆU THAM KHẢO - tài liệu DUI0067D_ADS1_2_CompLib.pdf - tài liệu intro arm.pdf - tài liệu web : +) http://www.heyrick.co.uk/assembler/memmng.html + http://www.arm.vn/ + http://semiconvn.com/home/hoc-thiet-ke-vi-mach/video-hoc-vi-mach/4434bai-hc-v-tp-lnh-ca-arm.html + http://www.tailieu.vn ... Độc lập - Tự - Hạnh phúc BÀI TẬP LỚN Mơn học: Kiến trúc máy tính Bộ môn: Tin học công nghiệp Sinh viên thực : Ngô quang Cao thịnh tọa Nguyễn khắc sĩ Nguyễn thị hồng nhung Lớp HP:45Z Giáo viên hướng... KHẢO…………………………………………………………… 29 LỜI NÓI ĐẦU Kiến trúc ARM (tên gốc trước Advanced RISC Machines, Acorn Machine) loại kiến trúc vi xử lý 32-bit kiểu RISC (Reduced Instructions Set Computer Máy tính với tập lệnh đơn giản... nay, kiến trúc ARM kiến trúc CPU 32-bit dùng rộng rãi giới, ước tính 75% CPU 32-bit nhúng thuộc họ ARM ARM tìm thấy khắp nơi sản phẩm điện tử, từ thiết bị cầm tay (PDA, điện thoại di động, máy