Posts

Showing posts from December, 2021

Computer Architecture I

      本博客所有知识均总结归纳于《Computer Orgnazition & Design The hardware/software Interface》,David A. Patterson and John L. Hennessy。 1.Performance    CPI=Average clock circles per Instruction (lower is better)    IPC=Average Instruction per clock circle (higher is better)    但是日常使用中,无法单纯的提高IPC而不影响时钟周期。 2.Register basic knowledge   2.1 load     从memory提取数据到register的操作被叫做load。通常load命令的组成为:load指令的名字+被load的register的名字+constant+去访问memory的register的名字。在MIPS中用lw表示load,load word的缩写。       2.1.1 Example    例如c语言: g=h+A[8]    编译器会先编译指令去寻找A[8]的值,假设A的起始地址存储在寄存器$s3上并且地址间隔为1,计算机用以下指令去寻找A[8]:             lw $t0, 8($s3)  //$t0为临时寄存器     然后在用$t0去与存储h的寄存器相加。   2.2 MIPS Memory Address    MIPS中用alignment restriction来限制每个字的长度为4byte,所以Memory Address必为4的倍数。     寻址方式有两种: leftmost(Big end) or rightend(little end)   2.3 store     store指令与load正好相反,它从register取值存储到memory。组成与load类似:store指令的名字+被store的寄存器(待被取出数值的寄存器)+memory地址偏移量(如A[8]就需要便宜4*8个偏移量)+基址寄存器(存储memory初始地址的寄存器)      store指令在MIPS中简写为sw, store word。        2.3.1 E