Skip to content

Commit 55c135c

Browse files
committed
init
1 parent c71bf6c commit 55c135c

9 files changed

+453
-30
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
---
2+
title: 『ARM』和『x86』处理器架构解析指南
3+
date: 2023-10-19 17:06:05
4+
permalink: /pages/d29a94/
5+
categories:
6+
- 框架工具
7+
tags:
8+
-
9+
author:
10+
name: ReturnTmp
11+
link: https://github.com/ReturnTmp
12+
---
13+
14+
15+
16+
## 前言
17+
18+
如果问大家是否知道 CPU,我相信不会得到否定的答案,但是如果继续问大家是否了解 **ARM 和 X86 架构**,他们的区别又是什么,相信**可能部分人就会哑口无言**
19+
20+
目前随着深度学习、高性能计算、NLP、AIGC、GLM、AGI 的技术迭代,助力大模型快速发展,对于**多元算力结合(CPU+GPU)需求越来越高**,再不了解 CPU 就说不过去了,因此本文将会**带您深入了解 CPU 架构,并且解析 CPU 两大主流架构:ARM 和 X86**
21+
22+
![419a8ad171e1f2ccd36d965b9cdded05](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310191934182.png)
23+
24+
25+
26+
27+
28+
## 简介
29+
30+
**中央处理器(Central Processing Unit,CPU)** 是计算机的运算核心和控制核心。**CPU、内部存储器和输入/输出设备**是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据
31+
32+
**CPU 由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成**。差不多所有的CPU的**运作原理**可分为四个阶段:**提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)**。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令
33+
34+
35+
36+
## 处理器系列
37+
38+
### x86
39+
40+
**Intel 系列**: Celeron(赛扬)、Pentium(奔腾)和Core(酷睿)从低端到高端
41+
42+
**AMD 系列**:Semporn(闪龙)Athlon(速龙)和 羿龙系列 从低端到高端
43+
44+
因为 Intel 为 x86 架构处理器龙头老大,因此后文某些地方可能使用 **Intel 处理器代指 x86 架构处理器**
45+
46+
> 注:上面两家公司主要做 x86 架构,但是也会做 ARM 架构,比如 2016 年 AMD 公司推出基于ARM架构的处理器 Opteron A1100
47+
48+
### ARM
49+
50+
基本就是英国 ARM 公司的处理器系列,以及所有 ARM 公司授权的公司,诸如高通、苹果(三星代做)、三星和华为
51+
52+
53+
54+
## 指令集区别
55+
56+
想要了解 X86 和 ARM,需要先了解**复杂指令集(Complex Instruction Set Computer,简称 CISC)和精简指令集(Reduced Instruction Set Computer,简称 RISC)**
57+
58+
![image-20231019191356285](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310191913319.png)
59+
60+
### 复杂指令集
61+
62+
在 CISC 微处理器中,**程序的各条指令是按顺序串行执行的**,每条指令中的各个操作也是按顺序串行执行的。**顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢**。CISC架构的服务器主要以IA-32架构(Intel Architecture,英特尔架构)为主,而且多数为中低档服务器所采用
63+
64+
计算机的指令系统比较丰富,有专用指令来完成特定的功能,因此,**处理特殊任务效率较高**。机器的存储器**操作指令多,操作直接**。包含有丰富的电路单元,因而**功能强、面积大、功耗大**
65+
66+
适用领域:==个人电脑和服务器==
67+
68+
> 注:**x86 架构** 主要采用 **复杂指令集**
69+
70+
71+
72+
### 精简指令集
73+
74+
**RISC 是执行较少类型计算机指令的微处理器**,起源于 80 年代的 MIPS 主机 (即 RISC 机),RISC 机中采用的微处理器统称 RISC 处理器
75+
76+
RISC 处理器能够以更快的速度执行操作 (每秒执行更多百万条指令,即 MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢
77+
78+
因为设计者主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色,不常用功能会通过组合指令来完成,因此在RISC 机器上**实现特殊功能时,效率可能较低**,但可以利用流水技术和超标量技术加以改进和弥补
79+
80+
**对存储器操作有限制,使控制简单化**。包含有较少的单元电路,因而**面积小、功耗低**
81+
82+
适用领域:==移动设备和嵌入式系统==
83+
84+
> 注:**ARM 架构 ** 主要采用 **精简指令集**
85+
86+
87+
88+
### 总结
89+
90+
就 CPU 功耗来讲,RISC 和 CISC 走了两条不同道路。**CISC 走的是性能路线**,先把性能做上去,功耗其次。不断地考虑如何散热,使用金属片,风扇,水冷等多种设备降温,因为用在 PC 上,耗电大不会有明显的问题。**RISC走的是低功耗路线**,面向的是需要用电池的场景,功耗低是首要原则,性能其次
91+
92+
93+
94+
## 64位计算
95+
96+
### x86
97+
98+
ADM 公司首先开发出 64 位版本的 x86 指令集,64 位的指令集名为 **x86-64(简称 x64)**
99+
100+
Intel 公司认为将自己 32 位 x86 架构进化出 64 位架构,新架构效率会很低,因此创建新 64 位处理器项目,名为 IA64,由此制造出 Itanium 系列处理器
101+
102+
后面 AMD 知道自己造不出能与 IA64 兼容的处理器,于是将 x86 扩展,加入了 64 位寻址和 64 位寄存器。最终出来的架构就是 AMD64,**最终 ADM 成为了 64 位版本的 x86 处理器的标准**。最后 Intel 将 Itanium 系列处理器彻底废弃,并最终采用 AMD64
103+
104+
105+
106+
### ARM
107+
108+
ARM 公司在看到移动设备对 64 位计算的需求后,于 2011 年发布了 ARMv8 64 位架构,基于原有的原则和指令集,开发简明的 64 位架构,**ARMv8** 使用了两种执行模式,**AArch32 和 AArch64**
109+
110+
ARM 设计的巧妙之处,是**处理器运行中可以无缝地在两种模式间切换**。这意味着 **64 位指令的解码器是全新设计的,无需兼顾 32 位指令**,而处理器依然可以向后兼容
111+
112+
113+
114+
115+
116+
## 异构计算
117+
118+
![ARM big.LITTLE - Wikipedia](https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/In_Kernel_Switcher.jpg/370px-In_Kernel_Switcher.jpg)
119+
120+
**ARM 的 big.LITTLE 架构**处理解决当今行业面临的难题:**如何创建既有高性能又有极佳节能效果的片上系统 (SoC) 以延长电池使用寿命**
121+
122+
在 big.LITTLE 架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的 2 个核或者 4 个核。一个双核 Atom 处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。**ARM 通过 big.LITTLE 向移动设备推出了异构计算**。这意味着**处理器中的核可以有不同的性能和功耗**。当设备正常运行时,使用低功耗核,而当你运行复杂的游戏时,使用的是高性能的核
123+
124+
big.Little 系统中两个处理器之间高效无缝地切换工作负载是通过开发高级 ARM 系统 IP 实现的,这样可确保 Cortex-A15 和 Cortex-A7 处理器之间完全的高速缓存、I/O 的一致性
125+
126+
如果您想要**详细了解 big.LITTLE 的底层原理和机制**,可以查看下方 **ARM 官网解释**
127+
128+
> 官方解释:
129+
>
130+
> - [big.LITTLE – Arm®](https://www.arm.com/technologies/big-little)
131+
> - [Wayback Machine (archive.org)](https://web.archive.org/web/20131017064722/http://www.arm.com/files/downloads/big_LITTLE_Final_Final.pdf)
132+
133+
134+
135+
## 功耗对比
136+
137+
以前人们的刻板印象,低功耗和高算力处理器就是泾渭分明,x86 架构就是做高算力,ARM 架构就是做低功耗
138+
139+
但是自从苹果发布 M1 芯片(目前的 M2 芯片远超同等 x86 处理器性能),并且随着其他 ARM 处理器的快速发展,人们才恍然惊觉,**原来靠低功耗起家的 ARM 也能做高算力**,可以真正做到**更高性能和更低功耗**
140+
141+
根据 2022 年 Ampere 公司给出的数据,**其 CPU 的性能超越传统 x86 处理器 3 倍,性能功耗比领先近 4 倍**,与 x86 服务器 CPU 相比,Ampere Altra 系列可用 50% 的能耗,提供 200% 的性能
142+
143+
![Arm服务器CPU将进一步扩大与x86 CPU的性能差距](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310192006893.png)
144+
145+
146+
147+
148+
149+
150+
151+
## 参考链接
152+
153+
- [分不清ARM和X86架构,别跟我说你懂CPU! - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/21266987)
154+
- [ARM 与 x86:有何区别? (redhat.com)](https://www.redhat.com/zh/topics/linux/ARM-vs-x86)
155+
- [CPU的基本概念 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/44090987)
156+
- [CPU的介绍与选择,看完你懂了吗? - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/122370117)
157+
- [什么是 CPU?– 中央处理器详解 – AWS (amazon.com)](https://aws.amazon.com/cn/what-is/cpu/)
158+
- [CISC和RISC的特点和区别 - 不是公子的小白 - 博客园 (cnblogs.com)](https://www.cnblogs.com/bobbycheng/p/13748294.html)
159+
- [CPU_X86架构和ARM架构入门篇-腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/article/1862717)
160+
161+
162+

docs/04.运维笔记/73.GitHub Action 部署静态博客.md

+26-26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: GitHub Actions 部署静态博客
2+
title: GitHub Actions』静态博客部署指南
33
date: 2023-10-13 16:20:30
44
permalink: /pages/39ba33/
55
categories:
@@ -17,7 +17,7 @@ author:
1717

1818
之前博主是使用的 `Jenkins` 实现 `vuepress` 博客的自动部署与持续交付,但是因为现在迁移服务器到海外,并且服务器配置降低。现在经常出现**服务器的 `Jenkins` 构建过程中 CPU 占用率过高,导致服务器卡死**
1919

20-
然后我想的话既然只是部署静态博客,似乎也没必要使用 `Jenkins` 这样重量级的 CI/CD 工具,所以本文将会主要讲解**如何使用 GitHub Actions 部署我们的 vuepress 静态博客**
20+
然后我想的话既然只是部署**静态博客**,似乎也没必要使用 `Jenkins` 这样重量级的 CI/CD 工具,所以本文将会主要讲解**如何使用 GitHub Actions 部署我们的 vuepress 静态博客**
2121

2222
下面给出博主的博客仓库地址,后面我们的配置过程中需要用到
2323

@@ -27,9 +27,7 @@ author:
2727
2828

2929

30-
## 步骤
31-
32-
### 配置密钥
30+
## 配置密钥
3331

3432
首先我们需要**配置私钥到 GitHub Actions** ,以便其可以与我们的云服务器交互
3533

@@ -42,7 +40,7 @@ ssh-keygen -t rsa -C "[email protected]"
4240
或者说我们可以**指定私钥和公钥的名称**
4341

4442
```bash
45-
ssh-keygen -t rsa -f action -C "[email protected]"
43+
ssh-keygen -t rsa -f mysite -C "[email protected]"
4644
```
4745

4846
然后就会在 `~/.ssh`下生成两个文件:`mysite`(私钥)和`mysite.pub`(公钥)
@@ -63,7 +61,7 @@ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
6361

6462

6563

66-
### 工作流配置
64+
## 工作流配置
6765

6866
然后我们按照同样的方法创建 `IP` 变量,填写自己服务器的域名或是 IP,当然不创建后面直接使用明文也是可以的
6967

@@ -108,28 +106,30 @@ jobs:
108106
SOURCE: "docs/.vuepress/dist"
109107
REMOTE_HOST: ${{ secrets.IP }} #服务器ip
110108
REMOTE_USER: "root"
111-
TARGET: "/root/app/blog-vuepress-vdoing/"
109+
TARGET: "/usr/share/nginx/blog/"
112110
EXCLUDE: "/node_modules/"
113111

114112
```
115113

116-
其中 `/root/app` 是我们需要部署博客的目标文件夹,尽量提前创建文件夹
114+
其中 `/usr/share/nginx/blog/` 是我们需要部署博客的目标文件夹,尽量提前创建文件夹,否则可能出现错误
117115

118116
> 注:其中 action 详细配置可以自行查找对应仓库,例如 actions/checkout action ,仓库位于:https://github.com/actions/checkout
119117
120118

121119

122-
### 配置 Nginx
120+
## 配置 Nginx
123121

124122
编辑文件 `/etc/nginx/nginx.conf` ,编辑如下
125123

126-
server {
127-
location / {
128-
root /root/app/blog-vuepress-vdoing/dist;
129-
index index.html index.htm;
130-
try_files $uri $uri/ /index.html;
131-
}
124+
```bash
125+
server {
126+
location / {
127+
root /usr/share/nginx/blog/dist;
128+
index index.html index.htm;
129+
try_files $uri $uri/ /index.html;
132130
}
131+
}
132+
```
133133
同时需要更改 Nginx 启动用户,修改 `/etc/nginx/nginx.conf`
134134

135135
```bash
@@ -142,29 +142,29 @@ user root;
142142
systemctl restart nginx
143143
```
144144

145-
这里需要注意,后面我们推送工作流之后,拉取下来的 dist 文件夹所属用户和用户组不是 root,nginx 会有 403 错误
146145

147-
![image-20231014193340180](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310141934940.png)
148146

149-
需要执行如下命令
147+
## 工作流推送
150148

151-
```bash
152-
chown -R root:root /root/app/blog-vuepress-vdoing/dist
153-
```
149+
最后推送本地的 `deploy.yml` 到远程 GitHub 源码库,查看最后 Actions 执行效果即可
154150

151+
![image-20231014170229221](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310141702704.png)
155152

156153

157154

155+
然后查看博客部署效果即可
158156

159-
### 工作流推送
157+
**博客访问地址**http://www.returntmp.fun
160158

161-
最后推送本地的 `deploy.yml` 到远程 GitHub 源码库,查看最后 Actions 执行效果即可
162159

163-
![image-20231014170229221](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310141702704.png)
160+
161+
![image-20231014205158399](https://cdn.jsdelivr.net/gh/Returntmp/blog-image@main/blog/202310142051694.png)
164162

165163

166164

165+
但是由于服务器在海外,并且文章比较多,导致 app.js 过大,加载时间比较长,实测不使用科学上网的话大概十几秒才加载出来网站
167166

167+
其中排查主要是全文搜索占用 app.js 文件空间过多,后期会进行优化
168168

169169

170170

@@ -174,5 +174,5 @@ chown -R root:root /root/app/blog-vuepress-vdoing/dist
174174

175175
- [GitHub Actions 入门教程 - 阮一峰的网络日志 (ruanyifeng.com)](http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html)
176176
- [使用GithubActions自动部署(ECS)-腾讯云开发者社区-腾讯云 (tencent.com)](https://cloud.tencent.com/developer/article/1720500)
177-
- [使用Github Action+Vuepress+Nginx自动部署阿里云服务器 - RuoVea - 博客园 (cnblogs.com)](https://www.cnblogs.com/stry/articles/17037771.html)
177+
- [使用Github Action+Vuepress+Nginx自动部署 博客园 (cnblogs.com)](https://www.cnblogs.com/stry/articles/17037771.html)
178178
- [通过 GitHub Actions 自动部署 vuepresss 项目到云服务器-CSDN博客](https://blog.csdn.net/weixin_50566466/article/details/122619366)

docs/04.运维笔记/76.Nginx 403 forbidden 问题.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,19 @@ try_files $uri $uri/ /index.html;
5454

5555
### 缺少权限
5656

57-
我们可以修改目录的读写权限(一般来说不需要)
57+
我们可以修改 web 目录的读写权限
5858

5959
```bash
6060
chmod -R 755 /data
6161
```
6262

63-
修改目录的所属用户为 Nginx 启动用户(当然可以直接修改 conf 文件,改动 Nginx 启动用户)
63+
或者说修改目录的所属用户为 Nginx 启动用户(当然可以直接修改 conf 文件,改动 Nginx 启动用户)
6464

6565
```bash
6666
chown -R root:root /data
6767
```
6868

69-
但是可能仍旧爆出 403 错误,这是因为
69+
7070

7171

7272

0 commit comments

Comments
 (0)