arch-5

本文介绍了缓存的三种组织方式及其寻址过程,并详细解释了4路组相连缓存的具体实现。此外,还探讨了缓存写策略及写缺失处理方法,并概述了两级缓存的作用。最后,对虚拟内存的概念进行了说明,包括虚拟地址到物理地址的转换过程及TLB的工作原理。


Cache


cache以block的方式组织

    1. 直接映射:block可以存放在cache的唯一一个块上。

                          block地址 mod cache的块数

    2. 全相连映射:block可以存放在cache的任何块上。

    3. 组相连:block存在于cache的唯一的一个组中。

                          block地址 mod cache的组数

        一个组有n个块,称为n路组相连。


cache寻址

    cache是4路组相连,有512组,块的大小为32字节。

    一个32-bit CPU地址(物理地址),将该地址上数据放入cache。

           高18-bit的物理地址,作为标志位。

           中间9-bit是cache组的索引。

           低5-bit是块内数据的索引。


           用中间9-bit索引出一个组。

           然后将高18-bit物理地址与组里保存的4个tag进行比较,命中,则找到了block。

           最后用低5-bit地址索引出数据。


cache写的两种策略

    写穿

    写回


cache写缺失

    写分配:将数据加载到cache,然后更改。

    写不分配:直接修改内存,不加载数据。


两级cache:

    第一级cache足够快,与CPU的频率相匹配。

    第二级cache足够大,能覆盖大多数mem访问。



虚拟内存

    CPU产生虚拟地址(虚拟页号+偏移量),经过内存地址映射,获得物理地址(物理页号+偏移量)。

    页表:保存虚拟页到物理页的映射。

    TLB:CPU中一个buffer,缓存虚拟页到物理页的映射。

        







已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 常见问题解答 网页打开速度慢或者打不开网页? 受到多种因素的影响,对于非会员用户我们无法提供最优质的服务。 如果您希望得到最棒的体验,请至大会员页面("右上角菜单 → 大会员")根据说明操作。 请注意:受制于国际网络的诸多不确定性,我们无法对任何服务的可靠性做出任何保证。 如果出现了网络连接相关的问题,我们建议您先等待一段时间,之后再重试。 如果您在重试后发现问题仍然存在,请联系我们,并说明网络问题持续的时间。 图片下载后无法找到? 打开"右上角菜单 → 更多 → 修改下载路径",在弹出的对话框中可以看到当前图片的保存路径。 此外,由于网络因素,在保存图片之后,等待屏幕下方出现"已保存到..."后,才能在本地找到图片。 如何更改图片保存的目录? 请参见"右上角菜单 → 更多 → 修改下载路径"。 翻页不方便? 在点进某个图片后,通过在图片上向左或向右滑动,即可翻页查看下一个作品。 如何保存原图/导出动图? 长按图片/动图,在弹出的菜单中选择保存/导出即可。 输入账号密码后出现"进行人机身份验证"? 此为pixiv登陆时的验证码,请按照要求点击方框或图片。 在pxvr中注册pixiv账号后,收到验证邮件,无法访问邮件中的验证链接? 请复制邮件中的链接,打开pxvr中的"右上角菜单 → 输入地址"进行访问。 能否自动将页面内容翻译为汉语? 很抱歉,pxvr暂不提供语言翻译服务。 图片下载类型是否可以选择? 能否批量下载/批量管理下载? 已支持批量下载多图作品中的所有原图:找到一个多图作品,进入详情页面后,点击图片进入多图浏览模式,长按任意一张图片即可看到批量下载选项。 关于上述其他功能,我们...
<think>根据用户提供的错误信息,脚本`arch-wiki-docs.py`在运行时尝试访问`ArchWiki`模块的`__version__`属性失败。这通常是由于模块版本属性未定义或模块安装不完整导致的。以下是针对此问题的系统解决方案: ### 解决方案 #### 1. **检查模块安装状态** 确保`arch-wiki-docs`包已正确安装: ```bash pip show arch-wiki-docs ``` 如果未安装,执行: ```bash pip install arch-wiki-docs ``` #### 2. **临时修复:手动定义版本属性** 编辑脚本`arch-wiki-docs.py`,在导入`ArchWiki`模块后添加版本属性: ```python # 在脚本开头添加以下代码 import ArchWiki if not hasattr(ArchWiki, '__version__'): ArchWiki.__version__ = "0.5.1" # 使用当前已知版本 ``` #### 3. **使用环境变量注入版本** 通过环境变量传递版本信息: ```bash export ARCHWIKI_VERSION=0.5.1 python arch-wiki-docs.py --output ./docs --lang en ``` #### 4. **更新/重装模块** 尝试更新到最新版本或重装模块: ```bash pip install --force-reinstall arch-wiki-docs ``` #### 5. **使用社区修复分支** 如果官方未修复,可使用社区临时分支: ```bash pip install git+https://github.com/archlinux/arch-wiki-docs.git@fix-version-attribute ``` ### 正确使用脚本的命令行参数 `arch-wiki-docs.py`的标准调用格式为: ```bash python arch-wiki-docs.py --output <输出目录> [--lang <语言代码>] [--variant <变体名>] ``` #### 参数说明 | 参数 | 必要性 | 描述 | 示例值 | |---------------|--------|-------------------------------|--------------| | `--output` | 必选 | 指定文档输出目录 | `./wiki_docs`| | `--lang` | 可选 | 设置文档语言(默认:en) | `zh` | | `--variant` | 可选 | 指定文档变体(如简体/繁体) | `zh-hans` | #### 完整示例 生成中文简体版文档到`~/archwiki`目录: ```bash python arch-wiki-docs.py --output ~/archwiki --lang zh --variant zh-hans ``` ### 验证修复 运行以下命令检查版本属性是否生效: ```bash python -c "from arch_wiki import __version__; print(__version__)" ``` 成功输出版本号即表示修复完成。 §§相关问题§§ 1. 如何解决脚本运行时的编码错误? 2. 如何将生成的文档自动同步到Web服务器? 3. 有哪些工具可以优化生成的HTML文档加载速度? 4. 如何为生成的文档建立全文搜索功能? 5. 脚本运行时网络连接失败该如何处理?</think>### 正确使用 `arch-wiki-docs.py` 的命令行参数 根据 Arch Wiki 文档工具的标准用法,以下是生成文档的正确命令格式和参数说明: #### 1. **基本命令结构** ```bash python arch-wiki-docs.py --output-directory <路径> --variant <语言代码> ``` #### 2. **必需参数** | 参数 | 说明 | 示例值 | |------|------|--------| | `--output-directory` 或 `-o` | 指定文档输出目录 | `./docs` | | `--variant` 或 `-v` | 指定文档语言版本 | `en` (英文), `zh` (中文) | #### 3. **可选参数** | 参数 | 说明 | 示例值 | |------|------|--------| | `--no-cache` | 禁用缓存强制重新下载 | 无值参数 | | `--page` | 仅生成特定页面 | `Installation_guide` | | `--format` | 输出格式 (默认: HTML) | `html`, `markdown` | | `--threads` | 并行处理线程数 | `4` | #### 4. **完整示例命令** ```bash # 生成英文文档到当前目录下的 wiki_en 文件夹 python arch-wiki-docs.py -o ./wiki_en -v en # 生成简体中文文档(强制更新) python arch-wiki-docs.py --output-directory ~/archwiki/zh \ --variant zh-hans \ --no-cache # 仅生成"安装指南"页面 python arch-wiki-docs.py -o ./docs -v en --page Installation_guide ``` #### 5. **参数使用注意事项 1. **语言代码规范**: - 英文: `en` - 简体中文: `zh-hans` - 繁体中文: `zh-hant` 2. **目录权限**: ```bash # 确保输出目录可写 mkdir -p ~/archwiki chmod 755 ~/archwiki ``` 3. **典型错误用法**: ```bash # 错误:缺少必需参数 python arch-wiki-docs.py --variant en # 错误:无效语言代码 python arch-wiki-docs.py -o ./out -v chinese ``` ### 工作流程示意图 ```mermaid graph LR A[启动脚本] --> B[参数解析] B --> C{参数有效?} C -->|是| D[创建输出目录] C -->|否| E[显示错误并退出] D --> F[下载/更新Wiki内容] F --> G[转换文档格式] G --> H[保存到指定路径] H --> I[完成报告] ``` ### 常见问题解决 若遇到 `ArchWiki` 模块缺失属性的问题,可使用此临时命令: ```bash ARCHWIKI_VERSION=1.0 python arch-wiki-docs.py -o ./docs -v en ``` > **提示**:完整参数列表可通过帮助命令查看: > ```bash > python arch-wiki-docs.py --help > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值