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

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

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

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

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

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

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

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 |
Đị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 |
- Dành cho dòng STM32L5/sê-ri STM32H5/STM32U535/545/575/585
- 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

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

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

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 |
- Đ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.
- 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 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 • 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: |
|
11-2024-XNUMX |
5 |
Đã cập nhật: |
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 |

