当前位置: 首页 > news >正文

Aurora 协议学习理解与应用——Aurora 8B10B协议学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Aurora 8B10B协议学习之一,理解协议

  • 概述
  • 8B10B数据发送和接收
    • Symbol-Pairs
    • 传输调度
    • 用户PDU传输过程
    • 用户PDU接收过程
  • 流控
    • 自然流量控制操作
    • 自然流量控制延迟
    • 自然流量控制PDU格式
    • 用户流量控制操作
    • 用户流量控制格式
  • 初始化和错误处理
    • 8B10B链路初始化
    • 8B10B通道绑定
    • 8B10B通道验证
    • 8B10B错误处理
  • Aurora 8B/10B Ordered Sets
    • Idle Sequence
  • 时钟补偿
  • 单条lane的传输规则
  • Multi-Lane Striping and Transmission Rules
  • 电气特性


概述

Aurora 8B/10B 协议描述了通过 Aurora 8B/10B Channel传输用户数据。一个 Aurora 8B/10B Channel由一个或多个 Aurora 8B/10B lanes组成。每个 Aurora 8B/10B lane都是全双工串行数据连接。通信的双方称为Partners。与其他例如SRIO称为Master和Slave不同,这里Partners说明双方是对等的关系。
在这里插入图片描述
Aurora 8B/10B 协议接口通过用户接口与用户应用程序传输数据和控制。用户接口不在协议的规定范围内,可选用任一种接口。
用户应用和Aurora 8B/10B 接口之间的数据流包含user protocol data units (user PDUs)和user flow control,用户PDU可以是任意长度,它的格式不在协议定义范围内。有2种流控PDU在协议中进行了定义。

8B10B数据发送和接收

Symbol-Pairs

通过Aurora 8B/10B channel传输的最小信息单元是2个字符(symbols),叫做Symbol-Pairs。信息总是由多个字符对组成的。

传输调度

有6种数据通过Aurora 8B/10B channel进行传输:
1、时钟补偿序列:用于防止Partner时间的的时钟速率差异而导致接收器溢出的控制符号序列。
2、初始化序列:四个有序集作为空闲序列来使用,为初始化期间的数据传输准备 Aurora 8B/10B 通道。
3、自然流量控制PDU:由 Aurora 8B/10B 接口生成并解释的链路层流量控制 PDU
4、用户流量控制PDU:流量控制消息由用户应用程序生成和解释,并封装成用户流量控制 PDU 来传输。
5、通道PDU(Channel PDUs):用户数据PDU
6、空闲序列:没有数据发送的时候发送的控制符号序列。
这六种序列的优先级如下:
在这里插入图片描述
当发送器正在处理流量控制请求时,数据类型优先级应该改变。在自然流量控制倒计时或用户流量控制倒计时期间,空闲序列比通道 PDU 具有更高的优先级。由于当没有更高优先级的数据类型可用时总是传输空闲序列,因此这种优先级的转变有效地阻止了帧传输,直到流量控制倒计时完成。
在这里插入图片描述

用户PDU传输过程

用户PDU的传输要求如下流程:
1、填充(Padding)
2、使用通道 PDU 分隔符进行封装
3、8B10B编码通道PDU载荷
4、串化和时钟编码
在这里插入图片描述
1、填充
Aurora 8B/10B通道要求传输内容是偶数个字符组成,用户PDU如果是奇数个需要填充一个字节,填充字节为0x9C.
2、链路层封装
用户 PDU 用控制符号序列(称为有序集)封装,以产生完整的信道 PDU。这些有序集划分了串行数据流内通道 PDU 的开始和结束。 Aurora 8B/10B 协议使用 /SCP/ (/K28.2/K27.7/) 有序集来标记通道 PDU 的开始,并使用 /ECP/ (/K29.7/K30.7/) 有序集标记通道 PDU 的结束。
3、8B10B编码
高速收发器包含该功能
4、串行化和时钟编码
高速收发器包含该功能

用户PDU接收过程

用户PDU的接收有如下流程:
1、解串
2、8B10B解码
3、链路层剥离
4、填充位剥离
在这里插入图片描述
1、解串
高速收发器包含该功能
2、8B10B解码
高速收发器包含该功能
3、链路层剥离
链路层剥离过程移除信道 PDU 封装以及传输期间可能插入的任何嵌入的空闲有序集。
通道 PDU 封装的移除包括用于标记通道 PDU 开始的 /SCP/ (/K28.2/K27.7/) 有序集,以及用于标记通道 PDU 结束的 /ECP/ (/K29.7/K30.7/) 有序集。
删除空闲有序集涉及删除 /K/ (/K28.5/)、/R/ (/K28.0/) 和 /A/ (/K28.3/) 符号。任意数量的这些符号可以出现在通道 PDU 中的任何位置,但具有以下限制:
(1)必须插入偶数个空闲符号
(2)空闲序列的开始必须在通道 PDU 中的偶数个符号之后开始
4、填充剥离
如果在 8B/10B 解码过程中检测到 /P/ (/K28.4/) 控制符号后跟 /ECP/ (/K29.7/K30.7/),这是传输过程为了满足信道对齐要求而添加的字节(传输要偶数个字节)。该八位字节在解码后值为 0x9C,应在将其传递给用户应用程序之前从数据流的末尾剥离。

流控

本章介绍 Aurora 8B/10B 协议支持的可选流量控制机制。这些机制提供低延迟流量控制,以防止由于通道双方之间的数据来源和接收速率差异而导致数据丢失。由于流量控制 PDU 可以嵌入通道 PDU 中,延迟得以最小化。
Aurora 8B/10B协议支持以下两种流控机制:
Native Flow Control:自然流量控制,NFC。由Aurora 8B/10B 接口的接收端自行调整链路的接收速率。
User Flow Control:该机制可用于在任意层实现用户定义的流量控制方案。用户流控制消息由用户应用程序生成并解释。Aurora 8B/10B 接口将这些消息封装到用户流控制 PDU 中,并为其跨通道传输提供低延迟机制。
自然流量控制 PDU 通常在接收方的弹性缓冲器耗尽时生成。请注意,这些 PDU 必须足够早地生成,以便它们发出的时间和流量停止之间的延迟不会导致弹性存储溢出。
用户流控制消息通过 Aurora 8B/10B 通道从一个用户应用程序转发到另一个用户应用程序,并且不会由任一 Aurora 8B/10B 接口解释。
(这两种流控相当于一种是被动流控,一种是主动流控)
关于流量控制机制需要注意的一些事项:
1、自然流量控制的断言不会阻塞用户流控PDU的转发
2、用户流量控制 PDU 一旦开始传输,就不能被任何其他序列中断
在这里插入图片描述

自然流量控制操作

RX 自然流量控制状态机监视 RX FIFO 的状态,并在存在 RX FIFO 溢出风险时生成自然流量控制 PDU。这些 PDU 请求通道Partner将用户 PDU 的传输暂停指定的符号次数。如何定义 RX FIFO 的状态用于进行自然流控的算法与实现有关,不在协议规定的范围。
TX 自然流量控制状态机通过在请求的时间间隔内暂停用户 PDU 的传输来响应来自通道partner的自然流量控制 PDU。请注意,除了空闲序列之外,暂停还可以包括自然流量控制 PDU 或用户流量控制 PDU 的传输,因为这些 PDU 都不存储在 RX FIFO 中。
如果 Aurora 8B/10B 接口正在传输用户 PDU,则 TX 本机流控制状态机可以通过两种方式之一响应本机流控制 PDU。
Completion Mode:完成模式,完成模式只允许在用户PDU之间插入空闲字符
Immediate Mode:立即模式,立即模式允许在数据帧内插入空闲字符。
所有 Aurora 8B/10B 协议实现如果支持流量控制,则必须能够支持任一行为。操作模式必须是可编程的,但本规范没有定义如何选择操作模式。

自然流量控制延迟

当在立即模式下运行时,双方的最大往返延迟被定义,用于限制用户 RX FIFO 的深度。通道引入的延迟并不包含在此定义中,但在为特定通道设计用户 RX FIFO 时也必须考虑在内。
自然流控控制PDU请求的往返延迟不得超过 256 个符号时间。

自然流量控制PDU格式

一共2个字节长度。第一个字节是SNF(start of native flow control),第二个字节是命令字节。命令字节包含 PAUSE 字段,该字段指定空闲字符必须发送的时钟周期数,以响应通道Partner的 PDU。
在这里插入图片描述
在这里插入图片描述
在同一周期传输的所有自然流控 PDU 必须携带相同的 PAUSE 代码和 XOFF 位设置。当多个本机流控制 PDU 在同一时钟周期到达时,接收器必须仅处理一个 PDU,并选择其中任何一个 PDU 进行处理。

用户流量控制操作

一旦开始传输,用户流控制 PDU 就不会被时钟补偿序列、本机流控制 PDU 或空闲序列中断。 Aurora 8B/10B 协议实现可能需要缓冲用户流控制 PDU,以确保它们不被中断,并满足时钟补偿规则。任何缓冲方案均取决于实现,并且在本规范中未定义。

用户流量控制格式

用户流量控制 PDU 的长度为 4 到 18 个字节。第字节是 SUF(用户流控制开始)字符,后面跟着一个称为命令字节的数据字符。该命令字节后面紧跟着来自用户应用程序的 2 到 16 个字节的流量控制消息。

注意:/K28.4/ 符号用于通道 PDU 的 SUF 字符和填充字符。然而,填充字符后面只能跟控制字符,而不能跟数据字符。这区分了用作填充字符的 /K28.4/ 和用于标记用户流控制 PDU 开始的 /K28.4/
用户流量控制消息的长度在SIZE字段中指定。用户流量控制消息大小可以是 2 到 16 之间的任意偶数个字节
在这里插入图片描述
在这里插入图片描述

初始化和错误处理

Aurora 8B/10B 通道的初始化是一个三阶段过程。这些阶段是:
Lane Initialization:此过程在每个通道上单独执行,以激活链路并将接收到的数据对齐到正确的边界。
Channel Bonding:此过程将各个lane绑定到单个数据通道中。如果实现的功能仅使用单个链路,则不需要通道绑定并且将被绕过。通道绑定消除了各种来源引入的偏差,包括走线长度、连接器和 IC 变化。
Channel Verification:此过程执行将接收到的数据映射到用户接口所需的任何对齐,并验证通道传输有效数据的能力。

在channel verification,期间,所有lane必须准备好通过channel接收数据。当Aurora 8B/10B接口完成channel verification后,可以立即开始传输数据。
在这里插入图片描述

8B10B链路初始化

各个lane初始化过程在复位或通道故障时将每个通道收发器与其Partner同步。通道故障定义为以下任一条件:
1、通道数据错误过多
2、过度违反协议规定
在这里插入图片描述

8B10B通道绑定

通道绑定过程对齐每个通道接收的所有数据。在每个通道完成通道初始化过程之前,通道绑定无法开始。
在这里插入图片描述
通道绑定分两个阶段进行。第一阶段对应于图 4-3 中的状态 CB0,由收发器特定的数据对齐组成。第二阶段对应于状态CB1,验证收发器是否已正确对准并同时传送/I/有序集内的/A/有序集。

8B10B通道验证

通道验证过程用于跨用户接口对齐数据,并验证通道完整性。它本质上包括在每个方向的所有通道上发送通道验证序列。使用这种已知的数据模式,接收通道partner可以在用户接口上正确对齐数据,并验证通道完整性。该过程的示意图如图
在这里插入图片描述
验证序列由以下模式组成:60 个 /I/ 符号,后跟四个符号 /V/ 有序集
当所有通道接收器已从其通道Partner接收到第三个/V/有序集时,接收器的通道接收器部分(如果尚未启用)必须启用以防止数据丢失。

8B10B错误处理

在正常传输数据的过程中,通道有可能出现故障。必须单独监控所有通道是否有错误。在串行收发器正确地对数据进行字节对齐之前,会在输出上看到许多错误。因此,重要的是,在通道稳定之前,不会激活任何错误检测电路。当 K 计数器达到 3 时,即达到该稳定点。一旦 K 计数器达到 3,所有错误检测电路均应激活
有两种类型的错误:硬错误和软错误。
在以下情况下会发生硬错误:
• 发送或接收弹性缓冲区中存在上溢/下溢
• 软错误太多,请参阅下图
• Partner复位,收到了初始序列
• 与Partner之间的物理连接断开
硬错误被视为灾难性错误,之后应立即重新初始化通道。发生硬错误时接收到的任何数据单元都会被损坏,应被丢弃。
软错误通常是由于通道上的瞬时位错误造成的。软错误不一定需要重置通道。 Aurora 8B/10B 协议没有显式的数据错误检查;由软错误引起的数据错误应通过用户的错误处理能力来检测和纠正。软错误的示例包括:
• 极性错误
• 符号错误
在多 Gbps 系统中,对于通道完整性较差的系统,误码的发生时间可能为几分钟,而对于通道完整性良好的系统,误码的发生时间可能为数天或数年。因此,Aurora 8B/10B 接口必须实现软错误监控逻辑,以验证持续的通道完整性。该逻辑由软错误计数器和每个通道的相关控制逻辑组成。下图说明了软错误监控逻辑所需的行为
在这里插入图片描述

Aurora 8B/10B Ordered Sets

在这里插入图片描述

Idle Sequence

空闲有序集(idle)用于在初始化期间执行字边界对齐和通道绑定。在操作期间,空闲用于指示没有数据。空闲插入发生在等待状态期间以及通道 PDU 之间。空闲有序集由三个代码组组成:/A/、/K/和/R/。 /K/ 和 /R/ 代码组必须以伪随机序列(在 /A/ 代码组之间)应用,以通过不产生离散频谱来降低 EMI。适用以下条件:
1、/A/ 间距随机化,任意两个 /A/ 代码组之间至少有 16 个代码组,但不超过 32 个代码组。
2、/K/s 和 /R/s 以随机方式放置在 /A/s 之间。
3、最小传输模式是一个符号对。只要遵守前面两条规则,就可以发送这三个字符中的任何一个。如果发送/A/,则仍必须遵守间距规则。
4、对于多通道通道,必须需要空闲的所有通道上同时传输相同的空闲符号对。
5、不产生离散频谱
一个空闲序列的例子:
在这里插入图片描述
用于产生空闲序列的逻辑实现方法:
在这里插入图片描述

时钟补偿

Aurora 8B/10B 协议为发送器和接收器之间的时钟速率差异提供了补偿机制。这种机制称为时钟补偿,可以适应发送器和接收器之间高达 ± 100 ppm 的时钟速率差异。 Aurora 8B/10B协议通过周期性地将时钟补偿序列插入到空闲模式或用户数据中来实现时钟补偿。时钟补偿序列不应插入到用户流控制 PDU 中。
时钟补偿序列由时钟补偿有序集/CC/的六个副本组成。即使有 PDU 或其他代码组可供传输,时钟补偿序列也应至少每 10,000 个代码组传输一次。对于多通道通道,完整的时钟补偿序列在组成通道的每个通道上同时传输。

单条lane的传输规则

单通道通道在每个方向上都有一个差分对。单通道通道应进行编码,并按照从上层接收字符的顺序,通过差分对传输从上层接收到的控制有序集和 PDU 的字符流。当上层没有控制命令集和 PDU 传输时,空闲序列应被馈送到编码器的输入以进行编码和传输。
接收时,代码组流被解码并传递到上层。图中需要注意的主要特征是:
1、第一个示例显示如何填充具有奇数个有效负载字节的通道 PDU 以保持 /ECP/ 符号的对齐
2、第三个示例显示了被时钟补偿序列和空闲序列中断的通道 PDU

在这里插入图片描述

Multi-Lane Striping and Transmission Rules

Aurora 8B/10B 协议定义了跨由任意数量通道组成的通道的用户数据条带化(striping)和控制有序集。条带化(striping)方案平衡了通道效率和实施简单性.
在这里插入图片描述
条带化在多个通道上分配符号对。条带化是用于在多通道通道的所有 n 个通道上同时发送数据的方法。例如,第一个符号对被条带化到通道 0,第二个符号对被条带化到通道 1,第 n 个符号对被条带化到通道 n-1。第 n+1 个符号对被条带化到通道 0 上。
唯一的特殊要求如下:
• 符号对/SCP/、/ECP/、/SNF/、/SUF/ 中的各个符号不得在通道之间分割,但可以在任何通道上发送和接收
• 传输/I/ 序列时,必须在需要/I/ 序列的通道中的每个通道上传输相同的数据模式
在这里插入图片描述

电气特性

(略)

相关文章:

Aurora 协议学习理解与应用——Aurora 8B10B协议学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Aurora 8B10B协议学习之一,理解协议 概述8B10B数据发送和接收Symbol-Pairs传输调度用户PDU传输过程用户PDU接收过程 流控自然流量控制操作自然流量控制延迟自然流…...

Vue基础使用之V-Model绑定单选、复选、动态渲染选项的值

这里要说明一下&#xff0c;在v-model 绑定的值是id还是value是和<option>中的v-bind保持一致的&#xff0c;如第四个&#xff0c;如果是 <option :value"op[1]" 那v-model绑定的就是数组第二项的值2&#xff0c;4&#xff0c;6 如果是 <option :va…...

分析ARP解析过程

1、实验环境 主机A和主机B连接到交换机&#xff0c;并与一台路由器互连&#xff0c;如图7.17所示&#xff0c;路由器充当网关。 图7.17 实验案例一示意图 2、需求描述 查看 ARP 相关信息,熟悉在PC 和 Cisco 设备上的常用命令,设置主机A和主机B为同一个网段网关设置为路由接…...

为硬刚小米SU7,华为智界S7整出了「梅开二度」操作

如今国产中大型新能源轿车市场&#xff0c;在小米 SU7 加入后&#xff0c;可算彻底活了过来。 过去几年&#xff0c;咱们自主新能源品牌在 20-30 万元级轿车上发力明显不足&#xff0c;老牌车厂比亚迪汉几乎以一己之力扛起销量担当。 随着新能源汽车消费升级、竞争加剧&#x…...

408数据结构,怎么练习算法大题?

其实考研的数据结构算法题是有得分技巧的 得分要点 会写结构定义&#xff08;没有就自己写上&#xff09;写清楚解题的算法思想描述清楚算法实现最后写出时间和空间复杂度 以上这四步是完成一道算法题的基本步骤&#xff0c;也是其中得分的主要地方就是后面两步。但是前面两…...

imgcat 工具

如果经常在远程服务器或嵌入式设备中操作图片&#xff0c;要查看图片效果&#xff0c;就要先把图片dump到本地&#xff0c;比较麻烦。可以使用这个工具&#xff0c;直接在终端上显示。类似于这种效果。 imgcat 是一个终端工具&#xff0c;使用 iTerm2 内置的特性&#xff0c;允…...

Anaconda换清华源

1. 查看conda配置文件 sudo vim ~/.condarc2. 删除~/.condarc文件内容 使用vim中的dd命令 3. 打开并复制清华源的地址粘贴到~/.condarc文件中 https://mirrors4.tuna.tsinghua.edu.cn/help/anaconda/ channels:- defaults show_channel_urls: true default_channels:- https…...

react使用npm i @reduxjs/toolkit react-redux

npm i reduxjs/toolkit react-redux 创建一个 store文件夹&#xff0c;里面创建index.js文件和子模块文件夹 index,js文件写入以下代码 import {configureStore} from reduxjs/toolkit // 导入子模块 import counterReducer from ./modules/one import two from ./modules/tw…...

Nessus【部署 03】Docker部署漏洞扫描工具Nessus详细过程分享(下载+安装+注册+激活)文末福利

Docker部署漏洞扫描工具Nessus 1.安装2.配置2.1 添加用户2.2 获取Challenge code2.3 获取插件和许可证2.4 注册 3.使用4.进阶 整体流程&#xff1a; 1.安装 # 1.查询镜像 docker search nessus# 2.拉取镜像 docker pull tenableofficial/nessus# 3.启动镜像【挂载目录用于放置…...

2023年看雪安全技术峰会(公开)PPT合集(11份)

2023年看雪安全技术峰会&#xff08;公开&#xff09;PPT合集&#xff0c;共11份&#xff0c;供大家学习参阅。 1、MaginotDNS攻击&#xff1a;绕过DNS 缓存防御的马奇诺防线 2、从形式逻辑计算到神经计算&#xff1a;针对LLM角色扮演攻击的威胁分析以及防御实践 3、TheDog、0…...

Docker仅需3步搭建免费私有化的AI搜索引擎-FreeAskInternet

简介 FreeAskInternet 是一个完全免费、私有且本地运行的搜索引擎&#xff0c;并使用 LLM 生成答案&#xff0c;无需 GPU。用户可以提出问题&#xff0c;系统会进行多引擎搜索&#xff0c;并将搜索结果合并到ChatGPT3.5 LLM中&#xff0c;并根据搜索结果生成答案。 什么是 Fr…...

线程安全的单例模式

使用 synchronized 修饰 getInstance 方法 确保了只有一个线程可以同时访问 getInstance 方法。这意味着在任何时候只有一个线程可以执行 getInstance() 方法&#xff0c;从而避免了多个线程同时创建多个实例的情况&#xff0c;因此是线程安全的。 public class ClientUtil {…...

OpenHarmony实战开发-Grid和List内拖拽交换子组件位置。

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…...

设计模式:时序图

设计模式&#xff1a;时序图 设计模式&#xff1a;时序图时序图元素&#xff08;Sequence Diagram Elements&#xff09;角色&#xff08;Actor&#xff09;对象&#xff08;Object&#xff09;生命线&#xff08;Lifeline&#xff09;控制焦点&#xff08;Focus of Control&am…...

前端性能监控(面试常见)

1. 用户体验优化 2. Web Vitals提取了几个核心网络指标 哇一头死 FCL 三大指标 FID被 INP干点 Largest Contentful Paint (LCP)&#xff1a;最大内容绘制 衡量加载性能。 为了提供良好的用户体验&#xff0c;LCP 必须在网页首次开始加载后的 2.5 秒内发生。Interaction to Ne…...

react17 + antd4 如何实现Card组件与左侧内容对齐并撑满高度

在使用antd进行页面布局时&#xff0c;经常会遇到需要将内容区域进行左右分栏&#xff0c;并在右侧区域内放置一个或多个Card组件的情况。然而&#xff0c;有时我们会发现右侧的Card组件并不能与左侧的栏目对齐&#xff0c;尤其是当左侧栏目高度动态变化时。本文将介绍如何使用…...

Rust入门-Hello World

1、安装 在 Linux 或 macOS 上安装 rustup 打开终端并输入下面命令&#xff1a; $ curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh如果安装成功&#xff0c;将出现下面这行&#xff1a; Rust is installed now. Great!2、更新 $ rustup self uninstall3、卸…...

堆放砖块-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第47讲。 堆放砖块&#xf…...

019——IIC模块驱动开发(基于EEPROM【AT24C02】和I.MX6uLL)

目录 一、 IIC基础知识 二、Linux中的IIC&#xff08;韦东山老师的学习笔记&#xff09; 1. I2C驱动程序的层次 2. I2C总线-设备-驱动模型 2.1 i2c_driver 2.2 i2c_client 三、 AT24C02 介绍 四、 AT24C02驱动开发 实验 驱动程序 应用程序 一、 IIC基础知识 总线类…...

【开发篇】十三、JVM基础参数设置与垃圾回收器的选择

文章目录 1、-Xmx 和 –Xms2、-XX:MaxMetaspaceSize 和 –XX:MetaspaceSize3、-Xss4、不建议改的参数5、其他参数6、选择GC回收器的调试思路7、CMS的并发模式失败现象的解决8、调优案例 GC问题解决方式&#xff1a; 优化JVM基础参数&#xff0c;避免频繁Full GC减少对象的产生…...

多维 HighCharts

1&#xff1a;showHighChart.html <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><!-- js脚本都是官方的,后两个是highchart脚本 --><script type"text/javascript" src"jquery1.7.1.mi…...

单细胞RNA测序(scRNA-seq)cellranger count的细胞定量和aggr整合

单细胞RNA测序(scRNA-seq)基础知识可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分 单细胞RNA测序(scRNA-seq)Cellranger流程入门和数据质控 细胞定量…...

Unity URP 2021 Release-Notes

&#x1f308;Unity URP 2021 Release-Notes 本文信息收集来自自动搜集工具&#x1f448; 版本更新内容2021.3.32URP: Vulkan URP will use MSAA samples count fallback from player settings. Prior to this x2 fallback would have been to upgrade to x4.(UUM-741)2021.3.…...

最新IntelliJ IDEA 2024.1 安装和快速配置教程

IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版 文章目录 IntelliJ IDEA 2024.1 最新版如何快速入门体验?IntelliJ IDEA 2024.1 安装和配置教程 图文解说版前言 第一步&#xff1a; IntelliJ IDEA 2024.1安装教程第 0 步&…...

24应届生求职中QAQ

有没有大佬给个机会帮忙内推一下啊&#xff0c;找工作太难了QAQ。 最近一直在BOOS上找工作&#xff0c;但是结果不太理想&#xff0c;一直没有找到满意的工作&#xff0c;有没有大佬帮忙内推一下&#xff0c;有的话请私信我QAQ。...

centos7离线安装postgresql13

**一.**安装存储库RPM yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm二.使用yumdownloader下载安装包 mkdir pg_yum cd pg_yum yumdownloader --resolve postgresql13-server**三.**上传rpm包到安…...

【JavaSE】搞定String类

前言 本篇会细致讲解String类的常见用法&#xff0c;让小伙伴们搞定String类~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 常用的三种字符串构造 字符串长度length 字符串比较 比较 比较字符串的内容equals…...

数字乡村创新实践探索农业现代化与农村治理现代化新路径:科技赋能农村全面振兴与农民幸福生活

目录 引言 一、数字乡村与农业现代化 1、智慧农业技术的应用 2、农业产业链的数字化转型 二、数字乡村与农村治理现代化 1、农村信息化水平的提升 2、农村治理模式的创新 三、科技赋能农村全面振兴与农民幸福生活 1、提升农业生产效益与农民收入 2、促进农村产业结构…...

【从零开始手搓12306项目】四、12306是如何成为全球最忙碌的网站之一?

4.1 12306有多忙碌 一天的请求量大概1600亿&#xff0c;平均180万/秒&#xff08;二八理论&#xff1a;20%的事件产生80%的请求&#xff09;&#xff0c;不适合二八理论&#xff0c;因为12306分时间放票 平均一年售出30亿张&#xff0c;高峰期日售票能力达到了2000万张 高峰期…...

WebKit简介及工作流程

文章目录 一、WebKit简介二、WebKit结构三、Webkit工作流程四、WebKit常见问题五、WebKit优点六、相关链接 一、WebKit简介 WebKit是一个开源的浏览器引擎&#xff0c;它的起源可以追溯到2001年&#xff0c;当时苹果公司推出了其首款基于Unix的操作系统Mac OS X。在2002年&…...

沈阳市网站建设/公众号推广方案

2019独角兽企业重金招聘Python工程师标准>>> 安装环境&#xff1a;Centos jdk 1.7 nexus-2.x nexus (maven私服安装包)下载地址是http://www.sonatype.org/nexus/go nexus 版本小提示&#xff1a; 安装包解压后会在同级目录中&#xff0c;出现两个文件夹&#xff…...

网站开发项目管理/seo网站优化案例

top&#xff1a;动态查看进程的变化 ps:将某个时间点的进程运行情况选取下来 ps -l :仅查看自己的bash相关进程 ps -aux :查看系统所有的进程 pstree :列出目前系统上面所有的进程树的相关性 netstat 转载于:https://www.cnblogs.com/MUMO/p/8279156.html...

好看的网站在哪里好找/下载百度app下载

VALUES 子句罗列插入的列的值。这些值中的一个或多个可为常量&#xff08;即&#xff0c;数字或字符串&#xff09;。 当所有插入的值都是常量时&#xff0c;PUT 语句有一特殊的作用。PUT 语句仅增大计数器&#xff0c;而不创建行并放 入缓冲区中。当您使用 FLUSH 或 CLOSE 语…...

wordpress文章能发链接吗/整站优化深圳

抽象类中的方法可以实现&#xff0c;接口中的方法只能声明&#xff0c;不能实现。抽象类的成员变量可以为各种类型&#xff0c;接口的变量只能为public static final.抽象类可以有静态方法和静态代码块&#xff0c;接口不能有。一个类只能继承一个抽象类&#xff0c;一个类可以…...

免费企业建站源代码/百度搜索排名与点击有关吗

http://blog.csdn.net/jdsjlzx/article/details/40823025 https://www.2cto.com/kf/201609/550704.html [java] view plaincopy android的热点功能不可见&#xff0c;用了反射的技术搞定之外。 [java] view plaincopy Eclipse设置语言为utf-8才能查看中文注释 上代码&am…...

天津建设工程信息网网/湖南企业竞价优化服务

代  码 #输出元组变量 tuple (1,2,3,4,5,a,b,c) print(tuple) 运行结果 (1, 2, 3, 4, 5, a, b, c) 代  码 #输出字典变量 dict {a:1, b:2,c:3} print(dict) 运行结果 {a: 1, b: 2, c: 3...