自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

基层架构师的分享

基层架构师的分享

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

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

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

2024-06-27 13:31:15 355

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

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

2024-06-22 17:09:59 1002

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

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

2024-06-13 20:16:28 521

原创 [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 778

原创 [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 814

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

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

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

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

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

2024-05-08 16:38:54 1068

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

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

2024-04-28 19:20:04 827

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

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

2024-02-22 18:21:38 780

原创 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 5241 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 2471 5

空空如也

空空如也

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

TA关注的人

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