分类:
2006-01-17 14:04:08
1.3 Architectures for software systems
Flynn分类法:
SISD: Single instruction stream, single data stream
This is the original von Neumann model.
SIMD: Single instruction stream, multiple data stream
In this case there are many processing elements but they are designed to execute the same instruction at the same time
Any machine that has vector or array instructions which execute in parallel can be classified as SMID.
//In this book we are concerned with more general-purpose concurrent //systems and will not consider SIMD machines further.
MIMD: Multiple instruction stream, multiple data stream
Systems with more than one processor fetching and executing instructions
另外一种分类方法:
Control-driven (Sections
Data-driven Demand-driven (section 1.3.5, 1.3.6)
(1) A single uniprocessor computer may be used to implement some kinds of concurrent. (eg. Time-sharing system)
(2) An important point about uniprocessors is that the technique of forbidding interrupts may be used for controlling concurrency.
The conventional multiprocessor model is of a relatively small number of processors (ranging from 2 to about 30) executing programs from a single shared memory. Only 1 copy of the OS and any other system software is needed.
为多处理器设计操作系统和软件是件困难的事情。有时候需要简化设计,会让一个处理器运行操作系统而另外一个处理I/O。当一堆处理器访问一块共享内存时,访问控制是个麻烦的事情。
/*现有的大多数系统都是带有Cache的,这时候Cache一致的开销是绝对要考虑的,也有用硬件实现的,记得前些日子看过MINC,可是不觉得看懂了…*/
考虑每个处理器都只能直接访问自己的local memory的情况,每个处理器被连接到一条共享总线或者多级共享总线上,(eg. Bus结合型的Multiprocessor, UMA的一种)。
进一步的扩展:
.树形结构(主要是二叉树的结构,每个处理器连接一个父节点,两个子节点)
.Crossbar switch(开销大,昂贵)
.Interconnection network
普遍的问题: 软件系统的复杂性