精华内容
下载资源
问答
  • 寄存器一般容量有多大
    千次阅读
    2021-11-05 21:08:47

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

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

    更多相关内容
  • 寄存器个数,现在Intel的最新一代CPU里大概上百个寄存器,扣除重复使用的相同空间的寄存器寄存器的大小大概是2KB,具体的寄存器如下图: 在这一堆寄存器里,最大的就是AVX/AVX2寄存器,但这个是用来做特殊...

            寄存器个数,现在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面积上集成更大的缓存,对制造工艺的要求也就越高。

     

    展开全文
  • 亚像素 霍夫编码 卷积计算量,空洞卷积 ...KB 210 B = 214 bit = 1024 * 4 位 = 4096 ,iPhone5sCPU寄存器6080位,~= 215 = 1.45KB,31个64位和32128位 MB 2*20 B = 2**24 bit 理解CPU,寄存器,内存 [浅谈] ...

    亚像素
    霍夫编码
    卷积计算量,空洞卷积

    计算机中最基本的存储单元(即内存单元)为1字节,无论计算机是多少位的计算机,和cpu的位数无关

    32位或64位针对的是内存单元的地址的个数,即cpu的寻址能力

    寻址32位CPU,2**32 =

    在各个可视化软件中,以16进制的形式表示内存地址和内存地址里存储的值。
    上图中内存地址为8位16进制,根据两位16进制换算为1字节,该cpu内存地址最大是8字节(即32位),为32位计算机。一共有4G个地址
    里面的值都是每两位16进制数(即1字节)进行存储。

    如果是64位的计算机,那么内存地址单元就是16位16进制数表示(64位),计算后其可寻址空间达到了惊人的16TB(treabytes),即16384GB。

    1 二进制位bit表示及其换算到B,KB,MB,GB,TB

    bit: 2
    B: 24 bit
    KB 2
    10 B = 214 bit = 1024 * 4 位 = 4096 ,iPhone5sCPU寄存器6080位,~= 215 = 1.45KB,31个64位和32128位
    MB 220 B = 224 bit
    GB 230 B = 236 bit 如果是32位机寻址 2**32 = 4 个 2 **30 B 也就是4G内存寻址空间
    理解CPU,寄存器,内存

    [浅谈]

    在这里插入图片描述

    展开全文
  • CUDA:寄存器详解

    千次阅读 2018-05-21 10:46:15
    与CPU不同,GPU的每个SM(流处理器)上千个寄存器。CPU与GPU架构的一个主要区别就是CPU与GPU映射寄存器的方式。CPU通过使用寄存器重命名和栈来执行线程。为了运行一个新任务,CPU需要进行上下文切换,将当前...

    CUDA:寄存器详解

    前言 1

    与CPU不同,GPU的每个SM(流多处理器)有上千个寄存器。CPU与GPU架构的一个主要区别就是CPU与GPU映射寄存器的方式。CPU通过使用寄存器重命名和栈来执行多线程。为了运行一个新任务,CPU需要进行上下文切换,将当前所有寄存器的状态保存到栈上,然后从栈中恢复当前需要执行的新线程上次的执行状态。这些操作需要花费上百个CPU时钟周期。如果在CPU上开启过多的线程,时间将主要花费在上下文的切换上。因此,如果在CPU上开启过多的线程,有效工作的吞吐量将会快速降低。

    然而GPU却恰恰相反。GPU利用多线程隐藏了内存获取与指令执行带来的延迟。GPU不使用寄存器重命名机制,而是致力于为每一个线程都分配一个真实的寄存器(毕竟每个SM有上千个)。因此,当需要上下文切换时,所需要的操作就是将指向当前寄存器组的选择器或指针更新,以指向下一个执行的线程束的寄存器组,开销几乎为零。从而可以看出,在GPU上开启过少的线程反而会因为等待内存事务使GPU处于闲置状态。(这里用到的线程束概念,即同时调度的一组线程,包含32个线程)。

    每个SM能够调度若干个线程块。在SM层,线程块即若干个线程束的逻辑组。编译时会计算出每个内核线程需要的寄存器数目。所有的线程块都具有相同的大小,并拥有已知的数目的线程,每个线程块需要的寄存器数目也就是已知的和固定的。如果一个内核函数中的每个线程需要的寄存器过多,在每个SM中GPU能调度的线程块的数量就会受到限制,因此总的执行的线程数量也会受到限制。此时,开启的线程数量过少会造成硬件无法被充分利用,性能下降。
    举例来说,如果一个应用程序先前使用了4个线程块,现在改用更多的寄存器,可能导致只有3个线程块可供调度,这样GPU的吞吐量将会降低1/4。

    和CPU一样,访问寄存器的速度是非常快的,所以应尽量优先使用寄存器。无论是CPU还是GPU,通过寄存器的优化方式都会使程序的执行速度得到很大提高。
    举一个例子:
    for (int i = 0; i < size; ++i)
    {
    sum += array[i];
    }
    如果变量sum存于全局内存中,则需要32次读/写内存操作。但如果将变量sum设置为局部变量,编译器会将其放入寄存器中,在寄存器中而不是在主存中做操作,然后将结果协会主内存中,因此可以节省31次全局内存读/写操作。

    本地内存和与寄存器

    说到寄存器就不得不提本地内存。
    本地内存(Local memory)
    Local memory和寄存器类似,也是线程私有的,是片外内存,其读写的代价和全局变量一样高,它是由编译器在寄存器全部使用完的时候自动分配的。在优化程序的时候可以考虑减少block的线程数量以使每个线程有更多的寄存器可使用,这样可减少Local memory的使用,从而加快运行速度。2

    本地内存是如此命名的,因为它的范围对于线程来说是本地的,而不是因为它的物理位置。 事实上,本地内存是片外的。 因此,访问本地内存与访问全局内存一样昂贵。 换句话说,名称中的术语“本地”并不意味着访问速度更快。
    本地内存仅用于保存自动变量。这是由nvcc编译器在确定没有足够的寄存器空间来保存变量时完成的。可能放置在本地内存中的自动变量是大型结构或数组,会占用太多的寄存器空间,而编译器确定的数组可能会动态编制索引。3

    寄存器和本地内存的关系

    1. 都存储静态变量,都是在编译阶段确定大小的。
      静态变量在编译时即知道其大小,一个块4内的寄存器和本地内存大小是在编译时就被识别和计算的,在编译阶段,编译器就已经决定了块是怎么在SM上进行分配的。
    2. 寄存器和本地内存都是隐式声明。
      共享内存、设备内存、常量内存和纹理内存,它们声明变量的方式:
      其声明:

      • __shared__ a
      • __device__ a
      • __constant__ a
      • texture<Type, Dim, ReadMode> texRef;

    寄存器和本地内存不像共享内存、设备内存、常量内存和纹理内存显式声明,它们的声明不加任何限定符,就如普通变量一样。如 int a
    3. 寄存器和本地内存共同定义了核函数中所有静态变量
    寄存器主要承担Scalar variables(标量变量)5和编译时已知的静态索引的数组6
    本地内存主要承担静态的大型数组和结构体。本地内存存储于栈中(stack frame)。
    4. 寄存器影响占用率,本地内存影响内存访问速度。
    寄存器是SM中是稀有资源,它影响线程块在SM上的分配,即影响占用率。本地内存不影响占用率。寄存器片上资源,访问速度极快,本地内存片外资源,访问速度很慢。

    寄存器和本地内存的权衡

    影响核函数速度的关键之一就是寄存器和本地内存的权衡(合理分配)。寄存器和本地内存基本共同定义了核函数中所有局部或中间变量,且它们的分配对核函数的性能是有影响的(寄存器影响占用率,本地内存影响内存访问速度),不幸的是它们对性能的影响是矛盾的。
    寄存器和本地内存的矛盾:
    有时,较少的使用寄存器可获得较高的占用率即SM的中线程的利用率较高,对程序性能提升,但局部变量和中间变量的数量是一定,较少的寄存器意味着较多的使用本地内存,本地内存的内存访问延迟很高,对程序性下降。所以,寄存器和本地内存的大小分配是相矛盾的,也就是说,高的占用率不一定有更好的性能。

    权衡寄存器和本地内存的使用
    由于寄存器和本地内存的在性能上的矛盾,没有确定的普适性的办法,只有根据实际情况具体分析,所遵循的原则是:在占用率不是太低(50%以上),的情况下尽量多使用片上的寄存器资源,但当中间数据比较多时,使用本地内存。
    即:
    当局部变量或中间数据不多时,尽量使用片上的寄存器资源。
    当局部变量或中间数据较多时,仍使用寄存器资源,但要使用一定的策略:可通过减小块的大小的方式来增加每块的寄存器资源,或使用片上的共享内存作为中间数据的临时储存区域,减小寄存器的使用。
    当局部变量或中间数据非常大时,这时需要较多的利用寄存器资源,但迫不得已的使用本地内存。

    寄存器资源的大小和限制

    https://blog.csdn.net/fb_help/article/details/80378503 -’寄存器资源的限制‘

    显式使用寄存器资源。

    https://stackoverflow.com/questions/12167926/forcing-cuda-to-use-register-for-a-variable?answertab=active#tab-top


    1. https://blog.csdn.net/u010335328/article/details/52649231.
    2. https://blog.csdn.net/nyg8945/article/details/52874225.
    3. Local memory
      Local memory is so named because its scope is local to the thread, not because of its physical location. In fact, local memory is off-chip. Hence, access to local memory is as expensive as access to global memory. In other words, the term local in the name does not imply faster access.
      Local memory is used only to hold automatic variables. This is done by the nvcc compiler when it determines that there is insufficient register space to hold the variable. Automatic variables that are likely to be placed in local memory are large structures or arrays that would consume too much register space and arrays that the compiler determines may be indexed dynamically.
      [from https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html]
    4. 为什么以块为单位分配寄存器和本地内存?
      因为,在SM中分配线程或warp时,为保证共享内存可以在块内通信,共享内存要求每个块必须在一个SM中,所以,为保证同一块内的线程在同一个SM中,SM在分配或承载线程或warp时是以块为最基本单元的。
    5. https://stackoverflow.com/questions/12167926/forcing-cuda-to-use-register-for-a-variable.
    6. https://blog.csdn.net/bruce_0712/article/details/65664840
    展开全文
  • 【USB】STM32F103C8单片机上完全用寄存器实现的USB大容量存储设备-附件资源
  • 目前,SD卡CSD寄存器有V1.0和V2.0两个版本。下面是V1.0和V2.0的CSD寄存器各位的定义表格。1.单片机如何识别SD卡是V1.0还是V2.0的?答:CSD寄存器为128个位,即16个字节。通过检测CSD寄存器的bit126是0还是1来判断。...
  • CAM以其高速查找、大容量等特点而被广泛地应用于电讯、网络等领域。  本文介绍一种用Verilog HDL设计CAM的方案。该方案以移位寄存器为核心,具有可重新置改变字长、易于扩展、匹配查找速度快等特点。  1 CAM...
  • #资源达人分享计划#
  • 就是容量和地址寄存器。MAR的位数以及数据寄存器MDR的位数的关系。 总的容量等于2的mar位数的n次方乘以mdr的位数 因为地址寄存器n位二进制代码。可以表示的地址单元的个数是二的n次方。这里就是我...
  • 计算机内存储器容量有多大

    千次阅读 2021-06-28 07:52:47
    内存的容量一般都是2的整次方倍,比如64MB、128MB、256MB等,一般而言,内存容量越大越有利于系统的运行。进入21世纪初期,台式机中主流采用的内存容量为2GB或4GB,512MB、256MB的内存已较少采用。?系统对内存的识别...
  • 寄存器,寄存器是什么意思

    千次阅读 2021-07-28 06:43:33
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。...
  • 32位汇编寄存器

    2015-12-20 22:51:08
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器累加器(ACC)。
  • 通用寄存器

    2021-07-28 06:43:31
    汇编语言程序员必须熟悉每个寄存器一般用途和特殊用途,只有这样,才能在程序中做到正确、合理地使用它们。[1]中文名通用寄存器领域计算机操作系统,汇编语言通用寄存器简介语音通用寄存器可用于传送和暂存数据,也...
  • 摘要:一种利用VerilogHDL设计CAM的方案,该方案以移位寄存器为核心,所实现的CAM具有可...CAM以其高速查找、大容量等特点而被广泛地应用于电讯、网络等领域。本文介绍一种用VerilogHDL设计CAM的方案。该方案以移位寄
  • STM32寄存器的简介、地址查找,与直接操作寄存器

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

    千次阅读 多人点赞 2021-06-13 07:53:13
    1引言 我们在学习STM32的时候,把被...我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器。给已经分配好地址的特定功能的内存单元取别名的过程就叫寄存器映射。 然
  • 寄存器

    千次阅读 2018-08-08 18:37:35
    寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,存器累加器(ACC)  2.包括...
  • 寄存器的作用

    千次阅读 2021-07-28 07:23:41
    [From]AX/EAX: 累加器,算术通用寄存器,与端口的通讯也用这个寄存器.BX/EBX: 基址寄存器.CX/ECX: 计数器,结合串处理指令使用.DX/EDX: 算术通用寄存器.和累加器结合表示双字长的数,其中累加器用于存低位数.[From]...
  • 51单片机寄存器详解

    千次阅读 2022-06-24 20:53:26
    51单片机各功能详解,包括IO、寄存器
  • 板子是s3c2440,使用两片容量为32MB、位宽16bit的EM63A165TS-6G芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看:  1、 BWSCON:Bus width & wait ...
  • 内存资料寄存器

    2021-07-28 08:56:47
    内存资料寄存器(Memory Data Register,MDR),又称数据寄存器、缓冲寄存器,是计算机控制单元中的寄存器,寄存了将要写入到计算机主存储器(例如:RAM)的数据,或由计算机主存储器读取后的数据。它就像缓冲器,持有从...
  • stm32f103寄存器.rar

    2020-02-18 10:07:55
    STM32F系列属于中低端的...该系列芯片按片内Flash的大小可分为三类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。 芯片集成定时器Timer,CAN,ADC,SPI,I2C,USB,UART等多种外设功能。
  • 描述存储器:存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。内存和寄存器就是为了解决存储器读写速度慢而产生...
  • 寄存器重命名】

    2022-03-26 17:10:05
    1. 寄存器重命名的方式 ...一个寄存器在他的生命周期中会两个存放位置,这对指令操作数读取产生负面影响。实际处理器中,会配合数据捕捉(data-capture)的发射方式,并采用payload RAM存储需要的操作数
  • STM32F767 的每个串口都 3 个控制寄存器 USART_CR1~3,串口的很 配置都是通过这 3 个寄存器来设置的。 CR1 位 名称 功能 详细介绍 使用时注意事项 31~29 保留位 必须保持复位值 28 M1 确定字长 此...
  • STM32单片机F103ZET6大容量芯片的中文参考手册,库函数开发手册和寄存器开发手册,总一款适合你。
  • day02.4-通用寄存器

    千次阅读 2022-02-04 14:01:19
    一、32位通用寄存器>二、使用OD查看寄存器并且使用MOV指令修改寄存器中值>三、通用寄存器>四、汇编指令
  • 常用寄存器说明

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,200
精华内容 26,880
热门标签
关键字:

寄存器一般容量有多大