体系结构基本概念
来源:互联网 发布:淘宝钻展尺寸 编辑:程序博客网 时间:2024/06/06 05:25
1 zero overhead loop无branch开销不需要在jump时进行流水重建?
2 粗粒度线程thread与SMT的概念
进程的概念:在多任务的操作系统中有多个进程存在于虚拟内存中。
操作系统维护四张表,内存表,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 back和write through的概念
Write back:如果hit,先将数据写到cache,然后在该cache line被flush时才在内存中更新。
Write though:如果miss,直接将数据写到内存不管cache,如果hit,同时更新cache和内存。
4.2 写分配和写不分配(与write back和write through有什么区别)
如果找不到:如果某个数据不在cache里,则直接写到内存中,则为写不分配
如果某个数据不在cache里,则会分配cache的一个line,则称为写分配。
5没有解决的问题:
5.1超出4M的地址范围时的处理方法:L1的BTB和L2的BTB配合:L2中放相邻地址?
5.2 MMU的概念:内存中没有页表,但是有TLB,L1中存放>1M的地址,L2中存放详细地址
- 体系结构基本概念
- ARM体系结构的基本概念
- ARM体系结构的基本概念
- 一、体系结构以及基本概念
- HDFS体系结构与基本概念
- HDFS体系结构与基本概念
- 软件体系结构基本概念汇总
- BI的一些基本概念,体系结构
- Oracle两个基本概念了解体系结构
- Oracle两个基本概念了解体系结构
- AAA HDFS 体系结构与基本概念
- Oracle两个基本概念帮你了解体系结构
- Oracle两个基本概念帮你了解体系结构
- Oracle两个基本概念了解体系结构-数据
- oracle体系结构常见基本概念总结[收集中]
- Hibernate(一)hibernate基本概念和体系结构
- 一、NGN的基本概念和体系结构
- 了解oracle体系结构必须先了解的两个基本概念
- ignoring UserInterfaceState.xcuserstate and Breakpoints_v2.xcbkptlist in Xcode, using SVN
- c++ 对齐问题
- 用C++进行简单的文件I/O操作
- 交换技术浅谈
- PB SetSqlSelect()
- 体系结构基本概念
- 探索IE11新开发者工具–“网络”面板功能改进(上)
- 再说margin
- oracle时间问题
- java程序员修炼之道
- $.ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
- 【转】Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux
- oracle创建数据表空间
- eclipse jee配置jetty的两种方法