<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel><title>waibibab's blog</title><link>https://waibibab-cs.github.io</link><description>坏记性不如烂笔头</description><copyright>waibibab's blog</copyright><docs>http://www.rssboard.org/rss-specification</docs><generator>python-feedgen</generator><image><url>https://avatars.githubusercontent.com/u/105782835?s=400&amp;u=04c0291bd1e06b01ccad1d53388ed4a8a8894a53&amp;v=4</url><title>avatar</title><link>https://waibibab-cs.github.io</link></image><lastBuildDate>Thu, 02 Apr 2026 14:24:59 +0000</lastBuildDate><managingEditor>waibibab's blog</managingEditor><ttl>60</ttl><webMaster>waibibab's blog</webMaster><item><title>CUDA官方文档学习3：CUDA SIMT核函数</title><link>https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-3%EF%BC%9ACUDA%20SIMT-he-han-shu.html</link><description>原文章链接：https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
# 1.线程的层次结构
SIMT模型允许每个线程保持自身状态和控制流。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-3%EF%BC%9ACUDA%20SIMT-he-han-shu.html</guid><pubDate>Thu, 02 Apr 2026 14:24:28 +0000</pubDate></item><item><title>CUDA官方文档学习2：CUDA C++入门</title><link>https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-2%EF%BC%9ACUDA%20C%2B%2B-ru-men.html</link><description>原文章链接：https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/intro-to-cuda-cpp.html
本章通过展示如何在C++中体现这些概念，介绍了CUDA编程模型的一些基本概念。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-2%EF%BC%9ACUDA%20C%2B%2B-ru-men.html</guid><pubDate>Wed, 01 Apr 2026 12:54:17 +0000</pubDate></item><item><title>CSAPP第五章笔记：优化程序性能</title><link>https://waibibab-cs.github.io/post/CSAPP-di-wu-zhang-bi-ji-%EF%BC%9A-you-hua-cheng-xu-xing-neng.html</link><description>在很多情况下，让程序运行得快也是一个重要的考虑因素，编写高效程序需要做到以下几点：第一、我们必须选择一组适当的算法和数据结构。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CSAPP-di-wu-zhang-bi-ji-%EF%BC%9A-you-hua-cheng-xu-xing-neng.html</guid><pubDate>Wed, 01 Apr 2026 03:06:16 +0000</pubDate></item><item><title>【论文阅读；ASPLOS'26】CEMU：实现超越硬件限制的全系统计算存储仿真</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9BASPLOS%2726%E3%80%91CEMU%EF%BC%9A-shi-xian-chao-yue-ying-jian-xian-zhi-de-quan-xi-tong-ji-suan-cun-chu-fang-zhen.html</link><description>论文全名：CEMU: Enabling Full-System Emulation of  Computational Storage Beyond Hardware Limits
# 摘要
计算存储驱动器（CSD）通过在固态硬盘（SSD）中实现近数据处理，为提升系统性能提供了一种极具前景的方案。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9BASPLOS%2726%E3%80%91CEMU%EF%BC%9A-shi-xian-chao-yue-ying-jian-xian-zhi-de-quan-xi-tong-ji-suan-cun-chu-fang-zhen.html</guid><pubDate>Tue, 31 Mar 2026 03:06:25 +0000</pubDate></item><item><title>【论文阅读；24】SmartANNS：基于SmartSSD的可扩展十亿级向量近似最近邻搜索</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B24%E3%80%91SmartANNS%EF%BC%9A-ji-yu-SmartSSD-de-ke-kuo-zhan-shi-yi-ji-xiang-liang-jin-si-zui-jin-lin-sou-suo.html</link><description>论文名称：Scalable Billion-point Approximate Nearest Neighbor Search Using SmartSSDs
# 摘要
高维向量空间中的近似最近邻搜索（ANNS）在数据库和机器学习应用中变得愈发重要。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B24%E3%80%91SmartANNS%EF%BC%9A-ji-yu-SmartSSD-de-ke-kuo-zhan-shi-yi-ji-xiang-liang-jin-si-zui-jin-lin-sou-suo.html</guid><pubDate>Fri, 20 Mar 2026 09:37:45 +0000</pubDate></item><item><title>CUDA官方文档学习1：CUDA介绍</title><link>https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-1%EF%BC%9ACUDA-jie-shao.html</link><description>原文章链接：https://docs.nvidia.com/cuda/cuda-programming-guide/
# 编程模型
## 异构系统
CUDA编程模型假定了一个异构计算系统，这意味着系统同时包含GPU和CPU。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CUDA-guan-fang-wen-dang-xue-xi-1%EF%BC%9ACUDA-jie-shao.html</guid><pubDate>Thu, 19 Mar 2026 09:10:12 +0000</pubDate></item><item><title>【论文阅读；26】VoiceAgentRAG：利用双智能体架构解决实时语音智能体中 RAG 的延迟瓶颈</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91VoiceAgentRAG%EF%BC%9A-li-yong-shuang-zhi-neng-ti-jia-gou-jie-jue-shi-shi-yu-yin-zhi-neng-ti-zhong-%20RAG%20-de-yan-chi-ping-jing.html</link><description>论文全名：VoiceAgentRAG: Solving the RAG Latency Bottleneck in Real-Time Voice Agents Using Dual-Agent Architectures
# 摘要
检索增强生成（RAG）使语言模型能够将其回答建立在外部知识的基础上，但检索步骤引入了与实时语音对话不相容的延迟。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91VoiceAgentRAG%EF%BC%9A-li-yong-shuang-zhi-neng-ti-jia-gou-jie-jue-shi-shi-yu-yin-zhi-neng-ti-zhong-%20RAG%20-de-yan-chi-ping-jing.html</guid><pubDate>Thu, 19 Mar 2026 02:22:25 +0000</pubDate></item><item><title>AI coding工具使用记录汇总（持续更新中）</title><link>https://waibibab-cs.github.io/post/AI%20coding-gong-ju-shi-yong-ji-lu-hui-zong-%EF%BC%88-chi-xu-geng-xin-zhong-%EF%BC%89.html</link><description># Claude code
## 配置相关
官网订阅claude code是一月25美元，且听说貌似还有限额，但某鱼代充的话感觉有很大的封号风险，暂时没有找到一个特别好的方案。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/AI%20coding-gong-ju-shi-yong-ji-lu-hui-zong-%EF%BC%88-chi-xu-geng-xin-zhong-%EF%BC%89.html</guid><pubDate>Thu, 19 Mar 2026 02:21:11 +0000</pubDate></item><item><title>FEMU入门笔记</title><link>https://waibibab-cs.github.io/post/FEMU-ru-men-bi-ji.html</link><description>&lt;html&gt;
&lt;body&gt;
&lt;!--StartFragment--&gt;&lt;!-- obsidian --&gt;&lt;h1 data-heading='前言'&gt;前言&lt;/h1&gt;
&lt;p&gt;FEMU（Flash Emulator）是一个基于 QEMU 开发的、开源的高性能 SSD 模拟器，主要用于闪存存储系统的学术研究和原型设计。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/FEMU-ru-men-bi-ji.html</guid><pubDate>Tue, 17 Mar 2026 03:16:09 +0000</pubDate></item><item><title>【论文阅读；26】HAVEN：用于大规模近似最近邻搜索的高带宽闪存增强向量引擎</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91HAVEN%EF%BC%9A-yong-yu-da-gui-mo-jin-si-zui-jin-lin-sou-suo-de-gao-dai-kuan-shan-cun-zeng-qiang-xiang-liang-yin-qing.html</link><description>论文名称：HAVEN: High-Bandwidth Flash Augmented Vector ENgine for Large-Scale Approximate Nearest-Neighbor Search Acceleration
# 摘要
检索增强生成（RAG）依赖于大规模近似最近邻搜索（ANNS）来为大语言模型检索语义相关的上下文。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91HAVEN%EF%BC%9A-yong-yu-da-gui-mo-jin-si-zui-jin-lin-sou-suo-de-gao-dai-kuan-shan-cun-zeng-qiang-xiang-liang-yin-qing.html</guid><pubDate>Mon, 09 Mar 2026 03:55:45 +0000</pubDate></item><item><title>【论文阅读;ISCA'25】RAGX：检索增强生成即服务的存内加速</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BISCA%2725%E3%80%91RAGX%EF%BC%9A-jian-suo-zeng-qiang-sheng-cheng-ji-fu-wu-de-cun-nei-jia-su.html</link><description>论文全名：In-Storage Acceleration of  Retrieval Augmented Generation as a Service
# 摘要
检索增强生成（RAG）服务正在企业环境中迅速普及，因为它们将信息检索系统（如数据库）与大语言模型（LLM）结合在一起，以增强响应生成并减少幻觉 。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BISCA%2725%E3%80%91RAGX%EF%BC%9A-jian-suo-zeng-qiang-sheng-cheng-ji-fu-wu-de-cun-nei-jia-su.html</guid><pubDate>Mon, 02 Mar 2026 06:23:53 +0000</pubDate></item><item><title>【论文阅读；26】综述：大模型推理硬件面临的挑战和研究方向</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91-zong-shu-%EF%BC%9A-da-mo-xing-tui-li-ying-jian-mian-lin-de-tiao-zhan-he-yan-jiu-fang-xiang.html</link><description>我们重点提出了四项有前景的研究方向，以提升数据中心大语言模型（LLM）推理的性能：**高带宽闪存**（High Bandwidth Flash），可提供接近HBM带宽、但容量达其10倍的存储能力；**近存计算**（Processing-Near-Memory）与**3D内存-逻辑堆叠**（3D memory-logic stacking），以实现高内存带宽；以及**低延迟互连**（low-latency interconnect），用于加速通信。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%EF%BC%9B26%E3%80%91-zong-shu-%EF%BC%9A-da-mo-xing-tui-li-ying-jian-mian-lin-de-tiao-zhan-he-yan-jiu-fang-xiang.html</guid><pubDate>Sun, 01 Feb 2026 05:31:52 +0000</pubDate></item><item><title>【论文阅读;NeurIPS’19】DiskANN：单节点上快速、精准的十亿级数据点最近邻搜索</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BNeurIPS%E2%80%9919%E3%80%91DiskANN%EF%BC%9A-dan-jie-dian-shang-kuai-su-%E3%80%81-jing-zhun-de-shi-yi-ji-shu-ju-dian-zui-jin-lin-sou-suo.html</link><description>论文名称：DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node
# 摘要
目前最先进的**近似最近邻搜索（ANNS）** 算法所生成的索引必须存储于**主内存**中，才能实现高召回率的快速搜索——这使得此类算法成本高昂，同时限制了数据集的规模。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BNeurIPS%E2%80%9919%E3%80%91DiskANN%EF%BC%9A-dan-jie-dian-shang-kuai-su-%E3%80%81-jing-zhun-de-shi-yi-ji-shu-ju-dian-zui-jin-lin-sou-suo.html</guid><pubDate>Thu, 29 Jan 2026 02:57:51 +0000</pubDate></item><item><title>【论文阅读;SOSP'25】LSM-VEC：一种基于磁盘的动态向量搜索系统</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BSOSP%2725%E3%80%91LSM-VEC%EF%BC%9A-yi-zhong-ji-yu-ci-pan-de-dong-tai-xiang-liang-sou-suo-xi-tong.html</link><description>论文全名：LSM-VEC: A Large-Scale Disk-Based System for Dynamic Vector Search
# 摘要
向量搜索通过支持高维嵌入上的近似最近邻（ANN）查询，构成了现代 AI 应用的基础，涵盖了检索增强生成（RAG）、推荐系统和多模态搜索等任务。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BSOSP%2725%E3%80%91LSM-VEC%EF%BC%9A-yi-zhong-ji-yu-ci-pan-de-dong-tai-xiang-liang-sou-suo-xi-tong.html</guid><pubDate>Tue, 20 Jan 2026 13:47:31 +0000</pubDate></item><item><title>Reactor模式和Proactor模式简单介绍</title><link>https://waibibab-cs.github.io/post/Reactor-mo-shi-he-Proactor-mo-shi-jian-dan-jie-shao.html</link><description># 前言
本文章为阅读《Linux高性能服务器编程》第八章.高性能服务器程序框架中第四小节：两种高效的事件处理模式。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/Reactor-mo-shi-he-Proactor-mo-shi-jian-dan-jie-shao.html</guid><pubDate>Mon, 19 Jan 2026 15:02:01 +0000</pubDate></item><item><title>I/O复用基础</title><link>https://waibibab-cs.github.io/post/I-O-fu-yong-ji-chu.html</link><description># 前言
内容来源：本文章为阅读《Linux高性能服务器编程》第九章.I/O复用所记录的**部分**笔记。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/I-O-fu-yong-ji-chu.html</guid><pubDate>Mon, 19 Jan 2026 13:53:32 +0000</pubDate></item><item><title>【论文阅读;MICRO'22】Flash-Cosmos：利用 NAND 闪存固有计算能力的闪存内大批量位运算</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BMICRO%2722%E3%80%91Flash-Cosmos%EF%BC%9A-li-yong-%20NAND%20-shan-cun-gu-you-ji-suan-neng-li-de-shan-cun-nei-da-pi-liang-wei-yun-suan.html</link><description>论文全称：Flash-Cosmos: In-Flash Bulk Bitwise Operations Using  Inherent Computation Capability of NAND Flash Memory
# 摘要
批量位运算（Bulk bitwise operations），即针对大型向量的位运算，在包括数据库、图处理、基因组分析、密码学和超维计算（hyper-dimensional computing）在内的众多重要应用领域中广泛存在。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BMICRO%2722%E3%80%91Flash-Cosmos%EF%BC%9A-li-yong-%20NAND%20-shan-cun-gu-you-ji-suan-neng-li-de-shan-cun-nei-da-pi-liang-wei-yun-suan.html</guid><pubDate>Thu, 15 Jan 2026 10:24:30 +0000</pubDate></item><item><title>【论文阅读;ICCAD'24】RoCR：基于边缘计算存算一体架构的RAG鲁棒实现</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BICCAD%2724%E3%80%91RoCR%EF%BC%9A-ji-yu-bian-yuan-ji-suan-cun-suan-yi-ti-jia-gou-de-RAG-lu-bang-shi-xian.html</link><description>论文全名：Robust Implementation of Retrieval-Augmented Generation on Edge-based Computing-in-Memory Architectures
# 摘要
部署在边缘设备上的大型语言模型（LLMs）通过微调并更新其部分参数进行学习。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BICCAD%2724%E3%80%91RoCR%EF%BC%9A-ji-yu-bian-yuan-ji-suan-cun-suan-yi-ti-jia-gou-de-RAG-lu-bang-shi-xian.html</guid><pubDate>Thu, 08 Jan 2026 07:23:34 +0000</pubDate></item><item><title>Linux网络编程基础API</title><link>https://waibibab-cs.github.io/post/Linux-wang-luo-bian-cheng-ji-chu-API.html</link><description># 前言
内容来源：本文章为阅读《Linux高性能服务器编程》第五章.Linux网络编程基础API所记录的部分笔记。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/Linux-wang-luo-bian-cheng-ji-chu-API.html</guid><pubDate>Tue, 06 Jan 2026 03:12:14 +0000</pubDate></item><item><title>【论文阅读;ISCA'25】REIS：一种高性能、高能效的存内检索系统</title><link>https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BISCA%2725%E3%80%91REIS%EF%BC%9A-yi-zhong-gao-xing-neng-%E3%80%81-gao-neng-xiao-de-cun-nei-jian-suo-xi-tong.html</link><description>论文全称：REIS: A High-Performance and Energy-Efficient Retrieval System with In-Storage Processing
# 摘要
大型语言模型（LLMs）面临一个固有难题：其知识被局限在训练数据范围内，这一限制加上高昂的重训练成本，使其无法提供实时更新的响应。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/%E3%80%90-lun-wen-yue-du-%3BISCA%2725%E3%80%91REIS%EF%BC%9A-yi-zhong-gao-xing-neng-%E3%80%81-gao-neng-xiao-de-cun-nei-jian-suo-xi-tong.html</guid><pubDate>Thu, 01 Jan 2026 16:00:50 +0000</pubDate></item><item><title>NAND Flash SSD 经典结构</title><link>https://waibibab-cs.github.io/post/NAND%20Flash%20SSD%20-jing-dian-jie-gou.html</link><description># 前言
今天在读论文的时候，发现这篇论文的Introduction部分关于SSD架构总结的非常详细，于是就把原文相关部分翻译到这里，再补充一下对部分内容的解释以进行记录。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/NAND%20Flash%20SSD%20-jing-dian-jie-gou.html</guid><pubDate>Mon, 29 Dec 2025 09:03:37 +0000</pubDate></item><item><title>MinHash-LSH算法详解</title><link>https://waibibab-cs.github.io/post/MinHash-LSH-suan-fa-xiang-jie.html</link><description># 前言
MinHash LSH 是一种**高效的近似近邻搜索算法**，结合了 **MinHash 签名**和 **Locality-Sensitive Hashing（局部敏感哈希，LSH）** 两种技术，核心目标是在大规模高维数据集（如文本、图像特征、用户行为向量）中，快速找到**相似度高**的元素对，同时大幅降低计算和存储成本。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/MinHash-LSH-suan-fa-xiang-jie.html</guid><pubDate>Thu, 18 Dec 2025 07:48:37 +0000</pubDate></item><item><title>廉价冗余磁盘阵列（RAID）总结分析</title><link>https://waibibab-cs.github.io/post/lian-jia-rong-yu-ci-pan-zhen-lie-%EF%BC%88RAID%EF%BC%89-zong-jie-fen-xi.html</link><description># 前言
内容来源：本文章为阅读OSTEP38.RAID所记录的笔记，文章链接：https://pages.cs.wisc.edu/~remzi/OSTEP/Chinese/38.pdf
本章重点介绍了廉价冗余磁盘阵列（Redundant Array of Inexpensive Disks），简称 RAID，这是一种利用多个磁盘来构建更大、更快、更可靠存储系统的技术。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/lian-jia-rong-yu-ci-pan-zhen-lie-%EF%BC%88RAID%EF%BC%89-zong-jie-fen-xi.html</guid><pubDate>Tue, 16 Dec 2025 14:39:37 +0000</pubDate></item><item><title>TCP/IP和RDMA入门基本知识</title><link>https://waibibab-cs.github.io/post/TCP-IP-he-RDMA-ru-men-ji-ben-zhi-shi.html</link><description># TCP/IP介绍
**1.定义**：TCP/IP（Transmission Control Protocol/Internet Protocol）是一套用于互联网及局域网的**分层网络通信协议簇**，包含 TCP（传输层协议）和 IP（网络层协议），以及链路层、应用层等配套协议，是当前互联网的基础通信标准。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/TCP-IP-he-RDMA-ru-men-ji-ben-zhi-shi.html</guid><pubDate>Thu, 11 Dec 2025 12:36:55 +0000</pubDate></item><item><title>CMU15-213 Lab：CacheLab实验记录</title><link>https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ACacheLab-shi-yan-ji-lu.html</link><description># 前置知识
## Valgrind
Valgrind 内存跟踪文件是由 Linux 工具 Valgrind 生成的文本文件，记录程序执行过程中所有内存访问的详细轨迹，用于缓存模拟器等工具分析内存操作行为。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ACacheLab-shi-yan-ji-lu.html</guid><pubDate>Thu, 11 Dec 2025 07:02:24 +0000</pubDate></item><item><title>CMU15-213 Lab：BombLab实验记录</title><link>https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ABombLab-shi-yan-ji-lu.html</link><description># 前言
本实验所需的预备知识：
* 汇编基础
* gdb的基本使用

本实验需要我们拆除每个phase的炸弹，每个炸弹都有一个密码，我们需要通过输入正确的密码来拆除炸弹，如果输入错误，炸弹就会爆炸。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ABombLab-shi-yan-ji-lu.html</guid><pubDate>Thu, 11 Dec 2025 07:00:29 +0000</pubDate></item><item><title>CMU15-213 Lab：DataLab实验记录</title><link>https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ADataLab-shi-yan-ji-lu.html</link><description># 前言
将datalab-handout.tar移动到WSL环境中，并解压，该实验的目的便是在bits.c文件中按照特定的规则，解决一系列puzzles

其中，使用btest检测结果的正确性，使用dlc检测是否符合规则（比如是否使用了禁止使用的operator，是否使用了过多的operator，在解决整数puzzles的时候，是否使用了non-straightline code的代码），有关整数的题目，只需要考虑32位整数，有关浮点数的题目，只需要考虑单精度浮点数

我运行的时候出现了如下的问题：
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144517.png)

这是由于环境没有完善造成的，通过执行以下命令来完善编译环境：
```bash
sudo apt-get update 
sudo apt-get install gcc-multilib libc6-dev-i386
```
# puzzles求解
## bitXor
根据德摩根定律可知：

$`\begin{align*}
x \wedge y &amp;= (\neg x \mathbin{\&amp;} y) \mid (x \mathbin{\&amp;} \neg y) \\
&amp;= \neg \bigl( \neg \bigl( (\neg x \mathbin{\&amp;} y) \mid (x \mathbin{\&amp;} \neg y) \bigr) \bigr) \\
&amp;= \neg \bigl( \neg (\neg x \mathbin{\&amp;} y) \mathbin{\&amp;} \neg (x \mathbin{\&amp;} \neg y) \bigr)
\end{align*}`$
按照要求，编写代码：
```c
int bitXor(int x, int y)
{
  int left = ~(~x &amp; y);
  int right = ~(x &amp; ~y);
  int res = ~(left &amp; right);
  return res;
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144553.png)

## tmin
根据补码公式：![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211145247.png)
我们知道，32位补码能表示的最小数是`1000···(共31个0)000`，思路很简单，首先对0进行取反得到`all_one = 1111···(共32个1)111`然后让这个数左移31位即可
```c
int tmin(void)

{
  int all_one = ~0;
  int res = all_one &lt;&lt; 31;
  return res;
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144602.png)

## isTmax
我们知道，32位补码能表示的最大数是`01111···(共31个1)111`，然后我们发现：Tmax的补码的位表示与Tmax+1相同，也就是：
$$Tmax + 1 == \neg Tmax$$
在位运算中如何实现当a和b相同时返回一呢？如下所示
```c
return !(a ^ b);
```
接下来思考有没有边界情况？发现当x是`111···(共32个1)111`时，同样满足上述性质，因此我们需要把这个情况排除，综上，我们编写如下代码：
```c
int isTmax(int x)

{
  int x_o = ~x;
  int x_and_one = x + 1;
  int is_not_all_one = !!(~x);
  return !(x_o ^ x_and_one) &amp; is_not_all_one;
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144609.png)

## allOddBits
很容易想到的一个思路是让x与0xAAAAAAAA做与运算，如果结果等于0xAAAAAAAA就返回一，因此这个问题就转换为了如何构造0xAAAAAAAA，由于datalab最大能够使用的整数常量为0xff，因此我们用0xAA去构造0xAAAAAAAA，综上，我们编写如下代码：
```c
int allOddBits(int x)
{
  int two_a = 0xAA;
  int eight_a = (two_a &lt;&lt; 24) + (two_a &lt;&lt; 16) + (two_a &lt;&lt; 8) + two_a; // 0xAAAAAAAA
  return !(eight_a ^ (eight_a &amp; x));
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144616.png)

## negate
刚开始我以为让这个题变一个符号位就行，于是是这样写的：
```c
int negate(int x) {
	int tmin = 1 &lt;&lt; 31;
	return x ^ tmin;
}
```
但才想起来tmin和0这两个边界没办法处理，想了半天不知道这个边界如何处理？又突然想起来，其实求负数直接用补码定义就行了......取反加一
```c
int negate(int x) {
	return ~x + 1;
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144622.png)

## isAsciiDigit
这道题是让我们判断x是否在一个区间范围`[0x30, 0x39]`之内，因此我们可以让x与0x30作差，让0x39与x作差，然后当两个差的符号均为正，则结果返回1

然而，这道题是不允许使用减号的，所以可以改成加上对应的负数，如何求负数呢？我们只需要按照上道题的取反加一的方法即可！
```c
int isAsciiDigit(int x)
{
  int low = 0x30;
  int high = 0x39;
  int diff1 = x + (~low + 1);
  int diff2 = high + (~x + 1);
  int sign1 = diff1 &gt;&gt; 31 &amp; 1;
  int sign2 = diff2 &gt;&gt; 31 &amp; 1;
  return !(sign1 | sign2);
}
```
![image.png](https://raw.githubusercontent.com/waibibab-cs/blog_img/main/cdnimg/20251211144629.png)

## conditional
使用位运算模拟条件语句，我们可以使用**掩码mask**
例如，对于`if (condition) return a; else return b;`
如果条件为true，我们就令mask为全1的值，如果条件为false，令其为全0的值
这样的话，最终就返回：`return (mask &amp; a) | (~mask &amp; b)`
因为当条件为true时，全1的mask与a进行与运算还是a，而~mask为0，与b进行与运算结果为0，因此最终返回a；同理，条件为false时，最终返回false

但是，我们在这个题中如何构造mask呢？可以使用：`~(!!x)+1`，当x不等于0时，也就是条件为true时，`!!x`为1，取反加一就是-1，位表示刚好是全1，当x等于0时，也就是条件为false时，`!!x`为0，取反加一还是0，位表示刚好是全0。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/CMU15-213%20Lab%EF%BC%9ADataLab-shi-yan-ji-lu.html</guid><pubDate>Thu, 11 Dec 2025 06:53:58 +0000</pubDate></item><item><title>OSTEP37.磁盘驱动器</title><link>https://waibibab-cs.github.io/post/OSTEP37.-ci-pan-qu-dong-qi.html</link><description># 前言
本文介绍磁盘驱动器（hard disk drive，HDD）的工作原理、结构、性能分析以及操作系统如何通过磁盘调度来优化性能
# 磁盘接口与基本几何结构
**基本接口与存储单元**：现代磁盘驱动器的基本接口简单，将其视为由大量扇区（512 字节块）组成的地址空间，扇区从 0 到 n−1 编号。</description><guid isPermaLink="true">https://waibibab-cs.github.io/post/OSTEP37.-ci-pan-qu-dong-qi.html</guid><pubDate>Thu, 11 Dec 2025 04:12:57 +0000</pubDate></item></channel></rss>