本发明涉及通信,特别是涉及一种服务器、访问双列直插式内存控制模块的装置及集成电路。
背景技术:
1、i3c(improved inter integrated circuit,升级两线式串行总线)是i2c(inter-integrated circuit,两线式串行总线)的改进。i3c属于两线双向串行总线,一次只能由一个i3c主机控制。并且i3c向后兼容许多旧版i2c设备,且i3c设备支持更高的速度。在ddr4(double data rate 4th generation,第四代的双倍数据速率)存储器中,每个dimm(dual-inline-memory-modules,双列直插式内存控制模块)上,有两个设备连接在i2c总线上,分别是dimm的温度传感器和寄存时钟驱动器,i2c的频率一般在100khz至1mhz之间,较慢的传输速度在这种情况下还不凸显,但ddr5的到来让情况发生了变化。在ddr5的dimm中,一般有7个i3c从机,这让一个串行链中的ixc从机从16个变成了56个,大大增加了负担。i3c的频率可达到12.5mhz,相较i2c提升了12.5倍至125倍,大幅提高了启动速度,尤其是服务器bios(basic input output system,基本输入输出系统)的启动速度。
2、可参阅图1,为目前的i3c主机的结构示意图,寄存器配置模块是把寄存器读写总线上的信号转换成内部读写逻辑,从而读取或者写入各个寄存器的数值,且可以根据主机内部逻辑更新特定寄存器的值。主机控制逻辑模块是控制作为主机时数据发送和接收的模块,会根据不同的总线状态设置不同的状态机,根据状态机的变化来控制数据的发送和接收,主机控制逻辑模块会根据总线监控信号和寄存器的数值来控制状态机之间的状态变化,进而根据这些状态,写和读取主机写控制模块、主机读控制模块、主机sir控制模块的信号值。
3、目前的方案中,i3c主机读写的数据通过寄存器读写总线和cpu(centralprocessing unit,中央处理器)之间传输,传输命令寄存器每次传输结束后才能通知cpu配置新的传输命令,对于i3c这种数据传输速率比较快的总线,当cpu没有及时读走i3c主机中的数据时,就容易出现读写数据不及时而产生时钟停转的情况,从而导致数据传输效率变低或者传输失败。此外,对于读取从机数据的i3c操作,i3c总线也可能会产生时钟停转,甚至出现传输失败。
4、综上所述,如何有效地解决主机读写从机时容易产生的时钟停转问题,是目前本领域技术人员急需解决的技术问题。
技术实现思路
1、本发明的目的是提供一种服务器、访问双列直插式内存控制模块的装置及集成电路,以有效地解决主机读写从机时容易产生的时钟停转问题。
2、为解决上述技术问题,本发明提供如下技术方案:
3、第一方面,本发明提供了一种集成电路,所述集成电路作为主机,基于通信总线与从机通信连接,且所述集成电路包括:数据读写控制模块、传输控制模块、寄存器模块以及主机控制模块;
4、所述数据读写控制模块用于:获取被写入寄存器模块的读写指令信息,并基于所述读写指令信息,通过数据读写总线,进行自身的存储介质与所述主机外部的存储器之间的数据传递;
5、其中,所述存储器与中央处理器通信连接,且所述数据读写控制模块与所述存储器之间的通信速率高于所述通信总线的通信速率;
6、所述传输控制模块用于:在所述主机进行与所述从机之间的指定类型的通信时,基于所述寄存器模块中的数值,进行所述数据读写控制模块的存储介质与所述主机控制模块之间的数据传递;
7、所述主机控制模块,用于基于所述寄存器模块中的数值以及预设的通信协议,进行所述主机与所述从机之间的通信控制,以在所述主机进行与所述从机之间的指定类型的通信时,通过所述传输控制模块完成所述从机与所述数据读写控制模块之间的数据传递。
8、另一方面,所述数据读写控制模块包括数据读写总线控制单元,数据读写逻辑单元,第一先入先出存储器以及第二先入先出存储器;
9、所述数据读写总线控制单元用于:通过所述数据读写总线,并基于所述数据读写总线的协议类型,进行与所述主机外部的存储器之间的数据传递;
10、所述数据读写逻辑单元与所述数据读写总线控制单元通信连接,具体用于:
11、在空闲状态下,检测到所述读写指令信息中的读写使能信号使能时,基于所述读写指令信息中的数据传输长度,判断是否为带内中断传输模式;
12、如果否,则基于所述读写指令信息,按照默认传输模式,进行所述第一先入先出存储器或所述第二先入先出存储器与所述主机外部的存储器之间的数据传递;
13、如果是,则基于所述读写指令信息,按照带内中断传输模式,进行所述第二先入先出存储器与所述主机外部的存储器之间的数据传递。
14、另一方面,基于所述读写指令信息,按照默认传输模式,进行所述第一先入先出存储器或所述第二先入先出存储器与所述主机外部的存储器之间的数据传递,包括:
15、获取所述读写指令信息中的读写控制信号;
16、当所述读写控制信号为表示写传输的读写控制信号,且所述第一先入先出存储器未存满时,基于所述读写指令信息中的外部存储器读写起始地址以及所述数据传输长度,从所述主机外部的存储器中读取数据并写入所述第一先入先出存储器;
17、当所述读写控制信号为表示读传输的读写控制信号,且所述第二先入先出存储器不为空时,基于所述读写指令信息中的外部存储器读写起始地址以及所述数据传输长度,读取所述第二先入先出存储器中的数据并写入所述主机外部的存储器中。
18、另一方面,基于所述读写指令信息,按照带内中断传输模式,进行所述第二先入先出存储器与所述主机外部的存储器之间的数据传递,包括:
19、判断所述第二先入先出存储器是否为空;
20、如果所述第二先入先出存储器为空,则保持等待;
21、如果所述第二先入先出存储器不为空,则基于所述读写指令信息中的外部存储器读写起始地址,读取所述第二先入先出存储器中的指定长度的数据并写入所述主机外部的存储器中;
22、判断所述读写使能信号是否为0;
23、如果所述读写使能信号为0,则跳转为空闲状态,
24、如果所述读写使能信号不为0,则更新所述主机外部的存储器的写入地址,并返回执行所述判断所述第二先入先出存储器是否为空的操作。
25、另一方面,所述传输控制模块包括:跨时钟域转换单元、外设地址转换单元、寄存器地址转换单元、传输执行单元、响应和中断状态生成单元、以及传输控制单元;
26、所述跨时钟域转换单元与所述寄存器模块通信连接,用于在与所述寄存器模块之间通信时,对所传输的信号在不同时钟域中进行转换;其中,所述跨时钟域转换模块所使用的时钟域为主时钟域,所述寄存器模块所使用的时钟域为寄存器时钟域;
27、所述外设地址转换单元用于:在所述主机与所述从机通信时,基于所述从机的内存条编号以及所述从机的从机编号,转换出所述从机的地址;
28、所述寄存器地址转换单元用于:在所述主机与所述从机通信时,基于所述从机的设备类型,生成所述从机的受访问寄存器的地址参数;
29、所述传输执行单元用于:在所述传输控制单元的控制下,进行所述数据读写控制模块的存储介质与所述主机控制模块之间的数据传递,以及所传递数据中所携带的校验码的生成;
30、响应和中断状态生成单元,用于在所述主机与所述从机通信时,在所述传输控制单元和所述主机控制模块的控制下,输出响应和中断状态信号;
31、所述传输控制单元用于:在所述主机进行与所述从机之间的指定类型的通信时,基于所述寄存器模块中的数值以及所述传输执行单元,实现所述数据读写控制模块的存储介质与所述主机控制模块之间的数据传递。
32、另一方面,所述传输控制模块中还包括通用命令码传输参数转换单元,用于:
33、基于通用命令码,选择将相应的通用命令码寄存器中的寄存器数据转换为自身的输出参数,以通过所述传输执行单元传输至所述通信总线;
34、当通过所述传输执行单元接收到源自所述通信总线的数据时,基于所接收到的源自所述通信总线的数据以及所述通用命令码,更新相应的通用命令码寄存器中的寄存器数据。
35、另一方面,所述寄存器地址转换单元包括:
36、串行检测集线器寄存器地址转换子单元,用于生成串行检测集线器寄存器的地址参数;
37、电源管理集成电路寄存器地址转换子单元,用于生成电源管理集成电路寄存器的地址参数;
38、温度传感器寄存器地址转换子单元,用于生成温度传感器寄存器的地址参数;
39、寄存时钟驱动器寄存器地址转换子单元,用于生成寄存时钟驱动器寄存器的地址参数。
40、另一方面,所述传输控制单元还用于:
41、当检测出带内中断使能信号使能时,执行带内中断处理流程;
42、当检测出带内中断使能信号未使能,且命令有效信号使能时,判断是否为通用命令码传输;
43、如果是通用命令码传输,则执行通用命令码传输流程;
44、如果不是通用命令码传输,则执行默认传输流程。
45、另一方面,当检测出带内中断使能信号使能时,执行带内中断处理流程,包括:
46、在第一状态时,当检测出带内中断使能信号使能时,进入第二状态;其中,在所述第一状态时,所述传输控制单元为空闲状态;
47、在所述第二状态时,将所述带内中断使能信号发送至所述响应和中断状态生成单元,并根据接收的带内中断地址信号和带内中断校验寄存器判断本次带内中断是否具有数据包错误检查校验码;如果是,则将连接至所述传输执行单元的数据包错误检查使能信号拉高,如果否,则将所述数据包错误检查使能信号拉低;当接收到外部的传输完成信号时,进入第三状态;
48、在所述第三状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,并基于所述传输执行单元发送的带内中断长度,将相应地传输长度信号发送至所述响应和中断状态生成单元,跳转至所述第一状态。
49、另一方面,当检测出带内中断使能信号未使能,且命令有效信号使能时,判断是否为通用命令码传输;如果是通用命令码传输,则执行通用命令码传输流程,包括:
50、在第一状态时,当检测出带内中断使能信号未使能,且命令有效信号使能时,进入第四状态;
51、在所述第四状态时,判断是否为通用命令码传输;如果是通用命令码传输,则进入第五状态;
52、在所述第五状态时,判断通用命令码是否小于第一阈值;
53、如果小于第一阈值,则进行通用命令码广播写,并在完成之后跳转至所述第一状态;
54、如果不小于所述第一阈值,则进行通用命令码直接读写,并在完成之后跳转至所述第一状态。
55、另一方面,进行通用命令码广播写,并在完成之后跳转至所述第一状态,包括:
56、在判断通用命令码小于第一阈值之后进入第六状态;
57、在所述第六状态时,等待所述传输执行单元进行通用命令码广播写,当接收到传输完成信号时,进入第十二状态;
58、在所述第十二状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,之后跳转至所述第一状态。
59、另一方面,进行通用命令码直接读写,并在完成之后跳转至所述第一状态,包括:
60、在判断通用命令码不小于第一阈值之后进入第七状态;
61、在所述第七状态时,判断命令寄存器中的读写位是否为表示写的数值,如果是,则进入第八状态;如果否,则进入第十状态;
62、在所述第八状态时,等待所述传输执行单元进行通用命令码的直接写,当接收到传输完成信号时,进入第九状态;
63、在所述第九状态时,等待所述传输执行单元进行负载数据的直接写,当接收到传输完成信号时,进入第十二状态;
64、在所述第十状态时,等待所述传输执行单元进行通用命令码的直接读,当接收到传输完成信号时,进入第十一状态;
65、在所述第十一状态时,等待所述传输执行单元进行负载数据的直接读,当接收到传输完成信号时,进入所述第十二状态;
66、在所述第十二状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,之后跳转至所述第一状态。
67、另一方面,执行默认传输流程,包括:
68、基于所述从机的从机编号,确定所述从机的设备类型;
69、基于所述设备类型执行默认传输流程。
70、另一方面,基于所述设备类型执行默认传输流程,包括:
71、当所述设备类型为串行检测集线器时,执行默认传输流程,以对所述串行检测集线器进行数据读写;
72、当所述设备类型为电源管理集成电路或者温度传感器时,执行默认传输流程,以对所述电源管理集成电路或者所述温度传感器进行数据读写;
73、当所述设备类型为寄存时钟驱动器时,执行默认传输流程,以对所述寄存时钟驱动器进行数据读写。
74、另一方面,当所述设备类型为串行检测集线器时,执行默认传输流程,以对所述串行检测集线器进行数据读写,包括:
75、当所述设备类型为串行检测集线器时,进入第十四状态;
76、在所述第十四状态时,判断命令寄存器中的读写位是否为表示写的数值,如果是,则进入第十五状态;如果否,则进入第十六状态;
77、在所述第十五状态时,等待所述传输执行单元进行串行检测集线器的私有写,并输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
78、在所述第十六状态时,等待所述传输执行单元进行所述串行检测集线器的私有读,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第十七状态;
79、在所述第十七状态时,根据传输长度信号输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
80、在所述第二十六状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,之后跳转至所述第一状态。
81、另一方面,当所述设备类型为电源管理集成电路或者温度传感器时,执行默认传输流程,以对所述电源管理集成电路或者所述温度传感器进行数据读写,包括:
82、当所述设备类型为电源管理集成电路或者温度传感器时,进入第十八状态;
83、在所述第十八状态时,判断命令寄存器中的读写位是否为表示写的数值,如果是,则进入第十九状态;如果否,则进入第二十状态;
84、在所述第十九状态时,等待所述传输执行单元进行所述电源管理集成电路或者所述温度传感器的私有写,并输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
85、在所述第二十状态时,等待所述传输执行单元进行所述电源管理集成电路或者所述温度传感器的私有读,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十一状态;
86、在所述第二十一状态时,根据传输长度信号输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
87、在所述第二十六状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,之后跳转至所述第一状态。
88、另一方面,当所述设备类型为寄存时钟驱动器时,执行默认传输流程,以对所述寄存时钟驱动器进行数据读写,包括:
89、当所述设备类型为寄存时钟驱动器时,进入第二十二状态;
90、在所述第二十二状态时,判断命令寄存器中的读写位是否为表示写的数值,如果是,则进入第二十三状态;如果否,则进入第二十四状态;
91、在所述第二十三状态时,等待所述传输执行单元进行所述寄存时钟驱动器的私有写,并输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
92、在所述第二十四状态时,等待所述传输执行单元进行所述寄存时钟驱动器的私有读,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十五状态;
93、在所述第二十五状态时,根据传输长度信号输出数据包错误检查校验码长度给所述传输执行单元,并对所述传输执行单元进行数据包错误检查的功能使能;当接收到传输完成信号时,进入第二十六状态;
94、在所述第二十六状态时,将所述传输完成信号发送至所述响应和中断状态生成单元,之后跳转至所述第一状态。
95、另一方面,所述传输执行单元包括数据包错误检查校验子单元,第三先入先出存储器,第四先入先出存储器,以及传输参数输出子单元;
96、所述数据包错误检查校验子单元,用于在所述传输控制单元的控制下,利用所述第三先入先出存储器和所述第四先入先出存储器,进行所述数据读写控制模块的存储介质与所述主机控制模块之间的数据传递,以及所传递数据中所携带的校验码的生成;
97、所述传输参数输出子单元,用于在所述传输控制单元的控制下,进行向所述主机控制模块进行参数传递。
98、另一方面,所述主机具体基于升级两线式串行总线与从机通信连接,所述主机外部的存储器为双倍速率同步动态随机存储器。
99、第二方面,本发明提供了一种访问双列直插式内存控制模块的装置,包括如上述所述的集成电路。
100、第三方面,本发明提供了一种服务器,包括如上述所述的访问双列直插式内存控制模块的装置。
101、应用本发明实施例所提供的技术方案,通过增加数据读写控制模块,使得在所述主机进行与所述从机之间的指定类型的通信时,基于数据读写控制模块自身的存储介质与所述主机外部的存储器之间的数据传递,有效地解决传统方案中的主机读写从机时容易的产生时钟停转情况。
102、具体的,在所述主机进行与所述从机之间的指定类型的通信时,传输控制模块可以基于所述寄存器模块中的数值,进行所述数据读写控制模块的存储介质与所述主机控制模块之间的数据传递。而主机控制模块可以基于所述寄存器模块中的数值以及预设的通信协议,进行所述主机与所述从机之间的通信控制,从而通过所述传输控制模块完成所述从机与所述数据读写控制模块之间的数据传递。数据读写控制模块可以获取被写入寄存器模块的读写指令信息,并基于所述读写指令信息,通过数据读写总线,进行自身的存储介质与所述主机外部的存储器之间的数据传递。因此可以看出,在需要写数据至从机时,基于本技术方案的原理,可以由数据读写控制模块通过数据读写总线从主机外部的存储器中读取数据,进而通过传输控制模块和主机控制模块传递至从机。在需要读从机数据时,读取的数据通过传输控制模块和主机控制模块传递至数据读写控制模块之后,可以由数据读写控制模块通过数据读写总线存入主机外部的存储器中。当然,主机外部的该存储器需要与中央处理器通信连接,且所述数据读写控制模块与所述存储器之间的通信速率需要较高,应当高于主机与所述从机之间的所述通信总线的通信速率。因此,本技术方案不会发生传统方案中由于cpu未及时读走i3c主机中的数据,而导致的产生时钟停转的情况。
103、综上所述,本技术方案有效地解决了主机读写从机时容易产生的时钟停转情况。
1.一种集成电路,其特征在于,所述集成电路作为主机,基于通信总线与从机通信连接,且所述集成电路包括:数据读写控制模块、传输控制模块、寄存器模块以及主机控制模块;
2.根据权利要求1所述的集成电路,其特征在于,所述数据读写控制模块包括数据读写总线控制单元,数据读写逻辑单元,第一先入先出存储器以及第二先入先出存储器;
3.根据权利要求2所述的集成电路,其特征在于,基于所述读写指令信息,按照默认传输模式,进行所述第一先入先出存储器或所述第二先入先出存储器与所述主机外部的存储器之间的数据传递,包括:
4.根据权利要求2所述的集成电路,其特征在于,基于所述读写指令信息,按照带内中断传输模式,进行所述第二先入先出存储器与所述主机外部的存储器之间的数据传递,包括:
5.根据权利要求1所述的集成电路,其特征在于,所述传输控制模块包括:跨时钟域转换单元、外设地址转换单元、寄存器地址转换单元、传输执行单元、响应和中断状态生成单元、以及传输控制单元;
6.根据权利要求5所述的集成电路,其特征在于,所述传输控制模块中还包括通用命令码传输参数转换单元,用于:
7.根据权利要求5所述的集成电路,其特征在于,所述寄存器地址转换单元包括:
8.根据权利要求5所述的集成电路,其特征在于,所述传输控制单元还用于:
9.根据权利要求8所述的集成电路,其特征在于,当检测出带内中断使能信号使能时,执行带内中断处理流程,包括:
10.根据权利要求8所述的集成电路,其特征在于,当检测出带内中断使能信号未使能,且命令有效信号使能时,判断是否为通用命令码传输;如果是通用命令码传输,则执行通用命令码传输流程,包括:
11.根据权利要求10所述的集成电路,其特征在于,进行通用命令码广播写,并在完成之后跳转至所述第一状态,包括:
12.根据权利要求10所述的集成电路,其特征在于,进行通用命令码直接读写,并在完成之后跳转至所述第一状态,包括:
13.根据权利要求8所述的集成电路,其特征在于,执行默认传输流程,包括:
14.根据权利要求13所述的集成电路,其特征在于,基于所述设备类型执行默认传输流程,包括:
15.根据权利要求14所述的集成电路,其特征在于,当所述设备类型为串行检测集线器时,执行默认传输流程,以对所述串行检测集线器进行数据读写,包括:
16.根据权利要求14所述的集成电路,其特征在于,当所述设备类型为电源管理集成电路或者温度传感器时,执行默认传输流程,以对所述电源管理集成电路或者所述温度传感器进行数据读写,包括:
17.根据权利要求14所述的集成电路,其特征在于,当所述设备类型为寄存时钟驱动器时,执行默认传输流程,以对所述寄存时钟驱动器进行数据读写,包括:
18.根据权利要求5所述的集成电路,其特征在于,所述传输执行单元包括数据包错误检查校验子单元,第三先入先出存储器,第四先入先出存储器,以及传输参数输出子单元;
19.根据权利要求5所述的集成电路,其特征在于,所述主机具体基于升级两线式串行总线与从机通信连接,所述主机外部的存储器为双倍速率同步动态随机存储器。
20.一种访问双列直插式内存控制模块的装置,其特征在于,包括如权利要求1至19任一项所述的集成电路。
21.一种服务器,其特征在于,包括如权利要求20所述的访问双列直插式内存控制模块的装置。