国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

您好,歡迎進入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞頭條 >> 說說內核與計算機硬件結構
新聞資訊
NEWS INFORMATION

說說內核與計算機硬件結構

發(fā)布時間:2019-05-22

1.內核諸如51/ARM/90/PIC/AVR.....有好多種的,何況內核從來不分類,因為每一家常都可以改內核,你應該問的是架構!!只有懂架構才能用什么片子都駕輕就熟. 我詳細的說一下吧. HARVARD(哈佛)架構:ROM(程序空間)與RAM(數(shù)據(jù)空間)分開,便于程序與數(shù)據(jù)的同時訪問,減少程序運行時訪問的瓶頸,提高數(shù)據(jù)吞吐. PRINCETON(普林斯頓)架構:采用通用計算機廣泛使用的ROMRAM合二為一的方式,就是眾所周知的馮諾依曼結構,程序指令存儲地址和數(shù)據(jù)指令存儲地址指向同一存儲器不同位置,因此程序指令和數(shù)據(jù)的寬度相同. 舉例說明:以英特爾為例:MCS-51用的是哈佛架構,而后及產(chǎn)品16位的MCS-96就是普林斯頓架構.ARM公司賣的內核幾乎多是哈佛架構的.

2.請問PIC單片機和AVR單片機是51內核的嗎?

   不是,都有自己的C編譯環(huán)境

3.STC51單片機和AT89S51的匯編語言一樣嗎?

   內核和指令集都是一樣的, 所以放心,另外建議你編輯的時候如果對執(zhí)行時間要求不是很苛刻的話,盡量使用C語言,畢竟通用性好且比較簡單

但匯編程序也要會!這個可以直接與芯片交流呀!
4.AVR單片機是什么內核?

     答:AVR單片機內核就是AVR內核,和51內核是不一樣的,如果內核一樣的話,那它的匯編指令應該是一樣的,實際上他們的匯編指令是

完全不一樣的。AVR是美國ATMEL公司研發(fā)的,ATMEL公司有三大系列MCU,一種是老式的以8051內核的單片機,第二種是目前大量使用

的以AVR內核的AVR單片機。第三種是目前高端的以ARM內核的微處理器。ARM已經(jīng)不是單片機那么簡單的概念了,差不多跟電腦CPU類似

了,F(xiàn)在手機上的CPU就是AVR的。

 

5.51系列單片機的區(qū)別與特點介紹 

8031/8051/8751是Intel公司早期的產(chǎn)品。

1、8031的特點
     8031片內不帶程序存儲器ROM,使用時用戶需外接程序存儲器和一片邏輯電路373,外接的程序存儲器多為EPROM的2764系列。用戶若想對寫入到EPROM中的程序進行修改,必須先用一種特殊的紫外線燈將其照射擦除,之后再可寫入。寫入到外接程序存儲器的程序代碼沒有什么保密性可言。
2、8051的特點
     8051片內有4k ROM,無須外接外存儲器和373,更能體現(xiàn)“單片”的簡練。但是你編的程序你無法燒寫到其ROM中,只有將程序交芯片廠代你燒寫,并是一次性的,今后你和芯片廠都不能改寫其內容。
3、8751的特點
     8751與8051基本一樣,但8751片內有4k的EPROM,用戶可以將自己編寫的程序寫入單片機的EPROM中進行現(xiàn)場實驗與應用,EPROM的改寫同樣需要用紫外線燈照射一定時間擦除后再燒寫。

 


    由于上述類型的單片機應用的早,影響很大,已成為事實上的工業(yè)標準。后來很多芯片廠商以各種方式與Intel公司合作,也推出了同類型的單片機,如同一種單片機的多個版本一樣,雖都在不斷的改變制造工藝,但內核卻一樣,也就是說這類單片機指令系統(tǒng)完全兼容,絕大多數(shù)管腳也兼容;在使用上基本可以直接互換。人們統(tǒng)稱這些與8051內核相同的單片機為“51系列單片機”,學了其中一種,便會所有的51系列。

 

6.內核包含中央運算單元+內部總線+指令解析+..........,內核有很多中,8051,Arm,Mips,power PC,這些都是代表人物,還有很多,很多

內核是軟件或者硬件的基本核心部分,可以包含軟件和硬件。如LINUX的內核就是軟件的,是LINUX最基本的部分,其他軟件是在內核的基礎上發(fā)展。51內核是51系列兼容機的基本部分。包含指令系統(tǒng)、和基本的硬件,如內存結構等。其他增強型51單片機,就是在內核的基礎上擴展功能。

 

系統(tǒng)性能并不等價于計算能力。較低的功耗、豐富的片內外設以及實時的信號處理能力對于大部分嵌入式應用來說是最為重要的。傳統(tǒng)的8位、16位單片機已經(jīng)很好的處理了這類問題,但是隨著當今嵌入式設計不斷增長的功能需求和特殊要求,許多微控制器廠商開始拋棄他們傳統(tǒng)的8位、16位單片機。但是選擇32位處理器對于某些任務來可能并不是最適宜的。下面我們就討論一下單片機的選型問題。

理解系統(tǒng)性能

MIPS(million instructions per second),是微控制器計算能力的表征。但是,所有的嵌入式應用不僅僅是需要計算能力,所以應用的多樣化決定了系統(tǒng)性能衡量方式的多樣化,大部分參數(shù)都同等重要并且難于用一個參數(shù)來表示,我們并不應該僅僅從MIPS就判定系統(tǒng)的好壞。也許某一應用由于成本的限制,需要一款高集成度的微控制器,該控制器需要多個定時器和多種接口。但是另一個應用需要高的精度和快速的模擬轉換能力。兩者的共同點可能僅僅是供電部分,比如采用電池供電。對于一個實時的順序處理應用來說,通信的失敗可能會導致災難性后果。這樣的場合下就需要一個靈巧的控制器。這個控制器應當能夠以正確的順序處理任務,并且響應時間必須均衡。所有上述應用的共同問題可能就是定期的現(xiàn)場升級能力。

除了與具體的產(chǎn)品要求有關外,系統(tǒng)性能的衡量也可以考慮是否有容易上手、容易使用的開發(fā)工具、應用示例、齊全的文檔和高效的支持網(wǎng)絡。

系統(tǒng)性能的相關問題

1.傳統(tǒng)8位單片機的局限

大多數(shù)工程師十分關注系統(tǒng)性能,因為越來越多的8位和16位單片機家族已經(jīng)無法滿足當今日益增長的需求。陳舊和低效的架構限制了處理能力、存儲器容量、外設處理和低功耗要求。8位的處理器架構,比如8051、PIC14、PIC16、PIC18、78K0和HC08是在高級語言(比如C語言)出現(xiàn)之前開發(fā)的,其指令集僅用于匯編開發(fā)環(huán)境。并且這類架構的中央處理單元(CPUs)缺乏一些關鍵功能,比如16位的算數(shù)運算支持、條件跳轉和存儲器指針。

許多CPU架構執(zhí)行一條指令需要若干時鐘周期。Microchip的8位PIC家族執(zhí)行一條最簡單的指令需要4個時鐘周期,這導致使用20M的時鐘僅能達到5MIPS.對于其他CPU架構,比如8051內核。其執(zhí)行一條指令至少需要6個時鐘周期,這就使得實際的MIPS要比給定的時鐘頻率低很多。

上述代碼是一個簡單的C語言函數(shù),表1列出了在三種不同CPU架構上編譯這段代碼的相應結果。8051內核的執(zhí)行時間幾乎是PIC16內核的4倍,對于AVR架構更是達到了28倍。

一些半導體廠商解決了時鐘分配問題,使得微控制器實現(xiàn)了單時鐘周期指令。當時鐘頻率為100MHz時,Silicon Labs聲稱他們基于8位8051架構的微控制器能夠達到100MIPS的峰值。但是,這里有幾個問題:

第一,由于大部分指令需要兩個時鐘周期甚至更多,所以其實際能力接近于50MIPS;

第二,8051是基于累加器的CPU,所有需要計算的數(shù)據(jù)必須拷貝到累加器。查看8051處理器的匯編代碼,可以發(fā)現(xiàn)65%-70%的指令用來移動數(shù)據(jù)。由于現(xiàn)代8位和16位單片機架構中有一系列和算術邏輯單元(ALU)相連的寄存器。因此,8051內核的50MIPS僅相當于現(xiàn)代8位和16位單片機架構的15MIPS.

第三,較老的CPU架構缺乏對大容量存儲器的支持。早在七十年代,很難想象需要超過64KB存儲器的嵌入式應用,這使得許多CPU設計師選擇16位的地址總線。因此,CPU、寄存器、指令集以及程序存儲器和數(shù)據(jù)存儲器的數(shù)據(jù)總線始終受此限制。

第四,在2006年,約有9%的8位嵌入式應用使用了64KB甚至更多的程序存儲空間,這代表了8位MCU市場26%的收益。推測2009年,14%的8位嵌入式應用會代表36%的收益。而這14%的應用會使用64KB甚至更多的程序存儲空間。

從系統(tǒng)性能的角度來看,所有這些使得較舊的8位MCU逐漸失去競爭力。

 

 


2.不適宜32位處理器的場合

舊式CPU架構無法滿足當今的市場需求,為了解決這個問題,許多廠商升級至32位的處理平臺。對于需要32位處理能力的應用來說這無疑是最棒的選擇,但是許多設計師轉換到32位平臺并非最正確的選擇。使用32位MCU來解決8位和16位單片機的自身限制將會導致過高的成本。

大部分32位微控制器無法提供高速、高分辨率的模數(shù)(ADC)轉換,EMC性能通常較低,且ESD保護較弱。而8位和16位單片機在這些方面優(yōu)勢明顯。另外,強的IO驅動能力,可供選擇的多種內部、外部振蕩器,無需外部器件的片內電壓調整器等是8位和16位單片機的另一些優(yōu)點。

顯然,32位CPU包含比任何8位和16位CPU都要多的數(shù)字邏輯單元,這導致了高的制造成本。雖然使用一些特殊的半導體工藝可以降低成本,但是弊端是會導致較高的漏電流和靜態(tài)功耗。某些應用,像水表、燃氣表、收費公路電子標簽、安全系統(tǒng)等,在他們生命期中的大部分時間,CPU處于睡眠模式,即為停止狀態(tài)。這類應用的電池壽命必須在5-10年,所以這情況中,不可能將CPU從8位或者16位升級至32位處理器。如果想要提升系統(tǒng)性能只有采用別的方法。

這里有幾個定義需要說一下,

  片內(片上)外設與片外外設


外設,顧名思義,就是IC芯片所接的能夠與IC通信的外部設備。早起由于IC集成工藝不發(fā)達,很多東西都是外設的,在此以DSP芯片為例,比如PWM、ADC、CAN等等,
原本都是需要芯片外接的,即使是現(xiàn)在,仍然有獨立的ADC芯片,比如ADS8364等等,但是現(xiàn)在,PWM、ADC等等東西都已經(jīng)集成在DSP芯片內,當然,
無論如何,芯片總還是會需要外接一些設備實現(xiàn)某種系統(tǒng),為了與那些外設相區(qū)別,就將集成在芯片內,但是又不屬于芯片本身(比如DSP,是一種微處理器,
因此芯片中不屬于微處理器的部分都是外設)的稱為“片上外設”。

片內、外設是兩個概念,片內指做成芯片的集成電路內部,簡稱片內;外設是外部設備的簡稱,是指集成電路芯片外部的設備。集成電路芯片與外部設備的連接一般需要專門的接口電路和總線的連接(包括控制總線路、地址總線和數(shù)據(jù)總線等)。 

由于大規(guī)模集成電路的技術發(fā)展得很快,現(xiàn)在許多芯片在制造時已經(jīng)能夠將部分接口電路和總線集成到芯片內部。對于這部分電路與傳統(tǒng)的接口電路和總線是有區(qū)別的,為了加于區(qū)別可以稱之為片內外設,其含義是在集成電路芯片內部集成的用于與外部設備連接的接口電路和總線。 

因此,簡單的說,“片內外設”是芯片內部用于與外部設備連接的接口電路和總線。

CPU,內核,寄存器,緩存,RAM,ROM的作用和他們之間的聯(lián)系?

先附上一張計算機硬件組成圖片:

先說內核
內核是操作系統(tǒng)最基本的部分。它是為眾多應用程序提供對計算機硬件的安全訪問的一部分軟件,這種訪問是有限的,并且內核決定一個程序在什么時候對某部分硬件操作多長時間。內核的分類可分為單內核和雙內核以及微內核。嚴格地說,
內核并不是計算機系統(tǒng)中必要的組成部分
附一張內核體系結構照片

鏈接:https://www.zhihu.com/question/24565362/answer/54451597


可以看到內核所處的位置
CPU:
中央處理器(CPU,Central Processing Unit)是一塊超大規(guī)模的集成電路,是一臺計算機的運算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計算機指令以及處理計算機軟件中的數(shù)據(jù)。
中央處理器主要包括運算器(算術邏輯運算單元,ALU,Arithmetic Logic Unit)和高速緩沖存儲器(Cache)及實現(xiàn)它們之間聯(lián)系的數(shù)據(jù)(Data)、控制及狀態(tài)的總線(Bus)。它與內部存儲器(Memory)和輸入/輸出(I/O)設備合稱為電子計算機三大核心部件。

寄存器

寄存器是中央處理器內的組成部份。它跟CPU有關。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計數(shù)器(PC)。在中央處理器的算術及邏輯部件中,包含的寄存器有累加器(ACC)。

存儲器

存儲器范圍最大,它幾乎涵蓋了所有關于存儲的范疇。你所說的寄存器,內存,都是存儲器里面的一種。凡是有存儲能力的硬件,都可以稱之為存儲器,這是自然,硬盤更加明顯了,它歸入外存儲器行列,由此可見——。

內存

內存既專業(yè)名上的內存儲器,它不是個什么神秘的東西,它也只是存儲器中的滄海一粟,它包涵的范圍也很大,一般分為只讀存儲器(ROM)隨機存儲器(RAM),以及最強悍的高速緩沖存儲器(CACHE),只讀存儲器應用廣泛,它通常是一塊在硬件上集成的可讀芯片,作用是識別與控制硬件,它的特點是只可讀取,不能寫入。隨機存儲器的特點是可讀可寫,斷電后一切數(shù)據(jù)都消失,我們所說的內存條就是指它了。

緩存CACHE

緩存就是數(shù)據(jù)交換的緩沖區(qū)(稱作Cache),當某一硬件要讀取數(shù)據(jù)時,會首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從內存中找。由于緩存的運行速度比內存快得多,故緩存的作用就是幫助硬件更快地運行。

因為緩存往往使用的是RAM(斷電即掉的非永久儲存),所以在用完后還是會把文件送到硬盤等存儲器里永久存儲。電腦里最大的緩存就是內存條了,最快的是CPU上鑲的L1和L2緩存,顯卡的顯存是給顯卡運算芯片用的緩存,硬盤上也有16M或者32M的緩存。

CACHE是在CPU中速度非常塊,而容量卻很小的一種存儲器,它是計算機存儲器中最強悍的存儲器。由于技術限制,容量很難提升。

ROM、RAM的區(qū)別:

ROM(只讀存儲器或者固化存儲器)

RAM(隨機存取存儲器)

ROM和RAM指的都是半導體存儲器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統(tǒng)停止供電的時候仍然可以保持數(shù)據(jù),而RAM通常都是在掉電之后就丟失數(shù)據(jù),典型的RAM就是計算機的內存。

RAM有兩大類,一種稱為靜態(tài)RAM(Static RAM/SRAM),當數(shù)據(jù)被存入其中后不會消失。SRAM速度非?,是目前讀寫最快的存儲設備了。當這個SRAM 單元被賦予0 或者1 的狀態(tài)之后,它會保持這個狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會更改或者消失。但是存儲1bit 的信息需要4-6 只晶體管。因此它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級緩沖,二級緩沖。另一種稱為動態(tài)RAM(Dynamic RAM/DRAM),DRAM 必須在一定的時間內不停的刷新才能保持其中存儲的數(shù)據(jù)。DRAM 只要1 只晶體管就可以實現(xiàn)。DRAM保留數(shù)據(jù)的時間很短,速度也比SRAM慢,不過它還是比任何的ROM都要快,但從價格上來說DRAM相比SRAM要便宜很 多,計算機內存就是DRAM的。

DRAM分為很多種,常見的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這里介紹其中的一種DDR RAM。DDR RAM(Date-Rate RAM)也稱作DDR SDRAM,這種改進型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個時鐘讀寫兩次數(shù)據(jù),這樣就使得數(shù)據(jù)傳輸速度加倍了。這是目前電腦中用 得最多的內存,而且它有著成本優(yōu)勢,事實上擊敗了Intel的另外一種內存標準-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDR RAM來提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。

ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區(qū)別是,PROM是一次性的,也就是軟件灌入后,就無法修 改了,這種是早期的產(chǎn)品,現(xiàn)在已經(jīng)不可能使用了,而EPROM是通過紫外光的照射擦出原先的程序,是一種通用的存儲器。另外一種EEPROM是通過電子擦出,價格很高,寫入時間很長,寫入很慢。

最初,把只能讀的存儲器叫做ROM(Read Only Memory),并且掉電后數(shù)據(jù)不會丟失。由于不能改寫,因而使用起來很不方便。隨著技術的進步,在ROM中使用一些新技術,就可以使它具有可以編程的功能。比較早的是熔絲型的可編程ROM,由于是通過熔斷熔絲來編程的,所以這類ROM編程后,就不能再寫了,是一次性的(OTP)。后來又出現(xiàn)了EPROM,是通過紫外線來擦除的,并且通過高壓來編程,這類ROM上面一般有一個透明的石英玻璃窗,看上去挺漂亮的,它就是用來給紫外線照射的。后來又出現(xiàn)了EEPROM,不用紫外線照射就可以擦除,因而可以直接在電路中編程。另外還有FLASH ROM,又可分為NOR FLASH和NAND FLASH。FLASH ROM一般有一個特點,就是寫數(shù)據(jù)時,可以將1改為0,而不能將0改為1,因而寫數(shù)據(jù)前需要擦除,擦除時將所有數(shù)據(jù)置1。

之所以依然叫做ROM,歸納一下,大概有幾個原因:

①不能像RAM那樣快速的寫;

②可能需要特殊的擦寫電壓;

③可能需要特殊的擦寫時序;

④可能需要在寫之前進行擦除操作;

⑤擦寫次數(shù)有限,不像RAM那樣可以隨意寫而不損壞;

⑥掉電后數(shù)據(jù)不會丟失;

⑦有些可寫的存儲器只能寫一次(OTP)。

舉個例子,手機軟件一般放在EEPROM中,我們打電話,有些最后撥打的號碼,暫時是存在SRAM中的,不是馬上寫入通過記錄(通話記錄保存在EEPROM中),因為當時有很重要工作(通話)要做,如果寫入,漫長的等待是讓用戶忍無可忍的。

FLASH存儲器又稱閃存,它結合了ROM和RAM的長處,不僅具備電子可擦出可編程(EEPROM)的性能,還不會斷電丟失數(shù)據(jù)同時可以快速讀取數(shù)據(jù) (NVRAM的優(yōu)勢),U盤和MP3里用的就是這種存儲器。在過去的20年里,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲設備,然而近年來 Flash全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,用作存儲Bootloader以及操作系統(tǒng)或者程序代碼或者直接當硬盤使用(U盤)。

目前Flash主要有兩種NOR Flash和NADN Flash。NOR Flash的讀取和我們常見的SDRAM的讀取是一樣,用戶可以直接運行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節(jié)約了成本。NAND Flash沒有采取內存的隨機讀取技術,它的讀取是以一次讀取一快的形式來進行的,通常是一次讀取512個字節(jié),采用這種技術的Flash比較廉價。用戶 不能直接運行NAND Flash上的代碼,因此好多使用NAND Flash的開發(fā)板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來運行啟動代碼。

一般小容量的用NOR Flash,因為其讀取速度快,多用來存儲操作系統(tǒng)等重要信息,而大容量的用NAND FLASH,最常見的NAND FLASH應用是嵌入式系統(tǒng)采用的DOC(Disk On Chip)和我們通常用的“閃盤”,可以在線擦除。


轉自鏈接:https://www.zhihu.com/question/24565362/answer/54451597
cpu主要就是處理各種指令,運算、跳轉、存取內存之內的。這些指令所需的數(shù)據(jù)以及指令本身一般都是存儲在ram中的。cpu必須將ram中的指令和數(shù)據(jù)取到cpu中的各種寄存器中,指令才能執(zhí)行。指令的地址存儲在一個叫做PC的寄存器中,注意這邊的PC不是個人電腦的意思,而是pointer of code的意思,即指令指針,而數(shù)據(jù)可以放在各種通用寄存器中。cpu中還有很多其他寄存器,控制著cpu各種功能。如果你學過匯編,便會知道匯編語言即是操作這些寄存器,完成各種運算任務。
現(xiàn)代高性能cpu內部一般都會有緩存,一般分為指令緩存和數(shù)據(jù)緩存。緩存的訪問速度比外部ram要快很多,所以如果把一部分數(shù)據(jù)和指令存儲在緩存中,cpu再從緩存中獲取指令和數(shù)據(jù)能夠提高cpu的速度。
可以被稱作rom的東西很多,如pc主板上的rom芯片,pc關機后,rom的數(shù)據(jù)不會丟失,開機時先運行其中的bios程序,完成硬件配置和檢測,之后會將磁盤第一個扇區(qū)中操作系統(tǒng)的引導程序裝入內存,然后徐跳到引導程序。引導程序會進一步將操作系統(tǒng)存儲在磁盤上的內核裝入內存,最后執(zhí)行內核程序。內核加載文件系統(tǒng),并執(zhí)行gui程序,便可以看到pc的桌面了。

鏈接:https://www.zhihu.com/question/24565362/answer/74078750
CPU中央處理器,負責執(zhí)行計算機的運算指令。寄存器是CPU內部的小容量存儲器,用來存放CPU將要運算的操作數(shù)或者操作數(shù)的地址,以及計算機指令或者指令地址,也會有計算結果存在寄存器中。RAM主要指計算機內存,用來存放計算機正在運行的程序的指令以及數(shù)據(jù),包括操作系統(tǒng)和應用程序的指令和數(shù)據(jù)。ROM是只讀存儲器,其內容掉電不會丟失,一般來講計算機的BIOS會寫在里面,待計算機通電后,這里面的程序會自動被加載到內存中供CPU執(zhí)行,去讀磁盤信息引導DOS或者其他操作系統(tǒng)裝入內存。
緩存有兩種概念。一種是指硬件高速緩沖存儲器cache,用于協(xié)調寄存器與內存之間讀寫速度不匹配而設置的一種存儲器。另一種是指人為規(guī)定的一個區(qū)域(通常是在RAM上劃一塊區(qū)域,這是由操作系統(tǒng)來做的),用來暫時存放一些輸入輸出數(shù)據(jù)。
內核也有兩種理解,你可以簡單的認為CPU就是計算機的內核。
軟件也會有內核,比如操作系統(tǒng)內核,主要是只管路計算機硬件資源的部分。

鏈接:https://www.zhihu.com/question/24565362/answer/126282464

CACHE

i-cache和d-cache區(qū)別:

從兩個方面來回答: 

一方面是cache的行為。Icache大多都是順序取指,碰到分支指令也會跳轉,而Dcache訪問的模式變化比較大.也就是前者所說的pattern的問題.指令只有讀和refill沒有寫,而數(shù)據(jù)有讀也有寫.最重要的是馮氏的結構是指令和數(shù)據(jù)分離.I和D在一起只有相互干擾. 
  
另一個方面就是,物理設計上考慮:
一個union的cache,同時需要數(shù)據(jù)和指令的訪問,端口上是很難實現(xiàn)的。
所以一般在流水線的主干上,都是采用分離的icache和dcache. 
非主干的L2 cache,從容量的角度考慮采用union的方式. 
  

當然早期的也有不分離icache和dcache.因為早期的結構也簡單. 

 

Cache的層次設計

出于對簡化設計的考慮,也為了提高系統(tǒng)的性能,本次設計采用了指令Cache(以下簡稱為ICache)和數(shù)據(jù)Cache (以下簡稱為DCache)分開的方式。在ICache中存儲有微處理器需要的指令,在微處理器的取指階段,通過程序計數(shù)器PC提供給ICache的地址,微處理器可以獲取需要的指令。而DCache則是作為一個數(shù)據(jù)的存儲,并提供對于Load/Store指令所要操作地址的數(shù)據(jù),它地址則來自于ALU運算的結果。
ICache和微處理器的接口以及ICache和L2 ICache的接口都是單向的。DCache和微處理器的接口以及DCache和L2 Cache的接口是雙向的。這樣處理的原因在于ICache存儲的是指令,不需要更改所存儲的數(shù)據(jù)的值。而DCache中存儲的是數(shù)據(jù),其值會根據(jù)指令操作的不同而改變。比如:在運行Store指令的時候會對DCache中相應地址進行寫入數(shù)據(jù)的操作。

 

整個系統(tǒng)的層次結構如圖1所示,由ICache和DCache構成L1 Cache,以及和L1 Cache接口的L2 Cache,和L2 Cache接口的DRAM。其中L1 Cache和L2 Cache是在微處理器片內,而DRAM是作為主存,存在于片外。這跟目前主流的個人電腦的層次結構很相似。 

Cache的結構分析

從微處理器架構的角度來說,所謂的Cache包括了兩部分:Cache控制器和Cache存儲器。文本所提及的Cache設計也包括了這兩個方面。
由于ICache只是讀出指令,控制上比DCache要簡單許多。所以ICache的設計完全可以參考DCache的設計,本文會針對L1 Cache 中DCache的設計進行詳細的描述。

3.1 DCache存儲器的結構

Cache存儲器其一般實現(xiàn)方式主要有三種,分別是全相聯(lián),直接映射和組相聯(lián)。全相聯(lián)最靈活但是實現(xiàn)比較復雜。直接映射比較容易實現(xiàn),但是可能產(chǎn)生快速抖動。組相聯(lián)則是前兩者的一個折衷。本文采用的是兩路組相聯(lián)的方式。
圖2:DCache結構圖
為了設計方便,整個DCache存儲器被分成了兩塊,為別用來存儲標簽域(Tag)和數(shù)據(jù)域(Data)。其結構如圖2所示,在數(shù)據(jù)域中,每一組中包括512行,每行有16字節(jié)的數(shù)據(jù),在標簽域中,每組中都有512行與數(shù)據(jù)域的行相對應,每一行中有19位的標簽。通過地址總線的中間的地址位來選擇某一行的數(shù)據(jù),同時通過地址總線的高端的地址位來判斷DCache是否命中。并且由于讀出的是16字節(jié)的數(shù)據(jù),而設計的微處理器所需要的僅僅是32位的數(shù)據(jù),因此在數(shù)據(jù)被讀出后還需要通過地址總線的低端的地址位來選擇相應的字段,并把微處理器需要的字段放到數(shù)據(jù)總線上。

3.2 DCache控制器的結構

DCache控制器在整個DCache中處于非常重要的地位,它控制了整個DCache所要進行的操作,同時會在發(fā)生缺失時采取相應的對策。其主要功能如下:
1)反饋給微處理器讀取DCache的信息,包括DCache的命中或者缺失等信息。如果發(fā)生缺失,可能會要求流水線發(fā)生阻塞。
2)如果發(fā)生缺失,需要從下一級存儲單元尋找相應的地址中的內容,并將內容載入到DCache中。
3)控制讀寫操作。如果是讀操作,則需要為下一級的操作提供相應的數(shù)據(jù)。如果是寫操作,則需要將數(shù)據(jù)寫入到相應的地址中去。
為了完成上述的功能,整個DCache控制器被分為三個部分,分別為用來判斷命中還是缺失的判斷部分和用來執(zhí)行發(fā)生缺失時一些相應操作的有限狀態(tài)機部分以及正常讀寫的控制部分。其中有限狀態(tài)機部分中還包括了兩個存儲塊,分別是為了實現(xiàn)LRU (least recently used)算法的LRU數(shù)據(jù)塊和為了判斷存儲的數(shù)據(jù)有沒有被改寫過的Dirty數(shù)據(jù)塊,其具體的結構圖如圖3所示。
圖3:DCache控制器的結構圖
通過將Tag和地址總線的高地址位比較所得出的hit標志提供給FSM,來確定是否需要啟用缺失處理功能。同時FSM可以通過控制L1 Cache和L2Cache的讀寫,來實現(xiàn)缺失后數(shù)據(jù)的操作。hit標志同樣也會輸出到微處理器,使得微處理器在發(fā)生缺失的時候阻塞流水線。

4 Cache的操作分析

由于DCache中會發(fā)生讀或者寫兩種操作,下面將對DCache中的讀寫操作分別進行分析。
本文涉及的微處理器由5級流水線構成,分別是取指(IF),指令譯碼(ID),執(zhí)行(EXE),內存存取(MEM),回寫(WB)。在MEM操作之前是EXE操作,也就是ALU會根據(jù)指令的不同,計算出不同的地址值,無論進行的是讀或者寫操作,都需要進行讀DCache中相應地址的Tag值,并通過比較Tag標志位來判斷需要讀出或者寫入的地址單元是否存在于DCache中。

讀操作

本設計所采用的讀操作的方式是將標簽域(Tag)中的內容和數(shù)據(jù)域(Data)中的內容同時讀出,然后再將Tag的內容與地址高端進行比較。如果相等,則說明DCache命中,讀出的Data的內容正是給出的地址中的內容。如果不相等,則說明發(fā)生了DCache讀缺失,需要進行缺失處理。在不發(fā)生缺失的情況下,一次讀操作可以在一個Clock周期內完成。這非常符合流水線的特性。
如果發(fā)生讀缺失,DCache中FSM會首先查看LRU塊,確定兩路數(shù)據(jù)存儲中具有同一索引的兩個行中哪一行將會被替換出去。然后FSM會查看Dirty塊,確定是否需要將行中的內容更新到主存。如果需要,則將之前讀出的數(shù)據(jù)寫入到主存,然后將主存中的數(shù)據(jù)讀出,放到數(shù)據(jù)總線上,供流水線的下一級使用。如果不需要,則直接讀取主存中相應地址的數(shù)據(jù)并放到數(shù)據(jù)總線上,供下一級使用。這些操作完成之后FSM會通知微處理器停止阻塞流水線,這樣在下一個時鐘周期微處理器又會正常運行。
圖4:讀操作流程圖
讀操作的具體流程和發(fā)生缺失后FSM的相應操作流程如圖4所示。

寫操作

寫操作一般有兩種方式分別是寫通過(Write-through)方式和寫回方式(Write-back)。寫通過方式支持改寫Cache中的內容,但是不允許Cache和主存內容不一致,因此,對在對Cache進行寫操作時,對主存也要進行寫操作。這會延長寫操作的時間。而寫回方式則是對相應的Cache進行寫操作,但是并不立即對主存進行寫操作,這能有效的減少訪問主存的延遲。但是這種方式的實現(xiàn)比較復雜,因為Cache和主存的內容存在不一致性。處于提高性能的考慮,本設計所采用的是寫回的方式。
寫操作分兩步進行,第一步需要讀取標簽域(Tag) 和數(shù)據(jù)域(Data)中的內容,然后把Tag的內容與地址高端進行比較。如果相等,則說明DCache命中,需要寫入數(shù)據(jù)的地址存在,可以將數(shù)據(jù)寫入DCache中。同時由于寫入的數(shù)據(jù)只有32位,而讀出的數(shù)據(jù)有128位,需要通過地址總線的低位來進行選擇需要寫入的字段。如果Tag不相等,則說明發(fā)生了DCache寫缺失,需要進行缺失處理。在不發(fā)生缺失的情況下,一次寫操作需要兩個Clock周期來完成。這不符合流水線的要求,所以本次設計中采用了流水線式的寫入方式,在微處理器和DCache之間加入了一級寫緩存。在讀取DCache的標簽和數(shù)據(jù)的內容的同時,將數(shù)據(jù)寫入寫緩存。這樣就能夠使得寫入操作以流水線的方式進行?梢詽M足流水線微處理器的要求。
當發(fā)生寫缺失時,同樣FSM會先查看LRU塊,確定哪一行需要從兩路數(shù)據(jù)存儲塊中刪除,然后再查看需要從Dcache中刪除的行是否為“臟”。如果是“臟”行,則將之前從DCache中讀出的數(shù)據(jù)寫入到主存,并將主存的數(shù)據(jù)讀出,并連同之前存入寫緩存中的數(shù)據(jù),準備寫入到DCache中。如果行“干凈”,則直接讀出主存中的數(shù)據(jù),并和寫緩存的數(shù)據(jù)做好寫入DCache的準備。完成之后FSM會通知微處理器停止阻塞流水線,這樣在下一個時鐘周期微處理器又會正常運行,同時將數(shù)據(jù)寫入。

cache高速緩沖存儲器一種特殊的存儲器子系統(tǒng),其中復制了頻繁使用的數(shù)據(jù)以利于快速訪問。存儲器的高速緩沖存儲器存儲了頻繁訪問的RAM位置的內容及這些數(shù)據(jù)項的存儲地址。當處理器引用存儲器中的某地址時,高速緩沖存儲器便檢查是否存有該地址。如果存有該地址,則將數(shù)據(jù)返回處理器;如果沒有保存該地址,則進行常規(guī)的存儲器訪問。因為高速緩沖存儲器總是比主RAM存儲器速度快,所以當RAM的訪問速度低于微處理器的速度時,常使用高速緩沖存儲器。

 

Cache(即高速緩沖存儲器(Cache Memory),是我們最常聽到的一個詞了。在老鳥們眼中,這個詞或許已沒有再談的必要,因為他們對Cache從設計的必要性到工作原理、工作過程等等都已了如指掌了;而對菜鳥朋友們而言,這些未必就很清楚。那么,它們到底是指的什么呢?不用急,下面就請隨筆者一起來全面認識Cache。

為什么要設計Cache?   

         我們知道,電腦的內存是以系統(tǒng)總線的時鐘頻率工作的,這個頻率通常也就是CPU的外頻(對于雷鳥、毒龍系列的處理器,由于在設計采用了DDR技術,CPU工作的外頻為系統(tǒng)總線頻率的兩倍)。但是,CPU的工作頻率(主頻)是外頻與倍頻因子的乘積。這樣一來,內存的工作頻率就遠低于CPU的工作頻率了。這樣造成的直接結果是:CPU在執(zhí)行完一條指令后,常常需要“等待”一些時間才能再次訪問內存,極大降了CPU工作效率。在這樣一種情況下,Cache就應運而生了!

CACHE
                CACHE

CACHE:Cache是一種特殊的存儲器,它由Cache 存儲部件和Cache控制部件組成。Cache 存儲部件一般采用與CPU同類型的半導體存儲器件,存取速度比內存快幾倍甚至十幾倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址變換部件及替換控制部件等。至于它們各自又是怎樣工作的、有何作用等等,我想我們就沒有必要做進一步的研究,知道一般Cache分為L1 Cache(其中又分為數(shù)據(jù)Cache、代碼Cache)、L2 Cache就行了。

CACHE是怎么工作的?/CACHE 

我們知道,CPU運行程序是一條指令一條指令地執(zhí)行的,而且指令地址往往是連續(xù)的,意思就是說CPU在訪問內存時,在較短的一段時間內往往集中于某個局部,這時候可能會碰到一些需要反復調用的子程序。電腦在工作時,把這些活躍的子程序存入比內存快得多的Cache 中。CPU在訪問內存時,首先判斷所要訪問的內容是否在Cache中,如果在,就稱為“命中”,此時CPU直接從Cache中調用該內容;否則,就稱為“不命中”,CPU只好去內存中調用所需的子程序或指令了。CPU不但可以直接從Cache中讀出內容,也可以直接往其中寫入內容。由于Cache的存取速率相當快,使得CPU的利用率大大提高,進而使整個系統(tǒng)的性能得以提升

CACHE的應用/CACHE 

CACHECPU

 

早在486時代,主板上就設計了Cache插槽,用戶可以根據(jù)需要自己配置Cache;586級的CPU芯片中已集成了部分Cache,同時還保留了Cache插槽供用戶擴充,而到了Pentium Ⅱ時代后,Cache已全部集成到了CPU芯片中,主板上再也沒有Cache插槽,F(xiàn)在比較流行的CPU芯片中一般集成了至少16KB的代碼Cache 和16KB的數(shù)據(jù)Cache(作為L1 Cache),以及至少64KB的L2 Cache。

有的朋友可能會問,既然Cache的作用如此重要,那為么不把電腦的全部內存都變?yōu)镃ache,那樣不是更好嗎?其實對于這個問題,撇開價格因素,單就其實用性而言也是沒有必要的,畢竟,電腦在執(zhí)任務時,那種使用頻率非常高的子程序或指令不是很多的,因此那些使用頻率不太高的內容只須保存在速度相對較低的內存中就可以了!

在實際應用中,Cache,尤其是L2Cache對系統(tǒng)的性能,特別是對浮點運算能力有較大的影響。而我們知道,大部分游戲的流暢運行需要頻繁的浮點運算。因此,CPU運行游戲的性能的好壞與L2Cache的容量與速度有很大關系。

地址映像

·地址映像 
所謂映象問題是指如何確定Cache中的內容是主存中的哪一部分的拷貝,即必須應用某種函數(shù)把主存地址映象到Cache中定位,也稱地址映象。當信息按這種方式裝入Cache中后,執(zhí)行程序時,應將主存地址變換為Cache地址,這個變換過程叫作地址變換。地址映象方式通常采用直接映象、全相聯(lián)映象、組相聯(lián)映象三種

 

CACHE硬盤

1、直接映像

 

是指每個主存頁只能復制到某一固定的Cache頁中。直接映像的規(guī)律是:將主存的2048頁分為128組,每組有16頁,分別與Cache的16頁直接對應,即主存的第0頁、第16頁、第32頁……只能映像到Cache的第0頁。

2、全相聯(lián)映像

全相聯(lián)映像是指主存的每一頁可以映像可以映像到Cache的任意一頁。

3、組相聯(lián)映像

組相聯(lián)映像是直接映像與全相聯(lián)映像的折中方案,它將Cache分為若干組,如8組;每組若干頁,如2頁;同時將主存分為若干組,如255組;每組內的頁數(shù)與Cache的組數(shù)相同,如8頁。組相聯(lián)映像的規(guī)律是主存中的各頁與Cache的組號有固定的映像關系,但可自由映像到對應的Cache組中的任意一頁。即組間采用直接映像,而組內的頁為全相聯(lián)映像。

替換機構/CACHE 

當CPU訪問Cache未命中時,應從主存中讀取信息,同時寫入Cache。若Cache未滿,則直接寫入;若Cache已滿,則需要進行替換。替換機構由硬件組成,并按替換算法進行設計,其作用是指出替換的頁號。常用的替換算法有先進先出算法(FIFO)和近期最少使用算法(LRU)。

讀寫操作/CACHE 

1、讀操作

訪存時,將主存地址同時送主存和Cache,一則啟動對主存的讀操作,二則在Cache中按映像方式從中獲取Cache地址,并將主存標記與Cache標記比較:若相同,則訪問命中,從Cache中讀取數(shù)據(jù)。因為Cache速度比主存速度快,所以不等主存讀操作結束,即可繼續(xù)下一次訪存操作;若不相同,則訪問未命中,則從主存中讀取數(shù)據(jù),并考慮是否按某種替換算法更新Cache某頁的內容。

2、寫操作

將數(shù)據(jù)寫入主存有兩種方法,寫回法和些直達法。

寫回法:信息暫時只寫入Cache,并用標志加以注明,直到該頁內容需從Cache中替換出來時,才一次寫入主存。優(yōu)點是操作速度快,缺點是寫回主存前,主存中沒有這些內容,與Cache不一致,易造成錯誤。

寫直達法:信息在寫入Cahce時也同時寫入主存。優(yōu)點是主存與Cache始終保持一致,但速度慢。

Buffer和Cache區(qū)別/CACHE 

緩存(cached)是把讀取過的數(shù)據(jù)保存起來,重新讀取時若命中(找到需要的數(shù)據(jù))就不要去讀硬盤了,若沒有命中就讀硬盤。其中的數(shù)據(jù)會根據(jù)讀取頻率進行組織,把最頻繁讀取的內容放在最容易找到的位置,把不再讀的內容不斷往后排,直至從中刪除! 

 

CACHE內存
緩沖(buffers)是根據(jù)磁盤的讀寫設計的,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反復尋道,從而提高系統(tǒng)性能。linux有一個守護進程定期清空緩沖內容(即寫如磁盤),也可以通過sync命令手動清空緩沖。舉個例子吧:我這里有一個ext2的U盤,我往里面cp一個3M的MP3,但U盤的燈沒有跳動,過了一會兒(或者手動輸入sync)U盤的燈就跳動起來了。卸載設備時會清空緩沖,所以有些時候卸載一個設備時要等上幾秒鐘。  

 

修改/etc/sysctl.conf中的vm.swappiness右邊的數(shù)字可以在下次開機時調節(jié)swap使用策略。該數(shù)字范圍是0~100,數(shù)字越大越傾向于使用swap。默認為60,可以改一下試試。兩者都是RAM中的數(shù)據(jù)。簡單來說,buffer是即將要被寫入磁盤的,而cache是被從磁盤中讀出來的! 

buffer是由各種進程分配的,被用在如輸入隊列等方面,一個簡單的例子如某個進程要求有多個字段讀入,在所有字段被讀入完整之前,進程把先前讀入的字段放在buffer中保存! 

cache經(jīng)常被用在磁盤的I/O請求上,如果有多個進程都要訪問某個文件,于是該文件便被做成cache以方便下次被訪問,這樣可提供系統(tǒng)性能。

相關知識/CACHE 

 通常人們所說的Cache就是指緩存SRAM。 SRAM叫靜態(tài)內存,“靜態(tài)”指的是當我們將一筆數(shù)據(jù)寫入SRAM后,除非重新寫入新數(shù)據(jù)或關閉電源,否則寫入的數(shù)據(jù)保持不變。   

 

CACHE主板圖冊
由于CPU的速度比內存和硬盤的速度要快得多,所以在存取數(shù)據(jù)時會使CPU等待,影響計算機的速度。SRAM的存取速度比其它內存和硬盤都要快,所以它被用作電腦的高速緩存(Cache)。   

 

有了高速緩存,可以先把數(shù)據(jù)預寫到其中,需要時直接從它讀出,這就縮短了CPU的等待時間。高速緩存之所以能提高系統(tǒng)的速度是基于一種統(tǒng)計規(guī)律,主板上的控制系統(tǒng)會自動統(tǒng)計內存中哪些數(shù)據(jù)會被頻繁的使用,就把這些數(shù)據(jù)存在高速緩存中,CPU要訪問這些數(shù)據(jù)時,就會先到Cache中去找,從而提高整體的運行速度。一般說來,256K的高速緩存能使整機速度平均提高10%左右! 

主板上通常都會提供256K到1M的緩存。在CPU內部也有高速緩存,如486CPU有8K的高速緩存,Pentium有16K的高速緩存。Pentium II有32K 一級緩存,AMD K6-2中有64K的一級Cache,AMD K6-3中有64K 的一級 Cache,和256K 的二級Cache,Cyrix MII 中有64K的Cache! 

為了區(qū)分它們,CPU內部的緩存叫內部高速緩存(Internal Cache)或一級高速緩存,主板上的緩存叫外部高速緩存(External Cache)或二級高速緩存。不過現(xiàn)在的Pentium II 的CPU已經(jīng)將主板上的二級緩存封裝在CPU的盒子中,AMD K6-3的CPU內部也集成了256K的二級Cache,對于這類CPU來說,主板上提供的已是三級緩存了。



 

 

 

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

日韩综合国产欧美一区| 欧美精品中文字幕亚洲| 日韩综合国产欧美一区| 亚洲成人精品免费在线观看| 欧美日韩一区二区午夜| 久久亚洲午夜精品毛片| 亚洲欧洲一区二区中文字幕| 激情图日韩精品中文字幕| 久久这里只有精品中文字幕| 日韩人妻免费视频一专区| 日本人妻免费一区二区三区| 国产精品日韩欧美第一页| 不卡免费成人日韩精品| 日韩成人动画在线观看| 国产精品内射婷婷一级二级| 在线免费看国产精品黄片| 老司机精品视频免费入口| 国内自拍偷拍福利视频| 中文字幕人妻综合一区二区| 亚洲综合天堂一二三区| 久热人妻中文字幕一区二区| 国产人妻精品区一区二区三区| 免费午夜福利不卡片在线 视频 | 日本黄色录像韩国黄色录像| 欧美不卡高清一区二区三区| 老熟女露脸一二三四区| 在线观看国产成人av天堂野外| 亚洲欧美日产综合在线网| 日韩亚洲精品国产第二页| 开心久久综合激情五月天| 国产精品人妻熟女毛片av久 | 色老汉在线视频免费亚欧| 欧美国产日本免费不卡| 亚洲黄香蕉视频免费看| 日韩精品日韩激情日韩综合| 欧美91精品国产自产| 伊人久久五月天综合网| 最近日韩在线免费黄片| 视频一区二区 国产精品| 色一情一乱一区二区三区码| 国产精品久久香蕉国产线|