CN111209220B - 一种非对齐地址访存的融合编码状态机实现方法 - Google Patents
一种非对齐地址访存的融合编码状态机实现方法 Download PDFInfo
- Publication number
- CN111209220B CN111209220B CN201811389626.0A CN201811389626A CN111209220B CN 111209220 B CN111209220 B CN 111209220B CN 201811389626 A CN201811389626 A CN 201811389626A CN 111209220 B CN111209220 B CN 111209220B
- Authority
- CN
- China
- Prior art keywords
- state machine
- data
- state
- access memory
- range
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开的属于状态机技术领域,具体为一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下,S1:存储请求对应的位于状态编码的高三位内的访存范围,S2:顺序发送对齐地址的访存请求,等待数据缓存并拼接,S3:状态机状态初始化,S4:状态机状态转换,S5:数据缓存等待数据的回填,该种非对齐地址访存的融合编码状态机实现方法,融合了对齐地址访存范围信息的编码,能够节省硬件面积开销,融合了发送结束状态的编码,能够简化硬件发送的判断逻辑,方便地记录了返回数据的状态,跟踪整个指令的执行结束。
Description
技术领域
本发明涉及状态机技术领域,具体为一种非对齐地址访存的融合编码状态机实现方法。
背景技术
对齐的访存方式不但能使处理器流水线更加高效,同时也能简化地址冲突的检测逻辑,因此高效的访存指令序列偏爱对齐地址的访问,比如访问双字,那么地址低三位应为全0,访问字,那么地址低两位应为全0,访问半字,LSB应为0,只有访问字节,可以不需要地址对齐,因此大多数程序会天然的编译成对齐地址访存,但是依然有部分库函数,里面的程序是非对齐访问的,并且如果每次都需要做程序移植,则繁琐、耗费时间长,为此,我们提出了一种非对齐地址访存的融合编码状态机实现方法。
发明内容
本发明的目的在于提供一种非对齐地址访存的融合编码状态机实现方法,以解决上述背景技术中提出的依目前状态机里面的程序是非对齐访问的,并且如果每次都需要做程序移植,则繁琐、耗费时间长的问题。
为实现上述目的,本发明提供如下技术方案:一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下:
S1:存储请求对应的位于状态编码的高三位内的访存范围;
S2:顺序发送对齐地址的访存请求,等待数据缓存并拼接;
S3:状态机状态初始化;
S4:状态机状态转换;
S5:数据缓存等待数据的回填,通过着色过程记录当前多笔对齐请求所读数据是否被完全返回,并且每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置;
S6:根据指令的访存范围,来生成范围向量进行数据拼接;
S7:数据拼接完成后,缓存内的数据进行后续的剪切和扩展操作,返回体系结构寄存器。
优选的,所述步骤S6中,每次返回的对齐请求携带位置和范围信息来更新范围向量。
与现有技术相比,本发明的有益效果是:该种非对齐地址访存的融合编码状态机实现方法,融合了对齐地址访存范围信息的编码,能够节省硬件面积开销,融合了发送结束状态的编码,能够简化硬件发送的判断逻辑,方便地记录了返回数据的状态,跟踪整个指令的执行结束。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种技术方案:本发明涉及到了非对齐地址访存的硬件实现方式,其中核心在于状态机的设计和高效的编码,可以在硬件通过检测访存地址和访存范围来决定访存指令接下来的拆分动作,通过列举所有非对齐访存,得出以下拆分表格:
Mask:Byte 000/Half 001/Word 011/Double word 111
地址代表访存地址的低四位,假设第四位为0,减少了不必要的跨cache line甚至跨页问题的干扰。
从而可以发现可以由访存的范围和初始地址决定拆分状态机,进一步合并状态机,可以得到以下的状态和对应的编码:
工作分为两个阶段:顺序发送对齐地址的访存请求,等待数据缓存并拼接。因此需要标示发送结束的状态,可以看出通过判断低三位如果是全0,那么代表所有请求发送结束,此外每次对齐的地址请求需要标示范围信息来进行后续的数据拼接,就需要存储这个请求对应的访问范围,但是可以当前编码中已经巧妙的将访存范围放在了状态编码的高三位,完全兼容Mask的编码,从而将很多信息都融合在了状态机的编码里面,简化硬件判断逻辑和面积开销。
状态机的工作原理:
初始化状态
状态切换
数据拼接阶段
访存有可能发生不命中,因此每一笔非对齐的指令都需要有数据缓存来等待数据的回填,同时需要有着色过程来记录当前多笔对齐请求所读数据是否被完全返回,为了完成正确的拼接,还需要每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置。
首先根据指令的访存范围,来生成范围向量:
每次返回的对齐请求会携带位置和范围信息来更新范围向量,比如,有一个访存需要一个字,地址为0001,会被拆成BYTE,HALF,BYTE,那么返回的请求依次是(位置0范围BYTE),(位置1范围HALF),(位置3,范围BYTE),并把范围向量更新为11110001,11110111,11111111,当检测到范围向量被更新成全1,代表所有数据都返回成功。
当数据拼接完成,该缓存内的数据会进行后续的剪切和扩展操作,返回体系结构寄存器。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (2)
1.一种非对齐地址访存的融合编码状态机实现方法,其特征在于:该非对齐地址访存的融合编码状态机实现方法具体步骤如下:
S1:存储请求对应的位于状态编码的高三位内的访存范围;
S2:顺序发送对齐地址的访存请求,等待数据缓存并拼接;
S3:状态机状态初始化;
S4:状态机状态转换;
S5:数据缓存等待数据的回填,通过着色过程记录当前多笔对齐请求所读数据是否被完全返回,并且每一笔对齐的地址请求有位置信息来标示该数据处在所需数据块的位置;
S6:根据指令的访存范围,来生成范围向量进行数据拼接;
S7:数据拼接完成后,缓存内的数据进行后续的剪切和扩展操作,返回体系结构寄存器。
2.根据权利要求1所述的一种非对齐地址访存的融合编码状态机实现方法,其特征在于:所述步骤S6中,每次返回的对齐请求携带位置和范围信息来更新范围向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811389626.0A CN111209220B (zh) | 2018-11-21 | 2018-11-21 | 一种非对齐地址访存的融合编码状态机实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811389626.0A CN111209220B (zh) | 2018-11-21 | 2018-11-21 | 一种非对齐地址访存的融合编码状态机实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209220A CN111209220A (zh) | 2020-05-29 |
CN111209220B true CN111209220B (zh) | 2023-06-09 |
Family
ID=70787587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811389626.0A Active CN111209220B (zh) | 2018-11-21 | 2018-11-21 | 一种非对齐地址访存的融合编码状态机实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209220B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909946B (zh) * | 2023-09-13 | 2023-12-22 | 北京开源芯片研究院 | 一种访存方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407880A (zh) * | 2014-10-27 | 2015-03-11 | 杭州中天微系统有限公司 | 支持硬件非对齐存储访问的risc处理器加载/存储单元 |
CN104461925A (zh) * | 2014-11-14 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种存储设备地址对齐的自动纠正方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622232B2 (en) * | 2001-05-18 | 2003-09-16 | Intel Corporation | Apparatus and method for performing non-aligned memory accesses |
-
2018
- 2018-11-21 CN CN201811389626.0A patent/CN111209220B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407880A (zh) * | 2014-10-27 | 2015-03-11 | 杭州中天微系统有限公司 | 支持硬件非对齐存储访问的risc处理器加载/存储单元 |
CN104461925A (zh) * | 2014-11-14 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种存储设备地址对齐的自动纠正方法和装置 |
Non-Patent Citations (1)
Title |
---|
SIMD非对齐访存结构设计与实现;余成龙;王永文;;计算机工程(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111209220A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033734B (zh) | 数据处理引擎 | |
US4453216A (en) | Access control system for a channel buffer | |
US8332590B1 (en) | Multi-stage command processing pipeline and method for shared cache access | |
WO2018027839A1 (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
CN104252392A (zh) | 一种访问数据缓存的方法和处理器 | |
JP2008129712A (ja) | 情報処理装置およびデータ検索方法 | |
CN104424128B (zh) | 变长指令字处理器系统和方法 | |
EP0144249B1 (en) | Buffer storage system | |
CN104981771A (zh) | 基于标量寄存器数据值的向量寄存器寻址和功能 | |
JP2007048296A (ja) | 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム | |
CN111209220B (zh) | 一种非对齐地址访存的融合编码状态机实现方法 | |
CN104285215A (zh) | 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备 | |
CN117389629A (zh) | 分支预测方法、装置、电子设备及介质 | |
EP0030463A2 (en) | Buffer memory control system | |
EP0377431B1 (en) | Apparatus and method for address translation of non-aligned double word virtual addresses | |
CN111831587A (zh) | 数据写入方法、装置和电子设备 | |
JPH02304650A (ja) | パイプライン方式のマイクロプロセッサ | |
CN102541745B (zh) | 微控制器数据存储器的寻址方法和微控制器 | |
CN115061948A (zh) | 多核系统中非对齐访问的验证方法及系统 | |
CN110147670B (zh) | 一种工作于内核态的进程间持久性内存保护方法 | |
CN111581133A (zh) | 一种多核存储器一致性的方法、系统、设备及可读介质 | |
CN104484286A (zh) | 片上Cache网络中基于位置感知的数据预取方法 | |
CN115525583B (zh) | 一种众核处理器的存储器数据访问方法 | |
CN110688329B (zh) | 一种可同时支持多套Cache数据私有段动态设置的方法 | |
JP2637853B2 (ja) | キャッシュメモリ装置 |
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 |