CN101911011B - 确定表内的元素的地址的系统和方法 - Google Patents
确定表内的元素的地址的系统和方法 Download PDFInfo
- Publication number
- CN101911011B CN101911011B CN200880123745.XA CN200880123745A CN101911011B CN 101911011 B CN101911011 B CN 101911011B CN 200880123745 A CN200880123745 A CN 200880123745A CN 101911011 B CN101911011 B CN 101911011B
- Authority
- CN
- China
- Prior art keywords
- register
- address
- bit field
- data
- field data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000000712 assembly Effects 0.000 claims abstract description 4
- 238000000429 assembly Methods 0.000 claims abstract description 4
- 238000003780 insertion Methods 0.000 claims description 34
- 230000037431 insertion Effects 0.000 claims description 33
- 238000006073 displacement reaction Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 3
- 239000000654 additive Substances 0.000 claims description 2
- 230000000996 additive effect Effects 0.000 claims description 2
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3555—Indexed addressing using scaling, e.g. multiplication of index
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
在一特定实施例中,揭示一种方法,其包含执行单个指令以识别存储在存储器处的表内的位置。所述单个指令可由处理器执行以从第一寄存器提取位字段数据,且将所述位字段数据插入到第二寄存器的索引部分中。所述第二寄存器包含表地址部分和索引部分。所述表地址部分包含识别与表相关联的存储器位置的表地址。所述表地址与所述位字段数据组合以形成到所述表内的元素的经索引地址。
Description
技术领域
本发明大体上涉及一种确定表内的元素的地址的系统和方法。
背景技术
数字信号处理器(DSP)被频繁用于例如无线电话、个人计算机、个人数字助理(PDA)、音频播放器、其它电子装置或其任意组合等便携式个人计算装置中。此类DSP可用于提供视频和音频功能、用于处理接收到的数据,或用于执行其它功能。此类DSP可采用多线程结构,所述多线程结构可处理多个程序指令线程,且可包含并行执行单元。
处理器(例如DSP)通常包含存储器地址产生器,其产生用于从主存储器检索数据或用于存储DSP所产生的数据的存储器地址。在一些例子中,可基于检索到的值来计算存储器地址。在检索到值之后,算术与逻辑单元(ALU)对所述值执行位移位操作(bitshiftingoperation),且经移位的值存储到寄存器中。在下一个指令循环中,可从寄存器读取经移位的值,可对经移位的值执行数值运算以产生存储器地址。处理器可利用所述存储器地址来存取存储器内的位置,以写入其它结果或检索数据。
在当前处理器中,常见的是基于结构中某一数目的位在表中查找数据。然而,将地址计算到表中可能需要两个或两个以上执行循环。因此,需要增强的地址计算。
发明内容
在一特定实施例中,揭示一种方法,其包含执行单个指令以识别存储在存储器处的表内的位置。所述单个指令可由处理器执行以从第一寄存器提取位字段数据,且将所述位字段数据插入到第二寄存器的索引部分中。所述第二寄存器包含表地址部分和索引部分。所述表地址部分包含识别与表相关联的存储器位置的表地址。所述表地址与所述位字段数据组合以形成到所述表内的元素的经索引地址。
在另一特定实施例中,揭示一种处理器,所述处理器包含:第一寄存器,其包含位字段;以及第二寄存器,其包含表地址部分和索引部分。所述表地址部分包含识别存储器中的表的位置的表地址。所述处理器还包含执行单元,其适合于通过处理单个指令以从第一寄存器的位字段提取位字段数据且将所提取的位字段数据插入到第二寄存器的索引部分中以产生到表内的元素的地址来产生地址。
在再一特定实施例中,揭示一种确定到表中的地址的方法。所述方法包含从第一寄存器提取位字段数据,以及将所提取的位字段数据插入到包含表地址部分和索引部分的第二寄存器的索引部分中。第二寄存器包含存储在表地址部分中的表地址数据,其识别与表相关联的存储器位置。表地址数据和所提取的位字段数据提供存储器位置以及到表内的元素的表索引。
本文所揭示的系统和方法的实施例所提供的一个特定优点在于涉及移位与算术运算的组合的操作可在单个执行循环中执行。
所述方法的实施例所提供的另一特定优点在于可快速地计算地址,且可改进利用查找表的操作。举例来说,支持特定方法和相关联指令的DSP可在减小数目的指令循环中使用索引和基本地址来产生表内的地址。
提供又一特定优点,其在于可用于循环冗余校验和其它常见DSP操作中的移位和遮蔽操作可在单个指令中且在单个执行循环中执行,从而减少用于寄存器读取/写入操作的总线接入。另外,减少用于执行特定操作的指令的数目。
提供又一优点,其在于地址计算被简化。提供另一特定优点,其在于减少用以确定地址的执行循环的数目增强了处理器性能效率。
在审阅整个申请案之后,将明白本发明的其它方面、优点和特征,本申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
图1是适合于执行指令以确定表中的元素的地址的处理系统的特定说明性实施例的框图;
图2是适合于执行指令以确定表中的元素的地址的处理系统的第二说明性实施例的图;
图3是用于形成到表内的元素的地址的第一和第二寄存器的特定说明性实施例的图;
图4是确定表内的元素的地址的方法的特建说明性实施例的流程图;
图5是确定表内的元素的地址的方法的第二特定说明性实施例的流程图;以及
图6是包含用以确定表内的元素的地址的处理器的代表性无线通信装置的框图。
具体实施方式
图1是适合于执行提取-移位-相加指令116以确定表103中的元素(例如图2中所说明的表206内的元素207)的地址的处理系统100的特定说明性实施例的框图。处理系统100包含存储器102,存储器102包含表103。存储器102经由总线接口108耦合到指令高速缓冲存储器110。处理系统100还包含数据高速缓冲存储器112,其经由总线接口108耦合到存储器102。指令高速缓冲存储器110经由总线111耦合到定序器114。在特定实例中,定序器114还可接收一般中断,所述一般中断可从中断寄存器(未图示)检索。在特定实施例中,指令高速缓冲存储器110经由多个当前指令寄存器耦合到定序器114,所述当前指令寄存器可耦合到总线111,且与处理系统100的特定线程相关联。在特定实施例中,处理系统100为包含六个线程的交错式多线程处理器。
在特定实施例中,总线111为六十四(64)位总线,且定序器114经配置以经由指令包从存储器102检索指令,所述指令包包含多个各具有三十二(32)个位的长度的指令。定序器114耦合到第一指令执行单元118、第二指令执行单元120、第三指令执行单元122以及第四指令执行单元124。每一指令执行单元118、120、122、124可经由第二总线128耦合到通用寄存器堆126。通用寄存器堆126还可经由第三总线130耦合到定序器114、数据高速缓冲存储器112以及存储器102。在特定说明性实施例中,通用寄存器堆126可包含第一寄存器132和第二寄存器133以存储与表内的元素有关的数据。
处理系统100还可包含管理者控制寄存器134和全局控制寄存器136,以存储可由定序器114内的控制逻辑存取以确定是否接受中断且控制指令的执行的位。
在特定说明性实施例中,执行单元118可经由定序器114从指令高速缓冲存储器110接收提取-移位-相加指令116。执行单元118可从第一寄存器132检索(提取)位字段数据,使检索到的位字段数据移位预定数目的位,且使所移位的位字段数据与第二寄存器133内的数据相加(即,将检索到的位字段数据插入到第二寄存器133内的数据)。在特定实例中,执行单元118可从第一寄存器132检索位字段数据,确定第二寄存器133内的插入点,且在第二寄存器133内的所述插入点处插入检索到的位字段数据。在特定实例中,位偏移可表示表存储字节、半字、字还是双字。可基于存储在表中的数据来确定插入点,且可在第二寄存器133中的插入点处插入检索到的位字段数据。第二寄存器133可在地址部分中存储与表相关联的存储器位置,且可在第二寄存器133的索引部分内接收检索到的位字段数据。在检索到的位字段数据被插入后,存储在第二寄存器133中的数据表示表内的元素的地址。接着可使用所述表内的所述元素的地址来存取存储器102内在由第二寄存器133中的数据指定的地址处的元素。在特定实施例中,可在单个指令或执行循环中确定所述地址。在特定实施例中,指令循环通常包含多个阶段,包含一个或一个以上指令取用阶段、一解码阶段、一读取寄存器堆阶段、一个或一个以上执行阶段以及一回写阶段。一般来说,应理解,指令循环表示针对特定线程处的特定指令的指令执行循环。
在特定实施例中,执行单元118、120、122和124中的至少一者可包含移位器,所述移位器适合于使从第一寄存器132提取的所提取位字段数据移位预定数目的位。接着可使用加法运算将经移位的位字段数据插入到第二寄存器的索引部分中。所述移位器可为适合于使位向右或向左移位的双向移位器。
图2是包含适合于执行指令以确定表中的元素的地址的处理器的系统200的第二特定实施例的框图。系统200包含存储器202,存储器202包含一个或一个以上逻辑存储器边界,例如存储器边界204,其界定两千字节存储器空间。存储器202适合于存储表206,表206对准到存储器边界204。表206适合于保存字节、半字、字、双字或其任意组合的条目。表206可包含元素(E)207,其可在包含表索引信息的存储器位置处存取。
在特定实例中,表206可对准到逻辑边界,例如存储器202内的边界204。一般来说,边界204是具有对应于大于或等于表206的大小的二的幂(即2N)边界的位置的逻辑边界。举例来说,如果表206是两千字节表,那么表206可在包含存储器空间的2kb连续块的零存储器边界、具有存储器空间的至少一2kb连续块的2kb存储器边界、4kb存储器边界等处对准到存储器边界204。举例来说,如果表206是四千字节表,那么表206可对准到4kb逻辑边界,例如包含存储器空间的连续四千字节块的零存储器边界(即,存储器地址零和序列)、4kb边界、8kb边界等。存储器边界可具有大于表206的大小的可用空间。在特定实例中,通过将表206对准到存储器202内的二的幂逻辑边界204,可根据寄存器的最高有效位确定表206的存储器地址,且可将最低有效位用作到表206中的对应索引,从而(例如)允许将地址计算用于对表206内的元素(E)207进行寻址。
存储器202适合于经由耦合到通用寄存器220的总线232且经由耦合到指令高速缓冲存储器210的总线209与处理器通信。处理器(通常由假想线208指示)包含指令高速缓冲存储器210,其可存储提取-移位-相加指令216。指令高速缓冲存储器210经由总线212与定序器214通信。定序器214将指令提供给一个或一个以上执行单元218。所述一个或一个以上执行单元218与通用寄存器220通信以检索和存储数据。通用寄存器220包含第一寄存器222和第二寄存器224。第一寄存器222包含位字段226。第二寄存器224包含表地址部分228和索引部分230。
在特定说明性实施例中,可计算、加载或以其它方式检索数据,并将其存储在第一寄存器222和第二寄存器224中。定序器214适合于从指令高速缓冲存储器210检索提取-移位-相加指令216,且将提取-移位-相加指令216提供给一个或一个以上执行单元218中的至少一者。所述一个或一个以上执行单元218适合于从第一寄存器222提取与位字段226有关的数据,且将所提取的数据插入到第二寄存器224的索引部分230中,以形成用以存取存储器202的表206内的元素207的地址。第二寄存器的地址部分228包含表地址。在特定实例中,所述一个或一个以上执行单元218可在单个执行循环中计算表206内的表元素207的地址。
在特定实例中,所述一个或一个以上执行单元218适合于将从第一寄存器222的位字段226提取的数据插入到第二寄存器224的索引部分230中。第二寄存器224的索引部分230可表示第二寄存器224的最低有效位。第二寄存器224的表地址部分228可表示第二寄存器224的最高有效位。在特定说明性实例中,所述一个或一个以上执行单元218可适合于在第二寄存器224的索引部分230内的插入位置处选择性地插入从第一寄存器222的位字段226提取的数据。
举例来说,在特定说明性实施例中,所述一个或一个以上执行单元218可适合于基于存储在表206中的数据的类型来选择索引部分230内的插入点。举例来说,如果表206存储数据的字节,那么插入点可在第二寄存器224的索引部分230内的位0处。当表存储半字时,插入点可在第二寄存器224的索引部分230的位1处。当表206存储数据的字时,索引部分230内的插入点可在第二寄存器224的索引部分230内的位2处。当表206存储数据的双字时,插入点可在第二寄存器224的索引部分230内的位3处。插入点可用于表示与待提取的字段有关的偏移值。在特定说明性实施例中,第一寄存器222可包含位字段226,其可具有宽度和偏移信息两者。偏移信息可用于确定利用哪一插入位置。
一般来说,应理解,提取-移位-相加指令216只是用于描述可在单个指令循环中用于计算表206的地址和到表206内的元素207的索引的特定指令包的标签。然而,可使用不同标签来描述指令。另外,应理解,包含表地址/索引计算指令(例如提取-移位-相加指令216)的指令包还可包含其它指令、微指令、运算或其任意组合。另外,此指令包可产生额外运算、微指令、指令或其任意组合的执行。
图3是用于形成到表内的元素的地址的第一和第二寄存器的特定说明性实施例的图。所述图包含用以存取字节表的第一寄存器302和第二寄存器304的第一集合300。所述图还包含用以存取半字表的第一寄存器312和第二寄存器314的第二集合310。另外,所述图包含用以存取字表的第一寄存器322和第二寄存器324的第三集合320。另外,所述图包含用以存取双字表的第一寄存器332和第二寄存器334的第四集合330。
第一集合300包含第一寄存器302,第一寄存器302包含包括位字段数据306的位字段。第一寄存器302还可包含偏移位307。第二寄存器304包含表地址信息部分308和索引部分309。使用提取-移位-相加指令(即,图2中所说明的提取-移位-相加指令216),将来自第一寄存器302的位字段数据306写入到第二寄存器304的索引部分309,以形成到存储数据的字节的表内的元素的地址。在此实例中,插入点303在第二寄存器304的位0处。
第二集合310包含第一寄存器312,第一寄存器312包含包括位字段数据316的位字段。第一寄存器312还可包含偏移位317。第二寄存器314包含表地址信息部分318和索引部分319。使用提取-移位-相加指令(即,图2中所说明的提取-移位-相加指令216),将来自第一寄存器312的位字段数据316写入到第二寄存器314的索引部分319,以形成到存储数据的半字的表内的元素的地址。在此实例中,插入点313在第二寄存器314的位1处。
第三集合320包含第一寄存器322,第一寄存器322包含包括位字段数据326的位字段。第一寄存器322还可包含偏移位327。第二寄存器324包含表地址信息部分328和索引部分329。使用提取-移位-相加指令(即,图2中所说明的提取-移位-相加指令216),将来自第一寄存器322的位字段数据326写入到第二寄存器324的索引部分329,以形成到存储数据的字的表内的元素的地址。在此实例中,插入点323在第二寄存器324的位2处。
第四集合330包含第一寄存器332,第一寄存器332包含包括位字段数据336的位字段。第一寄存器332还可包含偏移位337。第二寄存器334包含表地址信息部分338和索引部分339。使用提取-移位-相加指令(即,图2中所说明的提取-移位-相加指令216),将来自第一寄存器332的位字段数据336写入到第二寄存器334的索引部分339,以形成到存储数据的双字的表内的元素的地址。在此实例中,插入点333在第二寄存器334的位3处。
在汇编级编程语法中,偏移信息可包含由汇编器使用以将位索引值调整某一偏移量的所提取信息。在特定实例中,对于存储字节的表,没有必要进行调整,因此可使用位零处的插入位置303。对于存储半字的表,汇编器可将偏移数据编码为第二寄存器堆314的索引部分319中的1位偏移,从而在索引部分319内的位1处提供插入位置313。对于存储字的表,汇编器可将偏移数据327编码为第二寄存器堆324的无符号直接字段中的2位偏移,从而在索引部分329内的位2处提供插入位置323。对于存储双字的表,汇编器可将偏移信息337编码到第二寄存器334的无符号直接字段中的3位偏移中,从而在索引部分339内的位3处提供插入位置333。
一般来说,第二寄存器堆304、314、324和334(在插入相应的第一寄存器堆302、312、322和332的相应位字段数据306、316、326和336之后)含有到表部分308、318、328和338内的表的地址,以及到索引部分309、319、329和339内的表内的元素的索引。插入位置303、313、323和333提供位偏移,位偏移转译到表内的数据元素的大小。通过将表对准到存储器内为等于或大于表大小的二的幂大小的逻辑边界,可使用图3中所说明的提取-移位-插入技术来存取表内的元素。
在特定实施例中,存储在第二寄存器中的数据可用作到存储器中的表内的元素(例如图2中所说明的存储在存储器202的表206中的元素207)的无符号直接地址。此地址可用于写入到表内的元素或从所述元素读取数据。
图4是确定表内的元素的地址的方法的特定说明性实施例的流程图。在402处,所述方法包含执行单个指令以识别存储在存储器处的表内的位置。所述单个指令可由处理器执行,以从第一寄存器提取位字段数据,且将位字段数据插入到第二寄存器的索引部分中,其中第二寄存器包含表地址部分和索引部分。表地址部分包含识别与表相关联的存储器位置的表地址,其中所述表地址与位字段数据组合以形成到表内的元素的索引地址。前进到404,所述方法包含执行第二指令以在经索引地址处存取存储器。第二指令可由处理器执行以从表内的经索引地址读取数据或将数据写入到所述经索引地址。所述方法在406处终止。
在特定说明性实施例中,所述方法还可包含基于表地址和表索引来存取表内的元素。在另一特定实施例中,在单个执行循环中提取位字段数据且将其插入到第二寄存器中。第一和第二寄存器可为通用寄存器堆内的寄存器,例如图1中所说明的通用寄存器堆126的通用寄存器。在另一特定实施例中,在与存储在表内的数据结构有关的插入点处插入所提取的位字段数据。举例来说,偏移信息(例如图3中所说明的偏移信息307、317、327和337)可由一个或一个以上执行单元利用以确定插入位置(例如图3中所说明的插入位置303、313、323和333)以用于插入所提取的位字段数据。明确地说,偏移信息可界定根据表存储字节、半字、字还是双字而变化的插入点。明确地说,偏移信息可界定存储在特定表中的数据的类型。执行单元可利用存储器中的表相对于逻辑边界的位置且利用偏移信息来计算到表内的元素的地址,且从表检索适当大小的数据结构。
图5是确定表内的元素的地址的方法的第二特定说明性实施例的流程图。在502处,所述方法包含从第一寄存器提取位字段数据。前进到504,所述方法包含将所提取的位字段数据插入到包含表地址部分和索引部分的第二寄存器的索引部分中。第二寄存器包含存储在表地址部分中的表地址数据,其识别与表相关联的存储器位置。表地址数据和所提取的位字段数据界定存储器位置以及到表内的元素的表索引。进行到506,所述方法还包含基于表地址和表索引来存取表内的元素。所述方法在508处终止。
在特定实例中,相对于图1到图5而描述的提取-移位-相加指令提供到表中的非常快的查找。在另一特定实施例中,提取-移位-相加指令可利用单个移位和遮蔽来提供对表内的特定元素的存取。
图6是包含用以确定表内的元素的地址的处理器的代表性无线通信装置600的框图。便携式通信装置600可包含数字信号处理器(DSP)610,所述DSP610包含具有位字段数据的第一寄存器662、具有表地址部分和索引部分的第二寄存器664,以及提取-移位-相加指令668,所述提取-移位-相加指令668可由DSP610内的执行单元执行以执行如相对于图1到图5而描述的提取-移位-相加操作。便携式通信装置600还包含存储器632,存储器632包含包括表元素661的表660。在特定实施例中,DSP610的执行单元可执行提取-移位-相加指令668以从第一寄存器662提取位字段,且将所述位字段插入到第二寄存器664的索引部分中,以确定与表660内的元素661相关联的地址。可使用所确定的地址来检索存储在元素661处的数据,如相对于图1到图5所描述。
图6还展示显示器控制器626,其耦合到数字信号处理器610且耦合到显示器628。此外,输入装置630耦合到数字信号处理器610。另外,存储器632耦合到数字信号处理器610。编码器/解码器(CODEC)634也可耦合到数字信号处理器610。扬声器636和麦克风638可耦合到CODEC634。
图6还指示无线控制器640可耦合到数字信号处理器610且耦合到无线天线642。在特定实施例中,电源644耦合到芯片上系统622。此外,在特定实施例中,如图6中所说明,显示器628、输入装置630、扬声器636、麦克风638、无线天线642和电源644在芯片上系统622外部。然而,每一者均耦合到芯片上系统622的组件。
应理解,虽然将包含位字段的第一寄存器662以及包含表地址部分和索引部分的第二寄存器664描绘为数字信号处理器610的单独组件,但元件662和664两者可改为并入到通用寄存器(例如图1中所说明的通用寄存器堆126)中。另外,虽然将包含位字段的第一寄存器662以及包含表地址部分和索引部分的第二寄存器664描绘为在DSP610内,但应理解,其它处理元件也可利用提取-移位-相加指令668以及来自两个不同寄存器的寄存器数据产生到表660内的元素661的表地址和索引。举例来说,其它组件可包含适合于在单个时钟循环中执行提取-移位-相加指令的处理器,包含(例如)显示器控制器626(其可包含处理器)、无线控制器640(其可包含处理器)、其它处理器电路或其任意组合。
技术人员将进一步了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、计算机软件或上述两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文已大体上根据各种说明性组件、块、配置、模块、电路和步骤的功能性来描述各种说明性组件、块、配置、模块、电路和步骤。将此类功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同的方式来实施所描述的功能性,但此类实施决策不应被解释为导致偏离本发明的范围。
结合本文所揭示的实施例而描述的方法或算法的步骤可直接以硬件、以由处理器执行的软件模块或以上述两者的组合的形式体现。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存在ASIC中。ASIC可驻存在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻存在计算装置或用户终端中。
提供对所揭示的实施例的先前描述,以使所属领域的技术人员能够制作或使用所揭示的实施例。所属领域的技术人员将容易明白对这些实施例的各种修改,且本文所界定的一般原理可在不脱离本发明的精神或范围的情况下应用于其它实施例。因此,本发明不希望限于本文所展示的实施例,而是应被赋予与如由所附权利要求书界定的原理和新颖特征一致的可能的最广范围。
Claims (22)
1.一种确定表内元素地址的方法,其包括:
执行单个指令以识别存储在存储器处的表内的元素的位置,所述单个指令可由处理器执行以:
从第一寄存器提取位字段数据;
将所述位字段数据插入到第二寄存器的索引部分中,所述第二寄存器包含表地址部分;及
根据存储在所述表内的所述元素的数据类型在所述索引部分中选择一个插入点,其中所述表经配置以存储多种数据类型的条目;
其中所述表地址与所述位字段数据组合以形成到所述表内的所述元素的经索引地址。
2.根据权利要求1所述的方法,其进一步包括执行第二指令以在所述经索引地址处存取所述存储器,所述第二指令可由所述处理器执行以从所述表内的所述经索引地址读取数据或将数据写入到所述经索引地址。
3.根据权利要求1所述的方法,其中将所述表对准到为大于或等于所述表的大小的二的幂大小的存储器边界。
4.根据权利要求3所述的方法,其中所述表包括四千字节表,且其中所述表对准到所述存储器的四千字节边界。
5.根据权利要求1所述的方法,其中存储在所述表内的所述元素的所述数据类型是字节、半字、字或者双字。
6.根据权利要求1所述的方法,进一步包括:
在从第一寄存器提取位字段数据之后,确定与存储在所述表内的所述元素的第一数据类型相对应的第一位偏移;以及
将所述位字段数据插入到第二寄存器的索引部分中包含根据所述第一位偏移移动所提取的位字段数据。
7.根据权利要求6所述的方法,其中选择一个插入点进一步包括:
确定与存储在所述表内的第二元素的第二数据类型相对应的第二位偏移,其中所述第二位偏移与所述第一位偏移不同,且所述第二数据类型与所述第一数据类型不同;以及
根据所述第二位偏移移动所提取的位字段数据。
8.根据权利要求6所述的方法,其中所述插入点基于所述第一位偏移。
9.一种由处理器确定表内元素地址的方法,所述处理器包括:
第一寄存器,其包含位字段;
第二寄存器,其包含表地址部分和索引部分,所述表地址部分包含存储在存储器中的表的表地址,其中所述表经配置以存储不同数据类型的条目;以及
执行单元;
所述方法包括:
使用所述执行单元根据所述表内的元素的数据类型从所述索引部分选择一个插入点,其中所述插入点因数据类型的不同而有所区别,且
使用所述执行单元通过如下方式产生到所述表中的元素的经索引地址:处理单个指令,以从所述第一寄存器的所述位字段提取位字段数据且将所提取的位字段数据在所述插入点处插入到所述第二寄存器的所述索引部分中,以产生到所述表中的所述元素的地址。
10.根据权利要求9所述的方法,其中所述表地址部分包括所述第二寄存器的最高有效位部分。
11.根据权利要求9所述的方法,其中所述执行单元包含用以使位移位的移位器。
12.根据权利要求11所述的方法,其中所述移位器适合于使所提取的位字段数据移位预定数目的位,且其中使用加法运算将经移位的位字段数据插入到所述索引部分中。
13.根据权利要求11所述的方法,其中所述移位器包括双向移位器。
14.根据权利要求9所述的方法,其中所述表对准到为大于或等于所述表的大小的二的幂大小的存储器边界。
15.根据权利要求9所述的方法,其中所提取的位字段数据被插入到所述第二寄存器的最低有效位部分中。
16.根据权利要求15所述的方法,其中所提取的位字段数据被插入在所述最低有效位部分内的所述插入点处,以指示存储在所述表中的数据的类型。
17.根据权利要求16所述的方法,其中所述插入点由汇编器在编译时间编码。
18.一种确定表内元素地址的方法,其中所述表经配置以存储多种数据类型,所述方法包括:
从第一寄存器提取位字段数据;
确定第二寄存器的索引部分中的位偏移,其中所述位偏移基于所述表内所述元素的数据类型,且所述位偏移因数据类型的不同而有所区别;以及
根据所述位偏移将所提取的位字段数据插入到所述第二寄存器的所述索引部分中,其中所述第二寄存器包含表地址数据,其中所述表地址数据和所提取的位字段数据提供到所述表内的所述元素的经索引地址;
其中响应于处理器执行单个指令而执行提取所述位字段数据和插入所提取的位字段数据。
19.根据权利要求18所述的方法,其中所述多种数据类型包括字节、半字、字或者双字。
20.根据权利要求18所述的方法,其进一步包括基于所述经索引地址来存取所述表内的所述元素。
21.根据权利要求18所述的方法,其中在单个执行循环内执行提取所述位字段数据和插入所提取的位字段数据。
22.根据权利要求18所述的方法,其中所述第一寄存器和所述第二寄存器是通用寄存器堆内的寄存器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/943,265 | 2007-11-20 | ||
US11/943,265 US7877571B2 (en) | 2007-11-20 | 2007-11-20 | System and method of determining an address of an element within a table |
PCT/US2008/084189 WO2009067598A1 (en) | 2007-11-20 | 2008-11-20 | System and method of determining an address of an element within a table |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101911011A CN101911011A (zh) | 2010-12-08 |
CN101911011B true CN101911011B (zh) | 2016-04-27 |
Family
ID=40279010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880123745.XA Active CN101911011B (zh) | 2007-11-20 | 2008-11-20 | 确定表内的元素的地址的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7877571B2 (zh) |
EP (1) | EP2223204B1 (zh) |
JP (1) | JP5490711B2 (zh) |
KR (1) | KR101283423B1 (zh) |
CN (1) | CN101911011B (zh) |
ES (1) | ES2725800T3 (zh) |
HU (1) | HUE043204T2 (zh) |
WO (1) | WO2009067598A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812516B2 (en) * | 2011-10-18 | 2014-08-19 | Qualcomm Incorporated | Determining top N or bottom N data values and positions |
KR20130087936A (ko) * | 2012-01-30 | 2013-08-07 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이의 프로그램 방법 |
CN104243085A (zh) * | 2013-06-08 | 2014-12-24 | 阿尔卡特朗讯 | 用于编码重组位数据的方法、装置和基站控制器 |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
US20190272175A1 (en) * | 2018-03-01 | 2019-09-05 | Qualcomm Incorporated | Single pack & unpack network and method for variable bit width data formats for computational machines |
KR102663496B1 (ko) * | 2022-08-02 | 2024-05-08 | 이화여자대학교 산학협력단 | 프로세서의 레지스터 캐시 인덱스 결정 방법 및 이를 수행하는 전자 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007050349A2 (en) * | 2005-10-26 | 2007-05-03 | Analog Devices, Inc. | Lookup table addressing system and method |
US7243210B2 (en) * | 2005-05-31 | 2007-07-10 | Atmel Corporation | Extracted-index addressing of byte-addressable memories |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5679352A (en) * | 1979-12-03 | 1981-06-29 | Nec Corp | Address generator |
JPS56164447A (en) * | 1980-05-20 | 1981-12-17 | Canon Inc | Data processing device |
JPS61165148A (ja) * | 1984-12-14 | 1986-07-25 | Fujitsu Ltd | テ−ブルアクセス命令方式 |
JP3203401B2 (ja) * | 1993-05-21 | 2001-08-27 | 三菱電機株式会社 | データ処理装置 |
US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
US6263420B1 (en) | 1997-09-17 | 2001-07-17 | Sony Corporation | Digital signal processor particularly suited for decoding digital audio |
GB2352065B (en) * | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
EP1369774A1 (fr) * | 2002-06-06 | 2003-12-10 | CSEM Centre Suisse d'Electronique et de Microtechnique SA Recherche et Développement | Dispositif d'élaboration d'adresses pour un processeur de signaux numériques |
JP4545777B2 (ja) | 2002-06-28 | 2010-09-15 | ルネサスエレクトロニクス株式会社 | データ処理装置 |
-
2007
- 2007-11-20 US US11/943,265 patent/US7877571B2/en active Active
-
2008
- 2008-11-20 HU HUE08851185A patent/HUE043204T2/hu unknown
- 2008-11-20 EP EP08851185.2A patent/EP2223204B1/en active Active
- 2008-11-20 KR KR1020107013566A patent/KR101283423B1/ko active IP Right Grant
- 2008-11-20 WO PCT/US2008/084189 patent/WO2009067598A1/en active Application Filing
- 2008-11-20 JP JP2010535062A patent/JP5490711B2/ja active Active
- 2008-11-20 CN CN200880123745.XA patent/CN101911011B/zh active Active
- 2008-11-20 ES ES08851185T patent/ES2725800T3/es active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243210B2 (en) * | 2005-05-31 | 2007-07-10 | Atmel Corporation | Extracted-index addressing of byte-addressable memories |
WO2007050349A2 (en) * | 2005-10-26 | 2007-05-03 | Analog Devices, Inc. | Lookup table addressing system and method |
Also Published As
Publication number | Publication date |
---|---|
CN101911011A (zh) | 2010-12-08 |
EP2223204B1 (en) | 2019-02-13 |
JP5490711B2 (ja) | 2014-05-14 |
WO2009067598A1 (en) | 2009-05-28 |
EP2223204A1 (en) | 2010-09-01 |
KR101283423B1 (ko) | 2013-07-08 |
US20090132783A1 (en) | 2009-05-21 |
ES2725800T3 (es) | 2019-09-27 |
HUE043204T2 (hu) | 2019-08-28 |
JP2011503758A (ja) | 2011-01-27 |
US7877571B2 (en) | 2011-01-25 |
KR20100075697A (ko) | 2010-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101911011B (zh) | 确定表内的元素的地址的系统和方法 | |
CN101223504B (zh) | 高速缓存用于多状态处理器的指令 | |
CN101627366B (zh) | 预加载指令的方法及装置 | |
CN101694613B (zh) | 不对准存储器存取预测 | |
JP5313228B2 (ja) | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア | |
CN103365627A (zh) | 执行单元内的数据转发系统和方法 | |
CN101189585A (zh) | 字节可寻址存储器的提取索引寻址 | |
CN114721720B (zh) | 一种指令集扩展方法、装置、电子设备及存储介质 | |
CN101911016B (zh) | 计算机系统和操作计算机的方法 | |
CN104871144A (zh) | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 | |
US8635434B2 (en) | Mathematical operation processing apparatus for performing high speed mathematical operations | |
JP2001005675A (ja) | プログラム変換装置及びプロセッサ | |
CN102893260B (zh) | 用以作为指令评估数据值的系统和方法 | |
CN117389629A (zh) | 分支预测方法、装置、电子设备及介质 | |
JP2002229778A (ja) | 高速ディスプレースメント付きpc相対分岐方式 | |
US20030074364A1 (en) | Compressed data structure and decompression system | |
CN116339832A (zh) | 数据处理装置、方法及处理器 | |
CN111443948A (zh) | 指令执行方法、处理器和电子设备 | |
JP5186802B2 (ja) | マイクロプロセッサ | |
JP2000029684A (ja) | コンピュ―タ・システム | |
US6816962B2 (en) | Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions | |
CN102541745B (zh) | 微控制器数据存储器的寻址方法和微控制器 | |
US7895414B2 (en) | Instruction length determination device and method using concatenate bits to determine an instruction length in a multi-mode processor | |
US7457919B2 (en) | Method for memory page management | |
CN107133081B (zh) | 指令分派方法和解释器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |