一种双口地址总线的软件寻址方法及装置

文档序号:1782914 发布日期:2019-12-06 浏览:18次 >En<

阅读说明:本技术 一种双口地址总线的软件寻址方法及装置 (Software addressing method and device for double-port address bus ) 是由 刘安宁 赵鹏 于 2019-08-13 设计创作,主要内容包括:本发明提供一种双口地址总线的软件寻址方法,应用于通过双口RAM的第一口与RAM通信的处理器,第一口为双口RAM地址总线取反一端,双口RAM的第二口为双口RAM地址总线未取反一端,其特征在于,包括:获取处理器输入的输入地址;获取处理器的输出地址总线的第一最低位和处理器输入地址总线的第二最低位;根据第一最低位和第二最低位,将输入地址转化为第一口访问双口的地址。本发明针对双口RAM的两套地址总线一端取反,一端未取反的硬件状态,利用软件方法找到相对应的储存器单元地址。(The invention provides a software addressing method of a double-port address bus, which is applied to a processor communicating with an RAM through a first port of the double-port RAM, wherein the first port is the inverted end of the double-port RAM address bus, and a second port of the double-port RAM is the non-inverted end of the double-port RAM address bus, and is characterized by comprising the following steps: acquiring an input address input by a processor; acquiring a first lowest bit of an output address bus of a processor and a second lowest bit of an input address bus of the processor; and converting the input address into an address of the first port access double port according to the first lowest bit and the second lowest bit. The invention uses software method to find out the corresponding memory unit address aiming at the hardware state that one end of two sets of address buses of the double-port RAM is negated and the other end is not negated.)

一种双口地址总线的软件寻址方法及装置

技术领域

本发明属于计算机总线通信技术领域,涉及一种双口地址总线的软件寻址方法及装置。

背景技术

双口RAM是一种具有两个读写端口的存储器,两个端口各有一套独立的数据、地址和控制总线,允许两个处理器对存储器进行操作,实现数据共享。两个处理器硬件分配的地址空间需要保证各自软件可以访问到相同的存储器单元,否则共享数据将出现错误。常规设计中,两个处理器发出的地址编码一致即可保证软件访问的存储器单元正确。但是有时也会存在处理器发送端或双口接收端硬件(线驱动器或FPGA逻辑)对地址取反而另一端未取反的设计,这时两个端口的软件寻址方法就会存在差异。

发明内容

本发明所要解决的技术问题是:针对双口RAM的两套地址总线一端取反,一端未取反的硬件状态,利用软件方法找到相对应的储存器单元地址。

本发明的技术方案是:

本发明提供一种双口地址总线的软件寻址方法,应用于通过双口RAM的第一口与RAM通信的处理器,第一口为双口RAM地址总线取反一端,双口RAM的第二口为双口RAM地址总线未取反一端,包括:

获取处理器输入的输入地址;

获取处理器的输出地址总线的第一最低位和处理器输入地址总线的第二最低位;

根据第一最低位和第二最低位,将输入地址转化为第一口访问双口的地址。

进一步的,根据第一最低位和第二最低位,将输入地址转化为第一口访问双口的地址包括:

根据第二最低位,确定右移位数m,m为整数;

根据第一最低位,确定左移位数n,n为整数;

将输入地址按二进制右移m位,对右移后的第二口地址取反,将取反的地址左移n位,得到第一口访问双口的基地址。

进一步的,所述方法还包括:

计算基地址和第一最低位之差,得到偏移地址。

进一步的,确定m和n的公式为:

m=log2(Y/8);n=log2(X/8);

其中,Y为第二最低位;X为第一最低位。

本发明提供一种双口地址总线的软件寻址装置,应用于通过双口RAM的第一口与RAM通信的处理器,第一口为双口RAM地址总线取反一端,双口RAM的第二口为双口RAM地址总线未取反一端,其包括:

获取模块,用于获取处理器输入的输入地址;获取处理器的输出地址总线的第一最低位和处理器输入地址总线的第二最低位;

转化模块,用于根据第一最低位和第二最低位,将输入地址转化为第一口访问双口的地址。

进一步的,转化模块包括:

确定单元,用于根据第二最低位,确定右移位数m,m为整数;还用于根据第一最低位,确定左移位数n,n为整数;

处理单元,用于将输入地址按二进制右移m位,对右移后的第二口地址取反,将取反的地址左移n位,得到第一口访问双口的基地址。

进一步的,所述装置还包括:

计算模块,用于计算基地址和第一最低位之差,得到偏移地址。

进一步的,确定m和n的公式为:

m=log2(Y/8);n=log2(X/8);

其中,Y为第二最低位;X为第一最低位。

本发明提供一种计算机可读的存储介质,存储有计算机能够运行的程序,所述计算机程序被处理器执行以实现本发明任一项所述的方法。

本发明具有的有益效果是:

1、在不更改硬件的条件下利用软件方法实现对具有地址线取反设计的双口进行操作。

2、对位宽不同的地址单元具有广泛适用性。

附图说明

图1是本发明一种双口地址总线的软件寻址方法的硬件接口示意图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

如图1所示,约定双口RAM地址总线未取反一端为A口(第二口),地址总线取反一端为B口(第一口)。先确定A口分配的存储器地址,再确定B口处理器输出地址总线最低位表征的数据位宽X,以及B口输入双口RAM地址总线最低位表征的数据位宽Y。

根据以下运算得出B口访问双口的基地址和偏移地址:

首先将A口地址右移log2(Y/8)位,再按位取反,之后左移log2(X/8)位,得到的即是B口访问基地址,存储器空间其他地址按照基地址-X/8得出。

5页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种解决I2S传输中辐射超标的方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!