CN100476773C - 管理存储器访问请求的方法和装置 - Google Patents

管理存储器访问请求的方法和装置 Download PDF

Info

Publication number
CN100476773C
CN100476773C CNB2005800089122A CN200580008912A CN100476773C CN 100476773 C CN100476773 C CN 100476773C CN B2005800089122 A CNB2005800089122 A CN B2005800089122A CN 200580008912 A CN200580008912 A CN 200580008912A CN 100476773 C CN100476773 C CN 100476773C
Authority
CN
China
Prior art keywords
request
controller
requests
moderator
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005800089122A
Other languages
English (en)
Other versions
CN1934549A (zh
Inventor
佐哈尔·博金
小阿瑟·亨特
克里舍纳默西·凡卡塔拉曼纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1934549A publication Critical patent/CN1934549A/zh
Application granted granted Critical
Publication of CN100476773C publication Critical patent/CN100476773C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

已经公开了用于管理存储器访问请求的方法和装置。所述方法的一个实施方案包括动态地修改访问一个或更多个存储器设备的多个请求中每一个的属性,并且基于所述属性在所述请求之间进行仲裁,以选择要在时隙中发送到所述存储器设备的请求。描述了其他实施方案并且主张对它们的权利要求。

Description

管理存储器访问请求的方法和装置
发明领域
本发明一般地涉及计算机系统,并且更具体地,涉及管理计算机系统中的存储器访问请求。
背景
在示例性的计算机系统中,外围设备可以发出(assert)访问储存在系统中的存储器设备上的数据的请求。例如,扬声器可以从存储器设备接收音频数据。为了控制外围设备,计算机系统可以包括耦合到所述外围设备的输入/输出控制器。输入/输出控制器可以包括多个控制器(例如音频控制器),其中每一个负责某类外围设备(例如音频设备)。所述控制器可以代表对应的外围设备发出存储器访问请求。输入/输出控制器在存储器访问请求之间进行仲裁,并且通过互连(例如外设部件互连Express总线)向存储器设备发送所述请求。
根据外设部件互连(PCI)Express协议,时间段被划分成多个时隙(time slot)。输入/输出控制器内的每个控制器被分配多个时隙。在每个分配的时隙中发送一个请求。然而,因为请求可以以不同的长度到来,所以如果请求没有用尽整个时隙,那么时隙中超出的带宽就被浪费。
此外,请求可以具有不同级别的延时敏感度(latency sensitivity)。然而,现有的控制器不提供区分在不同延时敏感度级别上的请求以及响应于它们的延时敏感度来管理所述请求的机制。因此,具有高级别延时敏感度的请求可能没有被及时地发送到存储器,从而在数据流中可能出现假信号(glitch)。
附图简要说明
从下面的详细说明和附图将能够更完整地理解本发明,然而,所述详细说明和附图不应该被用作把所附权利要求书限制于所示出的具体实施方案,而仅仅是用于解释和理解。
图1示出用于管理存储器访问请求的过程的一个实施方案的流程图。
图2图示输入/输出控制器的一个实施方案。
图3A图示确定数据请求长度的电路的一个实施方案。
图3B图示确定缓冲区描述符(buffer descriptor)请求长度的电路的一个实施方案。
图3C图示优先级状态机的一个实施方案的状态图。
图3D图示仲裁器(arbiter)的一个实施方案。
图4图示计算机系统的示例性实施方案。
详细说明
在下面的描述中,已经公开了管理存储器访问请求的方法和装置。下面阐述了各种具体细节。然而,可以理解,无需这些具体的细节可以实践本发明。此外,公知的电路、结构和技术没有详细示出,以免模糊对本描述的理解。
在说明书中提及“一个实施方案”或“实施方案”意味着结合该实施方案描述的具体特征、结构或特性被包括在本发明的至少一个实施方案中。因此,短语“在一个实施方案中”在说明书中不同地方的出现不一定全是指同一实施方案。
下面的详细描述的一些部分是根据对计算机存储器中的数据位的操作的符号表示来介绍的。这些描述和表示是数据处理领域技术人员用来将他们工作的实质传达给本领域其他技术人员的工具。算法在这里,并且一般地,被认为是导致期望结果的自我一致的(self-consistent)操作序列。所述操作是要求物理量的物理操纵的那些操作。虽然不是必须的,这些量通常采取能够被储存、传输、组合、比较和以其他方式其他操纵的电信号或者磁信号的形式。主要出于通用的原因,将这些信号称为位、值、元素、符号、字符、项、数等已常常证明是方便的。
然而,应该记住所有这些和类似的术语都是与适当的物理量相关联的,并且仅仅是应用于这些量的简便标记。除非另外特别指出,正如从以下讨论中可以认识到,在整篇说明书中,使用诸如“处理”、“计算”、“运算”、“确定”或“显式”等术语的讨论是指计算机系统或者类似的电子计算设备的动作和过程,所述动作和过程将表示为计算机系统的寄存器和存储器内的物理量(例如,电子量)的数据操纵和转换为类似地表示为计算机系统的存储器或寄存器或其他这样的信息储存、传输或显示设备内的物理量的其他数据。
本发明的实施方案还涉及用于进行本文所述操作的装置。该装置可以按照要求的用途被特别地构造,或者它可以包括被储存在计算机中的计算机程序可选择地激活或重新配置的通用计算机。这样的计算机程序可以被储存在计算机可读储存介质中,所述计算机可读储存介质例如但不限于包括软盘、光盘、CD-ROM和磁光盘的任何类型的盘、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、磁或光卡、或适于储存电子指令的任何类型的介质,并且其中的每个被耦合到计算机系统总线。
本文介绍的操作和显示并不固有地与任何特定的计算机或者其他装置相关。各种通用系统可以根据本文的教导与程序一起使用,或者,可以证明构造更专业化的装置来进行所描述的操作是方便的。用于各种这些系统的所要求的结构将出现在以下的描述中。另外,本发明的实施方案没有参照任何特定程序设计语言来描述。应该可以理解,各种不同的编程语言可以被用来实现本文描述的本发明的教导。
如在本文献中使用的术语,“机器可读介质”包括以机器(例如计算机)可读的形式储存和传输信息的任何机制。例如,机器可读介质包括ROM;RAM;磁盘储存介质;光储存介质;闪存存储器设备;电、光、声或其他形式的传播信号(例如载波、红外信号、数字信号等);等等。
图1图示了用于管理存储器访问请求的过程的一个实施方案的流程图。所述过程由处理逻辑来进行,所述处理逻辑可以包括硬件(例如电路、专用逻辑等)、软件(例如运行在通用计算机系统或专用机器上的软件)或两者的组合。
处理逻辑使用多个存储器访问控制器来发出访问存储器设备的多个请求(处理框110)。响应于来自计算机系统中的中央处理单元的指令,请求可以被发出。请求可以包括读和/或写数据请求以及缓冲区描述符请求。存储器访问控制器可以包括直接存储器访问(DMA)控制器,例如数据DMA控制器(内向和外向)和缓冲区描述符(BD)DMA控制器。在一个实施方案中,数据DMA控制器负责访问存储器设备中的数据,而BD DMA控制器负责访问BD列表中的BD。每个BD包括在存储器设备中的一块数据的地址和大小。在一个实施方案中,每个数据DMA控制器具有对应的BD DMA控制器。
在一个实施方案中,DMA控制器是计算机系统中的输入/输出控制器内的音频控制器的一部分。音频控制器可以控制一个或更多个音频编码器-解码器与存储器设备之间的数据传输。这样的音频编码器-解码器可以是头戴式耳机和送话器(headset)、扬声器、电话等的一部分。
回头参照图1,处理逻辑动态地修改请求中的每一个的属性(处理框120)。例如,响应于请求的延时敏感度,处理逻辑动态地修改请求的优先级。延时敏感度与针对请求的数据传输必须达到的速度有关。当请求的延时敏感度更高时,该请求要求更快的数据传输。
在一个实施方案中,处理逻辑将请求的延时敏感度分成两级,即高级和低级。当可以从DMA控制器的缓冲区中被取得或逐出的数据达到第一阈值时,处理逻辑可以导致DMA控制器发出具有低级延时敏感度的请求。此外,当缓冲区中可用的空间数达到第二阈值时,处理逻辑可以导致DMA控制器将请求的延时敏感度提高到高级。第二阈值不依赖于第一阈值。
参照图1,响应于所述属性,处理逻辑在请求之间仲裁,以选择要在时隙中发送到存储器设备的请求(处理框130)。处理逻辑可以在每个时钟周期上仲裁,以选择具有最高延时敏感度的请求。处理逻辑可以采用各种仲裁方案,例如先到先服务(FCFS)、加权轮转(Weighted Round Robin,WRR)等。在下面讨论各种仲裁方案的细节。此外,时隙可以由例如数字多媒体互连(DMI)控制器的互连控制器来分配,所述互连控制器与把音频控制器耦合到存储器设备的互连(例如DMI)接口。
除优先级化(prioritize)请求之外,响应于时隙的大小,处理逻辑可以动态地改变请求的长度(处理框140)。例如,当要被取出或逐出的可用数据的数量增加时,处理逻辑可以增加请求的长度直至时隙的大小。
在一个实施方案中,响应于各种因素,处理逻辑确定请求的长度。例如,所述因素可以包括在DMA控制器的缓冲区中可用的空间以及要从对应BD中读取/要写到对应BD的数据的剩余字节。此外,处理逻辑可以不允许数据请求长度超过该请求被发送所通过的互连的隙(slot)大小的上限。可能的话,通过动态地改变请求长度,处理逻辑可以把较小的请求组合成较大的请求,以更好地利用分配给音频控制器的每个时隙。因此,处理逻辑可以提高音频控制器的效率。
最后,处理逻辑向存储器设备发送所选择的请求(处理框150)。如上面提到的,处理逻辑可以通过DMI向存储器设备发送所述请求。在一个实施方案中,处理逻辑遵循支持等时数据传输的外设部件互连(PCI)Express协议。根据请求的延时敏感度动态地改变请求长度以及动态地优先级化请求的能力允许等时数据传输,以在相关时间段上接收分派的带宽,而不会使非等时流量枯竭(starve)。
图2图示输入/输出控制器的一个实施方案。输入/输出控制器200包括互连控制器210(例如DMI控制器)、多个外围设备控制器220和230、以及把外围设备控制器220和230耦合到互连控制器210的总线215。互连控制器210驱动互连208(例如DMI)。存储器设备通过互连208耦合到输入/输出控制器200。互连控制器210和总线215还可以被共同地称为输入/输出控制器200的“主干(back bone)”。外围设备控制器220和230可以包括通用串行总线(USB)控制器、音频控制器230等。
在一个实施方案中,音频控制器230包括仲裁器240、多个外向DMA引擎250和多个内向DMA引擎260。例如,音频控制器230可以具有四个外向DMA引擎和四个内向DMA引擎。外向和内向引擎250和260驱动一个或更多个外围设备中的一个或更多个音频编码器-解码器270,所述外围设备例如扬声器、电话、头戴式耳机和送话器等。注意到在图2中仅示出一个外向DMA引擎250和一个内向DMA260引擎,以免模糊本发明的实施方案。
每个外向DMA引擎250可以包括BD DMA控制器252和数据DMA控制器254。BDDMA控制器252可以包括优先级状态机2521、确定BD请求长度的电路2523、以及BD缓冲区2525。BD缓冲区2525可以包括先进先出(FIFO)缓冲区。类似地,数据DMA控制器254可以包括优先级状态机2541、确定数据请求长度的电路2543、以及外向数据缓冲区2545。外向数据缓冲区2545可以包括FIFO缓冲区。
每个内向DMA引擎260可以包括BD DMA控制器262和数据DMA控制器264。BDDMA控制器262可以包括优先级状态机2621、确定BD请求长度的电路2623、以及BD缓冲区2625。BD缓冲区2625可以包括先进先出(FIFO)缓冲区。在一个实施方案中,数据DMA控制器264可以包括优先级状态机2641、确定数据请求长度的电路2643、以及外向数据缓冲区2645。外向数据缓冲区2645可以包括FIFO缓冲区。
BD DMA控制器252和262,以及数据DMA控制器254和264中的每一个发出访问存储器设备的请求,并且向仲裁器240发送该请求。响应于这些请求的延时敏感度,仲裁器240从这些请求中选择一个请求,并且把该请求呈递给输入/输出控制器230的骨干。互连控制器210周期性地给控制器220和230中的每一个分配时隙。当音频控制器230被分配了一个时隙时,所选择的请求在该分配的时隙内通过互连208被发送。
为了提高音频控制器230的效率,BD和数据DMA控制器252、262、254和264中的每一个包括优先级状态机(例如优先级状态机2521、2541、2621和2641),所述优先级状态机响应于请求的延时敏感度来动态地优先级化DMA控制器的请求。在一个实施方案中,延时敏感度被划分成两级,即高级和低级。响应于对应的DMA控制器的缓冲区中可用的空间,优先级状态机可以改变延时敏感度的级别。下面讨论了优先级状态机的更多细节。
此外,DMA控制器252、262、254和264中的每一个包括响应于分配给音频控制器230的时隙的大小来确定请求长度的电路。例如,多个较小的请求可以被组合成在单个时隙内被发送的单个请求。因此,通过动态地改变请求长度,DMA控制器252、262、254和264可以更好地利用所分配时隙来发送请求。
虽然所公开的技术在上面是参照音频控制器230来示出的,应该意识到,所述技术可以应用到计算机系统中的其他控制器,以管理存储器访问请求。
图3A图示数据DMA控制器中确定数据请求长度的电路的一个实施方案。电路310包括多个复用器3110-3170和触发器3180。复用器3110-3160中的每一个的输出是到复用器3170的输入。复用器3170的输出是到触发器3180的输入。触发器3180可以包括延迟触发器(D触发器)。触发器3180的输出是所确定的数据请求长度req_byte_len[7:0]。控制信号(例如max_len[31:0]>=x80)是到复用器3110-3160的输入。
在一个实施方案中,定义三个变量,即REQ_LEN、REM_DESC_LEN和FIFO_SPACE,来确定数据请求长度。REQ_LEN是请求长度。REM_DESC_LEN是要从对应缓冲区中读取/要写到对应缓冲区的数据的剩余字节数。FIFO_SPACE是用于触发读/写请求的可用的缓冲区空间。
REQ_LEN可以根据三个规则来确定。第一,请求长度不能超过该请求被发送所通过的互连的最大隙大小。例如,采用PCI Express协议的互连允许的最大隙大小为128字节,并因此PCI Express系统中的请求长度不能超过128字节。第二,REQ_LEN长度不能超过REM_DESC_LEN。第三,REQ_LEN被设置为基本上等于FIFO_SPACE,而且受上面两个规则的支配。在一个实施方案中,如果FIFO_SPACE是8字节并且8字节模式被使能(enable),那么REQ_LEN是8字节。如果FIFO_SPACE是16字节并且16字节模式被使能,那么REQ_LEN是16字节。如果FIFO_SPACE是32字节,那么REQ_LEN是32字节。如果FIFO_SPACE是64,那么REQ_LEN是64字节。如果FIFO_SPACE是96字节,那么REQ_LEN是96字节。如果FIFO_SPACE是128字节,那么REQ_LEN是128字节。上面的规则可以由图3A中示出的公式来表示。然而,应该意识到,这些具体的规则和附图仅仅是出于举例说明的目的来描述的。其他实施方案可以采用不同的规则和附图来实现所公开的思想。
图3B图示BD DMA控制器中确定BD请求长度的电路的一个实施方案。电路320包括复用器3210和触发器3220。复用器3210的输出被耦合到锁存复用器3210的输出的触发器3220。触发器3220的输出是所确定的BD请求长度bd_req_len[1:0]。在一个实施方案中,BD列表中的每个BD有16字节。因此,BD读的长度可以是16字节的倍数(例如16字节、32字节、48字节等),取决于BD DMA控制器的缓冲区大小。
在一个实施方案中,定义三个变量来确定BD请求的请求长度,即REQ_LEN、REM_BD_LEN和FIFO_SPACE。REQ_LEN是BD请求长度。REM_BD_LEN是要从对应BD列表中读取的剩余BD的数量。REQ_LEN可以根据三个规则来确定。第一,REQ_LEN不能超过该请求被发送所通过的互连的最大隙大小。例如,采用PCI Express协议的互连允许的最大隙大小为128字节,并因此PCI Express系统中的请求长度不能超过128字节。第二,REQ_LEN长度不能超过REM_BD_LEN。第三,REQ_LEN被设置为基本上等于FIFO_SPACE,而且受上面两个规则的支配。具体地,假设每个BD的长度是16字节,并且如果FIFO_SPACE是1BD长,那么REQ_LEN是1BD,即16字节。类似地,如果FIFO_SPACE是2BD长,那么REQ_LEN是32字节;并且如果FIFO_SPACE是3BD长,那么REQ_LEN是48字节。然而,应该意识到,这些具体的规则和附图仅仅是出于举例说明的目的来描述的。其他实施方案可以采用不同的规则和附图来实现所公开的思想。
图3C图示DMA控制器(例如BD DMA控制器或数据DMA控制器)中优先级状态机的一个实施方案的状态图。参照图3C,状态机具有两个状态,即低优先级332和高优先级334。在一个实施方案中,当状态机被重置时,状态机进入低优先级状态332。当请求被DMA控制器发出,或者在下一个时钟周期中要被DMA控制器发出,并且请求已经变得延时敏感时,状态机可以进入高优先级状态334。例如,当BD DMA控制器中的BD缓冲区为空时,BD请求变得延时敏感。当数据DMA控制器的数据缓冲区中的数据低于预先确定的阈值(例如一帧数据)时,读数据请求可以变得延时敏感。当数据DMA控制器的数据缓冲区中的可用空间降到预定的阈值(例如一帧数据)之下时,写数据请求可以变得延时敏感。
在一个实施方案中,当请求被输入/输出控制器200的互连控制器210(参照图2)接受时,状态机从低优先级状态332前进到高优先级状态334。
图3D图示音频控制器中的仲裁器(例如图2中的音频控制器230中的仲裁器240)的一个实施方案。仲裁器340包括两级。第一级具有四个仲裁器3410-3416,并且第二级具有固定优先级仲裁器3420。第一级仲裁器可以包括三个先来先服务(FCFS)仲裁器3410-3416和一个轮转仲裁器3416,用于在具有基本相同的延时优先级的请求之间仲裁。第二级仲裁器3420在第一级仲裁器3410-3416的输出之间仲裁。
在一个实施方案中,BD取仲裁器3410在来自BD DMA控制器(例如图2中的BDDMA控制器252和262)的BD请求之间仲裁。每个BD DMA控制器向BD取仲裁器3410发送请求。例如,如果音频控制器具有八个BD DMA控制器,那么仲裁器3410接收八个请求。
参照图3D,仲裁器3412在来自数据DMA控制器(例如图2的数据DMA控制器254)的具有高延时敏感度的读数据请求(也被称为数据取请求)之间仲裁。例如,在具有四个读数据DMA控制器的音频控制器中,可以存在输入到仲裁器3412的具有高延时敏感度的四个读数据请求。类似地,仲裁器3414在来自数据DMA控制器(例如图2的数据DMA控制器264)的具有高延时敏感度的数据写请求(也被称为数据逐出请求)之间仲裁。在一个实施方案中,具有低延时敏感度的读和写数据请求两者都由轮转仲裁器3416来仲裁。
FCFS仲裁器3410-3414中的每一个可以使用队列来实现,以维持高延时请求的发出的顺序(order)。轮转仲裁器3416可以采用加权轮转(WRR)方案,所述加权轮转方案使用固定优先级仲裁,在被选择的DMA控制器上具有请求掩蔽。例如,当DMA控制器发出请求,所述被发出的请求未被掩蔽,没有高延时请求是活动的,并且没有其他更高优先级的非掩蔽低延时敏感DMA控制器正在请求时,可以选择该DMA控制器。
在一个实施方案中,第一级仲裁器3410-3416每个时钟周期(例如时钟周期X)在DMA控制器之间仲裁,并且在接着的时钟周期(例如时钟周期X+1)选择来自所述DMA控制器中一个的一个请求。第二级仲裁器3420在时钟周期(X+1)选择一个请求。此外,被选择的请求的属性在时钟周期(X+1)被发送到互连控制器210(参照图2)。因此,仲裁器340可以确保请求是挂起的(pending)并且实际上随时准备解除挂起,以防止浪费分配给音频控制器的时隙
图4示出计算机系统400的示例性实施方案。计算机系统400包括中央处理单元(CPU)410、存储器控制器(MCH)420、多个双列直插式存储器模块(DIMM)425、多个存储器设备427、PCI Express图形端口430、输入/输出控制器(ICH)440、多个通用串行总线(USB)端口445、音频编码器-解码器460、超级输入/输出(超级I/O)450和固件中心(firmware hub,FWH)470。
在一个实施方案中,CPU 410、PCI Express图形端口430、DIMM 425和ICH 440被耦合到MCH 420。在MCH 420和ICH 440之间的链路435可以包括DMI链路。MCH 420通过DIMM 425从存储器设备427路由数据和把数据路由到存储器设备427。存储器设备427可以包括各类存储器,例如动态随机访问存储器(DRAM)、同步动态随机访问存储器(SDRAM)、双倍数据率(DDR)SDRAM或闪存存储器。在一个实施方案中,DIMM425中的每一个通过DIMM连接器(未示出)被安装在同一主板(未示出)上,以便耦合到MCH 420。在一个实施方案中,USB端口445、音频编码器-解码器460和超级I/O 450被耦合到ICH 440。超级I/O 450可以进一步被耦合到固件中心470、软盘驱动器451、诸如键盘、鼠标等的数据输入设备453、多个串行端口455和多个并行端口457。
在一个实施方案中,ICH 440包括音频控制器442,所述音频控制器442包括仲裁器、多个BD DMA控制器以及多个外向和内向数据DMA控制器。响应于来自CPU 410的指令,DMA控制器发出访问存储器设备的请求。所述请求可以包括数据读/写请求和BD读请求。DMA控制器可以动态改变属性。响应于所述属性,仲裁器可以在请求之间进行仲裁以选择请求。上面已经讨论了DMA控制器和仲裁器的一些实施方案的细节。
注意到,图4中示出的组件和相关联的硬件的一些和全部可以在计算机系统400的各种实施方案的方式被用到。然而,应该意识到,计算机系统的其他配置可以包括一个或更多个未在图4中示出的额外的设备。此外,应该意识到,所公开的技术适用于不同类型的系统环境,例如多分支(multi-drop)环境或点对点环境。同样地,所公开的技术适用于移动和桌面计算系统两者。
前面的讨论仅仅描述了本发明的一些示例性实施方案。从这样的讨论、附图和权利要求书中,本领域技术人员将容易地认识到,可以做出各种修改而不背离所附权利要求书的精神和范围。因此说明书被认为是示例性而非限制性的。

Claims (20)

1.一种用于管理存储器访问请求的方法,包括:
动态地修改访问一个或更多个存储器设备的多个请求中每一个的一个或更多个属性,其中动态地修改所述一个或更多个属性的操作包括响应于所述多个请求中每一个的延时敏感度,动态地优先级化所述多个请求,其中所述多个请求中每一个的所述延时敏感度响应于储存对应请求的缓冲区中的可用空间而发生改变;以及
基于所述一个或更多个属性在所述多个请求之间进行仲裁,以选择要在时隙中发送到所述一个或更多个存储器设备的请求。
2.如权利要求1所述的方法,还包括响应于所述时隙的大小,动态地改变所述多个请求中每一个的长度。
3.如权利要求1所述的方法,其中所述多个请求包括一个或更多个数据读请求、一个或更多个数据写请求以及一个或更多个缓冲区描述符读请求。
4.如权利要求1所述的方法,还包括通过数字多媒体互连向所述存储器设备发送所选择的请求。
5.如权利要求1所述的方法,还包括响应于来自处理器的指令,使用多个直接存储器访问控制器来发出所述多个请求。
6.一种用于管理存储器访问请求的装置,包括:
多个存储器访问控制器,所述多个存储器访问控制器发出访问存储器设备的多个请求,其中所述多个请求的一个或更多个属性是动态可改变的,其中所述多个存储器访问控制器中的每一个还包括暂时地储存一个或更多个请求的缓冲区、动态地优先级化所述一个或更多个请求的优先级状态机、以及确定所述一个或更多个请求的长度的请求长度确定电路,其中所述优先级状态机基于所述多个存储器访问控制器中每一个的所述缓冲区中的可用空间优先级化所述多个请求;以及
第一仲裁器,所述第一仲裁器基于所述多个请求的所述一个或更多个属性在所述多个请求之间进行仲裁,以选择请求。
7.如权利要求6所述的装置,其中所述请求长度确定电路包括多个复用器。
8.如权利要求7所述的装置,其中所述请求长度确定电路还包括耦合到所述多个复用器的一个或更多个触发器。
9.如权利要求6所述的装置,其中所述第一仲裁器包括多个第一级仲裁器和一个第二级仲裁器,所述多个第一级仲裁器的输出被耦合到所述第二级仲裁器的输入。
10.如权利要求9所述的装置,其中所述多个第一级仲裁器包括多个先来先服务仲裁器。
11.如权利要求9所述的装置,其中所述第二级仲裁器包括固定优先级仲裁器。
12.一种用于管理存储器访问请求的系统,包括:
多个动态随机访问存储器设备;
一个或更多个音频编码器-解码器;以及
输入/输出控制器,所述输入/输出控制器被耦合在所述动态随机访问存储器设备和所述一个或更多个音频编码器-解码器之间,所述输入/输出控制器具有音频控制器,所述音频控制器包括
多个存储器访问控制器,所述多个存储器访问控制器发出访问所述动态随机访问存储器设备中的一个或更多个的多个请求,其中所述多个请求的一个或更多个属性是动态可改变的;以及
第一仲裁器,所述第一仲裁器基于所述多个请求的所述一个或更多个属性在所述多个请求之间进行仲裁,以选择请求。
13.如权利要求12所述的系统,其中所述多个存储器访问控制器中的每一个还包括暂时地储存一个或更多个请求的缓冲区、动态地优先级化所述一个或更多个请求的优先级状态机、以及确定所述一个或更多个请求的长度的请求长度确定电路。
14.如权利要求13所述的系统,其中所述请求长度确定电路包括:
多个复用器;以及
耦合到所述多个复用器的一个或更多个触发器。
15.如权利要求12所述的系统,其中所述第一仲裁器包括多个第一级仲裁器和一个第二级仲裁器,所述多个第一级仲裁器的输出被耦合到所述第二级仲裁器的输入。
16.如权利要求15所述的系统,其中所述多个第一级仲裁器包括多个先来先服务仲裁器。
17.如权利要求15所述的系统,其中所述第二级仲裁器包括固定优先级仲裁器。
18.如权利要求13所述的系统,其中基于所述多个存储器访问控制器中每一个的所述缓冲区中的可用空间,所述优先级状态机优先级化所述多个请求。
19.如权利要求12所述的系统,还包括:
耦合到所述动态随机访问存储器设备的存储器控制器,以及
数字多媒体互连,所述数字多媒体互连被耦合在所述存储器控制器和所述输入/输出控制器之间,其中所选择的请求通过所述数字多媒体互连和所述存储器控制器被发送到所述动态随机访问存储器设备中的一个或更多个。
20.如权利要求19所述的系统,还包括被耦合到所述存储器控制器的中央处理单元,所述中央处理单元向所述输入/输出控制器发送指令以导致所述多个存储器访问控制器发出所述多个请求。
CNB2005800089122A 2004-01-20 2005-01-10 管理存储器访问请求的方法和装置 Expired - Fee Related CN100476773C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/762,037 US20050160188A1 (en) 2004-01-20 2004-01-20 Method and apparatus to manage memory access requests
US10/762,037 2004-01-20

Publications (2)

Publication Number Publication Date
CN1934549A CN1934549A (zh) 2007-03-21
CN100476773C true CN100476773C (zh) 2009-04-08

Family

ID=34750317

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800089122A Expired - Fee Related CN100476773C (zh) 2004-01-20 2005-01-10 管理存储器访问请求的方法和装置

Country Status (6)

Country Link
US (1) US20050160188A1 (zh)
KR (1) KR100841139B1 (zh)
CN (1) CN100476773C (zh)
DE (1) DE112005000219T5 (zh)
TW (1) TWI312114B (zh)
WO (1) WO2005073864A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353317B2 (en) * 2004-12-28 2008-04-01 Intel Corporation Method and apparatus for implementing heterogeneous interconnects
US7716388B2 (en) * 2005-05-13 2010-05-11 Texas Instruments Incorporated Command re-ordering in hub interface unit based on priority
US7660926B2 (en) * 2005-11-16 2010-02-09 Sun Microsystems, Inc. Apparatus and method for a core for implementing a communications port
US7685346B2 (en) * 2007-06-26 2010-03-23 Intel Corporation Demotion-based arbitration
KR100981017B1 (ko) * 2008-12-08 2010-09-07 재단법인대구경북과학기술원 정적 태스크 정의 기능을 가진 시스템을 위한 우선순위 재정의 및 대기큐 관리 방법과 상기 방법을 실행하는 시스템
KR20120068765A (ko) * 2009-07-17 2012-06-27 가부시끼가이샤 도시바 메모리 관리 장치
US8295287B2 (en) * 2010-01-27 2012-10-23 National Instruments Corporation Network traffic shaping for reducing bus jitter on a real time controller
US8285892B2 (en) 2010-05-05 2012-10-09 Lsi Corporation Quantum burst arbiter and memory controller
US8412870B2 (en) * 2010-05-25 2013-04-02 Lsi Corporation Optimized arbiter using multi-level arbitration
US8667197B2 (en) 2010-09-08 2014-03-04 Intel Corporation Providing a fine-grained arbitration system
JP2013106166A (ja) * 2011-11-14 2013-05-30 Sony Corp クロックゲーティング回路およびバスシステム
CN103678199B (zh) * 2012-09-26 2017-05-10 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN104298628B (zh) * 2014-09-30 2017-12-29 中国电子科技集团公司第三十八研究所 一种用于并发访问的数据存储器仲裁电路及仲裁方法
CN105988953B (zh) * 2015-02-12 2019-03-12 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
KR101689458B1 (ko) * 2015-03-16 2016-12-23 한양대학교 산학협력단 반도체 메모리 장치 및 반도체 메모리 장치 제어 방법
US10725931B2 (en) * 2018-08-22 2020-07-28 Western Digital Technologies, Inc. Logical and physical address field size reduction by alignment-constrained writing technique
US10965613B2 (en) * 2019-01-10 2021-03-30 Vmware, Inc. Multi-pipe bandwidth control in hosted systems
US11481341B2 (en) * 2020-10-29 2022-10-25 EMC IP Holding Company, LLC System and method for dynamically adjusting priority-based allocation of storage system resources

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796961A (en) * 1994-12-19 1998-08-18 Advanced Micro Devices, Inc. Heuristic bus access arbiter
US6266718B1 (en) * 1998-10-14 2001-07-24 Micron Technology, Inc. Apparatus for controlling data transfer operations between a memory and devices having respective latencies
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546548A (en) * 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
WO1999034293A1 (en) * 1997-12-30 1999-07-08 Micron Technology, Inc. Accelerated graphics port for multiple memory controller computer system
US6757795B2 (en) * 2001-04-03 2004-06-29 International Business Machines Corporation Apparatus and method for efficiently sharing memory bandwidth in a network processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796961A (en) * 1994-12-19 1998-08-18 Advanced Micro Devices, Inc. Heuristic bus access arbiter
US6266718B1 (en) * 1998-10-14 2001-07-24 Micron Technology, Inc. Apparatus for controlling data transfer operations between a memory and devices having respective latencies
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Also Published As

Publication number Publication date
US20050160188A1 (en) 2005-07-21
DE112005000219T5 (de) 2006-12-07
KR100841139B1 (ko) 2008-06-24
TWI312114B (en) 2009-07-11
WO2005073864A1 (en) 2005-08-11
TW200534102A (en) 2005-10-16
KR20060130121A (ko) 2006-12-18
CN1934549A (zh) 2007-03-21

Similar Documents

Publication Publication Date Title
CN100476773C (zh) 管理存储器访问请求的方法和装置
US5960468A (en) Asynchronous memory interface for a video processor with a 2N sized buffer and N+1 bit wide gray coded counters
US5987574A (en) Bank arbitration for SDRAM memory control
US6393506B1 (en) Virtual channel bus and system architecture
JP4926963B2 (ja) 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
EP1403773B1 (en) Resource management device
US7596647B1 (en) Urgency based arbiter
CN102414671B (zh) 对于不同源的分级内存仲裁技术
US7490185B2 (en) Data processing system, access control method, and access control device
CN111742305A (zh) 调度具有不统一等待时间的存储器请求
EP2558944B1 (en) Methods of bus arbitration for low power memory access
EP1820107A2 (en) Streaming memory controller
US20200133905A1 (en) Memory request management system
JP5578713B2 (ja) 情報処理装置
KR20210038313A (ko) 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US11243716B2 (en) Memory system and operation method thereof
KR20020089428A (ko) 개선된 메모리 요청 중재 메커니즘을 갖는 메모리컨트롤러를 포함하는 버스 브릿지
CN111684430A (zh) 支持同一信道上对不统一等待时间的存储器类型的响应
CN1996276A (zh) 多处理器系统中的数据传输
JP2008544359A (ja) メモリーコントローラ
US7664907B1 (en) Page stream sorter with dynamic binning
US10684965B2 (en) Method to reduce write responses to improve bandwidth and efficiency
CN112286335B (zh) 主设备以及控制其的系统和方法
US7552252B2 (en) Memory interface circuit and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090408

Termination date: 20160110

CF01 Termination of patent right due to non-payment of annual fee