STMicroelectronics-logo

STMicroelectronics Bộ vi điều khiển dòng STM32H5

STMicroelectronics-STM32H5-Series-Vi điều khiển-sản phẩm

Giới thiệu

Ghi chú ứng dụng này mô tả bộ đệm lệnh (ICACHE) và bộ đệm dữ liệu (DCACHE), bộ đệm đầu tiên được STMicroelectronics phát triển. ICACHE và DCACHE được giới thiệu trên bus AHB của bộ xử lý Arm® Cortex®-M33 được nhúng trong bộ vi điều khiển (MCU) STM32 được liệt kê trong bảng bên dưới. Các bộ đệm này cho phép người dùng cải thiện hiệu suất ứng dụng của họ và giảm mức tiêu thụ khi tìm nạp hướng dẫn và dữ liệu từ cả bộ nhớ trong và bộ nhớ ngoài hoặc cho lưu lượng dữ liệu từ bộ nhớ ngoài. Tài liệu này đưa ra ví dụ điển hìnhamptập tin để làm nổi bật các tính năng của ICACHE và DCACHE cũng như hỗ trợ việc cấu hình chúng.

Bảng 1. Sản phẩm áp dụng

Kiểu Dòng sản phẩm
Vi điều khiển Dòng STM32H5, dòng STM32L5, dòng STM32U5

Thông tin chung

Ghi chú:

Ghi chú ứng dụng này áp dụng cho bộ vi điều khiển dòng STM32 là thiết bị dựa trên lõi Arm® Cortex®. Arm là nhãn hiệu đã đăng ký của Arm Limited (hoặc các công ty con) tại Hoa Kỳ và/hoặc nơi khác.

ICACHE và DCACHE kết thúcview

Phần này cung cấp một hơnview của giao diện ICACHE và DCACHE được nhúng trong bộ vi điều khiển dựa trên lõi STM32 Arm® Cortex®. Phần này mô tả chi tiết sơ đồ ICACHE và DCACHE cũng như sự tích hợp trong kiến ​​trúc hệ thống.
Kiến trúc thông minh dòng STM32L5
Kiến trúc này dựa trên ma trận bus cho phép nhiều chủ (Cortex-M33, ICACHE, DMA1/2 và SDMMC1) truy cập vào nhiều nô lệ (như bộ nhớ flash, SRAM1/2, OCTOSPI1 hoặc FSMC). Hình dưới đây mô tả kiến ​​trúc thông minh dòng STM32L5.

Hình 1. Kiến trúc thông minh dòng STM32L5

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-1

Hiệu suất Cortex-M33 được cải thiện bằng cách sử dụng giao diện ICACHE 8-Kbyte được giới thiệu cho bus C-AHB của nó, khi tìm nạp mã hoặc dữ liệu từ bộ nhớ trong (bộ nhớ flash, SRAM1 hoặc SRAM2) thông qua bus nhanh và cả từ bộ nhớ ngoài (OCTOSPI1 hoặc FSMC) thông qua bus chậm.
Kiến trúc thông minh dòng STM32U5
Kiến trúc này dựa trên ma trận bus cho phép nhiều master (Cortex-M33, ICACHE, DCACHE, GPDMA, DMA2D và SDMMC,OTG_HS, LTDC, GPU2D, GFXMMU) truy cập vào nhiều Slave (chẳng hạn như bộ nhớ flash, SRAM, BKPSRAM, HSPI/ OCTOSPI hoặc FSMC). Hình bên dưới mô tả kiến ​​trúc thông minh dòng STM32U5.

Hình 2. Kiến trúc thông minh dòng STM32U5

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-2

Cả giao diện Cortex-M33 và GPU2D đều được hưởng lợi từ việc sử dụng CACHE.

  • ICACHE cải thiện hiệu suất của Cortex-M33 khi tìm nạp mã hoặc dữ liệu từ bộ nhớ trong qua bus nhanh (bộ nhớ flash, SRAM) và từ bộ nhớ ngoài qua bus chậm (OCTOSPI1/2 và HSPI1 hoặc FSMC). DCACHE1 cải thiện hiệu suất khi tìm nạp dữ liệu từ bộ nhớ trong hoặc bộ nhớ ngoài thông qua s‑bus (GFXMMU, OCTOSPI1/2 và HSPI1 hoặc FSMC).
  •  DCACHE2 cải thiện hiệu suất của GPU2D khi tìm nạp dữ liệu từ bộ nhớ trong và ngoài (GFXMMU, bộ nhớ flash, SRAM, OCTOSPI1/2 và HSPI1 hoặc FSMC) thông qua bus cổng M0.

Kiến trúc thông minh dòng STM32H5
Kiến trúc thông minh STM32H523/H533, STM32H563/H573 và STM32H562 Kiến trúc này dựa trên ma trận bus cho phép nhiều chủ (Cortex-M33, ICACHE, DCACHE, GPDMAs, Ethernet và SDMMC) truy cập vào nhiều nô lệ (chẳng hạn như bộ nhớ flash, SRAM, BKPSRAM , OCTOSPI và FMC). Hình dưới đây mô tả kiến ​​trúc thông minh dòng STM32H5.

Hình 3. Kiến trúc thông minh dòng STM32H563/H573 và STM32H562

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-3

Cortex-M33 được hưởng lợi từ việc sử dụng CACHE.

  • ICACHE cải thiện hiệu suất của Cortex-M33 khi tìm nạp mã hoặc dữ liệu từ bộ nhớ trong thông qua bus nhanh (bộ nhớ flash, SRAM) và từ bộ nhớ ngoài thông qua bus chậm (OCTOSPI và FMC).
  • DCACHE cải thiện hiệu suất khi tìm nạp dữ liệu từ bộ nhớ ngoài thông qua bus chậm (OCTOSPI và FMC).

Kiến trúc thông minh STM32H503
Kiến trúc này dựa trên ma trận bus cho phép nhiều chủ (Cortex-M33, ICACHE và GPDMA) truy cập vào nhiều nô lệ (chẳng hạn như bộ nhớ flash, SRAM và BKPSRAM). Hình dưới đây mô tả kiến ​​trúc thông minh dòng STM32H5.

Hình 4. Kiến trúc thông minh dòng STM32H503

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-4

Cortex-M33 được hưởng lợi từ việc sử dụng CACHE.

  • ICACHE cải thiện hiệu suất của Cortex-M33 khi tìm nạp mã hoặc dữ liệu từ bộ nhớ trong thông qua bus nhanh (bộ nhớ flash, SRAM).

Sơ đồ khối ICACHE
Sơ đồ khối ICACHE được cho trong hình dưới đây.

Hình 5. Sơ đồ khối ICACHE

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-5

Bộ nhớ ICACHE bao gồm:

  • cái TAG bộ nhớ với:
    • địa chỉ tags cho biết dữ liệu nào được chứa trong bộ nhớ đệm dữ liệu
    • các bit hợp lệ
  •  bộ nhớ dữ liệu, chứa dữ liệu được lưu trong bộ nhớ cache

Sơ đồ khối DCACHE
Sơ đồ khối DCACHE được cho trong hình bên dưới.

Hình 6. Sơ đồ khối DCACHE

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-6

Bộ nhớ DCACHE bao gồm:

  • cái TAG bộ nhớ với:
    • địa chỉ tags cho biết dữ liệu nào được chứa trong bộ nhớ đệm dữ liệu
    • các bit hợp lệ
    • các bit đặc quyền
    • những điều bẩn thỉu
  • bộ nhớ dữ liệu, chứa dữ liệu được lưu trong bộ nhớ cache

Tính năng ICACHE và DCACHE

Thạc sĩ kép
ICACHE truy cập ma trận bus AHB qua:

  • Một cổng chính AHB: master1 (bus nhanh)
  • Hai cổng chính AHB: master1 (bus nhanh) và master2 (bus chậm)

Tính năng này cho phép tách lưu lượng truy cập khi truy cập vào các vùng bộ nhớ khác nhau (chẳng hạn như bộ nhớ flash bên trong, SRAM bên trong và bộ nhớ ngoài), nhằm giảm tình trạng dừng CPU khi thiếu bộ nhớ đệm. Bảng sau đây tóm tắt các vùng bộ nhớ và địa chỉ của chúng.

Bảng 2. Vùng bộ nhớ và địa chỉ của chúng

Ngoại vi Truy cập bộ nhớ đệm Truy cập bộ nhớ không thể lưu vào bộ nhớ cache
 

 

Kiểu

 

 

Tên

 

 

Tên sản phẩm và quy mô khu vực

 

 

Tên xe buýt

 

Địa chỉ bắt đầu của khu vực không an toàn

Địa chỉ bắt đầu vùng có thể gọi an toàn, không an toàn  

 

Tên xe buýt

 

Địa chỉ bắt đầu của khu vực không an toàn

Địa chỉ bắt đầu vùng có thể gọi an toàn, không an toàn
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nội bộ

 

 

 

 

 

 

 

ĐÈN FLASH

STM32H503 128KB  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ICACHE

xe buýt nhanh

 

 

 

 

 

 

 

0x0800 0000

Không có  

 

 

 

 

 

 

Không có

 

 

 

 

 

 

 

Không có

 

 

 

 

 

 

 

Không có

STM32L5

loạt/ STM32U535/ 545/ STM32H523/ 533

 

 

512KB

 

 

 

 

 

 

0x0C00 0000

STM32U575/ 585

STM32H563/ 573/562

 

 

2MB

STM32U59x/

5Ax/5Fx/5Gx

4MB
 

 

 

 

 

 

SRAM1

STM32H503 16KB  

 

 

 

 

 

0x0A00 0000

Không có  

 

 

 

 

 

 

 

S-bus

 

 

 

 

 

 

0x2000 0000

 

 

 

 

 

 

0x3000 0000

STM32L5

series/ STM32U535/ 545/575/585

 

192KB

 

 

 

 

 

0x0E00 0000

STM32H523/ 533 128KB
STM32H563/ 573/562 256KB
STM32U59x/

5Ax/5Fx/5Gx

768KB
 

 

 

 

SRAM2

STM32H503

loạt

16KB 0x0A00 4000 Không có 0x2000 4000 Không có
STM32L5

series/ STM32U535/ 545/575/585

 

64KB

 

0x0A03 0000

 

0x0E03 0000

 

0x2003 0000

 

0x3003 0000

STM32H523/ 533 64KB  

0x0A04 0000

 

0x0E04 0000

 

0x2004 0000

 

0x3004 0000

Ngoại vi Truy cập bộ nhớ đệm Truy cập bộ nhớ không thể lưu vào bộ nhớ cache
 

 

 

 

 

 

 

 

 

Nội bộ

 

 

SRAM2

STM32H563/ 573/562 80KB  

 

 

 

 

 

 

 

ICACHE

xe buýt nhanh

0x0A04 0000 0x0E04 0000  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S-bus

0x2004 0000 0x3004 0000
STM32U59x/

5Ax/5Fx/5Gx

64KB 0x0A0C 0000 0x0E0C 0000 0x200C 0000 0x300C 0000
 

 

 

 

SRAM3

STM32U575/ 585 512KB 0x0A04 0000 0x0E04 0000 0x2004 0000 0x3004 0000
STM32H523/ 533 64KB  

 

0x0A05 0000

 

 

0x0E05 0000

 

 

0x2005 0000

 

 

0x3005 0000

STM32H563/ 573/562 320KB
STM32U59x/

5Ax/5Fx/5Gx

832KB 0x0A0D 0000 0x0E0D 0000 0x200D 0000 0x300D 0000
SRAM5 STM32U59x/

5Ax/5Fx/5Gx

832KB 0x0A1A 0000 0x0E1A 0000 0x201A 0000 0x301A 0000
SRAM6 STM32U5Fx/

5Gx

512KB 0x0A27 0000 0x0E27 0000 0x2027 0000  

 

 

 

 

 

 

 

 

 

 

 

Không có

 

 

 

 

 

 

 

 

 

 

 

Bên ngoài

HSPI1 STM32U59x/

5Ax/5Fx/5Gx

 

 

 

 

 

 

 

 

 

 

 

256MB

 

 

 

 

 

 

 

 

 

 

ICACHE

xe buýt chậm

(1)

 

 

 

 

 

 

Địa chỉ bí danh trong phạm vi [0x0000 0000

đến 0x07FF FFFF] hoặc [0x1000 0000:0x1FFF

FFFF] được xác định bằng tính năng ánh xạ lại

 

 

 

 

 

 

 

 

 

 

 

Không có

0xA000 0000
FMC SDRAM STM32H563/ 573/562 0xC000 0000
 

OCTOSPI1

ngân hàng không an toàn

STM32L5/U5

loạt

STM32H563/ 573/562

 

 

0x9000 0000

 

Ngân hàng FMC 3

Không an toàn

STM32L5/U5

loạt

STM32H563/ 573/562

 

 

0x8000 0000

OCTOSPI2

ngân hàng không an toàn

STM32U575/

585/59x/5Ax/

5Fx/5Gx

 

0x7000 0000

 

Ngân hàng FMC 1

Không an toàn

STM32L5/U5

loạt

STM32H563/ 573/562

 

 

0x6000 0000

1. Được chọn khi ánh xạ lại các vùng đó.

ICACHE 1 chiều và 2 chiều
Theo mặc định, ICACHE được cấu hình ở chế độ vận hành kết hợp (bật hai cách), nhưng có thể định cấu hình ICACHE ở chế độ ánh xạ trực tiếp (bật một chiều), cho các ứng dụng yêu cầu mức tiêu thụ điện năng rất thấp. Cấu hình ICACHE được thực hiện với bit WAYSEL trong ICACHE_CR như sau:

  • WAYSEL = 0: chế độ vận hành được ánh xạ trực tiếp (1 chiều)
  • WAYSEL = 1 (mặc định): chế độ vận hành kết hợp (2 chiều)

Bảng 3. ICACHE 1 chiều và 2 chiều

Tham số ICACHE 1 chiều ICACHE 2 chiều
Kích thước bộ đệm (Kbyte) 8(1)/32(2)
Lưu trữ một số cách 1 2
Kích thước dòng bộ đệm 128 bit (16 byte)
Số dòng bộ đệm 512(1)/2048(2) 256(1)/1024(2) mỗi chiều
  1. Dành cho dòng STM32L5/sê-ri STM32H5/STM32U535/545/575/585
  2. For STM32U59x/5Ax/5Fx/5Gx

loại nổ
Một số bộ nhớ Octo-SPI hỗ trợ cụm WRAP, mang lại lợi ích về hiệu suất tính năng quan trọng đầu tiên. Có thể định cấu hình loại cụm ICACHE của giao dịch bộ nhớ AHB cho các vùng được ánh xạ lại. Nó thực hiện cụm tăng dần hoặc cụm WRAP, được chọn bằng bit HBURST trong thanh ghi ICACHE_CRRx. Sự khác biệt giữa WRAP và các đợt tăng dần được đưa ra dưới đây (xem thêm hình):

  • Bùng nổ WRAP:
    • kích thước dòng bộ đệm = 128 bit
    • địa chỉ bắt đầu bùng nổ = địa chỉ từ của dữ liệu đầu tiên được CPU yêu cầu
  •  Sự bùng nổ gia tăng:
    • kích thước dòng bộ đệm = 128 bit
    • địa chỉ bắt đầu cụm = địa chỉ được căn chỉnh trên ranh giới của dòng bộ đệm chứa từ được yêu cầu

Hình 7. Tăng dần so với cụm WRAP

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-9

Các vùng có thể lưu trong bộ nhớ đệm và tính năng ánh xạ lại
ICACHE được kết nối với Cortex-M33 thông qua bus C-AHB và lưu trữ vùng mã từ các địa chỉ [0x0000 0000 đến 0x1FFF FFFF]. Vì bộ nhớ ngoài được ánh xạ tại một địa chỉ trong phạm vi [0x6000 0000 đến 0xAFFF FFFF] nên ICACHE hỗ trợ tính năng ánh xạ lại cho phép mọi vùng bộ nhớ ngoài được ánh xạ lại tại một địa chỉ trong phạm vi [0x0000 0000 đến 0x07FF FFFF] hoặc [0x1000 0000 đến 0x1FFF FFFF] và có thể truy cập được thông qua bus C-AHB. Có thể ánh xạ lại tối đa bốn vùng bộ nhớ ngoài với tính năng này. Sau khi một vùng được ánh xạ lại, hoạt động ánh xạ lại sẽ diễn ra ngay cả khi ICACHE bị tắt hoặc nếu giao dịch không được lưu vào bộ nhớ đệm. Người dùng có thể xác định và lập trình các vùng bộ nhớ có thể lưu trong bộ nhớ đệm trong đơn vị bảo vệ bộ nhớ (MPU). Bảng dưới đây tóm tắt cấu hình của bộ nhớ dòng STM32L5 và STM32U5.

Bảng 4. Cấu hình bộ nhớ dòng STM32L5 và STM32U5

 

Bộ nhớ sản phẩm

Có thể lưu vào bộ nhớ đệm

(Lập trình MPU)

Được ánh xạ lại trong ICACHE

(lập trình ICACHE_CRRx)

Bộ nhớ flash Có hoặc Không  

Không bắt buộc

SRAM Không khuyến khích
Bộ nhớ ngoài (HSPI/OCTOSPI hoặc FSMC) Có hoặc Không Bắt buộc nếu người dùng muốn tìm nạp mã bên ngoài trên bus C-AHB (khác trên bus S-AHB)

Lợi ích của việc ánh xạ lại bộ nhớ ngoài ICACHE
Người cũampTập tin trong hình bên dưới cho thấy cách hưởng lợi từ hiệu suất nâng cao của ICACHE trong quá trình thực thi mã hoặc đọc dữ liệu khi truy cập vào bộ nhớ Octo-SPI bên ngoài 8 Mbyte (chẳng hạn như bộ nhớ flash ngoài hoặc RAM).

Hình 8. Bản đồ lại bộ nhớ Octo-SPI cũample

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-7

Cần thực hiện các bước sau để ánh xạ lại bộ nhớ ngoài này:

Cấu hình OCTOSPI cho bộ nhớ ngoài

Định cấu hình giao diện OCTOSPI để truy cập bộ nhớ ngoài ở chế độ Ánh xạ bộ nhớ (bộ nhớ ngoài được xem là bộ nhớ trong được ánh xạ trong vùng [0x9000 0000 đến 0x9FFF FFFF]). Vì kích thước bộ nhớ ngoài là 8 Mbyte nên nó được nhìn thấy ở vùng [0x9000 0000 đến 0x907F FFFF]. Bộ nhớ ngoài ở vùng này được truy cập thông qua S-bus và không thể lưu vào bộ nhớ đệm. Bước tiếp theo hiển thị cấu hình ICACHE để ánh xạ lại vùng này.
Ghi chú: Để biết cấu hình OCTOSPI ở chế độ ánh xạ bộ nhớ, hãy tham khảo ghi chú ứng dụng Giao diện Octo‑ SPI trên bộ vi điều khiển STM32 (AN5050

Cấu hình ICACHE để ánh xạ lại vùng được ánh xạ bộ nhớ ngoài
8 Mbyte được đặt trong vùng [0x9000 0000 đến 0x907F FFFF] được ánh xạ lại thành vùng [0x1000 0000 đến 0x107F FFFF]. Sau đó, chúng có thể được truy cập thông qua bus chậm (bus ICACHE master2).

  • Cấu hình thanh ghi ICACHE_CR
    • Vô hiệu hóa ICACHE với EN = 0.
    • Chọn 1 chiều hoặc 2 chiều (tùy theo nhu cầu ứng dụng) với WAYSEL = 0 hoặc 1 tương ứng.
  • Cấu hình thanh ghi ICACHE_CRRx (tối đa bốn vùng, x = 0 đến 3)
    • Chọn địa chỉ cơ sở 0x1000 0000 (địa chỉ ánh xạ lại) với BASEADDR [28:21] = 0x80.
    • Chọn kích thước vùng 8 Mbyte để ánh xạ lại với RSIZE[2:0] = 0x3.
    • Chọn địa chỉ được ánh xạ lại 0x9000 0000 REMAPADDR[31:21] = 0x480.
    • Chọn cổng ICACHE AHB master2 cho bộ nhớ ngoài có MSTSEL = 1.
    • Chọn loại cụm WRAP với HBURST = 0.
    • Kích hoạt ánh xạ lại cho vùng x với REN = 1.

Hình dưới đây cho thấy cách nhìn thấy các vùng bộ nhớ bằng IAR sau khi bật ánh xạ lại.

Hình 9. Ánh xạ lại các vùng bộ nhớ cũample

STMicroelectronics-STM32H5-Series-Vi điều khiển-fig-8

Bộ nhớ ngoài 8 Mbyte hiện được ánh xạ lại và có thể được truy cập qua vùng [0x1000 0000 đến 0x107F FFFF].

kích hoạt ICACHE

  • Cấu hình thanh ghi ICACHE_CR Kích hoạt ICACHE với EN = 1.

Màn hình trúng và bỏ lỡ
ICACHE cung cấp hai màn hình để phân tích hiệu suất: màn hình đánh 32 bit và màn hình bỏ sót 16 bit.

  • Trình giám sát lần truy cập đếm các giao dịch AHB có thể lưu trong bộ nhớ đệm trên cổng bộ nhớ đệm phụ truy cập vào nội dung ICACHE (dữ liệu được tìm nạp đã có sẵn trong bộ nhớ đệm). Bộ đếm màn hình lần truy cập có sẵn trong thanh ghi ICACHE_HMONR.
  • Trình giám sát bỏ lỡ đếm các giao dịch AHB có thể lưu trong bộ nhớ đệm trên cổng bộ nhớ đệm phụ thiếu nội dung ICACHE (dữ liệu đã tìm nạp chưa có sẵn trong bộ nhớ đệm). Bộ đếm màn hình bị thiếu có sẵn trong thanh ghi ICACHE_MMONR.

Ghi chú:

Hai màn hình này không bao bọc khi đạt giá trị tối đa. Các màn hình này được quản lý từ các bit sau trong thanh ghi ICACHE_CR:

  • Bit HITMEN (bit MISSMEN tương ứng) để bật/dừng giám sát lần truy cập (tương ứng trượt)
  • Bit HITMRST (tương ứng là bit MISSMRST) để đặt lại màn hình lần truy cập (tương ứng là trượt). Theo mặc định, các màn hình này bị tắt để giảm mức tiêu thụ điện năng.

bảo trì ICACHE
Phần mềm có thể vô hiệu hóa ICACHE bằng cách đặt bit CACHEINV trong thanh ghi ICACHE_CR. Hành động này làm mất hiệu lực toàn bộ bộ nhớ đệm, khiến nó trống rỗng. Trong khi đó, nếu bật một số vùng được ánh xạ lại, tính năng ánh xạ lại vẫn hoạt động, ngay cả khi ICACHE bị tắt. Vì ICACHE chỉ quản lý các giao dịch đọc và không quản lý các giao dịch ghi nên nó không đảm bảo tính mạch lạc trong trường hợp ghi. Do đó, phần mềm phải vô hiệu hóa ICACHE sau khi lập trình một vùng.

Bảo mật ICACHE
ICACHE là thiết bị ngoại vi có thể bảo mật, có thể được cấu hình an toàn thông qua thanh ghi cấu hình bảo mật GTZC TZSC. Khi nó được cấu hình là an toàn, chỉ những quyền truy cập an toàn mới được phép vào các thanh ghi ICACHE. ICACHE cũng có thể được cấu hình ở dạng đặc quyền thông qua thanh ghi cấu hình đặc quyền GTZC TZSC. Khi ICACHE được cấu hình ở chế độ đặc quyền, chỉ những quyền truy cập đặc quyền mới được phép vào các thanh ghi ICACHE. Theo mặc định, ICACHE không an toàn và không có đặc quyền thông qua GTZC TZSC.

Quản lý sự kiện và gián đoạn

ICACHE quản lý các lỗi chức năng khi được phát hiện bằng cách đặt cờ ERRF trong ICACHE_SR. Một ngắt cũng có thể được tạo ra nếu bit ERRIE được đặt trong ICACHE_IER. Trong trường hợp ICACHE vô hiệu, khi trạng thái bận của bộ đệm kết thúc, cờ BSYENDF được đặt trong ICACHE_SR. Một ngắt cũng có thể được tạo ra nếu bit BSYENDIE được đặt trong ICACHE_IER. Bảng dưới đây liệt kê các cờ sự kiện và ngắt ICACHE.

Bảng 5. Các bit quản lý sự kiện và ngắt ICACHE

Đăng ký Tên bit Mô tả bit Loại truy cập bit
 

ICACHE_SR

BẬN Bộ nhớ đệm thực hiện thao tác vô hiệu hóa hoàn toàn  

Chỉ đọc

BSYENDF Thao tác vô hiệu hóa bộ đệm đã hoàn tất
LỖI Đã xảy ra lỗi trong quá trình thao tác bộ nhớ đệm
 

ICACHE_IER

errie Cho phép ngắt khi có lỗi bộ đệm  

Đọc/viết

BSYENDIE Cho phép ngắt trong trường hợp thao tác vô hiệu hóa kết thúc
 

ICACHE_FCR

CERF Xóa ERRF trong ICACHE_SR  

Chỉ viết

CBSYENDF Xóa BSYENDF trong ICACHE_SR

Tính năng DCACHE
Mục đích của bộ đệm dữ liệu là để lưu vào bộ đệm tải dữ liệu bộ nhớ ngoài và lưu trữ dữ liệu đến từ bộ xử lý hoặc từ thiết bị ngoại vi chính bus khác. DCACHE quản lý cả giao dịch đọc và ghi.
Lưu lượng truy cập bộ nhớ đệm DCACHE

DCACHE lưu trữ các bộ nhớ ngoài từ giao diện cổng chính thông qua bus AHB. Các yêu cầu bộ nhớ đến được xác định là có thể lưu vào bộ nhớ đệm theo thuộc tính khóa bộ nhớ giao dịch AHB của nó. Chính sách ghi DCACHE được định nghĩa là ghi qua hoặc ghi lại tùy thuộc vào thuộc tính bộ nhớ được cấu hình bởi MPU. Khi một vùng được định cấu hình là không thể lưu vào bộ nhớ đệm, DCACHE sẽ bị bỏ qua.

 Bảng 6. Khả năng lưu vào bộ nhớ đệm DCACHE cho giao dịch AHB

Thuộc tính tra cứu AHB Thuộc tính có thể đệm AHB Khả năng lưu trữ đệm
0 X Đọc và viết: không thể lưu vào bộ nhớ đệm
 

1

 

0

Đọc: có thể lưu vào bộ nhớ đệm

Viết: (có thể lưu vào bộ nhớ cache) ghi qua

 

1

 

1

Đọc: có thể lưu vào bộ nhớ đệm

Viết: (có thể lưu vào bộ nhớ đệm) ghi lại

Các vùng có thể lưu trong bộ nhớ đệm DCACHE
Đối với dòng STM32U5, giao diện phụ DCACHE1 được kết nối với Cortex-M33 thông qua bus S-AHB và lưu vào bộ nhớ đệm GFXMMU, FMC và HSPI/OCTOSPIs. Giao diện phụ DCACHE2 được kết nối với DMA2D thông qua bus cổng M0 và lưu vào bộ nhớ đệm tất cả bộ nhớ trong và bộ nhớ ngoài (ngoại trừ SRAM4 và BRKPSRAM). Đối với dòng STM32H5, giao diện phụ DCACHE được kết nối với Cortex-M33 thông qua bộ nhớ ngoài S-AHB thông qua FMC và OCTOSPI.

Bảng 7. Các vùng và giao diện có thể lưu trong bộ nhớ đệm của DCACHE

Vùng địa chỉ bộ nhớ đệm Giao diện có thể lưu vào bộ nhớ đệm DCACHE1 Giao diện có thể lưu vào bộ nhớ đệm DCACHE2
GFXMMU X X
SRAM1  

 

 

Không có

X
SRAM2 X
SRAM3 X
SRAM5 X
SRAM6 X
HSPI1 X X
OCTOSPI1 X X
NGÂN HÀNG FMC X X
OCTOSPI2 X X

Ghi chú

Một số giao diện không được hỗ trợ trong một số sản phẩm. Tham khảo Hình 1 hoặc tài liệu tham khảo sản phẩm cụ thể.
loại nổ
Giống như ICACHE, DCACHE hỗ trợ các cụm tăng dần và gói gọn (xem Phần 3.1.3). Đối với DCACHE, loại cụm được cấu hình thông qua bit HBURST trong DCACHE_CR.
Cấu hình DCACHE
Trong khi khởi động, DCACHE bị tắt theo mặc định khiến các yêu cầu bộ nhớ phụ được chuyển tiếp trực tiếp đến cổng chính. Để kích hoạt DCACHE, bit EN phải được đặt trong thanh ghi DCACHE_CR. Màn hình trúng và trượt DCACHE triển khai bốn màn hình để phân tích hiệu suất bộ nhớ đệm:

  • Hai màn hình truy cập 32 bit (R/W): đếm số lần CPU đọc hoặc ghi dữ liệu trong bộ nhớ đệm mà không tạo giao dịch trên các cổng chính DCACHE (dữ liệu đã có sẵn trong bộ đệm). Bộ đếm màn hình lần truy cập (R/W) có sẵn tương ứng trong các thanh ghi DCACHE_RHMONR và DCACHE_WHMONR.
  • Hai màn hình bỏ lỡ 16 bit (R/W): đếm số lần CPU đọc hoặc ghi dữ liệu trong bộ nhớ đệm và tạo giao dịch trên các cổng chính DCACHE, để tải dữ liệu từ vùng bộ nhớ (dữ liệu được tìm nạp không đã có sẵn trong bộ đệm). Bộ đếm theo dõi lỗi (R/W) có sẵn tương ứng trong các thanh ghi DCACHE_RMMONR và DCACHE_WMMONR.

Ghi chú:

Bốn màn hình này không bao bọc khi đạt giá trị tối đa. Các màn hình này được quản lý từ các bit sau trong thanh ghi DCACHE_CR:

  • Bit WHITMAN (tương ứng là bit WMISSMEN) để bật/dừng giám sát lần ghi (tương ứng là bỏ lỡ)
  • Bit RHITMEN (tương ứng là bit RMISSMEN) để bật/dừng giám sát lượt đọc (tương ứng bị bỏ lỡ)
  • Bit WHITMRST (tương ứng là bit WMISSMRST) để thiết lập lại màn hình lần ghi (tương ứng bị trượt)
  • Bit RHITMRST (bit RMISSMRST tương ứng) để thiết lập lại màn hình lần đọc (tương ứng bỏ lỡ)

Theo mặc định, những màn hình này bị tắt để giảm mức tiêu thụ điện năng.

Bảo trì DCACHE
DCACHE cung cấp nhiều hoạt động bảo trì có thể được cấu hình thông qua CACHECMD[2:0] trong DCACHE_CR.

  • 000: không hoạt động (mặc định)
  • 001: phạm vi sạch. Làm sạch một phạm vi nhất định trong bộ đệm
  • 010: phạm vi vô hiệu. Vô hiệu hóa một phạm vi nhất định trong bộ đệm
  • 010: phạm vi sạch và vô hiệu. Làm sạch và vô hiệu hóa một phạm vi nhất định trong bộ đệm

Phạm vi đã chọn được cấu hình thông qua:

  • Thanh ghi CMDSTARTADDR: địa chỉ bắt đầu lệnh
  • Thanh ghi CMDENDADDR: địa chỉ kết thúc lệnh

Ghi chú:

Thanh ghi này phải được thiết lập trước khi CACHECMD được ghi. Việc bảo trì lệnh bộ đệm bắt đầu khi bit STARTCMD được đặt trong thanh ghi DCACHE_CR. DCACHE cũng hỗ trợ vô hiệu hóa CACHE hoàn toàn bằng cách đặt bit CACHEINV trong thanh ghi DCACHE_CR.

Bảo mật DCACHE
DCACHE là thiết bị ngoại vi bảo mật có thể được cấu hình bảo mật thông qua thanh ghi cấu hình bảo mật GTZC TZSC. Khi nó được cấu hình là an toàn, chỉ những quyền truy cập an toàn mới được phép vào các thanh ghi DCACHE. DCACHE cũng có thể được cấu hình ở dạng đặc quyền thông qua thanh ghi cấu hình đặc quyền GTZC TZSC. Khi DCACHE được cấu hình là đặc quyền, chỉ những quyền truy cập đặc quyền mới được phép vào các thanh ghi DCACHE. Theo mặc định, DCACHE không an toàn và không có đặc quyền thông qua GTZC TZSC.

Quản lý sự kiện và gián đoạn
DCACHE quản lý các lỗi chức năng khi được phát hiện bằng cách đặt cờ ERRF trong DCACHE_SR. Một ngắt cũng có thể được tạo ra nếu bit ERRIE được đặt trong DCACHE_IER. Trong trường hợp DCACHE vô hiệu hóa, khi trạng thái bận của bộ đệm kết thúc, cờ BSYENDF được đặt trong DCACHE_SR. Một ngắt cũng có thể được tạo ra nếu bit BSYENDIE được đặt trong DCACHE_IER. Trạng thái lệnh DCACHE có thể được kiểm tra thông qua CMDENF và BUSYCMDF thông qua DCACHE_SR Một ngắt cũng có thể được tạo ra nếu bit CMDENDIE được đặt trong DCACHE_IER. Bảng bên dưới liệt kê các ngắt DCACHE và cờ sự kiện

Bảng 8. Các bit quản lý sự kiện và ngắt DCACHE

Đăng ký Đăng ký Mô tả bit Loại truy cập bit
 

 

 

DCACHE_SR

BẬN Bộ nhớ đệm thực hiện thao tác vô hiệu hóa hoàn toàn  

 

 

Chỉ đọc

BSYENDF Hoạt động vô hiệu hóa toàn bộ bộ nhớ đệm đã kết thúc
BẬNCMDF Bộ đệm thực thi lệnh phạm vi
CMDENDF Một lệnh kết thúc phạm vi
LỖI Đã xảy ra lỗi trong quá trình thao tác bộ nhớ đệm
 

DCACHE_IER

errie Cho phép ngắt khi có lỗi bộ đệm  

Đọc/viết

CMDENDIE Cho phép ngắt ở cuối lệnh phạm vi
BSYENDIE Cho phép ngắt khi kết thúc hoạt động vô hiệu hóa hoàn toàn
 

DCACHE_FCR

CERF Xóa ERRF trong DCACHE_SR  

Chỉ viết

CCMENDF Xóa CMDENDF trong DCACHE_SR
CBSYENDF Xóa BSYENDF trong DCACHE_SR

Hiệu suất và mức tiêu thụ điện năng của ICACHE và DCACHE

Sử dụng ICACHE và DCACHE cải thiện hiệu suất ứng dụng khi truy cập bộ nhớ ngoài. Bảng sau đây cho thấy tác động của ICACHE và DCACHE đối với việc thực thi CoreMark® khi truy cập bộ nhớ ngoài.

Bảng 9. Hiệu suất ICACHE và DCACHE khi thực thi CoreMark với bộ nhớ ngoài

(1)
Mã CoreMark Dữ liệu CoreMark cấu hình ICACHE Cấu hình DCACHE Điểm CoreMark/Mhz
Bộ nhớ Flash bên trong SRAM nội bộ Đã bật (2 chiều) Tàn tật 3.89
Bộ nhớ Flash bên trong PSRAM Octo-SPI bên ngoài ( S‑bus) Đã bật (2 chiều) Đã bật 3.89
Bộ nhớ Flash bên trong PSRAM Octo-SPI bên ngoài ( S‑bus) Đã bật (2 chiều) Tàn tật 0.48
Flash Octo-SPI bên ngoài (C-bus) SRAM nội bộ Đã bật (2 chiều) Tàn tật 3.86
Flash Octo-SPI bên ngoài (C-bus) SRAM nội bộ Tàn tật Tàn tật 0.24
Bộ nhớ Flash bên trong SRAM nội bộ Tàn tật Tàn tật 2.69

Điều kiện kiểm tra:

  • Sản phẩm áp dụng: STM32U575/585
  • Tần số hệ thống: 160 MHz.
  • Bộ nhớ PSRAM Octo-SPI bên ngoài: 80 MHz (chế độ DTR).
  • Bộ nhớ flash Octo-SPI bên ngoài: 80 MHz (chế độ STR).
  • Trình biên dịch: IAR V8.50.4.
  • TÌM KIẾM TRƯỚC Flash bên trong: BẬT.

Sử dụng ICACHE và DCACHE giúp giảm mức tiêu thụ điện năng khi truy cập bộ nhớ trong và ngoài. Bảng sau đây cho thấy tác động của ICACHE đến mức tiêu thụ điện năng trong quá trình thực thi CoreMark.

Bảng 10. Thực thi CoreMark Tác động của ICACHE đến mức tiêu thụ điện năng

cấu hình ICACHE Tiêu thụ điện năng của MCU (mA)
Đã bật (2 chiều) 7.60
Đã bật (1 chiều) 7.13
Tàn tật 8.89
  1. Điều kiện kiểm tra:
    • Sản phẩm áp dụng: STM32U575/585
    • Mã CoreMark: bộ nhớ Flash bên trong.
    • Dữ liệu CoreMark: SRAM nội bộ.
    • TRƯỚC bộ nhớ Flash bên trong: BẬT.
    • Tần số hệ thống: 160 MHz.
    • Trình biên dịch: IAR V8.32.2.
    • Tậptagphạm vi điện tử: 1.
    • SMPS: BẬT.
  2. Cấu hình liên kết được đặt theo cách hoạt động hiệu quả hơn cấu hình liên kết được đặt theo cách 1 cho mã không thể tải đầy đủ vào bộ nhớ đệm. Trong khi đó, bộ đệm liên kết được thiết lập 1 chiều hầu như luôn tiết kiệm điện hơn so với bộ đệm liên kết được thiết lập 2 chiều. Mỗi mã phải được đánh giá ở cả hai cấu hình kết hợp để chọn ra sự cân bằng tốt nhất giữa hiệu suất và mức tiêu thụ điện năng. Việc lựa chọn phụ thuộc vào mức độ ưu tiên của người dùng.

Phần kết luận

Bộ nhớ đệm đầu tiên được phát triển bởi STMicroelectronics, ICACHE và DCACHE, có thể lưu vào bộ nhớ đệm bên trong và bên ngoài, mang lại khả năng nâng cao hiệu suất cho lưu lượng dữ liệu và tìm nạp lệnh. Tài liệu này trình bày các tính năng khác nhau được ICACHE và DCACHE hỗ trợ, tính đơn giản và linh hoạt trong cấu hình của chúng cho phép giảm chi phí phát triển và rút ngắn thời gian đưa sản phẩm ra thị trường.

Lịch sử sửa đổi

Bảng 11. Lịch sử sửa đổi tài liệu

Ngày Phiên bản Thay đổi
10-2019-XNUMX 1 Phiên bản phát hành đầu tiên.
 

 

27-2020-XNUMX

 

 

2

Đã cập nhật:

• Bảng 2. Vùng bộ nhớ và địa chỉ của chúng

• Mục 2.1.7 bảo trì ICACHE

• Mục 2.1.8 bảo mật ICACHE

 

 

 

 

7-2021-XNUMX

 

 

 

 

3

Đã cập nhật:

• Tiêu đề tài liệu

• Giới thiệu

• Phần 1 ICACHE và DCACHE kết thúcview

• Phần 4 Kết luận bổ sung:

• Phần 2 tính năng ICACHE và DCACHE

• Phần 3 Hiệu suất và mức tiêu thụ điện năng của ICACHE và DCACHE

 

 

 

 

 

 

15-2023-XNUMX

 

 

 

 

 

 

4

Đã cập nhật:

•         Phần 2.2: Kiến trúc thông minh dòng STM32U5

•         Mục 2.5: Sơ đồ khối DCACHE

•         Mục 3.1.1: Thạc sĩ kép

•         Mục 3.1.2: ICACHE 1 chiều và 2 chiều

•         Phần 3.1.4: Các vùng có thể lưu vào bộ nhớ đệm và tính năng ánh xạ lại

•         Phần 3.2: Tính năng DCACHE

•         Mục 3.2.2: Các vùng có thể lưu trong bộ nhớ đệm DCACHE

•         Phần 4: Hiệu suất và mức tiêu thụ điện năng của ICACHE và DCACHE Đã thêm:

•         Phần 1: Thông tin chung

 

11-2024-XNUMX

 

5

Đã cập nhật:

•         Phần 2.3: Kiến trúc thông minh dòng STM32H5

•         Mục 3.1.1: Thạc sĩ kép

THÔNG BÁO QUAN TRỌNG – ĐỌC KỸ
STMicroelectronics NV và các công ty con (“ST”) có quyền thực hiện các thay đổi, chỉnh sửa, cải tiến, sửa đổi và cải tiến đối với các sản phẩm ST và/hoặc tài liệu này bất cứ lúc nào mà không cần thông báo. Người mua nên lấy thông tin liên quan mới nhất về sản phẩm ST trước khi đặt hàng. Sản phẩm ST được bán theo các điều khoản và điều kiện bán hàng của ST tại thời điểm xác nhận đơn hàng. Người mua hoàn toàn chịu trách nhiệm về việc lựa chọn và sử dụng các sản phẩm ST và ST không chịu trách nhiệm pháp lý về hỗ trợ ứng dụng hoặc thiết kế sản phẩm của người mua. Không có giấy phép nào, rõ ràng hay ngụ ý, đối với bất kỳ quyền sở hữu trí tuệ nào được ST cấp ở đây. Việc bán lại các sản phẩm ST có quy định khác với thông tin nêu trong tài liệu này sẽ làm mất hiệu lực mọi bảo hành do ST cấp cho sản phẩm đó. ST và logo ST là thương hiệu của ST. Để biết thêm thông tin về nhãn hiệu ST, hãy tham khảo www.st.com/trademarks. Tất cả tên sản phẩm hoặc dịch vụ khác là tài sản của chủ sở hữu tương ứng. Thông tin trong tài liệu này thay thế thông tin được cung cấp trước đó trong bất kỳ phiên bản trước nào của tài liệu này. © 2024 STMicroelectronics – Bảo lưu mọi quyền

Tài liệu / Tài nguyên

STMicroelectronics Bộ vi điều khiển dòng STM32H5 [tập tin pdf] Hướng dẫn sử dụng
Bộ vi điều khiển dòng STM32H5, STM32H5, Bộ vi điều khiển dòng, Vi điều khiển

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *