标签: cpu

CPU如何实现MUL/MULT等指令?

在不同的汇编语言中,MUL(x86)/ MULT(mips)指的是乘法.这是程序员的黑盒子.我感兴趣的是,无论架构如何,CPU实际上如何实现乘法.假设我的寄存器中有两个16位值,而且我是cpu,所以我必须使用其他的bit-fiddling指令实现MUL(和,或者,xor,not,shl,shr等).我该怎么办?

cpu assembly boolean low-level digital-logic

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

硬件中大整数乘法器的权衡

这是一个理论上的问题,我真的没有经营任何工厂或任何东西;-)

对于小N,N-by-N乘法器可以实现为深度log(N)和N ^ 2门的3到2加法器的树 - 让我们忽略Booth编码等.这是超快的,但是需要不合理的硬件数量.

这个门数很快就会变得不合理(以及接线).但是kN-by-kN通过k ^ 2 2N位部分产品的软件乘法并将它们加在一起将会非常缓慢.

我的问题是 - 在N ^ 2门变得太多(用于门和布线)之后,我们对中等N的非常快速的硬件辅助乘法有什么权衡,但我们仍然希望比纯软件更好.

我可以想象这会出现很多自定义加密芯片,但我只是好奇.

hardware cpu electronics

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

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

Intel E7和E5 Xeon型号之间的区别?

我正在研究构建面向HPC(FLOP)计算的强大机器集群的可能性,因此我一直在审查顶级Intel Xeon模型,并且惊讶地发现Xeon E7型号不支持AVX矢量化,而Xeon E5则支持AVX矢量化.另一方面,E7支持SSE 4.2,它似乎是与FLOP计算和HPC无关的优化,而是适合加速字符计算,例如XML解析.

为了确保我得到正确的差异,我想问一下是否是这种情况E7 Xeon型号不支持AVX并且面向"系统"而E5 Xeon型号支持AVX并且面向HPC密集型FLOP计算.

cpu intel avx

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

批处理文件以°C为单位获取CPU温度并设置为变量

如何获取批处理文件以计算出Cpu的温度并将其作为变量返回.我知道它可以完成,因为我已经看到它已经完成.该解决方案可以使用任何外部工具.我在谷歌上看了至少2个小时,但一无所获.任何人都可以帮忙.谢谢.

windows cpu batch-file temp windows-7

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

LOCK前缀vs MESI协议?

如果MESI协议阻止其他内核写入"独占"拥有的数据,那么x86 LOCK前缀的目的是什么?

我对LOCK提供的内容和MESI提供的内容感到有些困惑?

我理解MESI协议是关于确保内核都看到一致的内存状态,但据我所知,它还可以防止内核写入另一个内核已经写入的内存?

cpu x86 multithreading locking mesi

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

如何在终端(mac)中以%为单位获得CPU利用率

我在linux和windows上看过同样的问题,但不是mac(终端).任何人都可以告诉我如何以%为单位获得当前处理器利用率,因此示例输出将是40%.谢谢

macos terminal cpu

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

NIC中的描述符概念

我试图理解网络驱动程序代码中使用的Rx和Tx描述符的概念.

  1. 是软件(RAM)或硬件(NIC卡)中的描述符.
  2. 他们是如何被填补的.

编辑:所以在Realtek卡驱动程序代码中.我定义了以下结构.

struct Desc
{
        uint32_t opts1;
        uint32_t opts2;
        uint64_t addr;
};

txd->addr = cpu_to_le64(mapping);
txd->opts2 = cpu_to_le32(opts2);
txd->opts1 = cpu_to_le32(opts1 & ~DescOwn);
Run Code Online (Sandbox Code Playgroud)

所以,是opts1 and opts2有位喜欢DescOwn特定的卡?它们是否会由制造商在数据表中定义?

谢谢Nayan

cpu cpu-architecture

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

在缓存页面中调用动态内容(当前使用ajax)的正确方法是什么?

我们有一个新闻网站,我们缓存一个完整的文章页面.

该页面上有4个区域需要继续保持动态:

  1. 查看计数器:我们在页面加载时向该文章的view_counts添加+1.
  2. 标题:在网站的标题上,我们检查是否存在session-> id,如果是,我们显示欢迎[名称],我的个人资料/注销,如果不存在,我们会显示注册/登录.
  3. 评论:我们显示为该文章所做的评论.
  4. 跟踪用户行为:我们跟踪用户在网站上所做的每一个操作

现在,我们想到这样做的唯一方法是通过AJAX调用:

$('#usercheck').load(<?php echo "'" . base_url() . "ajax/check_header'"; ?>);
Run Code Online (Sandbox Code Playgroud)

等等.

这对CPU产生了巨大的负担,但是接近这个的正确/替代方式是什么?

请参照附件:

负载在60分钟

网站上的高交易

javascript php ajax cpu jquery

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

在指定精确容量时,为什么HashMap会再次调整大小()?

代码说的不仅仅是文字,因此:

final int size = 100;
Map<Integer, String> m = new HashMap<>(size);
for (int i = 0; i < size; i++) m.put(i, String.valueOf(i));
Run Code Online (Sandbox Code Playgroud)

为什么HashMap内部调用时间!resize() 21 2(感谢Andreas在内部确认JVM使用HashMaps,21个cals中的19个来自其他进程)

resize()我的申请仍然无法接受两次通话.我需要对此进行优化.

如果我是一个新的java开发人员,我首先直观地猜测HashMap构造函数中的"容量"意味着它是我(HashMap的使用者)将要放入Map中的元素数量的容量.但是这是错误的.

如果我想优化我对HashMap的使用,以便它根本不需要自己调整大小,那么我需要非常了解HashMap的内部结构,以确切知道HashMap存储桶阵列需要多么稀疏.这在我看来很奇怪.HashMap应隐式为您执行此操作.这是OOP中封装的全部要点.

注意:我已经确认resize()是我的应用程序用例的瓶颈,所以这就是为什么我的目标是减少调用resize()的次数.

问题:

如果我知道我要预先在地图中输入的确切数量.我选择了什么容量,以防止任何额外的呼叫resize()操作?有点像size * 10?我还想了解为什么这样HashMap设计的背景.

编辑:我被问到很多为什么这个优化是必要的.我的应用程序在hashmap.resize()中花费了大量的CPU时间.我的应用程序使用的哈希映射被初始化,其容量等于我们放入其中的元素数量.因此,如果我们可以减少resize()调用(通过选择更好的初始容量),那么我的应用程序性能会得到改善.

java cpu optimization hashmap data-structures

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