🌓

python元编程原理

本文是backtrader框架的元编程理论基础。 读者需对python有一定基础,对类有基本理解。 计算机语言通识掌握通识,加深理解,先大概理解,不必苛求精确,用到时再说。 计算机编程语言的本质是什么? 直接给答案:是人和计算沟通的媒介手段。 你把计算机想象成外国人,操着你不懂的语言,它也不懂你说的语言。 双方为了沟通顺畅,需要做什么?翻译对吧。 这个负责翻...

阅读全文

【8 位 CPU】给 CPU 添加控制系统和指令系统

CPU计划完结散花:tada: :tada: :tada: 。 核心给每个逻辑元件添加控制单元以达到,不同输入组合对应不同的输出。由于我们已实现了寄存器(一种能够记住1byte的单元),那么遍可以控制其允许输入/输出。不同的原件,同一时刻的允许输入输出状态就定义了当时单元和单元之间的关系,如A寄存器输出,B是输入,其他不设置,那么此刻完成了A寄存器...

阅读全文

【8 位 CPU】攒个可以计算加减法的初代 CPU

利用已有的电路部件,搭建一个可以计算加法和减法的电路。 上面的MC、RAM、PC、Reg、ALU都有控制选中(CS片选)、可写(不可写则可读)的输入,选中时对应灯泡点亮示意。使用16位中的13位二进制的01来对应。通过不同的排列组合即可定义每个时钟周期电路的状态(哪些单元可以被操控读写)。 下面是对应电路的控制单元的标识,或运算一组和,就是控制电路了。 1...

阅读全文

【8 位 CPU】一步一步画个寄存器

接上篇,仍然是基本电路往更复杂电路组合的逻辑。只不过,这部分电路有个特征,术语叫时序电路,其最基本的特征是相对组合电路来讲的,组合电路特定输入就得到特定输出,时序电路则不然,它的输出和输入的对应关系是不确定的,其电路的输出会接到输入上,最终输出是由输入、输出和电路当前状态决定。话不多说直接上截图。 R-S触发器,输出Q确定后,Set、Clear、Prs不改...

阅读全文

【8 位 CPU】8 位加法器

使用工具:https://www.logiccircuit.org/工具中有基本的逻辑电路单元、输入输出、分线器、晶振模拟器、显示装置模拟单元等。最基本的思想是:通过基本电路的接线,确立输入-输出规则,类似函数的入参和返回值,便构成一个功能电路单元。单元套单元组成新单元,如此往复。“一生二,二生三,三生万物”。 如下:半加器是异或、与门电路接线构成。2个输入...

阅读全文

计算机RAM的底层原理

计算机的电路,在搞软件的看来应该是很简单的,复杂的留给电路设计的从业者们。 本片文件结合最近重新研究底层的脉络书写,主要核心目的在于解决,计算机是如何一步一步构建(组合)出来的,行为期间发现有篇和我想写内容一样的文章。 计算的本质是什么?这个问题百度可以得到“答案”,逻辑符号的转变规则即是计算。它出现的目的,是人类为了从有限信息中提取新的信息而发现和指定的一...

阅读全文

内核启动过程 -- 操作系统是个死循环

以linux0.11为源码,几句话说清楚。1、操作系统启动完成各种资源的初始化2、手动构建了一个0号进程3、0号进程切到用户态fork出1号子进程4、1号子进程执行init()函数5、1号进程套了2个while循环,1号子进程在第一层while循环中fork子进程,该进程接受用户输入并执行命令后退出,然后在第二层while循环中持续等待子进程GG态后brea...

阅读全文

计算机各层次执行速度

计算机系统的内部设计、各类应用架构无不是受此影响。 比如:为了平衡CPU速度不断提升,但是内存频率没有同步提升带来的协同问题,CPU从没有片内缓存到L1、L2、L3相继出现。又比如,网络多IO请求磁盘速度无法满足要求,催生了redis缓存。 计算机存储体系图:《深入理解计算机系统》时间和空间局部性原理 决定了上一层级做下一层级的缓存; 计算机各层次速度表 ...

阅读全文

JDK中JUC包由浅入深原理——atomic包

intel CPU原子操作需有一个基本逻辑,CPU不支持的,上层不可能自己YY出来。沿着操作系统内核往应用层,通常都是利用底层的能力,构筑上层的大厦。 在intel中,指令lock+指令,可构成一个原子指令(即要么都执行,要么不执行)。上层代码,可基于此构建自己的原子操作。 依据可查阅intel开发手册Volume3 - 8.1到3。 从上可知,通常套路原...

阅读全文

ELF学习一

Excutable and Linking Format,ELF,有UNIX系统实验室发布并确定为应用程序二进制接口ABI(二进制程序标识所有工具集所遵循的一组运行时约定,包括:编译器、汇编器、连接器和语言运行时支持)的落地文件形式,其重要性不言而喻。 ELF文件类型ELF文件是由汇编器和连接器创建,是程序的二进制表示,以提供直接在目标处理器上执行的代码(指...

阅读全文