体系结构基本概念

来源:互联网 发布:淘宝钻展尺寸 编辑:程序博客网 时间:2024/06/06 05:25

1   zero overhead loopbranch开销不需要在jump时进行流水重建?

2   粗粒度线程threadSMT的概念

      进程的概念:在多任务的操作系统中有多个进程存在于虚拟内存中。

操作系统维护四张表,内存表,IO表,文件表和进程表,称为os control table

Process control block:进程在内存的manifestation,代码段,数据段,堆栈段,信息段,称为进程image。虚拟地址连续:process identification,process state information, process control information, 用户栈,代码和数据,公共共享内存。

内存表用来存储实际内存和虚拟内存,内存表中记录着进程对实际内存和虚拟内存的占用。

进程可以运行在内核模式(对所有的寄存器和指令具有访问权限)或者用户模式,Programe status word PSW中存放进程运行的模式,从而处理器可以知道按何种方式运行。

进程的创建:pid,分配空间

进程切换和模式切换:指令周期的末尾都要看是否有中断pending(等待),如果没有,则进入取指令周期,如果有中断信号,则将PC置为中断响应函数的地址,然后将模式从用户级切换到内核级别。模式切换不会改变进程的状态。

       早期的OS内存中的一部分被用来跑OS,剩下的被进程使用,这样做的代价是进程要先切回OS。现代OS也是进程,切换到kernel模式只需要模式切换。

      线程的概念:进程是资源的单位,线程是分发的单位。在进程内部,线程可以处在等待或者运行状态,并且在等待时会保存一个线程的上下文,线程可以看成有自己独立的PC,独立的线程栈(区别于kernel),一些静态存储单元,和其他线程共享该进程的存储空间和地址空间。

       线程的好处在于:轻量级,创建终止切换消耗小,线程间通信不需要调用内核!在多核处理器上,不同线程可以同步执行。在单核处理器上,线程也可以使进程的任务分得更细,例如在excel中一个线程可以用来显示view,另一个线程用来响应用户输入,从而可以提高运行速度。在word中,多余的线程可以用来将用户做的输入做备份。线程还可以提高批处理的执行速度,例如一个线程写另一个线程读,这样一个线程等IO时另一个线程可以干活,进程不会被替换掉。

       线程的同步:线程有运行状态和等待状态,因此可以有同步。

       多核多线程的速度提升公式=1/[(1-f)+f/N]N为核的数目,f为并行代码量比例,当f=0.9时,对于8核的处理器速度提升不到5.

3.  频率越高流水越深:

因此外设的速度是一定的,因此访问时间相对固定,如果频率加快,则还是要用相同的时间从外部读入或写出数据,因此要经过更多的步骤,因此流水加深

4. cache 概念比较

 

4.1 write backwrite through的概念

Write back:如果hit,先将数据写到cache,然后在该cache lineflush时才在内存中更新。

Write though:如果miss,直接将数据写到内存不管cache,如果hit,同时更新cache和内存。

4.2 写分配和写不分配(与write backwrite through有什么区别)

如果找不到:如果某个数据不在cache里,则直接写到内存中,则为写不分配

如果某个数据不在cache里,则会分配cache的一个line,则称为写分配。

5没有解决的问题:

5.1超出4M的地址范围时的处理方法:L1BTBL2BTB配合:L2中放相邻地址?

5.2 MMU的概念:内存中没有页表,但是有TLBL1中存放>1M的地址,L2中存放详细地址