CN107992445B - 通信控制器、通信方法与系统单芯片 - Google Patents
通信控制器、通信方法与系统单芯片 Download PDFInfo
- Publication number
- CN107992445B CN107992445B CN201711207882.9A CN201711207882A CN107992445B CN 107992445 B CN107992445 B CN 107992445B CN 201711207882 A CN201711207882 A CN 201711207882A CN 107992445 B CN107992445 B CN 107992445B
- Authority
- CN
- China
- Prior art keywords
- list
- communication
- transaction
- queue
- communication transaction
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
一种通信优化技术。所公开的通信控制器包括一重传列表以及一目的地控制逻辑模块。该重传列表记录一信号来源没有成功暂存至一信号目的地的通信交易的编号。该目的地控制逻辑模块管理该重传列表、并在该信号目的地上一队列有追踪器释出时,根据该重传列表要求该信号来源重传通信交易至该信号目的地。
Description
技术领域
本发明涉及信号通信,特别是用于系统单芯片的信号通信与信号传输。
背景技术
不同装置(devices)/功能模块(functional blocks)之间通信畅通为电子设计领域一直以来专注的议题。
随着系统单芯片(SoC)发展,通信控制更涉及系统单芯片(SoC)的芯片内链接网络(On-Chip Interconnection Network)。系统单芯片(SoC)内不同功能模块(IPs)之间顺畅通信逐渐成为设计要点。
发明内容
本发明优化不同装置/功能方块之间的通信。
根据本发明一种实施方式所实现的一种通信控制器,包括一重传列表,一补位列表,记录该信号来源没有成功暂存至该队列的追踪器进行动态管理的通信交易的内容;以及一目的地控制逻辑模块。该重传列表记录一信号来源没有成功暂存至一信号目的地的通信交易的编号。该补位列表记录该信号来源没有成功暂存至该信号目的地上一队列的追踪器进行动态管理的通信交易的内容;该目的地控制逻辑模块管理该重传列表和该补位列表,在该队列有追踪器释出时,以该补位列表上的通信交易内容填写释出的追踪器,其中,该目的地控制逻辑模块在该队列有追踪器释出、且以该补位列表上的通信交易内容填写释出的追踪器时,根据该重传列表要求该信号来源重传通信交易至该信号目的地。
一种实施方式是以本发明技术实现一系统单芯片。该系统单芯片包括至少一个来源模块以及至少一个目的地模块。上述目的地模块各自具有前述通信控制器,是根据各自的上述通信控制器处理上述来源模块发来的通信交易。
根据本发明一种实施方式所实现的一种通信方法,包括:提供一重传列表,记录一信号来源没有成功暂存至一信号目的地的通信交易的编号;提供一补位列表,记录该信号来源没有成功暂存至该信号目的地上一队列的追踪器进行动态管理的通信交易的内容;以及管理该重传列表和该补位列表,并在该队列有追踪器释出时,以该补位列表上的通信交易内容填写释出的追踪器,其中,在该队列有追踪器释出、且以该补位列表上的通信交易内容填写释出的追踪器时,根据该重传列表要求该信号来源重传通信交易至该信号目的地。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1图解一系统单芯片(SoC)100,其中以一芯片内链接网络(On-ChipInterconnection Network)102作为多个功能模块之间的通信桥梁;
图2显示系统单芯片100上一功能模块P0至另一功能模块P1之通信,其中信号传递是通过交换机/路由器R0;
图3根据本发明一种实施方式图解来源模块端的通信优化;
图4A、4B以及4C为流程图,根据本发明一种实施方式说明上述交易能力表格Tab0…Tab(m-1)的管理;
图5根据本发明一种实施方式图解目的地模块端的通信优化;
图6为流程图,根据本发明一种实施方式说明图5加速型队列的使用;
图7为流程图,根据本发明一种实施方式说明图5加速型队列的使用;
图8根据本发明一种实施方式图解目的地模块端的通信优化;
图9示意经芯片内链接网络102传来的通信交易如何填入图8加速型队列;
图10为流程图,根据本发明一种实施方式说明图8加速型队列的使用;
图11A为流程图,根据本发明一种实施方式说明图8加速型队列的使用;
图11B为流程图,根据本发明一种实施方式说明图8加速型队列的使用;以及
图12以方块图图解本发明通信优化的另一种实施方式。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求界定之。
本发明所述通信技术可应用在各种架构的电子系统。以下以系统单芯片(SoC)的芯片内链接网络(On-Chip Interconnection Network)为例进行说明,但并不意图限定之。
图1图解一系统单芯片(SoC)100,其中以一芯片内链接网络(On-ChipInterconnection Network)102作为多个功能模块之间的通信桥梁,多个功能模块─包括中央处理器(CPU)、图像处理器(GPU)、输入/输出控制器(I/Ocontroller)、快取L2/LLC控制器、存储器控制器─之间的通信桥梁。
图2显示图1所示的系统单芯片100上一功能模块P0至另一功能模块P1之通信,其中信号传递系通过交换机或路由器R0。交换机或路由器R0即实现图1所述芯片内链接网络102。图示之路由层(routing layer)、连结层(link layer)、物理层(physical layer)实现封装(package)层级传递。消息(message)层级信息交换则是由功能模块P0的协议层(protocol layer)掌管。本发明一种实施方式是对功能模块的协议层进行设计,使不同功能模块之间的点对点通信顺畅。本发明技术涉及的运算硬件以及程序代码可以是实现为单一硬件模块,或安插在功能模块的微控制器架构中、或置于功能模块的链接接口。一种实施方式中,所述协议层设计可包括状态机(state machine)设计。
系统单芯片100上的功能模块有时扮演通信数据来源,有时是作通信数据之目的地。例如,一中央处理单元可为来源模块,提供数据经芯片内链接网络102传送至快取L2/LLC控制器。中央处理单元也可为目的地模块,接收存储器控制置器自存储器读取出的数据。本发明通信优化技术包括调整来源模块、和调整目的地模块两种类型。在来源以及目的地模块这两种角色间切换的功能模块则可兼具所述两种类型的通信优化方案。
首先讨论调整来源模块的通信优化技术。
图3根据本发明一种实施方式图解来源模块端的通信优化。来源模块S0…S(m-1)可经芯片内链接网络102对目的地模块T0…T(n-1)要求通信交易(communicationtransactions)。来源模块S0…S(m-1)彼此可以出借交易能力(credits)。如图所示,来源模块S0…S(m-1)分别设计、并管理交易能力表格Tab0…Tab(m-1),作为来源模块S0…S(m-1)对目的地模块T0…T(n-1)要求通信交易(communication transactions)的依据。此实施例中,n个T0、T1…T(n-1)分别具有队列Q0、Q1…Q(n-1)。队列Q0、Q1…Q(n-1)分别具有r个追踪器(trackers)Tracker_0、Tracker_1…Tracker_(r-1),用于暂存且管理来源模块S0…S(m-1)所要求的通信交易(communication transactions)。一个追踪器对应一条通信交易。各追踪器具有一状态机,动态管理该条通信交易。
以交易能力表格Tab0为例,其中针对各目的地模块T0、T1…T(n-1)记录一固有(intrinsic)交易能力k、一借贷(borrowed)交易能力Cb#、一出借(lend)交易能力Cl#,并将该固有交易能力k、该借贷交易能力Cb#以及该出借交易能力Cl#搭配一交易能力消耗(以下代号C#)计算出一实际交易能力TC#。该实际交易能力TC#将决定来源模块是否得以对目的地模块发出通信交易,且不影响通信网络顺畅。该实际交易能力TC#非零才代表来源模块可对目的地模块发出通信交易。该实际交易能力TC#若为零,来源模块不可对目的地模块发出通信交易,避免堵塞通信网络。
此段落更针对交易能力表格Tab0为目的地模块T0所记录的该列内容作说明。固有交易能力k可设定为r/m,显示队列Q0之追踪器Tracker_0、Tracker_1…Tracker_(r-1)数量r预想状况是平均配置给所有m个来源模块S0…S(m-1)。借贷交易能力Cb#记录该来源模块S0自其他来源模块S1…S(m-1)借来了多少交易能力,用于目的地模块T0之通信交易。一种实施例更记录借贷信息Sbinfo,列举是自哪些来源模块借贷而来。出借交易能力Cl#记录该来源模块S0向其他来源模块S1…S(m-1)借出了多少交易能力,用于目的地模块T0之通信交易。一种实施例更记录出借信息Slinfo,列举是借给哪些来源模块。该来源模块S0对目的地模块T0的通信交易实况,则是以该交易能力消耗C#显示。目的地模块T0之显示队列Q0被该来源模块S0发出的一通信交易占据时,该交易能力消耗C#即加1。待该通信事务处理完毕、移出该队列Q0,该交易能力消耗C#减1。基于以上信息,该来源模块S0对目的地模块T0的实际交易能力TC#可由以下表达式计算获得:
TC#=k+Cb#-Cl#-C#
该实际交易能力TC#可以根据以上借贷概念尽可能不为零。如此一来,该来源模块S0即使对目的地模块T0有强烈通信交易需求,也不会受限于固有交易能力k(=r/m)。或者,倘若来源模块S0对目的地模块T0没有通信交易的需求,其固有交易能力k(=r/m)也可借给其他来源模块S1…S(m-1)利用。一种实施方式中,出借交易能力Cl#不能大于固有交易能力k(r/m)─仅固有配置的交易能力可以出借。
图4A、4B以及4C为流程图,根据本发明一种实施方式说明上述交易能力表格Tab0…Tab(m-1)之管理。所述流程可以运算硬件与程序代码、或状态机方式实现于来源模块S0…S(m-1)。
参阅图4A,步骤S402负责交易能力表格Tab0…Tab(m-1)之重置,包括设定上述固有交易能力k(=r/m)、设定上述借贷交易能力Cb#为0、设定上述出借交易能力Cl#为0、设定上述交易能力消耗C#为0、清空借贷信息Sbinfo与出借信息Slinfo。此时,各来源模块S0…S(m-1)对各目的地模块T0…T(n-1)的实际交易能力TC#为k。
步骤S404判断是否有通信交易规划,并记下该通信交易是由来源模块Sx规划对目的地模块Ty发出。关于此通信交易,步骤S406判断来源模块Sx对目的地模块Ty的实际交易能力TC#是否大于0。若大于0,流程进行步骤S408,来源模块Sx将此通信交易传送至目的地模块Ty的队列Qy,以其中一追踪器(tracker)暂存并且管理。步骤S408需将来源模块Sx对目的地模块Ty的交易能力消耗C#递增1。
当步骤S406判定来源模块Sx对目的地模块Ty已无交易能力(实际交易能力TC#为0),流程通过节点A进行图4B步骤S412。步骤S412查询交易能力表格Tabx,检查目的地模块Ty该列,判断其中出借交易能力Cl#是否大于0。如此一来可确认来源模块Sx是否有出借其对目的地模块Ty的交易能力给别的来源模块。若是,根据相关出借信息Slinfo所记载的来源模块,步骤S414发出返还请求。一种实施方式是向实际交易能力TC#最高者要求返还。一种实施方式是对传输距离最近者要求返还。步骤S416确认交易能力之返还。若来源模块Sz返还交易能力,步骤S418令交易能力表格Tabz中,目的地模块Ty该列的借贷交易能力Cb#减1,且借贷信息Sbinfo也会随之调整。此外,步骤S418还使交易能力表格Tabx中,目的地模块Ty该列的出借交易能力Cl#也减1,且出借信息Slinfo也会随之调整。接着,流程进行步骤S408,来源模块Sx将所规划的通信交易发送至目的地模块Ty,且随之调整(+1)交易能力消耗C#。
当步骤S412判定关于目的地模块Ty,来源模块Sx没有借出交易能力给别的来源模块使用(出借交易能力Cl#为0),流程通过节点B进入图4C步骤S422。步骤S422中,来源模块Sx广播借贷请求。步骤S424确认是否其他来源模块都响应了该借贷请求。若是,步骤S426判断其他来源模块是否有闲置(idle)者。一种实施方式中,闲置(idle)的来源模块对目的地模块T0…T(n-1)没有任何通信交易在进行。步骤S428在符合的(闲置的)来源模块中择一(Sz),向其借贷交易能力。一种实施方式是根据来源模块间的传输距离来做选择,向传输距离最短者借交易能力。一种实施方式是根据交易能力余量度来做选择,例如,向可借用交易能力(k-Cl#)最多者商借。步骤S430包括交易能力表格Tabx之调整。交易能力表格Tabx中,目的地模块Ty该列的借贷交易能力Cb#也加1,且借贷信息Sbinfo也会随之调整。步骤S430更会发出确认字符ACK给来源模块Sz,使得交易能力表格Tabz中,目的地模块Ty该列的出借交易能力Cl#加1,且出借信息Slinfo也会随之调整。此外,步骤S430更会发出拒绝字符NAK回绝剩余的来源模块。随后,流程进行步骤S408,来源模块Sx将所规划的通信交易发送至目的地模块Ty,且随之调整(+1)交易能力消耗C#。
当步骤S426判定其他来源模块都非闲置,流程进行步骤S432。步骤S432检查是否有来源模块对目的地模块Ty的出借交易能力Cl#符合租借资格。一种实施方式是检查交易能力表格,确定目的地模块Ty该行的出借交易能力Cl#是否尚未达k,或是尚未达小于k的一临界数量l_th。若有符合要求者,流程进入步骤S428,在符合的来源模块中择一(Sz),向其借贷交易能力。一种实施方式是根据来源模块间的传输距离来做选择,向传输距离最短者借交易能力。一种实施方式是根据交易能力余量度来做选择,例如,向可借用交易能力(k-Cl#)最多者商借。接着,流程进行步骤S430进行相应措施,并进行步骤S408,由来源模块Sx将所规划的通信交易发送至目的地模块Ty,且随之调整(+1)交易能力消耗C#。
当步骤S432确认没有来源模块对目的地模块Ty的出借交易能力Cl#符合租借资格,则流程进行步骤S434,等待来源模块Sx对目的地模块Ty进行中的通信交易完成(例如,待交易能力消耗C#减1)。接着,流程进行步骤S408,来源模块Sx将所规划的通信交易发送至目的地模块Ty,且随之调整(+1)交易能力消耗C#。
整理之,根据以上内容,目的地模块的队列的追踪器全数可被优化使用。
特别是,不同目的地模块T0…T(n-1)的队列Q0…Q(n-1)内追踪器数目不限定统一为r,可彼此不同数量。
以下讨论调整目的地模块的通信优化技术。
图5根据本发明一种实施方式图解目的地模块端的通信优化。目的地模块T0…T(n-1)提供有加速型队列(turbo queues),除了队列Q0…Q(n-1),更载有重传列表ReT0…ReT(n-1)。队列Q0、Q1…Q(n-1)分别具有r个追踪器(trackers)Tracker_0、Tracker_1…Tracker_(r-1),用于暂存且管理来源模块S0…S(m-1)经芯片内链接网络102所送来的通信交易(communication transactions)。一个追踪器对应一条通信交易。各追踪器具有一状态机,动态管理该条通信交易。重传列表ReT0…ReT(n-1)分别具有T个字段Entry_0、Entry_1…Entry_(T-1)。队列Q0、Q1…Q(n-1)中任一者的追踪器用尽时,对应的重传列表将以一字段记录通信交易编号(以下标号ID#),待后续有追踪器释出时,据以要求来源模块重传。如此一来,一旦有追踪器释出,重传要求就可以将先前不成功传递的通信交易补上。重传列表ReT0…ReT(n-1)有效加速队列Q0…Q(n-1)使用。
图6为流程图,根据本发明一种实施方式说明图5加速型队列之使用。所述流程可以运算硬件与程序代码、或状态机方式实现于目的地模块T0…T(n-1)。
步骤S602监控是否有通信交易规划,并记下该通信交易是由来源模块Sx规划对目的地模块Ty发出。若有,步骤S604检查重传列表ReTy是否记录有通信交易待重传。若有,步骤S606将步骤S602检测到的通信交易之编号ID#载于重传列表ReTy。接着,流程可回到步骤S602,继续监控是否有其他通信交易规划。
当步骤S604确定重传列表ReTy内没有记录任何通信交易待重传,步骤S608检查队列Qy是否已满。若队列Qy已满,流程进行步骤S606,将步骤S602检测到的通信交易之编号ID#载于重传列表ReTy。若队列Qy还有空的追踪器,则流程进行步骤S610,来源模块Sx将规划的通信交易传送至目的地模块Ty的队列Qy,以其中一追踪器(tracker)暂存并且管理。接着,流程可回到步骤S602,继续监控是否有其他通信交易规划。
图7为流程图,根据本发明一种实施方式说明图5加速型队列之使用。所述流程可以运算硬件与程序代码、或状态机方式实现于目的地模块T0…T(n-1)。
步骤S702监控是否有追踪器释出,并记录系属队列Qh。若有,步骤S704检查重传列表ReTh内是否记录有通信交易待重传。若有,步骤S706根据重传列表ReTh中最旧记录之通信交易编号ID#,对其来源模块(Sz)发出通信交易重传要求。来源模块Sz对目的地模块Th重传的该笔通信交易是由队列Qh释出的追踪器暂存且管理。重传列表ReTh中,已重传的该笔通信交易之编号ID#删除。接着,流程可回到步骤S702,继续监控队列Q0…Q(n-1)是否有追踪器释出。步骤S704若判定重传列表ReTh没有记录任何通信交易待重传,流程回到步骤S702监控是否有追踪器释出。
图8根据本发明一种实施方式图解目的地模块端的通信优化。目的地模块T0…T(n-1)提供较图5更改良的加速型队列(turbo queues)。除了队列Q0…Q(n-1)与重传列表ReT0…ReT(n-1),目的地模块T0…T(n-1)更载有补位列表WQ0…WQ(n-1)。
队列Q0…Q(n-1)分别具有r个追踪器(trackers)Tracker_0、Tracker_1…Tracker_(r-1),用于暂存且管理来源模块S0…S(m-1)经芯片内链接网络102所送来的通信交易(communication transactions)。一个追踪器对应一条通信交易。各追踪器具有一状态机,动态管理该条通信交易。补位列表WQ0…WQ(n-1)分别具有P个字段Entry_0、Entry_1…Entry_(P-1)。队列Q0…Q(n-1)中任一者的追踪器用尽时,对应的补位列表将以一字段记录通信交易内容,待后续有追踪器释出时,及时提供通信交易内容填入释出的追踪器。补位列表WQ0…WQ(n-1)不具有状态机设计,不负责暂存之通信交易的管理。因此,尺寸和功耗远小于队列Q0…Q(n-1)。重传列表ReT0…ReT(n-1)分别具有T个字段Entry_0、Entry_1…Entry_(T-1)。补位列表WQ0…WQ(n-1)中任一者的字段用尽时,对应的重传列表将以一字段记录通信交易编号(以下标号ID#),待补位列表释出字段,再据以要求来源模块重传该编号的通信交易,使该编号的通信交易待位于补位列表上。因此,重传列表的尺寸与功耗低于该补位列表列表的尺寸与功耗,补位列表的尺寸与功耗低于该队列的尺寸与功耗。图8设计使得队列Q0…Q(n-1)一旦有追踪器释出,无须重传延迟就有通信交易内容可以填补进释出的追踪器。图8较图5设计更有效加速队列Q0…Q(n-1)使用。
图9示意经芯片内链接网络102传来的通信交易如何填入图8加速型队列。队列Qk具有多个追踪器,其中包含所暂存之通信交易的处理进度(例如,由状态机显示)。补位列表WQk则不负责暂存内容的动态管理,储存的包括通信交易编号ID#以及通信交易内容。重传列表ReTk则尺寸更小,储存通信交易编号ID#但不储存通信交易内容。队列Qk之追踪器可由芯片内链接网络102传来通信交易填入、或是由补位列表WQk提供的通信交易内容填写。补位列表WQk字段是由芯片内链接网络102传来通信交易填入,可以是重传性质、也可以是首发性质。重传列表ReTk所条列的通信交易编号ID#则是根据芯片内链接网络102传来的通信交易填入。
图10为流程图,根据本发明一种实施方式说明图8加速型队列之使用。所述流程可以运算硬件与程序代码、或状态机方式实现于目的地模块T0…T(n-1)。
步骤S1002监控是否有通信交易规划,并记下该通信交易是由来源模块Sx规划对目的地模块Ty发出。若有,步骤S1004检查重传列表ReTy是否记录有通信交易待重传。若有,步骤S1006将步骤S1002检测到的通信交易之编号ID#载于重传列表ReTy。接着,流程可回到步骤S1002,继续监控是否有其他通信交易规划。
倘若步骤S1004确定重传列表ReTy内没有记录任何通信交易待重传,步骤S1008检查补位列表WQy是否记录有通信交易在等待补位进队列Qy。若有,步骤S1010检查补位列表WQy是否已满。若已满,流程进行步骤S1006,将步骤S1002检测到的通信交易之编号ID#载于重传列表ReTy。若补位列表WQy还有空的字段,则流程进行步骤S1012,来源模块Sx将规划的通信交易传送至目的地模块Ty的补位列表WQy以其中一字段暂存。接着,流程可回到步骤S1002,继续监控是否有其他通信交易规划。
倘若步骤S1008确定补位列表WQy没有记录通信交易在等待补位进队列Qy,步骤S1014检查队列Qy是否已满。若队列Qy已满,流程进行步骤S1012,来源模块Sx将规划的通信交易传送至目的地模块Ty的补位列表WQy以其中一字段暂存。若队列Qy还有空的追踪器,则流程进行步骤S1016,来源模块Sx将规划的通信交易传送至目的地模块Ty的队列Qy,以其中一追踪器(tracker)暂存并且管理。接着,流程可回到步骤S1002,继续监控是否有其他通信交易规划。
图11A为流程图,根据本发明一种实施方式说明图8加速型队列之使用。所述流程可以运算硬件与程序代码、或状态机方式实现于目的地模块T0…T(n-1)。
步骤S1102监控是否有追踪器释出,并记录系属队列Qh。若有,步骤S1104检查补位列表WQh内是否记录有通信交易在等待补位进队列Qh。若有,步骤S1106将补位列表WQh中最旧记录之通信交易移到队列Qh释出的该追踪器,由该追踪器暂存且管理。接着,流程可回到步骤S1102,继续监控队列Q0…Q(n-1)是否有追踪器释出。步骤S1104若确定补位列表WQh内没有通信交易在等待补位进队列Qh,流程回到步骤S1102,继续监控队列Q0…Q(n-1)是否有追踪器释出。
图11B为流程图,根据本发明一种实施方式说明图8加速型队列之使用。所述流程可以运算硬件与程序代码、或状态机方式实现于目的地模块T0…T(n-1)。
步骤S1112监控补位列表WQ0…WQ(n-1)是否有字段释出(如,由图11A步骤S1106将所储存通信交易内容移动到追踪器),并记录系属补位列表WQh。若有,步骤S1114检查重传列表ReTh内是否记录有通信交易待重传。若有,步骤S1116根据重传列表ReTh中最旧记录之通信交易编号ID#,对其来源模块(Sz)发出通信交易重传要求。步骤S1118中,来源模块Sz对目的地模块Th重传的该笔通信交易是由补位列表WQh释出的该字段暂存。重传列表ReTh中,已重传的该笔通信交易之编号ID#删除。接着,流程可回到步骤S1112,监控补位列表WQ0…WQ(n-1)是否有字段释出。步骤S1114若确定重传列表ReTh没有记录任何通信交易待重传,流程也可回到步骤S1112,继续监控补位列表WQ0…WQ(n-1)是否有字段释出。
图11A对队列Q0…Q(n-1)追踪器的监控步骤S1102以及图11A对补位列表WQ0…WQ(n-1)字段的监控步骤S1112可一同进行。
整理之,目的地模块之加速型队列有显着效果。特别是,以上实施例更可有其他变形。不同目的地模块T0…T(n-1)的队列Q0…Q(n-1)内追踪器数目不限定统一为r,可彼此不同数量。不同目的地模块T0…T(n-1)的重传列表ReT0…ReT(n-1)字段数目不限定统一为T,可彼此不同数量。不同目的地模块T0…T(n-1)的补位列表WQ0…WQ(n-1)字段数目不限定统一为P,可彼此不同数量。
图12以方块图图解本发明通信优化的另一种实施方式。功能模块PA以及PB可通过芯片内链接网络102双向进行通信交易(communication transactions)。功能模块PA包括来源方块SA以及目的地方块TA。功能模块PB包括来源方块SB以及目的地方块TB。来源方块SA、SB分别具有交易能力表格TabA与TabB(参考图3)、以及来源端控制逻辑SA_L以及SB_L(参考图4A…4C,可为硬件或软硬件共同设计)。目的地方块TA、TB分别具有加速型队列TurboQA、TurboQB(参考图5或图8、9)、以及目的地控制逻辑TA_L以及TB_L(参考图6-7、或图10、11A、11B,可为硬件或软硬件共同设计)。功能模块PA以及PB可为图1所示之中央处理器(CPU)、图像处理器(GPU)、输入/输出控制器(I/O controller)、快取L2/LLC控制器、存储器控制器、或其他。甚至,本发明技术更可不限定应用于系统单芯片(SoC)之内网络链接。任何信号传输都可能使用以上技术。
其他采用上述概念实现信号传输的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及通信方法。
虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明之精神和范围内,当可做些许更动与润饰,因此本发明之保护范围当视后附的权利要求所界定者为准。
Claims (17)
1.一种通信控制器,包括:
一重传列表,记录一信号来源没有成功暂存至一信号目的地的通信交易的编号;
一补位列表,记录该信号来源没有成功暂存至该信号目的地上一队列的追踪器进行动态管理的通信交易的内容;以及
一目的地控制逻辑模块,管理该重传列表和该补位列表,在该队列有追踪器释出时,以该补位列表上的通信交易内容填写释出的追踪器,
其中,该目的地控制逻辑模块在该队列有追踪器释出、且以该补位列表上的通信交易内容填写释出的追踪器时,根据该重传列表要求该信号来源重传通信交易至该信号目的地。
2.如权利要求1所述的通信控制器,其中:
该目的地控制逻辑模块是将重传的通信交易的内容暂存于该补位列表。
3.如权利要求2所述的通信控制器,其中:
该目的地控制逻辑模块是在该重传列表未满但已载有通信交易的编号、或该补位列表已满时,将一新通信交易的编号填入该重传列表。
4.如权利要求3所述的通信控制器,其中:
该目的地控制逻辑模块是在该补位列表未满但已载有通信交易的内容或该队列已满时,将一新通信交易的内容填入该补位列表。
5.如权利要求2所述的通信控制器,其中:
该重传列表的尺寸与功耗低于该补位列表的尺寸与功耗;以及
该补位列表的尺寸与功耗低于该队列的尺寸与功耗。
6.如权利要求1所述的通信控制器,其中:
该目的地控制逻辑模块是将重传的通信交易的内容暂存于该队列进行动态管理。
7.如权利要求6所述的通信控制器,其中:
该目的地控制逻辑模块是在该重传列表未满但已载有通信交易的编号、或该队列已满时,将一新通信交易的编号填入该重传列表。
8.如权利要求7所述的通信控制器,其中:
该重传列表的尺寸与功耗低于该队列尺寸与功耗。
9.一种系统单芯片,包括:
至少一个来源模块;以及
至少一个目的地模块,各自具有如权利要求1所述的通信控制器,
其中,上述目的地模块是根据各自的上述通信控制器处理上述来源模块发来的通信交易。
10.一种通信方法,包括:
提供一重传列表,记录一信号来源没有成功暂存至一信号目的地的通信交易的编号;
提供一补位列表,记录该信号来源没有成功暂存至该信号目的地上一队列的追踪器进行动态管理的通信交易的内容;以及
管理该重传列表和该补位列表,并在该队列有追踪器释出时,以该补位列表上的通信交易内容填写释出的追踪器,
其中,在该队列有追踪器释出、且以该补位列表上的通信交易内容填写释出的追踪器时,根据该重传列表要求该信号来源重传通信交易至该信号目的地。
11.如权利要求10所述的通信方法,还包括:
将重传的通信交易的内容暂存于该补位列表。
12.如权利要求11所述的通信方法,还包括:
在该重传列表未满但已载有通信交易的编号或该补位列表已满时,将一新通信交易的编号填入该重传列表。
13.如权利要求12所述的通信方法,还包括:
在该补位列表未满但已载有通信交易的内容或该队列已满时,将一新通信交易的内容填入该补位列表。
14.如权利要求11所述的通信方法,其中:
该重传列表的尺寸与功耗低于该补位列表;且
该补位列表的尺寸与功耗低于该队列。
15.如权利要求11所述的通信方法,还包括:
将重传的通信交易的内容暂存于该队列进行动态管理。
16.如权利要求15所述的通信方法,还包括:
在该重传列表未满但已载有通信交易的编号或该队列已满时,将一新通信交易的编号填入该重传列表。
17.如权利要求16所述的通信方法,其中:
该重传列表的尺寸与功耗低于该队列的尺寸与功耗。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711207882.9A CN107992445B (zh) | 2017-11-27 | 2017-11-27 | 通信控制器、通信方法与系统单芯片 |
US16/114,695 US20190163662A1 (en) | 2017-11-27 | 2018-08-28 | Communication controller, communication method, and system on a chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711207882.9A CN107992445B (zh) | 2017-11-27 | 2017-11-27 | 通信控制器、通信方法与系统单芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107992445A CN107992445A (zh) | 2018-05-04 |
CN107992445B true CN107992445B (zh) | 2022-01-25 |
Family
ID=62032263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711207882.9A Active CN107992445B (zh) | 2017-11-27 | 2017-11-27 | 通信控制器、通信方法与系统单芯片 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190163662A1 (zh) |
CN (1) | CN107992445B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107894963B (zh) * | 2017-11-27 | 2021-07-27 | 上海兆芯集成电路有限公司 | 用于系统单芯片的通信控制器与通信方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW364095B (en) * | 1997-05-13 | 1999-07-11 | Ibm | System for processing early arrival messages within a multinode asynchronous data communications system |
CN101361310A (zh) * | 2005-11-23 | 2009-02-04 | Nxp股份有限公司 | 用于通信数据的数据处理器系统及方法 |
CN103001738A (zh) * | 2012-11-23 | 2013-03-27 | 华为技术有限公司 | 接收机及数据处理的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9432288B2 (en) * | 2014-02-28 | 2016-08-30 | Cavium, Inc. | System on chip link layer protocol |
US10303628B2 (en) * | 2014-12-19 | 2019-05-28 | Sonics, Inc. | Reordering responses in a high performance on-chip network |
US20180115394A1 (en) * | 2015-04-09 | 2018-04-26 | Ntt Docomo, Inc. | User terminal, radio base station and radio communication method |
US9934120B2 (en) * | 2016-02-10 | 2018-04-03 | Western Digital Technologies, Inc. | Method and apparatus for updating a system on chip (SOC) image from a host computer system without using DMA |
-
2017
- 2017-11-27 CN CN201711207882.9A patent/CN107992445B/zh active Active
-
2018
- 2018-08-28 US US16/114,695 patent/US20190163662A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW364095B (en) * | 1997-05-13 | 1999-07-11 | Ibm | System for processing early arrival messages within a multinode asynchronous data communications system |
CN101361310A (zh) * | 2005-11-23 | 2009-02-04 | Nxp股份有限公司 | 用于通信数据的数据处理器系统及方法 |
CN103001738A (zh) * | 2012-11-23 | 2013-03-27 | 华为技术有限公司 | 接收机及数据处理的方法 |
Non-Patent Citations (1)
Title |
---|
周芳 ; 吴宁.一种基于双缓冲和XYX路由的片上网络容错机制设计.《微电子学与计算机》.2015,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN107992445A (zh) | 2018-05-04 |
US20190163662A1 (en) | 2019-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102402493B (zh) | 用于共享数据总线的层级式缓冲器系统的系统和方法 | |
CN105378682B (zh) | 持久存储器中数据的观察 | |
CN105009099B (zh) | 计算机系统及数据控制方法 | |
CN101901205B (zh) | 在PCIExpress上启用基于ID的流的方法和装置 | |
CN103049240B (zh) | Pci-e设备及其接收数据重排序方法 | |
CN103368867B (zh) | 高速缓存经网络与辅助站点通信的对象的方法和系统 | |
US11983437B2 (en) | System, apparatus and method for persistently handling memory requests in a system | |
CN103744719B (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
CN101030170A (zh) | 多状态高速缓存一致性方案的设备、系统和方法 | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
JP2006189937A (ja) | 受信装置、送受信装置、受信方法及び送受信方法 | |
US7710904B2 (en) | Ring network with variable token activation | |
CN107436798A (zh) | 一种基于numa节点的进程访问方法及装置 | |
CN109582600A (zh) | 一种数据处理方法及装置 | |
US20200076742A1 (en) | Sending data using a plurality of credit pools at the receivers | |
CN107992445B (zh) | 通信控制器、通信方法与系统单芯片 | |
CN107851065A (zh) | 预先缓存分配器 | |
US6816889B1 (en) | Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node | |
CN106326143B (zh) | 一种缓存分配、数据访问、数据发送方法、处理器及系统 | |
CN101196833B (zh) | 用于存储器利用的方法和装置 | |
CN109783002A (zh) | 数据读写方法、管理设备、客户端和存储系统 | |
CN107894963B (zh) | 用于系统单芯片的通信控制器与通信方法 | |
CN109582242B (zh) | 级联存储阵列系统的地址确定方法、装置、电子设备 | |
CN107533458A (zh) | 基于存储器寄存器中断的信令和消息传递 | |
CN101196835B (zh) | 用于在线程之间通信的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |