关于内存单元的一些想法
最近换工作,CPU的物理设计physical design,PR阶段有点懵,icache,dcache,tlb,mmu,decode等等,巧的是最近看了下操作系统的cpu介绍,颇有些互相印证的关系,对于上述的icache,dcache,最初以为i代表输入,其实i代表instruction,d代表data 关键术语 PC:程序计数器,存放下个执行的指令地址 AC:累加器 IR:指令寄存器 MAR:内存地址寄存器 MBR:内存缓冲寄存器 I/O AR:I/O地址寄存器 I/O BR:I/O缓冲寄存器 CPU运算 以简单地2+3=5为例,譬如2的内存地址为200,3的内存地址为204,最后结果写入2的地址上,这个过程涉及三步: 把2放到AC上,AC=2 把3加到AC上,AC=AC+3=5 把AC的值输出,AC>2 假设有一个32位的cpu,指令肯定是32位,指令由两个域组成,第一个字节存放操作码,第二个存放操作数地址,操作码如下 0001==1:代表将数据从内存中加载到AC上 0101==5:代表从内存加到AC 0010==2: 代表AC存到内存中 对于指令运算分为两部分,取指和执行,指令最初放在内存中100位置,以字节为显示单位,32位格式:字节 - 字节 - 字节 - 字节 内存地址 数据数据 0 0 0 100 1 0 0 200 0 0 0 104 5 0 0 204 0 0 0