1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giải ngân hàng kỹ thuật vi xử lý

39 123 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 0,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trả lời : 3 loại bus thường thấy trong một hệ vi xử lí : - Address bus : Truyền địa chỉ tham chiếu tới các khu vực bộ nhớ và chỉ ra dữ liệu được lưu giữ ở đâu trong không gian bộ nhớ - D

Trang 1

GIẢI NGÂN HÀNG ĐỀ THI KỸ THUẬT VI XỬ LÝ Ngành đào tạo : Điện – Điện tử

Phan Văn Hiện - Email: hienpv@lophocvui.com – Date: 12/12/2017

 Câu hỏi loại 1 điểm

Câu 1.1: Kể tên 3 loại bus thường thấy trong một hệ vi xử lý? Nêu tóm tắt chức năng của từng loại bus này ?

Trả lời :

3 loại bus thường thấy trong một hệ vi xử lí :

- Address bus : Truyền địa chỉ tham chiếu tới các khu vực bộ nhớ và chỉ ra dữ liệu được lưu giữ ở đâu trong không gian bộ nhớ

- Data bus : Là các kênh truyền tải thông tin theo hai chiều giữa CPU và bộ nhớ hoặc các thiết bị ngoại vi vào ra

- Control bus : Phục vụ truyền tải các thông tin dữ liệu để điều khiển hoạt động của hệ thống

Câu 1.2:

a) Họ vi xử lý ARM7 thuộc kiến trúc nào?

b) Phần lớn các vi xử lý ARM7 thực hiện các tập lệnh nào?

Trả lời:

a) Dòng ARM7 dựa trên kiến trúc Von Neumann sử dụng chung vùng nhớ để chứa dữ liệu và chương trình, do đó dùng chung bus cho việc truy xuất dữ liệu và chương trình b) Phần lớn các vi xử lí ARM7 thực hiện tập lệnh RISC

Câu 1.3:

a) Các bộ vi xử lý ARM thuộc kiến trúc CISC hay RISC?

b) Bộ vi xử lý ARM có tổng cộng bao nhiêu thanh ghi, mỗi thanh ghi có chiều dài bao nhiêu bit?

Trả lời :

a) Các bộ kiến trúc ARM thuộc kiến trúc RISC

b) Bộ vi xử lý ARM có tổng cộng 37 thanh ghi, trong đó có 30 thanh ghi đa dụng, 6 thanh ghi trạng thái và 1 thanh ghi bộ đếm chương trình Tất cả các thanh ghi đều có độ dài 32 bit

Trang 2

Câu 1.4:

Trong các chế độ hoạt động cơ bản của bộ vi xử lý ARM, các chế độ nào là chế độ

ưu tiên (Privileged mode), chế độ nào là chế độ không ưu tiên (Unprivileged mode), các chế độ nào là chế độ ngoại lệ (Exception mode), các chế độ nào không phải là chế độ ngoại lệ?

Trả lời :

Trong 7 chế độ của vi xử lý ARM, chế độ User là chế độ không ưu tiên, còn lại 6 chế

độ đều là chế độ ưu tiên Có hai chế độ User và System không phải là chế độ ngoại lệ, còn lại 5 chế độ đều là chế độ ngoại lệ

a) Trong chế độ User có tất cả 18 thanh ghi, trong đó có 16 thanh ghi da dụng (R0-R15)

và 2 thanh ghi hiển thị trạng thái Trong 16 thanh ghi đa dụng thì có 3 thanh ghi R15 là các thanh ghi chức năng đặc biệt

R13 R13: Dùng là con trỏ ngăn xếp

- R14: Dùng làm thanh ghi kết nối chứa địa chỉ của chương trình khi chạy một hàm con

- R15: Thanh ghi bộ đếm chương trình

- Thanh ghi trạng thái chương trình (CPSR) : Chứa thông tin về trạng thái của VXL ở thời điểm hiện tại

- Thanh ghi lưu trữ trạng thái chương trình (SPSR) : Lưu trữ thông tin trạng thái VXL trước khi VXL chuyển sang chế độ khác

b) Đúng

Câu 1.6:

a) Chế độ hệ thống (System mode) và chế độ người dùng (User mode) của bộ vi xử

lý ARM sử dụng cùng tập thanh ghi (đúng hay sai)?

b) Trong thanh ghi trạng thái chương trình của bộ vi xử lý ARM, bit I=1 có ý nghĩa

gì, bit F=1 có ý nghĩa gì?

Trả lời :

a) Đúng Chỉ khác nhau là chế độ System cho phép thay đổi giá trị của CPSR

b) I = 1 : Cấm ngắt thường IRQ F = 1 : Cấm ngắt nhanh FIQ

Trang 3

Câu 1.7:

Trong thanh ghi trạng thái chương trình của bộ vi xử lý ARM, các bit từ 31-28 có chức năng gì? Các bít từ 7-0 có chức năng gì?

Trả lời :

Các bit từ 31-28 là các bit cờ trạng thái 4 bit này bao gồm N, Z, C, V

- N = 1 khi kết quả phép tính trên ALU âm

- Z = 1 khi kết quả phép tính trên ALU = 0

- C = 1 khi kết quả phép tính trên ALU có nhớ

- V = 1 khi kết quả phép tính trên ALU xảy ra hiện tượng tràn

Bit 7 và bit 6 là 2 bit ngắt của ARM

- I = 1 : Cấm ngắt thường IRQ

- I = 0 : Cấm ngắt nhanh FIQ

Bit 5 là bit T biểu diễn trạng thái tập lệnh của ARM

- T = 1: VXL hoạt động ở chế độ Thumb 16bit

- T = 0: VXL hoạt động ở chế độ ARM 32bit

- Các bit từ 4-0 biểu diễn chế độ hoạt động của ARM

Câu 1.8:

Việc xử lý ngoại lệ (Exception) trong vi xử lý ARM được điều khiển thông qua việc sử dụng một vùng bộ nhớ gọi là bảng Vector Hãy vẽ bảng vector này cùng với các địa chỉ?

Trả lời :

Ngoại lệ Chế độ hoạt động Địa chỉ vector Reset (Khởi động lại) Supervisor (Giám sát) 0x00000000 Undefined instruction(Lệnh bị sai) Undefined (Không xác

Data Abort (Không nạp được do dữ

liệu sai địa chỉ)

Trang 4

Câu 1.10:

Endian có ý nghĩa gì? Bộ vi xử lý ARM7 hỗ trợ các loại hệ thống nhớ Endian nào?

Mô tả sự khác nhau của các loại này? Chế độ mặc định của vi xử lý ARM7 là loại Endian nào?

a) Khi có reset lõi ARM ở chế độ (mode) và trạng thái (state) nào?

b) Trong thanh ghi trạng thái chương trình, nếu bit T=1 thì lõi ARM hoạt động ở chế độ nào?

Trả lời :

Trang 5

a) Khi reset lõi ARM ở chế độ User và các cờ trạng thái đều bằng 0

Giống như ARM, tập lệnh Thumb có một số khả năng sau:

- Thực hiện lệnh theo điều kiện đặt ra;

- Truy cập thanh ghi;

Các lệnh Thumb có chiều dài 16 bit

Ưu điểm của Thumb so với ARM:

- Do mã lệnh ngắn hơn nên tiết kiệm được dung lượng bộ nhớ dành cho chương trình

- Hiệu suất cao hơn ARM do ít sai sót trong quá trình nạp lệnh vào bộ đệm lệnh

Các lệnh của ARM có thể chia thành các nhóm theo chức năng như sau:

- Lệnh rẽ nhánh

Trang 6

- Lệnh xử lý dữ liệu

- Lệnh nạp dữ liệu từ ô nhớ vào thanh ghi đơn và ngược lại

- Lệnh nạp dữ liệu từ các ô nhớ vào các thanh ghi và ngược lại

- Lệnh truy cập thanh ghi trạng thái

- Lệnh đồng xử lý

Tập lệnh ARM có một số khả năng sau:

- Thực hiện lệnh theo điều kiện đặt ra

- Truy cập thanh ghi

- Truy cập bộ dịch

Câu 1.16:

Để chuyển giữa trạng thái ARM và Thumb ta cần phải sử dụng lệnh nào? Viết cú pháp của lệnh khi muốn chuyển trạng thái của vi xử lý từ ARM sang Thumb và ngược lại?

Trả lời :

Để chuyển đổi trạng thái giữa ARM và Thumb ta sử dụng lệnh BX

Cú pháp

BX <điều kiện> Ri

- Nếu LSB của Ri = 0 thì sẽ chuyển ARM sang Thumb

- Nếu LSB của Ri = 1 thì sẽ chuyển Thumb sang ARM

Câu 1.17:

a) Nêu ưu điểm chính của tập lệnh ARM so với tập lệnh Thumb?

b) Lệnh MOVNES R1,R4,ASL #3 thực hiện cái gì?

Trả lời :

a) - Tập lệnh ARM truy cập được nhiều thanh ghi hơn

- Tập lệnh ARM hỗ trợ lệnh nhiều địa chỉ so với chỉ 2 địa chỉ của tập lệnh Thumb b) Dịch trái số học thanh ghi R4 sau đó chuyển vào thanh ghi R1 trong trường hợp giá trị R4 sau khi dịch không bằng R1 Kết quả có tác động đến cờ

Câu 1.18:

Nêu các giai đoạn (stage) trong đường ống (pipeline) của họ ARM7? Giải thích chức năng của mỗi giai đoạn?

Trả lời :

Trang 7

ARM7 có 3 giai đoạn là:

Trang 8

MOV A, #69H ;Nạp giá trị 69H cho thanh ghi A

MOV R4, #96 ;Nạp giá trị 96 cho thanh ghi R4

MOV DPTR, #6969H ;Nạp giá trị 6969H cho con trỏ dữ liệu DPTR

Chế độ đánh địa chỉ theo thanh ghi

MOV A, R0 ; Sao chép nội dung thanh ghi R0 vào thanh ghi A

MOV R2, A ; Sao chép nội dung thanh ghi A vào thanh ghi R0

Chế độ đánh địa chỉ trực tiếp

MOV R0, 69H ; Lưu nội dung của ô nhớ có địa chỉ 69H vào thanh ghi R0

MOV 69H, R0 ; Lưu nội dung của thanh ghi R0 vào ô nhớ có địa chỉ 69H

Chế độ đánh địa chỉ gián tiếp qua thanh ghi

MOV A, @R0 ; Chuyển nội dung ô nhớ có địa chỉ là giá trị của R0 vào A

MOV @R0, A ; Chuyển nội dung của A vào ô nhớ có địa chỉ là giá trị R0

Chế độ đánh địa chỉ số

MOVC A, @A+DPTR ; Nạp giá trị trong con trỏ dữ liệu DPTR được trỏ bởi A vào A

Trang 9

Câu 1.22:

Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại địa chỉ 30H đến 34H bằng cách sử dụng chế độ đánh địa chỉ trực tiếp Trả lời:

ORG 00H MAIN: MOV A, #20H ; Nạp cho thanh ghi A giá trị 20H

MOV 30H, A ; Lưu giá trị thanh ghi A vào ô nhớ có địa chỉ 30H MOV 31H, A ; Lưu giá trị thanh ghi A vào ô nhớ có địa chỉ 31H MOV 32H, A ; Lưu giá trị thanh ghi A vào ô nhớ có địa chỉ 32H MOV 33H, A ; Lưu giá trị thanh ghi A vào ô nhớ có địa chỉ 33H MOV 34H, A ; Lưu giá trị thanh ghi A vào ô nhớ có địa chỉ 34H END

Câu 1.23:

Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại địa chỉ 30H đến 32H bằng cách sử dụng chế độ đánh địa chỉ gián tiếp thanh ghi

Trả lời :

ORG 00H MAIN: MOV A, #20H ; Nạp cho thanh ghi A giá trị 20H

MOV R0, #30H ; Nạp cho thanh ghi R0 giá trị 30H MOV R1, #31H ; Nạp cho thanh ghi R1 giá trị 31H MOV R2, #32H ; Nạp cho thanh ghi R2 giá trị 32H MOV @R0, A ; Lưu giá trị thanh ghi A vào ô nhớ được trỏ bởi R0 MOV @R1, A ; Lưu giá trị thanh ghi A vào ô nhớ được trỏ bởi R1 MOV @R2, A ; Lưu giá trị thanh ghi A vào ô nhớ được trỏ bởi R2 END

Câu 1.24:

Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại địa chỉ 30H đến 36H bằng cách sử dụng vòng lặp và chế độ đánh địa chỉ gián tiếp thanh ghi

Trả lời :

Trang 10

ORG 00H MAIN: MOV A, #20H ; Nạp cho thanh ghi A giá trị 20H

MOV R0, #30H ; Nạp cho thanh ghi R0 giá trị 30H LOOP: MOV @R0, A ; Lưu giá trị thanh ghi A vào ô nhớ được trỏ bởi R0

INC R0 ; Tăng giá trị thanh ghi R0 thêm 1 CJNE R0, #37H, LOOP ; So sánh và nhảy đến LOOP nếu R0 khác

CALL DELAY ; Gọi hàm DELAY SJMP MAIN ; Trở lại MAIN DELAY: ……… ; Hàm có sẵn

RET END

CALL DELAY ; Gọi hàm DELAY CALL DELAY ; Gọi hàm DELAY CALL DELAY ; Gọi hàm DELAY CLEAR P1.0 ; P1.0 = 0

CALL DELAY ; Gọi hàm DELAY

Trang 11

SJMP MAIN ; Trở lại MAIN DELAY: ……… ; Hàm có sẵn

RET END

- TCON là thanh ghi 8 bit dùng để điều khiển các bộ định thời và ngắt ngoài

Trang 12

B1 : Nạp giá trị cho thanh ghi TMOD giá trị 1H hoặc 10H để chọn chế độ 1

B2 : Nạp giá trị cho thanh ghi TH và thanh ghi TL tương ứng

B3 : Khởi động bộ định thời tương ứng

B4 : Duy trì kiểm tra cờ tràn TF Nếu cờ được bật lên cao thì thoát khỏi vòng lặp B5 : Dừng bộ định thời

B1 : Nạp cho thanh ghi TMOD giá trị 2H hoặc 20H để chọn chế độ 2

B2 : Nạp giá trị cho thanh ghi TH

𝑇𝑖𝑚𝑒 𝑐ầ𝑛 𝑡ạ𝑜 = 10

9600= 104.17 (𝑢𝑠) => 𝐺𝑖á 𝑡𝑟ị 𝑛ạ𝑝 = 256 −

104.1734.7 = 253

=> Giá trị nạp cho TH1 = 253 = 0FDH

Trang 13

B1: Nạp cho thanh ghi TMOD giá trị 2H hoặc 20H để chọn chế độ 2

B2: Nạp giá trị cho thanh ghi TH1 giá trị tương ứng để cài đặt tốc độ baud

B3: Nạp giá trị 50H cho thanh ghi SCON để cài đặt chế độ 1

B4: Khởi động bộ định thời Timer1

B5: Xóa cờ TI

B6: Chuyển byte kí tự cần truyền vào thanh ghi SBUF

B7: Kiểm tra việc truyền dữ liệu hoàn tất bằng cách duy trì kiểm tra cờ TI Nếu cờ TI bật lên 1 tức là việc chuyển dữ liệu hoàn tất

B8: Quay trở lại bước 5

Câu 1.33:

Trình bày các bước lập trình vi điều khiển 8051 để nhận dữ liệu nối tiếp ?

Trả lời :

B1: Nạp cho thanh ghi TMOD giá trị 2H hoặc 20H để chọn chế độ 2

B2: Nạp giá trị cho thanh ghi TH1 giá trị tương ứng để cài đặt tốc độ baud

B3: Nạp giá trị 50H cho thanh ghi SCON để cài đặt chế độ 1

B4: Khởi động bộ định thời Timer1

B5: Xóa cờ RI

B6: Kiểm tra xem việc nhận dữ liệu thành công chưa bằng cách kiểm tra cờ RI Nếu cờ

RI bật lên 1 thì đã nhận thành công dữ liệu

B7: Dữ liệu nằm trong thanh ghi SBUF chính là dữ liệu nhận được

Trang 14

Thanh ghi IE là thanh ghi 8 bit cho phép cài đặt cho phép hoặc cấm ngắt

7 EA AFH Cho phép/Cấm hoạt động của thanh ghi

5 ET2 ADH Cho phép ngắt Timer 2

4 ES ACH Cho phép ngắt truyền thông nối tiếp

3 ET1 ABH Cho phép ngắt Timer 1

2 EX1 AAH Cho phép ngắt ngoài 1

1 ET0 A9H Cho phép ngắt Timer 0

0 EX0 A8H Cho phép ngắt ngoài 0

Câu 1.36:

Tìm giá trị của thanh ghi IE của vi điều khiển 8051 trong các trường hợp sau đây :

a Cho phép ngắt cổng nối tiếp, ngắt Timer1 và ngắt phần cứng ngoài 0

b Cho phép ngắt cổng nối tiếp, ngắt Timer2 và ngắt phần cứng ngoài 1

c Cho phép ngắt Time0 và ngắt phần cứng ngoài 0

Trang 15

Câu hỏi loại 2 điểm

- CPU : Có nhiệm vụ tính toán và điều khiển

- Bộ nhớ (ROM, RAM) : Lưu trữ dữ liệu và lệnh cho CPU xử lí

- Thiết bị vào : Tiếp nhận dữ liệu

- Thiết bị ra : Xuất tín hiệu ra ngoài

Câu 2.2:

a Nêu sự khác nhau giữa bộ vi xử lý CISC và RISC? Cho ví dụ minh họa?

b Trong vi xử lý ARM, các thanh ghi nào dùng để lưu bộ đếm chương trình (PC)

và thanh ghi kết nối (Link Register)? Thanh ghi r13 thường được dùng để lưu cái gì?

Trả lời :

a)

- Tập lệnh được đơn giản hóa Thời gian

thực hiện các câu lệnh là như nhau

- Kích thước bán dẫn nhỏ, cần ít

Transistor

- Tập lệnh phức tạp, mỗi lệnh có thể sử dụng cho nhiều chức năng

- Kích thước bán dẫn lớn, cần nhiều transistor

Trang 16

- Thời gian phát triển sản phẩm ngắn,

Trang 17

Câu 2.4:

a Khi có một ngoại lệ (Exception) xảy ra, lõi ARM thực thi các công việc gì?

b Để trở về sau khi thực thi xong một ngoại lệ (Exception), bộ xử lý ngoại lệ cần thực thi các công việc gì?

Trả lời :

a) Khi có một ngoại lệ xảy ra thì ARM sẽ thực hiện:

- Lưu địa chỉ tiếp theo ngay sau lệnh gọi ngoại lệ trong chương trình chính vào thanh ghi LR

- Copy nội dung CPSR vào thanh ghi SPSR tương ứng với mỗi chế độ

- Đặt 5 bit chế độ của CPSR tương ứng với chế độ ngoại lệ

- Đặt bit T=0 để thiết lập trạng thái ARM state

- Đặt bit 7 và bit 6 trong CPSR Điều này sẽ cấm các ngắt thường và ngắt nhanh

- Lưu địa chỉ vector ngoại lệ vào thanh ghi PC để thực thi chương trình ngoại lệ b) Để trở về sau khi thực hiện xong một ngoại lệ bộ xử lí sẽ thực hiện:

- Copy giá trị thanh ghi LR vào thanh ghi PC

- Lấy lại giá trị thanh ghi trạng thái CPSR từ SPSR

- Xóa các cờ cấm ngắt nếu chúng được lập khi chuyển qua trạng thái xử lí ngoại

- B <nhãn> : Rẽ nhánh không điều kiện đến nhãn

- BL <Chương trình con> : Rẽ nhánh đến chương trình con Khi kết thúc chương trình con sẽ quay trở lại địa chỉ lưu trong thanh ghi LR

- BX <thanhghi> : Rẽ nhánh gián tiếp đến địa chỉ chứa trong <thanh ghi> và chọn tập lệnh Thumb hoặc ARM dựa vào bit LSB của <thanh ghi>

Câu 2.6:

a Các thành phần của lõi vi xử lý ARM7? Vẽ hình minh họa

b Nêu các đặc điểm của họ ARM7TDMI? Ý nghĩa của các từ viết tắt T, D, M, I trong ký hiệu?

Trang 18

Trả lời :

a)

Cấu trúc của ARM7:

- Register bank: 2 cổng đọc, 1 cổng ghi

- Barrel shifter: Dịch hoặc quay toán hạng

- ALU: Khối tính toán

- Address register và Incrementer: Thanh ghi địa chỉ và bộ tăng

- Các thanh ghi dữ liệu: Lưu trữ dữ liệu nhận từ bộ nhớ hoặc gửi từ bộ nhớ

- Intruction decode and control: Khối giải mã và điều khiển

b) Các đặc điểm của họ ARM7TDMI và ý nghĩa của T,D,M,I:

- 3 tác vụ trong dòng chảy lệnh : Đọc, giải mã, thực hiện

- Kiến trúc Von Neuman

- T : Thumb – Hỗ trợ tập lệnh Thumb

- D : Debugger – Hỗ trợ gỡ lỗi

- M : Multiplier – Hỗ trợ nhân 64bit

- I : ICE - Hỗ trợ gỡ lỗi trên JTAG

Trang 19

Câu 2.7:

a Kể tên các nhóm tín hiệu chính trong lõi ARM7TDMI?

b Tại sao kỹ thuật đường ống (pipeline) lại được sử dụng trong các họ vi xử lý?

Họ ARM7 sử dụng pipeline mấy giai đoạn (stage)? Bộ đếm chương trình (PC) trỏ tới lệnh đang được tìm kiếm hay lệnh đang được thực thi?

- Các chân tín hiệu ngắt : nIRQ và nFIQ

- Các chân điều khiển bus : ALE và DEE

- Chân cấp nguồn : VDD, VSS

- Giao diện với bộ nhớ : A[31:0], D[31:0], nENOUT, mMREQ, SEQ, nRW

- Giao diện quản lí bộ nhớ : ABORT

- Giao diện đồng xử lí : nCPI, CPA, CPB

b) - Kỹ thuật đường ống Pipeline được sử dụng trong các họ vi xử lí vì nó giúp tăng tốc độ xử lí cho phép thực hiện các lệnh một cách đồng thời thay vì tuần tự

ARM7 sử dụng pipeline 3 giai đoạn:

b Các loại dữ liệu nào có thể được đánh địa chỉ trong bộ nhớ?

c Nêu các ưu điểm của việc thực thi lệnh có điều kiện? Mô tả việc thực thi lệnh ADDNES r1, r0, r2?

Trang 20

+ 16 bit có dấu và không dấu

+ 32 bit có dấu và không dấu

Với các dữ liệu ngắn hơn các bit sẽ thay thế bằng bit “0”

c) Việc thực thi lệnh có điều kiện giúp giải quyết các yêu cầu bài toán dễ dàng hơn Lệnh ADDNES R1, R0, R2

ADD : Cộng giá trị R0 và R2, kết quả lưu trong R1

NE: Điều kiện cộng là R0 khác R2

S : Cho phép N,Z,C,V thay đổi để phản ánh kết quả

MOV R3, R1, LSR #3 ;Dịch phải logic R1 3 lần, kết quả lưu vào R3; R3 = 0x10468ACF MOV R4, R1, ROR #2 ;Quay phải R1 2 lần, kết quả lưu vào R4; R4 = 0x208D159E

LDR R1, [R7], #4 ; Nạp R1 = mem[R7] sau đó R7 = R7+4;

MLA R4, R0, R1, R4 ; R4 = (R0*R1)+R4 SUBS R5, R5, #1 ; R5 = R5-1 có ảnh hưởng NZCV BNE LOOP ; Nhảy đến LOOP nếu Z = 0

Ngày đăng: 15/12/2021, 13:16

TỪ KHÓA LIÊN QUAN

w