Questions tagged «cpu»

CPU是中央处理器的缩写。有时简称为中央处理器,但更通常称为处理器

3
使用哪种编程语言编写BIOS程序?
据我了解,ROM中保存的BIOS代码/位流应该是通用的(与多个CPU类型或ISA一起使用)。另外,我在网络上看到有可能转储其代码(并“反汇编”它)。 那么,它是用哪种语言,指令集或机器代码编写的呢?它不需要任何类型的处理器来执行其操作吗?如果是这样,我想它将使用外部CPU,那么它如何知道所使用的特定指令集? 也许它有一个内部处理器?
65 cpu  bios 

7
1 <10的比较是否比1 <1000000便宜?
我只用了大约10亿作为z-indexCSS中a的数量,并在考虑必须进行的比较。在非常大的数字与非常小的数字之间进行比较时,ALU级别的性能是否有所不同? 例如,这两个摘要中的一个摘要会比另一个摘要贵吗? snippet 1 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 10000000000000) { //do nothing } } snippet 2 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 1000) { //do nothing } }
65 performance  cpu 

3
单个线程如何在多个内核上运行?
我试图从高层次上理解单个线程如何跨多个内核运行。以下是我的最佳理解。我不认为这是正确的。 根据我对“ 超线程”的阅读,看来OS会组织所有线程的指令,使它们不会彼此等待。然后,CPU的前端通过向每个内核分配一个线程来进一步组织这些指令,并在任何打开周期之间分配来自每个线程的独立指令。 因此,如果只有一个线程,那么操作系统将不会进行任何优化。但是,CPU的前端将在每个内核之间分配独立的指令集。 根据https://stackoverflow.com/a/15936270,特定的编程语言可能会创建更多或更少的线程,但是在确定如何处理这些线程时这是无关紧要的。OS和CPU处理此问题,因此无论使用哪种编程语言,都会发生这种情况。 只是为了澄清一下,我要问的是在多个内核上运行一个线程,而不是在一个内核上运行多个线程。 我的摘要有什么问题?线程的指令在哪里以及如何划分到多个内核之间?编程语言重要吗?我知道这是一个广泛的主题;我希望对此有一个高层次的理解。

12
为什么程序需要特定数量的最小CPU内核?
当在内核数少于N的CPU上运行时,是否可以编写无法正常工作的代码(或完整的软件,而不是一段代码)?没有显式检查并故意失败: 如果(noOfCores &lt;4)则没有故意运行 我正在查看游戏的最低系统要求(Dragon Age:Inquisition),它规定了至少四核CPU。许多玩家表示,它不能在两核CPU上运行,甚至不能在具有两个物理核和两个逻辑核的Intel Core i3上运行。而且这不是计算能力的问题。 据我了解,操作系统无法将线程与CPU完全隔离开来。 只是为了清除事情: 我不是在问:“我可以从代码中找出CPU内核的数量,并故意失败吗?” ...这样的代码是不正确的(迫使您购买更昂贵的CPU来运行程序-无需计算能力)。我要问的是,您的代码具有四个线程,并且当两个线程在同一物理核心上运行时会失败(而无需显式检查系统信息并有意地失败)。 简而言之,是否可以有需要多个核的软件,而又不需要来自多个核的额外计算能力?它仅需要N个单独的物理核心。

7
在软件编程中,是否可以使CPU和GPU的负载均达到100%?
这是一个关于游戏玩家我感兴趣的主题的普遍问题:CPU / GPU瓶颈和编程。如果我没记错的话,我已经了解到CPU和GPU都可以计算内容,但是由于体系结构的差异,在某些计算中它要比另一种更好。例如,在GPU上破解哈希或进行加密货币挖掘似乎比在CPU上效率更高。 所以我想知道:难道在GPU负载为100%而CPU在50%的情况下运行GPU是不可避免的吗? 或更准确地说:如果第一个计算负载为100%,那么两者通常都达到100%的负载,那么通常由GPU完成的某些计算可以由CPU完成吗? 我已经搜索了一些关于该主题的内容,但是空手而归。我认为并希望它在本小节中有应有的地位,并欢迎您提供给我的任何文档或讲座!

10
为什么您的代码不应使用100%CPU?[关闭]
我专门讲的是在Windows XP或更高版本上运行的C#.NET 4程序,但是一般的答案也是可以接受的。 假设一个已经优化和高效的程序。这里的问题完全归结于CPU使用率高对硬件的影响,以及是否应该限制高使用率的程序以减少磨损,而不是取决于我的实现是否有效。 今天的一位同事建议我不要在数据加载过程中实现100%CPU利用率的目标,因为“现代CPU价格便宜,并且在100%CPU时会迅速降级”。 这是真的?如果是这样,为什么?以前,我给人的印象是100%CPU使用率对于密集或长时间的操作来说是更可取的,而且我在这两种方法上都找不到任何可敬的资源。
42 c#  multithreading  cpu  usage 

1
面向单分配ADT的代码在现代CPU上的性能
可以推论,使用单一分配处理不可变数据具有明显的效果,那就是需要更多的内存,因为您一直在创建新的值(尽管在幕后的编译器会做一些指针技巧来解决这一问题)。 但是,我现在已经听到几次,性能方面的损失被CPU(特别是其内存控制器)可以利用内存未发生突变(这种情况不多)这一事实带来的收益所抵消。 我希望有人可以阐明这是如何做到的(或者如果不是的话)。 在另一篇文章的评论中,有人提到抽象数据类型(ADT)与此有关,这使我更加好奇,ADT如何特别影响CPU处理内存的方式?不过,这是一个问题,主要是我只是对语言的纯洁度如何必然影响CPU及其缓存的性能等感兴趣。

3
为什么堆栈向下生长?
我假设有历史,但是堆栈为什么向下增长? 在我看来,像缓冲区溢出将是一个很大很难利用如果堆栈向上增长...
31 cpu  stack 

6
为什么我们必须等待I / O?
众所周知,磁盘操作速度很慢,我们知道它们速度很慢的原因。所以这里的问题是为什么我们必须等待I / O或为什么会有IOWait之类的东西? 我的意思是我已经注意到,当您在后台执行一些I / O任务时,您的计算机基本上会变慢很多,我特别注意到,在使用Linux时,如果您要执行更长的I / O任务,直到操作系统完成,操作系统几乎变得无法使用。 确实,我也在文章中找到了这个主题,其中有一个摘要: I / O等待率为12.1%。该服务器具有8个核心(通过cat / proc / cpuinfo)。这非常接近(1/8核心= 0.125) 所以从根本上讲,这意味着它会降低计算机的运行速度,为什么?我的意思是,好的,现在普通计算机至少有2个核心,有时是4个,有时是由于超线程等而拥有更多。但是现在的问题是,为什么CPU实际上必须呆在那里,除了等待IO之外,实际上不做其他任何事情?我的意思是流程管理的基本思想或体系结构,现在我不知道是操作系统负责还是将其归结为硬件部分,但应该让CPU等待或执行定期检查,同时实际执行许多其他任务,并且仅在准备就绪时返回IO流程。确实,如果这是一项艰巨的任务,而CPU必须等待,那为什么呢?这样可以更有效地利用硬件进行管理吗?例如,可能会有某种小型cpu会等待它,并在返回到流程后立即将一小部分数据传递到实际cpu,因此该流程将重复进行,而我们不必几乎将整个cpu核心专用于数据复制过程...还是我应该发明这种东西并为此获得诺贝尔奖?:S 现在,好了,我真的是从观察者的角度出发,我确实还没有深入探讨这个话题,但是我真的不明白为什么cpu必须以HDD的速度工作,尽管它可能只是做其他事情,一旦准备好就回到硬盘。这个想法不是要加快需要IO操作或复制过程或其他操作的应用程序的速度,而是要在执行该操作时将CPU占用的影响降到最低,以便OS可以将其用于其他进程和用户。进行某些复制操作时不必感到一般的计算机延迟...
28 cpu  io  operations 

4
什么是CPU寄存器?
这个问题已经困扰了我一段时间,今天我想我会谷歌搜索它。我已经阅读了一些有关它的内容,它看起来与我一直称为处理器缓存的内容非常相似。 两者之间有区别吗?或者当我认为它们相同时我是对的吗?寄存器实际上是否必须位于CPU内部才能正常工作? 根据维基百科,寄存器是CPU中的一个位置,可以在将其发送回RAM之前快速访问和修改内存。我是否理解这是错误的,还是缓存和寄存器实际上相同?


6
CPU多久会发生一次计算错误?
在Dijkstra的《结构化编程说明》中,他谈到了计算机程序作为抽象实体的可证明性。作为推论,他指出测试还不够。例如,他指出了这样一个事实,即不可能在x和y的整个范围内对x和y的任何大值测试乘法函数f(x,y)= x * y。我的问题与他的杂项有关。关于“糟糕的硬件”的评论。我知道这篇文章是在1970年代写的,当时计算机硬件的可靠性较差,但计算机仍然不够完善,因此有时必须犯下计算错误。是否有人知道这种情况发生的频率或是否有任何统计数据?
22 theory  cpu 


3
为什么可执行文件依赖于操作系统而不依赖于CPU?
如果我编写C程序并将其编译为.exe文件,则该.exe文件包含对CPU的原始机器指令。(我认为)。 如果是这样,我怎么可能在运行现代Windows版本的任何计算机上运行编译的文件?每个CPU系列都有不同的指令集。那么.exe,无论使用哪种物理CPU,任何运行适当操作系统的计算机都可以理解我文件中的指令? 同样,通常在某些应用程序“下载”页面上的网站上,您可以下载Windows,Linux和Mac(对于每个操作系统,对于86和64位计算机,通常为两次下载)。为什么每个CPU系列的下载量都没有增加?

5
多个CPU /内核可以同时访问同一RAM吗?
我猜这是会发生的: 如果两个内核试图访问RAM中的相同地址,则一个内核必须等待另一个内核访问RAM。在第二时间,每个核心将尝试访问相同的地址,他们仍然可能有RAM缓存,这样他们就可以访问各自的同时缓存。 如果两个内核试图访问同一RAM中的不同地址,则一个内核必须等待另一个内核访问RAM。 换句话说,我想对于RAM密集型编程任务来说,多处理将无济于事,除非它涉及每个内核多次从RAM中的同一地址读取数据。 那么,多个CPU /内核可以同时访问同一个RAM,还是我所说的正确?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.