使CPU執行的更快 Cache

2021-08-02 22:15:05 字數 2355 閱讀 3166

使cpu執行的更快--cache

高速緩衝儲存器cache是位於cpu與記憶體之間的臨時的儲存器,它的容量比記憶體小但是交換速度快。

在cache中的資料是記憶體中的一小部分,但是這一小部分是cpu可以高速的訪問的。

1、源**

/* 2. 設定時鐘 */

ldr r0, =0x4c000014

// mov r1, #0x03; // fclk:hclk:pclk=1:2:4, hdivn=1,pdivn=1

mov r1, #0x05; // fclk:hclk:pclk=1:4:8

str r1, [r0]

/* 如果hdivn非0,cpu的匯流排模式應該從「fast bus mode」變為「asynchronous bus mode」 */

mrc p15, 0, r1, c1, c0, 0 /* 讀出控制暫存器 */

orr r1, r1, #0xc0000000 /* 設定為「asynchronous bus mode」 */

mcr p15, 0, r1, c1, c0, 0 /* 寫入控制暫存器 */

/* mpllcon = s3c2440_mpll_200mhz */

ldr r0, =0x4c000004

ldr r1, =s3c2440_mpll_400mhz

str r1, [r0]

/* 啟動icache 會將原來的效率從7秒變為2秒 */

mrc p15, 0, r0, c1, c0, 0 @ read control reg

orr r0, r0, #(1<<12)

mcr p15, 0, r0, c1, c0, 0 @ write it back

/* 3. 初始化sdram */

ldr r0, =mem_ctl_base

adr r1, sdram_config /* sdram_config的當前位址 */

add r3, r0, #(13*4)

1: ldr r2, [r1], #4

str r2, [r0], #4

cmp r0, r3

bne 1b

/* 4. 重定位 : 把bootloader本身的**從flash複製到它的鏈結位址去 */

ldr sp, =0x34000000

bl nand_init

mov r0, #0

ldr r1, =_start

ldr r2, =__bss_start

sub r2, r2, r1

bl copy_code_to_sdram

bl clear_bss

/* 5. 執行main */

ldr lr, =halt

ldr pc, =main

halt:

b halt

sdram_config:

.long 0x22011110 //bwscon

.long 0x00000700 //bankcon0

.long 0x00000700 //bankcon1

.long 0x00000700 //bankcon2

.long 0x00000700 //bankcon3

.long 0x00000700 //bankcon4

.long 0x00000700 //bankcon5

.long 0x00018005 //bankcon6

.long 0x00018005 //bankcon7

.long 0x008c04f4 // refresh

.long 0x000000b1 //banksize

.long 0x00000030 //mrsrb6

.long 0x00000030 //mrsrb7

很多時候你不去使用icache的話,那麼cpu就會不斷的從你的外部的sdram裡面種讀取資料

但是外部的sdram的速度明顯要慢很多,所以cpu就老是等待,還不如用一塊小的高速記憶體將外部的sdram的

啟動**放進去,這樣的效率才會更高。

如何使您的Mac執行速度更快

您有任何計算機是什麼,你要跑得快,讓你可以不必等待工作或玩。當你擁有的是mac,這些通常是相當快的機器。有些事情可以做,這將有助於您的mac執行速度更快,使您可以得到更好的表現出它和等待少。請確保您有一些磁碟空間。背景有各種活動,需要的磁碟備份和臨時檔案的空間去。如果你已經快用完磁碟空間,您將您的計...

springboot中Cache快取的使用

org.springframework.boot spring boot starter cache enablecaching public static void main string args cacheable 根據方法請求引數對其結果進行快取 查詢 自定義配置類配置keygenerato...

如何讓你的SQL執行得更快

一 不合理的索引 例 表record有620000行,試看在不同的索引下,下面幾個 sql的運 況 1.在date上建有一非個群集索引 selectcount fromrecordwheredate 19991201 anddate 19991214 andamount 2000 25秒 selec...