自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(125)
  • 资源 (6)
  • 收藏
  • 关注

原创 GLIB:Threads

一组线程称为进程,一个进程内的所有线程通过共享内存来通信。优点是,共享变量/内存通信非常方便;缺点是,多线程程序对程序员编程能力要求很高,否则很容易发生莫名其妙的BUG。多线程就是为并行而设计的,因此程序员不能对线程之间的执行顺序做任何假定;多线程执行的顺序性必须通过在程序代码中的同步原语来直接保证。GLib库设计多线程函数的目标之一是,提高多线程编程的可移植性。

2024-04-17 13:29:49 549

原创 GLIB: The Main Event Loop

不相关的事件源组可以被不同的线程处理,每个事件源关联一个GMainContext。虽然一个GMainContext只能运行在一个线程之中,而事件源可以在其他线程中注册或注销。主事件循环机制(MEL:the Main Event Loop)在GLib和GTK应用中管理可用的事件源。事件源的类型包括:文件描述符(管道、套接字和常规文件)和定时器超时。每个事件源都有一个优先级。优先级越高,数值越小。优先级高的事件源可以获得优先处理。空闲函数,可以注册到GMainContext,也被分配一个优先级数值。

2024-04-16 12:58:18 432

原创 SDXI(地址)

对应的AKey表项包含了该虚拟地址所属的SDXI功能部件接口的设备号(如果硬件以PCIe设备方式实现SDXI,那么设备号就是总线号/设备号/功能号BDF)和Pasid。当描述符中的AKey索引为0时,该描述符对应的SDXI功能部件接口既是操作发起者,又是数据访问者,零值AKey对应VA就在描述符所有在地址空间。//////////////////下图给了作为PCIe设备,SDXI发送DMA操作的地址转换原理//////////////////SDXI功能部件接口可以既是操作发起者,同时也可以是数据访问者。

2024-03-09 15:12:34 263

原创 SDXI描述符概述

我的理解是,SDXI硬件在实现描述符要求的操作是否能以原子操作方式实现。SDXI功能部件完成操作后,将描述符完成情况(完成或相关错误)反馈到/填写到完成状态块。除了统一的框架性内容,还有一个区域就是52位的operation域,针对具体的TYPE和SUBTYPE来定义的。TYPE和SUBTYPE:定义操作组类型(11位)和操作组内的一个操作类型(8位)。ER:1位的错误标记,如果为1,表示至少有一个已经完成的描述符存在错误。这里的地址是指数据缓冲区的内存属性,即描述符操作的内存属性。

2024-03-07 18:03:21 212

原创 RCU基本介绍(一)

2002年10月Linux内核实现了RCU同步机制(RCU读-复制的更新)。对竞争对象存在少量写操作而大量读操作的场景下,RCU可以获得很好的可扩展性。传统互斥型的锁原语,完全没有考虑线程的读/写特点;而读写锁机制虽然允许多个读操作可以并行,但写操作依然要求是独占型【即有一个写操作时,不允许其他的读/写操】;但是RCU机制允许一个写操作和多个读操作可以并行执行。

2024-03-07 14:39:58 690

原创 SDXI 简介

软件必须保证,SDXI功能部件能够对下表内存数据结构的可读/可写操作,也就是说,下面描述的数据结构是由软件在系统主存中进行初始化,SDXI功能部件也可以访问。3)RKey表都是按照4K字节对齐,每条表项长度都是16字节,SDXI只读。4)16字节的CXT_STS必须按照16字节对齐,该结构包含了命令环的读索引,SDXI可读写。2)4K字节长度的CXT_L1表必须按照4K字节对齐,每条表项长度为32字节,SDXI只读。1)4K字节长度的CXT_L2表必须按照4K字节对齐,每条表项长度为8字节,SDXI只读。

2024-03-04 09:39:30 413

原创 技术概述:ARMv8体系结构

PC市场上的CPU和GPU具有不同的地址空间,与此不同的是,低功耗和低成本要求它们能共享内存空间。最初的ARM处理器没有浮点部件,没有复杂的数学指令,没有SIMD,甚至都不支持两个整数类型的除法指令。然而,对于一些感兴趣的议题,我们会提供规范文档的预览通道,这样就能就技术进行公开讨论,我们也会回答讨论中的问题。从体系结构更新的时间周期来看,从某款芯片开始支持一个体系结构到符合该体系结构的最后一款设备之间,也就几年时间。然而,为了解决旧体系结构上的历史遗留错误,就会提出一个新的体系结构。位会自动进行零扩展。

2024-01-05 14:07:45 826

原创 RCU安全引用计数

如果计数数值为零,表示对象已经被释放了。然而,真正的问题是,对引用计数的测试和递增如果不能在一个原子操作中实现,那么在这两个操作之间就有可能插入其他操作。对引用计数refcount域进行原子操作,使得上述两个函数可以安全地在多CPU或抢断环境下直接调用,也就是说在这两个环境下,引用计数器的数值总能获得正确的结果。kref机制的函数很简单,在引用对象数据结构内直接包含一个struct kref计数器或struct kref *计数器指针,在引用对象被操作之前调用kref_get函数,引用计数器递增。

2023-08-23 18:16:28 755

原创 读拷贝更新RCU和中断延迟

但是如果列表比较长,默认超过256项时,一旦检测到有高优先级的实时进程需要执行时,RCU的软中断处理就会将CPU控制权返还给内核调度器,将列表尾部的数据留到krcud线程来处理。清理工作是在软中断上下文中执行的,也就是说,在硬中断之后或在重调度期间【at rescheduling time】才会执行RCU清理工作。更多关于RCU的工作原理,请参考 https://lwn.net/Article/4974和https://lwn.net/Article/37889这两篇讨论,或者参与SCO小组的讨论。

2023-08-22 18:16:09 208

原创 UIO:用户空间驱动2007

例如,在页长度为4KB的系统中,第一个内存区域的offset为0,第二个内存区域的offset为4096,后面以此类推。UIO可以帮助他们按照标准的方式去实现用户态驱动,而不是让他们自由发挥在内核创造自己的钩UIO很可能会合并到Linux2.6.22中。这部份内核代码实现了一个非常精简的内核模块,主要功能包括:设备的设置,PCI配置空间的访问,中断处理函数的注册。用户空间驱动这个概念已经有很长时间了,这一次有一个补丁版本已经提交到了Linux2.6.22,这个版本的补丁就是UIO。

2023-07-27 15:23:32 424

原创 用户空间驱动的支持2006

基于iio_device结构体中的event_write()函数指针,用户空间驱动程序可以对事件设备进行写操作,这样一来,用户驱动程序可以控制内核对中断的响应,以及对中断的屏蔽。但对于某些设备,在用户态实现驱动还存在一些挑战,例如PCI设备就很少有用户态驱动。主要的区别在于,内核态PCI驱动部分会使能PCI设备,并做一些必要的初始化工作。用户态PCI设备驱动真正棘手的还是中断的处理。通过IIO模块提供的文件操作方法,用户空间设备驱动可以对设备内存进行读/写操作,也可以将设备内存直接映射到用户空间。

2023-07-26 12:45:36 108

原创 用户空间如何处理中断2005

屏蔽一个共享中断就会关闭该中断连接上的所有设备的中断,而不是仅仅关闭某个特定用户态驱动中断处理程序对应的设备上的中断。这样一来,内核能直到究竟是哪个设备被中断了,也可以对中断进行确认,并通知设备关闭中断。这样做的原因是:内核处理过程对触发中断的设备一无所知,它不能对中断进行确认,也不能关闭中断。与此同时,Michael Raymond描述了另外一种用户态中断机制,即用户级中断ULI【这个机制是在SGI计算机上实现的,Silicon Graphis Inc.是美国的创新技术公司】。原文作者:Corbet。

2023-07-14 14:10:18 196

原创 用户空间设备驱动2004

他指出,驱动程序的代码量占到整个内核的50%左右,驱动程序的BUG却占到整个内核的85%左右。他们要在计划的时间内实现特定功能的内核编程,接口定义比较随意,常常有很多致命的BUG,在开发过程中连常规开发工具都不使用。在需要考虑的众多功能组件当中,中断是最重要的,也是最有挑战性的。关于用户进程注册和响应设备中断,迄今为止还没有一个好的解决方案。例如,某个进程如果希望处理11号中断,该进程就需要打开/proc/irq/11/irq并期望获得该文件的文件描述符【内核态的处理应该是,中断使能然后等待中断发生】;

2023-07-12 15:15:12 168

原创 不可访问的设备内存2017

在2017年Linux存储、文件系统和内存管理会议的第一天早上全体大会上,Glisse发起了一场关于“CPU不可访问的、设备上的内存”的讨论,在GPUs和FPGA的系统中常常会配置这种设备内存。否则,在数据从设备内存回迁时导致系统活锁。GPU和FPGA在访问这些数据结构之前,对应的系统内存单元还需要被钉住(PINed),这样一来,这些数据结构的物理内存单元在被设备访问时就不会被换出。Glisse承认这一点,但是也提到,因为设备可以直接访问系统主存,所以可以允许某些页绝不会迁移到设备上,这也不是什么大问题。

2023-07-11 16:28:36 120

原创 HMM补丁说明2016

更高级别API的实现要求,CPU和GPU能并行访问数据,而且要保证缓存一致性,因此我们提出HMM机制,还有其他类似功能被提出,例如通过平台硬件。上次我给Linus和Andrew讲到过,将HMM补丁提交到上游社区的需求是,我们希望无论闭源驱动还是开源驱动,除了Mellanox之外HMM还能获得其他真实硬件支持(当前Mellanox还没有采用HMM所有特性)。——按照设备专用格式,创建一个进程CPU页表的影子页表,并保持CPU页表和影子页表的同步(理解:影子页表其实就是GPU页表)。

2023-06-20 16:01:44 227

原创 HMM和CDM讨论纪要2017

Gorman建议Andrew Morton在没有可用的设备驱动之前将HMM纳入到-mm分支(-mm分支是Linux内核关于内存管理的专向分支,而不是主线分支),Morton问道,没有设备驱动是否真的会成为阻碍代码合并到上游主分支的原因。为了完全避免此类问题,Gorman建议,HMM使用的内存都用madvise()系统调用标记为MADV_DONTFORK(madvise系统调用是应用程序向内核提出的关于内存块的操作建议,内核使用这些建议信息进行优化);内核还缺乏足够的信息,因此内存均衡的效果并不理想。

2023-06-19 17:38:37 296

原创 EHCI接口概述(三)

EHCI主机接口寄存器在BAR0所示的PCI MEM地址空间中,主要包括两部分:1)能力寄存器组2)操作寄存器组下面先介绍能力寄存器组CAPLENGTH寄存器,8位只读寄存器,给出了控制寄存器组的偏移量。HCIVERSION寄存器,16位只读寄存器,兼容EHCI的最大和最小版本号,按照BCD编码格式。高8位是最大版本号,低8位是最小版本号。HCSPARAMS结构参数寄存器,32位只读寄存器。HCCPARAMS能力参数寄存器,32位只读寄存器。

2023-06-16 11:05:29 431

原创 HMM会议纪要2016

如果我们不能提供内核级解决方案,异构计算系统的运行就会比较慢,也需要PIN住更多的内存(PIN住内存:在内存访问之前,就分配好了物理内存,并将其和虚拟地址之间建立映射关系;而且被PIN住的内存不会被换出到交换分区,一直到内存被主动释放)。HMM还处理了异构处理器的DMA映射(感觉:异构处理器要访问这些被交换出去的页,在正确访问之前,也需要处理好这些页相关的页表项)。上述问题的解决方案就是HMM补丁集,给内存管理任务提供了简单的驱动API(感觉:这个API是在内核级实现的,供驱动程序调用的API)。

2023-06-15 15:48:30 386

原创 HMM讨论纪要

Glisse认为,最近几年CPU对内存带宽增长的需求正在放缓:这主要是因为需要更多内存带宽的应用负载并不多,应用负载缺乏追求更快运行的动力;HMM机制会管理每个内存块的所属权,避免CPU和GPU对内存块的竞态(并行)访问。为了保证在任意时刻只有一方能访问内存块,HMM提供了在CPU和GPU之间的内存迁移方法。GPU对内存带宽的需求是CPU的几十倍。最近越来越多的CPU芯片内部直接包含了GPU,CPU和GPU访问相同的物理内存。在GPU运行上的软件行为和在CPU类似:访存时需要页表,也会触发页故障等等。

2023-06-14 20:52:07 404

原创 ECHI接口概述(二)

16位PORTWAKECAP是可读写的端口唤醒寄存器,第0位表示该寄存器是否有效(1表示有效);第n位对应ECHI主控制器对应的第n个物理端口。当第n位为1时,表示这个端口会响应设备连接事件、设备断开事件、端口过流事件和唤醒事件;该寄存器位仅仅是信息掩码位,并不影响EHCI主控制器的实际操作。基于PCI总线的EHCI接口寄存器包括两部分:PCI配置寄存器和PCI MEM空间的EHCI主机接口寄存器。这里先介绍PCI配置寄存器,这部分寄存器遵顼PCI总线规范。8位的SBRN是0x20,表示usb2.0;

2023-05-30 22:00:45 394

原创 DCA驱动框架

核心数据结构是struct dca_provider, 该数据结构的 struct dca_ops描述了提供DCA服务。这部分是Linux驱动服务层内容。提供者和请求者通过DCA驱动框架关联到一起,进行工作。在设备驱动正常使用过程中,需要获得tag标签值时,调用。DCA驱动框架在Linux驱动目录dca下。2)提供DCA服务的设备驱动框架;3)请求DCA服务的设备驱动框架;将设备添加为请求者过程。1)DCA驱动框架;将设备撤销请求者过程。

2023-05-25 14:09:55 852

原创 直接缓存访问DCA

直接缓存访问DCA:网卡原本DMA写是将接收到的数据帧写入系统内存,DCA机制是网卡DMA写输入的数据能直接发送到属于CPU内部的L2高速缓存中,从而提高网络IO的性能。设备驱动程序要初始化网卡的DCA功能,将CPU ID号(通过获取当前CPUID号)和总线号设置到相关寄存器;网卡控制器就会在DMA写的PCIe TLP事务报文头部的tag域做相应的标记;这些DMA写内存事务报文在经过inbound的PCIe主桥、片上网络NoC处理,就直接将数据送到CPU内部的高速缓存。

2023-05-25 11:17:24 932

原创 地址翻译指令AT

系统寄存器,如果地址翻译指令正确运行,返回中间物理地址IPA或物理地址PA,以及页表项的各项属性(包括内存属性ATTR、非安全世界属性NS、共享属性SH),并且错误指示位PAR_EL1.F=0b0;如果地址翻译指令不能正确运行,则返回错误指示PAR_EL1.F = 0b1。选项用于定义地址翻译的阶段、指令运行的最低权限、以及虚拟地址的读写权限。地址翻译指令AT,根据输入的虚拟地址VA通过查页表获得中间物理地址IPA或物理地址PA。

2023-05-21 00:11:05 135

原创 IPMI(二)

健康管理、状态管理等软件必须通过IPMI命令与BMC通信,在获得BMC授权条件下才能获取服务器状态信息并对服务器计算机进行相关控制。IPMI协议不定义健康/状态管理软件的具体行为。系统接口是一组可选的传输层通道,当前IPMI协议定义的系统接口仅仅只有KCS、SMIC、BT和SSIF四种,IPMI协议并没有定义LPC相关接口内容。为了兼容对FRU的运维管理,FRU与BMC通过IPMB总线连接,IPMB总线上只能运行状态请求和响应两种IPMI命令;健康管理、状态管理等软件对FRU的状态查询只能通过BMC转发。

2023-05-02 21:59:53 571

原创 EHCI接口概述(一)

USB2.0主控制器硬件逻辑必须实现一个EHCI接口的高速模式主控制器,另外可选实现一个或多个USB1.1主控制器硬件逻辑(OHCI或UHCI接口的全速/慢速主控制器,这部分硬件逻辑又称为伴生控制器)。USB2.0主控制逻辑,端口路由逻辑可以灵活地连接前端接口和后端端口(后端端口是指EHCI/OHCI/UHCI接口部分)。如果主控制器驱动软件不支持EHCI,端口路由逻辑默认将前端端口连接到OHCI/UHCI端口;如果主控制器驱动软件对EHCI逻辑进行了初始化,端口路由逻辑就将前端端口连接到EHCI端口。

2023-04-28 17:12:59 424

原创 CHI协议通道概念

从片上网络的角度来进一步理解通道:每种通道是一个逻辑网络,网络的路由结点对每种通道都独立转发机制。RN、HN和SN结点支持的通道信号分别与网络路由结点上的通道信号互连。通道定义为一组结点之间的通信信号。CHI协议定义了四种通道,请求REQ、响应RSP、侦听SNP和数据DAT。注意:SN结点不发送也不响应侦听信号。

2023-02-15 16:03:04 1136

原创 CHI协议读数据

直接缓存传输DCT:定义了对等RN-F的本地cache数据直接发送给请求者;在DCT的读事务中,提供数据的RN-F必须通知HN,有时候也可能需要将传输的数据复制一份给HN。如果数据源能直接将数据发送给请求,这样一来就不需要经过HN结点;当前CHI定义了DMT、DCT和DWT三种机制,降低数据转发跳数,降低数据传输延时。一般说来,RN-F或者SN把数据仅仅返回给HN,然后HN再将数据转发给请求者。直接写数据传输DWT:定义了请求者RN将数据直接写给SN。直接内存传输DMT:定义了SN直接发送数据给请求者;

2023-02-15 11:22:36 501

原创 CHI协议定义的NOC组件

只能接收来自HN的请求,完成相关操作,并返回响应消息。

2023-02-10 15:34:58 1350

原创 CHI一致性概述

硬件保证一致性使得系统功能部件能够在不需要软件编程参与的情况下共享内存。如果任意两个组件对相同地址单元进行写访问,且系统内所有组件看到的这两个写访问顺序是相同,那么这个地址具有一致性属性。

2023-02-09 18:34:35 747

原创 CHI总线术语和名词

HN(Home Node),属于互连网络的一部分,能够接收来自主请求者的请求消息,完成所需的一致性操作后,给主请求者发送响应消息。HN-F是一种HN,满足除分布式虚拟内存操作以外的所有一致性事务,HN-F就是互连网络上的一致性节点,即如果所有主请求者向HN-F请求数据操作,那么HN-F保证所有主请求者看到的数据具有一致性。消息一般有:请求消息、数据响应消息和侦听请求消息。3)如果期望完成确认位有效,主请求者在互连网络的侦听响应/完成确认SRSP通道上,返回带有完成确认编码的确认消息。

2022-12-19 12:09:37 704

原创 CHI总线概述

CHI(Coherent Hub Interface)总线用于根据系统性能、功耗、面积的设计需求,来构建片内互连的小型、中型和大型系统

2022-12-19 01:12:50 1772

原创 DDR控制器

低功耗特点,能自动进入到active power down、precharge power down或self-refresh状态(我们现在只需要知道,这是DDR SDRAM的三种低功耗的工作模式)。在全速模式下,控制器数据宽度:SDRAM数据宽度=2:1或4:1或8:1;在半速模式下,=4:1或8:1或16:1。SCL:Self-Calibration Logic,通过寄存器编程方式实现DDR物理层信号校准的逻辑,这部分逻辑全部由硬件实现,软件需要在物理层自动校准之前对寄存器进行初始化。

2022-11-08 14:50:00 2340

原创 最简单条件下的地址依赖性约束分析

最简单条件下的地址依赖性约束分析1. 最简单条件定义只考虑一个处理核的访存正确性,而不用考虑其他处理核、也不用考虑DMA、GPU等设备的情况。2. 地址依赖性约束处理器要保证对同一地址的“写后读”的顺序str x0, [x2]ldr x1, [x2]处理器会保证上述代码中寄存器x1的值就是寄存器x0的值。处理器要保证对同一地址的“读后写”的顺序 ldr x1, [x2]str x0, [x2] 处理器会保证内存单元[x2]在被修改为寄存器x2的值之前,将值传递给寄存器

2022-05-19 15:03:44 188

原创 ARM SMMU介绍

SMMU:system Memory Management Unit系统存储管理单元类似于CPU流水线中的MMU,SMMU负责翻译IO主设备对内存等从设备的读写请求地址,例如DMA,主设备读写请求也会发送到CPU物理地址总线上。IO设备上的DMA会对CPU物理地址总线上的内存单元进行读写访问;IO设备上某些其他逻辑,例如PCI MSI也会对CPU物理地址总线上的MSI消息中断寄存器进行读写。一般说来,SMMU主要是用于DMA传输地址的翻译。DMA地址翻译主要是基于两个原因:地址隔离和简化编程。

2022-04-20 10:09:26 1583

原创 RISCV的浮点计算单元FPU

1.机器特征寄存器CSR_MISA通过该寄存器可以查询当前处理器是否支持单精度浮点计算,是否支持双精度浮点计算,只要支持其中之一,就表示当前处理器支持浮点计算。 csrr t0, CSR_MISA andi t0, t0, (COMPAT_HWCAP_ISA_F | COMPAT_HWCAP_ISA_D) beqz t0, out //直接跳出表示机器硬件不支持浮点计算单元 /*此处代码,表示机器硬件支持浮点计算单元*/...

2022-03-21 17:50:39 2288

原创 复数的向量计算

复数的向量计算当前飞腾CPU并不支持复数的向量计算。这里复数向量计算和数学教科书上的不太一样。1. 基本描述单精度:一个128位向量寄存器描述一个单精度复数单精度虚部 I 单精度实部 R 一个128位向量寄存器描述两个单精度复数单精度虚部 I1 单精度实部 R1 单精度虚部 I0 单精度实部 R0 双精度:一个128位向量寄存器只能描述一个双精度复数双精度虚部 I 双精度实部 R 2. 复数的旋转 虚部 实部

2022-03-18 15:20:40 1010

原创 飞腾CPU体系结构之顺序保证指令

基本概念飞腾CPU采用的弱顺序模型,因此程序执行的结果可能不正确,特别是涉及到多处理器编程或设备驱动编程的情况。飞腾CPU提供ISB、DMB和DSB三种顺序保证指令,很多时候,顺序保证指令又称为屏障指令。ISB指令,主要是保证ISB指令之后的所有程序代码指令是在ISB指令执行完成后才从指令缓冲或内存中取指。一般说来,缓冲和TLB的操作之后,或者在访问系统寄存器之后,插入ISB指令,确保在ISB指令之后,前面的操作全部有效。 DMB指令,主要是保证DBM指令前后的某种类型访存指令的执行必须遵守顺

2022-03-10 17:36:32 505

原创 内存标签扩展MTE

ARM在2018年9月提出的内存安全概念,最终写入ARMv8.5体系结构。MTEMTE具有很强的地址访问完整性硬件级保护,预计访存开销在3%~5%,CPU开销小于1%。MTE当前仅对AARCH64 两类标签 内存标签,每对齐的16字节内存单元有一个4位的标签 指针标签,每个指针在最高字节处有一个4位标签 常规读写指令LD/ST对两类标签进行检查,如果不匹配就触发硬件异常 在AARCH64中新增加专门用于标签操作的指令栈和堆的内存分配过程分配按照16字节对齐方式进行内存分

2022-02-24 16:07:05 463

原创 飞腾CPU体系结构之字节序

字节序描述数值在内存中的每一个字节排列顺序。举例说明,以一个32位4字节为例,数值0x1234_5678的小端字节序和大端字节序描述如下:1. 小端字节序字节 3 2 1 0 0x12 0x34 0x56 0x78 2. 大端字节序字节 3 2 1 0 0x78 0x56 0x34 0x12 需要注意的是:字节序仅仅描述字节之间的位置关系,并不描述字节内部位序关系。

2022-02-19 17:28:30 578

原创 飞腾CPU体系结构之位序

位序描述数值在内存中的每一个位排列顺序。举例说明,以一个8位字节为例,数值0x0A的小端和大端描述如下:1. 小端位序为位 7 6 5 4 3 2 1 0 数值 0 0 0 0 1 0 1 0 2. 大端位序为位 0 1 2 3 4 5 6 7 数值 0 0 0 0 1 0 1 0

2022-02-18 16:41:57 1132

实时线程测试代码rttest.c

实时线程测试源代码,主线程是非实时的,用于统计显示;父线程是任务分发,子线程是任务处理,两者都是实时的。

2020-12-22

diff_numa_memory_and_cpu

该补丁用于修复飞腾CPU的UEFI固件关于NUMA结构描述的遗漏,直接在linux5.9内核使用,其他内核版本可能需要调整。

2020-11-02

创建飞腾CPU上的交叉编译环境脚本

创建飞腾CPU上的交叉编译环境脚本,包括环境变量、目录创建、编译源文件的修改、编译配置的描述、编译和安装,以及最后的验证。

2020-10-18

1-DDI0487A_a_2_armv8_arm_arch_reference_manual.pdf

ARMv8体系结构原文,描述了ARM64的寄存器,指令的CPU相关体系结构,可以用于飞腾和鲲鹏CPU的学习

2020-09-30

PCI总线规范2.2

PCI设备规范,描述了配置空间,PCI内存空间和IO空间,以及中断

2011-05-13

X86_64体系结构(系统程序员手册)

体系结构(系统程序员手册)第二章全译稿!

2011-02-21

空空如也

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

TA关注的人

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