CN101911011A - 确定表内的元素的地址的系统和方法 - Google Patents

确定表内的元素的地址的系统和方法 Download PDF

Info

Publication number
CN101911011A
CN101911011A CN200880123745XA CN200880123745A CN101911011A CN 101911011 A CN101911011 A CN 101911011A CN 200880123745X A CN200880123745X A CN 200880123745XA CN 200880123745 A CN200880123745 A CN 200880123745A CN 101911011 A CN101911011 A CN 101911011A
Authority
CN
China
Prior art keywords
register
address
bit field
field data
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.)
Granted
Application number
CN200880123745XA
Other languages
English (en)
Other versions
CN101911011B (zh
Inventor
尚卡尔·克里蒂瓦桑
曾贸
卢奇安·科德雷斯库
埃里克·J·普隆德克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101911011A publication Critical patent/CN101911011A/zh
Application granted granted Critical
Publication of CN101911011B publication Critical patent/CN101911011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements 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)
  • Executing Machine-Instructions (AREA)

Abstract

在一特定实施例中,揭示一种方法,其包含执行单个指令以识别存储在存储器处的表内的位置。所述单个指令可由处理器执行以从第一寄存器提取位字段数据,且将所述位字段数据插入到第二寄存器的索引部分中。所述第二寄存器包含表地址部分和索引部分。所述表地址部分包含识别与表相关联的存储器位置的表地址。所述表地址与所述位字段数据组合以形成到所述表内的元素的经索引地址。

Description

确定表内的元素的地址的系统和方法
技术领域
本发明大体上涉及一种确定表内的元素的地址的系统和方法。
背景技术
数字信号处理器(DSP)被频繁用于例如无线电话、个人计算机、个人数字助理(PDA)、音频播放器、其它电子装置或其任意组合等便携式个人计算装置中。此类DSP可用于提供视频和音频功能、用于处理接收到的数据,或用于执行其它功能。此类DSP可采用多线程结构,所述多线程结构可处理多个程序指令线程,且可包含并行执行单元。
处理器(例如DSP)通常包含存储器地址产生器,其产生用于从主存储器检索数据或用于存储DSP所产生的数据的存储器地址。在一些例子中,可基于检索到的值来计算存储器地址。在检索到值之后,算术与逻辑单元(ALU)对所述值执行位移位操作(bit shifting operation),且经移位的值存储到寄存器中。在下一个指令循环中,可从寄存器读取经移位的值,可对经移位的值执行数值运算以产生存储器地址。处理器可利用所述存储器地址来存取存储器内的位置,以写入其它结果或检索数据。
在当前处理器中,常见的是基于结构中某一数目的位在表中查找数据。然而,将地址计算到表中可能需要两个或两个以上执行循环。因此,需要增强的地址计算。
发明内容
在一特定实施例中,揭示一种方法,其包含执行单个指令以识别存储在存储器处的表内的位置。所述单个指令可由处理器执行以从第一寄存器提取位字段数据,且将所述位字段数据插入到第二寄存器的索引部分中。所述第二寄存器包含表地址部分和索引部分。所述表地址部分包含识别与表相关联的存储器位置的表地址。所述表地址与所述位字段数据组合以形成到所述表内的元素的经索引地址。
在另一特定实施例中,揭示一种处理器,所述处理器包含:第一寄存器,其包含位字段;以及第二寄存器,其包含表地址部分和索引部分。所述表地址部分包含识别存储器中的表的位置的表地址。所述处理器还包含执行单元,其适合于通过处理单个指令以从第一寄存器的位字段提取位字段数据且将所提取的位字段数据插入到第二寄存器的索引部分中以产生到表内的元素的地址来产生地址。
在再一特定实施例中,揭示一种确定到表中的地址的方法。所述方法包含从第一寄存器提取位字段数据,以及将所提取的位字段数据插入到包含表地址部分和索引部分的第二寄存器的索引部分中。第二寄存器包含存储在表地址部分中的表地址数据,其识别与表相关联的存储器位置。表地址数据和所提取的位字段数据提供存储器位置以及到表内的元素的表索引。
本文所揭示的系统和方法的实施例所提供的一个特定优点在于涉及移位与算术运算的组合的操作可在单个执行循环中执行。
所述方法的实施例所提供的另一特定优点在于可快速地计算地址,且可改进利用查找表的操作。举例来说,支持特定方法和相关联指令的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,所述DSP 610包含具有位字段数据的第一寄存器662、具有表地址部分和索引部分的第二寄存器664,以及提取-移位-相加指令668,所述提取-移位-相加指令668可由DSP 610内的执行单元执行以执行如相对于图1到图5而描述的提取-移位-相加操作。便携式通信装置600还包含存储器632,存储器632包含包括表元素661的表660。在特定实施例中,DSP 610的执行单元可执行提取-移位-相加指令668以从第一寄存器662提取位字段,且将所述位字段插入到第二寄存器664的索引部分中,以确定与表660内的元素661相关联的地址。可使用所确定的地址来检索存储在元素661处的数据,如相对于图1到图5所描述。
图6还展示显示器控制器626,其耦合到数字信号处理器610且耦合到显示器628。此外,输入装置630耦合到数字信号处理器610。另外,存储器632耦合到数字信号处理器610。编码器/解码器(CODEC)634也可耦合到数字信号处理器610。扬声器636和麦克风638可耦合到CODEC 634。
图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 (25)

1.一种方法,其包括:
执行单个指令以识别存储在存储器处的表内的位置,所述单个指令可由处理器执行以:
从第一寄存器提取位字段数据;及
将所述位字段数据插入到第二寄存器的索引部分中,所述第二寄存器包含表地址部分和索引部分,所述表地址部分包含识别与表相关联的存储器位置的表地址:
其中所述表地址与所述位字段数据组合以形成到所述表内的元素的经索引地址。
2.根据权利要求1所述的方法,其进一步包括执行第二指令以在所述经索引地址处存取所述存储器,所述第二指令可由所述处理器执行以从所述表内的所述经索引地址读取数据或将数据写入到所述经索引地址。
3.根据权利要求1所述的方法,其中将所述表对准到为大于或等于所述表的大小的二的幂大小的存储器位置。
4.根据权利要求3所述的方法,其中所述表包括四千字节表,且其中所述表对准到所述存储器的四千字节边界。
5.根据权利要求1所述的方法,其中基于存储在所述表中的表条目的类型在插入点处插入所述所提取的位字段数据。
6.根据权利要求5所述的方法,其中当所述表存储数据的字节时,所述插入点为位零。
7.根据权利要求5所述的方法,其中当所述表存储半字时,所述插入点为位一。
8.根据权利要求5所述的方法,其中当所述表存储字时,所述插入点为位二。
9.根据权利要求5所述的方法,其中当所述表存储双字时,所述插入点为位三。
10.一种处理器,其包括:
第一寄存器,其包含位字段;
第二寄存器,其包含表地址部分和索引部分,所述表地址部分包含识别存储器中的表的位置的表地址;以及
执行单元,其适合于通过处理单个指令以从所述第一寄存器的所述位字段提取位字段数据且将所述所提取的位字段数据插入到所述第二寄存器的所述索引部分中以产生到所述表内的元素的地址来产生地址。
11.根据权利要求10所述的处理器,其中所述执行单元包含用以使位移位的移位器。
12.根据权利要求11所述的处理器,其中所述移位器适合于使所述所提取的位字段数据移位预定数目的位,且其中使用加法运算将所述经移位的位字段数据插入到所述索引部分中。
13.根据权利要求11所述的处理器,其中所述移位器包括双向移位器。
14.根据权利要求10所述的处理器,其中所述表对准到为大于或等于所述表的大小的二的幂大小的存储器边界。
15.根据权利要求10所述的处理器,其中所述表地址部分包括所述第二寄存器的最高有效位部分。
16.根据权利要求10所述的处理器,其中所述所提取的位字段数据被插入到所述第二寄存器的最低有效位部分中。
17.根据权利要求16所述的处理器,其中所述所提取的位字段数据被插入在所述最低有效位部分内的插入点处,以指示存储在所述表中的数据的类型。
18.根据权利要求17所述的处理器,其中所述插入点由汇编器在编译时间编码。
19.一种确定到表中的地址的方法,所述方法包括:
从第一寄存器提取位字段数据;以及
将所述所提取的位字段数据插入到包含表地址部分和索引部分的第二寄存器的所述索引部分中,所述第二寄存器包含存储在所述表地址部分中的识别与表相关联的存储器位置的表地址数据,所述表地址数据和所述所提取的位字段数据提供所述存储器位置以及到所述表内的元素的表索引。
20.根据权利要求19所述的方法,其进一步包括基于所述表地址和所述表索引来存取所述表内的所述元素。
21.根据权利要求19所述的方法,其中响应于处理器执行单个指令而执行提取所述位字段数据和插入所述所提取的位字段数据。
22.根据权利要求19所述的方法,其中在单个执行循环内执行提取所述位字段数据和插入所述所提取的位字段数据。
23.根据权利要求19所述的方法,其中所述第一寄存器和所述第二寄存器是通用寄存器堆内的寄存器。
24.根据权利要求19所述的方法,其中在由存储在所述表内的数据结构确定的插入点处插入所述所提取的位字段数据。
25.根据权利要求24所述的方法,其中所述插入点依据所述数据结构为字节、半字、字还是双字而不同。
CN200880123745.XA 2007-11-20 2008-11-20 确定表内的元素的地址的系统和方法 Active CN101911011B (zh)

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 true CN101911011A (zh) 2010-12-08
CN101911011B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874982A (zh) * 2011-10-18 2014-06-18 高通股份有限公司 确定顶部n个或底部n个数据值
CN104243085A (zh) * 2013-06-08 2014-12-24 阿尔卡特朗讯 用于编码重组位数据的方法、装置和基站控制器

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130087936A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 메모리 장치, 메모리 시스템 및 이의 프로그램 방법
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ルネサスエレクトロニクス株式会社 データ処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874982A (zh) * 2011-10-18 2014-06-18 高通股份有限公司 确定顶部n个或底部n个数据值
CN103874982B (zh) * 2011-10-18 2015-09-23 高通股份有限公司 确定顶部n个或底部n个数据值
CN104243085A (zh) * 2013-06-08 2014-12-24 阿尔卡特朗讯 用于编码重组位数据的方法、装置和基站控制器

Also Published As

Publication number Publication date
JP5490711B2 (ja) 2014-05-14
CN101911011B (zh) 2016-04-27
KR20100075697A (ko) 2010-07-02
EP2223204B1 (en) 2019-02-13
EP2223204A1 (en) 2010-09-01
KR101283423B1 (ko) 2013-07-08
WO2009067598A1 (en) 2009-05-28
US20090132783A1 (en) 2009-05-21
US7877571B2 (en) 2011-01-25
JP2011503758A (ja) 2011-01-27
HUE043204T2 (hu) 2019-08-28
ES2725800T3 (es) 2019-09-27

Similar Documents

Publication Publication Date Title
US10514922B1 (en) Transfer triggered microcontroller with orthogonal instruction set
US7774768B2 (en) Method and apparatus for processor code optimization using code compression
CN101911011A (zh) 确定表内的元素的地址的系统和方法
CN101223504B (zh) 高速缓存用于多状态处理器的指令
CN101438235B (zh) 将硬件结束循环信息编码到指令上
US9201658B2 (en) Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries
CN101203830A (zh) 用于在交错的多线程环境中操作的数字信号处理器的寄存器堆
CN101189585A (zh) 字节可寻址存储器的提取索引寻址
CN103365627A (zh) 执行单元内的数据转发系统和方法
EP2734918B1 (en) Table call instruction for frequently called functions
CN101911016A (zh) 执行相对指令
US7984277B2 (en) System and method of instruction modification
JP2001005675A (ja) プログラム変換装置及びプロセッサ
CN102893260B (zh) 用以作为指令评估数据值的系统和方法
CN101911014A (zh) 旋转然后插入所选比特的工具以及由此的指令
JP3570287B2 (ja) マイクロコンピュータ
EP2542963B1 (en) System and method of processing hierarchical very long instruction packets
JP2008282105A (ja) マイクロプロセッサおよびレジスタ退避方法
KR100301224B1 (ko) 고정도수를저장하는컴퓨터내에서이용가능한메모리주소위치의수를증가시키기위한메모리주소지정방법
JP2006072961A (ja) 演算処理装置のメモリ回路
CN101739234B (zh) 指令模式识别装置
US7103751B1 (en) Method and apparatus for representation of an address in canonical form
GB2452151A (en) Using the concatenate bits of an instruction to obtain the length of the instruction in multi-mode processors.
JP3792633B2 (ja) マイクロコントローラ、及びマイクロコントローラ装置
KR100773800B1 (ko) 반도체 장치

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