CN105589831B - 具有信号量功能的片上系统和信号量分配方法 - Google Patents
具有信号量功能的片上系统和信号量分配方法 Download PDFInfo
- Publication number
- CN105589831B CN105589831B CN201510738756.0A CN201510738756A CN105589831B CN 105589831 B CN105589831 B CN 105589831B CN 201510738756 A CN201510738756 A CN 201510738756A CN 105589831 B CN105589831 B CN 105589831B
- Authority
- CN
- China
- Prior art keywords
- semaphore
- interface
- atomic
- sequencer
- chip
- 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.)
- Active
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
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- 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
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
提供一种具有信号量功能的片上系统以及信号量分配方法,所述片上系统包括多个主设备、接口和信号量单元的。接口将多个主设备与从装置连接。信号量单元检测多个主设备的请求,关于对接口的访问控制从装置,并且根据检测结果通过特定操作单元对多个主设备中的每个分配信号量。
Description
本申请要求于2014年11月10日在韩国知识产权局提交的第10-2014-0155558号韩国专利申请的优先权,该韩国专利申请的全部内容通过引用全部包含于此。
技术领域
这里描述的发明构思的示例实施例涉及一种半导体装置,更具体地讲,涉及用具有信号量(semaphore)功能的硬件实现的片上系统和/或装置以及/或者用于设置信号量的方法。
背景技术
近年来,移动装置(例如,智能电话,平板PC,数字相机,MP3播放器和PDA)的使用已经爆炸性地增加。在这种移动装置中,对多媒体的驱动和各种数据的吞吐量增加了,并且,使用高速处理器和大容量存储介质。在移动装置上驱动各种应用程序。移动装置可以使用诸如工作存储器(例如,DRAM)、非易失性存储器和应用处理器(以下称为“AP”)的半导体装置来驱动各种应用程序。此外,通信处理器(以下称为“CP”)用于通信功能。由不同的操作系统驱动的AP和CP通常可以在片上系统中被实现。在至少一个示例实施例中,可在一个从装置上共享多个主装置,例如,AP和CP。特别地,通过允许多个主设备设置的一个接口来共享一个从装置。在这种情况下,可使用“信号量”来实现通过一个接口共享一个从装置的方法。
但是,实现用于通过一个接口控制单个从设备的信号量需要大量的软件资源并增加了复杂性。此外,为了实时操作系统的调度,必须在软件级别上固定任何主设备的等待时间。另外,为了快速响应,必须减少固定的等待时间。由于在软件级别上定义等待时间,所以难以确保软件的快速响应和相对高的复杂性。
发明内容
发明构思的一些示例实施例提供一种能够通过以硬件实现信号量来共享接口而没有软件介入的片上系统。
发明构思的示例实施例的一个方面涉及提供一种包括多个主设备(例如,主装置)、接口和信号量单元(即,信号量逻辑电路)的片上系统。接口可将多个主设备与从装置连接。信号量逻辑电路可检测来自多个主设备的至少一个访问请求,并且可根据检测结果针对期望的操作期给所述多个主设备中的一个分配信号量,所述访问请求指示访问接口并控制从装置的请求。
根据至少一个示例实施例,期望的操作期可对应于接口将多个交易发送给从装置的持续时间,所述交易包括命令或控制信号。
根据至少一个示例实施例,信号量逻辑电路还可包括:多个原子定序器,被配置为从主设备接收访问请求,并且响应于访问请求,原子定序器传送获取用于接口的信号量的请求;以及信号量控制器,被配置为响应于接收到通过原子定序器获取信号量的请求来给所述原子定序器中的一个分配信号量。
根据至少一个示例实施例,原子定序器中的每个可发送用于访问接口的交易,直到分配信号量。
根据至少一个示例实施例,信号量控制器可将信号量分配给与由原子定序器发送的交易当中的由接口接收到的第一交易对应的原子定序器。
根据至少一个示例实施例,被分配了信号量的原子定序器可在与期望的操作期对应的至少一个交易的交换完成时释放分配的信号量。
根据至少一个示例实施例,信号量控制器可管理用于分配信号量给原子定序器中的一个的信号量位。
根据至少一个示例实施例,原子定序器可在期望的操作期的交易的交换完成时发出中断信号给对应的主设备。
根据至少一个示例实施例,原子定序器可被配置为管理对应的主设备对接口的访问。
根据至少一个示例实施例,主设备可以是处理器,每个处理器可由操作系统驱动,每个处理器的操作系统具有不同的属性。
根据至少一个示例实施例,接口可以是I2C(集成电路间)接口。
发明构思的示例实施例的另一个方面涉及提供一种将多个主设备与从装置连接的接口的信号量分配方法。基于多主设备的信号量分配方法可包括下述步骤:从主设备接收对接口的访问请求,响应于从主设备接收到的访问请求,将第一交易发送到接口,检测接口是否接收到第一交易;在接收到第一交易时,给所述多个主设备中的与第一交易对应的第一主设备分配信号量和执行用于将接收到的访问请求发送到从装置的原子序列,在原子序列完成时释放分配给第一主设备的信号量。
根据至少一个示例实施例,所述方法可包括在原子序列完成时将中断信号发送到第一主设备。
根据至少一个示例实施例,原子序列可包括用于编程或读取接口的寄存器以将接收到的访问请求从接口发送到从装置的多个交易。
根据至少一个示例实施例,检测的步骤可包括:如果第一交易被接口拒绝,则不分配信号量给第一主设备,并且将第一交易再次发送给接口。
根据至少一个示例实施例,释放信号量的步骤可包括读取接口的多个控制寄存器当中的与特定地址对应的寄存器。
根据至少一个示例实施例,所述方法还可包括:检测与对应于所述特定地址的寄存器相关联的读取操作,释放被分配给第一主设备的信号量。
发明构思的示例实施例的又一个方面涉及提供一种片上系统,该片上系统可包括被配置为访问从装置的应用处理器、被配置为访问从装置的通信处理器、接口以及信号量逻辑电路。接口可与应用处理器和通信处理器连接并与被配置为充当从装置的外部装置连接。信号量逻辑电路可检测应用处理器或通信处理器访问接口的请求,并且可根据检测结果针对期望的操作期给应用处理器或通信处理器分配对接口的优先权。
根据至少一个示例实施例,外部装置可以是电源管理集成电路。
根据至少一个示例实施例,信号量逻辑电路可包括:第一原子定序器,被配置为接收应用处理器的关于对接口的访问的请求以获取对接口的优先权;第二原子定序器,被配置为接收通信处理器的关于对接口的访问的请求以获取对接口的优先权;信号量控制器,被配置为检测第一原子定序器和第二原子定序器的对接口的访问,以针对第一原子定序器和第二原子定序器中的一个分配或释放优先权。
根据至少一个示例实施例,特定操作单元可对应于多个交易,所述多个交易允许接口发送与请求对应的命令或控制信号并在第一原子定序器或第二原子定序器与接口之间交换。
根据至少一个示例实施例,第一原子定序器或第二原子定序器的访问尝试可包括构成特定操作单元的交易中的第一交易的转移。
根据至少一个示例实施例,信号量控制器可将优先权分配给与第一原子定序器和第二原子定序器分别发送的第一交易当中的由接口接收到的一个对应的原子定序器。
根据至少一个示例实施例,被分配了信号量的原子定序器可在与特定操作单元对应的多个交易完成时释放获取的关于接口的优先权。
根据至少一个示例实施例,第一原子定序器或第二原子定序器可在与特定操作单元对应的多个交易的交换完成时向应用处理器或通信处理器发出中断信号。
根据至少一个示例实施例,执行特定操作单元所花费的时间可以是固定的。
根据至少一个示例实施例,接口可对应于以下协议中的至少一个:I2C(集成电路间)接口协议、UART(通用异步收发器)协议、SPI(串行外围接口)协议和HSIC(高速芯片间)协议。
发明构思的示例实施例的又一个方面可涉及一种系统,其中,该系统可包括:多个主装置,被配置为访问至少一个从装置,所述多个主装置至少包括第一主装置和第二主装置;接口,被配置为在从装置和主装置之间提供通信;以及控制器,被配置为在接收到来自第一主装置的第一访问请求和来自第二主装置的第二访问请求时授予第一主装置访问从装置。
根据至少一个示例实施例,控制器可被配置为在期望期之后授予第二主装置访问从装置。
根据至少一个示例实施例,第一访问请求可包括来自第一主装置的对从装置的至少一个交易,并且期望期可以是基于完成所述至少一个交易的时间。
根据至少一个示例实施例,如果第二主装置不被授予访问从装置,则第二主装置可重新发送第二访问请求。
附图说明
根据如在附图中示出的发明构思的非限制性的示例实施例的更具体的描述,发明构思的前述和其他特征将是明显的,在附图的所有不同视图中同样的附图标记指同样的部件。附图不一定按比例绘制,而重点放在示出的发明构思的原理。在附图中:
图1是示意性地示出根据至少一个示例实施例的片上系统的框图;
图2是示意性地示出根据至少一个示例实施例的图1中示出的信号量单元的框图;
图3是示意性地示出根据至少一个示例实施例的具有信号量功能的片上系统中包括的主设备的操作的流程图;
图4是示意性地示出根据至少一个示例实施例的图2中示出的第一原子定序器的操作的流程图;
图5A和5B是示意性地示出根据一些示例实施例的根据信号量的分配的原子序列的示图;
图6是示意性地示出根据至少一个示例实施例的信号量控制器的操作的框图;
图7是示意性地示出根据至少一个示例实施例的在原子定序器和接口之间生成的原子序列的流程图;
图8是示出根据至少一个示例实施例的信号量分配操作的示图;
图9是示意性地示出根据至少一个示例实施例的片上系统的框图;
图10是示出根据至少一个示例实施例驱动电压根据片上系统和电源管理IC的原子序列增大的时序图;以及
图11是示意性地示出根据至少一个示例实施例的片上系统的框图。
具体实施方式
现在参照其中示出一些示例实施例的附图将对各种示例实施例进行更全面的描述。但是,示例实施例可以以很多不同的形式实施,并且,不应当被解释为限于本文中阐述的实施例;确切地,提供这些示例实施例,使得本公开将是彻底的和完整的,并将向本领域的普通技术人员充分地传达发明构思的示例实施例的范围。在附图中,为了清楚起见,夸大了层和区域的厚度。在附图中同样的参考字符和/或附图标记表示同样的元件,由此,可省略其描述。
将理解的是,当元件被称为与另一个元件“连接”或“结合”时,该元件可与另一个元件直接连接或结合,或者可存在中间元件。与此形成对照的是,当元件被称为与另一个元件“直接连接”或“直接耦接”时,不存在中间元件。用于描述元件或层之间的关系的其它词语应该以类似的方式被解释(例如,“在……之间”与“直接在……之间”,“相邻”与“直接相邻”,“在……上”与“直接在……上”)。如这里使用的,术语“和/或”包括相关列举项目中的一个或更多个的任意和所有的任何组合。
将理解的是,虽然在这里可使用术语“第一”、“第二”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应当受这些术语限制。这些术语仅仅用来将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分进行区分。因此,在不脱离示例实施例的教导的情况下,下面讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
为了容易描述,在这里可使用诸如“在……之下”、“在……下面”、“下部的”、“在……上方”、“上部的”等空间相对术语来描述一个元件或特征与另一个元件或特征的关系,如图中所示。将理解的是,除了图中绘出的方位以外,空间相对术语还意图涵盖装置在使用或操作中的不同方位。例如,如果图中的装置被翻转,那么被描述为“在”其它元件或特征“下面”或“之下”的元件将会被定位为在其它元件或特征“上面”。因此,术语“在……下面”可涵盖“在……上面”和“在……下面”的两种方位。装置可以被另外定位(旋转90度或者在其他方位),并且相应地,解释这里使用的空间相对描述符。
这里使用的术语仅仅出于描述特定实施例的目的,并且不应当限制示例实施例。如这里使用的,除非上下文另外明确指出,否则单数形式还意图包括复数形式。将进一步理解的是,如果在这里使用的术语“包括”、“包含”、“含有”和/或“具有”指定所述的特征、整体、步骤、操作、元件和/或组件的存在,但是不排除一个或更多个其它特征、整体、步骤、操作、元件、组件和/或它们的组的存在或添加。诸如存在于一列元件之后的“中的至少一个”的表述修饰整列元件,而不修饰该列中的各个元件。
这里参照作为示例实施例的理想化实施例(和中间结构)的示意图的剖视图来描述示例实施例。照此,预计将出现例如由造技术和/或公差引起的示出的形状的变化。因此,示例实施例不应当被解释为局限于这里示出的区域的特定形状,而应包括例如由于制造引起的形状上的偏差。例如,示出为矩形的注入区可具有圆形或弯曲的特征和/或在其边缘处的注入浓度的梯度,而不是从注入区到非注入区的二元变化。同样地,通过注入形成的埋区可能会导致在埋区和通过其发生注入的表面之间的区域中的一些注入。因此,在图中所示的区域实际上是示意性的,并且,它们的形状并不意图示出装置的区域的实际形状,也不意图限制示例实施例的范围。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与示例实施例所属的技术领域的普通技术人员所通常理解的含义相同的含义。将进一步理解的是,诸如常用词典中定义的术语之类的术语应该被解释为具有与其在相关领域的环境中的含义一致的含义,并且将不会被解释为理想化的或过于正式的意义,除非这里明确这样定义。
虽然某个或某些剖视图的对应平面图和/或透视图可能没有被示出,但是这里示出的装置结构的(一个或更多个)剖视图提供对沿两个不同的方向(将如平面图中所示)和/或在三个不同的方向上(将如透视图中所示)延伸的多个装置结构的支持。两个不同的方向可以相互正交,或者可以不相互正交。三个不同的方向可包括可与两个不同的方向正交的第三方向。多个装置结构可被集成在同一电子装置中。例如,在以剖视图示出装置结构(例如,存储器单元结构或晶体管结构)时,电子装置可包括多个装置结构(例如,存储器单元结构或晶体管结构),如电子装置的平面图所示。多个装置结构可按照阵列和/或二维图案布置。
在示例实施例中,非易失性存储器可被实施为包括三维(3D)存储器阵列。3D存储器阵列可整体地形成在基底上(例如,半导体基底(比如硅),或绝缘体上半导体基底)。3D存储器阵列可包括两个或更多个物理级别的存储器单元,所述存储器单元具有设置在基底上的有效区域和与这些存储器单元的操作相关联的电路系统,无论这种相关电路系统是在这种基底的上面还是在其内。阵列的每一级别的层可以被直接沉积在阵列的每个底层级别的层上。
在示例实施例中,3D存储器阵列可包括垂直NAND串,所述垂直NAND串被垂直定向使得至少一个存储器单元位于另一个存储器单元之上。至少一个存储器单元可包括电荷捕获层。
通过引用全部合并于此的下述专利文件描述了三维存储器阵列的合适的构造,其中,三维存储器阵列被配置为具有在各级之间共享的字线和/或位线的多个级别,所述专利文件为美国专利第7679133号;美国专利第8553466号;美国专利第8654587号;美国专利第8559235号;以及美国专利公开第2011/0233648号。
根据发明构思的一些示例实施例的片上系统可包含集成电路间(I2C)接口作为用于允许多个主设备(或者,主装置)共享至少一个从设备(或者从装置)的总线接口。总线接口可利用包括I2C接口的下述芯片间接口来实现:UART(通用异步收发器)、SPI(串行外围接口)、HSIC(高速芯片间)等等。
图1是示意性地示出根据发明构思的一些示例实施例的片上系统的框图。参照图1,片上系统100至少包括主设备110和120、总线矩阵130、信号量单元140和接口150。片上系统100的主设备110和120可通过信号量单元140访问从装置160。信号量单元140也可被称为信号量逻辑电路。这里,从装置160可以是置于片上系统100之外的半导体装置或类似物。但是,理解的是,从装置160是在片上系统100中实现的知识产权(IP)块。另外,虽然某些示例实施例可示出片上系统的使用,但是,示例实施例并不限于此,这里讨论的发明构思可应用于任何其他类型的处理装置和/或处理系统。
第一主设备110和第二主设备120可以是由具有不同的属性或相同的属性的操作系统驱动的处理器或其他处理装置。例如,第一主设备110可以是由实时操作系统驱动的处理器,第二主设备120可以是由非实时操作系统驱动的处理器。在由实时操作系统驱动的第一主设备110中,在访问从装置160时可能需要最小化等待时间。另外,可能需要将由非实时操作系统驱动的第二主设备120占用接口150的时间设置为固定值和/或期望值。也就是说,出于第一主设备110的调度目的,可能需要预测由非实时操作系统驱动的第二主设备120占用接口150的时间。由于由非实时操作系统驱动的第二主设备120不能保证最差的等待时间,所以可能难以对由实时操作系统驱动的第一主设备110进行调度。因此,作为硬件组件,对在共享一个接口的主设备之间的接口150的共享进行仲裁的信号量单元140被包括在内。
总线矩阵130可以是用于在片上系统100中提供片上网络的系统总线。例如,总线矩阵130可包括数据总线、地址总线和控制总线。数据总线可以是传输数据的通道。数据总线可主要用作到工作存储器(未示出)或存储装置(未示出)的存储器访问通道。地址总线可以是用于在IP块之间交换地址的通道。控制总线可以是在IP块之间传输控制信号的通道。但是,总线矩阵130的配置并不限于以上描述。例如,总线矩阵130还可以包括用于有效管理各种计算机资源和/或组件的各种仲裁方法。例如,第一主设备110和第二主设备120通过总线矩阵130访问从装置160。
信号量单元140可用允许多个主设备无冲突地共享单个内部总线(例如,接口150)的硬件实现。例如,在第一主设备110占用接口150的同时,信号量单元140延迟第二主设备120对接口150的访问。也就是说,在第一主设备110写入或读取接口150的寄存器的关键部分期间,信号量单元140延迟对第二主设备120的访问。在第一主设备110的关键部分终止之后,信号量单元140给第二主设备120分配接口150的优先权。下面,上述的关键部分被称为“原子序列(atomic sequence)”。由于在非实时操作系统上操作的第二主设备120不会保证最差情况下的等待时间,所以第一主设备难以和/或不可能实时地控制从装置160。信号量单元140可通过期望的、减少的和/或最小的操作来在主设备之间分配接口150的占用。
接口150可用允许主设备110和120共享至少一个从设备160的总线接口来实现。例如,接口150可用I2C接口来实现,该I2C接口用于连接片上系统100和外部装置。I2C接口可以是包括一条串行数据线SDA和一条串行时钟线SCL并支持双向通信的总线接口。在I2C接口协议中,在总线主控(bus master)指定通信对方的唯一地址时,可决定通信对方。
I2C接口使用上拉电阻与其连接的串行数据线SDA和串行时钟线SCL的双向的集电极开路线(open collector line)。在I2C接口协议中,保留有7位地址空间的部分。在请求访问从装置160时,主设备110和120可通过信号量单元140对I2C接口的寄存器进行编程。由于寄存器被编程,所以I2C接口可使用串行数据线SDA和串行时钟线SCL来控制从装置160。
接口150的协议可用包括I2C接口协议的以下协议替代:UART(通用异步收发器)、SPI(串行外围接口)、HSIC(高速芯片间)等等。接口150使得与由总线主控指定的任何装置交换数据成为可能。此外,由于接口150的协议定义了避免总线竞争的机制,所以随机指定的装置可充当主设备。因此,在使用接口150的系统中,至少一个从装置160可由多个主装置共享。
从装置160由主设备110和120共享,主设备110和120由具有不同的属性或者相同的属性的操作系统驱动。也就是说,从装置160可以是被连接而不在片上系统100之外的单独的半导体芯片。从装置160可通过在片上系统100中实现的接口150来与片上系统100通信。但是,从装置160可被理解为与接口150连接的片上系统100的IP块或者其他半导体装置。
根据上述片上系统100,包括有执行允许主设备共享一个从设备的信号量操作的信号量单元140。信号量单元140通过关键部分给主设备之一分配接口150的信号量。这里,关键部分可对应于根据发明构思的一些示例实施例的原子序列,并且可能与一组寄存器访问操作的单元相关。任何一个主设备占用接口150的时间可通过信号量单元140的介入来被限制和确定并且/或者被固定,并且当固定的占用时间流逝,接口150的占用(即,控制、使用等等)被释放。因此,在任何一个主设备占用接口150的时间被预测时,可以给必需实时控制从装置160的主设备提供调度的便利。
图2是示意性地示出根据发明构思的至少一个示例实施例的图1中示出的信号量单元140的框图。参照图2,信号量单元140至少包括与主设备对应的原子定序器(atomicsequencer)141和142以及信号量控制器143。
第一原子定序器141管理第一主设备110的访问接口150的请求。也就是说,第一原子定序器141检测从第一主设备110发出的关于接口150的访问请求。在第一主设备110请求访问接口150的情况下,第一原子定序器141将第一交易发送到接口150,以获取信号量。如果给第一原子定序器141分配了信号量,则第一原子定序器141执行作为关于对接口150的访问的期望的、减少的和/或最小的操作单元(例如,期望的操作期)的原子序列。在关于接口150的原子序列终止时,第一原子定序器141将信号/命令设置和/或传送到信号量控制器143,以释放获取的信号量。
第二原子定序器142管理第二主设备120的关于访问接口150的请求。在第二主设备120请求访问接口150的情况下,第二原子定序器142将第一交易发送到接口150,以获取信号量。第一交易可由接口150接收或拒绝。如果通过第一交易给第二原子定序器142分配信号量,则第二原子定序器142执行原子序列。在关于接口150的原子序列终止时,第二原子定序器142释放获取的信号量。第一原子定序器141和第二原子定序器142可根据信号量控制器143提供的信号量功能通过原子序列来共享接口150。
信号量控制器143检测从第一原子定序器141和第二原子定序器142发出的第一交易,以分配信号量。在未给第一原子定序器141和第二原子定序器142中的任何一个分配信号量的情况下,信号量控制器143可给发送第一交易的原子定序器分配信号量。在分配了信号量的情况下,信号量控制器143保持信号量分配状态,直到原子序列终止。例如,如果由第一原子定序器141占用信号量,则尽管从第二原子定序器142发送交易,信号量控制器143也不改变信号量的分配状态。在由第一原子定序器141执行的原子序列终止时,可改变信号量的分配状态。
信号量控制器143管理用于信号量分配的信号量位值144。也就是说,信号量控制器143分别设置指示关于第一原子定序器141的信号量分配状态的信号量位SB1和指示关于第二原子定序器142的信号量分配状态的信号量位SB2。例如,在第一原子定序器141和第二原子定序器142的信号量都被释放时,信号量位值144可被设置为“00”。在给第一原子定序器141分配信号量时,信号量位值144可被设置为“10”,在给第二原子定序器142分配信号量时,信号量位值144可被设置为“01”。使用信号量控制器143检测从第一原子定序器141和第二原子定序器142中的每个发出的交易的结果,可执行对信号量位值144的设置。信号量可由第一原子定序器141和第二原子定序器142独立地释放。
发明构思的示例实施例被示出为信号量位值144由两位形成。但是,发明构思的范围和精神并不限于此。例如,信号量位值144可由一个位形成。在至少一个示例实施例中,在信号量位值144具有“1”的逻辑值时,可给第一原子定序器141分配信号量,在信号量位值144具有“0”的逻辑值时,第二原子定序器142可占用信号量。可以这样理解,信号量位值144由多个位或多个逻辑状态形成,以给多个原子定序器分配信号量。
图3是示意性地示出根据至少一个示例实施例的具有信号量功能的片上系统100中包括的主设备110或120的操作的流程图。参照图3,如果发出了访问接口150的访问请求,则主设备110和120中的每个将相关访问请求发送到对应的原子定序器。这里,为了清楚起见,第一主设备110的操作将被描述,但不限于此。例如,第二主设备120也可以与参照图3描述的方式相同的方式操作。
在操作S110中,第一主设备110试图请求访问接口150,以访问从装置160。为此,第一主设备110将关于相关操作的访问请求通过总线矩阵130发送到信号量单元140的第一原子定序器141。从第一主设备110发出的访问请求可在第一原子定序器141包括的寄存器处被编程。
在操作S120中,第一主设备110检测第一原子定序器141的关于访问接口150的请求是否完成,即,中断信号。第一原子定序器141获取关于接口150的信号量,并且执行包括用于处理来自第一主设备110的访问请求的多个交易的原子序列。如果原子序列完成,则第一原子定序器141释放信号量。另外,如果原子序列完成,则第一原子定序器141将中断信号发送到第一主设备110。第一主设备110监视和检测这样传输的中断信号。
在操作S130中,第一主设备110确定是否从信号量单元140接收到中断信号。如果未接收到中断信号,则本方法前进到操作S 120,以检测是否从第一原子定序器141接收到中断信号。如果接收到中断信号,则本方法前进到操作S140。
在操作S140中,第一主设备110确定是否另外请求访问接口150。如果另外请求访问接口150,则本方法前进到操作S110,以发出访问请求。如果不是这样,则本方法结束。
描述了根据至少一个示例实施例的其中主设备110和120的关于接口150的访问请求被发送到信号量单元140的方法。主设备110和120只必须将关于接口150的访问请求发送到信号量单元140,而没有考虑信号量。主设备110和120的访问请求被存储在信号量单元140处,信号量由信号量单元140分配。共享接口150的主设备110和120不必在软件级别上考虑信号量的设置,但不限于此。
图4是示意性地示出根据发明构思的至少一个示例实施例的图2中示出的第一原子定序器的操作的流程图。参照图4,第一原子定序器141根据来自第一主设备110的访问请求获取关于接口150的信号量,并且执行原子序列。为了清楚起见,描述了获取信号量和原子序列的第一原子定序器141的操作,但是该操作并不限于此。同样地,例如,基于来自第二主设备120的访问请求,第二原子定序器142获取关于接口150的信号量并执行原子序列。
在操作S210中,第一原子定序器141针对从第一主设备110发出的关于接口150的访问请求发出第一交易。信号量控制器143基于从第一原子定序器141发出的第一交易来确定是否给第一原子定序器141分配信号量。在未给第一原子定序器141和第二原子定序器142中的任何一个分配信号量的情况下,信号量控制器143给发送第一交易的第一原子定序器141分配信号量。相反,在信号量先前被第二原子定序器142占用的情况下,信号量控制器143延迟给第一原子定序器141分配信号量。
在操作S220中,第一原子定序器141基于第一交易的输入来检测信号量控制器143的信号量分配状态。在第一原子定序器141获取信号量的情况下,本方法前进到操作S230。相反,在第一原子定序器141未获取信号量的情况下,本方法前进到操作S210,以再次将第一交易发送到接口150。
在操作S230中,第一原子定序器141执行原子序列以对接口150的控制寄存器进行编程。第一原子定序器141可将要在第一交易之后执行的至少一个交易提供给接口150。第一原子定序器141可执行与原子序列对应的多个寄存器编程或读取操作。
在操作S240中,如果与访问接口150的期望的、减少的和/或最小的单元(例如,原子单元)对应的原子序列终止,则第一原子定序器141释放被设置给信号量控制器143的信号量位值144(参照图2)。也就是说,第一原子定序器141释放关于接口150的当前信号量占用状态。如果信号量状态被释放,则第一原子定序器141的原子序列终止。
还描述了根据至少一个示例实施例的获取关于接口150的信号量并执行原子序列的第一原子定序器141的操作。同样地,基于第二主设备120的请求,第二原子定序器142试图获取关于接口150的信号量并执行原子序列。
图5A和图5B是示意性地示出根据一些示例实施例的与信号量的分配对应的原子序列的示图。图5A示出了两个主设备分别通过两个不同的接口访问从装置的情况。图5B示出了根据发明构思的至少一个示例实施例的由信号量单元140共享一个接口的结构中的对从装置的访问。
参照图5A,示出了根据至少一个示例实施例的在主设备分别包括接口时对从装置的访问操作。也就是说,第一接口(未示出)可被设置在第一主设备110和从设备之间,第二接口(未示出)可被设置在第二主设备120和从设备之间。在至少一个示例实施例中,可能不存在第一主设备110和第二主设备120之间的占用接口的竞争。因此,主设备110和120可使用独立的接口来控制从装置160。但是,在至少一个示例实施例中,可能有与主设备一样多的接口。
参照图5B,主设备110和120被连接到单个接口150,以便控制从装置160。也就是说,第一主设备110和第二主设备120与接口150连接,以便控制从装置160。在至少一个示例实施例中,可能存在第一主设备110和第二主设备120之间的占用接口的竞争。根据发明构思的一些示例实施例的信号量单元140可以硬件的方式仲裁这种竞争,但不限于此,并且在任何一个主设备和从装置160之间发生交易。也就是说,第一主设备110可通过由第一原子定序器141实施的原子序列AS_11、AS_12、AS_13和AS_14来访问接口150。第二主设备120可通过由第二原子定序器142实施的原子序列AS_21、AS_22、AS_23和AS_24来访问接口150。由于通过原子定序器141和142以及信号量控制器143来调节信号量,所以接口150可由多个主设备共享,而没有浪费等待时间。
在图5B中,示出了根据至少一个示例实施例的构成第二原子定序器142执行的原子序列AS_21的交易。构成原子序列AS_21的交易中的第一交易被迭代地发送到接口150,以获取信号量。如果获取了信号量,则在第一交易之后的交易可被传输到接口150。在此期间,可中断对信号量的释放或改变。
图6是示意性地示出根据发明构思的至少一个示例实施例的信号量控制器143的操作的框图。参照图6,信号量控制器143监视从原子定序器141发出到接口150的交易并设置信号量位值144。
在第一主设备110请求访问接口150时,第一原子定序器141生成与来自第一主设备110的访问请求对应的操作代码。多个交易可能需要被交换,以将用于处理来自第一主设备110的访问请求的多个操作代码写入在接口150的控制寄存器155处。顺序地布置的用于多个交易的多个操作代码可对应于一个原子序列。因此,为了执行一个原子序列,第一原子定序器141获取信号量,然后执行与来自第一主设备110的访问请求对应的原子序列AS。第一原子定序器141反复地感测对接口150的原子序列的第一交易,直到获取信号量。
信号量控制器143可监视从第一原子定序器141和第二原子定序器142发出的交易。在未分配信号量的情况下,信号量控制器143给首先将第一交易发送到接口150的原子定序器分配信号量。也就是说,在每个原子定序器的原子序列终止并且信号量被释放的情况下,首先发送第一交易的原子定序器可获取信号量。
例如,在信号量由第一原子定序器141和第二原子定序器142释放的情况下,信号量位值144可被设置为“00”。这里,假设信号量位值144的最高有效位(MSB)指示第一原子定序器141的信号量状态,其最低有效位(LSB)指示第二原子定序器142的信号量状态。采用这种假设,如果第一交易首先从第二原子定序器142传输,则信号量控制器143可将信号量位值144设置为“01”。此外,信号量控制器143保持设置为“01”的信号量位值144,直到第二原子定序器142的原子序列终止。在信号量位值144的释放不被第二原子定序器142请求的条件下,即使从第一原子定序器141发出交易,信号量位值144也被固定为“01”。在第二原子定序器142释放信号量的情况下,信号量控制器143可将信号量位值144设置为“00”,然后给第一原子定序器141分配信号量。也就是说,信号量控制器143在信号量被释放之后将信号量位值144设置为“10”。
在获取信号量之后,第一原子定序器141将与原子序列对应的多个操作代码在接口150的控制寄存器155处进行编程。因此,接口150根据已编程的代码对从装置160执行数据传输或控制操作。
这里,在第一原子定序器141或第二原子定序器142读取接口150的多个寄存器当中的与特定地址对应的寄存器时,可释放信号量位值。特定地址的寄存器可以是未被接口150的协议定义的保留的控制寄存器。
图7是示意性地示出根据发明构思的至少一个示例实施例的在原子定序器和接口之间生成的原子序列的流程图。参照图7,原子定序器与接口150交换多个交易,以将从主设备发出的操作请求传输到从装置。虽然执行与操作请求对应的原子序列,但是,关于接口150的信号量必须被保护,而没有传输到其他主设备。下面将对图4的操作S230进行详细的描述,以描述原子序列的示例实施例。
在操作S231中,第一原子定序器141设置接口150的控制寄存器或设置功能寄存器。接口150的寄存器的数量和顺序以及在寄存器中存储的字段值(filed value)可由第一原子定序器141编程。可通过用于设置在操作S231中执行的控制寄存器155的交易当中的首先传输到接口150的交易来获取或拒绝信号量。
在操作S233中,第一原子定序器141将传输数据写入在接口150的传输FIFO(先入先出)(TXFIFO)缓冲器处或者读取存储在接收FIFO(RXFIFO)缓冲器处的数据。第一原子定序器141可对在操作S233中传输或接收的数据的数量进行编程。
在操作S235中,第一原子定序器141确定与一个原子序列对应的数据写入或接收操作是否完成。如果与一个原子序列对应的数据写入或接收操作完成,则该原子序列终止。相反,如果与一个原子序列对应的数据写入或接收操作未完成(即,需要另外将数据发送到接口150或者从接口150接收数据),则本方法前进到操作S233。
采用上述的原子序列,原子定序器141可以使用用于传输数据的操作代码、数据传输结束操作代码和控制寄存器设置操作代码。
图8是示出根据发明构思的至少一个示例实施例的信号量分配操作的示图。参照图8,顺序地示出了第一主设备110、第一原子定序器141、信号量控制器143、接口(I/F)150和从装置160之间的交互。
当第一主设备110发出对从装置160的访问请求时,根据发明构思的一些示例实施例的信号量分配和原子序列可开始。第一主设备110向从装置160发送对第一原子序列AS1的指导特定操作的相关请求。此时,通过总线矩阵130来设置第一原子定序器141的寄存器。在第一原子定序器141的控制寄存器被编程之后,第一主设备110命令开始相关操作。通过此过程来完成第一主设备110的访问请求。
原子定序器141通过信号量控制器143将第一交易发送到接口150。信号量控制器143从接口150接收接口150对第一交易的响应。接口150接收第一交易可能意味着接口150保持在打开状态。这意味着接口150将总线权限分配给第一原子定序器141。
信号量控制器143根据接口150对第一原子定序器141的第一交易的响应来设置信号量分配状态。也就是说,信号量控制器143将信号量位值设置为“10”。设置为“10”的信号量位值被发送到第一原子定序器141。
第一原子定序器141根据被设置给信号量控制器143的信号量位值SB来确定是否将在第一交易之后的交易发送给接口150。如果被设置给信号量控制器143的信号量位值SB指示第一原子定序器141没有获取信号量(SB=“01”),则第一原子定序器141延迟下一个交易的传送。第一原子定序器141将第一交易反复发送给接口150,以试图获取信号量。
如果被设置给信号量控制器143的信号量位值SB指示第一原子定序器141获取信号量(SB=“10”),则第一原子定序器141将下一个交易发送到接口150。也就是说,在第一交易之后的交易被发送到接口150。如果原子序列的最后一个交易被发送到接口150,则接口150将与相关访问请求对应的操作通知从装置160。例如,与访问请求对应的命令被发送到从装置160。
刚刚在将原子序列的最后一个交易(或者,开始代码)发送到I2C接口之后,第一原子定序器141释放信号量控制器143的信号量位值SB。也就是说,信号量位值SB从“01”变为“00”。同时,第一原子定序器141将指示关于访问请求的原子序列完成的中断信号发送到第一主设备110。
由于第一原子定序器141请求释放信号量位值SB,所以信号量控制器143将信号量位值SB设置为“00”。
描述了根据至少一个示例实施例的用于执行从一个原子定序器发出的原子序列AS 1的信号量控制器143和接口150的操作以及从装置160的操作。但是,示例实施例并不限于此;例如,原子定序器中的每个原子定序器可发出原子序列的第一交易。因此,可给多个原子定序器中的一个分配信号量,被分配了信号量的原子定序器执行原子序列。在至少一个示例实施例中,如果接口150保持在完成状态,则可在原子序列终止之后将信号量提供给任何其他原子序列。因此,能够通过原子序列来预测等待时间。在需要实时地控制从装置的主设备的情况下,可在考虑原子序列的长度的情况下进行调度。
图9是示意性地示出根据发明构思的至少一个示例实施例的片上系统的框图。参照图9,根据发明构思的至少一个示例实施例的片上系统200至少包括应用处理器210和通信处理器220。片上系统200通过接口250控制电源管理IC(PMIC,电源管理集成电路)300。根据至少一个示例实施例,片上系统200至少包括总线矩阵230、信号量单元240和接口250。
应用处理器210是可驱动片上系统200上的各种程序的处理器。例如,应用处理器210可执行要在包括片上系统200的计算装置(例如,移动装置、PC、平板装置等)上执行的软件(例如,应用程序、操作系统、装置驱动器等)。应用处理器210可用同构多核处理器或异构多核处理器实现。多核处理器可以是具有能够相互独立地操作的两个处理器(以下称为“核”)的计算组件。另外,应用处理器210可以是用于控制多媒体装置(例如,照相机或显示器)的多媒体处理器。
通信处理器220可以是由其属性不同于应用处理器210的属性的操作系统所驱动的处理器。在片上系统200中实现的通信处理器220可以是与基站或者用于语音通信或数据通信的任何其他通信装置执行无线通信的处理器。通信处理器220可由与应用处理器210的操作系统不同的实时操作系统驱动。例如,在通过无线通信信道发生呼叫时,通信处理器220实时地控制任何其他组件,以快速地向用户提供通信服务。为了对通信处理器220的调度,必须针对通信处理器220与应用处理器210一起共享的从装置确定、计算和/或保证期望的、减少的和/或最小的等待时间。另外,必须确定、计算和/或固定等待时间的长度。
总线矩阵230可以是用于在片上系统200中提供片上网络的系统总线。例如,总线矩阵230可包括数据总线、地址总线和控制总线。数据总线可以是传输数据的通道。数据总线可主要用作到工作存储器(未示出)或存储装置(未示出)的存储器访问通道。地址总线可以是用于在IP块之间交换地址的通道。控制总线可以是在IP块之间传输控制信号的通道。
信号量单元240可利用允许多个主设备无冲突地共享单个内部总线(例如,接口250)的硬件实现。例如,在应用处理器210占用接口250的同时,信号量单元240延迟通信处理器220对接口250的访问。也就是说,在应用处理器210写入或读取接口250的寄存器的原子序列期的期间,信号量单元240延迟通信处理器220的访问。在应用处理器210的原子序列终止之后,信号量单元240给通信处理器220分配接口250的优先权。信号量单元240可通过原子序列分配关于接口150的优先权。
例如,根据至少一个示例实施例,信号量单元240至少包括第一原子定序器241、第二原子定序器242和信号量控制器243。第一原子定序器241管理应用处理器210的关于访问接口250的请求。第一原子定序器241根据应用处理器210的请求与接口250连接,以便控制电源管理IC 300。
第一原子定序器241管理应用处理器210的关于访问接口250的请求。也就是说,第一原子定序器241检测从应用处理器210发出的关于接口250的访问请求。在应用处理器210请求访问接口250的情况下,第一原子定序器241将第一交易发送到接口250,以获取信号量。在获取了信号量的情况下,第一原子定序器241执行作为期望的、减少的和/或最小的访问单元的原子序列。在关于接口250的原子序列终止时,第一原子定序器241释放关于接口250的信号量并将中断信号INTR1发送到应用处理器210。在一些示例实施例中,中断信号INTR1可在释放信号量的同时被发送,但不限于此。
第二原子定序器242管理通信处理器220的关于访问接口250的请求。在通信处理器220请求访问接口250的情况下,第二原子定序器242将第一交易发送到接口250,以获取信号量。在获取了信号量的情况下,第二原子定序器242执行原子序列。在关于接口250的原子序列终止时,第二原子定序器242释放获取的信号量并将中断信号INTR2发送到通信处理器220。基于信号量控制器243提供的信号量功能,第一原子定序器241和第二原子定序器242可通过被称为“原子序列”的期望的、减少的和/或最小的操作单元(即,期望的操作期)来访问接口250。
信号量控制器243检测从第一原子定序器241和第二原子定序器242发出的第一交易,以分配信号量。在未给第一原子定序器241和第二原子定序器242中的任何一个分配信号量的情况下,信号量控制器243可给发送第一交易的原子定序器分配信号量。在分配了信号量的情况下,信号量控制器243保持信号量分配状态,直到原子序列终止。例如,如果由第一原子定序器241占用信号量,则尽管从第二原子定序器242发送交易,信号量控制器243也不改变信号量的分配状态。在由第一原子定序器241执行的原子序列终止时,可改变信号量的分配状态。
信号量控制器243管理用于信号量分配的信号量位值。也就是说,信号量控制器243分别设置指示关于第一原子定序器241的信号量分配状态的信号量位和指示关于第二原子定序器242的信号量分配状态的信号量位。例如,在第一原子定序器241和第二原子定序器242的信号量都被释放时,信号量位值可被设置为“00”。在给第一原子定序器241分配信号量时,信号量位值可被设置为“10”,在给第二原子定序器242分配信号量时,信号量位值144可被设置为“01”。使用信号量控制器243检测从第一原子定序器241和第二原子定序器242中的每个发出的交易的结果,可执行对信号量位值的设置。参照图2全面地描述了信号量位值,由此,省略其描述。
接口250可连接片上系统200和电源管理IC 300。例如,接口250可以是包括一条串行数据线SDA和一条串行时钟线SCL并支持双向通信的I2C接口。在总线主设备指定通信对方的唯一地址时,可决定通信对方。接口250可与随机指定的装置执行数据传输和接收。此外,由于接口250的协议定义了避免总线竞争的机制,所以随机指定的装置可充当主设备。因此,在使用接口250的系统中,多个主设备管理电源管理IC 300。
电源管理IC 300根据片上系统200的控制向片上系统200提供驱动电压VDD。电源管理IC 300通过接口250与片上系统200连接并因此被控制。电源管理IC 300可包括多个DC-DC转换器或稳压器。电源管理IC 300可根据来自片上系统200的请求来调节驱动电压VDD的电平。例如,在睡眠模式中,电源管理IC 300可根据片上系统200的请求向片上系统200提供具有相对低的电平的驱动电压VDD0。在唤醒事件,电源管理IC 300根据片上系统200的请求将驱动电压的电平升高直到用于特定操作的电平VDD2。
例如,诸如唤醒之类的事件可指示从通信处理器220向用户发送用于语音通信的呼号的事件。此时,基于通信处理器220的请求,电源管理IC 300可将操作电压提高直到足以向用户提供呼号或振动的电平。信号量单元240可允许通信处理器220在期望的、减少的和/或最小的等待时间内获取关于电源管理IC 300的信号量。另外,由原子定序器获取信号量,由此使得快速地请求访问电源管理IC 300成为可能。
图10是示出根据发明构思的至少一个示例实施例驱动电压根据片上系统200和电源管理IC 300的原子序列增大的时序图。参照图10,假设片上系统200保持在睡眠模式,电源管理IC 300向片上系统200提供具有足以保持睡眠模式的电平的驱动电压VDD0。此外,假设接口250的信号量被分配给应用处理器210。
在时间T1处,片上系统200的通信处理器220请求在电源管理IC 300处唤醒。与通信处理器220对应的原子定序器242将用于获取信号量的第一交易发送到接口250。由于应用处理器210请求的操作被处理,所以当前由第一原子定序器241占用信号量。因此,在原子序列AS1完成的时间T2处,可给第二原子定序器242分配信号量。在时间T2之前,第一原子定序器241处理与原子序列AS1对应的多个交易并释放信号量位值。
在时间T2处,接口250接收第二原子定序器242反复发送以获取信号量的第一交易。因此,信号量位值被设置以指定第二原子定序器242。如果第二原子定序器242的原子序列AS2开始,则与用于提高电压电平的请求对应的多个交易可被发出给电源管理IC 300。如果原子序列AS2的最后一个交易被发送到接口250,则接口250向电源管理IC 300提供控制命令或信号。
在时间T3处,电源管理IC 300响应于通过接口250传输的控制命令来提高驱动电压VDD的电平。如果用于唤醒的驱动电压VDD的期望的、减少的和/或最小的电平是第一电平VDD1,则片上系统200的唤醒在时间T4之后被激活。
在时间T4处,由电源管理IC 300提供的驱动电压可升高超过第一电平VDD1。此后,可执行用于唤醒片上系统200的整体操作。
如上所述,通信处理器220的关于访问电源管理IC 300的请求可在与由应用处理器210执行的原子序列AS1对应的时间ΔT1之后发出。驱动电压VDD的电平可在与原子序列AS2对应的时间ΔT2之后升高,其中,在第二原子定序器242和接口250之间执行原子序列AS2。此外,正常操作的是可能的,这意味着另外需要时间ΔT3,直到驱动电压VDD的电平达到“VDD1”。根据发明构思的一些示例实施例,信号量可通过原子序列来分配,从而防止需要实时控制的主设备盲目地等待。
在通信处理器220的关于访问电源管理IC 300的请求被传送到电源管理IC 300时的最差情况下的等待时间可以是与应用处理器210对应的第一原子定序器241的原子序列AS1。由于使用通信处理器220的原子序列的长度,所以可容易针对需要实时控制的各种操作进行任务调度。
图11是示意性地示出根据发明构思的仍然至少一个示例实施例的片上系统的框图。参照图11,片上系统400至少包括与接口450的主设备对应的多个处理器410、415和420以及信号量单元440,以控制关于每个处理器的信号量。使用处理器410、415和420作为主设备的单个从设备500通过接口450连接,但是,示例实施例并不限于此,根据这里呈示的发明构思,可存在由多个主装置共享的多个从装置。
处理器410、415和420可以是由具有不同的属性或者相同的属性的操作系统驱动的处理器。此外,处理器410、415和420可以是由具有不同的安全级别或者相同的安全级别的操作系统驱动的处理器。在对处理器410、415和420中的每个驱动的软件中,通过总线矩阵430在信号量单元440处请求访问单个从设备500,而无需考虑信号量。
信号量单元440至少包括执行关于处理器410、415和420的接口450的原子序列的多个原子定序器441、442和443以及信号量控制器445。原子定序器441、442和443中的每个根据信号量控制器445的控制将相应处理器的关于访问接口450的请求发送到接口450。在接收到关于接口450的访问请求时,原子定序器441、442和443中的每个通过原子序列获取信号量并将访问请求发送到接口450。原子定序器441、442和443在一个原子序列终止之后释放信号量。
接口450充当由原子定序器441、442和443当中的获取信号量的一个原子定序器执行的原子序列的通道。也就是说,接口450的寄存器通过由原子定序器441、442和443当中的获取信号量的一个原子定序器执行的原子序列被编程。接口450可根据在寄存器处编程的值向单个从设备500提供命令或控制信号。
在片上系统400中,在通过被称为“原子序列”的操作单元(即,期望的操作期)分配信号量时,处理器410、415和420可共享一个从设备。片上系统400包括信号量单元440,以分配信号量。在信号量单元440的控制下,处理器410、415和420可通过原子序列来占用接口450。在任何一个处理器占用接口450时的期望的、增加的和/或最大的时间可通过信号量单元440的介入来被确定和/或固定,并且接口450的信号量在经过固定的占用时间时被释放。因此,在任何一个处理器占用接口450的时间被预测时,可以给必需对单个从设备500进行实时控制的主设备提供调度设施。
根据发明构思的至少一个示例实施例的存储器系统可根据各种不同的封装技术中的任何一个被封装。这种封装技术的示例可包括如下:PoP(堆叠封装)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫裸片封装(die in waffle pack)、晶片形式的裸片(die in wafer form)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、小外形IC(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、薄型四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)和晶片级处理堆叠封装(WSP)等等。
使用附加硬件来配置关于要共享的接口的信号量,从而使得主设备有效地驱动一个从设备成为可能。另外,在主设备访问从设备时,任何其他主设备的等待时间被确定和/或固定,从而更容易地改进调度和/或进行调度。
这里描述的单元和/或模块可使用硬件组件、软件组件或其组合来实现。例如,硬件组件可包括微控制器、存储器模块、传感器、放大器、带通滤波器、模拟数字转换器和处理装置等。处理装置可使用被配置为通过执行算术、逻辑和输入/输出操作来进行和/或执行程序代码的一个或更多个硬件装置来实现。一个或更多个处理装置可包括处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程阵列、可编程逻辑单元、微处理器或能够以限定的方式对指令做出响应和执行指令的任何其它装置。处理装置可运行操作系统(OS)和在OS上运行的一个或更多个软件应用。处理装置还可响应于软件的执行来访问、存储、操纵、处理和创建数据。为了简单的目的,作为单数使用处理装置的描述;但是,本领域的技术人员将认识到,处理装置可以包括多个处理元件和多种类型的处理元件。例如,处理装置可以包括多个处理器或一个处理器和控制器。另外,不同的处理配置是可能的,例如,并行处理器、多核处理器、分布式处理等。
软件可包括计算机程序、一段代码、指令或它们的一些组合,以独立地或共同地指示和/或配置处理装置来如需地操作,从而将处理装置变换为专用处理器。软件和数据可在任何类型的机器、组件、物理或虚拟设备,或计算机存储介质或装置中永久或暂时地实施。软件也可被分布在网络耦合计算机系统上,从而软件以分布的方式被存储和执行。软件和数据可由一个或更多个非暂态计算机可读记录介质来存储。
根据上述示例实施例的方法可被记录在包括程序指令的非暂态计算机可读介质中,以实现上述示例实施例的各种操作。介质也可单独地包括数据文件、数据结构等,或者与程序指令结合地包括数据文件、数据结构等。出于一些示例实施例的目的,记录在介质上的程序指令可以是那些被特别地设计和构造的程序指令,或它们可属于计算机软件领域的技术人员所公知并可用的那一种。非暂态计算机可读介质的示例包括:磁介质,例如硬盘、软盘和磁带;光学介质,例如CD-ROM盘、DVD和/或蓝光盘(Blue-ray disc);磁光介质,例如光盘;以及被专门配置为存储并执行程序指令的硬件装置,例如只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器(例如,USB闪存驱动器,存储卡,记忆棒(memory stick)等),等等。程序指令的示例包括机器代码(例如由编译器产生的机器代码)和包含可由使用解释器的计算机执行的更高级代码的文件。上述装置可被配置为充当一个或更多个软件模块,以执行上述示例实施例的操作,反之亦然。
应该理解,这里描述的示例实施例应该仅仅在描述性的意义上而不是出于限制的目的被考虑。根据示例实施例的每个装置或方法中的特征或方面的描述通常应被认为可用于根据示例实施例的其他装置或方法的其他类似的特征或方面。虽然已经对一些示例实施例进行了具体地示出和描述,但是本领域的普通技术人员将理解,在不脱离权利要求的精神和范围的情况下,可对其进行形式和细节上的各种改变。
Claims (23)
1.一种片上系统,所述片上系统包括:
多个主设备;
接口,被配置为将所述多个主设备与从装置连接;以及
信号量逻辑电路,被配置为
检测来自所述多个主设备的至少一个访问请求,所述访问请求指示访问接口和控制从装置的请求,并且
根据检测结果针对期望的操作期给所述多个主设备中的一个分配信号量,
其中,信号量逻辑电路包括:
多个原子定序器,被配置为从主设备接收访问请求,并且响应于访问请求,原子定序器发送获取用于接口的信号量的请求;以及
信号量控制器,被配置为响应于接收到原子定序器获取信号量的请求而分配信号量给原子定序器中的一个。
2.根据权利要求1所述的片上系统,其中,所述期望的操作期对应于接口将多个交易发送给从装置的持续时间,所述交易包括命令或控制信号。
3.根据权利要求1所述的片上系统,其中,原子定序器中的每个发送用于访问接口的交易,直至分配信号量。
4.根据权利要求3所述的片上系统,其中,信号量控制器将信号量分配给与由原子定序器发送的交易当中的由接口接收到的第一交易对应的原子定序器。
5.根据权利要求4所述的片上系统,其中,被分配了信号量的原子定序器在与所述期望的操作期对应的至少一个交易的交换完成时释放分配的信号量。
6.根据权利要求4所述的片上系统,其中,信号量控制器管理用于分配信号量给原子定序器中的一个的信号量位。
7.根据权利要求3所述的片上系统,其中,原子定序器在所述期望的操作期的交易的交换完成时发出中断信号给对应的主设备。
8.根据权利要求1所述的片上系统,其中,原子定序器被配置为管理对应的主设备对接口的访问。
9.根据权利要求8所述的片上系统,其中,主设备是处理器,每个处理器由操作系统驱动,每个处理器的操作系统具有不同的属性。
10.根据权利要求1所述的片上系统,其中,接口是集成电路间接口。
11.一种将多个主设备与从装置连接的接口的信号量分配方法,所述信号量分配方法包括下述步骤:
从主设备接收对接口的访问请求;
响应于从主设备接收到的访问请求,将第一交易发送到接口;
检测接口是否接收到第一交易;
在接收到第一交易时,给所述多个主设备中的与第一交易对应的第一主设备分配信号量,并且执行用于将接收到的访问请求发送到从装置的原子序列;以及
在原子序列完成时,释放被分配给第一主设备的信号量。
12.根据权利要求11所述的信号量分配方法,所述信号量分配方法还包括:
在原子序列完成时,将中断信号发送到第一主设备。
13.根据权利要求11所述的信号量分配方法,其中,原子序列包括用于编程或读取接口的寄存器以将接收到的访问请求从接口发送到从装置的多个交易。
14.根据权利要求11所述的信号量分配方法,其中,检测的步骤包括:
如果第一交易被接口拒绝,则不给第一主设备分配信号量,并且将第一交易再次发送到接口。
15.根据权利要求11所述的信号量分配方法,其中,释放信号量的步骤包括:
读取接口的多个控制寄存器当中的与特定地址对应的寄存器。
16.根据权利要求15所述的信号量分配方法,所述信号量分配方法还包括:
检测与对应于所述特定地址的寄存器相关联的读取操作;以及
释放被分配给第一主设备的信号量。
17.一种片上系统,所述片上系统包括:
应用处理器,被配置为访问从装置;
通信处理器,被配置为访问从装置;
接口,被配置为与应用处理器和通信处理器连接并与作为从装置的外部装置连接;以及
信号量逻辑电路,被配置为检测应用处理器或通信处理器对访问接口的请求;并且
根据检测结果,针对期望的操作期给应用处理器或通信处理器分配对接口的优先权,
其中,信号量逻辑电路包括:
第一原子定序器,被配置为接收应用处理器的关于对接口的访问的请求,以获取对接口的优先权;
第二原子定序器,被配置为接收通信处理器的对接口的访问的请求,以获取关于接口的优先权;
信号量控制器,被配置为检测第一原子定序器和第二原子定序器对接口的访问,以针对第一原子定序器和第二原子定序器中的一个分配或释放优先权。
18.根据权利要求17所述的片上系统,其中,外部装置是电源管理集成电路。
19.根据权利要求17所述的片上系统,其中,特定操作单元对应于多个交易,所述多个交易允许接口发送与请求对应的命令或控制信号并在第一原子定序器或第二原子定序器与接口之间交换。
20.根据权利要求17所述的片上系统,其中,第一原子定序器或第二原子定序器的访问尝试是构成特定操作单元的交易中的第一交易的转移。
21.根据权利要求20所述的片上系统,其中,信号量控制器将优先权分配给与第一原子定序器和第二原子定序器分别发送的第一交易当中的由接口接收到的一个第一交易对应的原子定序器。
22.根据权利要求17所述的片上系统,其中,被分配了信号量的原子定序器在与特定操作单元对应的多个交易完成时释放获取的关于接口的优先权。
23.根据权利要求17所述的片上系统,其中,第一原子定序器或第二原子定序器在与特定操作单元对应的多个交易的交换完成时向应用处理器或通信处理器发出中断信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140155558A KR102285749B1 (ko) | 2014-11-10 | 2014-11-10 | 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법 |
KR10-2014-0155558 | 2014-11-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105589831A CN105589831A (zh) | 2016-05-18 |
CN105589831B true CN105589831B (zh) | 2020-11-06 |
Family
ID=55912327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510738756.0A Active CN105589831B (zh) | 2014-11-10 | 2015-11-04 | 具有信号量功能的片上系统和信号量分配方法 |
Country Status (4)
Country | Link |
---|---|
US (7) | US9940278B2 (zh) |
KR (1) | KR102285749B1 (zh) |
CN (1) | CN105589831B (zh) |
TW (1) | TWI673955B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105280149B (zh) * | 2015-11-11 | 2017-11-17 | 深圳市华星光电技术有限公司 | 一种Mura补偿数据写入装置及方法 |
US20180191066A1 (en) * | 2016-12-30 | 2018-07-05 | Andrey Orlov | Base station on system-on-chip |
US10419063B2 (en) | 2016-12-30 | 2019-09-17 | Waviot Integrated Systems, Llc | Method and system for receiving telemetry messages over RF channel |
US10210116B2 (en) | 2017-04-27 | 2019-02-19 | Qualcomm Incorporated | Method, apparatus, and system for semaphore-based protection of power-domain-crossing signals |
CN108197046A (zh) * | 2017-12-30 | 2018-06-22 | 盛科网络(苏州)有限公司 | 一种实现原子操作的系统及方法 |
KR102568234B1 (ko) * | 2018-10-08 | 2023-08-17 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 반도체 시스템 |
CN112559210B (zh) * | 2020-12-16 | 2024-05-07 | 北京仿真中心 | 一种基于rtx实时系统的共享资源读写互斥方法 |
KR20220135048A (ko) | 2021-03-29 | 2022-10-06 | 삼성전자주식회사 | 버스를 통해 자원을 공유하기 위한 장치 및 방법 |
CN114461550A (zh) * | 2021-12-16 | 2022-05-10 | 加弘科技咨询(上海)有限公司 | 基于i2c通信的多主控设备访问仲裁系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1896983A (zh) * | 2005-07-15 | 2007-01-17 | 三星电子株式会社 | 具有可切换连接的通信系统 |
US8487655B1 (en) * | 2009-05-05 | 2013-07-16 | Cypress Semiconductor Corporation | Combined analog architecture and functionality in a mixed-signal array |
US8676273B1 (en) * | 2007-08-24 | 2014-03-18 | Iwao Fujisaki | Communication device |
CN104094233A (zh) * | 2012-02-23 | 2014-10-08 | 日立汽车系统株式会社 | 车辆用控制装置 |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303344A (en) * | 1989-03-13 | 1994-04-12 | Hitachi, Ltd. | Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer |
US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
DE69223304T2 (de) * | 1991-09-27 | 1998-06-18 | Sun Microsystems Inc | Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus |
JPH06231074A (ja) * | 1993-01-29 | 1994-08-19 | Nec Corp | システムバスの多重アクセス方式 |
US5717873A (en) * | 1993-09-30 | 1998-02-10 | Intel Corporation | Deadlock avoidance mechanism and method for multiple bus topology |
US5557783A (en) * | 1994-11-04 | 1996-09-17 | Canon Information Systems, Inc. | Arbitration device for arbitrating access requests from first and second processors having different first and second clocks |
JPH08147205A (ja) * | 1994-11-18 | 1996-06-07 | Nec Corp | ディスク共有システム |
US5758105A (en) * | 1995-12-04 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for bus arbitration between isochronous and non-isochronous devices |
US5872980A (en) * | 1996-01-25 | 1999-02-16 | International Business Machines Corporation | Semaphore access control buffer and method for accelerated semaphore operations |
US6574688B1 (en) * | 1999-01-05 | 2003-06-03 | Agere Systems Inc. | Port manager controller for connecting various function modules |
US6253268B1 (en) | 1999-01-15 | 2001-06-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for multiplexing a second interface on an I2C interface |
EP1161817B1 (en) * | 1999-03-17 | 2006-10-25 | Broadcom Corporation | Network switch |
JP4066838B2 (ja) * | 2003-02-19 | 2008-03-26 | 富士通株式会社 | 共有リソースの競合検出器および共有リソースの競合検出方法 |
US7653757B1 (en) * | 2004-08-06 | 2010-01-26 | Zilker Labs, Inc. | Method for using a multi-master multi-slave bus for power management |
JP4025260B2 (ja) | 2003-08-14 | 2007-12-19 | 株式会社東芝 | スケジューリング方法および情報処理システム |
US7143220B2 (en) * | 2004-03-10 | 2006-11-28 | Intel Corporation | Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies |
US20060026329A1 (en) * | 2004-07-30 | 2006-02-02 | Yu James K | System and method for an arbiter rewind |
JP2006119724A (ja) | 2004-10-19 | 2006-05-11 | Canon Inc | Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム |
JP4504153B2 (ja) | 2004-10-20 | 2010-07-14 | オリンパス株式会社 | 液浸対物光学系 |
US7610463B2 (en) * | 2004-10-22 | 2009-10-27 | Qualcomm Incorporated | Method and apparatus for performing an atomic semaphore operation |
US8156272B2 (en) * | 2006-09-01 | 2012-04-10 | Spansion Llc | Multiple communication channels on MMC or SD CMD line |
JP4655032B2 (ja) | 2006-12-05 | 2011-03-23 | 日亜化学工業株式会社 | 半導体装置 |
US20090055005A1 (en) * | 2007-08-23 | 2009-02-26 | Horizon Semiconductors Ltd. | Audio Processor |
US7865644B2 (en) * | 2007-10-30 | 2011-01-04 | International Business Machines Corporation | Method and apparatus for attaching multiple slave devices to a single bus controller interface while supporting command pipelining |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
WO2009096161A1 (ja) * | 2008-01-29 | 2009-08-06 | Panasonic Corporation | プロセッサ性能解析装置、方法及びシミュレータ |
JP2010026575A (ja) | 2008-07-15 | 2010-02-04 | Nec Electronics Corp | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム |
US8695002B2 (en) * | 2009-10-20 | 2014-04-08 | Lantiq Deutschland Gmbh | Multi-threaded processors and multi-processor systems comprising shared resources |
US11221764B2 (en) * | 2010-01-29 | 2022-01-11 | Mosys, Inc. | Partitioned memory with shared memory resources and configurable functions |
JP2011232956A (ja) | 2010-04-27 | 2011-11-17 | Clarion Co Ltd | コンピュータシステムとプログラム |
EP2575039B1 (de) * | 2011-09-28 | 2016-12-14 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Nutzung einer Ressource einer Hardware-Plattform mit zumindest zwei virtuellen Maschinen |
JP5863021B2 (ja) | 2011-10-31 | 2016-02-16 | Necプラットフォームズ株式会社 | マルチプロセッサシステム、及びマルチプロセッサシステムの制御方法 |
KR101944329B1 (ko) | 2012-04-17 | 2019-04-18 | 삼성전자주식회사 | 멀티프로세서 시스템 및 그것의 캐쉬 관리 방법 |
US20140006644A1 (en) * | 2012-06-28 | 2014-01-02 | Lsi Corporation | Address Remapping Using Interconnect Routing Identification Bits |
JP6051721B2 (ja) | 2012-09-19 | 2016-12-27 | 株式会社ソシオネクスト | 実行制御方法、およびマルチプロセッサシステム |
US10353837B2 (en) * | 2013-09-09 | 2019-07-16 | Qualcomm Incorporated | Method and apparatus to enable multiple masters to operate in a single master bus architecture |
US9390033B2 (en) * | 2013-11-13 | 2016-07-12 | Sandisk Technologies Llc | Method and system for communicating with non-volatile memory via multiple data paths |
US9360925B2 (en) * | 2014-05-13 | 2016-06-07 | Netapp, Inc. | Power switching technique for archival data storage enclosure |
US9858230B2 (en) * | 2015-02-20 | 2018-01-02 | Cisco Technology, Inc. | Multi-host hot-plugging of multiple cards |
KR102360214B1 (ko) * | 2015-08-26 | 2022-02-08 | 삼성전자주식회사 | 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법 |
KR102660519B1 (ko) * | 2016-08-01 | 2024-04-25 | 삼성전자주식회사 | 외부 장치를 인식하는 방법 및 이를 지원하는 전자 장치 |
-
2014
- 2014-11-10 KR KR1020140155558A patent/KR102285749B1/ko active IP Right Grant
-
2015
- 2015-10-07 TW TW104132911A patent/TWI673955B/zh active
- 2015-10-07 US US14/877,653 patent/US9940278B2/en active Active
- 2015-11-04 CN CN201510738756.0A patent/CN105589831B/zh active Active
-
2018
- 2018-02-20 US US15/899,877 patent/US10176136B2/en active Active
- 2018-11-15 US US16/192,019 patent/US10678728B2/en active Active
-
2020
- 2020-03-17 US US16/821,289 patent/US11080220B2/en active Active
-
2021
- 2021-07-15 US US17/376,590 patent/US11599491B2/en active Active
-
2023
- 2023-03-06 US US18/179,052 patent/US11835993B2/en active Active
- 2023-11-20 US US18/515,091 patent/US20240086354A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1896983A (zh) * | 2005-07-15 | 2007-01-17 | 三星电子株式会社 | 具有可切换连接的通信系统 |
US8676273B1 (en) * | 2007-08-24 | 2014-03-18 | Iwao Fujisaki | Communication device |
US8487655B1 (en) * | 2009-05-05 | 2013-07-16 | Cypress Semiconductor Corporation | Combined analog architecture and functionality in a mixed-signal array |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
CN104094233A (zh) * | 2012-02-23 | 2014-10-08 | 日立汽车系统株式会社 | 车辆用控制装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI673955B (zh) | 2019-10-01 |
US11080220B2 (en) | 2021-08-03 |
US20190087370A1 (en) | 2019-03-21 |
US11599491B2 (en) | 2023-03-07 |
US20210342283A1 (en) | 2021-11-04 |
CN105589831A (zh) | 2016-05-18 |
TW201622353A (zh) | 2016-06-16 |
US20230205717A1 (en) | 2023-06-29 |
US10678728B2 (en) | 2020-06-09 |
US20160132451A1 (en) | 2016-05-12 |
US20200218682A1 (en) | 2020-07-09 |
KR20160056382A (ko) | 2016-05-20 |
US9940278B2 (en) | 2018-04-10 |
KR102285749B1 (ko) | 2021-08-05 |
US11835993B2 (en) | 2023-12-05 |
US20240086354A1 (en) | 2024-03-14 |
US20180173662A1 (en) | 2018-06-21 |
US10176136B2 (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589831B (zh) | 具有信号量功能的片上系统和信号量分配方法 | |
US8700830B2 (en) | Memory buffering system that improves read/write performance and provides low latency for mobile systems | |
US9430411B2 (en) | Method and system for communicating with non-volatile memory | |
KR101247247B1 (ko) | 클락 신호의 출력을 제어할 수 있는 컨트롤러 및 상기 컨트롤러를 구비하는 시스템 | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
US9390033B2 (en) | Method and system for communicating with non-volatile memory via multiple data paths | |
CN110647359B (zh) | 半导体装置、其操作方法和具有其的层叠存储装置 | |
JP2007219816A (ja) | マルチプロセッサシステム | |
CN103106164A (zh) | 一种高效dma控制器 | |
KR20200129700A (ko) | 컨트롤러 및 이를 포함하는 메모리 시스템 | |
US20150134882A1 (en) | Method and system for using templates to communicate with non-volatile memory | |
US20150177816A1 (en) | Semiconductor integrated circuit apparatus | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
CN111679992A (zh) | 用于管理对共享总线访问的方法和对应的电子设备 | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
CN103106157B (zh) | 存储器控制元件 | |
WO2015073608A1 (en) | Method and system for communicating with non-volatile memory | |
KR101916644B1 (ko) | 마스터 버스의 우선순위를 고려한 메모리 제어 방법 | |
CN110568991B (zh) | 降低锁引起的io命令冲突的方法与存储设备 | |
JP4862593B2 (ja) | データ転送装置及び画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |