标签: computer-architecture

我们可以将一台只有寄存器的计算机作为内存吗?

寄存器是计算机中最快的记忆.因此,如果我们想要建立一个只有寄存器而不是缓存的计算机,是否可能?我想甚至用寄存器替换磁盘,尽管它们是自然易失性的存储器.我们是否有一些非易失性寄存器用于此用途?它会变得如此之快!我只是想知道这是否可能发生?

memory computer-architecture

9
推荐指数
2
解决办法
4525
查看次数

为什么我们需要不同的CPU架构用于服务器和迷你/大型机和混合核心?

我只是想知道除INTEL和AMD之外还有哪些其他CPU架构可用.因此,在Wikipedia上找到了CPU架构列表.

它将值得注意的CPU架构分为以下几类.

  1. 嵌入式CPU架构
  2. 微机CPU架构
  3. 工作站/服务器CPU架构
  4. 迷你/大型机CPU架构
  5. 混合核心CPU架构

我正在分析他们的目的并且几乎没有疑问.以微电脑CPU(PC)架构为参考,并将其与其他人进行比较:

嵌入式CPU架构:

  • 他们是一个全新的世界.
  • 嵌入式系统很小并且执行非常特定的任务,主要是实时和低功耗,因此我们不需要在微型计算机CPU(典型PC)中提供如此多的这样的宽寄存器.换句话说,我们确实需要一个新的小而小的架构.因此新架构和新指令RISC.
  • 上述观点还阐明了为什么我们需要一个单独的操作系统(RTOS).

工作站/服务器CPU架构

  • 我不知道什么是工作站.有人澄清了工作站.
  • 截至服务器.它专门用于运行特定的软件(如httpd,mysql等服务器软件).即使其他进程运行,我们也需要提供服务器进程优先级,因此需要新的调度方案,因此我们需要与通用操作系统不同的操作系统.如果您对服务器操作系统的需求有更多要点,请提及.
  • 但我不明白为什么我们需要一个新的CPU架构.为什么微电脑CPU架构无法完成这项工作.有人可以澄清一下吗?

迷你/大型机CPU架构

  • 我再一次不知道这些以及用于什么样的miniframes或大型机?我只知道它们非常大并且占据了整个楼层.但我从未读过他们试图解决的一些现实问题.如果有人在其中一个工作.分享您的知识.
  • 有人可以澄清其目的吗?为什么微电脑CPU架构不适合它呢?
  • 这也有一种新的操作系统吗?为什么?

混合核心CPU架构

  • 从来没有听说过这些.

如果可能,请以这种格式保留您的答案:

XYZ CPU架构

  • XYZ的目的
  • 需要一个新的架构.为什么现在的微机CPU架构不能工作?它们达到3GHZ并具有多达8个核心.
  • 需要新的操作系统为什么我们需要一种新的操作系统来实现这种架构?

编辑:

伙计们,这不是一个家庭作业问题.我无法做任何让你相信的事情.我不知道问题是不清楚还是别的,但我只对具体的技术细节感兴趣.

让我以另一种方式提出这个问题的一部分.您正在接受采访,如果面试官问您"告诉我,微电脑处理器速度快,功能强大,我们的PC操作系统也很好.为什么我们需要不同的架构,如SPARC,Itanium,需要不同的操作系统,如Windows Server对于服务器?" 你会回答什么?我希望得到我的观点.

assembly computer-science operating-system computer-architecture

8
推荐指数
4
解决办法
5571
查看次数

Dalvik VM如何在方法调用之间保存和恢复其寄存器?

从语义上讲,Dalvik VM为每种方法都有一组新的寄存器,并且没有访问调用堆栈的指令.但就其实现而言,寄存器应以某种方式保存在方法调用上并在方法返回时恢复.Dalvik(谷歌的实施)如何做到这一点?

android jvm computer-architecture dalvik vm-implementation

8
推荐指数
2
解决办法
1313
查看次数

八进制全加器如何

我有这个项目听下面,我不知道从哪里开始也许有人可以给我一些指示或者可能指出我正确的方向开始这个?谢谢!!

输入: A,B =八进制数字(见下面的表示); Cin =二进制数字

输出: S =八进制数字(见下面的表示); Cout =二进制数字

任务:使用二进制FAs,设计一个充当八进制FA的电路.更具体地说,该电路将输入两个八进制数字A,B,将它们转换为二进制数,仅使用二进制FAs加入它们,将二进制结果转换回八进制数,并将该和输出为八进制数字,并且二进制数字执行.

八进制数字的输入/输出二进制表示

每个八进制数字将使用以下8位二进制表示来表示:

八进制8位输入线:

数字: 0 1 2 3 4 5 6 7
0 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0
2 0 0 1 0 0 0 0 0
3 0 0 0 1 0 0 0 0
4 0 0 0 0 1 0 0 0
5 0 0 0 0 0 1 0 0 …

binary circuit computer-architecture boolean-operations

8
推荐指数
2
解决办法
2931
查看次数

字大小和数据总线

对字大小的定义感到困惑.我读到处理器的字大小是它的数据总线宽度.像8位处理器一样有8位宽的数据总线.我最近读到虚拟地址空间的最大大小由字大小决定,即如果字大小是n位,则最大虚拟地址空间是2 ^ n -1.但我一直认为最大虚拟地址空间由地址总线宽度决定,即n位宽的地址总线可以寻址最大2 ^ n个字节.那么,这是真的吗?

此外,这与指针有关,因为n位数据总线只能携带n位地址.因此,可以通过指针访问最多2 ^ n个字节.

computer-architecture

8
推荐指数
1
解决办法
1万
查看次数

GPU架构源书

我想知道关于GPU的硬件架构的所有内容,除了GPU编程,我在互联网上的一切都没有,我需要基本的硬件介绍,如ALU,内存管理......还有谁可以向我介绍一些优秀的书或类似的东西?提前致谢 .

hardware gpu computer-architecture

8
推荐指数
1
解决办法
4936
查看次数

ISR和函数调用之间的区别?

我想了解ISR(中断服务程序)和函数调用之间的区别.

从硬件的角度来看,我觉得函数调用和ISR都是一样的.如果我错了,请纠正我.我所能找到的有关ISR和函数调用的内容如下:

ISR:

  • 在程序执行期间可能发生的异步事件

  • 将PC,标志和寄存器保存在堆栈中并禁用所有中断并加载ISR的地址

  • ISR不能有可传递给它的参数

  • 无法返回值
  • 启用中断
  • 通常很小,因为他们正在花时间进行其他一些过程
  • 一些ISR有自己的堆栈

功能:

  • 在有函数调用时发生

  • 将PC和寄存器保存在堆栈中

  • 可以有参数

  • 可以返回值

  • 对执行的大小和持续时间没有限制

除此之外还有什么区别吗?请告诉我.我还读过关于从ISR进行函数调用的方法.请突出显示它.

embedded operating-system function-calls computer-architecture isr

8
推荐指数
1
解决办法
2万
查看次数

x86是什么意思?

我知道x86意味着一个32位的计算机/操作系统,但这是什么86意思呢?不应该是x32吗?

另外,i386,i586,i686,i986是什么意思?

x86 computer-architecture

8
推荐指数
1
解决办法
2万
查看次数

什么是"虚假分享"?如何重现/避免它?

今天我和我的教授在并行编程课上有了不同的理解,关于什么是"虚假共享".我的教授所说的没什么意义,所以我立即指出了.她认为"虚假分享"会导致程序结果出错.

我说,"错误共享"发生在将不同的内存地址分配给同一个缓存行时,将数据写入其中一个会导致另一个被踢出缓存.如果处理器在两个错误共享地址之间写入转向和转向,则它们都不能停留在高速缓存上,因此所有操作都将导致DRAM的访问.

到目前为止,这是我的意见.事实上,我不确定我说的是什么......如果我有误解,请指出.

所以有一些问题.假设缓存为64字节对齐,4路组关联.

  1. 是否有可能两个超过64字节的地址是"错误共享"?
  2. 单线程程序是否可能遇到"错误共享"问题?
  3. 重现"虚假共享"的最佳代码示例是什么?
  4. 一般来说,应该注意什么以避免程序员的"错误共享"?

parallel-processing optimization caching computer-architecture false-sharing

8
推荐指数
1
解决办法
1427
查看次数

Linux页表管理和MMU

我对linux内核和MMU之间的关系有疑问.我现在明确指出Linux内核管理虚拟内存地址和物理内存地址之间的页表.同时在x86架构中有MMU,它管理虚拟内存地址和物理内存地址之间的页表.如果MMU出现在CPU附近,内核是否还需要处理页表?

这个问题可能是愚蠢的,但另一个问题是,如果MMU负责内存空间,谁管理高内存和低内存?我相信内核将从MMU接收虚拟内存大小(4位,32位),然后内核将区分虚拟地址中的用户空间和内核空间.我对么?还是完全错了?

非常感谢提前!

linux kernel computer-architecture mmu

8
推荐指数
1
解决办法
5953
查看次数