自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术轻轻飘过

技术是一门绝妙的艺术

  • 博客(90)
  • 资源 (16)
  • 问答 (1)
  • 收藏
  • 关注

原创 Windows内核--任务、进程和线程(2.4)

Windows内核有"任务"概念吗? 从技术术语来说,Windows内核并没有"任务"。"任务"一般被认为是抽象的需要执行的事情。在不同操作系统上,"任务"所代表的官方名称有所差异。

2023-01-31 21:01:48 685

原创 Windows内核--GUI显示原理(6.1)

图形子系统内核部分win32k.sys 通过DDI接口操作显示驱动, 显示驱动通过ENG接口调用win32k.sys. Vista开始增加DWM进程,DWM(Desktop Window Manager)和以往的绘制最大的差异是屏幕绘制不再是各个App单独决定的,而是在后台视频存储区绘制之后再渲染。Aero效果、立体和翻转效果等都得益于DWM.

2023-01-02 13:01:44 1426 2

原创 Windows内核--CPU和内核(1.7)

ARM具备低功耗优势, 除了高通, 还有Broadcom/NXP等都支援ARM架构.苹果自研M系列开了头,ARM不仅有低功耗,同样有性能,Windows也想分一杯羹。

2022-12-31 15:31:21 1059

原创 Windows内核--内核空间和用户空间(3.6)

句柄, Handle, 表达处理、控制之意。内核不会直接暴露指针给用户空间,这样会增大内核风险。相反,内核抽象出Handle给用户态,不管是文件、进程、线程等对象,通过Handle可以隐藏内核细节,统一控制对象。不可避免,内核态对于Handle必须转换成指针才能处理。

2022-12-26 19:12:02 1032 1

原创 Windows内核--驱动程序和内核(1.6)

内核态驱动程序一般是和内核共同属于内核空间,驱动程序有能力访问内核大部分数据结构。内核根据需要,调用驱动程序执行相应的IO操作,如果驱动程序有异常,可以认为内核不稳定。一般情况下发生故障处理,典型的就是崩溃(dump)并重启, Windows的典型行为是蓝屏。

2022-12-25 15:40:50 1460

原创 Windows内核--内联函数之KeGetPreviousMode(3.3)

KeGetPreviousMode宏对应2句汇编,很高效。它是如何实现如此高效简洁的?

2022-12-14 21:45:10 367 1

原创 Windows内核--子系统(3.5)

子系统是用户层概念。在Windows内核之上,如果想要执行类UNIX应用程序,就是POSIX子系统,如果要类似OS/2环境,就是OS/2子系统。 如何能模拟出不同子系统呢? 一般需要子系统用户态应用程序和相关DLL支援。

2022-12-04 13:50:37 2136

原创 Windows内核--HAL在抽象什么?(3.4)

HAL位于内核最底层。“与硬件直接打交道“的这一层被称为硬件抽象层。HAL究竟在抽象什么?它的存在有多大的意义?

2022-11-25 21:54:55 821

原创 Windows内核--系统调用参数验证(5.1)

内核模式之所以有别于用户模式,在于内核模式应该是安全、可信的。用户系统调用可以传入各式各样的参数,可能是代码无意写错或因不预期的内存覆盖"暗地修改"参数,也可能是Hack有意传入,内核都应当妥善处理,避免内核读写到不预期的地址,造成内核被破解或不稳定。

2022-11-23 13:38:51 556

原创 Windows内核--CreateProcess到内核NtCreateProcess(2.3)

应用程序调用CreateProcess到内核执行NtCreateProcess究竟做了什么?

2022-11-19 19:38:39 1405

原创 Windows内核--裸调系统调用(4.1)

ntdll.dll NtCreateProcess将服务号0x82传入,通过syscall调入内核系统调用例程。syscall在做什么?在64位系统上,Windows使用syscall指令实现系统服务分发。syscall实现和int 2E类似的作用,只不过它更快速,看它名字"快速调用"。本文将新增一个系统调用来加深对syscal的理解。

2022-11-12 23:29:47 912

原创 Windows内核--内核汇编代码赏析: Rtl memory系列函数(3.3.1)

搜索WRK源代码,找不到memxxx相关函数的源代码。IDA工具查找ntoswrk.lib里memxxx函数的实现在ntoswrk.lib中。事实上,它们的实现并不难理解,根据不同硬件架构做优化是内核实现很重要的一部分。

2022-11-12 12:21:43 479

原创 Windows内核--调试内核源代码(1.5)

WRK编译并不比普通工程更复杂,反而更简单。编译大总管nmake,根据WRK makefile做编译,调用cl.exe, lib.exe和link.exe完成最终内核生成。

2022-11-10 12:44:36 1233

原创 Windows内核--Rtl字符串API “不同IRQL“(3.2)

RtlCopyUnicodeString和RtlEqualUnicodeString看起来同属于rtl支持字符串例程,实际上它们可运行的IRQL还是不同的。这也许很不可思议,通过源代码解开其中的秘密。

2022-11-08 23:28:01 280

原创 Windows内核--读懂源代码的特殊“标志“(1.4)

Windows内核代码严谨而富有逻辑,毕竟Kernel不是简单的Hello World,为了让代码更易于阅读和维护,加入了不少具有编译器特性和协助程序员的代码,同时对于错误和异常,内核必须合适处理,保证稳定和安全。

2022-11-07 21:57:21 687

原创 Windows内核--DbgPrint/KdPrint Kernel log(3.1)

Kernel和Driver可以通过DbgPrint或DbgPrintEx打log. Windows内核并不会把Kernel log用UART输出,而是通过系统服务(int 2dh)的方式输出. DbgPrint的实现确实不走寻常路!

2022-11-05 22:54:25 1061

原创 Windows内核--WRK和真实的Windows内核源代码差多少?(1.3)

前面有提到WRK是微软官方公布的XP/Server 2003供学习和研究的内核源代码。WRK1.2究竟占据源代码的多少比例?

2022-11-05 13:54:27 1178

原创 Windows内核--为什么C语言适合编写内核?(1.2)

前面有提到,Windows内核大部分采用C语言编写,包括Linux/Mac(Free-BSD)都采用C语言作为主体语言。用C语言写操作系统并不是巧合。

2022-11-05 13:38:16 875

原创 Windows内核--CreateProcess的内核实现 (2.2)

不管是桌面双击应用程序(ShellExecute*)还是代码中调用创建进程API, 最终一般都会调用NT Native API CreateProcess, 具体请参阅WRK1.2 create.c, 这里不再赘述,下面会继续讨论API参数和Kernel内部比较特别的地方。

2022-11-04 13:49:45 506

原创 Windows内核--代码只有main函数, 进程怎么创建的? (2.1)

代码只有main函数, 进程怎么创建的?

2022-11-02 12:27:09 226

原创 Windows内核--源代码在哪里?(1.1)

利用WinDbg调试Kernel, 可以得到内核数据结构,参照WRK源代码和深入解析Windows操作系统可以猜测到内核源码的可能长相,结合IDA等反编译工具和Windbg可以获取内核全貌。微软官方并不完全公开源代码, 想清楚Windows技术内幕,就需要逆向工具。大部分人能看到这篇帖子, 想必已经用过Windows系统多年了...

2022-11-02 11:34:32 2032

原创 解开初始化语句的“迷雾重重“(你想知道的C语言 4.1)

Q: int a = b = 3; 为什么会编译错误?A: 要看情况。C语言的变量必须先声明后定义。上面的表达式,如果b声明过,可以编译过,如果没有,才会编译错误。Q:C语言为什么支持上面看起来怪怪的表达式?A:看看C标准。 请自行脑补。Q: int i = 3.2f; i为什么等于3 ?A:C语言标准规定float到int, 只取整数部分,丢弃小数部分。至于i是如何被赋值为3,一般编译器会先计算出3,直接赋值给i. 也许有人会想到编译器是如何计...

2020-07-28 22:24:50 363

原创 声明和初始化(你想知道的C语言 3.9)

Q: 为什么变量需要先声明才能使用?A: 编译型语言的本质要求。变量的类型必须确定才能确定大小并生成机器代码。 试想 i = 1; 这种语句编译器要怎么看待i? 解释型语言一般不需要声明就可以使用,因为它们先默认当做字符串,在需要用的时候再转换成需要的类型。Q: 自动变量未初始化时值为什么是不确定的?A:堆栈数据的不确定性是其本质原因。没有任何操作系统会在使用堆栈时做初始化,一则没必要,二则损失性能。Q: 怎么证明堆栈数据是不确定的?A:...

2020-07-27 21:07:31 426

原创 精确度(你想知道的C语言 3.8)

Q: 只要涉及到浮点数,每本书基本都会说它不是精确的,我们该如何理解精确二字?A: 精确永远都是相对而言。当我们认为1、2、3...自然数是精确的,自然C语言中int/char都是精确的。如果我们认为1.33是精确的,那么它就是精确的。那为什么浮点数会被认为不是精确的呢? 以4字节浮点数为例,符号位/指数位和有效位的位数都是固定的,当某个浮点数的有效位超出预设,那么就不能精确表达了。 对于int来说,其实也不能说是精确的,当我们认为间隔1其实不是精确,那int就不是精确的...

2020-07-24 19:18:51 1490 1

原创 溢出 (你想知道的C语言 3.7)

Q: 溢出的本质是什么?A: 江河漫漫,才华会溢,箱子会满,人会吃饱。无止境增加一定会满,事物的有限性,物质和欲望增长一定会撑不住。Q: N字节无符号整形最大值再加1会变成什么?A: 思考1字节的情形:unsigned char c = UCHAR_MAX;printf("%d\n", (unsigned char)(c + 1));0 UCHAR_MAX是0xFF, 加1等于0x100, 1被丢弃!Q: N字节有符号整形最大值再加1会变成什么?A...

2020-07-21 22:34:26 336

原创 C和汇编(你想知道的C语言 3.6)

C语言其实是个绝世高手,它一直隐藏"汇编“的身份,别人以为汇编是汇编,C语言只是默默一笑: 汇编只是我的代理人。Q: 选择语句if是如何对应汇编的?A:int i;int j;if (i == 1) j = 0;else j = 1;0000000100000f92 cmpl $0x1, -0x14(%rbp) // i == 1 ?0000000100000f96 jne 0x100000fa80000000100000f9c movl $0x0, -0x1..

2020-07-20 22:34:22 456

原创 有符号数和无符号数(你想知道的C语言 3.5)

Q:整数区分出有符号数和无符号数的意义是什么?A:整数有正数也有负数,有符号数为了在基本数据类型大小之内既表达正负,又表达数值,才不至于在表达正负依赖其他基本类型或复杂类型协助,失去C语言简洁的特性。 无符号数相当于只有正数,在常规意义数值分析上最大挖掘和表达类型内存空间的范围。 Q:浮点数为何没有有符号数和无符号数的称呼?A: 浮点数一般采用IEEE754去表达,已有符号位,不需有符号和无符号特别称呼。Q: CPU如何识别有符号和无符号数?A: 其实...

2020-07-19 16:25:38 333

原创 整数的内部形态(你想知道的C语言 3.4)

Q: 探究整数的内部形态有何意义?A: 整数的二进制形态对于理解计算机处理的比特信息有重要意义,对于分析和扩展新类型以及解释牛鬼蛇神变态的数据操作有不可替代的支撑作用。Q: int i = 100; i内部保存的二进制形式是什么?A:/* Xi Chen(511272827@qq.com) cxsjabcabc*/#include <stdio.h>#include <stdlib.h>void dump_int_bits(int n)..

2020-07-18 21:51:30 206

原创 常量和变量(你想知道的C语言 3.3)

Q: 常量和变量的本质区别是什么?A: 常量是不可改变的"变量", 变量是可改变的"常量". 我中有你你中有我是世界的本质,常量和变量只是为了方便表达特定含义的代名词,它们都是一种实体存在。 我们可能会关注常量和变量在编译器或者运行期表达方式的不同,常量的不可改变特性有优化的可能。Q: const int i = 1和int i = 1有何差异?A: const是写给编译器看的, 为防止修改i的代码出现,而汇编代码不受const影响。const int i = 1;int...

2020-07-18 21:01:14 284

原创 C语言内置类型(你想知道的C语言 3.2)

Q: char类型、int类型和long类型的长度由什么决定?A: 在不同的系统或编译系统上, int有时是2字节, 有时是4字节. 编译器决定着int究竟是2字节还是4字节. C语言标准没有规定int类型的准确长度, 因为它是标准, 不能太个性化。C语言只是粗略地规定char <= short <= int <= long. 从编译器的角度, 它解析到int类型, 它是当做2字节还是4字节完全随性, 如果真想个性,也可以是5字节。Q: 如何证明...

2020-07-17 22:19:41 453

原创 程序是如何运行的(你想知道的C语言 3.1)

Q: 32位和64位程序比较常见, 为何没有33位/65位程序不常见?A: 计算机以二进制起家, 寄存器/对齐/内存多以2倍数存在, ASCII码1字节作为标配, 计算机基本处理单元为8位倍数. 16位寻址无法满足对内存越来越大的需求, 32位应运而生. 4GB最大寻址已经无法满足日益增长的内存需求, 64位操作系统产生了.Q: 32位和64位应用程序的差异在哪里?A: 作者: 陈曦环境: MacOS 10.14.5 Apple ...

2020-07-15 22:28:25 220

原创 TTY read系统调用(你想知道的C语言 2.6)

Q: 程序调用read系统调用等待输入, 键盘输入1个字符后执行了哪些流程?A: 从大的框架来看: 按键中断 --> 按键驱动程序解析key --> 投递给当前TTY驱动 --> (默认)回显字符 --> TTY驱动保存输入字符 --> (如果是换行符)唤醒read系统调用返回到用户程序继续运行Q: 按键中断程序传递按键到TTY的接口是?A:tty_insert_flip_char和tty_schedule_flip函数. 前者把...

2020-07-14 21:42:29 799

原创 scanf 缓冲区原理(你想知道的C语言 2.5)

在正式解说scanf缓冲区之前,我们先吃几个开胃小菜.Q: 为什么调用scanf函数线程会停住等待输入?A: scanf会调用read系统调用获取用户输入的信息, 在没有准备好已有的输入或重定向, read一定会等待.作者: 陈曦环境: MacOS 10.14.5 Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.6.0 ..

2020-07-13 21:34:05 898

原创 scanf 格式和输入不匹配(你想知道的C语言 2.4)

printf章节, 我们有提到格式符和参数不匹配, scanf同样存在类似的问题, 分析此类问题的最佳途径依然是libc源代码和汇编. printf 格式串和参数不匹配的后果(你想知道的C语言 1.10)Q: scanf("%d", &n); 输入1.5, n是多少?A: 1.5被当做浮点数? 当然不是, scanf对于所有输入都当做字符, 在如上场景, 接收到小数点时, 就终止了! 所以n是1. https://opensource.apple.com/so...

2020-07-12 19:01:38 2643 4

原创 %d %i的区别(你想知道的C语言 2.3)

Q: 格式%d和%i的差别是什么?A: printf: 无差异; scanf: %i除了有%d的十进制输入功能外,还支持八进制和十六进制输入.#include <stdio.h>#include <unistd.h>#include <fcntl.h>int main(int argc, char *argv[]){ int n1, n2; scanf("%d %i", &n1, &n2); printf("%d %d\n",

2020-07-12 18:35:01 2287

原创 scanf 参数为什么需要取地址(你想知道的C语言 2.2)

Q: 同样是整数参数, 为什么printf只需要传入参数本身,而scanf需要取地址?A: printf只需要获得参数数值,scanf需要修改变量的能力! 从技术的角度, printf一样可以强制要求取地址, 内部多一道解引用取出数值, 所以没必要! 而scanf, 传入的参数是值传递, 没办法修改到原变量,所以必须要取地址. Mac Libc: 以int为例, 最后是从参数中取int *, 然后存入输入的数据res. C...

2020-07-11 10:52:24 3171 3

原创 scanf 返回值(你想知道的C语言 2.1)

Q: scanf的返回值和printf返回值一样吗?A: scanf的返回值和printf返回值不一样, scanf对于输入多少字符并不敏感, 大多数情况下毫无意义. 但它对输入的变量个数很感兴趣. 参考:printf 返回值 (你想知道的C语言 1.1)These functions(scanf/fscanf...) return the number of input items assigned. 只输入一个变量:/* Xi Chen(511272827@qq....

2020-07-11 10:05:04 4008

原创 printf 格式串和参数不匹配的后果(你想知道的C语言 1.10)

Q: 如下代码的输出结果是多少?#include <stdio.h>#include <unistd.h>#include <fcntl.h>int main(int argc, char *argv[]){ printf("%d\n", 1.5); return 0;}A: %d本来对应的是整形,实际参数传入浮点数1.5. 1.5会强制转换成整形1吗? 对于此类问题, 最佳的分析手法是从原理和汇编出发, 不论什么格式都可以分析出...

2020-07-10 21:17:14 2713

原创 printf \a 响铃的流程(你想知道的C语言 1.9)

Q: printf("\a")响铃的动作是在哪里执行的?A: 首先考虑是libc对转义字符'\a'做了特殊处理或者write系统调用中kernel对'\a'做了特殊处理. 这两种方式都有弊端,它们无法灵活处理用户的配置. 比如有的用户想要关闭响铃或者响铃换成闪屏提醒,这些都不能做到。 现代操作系统一般会把'\a'最终要执行的动作交给终端应用程序,以实现灵活配置. 以iTerm2为例: 终端接收到'\a'字符, 会根据配置决定是否做响应动作. act...

2020-07-09 21:39:07 3861

原创 Terminal TTY Console Shell Stdout傻傻分不清(你想知道的C语言 1.8)

Q: 计算机的书籍中,在描述终端/shell的时候,到处充斥着tty/console/shell/stdout之类的字眼,我们该如何理解它们?A: 因为历史原因, 有一些名词慢慢失去了最开始的含义,而跟着时代变迁开始有新的含义。作者: 陈曦环境: MacOS 10.14.5 Apple LLVM version 10.0.1 (clang-1001.0.46.4) Target: x86_64-apple-darwin18.6.0..

2020-07-08 21:50:30 731

JESD209-4B-LPDDR4 中文解读 v2.3

**重要提醒: 解读已更新到v2.3, 包含老版本所有注解** ** 文档不仅是LP4 Spec文档,而是Spec的注释解读。 ** 解读是注释,即文中黄色或绿色下划线的注解,试读看不到。 ** 退款: 承诺如对文档注释不满意,可线下联系作者申请退款。

2022-10-23

DRAM技术精解(第三版 中文) DDRX LPDDRX

** 行业标准: 作者有数年Spec经验, 熟悉JEDEC标准。 ** 咨询: 免费每天3个问题的解答。 ** 退款: 如对于解读不满意,可线下联系作者申请退款。 对内容质量有疑问,可提前私信咨询。

2022-10-23

DRAM技术精解(第二版 中文) DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5.pdf

本文档为DRAM技术精解 DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5 中文版第二版. 本文档详细介绍了Dram的历史发展中出现的不同技术,以及技术对应的解决方案 这是最详细的介绍, 把基本DDR 到DDR5,LPDDR 到LPDDR5的所有技术都有涉及. ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款.

2022-04-24

JESD209-5_4_3 LPDDR5 LPDDR4 LPDDR3精解

此文档对于JESD标准LPDDR5解读,轻松理解LPDDR5标准。 也包含LPDDR4/LPDDR3标准解读。 问题举例: ** LPDDR5X和LPDDR5有什么区别? ** LP5 DVFS如何实现? ** LP5相比LP4X性能提升明显吗? ** 明明DRAM只是为了存储0或1,Spec为什么设计这么复杂? ** WCK机制有何优势? ** Bank Group为什么能提升性能? ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款. 如对内容质量有疑问,可提前私信咨询。

2022-03-12

JESD209-4_3 LPDDR4 LPDDR3精解.pdf

此文档对于JESD标准LPDDR4解读,轻松理解LPDDR4标准。 问题举例: ** LP4 vs LP4X ** 为什么2018旧款 Macbook Pro只用LP3, 而不用LP4? ** Apple M1如何做到性能很强呢? ** LPDDR4有ECC吗? ** LVSTL模型的意义? ** 为什么LPDDR4钟情于16bit per channel? ** Pad Order究竟是何物? ** 为什么有EMCP这种封装? ** 为什么有ZQ pin? ** LPDDR可以取代DDR? ** 为什么LP4和DDR4 prefetch差异很大? ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款. 如对内容质量有疑问,可提前私信咨询。

2021-12-12

JESD209-3 LPDDR3精解.pdf

此文档对于JESD标准LPDDR3解读,轻松理解LPDDR3标准。 问题举例: ** DDR3L/DDR3U和LPDDR3的关系是什么? ** 为什么2018旧款 Macbook Pro只用LP3, 而不用LP4? ** Deep Power Down时dram数据还会存下来吗? ** LPDDR3没有RESET pin如何发reset? ** LPDDR3有DIMM吗? ** LPDDR3支持ECC吗? ** DDR3有x4和x8, LPDDR3为什么没有呢? ** LPDDR3 IO模型 ** 手机或PC上的LPDDR3内存可以用DDR3或DDR4内存替换吗? ** LP3不像PC3有DLL, 如何同步CLK和DQS? ** LPDDR3 vs DDR4性能 ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款. 如对内容质量有疑问,可提前私信咨询。

2021-11-26

JESD79-5_4_3 DDR5 DDR4 DDR3精解.pdf

此文档对于JESD标准DDR5/DDR4/DDR3做中文解读,轻松理解DDR5/4/3标准。 问题举例: ** DDR5设计目标 ** 为什么Write一般是Center Aligned, Read是Edge Aligned? ** DDR5 Sub Channel设计的优势 ** DDR4 DIMM vs DDR5 DIMM ** 为什么服务器很关心ECC? ** DBI是如何省电的? ** 有Read Leveling吗? ** Prefetch从8到16的意义 ** Dram Size和Page Size如何计算? ...... ** 行业标准: 作者有数年Spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年Dram问题Debug,Spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-11-21

JESD79-4B DDR4 JESD79-3F DDR3 精解.pdf

此文档对于JESD标准DDR4和DDR3做中文解读,轻松理解DDR4/DDR3标准。 问题举例: ** 你真的理解SDRAM的S吗? ** 为什么Write一般是Center Aligned, Read是Edge Aligned? ** DDR4为什么没有Vref DQ? ** Mode Register可读了? ** 最大省电模式(Maximum Power Down Mode) ** 为什么服务器很关心ECC? ** DBI是如何省电的? ** 有人会问,有Read Leveling吗? ** Prefetch的作用 ** Dram Size和Page Size如何计算? ** 为什么有MRS,没有MRR? ** DDR4 POD12的起源 ...... ** 行业标准: 作者有数年Spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年Dram问题Debug,Spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-11-16

JESD79-3 DDR3 Technology.pdf

此文档对于JESD标准DDR3做英文解读,轻松理解DDR3标准。 此文档为"JESD79-3 DDR3解读"纯正英文版。 问题举例: ** 你真的理解SDRAM的S吗? ** 为什么Write一般是Center Aligned, Read是Edge Aligned? ** BC4有啥用? ** 为什么会有Dynamic ODT? ** BIOS是如何识别DIMM是DDR3或者DDR4的? ** XMP是什么? ** 为什么有Write Leveling? ** 有人会问,有Read Leveling吗? ** Prefetch的作用 ** Dram Size和Page Size如何计算? ** 为什么有MRS,没有MRR? ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-11-13

JESD79-3 DDR3精解.pdf

此文档对于JESD标准DDR3做中文解读,轻松理解DDR3标准。 问题举例: ** 你真的理解SDRAM的S吗? ** 为什么Write一般是Center Aligned, Read是Edge Aligned? ** BC4有啥用? ** 为什么会有Dynamic ODT? ** BIOS是如何识别DIMM是DDR3或者DDR4的? ** XMP是什么? ** 为什么有Write Leveling? ** 有人会问,有Read Leveling吗? ** Prefetch的作用 ** Dram Size和Page Size如何计算? ** 为什么有MRS,没有MRR? ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-10-25

JESD79-4 DDR4解读.pdf

此文档对于JESD标准DDR4做中文解读,轻松理解DDR4标准。 ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-10-13

DRAM技术精解(中文) DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5.pdf

本文档为DRAM Technology DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5技术精解 中文版. 本文档详细介绍了dram的历史发展中出现的不同技术,以及技术对应的解决方案 这是最详细的介绍, 把基本DDR 到DDR5,LPDDR 到LPDDR5的所有技术都有涉及. 本文花费周期约一年,记录DDR系列和LPDDR系列重要技术的来源和内部原理, 掌握它们会对于理解dram技术有非常大的帮助. 比如: 1 prefetch和burst length的关系 2 ODT技术的阻抗匹配内幕是什么? 3 LPDDR4 LVSTL IO模型的优点 ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺!

2021-10-02

Android十年终极开发经验_助您不走弯路_快速晋级Android架构师

作者从事Android开发十年有余,走过的弯路不计其数,深感经验总结有助于在Android上快速前行,早日完全掌握Android,达到Android巅峰! 内容主要包括: *Android 开发积累的重要经验 *Android 开发知识体系 *Android 开发方向 Flutter/Kotlin经验总结 *可维护可扩展 Android 开发攻略 *性能稳定 Android 开发攻略 ** 行业标准: 作者有数年Android开发经验. ** 专业: 数年Android问题debug经验,Android解读专业到位 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答 ** 退款: 作者承诺如果对于文档不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺!

2021-08-08

JESD209-4C LPDDR4解读.pdf

此文档对于JESD标准LPDDR4做中文解读,轻松理解LPDDR4标准。 ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-08-01

JESD79-3F_DDR3 中文注释解读 v3.pdf

**重要提醒: 解读已更新到v3, 最后更新时间2021-7-18 194945** 此文档对于JESD标准DDR3做中文解读,轻松理解DDR3标准。 为何有此文档? > 笔者曾经在dram领域摸爬滚打数年,深深感受到spec标准文档的理解直接影响到dram知识技术的认知和层次,理解spec文档将极大提高dram水平。数年经验化成一篇解读,不要让时间浪费在不断地寻找spec标准含义的过程中,而是站在经验者之上更上一层楼! 祝每个看过此文档的人都可以为"被某国打压的dram技术"增加技术储备! 解读示例: 1 CK_t和CK_c代表什么? > CK_t: CK True, 代表差分信号的正极性clock, 也就是"真"clock/主clock; CK_c: CK Complement, 代表差分clock的负极clock. 2 CKE和CK的区别: > CKE是指dram clock时钟 enable与否,注意它和上面的CK有本质区别,CKE可以 理解为是颗粒侧的时钟,但CK是controller和dram交互的时钟。 CK如果没有了,CKE没有意义。但CK如果有,CKE可有可无。 CKE拉低,颗粒进入power down模式,可以节省功耗。 3 ZQ为什么一般是240欧姆呢? > 因为一般dram都是通过并联电阻实现设置为指定的电阻值,一般工业级的电阻值 是34, 40, 60, 80, 120欧姆,取最小公倍数,即240欧姆! ......还有更多... ** 本文档不仅仅是DDR3 spec标准文档,而是spec的注释解读 ** ** 翻译成中文? 当然不是翻译, 翻译放到网站上随便都可以翻译出来,此文是带着理解的解读! 深挖spec内部的原理,让您事半功倍!不要被spec卡住您的前途! ** 因为解读是注释,即文中黄色或绿色下划线的注解,试读看不到,正在想方法如何显示给大家看。 ** 行业标准: 作者有数年spec经验. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! ** 更新: 不定期进行文档更新,保证每读一遍都有不一样的感受。 ** 再次提醒: 试读看到的是标准DDR3 spec, 批注注释才是本文档的价值所在!! 千万不要以为仅仅是DDR3 spec!!

2021-07-18

JESD79-E_DDR 中文注释解读 v2.2.pdf

**重要提醒: 解读已更新到v2.2, 最后更新时间2021-7-17 165220** 此文档对于JESD标准第一代DDR做中文解读,轻松理解DDR标准。 为何有此文档? > 笔者曾经在dram领域摸爬滚打数年,深深感受到spec标准文档的理解直接影响到dram知识技术的认知和层次,理解spec文档将极大提高dram水平。数年经验化成一篇解读,不要让时间浪费在不断地寻找spec标准含义的过程中,而是站在经验者之上更上一层楼! 祝每个看过此文档的人都可以为"被某国打压的dram技术"增加技术储备! 解读示例: 1 CK_t和CK_c代表什么? > CK_t: CK True, 代表差分信号的正极性clock, 也就是"真"clock/主clock; CK_c: CK Complement, 代表差分clock的负极clock. 2 CKE和CK的区别: > CKE是指dram clock时钟 enable与否,注意它和上面的CK有本质区别,CKE可以 理解为是颗粒侧的时钟,但CK是controller和dram交互的时钟。 CK如果没有了,CKE没有意义。但CK如果有,CKE可有可无。 CKE拉低,颗粒进入power down模式,可以节省功耗。 3 ZQ为什么一般是240欧姆呢? > 因为一般dram都是通过并联电阻实现设置为指定的电阻值,一般工业级的电阻值 是34, 40, 60, 80, 120欧姆,取最小公倍数,即240欧姆! ......还有更多... ** 本文档不仅仅是DDR spec标准文档,而是spec的注释解读 ** ** 翻译成中文? 当然不是翻译, 翻译放到网站上随便都可以翻译出来,此文是带着理解的解读! 深挖spec内部的原理,让您事半功倍!不要被spec卡住您的前途! ** 因为解读是注释,即文中黄色或绿色下划线的注解,试读看不到,正在想方法如何显示给大家看。 ** 行业标准: 作者有数年spec经验. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! ** 更新: 不定期进行文档更新,保证每读一遍都有不一样的感受。 ** 再次提醒: 试读看到的是标准DDR spec, 批注注释才是本文档的价值所在!! 千万不要以为仅仅是DDR spec!!

2021-07-17

JESD209-4B_LPDDR4 中文注释解读.pdf

**重要提醒: 解读已更新到v2, 最后更新时间2021-7-11 161631** ** 本文档不仅仅是LP4 spec标准文档,而是spec的注释解读 ** ** 翻译成中文? 当然不是翻译, 翻译放到网站上随便都可以翻译出来,此文是带着理解的解读! 深挖spec内部的原理,让您事半功倍!不要被spec卡住您的前途! ** 因为解读是注释,即文中黄色或绿色下划线的注解,试读看不到,正在想方法如何显示给大家看。 ** 行业标准: 作者有数年spec经验. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款. ** 更新: 不定期进行文档更新,保证每读一遍都有不一样的感受。 ** 再次提醒: 试读看到的是标准LP4 spec, 批注注释才是本文档的价值所在!! 千万不要以为仅仅是LP4 spec!!

2021-06-18

DRAM Technology DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5技术精解.pdf

本文档详细介绍了dram的历史发展中出现的不同技术,以及技术对应的解决方案 这是最详细的介绍, 把基本DDR 到DDR5,LPDDR 到LPDDR5的所有技术都有涉及. 本文花费周期约一年,记录DDR系列和LPDDR系列重要技术的来源和内部原理, 掌握它们会对于理解dram技术有非常大的帮助. 比如: 1 prefetch和burst length的关系 2 ODT技术的阻抗匹配内幕是什么? 3 LPDDR4 LVSTL IO模型的优点 ...... ** 行业标准: 作者有数年spec经验, 熟悉JEDEC标准建立的过程. ** 专业: 数年dram问题debug,spec解读专业到位。 ** 咨询: 承诺文档解读有疑问,可以免费每天3个问题的解答。 ** 退款: 作者承诺如果对于文档解读不满意,可线下联系作者申请退款,作者就有这样的自信敢承诺! 如对内容质量有疑问,可提前私信咨询。

2021-01-31

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

TA关注的人

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