+ Trả lời Chủ đề
Kết quả 1 đến 2 của 2

Chủ đề: Giới thiệu chung về ARM Cortex-M3, Part1/2

  1. #1
    Junior Member
    Ngày tham gia
    Feb 2012
    Bài viết
    5
    Thanks
    0
    Thanked 29 Times in 5 Posts

    Giới thiệu chung về ARM Cortex-M3, Part1/2

    GIỚI THIỆU CHUNG VỀ ARM CORTEX M3


    1. Giới thiệu:

    Giải pháp Soc (System-on-chip) dựa trên bộ vi xử lý nhúng ARM được ứng dụng vào rất nhiều thị trường khác nhau bao gồm các ứng dụng doanh nghiệp, các hệ thống ô tô, mạng gia đình và công nghệ mạng không dây... Dòng vi xử lý ARM Cortex dựa trên một kiến trúc chuẩn đủ để đáp ứng hầu hết các yêu cầu về hiệu năng làm việc trong tất cả các lĩnh vực trên. Dòng ARM Cortex bao gồm ba cấu hình khác nhau của kiến trúc ARMv7: cấu hình A cho các ứng dụng tinh vi, yêu cầu cao chạy trên các hệ điều hành mở và phức tạp như Linux, Android…; cấu hình R dành cho các hệ thống thời gian thực và cấu hình M được tối ưu cho các ứng dụng vi điều khiển, cần tiết kiệm chi phí.

    Bộ vi xử lý Cortex-M3 là bộ vi xử lý ARM đầu tiên dựa trên kiến trúc ARMv7-M và được thiết kế đặc biệt để đạt được hiệu suất cao trong các ứng dụng nhúng cần tiết kiệm năng lượng và chi phí, chẳng hạn như các vi điều khiển, hệ thống cơ ô tô, hệ thống kiểm soát công nghiệp và hệ thống mạng không dây. Thêm vào đó là việc lập trình được đơn giản hóa đáng kể giúp kiến trúc ARM trở thành một lựa chọn tốt cho ngay cả những ứng dụng đơn giản nhất.

    2. Kiến trúc và tính năng xử lý của lõi Cortex M3

    Bộ vi xử lý Cortex-M3 dựa trên kiến trúc ARMv7-M có cấu trúc thứ bậc. Nó tích hợp lõi xử lý trung tâm, với các thiết bị ngoại vi hệ thống tiên tiến để tạo ra các khả năng như kiểm soát ngắt, bảo vệ bộ nhớ, gỡ lỗi và theo vết hệ thống.

    Các thiết bị ngoại vi có thể được cấu hình một cách thích hợp, cho phép bộ vi xử lý Cortex-M3 đáp ứng được rất nhiều ứng dụng và yêu cầu khắt khe của hệ thống. Lõi của bộ vi xử lý Cortex-M3 và các thành phần tích hợp đã được thiết kế đặc biệt để đáp ứng yêu cầu bộ nhớ tối thiểu, năng lượng tiêu thụ thấp và thiết kế nhỏ gọn.

    2.1 Kiến trúc lõi Cortex M3

    Lõi Cortex M3 dựa trên cấu trúc Havard, được đặc trưng bằng sự tách biệt giữa vùng nhớ dữ liệu và chương trình. Vì có thể đọc cùng lúc lệnh và dữ liệu từ bộ nhớ, bộ vi xử lý Cortex-M3 có thể thực hiện nhiều hoạt động song song, tăng tốc thực thi ứng dụng.
    Cortex M3 Core.jpg
    Bộ vi xử lý Cortex M3


    2.2 Kiến trúc tập lệnh Thumb-2
    Tập lệnh Thumb-2 là sự pha trộn giữa tập lệnh 16 và 32 bit, đạt được hiệu suất của các lệnh ARM 32 bit, đồng thời phù hợp với mật độ mã cũng như tương thích ngược với tập lệnh gốc Thumb 16 bit.
    Thumb Thumb2.jpg
    Quan hệ giữa tập lệnh Thumb-2 và tập lệnh Thumb

    Trong một hệ thống dựa trên bộ vi xử lý ARM7, việc chuyển đổi nhân xử lý giữa chế độ Thumb (có lợi về mật độ mã) và ARM (có lợi về mặt hiệu suất) là cần thiết cho một số ứng dụng. Còn bộ vi xử lý Cortex-M3 có các lệnh 16 bit và 32 bit tồn tại trong cùng một chế độ, cho phép mật độ mã cũng như hiệu suất đều cao hơn mà không cần phải chuyển đổi phức tạp. Vì tập lệnh Thumb-2 là tập bao hàm của tập lệnh Thumb 16 bit nên bộ vi xử lý Cortex-M3 có thể thực thi các đoạn mã trước đây viết cho Thumb 16 bit. Do được cài đặt tập lệnh Thumb-2 nên bộ vi xử lý Cortex-M3 có khả năng tương thích với các thành viên khác của dòng ARM Cortex.

    Tập lệnh Thumb-2 có các lệnh đặc biệt giúp lập trình viên dễ dàng viết mã cho nhiều ứng dụng khác nhau. Các lệnh BFI và BFC là các lệnh thao tác trên bit, rất có ích trong các ứng dụng xử lý gói tin mạng. Các lệnh SBFX và UBFX giúp việc chèn vào hoặc trích xuất một số bit trong thanh ghi được nhanh chóng. Lệnh RBIT đảo bit trong một WORD, có ích trong các thuật toán DSP như DFT. Các lệnh bảng rẽ nhánh TBB và TBH tạo sự cân bằng giữa mật độ mã và hiệu suất. Tập lệnh Thumb-2 cũng giới thiệu cấu trúc If-Then mới có thể xác định điều kiện thực hiện tối đa bốn lệnh tiếp theo.

    Các tính năng chính mới trong tập lệnh Thumb-2 bao gồm việc thực hiện mã lệnh C một cách tự nhiên hơn, thao tác trực tiếp trên các bit, phép chia phần cứng và lệnh If/Then. Hơn nữa, nhìn từ góc độ phát triển ứng dụng, Thumb-2 tăng tốc độ phát triển, đơn giản hóa việc bảo trì, hỗ trợ các đối tượng biên dịch thông qua tối ưu hóa tự động cho cả hiệu suất và mật độ mã mà không cần quan tâm đến việc mã được biên dịch cho chế độ ARM hoặc Thumb. Kết quả là lập trình viên có thể để mã nguồn của họ trong ngôn ngữ C mà không cần tạo ra các thư viện đối tượng biên dịch sẵn, có nghĩa là khả năng tái sử dụng mã nguồn lớn hơn nhiều.

    2.3 Cách tổ chức và thực thi tập lệnh

    Cách tổ chức của nhân ARM là dòng chảy lệnh 3 tác vụ:
    - Fetch (nhận lệnh).
    - Decode (giải mã).
    - Excute (thực thi).

    Arm Intruction.jpg
    Hình 1: Câu lệnh một chu kỳ máy sử dụng dòng chảy lệnh có 3 tác vụ.

    Khi gặp một lệnh nhánh, tầng decode chứa một chỉ thị nạp lệnh suy đoán có thể dẫn đến việc thực thi nhanh hơn. Bộ xử lý nạp lệnh dự định rẽ nhánh trong giai đoạn giải mã. Sau đó, trong giai đoạn thực thi, việc rẽ nhánh được giải quyết và bộ vi xử lý sẽ phân tích xem đâu là lệnh thực thi kế tiếp. Nếu việc rẽ nhánh không được chọn thì lệnh tiếp theo đã sẵn sàng. Còn nếu việc rẽ nhánh được chọn thì lệnh rẽ nhánh đó cũng đã sẵn sàng ngay lập tức, hạn chế thời gian rỗi chỉ còn một chu kỳ.

    2.4 Bộ nhớ:

    Bộ vi xử lý Cortex-M3 quản lí vùng nhớ cố định lên tới 4 gigabyte với các địa chỉ định nghĩa sẵn, dành riêng cho mã lệnh (vùng mã lệnh), SRAM (vùng nhớ), bộ nhớ/thiết bị bên ngoài, thiết bị ngoại vi bên trong và bên ngoài. Ngoài ra còn có một vùng nhớ đặc biệt dành riêng cho nhà cung cấp.Code có thể lưu ở vùng mã lệnh, SRAM hoặc RAM ngoài, tuy nhiên khi lưu ở vùng mã lệnh, việc gọi lệnh và truy cập dữ liệu được xử lý đồng thời trên các bus.
    Arm Memmory.jpg
    Sơ đồ bộ nhớ

    - Truy cập vùng SRAM thực hiện thông qua các bus. Trong vùng này, có hai thành phần: vùng bit-band 1MB và vùng bí danh (Bit-band Alias) 32 MB.
    - Vùng nhớ thiêt bị ngoại vi 0.5GB tương tự như vùng SRAM với hai thành phần cơ bản. Tuy nhiên, các lệnh không được thực thi ở vùng này, kĩ thuật bit-band được sử dụng để thay đổi các trạng thái bit, dễ dàng điều khiển ngoại vi.
    - Vùng bộ nhớ và thiết bị bên ngoài: mỗi vùng 1GB, sự khác biệt hai vùng này là lệnh không được thực hiện ở vùng thiết bị bên ngoài, ngoài ra có một số khác biệt về cách lưu trữ giữa hai vùng.
    Ảnh đính kèm Ảnh đính kèm
    Lần sửa cuối bởi TuanHoang, ngày 03-04-2012 lúc 09:10 AM.

  2. The Following 10 Users Say Thank You to TuanHoang For This Useful Post:

    cuongle.bq (05-04-2012),haily1990 (20-04-2013),hnaoab (13-09-2012),kienet9k53 (13-07-2012),ngdnhanbk (07-05-2012),nhattan.khtn (23-04-2012),quocnguyen (05-04-2012),Trúc Đen (03-04-2012)

  3. #2
    Junior Member
    Ngày tham gia
    Jul 2012
    Giới tính
    Nam
    Bài viết
    3
    Thanks
    4
    Thanked 0 Times in 0 Posts
    Bạn ơi! Ảnh bé quá. Mình ko xem đc!

+ Trả lời Chủ đề

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình