日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

寄存器 和 存储器

發(fā)布時(shí)間:2024/7/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 寄存器 和 存储器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

From:https://blog.csdn.net/menshu1892/article/details/79912090

?

?

一、計(jì)算機(jī)硬件

?

?先說(shuō)內(nèi)核:內(nèi)核是操作系統(tǒng)最基本的部分。它是為眾多應(yīng)用程序提供對(duì)計(jì)算機(jī)硬件的安全訪問(wèn)的一部分軟件,這種訪問(wèn)是有限的,并且內(nèi)核決定一個(gè)程序在什么時(shí)候?qū)δ巢糠钟布僮鞫嚅L(zhǎng)時(shí)間。內(nèi)核的分類(lèi)可分為單內(nèi)核和雙內(nèi)核以及微內(nèi)核。嚴(yán)格地說(shuō),內(nèi)核并不是計(jì)算機(jī)系統(tǒng)中必要的組成部分,附一張內(nèi)核體系結(jié)構(gòu)照片?

可以看到內(nèi)核所處的位置:

?

CPU

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

?

寄存器

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

?

存儲(chǔ)器

存儲(chǔ)器范圍最大,它幾乎涵蓋了所有關(guān)于存儲(chǔ)的范疇。你所說(shuō)的寄存器,內(nèi)存,都是存儲(chǔ)器里面的一種。凡是有存儲(chǔ)能力的硬件,都可以稱(chēng)之為存儲(chǔ)器,這是自然,硬盤(pán)更加明顯了,它歸入外存儲(chǔ)器行列,由此可見(jiàn)。

?

內(nèi)存

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

?

緩存?cache

緩存就是數(shù)據(jù)交換的緩沖區(qū)(稱(chēng)作Cache),當(dāng)某一硬件要讀取數(shù)據(jù)時(shí),會(huì)首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從內(nèi)存中找。由于緩存的運(yùn)行速度比內(nèi)存快得多,故緩存的作用就是幫助硬件更快地運(yùn)行。因?yàn)榫彺嫱褂玫氖荝AM(斷電即掉的非永久儲(chǔ)存),所以在用完后還是會(huì)把文件送到硬盤(pán)等存儲(chǔ)器里永久存儲(chǔ)。電腦里最大的緩存就是內(nèi)存條了,最快的是CPU上鑲的L1和L2緩存,顯卡的顯存是給顯卡運(yùn)算芯片用的緩存,硬盤(pán)上也有16M或者32M的緩存。CACHE是在CPU中速度非常塊,而容量卻很小的一種存儲(chǔ)器,它是計(jì)算機(jī)存儲(chǔ)器中最強(qiáng)悍的存儲(chǔ)器。由于技術(shù)限制,容量很難提升。

?

?

二、主要區(qū)別

?

1、寄存器存在于CPU中,速度很快,數(shù)目有限;?
? ? ? ? 存儲(chǔ)器就是內(nèi)存,速度稍慢,但數(shù)量很大;?
? ? ? ? 計(jì)算機(jī)做運(yùn)算時(shí),必須將數(shù)據(jù)讀入寄存器才能運(yùn)算。?
2、存儲(chǔ)器包括寄存器,?
? ? ? ? 存儲(chǔ)器有ROM和RAM

?

?

三、寄存器

?

簡(jiǎn)介

寄存器是中央處理器內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來(lái)暫存指令、數(shù)據(jù)和地址。在中央處理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序計(jì)數(shù)器(PC)。在中央處理器的算術(shù)及邏輯部件中,存器有累加器(ACC)。?
寄存器的基本單元是 D觸發(fā)器,?
按照其用途分為基本寄存器和移位寄存器?
基本寄存器是由 D觸發(fā)器組成,在 CP 脈沖作用下,每個(gè) D觸發(fā)器能夠寄存一位二進(jìn)制碼。在 D=0 時(shí),寄存器儲(chǔ)存為 0,在 D=1 時(shí),寄存器儲(chǔ)存為 1。在低電平為 0、高電平為 1 時(shí),需將信號(hào)源與 D 間連接一反相器,這樣就可以完成對(duì)數(shù)據(jù)的儲(chǔ)存。?
需要強(qiáng)調(diào)的是,目前大型數(shù)字系統(tǒng)都是基于時(shí)鐘運(yùn)作的,其中寄存器一般是在時(shí)鐘的邊緣被觸發(fā)的,基于電平觸發(fā)的已較少使用。(通常說(shuō)的CPU的頻率就是指數(shù)字集成電路的時(shí)鐘頻率)?
移位寄存器按照移位方向可以分為單向移位寄存器和雙向移位寄存器。單向移位寄存器是由多個(gè) D 觸發(fā)器串接而成,在串口 Di 輸入需要儲(chǔ)存的數(shù)據(jù),觸發(fā)器 FF0 就能夠儲(chǔ)存當(dāng)前需要儲(chǔ)存數(shù)據(jù),在 CP 發(fā)出一次時(shí)鐘控制脈沖時(shí),串口 Di 同時(shí)輸入第二個(gè)需要儲(chǔ)存是的數(shù)據(jù),而第一個(gè)數(shù)據(jù)則儲(chǔ)存到觸發(fā)器 FF1 中。雙向移位寄存器按圖中方式排列,調(diào)換連接端順序,可以控制寄存器向左移位,增加控制電路可以使寄存器右移,這樣構(gòu)成雙向移位寄存器。

?

特點(diǎn)

寄存器又分為內(nèi)部寄存器與外部寄存器,所謂內(nèi)部寄存器,其實(shí)也是一些小的存儲(chǔ)單元,也能存儲(chǔ)數(shù)據(jù)。但同存儲(chǔ)器相比,寄存器又有自己獨(dú)有的特點(diǎn):?

  • ①寄存器位于CPU內(nèi)部,數(shù)量很少,僅十四個(gè)?
  • ②寄存器所能存儲(chǔ)的數(shù)據(jù)不一定是8bit,有一些寄存器可以存儲(chǔ)16bit數(shù)據(jù),對(duì)于386/486處理器中的一些寄存器則能存儲(chǔ)32bit數(shù)據(jù)?
  • ③每個(gè)內(nèi)部寄存器都有一個(gè)名字,而沒(méi)有類(lèi)似存儲(chǔ)器的地址編號(hào)。

?

用途

  • 1.可將寄存器內(nèi)的數(shù)據(jù)執(zhí)行算術(shù)及邏輯運(yùn)算?
  • 2.存于寄存器內(nèi)的地址可用來(lái)指向內(nèi)存的某個(gè)位置,即尋址?
  • 3.可以用來(lái)讀寫(xiě)數(shù)據(jù)到電腦的周邊設(shè)備。

?

?

四、存儲(chǔ)器

?

存儲(chǔ)器簡(jiǎn)介

構(gòu)成存儲(chǔ)器的存儲(chǔ)介質(zhì),存儲(chǔ)元,它可存儲(chǔ)一個(gè)二進(jìn)制代碼。由若干個(gè)存儲(chǔ)元組成一個(gè)存儲(chǔ)單元,然后再由許多存儲(chǔ)單元組成一個(gè)存儲(chǔ)器。一個(gè)存儲(chǔ)器包含許多存儲(chǔ)單元,每個(gè)存儲(chǔ)單元可存放一個(gè)字節(jié)(按字節(jié)編址)。每個(gè)存儲(chǔ)單元的位置都有一個(gè)編號(hào),即地址,一般用十六進(jìn)制表示。一個(gè)存儲(chǔ)器中所有存儲(chǔ)單元可存放數(shù)據(jù)的總和稱(chēng)為它的存儲(chǔ)容量。假設(shè)一個(gè)存儲(chǔ)器的地址碼由20位二進(jìn)制數(shù)(即5位十六進(jìn)制數(shù))組成,則可表示2的20次方,即1M個(gè)存儲(chǔ)單元地址。每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié),則該存儲(chǔ)器的存儲(chǔ)容量為1MB。

?

ROM、RAM的區(qū)別

ROM(只讀存儲(chǔ)器或者固化存儲(chǔ)器)RAM(隨機(jī)存取存儲(chǔ)器)ROM和RAM指的都是半導(dǎo)體存儲(chǔ)器,ROM是Read Only Memory的縮寫(xiě),RAM是Random Access Memory的縮寫(xiě)。ROM在系統(tǒng)停止供電的時(shí)候仍然可以保持?jǐn)?shù)據(jù),而RAM通常都是在掉電之后就丟失數(shù)據(jù),典型的RAM就是計(jì)算機(jī)的內(nèi)存。 RAM有兩大類(lèi),一種稱(chēng)為靜態(tài)RAM(Static RAM/SRAM),當(dāng)數(shù)據(jù)被存入其中后不會(huì)消失。SRAM速度非常快,是目前讀寫(xiě)最快的存儲(chǔ)設(shè)備了。當(dāng)這個(gè)SRAM 單元被賦予0 或者1 的狀態(tài)之后,它會(huì)保持這個(gè)狀態(tài)直到下次被賦予新的狀態(tài)或者斷電之后才會(huì)更改或者消失。但是存儲(chǔ)1bit 的信息需要4-6 只晶體管。因此它也非常昂貴,所以只在要求很苛刻的地方使用,譬如CPU的一級(jí)緩沖,二級(jí)緩沖。另一種稱(chēng)為動(dòng)態(tài)RAM(Dynamic RAM/DRAM),DRAM 必須在一定的時(shí)間內(nèi)不停的刷新才能保持其中存儲(chǔ)的數(shù)據(jù)。DRAM 只要1 只晶體管就可以實(shí)現(xiàn)。DRAM保留數(shù)據(jù)的時(shí)間很短,速度也比SRAM慢,不過(guò)它還是比任何的ROM都要快,但從價(jià)格上來(lái)說(shuō)DRAM相比SRAM要便宜很 多,計(jì)算機(jī)內(nèi)存就是DRAM的。 DRAM分為很多種,常見(jiàn)的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,這里介紹其中的一種DDR RAM。DDR RAM(Date-Rate RAM)也稱(chēng)作DDR SDRAM,這種改進(jìn)型的RAM和SDRAM是基本一樣的,不同之處在于它可以在一個(gè)時(shí)鐘讀寫(xiě)兩次數(shù)據(jù),這樣就使得數(shù)據(jù)傳輸速度加倍了。這是目前電腦中用 得最多的內(nèi)存,而且它有著成本優(yōu)勢(shì),事實(shí)上擊敗了Intel的另外一種內(nèi)存標(biāo)準(zhǔn)-Rambus DRAM。在很多高端的顯卡上,也配備了高速DDR RAM來(lái)提高帶寬,這可以大幅度提高3D加速卡的像素渲染能力。?
ROM也有很多種,PROM是可編程的ROM,PROM和EPROM(可擦除可編程ROM)兩者區(qū)別是,PROM是一次性的,也就是軟件灌入后,就無(wú)法修 改了,這種是早期的產(chǎn)品,現(xiàn)在已經(jīng)不可能使用了,而EPROM是通過(guò)紫外光的照射擦出原先的程序,是一種通用的存儲(chǔ)器。另外一種EEPROM是通過(guò)電子擦出,價(jià)格很高,寫(xiě)入時(shí)間很長(zhǎng),寫(xiě)入很慢。 最初,把只能讀的存儲(chǔ)器叫做ROM(Read Only Memory),并且掉電后數(shù)據(jù)不會(huì)丟失。由于不能改寫(xiě),因而使用起來(lái)很不方便。隨著技術(shù)的進(jìn)步,在ROM中使用一些新技術(shù),就可以使它具有可以編程的功能。比較早的是熔絲型的可編程ROM,由于是通過(guò)熔斷熔絲來(lái)編程的,所以這類(lèi)ROM編程后,就不能再寫(xiě)了,是一次性的(OTP)。后來(lái)又出現(xiàn)了EPROM,是通過(guò)紫外線來(lái)擦除的,并且通過(guò)高壓來(lái)編程,這類(lèi)ROM上面一般有一個(gè)透明的石英玻璃窗,看上去挺漂亮的,它就是用來(lái)給紫外線照射的。后來(lái)又出現(xiàn)了EEPROM,不用紫外線照射就可以擦除,因而可以直接在電路中編程。另外還有FLASH ROM,又可分為NOR FLASH和NAND FLASH。FLASH ROM一般有一個(gè)特點(diǎn),就是寫(xiě)數(shù)據(jù)時(shí),可以將1改為0,而不能將0改為1,因而寫(xiě)數(shù)據(jù)前需要擦除,擦除時(shí)將所有數(shù)據(jù)置1。之所以依然叫做ROM,歸納一下,大概有幾個(gè)原因:?

  • ①不能像RAM那樣快速的寫(xiě);?
  • ②可能需要特殊的擦寫(xiě)電壓;?
  • ③可能需要特殊的擦寫(xiě)時(shí)序;?
  • ④可能需要在寫(xiě)之前進(jìn)行擦除操作;?
  • ⑤擦寫(xiě)次數(shù)有限,不像RAM那樣可以隨意寫(xiě)而不損壞;?
  • ⑥掉電后數(shù)據(jù)不會(huì)丟失;?

舉個(gè)例子,手機(jī)軟件一般放在EEPROM中,我們打電話,有些最后撥打的號(hào)碼,暫時(shí)是存在SRAM中的,不是馬上寫(xiě)入通過(guò)記錄(通話記錄保存在EEPROM中),因?yàn)楫?dāng)時(shí)有很重要工作(通話)要做,如果寫(xiě)入,漫長(zhǎng)的等待是讓用戶(hù)忍無(wú)可忍的。?
FLASH存儲(chǔ)器又稱(chēng)閃存,它結(jié)合了ROM和RAM的長(zhǎng)處,不僅具備電子可擦出可編程(EEPROM)的性能,還不會(huì)斷電丟失數(shù)據(jù)同時(shí)可以快速讀取數(shù)據(jù) (NVRAM的優(yōu)勢(shì)),U盤(pán)和MP3里用的就是這種存儲(chǔ)器。在過(guò)去的20年里,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲(chǔ)設(shè)備,然而近年來(lái) Flash全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,用作存儲(chǔ)Bootloader以及操作系統(tǒng)或者程序代碼或者直接當(dāng)硬盤(pán)使用(U盤(pán))。?
目前Flash主要有兩種NOR Flash和NADN Flash。NOR Flash的讀取和我們常見(jiàn)的SDRAM的讀取是一樣,用戶(hù)可以直接運(yùn)行裝載在NOR FLASH里面的代碼,這樣可以減少SRAM的容量從而節(jié)約了成本。NAND Flash沒(méi)有采取內(nèi)存的隨機(jī)讀取技術(shù),它的讀取是以一次讀取一快的形式來(lái)進(jìn)行的,通常是一次讀取512個(gè)字節(jié),采用這種技術(shù)的Flash比較廉價(jià)。用戶(hù) 不能直接運(yùn)行NAND Flash上的代碼,因此好多使用NAND Flash的開(kāi)發(fā)板除了使用NAND Flah以外,還作上了一塊小的NOR Flash來(lái)運(yùn)行啟動(dòng)代碼。 一般小容量的用NOR Flash,因?yàn)槠渥x取速度快,多用來(lái)存儲(chǔ)操作系統(tǒng)等重要信息,而大容量的用NAND FLASH,最常見(jiàn)的NAND FLASH應(yīng)用是嵌入式系統(tǒng)采用的DOC(Disk On Chip)和我們通常用的“閃盤(pán)”,可以在線擦除。

?

?

五、CPU位數(shù)、操作系統(tǒng)位數(shù)、指令集、寄存器位數(shù)、機(jī)器字長(zhǎng)等

?

CPU位數(shù) = CPU中寄存器的位數(shù) = CPU能夠一次并行處理的數(shù)據(jù)寬度 = 數(shù)據(jù)總線寬度

CPU為了實(shí)現(xiàn)其功能一般設(shè)計(jì)了指令集(如:IA32指令集和x86-64指令集等),即是CPU的全部指令,這就是機(jī)器語(yǔ)言。計(jì)算機(jī)的所有功能都是基于CPU的指令集。指令集和CPU的位數(shù)是有聯(lián)系 的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,這是為了向上兼容。

注意:x86 又叫 IA32,即 Intel Architecture 32(Intel32位架構(gòu))

操作系統(tǒng)位數(shù) = 其所依賴(lài)的指令集位數(shù) <= CPU位數(shù)

機(jī)器字長(zhǎng) = 整數(shù)和指針數(shù)據(jù)的標(biāo)稱(chēng)大小(字長(zhǎng)決定的最重要的參數(shù)就是虛擬地址空間的最大大小)

CPU位數(shù)與操作系統(tǒng)位數(shù),這二者有區(qū)別也有聯(lián)系,操作系統(tǒng)位數(shù)的概念是基于CPU的位數(shù)的。 CPU的位數(shù)是指CPU能一次同時(shí)寄存和處理二進(jìn)制數(shù)碼的位數(shù),這和CPU中寄存器的位數(shù)對(duì)應(yīng)。 操作系統(tǒng)的位數(shù)是說(shuō)其所依賴(lài)的指令集的位數(shù)。計(jì)算機(jī)系統(tǒng)一般都應(yīng)有向上兼容性,所以也可有64位CPU上運(yùn)行32位操作系統(tǒng)、32位CPU上運(yùn)行16位操作系統(tǒng)的情況。操作系統(tǒng)位數(shù)應(yīng)該是根據(jù)指針類(lèi)型的位數(shù)來(lái)定的。整數(shù)類(lèi)型不一定跟位數(shù)相等,CPU位數(shù)準(zhǔn)確地說(shuō)應(yīng)該是CPU一次能夠并行處理的數(shù)據(jù)寬度,一般就是指數(shù)據(jù)總線寬度。?
附:?
64位CPU如:AMD Athlon64 、Intel Pentium 4 F?
32位CPU如:Intel 80386DX 到 Intel Pentium III 和部分Intel Pentium 4?
16位CPU如:Intel 8086、Intel 80286?
64位操作系統(tǒng)如:Windows XP Professional x64和Windows Server 2003 x64?
32位操作系統(tǒng)如:Windows95、Windows98、Windows NT、Windows 2000、Windows XP?
16位操作系統(tǒng)如:DOS?
Windows1.0到3.2是運(yùn)行在DOS上的,不能算是獨(dú)立的操作系統(tǒng)。
?

?

?

總結(jié)

以上是生活随笔為你收集整理的寄存器 和 存储器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。