(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf_第1页
(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf_第2页
(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf_第3页
(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf_第4页
(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(电路与系统专业论文)片上网络架构下多核处理器系统的设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学硕士研究生学位论文 i 片上网络架构下多核处理器系统的设计 摘 要 随着集成电路的工艺制造技术、封装测试技术和设计方法学的进步, 晶体管的尺寸越来越小,芯片开发者能在芯片上使用的晶体管越来越多, 也因此能容纳更多的电路。而伴随着超大规模集成电路设计的进步,将有 更多的 ip 核集成到同一个 soc 芯片上,多核处理器系统(mpsoc)已成 为未来嵌入式领域发展的趋势。 但是当单个芯片上集成数以百计的ip核时, 传统的总线在设计上遇到了全局时钟难以同步、地址空间有限、无法支持 多节点并行通行等问题,为了解决这些问题,人们提出了一种全新的总线 结构noc。noc 的核心思想是将计算机网络技术移植到芯片设计中来 用以解决多核处理器系统间的互连通信问题,从体系结构上彻底解决通讯 的瓶颈问题,它以分组交换作为基本通信技术,采用全局异步局部同步 (globally asynchronous locally synchronous , gals)的通讯机制。 本文在此背景下, 分析了 noc 的相关技术, 设计了一种基于 2d mesh 网络拓扑结构的片上网络架构,完成了交换节点、资源网络接口、总线仲 裁模块和串口模块的设计,并实现了 xy 维路由算法。另外,根据 ata/atapi-6 协议和 802.3 协议,本文设计了硬盘控制器和以太网控制器。 最后本文搭建了一个以 2d mesh 片上网络为架构,以硬盘控制器、以太网 控制器为外设的多核处理器系统,并在 xilinx 公司大学计划推出的 xilinx xup virtex-ii pro 开发板上进行了验证。 太原理工大学硕士研究生学位论文 ii 关键字:片上网络,拓扑结构,以太网控制器,硬盘控制器 太原理工大学硕士研究生学位论文 iii design multi-processor system based on network-on-chip architecture abstract with the ic progress of manufacturing process technology, packaging and testing technology and design methodology, the size of transistors are smaller and smaller, chip designers can use the transistors more and more in the chip. thus, it can accommodate more circuit with the progress of vlsi design, there will be more ip core integrated on the same soc chip, multi-core processor systems (mpsoc) has become the development trend of the future embedded in the field. but when hundreds of ip core integrated on a single chip, the traditional bus encountered difficulty, which is about global clock synchronization in the design. address space is limited and can not support multi-node parallel access and so on. in order to solve these problems, it is proposed for a brand-new bus architecture noc. the mainly idea of noc, the computer network technology are transplanted to the chip design, which is to solve the multi-core processor system for the interconnection between communication. it is completely resolved from the architecture of communication bottlenecks, it see packet switching as a basic communications technology, using global asynchronous and local synchronous for the communication mechanism. 太原理工大学硕士研究生学位论文 iv against this background, this paper analyzed related technology of noc, proposed a framework of network-on-chip based on the 2d mesh network topology and designed some modules such as switch nod, resource net interface, bus arbiter, serial port and realized xy routing algorithm. whats more, according to ata/atapi-6 agreement and 802.3 agreement, the paper designed hard disk controller and mac controller. at last, the paper builded a mpsoc with the architecture based on noc and peripherals such as hdd controller, mac controller, and this architecture has been verified on xilinx xup virtex-ii pro broad which is promoted by xilinx company. keywords: noc, topological structure, mac controller, hdd controller 太原理工大学硕士研究生学位论文 1 第一章 绪 论 1.1 课题研究的背景 集成电路的集成密度和性能在过去的 20 年间经历了一场翻天覆地的革命。 在 20 世 纪 60 年代,gordon moore(intel 公司的合伙奠基人)预见了能够在一个单片上集成的 晶体管数目将随时间按指数规律增长。这一预见后来称为摩尔定律(moore law) ,它 已被证明具有超凡的想象力1。从微米到亚微米到现在的纳米阶段,很多人曾经预测这 种发展趋势将减缓,但是微电子产业三十多年来发展的状况证实了 moore 的预言,而且 根据预测,微电子技术的这种发展趋势还将继续下去,这是其他任何产业都无法与之比 拟的。 按照摩尔定律片上系统(soc)的集成度将越来越高,数以百计的核将集成在一个 十亿级晶片的片子上, 但是这样的片上系统要求模块间的通信带宽须达到 gbits/s, 并且 还须满足快速投放市场的需求, 而传统的总线结构在面临这两个方面的挑战时已达不到 要求,于是在 1999 年有研究小组提出了片上网络(noc) ,即从体系结构上彻底解决总 线架构带来的问题。 1.1.1 soc 产生的背景 所谓集成电路(integrated circuit,ic)技术是指采用半导体制作工艺,在一块较小 的单晶硅片上制作上许多晶体管及电阻器电容器等元器件, 并按照多层布线或隧道布 线的方法将元器件组合成完整的电子电路的技术。从集成电路即时诞生到今天,集成电 路产业已经逐步成为信息产业的核心, 并被世界上各工业发达国家和部分发展中国家竞 相发展。集成电路产业属于国家战略性基础产业,它决定着一个国家的装备水平和竞争 实力。 随着集成电路的工艺制造技术、封装测试技术和设计方法学的进步,晶体管的尺寸 越来越小,芯片开发者能在芯片上使用的晶体管越来越多,也因此能容纳更多的电路, 目前量产芯片的特征尺寸已降到 45nm2。这使得原来需要组合具有不同逻辑、存储、 模拟等多种功能的多个 ic 才能实现的系统功能,如今只需要一个 ic 就可取代,这就是 太原理工大学硕士研究生学位论文 2 系统芯片soc带来的好处。 系统芯片soc是超深亚微米(very deep sub micron, vdsm) 和纳米阶段的代表性产品,它的出现将集成电路带入了一个新的发展时期3。 一般说来,soc 称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有 专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容45。同时它又是一 种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。从 狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从 广义角度讲,soc 是一个微小型系统,如果说中央处理器(cpu)是大脑,那么 soc 就 是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将 soc 定义为将微处理 器、模拟 ip 核、数字 ip 核和存储器(或片外存储控制接口)集成在单一芯片上,它通常 是客户定制的,或是面向特定用途的标准产品。 soc 通常指在单一芯片上实现的数字计算机系统。该系统应包括两个基本部分:硬 件部分和软件部分。硬件部分包括 bus,rom/ram,i/o port 等计算机系统的基本部 件; 软件部分主要指操作系统, 也可以包括重要的应用软件。 soc 的结构如图 1-1 所示, 可见片上系统将多个 ip 核如 sram、cpu、rom、pci、adc,mpeg 和 udl 等组成 一个系统放在一个芯片上。 mpumpu 总线 控制器 总线 控制器 动态 存储器 动态 存储器 其他asic其他asic i/o接口i/o接口 控制 逻辑 控制 逻辑 测试 接口 测试 接口 总线总线 romrom 图1-1 soc结构图 figure1-1 soc structure diagram 1.1.2 soc 的主要技术和面临的问题 soc 的主要特征就是总线结构,因其可提供高性能的互连而被广泛运用。片上总线 技术包括两个方面,一是制定标准,二是设计实现。表 1-1 总结了国际国内现有的片上 总线。 虽然每一种片上总线都是在特定应用领域发展起来的,各有优势,但是它们也具有 太原理工大学硕士研究生学位论文 3 共同的特点: (1)采用主从式结构,都支持多个主单元,由总线仲裁器根据优先权原则将总线 控制权赋予相应的主单元。 (2)在批量数据传输时一般都采用流水线方式,即当前的地址与上一次的数据交 叠在一起,从而实现一个时钟周期传送一次数据。这样就可以实现一个时钟周期完成一 次数据传输。 (3) 支持可变宽度的地址和数据线。 一般的片上总线都至少支持 64 位的数据宽度, 并且这些地址和数据线的宽度都是可以改变的,这无疑增加了片上总线的应用范围。 (4)为了降低功耗,各种信号一般都尽可能保持不变,并且多采用单向信号线, 这样也利于结构的简化以及时钟的同步。基本上,这些总线都把输入数据线和输出数据 线分开,并且都没有信号线复用的现象。 (5)总线应尽可能简单,占用的逻辑资源少。首先总线的时序本身要简单,便于 使用者学习和接受,这样 ip 核的设计者就可以把主要精力集中于 ip 本身功能的设计; 其次由于片上总线集成于一块芯片内,因此它不能占用太多资源。 表1-1广泛应用的片上总线 table1-1 wide-used bus on chip 总线 机构 总线 机构 coreconnect ibm advanced microcontroller bus architecturearm wishbone opencores ip interface motorola c*bus 苏州国芯 siliconbackplane iii sonics 然而随着集成电路制造工艺的持续发展,进入 21 世纪以后,电子元件的尺寸进入 了纳米时代,集成电路的规模将超过几十亿晶体管,届时在一颗芯片上会出现数十乃至 数百个 ip 核联合工作的电路系统,于是出现了一些与总线相关的问题,主要表现在以 下方面: (1)可扩展性差 soc 系统设计是从需求分析开始的,为了使系统能够正确工作,soc 中的各个物理 太原理工大学硕士研究生学位论文 4 模块在芯片上的相对位置是一定的, 总线和时钟网络以及其他全局信号线都是针对这一 具体要求进行设计的,从而使得 soc 芯片能够正常的工作。但是随着电路规模越来越 大,片上集成的单元越来越多,数据处理量也随之加大,总线的可扩展性差问题就暴露 出来:虽然总线可以有效地连接多个通信方,但地址资源总是有限的,另外总线由多用 户共享,但一条总线是无法支持一对以上的用户同时通信的,传统总线结构的时间资源 利用率是很低的。 (2)平均通信效率低 soc 中多采用总线结构,在一个时间段内只能有一个功能模块独占总线,其他各功 能模块只能在获得总线控制权后才能和系统中其他模块进行通信。从通信的局部看,这 种结构的通信带宽也很高,实时性很好。但从系统整体考虑,这种通信结构的平均带宽 非常低,因为一个模块控制总线通信时,系统中其他模块必须等待,直到得到总线的控 制权。 (3)单一时钟同步问题 总线结构要求全局同步,但随着工艺特征尺寸越来越小,工作频率迅速上升,达到 10ghz 以后,连线延时造成的影响将严重到无法设计全局时钟树的程度,而且由于时 钟网络的庞大,其功耗将占据芯片总功耗的大部分,由单一系统时钟同步全芯片的工作 将极其困难。 因此,为了解决设计复杂 soc 时的问题,一些研究机构提出了以通信为中心的复 杂 soc 的计算资源的集成设计方法noc(network-on-chip),其核心思想是将计算机 网络技术移植到芯片设计中来,从体系结构上彻底解决总线架构带来的问题。 1.1.3 片上网络(noc)简介45 noc 是一个崭新的话题,它的研究始于 1999 年,初期探索 soc 通讯部分的系统级 设计方法,之后不久便涉及从物理层到体系结构、操作系统以及应用等各个层面89。 集成电路 noc 的核心思想是将计算机网络技术移植到芯片设计中来,彻底解决多 cpu 的体系结构问题。目前,国际上共有 30 多所大学、研究所以及工业界的研究单位正积 极从事 noc 研究工作。 中国在 noc 基础理论研究领域起步较迟, 目前国内立项研究 noc 基础理论己经到 了刻不容缓的地步。虽然中国集成电路产业的整体水平落后国外约 10 年时间,但自从 太原理工大学硕士研究生学位论文 5 soc 技术出现以来, 国家的科技决策层敏锐地觉察出这是一个跟上国际发展水平的难得 机遇,果断地设立了国家自然科学基金 soc 重大专项、863 计划 soc 重大专项等重大 项目,使国内的 soc 理论研究基本同步于国际水平。noc 作为一个崭新的集成电路设 计理论体系正处于初创阶段,如尽早立项支持 noc 相关技术的理论研究工作,一定能 够继续保持与国际前沿同步的局面。从这个层面看,noc 的出现无疑为中国集成电路 设计方法学的继续发展又提供了一次很好的机遇。中国若能够全面开展 noc 学术领域 的前沿工作,将为大量创新成果的出现提供一个空间。 noc 是指在单芯片上集成大量的计算资源以及连接这些资源的片上通信网络,它 主要包括资源和通讯两类节点10。资源节点完成广义的计算任务,它们既可以是 soc, 也可以是各种单一功能的 ip 核。通讯节点负责完成资源节点指点的数据通讯,其设计 借鉴了分布式计算机系统的通讯方式, 用路由和分组交换技术代替了传统的总线技术来 完成通讯任务。 noc 的核心思想是将计算机网络技术移植到集成电路设计中来,从体系结构上彻 底解决片上通讯的瓶颈问题,并同时解决了时钟问题。noc 以分组交换作为基本通信 技术,采用全局异步局部同步(globally asynchronous locally synchronous, gals)的 通讯机制:每一个资源节点都工作在自己的时钟域,而不同的资源节点之间则通过通讯 节点进行异步通讯,从而很好地解决了单一时钟同步的问题。另外,noc 还具备数据 处理量大、多任务并行计算、架构易扩展、灵活性强等特点。图 1-2 是 noc 的结构概 念图。 sn r rni snsn snsnsn r rni r rni r rni r rni r rni snsnsn r rni r rni r rni 图1-2 noc结构图 figure1-2 noc structure diagram 太原理工大学硕士研究生学位论文 6 由图 1-2 所示,noc 主要由三部分组成,分别是资源节点(resource node) 、交换 节点(switch node)和资源网络接口(resource net interface) 。 (1)资源节点(resource node) 负责执行计算任务的节点。它既可以是soc,也可以是各种特定功能的ip核,例如 dsp、arm等。典型的资源节点可以是带缓冲的嵌入式微处理器和dsp核、专用硬件资 源,可重构硬件资源等。 (2)交换节点(switch node) 负责传输资源节点之间的数据通讯, 其功能就是将从资源节点得到的信息经它的输 入端口传输到一个或者多个输出端口。交换节点及其之上的网络成为片上通讯网络,它 包括链路控制器、仲裁器、缓冲器、输入输出通道。它采用路由和分组交换技术代替传 统的总线技术来完成通讯。 (3)资源网络接口(resource net interface) 负责连接资源节点和交换节点的接口, 只有配置了资源网络接口的资源节点才能连 接到网络上与其他资源节点进行数据通讯。 1.2 ieee802.3 协议介绍 ieee802.3通常指以太网,它是一种网络协议,主要介绍csma/cd(载波监听多路 访问、冲突检测)机制。csma/cd是ieee802.3采用的媒体接入控制技术,或称介质访 问技术。因此ieee802.3是以以太网为技术原型,本质特点是采用csma/cd的介质访问 控制技术。 ieee802.3协议标准系列中,数据链路层包括(llc)子层和媒体访问控制(mac) 子层,其中mac位于llc和物理层之间,它使llc适应于不同的媒体访问技术和物理媒 体。mac单独作为一个子层,就不会因为媒体访问方法的改变而影响较高层次的协议。 mac由数据拆装和媒体访问管理两个模块组成,完成对数据帧的封装、解封、发送和接 收功能。 1.2.1 以太网的体系结构 ieee802.3在制定时突出一个基本思想是对系统进行逻辑划分,研究各层之间如何 通信。iso组织将网络按其功能划分为7个功能层,每层都完成一个特定的功能。图1-3 太原理工大学硕士研究生学位论文 7 所示为ieee802.3以太网体系结构参考模型。 图1-3 以太网体系结构参考模型 figure1-3 ethernet architecture reference model 由图1-3可知,以太网对应模型中的物理层和数据链路层,并把数据链路层分为逻 辑链路层(llc)和介质访问控制(mac)两个子层。 1. 物理层的主要功能 1)为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是 多个物理媒体连接而成。 2)物理层要形成数据传输需要的实体,为数据传送服务。既要保证数据能在其上 正确通过,又要提供足够的带宽,减少信道拥塞。传输数据的方式满足点到点, 一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要。 2. 数据链路层的功能 1)链路连接的建立、拆除和分离。 2)帧定界和帧同步,链路层的数据传输单元是帧,根据不同的协议,帧的长短和 界面也有差别,但是必须对帧进行定界。 3)对帧的收发顺序进行控制。 4)差错检测和恢复、链路标识和流量控制等。差错检测多用方阵码和循环码校验 来检测信道数据的误码,帧丢失等用序号检测,各种错误的恢复则靠反馈重发 技术来完成。 其中数据链路层又分为逻辑控制子层(llc)和媒体访问控制子层(mac)两个部 分。逻辑控制子层(llc)负责识别网络层协议,然后对它们进行封装,而媒体访问控 数据链路层 物理层 llc 物理层 mac 网络层 传输层 会话层 表示层 应用层 osi 网络参考模型 以太网参考模型 太原理工大学硕士研究生学位论文 8 制子层(mac)位于逻辑控制子层(llc)和物理层之间,它是数据帧收发的基础,完 成数据帧的封装、解封、发送和接收功能,可以说媒体访问控制子层(mac)是以太网 控制器的关键。 1.2.2 以太网数据帧格式 帧是一系列标准化的数据位,是以太网系统传输数据的封装包。以太网站点采用发 送数据帧的方式进行通信,节点间发送任何信息都要将内容放在帧的有效部分当中,通 过一个或者多个数据帧进行传送。标准ieee802.3中规定的数据帧格式如表1-2所示。由 表可知,以太网数据帧是由先导字段、帧界定符、目的地址、源地址、帧长度、数据单 元、填充和校验序列组成的。帧中各字段的意义如下: 表 1-2 以太网数据帧格式 table1-2 ethernet frame format 7b 1b 6b 6b 2b 461500b 4b 先导字段 帧界定符 目的地址源地址长度数据单元填充 校验序列 pa sfd da sa l llc pdupad fcs (1)pa(先导字段):在帧定界符前发送,为了确保信号的稳定可靠。pa 为持续 7 个字节的 10101010 比特信号,用于物理介质的稳定性和同步性; (2) sfd(开始帧分界符): 它表示有效数据帧的开始, 代码为 10101011, 一个字节; (3)da(目的地址):da 是目的地址,长度为 6 字节,该地址可为单播地址和广播 地址,单播地址就是目的接收站点的 mac 地址,组播地址分为多播地址和广播地址, 如最高位为“0”表示单播地址,为“1”表示组播地址,全为“1”时为广播地址; (4)sa(源地址):sa 是源发站地址,只能为单地址,6 个字节长; (5)l(长度):它用两个字节来表示 llc pdu 数据单元的长度; (6)llc pdu(llc 子层的协议数据单元):表示要传送的 llc 数据,作为 mac 的数据域,46-1500 字节; (7)pad(填充):为了满足最小帧长度的要求,对短信息帧进行填充若干字节使之 达到最小数据帧的大小; (8)fcs(校验序列):帧校验,它采用 crc-32 校验码。 从数据帧的结构可以看出,媒体访问控制子层(mac)在逻辑控制子层(llc)数 据帧的前面,当 llc 子层请求发送数据帧时,发送数据封装部分开始按 mac 子层的帧 太原理工大学硕士研究生学位论文 9 格式组帧,将一个前导码 pa 和一个帧起始定界符 sfd 符加到帧头部分,并填上目的地 址、源地址、计算出 llc 数据帧的字节数并填入长度字段 l,必要时将填充字符 pad 附加到 llc 数据帧后,求出 crc 校验码附加到帧校验码序列 fcs 中,将完成封装后的 mac 帧递交 mac 子层的发送介质访问管理部分以供发送,即上层的信息经过逻辑控 制子层(llc)时被封装成逻辑控制子层(llc)帧,逻辑控制子层(llc)帧经过媒 体访问控制子层(mac)又封装成媒体访问控制子层(mac)帧。可见,数据帧必须 通过这样层层的封装,才能最终实现数据的传输。接收数据解封部分主要用于校验帧的 目的地址字段,以确定本站是否应该接受该帧,如地址符合,则将其送到 llc 子层, 并进行差错校验。 1.3 ata/atapi-6 协议介绍 ata/atapi-6 协议是 ata 标准集中具有代表性的一个版本。它对主机和硬盘之间 通信时必须遵守的协议进行了定义。ata 标准系列由国际信息技术标准化委员会 (international committee on information technology standards)下属的 t13 技术委员会 负责管理和制定。 本小节介绍的 ata/atapi-6 协议是颁布于 2002 年的 3b 版本,它从物理层、传输 层对 ata 接口进行了定义。物理层内容主要包括:定义了一组标准化接口信号,以及 该接口信号的电气和机械特性;定义了设备端,即硬盘上的接口寄存器。传输层内容主 要包括:定义了主机与设备进行通信时的一系列命令、协议及时序。 1.3.1 物理层的主要内容 1.3.1.1 指令集介绍 ata/atapi-6 协议不仅对硬盘的接口规范作了定义,它还包括一套完整的指令集、 支持数据传输的接口、物理层的各种信号、电器与机械特性以及传输层面上的各种状态 协议等。 在 ata/atapi-6 协议中,主机对硬盘的管理和操作都是由主机系统向存储设备发 送指令集参数来实现的。指令集参数的发送方式分为寄存器传输方式和 packet 命令 两种方式。 由于 pc 机中硬盘主要采用的是寄存器传输方式因此对 packet 命令包传输 方式不做过多介绍。在主机对硬盘的操作中,主机先将发送的指令集参数写入存储设备 太原理工大学硕士研究生学位论文 10 中的指令寄存器块中,并设置传输方式为寄存器传输。其次硬盘按照指令集的内容执行 主机的操作,表 1-3 为硬盘的基本指令集,其中命令类型 m 表示强制、o 表示可选, 协议类型 pio、dma 代表硬盘要遵循的传输协议。 表 1-3 硬盘指令集 table1-3 hard disk instruction set 命令名称命令名称 操作码操作码 命令类型命令类型协议 execute device diagnostic90h m 器件自检 identify device ech m 识别器件 idle 97h、e3hm 无输入 read buffer e4h o pio 输入 read dam c8h、c9hm dma read long 22h、33ho pio 输入 read multiple c4h m pio 输入 read sector(s) 20h、21hm pio 输入 seek 70h m 无输入 set features efh m 无数据 sleep 99h、e6ho 无输入 write buffer e8h o pio 输出 write dma cah、cbhm dma write long 32h、33ho pio 输出 write multiple c5h m pio 输出 write sector(s) 30h、31hm pio 输出 1.3.1.2 硬盘接口信号 ata/atapi-6 标准中, 主机和设备之间的通信是由 40 根信号线来完成的, 如表 1-4 所示。 其中 40 针硬盘接口信号说明如下: reset:复位信号,强制硬盘重新初始化。 dd(15:0) :16 位的双向数据总线,对寄存器操作时使用低 8 位数据总线。 dmarq、dmack:请求和响应信号,是 dma 传输的一对握手信号。 iordy、 ddmardy、 hstrobe: 分别表示 pio 传输模式时的 i/o 通道准备, dma 传输写模式时器件准备好接收数据信号, dma 传输读模式时器件发送的数据锁存信号。 dior、hdmardy、dstrobe:分别表示 pio 传输模式时读信号,dma 传输读 模式时主机准备好的应答信号,dma 传输写模式时的数据锁存信号。 intrq:器件中断请求信号。 太原理工大学硕士研究生学位论文 11 dasp:该信号可以完成两个功能。在启动系统或者对系统进行复位时,1 号磁盘 驱动器就会立即插入该信号以表明它的存在。当系统正常工作的时候,这个信号表明选 通的磁盘驱动器正在工作。 pdlag、cblid:系统完成自检后,通过该信号通知主驱动器。 csel:选择器件是主硬盘还是从硬盘。 cs0、cs1:片选信号,当 cs0=1,cs1=0 时选中命令寄存器组;当 cs0=0,cs1=1 时,选中控制寄存器组。 da(2:0) :设备地址信号,同 cs0、cs1 组合一同形成设备端地址选择信号,用 来选通命令寄存器组和控制寄存器组。 表 1-4 40 针硬盘接口信号 table1-4 40 pins hard disk interface signal 引脚引脚 信号名称信号名称 方向引脚信号名称方向引脚信号名称 方向方向 1 reset- 21 dmarq 2 ground 22 ground 3 dd7 23 diow-: stop 4 dd8 24 ground 5 dd6 25 dior-: hdmardy-: hstrobe 6 dd9 26 ground 7 dd5 27 iordy-: ddmardy-: dstrobe 8 dd10 28 csel 9 dd4 29 dmack- 10 dd11 30 ground 11 dd3 31 intrq 12 dd12 32 13 dd2 33 da1 14 dd13 34 pdiag-: cblid 15 dd1 35 da0 16 dd14 36 da2 17 dd0 37 cs0- 18 dd15 38 cs1- 19 ground 39 dasp- 20 no connection 40 ground 1.3.2.2 硬盘接口寄存器 设备端接口寄存器是 ata/atapi-6 标准中重要的组成部分,该标准中规定的接口 寄存器如表 1-5 所示,表中右半部分列出了所有的接口寄存器并按照功能划分为控制块 太原理工大学硕士研究生学位论文 12 寄存器(control block registers)和命令块寄存器(command block registers)两部分。 从表中可以看出,有些寄存器是只读的,如状态寄存器(status) ;有些寄存器是只写的, 如命令寄存器(command) ;有些寄存器是可读可写的,如数据寄存器(data) 。表的左 半部分给出了所有寄存器的寻址信息,如要访问数据寄存器须将 cs0 信号置为有效, cs1、da2、da1、da0 置为无效即可。 表 1-5 设备接口寄存器 table1-5 device interface register 寻址信号寻址信号 寄存器名称及功能寄存器名称及功能 cs0 cs1 da2 da1da0读操作 写操作 命令寄存器组 1 0 0 0 0 数据寄存器 1 0 0 0 1 错误寄存器 特性寄存器 1 0 0 1 0 扇区数寄存器 1 0 0 1 1 扇区号寄存器(07 位) 1 0 1 0 0 起始逻辑扇区号(815 位) 1 0 1 0 1 起始逻辑扇区号(1623 位) 1 0 1 1 0 主从驱动器 1 0 1 1 1 状态寄存器 命令寄存器 控制寄存器组 0 1 1 1 0 备用状态寄存器控制寄存器 各寄存器代表的意义如下: 数据寄存器:一个 16 位寄存器,cpu 通过该寄存器与硬盘交换数据。 错误寄存器:用来反映控制寄存器的错误原因。 特性寄存器:在硬盘接口初始化时使用。 扇区寄存器:完成读写扇区数。 扇区号寄存器:用于存放操作扇区的起始扇区数号。 柱面号寄存器:用于存放柱面号。 磁头寄存器:用于存放读、写、校验、寻道和格式化时指定的驱动器号、磁头号和 寻址方式。 状态寄存器:用于表示硬盘执行命令后的工作状态,读取该寄存器将清除中断请求 信号。 命令寄存器:用于接收主机发送的指令。 下面就状态寄存器的使用做一下简单的介绍。 状态寄存器包含存储设备当前的状态 太原理工大学硕士研究生学位论文 13 信息,即获取当前硬盘工作的状态参数,其描述如表所示。第7位表示设备的空闲 状态,当其为高电平是表示设备忙,低电平是表示设备空闲。第6位用于表示设备 端是否准备好数据传输, 当其为高电平是表示设备准备好, 低电平时表示设备未准备好。 第5位用于表示设备执行期间有无错误发生。第3位用于表示设备是否准备好发 送数据。第0位表示设备端是否出现错误。 表 1-6 状态寄存器描述 table1-6 description of status register 7 6 5 4 3 2 1 0 bsy drdy df # drq obsoleteobsolete err 1.3.2 传输层主要内容 ata/atapi-6 标准中的传输层定义了主机与设备通信时使用到的 63 个命令、16 种 协议和 4 种时序。其中,命令的完成需要主机与设备相互配合完成一系列的动作;不同 的命令所对应的动作不同, 这一系列的有序动作的集合就是协议而每一个涉及到主机与 设备间通信的动作具体到总线上它又必须满足一定的时序。 协议的一种表现形式就是状 态转移图,状态转移图又分为主机端状态转移图与设备端状态转移图。对主机端的关键 状态转移图编程实现后就是设备的驱动程序。 ata/atapi-6 标准中的 4 种时序分别是寄存器访问时序、pio 数据传输时序、 multiword dma 数据传输时序和 ultra dma 数据传输时序。 1.4 fpga 简介 1.4.1 fpga 的概念 fpga 是英文 field programmable gate array 的缩写,即现场可编程门阵列,它是 在 pal、gal、cpld 等可编程器件的基础上进一步发展的产物,最早是由 xilinx 公司 于 1985 年首家推出,是一种新型的高密度 pld(programmable logic device),采用 sram 工艺制作11。基于 sram 的 fpga 器件工作前,要从芯片外部加载配置数据。 配置数据可以存储在片外 eeprom 或者计算机上,设计人员可以控制加载过程,现场 修改器件的逻辑功能,即现场可编程。它是作为专用集成电路(asic)领域中的一种 半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有 太原理工大学硕士研究生学位论文 14 限的缺点。 fpga在结构上包含3类可编程资源: 可编程逻辑功能块 (configurable logic block, clb) ,可编程 i/o 块(i/o block,iob)和可编程互连(interconnect resource,ir) 。 可编程逻辑功能块是实现用户功能的基本单元,它们通常排列成一个阵列,散布于整个 芯片;可编程 i/o 块完成芯片上逻辑与外部封装脚的接口,常阵列于芯片四周,可编程 内部互连包括各种长度的线段和编程连接开关, 它们将各个可编程逻辑块或 i/o 块连接 起来,构成特定功能的电路。 dll block ram clb dll block ram clb dll block ram clb dll block ram clb i/o块 图1-4 fpga内部结构图 figure1-4 fpga inside structure diagram 1.4.2 fpga 设计流程 完整的 fpga 设计包括电路设计输入、功能仿真、逻辑综合、综合后仿真、布局布 线、时序仿真与验证、板级仿真与验证、硬件测试和配置数据八个步骤12,其设计流程 如图 1-5 所示。 (1)电路设计与输入 通过某些规范的描述方式,将电路设计思路输入给 eda 工具。常用的设计输入方 法有硬件描述语言(hdl)和原理图设计方法。尤其是 hdl 设计输入法,它利于自顶 向下的层次化设计,利于模块的划分和复用,可移植性好,通用性好,设计不因芯片的 工艺与结构的不同而变化,更利于向 asic 的移植。 (2)功能仿真 电路设计完成后要用专用的仿真工具对设计进行功能仿真, 验证电路功能是否符合 设计要求,常用的仿真工具有 modelsim、vcs、active hdl vhdl/verilog hdl 等。 太原理工大学硕士研究生学位论文 15 通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可靠性,功能仿真的主 要目的在于验证语言设计的电路结构和功能是否和设计意图相符。 (3)逻辑综合 是将 hdl 语言、原理图等设计输入翻译成由与、或、非门、ram 和触发器等基本 逻辑单元组成的逻辑连接,并根据目标与要求优化所生成的逻辑连接,生成电路网标文 件,供 fpga 厂家的布局布线器进行实现。 (4)综合后仿真 综合完成后需要检查综合结果是否与原设计一致, 主要目的在于验证综合后的电路 结构是否与设计意图相符,是否存在歧义。在仿真时,把综合生成的标准延时文件反标 注到综合仿真模型中去,可估计门延时带来的影响。 (5)布局布线 所谓布局(placement)是指将逻辑网表中的硬件源语言或者底层单元合理地适配 到 fpga 内部的固有硬件结构上,布局的优劣对设计的最终实现结果影响很大;布线 (routing)是根据布局的拓扑结构,利用 fpga 内部的各种连线资源,合理正确连接 各个元件的过程。 (6)时序仿真与验证 时序仿真的主要目的在于验证是否存在时序违规, 将布局布线的时延信息反标注到 设计网表中,这时生成的仿真时延文件包含的时延信息最全,不仅包含门时延,还包含 实际布线延时, 所以布线后仿真最准确, 能较好地反映芯片的实际工作情况。 一般来说, 布线后仿真必须进行, 通过布局布线后仿真能检查设计时序与 fpga 实际运行情况是否 一致,确保设计的可靠性和稳定性。 (7)板级验证与仿真 在有些高速设计情况下还需要使用第三方的板级验证工具进行仿真与验证,如 mentortau、design-timing designer、mentor icx 等,这些工具能较好地分析高速设计 的信号完整性、电磁干扰等电路特性。 (8)硬件测试和配置数据 利用 eda 硬件开发平台在线调试或者将生成的配置文件写入芯片中进行测试。可 以利用逻辑分析仪、chipscope 等工具通过 jtag 口,在线实时地读出 fpga 的内部信 号,如发现问题则需要返回修改设计输入,当系统可以正常工作时,基于 fpga 的系统 太原理工大学硕士研究生学位论文 16 设计就完成了。 图 1-5 fpga 设计流程 figure1-5 fpga design flow 1.5 课题实验平台及工具软件介绍 本 论 文 涉 及 到 的 试 验 平 台 为xilinx公 司 推 出 的spartan-e系 列 xc2s300e-pq208-6-c 和 xilinx xup virtex-ii pro development board13 14 15两套开发 板,如图 1-6 和 1-7 所示。 spartan-e系列 xc2s300e-pq208-6-c 开发板配置芯片中有 30 万个系统门,1536 个 clb,164kbit 的 block ram,146 个用户可配置的 i/o 口,4 个 dll 延迟锁相环。 电路设计与输入 (hdl代码、原理 图) 实现与布线仿 真 加载配置在线 调试 综合优化 功能仿真正确 布线后仿真正确布线问题 综合问题 系统设 计电路 构思 否 是 否 是 否 是 太原理工大学硕士研究生学位论文 17 芯片外围包含音频输入输出模块,其中输入音频解码芯片为 cs4223,输出音频放大器 为 opa2134。视频输入输出模块,视频输入支持 ccd 图像传感器输入、cmos 图像传 感器模组 ov9650 输入和复合视频输入。单片机模块包含一个 philips 公司的 lpc935 单 片 机 和 一 个rs232串 口 。 存 储 模 块 是 两 块 相 同 的sdram型 号 为 hy57v281620hcst-h 和一块型号为 is61lv25616al-12t 的 sram,容量分别为 256k16bit 和 8m16bit。其电源支持 12v 直流电源输入,5v、3.3v、2.5v、1.8v、-5v 直流输出。两组二极管构成的8字形数字显示模块,以及外围一些接口,包括 pdiusbd12 型的 usb 接口器件、cs8900a 型的网口芯片、一个 40 针的并口和一个可 引出 143 个 fpga 的可配置管脚的扩展口模块。 virtex-ii pro 系列开发板上的核心部件是 xilinx 公司推出的 virtex-ii pro 系列 xc2vp30 fpga 芯片,该芯片内部嵌有两个 power pc 处理器硬核,具有 13969 个 slice, 428kb 分布 ram,2448kb 块 ram,8 个 dcm 模块。此外该开发板还具有一个最大可 支持2gb的ddr内存条的ddr sdram dimm插槽, 一个svga输出端口, 两个sata 主机口,一个 sata 从机口,一个以太网口(配有 wjlxt972c 物理层芯片) ,两路音 频输出接口,一个 rs232 串口,一个 ps/2 鼠标口和一个 ps/2 键盘口,一个 cf 卡接口 (配有 xccace 控制器) ,一个高速扩展槽,两个慢速扩展槽,四组外接口,一个 usb 调试接口,一个 pc4 并行 jtag 调试接口,一个 powerpc 调试接口等。 图1-6 spartan-e figure1-6 spartan-e development board

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论