精华内容
下载资源
问答
  • 设主存容量为1MB,外存容量为400MB,计算机系统的地址寄存器有32位,那么虚拟存储器的最大容量是( D ) A. 1MB B. 401MB C. 1MB+232MB D. 232B 虚拟存储器的最大容量是由计算机的地址结构决定的,与主存容量和外存...

    设主存容量为1MB,外存容量为400MB,计算机系统的地址寄存器有32位,那么虚拟存储器的最大容量是( D )
    A. 1MB
    B. 401MB
    C. 1MB+232MB
    D. 232B

    虚拟存储器的最大容量是由计算机的地址结构决定的,与主存容量和外存容量没有必然的联系,其虚拟地址空间为232B

    展开全文
  • 寄存器和存储器

    2020-06-05 23:49:56
    一个存储器中所有存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储...

    硬件

    在这里插入图片描述

    内核

    先说内核:内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分,附一张内核体系结构照片

    在这里插入图片描述

    CPU

    中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

    寄存器

    寄存器是中央处理器内的组成部份。它跟CPU有关。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。

    存储器

    存储器范围最大,它几乎涵盖了所有关于存储的范畴。你所说的寄存器,内存,都是存储器里面的一种。凡是有存储能力的硬件,都可以称之为存储器,这是自然,硬盘更加明显了,它归入外存储器行列,由此可见。

    内存

    内存既专业名上的内存储器,它不是个什么神秘的东西,它也只是存储器中的沧海一粟,它包涵的范围也很大,一般分为只读存储器(ROM)和随机存储器(RAM),以及最强悍的高速缓冲存储器(CACHE),只读存储器应用广泛,它通常是一块在硬件上集成的可读芯片,作用是识别与控制硬件,它的特点是只可读取,不能写入。随机存储器的特点是可读可写,断电后一切数据都消失,我们所说的内存条就是指它了。

    缓存CACHE

    缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在用完后还是会把文件送到硬盘等存储器里永久存储。电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给显卡运算芯片用的缓存,硬盘上也有16M或者32M的缓存。CACHE是在CPU中速度非常块,而容量却很小的一种存储器,它是计算机存储器中最强悍的存储器。由于技术限制,容量很难提升。

    区别

    主要区别
    1、寄存器存在于CPU中,速度很快,数目有限;
    存储器就是内存,速度稍慢,但数量很大;
    计算机做运算时,必须将数据读入寄存器才能运算。
    2、存储器包括寄存器, 存储器有ROM和RAM

    寄存器

    简介

    寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)。
    寄存器的基本单元是 D触发器,

    按照其用途分为基本寄存器移位寄存器
    基本寄存器是由 D触发器组成,在 CP 脉冲作用下,每个 D触发器能够寄存一位二进制码。在 D=0 时,寄存器储存为 0,在 D=1 时,寄存器储存为 1。在低电平为 0、高电平为 1 时,需将信号源与 D 间连接一反相器,这样就可以完成对数据的储存。
    需要强调的是,目前大型数字系统都是基于时钟运作的,其中寄存器一般是在时钟的边缘被触发的,基于电平触发的已较少使用。(通常说的CPU的频率就是指数字集成电路的时钟频率)

    移位寄存器按照移位方向可以分为单向移位寄存器双向移位寄存器。单向移位寄存器是由多个 D 触发器串接而成,在串口 Di 输入需要储存的数据,触发器 FF0 就能够储存当前需要储存数据,在 CP 发出一次时钟控制脉冲时,串口 Di 同时输入第二个需要储存是的数据,而第一个数据则储存到触发器 FF1 中。双向移位寄存器按图中方式排列,调换连接端顺序,可以控制寄存器向左移位,增加控制电路可以使寄存器右移,这样构成双向移位寄存器。

    特点

    寄存器又分为内部寄存器与外部寄存器,所谓内部寄存器,其实也是一些小的存储单元,也能存储数据。但同存储器相比,寄存器又有自己独有的特点:
    ①寄存器位于CPU内部,数量很少,仅十四个
    ②寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据
    ③每个内部寄存器都有一个名字,而没有类似存储器的地址编号。

    用途

    1.可将寄存器内的数据执行算术及逻辑运算
    2.存于寄存器内的地址可用来指向内存的某个位置,即寻址
    3.可以用来读写数据到电脑的周边设备。

    存储器

    存储器简介

    构成存储器的存储介质,存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。一个存储器包含许多存储单元,每个存储单元可存放一个字节(按字节编址)。每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。一个存储器中所有存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储容量为1MB。

    ROM、RAM的区别

    ROM(只读存储器或者固化存储器)RAM(随机存取存储器)ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RAM有两大类,一种称为静态RAM(Static RAM/SRAM),当数据被存入其中后不会消失。SRAM速度非常快,是目前读写最快的存储设备了。当这个SRAM 单元被赋予0 或者1 的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。但是存储1bit 的信息需要4-6 只晶体管。因此它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM 必须在一定的时间内不停的刷新才能保持其中存储的数据。DRAM 只要1 只晶体管就可以实现。DRAM保留数据的时间很短,速度也比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是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用 得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

    ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修 改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。 最初,把只能读的存储器叫做ROM(Read Only Memory),并且掉电后数据不会丢失。由于不能改写,因而使用起来很不方便。随着技术的进步,在ROM中使用一些新技术,就可以使它具有可以编程的功能。比较早的是熔丝型的可编程ROM,由于是通过熔断熔丝来编程的,所以这类ROM编程后,就不能再写了,是一次性的(OTP)。后来又出现了EPROM,是通过紫外线来擦除的,并且通过高压来编程,这类ROM上面一般有一个透明的石英玻璃窗,看上去挺漂亮的,它就是用来给紫外线照射的。后来又出现了EEPROM,不用紫外线照射就可以擦除,因而可以直接在电路中编程。另外还有FLASH ROM,又可分为NOR FLASH和NAND FLASH。FLASH ROM一般有一个特点,就是写数据时,可以将1改为0,而不能将0改为1,因而写数据前需要擦除,擦除时将所有数据置1。

    之所以依然叫做ROM,归纳一下,大概有几个原因:
    ①不能像RAM那样快速的写;
    ②可能需要特殊的擦写电压;
    ③可能需要特殊的擦写时序;
    ④可能需要在写之前进行擦除操作;
    ⑤擦写次数有限,不像RAM那样可以随意写而不损坏;
    ⑥掉电后数据不会丢失;

    举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
    FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据 (NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
    目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户 不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。 一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。

    CPU位数、操作系统位数、指令集、寄存器位数、机器字长等

    CPU位数 = CPU中寄存器的位数 = CPU能够一次并行处理的数据宽度 = 数据总线宽度

    CPU为了实现其功能一般设计了指令集(如:IA32指令集和x86-64指令集等),即是CPU的全部指令,这就是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系 的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,这是为了向上兼容。

    注意:x86 又叫 IA32,即 Intel Architecture 32(Intel32位架构)

    操作系统位数 = 其所依赖的指令集位数 <= CPU位数

    机器字长 = 整数和指针数据的标称大小(字长决定的最重要的参数就是虚拟地址空间的最大大小)

    CPU位数与操作系统位数,这二者有区别也有联系,操作系统位数的概念是基于CPU的位数的。 CPU的位数是指CPU能一次同时寄存和处理二进制数码的位数,这和CPU中寄存器的位数对应。 操作系统的位数是说其所依赖的指令集的位数。计算机系统一般都应有向上兼容性,所以也可有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况。操作系统位数应该是根据指针类型的位数来定的。整数类型不一定跟位数相等,CPU位数准确地说应该是CPU一次能够并行处理的数据宽度,一般就是指数据总线宽度。
    附:
    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位操作系统如:Windows XP Professional x64和Windows Server 2003 x64
    32位操作系统如:Windows95、Windows98、Windows NT、Windows 2000、Windows XP
    16位操作系统如:DOS
    Windows1.0到3.2是运行在DOS上的,不能算是独立的操作系统。

    展开全文
  • STM32寄存器的简介、地址查找,与直接操作寄存器

    万次阅读 多人点赞 2019-01-11 11:15:15
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。  简单来说,寄存器就是存放东西的东西。从名字来看,跟火车站寄存行李的地方好像是有关系的。只不过火车站行李寄存处,存放的行李;寄存器...

    什么是寄存器

    提到单片机,就不得不提到寄存器。根据百度百科介绍,寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址
    举个例子
      简单来说,寄存器就是存放东西的东西。从名字来看,跟火车站寄存行李的地方好像是有关系的。只不过火车站行李寄存处,存放的行李;寄存器可能存放的是指令、数据或地址。
      存放数据的寄存器是最好理解的,如果你需要读取一个数据,直接到这个寄存器所在的地方来问问他,数据是多少就行了。问寄存器这个动作,叫做访问寄存器。不同的数据会存放在不同的寄存器,例如引脚PA2与PB8的高低电平数据(1或0)肯定放在不同的寄存器里,那么怎么区分不同的寄存器呢?通过地址,不同的寄存器有不同的地址,就像老张行李寄存处在101号店铺,老王行李寄存处在258号店铺。
      指令、地址寄存器与数据寄存器类似,里边存放的都是0和1,毕竟单片机也只认识机器码,机器码都是0或1,只是特别的规定下,数据寄存器里面存放的0和1表示数据,指令寄存器里存放的表示指令。
      个人理解:给CPU存储东西的地方。等CPU转到寄存器这个地方的时候,就拿出寄存器里存放的东西,或是根据寄存器里的命令做一些事情。比如厨房就是个寄存器,负责做饭。仓库也是个寄存器,负责存东西。需要某些功能的时候,就要操作某个寄存器。可以把寄存器类比为,有特殊功能的地方,既然是个地方当然就有地址了,所以,可以把寄存器想象为特殊的地址。

    怎么找到某个寄存器的地址?查看数据手册。

    手册中没有直接给出所有的寄存器的地址,需要读者稍加计算。STM32给不同的寄存器分配了不同的地址,有点像划分了片区。在《STM32中文参考手册_V10》的第28页,有不同寄存器的地址范围。
      现在,假如我们想读取PB3引脚的电平,该怎么找到相关的寄存器?
    第一步,找到GPIOB的基地址
      也就是找到GPIOB的小区。结论是,所有GPIOB相关的寄存器,都住在0x4001 0C00到0x4001 0FFF范围内。
    GPIOB的地址
    第二步,找到端口输入寄存器的地址偏移
      找到存储数据的那个屋子,结论是0x4001 0C00+8 = 0x4001 0C08
    GPIOB_IDR的地址偏移
    第三步,找到知道数据的那个人
      PB3的数据位于从右往左数第4个。
    引脚PB3的数据
      而这个寄存器的位数是32位(虽然高16位没有用到),这就是32位的单片机的意思。每个寄存器都占据4字节,32位。而CPU的总线一次可以操作32位,所以比8位单片机厉害一点。
      经过这三步查找,我们可以做出以下结论:
    PB3的输入数据位于0x4001 0C08这个地址上,这个地址上存放数据的右起第4个位就是PB3引脚对应的高低电平。
      我们可以简单粗暴地直接访问这个地址:

     unsigned int *pGPIOB_IDR = (unsigned int *)0x40010C08;
     unsigned char PB3 = *pGPIOB_IDR & 0x8;//取出从右往左数的第4位
    

    直接访问的操作并不好用,每操作一个寄存器就必须去查看数据手册,然后找找这个寄存器的地址。
      意法半导体公司为了方便大家使用,就把这些寄存器都起了一目了然的名字,把寄存器与地址映射关系放在他们提供的头文件里。这个文件就是stm32f10x.h。

    直接操作寄存器来点亮LED。

    我的板子对应的LED是PB8。

    • 首先要配置时钟使能。

    为什么配置时钟?为了省电,默认的时钟都是关闭的。配置STM32的任何资源前,都必须首先使能时钟。
      配置哪个时钟?
    时钟的信息在参考手册里边,参考手册十分巨大,不用通读,就像一个字典,需要什么查什么。
      参考手册,搜索"时钟",在表1里可以看到。
    时钟控制名字叫做RCC,属于AHB总线。GPIOB属于APB2。
    在这里插入图片描述
      下图系统结构可以看到时钟的从属关系,此图位于手册P25页,十分重要。可以看出AHB总线包含RCC时钟控制,GPIO是属于APB2的。
    在这里插入图片描述
      我们已经知道,GPIO端口B的地址从0x4001 0C00开始。接下来只寻找时钟使能寄存器的地址:
      复位和时钟控制RCC的地址从0x4002 1000开始;
      可以在6.3.7小节找到APB2外设时钟使能寄存器(RCC_APB2ENR),偏移地址是0x18,所以APB2的地址就是0x4002 1018。
      看手册RCC_APB2ENR,位3是IOPBEN,名字是IO端口B时钟使能,就是我们想要的。把RCC_APB2ENR的位3赋值为1,就是开启GPIOB时钟。
    在这里插入图片描述

    • 配置为通用输出

    既然叫做IO,那么肯定就是可以输入,可以输出,到底是输入还是输出呢?
      控制LED需要输出高电平或是低电平,所以需要配置为输出。
      由于STM32的每个IO都需要4个位来配置,所以一个32位的寄存器最大只能配置8个IO(32位的单片机的寄存器就是32位的)。STM32中,用端口配置低寄存器(GPIOx_CRL)来配置引脚Px0-Px7, 用端口配置高寄存器(GPIOx_CRH)来配置引脚Px8-Px15。
      配置引脚PB8,使用的寄存器是GPIOB_CRH。下面我们来寻找这个寄存器的地址。
    在这里插入图片描述
      关于此寄存器的说明位于8.2.2小节。先看标题GPIOx,表示不管是PA,PB还是PE,都能用。
      偏移地址是0x04,意思是在基地址的基础上再加0x04,所以,对于GPIOB来说就是0x4001 0c04。如果配置PB0-PB7,那么需要的寄存器是低位的寄存器GPIOB_CRL,它的地址是0x4001 0c00。我们需要配置的寄存器是GPIOB_CRH。
      找到需要操作的寄存器后,把它配置为通用输出。
      复位值是0x4444 4444,并不是0x0000 0000。所谓的复位值,就是指如果没有操作这个寄存器时,寄存器存放的默认值。复位值按位拆分0x4 = 0b0100,0x表示16进制,0b表示二进制,也就是默认CNF 01,MODE 00,是浮空输入。
      我们需要的是输出高低电平,所以要设置为输出。输出模式又有好几种输出:
    在这里插入图片描述
      推挽输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。
      开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。
      开漏是需要外接上拉电阻才可以输出高电平的,这里并不适合。所以需要设置为推挽输出。
      功能是否是复用呢?复用的意思是有别的功能在这个脚上,比如USB,CAN,串口等,所以这些个脚就可能有多个功能。暂时讲多了反而会迷惑,等用到了这些功能再讲解,我直接告诉大家,PB8没有复用。
      所以配置为输出模式,通用推挽输出。速度暂时不关注,随便填写一个50MHz吧,其它速度当然也可以。所以设置GPIOB_CRH的MODE8与CNF8为0b0011,即0x3。此寄存器中其它的位暂时不做修改,使用默认值,也就是GPIOB_CRH设置为:0x4444 4443。

    • 点亮LED需要输出低电平

    在单片机的编程中,要想做某件事,必须寻找相应的寄存器。在8.2.4小节,可以找到端口输出数据寄存器,就是我们需要的。我们需要输出0。但是中文手册有一个小小的BUG,0x0C写成了0Ch,可以参考英文原版。得知地址的偏移是0x0C,所以这个数据寄存器的地址就是0x4001 0C0C,把第8位写为0就行。默认就是0,但是也得学一下怎么写,万一是高电平点亮呢。
    在这里插入图片描述
    在这里插入图片描述

    • 使用直接赋值的方式写寄存器的地址

    在搞清楚我们要用的几个寄存器的地址,以及寄存器中需要装填的数值以后,现在用一个简单粗暴的方法来操作这些寄存器——直接操作。(注意,这段代码不是实用的代码,只是为了写出一个最简单的LED,有些部分是不可取的。)将main函数修改为:

        int main(void)
        {
            unsigned int *pRCC_APB2ENR = (unsigned int *)0x40021018;
            unsigned int *pGPIOB_CRH = (unsigned int *)0x40010c04;
            unsigned int *pGPIOB_ODR = (unsigned int *)0x40010c0c;
            *pRCC_APB2ENR = 0x00000008;
            *pGPIOB_CRH = 0x44444443;
            *pGPIOB_ODR = 0x00000000;
             return 0;             
        }
    

    C语言总是从main函数开始执行。
      定义几个指针,指向刚刚看到的地址。对于编译器来说,它并不知道0x40021018代表的是数据还是指针,所以用(unsigned int *)作强制的类型转换,告诉编译器0x40021018是个指针。指针可以理解为地址。操作指针,把这些地址存放的值修改。
      最后的return,代表main函数结束。

    总结

    我们写了一段另类的代码,直接操作寄存器的地址,就是想得到这么一个结论:不论代码怎么写,不论是寄存器,库函数,还是其他的操作系统,要在STM32F103这个单片机点亮LED灯,肯定需要把时钟和GPIO这几个相关的特殊地址,进行赋值或修改数值的操作。有点像打篮球,不论进攻时有怎样花哨的运球与传切配合,最后都要完成把球放入篮筐的动作,才能得分。
    在这里插入图片描述

    展开全文
  • 在这一堆寄存器里,最大的就是AVX/AVX2寄存器,但这个是用来做特殊计算的。通用寄存器则非常少,64位下通用寄存器也就是R0~R15,其余的寄存器大部分也用不上。 cache的大小跟寄存器个数没太大关系。 一级缓存...

            寄存器个数,现在Intel的最新一代CPU里大概有上百个寄存器,扣除重复使用的相同空间的寄存器,寄存器的大小大概是2KB多,具体的寄存器如下图:

            在这一堆寄存器里,最大的就是AVX/AVX2寄存器,但这个是用来做特殊计算的。通用寄存器则非常少,64位下通用寄存器也就是R0~R15,其余的寄存器大部分也用不上。

            cache的大小跟寄存器个数没太大关系。

            一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。

            CPU产品中,一级缓存的容量基本在4KB到64KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。

     

    展开全文
  • 寄存器 和 存储器

    2019-08-10 17:55:14
    一个存储器中所有存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每个存储单元存放一个字节,则该存储器的存储...
  • 最大容量为64KB push、pop等指令在执行的时候只修改SP,所以栈顶的变化范围是0~FFFFH,从栈空的时候SP=0,一直压栈,直到栈满的时候SP=0;如果再次压栈,栈顶将环绕,覆盖了原来栈中的内容。 段的综述 ...
  • 计算机组成原理-基本组成

    千次阅读 多人点赞 2019-09-18 15:12:34
    以及更大容量的外部存储,在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。   最后就是各种输入和输出设备 3.2 图灵与冯·诺依曼体系结构   两者有交叉但是不同,根据了解整理如下: 图灵机是一种思想...
  • 【数据库学习】数据库总结

    万次阅读 多人点赞 2018-07-26 13:26:41
    数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。 常见数据库管理系统有:Access、mysql、sql server 2)特点 ①数据库数据特点 永久存储、有组织、可共享。 (数据的最小存取...
  • 寄存器

    千次阅读 2018-08-08 18:37:35
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器有累加器(ACC)  2.包括...
  •  一个计算机包含多种存储器比如:寄存器、高速缓存、内存、硬盘、光盘等,为啥有这么多种存储方式,对于不太了解的人,总是觉得云里雾里的,搞不明白原因,直接弄一个存储器不就得了? 计算机主要的功能就是运算...
  • 计算机组成原理期末复习【超实用】

    万次阅读 多人点赞 2019-08-14 00:07:42
    P14-16 MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数。 MDR是存储器数据寄存器,用来存放从存储体某单元取出or存入的代码,其位数与存储字长相等。 如4K × 8位的存储芯片,有...
  • 存储器容量计算及相关概念

    千次阅读 2020-03-06 15:09:24
    百度百科:存储容量是指存储器可以容纳的二进制信息量,用存储器中存储地址寄存器MAR的编址数与存储字位数的乘积表示。 通俗讲:存储容量是指主存能存放二进制代码的总位数。 存储容量的计算公式: 按位计算 (b) :...
  • 寄存器详解

    2014-11-12 13:32:25
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 ...
  • 存储容量相关概念 存储容量 = 存储单元个数 ×\times× 存储字长 存储单元个数:由MAR(主存地址寄存器)的(二进制)位数决定 存储字长:由MDR(主存数据寄存器)的位数决定,表示一个MDR能存储的最大二进制位数 若...
  • CPU/寄存器/内存  因为要了解多线程,自然少不了一些硬件知识的科普,我没有系统学习过硬件知识,仅仅是从书上以及网络上看来的,如果有错误请指出来。  CPU,全名Central Processing Unit(中央处理器)。这是...
  • 机械硬盘是通过磁头和磁盘等机械设备构建的存储设备 固态硬盘 固态硬盘是通过固态的电子存储芯片阵列制成的硬盘,包括主控芯片,闪存颗粒,缓存颗粒 主控芯片:合理调配数据在各个闪存芯片上的负荷,承担闪存芯片和...
  • 但同存储器相比,寄存器又有自己独有的特点: ①寄存器位于CPU内部,数量很少,仅十四个 ②寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据 ...
  • DDR,DDR2,DDR3,DDR4,LPDDR区别

    万次阅读 多人点赞 2019-12-22 22:47:42
    由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由S-AMP负责,一个存储体对应一个S- AMP通道。但它要有一个准备时间才能保证信号的发送强度(事前还要...
  • 《单片机原理及应用》复习提纲

    万次阅读 多人点赞 2015-12-14 10:42:02
    读取指令:在CPU的控制下,由内部程序计数器(PC)形成指令存储地址,并从该地址中读取指令后送到指令寄存器(IR)中保存   执行指令:在CPU的控制下,由指令译码器(ID)对指令译码,产生各种定时和控制信号,并执行...
  • X86汇编常见的寄存器

    千次阅读 2019-08-03 11:52:39
    X86汇编常见的寄存器 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) AH&AL...
  • 【汇编】各个寄存器作用详解

    千次阅读 多人点赞 2017-10-27 19:13:37
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 ...
  • 一弹指六十刹那,一刹那九百生灭。...控制器负责指令的读取和调度,运算器负责指令的运算执行,寄存器负责数据的存储,它们之间通过CPU内的总线连接在一起。每个外部设备(例如:显示器、硬盘、键盘...
  • 寄存器

    千次阅读 2018-08-19 21:42:41
    寄存器是因为对内存的分段管理而设置的。...需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此段寄存器中只能存储段号(segment selector,也译作“段选择符”),再由段号映射到存在内存中的GD...
  • 存储器是许多存储单元的集合,存储器单元实际上是时序逻辑电路(锁存器)的一种,按单元号顺序排列。每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似。按存储器...
  • 段选择符 段寄存器

    万次阅读 2016-08-27 15:57:48
    而在80386以后的CPU中段值需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此在实模式下,段寄存器含有段值,为访问存储器形成物理地址时,处理器引用相应的某个段寄存器并将其值乘以16,形成20位的段基...
  • 8086 CPU 寄存器简介

    千次阅读 2012-12-13 19:38:09
    引子 打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识, ...所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。 同时在这里

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,097
精华内容 12,438
关键字:

寄存器的最大存储容量