❶ 嵌入式系統中的存儲器映射是怎麼回事,為什麼要映射
我是這樣理解的:
存儲器空間是和硬體相關聯的,可以對某些地址上寫數據來控制硬體,為了方便使用(總不可能都用地址來直接控制,那樣就工作量就太大了),將這些地址賦予了一些變數名,通過變數名來控制硬體(也就是寄存器的概念)。
❷ 手機64位ARM處理器有什麼用
全世界都知道蘋果發布了64位處理器的手機,有人說它只是一個營銷噱頭,有人說它這是在長線布局,其實不然,下面我就為大家介紹一下手機64位ARM處理器有什麼用處及重要性吧,歡迎大家參考和學習。
64位計算的歷史相當豐富有趣。Cray等公司在70年代就已經開始在自己的系統當中使用64位寄存器,但真正純粹的64位計算直到90年代才真正到來。首先是MIPS的R4000,然後是DEC的Alpha處理器。到90年代中期,英特爾和Sun都已經擁有64位設計。而對於消費者來說,真正的轉折點是AMD在2003年發布了一款兼容英特爾32位x86處理器的64位PC處理器。
再向前快進10年,PC銷量不斷下滑,大部分智能手機和平板電腦都擁有了主頻在1-2GHz之間的多核心處理器。但它們使用的都是32位架構,而非現代PC和伺服器所使用的64位架構。到現在為止,這都是可以接受的。智能手機並不會去和PC拼性能,這些處理器需要足夠節能,以實現續航的最大化。
但是,隨著設備的發展和新技術——語音識別、3D游戲和高解析度顯示屏——逐漸普及,32位處理器的能力已經漸漸被推到了極限。
ARM看到了64位節能處理器的需求,並在正式發布ARMv8-A架構(首個包含64位指令集的ARM架構)之前就早早開始了新設計的開發,還從其他選擇發展64位技術的晶元設計廠商那裡學習到了經驗和教訓。ARM的新款64位架構具備對於旗下32位架構的全面兼容,這意味著如果處理器運行於64位系統,它就可以運行未修改的ARMv7 32位二進制文件。對於Android來說,這意味著一旦內核被移植到64位(多虧了Linaro,它們已經如此了),系統的其餘部分,從核心庫到應用再到游戲,都是可以在32位或64位之間進行切換的。
去年,蘋果憑借著iPhone5s的全新64位A7處理器震驚了整個移動領域。A7採用了蘋果設計的ARMv8雙核處理器,名為Cyclone。它使用了兩個64KB L1緩存(供兩個核心分別使用),一個1MB L2緩存(被兩個核心所分享)和一個4MB L3緩存(為整個SoC所用)。蘋果擁有ARM架構授權,這意味著它可以從頭開始設計自己的處理器,但前提是這些處理器必須是ARM兼容的。ARM擁有一套測試套件,用以檢查這些處理器是否具備兼容性。
在未來幾個月里,我們將會看到高通、聯發科和三星紛紛推出自己的64位ARM處理器。再考慮到Android在64位化的努力,用不了多久我們就將看到運行於64位Android系統的64位設備了。但對於開發者和終端用戶來說,64位處理器意味著什麼呢?
每一部CPU的中心都是一套寄存器,他們都是用以存儲數字和地址的內部存儲插槽。當執行復雜任務時,這些插槽會被反復使用。如果所有的寄存器都處於佔用狀態,那麼處理的唯一方式是將其中一個寄存器存儲在內存當中,使用寄存器進行下一個任務,然後再從內存當中重新載入之前的值。對於人類來說,這一切都發生在一瞬間。但對於處理器來說,這實際上是一個非常耗時的順序,並不十分效率。
32位ARMv7架構擁有15個通用的寄存器,每一個都有32位寬。而ARMv8架構擁有31個通用寄存器,每一個為64位寬。這就意味著優化代碼使用內部寄存器的頻率應該要比內存更高,同時也可以保留更大的數字和地址。結果就是,ARM的64位處理器在運行速度上會更快一些。
在能效上面,64位寄存器的使用並不會提升功耗。在某些情況下,64位核心執行部分任務的速度會更快一些,由於運行時間的減少,這也就會使其顯得比32位核心更加節能。
定址(Addressing)是64位處理器的另一個層面。在PC和伺服器領域,32位的局限主要在可訪問的內存上。如果你想要使用超過4GB的'內存,就需要使用64位處理器。因為可以使用大物理地址拓展(LPAE),某些ARMv7處理器能夠使用超過4GB內存,所以嚴格來講,內存的限制並不是ARM處理器所遭遇的問題。由於LPAE的存在,Cortex-A15處理器能夠處理1024GB內存,而64位的處理能力更是高達200萬TB。因此在短時間內,任何一部智能手機都不需要完整的64位定址。追求永遠都不會被用到的定址空間是毫無意義的,因此ARMv8架構採用了48位定址,這已經是256TB了。
雖然沒有什麼程序或游戲會用到TB級別的內存,但在另一方面,這種定址能力又非常重要。現代3D游戲通常都帶有大量的資源,當擁有超過4GB的可訪問空間時,這些資源能夠被更加輕松地進行內存映射。這樣一來,游戲的運行速度會得到提升,並讓直接訪問游戲多媒體資源成為可能。
不只是智能手機和平板
ARM上64位計算的好處並不僅限於智能手機和平板電腦。ARM的生態系統很廣闊,他們的處理器也被許多不同類型的設備所使用。伺服器市場是ARM處理器影響力有限的一個領域。信息時代的發展讓維持數據中心所消耗的能源持續快速增長,而任何能夠降低能源使用的技術都是對於資金和自然資源的節省。除了節能之外,在伺服器當中使用64位ARM晶元還有其他的好處。這些伺服器都會被動散熱,這意味著你可以將它們集中在一起,而無需擔心會發生過熱的情況。這樣一來,用於散熱上的花費也將有所降低。
至於伺服器軟體,Linux這樣的操作系統已經是64位的了,其主線內核當中也已經加入了對於ARMv8的支持。這也就是說,製作運行於64位Linux、ARM處理器的伺服器並不會很困難。
總結
多虧了ARM,64位的移動計算時代就要到來了。這些新的處理器不僅速度更快,還為移動平台開啟了更多的可能性。
從32位向64位的遷移道路已經被鋪就,無論是什麼操作系統,開發者從32位進入64位都不會有任何意外。
在未來幾個月里,ARM的合作夥伴都將推出Cortex-A53和Cortex-A57處理器。當中有的會採用雙核或四核的標准配置,也有的會選擇big.LITTLE配置。但有一點是肯定的,那就是這對於ARM和普通用戶來說都是一個激動人心的時刻。
在蘋果眼裡,Windows台式機、MacBook市場一直在收縮,而iOS才是未來,iPhone和iPad不是後PC時代的過渡,而是要代替PC,它們正准備把iOS和相關設備推向一個真正的個人計算時代,這才是蘋果最前衛的手機戰略。
❸ ARM11的內核特點
ARM11處理器是為了有效的提供高性能處理能力而設計的。在這里需要強調的是,ARM並不是不能設計出運行在更高頻率的處理器,而是,在處理器能提供超高性能的同時,還要保證功耗、面積的有效性。ARM11優秀的流水線設計是這些功能的重要保證。
ARM11處理器的流水線和以前的ARM內核不同,它由8級流水線組成,可以比5級流水線的ARM9達到更高的運行頻率。
從通常的角度說,過長的流水線往往會削弱指令的執行效率。一方面,如果隨後的指令需要用到前面指令的執行結果作為輸入,它就需要等到前面指令執行完。ARM11處理器通過forwarding來避免這種流水線中的數據沖突,它可以讓指令執行的結果快速進入到後面指令的流水線中。另一方面,如果指令執行的正常順序被打斷(如出現跳轉指令),普通流水線處理器往往要付出更大的代價,ARM11通過實現跳轉預測技術來保持最佳的流水線效率。這些特殊技術的使用,使ARM11處理器優化到更高的流水線吞吐量的同時,還能保持和5級流水線(如ARM9處理器中的流水結構)一樣的有效性。 跳轉指令通常都是條件執行的。問題在於那些決定是否跳轉的條件要在跳轉指令被解碼的後3~4個周期才能就緒。如果不做特殊處理,跳轉指令必須等待,這樣使指令執行效率變得讓人難以忍受。跳轉預測就是用來幫助解決這種延遲的。ARM11處理器提供兩種技術來對跳轉作出預測—動態預測和靜態預測。
動態預測:在ARM11處理器中包含了64個4狀態跳轉地址緩存器(4-state branch target address cache)來保存最近發生的跳轉指令的結果。通過對這些歷史紀錄的查找,處理器可以預測出當前的跳轉指令是否會被執行。
靜態預測:當在動態預測的緩存器中無法查到和當前指令匹配的記錄,ARM11處理器就從跳轉的方式來判斷是否執行。如果是向回跳轉,大多數情況是遇到一個循環,處理器會假設這條指令被執行。如果是向前跳轉,處理器會假設這條指令不被執行。
動態預測和靜態預測的組合使ARM11處理器能達到85%的預測正確性,對於每一個正確的預測,給指令執行帶來的是減少5個時鍾周期的等待時間。 在ARM11處理器中,指令和數據可以更長時間的被保存在Cache中。一方面是由於物理地址Cache的實現,使上下文切換避免了反復重載Cache,另一方面是由於ARM11的Cache還有很多其它新穎的技術特點。
如果數據的訪問引起了CacheMiss,Cache將到存儲器中讀取需要的數據。但是ARM11處理器的流水線並不會停止下來。只要後面的指令沒有用到Cache Miss將讀回來的數據,ARM11處理器就會繼續執行下去。即使下一條指令還是存儲器訪問指令,只要數據存放在Cache中,ARM11也會允許這條指令被執行。只有這條指令又引起一次CacheMiss,處理器才會停止下來。在大多數應用中,經過編譯器調配後,這種情況並不多見。 盡管ARM11是單指令發射處理器,但是在流水線的後半部分允許了極大程度的並行性。一旦指令被解碼,將根據操作類型發射到不同的執行單元中。ARM11的數據通路中包含多個處理單元,允許ALU操作、乘法操作和存儲器訪問操作同時進行。
考慮到不同的指令需要不同的執行時間,當三類指令先後被發射到流水線中,它們就可以同時被執行。而且ARM11處理器允許指令的亂序完成,如果在指令之間沒有數據的相關性,所有指令都可以不必等待前面的指令完成而結束自己的執行。 ARM11處理器將浮點運算當成一個可供用戶選擇的設計。用戶可以在向ARM要求授權的時候選擇是否包括浮點處理器的內核。在流水線上的重要區別不僅是為了達到更高的性能,還是從實現的角度來考慮的。所以,ARM11內核在運行於極高頻率的同時,也能非常容易的被集成在SoC設計中。同時,ARM11處理器提供的向上兼容性,使OEM可以放心的選用任何基於ARM的產品。
❹ 什麼是ARM核心
ARM晶元,這是硬體部份,主要是晶元內部的程序,好的程序可實現產品的人性化的功能。
使產品易用。
❺ 什麼是arm晶元
ARM處理器是Acorn計算機有限公司面向低預算市場設計的第一款RISC微處理器。更早稱作Acorn RISC Machine。ARM處理器本身是32位設計,但也配備16位指令集,一般來講比等價32位代碼節省達35%,卻能保留32位系統的所有優勢。
ARM處理器的三大特點是:耗電少功能強、16位/32位雙指令集和合作夥伴眾多。
1、體積小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令執行速度更快;
4、大多數數據操作都在寄存器中完成;
5、定址方式靈活簡單,執行效率高;
6、指令長度固定。
❻ dsp中有句話」存儲器映射寄存器」是什麼意思
dsp中有句話「存儲器映射寄存器」,英語是
memory
mapped
register
不過這個東西並非dsp獨有,單片機和其他32位嵌入式控制器都有此概念。
需要注意的是英語的表述,其實漢語的翻譯是有些問題的。memory
mapped
是用來形容register的。因此,正確的翻譯應該是-存儲器映射的寄存器。一字之差,就有很大區別。因為」存儲器映射寄存器「讓人感覺是一種操作,象一個動詞。其實應該是一個名詞,就是一個寄存器,只是這個寄存器的地址被存儲器映射了。
首先是寄存器的概念,寄存器不是存儲器(內存),存儲器是指通用的ram,寄存器則是有專門用途的
映射存儲寄存器
ram。寄存器不能隨便寫數據。同時位置(硬體上)與通用的ram(存儲器)不在一起。
存儲器映射,就是把存儲器的地址給寄存器用,你要找這個寄存器,就用這個存儲器地址,然後單片機會幫你」映射「到你想找的寄存器。
物理上這個寄存器不屬於內存(memory),但在邏輯地址上它屬於內存。這樣做的好處應該是能夠用要使用訪問內存的指令訪問寄存器,使操作方式多樣化,同時整個存儲系統的地址也相對統一。
❼ LPC1768宏定義部分FLASH和RAM地址,用IAP比較為什麼出錯
其實無論在RAM里還是在FLASH里存儲,都是一樣的,但是在FLASH里存儲的好處是你可以無限次的下載調試,而在RAM里存儲的次數只有10萬多次。有些程序還不能在FLASH里調試,那就悲劇了。這就要用到ARM里學到的存儲器的映射,可以將RAM存儲器的內存從新分配,這是在option里完成的
❽ arm中存儲器的實際地址是如何確定的是CPU直接分配好的嗎
存儲器是可以映射成為不同的地址的。
一般來說,ARM處理器由於是32位的,所以可以訪問的地址空間為4G。在這些地址空間內,實際的每個物理存儲器,可以被映射在任意的地址上。你可以查看所使用的CPU手冊來確定,每個存儲器是怎麼被映射的。下面舉個例子說明一下。
ATMEL公司的AT91SAM7S256,ARM7TDMI內核,內部集成256KB Flash和64K SRAM。其中Flash被默認映射在0地址處,也就是說你訪問0x0地址訪問的就是Flash。但是,Flash還有一個地址:0x100000,你訪問這個地址和訪問0x0實際上是一個地方。就好比是你家開了兩個門一樣,入口不同,但是進的地方是一樣的。而SRAM則被映射在0x200000地址處。
系統啟動後,在MCR寄存器內寫入1,這時CPU會調整存儲器的映射關系,會把SRAM映射在0x0地址處,也就是說你現在訪問0x0實際上訪問的是SRAM的0x200000地址。
其他的許多支持外部存儲器的(比如帶NAND Flash控制和SDRAM控制器的)CPU,都可以把外部存儲器映射到4G的地址空間內。它們的說明書絕對會有相對的說明,有一個圖,叫地址空間映射表,你一看就明白了。
❾ ARM晶元 快閃記憶體存儲器 系統存儲器 內嵌SRAM 分別是什麼作用BOOT從那個啟動比較好,有什麼特點
ARM 是 一種CPU
快閃記憶體存儲器是用電可擦寫弄成的Flash存儲器,就是U盤,內存卡
系統存儲器 指的是存放系統數據的存儲區域,類如BIOS
內嵌SRAM是一種內存技術,靜態存數據,不用經常用像DRAM那樣用電去刷新就能長時間保存數據
❿ ARM11性能有多強
ARM11屬於ARM v6架構.你問他有多強,從下面幾個方面來看吧。 1. 主頻和流水線:ARM9主頻通常400M,arm11可到800M以上,ARM11處理器的流水線和以前的ARM內核不同,它由8級流水線組成,8級流水線可以使8條指令同時被執行。比以前的ARM內核提高了至少40%的吞吐量。 2.多媒體處理擴展
使MPEG4編碼/解碼加快一倍以上
音頻處理加快一倍以上
3. 增強的Cache結構
實地址Cache
減少Cache的刷新和重載
4減少上下文切換的開銷
增強的異常和中斷處理
使實時任務的處理更加迅速
5 支持Unaligned和Mixed-endian數
據訪問 使數據共享、軟體移使數據共享、軟體移
植更簡單,也有利於節省存儲器空間 ARM11處理器是ARMv6架構的第一
代實現,這
些ARM11處理器瞄準的是高端的
移動無線,消費類電子,網路和汽車電
子應用。而且ARM11內核的很多特性使
它還能充分適應高端嵌入式實時應用系
統,如:未來的網路和家庭娛樂產品。