A. 计算机的CPU并不直接调取硬盘文件,为何却要先载入到内存中
原因就是硬盘和内存在传输之间是有不同的地方的。计算机所有设备各部件之间的延时排列由高到低,依次为机械硬盘、固态硬盘、存储器和CPU;从数据响应速度来看,存储器明显优于硬盘。数据的读写速度与固态磁盘的读写速度相差甚远。
使用大的内存还有其他的好处,硬盘作为内存用,不是一个很好的建议,但内存可以用作硬盘,从而体验更快的传输速度。这里我们需要用ramdisk软件来实现,大内存用户可以下载试用。
B. cpu的二级缓存是什么意思
二级缓存又叫l2
cache,它是处理器内部的一些缓冲存储器,其作用跟内存一样。
它是怎么出现的呢?
要上溯到上个世纪80年代,由于处理器的运行速度越来越快,慢慢地,处理器需要从内存中读取数据的速度需求就越来越高了。然而内存的速度提升速度却很缓慢,而能高速读写数据的内存价格又非常高昂,不能大量采用。从性能价格比的角度出发,英特尔等处理器设计生产公司想到一个办法,就是用少量的高速内存和大量的低速内存结合使用,共同为处理器提供数据。这样就兼顾了性能和使用成本的最优。而那些高速的内存因为是处于cpu和内存之间的位置,又是临时存放数据的地方,所以就叫做缓冲存储器了,简称“缓存”。它的作用就像仓库中临时堆放货物的地方一样,货物从运输车辆上放下时临时堆放在缓存区中,然后再搬到内部存储区中长时间存放。货物在这段区域中存放的时间很短,就是一个临时货场。
最初缓存只有一级,后来处理器速度又提升了,一级缓存不够用了,于是就添加了二级缓存。二级缓存是比一级缓存速度更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。现在,为了适应速度更快的处理器p4ee,已经出现了三级缓存了,它的容量更大,速度相对二级缓存也要慢一些,但是比内存可快多了。
缓存的出现使得cpu处理器的运行效率得到了大幅度的提升,这个区域中存放的都是cpu频繁要使用的数据,所以缓存越大处理器效率就越高,同时由于缓存的物理结构比内存复杂很多,所以其成本也很高。
现在的cpu普遍有一级缓存和二级缓存。一般来说,一级缓存的数量比较少,而二级企业缓存的数量一般比一级缓存大几倍。为什么要缓存呢,这主要是cpu厂家为了提高cpu的使用效率。因为,随着cpu的速度的快速发展,目前的cpu速度已经达到一个令人惊讶的速度,据个例子来说,一个奔腾3-1g的cpu其运算速度为每秒钟能够完成10亿次二进制计算,而一个奔腾4-3g则意味着每秒钟能够完成30亿次二进制运算。当然由于cpu还要介入浮点数据转换和介入控制主板上的其他设备资源,实际真正用于数据处理的资源会受到较大影响,但总体来说,cpu的速度已经达到一个前所未有的程度。由于其他硬件在数据传输方面未能跟上,因此,cpu厂家就在cpu内封装了缓存,其中,一级缓存主要将cpu的硬指令长期存储,以便cpu在调用指令时不必再通过与内存交换数据来取得,另外,还将最近处理的进程数据(中间数据)存放在一级缓存;而二级缓存则是完全存放最近处理的进程数据(中间数据)和即将调用的数据。通过这样一来设置,就可以避免cpu运算过程中要频繁与内存交换数据,减少cpu的等待时间,提高cpu的利用效率。
C. CPU二级缓存存储的数据在哪里
你问这个问题首先你要了解一个机制。就是CPU计算的东西来自于哪,CPU核心计算通过L1提供数据,L1通过L2提供数据……可能有L3。这一部分是在CPU内进行的数据计算~进入CPU以后数据就会被拆开,根据架构不同进行存储计算。因此在这阶段中的数据是非人类解读的数据。L2或者L3的数据是通过内存提供的~实际上CPU计算过程就到此结束了。之所以有硬盘的存在是因为内存太贵了!新的固态硬盘实际上就是非失意性“内存”~他们的读取速度就是L1比L2快L2比L3快,L3比内存快,内存比硬盘快……而且任何的计算机操作都是通过CPU的指令进行的,读取L1和L2的数据已经设计到CPU核心计算,所以官方是不会轻易提供读取L1 L2的控制指令的。综上所述,L2你是不能看到的,原因重点就俩,一个他的数据非人类可理解,另一个官方不会允许你访问CPU内核。
D. cpu在处理数据时,是不是所有的数据都要放到内存啊
CPU是:中央处理器,用来进行数据加与数据减
内存是:相对快速存储空间
硬盘是:大量非即时待用数据存储区域
在计算机运行的时候,CPU负责数据处理,但它需要数据源,就需要到内存和硬盘,又因为CPU是即时的数据处理,就需要内存和硬盘加电,同时运行;CPU内部本身自己就有存储位置,很多,AX,BX,CX……但相遇对内存和硬盘来说,是无法比拟的速度,CPU内部的存储空间很小,速度相当高,现在的CPU内部的存储空间都在512K,甚至更高。
CPU接收到处理数据的请求并开始处理,就需要数据源,但由于速度相当快,CPU对数据源的需求因软件的需求调用的位置尔各不相同(能理解吗,比如游戏;需要调用字体,需要调用贴图,需要调用游戏图片,他们都存储在一个硬盘的不同位置!(希望这里你也明白,也就是说,即使是一个大文件夹,完全有可能每个文件都放在不同的扇区。)就需要硬盘不断的读取。)。
这里也就是为什么要用到硬盘的原因,因为我们需要把东西存下来,但不一定用,不如你玩游戏的时候,你的千千倾听没有开,那么你的MP3就没有播放,所以就需要一个大的空间来存储我们可能调用的数据。
下来的过程就是把硬盘里的数据转移到内存里,又不懂了吧,告诉你,是速度,硬盘为了满足廉价的存储空间放弃了速度,内存相对于硬盘来说是相当快的存储空间,数据在这里等待被放到CPU的存储空间里供CPU使用。^O^还没完……
既然是回答就告诉你吧,但希望你能思考前面的东西,它缺了一部分,应为这个过程是个循环。
然后……因为CPU的内部的存储空间很有限,数据又不是一次性的计算完毕,尤其是一些大型的数据处理,比如地形的地貌的计算,物理碰撞虚拟模拟计算,它都不可能一次性算完,就必须吧算了的一部分存储下来,去算下一个部分,最后吧很多小部分再综合计算,按照这样的存储过程,CPU内部的存储空间可以说是废物,但这里CPU把存储完的数据转存到内存里,以供后期处理。当然,大型计算机应该还会把内存中的数据专门用另一套cpu组成的系统存储到硬盘里,或者在软件里做个中断,提供存储转换的时间,然后继续。
所以,CPU、内存、硬盘的属性关系是,内存和硬盘是CPU附属设备。但是需求关系是循环的。
E. 怎样将omron c200hx cpu数据存储区与微机进行连接存储数据
PC作为Master,C200HX作为Slave,从PC发送FINS指令向C200HX写入或读取数据。
F. CPU为什么能存储数据,或者说怎么存储数据;光盘和硬盘里的那张碟是怎么存储的,我要物理方面的解释
你可以参考网络“硬盘” 和 “ 光盘”,我摘了一些来说明:
CPU属于高速运算状态所以存储器的数据读取速度跟不上CPU的处理速度。存储器会把数据寄放在存储器提前调用,这样不会浪费CPU的资源。所以程序运行时会把数据线放到寄存器,寄存器里面的数据可以随时高速的调用。这样能更好地支持CPU的运算。所以内存这个寄存器相当于一个临时仓库的形式。方便CPU随时调用。
所以CPU利用地址,来读取每个寄存器里面的内容,然后再通过磁盘管理,写到硬盘或者其他存储设备上。CPU永远面对的都是内存。而存储管理器负责把数据从磁盘读取到内存,或者从内存写入存储设备。
硬盘.磁道
当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。这些磁道用肉眼是根本看不到的,因为它们仅是盘面上以特殊方式磁化了的一些磁化区,磁盘上的信息便是沿着这样的轨道存放的。相邻磁道之间并不是紧挨着的,这是因为磁化单元相隔太近时磁性会相互产生影响,同时也为磁头的读写带来困难。一张1.44MB的3.5英寸软盘,一面有80个磁道,而硬盘上的磁道密度则远远大于此值,通常一面有成千上万个磁道。
光盘.记录层
这是烧录时刻录信号的地方,其主要的工作原理是在基板上涂抹上专用的有机染料,以供激光记录信息。由于烧录前后的反射率不同,经由激光读取不同长度的信号时,通过反射率的变化形成0与1信号,借以读取信息。目前市场上存在三大类有机染料:花菁(Cyanine)、酞菁 (Phthalocyanine) 及偶氮 (AZO)。
一次性记录的CD-R光盘主要采用(酞菁)有机染料,当此光盘在进行烧录时,激光就会对在基板上涂的有机染料,进行烧录,直接烧录成一个接一个的"坑",这样有"坑"和没有"坑"的状态就形成了‘0'和‘1'的信号,这一个接一个的"坑"是不能恢复的,也就是当烧成"坑"之后,将永久性地保持现状,这也就意味着此光盘不能重复擦写。这一连串的"0"、"1"信息,就组成了二进制代码,从而表示特定的数据。
G. CPU内部寄存器组结构及其功能是什么
1.什么是寄存器 所谓寄存器(register),它是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。 2.寄存器与CPU指令 在讲CPU的寄存器之前,我们先了解一下CPU指令系统。指令系统指的是一个CPU所能够处理的全部指令的集合,Athlon XP和P4都是基于x86指令集,这是CPU的根本属性,决定CPU运行什么样的程序。 指令一般分为:算术逻辑运算指令、浮点运算指令、位操作指令及其他的一些非运算指令,其中整数、地址、指令指针和浮点数据是按照数据形式来划分的。通常我们把需要CPU进行不同处理的单个数据称为标量数据(Scala Data)。标量数据既可以是整数数据,也可以是浮点数据。其中整数标量数据的存放区一般为通用寄存器(GPR),浮点标量数据的存放区一般为浮点寄存器(FPR)。与标量数据相对的是矢量数据(Vector Data),所谓矢量数据就是指一列需要由处理器作相同处理的数据集合。比如处理器在做MP3编码的过程中,需要对内存中的音频文件里的各字节数据作相同的MP3编码操作。那么通常使用MMX或SSE这类单指令多数据流(SIMD)指令,将数个字节打包为一组矢量数据,存放在MMX或SSE寄存器中,再送往相应的功能单元进行统一操作。 其中通用寄存器是处理器中最快的存储器,用来保存参加运算的操作数和中间结果。在通用寄存器的设计上,RISC与CISC(也就是我们常说的x86架构)有着很大的不同。CISC的寄存器通常很少——只有8个通用寄存器。由于CPU在执行指令过程中,存在指令依赖性,在一定程度上使得x86 CPU不能在每个时钟周期中立即发布大量的指令。所谓“依赖性”就是指令的执行需要前个指令的运算结果。比如程序员经常使用的分支程序,请看下面这个例子: A=C*1 B=A+2 只要变量A的值还不知道,B=A+2就不能进行运算。也就是说,只要指令1的结果没有写进寄存器,CPU调度器就不能把指令2发布到执行单元。由于程序分支会造成具有较长流水线CPU运行停滞的,目前常用的解决方法是采用分支预测。 不过,分支预测同样存在一个问题:流水线越长,指令潜伏期也越长,等待前一指令运算结果的时间也越长,同样会造成CPU运行停滞。我们知道,程序指令通常都有各类型的条件分支语句,通过验证条件决定执行路线。但CPU执行单元内是通过一项特殊的预测机制选择一条路线直接执行(这样可以避免验证语句条件而处于等待情况),然后在后面进行验证。如果预测正确则继续往下执行,如果发现以前的预测错误,那么就必须返回原地重新开始,以前的指令就会作废。 因此,管线越长,意味着出现分支预测错误的机会就越多,越多在管线内的指令会被清除掉,而且重新让管道填满指令的时间也会越长。对于普通处理器来说,如果出现分支预测错误,CPU就不得不将整条流水线清空后从错误的地方重新装满数据、重新执行。毫无疑问这将花更多的时间,整体性能就会下降。因此,针对通用寄存器少的问题,在x86架构中比较完美的解决方法就是增加寄存器的数量和采用“乱序执行”。3.为什么寄存器不够用 在上面我们已经提到,寄存器只是用来暂时存放指令值的,如果CPU需要把两个值加起来,它需要用1个寄存器来存放运算结果,用2个寄存器来存放相加的数值。例如,在以下的方程式中:A = 2 + 4 * 在寄存器1储存“2”; * 在寄存器2储存“4”; * 在寄存器3储存“寄存器1 + 寄存器 2”; 因为在微处理器里面有超过3个寄存器,因此这个运算能够轻易地执行,不会造成用光寄存器的情况。在这些运算被执行之后,所有的3个数值都能够被保留并重新使用,因此如果我们再想在结果加上2的话,处理器只需要执行:寄存器 1 + 寄存器 3 就可以了。如果微处理器仅有2个剩余的寄存器,而我们又需要再次使用2和4的值,那么这些值在覆盖结果A之前,必须储存在主内存之中 。运算执行的过程则会变成如下所示: * 在寄存器1储存 “2”; * 在寄存器2储存“4”; * 在主内存的某个空间储存“寄存器1 + 寄存器2”; 我们可以看到这里使用了其它的内存访问过程,而在这期间其实还有我们没有提到的其它处理过程,比如主内存的定位也需要占据寄存器,以便让CPU 告诉装载/储存单元该往哪里发送数据 。如果我们需要使用到这些结果的话,那么CPU将不得不首先到主内存中找回这些结果,把目前满载的寄存器驱逐一些数据,把它们写入主内存,然后再把寻找到的数据储存在寄存器里。 这里大家应该能够明白吧,对内存的访问次数将会可怕地增加;你需要访问内存的时间越多,那么处理器等待工作完成的时间就越长——因而造成性能的下降。因此面对超标量CPU在并行处理大量运算,x86体系仅有的8个通用寄存器远远不能满足需要,在同一时钟周期中,如果有3个指令发布,你就需要3个输出寄存器和6个输入寄存器。我们该怎么办呢?聪明的工程师们发现了突破这个限制的方法:“寄存器重命名”。 4.寄存器重命名技术 寄存器重命名,是CPU在解码过程中对寄存器进行重命名,解码器把“其它”的寄存器名字变为“通用”的寄存器名字,本质上是通过一个表格把x86寄存器重新映射到其它寄存器,这样可以让实际使用到的寄存器远大于8个。这样做的好处除了便于前面指令发生意外或分支预测出错时取消外,还避免了由于两条指令写同一个寄存器时的等待。 下面我们以一个超标量CPU执行8个算术指令为例:假设它在每个时钟周期中能对2个指令解码,引出计算结果是在指令发布后3个时钟周期发生的: (1)在第1个时钟周期,两个指令发布:它们互不关联,因此,它们将在3个时钟周期后(第4个时钟周期)引出; (2)在第2个时钟周期,我们首次遇到了“指令依赖”,指令3需要指令2的结果,此时指令3不能开始发布; (3)如果是按序执行,指令4、5、6就不能在指令3前发布。只有在第5个时钟周期时(指令2的结果已得到)才能发布指令3; (4)在第6个时钟周期有个大问题:我们想把结果写到寄存器R1,但这将改变指令5的结果。因此,我们只有在R1空闲时(第10个时钟周期)才能发布指令6。 按照正常情况处理的话,尽管这个CPU每个时钟周期可以对2个指令解码,但它每个时钟周期的指令执行数只有0.53。如果每次程序所需的寄存器正被使用,我们可以把数据放到其它的寄存器中,在第6个时钟周期将寄存器R1重命名,指令6和指令8不再耽误CPU的工作。结果是我们能够将每个时钟周期的指令执行数提高50%。寄存器重命名技术可以使x86 CPU的寄存器可以突破8个的限制,达到32个甚至更多。寄存器重命名技术现在已经深深地扎根于超标量CPU中了。5.乱序执行技术 除此之外,处理器工程师还引入了乱序执行技术,从一定程度上来缓解通用寄存器不足的问题。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU运行程序的速度。 这好比请A、B、C三个名人为春节联欢晚会题写横幅“春节联欢晚会”六个大字,每人各写两个字,如果这时在一张大纸上按顺序由A写好“春节”后再交给B写“联欢”,然后再由C写“晚会”,那么这样在A写的时候,B和C必须等待,而在B写的时候C仍然要等待而A已经没事了。但如果采用三个人分别用三张纸同时写的做法,那么B和C都不必等待就可以同时各写各的了,甚至C和B还可以比A先写好也没关系(就像乱序执行),但当他们都写完后就必须重新在横幅上按“春节联欢晚会”的顺序排好(自然可以由别人做,就象CPU中乱序执行后的重新排列单元)才能挂出去。 不过,虽然采用寄存器重命名技术、乱序执行技术,但仍不能从根本上解决x86处理器通用寄存器不足的问题。以寄存器重命名技术来说,这种技术的寄存器操作相对于RISC来说,要花费一个时钟周期来对寄存器进行重命名,这无形中降低了处理器性能以及流水线工作效率,也增加了程序和编译器的优化难度。针对这个问题,最新的x86-64架构中(K8处理器),AMD在x86架构基础上将通用寄存器和SIMD寄存器的数量增加了1倍:其中新增了8个通用寄存器以及8个SIMD寄存器作为原有x86处理器寄存器的扩充。 这些通用寄存器都工作在64位模式下,经过64位编码的程序就可以使用到它们。这些64位寄存器称为RAX、RBX、RCX、RDX、RDI、RSI、RBP、RSP、RIP以及EFLAGS,在32位环境下并不完全使用到这些寄存器,同时AMD也将原有的EAX等寄存器扩展至64位的RAX,这样可以增强通用寄存器对字节的操作能力。从扩充方式上看,EAX等寄存器可以看做是RAX的一个子集,系统仍然可以完整地执行以往的32位编码程序。增加通用寄存器除了可高效存储数据外,还可作为寻址时的地址指针,从而缩短指令长度和指令执行时间,加快CPU的运算处理速度,同时也给编程带来方便。 此外,为了保证K8的分支预测更有效率,K8的分支预测寄存器增加到64个。分支指令可以被设为真或假,而每个指令中的6位被分配到单独一个预测寄存器中,只有预测寄存器被设定为“真”时,那些指向预测寄存器为“真”的指令结果才会被执行。其次由于所有的分支都能并行执行,CPU所花的时间同只执行单个分支的时间是相同的,降低了预测出错的风险。第三由于CPU不再跳跃执行,它不会把程序代码分成小块。也就是说,稍前和稍后的程序代码可以打包。这样CPU能够一并将它们发布,增大并行工作量。从而使性能提高10%~15%,特别是在整数代码部分。 不过在x86-64中,寄存器的扩展部分似乎仅对于整数、地址数据有效。对浮点和向量数据则仍然保持原样。我们能从K8向64位的扩展所获得的好处,只不过是可以在同样一条指令中,处理更大数值的整数数值以及管理空间更大的内存区域而已。而在32位的情况下,由于通用寄存器只能容纳最大32位的数据,因此显然要花费更多条指令对尺寸超过32位的数据进行处理。这种改进对服务器、科学计算这样的领域具有一定的意义,但显然并不是普通家用环境急需的改进。 可以说,处理器的寄存器对处理器的性能有着巨大的影响。但是无论怎么发展,通用型CPU目前还没有脱离x86架构的限制,也许有一天,新的寄存器技术能让我们的CPU变得更加功能强大!
H. 在正常运行期间CPU会从哪种类型的数据存储中加载信息进行处理
现在的CPU都有若干级高速缓存(cpu catch),所以,cpu运行过程中,计算所需数据首先都是从这些内部的缓存中获取。
若是缓存中没有所需数据,再去内存查找和获取。
cpu 获取运行数据的次序是:寄存器、(多级)高速缓存、内存、硬盘。
I. 在正常运行期间,CPU会从哪种类型的数据存储中加载信息进行处理
CPU都有若干级高速缓存(cpu catch),所以,cpu运行过程中,计算所需数据首先都是从这些内部的缓存中获取。
若是缓存中没有所需数据,再去内存查找和获取。
cpu 获取运行数据的次序是:寄存器、(多级)高速缓存、内存、硬盘。
计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。在用户需要的情况下,以用户要求的方式进行数据的输出。
从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。
(9)cpu数据存储区扩展阅读:
内存储器有很多类型。随机存取存储器(RAM)在计算期间被用作高速暂存记忆区。数据可以在RAM中存储、读取和用新的数据代替。当计算机在运行时RAM是可得到的。它包含了放置在计算机此刻所处理的问题处的信息。
主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。存储单元的地址与存储在其中的信息是一一对应的,单元地址只有一个,固定不变,而存储在其中的信息是可以更换的。