Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - tha

#1009
The ART accelerator มีให้ใช้งานเฉพาะสำหรับ flash access on ITCM interface.

เพื่อจำกัด the time lost เนื่องจาก jumps, มันสามารถทำได้ที่จะกักเก็บ 64 lines of 256 bits ใน the ART accelerator. คุณลักษณะนี้สามารถถูกเปิดใช้งานได้โดยการเซ็ต the ARTEN bit of the FLASH_CR register. The ART Accelerator ถูกรวมเป็นหนึ่งเดียว, มันบรรจุ instruction เช่นเดียวกับ data literal pools. ทุกครั้งที่ข้อผิดพลาดเกิดขึ้น (data ที่ร้องขอไม่มีอยู่ใน the current data line used หรือใน the instruction cache memory), the read line ถูกคัดลอกใน the instruction cache memory of ART. ถ้า a data ที่บรรจุใน the instruction cache memory ถูกร้องขอโดย the CPU, the data ถูกจัดให้โดยปราศจากการใส่ delay. เมื่อทุก the cache memory lines ถูกเติม, the LRU (Least Recently Used) policy ถูกใช้เพื่อตัดสิน the line ที่จะแทนที่ใน the memory cache. คุณลักษณะนี้มีประโยชน์อย่างยิ่งในกรณีของ code containing loops.

Note: Data in user configuration sector ไม่สามารถแคชได้.
#1010
Adaptive real-time memory accelerator (ART Accelerator™)

The proprietary Adaptive real-time (ART) memory accelerator ได้รับการปรับให้เหมาะสมสำหรับ STM32 industry-standard Arm® Cortex®-M7 ที่มี FPU processors. มันสร้างสมดุลย์ the inherent performance advantage of the Arm® Cortex®-M7 ด้วย FPU ครอบคลุม Flash memory technologies, ซึ่งปกติต้องการให้ the processor รอสำหรับ the Flash memory ที่ higher operating frequencies.

เพื่อปลดปล่อย the processor อย่างเต็มประสิทธิภาพ, the accelerator จัดให้มีใช้ a unified cache of an instruction และ branch cache ซึ่งจะเพิ่ม program execution speed จาก the 256-bit Flash memory. ตามเกณฑ์มาตรฐาน CoreMark, the performance สำเร็จลงต้องขอบคุณ the ART accelerator ที่เทียบเท่ากับ 0 wait state program execution จาก Flash memory ที่ a CPU frequency สูงถึง 216 MHz.
#1011
Instruction prefetch

แต่ละ flash read operation จัดให้มี 256 bits เป็นตัวแทน 8 คำสั่งของ 32 bits ถึง 16 คำสั่งของ 16 bits สอดคล้องกับ the program ที่เปิดตัว. ดังนั้น, ในกรณีของ sequential code, อย่างน้อย 8 CPU cycles ถูกต้องการในการปฏิบัติ the previous instruction line read. The prefetch บน ITCM bus จะช่วยในการอ่าน the sequential next line of instructions ใน the flash ในขณะที่ the current instruction line ถูกร้องขอโดย the CPU. The prefetch สามารถถูกเปิดใช้งานโดยการเซ็ต the PRFTEN bit ของ the FLASH_ACR register. คุณลักษณะนี้มีประโยชน์หากอย่างน้อย one Wait State ถูกต้องการในการเข้าถึง the flash. เมื่อ the code ไม่เป็นลำดับ (branch), คำสั่งอาจไม่ปรากฏทั้งใน the current instruction line ที่ใช้หรือใน the prefetched instruction line. ในกรณีนี้ (miss), the penalty ในแง่ของ number of cycles คืออย่างน้อยเท่ากับ the number of Wait States.
#1012
Note:   การเปลี่ยน CPU clock configuration หรือ wait state (WS) configuration อาจไม่ได้ผลทันที. เพื่อให้แน่ใจว่า the current
            CPU clock frequency เป็นความถี่ที่ผู้ใช้กำหนดค่าแล้ว, ผู้ใช้สามารถตรวจสอบ the AHB prescaler factor และ clock source
            status values. เพื่อให้แน่ใจว่า the number of WS ที่โปรแกรมเป็นผล, ผู้ใช้สามารถอ่าน the FLASH_ACR register.
#1013
Decreasing the CPU frequency

1.   แก้ไข the CPU clock source โดยการเขียน the SW bits ใน the RCC_CFGR register
2.   ถ้าจำเป็น, แก้ไข the CPU clock prescaler โดยการเขียน the HPRE bits ใน RCC_CFGR
3.   ตรวจสอบว่า the new CPU clock source or/and the new CPU clock prescaler value ได้รับการพิจารณาโดยการอ่าน the clock
      source status (SWS bits) or/and the AHB prescaler value (HPRE bits), ตามลำดับ, ใน the RCC_CFGR register
4.   โปรแกรม the new number of wait states ไปยัง the LATENCY bits ใน FLASH_ACR
5.   ตรวจสอบว่า the new number of wait states ถูกใช้ในการเข้าถึง the Flash memory โดยการอ่าน the FLASH_ACR register
#1014
หลังจากรีเซ็ต, the CPU clock frequency คือ 16 MHz และ 0 wait state (WS) ถูกกำหนดค่าใน the FLASH_ACR register.

ขอแนะนำอย่างยิ่งให้ใช้ the following software sequences เพื่อปรับจำนวนของ wait states เพื่อเข้าถึง the Flash memory ด้วย the CPU frequency นั้น.

Increasing the CPU frequency

1.   โปรแกรม the new number of wait states ไปยัง the LATENCY bits ใน the FLASH_ACR register
2.   ตรวจสอบว่า the new number of wait states ได้รับการพิจารณาในการเข้าถึง the Flash memory โดยการอ่าน the FLASH_ACR
      register
3.   แก้ไข the CPU clock source โดยการเขียน the SW bits ใน the RCC_CFGR register
4.   ถ้าจำเป็น, แก้ไข the CPU clock prescaler โดยการเขียน the HPRE bits ใน RCC_CFGR
5.   ตรวจสอบว่า the new CPU clock source or/and the new CPU clock prescaler value ได้รับการพิจารณาโดยการอ่าน the clock
      source status (SWS bits) or/and the AHB prescaler value (HPRE bits), ตามลำดับ, ใน the RCC_CFGR register.
#1015
3.3.2 Read access latency

เพื่ออ่าน data จาก Flash memory อย่างถูกต้อง, จำนวนของ wait states (LATENCY) ต้องถูกโปรแกรมอย่างถูกต้องใน the Flash access control register (FLASH_ACR) ให้สอดคล้องกับ the frequency of the CPU clock (HCLK) และ the supply voltage of the device.

ความตรงกันระหว่าง wait states และ CPU clock frequency ถูกให้ใน Table 14 และ Table 5.

Note:   -   เมื่อ VOS[1:0] = '0x01', the maximum value of fHCLK คือ 144 MHz.
            -   เมื่อ VOS[1:0] = '0x10', the maximum value of fHCLK คือ 168 MHz. มันสามารถถูกยืดถึง 180 MHz โดยการเปิด
                ใช้งาน the over-drive mode.
            -   เมื่อ VOS[1:0] = '0x11, the maximum value of fHCLK คือ 180 MHz. มันสามารถถูกยืดถึง 216 MHz โดยการเปิด
                ใช้งาน the over-drive mode.
            -   The over-drive mode ไม่มีให้ใช้งานเมื่อ VDD ช่วงจาก 1.8 ถึง 2.1 V.
            ดูที่ Section 4.1.4: Voltage regulator สำหรับรายละเอียดเกี่ยวกับวิธีเปิดใช้งาน the over-drive mode.


#1016
The embedded flash มี three main interfaces:
•   64-bits ITCM interface:
     –   มันถูกเชื่อมต่อถึง the ITCM bus of Cortex-M7 และถูกใช้สำหรับ instruction execution และ data read access.
     –   Write accesses ไม่ถูกรองรับบน ITCM interface
     –   รองรับ a unified 64 cache lines of 256 bits (ART accelerator)
•   64-bits AHB interface:
     –   มันถูกเชื่อมต่อถึง the AXI bus of Cortex-M7 ผ่านทาง the AHB bus matrix และถูกใช้สำหรับ code execution, read and
          write accesses.
     –   DMAs and peripherals DMAs data transfer on Flash ถูกกระทำผ่านทาง the AHB interface ไม่ว่า the addressed
          flash อินเตอร์เฟส TCM หรือ AHB.
•   32-bits AHB register interface:
     –   มันถูกใชสำหรับ control and status register accesses.

The main memory and information block organization ถูกแสดงใน Table 3.