数字逻辑层

数字逻辑层概述

数字逻辑层概述 由最底层提供给数字逻辑层的基本电路单元包括5种门(gate)。数字逻辑层主要讨论如何用各种门搭建能实现具体功能的门电路,它们被作为功能单元提供给微体系结构层。事实上很难做到仅讨论上面所规定的内容,首先必须明确更高层提供给该层的数据表示什么,否则无法设计相关的门电路,所以之后将这部分内容称为机器级数据表示,并在该层额外讨论。另外由于这里主要关注CPU的设计,所以之后不会完整讨论一些硬件的门电路实现,但为理解计算机系统的整体运转机制,仍需明确这些硬件与外界的通信规则,所以之后将这部分内容称为接口技术,并在该层额外进行讨论。   门通常在数字逻辑层无需关心这5种门的内部构造,但这里还是说明一种用NPN三极管的电子开关特性构造5种门的方法。在上图第一行最左边的电路中,称对地电势0~0.5V为低电平,1~1.5V为高电平,规定\(V_{cc}\)恒为1.5V,将电势\(V_{in},V_{out}\)分别作为该电路的输入和输出。通常NPN三极管元件的导通压降在0.7V左右,当输入为低电平时,射极和集极相当于开路,\(V_{out}=V_{cc}\),所以输出为高电平,当输入为高电平时,射极和集极相当于短路,\(V_{out}=0\),所以输出为低电平。这种输入低电平输出高电平,输入高电平输出低电平的电路称为非门。通过串并联NPN三极管可得上图第一行的另外2个电路,它们都有\(V_1,V_2\)两个输入和\(V_{out}\)一个输出,分别称为与非门和或非门。最后将与非门的输出接入非门可得与门,将或非门的输出接入非门可得或门。… 阅读全文

组合逻辑单元

组合逻辑电路(combinational logic circuit) 组合逻辑电路是指在任何时刻,输出状态只决定于该时刻各输入状态的组合,与其他时间的状态无关的电路。组合逻辑电路的功能可以用逻辑函数或真值表描述。接下来会讨论一些计算机内部经常用到的组合逻辑电路单元。   多路选择器(multiplexers)上图就是1个多路选择器,其输入分为两部分,\(D_0\)~\(D_1\)是8个“待选择”的输入,而\(ABC\)则是提供“如何选择”的信息的。其功能是根据\(ABC\)状态的共\(2^3\)种组合,表示将8个“待选择”的输入中的哪一个送入后面的或门。当\(ABC\)的组合表示要选择某个\(D\)时,该\(D\)对应的与门收到的所有其他输入都是真,也就是该与门的输出会与其对应的输入\(D\)保持一致。而其他与门的输入将至少有1个为假。… 阅读全文

时序逻辑单元

时序逻辑电路组合逻辑电路中没有“时间”,其当前时刻输出仅取决于当前时刻输入。而时序逻辑电路的当前时刻输出不仅仅取决于当前时刻输入,还与电路之前的状态(输入输出)有关,其可继续分为这两大类: 1) 同步时序逻辑:其特点是电路存在一个公共时钟信号,用于统一的控制协调各个单元的工作。时钟通常由晶振控制的,其会按固定时间间隔(计为\(t_1\))提供固定时间长度的脉冲(计为\(t_2\))。通常把\(t_1=t_2\)的时钟信号称为对称时钟,否则称为非对称时钟。有时为划分出更细粒度的时钟,会把时钟信号(\(C_1\))经过提供固定延迟的设备得到副时钟信号(\(C_2\))。这样在1个时间段里能区分出4个时间点,其分别为\(C_1\)上升、\(C_2\)上升、\(C_1\)下降、\(C_2\)下降。如果4个时间点不够,可继续增设更多得延迟时钟信号;… 阅读全文

内存电路与内存芯片

内存电路前面讨论过如何用多个D触发器构造8位或更多位的寄存器,而内存也是通过锁存器/除法器构造的,不过通常内存容量远远大于寄存器容量,需用用其他方式编排锁存器/除法器。上图给出了基于D触发器的12位内存电路,该电路虽然只有12位,但其方案本身是支持更大容量的。 该电路相对于之前讨论过的寄存器电路,其并未把每个D触发器的输入输出端作为管脚暴露,因为其对触发器进行了编址,该电路是按每3个位为1个字编址的,共包含4个字,其数据读写是以字为单位的。其中\(A_0,A_1\)是地址信号,其可接受4种0-1组合用于“定位”内存中待操作的字。\(I_0,I_1,I_2\)为需要写入内存某个字的输入数据信号。\(O_0,O_1,O_2\)为当前内存某个字的存储内容的输出数据信号。\(CS\)是片选信号、\(RD\)表示进行读或写、\(OE\)是输出的使能,这3者构成了这个内存的控制信号。… 阅读全文

CPU管脚信号与总线操作

CPU管脚信号如果不了解CPU的部分特性就很难分析总线,这里先了解CPU管脚信号,以及CPU同内存与IO设备的交互方式。CPU管脚信号同样可像内存那样分类为地址信号、数据信号、控制信号。 从内存取指令时可能是这样的流程:“CPU先将指令所在内存地址从自己的地址信号管脚发出,然后再从自己的管脚发出控制信号,用于通知内存自己想要读某个字,内存在收到通知后会把这个字的数据送到CPU的数据信号管脚,然后也发出控制信号,声明自己完成了任务,再然后CPU会收到内存发来的控制信号,接着从自己的数据信号管脚获取这个数据,最终完成从内存取指令的任务”。 CPU性能与数据信号和地址信号的管脚数有关,有\(m\)个地址信号管脚的CPU可以寻址\(2^m\)个地址(通常称为可寻址\(2^m\)的地址空间),现代CPU常见的地址空间大小是16、32、64。类似的有\(n\)个数据信号管脚的CPU可“一次性”读写\(n\)位,现代CPU常见的\(n\)为8、32、64。当CPU数据信号管脚只有8个,那么其在读32位的字时就需要“4次操作”,所以32个数据信号管脚的CPU可能比8个的快很多。… 阅读全文

INTEL酷睿i7管脚信号与DDR3内存总线操作

Intel酷睿i7处理器(第二代)第二代(Sandy Bridge)酷睿i7采用了32nm工艺,主频可达3.5GHz,是8086/8088后裔中比较年轻的一员。Intel为第二代酷睿i7提供了很好的向前兼容性,其具有和前辈80386、8048以及Pentium家族相同的指令系统层,包括相同的寄存器数目、指令集、浮点数标准等等。并且虽然它的性能与晶体管数远远超过了最前辈的8088处理器,但它还是向前兼容了8088,也就是说第二代酷睿i7可以不加修改的运行8088程序。当然第二代酷睿i7也包含了很多新的特性,比如新的加密指令等等。 第二代酷睿根据价位分为2-6核的版本,对于使用这种CPU的计算机,从计算机系统的角度应把它当成是多CPU的。程序员可利用多CPU优势编写多线程程序,通过真正的并行来提升速度。Intel在早期的Xeon服务器CPU中使用了超线程技术,超线程同样用在了第二代酷睿i7中,该技术可在1个物理CPU核心上创建2个硬件级的逻辑线程,简单来说就是在硬件层用1个物理CPU虚拟出多个CPU,所以带有超线程技术的CPU在操作系统的“硬件资源管理器”中会显示更多的CPU数。第二代酷睿i7有优秀的微体系结构层设计,支持同时执行4条指令,使之成为4发射超标量计算机。… 阅读全文

德州仪器OMAP4430及其缓存与LPDDR2内存操作

OMAP4430片上系统   OMAP4430是德州仪器2011年的产品,基于德州仪器第4代OMAP(开放式多媒体应用平台)架构。使用OMAP4430片上系统的代表产品有LG Optimus 3D、Motorola Milestone 3、Motorola Atrix等。这款芯片是一个片上系统(SoC),所谓SoC就是指芯片中不仅包含CPU的部分,还可能包含GPU、手机通信基带等等。目前SoC和CPU之间的区别越来越小,比如INTEL的CPU需要和主板上的INTEL芯片组一起工作,在之前INTEL主板有北桥芯片和南桥芯片,后来北桥芯片就装进了CPU内,主板上就只剩下了南桥芯片,也就是说后来的INTEL处理器也可看作SoC。   内部结构OMAP4430和酷睿的最大区别是其使用ARM指令集,其应用场景不在PC/笔记本,在高性能的移动/嵌入式场景,比如智能手机、平板、物联网设备等。这里来看OMAP4430内部的模块:… 阅读全文

爱特梅尔ATMEGA168及其管脚信号

ATMEGA168单片机 单片机又叫微控制器,其和前面提到的两种CPU/SoC有很大区别,后两者属于不同场景的高性能芯片。其中OMAP4430的应用场景和单片机可能重合度高,但两者性能差别很大。所谓单片机就是指把所有东西都放到芯片里(包括内存等),整个电脑就只有一个芯片。通常单片机的性能差,但其价格低廉,ATMEGA168的价格不到1美金。单片机通常被用作微波炉、洗衣机的”CPU”的。从上面两张图片可以看出,该单片机的封装方式和前面两种CPU/SoC不太相同,并且其仅有28个管脚,管脚少的一部分原因是因为该单片机不需要很多管脚连接内存和很复杂的总线。   管脚信号和内部结构ATMEGA168用于取代复杂的地址总线、数据总线跟外部进行通信的是数字IO接口,其中PD有8个管脚、PB有8个管脚,PC有7个。这种接口的每个管脚可被软件配置成输入/输出管脚。PC的其中6个管脚更是可被直接配置成模拟信号的输入/输出管脚,比如这种模拟信号管脚可以接入温度传感器,这种传感器的输出直接就是变化的电压值,这个值会被特定函数计算出对应的温度值。ATMEGA168的其他管脚包括地线(GND)、用于配置模拟电路的AVCC/AREF、电源输入(VCC)。… 阅读全文

PCI系统总线

PCI总线这里先分析用“古老的”电脑看电影大概需要多少的总线带宽这个问题。这里设需要按1024*768分辨率、30FPS、24位真彩色的规格展示视频,那么色彩决定每个像素需要3个字节(24位),1024*768个像素是2 359 296字节,每秒需要30个帧共67.5MB,所以需要67.5MB/s的带宽。不过这只是“显示”占用的带宽,实际播放过程是先把外存数据载入内存,再把内存数据变为图像。考虑到“古老的”电脑只有1条总线,没有独立显卡(集成显卡的显存就是内存),内存不足以把电影一次性装入内存。所以播放过程是2阶段流水线式的“一边读外存数据到内存、一边把内存数据用于播放视频”,这样2个阶段的流量会同时被1条总线承载,所以实际需要翻倍的135MB/s的总线带宽。 早期使用ISA总线的IBM PC没有图形用户界面(GUI),这时的计算机在显示器上输出内容时,总线带宽不受上述分析的限制。后来进入Windows时代,这时的计算机可以在显示器上输出复杂的图形界面,那么这时的计算机就会受上述分析的限制。由于ISA总线只有16.7MB/s的带宽,由ISA升级来的EISA总线也只有33MB/s的带宽,于是这时候的总线成为了计算机性能的瓶颈。… 阅读全文

PCIE系统总线

PCIe总线随着技术发展,PCI的带宽已成为新IO设备的瓶颈,且PCI总线的插槽设计的也不是很合理,所以人们试着提出新总线标准。目前在主流PC、服务器中,占据统治地位的PCI总线的继任者是PCIe总线,全称为PCI Express总线。这种总线标准也是Intel提出的,其实际上和PCI总线几乎没有关系。可能Intel是因为考虑到PCI这几个字母已经成为了“品牌”,所以打算在名称上继续沿用它。 PCIe的核心在于它彻底抛弃了作为“连接众多设备的并行公共导线”的传统总线功能,取而代之的是提供基于“高速点对点串行连接设备”的总线功能。这就是为什么说PCIe和PCI是完全不同的,PCIE从局域网、交换以太网中借鉴了许多重要的思想,这使得PCIe非常的强大。 Intel在中后期版本的Intel奔腾4对应的主板上开始提供PCIe总线,上图提供了1种包含PCIe总线的计算机结构。其中CPU与内存仍采用原方式连接,IO设备则是经过PCIe所提供的交换网络与桥接芯片通信的,这里的交换网络是个逻辑概念,因为其功能通常被内置到CPU或桥接芯片中。… 阅读全文
滚动至顶部