Questions tagged «computer-architecture»

计算机体系结构既指计算机外部接口(指令集)的设计,也指计算机内部实现(微体系结构)的设计。这些设计决策的目标是在满足其余约束的同时优化速度,功率效率,尺寸或成本。

7
为什么计算机只使用0和1?
为什么计算机只使用0和1?其他数字(例如2或3)的增加不会加快计算机的速度吗?同样,2和3可以用来缩短整数的位长(2和3可以用来结束整数,因此数字1只需要一个两位。)。 为什么二进制计算机更受欢迎?

4
电脑在更高温度下会加速吗?
在更高的温度下,计算机会更快吗?显然,人们总是想让计算机降温,因为更高的温度会损坏核心组件。 但是,这是硅之间的相互作用吗?硅在高温下会释放更多的电子,而金属组件的电阻会随着温度的升高而增加?还是在整体计算机性能方面可以忽略不计?


4
RISC / CISC指令执行多少个时钟周期?
根据Harris和Harris的《数字设计和计算机体系结构》,有几种实现MIPS处理器的方法,包括以下几种: 所述单周期微架构执行在一个周期的整个指令。(...) 在多周期微架构在一系列更短的周期执行的指令。(...) 该流水线微架构适用于流水线单周期微架构。 架构通常分为RISC或CISC。从RISC与CISC: RISC处理器仅使用可以在一个时钟周期内执行的简单指令。 由于MIPS是RISC体系结构,因此我对上述定义感到困惑,想知道它们之间是否没有任何矛盾。进一步来说: 如果可以将RISC指令划分为更短的周期(提取,解码等),那么如何说仅需一个时钟周期即可执行整个指令?执行每个步骤都不需要一个时钟周期吗? 它是否真的需要一个时钟周期执行一个RISC指令?例如,如果发生高速缓存未命中并且处理器必须等待慢速DRAM,会发生什么情况?这不应该使指令的执行时间延长很多吗? 一个指令周期到底是什么?是一条指令完成所花费的时间(即一个/多个时钟周期)吗? 一条CISC指令在时钟/指令周期中需要花费多长时间?

4
哈佛架构如何提供帮助?
我在读关于arduino和AVR架构的文章时,被困在一个问题上,即如何通过AVR中的哈佛架构引入来解决管道停顿或冒泡的问题。我的意思是哈佛所做的只是为数据存储器和程序存储器提供不同的存储位置。可以在没有操作员的情况下加载程序,但是如何解决上述问题呢?

6
如何有效地为CPU设计操作码?
我正在Logisim中构建一个简单的16位CPU,并准备好ALU和想要的操作码。现在,我发现很难为命令找到正确的编码,以使不同的子电路(例如,逻辑,算术)不需要所有(构成编码的)控制线作为输入,而是尽可能少地输入。是否有任何策略或方法有助于有效的操作码设计? 提前

3
CPU支持堆栈是什么意思?
CPU如何不支持堆栈?使用子例程的任何体系结构(我很确定这是所有体系结构)是否都不必将返回地址压入堆栈,以便它可以返回到调用子例程的位置?堆栈仅表示具有指向特定方向的指针并充当堆栈数据结构的一部分内存。我只是不了解架构如何不支持堆栈。 编译器与硬件体系结构在多大程度上确定了自动内存存储(自动变量还是静态变量)?

4
当您可以对两个寄存器进行XOR以产生0时,为什么MIPS将R0用作“零”?
我认为我正在寻找琐事问题的答案。我试图理解为什么MIPS体系结构在通过对自己的寄存器进行异或运算就可以实现同一目的时,在寄存器中使用显式的“零”值的原因。可以说该操作已经为您完成;但是,我真的无法想象您会使用很多“零”值的情况。我阅读了轩尼诗的原始论文,事实上,它只是分配了一个零,没有任何正当的理由。 是否存在将硬编码二进制赋值为零的逻辑原因? 更新: 在8k的xc32-gcc可执行文件(用于PIC32MZ中的MIPS内核)中,我有一个“零”实例。 add t3,t1,zero 实际答案: 我将赏金授予拥有MIPS和条件代码信息的人。答案实际上取决于条件的MIPS架构。尽管起初我不想分配时间,但我回顾了openparc,MIPS-V和OpenPOWER的体系结构(本文为内部文件),以下是摘要。由于管线的体系结构,R0寄存器是在分支上进行比较所必需的。 整数与零和分支比较(bgez,bgtz,blez,bltz) 整数比较两个寄存器并分支(beq,bne) 整数比较两个寄存器和陷阱(teq,tge,tlt,tne) 整数比较寄存器以及立即数和陷阱(teqi,tgei,tlti,tnei) 它只是归结为硬件在实现中的外观。在MIPS-V手册中,第68页有未引用的报价: 条件分支的设计包括两个寄存器之间的算术比较操作(在PA-RISC和Xtensa ISA中也是如此),而不是使用条件代码(x86,ARM,SPARC,PowerPC),或仅将一个寄存器与零进行比较( Alpha,MIPS)或两个仅用于相等性的寄存器(MIPS)。该设计的动机是观察到组合的比较分支指令ts进入常规流水线,避免了额外的条件代码状态或使用了临时寄存器,并减少了静态代码的大小和动态指令的获取速度。另一个要点是,与零的比较需要很短的电路延迟(尤其是在高级过程中转移到静态逻辑之后),因此几乎与算术幅值比较昂贵。融合比较分支指令的另一个优点是,可以在前端指令流中更早地观察到分支,因此可以更早地进行预测。在可以基于相同条件代码进行多个分支的情况下,具有条件代码的设计可能会有优势,但我们认为这种情况相对较少。 MIPS-V文档没有引用部分的作者。我感谢大家的时间和考虑。

4
为什么BIOS的ROM芯片不使用CMOS技术制成?
阅读有关BIOS / CMOS的计算机硬件课程后,我仍然无法确定为什么不使用CMOS技术构建BIOS的ROM芯片的原因,以及为什么将其连接到名为“ CMOS”的单独芯片上以存储BIOS的原因。配置信息。 这来自讲义: 程序存储在系统BIOS芯片上,而可变数据存储在CMOS芯片上 CMOS硬件组:通用,必要但可能会更改的硬件– RAM,硬盘驱动器,软盘驱动器,串行和并行端口 我知道BIOS存储在闪存中,并且与其他实现相比,CMOS MOSFET技术的功耗更低。 为什么只有像其他存储设备一样不使用CMOS的BIOS ROM才有优势?为什么不能将BIOS配置信息存储在其自己的ROM芯片中而不是“ CMOS芯片”中?

3
复古计算机学校项目的CPU
我是一所IT学校的学生,我们正在尝试一个项目,该项目可以用来向一年级的学生展示舞台背后的工作原理,最终我们想到了制造一台复古计算机。 我已经阅读了许多有关Z80处理器的内容,但是我猜想我们需要更强大的功能,尽管考虑到我们会找到很多文档,ARM可能是一个不错的选择,但我们仍在怀疑该体系结构,还建立了一些特殊需求: 如果需要更多RAM,则使用外部地址总线 > 50Mhz 16或32位 没有BGA / QFN封装 没有FPGA板 串行接口(?) 预算也不是太贵,因为我们的预算有限 P8X32A-D40看起来像一个不错的CPU,但缺少我们需要的RAM数量(32k),我更多地考虑的是> 1MB。也许eZ80是值得考虑的。我们希望得到像您这样的经过实验的人的解答。 谢谢。 编辑:尽管我已经接受了满足我们需求的答案,但该问题仍然可以接受其他建议,因为我们将不得不与愿意参加该项目的学生团队讨论选择问题。

4
为什么要学习微控制器架构?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 我最近开始在一家小公司工作,该公司生产与汽车诊断相关的电子产品。我的上司已经50多岁了,他说他使用的是8051衍生产品,而他们正在做这项工作。我继续搜索Google,以了解8051是否仍然很受欢迎。在Quora中,我看到了这些: ...这可能是最简单的MCU架构。每个外围设备似乎都是准系统版本。我对计时器,时钟,UART等的概念有了很多了解!而且,然后我开始欣赏其他架构-因为我实际上了解这种差异。 ...显然,由于其简单性,任何行业都不会使用它来开发产品... 但为什么?到目前为止,至少作为一个学生,我以前做过很多事情,而不会搞乱建筑。我很高兴用C编码,我使用了LCD外设,并通过不同的协议(SPI,I2C等)连接到其他IC。 除了实时和时间关键型应用程序的有限领域之外,为什么还要烦恼微控制器的体系结构?

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.