CN1173272C - 多重可变地址映射电路 - Google Patents

多重可变地址映射电路 Download PDF

Info

Publication number
CN1173272C
CN1173272C CNB001247336A CN00124733A CN1173272C CN 1173272 C CN1173272 C CN 1173272C CN B001247336 A CNB001247336 A CN B001247336A CN 00124733 A CN00124733 A CN 00124733A CN 1173272 C CN1173272 C CN 1173272C
Authority
CN
China
Prior art keywords
address
working storage
mapper
array
length
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.)
Expired - Fee Related
Application number
CNB001247336A
Other languages
English (en)
Other versions
CN1342935A (zh
Inventor
穆 吴
吴穆
Original Assignee
Information Industry Strategy Association
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 Information Industry Strategy Association filed Critical Information Industry Strategy Association
Priority to CNB001247336A priority Critical patent/CN1173272C/zh
Publication of CN1342935A publication Critical patent/CN1342935A/zh
Application granted granted Critical
Publication of CN1173272C publication Critical patent/CN1173272C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明多重可变地址映射电路主要包括至少一个地址映射器,用以负责处理阵列中某一字段阵列的输入逻辑地址与输出实体地址的转换;一映射器选择器,负责选择输出的实体地址是采用何组的地址映射器;以及一控制及接口电路,用以设定基址位移暂存器,逻辑基址暂存器,字段长度暂存器以及记录长度暂存器的内容,并控制地址映射器及映射器选择器的动作。

Description

多重可变地址映射电路
技术领域
本发明是关于一种处理地址映射的电路,尤其对于处理结构性非连续的地址映射可大量减少以软件方式的地址运算。
背景技术
目前处理器对存储器或周边存取,都采用单一固定地址映射存取方式,在硬件电路设计时,便将存储器或周边的存取地址固定下来。有些电路在地址解码时采用不完全解码技巧,只解码部分地址线,让相同的周边或存储器可以对应到不同的地址,但这种技巧下,不同地址的资料排列方式却是相同的。
有些嵌入式处理器(Embedded CPU),将地址解码电路内建在处理器内。可用程序设定方式,指定所接的存储器或周边的地址,但所存取的都是连续地址空间。
习知技术对于处理结构性非连续的地址映射仍以软件方式的地址运算处理,而大量增加以软件方式的地址运算,对于经常处理如阵列资料而言,增加处理器的负荷。
发明内容
本发明的主要目的是在提供一种多重可变地址映射电路,以便能在处理结构性非连续资料时,由硬件的地址映射电路取代大量的软件地址运算。
本发明的次要目的是在提供一种多重可变地址映射电路,以便能增加程序的可移植性(Portability),由于可以将实体地址映射到逻辑地址,程序设计师设计主要系统程序时直接采用逻辑地址,仅需在初始设定时,设定地址映射电路的映射函数,因此可以快速移植程序到不同平台设备。
本发明的另一目的是在多重可变地址映射电路的地址映射电路内,设有复数的暂存器,使得改变暂存器的内容,便可改变映射函数。
为达成上述的目的,本发明一种多重可变地址映射电路,是接收阵列资料中某一字段阵列的输入逻辑地址而处理为输出实体地址,其特征在于,该多重可变地址映射电路包括:
至少一个地址映射器,用以负责处理阵列中某一字段阵列的输入逻辑地址与输出实体地址的转换,其中该至少一个地址映射器包括:
基址位移暂存器,记录该字段阵列要做地址映射的起始实体地址;
逻辑基址暂存器,记录该字段阵列要做地址映射的起始逻辑地址;
字段长度暂存器,记录该字段阵列的长度;
记录长度暂存器,记录该阵列的长度;
减法器,将输入逻辑地址与逻辑基址暂存器所储存的逻辑地址进行减法的运算;
除法/余数产生器,将减法器的输出值与字段长度暂存器所储存的字段的长度进行除法/余数的运算;
乘法器,将记录长度暂存器所储存的阵列的长度与除法/余数产生器的商数输出值进行乘法的运算;
加法器,将基址位移暂存器所储存的起始实体地址,除法/余数产生器的余数输出值,与乘法器的输出值进行加法的运算以得到输出实体地址;
映射器选择器,负责选择输出的实体地址是采用何组的地址映射器;以及
控制及接口电路,用以设定基址位移暂存器,逻辑基址暂存器,字段长度暂存器以及记录长度暂存器的内容,并控制地址映射器及映射器选择器的动作。
其中地址映射器的数目为复数个。
其中控制及接口电路包括输出/入解码器,用来解码基址位移暂存器,逻辑基址暂存器,字段长度暂存器以及记录长度暂存器的地址,以进行存取。
由于本发明确有增进功效,故依法申请发明专利。
附图说明
为进一步说明本发明的结构及其特征,以下结合附图对本发明作进一步的详细描述,其中:
图1是本发明多重可变地址映射电路的方块图实施例。
图2是说明本发明应用于阵列中资料存取的例子。
图3是本发明关于地址映射器电路的方块图实施例。
图4是本发明关于映射器选择器的电路方块图实施例。
图5是本发明关于OR门遮罩电路实施例。
图6是本发明关于控制及接口电路方块图实施例。
具体实施方式
如先参考图1有关本发明多重可变地址映射电路10的方块图。
对于多重可变地址映射电路10而言,输入逻辑地址51是指电脑的处理器或主机板地址总线93(Logical Address Bus)所认定的地址,而输出实体地址52(Physical Address)即为多重可变地址映射电路10将输入逻辑地址51转换后的地址,输出实体地址52为真正送到存储器91或输出/入设备92的地址信号。输入逻辑地址51与输出实体地址52的对应关系是可变的,而且可以是连续或非连续的对应关系。如图1所示,有五组地址映射器20a,20b,20c,20d,20e(Addr Mpprer),每一个地址映射器20都可以个别设定映射方式,将虚拟的输入逻辑地址51映射到输出实体地址52。假设要将输出实体地址52如,4000,4008,4016,4024,4032,…等对应到逻辑地址0,1,2,3,4,5…。等,可设定地址映射器20a如下:
地址映射器20a:PA=F1(LA),F1(x)=4000+(x)×8
并将映射器选择器30(Mapper Selector)设为CS0是采用地址映射器20a,当处理器在存取输入逻辑地址51:0,1,2,3,…等时,实际存取到输出实体地址52:4000,4008,4016…。等等的资料。
对于存储器91或输出/入设备92,可以有多种逻辑地址(也可称为虚拟地址)与实体地址的对应关系。也就是多重地址功能,而每一种地址的定址方式都可以不相同。如图1所示,外部的处理器的地址总线93(即Logical Addr.Bus,LA)可以透过多重可变地址映射电路10的三组地址映射器20a,20b,20c,以三种不同的映射方式,转换成到存储器(Memory)的实体地址(Physical Address,PA),存取存储器资料。而输出/入设备92则用到两组地址映射器20d,20e。
地址映射器20a:PA=F1(LA)
地址映射器20b:PA:F2(LA)
地址映射器20c:PA:LA
F1,F2,为不同映射函数,而地址映射器20c则不做任何转换。
透过不同的映射函数设定,可将存储器91映射到输出/入设备92地址范围或将输出/入设备92映射到存储器91范围。
使用者可以采用地址区域对应方式,将不同的地址空间映射到不同的映射器,比如地址0000-3fff自动使用地址映射器20a,4000-BFFF不做任何映射,C000-DFFF为使用地址映射器20b,F000-FFFF使用地址映射器20c。
以上这些逻辑地址与实体地址的转换,是利用硬件电路完成,可节省大量的软件运算及存取时间。比如在处理结构性非连续资料时,由硬件的地址映射电路取代大量的软件地址运算。假设要存取4000,4008,4016,4024,4032,…地址内的资料,以下列简单的地址转换函数为例:
    F1(x)=4000+(x)×8
以软件计算地址时,需要做一次乘法或位移运算及一次的加法运算,以下即为以80×86组合语言说明进行一次存取时,所需要的指令如下
    MOV      BX,x
    SHL      BX,3;Multiply 8
    ADD      BX,4000
    MOV      AX,[BX]
若函数更为复杂,则所需的运算更多。若以本技术方式存取,在AddrMapper设定后,仅需下列指令即可完成
    MOV      BX,x
    MOV      AX,[BX]
如果是较复杂的方式,比如每隔20地址取连续3地址的内容资料,也可利用此电路来完成存取。这在使用回路(loop)存取大量资料时,将节省大量时间。
另外此本发明亦可增加程序的可移植性(Portability),由于可以将实体地址映射到逻辑地址,程序设计师设计主要系统程序时直接采用逻辑地址,仅需在初始设定时,设定地址映射器20的映射函数,因此可以快速移植程序到不同平台设备。
为说明本技术的特点,请参考图2有关本发明应用于阵列中资料存取的例子,比如将表A(TableA)的姓名A(NameA)字段资料取出放入表B(TableB)的客户B(CustomB)栏中为例:
在地址4000h地址处,有一组多字段资料TableA,TableA有三组字段,字段名称及字段长度分别为NoA占4位元组(bytes),NameA占16位元组,NIDA占8位元组。此外在地址6000h处,有另一组多字段资料TableB,TableB有两字段,SIDB占4位元组,CustomB占16位元组。
NameA起始地址:4000h+4+(1Ch*i),i=0,1,2…。(i代表列数),各NameA起始地址即4004h,4020h,403ch,4058h,……
CustomB起始地址:6000h+4+(14h*j),j=0,1,2…,(j代表列数),各CustomB起始地址即600h,6018h,602ch,6040h,……
对每一个Table中任一字段的起始地址及栏宽,可用下列公式表示:
Addr_start=Base+FieldOffset+n*RecordLen
          =(Base+FieldOffset)+n*RecordLen
各参数如下:
Base:Table起始地址,如TableA为4000h,TableB为6000h。
FieldOffset:字段在该笔资料中的位移值,TableA及TableB各位移如下:
NoA:0,NameA:4,NIDA:14h
SIDB:0,CustomB:4
RecordLen:每笔资料的长度,在TableA为1Ch,TableB为14h
若要将所有该栏资料的地址以连续资料来存取,则公式修改如下:
公式(一):
S[x]=(Base+FieldOffset)+INT(x/FieldLen)*RecordLen+(x modFieldLen),其中:
x为资料在逻辑阵列S中的位移值。
FieldLen:栏宽。各栏的FieldLen如下:
NoA:4,NameA:10h,NIDA:8
SIDB:4,CustomB:10h
现假设TableA有n笔资料,若以传统软件方式来复制此字段,程序虚拟码片段如下
char*ptrA,*ptrB;

    unsigned long tempA,tempB,count,x,n;

    tempA=Base(TableA)+FieldOffset(NameA);

     tempB=Base(TableB)+FieldOffset(CustomB);

    count=n*FieldLen(NameA);

    for(x=0;x<count;x++)

    {ptrA=(char*)(tempA+(int)(x/FieldLen)(NameA))*RecordLen(TableA)+<br/>
(x%FieldLen(NameA)));

    ptrB=(char
        <!-- SIPO <DP n="6"> -->
        <dp n="d6"/>
*)(tempB+(int)(x/FieldLen)(CustomB))*RecordLen(TableB)+(x%
FieldLen(CustomB)));

    ptrB=ptrA;

   }
上述程序中有底线的程序码部分,若能以硬件计算,我们可以精简上述的for回路程序
……………
prtA=VbaseA;//VbaseA为NameA字段的逻辑起始地址
prtB=VbaseB;//VbaseB为CustomB字段的逻辑起始地址
count=n*FieldLen(NameA);
for(x=0;x<count;x++)
{*ptrB++=*ptrA++
}
本发明便是采用硬件方式,达成此一快速运算的目的,由于本发明对于非连续性的阵列资料存取相当有用,为了达成上述所举的例子的目的,地址映射器20的方块图实施例请参考图3,该地址映射器20的方块图所代表的公式请参考上述的公式(一):
根据前述的公式(一):
S[x]=(Base+FieldOffset)+INT(x/FieldLen)*RecordLen+(x modFieldLen),其中:
x为资料在某一逻辑阵列S(比如TableA的NameA字段阵列)中的位移值,因此可作为阵列指标;
S[x]为输出实体地址52:
逻辑阵列S的输入逻辑地址51以SBase+x表示,其中Sbase代表记录该字段阵列要做地址映射的起始逻辑地址,因此x可被计算出,亦即x=输入逻辑地址51-Sbase。
地址映射器20以下列暂存器来存放相关参数:
基址位移暂存器21,记录该字段阵列要做地址映射的起始实体地址,亦即Base+FieldOffset值,以上述实施例则为4000h+4=4004h;
逻辑基址暂存器22,记录该字段阵列要做地址映射的起始逻辑地址,亦即Sbase,比如设为C000h或0(视进入的地址线为完整地址线C000h或仅低阶地址部分而定);若逻辑地址阵列起始地址自0000开始或所取的有效低阶地址为0(比如逻辑地址阵列开始地址为C000h,但因只用低阶12条地址线,因此传入的Address为000),电路上便不需要逻辑基址暂存器22及减法器25,字段长度暂存器23,记录该阵列的长度,亦即
FieldLen值,以上述实施例则为10h:
记录长度暂存器24,记录该阵列的长度,亦即RecordLen值,以上述实施例则为1Ch;
地址映射器20以下列的数学运算器完成:
减法器25,将输入逻辑地址51与逻辑基址暂存器22所储存的逻辑基址地址进行减法的运算,亦即求出阵列指标x=输入逻辑地址51-Sbase,比如输入逻辑地址51为C004h,则X=C004h-C000h=4。
除法/余数产生器26,将减法器25的输出值与字段长度暂存器23所储存的字段的长度进行除法/余数的运算,亦即求出INT(x/FieldLen)商数的值,以及(x mod FieldLen)余数的值。比如x=12h,则求出商数的值=1,余数的值=2乘法器27,将记录长度暂存器24所储存的阵列的长度与除法/余数产生器26的商数输出值进行乘法的运算,亦即求出INT(x/FieldLen)*RecordLen的值,比如x=12h,商数的值=1,乘法器输出=1Ch。
加法器28,将基址位移暂存器21所储存的起始实体地址,除法/余数产生器26的余数输出值,与乘法器27的输出值进行加法的运算以得到输出实体地址52,亦即求出S[x],比如输入逻辑地址51为C012h,输出实体地址52为4022h。
由以上可知,只要传入一个逻辑地址,电路便可输出所对应到的实体地址。在此逻辑地址范围内,处理器可以是连续存取或随意存取资料。不需要再做复杂的软件地址运算。并且只要改变基址位移暂存器21,逻辑基址暂存器22,字段长度暂存器23及记录长度暂存器24的内容,便可改变映射函数。
在上述图2的实施例,由于需要求得TableA的NameA字段的实体地址,以及TableB的CustomB字段的实体地址,因此最好利用两个地址映射器20。
图4为映射器选择器30的电路方块图。主要功能为透过地址组解码器31将区块地址Bank Address(即为输入逻辑地址51的高阶地址线)解码,根据解码结果及映射区域地址遮罩暂存器33(Bank MaskRegister)的内容,决定所选用的地址映射器20。电路说明如下,区块地址经过地址组解码器31(Address Bank Decode)解码,X0到Xm表示不同的解码范围,比如解码到0000-0fff会使X0为1,X1到Xm则为0。1000-1fff会使X1为1,其他为0,以此类推。这些脚位会送到多组OR门罩电路32(MASK OR),此电路是将映射区域地址遮罩暂存器33内容先和地址组解码器31的输出相对应的位元先做逻辑AND运算,再将输出一起做OR运算。这是用来控制哪些Bamk解码地址可送到Z的输出。比如将映射区域地址遮罩暂存器33的Y0、Y1及Y2设为1,Y3到Ym设为0,表示X0、X1、X2此三个地址解码范围有效,其余无效。一但地址范围落在X0、X1、X2中的任一范围,Z输出便成为1,否则为0,OR门罩电路32如图5所示。每个地址映射器20会有一个映射区域地址遮罩暂存器33及一个OR门罩电路32,若有三个地址映射器20便有三个映射区域地址遮罩暂存器33及三个OR门遮罩电路32。
每组OR门遮罩电路32的输出会送到优先权编码器34(PriorityEncode),它会以优先权的方式加以编码,比如Z2的输出为1,其余输入为0,则优先权编码器34的输出为2。若有两组以上的输入同时为1,则依照优先次序编码输出。
多工器35根据优先权编码器34的输出,决定所选用的地址映射器20,而输出该组映射器的实体映射地址。
当优先权编码器34的输出为0时,输出的地址即为输入的地址,电路不做地址映射转换。
图6是本发明关于控制及接口电路(Control & Interface)方块图实施例,控制及接口电路用以设定及存取地址映射器20及映射器选择器30内部暂存器的资料,输出/入解码器41(IO Decoder)用来解码各暂存器的地址,以进行存取。资料缓冲器42(Data Buffer)则将外界资料总线94(Data Bus)的资料,存入暂存器,或将暂存器资料送到外界资料总线94。
需注意的是,上述仅为实施例,而非限制于实施例。比如此不脱离本发明基本架构者,皆应为本专利所主张的权利范围,而应以专利申请范围为准。

Claims (3)

1.一种多重可变地址映射电路,是接收阵列资料中某一字段阵列的输入逻辑地址而处理为输出实体地址,其特征在于,该多重可变地址映射电路包括:
至少一个地址映射器,用以负责处理阵列中某一字段阵列的输入逻辑地址与输出实体地址的转换,其中该至少一个地址映射器包括:
基址位移暂存器,记录该字段阵列要做地址映射的起始实体地址;
逻辑基址暂存器,记录该字段阵列要做地址映射的起始逻辑地址;
字段长度暂存器,记录该字段阵列的长度;
记录长度暂存器,记录该阵列的长度;
减法器,将输入逻辑地址与逻辑基址暂存器所储存的逻辑地址进行减法的运算;
除法/余数产生器,将减法器的输出值与字段长度暂存器所储存的字段的长度进行除法/余数的运算;
乘法器,将记录长度暂存器所储存的阵列的长度与除法/余数产生器的商数输出值进行乘法的运算;
加法器,将基址位移暂存器所储存的起始实体地址,除法/余数产生器的余数输出值,与乘法器的输出值进行加法的运算以得到输出实体地址;
映射器选择器,负责选择输出的实体地址是采用何组的地址映射器;以及
控制及接口电路,用以设定基址位移暂存器,逻辑基址暂存器,字段长度暂存器以及记录长度暂存器的内容,并控制地址映射器及映射器选择器的动作。
2.根据权利要求1所述的多重可变地址映射电路,其特征在于,其中地址映射器的数目为复数个。
3.根据权利要求1所述的多重可变地址映射电路,其特征在于,其中控制及接口电路包括输出/入解码器,用来解码基址位移暂存器,逻辑基址暂存器,字段长度暂存器以及记录长度暂存器的地址,以进行存取。
CNB001247336A 2000-09-12 2000-09-12 多重可变地址映射电路 Expired - Fee Related CN1173272C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB001247336A CN1173272C (zh) 2000-09-12 2000-09-12 多重可变地址映射电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB001247336A CN1173272C (zh) 2000-09-12 2000-09-12 多重可变地址映射电路

Publications (2)

Publication Number Publication Date
CN1342935A CN1342935A (zh) 2002-04-03
CN1173272C true CN1173272C (zh) 2004-10-27

Family

ID=4590623

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001247336A Expired - Fee Related CN1173272C (zh) 2000-09-12 2000-09-12 多重可变地址映射电路

Country Status (1)

Country Link
CN (1) CN1173272C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200515147A (en) * 2003-10-17 2005-05-01 Matsushita Electric Ind Co Ltd Semiconductor memory device, controller, and read/write control method thereof
US7272699B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Flexible sub-column to sub-row mapping for sub-page activation in XDR™ DRAMs
TWI520153B (zh) * 2013-11-05 2016-02-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法

Also Published As

Publication number Publication date
CN1342935A (zh) 2002-04-03

Similar Documents

Publication Publication Date Title
CN1306420C (zh) 利用永久历史页表数据预取数据到高速缓存的装置和方法
CN101061466A (zh) 用于处理闪速存储器的数据的装置和方法
CN1499530A (zh) 非易失性存储器系统内有效允许失序写处理的方法和装置
CN1327196A (zh) 信息处理系统和存储器装置的分配方法
CN1437728A (zh) 多组、容错、高性能存储器寻址系统及其方法
CN1795437A (zh) 用于块内页面分组的方法及设备
CN1326132A (zh) 具有压缩指令的处理器及处理器指令的压缩方法
CN100351814C (zh) 用于依据存储器访问模式执行数据存取的装置和方法
CN1799032A (zh) 用于变化内存压缩机器的方法和装置
CN1581069A (zh) 具有多位字段的寄存器的重命名
CN101034372A (zh) 非易失存储系统和非易失存储器的管理方法
CN1269047C (zh) 一种具有内存保护功能的内存管理方法
CN1173262C (zh) 虚拟机指令的优化字节码解释器
CN1567362A (zh) 动态逻辑分区并控制访问权限的ic智能卡及其实现方法
CN1252566A (zh) 直接存储器存取控制方法和装置
CN1592908A (zh) 具有异种对象类型的数据库系统
CN1120196A (zh) 地址变换电路
CN1447242A (zh) 可适用于快闪存储卡的控制装置及其建构方法
CN1173272C (zh) 多重可变地址映射电路
CN1893282A (zh) 一跨序列排序涡轮码系统和其操作方法
CN1473296A (zh) 非易失性存储装置及其控制方法
CN101059785A (zh) 一种利用dma控制器实现二维数据搬运的方法
CN1570878A (zh) 信息家电软件升级方法及其升级数据的编码解码方法
CN1545680A (zh) 存储卡及数据重写方法
CN100340971C (zh) 运算装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20090206

Address after: Taipei city of Taiwan Province

Patentee after: INSTITUTE FOR INFORMATION INDUSTRY

Address before: Taipei city of Taiwan Province

Patentee before: Saipoteer Industrial Co.,Ltd.

Effective date of registration: 20090206

Address after: Taipei city of Taiwan Province

Patentee after: Saipoteer Industrial Co.,Ltd.

Address before: O, building two, No. six, Heping East Road, Taiwan, Taipei, eleven

Patentee before: INSTITUTE FOR INFORMATION INDUSTRY

ASS Succession or assignment of patent right

Owner name: YULIN TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SEILTEL INDUSTRIAL CO., LTD.

Effective date: 20090206

Owner name: SEILTEL INDUSTRIAL CO., LTD.

Free format text: FORMER OWNER: INCORPORATED FOUNDATION OF INFORMATION INDUSTRY INSTITUTE

Effective date: 20090206

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20041027

Termination date: 20110912