自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

基层架构师的分享

基层架构师的分享

  • 博客(37)
  • 收藏
  • 关注

原创 [A-27]ARMv8/v9-GIC的核心组件(中断编程的基础组件)

本文介绍了GIC的核心组件,Distributor,ReDistributor,CPU-Interfaces。

2025-01-17 10:54:16 559

原创 [A-26]ARMv8/v9-GIC的中断类型

本文介绍了GIC支持的中断类型

2025-01-11 09:32:51 880

原创 [A-25]ARMv8/v9-GIC的系统架构(中断的硬件基础)

本文介绍了ARM的中断控制器GIC的系统架构

2025-01-04 22:03:41 1093

原创 [A-24][V-09]ARMv8/v9-SMMU工作场景与SMMU的虚拟化架构

本文基于SMMUv3介绍了其在两级地址翻译中的使用场景,最后介绍了SMMUv3的虚拟化框架。

2024-12-28 22:00:00 1201

原创 [A-23]ARMv8/v9-SMMU-设备虚拟地址翻译(设备页表映射)

本文介绍了系统总线上的设备借助SMMU完成虚拟地址翻译的流程。

2024-12-21 22:00:00 995

原创 [V-08][Device Virtualization]-软件虚拟化技术vs硬件虚拟化技术

本文介绍了硬件虚拟化技术概论。

2024-12-19 07:00:00 899

原创 [A-22]ARMv8/v9-SMMU多级页表架构

本文介绍了SMMU的多级页表架构。

2024-12-14 21:30:00 1272

原创 [A-21]ARMv8/v9-SMMU系统架构和功能概述

本文简述了SMMU的系统架构和核心功能

2024-12-08 07:00:00 789

原创 [A-20][V-07]ARMv8/v9-内存虚拟化(Stage-2 Translation)

本文介绍了ARM的内存虚拟化技术的Stage-2阶段的相关课题。

2024-12-01 09:30:00 1092

原创 [A-19][V06]ARMv8/v9-内存虚拟化原理

前一篇文章,我们介绍了ARM内存的属性,算是一个小小的里程碑点,接下来我们会把注意力重新拉回虚拟化的赛道。我们从[V-05] 虚拟化基础-异常模型(Exception model)之后,花了很多笔墨介绍了ARM体系的Cache和内存相关的机制作为我们进一步研究虚拟化的基础知识,今天终于回归到我们的虚拟化主线继续小马奔腾。内存空间的管理也是虚拟化技术体系中的核心课题之一,下面我们就进入内存虚拟化的世界。

2024-11-24 10:28:41 966

原创 [A-18]ARMv8/ARMv9-Memory-内存空间的属性(Attributes & Properties)

在宏伟的ARM的内存世界中VMSA中,属性这个议题算不上最亮的星,就和屏幕前的你和我一样,平凡的活在这个茫茫然的人世间。纵使“丈夫贫践应未足,今日相逢无酒钱。”,也不要灰心面对生活,因为“山重水复疑无路,柳暗花明又一村”。这个时代磨炼着每一个人,考验着每一个人的意志力,只要坚持走下去,“莫愁前路无知己,天下谁人不识君”。本文成文的早晨,发生了一些遗憾的事情,谨以此文激励一下每一个屏幕前奋斗的码农,每一个为家庭默默付出的人。

2024-11-16 17:14:29 1330

原创 [A-17]ARMv8/ARMv9-Memory-内存屏障机制(Observer & Barrier)

本文介绍了ARM体系下的内存屏障机制。

2024-11-10 09:00:00 1004

原创 [A-16]ARMv8/ARMv9-Memory-内存共享属性和内存一致性(Memory Shareability & Consistency)

本文介绍了ARM体系下的内存共享属性和内存一致性课题。

2024-11-03 08:30:00 1091

原创 [A-15]ARMv8/ARMv9-Memory-弱排序内存模型(效率至上)

前文中我们用了一篇文章对内存做了分类,ARMv8和ARMv9只支持两种类型的内存,Device类型和Normal类型。而且这两种类型的内存是mutually-exclusive(互斥的),任何一段内存只能被赋予一种类型属性。我们在介绍Normal类型的时候简要的介绍过,Normal类型的内存属于Weakly-Ordered(弱排序),目的是为了最大成都加快编程指令流的执行,提高整个硬件平台的性能。正所谓甘蔗没有两头甜,有好的一面,自然伴随着一些课题,本文先来讨论ARM的弱排序内存模型。

2024-10-28 10:41:07 1217

原创 [A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device & Normal)

本文着重介绍了ARM架构下的内存的分类。

2024-10-26 15:44:05 1131

原创 [A-13]ARMv8/ARMv9-Memory-虚拟地址翻译(页表映射过程)

本文介绍了虚拟内存空间到物理内存空间映射的过程。

2024-10-19 21:30:00 914

原创 [A-12]ARMv8/ARMv9-Memory-页表描述符(Translation table descriptor)

本文着重介绍了ARM体系的页表描述符的具体格式。

2024-09-30 07:00:00 1763

原创 [A-11]ARMv8/ARMv9-Memory-多级页表架构

本文介绍了ARM体系下多级页表架构的基本原理。

2024-09-22 09:00:00 990

原创 [A-10]ARMv8/ARMv9-Memory-页表的概念和使用场景

本文着重介绍了页表的基本概念。

2024-09-16 09:30:00 765

原创 [A-09]ARMv8/ARMv9-Memory-内存空间(Address Spaces and Translation Regimes)

本文着重介绍了ARM体系下,虚拟地址空间和物理地址空间的内部的具体空间类型。

2024-09-09 18:30:00 1193

原创 [A-08]ARMv8/ARMv9-Memory-内存空间(动态内存控制器与物理内存设备)

描述基于ARM架构的DDR Controller / DDR PHY 相关内容。

2024-09-02 22:30:00 931

原创 [A-07]ARMv8/ARMv9-Memory-内存管理单元(MMU)

主要介绍了基于ARM体系的MMU。

2024-08-25 10:00:00 1193

原创 [A-06] ARMv8/ARMv9-Cache的一致性机制(Cache系列完结篇)

书接上文 ,前序的文章我们介绍了Cache一致性的一些基础知识,为我们继续探讨ARM的一致性机制做了必要的铺垫。看过前文的我们应该清楚,ARM会提供两种方式维护Cache的一致性,这两种方式分别是:通过可以直接操作Cache的软件管理方式和直接通过在CPU内部的微架构内部和总线内部的一致性硬件管理单元的硬件方式。当然,为了提高处理器的性能和解放底层软件码农的双手,大部分的场景都是硬件在处理和维护Cache的一致性,自然我们要对这种方式做重点介绍。

2024-08-08 09:18:02 1823 1

原创 [A-05] ARMv8/ARMv9-Cache的一致性基础

本文介绍了基于ARM体系的Cache一致性机制的基础知识点。

2024-07-28 16:01:50 792

原创 [A-04] ARMv8/ARMv9-Cache的相关策略

本文着重介绍ARMv8/ARMv9体系下Cache机制运行中的一些策略相关的问题。

2024-07-12 20:58:01 895

原创 [A-03] ARMv8/ARMv9-多级Cache架构

本文着重介绍了基于ARMv8和ARMv9的多级Cache架构。

2024-07-04 21:30:47 1322

原创 [A-02] ARMv8/ARMv9-Cache的结构设计(VIVT-PIPT-VIPT)

本文着重介绍了Cache的类型,VIVT、VIPT、PIPT。

2024-06-27 13:31:15 1040 3

原创 [A-01] ARMv8/ARMv9-Cache的基本架构

本文介绍ARMv8/ARMv9 Cache相关的基本架构。

2024-06-22 17:09:59 1636

原创 [V-05] 虚拟化基础-异常模型(Exception model)(基于AArch64)

前文的叙述中反复提到了ARM的异常模型,很多地方也留下了伏笔。异常模型对于ARM的架构来说是非常重要的,可以说是AArch64的很多设计思想的基础,对于虚拟化来说那就更加的意义非凡,因此我们需要篇文章专门的阐述清楚AArch64的异常模型的概念、分类、以及处理机制。一位伟大的人说过:这个世界唯一不变的真理就是这个世界永远处在不断的变化当中。

2024-06-13 20:16:28 687

原创 [V-04] 虚拟化基础-寄存器集(Register set)(基于AArch64)

本文只聚焦AArch64的状态,实际上在介绍指令集架构ISA的时候提到过ARMv8实际上是有AArch64和AArch32两种状态,而且两种状态还可以按照一定的规则做交替执行。那么对于寄存器这块是如何做映射转换的自然也有一套规则,例如图4-1所示。图4-1 AArch64 to AArch32 register mapping本文我们从寄存器的硬件电路开始讲起只到介绍了AArch64的寄存器体系,为进一步研究虚拟化技术打下了基础。

2024-05-23 20:22:45 1034

原创 [V-03] 虚拟化基础-指令集架构(ISA)(基于AArch64)

前面文章已经介绍了CPU的基础概念,为我们进一步研究虚拟化技术的一个最终的分支vCPU奠定了基础。回顾前文,我们知道一个CPU-Core的最根本任务就是执行指令,包括取指-执行-访存-回写,如图1-1所示。图1-1 Cortex pipeline为什么要了解和学习指令集(ISA),先看一段ARM官方的说法对于一个辛勤的搞虚拟化开发的码农来说,虚拟化相关的代码主要由3部分组成:Hypervisor、VM、GuestOS。要写出高效的,性能良好的虚拟化代码,也一定要了解到底什么是ISA。

2024-05-18 19:56:16 1155

原创 [V-02] 虚拟化基础-CPU架构(基于AArch64)

虚拟化的最重要课题就是虚拟CPU,VM如果没有vCPU的加持是不能正常工作的。俗话说百闻不如一见,本文我们从一个PCB板子开始一步一步的分解放大局部,最后到了CPU的一个core上,了解了CPU的内部的物理结构和逻辑结构。这些知识点都是我们继续前进的基础,虽然限于篇幅,书不尽言,但是核心的知识点基本都呈现了出来。后面如果有必要,会专门开一个系列写一写ARM体系的文章。限于个人水平,难免有纰漏之处,还希望大家多多指教,共同提高。后面还有几篇文章继续阐述硬件的架构,on the way。

2024-05-11 19:12:17 1517 1

原创 [V-01]虚拟化概论-Hypervisor(VMM)(基于AArch64)

由于Emulation可以归类为一种特殊的全虚拟化模式,也不是我们要讨论的重点,这里我们就不花笔墨做详细的阐述了,我们的精力主要还是放在Virtualization这个领域。本文着重阐述了Hypervisor(VMM),在虚拟化这个技术领域,Hypervisor就是灵魂。在GuestOS、VMs、VMM组成的虚拟化体系下,VMM就是核心和纽带,所有的虚拟化软件方案和技术都要围绕着Hypervisor这个点展开,以Hypervisor的类型和基础服务为基础做二次设计。

2024-05-08 16:38:54 1834

原创 [V-00] 虚拟化概论-思想

上面介绍的几点都是虚拟化技术,大家的区别主要是,进程、高级语言是指令的执行环境的虚拟化,大家的硬件视角一致(都是物理硬件视角),但是VMM的虚拟化技术约束的是GuestOS,进而影响GuestOS上的进程的硬件视角(实际上是虚拟的硬件视角,可以不一致,有的时候甚至是互斥的)。从操作系统的视角看去,GuestOS在一般的虚拟化技术的实现下其实就是HostOS的一个进程,但是他看到的硬件视角被VMM给限制了,和HotstOS中其他进程是不一样。

2024-04-28 19:20:04 1048

原创 [NN-0]神经网络入门-概论

(1)神经网络(Neural network)是由简单处理单元构成的规模并行分布式处理器,天然的具有存储经验知识和使之可用的特性。(2)神经网络是通过学习过程从外界环境中获取知识。(3)互联神经元的连接强度,即突触权值,用于存储获取的知识。上面的定义可以简单归纳为三点:学习、存储、利用。学习机器学习的过程非常的重要,直接决定了神经网络的质量和可用性, 这个章节会把一些基础概念简要阐述一下,扫清后续章节的障碍。(1)学习对象的载体,我们称为样本。

2024-02-22 18:21:38 908

原创 Windows系统下编译grpc源码+VS2019配置使用grpc

【原创】Windows系统下编译grpc+VS2019配置使用grpc导语: 本文记录了开源通信框架在windows系统上编译的过程,以及使用VS 2019配置使用编译出来的grpc相关成果物展示demo.在window下编译grpc也是无奈啊,试过好多种办法(通过msys配置等),都不能为VS所用,所以只能开启一段旅程。 网上相关资料也有很多,这里基于grpc 和 VS 最新版本丰富下细节,做一下记录。Step-1: 编译grpc1-1 准备编译环境(1) 安装Git作用:下载grpc代码以

2020-07-08 13:47:12 6012 6

原创 windows环境下 Tensorflow 2.1.0 打包成 exe 可执行程序

windows环境下 Tensorflow 2.1.0 打包成 exe 可执行程序项目需要需要将TensorFlow2.1.0 打包成exe 可执行程序。踩过的坑太多,这里简单记录一下,本文基于的OS环境是 windows7。Step-1: 环境准备。安装Anaconda:(熟悉python编程的同学应该不会陌生),这一步的目的是建立一个以python 3.7 为解析器的工作环境, 因为TF2.1.0 依赖Python3+工作。这部分工作,网上的资料非常多,请大家自行搜索,不再赘述。这里建议大家安装

2020-07-02 09:49:53 2650 5

空空如也

空空如也

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

TA关注的人

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