侵权投诉

姗姗来迟的Meltdown/Spectre分析

Linuxer 2020-10-26 09:55 次阅读

Meltdown/Spectre在2018年初闹得沸沸扬扬, 可以说是有史以来最有影响的cpu漏洞了. 当时有过简单了解, 但是不够深入, 这两天重新又看了一下.

背景知识

乱序执行

cpu的乱序执行一般都使用Tomasulo算法, x86也不例外, 主要包括:

Common Data Bus (CDB).

Unified Reservation Station (Scheduler).

Register Renaming (Reorder Buffer).

该算法虽然是乱序执行, 但是会顺序完成 (retire), 只有在retire后它的输出才会architectually visible (简单地说, 不影响程序逻辑), 但是没有architectually visible不等于没有影响, 当输出更新到reservation station后, 因为cdb的存在, 其他指令已经可以读到. 另外, 非常重要的一点, 异常只有在指令retire的时候才会触发, 对于上面的例子, 即使cpu已经检查到第一条指令没有访问权限, 也只能等到该指令retire时才会触发, 取决于该指令在ROB的位置, 可能马上触发也可能很久之后, ROB容量可以很容易做到比如192这个级别.

这幅图可以对ROB有个大致了解:

旁路攻击

Meltdown/Spectre使用的都是旁路攻击(Side Channel Attack), 这里引用What Is a Side Channel Attack的描述:

Side channel attacks take advantage of patterns in the information exhaust that computers constantly give off: the electric emissions from a computer's monitor or hard drive, for instance, that emanate slightly differently depending on what information is crossing the screen or being read by the drive's magnetic head. Or the fact that computer components draw different amounts of power when carrying out certain processes. Or that a keyboard's click-clacking can reveal a user's password through sound alone.

Meltdown/Spectre利用了旁路攻击的一种常见手段Flush+Reload, CPU访问DRAM和cache的时间有数量级差异, 所以通过衡量时间就可以判断出数据是否在cache里面.

Attacker先通过Flush清空对应的cache line

触发Victim访问该数据

Attacker会访问同一数据并测量访问时间

投机执行

投机执行(Speculative Execution)本质上是乱序执行的一种, 存在条件判断的时候, cpu如果预测该分支为true, 则投机执行里面的语句.

分支预测

Indirect branch

Branch Target Buffer (BTB)

Indirect JMP and CALL instructions consult the indirect branch predictor to direct speculative execution to the most likely target of the branch. The indirect branch predictor is a relatively large hardware structure which cannot be easily managed by the operating system.

Return Stack Buffer (RSB)

Prediction of RET instructions differs from JMP and CALL instructions because RET first relies on the Return Stack Buffer (RSB). In contrast to the indirect branch predictors RSB is a last-in-first-out (LIFO) stack where CALL instructions “push”entries and RET instructions “pop” entries. This mechanism is amenable to predictable software control.

Train BTB

BTB使用虚拟地址, 并且是截断的地址, 不需要和victim完全一样的地址

SMT会共享同一个BTB, 即使不在同一个cpu[线程]上, 也可以train

Gadget

Spectre Attacks: Exploiting Speculative Execution

Return-Oriented Programming (ROP) [63] is a technique that allows an attacker who hijacks control flow to make a victim perform complex operations by chaining together machine code snippets, called gadgets, found in the code of the vulnerable victim. More specifically, the attacker first finds usable gadgets in the victim binary. Each gadget performs some computation before executing a return instruction.

Meltdown and Spectre - Usenix LISA 2018

A“gadget”is a piece of existing code in an (unmodified) existing program binary. For example code contained within the Linux kernel, or in another “victim” application
A malicious actor influences program control flow to cause gadget code to run
Gadget code performs some action of interest to the attacker
For example loading sensitive secrets from privileged memory
The code following the bounds check is known as a “gadget”

Meltdown

攻击方法

先看一个meltdown的示例程序, 普通权限用户通过它能够读出kernel space中0xffffffff81a000e0的内容, 以下是攻击者的代码:

char data = *(char*) 0xffffffff81a000e0; array[data * 4096] = 0;

其中0xffffffff81a000e0是位于kernel space的地址, 选择这个位置是因为它里面是确定的值, 方便验证方法是否有效:

# sudo grep linux_banner /proc/kallsyms ffffffff81a000e0 R linux_banner

按照正常的理解, 第一条语句访问内核地址会触发异常, 所以不能获得data值. Meltdown利用了以下因素:

kernel space和user space在同一地址空间, 即使cpu会执行权限检查

cpu乱序执行. 第一条语句确实[最终]会触发异常, 但是并没有阻止第二条语句的执行. 当然攻击者需要处理该异常信号, 否则代码不能继续执行, 信号处理函数的具体处理逻辑可以见下面提到的例子. 另外也可以使用别的手段, 比如放在投机执行的地方, 投机执行的指令导致的异常会被忽略

第二条语句通过旁路攻击的方法获得data的值. data取值只有256种可能, 通过访问array[]不同偏移的时长确定data的取值. 这里能够同时获取8bit数据, 也可以设计出获取其他长度数据的代码

举个例子

以这个为例: github.com/paboldin/mel, 里面主要逻辑如下:

asm volatile ( "1: " ".rept 300 " "add $0x141, %%rax " ".endr " "movzx (%[addr]), %%eax " "shl $12, %%rax " "jz 1b " "movzx (%[target], %%rax, 1), %%rbx " "stopspeculate: " "nop " : : [target] "r" (target_array), [addr] "r" (addr) : "rax", "rbx" );

执行结果如下:

cached = 31, uncached = 336, threshold 102 read ffffffff8164e080 = 25 % (score=999/1000) read ffffffff8164e081 = 73 s (score=1000/1000) read ffffffff8164e082 = 20 (score=996/1000) read ffffffff8164e083 = 76 v (score=999/1000) read ffffffff8164e084 = 65 e (score=999/1000) read ffffffff8164e085 = 72 r (score=1000/1000) read ffffffff8164e086 = 73 s (score=999/1000) read ffffffff8164e087 = 69 i (score=1000/1000) read ffffffff8164e088 = 6f o (score=1000/1000) read ffffffff8164e089 = 6e n (score=999/1000) read ffffffff8164e08a = 20 (score=1000/1000) read ffffffff8164e08b = 25 % (score=1000/1000) read ffffffff8164e08c = 73 s (score=1000/1000) read ffffffff8164e08d = 20 (score=1000/1000) read ffffffff8164e08e = 29 ( (score=998/1000) read ffffffff8164e08f = 61 % (score=999/1000)

可以看到上面的score都非常高, 说明通过Flush+Reload是很有效的. 代码里面关键的几点:

8-11行是主要代码, 和论文里的例子几乎一样

10行的jz论文里提到: While CPUs generally stall if a value is not available during an out-of-order load operation [28], CPUs might continue with the out-of-order execution by assuming a value for the load.

4-6行. 似乎完全不相干, 即使删掉它们, 运行结果也完全一样!

继续来看4-6行的作用, 首先看到在上面的汇编代码执行之前, 执行了语句:

_mm_mfence();

先把它删掉, 重新执行还是能够读出数据, 但是score很多已经到个位数了, 说明已经不能稳定读出数据了. 更进一步, 把其中rept的指令改成:

mov $0x141, %%rax

此时已经完全不能读出数据了, 即使把mfence加回来也无济于事. 这是因为meltdown要攻击成功, 需要时间窗口, 越权访问那条指令必须在第二条指令加载数据到cache之后(or in flight?) retire, 否则触发异常从而会中断乱序执行. 从测试可以知道:

mfence能很好地起到阻塞后面异常指令retire, 因为它很慢, 而且cpu是顺序retire的

rept中add $0x141, %%rax一定程度也能起到阻塞的作用, 但是没有mfence稳定. 注意这条add指令会同时读写rax寄存器, 导致这300条指令前后形成read-after-write的依赖关系, 这样在执行的时候就会形成依赖关系, 从而导致ROB上指令的积压, 而mov $0x141 %%rax因为register renaming的原因并不会形成真实的依赖关系. (ROB的容量和入队速率, ALU执行单元个数, Reservation State的容量, 这些可以进行更细致的分析)

防御方法

Kernel Page Table Isolation (KPTI) 中user space对应的页表已经没有kernel space的内容, 这样就不能访问到kernel的数据了, 不管有没有乱序执行.

Whereas current systems have a single set of page tables for each process, KAISER implements two. One set is essentially unchanged; it includes both kernel-space and user-space addresses, but it is only used when the system is running in kernel mode. The second "shadow" page table contains a copy of all of the user-space mappings, but leaves out the kernel side. Instead, there is a minimal set of kernel-space mappings that provides the information needed to handle system calls and interrupts, but no more. Copying the page tables may sound inefficient, but the copying only happens at the top level of the page-table hierarchy, so the bulk of that data is shared between the two copies.

Whenever a process is running in user mode, the shadow page tables will be active. The bulk of the kernel's address space will thus be completely hidden from the process, defeating the known hardware-based attacks. Whenever the system needs to switch to kernel mode, in response to a system call, an exception, or an interrupt, for example, a switch to the other page tables will be made. The code that manages the return to user space must then make the shadow page tables active again.

Spectre V1

攻击方法

以下代码中即使if条件为false, cpu仍然可能先投机执行第二条语句, 从而访问到不应该访问的数据array1[x], 其中x >= array1_size, 所以这种攻击也称为Bounds Check Bypass.

if (x < array1_size) y = array2[array1[x] * 4096];

上面是victim的代码, 为了完成攻击:

attacker需要在victim中找到该段代码, 毫无疑问

attacker需要能够控制变量x

attacker需要能够访问array2, 否则没有side channel

array2不在cache, 这是旁路攻击使用Flush+Reload的前提

array1_size不在cache, 这样条件指令所需时间更长, 有利于投机执行; array1[x]在cache, 这样array2[array1[x] * 4096]才能尽早发出

一般来说要同时满足条件1,2,3并不容易, 但是eBPF可以比较容易构造, 毕竟可以自己写eBPF脚本.

防御方法

防御的思路是: 即使投机执行了错误路径也不会泄露信息, 这种方式比较简单:

index < size. 正确性没有影响

index >= size. array_index_nospec返回值范围在[0, size), 所以不会有越界访问

/* * array_index_nospec - sanitize an array index after a bounds check * * For a code sequence like: * * if (index < size) { * index = array_index_nospec(index, size); * val = array[index]; * } * * ...if the CPU speculates past the bounds check then * array_index_nospec() will clamp the index within the range of [0, * size). */ #define array_index_nospec(index, size) ({ typeof(index) _i = (index); typeof(size) _s = (size); unsigned long _mask = array_index_mask_nospec(_i, _s); BUILD_BUG_ON(sizeof(_i) > sizeof(long)); BUILD_BUG_ON(sizeof(_s) > sizeof(long)); (typeof(_i)) (_i & _mask); })

Spectre V2

v1通过bypass bounds check, 可以在选择2条不同的执行路径, 而v2通过训练indirect branch, 理论上可以引诱cpu[错误路径]去执行任意gadget.

防御方法

Retpoline通过把jmp/call指令转换为ret解决分支预测的问题, 也即把分支预测由BTB转移到了RSB, 注意软件可以很方便地控制RSB (underflow问题这里不讨论).

这里一jmp指令的indirect branch为例:

关键点在于ret导致的分支预测采用了RSB的内容, 而该内容是在call的时候产生的, 也就是上面的语句2. 所以即使针对ret的分支预测错了, 语句2并不会泄漏任何信息, 最后ret语句读到(%rsp)的内容, 该值和RSB里的值不符, 投机执行结束, 它没产生任何正向效果, 但是也没有任何负面效果.

引用

Meltdown: Reading Kernel Memory from User Space

Spectre Attacks: Exploiting Speculative Execution

Meltdown and Spectre - Usenix LISA 2018

Retpoline: A Branch Target Injection Mitigation

Hacker Lexicon: What Is a Side Channel Attack?

KAISER: hiding the kernel from user space

本文作者:J.FW

原文标题:迟到的Meltdown/Spectre分析

文章出处:【微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

原文标题:迟到的Meltdown/Spectre分析

文章出处:【微信号:LinuxDev,微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

使用多种EDA工具实现FPGA设计流程的详细资料说明

本文介绍了FPGA的完整设计流程,其中包括电路设计与输入、功能仿真、综合优化、综合后仿真、实现与布局....
发表于 11-27 17:57 15次 阅读
使用多种EDA工具实现FPGA设计流程的详细资料说明

怎么才能做好嵌入式开发?

引言怎么才能做好嵌入式开发?学好C语言吧!今天就来推荐一篇大佬写的嵌入式C语言知识点总结。C语言中的....
的头像 STM32嵌入式开发 发表于 11-27 16:18 52次 阅读
怎么才能做好嵌入式开发?

对于人工智能技术不能太乐观,也不能过于悲观

据麦肯锡全球研究院的研究,截至2030年,人工智能每年将额外创造13万亿美元的价值。
的头像 如意 发表于 11-27 16:01 272次 阅读
对于人工智能技术不能太乐观,也不能过于悲观

国外空气源热泵泳池机组的需求上升,出口市场份额逐步提升

2020年,受新冠疫情影响,国内外经济发展遭受重创,在各行各业发展的迷茫时期,空气源热泵出口市场却独....
的头像 牵手一起梦 发表于 11-27 15:36 66次 阅读
国外空气源热泵泳池机组的需求上升,出口市场份额逐步提升

人工智能是否永远保持着绝对理性和一定公平吗

人工智能已经遍布我们的日常生活。从YouTube的首页推荐到生产药物,它无所不在,它对我们生活的影响....
的头像 如意 发表于 11-27 15:20 106次 阅读
人工智能是否永远保持着绝对理性和一定公平吗

关键容器应用如何进行备份?

根据Gartner预测,到2022年,全球将有超过75%的组织在生产中运行容器化应用程序。在生产系统....
的头像 高端存储知识 发表于 11-27 15:11 83次 阅读
关键容器应用如何进行备份?

AMD RX 6000架构带来“显存智取”技术,提升游戏性能可超过10%

AMD RDNA 2架构和RX 6000系列带来了一项名为“显存智取”(Smart Access M....
的头像 牵手一起梦 发表于 11-27 14:52 121次 阅读
AMD RX 6000架构带来“显存智取”技术,提升游戏性能可超过10%

OPPO在专利诉讼中获全胜!法院裁定驳回Fractus全部诉讼请求

据知情人士透露,近日,因涉诉专利被国家知识产权局裁定全部无效,上海知识产权法院裁定驳回西班牙公司Fr....
的头像 lhl545545 发表于 11-27 14:29 112次 阅读
OPPO在专利诉讼中获全胜!法院裁定驳回Fractus全部诉讼请求

新思PCIe 5.0 IP与英特尔CPU成功实现全系统互操作

“新思科技将继续与英特尔等行业领导者开展合作,为其提供高质量的IP,以满足开发者在新时代高性能计算系....
的头像 新思科技 发表于 11-27 14:27 170次 阅读
新思PCIe 5.0 IP与英特尔CPU成功实现全系统互操作

新思科技宣布推出最新版本IC Validator物理验证解决方案

“设计规模不断扩大、制造复杂性不断升级,处于前沿设计的客户日益面临设计收敛的挑战,因此及时的物理验证....
的头像 新思科技 发表于 11-27 14:22 95次 阅读
新思科技宣布推出最新版本IC Validator物理验证解决方案

兆芯Win10轻薄笔记本怎么样?

早前本人曾经测试过两款国产 CPU 的台式机,收到不少网友的评论,纷纷表示已经迈开了成功的第一步,只....
的头像 我快闭嘴 发表于 11-27 12:05 161次 阅读
兆芯Win10轻薄笔记本怎么样?

这些机器学习分类器性能标准你知道吗?

在机器学习算法中,在模型训练出来之后,总会去寻找衡量模型性能的指标。评价指标是针对将相同的数据,使用....
的头像 自然语言处理爱好者 发表于 11-27 10:37 63次 阅读
这些机器学习分类器性能标准你知道吗?

基于嵌入式CPU Smart Core实现机载飞行参数系统的设计

嵌入式系统把计算机直接嵌入到应用系统中,融合了计算机软件、硬件、通信和半导体技术,是信息技术的终端产....
的头像 电子设计 发表于 11-27 10:29 241次 阅读
基于嵌入式CPU Smart Core实现机载飞行参数系统的设计

基于MCS-51系列单片机实现遥测数据存储系统的设计

基于上述原因,本文提出了采用单片机控制硬盘对遥测数据进行实时存储的方案,对数千秒遥测数据进行实时无丢....
的头像 电子设计 发表于 11-27 10:12 211次 阅读
基于MCS-51系列单片机实现遥测数据存储系统的设计

号称亿影剑的Redmi Note 9 Pro正式发布反应俱佳

今日晚间,Redmi Note 9系列“三剑客”如约发布,分别为Note 9 Pro、Note 9、....
的头像 lhl545545 发表于 11-27 10:11 151次 阅读
号称亿影剑的Redmi Note 9 Pro正式发布反应俱佳

Redmi Note 9系列全球累计销量突破3000万部

Redmi Note 9系列发布会上,卢伟冰援引市调机构OMDIA的数据称,Redmi Note 8....
的头像 lhl545545 发表于 11-27 10:00 102次 阅读
Redmi Note 9系列全球累计销量突破3000万部

Redmi Note 9 Pro系列三剑客正式亮相

11月26日晚,Redmi召开Note 9系列新品发布会,带来了Note 9三剑客,分别是Note ....
的头像 lhl545545 发表于 11-27 09:56 127次 阅读
Redmi Note 9 Pro系列三剑客正式亮相

如何设计遥控车门开关RKE系统

遥控车门开关(RKE)系统允许用户使用钥匙扣上的发射机来锁定汽车门或者开锁,该发射机传输数据到汽车内....
发表于 11-27 04:06 9次 阅读
如何设计遥控车门开关RKE系统

总线的分类合集详细说明

总线之前,首先应该明白总线是什么?度娘的完整定义是:总线是计算机各种功能部件之间传送信息的公共通信干....
发表于 11-27 03:59 10次 阅读
总线的分类合集详细说明

单片机是如何构成的?

  单片机是这些电器动作的关键,是指挥硬件运行的。例如:接收按钮或按键的输入信号,按照事先编好的程序,指挥马达和LCD的...
发表于 11-26 17:12 108次 阅读
单片机是如何构成的?

数据成为了一种新石油,该如何挖掘其价值

如今,数据成为了一种新石油,但是如何挖掘其价值?在数据的生命周期中有很多阶段,这就是企业需要采用一些....
的头像 Les 发表于 11-26 16:53 155次 阅读
数据成为了一种新石油,该如何挖掘其价值

欧盟将允许企业获取个人数据来进行创新

据报道,欧盟已经提出了一些新规则,允许企业获取公共和个人数据,旨在与美国和亚洲的同行竞争,并鼓励在气....
的头像 如意 发表于 11-26 16:51 250次 阅读
欧盟将允许企业获取个人数据来进行创新

玩PC游戏,是CPU只要还是显卡重要?

为了玩游戏,不少玩家都不惜血本组装一台万元机,其中CPU和显卡作为决定电脑性能的核心硬件,玩家们格外....
的头像 如意 发表于 11-26 16:25 375次 阅读
玩PC游戏,是CPU只要还是显卡重要?

影驰科普:玩游戏选择显卡还是CPU?

为了玩游戏,不少玩家都不惜血本组装一台万元机,其中CPU和显卡作为决定电脑性能的核心硬件,玩家们格外....
的头像 工程师邓生 发表于 11-26 16:09 162次 阅读
影驰科普:玩游戏选择显卡还是CPU?

嵌入式Linux系统CPU控制常见办法测试

01 测试环境 Xilinx ZCU106 单板 Xilinx VCU TRD2020.1 02 介....
的头像 FPGA开发圈 发表于 11-26 14:17 767次 阅读
嵌入式Linux系统CPU控制常见办法测试

TikTok出售令期限再次延长7天

根据11月26日 消息:根据一份法律文件显示,特朗普政府同意将TikTok剥离在美业务的期限再次延长....
的头像 lhl545545 发表于 11-26 11:53 675次 阅读
TikTok出售令期限再次延长7天

一图读懂惠普游戏本全新控制中心,支持 CPU 智能降压

IT之家 11 月 25 日消息 根据惠普官方的消息,惠普游戏本全新控制中心发布,支持 CPU 智能....
的头像 工程师邓生 发表于 11-26 11:48 192次 阅读
一图读懂惠普游戏本全新控制中心,支持 CPU 智能降压

联发科MT6893曝光:业界首款6nm A78芯片

联发科发布的MT6893采用了八核三集群的CPU组合,其中包括一个3.0GHz的Cortex-A78....
的头像 我快闭嘴 发表于 11-26 11:45 766次 阅读
联发科MT6893曝光:业界首款6nm A78芯片

华为鲲鹏计算从芯片开放到鲲鹏全栈能力开放

在今天举行的“2020绿色计算产业峰会”上,华为鲲鹏计算业务总裁张熙伟表示:我们已经奠定鲲鹏产业格局....
的头像 lhl545545 发表于 11-26 11:40 280次 阅读
华为鲲鹏计算从芯片开放到鲲鹏全栈能力开放

俄罗斯将研发基于Elbrus VLIW架构的32核处理器

据报道,俄罗斯联邦工业和贸易部已竞标开发基于Elbrus VLIW架构的32核处理器。CPU将针对各....
的头像 我快闭嘴 发表于 11-26 10:31 547次 阅读
俄罗斯将研发基于Elbrus VLIW架构的32核处理器

AMD如何用牺牲性能来换取电池续航时间?

不知道大家在使用笔记本电脑时是否注意过,插电和不插电的情况下,笔记本性能的反应是不是不一样。比如在插....
的头像 lhl545545 发表于 11-26 09:08 299次 阅读
AMD如何用牺牲性能来换取电池续航时间?

如何使用6个芯片实现组装一台计算机

电子发烧友网站提供如何使用6个芯片实现组装一台计算机资料免费下载
发表于 11-26 07:50 21次 阅读
如何使用6个芯片实现组装一台计算机

如果LIRC被WindowWatchdogTimer选择为时钟源,CPU是否可以在进入断电模式后被唤醒?

如果LIRC(低速内部RC振荡器)被WindowWatchdogTimer(WWDT)选择为时钟源,CPU是否可以在进入断电模式后被(WWDT...
发表于 11-26 07:44 0次 阅读
如果LIRC被WindowWatchdogTimer选择为时钟源,CPU是否可以在进入断电模式后被唤醒?

汤新加坡团队 针对长尾数据分布提出了视觉识别方案

导读:在NeurIPS 2020上,商汤新加坡团队提出的Balanced-Meta Softmax ....
的头像 Les 发表于 11-25 17:05 91次 阅读
汤新加坡团队 针对长尾数据分布提出了视觉识别方案

RTX 3060 Ti在DX12游戏跑分曝光:性能看齐RTX 2080S

在下月正式发布前,RTX 3060 Ti在DX12游戏《奇点灰烬(Ashes of the Sing....
的头像 工程师邓生 发表于 11-25 16:55 149次 阅读
RTX 3060 Ti在DX12游戏跑分曝光:性能看齐RTX 2080S

武汉白沙洲长江大桥:应用北斗技术的检测系统全天候监控

近日,位于武昌梅家山的武汉城投集团城运公司监控指挥中心显示大屏上,各种数据、图像实时变化,一条条曲线....
的头像 通信信号处理研究所 发表于 11-25 16:14 242次 阅读
武汉白沙洲长江大桥:应用北斗技术的检测系统全天候监控

土壤水分记录仪的应用领域有哪些,它的作用是什么

土壤温度、土壤湿度、都是影响植物生长的重要环境参数、土壤温度变化会影响土壤有机质的转化,土壤溶液的移....
发表于 11-25 15:47 92次 阅读
土壤水分记录仪的应用领域有哪些,它的作用是什么

预测2025年装载机销售将达到14万台,将向装载机制造强国方向挺进

在工程机械制造行业,除了挖掘机这一大头外,装载机也是炙热之星。2019年,装载机的销量占当年总工程机....
的头像 牵手一起梦 发表于 11-25 15:33 177次 阅读
预测2025年装载机销售将达到14万台,将向装载机制造强国方向挺进

英特尔自研芯片的新战略解读

英特尔(Intel Corp.)比任何一家公司都更有资格代表「硅谷」这个名称中富有历史感的「硅」字。....
的头像 我快闭嘴 发表于 11-25 15:10 492次 阅读
英特尔自研芯片的新战略解读

苹果M1芯片如此厉害的三个原因分析

苹果今年的发布会三部曲终于落下了帷幕。这场压轴大戏上,发布了苹果自研芯片Apple Silicon的....
的头像 我快闭嘴 发表于 11-25 15:05 651次 阅读
苹果M1芯片如此厉害的三个原因分析

Intel为何不怕AMD抢夺桌面CPU市场?

AMD的锐龙处理器从去年的锐龙3000系列开始才真正具备正面刚酷睿的实力,今年的锐龙5000在单核、....
的头像 如意 发表于 11-25 12:17 347次 阅读
Intel为何不怕AMD抢夺桌面CPU市场?

全球移动通信系统协会选出四名新董事会成员

全球移动通信系统协会(GSMA)宣布,法国Orange首席执行官斯蒂芬·理查德将继续担任董事会主席并....
的头像 lhl545545 发表于 11-25 11:55 229次 阅读
全球移动通信系统协会选出四名新董事会成员

在无人机专用武器领域美国AGM-114C/K反坦克导弹是标配

  在近期的亚美尼亚和阿塞拜疆的冲突当中,无人机强大的攻击力使得各国重新认识了无人机巨大的价值。作为....
发表于 11-25 11:33 178次 阅读
在无人机专用武器领域美国AGM-114C/K反坦克导弹是标配

FPGA加速的厉害之处在哪里?

轰轰烈烈的双十一落下了帷幕,2020年的双十一成绩依旧斐然。天猫11月11日0点刚过,天猫双11的订....
的头像 EDA365 发表于 11-25 11:17 221次 阅读
FPGA加速的厉害之处在哪里?

CPU温度过高?教你如何关闭超线程功能

CPU散热是很多玩家极为关注的问题,温度高了不仅对CPU性能不利,还会影响使用寿命等。如果发觉自己的....
发表于 11-25 11:12 59次 阅读
CPU温度过高?教你如何关闭超线程功能

中国联通日前开启5G消息中心联合公开测试

中国电信、中国联通日前开启5G消息中心联合公开测试,为后续中国电信、中国联通组织5G消息平台采购提供....
的头像 lhl545545 发表于 11-25 11:08 198次 阅读
中国联通日前开启5G消息中心联合公开测试

大数据和机器学习的数据如何演变

大数据会影响质量,因为大数据的定义特征是数量,种类和速度使验证变得困难难以捉摸的“第四”,即准确性组....
的头像 电子魔法师 发表于 11-25 11:03 203次 阅读
大数据和机器学习的数据如何演变

同方CPU卡安全门禁系统的功能及认证实现方式

依据“指南”,系统将带有SM1算法密码模块,内嵌于读卡器中,利用内部认证机制,完成读卡器与用户卡之间....
发表于 11-25 11:02 70次 阅读
同方CPU卡安全门禁系统的功能及认证实现方式

什么是超融合数据保护?

数据保护已经成为许多企业面临的实际问题。所有应用程序都需要某种形式的数据保护和数据保留,但是每个应用....
的头像 存储D1net 发表于 11-25 10:57 170次 阅读
什么是超融合数据保护?

浪潮存储提出当前数据层面三大显著变化

数据,这个新时代的石油,正在成为社会经济生活一切的基础。如何应对数据挑战、充分发挥数据价值即是当下时....
的头像 浪潮存储 发表于 11-25 10:43 166次 阅读
浪潮存储提出当前数据层面三大显著变化

关于进程与线程的解析PDF文件资料

电子发烧友为你提供关于进程与线程的解析PDF文件资料免费下载
发表于 11-25 10:42 33次 阅读
关于进程与线程的解析PDF文件资料

凯翔科技携智能云桥亮相2020中国数据存储峰会

2020年11月18-19日,由百易传媒(DOIT)主办的2020数据与存储峰会在北京成功举办,本次....
的头像 凯翔云存储 发表于 11-25 10:38 179次 阅读
凯翔科技携智能云桥亮相2020中国数据存储峰会

ESP32-DOWDQ6蓝牙&Wifi 两个可单独控制的 CPU 内核

乐鑫(Espressif Systems)研发设计IoT业内集成度最高、性能最稳定、功耗最低的无线系统级芯片。 ESP32-D0WDQ6集成无线...
发表于 11-24 09:20 101次 阅读
ESP32-DOWDQ6蓝牙&Wifi 两个可单独控制的 CPU 内核

单片机可以一秒钟处理 25KB 的数据吗?

    大家好,小弟是刚入单片机这个行业。(之前一直是基于 Linux ARM 开发).     目前我们一个产品是...
发表于 11-15 10:52 304次 阅读
单片机可以一秒钟处理 25KB 的数据吗?

请问Linux系统发现占用CPU达100%的进程如何处理?

Linux系统发现占用CPU达100%的进程并处理
发表于 11-10 08:12 0次 阅读
请问Linux系统发现占用CPU达100%的进程如何处理?

如何让CPU占用率达到100%?

让CPU占用率达到100%的方法
发表于 11-06 06:52 101次 阅读
如何让CPU占用率达到100%?

求Djangomodels存储json格式的数据?

Djangomodels存储json格式的数据
发表于 11-06 06:25 101次 阅读
求Djangomodels存储json格式的数据?

如何建立AVRPS/2硬件中断控制程序?

建立操作PC键盘的示例程序(硬件中断读取PS/2接收到的数据) ...
发表于 11-05 06:40 0次 阅读
如何建立AVRPS/2硬件中断控制程序?

Intel公布2021年CPU架构路线图及封装技术

      在Intel举办的架构日活动上,Intel公布2021年CPU架构路线图、下一代核心显卡、图形业务的未来、...
发表于 11-02 07:47 202次 阅读
Intel公布2021年CPU架构路线图及封装技术

让CPU占用率达到100%的方法

for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done ...
发表于 10-27 12:02 0次 阅读
让CPU占用率达到100%的方法

TMS320VC5501 定点数字信号处理器

TMS320VC5501(5501)定点数字信号处理器(DSP)基于TMS320C55x™DSP生成CPU处理器内核。 C55x™DSP架构通过增加并行性和全面关注降低功耗来实现高性能和低功耗。 CPU支持内部总线结构,该结构由一个程序总线,三个数据读总线,两个数据写总线以及专用于外设和DMA活动的附加总线组成。这些总线能够在一个周期内执行最多三次数据读取和两次数据写入。并行,DMA控制器可以独立于CPU活动执行数据传输。 C55x™CPU提供两个乘法累加(MAC)单元,每个单元能够进行17位×17位乘法运算。单循环。额外的16位ALU支持中央40位算术/逻辑单元(ALU)。 ALU的使用受指令集控制,提供优化并行活动和功耗的能力。这些资源在C55x CPU的地址单元(AU)和数据单元(DU)中进行管理。 C55x DSP代支持可变字节宽度指令集,以提高代码密度。指令单元(IU)从内部或外部存储器执行32位程序提取,并为程序单元(PU)排队指令。程序单元解码指令,将任务指向AU和DU资源,并管理完全受保护的管道。预测分支功能可避免执行条件指令时的管道刷新。 5501外设...
发表于 10-09 14:55 279次 阅读
TMS320VC5501 定点数字信号处理器