CN101055550A - 存储器存取装置及其方法 - Google Patents
存储器存取装置及其方法 Download PDFInfo
- Publication number
- CN101055550A CN101055550A CN 200710108719 CN200710108719A CN101055550A CN 101055550 A CN101055550 A CN 101055550A CN 200710108719 CN200710108719 CN 200710108719 CN 200710108719 A CN200710108719 A CN 200710108719A CN 101055550 A CN101055550 A CN 101055550A
- Authority
- CN
- China
- Prior art keywords
- index
- access
- register
- instruction
- data command
- 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
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种存储器存取装置,用以依据一索引指令与一数据指令存取一计算机系统的一存储器模块的一存储器。本发明的存储器存取装置包括一寄存器与一存储器存取逻辑单元。寄存器用以接收索引指令,并存储索引指令所对应的一索引值。存储器存取逻辑单元用以于接收到数据指令时,依据存储于寄存器的索引值,对存储器进行对应数据指令的存取操作。其中,计算机系统的中断处理程序通过另一索引指令与另一数据指令存取存储器,以执行一中断。
Description
技术领域
本发明涉及一种存储器存取装置,特别是涉及一种用以存取南桥的存储器的存储器存取装置。
背景技术
当计算机系统内部的VGA软件需存取南桥中的存储器模块内的数据,例如是画面缓冲器大小(frame buffer size)时,VGA软件需呼叫一回调程序(call-back function)。回调程序由此存储器模块取得所需的信息,将所需信息传回VGA软件。
南桥的存储器模块仅有一索引寄存器(index register)与一数据寄存器(data register)。在软件应用上,以成对的索引端口(index port)指令与数据端口(data port)指令来存取此索引寄存器与数据寄存器,进而存取存储器模块的存储器。成对的索引指令与数据指令例如通过索引端口70h端口与数据端口71h端口、或索引端口74h端口与数据端口75h端口来存取索引寄存器与数据寄存器。亦即,索引端口70h端口与74h端口对应至同一个索引寄存器,而数据端口71h端口与75h端口对应至同一个数据寄存器。
然而,回调程序在存取此存储器时,若一中断(interrupt)发生,其中断处理程序(interrupt handler)可能意外地改变原本所要存取的存储器的地址。如此将导致中断结束后,回调程序存取到存储器中的错误地址的数据,使计算机系统产生非预期的结果。
以中断处理程序使用对应70h端口与71h端口的索引指令与数据指令,回调程序使用对应74h端口与75h端口的索引指令与数据指令来存取存储器为例,说明上述错误如何发生。图1示出了当回调程序存取存储器时发生中断导致错误的一事例的示意图。方块110、120与130分别为在VGA软件、回调程序与中断处理程序内的指令。在方块110中,VGA软件呼叫回调程序。之后,在方块120中,回调程序发出索引指令,将索引值Ah传送至索引端口74h端口,将索引值A0h存储于地址寄存器a1中(mov a1,A0h;out 74h,a1),即现在寄存器a1中存储着索引值A0h。之后,不幸地发生一高优先权的中断。在方块130中,中断处理程序发出索引指令,通过索引端口70h将位于地址寄存器a1的索引值A0h改为一错误索引值0ch(mov a1,0ch;out70h,a1;in a1,71h),即现在寄存器a1中存储着索引值0ch。当中断结束后,回到方块120,回调程序发出数据指令,依据地址寄存器的索引值,通过南桥的数据端口75h端口,来存取存储器时,参考到的不是原来的索引值A0h,而是中断处理程序的索引指令所改为的错误索引值0ch。因此存取到0ch所对应的存储器的错误地址中的数据,而非A0h所所对应的存储器地址中的数据。
发明内容
本发明有关于存储器存取装置用以存取一计算机系统的一存储器模块的一存储器。本发明的存储器存取装置以寄存器存储所要存取的索引值。直到接收数据指令时,存储器存取逻辑单元才依据索引值对存储器模块的存储器进行对应数据指令的存取操作。如此一来,即使在存储器存取逻辑单元收到数据指令之前发生一中断,且存取到存储器模块的索引寄存器,存储器存取逻辑单元仍能依据正确的索引值对存储器模块的存储器进行存取,而不受中断的影响。
根据本发明提出一种存储器存取装置,用以依据一第一索引指令与一第一数据指令存取一计算机系统的一存储器模块的一存储器。本发明的存储器存取装置包括一第一寄存器与一存储器存取逻辑单元。第一寄存器用以接收第一索引指令,并存储第一索引指令所对应的一第一索引值。存储器存取逻辑单元用以于接收到第一数据指令时,依据存储于第一寄存器的第一索引值,对存储器进行对应第一数据指令的存取操作。其中,计算机系统的中断处理程序通过一第二索引指令与一第二数据指令存取存储器,以执行一中断。
根据本发明还提出一种存储器存取方法,用以依据一第一索引指令与一第一数据指令存取一计算机系统的一存储器模块的一存储器。本发明的存储器存取方法包括:首先,接收第一索引指令,并存储第一索引指令的一第一索引值于一第一寄存器。之后,接收第一数据指令。然后,依据存于第一寄存器的第一索引值对存储器进行对应第一数据指令的存取操作。其中,计算机系统的中断处理程序通过一第二索引指令与一第二数据指令存取存储器,以执行一中断。
为使本发明的上述内容能更明显易懂,下文特举一较佳实施例,并结合附图详细说明如下。
附图说明
图1示出了当回调程序存取存储器时发生中断导致错误的一例的示意图。
图2示出了本发明实施例的存储器存取装置的方块图。
图3示出了本发明另一实施例的存储器存取装置的方块图。
图4示出了本发明实施例的存储器存取方法。
附图符号说明
210、310、330:寄存器
220、320:存储存取逻辑单元
240、340:存储器模块
具体实施方式
图2示出了本发明实施例的存储器存取装置200的方块图。存储器存取装置200用以依据一索引端口(index port)指令I1与一数据端口(dataport)指令D1存取一计算机系统的一存储器模块240的一存储器。存储器存取装置200包括寄存器210与存储器存取逻辑单元220。寄存器210用以接收索引指令I1,并存储索引指令I1所对应的一索引值VI1。存储器存取逻辑单元220用以于接收到数据指令D1时,依据存储于寄存器210的索引值VI1对存储器模块240中的存储器进行对应数据指令D1的存取操作。其中,计算机系统的中断处理程序通过另一索引指令I2与另一数据指令D2来存取此存储器,以执行一中断。
存储器存取装置200所存取的存储器模块240的存储器以计算机系统的南桥内的存储器模块的存储器为例做说明。存储器模块240仅具有一索引寄存器与一数据寄存器。在本发明实施例中,存取索引寄存器与数据寄存器须通过成对的索引端口70h端口与数据端口71h端口,或索引端口74h端口与数据端口75h端口。
在本发明实施例中,索引指令I1与数据指令D1为计算机系统执行软件时,由程序软件所发出。索引指令I1与数据指令D1例如为当计算机系统内部的VGA软件需存取南桥中的存储器模块的存储器时,VGA软件的回调程序(callback function)所发出,以存取存储器模块240的存储器。
在本发明实施例中,索引指令I2与数据指令D2为计算机系统的操作系统欲存取存储器模块240的存储器时所发出,以存取存储器模块240的存储器。索引指令I2与数据指令D2例如为当一中断需存取南桥中的存储器模块240的存储器时,中断的中断处理程序所发出。索引指令I2与数据指令D2的优先权高于索引指令I1与数据指令D1。
在本发明实施例中,索引指令I1通过南桥的索引端口74h将一索引值VI1存储至寄存器210。当数据指令D1通过南桥的索引端口75h传送至存储器存取逻辑单元220时,存储器存取逻辑单元220发出对应存储于寄存器210的索引值VI1的索引指令I3与数据指令D1至存储器模块240。
索引指令I3与数据指令D1通过索引端口74h端口与数据端口75h端口存取存储器模块240的索引寄存器与数据寄存器,以存取存储器模块240的存储器。当数据指令D1对应读取操作,则参考索引值VI1由存储器模块240的存储器读出数据R1。当数据指令D1对应写入操作,参考索引值VI1写入数据至存储器模块240的存储器。
现说明本发明实施例的存储器存取装置的优点。当VGA的回调程序发出索引指令I1至寄存器210时,对应索引指令I1的索引值VI1存储于寄存器210中。
此时,一中断发生。此中断的中断处理程序发出一索引指令I2与一数据指令D2至存储器存取逻辑单元220。存储器存取逻辑单元220再发出索引指令I2与数据指令D2,分别通过索引端口70h端口与数据端口71h端口来存取存储器模块240的索引寄存器与数据寄存器,以存取存储器模块240的存储器。此时,此索引寄存器储存索引指令I2所对应的索引值VI2。
当中断结束后,VGA的回调程序始得以发出数据指令D1至存储器存取逻辑单元220。当存储器存取逻辑单元220接收数据指令D1时,始发出对应索引值VI1的索引指令I3与数据指令D1至存储器模块240的索引寄存器与数据寄存器,以存取存储器模块240的存储器。此时,此索引寄存器即储存索引值VI1,而非对应中断处理程序的索引值VI2。因此,存储器存取逻辑单元220得以参考索引值VI1,正确地存取存储器模块240的存储器。
图3示出了本发明另一实施例的存储器存取装置300。与存储器存取装置200不同的是,存储器存取装置300还包括一寄存器330,用以接收索引指令I2,并存储索引指令I2所对应的索引值VI2。当数据指令D2传送至存储器存取逻辑单元320时,存储器存取逻辑单元220发出对应存储于寄存器330的索引值VI2的索引指令I4与数据指令D2至存储器模块340。
索引指令I3与数据指令D1通过索引端口70h端口与数据端口71h端口存取存储器模块340的索引寄存器与数据寄存器,以存取存储器模块340的存储器。当数据指令D2对应读取操作,则参考索引值VI2由存储器模块340的存储器读出数据R2。当数据指令D2对应写入操作,参考索引值VI2写入数据至存储器模块340的存储器。
在本发明的所有实施例中,索引指令I1与数据指令D1分别通过索引端口74h端口与数据端口75h端口,索引指令I2与数据指令D2分别通过索引端口70h端口与数据端口71h端口存取存储器模块的存储器。实际应用上,并不限于通过上述70h端口、71h端口、74h端口与75h端口。索引指令I1、I2与数据指令D1、D2可通过用以存取存储器模块的存储器的任何索引端口与数据端口来存取。
根据本发明概念的存储器存取装置可设计为位于计算机系统的南桥之内或之外,只要存储器存取装置位于存储器模块之前,使得索引指令I1、I2与数据指令D1、D2得以先传送至寄存器与存储器存取逻辑单元220即可。
存储器存取装置200与300以存取计算机系统的南桥的存储器模块的存储器为例做说明。实际应用上,任何以间接输入/输出(indirect I/O)方式来存取,且仅有一索引寄存器与一数据寄存器的存储器模块的存储器,均可用本发明实施例的存储器存取装置来存取。
图4示出了本发明实施例的存储器存取方法,用于上述存储器存取装置200,用以依据索引指令I1与数据指令D1存取存储器模块240的一存储器。请参考图4。首先,在步骤410中,接收索引指令I1,并存储对应索引指令I1的索引值VI1于寄存器210。之后,在步骤420中,接收数据指令D1。接着,在步骤430中,依据存于寄存器210的索引值VI1对存储器模块240的存储器进行对应数据指令D1的存取操作。计算机系统的中断处理程序通过索引指令I2与数据指令D2存取存储器模块240的存储器,以执行一中断。
本发明实施例的存储器存取装置以寄存器存储所欲存取的索引值VI1。直到接收数据指令D1时,存储器存取逻辑单元始依据索引值VI1对存储器模块的存储器进行对应数据指令D1的存取操作。因此,即使在存储器存取逻辑单元收到数据指令D1之前发生一中断,且存取了存储器模块的索引寄存器,存储器存取逻辑单元仍能依据正确的索引值对存储器模块的存储器进行存取,而不受中断的影响。
此外,应用本发明实施例的存储器存取装置可直接应用于目前的计算机系统,不需大幅更改计算机系统的原有架构。因此,应用本发明实施例的存储器存取装置还可节省生产成本、增加生产效率。
综上所述,虽然本发明已以一较佳实施例披露如上,但其并非用以限定本发明。本领域技术人员,在不脱离本发明的精神和范围的前提下,可作若干的更改与修饰。因此,本发明的保护范围应以本申请的权利要求为准。
Claims (10)
1.一种存储器存取装置,用以依据一第一索引指令与一第一数据指令存取一计算机系统的一存储器模块的一存储器,其特征在于,包括:
一第一寄存器,用以接收该第一索引指令,并存储该第一索引指令所对应的一第一索引值;以及
一存储器存取逻辑单元,当接收到该第一数据指令时,依据存储于该第一寄存器的该第一索引值,对该存储器进行对应该第一数据指令的存取操作;
其中,该计算机系统的一中断处理程序通过一第二索引指令与一第二数据指令存取该存储器,以执行一中断。
2.如权利要求1所述的存储器存取装置,其特征在于,该第二索引指令与该第二数据指较优先于该第一索引指令与该第一数据指令。
3.如权利要求1所述的存储器存取装置,其特征在于,该存储器模块包括一索引寄存器与一数据寄存器,该第一与第二索引指令分别通过一第一索引端口与一第二索引端口存取该第一寄存器与该索引寄存器,该第一与第二数据指令分别通过一第一数据端口与一第二数据端口存取该数据寄存器。
4.如权利要求3所述的存储器存取装置,其特征在于,当该存储器存取逻辑单元接收到该第一数据指令时,发出对应存储于该第一寄存器的该第一索引值的一第三索引指令与该第一数据指令,来分别存取该索引寄存器与该数据寄存器,以存取该存储器,其中,该第三索引指令通过该第一索引端口来存取该索引寄存器。
5.如权利要求1所述的存储器存取装置,其特征在于,该存储器存取装置还包括:
一第二寄存器,用以接收该第二索引指令,并存储该第二索引指令所对应的一第二索引值;
其中,该存储器存取逻辑单元还用以于接收到该第二数据指令时,依据存储于该第二寄存器的该第二索引值对该存储器进行对应该第二数据指令的存取操作。
6.如权利要求1所述的存储器存取装置,其特征在于,该存储器模块是该计算机系统的南桥的存储器模块。
7.一种存储器存取方法,用以依据一第一索引指令与一第一数据指令存取一计算机系统的一存储器模块的一存储器,其特征在于,包括:
接收该第一索引指令,并存储该第一索引指令的一第一索引值于一第一寄存器;
接收该第一数据指令;以及
依据存于该第一寄存器的该第一索引值对该存储器进行对应该第一数据指令的存取操作;
其中,该计算机系统的一中断处理程序通过一第二索引指令与一第二数据指令存取该存储器,以执行一中断。
8.如权利要求7所述的存储器存取方法,其特征在于,该第二索引指令与该第二数据指令系较优先于该第一索引指令与该第一数据指令。
9.如权利要求7所述的存储器存取方法,其特征在于,该存储器是该计算机系统的南桥的存储器。
10.如权利要求7所述的存储器存取方法,其特征在于,还包含一第二寄存器,用以储存该第二索引指令的一第二索引值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101087197A CN100426273C (zh) | 2007-05-31 | 2007-05-31 | 存储器存取装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101087197A CN100426273C (zh) | 2007-05-31 | 2007-05-31 | 存储器存取装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101055550A true CN101055550A (zh) | 2007-10-17 |
CN100426273C CN100426273C (zh) | 2008-10-15 |
Family
ID=38795393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101087197A Active CN100426273C (zh) | 2007-05-31 | 2007-05-31 | 存储器存取装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100426273C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419541B (zh) * | 2007-10-25 | 2011-03-30 | 晶心科技股份有限公司 | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 |
CN105900060A (zh) * | 2014-11-07 | 2016-08-24 | 华为技术有限公司 | 内存访问方法、装置和计算机设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100452005C (zh) * | 2003-10-28 | 2009-01-14 | 威盛电子股份有限公司 | 中断信号控制系统与控制方法 |
CN100442261C (zh) * | 2003-12-01 | 2008-12-10 | 威盛电子股份有限公司 | 中断信号控制系统与控制方法 |
CN1266569C (zh) * | 2003-12-16 | 2006-07-26 | 威盛电子股份有限公司 | 中断信号控制方法 |
-
2007
- 2007-05-31 CN CNB2007101087197A patent/CN100426273C/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419541B (zh) * | 2007-10-25 | 2011-03-30 | 晶心科技股份有限公司 | 存取多个寄存器其中之一目标寄存器的方法及其相关装置 |
CN105900060A (zh) * | 2014-11-07 | 2016-08-24 | 华为技术有限公司 | 内存访问方法、装置和计算机设备 |
CN105900060B (zh) * | 2014-11-07 | 2019-05-03 | 华为技术有限公司 | 内存访问方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100426273C (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1203420C (zh) | 用于移动存储块的直接存储器存取控制器及其移动方法 | |
US20180113615A1 (en) | Storage device generating adaptive interrupt and operating method thereof | |
US7844752B2 (en) | Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions | |
US10747443B2 (en) | Electronic system with storage management mechanism and method of operation thereof | |
US10467150B2 (en) | Dynamic tier remapping of data stored in a hybrid storage system | |
KR101891387B1 (ko) | 영속 저장 장치에서 인접 데이터 블록과 비인접 세트의 논리 어드레스 블록 간에 판독 및 기입 | |
US10866736B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
CN1821985A (zh) | 数据传输系统和数据传输方法 | |
US10275175B2 (en) | System and method to provide file system functionality over a PCIe interface | |
US20070041050A1 (en) | Memory management method and system | |
CN115934389A (zh) | 用于错误报告和处理的系统和方法 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
WO2021120952A1 (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN101055550A (zh) | 存储器存取装置及其方法 | |
US20160110119A1 (en) | Direct memory access for command-based memory device | |
CN113448884B (zh) | 具有重叠范围的命令的并行重叠管理 | |
US20090138633A1 (en) | Computer, external storage and method for processing data information in external storage | |
US7774513B2 (en) | DMA circuit and computer system | |
CN100342361C (zh) | 快速读写存储器数据的方法及装置 | |
US8631183B2 (en) | Integrated circuit system, and data readout method | |
CN100351826C (zh) | 动态决定桥接芯片位配置的方法 | |
CN112216333A (zh) | 芯片测试方法及装置 | |
US20040103229A1 (en) | Bus management techniques | |
US7895390B1 (en) | Ensuring buffer availability | |
CN116204124B (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 |