具有直接存储器访问控制器的电子系统及其操作方法与流程

文档序号:15829193发布日期:2018-11-03 00:18阅读:158来源:国知局

本申请要求2017年4月17日提交的申请号为10-2017-0049405的韩国专利申请的优先权,其全部内容通过引用合并于此。

本公开的各个实施例总体而言涉及电子系统,更具体地,涉及具有串行系统总线接口和直接存储器访问控制器的电子系统及其操作方法。

背景技术

近来,被称为“外围组件互连快速(pcie)”的接口已经代替pci接口而被广泛使用。pci接口可以并行传输数据,而pcie接口可以串行传输数据。pcie接口总线可以用于将中央处理单元(cpu)连接到外围设备,并且还可以用作计算设备与储存设备的核心服务通道。与其他系统接口技术相比,pcie接口技术可以呈现相对高的协议效率、普通的延时性能、相对低的功耗和低成本。

在使用pcie接口总线的电子系统中,为了有效利用cpu可以采用直接存储器访问(dma)技术。根据dma技术,电子系统的外围输入/输出(i/o)设备可以通过电子系统的dma控制器而不利用cpu来直接访问电子系统的存储器件。因此,即使cpu执行其他处理,外围i/o设备也可以与存储器件直接通信。在外围i/o设备通过dma控制器直接访问存储器件并执行读取操作或写入操作之后,dma控制器可以产生中断信号,以通知cpu终止读取操作或写入操作。在此情况下,cpu可以不请求dma控制器执行下一个操作,直到中断信号输入到cpu。这可能导致电子系统的性能下降。



技术实现要素:

各个实施例针对具有串行系统总线接口和直接存储器访问(dma)控制器的电子系统及其操作方法。

根据实施例,一种电子系统包括具有根联合体和端点的串行系统总线接口、耦接到串行系统总线接口的命令总线和数据总线、耦接到数据总线的存储器件以及dma)控制器,该直接存储器访问(dma)控制器被配置为耦接到命令总线和数据总线两者,以响应于从根联合体传输到端点的请求命令来直接访问存储器件。dma控制器包括请求命令在其中待命的命令队列。

根据另一实施例,提供一种操作电子系统的方法,该电子系统包括具有根联合体和端点的串行系统总线接口、耦接到串行系统总线接口的命令总线和数据总线、耦接到数据总线的存储器件以及直接存储器访问(dma)控制器,该直接存储器访问(dma)控制器被配置为耦接到命令总线和数据总线两者,以响应于从根联合体传输到端点的请求命令来直接访问存储器件。该方法包括响应于中央处理单元(cpu)的请求来将请求命令从根联合体依次传输到端点,将请求命令储存在包括在dma控制器中的命令队列中,以及依次执行与存储器件相关的dma控制操作。与存储器件相关执行的dma控制操作根据在命令队列中待命的请求命令而由dma控制器运行。

附图说明

基于附图和所附的详细描述,本公开的各个实施例将变得更明显,在附图中:

图1是示出根据本公开实施例的电子系统的框图;

图2是示出包括在图1的电子系统中的直接存储器访问(dma)控制器的示例的框图;

图3是示出包括在图2的dma控制器中的命令队列的示例的示意图;以及

图4是示出图1所示的电子系统的操作的时序图。

具体实施方式

在以下实施例的描述中,将理解术语“第一”和“第二”意在识别元件,而非用于仅定义元件本身或表示特定顺序。此外,当一个元件被称为位于另一个元件“之上”、“上面”、“上方”、“下”或“下面”时,意在表示相对位置关系,而非用于限制一个元件直接接触另一元件或至少一个中间元件存在于它们之间的某种情况。因此,本文中所使用的诸如“在...之上”、“在...上面”、“在...上方”、“在...之下”、“在...下面”、“在...下方”等的术语仅是用于描述特定实施例的目的,而非意在限制本公开的范围。另外,当一个元件被称为“连接”或耦接“耦接”到另一元件时,一个元件可以直接电连接或直接机械连接或耦接直接耦接到另一元件,或可以通过替换另一元件在它们之间形成连接关系或耦接耦接关系。

图1是示出根据本公开实施例的电子系统10的框图。参见图1,根据实施例的电子系统10可以包括串行系统总线接口600,例如pcie总线接口。pcie总线接口可以包括pcie根联合体(rootcomplex,rc)120、pcie端点(ep)200以及第一传输线131和第二传输线132。电子系统10还可以包括cpu110。cpu110和pcierc120可以发挥主机设备100的作用。在一些实施例中,pcierc120可以被集成在cpu110中。

pcierc120可以包括传输端子121和接收端子122。pcieep200也可以包括传输端子202和接收端子201。pcierc120的传输端子121可以通过第一传输线131耦接到pcieep200的接收端子201。因此,第一传输线131上的信号可以从pcierc120的传输端子121朝向pcieep200的接收端子201传输。pcieep200的传输端子202可以通过第二传输线132耦接到pcierc120的接收端子122。因此,第二传输线132上的信号可以从pcieep200的传输端子202朝向pcierc120的接收端子122传输。

命令总线310和数据总线320可以耦接到串行系统总线接口600。pcieep200可以通过命令总线310和数据总线320与其他设备通信。当命令总线310传输命令时,数据总线320可以传输数据。在一些实施例中,命令总线310和数据总线320可以是高级可扩展接口(axi)总线。pcieep200可以在将已转换的请求命令通过命令总线310传输到其他设备之前,根据命令总线310的接口规则来转换从主机设备100的pcierc120输出的请求命令的接口形式。例如,pcieep200可以将从主机设备100的pcierc120输出的请求命令转换成高级可扩展接口(axi)形式,并且可以通过命令总线310将已转换的具有axi形式的请求命令传输到命令队列410以及传输到其他设备。此外,pcieep200可以通过数据总线320从包括在电子系统10中的存储器件500接收数据,并且可以将数据传输到主机设备100的pcierc120。

电子系统10还可以包括dma控制器400。命令总线310和数据总线320可以耦接到dma控制器400。dma控制器400可以通过第一子总线401耦接到命令总线310,并且可以通过第二子总线402耦接到数据总线320。由pcieep200转换成高级可扩展接口(axi)形式的请求命令可以通过命令总线310和第一子总线401传输到dma控制器400的命令队列410。dma控制器400可以通过第二子总线402和数据总线320将与请求命令相对应的设定值传输到存储器件500,以直接访问存储器件500而不使用cpu110。此外,dma控制器400可以响应于从根联合体pcierc120传输到pcieep200的请求命令来直接访问存储器件500。

在本实施例中,dma控制器400可以包括命令队列410。命令队列410可以储存通过pcieep200从主机设备100输出的请求命令。如果请求命令被储存在命令队列410中并且请求命令待命,则dma控制器400可以将与请求命令相对应的设定值传输到存储器件500,使得存储器件500执行与请求命令相对应的操作。上述dma控制器400的操作可以独立执行,而不管数据通过数据总线320和pcieep200从存储器件500传输到pcierc120的操作。

存储器件500可以通过第三子总线501耦接到数据总线320。在一些实施例中,存储器件500可以是动态随机存取存储(dram)器件或静态随机存取存储(sram)器件。这个存储器件500可以用作电子系统10的主存储器件或辅助存储器件。可选地,存储器件500可以是通过串行系统总线接口600耦接到主机设备100的数据储存器件。例如,存储器件500可以是固态硬盘(ssd)。存储器件500可以响应于从dma控制器400输出的设定值来执行读取操作或写入操作。

图2是示出包括在图1的电子系统10中的dma控制器400的示例的框图,以及图3是示出包括在图2的dma控制器400中的命令队列410的示例的示意图。参见图1、图2和图3,dma控制器400可以被配置为包括命令队列410、命令处理器420、设定寄存器430和总线控制器440。如图3所示,命令队列410可以包括命令队列区域411和状态寄存器区域412。命令队列区域411可以储存通过命令总线310和第一子总线401从pcierc120输出的请求命令。在一些实施例中,命令队列区域411的储存能力可以通过主机设备100的cpu110来设定。状态寄存器区域412可以储存关于命令队列区域411的状态的信息数据。

命令处理器420可以执行依次运行储存在命令队列410中并待命的请求命令的控制操作。具体地,命令处理器420可以将储存在命令队列410中的请求命令的设定值输入到设定寄存器430中。在一些实施例中,每个请求命令的设定值可以包括源地址、目标地址、数据大小和命令队列410的状态信息。

设定寄存器430可以将从命令处理器420输出的设定值储存在其中,并且可以将已储存的设定值传输到总线控制器440。为了执行以上操作,设定寄存器430可以包括源地址(src地址)被储存在其中的第一储存元件、目标地址(dst地址)被储存在其中的第二储存元件、数据大小被储存在其中的第三储存元件以及命令队列410的状态信息被储存在其中的第四储存元件。在从设定寄存器430接收设定值之后,总线控制器440可以通过第二子总线402和数据总线320将设定值传输到存储器件500。

图4是示出图1所示的电子系统10的操作的时序图。参见图1至图4,pcierc120可以响应于cpu110的请求来通过传输端子121将第一组请求命令rq1(src)、rq1(dst)和rq1(大小)依次传输到pcieep200的接收端子201。随后,pcierc120可以在无任何延迟的情况下将第二组请求命令rq2(src)、rq2(dst)和rq2(大小)依次传输到pcieep200的接收端子201。此外,pcierc120还可以在无任何延迟的情况下将第三组请求命令rq3(src)、rq3(dst)和rq3(大小)依次传输到pcieep200的接收端子201。在通用电子系统的情况下,在产生用于通知终止与第一组请求命令相对应的操作的中断信号之后,可以传输另一组请求命令。但是,根据上述电子系统10,请求命令全部储存在命令队列410中并且请求命令待命。因此,不管由dma控制器400执行的操作如何,都可以在无任何时间中断的情况下来连续传输所有请求命令。

在依次接收第一组请求命令至第三组请求命令rq1(src)、rq1(dst)、rq1(大小)、rq2(src)、rq2(dst)、rq2(大小)、rq3(src)、rq3(dst)和rq3(大小)之后,pcieep200可以将第一组请求命令至第三组请求命令转换成高级可扩展接口(axi)形式。随后,pcieep200可以通过命令总线310将第一组已转换的请求命令axi1(src)、axi1(dst)和axi1(大小)、第二组已转换的请求命令axi2(src)、axi2(dst)和axi2(大小)以及第三组已转换的请求命令axi3(src)、axi3(dst)和axi3(大小)依次传输到dma控制器400的命令队列410。具有axi形式的已转换的请求命令可以在命令队列410中待命。

当请求命令被储存在命令队列410中时,dma控制器400的命令处理器420可以将请求命令的设定值依次储存在设定寄存器430中。具体地,命令处理器420可以将源地址、目标地址、数据大小以及第一组已转换的请求命令axi1(src)、axi1(dst)和axi1(大小)的状态信息储存在设定寄存器430的第一储存元件至第四储存元件中。总线控制器440可以通过第二子总线402和数据总线320将储存在设定寄存器430中的设定值传输到存储器件500。

存储器件500可以响应于通过第二子总线402和数据总线320传输的设定值来执行读取操作或写入操作。在读取操作的情况下,存储器件500可以响应于通过第二子总线402和数据总线320传输的设定值来通过数据总线320将与第一组已转换的请求命令axi1(src)、axi1(dst)和axi1(大小)相对应的第一读取数据data1传输到pcieep200。在接收第一读取数据data1之后,pcieep200可以通过传输端子202和第二传输线132将第一读取数据data1输出到pcierc120的接收端子122。因为当第一读取数据data1通过传输端子202和第二传输线132被传输到pcierc120的接收端子122时第一传输线131处于空闲状态,所以第一pcierc120可以响应于cpu110的请求来通过第一传输线131将第四组请求命令rq4(src)、rq4(dst)和rq4(大小)传输到pcieep200。

如果第一读取数据data1的大小比数据总线320的宽度(例如,比特位的数量)大,则第一读取数据data1可以被分成两个或更多个数据块,并且每个已分开的数据块可以通过数据总线320来传输。例如,第一读取数据data1的第一数据块可以包括数据头(header)h1和数据d1,并且第一读取数据data1的第二数据块至第四数据块可以包括数据d2、d3、d4、d5、...、d62和d63。最后数据块可以包括数据d64和状态数据e。状态数据e可以包括关于从存储器件500传输到pcieep200的命令队列410的状态信息的读取数据。命令队列410的状态信息可以被储存在包括在dma控制器400中的命令队列410的状态寄存器区域412中,并且可以用作通过第一组请求命令rq1(src)、rq1(dst)、rq1(大小)来通知主机设备100执行数据传输的数据。因此,即使在没有接收到通知dma控制器400的操作终止的任何中断信号的情况下,主机设备100也可以识别与第一组请求命令rq1(src)、rq1(dst)、rq1(大小)相关的存储器访问操作的实现。

如果储存在dma控制器400的设定寄存器430中的设定值被传输到存储器件500,则命令处理器420可以将与第二组已转换的请求命令axi2(src)、axi2(dst)和axi2(大小)相关的设定值储存到设定寄存器430中。由设定寄存器430、总线控制器440和存储器件500执行的后续操作可以根据第一组已转换的请求命令axi1(src)、axi1(dst)和axi1(大小)来被同样地处理。对于所有储存在命令队列410中并待命的请求命令,可以反复并连续地执行包括在dma控制器400中的命令处理器420的操作。

存储器件500可以响应于通过第二子总线402和数据总线320从dma控制器400输出的后续设定值来通过数据总线320将与第二组已转换的请求命令axi2(src)、axi2(dst)和axi2(大小)相对应的第二读取数据data2传输到pcieep200。随后,存储器件500可以响应于通过第二子总线402和数据总线320从dma控制器400输出的后续设定值来通过数据总线320将与第三组已转换的请求命令axi3(src)、axi3(dst)和axi3(大小)相对应的第三读取数据data3传输到pcieep200。pcieep200可以通过传输端子202和第二传输线132将第二读取数据data2和第三读取数据data3依次传输到pcierc120。在一个示例中,第二传输线132可以是通过其将数据(例如,第二读取数据data2和第三读取数据data3)从pcieep200传输到pcierc120的单向传输线。

当第一读取数据data1被传输到pcierc120时,第四组请求命令rq4(src)、rq4(dst)和rq4(大小)可以通过第一传输线131从pcierc120传输到pcieep200。第一传输线131可以是通过其可以将请求命令从pcierc120传输到pcieep200的单向传输线。类似地,当第二读取数据data2被传输到pcierc120时,第五组请求命令rq5(src)、rq5(dst)和rq5(大小)可以通过第一传输线131从pcierc120传输到pcieep200。即,不管执行哪个数据传输,都可以执行请求命令从pcierc120到pcieep200的传输。类似地,不管请求命令的传输如何,都可以执行从pcieep200到pcierc120的数据传输。

上面为了说明目的已经公开了本公开的实施例。本领域技术人员应理解,在不脱离如在所附权利要求中公开的本公开的范围和范围的情况下,各种修改、增加和替换都是可以的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1