CN101539899A - Usb控制器以及缓冲存储器控制方法 - Google Patents
Usb控制器以及缓冲存储器控制方法 Download PDFInfo
- Publication number
- CN101539899A CN101539899A CN200910128860A CN200910128860A CN101539899A CN 101539899 A CN101539899 A CN 101539899A CN 200910128860 A CN200910128860 A CN 200910128860A CN 200910128860 A CN200910128860 A CN 200910128860A CN 101539899 A CN101539899 A CN 101539899A
- Authority
- CN
- China
- Prior art keywords
- usb
- buffer
- outer periphery
- memory buffer
- main frame
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
一种USB控制器以及缓冲存储器控制方法。根据本发明的一个方面的USB控制器是合并在USB设备中的USB控制器,该USB控制器包括:RAM,存储通过USB端口或CPU总线而传输的数据;以及寄存器,保持用于确定将RAM的一部分分配给用于主机功能的主机用区和用于外围设备功能的外围设备用区中的哪一个的设置。
Description
技术领域
本发明涉及USB控制器以及缓冲存储器控制方法。
背景技术
近年来,其中安装有USB(通用串行总线)的设备(下文称为USB设备)已被广泛使用。例如,USB设备包括个人计算机、打印机、数字照相机以及USB存储器。通过USB接口将USB设备连接至另一USB设备,用于执行遵循USB标准的数据传输。在USB中执行数据传输的过程中,一个设备用作主机(例如,个人计算机等),而其他设备用作外围设备(诸如USB存储器的外围设备等)。在设备之间传输的数据临时存储在提供在USB控制器中的缓冲存储器中。
例如,在应用于嵌入式设备的USB控制器中,将管道区(pipe region)分配至缓冲存储器,并且该管道区的存储大小根据连接的USB设备而变化。日本未审查专利申请公开No.2004-349836(专利文献1)公开了一种设备,该设备使得能够改变由管道区分配的划分块。在专利文献1中公开的数据传输控制设备中,缓冲控制器将在分组缓冲器中提供的划分块的地址改变成与管道区的分配相对应的地址。
发明内容
此外,专利文献1公开了已经连接至主机设备的外围设备提供有主机功能(第0005段)。这使得能够通过USB连接外围设备。因此,根据专利文献1,主机控制器和外围设备控制器被排他性地切换(第0047段)。因此,在专利文献1中公开的设备中,不能同时使用主机功能和外围设备功能。
在USB设备中,使用主机功能和外围设备功能中的一个,或使用其两者。具体而言,有三种类型的USB设备:(1)仅使用主机功能的USB设备(USB主机设备);(2)仅使用外围设备功能的USB设备(USB外围设备);以及(3)同时使用主机功能和外围设备功能的USB设备(组合设备)。总之,根据USB设备的类型,确定USB设备是用作主机、用作外围设备还是其两者。例如,PC用作主机设备、USB存储器用作外围设备,而打印机用作组合设备。
根据USB设备的类型设计和制造用于USB控制器的集成电路(LSI)导致成本上升。因此,需要包括主机控制器和外围设备控制器两者并且能够同时使用主机功能和外围设备功能两者的USB控制器。
在制造这种USB控制器中,需要为主机控制器和外围设备控制器的每个提供缓冲存储器。由于为它们的每个提供缓冲存储器,可能不能高效率地使用缓冲存储器。总之,当提供有用于主机的缓冲存储器和用于外围设备的缓冲存储器的USB控制器被合并在USB主机设备中时,不能使用用于外围设备的缓冲存储器。另一方面,当将USB控制器合并在USB外围设备中时,则不能使用用于主机的缓冲存储器。根据连接状态,将缓冲器切换为用于主机或用于外围设备。这样,在能够同时使用主机功能和外围设备功能的USB设备中,不能高效率地使用缓冲存储器。
本发明的实施例的第一示例性方面是一种合并在USB设备中的USB控制器,该USB控制器包括缓冲存储器,其存储通过USB端口或CPU总线传输的数据;以及保持部件,其保持用于确定将缓冲存储器的一部分分配给用于主机功能的主机用区和用于外围设备功能的外围设备用区中的哪一个的设置。因此,根据USB设备,能够改变缓冲存储器的分配。这样,能够高效率地使用缓冲存储器。
本发明的实施例的第二示例性方面是一种缓冲存储器控制方法,该方法控制提供在被合并在USB设备中的USB控制器中的缓冲存储器,该方法包括保持用于根据合并所述控制器的USB设备分配缓冲存储器的设置,并且根据所述设置将所述缓冲存储器的一部分分配给用于主机功能的主机用区和用于外围设备功能的外围设备用区中的一个。因此,缓冲存储器的分配能够根据USB设备而变化。这样,能够高效率地使用缓冲存储器。
根据本发明,可以提供一种使得能够高效率地使用缓冲存储器的USB控制器和缓冲存储器控制方法。
附图说明
根据以下结合附图对某些示例性实施例的描述,本发明的上述和其他示例性方面、优势以及特征将更加明显,其中:
图1是示出了根据本发明的示例性实施例的USB设备的配置的框图;
图2示出了根据本发明的示例性实施例的USB设备中的存储器的映射状态;
图3示出了根据本发明的示例性实施例的USB设备中的存储器的映射状态;
图4示出了根据本发明的示例性实施例的USB设备中的存储器的映射状态;以及
图5是示出了根据本发明的示例性实施例的缓冲存储器控制方法的流程图。
具体实施方式
现在将描述本发明能够应用到的示例性实施例。下列描述将是出于解释本发明的示例性实施例的目的做出的,并且本发明不限于下文的示例性实施例。为了清楚,将根据需要省略并且简化下文描述的某些部分。在不脱离本发明的精神的情况下,本领域的技术人员能够容易地改变、增加或修改以下示例性实施例的每个要素。在所有附图中,相同的参考符号赋予相同的组件,并且适当的省略其描述。
根据本发明的USB控制器被合并在USB设备中。USB控制器具有缓冲存储器。缓冲存储器存储通过USB端口或CPU总线传输的数据。此外,USB控制器包括保持部件。保持部件保持用于确定将缓冲存储器的一部分分配给用于主机功能的主机用区和用于外围设备功能的外围设备用区中的哪一个的设置。
USB可应用于各种设备,例如,USB被安装在诸如PDA(个人数字助理)、复印机、数字照相机、打印机、USB存储器、个人计算机(PC)、数字家电、数字电视、数字记录器等的各种设备中。由此可以提供USB接口,并且执行遵循USB标准的数据通信。这种USB设备包括控制数据通信的USB控制器。
根据功能和应用,确定USB设备是用作USB主机设备、USB外围设备还是用作组合设备(同时使用主机和外围设备功能的设备)。此处术语“同时”不限于精确地同时,而是表示下列一种状态,在该种状态中,在一个USB设备中的一个或多个USB端口用于主机功能,同时其他USB端口用于外围设备功能,反之亦然。例如,打印机等是同时使用主机功能和外围设备功能的组合设备。例如,打印机在连接至PC时作为外围设备,并且在将数字照相机连接至另一端口时用作主机。总之,在将PC和数字照相机同时连接至打印机的状态中,同时运行主机功能和外围设备功能。因此,打印机的USB端口用于主机功能或外围设备功能。另一方面,USB存储器用作USB外围设备,并且PC用作USB主机设备。这意味着USB存储器仅用作USB外围设备,并且PC仅用作USB主机设备。
缓冲存储器是由USB控制器的用户,例如制造USB设备的制造商,根据USB设备的类型设置的。当USB控制器的用户在USB设备中安装用于USB的集成电路时,缓冲存储器的分配被设置。例如,将缓冲存储器的一部分设置为能够用于主机和外围设备功能的区。在组合设备的情形下,缓冲存储器的一部分被分配给外围设备用区,并且缓冲存储器的剩余部分被分配给主机用区。另一方面,在USB主机设备的情形下,整个区被分配给主机用区。这样,根据USB设备改变缓冲存储器的分配设置。因此,能够高效率地使用缓冲存储器。总之,因为将适当大小的存储区分配给外围设备功能和主机功能,所以能够以高速度执行数据写入和读取。
将参考图1描述根据本发明的示例性实施例的用于USB的LSI(大规模集成电路)。图1是示意性地示出了USB设备的配置的框图。USB设备10包括CPU(中央处理单元)11、USB控制器12以及系统存储器13。通过总线将它们所有都连接。USB控制器12执行遵循USB标准的数据通信。需要注意的是,USB控制器12、CPU 11以及系统存储器13可以被集成在LST中。不必说,可以将USB控制器12、CPU 11以及系统存储器13分离到不同的芯片中。
CPU 11控制USB设备10的整个操作。系统存储器13存储用于控制所需的程序和设置值。例如,CPU 11读取出系统存储器13的程序或设置值,以控制USB控制器12。此外,USB控制器12是提供用于USB主机或USB外围设备的接口的USB控制电路。因此,使得与另一USB设备的连接是可能的。
接下来,将描述USB控制器12的配置。USB控制器12包括CPU I/F(接口)21、USB I/F 23、USB端口24、主机控制器25、缓冲控制器26、寄存器27、RAM 28以及外围设备控制器29。
CPU I/F 21是用于传输/接收数据到/从CPU11的接口。因此,通过CPU I/F 21将USB控制器12连接至CPU11。这样,CPU11控制USB控制器12。
USB I/F 23提供用于执行与另一USB设备的连接的USB端口24。USB设备或USB电缆被连接至USB端口24。更确切地说,通过将USB设备或USB电缆插入USB端口24使得能够进行数据通信。在图1中,三个USB端口24被设置在USB I/F 23中。三个USB端口24中的两个由USB端口24a指示,并且剩余的一个由USB端口24b指示。USB端口24a是主机专用端口,并且USB端口24b是能够切换主机和外围设备的端口。需要注意的是,USB设备10的端口数量不限于三个,而是可以是一个、两个、四个或更多。根据合并了USB控制器12的USB设备10来设置USB端口24。也可以由无线USB来执行数据通信。
主机控制器25通过主机功能控制数据通信。换言之,当将USB外围设备连接至USB端口24时,USB设备10用作主机。当将外围设备连接至USB端口24时,主机控制器25控制USB总线上的数据通信。因此,USB设备10用作主机。
RAM 28是存储USB通信的数据的缓冲存储器。RAM 28临时存储从另一USB设备传输的数据。此外,RAM 28临时存储将要传输至另一USB设备的数据。
将作为缓冲存储器的RAM 28划分成任何所需的尺寸。将每个所划分的区称为块。将块号码预先分配至具有任何所需尺寸的每个块。块号码被固定。基于诸如管道区的大小和块号码的信息,缓冲控制器26管理到RAM 28的访问目的地,并且将RAM 28作为链来管理。总之,给予每个块的特定块号码是地址,其用于链管理。更确切地说,块号码和链接目的地块号码被存储在链地址存储缓冲器中,同时块号码和链接目的地块号码彼此相对应。RAM 28存储通过USB端口24或CPU总线传输的数据。
外围设备控制器29通过外围设备功能来控制数据通信。更确切地说,当将USB主机设备连接至USB端口24时,合并了USB控制器12的USB设备10用作外围设备。当主机设备被连接至USB端口24时,外围设备控制器29控制数据通信。因此,合并了USB控制器12的USB设备10用作外围设备。此外,寄存器30设置在外围设备控制器29中。下文将描述寄存器30。
仲裁电路31防止主机控制器25和外围设备控制器29在同一时间访问RAM 28。例如,当主机控制器25访问RAM 28时,仲裁电路31禁止外围设备控制器29对RAM 28的访问。当外围设备控制器29访问RAM28时,仲裁电路31禁止主机控制器25对RAM 28的访问。这样,即使利用同时使用主机功能和外围设备功能的组合设备,主机控制器25和外围设备控制器29也能防止在同一时间访问RAM 28。
如上所述,USB控制器12提供有主机控制器25和外围设备控制器29。因此,USB控制器12能够被合并在(1)仅使用主机功能的USB设备(USB主机设备)、(2)仅使用外围设备功能的USB设备(USB外围设备)以及(3)同时使用主机功能和外围设备功能的USB设备(组合设备)的任何一个中。
主机控制器25提供有缓冲控制器26。缓冲控制器26控制作为缓冲存储器的RAM 28。例如,缓冲控制器26存储块号码,该块号码用于通过链来管理RAM 28。此外,缓冲控制器26存储链管理需要的设置。例如,缓冲控制器26具有链地址存储缓冲器。缓冲控制器26存储块号码和链接目的地块号码,同时使得块号码和链接目的地块号码彼此相对应。
USB控制器12还提供有寄存器27。寄存器27保持用于确定将RAM28的一部分分配给主机用区和外围设备用区中的哪一个的设置。总之,寄存器27是用于保持用于确定将分配哪个控制器的设置的保持部件。根据保持在寄存器27中的值,RAM 28的一部分区用作主机用区或外围设备用区。主机控制器25使用主机用区,并且外围设备控制器29使用外围设备用区。换言之,外围设备控制器29不能使用主机用区,并且主机控制器25不能使用外围设备用区。根据寄存器27中的设置,包括在RAM 28中的一部分块被分配给主机用区和外围设备用区中的一个。更确切地说,当寄存器27的值是1时,将RAM 28的一部分分配给外围设备用区。另一方面,当寄存器27的值是0时,将RAM 28的整个区分配给主机用区。
通过CPU 11、软件等来执行寄存器27的设置。例如,CPU 11设置寄存器27,并且该区的设置被相应地存储在寄存器27中。更确切地说,当USB控制器12被合并在USB设备10时,USB控制器12的用户(例如,制造USB设备的制造商)执行寄存器27的设置。更确切地说,在USB控制器12的寄存器27中设置USB端口24用于主机控制器25和外围设备控制器29中的哪一个控制器。根据该设置,确定RAM 28的所述部分将被分配给主机用区和外围设备用区中的哪一个。需要注意的是,设置寄存器27的方法没有特别限制。
接下来,将参考图2至图4描述RAM 28的分配。图2至图4示出了RAM 28的映射状态。在图2至图4中,假设RAM 28被划分成12部分。在RAM 28中存在从块号码0至块号码11的块。不必说,RAM 28划分数目没有具体限制。
图2示出了以下情况,在该情况中,包括在RAM 28中的所有块用作主机功能,这意味着RAM 28的整个部分是主机用区28a。如图2中所示,表示块号码的位与链接目的地块号码相对应。因此存储该链地址。通过该链地址,将RAM 28的块作为链进行管理。换言之,在将数据写入链接源块之后,然后将数据写入链接目的地块。这样,可以根据链接目的地块号码连续地使用这些块。
在图2中的示例中,所有块是空区。因此,空区的顶部块是块号码0的块,并且末尾块是块数目11的块。总之,空区的顶部块号码是0,并且末尾块号码是11。这样,从块0至块11连续地使用这些块。块号码0的链接目的地地址是块号码1,并且块号码1的链接目的地地址是块号码2。相似地,也将下一个块号码保持作为用于其他块的链接目的地块号码。此外,在作为末尾块的块号码11中,标记表示下一块号码无效(无效标记)。例如,无效标记用作表示链的末尾的标记。无效标记起到将管道区链和空区链分离的作用。由此,将链地址存储在链地址存储缓冲器中。
此外,当RAM 28用于主机功能时,当与外围设备执行通信时要保护管道区。可以通过软件或硬件来保护管道区。管道区是为USB主机与USB外围设备(端点)的通信暂时存储传输数据的地方。当分配管道区时,RAM 28的一部分块被分配给管道区。例如,缓冲控制器26存储空区的顶部块和末尾块。从空区的顶部块将这些块连续地分配给管道区,并且使得每个管道区的末尾块无效。此外,每个管道区的顶部块号码被存储。通过改变上述的链接目的地块号码,能够轻易地管理管道区的安全。此外,当开启管道区时,空区的末尾块的链接目的地块号码成为将要被开启的管道区的顶部块。通过改变上述的链接目的地块号码,能够轻易地管理该管道区的开启。因此,能够轻易地进行包括在主机用区28a中的每个块的管理。
接下来,将参考图3描述在其中RAM 28的一部分用于主机功能并且剩余部分用于外围设备功能的情形。在图3中,块0至块4被分配给外围设备功能,并且块5至块11被分配给主机功能。总之,块0至块4用作外围设备用区28b,并且块5至块11用作主机用区28a。
与图2相似,将包括在主机用区28a的块5至块11作为链进行管理。简言之,块5是空区的顶部块,并且块11是空区的末尾块。然后,关于块5至块10,链接目的地块号码是下一个块号码。此外,关于作为主机用区28a的末尾块的块11,链接目的地块号码无效。当管道区被分配给空区时,链接目的地块号码以与上述相同的方式来变化。
在包括在外围设备用区28b中的块0至块4中,所有链接目的地块号码是无效的。换言之,外围设备用区28b不作为链进行管理,因此,链管理的链被切断。在外围设备用区28b中,用于指定每个端点(end point)所使用的区的寄存器30被安装在外围设备控制器29中,并且通过软件而被设置。然后,根据该设置,确定在USB数据通信中的每个端点所使用的缓冲区。
例如,当主机功能和外围设备功能被同时使用时,一个USB端口24b由外围设备控制器29所使用,并且剩余两个USB端口24a由主机控制器25所使用。总之,当在一个USB设备中共同地使用外围设备功能和主机功能时,外围设备控制器29和主机控制器25共享RAM 28。因此,RAM28的一部分作为外围设备用区28b,并且剩余部分作为主机用区28a。外围设备用区28b被优先保护,而剩余部分是主机用区28a。因此,即使当管道区的分配被改变时,外围设备用区28b中无变化。总之,在对应于外围设备用区28b的块中,链接目的地地址是无效的。
如上所述,RAM 28的至少一部分能够用于外围设备用区28b和主机用区28a两者。换言之,根据寄存器27的设置,块0至块4是外围设备用区28b和主机用区28a中的一个。用于它们之一的区在RAM 28中被保护,并且根据寄存器27的设置,其被设置为主机用区28a和外围设备用区28b的任何之一。
接下来,将参考图4描述在其中将整个RAM 28分配给外围设备功能的情况。在图4中,将块0至块11分配给外围设备功能。总之,所有块是外围设备用区28b。在包括在外围设备用区28b中的块0至11中,所有链接目的地块号码是无效的。在这种情形下,链接目的地块号码无变化。
接下来,将参考图5描述根据本发明的示例性实施例的缓冲存储器控制方法。图5是示出了根据本发明的示例性实施例的缓冲存储器控制方法的流程图。
首先,设置使用USB端口24b的控制器(步骤S101)。更确切地说,设置主机控制25使用USB端口24b或外围设备控制器29使用USB端口24b。更具体地说,三个USB端口24中的一个是能够由主机控制器25和外围设备控制器29中的一个所使用的USB端口24b,并且另外两个USB端口24a仅由主机控制器25使用。然后,设置USB端口24b由主机控制器25或由外围设备控制器29所使用。此外,设置主机控制器25是否使用USB端口24a。
通过设置寄存器27,确定USB端口24b被用于主机还是外围设备。而且,通过设置寄存器27,确定主机控制器25是否使用USB端口24a。在该示例中,根据合并USB控制器12的USB设备,进行设置。该设置由USB控制器12的用户更改。将设置值写入在USB控制器12的用户侧的寄存器27以及寄存器30中。一旦执行了该设置,RAM 28的区的分配则被固定。根据该设置,将以下列步骤进行确定。此外,用于寄存器30的设置可以在该步骤执行。寄存器27和寄存器30的每个可以由多个寄存器形成。
接下来,通过参考寄存器27,确定主机控制器25是否使用USB端口24b(步骤S102)。当主机控制器25使用USB端口24b(在步骤S102中为Y)时,RAM 28的所有块是主机用区28a。换言之,该状态如图2中所示。
当使用USB端口24b的控制器不是主机控制器25(在步骤S102中为N)时,换言之,当外围设备控制器29使用USB端口24b时,确定外围设备控制器29和主机控制器25是否被同时使用(步骤S103)。总之,确定主机控制器25是否使用USB端口24a。通过参考寄存器27,确定外围设备控制器29和主机控制器25是否均被使用。
当USB设备使用外围设备控制器29和主机控制器25两者时(在步骤S103中为Y),在RAM 28中分配主机用区28a和外围设备用区28b。因此,该状态如在图3中所示。例如,作为组合设备的打印机示出了这样的设置。在这种情形下,主机控制器25使用USB端口24a,并且外围设备控制器29使用USB端口24b。
当将USB控制器12合并在组合设备中时,分配给外围设备用区28b的存储器大小是预先确定的。换言之,由USB控制器12的制造商作为USB控制器12的标准确定被分配给外围设备用区28b的存储器大小。例如,当RAM 28的存储器大小是1KB时,将该1KB的0.2KB分配给外围设备用区28b。不必说,外围设备用区28b的存储器大小没有具体限制。应注意的是,分配给外围设备用区28b的存储器大小可以由USB控制器12的用户设置。例如,当在步骤S101中进行设置时,指定分配给外围设备用区28b的块的块号码。总之,USB控制器12的用户能够根据USB设备来最优化分配给外围设备用区28b的存储器大小。
接下来,将描述当在步骤S103中的确定是N时,换言之,外围设备控制器29和主机控制器25未被同时使用的情形。在这种情形下,USB控制器12被合并在USB外围设备中。因此,仅USB端口24b被使用,并且USB端口24a未被使用。然后,通过参考寄存器30,确定外围设备控制器29是否也使用主机用区28a(步骤S104)。当外围设备控制器29不使用主机用区28a时,本应已经是主机用区28a的块变成未分配的区28c。这样,未用作主机用区28a的区变成未分配的区。
另一方面,当外围设备控制器29也使用主机用区28a时,将分配给主机用区28a的块用作外围设备用区28b。因此,所有块被用作外围设备用区28b,并且该状态在图4中示出。例如,作为USB外围设备的USB存储器等可以类似这样进行设置。这样,本应已经成为未分配的区28c的块能够被用作外围设备用区28b。因此,能够高效率地使用缓冲存储器,并且还能够增加USB外围设备功能。
在该示例性实施例中,根据寄存器30的设置,确定是否将主机用区28a用作外围设备用区28b。例如,当寄存器30是1时,将作为主机用区28a的区用作外围设备用区28b,并且,因此,将RAM 28的整个区用作外围设备用区28b。而且,当寄存器30是0时,将RAM 28的一部分用作外围设备用区28b,并且剩余部分是未分配的区28c。这样,在寄存器30中设置主机用区28a是否用作外围设备用区28b。
如上所述,将USB应用于各种类型的设备。因此,作为缓冲存储器的RAM 28的分配根据其中合并了USB控制器12的USB设备而变化。此外,在组合设备的情况下,优先保护外围设备用区28b。然后,将剩余区分配给主机用区28a。因此,即使在主机用区28a中增加或开启了管道区时,也能够管理地址,而无须关注外围设备区。然后,通过由缓冲控制器26将主机用区作为链进行管理,即使当由于管道区的增加或开启而导致缓冲器的分配区变成部分时,剩余区也能够被有效使用。而且,能够减少用于由使用USB控制器的用户来管理缓冲器的负荷。
此外,不需要根据USB设备10来设计或制造集成电路。换言之,即使当具有相同配置的USB控制器12被合并在不同USB设备10中时,能够高效率地使用缓冲存储器。因此,USB控制器12的可用范围能够变得更广,并且能够提高其一般性。此外,不需要为主机控制器25和外围设备控制器29的每个分离地提供缓冲存储器。
虽然已经以几个示例性实施例的方式对本发明作了描述,本领域的技术人员应当意识到,在所附的权利要求的精神和范围内,能够以各种修改的实施方式实现本发明,并且本发明不限于上述的示例。
此外,权利要求的范围不受上述示例性实施例的限制。
另外,应注意的是,即使在以后的审查期间作了修改,本申请人的目的是包含所有权利要求要素的等效物。
Claims (10)
1.一种合并在USB设备中的USB控制器,所述USB控制器包括:
缓冲存储器,所述缓冲存储器存储通过USB端口或CPU总线传输的数据;以及
保持部件,所述保持部件保持用于确定将所述缓冲存储器的一部分分配给用于主机功能的主机用区和用于外围设备功能的外围设备用区中的哪一个的设置。
2.根据权利要求1所述的USB控制器,其中,当将所述USB控制器合并在能够同时使用所述主机功能和所述外围设备功能的USB设备中时,将所述缓冲存储器的所述部分分配给所述外围设备用区,并且将所述缓冲存储器的剩余部分分配给所述主机用区。
3.根据权利要求1所述的USB控制器,其中,通过保持在所述保持部件中的所述设置所分配的所述外围设备用区的存储器大小是能够被改变的。
4.根据权利要求1所述的USB控制器,其中,所述缓冲存储器被划分成多个块,并且使用附到所述块的每个的块号码通过链管理来管理所述缓冲存储器。
5.根据权利要求4所述的USB控制器,其中
根据分配给所述主机用区的所述块中的所述块号码,设置在所述链管理中的链接目的地块;以及
在分配给所述外围设备用区的所述块中,所述链管理中的所述链接目的地块被设置为无效。
6.一种控制合并在USB设备中的USB控制器中提供的缓冲存储器的缓冲存储器控制方法,所述方法包括:
保持用于根据合并所述控制器的所述USB设备分配所述缓冲存储器的设置;以及
根据所述设置,将所述缓冲存储器的一部分分配给用于主机功能的主机用区或用于外围设备功能的外围设备用区。
7.根据权利要求6所述的缓冲存储器控制方法,其中,当所述USB设备能够同时使用所述主机功能和所述外围设备功能时,将所述缓冲存储器的所述部分分配给所述外围设备用区,并且将所述缓冲存储器的剩余部分分配给所述主机用区。
8.根据权利要求6所述的缓冲存储器控制方法,包括当所述设置被保持时,确定待分配的所述外围设备用区的存储器大小。
9.根据权利要求6所述的缓冲存储器控制方法,其中,将所述缓冲存储器划分成多个块,并且使用附到所述块的每个的块号码将所述缓冲存储器作为链进行管理。
10.根据权利要求9所述的缓冲存储器控制方法,其中
根据分配给所述主机用区的所述块中的所述块号码,设置在所述链管理中的所述链接目的地块;以及
在分配给所述外围设备用区的所述块中,将所述链管理中的所述链接目的地块设置为无效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008071436A JP2009230201A (ja) | 2008-03-19 | 2008-03-19 | Usbコントローラ、及びバッファメモリ制御方法 |
JP2008071436 | 2008-03-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101539899A true CN101539899A (zh) | 2009-09-23 |
Family
ID=41089984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910128860A Pending CN101539899A (zh) | 2008-03-19 | 2009-03-19 | Usb控制器以及缓冲存储器控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8001296B2 (zh) |
JP (1) | JP2009230201A (zh) |
KR (1) | KR101138674B1 (zh) |
CN (1) | CN101539899A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200950A (zh) * | 2010-03-24 | 2011-09-28 | 原相科技股份有限公司 | 通用串行总线控制器及其执行方法 |
CN101692213B (zh) * | 2009-10-23 | 2012-06-27 | 威盛电子股份有限公司 | 通用串行总线主机控制方法和通用串行总线主机控制器 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631255B2 (en) * | 2010-07-02 | 2014-01-14 | Intel Corporation | Method, system and apparatus for dynamic buffer management for power saving |
CN101976230B (zh) * | 2010-09-30 | 2014-04-23 | 威盛电子股份有限公司 | 通用序列总线传输转译器及输入请求同步传输方法 |
CN101968779A (zh) * | 2010-09-30 | 2011-02-09 | 威盛电子股份有限公司 | 通用串行总线传输转译器及微帧同步方法 |
US8572306B2 (en) * | 2010-12-02 | 2013-10-29 | Via Technologies, Inc. | USB transaction translator and USB transaction translation method |
US9009380B2 (en) | 2010-12-02 | 2015-04-14 | Via Technologies, Inc. | USB transaction translator with SOF timer and USB transaction translation method for periodically sending SOF packet |
EP2748710A4 (en) | 2011-08-25 | 2015-02-11 | Intel Corp | DETERMINING AT LEAST ONE PART OF ONE OR MORE QUANTITIES OF BUFFER MEMORY FIELDS |
TWI529528B (zh) * | 2013-05-29 | 2016-04-11 | 祥碩科技股份有限公司 | 資料管理方法 |
FR3102583B1 (fr) * | 2019-10-24 | 2022-11-25 | Stmicroelectronics Grand Ouest Sas | Dispositif à connecteur USB |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219797B1 (en) * | 1993-02-09 | 2001-04-17 | Dallas Semiconductor Corporation | Microcontroller with selectable oscillator source |
JP3429948B2 (ja) * | 1996-04-10 | 2003-07-28 | 株式会社日立製作所 | 組込み型cpu用制御装置 |
US6185641B1 (en) * | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
DE59811308D1 (de) * | 1997-07-21 | 2004-06-09 | Infineon Technologies Ag | Pufferspeicheranordnung |
US6581148B1 (en) * | 1998-12-07 | 2003-06-17 | Intel Corporation | System and method for enabling advanced graphics port and use of write combining cache type by reserving and mapping system memory in BIOS |
JP2001236303A (ja) | 2000-02-25 | 2001-08-31 | Nec Microsystems Ltd | ユニバーサル・シリアル・バス制御回路 |
US6691234B1 (en) * | 2000-06-16 | 2004-02-10 | Intel Corporation | Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state |
JP3415567B2 (ja) * | 2000-06-21 | 2003-06-09 | エヌイーシーマイクロシステム株式会社 | Usb転送制御方法およびusbコントローラ |
JP3884942B2 (ja) * | 2001-10-31 | 2007-02-21 | キヤノン株式会社 | 撮像装置、撮像装置と記録装置とを有するシステム及びその制御方法 |
JP2004070423A (ja) | 2002-08-01 | 2004-03-04 | Ricoh Co Ltd | Usbコントローラおよびそのデータ転送制御方法 |
US20040030742A1 (en) * | 2002-08-06 | 2004-02-12 | Masayuki Kitagawa | System and method for communicating data using a multiple-role entity |
JP3614161B2 (ja) * | 2003-05-20 | 2005-01-26 | セイコーエプソン株式会社 | データ転送制御装置、電子機器及びデータ転送制御方法 |
US20060106962A1 (en) * | 2004-11-17 | 2006-05-18 | Woodbridge Nancy G | USB On-The-Go implementation |
KR20060070112A (ko) * | 2004-12-20 | 2006-06-23 | 삼성전자주식회사 | Usb otg를 이용한 프로그래밍/업데이트 방법 |
KR100711006B1 (ko) * | 2005-03-18 | 2007-04-24 | (주)엠씨에스로직 | Usb 장치에서의 vbus 전력 제어 장치 |
JP2007087209A (ja) * | 2005-09-22 | 2007-04-05 | Fuji Xerox Co Ltd | 印刷システム、画像形成装置およびその制御方法 |
-
2008
- 2008-03-19 JP JP2008071436A patent/JP2009230201A/ja active Pending
-
2009
- 2009-03-12 US US12/403,154 patent/US8001296B2/en not_active Expired - Fee Related
- 2009-03-16 KR KR1020090022212A patent/KR101138674B1/ko not_active IP Right Cessation
- 2009-03-19 CN CN200910128860A patent/CN101539899A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692213B (zh) * | 2009-10-23 | 2012-06-27 | 威盛电子股份有限公司 | 通用串行总线主机控制方法和通用串行总线主机控制器 |
CN102200950A (zh) * | 2010-03-24 | 2011-09-28 | 原相科技股份有限公司 | 通用串行总线控制器及其执行方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101138674B1 (ko) | 2012-04-25 |
JP2009230201A (ja) | 2009-10-08 |
US20090240851A1 (en) | 2009-09-24 |
KR20090100263A (ko) | 2009-09-23 |
US8001296B2 (en) | 2011-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101539899A (zh) | Usb控制器以及缓冲存储器控制方法 | |
CN100458757C (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
US8010750B2 (en) | Network on chip that maintains cache coherency with invalidate commands | |
CN101425966B (zh) | 片上网络以及使用片上网络进行数据处理的方法 | |
US8214845B2 (en) | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data | |
EP2802110A1 (en) | System and method for reading and writing data with a shared memory hash table | |
CN101231621B (zh) | 隐藏存储器访问模式 | |
US20090119460A1 (en) | Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space | |
CN101359314A (zh) | 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间 | |
CN103999159A (zh) | 用于对存储器响应进行排序的存储器设备、计算机系统及方法 | |
CN102096642B (zh) | 存储器保护装置及存储器保护方法 | |
CN100576190C (zh) | 使用替代页池管理dma写入页错误的计算机实现方法和装置 | |
CN104471555A (zh) | 用于高速缓存系统的多级互联系统及多级互联方法 | |
US8429314B2 (en) | FIFO system and operating method thereof | |
CN1971545A (zh) | 信息处理设备 | |
CN104603768A (zh) | 信息处理设备 | |
CN102402422A (zh) | 处理器组件及该组件内存共享的方法 | |
JP5499987B2 (ja) | 共有キャッシュメモリ装置 | |
US20110055430A1 (en) | Method for establishing a communication channel between a host device and a memory device, associated memory device and controller thereof, and associated host device and host device application | |
US7747808B2 (en) | USB host controller with memory for transfer descriptors | |
EP1698978A1 (en) | Cache memory and its controlling method | |
CN101601016A (zh) | 管理模块、生产者和消费者处理器、其装置以及用于通过共享存储器进行处理器间通信的方法 | |
CN101620652B (zh) | 一种保护存储器数据的主板、计算机和方法 | |
CN102043741B (zh) | 用于管道仲裁的电路和方法 | |
EP0872800A1 (en) | Method and device for exchanging data between two processor units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090923 |