跳转至

tips

USB & Thunderbolt & Type-C

USB

通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品。

最新一代的USB是USB4,传输速度为40Gbit/s。物理接头USB Type-A、Type-B接头分正反面,新型USB Type-C接头不分正反。

区分USB3.0

  1. 按颜色区分,接口内部是黑色的为USB2.0,蓝色或红色的为USB3.0
  2. 接口触点区分,USB2.0接口只有四个触点,而USB3.0有9个触点(外五内四)
    1. 4个(1个供电,2个数据,1个接地);USB 3.0拥有9个(另外4个提供给SuperSpeed技术);USB 3.1 Type-C拥有24个
  3. 还有一种是看接口标识,见下图

速率

接口样式

历史

USB 2.0

USB 2.0:2000年4月发布。增加更高的数据传输速率480Mbit/s(现在称作Hi-Speed,大约57MB/s),但受限于BOT传输协议和NRZI编码方式,实际最高传输速度只有35MByte/s左右。

USB 3.0(USB 3.1 Gen1/USB 3.2 Gen1)

USB 3.0于2008年11月发布,速度由480Mbps大幅提升到5Gbps。USB 3.0插座通常是蓝色的,并向下兼容USB 2.0和USB 1.x。USB 3.0引入了全双工传输,USB 1.x和USB 2.0则是半双工传输。

USB 3.1(USB 3.1 Gen2/USB 3.2 Gen2x1)

USB3.0推广小组于2013年7月31日宣布USB 3.1规格[10],传输速度提升为10Gb/s,比USB3.0的5Gb/s快上一倍,并向下兼容USB 2.0/1.0,如果要得到10Gb/s的传输速度仍需在主机、目标端同时具备对应的芯片才能达成,电力供应可高达100瓦。

USB Type-C接口

于2014年8月完成。与USB 3.1规格大致相同。但USB-C只是一个接口,不一定支持USB 3.x或Power Delivery(许多手机的Type-C仍然使用USB 2.0)

USB 3.2(USB 3.2 Gen2x2)

在USB Type-C接口上实现双通道,速度方面,使用USB 3.2主机连接USB 3.2存储设备,可以实现两条通道10Gbps的传输速度,理论上也就是相当接近于20Gbps。

另外,从USB 3.2开始,Type-C是唯一推荐的接口方案。

USB4

USB4项目集成Thunderbolt 3协议,USB4支持40Gbps的传输速度,固定Type-C口。

USB Type-C接口

特点

可选集成DisplayPort、HDMI、MHL。 可选集成Thunderbolt。 可选集成USB4。

Thunderbolt

Thunderbolt(又称“雷电”,苹果中国译为“雷雳”[4])是由英特尔发表的连接器标准,目的在于当作电脑与其他设备之间的通用总线,第一代与第二代接口是与Mini DisplayPort集成,较新的第三代开始改为与USB Type-C结合,并能提供电源。

历史

由于 Thunderbolt 1, 2使用的是苹果Mini Displayport,配件无法用在其他电子设备,普及程度远低于对手USB。

由于雷电协议需要额外的独立芯片支持,费用高昂。Intel决定把雷电协议开源给USB-IF。这间接促成了USB4的推出。 第三版(Thunderbolt 3) 2015年6月2日,COMPUTEX 2015 ,代号为Alpine Ridge,双倍带宽达到40 Gbit/s (5 GB/s)。Thunderbolt 3 物理接口改用USB Type-C。

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

Static Code Analysis

静态代码分析器的意义

在不运行程序的情况下,预测程序性能表现。得到估计时钟周期,资源占用情况,潜在的代码瓶颈等的分析。以便优化程序,或者为了更好的运行程序反过来对CPU的架构设计提出意见。

在预测的过程中,也会简单进行自动向量化,指令调度等工作。

比如你想看在arm架构下该程序下有什么瓶颈,但是你只有intel的机器,你就可以通过静态代码分析器来分析。但是当前的效果都不是太好。

已有的Static Code Analyzer

IACA

IACA (the Intel Architecture Code Analyzer) is a (2019: end-of-life) freeware, closed-source static analysis tool made by Intel

由于Intel对自己的处理器优化很了解,所有可以更好的预测。 比如 zero-idioms 和 micro-op fusions(聚合,将相邻指令变为一条指令)

zero-idioms —— The processor recognizes that certain instructions are independent of the prior value of the register if the two operand registers are the same. An instruction that subtracts a register from itself will always give zero, regardless of the previous value of the register.

Ithemal

Ithemal (Instruction THroughput Estimator using MAchine Learning) 基于hierarchical LSTM–based 方法。基本块预测器,但是是黑盒。

Long short-term memory (LSTM) is an artificial recurrent neural network (RNN) architecture used in the field of deep learning.

应该是准确度最高的

LLVM-mca

LLVM Machine Code Analyzer 受到IACA启发的相似的工具,是乱序超标量(多条流水线,每周期可以完成2条以上指令,如下图)微架构模拟器。 使用了LLVM后端的调度模型参数。这种重用调度模型的选择对llvm cost 模型提供了经验。其准确性于调度模型有关。

OSACA

Open Source Architecture Code Analyzer

是IACA的开源替代,也和llvm-mca很像。是参数化的乱序模拟器,但是参数来自测量的指令查找表

cost model

LLVM 和GCC 也有cost model,但是是指令层面的,不是基本块层面的。

比如LLVM 至少有3个: 1. a generic, per-instruction IR (Intermediate Representation) cost model for its target-independent optimizations 2. one for instruction scheduling (the scheduling model [14] is also used by llvm-mca); 3. another one for register allocation

基本概念

throughput

Predicting the (average) number of clock cycles a processor takes to execute a block of assembly instructions in steady state

performance models / Processor performance models

指代静态代码分析器,就是别名。

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献

https://github.com/RRZE-HPC/OSACA

Static Code Analyzer on Kunpeng Overview

Static Code Analyzer Overview

What Is Static Analysis?

一种通过在程序运行之前自动检查源代码的调试方法。

What Is Static Code Analysis?

经常和source code analysis结合(貌似sourcetail的代码结构分析?

可以分析addresses weaknesses漏洞

IPC - Instructions per cycles

Throughput and Critical Path Analysis

好吧,都是机密,就不写了。

Chen advise

提高访存的方法 C-AMAT

目标

机密

需要进一步的研究学习

暂无

遇到的问题

暂无

开题缘由、总结、反思、吐槽~~

参考文献