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

GIỚI THIỆU VỀ VI XỬ LÝ ARM

100 1,6K 7

Đ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 100
Dung lượng 4,63 MB

Nội dung

GIỚI THIỆU VỀ VI XỬ LÝ ARM

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA: KỸ THUẬT ĐIỆN TỬ 2

GIỚI THIỆU VỀ VI XỬ LÝ ARM

Trang 2

NỘI DUNG BÁO CÁO

Trang 3

NỘI DUNG BÁO CÁO

Trang 4

NỘI DUNG BÁO CÁO

Giới thiệu chung về họ vi xử lý ARM

Các thế hệ vi xử lý ARM

Trang 5

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

• ARM (Acorn RISC Machine sau là Advantage RISC Machine) là cấu trúc vi xử lý 32-bit kiểu RISC được

sử dụng rộng rãi trong các thiết kế nhúng

• Do đặc điểm tiết kiệm năng lượng, các CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động.

• Ngày nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32-bit được sản xuất nhiều nhất trên thế giới

• CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử, từ thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò chơi cầm tay, và máy tính cầm tay) cho đến các thiết bị ngoại vi máy tính (ổ đĩa cứng, bộ định tuyến

Trang 6

• Nếu cầm bất kỳ chiếc điện thoại nào lên thì có tới 95% chắc chắn là nó chứa ít nhất một vi xử

lý ARM

vòng năm năm qua thì khả năng đó là 100%

khác.

khác như router không dây; máy in; thiết bị

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 7

• 2003, Intel mới bán được chip x86 thứ 1 tỉ

• Đối thủ sát sườn của Intel trong thế giới

PC là AMD mới cán mốc chip thứ 500 triệu vào năm nay

• Trong khi đó, ARM chỉ riêng trong năm

2009, bán được 2,8 tỉ vi xử lý, nghĩa là bán được 90 chip mỗi giây

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 8

• ARM không có nhà máy sản xuất và không bán chip nào dưới thương hiệu của họ Thay vào đó, họ cấp phép thiết

kế lõi CPU cho hơn 200 nhà sản xuất bán dẫn trên khắp thế giới, như Marvell Qualcomm, Texas Instruments, …

• Mỗi hãng khi nhận giấy phép này đều tự do đóng gói công nghệ ARM với những chỉnh sửa tùy ý để cho ra sản phẩm của riêng họ, tiếp thị dưới thương hiệu của riêng họ

• Ví dụ, CPU trong iPhone 3GS được bán dưới thương hiệu Samsung S5PC100, nhưng bên trong đó là lõi ARM Cortex A8 600MHz, liên kết với công nghệ xử lý đa phương tiện, tín hiệu, đồ họa của riêng Samsung

tảng Cortex A8 này và thêm các tính năng hỗ trợ đồ họa

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 9

• Ngay cả Intel cũng thiết kế và quảng bá chip dựa trên lõi của ARM trong vài năm dưới thương hiệu XScale

• Có thể tìm thấy vi xử lý XScale trong thiết bị BlackBerry series 8000

• Nhưng sau đó Intel bán bộ phận XScale cho Marvell vào năm 2006 với lý do nó không đem lại lợi nhuận Hai năm sau họ cho ra đời chip Atom.

• Atom được Intel thiết kế từ đầu để có thể hoạt động tốt ở điện áp cực thấp Dù vậy, các mẫu Atom đời đầu vẫn ngốn khá nhiều pin của smartphone May mắn là khi thâm nhập vào netbook, Atom phát triển như tên lửa.

• Nhưng khi thị trường netbook bắt đầu bão hoà, họ phải

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 10

• Medfield là một phiên bản Atom khác vừa được Intel phát triển, nhỏ tới mức có thể hoạt động ở mức điện áp rất thấp và có thể ứng dụng được trong vô số sản phẩm điện tử tiêu dùng

• Có một điều khá thú vị là dường như Intel bắt đầu làm theo cách thức của ARM khi cho phép công ty bán dẫn TSMC (Đài Loan) phát triển các sản phẩm SoC (System On Chip) tùy ý dựa trên lõi Atom của họ.

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 11

• Việc thiết kế ARM được bắt đầu từ năm 1983, trong một

dự án phát triển của công ty máy tính Acorn.

Furber, bắt đầu phát triển một bộ vi xử lý có nhiều điểm tương đồng với Kỹ thuật MOS 6502 tiên tiến.

vì vậy việc tạo ra một chip như vậy là một bước tiến đáng kể của công ty này

ARM1 vào năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm ‘’thực’’ gọi là ARM2

tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh

GIỚI THIỆU CHUNG VỀ HỌ VI XỬ LÝ ARM

Trang 12

NỘI DUNG BÁO CÁO

Giới thiệu chung về họ vi xử lý ARM

Các thế hệ vi xử lý ARM

Trang 13

• Có thể nói ARM2 là bộ vi xử lý 32-bit khả dụng đơn giản nhất trên thế giới, với chỉ gồm 30.000 transistor (so với bộ vi xử lý lâu hơn bốn năm của Motorola là 68000 với khoảng 68.000 transistor)

• Sự đơn giản như vậy có được nhờ ARM không

có vi chương trình (mà chiếm khoảng ¼ đến 1/3 trong 68000) và cũng giống như hầu hết các CPU vào thời đó, không hề chứa cache

• Sự đơn giản này đưa đến đặc điểm tiêu thụ công suất thấp của ARM, mà lại có tính năng tốt hơn

cả 286

• Thế hệ sau, ARM3, được tạo ra với 4KB cache

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 14

• Vào những năm cuối thập niên 80, hãng máy tính Apple Computer bắt đầu hợp tác với Acorn để phát triển các thế hệ lõi ARM mới

• Công việc này trở nên quan trọng đến nỗi Acorn nâng nhóm thiết kế trở thành một công ty mới gọi là Advanced RISC Machines

• Kết quả sự hợp tác này là ARM6 Mẫu đầu tiên được công bố vào năm 1991.

• Apple đã sử dụng bộ vi xử lý ARM 610 dựa trên ARM6 làm cơ sở cho PDA hiệu Apple Newton.

• Vào năm 1994, Acorn dùng ARM 610 làm CPU trong các máy vi tính RiscPC của họ

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 15

• Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước ARM2 có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000

• Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn

cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp

• Thế hệ thành công nhất có lẽ là ARM7TDMI với hàng trăm triệu lõi được sử dụng trong các máy điện thoại di

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 16

• Dreamcast đưa ra bộ vi xử lý SH4 mà chỉ mượn một

số ý tưởng từ ARM (tiêu tán công suất thấp, tập lệnh gọn …) nhưng phần còn lại thì khác với ARM

• Dreamcast cũng tạo ra một chip xử lý âm thanh được thiết kế bởi Yamaha với lõi ARM7

• Bên cạnh đó, Gameboy Advance của Nintendo, dùng ARM7TDMI ở tần số 16,78 MHz

• Hãng DEC cũng bán giấy phép về lõi cấu trúc ARM (đôi khi chúng ta có thể bị nhầm lẫn vì họ cũng sản xuất ra DEC Alpha) và sản xuất ra thế hệ Strong ARM Hoạt động ở tần số 233 MHz mà CPU này chỉ tiêu tốn khoảng 1 watt công suất (những đời sau còn tiêu tốn ít công suất hơn nữa)

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 17

• Sau những kiện tụng, Intel cũng được chấp nhận sản xuất ARM và Intel đã nắm lấy cơ hội này để bổ sung vào thế hệ già cỗi i960 của họ bằng Strong ARM

sản phẩm chức năng cao gọi tên là Xscale.

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 18

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 19

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 20

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 21

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 22

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 23

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 24

CÁC THẾ HỆ VI XỬ LÝ ARM

Trang 25

• Một số công ty được cấp bản quyền ARM như sau:

Trang 26

NỘI DUNG BÁO CÁO

PHẦN 1: GIỚI THIỆU HỌ VI XỬ LÝ ARM

PHẦN 2: VI XỬ LÝ ARM7TDMI

PHẦN 3: VI ĐIỀU KHIỂN AT91SAM7S256

PHẦN 4: PHẦN CỨNG KIT AT91SAM7S256

PHẦN 5: CÁC CHƯƠNG TRÌNH MẦU KIỂM

TRA CÁC KHỐI MẠCH

Trang 27

NỘI DUNG BÁO CÁO

Phần cứng vi xử lý ARM7TDMI

Tập lệnh ARM7TDMI

Tập lệnh THUMP ARM7TDMI

So sánh THUMP và ARM

Trang 28

VI XỬ LÝ ARM7TDMI

• ARM7TDMI là bộ vi xử lý đa dụng 32 bit trong

họ Advanced RISC machine

• ARM7TDMI ?

ARM7 - 32-bit cấu trúc RISC hiệu năng cao

T – Kiến trúc mở rộng cho Thumb

D – Gỡ rối (Debug extension)

M – Bộ nhân cao cấp (Enhanced multiplier)

I - Embedded ICE macrocell extension (mạch mô phỏng tích hợp)

Trang 29

VI XỬ LÝ ARM7TDMI

– fetch, decode, execute

Trang 30

VI XỬ LÝ ARM7TDMI

• ARM7TDMI có hai trạng thái hoạt động:

instructions

THUMB instructions

• Chuyển trạng thái hoạt động - Switching state

• Lệnh BX có bit trạng thái (bit 0) lập trong toán hạng thanh ghi.

• Một cách tự động khi quay về từ một ngoại lệ (exception) (IRQ, FIQ, ABORT, SWI,…), khi exception được thực hiện khi vi xử lý đang trong trạng thái THUMB.

• Thực hiện lệnh BX với bit trạng thái được xoá trong toán hạng thanh ghi

• Một cách tự động khi bộ vi xử lý trả lời một ngoại lệ Trong trường hợp

Trang 31

VI XỬ LÝ ARM7TDMI

• Trạng thái thức hiện chương trình bình thường

• Thiết kế để hỗ trợ quá trình truyền dữ liệu hoặc truyền kênh

• Sử dụng cho quá trình xử lý các ngắt chung

• Chế độ bảo vệ cho hệ điều hành

• Chuyển qua sau khi bỏ dở quá trình truyền dữ liệu hoặc tiền lấy lệnh

• Chế độ đặc quyền người dùng cho hệ điều hành

Undefined (und): Entered when an undefined instruction is executed

Trang 32

• Việc chuyển qua các chế độ có thể thực hiện bằng phần mềm, có thể bằng quá trình xử lý ngắt hoặc xử lý ngoại lệ.

– Hầu hết các chương trình ứng dụng sẽ thực hiện trong chế độ User Các chế độ non-user được hiểu là các chế độ đặc quyền được chuyển qua khi phục vụ ngắt, xử lý ngoại lệ hoặc các quá trình bảo vệ tài nguyên khác.

VI XỬ LÝ ARM7TDMI

Trang 33

VI XỬ LÝ ARM7TDMI

– 31 thanh ghi đa năng 32-bit

– 6 thanh ghi trạng thái

• Các thanh ghi này không đồng thời truy cập được tại cùng một thời điểm, mà truy cập tuỳ theo chế độ hoạt động và trạng thái của bộ vi xử lý.

Trang 34

VI XỬ LÝ ARM7TDMI

Trang 35

VI XỬ LÝ ARM7TDMI

Trang 36

VI XỬ LÝ ARM7TDMI

• Các thanh ghi tương ứng trong trạng thái THUMB và trạng thái ARM như sau:

Trang 37

VI XỬ LÝ ARM7TDMI

• ARM7TDMI có một thanh ghi trạng thái chương trình hiện hành Current Program Status Register (CPSR), và 05 thanh ghi Saved Program Status Registers (SPSRs) sử dụng cho các quá trình xử lý ngoại lệ.

• Các chứa năng của thanh ghi này là:

Trang 38

VI XỬ LÝ ARM7TDMI

• Các cờ mã điều kiện - Condition Code Flags

số học và logic, Các bit này thường được sử dụng làm điều kiện chuyển điều khiển chương trình.

• Trong trạng thái ARM, tất cả các lệnh có thể thực hiện theo điều kiện.

• Trong trạng thái THUMB, chỉ có lệnh rẽ nhán Branch được thực hiện theo điều kiện.

• Các bit điều khiển - Control Bits

Nếu bộ vi xử lý đang hoạt động trong chế độ đặc quyền, các bit này

có thể thay đổi bằng phần mềm.

• Bit này phản ánh chế độ hoạt động của bộ vi xử lý Khi bit này được lập

bộ vi xử lý thực hiện trạng thái THUMP ngược lại nó hoạt động trong trạng thái ARM Bit này cung cấp ra ngoài trên chân TBIT.

• Chú ý rằng phần mềm không thay đổi được trạng thái của TBIT trong CPSR Vì nếu vậy bộ xử lý có thể chuyển trạng thái một cách không dự

Trang 39

VI XỬ LÝ ARM7TDMI

• Các bit điều khiển - Control Bits

– Các bit cấm ngắt - Interrupt disable bits:

các ngắt IRQ và FIQ.

– Các bit chế độ - Mode bits:

Chúng xác định chế độ hoạt động của bộ vi xử lý Không phải tất cả trạng thái của các bit này đều định nghĩa các chế

độ hoạt động đúng Nên nếu lập trình các bit chế độ sai bộ vi

xử lý sẽ chuyển qua trạng thái không thể phục hồi, và nó cần

Trang 40

VI XỬ LÝ ARM7TDMI

• Khi có các ngoại lệ, chương trình thông thường sẽ tạm ngưng.

• ARM hỗ trợ 7 loại ngoại lệ với 7 chế độ đặc quyền để

xử lý chúng.

• Các vector ngoại lệ của ARM bao gồm:

Trang 41

VI XỬ LÝ ARM7TDMI

• Khi xử lý một ngoại lệ ARM7TDMI sẽ:

– Lưu địa chỉ của lệnh kế tiếp vào thanh ghi liên kết (Link Register) thích hợp

– Chép giá trị của CPSR vào SPSR thích hợp

– Đổi các bit chế độ trong CPSR tuỳ thuộc vào loại ngoại lệ

– Đổi giá thanh ghi PC để lấy lệnh kế tiếp từ chương

Trang 42

VI XỬ LÝ ARM7TDMI

• Khi kết thúc quá trình xử lý ngoại lệ:

– Chuyển Link Register, trừ đi một offset tương ứng cho thanh ghi PC (Giá trị offset sẽ tuỳ thuộc vào loại ngoại lệ)

– Chép SPSR cho CPSR trở lại

– Xoá 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 lệ.

Trang 43

VI XỬ LÝ ARM7TDMI

– Khi bộ vi xử lý RESET Reset sẽ có:

• CPSR  Supervisor + I + F

• PC  0x00000000

– Khi vi xử lý thực hiện một lệnh không định nghĩa thì

• LR_undef  Undefined Instruction Address + #4

• PC  0x00000004, CPSR  Undefined + I

• Return with : MOVS pc, lr

– Bỏ qua quá trình lấy lệnh từ bộ nhớ thì:

• LR_abt  Aborted Instruction Address + #4, SPSR_abt  CPSR

Trang 44

VI XỬ LÝ ARM7TDMI

• Bỏ qua dữ liệu - Data Abort

– Khi bỏ qua việc truy cập dữ liệu từ bộ nhớ:

Trang 45

VI XỬ LÝ ARM7TDMI

• Yêu cầu ngắt - Interrupt Request

– Bằng tín hiệu cung cấp tới chân IRQ

• Yêu cầu ngắt nhanh - Fast Interrupt Request

– Bằng tín hiệu cấp tới chân FIQ

Trang 46

VI XỬ LÝ ARM7TDMI

ARM Instruction Set

TẬP LÊNH ARM

Trang 47

ARM Instruction Set

Trang 48

• Tất cả các lệnh ARM đều có thể hoạt động theo điều kiện, nghĩa là chúng có thể thực hiện hoặc không tuỳ thuộc vào giá trị của các cờ N, C, và V trong CPSR

• Mỗi lệnh chứa 4-bit điều kiện 31 tới 28

Các bit điều kiện - Condition Field (1/2)

Trang 49

• Có 15 mã điều kiện, mỗi mã được ký hiệu bằng hai ký tự cuối trong lệnh gợi nhớ.

– Một lệnh rẽ nhánh (B trong assembly) trở thành BEQ cho "Branch if Equal", có nghĩa là Branch chỉ xảy ra nếu Z được lập.

Condition Field (2/2)

Trang 50

• Tất cả các bộ vi xử lý ARM đều có một lệnh rẽ nhánh branch cho phép chuyển điều khiển chương trình tới hoặc lui trong khoảng 32Mbytes.

– Khi Program Counter (PC) là một trong các thanh ghi đa năng (register 15), một quá trình rẽ nhánh hoặc nhảy có thể tạo ra bằng cách ghi giá trị tới thanh ghi này.

Link sẽ cất địa chỉ của lệnh tiếp theo (địa chỉ quay về) vào thanh ghi 14 (link register hoặc LR).

nào trong vùng 4Gbyte Một giá trị 32-bit có thể nạp trực tiếp từ bộ nhớ vào thanh ghi PC, để rẽ nhánh chương trình.

điều khiển tới một địa chỉ cung cấp trong lệnh

Branch Instructions (1/2)

Trang 51

Các lệnh rẽ nhánh

B, BL Rẽ nhanh, và rẽ nhánh với link

BX Rẽ nhánh và chuyển tập lệnh

Ví dụ:

MOV PC, #0 ; R15 = 0, chuyển tới địa chỉ 0

MOV PC, LR ; R15=R14, địa chỉ quay về sau lệnh BL

Branch Instructions (2/2)

Trang 52

• ARM có 16 lệnh xử lý dữ liệu Hầu hết các lệnh

xử lý dữ liệu có hai toán hạng nguồn (Move và Move Not chỉ có 1) và chứa kết quả trong một thanh ghi (Ngoại trừ các lệnh Compare và Test chỉ thay đổi mã điều kiện - condition codes)

Data Processing (1/2)

– Một trong hai toán hạng nguồn luôn là

một thanh ghi, toán hạng kia gọi là

toán hạng dịch, và nó có thể là một số

tức thời hoặc một thanh ghi Nếu toán

hạng thứ 2 là thanh ghi, một giá trị có

thể chuyển tới nó trước khi sử dụng

Trang 53

• Các lệnh xử lý dữ liệu

Data Processing (2/2)

Assembler Mnemonic OP Code Action

Trang 54

Multiply Instructions (1/2)

• ARM có hai loại lệnh nhân

• Tất cả các lệnh nhân có hai toán hạng thanh ghi cung cấp giá trị để nhân

• MUL, nhân giá trị hai thanh ghi với nhau, thu gọn kết quả trong 32 bits, và chứa kết quả vào thanh ghi thứ 3.

• MLA, nhân giá trị hai thanh ghi với nhau rồi cộng với giá trị của thanh ghi thứ 3 thu gọn kết quả thành 32 bits, và chứa kết quả vào một thanh ghi thứ tư (multiply và accumulate)

MUL R4, R2, R1 ; Set R4 to value of R2 multiplied by R1

Trang 55

Multiply Instructions (2/2)

• Có 4 lệnh nhân tạo ra kết quả 64-bit (long multiply)

64-bit vào thanh ghi thứ 3 và thứ 4 Một lệnh nhân có dấu

(SMULL) và một lệnh nhân không dấu (UMULL).

giá trị 64-bit của thanh ghi thứ 3 và thứ 4 chứa kết quả 64-bit trở lại thanh ghi thứ 3 và thứ 4 Cũng có một lệnh có dấu (SMLAL) và một lệnh không dấu (UMLAL) Các lệnh này thực hiện nhân dài và tổng kết quả lại.

SMULL R4, R8, R2, R3 ; R4 = bits 0 to 31 of R2xR3

; R8 = bits 32 to 63 of R2 x R3

Ngày đăng: 15/08/2015, 10:06

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w