自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 收藏
  • 关注

原创 CSMA/CA并不是“公平”的

这是因为Bali节点,速率越低,占用的时间会更长,但是机会(次数)在CSMA/CA下是均等的,因此,其他节点占用时间更短,吞吐也就降低了。如果考虑一般的不加权情况,那么第一步就是均分(公平),然后在从富余中进行下一次均分,如此往复,直到资源都被分配完成。CSMA/CA会造成过于公平,对于最需要流量的节点,是最不友好的,而对于最不需要流量的节点,则是最友好的。公平优先的CSMA/CA方式,可以让每个节点不至于饿死,但是却不能达到最大的平均吞吐。那么节点将以CW指数增加的形式选择退避时间,来尽力减少碰撞。

2024-06-28 16:31:04 77

原创 NoC进阶

Bisection即把所有节点分成两个节点数相等的部分,所有可能的分配中,两部分之间channel数或者带宽最小的划分就对应bisection。或者由此构成拓扑,更多来自于bisection bandwidth的需求,还有ports本身的限制。比如这里的channel,假设所有node之间一半的traffic需要通过这个channel。Hop count是消息从源节点往目的节点经过的channel数量,直接影响网络的延迟。实际上上面的channel刚好也是bisection channel。

2024-06-14 16:50:10 382

原创 片上网络(NOC)入门

结合设计目标,如可扩展性,最好的bisection bandwidth,那么mesh网络最好。如果是要求高带宽的某些网络,mesh网络是有瓶颈的,à路由算法,流量控制(flow control)分层拓扑结构(hierarchy)需要hierarchy的网络去做。

2024-06-13 11:13:17 85

原创 PCIe和USB 3.0是有相同的接口吗?

一个PCI Hub板上,也可以出现USB的接头。但是这并不意味着可以在这个板子上插上一个USB的设备。USB3的线缆的连接器非常普遍,而且还便宜。这有可能是这样的:板子的背面还有一个PCIe switch,这样就可以把4个x16的wire变成x1的wire了。而USB刚好可以支持x1的wire。而且还能满足PCIe的(物理层)需求。每个x16的slot可以插上GPU卡。所以虽然看过去性能不一定好,但是如果不是非要用在GPU之间通信的场合,那么也够用!X1的PCIe pins会转接到USB连接器的高速双绞线上

2024-06-12 11:54:40 227

原创 PCIe (4)

因此PCI其实也是统一地址的 它的操作也就是所谓的读 或者 写 (load or store)以上完成从地址0xfdaff040(0x3f6bfc10 * 4)读取一个DW的操作。不过后来arm将CPU和显卡都放在了同一颗芯片上,所以就换成了AHB, AXI这些。比如一次read, 会在PCI总线上变成TLP。PCI最早是台式机用来连接CPU和显卡的。PCIe是从PCI发展出来的。然后device再返回数据。

2024-06-11 16:40:47 37

原创 USB (5)

对于比如鼠标这样的设备,主机会最快125us poll一次,看是否有输入。这也就是interrupt transfer类型。Bulk传输则是尽力传输,在总线够用时传输,不会有严格的时序要求。适合打印机,大容量存储设备。对于isochronous transfer类型,数据是在固定的时隙传输的,但不保证正确性。USB是一个poll的总线。并且数据传输是对齐到time-line的。

2024-06-11 14:21:57 130

原创 USB (4)

USB 3.0(SS)只会poll一次,之后device会在准备好的时候发送ERDY(Endpoint Ready)。USB 2.0使用poll和NAK机制进行流控(device到host)。Host会一直poll,直到非NAK。

2024-06-11 10:54:14 26

原创 USB (3)

USB是polled bus,这和PCIe不一样,所有的transfer都是由host发起的。如果device没有数据,那么只能回复NAK。对于IN(从device到host)。

2024-06-10 10:32:52 51

原创 USB (2)

首先是TOKEN TRANSACTION,其次是DATA TRANSACTION,再次是Handshake Transaction。上面的SETUP TRANSACTION是TOKEN TRANSACTION的一种。另外三种是OUT, IN, SOF。在每个TRANSACTION中又包含了3个STAGE,最后一个STAGE是ACK。SETUP是默认为“OUT”方向的transaction。以2.0的枚举过程为例。

2024-06-09 12:35:47 47

原创 USB (1)

USB的physical层是基于Serdes的,所以有串并/并串的转换,有8b/10b encode, 有scramble,有时钟恢复。不过USB或者PCIe的物理层不一样,单根线或者多根线(lanes)实现很高速,距离还挺远的传输。其实回过头看USB 是可以和无线 有线(internet) 可以和PCIe 甚至AXI类比的。不同的协议,依赖的介质不一样 这就要求相应的Physical层处理。不过AXI 如果要说有物理层,那就是直接连线了。它们共通处在于都是communication。

2024-06-06 20:30:29 122

原创 RDMA (2)

非iWARP时,CPU维护TCP/IP层,这涉及到维护connection context,payloads的分片和重组,处理中断等。非iWARP时,当应用向网络适配器发出读或者写命令时,命令穿过用户空间以及内核空间,因此需要在用户空间和内核空间间进行切换。如果没有iWARP,数据在从网络适配器到应用层buffer路中,会有中间的拷贝。iWARP下,使用RDMA将数据从网络适配器的buffer复制到应用程序的buffer,提高了效率,较低了延迟。这规避了对内核的调用,减少了开销和延迟。

2024-06-04 14:23:34 61

原创 RDMA (1)

iWARP消除了三个方面的开销:CPU的TCP/IP处理需求,内存拷贝,application context 切换。RoCE(RDMA over Converged Ethernet),也是由InfiniBand Trade Associationg(IBTA)于2009年开发。Remote Direct Memory Access(RDMA)是用来给有高速需求的应用释放网络消耗的。RDMA在网络的两个应用之间进行低延迟,高吞吐的内存对内存的直接数据通信。InfiniBand需要部署独立的协议。

2024-06-04 13:55:57 453

原创 CXL (1)

CXL和PCIe跑在一样的physical layer上,与PCIe不一样的是,CXL允许CPU和连接的设备共享一致(coherent)的内存。另外,为了降低延迟,CXL引入了专用的CXL.cache和CXL.mem协议,这和CXL.io(基于PCIe DMA)是分开的。比如在第一种(type 1)使用场景中,允许没有内存或者很少内存的设备可以共享CPU的内存。如此,CXL可以让内存不在限于CPU或者GPU本地的部分,而是可以共享。CXL说到底 是为了打破内存墙而生的。

2024-06-03 14:58:21 56

原创 NV link

实际上,PCIe依然会和NV link一起使用。NV link比PCIe有什么厉害的地方。NV link是去CPU中心化的。NV link只针对GPU。NV link是并行总线。

2024-05-31 17:44:08 157

原创 通信技术体会

pcie虽然物理层和usb都是serdes,但transaction layer就是上面这样的,也就是它是双向,点对点,split的,所以除了serdes高速,这一层也是高速。因为pcie还是axi(神似split/cutthrough)。(axi更多是接口而不是bus)。所以serdes速度差别没有量级区别 但延迟和吞吐确是好。pcie可以看成是全连接的ahb bus,但又不是。

2024-05-31 13:54:53 345

原创 PCIe (3)

不过MMIO依然是CPU直接发起PCIe transaction(TLP)。这意味着在TLP response到来之前,CPU必须等待。但是要访问更大的空间,则不可以,所以这里BAR将更大空间(device memory)映射到了IO。BAR 提供了一种MMIO的访问形式,访问的是类似register的IO,但是却是访问memory。Configuration space是确定的大小的,一般4KB左右。而DMA模式则不用这样。

2024-05-30 18:23:31 188

原创 PCIe (2)

Flow control保证transmitters不会给receiver发送不能接收的Transaction Layer Packets(TLPs)。Requester利用flow control(FC)机制跟踪Receiver端可用的queue/buffer空间,以防止overflow。Transaction Layer则对收到的TLPs计数,发送端则在接收端credits超出时不再发送。PCIE link初始化时,会读取对方FIFO的容量,在传输过程中定期同步对方FIFO的剩余容量。

2024-05-29 18:01:53 44

原创 PCIe (1)

DLLPs是2 DW,包含ACK/NAK 和flow control DLLPs。当completer侧接收了TLP,则会在completer的transaction layer释放接收RX空间。Payload size如果是256 bytes, 那么throughput = 256/(256+20)=92%。ACKs和flow control 更新DLLPs均是和数据(TLP)方向相反方向。如果所有的credits都使用了,那么需要等待credit更新。如果是8B/10B的编码,那么需要25%的开销。

2024-05-28 18:01:17 209

原创 小白怎么看DDR

不过到了灰色的txq里面,不一定是一一发送的,而是按聚合数,可变数量的发送的。在DDR里面,cmdq里面的东西就可能不同cpu有interleave的。有做和参与这么些芯片 虽说每每是片上系统 但是DDR是个远观 没近看的。只是txq里面不会把多个Node的东西Interleave。不过和WiFi的发送通路一对比 却有些类似的地方。实在不明白为什么要有这么多步骤。但是DRAM的控制就不简单了。各种cpu可以看作node。它们说DRAM长这样。

2024-05-28 14:44:25 48

原创 为什么要有NOC

大芯片,物理面积很大,延迟太长;片上系统,IP众多,总线规模太大。路径不是固定的,AXI带来的时序也不是固定的,这才可以解决这些问题。如果是AHB,注意AXI并不真的定义了总线,更多是接口。这些限制下,AHB由于固定的时序而不能满足需求。那么如何实现上面的带宽,延迟需求呢。

2024-05-27 15:42:34 37

原创 职场不是挣钱

需要找老板要活,这个过程可以了解老板最关心的问题是什么,如果自己的贡献和老板的问题能够吻合,那是最好的。曾经我也一直这么想,只要做好老板安排的事情,自然就可以挣到钱了。毕竟每个人都在干活,为什么就该自己挣钱呢?只是做好活就能挣钱,好像想得有些简单了。老板最想解决的问题,那自然是机会了。目的应该是没错的,是挣钱。多少,其实是个分配的问题。

2024-05-26 11:44:05 122

原创 静态时序分析 (3)

引入的DPT(Double Patterning Technology)之后,在同一层layer上要做两次mask,两次mask之间的偏差,会导致线间距变化,从而影响耦合电容值,需要将这一因素考虑到RC corner中,所以DPT 的RC corner是:Cworst_CCworst, RCworst_CCworst, Cbest_CCbest, RCbest_CCbest.R=r/W*T, r为电阻率,除了跟线宽 W 和线厚 T 相关之外,还跟温度相关,随着温度的上升而增大。

2024-05-24 16:32:48 357

原创 AHB协议

当master想要访问slave时,master发送HBUSREQ信号给arbiter请求总线控制权,arbiter如果返回给master一个HGRANT信号,则该master获得总线控制权,然后master给slave发送HTRANS信号,开始和slave进行数据传输。HTRANS[1:0] 2位址的控制信号。HREADY表示上一master有效,因此,HSELx和HREADY都有效,才采样地址和控制信号。HRESP[1:0] 响应。HWRITE 读写信号。HSIZE[3:0] 传输数据的位宽。

2024-05-22 17:36:30 25

原创 AXI (3)

BVALID信号必须在WVALID和WREADY信号之后。可以在第一个burst还未完成时,即进行第二个burst。写响应信号BRESP必须在最后一笔数据数据完成之后。VALID信号和READY信号同时有效,则方采样。多burst(可outstanding)写传输。写地址和写数据通道之间没有严格的顺序限制。只有当读地址通道完成后才有读数据通道。数据则使用LAST标识最后一笔。数据传输过程只发送首地址。

2024-05-22 14:10:14 22

原创 AXI (2)

BRESP[1:0] slave响应表明写传输状态。AWREADY 用来判断slave是否准备好接收写地址信号,为高才接收。WSTRB[3:0] 写字节使能信号,用来表明写数据中的哪些字节是有效的。ARREADY 用来判断slave是否准备好接收读地址信号。WREADY 用来判断slave是否准备好接收写数据,为高才接收。BREADY 用来判断是否准备好接收写响应信号,为高才接收。AWVALID 用来判断写地址信号是否有效。BVALID 用来判断写响应信号是否有效。WVALID 用来判断写数据是否有效。

2024-05-22 13:44:27 17

原创 AXI (1)

这对应定制/控制和数据分离 不分离没有办法outstanding,不outstanding, 那么分离意义何在。非及时 这和outstanding, 地址/控制和数据分离体现了一样的点 可以支持延迟 并且可以利用延迟。Outstanding,可以实现上一次数据传输还没有完成的情况下继续下一次的地址/控制信号。允许添加寄存器打拍,这对应总线内部是没有明确定义的 这也支持“大”系统。这可以提高延迟的容忍度 所以响应延迟的地方 可以提高吞吐。总线的地址/控制和数据通路是分离的。读写独立 带宽增加了一倍。

2024-05-22 13:16:52 256

原创 静态时序分析 (2)

比如recovery/removal, Areset和当前clock路径。比如setup, 下一data路径和当前clock路径,比如hold, 当前data路径和当前clock路径。以setup为例子,检查的是两条路径的相对的时间!如果多个clock之间,那么寻找重复的周期即可以。根据路径的不一样,分为不一样的。也可以是模型计算出来的。

2024-05-21 15:10:58 10

原创 静态时序分析(1)

有两种进行时序验证的方式,一个是时序仿真,一个是静态时序分析(STA)。STA可以在多个芯片环节使用 区别在于STA所用的信息的准确度和完备性。比如理想的时钟和互联信息时 这一般在RTL综合阶段进行。在CTS完成之后,则有真实的clock 时间信息。时序分析(公共的时钟周期内进行)比其仿真更快。时序仿真 要求向量,包含逻辑和时序信息。其会遍历所有的时钟以及外部环境的可能。在布局完成之后,则有真实的互联信息。在布线完成之后,有了真实的RC信息。时序是IC中非常重要的一环。时序仿真有时候也是必要的。

2024-05-20 14:56:53 35

原创 架构也需要做设计(内存分配设计)

从每一个level的节点中寻找为0的节点。(节点逻辑为“或”,逻辑输出值0代表相应size的memory可用。一句话,需要在横向上把设计对比一遍,纵向上了解设计的代价,难度和细节。更大的区别在于分配操作时,一个修改链表,一个操作bit-map。应该做确保上面的设计的变化不会影响更上层,以及更以上的设计目标。上面如果理解成一个电路,也就是设计(内存分配)。那么不管什么方法,去查找,即进行了设计。比如上面的设计,有哪些被抛弃的竞争方案?甚至在需要时设想过上面的设计的细节。也了解过上面的设计有哪些变化,

2024-05-17 15:52:49 20

原创 为什么descriptor和data分离可以内存高效率

Descriptor和data是同样的,只有descriptor有了,即可以开始处理data了。所以data不需要停留更长时间。以下为例,需要有前面的6个bytes开始,用来处理数据,一旦这6个bytes有了即可以处理了。

2024-05-15 15:51:09 26

原创 为什么cca门限和tx 功率有关系

设想一下这个网路布局。如果某个STA在决定是否发送的时候,是否不能只看收到的干扰多大,还应该“冒险”一下,如果自己的功率足够,那么就可以扛住干扰发出去。Cca是用来决定信道是否繁忙,好像只和收有关。但是为什么和tx有关。

2024-05-14 19:58:05 56

原创 WiFi7为什么需要6G频谱

当然AR/VR streaming的,4k,8k不压缩!一定是3个320MHz宽的不重叠信道,方能达到AV/VR的end-2-end delay每个路由器(AP)除了连接AR/VR设备之外,还要连接8个非AR/VR设备。日常不AR/VR的情况,只需要3Mbps的流量。办公,娱乐,投影,学习无所不包。为什么要这么宽的频谱呢?

2024-03-19 14:53:39 407

原创 WiFi7 MLO技术框架

并在此基础上建立了multi link setup的概念,以实现灵活multi link steering/balancing, aggregation的目的。在Multi link setup中,则不尽然,由于关联和capability交换是由其中一个Link进行的,而每个link的capability, PS等都不尽然,所以,关联之后,哪些link被用作class 2和class 3 frame的传输是不一定的。聚合则在双STA这样的技术上已经有了,为了尽可能利用多link带来的健壮性和带宽提升。

2024-03-17 14:30:10 595

原创 灵敏度都那么低了,为什么CCA的阈值还是-82

主要决定于两个因素。一个因素是邻区的干扰。如果干扰弱,那么就可以调高一点。那么其实在家庭环境,这个不好控制。所以CCA阈值不好调整。但是如果仔细测量邻区的干扰,依然是可以变的,如隔壁家的羊毛。还有一个因素,是设备的抗干扰程度。如果耐受力好,那么cca阈值是可以调高的。这是NEC公司1998年的提案里面有过详细的描述。实际这个值的确是可以变化的。只是一般都不怎么变。

2024-03-09 14:58:57 105

原创 WiFi7之block Ack

CBA和MBA都允许不同的BA Bitmap长度。该长度由Block Ack Starting Sequence Control中的Fragment Number指定。-发送窗大小不超过ADDBA Response指示的Buffer size大小。-发送窗大小不超过Response的buffer size。WiFi7支持512与1024bit map的Ack。-发送窗大小不超过1024。-发送窗大小不超过1024。

2024-02-18 14:43:15 180

原创 WiFi7: ML建立流程

-链接对应的non-AP STA1属于non-AP MLD1,其MAC地址和链接对应的AP关联的non-AP STA2(和某non-AP MLD2附属或者不附属于某MLD)的MAC地址相同。对各setup 链接,non-AP MLD和其下的non-AP STA处于何non-AP MLD之间相同的关联状态,关联对象是AP MLD下的对应AP。NOTE-对每一个setup链接,每种MLD下的non-AP STA和AP之间的服务即对应规则,与非MLD下的non-AP STA和AP之间的相同。

2024-01-16 20:21:20 278

原创 WiFi7: MLO发现和建立时的帧交换

原文:如果AP(可以是transmitted BSSID)在Beacon或Probe Response帧中既包含Reduced Neighbor Report element,也包含Basic Multi-Link element,且后者携带一个或更多的Per-STA Profile subelement(s),并且两个elements携带了同一被请求AP(附属于某AP MLD)的信息。原文:non-AP MLD需要先发现AP MLD和附属的AP(s)才能和AP MLD建立ML。

2024-01-16 15:13:22 470

原创 WiFi7: MLO操作之AP MLD的发现

-必须包含AP MLD的Basic Multi-Link element。NOTE-如果non-AP MLD收到multi-link probe response,但是其中没有携带一个或多个关心的AP的profile,那么non-AP MLD可以再发送一个multi-link probe request来请求,通过在Probe Request Multi-Link element中包含对应Per-STA Profile subelement(s)。

2024-01-15 16:16:37 402

原创 WiFi7: MLO操作之AP MLD的发现—ML probe request和response的使用

NOTE-non-AP MLD在Probe Request帧中请求某AP MLD下的某些或者全部AP的complete profile(以在Probe Request Multi-Link element中包含Link Info域的显式或者不包含的隐式方式),那么AP可能不能回应所有被请求的profiles,原因是size或者duration受限(9-34(Maximum data unit sizes(in octets) and durations(in microseconds))。

2024-01-14 10:46:54 394

原创 WiFi7: MLO操作之AP MLD的发现—AP的行为

原文:如果报告AP在Reduced Neighbor Report element中包含MLD Parameters子域,那么报告AP必须如9.4.2.169.2(Neighbor AP Information field)描述的,设置AP MLD ID,Link ID,BSS Parameters Change Count子域。--AP MLD2下的所有AP的信息还没有被和报告AP同一co-hosted AP下的其他和报告AP同一channel的AP报告过。报告AP满足要以下全部条件。

2024-01-12 14:34:01 500

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除