计算机基础概念和术语

目录​​​​​​​

FPGA

ASIC

FCLK/HCLK/PCLK

fire and forget

Hyper-Threading

mmap

cache line

并行计算

分类

单程序多数据模型(SPMD)

多程序多数据模型(MPMD)

SMP(Symmetric Multi-Processor)

NUMA(Non-Uniform Memory Access)

NaN(Not a Number,非数)

UNIX时间戳

MAC地址

i386/i686


在同一台计算机中,内存比外存存取速度快。

32位微处理器中的32表示的技术指标是字长。  

目前制造计算机所采用的电子器件是超大规模集成电路。

计算机中常用的文本编码类型有ASCII、GB2312、Unicode、UTF-8。

二进制文件按二进制编码方式来存储文件。  

数据以二进制编码方式存储在计算机文件中。

网络地址转换(Network Address Translation,NAT)

虚拟内存(virtual memory)

固定内存(pinned memory)

互斥锁mutex(也称之为互斥量)

FIFO: First Input First Output,就是指先进先出。

FPGA

FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。

ASIC

专用集成电路,Application Specific Integrated Circuit

专用集成电路是为特定用户或特定电子系统制作的集成电路。数字集成电路的通用性和大批量生产,使电子产品成本大幅度下降,推进了计算机通信和电子产品的普及,但同时也产生了通用与专用的矛盾,以及系统设计与电路制作脱节的问题。同时,集成电路规模越大,组建系统时就越难以针对特殊要求加以改变。为解决这些问题,就出现了以用户参加设计为特征的专用集成电路,它能实现整机系统的优化设计,性能优越,保密性强。

FCLK/HCLK/PCLK

FCLK是提供给ARM920T 的时钟。 
HCLK 是提供给用于 ARM920T,存储器控制器,中断控制器,LCD 控制器,DMA 和 USB 主机模块的 AHB总线的时钟。 

PCLK 是提供给用于外设如WDT,IIS,I2C,PWM 定时器,MMC/SD 接口,ADC,UART,GPIO,RTC 和SPI的 APB 总线的时钟。 

fire and forget

即发送后遗忘。这种模式是直观地尝试向一个 actor 发送一条消息后就不再关心这次通信。此处的发送消息仅保证到 fire 的发送,即消息以发出,但是可能由于网络原因被丢失。这种通信模式使用的是所谓的 at most once 送达语义。

Hyper-Threading

Hyper-Threading又叫 Simultaneous Multi-Threading。

可以使我们的单核CPU执行多个控制流程。

技术的关键点就是:当我们在处理器中执行代码时,很多时候处理器并不会使用到全部的计算能力,部分计算能力会处于空闲状态,而Hyper-Threading技术会更大程度地“压榨”处理器。

举个例子,如果一个线程必须要等到一些数据加载到缓存中以后才能继续执行,此时CPU可以切换到另一个线程去执行,而不用去处于空闲状态,等待当前线程的IO执行完毕。

Hyper-threading 使操作系统认为处理器的核心数是实际核心数的2倍,因此如果有4个核心的处理器,操作系统会认为处理器有8个核心。Hyper-threading只是一种“欺骗”手段,对于一些程序来说,它可以更有效地利用CPU的计算能力,但是它的性能远没有真正有2个核心的处理器性能好,因此它不能替代真正有2个核心的处理器。但是同样都是2核的处理器,一个有hyper-threading技术而另一个没有,那么有这项技术的处理器在大部分情况下都要比没有的好。

mmap

mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。

总而言之,常规文件操作需要从磁盘到页缓存再到用户主存的两次数据拷贝。而mmap操控文件,只需要从磁盘到用户主存的一次数据拷贝过程。说白了,mmap的关键点是实现了用户空间和内核空间的数据直接交互而省去了空间不同数据不通的繁琐过程。因此mmap效率更高。

cache line

高速缓存其实就是一组称之为缓存行(cache line)的固定大小的数据块,其大小是以突发读或者突发写周期的大小为基础的。每个高速缓存行完全是在一个突发读操作周期中进行填充或者下载的。即使处理器只存取一个字节的存储器,高速缓存控制器也启动整个存取器访问周期并请求整个数据块。缓存行第一个字节的地址总是突发周期尺寸的倍数。缓存行的起始位置总是与突发周期的开头保持一致。

并行计算

OpenMP是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受,用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案(Compiler Directive)。

分类

单指令单数据(SISD): SISD是标准意义上的串行机,具有如下特点:1)单指令:在每一个时钟周期内,CPU只能执行一个指令流;2)单数据:在每一个时钟周期内,输入设备只能输入一个数据流;3)执行结果是确定的。这是最古老的一种计算机类型。 

单指令多数据(SIMD): SIMD属于一种类型的并行计算机,具有如下特点:1)单指令:所有处理单元在任何一个时钟周期内都执行同一条指令;2)多数据:每个处理单元可以处理不同的数据元素;3)非常适合于处理高度有序的任务,例如图形/图像处理;4)同步(锁步)及确定性执行;5)两个主要类型:处理器阵列和矢量管道。 

**多指令单数据(MISD):**MISD属于一种类型的并行计算机,具有如下特点:1)多指令:不同的处理单元可以独立地执行不同的指令流;2)单数据:不同的处理单元接收的是同一单数据流。这种架构理论上是有的,但是工业实践中这种机型非常少。 

多指令多数据(MIMD): MIMD属于最常见的一种类型的并行计算机,具有如下特点:1)多指令:不同的处理器可以在同一时刻处理不同的指令流;2)多数据:不同的处理器可以在同一时刻处理不同的数据;3)执行可以是同步的,也可以是异步的,可以是确定性的,也可以是不确定性的。这是目前主流的计算机架构类型,目前的超级计算机、并行计算机集群系统,网格,多处理器计算机,多核计算机等都属于这种类型。值得注意的是,许多MIMD类型的架构中实际也可能包括SIMD的子架构。 

单程序多数据模型(SPMD)

单程序多数据模型(Single Program Multiple Data (SPMD)): SPMD事实上是一种可以架构在其它并行编程模型之上的更“高级”的编程模型:

  • 单程序:所有任务都执行同一个程序的拷贝,而这里的程序可以是线程,消息传递,数据并行甚至混合;
  • 多数据:不同的任务操作于不同的数据。

SMPD通常需要指定任务的执行逻辑,也就是不同的任务可能会根据分支和逻辑关系,去执行整个程序的某个部分,也就是说,不是所有的任务都必须执行整个程序——有可能只是整个程序的某个部分。

而这种采用消息传递或者混合编程的SPMD模型,有可能是今天运行在多核集群系统上的最常见的并行计算模型了。

多程序多数据模型(MPMD)

多程序多数据模型(Multiple Program Multiple Data (MPMD)):和SPMD一样,多程序多数据模型实际上也是一种可以架构在其它并行编程模型基础上的“高级”并行编程模型:

  • 多程序:任务可以同时执行不同的程序,这里的程序可以是线程,消息传递,数据并行或者它们的混合。
  • 多数据:所有的任务可以使用不同的数据。

MPMD应用并不像SPMD应用那么常见,但是它可能更适合于特定类型的程序。

SMP(Symmetric Multi-Processor)

所谓对称多处理器结构,是指服务器中多个CPU对称工作,无主次或从属关系。各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)。对SMP服务器进行扩展的方式包括增加内存、使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)。

NUMA(Non-Uniform Memory Access)

利用NUMA技术,可以把几十个CPU(甚至上百个CPU)组合在一个服务器内。NUMA服务器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,并且具有独立的本地内存、I/O槽口等。由于其节点之间可以通过互联模块(如称为Crossbar Switch)进行连接和信息交互,因此每个CPU可以访问整个系统的内存(这是NUMA系统与MPP系统的重要差别)。显然,访问本地内存的速度将远远高于访问远地内存(系统内其它节点的内存)的速度,这也是非一致存储访问NUMA的由来。由于这个特点,为了更好地发挥系统性能,开发应用程序时需要尽量减少不同CPU模块之间的信息交互。利用NUMA技术,可以较好地解决原来SMP系统的扩展问题,在一个物理服务器内可以支持上百个CPU。比较典型的NUMA服务器的例子包括HP的Superdome、SUN15K、IBMp690等。

NaN(Not a Number,非数)

是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。

UNIX时间戳

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)

是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

MAC地址

MAC Address,Media Access Control Address,亦称为EHA(Ethernet Hardware Address)、硬件地址、物理地址(Physical Address)。在OSI节层模型中,属于第二层链路层概念。一个MAC地址唯一指定一台设备,全球唯一,并且通常烧写在固件中。  MAC地址由IEEE(Institute of Electrical and Electronics Engineers)定义,有三种:MAC-48、EUI-48、EUI-64。EUI, Extended Unique Identifier。  

i386/i686

i386对应的是32位系统、而i686是i386的一个子集,i686仅对应P6及以上级别的CPU,i386则广泛适用于80386以上的各种CPU;x86_64主要是64位系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值